diff --git a/.github/workflows/build-and-deploy.yml b/.github/workflows/build-and-deploy.yml new file mode 100644 index 00000000000..d8a4a04479b --- /dev/null +++ b/.github/workflows/build-and-deploy.yml @@ -0,0 +1,86 @@ +name: Build and Deploy + +on: + push: + branches: [main] + pull_request: + branches: [main] + workflow_dispatch: + +jobs: + build: + runs-on: ubuntu-latest + permissions: + contents: write + packages: write + + steps: + - name: Checkout code + uses: actions/checkout@v4 + with: + fetch-depth: 0 + ref: ${{ github.head_ref || github.ref_name }} + + - name: Setup Node.js + uses: actions/setup-node@v4 + with: + node-version: '20' + registry-url: 'https://npm.pkg.github.com' + + - name: Download latest CLI + run: | + mkdir -p temp-cli + cd temp-cli + npm init -y + npm install 9router@latest + cd .. + rm -rf cli/ + mv temp-cli/node_modules/9router ./cli + rm -rf temp-cli + + - name: Install dependencies + run: npm install + + - name: Build + run: | + mv next.config.mjs base.config.mjs + npm run build + + - name: Patch CLI + working-directory: cli + run: | + npm pkg set name="@diepxuan/9router" + npm pkg delete scripts.prepublishOnly + cat package.json + tree -L 2 . + + - name: Push changes to GitHub + run: | + git add cli/ + git commit -m "${GIT_COMMITTER_MESSAGE:-'Auto-commit update 9router cli'}" || true + if ! git push; then + git stash + git pull --rebase + git stash pop + git push || true + fi + env: + REPOSITORY: ${{ github.repository }} + GIT_COMMITTER_MESSAGE: ${{ github.event.head_commit.message }} + GIT_AUTHOR_NAME: Tran Ngoc Duc + GIT_AUTHOR_EMAIL: ductn@diepxuan.com + GIT_COMMITTER_NAME: Tran Ngoc Duc + GIT_COMMITTER_EMAIL: ductn@diepxuan.com + + - name: Bump version + working-directory: cli + run: | + TIMESTAMP=$(date +%s) + npm version patch --no-git-tag-version + npm version prerelease --preid=patch.$TIMESTAMP --no-git-tag-version + + - name: Publish to GitHub Packages + working-directory: cli + run: npm publish + env: + NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitmodules b/.gitmodules deleted file mode 100644 index b5240b4d1cc..00000000000 --- a/.gitmodules +++ /dev/null @@ -1,3 +0,0 @@ -[submodule "src/mitm/dev"] - path = src/mitm/dev - url = https://github.com/decolua/9router-dev.git diff --git a/.npmignore b/.npmignore index 24e8f32faa7..78a02d1959c 100644 --- a/.npmignore +++ b/.npmignore @@ -4,7 +4,7 @@ data/ **/db.json # Development -src/ +src/mitm/dev/ docs/ test/ agents/ @@ -13,6 +13,7 @@ worker/ shared-sse/ copilot-api/ CLIProxyAPI/ +cli/ # Config files *.md @@ -28,4 +29,3 @@ tsconfig.json # Build artifacts that shouldn't be published .next/cache/ .next/standalone/data/ - diff --git a/cli/LICENSE b/cli/LICENSE new file mode 100644 index 00000000000..ddd5dd45182 --- /dev/null +++ b/cli/LICENSE @@ -0,0 +1,42 @@ +MIT License + +Copyright (c) 2026 9Router Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + + + + + + + + + + + + + + + + + + + + + diff --git a/cli/README.md b/cli/README.md new file mode 100644 index 00000000000..8e4ee69bf7a --- /dev/null +++ b/cli/README.md @@ -0,0 +1,112 @@ +# 9Router - FREE AI Router & Token Saver + +**Never stop coding. Save 20-40% tokens with RTK + auto-fallback to FREE & cheap AI models.** + +**Connect All AI Code Tools (Claude Code, Cursor, Antigravity, Copilot, Codex, Gemini, OpenCode, Cline, OpenClaw...) to 40+ AI Providers & 100+ Models.** + +[![npm](https://img.shields.io/npm/v/9router.svg)](https://www.npmjs.com/package/9router) +[![Downloads](https://img.shields.io/npm/dm/9router.svg)](https://www.npmjs.com/package/9router) +[![License](https://img.shields.io/npm/l/9router.svg)](https://github.com/decolua/9router/blob/main/LICENSE) + +decolua%2F9router | Trendshift + +[🌐 Website](https://9router.com) • [📖 Full Docs](https://github.com/decolua/9router) + +--- + +## 🤔 Why 9Router? + +**Stop wasting money, tokens and hitting limits:** + +- ❌ Subscription quota expires unused every month +- ❌ Rate limits stop you mid-coding +- ❌ Tool outputs (git diff, grep, ls...) burn tokens fast +- ❌ Expensive APIs ($20-50/month per provider) + +**9Router solves this:** + +- ✅ **RTK Token Saver** - Auto-compress tool_result, save 20-40% tokens +- ✅ **Maximize subscriptions** - Track quota, use every bit before reset +- ✅ **Auto fallback** - Subscription → Cheap → Free, zero downtime +- ✅ **Multi-account** - Round-robin between accounts per provider +- ✅ **Universal** - Works with any OpenAI/Claude-compatible CLI + +--- + +## ⚡ Quick Start + +**1. Install & run:** + +```bash +npm install -g 9router +9router + +# Or run directly with npx +npx 9router +``` + +🎉 Dashboard opens at `http://localhost:20128` + +**2. Connect a FREE provider (no signup needed):** + +Dashboard → Providers → Connect **Kiro AI** (free Claude unlimited) or **OpenCode Free** (no auth) → Done! + +**3. Use in your CLI tool:** + +``` +Claude Code/Codex/OpenClaw/Cursor/Cline Settings: + Endpoint: http://localhost:20128/v1 + API Key: [copy from dashboard] + Model: kr/claude-sonnet-4.5 +``` + +That's it! Start coding with FREE AI models. + +--- + +## 🚀 CLI Options + +```bash +9router # Start with default settings +9router --port 8080 # Custom port +9router --no-browser # Don't open browser +9router --skip-update # Skip auto-update check +9router --help # Show all options +``` + +**Dashboard**: `http://localhost:20128/dashboard` + +--- + +## 🛠️ Supported CLI Tools + +Claude-Code • OpenClaw • Codex • OpenCode • Cursor • Antigravity • Cline • Continue • Droid • Roo • Copilot • Kilo Code • Gemini CLI • Qwen Code • iFlow • Crush • Crusher • Aider + +Any tool supporting OpenAI/Claude-compatible API works. + +--- + +## 💾 Data Location + +- **macOS/Linux**: `~/.9router/db.json` +- **Windows**: `%APPDATA%/9router/db.json` + +--- + +## 📚 Documentation + +Full docs, advanced setup, video tutorials & development guide: + +- **GitHub**: https://github.com/decolua/9router +- **Full README**: https://github.com/decolua/9router/blob/main/app/README.md +- **Website**: https://9router.com + +--- + +## 🙏 Acknowledgments + +- **[CLIProxyAPI](https://github.com/router-for-me/CLIProxyAPI)** - Original Go implementation + +## 📄 License + +MIT License - see [LICENSE](LICENSE) for details. diff --git a/cli/app/.next/BUILD_ID b/cli/app/.next/BUILD_ID new file mode 100644 index 00000000000..83d75aec144 --- /dev/null +++ b/cli/app/.next/BUILD_ID @@ -0,0 +1 @@ +g6K-sXverqaFK0NMbiAzn \ No newline at end of file diff --git a/cli/app/.next/app-path-routes-manifest.json b/cli/app/.next/app-path-routes-manifest.json new file mode 100644 index 00000000000..759afd79c81 --- /dev/null +++ b/cli/app/.next/app-path-routes-manifest.json @@ -0,0 +1,143 @@ +{ + "/_not-found/page": "/_not-found", + "/_global-error/page": "/_global-error", + "/api/auth/login/route": "/api/auth/login", + "/api/auth/logout/route": "/api/auth/logout", + "/api/cli-tools/antigravity-mitm/alias/route": "/api/cli-tools/antigravity-mitm/alias", + "/api/cli-tools/antigravity-mitm/route": "/api/cli-tools/antigravity-mitm", + "/api/cli-tools/claude-settings/route": "/api/cli-tools/claude-settings", + "/api/cli-tools/codex-settings/route": "/api/cli-tools/codex-settings", + "/api/cli-tools/copilot-settings/route": "/api/cli-tools/copilot-settings", + "/api/cli-tools/cowork-mcp-registry/route": "/api/cli-tools/cowork-mcp-registry", + "/api/cli-tools/cowork-settings/route": "/api/cli-tools/cowork-settings", + "/api/cli-tools/droid-settings/route": "/api/cli-tools/droid-settings", + "/api/cli-tools/hermes-settings/route": "/api/cli-tools/hermes-settings", + "/api/cli-tools/openclaw-settings/route": "/api/cli-tools/openclaw-settings", + "/api/cli-tools/opencode-settings/route": "/api/cli-tools/opencode-settings", + "/api/cloud/auth/route": "/api/cloud/auth", + "/api/cloud/credentials/update/route": "/api/cloud/credentials/update", + "/api/cloud/model/resolve/route": "/api/cloud/model/resolve", + "/api/cloud/models/alias/route": "/api/cloud/models/alias", + "/api/combos/[id]/route": "/api/combos/[id]", + "/api/health/route": "/api/health", + "/api/init/route": "/api/init", + "/api/keys/[id]/route": "/api/keys/[id]", + "/api/locale/route": "/api/locale", + "/api/media-providers/tts/deepgram/voices/route": "/api/media-providers/tts/deepgram/voices", + "/api/media-providers/tts/elevenlabs/voices/route": "/api/media-providers/tts/elevenlabs/voices", + "/api/media-providers/tts/inworld/voices/route": "/api/media-providers/tts/inworld/voices", + "/api/media-providers/tts/voices/route": "/api/media-providers/tts/voices", + "/api/models/availability/route": "/api/models/availability", + "/api/models/route": "/api/models", + "/api/models/test/route": "/api/models/test", + "/api/oauth/cursor/auto-import/route": "/api/oauth/cursor/auto-import", + "/api/oauth/cursor/import/route": "/api/oauth/cursor/import", + "/api/oauth/gitlab/pat/route": "/api/oauth/gitlab/pat", + "/api/oauth/iflow/cookie/route": "/api/oauth/iflow/cookie", + "/api/oauth/kiro/auto-import/route": "/api/oauth/kiro/auto-import", + "/api/oauth/kiro/import/route": "/api/oauth/kiro/import", + "/api/oauth/kiro/social-authorize/route": "/api/oauth/kiro/social-authorize", + "/api/oauth/kiro/social-exchange/route": "/api/oauth/kiro/social-exchange", + "/api/pricing/route": "/api/pricing", + "/api/provider-nodes/[id]/route": "/api/provider-nodes/[id]", + "/api/provider-nodes/validate/route": "/api/provider-nodes/validate", + "/api/providers/[id]/models/route": "/api/providers/[id]/models", + "/api/providers/[id]/test-models/route": "/api/providers/[id]/test-models", + "/api/providers/[id]/test/route": "/api/providers/[id]/test", + "/api/providers/client/route": "/api/providers/client", + "/api/providers/kilo/free-models/route": "/api/providers/kilo/free-models", + "/api/providers/test-batch/route": "/api/providers/test-batch", + "/api/providers/validate/route": "/api/providers/validate", + "/api/settings/require-login/route": "/api/settings/require-login", + "/api/shutdown/route": "/api/shutdown", + "/api/tags/route": "/api/tags", + "/api/translator/console-logs/route": "/api/translator/console-logs", + "/api/translator/load/route": "/api/translator/load", + "/api/translator/save/route": "/api/translator/save", + "/api/translator/send/route": "/api/translator/send", + "/api/translator/translate/route": "/api/translator/translate", + "/api/tunnel/disable/route": "/api/tunnel/disable", + "/api/tunnel/enable/route": "/api/tunnel/enable", + "/api/tunnel/status/route": "/api/tunnel/status", + "/api/tunnel/tailscale-check/route": "/api/tunnel/tailscale-check", + "/api/tunnel/tailscale-disable/route": "/api/tunnel/tailscale-disable", + "/api/tunnel/tailscale-enable/route": "/api/tunnel/tailscale-enable", + "/api/tunnel/tailscale-install/route": "/api/tunnel/tailscale-install", + "/api/tunnel/tailscale-login/route": "/api/tunnel/tailscale-login", + "/api/tunnel/tailscale-start-daemon/route": "/api/tunnel/tailscale-start-daemon", + "/api/usage/chart/route": "/api/usage/chart", + "/api/usage/history/route": "/api/usage/history", + "/api/usage/logs/route": "/api/usage/logs", + "/api/usage/providers/route": "/api/usage/providers", + "/api/usage/request-details/route": "/api/usage/request-details", + "/api/usage/request-logs/route": "/api/usage/request-logs", + "/api/v1/api/chat/route": "/api/v1/api/chat", + "/api/v1/audio/speech/route": "/api/v1/audio/speech", + "/api/v1/audio/voices/route": "/api/v1/audio/voices", + "/api/v1/chat/completions/route": "/api/v1/chat/completions", + "/api/v1/embeddings/route": "/api/v1/embeddings", + "/api/v1/images/generations/route": "/api/v1/images/generations", + "/api/v1/messages/count_tokens/route": "/api/v1/messages/count_tokens", + "/api/v1/messages/route": "/api/v1/messages", + "/api/v1/models/[kind]/route": "/api/v1/models/[kind]", + "/api/v1/models/info/route": "/api/v1/models/info", + "/api/v1/models/route": "/api/v1/models", + "/api/v1/responses/compact/route": "/api/v1/responses/compact", + "/api/v1/responses/route": "/api/v1/responses", + "/api/v1/route": "/api/v1", + "/api/v1/search/route": "/api/v1/search", + "/api/v1/web/fetch/route": "/api/v1/web/fetch", + "/api/v1beta/models/[...path]/route": "/api/v1beta/models/[...path]", + "/api/v1beta/models/route": "/api/v1beta/models", + "/api/version/route": "/api/version", + "/api/version/update/route": "/api/version/update", + "/favicon.ico/route": "/favicon.ico", + "/manifest.webmanifest/route": "/manifest.webmanifest", + "/api/combos/route": "/api/combos", + "/api/keys/route": "/api/keys", + "/api/models/alias/route": "/api/models/alias", + "/api/models/custom/route": "/api/models/custom", + "/api/models/disabled/route": "/api/models/disabled", + "/api/oauth/[provider]/[action]/route": "/api/oauth/[provider]/[action]", + "/api/provider-nodes/route": "/api/provider-nodes", + "/api/providers/[id]/route": "/api/providers/[id]", + "/api/providers/route": "/api/providers", + "/api/providers/suggested-models/route": "/api/providers/suggested-models", + "/api/proxy-pools/[id]/route": "/api/proxy-pools/[id]", + "/api/proxy-pools/vercel-deploy/route": "/api/proxy-pools/vercel-deploy", + "/api/settings/database/route": "/api/settings/database", + "/api/settings/proxy-test/route": "/api/settings/proxy-test", + "/api/proxy-pools/[id]/test/route": "/api/proxy-pools/[id]/test", + "/api/proxy-pools/route": "/api/proxy-pools", + "/api/settings/route": "/api/settings", + "/api/translator/console-logs/stream/route": "/api/translator/console-logs/stream", + "/api/usage/[connectionId]/route": "/api/usage/[connectionId]", + "/api/usage/stats/route": "/api/usage/stats", + "/api/usage/stream/route": "/api/usage/stream", + "/api/v1/audio/transcriptions/route": "/api/v1/audio/transcriptions", + "/callback/page": "/callback", + "/dashboard/settings/pricing/page": "/dashboard/settings/pricing", + "/landing/page": "/landing", + "/login/page": "/login", + "/page": "/", + "/(dashboard)/dashboard/basic-chat/page": "/dashboard/basic-chat", + "/(dashboard)/dashboard/cli-tools/page": "/dashboard/cli-tools", + "/(dashboard)/dashboard/combos/page": "/dashboard/combos", + "/(dashboard)/dashboard/endpoint/page": "/dashboard/endpoint", + "/(dashboard)/dashboard/media-providers/[kind]/[id]/page": "/dashboard/media-providers/[kind]/[id]", + "/(dashboard)/dashboard/media-providers/[kind]/page": "/dashboard/media-providers/[kind]", + "/(dashboard)/dashboard/media-providers/combo/[id]/page": "/dashboard/media-providers/combo/[id]", + "/(dashboard)/dashboard/media-providers/web/page": "/dashboard/media-providers/web", + "/(dashboard)/dashboard/mitm/page": "/dashboard/mitm", + "/(dashboard)/dashboard/page": "/dashboard", + "/(dashboard)/dashboard/providers/new/page": "/dashboard/providers/new", + "/(dashboard)/dashboard/quota/page": "/dashboard/quota", + "/(dashboard)/dashboard/skills/page": "/dashboard/skills", + "/(dashboard)/dashboard/translator/page": "/dashboard/translator", + "/(dashboard)/dashboard/usage/page": "/dashboard/usage", + "/(dashboard)/dashboard/console-log/page": "/dashboard/console-log", + "/(dashboard)/dashboard/profile/page": "/dashboard/profile", + "/(dashboard)/dashboard/proxy-pools/page": "/dashboard/proxy-pools", + "/(dashboard)/dashboard/providers/page": "/dashboard/providers", + "/(dashboard)/dashboard/providers/[id]/page": "/dashboard/providers/[id]" +} \ No newline at end of file diff --git a/cli/app/.next/build-manifest.json b/cli/app/.next/build-manifest.json new file mode 100644 index 00000000000..8678b9f216a --- /dev/null +++ b/cli/app/.next/build-manifest.json @@ -0,0 +1,20 @@ +{ + "polyfillFiles": [ + "static/chunks/polyfills-42372ed130431b0a.js" + ], + "devFiles": [], + "lowPriorityFiles": [ + "static/g6K-sXverqaFK0NMbiAzn/_buildManifest.js", + "static/g6K-sXverqaFK0NMbiAzn/_ssgManifest.js" + ], + "rootMainFiles": [ + "static/chunks/webpack-86e40ea2022f394c.js", + "static/chunks/c7879cf7-255d52e3eda24cb7.js", + "static/chunks/5158-4b48a3595c794bbc.js", + "static/chunks/main-app-2c8be355ba1c4e93.js" + ], + "rootMainFilesTree": {}, + "pages": { + "/_app": [] + } +} \ No newline at end of file diff --git a/cli/app/.next/package.json b/cli/app/.next/package.json new file mode 100644 index 00000000000..7156107e3ae --- /dev/null +++ b/cli/app/.next/package.json @@ -0,0 +1 @@ +{"type": "commonjs"} \ No newline at end of file diff --git a/cli/app/.next/prerender-manifest.json b/cli/app/.next/prerender-manifest.json new file mode 100644 index 00000000000..f651079ae34 --- /dev/null +++ b/cli/app/.next/prerender-manifest.json @@ -0,0 +1,599 @@ +{ + "version": 4, + "routes": { + "/": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/", + "dataRoute": "/index.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/_global-error": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/_global-error", + "dataRoute": "/_global-error.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/_not-found": { + "initialStatus": 404, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/_not-found", + "dataRoute": "/_not-found.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/callback": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/callback", + "dataRoute": "/callback.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard", + "dataRoute": "/dashboard.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/basic-chat": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/basic-chat", + "dataRoute": "/dashboard/basic-chat.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/cli-tools": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/cli-tools", + "dataRoute": "/dashboard/cli-tools.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/combos": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/combos", + "dataRoute": "/dashboard/combos.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/endpoint": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/endpoint", + "dataRoute": "/dashboard/endpoint.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/media-providers/web": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/media-providers/web", + "dataRoute": "/dashboard/media-providers/web.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/mitm": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/mitm", + "dataRoute": "/dashboard/mitm.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/profile": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/profile", + "dataRoute": "/dashboard/profile.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/providers": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/providers", + "dataRoute": "/dashboard/providers.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/providers/new": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/providers/new", + "dataRoute": "/dashboard/providers/new.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/proxy-pools": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/proxy-pools", + "dataRoute": "/dashboard/proxy-pools.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/quota": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/quota", + "dataRoute": "/dashboard/quota.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/settings/pricing": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/settings/pricing", + "dataRoute": "/dashboard/settings/pricing.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/skills": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/skills", + "dataRoute": "/dashboard/skills.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/translator": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/translator", + "dataRoute": "/dashboard/translator.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/dashboard/usage": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/dashboard/usage", + "dataRoute": "/dashboard/usage.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/favicon.ico": { + "initialHeaders": { + "cache-control": "public, max-age=0, must-revalidate", + "content-type": "image/x-icon", + "x-next-cache-tags": "_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico" + }, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/favicon.ico", + "dataRoute": null, + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/landing": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/landing", + "dataRoute": "/landing.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/login": { + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/login", + "dataRoute": "/login.rsc", + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + }, + "/manifest.webmanifest": { + "initialHeaders": { + "cache-control": "public, max-age=0, must-revalidate", + "content-type": "application/manifest+json", + "x-next-cache-tags": "_N_T_/layout,_N_T_/manifest.webmanifest/layout,_N_T_/manifest.webmanifest/route,_N_T_/manifest.webmanifest" + }, + "experimentalBypassFor": [ + { + "type": "header", + "key": "next-action" + }, + { + "type": "header", + "key": "content-type", + "value": "multipart/form-data;.*" + } + ], + "initialRevalidateSeconds": false, + "srcRoute": "/manifest.webmanifest", + "dataRoute": null, + "allowHeader": [ + "host", + "x-matched-path", + "x-prerender-revalidate", + "x-prerender-revalidate-if-generated", + "x-next-revalidated-tags", + "x-next-revalidate-tag-token" + ] + } + }, + "dynamicRoutes": {}, + "notFoundRoutes": [], + "preview": { + "previewModeId": "e06a4e0263edb8822a5bcd5232ca1ac4", + "previewModeSigningKey": "0113b59fbda5c7cfbd7e2ba9a3f7f0f91be0ea90b8bc48b85d6ef4847b014ced", + "previewModeEncryptionKey": "902b8cb6e41c18a0112957d601228d2115fa9b73d4ab95fb1bd1652b105c53ee" + } +} \ No newline at end of file diff --git a/cli/app/.next/react-loadable-manifest.json b/cli/app/.next/react-loadable-manifest.json new file mode 100644 index 00000000000..f64a44a16e2 --- /dev/null +++ b/cli/app/.next/react-loadable-manifest.json @@ -0,0 +1,8 @@ +{ + "app/(dashboard)/dashboard/translator/page.js -> @monaco-editor/react": { + "id": 41310, + "files": [ + "static/chunks/1310.277601b1f5c247fc.js" + ] + } +} \ No newline at end of file diff --git a/cli/app/.next/required-server-files.json b/cli/app/.next/required-server-files.json new file mode 100644 index 00000000000..00e4e3d1137 --- /dev/null +++ b/cli/app/.next/required-server-files.json @@ -0,0 +1,363 @@ +{ + "version": 1, + "config": { + "env": {}, + "typescript": { + "ignoreBuildErrors": false + }, + "typedRoutes": false, + "distDir": ".next", + "cleanDistDir": true, + "assetPrefix": "", + "cacheMaxMemorySize": 52428800, + "configOrigin": "next.config.mjs", + "useFileSystemPublicRoutes": true, + "generateEtags": true, + "pageExtensions": [ + "tsx", + "ts", + "jsx", + "js" + ], + "poweredByHeader": true, + "compress": true, + "images": { + "deviceSizes": [ + 640, + 750, + 828, + 1080, + 1200, + 1920, + 2048, + 3840 + ], + "imageSizes": [ + 32, + 48, + 64, + 96, + 128, + 256, + 384 + ], + "path": "/_next/image", + "loader": "default", + "loaderFile": "", + "domains": [], + "disableStaticImages": false, + "minimumCacheTTL": 14400, + "formats": [ + "image/webp" + ], + "maximumRedirects": 3, + "maximumResponseBody": 50000000, + "dangerouslyAllowLocalIP": false, + "dangerouslyAllowSVG": false, + "contentSecurityPolicy": "script-src 'none'; frame-src 'none'; sandbox;", + "contentDispositionType": "attachment", + "localPatterns": [ + { + "pathname": "**", + "search": "" + } + ], + "remotePatterns": [], + "qualities": [ + 75 + ], + "unoptimized": true, + "customCacheHandler": false + }, + "devIndicators": { + "position": "bottom-left" + }, + "onDemandEntries": { + "maxInactiveAge": 60000, + "pagesBufferLength": 5 + }, + "basePath": "", + "sassOptions": {}, + "trailingSlash": false, + "i18n": null, + "productionBrowserSourceMaps": false, + "excludeDefaultMomentLocales": true, + "reactProductionProfiling": false, + "reactStrictMode": null, + "reactMaxHeadersLength": 6000, + "httpAgentOptions": { + "keepAlive": true + }, + "logging": { + "serverFunctions": true, + "browserToTerminal": "warn" + }, + "compiler": {}, + "expireTime": 31536000, + "staticPageGenerationTimeout": 60, + "output": "standalone", + "modularizeImports": { + "@mui/icons-material": { + "transform": "@mui/icons-material/{{member}}" + }, + "lodash": { + "transform": "lodash/{{member}}" + } + }, + "outputFileTracingRoot": "/Users/Working/router4", + "cacheComponents": false, + "cacheLife": { + "default": { + "stale": 300, + "revalidate": 900, + "expire": 4294967294 + }, + "seconds": { + "stale": 30, + "revalidate": 1, + "expire": 60 + }, + "minutes": { + "stale": 300, + "revalidate": 60, + "expire": 3600 + }, + "hours": { + "stale": 300, + "revalidate": 3600, + "expire": 86400 + }, + "days": { + "stale": 300, + "revalidate": 86400, + "expire": 604800 + }, + "weeks": { + "stale": 300, + "revalidate": 604800, + "expire": 2592000 + }, + "max": { + "stale": 300, + "revalidate": 2592000, + "expire": 31536000 + } + }, + "cacheHandlers": {}, + "experimental": { + "appNewScrollHandler": false, + "useSkewCookie": false, + "cssChunking": true, + "multiZoneDraftMode": false, + "appNavFailHandling": false, + "prerenderEarlyExit": true, + "serverMinification": true, + "linkNoTouchStart": false, + "caseSensitiveRoutes": false, + "cachedNavigations": false, + "partialFallbacks": false, + "dynamicOnHover": false, + "varyParams": false, + "prefetchInlining": false, + "preloadEntriesOnStart": true, + "clientRouterFilter": true, + "clientRouterFilterRedirects": false, + "fetchCacheKeyPrefix": "", + "proxyPrefetch": "flexible", + "optimisticClientCache": true, + "manualClientBasePath": false, + "cpus": 7, + "memoryBasedWorkersCount": false, + "imgOptConcurrency": null, + "imgOptTimeoutInSeconds": 7, + "imgOptMaxInputPixels": 268402689, + "imgOptSequentialRead": null, + "imgOptSkipMetadata": null, + "isrFlushToDisk": true, + "workerThreads": false, + "optimizeCss": false, + "nextScriptWorkers": false, + "scrollRestoration": false, + "externalDir": false, + "disableOptimizedLoading": false, + "gzipSize": true, + "craCompat": false, + "esmExternals": true, + "fullySpecified": false, + "swcTraceProfiling": false, + "forceSwcTransforms": false, + "largePageDataBytes": 128000, + "typedEnv": false, + "parallelServerCompiles": false, + "parallelServerBuildTraces": false, + "ppr": false, + "authInterrupts": false, + "webpackMemoryOptimizations": false, + "optimizeServerReact": true, + "strictRouteTypes": false, + "viewTransition": false, + "removeUncaughtErrorAndRejectionListeners": false, + "validateRSCRequestHeaders": false, + "staleTimes": { + "dynamic": 0, + "static": 300 + }, + "reactDebugChannel": true, + "serverComponentsHmrCache": true, + "staticGenerationMaxConcurrency": 8, + "staticGenerationMinPagesPerWorker": 25, + "transitionIndicator": false, + "gestureTransition": false, + "inlineCss": false, + "useCache": false, + "globalNotFound": false, + "browserDebugInfoInTerminal": "warn", + "lockDistDir": true, + "proxyClientMaxBodySize": 10485760, + "hideLogsAfterAbort": false, + "mcpServer": true, + "turbopackFileSystemCacheForDev": true, + "turbopackFileSystemCacheForBuild": false, + "turbopackInferModuleSideEffects": true, + "turbopackPluginRuntimeStrategy": "childProcesses", + "optimizePackageImports": [ + "lucide-react", + "date-fns", + "lodash-es", + "ramda", + "antd", + "react-bootstrap", + "ahooks", + "@ant-design/icons", + "@headlessui/react", + "@headlessui-float/react", + "@heroicons/react/20/solid", + "@heroicons/react/24/solid", + "@heroicons/react/24/outline", + "@visx/visx", + "@tremor/react", + "rxjs", + "@mui/material", + "@mui/icons-material", + "recharts", + "react-use", + "effect", + "@effect/schema", + "@effect/platform", + "@effect/platform-node", + "@effect/platform-browser", + "@effect/platform-bun", + "@effect/sql", + "@effect/sql-mssql", + "@effect/sql-mysql2", + "@effect/sql-pg", + "@effect/sql-sqlite-node", + "@effect/sql-sqlite-bun", + "@effect/sql-sqlite-wasm", + "@effect/sql-sqlite-react-native", + "@effect/rpc", + "@effect/rpc-http", + "@effect/typeclass", + "@effect/experimental", + "@effect/opentelemetry", + "@material-ui/core", + "@material-ui/icons", + "@tabler/icons-react", + "mui-core", + "react-icons/ai", + "react-icons/bi", + "react-icons/bs", + "react-icons/cg", + "react-icons/ci", + "react-icons/di", + "react-icons/fa", + "react-icons/fa6", + "react-icons/fc", + "react-icons/fi", + "react-icons/gi", + "react-icons/go", + "react-icons/gr", + "react-icons/hi", + "react-icons/hi2", + "react-icons/im", + "react-icons/io", + "react-icons/io5", + "react-icons/lia", + "react-icons/lib", + "react-icons/lu", + "react-icons/md", + "react-icons/pi", + "react-icons/ri", + "react-icons/rx", + "react-icons/si", + "react-icons/sl", + "react-icons/tb", + "react-icons/tfi", + "react-icons/ti", + "react-icons/vsc", + "react-icons/wi" + ], + "trustHostHeader": false, + "isExperimentalCompile": false + }, + "htmlLimitedBots": "[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight", + "bundlePagesRouterDependencies": false, + "configFileName": "next.config.mjs", + "serverExternalPackages": [ + "better-sqlite3" + ], + "turbopack": { + "root": "/Users/Working/router4" + }, + "distDirRoot": ".next", + "_originalRewrites": { + "beforeFiles": [], + "afterFiles": [ + { + "source": "/v1/v1/:path*", + "destination": "/api/v1/:path*" + }, + { + "source": "/v1/v1", + "destination": "/api/v1" + }, + { + "source": "/codex/:path*", + "destination": "/api/v1/responses" + }, + { + "source": "/v1/:path*", + "destination": "/api/v1/:path*" + }, + { + "source": "/v1", + "destination": "/api/v1" + } + ], + "fallback": [] + } + }, + "appDir": "/Users/Working/router4/app", + "relativeAppDir": "app", + "files": [ + ".next/routes-manifest.json", + ".next/server/pages-manifest.json", + ".next/build-manifest.json", + ".next/prerender-manifest.json", + ".next/server/functions-config-manifest.json", + ".next/server/middleware-manifest.json", + ".next/server/middleware-build-manifest.js", + ".next/server/middleware-react-loadable-manifest.js", + ".next/react-loadable-manifest.json", + ".next/server/app-paths-manifest.json", + ".next/app-path-routes-manifest.json", + ".next/server/server-reference-manifest.js", + ".next/server/server-reference-manifest.json", + ".next/server/prefetch-hints.json", + ".next/BUILD_ID", + ".next/server/next-font-manifest.js", + ".next/server/next-font-manifest.json", + ".next/required-server-files.json" + ], + "ignore": [] +} \ No newline at end of file diff --git a/cli/app/.next/routes-manifest.json b/cli/app/.next/routes-manifest.json new file mode 100644 index 00000000000..8392cf87aee --- /dev/null +++ b/cli/app/.next/routes-manifest.json @@ -0,0 +1,954 @@ +{ + "version": 3, + "pages404": true, + "appType": "app", + "caseSensitive": false, + "basePath": "", + "redirects": [ + { + "source": "/:path+/", + "destination": "/:path+", + "internal": true, + "priority": true, + "statusCode": 308, + "regex": "^(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))/$" + } + ], + "headers": [], + "onMatchHeaders": [], + "rewrites": { + "beforeFiles": [], + "afterFiles": [ + { + "source": "/v1/v1/:path*", + "destination": "/api/v1/:path*", + "regex": "^/v1/v1(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$" + }, + { + "source": "/v1/v1", + "destination": "/api/v1", + "regex": "^/v1/v1(?:/)?$" + }, + { + "source": "/codex/:path*", + "destination": "/api/v1/responses", + "regex": "^/codex(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$" + }, + { + "source": "/v1/:path*", + "destination": "/api/v1/:path*", + "regex": "^/v1(?:/((?:[^/]+?)(?:/(?:[^/]+?))*))?(?:/)?$" + }, + { + "source": "/v1", + "destination": "/api/v1", + "regex": "^/v1(?:/)?$" + } + ], + "fallback": [] + }, + "dynamicRoutes": [ + { + "page": "/api/combos/[id]", + "regex": "^/api/combos/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/combos/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/keys/[id]", + "regex": "^/api/keys/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/keys/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/oauth/[provider]/[action]", + "regex": "^/api/oauth/([^/]+?)/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPprovider": "nxtPprovider", + "nxtPaction": "nxtPaction" + }, + "namedRegex": "^/api/oauth/(?[^/]+?)/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/provider-nodes/[id]", + "regex": "^/api/provider\\-nodes/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/provider\\-nodes/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/providers/[id]", + "regex": "^/api/providers/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/providers/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/providers/[id]/models", + "regex": "^/api/providers/([^/]+?)/models(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/providers/(?[^/]+?)/models(?:/)?$" + }, + { + "page": "/api/providers/[id]/test", + "regex": "^/api/providers/([^/]+?)/test(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/providers/(?[^/]+?)/test(?:/)?$" + }, + { + "page": "/api/providers/[id]/test-models", + "regex": "^/api/providers/([^/]+?)/test\\-models(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/providers/(?[^/]+?)/test\\-models(?:/)?$" + }, + { + "page": "/api/proxy-pools/[id]", + "regex": "^/api/proxy\\-pools/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/proxy\\-pools/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/proxy-pools/[id]/test", + "regex": "^/api/proxy\\-pools/([^/]+?)/test(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/api/proxy\\-pools/(?[^/]+?)/test(?:/)?$" + }, + { + "page": "/api/usage/[connectionId]", + "regex": "^/api/usage/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPconnectionId": "nxtPconnectionId" + }, + "namedRegex": "^/api/usage/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/v1/models/[kind]", + "regex": "^/api/v1/models/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPkind": "nxtPkind" + }, + "namedRegex": "^/api/v1/models/(?[^/]+?)(?:/)?$" + }, + { + "page": "/api/v1beta/models/[...path]", + "regex": "^/api/v1beta/models/(.+?)(?:/)?$", + "routeKeys": { + "nxtPpath": "nxtPpath" + }, + "namedRegex": "^/api/v1beta/models/(?.+?)(?:/)?$" + }, + { + "page": "/dashboard/media-providers/combo/[id]", + "regex": "^/dashboard/media\\-providers/combo/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/dashboard/media\\-providers/combo/(?[^/]+?)(?:/)?$" + }, + { + "page": "/dashboard/media-providers/[kind]", + "regex": "^/dashboard/media\\-providers/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPkind": "nxtPkind" + }, + "namedRegex": "^/dashboard/media\\-providers/(?[^/]+?)(?:/)?$" + }, + { + "page": "/dashboard/media-providers/[kind]/[id]", + "regex": "^/dashboard/media\\-providers/([^/]+?)/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPkind": "nxtPkind", + "nxtPid": "nxtPid" + }, + "namedRegex": "^/dashboard/media\\-providers/(?[^/]+?)/(?[^/]+?)(?:/)?$" + }, + { + "page": "/dashboard/providers/[id]", + "regex": "^/dashboard/providers/([^/]+?)(?:/)?$", + "routeKeys": { + "nxtPid": "nxtPid" + }, + "namedRegex": "^/dashboard/providers/(?[^/]+?)(?:/)?$" + } + ], + "staticRoutes": [ + { + "page": "/", + "regex": "^/(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/(?:/)?$" + }, + { + "page": "/_global-error", + "regex": "^/_global\\-error(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/_global\\-error(?:/)?$" + }, + { + "page": "/_not-found", + "regex": "^/_not\\-found(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/_not\\-found(?:/)?$" + }, + { + "page": "/api/auth/login", + "regex": "^/api/auth/login(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/auth/login(?:/)?$" + }, + { + "page": "/api/auth/logout", + "regex": "^/api/auth/logout(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/auth/logout(?:/)?$" + }, + { + "page": "/api/cli-tools/antigravity-mitm", + "regex": "^/api/cli\\-tools/antigravity\\-mitm(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/antigravity\\-mitm(?:/)?$" + }, + { + "page": "/api/cli-tools/antigravity-mitm/alias", + "regex": "^/api/cli\\-tools/antigravity\\-mitm/alias(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/antigravity\\-mitm/alias(?:/)?$" + }, + { + "page": "/api/cli-tools/claude-settings", + "regex": "^/api/cli\\-tools/claude\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/claude\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/codex-settings", + "regex": "^/api/cli\\-tools/codex\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/codex\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/copilot-settings", + "regex": "^/api/cli\\-tools/copilot\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/copilot\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/cowork-mcp-registry", + "regex": "^/api/cli\\-tools/cowork\\-mcp\\-registry(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/cowork\\-mcp\\-registry(?:/)?$" + }, + { + "page": "/api/cli-tools/cowork-settings", + "regex": "^/api/cli\\-tools/cowork\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/cowork\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/droid-settings", + "regex": "^/api/cli\\-tools/droid\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/droid\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/hermes-settings", + "regex": "^/api/cli\\-tools/hermes\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/hermes\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/openclaw-settings", + "regex": "^/api/cli\\-tools/openclaw\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/openclaw\\-settings(?:/)?$" + }, + { + "page": "/api/cli-tools/opencode-settings", + "regex": "^/api/cli\\-tools/opencode\\-settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cli\\-tools/opencode\\-settings(?:/)?$" + }, + { + "page": "/api/cloud/auth", + "regex": "^/api/cloud/auth(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cloud/auth(?:/)?$" + }, + { + "page": "/api/cloud/credentials/update", + "regex": "^/api/cloud/credentials/update(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cloud/credentials/update(?:/)?$" + }, + { + "page": "/api/cloud/model/resolve", + "regex": "^/api/cloud/model/resolve(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cloud/model/resolve(?:/)?$" + }, + { + "page": "/api/cloud/models/alias", + "regex": "^/api/cloud/models/alias(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/cloud/models/alias(?:/)?$" + }, + { + "page": "/api/combos", + "regex": "^/api/combos(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/combos(?:/)?$" + }, + { + "page": "/api/health", + "regex": "^/api/health(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/health(?:/)?$" + }, + { + "page": "/api/init", + "regex": "^/api/init(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/init(?:/)?$" + }, + { + "page": "/api/keys", + "regex": "^/api/keys(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/keys(?:/)?$" + }, + { + "page": "/api/locale", + "regex": "^/api/locale(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/locale(?:/)?$" + }, + { + "page": "/api/media-providers/tts/deepgram/voices", + "regex": "^/api/media\\-providers/tts/deepgram/voices(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/media\\-providers/tts/deepgram/voices(?:/)?$" + }, + { + "page": "/api/media-providers/tts/elevenlabs/voices", + "regex": "^/api/media\\-providers/tts/elevenlabs/voices(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/media\\-providers/tts/elevenlabs/voices(?:/)?$" + }, + { + "page": "/api/media-providers/tts/inworld/voices", + "regex": "^/api/media\\-providers/tts/inworld/voices(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/media\\-providers/tts/inworld/voices(?:/)?$" + }, + { + "page": "/api/media-providers/tts/voices", + "regex": "^/api/media\\-providers/tts/voices(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/media\\-providers/tts/voices(?:/)?$" + }, + { + "page": "/api/models", + "regex": "^/api/models(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/models(?:/)?$" + }, + { + "page": "/api/models/alias", + "regex": "^/api/models/alias(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/models/alias(?:/)?$" + }, + { + "page": "/api/models/availability", + "regex": "^/api/models/availability(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/models/availability(?:/)?$" + }, + { + "page": "/api/models/custom", + "regex": "^/api/models/custom(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/models/custom(?:/)?$" + }, + { + "page": "/api/models/disabled", + "regex": "^/api/models/disabled(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/models/disabled(?:/)?$" + }, + { + "page": "/api/models/test", + "regex": "^/api/models/test(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/models/test(?:/)?$" + }, + { + "page": "/api/oauth/cursor/auto-import", + "regex": "^/api/oauth/cursor/auto\\-import(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/cursor/auto\\-import(?:/)?$" + }, + { + "page": "/api/oauth/cursor/import", + "regex": "^/api/oauth/cursor/import(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/cursor/import(?:/)?$" + }, + { + "page": "/api/oauth/gitlab/pat", + "regex": "^/api/oauth/gitlab/pat(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/gitlab/pat(?:/)?$" + }, + { + "page": "/api/oauth/iflow/cookie", + "regex": "^/api/oauth/iflow/cookie(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/iflow/cookie(?:/)?$" + }, + { + "page": "/api/oauth/kiro/auto-import", + "regex": "^/api/oauth/kiro/auto\\-import(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/kiro/auto\\-import(?:/)?$" + }, + { + "page": "/api/oauth/kiro/import", + "regex": "^/api/oauth/kiro/import(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/kiro/import(?:/)?$" + }, + { + "page": "/api/oauth/kiro/social-authorize", + "regex": "^/api/oauth/kiro/social\\-authorize(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/kiro/social\\-authorize(?:/)?$" + }, + { + "page": "/api/oauth/kiro/social-exchange", + "regex": "^/api/oauth/kiro/social\\-exchange(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/oauth/kiro/social\\-exchange(?:/)?$" + }, + { + "page": "/api/pricing", + "regex": "^/api/pricing(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/pricing(?:/)?$" + }, + { + "page": "/api/provider-nodes", + "regex": "^/api/provider\\-nodes(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/provider\\-nodes(?:/)?$" + }, + { + "page": "/api/provider-nodes/validate", + "regex": "^/api/provider\\-nodes/validate(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/provider\\-nodes/validate(?:/)?$" + }, + { + "page": "/api/providers", + "regex": "^/api/providers(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/providers(?:/)?$" + }, + { + "page": "/api/providers/client", + "regex": "^/api/providers/client(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/providers/client(?:/)?$" + }, + { + "page": "/api/providers/kilo/free-models", + "regex": "^/api/providers/kilo/free\\-models(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/providers/kilo/free\\-models(?:/)?$" + }, + { + "page": "/api/providers/suggested-models", + "regex": "^/api/providers/suggested\\-models(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/providers/suggested\\-models(?:/)?$" + }, + { + "page": "/api/providers/test-batch", + "regex": "^/api/providers/test\\-batch(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/providers/test\\-batch(?:/)?$" + }, + { + "page": "/api/providers/validate", + "regex": "^/api/providers/validate(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/providers/validate(?:/)?$" + }, + { + "page": "/api/proxy-pools", + "regex": "^/api/proxy\\-pools(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/proxy\\-pools(?:/)?$" + }, + { + "page": "/api/proxy-pools/vercel-deploy", + "regex": "^/api/proxy\\-pools/vercel\\-deploy(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/proxy\\-pools/vercel\\-deploy(?:/)?$" + }, + { + "page": "/api/settings", + "regex": "^/api/settings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/settings(?:/)?$" + }, + { + "page": "/api/settings/database", + "regex": "^/api/settings/database(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/settings/database(?:/)?$" + }, + { + "page": "/api/settings/proxy-test", + "regex": "^/api/settings/proxy\\-test(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/settings/proxy\\-test(?:/)?$" + }, + { + "page": "/api/settings/require-login", + "regex": "^/api/settings/require\\-login(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/settings/require\\-login(?:/)?$" + }, + { + "page": "/api/shutdown", + "regex": "^/api/shutdown(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/shutdown(?:/)?$" + }, + { + "page": "/api/tags", + "regex": "^/api/tags(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tags(?:/)?$" + }, + { + "page": "/api/translator/console-logs", + "regex": "^/api/translator/console\\-logs(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/translator/console\\-logs(?:/)?$" + }, + { + "page": "/api/translator/console-logs/stream", + "regex": "^/api/translator/console\\-logs/stream(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/translator/console\\-logs/stream(?:/)?$" + }, + { + "page": "/api/translator/load", + "regex": "^/api/translator/load(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/translator/load(?:/)?$" + }, + { + "page": "/api/translator/save", + "regex": "^/api/translator/save(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/translator/save(?:/)?$" + }, + { + "page": "/api/translator/send", + "regex": "^/api/translator/send(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/translator/send(?:/)?$" + }, + { + "page": "/api/translator/translate", + "regex": "^/api/translator/translate(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/translator/translate(?:/)?$" + }, + { + "page": "/api/tunnel/disable", + "regex": "^/api/tunnel/disable(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/disable(?:/)?$" + }, + { + "page": "/api/tunnel/enable", + "regex": "^/api/tunnel/enable(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/enable(?:/)?$" + }, + { + "page": "/api/tunnel/status", + "regex": "^/api/tunnel/status(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/status(?:/)?$" + }, + { + "page": "/api/tunnel/tailscale-check", + "regex": "^/api/tunnel/tailscale\\-check(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/tailscale\\-check(?:/)?$" + }, + { + "page": "/api/tunnel/tailscale-disable", + "regex": "^/api/tunnel/tailscale\\-disable(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/tailscale\\-disable(?:/)?$" + }, + { + "page": "/api/tunnel/tailscale-enable", + "regex": "^/api/tunnel/tailscale\\-enable(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/tailscale\\-enable(?:/)?$" + }, + { + "page": "/api/tunnel/tailscale-install", + "regex": "^/api/tunnel/tailscale\\-install(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/tailscale\\-install(?:/)?$" + }, + { + "page": "/api/tunnel/tailscale-login", + "regex": "^/api/tunnel/tailscale\\-login(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/tailscale\\-login(?:/)?$" + }, + { + "page": "/api/tunnel/tailscale-start-daemon", + "regex": "^/api/tunnel/tailscale\\-start\\-daemon(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/tunnel/tailscale\\-start\\-daemon(?:/)?$" + }, + { + "page": "/api/usage/chart", + "regex": "^/api/usage/chart(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/chart(?:/)?$" + }, + { + "page": "/api/usage/history", + "regex": "^/api/usage/history(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/history(?:/)?$" + }, + { + "page": "/api/usage/logs", + "regex": "^/api/usage/logs(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/logs(?:/)?$" + }, + { + "page": "/api/usage/providers", + "regex": "^/api/usage/providers(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/providers(?:/)?$" + }, + { + "page": "/api/usage/request-details", + "regex": "^/api/usage/request\\-details(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/request\\-details(?:/)?$" + }, + { + "page": "/api/usage/request-logs", + "regex": "^/api/usage/request\\-logs(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/request\\-logs(?:/)?$" + }, + { + "page": "/api/usage/stats", + "regex": "^/api/usage/stats(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/stats(?:/)?$" + }, + { + "page": "/api/usage/stream", + "regex": "^/api/usage/stream(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/usage/stream(?:/)?$" + }, + { + "page": "/api/v1", + "regex": "^/api/v1(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1(?:/)?$" + }, + { + "page": "/api/v1/api/chat", + "regex": "^/api/v1/api/chat(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/api/chat(?:/)?$" + }, + { + "page": "/api/v1/audio/speech", + "regex": "^/api/v1/audio/speech(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/audio/speech(?:/)?$" + }, + { + "page": "/api/v1/audio/transcriptions", + "regex": "^/api/v1/audio/transcriptions(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/audio/transcriptions(?:/)?$" + }, + { + "page": "/api/v1/audio/voices", + "regex": "^/api/v1/audio/voices(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/audio/voices(?:/)?$" + }, + { + "page": "/api/v1/chat/completions", + "regex": "^/api/v1/chat/completions(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/chat/completions(?:/)?$" + }, + { + "page": "/api/v1/embeddings", + "regex": "^/api/v1/embeddings(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/embeddings(?:/)?$" + }, + { + "page": "/api/v1/images/generations", + "regex": "^/api/v1/images/generations(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/images/generations(?:/)?$" + }, + { + "page": "/api/v1/messages", + "regex": "^/api/v1/messages(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/messages(?:/)?$" + }, + { + "page": "/api/v1/messages/count_tokens", + "regex": "^/api/v1/messages/count_tokens(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/messages/count_tokens(?:/)?$" + }, + { + "page": "/api/v1/models", + "regex": "^/api/v1/models(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/models(?:/)?$" + }, + { + "page": "/api/v1/models/info", + "regex": "^/api/v1/models/info(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/models/info(?:/)?$" + }, + { + "page": "/api/v1/responses", + "regex": "^/api/v1/responses(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/responses(?:/)?$" + }, + { + "page": "/api/v1/responses/compact", + "regex": "^/api/v1/responses/compact(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/responses/compact(?:/)?$" + }, + { + "page": "/api/v1/search", + "regex": "^/api/v1/search(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/search(?:/)?$" + }, + { + "page": "/api/v1/web/fetch", + "regex": "^/api/v1/web/fetch(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1/web/fetch(?:/)?$" + }, + { + "page": "/api/v1beta/models", + "regex": "^/api/v1beta/models(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/v1beta/models(?:/)?$" + }, + { + "page": "/api/version", + "regex": "^/api/version(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/version(?:/)?$" + }, + { + "page": "/api/version/update", + "regex": "^/api/version/update(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/api/version/update(?:/)?$" + }, + { + "page": "/callback", + "regex": "^/callback(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/callback(?:/)?$" + }, + { + "page": "/dashboard", + "regex": "^/dashboard(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard(?:/)?$" + }, + { + "page": "/dashboard/basic-chat", + "regex": "^/dashboard/basic\\-chat(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/basic\\-chat(?:/)?$" + }, + { + "page": "/dashboard/cli-tools", + "regex": "^/dashboard/cli\\-tools(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/cli\\-tools(?:/)?$" + }, + { + "page": "/dashboard/combos", + "regex": "^/dashboard/combos(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/combos(?:/)?$" + }, + { + "page": "/dashboard/console-log", + "regex": "^/dashboard/console\\-log(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/console\\-log(?:/)?$" + }, + { + "page": "/dashboard/endpoint", + "regex": "^/dashboard/endpoint(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/endpoint(?:/)?$" + }, + { + "page": "/dashboard/media-providers/web", + "regex": "^/dashboard/media\\-providers/web(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/media\\-providers/web(?:/)?$" + }, + { + "page": "/dashboard/mitm", + "regex": "^/dashboard/mitm(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/mitm(?:/)?$" + }, + { + "page": "/dashboard/profile", + "regex": "^/dashboard/profile(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/profile(?:/)?$" + }, + { + "page": "/dashboard/providers", + "regex": "^/dashboard/providers(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/providers(?:/)?$" + }, + { + "page": "/dashboard/providers/new", + "regex": "^/dashboard/providers/new(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/providers/new(?:/)?$" + }, + { + "page": "/dashboard/proxy-pools", + "regex": "^/dashboard/proxy\\-pools(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/proxy\\-pools(?:/)?$" + }, + { + "page": "/dashboard/quota", + "regex": "^/dashboard/quota(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/quota(?:/)?$" + }, + { + "page": "/dashboard/settings/pricing", + "regex": "^/dashboard/settings/pricing(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/settings/pricing(?:/)?$" + }, + { + "page": "/dashboard/skills", + "regex": "^/dashboard/skills(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/skills(?:/)?$" + }, + { + "page": "/dashboard/translator", + "regex": "^/dashboard/translator(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/translator(?:/)?$" + }, + { + "page": "/dashboard/usage", + "regex": "^/dashboard/usage(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/dashboard/usage(?:/)?$" + }, + { + "page": "/favicon.ico", + "regex": "^/favicon\\.ico(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/favicon\\.ico(?:/)?$" + }, + { + "page": "/landing", + "regex": "^/landing(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/landing(?:/)?$" + }, + { + "page": "/login", + "regex": "^/login(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/login(?:/)?$" + }, + { + "page": "/manifest.webmanifest", + "regex": "^/manifest\\.webmanifest(?:/)?$", + "routeKeys": {}, + "namedRegex": "^/manifest\\.webmanifest(?:/)?$" + } + ], + "dataRoutes": [], + "rsc": { + "header": "rsc", + "varyHeader": "rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch", + "prefetchHeader": "next-router-prefetch", + "didPostponeHeader": "x-nextjs-postponed", + "contentTypeHeader": "text/x-component", + "suffix": ".rsc", + "prefetchSegmentHeader": "next-router-segment-prefetch", + "prefetchSegmentSuffix": ".segment.rsc", + "prefetchSegmentDirSuffix": ".segments", + "clientParamParsing": false, + "dynamicRSCPrerender": false + }, + "rewriteHeaders": { + "pathHeader": "x-nextjs-rewritten-path", + "queryHeader": "x-nextjs-rewritten-query" + } +} \ No newline at end of file diff --git a/cli/app/.next/server/app-paths-manifest.json b/cli/app/.next/server/app-paths-manifest.json new file mode 100644 index 00000000000..6b12a7f8b79 --- /dev/null +++ b/cli/app/.next/server/app-paths-manifest.json @@ -0,0 +1,143 @@ +{ + "/_not-found/page": "app/_not-found/page.js", + "/_global-error/page": "app/_global-error/page.js", + "/api/auth/login/route": "app/api/auth/login/route.js", + "/api/auth/logout/route": "app/api/auth/logout/route.js", + "/api/cli-tools/antigravity-mitm/alias/route": "app/api/cli-tools/antigravity-mitm/alias/route.js", + "/api/cli-tools/antigravity-mitm/route": "app/api/cli-tools/antigravity-mitm/route.js", + "/api/cli-tools/claude-settings/route": "app/api/cli-tools/claude-settings/route.js", + "/api/cli-tools/codex-settings/route": "app/api/cli-tools/codex-settings/route.js", + "/api/cli-tools/copilot-settings/route": "app/api/cli-tools/copilot-settings/route.js", + "/api/cli-tools/cowork-mcp-registry/route": "app/api/cli-tools/cowork-mcp-registry/route.js", + "/api/cli-tools/cowork-settings/route": "app/api/cli-tools/cowork-settings/route.js", + "/api/cli-tools/droid-settings/route": "app/api/cli-tools/droid-settings/route.js", + "/api/cli-tools/hermes-settings/route": "app/api/cli-tools/hermes-settings/route.js", + "/api/cli-tools/openclaw-settings/route": "app/api/cli-tools/openclaw-settings/route.js", + "/api/cli-tools/opencode-settings/route": "app/api/cli-tools/opencode-settings/route.js", + "/api/cloud/auth/route": "app/api/cloud/auth/route.js", + "/api/cloud/credentials/update/route": "app/api/cloud/credentials/update/route.js", + "/api/cloud/model/resolve/route": "app/api/cloud/model/resolve/route.js", + "/api/cloud/models/alias/route": "app/api/cloud/models/alias/route.js", + "/api/combos/[id]/route": "app/api/combos/[id]/route.js", + "/api/health/route": "app/api/health/route.js", + "/api/init/route": "app/api/init/route.js", + "/api/keys/[id]/route": "app/api/keys/[id]/route.js", + "/api/locale/route": "app/api/locale/route.js", + "/api/media-providers/tts/deepgram/voices/route": "app/api/media-providers/tts/deepgram/voices/route.js", + "/api/media-providers/tts/elevenlabs/voices/route": "app/api/media-providers/tts/elevenlabs/voices/route.js", + "/api/media-providers/tts/inworld/voices/route": "app/api/media-providers/tts/inworld/voices/route.js", + "/api/media-providers/tts/voices/route": "app/api/media-providers/tts/voices/route.js", + "/api/models/availability/route": "app/api/models/availability/route.js", + "/api/models/route": "app/api/models/route.js", + "/api/models/test/route": "app/api/models/test/route.js", + "/api/oauth/cursor/auto-import/route": "app/api/oauth/cursor/auto-import/route.js", + "/api/oauth/cursor/import/route": "app/api/oauth/cursor/import/route.js", + "/api/oauth/gitlab/pat/route": "app/api/oauth/gitlab/pat/route.js", + "/api/oauth/iflow/cookie/route": "app/api/oauth/iflow/cookie/route.js", + "/api/oauth/kiro/auto-import/route": "app/api/oauth/kiro/auto-import/route.js", + "/api/oauth/kiro/import/route": "app/api/oauth/kiro/import/route.js", + "/api/oauth/kiro/social-authorize/route": "app/api/oauth/kiro/social-authorize/route.js", + "/api/oauth/kiro/social-exchange/route": "app/api/oauth/kiro/social-exchange/route.js", + "/api/pricing/route": "app/api/pricing/route.js", + "/api/provider-nodes/[id]/route": "app/api/provider-nodes/[id]/route.js", + "/api/provider-nodes/validate/route": "app/api/provider-nodes/validate/route.js", + "/api/providers/[id]/models/route": "app/api/providers/[id]/models/route.js", + "/api/providers/[id]/test-models/route": "app/api/providers/[id]/test-models/route.js", + "/api/providers/[id]/test/route": "app/api/providers/[id]/test/route.js", + "/api/providers/client/route": "app/api/providers/client/route.js", + "/api/providers/kilo/free-models/route": "app/api/providers/kilo/free-models/route.js", + "/api/providers/test-batch/route": "app/api/providers/test-batch/route.js", + "/api/providers/validate/route": "app/api/providers/validate/route.js", + "/api/settings/require-login/route": "app/api/settings/require-login/route.js", + "/api/shutdown/route": "app/api/shutdown/route.js", + "/api/tags/route": "app/api/tags/route.js", + "/api/translator/console-logs/route": "app/api/translator/console-logs/route.js", + "/api/translator/load/route": "app/api/translator/load/route.js", + "/api/translator/save/route": "app/api/translator/save/route.js", + "/api/translator/send/route": "app/api/translator/send/route.js", + "/api/translator/translate/route": "app/api/translator/translate/route.js", + "/api/tunnel/disable/route": "app/api/tunnel/disable/route.js", + "/api/tunnel/enable/route": "app/api/tunnel/enable/route.js", + "/api/tunnel/status/route": "app/api/tunnel/status/route.js", + "/api/tunnel/tailscale-check/route": "app/api/tunnel/tailscale-check/route.js", + "/api/tunnel/tailscale-disable/route": "app/api/tunnel/tailscale-disable/route.js", + "/api/tunnel/tailscale-enable/route": "app/api/tunnel/tailscale-enable/route.js", + "/api/tunnel/tailscale-install/route": "app/api/tunnel/tailscale-install/route.js", + "/api/tunnel/tailscale-login/route": "app/api/tunnel/tailscale-login/route.js", + "/api/tunnel/tailscale-start-daemon/route": "app/api/tunnel/tailscale-start-daemon/route.js", + "/api/usage/chart/route": "app/api/usage/chart/route.js", + "/api/usage/history/route": "app/api/usage/history/route.js", + "/api/usage/logs/route": "app/api/usage/logs/route.js", + "/api/usage/providers/route": "app/api/usage/providers/route.js", + "/api/usage/request-details/route": "app/api/usage/request-details/route.js", + "/api/usage/request-logs/route": "app/api/usage/request-logs/route.js", + "/api/v1/api/chat/route": "app/api/v1/api/chat/route.js", + "/api/v1/audio/speech/route": "app/api/v1/audio/speech/route.js", + "/api/v1/audio/voices/route": "app/api/v1/audio/voices/route.js", + "/api/v1/chat/completions/route": "app/api/v1/chat/completions/route.js", + "/api/v1/embeddings/route": "app/api/v1/embeddings/route.js", + "/api/v1/images/generations/route": "app/api/v1/images/generations/route.js", + "/api/v1/messages/count_tokens/route": "app/api/v1/messages/count_tokens/route.js", + "/api/v1/messages/route": "app/api/v1/messages/route.js", + "/api/v1/models/[kind]/route": "app/api/v1/models/[kind]/route.js", + "/api/v1/models/info/route": "app/api/v1/models/info/route.js", + "/api/v1/models/route": "app/api/v1/models/route.js", + "/api/v1/responses/compact/route": "app/api/v1/responses/compact/route.js", + "/api/v1/responses/route": "app/api/v1/responses/route.js", + "/api/v1/route": "app/api/v1/route.js", + "/api/v1/search/route": "app/api/v1/search/route.js", + "/api/v1/web/fetch/route": "app/api/v1/web/fetch/route.js", + "/api/v1beta/models/[...path]/route": "app/api/v1beta/models/[...path]/route.js", + "/api/v1beta/models/route": "app/api/v1beta/models/route.js", + "/api/version/route": "app/api/version/route.js", + "/api/version/update/route": "app/api/version/update/route.js", + "/favicon.ico/route": "app/favicon.ico/route.js", + "/manifest.webmanifest/route": "app/manifest.webmanifest/route.js", + "/api/combos/route": "app/api/combos/route.js", + "/api/keys/route": "app/api/keys/route.js", + "/api/models/alias/route": "app/api/models/alias/route.js", + "/api/models/custom/route": "app/api/models/custom/route.js", + "/api/models/disabled/route": "app/api/models/disabled/route.js", + "/api/oauth/[provider]/[action]/route": "app/api/oauth/[provider]/[action]/route.js", + "/api/provider-nodes/route": "app/api/provider-nodes/route.js", + "/api/providers/[id]/route": "app/api/providers/[id]/route.js", + "/api/providers/route": "app/api/providers/route.js", + "/api/providers/suggested-models/route": "app/api/providers/suggested-models/route.js", + "/api/proxy-pools/[id]/route": "app/api/proxy-pools/[id]/route.js", + "/api/proxy-pools/vercel-deploy/route": "app/api/proxy-pools/vercel-deploy/route.js", + "/api/settings/database/route": "app/api/settings/database/route.js", + "/api/settings/proxy-test/route": "app/api/settings/proxy-test/route.js", + "/api/proxy-pools/[id]/test/route": "app/api/proxy-pools/[id]/test/route.js", + "/api/proxy-pools/route": "app/api/proxy-pools/route.js", + "/api/settings/route": "app/api/settings/route.js", + "/api/translator/console-logs/stream/route": "app/api/translator/console-logs/stream/route.js", + "/api/usage/[connectionId]/route": "app/api/usage/[connectionId]/route.js", + "/api/usage/stats/route": "app/api/usage/stats/route.js", + "/api/usage/stream/route": "app/api/usage/stream/route.js", + "/api/v1/audio/transcriptions/route": "app/api/v1/audio/transcriptions/route.js", + "/callback/page": "app/callback/page.js", + "/dashboard/settings/pricing/page": "app/dashboard/settings/pricing/page.js", + "/landing/page": "app/landing/page.js", + "/login/page": "app/login/page.js", + "/page": "app/page.js", + "/(dashboard)/dashboard/basic-chat/page": "app/(dashboard)/dashboard/basic-chat/page.js", + "/(dashboard)/dashboard/cli-tools/page": "app/(dashboard)/dashboard/cli-tools/page.js", + "/(dashboard)/dashboard/combos/page": "app/(dashboard)/dashboard/combos/page.js", + "/(dashboard)/dashboard/endpoint/page": "app/(dashboard)/dashboard/endpoint/page.js", + "/(dashboard)/dashboard/media-providers/[kind]/[id]/page": "app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js", + "/(dashboard)/dashboard/media-providers/[kind]/page": "app/(dashboard)/dashboard/media-providers/[kind]/page.js", + "/(dashboard)/dashboard/media-providers/combo/[id]/page": "app/(dashboard)/dashboard/media-providers/combo/[id]/page.js", + "/(dashboard)/dashboard/media-providers/web/page": "app/(dashboard)/dashboard/media-providers/web/page.js", + "/(dashboard)/dashboard/mitm/page": "app/(dashboard)/dashboard/mitm/page.js", + "/(dashboard)/dashboard/page": "app/(dashboard)/dashboard/page.js", + "/(dashboard)/dashboard/providers/new/page": "app/(dashboard)/dashboard/providers/new/page.js", + "/(dashboard)/dashboard/quota/page": "app/(dashboard)/dashboard/quota/page.js", + "/(dashboard)/dashboard/skills/page": "app/(dashboard)/dashboard/skills/page.js", + "/(dashboard)/dashboard/translator/page": "app/(dashboard)/dashboard/translator/page.js", + "/(dashboard)/dashboard/usage/page": "app/(dashboard)/dashboard/usage/page.js", + "/(dashboard)/dashboard/console-log/page": "app/(dashboard)/dashboard/console-log/page.js", + "/(dashboard)/dashboard/profile/page": "app/(dashboard)/dashboard/profile/page.js", + "/(dashboard)/dashboard/proxy-pools/page": "app/(dashboard)/dashboard/proxy-pools/page.js", + "/(dashboard)/dashboard/providers/page": "app/(dashboard)/dashboard/providers/page.js", + "/(dashboard)/dashboard/providers/[id]/page": "app/(dashboard)/dashboard/providers/[id]/page.js" +} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js new file mode 100644 index 00000000000..18172f64a02 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=4465,a.ids=[4465],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6564:(a,b,c)=>{"use strict";c.d(b,{default:()=>k});var d=c(26835),e=c(53830),f=c(50450);function g(){return globalThis.crypto?.randomUUID?globalThis.crypto.randomUUID():`chat_${Date.now()}_${Math.random().toString(16).slice(2)}`}function h(a){if("string"==typeof a)return a;if(null==a)return"";if(Array.isArray(a))return a.map(h).filter(Boolean).join(" ");if("object"==typeof a){if("string"==typeof a.message)return a.message;if("string"==typeof a.error)return a.error;try{return JSON.stringify(a)}catch{}}return String(a)}function i(a=""){let b=h(a).replace(/\s+/g," ").trim();return b?b.length>52?`${b.slice(0,52).trimEnd()}…`:b:"New chat"}async function j(a){return await new Promise((b,c)=>{let d=new FileReader;d.onload=()=>b(String(d.result||"")),d.onerror=()=>c(d.error||Error("Failed to read file")),d.readAsDataURL(a)})}function k(){let[a,b]=(0,e.useState)([]),[c,k]=(0,e.useState)(!0),[l,m]=(0,e.useState)(""),[n,o]=(0,e.useState)([]),[p,q]=(0,e.useState)(""),[r,s]=(0,e.useState)(""),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)(""),[x,y]=(0,e.useState)([]),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(""),[D,E]=(0,e.useState)(""),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(!1),L=(0,e.useRef)(null),M=(0,e.useRef)(null);(0,e.useRef)(!1);let N=(0,e.useRef)(null),O=(0,e.useRef)(null),P=(0,e.useMemo)(()=>{let b=new Map;for(let c of a)for(let a of c.models)b.set(a.id,{...a,providerId:c.providerId,providerName:c.providerName});return b},[a]),Q=(0,e.useMemo)(()=>a.find(a=>a.providerId===r)||a[0]||null,[a,r]),R=(0,e.useMemo)(()=>{if(t&&P.has(t))return P.get(t);if(p){let a=n.find(a=>a.id===p);if(a?.modelId&&P.has(a.modelId))return P.get(a.modelId)}return Q?.models?.[0]||null},[t,P,Q,n,p]),S=(0,e.useMemo)(()=>n.find(a=>a.id===p)||null,[n,p]),T=S?.messages||[],U=(0,e.useMemo)(()=>[...n].sort((a,b)=>new Date(b.updatedAt).getTime()-new Date(a.updatedAt).getTime()),[n]),V=!z&&!!R&&(v.trim().length>0||x.length>0),W=(a,b)=>{o(c=>c.map(c=>c.id===a?b({...c,messages:Array.isArray(c.messages)?c.messages.map(a=>({...a})):[]}):c))},X=a=>a?{id:g(),title:"New chat",providerId:a.providerId,providerName:a.providerName,modelId:a.id,modelName:a.name,createdAt:new Date().toISOString(),updatedAt:new Date().toISOString(),messages:[]}:null,Y=async a=>{let b=Array.from(a.target.files||[]);if(0===b.length)return;let c=b.filter(a=>a.type.startsWith("image/"));if(0===c.length){a.target.value="";return}let d=await Promise.all(c.map(async a=>({id:g(),name:a.name,type:a.type,size:a.size,dataUrl:await j(a)})));y(a=>[...a,...d]),a.target.value=""},Z=async()=>{let a=R||Q?.models?.[0]||null;if(!a)return;let b=v.trim();if(!b&&0===x.length)return;let c=p,d=n.find(a=>a.id===c);if(!d){if(!(d=X(a)))return;c=d.id,o(a=>[d,...a]),q(c)}let e={id:g(),role:"user",content:b,attachments:x.map(a=>({id:a.id,name:a.name,type:a.type,dataUrl:a.dataUrl})),createdAt:new Date().toISOString()},f=g(),j={id:f,role:"assistant",content:"",createdAt:new Date().toISOString(),status:"streaming"},k=[...d.messages||[],e,j];o(d=>d.map(d=>d.id===c?{...d,providerId:a.providerId,providerName:a.providerName,modelId:a.id,modelName:a.name,messages:k,updatedAt:new Date().toISOString(),title:"New chat"===d.title?i(b):d.title}:d)),w(""),y([]),A(!0),C(f),E(""),M.current?.abort(),M.current=new AbortController;let l=k.filter(a=>"assistant"!==a.role||a.id!==f).map(a=>({role:a.role,content:"user"===a.role?function(a){let b=h(a.content).trim(),c=Array.isArray(a.attachments)?a.attachments:[];if(0===c.length)return b;let d=[];for(let a of(b&&d.push({type:"text",text:b}),c))a?.dataUrl&&d.push({type:"image_url",image_url:{url:a.dataUrl}});return d.length>0?d:b}(a):a.content}));try{var r;let d,e=await fetch("/api/dashboard/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream"},body:JSON.stringify({model:a.requestModel||a.id,messages:l,stream:!0}),signal:M.current.signal});if(!e.ok){let a=await e.json().catch(()=>({}));throw Error(h(a.error||a.message||`Request failed (${e.status})`))}let g=e.body?.getReader();if(!g){let a=await e.json().catch(()=>({})),b=h(a?.choices?.[0]?.message?.content||a?.output_text||a?.error||a?.message||"");W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:b,status:"done"}:a),updatedAt:new Date().toISOString()}));return}let j=new TextDecoder,k="",m="";for(;;){let{value:a,done:b}=await g.read();if(b)break;let d=(k+=j.decode(a,{stream:!0})).split(/\r?\n/);for(let a of(k=d.pop()||"",d)){let b=a.trim();if(!b.startsWith("data:"))continue;let d=b.slice(5).trim();if(d&&"[DONE]"!==d)try{let a=JSON.parse(d),b=function(a){if(!a||"object"!=typeof a)return"";let b=a.choices?.[0];return[(b?.delta||{}).content,b?.message?.content,a.output_text,a.text].map(h).filter(Boolean)[0]||""}(a);if(!b)continue;m+=b,E(m),W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:m,status:"streaming"}:a),updatedAt:new Date().toISOString()}))}catch{}}}W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:m||a.content,status:"done"}:a),updatedAt:new Date().toISOString()})),r=c,d=i(b),W(r,a=>({...a,title:"New chat"===a.title?d:a.title,updatedAt:new Date().toISOString()}))}catch(a){if("AbortError"!==a.name){let b=h(a?.message||a);W(c,a=>({...a,messages:a.messages.map(a=>a.id===f?{...a,content:a.content||`Error: ${b}`,status:"error"}:a),updatedAt:new Date().toISOString()})),m(b||"Kh\xf4ng thể gửi tin nhắn.")}}finally{A(!1),C(""),E(""),M.current=null}},$=R?`${R.name}`:"Select model",_=R?R.requestModel:"Choose from connected providers";return(0,d.jsx)("div",{className:"relative flex-1 flex flex-col h-full min-h-0 min-w-0 bg-[#212121] text-white overflow-hidden",children:(0,d.jsxs)("div",{className:"relative mx-auto flex flex-1 h-full min-h-0 w-full max-w-4xl flex-col",children:[(0,d.jsxs)("div",{className:"flex shrink-0 items-center justify-between gap-3 px-4 py-3 lg:px-6",children:[(0,d.jsxs)("div",{ref:N,className:"relative",children:[(0,d.jsx)("button",{type:"button",onClick:()=>I(a=>!a),className:"flex items-center gap-3 rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-left transition hover:bg-white/8",children:(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm font-semibold text-white",children:$}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-white/70",children:"expand_more"})]}),(0,d.jsx)("p",{className:"truncate text-xs text-white/55",children:_})]})}),H?(0,d.jsxs)("div",{className:"absolute left-0 top-[calc(100%+10px)] z-30 w-[min(520px,calc(100vw-2rem))] overflow-hidden rounded-[20px] border border-white/10 bg-[#262626] shadow-2xl shadow-black/50",children:[(0,d.jsxs)("div",{className:"border-b border-white/10 px-4 py-3",children:[(0,d.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Models"}),(0,d.jsx)("p",{className:"text-sm text-white/75",children:"Chỉ lấy từ provider đ\xe3 connect"})]}),(0,d.jsx)("div",{className:"max-h-[60vh] overflow-y-auto p-2 custom-scrollbar",children:a.map(a=>(0,d.jsxs)("div",{className:"mb-2 rounded-[16px] border border-white/10 bg-black/20 p-2",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-2 py-2",children:[(0,d.jsx)("p",{className:"text-sm font-semibold text-white",children:a.providerName}),(0,d.jsx)(f.Ex,{size:"sm",variant:"default",children:a.models.length})]}),(0,d.jsx)("div",{className:"grid gap-2 sm:grid-cols-2",children:a.models.map(a=>{let b=a.id===t;return(0,d.jsx)("button",{type:"button",onClick:()=>(a=>{let b=P.get(a);if(!b)return;let c=n.find(a=>a.id===p);if(c&&c.messages.length>0){let a=X(b);if(!a)return;o(b=>[a,...b]),q(a.id)}else if(c)o(a=>a.map(a=>a.id===c.id?{...a,providerId:b.providerId,providerName:b.providerName,modelId:b.id,modelName:b.name}:a)),q(c.id);else{let a=X(b);if(!a)return;o(b=>[a,...b]),q(a.id)}s(b.providerId),u(b.id),I(!1)})(a.id),className:`rounded-[14px] border px-3 py-3 text-left transition ${b?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("p",{className:"truncate text-sm font-medium text-white",children:a.name}),(0,d.jsx)("p",{className:"truncate text-[11px] text-white/45",children:a.requestModel})]}),b?(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-blue-300",children:"check_circle"}):null]})},a.id)})})]},a.providerId))})]}):null]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>K(a=>!a),className:"rounded-2xl border border-white/10 bg-white/5 px-4 py-3 text-sm text-white/80 transition hover:bg-white/8",children:"History"}),(0,d.jsx)(f.$n,{variant:"ghost",size:"sm",icon:"delete",onClick:()=>{if(!p)return;let a=n.filter(a=>a.id!==p),b=a[0]||null;o(a),b?(q(b.id),s(b.providerId),u(b.modelId)):(q(""),s(""),u(""))},disabled:!p||0===n.length,children:"Clear"})]})]}),J?(0,d.jsxs)("div",{ref:O,className:"absolute right-4 top-[72px] z-20 w-[min(360px,calc(100vw-2rem))] rounded-[20px] border border-white/10 bg-[#262626] p-2 shadow-2xl shadow-black/50 lg:right-6",children:[(0,d.jsx)("div",{className:"px-3 py-2",children:(0,d.jsx)("p",{className:"text-xs uppercase tracking-[0.22em] text-white/45",children:"Recent chats"})}),(0,d.jsx)("div",{className:"max-h-[48vh] space-y-2 overflow-y-auto p-1 custom-scrollbar",children:0===U.length?(0,d.jsx)("div",{className:"rounded-[16px] border border-dashed border-white/10 bg-white/5 p-4 text-sm text-white/55",children:"Chưa c\xf3 cuộc tr\xf2 chuyện n\xe0o."}):U.map(a=>{let b=a.id===p,c=[...a.messages||[]].reverse().find(a=>"user"===a.role)||a.messages?.[0];return(0,d.jsx)("button",{type:"button",onClick:()=>{var b;let c;return b=a.id,void((c=n.find(a=>a.id===b))&&(q(b),s(c.providerId||r),u(c.modelId||t),K(!1)))},className:`w-full rounded-[16px] border px-3 py-3 text-left transition ${b?"border-blue-400/40 bg-blue-500/15":"border-white/10 bg-white/5 hover:bg-white/8"}`,children:(0,d.jsxs)("div",{className:"flex items-start justify-between gap-3",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("p",{className:"truncate text-sm font-medium text-white",children:a.title}),(0,d.jsx)("p",{className:"mt-1 truncate text-xs text-white/50",children:h(c?.content)||"Empty chat"})]}),(0,d.jsx)("span",{className:"text-[10px] text-white/40 shrink-0",children:function(a){if(!a)return"Now";let b=new Date(a).getTime();if(Number.isNaN(b))return"Now";let c=Math.max(1,Math.round((Date.now()-b)/6e4));if(c<60)return`${c}m`;let d=Math.round(c/60);return d<24?`${d}h`:`${Math.round(d/24)}d`}(a.updatedAt)})]})},a.id)})})]}):null,l?(0,d.jsx)("div",{className:"mt-4 rounded-[18px] border border-rose-500/20 bg-rose-500/10 px-4 py-3 text-rose-100",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"error"}),(0,d.jsx)("p",{className:"text-sm leading-6",children:l})]})}):null,(0,d.jsxs)("div",{className:"flex flex-1 flex-col min-h-0",children:[(0,d.jsxs)("div",{className:"flex-1 overflow-y-auto py-4 custom-scrollbar",children:[0===T.length?(0,d.jsx)("div",{className:"flex min-h-[50vh] items-center justify-center px-4 text-center",children:(0,d.jsxs)("div",{className:"max-w-xl space-y-4",children:[(0,d.jsx)("div",{className:"mx-auto flex size-16 items-center justify-center rounded-[20px] border border-white/10 bg-white/5 text-white/80",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[30px]",children:"chat"})}),(0,d.jsxs)("div",{className:"space-y-2",children:[(0,d.jsx)("h2",{className:"text-2xl font-semibold text-white",children:"Start a conversation"}),(0,d.jsx)("p",{className:"text-sm leading-6 text-white/60",children:"Simple chat interface to interact with any AI model from connected providers. Select a model and start chatting!"})]})]})}):null,(0,d.jsx)("div",{className:"mx-auto flex w-full max-w-3xl flex-col gap-4 px-4",children:T.map(a=>{let b="user"===a.role,c="assistant"===a.role,e=c&&a.id===B&&"streaming"===a.status,f=h(a.content)||(c?D:"");return(0,d.jsx)("div",{className:`flex w-full ${b?"justify-end":"justify-start"} mb-6`,children:(0,d.jsxs)("div",{className:`max-w-[min(88%,42rem)] ${b?"rounded-3xl bg-[#2f2f2f] px-5 py-3.5 text-white":"text-white/90"}`,children:[(0,d.jsx)("div",{className:"mb-1 flex items-center justify-between gap-3",children:(0,d.jsx)("span",{className:"text-xs font-semibold",children:b?"You":R?.name||"Assistant"})}),a.attachments?.length?(0,d.jsx)("div",{className:"mb-3 grid grid-cols-2 gap-2 sm:grid-cols-3 mt-2",children:a.attachments.map(a=>(0,d.jsx)("a",{href:a.dataUrl,target:"_blank",rel:"noreferrer",className:"overflow-hidden rounded-[18px] border border-white/10 bg-black/20",children:(0,d.jsx)("img",{src:a.dataUrl,alt:a.name,className:"h-28 w-full object-cover"})},a.id))}):null,(0,d.jsxs)("div",{className:"whitespace-pre-wrap break-words text-[15px] leading-7",children:[f,c&&e&&!D?(0,d.jsx)("span",{className:"inline-block animate-pulse",children:"▋"}):null]})]})},a.id)})})]}),(0,d.jsxs)("div",{className:"shrink-0 pt-2",children:[x.length>0?(0,d.jsx)("div",{className:"mx-auto mb-3 flex w-full max-w-3xl flex-wrap gap-2 px-4",children:x.map(a=>(0,d.jsxs)("div",{className:"flex items-center gap-2 rounded-full border border-white/10 bg-white/5 px-3 py-2",children:[(0,d.jsx)("span",{className:"text-xs text-white/80 max-w-[12rem] truncate",children:a.name}),(0,d.jsx)("button",{type:"button",onClick:()=>{var b;return b=a.id,void y(a=>a.filter(a=>a.id!==b))},className:"text-white/55 hover:text-white","aria-label":"Remove attachment",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"close"})})]},a.id))}):null,(0,d.jsx)("div",{className:"mx-auto w-full max-w-3xl px-4 pb-2",children:(0,d.jsxs)("div",{className:"rounded-[26px] bg-[#2f2f2f] px-3 pt-3 pb-2 shadow-[0_0_15px_rgba(0,0,0,0.10)] ring-1 ring-white/5",children:[(0,d.jsx)("textarea",{value:v,onChange:a=>w(a.target.value),onKeyDown:a=>{"Enter"===a.key&&!a.shiftKey&&(a.preventDefault(),V&&Z())},placeholder:"Message AI",rows:1,className:"w-full resize-none bg-transparent px-2 text-[15px] leading-6 text-white outline-none placeholder:text-white/40 custom-scrollbar max-h-[25vh] overflow-y-auto"}),(0,d.jsxs)("div",{className:"mt-2 flex items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("button",{type:"button",onClick:()=>L.current?.click(),disabled:!R||c,className:"p-2 text-white/50 hover:text-white transition rounded-full hover:bg-white/5",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"attach_file"})}),(0,d.jsx)("input",{ref:L,type:"file",accept:"image/*",multiple:!0,className:"hidden",onChange:Y}),(0,d.jsx)("span",{className:"text-xs font-medium text-white/30 truncate max-w-[120px]",children:R?R.name:"No model"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[z?(0,d.jsx)("button",{type:"button",onClick:()=>{M.current?.abort()},className:"p-2 text-white bg-white/10 hover:bg-white/20 transition rounded-full h-8 w-8 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop"})}):null,(0,d.jsx)("button",{onClick:Z,disabled:!V,className:`h-8 w-8 rounded-full flex items-center justify-center transition ${V?"bg-white text-black hover:opacity-90":"bg-white/10 text-white/30 cursor-not-allowed"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_upward"})})]})]})]})})]}),(0,d.jsx)("p",{className:"mx-auto mt-2 max-w-3xl px-4 pb-4 text-center text-[11px] text-white/30",children:"Model list is filtered from connected providers."})]})]})})}c(65839),c(30207)},6970:(a,b,c)=>{Promise.resolve().then(c.bind(c,31178))},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30149:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["basic-chat",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,30715)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/basic-chat/page",pathname:"/dashboard/basic-chat",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/basic-chat/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},30715:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(22037),e=c(31178);function f(){return(0,d.jsx)(e.default,{})}},31178:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js","default")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41250:(a,b,c)=>{Promise.resolve().then(c.bind(c,6564))},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=30149));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json new file mode 100644 index 00000000000..09cf195d62f --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js new file mode 100644 index 00000000000..5ff7f49007d --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/basic-chat/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/basic-chat/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4465","static/chunks/app/(dashboard)/dashboard/basic-chat/page-cd02fe7b10810144.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js new file mode 100644 index 00000000000..7661a3ef695 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=2326,a.ids=[2326],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},8834:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js","default")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11075:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["cli-tools",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,38419)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/cli-tools/page",pathname:"/dashboard/cli-tools",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/cli-tools/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38419:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g});var d=c(22037),e=c(75662),f=c(8834);async function g(){let a=await (0,e.D1)();return(0,d.jsx)(f.default,{machineId:a})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},48300:(a,b,c)=>{"use strict";c.d(b,{default:()=>k});var d=c(26835),e=c(53830),f=c(50450),g=c(10228),h=c(65839),i=c(46323);let j=process.env.NEXT_PUBLIC_CLOUD_URL;function k({machineId:a}){let b,c,l,[m,n]=(0,e.useState)([]),[o,p]=(0,e.useState)(!0),[q,r]=(0,e.useState)(null),[s,t]=(0,e.useState)({}),[u,v]=(0,e.useState)(!1),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(""),[A,B]=(0,e.useState)(!1),[C,D]=(0,e.useState)(""),[E,F]=(0,e.useState)([]),[G,H]=(0,e.useState)({}),I=()=>m.filter(a=>!1!==a.isActive),J=(0,e.useCallback)((a,b,c)=>{t(d=>d[a]?.[b]===c?d:{...d,[a]:{...d[a],[b]:c}})},[]);if(o)return(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{})]});let K=(b=I(),c=[],l=new Set,b.forEach(a=>{let b=h.Xg[a.provider]||a.provider;(0,h.KC)(a.provider).forEach(d=>{let e=`${b}/${d.id}`;l.has(e)||(l.add(e),c.push({value:e,label:`${b}/${d.id}`,provider:a.provider,alias:b,connectionName:a.name,modelId:d.id}))})}),c).length>0,L=Object.entries(g.dM),M=Object.entries(g.wn);return(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-6 px-1 sm:px-0",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("h1",{className:"text-xl font-semibold text-text-main sm:text-2xl",children:"CLI Tools"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Configure local coding tools to use your 9Router providers."})]}),(0,d.jsx)("div",{className:"grid gap-3 sm:gap-4",children:L.map(([a,b])=>((a,b)=>{let c={tool:b,isExpanded:q===a,onToggle:()=>r(q===a?null:a),baseUrl:w&&y?y:u&&j?j:"http://localhost:20128",apiKeys:E,tunnelEnabled:w,tunnelPublicUrl:y,tailscaleEnabled:A,tailscaleUrl:C};switch(a){case"claude":return(0,d.jsx)(i.Tk,{...c,activeProviders:I(),modelMappings:s[a]||{},onModelMappingChange:(b,c)=>J(a,b,c),hasActiveProviders:K,cloudEnabled:u,initialStatus:G.claude},a);case"codex":return(0,d.jsx)(i.Ah,{...c,activeProviders:I(),cloudEnabled:u,initialStatus:G.codex},a);case"opencode":return(0,d.jsx)(i.qO,{...c,activeProviders:I(),cloudEnabled:u,initialStatus:G.opencode},a);case"cowork":return(0,d.jsx)(i.Q6,{...c,activeProviders:I(),hasActiveProviders:K,cloudEnabled:u,cloudUrl:j,tunnelEnabled:w,tunnelPublicUrl:y,tailscaleEnabled:A,tailscaleUrl:C,initialStatus:G.cowork},a);case"droid":return(0,d.jsx)(i.ZM,{...c,activeProviders:I(),hasActiveProviders:K,cloudEnabled:u,initialStatus:G.droid},a);case"openclaw":return(0,d.jsx)(i.yZ,{...c,activeProviders:I(),hasActiveProviders:K,cloudEnabled:u,initialStatus:G.openclaw},a);case"hermes":return(0,d.jsx)(i.RF,{...c,activeProviders:I(),hasActiveProviders:K,cloudEnabled:u,initialStatus:G.hermes},a);default:return(0,d.jsx)(i.a7,{toolId:a,...c,activeProviders:I(),cloudEnabled:u,tunnelEnabled:w},a)}})(a,b))}),(0,d.jsxs)("div",{className:"grid gap-3 sm:gap-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"security"}),(0,d.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"MITM Tools"})]}),M.map(([a,b])=>(0,d.jsx)(i.gY,{tool:b},a))]})]})}},48562:(a,b,c)=>{Promise.resolve().then(c.bind(c,48300))},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},75662:(a,b,c)=>{"use strict";c.d(b,{D1:()=>e});var d=c(99119);async function e(){return await (0,d.Xj)()}},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},85514:(a,b,c)=>{Promise.resolve().then(c.bind(c,8834))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},99119:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(20243);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,5046,7770,21,8193,2503,514,3774,8035,2049,450,6782,6890],()=>b(b.s=11075));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json new file mode 100644 index 00000000000..3269990f880 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5046.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/6890.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js new file mode 100644 index 00000000000..378741bc7d1 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/cli-tools/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/cli-tools/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","2326","static/chunks/app/(dashboard)/dashboard/cli-tools/page-a6fe1644188a6348.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/combos/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/combos/page.js new file mode 100644 index 00000000000..7de71bef2d8 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/combos/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=3649,a.ids=[3649],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3052:(a,b,c)=>{Promise.resolve().then(c.bind(c,50005))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},16204:(a,b,c)=>{Promise.resolve().then(c.bind(c,98723))},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30701:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["combos",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,98723)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/combos/page",pathname:"/dashboard/combos",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/combos/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},50005:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i});var d=c(26835),e=c(53830),f=c(50450),g=c(93617);c(30207);let h=/^[a-zA-Z0-9_.\-]+$/;function i(){let[a,b]=(0,e.useState)([]),[c,h]=(0,e.useState)(!0),[i,k]=(0,e.useState)(!1),[m,n]=(0,e.useState)(null),[o,p]=(0,e.useState)([]),[q,r]=(0,e.useState)({}),{copied:s,copy:t}=(0,g.C)(),u=async()=>{try{let[a,c,d]=await Promise.all([fetch("/api/combos"),fetch("/api/providers"),fetch("/api/settings")]),e=await a.json(),f=await c.json(),g=d.ok?await d.json():{};a.ok&&b((e.combos||[]).filter(a=>!a.kind)),c.ok&&p(f.connections||[]),r(g.comboStrategies||{})}catch(a){console.log("Error fetching data:",a)}finally{h(!1)}},v=async a=>{try{let b=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(b.ok)await u(),k(!1);else{let a=await b.json();alert(a.error||"Failed to create combo")}}catch(a){console.log("Error creating combo:",a)}},w=async(a,b)=>{try{let c=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});if(c.ok)await u(),n(null);else{let a=await c.json();alert(a.error||"Failed to update combo")}}catch(a){console.log("Error updating combo:",a)}},x=async c=>{if(confirm("Delete this combo?"))try{(await fetch(`/api/combos/${c}`,{method:"DELETE"})).ok&&b(a.filter(a=>a.id!==c))}catch(a){console.log("Error deleting combo:",a)}},y=async(a,b)=>{try{let c={...q};b?c[a]={fallbackStrategy:"round-robin"}:delete c[a],await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:c})}),r(c)}catch(a){console.log("Error updating combo strategy:",a)}};return c?(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{})]}):(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"text-2xl font-semibold",children:"Combos"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Create model combos with fallback support"})]}),(0,d.jsx)(f.$n,{icon:"add",onClick:()=>k(!0),className:"w-full sm:w-auto",children:"Create Combo"})]}),0===a.length?(0,d.jsx)(f.Zp,{children:(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"layers"})}),(0,d.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No combos yet"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create model combos with fallback support"}),(0,d.jsx)(f.$n,{icon:"add",onClick:()=>k(!0),className:"w-full sm:w-auto",children:"Create Combo"})]})}):(0,d.jsx)("div",{className:"flex flex-col gap-4",children:a.map(a=>(0,d.jsx)(j,{combo:a,copied:s,onCopy:t,onEdit:()=>n(a),onDelete:()=>x(a.id),roundRobinEnabled:q[a.name]?.fallbackStrategy==="round-robin",onToggleRoundRobin:b=>y(a.name,b)},a.id))}),(0,d.jsx)(l,{isOpen:i,onClose:()=>k(!1),onSave:v,activeProviders:o},"create"),(0,d.jsx)(l,{isOpen:!!m,combo:m,onClose:()=>n(null),onSave:a=>w(m.id,a),activeProviders:o},m?.id||"new")]})}function j({combo:a,copied:b,onCopy:c,onEdit:e,onDelete:g,roundRobinEnabled:h,onToggleRoundRobin:i}){return(0,d.jsx)(f.Zp,{padding:"sm",className:"group",children:(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,d.jsx)("div",{className:"size-8 rounded-lg bg-primary/10 flex items-center justify-center shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("code",{className:"block truncate font-mono text-sm font-medium",children:a.name}),(0,d.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1",children:[0===a.models.length?(0,d.jsx)("span",{className:"text-xs text-text-muted italic",children:"No models"}):a.models.slice(0,3).map((a,b)=>(0,d.jsx)("code",{className:"max-w-full truncate rounded bg-black/5 px-1.5 py-0.5 font-mono text-[10px] text-text-muted dark:bg-white/5 sm:max-w-[220px]",children:a},b)),a.models.length>3&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted",children:["+",a.models.length-3," more"]})]})]})]}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center sm:gap-3 sm:shrink-0",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between gap-1.5 rounded-lg bg-black/[0.02] px-2 py-1.5 dark:bg-white/[0.02] sm:justify-start sm:bg-transparent sm:px-0 sm:py-0 sm:dark:bg-transparent",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,d.jsx)(f.lM,{size:"sm",checked:h,onChange:i})]}),(0,d.jsxs)("div",{className:"grid grid-cols-3 gap-1 sm:flex",children:[(0,d.jsxs)("button",{onClick:b=>{b.stopPropagation(),c(a.name,`combo-${a.id}`)},className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Copy combo name",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:b===`combo-${a.id}`?"check":"content_copy"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Copy"})]}),(0,d.jsxs)("button",{onClick:e,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted transition-colors hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",title:"Edit",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,d.jsxs)("button",{onClick:g,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 transition-colors hover:bg-red-500/10",title:"Delete",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]})]})]})})}function k({index:a,model:b,isFirst:c,isLast:f,onEdit:g,onMoveUp:h,onMoveDown:i,onRemove:j}){let[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(b),p=()=>{let a=n.trim();a&&a!==b?g(a):o(b),m(!1)};return(0,d.jsxs)("div",{className:"group flex min-w-0 items-center gap-1.5 rounded-md bg-black/[0.02] px-2 py-1 transition-colors hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04]",children:[(0,d.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:a+1}),l?(0,d.jsx)("input",{autoFocus:!0,value:n,onChange:a=>o(a.target.value),onBlur:p,onKeyDown:a=>{"Enter"===a.key&&p(),"Escape"===a.key&&(o(b),m(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,d.jsx)("div",{className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>m(!0),title:"Click to edit",children:b}),(0,d.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,d.jsx)("button",{onClick:h,disabled:c,className:`p-0.5 rounded ${c?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,d.jsx)("button",{onClick:i,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,d.jsx)("button",{onClick:j,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function l({isOpen:a,combo:b,onClose:c,onSave:g,activeProviders:i,kindFilter:j=null}){let[m,n]=(0,e.useState)(b?.name||""),[o,p]=(0,e.useState)(b?.models||[]),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(""),[w,x]=(0,e.useState)({}),y=a=>a.trim()?h.test(a)?(v(""),!0):(v("Only letters, numbers, -, _ and . allowed"),!1):(v("Name is required"),!1),z=async()=>{y(m)&&(t(!0),await g({name:m.trim(),models:o}),t(!1))},A=!!b;return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.aF,{isOpen:a,onClose:c,title:A?"Edit Combo":"Create Combo",children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)(f.pd,{label:"Combo Name",value:m,onChange:a=>{let b=a.target.value;n(b),b?y(b):v("")},placeholder:"my-combo",error:u}),(0,d.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:"Only letters, numbers, -, _ and . allowed"})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===o.length?(0,d.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,d.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:o.map((a,b)=>(0,d.jsx)(k,{index:b,model:a,isFirst:0===b,isLast:b===o.length-1,onEdit:a=>{let c=[...o];c[b]=a,p(c)},onMoveUp:()=>(a=>{if(0===a)return;let b=[...o];[b[a-1],b[a]]=[b[a],b[a-1]],p(b)})(b),onMoveDown:()=>(a=>{if(a===o.length-1)return;let b=[...o];[b[a],b[a+1]]=[b[a+1],b[a]],p(b)})(b),onRemove:()=>{p(o.filter((a,c)=>c!==b))}},b))}),(0,d.jsxs)("button",{onClick:()=>r(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,d.jsx)(f.$n,{onClick:c,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,d.jsx)(f.$n,{onClick:z,fullWidth:!0,size:"sm",disabled:!m.trim()||!!u||s,children:s?"Saving...":A?"Save":"Create"})]})]})}),(0,d.jsx)(f.rq,{isOpen:q,onClose:()=>r(!1),onSelect:a=>{o.includes(a.value)||p([...o,a.value])},onDeselect:a=>{p(o.filter(b=>b!==a.value))},activeProviders:i,modelAliases:w,title:"Add Model to Combo",kindFilter:j,addedModelValues:o,closeOnSelect:!1})]})}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},98723:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js","default")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=30701));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/combos/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js new file mode 100644 index 00000000000..a8ba7fbbee9 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/combos/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/combos/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3649","static/chunks/app/(dashboard)/dashboard/combos/page-4e109bbbffbc2e16.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page.js new file mode 100644 index 00000000000..fbd22f23339 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=712,a.ids=[712],a.modules={61:(a,b,c)=>{Promise.resolve().then(c.bind(c,74159))},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},18007:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["console-log",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,94822)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/console-log/page",pathname:"/dashboard/console-log",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/console-log/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},18621:(a,b,c)=>{Promise.resolve().then(c.bind(c,81005))},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},74159:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js","default")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81005:(a,b,c)=>{"use strict";c.d(b,{default:()=>h});var d=c(26835),e=c(53830),f=c(50450);c(10074);let g={LOG:"text-green-400",INFO:"text-blue-400",WARN:"text-yellow-400",ERROR:"text-red-400",DEBUG:"text-purple-400"};function h(){let[a,b]=(0,e.useState)([]),[c,h]=(0,e.useState)(!1),i=(0,e.useRef)(null),j=async()=>{try{await fetch("/api/translator/console-logs",{method:"DELETE"})}catch(a){console.error("Failed to clear console logs:",a)}};return(0,d.jsx)("div",{className:"",children:(0,d.jsxs)(f.Zp,{children:[(0,d.jsx)("div",{className:"flex items-center justify-end px-4 pt-3 pb-2",children:(0,d.jsx)(f.$n,{size:"sm",variant:"outline",icon:"delete",onClick:j,children:"Clear"})}),(0,d.jsx)("div",{ref:i,className:"bg-black rounded-b-lg p-4 text-xs font-mono h-[calc(100vh-220px)] overflow-y-auto",children:0===a.length?(0,d.jsx)("span",{className:"text-text-muted",children:"No console logs yet."}):(0,d.jsx)("div",{className:"space-y-0.5",children:a.map((a,b)=>{let c,e;return(0,d.jsx)("div",{children:(e=g[(c=a.match(/\[(\w+)\]/g))?c[1]?.replace(/\[|\]/g,""):null]||"text-green-400",(0,d.jsx)("span",{className:e,children:a}))},b)})})})]})})}},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},94822:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>g,dynamic:()=>f});var d=c(22037),e=c(74159);let f="force-dynamic";function g(){return(0,d.jsx)(e.default,{})}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=18007));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json new file mode 100644 index 00000000000..09cf195d62f --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js new file mode 100644 index 00000000000..149441ad662 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/console-log/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/console-log/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","712","static/chunks/app/(dashboard)/dashboard/console-log/page-af58c67a4e409aad.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js new file mode 100644 index 00000000000..2cb2c665000 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js @@ -0,0 +1,2 @@ +"use strict";(()=>{var a={};a.id=6099,a.ids=[6099],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},12481:(a,b,c)=>{c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["endpoint",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,82997)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/endpoint/page",pathname:"/dashboard/endpoint",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/endpoint/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},14985:a=>{a.exports=require("dns")},17891:a=>{a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},26713:a=>{a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},41025:a=>{a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77068:a=>{a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{a.exports=require("node:crypto")},79551:a=>{a.exports=require("url")},79646:a=>{a.exports=require("child_process")},81115:a=>{a.exports=require("constants")},82997:(a,b,c)=>{c.r(b),c.d(b,{default:()=>g});var d=c(22037),e=c(75662),f=c(14567);async function g(){let a=await (0,e.D1)();return(0,d.jsx)(f.default,{machineId:a})}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782,1574],()=>b(b.s=12481));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json new file mode 100644 index 00000000000..423d71d6d9e --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/1574.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js new file mode 100644 index 00000000000..b5838de8f1f --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/endpoint/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/endpoint/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6099","static/chunks/app/(dashboard)/dashboard/endpoint/page-79a243ddf837f243.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js new file mode 100644 index 00000000000..6d2627095bc --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js @@ -0,0 +1,60 @@ +(()=>{var a={};a.id=182,a.ids=[182],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14638:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>G});var d=c(26835),e=c(28217),f=c(30978),g=c.n(f),h=c(53830),i=c(50450),j=c(66298),k=c(30207),l=c(65839),m=c(93617),n=c(41183),o=c.n(n);function p({until:a}){let[b,c]=(0,h.useState)("");return b?(0,d.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",b]}):null}function q({connection:a,proxyPools:b,isOAuth:c,isFirst:e,isLast:f,onMoveUp:g,onMoveDown:j,onToggleActive:k,onUpdateProxy:l,onEdit:m,onDelete:n}){let[o,r]=(0,h.useState)(!1),[s,t]=(0,h.useState)(!1),[u,v]=(0,h.useState)(!1),w=(0,h.useRef)(null),x=new Map((b||[]).map(a=>[a.id,a])),y=a.providerSpecificData?.proxyPoolId||null,z=y?x.get(y):null,A=a.providerSpecificData?.connectionProxyEnabled===!0&&!!a.providerSpecificData?.connectionProxyUrl,B=!!y||A,C=z?`Pool: ${z.name}`:y?`Pool: ${y} (inactive/missing)`:A?`Legacy: ${a.providerSpecificData?.connectionProxyUrl}`:"",D="",E=z?.proxyUrl||a.providerSpecificData?.connectionProxyUrl;if(E)try{let a=new URL(E);D=`${a.protocol}//${a.hostname}${a.port?`:${a.port}`:""}`}catch{D=E}let F=z?.noProxy||a.providerSpecificData?.connectionNoProxy||"",G=z?.isActive===!0?"success":y||A?"error":"default",H=Object.entries(a).filter(([a])=>a.startsWith("modelLock_")).map(([,a])=>a).filter(Boolean).sort()[0]||null,I="unavailable"!==a.testStatus||u?a.testStatus:"active",J=c?a.name||a.email||a.displayName||"OAuth Account":a.name,K=async a=>{t(!0);try{await l("__none__"===a?null:a)}finally{t(!1),r(!1)}};return(0,d.jsxs)("div",{className:`group flex flex-col gap-3 p-2 rounded-lg sm:flex-row sm:items-center sm:justify-between hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors ${!1===a.isActive?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex w-full min-w-0 flex-1 items-start gap-3 sm:items-center",children:[(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsx)("button",{onClick:g,disabled:e,className:`p-0.5 rounded ${e?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,d.jsx)("button",{onClick:j,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,d.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",children:c?"lock":"key"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"text-sm font-medium truncate",children:J}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 mt-1",children:[(0,d.jsx)(i.Ex,{variant:!1===a.isActive?"default":"active"===I||"success"===I?"success":"error"===I||"expired"===I||"unavailable"===I?"error":"default",size:"sm",dot:!0,children:!1===a.isActive?"disabled":I||"Unknown"}),B&&(0,d.jsx)(i.Ex,{variant:G,size:"sm",children:"Proxy"}),u&&!1!==a.isActive&&(0,d.jsx)(p,{until:H}),a.lastError&&!1!==a.isActive&&(0,d.jsx)("span",{className:"text-xs text-red-500 truncate max-w-[300px]",title:a.lastError,children:a.lastError}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["#",a.priority]})]}),B&&(0,d.jsxs)("div",{className:"mt-1 flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-[11px] text-text-muted truncate max-w-[420px]",title:C,children:C}),D&&(0,d.jsx)("code",{className:"text-[10px] font-mono bg-black/5 dark:bg-white/5 px-1 py-0.5 rounded text-text-muted",children:D}),F&&(0,d.jsxs)("span",{className:"text-[11px] text-text-muted truncate max-w-[320px]",title:F,children:["no_proxy: ",F]})]})]})]}),(0,d.jsxs)("div",{className:"flex w-full flex-wrap items-center justify-between gap-2 sm:w-auto sm:justify-end",children:[(0,d.jsxs)("div",{className:"flex flex-wrap gap-1",children:[(b||[]).length>0&&(0,d.jsxs)("div",{className:"relative",ref:w,children:[(0,d.jsxs)("button",{onClick:()=>r(a=>!a),className:`flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 transition-colors ${B?"text-primary":"text-text-muted hover:text-primary"}`,disabled:s,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:s?"progress_activity":"lan"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),o&&(0,d.jsxs)("div",{className:"absolute right-0 top-full mt-1 z-50 bg-bg border border-border rounded-lg shadow-lg py-1 min-w-[160px]",children:[(0,d.jsx)("button",{onClick:()=>K("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!y?"text-primary font-medium":"text-text-main"}`,children:"None"}),(b||[]).map(a=>(0,d.jsx)("button",{onClick:()=>K(a.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${y===a.id?"text-primary font-medium":"text-text-main"}`,children:a.name},a.id))]})]}),(0,d.jsxs)("button",{onClick:m,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,d.jsxs)("button",{onClick:n,className:"flex flex-col items-center px-2 py-1 rounded hover:bg-red-500/10 text-red-500",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,d.jsx)(i.lM,{size:"sm",checked:a.isActive??!0,onChange:k,title:a.isActive??!0?"Disable":"Enable"})]})]})}function r({isOpen:a,provider:b,providerName:c,proxyPools:e,onSave:f,onClose:g}){let j="__none__",[k,l]=(0,h.useState)({name:"",apiKey:"",priority:1,proxyPoolId:j}),[m,n]=(0,h.useState)(!1),[o,p]=(0,h.useState)(null),[q,s]=(0,h.useState)(!1),t=async()=>{n(!0);try{let a=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b,apiKey:k.apiKey})}),c=await a.json();p(c.valid?"success":"failed")}catch{p("failed")}finally{n(!1)}},u=async()=>{if(b&&k.apiKey){s(!0);try{let a=!1;try{n(!0),p(null);let c=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b,apiKey:k.apiKey})});a=!!(await c.json()).valid,p(a?"success":"failed")}catch{p("failed")}finally{n(!1)}await f({name:k.name,apiKey:k.apiKey,priority:k.priority,proxyPoolId:k.proxyPoolId===j?null:k.proxyPoolId,testStatus:a?"active":"unknown"})}finally{s(!1)}}};return b?(0,d.jsx)(i.aF,{isOpen:a,title:`Add ${c||b} API Key`,onClose:g,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Name"}),(0,d.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:k.name,onChange:a=>l({...k,name:a.target.value}),placeholder:"Production Key"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"API Key"}),(0,d.jsx)("input",{type:"password",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:k.apiKey,onChange:a=>l({...k,apiKey:a.target.value})})]}),(0,d.jsx)("div",{className:"pt-6",children:(0,d.jsx)(i.$n,{onClick:t,disabled:!k.apiKey||m||q,variant:"secondary",children:m?"Checking...":"Check"})})]}),o&&(0,d.jsx)(i.Ex,{variant:"success"===o?"success":"error",children:"success"===o?"Valid":"Invalid"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Priority"}),(0,d.jsx)("input",{type:"number",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:k.priority,onChange:a=>l({...k,priority:Number.parseInt(a.target.value)||1})})]}),(0,d.jsx)(i.l6,{label:"Proxy Pool",value:k.proxyPoolId,onChange:a=>l({...k,proxyPoolId:a.target.value}),options:[{value:j,label:"None"},...(e||[]).map(a=>({value:a.id,label:a.name}))]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(i.$n,{onClick:u,fullWidth:!0,disabled:!k.name||!k.apiKey||q,children:q?"Saving...":"Save"}),(0,d.jsx)(i.$n,{onClick:g,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function s({providerId:a,isOAuth:b}){let[c,e]=(0,h.useState)([]),[f,g]=(0,h.useState)([]),[j,k]=(0,h.useState)(!0),[l,m]=(0,h.useState)(!1),[n,o]=(0,h.useState)(!1),[p,t]=(0,h.useState)(null),[u,v]=(0,h.useState)(null),[w,x]=(0,h.useState)("1"),y=(0,h.useCallback)(async()=>{try{let[b,c,d]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),f=await b.json(),h=await c.json(),i=d.ok?await d.json():{};b.ok&&e((f.connections||[]).filter(b=>b.provider===a)),c.ok&&g(h.proxyPools||[]);let j=(i.providerStrategies||{})[a]||{};v(j.fallbackStrategy||null),x(null!=j.stickyRoundRobinLimit?String(j.stickyRoundRobinLimit):"1")}catch(a){console.log("ConnectionsCard fetch error:",a)}finally{k(!1)}},[a]),z=async(b,c)=>{try{let d=await fetch("/api/settings",{cache:"no-store"}),e=(d.ok?await d.json():{}).providerStrategies||{},f={};b&&(f.fallbackStrategy=b),"round-robin"===b&&""!==c&&(f.stickyRoundRobinLimit=Number(c)||3);let g={...e};0===Object.keys(f).length?delete g[a]:g[a]=f,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:g})})}catch(a){console.log("saveStrategy error:",a)}},A=async(a,b)=>{let d=[...c];[d[a],d[b]]=[d[b],d[a]],e(d);try{await Promise.all([fetch(`/api/providers/${d[a].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:a})}),fetch(`/api/providers/${d[b].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:b})})])}catch{await y()}},B=async a=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${a}`,{method:"DELETE"})).ok&&e(b=>b.filter(b=>b.id!==a))}catch(a){console.log("delete error:",a)}},C=async(a,b)=>{try{(await fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok&&e(c=>c.map(c=>c.id===a?{...c,isActive:b}:c))}catch(a){console.log("toggle error:",a)}},D=async(a,b)=>{try{(await fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:b||null})})).ok&&e(c=>c.map(c=>c.id===a?{...c,providerSpecificData:{...c.providerSpecificData,proxyPoolId:b||null}}:c))}catch(a){console.log("proxy error:",a)}},E=async b=>{try{(await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:a,...b})})).ok&&(await y(),m(!1))}catch(a){console.log("save apikey error:",a)}},F=async a=>{try{(await fetch(`/api/providers/${p.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok&&(await y(),o(!1))}catch(a){console.log("update connection error:",a)}};return j?(0,d.jsx)(i.Zp,{children:(0,d.jsx)("div",{className:"h-20 animate-pulse bg-black/5 rounded-lg"})}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.Zp,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,d.jsx)(i.lM,{checked:"round-robin"===u,onChange:a=>{let b=a?"round-robin":null;v(b),a&&!w&&x("1"),z(b,a?w||"1":w)}}),"round-robin"===u&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,d.jsx)("input",{type:"number",min:1,value:w,onChange:a=>{x(a.target.value),z("round-robin",a.target.value)},className:"w-16 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]}),0===c.length?(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"No connections yet"}),(0,d.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>m(!0),children:"Add Connection"})]}):(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:c.map((a,e)=>(0,d.jsx)(q,{connection:a,proxyPools:f,isOAuth:b,isFirst:0===e,isLast:e===c.length-1,onMoveUp:()=>A(e,e-1),onMoveDown:()=>A(e,e+1),onToggleActive:b=>C(a.id,b),onUpdateProxy:b=>D(a.id,b),onEdit:()=>{t(a),o(!0)},onDelete:()=>B(a.id)},a.id))}),(0,d.jsx)("div",{className:"mt-4 flex justify-stretch sm:justify-start",children:(0,d.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>m(!0),children:"Add"})})]})]}),(0,d.jsx)(r,{isOpen:l,provider:a,proxyPools:f,onSave:E,onClose:()=>m(!1)}),(0,d.jsx)(i.wI,{isOpen:n,connection:p,proxyPools:f,onSave:F,onClose:()=>o(!1)})]})}function t({model:a,fullModel:b,copied:c,onCopy:e,testStatus:f,isCustom:g,isFree:h,onDeleteAlias:i,onTest:j,isTesting:k}){let l="ok"===f?"#22c55e":"error"===f?"#ef4444":void 0;return(0,d.jsx)("div",{className:`group px-3 py-2 rounded-lg border ${"ok"===f?"border-green-500/40":"error"===f?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base",style:l?{color:l}:void 0,children:"ok"===f?"check_circle":"error"===f?"cancel":"smart_toy"}),(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:b}),a.name&&(0,d.jsx)("span",{className:"text-[9px] text-text-muted/70 italic pl-1",children:a.name})]}),j&&(0,d.jsxs)("div",{className:"relative group/btn",children:[(0,d.jsx)("button",{onClick:j,disabled:k,className:`p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-opacity ${k?"opacity-100":"opacity-0 group-hover:opacity-100"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",style:k?{animation:"spin 1s linear infinite"}:void 0,children:k?"progress_activity":"science"})}),(0,d.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:k?"Testing...":"Test"})]}),(0,d.jsxs)("div",{className:"relative group/btn",children:[(0,d.jsx)("button",{onClick:()=>e(b,`model-${a.id}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:c===`model-${a.id}`?"check":"content_copy"})}),(0,d.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:c===`model-${a.id}`?"Copied!":"Copy"})]}),h&&(0,d.jsx)("span",{className:"text-[10px] font-bold text-green-500 bg-green-500/10 px-1.5 py-0.5 rounded",children:"FREE"}),g&&(0,d.jsx)("button",{onClick:i,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 opacity-0 group-hover:opacity-100 transition-opacity ml-auto",title:"Remove custom model",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})})]})})}function u({isOpen:a,onSave:b,onClose:c}){let[e,f]=(0,h.useState)(""),g=()=>{e.trim()&&(b(e.trim()),f(""))};return(0,d.jsx)(i.aF,{isOpen:a,title:"Add Custom Model",onClose:c,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,d.jsx)("input",{className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",value:e,onChange:a=>f(a.target.value),onKeyDown:a=>"Enter"===a.key&&g(),placeholder:"e.g. tts-1-hd",autoFocus:!0})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(i.$n,{onClick:g,fullWidth:!0,disabled:!e.trim(),children:"Add"}),(0,d.jsx)(i.$n,{onClick:c,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function v({providerId:a,kindFilter:b,providerAliasOverride:c}){let{copied:e,copy:f}=(0,m.C)(),[g,j]=(0,h.useState)({}),[n,o]=(0,h.useState)([]),[p,q]=(0,h.useState)({}),[r,s]=(0,h.useState)(null),[w,x]=(0,h.useState)(""),[y,z]=(0,h.useState)(!1),[A,B]=(0,h.useState)([]),C=c||(0,k.wG)(a),D=b||"llm",E=(0,h.useCallback)(async()=>{try{let[b,c,d]=await Promise.all([fetch("/api/models/alias"),fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/custom",{cache:"no-store"})]),e=await b.json(),f=await c.json(),g=await d.json();b.ok&&j(e.aliases||{}),c.ok&&B((f.connections||[]).filter(b=>b.provider===a)),d.ok&&o(g.models||[])}catch(a){console.log("ModelsCard fetch error:",a)}},[a]),F=async(a,b)=>{let c=`${C}/${a}`;try{(await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:c,alias:b})})).ok&&await E()}catch(a){console.log("set alias error:",a)}},G=async a=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(a)}`,{method:"DELETE"})).ok&&await E()}catch(a){console.log("delete alias error:",a)}},H=async a=>{try{(await fetch("/api/models/custom",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerAlias:C,id:a,type:D})})).ok&&(await E(),window.dispatchEvent(new CustomEvent("customModelChanged")))}catch(a){console.log("add custom model error:",a)}},I=async a=>{try{let b=new URLSearchParams({providerAlias:C,id:a,type:D});(await fetch(`/api/models/custom?${b}`,{method:"DELETE"})).ok&&(await E(),window.dispatchEvent(new CustomEvent("customModelChanged")))}catch(a){console.log("delete custom model error:",a)}},J=async a=>{if(!r){s(a);try{let c=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${C}/${a}`,kind:b})}),d=await c.json();q(b=>({...b,[a]:d.ok?"ok":"error"})),x(d.ok?"":d.error||"Model not reachable")}catch{q(b=>({...b,[a]:"error"})),x("Network error")}finally{s(null)}}},K=(0,l.KC)(a),L=b?K.filter(a=>a.kinds?a.kinds.includes(b):(a.type||"llm")===b):K,M=n.filter(a=>a.providerAlias===C&&(a.type||"llm")===D&&!L.some(b=>b.id===a.id));return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-4",children:(0,d.jsxs)("h2",{className:"text-lg font-semibold",children:["Models",b?` — ${b.toUpperCase()}`:""]})}),w&&(0,d.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:w}),(0,d.jsxs)("div",{className:"flex flex-wrap gap-3",children:[L.map(a=>{let b=`${C}/${a.id}`,c=Object.entries(g).find(([,a])=>a===b)?.[0];return(0,d.jsx)(t,{model:a,fullModel:`${C}/${a.id}`,alias:c,copied:e,onCopy:f,onSetAlias:b=>F(a.id,b),onDeleteAlias:()=>G(c),testStatus:p[a.id],onTest:A.length>0?()=>J(a.id):void 0,isTesting:r===a.id,isFree:a.isFree},a.id)}),M.map(a=>(0,d.jsx)(t,{model:{id:a.id,name:a.name},fullModel:`${C}/${a.id}`,copied:e,onCopy:f,onSetAlias:()=>{},onDeleteAlias:()=>I(a.id),testStatus:p[a.id],onTest:A.length>0?()=>J(a.id):void 0,isTesting:r===a.id,isCustom:!0},`${a.id}-${a.type}`)),(0,d.jsxs)("button",{onClick:()=>z(!0),className:"flex items-center gap-1.5 px-3 py-2 rounded-lg border border-dashed border-black/15 dark:border-white/15 text-xs text-text-muted hover:text-primary hover:border-primary/40 transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]})]})]}),(0,d.jsx)(u,{isOpen:y,onSave:async a=>{await H(a),z(!1)},onClose:()=>z(!1)})]})}p.propTypes={until:o().string.isRequired},q.propTypes={connection:o().shape({id:o().string,name:o().string,email:o().string,displayName:o().string,testStatus:o().string,isActive:o().bool,lastError:o().string,priority:o().number}).isRequired,proxyPools:o().array,isOAuth:o().bool.isRequired,isFirst:o().bool.isRequired,isLast:o().bool.isRequired,onMoveUp:o().func.isRequired,onMoveDown:o().func.isRequired,onToggleActive:o().func.isRequired,onUpdateProxy:o().func,onEdit:o().func.isRequired,onDelete:o().func.isRequired},r.propTypes={isOpen:o().bool.isRequired,provider:o().string,providerName:o().string,proxyPools:o().array,onSave:o().func.isRequired,onClose:o().func.isRequired},s.propTypes={providerId:o().string.isRequired,isOAuth:o().bool},t.propTypes={model:o().shape({id:o().string.isRequired}).isRequired,fullModel:o().string.isRequired,copied:o().string,onCopy:o().func.isRequired,testStatus:o().oneOf(["ok","error"]),isCustom:o().bool,isFree:o().bool,onDeleteAlias:o().func,onTest:o().func,isTesting:o().bool},u.propTypes={isOpen:o().bool.isRequired,onSave:o().func.isRequired,onClose:o().func.isRequired},v.propTypes={providerId:o().string.isRequired,kindFilter:o().string,providerAliasOverride:o().string};let w={"google-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"hardcoded"},openai:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openai-tts-models",voiceKey:"openai-tts-voices",voicesPerModel:!0},openrouter:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"openrouter-tts-models",voiceKey:"openrouter-tts-voices",voicesPerModel:!0},elevenlabs:{hasLanguageDropdown:!1,hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"elevenlabs-tts-models",apiEndpoint:"/api/media-providers/tts/elevenlabs/voices"},"edge-tts":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},"local-device":{hasLanguageDropdown:!1,hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language"},nvidia:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},hyperbolic:{hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"config"},deepgram:{hasModelSelector:!1,hasBrowseButton:!0,voiceSource:"api-language",apiEndpoint:"/api/media-providers/tts/deepgram/voices"},huggingface:{hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"config"},cartesia:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},playht:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},coqui:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},tortoise:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},inworld:{hasModelSelector:!0,hasBrowseButton:!0,hasVoiceIdInput:!0,voiceSource:"api-language",modelKey:"inworld-tts-models",apiEndpoint:"/api/media-providers/tts/inworld/voices"},qwen:{hasModelSelector:!0,hasBrowseButton:!1,hasVoiceIdInput:!0,voiceSource:"config"},gemini:{hasLanguageDropdown:!1,hasLanguageHint:!0,hasModelSelector:!0,hasBrowseButton:!1,voiceSource:"hardcoded",modelKey:"gemini-tts-models",voiceKey:"gemini-tts-voices",voicesPerModel:!0}};c(68907);var x=c(75333);function y({label:a,children:b}){return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-1.5 sm:flex-row sm:items-center sm:gap-3",children:[(0,d.jsx)("span",{className:"w-full text-xs font-medium text-text-muted sm:w-20 sm:shrink-0",children:a}),(0,d.jsx)("div",{className:"w-full min-w-0 flex-1",children:b})]})}let z=`// Audio will appear here after running. +// Example JSON response (response_format=json): +{ + "format": "mp3", + "audio": "//NExAANaAIIAUAAANNNNNNNN..." // base64 encoded MP3 +}`,A=`{ + "object": "list", + "data": [{ + "object": "embedding", + "index": 0, + "embedding": [0.002301, -0.019212, 0.004815, -0.031249, ...] + }], + "model": "...", + "usage": { "prompt_tokens": 9, "total_tokens": 9 } +}`,B={webSearch:{inputLabel:"Query",inputPlaceholder:"What is the latest news about AI?",defaultInput:"What is the latest news about AI?",bodyKey:"query",defaultResponse:`{ + "results": [ + { "title": "...", "url": "...", "snippet": "..." } + ] +}`,extraFields:[{key:"search_type",label:"Type",type:"select",default:"web",options:["web","news"]},{key:"max_results",label:"Max results",type:"number",default:5,min:1,max:100},{key:"country",label:"Country",type:"text",default:""},{key:"language",label:"Language",type:"text",default:""}]},webFetch:{inputLabel:"URL",inputPlaceholder:"https://example.com",defaultInput:"https://example.com",bodyKey:"url",defaultResponse:`{ + "content": "...", + "title": "...", + "url": "..." +}`,extraFields:[{key:"format",label:"Format",type:"select",default:"markdown",options:["markdown","text","html"]},{key:"max_characters",label:"Max chars",type:"number",default:0,min:0}]},image:{inputLabel:"Prompt",inputPlaceholder:"A cute cat wearing a hat",defaultInput:"A cute cat wearing a hat",bodyKey:"prompt",defaultResponse:`{ + "data": [ + { "url": "...", "b64_json": "..." } + ] +}`,extraFields:[{key:"n",label:"n",type:"number",default:1,min:1,max:4},{key:"size",label:"Size",type:"select",default:"auto",options:["auto","1024x1024","1024x1536","1536x1024","1024x1792","1792x1024"]},{key:"quality",label:"Quality",type:"select",default:"auto",options:["auto","low","medium","high","standard","hd"]},{key:"background",label:"Background",type:"select",default:"auto",options:["auto","transparent","opaque"]},{key:"style",label:"Style",type:"select",default:"",options:["","vivid","natural"]},{key:"response_format",label:"Format",type:"select",default:"",options:["","url","b64_json"]},{key:"image_detail",label:"Image Detail",type:"select",default:"high",options:["auto","low","high","original"]},{key:"output_format",label:"Codec",type:"select",default:"png",options:["png","jpeg","webp"]}]},imageToText:{inputLabel:"Image URL",inputPlaceholder:"https://example.com/image.png",defaultInput:"https://upload.wikimedia.org/wikipedia/commons/thumb/3/3a/Cat03.jpg/1200px-Cat03.jpg",bodyKey:"url",extraBody:{prompt:"Describe this image in detail"},defaultResponse:`{ + "text": "A cat sitting on a windowsill...", + "model": "..." +}`},video:{inputLabel:"Prompt",inputPlaceholder:"A serene lake at sunset",defaultInput:"A serene lake at sunset",bodyKey:"prompt",defaultResponse:`{ + "data": [ + { "url": "..." } + ] +}`},music:{inputLabel:"Prompt",inputPlaceholder:"A calm piano melody",defaultInput:"A calm piano melody",bodyKey:"prompt",defaultResponse:`{ + "data": [ + { "url": "...", "format": "mp3" } + ] +}`}};function C({providerId:a,customAlias:b}){let c=(0,k.gC)(a),e=c?b||a:(0,k.wG)(a),f=c?[]:(0,l.KC)(a).filter(a=>"embedding"===a.type),[g,j]=(0,h.useState)(f[0]?.id??""),[n,o]=(0,h.useState)("The quick brown fox jumps over the lazy dog"),[p,q]=(0,h.useState)(""),[r,s]=(0,h.useState)(""),[t,u]=(0,h.useState)(!1),[v,w]=(0,h.useState)(""),[x,z]=(0,h.useState)(""),[B,D]=(0,h.useState)(null),[E,F]=(0,h.useState)(!1),[G,H]=(0,h.useState)(""),{copied:I,copy:J}=(0,m.C)(),{copied:K,copy:L}=(0,m.C)(),M=t?x:v,N=g?`${e}/${g}`:"",O=()=>{let a={model:N,input:n.trim()},b=Number(p);return p&&Number.isFinite(b)&&b>0&&(a.dimensions=b),a},P=`curl -X POST ${M}/v1/embeddings \\ + -H "Content-Type: application/json" \\ + -H "Authorization: Bearer ${r||"YOUR_KEY"}" \\ + -d '${JSON.stringify(O())}'`,Q=async()=>{if(!n.trim()||!N)return;F(!0),H(""),D(null);let a=Date.now();try{let b={"Content-Type":"application/json"};r&&(b.Authorization=`Bearer ${r}`);let c=await fetch("/api/v1/embeddings",{method:"POST",headers:b,body:JSON.stringify(O())}),d=Date.now()-a,e=await c.json();if(!c.ok)return void H(e?.error?.message||e?.error||`HTTP ${c.status}`);D({data:e,latencyMs:d})}catch(a){H(a.message||"Network error")}finally{F(!1)}},R=B?JSON.stringify(B.data,null,2):"";return(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,d.jsx)(y,{label:"Model",children:c?(0,d.jsx)("input",{value:g,onChange:a=>j(a.target.value),placeholder:"e.g. voyage-3, embed-english-v3.0, text-embedding-3-small",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"}):(0,d.jsx)("select",{value:g,onChange:a=>j(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:f.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name||a.id},a.id))})}),(0,d.jsx)(y,{label:"Endpoint",children:(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsx)("input",{value:M,onChange:a=>t?z(a.target.value):w(a.target.value),className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono",placeholder:"http://localhost:3000"}),x&&(0,d.jsxs)("button",{onClick:()=>u(a=>!a),title:t?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${t?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,d.jsx)(y,{label:"API Key",children:(0,d.jsx)("input",{type:"password",value:r,onChange:a=>s(a.target.value),placeholder:"sk-...",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),(0,d.jsx)(y,{label:"Input",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("input",{value:n,onChange:a=>o(a.target.value),className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),n&&(0,d.jsx)("button",{type:"button",onClick:()=>o(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})}),(0,d.jsx)(y,{label:"Dimensions",children:(0,d.jsx)("input",{type:"number",min:"1",value:p,onChange:a=>q(a.target.value),placeholder:"optional, e.g. 512, 1024 (leave empty for default)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),(0,d.jsxs)("div",{className:"mt-1",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("button",{onClick:()=>J(P),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:I?"check":"content_copy"}),I?"Copied":"Copy"]}),(0,d.jsxs)("button",{onClick:Q,disabled:E||!n.trim()||!N,className:"flex w-full sm:w-auto items-center justify-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:E?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),E?"Running...":"Run"]})]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:P})]}),G&&(0,d.jsx)("p",{className:"text-xs text-red-500 break-words",children:G}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",B&&(0,d.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",B.latencyMs,"ms"]})]}),B&&(0,d.jsxs)("button",{onClick:()=>L(R),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:K?"check":"content_copy"}),K?"Copied":"Copy"]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all opacity-70",children:(a=>{if(!a)return A;let b=JSON.parse(JSON.stringify(a));return(b.data||[]).forEach(a=>{Array.isArray(a.embedding)&&a.embedding.length>4&&(a.embedding=[...a.embedding.slice(0,4).map(a=>parseFloat(a.toFixed(6))),`... (${a.embedding.length} dims)`])}),JSON.stringify(b,null,2)})(B?.data)})]})]})]})}function D({providerId:a}){let b,c=(0,k.wG)(a),e=w[a]||w["edge-tts"],[f,g]=(0,h.useState)(""),[j,n]=(0,h.useState)(""),[o,p]=(0,h.useState)(""),[q,r]=(0,h.useState)([]),[s,t]=(0,h.useState)(""),[u,v]=(0,h.useState)(()=>{let b=k.Q2[a]?.ttsConfig?.models;if(b?.length)return b[0].id;if(e.hasModelSelector&&e.modelKey){let a=(0,l.KC)(e.modelKey);return a?.[0]?.id||""}return""}),[A,B]=(0,h.useState)("Hello, this is a text to speech test."),[C,E]=(0,h.useState)(""),[F,G]=(0,h.useState)(!1),[H,I]=(0,h.useState)(""),[J,K]=(0,h.useState)(""),[L,M]=(0,h.useState)("mp3"),[N,O]=(0,h.useState)(""),[P,Q]=(0,h.useState)(null),[R,S]=(0,h.useState)(!1),[T,U]=(0,h.useState)(""),[V,W]=(0,h.useState)(null),{copied:X,copy:Y}=(0,m.C)(),[Z,$]=(0,h.useState)(!1),[_,aa]=(0,h.useState)([]),[ab,ac]=(0,h.useState)(!1),[ad,ae]=(0,h.useState)(""),[af,ag]=(0,h.useState)(""),[ah,ai]=(0,h.useState)({}),[aj,ak]=(0,h.useState)(""),al=async()=>{if($(!0),ae(""),ag(""),!_.length){ac(!0);try{if("hardcoded"===e.voiceSource){let b=e.voiceKey||a,c=(0,l.KC)(b).filter(a=>"tts"===a.type),d={};for(let a of c)d[a.id]||(d[a.id]={code:a.id,name:a.name,voices:[{id:a.id,name:a.name}]});ai(d),aa(Object.values(d).sort((a,b)=>a.name.localeCompare(b.name)))}else{let b=e.apiEndpoint?e.apiEndpoint:`/api/media-providers/tts/voices?provider=${"local-device"===a?"local-device":"edge-tts"}`,c=await fetch(b),d=await c.json();if(d.error)return void ag(d.error);aa(d.languages||[]),ai(d.byLang||{})}}catch(a){ag(a.message)}finally{ac(!1)}}},am=ad?_.filter(a=>a.name.toLowerCase().includes(ad.toLowerCase())||a.code.toLowerCase().includes(ad.toLowerCase())):_,an=F?J:H,ao=e.hasVoiceIdInput&&o||f,ap=e.hasModelSelector&&u&&ao?`${c}/${u}/${ao}`:e.hasModelSelector&&u?`${c}/${u}`:ao?`${c}/${ao}`:"",aq=(b={model:ap,input:A},e.hasLanguageHint&&aj&&(b.language=aj),b),ar=`curl -X POST ${an}/v1/audio/speech${"json"===L?"?response_format=json":""} \\ + -H "Content-Type: application/json" \\ + -H "Authorization: Bearer ${C||"YOUR_KEY"}" \\ + -d '${JSON.stringify(aq)}' \\ + ${"json"===L?"":"--output speech.mp3"}`,as=async()=>{if(!A.trim()||!ap)return;S(!0),U(""),O(""),Q(null);let a=Date.now();try{let b={"Content-Type":"application/json"};C&&(b.Authorization=`Bearer ${C}`);let c=`/api/v1/audio/speech${"json"===L?"?response_format=json":""}`,d=await fetch(c,{method:"POST",headers:b,body:JSON.stringify({...aq,input:A.trim()})});if(W(Date.now()-a),!d.ok){let a=await d.json().catch(()=>({}));U(a?.error?.message||a?.error||`HTTP ${d.status}`);return}if("json"===L){let a=await d.json();Q(a);let b=await fetch(`data:audio/mp3;base64,${a.audio}`).then(a=>a.blob());O(URL.createObjectURL(b))}else{let a=await d.blob();O(URL.createObjectURL(a))}}catch(a){U(a.message||"Network error")}finally{S(!1)}};return(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2.5",children:[(0,d.jsx)(y,{label:"Endpoint",children:(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("span",{className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[an,"/v1/audio/speech"]}),J&&(0,d.jsxs)("button",{onClick:()=>G(a=>!a),title:F?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${F?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,d.jsx)(y,{label:"API Key",children:(0,d.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:C?`${C.slice(0,8)}${"•".repeat(Math.min(20,C.length-8))}`:(0,d.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),e.hasModelSelector&&(e.modelKey||k.Q2[a]?.ttsConfig?.models?.length)&&(0,d.jsx)(y,{label:"Model",children:(0,d.jsx)("select",{value:u,onChange:a=>v(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:((k.Q2[a]?.ttsConfig?.models?.length?k.Q2[a].ttsConfig.models:(0,l.KC)(e.modelKey))||[]).map(a=>(0,d.jsx)("option",{value:a.id,children:a.name||a.id},a.id))})}),e.hasLanguageHint&&(0,d.jsx)(y,{label:"Language",children:(0,d.jsxs)("select",{value:aj,onChange:a=>ak(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,d.jsx)("option",{value:"",children:"Auto-detect"}),x.I.map(a=>(0,d.jsx)("option",{value:a.name,children:a.name},a.id))]})}),e.hasBrowseButton&&(0,d.jsx)(y,{label:"Language",children:(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsx)("button",{onClick:al,className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm border border-border rounded-lg bg-background font-mono truncate text-left hover:border-primary/40 transition-colors",children:s?(0,d.jsx)("span",{className:"text-text-main",children:_.find(a=>a.code===s)?.name||s}):(0,d.jsx)("span",{className:"text-text-muted",children:"No language selected"})}),(0,d.jsxs)("button",{onClick:al,className:"flex w-full items-center justify-center gap-1 text-xs px-2.5 py-1.5 rounded-lg border border-border text-text-muted hover:text-primary hover:border-primary/40 transition-colors sm:w-auto sm:shrink-0",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"language"}),"Select language"]})]})}),q.length>0&&(0,d.jsx)(y,{label:"Voice",children:(0,d.jsx)("div",{className:"flex flex-wrap gap-1.5",children:q.map(a=>(0,d.jsxs)("button",{onClick:()=>{g(a.id),n(a.name),e.hasVoiceIdInput&&p(a.id)},className:`px-2.5 py-1 rounded-full text-xs border transition-colors ${f===a.id?"bg-primary/15 border-primary/40 text-primary font-medium":"border-border text-text-muted hover:text-primary hover:border-primary/40"}`,children:[a.name,a.gender?` \xb7 ${a.gender[0].toUpperCase()}`:"",!0===a.free_users_allowed&&(0,d.jsx)("span",{className:"ml-1.5 px-1 py-0.5 text-[9px] font-semibold rounded bg-green-500/15 text-green-600 border border-green-500/20",children:"Free"}),!1===a.free_users_allowed&&(0,d.jsx)("span",{className:"ml-1.5 px-1 py-0.5 text-[9px] font-semibold rounded bg-amber-500/15 text-amber-600 border border-amber-500/20",children:"Paid"})]},a.id))})}),e.hasVoiceIdInput&&(0,d.jsx)(y,{label:"Voice ID",children:(0,d.jsx)("div",{className:"flex flex-col gap-1",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("input",{value:o,onChange:a=>{p(a.target.value),g(a.target.value)},placeholder:"e.g. CwhRBWXzGAHq8TQ4Fs17",className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"}),o&&(0,d.jsx)("button",{type:"button",onClick:()=>{p(""),g("")},className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})})}),e.hasLanguageDropdown&&(0,d.jsx)(y,{label:"Language",children:(0,d.jsx)("select",{value:f,onChange:b=>{let c=(0,l.KC)(a).filter(a=>"tts"===a.type).find(a=>a.id===b.target.value);g(b.target.value),n(c?.name||b.target.value)},className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:(0,l.KC)(a).filter(a=>"tts"===a.type).map(a=>(0,d.jsx)("option",{value:a.id,children:a.name||a.id},a.id))})}),(0,d.jsx)(y,{label:"Input",children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("input",{value:A,onChange:a=>B(a.target.value),className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),A&&(0,d.jsx)("button",{type:"button",onClick:()=>B(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})}),(0,d.jsx)(y,{label:"Output Format",children:(0,d.jsxs)("select",{value:L,onChange:a=>M(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,d.jsx)("option",{value:"mp3",children:"MP3 (Binary)"}),(0,d.jsx)("option",{value:"json",children:"JSON (Base64)"})]})}),(0,d.jsxs)("div",{className:"mt-1",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("button",{onClick:()=>Y(ar),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:X?"check":"content_copy"}),X?"Copied":"Copy"]}),(0,d.jsxs)("button",{onClick:as,disabled:R||!A.trim()||!ap,className:"flex w-full sm:w-auto items-center justify-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:R?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),R?"Generating...":"Run"]})]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:ar})]}),T&&(0,d.jsx)("p",{className:"text-xs text-red-500 break-words",children:T}),N?(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",V&&(0,d.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",V,"ms"]})]}),(0,d.jsxs)("a",{href:N,download:"speech.mp3",className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"download"}),"Download"]})]}),(0,d.jsx)("audio",{controls:!0,src:N,className:"w-full"}),P&&(0,d.jsxs)("div",{className:"mt-3",children:[(0,d.jsx)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"JSON Response"})}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:JSON.stringify({format:P.format,audio:P.audio?`${P.audio.substring(0,100)}...`:""},null,2)})]})]}):(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Response"}),(0,d.jsx)("pre",{className:"mt-1.5 bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all opacity-50",children:z})]})]})]}),Z&&(0,d.jsx)("div",{className:"fixed inset-0 z-50 flex items-end justify-center sm:items-center",style:{backgroundColor:"rgba(0,0,0,0.6)",backdropFilter:"blur(2px)"},onClick:()=>$(!1),children:(0,d.jsxs)("div",{className:"border border-border rounded-xl shadow-2xl w-full max-w-md mx-4 flex flex-col max-h-[80vh]",style:{backgroundColor:"var(--color-bg)",isolation:"isolate"},onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border shrink-0 rounded-t-xl",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold",children:"Select Language"}),(0,d.jsx)("button",{onClick:()=>$(!1),className:"text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"px-4 py-2.5 border-b border-border shrink-0",children:(0,d.jsx)("input",{autoFocus:!0,value:ad,onChange:a=>ae(a.target.value),placeholder:"Search language...",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),(0,d.jsxs)("div",{className:"overflow-y-auto flex-1 p-2",children:[af&&(0,d.jsx)("p",{className:"text-xs text-red-500 px-2 py-1",children:af}),ab?(0,d.jsx)("p",{className:"text-xs text-text-muted px-2 py-3",children:"Loading..."}):(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[am.map(a=>(0,d.jsxs)("button",{onClick:()=>{let b;return $(!1),t(a.code),void(r(b=ah[a.code]?.voices||[]),b.length&&(g(b[0].id),n(b[0].name),e.hasVoiceIdInput&&p(b[0].id)))},className:`flex items-center justify-between w-full px-3 py-2 rounded-lg text-left hover:bg-sidebar transition-colors ${s===a.code?"bg-primary/10 text-primary":""}`,children:[(0,d.jsx)("span",{className:"text-sm",children:a.name}),(0,d.jsxs)("div",{className:"flex items-center gap-2 shrink-0",children:[(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[a.voices.length," voices"]}),s===a.code&&(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary",children:"check"})]})]},a.code)),0===am.length&&(0,d.jsx)("p",{className:"text-xs text-text-muted px-2 py-3",children:"No languages found."})]})]})]})})]})}function E({providerId:a,kind:b}){let c=(0,k.wG)(a),e=k.rj.find(a=>a.id===b),f=B[b],g=f||{},j=(0,l.KC)(a).filter(a=>a.type===b),n=new Set(["image","video","music","imageToText"]).has(b),o=n&&0===j.length,[p,q]=(0,h.useState)(j[0]?.id??""),r=j.find(a=>a.id===p),s=!!r?.capabilities?.includes("edit"),[t,u]=(0,h.useState)(g.defaultInput||""),[v,w]=(0,h.useState)(""),[x,z]=(0,h.useState)(()=>(g.extraFields||[]).reduce((a,b)=>(a[b.key]=b.default??"",a),{})),[A,C]=(0,h.useState)(""),[D,F]=(0,h.useState)(!1),[G,H]=(0,h.useState)(""),[I,J]=(0,h.useState)(""),[K,L]=(0,h.useState)(null),[M,N]=(0,h.useState)(null),[O,P]=(0,h.useState)(null),[Q,R]=(0,h.useState)("json"),[S,T]=(0,h.useState)(""),[U,V]=(0,h.useState)(!1),[W,X]=(0,h.useState)(""),[Y,Z]=(0,h.useState)([]),[$,_]=(0,h.useState)(""),{copied:aa,copy:ab}=(0,m.C)(),{copied:ac,copy:ad}=(0,m.C)();if(!e||!f)return null;let ae=D?I:G,af=e.endpoint.path,ag=n?p?`${c}/${p}`:o?"":c:c,ah=Object.entries(x).reduce((a,[b,c])=>(""===c||null==c||"number"==typeof c&&Number.isNaN(c)||(a[b]=c),a),{}),ai={model:ag,[f.bodyKey]:t,...f.extraBody,...ah,...s&&v.trim()?{image:v.trim()}:{}},aj="image"===b&&"binary"===Q,ak="image"===b&&"codex"===a&&!aj,al=`${af}${aj?"?response_format=binary":""}`,am=`-H "Content-Type: application/json" \\ + -H "Authorization: Bearer ${A||"YOUR_KEY"}"${$?` \\ + -H "x-connection-id: ${$}"`:""}${ak?` \\ + -H "Accept: text/event-stream"`:""}`,an=`curl -X ${e.endpoint.method} ${ae}${al} \\ + ${am.replace(/\\\n /g,"\\\n ")} \\ + -d '${JSON.stringify(ai)}'${aj?" \\\n --output image.png":""}`,ao=async()=>{if(!t.trim()||!ag)return;if(V(!0),X(""),L(null),N(null),P(null),S){try{URL.revokeObjectURL(S)}catch{}T("")}let a=Date.now();try{let b={"Content-Type":"application/json"};A&&(b.Authorization=`Bearer ${A}`),$&&(b["x-connection-id"]=$),ak&&(b.Accept="text/event-stream");let c={...ai,model:ag},d=await fetch(`/api${al}`,{method:e.endpoint.method,headers:b,body:JSON.stringify(c)});if(!d.ok){let a=await d.json().catch(()=>({}));X(a?.error?.message||a?.error||`HTTP ${d.status}`);return}let f=d.headers.get("content-type")||"";if(f.startsWith("image/")){let b=await d.blob(),c=URL.createObjectURL(b);T(c),L({data:{binary:!0,mime:f,size:b.size},latencyMs:Date.now()-a});return}if(f.includes("text/event-stream")&&d.body){let b=d.body.getReader(),c=new TextDecoder,e="",f=null,g=null;for(;;){let a,{done:d,value:h}=await b.read();if(d)break;for(e+=c.decode(h,{stream:!0});-1!==(a=e.indexOf("\n\n"));){let b=e.slice(0,a);e=e.slice(a+2);let c=null,d="";for(let a of b.split("\n"))a.startsWith("event:")?c=a.slice(6).trim():a.startsWith("data:")&&(d+=a.slice(5).trim());if(c)try{let a=d?JSON.parse(d):{};"progress"===c?N(a):"partial_image"===c?P(a):"done"===c?f=a:"error"===c&&(g=a?.message||"Stream error")}catch{}}}let h=Date.now()-a;if(g)return void X(g);f&&L({data:f,latencyMs:h})}else{let b=await d.json(),c=Date.now()-a;L({data:b,latencyMs:c})}}catch(a){X(a.message||"Network error")}finally{V(!1)}},ap=a=>{if(!a||"object"!=typeof a)return a;if(Array.isArray(a))return a.map(ap);let b={};for(let[c,d]of Object.entries(a))b[c]="b64_json"===c&&"string"==typeof d&&d.length>100?`<${d.length} chars base64>`:ap(d);return b},aq=K?JSON.stringify(ap(K.data),null,2):"";return(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2.5",children:[j.length>0?(0,d.jsx)(y,{label:"Model",children:(0,d.jsx)("select",{value:p,onChange:a=>q(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:j.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name||a.id},a.id))})}):o?(0,d.jsx)(y,{label:"Model",children:(0,d.jsx)("input",{value:p,onChange:a=>q(a.target.value),placeholder:"Enter model id (provider-specific)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}):null,(0,d.jsx)(y,{label:"Endpoint",children:(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("span",{className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[ae,af]}),I&&(0,d.jsxs)("button",{onClick:()=>F(a=>!a),title:D?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${D?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,d.jsx)(y,{label:"API Key",children:(0,d.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:A?`${A.slice(0,8)}${"•".repeat(Math.min(20,A.length-8))}`:(0,d.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),Y.length>0&&(0,d.jsx)(y,{label:"Connection",children:(0,d.jsxs)("select",{value:$,onChange:a=>_(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,d.jsx)("option",{value:"",children:"Auto (by priority)"}),Y.map(a=>{let b=a.providerSpecificData?.chatgptPlanType,c=a.email||a.name||a.id.slice(0,8);return(0,d.jsxs)("option",{value:a.id,children:[c,b?` [${b}]`:""]},a.id)})]})}),(0,d.jsx)(y,{label:f.inputLabel,children:(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("input",{value:t,onChange:a=>u(a.target.value),placeholder:f.inputPlaceholder,className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),t&&(0,d.jsx)("button",{type:"button",onClick:()=>u(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})}),s&&(0,d.jsx)(y,{label:"Ref Image (URL)",children:(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsx)("input",{value:v,onChange:a=>w(a.target.value),placeholder:"https://example.com/source.png",className:"w-full px-3 py-1.5 pr-7 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}),v&&(0,d.jsx)("button",{type:"button",onClick:()=>w(""),className:"absolute right-2 top-1/2 -translate-y-1/2 text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),v.trim()&&(0,d.jsx)("img",{src:v.trim(),alt:"Reference",className:"max-h-40 rounded-lg border border-border object-contain bg-sidebar",onError:a=>{a.currentTarget.style.display="none"},onLoad:a=>{a.currentTarget.style.display="block"}})]})}),(f.extraFields||[]).filter(a=>0===j.length||Array.isArray(r?.params)&&r.params.includes(a.key)).map(a=>(0,d.jsx)(y,{label:a.label,children:"select"===a.type?(0,d.jsx)("select",{value:x[a.key]??"",onChange:b=>z(c=>({...c,[a.key]:b.target.value})),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:(a.options||[]).map(a=>(0,d.jsx)("option",{value:a,children:""===a?"(default)":a},a))}):"text"===a.type?(0,d.jsx)("input",{type:"text",value:x[a.key]??"",placeholder:a.placeholder,onChange:b=>z(c=>({...c,[a.key]:b.target.value})),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"}):(0,d.jsx)("input",{type:"number",value:x[a.key]??"",min:a.min,max:a.max,onChange:b=>z(c=>({...c,[a.key]:""===b.target.value?"":Number(b.target.value)})),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})},a.key)),"image"===b&&(0,d.jsx)(y,{label:"Output Format",children:(0,d.jsxs)("select",{value:Q,onChange:a=>R(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,d.jsx)("option",{value:"json",children:"JSON (Base64)"}),(0,d.jsx)("option",{value:"binary",children:"Binary File"})]})}),(0,d.jsxs)("div",{className:"mt-1",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("button",{onClick:()=>ab(an),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:aa?"check":"content_copy"}),aa?"Copied":"Copy"]}),(0,d.jsxs)("button",{onClick:ao,disabled:U||!t.trim()||!ag,className:"flex w-full sm:w-auto items-center justify-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:U?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),U?"Running...":"Run"]})]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:an})]}),(U||M)&&ak&&(0,d.jsxs)("div",{className:"flex flex-col gap-2 px-3 py-2 rounded-lg bg-sidebar border border-border sm:flex-row sm:items-center sm:gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-primary",style:U?{animation:"spin 1s linear infinite"}:void 0,children:U?"progress_activity":"check_circle"}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:[M?.stage||"starting",!U&&M?.bytesReceived?` \xb7 ${(M.bytesReceived/1024).toFixed(1)} KB`:""]})]}),O?.b64_json&&!K&&(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Partial preview"}),(0,d.jsx)("img",{src:`data:image/png;base64,${O.b64_json}`,alt:"Partial",className:"max-w-full rounded-lg border border-border mt-1.5 opacity-80"})]}),W&&(0,d.jsx)("p",{className:"text-xs text-red-500 break-words",children:W}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",K&&(0,d.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",K.latencyMs,"ms"]})]}),K&&(0,d.jsxs)("button",{onClick:()=>ad(aq),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:ac?"check":"content_copy"}),ac?"Copied":"Copy"]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all opacity-70",children:K?aq:f.defaultResponse}),"image"===b&&(S||K?.data?.data?.[0])&&(0,d.jsxs)("div",{className:"mt-2",children:[(0,d.jsx)("div",{className:"flex items-center justify-end mb-1.5",children:(0,d.jsxs)("a",{href:S||(K?.data?.data?.[0]?.b64_json?`data:image/png;base64,${K.data.data[0].b64_json}`:K?.data?.data?.[0]?.url||""),download:"image.png",className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"download"}),"Download"]})}),(0,d.jsx)("img",{src:S||(K?.data?.data?.[0]?.b64_json?`data:image/png;base64,${K.data.data[0].b64_json}`:K?.data?.data?.[0]?.url),alt:"Generated",className:"max-w-full rounded-lg border border-border"})]})]})]})]})}function F({providerId:a}){let b=(0,k.wG)(a),c=(0,l.KC)(a).filter(a=>"stt"===a.type),[e,f]=(0,h.useState)([]),g=[...c,...e],[j,n]=(0,h.useState)(c[0]?.id??""),o=g.find(a=>a.id===j),p=Array.isArray(o?.params)?o.params:[],[q,r]=(0,h.useState)(null),[s,t]=(0,h.useState)(""),[u,v]=(0,h.useState)(""),[w,x]=(0,h.useState)("json"),[z,A]=(0,h.useState)(""),[B,C]=(0,h.useState)(""),[D,E]=(0,h.useState)(!1),[G,H]=(0,h.useState)(""),[I,J]=(0,h.useState)(""),[K,L]=(0,h.useState)(null),[M,N]=(0,h.useState)(null),[O,P]=(0,h.useState)(!1),[Q,R]=(0,h.useState)(""),{copied:S,copy:T}=(0,m.C)(),{copied:U,copy:V}=(0,m.C)(),W=D?I:G,X=j?`${b}/${j}`:"",Y=`curl -X POST ${W}/v1/audio/transcriptions \\ + -H "Authorization: Bearer ${B||"YOUR_KEY"}" \\ + -F "file=@${q?.name||"audio.mp3"}" \\ + -F "model=${X}"${p.includes("language")&&s?` \\ + -F "language=${s}"`:""}${p.includes("response_format")?` \\ + -F "response_format=${w}"`:""}${p.includes("temperature")&&z?` \\ + -F "temperature=${z}"`:""}${p.includes("prompt")&&u?` \\ + -F "prompt=${u}"`:""}`,Z=async()=>{if(!q||!X)return;P(!0),R(""),L(null);let a=Date.now();try{let b=new FormData;b.append("file",q),b.append("model",X),p.includes("language")&&s&&b.append("language",s),p.includes("response_format")&&b.append("response_format",w),p.includes("temperature")&&z&&b.append("temperature",z),p.includes("prompt")&&u&&b.append("prompt",u);let c={};B&&(c.Authorization=`Bearer ${B}`);let d=await fetch("/api/v1/audio/transcriptions",{method:"POST",headers:c,body:b});N(Date.now()-a);let e=(d.headers.get("content-type")||"").includes("application/json")?await d.json():await d.text();if(!d.ok)return void R(e?.error?.message||e?.error||e||`HTTP ${d.status}`);L(e)}catch(a){R(a.message||"Network error")}finally{P(!1)}},$="string"==typeof K?K:K?JSON.stringify(K,null,2):`{ + "text": "Hello world..." +}`;return(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-4",children:"Example"}),(0,d.jsxs)("div",{className:"flex flex-col gap-2.5",children:[g.length>0?(0,d.jsx)(y,{label:"Model",children:(0,d.jsx)("select",{value:j,onChange:a=>n(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:g.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name||a.id},a.id))})}):(0,d.jsx)(y,{label:"Model",children:(0,d.jsx)("input",{value:j,onChange:a=>n(a.target.value),placeholder:"Enter model id",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),(0,d.jsx)(y,{label:"Endpoint",children:(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("span",{className:"w-full min-w-0 flex-1 px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate",children:[W,"/v1/audio/transcriptions"]}),I&&(0,d.jsxs)("button",{onClick:()=>E(a=>!a),title:D?"Using tunnel":"Using local",className:`flex items-center gap-1 text-xs px-2 py-1.5 rounded-lg border shrink-0 transition-colors ${D?"border-primary/40 bg-primary/10 text-primary":"border-border text-text-muted hover:text-primary"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"wifi_tethering"}),"Tunnel"]})]})}),(0,d.jsx)(y,{label:"API Key",children:(0,d.jsx)("span",{className:"px-3 py-1.5 text-sm font-mono text-text-main bg-sidebar rounded-lg truncate block",children:B?`${B.slice(0,8)}${"•".repeat(Math.min(20,B.length-8))}`:(0,d.jsx)("span",{className:"text-text-muted italic",children:"No key configured"})})}),(0,d.jsx)(y,{label:"Audio File",children:(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("input",{type:"file",accept:"audio/*,video/mp4,.m4a,.mp3,.wav,.ogg,.flac,.webm,.opus",onChange:a=>r(a.target.files?.[0]||null),className:"w-full text-xs text-text-muted file:mr-2 file:py-1 file:px-2.5 file:rounded-lg file:border file:border-border file:bg-background file:text-text-main hover:file:bg-sidebar file:cursor-pointer"}),q&&(0,d.jsxs)("span",{className:"text-xs text-text-muted font-mono",children:[q.name," \xb7 ",(q.size/1024).toFixed(1)," KB"]})]})}),p.includes("language")&&(0,d.jsx)(y,{label:"Language",children:(0,d.jsx)("input",{value:s,onChange:a=>t(a.target.value),placeholder:"e.g. en, vi, ja (auto-detect if empty)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary font-mono"})}),p.includes("prompt")&&(0,d.jsx)(y,{label:"Prompt",children:(0,d.jsx)("input",{value:u,onChange:a=>v(a.target.value),placeholder:"optional context to improve accuracy",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),p.includes("temperature")&&(0,d.jsx)(y,{label:"Temperature",children:(0,d.jsx)("input",{type:"number",step:"0.1",min:"0",max:"1",value:z,onChange:a=>A(a.target.value),placeholder:"0 - 1 (default 0)",className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})}),p.includes("response_format")&&(0,d.jsx)(y,{label:"Response Format",children:(0,d.jsxs)("select",{value:w,onChange:a=>x(a.target.value),className:"w-full px-3 py-1.5 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",children:[(0,d.jsx)("option",{value:"json",children:"json"}),(0,d.jsx)("option",{value:"text",children:"text"}),(0,d.jsx)("option",{value:"srt",children:"srt"}),(0,d.jsx)("option",{value:"verbose_json",children:"verbose_json"}),(0,d.jsx)("option",{value:"vtt",children:"vtt"})]})}),(0,d.jsxs)("div",{className:"mt-1",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:"Request"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsxs)("button",{onClick:()=>T(Y),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:S?"check":"content_copy"}),S?"Copied":"Copy"]}),(0,d.jsxs)("button",{onClick:Z,disabled:O||!q||!X,className:"flex w-full sm:w-auto items-center justify-center gap-1.5 px-3 py-1 rounded-lg bg-primary text-white text-xs font-medium hover:bg-primary/90 transition-colors disabled:opacity-50 disabled:cursor-not-allowed",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",style:O?{animation:"spin 1s linear infinite"}:void 0,children:"play_arrow"}),O?"Transcribing...":"Run"]})]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all",children:Y})]}),Q&&(0,d.jsx)("p",{className:"text-xs text-red-500 break-words",children:Q}),(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between mb-1.5",children:[(0,d.jsxs)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wider",children:["Response ",K&&M&&(0,d.jsxs)("span",{className:"font-normal normal-case",children:["⚡ ",M,"ms"]})]}),K&&(0,d.jsxs)("button",{onClick:()=>V($),className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:U?"check":"content_copy"}),U?"Copied":"Copy"]})]}),(0,d.jsx)("pre",{className:"bg-sidebar rounded-lg px-3 py-2.5 text-xs font-mono text-text-main overflow-x-auto whitespace-pre-wrap break-all opacity-70",children:$})]})]})]})}function G(){let{kind:a,id:b}=(0,e.useParams)(),c=(0,e.useRouter)(),f=k.rj.find(b=>b.id===a),l=(0,k.gC)(b)&&"embedding"===a,m=async()=>{if(confirm("Delete this Custom Embedding node?"))try{(await fetch(`/api/provider-nodes/${b}`,{method:"DELETE"})).ok&&c.push(`/dashboard/media-providers/${a}`)}catch(a){console.log("Error deleting custom embedding node:",a)}},[n,o]=(0,h.useState)(null),[p,q]=(0,h.useState)(l),[r,t]=(0,h.useState)(!1);if(!f)return(0,e.notFound)();let u=k.Q2[b],w=l?n?{id:b,name:n.name||"Custom Embedding",color:"#6366F1",textIcon:"CE"}:null:u;if(!l&&!u||l&&!p&&!n)return(0,e.notFound)();if(l&&p)return(0,d.jsx)("div",{className:"text-text-muted text-sm py-12 text-center",children:"Loading..."});let x=l?["embedding"]:w.serviceKinds??["llm"];return l||x.includes(a)?(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsxs)("div",{children:[(0,d.jsxs)(g(),{href:`/dashboard/media-providers/${a}`,className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),f.label]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-4",children:[(0,d.jsx)("div",{className:"size-12 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${w.color}15`},children:(0,d.jsx)(j.A,{src:`/providers/${w.id}.png`,alt:w.name,size:48,className:"object-contain rounded-lg max-w-[48px] max-h-[48px]",fallbackText:w.textIcon||w.id.slice(0,2).toUpperCase(),fallbackColor:w.color})}),(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 sm:gap-3",children:[(0,d.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:w.name}),!l&&w.notice?.apiKeyUrl&&(0,d.jsxs)("a",{href:w.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5 mt-1 flex-wrap",children:[l&&(0,d.jsxs)(i.Ex,{variant:"default",size:"sm",children:["Custom \xb7 ",n?.prefix]}),x.map(b=>(0,d.jsx)(i.Ex,{variant:b===a?"primary":"default",size:"sm",children:b.toUpperCase()},b))]})]}),l&&(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>t(!0),children:"Edit"}),(0,d.jsx)(i.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:m,children:"Delete"})]})]})]}),!l&&w.kindNotice?.[a]&&(0,d.jsxs)("div",{className:"flex items-start gap-3 px-4 py-3 rounded-lg bg-amber-500/10 border border-amber-500/30 text-amber-700 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] mt-0.5",children:"warning"}),(0,d.jsx)("p",{className:"text-sm",children:w.kindNotice[a]})]}),!l&&w.notice?.text&&!w.deprecated&&(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-2 sm:flex-row sm:items-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-blue-500 shrink-0",children:"info"}),(0,d.jsx)("p",{className:"min-w-0 flex-1 text-xs leading-relaxed text-blue-600 dark:text-blue-400",children:w.notice.text}),w.notice.apiKeyUrl&&(0,d.jsx)("a",{href:w.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex justify-center rounded bg-blue-500 px-2 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600 sm:py-0.5",children:"Get API Key →"})]}),!l&&w.noAuth?(0,d.jsx)(i.gw,{providerId:b}):(0,d.jsx)(s,{providerId:b,isOAuth:!1}),"tts"!==a&&"webSearch"!==a&&"webFetch"!==a&&(0,d.jsx)(v,{providerId:b,kindFilter:a,providerAliasOverride:l?n?.prefix:void 0}),!l&&(w.searchConfig||w.fetchConfig||w.ttsConfig||w.sttConfig||w.embeddingConfig||w.searchViaChat)&&(0,d.jsx)(i.Wx,{config:"webFetch"===a?w.fetchConfig:"tts"===a?w.ttsConfig:"stt"===a?w.sttConfig:"embedding"===a?w.embeddingConfig:w.searchConfig||{mode:"chat-completions",defaultModel:w.searchViaChat?.defaultModel,pricingUrl:w.searchViaChat?.pricingUrl,freeTier:w.searchViaChat?.freeTier},provider:w,title:`${f.label} Config`}),"embedding"===a&&(0,d.jsx)(C,{providerId:b,customAlias:n?.prefix}),"tts"===a&&(0,d.jsx)(D,{providerId:b}),"stt"===a&&!l&&(0,d.jsx)(F,{providerId:b}),!l&&B[a]&&(0,d.jsx)(E,{providerId:b,kind:a}),l&&(0,d.jsx)(i.x0,{isOpen:r,node:n,onClose:()=>t(!1),onSaved:a=>{o(a),t(!1)}})]}):(0,e.notFound)()}},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},23476:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js","default")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33099:(a,b,c)=>{Promise.resolve().then(c.bind(c,14638))},33873:a=>{"use strict";a.exports=require("path")},38675:(a,b,c)=>{Promise.resolve().then(c.bind(c,23476))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41575:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["media-providers",{children:["[kind]",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,23476)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},["combo","web"]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/media-providers/[kind]/[id]/page",pathname:"/dashboard/media-providers/[kind]/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/media-providers/[kind]/[id]/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=41575));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json new file mode 100644 index 00000000000..58554d542e0 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../../node_modules/react/index.js","../../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../chunks/1249.js","../../../../../../chunks/2049.js","../../../../../../chunks/21.js","../../../../../../chunks/2371.js","../../../../../../chunks/2503.js","../../../../../../chunks/2566.js","../../../../../../chunks/3656.js","../../../../../../chunks/375.js","../../../../../../chunks/3774.js","../../../../../../chunks/450.js","../../../../../../chunks/5053.js","../../../../../../chunks/514.js","../../../../../../chunks/5978.js","../../../../../../chunks/64.js","../../../../../../chunks/6782.js","../../../../../../chunks/7770.js","../../../../../../chunks/7773.js","../../../../../../chunks/8035.js","../../../../../../chunks/8193.js","../../../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js new file mode 100644 index 00000000000..f3046b1ffdb --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/media-providers/[kind]/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","182","static/chunks/app/(dashboard)/dashboard/media-providers/%5Bkind%5D/%5Bid%5D/page-82f41d609dfb2f59.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","6620","static/chunks/app/(dashboard)/dashboard/media-providers/%5Bkind%5D/page-5cb5ae93c4288788.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js new file mode 100644 index 00000000000..39aedb54268 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=6620,a.ids=[6620],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53192:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js","default")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57707:(a,b,c)=>{Promise.resolve().then(c.bind(c,67394))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67394:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q});var d=c(26835),e=c(28217),f=c(30978),g=c.n(f),h=c(53830),i=c(50450),j=c(66298),k=c(30207);let l=new Set([]),m={image:"image-combo",tts:"tts-combo"};function n(a){let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"}function o({provider:a,kind:b,connections:c,isCustom:e}){let f=k.Q2[a.id],h=!!f?.noAuth,l=c.filter(b=>b.provider===a.id),m=l.filter(a=>{let b=n(a);return"active"===b||"success"===b}).length,p=l.filter(a=>{let b=n(a);return"error"===b||"expired"===b||"unavailable"===b}).length,q=l.length,r=q>0&&l.every(a=>!1===a.isActive);return(0,d.jsx)(g(),{href:`/dashboard/media-providers/${b}/${a.id}`,className:"group",children:(0,d.jsx)(i.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${r?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${a.color?.length>7?a.color:(a.color??"#888")+"15"}`},children:(0,d.jsx)(j.A,{src:`/providers/${a.id}.png`,alt:a.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:a.textIcon||a.id.slice(0,2).toUpperCase(),fallbackColor:a.color})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"font-semibold text-sm",children:a.name}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-0.5 flex-wrap",children:[e&&(0,d.jsx)(i.Ex,{variant:"default",size:"sm",children:"Custom"}),h?(0,d.jsx)(i.Ex,{variant:"success",size:"sm",children:"Ready"}):r?(0,d.jsx)(i.Ex,{variant:"default",size:"sm",children:"Disabled"}):0===q?(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"No connections"}):(0,d.jsxs)(d.Fragment,{children:[m>0&&(0,d.jsxs)(i.Ex,{variant:"success",size:"sm",dot:!0,children:[m," Connected"]}),p>0&&(0,d.jsxs)(i.Ex,{variant:"error",size:"sm",dot:!0,children:[p," Error"]}),0===m&&0===p&&(0,d.jsxs)(i.Ex,{variant:"default",size:"sm",children:[q," Added"]})]})]})]})]})})})}function p({combos:a}){return 0===a.length?null:(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.map(a=>(0,d.jsx)(g(),{href:`/dashboard/media-providers/combo/${a.id}`,children:(0,d.jsx)(i.Zp,{padding:"xs",className:"hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors cursor-pointer",children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"}),(0,d.jsx)("code",{className:"text-sm font-mono font-medium flex-1 truncate",children:a.name}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1 sm:shrink-0",children:[a.models.slice(0,6).map((a,b)=>{let c="string"==typeof a?a.split("/")[0]:"",e=k.Q2[c];return(0,d.jsx)("div",{title:e?.name||a,className:"size-5 rounded flex items-center justify-center",style:{backgroundColor:`${e?.color??"#888"}15`},children:(0,d.jsx)(j.A,{src:`/providers/${c}.png`,alt:e?.name||c,size:18,className:"object-contain rounded max-w-[18px] max-h-[18px]",fallbackText:e?.textIcon||c.slice(0,2).toUpperCase(),fallbackColor:e?.color})},`${a}-${b}`)}),a.models.length>6&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted ml-1",children:["+",a.models.length-6]})]}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted shrink-0",children:a.models.length}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[16px]",children:"chevron_right"})]})})},a.id))})}function q(){let{kind:a}=(0,e.useParams)(),b=(0,e.useRouter)(),[c,f]=(0,h.useState)([]),[g,j]=(0,h.useState)([]),[n,q]=(0,h.useState)([]),[r,s]=(0,h.useState)(!1),t=k.rj.find(b=>b.id===a),u="embedding"===a,v=l.has(a);if(!t)return(0,e.notFound)();let w=(0,k.o5)(a),x=n.filter(b=>b.kind===a),y=g.map(a=>({id:a.id,name:a.name||"Custom Embedding",color:"#6366F1",textIcon:"CE"})),z=[...w,...y],A=async()=>{let c=m[a]||`${a}-combo`,d=c,e=1,f=new Set(n.map(a=>a.name));for(;f.has(d);)d=`${c}-${e++}`;let g=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:d,models:[],kind:a})});if(g.ok){let a=await g.json();b.push(`/dashboard/media-providers/combo/${a.id}`)}else alert((await g.json()).error||"Failed to create combo")};return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(u||v)&&(0,d.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[v&&(0,d.jsx)(i.$n,{size:"sm",icon:"add",onClick:A,children:"Create Combo"}),u&&(0,d.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>s(!0),children:"Add Custom Embedding"})]}),v&&x.length>0&&(0,d.jsx)(p,{combos:x}),0===z.length?(0,d.jsxs)("div",{className:"text-center py-12 border border-dashed border-border rounded-xl text-text-muted text-sm",children:["No providers support ",(0,d.jsx)("strong",{children:t.label})," yet."]}):(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:[w.map(b=>(0,d.jsx)(o,{provider:b,kind:a,connections:c},b.id)),y.map(b=>(0,d.jsx)(o,{provider:b,kind:a,connections:c,isCustom:!0},b.id))]}),u&&(0,d.jsx)(i.x0,{isOpen:r,onClose:()=>s(!1),onCreated:a=>{j(b=>[...b,a]),s(!1)}})]})}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},85837:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["media-providers",{children:["[kind]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,53192)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},["combo","web"]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/media-providers/[kind]/page",pathname:"/dashboard/media-providers/[kind]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/media-providers/[kind]/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},97459:(a,b,c)=>{Promise.resolve().then(c.bind(c,53192))}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=85837));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json new file mode 100644 index 00000000000..9cb6c8f853b --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2049.js","../../../../../chunks/21.js","../../../../../chunks/2371.js","../../../../../chunks/2503.js","../../../../../chunks/2566.js","../../../../../chunks/3656.js","../../../../../chunks/375.js","../../../../../chunks/3774.js","../../../../../chunks/450.js","../../../../../chunks/5053.js","../../../../../chunks/514.js","../../../../../chunks/5978.js","../../../../../chunks/64.js","../../../../../chunks/6782.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8035.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js new file mode 100644 index 00000000000..e4ec237b7af --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/[kind]/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/media-providers/[kind]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","6620","static/chunks/app/(dashboard)/dashboard/media-providers/%5Bkind%5D/page-5cb5ae93c4288788.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js new file mode 100644 index 00000000000..01eb1cecb93 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js @@ -0,0 +1,5 @@ +(()=>{var a={};a.id=8334,a.ids=[8334],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17626:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js","default")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33160:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q});var d=c(26835),e=c(28217),f=c(53830),g=c(30978),h=c.n(g),i=c(50450),j=c(66298),k=c(30207);let l=/^[a-zA-Z0-9_.\-]+$/,m={webSearch:"Web Search",webFetch:"Web Fetch",image:"Text to Image",tts:"Text To Speech"},n={webSearch:"/v1/search",webFetch:"/v1/web/fetch",image:"/v1/images/generations",tts:"/v1/audio/speech"},o={webSearch:a=>({model:a,query:"What is the latest news about AI?",search_type:"web",max_results:5}),webFetch:a=>({model:a,url:"https://example.com",format:"markdown"}),image:a=>({model:a,prompt:"A cute cat playing piano",n:1,size:"1024x1024"}),tts:a=>({model:a,input:"Hello, this is a test.",voice:"alloy"})};function p(a){return"webSearch"===a||"webFetch"===a?"/dashboard/media-providers/web":`/dashboard/media-providers/${a}`}function q(){let{id:a}=(0,e.useParams)(),b=(0,e.useRouter)(),[c,g]=(0,f.useState)(null),[q,r]=(0,f.useState)(!0),[s,t]=(0,f.useState)(""),[u,v]=(0,f.useState)(""),[w,x]=(0,f.useState)([]),[y,z]=(0,f.useState)(!1),[A,B]=(0,f.useState)(!1),[C,D]=(0,f.useState)([]),[E,F]=(0,f.useState)(!1),[G,H]=(0,f.useState)(null),[I,J]=(0,f.useState)(""),[K,L]=(0,f.useState)(""),[M,N]=(0,f.useState)([]),[O,P]=(0,f.useState)({}),Q=async()=>{try{let[b,c,d,e,f,h]=await Promise.all([fetch(`/api/combos/${a}`,{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"}),fetch("/api/usage/logs",{cache:"no-store"}),fetch("/api/keys",{cache:"no-store"}),fetch("/api/providers",{cache:"no-store"}),fetch("/api/models/alias",{cache:"no-store"})]);if(h.ok&&P((await h.json()).aliases||{}),e.ok){let a=await e.json();L((a.keys||[]).find(a=>!1!==a.isActive)?.key||"")}if(f.ok&&N((await f.json()).connections||[]),!b.ok){g(null),r(!1);return}let i=await b.json();g(i),t(i.name),x(i.models||[]);let j=c.ok?await c.json():{};z(j.comboStrategies?.[i.name]?.fallbackStrategy==="round-robin");let k=d.ok?await d.json():[];D(k.filter(a=>"string"==typeof a&&a.includes(i.name)).slice(0,50))}catch{}r(!1)},R=a=>a.trim()?l.test(a)?(v(""),!0):(v("Only letters, numbers, -, _ and ."),!1):(v("Name is required"),!1),S=async b=>{let c=await fetch(`/api/combos/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(b)});return!!c.ok||(alert((await c.json()).error||"Failed to save"),!1)},T=async()=>{!R(s)||s===c.name||await S({name:s})&&await Q()},U=async a=>{let b=a?.value||a;if(!b||w.includes(b))return;let c=[...w,b];x(c),await S({models:c})},V=async a=>{let b=a?.value||a;if(!b||!w.includes(b))return;let c=w.filter(a=>a!==b);x(c),await S({models:c})},W=async a=>{let b=w.filter((b,c)=>c!==a);x(b),await S({models:b})},X=async(a,b)=>{let c=[...w],d=a+b;d<0||d>=c.length||([c[a],c[d]]=[c[d],c[a]],x(c),await S({models:c}))},Y=async a=>{z(a);let b=await fetch("/api/settings",{cache:"no-store"}),d={...(b.ok?await b.json():{}).comboStrategies||{}};a?d[c.name]={fallbackStrategy:"round-robin"}:delete d[c.name],await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategies:d})})},Z=async()=>{!confirm(`Delete combo "${c.name}"?`)||(await fetch(`/api/combos/${a}`,{method:"DELETE"})).ok&&b.push(p(c.kind))},$=async()=>{if(F(!0),H(null),J(""),G?.audioUrl)try{URL.revokeObjectURL(G.audioUrl)}catch{}if(G?.imageUrl?.startsWith("blob:"))try{URL.revokeObjectURL(G.imageUrl)}catch{}let a=Date.now();try{let b=n[c.kind],d=o[c.kind](c.name),e={"Content-Type":"application/json"};K&&(e.Authorization=`Bearer ${K}`);let f=await fetch(`/api${b}`,{method:"POST",headers:e,body:JSON.stringify(d)}),g=Date.now()-a;if(!f.ok){let a=await f.json().catch(()=>({}));J(a?.error?.message||a?.error||`HTTP ${f.status}`),H({json:JSON.stringify(a,null,2),latencyMs:g});return}let h=f.headers.get("content-type")||"";if(h.startsWith("image/")){let a=await f.blob();H({imageUrl:URL.createObjectURL(a),latencyMs:g});return}if(h.startsWith("audio/")||"application/octet-stream"===h){let a=await f.blob();H({audioUrl:URL.createObjectURL(a),latencyMs:g});return}let i=await f.json(),j=i?.data?.[0],k=j?.b64_json?`data:image/png;base64,${j.b64_json}`:j?.url||"";H({json:JSON.stringify(function a(b){if(!b||"object"!=typeof b)return b;if(Array.isArray(b))return b.map(a);let c={};for(let[d,e]of Object.entries(b))c[d]="b64_json"===d&&"string"==typeof e&&e.length>100?`<${e.length} chars base64>`:a(e);return c}(i),null,2),imageUrl:k,latencyMs:g})}catch(a){J(a.message||"Network error")}F(!1)};if(q)return(0,d.jsx)("div",{className:"text-text-muted text-sm",children:"Loading..."});if(!c)return(0,e.notFound)();let _=m[c.kind]||k.rj.find(a=>a.id===c.kind)?.label||"Combo",aa=n[c.kind],ab=c.kind&&o[c.kind]?o[c.kind](c.name):null,ac=aa?`curl -X POST http://localhost:20128${aa} \\ + -H "Content-Type: application/json" \\ + -H "Authorization: Bearer ${K||"YOUR_KEY"}" \\ + -d '${JSON.stringify(ab)}'`:"",ad=p(c.kind);return(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,d.jsx)(h(),{href:ad,className:"text-text-muted hover:text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"arrow_back"})}),(0,d.jsx)("div",{className:"size-10 rounded-lg bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"layers"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[_," Combo"]}),(0,d.jsx)("code",{className:"text-lg font-semibold font-mono",children:c.name})]})]}),(0,d.jsx)(i.$n,{variant:"outline",icon:"delete",onClick:Z,className:"text-red-500 border-red-200 hover:bg-red-50",children:"Delete"})]}),(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Settings"}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)(i.pd,{label:"Combo Name",value:s,onChange:a=>{t(a.target.value),R(a.target.value)},onBlur:T,error:u}),(0,d.jsx)("p",{className:"text-[10px] text-text-muted mt-0.5",children:"Only letters, numbers, -, _ and ."})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:"Round Robin"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Rotate providers across requests instead of strict fallback order."})]}),(0,d.jsx)(i.lM,{checked:y,onChange:Y})]})]})]}),(0,d.jsxs)(i.Zp,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-3",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"Providers"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Tried in order (top-down) or rotated when round-robin is on."})]}),(0,d.jsx)(i.$n,{size:"sm",icon:"add",onClick:()=>B(!0),children:"Add Provider"})]}),0===w.length?(0,d.jsx)("div",{className:"text-center py-6 border border-dashed border-border rounded-lg text-text-muted text-sm",children:"No providers yet."}):(0,d.jsx)("div",{className:"flex flex-col gap-2",children:w.map((a,b)=>{let{providerId:c,model:e}=function(a){if("string"!=typeof a)return{providerId:"",model:""};let b=a.indexOf("/");return b<0?{providerId:a,model:""}:{providerId:a.slice(0,b),model:a.slice(b+1)}}(a),f=k.Q2[c];return(0,d.jsxs)("div",{className:"flex items-center gap-3 p-2 rounded-lg bg-black/[0.02] dark:bg-white/[0.02]",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted w-5 text-center",children:b+1}),(0,d.jsx)(j.A,{src:`/providers/${c}.png`,alt:f?.name||c,size:24,className:"object-contain rounded shrink-0",fallbackText:f?.textIcon||c.slice(0,2).toUpperCase(),fallbackColor:f?.color}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsx)("div",{className:"text-sm font-medium truncate",children:f?.name||c}),e&&(0,d.jsx)("code",{className:"text-[10px] text-text-muted font-mono truncate block",children:e})]}),(0,d.jsxs)("div",{className:"flex items-center gap-0.5",children:[(0,d.jsx)("button",{onClick:()=>X(b,-1),disabled:0===b,className:`p-1 rounded ${0===b?"text-text-muted/20":"text-text-muted hover:text-primary hover:bg-black/5"}`,title:"Move up",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_upward"})}),(0,d.jsx)("button",{onClick:()=>X(b,1),disabled:b===w.length-1,className:`p-1 rounded ${b===w.length-1?"text-text-muted/20":"text-text-muted hover:text-primary hover:bg-black/5"}`,title:"Move down",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"arrow_downward"})}),(0,d.jsx)("button",{onClick:()=>W(b),className:"p-1 rounded text-text-muted hover:text-red-500 hover:bg-red-500/10",title:"Remove",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]})]},`${a}-${b}`)})})]}),c.kind&&aa&&(0,d.jsxs)(i.Zp,{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-3",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"Test Example"}),(0,d.jsx)(i.$n,{size:"sm",icon:"play_arrow",onClick:$,disabled:E||0===w.length,children:E?"Running...":"Run"})]}),(0,d.jsx)("pre",{className:"text-xs font-mono bg-black/[0.03] dark:bg-white/[0.03] p-3 rounded-lg overflow-x-auto whitespace-pre-wrap break-all",children:ac}),I&&(0,d.jsx)("p",{className:"mt-3 text-xs text-red-500 break-words",children:I}),G&&(0,d.jsxs)("div",{className:"mt-3 flex flex-col gap-3",children:[null!=G.latencyMs&&(0,d.jsxs)("span",{className:"text-[11px] text-text-muted",children:["⚡ ",G.latencyMs,"ms"]}),G.imageUrl&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex items-center justify-end mb-1.5",children:(0,d.jsxs)("a",{href:G.imageUrl,download:"image.png",className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"download"}),"Download"]})}),(0,d.jsx)("img",{src:G.imageUrl,alt:"Generated",className:"max-w-full rounded-lg border border-border"})]}),G.audioUrl&&(0,d.jsxs)("div",{children:[(0,d.jsx)("div",{className:"flex items-center justify-end mb-1.5",children:(0,d.jsxs)("a",{href:G.audioUrl,download:"speech.mp3",className:"inline-flex items-center gap-1 text-xs text-text-muted hover:text-primary transition-colors",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"download"}),"Download"]})}),(0,d.jsx)("audio",{controls:!0,src:G.audioUrl,className:"w-full"})]}),G.json&&(0,d.jsx)("pre",{className:"text-xs font-mono bg-black/[0.03] dark:bg-white/[0.03] p-3 rounded-lg overflow-auto max-h-[300px] whitespace-pre-wrap break-all",children:G.json})]})]}),(0,d.jsxs)(i.Zp,{children:[(0,d.jsx)("h2",{className:"text-lg font-semibold mb-3",children:"Usage Logs"}),0===C.length?(0,d.jsx)("p",{className:"text-xs text-text-muted italic",children:"No usage yet."}):(0,d.jsx)("pre",{className:"text-[11px] font-mono bg-black/[0.03] dark:bg-white/[0.03] p-3 rounded-lg overflow-auto max-h-[400px] whitespace-pre-wrap",children:C.join("\n")})]}),(0,d.jsx)(i.rq,{isOpen:A,onClose:()=>B(!1),onSelect:U,onDeselect:V,activeProviders:M,modelAliases:O,title:`Add ${_} Model`,kindFilter:c.kind,addedModelValues:w,closeOnSelect:!1})]})}},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42403:(a,b,c)=>{Promise.resolve().then(c.bind(c,17626))},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},56475:(a,b,c)=>{Promise.resolve().then(c.bind(c,33160))},57545:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["media-providers",{children:["combo",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,17626)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/media-providers/combo/[id]/page",pathname:"/dashboard/media-providers/combo/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/media-providers/combo/[id]/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=57545));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json new file mode 100644 index 00000000000..58554d542e0 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../../node_modules/react/index.js","../../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../chunks/1249.js","../../../../../../chunks/2049.js","../../../../../../chunks/21.js","../../../../../../chunks/2371.js","../../../../../../chunks/2503.js","../../../../../../chunks/2566.js","../../../../../../chunks/3656.js","../../../../../../chunks/375.js","../../../../../../chunks/3774.js","../../../../../../chunks/450.js","../../../../../../chunks/5053.js","../../../../../../chunks/514.js","../../../../../../chunks/5978.js","../../../../../../chunks/64.js","../../../../../../chunks/6782.js","../../../../../../chunks/7770.js","../../../../../../chunks/7773.js","../../../../../../chunks/8035.js","../../../../../../chunks/8193.js","../../../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js new file mode 100644 index 00000000000..5884a72b076 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/combo/[id]/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/media-providers/combo/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8334","static/chunks/app/(dashboard)/dashboard/media-providers/combo/%5Bid%5D/page-29ce6662637d64e4.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js new file mode 100644 index 00000000000..b4e9384eb7a --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=9260,a.ids=[9260],a.modules={100:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>p});var d=c(26835),e=c(30978),f=c.n(e),g=c(53830),h=c(28217),i=c(50450),j=c(66298),k=c(30207);function l(a){let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"}function m({provider:a,kind:b,connections:c}){let e=k.Q2[a.id],g=!!e?.noAuth,h=c.filter(b=>b.provider===a.id),n=h.filter(a=>{let b=l(a);return"active"===b||"success"===b}).length,o=h.filter(a=>{let b=l(a);return"error"===b||"expired"===b||"unavailable"===b}).length,p=h.length,q=p>0&&h.every(a=>!1===a.isActive);return(0,d.jsx)(f(),{href:`/dashboard/media-providers/${b}/${a.id}`,className:"group",children:(0,d.jsx)(i.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${q?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center shrink-0",style:{backgroundColor:`${a.color?.length>7?a.color:(a.color??"#888")+"15"}`},children:(0,d.jsx)(j.A,{src:`/providers/${a.id}.png`,alt:a.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:a.textIcon||a.id.slice(0,2).toUpperCase(),fallbackColor:a.color})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"font-semibold text-sm",children:a.name}),(0,d.jsx)("div",{className:"flex items-center gap-2 mt-0.5 flex-wrap",children:g?(0,d.jsx)(i.Ex,{variant:"success",size:"sm",children:"Ready"}):q?(0,d.jsx)(i.Ex,{variant:"default",size:"sm",children:"Disabled"}):0===p?(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"No connections"}):(0,d.jsxs)(d.Fragment,{children:[n>0&&(0,d.jsxs)(i.Ex,{variant:"success",size:"sm",dot:!0,children:[n," Connected"]}),o>0&&(0,d.jsxs)(i.Ex,{variant:"error",size:"sm",dot:!0,children:[o," Error"]}),0===n&&0===o&&(0,d.jsxs)(i.Ex,{variant:"default",size:"sm",children:[p," Added"]})]})})]})]})})})}function n({combos:a}){return 0===a.length?(0,d.jsx)("p",{className:"text-xs text-text-muted italic",children:"No combos yet."}):(0,d.jsx)("div",{className:"flex flex-col gap-2",children:a.map(a=>(0,d.jsx)(f(),{href:`/dashboard/media-providers/combo/${a.id}`,children:(0,d.jsx)(i.Zp,{padding:"xs",className:"hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors cursor-pointer",children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary text-[18px]",children:"layers"}),(0,d.jsx)("code",{className:"text-sm font-mono font-medium flex-1 truncate",children:a.name}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1 sm:shrink-0",children:[a.models.slice(0,6).map((a,b)=>{let c="string"==typeof a?a.split("/")[0]:"",e=k.Q2[c];return(0,d.jsx)("div",{title:e?.name||a,className:"size-5 rounded flex items-center justify-center",style:{backgroundColor:`${e?.color??"#888"}15`},children:(0,d.jsx)(j.A,{src:`/providers/${c}.png`,alt:e?.name||c,size:18,className:"object-contain rounded max-w-[18px] max-h-[18px]",fallbackText:e?.textIcon||c.slice(0,2).toUpperCase(),fallbackColor:e?.color})},`${a}-${b}`)}),a.models.length>6&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted ml-1",children:["+",a.models.length-6]})]}),(0,d.jsx)("span",{className:"text-[11px] text-text-muted shrink-0",children:a.models.length}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[16px]",children:"chevron_right"})]})})},a.id))})}function o({title:a,icon:b,kind:c,providers:e,connections:f,combos:g,onCreateCombo:h}){return(0,d.jsxs)("div",{children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between mb-3",children:[(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:b}),(0,d.jsx)("h2",{className:"text-base font-semibold",children:a}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["(",e.length," providers \xb7 ",g.length," combos)"]})]}),(0,d.jsx)(i.$n,{size:"sm",icon:"add",onClick:h,children:"Create Combo"})]}),g.length>0&&(0,d.jsx)("div",{className:"mb-4",children:(0,d.jsx)(n,{combos:g})}),0===e.length?(0,d.jsx)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl text-text-muted text-sm",children:"No providers."}):(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4 gap-4",children:e.map(a=>(0,d.jsx)(m,{provider:a,kind:c,connections:f},a.id))})]})}function p(){let a=(0,h.useRouter)(),[b,c]=(0,g.useState)([]),[e,f]=(0,g.useState)([]),i=(0,k.o5)("webSearch"),j=(0,k.o5)("webFetch"),l=e.filter(a=>"webSearch"===a.kind),m=e.filter(a=>"webFetch"===a.kind),n=async b=>{let c="webSearch"===b?"search-combo":"fetch-combo",d=c,f=1,g=new Set(e.map(a=>a.name));for(;g.has(d);)d=`${c}-${f++}`;let h=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:d,models:[],kind:b})});if(h.ok){let b=await h.json();a.push(`/dashboard/media-providers/combo/${b.id}`)}else alert((await h.json()).error||"Failed to create combo")};return(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(o,{title:"Web Search",icon:"search",kind:"webSearch",providers:i,connections:b,combos:l,onCreateCombo:()=>n("webSearch")}),(0,d.jsx)("div",{className:"border-t border-border"}),(0,d.jsx)(o,{title:"Web Fetch",icon:"travel_explore",kind:"webFetch",providers:j,connections:b,combos:m,onCreateCombo:()=>n("webFetch")})]})}},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1819:(a,b,c)=>{Promise.resolve().then(c.bind(c,58770))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},54963:(a,b,c)=>{Promise.resolve().then(c.bind(c,100))},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},58770:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js","default")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},83815:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["media-providers",{children:["web",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,58770)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/media-providers/web/page",pathname:"/dashboard/media-providers/web",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/media-providers/web/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=83815));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json new file mode 100644 index 00000000000..9cb6c8f853b --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2049.js","../../../../../chunks/21.js","../../../../../chunks/2371.js","../../../../../chunks/2503.js","../../../../../chunks/2566.js","../../../../../chunks/3656.js","../../../../../chunks/375.js","../../../../../chunks/3774.js","../../../../../chunks/450.js","../../../../../chunks/5053.js","../../../../../chunks/514.js","../../../../../chunks/5978.js","../../../../../chunks/64.js","../../../../../chunks/6782.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8035.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js new file mode 100644 index 00000000000..ae8196ce0f9 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/media-providers/web/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/media-providers/web/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9260","static/chunks/app/(dashboard)/dashboard/media-providers/web/page-617c9cc320c9aced.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page.js new file mode 100644 index 00000000000..26b1628a4e8 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=6607,a.ids=[6607],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31217:(a,b,c)=>{Promise.resolve().then(c.bind(c,98831))},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},51921:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["mitm",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,77513)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/mitm/page",pathname:"/dashboard/mitm",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/mitm/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77513:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>f});var d=c(22037),e=c(98831);function f(){return(0,d.jsx)(e.default,{})}},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89437:(a,b,c)=>{"use strict";c.d(b,{default:()=>j});var d=c(26835),e=c(53830),f=c(10228),g=c(65839),h=c(30207),i=c(46323);function j(){let[a,b]=(0,e.useState)([]),[c,j]=(0,e.useState)([]),[k,l]=(0,e.useState)({}),[m,n]=(0,e.useState)(!1),[o,p]=(0,e.useState)(null),[q,r]=(0,e.useState)({running:!1,certExists:!1,dnsStatus:{},hasCachedPassword:!1}),s=()=>a.filter(a=>!1!==a.isActive),t=Object.entries(f.wn);return(0,d.jsxs)("div",{className:"flex w-full flex-col gap-6",children:[(0,d.jsx)(i.tA,{apiKeys:c,cloudEnabled:m,onStatusChange:r}),(0,d.jsx)("div",{className:"grid gap-3 sm:gap-4",children:t.map(([a,b])=>(0,d.jsx)(i.kn,{tool:b,isExpanded:o===a,onToggle:()=>p(o===a?null:a),serverRunning:q.running,dnsActive:q.dnsStatus?.[a]||!1,hasCachedPassword:q.hasCachedPassword||!1,needsSudoPassword:!1!==q.needsSudoPassword,isWin:!0===q.isWin,apiKeys:c,activeProviders:s(),hasActiveProviders:s().some(a=>(0,g.KC)(a.provider).length>0||(0,h.mq)(a.provider)||(0,h.gb)(a.provider)),modelAliases:k,cloudEnabled:m,onDnsChange:a=>r(b=>({...b,dnsStatus:a.dnsStatus??b.dnsStatus}))},a))})]})}},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96369:(a,b,c)=>{Promise.resolve().then(c.bind(c,89437))},98831:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js","default")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,5046,7770,21,8193,2503,514,3774,8035,2049,450,6782,6890],()=>b(b.s=51921));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json new file mode 100644 index 00000000000..3269990f880 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5046.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/6890.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js new file mode 100644 index 00000000000..b6b2f1b2562 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/mitm/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/mitm/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","6607","static/chunks/app/(dashboard)/dashboard/mitm/page-bad9a5af75575018.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/page.js new file mode 100644 index 00000000000..36dfb052de9 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/page.js @@ -0,0 +1,2 @@ +"use strict";(()=>{var a={};a.id=6337,a.ids=[6337],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},17891:a=>{a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},26713:a=>{a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},41025:a=>{a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},42657:(a,b,c)=>{c.r(b),c.d(b,{default:()=>g});var d=c(22037),e=c(75662),f=c(14567);async function g(){let a=await (0,e.D1)();return(0,d.jsx)(f.default,{machineId:a})}},43954:a=>{a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},69923:(a,b,c)=>{c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,42657)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/page",pathname:"/dashboard",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},70722:a=>{a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77068:a=>{a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{a.exports=require("node:crypto")},79551:a=>{a.exports=require("url")},79646:a=>{a.exports=require("child_process")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782,1574],()=>b(b.s=69923));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json new file mode 100644 index 00000000000..cca3d78ae3b --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../package.json","../../../chunks/1249.js","../../../chunks/1574.js","../../../chunks/2049.js","../../../chunks/21.js","../../../chunks/2371.js","../../../chunks/2503.js","../../../chunks/2566.js","../../../chunks/3656.js","../../../chunks/375.js","../../../chunks/3774.js","../../../chunks/450.js","../../../chunks/5053.js","../../../chunks/514.js","../../../chunks/5978.js","../../../chunks/64.js","../../../chunks/6782.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../chunks/8035.js","../../../chunks/8193.js","../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js new file mode 100644 index 00000000000..9dd07621302 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/profile/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/profile/page.js new file mode 100644 index 00000000000..780de00c1fe --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/profile/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=3471,a.ids=[3471],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1944:(a,b,c)=>{Promise.resolve().then(c.bind(c,22649))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},22649:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(26835),e=c(53830),f=c(50450),g=c(42990),h=c(71940),i=c(10074);function j(){let{theme:a,setTheme:b,isDark:c}=(0,g.D)(),[j,k]=(0,e.useState)({fallbackStrategy:"fill-first"}),[l,m]=(0,e.useState)(!0),[n,o]=(0,e.useState)({current:"",new:"",confirm:""}),[p,q]=(0,e.useState)({type:"",message:""}),[r,s]=(0,e.useState)(!1),[t,u]=(0,e.useState)(!1),[v,w]=(0,e.useState)({type:"",message:""}),x=(0,e.useRef)(null),[y,z]=(0,e.useState)({outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:""}),[A,B]=(0,e.useState)({type:"",message:""}),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(!1),G=async a=>{if(a.preventDefault(),!0===j.outboundProxyEnabled){D(!0),B({type:"",message:""});try{let a=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({outboundProxyUrl:y.outboundProxyUrl,outboundNoProxy:y.outboundNoProxy})}),b=await a.json();a.ok?(k(a=>({...a,...b})),B({type:"success",message:"Proxy settings applied"})):B({type:"error",message:b.error||"Failed to update proxy settings"})}catch(a){B({type:"error",message:"An error occurred"})}finally{D(!1)}}},H=async()=>{if(!0!==j.outboundProxyEnabled)return;let a=(y.outboundProxyUrl||"").trim();if(!a)return void B({type:"error",message:"Please enter a Proxy URL to test"});F(!0),B({type:"",message:""});try{let b=await fetch("/api/settings/proxy-test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyUrl:a})}),c=await b.json();b.ok&&c?.ok?B({type:"success",message:`Proxy test OK (${c.status}) in ${c.elapsedMs}ms`}):B({type:"error",message:c?.error||"Proxy test failed"})}catch(a){B({type:"error",message:"An error occurred"})}finally{F(!1)}},I=async a=>{D(!0),B({type:"",message:""});try{let b=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({outboundProxyEnabled:a})}),c=await b.json();b.ok?(k(a=>({...a,...c})),z(a=>({...a,outboundProxyEnabled:c?.outboundProxyEnabled===!0})),B({type:"success",message:a?"Proxy enabled":"Proxy disabled"})):B({type:"error",message:c.error||"Failed to update proxy settings"})}catch(a){B({type:"error",message:"An error occurred"})}finally{D(!1)}},J=async a=>{if(a.preventDefault(),n.new!==n.confirm)return void q({type:"error",message:"Passwords do not match"});s(!0),q({type:"",message:""});try{let a=await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({currentPassword:n.current,newPassword:n.new})}),b=await a.json();a.ok?(q({type:"success",message:"Password updated successfully"}),o({current:"",new:"",confirm:""})):q({type:"error",message:b.error||"Failed to update password"})}catch(a){q({type:"error",message:"An error occurred"})}finally{s(!1)}},K=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({fallbackStrategy:a})})).ok&&k(b=>({...b,fallbackStrategy:a}))}catch(a){console.error("Failed to update settings:",a)}},L=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStrategy:a})})).ok&&k(b=>({...b,comboStrategy:a}))}catch(a){console.error("Failed to update combo strategy:",a)}},M=async a=>{let b=parseInt(a);if(!isNaN(b)&&!(b<1))try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({stickyRoundRobinLimit:b})})).ok&&k(a=>({...a,stickyRoundRobinLimit:b}))}catch(a){console.error("Failed to update sticky limit:",a)}},N=async a=>{let b=parseInt(a);if(!isNaN(b)&&!(b<1))try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({comboStickyRoundRobinLimit:b})})).ok&&k(a=>({...a,comboStickyRoundRobinLimit:b}))}catch(a){console.error("Failed to update combo sticky limit:",a)}},O=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireLogin:a})})).ok&&k(b=>({...b,requireLogin:a}))}catch(a){console.error("Failed to update require login:",a)}},P=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({enableObservability:a})})).ok&&k(b=>({...b,enableObservability:a}))}catch(a){console.error("Failed to update enableObservability:",a)}},Q=async()=>{try{let a=await fetch("/api/settings");if(!a.ok)return;let b=await a.json();k(b)}catch(a){console.error("Failed to reload settings:",a)}},R=async()=>{u(!0),w({type:"",message:""});try{let a=await fetch("/api/settings/database");if(!a.ok){let b=await a.json().catch(()=>({}));throw Error(b.error||"Failed to export database")}let b=await a.json(),c=JSON.stringify(b,null,2),d=new Blob([c],{type:"application/json"}),e=URL.createObjectURL(d),f=document.createElement("a"),g=new Date().toISOString().replace(/[.:]/g,"-");f.href=e,f.download=`9router-backup-${g}.json`,document.body.appendChild(f),f.click(),document.body.removeChild(f),URL.revokeObjectURL(e),w({type:"success",message:"Database backup downloaded"})}catch(a){w({type:"error",message:a.message||"Failed to export database"})}finally{u(!1)}},S=async a=>{let b=a.target.files?.[0];if(b){u(!0),w({type:"",message:""});try{let a=await b.text(),c=JSON.parse(a),d=await fetch("/api/settings/database",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(c)}),e=await d.json().catch(()=>({}));if(!d.ok)throw Error(e.error||"Failed to import database");await Q(),w({type:"success",message:"Database imported successfully"})}catch(a){w({type:"error",message:a.message||"Invalid backup file"})}finally{x.current&&(x.current.value=""),u(!1)}}},T=!0===j.enableObservability;return(0,d.jsx)("div",{className:"max-w-2xl mx-auto px-4 sm:px-0",children:(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between gap-4 mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 sm:gap-4",children:[(0,d.jsx)("div",{className:"size-10 sm:size-12 rounded-lg bg-green-500/10 text-green-500 flex items-center justify-center shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-xl sm:text-2xl",children:"computer"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold",children:"Local Mode"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Running on your machine"})]})]}),(0,d.jsx)("div",{className:"inline-flex p-1 rounded-lg bg-black/5 dark:bg-white/5 w-full sm:w-auto",children:["light","dark","system"].map(c=>(0,d.jsxs)("button",{type:"button",onClick:()=>b(c),className:(0,h.cn)("flex items-center justify-center gap-1 sm:gap-1.5 px-2 sm:px-3 py-1.5 rounded-md font-medium transition-all flex-1 sm:flex-initial",a===c?"bg-white dark:bg-white/10 text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"light"===c?"light_mode":"dark"===c?"dark_mode":"contrast"}),(0,d.jsx)("span",{className:"capitalize text-xs sm:text-sm",children:c})]},c))})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 pt-4 border-t border-border",children:[(0,d.jsx)("div",{className:"flex flex-col sm:flex-row sm:items-center sm:justify-between p-3 rounded-lg bg-bg border border-border gap-2",children:(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Database Location"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted font-mono break-all",children:"~/.9router/db.json"})]})}),(0,d.jsxs)("div",{className:"flex flex-col sm:flex-row gap-2",children:[(0,d.jsx)(f.$n,{variant:"secondary",icon:"download",onClick:R,loading:t,className:"w-full sm:w-auto",children:"Download Backup"}),(0,d.jsx)(f.$n,{variant:"outline",icon:"upload",onClick:()=>x.current?.click(),disabled:t,className:"w-full sm:w-auto",children:"Import Backup"}),(0,d.jsx)("input",{ref:x,type:"file",accept:"application/json,.json",className:"hidden",onChange:S})]}),v.message&&(0,d.jsx)("p",{className:`text-sm ${"error"===v.type?"text-red-500":"text-green-600 dark:text-green-400"}`,children:v.message})]})]}),(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-primary/10 text-primary shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"shield"})}),(0,d.jsx)("h3",{className:"text-base sm:text-lg font-semibold",children:"Security"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-start sm:items-center justify-between gap-4",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Require login"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"When ON, dashboard requires password. When OFF, access without login."})]}),(0,d.jsx)(f.lM,{checked:!0===j.requireLogin,onChange:()=>O(!j.requireLogin),disabled:l})]}),!0===j.requireLogin&&(0,d.jsxs)("form",{onSubmit:J,className:"flex flex-col gap-4 pt-4 border-t border-border/50",children:[j.hasPassword&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"text-xs sm:text-sm font-medium",children:"Current Password"}),(0,d.jsx)(f.pd,{type:"password",placeholder:"Enter current password",value:n.current,onChange:a=>o({...n,current:a.target.value}),required:!0})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"text-xs sm:text-sm font-medium",children:"New Password"}),(0,d.jsx)(f.pd,{type:"password",placeholder:"Enter new password",value:n.new,onChange:a=>o({...n,new:a.target.value}),required:!0})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"text-xs sm:text-sm font-medium",children:"Confirm New Password"}),(0,d.jsx)(f.pd,{type:"password",placeholder:"Confirm new password",value:n.confirm,onChange:a=>o({...n,confirm:a.target.value}),required:!0})]})]}),p.message&&(0,d.jsx)("p",{className:`text-xs sm:text-sm ${"error"===p.type?"text-red-500":"text-green-500"}`,children:p.message}),(0,d.jsx)("div",{className:"pt-2",children:(0,d.jsx)(f.$n,{type:"submit",variant:"primary",loading:r,className:"w-full sm:w-auto",children:j.hasPassword?"Update Password":"Set Password"})})]})]})]}),(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-blue-500/10 text-blue-500 shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"route"})}),(0,d.jsx)("h3",{className:"text-base sm:text-lg font-semibold",children:"Routing Strategy"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-start sm:items-center justify-between gap-4",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Round Robin"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Cycle through accounts to distribute load"})]}),(0,d.jsx)(f.lM,{checked:"round-robin"===j.fallbackStrategy,onChange:()=>K("round-robin"===j.fallbackStrategy?"fill-first":"round-robin"),disabled:l})]}),"round-robin"===j.fallbackStrategy&&(0,d.jsxs)("div",{className:"flex items-start sm:items-center justify-between gap-4 pt-2 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Sticky Limit"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Calls per account before switching"})]}),(0,d.jsx)(f.pd,{type:"number",min:"1",max:"10",value:j.stickyRoundRobinLimit||3,onChange:a=>M(a.target.value),disabled:l,className:"w-16 sm:w-20 text-center shrink-0"})]}),(0,d.jsxs)("div",{className:"flex items-start sm:items-center justify-between gap-4 pt-4 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Combo Round Robin"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Cycle through providers in combos instead of always starting with first"})]}),(0,d.jsx)(f.lM,{checked:"round-robin"===j.comboStrategy,onChange:()=>L("round-robin"===j.comboStrategy?"fallback":"round-robin"),disabled:l})]}),"round-robin"===j.comboStrategy&&(0,d.jsxs)("div",{className:"flex items-center justify-between pt-2 border-t border-border/50",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Combo Sticky Limit"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Calls per combo model before switching"})]}),(0,d.jsx)(f.pd,{type:"number",min:"1",max:"100",value:j.comboStickyRoundRobinLimit||1,onChange:a=>N(a.target.value),disabled:l,className:"w-20 text-center"})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted italic pt-2 border-t border-border/50",children:["round-robin"===j.fallbackStrategy?`Currently distributing requests across all available accounts with ${j.stickyRoundRobinLimit||3} calls per account.`:"Currently using accounts in priority order (Fill First).","round-robin"===j.comboStrategy?` Combos rotate after ${j.comboStickyRoundRobinLimit||1} call${1===(j.comboStickyRoundRobinLimit||1)?"":"s"} per model.`:" Combos always start with their first model."]})]})]}),(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-purple-500/10 text-purple-500 shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"wifi"})}),(0,d.jsx)("h3",{className:"text-base sm:text-lg font-semibold",children:"Network"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex items-start sm:items-center justify-between gap-4",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Outbound Proxy"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Enable proxy for OAuth + provider outbound requests."})]}),(0,d.jsx)(f.lM,{checked:!0===j.outboundProxyEnabled,onChange:()=>I(!0!==j.outboundProxyEnabled),disabled:l||C})]}),!0===j.outboundProxyEnabled&&(0,d.jsxs)("form",{onSubmit:G,className:"flex flex-col gap-4 pt-2 border-t border-border/50",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"font-medium text-sm sm:text-base",children:"Proxy URL"}),(0,d.jsx)(f.pd,{placeholder:"http://127.0.0.1:7897",value:y.outboundProxyUrl,onChange:a=>z(b=>({...b,outboundProxyUrl:a.target.value})),disabled:l||C}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Leave empty to inherit existing env proxy (if any)."})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 pt-2 border-t border-border/50",children:[(0,d.jsx)("label",{className:"font-medium text-sm sm:text-base",children:"No Proxy"}),(0,d.jsx)(f.pd,{placeholder:"localhost,127.0.0.1",value:y.outboundNoProxy,onChange:a=>z(b=>({...b,outboundNoProxy:a.target.value})),disabled:l||C}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Comma-separated hostnames/domains to bypass the proxy."})]}),(0,d.jsxs)("div",{className:"pt-2 border-t border-border/50 flex flex-col sm:flex-row items-stretch sm:items-center gap-2",children:[(0,d.jsx)(f.$n,{type:"button",variant:"secondary",loading:E,disabled:l||C,onClick:H,className:"w-full sm:w-auto",children:"Test proxy URL"}),(0,d.jsx)(f.$n,{type:"submit",variant:"primary",loading:C,className:"w-full sm:w-auto",children:"Apply"})]})]}),A.message&&(0,d.jsx)("p",{className:`text-xs sm:text-sm ${"error"===A.type?"text-red-500":"text-green-500"} pt-2 border-t border-border/50`,children:A.message})]})]}),(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,d.jsx)("div",{className:"p-2 rounded-lg bg-orange-500/10 text-orange-500 shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"monitoring"})}),(0,d.jsx)("h3",{className:"text-base sm:text-lg font-semibold",children:"Observability"})]}),(0,d.jsxs)("div",{className:"flex items-start sm:items-center justify-between gap-4",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"font-medium text-sm sm:text-base",children:"Enable Observability"}),(0,d.jsx)("p",{className:"text-xs sm:text-sm text-text-muted",children:"Record request details for inspection in the logs view"})]}),(0,d.jsx)(f.lM,{checked:T,onChange:P,disabled:l})]})]}),(0,d.jsxs)("div",{className:"text-center text-xs sm:text-sm text-text-muted py-4",children:[(0,d.jsxs)("p",{children:[i.vQ.name," v",i.vQ.version]}),(0,d.jsx)("p",{className:"mt-1",children:"Local Mode - All data stored on your machine"})]})]})})}},23023:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["profile",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,50747)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/profile/page",pathname:"/dashboard/profile",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/profile/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},50747:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js","default")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},92216:(a,b,c)=>{Promise.resolve().then(c.bind(c,50747))},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=23023));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/profile/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js new file mode 100644 index 00000000000..939e700d521 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/profile/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/profile/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3471","static/chunks/app/(dashboard)/dashboard/profile/page-1c3e2ce342940999.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js new file mode 100644 index 00000000000..3328996c356 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=2134,a.ids=[2134],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27848:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>x});var d=c(26835),e=c(53830),f=c(28217),g=c(30978),h=c.n(g),i=c(65046),j=c(50450),k=c(30207),l=c(65839),m=c(93617),n=c(41183),o=c.n(n);function p({model:a,fullModel:b,alias:c,copied:e,onCopy:f,testStatus:g,isCustom:h,isFree:i,onDeleteAlias:j,onTest:k,isTesting:l,onDisable:m}){let n="ok"===g?"#22c55e":"error"===g?"#ef4444":void 0;return(0,d.jsx)("div",{className:`group min-w-0 max-w-full rounded-lg border px-3 py-2 ${"ok"===g?"border-green-500/40":"error"===g?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-start gap-2 sm:items-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 text-base",style:n?{color:n}:void 0,children:"ok"===g?"check_circle":"error"===g?"cancel":"smart_toy"}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col gap-1",children:[(0,d.jsx)("code",{className:"max-w-[72vw] truncate rounded bg-sidebar px-1.5 py-0.5 font-mono text-xs text-text-muted sm:max-w-[360px]",children:b}),a.name&&(0,d.jsx)("span",{className:"truncate pl-1 text-[9px] italic text-text-muted/70",children:a.name})]}),k&&(0,d.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,d.jsx)("button",{onClick:k,disabled:l,className:`rounded p-0.5 text-text-muted transition-opacity hover:bg-sidebar hover:text-primary ${l?"opacity-100":"opacity-100 sm:opacity-0 sm:group-hover:opacity-100"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",style:l?{animation:"spin 1s linear infinite"}:void 0,children:l?"progress_activity":"science"})}),(0,d.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:l?"Testing...":"Test"})]}),(0,d.jsxs)("div",{className:"relative shrink-0 group/btn",children:[(0,d.jsx)("button",{onClick:()=>f(b,`model-${a.id}`),className:"rounded p-0.5 text-text-muted hover:bg-sidebar hover:text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:e===`model-${a.id}`?"check":"content_copy"})}),(0,d.jsx)("span",{className:"pointer-events-none absolute mt-1 top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:e===`model-${a.id}`?"Copied!":"Copy"})]}),h?(0,d.jsx)("button",{onClick:j,className:"ml-auto rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",title:"Remove custom model",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})}):m?(0,d.jsx)("button",{onClick:m,className:"ml-auto rounded p-0.5 text-text-muted opacity-100 transition-opacity hover:bg-red-500/10 hover:text-red-500 sm:opacity-0 sm:group-hover:opacity-100",title:"Disable this model",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"close"})}):null]})})}function q({modelId:a,fullModel:b,copied:c,onCopy:e,onDeleteAlias:f,onTest:g,testStatus:h,isTesting:i}){let j="ok"===h?"#22c55e":"error"===h?"#ef4444":void 0;return(0,d.jsxs)("div",{className:`flex items-center gap-3 p-3 rounded-lg border ${"ok"===h?"border-green-500/40":"error"===h?"border-red-500/40":"border-border"} hover:bg-sidebar/50`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base text-text-muted",style:j?{color:j}:void 0,children:"ok"===h?"check_circle":"error"===h?"cancel":"smart_toy"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"text-sm font-medium truncate",children:a}),(0,d.jsxs)("div",{className:"flex items-center gap-1 mt-1",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono bg-sidebar px-1.5 py-0.5 rounded",children:b}),(0,d.jsxs)("div",{className:"relative group/btn",children:[(0,d.jsx)("button",{onClick:()=>e(b,`model-${a}`),className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:c===`model-${a}`?"check":"content_copy"})}),(0,d.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:c===`model-${a}`?"Copied!":"Copy"})]}),g&&(0,d.jsxs)("div",{className:"relative group/btn",children:[(0,d.jsx)("button",{onClick:g,disabled:i,className:"p-0.5 hover:bg-sidebar rounded text-text-muted hover:text-primary transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",style:i?{animation:"spin 1s linear infinite"}:void 0,children:i?"progress_activity":"science"})}),(0,d.jsx)("span",{className:"pointer-events-none absolute top-5 left-1/2 -translate-x-1/2 text-[10px] text-text-muted whitespace-nowrap opacity-0 group-hover/btn:opacity-100 transition-opacity",children:i?"Testing...":"Test"})]})]})]}),(0,d.jsx)("button",{onClick:f,className:"p-1 hover:bg-red-50 rounded text-red-500",title:"Remove model",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"delete"})})]})}function r({providerStorageAlias:a,providerDisplayAlias:b,modelAliases:c,copied:f,onCopy:g,onSetAlias:h,onDeleteAlias:i,connections:k,isAnthropic:l}){let[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[s,t]=(0,e.useState)(!1),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)({}),y=async b=>{if(!u){v(b);try{let c=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${a}/${b}`})}),d=await c.json();x(a=>({...a,[b]:d.ok?"ok":"error"}))}catch{x(a=>({...a,[b]:"error"}))}finally{v(null)}}},z=Object.entries(c).filter(([,b])=>b.startsWith(`${a}/`)).map(([b,c])=>({modelId:c.replace(`${a}/`,""),fullModel:c,alias:b})),A=d=>{let e,f=`${a}/${d}`;if(Object.values(c).includes(f))return null;let g=(e=d.split("/"))[e.length-1];if(!c[g])return g;let h=`${b}-${g}`;return c[h]?null:h},B=async()=>{if(!m.trim()||o)return;let b=m.trim(),c=A(b);if(!c)return void alert("All suggested aliases already exist. Please choose a different model or remove conflicting aliases.");p(!0);try{await h(b,c,a),n("")}catch(a){console.log("Error adding model:",a)}finally{p(!1)}},C=async()=>{if(s)return;let b=k.find(a=>!1!==a.isActive);if(b){t(!0);try{let c=await fetch(`/api/providers/${b.id}/models`),d=await c.json();if(!c.ok)return void alert(d.error||"Failed to import models");let e=d.models||[];if(0===e.length)return void alert("No models returned from /models.");let f=0;for(let b of e){let c=b.id||b.name||b.model;if(!c)continue;let d=A(c);d&&(await h(c,d,a),f+=1)}0===f&&alert("No new models were added.")}catch(a){console.log("Error importing models:",a)}finally{t(!1)}}},D=k.some(a=>!1!==a.isActive);return(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("p",{className:"text-sm text-text-muted",children:["Add ",l?"Anthropic":"OpenAI","-compatible models manually or import them from the /models endpoint."]}),(0,d.jsxs)("div",{className:"flex items-end gap-2 flex-wrap",children:[(0,d.jsxs)("div",{className:"flex-1 min-w-[240px]",children:[(0,d.jsx)("label",{htmlFor:"new-compatible-model-input",className:"text-xs text-text-muted mb-1 block",children:"Model ID"}),(0,d.jsx)("input",{id:"new-compatible-model-input",type:"text",value:m,onChange:a=>n(a.target.value),onKeyDown:a=>"Enter"===a.key&&B(),placeholder:l?"claude-3-opus-20240229":"gpt-4o",className:"w-full px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary"})]}),(0,d.jsx)(j.$n,{size:"sm",icon:"add",onClick:B,disabled:!m.trim()||o,children:o?"Adding...":"Add"}),(0,d.jsx)(j.$n,{size:"sm",variant:"secondary",icon:"download",onClick:C,disabled:!D||s,children:s?"Importing...":"Import from /models"})]}),!D&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Add a connection to enable importing models."}),z.length>0&&(0,d.jsx)("div",{className:"flex flex-col gap-3",children:z.map(({modelId:a,fullModel:c,alias:e})=>(0,d.jsx)(q,{modelId:a,fullModel:`${b}/${a}`,copied:f,onCopy:g,onDeleteAlias:()=>i(e),onTest:k.length>0?()=>y(a):void 0,testStatus:w[a],isTesting:u===a},c))})]})}function s({until:a}){let[b,c]=(0,e.useState)("");return b?(0,d.jsxs)("span",{className:"text-xs text-orange-500 font-mono",children:["⏱ ",b]}):null}function t({connection:a,proxyPools:b,isOAuth:c,isFirst:f,isLast:g,onMoveUp:h,onMoveDown:i,onToggleActive:k,onUpdateProxy:l,onEdit:m,onDelete:n}){let[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(!1),u=(0,e.useRef)(null),v=new Map((b||[]).map(a=>[a.id,a])),w=a.providerSpecificData?.proxyPoolId||null,x=w?v.get(w):null,y=a.providerSpecificData?.connectionProxyEnabled===!0&&!!a.providerSpecificData?.connectionProxyUrl,z=!!w||y,A=x?`Pool: ${x.name}`:w?`Pool: ${w} (inactive/missing)`:y?`Legacy: ${a.providerSpecificData?.connectionProxyUrl}`:"",B="";if(x?.proxyUrl||a.providerSpecificData?.connectionProxyUrl){let b=x?.proxyUrl||a.providerSpecificData?.connectionProxyUrl;try{let a=new URL(b);B=`${a.protocol}//${a.hostname}${a.port?`:${a.port}`:""}`}catch{B=b}}let C=x?.noProxy||a.providerSpecificData?.connectionNoProxy||"",D="default";x?.isActive===!0?D="success":(w||y)&&(D="error");let E=async a=>{r(!0);try{await l("__none__"===a?null:a)}finally{r(!1),p(!1)}},F=a=>"string"==typeof a&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a),G=c?F(a.email)?a.email:F(a.name)?a.name:a.name||a.email||a.displayName||"OAuth Account":a.name,[H,I]=(0,e.useState)(!1),J=Object.entries(a).filter(([a])=>a.startsWith("modelLock_")).map(([,a])=>a).filter(a=>!!a).sort()[0]||null,K="unavailable"!==a.testStatus||H?a.testStatus:"active";return(0,d.jsxs)("div",{className:`group flex min-w-0 flex-col gap-3 rounded-lg p-2 transition-colors hover:bg-black/[0.02] dark:hover:bg-white/[0.02] sm:flex-row sm:items-center sm:justify-between ${!1===a.isActive?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-1 items-start gap-2 sm:items-center sm:gap-3",children:[(0,d.jsxs)("div",{className:"flex shrink-0 flex-col",children:[(0,d.jsx)("button",{onClick:h,disabled:f,className:`p-0.5 rounded ${f?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_up"})}),(0,d.jsx)("button",{onClick:i,disabled:g,className:`p-0.5 rounded ${g?"text-text-muted/30 cursor-not-allowed":"hover:bg-sidebar text-text-muted hover:text-primary"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"keyboard_arrow_down"})})]}),(0,d.jsx)("span",{className:"material-symbols-outlined shrink-0 text-base text-text-muted",children:c?"lock":"key"}),(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"text-sm font-medium truncate",children:G}),(0,d.jsxs)("div",{className:"mt-1 flex min-w-0 flex-wrap items-center gap-1.5 sm:gap-2",children:[(0,d.jsx)(j.Ex,{variant:!1===a.isActive?"default":"active"===K||"success"===K?"success":"error"===K||"expired"===K||"unavailable"===K?"error":"default",size:"sm",dot:!0,children:!1===a.isActive?"disabled":K||"Unknown"}),z&&(0,d.jsx)(j.Ex,{variant:D,size:"sm",children:"Proxy"}),H&&!1!==a.isActive&&(0,d.jsx)(s,{until:J}),a.lastError&&!1!==a.isActive&&(0,d.jsx)("span",{className:"max-w-full truncate text-xs text-red-500 sm:max-w-[300px]",title:a.lastError,children:a.lastError}),(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["#",a.priority]}),a.globalPriority&&(0,d.jsxs)("span",{className:"text-xs text-text-muted",children:["Auto: ",a.globalPriority]})]}),z&&(0,d.jsxs)("div",{className:"mt-1 flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("span",{className:"max-w-full truncate text-[11px] text-text-muted sm:max-w-[420px]",title:A,children:A}),B&&(0,d.jsx)("code",{className:"max-w-full truncate rounded bg-black/5 px-1 py-0.5 font-mono text-[10px] text-text-muted dark:bg-white/5 sm:max-w-[260px]",children:B}),C&&(0,d.jsxs)("span",{className:"max-w-full truncate text-[11px] text-text-muted sm:max-w-[320px]",title:C,children:["no_proxy: ",C]})]})]})]}),(0,d.jsxs)("div",{className:"flex w-full items-center justify-between gap-2 sm:w-auto sm:justify-end",children:[(0,d.jsxs)("div",{className:"grid flex-1 grid-cols-3 gap-1 sm:flex sm:flex-none",children:[(b||[]).length>0&&(0,d.jsxs)("div",{className:"relative",ref:u,children:[(0,d.jsxs)("button",{onClick:()=>p(a=>!a),className:`flex w-full flex-col items-center rounded px-2 py-1 transition-colors hover:bg-black/5 dark:hover:bg-white/5 ${z?"text-primary":"text-text-muted hover:text-primary"}`,disabled:q,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:q?"progress_activity":"lan"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Proxy"})]}),o&&(0,d.jsxs)("div",{className:"absolute right-0 top-full z-50 mt-1 max-w-[78vw] min-w-[160px] rounded-lg border border-border bg-bg py-1 shadow-lg",children:[(0,d.jsx)("button",{onClick:()=>E("__none__"),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${!w?"text-primary font-medium":"text-text-main"}`,children:"None"}),(b||[]).map(a=>(0,d.jsx)("button",{onClick:()=>E(a.id),className:`w-full text-left px-3 py-1.5 text-sm hover:bg-black/5 dark:hover:bg-white/5 ${w===a.id?"text-primary font-medium":"text-text-main"}`,children:a.name},a.id))]})]}),(0,d.jsxs)("button",{onClick:m,className:"flex flex-col items-center rounded px-2 py-1 text-text-muted hover:bg-black/5 hover:text-primary dark:hover:bg-white/5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Edit"})]}),(0,d.jsxs)("button",{onClick:n,className:"flex flex-col items-center rounded px-2 py-1 text-red-500 hover:bg-red-500/10",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"}),(0,d.jsx)("span",{className:"text-[10px] leading-tight",children:"Delete"})]})]}),(0,d.jsx)(j.lM,{size:"sm",checked:a.isActive??!0,onChange:k,title:a.isActive??!0?"Disable connection":"Enable connection"})]})]})}function u({isOpen:a,provider:b,providerName:c,isCompatible:f,isAnthropic:g,authType:h,authHint:i,website:k,proxyPools:l,error:m,onSave:n,onClose:o}){let p="__none__",q="ollama-local"===b,r="cookie"===h,s=r?"Cookie Value":"API Key",t="azure"===b,v="cloudflare-ai"===b,[w,x]=(0,e.useState)({name:"",apiKey:"",defaultModel:"",priority:1,proxyPoolId:p,ollamaHostUrl:""}),[y,z]=(0,e.useState)({azureEndpoint:"",apiVersion:"2024-10-01-preview",deployment:"",organization:""}),[A,B]=(0,e.useState)({accountId:""}),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(null),[G,H]=(0,e.useState)(!1),I=()=>q&&w.ollamaHostUrl.trim()?{baseUrl:w.ollamaHostUrl.trim()}:t?{azureEndpoint:y.azureEndpoint,apiVersion:y.apiVersion,deployment:y.deployment,organization:y.organization}:v?{accountId:A.accountId}:void 0,J=async()=>{D(!0);try{let a=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b,apiKey:w.apiKey,providerSpecificData:I()})}),c=await a.json();F(c.valid?"success":"failed")}catch{F("failed")}finally{D(!1)}},K=async()=>{if(b&&(q||w.apiKey)&&(q||w.name)&&(!f||w.defaultModel.trim())){H(!0);try{let a=!1;try{D(!0),F(null);let c=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:b,apiKey:w.apiKey,providerSpecificData:I()})});a=!!(await c.json()).valid,F(a?"success":"failed")}catch{F("failed")}finally{D(!1)}await n({name:w.name||(q?"Ollama Local":""),apiKey:w.apiKey,defaultModel:f?w.defaultModel.trim():void 0,priority:w.priority,proxyPoolId:w.proxyPoolId===p?null:w.proxyPoolId,testStatus:a?"active":"unknown",providerSpecificData:I()})}finally{H(!1)}}};return b?(0,d.jsx)(j.aF,{isOpen:a,title:`Add ${c||b} ${s}`,onClose:o,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(j.pd,{label:"Name",value:w.name,onChange:a=>x({...w,name:a.target.value}),placeholder:q?"Ollama Local":"Production Key"}),q&&(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.pd,{label:"Ollama Host URL",value:w.ollamaHostUrl,onChange:a=>x({...w,ollamaHostUrl:a.target.value}),placeholder:"http://localhost:11434",className:"flex-1"}),(0,d.jsx)("div",{className:"pt-6",children:(0,d.jsx)(j.$n,{onClick:J,disabled:C||G,variant:"secondary",children:C?"Checking...":"Check"})})]}),!q&&(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.pd,{label:s,type:r?"text":"password",value:w.apiKey,onChange:a=>x({...w,apiKey:a.target.value}),placeholder:r?"grok-web"===b?"sso=xxxxx... or just the raw value":"eyJhbGciOi...":"",className:"flex-1"}),(0,d.jsx)("div",{className:"pt-6",children:(0,d.jsx)(j.$n,{onClick:J,disabled:!w.apiKey||C||G,variant:"secondary",children:C?"Checking...":"Check"})})]}),r&&i&&(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:[i,k&&(0,d.jsxs)(d.Fragment,{children:[" ",(0,d.jsxs)("a",{href:k,target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:["Open ",k.replace(/^https?:\/\//,"")]})]})]}),f&&(0,d.jsx)(j.pd,{label:"Default Model",value:w.defaultModel,onChange:a=>x({...w,defaultModel:a.target.value}),placeholder:g?"claude-3-5-sonnet-latest":"gpt-4o-mini"}),q&&(0,d.jsxs)("p",{className:"text-xs text-text-muted",children:["Leave blank to use ",(0,d.jsx)("code",{children:"http://localhost:11434"}),". For remote Ollama, enter the full host URL (e.g. ",(0,d.jsx)("code",{children:"http://192.168.1.10:11434"}),")."]}),E&&(0,d.jsx)(j.Ex,{variant:"success"===E?"success":"error",children:"success"===E?"Valid":"Invalid"}),m&&(0,d.jsx)("p",{className:"text-xs text-red-500 break-words",children:m}),f&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Enter the model ID exactly as your compatible endpoint expects it. This model will be saved as the connection default."}),v&&(0,d.jsxs)("div",{className:"bg-sidebar/50 p-4 rounded-lg border border-accent/20",children:[(0,d.jsx)("h3",{className:"font-semibold mb-3 text-sm",children:"Cloudflare Workers AI"}),(0,d.jsx)(j.pd,{label:"Account ID",value:A.accountId,onChange:a=>B({...A,accountId:a.target.value}),placeholder:"abc123def456..."}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-2",children:["Find your Account ID in the right sidebar of ",(0,d.jsx)("a",{href:"https://dash.cloudflare.com",target:"_blank",rel:"noopener noreferrer",className:"text-primary underline",children:"dash.cloudflare.com"})]})]}),t&&(0,d.jsxs)("div",{className:"bg-sidebar/50 p-4 rounded-lg border border-accent/20",children:[(0,d.jsx)("h3",{className:"font-semibold mb-3 text-sm",children:"Azure OpenAI Configuration"}),(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)(j.pd,{label:"Azure Endpoint",value:y.azureEndpoint,onChange:a=>z({...y,azureEndpoint:a.target.value}),placeholder:"https://your-resource.openai.azure.com"}),(0,d.jsx)(j.pd,{label:"Deployment Name",value:y.deployment,onChange:a=>z({...y,deployment:a.target.value}),placeholder:"gpt-4"}),(0,d.jsx)(j.pd,{label:"API Version",value:y.apiVersion,onChange:a=>z({...y,apiVersion:a.target.value}),placeholder:"2024-10-01-preview"}),(0,d.jsx)(j.pd,{label:"Organization",value:y.organization,onChange:a=>z({...y,organization:a.target.value}),placeholder:"Organization ID"})]})]}),(0,d.jsx)(j.pd,{label:"Priority",type:"number",value:w.priority,onChange:a=>x({...w,priority:Number.parseInt(a.target.value)||1})}),(0,d.jsx)(j.l6,{label:"Proxy Pool",value:w.proxyPoolId,onChange:a=>x({...w,proxyPoolId:a.target.value}),options:[{value:p,label:"None"},...(l||[]).map(a=>({value:a.id,label:a.name}))],placeholder:"None"}),0===(l||[]).length&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"No active proxy pools available. Create one in Proxy Pools page first."}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Legacy manual proxy fields are still accepted by API for backward compatibility."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.$n,{onClick:K,fullWidth:!0,disabled:G||!q&&(!w.name||!w.apiKey)||f&&!w.defaultModel.trim()||t&&(!y.azureEndpoint||!y.deployment||!y.organization)||v&&!A.accountId,children:G?"Saving...":"Save"}),(0,d.jsx)(j.$n,{onClick:o,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function v({isOpen:a,node:b,onSave:c,onClose:f,isAnthropic:g}){let[h,i]=(0,e.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[k,l]=(0,e.useState)(!1),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(""),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(null),u=async()=>{if(h.name.trim()&&h.prefix.trim()&&h.baseUrl.trim()){l(!0);try{let a={name:h.name,prefix:h.prefix,baseUrl:h.baseUrl};g||(a.apiType=h.apiType),await c(a)}finally{l(!1)}}},w=async()=>{r(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:h.baseUrl,apiKey:m,type:g?"anthropic-compatible":"openai-compatible",modelId:o.trim()||void 0})}),b=await a.json();t(b.valid?"success":"failed")}catch{t("failed")}finally{r(!1)}};return b?(0,d.jsx)(j.aF,{isOpen:a,title:`Edit ${g?"Anthropic":"OpenAI"} Compatible`,onClose:f,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(j.pd,{label:"Name",value:h.name,onChange:a=>i({...h,name:a.target.value}),placeholder:`${g?"Anthropic":"OpenAI"} Compatible (Prod)`,hint:"Required. A friendly label for this node."}),(0,d.jsx)(j.pd,{label:"Prefix",value:h.prefix,onChange:a=>i({...h,prefix:a.target.value}),placeholder:g?"ac-prod":"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),!g&&(0,d.jsx)(j.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:h.apiType,onChange:a=>i({...h,apiType:a.target.value})}),(0,d.jsx)(j.pd,{label:"Base URL",value:h.baseUrl,onChange:a=>i({...h,baseUrl:a.target.value}),placeholder:g?"https://api.anthropic.com/v1":"https://api.openai.com/v1",hint:`Use the base URL (ending in /v1) for your ${g?"Anthropic":"OpenAI"}-compatible API.`}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.pd,{label:"API Key (for Check)",type:"password",value:m,onChange:a=>n(a.target.value),className:"flex-1"}),(0,d.jsx)("div",{className:"pt-6",children:(0,d.jsx)(j.$n,{onClick:w,disabled:!m||q||!h.baseUrl.trim(),variant:"secondary",children:q?"Checking...":"Check"})})]}),(0,d.jsx)(j.pd,{label:"Model ID (optional)",value:o,onChange:a=>p(a.target.value),placeholder:"e.g. my-model-id",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),s&&(0,d.jsx)(j.Ex,{variant:"success"===s?"success":"error",children:"success"===s?"Valid":"Invalid"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(j.$n,{onClick:u,fullWidth:!0,disabled:!h.name.trim()||!h.prefix.trim()||!h.baseUrl.trim()||k,children:k?"Saving...":"Save"}),(0,d.jsx)(j.$n,{onClick:f,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}function w({isOpen:a,providerAlias:b,providerDisplayAlias:c,onSave:f,onClose:g}){let[h,i]=(0,e.useState)(""),[k,l]=(0,e.useState)(null),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),q=a=>{let c=`${b}/`;return a.startsWith(c)?a.slice(c.length):a},r=async()=>{let a=q(h.trim());if(a){l("testing"),n("");try{let c=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${b}/${a}`})}),d=await c.json();l(d.ok?"ok":"error"),n(d.error||"")}catch(a){l("error"),n(a.message)}}},s=async()=>{let a=q(h.trim());if(a&&!o){p(!0);try{await f(a)}finally{p(!1)}}};return(0,d.jsx)(j.aF,{isOpen:a,onClose:g,title:"Add Custom Model",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Model ID"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("input",{type:"text",value:h,onChange:a=>{i(a.target.value),l(null),n("")},onKeyDown:a=>{"Enter"===a.key&&r()},placeholder:"e.g. claude-opus-4-5",className:"flex-1 px-3 py-2 text-sm border border-border rounded-lg bg-background focus:outline-none focus:border-primary",autoFocus:!0}),(0,d.jsx)(j.$n,{variant:"secondary",icon:"science",loading:"testing"===k,onClick:r,disabled:!h.trim()||"testing"===k,children:"testing"===k?"Testing...":"Test"})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Sent to provider as: ",(0,d.jsx)("code",{className:"font-mono bg-sidebar px-1 rounded",children:q(h.trim())||"model-id"})]})]}),"ok"===k&&(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base",children:"check_circle"}),"Model is reachable"]}),"error"===k&&(0,d.jsxs)("div",{className:"flex items-start gap-2 text-sm text-red-500",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-base shrink-0",children:"cancel"}),(0,d.jsx)("span",{children:m||"Model not reachable"})]}),(0,d.jsxs)("div",{className:"flex gap-2 pt-1",children:[(0,d.jsx)(j.$n,{onClick:g,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,d.jsx)(j.$n,{onClick:s,fullWidth:!0,size:"sm",disabled:!h.trim()||o,children:o?"Adding...":"Add Model"})]})]})})}function x(){let a,b=(0,f.useParams)(),c=(0,f.useRouter)(),g=b.id,[n,o]=(0,e.useState)([]),[q,s]=(0,e.useState)(!0),[x,y]=(0,e.useState)(null),[z,A]=(0,e.useState)([]),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)(!1),[F,G]=(0,e.useState)(!1),[H,I]=(0,e.useState)(""),[J,K]=(0,e.useState)(!1),[L,M]=(0,e.useState)(!1),[N,O]=(0,e.useState)(!1),[P,Q]=(0,e.useState)(null),[R,S]=(0,e.useState)({}),[T,U]=(0,e.useState)(!1),[V,W]=(0,e.useState)({}),[X,Y]=(0,e.useState)(""),[Z,$]=(0,e.useState)(null),[_,aa]=(0,e.useState)(!1),[ab,ac]=(0,e.useState)([]),[ad,ae]=(0,e.useState)("__none__"),[af,ag]=(0,e.useState)(!1),[ah,ai]=(0,e.useState)(null),[aj,ak]=(0,e.useState)(""),[al,am]=(0,e.useState)("auto"),[an,ao]=(0,e.useState)([]),[ap,aq]=(0,e.useState)([]),[ar,as]=(0,e.useState)([]),{copied:at,copy:au}=(0,m.C)(),av=x?{id:x.id,name:x.name||("anthropic-compatible"===x.type?"Anthropic Compatible":"OpenAI Compatible"),color:"anthropic-compatible"===x.type?"#D97757":"#10A37F",textIcon:"anthropic-compatible"===x.type?"AC":"OC",apiType:x.apiType,baseUrl:x.baseUrl,type:x.type}:k.zN[g]||k.fg[g]||k.IS[g]||k.nJ[g]||k.br[g],aw=!!k.zN[g]||!!k.IS[g],ax=!!k.IS[g]?.noAuth,ay=(0,l.KC)(g),az=(0,k.wG)(g),aA=(0,k.mq)(g),aB=(0,k.gb)(g),aC=aA||aB;k.Q2[g]?.thinkingConfig||k.s9.extended;let aD=aC?g:az,aE=aC?x?.prefix||g:az,aF=(0,e.useCallback)(async()=>{try{let a=await fetch(`/api/models/disabled?providerAlias=${encodeURIComponent(aD)}`,{cache:"no-store"}),b=await a.json();a.ok&&as(b.ids||[])}catch(a){console.log("Error fetching disabled models:",a)}},[aD]),aG=async a=>{try{(await fetch("/api/models/disabled",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerAlias:aD,ids:[a]})})).ok&&await aF()}catch(a){console.log("Error disabling model:",a)}},aH=async a=>{try{(await fetch(`/api/models/disabled?providerAlias=${encodeURIComponent(aD)}&id=${encodeURIComponent(a)}`,{method:"DELETE"})).ok&&await aF()}catch(a){console.log("Error enabling model:",a)}},aI=async a=>{if(a.length&&confirm(`Disable all ${a.length} model(s)?`))try{(await fetch("/api/models/disabled",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerAlias:aD,ids:a})})).ok&&await aF()}catch(a){console.log("Error disabling all models:",a)}},aJ=async()=>{try{(await fetch(`/api/models/disabled?providerAlias=${encodeURIComponent(aD)}`,{method:"DELETE"})).ok&&await aF()}catch(a){console.log("Error enabling all models:",a)}},aK=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/models/alias"),b=await a.json();a.ok&&S(b.aliases||{})}catch(a){console.log("Error fetching aliases:",a)}},[]),aL=(0,e.useCallback)(async()=>{try{let[a,b,c,d]=await Promise.all([fetch("/api/providers",{cache:"no-store"}),fetch("/api/provider-nodes",{cache:"no-store"}),fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}),fetch("/api/settings",{cache:"no-store"})]),e=await a.json(),f=await b.json(),h=await c.json(),i=d.ok?await d.json():{};if(a.ok){let a=(e.connections||[]).filter(a=>a.provider===g);o(a)}c.ok&&A(h.proxyPools||[]);let j=(i.providerStrategies||{})[g]||{};ai(j.fallbackStrategy||null),ak(null!=j.stickyRoundRobinLimit?String(j.stickyRoundRobinLimit):"1");let k=(i.providerThinking||{})[g]||{};if(am(k.mode||"auto"),b.ok){let a=(f.nodes||[]).find(a=>a.id===g)||null;if(!a&&aC)for(let b=0;b<3;b+=1){await new Promise(a=>setTimeout(a,150));let b=await fetch("/api/provider-nodes",{cache:"no-store"});if(b.ok&&(a=((await b.json()).nodes||[]).find(a=>a.id===g)||null))break}y(a)}}catch(a){console.log("Error fetching connections:",a)}finally{s(!1)}},[g,aC]),aM=async a=>{try{let b=await fetch(`/api/provider-nodes/${g}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)}),c=await b.json();b.ok&&(y(c.node),await aL(),M(!1))}catch(a){console.log("Error updating provider node:",a)}},aN=async(a,b)=>{try{let c=await fetch("/api/settings",{cache:"no-store"}),d=(c.ok?await c.json():{}).providerStrategies||{},e={};a&&(e.fallbackStrategy=a),"round-robin"===a&&""!==b&&(e.stickyRoundRobinLimit=Number(b)||3);let f={...d};0===Object.keys(e).length?delete f[g]:f[g]=e,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:f})})}catch(a){console.log("Error saving provider strategy:",a)}},aO=async(a,b,c=az)=>{let d=`${c}/${a}`;try{let a=await fetch("/api/models/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:d,alias:b})});if(a.ok)await aK();else{let b=await a.json();alert(b.error||"Failed to set alias")}}catch(a){console.log("Error setting alias:",a)}},aP=async a=>{try{(await fetch(`/api/models/alias?alias=${encodeURIComponent(a)}`,{method:"DELETE"})).ok&&await aK()}catch(a){console.log("Error deleting alias:",a)}},aQ=async a=>{if(confirm("Delete this connection?"))try{(await fetch(`/api/providers/${a}`,{method:"DELETE"})).ok&&o(n.filter(b=>b.id!==a))}catch(a){console.log("Error deleting connection:",a)}},aR=()=>{aL(),C(!1)},aS=async a=>{I("");try{let b=await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:g,...a})}),c=null;try{c=await b.json()}catch{c=null}if(b.ok){await aL(),G(!1);return}I(c?.error||"Failed to save connection")}catch(a){console.log("Error saving connection:",a),I("Failed to save connection")}},aT=async a=>{try{(await fetch(`/api/providers/${P.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok&&(await aL(),K(!1))}catch(a){console.log("Error updating connection:",a)}},aU=async(a,b)=>{try{(await fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok&&o(c=>c.map(c=>c.id===a?{...c,isActive:b}:c))}catch(a){console.log("Error updating connection status:",a)}},aV=async(a,b)=>{let c=[...n];[c[a],c[b]]=[c[b],c[a]],o(c);try{await Promise.all([fetch(`/api/providers/${c[a].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:a})}),fetch(`/api/providers/${c[b].id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({priority:b})})])}catch(a){console.log("Error swapping priority:",a),await aL()}},aW=n.filter(a=>ab.includes(a.id));n.length>0&&(ab.length,n.length),(()=>{if(0===aW.length)return;let a=new Set(aW.map(a=>a.providerSpecificData?.proxyPoolId||"__none__"));if(1===a.size){let b=[...a][0];if("__none__"===b)return;let c=z.find(a=>a.id===b);return c?.name}})();let aX=()=>{af||O(!1)},aY=async a=>{ag(!0);try{let b=0;for(let{connectionId:c,proxyPoolId:d}of a)try{(await fetch(`/api/providers/${c}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:d})})).ok||(b+=1)}catch(a){console.log("Error applying proxy for",c,a),b+=1}b>0&&alert(`Updated with ${b} failed request(s).`),await aL(),O(!1)}finally{ag(!1)}},aZ=a=>aY(n.map(b=>({connectionId:b.id,proxyPoolId:a}))),a$=(0,d.jsx)("div",{className:"flex min-w-0 flex-col divide-y divide-black/[0.03] dark:divide-white/[0.03]",children:n.map((a,b)=>(0,d.jsx)("div",{className:"flex min-w-0 items-stretch",children:(0,d.jsx)("div",{className:"flex-1 min-w-0",children:(0,d.jsx)(t,{connection:a,proxyPools:z,isOAuth:aw,isFirst:0===b,isLast:b===n.length-1,onMoveUp:()=>aV(b,b-1),onMoveDown:()=>aV(b,b+1),onToggleActive:b=>aU(a.id,b),onUpdateProxy:async b=>{try{(await fetch(`/api/providers/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({proxyPoolId:b||null})})).ok&&o(c=>c.map(c=>c.id===a.id?{...c,providerSpecificData:{...c.providerSpecificData,proxyPoolId:b||null}}:c))}catch(a){console.log("Error updating proxy:",a)}},onEdit:()=>{Q(a),K(!0)},onDelete:()=>aQ(a.id)})})},a.id))}),a_=z.filter(a=>!0===a.isActive),a0=(0,d.jsx)(j.aF,{isOpen:N,onClose:aX,title:`Apply Proxy (${n.length} connections)`,children:(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex flex-col",children:[(0,d.jsxs)("button",{onClick:()=>{let a=z.filter(a=>!0===a.isActive);return 0===a.length?void alert("No active proxy pools available."):aY(n.map((b,c)=>({connectionId:b.id,proxyPoolId:a[c%a.length].id})))},disabled:af||0===a_.length,className:"flex items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/[0.04] dark:hover:bg-white/[0.04] disabled:cursor-not-allowed disabled:opacity-50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px]",children:"sync_alt"}),(0,d.jsx)("span",{className:"text-sm text-text-main",children:"One-to-one (rotate)"})]}),(0,d.jsxs)("button",{onClick:()=>aZ(null),disabled:af,className:"flex items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/[0.04] dark:hover:bg-white/[0.04] disabled:cursor-not-allowed disabled:opacity-50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px]",children:"link_off"}),(0,d.jsx)("span",{className:"text-sm text-text-main",children:"None (unbind all)"})]}),z.map(a=>(0,d.jsxs)("button",{onClick:()=>aZ(a.id),disabled:af||!0!==a.isActive,className:"flex items-center gap-2 rounded-lg px-3 py-2 text-left transition-colors hover:bg-black/[0.04] dark:hover:bg-white/[0.04] disabled:cursor-not-allowed disabled:opacity-50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[18px]",children:"lan"}),(0,d.jsx)("span",{className:"truncate text-sm text-text-main",children:a.name}),!0!==a.isActive&&(0,d.jsx)("span",{className:"text-[10px] text-text-muted",children:"(inactive)"})]},a.id))]}),af&&(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Applying..."}),(0,d.jsx)(j.$n,{onClick:aX,variant:"ghost",fullWidth:!0,disabled:af,children:"Cancel"})]})}),a1=async a=>{if(!Z){$(a);try{let b=await fetch("/api/models/test",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({model:`${aD}/${a}`})}),c=await b.json();W(b=>({...b,[a]:c.ok?"ok":"error"})),Y(c.ok?"":c.error||"Model not reachable")}catch{W(b=>({...b,[a]:"error"})),Y("Network error")}finally{$(null)}}};return q?(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(j.Qv,{}),(0,d.jsx)(j.Qv,{})]}):av?(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:gap-8 sm:px-0",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)(h(),{href:"/dashboard/providers",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),"Back to Providers"]}),(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3 sm:gap-4",children:[(0,d.jsx)("div",{className:"flex size-12 shrink-0 items-center justify-center rounded-lg",style:{backgroundColor:`${av.color}15`},children:T?(0,d.jsx)("span",{className:"text-sm font-bold",style:{color:av.color},children:av.textIcon||av.id.slice(0,2).toUpperCase()}):(0,d.jsx)(i.default,{src:aA&&av.apiType?"responses"===av.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":aB?"/providers/anthropic-m.png":`/providers/${av.id}.png`,alt:av.name,width:48,height:48,className:"max-h-12 max-w-12 rounded-lg object-contain",sizes:"48px",onError:()=>U(!0)})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 flex-wrap",children:[(0,d.jsx)("h1",{className:"truncate text-2xl font-semibold tracking-tight sm:text-3xl",children:av.name}),(av.notice?.apiKeyUrl||av.notice?.signupUrl||av.website)&&(0,d.jsxs)("a",{href:av.notice?.apiKeyUrl||av.notice?.signupUrl||av.website,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),av.notice?.apiKeyUrl?"Get API Key":"Sign up / Learn more"]})]}),(0,d.jsxs)("p",{className:"text-text-muted",children:[n.length," connection",1===n.length?"":"s"]})]})]})]}),av.deprecated&&(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-yellow-500/10 border border-yellow-500/30",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-yellow-500 mt-0.5 shrink-0",children:"warning"}),(0,d.jsx)("p",{className:"text-xs text-red-600 dark:text-yellow-400 leading-relaxed",children:av.deprecationNotice})]}),av.notice?.text&&!av.deprecated&&(0,d.jsxs)("div",{className:"flex flex-col gap-2 rounded-lg border border-blue-500/30 bg-blue-500/10 px-3 py-2 sm:flex-row sm:items-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] text-blue-500 shrink-0",children:"info"}),(0,d.jsx)("p",{className:"min-w-0 flex-1 text-xs leading-relaxed text-blue-600 dark:text-blue-400",children:av.notice.text}),av.notice.apiKeyUrl&&(0,d.jsx)("a",{href:av.notice.apiKeyUrl,target:"_blank",rel:"noopener noreferrer",className:"inline-flex justify-center rounded bg-blue-500 px-2 py-1 text-xs font-medium text-white transition-colors hover:bg-blue-600 sm:py-0.5",children:"Get API Key →"})]}),aC&&x&&(0,d.jsxs)(j.Zp,{children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:aB?"Anthropic Compatible Details":"OpenAI Compatible Details"}),(0,d.jsxs)("p",{className:"break-all text-sm text-text-muted",children:[aB?"Messages API":"responses"===x.apiType?"Responses API":"Chat Completions"," \xb7 ",(x.baseUrl||"").replace(/\/$/,""),"/",aB?"messages":"responses"===x.apiType?"responses":"chat/completions"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,d.jsx)(j.$n,{size:"sm",icon:"add",onClick:()=>{I(""),G(!0)},disabled:n.length>0,className:"w-full sm:w-auto",children:"Add API Key"}),(0,d.jsx)(j.$n,{size:"sm",variant:"secondary",icon:"edit",onClick:()=>M(!0),className:"w-full sm:w-auto",children:"Edit"}),(0,d.jsx)(j.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:async()=>{if(confirm(`Delete this ${aB?"Anthropic":"OpenAI"} Compatible node?`))try{(await fetch(`/api/provider-nodes/${g}`,{method:"DELETE"})).ok&&c.push("/dashboard/providers")}catch(a){console.log("Error deleting provider node:",a)}},className:"w-full sm:w-auto",children:"Delete"})]})]}),n.length>0&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Only one connection is allowed per compatible node. Add another node if you need more connections."})]}),ax?(0,d.jsx)(j.gw,{providerId:g}):(0,d.jsxs)(j.Zp,{children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"Connections"}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:gap-4",children:[n.length>0&&z.length>0&&(0,d.jsx)(j.$n,{size:"sm",variant:"secondary",icon:"lan",onClick:()=>O(!0),children:"Apply Proxy"}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted font-medium",children:"Round Robin"}),(0,d.jsx)(j.lM,{checked:"round-robin"===ah,onChange:a=>{let b=a?"round-robin":null,c=a?aj||"1":aj;a&&!aj&&ak("1"),ai(b),aN(b,c)}}),"round-robin"===ah&&(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("span",{className:"text-xs text-text-muted",children:"Sticky:"}),(0,d.jsx)("input",{type:"number",min:1,value:aj,onChange:a=>{var b;ak(b=a.target.value),aN("round-robin",b)},placeholder:"1",className:"w-14 px-2 py-1 text-xs border border-border rounded-md bg-background focus:outline-none focus:border-primary"})]})]})]})]}),0===n.length?(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-9 h-9 rounded-full bg-primary/10 text-primary shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:aw?"lock":"key"})}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"No connections yet"})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[!aC&&"iflow"===g&&(0,d.jsx)(j.$n,{size:"sm",icon:"cookie",variant:"secondary",onClick:()=>E(!0),children:"Cookie"}),(0,d.jsx)(j.$n,{size:"sm",icon:"add",onClick:()=>{aw?C(!0):(I(""),G(!0))},children:aC?"Add API Key":"iflow"===g?"OAuth":"Add Connection"})]})]}):(0,d.jsxs)(d.Fragment,{children:[a$,!aC&&(0,d.jsxs)("div",{className:"mt-4 grid grid-cols-1 gap-2 sm:flex",children:["iflow"===g&&(0,d.jsx)(j.$n,{size:"sm",icon:"cookie",variant:"secondary",onClick:()=>E(!0),title:"Add connection using browser cookie",className:"w-full sm:w-auto",children:"Cookie"}),(0,d.jsx)(j.$n,{size:"sm",icon:"add",onClick:()=>{aw?C(!0):(I(""),G(!0))},className:"w-full sm:w-auto",children:"Add"})]})]})]}),(0,d.jsxs)(j.Zp,{children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg font-semibold",children:"Available Models"}),!aC&&(a=[...ay,...ap.filter(a=>!ay.some(b=>b.id===a.id))].filter(a=>!a.type||"llm"===a.type).map(a=>a.id).filter(a=>!ar.includes(a)),(0,d.jsxs)("div",{className:"flex gap-2",children:[ar.length>0&&(0,d.jsx)(j.$n,{size:"sm",variant:"secondary",icon:"restart_alt",onClick:aJ,children:"Active All"}),a.length>0&&(0,d.jsx)(j.$n,{size:"sm",variant:"secondary",icon:"block",onClick:()=>aI(a),children:"Disable All"})]}))]}),!!X&&(0,d.jsx)("p",{className:"text-xs text-red-500 mb-3 break-words",children:X}),(()=>{let a,b,c;if(aC)return(0,d.jsx)(r,{providerStorageAlias:aD,providerDisplayAlias:aE,modelAliases:R,copied:at,onCopy:au,onSetAlias:aO,onDeleteAlias:aP,connections:n,isAnthropic:aB});let e=[...ay,...ap.filter(a=>!ay.some(b=>b.id===a.id))].filter(a=>!a.type||"llm"===a.type),f=new Set(ar),h=e.filter(a=>!f.has(a.id)),i=e.filter(a=>f.has(a.id)),j=Object.entries(R).filter(([a,b])=>{let c=`${aD}/`;if(!b.startsWith(c))return!1;let d=b.slice(c.length);return av.passthroughModels?!ay.some(a=>a.id===d):!ay.some(a=>a.id===d)&&a===d}).map(([a,b])=>({id:b.slice(`${aD}/`.length),alias:a,fullModel:b}));return(0,d.jsxs)("div",{className:"flex flex-wrap gap-3",children:[j.map(a=>(0,d.jsx)(p,{model:{id:a.id},fullModel:`${aE}/${a.id}`,alias:a.alias,copied:at,onCopy:au,onSetAlias:()=>{},onDeleteAlias:()=>aP(a.alias),testStatus:V[a.id],onTest:n.length>0||ax?()=>a1(a.id):void 0,isTesting:Z===a.id,isCustom:!0,isFree:!1},a.id)),h.map(a=>{let b=`${aD}/${a.id}`,c=`${g}/${a.id}`,e=Object.entries(R).find(([,a])=>a===b||a===c)?.[0];return(0,d.jsx)(p,{model:a,fullModel:`${aE}/${a.id}`,alias:e,copied:at,onCopy:au,onSetAlias:b=>aO(a.id,b,aD),onDeleteAlias:()=>aP(e),testStatus:V[a.id],onTest:n.length>0||ax?()=>a1(a.id):void 0,isTesting:Z===a.id,isFree:a.isFree,onDisable:()=>aG(a.id)},a.id)}),(0,d.jsxs)("button",{onClick:()=>aa(!0),className:"flex w-full items-center justify-center gap-1.5 rounded-lg border border-dashed border-primary/40 px-3 py-2 text-xs text-primary transition-colors hover:border-primary hover:bg-primary/5 sm:w-auto",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"add"}),"Add Model"]}),an.length>0&&(a=new Set(Object.values(R)),b=new Set(ay.map(a=>a.id)),0===(c=an.filter(c=>!a.has(`${aD}/${c.id}`)&&!b.has(c.id))).length?null:(0,d.jsxs)("div",{className:"w-full mt-2",children:[(0,d.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"Suggested free models (≥200k context):"}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:c.map(a=>(0,d.jsxs)("button",{onClick:async()=>{let b=a.id.split("/").pop();await aO(a.id,b,aD)},className:"flex items-center gap-1 px-2.5 py-1.5 rounded-lg border border-black/10 dark:border-white/10 text-xs text-text-muted hover:text-primary hover:border-primary/40 hover:bg-primary/5 transition-colors",title:`${a.name} \xb7 ${(a.contextLength/1e3).toFixed(0)}k ctx`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"add"}),a.id.split("/").pop()]},a.id))})]})),i.length>0&&(0,d.jsxs)("div",{className:"w-full mt-2",children:[(0,d.jsxs)("p",{className:"text-xs text-text-muted mb-2",children:["Disabled models (",i.length,"):"]}),(0,d.jsx)("div",{className:"flex flex-wrap gap-2",children:i.map(a=>(0,d.jsxs)("button",{onClick:()=>aH(a.id),className:"flex items-center gap-1 px-2.5 py-1.5 rounded-lg border border-dashed border-black/10 dark:border-white/10 text-xs text-text-muted hover:text-primary hover:border-primary/40 hover:bg-primary/5 transition-colors",title:"Restore model",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[13px]",children:"add"}),a.id]},a.id))})]})]})})()]}),a0,"kiro"===g?(0,d.jsx)(j.Mh,{isOpen:B,providerInfo:av,onSuccess:aR,onClose:()=>C(!1)}):"cursor"===g?(0,d.jsx)(j.G9,{isOpen:B,onSuccess:aR,onClose:()=>C(!1)}):"gitlab"===g?(0,d.jsx)(j.vj,{isOpen:B,providerInfo:av,onSuccess:aR,onClose:()=>C(!1)}):(0,d.jsx)(j.LF,{isOpen:B,provider:g,providerInfo:av,onSuccess:aR,onClose:()=>C(!1)}),"iflow"===g&&(0,d.jsx)(j.vE,{isOpen:D,onSuccess:()=>{aL(),E(!1)},onClose:()=>E(!1)}),(0,d.jsx)(u,{isOpen:F,provider:g,providerName:av.name,isCompatible:aC,isAnthropic:aB,authType:av?.authType,authHint:av?.authHint,website:av?.website,proxyPools:z,error:H,onSave:aS,onClose:()=>{I(""),G(!1)}}),(0,d.jsx)(j.wI,{isOpen:J,connection:P,proxyPools:z,onSave:aT,onClose:()=>K(!1)}),aC&&(0,d.jsx)(v,{isOpen:L,node:x,onSave:aM,onClose:()=>M(!1),isAnthropic:aB}),!aC&&(0,d.jsx)(w,{isOpen:_,providerAlias:aD,providerDisplayAlias:aE,onSave:async a=>{let b=av?.passthroughModels?a.split("/").pop():a;await aO(a,b,aD),aa(!1)},onClose:()=>aa(!1)})]}):(0,d.jsxs)("div",{className:"text-center py-20",children:[(0,d.jsx)("p",{className:"text-text-muted",children:"Provider not found"}),(0,d.jsx)(h(),{href:"/dashboard/providers",className:"text-primary mt-4 inline-block",children:"Back to Providers"})]})}p.propTypes={model:o().shape({id:o().string.isRequired}).isRequired,fullModel:o().string.isRequired,alias:o().string,copied:o().string,onCopy:o().func.isRequired,testStatus:o().oneOf(["ok","error"]),isCustom:o().bool,isFree:o().bool,onDeleteAlias:o().func,onTest:o().func,isTesting:o().bool,onDisable:o().func},o().string.isRequired,o().string.isRequired,o().string,o().func.isRequired,o().func.isRequired,o().func,o().oneOf(["ok","error"]),o().bool,o().string.isRequired,o().object.isRequired,o().string,o().func.isRequired,o().func.isRequired,o().func.isRequired,r.propTypes={providerStorageAlias:o().string.isRequired,providerDisplayAlias:o().string.isRequired,modelAliases:o().object.isRequired,copied:o().string,onCopy:o().func.isRequired,onSetAlias:o().func.isRequired,onDeleteAlias:o().func.isRequired,connections:o().arrayOf(o().shape({id:o().string,isActive:o().bool})).isRequired,isAnthropic:o().bool},s.propTypes={until:o().string.isRequired},t.propTypes={connection:o().shape({id:o().string,name:o().string,email:o().string,displayName:o().string,modelLockUntil:o().string,testStatus:o().string,isActive:o().bool,lastError:o().string,priority:o().number,globalPriority:o().number}).isRequired,proxyPools:o().arrayOf(o().shape({id:o().string,name:o().string,proxyUrl:o().string,noProxy:o().string,isActive:o().bool})),isOAuth:o().bool.isRequired,isFirst:o().bool.isRequired,isLast:o().bool.isRequired,onMoveUp:o().func.isRequired,onMoveDown:o().func.isRequired,onToggleActive:o().func.isRequired,onUpdateProxy:o().func,onEdit:o().func.isRequired,onDelete:o().func.isRequired},u.propTypes={isOpen:o().bool.isRequired,provider:o().string,providerName:o().string,isCompatible:o().bool,isAnthropic:o().bool,authType:o().string,authHint:o().string,website:o().string,proxyPools:o().arrayOf(o().shape({id:o().string,name:o().string})),error:o().string,onSave:o().func.isRequired,onClose:o().func.isRequired},v.propTypes={isOpen:o().bool.isRequired,node:o().shape({id:o().string,name:o().string,prefix:o().string,apiType:o().string,baseUrl:o().string}),onSave:o().func.isRequired,onClose:o().func.isRequired,isAnthropic:o().bool},w.propTypes={isOpen:o().bool.isRequired,providerAlias:o().string.isRequired,providerDisplayAlias:o().string.isRequired,onSave:o().func.isRequired,onClose:o().func.isRequired}},27910:a=>{"use strict";a.exports=require("stream")},27993:(a,b,c)=>{Promise.resolve().then(c.bind(c,43394))},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31929:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["providers",{children:["[id]",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,43394)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},["new"]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/providers/[id]/page",pathname:"/dashboard/providers/[id]",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/providers/[id]/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41145:(a,b,c)=>{Promise.resolve().then(c.bind(c,27848))},43394:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js","default")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,5046,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=31929));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json new file mode 100644 index 00000000000..abbbfceadaa --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2049.js","../../../../../chunks/21.js","../../../../../chunks/2371.js","../../../../../chunks/2503.js","../../../../../chunks/2566.js","../../../../../chunks/3656.js","../../../../../chunks/375.js","../../../../../chunks/3774.js","../../../../../chunks/450.js","../../../../../chunks/5046.js","../../../../../chunks/5053.js","../../../../../chunks/514.js","../../../../../chunks/5978.js","../../../../../chunks/64.js","../../../../../chunks/6782.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8035.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js new file mode 100644 index 00000000000..56c178f21c6 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/[id]/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/providers/[id]/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8460","static/chunks/app/(dashboard)/dashboard/providers/page-6c6bb4f9b3b7e5f8.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","2134","static/chunks/app/(dashboard)/dashboard/providers/%5Bid%5D/page-b150970e241c5c7b.js"],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js new file mode 100644 index 00000000000..001b8865a96 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=9089,a.ids=[9089],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},24183:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["providers",{children:["new",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,78353)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/providers/new/page",pathname:"/dashboard/providers/new",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/providers/new/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},35544:(a,b,c)=>{Promise.resolve().then(c.bind(c,78353))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},44403:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>m});var d=c(26835),e=c(53830),f=c(28217),g=c(30978),h=c.n(g),i=c(50450),j=c(10074);let k=Object.values(j.Q2).map(a=>({value:a.id,label:a.name})),l=Object.values(j.MA).map(a=>({value:a.id,label:a.name}));function m(){let a=(0,f.useRouter)(),[b,c]=(0,e.useState)(!1),[g,m]=(0,e.useState)({provider:"",authMethod:"api_key",apiKey:"",displayName:"",isActive:!0}),[n,o]=(0,e.useState)({}),p=(a,b)=>{m(c=>({...c,[a]:b})),n[a]&&o(b=>({...b,[a]:null}))},q=async b=>{let d;if(b.preventDefault(),d={},g.provider||(d.provider="Please select a provider"),"api_key"!==g.authMethod||g.apiKey||(d.apiKey="API Key is required"),o(d),0===Object.keys(d).length){c(!0);try{let b=await fetch("/api/providers",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(g)});if(b.ok)a.push("/dashboard/providers");else{let a=await b.json();o({submit:a.error||"Failed to create provider"})}}catch(a){o({submit:"An error occurred. Please try again."})}finally{c(!1)}}},r=j.Q2[g.provider];return(0,d.jsxs)("div",{className:"max-w-2xl mx-auto",children:[(0,d.jsxs)("div",{className:"mb-8",children:[(0,d.jsxs)(h(),{href:"/dashboard/providers",className:"inline-flex items-center gap-1 text-sm text-text-muted hover:text-primary transition-colors mb-4",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"arrow_back"}),"Back to Providers"]}),(0,d.jsx)("h1",{className:"text-3xl font-semibold tracking-tight",children:"Add New Provider"}),(0,d.jsx)("p",{className:"text-text-muted mt-2",children:"Configure a new AI provider to use with your applications."})]}),(0,d.jsx)(i.Zp,{children:(0,d.jsxs)("form",{onSubmit:q,className:"flex flex-col gap-6",children:[(0,d.jsx)(i.l6,{label:"Provider",options:k,value:g.provider,onChange:a=>p("provider",a.target.value),placeholder:"Select a provider",error:n.provider,required:!0}),r&&(0,d.jsxs)(i.Zp.Section,{className:"flex items-center gap-3",children:[(0,d.jsx)("div",{className:"size-10 rounded-lg flex items-center justify-center bg-bg border border-border",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-xl",style:{color:r.color},children:r.icon})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:r.name}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Selected provider"})]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("label",{className:"text-sm font-medium",children:["Authentication Method ",(0,d.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,d.jsx)("div",{className:"flex gap-3",children:l.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>p("authMethod",a.value),className:`flex-1 flex items-center justify-center gap-2 p-4 rounded-lg border transition-all ${g.authMethod===a.value?"border-primary bg-primary/5 text-primary":"border-border hover:border-primary/50"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined",children:"api_key"===a.value?"key":"lock"}),(0,d.jsx)("span",{className:"font-medium",children:a.label})]},a.value))})]}),"api_key"===g.authMethod&&(0,d.jsx)(i.pd,{label:"API Key",type:"password",placeholder:"Enter your API key",value:g.apiKey,onChange:a=>p("apiKey",a.target.value),error:n.apiKey,hint:"Your API key will be encrypted and stored securely.",required:!0}),"oauth2"===g.authMethod&&(0,d.jsxs)(i.Zp.Section,{children:[(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Connect your account using OAuth2 authentication."}),(0,d.jsx)(i.$n,{type:"button",variant:"secondary",icon:"link",children:"Connect with OAuth2"})]}),(0,d.jsx)(i.pd,{label:"Display Name",placeholder:"e.g., Production API, Dev Environment",value:g.displayName,onChange:a=>p("displayName",a.target.value),hint:"Optional. A friendly name to identify this configuration."}),(0,d.jsx)(i.lM,{checked:g.isActive,onChange:a=>p("isActive",a),label:"Active",description:"Enable this provider for use in your applications"}),n.submit&&(0,d.jsx)("div",{className:"p-4 rounded-lg bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 text-red-600 dark:text-red-400 text-sm",children:n.submit}),(0,d.jsxs)("div",{className:"flex gap-3 pt-4 border-t border-border",children:[(0,d.jsx)(h(),{href:"/dashboard/providers",className:"flex-1",children:(0,d.jsx)(i.$n,{type:"button",variant:"ghost",fullWidth:!0,children:"Cancel"})}),(0,d.jsx)(i.$n,{type:"submit",loading:b,fullWidth:!0,className:"flex-1",children:"Create Provider"})]})]})})]})}},45272:(a,b,c)=>{Promise.resolve().then(c.bind(c,44403))},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},78353:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js","default")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=24183));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json new file mode 100644 index 00000000000..9cb6c8f853b --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2049.js","../../../../../chunks/21.js","../../../../../chunks/2371.js","../../../../../chunks/2503.js","../../../../../chunks/2566.js","../../../../../chunks/3656.js","../../../../../chunks/375.js","../../../../../chunks/3774.js","../../../../../chunks/450.js","../../../../../chunks/5053.js","../../../../../chunks/514.js","../../../../../chunks/5978.js","../../../../../chunks/64.js","../../../../../chunks/6782.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8035.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js new file mode 100644 index 00000000000..fe3c84465f7 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/new/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/providers/new/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9089","static/chunks/app/(dashboard)/dashboard/providers/new/page-510b667ad2defe52.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8460","static/chunks/app/(dashboard)/dashboard/providers/page-6c6bb4f9b3b7e5f8.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/providers/page.js new file mode 100644 index 00000000000..4e5c08020e7 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=8460,a.ids=[8460],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5025:(a,b,c)=>{Promise.resolve().then(c.bind(c,34202))},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34202:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js","default")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41225:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>s});var d=c(26835),e=c(53830),f=c(41183),g=c.n(f),h=c(50450),i=c(66298),j=c(10074),k=c(30207),l=c(30978),m=c.n(l),n=c(16019),o=c(43581);let p={available:{icon:"check_circle",color:"#22c55e",label:"Available"},cooldown:{icon:"schedule",color:"#f59e0b",label:"Cooldown"},unavailable:{icon:"error",color:"#ef4444",label:"Unavailable"},unknown:{icon:"help",color:"#6b7280",label:"Unknown"}};function q(){let[a,b]=(0,e.useState)(null),[c,f]=(0,e.useState)(!0),[g,i]=(0,e.useState)(!1),[j,k]=(0,e.useState)(null),l=(0,e.useRef)(null),m=(0,n.i)(),o=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/models/availability");if(a.ok){let c=await a.json();b(c)}}catch{}finally{f(!1)}},[]),q=async(a,b)=>{k(`${a}:${b}`);try{(await fetch("/api/models/availability",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"clearCooldown",provider:a,model:b})})).ok?(m.success(`Cooldown cleared for ${b}`),await o()):m.error("Failed to clear cooldown")}catch{m.error("Failed to clear cooldown")}finally{k(null)}};if(c)return null;let r=a?.models||[],s=0===(a?.unavailableCount||r.filter(a=>"available"!==a.status).length),t={};return r.forEach(a=>{if("available"===a.status)return;let b=a.provider||"unknown";t[b]||(t[b]=[]),t[b].push(a)}),(0,d.jsx)("div",{className:"relative",ref:l,children:g&&(0,d.jsxs)("div",{className:"absolute top-full right-0 mt-2 w-80 bg-surface border border-border rounded-xl shadow-2xl z-50 overflow-hidden",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between px-4 py-3 border-b border-border bg-bg",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",style:{color:s?"#22c55e":"#f59e0b"},children:s?"verified":"warning"}),(0,d.jsx)("span",{className:"text-sm font-semibold text-text-main",children:"Model Status"})]}),(0,d.jsx)("button",{onClick:o,className:"p-1 rounded-lg hover:bg-surface text-text-muted hover:text-text-main transition-colors",title:"Refresh",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"refresh"})})]}),(0,d.jsx)("div",{className:"px-4 py-3 max-h-60 overflow-y-auto",children:s?(0,d.jsx)("p",{className:"text-sm text-text-muted text-center py-2",children:"All models are responding normally."}):(0,d.jsx)("div",{className:"flex flex-col gap-2.5",children:Object.entries(t).map(([a,b])=>(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-xs font-semibold text-text-main mb-1.5 capitalize",children:a}),(0,d.jsx)("div",{className:"flex flex-col gap-1",children:b.map(a=>{let b=p[a.status]||p.unknown,c=j===`${a.provider}:${a.model}`;return(0,d.jsxs)("div",{className:"flex items-center justify-between px-2.5 py-1.5 rounded-lg bg-surface/30",children:[(0,d.jsxs)("div",{className:"flex items-center gap-1.5 min-w-0",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] shrink-0",style:{color:b.color},children:b.icon}),(0,d.jsx)("span",{className:"font-mono text-xs text-text-main truncate",children:a.model})]}),"cooldown"===a.status&&(0,d.jsx)(h.$n,{size:"sm",variant:"ghost",onClick:()=>q(a.provider,a.model),disabled:c,className:"text-[10px] px-1.5! py-0.5! ml-2",children:c?"...":"Clear"})]},`${a.provider}-${a.model}`)})})]},a))})})]})})}function r(a,b,c){let e=[];if(a>0&&e.push((0,d.jsxs)(h.Ex,{variant:"success",size:"sm",dot:!0,children:[a," Connected"]},"connected")),b>0){let a=c?`${b} Error (${c})`:`${b} Error`;e.push((0,d.jsx)(h.Ex,{variant:"error",size:"sm",dot:!0,children:a},"error"))}return 0===e.length?(0,d.jsx)("span",{className:"text-text-muted",children:"No connections"}):e}function s(){let[a,b]=(0,e.useState)([]),[c,f]=(0,e.useState)([]),[g,i]=(0,e.useState)(!0),[l,m]=(0,e.useState)(!1),[p,r]=(0,e.useState)(!1),[s,y]=(0,e.useState)(null),[z,A]=(0,e.useState)(null),B=(0,n.i)(),C=(0,o.C)(a=>a.query);(0,o.C)(a=>a.register),(0,o.C)(a=>a.unregister);let D=a=>!C.trim()||a.toLowerCase().includes(C.trim().toLowerCase()),E=(b,c)=>{let d=a.filter(a=>a.provider===b&&a.authType===c),e=a=>{let b=Object.entries(a).some(([a,b])=>a.startsWith("modelLock_")&&b&&new Date(b).getTime()>Date.now());return"unavailable"!==a.testStatus||b?a.testStatus:"active"},f=d.filter(a=>{let b=e(a);return"active"===b||"success"===b}).length,g=d.filter(a=>{let b=e(a);return"error"===b||"expired"===b||"unavailable"===b}),h=g.length,i=d.length,j=i>0&&d.every(a=>!1===a.isActive),k=g.sort((a,b)=>new Date(b.lastErrorAt||0)-new Date(a.lastErrorAt||0))[0];return{connected:f,error:h,total:i,errorCode:k?function(a){if(!a)return null;let b=a.lastErrorType;if("runtime_error"===b)return"RUNTIME";if("upstream_auth_error"===b||"auth_missing"===b||"token_refresh_failed"===b||"token_expired"===b)return"AUTH";if("upstream_rate_limited"===b)return"429";if("upstream_unavailable"===b)return"5XX";if("network_error"===b)return"NET";let c=Number(a.errorCode);if(Number.isFinite(c)&&c>=400)return String(c);let d=function(a){if(!a)return null;let b=a.match(/\b([45]\d{2})\b/);return b?b[1]:"ERR"}(a.lastError);if("401"===d||"403"===d)return"AUTH";if(d&&"ERR"!==d)return d;let e=(a.lastError||"").toLowerCase();return e.includes("runtime")||e.includes("not runnable")||e.includes("not installed")?"RUNTIME":e.includes("invalid api key")||e.includes("token invalid")||e.includes("revoked")||e.includes("unauthorized")?"AUTH":"ERR"}(k):null,errorTime:k?.lastErrorAt?function(a){if(!a)return"";let b=Math.floor((Date.now()-new Date(a).getTime())/6e4);if(b<1)return"just now";if(b<60)return`${b}m ago`;let c=Math.floor(b/60);if(c<24)return`${c}h ago`;let d=Math.floor(c/24);return`${d}d ago`}(k.lastErrorAt):null,allDisabled:j}},F=async(c,d,e)=>{let f=a.filter(a=>a.provider===c&&a.authType===d);b(a=>a.map(a=>a.provider===c&&a.authType===d?{...a,isActive:e}:a)),await Promise.allSettled(f.map(a=>fetch(`/api/providers/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:e})})))},G=async(a,b=null)=>{if(!s){y("provider"===a?b:a),A(null);try{let c=await fetch("/api/providers/test-batch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({mode:a,providerId:b})}),d=await c.json();if(A(d),d.summary){let{passed:a,failed:b,total:c}=d.summary;0===b?B.success(`All ${c} tests passed`):B.warning(`${a}/${c} passed, ${b} failed`)}}catch(a){A({error:"Test request failed"}),B.error("Provider test failed")}finally{y(null)}}},H=c.filter(a=>"openai-compatible"===a.type).map(a=>({id:a.id,name:a.name||"OpenAI Compatible",color:"#10A37F",textIcon:"OC",apiType:a.apiType})).filter(a=>D(a.name)),I=c.filter(a=>"anthropic-compatible"===a.type).map(a=>({id:a.id,name:a.name||"Anthropic Compatible",color:"#D97757",textIcon:"AC"})).filter(a=>D(a.name)),J=Object.entries(j.zN).filter(([,a])=>D(a.name)),K=Object.entries(k.IS).filter(([,a])=>D(a.name)),L=Object.entries(k.nJ).filter(([,a])=>D(a.name)),M=Object.entries(j.fg).filter(([,a])=>(a.serviceKinds??["llm"]).includes("llm")&&D(a.name));if(g)return(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]});let N=J.length>0||K.length>0||L.length>0||M.length>0||H.length>0||I.length>0;return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[!N&&(0,d.jsxs)("div",{className:"text-center py-8 border border-dashed border-border rounded-xl",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px] text-text-muted mb-2",children:"search_off"}),(0,d.jsx)("p",{className:"text-text-muted text-sm",children:"No providers match your search"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:["Custom Providers (OpenAI/Anthropic Compatible)"," "]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:w-auto",children:[(0,d.jsx)(h.$n,{size:"sm",icon:"add",onClick:()=>r(!0),className:"w-full sm:w-auto",children:"Add Anthropic Compatible"}),(0,d.jsx)(h.$n,{size:"sm",variant:"secondary",icon:"add",onClick:()=>m(!0),className:"w-full !bg-white !text-black hover:!bg-gray-100 sm:w-auto",children:"Add OpenAI Compatible"})]})]}),0===H.length&&0===I.length?(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2 py-2 border border-dashed border-border rounded-xl text-text-muted text-sm",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"extension"}),(0,d.jsx)("span",{children:"No custom providers — use buttons above to add OpenAI/Anthropic compatible endpoints"})]}):(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:[...H,...I].map(a=>(0,d.jsx)(u,{providerId:a.id,provider:a,stats:E(a.id,"apikey"),authType:"compatible",onToggle:b=>F(a.id,"apikey",b)},a.id))})]}),J.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:"OAuth Providers"}),(0,d.jsxs)("div",{className:"flex w-full flex-col gap-2 sm:w-auto sm:flex-row sm:items-center",children:[(0,d.jsx)(q,{}),(0,d.jsxs)("button",{onClick:()=>G("oauth"),disabled:!!s,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"oauth"===s?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all OAuth connections","aria-label":"Test all OAuth connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"oauth"===s?" animate-spin":""}`,children:"play_arrow"}),"oauth"===s?"Testing...":"Test All"]})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:J.map(([a,b])=>(0,d.jsx)(t,{providerId:a,provider:b,stats:E(a,"oauth"),authType:"oauth",onToggle:b=>F(a,"oauth",b)},a))})]}),(K.length>0||L.length>0)&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:"Free Tier Providers"}),(0,d.jsxs)("button",{onClick:()=>G("free"),disabled:!!s,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"free"===s?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all Free connections","aria-label":"Test all Free provider connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"free"===s?" animate-spin":""}`,children:"play_arrow"}),"free"===s?"Testing...":"Test All"]})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:[K.map(([a,b])=>(0,d.jsx)(t,{providerId:a,provider:b,stats:E(a,"oauth"),authType:"free",onToggle:b=>F(a,"oauth",b)},a)),L.map(([a,b])=>(0,d.jsx)(u,{providerId:a,provider:b,stats:E(a,"apikey"),authType:"apikey",onToggle:b=>F(a,"apikey",b)},a))]})]}),M.length>0&&(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("h2",{className:"text-lg sm:text-xl font-semibold flex items-center gap-2 leading-tight",children:["API Key Providers"," "]}),(0,d.jsxs)("button",{onClick:()=>G("apikey"),disabled:!!s,className:`flex w-full items-center justify-center gap-1.5 rounded-lg border px-3 py-2 text-xs font-medium transition-colors sm:w-auto sm:py-1.5 ${"apikey"===s?"bg-primary/20 border-primary/40 text-primary animate-pulse":"bg-bg border-border text-text-muted hover:text-text-main hover:border-primary/40"}`,title:"Test all API Key connections","aria-label":"Test all API Key connections",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px]${"apikey"===s?" animate-spin":""}`,children:"play_arrow"}),"apikey"===s?"Testing...":"Test All"]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 gap-3 sm:grid-cols-2 sm:gap-4 lg:grid-cols-3 xl:grid-cols-4",children:M.map(([a,b])=>(0,d.jsx)(u,{providerId:a,provider:b,stats:E(a,"apikey"),authType:"apikey",onToggle:b=>F(a,"apikey",b)},a))})]}),(0,d.jsx)(v,{isOpen:l,onClose:()=>m(!1),onCreated:a=>{f(b=>[...b,a]),m(!1)}}),(0,d.jsx)(w,{isOpen:p,onClose:()=>r(!1),onCreated:a=>{f(b=>[...b,a]),r(!1)}}),z&&(0,d.jsxs)("div",{className:"fixed inset-0 z-50 flex items-start justify-center px-3 pt-[6vh] sm:pt-[10vh]",onClick:()=>A(null),children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/60 backdrop-blur-sm"}),(0,d.jsxs)("div",{className:"relative bg-surface border border-border rounded-xl w-full max-w-[600px] max-h-[86vh] sm:max-h-[80vh] overflow-y-auto shadow-2xl",onClick:a=>a.stopPropagation(),children:[(0,d.jsxs)("div",{className:"sticky top-0 z-10 flex items-center justify-between px-5 py-3 border-b border-border bg-surface/95 backdrop-blur-sm rounded-t-xl",children:[(0,d.jsx)("h3",{className:"font-semibold",children:"Test Results"}),(0,d.jsx)("button",{onClick:()=>A(null),className:"p-1 rounded-lg hover:bg-bg text-text-muted hover:text-text-main transition-colors","aria-label":"Close test results",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]}),(0,d.jsx)("div",{className:"p-5",children:(0,d.jsx)(x,{results:z})})]})]})]})}function t({providerId:a,provider:b,stats:c,authType:e,onToggle:f}){let{connected:g,error:j,errorCode:k,errorTime:l,allDisabled:n}=c,o=!!b.noAuth;return(0,d.jsx)(m(),{href:`/dashboard/providers/${a}`,className:"group min-w-0",children:(0,d.jsx)(h.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${n?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 shrink-0 rounded-lg flex items-center justify-center",style:{backgroundColor:`${b.color?.length>7?b.color:b.color+"15"}`},children:(0,d.jsx)(i.A,{src:`/providers/${b.id}.png`,alt:b.name,size:30,className:"object-contain rounded-lg max-w-[32px] max-h-[32px]",fallbackText:b.textIcon||b.id.slice(0,2).toUpperCase(),fallbackColor:b.color})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"truncate font-semibold",children:b.name}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 text-xs flex-wrap",children:n?(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):o?(0,d.jsx)(h.Ex,{variant:"success",size:"sm",dot:!0,children:"Ready"}):(0,d.jsxs)(d.Fragment,{children:[r(g,j,k),l&&(0,d.jsx)("span",{className:"text-text-muted",children:l})]})})]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c.total>0&&(0,d.jsx)("div",{className:"opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:a=>{a.preventDefault(),a.stopPropagation(),f(!!n)},children:(0,d.jsx)(h.lM,{size:"sm",checked:!n,onChange:()=>{},title:n?"Enable provider":"Disable provider"})})})]})})})}function u({providerId:a,provider:b,stats:c,authType:e,onToggle:f}){let{connected:g,error:j,errorCode:l,errorTime:n,allDisabled:o}=c,p=a.startsWith(k.JH),q=a.startsWith(k.DI);return(0,d.jsx)(m(),{href:`/dashboard/providers/${a}`,className:"group min-w-0",children:(0,d.jsx)(h.Zp,{padding:"xs",className:`h-full hover:bg-black/[0.01] dark:hover:bg-white/[0.01] transition-colors cursor-pointer ${o?"opacity-50":""}`,children:(0,d.jsxs)("div",{className:"flex min-w-0 items-center justify-between gap-3",children:[(0,d.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,d.jsx)("div",{className:"size-8 shrink-0 rounded-lg flex items-center justify-center",style:{backgroundColor:`${b.color?.length>7?b.color:b.color+"15"}`},children:(0,d.jsx)(i.A,{src:p?"responses"===b.apiType?"/providers/oai-r.png":"/providers/oai-cc.png":q?"/providers/anthropic-m.png":`/providers/${b.id}.png`,alt:b.name,size:30,className:"object-contain rounded-lg max-w-[30px] max-h-[30px]",fallbackText:b.textIcon||b.id.slice(0,2).toUpperCase(),fallbackColor:b.color})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"truncate font-semibold",children:b.name}),(0,d.jsx)("div",{className:"flex min-w-0 items-center gap-1.5 text-xs flex-wrap",children:o?(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:(0,d.jsxs)("span",{className:"flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"pause_circle"}),"Disabled"]})}):(0,d.jsxs)(d.Fragment,{children:[r(g,j,l),p&&(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:"responses"===b.apiType?"Responses":"Chat"}),q&&(0,d.jsx)(h.Ex,{variant:"default",size:"sm",children:"Messages"}),n&&(0,d.jsx)("span",{className:"text-text-muted",children:n})]})})]})]}),(0,d.jsx)("div",{className:"flex shrink-0 items-center gap-2",children:c.total>0&&(0,d.jsx)("div",{className:"opacity-100 transition-opacity sm:opacity-0 sm:group-hover:opacity-100",onClick:a=>{a.preventDefault(),a.stopPropagation(),f(!!o)},children:(0,d.jsx)(h.lM,{size:"sm",checked:!o,onChange:()=>{},title:o?"Enable provider":"Disable provider"})})})]})})})}function v({isOpen:a,onClose:b,onCreated:c}){let[f,g]=(0,e.useState)({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=async()=>{if(f.name.trim()&&f.prefix.trim()&&f.baseUrl.trim()){j(!0);try{let a=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name,prefix:f.prefix,apiType:f.apiType,baseUrl:f.baseUrl,type:"openai-compatible"})}),b=await a.json();a.ok&&(c(b.node),g({name:"",prefix:"",apiType:"chat",baseUrl:"https://api.openai.com/v1"}),l(""),r(null))}catch(a){console.log("Error creating OpenAI Compatible node:",a)}finally{j(!1)}}},t=async()=>{p(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:f.baseUrl,apiKey:k,type:"openai-compatible",modelId:m.trim()||void 0})}),b=await a.json();r(b)}catch{r({valid:!1,error:"Network error"})}finally{p(!1)}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Add OpenAI Compatible",onClose:b,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Name",value:f.name,onChange:a=>g({...f,name:a.target.value}),placeholder:"OpenAI Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,d.jsx)(h.pd,{label:"Prefix",value:f.prefix,onChange:a=>g({...f,prefix:a.target.value}),placeholder:"oc-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,d.jsx)(h.l6,{label:"API Type",options:[{value:"chat",label:"Chat Completions"},{value:"responses",label:"Responses API"}],value:f.apiType,onChange:a=>g({...f,apiType:a.target.value})}),(0,d.jsx)(h.pd,{label:"Base URL",value:f.baseUrl,onChange:a=>g({...f,baseUrl:a.target.value}),placeholder:"https://api.openai.com/v1",hint:"Use the base URL (ending in /v1) for your OpenAI-compatible API."}),(0,d.jsx)(h.pd,{label:"API Key (for Check)",type:"password",value:k,onChange:a=>l(a.target.value)}),(0,d.jsx)(h.pd,{label:"Model ID (optional)",value:m,onChange:a=>n(a.target.value),placeholder:"e.g. gpt-4, claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[(0,d.jsx)(h.$n,{onClick:t,disabled:!k||o||!f.baseUrl.trim(),variant:"secondary",className:"w-full sm:w-auto",children:o?"Checking...":"Check"}),(()=>{if(!q)return null;let{valid:a,error:b,method:c}=q;return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Valid"}),"chat"===c&&(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(h.Ex,{variant:"error",children:"Invalid"}),b&&(0,d.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,d.jsx)(h.$n,{onClick:s,fullWidth:!0,disabled:!f.name.trim()||!f.prefix.trim()||!f.baseUrl.trim()||i,children:i?"Creating...":"Create"}),(0,d.jsx)(h.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function w({isOpen:a,onClose:b,onCreated:c}){let[f,g]=(0,e.useState)({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(""),[m,n]=(0,e.useState)(""),[o,p]=(0,e.useState)(!1),[q,r]=(0,e.useState)(null),s=async()=>{if(f.name.trim()&&f.prefix.trim()&&f.baseUrl.trim()){j(!0);try{let a=await fetch("/api/provider-nodes",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:f.name,prefix:f.prefix,baseUrl:f.baseUrl,type:"anthropic-compatible"})}),b=await a.json();a.ok&&(c(b.node),g({name:"",prefix:"",baseUrl:"https://api.anthropic.com/v1"}),l(""),r(null))}catch(a){console.log("Error creating Anthropic Compatible node:",a)}finally{j(!1)}}},t=async()=>{p(!0);try{let a=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:f.baseUrl,apiKey:k,type:"anthropic-compatible",modelId:m.trim()||void 0})}),b=await a.json();r(b)}catch{r({valid:!1,error:"Network error"})}finally{p(!1)}};return(0,d.jsx)(h.aF,{isOpen:a,title:"Add Anthropic Compatible",onClose:b,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Name",value:f.name,onChange:a=>g({...f,name:a.target.value}),placeholder:"Anthropic Compatible (Prod)",hint:"Required. A friendly label for this node."}),(0,d.jsx)(h.pd,{label:"Prefix",value:f.prefix,onChange:a=>g({...f,prefix:a.target.value}),placeholder:"ac-prod",hint:"Required. Used as the provider prefix for model IDs."}),(0,d.jsx)(h.pd,{label:"Base URL",value:f.baseUrl,onChange:a=>g({...f,baseUrl:a.target.value}),placeholder:"https://api.anthropic.com/v1",hint:"Use the base URL (ending in /v1) for your Anthropic-compatible API. The system will append /messages."}),(0,d.jsx)(h.pd,{label:"API Key (for Check)",type:"password",value:k,onChange:a=>l(a.target.value)}),(0,d.jsx)(h.pd,{label:"Model ID (optional)",value:m,onChange:a=>n(a.target.value),placeholder:"e.g. claude-3-opus",hint:"If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead."}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center",children:[(0,d.jsx)(h.$n,{onClick:t,disabled:!k||o||!f.baseUrl.trim(),variant:"secondary",className:"w-full sm:w-auto",children:o?"Checking...":"Check"}),(()=>{if(!q)return null;let{valid:a,error:b,method:c}=q;return a?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.Ex,{variant:"success",children:"Valid"}),"chat"===c&&(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"(via inference test)"})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,d.jsx)(h.Ex,{variant:"error",children:"Invalid"}),b&&(0,d.jsx)("span",{className:"text-sm text-red-500",children:b})]})})()]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row",children:[(0,d.jsx)(h.$n,{onClick:s,fullWidth:!0,disabled:!f.name.trim()||!f.prefix.trim()||!f.baseUrl.trim()||i,children:i?"Creating...":"Create"}),(0,d.jsx)(h.$n,{onClick:b,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}function x({results:a}){if(a.error&&!a.results)return(0,d.jsxs)("div",{className:"text-center py-6",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-red-500 text-[32px] mb-2 block",children:"error"}),(0,d.jsx)("p",{className:"text-sm text-red-400",children:a.error})]});let{summary:b,mode:c}=a,e=a.results||[];return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-3",children:[b&&(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-2 text-xs mb-1 sm:gap-3",children:[(0,d.jsxs)("span",{className:"text-text-muted",children:[{oauth:"OAuth",free:"Free",apikey:"API Key",provider:"Provider",all:"All"}[c]||c," Test"]}),(0,d.jsxs)("span",{className:"px-2 py-0.5 rounded bg-emerald-500/15 text-emerald-400 font-medium",children:[b.passed," passed"]}),b.failed>0&&(0,d.jsxs)("span",{className:"px-2 py-0.5 rounded bg-red-500/15 text-red-400 font-medium",children:[b.failed," failed"]}),(0,d.jsxs)("span",{className:"text-text-muted sm:ml-auto",children:[b.total," tested"]})]}),e.map((a,b)=>(0,d.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2 rounded-lg bg-black/[0.03] px-3 py-2 text-xs dark:bg-white/[0.03] sm:flex-nowrap",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[16px] ${a.valid?"text-emerald-500":"text-red-500"}`,children:a.valid?"check_circle":"error"}),(0,d.jsxs)("div",{className:"min-w-0 flex-[1_1_160px]",children:[(0,d.jsx)("span",{className:"block truncate font-medium sm:inline",children:a.connectionName}),(0,d.jsxs)("span",{className:"block truncate text-text-muted sm:ml-1.5 sm:inline",children:["(",a.provider,")"]})]}),void 0!==a.latencyMs&&(0,d.jsxs)("span",{className:"shrink-0 text-text-muted font-mono tabular-nums",children:[a.latencyMs,"ms"]}),(0,d.jsx)("span",{className:`shrink-0 text-[10px] uppercase font-bold px-1.5 py-0.5 rounded ${a.valid?"bg-emerald-500/15 text-emerald-400":"bg-red-500/15 text-red-400"}`,children:a.valid?"OK":a.diagnosis?.type||"ERROR"})]},a.connectionId||b)),0===e.length&&(0,d.jsx)("div",{className:"text-center py-4 text-text-muted text-sm",children:"No active connections found for this group."})]})}t.propTypes={providerId:g().string.isRequired,provider:g().shape({id:g().string.isRequired,name:g().string.isRequired,color:g().string,textIcon:g().string}).isRequired,stats:g().shape({connected:g().number,error:g().number,errorCode:g().string,errorTime:g().string}).isRequired,authType:g().string,onToggle:g().func},u.propTypes={providerId:g().string.isRequired,provider:g().shape({id:g().string.isRequired,name:g().string.isRequired,color:g().string,textIcon:g().string,apiType:g().string}).isRequired,stats:g().shape({connected:g().number,error:g().number,errorCode:g().string,errorTime:g().string}).isRequired,authType:g().string,onToggle:g().func},v.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onCreated:g().func.isRequired},w.propTypes={isOpen:g().bool.isRequired,onClose:g().func.isRequired,onCreated:g().func.isRequired},x.propTypes={results:g().shape({mode:g().string,results:g().array,summary:g().shape({total:g().number,passed:g().number,failed:g().number}),error:g().string}).isRequired}},41473:(a,b,c)=>{Promise.resolve().then(c.bind(c,41225))},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},84399:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["providers",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,34202)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/providers/page",pathname:"/dashboard/providers",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/providers/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=84399));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js new file mode 100644 index 00000000000..981d1323840 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/providers/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/providers/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8460","static/chunks/app/(dashboard)/dashboard/providers/page-6c6bb4f9b3b7e5f8.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js new file mode 100644 index 00000000000..d45a62d504b --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js @@ -0,0 +1,5 @@ +(()=>{var a={};a.id=6812,a.ids=[6812],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12131:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["proxy-pools",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,28606)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/proxy-pools/page",pathname:"/dashboard/proxy-pools",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/proxy-pools/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},20221:(a,b,c)=>{Promise.resolve().then(c.bind(c,28606))},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28606:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js","default")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},47837:(a,b,c)=>{Promise.resolve().then(c.bind(c,74004))},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74004:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>i});var d=c(26835),e=c(53830),f=c(50450),g=c(16019);function h(a={}){return{name:a.name||"",proxyUrl:a.proxyUrl||"",noProxy:a.noProxy||"",isActive:!1!==a.isActive,strictProxy:!0===a.strictProxy}}function i(){let[a,b]=(0,e.useState)([]),[c,i]=(0,e.useState)(!0),[j,k]=(0,e.useState)(!1),[l,m]=(0,e.useState)(!1),[n,o]=(0,e.useState)(!1),[p,q]=(0,e.useState)(null),[r,s]=(0,e.useState)(h()),[t,u]=(0,e.useState)(""),[v,w]=(0,e.useState)({vercelToken:"",projectName:"vercel-relay"}),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(!1),[B,C]=(0,e.useState)(!1),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)([]),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)({current:0,total:0}),[L,M]=(0,e.useState)(!1),N=(0,g.i)(),O=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/proxy-pools?includeUsage=true",{cache:"no-store"}),c=await a.json();a.ok&&b(c.proxyPools||[])}catch(a){console.log("Error fetching proxy pools:",a)}finally{i(!1)}},[]),P=()=>{q(null),s(h())},Q=()=>{P(),k(!0)},R=()=>{k(!1),P()},S=async()=>{let a={name:r.name.trim(),proxyUrl:r.proxyUrl.trim(),noProxy:r.noProxy.trim(),isActive:!0===r.isActive,strictProxy:!0===r.strictProxy};if(a.name&&a.proxyUrl){y(!0);try{let b=!!p,c=await fetch(b?`/api/proxy-pools/${p.id}`:"/api/proxy-pools",{method:b?"PUT":"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)});if(c.ok)await O(),R(),N.success(p?"Proxy pool updated":"Proxy pool created");else{let a=await c.json();N.error(a.error||"Failed to save proxy pool")}}catch(a){console.log("Error saving proxy pool:",a)}finally{y(!1)}}},T=async a=>{if(confirm(`Delete proxy pool "${a.name}"?`))try{let c=await fetch(`/api/proxy-pools/${a.id}`,{method:"DELETE"});if(c.ok){b(b=>b.filter(b=>b.id!==a.id)),N.success("Proxy pool deleted");return}let d=await c.json();409===c.status?N.warning(`Cannot delete: ${d.boundConnectionCount||0} connection(s) are still using this pool.`):N.error(d.error||"Failed to delete proxy pool")}catch(a){console.log("Error deleting proxy pool:",a),N.error("Failed to delete proxy pool")}},U=async a=>{E(a);try{let b=await fetch(`/api/proxy-pools/${a}/test`,{method:"POST"}),c=await b.json();if(!b.ok)return void N.error(c.error||"Failed to test proxy");await O(),N.success(c.ok?"Proxy test passed":"Proxy test failed")}catch(a){console.log("Error testing proxy pool:",a),N.error("Failed to test proxy")}finally{E(null)}},V=async a=>{let c=!a.isActive;b(b=>b.map(b=>b.id===a.id?{...b,isActive:c}:b));try{(await fetch(`/api/proxy-pools/${a.id}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:c})})).ok||(b(b=>b.map(b=>b.id===a.id?{...b,isActive:a.isActive}:b)),N.error("Failed to update active state"))}catch(c){console.log("Error toggling active:",c),b(b=>b.map(b=>b.id===a.id?{...b,isActive:a.isActive}:b))}},W=a.length>0&&F.length===a.length,X=()=>G([]),Y=async b=>{let c=F.length>0?F:a.map(a=>a.id);if(0!==c.length){M(!0);try{let a=0,d=0;for(let e of c)try{(await fetch(`/api/proxy-pools/${e}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok?a+=1:d+=1}catch{d+=1}await O(),N.success(`${b?"Activated":"Deactivated"} ${a}${d?`, failed ${d}`:""}`)}finally{M(!1)}}},Z=async()=>{if(0!==F.length&&confirm(`Delete ${F.length} proxy pool(s)?`)){M(!0);try{let a=0,b=0,c=0;for(let d of F)try{let e=await fetch(`/api/proxy-pools/${d}`,{method:"DELETE"});e.ok?a+=1:409===e.status?b+=1:c+=1}catch{c+=1}await O(),X(),N.success(`Deleted ${a}${b?`, ${b} bound`:""}${c?`, ${c} failed`:""}`)}finally{M(!1)}}},$=async()=>{let b=F.length>0?a.filter(a=>F.includes(a.id)):a;if(0===b.length)return;I(!0),K({current:0,total:b.length});let c=0,d=[],e=0,f=[...b],g=async()=>{for(;f.length>0;){let a=f.shift();if(!a)break;try{let b=await fetch(`/api/proxy-pools/${a.id}/test`,{method:"POST"}),e=await b.json();b.ok&&e.ok?c+=1:d.push(a.id)}catch{d.push(a.id)}finally{K({current:e+=1,total:b.length})}}};if(await Promise.all(Array.from({length:Math.min(10,b.length)},g)),await O(),I(!1),K({current:0,total:0}),d.length>0&&confirm(`Alive: ${c}, Dead: ${d.length}. + +Disable ${d.length} dead proxies?`)){M(!0);try{for(let a of d)try{await fetch(`/api/proxy-pools/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:!1})})}catch{}await O(),N.success(`Disabled ${d.length} dead proxies`)}finally{M(!1)}}else N.success(`Health check done. Alive: ${c}, Dead: ${d.length}`)},_=()=>{z||m(!1)},aa=()=>{B||o(!1)},ab=async()=>{if(v.vercelToken.trim()){C(!0);try{let a=await fetch("/api/proxy-pools/vercel-deploy",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(v)}),b=await a.json();a.ok?(await O(),aa(),N.success(`Deployed: ${b.deployUrl}`)):N.error(b.error||"Deploy failed")}catch(a){console.log("Error deploying Vercel relay:",a),N.error("Deploy failed")}finally{C(!1)}}},ac=async()=>{let b=t.split(/\r?\n/).map(a=>a.trim()).filter(Boolean);if(0===b.length)return void N.warning("Please paste at least one proxy line.");let c=[],d=[];if(b.forEach((a,b)=>{try{let d=(a=>{let b=a.trim();if(!b)return null;if(b.includes("://")){let a=new URL(b),c=a.port?`${a.hostname}:${a.port}`:a.hostname;return{proxyUrl:a.toString(),name:`Imported ${c}`}}let c=b.split(":");if(4===c.length){let[a,b,d,e]=c;if(!a||!b||!d||!e)throw Error("Invalid host:port:user:pass format");return{proxyUrl:new URL(`http://${encodeURIComponent(d)}:${encodeURIComponent(e)}@${a}:${b}`).toString(),name:`Imported ${a}:${b}`}}throw Error("Unsupported format")})(a);d&&c.push({...d,lineNumber:b+1})}catch(a){d.push(`Line ${b+1}: ${a.message}`)}}),d.length>0)return void N.error(`Invalid proxy format: +${d.join("\n")}`);A(!0);try{let b=new Set(a.map(a=>`${(a.proxyUrl||"").trim()}|||${(a.noProxy||"").trim()}`)),d=0,e=0,f=0;for(let a of c){let c=`${a.proxyUrl}|||`;if(b.has(c)){e+=1;continue}(await fetch("/api/proxy-pools",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:a.name,proxyUrl:a.proxyUrl,noProxy:"",isActive:!0})})).ok?(d+=1,b.add(c)):f+=1}await O(),m(!1),N.success(`Batch import completed: Created ${d}, Skipped ${e}, Failed ${f}`)}catch(a){console.log("Error batch importing proxies:",a),N.error("Batch import failed")}finally{A(!1)}},ad=(0,e.useMemo)(()=>a.filter(a=>!0===a.isActive).length,[a]);return c?(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:gap-6 sm:px-0",children:[(0,d.jsx)(f.Qv,{}),(0,d.jsx)(f.Qv,{})]}):(0,d.jsxs)("div",{className:"mx-auto flex w-full max-w-5xl flex-col gap-4 px-1 sm:gap-6 sm:px-0",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h1",{className:"text-xl font-semibold sm:text-2xl",children:"Proxy Pools"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Manage reusable per-connection proxies and bind them to provider connections."})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"cloud_upload",onClick:()=>{w({vercelToken:"",projectName:"vercel-relay"}),o(!0)},children:"Vercel Relay"}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"upload",onClick:()=>{u(""),m(!0)},children:"Batch Import"}),(0,d.jsx)(f.$n,{size:"sm",icon:"add",onClick:Q,children:"Add Proxy Pool"})]})]}),(0,d.jsxs)(f.Zp,{children:[(0,d.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2",children:[a.length>0&&(0,d.jsxs)("label",{className:"flex items-center gap-1.5 text-xs text-text-muted cursor-pointer",children:[(0,d.jsx)("input",{type:"checkbox",checked:W,onChange:()=>G(W?[]:a.map(a=>a.id)),className:"size-4 rounded border-black/20 dark:border-white/20"}),W?"Unselect all":"Select all"]}),(0,d.jsxs)(f.Ex,{variant:"default",children:["Total: ",a.length]}),(0,d.jsxs)(f.Ex,{variant:"success",children:["Active: ",ad]})]}),(F.length>0||H)&&(0,d.jsxs)("div",{className:"mb-4 flex flex-wrap items-center gap-2 rounded-lg border border-primary/30 bg-primary/5 px-3 py-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-primary",children:"checklist"}),(0,d.jsx)("span",{className:"text-xs font-medium text-primary",children:F.length>0?`${F.length} selected`:"All pools"}),(0,d.jsxs)("div",{className:"ml-auto flex flex-wrap items-center gap-2",children:[(0,d.jsx)(f.$n,{size:"sm",icon:H?"progress_activity":"health_and_safety",onClick:$,disabled:H||L||0===a.length,children:H?`Checking ${J.current}/${J.total}`:"Health Check"}),F.length>0&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"toggle_on",onClick:()=>Y(!0),disabled:L||H,children:"Activate"}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"toggle_off",onClick:()=>Y(!1),disabled:L||H,children:"Deactivate"}),(0,d.jsx)(f.$n,{size:"sm",variant:"secondary",icon:"delete",onClick:Z,disabled:L||H,children:"Delete"}),(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",onClick:X,disabled:L||H,children:"Clear"})]})]})]}),0===a.length?(0,d.jsxs)("div",{className:"text-center py-10",children:[(0,d.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No proxy pool entries yet"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create a proxy pool entry, then assign it to connections."}),(0,d.jsx)(f.$n,{icon:"add",onClick:Q,children:"Add Proxy Pool"})]}):(0,d.jsx)("div",{className:"flex flex-col divide-y divide-black/[0.04] dark:divide-white/[0.05]",children:a.map(a=>{var b;return(0,d.jsxs)("div",{className:"flex flex-col gap-3 py-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{className:"flex items-start gap-3 min-w-0 flex-1",children:[(0,d.jsx)("input",{type:"checkbox",checked:F.includes(a.id),onChange:()=>{let b;return b=a.id,G(a=>a.includes(b)?a.filter(a=>a!==b):[...a,b])},className:"mt-1 size-4 shrink-0 rounded border-black/20 dark:border-white/20"}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("p",{className:"min-w-0 max-w-full truncate text-sm font-medium sm:max-w-[18rem]",children:a.name}),(0,d.jsx)(f.Ex,{variant:"active"===(b=a.testStatus)?"success":"error"===b?"error":"default",size:"sm",dot:!0,children:a.testStatus||"unknown"}),(0,d.jsx)(f.Ex,{variant:a.isActive?"success":"default",size:"sm",children:a.isActive?"active":"inactive"}),"vercel"===a.type&&(0,d.jsx)(f.Ex,{variant:"default",size:"sm",children:"vercel relay"}),(0,d.jsxs)(f.Ex,{variant:"default",size:"sm",children:[a.boundConnectionCount||0," bound"]})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted truncate mt-1",children:a.proxyUrl}),a.noProxy?(0,d.jsxs)("p",{className:"text-xs text-text-muted truncate",children:["No proxy: ",a.noProxy]}):null,(0,d.jsxs)("p",{className:"text-[11px] text-text-muted mt-1",children:["Last tested: ",function(a){if(!a)return"Never";let b=new Date(a);return Number.isNaN(b.getTime())?"Never":b.toLocaleString()}(a.lastTestedAt),a.lastError?` \xb7 ${a.lastError}`:""]})]})]}),(0,d.jsxs)("div",{className:"flex items-center justify-end gap-1",children:[(0,d.jsx)(f.lM,{size:"sm",checked:!0===a.isActive,onChange:()=>V(a),title:a.isActive?"Disable":"Enable"}),(0,d.jsx)("button",{onClick:()=>U(a.id),className:"p-2 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",title:"Test proxy",disabled:D===a.id,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",style:D===a.id?{animation:"spin 1s linear infinite"}:void 0,children:D===a.id?"progress_activity":"science"})}),(0,d.jsx)("button",{onClick:()=>{q(a),s(h(a)),k(!0)},className:"p-2 rounded hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary",title:"Edit",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,d.jsx)("button",{onClick:()=>T(a),className:"p-2 rounded hover:bg-red-500/10 text-red-500",title:"Delete",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},a.id)})})]}),(0,d.jsx)(f.aF,{isOpen:l,title:"Batch Import Proxies",onClose:_,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("label",{className:"text-sm font-medium text-text-main mb-1 block",children:"Paste Proxy List (One per line)"}),(0,d.jsx)("textarea",{value:t,onChange:a=>u(a.target.value),placeholder:"http://user:pass@127.0.0.1:7897\n127.0.0.1:7897:user:pass",className:"w-full min-h-[180px] py-2 px-3 text-sm text-text-main bg-white dark:bg-white/5 border border-black/10 dark:border-white/10 rounded-md focus:ring-1 focus:ring-primary/30 focus:border-primary/50 focus:outline-none transition-all"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Supported formats: protocol://user:pass@host:port, host:port:user:pass"})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,d.jsx)(f.$n,{fullWidth:!0,onClick:ac,disabled:!t.trim()||z,children:z?"Importing...":"Import"}),(0,d.jsx)(f.$n,{fullWidth:!0,variant:"ghost",onClick:_,disabled:z,children:"Cancel"})]})]})}),(0,d.jsx)(f.aF,{isOpen:n,title:"Deploy Vercel Relay",onClose:aa,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"rounded-lg bg-blue-500/5 border border-blue-500/10 p-3 flex flex-col gap-1.5",children:[(0,d.jsx)("p",{className:"text-sm text-text-main font-medium",children:"What is Vercel Relay?"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Deploys an edge relay function to Vercel. All AI provider requests will be forwarded through Vercel's edge network, masking your real IP from providers."}),(0,d.jsxs)("ul",{className:"text-xs text-text-muted list-disc pl-4 space-y-0.5",children:[(0,d.jsx)("li",{children:"Your IP is replaced by Vercel's dynamic edge IPs (hundreds of IPs across 20+ global regions)"}),(0,d.jsx)("li",{children:"Vercel serves millions of apps — providers can't block Vercel IPs without affecting legitimate traffic"}),(0,d.jsx)("li",{children:"Free tier: 100GB bandwidth/month, 500K edge invocations"}),(0,d.jsx)("li",{children:"Deploy multiple relays on different accounts for more IP diversity"})]})]}),(0,d.jsx)(f.pd,{label:"Vercel API Token",value:v.vercelToken,onChange:a=>w(b=>({...b,vercelToken:a.target.value})),placeholder:"your-vercel-api-token",hint:(0,d.jsxs)(d.Fragment,{children:["Token is used once for deployment and not stored. ",(0,d.jsx)("a",{href:"https://vercel.com/account/tokens",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"Get token →"})]}),type:"password"}),(0,d.jsx)(f.pd,{label:"Project Name",value:v.projectName,onChange:a=>w(b=>({...b,projectName:a.target.value})),placeholder:"my-relay",hint:"Unique name for your Vercel project. Leave empty for auto-generated name."}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,d.jsx)(f.$n,{fullWidth:!0,onClick:ab,disabled:!v.vercelToken.trim()||B,children:B?"Deploying... (may take ~1 min)":"Deploy"}),(0,d.jsx)(f.$n,{fullWidth:!0,variant:"ghost",onClick:aa,disabled:B,children:"Cancel"})]})]})}),(0,d.jsx)(f.aF,{isOpen:j,title:p?"Edit Proxy Pool":"Add Proxy Pool",onClose:R,children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(f.pd,{label:"Name",value:r.name,onChange:a=>s(b=>({...b,name:a.target.value})),placeholder:"Office Proxy"}),(0,d.jsx)(f.pd,{label:"Proxy URL",value:r.proxyUrl,onChange:a=>s(b=>({...b,proxyUrl:a.target.value})),placeholder:"http://127.0.0.1:7897"}),(0,d.jsx)(f.pd,{label:"No Proxy",value:r.noProxy,onChange:a=>s(b=>({...b,noProxy:a.target.value})),placeholder:"localhost,127.0.0.1,.internal",hint:"Comma-separated hosts/domains to bypass proxy"}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border/50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Active"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Inactive pools are ignored by runtime resolution."})]}),(0,d.jsx)(f.lM,{checked:!0===r.isActive,onChange:()=>s(a=>({...a,isActive:!a.isActive})),disabled:x})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-3 rounded-lg border border-border/50 p-3 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Strict Proxy"}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Fail request if proxy is unreachable instead of falling back to direct."})]}),(0,d.jsx)(f.lM,{checked:!0===r.strictProxy,onChange:()=>s(a=>({...a,strictProxy:!a.strictProxy})),disabled:x})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:grid-cols-2",children:[(0,d.jsx)(f.$n,{fullWidth:!0,onClick:S,disabled:!r.name.trim()||!r.proxyUrl.trim()||x,children:x?"Saving...":"Save"}),(0,d.jsx)(f.$n,{fullWidth:!0,variant:"ghost",onClick:R,disabled:x,children:"Cancel"})]})]})})]})}},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=12131));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js new file mode 100644 index 00000000000..a75215023fb --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/proxy-pools/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/proxy-pools/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","6812","static/chunks/app/(dashboard)/dashboard/proxy-pools/page-a38a16ee9a757333.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/quota/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/quota/page.js new file mode 100644 index 00000000000..b9a698fd4c0 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/quota/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=3826,a.ids=[3826],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1311:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["quota",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,43092)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/quota/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/quota/page",pathname:"/dashboard/quota",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/quota/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43092:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(22037),e=c(64176),f=c(59062),g=c(67235);function h(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(f.CardSkeleton,{}),children:(0,d.jsx)(g.default,{})})}},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57783:(a,b,c)=>{"use strict";c.d(b,{default:()=>o});var d=c(26835),e=c(53830),f=c(66298),g=c(87693);function h(a,b){return b&&0!==b?!a||a<0?100:a>=b?0:Math.round((b-a)/b*100):0}function i({quotas:a=[],compact:b=!1}){if(!a||0===a.length)return null;let c=b?"py-1 px-1.5":"py-2 px-3",e=b?"text-[11px]":"text-sm",f=b?"text-[11px]":"text-sm",g=b?"text-[10px] leading-tight":"text-xs";return(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsx)("table",{className:"w-full table-fixed text-left",children:(0,d.jsx)("tbody",{children:a.map((a,i)=>{let j=void 0!==a.remainingPercentage?Math.round(a.remainingPercentage):h(a.used,a.total),k=j>70?{text:"text-green-600 dark:text-green-400",bg:"bg-green-500",bgLight:"bg-green-500/10",emoji:"\uD83D\uDFE2"}:j>=30?{text:"text-yellow-600 dark:text-yellow-400",bg:"bg-yellow-500",bgLight:"bg-yellow-500/10",emoji:"\uD83D\uDFE1"}:{text:"text-red-600 dark:text-red-400",bg:"bg-red-500",bgLight:"bg-red-500/10",emoji:"\uD83D\uDD34"},l=function(a){if(!a)return"-";try{let b="string"==typeof a?new Date(a):a,c=new Date,d=b-c;if(d<=0)return"-";let e=Math.ceil(d/6e4);if(e<60)return`${e}m`;let f=Math.floor(e/60),g=e%60;if(f<24)return`${f}h ${g}m`;let h=Math.floor(f/24);return`${h}d ${f%24}h ${g}m`}catch(a){return"-"}}(a.resetAt),m=function(a){if(!a)return null;try{let b=new Date(a),c=new Date,d=new Date(c.getFullYear(),c.getMonth(),c.getDate()),e=new Date(d);e.setDate(e.getDate()+1);let f="";f=b>=d&&b=e&&b0?a.total.toLocaleString():"∞"]}),(0,d.jsxs)("span",{className:`font-medium ${k.text}`,children:[j,"%"]})]})]})}),(0,d.jsx)("td",{className:`${c} w-[25%]`,children:"-"!==l||m?b?(0,d.jsx)("div",{className:`${f} text-text-primary font-medium truncate`,title:m||"",children:"-"!==l?`in ${l}`:m}):(0,d.jsxs)("div",{className:"space-y-0.5",children:["-"!==l&&(0,d.jsxs)("div",{className:`${f} text-text-primary font-medium`,children:["in ",l]}),m&&(0,d.jsx)("div",{className:`${g} text-text-muted`,children:m})]}):(0,d.jsx)("div",{className:`${f} text-text-muted italic`,children:"N/A"})})]},i)})})})})}var j=c(37922),k=c(75012),l=c(50450),m=c(30207);let n=a=>m.wb.includes(a.provider)&&("oauth"===a.authType||m.jO.includes(a.provider));function o(){let[a,b]=(0,e.useState)([]),[c,o]=(0,e.useState)({}),[p,q]=(0,e.useState)({}),[r,s]=(0,e.useState)({}),[t,u]=(0,e.useState)(()=>!0),[v,w]=(0,e.useState)(null),[x,y]=(0,e.useState)(!1),[z,A]=(0,e.useState)(60),[B,C]=(0,e.useState)(!0),[D,E]=(0,e.useState)(null),[F,G]=(0,e.useState)(null),[H,I]=(0,e.useState)(!1),[J,K]=(0,e.useState)(null),[L,M]=(0,e.useState)([]),[N,O]=(0,e.useState)("all"),[P,Q]=(0,e.useState)(!1),[R,S]=(0,e.useState)(!1),[T,U]=(0,e.useState)(!1);(0,e.useRef)(null),(0,e.useRef)(null);let V=(0,e.useCallback)(async()=>{try{let a=await fetch("/api/providers/client");if(!a.ok)throw Error("Failed to fetch connections");let c=(await a.json()).connections||[];return b(c),c}catch(a){return console.error("Error fetching connections:",a),b([]),[]}},[]),W=(0,e.useCallback)(async(a,b)=>{q(b=>({...b,[a]:!0})),s(b=>({...b,[a]:null}));try{console.log(`[ProviderLimits] Fetching quota for ${b} (${a})`);let c=await fetch(`/api/usage/${a}`);if(!c.ok){let d=(await c.json().catch(()=>({}))).error||c.statusText;if(404===c.status)return void console.warn(`[ProviderLimits] Connection not found for ${b}, skipping`);if(401===c.status){console.warn(`[ProviderLimits] Auth error for ${b}:`,d),o(b=>({...b,[a]:{quotas:[],message:d}}));return}throw Error(`HTTP ${c.status}: ${d}`)}let d=await c.json();console.log(`[ProviderLimits] Got quota for ${b}:`,d);let e=function(a,b){if(!b||"object"!=typeof b)return[];let c=[];try{switch(a.toLowerCase()){case"github":default:b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"antigravity":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:b.displayName||a,modelKey:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null,remainingPercentage:b.remainingPercentage})});break;case"codex":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"kiro":b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})});break;case"claude":b.message?c.push({name:"error",used:0,total:0,resetAt:null,message:b.message}):b.quotas&&Object.entries(b.quotas).forEach(([a,b])=>{c.push({name:a,used:b.used||0,total:b.total||0,resetAt:b.resetAt||null})})}}catch(b){return console.error(`Error parsing quota data for ${a}:`,b),[]}let d=(0,g.KC)(a);if(d.length>0){let a=new Map(d.map((a,b)=>[a.id,b]));c.sort((b,c)=>{let d=b.modelKey||b.name,e=c.modelKey||c.name;return(a.get(d)??999)-(a.get(e)??999)})}return c}(b,d);o(b=>({...b,[a]:{quotas:e,plan:d.plan||null,message:d.message||null,raw:d}}))}catch(c){console.error(`[ProviderLimits] Error fetching quota for ${b} (${a}):`,c),s(b=>({...b,[a]:c.message||"Failed to fetch quota"}))}finally{q(b=>({...b,[a]:!1}))}},[]),X=(0,e.useCallback)(async(a,b)=>{await W(a,b),w(new Date)},[W]),Y=(0,e.useCallback)(async a=>{if(confirm("Delete this connection?")){E(a);try{(await fetch(`/api/providers/${a}`,{method:"DELETE"})).ok&&(b(b=>b.filter(b=>b.id!==a)),o(b=>{let c={...b};return delete c[a],c}),q(b=>{let c={...b};return delete c[a],c}),s(b=>{let c={...b};return delete c[a],c}))}catch(a){console.error("Error deleting connection:",a)}finally{E(null)}}},[]),Z=(0,e.useCallback)(async(a,c)=>{G(a);try{(await fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:c})})).ok&&b(b=>b.map(b=>b.id===a?{...b,isActive:c}:b))}catch(a){console.error("Error updating connection status:",a)}finally{G(null)}},[]),$=(0,e.useCallback)(async a=>{if(!J?.id)return;let b=J.id,c=J.provider;try{(await fetch(`/api/providers/${b}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})).ok&&(await V(),I(!1),K(null),m.wb.includes(c)&&await W(b,c))}catch(a){console.error("Error saving connection:",a)}},[J,V,W]),_=(0,e.useCallback)(async()=>{if(!x){y(!0),A(60);try{let a=(await V()).filter(n);await Promise.all(a.map(a=>W(a.id,a.provider))),w(new Date)}catch(a){console.error("Error refreshing all providers:",a)}finally{y(!1)}}},[x,V,W]),aa=a.filter(n),ab=aa.filter(a=>"all"===N||a.provider===N),ac=a=>{let b=(c[a.id]?.quotas||[]).map(a=>a.resetAt?new Date(a.resetAt).getTime():1/0).filter(a=>Number.isFinite(a));return b.length>0?Math.min(...b):1/0},ad=[...ab].sort((a,b)=>{if(P){let c=ac(a)-ac(b);if(0!==c)return c}let c=m.wb.indexOf(a.provider),d=m.wb.indexOf(b.provider);return c!==d?c-d:a.provider.localeCompare(b.provider)}),ae=a=>{let b=c[a.id]?.quotas;return!!b?.length&&b.some(a=>!!a.total&&!(a.total<=0)&&5>=h(a.used,a.total))},af=(0,e.useCallback)(async(a,c)=>{if(a.length&&!T){U(!0);try{await Promise.all(a.map(a=>fetch(`/api/providers/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:c})}))),b(b=>b.map(b=>a.includes(b.id)?{...b,isActive:c}:b))}catch(a){console.error("Error bulk toggling connections:",a)}finally{U(!1)}}},[T]),ag=Array.from(new Set(aa.map(a=>a.provider))).sort(),ah="all"===N?"All providers":N;return(ad.length,Object.values(c).filter(a=>a?.quotas?.length>0).length,Object.values(c).reduce((a,b)=>b?.quotas?a+ +!!b.quotas.some(a=>30>h(a.used,a.total)&&a.total>0):a,0),B||0!==ad.length)?(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-4 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)("div",{className:"flex flex-col gap-1 sm:flex-row sm:items-center sm:gap-3",children:(0,d.jsx)("h2",{className:"text-xl font-semibold text-text-primary",children:"Provider Limits"})}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center gap-1.5",children:[(0,d.jsxs)("div",{className:"relative",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>S(a=>!a),className:"flex h-8 items-center justify-between gap-1 rounded-lg border border-black/10 bg-black/[0.02] px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:bg-white/[0.03] dark:hover:bg-white/10","aria-haspopup":"menu","aria-expanded":R,title:"Filter quota providers",children:[(0,d.jsxs)("span",{className:"flex min-w-0 items-center gap-1.5",children:["all"===N?(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"apps"}):(0,d.jsx)(f.A,{src:`/providers/${N}.png`,alt:N,size:18,className:"size-[18px] rounded object-contain",fallbackText:N.slice(0,2).toUpperCase()}),(0,d.jsx)("span",{className:"truncate capitalize hidden lg:inline",children:ah})]}),(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted",children:"expand_more"})]}),R&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("button",{type:"button",className:"fixed inset-0 z-30 bg-transparent","aria-label":"Close provider filter",onClick:()=>S(!1)}),(0,d.jsxs)("div",{className:"absolute left-0 z-40 mt-2 w-64 overflow-hidden rounded-2xl border border-black/10 bg-surface/95 p-1.5 shadow-xl shadow-black/10 backdrop-blur dark:border-white/10 dark:bg-surface/95 sm:w-72",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>{O("all"),S(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${"all"===N?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[22px]",children:"apps"}),(0,d.jsx)("span",{className:"font-medium",children:"All providers"}),"all"===N&&(0,d.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]}),(0,d.jsx)("div",{className:"my-1 h-px bg-black/10 dark:bg-white/10"}),(0,d.jsx)("div",{className:"max-h-72 overflow-y-auto pr-1",children:ag.map(a=>(0,d.jsxs)("button",{type:"button",onClick:()=>{O(a),S(!1)},className:`flex w-full items-center gap-3 rounded-xl px-3 py-2.5 text-left text-sm transition-colors ${N===a?"bg-primary/10 text-primary":"text-text-primary hover:bg-black/5 dark:hover:bg-white/10"}`,children:[(0,d.jsx)(f.A,{src:`/providers/${a}.png`,alt:a,size:24,className:"size-6 rounded-md object-contain",fallbackText:a.slice(0,2).toUpperCase()}),(0,d.jsx)("span",{className:"font-medium capitalize",children:a}),N===a&&(0,d.jsx)("span",{className:"material-symbols-outlined ml-auto text-[20px]",children:"check"})]},a))})]})]})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>Q(a=>!a),className:`flex h-8 shrink-0 items-center gap-1 rounded-lg border px-2 text-xs transition-colors ${P?"border-amber-500/40 bg-amber-500/10 text-amber-500":"border-black/10 text-text-primary hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5"}`,title:"Sort accounts by earliest quota reset time",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"hourglass_top"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Expiring first"})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{af(ad.filter(a=>(a.isActive??!0)&&ae(a)).map(a=>a.id),!1)},disabled:T,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-red-500/30 px-2 text-xs text-red-500 transition-colors hover:bg-red-500/10 disabled:opacity-50",title:"Disable connections with depleted quota (within current filter)",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"block"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Turn off Empty"})]}),(0,d.jsxs)("button",{type:"button",onClick:()=>{af(ad.filter(a=>!(a.isActive??!0)&&!ae(a)).map(a=>a.id),!0)},disabled:T,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-emerald-500/30 px-2 text-xs text-emerald-500 transition-colors hover:bg-emerald-500/10 disabled:opacity-50",title:"Enable connections that still have quota (within current filter)",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"check_circle"}),(0,d.jsx)("span",{className:"hidden sm:inline",children:"Turn on Available"})]}),(0,d.jsxs)("button",{onClick:()=>u(a=>!a),className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5",title:t?"Disable auto-refresh":"Enable auto-refresh",children:[(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px] ${t?"text-primary":"text-text-muted"}`,children:t?"toggle_on":"toggle_off"}),(0,d.jsx)("span",{className:"hidden text-text-primary sm:inline",children:"Auto-refresh"}),t&&(0,d.jsxs)("span",{className:"text-[10px] text-text-muted tabular-nums",children:["(",z,"s)"]})]}),(0,d.jsx)("button",{type:"button",onClick:_,disabled:x,className:"flex h-8 shrink-0 items-center gap-1 rounded-lg border border-black/10 px-2 text-xs text-text-primary transition-colors hover:bg-black/5 dark:border-white/10 dark:hover:bg-white/5 disabled:opacity-50",title:"Refresh all",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[14px] ${x?"animate-spin":""}`,children:"refresh"})})]})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 md:grid-cols-2 gap-3",children:ad.map(a=>{let b,e,g=c[a.id],h=p[a.id],l=r[a.id],m=!1===a.isActive,n=D===a.id||F===a.id;return(0,d.jsxs)(k.default,{padding:"none",className:`min-w-0 ${m?"opacity-60":""}`,children:[(0,d.jsx)("div",{className:"px-3 py-2 border-b border-black/10 dark:border-white/10",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 min-w-0",children:[(0,d.jsx)("div",{className:"w-8 h-8 shrink-0 rounded-md flex items-center justify-center overflow-hidden",children:(0,d.jsx)(f.A,{src:`/providers/${a.provider}.png`,alt:a.provider,size:32,className:"object-contain",fallbackText:a.provider?.slice(0,2).toUpperCase()||"PR"})}),(0,d.jsxs)("div",{className:"min-w-0",children:[(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-primary capitalize truncate",children:a.provider}),(e=(b=a=>"string"==typeof a&&/^[^\s@]+@[^\s@]+\.[^\s@]+$/.test(a))(a.email)?a.email:(b(a.name),a.name))?(0,d.jsx)("p",{className:"text-xs text-text-muted truncate",children:e}):null]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,d.jsx)("button",{type:"button",onClick:()=>X(a.id,a.provider),disabled:h||n,className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 transition-colors disabled:opacity-50",title:"Refresh quota",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] text-text-muted ${h?"animate-spin":""}`,children:"refresh"})}),(0,d.jsx)("button",{type:"button",onClick:()=>{K(a),I(!0)},disabled:n,className:"p-1.5 rounded-lg hover:bg-black/5 dark:hover:bg-white/5 text-text-muted hover:text-primary transition-colors disabled:opacity-50",title:"Edit connection",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"edit"})}),(0,d.jsx)("button",{type:"button",onClick:()=>Y(a.id),disabled:n,className:"p-1.5 rounded-lg hover:bg-red-500/10 text-red-500 transition-colors disabled:opacity-50",title:"Delete connection",children:(0,d.jsx)("span",{className:`material-symbols-outlined text-[18px] ${D===a.id?"animate-pulse":""}`,children:"delete"})}),(0,d.jsx)("div",{className:"inline-flex items-center pl-0.5",title:a.isActive??!0?"Disable connection":"Enable connection",children:(0,d.jsx)(j.default,{size:"sm",checked:a.isActive??!0,disabled:n,onChange:b=>Z(a.id,b)})})]})]})}),(0,d.jsx)("div",{className:"px-2 py-1.5",children:h?(0,d.jsx)("div",{className:"text-center py-5 text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] animate-spin",children:"progress_activity"})}):l?(0,d.jsxs)("div",{className:"text-center py-5",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[28px] text-red-500",children:"error"}),(0,d.jsx)("p",{className:"mt-1.5 text-xs text-text-muted",children:l})]}):g?.message?(0,d.jsx)("div",{className:"text-center py-5",children:(0,d.jsx)("p",{className:"text-xs text-text-muted",children:g.message})}):(0,d.jsx)(i,{quotas:g?.quotas,compact:!0})})]},a.id)})}),(0,d.jsx)(l.wI,{isOpen:H,connection:J,proxyPools:L,onSave:$,onClose:()=>{I(!1),K(null)}})]}):(0,d.jsx)(k.default,{padding:"lg",children:(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[64px] text-text-muted opacity-20",children:"cloud_off"}),(0,d.jsx)("h3",{className:"mt-4 text-lg font-semibold text-text-primary",children:"No Providers Connected"}),(0,d.jsx)("p",{className:"mt-2 text-sm text-text-muted max-w-md mx-auto",children:"Connect to providers with OAuth to track your API quota limits and usage."})]})})}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},67235:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js","default")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},83224:(a,b,c)=>{Promise.resolve().then(c.bind(c,67235)),Promise.resolve().then(c.bind(c,59062))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},92952:(a,b,c)=>{Promise.resolve().then(c.bind(c,57783)),Promise.resolve().then(c.bind(c,11892))},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=1311));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json new file mode 100644 index 00000000000..09cf195d62f --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/quota/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js new file mode 100644 index 00000000000..171a6c96643 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/quota/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/quota/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/quota/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/skills/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/skills/page.js new file mode 100644 index 00000000000..6d8b4b7bc11 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/skills/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=9516,a.ids=[9516],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1304:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js","default")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},19175:(a,b,c)=>{Promise.resolve().then(c.bind(c,38298))},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},38298:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>q});var d=c(26835),e=c(50450),f=c(93617);let g="decolua/9router",h="master",i="skills",j=`https://github.com/${g}`,k=`https://raw.githubusercontent.com/${g}/refs/heads/${h}/${i}`,l=`https://github.com/${g}/blob/${h}/${i}`,m=[{id:"9router",name:"9Router (Entry)",description:"Setup + index of all capabilities. Start here — covers base URL, auth, model discovery, and links to every capability skill.",endpoint:null,icon:"hub",isEntry:!0},{id:"9router-chat",name:"Chat",description:"Chat / code-gen via OpenAI or Anthropic format with streaming.",endpoint:"/v1/chat/completions",icon:"chat"},{id:"9router-image",name:"Image Generation",description:"Text-to-image via DALL-E, Imagen, FLUX, MiniMax, SDWebUI…",endpoint:"/v1/images/generations",icon:"image"},{id:"9router-tts",name:"Text-to-Speech",description:"OpenAI / ElevenLabs / Edge / Google / Deepgram voices.",endpoint:"/v1/audio/speech",icon:"record_voice_over"},{id:"9router-stt",name:"Speech-to-Text",description:"Transcribe audio via OpenAI Whisper, Groq, Gemini, Deepgram, AssemblyAI…",endpoint:"/v1/audio/transcriptions",icon:"mic"},{id:"9router-embeddings",name:"Embeddings",description:"Vectors for RAG / semantic search via OpenAI, Gemini, Mistral…",endpoint:"/v1/embeddings",icon:"scatter_plot"},{id:"9router-web-search",name:"Web Search",description:"Tavily / Exa / Brave / Serper / SearXNG / Google PSE / You.com.",endpoint:"/v1/search",icon:"search"},{id:"9router-web-fetch",name:"Web Fetch",description:"URL → markdown / text / HTML via Firecrawl, Jina, Tavily, Exa.",endpoint:"/v1/web/fetch",icon:"language"}];function n(a){return`${k}/${a}/SKILL.md`}function o({value:a,label:b="Copy link"}){let{copied:c,copy:e}=(0,f.C)(2e3);return(0,d.jsxs)("button",{onClick:()=>e(a),className:"px-2 py-1 rounded-md bg-primary text-white text-[11px] font-medium hover:bg-primary/90 transition-colors cursor-pointer shrink-0 inline-flex items-center gap-1",title:a,children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:c?"check":"content_copy"}),c?"Copied!":b]})}function p({skill:a}){var b;let c=n(a.id);return(0,d.jsxs)("div",{className:`flex items-start gap-3 p-4 rounded-[14px] border shadow-[var(--shadow-soft)] transition-colors ${a.isEntry?"border-brand-500/40 bg-brand-500/5":"border-border-subtle bg-surface hover:bg-surface-2"}`,children:[(0,d.jsx)("div",{className:`size-9 rounded-lg flex items-center justify-center shrink-0 ${a.isEntry?"bg-primary text-white":"bg-primary/10 text-primary"}`,children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:a.icon})}),(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap",children:[(0,d.jsx)("h3",{className:"font-semibold text-sm text-text-main",children:a.name}),a.isEntry&&(0,d.jsx)(e.Ex,{variant:"primary",size:"sm",children:"START HERE"}),a.endpoint&&(0,d.jsx)(e.Ex,{variant:"default",size:"sm",children:(0,d.jsx)("code",{className:"text-[10px]",children:a.endpoint})})]}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:a.description}),(0,d.jsxs)("a",{href:(b=a.id,`${l}/${b}/SKILL.md`),target:"_blank",rel:"noreferrer",className:"text-[11px] text-text-muted hover:text-primary mt-1 inline-flex items-center gap-1 break-all",children:[c,(0,d.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"open_in_new"})]})]}),(0,d.jsx)(o,{value:c})]})}function q(){return(0,d.jsxs)("div",{className:"max-w-4xl mx-auto space-y-6",children:[(0,d.jsxs)(e.Zp,{padding:"md",children:[(0,d.jsx)("div",{className:"text-xs text-text-muted mb-2",children:"Paste this to your AI:"}),(0,d.jsxs)("div",{className:"px-3 py-2 rounded bg-surface-2 font-mono text-[12px] text-text-main",children:["Read this skill and use it: ",n("9router")]})]}),(0,d.jsx)("div",{className:"space-y-2",children:m.map(a=>(0,d.jsx)(p,{skill:a},a.id))}),(0,d.jsx)(e.Zp,{padding:"md",children:(0,d.jsxs)("div",{className:"flex items-center justify-between gap-3 flex-wrap",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h2",{className:"text-sm font-semibold text-text-main",children:"More on GitHub"}),(0,d.jsx)("p",{className:"text-xs text-text-muted mt-0.5",children:"Browse source, README, and examples."})]}),(0,d.jsxs)("a",{href:`${j}/tree/master/skills`,target:"_blank",rel:"noreferrer",className:"text-sm text-primary hover:underline inline-flex items-center gap-1",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"open_in_new"}),"View on GitHub"]})]})})]})}},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},59343:(a,b,c)=>{Promise.resolve().then(c.bind(c,1304))},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},93001:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["skills",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,1304)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/skills/page",pathname:"/dashboard/skills",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/skills/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=93001));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/skills/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js new file mode 100644 index 00000000000..c95848b515b --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/skills/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/skills/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9516","static/chunks/app/(dashboard)/dashboard/skills/page-58f11e8a5a8f3810.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/translator/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/translator/page.js new file mode 100644 index 00000000000..86e0310f974 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/translator/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=3528,a.ids=[3528],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11207:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return j}});let d=c(26835),e=c(53830),f=c(65160),g=c(76685);function h(a){return{default:a&&"default"in a?a.default:a}}let i={loader:()=>Promise.resolve(h(()=>null)),loading:null,ssr:!0},j=function(a){let b={...i,...a},c=(0,e.lazy)(()=>b.loader().then(h)),j=b.loading;function k(a){let h=j?(0,d.jsx)(j,{isLoading:!0,pastDelay:!0,error:null}):null,i=!b.ssr||!!b.loading,k=i?e.Suspense:e.Fragment,l=b.ssr?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(g.PreloadChunks,{moduleIds:b.modules}),(0,d.jsx)(c,{...a})]}):(0,d.jsx)(f.BailoutToCSR,{reason:"next/dynamic",children:(0,d.jsx)(c,{...a})});return(0,d.jsx)(k,{...i?{fallback:h}:{},children:l})}return k.displayName="LoadableComponent",k}},12412:a=>{"use strict";a.exports=require("assert")},14293:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["translator",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,38768)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/translator/page",pathname:"/dashboard/translator",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/translator/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},22191:(a,b,c)=>{Promise.resolve().then(c.bind(c,38768))},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30439:(a,b,c)=>{Promise.resolve().then(c.bind(c,46041))},33873:a=>{"use strict";a.exports=require("path")},36999:(a,b)=>{"use strict";function c(a){return a.split("/").map(a=>encodeURIComponent(a)).join("/")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"encodeURIPath",{enumerable:!0,get:function(){return c}})},38768:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js","default")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},46041:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>l});var d=c(26835),e=c(53830),f=c(50450),g=c(93617),h=c(47151);let i=c.n(h)()(async()=>{},{loadableGenerated:{modules:["app/(dashboard)/dashboard/translator/page.js -> @monaco-editor/react"]},ssr:!1}),j=[{id:1,label:"Client Request",file:"1_req_client.json",lang:"json",desc:"Raw request from client"},{id:2,label:"Source Body",file:"2_req_source.json",lang:"json",desc:"After initial conversion"},{id:3,label:"OpenAI Intermediate",file:"3_req_openai.json",lang:"json",desc:"source → openai"},{id:4,label:"Target Request",file:"4_req_target.json",lang:"json",desc:"openai → target + URL + headers"},{id:5,label:"Provider Response",file:"5_res_provider.txt",lang:"text",desc:"Raw SSE from provider"},{id:6,label:"OpenAI Response",file:"6_res_openai.txt",lang:"text",desc:"target → openai (response)"},{id:7,label:"Client Response",file:"7_res_client.txt",lang:"text",desc:"Final response to client"}],k={minimap:{enabled:!1},fontSize:12,lineNumbers:"on",scrollBeyondLastLine:!1,wordWrap:"on",automaticLayout:!0};function l(){let[a,b]=(0,e.useState)({}),[c,h]=(0,e.useState)({1:!0}),[l,n]=(0,e.useState)({}),[o,p]=(0,e.useState)(null),q=(a,b)=>n(c=>({...c,[a]:b})),r=(a,c)=>b(b=>({...b,[a]:c})),s=a=>h(b=>{let c={};return j.forEach(a=>{c[a.id]=!1}),c[a]=!0,c}),t=async a=>{let b=j.find(b=>b.id===a);q(`load-${a}`,!0);try{let c=await fetch(`/api/translator/load?file=${b.file}`),d=await c.json();d.success?(r(a,d.content),1===a&&await u(d.content)):alert(d.error||"File not found")}catch(a){alert(a.message)}q(`load-${a}`,!1)},u=async a=>{try{let b="string"==typeof a?JSON.parse(a):a,c=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:1,body:b})}),d=await c.json();d.success&&p(d.result)}catch{}},v=(a,b)=>fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:a,content:b})}).catch(()=>{}),w=async()=>{q("toOpenAI",!0);try{let b=a[1],c=JSON.parse(b);v("1_req_client.json",b),v("2_req_source.json",JSON.stringify({timestamp:new Date().toISOString(),headers:{},body:c.body||c},null,2));let d=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:2,body:c})}),e=await d.json();if(!e.success)return void alert(e.error);let f=JSON.stringify(e.result.body,null,2);r(3,f),s(3)}catch(a){alert(a.message)}q("toOpenAI",!1)},x=async()=>{q("toTarget",!0);try{let b=a[3],c=JSON.parse(b);v("3_req_openai.json",b);let d=await fetch("/api/translator/translate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({step:3,body:{...c,provider:o?.provider,model:o?.model}})}),e=await d.json();if(!e.success)return void alert(e.error);let f={...e.result,provider:o?.provider,model:o?.model};r(4,JSON.stringify(f,null,2)),s(4)}catch(a){alert(a.message)}q("toTarget",!1)},y=async()=>{q("send",!0);try{let b=a[4],c=JSON.parse(b);v("4_req_target.json",b);let d=c.provider||o?.provider,e=c.model||o?.model;if(!d||!e)return void alert("Missing provider or model. Please run step 1 first to detect them.");let f=await fetch("/api/translator/send",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:d,model:e,body:c.body||c})});if(!f.ok){let a=await f.json().catch(()=>({error:f.statusText}));alert(a.error||"Send failed");return}let g=f.body.getReader(),h=new TextDecoder,i="";for(;;){let{done:a,value:b}=await g.read();if(a)break;i+=h.decode(b,{stream:!0})}r(5,i),s(5),await fetch("/api/translator/save",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({file:"5_res_provider.txt",content:i})})}catch(a){alert(a.message)}finally{q("send",!1)}},{copy:z}=(0,g.C)(),A=async b=>{a[b]&&z(a[b],`translator-step-${b}`)};return(0,d.jsxs)("div",{className:"p-8 space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-2xl font-bold text-text-main",children:"Translator Debug"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mt-1",children:"Replay request flow — matches log files"})]}),o&&(0,d.jsxs)("div",{className:"flex items-center gap-2 flex-wrap justify-end",children:[(0,d.jsx)(m,{label:"src",value:o.sourceFormat,color:"blue"}),(0,d.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px]",children:"arrow_forward"}),(0,d.jsx)(m,{label:"dst",value:o.targetFormat,color:"orange"}),(0,d.jsx)(m,{label:"provider",value:o.provider,color:"green"}),(0,d.jsx)(m,{label:"model",value:o.model,color:"purple"})]})]}),j.map(b=>{var e;let g=1===(e=b.id)?(0,d.jsx)(f.$n,{size:"sm",icon:"arrow_forward",loading:l.toOpenAI,onClick:w,children:"→ OpenAI"}):3===e?(0,d.jsx)(f.$n,{size:"sm",icon:"arrow_forward",loading:l.toTarget,onClick:x,children:"→ Target"}):4===e?(0,d.jsx)(f.$n,{size:"sm",icon:"send",loading:l.send,onClick:y,children:"Send"}):null,j=!!c[b.id],m=a[b.id]||"";return(0,d.jsx)(f.Zp,{children:(0,d.jsxs)("div",{className:"p-4 space-y-3",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("button",{onClick:()=>{let a;return a=b.id,h(b=>({...b,[a]:!b[a]}))},className:"flex items-center gap-2 flex-1 text-left group",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px] text-text-muted group-hover:text-primary transition-colors",children:j?"expand_more":"chevron_right"}),(0,d.jsx)("span",{className:"text-xs font-mono text-text-muted/60 w-4",children:b.id}),(0,d.jsx)("h3",{className:"text-sm font-semibold text-text-main",children:b.label}),(0,d.jsx)("span",{className:"text-xs text-text-muted/60 font-mono",children:b.file}),m&&(0,d.jsxs)("span",{className:"text-xs text-green-500",children:["(",m.length," chars)"]})]}),!j&&(0,d.jsxs)("div",{className:"flex gap-1 shrink-0",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"ghost",icon:"folder_open",loading:l[`load-${b.id}`],onClick:()=>t(b.id)}),g]})]}),j&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"border border-border rounded-lg overflow-hidden",children:(0,d.jsx)(i,{height:"400px",defaultLanguage:"text"===b.lang?"plaintext":"json",value:m,onChange:a=>{r(b.id,a||""),1===b.id&&u(a||"")},theme:"vs-dark",options:k})}),(0,d.jsxs)("div",{className:"flex gap-2 flex-wrap",children:[(0,d.jsx)(f.$n,{size:"sm",variant:"outline",icon:"folder_open",loading:l[`load-${b.id}`],onClick:()=>t(b.id),children:"Load"}),(0,d.jsx)(f.$n,{size:"sm",variant:"outline",icon:"data_object",onClick:()=>(b=>{try{let c=JSON.parse(a[b]);r(b,JSON.stringify(c,null,2))}catch{}})(b.id),children:"Format"}),(0,d.jsx)(f.$n,{size:"sm",variant:"outline",icon:"content_copy",onClick:()=>A(b.id),children:"Copy"}),g]})]})]})},b.id)})]})}function m({label:a,value:b,color:c}){return(0,d.jsxs)("span",{className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs font-mono ${{blue:"bg-blue-500/10 text-blue-500",orange:"bg-orange-500/10 text-orange-500",green:"bg-green-500/10 text-green-500",purple:"bg-purple-500/10 text-purple-500"}[c]}`,children:[(0,d.jsxs)("span",{className:"text-text-muted/70 font-sans text-[10px]",children:[a,":"]}),b]})}},47151:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return e}});let d=c(25913)._(c(11207));function e(a,b){let c={};"function"==typeof a&&(c.loader=a);let e={...c,...b};return(0,d.default)({...e,modules:e.loadableGenerated?.modules})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65160:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"BailoutToCSR",{enumerable:!0,get:function(){return e}});let d=c(46948);function e({reason:a,children:b}){throw Object.defineProperty(new d.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76685:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"PreloadChunks",{enumerable:!0,get:function(){return i}});let d=c(26835),e=c(73755),f=c(29294),g=c(36999),h=c(27747);function i({moduleIds:a}){let b=f.workAsyncStorage.getStore();if(void 0===b)return null;let c=[];if(b.reactLoadableManifest&&a){let d=b.reactLoadableManifest;for(let b of a){if(!d[b])continue;let a=d[b].files;c.push(...a)}}if(0===c.length)return null;let j=(0,h.getAssetTokenQuery)();return(0,d.jsx)(d.Fragment,{children:c.map(a=>{let c=`${b.assetPrefix}/_next/${(0,g.encodeURIPath)(a)}${j}`;return a.endsWith(".css")?(0,d.jsx)("link",{precedence:"dynamic",href:c,rel:"stylesheet",as:"style",nonce:b.nonce},a):((0,e.preload)(c,{as:"script",fetchPriority:"low",nonce:b.nonce}),null)})})}},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=14293));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/translator/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js new file mode 100644 index 00000000000..55aaddaebcd --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/translator/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/translator/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3528","static/chunks/app/(dashboard)/dashboard/translator/page-f87aca0195ce41ad.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/usage/page.js b/cli/app/.next/server/app/(dashboard)/dashboard/usage/page.js new file mode 100644 index 00000000000..538e7a636d4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/usage/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=2825,a.ids=[2825],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2134:(a,b,c)=>{Promise.resolve().then(c.bind(c,68657))},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6035:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["(dashboard)",{children:["dashboard",{children:["usage",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,16865)),"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,97934)),"/Users/Working/router4/app/src/app/(dashboard)/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/(dashboard)/dashboard/usage/page",pathname:"/dashboard/usage",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/(dashboard)/dashboard/usage/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},16865:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js","default")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39086:(a,b,c)=>{Promise.resolve().then(c.bind(c,16865))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68657:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>v});var d=c(26835),e=c(53830),f=c(28217),g=c(50450),h=c(75012),i=c(55590),j=c(71940);function k({isOpen:a,onClose:b,title:c,children:e,width:f="md",className:g}){let h={sm:"w-[400px]",md:"w-[500px]",lg:"w-[600px]",xl:"w-[800px]",full:"w-full"};return a?(0,d.jsxs)("div",{className:"fixed inset-0 z-50",children:[(0,d.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in cursor-pointer",onClick:b,"aria-hidden":"true"}),(0,d.jsxs)("div",{className:(0,j.cn)("absolute right-0 top-0 h-full bg-surface flex flex-col","shadow-[var(--shadow-elev)]","slide-in-right","border-l border-border-subtle",h[f]||h.md,g),children:[(0,d.jsxs)("div",{className:"flex items-center justify-between p-6 border-b border-border-subtle flex-shrink-0",children:[(0,d.jsx)("div",{className:"flex items-center gap-3",children:c&&(0,d.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:c})}),(0,d.jsx)("button",{type:"button",onClick:b,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,d.jsx)("div",{className:"flex-1 overflow-y-auto p-6 custom-scrollbar",children:e})]})]}):null}function l({currentPage:a,pageSize:b,totalItems:c,onPageChange:e,onPageSizeChange:f,className:g}){let h=Math.ceil(c/b),k=c>0?(a-1)*b+1:0,m=Math.min(a*b,c),n=(()=>{let b=[],c=Math.max(1,a-2),d=Math.min(h,c+5-1);d-c+1<5&&(c=Math.max(1,d-5+1));for(let a=c;a<=d;a++)b.push(a);return b})();return(0,d.jsxs)("div",{className:(0,j.cn)("flex flex-col sm:flex-row items-center justify-between gap-4 py-4",g),children:[c>0&&(0,d.jsxs)("div",{className:"text-sm text-text-muted",children:["Showing ",(0,d.jsx)("span",{className:"font-medium text-text-main",children:k})," to"," ",(0,d.jsx)("span",{className:"font-medium text-text-main",children:m})," of"," ",(0,d.jsx)("span",{className:"font-medium text-text-main",children:c})," results"]}),(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[f&&(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:"text-sm text-text-muted",children:"Rows:"}),(0,d.jsx)("select",{value:b,onChange:a=>f(Number(a.target.value)),className:(0,j.cn)("h-9 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","cursor-pointer"),children:[10,20,50].map(a=>(0,d.jsx)("option",{value:a,children:a},a))})]}),h>1&&(0,d.jsxs)("div",{className:"flex items-center gap-1",children:[(0,d.jsx)(i.default,{variant:"outline",size:"sm",onClick:()=>e(a-1),disabled:1===a,className:"w-9 px-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_left"})}),n[0]>1&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(i.default,{variant:"ghost",size:"sm",onClick:()=>e(1),className:"w-9 px-0",children:"1"}),n[0]>2&&(0,d.jsx)("span",{className:"text-text-muted px-1",children:"..."})]}),n.map(b=>(0,d.jsx)(i.default,{variant:a===b?"primary":"ghost",size:"sm",onClick:()=>e(b),className:"w-9 px-0",children:b},b)),n[n.length-1]e(h),className:"w-9 px-0",children:h})]}),(0,d.jsx)(i.default,{variant:"outline",size:"sm",onClick:()=>e(a+1),disabled:a===h,className:"w-9 px-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"chevron_right"})})]})]})]})}var m=c(30207);let n=null,o=null;async function p(){if(n&&o)return{providerNameCache:n,providerNodesCache:o};let a=await fetch("/api/provider-nodes"),b=(await a.json()).nodes||[];for(let a of(o={},b))o[a.id]=a.name;return{providerNameCache:n={...m.Q2,...o},providerNodesCache:o}}function q(a,b){if(!a||!b)return a;let c=b[a];if("string"==typeof c)return c;if(c?.name)return c.name;let d=(0,m.zt)(a)||m.Q2[a];return d?.name||a}function r({title:a,children:b,defaultOpen:c=!1,icon:f=null}){let[g,h]=(0,e.useState)(c);return(0,d.jsxs)("div",{className:"border border-black/5 dark:border-white/5 rounded-lg overflow-hidden",children:[(0,d.jsxs)("button",{type:"button",onClick:()=>h(!g),className:"w-full flex items-center justify-between p-3 bg-black/[0.02] dark:bg-white/[0.02] hover:bg-black/[0.04] dark:hover:bg-white/[0.04] transition-colors",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[f&&(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px] text-text-muted",children:f}),(0,d.jsx)("span",{className:"font-semibold text-sm text-text-main",children:a})]}),(0,d.jsx)("span",{className:(0,j.cn)("material-symbols-outlined text-[20px] text-text-muted transition-transform duration-200",g?"rotate-90":""),children:"chevron_right"})]}),g&&(0,d.jsx)("div",{className:"p-4 border-t border-black/5 dark:border-white/5",children:b})]})}function s(a){let b=a?.prompt_tokens||a?.input_tokens||0,c=a?.cached_tokens||a?.cache_read_input_tokens||0;return b{try{let a=await fetch("/api/usage/providers"),b=await a.json();w(b.providers||[]);let c=await p();y(c.providerNameCache)}catch(a){console.error("Failed to fetch providers:",a)}},[]),(0,e.useCallback)(async()=>{m(!0);try{let a=new URLSearchParams({page:c.page.toString(),pageSize:c.pageSize.toString()});z.provider&&a.append("provider",z.provider),z.startDate&&a.append("startDate",z.startDate),z.endDate&&a.append("endDate",z.endDate);let d=await fetch(`/api/usage/request-details?${a}`),e=await d.json();b(e.details||[]),f(a=>({...a,...e.pagination}))}catch(a){console.error("Failed to fetch request details:",a)}finally{m(!1)}},[c.page,c.pageSize,z]),(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[(0,d.jsx)(h.default,{padding:"md",children:(0,d.jsxs)("div",{className:"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4",children:[(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,d.jsx)("label",{htmlFor:"provider-filter",className:"text-sm font-medium text-text-main",children:"Provider"}),(0,d.jsxs)("select",{id:"provider-filter",value:z.provider,onChange:a=>A({...z,provider:a.target.value}),className:(0,j.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20","w-full min-w-0 cursor-pointer"),children:[(0,d.jsx)("option",{value:"",children:"All Providers"}),v.map(a=>(0,d.jsx)("option",{value:a.id,children:a.name},a.id))]})]}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,d.jsx)("label",{htmlFor:"start-date-filter",className:"text-sm font-medium text-text-main",children:"Start Date"}),(0,d.jsx)("input",{id:"start-date-filter",type:"datetime-local",value:z.startDate,onChange:a=>A({...z,startDate:a.target.value}),className:(0,j.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-2",children:[(0,d.jsx)("label",{htmlFor:"end-date-filter",className:"text-sm font-medium text-text-main",children:"End Date"}),(0,d.jsx)("input",{id:"end-date-filter",type:"datetime-local",value:z.endDate,onChange:a=>A({...z,endDate:a.target.value}),className:(0,j.cn)("h-9 px-3 rounded-lg border border-black/10 dark:border-white/10 bg-surface","w-full min-w-0 text-sm text-text-main focus:outline-none focus:ring-2 focus:ring-primary/20")})]}),(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-2 sm:col-span-2 lg:col-span-1",children:[(0,d.jsx)("span",{className:"hidden text-sm font-medium text-text-main opacity-0 lg:block","aria-hidden":"true",children:"Clear"}),(0,d.jsx)(i.default,{variant:"ghost",onClick:()=>{A({provider:"",startDate:"",endDate:""})},disabled:!z.provider&&!z.startDate&&!z.endDate,className:"w-full",children:"Clear Filters"})]})]})}),(0,d.jsxs)(h.default,{padding:"none",children:[(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full min-w-[880px]",children:[(0,d.jsx)("thead",{children:(0,d.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5",children:[(0,d.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Timestamp"}),(0,d.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Model"}),(0,d.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Provider"}),(0,d.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Input Tokens"}),(0,d.jsx)("th",{className:"text-right p-4 text-sm font-semibold text-text-main",children:"Output Tokens"}),(0,d.jsx)("th",{className:"text-left p-4 text-sm font-semibold text-text-main",children:"Latency"}),(0,d.jsx)("th",{className:"text-center p-4 text-sm font-semibold text-text-main",children:"Action"})]})}),(0,d.jsx)("tbody",{children:g?(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:(0,d.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-[20px]",children:"progress_activity"}),"Loading..."]})})}):0===a.length?(0,d.jsx)("tr",{children:(0,d.jsx)("td",{colSpan:"7",className:"p-8 text-center text-text-muted",children:"No request details found"})}):a.map((a,b)=>(0,d.jsxs)("tr",{className:"border-b border-black/5 dark:border-white/5 last:border-b-0 hover:bg-black/[0.02] dark:hover:bg-white/[0.02] transition-colors",children:[(0,d.jsx)("td",{className:"whitespace-nowrap p-4 text-sm text-text-main",children:new Date(a.timestamp).toLocaleString()}),(0,d.jsx)("td",{className:"max-w-[260px] truncate p-4 font-mono text-sm text-text-main",children:a.model}),(0,d.jsx)("td",{className:"max-w-[180px] truncate p-4 text-sm text-text-main",children:(0,d.jsx)("span",{className:"font-medium",children:q(a.provider,x)})}),(0,d.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:s(a.tokens).toLocaleString()}),(0,d.jsx)("td",{className:"p-4 text-sm text-text-main text-right font-mono",children:a.tokens?.completion_tokens?.toLocaleString()||0}),(0,d.jsx)("td",{className:"p-4 text-sm text-text-muted",children:(0,d.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,d.jsxs)("div",{children:["TTFT: ",(0,d.jsxs)("span",{className:"font-mono",children:[a.latency?.ttft||0,"ms"]})]}),(0,d.jsxs)("div",{children:["Total: ",(0,d.jsxs)("span",{className:"font-mono",children:[a.latency?.total||0,"ms"]})]})]})}),(0,d.jsx)("td",{className:"p-4 text-center",children:(0,d.jsx)(i.default,{variant:"outline",size:"sm",onClick:()=>{o(a),u(!0)},children:"Detail"})})]},`${a.id}-${b}`))})]})}),!g&&a.length>0&&(0,d.jsx)("div",{className:"border-t border-black/5 dark:border-white/5",children:(0,d.jsx)(l,{currentPage:c.page,pageSize:c.pageSize,totalItems:c.totalItems,onPageChange:a=>{f(b=>({...b,page:a}))},onPageSizeChange:a=>{f(b=>({...b,pageSize:a,page:1}))}})})]}),(0,d.jsx)(k,{isOpen:t,onClose:()=>u(!1),title:"Request Details",width:"lg",children:n&&(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-4 text-sm sm:grid-cols-2",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"ID:"})," ",(0,d.jsx)("span",{className:"break-all font-mono text-text-main",children:n.id})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Timestamp:"})," ",(0,d.jsx)("span",{className:"text-text-main",children:new Date(n.timestamp).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Provider:"})," ",(0,d.jsx)("span",{className:"text-text-main font-medium",children:q(n.provider,x)})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Model:"})," ",(0,d.jsx)("span",{className:"text-text-main font-mono",children:n.model})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Status:"})," ",(0,d.jsx)("span",{className:(0,j.cn)("font-medium","success"===n.status?"text-green-600":"text-red-600"),children:n.status})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Latency:"})," ",(0,d.jsxs)("span",{className:"text-text-main font-mono",children:["TTFT ",n.latency?.ttft||0,"ms / Total ",n.latency?.total||0,"ms"]})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Input Tokens:"})," ",(0,d.jsx)("span",{className:"text-text-main font-mono",children:s(n.tokens).toLocaleString()})]}),(0,d.jsxs)("div",{children:[(0,d.jsx)("span",{className:"text-text-muted",children:"Output Tokens:"})," ",(0,d.jsx)("span",{className:"text-text-main font-mono",children:n.tokens?.completion_tokens?.toLocaleString()||0})]})]}),(0,d.jsxs)("div",{className:"space-y-4",children:[(0,d.jsx)(r,{title:"1. Client Request (Input)",defaultOpen:!0,icon:"input",children:(0,d.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(n.request,null,2)})}),n.providerRequest&&(0,d.jsx)(r,{title:"2. Provider Request (Translated)",icon:"translate",children:(0,d.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:JSON.stringify(n.providerRequest,null,2)})}),n.providerResponse&&(0,d.jsx)(r,{title:"3. Provider Response (Raw)",icon:"data_object",children:(0,d.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:"object"==typeof n.providerResponse?JSON.stringify(n.providerResponse,null,2):n.providerResponse})}),(0,d.jsxs)(r,{title:"4. Client Response (Final)",defaultOpen:!0,icon:"output",children:[n.response?.thinking&&(0,d.jsxs)("div",{className:"mb-4",children:[(0,d.jsxs)("h4",{className:"font-semibold text-text-main mb-2 flex items-center gap-2 text-xs uppercase tracking-wide opacity-70",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"psychology"}),"Thinking Process"]}),(0,d.jsx)("pre",{className:"max-h-[200px] max-w-full overflow-auto rounded-lg border border-amber-200 bg-amber-50 p-3 font-mono text-xs text-amber-900 dark:border-amber-800 dark:bg-amber-950/30 dark:text-amber-100 sm:p-4",children:n.response.thinking})]}),(0,d.jsx)("h4",{className:"font-semibold text-text-main mb-2 text-xs uppercase tracking-wide opacity-70",children:"Content"}),(0,d.jsx)("pre",{className:"max-h-[300px] max-w-full overflow-auto rounded-lg border border-black/5 bg-black/5 p-3 font-mono text-xs text-text-main dark:border-white/5 dark:bg-white/5 sm:p-4",children:n.response?.content||"[No content]"})]})]})]})})]})}let u=[{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function v(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(g.Qv,{}),children:(0,d.jsx)(w,{})})}function w(){let a=(0,f.useSearchParams)(),b=(0,f.useRouter)(),[c,h]=(0,e.useState)(!1),[i,j]=(0,e.useState)("7d"),k=a.get("tab"),l=k&&["overview","logs","details"].includes(k)?k:"overview";return(0,d.jsxs)("div",{className:"flex min-w-0 flex-col gap-6 px-1 sm:px-0",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,d.jsx)(g.Iz,{options:[{value:"overview",label:"Overview"},{value:"details",label:"Details"}],value:l,onChange:c=>{if(c===l)return;h(!0);let d=new URLSearchParams(a);d.set("tab",c),b.push(`/dashboard/usage?${d.toString()}`,{scroll:!1}),setTimeout(()=>h(!1),300)},className:"w-full sm:w-auto"}),"overview"===l&&(0,d.jsx)(g.Iz,{options:u,value:i,onChange:j,size:"sm",className:"w-full sm:w-auto"})]}),c?(0,d.jsx)(g.Qv,{}):(0,d.jsxs)(d.Fragment,{children:["overview"===l&&(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)(g.Qv,{}),children:(0,d.jsx)(g.jK,{period:i,setPeriod:j,hidePeriodSelector:!0})}),"logs"===l&&(0,d.jsx)(g.gM,{}),"details"===l&&(0,d.jsx)(t,{})]})]})}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450,6782],()=>b(b.s=6035));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json b/cli/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json new file mode 100644 index 00000000000..cada2a7bbf4 --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/usage/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/450.js","../../../../chunks/5053.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6782.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js b/cli/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js new file mode 100644 index 00000000000..458fd03984f --- /dev/null +++ b/cli/app/.next/server/app/(dashboard)/dashboard/usage/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/(dashboard)/dashboard/usage/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","2825","static/chunks/app/(dashboard)/dashboard/usage/page-92b9dd8c50ab5e50.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/_global-error.html b/cli/app/.next/server/app/_global-error.html new file mode 100644 index 00000000000..ac0ee6df8bb --- /dev/null +++ b/cli/app/.next/server/app/_global-error.html @@ -0,0 +1 @@ +500: This page couldn’t load

This page couldn’t load

A server error occurred. Reload to try again.

\ No newline at end of file diff --git a/cli/app/.next/server/app/_global-error.meta b/cli/app/.next/server/app/_global-error.meta new file mode 100644 index 00000000000..e538165d456 --- /dev/null +++ b/cli/app/.next/server/app/_global-error.meta @@ -0,0 +1,16 @@ +{ + "status": 500, + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/_global-error/layout,_N_T_/_global-error/page,_N_T_/_global-error" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/_global-error/__PAGE__", + "/_global-error", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/_global-error.rsc b/cli/app/.next/server/app/_global-error.rsc new file mode 100644 index 00000000000..923b23a8111 --- /dev/null +++ b/cli/app/.next/server/app/_global-error.rsc @@ -0,0 +1,14 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:I[31872,[],"OutletBoundary"] +5:"$Sreact.suspense" +8:I[31872,[],"ViewportBoundary"] +a:I[31872,[],"MetadataBoundary"] +c:I[57567,[],"default",1] +0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +d:[] +7:"$Wd" +9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +6:null +b:[] diff --git a/cli/app/.next/server/app/_global-error.segments/_full.segment.rsc b/cli/app/.next/server/app/_global-error.segments/_full.segment.rsc new file mode 100644 index 00000000000..923b23a8111 --- /dev/null +++ b/cli/app/.next/server/app/_global-error.segments/_full.segment.rsc @@ -0,0 +1,14 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:I[31872,[],"OutletBoundary"] +5:"$Sreact.suspense" +8:I[31872,[],"ViewportBoundary"] +a:I[31872,[],"MetadataBoundary"] +c:I[57567,[],"default",1] +0:{"P":null,"c":["","_global-error"],"q":"","i":false,"f":[[["",{"children":["_global-error",{"children":["__PAGE__",{}]}]}],[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L3",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L4",null,{"children":["$","$5",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],{},null,false,null]},null,false,"$@7"]},null,false,"$@7"],["$","$1","h",{"children":[null,["$","$L8",null,{"children":"$L9"}],["$","div",null,{"hidden":true,"children":["$","$La",null,{"children":["$","$5",null,{"name":"Next.Metadata","children":"$Lb"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$c",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +d:[] +7:"$Wd" +9:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]] +6:null +b:[] diff --git a/cli/app/.next/server/app/_global-error.segments/_global-error.segment.rsc b/cli/app/.next/server/app/_global-error.segments/_global-error.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/_global-error.segments/_global-error.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc b/cli/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc new file mode 100644 index 00000000000..1c293b912cc --- /dev/null +++ b/cli/app/.next/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[31872,[],"OutletBoundary"] +3:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","html",null,{"id":"__next_error__","children":[["$","head",null,{"children":[["$","title",null,{"children":"500: This page couldn’t load"}],["$","style",null,{"dangerouslySetInnerHTML":{"__html":":root {--next-error-bg: #fff;--next-error-text: #171717;--next-error-title: #171717;--next-error-message: #171717;--next-error-digest: #666666;--next-error-btn-text: #fff;--next-error-btn-bg: #171717;--next-error-btn-border: none;--next-error-btn-secondary-text: #171717;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08);}@media (prefers-color-scheme: dark) {:root {--next-error-bg: #0a0a0a;--next-error-text: #ededed;--next-error-title: #ededed;--next-error-message: #ededed;--next-error-digest: #a0a0a0;--next-error-btn-text: #0a0a0a;--next-error-btn-bg: #ededed;--next-error-btn-border: none;--next-error-btn-secondary-text: #ededed;--next-error-btn-secondary-bg: transparent;--next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14);}}body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); }"}}]]}],["$","body",null,{"children":["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","display":"flex","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"style":{"marginTop":"-32px","maxWidth":"325px","padding":"32px 28px","textAlign":"left"},"children":[["$","svg",null,{"width":"32","height":"32","viewBox":"-0.2 -1.5 32 32","fill":"none","style":{"marginBottom":"24px"},"children":["$","path",null,{"d":"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z","fill":"var(--next-error-title)"}]}],["$","h1",null,{"style":{"fontSize":"24px","fontWeight":500,"letterSpacing":"-0.02em","lineHeight":"32px","margin":"0 0 12px 0","color":"var(--next-error-title)"},"children":"This page couldn’t load"}],["$","p",null,{"style":{"fontSize":"14px","fontWeight":400,"lineHeight":"21px","margin":"0 0 20px 0","color":"var(--next-error-message)"},"children":"A server error occurred. Reload to try again."}],["$","form",null,{"style":{"margin":0},"children":["$","button",null,{"type":"submit","style":{"display":"inline-flex","alignItems":"center","justifyContent":"center","height":"32px","padding":"0 12px","fontSize":"14px","fontWeight":500,"lineHeight":"20px","borderRadius":"6px","cursor":"pointer","color":"var(--next-error-btn-text)","background":"var(--next-error-btn-bg)","border":"var(--next-error-btn-border)"},"children":"Reload"}]}]]}]}]}]]}],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:null diff --git a/cli/app/.next/server/app/_global-error.segments/_head.segment.rsc b/cli/app/.next/server/app/_global-error.segments/_head.segment.rsc new file mode 100644 index 00000000000..aa49c63a48e --- /dev/null +++ b/cli/app/.next/server/app/_global-error.segments/_head.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_global-error.segments/_index.segment.rsc b/cli/app/.next/server/app/_global-error.segments/_index.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/_global-error.segments/_index.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_global-error.segments/_tree.segment.rsc b/cli/app/.next/server/app/_global-error.segments/_tree.segment.rsc new file mode 100644 index 00000000000..03c939168c5 --- /dev/null +++ b/cli/app/.next/server/app/_global-error.segments/_tree.segment.rsc @@ -0,0 +1 @@ +0:{"tree":{"name":"","param":null,"prefetchHints":0,"slots":{"children":{"name":"_global-error","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_global-error/page.js b/cli/app/.next/server/app/_global-error/page.js new file mode 100644 index 00000000000..702b38d288a --- /dev/null +++ b/cli/app/.next/server/app/_global-error/page.js @@ -0,0 +1,32 @@ +(()=>{var a={};a.id=4896,a.ids=[4896],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4202:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,75765,23)),Promise.resolve().then(c.t.bind(c,4396,23)),Promise.resolve().then(c.t.bind(c,94746,23)),Promise.resolve().then(c.t.bind(c,44469,23)),Promise.resolve().then(c.t.bind(c,80913,23)),Promise.resolve().then(c.t.bind(c,51739,23)),Promise.resolve().then(c.t.bind(c,91996,23)),Promise.resolve().then(c.t.bind(c,14801,23))},7088:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,75765,23))},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16816:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,11319,23))},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21573:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,11319,23)),Promise.resolve().then(c.t.bind(c,88182,23)),Promise.resolve().then(c.t.bind(c,20232,23)),Promise.resolve().then(c.t.bind(c,94647,23)),Promise.resolve().then(c.t.bind(c,90511,23)),Promise.resolve().then(c.t.bind(c,92249,23)),Promise.resolve().then(c.t.bind(c,40622,23)),Promise.resolve().then(c.bind(c,35879))},24429:()=>{},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},28354:a=>{"use strict";a.exports=require("util")},29104:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["_global-error",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.t.bind(c,29537,23)),"next/dist/client/components/builtin/app-error.js"]}]},{}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"]},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/_global-error/page",pathname:"/_global-error",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/_global-error/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29537:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}}),c(80363);let d=c(22037);c(64176);let e=c(34950),f=function(){return(0,d.jsxs)("html",{id:"__next_error__",children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("title",{children:"500: This page couldn’t load"}),(0,d.jsx)("style",{dangerouslySetInnerHTML:{__html:e.errorThemeCss}})]}),(0,d.jsx)("body",{children:(0,d.jsx)("div",{style:e.errorStyles.container,children:(0,d.jsxs)("div",{style:e.errorStyles.card,children:[(0,d.jsx)(e.WarningIcon,{}),(0,d.jsx)("h1",{style:e.errorStyles.title,children:"This page couldn’t load"}),(0,d.jsx)("p",{style:e.errorStyles.message,children:"A server error occurred. Reload to try again."}),(0,d.jsx)("form",{style:e.errorStyles.form,children:(0,d.jsx)("button",{type:"submit",style:e.errorStyles.button,children:"Reload"})})]})})})]})};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},33873:a=>{"use strict";a.exports=require("path")},34950:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={WarningIcon:function(){return i},errorStyles:function(){return g},errorThemeCss:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});c(80363);let f=c(22037);c(64176);let g={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},h=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function i(){return(0,f.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:g.icon,children:(0,f.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},80363:(a,b,c)=>{"use strict";function d(a){return a&&a.__esModule?a:{default:a}}c.r(b),c.d(b,{_:()=>d})},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,375],()=>b(b.s=29104));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/_global-error/page.js.nft.json b/cli/app/.next/server/app/_global-error/page.js.nft.json new file mode 100644 index 00000000000..6a0f8afb095 --- /dev/null +++ b/cli/app/.next/server/app/_global-error/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../package.json","../../chunks/375.js","../../chunks/7773.js","../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/_global-error/page_client-reference-manifest.js b/cli/app/.next/server/app/_global-error/page_client-reference-manifest.js new file mode 100644 index 00000000000..8b832963bad --- /dev/null +++ b/cli/app/.next/server/app/_global-error/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_global-error/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/_global-error/page":[]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/_not-found.html b/cli/app/.next/server/app/_not-found.html new file mode 100644 index 00000000000..4dbc69c7c5c --- /dev/null +++ b/cli/app/.next/server/app/_not-found.html @@ -0,0 +1 @@ +404: This page could not be found.9Router - AI Infrastructure Management

404

This page could not be found.

\ No newline at end of file diff --git a/cli/app/.next/server/app/_not-found.meta b/cli/app/.next/server/app/_not-found.meta new file mode 100644 index 00000000000..731903e4cbd --- /dev/null +++ b/cli/app/.next/server/app/_not-found.meta @@ -0,0 +1,16 @@ +{ + "status": 404, + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/_not-found/layout,_N_T_/_not-found/page,_N_T_/_not-found" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/_not-found/__PAGE__", + "/_not-found", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/_not-found.rsc b/cli/app/.next/server/app/_not-found.rsc new file mode 100644 index 00000000000..fcf1826a96c --- /dev/null +++ b/cli/app/.next/server/app/_not-found.rsc @@ -0,0 +1,21 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +a:I[31872,[],"ViewportBoundary"] +c:I[31872,[],"MetadataBoundary"] +e:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],{},null,false,null]},null,false,"$@9"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +f:[] +9:"$Wf" +b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +10:I[12569,[],"IconMark"] +8:null +d:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L10","5",{}]] diff --git a/cli/app/.next/server/app/_not-found.segments/_full.segment.rsc b/cli/app/.next/server/app/_not-found.segments/_full.segment.rsc new file mode 100644 index 00000000000..fcf1826a96c --- /dev/null +++ b/cli/app/.next/server/app/_not-found.segments/_full.segment.rsc @@ -0,0 +1,21 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +a:I[31872,[],"ViewportBoundary"] +c:I[31872,[],"MetadataBoundary"] +e:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","_not-found"],"q":"","i":false,"f":[[["",{"children":["_not-found",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],{},null,false,null]},null,false,"$@9"]},null,false,null],["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +f:[] +9:"$Wf" +b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +10:I[12569,[],"IconMark"] +8:null +d:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L10","5",{}]] diff --git a/cli/app/.next/server/app/_not-found.segments/_head.segment.rsc b/cli/app/.next/server/app/_not-found.segments/_head.segment.rsc new file mode 100644 index 00000000000..13a2459f0cb --- /dev/null +++ b/cli/app/.next/server/app/_not-found.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[["$","meta",null,{"name":"robots","content":"noindex"}],["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_not-found.segments/_index.segment.rsc b/cli/app/.next/server/app/_not-found.segments/_index.segment.rsc new file mode 100644 index 00000000000..c3bebf985f9 --- /dev/null +++ b/cli/app/.next/server/app/_not-found.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_not-found.segments/_not-found.segment.rsc b/cli/app/.next/server/app/_not-found.segments/_not-found.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/_not-found.segments/_not-found.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc b/cli/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc new file mode 100644 index 00000000000..5f2bb7dbc3b --- /dev/null +++ b/cli/app/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[31872,[],"OutletBoundary"] +3:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],null,["$","$L2",null,{"children":["$","$3",null,{"name":"Next.MetadataOutlet","children":"$@4"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:null diff --git a/cli/app/.next/server/app/_not-found.segments/_tree.segment.rsc b/cli/app/.next/server/app/_not-found.segments/_tree.segment.rsc new file mode 100644 index 00000000000..37bdb2db7df --- /dev/null +++ b/cli/app/.next/server/app/_not-found.segments/_tree.segment.rsc @@ -0,0 +1,5 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"_not-found","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/_not-found/page.js b/cli/app/.next/server/app/_not-found/page.js new file mode 100644 index 00000000000..e1743860f42 --- /dev/null +++ b/cli/app/.next/server/app/_not-found/page.js @@ -0,0 +1,2 @@ +"use strict";(()=>{var a={};a.id=9492,a.ids=[9492],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},17891:a=>{a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},26713:a=>{a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},41025:a=>{a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68720:(a,b,c)=>{c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["_not-found",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"]}]},{}]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/_not-found/page",pathname:"/_not-found",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/_not-found/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},70722:a=>{a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77068:a=>{a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{a.exports=require("node:crypto")},79551:a=>{a.exports=require("url")},79646:a=>{a.exports=require("child_process")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,7770,21,8193,2503,514,3774,8035,2049],()=>b(b.s=68720));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/_not-found/page.js.nft.json b/cli/app/.next/server/app/_not-found/page.js.nft.json new file mode 100644 index 00000000000..51d38368514 --- /dev/null +++ b/cli/app/.next/server/app/_not-found/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../package.json","../../chunks/1249.js","../../chunks/2049.js","../../chunks/21.js","../../chunks/2371.js","../../chunks/2503.js","../../chunks/2566.js","../../chunks/3656.js","../../chunks/375.js","../../chunks/3774.js","../../chunks/514.js","../../chunks/5978.js","../../chunks/64.js","../../chunks/7770.js","../../chunks/7773.js","../../chunks/8035.js","../../chunks/8193.js","../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/_not-found/page_client-reference-manifest.js b/cli/app/.next/server/app/_not-found/page_client-reference-manifest.js new file mode 100644 index 00000000000..e4251f48701 --- /dev/null +++ b/cli/app/.next/server/app/_not-found/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/_not-found/page":[]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/auth/login/route.js b/cli/app/.next/server/app/api/auth/login/route.js new file mode 100644 index 00000000000..d2e4947127b --- /dev/null +++ b/cli/app/.next/server/app/api/auth/login/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=7758,a.ids=[7758],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31208:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{POST:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(94723),y=c(87690),z=c(11735);let A=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me");async function B(a){try{let b,c,d,{password:e}=await a.json(),f=await (0,w.getSettings)();if(b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),c=f.tunnelUrl?new URL(f.tunnelUrl).hostname.toLowerCase():"",d=f.tailscaleUrl?new URL(f.tailscaleUrl).hostname.toLowerCase():"",(c&&b===c||d&&b===d)&&!0!==f.tunnelDashboardAccess)return v.NextResponse.json({error:"Dashboard access via tunnel is disabled"},{status:403});let g=f.password,h=!1;if(g)h=await x.Ay.compare(e,g);else{let a=process.env.INITIAL_PASSWORD||"123456";h=e===a}if(h){let b="true"===process.env.AUTH_COOKIE_SECURE,c=a.headers.get("x-forwarded-proto"),d=await new y.P({authenticated:!0}).setProtectedHeader({alg:"HS256"}).setExpirationTime("24h").sign(A);return(await (0,z.UL)()).set("auth_token",d,{httpOnly:!0,secure:b||"https"===c,sameSite:"lax",path:"/"}),v.NextResponse.json({success:!0})}return v.NextResponse.json({error:"Invalid password"},{status:401})}catch(a){return v.NextResponse.json({error:a.message},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/auth/login/route",pathname:"/api/auth/login",filename:"route",bundlePath:"app/api/auth/login/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/auth/login/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/login/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,1735,8710,7690,7770],()=>b(b.s=31208));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/auth/login/route.js.nft.json b/cli/app/.next/server/app/api/auth/login/route.js.nft.json new file mode 100644 index 00000000000..d8b7b3bb161 --- /dev/null +++ b/cli/app/.next/server/app/api/auth/login/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/1735.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8710.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/auth/login/route_client-reference-manifest.js b/cli/app/.next/server/app/api/auth/login/route_client-reference-manifest.js new file mode 100644 index 00000000000..7abbe7278a5 --- /dev/null +++ b/cli/app/.next/server/app/api/auth/login/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/login/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/auth/login/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/auth/logout/route.js b/cli/app/.next/server/app/api/auth/logout/route.js new file mode 100644 index 00000000000..d47182abf5e --- /dev/null +++ b/cli/app/.next/server/app/api/auth/logout/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8489,a.ids=[8489],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},74931:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(11735);async function x(){return(await (0,w.UL)()).delete("auth_token"),v.NextResponse.json({success:!0})}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/auth/logout/route",pathname:"/api/auth/logout",filename:"route",bundlePath:"app/api/auth/logout/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/auth/logout/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/auth/logout/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,1735],()=>b(b.s=74931));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/auth/logout/route.js.nft.json b/cli/app/.next/server/app/api/auth/logout/route.js.nft.json new file mode 100644 index 00000000000..bbdd9c45450 --- /dev/null +++ b/cli/app/.next/server/app/api/auth/logout/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1735.js","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js b/cli/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js new file mode 100644 index 00000000000..280bac7ffe5 --- /dev/null +++ b/cli/app/.next/server/app/api/auth/logout/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/auth/logout/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/auth/logout/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js new file mode 100644 index 00000000000..306155dac15 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=6580,a.ids=[6580],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},17818:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>h,PUT:()=>i});var d=c(71266),e=c(86606),f=c(89442),g=c(50514);async function h(a){try{let{searchParams:b}=new URL(a.url),c=b.get("tool"),d=await (0,f.c)(c||void 0);return e.NextResponse.json({aliases:d})}catch(a){return console.log("Error fetching MITM aliases:",a.message),e.NextResponse.json({error:"Failed to fetch aliases"},{status:500})}}async function i(a){try{let{tool:b,mappings:c}=await a.json();if(!b||!c||"object"!=typeof c)return e.NextResponse.json({error:"tool and mappings required"},{status:400});let d=await (0,g.getMitmStatus)();if(!d.dnsStatus||!d.dnsStatus[b])return e.NextResponse.json({error:`DNS must be enabled for ${b} before editing model mappings`},{status:403});let h={};for(let[a,b]of Object.entries(c))b&&b.trim()&&(h[a]=b.trim());return await (0,f.L9)(b,h),e.NextResponse.json({success:!0,aliases:h})}catch(a){return console.log("Error saving MITM aliases:",a.message),e.NextResponse.json({error:"Failed to save aliases"},{status:500})}}(0,c(39990).D)([h,i]),(0,d.A)(h,"4078a2380d185e5db9d344be8a92e6873cf30c1b36",null),(0,d.A)(i,"40a937d31604b64cfb12144366fc627f6948942dcb",null)},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},36274:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"4078a2380d185e5db9d344be8a92e6873cf30c1b36":()=>d.GET,"40a937d31604b64cfb12144366fc627f6948942dcb":()=>d.PUT});var d=c(17818)},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},90427:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(17818);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/alias/route",pathname:"/api/cli-tools/antigravity-mitm/alias",filename:"route",bundlePath:"app/api/cli-tools/antigravity-mitm/alias/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/antigravity-mitm/alias/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/antigravity-mitm/alias/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},91645:a=>{"use strict";a.exports=require("net")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514],()=>b(b.s=90427));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json new file mode 100644 index 00000000000..16ba450a781 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/mitm/server.js","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2503.js","../../../../../chunks/2566.js","../../../../../chunks/3656.js","../../../../../chunks/514.js","../../../../../chunks/5978.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js new file mode 100644 index 00000000000..0e03769759a --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/alias/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/antigravity-mitm/alias/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/antigravity-mitm/alias/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js new file mode 100644 index 00000000000..1e8dd67a25d --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8573,a.ids=[8573],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},56034:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>N,patchFetch:()=>M,routeModule:()=>I,serverHooks:()=>L,workAsyncStorage:()=>J,workUnitAsyncStorage:()=>K});var d={};c.r(d),c.d(d,{DELETE:()=>G,GET:()=>E,PATCH:()=>H,POST:()=>F});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(50514),x=c(37770);(0,w.initDbHooks)(x.getSettings,x.Xx);let y="http://localhost:20128",z="win32"===process.platform;function A(a){return a||(0,w.getCachedPassword)()||null}function B(a){return!z&&!a&&(0,w.isSudoPasswordRequired)()}function C(){if(z)try{return c(79646).execSync("net session >nul 2>&1",{windowsHide:!0}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function D(a){return!!C()||!z&&(!(0,w.isSudoPasswordRequired)()||!!a)}async function E(){try{let a=await (0,w.getMitmStatus)(),b=await (0,x.getSettings)(),c=!!(0,w.getCachedPassword)()||!!await (0,w.loadEncryptedPassword)();return v.NextResponse.json({running:a.running,pid:a.pid||null,certExists:a.certExists||!1,certTrusted:a.certTrusted||!1,dnsStatus:a.dnsStatus||{},hasCachedPassword:c,isWin:z,needsSudoPassword:!z&&!c&&(0,w.isSudoPasswordRequired)(),isAdmin:C(),mitmRouterBaseUrl:b.mitmRouterBaseUrl&&String(b.mitmRouterBaseUrl).trim()||y})}catch(a){return console.log("Error getting MITM status:",a.message),v.NextResponse.json({error:"Failed to get MITM status"},{status:500})}}async function F(a){try{let{apiKey:b,sudoPassword:c,mitmRouterBaseUrl:d,forceKillPort443:e}=await a.json(),f=A(c)||await (0,w.loadEncryptedPassword)()||"";if(!b||B(f))return v.NextResponse.json({error:b?"Missing sudoPassword":"Missing apiKey"},{status:400});if(!D(f))return v.NextResponse.json({error:z?"Administrator required — restart 9Router as Administrator":"Root or sudo password required to start MITM"},{status:403});if(null!=d)try{let a=function(a){let b;if(null==a||""===String(a).trim())return y;let c=String(a).trim().replace(/\/+$/,"");try{b=new URL(c)}catch{throw Error("Invalid MITM router URL")}if("http:"!==b.protocol&&"https:"!==b.protocol)throw Error("MITM router URL must use http or https");return c}(d);await (0,x.Xx)({mitmRouterBaseUrl:a})}catch(a){return v.NextResponse.json({error:a.message||"Invalid MITM router URL"},{status:400})}let g=await (0,w.startServer)(b,f,!!e);return z||(0,w.setCachedPassword)(f),v.NextResponse.json({success:!0,running:g.running,pid:g.pid})}catch(a){if(console.log("Error starting MITM server:",a.message),"PORT_443_BUSY"===a.code)return v.NextResponse.json({error:a.message,code:"PORT_443_BUSY",portOwner:a.portOwner},{status:409});return v.NextResponse.json({error:a.message||"Failed to start MITM server"},{status:500})}}async function G(a){try{let{sudoPassword:b}=await a.json().catch(()=>({})),c=A(b)||await (0,w.loadEncryptedPassword)()||"";if(B(c))return v.NextResponse.json({error:"Missing sudoPassword"},{status:400});return await (0,w.stopServer)(c),!z&&b&&(0,w.setCachedPassword)(b),v.NextResponse.json({success:!0,running:!1})}catch(a){return console.log("Error stopping MITM server:",a.message),v.NextResponse.json({error:a.message||"Failed to stop MITM server"},{status:500})}}async function H(a){try{let{tool:b,action:c,sudoPassword:d}=await a.json(),e=A(d)||await (0,w.loadEncryptedPassword)()||"";if(!b||!c)return v.NextResponse.json({error:"tool and action required"},{status:400});if(B(e))return v.NextResponse.json({error:"Missing sudoPassword"},{status:400});if(!D(e))return v.NextResponse.json({error:z?"Administrator required — restart 9Router as Administrator":"Root or sudo password required to modify DNS"},{status:403});if("enable"===c)await (0,w.enableToolDNS)(b,e);else if("disable"===c)await (0,w.disableToolDNS)(b,e);else{if("trust-cert"!==c)return v.NextResponse.json({error:"action must be enable, disable, or trust-cert"},{status:400});await (0,w.trustCert)(e),!z&&d&&(0,w.setCachedPassword)(d);let a=await (0,w.getMitmStatus)();return v.NextResponse.json({success:!0,certTrusted:a.certTrusted})}!z&&d&&(0,w.setCachedPassword)(d);let f=await (0,w.getMitmStatus)();return v.NextResponse.json({success:!0,dnsStatus:f.dnsStatus})}catch(a){return console.log("Error toggling DNS:",a.message),v.NextResponse.json({error:a.message||"Failed to toggle DNS"},{status:500})}}let I=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/cli-tools/antigravity-mitm/route",pathname:"/api/cli-tools/antigravity-mitm",filename:"route",bundlePath:"app/api/cli-tools/antigravity-mitm/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/antigravity-mitm/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:J,workUnitAsyncStorage:K,serverHooks:L}=I;function M(){return(0,g.patchFetch)({workAsyncStorage:J,workUnitAsyncStorage:K})}async function N(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),I.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/antigravity-mitm/route";"/index"===d&&(d="/");let e=await I.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!H||I.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===I.isDev||!H,M=H&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await I.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>I.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>I.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await I.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await I.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await I.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514],()=>b(b.s=56034));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json new file mode 100644 index 00000000000..be76464cdf8 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js new file mode 100644 index 00000000000..bb3cb7ab8db --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/antigravity-mitm/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/antigravity-mitm/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/antigravity-mitm/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/claude-settings/route.js b/cli/app/.next/server/app/api/cli-tools/claude-settings/route.js new file mode 100644 index 00000000000..de008abde50 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/claude-settings/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=747,a.ids=[747],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13253:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>v,GET:()=>s,POST:()=>t});var d=c(71266),e=c(86606),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(39990);let o=(0,g.promisify)(f.exec),p=()=>{let a=m().homedir();return k().join(a,".claude","settings.json")},q=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where claude":"which claude",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(p()),!0}catch{return!1}}},r=async()=>{try{let a=p(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function s(){try{if(!await q())return e.NextResponse.json({installed:!1,settings:null,message:"Claude CLI is not installed"});let a=await r(),b=!!a?.env?.ANTHROPIC_BASE_URL;return e.NextResponse.json({installed:!0,settings:a,has9Router:b,settingsPath:p()})}catch(a){return console.log("Error checking claude settings:",a),e.NextResponse.json({error:"Failed to check claude settings"},{status:500})}}async function t(a){try{let{env:b}=await a.json();if(!b||"object"!=typeof b)return e.NextResponse.json({error:"Invalid env object"},{status:400});let c=p(),d=k().dirname(c);await i().mkdir(d,{recursive:!0});let f={};try{let a=await i().readFile(c,"utf-8");f=JSON.parse(a)}catch(a){if("ENOENT"!==a.code)throw a}b.ANTHROPIC_BASE_URL&&(b.ANTHROPIC_BASE_URL=b.ANTHROPIC_BASE_URL.endsWith("/v1")?b.ANTHROPIC_BASE_URL:`${b.ANTHROPIC_BASE_URL}/v1`);let g={...f,hasCompletedOnboarding:!0,env:{...f.env||{},...b}};return await i().writeFile(c,JSON.stringify(g,null,2)),e.NextResponse.json({success:!0,message:"Settings updated successfully"})}catch(a){return console.log("Error updating claude settings:",a),e.NextResponse.json({error:"Failed to update claude settings"},{status:500})}}let u=["ANTHROPIC_BASE_URL","ANTHROPIC_AUTH_TOKEN","ANTHROPIC_DEFAULT_OPUS_MODEL","ANTHROPIC_DEFAULT_SONNET_MODEL","ANTHROPIC_DEFAULT_HAIKU_MODEL","API_TIMEOUT_MS"];async function v(){try{let a=p(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return b.env&&(u.forEach(a=>{delete b.env[a]}),0===Object.keys(b.env).length&&delete b.env),await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"Settings reset successfully"})}catch(a){return console.log("Error resetting claude settings:",a),e.NextResponse.json({error:"Failed to reset claude settings"},{status:500})}}(0,n.D)([s,t,v]),(0,d.A)(s,"004addfe77c08777b9e567a3a2c74433b6d273ecf5",null),(0,d.A)(t,"40b9d31c67b3027add9fd8b4c314711cc2fc51b734",null),(0,d.A)(v,"0063c4c2e69585bc4ea25ebbfcd5611d003988f618",null)},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(13253);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/claude-settings/route",pathname:"/api/cli-tools/claude-settings",filename:"route",bundlePath:"app/api/cli-tools/claude-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/claude-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/claude-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61935:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"004addfe77c08777b9e567a3a2c74433b6d273ecf5":()=>d.GET,"0063c4c2e69585bc4ea25ebbfcd5611d003988f618":()=>d.DELETE,"40b9d31c67b3027add9fd8b4c314711cc2fc51b734":()=>d.POST});var d=c(13253)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=43101));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/claude-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..0a5e1c90114 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/claude-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/claude-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/claude-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/codex-settings/route.js b/cli/app/.next/server/app/api/cli-tools/codex-settings/route.js new file mode 100644 index 00000000000..73fc0c47ac5 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/codex-settings/route.js @@ -0,0 +1,32 @@ +(()=>{var a={};a.id=3472,a.ids=[3472],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},13897:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"003f081365ffb7f0fc04c58d2de54ce4ac9a844d5d":()=>d.DELETE,"0065e34dd5d77a4a3d14fe758c5cc2fd36349d3262":()=>d.GET,"405132466c0ed027510c0c6f9d358a392eb348aa4e":()=>d.POST});var d=c(93481)},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64023:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(93481);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/codex-settings/route",pathname:"/api/cli-tools/codex-settings",filename:"route",bundlePath:"app/api/cli-tools/codex-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/codex-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/codex-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},93481:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>$,GET:()=>Y,POST:()=>Z});var d=c(71266),e=c(86606),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l);let n=/^(?:( )+|\t+)/,o="space";function p(a,b){let c=new Map,d=0,e,f;for(let g of a.split(/\n/g)){if(!g)continue;let a=g.match(n);if(null===a)d=0,e="";else{let g=a[0].length,h=a[1]?o:"tab";if(b&&h===o&&1===g)continue;h!==e&&(d=0),e=h;let i=1,j=0,k=g-d;if(d=g,0===k)i=0,j=1;else{let a=Math.abs(k);if(b&&h===o&&1===a)continue;f=(h===o?"s":"t")+String(a)}let l=c.get(f);c.set(f,void 0===l?[1,0]:[l[0]+i,l[1]+j])}}return c}let q=Symbol.for("__confbox_fmt__"),r=/^(\s+)/,s=/(\s+)$/;var t=class extends Error{line;column;codeblock;constructor(a,b){let[c,d]=function(a,b){let c=a.slice(0,b).split(/\r\n|\n|\r/g);return[c.length,c.pop().length+1]}(b.toml,b.ptr),e=function(a,b,c){let d=a.split(/\r\n|\n|\r/g),e="",f=(0|Math.log10(b+1))+1;for(let a=b-1;a<=b+1;a++){let g=d[a-1];g&&(e+=a.toString().padEnd(f," "),e+=": ",e+=g,e+=` +`,a===b&&(e+=" ".repeat(f+c+2),e+=`^ +`))}return e}(b.toml,c,d);super(`Invalid TOML document: ${a} + +${e}`,b),this.line=c,this.column=d,this.codeblock=e}};function u(a,b=0,c=a.length){let d=a.indexOf(` +`,b);return a[d-1]===`\r`&&d--,d<=c?d:-1}function v(a,b){for(let c=b;c-1&&"'"!==c&&function(a,b){let c=0;for(;"\\"===a[b-++c];);return--c&&c%2}(a,b));return b>-1&&(b+=d.length,d.length>1&&(a[b]===c&&b++,a[b]===c&&b++)),b}let y=/^(\d{4}-\d{2}-\d{2})?[T ]?(?:(\d{2}):\d{2}(?::\d{2}(?:\.\d+)?)?)?(Z|[-+]\d{2}:\d{2})?$/i;var z=class a extends Date{#a=!1;#b=!1;#c=null;constructor(a){let b=!0,c=!0,d="Z";if("string"==typeof a){let e=a.match(y);e?(e[1]||(b=!1,a=`0000-01-01T${a}`),(c=!!e[2])&&" "===a[10]&&(a=a.replace(" ","T")),e[2]&&+e[2]>23?a="":(d=e[3]||null,a=a.toUpperCase(),!d&&c&&(a+="Z"))):a=""}super(a),isNaN(this.getTime())||(this.#a=b,this.#b=c,this.#c=d)}isDateTime(){return this.#a&&this.#b}isLocal(){return!this.#a||!this.#b||!this.#c}isDate(){return this.#a&&!this.#b}isTime(){return this.#b&&!this.#a}isValid(){return this.#a||this.#b}toISOString(){let a=super.toISOString();if(this.isDate())return a.slice(0,10);if(this.isTime())return a.slice(11,23);if(null===this.#c)return a.slice(0,-1);if("Z"===this.#c)return a;let b=60*this.#c.slice(1,3)+ +this.#c.slice(4,6);return b="-"===this.#c[0]?b:-b,new Date(this.getTime()-6e4*b).toISOString().slice(0,-1)+this.#c}static wrapAsOffsetDateTime(b,c="Z"){let d=new a(b);return d.#c=c,d}static wrapAsLocalDateTime(b){let c=new a(b);return c.#c=null,c}static wrapAsLocalDate(b){let c=new a(b);return c.#b=!1,c.#c=null,c}static wrapAsLocalTime(b){let c=new a(b);return c.#a=!1,c.#c=null,c}};let A=/^((0x[0-9a-fA-F](_?[0-9a-fA-F])*)|(([+-]|0[ob])?\d(_?\d)*))$/,B=/^[+-]?\d(_?\d)*(\.\d(_?\d)*)?([eE][+-]?\d(_?\d)*)?$/,C=/^[+-]?0[0-9_]/,D=/^[0-9a-f]{2,8}$/i,E={b:"\b",t:" ",n:` +`,f:"\f",r:`\r`,e:"\x1b",'"':'"',"\\":"\\"};function F(a,b=0,c=a.length){let d="'"===a[b],e=a[b++]===a[b]&&a[b]===a[b+1];e&&(c-=2,a[b+=2]===`\r`&&b++,a[b]===` +`&&b++);let f=0,g,h="",i=b;for(;bf?f:d),j=u(i);if(j>-1)throw new t("newlines are not allowed in keys",{toml:a,ptr:b+d+j});if(i.trimStart())throw new t("found extra tokens after the string part",{toml:a,ptr:h});if(ff?f:d);if(!G.test(c))throw new t("only letter, numbers, dashes and underscores are allowed in keys",{toml:a,ptr:b});e.push(c.trimEnd())}}while(d+1&&d-1&&(v(b,j),i=i.slice(0,j)),[i.trimEnd(),j]);if(!l[0])throw new t("incomplete key-value declaration: no value specified",{toml:b,ptr:c});return d&&l[1]>-1&&(h=w(b,c+l[1]),h+=+(","===b[h])),[function(a,b,c,d){if("true"===a)return!0;if("false"===a)return!1;if("-inf"===a)return-1/0;if("inf"===a||"+inf"===a)return 1/0;if("nan"===a||"+nan"===a||"-nan"===a)return NaN;if("-0"===a)return d?0n:0;let e=A.test(a);if(e||B.test(a)){if(C.test(a))throw new t("leading zeroes are not allowed",{toml:b,ptr:c});let f=+(a=a.replace(/_/g,""));if(isNaN(f))throw new t("invalid number",{toml:b,ptr:c});if(e){if((e=!Number.isSafeInteger(f))&&!d)throw new t("integer value cannot be represented losslessly",{toml:b,ptr:c});(e||!0===d)&&(f=BigInt(a))}return f}let f=new z(a);if(!f.isValid())throw new t("invalid value",{toml:b,ptr:c});return f}(l[0],b,c,f),h]}(a,d[1],void 0,b,c);e[1][e[0]]=i[0],h=i[1]}if(h=w(a,h,!0),a[h]&&a[h]!==` +`&&a[h]!==`\r`)throw new t("each key-value declaration must be followed by an end-of-line",{toml:a,ptr:h});h=w(a,h)}return d}(a);return b={preserveIndentation:!1},c&&"object"==typeof c&&Object.defineProperty(c,q,{enumerable:!1,configurable:!0,writable:!0,value:function(a,b={}){return{sample:void 0===b.indent&&!1!==b.preserveIndentation&&a.slice(0,b?.sampleSize||1024),whiteSpace:!1===b.preserveWhitespace?void 0:{start:r.exec(a)?.[0]||"",end:s.exec(a)?.[0]||""}}}(a,b)}),c}function N(a){let b=function(a,b){if(!a||"object"!=typeof a||!(q in a))return{indent:b?.indent??2,whitespace:{start:"",end:""}};let c=a[q];return{indent:b?.indent||function(a){var b,c;if("string"!=typeof a)throw TypeError("Expected a string");let d=p(a,!0);0===d.size&&(d=p(a,!1));let e=function(a){let b,c=0,d=0;for(let[e,[f,g]]of a)(f>c||f===c&&g>d)&&(c=f,d=g,b=e);return b}(d),f,g=0,h="";return void 0!==e&&({type:f,amount:g}={type:"s"===e[0]?o:"tab",amount:Number(e.slice(1))},b=f,c=g,h=(b===o?" ":" ").repeat(c)),{amount:g,type:f,indent:h}}(c.sample||"").indent,whitespace:c.whiteSpace||{start:"",end:""}}}(a,{preserveIndentation:!1}),c=function(a,{maxDepth:b=1e3,numbersAsFloat:c=!1}={}){if("object"!==K(a))throw TypeError("stringify can only be called with an object");let d=function a(b,c,d,e,f){if(0===e)throw Error("Could not stringify the object: maximum object depth exceeded");let g="",h="",i=Object.keys(c);for(let b=0;bk().join(m().homedir(),".codex"),R=()=>k().join(Q(),"config.toml"),S=()=>k().join(Q(),"auth.json"),T=a=>a??{},U=(a,b,c)=>{let d=b.split("."),e=a;for(let a=0;a{let c=b.split("."),d=a;for(let a=0;a{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await P(a?"where codex":"which codex",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(R()),!0}catch{return!1}}},X=async()=>{try{let a=R();return await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}};async function Y(){try{if(!await W())return e.NextResponse.json({installed:!1,config:null,message:"Codex CLI is not installed"});let a=await X();return e.NextResponse.json({installed:!0,config:a,has9Router:!!a&&(a.includes('model_provider = "9router"')||a.includes("[model_providers.9router]")),configPath:R()})}catch(a){return console.log("Error checking codex settings:",a),e.NextResponse.json({error:"Failed to check codex settings"},{status:500})}}async function Z(a){try{let{baseUrl:b,apiKey:c,model:d,subagentModel:f}=await a.json();if(!b||!c||!d)return e.NextResponse.json({error:"baseUrl, apiKey and model are required"},{status:400});let g=Q(),h=R();await i().mkdir(g,{recursive:!0});let j={};try{let a=await i().readFile(h,"utf-8");j=T(M(a))}catch{}j.model=d,j.model_provider="9router";let k=b.endsWith("/v1")?b:`${b}/v1`;U(j,"model_providers.9router",{name:"9Router",base_url:k,wire_api:"responses"});let l=f||d;U(j,"agents.subagent",{model:l});let m=N(j);await i().writeFile(h,m);let n=S(),o={};try{let a=await i().readFile(n,"utf-8");o=JSON.parse(a)}catch{}return o.OPENAI_API_KEY=c,o.auth_mode="apikey",await i().writeFile(n,JSON.stringify(o,null,2)),e.NextResponse.json({success:!0,message:"Codex settings applied successfully!",configPath:h})}catch(a){return console.log("Error updating codex settings:",a),e.NextResponse.json({error:"Failed to update codex settings"},{status:500})}}async function $(){try{let a=R(),b={};try{let c=await i().readFile(a,"utf-8");b=T(M(c))}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}"9router"===b.model_provider&&(delete b.model,delete b.model_provider),V(b,"model_providers.9router"),V(b,"agents.subagent");let c=N(b);await i().writeFile(a,c);let d=S();try{let a=await i().readFile(d,"utf-8"),b=JSON.parse(a);delete b.OPENAI_API_KEY,delete b.auth_mode,0===Object.keys(b).length?await i().unlink(d):await i().writeFile(d,JSON.stringify(b,null,2))}catch{}return e.NextResponse.json({success:!0,message:"9Router settings removed successfully"})}catch(a){return console.log("Error resetting codex settings:",a),e.NextResponse.json({error:"Failed to reset codex settings"},{status:500})}}(0,O.D)([Y,Z,$]),(0,d.A)(Y,"0065e34dd5d77a4a3d14fe758c5cc2fd36349d3262",null),(0,d.A)(Z,"405132466c0ed027510c0c6f9d358a392eb348aa4e",null),(0,d.A)($,"003f081365ffb7f0fc04c58d2de54ce4ac9a844d5d",null)}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=64023));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/codex-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..d59891e2b9b --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/codex-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/codex-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/codex-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/copilot-settings/route.js b/cli/app/.next/server/app/api/cli-tools/copilot-settings/route.js new file mode 100644 index 00000000000..e521a658fad --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/copilot-settings/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=543,a.ids=[543],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55233:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"0026af6c87082dff5e4d38a0763d266211aeff4e0f":()=>d.GET,"00f09e471d39080525851ae8f23903e1d749e1d619":()=>d.DELETE,"40a275d6aac0cebe46a54d9be5d091c39d482049e5":()=>d.POST});var d=c(82187)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79748:a=>{"use strict";a.exports=require("fs/promises")},80343:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(82187);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/copilot-settings/route",pathname:"/api/cli-tools/copilot-settings",filename:"route",bundlePath:"app/api/cli-tools/copilot-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/copilot-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/copilot-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},82187:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>q,GET:()=>o,POST:()=>p});var d=c(71266),e=c(86606),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(39990);let m=()=>{let a=k().homedir(),b=k().platform();return"win32"===b?i().join(process.env.APPDATA||a,"Code","User","chatLanguageModels.json"):"darwin"===b?i().join(a,"Library","Application Support","Code","User","chatLanguageModels.json"):i().join(a,".config","Code","User","chatLanguageModels.json")},n=async()=>{try{let a=await g().readFile(m(),"utf-8");return JSON.parse(a)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function o(){try{let a=await n(),b=Array.isArray(a)&&a.find(a=>"9Router"===a.name)||null;return e.NextResponse.json({installed:!0,config:a,has9Router:!!Array.isArray(a)&&a.some(a=>"9Router"===a.name),configPath:m(),currentModel:b?.models?.[0]?.id||null,currentUrl:b?.models?.[0]?.url||null})}catch(a){return console.log("Error checking copilot settings:",a),e.NextResponse.json({error:"Failed to check copilot settings"},{status:500})}}async function p(a){try{let{baseUrl:b,apiKey:c,models:d}=await a.json();if(!b||!d?.length)return e.NextResponse.json({error:"baseUrl and models are required"},{status:400});let f=m();await g().mkdir(i().dirname(f),{recursive:!0});let h=[];try{let a=await g().readFile(f,"utf-8"),b=JSON.parse(a);h=Array.isArray(b)?b:[]}catch{}let j=`${b}/chat/completions#models.ai.azure.com`,k={name:"9Router",vendor:"azure",apiKey:c||"sk_9router",models:d.map(a=>({id:a,name:a,url:j,toolCalling:!0,vision:!1,maxInputTokens:128e3,maxOutputTokens:16e3}))},l=h.findIndex(a=>"9Router"===a.name);return l>=0?h[l]=k:h.push(k),await g().writeFile(f,JSON.stringify(h,null,2)),e.NextResponse.json({success:!0,message:"Copilot settings applied! Reload VS Code to take effect.",configPath:f})}catch(a){return console.log("Error updating copilot settings:",a),e.NextResponse.json({error:"Failed to update copilot settings"},{status:500})}}async function q(){try{let a=m(),b=[];try{let c=await g().readFile(a,"utf-8"),d=JSON.parse(c);b=Array.isArray(d)?d:[]}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}return b=b.filter(a=>"9Router"!==a.name),await g().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"9Router removed from Copilot config"})}catch(a){return console.log("Error resetting copilot settings:",a),e.NextResponse.json({error:"Failed to reset copilot settings"},{status:500})}}(0,l.D)([o,p,q]),(0,d.A)(o,"0026af6c87082dff5e4d38a0763d266211aeff4e0f",null),(0,d.A)(p,"40a275d6aac0cebe46a54d9be5d091c39d482049e5",null),(0,d.A)(q,"00f09e471d39080525851ae8f23903e1d749e1d619",null)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=80343));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/copilot-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..bb7ffd317b1 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/copilot-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/copilot-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/copilot-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js b/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js new file mode 100644 index 00000000000..c34fec862dd --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=1697,a.ids=[1697],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29413:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(37671);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/cowork-mcp-registry/route",pathname:"/api/cli-tools/cowork-mcp-registry",filename:"route",bundlePath:"app/api/cli-tools/cowork-mcp-registry/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/cowork-mcp-registry/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/cowork-mcp-registry/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},37671:(a,b,c)=>{"use strict";c.r(b),c.d(b,{GET:()=>k});var d=c(71266),e=c(86606),f=c(39990);let g="anthropics/knowledge-work-plugins",h="__9routerCoworkMcpRegistryCache";async function i(){let a=[],b="";for(let c=0;c<20;c++){let c=`https://api.anthropic.com/mcp-registry/v0/servers?limit=500&visibility=commercial,gsuite,gsuite-google${b?`&cursor=${encodeURIComponent(b)}`:""}`,d=await fetch(c,{headers:{accept:"application/json"}});if(!d.ok)break;let e=await d.json();for(let b of e.servers||[]){let c=b.server||{},d=(c.remotes||[])[0];if(!d?.url)continue;let e="streamable-http"===d.type?"http":"sse"===d.type?"sse":"http";a.push({source:"registry",name:c.name,title:c.title||c.name,description:c.description||"",url:d.url,transport:e})}if(!(b=e.metadata?.nextCursor))break}return a}async function j(){let a=await fetch(`https://api.github.com/repos/${g}/contents/`,{headers:{accept:"application/vnd.github.v3+json"}});if(!a.ok)return[];let b=(await a.json()).filter(a=>"dir"===a.type&&!a.name.startsWith(".")&&"partner-built"!==a.name),c=[];return await Promise.all(b.map(async a=>{try{let b=`https://raw.githubusercontent.com/${g}/main/${a.name}/.claude-plugin/plugin.json`,d=await fetch(b);if(!d.ok)return;let e=await d.json(),f=e.mcp_servers||e.mcpServers||{};for(let[b,d]of Object.entries(f)){if(!d?.url||"string"!=typeof d.url||!/^https?:\/\//i.test(d.url))continue;let f=/\/sse(\b|\/)/i.test(d.url)||"sse"===d.type?"sse":"http";c.push({source:"plugins",plugin:a.name,name:`${a.name}-${b}`,title:e.name||a.name,description:e.description||"",url:d.url,transport:f})}}catch{}})),c}async function k(a){let{searchParams:b}=new URL(a.url),c="1"===b.get("refresh"),d=(globalThis[h]||(globalThis[h]={ts:0,data:null}),globalThis[h]);if(!c&&d.data&&Date.now()-d.ts<36e5)return e.NextResponse.json({cached:!0,...d.data});try{let[a,b]=await Promise.all([i(),j()]),c=new Set,f=[...a,...b].filter(a=>!c.has(a.url)&&(c.add(a.url),!0)),g={servers:f,counts:{registry:a.length,plugins:b.length,total:f.length}};return d.ts=Date.now(),d.data=g,e.NextResponse.json({cached:!1,...g})}catch(a){return e.NextResponse.json({error:a.message,servers:[],counts:{total:0}},{status:500})}}(0,f.D)([k]),(0,d.A)(k,"409e1307868cd2973b8c82b8cf2bb3543300c1c085",null)},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";c.r(b),c.d(b,{"409e1307868cd2973b8c82b8cf2bb3543300c1c085":()=>d.GET});var d=c(37671)},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=29413));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js new file mode 100644 index 00000000000..4efe8fadffc --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/cowork-mcp-registry/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/cowork-mcp-registry/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/cowork-mcp-registry/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/cowork-settings/route.js b/cli/app/.next/server/app/api/cli-tools/cowork-settings/route.js new file mode 100644 index 00000000000..372961a92a9 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/cowork-settings/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=4010,a.ids=[4010],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{"use strict";a.exports=require("crypto")},60997:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(70802);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/cowork-settings/route",pathname:"/api/cli-tools/cowork-settings",filename:"route",bundlePath:"app/api/cli-tools/cowork-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/cowork-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/cowork-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},70802:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>G,GET:()=>E,POST:()=>F});var d=c(71266),e=c(86606),f=c(79748),g=c.n(f),h=c(33873),i=c.n(h),j=c(21820),k=c.n(j),l=c(55511),m=c.n(l),n=c(97418),o=c(39990);let p="gateway";async function q(){for(let a of(()=>{if("darwin"===k().platform()){let a=k().homedir();return[i().join(a,"Library","Application Support","Claude-3p","org-plugins"),i().join(a,"Library","Application Support","Claude","org-plugins"),"/Library/Application Support/Claude/org-plugins"]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramData||"C:\\ProgramData";return[i().join(a,"Claude-3p","org-plugins"),i().join(a,"Claude","org-plugins"),i().join(b,"Claude","org-plugins")]}return[i().join(k().homedir(),".config","Claude-3p","org-plugins"),"/etc/Claude/org-plugins"]})())try{await g().mkdir(a,{recursive:!0});let b=i().join(a,".__9router_probe");return await g().writeFile(b,"ok"),await g().unlink(b),a}catch{}return null}async function r(a){let b=await q();if(!b)return{error:"no_writable_plugins_dir",written:[]};let c=new Set(a||[]),d=n.COWORK_PLUGINS.filter(a=>c.has(a.name));for(let a of n.COWORK_PLUGINS)try{await g().rm(i().join(b,a.name),{recursive:!0,force:!0})}catch{}let e=[];for(let a of d){let c=i().join(b,a.name),d=i().join(c,".claude-plugin");try{await g().mkdir(d,{recursive:!0});let b={name:a.name,version:"1.0.0",description:a.description||a.name,author:{name:"9router"}};await g().writeFile(i().join(d,"plugin.json"),JSON.stringify(b,null,2));let f={};for(let b of a.servers)f[1===a.servers.length?a.name:`${a.name}-${b.key}`]={type:/\/sse(\b|\/)/i.test(b.url)?"sse":"http",url:b.url};await g().writeFile(i().join(c,".mcp.json"),JSON.stringify({mcpServers:f},null,2)),e.push(a.name)}catch(a){return{error:a.code||a.message,written:e,root:b}}}return{written:e,root:b}}async function s(a){let b=i().join(v(),"config.json"),c={};try{c=JSON.parse(await g().readFile(b,"utf-8"))||{}}catch(a){if("ENOENT"!==a.code)return{error:a.code}}let d=new Set;for(let a of n.COWORK_PLUGINS)for(let b of a.servers)d.add(1===a.servers.length?a.name:`${a.name}-${b.key}`);let e=c.operonSkipMcpApprovals&&"object"==typeof c.operonSkipMcpApprovals?c.operonSkipMcpApprovals:{};for(let a of Object.keys(e))d.has(a)&&delete e[a];for(let b of a)b?.name&&(e[b.name]=!0);return c.operonSkipMcpApprovals=e,await g().mkdir(v(),{recursive:!0}),await g().writeFile(b,JSON.stringify(c,null,2)),{written:Object.keys(e).length}}let t=()=>{if("darwin"===k().platform()){let a=i().join(k().homedir(),"Library","Application Support");return[i().join(a,"Claude-3p"),i().join(a,"Claude")]}if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return[i().join(a,"Claude-3p"),i().join(b,"Claude-3p"),i().join(a,"Claude"),i().join(b,"Claude")]}return[i().join(k().homedir(),".config","Claude-3p"),i().join(k().homedir(),".config","Claude")]},u=async()=>{let a=t();for(let b of a)try{return await g().access(i().join(b,"configLibrary")),b}catch{}return a[0]},v=()=>t()[0],w=async()=>i().join(await u(),"configLibrary"),x=()=>i().join(v(),"configLibrary"),y=async()=>i().join(await w(),"_meta.json"),z=()=>{if("darwin"===k().platform())return i().join(k().homedir(),"Library","Application Support","Claude");if("win32"===k().platform()){process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local");let a=process.env.APPDATA||i().join(k().homedir(),"AppData","Roaming");return i().join(a,"Claude")}return i().join(k().homedir(),".config","Claude")},A=async()=>{let a=i().join(z(),"claude_desktop_config.json"),b={};try{let c=await g().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"!==a.code)throw a}return"3p"!==b.deploymentMode&&(b.deploymentMode="3p",await g().mkdir(z(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2)),!0)},B=async()=>{for(let a of[...t(),...(()=>{if("darwin"===k().platform())return["/Applications/Claude.app",i().join(k().homedir(),"Applications","Claude.app")];if("win32"===k().platform()){let a=process.env.LOCALAPPDATA||i().join(k().homedir(),"AppData","Local"),b=process.env.ProgramFiles||"C:\\Program Files";return[i().join(a,"AnthropicClaude"),i().join(b,"Claude"),i().join(b,"AnthropicClaude")]}return[]})()])try{return await g().access(a),!0}catch{}return!1},C=async a=>{try{let b=await g().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},D=async()=>{let a=i().join(x(),"_meta.json"),b=await C(a);if(!b||!b.appliedId){let c=await C(await y());if(c?.appliedId)b=c;else{let a=m().randomUUID();b={appliedId:a,entries:[{id:a,name:"Default"}]}}await g().mkdir(x(),{recursive:!0}),await g().writeFile(a,JSON.stringify(b,null,2))}return b};async function E(){try{if(!await B())return e.NextResponse.json({installed:!1,config:null,message:"Claude Desktop (Cowork mode) not detected"});let a=await C(await y()),b=a?.appliedId||null,c=await w(),d=b?i().join(c,`${b}.json`):null,f=d?await C(d):null,g=f?.inferenceGatewayBaseUrl||null,h=Array.isArray(f?.inferenceModels)?f.inferenceModels.map(a=>"string"==typeof a?a:a?.name).filter(Boolean):[],j=Array.isArray(f?.managedMcpServers)?f.managedMcpServers:[],k=n.COWORK_PLUGINS.filter(a=>a.servers.some(a=>j.some(b=>b?.url===a.url))).map(a=>a.name),l=!!(f?.inferenceProvider===p&&g);return e.NextResponse.json({installed:!0,config:f,has9Router:l,configPath:d,cowork:{appliedId:b,baseUrl:g,models:h,provider:f?.inferenceProvider||null,selectedPlugins:k},availablePlugins:n.COWORK_PLUGINS.map(a=>({name:a.name,description:a.description}))})}catch(a){return console.log("Error reading cowork settings:",a),e.NextResponse.json({error:"Failed to read cowork settings"},{status:500})}}async function F(a){try{let{baseUrl:b,apiKey:c,models:d,plugins:f}=await a.json();if(!b||!c)return e.NextResponse.json({error:"baseUrl and apiKey are required"},{status:400});let h=Array.isArray(d)?d.filter(a=>"string"==typeof a&&a.trim()):[];if(0===h.length)return e.NextResponse.json({error:"At least one model is required"},{status:400});let j=Array.isArray(f)?f.filter(a=>"string"==typeof a):[],k=(0,n.buildManagedMcpServers)(j),l=await A(),m=await D(),o=i().join(x(),`${m.appliedId}.json`),q={inferenceProvider:p,inferenceGatewayBaseUrl:b,inferenceGatewayApiKey:c,inferenceModels:h.map(a=>({name:a})),isLocalDevMcpEnabled:!0,isDesktopExtensionEnabled:!0};k.length>0&&(q.managedMcpServers=k),await g().writeFile(o,JSON.stringify(q,null,2));let t=await r(j),u=null;try{u=await s(k)}catch(a){u={error:a.message}}return e.NextResponse.json({success:!0,bootstrapped:l,message:l?"Cowork enabled (3p mode set). Quit & reopen Claude Desktop.":"Cowork settings applied. Quit & reopen Claude Desktop.",configPath:o,plugins:t,skipApprovals:u})}catch(a){return console.log("Error applying cowork settings:",a),e.NextResponse.json({error:"Failed to apply cowork settings"},{status:500})}}async function G(){try{let a=await C(await y());if(!a?.appliedId)return e.NextResponse.json({success:!0,message:"No active config to reset"});let b=i().join(await w(),`${a.appliedId}.json`);try{await g().writeFile(b,JSON.stringify({},null,2))}catch(a){if("ENOENT"!==a.code)throw a}await r([]);try{await s([])}catch{}return e.NextResponse.json({success:!0,message:"Cowork config reset"})}catch(a){return console.log("Error resetting cowork settings:",a),e.NextResponse.json({error:"Failed to reset cowork settings"},{status:500})}}(0,o.D)([E,F,G]),(0,d.A)(E,"00899530af7bd797b6b0e26f580c38e29e82d3c474",null),(0,d.A)(F,"40a06f24a5114e11489a892a599e64053e534a00b0",null),(0,d.A)(G,"00160511706990bbe01dd8036c5c8cc33c9b157aaf",null)},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},97418:a=>{"use strict";let b=[{name:"tavily",description:"Tavily - Real-time web search API optimized for LLM agents. Search and extract content from the web.",servers:[{key:"tavily",url:"https://mcp.tavily.com/mcp",type:"http"}]},{name:"lseg",description:"Price bonds, analyze yield curves, evaluate FX carry trades, value options, and build macro dashboards using LSEG financial data and analytics.",servers:[{key:"lseg",url:"https://api.analytics.lseg.com/lfa/mcp",type:"http"}]},{name:"sp-global",description:"S&P Global - Financial data and analytics skills including company tearsheets, earnings previews, and transaction summaries",servers:[{key:"spglobal",url:"https://kfinance.kensho.com/integrations/mcp",type:"http"}]},{name:"adobe-for-creativity",description:"Brings together Adobe Creative Cloud tools for images, vectors, design, and video. Edit multiple assets at once, adapt for different platforms, and complete multi-step creative workflows for polished ",servers:[{key:"Adobe for creativity",url:"https://adobe-creativity.adobe.io/mcp",type:"http"}]},{name:"figma",description:"Figma design platform integration. Access design files, extract component information, read design tokens, and translate designs into code. Bridge the gap between design and development workflows.",servers:[{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"}]},{name:"atlan",description:"Atlan data catalog plugin for Claude Code. Search, explore, govern, and manage your data assets through natural language. Powered by the Atlan MCP server with semantic search, lineage traversal, gloss",servers:[{key:"atlan",url:"https://mcp.atlan.com/mcp",type:"http"}]},{name:"cloudinary",description:"Use Cloudinary directly in Claude. Manage assets, apply transformations, optimize media, and more through natural conversation.",servers:[{key:"cloudinary-asset-mgmt",url:"https://asset-management.mcp.cloudinary.com/mcp",type:"http"},{key:"cloudinary-env-config",url:"https://environment-config.mcp.cloudinary.com/mcp",type:"http"},{key:"cloudinary-smd",url:"https://structured-metadata.mcp.cloudinary.com/mcp",type:"http"},{key:"cloudinary-analysis",url:"https://analysis.mcp.cloudinary.com/sse",type:"http"},{key:"cloudinary-mediaflows",url:"https://mediaflows.mcp.cloudinary.com/v2/mcp",type:"http"}]},{name:"prisma",description:"Prisma MCP integration for Postgres database management, schema migrations, SQL queries, and connection string management. Provision Prisma Postgres databases, run migrations, and interact with your d",servers:[{key:"Prisma-Remote",url:"https://mcp.prisma.io/mcp",type:"http"}]},{name:"cockroachdb",description:"CockroachDB plugin for Claude Code — explore schemas, write optimized SQL, debug queries, and manage distributed database clusters directly from your AI coding agent.",servers:[{key:"cockroachdb-toolbox-http",url:"http://127.0.0.1:5000/mcp",type:"http"},{key:"cockroachdb-cloud",url:"https://cockroachlabs.cloud/mcp",type:"http"}]},{name:"daloopa",description:"Financial analysis skills powered by Daloopa's institutional-grade data",servers:[{key:"daloopa",url:"https://mcp.daloopa.com/server/mcp",type:"http"},{key:"daloopa-docs",url:"https://docs.daloopa.com/mcp",type:"http"}]},{name:"intercom",description:"Intercom integration for Claude Code. Search conversations, analyze customer support patterns, look up contacts and companies, and install the Intercom Messenger. Connect your Intercom workspace to ge",servers:[{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"}]},{name:"zoominfo",description:"Search companies and contacts, enrich leads, find lookalikes, and get AI-ranked contact recommendations. Pre-built skills chain multiple ZoomInfo tools into complete B2B sales workflows.",servers:[{key:"zoominfo",url:"https://mcp.zoominfo.com/mcp",type:"http"}]},{name:"sanity-plugin",description:"Sanity content platform integration with MCP server, agent skills, and slash commands. Query and author content, build and optimize GROQ queries, design schemas, and set up Visual Editing.",servers:[{key:"Sanity",url:"https://mcp.sanity.io",type:"http"}]},{name:"adspirer-ads-agent",description:"Cross-platform ad management for Google Ads, Meta Ads, TikTok Ads, and LinkedIn Ads. 91 tools for keyword research, campaign creation, performance analysis, and budget optimization.",servers:[{key:"adspirer",url:"https://mcp.adspirer.com/mcp",type:"http"}]},{name:"planetscale",description:"An authenticated hosted MCP server that accesses your PlanetScale organizations, databases, branches, schema, and Insights data. Query against your data, surface slow queries, and get organizational a",servers:[{key:"planetscale",url:"https://mcp.pscale.dev/mcp/planetscale",type:"http"}]},{name:"miro",description:"Secure access to Miro boards. Enables AI to read board context, create diagrams, and generate code with enterprise-grade security.",servers:[{key:"miro",url:"https://mcp.miro.com/",type:"http"}]},{name:"zoom-plugin",description:"Plan, build, and debug Zoom integrations across REST APIs, Meeting SDK, Video SDK, webhooks, bots, and MCP workflows. Search meetings, retrieve recordings, access transcripts, and design AI-powered Zo",servers:[{key:"zoom-mcp",url:"https://mcp-us.zoom.us/mcp/zoom/streamable",type:"http"},{key:"zoom-docs-mcp",url:"https://mcp.zoom.us/mcp/docs/streamable",type:"http"},{key:"zoom-whiteboard-mcp",url:"https://mcp-us.zoom.us/mcp/whiteboard/streamable",type:"http"}]},{name:"bigdata-com",description:"Official Bigdata.com plugin providing financial research, analytics, and intelligence tools powered by Bigdata MCP.",servers:[{key:"bigdata.com",url:"https://mcp.bigdata.com",type:"http"}]},{name:"operations",description:"Optimize business operations — vendor management, process documentation, change management, capacity planning, and compliance tracking. Keep your organization running efficiently.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"servicenow",url:"https://mcp.servicenow.com/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"brand-voice",description:"Discover your brand voice from existing documents and conversations, generate enforceable guidelines, and validate AI-generated content against your established tone and positioning.",servers:[{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"box",url:"https://mcp.box.com",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"gong",url:"https://mcp.gong.io/mcp",type:"http"},{key:"microsoft-365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"granola",url:"https://mcp.granola.ai/mcp",type:"http"}]},{name:"human-resources",description:"Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"design",description:"Accelerate design workflows — critique, design system management, UX writing, accessibility audits, research synthesis, and dev handoff. From exploration to pixel-perfect specs.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"}]},{name:"engineering",description:"Streamline engineering workflows — standups, code review, architecture decisions, incident response, and technical documentation. Works with your existing tools or standalone.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"github",url:"https://api.githubcopilot.com/mcp/",type:"http"},{key:"pagerduty",url:"https://mcp.pagerduty.com/mcp",type:"http"},{key:"datadog",url:"https://mcp.datadoghq.com/mcp",type:"http"}]},{name:"common-room",description:"Turn Common Room into your GTM copilot. Research accounts and contacts, prep for calls with attendee profiles and talking points, and draft personalized outreach across email, LinkedIn, and phone.",servers:[{key:"common-room",url:"https://mcp.commonroom.io/mcp",type:"http"}]},{name:"apollo",description:"Prospect, enrich leads, and load outreach sequences with Apollo.io — one-click MCP server integration for Claude Code and Cowork.",servers:[{key:"apollo",url:"https://mcp.apollo.io/mcp",type:"http"}]},{name:"slack-by-salesforce",description:"Slack integration for searching messages, sending communications, managing canvases, and more",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"}]},{name:"bio-research",description:"Connect to preclinical research tools and databases (literature search, genomics analysis, target prioritization) to accelerate early-stage life sciences R&D",servers:[{key:"pubmed",url:"https://pubmed.mcp.claude.com/mcp",type:"http"},{key:"biorender",url:"https://mcp.services.biorender.com/mcp",type:"http"},{key:"biorxiv",url:"https://mcp.deepsense.ai/biorxiv/mcp",type:"http"},{key:"c-trials",url:"https://mcp.deepsense.ai/clinical_trials/mcp",type:"http"},{key:"chembl",url:"https://mcp.deepsense.ai/chembl/mcp",type:"http"},{key:"synapse",url:"https://mcp.synapse.org/mcp",type:"http"},{key:"wiley",url:"https://connector.scholargateway.ai/mcp",type:"http"},{key:"owkin",url:"https://mcp.k.owkin.com/mcp",type:"http"},{key:"ot",url:"https://mcp.platform.opentargets.org/mcp",type:"http"}]},{name:"sales",description:"Prospect, craft outreach, and build deal strategy faster. Prep for calls, manage your pipeline, and write personalized messaging that moves deals forward.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"hubspot",url:"https://mcp.hubspot.com/anthropic",type:"http"},{key:"close",url:"https://mcp.close.com/mcp",type:"http"},{key:"clay",url:"https://api.clay.com/v3/mcp",type:"http"},{key:"zoominfo",url:"https://mcp.zoominfo.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"fireflies",url:"https://api.fireflies.ai/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"apollo",url:"https://api.apollo.io/mcp",type:"http"},{key:"outreach",url:"https://mcp.outreach.io/mcp",type:"http"},{key:"similarweb",url:"https://mcp.similarweb.com/mcp",type:"http"}]},{name:"legal",description:"Speed up contract review, NDA triage, and compliance workflows for in-house legal teams. Draft legal briefs, organize precedent research, and manage institutional knowledge.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"box",url:"https://mcp.box.com",type:"http"},{key:"egnyte",url:"https://mcp-server.egnyte.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"docusign",url:"https://mcp.docusign.com/mcp",type:"http"}]},{name:"product-management",description:"Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"monday",url:"https://mcp.monday.com/mcp",type:"http"},{key:"clickup",url:"https://mcp.clickup.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"amplitude",url:"https://mcp.amplitude.com/mcp",type:"http"},{key:"amplitude-eu",url:"https://mcp.eu.amplitude.com/mcp",type:"http"},{key:"pendo",url:"https://app.pendo.io/mcp/v0/shttp",type:"http"},{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"},{key:"fireflies",url:"https://api.fireflies.ai/mcp",type:"http"},{key:"similarweb",url:"https://mcp.similarweb.com/mcp",type:"http"}]},{name:"productivity",description:"Manage tasks, plan your day, and build up memory of important context about your work. Syncs with your calendar, email, and chat to keep everything organized and on track.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"linear",url:"https://mcp.linear.app/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"},{key:"monday",url:"https://mcp.monday.com/mcp",type:"http"},{key:"clickup",url:"https://mcp.clickup.com/mcp",type:"http"}]},{name:"marketing",description:"Create content, plan campaigns, and analyze performance across marketing channels. Maintain brand voice consistency, track competitors, and report on what's working.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"canva",url:"https://mcp.canva.com/mcp",type:"http"},{key:"figma",url:"https://mcp.figma.com/mcp",type:"http"},{key:"hubspot",url:"https://mcp.hubspot.com/anthropic",type:"http"},{key:"amplitude",url:"https://mcp.amplitude.com/mcp",type:"http"},{key:"amplitude-eu",url:"https://mcp.eu.amplitude.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"ahrefs",url:"https://api.ahrefs.com/mcp/mcp",type:"http"},{key:"similarweb",url:"https://mcp.similarweb.com",type:"http"},{key:"klaviyo",url:"https://mcp.klaviyo.com/mcp",type:"http"},{key:"supermetrics",url:"https://mcp.supermetrics.com/mcp",type:"http"}]},{name:"finance",description:"Streamline finance and accounting workflows, from journal entries and reconciliation to financial statements and variance analysis. Speed up audit prep, month-end close, and keeping your books clean.",servers:[{key:"bigquery",url:"https://bigquery.googleapis.com/mcp",type:"http"},{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"enterprise-search",description:"Search across all of your company's tools in one place. Find anything across email, chat, documents, and wikis without switching between apps.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"guru",url:"https://mcp.api.getguru.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"asana",url:"https://mcp.asana.com/v2/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]},{name:"data",description:"Write SQL, explore datasets, and generate insights faster. Build visualizations and dashboards, and turn raw data into clear stories for stakeholders.",servers:[{key:"bigquery",url:"https://bigquery.googleapis.com/mcp",type:"http"},{key:"hex",url:"https://app.hex.tech/mcp",type:"http"},{key:"amplitude",url:"https://mcp.amplitude.com/mcp",type:"http"},{key:"amplitude-eu",url:"https://mcp.eu.amplitude.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"definite",url:"https://api.definite.app/v3/mcp/http",type:"http"}]},{name:"customer-support",description:"Triage tickets, draft responses, escalate issues, and build your knowledge base. Research customer context and turn resolved issues into self-service content.",servers:[{key:"slack",url:"https://mcp.slack.com/mcp",type:"http"},{key:"intercom",url:"https://mcp.intercom.com/mcp",type:"http"},{key:"hubspot",url:"https://mcp.hubspot.com/anthropic",type:"http"},{key:"guru",url:"https://mcp.api.getguru.com/mcp",type:"http"},{key:"atlassian",url:"https://mcp.atlassian.com/v1/mcp",type:"http"},{key:"notion",url:"https://mcp.notion.com/mcp",type:"http"},{key:"ms365",url:"https://microsoft365.mcp.claude.com/mcp",type:"http"}]}];a.exports={COWORK_PLUGINS:b,buildManagedMcpServers:function(a){let c=new Set(a||[]),d=[];for(let a of b)if(c.has(a.name))for(let b of a.servers){let c=1===a.servers.length?a.name:`${a.name}-${b.key}`,e=/\/sse(\b|\/)/i.test(b.url)?"sse":"http";d.push({name:c,url:b.url,transport:e,oauth:!0})}return d}}},99709:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"00160511706990bbe01dd8036c5c8cc33c9b157aaf":()=>d.DELETE,"00899530af7bd797b6b0e26f580c38e29e82d3c474":()=>d.GET,"40a06f24a5114e11489a892a599e64053e534a00b0":()=>d.POST});var d=c(70802)}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=60997));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/cowork-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..52597e5aea7 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/cowork-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/cowork-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/cowork-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/droid-settings/route.js b/cli/app/.next/server/app/api/cli-tools/droid-settings/route.js new file mode 100644 index 00000000000..6704b2b93e0 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/droid-settings/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=9321,a.ids=[9321],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4877:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>v,GET:()=>t,POST:()=>u});var d=c(71266),e=c(86606),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(39990);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".factory"),q=()=>k().join(p(),"settings.json"),r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where droid":"which droid",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},s=async()=>{try{let a=q(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function t(){try{if(!await r())return e.NextResponse.json({installed:!1,settings:null,message:"Factory Droid CLI is not installed"});let a=await s();return e.NextResponse.json({installed:!0,settings:a,has9Router:!!a&&!!a.customModels&&a.customModels.some(a=>a.id?.startsWith("custom:9Router")),settingsPath:q()})}catch(a){return console.log("Error checking droid settings:",a),e.NextResponse.json({error:"Failed to check droid settings"},{status:500})}}async function u(a){try{let{baseUrl:b,apiKey:c,model:d,models:f,activeModel:g}=await a.json(),h=Array.isArray(f)?f.slice():"string"==typeof d?[d]:[];if(!b||0===h.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let j=p(),k=q();await i().mkdir(j,{recursive:!0});let l={};try{let a=await i().readFile(k,"utf-8");l=JSON.parse(a)}catch{}l.customModels||(l.customModels=[]),l.customModels=l.customModels.filter(a=>!a.id?.startsWith("custom:9Router"));let m=b.endsWith("/v1")?b:`${b}/v1`,n=c||"your_api_key",o=0;if("string"==typeof g)if(""===g)o=-1;else{let a=h.indexOf(g);o=a>=0?a:0}for(let a=0;a=0&&l.customModels[o]){let[a]=l.customModels.splice(o,1);l.customModels.unshift({...a,index:0}),l.customModels.forEach((a,b)=>{a.index=b})}return await i().writeFile(k,JSON.stringify(l,null,2)),e.NextResponse.json({success:!0,message:"Factory Droid settings applied successfully!",settingsPath:k})}catch(a){return console.log("Error updating droid settings:",a),e.NextResponse.json({error:"Failed to update droid settings"},{status:500})}}async function v(){try{let a=q(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}return b.customModels&&(b.customModels=b.customModels.filter(a=>!a.id?.startsWith("custom:9Router")),0===b.customModels.length&&delete b.customModels),await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"9Router settings removed successfully"})}catch(a){return console.log("Error resetting droid settings:",a),e.NextResponse.json({error:"Failed to reset droid settings"},{status:500})}}(0,n.D)([t,u,v]),(0,d.A)(t,"002f464ab09d187fe5ca6c27ef250e14f3c7d87138",null),(0,d.A)(u,"40c2933a21e82221a7c89f37f580b92be1ca9b6bd7",null),(0,d.A)(v,"00081696414627e0360ac23da5754fdb662b9cdd98",null)},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},28354:a=>{"use strict";a.exports=require("util")},28759:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(4877);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/droid-settings/route",pathname:"/api/cli-tools/droid-settings",filename:"route",bundlePath:"app/api/cli-tools/droid-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/droid-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/droid-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},36906:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"00081696414627e0360ac23da5754fdb662b9cdd98":()=>d.DELETE,"002f464ab09d187fe5ca6c27ef250e14f3c7d87138":()=>d.GET,"40c2933a21e82221a7c89f37f580b92be1ca9b6bd7":()=>d.POST});var d=c(4877)},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=28759));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/droid-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..ec3c7dc8e64 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/droid-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/droid-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/droid-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/hermes-settings/route.js b/cli/app/.next/server/app/api/cli-tools/hermes-settings/route.js new file mode 100644 index 00000000000..65572e904a5 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/hermes-settings/route.js @@ -0,0 +1,10 @@ +(()=>{var a={};a.id=7311,a.ids=[7311],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},54393:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>y,GET:()=>w,POST:()=>x});var d=c(71266),e=c(86606),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(39990);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".hermes"),q=()=>k().join(p(),"config.yaml"),r=()=>k().join(p(),".env"),s=/^model:[ \t]*\r?\n((?:[ \t]+.*\r?\n?|[ \t]*\r?\n)*)/m,t=async()=>{try{let a="win32"===m().platform();return await o(a?"where hermes":"which hermes",{windowsHide:!0}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},u=async()=>{try{return await i().readFile(q(),"utf-8")}catch(a){if("ENOENT"===a.code)return"";throw a}},v=async()=>{try{return await i().readFile(r(),"utf-8")}catch(a){if("ENOENT"===a.code)return"";throw a}};async function w(){try{if(!await t())return e.NextResponse.json({installed:!1,settings:null,message:"Hermes Agent is not installed"});let a=await u(),b=(a=>{let b=a.match(s);if(!b)return null;let c=b[1]||"",d=a=>{let b=c.match(RegExp(`^[ \\t]+${a}:[ \\t]*["']?([^"'\\r\\n]+)["']?`,"m"));return b?b[1].trim():null};return{default:d("default"),provider:d("provider"),base_url:d("base_url")}})(a);return e.NextResponse.json({installed:!0,settings:{model:b},has9Router:!!b?.base_url&&"custom"===b.provider&&/localhost|127\.0\.0\.1|0\.0\.0\.0/.test(b.base_url),configPath:q()})}catch(a){return console.log("Error checking hermes settings:",a),e.NextResponse.json({error:"Failed to check hermes settings"},{status:500})}}async function x(a){try{var b,c,d,f;let{baseUrl:g,apiKey:h,model:j}=await a.json();if(!g||!j)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let k=p();await i().mkdir(k,{recursive:!0});let l=g.endsWith("/v1")?g:`${g}/v1`,m=(b=await u(),c=`model: + default: "${j}" + provider: "custom" + base_url: "${l}" +`,s.test(b)?b.replace(s,c):b.length>0?`${c} +${b}`:c);if(await i().writeFile(q(),m),h){let a,b,c=(d=await v(),f="OPENAI_API_KEY",a=RegExp(`^${f}=.*$`,"m"),b=`${f}=${h}`,a.test(d)?d.replace(a,b):d.length>0&&!d.endsWith("\n")?`${d} +${b} +`:`${d}${b} +`);await i().writeFile(r(),c)}return e.NextResponse.json({success:!0,message:"Hermes settings applied successfully!",configPath:q()})}catch(a){return console.log("Error updating hermes settings:",a),e.NextResponse.json({error:"Failed to update hermes settings"},{status:500})}}async function y(){try{let a=q(),b="";try{b=await i().readFile(a,"utf-8")}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}let c=b.replace(s,"").replace(/^\n+/,"");return await i().writeFile(a,c),e.NextResponse.json({success:!0,message:"9router model block removed"})}catch(a){return console.log("Error resetting hermes settings:",a),e.NextResponse.json({error:"Failed to reset hermes settings"},{status:500})}}(0,n.D)([w,x,y]),(0,d.A)(w,"0054998d0e0575a1cc2403bec46ab7f66b3e253c51",null),(0,d.A)(x,"40eb3fd1cb411590acb0b4fb0599099e1042daf735",null),(0,d.A)(y,"00153d06c353563c3cfbc5189bd1740182c2d6c3bd",null)},55925:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(54393);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/hermes-settings/route",pathname:"/api/cli-tools/hermes-settings",filename:"route",bundlePath:"app/api/cli-tools/hermes-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/hermes-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/hermes-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},69134:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"00153d06c353563c3cfbc5189bd1740182c2d6c3bd":()=>d.DELETE,"0054998d0e0575a1cc2403bec46ab7f66b3e253c51":()=>d.GET,"40eb3fd1cb411590acb0b4fb0599099e1042daf735":()=>d.POST});var d=c(54393)},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=55925));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/hermes-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..c8ad870a03d --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/hermes-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/hermes-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/hermes-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route.js b/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route.js new file mode 100644 index 00000000000..1fd61d7d1ec --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=1110,a.ids=[1110],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},24577:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(95258);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/openclaw-settings/route",pathname:"/api/cli-tools/openclaw-settings",filename:"route",bundlePath:"app/api/cli-tools/openclaw-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/openclaw-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/openclaw-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},27799:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"0034bb26a501bddec0558f525918e4ffa90b740e56":()=>d.DELETE,"00c431ac0a42cc98605b2dea6428bed43c727780f5":()=>d.GET,"40b3fb1cff1a7c2735872030c41a370652d7181e60":()=>d.POST});var d=c(95258)},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},95258:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>x,GET:()=>u,POST:()=>w});var d=c(71266),e=c(86606),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(39990);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".openclaw"),q=()=>k().join(p(),"openclaw.json"),r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where openclaw":"which openclaw",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},s=async()=>{try{let a=q(),b=await i().readFile(a,"utf-8");return JSON.parse(b)}catch(a){if("ENOENT"===a.code)return null;throw a}},t=async a=>{try{let b=k().join(a,"models.json"),c=await i().readFile(b,"utf-8"),d=JSON.parse(c),e=d?.providers?.["9router"]?.models;return e?.[0]?.id||null}catch{return null}};async function u(){try{if(!await r())return e.NextResponse.json({installed:!1,settings:null,message:"Open Claw CLI is not installed"});let a=await s(),b=a?.agents?.list||[],c=await Promise.all(b.map(async a=>{let b=a.agentDir?await t(a.agentDir):null;return{...a,currentModel:b}}));return e.NextResponse.json({installed:!0,settings:a,agents:c,has9Router:!!a&&!!a.models&&!!a.models.providers&&!!a.models.providers["9router"],settingsPath:q()})}catch(a){return console.log("Error checking openclaw settings:",a),e.NextResponse.json({error:"Failed to check openclaw settings"},{status:500})}}let v=async(a,b,c,d)=>{await i().mkdir(a,{recursive:!0});let e=k().join(a,"models.json"),f={};try{let a=await i().readFile(e,"utf-8");f=JSON.parse(a)}catch{}f.providers||(f.providers={}),f.providers["9router"]={baseUrl:c,apiKey:d||"your_api_key",api:"openai-completions",models:[{id:b,name:b.split("/").pop()||b}]},await i().writeFile(e,JSON.stringify(f,null,2))};async function w(a){try{let{baseUrl:b,apiKey:c,model:d,agentModels:f={}}=await a.json();if(!b||!d)return e.NextResponse.json({error:"baseUrl and model are required"},{status:400});let g=p(),h=q();await i().mkdir(g,{recursive:!0});let j={};try{let a=await i().readFile(h,"utf-8");j=JSON.parse(a)}catch{}j.agents||(j.agents={}),j.agents.defaults||(j.agents.defaults={}),j.agents.defaults.model||(j.agents.defaults.model={}),j.agents.defaults.models||(j.agents.defaults.models={}),j.models||(j.models={}),j.models.providers||(j.models.providers={});let k=b.endsWith("/v1")?b:`${b}/v1`,l=`9router/${d}`;Object.keys(j.agents.defaults.models).filter(a=>a.startsWith("9router/")).forEach(a=>{delete j.agents.defaults.models[a]}),j.agents.defaults.model.primary=l;let m=new Set([d]);return Object.values(f).forEach(a=>{a&&m.add(a)}),m.forEach(a=>{j.agents.defaults.models[`9router/${a}`]={}}),j.agents.list&&(j.agents.list=j.agents.list.map(a=>{if(a.model?.startsWith("9router/")){let{model:b,...c}=a;return c}return a})),j.models.providers["9router"]={baseUrl:k,apiKey:c||"your_api_key",api:"openai-completions",models:[...m].map(a=>({id:a,name:a.split("/").pop()||a}))},j.agents.list&&(j.agents.list=j.agents.list.map(a=>{let b=f[a.id];return b?{...a,model:`9router/${b}`}:a}),await Promise.all(j.agents.list.map(async a=>{if(!a.agentDir)return;let b=f[a.id];await v(a.agentDir,b||d,k,c)}))),await i().writeFile(h,JSON.stringify(j,null,2)),e.NextResponse.json({success:!0,message:"Open Claw settings applied successfully!",settingsPath:h})}catch(a){return console.log("Error updating openclaw settings:",a),e.NextResponse.json({error:"Failed to update openclaw settings"},{status:500})}}async function x(){try{let a=q(),b={};try{let c=await i().readFile(a,"utf-8");b=JSON.parse(c)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No settings file to reset"});throw a}if(b.models&&b.models.providers&&(delete b.models.providers["9router"],0===Object.keys(b.models.providers).length&&delete b.models.providers),b.agents?.defaults?.models){for(let a of Object.keys(b.agents.defaults.models).filter(a=>a.startsWith("9router/")))delete b.agents.defaults.models[a];0===Object.keys(b.agents.defaults.models).length&&delete b.agents.defaults.models}return b.agents?.defaults?.model?.primary?.startsWith("9router/")&&delete b.agents.defaults.model.primary,await i().writeFile(a,JSON.stringify(b,null,2)),e.NextResponse.json({success:!0,message:"9Router settings removed successfully"})}catch(a){return console.log("Error resetting openclaw settings:",a),e.NextResponse.json({error:"Failed to reset openclaw settings"},{status:500})}}(0,n.D)([u,w,x]),(0,d.A)(u,"00c431ac0a42cc98605b2dea6428bed43c727780f5",null),(0,d.A)(w,"40b3fb1cff1a7c2735872030c41a370652d7181e60",null),(0,d.A)(x,"0034bb26a501bddec0558f525918e4ffa90b740e56",null)}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=24577));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..50cd4664a16 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/openclaw-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/openclaw-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/openclaw-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/opencode-settings/route.js b/cli/app/.next/server/app/api/cli-tools/opencode-settings/route.js new file mode 100644 index 00000000000..612774646fa --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/opencode-settings/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=7508,a.ids=[7508],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},11624:(a,b,c)=>{"use strict";c.r(b),c.d(b,{DELETE:()=>w,GET:()=>t,PATCH:()=>v,POST:()=>u});var d=c(71266),e=c(86606),f=c(79646),g=c(28354),h=c(79748),i=c.n(h),j=c(33873),k=c.n(j),l=c(21820),m=c.n(l),n=c(39990);let o=(0,g.promisify)(f.exec),p=()=>k().join(m().homedir(),".config","opencode"),q=()=>k().join(p(),"opencode.json"),r=async()=>{try{let a="win32"===m().platform(),b=a?{...process.env,PATH:`${process.env.APPDATA}\\npm;${process.env.PATH}`}:process.env;return await o(a?"where opencode":"which opencode",{windowsHide:!0,env:b}),!0}catch{try{return await i().access(q()),!0}catch{return!1}}},s=async()=>{try{let a=await i().readFile(q(),"utf-8");return JSON.parse(a)}catch(a){if("ENOENT"===a.code)return null;throw a}};async function t(){try{if(!await r())return e.NextResponse.json({installed:!1,config:null,message:"OpenCode CLI is not installed"});let a=await s(),b=a?.provider?.["9router"],c=b?.models||{};return e.NextResponse.json({installed:!0,config:a,has9Router:!!a?.provider&&!!a.provider["9router"],configPath:q(),opencode:{models:Object.keys(c),activeModel:a?.model?.startsWith("9router/")?a.model.replace(/^9router\//,""):null,baseURL:b?.options?.baseURL||null}})}catch(a){return console.log("Error checking opencode settings:",a),e.NextResponse.json({error:"Failed to check opencode settings"},{status:500})}}async function u(a){try{let{baseUrl:b,apiKey:c,model:d,models:f,activeModel:g,subagentModel:h}=await a.json(),j=Array.isArray(f)?f.slice():"string"==typeof d?[d]:[];if(!b||0===j.length)return e.NextResponse.json({error:"baseUrl and at least one model are required"},{status:400});let k=p(),l=q();await i().mkdir(k,{recursive:!0});let m={};try{let a=await i().readFile(l,"utf-8");m=JSON.parse(a)}catch{}let n=b.endsWith("/v1")?b:`${b}/v1`,o=h||j[0];m.provider||(m.provider={});let r=m.provider["9router"]||{npm:"@ai-sdk/openai-compatible",options:{},models:{}};for(let a of(r.options={...r.options,baseURL:n,apiKey:c||"sk_9router"},r.models=r.models||{},j))a&&"string"==typeof a&&(r.models[a]={name:a});if(m.provider["9router"]=r,""===g)m.model="";else{let a=g||j[0];a&&(m.model=`9router/${a}`)}return m.agent||(m.agent={}),m.agent.explorer={description:"Fast explorer subagent for codebase exploration",mode:"subagent",model:`9router/${o}`},await i().writeFile(l,JSON.stringify(m,null,2)),e.NextResponse.json({success:!0,message:"OpenCode settings applied successfully!",configPath:l})}catch(a){return console.log("Error applying opencode settings:",a),e.NextResponse.json({error:"Failed to apply settings"},{status:500})}}async function v(a){try{let{clearActiveModel:b}=await a.json(),c=q(),d={};try{let a=await i().readFile(c,"utf-8");d=JSON.parse(a)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file found"});throw a}return!0===b&&d.model?.startsWith("9router/")&&(d.model=""),await i().writeFile(c,JSON.stringify(d,null,2)),e.NextResponse.json({success:!0,message:"Settings updated"})}catch(a){return console.log("Error patching opencode settings:",a),e.NextResponse.json({error:"Failed to patch settings"},{status:500})}}async function w(a){try{let{searchParams:b}=new URL(a.url),c=b.get("model"),d=q(),f={};try{let a=await i().readFile(d,"utf-8");f=JSON.parse(a)}catch(a){if("ENOENT"===a.code)return e.NextResponse.json({success:!0,message:"No config file to reset"});throw a}if(c&&f.provider?.["9router"]?.models){if(delete f.provider["9router"].models[c],0===Object.keys(f.provider["9router"].models).length)delete f.provider["9router"],f.model?.startsWith("9router/")&&delete f.model;else if(f.model===`9router/${c}`){let a=Object.keys(f.provider["9router"].models);f.model=`9router/${a[0]}`}}else f.provider&&delete f.provider["9router"],f.model?.startsWith("9router/")&&delete f.model;return f.agent?.explorer?.model?.startsWith("9router/")&&(delete f.agent.explorer,0===Object.keys(f.agent).length&&delete f.agent),await i().writeFile(d,JSON.stringify(f,null,2)),e.NextResponse.json({success:!0,message:c?`Model "${c}" removed`:"9Router settings removed from OpenCode"})}catch(a){return console.log("Error resetting opencode settings:",a),e.NextResponse.json({error:"Failed to reset opencode settings"},{status:500})}}(0,n.D)([t,u,v,w]),(0,d.A)(t,"008db9df614355a5563e33299d9b3b0856f2cd4afa",null),(0,d.A)(u,"4061ff2beedf8de739155fc38e246aec0c3c0d4b0c",null),(0,d.A)(v,"4071acff606ed5ec58b015cda9ec830bbee823002d",null),(0,d.A)(w,"40f70769a2ac49ea3748193b795f050c9a7c6c6965",null)},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31381:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(11624);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/cli-tools/opencode-settings/route",pathname:"/api/cli-tools/opencode-settings",filename:"route",bundlePath:"app/api/cli-tools/opencode-settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cli-tools/opencode-settings/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cli-tools/opencode-settings/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},94709:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"008db9df614355a5563e33299d9b3b0856f2cd4afa":()=>d.GET,"4061ff2beedf8de739155fc38e246aec0c3c0d4b0c":()=>d.POST,"4071acff606ed5ec58b015cda9ec830bbee823002d":()=>d.PATCH,"40f70769a2ac49ea3748193b795f050c9a7c6c6965":()=>d.DELETE});var d=c(11624)}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=31381));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json b/cli/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/opencode-settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..38e9be1158e --- /dev/null +++ b/cli/app/.next/server/app/api/cli-tools/opencode-settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cli-tools/opencode-settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cli-tools/opencode-settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/auth/route.js b/cli/app/.next/server/app/api/cloud/auth/route.js new file mode 100644 index 00000000000..7089dab10ba --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/auth/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3102,a.ids=[3102],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},24849:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){try{let b=a.headers.get("Authorization");if(!b?.startsWith("Bearer "))return v.NextResponse.json({error:"Missing API key"},{status:401});let c=b.slice(7);if(!await (0,w.ek)(c))return v.NextResponse.json({error:"Invalid API key"},{status:401});let d=(await (0,w.P)({isActive:!0})).map(a=>({provider:a.provider,authType:a.authType,apiKey:a.apiKey||null,accessToken:a.accessToken||null,refreshToken:a.refreshToken||null,projectId:a.projectId||null,expiresAt:a.expiresAt,priority:a.priority,globalPriority:a.globalPriority,defaultModel:a.defaultModel,isActive:a.isActive})),e=await (0,w.OM)();return v.NextResponse.json({connections:d,modelAliases:e})}catch(a){return console.log("Cloud auth error:",a),v.NextResponse.json({error:"Internal error"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/cloud/auth/route",pathname:"/api/cloud/auth",filename:"route",bundlePath:"app/api/cloud/auth/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cloud/auth/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cloud/auth/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=24849));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/auth/route.js.nft.json b/cli/app/.next/server/app/api/cloud/auth/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/auth/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js new file mode 100644 index 00000000000..b86e669208a --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/auth/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cloud/auth/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cloud/auth/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/credentials/update/route.js b/cli/app/.next/server/app/api/cloud/credentials/update/route.js new file mode 100644 index 00000000000..9b79722fd26 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/credentials/update/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1070,a.ids=[1070],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4991:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{PUT:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){try{let b=a.headers.get("Authorization");if(!b?.startsWith("Bearer "))return v.NextResponse.json({error:"Missing API key"},{status:401});let c=b.slice(7),{provider:d,credentials:e}=await a.json();if(!d||!e)return v.NextResponse.json({error:"Provider and credentials required"},{status:400});if(!await (0,w.ek)(c))return v.NextResponse.json({error:"Invalid API key"},{status:401});let f=(await (0,w.P)({provider:d,isActive:!0}))[0];if(!f)return v.NextResponse.json({error:`No active connection found for provider: ${d}`},{status:404});let g={};return e.accessToken&&(g.accessToken=e.accessToken),e.refreshToken&&(g.refreshToken=e.refreshToken),e.expiresIn&&(g.expiresAt=new Date(Date.now()+1e3*e.expiresIn).toISOString()),await (0,w.rj)(f.id,g),v.NextResponse.json({success:!0,message:`Credentials updated for provider: ${d}`})}catch(a){return console.log("Update credentials error:",a),v.NextResponse.json({error:"Failed to update credentials"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/cloud/credentials/update/route",pathname:"/api/cloud/credentials/update",filename:"route",bundlePath:"app/api/cloud/credentials/update/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cloud/credentials/update/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cloud/credentials/update/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=4991));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json b/cli/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json new file mode 100644 index 00000000000..28ab72a9e13 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/credentials/update/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js new file mode 100644 index 00000000000..2d1374e5063 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/credentials/update/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cloud/credentials/update/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cloud/credentials/update/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/model/resolve/route.js b/cli/app/.next/server/app/api/cloud/model/resolve/route.js new file mode 100644 index 00000000000..a49a94883f5 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/model/resolve/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=7442,a.ids=[7442],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},65367:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){try{let b=a.headers.get("Authorization");if(!b?.startsWith("Bearer "))return v.NextResponse.json({error:"Missing API key"},{status:401});let c=b.slice(7),{alias:d}=await a.json();if(!d)return v.NextResponse.json({error:"Missing alias"},{status:400});if(!await (0,w.ek)(c))return v.NextResponse.json({error:"Invalid API key"},{status:401});let e=(await (0,w.OM)())[d];if(e){let a=e.indexOf("/");if(a>0)return v.NextResponse.json({alias:d,provider:e.slice(0,a),model:e.slice(a+1)})}return v.NextResponse.json({error:"Alias not found"},{status:404})}catch(a){return console.log("Model resolve error:",a),v.NextResponse.json({error:"Internal error"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/cloud/model/resolve/route",pathname:"/api/cloud/model/resolve",filename:"route",bundlePath:"app/api/cloud/model/resolve/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cloud/model/resolve/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cloud/model/resolve/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=65367));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json b/cli/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json new file mode 100644 index 00000000000..28ab72a9e13 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/model/resolve/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js new file mode 100644 index 00000000000..8b035c8ae0e --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/model/resolve/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cloud/model/resolve/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cloud/model/resolve/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/models/alias/route.js b/cli/app/.next/server/app/api/cloud/models/alias/route.js new file mode 100644 index 00000000000..f5e48390733 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/models/alias/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=5079,a.ids=[5079],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},56169:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,PUT:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){try{let b=a.headers.get("authorization"),c=b?.replace("Bearer ","");if(!c)return v.NextResponse.json({error:"Missing API key"},{status:401});if(!await (0,w.ek)(c))return v.NextResponse.json({error:"Invalid API key"},{status:401});let{model:d,alias:e}=await a.json();if(!d||!e)return v.NextResponse.json({error:"Model and alias required"},{status:400});let f=(await (0,w.OM)())[e];if(f&&f!==d)return v.NextResponse.json({error:`Alias '${e}' already in use for model '${f}'`},{status:400});return await (0,w.o5)(e,d),v.NextResponse.json({success:!0,model:d,alias:e,message:`Alias '${e}' set for model '${d}'`})}catch(a){return console.log("Error updating alias:",a),v.NextResponse.json({error:"Failed to update alias"},{status:500})}}async function y(a){try{let b=a.headers.get("authorization"),c=b?.replace("Bearer ","");if(!c)return v.NextResponse.json({error:"Missing API key"},{status:401});if(!await (0,w.ek)(c))return v.NextResponse.json({error:"Invalid API key"},{status:401});let d=await (0,w.OM)();return v.NextResponse.json({aliases:d})}catch(a){return console.log("Error fetching aliases:",a),v.NextResponse.json({error:"Failed to fetch aliases"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/cloud/models/alias/route",pathname:"/api/cloud/models/alias",filename:"route",bundlePath:"app/api/cloud/models/alias/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/cloud/models/alias/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/cloud/models/alias/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=56169));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/models/alias/route.js.nft.json b/cli/app/.next/server/app/api/cloud/models/alias/route.js.nft.json new file mode 100644 index 00000000000..28ab72a9e13 --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/models/alias/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js b/cli/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js new file mode 100644 index 00000000000..fc532866d9b --- /dev/null +++ b/cli/app/.next/server/app/api/cloud/models/alias/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/cloud/models/alias/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/cloud/models/alias/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/combos/[id]/route.js b/cli/app/.next/server/app/api/combos/[id]/route.js new file mode 100644 index 00000000000..9f376a1ee50 --- /dev/null +++ b/cli/app/.next/server/app/api/combos/[id]/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=335,a.ids=[335],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2449:(a,b,c)=>{"use strict";c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(73714);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29807:(a,b,c)=>{"use strict";c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48146:(a,b,c)=>{"use strict";c.d(b,{Pr:()=>i,UP:()=>g,Vu:()=>h});var d=c(2449),e=c(29807);let f=new Map;function g(a){a?f.delete(a):f.clear()}function h(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function i({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:j,comboStickyLimit:k=1}){let l=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let g=b||"__default__",h=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,i=f.get(g),j="number"==typeof i?{index:i,consecutiveUseCount:0}:i||{index:0,consecutiveUseCount:0},k=j.index%a.length,l=function(a,b){let c=[...a];for(let a=0;a=h?f.set(g,{index:(k+1)%a.length,consecutiveUseCount:0}):f.set(g,{index:k,consecutiveUseCount:m}),l}(b,h,j,k),m=null,n=null,o=null;for(let b=0;b0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),m=f||String(b.status),o||(o=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){m=a.message||String(a),o||(o=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:m})}}let p=m&&m.toLowerCase().includes("no credentials")?503:o||503,q=m||"All combo models unavailable";if(n){let a=(0,d.Qo)(n);return g.warn("COMBO",`All models failed | ${q} (${a})`),(0,e.wO)(p,q,n,a)}return g.warn("COMBO",`All models failed | ${q}`),new Response(JSON.stringify({error:{message:q}}),{status:p,headers:{"Content-Type":"application/json"}})}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},60592:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{DELETE:()=>B,GET:()=>z,PUT:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(48146);let y=/^[a-zA-Z0-9_.\-]+$/;async function z(a,{params:b}){try{let{id:a}=await b,c=await (0,w.L)(a);if(!c)return v.NextResponse.json({error:"Combo not found"},{status:404});return v.NextResponse.json(c)}catch(a){return console.log("Error fetching combo:",a),v.NextResponse.json({error:"Failed to fetch combo"},{status:500})}}async function A(a,{params:b}){try{let{id:c}=await b,d=await a.json();if(d.name){if(!y.test(d.name))return v.NextResponse.json({error:"Name can only contain letters, numbers, -, _ and ."},{status:400});let a=await (0,w.Dj)(d.name);if(a&&a.id!==c)return v.NextResponse.json({error:"Combo name already exists"},{status:400})}let e=await (0,w.L)(c),f=await (0,w.oG)(c,d);if(!f)return v.NextResponse.json({error:"Combo not found"},{status:404});return e?.name&&(0,x.UP)(e.name),f.name&&f.name!==e?.name&&(0,x.UP)(f.name),v.NextResponse.json(f)}catch(a){return console.log("Error updating combo:",a),v.NextResponse.json({error:"Failed to update combo"},{status:500})}}async function B(a,{params:b}){try{let{id:a}=await b,c=await (0,w.L)(a);if(!await (0,w.CG)(a))return v.NextResponse.json({error:"Combo not found"},{status:404});return c?.name&&(0,x.UP)(c.name),v.NextResponse.json({success:!0})}catch(a){return console.log("Error deleting combo:",a),v.NextResponse.json({error:"Failed to delete combo"},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/combos/[id]/route",pathname:"/api/combos/[id]",filename:"route",bundlePath:"app/api/combos/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/combos/[id]/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/combos/[id]/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73714:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=60592));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/combos/[id]/route.js.nft.json b/cli/app/.next/server/app/api/combos/[id]/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/combos/[id]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js new file mode 100644 index 00000000000..bbb38d02c98 --- /dev/null +++ b/cli/app/.next/server/app/api/combos/[id]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/combos/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/combos/[id]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/combos/route.js b/cli/app/.next/server/app/api/combos/route.js new file mode 100644 index 00000000000..f3850f64b85 --- /dev/null +++ b/cli/app/.next/server/app/api/combos/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=931,a.ids=[931],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73300:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>z,POST:()=>A,dynamic:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);let x="force-dynamic",y=/^[a-zA-Z0-9_.\-]+$/;async function z(){try{let a=await (0,w.Uv)();return v.NextResponse.json({combos:a})}catch(a){return console.log("Error fetching combos:",a),v.NextResponse.json({error:"Failed to fetch combos"},{status:500})}}async function A(a){try{let{name:b,models:c,kind:d}=await a.json();if(!b)return v.NextResponse.json({error:"Name is required"},{status:400});if(!y.test(b))return v.NextResponse.json({error:"Name can only contain letters, numbers, -, _ and ."},{status:400});if(await (0,w.Dj)(b))return v.NextResponse.json({error:"Combo name already exists"},{status:400});let e=await (0,w.jd)({name:b,models:c||[],kind:d||null});return v.NextResponse.json(e,{status:201})}catch(a){return console.log("Error creating combo:",a),v.NextResponse.json({error:"Failed to create combo"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/combos/route",pathname:"/api/combos",filename:"route",bundlePath:"app/api/combos/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/combos/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/combos/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=73300));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/combos/route.js.nft.json b/cli/app/.next/server/app/api/combos/route.js.nft.json new file mode 100644 index 00000000000..5f2d4ea4fa0 --- /dev/null +++ b/cli/app/.next/server/app/api/combos/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/combos/route_client-reference-manifest.js b/cli/app/.next/server/app/api/combos/route_client-reference-manifest.js new file mode 100644 index 00000000000..f6781568ddf --- /dev/null +++ b/cli/app/.next/server/app/api/combos/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/combos/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/combos/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/health/route.js b/cli/app/.next/server/app/api/health/route.js new file mode 100644 index 00000000000..7aa8a39422f --- /dev/null +++ b/cli/app/.next/server/app/api/health/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2772,a.ids=[2772],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},57336:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>C,patchFetch:()=>B,routeModule:()=>x,serverHooks:()=>A,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>z});var d={};c.r(d),c.d(d,{GET:()=>w});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606);async function w(){return v.NextResponse.json({ok:!0})}let x=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/health/route",pathname:"/api/health",filename:"route",bundlePath:"app/api/health/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/health/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:y,workUnitAsyncStorage:z,serverHooks:A}=x;function B(){return(0,g.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:z})}async function C(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),x.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/health/route";"/index"===d&&(d="/");let e=await x.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||x.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===x.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await x.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>x.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>x.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await x.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await x.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await x.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=57336));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/health/route.js.nft.json b/cli/app/.next/server/app/api/health/route.js.nft.json new file mode 100644 index 00000000000..2b6f158d9d8 --- /dev/null +++ b/cli/app/.next/server/app/api/health/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../package.json","../../../chunks/6799.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/health/route_client-reference-manifest.js b/cli/app/.next/server/app/api/health/route_client-reference-manifest.js new file mode 100644 index 00000000000..a5f0ea5ca5a --- /dev/null +++ b/cli/app/.next/server/app/api/health/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/health/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/health/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/init/route.js b/cli/app/.next/server/app/api/init/route.js new file mode 100644 index 00000000000..92995322b99 --- /dev/null +++ b/cli/app/.next/server/app/api/init/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1288,a.ids=[1288],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},26217:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>B,patchFetch:()=>A,routeModule:()=>w,serverHooks:()=>z,workAsyncStorage:()=>x,workUnitAsyncStorage:()=>y});var d={};c.r(d),c.d(d,{GET:()=>v});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509);async function v(){return new Response("Initialized",{status:200})}c(56502);let w=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/init/route",pathname:"/api/init",filename:"route",bundlePath:"app/api/init/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/init/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:x,workUnitAsyncStorage:y,serverHooks:z}=w;function A(){return(0,g.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:y})}async function B(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),w.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/init/route";"/index"===d&&(d="/");let e=await w.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||w.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===w.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await w.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>w.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>w.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await w.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await w.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await w.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},56502:(a,b,c)=>{"use strict";var d=c(21820),e=c.n(d),f=c(79551),g=c(33873),h=c(29021),i=c(37770),j=c(88035),k=c(54495),l=c(13774),m=c(19931),n=c(91160),o=c(50304),p=c(50514);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///Users/Working/router4/app/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,p.initDbHooks)(i.getSettings,i.Xx)}catch{}process.setMaxListeners(20);let q=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function r(){try{await (0,i.bI)();let a=await (0,i.getSettings)();if(a.tunnelEnabled&&!q.tunnelAutoResumed&&(q.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),a.tailscaleEnabled&&!q.tailscaleAutoResumed&&(q.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),!q.signalHandlersRegistered){let a=()=>{try{(0,p.removeAllDNSEntriesSync)()}catch{}(0,k.ss)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,p.removeAllDNSEntriesSync)()}catch{}}),q.signalHandlersRegistered=!0}(0,k.Al)().catch(()=>{}),!q.watchdogInterval&&(q.watchdogInterval=setInterval(()=>{t("watchdog").catch(()=>{}),u("watchdog").catch(()=>{})},o.DA),q.watchdogInterval.unref&&q.watchdogInterval.unref()),!q.networkMonitorInterval&&(q.lastNetworkFingerprint=v(),q.lastWatchdogTick=Date.now(),q.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-q.lastWatchdogTick;q.lastWatchdogTick=a;let c=v(),d=c!==q.lastNetworkFingerprint,e=b>3*o.rI;if(d&&(q.lastNetworkFingerprint=c),!d&&!e)return;await new Promise(a=>setTimeout(a,o.cw));let f=e&&d?"sleep+netchange":e?"sleep":"netchange";t(f).catch(()=>{}),u(f).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},o.rI),q.networkMonitorInterval.unref&&q.networkMonitorInterval.unref()),s()}catch(a){console.error("[InitApp] Error:",a)}}async function s(){if(!q.mitmStartInProgress){q.mitmStartInProgress=!0;try{if(!(await (0,i.getSettings)()).mitmEnabled||(await (0,p.getMitmStatus)()).running)return;let a=await (0,p.loadEncryptedPassword)();if(!a&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let b=(await (0,i.getApiKeys)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,p.startMitm)(b?.key||"sk_9router",a),console.log("[InitApp] MITM auto-started");try{await (0,p.restoreToolDNS)(a),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{q.mitmStartInProgress=!1}}}async function t(a){let b=(0,j.Qn)();if(!(!(await (0,i.getSettings)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress||Date.now()-b.lastRestartAt{try{await r(),w.initialized=!0}catch(a){console.error("[ServerInit] Error initializing app:",a)}finally{w.inProgress=null}return w.initialized})()),w.inProgress)}"phase-production-build"!==process.env.NEXT_PHASE&&x().catch(console.log)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,7770,2503,514,3774,8035],()=>b(b.s=26217));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/init/route.js.nft.json b/cli/app/.next/server/app/api/init/route.js.nft.json new file mode 100644 index 00000000000..86ddd3d422a --- /dev/null +++ b/cli/app/.next/server/app/api/init/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/mitm/server.js","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/2503.js","../../../chunks/2566.js","../../../chunks/3656.js","../../../chunks/3774.js","../../../chunks/514.js","../../../chunks/5978.js","../../../chunks/64.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../chunks/8035.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/init/route_client-reference-manifest.js b/cli/app/.next/server/app/api/init/route_client-reference-manifest.js new file mode 100644 index 00000000000..a699377c4f8 --- /dev/null +++ b/cli/app/.next/server/app/api/init/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/init/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/init/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/keys/[id]/route.js b/cli/app/.next/server/app/api/keys/[id]/route.js new file mode 100644 index 00000000000..b5a342358ab --- /dev/null +++ b/cli/app/.next/server/app/api/keys/[id]/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2296,a.ids=[2296],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},26158:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{DELETE:()=>z,GET:()=>x,PUT:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);async function x(a,{params:b}){try{let{id:a}=await b,c=await (0,w.yg)(a);if(!c)return v.NextResponse.json({error:"Key not found"},{status:404});return v.NextResponse.json({key:c})}catch(a){return console.log("Error fetching key:",a),v.NextResponse.json({error:"Failed to fetch key"},{status:500})}}async function y(a,{params:b}){try{let{id:c}=await b,{isActive:d}=await a.json();if(!await (0,w.yg)(c))return v.NextResponse.json({error:"Key not found"},{status:404});let e={};void 0!==d&&(e.isActive=d);let f=await (0,w.XW)(c,e);return v.NextResponse.json({key:f})}catch(a){return console.log("Error updating key:",a),v.NextResponse.json({error:"Failed to update key"},{status:500})}}async function z(a,{params:b}){try{let{id:a}=await b;if(!await (0,w.Lh)(a))return v.NextResponse.json({error:"Key not found"},{status:404});return v.NextResponse.json({message:"Key deleted successfully"})}catch(a){return console.log("Error deleting key:",a),v.NextResponse.json({error:"Failed to delete key"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/keys/[id]/route",pathname:"/api/keys/[id]",filename:"route",bundlePath:"app/api/keys/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/keys/[id]/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/keys/[id]/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=26158));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/keys/[id]/route.js.nft.json b/cli/app/.next/server/app/api/keys/[id]/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/keys/[id]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js new file mode 100644 index 00000000000..cabeb6f1ddd --- /dev/null +++ b/cli/app/.next/server/app/api/keys/[id]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/keys/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/keys/[id]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/keys/route.js b/cli/app/.next/server/app/api/keys/route.js new file mode 100644 index 00000000000..849275d5283 --- /dev/null +++ b/cli/app/.next/server/app/api/keys/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1666,a.ids=[1666],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33456:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>z,POST:()=>A,dynamic:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(99119);let y="force-dynamic";async function z(){try{let a=await (0,w.getApiKeys)();return v.NextResponse.json({keys:a})}catch(a){return console.log("Error fetching keys:",a),v.NextResponse.json({error:"Failed to fetch keys"},{status:500})}}async function A(a){try{let{name:b}=await a.json();if(!b)return v.NextResponse.json({error:"Name is required"},{status:400});let c=await (0,x.Xj)(),d=await (0,w.Iq)(b,c);return v.NextResponse.json({key:d.key,name:d.name,id:d.id,machineId:d.machineId},{status:201})}catch(a){return console.log("Error creating key:",a),v.NextResponse.json({error:"Failed to create key"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/keys/route",pathname:"/api/keys",filename:"route",bundlePath:"app/api/keys/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/keys/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/keys/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},99119:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(20243);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,7770],()=>b(b.s=33456));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/keys/route.js.nft.json b/cli/app/.next/server/app/api/keys/route.js.nft.json new file mode 100644 index 00000000000..2057159dd7a --- /dev/null +++ b/cli/app/.next/server/app/api/keys/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/2566.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/keys/route_client-reference-manifest.js b/cli/app/.next/server/app/api/keys/route_client-reference-manifest.js new file mode 100644 index 00000000000..c7eca644a5a --- /dev/null +++ b/cli/app/.next/server/app/api/keys/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/keys/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/keys/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/locale/route.js b/cli/app/.next/server/app/api/locale/route.js new file mode 100644 index 00000000000..0b01818a9c0 --- /dev/null +++ b/cli/app/.next/server/app/api/locale/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3568,a.ids=[3568],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},30725:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(11735),w=c(86606);let x=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"];async function y(a){try{let{locale:b}=await a.json();if(!b||!x.includes(b))return w.NextResponse.json({error:"Invalid locale"},{status:400});let c="zh"===b||"zh-CN"===b?"zh-CN":"en"===b?"en":"vi"===b?"vi":"zh-TW"===b?"zh-TW":"ja"===b?"ja":"pt-BR"===b?"pt-BR":"pt-PT"===b?"pt-PT":"ko"===b?"ko":"es"===b?"es":"de"===b?"de":"fr"===b?"fr":"he"===b?"he":"ar"===b?"ar":"ru"===b?"ru":"pl"===b?"pl":"cs"===b?"cs":"nl"===b?"nl":"tr"===b?"tr":"uk"===b?"uk":"tl"===b?"tl":"id"===b?"id":"th"===b?"th":"hi"===b?"hi":"bn"===b?"bn":"ur"===b?"ur":"ro"===b?"ro":"sv"===b?"sv":"it"===b?"it":"el"===b?"el":"hu"===b?"hu":"fi"===b?"fi":"da"===b?"da":"no"===b?"no":"en";return(await (0,v.UL)()).set("locale",c,{path:"/",maxAge:31536e3}),w.NextResponse.json({success:!0,locale:c})}catch(a){return w.NextResponse.json({error:"Failed to set locale"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/locale/route",pathname:"/api/locale",filename:"route",bundlePath:"app/api/locale/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/locale/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/locale/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,1735],()=>b(b.s=30725));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/locale/route.js.nft.json b/cli/app/.next/server/app/api/locale/route.js.nft.json new file mode 100644 index 00000000000..ffc8423374c --- /dev/null +++ b/cli/app/.next/server/app/api/locale/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../package.json","../../../chunks/1735.js","../../../chunks/6799.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/locale/route_client-reference-manifest.js b/cli/app/.next/server/app/api/locale/route_client-reference-manifest.js new file mode 100644 index 00000000000..5bfae4f79b4 --- /dev/null +++ b/cli/app/.next/server/app/api/locale/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/locale/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/locale/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js b/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js new file mode 100644 index 00000000000..7dc3d90ed5c --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=6319,a.ids=[6319],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81036:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);let x=new Intl.DisplayNames(["en"],{type:"language"});async function y(a){try{let{searchParams:b}=new URL(a.url),c=b.get("lang"),d=await (0,w.getProviderConnections)({provider:"deepgram",isActive:!0}),e=d[0]?.apiKey;if(!e)return v.NextResponse.json({error:"No Deepgram connection found"},{status:400});let f=await fetch("https://api.deepgram.com/v1/models",{headers:{Authorization:`Token ${e}`}});if(!f.ok){let a=await f.text().catch(()=>"");return v.NextResponse.json({error:`Deepgram API ${f.status}: ${a||"Failed"}`},{status:502})}let g=(await f.json()).tts||[],h={};for(let a of g)for(let b of Array.isArray(a.languages)&&a.languages.length?a.languages:[a.canonical_name?.split("-").pop()||"en"]){h[b]||(h[b]={code:b,name:(()=>{try{return x.of(b)}catch{return b}})(),voices:[]});let c=a.canonical_name||a.name;h[b].voices.find(a=>a.id===c)||h[b].voices.push({id:c,name:a.name||c,gender:a.metadata?.tags?.find(a=>"masculine"===a||"feminine"===a)||"",lang:b})}let i=Object.values(h).sort((a,b)=>a.name.localeCompare(b.name));if(c)return v.NextResponse.json({voices:h[c]?.voices||[]});return v.NextResponse.json({languages:i,byLang:h})}catch(a){return v.NextResponse.json({error:a.message||"Failed to fetch voices"},{status:502})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/media-providers/tts/deepgram/voices/route",pathname:"/api/media-providers/tts/deepgram/voices",filename:"route",bundlePath:"app/api/media-providers/tts/deepgram/voices/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/media-providers/tts/deepgram/voices/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/media-providers/tts/deepgram/voices/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=81036));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json b/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json new file mode 100644 index 00000000000..a515d50cfde --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../../node_modules/react/index.js","../../../../../../../../../node_modules/react/package.json","../../../../../../../../../package.json","../../../../../../../../package.json","../../../../../../../../src/shared/utils/apiKey.js","../../../../../../../package.json","../../../../../../chunks/1249.js","../../../../../../chunks/3656.js","../../../../../../chunks/64.js","../../../../../../chunks/6799.js","../../../../../../chunks/7770.js","../../../../../../chunks/7773.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js b/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js new file mode 100644 index 00000000000..4703ea2de19 --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/deepgram/voices/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/media-providers/tts/deepgram/voices/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/media-providers/tts/deepgram/voices/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js b/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js new file mode 100644 index 00000000000..abfe271d0e4 --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=387,a.ids=[387],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},19446:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(77301);let y=new Intl.DisplayNames(["en"],{type:"language"});async function z(a){try{let{searchParams:b}=new URL(a.url),c=b.get("lang"),d=await (0,w.getProviderConnections)({provider:"elevenlabs",isActive:!0}),e=d[0]?.apiKey;if(!e)return v.NextResponse.json({error:"No ElevenLabs connection found"},{status:400});let f=await (0,x.Nq)(e),g={},h=(a,b)=>{g[a]||(g[a]={code:a,name:(()=>{try{return y.of(a)}catch{return a}})(),voices:[]}),g[a].voices.find(a=>a.id===b.voice_id)||g[a].voices.push({id:b.voice_id,name:b.name,gender:b.labels?.gender||"",lang:a,free_users_allowed:"premade"===b.category||!0===b.is_owner})};for(let a of f){let b=a.labels?.language||"en";for(let c of(h(b,a),a.verified_languages||[]))c.language&&c.language!==b&&h(c.language,a)}let i=Object.values(g).sort((a,b)=>a.name.localeCompare(b.name));if(c)return v.NextResponse.json({voices:g[c]?.voices||[]});return v.NextResponse.json({languages:i,byLang:g})}catch(a){return v.NextResponse.json({error:a.message||"Failed to fetch voices"},{status:502})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/media-providers/tts/elevenlabs/voices/route",pathname:"/api/media-providers/tts/elevenlabs/voices",filename:"route",bundlePath:"app/api/media-providers/tts/elevenlabs/voices/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/media-providers/tts/elevenlabs/voices/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/media-providers/tts/elevenlabs/voices/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29807:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,8525],()=>b(b.s=19446));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json b/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json new file mode 100644 index 00000000000..2f732bce89a --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../../node_modules/react/index.js","../../../../../../../../../node_modules/react/package.json","../../../../../../../../../package.json","../../../../../../../../package.json","../../../../../../../../src/shared/utils/apiKey.js","../../../../../../../package.json","../../../../../../chunks/1249.js","../../../../../../chunks/21.js","../../../../../../chunks/3656.js","../../../../../../chunks/64.js","../../../../../../chunks/6799.js","../../../../../../chunks/7770.js","../../../../../../chunks/7773.js","../../../../../../chunks/8525.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js b/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js new file mode 100644 index 00000000000..ffcd8853ce4 --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/elevenlabs/voices/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/media-providers/tts/elevenlabs/voices/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/media-providers/tts/elevenlabs/voices/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js b/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js new file mode 100644 index 00000000000..610b440e45a --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=6743,a.ids=[6743],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},66884:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);let x=new Intl.DisplayNames(["en"],{type:"language"});async function y(a){try{let{searchParams:b}=new URL(a.url),c=b.get("lang"),d=await (0,w.getProviderConnections)({provider:"inworld",isActive:!0}),e=d[0]?.apiKey;if(!e)return v.NextResponse.json({error:"No Inworld connection found"},{status:400});let f=await fetch("https://api.inworld.ai/tts/v1/voices",{headers:{Authorization:`Basic ${e}`}});if(!f.ok){let a=await f.text().catch(()=>"");return v.NextResponse.json({error:`Inworld API ${f.status}: ${a||"Failed"}`},{status:502})}let g=(await f.json()).voices||[],h={};for(let a of g)for(let b of Array.isArray(a.languages)&&a.languages.length?a.languages:["en"])h[b]||(h[b]={code:b,name:(()=>{try{return x.of(b)}catch{return b}})(),voices:[]}),h[b].voices.find(b=>b.id===a.voiceId)||h[b].voices.push({id:a.voiceId,name:a.displayName||a.voiceId,gender:a.gender||"",lang:b});let i=Object.values(h).sort((a,b)=>a.name.localeCompare(b.name));if(c)return v.NextResponse.json({voices:h[c]?.voices||[]});return v.NextResponse.json({languages:i,byLang:h})}catch(a){return v.NextResponse.json({error:a.message||"Failed to fetch voices"},{status:502})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/media-providers/tts/inworld/voices/route",pathname:"/api/media-providers/tts/inworld/voices",filename:"route",bundlePath:"app/api/media-providers/tts/inworld/voices/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/media-providers/tts/inworld/voices/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/media-providers/tts/inworld/voices/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=66884));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json b/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json new file mode 100644 index 00000000000..a515d50cfde --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../../node_modules/next/package.json","../../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../../node_modules/react/index.js","../../../../../../../../../node_modules/react/package.json","../../../../../../../../../package.json","../../../../../../../../package.json","../../../../../../../../src/shared/utils/apiKey.js","../../../../../../../package.json","../../../../../../chunks/1249.js","../../../../../../chunks/3656.js","../../../../../../chunks/64.js","../../../../../../chunks/6799.js","../../../../../../chunks/7770.js","../../../../../../chunks/7773.js","../../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js b/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js new file mode 100644 index 00000000000..7327d103433 --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/inworld/voices/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/media-providers/tts/inworld/voices/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/media-providers/tts/inworld/voices/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/voices/route.js b/cli/app/.next/server/app/api/media-providers/tts/voices/route.js new file mode 100644 index 00000000000..e10b4fdeaaa --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/voices/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=4245,a.ids=[4245],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29807:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},31421:a=>{a.exports=require("node:child_process")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68624:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(77301),w=c(86606);let x=new Intl.DisplayNames(["en"],{type:"region"}),y=new Intl.DisplayNames(["en"],{type:"language"});function z(a){try{return x.of(a)}catch{return a}}function A(a){try{return y.of(a)}catch{return a}}async function B(a){try{let b,{searchParams:c}=new URL(a.url),d=c.get("provider")||"edge-tts",e=c.get("lang"),f=c.get("apiKey"),g=v.Op[d];if(!g)return w.NextResponse.json({error:`Provider '${d}' does not support voice listing`},{status:400});let h="elevenlabs"===d?await g(f):await g();b="local-device"===d?h.map(a=>({id:a.id,name:a.name,locale:a.locale.replace("_","-"),lang:a.lang,country:a.country,countryName:z(a.country),langName:A(a.lang),gender:a.gender})):"elevenlabs"===d||"gemini"===d?h.map(a=>({id:a.voice_id,name:a.name,locale:a.labels?.language||"en",lang:(a.labels?.language||"en").split("-")[0],country:"",countryName:"",langName:A((a.labels?.language||"en").split("-")[0]),gender:a.labels?.gender||"",category:a.category})):h.map(a=>{let[b,c]=a.Locale.split("-");return{id:a.ShortName,name:(a.FriendlyName||a.ShortName).replace("Microsoft ","").replace(/ Online \(Natural\) - /g," ("),locale:a.Locale,lang:b,country:c||"",countryName:z(c||b),langName:A(b),gender:a.Gender}}),e&&(b=b.filter(a=>a.lang===e));let i={};for(let a of b){let b=a.lang;i[b]||(i[b]={code:b,name:a.langName,voices:[]}),i[b].voices.push(a)}let j=Object.values(i).sort((a,b)=>a.name.localeCompare(b.name));return w.NextResponse.json({voices:b,languages:j,byLang:i})}catch(a){return w.NextResponse.json({error:a.message||"Failed to fetch voices"},{status:502})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/media-providers/tts/voices/route",pathname:"/api/media-providers/tts/voices",filename:"route",bundlePath:"app/api/media-providers/tts/voices/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/media-providers/tts/voices/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/media-providers/tts/voices/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},76760:a=>{a.exports=require("node:path")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,8525],()=>b(b.s=68624));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json b/cli/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json new file mode 100644 index 00000000000..9c98604ee91 --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/voices/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/21.js","../../../../../chunks/6799.js","../../../../../chunks/7773.js","../../../../../chunks/8525.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js b/cli/app/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js new file mode 100644 index 00000000000..222fd6b2cfd --- /dev/null +++ b/cli/app/.next/server/app/api/media-providers/tts/voices/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/media-providers/tts/voices/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/media-providers/tts/voices/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/alias/route.js b/cli/app/.next/server/app/api/models/alias/route.js new file mode 100644 index 00000000000..3c3fad8eaf4 --- /dev/null +++ b/cli/app/.next/server/app/api/models/alias/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=9141,a.ids=[9141],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},68886:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,PUT:()=>z,dynamic:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);let x="force-dynamic";async function y(){try{let a=await (0,w.OM)();return v.NextResponse.json({aliases:a})}catch(a){return console.log("Error fetching aliases:",a),v.NextResponse.json({error:"Failed to fetch aliases"},{status:500})}}async function z(a){try{let{model:b,alias:c}=await a.json();if(!b||!c)return v.NextResponse.json({error:"Model and alias required"},{status:400});return await (0,w.o5)(c,b),v.NextResponse.json({success:!0,model:b,alias:c})}catch(a){return console.log("Error updating alias:",a),v.NextResponse.json({error:"Failed to update alias"},{status:500})}}async function A(a){try{let{searchParams:b}=new URL(a.url),c=b.get("alias");if(!c)return v.NextResponse.json({error:"Alias required"},{status:400});return await (0,w.fv)(c),v.NextResponse.json({success:!0})}catch(a){return console.log("Error deleting alias:",a),v.NextResponse.json({error:"Failed to delete alias"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/alias/route",pathname:"/api/models/alias",filename:"route",bundlePath:"app/api/models/alias/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/models/alias/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/alias/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=68886));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/alias/route.js.nft.json b/cli/app/.next/server/app/api/models/alias/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/models/alias/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/alias/route_client-reference-manifest.js b/cli/app/.next/server/app/api/models/alias/route_client-reference-manifest.js new file mode 100644 index 00000000000..af1777127bf --- /dev/null +++ b/cli/app/.next/server/app/api/models/alias/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/alias/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/models/alias/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/availability/route.js b/cli/app/.next/server/app/api/models/availability/route.js new file mode 100644 index 00000000000..38486a3fb15 --- /dev/null +++ b/cli/app/.next/server/app/api/models/availability/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=174,a.ids=[174],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},68356:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);let x="modelLock_";async function y(){try{let a=await (0,w.getProviderConnections)(),b=[];for(let c of a){let a=function(a){let b=Date.now();return Object.entries(a).filter(([a,b])=>a.startsWith(x)&&b).map(([a,c])=>({key:a,model:a.slice(x.length)||"__all",until:c,active:new Date(c).getTime()>b})).filter(a=>a.active)}(c);for(let d of a)b.push({provider:c.provider,model:d.model,status:"cooldown",until:d.until,connectionId:c.id,connectionName:c.name||c.email||c.id,lastError:c.lastError||null});0===a.length&&"unavailable"===c.testStatus&&b.push({provider:c.provider,model:"__all",status:"unavailable",connectionId:c.id,connectionName:c.name||c.email||c.id,lastError:c.lastError||null})}return v.NextResponse.json({models:b,unavailableCount:b.length})}catch(a){return console.error("[API] Failed to get model availability:",a),v.NextResponse.json({error:"Failed to fetch model availability"},{status:500})}}async function z(a){try{let{action:b,provider:c,model:d}=await a.json();if("clearCooldown"!==b||!c||!d)return v.NextResponse.json({error:"Invalid request"},{status:400});let e=await (0,w.getProviderConnections)({provider:c}),f=`${x}${d}`;return await Promise.all(e.filter(a=>a[f]).map(a=>(0,w.updateProviderConnection)(a.id,{[f]:null,..."unavailable"===a.testStatus?{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}:{}}))),v.NextResponse.json({ok:!0})}catch(a){return console.error("[API] Failed to clear model cooldown:",a),v.NextResponse.json({error:"Failed to clear cooldown"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/availability/route",pathname:"/api/models/availability",filename:"route",bundlePath:"app/api/models/availability/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/models/availability/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/availability/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=68356));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/availability/route.js.nft.json b/cli/app/.next/server/app/api/models/availability/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/models/availability/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/availability/route_client-reference-manifest.js b/cli/app/.next/server/app/api/models/availability/route_client-reference-manifest.js new file mode 100644 index 00000000000..e9473e56d85 --- /dev/null +++ b/cli/app/.next/server/app/api/models/availability/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/availability/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/models/availability/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/custom/route.js b/cli/app/.next/server/app/api/models/custom/route.js new file mode 100644 index 00000000000..fde06cd3d95 --- /dev/null +++ b/cli/app/.next/server/app/api/models/custom/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1946,a.ids=[1946],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},70066:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,POST:()=>z,dynamic:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);let x="force-dynamic";async function y(){try{let a=await (0,w.uv)();return v.NextResponse.json({models:a})}catch(a){return console.log("Error fetching custom models:",a),v.NextResponse.json({error:"Failed to fetch custom models"},{status:500})}}async function z(a){try{let{providerAlias:b,id:c,type:d,name:e}=await a.json();if(!b||!c)return v.NextResponse.json({error:"providerAlias and id required"},{status:400});let f=await (0,w.S8)({providerAlias:b,id:c,type:d||"llm",name:e});return v.NextResponse.json({success:!0,added:f})}catch(a){return console.log("Error adding custom model:",a),v.NextResponse.json({error:"Failed to add custom model"},{status:500})}}async function A(a){try{let{searchParams:b}=new URL(a.url),c=b.get("providerAlias"),d=b.get("id"),e=b.get("type")||"llm";if(!c||!d)return v.NextResponse.json({error:"providerAlias and id required"},{status:400});return await (0,w.uL)({providerAlias:c,id:d,type:e}),v.NextResponse.json({success:!0})}catch(a){return console.log("Error deleting custom model:",a),v.NextResponse.json({error:"Failed to delete custom model"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/custom/route",pathname:"/api/models/custom",filename:"route",bundlePath:"app/api/models/custom/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/models/custom/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/custom/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=70066));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/custom/route.js.nft.json b/cli/app/.next/server/app/api/models/custom/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/models/custom/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/custom/route_client-reference-manifest.js b/cli/app/.next/server/app/api/models/custom/route_client-reference-manifest.js new file mode 100644 index 00000000000..0698ba37530 --- /dev/null +++ b/cli/app/.next/server/app/api/models/custom/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/custom/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/models/custom/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/disabled/route.js b/cli/app/.next/server/app/api/models/disabled/route.js new file mode 100644 index 00000000000..6ec568b4165 --- /dev/null +++ b/cli/app/.next/server/app/api/models/disabled/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=675,a.ids=[675],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},60475:(a,b,c)=>{"use strict";c.d(b,{oF:()=>q,tm:()=>p,vF:()=>o});var d=c(34278),e=c(73865),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(81372);let k=g().join(j.n,"disabledModels.json");i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let l={disabled:{}},m=null;async function n(){if(!m){let a=new e.Pv(k);m=new d.t(a,l);try{await m.read()}catch(a){if(a instanceof SyntaxError)m.data={...l},await m.write();else throw a}m.data&&"object"==typeof m.data||(m.data={...l}),m.data.disabled||(m.data.disabled={})}return m}async function o(){return(await n()).data.disabled||{}}async function p(a,b){if(!a||!Array.isArray(b))return;let c=await n(),d=new Set(c.data.disabled[a]||[]);b.forEach(a=>d.add(a)),c.data.disabled[a]=[...d],await c.write()}async function q(a,b){if(!a)return;let c=await n(),d=c.data.disabled[a]||[];if(Array.isArray(b)&&0!==b.length){let e=new Set(b),f=d.filter(a=>!e.has(a));0===f.length?delete c.data.disabled[a]:c.data.disabled[a]=f}else delete c.data.disabled[a];await c.write()}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},81899:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,POST:()=>z,dynamic:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(60475);let x="force-dynamic";async function y(a){try{let{searchParams:b}=new URL(a.url),c=b.get("providerAlias"),d=await (0,w.vF)();if(c)return v.NextResponse.json({ids:d[c]||[]});return v.NextResponse.json({disabled:d})}catch(a){return console.log("Error fetching disabled models:",a),v.NextResponse.json({error:"Failed to fetch disabled models"},{status:500})}}async function z(a){try{let{providerAlias:b,ids:c}=await a.json();if(!b||!Array.isArray(c))return v.NextResponse.json({error:"providerAlias and ids[] required"},{status:400});return await (0,w.tm)(b,c),v.NextResponse.json({success:!0})}catch(a){return console.log("Error disabling models:",a),v.NextResponse.json({error:"Failed to disable models"},{status:500})}}async function A(a){try{let{searchParams:b}=new URL(a.url),c=b.get("providerAlias"),d=b.get("id");if(!c)return v.NextResponse.json({error:"providerAlias required"},{status:400});return await (0,w.oF)(c,d?[d]:[]),v.NextResponse.json({success:!0})}catch(a){return console.log("Error enabling models:",a),v.NextResponse.json({error:"Failed to enable models"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/disabled/route",pathname:"/api/models/disabled",filename:"route",bundlePath:"app/api/models/disabled/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/models/disabled/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/disabled/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=81899));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/disabled/route.js.nft.json b/cli/app/.next/server/app/api/models/disabled/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/models/disabled/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/disabled/route_client-reference-manifest.js b/cli/app/.next/server/app/api/models/disabled/route_client-reference-manifest.js new file mode 100644 index 00000000000..8fc314a2018 --- /dev/null +++ b/cli/app/.next/server/app/api/models/disabled/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/disabled/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/models/disabled/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/route.js b/cli/app/.next/server/app/api/models/route.js new file mode 100644 index 00000000000..a880b5eca54 --- /dev/null +++ b/cli/app/.next/server/app/api/models/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=552,a.ids=[552],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},39006:a=>{a.exports={rE:"0.4.20"}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},60475:(a,b,c)=>{c.d(b,{oF:()=>q,tm:()=>p,vF:()=>o});var d=c(34278),e=c(73865),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(81372);let k=g().join(j.n,"disabledModels.json");i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let l={disabled:{}},m=null;async function n(){if(!m){let a=new e.Pv(k);m=new d.t(a,l);try{await m.read()}catch(a){if(a instanceof SyntaxError)m.data={...l},await m.write();else throw a}m.data&&"object"==typeof m.data||(m.data={...l}),m.data.disabled||(m.data.disabled={})}return m}async function o(){return(await n()).data.disabled||{}}async function p(a,b){if(!a||!Array.isArray(b))return;let c=await n(),d=new Set(c.data.disabled[a]||[]);b.forEach(a=>d.add(a)),c.data.disabled[a]=[...d],await c.write()}async function q(a,b){if(!a)return;let c=await n(),d=c.data.disabled[a]||[];if(Array.isArray(b)&&0!==b.length){let e=new Set(b),f=d.filter(a=>!e.has(a));0===f.length?delete c.data.disabled[a]:c.data.disabled[a]=f}else delete c.data.disabled[a];await c.write()}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64574:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,PUT:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(60475),y=c(89489),z=c(50021);async function A(){try{let a=await (0,w.OM)(),b=await (0,x.vF)(),c=y.eh.filter(a=>!(b[(0,z.wG)(a.provider)||a.provider]||b[a.provider]||[]).includes(a.model)).map(b=>{let c=`${b.provider}/${b.model}`;return{...b,fullModel:c,alias:a[c]||b.model}});return v.NextResponse.json({models:c})}catch(a){return console.log("Error fetching models:",a),v.NextResponse.json({error:"Failed to fetch models"},{status:500})}}async function B(a){try{let{model:b,alias:c}=await a.json();if(!b||!c)return v.NextResponse.json({error:"Model and alias required"},{status:400});let d=await (0,w.OM)();if(Object.entries(d).find(([a,d])=>d===c&&a!==b))return v.NextResponse.json({error:"Alias already in use"},{status:400});return await (0,w.o5)(b,c),v.NextResponse.json({success:!0,model:b,alias:c})}catch(a){return console.log("Error updating alias:",a),v.NextResponse.json({error:"Failed to update alias"},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/route",pathname:"/api/models",filename:"route",bundlePath:"app/api/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/models/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21,8193],()=>b(b.s=64574));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/route.js.nft.json b/cli/app/.next/server/app/api/models/route.js.nft.json new file mode 100644 index 00000000000..1c86a0552c9 --- /dev/null +++ b/cli/app/.next/server/app/api/models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/21.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../chunks/8193.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/models/route_client-reference-manifest.js new file mode 100644 index 00000000000..35bf92cde06 --- /dev/null +++ b/cli/app/.next/server/app/api/models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/test/route.js b/cli/app/.next/server/app/api/models/test/route.js new file mode 100644 index 00000000000..377887761a0 --- /dev/null +++ b/cli/app/.next/server/app/api/models/test/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2919,a.ids=[2919],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86978:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);async function x(a){try{let b,{model:c,kind:d}=await a.json();if(!c)return v.NextResponse.json({error:"Model required"},{status:400});let e=process.env.BASE_URL||(b=new URL(a.url),`${b.protocol}//${b.host}`),f=null;try{let a=await (0,w.getApiKeys)();f=a.find(a=>!1!==a.isActive)?.key||null}catch{}let g={"Content-Type":"application/json"};f&&(g.Authorization=`Bearer ${f}`);let h=Date.now();if("embedding"===d){let a=await fetch(`${e}/api/v1/embeddings`,{method:"POST",headers:g,body:JSON.stringify({model:c,input:"test"}),signal:AbortSignal.timeout(15e3)}),b=Date.now()-h,d=await a.text().catch(()=>""),f=null;try{f=d?JSON.parse(d):null}catch{}if(!a.ok){let c=f?.error?.message||f?.error||d;return v.NextResponse.json({ok:!1,latencyMs:b,error:`HTTP ${a.status}${c?`: ${String(c).slice(0,240)}`:""}`,status:a.status})}if(!(Array.isArray(f?.data)&&f.data.length>0&&Array.isArray(f.data[0]?.embedding)))return v.NextResponse.json({ok:!1,latencyMs:b,status:a.status,error:"Provider returned no embedding data"});return v.NextResponse.json({ok:!0,latencyMs:b,error:null,status:a.status})}let i=await fetch(`${e}/api/v1/chat/completions`,{method:"POST",headers:g,body:JSON.stringify({model:c,max_tokens:1,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),j=Date.now()-h,k=await i.text().catch(()=>""),l=null;try{l=k?JSON.parse(k):null}catch{}if(!i.ok){let a=l?.error?.message||l?.msg||l?.message||l?.error||k,b=`HTTP ${i.status}${a?`: ${String(a).slice(0,240)}`:""}`;return v.NextResponse.json({ok:!1,latencyMs:j,error:b,status:i.status})}let m=l?.status,n=l?.msg||l?.message;if(null!=m&&"200"!==String(m)&&"0"!==String(m)&&n)return v.NextResponse.json({ok:!1,latencyMs:j,status:i.status,error:`Provider status ${m}: ${String(n).slice(0,240)}`});if(l?.error){let a=l?.error?.message||l?.error||"Provider returned an error";return v.NextResponse.json({ok:!1,latencyMs:j,status:i.status,error:String(a).slice(0,240)})}if(!(Array.isArray(l?.choices)&&l.choices.length>0))return v.NextResponse.json({ok:!1,latencyMs:j,status:i.status,error:"Provider returned no completion choices for this model"});return v.NextResponse.json({ok:!0,latencyMs:j,error:null,status:i.status})}catch(a){return v.NextResponse.json({ok:!1,error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/models/test/route",pathname:"/api/models/test",filename:"route",bundlePath:"app/api/models/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/models/test/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/models/test/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=86978));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/test/route.js.nft.json b/cli/app/.next/server/app/api/models/test/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/models/test/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/models/test/route_client-reference-manifest.js b/cli/app/.next/server/app/api/models/test/route_client-reference-manifest.js new file mode 100644 index 00000000000..8e90c032b8e --- /dev/null +++ b/cli/app/.next/server/app/api/models/test/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/models/test/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/models/test/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/[provider]/[action]/route.js b/cli/app/.next/server/app/api/oauth/[provider]/[action]/route.js new file mode 100644 index 00000000000..7af6626a408 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/[provider]/[action]/route.js @@ -0,0 +1,6 @@ +"use strict";(()=>{var a={};a.id=9088,a.ids=[9088],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},17745:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(78644),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/[provider]/[action]/route",pathname:"/api/oauth/[provider]/[action]",filename:"route",bundlePath:"app/api/oauth/[provider]/[action]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/[provider]/[action]/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/[provider]/[action]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38386:(a,b,c)=>{c.d(b,{dR:()=>l,cn:()=>k,Hd:()=>j,Y0:()=>n,IF:()=>o});let d=require("http");var e=c.n(d),f=c(79551);let g=null,h=null,i=new Map;function j({state:a,codeVerifier:b,redirectUri:c}){return!!a&&!!b&&!!c&&(i.set(a,{codeVerifier:b,redirectUri:c,status:"pending",createdAt:Date.now()}),!0)}function k(a){return i.get(a)||null}function l(a){i.delete(a)}function m(a,b){let c=a?"Authentication Successful":"Authentication Failed";return` +${c} + +
${a?"✓":"✗"}

${c}

${b}

Closing in 3s...

+ +
`}function n(a){return new Promise(b=>{if(g)return void b({success:!0});let d=e().createServer(async(b,d)=>{let e=new f.URL(b.url,"http://localhost");if("/callback"!==e.pathname&&"/auth/callback"!==e.pathname){d.writeHead(404),d.end("Not found");return}let g=e.searchParams.get("code"),h=e.searchParams.get("state"),j=e.searchParams.get("error"),k=h?i.get(h):null;if(k){try{if(j)throw Error(e.searchParams.get("error_description")||j);if(!g)throw Error("No authorization code received");let{exchangeTokens:a}=await Promise.resolve().then(c.bind(c,11909)),{createProviderConnection:b}=await Promise.resolve().then(c.bind(c,89442)),f=await a("codex",g,k.redirectUri,k.codeVerifier,h),i=await b({provider:"codex",authType:"oauth",...f,expiresAt:f.expiresIn?new Date(Date.now()+1e3*f.expiresIn).toISOString():null,testStatus:"active"});k.status="done",k.connectionId=i.id,k.email=i.email,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(m(!0,"You can close this window."))}catch(a){k.status="error",k.error=a.message,d.writeHead(200,{"Content-Type":"text/html; charset=utf-8"}),d.end(m(!1,a.message))}finally{o()}return}let l=`http://localhost:${a}/callback${e.search}`;d.writeHead(302,{Location:l}),d.end(),o()});d.listen(1455,"127.0.0.1",()=>{g=d,h=setTimeout(()=>o(),3e5),b({success:!0})}),d.on("error",a=>{"EADDRINUSE"===a.code?b({success:!1,reason:"port_busy"}):b({success:!1,reason:a.message})})})}function o(){h&&(clearTimeout(h),h=null),g&&(g.close(),g=null)}},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},78644:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>j,POST:()=>k});var e=c(86606),f=c(11909),g=c(89442),h=c(38386),i=a([f]);async function j(a,{params:b}){try{let{provider:c,action:d}=await b,{searchParams:g}=new URL(a.url);if("authorize"===d){let a=g.get("redirect_uri")||"http://localhost:8080/callback",b=new Set(["redirect_uri"]),d={};g.forEach((a,c)=>{b.has(c)||(d[c]=a)});let h=(0,f.kP)(c,a,Object.keys(d).length?d:void 0);return e.NextResponse.json(h)}if("start-proxy"===d){if("codex"!==c)return e.NextResponse.json({error:"Proxy only supported for codex"},{status:400});let a=g.get("app_port");if(!a)return e.NextResponse.json({error:"Missing app_port"},{status:400});let b=g.get("state"),d=g.get("code_verifier"),f=g.get("redirect_uri"),i=await (0,h.Y0)(Number(a)),j=!1;return i.success&&b&&d&&f&&(j=(0,h.Hd)({state:b,codeVerifier:d,redirectUri:f})),e.NextResponse.json({...i,serverSide:j})}if("poll-status"===d){if("codex"!==c)return e.NextResponse.json({error:"Poll only supported for codex"},{status:400});let a=g.get("state");if(!a)return e.NextResponse.json({error:"Missing state"},{status:400});let b=(0,h.cn)(a);if(!b)return e.NextResponse.json({status:"unknown"});if("done"===b.status||"error"===b.status){let c={...b};return(0,h.dR)(a),e.NextResponse.json(c)}return e.NextResponse.json({status:b.status})}if("stop-proxy"===d){if("codex"!==c)return e.NextResponse.json({error:"Proxy only supported for codex"},{status:400});return(0,h.IF)(),e.NextResponse.json({success:!0})}if("device-code"===d){let a,b=(0,f.sO)(c);if("device_code"!==b.flowType)return e.NextResponse.json({error:"Provider does not support device code flow"},{status:400});let d=(0,f.kP)(c,null),h=g.get("start_url"),i=g.get("region"),j=g.get("auth_method"),k="kiro"===c?{...h?{startUrl:h}:{},...i?{region:i}:{},...j?{authMethod:j}:{}}:void 0;return a=["github","kiro","kimi-coding","kilocode","codebuddy"].includes(c)?await (0,f.Re)(c,void 0,k):await (0,f.Re)(c,d.codeChallenge,k),e.NextResponse.json({...a,codeVerifier:d.codeVerifier})}return e.NextResponse.json({error:"Unknown action"},{status:400})}catch(a){return console.log("OAuth GET error:",a),e.NextResponse.json({error:a.message},{status:500})}}async function k(a,{params:b}){try{let c,{provider:d,action:h}=await b;try{c=await a.json()}catch{return e.NextResponse.json({error:"Invalid or empty request body"},{status:400})}if("exchange"===h){let{code:a,redirectUri:b,codeVerifier:h,state:i,meta:j}=c;if(!a||!b||!h&&!["cline"].includes(d))return e.NextResponse.json({error:"Missing required fields"},{status:400});let k=await (0,f.exchangeTokens)(d,a,b,h,i,j),l=await (0,g.createProviderConnection)({provider:d,authType:"oauth",...k,expiresAt:k.expiresIn?new Date(Date.now()+1e3*k.expiresIn).toISOString():null,testStatus:"active"});return e.NextResponse.json({success:!0,connection:{id:l.id,provider:l.provider,email:l.email,displayName:l.displayName}})}if("poll"===h){let a,{deviceCode:b,codeVerifier:h,extraData:i}=c;if(!b)return e.NextResponse.json({error:"Missing device code"},{status:400});if(["github","kimi-coding","kilocode","codebuddy"].includes(d))a=await (0,f.Su)(d,b);else if("kiro"===d)a=await (0,f.Su)(d,b,null,i);else{if(!h)return e.NextResponse.json({error:"Missing code verifier"},{status:400});a=await (0,f.Su)(d,b,h)}if(a.success){let b=await (0,g.createProviderConnection)({provider:d,authType:"oauth",...a.tokens,expiresAt:a.tokens.expiresIn?new Date(Date.now()+1e3*a.tokens.expiresIn).toISOString():null,testStatus:"active"});return e.NextResponse.json({success:!0,connection:{id:b.id,provider:b.provider}})}let j=a.pending||"authorization_pending"===a.error||"slow_down"===a.error;return e.NextResponse.json({success:!1,error:a.error,errorDescription:a.errorDescription,pending:j})}return e.NextResponse.json({error:"Unknown action"},{status:400})}catch(a){return console.log("OAuth POST error:",a),e.NextResponse.json({error:a.message},{status:500})}}f=(i.then?(await i)():i)[0],d()}catch(a){d(a)}})},79551:a=>{a.exports=require("url")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,7770,8193,126,304,1578,6263,8202,6379,5339],()=>b(b.s=17745));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json b/cli/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json new file mode 100644 index 00000000000..73010e955a1 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/[provider]/[action]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/126.js","../../../../../chunks/1578.js","../../../../../chunks/2566.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/523.js","../../../../../chunks/5339.js","../../../../../chunks/6263.js","../../../../../chunks/6288.js","../../../../../chunks/6379.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8202.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js new file mode 100644 index 00000000000..256f143deaa --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/[provider]/[action]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/[provider]/[action]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/[provider]/[action]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/cursor/auto-import/route.js b/cli/app/.next/server/app/api/oauth/cursor/auto-import/route.js new file mode 100644 index 00000000000..35d882bac16 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/cursor/auto-import/route.js @@ -0,0 +1,4 @@ +(()=>{var a={};a.id=7520,a.ids=[7520],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},28354:a=>{"use strict";a.exports=require("util")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},61370:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>K,patchFetch:()=>J,routeModule:()=>F,serverHooks:()=>I,workAsyncStorage:()=>G,workUnitAsyncStorage:()=>H});var d={};c.r(d),c.d(d,{GET:()=>E});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(79748),x=c(21820),y=c(33873),z=c(79646);let A=(0,c(28354).promisify)(z.execFile),B=["cursorAuth/accessToken","cursorAuth/token"],C=["storage.serviceMachineId","storage.machineId","telemetry.machineId"];async function D(a){let b=a=>{let b=a.trim();try{let a=JSON.parse(b);return"string"==typeof a?a:b}catch{return b}},c=async b=>{let{stdout:c}=await A("sqlite3",[a,b],{timeout:1e4});return c.trim()},d=null;for(let a of B)try{let e=await c(`SELECT value FROM itemTable WHERE key='${a}' LIMIT 1`);if(e){d=b(e);break}}catch{}let e=null;for(let a of C)try{let d=await c(`SELECT value FROM itemTable WHERE key='${a}' LIMIT 1`);if(d){e=b(d);break}}catch{}return{accessToken:d,machineId:e}}async function E(){try{let a=process.platform,b=function(a){let b=(0,x.homedir)();if("darwin"===a)return[(0,y.join)(b,"Library/Application Support/Cursor/User/globalStorage/state.vscdb"),(0,y.join)(b,"Library/Application Support/Cursor - Insiders/User/globalStorage/state.vscdb")];if("win32"===a){let a=process.env.APPDATA||(0,y.join)(b,"AppData","Roaming"),c=process.env.LOCALAPPDATA||(0,y.join)(b,"AppData","Local");return[(0,y.join)(a,"Cursor","User","globalStorage","state.vscdb"),(0,y.join)(a,"Cursor - Insiders","User","globalStorage","state.vscdb"),(0,y.join)(c,"Cursor","User","globalStorage","state.vscdb"),(0,y.join)(c,"Programs","Cursor","User","globalStorage","state.vscdb")]}return[(0,y.join)(b,".config/Cursor/User/globalStorage/state.vscdb"),(0,y.join)(b,".config/cursor/User/globalStorage/state.vscdb")]}(a),d=null;for(let a of b)try{await (0,w.access)(a,w.constants.R_OK),d=a;break}catch{}if(!d)return v.NextResponse.json({found:!1,error:`Cursor database not found. Checked locations: +${b.join("\n")} + +Make sure Cursor IDE is installed and opened at least once.`});if("linux"===a){let a=!1;try{await A("which",["cursor"],{timeout:5e3}),a=!0}catch{try{let b=(0,y.join)((0,x.homedir)(),".local/share/applications/cursor.desktop");await (0,w.access)(b,w.constants.R_OK),a=!0}catch{}}if(!a)return v.NextResponse.json({found:!1,error:"Cursor config files found but Cursor IDE does not appear to be installed. Skipping auto-import."})}try{let a=function(a){let b=new(c(87550))(a,{readonly:!0,fileMustExist:!0}),d=a=>{let c=b.prepare("SELECT value FROM itemTable WHERE key=? LIMIT 1").get(a);return c?.value||null},e=a=>{if("string"!=typeof a)return a;try{let b=JSON.parse(a);return"string"==typeof b?b:a}catch{return a}},f=null;for(let a of B){let b=d(a);if(b){f=e(b);break}}let g=null;for(let a of C){let b=d(a);if(b){g=e(b);break}}return b.close(),{accessToken:f,machineId:g}}(d);if(a.accessToken&&a.machineId)return v.NextResponse.json({found:!0,accessToken:a.accessToken,machineId:a.machineId})}catch{}try{let a=await D(d);if(a.accessToken&&a.machineId)return v.NextResponse.json({found:!0,accessToken:a.accessToken,machineId:a.machineId})}catch{}return v.NextResponse.json({found:!1,windowsManual:!0,dbPath:d})}catch(a){return console.log("Cursor auto-import error:",a),v.NextResponse.json({found:!1,error:a.message},{status:500})}}let F=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/cursor/auto-import/route",pathname:"/api/oauth/cursor/auto-import",filename:"route",bundlePath:"app/api/oauth/cursor/auto-import/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/cursor/auto-import/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:G,workUnitAsyncStorage:H,serverHooks:I}=F;function J(){return(0,g.patchFetch)({workAsyncStorage:G,workUnitAsyncStorage:H})}async function K(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),F.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/cursor/auto-import/route";"/index"===d&&(d="/");let e=await F.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||F.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===F.isDev||!I,M=I&&!L;G&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await F.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>F.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>F.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await F.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await F.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await F.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},79646:a=>{"use strict";a.exports=require("child_process")},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87550:a=>{"use strict";a.exports=require("better-sqlite3")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=61370));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json b/cli/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json new file mode 100644 index 00000000000..6028025bec5 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/cursor/auto-import/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/better-sqlite3/build/Release/better_sqlite3.node","../../../../../../../../node_modules/better-sqlite3/lib/database.js","../../../../../../../../node_modules/better-sqlite3/lib/index.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/aggregate.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/backup.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/function.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/inspect.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/pragma.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/serialize.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/table.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/transaction.js","../../../../../../../../node_modules/better-sqlite3/lib/methods/wrappers.js","../../../../../../../../node_modules/better-sqlite3/lib/sqlite-error.js","../../../../../../../../node_modules/better-sqlite3/lib/util.js","../../../../../../../../node_modules/better-sqlite3/package.json","../../../../../../../../node_modules/bindings/bindings.js","../../../../../../../../node_modules/bindings/package.json","../../../../../../../../node_modules/file-uri-to-path/index.js","../../../../../../../../node_modules/file-uri-to-path/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/6799.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js new file mode 100644 index 00000000000..e0338fb9dcc --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/cursor/auto-import/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/cursor/auto-import/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/cursor/auto-import/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/cursor/import/route.js b/cli/app/.next/server/app/api/oauth/cursor/import/route.js new file mode 100644 index 00000000000..ea3c8fc78e8 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/cursor/import/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=204,a.ids=[204],a.modules={91:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A,POST:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(47978);class x{constructor(){this.config=w.WN}generateChecksum(a){let b=Math.floor(Date.now()/1e3).toString(),c=165,d=[];for(let a=0;atypeof process){let a=process.platform;if("win32"===a)return"windows";if("darwin"===a)return"macos"}return"linux"}detectArch(){if("u">typeof process){let a=process.arch;return"x64"===a?"x86_64":"arm64"===a?"aarch64":a}return"x86_64"}async validateImportToken(a,b){if(!a||"string"!=typeof a)throw Error("Access token is required");if(!b||"string"!=typeof b)throw Error("Machine ID is required");if(a.length<50)throw Error("Invalid token format. Token appears too short.");if(!/^[a-f0-9-]{32,}$/i.test(b.replace(/-/g,"")))throw Error("Invalid machine ID format. Expected UUID format.");return{accessToken:a,machineId:b,expiresIn:86400,authMethod:"imported"}}extractUserInfo(a){try{let b=a.split(".");if(3===b.length){let a=b[1];for(;a.length%4;)a+="=";let c=JSON.parse(Buffer.from(a.replace(/-/g,"+").replace(/_/g,"/"),"base64").toString());return{email:c.email||c.sub,userId:c.sub||c.user_id}}}catch{}return null}getTokenStorageInstructions(){return{title:"How to get your Cursor token",steps:["1. Open Cursor IDE and make sure you're logged in","2. Find the state.vscdb file:",` - Linux: ${this.config.tokenStoragePaths.linux}`,` - macOS: ${this.config.tokenStoragePaths.macos}`,` - Windows: ${this.config.tokenStoragePaths.windows}`,"3. Open the database with SQLite browser or CLI:"," sqlite3 state.vscdb \"SELECT value FROM itemTable WHERE key='cursorAuth/accessToken'\"","4. Also get the machine ID:"," sqlite3 state.vscdb \"SELECT value FROM itemTable WHERE key='storage.serviceMachineId'\"","5. Paste both values in the form below"],alternativeMethod:["Or use this one-liner to get both values:","sqlite3 state.vscdb \"SELECT key, value FROM itemTable WHERE key IN ('cursorAuth/accessToken', 'storage.serviceMachineId')\""]}}}var y=c(89442);async function z(a){try{let{accessToken:b,machineId:c}=await a.json();if(!b||"string"!=typeof b)return v.NextResponse.json({error:"Access token is required"},{status:400});if(!c||"string"!=typeof c)return v.NextResponse.json({error:"Machine ID is required"},{status:400});let d=new x,e=await d.validateImportToken(b.trim(),c.trim()),f=d.extractUserInfo(e.accessToken),g=await (0,y.createProviderConnection)({provider:"cursor",authType:"oauth",accessToken:e.accessToken,refreshToken:null,expiresAt:new Date(Date.now()+1e3*e.expiresIn).toISOString(),email:f?.email||null,providerSpecificData:{machineId:e.machineId,authMethod:"imported",provider:"Imported",userId:f?.userId},testStatus:"active"});return v.NextResponse.json({success:!0,connection:{id:g.id,provider:g.provider,email:g.email}})}catch(a){return console.log("Cursor import token error:",a),v.NextResponse.json({error:a.message},{status:500})}}async function A(){let a=new x().getTokenStorageInstructions();return v.NextResponse.json({provider:"cursor",method:"import_token",instructions:a,requiredFields:[{name:"accessToken",label:"Access Token",description:"From cursorAuth/accessToken in state.vscdb",type:"textarea"},{name:"machineId",label:"Machine ID",description:"From storage.serviceMachineId in state.vscdb",type:"text"}]})}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/cursor/import/route",pathname:"/api/oauth/cursor/import",filename:"route",bundlePath:"app/api/oauth/cursor/import/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/cursor/import/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/cursor/import/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},47978:(a,b,c)=>{"use strict";c.d(b,{DI:()=>e,Hp:()=>g,LT:()=>f,MZ:()=>o,Nl:()=>r,Nu:()=>k,OV:()=>d,Tx:()=>l,WN:()=>m,YT:()=>j,ZL:()=>i,f7:()=>q,hF:()=>h,lB:()=>p,t:()=>n}),c(21820);let d={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},e={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},f={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},g={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},h={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},i={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},j={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},k={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},l={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},m={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users//Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},n={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},o={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},p={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},q={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},r={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=91));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json b/cli/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json new file mode 100644 index 00000000000..28ab72a9e13 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/cursor/import/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js new file mode 100644 index 00000000000..790359c620d --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/cursor/import/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/cursor/import/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/cursor/import/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/gitlab/pat/route.js b/cli/app/.next/server/app/api/oauth/gitlab/pat/route.js new file mode 100644 index 00000000000..2f62c535693 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/gitlab/pat/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=4993,a.ids=[4993],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},82339:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){try{let b;try{b=await a.json()}catch{return v.NextResponse.json({error:"Invalid request body"},{status:400})}let{token:c,baseUrl:d}=b;if(!c?.trim())return v.NextResponse.json({error:"Personal Access Token is required"},{status:400});let e=(d?.trim()||"https://gitlab.com").replace(/\/$/,""),f=await fetch(`${e}/api/v4/user`,{headers:{"Private-Token":c.trim(),Accept:"application/json"}});if(!f.ok){let a=await f.text();return v.NextResponse.json({error:`GitLab token verification failed: ${a}`},{status:401})}let g=await f.json(),h=g.email||g.public_email||"";return await (0,w.createProviderConnection)({provider:"gitlab",authType:"oauth",accessToken:c.trim(),refreshToken:null,expiresAt:null,email:h,displayName:g.name||g.username||h,testStatus:"active",providerSpecificData:{username:g.username||"",email:h,name:g.name||"",baseUrl:e,authKind:"personal_access_token"}}),v.NextResponse.json({success:!0})}catch(a){return console.error("GitLab PAT auth error:",a),v.NextResponse.json({error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/gitlab/pat/route",pathname:"/api/oauth/gitlab/pat",filename:"route",bundlePath:"app/api/oauth/gitlab/pat/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/gitlab/pat/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/gitlab/pat/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=82339));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json b/cli/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json new file mode 100644 index 00000000000..28ab72a9e13 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/gitlab/pat/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js new file mode 100644 index 00000000000..5fc12944584 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/gitlab/pat/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/gitlab/pat/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/gitlab/pat/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/iflow/cookie/route.js b/cli/app/.next/server/app/api/oauth/iflow/cookie/route.js new file mode 100644 index 00000000000..3e44cba266a --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/iflow/cookie/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2284,a.ids=[2284],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},80593:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){try{let{cookie:b}=await a.json();if(!b||"string"!=typeof b)return v.NextResponse.json({error:"Cookie is required"},{status:400});let c=b.trim();if(!c.includes("BXAuth="))return v.NextResponse.json({error:"Cookie must contain BXAuth field"},{status:400});let d=c;d.endsWith(";")||(d+=";");let e=await fetch("https://platform.iflow.cn/api/openapi/apikey",{method:"GET",headers:{Cookie:d,Accept:"application/json, text/plain, */*","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8","Accept-Encoding":"gzip, deflate, br",Connection:"keep-alive","Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin"}});if(!e.ok){let a=await e.text();return v.NextResponse.json({error:`Failed to fetch API key info: ${a}`},{status:e.status})}let f=await e.json();if(!f.success)return v.NextResponse.json({error:`API key fetch failed: ${f.message}`},{status:400});let g=f.data;if(!g.name)return v.NextResponse.json({error:"Missing name in API key info"},{status:400});let h=await fetch("https://platform.iflow.cn/api/openapi/apikey",{method:"POST",headers:{Cookie:d,"Content-Type":"application/json",Accept:"application/json, text/plain, */*","User-Agent":"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.124 Safari/537.36","Accept-Language":"zh-CN,zh;q=0.9,en;q=0.8","Accept-Encoding":"gzip, deflate, br",Connection:"keep-alive",Origin:"https://platform.iflow.cn",Referer:"https://platform.iflow.cn/"},body:JSON.stringify({name:g.name})});if(!h.ok){let a=await h.text();return v.NextResponse.json({error:`Failed to refresh API key: ${a}`},{status:h.status})}let i=await h.json();if(!i.success)return v.NextResponse.json({error:`API key refresh failed: ${i.message}`},{status:400});let j=i.data;if(!j.apiKey)return v.NextResponse.json({error:"Missing API key in response"},{status:400});let k=d.match(/BXAuth=([^;]+)/),l=k?k[1]:"",m=l?`BXAuth=${l};`:"",n=await (0,w.createProviderConnection)({provider:"iflow",authType:"cookie",name:j.name||g.name,email:j.name||g.name,apiKey:j.apiKey,providerSpecificData:{cookie:m,expireTime:j.expireTime},testStatus:"active",isActive:!0});return v.NextResponse.json({success:!0,connection:{id:n.id,provider:n.provider,email:n.email,apiKey:j.apiKey.substring(0,10)+"...",expireTime:j.expireTime}})}catch(a){return console.error("iFlow cookie auth error:",a),v.NextResponse.json({error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/iflow/cookie/route",pathname:"/api/oauth/iflow/cookie",filename:"route",bundlePath:"app/api/oauth/iflow/cookie/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/iflow/cookie/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/iflow/cookie/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=80593));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json b/cli/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json new file mode 100644 index 00000000000..28ab72a9e13 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/iflow/cookie/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js new file mode 100644 index 00000000000..7002762b0ad --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/iflow/cookie/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/iflow/cookie/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/iflow/cookie/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/auto-import/route.js b/cli/app/.next/server/app/api/oauth/kiro/auto-import/route.js new file mode 100644 index 00000000000..8bed17761c3 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/auto-import/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=5107,a.ids=[5107],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37044:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(79748),x=c(21820),y=c(33873);async function z(){try{let a,b=(0,y.join)((0,x.homedir)(),".aws/sso/cache");try{a=await (0,w.readdir)(b)}catch(a){return v.NextResponse.json({found:!1,error:"AWS SSO cache not found. Please login to Kiro IDE first."})}let c=null,d=null,e="kiro-auth-token.json";if(a.includes(e))try{let a=await (0,w.readFile)((0,y.join)(b,e),"utf-8"),f=JSON.parse(a);f.refreshToken&&f.refreshToken.startsWith("aorAAAAAG")&&(c=f.refreshToken,d=e)}catch(a){}if(!c){for(let e of a)if(e.endsWith(".json"))try{let a=await (0,w.readFile)((0,y.join)(b,e),"utf-8"),f=JSON.parse(a);if(f.refreshToken&&f.refreshToken.startsWith("aorAAAAAG")){c=f.refreshToken,d=e;break}}catch(a){continue}}if(!c)return v.NextResponse.json({found:!1,error:"Kiro token not found in AWS SSO cache. Please login to Kiro IDE first."});return v.NextResponse.json({found:!0,refreshToken:c,source:d})}catch(a){return console.log("Kiro auto-import error:",a),v.NextResponse.json({found:!1,error:a.message},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/kiro/auto-import/route",pathname:"/api/oauth/kiro/auto-import",filename:"route",bundlePath:"app/api/oauth/kiro/auto-import/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/kiro/auto-import/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/kiro/auto-import/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},79748:a=>{"use strict";a.exports=require("fs/promises")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=37044));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json b/cli/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json new file mode 100644 index 00000000000..0deb5e82a1e --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/auto-import/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/6799.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js new file mode 100644 index 00000000000..87ab8733602 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/auto-import/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/kiro/auto-import/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/kiro/auto-import/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/import/route.js b/cli/app/.next/server/app/api/oauth/kiro/import/route.js new file mode 100644 index 00000000000..b95f435efca --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/import/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=7429,a.ids=[7429],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4762:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(35445),x=c(89442);async function y(a){try{let{refreshToken:b}=await a.json();if(!b||"string"!=typeof b)return v.NextResponse.json({error:"Refresh token is required"},{status:400});let c=new w.v,d=await c.validateImportToken(b.trim()),e=c.extractEmailFromJWT(d.accessToken),f=await (0,x.createProviderConnection)({provider:"kiro",authType:"oauth",accessToken:d.accessToken,refreshToken:d.refreshToken,expiresAt:new Date(Date.now()+1e3*d.expiresIn).toISOString(),email:e||null,providerSpecificData:{profileArn:d.profileArn,authMethod:"imported",provider:"Imported"},testStatus:"active"});return v.NextResponse.json({success:!0,connection:{id:f.id,provider:f.provider,email:f.email}})}catch(a){return console.log("Kiro import token error:",a),v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/kiro/import/route",pathname:"/api/oauth/kiro/import",filename:"route",bundlePath:"app/api/oauth/kiro/import/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/kiro/import/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/kiro/import/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,2141],()=>b(b.s=4762));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json b/cli/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json new file mode 100644 index 00000000000..b3dfb0803d9 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/import/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2141.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js new file mode 100644 index 00000000000..5cdfbe1d268 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/import/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/kiro/import/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/kiro/import/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route.js b/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route.js new file mode 100644 index 00000000000..48da52a1f07 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=9069,a.ids=[9069],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},9988:(a,b,c)=>{c.d(b,{lz:()=>f});var d=c(55511),e=c.n(d);function f(){let a=e().randomBytes(32).toString("base64url"),b=e().createHash("sha256").update(a).digest("base64url");return{codeVerifier:a,codeChallenge:b,state:e().randomBytes(32).toString("base64url")}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},14987:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(9988),x=c(35445);async function y(a){try{let{searchParams:b}=new URL(a.url),c=b.get("provider");if(!c||!["google","github"].includes(c))return v.NextResponse.json({error:"Invalid provider. Use 'google' or 'github'"},{status:400});let{codeVerifier:d,codeChallenge:e,state:f}=(0,w.lz)(),g=new x.v().buildSocialLoginUrl(c,e,f);return v.NextResponse.json({authUrl:g,state:f,codeVerifier:d,codeChallenge:e,provider:c})}catch(a){return console.log("Kiro social authorize error:",a),v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/kiro/social-authorize/route",pathname:"/api/oauth/kiro/social-authorize",filename:"route",bundlePath:"app/api/oauth/kiro/social-authorize/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/kiro/social-authorize/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/kiro/social-authorize/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,2141],()=>b(b.s=14987));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json b/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json new file mode 100644 index 00000000000..c92a4b764ef --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/2141.js","../../../../../chunks/6799.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js new file mode 100644 index 00000000000..b314d0ce944 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/social-authorize/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/kiro/social-authorize/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/kiro/social-authorize/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route.js b/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route.js new file mode 100644 index 00000000000..d0857518dc9 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=1451,a.ids=[1451],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},3595:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(35445),x=c(89442);async function y(a){try{let{code:b,codeVerifier:c,provider:d}=await a.json();if(!b||!c)return v.NextResponse.json({error:"Missing required fields"},{status:400});if(!d||!["google","github"].includes(d))return v.NextResponse.json({error:"Invalid provider"},{status:400});let e=new w.v,f=await e.exchangeSocialCode(b,c),g=e.extractEmailFromJWT(f.accessToken),h=await (0,x.createProviderConnection)({provider:"kiro",authType:"oauth",accessToken:f.accessToken,refreshToken:f.refreshToken,expiresAt:new Date(Date.now()+1e3*f.expiresIn).toISOString(),email:g||null,providerSpecificData:{profileArn:f.profileArn,authMethod:d,provider:d.charAt(0).toUpperCase()+d.slice(1)},testStatus:"active"});return v.NextResponse.json({success:!0,connection:{id:h.id,provider:h.provider,email:h.email}})}catch(a){return console.log("Kiro social exchange error:",a),v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/oauth/kiro/social-exchange/route",pathname:"/api/oauth/kiro/social-exchange",filename:"route",bundlePath:"app/api/oauth/kiro/social-exchange/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/oauth/kiro/social-exchange/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/oauth/kiro/social-exchange/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,2141],()=>b(b.s=3595));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json b/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json new file mode 100644 index 00000000000..b3dfb0803d9 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/2141.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js b/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js new file mode 100644 index 00000000000..ceb14b19e08 --- /dev/null +++ b/cli/app/.next/server/app/api/oauth/kiro/social-exchange/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/oauth/kiro/social-exchange/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/oauth/kiro/social-exchange/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/pricing/route.js b/cli/app/.next/server/app/api/pricing/route.js new file mode 100644 index 00000000000..c37da155224 --- /dev/null +++ b/cli/app/.next/server/app/api/pricing/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8948,a.ids=[8948],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},93281:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,GET_DEFAULTS:()=>B,PATCH:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(61249);async function y(){try{let a=await (0,w.r4)();return v.NextResponse.json(a)}catch(a){return console.error("Error fetching pricing:",a),v.NextResponse.json({error:"Failed to fetch pricing"},{status:500})}}async function z(a){try{let b=await a.json();if("object"!=typeof b||null===b)return v.NextResponse.json({error:"Invalid pricing data format"},{status:400});for(let[a,c]of Object.entries(b)){if("object"!=typeof c||null===c)return v.NextResponse.json({error:`Invalid pricing for provider: ${a}`},{status:400});for(let[b,d]of Object.entries(c)){if("object"!=typeof d||null===d)return v.NextResponse.json({error:`Invalid pricing for model: ${a}/${b}`},{status:400});let c=["input","output","cached","reasoning","cache_creation"];for(let[e,f]of Object.entries(d)){if(!c.includes(e))return v.NextResponse.json({error:`Invalid pricing field: ${e} for ${a}/${b}`},{status:400});if("number"!=typeof f||isNaN(f)||f<0)return v.NextResponse.json({error:`Invalid pricing value for ${e} in ${a}/${b}: must be non-negative number`},{status:400})}}}let c=await (0,w.KJ)(b);return v.NextResponse.json(c)}catch(a){return console.error("Error updating pricing:",a),v.NextResponse.json({error:"Failed to update pricing"},{status:500})}}async function A(a){try{let{searchParams:b}=new URL(a.url),c=b.get("provider"),d=b.get("model");c&&d?await (0,w.yF)(c,d):c?await (0,w.yF)(c):await (0,w.VT)();let e=await (0,w.r4)();return v.NextResponse.json(e)}catch(a){return console.error("Error resetting pricing:",a),v.NextResponse.json({error:"Failed to reset pricing"},{status:500})}}async function B(){try{let a=(0,x.ad)();return v.NextResponse.json(a)}catch(a){return console.error("Error fetching default pricing:",a),v.NextResponse.json({error:"Failed to fetch default pricing"},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/pricing/route",pathname:"/api/pricing",filename:"route",bundlePath:"app/api/pricing/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/pricing/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/pricing/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,1249],()=>b(b.s=93281));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/pricing/route.js.nft.json b/cli/app/.next/server/app/api/pricing/route.js.nft.json new file mode 100644 index 00000000000..5f2d4ea4fa0 --- /dev/null +++ b/cli/app/.next/server/app/api/pricing/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/pricing/route_client-reference-manifest.js b/cli/app/.next/server/app/api/pricing/route_client-reference-manifest.js new file mode 100644 index 00000000000..4bf7185c48a --- /dev/null +++ b/cli/app/.next/server/app/api/pricing/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/pricing/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/pricing/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/[id]/route.js b/cli/app/.next/server/app/api/provider-nodes/[id]/route.js new file mode 100644 index 00000000000..20ca68871da --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/[id]/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=5745,a.ids=[5745],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},84080:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{DELETE:()=>y,PUT:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a,{params:b}){try{let{id:c}=await b,{name:d,prefix:e,apiType:f,baseUrl:g}=await a.json(),h=await (0,w.Qu)(c);if(!h)return v.NextResponse.json({error:"Provider node not found"},{status:404});if(!d?.trim())return v.NextResponse.json({error:"Name is required"},{status:400});if(!e?.trim())return v.NextResponse.json({error:"Prefix is required"},{status:400});if("openai-compatible"===h.type&&(!f||!["chat","responses"].includes(f)))return v.NextResponse.json({error:"Invalid OpenAI compatible API type"},{status:400});if(!g?.trim())return v.NextResponse.json({error:"Base URL is required"},{status:400});let i=g.trim();"anthropic-compatible"===h.type&&(i=i.replace(/\/$/,"")).endsWith("/messages")&&(i=i.slice(0,-9)),"custom-embedding"===h.type&&(i=i.replace(/\/$/,"")).endsWith("/embeddings")&&(i=i.slice(0,-11));let j={name:d.trim(),prefix:e.trim(),baseUrl:i};"openai-compatible"===h.type&&(j.apiType=f);let k=await (0,w.ho)(c,j),l=await (0,w.P)({provider:c});return await Promise.all(l.map(a=>(0,w.rj)(a.id,{providerSpecificData:{...a.providerSpecificData||{},prefix:e.trim(),apiType:"openai-compatible"===h.type?f:void 0,baseUrl:i,nodeName:k.name}}))),v.NextResponse.json({node:k})}catch(a){return console.log("Error updating provider node:",a),v.NextResponse.json({error:"Failed to update provider node"},{status:500})}}async function y(a,{params:b}){try{let{id:a}=await b;if(!await (0,w.Qu)(a))return v.NextResponse.json({error:"Provider node not found"},{status:404});return await (0,w.op)(a),await (0,w.Pc)(a),v.NextResponse.json({success:!0})}catch(a){return console.log("Error deleting provider node:",a),v.NextResponse.json({error:"Failed to delete provider node"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/provider-nodes/[id]/route",pathname:"/api/provider-nodes/[id]",filename:"route",bundlePath:"app/api/provider-nodes/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/provider-nodes/[id]/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/provider-nodes/[id]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=84080));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json b/cli/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/[id]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js new file mode 100644 index 00000000000..654b7853b52 --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/[id]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/provider-nodes/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/provider-nodes/[id]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/route.js b/cli/app/.next/server/app/api/provider-nodes/route.js new file mode 100644 index 00000000000..3794481c08f --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2121,a.ids=[2121],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32045:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,POST:()=>B,dynamic:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(50021);let y=c(37873).A,z="force-dynamic";async function A(){try{let a=await (0,w.Fh)();return v.NextResponse.json({nodes:a})}catch(a){return console.log("Error fetching provider nodes:",a),v.NextResponse.json({error:"Failed to fetch provider nodes"},{status:500})}}async function B(a){try{let{name:b,prefix:c,apiType:d,baseUrl:e,type:f}=await a.json();if(!b?.trim())return v.NextResponse.json({error:"Name is required"},{status:400});if(!c?.trim())return v.NextResponse.json({error:"Prefix is required"},{status:400});let g=f||"openai-compatible";if("openai-compatible"===g){if(!d||!["chat","responses"].includes(d))return v.NextResponse.json({error:"Invalid OpenAI compatible API type"},{status:400});let a=await (0,w.i0)({id:`${x.JH}${d}-${y()}`,type:"openai-compatible",prefix:c.trim(),apiType:d,baseUrl:(e||"https://api.openai.com/v1").trim(),name:b.trim()});return v.NextResponse.json({node:a},{status:201})}if("custom-embedding"===g){let a=(e||"https://api.openai.com/v1").trim().replace(/\/$/,"");a.endsWith("/embeddings")&&(a=a.slice(0,-11));let d=await (0,w.i0)({id:`${x.Pd}${y()}`,type:"custom-embedding",prefix:c.trim(),baseUrl:a,name:b.trim()});return v.NextResponse.json({node:d},{status:201})}if("anthropic-compatible"===g){let a=(e||"https://api.anthropic.com/v1").trim().replace(/\/$/,"");a.endsWith("/messages")&&(a=a.slice(0,-9));let d=await (0,w.i0)({id:`${x.DI}${y()}`,type:"anthropic-compatible",prefix:c.trim(),baseUrl:a,name:b.trim()});return v.NextResponse.json({node:d},{status:201})}return v.NextResponse.json({error:"Invalid provider node type"},{status:400})}catch(a){return console.log("Error creating provider node:",a),v.NextResponse.json({error:"Failed to create provider node"},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/provider-nodes/route",pathname:"/api/provider-nodes",filename:"route",bundlePath:"app/api/provider-nodes/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/provider-nodes/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/provider-nodes/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21],()=>b(b.s=32045));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/route.js.nft.json b/cli/app/.next/server/app/api/provider-nodes/route.js.nft.json new file mode 100644 index 00000000000..0f0cf0a108a --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/21.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js b/cli/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js new file mode 100644 index 00000000000..c7d6eb4a43f --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/provider-nodes/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/provider-nodes/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/validate/route.js b/cli/app/.next/server/app/api/provider-nodes/validate/route.js new file mode 100644 index 00000000000..8b0bf6eec32 --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/validate/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8814,a.ids=[8814],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},7426:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{POST:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606);let w=(a,b,c=1e4)=>Promise.race([fetch(a,b),new Promise((a,b)=>setTimeout(()=>b(Error("Request timeout")),c))]),x=a=>401===a||403===a?"API key unauthorized":404===a?"/models endpoint not found - try chat validation with model ID":a>=500?"Server error - try again later":`Unexpected response (${a})`,y=a=>401===a||403===a?"API key unauthorized":400===a?"Invalid model or bad request":404===a?"Chat endpoint not found":a>=500?"Server error - try again later":`Chat request failed (${a})`;async function z(a){try{let{baseUrl:b,apiKey:c,type:d,modelId:e}=await a.json();if(!b||!c)return v.NextResponse.json({error:"Base URL and API key required"},{status:400});if(!(a=>{try{return new URL(a),!0}catch{return!1}})(b))return v.NextResponse.json({error:"Invalid URL format"},{status:400});if("custom-embedding"===d){let a=b.trim().replace(/\/$/,"");if(!e?.trim())return v.NextResponse.json({valid:!1,error:"Model ID required for embedding validation"});let d=await w(`${a}/embeddings`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify({model:e.trim(),input:"ping"})});if(d.ok){let a=await d.json().catch(()=>null),b=Array.isArray(a?.data?.[0]?.embedding)?a.data[0].embedding.length:null;return v.NextResponse.json({valid:!0,method:"embeddings",dimensions:b})}if(401===d.status||403===d.status)return v.NextResponse.json({valid:!1,error:"API key unauthorized"});let f=await d.text().catch(()=>"");return v.NextResponse.json({valid:!1,error:`Embeddings request failed (${d.status})${f?`: ${f.slice(0,200)}`:""}`,method:"embeddings"})}if("anthropic-compatible"===d){let a=b.trim().replace(/\/$/,"");a.endsWith("/messages")&&(a=a.slice(0,-9));let d=`${a}/models`,f=await w(d,{method:"GET",headers:{"x-api-key":c,"anthropic-version":"2023-06-01",Authorization:`Bearer ${c}`}});if(f.ok)return v.NextResponse.json({valid:!0});if(401===f.status||403===f.status)return v.NextResponse.json({valid:!1,error:"API key unauthorized"});if(e){let b=await w(`${a}/chat/completions`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json","x-api-key":c,"anthropic-version":"2023-06-01"},body:JSON.stringify({model:e,messages:[{role:"user",content:"ping"}],max_tokens:1})});if(b.ok)return v.NextResponse.json({valid:!0,method:"chat"});return v.NextResponse.json({valid:!1,error:y(b.status),method:"chat"})}return v.NextResponse.json({valid:!1,error:x(f.status)})}let f=`${b.replace(/\/$/,"")}/models`,g=await w(f,{headers:{Authorization:`Bearer ${c}`}});if(g.ok)return v.NextResponse.json({valid:!0});if(401===g.status||403===g.status)return v.NextResponse.json({valid:!1,error:"API key unauthorized"});if(e){let a=await w(`${b.replace(/\/$/,"")}/chat/completions`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify({model:e,messages:[{role:"user",content:"ping"}],max_tokens:1})});if(a.ok)return v.NextResponse.json({valid:!0,method:"chat"});return v.NextResponse.json({valid:!1,error:y(a.status),method:"chat"})}return v.NextResponse.json({valid:!1,error:x(g.status)})}catch(b){let a=b.cause?.code==="ECONNREFUSED"?"Connection refused - provider node offline or unreachable":b.cause?.code==="ENOTFOUND"?"DNS lookup failed - invalid domain or network issue":b.cause?.code==="ETIMEDOUT"?"Connection timeout - provider node too slow":b.message.includes("timeout")?"Request timeout (>10s) - provider node not responding":b.cause?.code==="CERT_HAS_EXPIRED"?"SSL certificate expired":b.cause?.code==="UNABLE_TO_VERIFY_LEAF_SIGNATURE"?"SSL certificate verification failed":b.cause?.code?`Network error: ${b.cause.code}`:"Network connection failed - check URL and network connectivity";return console.error("Error validating provider node:",{message:b.message,cause:b.cause,code:b.cause?.code,userMessage:a}),v.NextResponse.json({valid:!1,error:a},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/provider-nodes/validate/route",pathname:"/api/provider-nodes/validate",filename:"route",bundlePath:"app/api/provider-nodes/validate/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/provider-nodes/validate/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/provider-nodes/validate/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=7426));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json b/cli/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/validate/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js b/cli/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js new file mode 100644 index 00000000000..613eb686cb1 --- /dev/null +++ b/cli/app/.next/server/app/api/provider-nodes/validate/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/provider-nodes/validate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/provider-nodes/validate/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/models/route.js b/cli/app/.next/server/app/api/providers/[id]/models/route.js new file mode 100644 index 00000000000..d4338b71d85 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/models/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=5211,a.ids=[5211],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44575:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>f,error:()=>i,info:()=>g,maskKey:()=>m,request:()=>j,response:()=>k,stream:()=>l,warn:()=>h});function d(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function e(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function f(a,b,c){!0;{let f=c?` ${e(c)}`:"";console.log(`[${d()}] 🔍 [${a}] ${b}${f}`)}}function g(a,b,c){!0;{let f=c?` ${e(c)}`:"";console.log(`[${d()}] ℹ️ [${a}] ${b}${f}`)}}function h(a,b,c){c&&e(c)}function i(a,b,c){!0;{let f=c?` ${e(c)}`:"";console.log(`[${d()}] ❌ [${a}] ${b}${f}`)}}function j(a,b,c){let f=c?` ${e(c)}`:"";console.log(`\x1b[36m[${d()}] 📥 ${a} ${b}${f}\x1b[0m`)}function k(a,b,c){let f=c?` ${e(c)}`:"";console.log(`[${d()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${f}`)}function l(a,b){let c=b?` ${e(b)}`:"";console.log(`[${d()}] 🌊 [STREAM] ${a}${c}`)}function m(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49794:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>L,patchFetch:()=>K,routeModule:()=>G,serverHooks:()=>J,workAsyncStorage:()=>H,workUnitAsyncStorage:()=>I});var d={};c.r(d),c.d(d,{GET:()=>F});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(50021),y=c(35445),z=c(47978),A=c(16560),B=c(62276);let C=a=>Array.isArray(a)?a:a?.data||a?.models||a?.results||[],D=a=>({url:a,method:"GET",headers:{"Content-Type":"application/json"},authHeader:"Authorization",authPrefix:"Bearer ",parseResponse:C}),E={claude:{url:"https://api.anthropic.com/v1/models",method:"GET",headers:{"Anthropic-Version":"2023-06-01","Content-Type":"application/json"},authHeader:"x-api-key",parseResponse:a=>a.data||[]},gemini:{url:"https://generativelanguage.googleapis.com/v1beta/models",method:"GET",headers:{"Content-Type":"application/json"},authQuery:"key",parseResponse:a=>a.models||[]},qwen:{url:"https://portal.qwen.ai/v1/models",method:"GET",headers:{"Content-Type":"application/json"},authHeader:"Authorization",authPrefix:"Bearer ",parseResponse:a=>a.data||[]},codex:{url:"https://chatgpt.com/backend-api/codex/models?client_version=1.0.0",method:"GET",headers:{"Content-Type":"application/json",Accept:"application/json"},authHeader:"Authorization",authPrefix:"Bearer ",parseResponse:a=>C(a).flatMap(a=>{let b=a?.id||a?.slug||a?.model||a?.name;if(!b)return[];let c=a?.display_name||a?.displayName||a?.name||b,d={...a,id:b,name:c};return!("image"!==(a?.type||"llm")&&!b.toLowerCase().includes("embed"))||b.endsWith("-review")?[d]:[d,{...d,id:`${b}-review`,name:`${c} Review`,upstreamModelId:b,quotaFamily:"review"}]})},antigravity:{url:"https://daily-cloudcode-pa.sandbox.googleapis.com/v1internal:models",method:"POST",headers:{"Content-Type":"application/json"},authHeader:"Authorization",authPrefix:"Bearer ",body:{},parseResponse:a=>a.models||[]},github:{url:"https://api.githubcopilot.com/models",method:"GET",headers:{"Content-Type":"application/json","Copilot-Integration-Id":"vscode-chat","editor-version":"vscode/1.107.1","editor-plugin-version":"copilot-chat/0.26.7","user-agent":"GitHubCopilotChat/0.26.7"},authHeader:"Authorization",authPrefix:"Bearer ",parseResponse:a=>a?.data?a.data.filter(a=>a.capabilities?.type==="chat").filter(a=>a.policy?.state!=="disabled").map(a=>({id:a.id,name:a.name||a.id,version:a.version,capabilities:a.capabilities,isDefault:!0===a.model_picker_enabled})):[]},openai:D("https://api.openai.com/v1/models"),openrouter:D("https://openrouter.ai/api/v1/models"),anthropic:{url:"https://api.anthropic.com/v1/models",method:"GET",headers:{"Anthropic-Version":"2023-06-01","Content-Type":"application/json"},authHeader:"x-api-key",parseResponse:a=>a.data||[]},alicode:{url:"https://coding.dashscope.aliyuncs.com/v1/models",method:"GET",headers:{"Content-Type":"application/json"},authHeader:"Authorization",authPrefix:"Bearer ",parseResponse:a=>a.data||[]},"alicode-intl":{url:"https://coding-intl.dashscope.aliyuncs.com/v1/models",method:"GET",headers:{"Content-Type":"application/json"},authHeader:"Authorization",authPrefix:"Bearer ",parseResponse:a=>a.data||[]},"volcengine-ark":D("https://ark.cn-beijing.volces.com/api/coding/v3/models"),byteplus:D("https://ark.ap-southeast.bytepluses.com/api/coding/v3/models"),deepseek:D("https://api.deepseek.com/models"),groq:D("https://api.groq.com/openai/v1/models"),xai:D("https://api.x.ai/v1/models"),mistral:D("https://api.mistral.ai/v1/models"),perplexity:D("https://api.perplexity.ai/models"),together:D("https://api.together.xyz/v1/models"),fireworks:D("https://api.fireworks.ai/inference/v1/models"),cerebras:D("https://api.cerebras.ai/v1/models"),cohere:D("https://api.cohere.ai/v1/models"),nebius:D("https://api.studio.nebius.ai/v1/models"),siliconflow:D("https://api.siliconflow.cn/v1/models"),hyperbolic:D("https://api.hyperbolic.xyz/v1/models"),ollama:D("https://ollama.com/api/tags"),nanobanana:D("https://api.nanobananaapi.ai/v1/models"),chutes:D("https://llm.chutes.ai/v1/models"),nvidia:D("https://integrate.api.nvidia.com/v1/models"),assemblyai:D("https://api.assemblyai.com/v1/models")};async function F(a,{params:b}){try{let{id:a}=await b,d=await (0,w.Mc)(a);if(!d)return v.NextResponse.json({error:"Connection not found"},{status:404});if((0,x.mq)(d.provider)){let a=d.providerSpecificData?.baseUrl;if(!a)return v.NextResponse.json({error:"No base URL configured for OpenAI compatible provider"},{status:400});let b=`${a.replace(/\/$/,"")}/models`,c=await fetch(b,{method:"GET",headers:{"Content-Type":"application/json",Authorization:`Bearer ${d.apiKey}`}});if(!c.ok){let a=await c.text();return console.log(`Error fetching models from ${d.provider}:`,a),v.NextResponse.json({error:`Failed to fetch models: ${c.status}`},{status:c.status})}let e=await c.json(),f=e.data||e.models||[];return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:f})}if((0,x.gb)(d.provider)){let a=d.providerSpecificData?.baseUrl;if(!a)return v.NextResponse.json({error:"No base URL configured for Anthropic compatible provider"},{status:400});(a=a.replace(/\/$/,"")).endsWith("/messages")&&(a=a.slice(0,-9));let b=`${a}/models`,c=await fetch(b,{method:"GET",headers:{"Content-Type":"application/json","x-api-key":d.apiKey,"anthropic-version":"2023-06-01",Authorization:`Bearer ${d.apiKey}`}});if(!c.ok){let a=await c.text();return console.log(`Error fetching models from ${d.provider}:`,a),v.NextResponse.json({error:`Failed to fetch models: ${c.status}`},{status:c.status})}let e=await c.json(),f=e.data||e.models||[];return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:f})}if("kiro"===d.provider){let a;try{let a=new y.v,b=d.providerSpecificData?.profileArn,c=d.accessToken,e=d.refreshToken;if(c&&b)try{let e=await a.listAvailableModels(c,b);return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:e})}catch(c){if(c.message.includes("AccessDeniedException")&&e){console.log("Kiro token invalid/expired. Attempting refresh...");let c=await (0,A.Ql)(e,d.providerSpecificData);if(c?.accessToken){await (0,A.vN)(d.id,{accessToken:c.accessToken,refreshToken:c.refreshToken||e,expiresIn:c.expiresIn});let f=await a.listAvailableModels(c.accessToken,b);return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:f})}}throw c}}catch(b){a=`Failed to fetch Kiro models: ${b.message}`,console.log("Failed to fetch Kiro models dynamically, falling back to static:",b.message)}return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:[],warning:a})}if("gemini-cli"===d.provider){let a,{accessToken:b,refreshToken:e}=d;if(!b)return v.NextResponse.json({error:"No valid token found"},{status:401});let f=d.projectId||d.providerSpecificData?.projectId,g=f?{project:f}:{},h=async a=>await fetch("https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${a}`,"User-Agent":"google-api-nodejs-client/9.15.1","X-Goog-Api-Client":"google-cloud-sdk vscode_cloudshelleditor/0.1"},body:JSON.stringify(g)});try{let f=await h(b);if(!f.ok&&(401===f.status||403===f.status)&&e){let a=await (0,A.I9)(e,z.LT.clientId,z.LT.clientSecret);a?.accessToken&&(await (0,A.vN)(d.id,{accessToken:a.accessToken,refreshToken:a.refreshToken,expiresIn:a.expiresIn}),f=await h(a.accessToken))}if(f.ok){var c;let a=(c=await f.json(),Array.isArray(c?.models)?c.models.map(a=>{let b=a?.id||a?.model||a?.name;return b?{id:b,name:a?.displayName||a?.name||b}:null}).filter(Boolean):c?.models&&"object"==typeof c.models?Object.entries(c.models).filter(([,a])=>!a?.isInternal).map(([a,b])=>({id:a,name:b?.displayName||b?.name||a})):[]);if(a.length>0)return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:a})}else{let b=await f.text();a=`Failed to fetch Gemini CLI models: ${f.status} ${b}`,console.log("Failed to fetch Gemini CLI models dynamically, falling back to static:",b)}}catch(b){a=`Failed to fetch Gemini CLI models: ${b.message}`,console.log("Failed to fetch Gemini CLI models dynamically, falling back to static:",b.message)}return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:[],warning:a})}if("ollama-local"===d.provider){let a=`${(0,B.Ak)(d)}/api/tags`,b=await fetch(a,{method:"GET",headers:{"Content-Type":"application/json"}});if(!b.ok){let a=await b.text();return console.log("Error fetching models from ollama-local:",a),v.NextResponse.json({error:`Failed to fetch models: ${b.status}`},{status:b.status})}let c=await b.json(),e=C(c);return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:e})}let e=E[d.provider];if(!e)return v.NextResponse.json({error:`Provider ${d.provider} does not support models listing`},{status:400});let f=d.providerSpecificData?.copilotToken||d.accessToken||d.apiKey;if(!f)return v.NextResponse.json({error:"No valid token found"},{status:401});let g=e.url;"qwen"===d.provider&&(g=(a=>{let b="https://portal.qwen.ai/v1/models",c=a?.providerSpecificData?.resourceUrl;if(!c||"string"!=typeof c)return b;let d=c.trim();return d?d.startsWith("http://")||d.startsWith("https://")?`${d.replace(/\/$/,"")}/models`:`https://${d.replace(/\/$/,"")}/v1/models`:b})(d)),e.authQuery&&(g+=`?${e.authQuery}=${f}`);let h={...e.headers};e.authHeader&&!e.authQuery&&(h[e.authHeader]=(e.authPrefix||"")+f);let i={method:e.method,headers:h};e.body&&"POST"===e.method&&(i.body=JSON.stringify(e.body));let j=await fetch(g,i);if(!j.ok){let a=await j.text();return console.log(`Error fetching models from ${d.provider}:`,a),v.NextResponse.json({error:`Failed to fetch models: ${j.status}`},{status:j.status})}let k=await j.json(),l=e.parseResponse(k);return v.NextResponse.json({provider:d.provider,connectionId:d.id,models:l})}catch(a){return console.log("Error fetching provider models:",a),v.NextResponse.json({error:"Failed to fetch models"},{status:500})}}let G=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/[id]/models/route",pathname:"/api/providers/[id]/models",filename:"route",bundlePath:"app/api/providers/[id]/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/[id]/models/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:H,workUnitAsyncStorage:I,serverHooks:J}=G;function K(){return(0,g.patchFetch)({workAsyncStorage:H,workUnitAsyncStorage:I})}async function L(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),G.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/models/route";"/index"===d&&(d="/");let e=await G.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||G.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===G.isDev||!I,M=I&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await G.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>G.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>G.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await G.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await G.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await G.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},62276:(a,b,c)=>{c.d(b,{Ak:()=>h,xq:()=>g});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:f,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};function h(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21,304,1578,6560,2141],()=>b(b.s=49794));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/models/route.js.nft.json b/cli/app/.next/server/app/api/providers/[id]/models/route.js.nft.json new file mode 100644 index 00000000000..134881323bc --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/2141.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/523.js","../../../../../chunks/6288.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/6799.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js new file mode 100644 index 00000000000..ab80dc4094d --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/[id]/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/[id]/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/route.js b/cli/app/.next/server/app/api/providers/[id]/route.js new file mode 100644 index 00000000000..0828c601fbd --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=5922,a.ids=[5922],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53889:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{DELETE:()=>A,GET:()=>y,PUT:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a){if(void 0===a)return{hasProxyPoolField:!1,proxyPoolId:null};if(null===a||""===a||"__none__"===a)return{hasProxyPoolField:!0,proxyPoolId:null};let b=String(a).trim();return b?await (0,w.hr)(b)?{hasProxyPoolField:!0,proxyPoolId:b}:{hasProxyPoolField:!0,error:"Proxy pool not found"}:{hasProxyPoolField:!0,proxyPoolId:null}}async function y(a,{params:b}){try{let{id:a}=await b,c=await (0,w.Mc)(a);if(!c)return v.NextResponse.json({error:"Connection not found"},{status:404});let d={...c};return delete d.apiKey,delete d.accessToken,delete d.refreshToken,delete d.idToken,v.NextResponse.json({connection:d})}catch(a){return console.log("Error fetching connection:",a),v.NextResponse.json({error:"Failed to fetch connection"},{status:500})}}async function z(a,{params:b}){try{var c,d,e;let{id:f}=await b,g=await a.json(),{name:h,priority:i,globalPriority:j,defaultModel:k,isActive:l,apiKey:m,testStatus:n,lastError:o,lastErrorAt:p,providerSpecificData:q}=g,r=await (0,w.Mc)(f);if(!r)return v.NextResponse.json({error:"Connection not found"},{status:404});let s=function(a={}){if(!(Object.prototype.hasOwnProperty.call(a,"connectionProxyEnabled")||Object.prototype.hasOwnProperty.call(a,"connectionProxyUrl")||Object.prototype.hasOwnProperty.call(a,"connectionNoProxy")))return{hasAnyProxyField:!1};let b=a?.connectionProxyEnabled===!0,c="string"==typeof a?.connectionProxyUrl?a.connectionProxyUrl.trim():"",d="string"==typeof a?.connectionNoProxy?a.connectionNoProxy.trim():"";return b&&!c?{hasAnyProxyField:!0,error:"Connection proxy URL is required when connection proxy is enabled"}:{hasAnyProxyField:!0,connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d}}(g);if(s.error)return v.NextResponse.json({error:s.error},{status:400});let t=await x(g.proxyPoolId);if(t.error)return v.NextResponse.json({error:t.error},{status:400});let u={};void 0!==h&&(u.name=h),void 0!==i&&(u.priority=i),void 0!==j&&(u.globalPriority=j),void 0!==k&&(u.defaultModel=k),void 0!==l&&(u.isActive=l),m&&"apikey"===r.authType&&(u.apiKey=m),void 0!==n&&(u.testStatus=n),void 0!==o&&(u.lastError=o),void 0!==p&&(u.lastErrorAt=p),c=r.providerSpecificData,d=s.hasAnyProxyField,e=t.hasProxyPoolField,(void 0!==c||void 0!==q||d||e)&&(u.providerSpecificData={...r.providerSpecificData||{},...q||{}},s.hasAnyProxyField&&(u.providerSpecificData.connectionProxyEnabled=s.connectionProxyEnabled,u.providerSpecificData.connectionProxyUrl=s.connectionProxyUrl,u.providerSpecificData.connectionNoProxy=s.connectionNoProxy),t.hasProxyPoolField&&(null===t.proxyPoolId?delete u.providerSpecificData.proxyPoolId:u.providerSpecificData.proxyPoolId=t.proxyPoolId));let y={...await (0,w.rj)(f,u)};return delete y.apiKey,delete y.accessToken,delete y.refreshToken,delete y.idToken,v.NextResponse.json({connection:y})}catch(a){return console.log("Error updating connection:",a),v.NextResponse.json({error:"Failed to update connection"},{status:500})}}async function A(a,{params:b}){try{let{id:a}=await b;if(!await (0,w.fK)(a))return v.NextResponse.json({error:"Connection not found"},{status:404});return v.NextResponse.json({message:"Connection deleted successfully"})}catch(a){return console.log("Error deleting connection:",a),v.NextResponse.json({error:"Failed to delete connection"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/[id]/route",pathname:"/api/providers/[id]",filename:"route",bundlePath:"app/api/providers/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/[id]/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=53889));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/route.js.nft.json b/cli/app/.next/server/app/api/providers/[id]/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js new file mode 100644 index 00000000000..b107abbf435 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/[id]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/test-models/route.js b/cli/app/.next/server/app/api/providers/[id]/test-models/route.js new file mode 100644 index 00000000000..78920faea7a --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/test-models/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=4444,a.ids=[4444],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},80299:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{POST:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(29737),y=c(50021);async function z(){let a=await (0,w.getApiKeys)();return a.find(a=>!1!==a.isActive)?.key||null}async function A(a,b,c){let d=Date.now();try{let e={"Content-Type":"application/json"};c&&(e.Authorization=`Bearer ${c}`);let f=await fetch(`${b}/api/v1/chat/completions`,{method:"POST",headers:e,body:JSON.stringify({model:a,max_tokens:1,stream:!1,messages:[{role:"user",content:"hi"}]}),signal:AbortSignal.timeout(15e3)}),g=Date.now()-d,h=200===f.status||400===f.status,i=null;if(!h){let a=await f.text().catch(()=>"");i=`HTTP ${f.status}${a?`: ${a.slice(0,120)}`:""}`}return{ok:h,latencyMs:g,error:i}}catch(a){return{ok:!1,latencyMs:Date.now()-d,error:a.message}}}async function B(a,{params:b}){try{let{id:c}=await b,d=await (0,w.Mc)(c);if(!d)return v.NextResponse.json({error:"Connection not found"},{status:404});let e=d.provider,f=(0,y.mq)(e)||(0,y.gb)(e),g=x.Xg[e]||e,h=(0,x.SM)(g);if(f&&0===h.length)try{let b=await fetch(`${C(a)}/api/providers/${c}/models`);b.ok&&(h=((await b.json()).models||[]).map(a=>({id:a.id||a.name,name:a.name||a.id})))}catch{}if(0===h.length)return v.NextResponse.json({error:"No models configured for this provider"},{status:400});let i=C(a),j=await z(),[k,...l]=h,m=await A(`${g}/${k.id}`,i,j),n=[{modelId:k.id,name:k.name||k.id,...m}];if(l.length>0){let a=await Promise.all(l.map(async a=>{let b=await A(`${g}/${a.id}`,i,j);return{modelId:a.id,name:a.name||a.id,...b}}));n.push(...a)}return v.NextResponse.json({provider:e,connectionId:c,results:n})}catch(a){return console.log("Error testing models:",a),v.NextResponse.json({error:"Test failed"},{status:500})}}function C(a){let b=new URL(a.url);return`${b.protocol}//${b.host}`}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/[id]/test-models/route",pathname:"/api/providers/[id]/test-models",filename:"route",bundlePath:"app/api/providers/[id]/test-models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/[id]/test-models/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/test-models/route";"/index"===d&&(d="/");let e=await D.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||D.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===D.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await D.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>D.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>D.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await D.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21,8193],()=>b(b.s=80299));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json b/cli/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json new file mode 100644 index 00000000000..9d02242b62f --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/test-models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/21.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js new file mode 100644 index 00000000000..9a48e290ad4 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/test-models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/[id]/test-models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/[id]/test-models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/test/route.js b/cli/app/.next/server/app/api/providers/[id]/test/route.js new file mode 100644 index 00000000000..a5ddd67c06f --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/test/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=1949,a.ids=[1949],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31092:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(71679);async function x(a,{params:b}){try{let{id:a}=await b,c=await (0,w.F)(a);if("Connection not found"===c.error)return v.NextResponse.json({error:"Connection not found"},{status:404});return v.NextResponse.json({valid:c.valid,error:c.error,refreshed:c.refreshed||!1})}catch(a){return console.log("Error testing connection:",a),v.NextResponse.json({error:"Test failed"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/[id]/test/route",pathname:"/api/providers/[id]/test",filename:"route",bundlePath:"app/api/providers/[id]/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/[id]/test/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/[id]/test/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,6288,7770,21,8193,253],()=>b(b.s=31092));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/test/route.js.nft.json b/cli/app/.next/server/app/api/providers/[id]/test/route.js.nft.json new file mode 100644 index 00000000000..342895f3524 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/test/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/21.js","../../../../../chunks/253.js","../../../../../chunks/3656.js","../../../../../chunks/6288.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/7973.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js new file mode 100644 index 00000000000..2f697637d3e --- /dev/null +++ b/cli/app/.next/server/app/api/providers/[id]/test/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/[id]/test/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/[id]/test/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/client/route.js b/cli/app/.next/server/app/api/providers/client/route.js new file mode 100644 index 00000000000..32d3026f89c --- /dev/null +++ b/cli/app/.next/server/app/api/providers/client/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=4286,a.ids=[4286],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},41807:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(50144),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/client/route",pathname:"/api/providers/client",filename:"route",bundlePath:"app/api/providers/client/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/client/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/client/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50144:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>i});var e=c(86606),f=c(37770),g=c(11909),h=a([g]);async function i(){try{await (0,g.PY)();let a=(await (0,f.getProviderConnections)()).map(a=>({...a}));return e.NextResponse.json({connections:a})}catch(a){return console.log("Error fetching providers for client:",a),e.NextResponse.json({error:"Failed to fetch providers"},{status:500})}}g=(h.then?(await h)():h)[0],d()}catch(a){d(a)}})},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,7770,8193,126,304,1578,6263,8202,6379,5339],()=>b(b.s=41807));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/client/route.js.nft.json b/cli/app/.next/server/app/api/providers/client/route.js.nft.json new file mode 100644 index 00000000000..22c63be3ea2 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/client/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1578.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/523.js","../../../../chunks/5339.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/6379.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/client/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/client/route_client-reference-manifest.js new file mode 100644 index 00000000000..e7df0264dad --- /dev/null +++ b/cli/app/.next/server/app/api/providers/client/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/client/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/client/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/kilo/free-models/route.js b/cli/app/.next/server/app/api/providers/kilo/free-models/route.js new file mode 100644 index 00000000000..a3eff16219c --- /dev/null +++ b/cli/app/.next/server/app/api/providers/kilo/free-models/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=4656,a.ids=[4656],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},65511:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606);let w=null,x=0;async function y(){let a=Date.now();if(w&&a-x<36e5)return v.NextResponse.json({models:w,cached:!0});try{let b=await fetch("https://api.kilo.ai/api/gateway/models",{headers:{Accept:"application/json"},signal:AbortSignal.timeout(1e4)});if(!b.ok)throw Error(`Kilo API returned ${b.status}`);let c=((await b.json()).data||[]).filter(a=>!0===a.isFree).map(a=>({id:a.id,name:a.name,isFree:!0,context_length:a.context_length||0}));return w=c,x=a,v.NextResponse.json({models:c,cached:!1})}catch(a){if(w)return v.NextResponse.json({models:w,cached:!0,warning:a.message});return v.NextResponse.json({models:[],error:`Failed to fetch Kilo models: ${a.message}`},{status:502})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/kilo/free-models/route",pathname:"/api/providers/kilo/free-models",filename:"route",bundlePath:"app/api/providers/kilo/free-models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/kilo/free-models/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/kilo/free-models/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=65511));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json b/cli/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json new file mode 100644 index 00000000000..0deb5e82a1e --- /dev/null +++ b/cli/app/.next/server/app/api/providers/kilo/free-models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/6799.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js new file mode 100644 index 00000000000..3814fbb121c --- /dev/null +++ b/cli/app/.next/server/app/api/providers/kilo/free-models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/kilo/free-models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/kilo/free-models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/route.js b/cli/app/.next/server/app/api/providers/route.js new file mode 100644 index 00000000000..01ed604abae --- /dev/null +++ b/cli/app/.next/server/app/api/providers/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=8648,a.ids=[8648],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},13493:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>I,patchFetch:()=>H,routeModule:()=>D,serverHooks:()=>G,workAsyncStorage:()=>E,workUnitAsyncStorage:()=>F});var d={};c.r(d),c.d(d,{GET:()=>B,POST:()=>C,dynamic:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(89489),y=c(50021);let z="force-dynamic";async function A(a){if(null==a||""===a||"__none__"===a)return{proxyPoolId:null};let b=String(a).trim();return b?await (0,w.hr)(b)?{proxyPoolId:b}:{error:"Proxy pool not found"}:{proxyPoolId:null}}async function B(){try{let a=await (0,w.P)(),b={};try{for(let a of(await (0,w.Fh)()))a.id&&a.name&&(b[a.id]=a.name)}catch{}let c=a.map(a=>{let c=(0,y.mq)(a.provider)||(0,y.gb)(a.provider)?b[a.provider]||a.providerSpecificData?.nodeName||a.provider:a.name;return{...a,name:c,apiKey:void 0,accessToken:void 0,refreshToken:void 0,idToken:void 0}});return v.NextResponse.json({connections:c})}catch(a){return console.log("Error fetching providers:",a),v.NextResponse.json({error:"Failed to fetch providers"},{status:500})}}async function C(a){try{let b=await a.json(),{provider:c,apiKey:d,name:e,priority:f,globalPriority:g,defaultModel:h,testStatus:i}=b,j=function(a={}){let b=a?.connectionProxyEnabled===!0,c="string"==typeof a?.connectionProxyUrl?a.connectionProxyUrl.trim():"",d="string"==typeof a?.connectionNoProxy?a.connectionNoProxy.trim():"";return b&&!c?{error:"Connection proxy URL is required when connection proxy is enabled"}:{connectionProxyEnabled:b,connectionProxyUrl:c,connectionNoProxy:d}}(b);if(j.error)return v.NextResponse.json({error:j.error},{status:400});let k=await A(b.proxyPoolId);if(k.error)return v.NextResponse.json({error:k.error},{status:400});let l=k.proxyPoolId,m=!!y.br[c],n=x.fg[c]||y.nJ[c]||m||(0,y.mq)(c)||(0,y.gb)(c)||(0,y.gC)(c);if(!c||!n)return v.NextResponse.json({error:"Invalid provider"},{status:400});if(!d&&"ollama-local"!==c)return v.NextResponse.json({error:`${m?"Cookie value":"API Key"} is required`},{status:400});if(!e)return v.NextResponse.json({error:"Name is required"},{status:400});let o=b.providerSpecificData||null;if((0,y.mq)(c)){let a=await (0,w.Qu)(c);if(!a)return v.NextResponse.json({error:"OpenAI Compatible node not found"},{status:404});if((await (0,w.P)({provider:c})).length>0)return v.NextResponse.json({error:"Only one connection is allowed for this OpenAI Compatible node"},{status:400});o={prefix:a.prefix,apiType:a.apiType,baseUrl:a.baseUrl,nodeName:a.name}}else if((0,y.gb)(c)){let a=await (0,w.Qu)(c);if(!a)return v.NextResponse.json({error:"Anthropic Compatible node not found"},{status:404});if((await (0,w.P)({provider:c})).length>0)return v.NextResponse.json({error:"Only one connection is allowed for this Anthropic Compatible node"},{status:400});o={prefix:a.prefix,baseUrl:a.baseUrl,nodeName:a.name}}else if((0,y.gC)(c)){let a=await (0,w.Qu)(c);if(!a)return v.NextResponse.json({error:"Custom Embedding node not found"},{status:404});if((await (0,w.P)({provider:c})).length>0)return v.NextResponse.json({error:"Only one connection is allowed for this Custom Embedding node"},{status:400});o={prefix:a.prefix,baseUrl:a.baseUrl,nodeName:a.name}}let p={...o||{},connectionProxyEnabled:j.connectionProxyEnabled,connectionProxyUrl:j.connectionProxyUrl,connectionNoProxy:j.connectionNoProxy};null!==l&&(p.proxyPoolId=l);let q={...await (0,w.createProviderConnection)({provider:c,authType:m?"cookie":"apikey",name:e,apiKey:d||"",priority:f||1,globalPriority:g||null,defaultModel:h||null,providerSpecificData:p,isActive:!0,testStatus:i||"unknown"})};return delete q.apiKey,v.NextResponse.json({connection:q},{status:201})}catch(a){return console.log("Error creating provider:",a),v.NextResponse.json({error:"Failed to create provider"},{status:500})}}let D=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/route",pathname:"/api/providers",filename:"route",bundlePath:"app/api/providers/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:E,workUnitAsyncStorage:F,serverHooks:G}=D;function H(){return(0,g.patchFetch)({workAsyncStorage:E,workUnitAsyncStorage:F})}async function I(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),D.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/route";"/index"===d&&(d="/");let e=await D.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||D.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===D.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await D.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>D.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>D.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await D.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await D.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await D.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},39006:a=>{a.exports={rE:"0.4.20"}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21,8193],()=>b(b.s=13493));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/route.js.nft.json b/cli/app/.next/server/app/api/providers/route.js.nft.json new file mode 100644 index 00000000000..1c86a0552c9 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/21.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../chunks/8193.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/route_client-reference-manifest.js new file mode 100644 index 00000000000..bc6af646c28 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/suggested-models/route.js b/cli/app/.next/server/app/api/providers/suggested-models/route.js new file mode 100644 index 00000000000..acf92833717 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/suggested-models/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8791,a.ids=[8791],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52593:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,dynamic:()=>w});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606);let w="force-dynamic",x={"openrouter-free":a=>a.filter(a=>a.pricing?.prompt==="0"&&a.pricing?.completion==="0"&&a.context_length>=2e5).map(a=>({id:a.id,name:a.name,contextLength:a.context_length})).sort((a,b)=>b.contextLength-a.contextLength),"opencode-free":a=>a.filter(a=>a.id?.endsWith("-free")).map(a=>({id:a.id,name:a.id}))};async function y(a){let{searchParams:b}=new URL(a.url),c=b.get("url"),d=b.get("type");if(!c||!d)return v.NextResponse.json({error:"Missing url or type"},{status:400});let e=x[d];if(!e)return v.NextResponse.json({error:"Unknown filter type"},{status:400});try{let a=await fetch(c);if(!a.ok)return v.NextResponse.json({data:[]});let b=await a.json(),d=b.data??b.models??b,f=e(Array.isArray(d)?d:[]);return v.NextResponse.json({data:f})}catch{return v.NextResponse.json({data:[]})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/suggested-models/route",pathname:"/api/providers/suggested-models",filename:"route",bundlePath:"app/api/providers/suggested-models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/suggested-models/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/suggested-models/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=52593));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/suggested-models/route.js.nft.json b/cli/app/.next/server/app/api/providers/suggested-models/route.js.nft.json new file mode 100644 index 00000000000..15079b3e8f3 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/suggested-models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js new file mode 100644 index 00000000000..7f2c74ac8e4 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/suggested-models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/suggested-models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/suggested-models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/test-batch/route.js b/cli/app/.next/server/app/api/providers/test-batch/route.js new file mode 100644 index 00000000000..a031928f763 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/test-batch/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=6740,a.ids=[6740],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},17006:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(50021),y=c(71679);function z(a,b=null){if(b?.authType)return"oauth"===b.authType?x.IS[a]?"free":"oauth":b.authType;return x.IS[a]?"free":x.zN[a]?"oauth":x.fg[a]?"apikey":"string"==typeof a&&(a.startsWith(x.JH)||a.startsWith(x.DI))?"compatible":"apikey"}async function A(a){try{let{mode:b,providerId:c}=await a.json();if(!b)return v.NextResponse.json({error:"mode is required"},{status:400});let d=await (0,w.P)({isActive:!0}),e=[];if("provider"===b&&c)e=d.filter(a=>a.provider===c);else if("oauth"===b)e=d.filter(a=>"oauth"===z(a.provider,a));else if("free"===b)e=d.filter(a=>"free"===z(a.provider,a));else if("apikey"===b)e=d.filter(a=>"apikey"===z(a.provider,a));else if("compatible"===b)e=d.filter(a=>{var b;return b=a.provider,"string"==typeof b&&(b.startsWith(x.JH)||b.startsWith(x.DI))});else{if("all"!==b)return v.NextResponse.json({error:"Invalid mode. Use: provider, oauth, free, apikey, compatible, all"},{status:400});e=d}if(0===e.length)return v.NextResponse.json({mode:b,providerId:c||null,results:[],summary:{total:0,passed:0,failed:0},testedAt:new Date().toISOString()});let f=[];for(let a of e)try{let b=await (0,y.F)(a.id);f.push({provider:a.provider,connectionId:a.id,connectionName:a.name||a.email||a.provider,authType:a.authType||z(a.provider,a),valid:b.valid,latencyMs:b.latencyMs||0,error:b.error||null,diagnosis:b.diagnosis||null,statusCode:b.statusCode||null,testedAt:b.testedAt||new Date().toISOString()})}catch(b){f.push({provider:a.provider,connectionId:a.id,connectionName:a.name||a.email||a.provider,authType:a.authType||z(a.provider,a),valid:!1,latencyMs:0,error:b.message,diagnosis:{type:"network_error",source:"local",code:null,message:b.message},statusCode:null,testedAt:new Date().toISOString()})}return v.NextResponse.json({mode:b,providerId:c||null,results:f,testedAt:new Date().toISOString(),summary:{total:f.length,passed:f.filter(a=>a.valid).length,failed:f.filter(a=>!a.valid).length}})}catch(a){return console.log("Error in batch test:",a),v.NextResponse.json({error:"Batch test failed"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/test-batch/route",pathname:"/api/providers/test-batch",filename:"route",bundlePath:"app/api/providers/test-batch/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/test-batch/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/test-batch/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,6288,7770,21,8193,253],()=>b(b.s=17006));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/test-batch/route.js.nft.json b/cli/app/.next/server/app/api/providers/test-batch/route.js.nft.json new file mode 100644 index 00000000000..126e0298bd7 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/test-batch/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/21.js","../../../../chunks/253.js","../../../../chunks/3656.js","../../../../chunks/6288.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/7973.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js new file mode 100644 index 00000000000..4928638b339 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/test-batch/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/test-batch/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/test-batch/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/validate/route.js b/cli/app/.next/server/app/api/providers/validate/route.js new file mode 100644 index 00000000000..4f71b18b024 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/validate/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=8453,a.ids=[8453],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},2490:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>K,patchFetch:()=>J,routeModule:()=>F,serverHooks:()=>I,workAsyncStorage:()=>G,workUnitAsyncStorage:()=>H});var d={};c.r(d),c.d(d,{POST:()=>E});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(50021),y=c(29737),z=c(62276),A=c(33465),B=c(89489);async function C(a,b){let c,d=x.AI_PROVIDERS[a];if(!d||!(d.serviceKinds||["llm"]).every(a=>"webSearch"===a||"webFetch"===a))return null;let e=d.searchConfig||d.fetchConfig;if(!e)return null;if("none"===e.authType)return!0;let f=e.baseUrl,g={"Content-Type":"application/json"};switch(e.authHeader){case"bearer":g.Authorization=`Bearer ${b}`;break;case"x-api-key":g["x-api-key"]=b;break;case"x-subscription-token":g["x-subscription-token"]=b;break;case"key":f+=`?key=${encodeURIComponent(b)}&q=ping&cx=test`;break;case"api_key":f+=`?api_key=${encodeURIComponent(b)}&q=ping&engine=google`}"POST"===e.method&&(c=JSON.stringify({query:"ping",q:"ping",url:"https://example.com"}));let h=await fetch(f,{method:e.method,headers:g,body:c,signal:AbortSignal.timeout(8e3)});return 401!==h.status&&403!==h.status}async function D(a,b){let c=x.AI_PROVIDERS[a];if(!c)return null;let d=new Set(["tts","embedding","stt","image","video","music","imageToText"]);if(!(c.serviceKinds||["llm"]).every(a=>d.has(a)))return null;let e=c.ttsConfig||c.sttConfig||c.embeddingConfig||c.imageConfig||c.videoConfig||c.musicConfig;if(!e||c.noAuth||"none"===e.authType||"playht"===e.authHeader||"aws-sigv4"===e.authHeader)return!0;let f={"Content-Type":"application/json",...e.extraHeaders||{}};switch(e.authHeader){case"bearer":f.Authorization=`Bearer ${b}`;break;case"key":f.Authorization=`Key ${b}`;break;case"x-api-key":f["x-api-key"]=b;break;case"x-key":f["x-key"]=b;break;case"xi-api-key":f["xi-api-key"]=b;break;case"token":f.Authorization=`Token ${b}`;break;case"basic":f.Authorization=`Basic ${b}`;break;default:return null}let g=e.method||"POST",h=await fetch(e.baseUrl,{method:g,headers:f,body:"GET"===g?void 0:JSON.stringify({input:"ping",text:"ping",prompt:"ping",model:e.models?.[0]?.id||"test"}),signal:AbortSignal.timeout(8e3)});return 401!==h.status&&403!==h.status}async function E(a){try{let b=await a.json(),{provider:c,apiKey:d,providerSpecificData:e}=b,f=x.AI_PROVIDERS[c]?.noAuth===!0;if(!c||!d&&"ollama-local"!==c&&!f)return v.NextResponse.json({error:"Provider and API key required"},{status:400});let g=!1,h=null;try{if((0,x.mq)(c)){let a=await (0,w.Qu)(c);if(!a)return v.NextResponse.json({error:"OpenAI Compatible node not found"},{status:404});let b=`${a.baseUrl?.replace(/\/$/,"")}/models`;return g=(await fetch(b,{headers:{Authorization:`Bearer ${d}`}})).ok,v.NextResponse.json({valid:g,error:g?null:"Invalid API key"})}if((0,x.gC)(c)){let a=await (0,w.Qu)(c);if(!a)return v.NextResponse.json({error:"Custom Embedding node not found"},{status:404});let b=a.baseUrl?.replace(/\/$/,""),e=await fetch(`${b}/models`,{headers:{Authorization:`Bearer ${d}`}});if(e.ok)return v.NextResponse.json({valid:!0});if(401===e.status||403===e.status)return v.NextResponse.json({valid:!1,error:"Invalid API key"});let f=await fetch(`${b}/embeddings`,{method:"POST",headers:{Authorization:`Bearer ${d}`,"Content-Type":"application/json"},body:JSON.stringify({model:"test",input:"ping"})});return g=401!==f.status&&403!==f.status,v.NextResponse.json({valid:g,error:g?null:"Invalid API key"})}if((0,x.gb)(c)){let a=await (0,w.Qu)(c);if(!a)return v.NextResponse.json({error:"Anthropic Compatible node not found"},{status:404});let b=a.baseUrl?.trim().replace(/\/$/,"")||"";b.endsWith("/messages")&&(b=b.slice(0,-9));let e=`${b}/models`;return g=(await fetch(e,{headers:{"x-api-key":d,"anthropic-version":"2023-06-01",Authorization:`Bearer ${d}`}})).ok,v.NextResponse.json({valid:g,error:g?null:"Invalid API key"})}if("cloudflare-ai"===c){let{providerSpecificData:a}=b,c=a?.accountId;if(!c)return v.NextResponse.json({valid:!1,error:"Missing Account ID"});let e=`https://api.cloudflare.com/client/v4/accounts/${c}/ai/v1/chat/completions`,f=await fetch(e,{method:"POST",headers:{Authorization:`Bearer ${d}`,"Content-Type":"application/json"},body:JSON.stringify({model:(0,y.fZ)("cloudflare-ai"),messages:[{role:"user",content:"test"}],max_tokens:1})});return g=401!==f.status&&403!==f.status&&404!==f.status,v.NextResponse.json({valid:g,error:g?null:"Invalid API token or Account ID"})}if("azure"===c){let{providerSpecificData:a}=b,c=(a?.azureEndpoint||"").replace(/\/$/,""),e=a?.deployment||"gpt-4",f=a?.apiVersion||"2024-10-01-preview",h=a?.organization,i=`${c}/openai/deployments/${e}/chat/completions?api-version=${f}`,j={"api-key":d,"Content-Type":"application/json"};h&&(j["OpenAI-Organization"]=h);let k=await fetch(i,{method:"POST",headers:j,body:JSON.stringify({messages:[{role:"user",content:"test"}],max_tokens:1})});return g=401!==k.status&&403!==k.status,v.NextResponse.json({valid:g,error:g?null:"Invalid API key or Azure configuration"})}let a=await C(c,d);if(null!==a)return v.NextResponse.json({valid:a,error:a?null:"Invalid API key"});let f=await D(c,d);if(null!==f)return v.NextResponse.json({valid:f,error:f?null:"Invalid API key"});switch(c){case"openai":g=(await fetch("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${d}`}})).ok;break;case"anthropic":let i=await fetch("https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":d,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"claude-3-haiku-20240307",max_tokens:1,messages:[{role:"user",content:"test"}]})});g=401!==i.status;break;case"gemini":g=(await fetch(`https://generativelanguage.googleapis.com/v1/models?key=${d}`)).ok;break;case"openrouter":g=(await fetch("https://openrouter.ai/api/v1/models",{headers:{Authorization:`Bearer ${d}`}})).ok;break;case"glm":case"glm-cn":case"kimi":case"minimax":case"minimax-cn":case"alicode-intl":case"alicode":{let a={glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions"};if("glm-cn"===c||"alicode"===c||"alicode-intl"===c){let b=(0,y.fZ)(c),e=await fetch(a[c],{method:"POST",headers:{Authorization:`Bearer ${d}`,"content-type":"application/json"},body:JSON.stringify({model:b,max_tokens:1,messages:[{role:"user",content:"test"}]})});g=401!==e.status&&403!==e.status}else{let b=await fetch(a[c],{method:"POST",headers:{"x-api-key":d,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"claude-sonnet-4-20250514",max_tokens:1,messages:[{role:"user",content:"test"}]})});g=401!==b.status}break}case"volcengine-ark":case"byteplus":{let a=await fetch(B.X3[c],{method:"POST",headers:{Authorization:`Bearer ${d}`,"content-type":"application/json"},body:JSON.stringify({model:(0,y.fZ)(c),max_tokens:1,messages:[{role:"user",content:"test"}]})});g=401!==a.status&&403!==a.status;break}case"deepseek":case"groq":case"xai":case"mistral":case"perplexity":case"together":case"fireworks":case"cerebras":case"cohere":case"nebius":case"siliconflow":case"hyperbolic":case"ollama":case"ollama-local":case"assemblyai":case"nanobanana":case"chutes":case"xiaomi-mimo":case"nvidia":{let a={deepseek:"https://api.deepseek.com/models",groq:"https://api.groq.com/openai/v1/models",xai:"https://api.x.ai/v1/models",mistral:"https://api.mistral.ai/v1/models",perplexity:"https://api.perplexity.ai/models",together:"https://api.together.xyz/v1/models",fireworks:"https://api.fireworks.ai/inference/v1/models",cerebras:"https://api.cerebras.ai/v1/models",cohere:"https://api.cohere.ai/v1/models",nebius:"https://api.studio.nebius.ai/v1/models",siliconflow:"https://api.siliconflow.cn/v1/models",hyperbolic:"https://api.hyperbolic.xyz/v1/models",ollama:"https://ollama.com/api/tags","ollama-local":`${(0,z.Ak)({providerSpecificData:e})}/api/tags`,assemblyai:"https://api.assemblyai.com/v1/account",nanobanana:"https://api.nanobananaapi.ai/v1/models",chutes:"https://llm.chutes.ai/v1/models",nvidia:"https://integrate.api.nvidia.com/v1/models","xiaomi-mimo":"https://api.xiaomimimo.com/v1/models"},b={};d&&(b.Authorization=`Bearer ${d}`);let f=await fetch(a[c],{headers:b});g="xai"===c?200===f.status||403===f.status:f.ok;break}case"opencode-go":{let a=await fetch("https://opencode.ai/zen/go/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${d}`},body:JSON.stringify({model:(0,y.fZ)("opencode-go"),messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1})});g=401!==a.status&&403!==a.status;break}case"commandcode":{let a=z.xq.commandcode,b=(0,y.fZ)("commandcode"),c=(0,A.openaiToCommandCode)(b,{messages:[{role:"user",content:"ping"}],max_tokens:1,stream:!1},!1),e=await fetch(a.baseUrl,{method:"POST",headers:{"Content-Type":"application/json",...a.headers||{},"x-session-id":crypto.randomUUID(),Authorization:`Bearer ${d}`},body:JSON.stringify(c)});g=401!==e.status&&403!==e.status;break}case"deepgram":g=(await fetch("https://api.deepgram.com/v1/projects",{headers:{Authorization:`Token ${d}`}})).ok;break;case"blackbox":{let a=await fetch("https://api.blackbox.ai/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${d}`,"Content-Type":"application/json"},body:JSON.stringify({model:"gpt-4o",messages:[{role:"user",content:"test"}],max_tokens:10})});g=200===a.status||400===a.status;break}case"vertex":{let a=(()=>{try{let a=JSON.parse(d);return"service_account"===a.type?a:null}catch{return null}})();if(a)g=!!(a.client_email&&a.private_key&&a.project_id);else{let a=await fetch(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});g=401!==a.status&&403!==a.status}break}case"vertex-partner":{let a=(()=>{try{let a=JSON.parse(d);return"service_account"===a.type?a:null}catch{return null}})();if(a)g=!!(a.client_email&&a.private_key&&a.project_id);else{let a=await fetch(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${d}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"});g=401!==a.status&&403!==a.status}break}case"grok-web":{let a=d.startsWith("sso=")?d.slice(4):d,b=a=>{let b=new Uint8Array(a);return crypto.getRandomValues(b),Array.from(b,a=>a.toString(16).padStart(2,"0")).join("")},c=Buffer.from("e:TypeError: Cannot read properties of null (reading 'children')").toString("base64"),e=b(16),f=b(8),i=await fetch("https://grok.com/rest/app-chat/conversations/new",{method:"POST",headers:{Accept:"*/*","Accept-Encoding":"gzip, deflate, br, zstd","Accept-Language":"en-US,en;q=0.9","Cache-Control":"no-cache","Content-Type":"application/json",Cookie:`sso=${a}`,Origin:"https://grok.com",Pragma:"no-cache",Referer:"https://grok.com/","Sec-Ch-Ua":'"Google Chrome";v="136", "Chromium";v="136", "Not(A:Brand";v="24"',"Sec-Ch-Ua-Mobile":"?0","Sec-Ch-Ua-Platform":'"macOS"',"Sec-Fetch-Dest":"empty","Sec-Fetch-Mode":"cors","Sec-Fetch-Site":"same-origin","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","x-statsig-id":c,"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${e}-${f}-00`},body:JSON.stringify({temporary:!0,modelName:"grok-4",modelMode:"MODEL_MODE_GROK_4",message:"ping",fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,returnImageBytes:!1,returnRawGrokInXaiRequest:!1,enableImageStreaming:!1,imageGenerationCount:0,forceConcise:!1,toolOverrides:{},enableSideBySide:!0,sendFinalMetadata:!0,isReasoning:!1,disableTextFollowUps:!0,disableMemory:!0,forceSideBySide:!1,isAsyncChat:!1,disableSelfHarmShortCircuit:!1})});401===i.status||403===i.status?(g=!1,h="Invalid SSO cookie — re-paste from grok.com DevTools → Cookies → sso"):g=!0;break}case"perplexity-web":{let a=d;a.startsWith("__Secure-next-auth.session-token=")&&(a=a.slice(33));let b="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",c=await fetch("https://www.perplexity.ai/rest/sse/perplexity_ask",{method:"POST",headers:{"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","X-App-ApiClient":"default","X-App-ApiVersion":"2.18",Cookie:`__Secure-next-auth.session-token=${a}`},body:JSON.stringify({query_str:"ping",params:{query_str:"ping",search_focus:"internet",mode:"concise",model_preference:"pplx_pro",sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:"2.18",language:"en-US",timezone:b,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:null}})});401===c.status||403===c.status?(g=!1,h="Invalid session cookie — re-paste __Secure-next-auth.session-token from perplexity.ai"):g=!0;break}default:return v.NextResponse.json({error:"Provider validation not supported"},{status:400})}}catch(a){h=a.message,g=!1}return v.NextResponse.json({valid:g,error:g?null:h||"Invalid API key"})}catch(a){return console.log("Error validating API key:",a),v.NextResponse.json({error:"Validation failed"},{status:500})}}let F=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/providers/validate/route",pathname:"/api/providers/validate",filename:"route",bundlePath:"app/api/providers/validate/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/providers/validate/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:G,workUnitAsyncStorage:H,serverHooks:I}=F;function J(){return(0,g.patchFetch)({workAsyncStorage:G,workUnitAsyncStorage:H})}async function K(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),F.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/providers/validate/route";"/index"===d&&(d="/");let e=await F.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||F.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===F.isDev||!I,M=I&&!L;G&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await F.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>F.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>F.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await F.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await F.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await F.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21,8193,304,6263],()=>b(b.s=2490));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/validate/route.js.nft.json b/cli/app/.next/server/app/api/providers/validate/route.js.nft.json new file mode 100644 index 00000000000..d165d4892ae --- /dev/null +++ b/cli/app/.next/server/app/api/providers/validate/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/21.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js b/cli/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js new file mode 100644 index 00000000000..931f79655b0 --- /dev/null +++ b/cli/app/.next/server/app/api/providers/validate/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/providers/validate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/providers/validate/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/[id]/route.js b/cli/app/.next/server/app/api/proxy-pools/[id]/route.js new file mode 100644 index 00000000000..040d608bacf --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/[id]/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3562,a.ids=[3562],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},943:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{DELETE:()=>z,GET:()=>x,PUT:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);async function x(a,{params:b}){try{let{id:a}=await b,c=await (0,w.hr)(a);if(!c)return v.NextResponse.json({error:"Proxy pool not found"},{status:404});return v.NextResponse.json({proxyPool:c})}catch(a){return console.log("Error fetching proxy pool:",a),v.NextResponse.json({error:"Failed to fetch proxy pool"},{status:500})}}async function y(a,{params:b}){try{let{id:c}=await b;if(!await (0,w.hr)(c))return v.NextResponse.json({error:"Proxy pool not found"},{status:404});let d=await a.json(),e=function(a={}){let b={};if(Object.prototype.hasOwnProperty.call(a,"name")){let c="string"==typeof a?.name?a.name.trim():"";if(!c)return{error:"Name is required"};b.name=c}if(Object.prototype.hasOwnProperty.call(a,"proxyUrl")){let c="string"==typeof a?.proxyUrl?a.proxyUrl.trim():"";if(!c)return{error:"Proxy URL is required"};b.proxyUrl=c}return Object.prototype.hasOwnProperty.call(a,"noProxy")&&(b.noProxy="string"==typeof a?.noProxy?a.noProxy.trim():""),Object.prototype.hasOwnProperty.call(a,"isActive")&&(b.isActive=a?.isActive===!0),Object.prototype.hasOwnProperty.call(a,"strictProxy")&&(b.strictProxy=a?.strictProxy===!0),Object.prototype.hasOwnProperty.call(a,"type")&&(b.type=["http","vercel"].includes(a?.type)?a.type:"http"),{updates:b}}(d);if(e.error)return v.NextResponse.json({error:e.error},{status:400});let f=await (0,w.Q_)(c,e.updates);return v.NextResponse.json({proxyPool:f})}catch(a){return console.log("Error updating proxy pool:",a),v.NextResponse.json({error:"Failed to update proxy pool"},{status:500})}}async function z(a,{params:b}){try{let{id:a}=await b;if(!await (0,w.hr)(a))return v.NextResponse.json({error:"Proxy pool not found"},{status:404});let c=await (0,w.P)(),d=function(a=[],b){return a.filter(a=>a?.providerSpecificData?.proxyPoolId===b).length}(c,a);if(d>0)return v.NextResponse.json({error:"Proxy pool is currently in use",boundConnectionCount:d},{status:409});return await (0,w.Yd)(a),v.NextResponse.json({success:!0})}catch(a){return console.log("Error deleting proxy pool:",a),v.NextResponse.json({error:"Failed to delete proxy pool"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/proxy-pools/[id]/route",pathname:"/api/proxy-pools/[id]",filename:"route",bundlePath:"app/api/proxy-pools/[id]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/proxy-pools/[id]/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/proxy-pools/[id]/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=943));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json b/cli/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/[id]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js new file mode 100644 index 00000000000..ff49f9c087a --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/[id]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/proxy-pools/[id]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/proxy-pools/[id]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/[id]/test/route.js b/cli/app/.next/server/app/api/proxy-pools/[id]/test/route.js new file mode 100644 index 00000000000..65023123d35 --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/[id]/test/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=7445,a.ids=[7445],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{"use strict";a.exports=require("node:perf_hooks")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{"use strict";a.exports=require("node:http2")},33483:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442),x=c(56066),y=c(16288);async function z(a,b=1e4){let c=new AbortController,d=Date.now(),e=setTimeout(()=>c.abort(),b);try{let b=await (0,y.hd)(a,{method:"GET",headers:{"x-relay-target":"https://httpbin.org","x-relay-path":"/get"},signal:c.signal});return{ok:b.ok,status:b.status,statusText:b.statusText,elapsedMs:Date.now()-d}}catch(a){return{ok:!1,status:500,error:a?.name==="AbortError"?"Relay test timed out":a?.message||String(a)}}finally{clearTimeout(e)}}async function A(a,{params:b}){try{let{id:a}=await b,c=await (0,w.hr)(a);if(!c)return v.NextResponse.json({error:"Proxy pool not found"},{status:404});let d="vercel"===c.type?await z(c.proxyUrl):await (0,x.C)({proxyUrl:c.proxyUrl}),e=new Date().toISOString();return await (0,w.Q_)(a,{testStatus:d.ok?"active":"error",lastTestedAt:e,lastError:d.ok?null:d.error||`Proxy test failed with status ${d.status}`,isActive:d.ok}),v.NextResponse.json({ok:d.ok,status:d.status,statusText:d.statusText||null,error:d.error||null,elapsedMs:d.elapsedMs||0,testedAt:e})}catch(a){return console.log("Error testing proxy pool:",a),v.NextResponse.json({error:"Failed to test proxy pool"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/proxy-pools/[id]/test/route",pathname:"/api/proxy-pools/[id]/test",filename:"route",bundlePath:"app/api/proxy-pools/[id]/test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/proxy-pools/[id]/test/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/proxy-pools/[id]/test/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},56066:(a,b,c)=>{"use strict";c.d(b,{C:()=>f});var d=c(16288);function e(a){return null==a?"":String(a).trim()}async function f({proxyUrl:a,testUrl:b,timeoutMs:c}={}){let g,h=e(a);if(!h)return{ok:!1,status:400,error:"proxyUrl is required"};let i=e(b)||"https://google.com/",j=Number(c),k=Number.isFinite(j)&&j>0?Math.min(j,3e4):8e3;try{try{g=new d.ProxyAgent({uri:h})}catch(a){return{ok:!1,status:400,error:`Invalid proxy URL: ${a?.message||String(a)}`}}let a=new AbortController,b=Date.now(),c=setTimeout(()=>a.abort(),k);try{let c=await (0,d.hd)(i,{method:"HEAD",dispatcher:g,signal:a.signal,headers:{"User-Agent":"9Router"}});return{ok:c.ok,status:c.status,statusText:c.statusText,url:i,elapsedMs:Date.now()-b}}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":function(a){if(!a)return"Unknown error";let b=a?.message||String(a),c=a?.cause?.code||a?.code,d=a?.cause?.message;return d&&d!==b?c?`${b}: ${d} (${c})`:`${b}: ${d}`:c&&!b.includes(c)?`${b} (${c})`:b}(b);return{ok:!1,status:500,error:a}}finally{clearTimeout(c)}}finally{try{await g?.close?.()}catch{}}}},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{"use strict";a.exports=require("node:timers")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,6288,7770],()=>b(b.s=33483));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json b/cli/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json new file mode 100644 index 00000000000..f87a23a2232 --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/[id]/test/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/3656.js","../../../../../chunks/6288.js","../../../../../chunks/64.js","../../../../../chunks/6799.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js b/cli/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js new file mode 100644 index 00000000000..b0eed383990 --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/[id]/test/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/proxy-pools/[id]/test/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/proxy-pools/[id]/test/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/route.js b/cli/app/.next/server/app/api/proxy-pools/route.js new file mode 100644 index 00000000000..91eaa72440b --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=7824,a.ids=[7824],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},93225:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);let x=["http","vercel"];async function y(a){try{var b;let{searchParams:c}=new URL(a.url),d=(b=c.get("isActive"),"true"===b||"false"!==b&&void 0),e="true"===c.get("includeUsage"),f={};void 0!==d&&(f.isActive=d);let g=await (0,w.ui)(f);if(!e)return v.NextResponse.json({proxyPools:g});let h=await (0,w.P)(),i=function(a=[]){let b=new Map;for(let c of a){let a=c?.providerSpecificData?.proxyPoolId;a&&b.set(a,(b.get(a)||0)+1)}return b}(h),j=g.map(a=>({...a,boundConnectionCount:i.get(a.id)||0}));return v.NextResponse.json({proxyPools:j})}catch(a){return console.log("Error fetching proxy pools:",a),v.NextResponse.json({error:"Failed to fetch proxy pools"},{status:500})}}async function z(a){try{let b=await a.json(),c=function(a={}){let b="string"==typeof a?.name?a.name.trim():"",c="string"==typeof a?.proxyUrl?a.proxyUrl.trim():"",d="string"==typeof a?.noProxy?a.noProxy.trim():"",e=a?.isActive===void 0||!0===a.isActive,f=a?.strictProxy===!0,g=x.includes(a?.type)?a.type:"http";return b?c?{name:b,proxyUrl:c,noProxy:d,isActive:e,strictProxy:f,type:g}:{error:"Proxy URL is required"}:{error:"Name is required"}}(b);if(c.error)return v.NextResponse.json({error:c.error},{status:400});let d=await (0,w.ZO)(c);return v.NextResponse.json({proxyPool:d},{status:201})}catch(a){return console.log("Error creating proxy pool:",a),v.NextResponse.json({error:"Failed to create proxy pool"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/proxy-pools/route",pathname:"/api/proxy-pools",filename:"route",bundlePath:"app/api/proxy-pools/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/proxy-pools/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/proxy-pools/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=93225));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/route.js.nft.json b/cli/app/.next/server/app/api/proxy-pools/route.js.nft.json new file mode 100644 index 00000000000..5f2d4ea4fa0 --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js b/cli/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js new file mode 100644 index 00000000000..c6bcbd7d61c --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/proxy-pools/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/proxy-pools/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js b/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js new file mode 100644 index 00000000000..91aa643fb84 --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js @@ -0,0 +1,33 @@ +(()=>{var a={};a.id=6594,a.ids=[6594],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89442:(a,b,c)=>{"use strict";c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},94735:a=>{"use strict";a.exports=require("events")},95313:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(89442);let x="https://api.vercel.com",y=` +export const config = { runtime: "edge" }; + +export default async function handler(req) { + const target = req.headers.get("x-relay-target"); + const relayPath = req.headers.get("x-relay-path") || "/"; + if (!target) { + return new Response(JSON.stringify({ error: "Missing x-relay-target header" }), { + status: 400, + headers: { "content-type": "application/json" }, + }); + } + + const targetUrl = target.replace(/\\/$/, "") + relayPath; + + const headers = new Headers(req.headers); + headers.delete("x-relay-target"); + headers.delete("x-relay-path"); + headers.delete("host"); + + const response = await fetch(targetUrl, { + method: req.method, + headers, + body: req.method !== "GET" && req.method !== "HEAD" ? req.body : undefined, + duplex: "half", + }); + + return new Response(response.body, { + status: response.status, + headers: response.headers, + }); +} +`;async function z(a,b,c=12e4){let d=Date.now();for(;Date.now()-dsetTimeout(a,3e3))}throw Error("Deployment timed out")}async function A(a){try{let b=await a.json(),c=b.vercelToken,d=b.projectName?.trim()||`relay-${Date.now().toString(36)}`;if(!c)return v.NextResponse.json({error:"Vercel API token is required"},{status:400});let e=await fetch(`${x}/v13/deployments`,{method:"POST",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify({name:d,files:[{file:"api/relay.js",data:y},{file:"package.json",data:JSON.stringify({name:d,version:"1.0.0"})},{file:"vercel.json",data:JSON.stringify({rewrites:[{source:"/(.*)",destination:"/api/relay"}]})}],projectSettings:{framework:null},target:"production"})});if(!e.ok){let a=await e.json().catch(()=>({}));return v.NextResponse.json({error:a.error?.message||"Failed to create Vercel deployment"},{status:e.status})}let f=await e.json(),g=f.id||f.uid,h=f.projectId||d;await fetch(`${x}/v9/projects/${h}`,{method:"PATCH",headers:{Authorization:`Bearer ${c}`,"Content-Type":"application/json"},body:JSON.stringify({ssoProtection:null})});let i=await z(g,c),j=`https://${i.url}`,k=await (0,w.ZO)({name:d,proxyUrl:j,type:"vercel",noProxy:"",isActive:!0,strictProxy:!1});return v.NextResponse.json({proxyPool:k,deployUrl:j},{status:201})}catch(a){return console.log("Error deploying Vercel relay:",a),v.NextResponse.json({error:a.message||"Deploy failed"},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/proxy-pools/vercel-deploy/route",pathname:"/api/proxy-pools/vercel-deploy",filename:"route",bundlePath:"app/api/proxy-pools/vercel-deploy/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/proxy-pools/vercel-deploy/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/proxy-pools/vercel-deploy/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=95313));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json b/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js b/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js new file mode 100644 index 00000000000..16c5613dc00 --- /dev/null +++ b/cli/app/.next/server/app/api/proxy-pools/vercel-deploy/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/proxy-pools/vercel-deploy/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/proxy-pools/vercel-deploy/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/database/route.js b/cli/app/.next/server/app/api/settings/database/route.js new file mode 100644 index 00000000000..382c8e3b99c --- /dev/null +++ b/cli/app/.next/server/app/api/settings/database/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=6919,a.ids=[6919],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},26314:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}function e({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"e})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33194:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>y,POST:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(26314);async function y(){try{let a=await (0,w.zP)();return v.NextResponse.json(a)}catch(a){return console.log("Error exporting database:",a),v.NextResponse.json({error:"Failed to export database"},{status:500})}}async function z(a){try{let b=await a.json();await (0,w.K1)(b);try{let a=await (0,w.getSettings)();(0,x.k)(a)}catch(a){console.warn("[Settings][DatabaseImport] Failed to re-apply outbound proxy env:",a)}return v.NextResponse.json({success:!0})}catch(a){return console.log("Error importing database:",a),v.NextResponse.json({error:a?.message||"Failed to import database"},{status:400})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/database/route",pathname:"/api/settings/database",filename:"route",bundlePath:"app/api/settings/database/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/settings/database/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/settings/database/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=33194));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/database/route.js.nft.json b/cli/app/.next/server/app/api/settings/database/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/settings/database/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/database/route_client-reference-manifest.js b/cli/app/.next/server/app/api/settings/database/route_client-reference-manifest.js new file mode 100644 index 00000000000..e14ee00ce74 --- /dev/null +++ b/cli/app/.next/server/app/api/settings/database/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/database/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/settings/database/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/proxy-test/route.js b/cli/app/.next/server/app/api/settings/proxy-test/route.js new file mode 100644 index 00000000000..030829353fc --- /dev/null +++ b/cli/app/.next/server/app/api/settings/proxy-test/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2785,a.ids=[2785],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{"use strict";a.exports=require("node:perf_hooks")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},19696:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(56066);async function x(a){try{let b=await a.json(),c=await (0,w.C)({proxyUrl:b?.proxyUrl,testUrl:b?.testUrl,timeoutMs:b?.timeoutMs});if(c?.ok)return v.NextResponse.json(c);let d="number"==typeof c?.status?c.status:500;return v.NextResponse.json({ok:!1,error:c?.error||"Proxy test failed"},{status:d})}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":b?.message||String(b);return v.NextResponse.json({ok:!1,error:a},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/proxy-test/route",pathname:"/api/settings/proxy-test",filename:"route",bundlePath:"app/api/settings/proxy-test/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/settings/proxy-test/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/settings/proxy-test/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{"use strict";a.exports=require("node:http2")},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},56066:(a,b,c)=>{"use strict";c.d(b,{C:()=>f});var d=c(16288);function e(a){return null==a?"":String(a).trim()}async function f({proxyUrl:a,testUrl:b,timeoutMs:c}={}){let g,h=e(a);if(!h)return{ok:!1,status:400,error:"proxyUrl is required"};let i=e(b)||"https://google.com/",j=Number(c),k=Number.isFinite(j)&&j>0?Math.min(j,3e4):8e3;try{try{g=new d.ProxyAgent({uri:h})}catch(a){return{ok:!1,status:400,error:`Invalid proxy URL: ${a?.message||String(a)}`}}let a=new AbortController,b=Date.now(),c=setTimeout(()=>a.abort(),k);try{let c=await (0,d.hd)(i,{method:"HEAD",dispatcher:g,signal:a.signal,headers:{"User-Agent":"9Router"}});return{ok:c.ok,status:c.status,statusText:c.statusText,url:i,elapsedMs:Date.now()-b}}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":function(a){if(!a)return"Unknown error";let b=a?.message||String(a),c=a?.cause?.code||a?.code,d=a?.cause?.message;return d&&d!==b?c?`${b}: ${d} (${c})`:`${b}: ${d}`:c&&!b.includes(c)?`${b} (${c})`:b}(b);return{ok:!1,status:500,error:a}}finally{clearTimeout(c)}}finally{try{await g?.close?.()}catch{}}}},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},80099:a=>{"use strict";a.exports=require("node:sqlite")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{"use strict";a.exports=require("node:timers")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,6288],()=>b(b.s=19696));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/proxy-test/route.js.nft.json b/cli/app/.next/server/app/api/settings/proxy-test/route.js.nft.json new file mode 100644 index 00000000000..2269b2e6e1c --- /dev/null +++ b/cli/app/.next/server/app/api/settings/proxy-test/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6288.js","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js b/cli/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js new file mode 100644 index 00000000000..e6a43179241 --- /dev/null +++ b/cli/app/.next/server/app/api/settings/proxy-test/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/proxy-test/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/settings/proxy-test/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/require-login/route.js b/cli/app/.next/server/app/api/settings/require-login/route.js new file mode 100644 index 00000000000..aed07c3f9a7 --- /dev/null +++ b/cli/app/.next/server/app/api/settings/require-login/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2797,a.ids=[2797],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},20769:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770);async function x(){try{let a=await (0,w.getSettings)(),b=!1!==a.requireLogin,c=!1!==a.tunnelDashboardAccess,d=a.tunnelUrl||"",e=a.tailscaleUrl||"";return v.NextResponse.json({requireLogin:b,tunnelDashboardAccess:c,tunnelUrl:d,tailscaleUrl:e})}catch(a){return v.NextResponse.json({requireLogin:!0},{status:200})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/require-login/route",pathname:"/api/settings/require-login",filename:"route",bundlePath:"app/api/settings/require-login/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/settings/require-login/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/settings/require-login/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770],()=>b(b.s=20769));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/require-login/route.js.nft.json b/cli/app/.next/server/app/api/settings/require-login/route.js.nft.json new file mode 100644 index 00000000000..4645e29a5bf --- /dev/null +++ b/cli/app/.next/server/app/api/settings/require-login/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js b/cli/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js new file mode 100644 index 00000000000..acba38fb09a --- /dev/null +++ b/cli/app/.next/server/app/api/settings/require-login/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/require-login/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/settings/require-login/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/route.js b/cli/app/.next/server/app/api/settings/route.js new file mode 100644 index 00000000000..cbc1ac493b5 --- /dev/null +++ b/cli/app/.next/server/app/api/settings/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=5177,a.ids=[5177],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},2449:(a,b,c)=>{"use strict";c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(73714);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6048:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>A,PATCH:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(37770),x=c(26314),y=c(48146),z=c(94723);async function A(){try{let{password:a,...b}=await (0,w.getSettings)(),c="true"===process.env.ENABLE_REQUEST_LOGS,d="true"===process.env.ENABLE_TRANSLATOR;return v.NextResponse.json({...b,enableRequestLogs:c,enableTranslator:d,hasPassword:!!a})}catch(a){return console.log("Error getting settings:",a),v.NextResponse.json({error:a.message},{status:500})}}async function B(a){try{let b=await a.json();if(b.newPassword){let a=(await (0,w.getSettings)()).password;if(a){if(!b.currentPassword)return v.NextResponse.json({error:"Current password required"},{status:400});if(!await z.Ay.compare(b.currentPassword,a))return v.NextResponse.json({error:"Invalid current password"},{status:401})}else if(b.currentPassword&&"123456"!==b.currentPassword)return v.NextResponse.json({error:"Invalid current password"},{status:401});let c=await z.Ay.genSalt(10);b.password=await z.Ay.hash(b.newPassword,c),delete b.newPassword,delete b.currentPassword}let c=await (0,w.Xx)(b);(Object.prototype.hasOwnProperty.call(b,"outboundProxyEnabled")||Object.prototype.hasOwnProperty.call(b,"outboundProxyUrl")||Object.prototype.hasOwnProperty.call(b,"outboundNoProxy"))&&(0,x.k)(c),(Object.prototype.hasOwnProperty.call(b,"comboStrategy")||Object.prototype.hasOwnProperty.call(b,"comboStickyRoundRobinLimit")||Object.prototype.hasOwnProperty.call(b,"comboStrategies"))&&(0,y.UP)();let{password:d,...e}=c;return v.NextResponse.json(e)}catch(a){return console.log("Error updating settings:",a),v.NextResponse.json({error:a.message},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/settings/route",pathname:"/api/settings",filename:"route",bundlePath:"app/api/settings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/settings/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/settings/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},26314:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}function e({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"e})},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29807:(a,b,c)=>{"use strict";c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48146:(a,b,c)=>{"use strict";c.d(b,{Pr:()=>i,UP:()=>g,Vu:()=>h});var d=c(2449),e=c(29807);let f=new Map;function g(a){a?f.delete(a):f.clear()}function h(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function i({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:j,comboStickyLimit:k=1}){let l=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let g=b||"__default__",h=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,i=f.get(g),j="number"==typeof i?{index:i,consecutiveUseCount:0}:i||{index:0,consecutiveUseCount:0},k=j.index%a.length,l=function(a,b){let c=[...a];for(let a=0;a=h?f.set(g,{index:(k+1)%a.length,consecutiveUseCount:0}):f.set(g,{index:k,consecutiveUseCount:m}),l}(b,h,j,k),m=null,n=null,o=null;for(let b=0;b0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),m=f||String(b.status),o||(o=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){m=a.message||String(a),o||(o=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:m})}}let p=m&&m.toLowerCase().includes("no credentials")?503:o||503,q=m||"All combo models unavailable";if(n){let a=(0,d.Qo)(n);return g.warn("COMBO",`All models failed | ${q} (${a})`),(0,e.wO)(p,q,n,a)}return g.warn("COMBO",`All models failed | ${q}`),new Response(JSON.stringify({error:{message:q}}),{status:p,headers:{"Content-Type":"application/json"}})}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73714:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,8710,7770],()=>b(b.s=6048));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/route.js.nft.json b/cli/app/.next/server/app/api/settings/route.js.nft.json new file mode 100644 index 00000000000..ef84ac1e77f --- /dev/null +++ b/cli/app/.next/server/app/api/settings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/6799.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../chunks/8710.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/settings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/settings/route_client-reference-manifest.js new file mode 100644 index 00000000000..78fb0a249d8 --- /dev/null +++ b/cli/app/.next/server/app/api/settings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/settings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/settings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/shutdown/route.js b/cli/app/.next/server/app/api/shutdown/route.js new file mode 100644 index 00000000000..8a44b4432f4 --- /dev/null +++ b/cli/app/.next/server/app/api/shutdown/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=992,a.ids=[992],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1717:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>C,patchFetch:()=>B,routeModule:()=>x,serverHooks:()=>A,workAsyncStorage:()=>y,workUnitAsyncStorage:()=>z});var d={};c.r(d),c.d(d,{POST:()=>w});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606);async function w(){return v.NextResponse.json({success:!1,message:"Not allowed in production"},{status:403})}c(11735);let x=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/shutdown/route",pathname:"/api/shutdown",filename:"route",bundlePath:"app/api/shutdown/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/shutdown/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:y,workUnitAsyncStorage:z,serverHooks:A}=x;function B(){return(0,g.patchFetch)({workAsyncStorage:y,workUnitAsyncStorage:z})}async function C(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),x.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/shutdown/route";"/index"===d&&(d="/");let e=await x.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||x.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===x.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await x.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>x.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>x.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await x.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await x.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await x.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,1735],()=>b(b.s=1717));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/shutdown/route.js.nft.json b/cli/app/.next/server/app/api/shutdown/route.js.nft.json new file mode 100644 index 00000000000..ffc8423374c --- /dev/null +++ b/cli/app/.next/server/app/api/shutdown/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../package.json","../../../chunks/1735.js","../../../chunks/6799.js","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/shutdown/route_client-reference-manifest.js b/cli/app/.next/server/app/api/shutdown/route_client-reference-manifest.js new file mode 100644 index 00000000000..b8b834b3daa --- /dev/null +++ b/cli/app/.next/server/app/api/shutdown/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/shutdown/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/shutdown/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tags/route.js b/cli/app/.next/server/app/api/tags/route.js new file mode 100644 index 00000000000..707a065c609 --- /dev/null +++ b/cli/app/.next/server/app/api/tags/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3549,a.ids=[3549],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88480:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,OPTIONS:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509);let v={models:[{name:"llama3.2",modified_at:"2025-12-26T00:00:00Z",size:2e9,digest:"abc123def456",details:{format:"gguf",family:"llama",parameter_size:"3B",quantization_level:"Q4_K_M"}},{name:"qwen2.5",modified_at:"2025-12-26T00:00:00Z",size:4e9,digest:"def456abc123",details:{format:"gguf",family:"qwen",parameter_size:"7B",quantization_level:"Q4_K_M"}}]},w={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"};async function x(){return new Response(null,{headers:w})}async function y(){return new Response(JSON.stringify(v),{headers:{"Content-Type":"application/json",...w}})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tags/route",pathname:"/api/tags",filename:"route",bundlePath:"app/api/tags/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tags/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tags/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773],()=>b(b.s=88480));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tags/route.js.nft.json b/cli/app/.next/server/app/api/tags/route.js.nft.json new file mode 100644 index 00000000000..0f35e6fa360 --- /dev/null +++ b/cli/app/.next/server/app/api/tags/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../package.json","../../../../package.json","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tags/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tags/route_client-reference-manifest.js new file mode 100644 index 00000000000..26a6c70e7cc --- /dev/null +++ b/cli/app/.next/server/app/api/tags/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tags/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tags/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/console-logs/route.js b/cli/app/.next/server/app/api/translator/console-logs/route.js new file mode 100644 index 00000000000..793d338bdf8 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/console-logs/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=5226,a.ids=[5226],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39006:a=>{a.exports={rE:"0.4.20"}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},52560:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{DELETE:()=>y,GET:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(65224);async function x(){try{let a=(0,w.fO)();return v.NextResponse.json({success:!0,logs:a})}catch(a){return console.error("Error getting console logs:",a),v.NextResponse.json({success:!1,error:a.message},{status:500})}}async function y(){try{return(0,w.KM)(),v.NextResponse.json({success:!0})}catch(a){return console.error("Error clearing console logs:",a),v.NextResponse.json({success:!1,error:a.message},{status:500})}}(0,w.wJ)();let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/translator/console-logs/route",pathname:"/api/translator/console-logs",filename:"route",bundlePath:"app/api/translator/console-logs/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/translator/console-logs/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/translator/console-logs/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65224:(a,b,c)=>{c.d(b,{KM:()=>m,fO:()=>l,up:()=>n,wJ:()=>k});var d=c(94735),e=c(89489);let f=["log","info","warn","error","debug"];global._consoleLogBufferState||(global._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new d.EventEmitter},global._consoleLogBufferState.emitter.setMaxListeners(50));let g=global._consoleLogBufferState;g.emitter||(g.emitter=new d.EventEmitter,g.emitter.setMaxListeners(50));let h=/\x1b\[[0-9;]*m/g;function i(a){return a.replace(h,"")}function j(a){if("string"==typeof a)return i(a);if(a instanceof Error)return i(a.stack||a.message||String(a));try{return i(JSON.stringify(a))}catch{return i(String(a))}}function k(){if(!g.patched){for(let a of f)g.originals[a]=console[a],console[a]=(...b)=>{!function(a){g.logs.push(a);let b=e.UY.maxLines;g.logs.length>b&&(g.logs=g.logs.slice(-b)),g.emitter.emit("line",a)}(b.map(j).join(" ")),g.originals[a](...b)};g.patched=!0}}function l(){return g.logs}function m(){g.logs=[],g.emitter.emit("clear")}function n(){return g.emitter}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,21,8193],()=>b(b.s=52560));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/console-logs/route.js.nft.json b/cli/app/.next/server/app/api/translator/console-logs/route.js.nft.json new file mode 100644 index 00000000000..aa206ac39fb --- /dev/null +++ b/cli/app/.next/server/app/api/translator/console-logs/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/21.js","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js b/cli/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js new file mode 100644 index 00000000000..efd689109b7 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/console-logs/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/translator/console-logs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/translator/console-logs/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/console-logs/stream/route.js b/cli/app/.next/server/app/api/translator/console-logs/stream/route.js new file mode 100644 index 00000000000..fb5c708bafa --- /dev/null +++ b/cli/app/.next/server/app/api/translator/console-logs/stream/route.js @@ -0,0 +1,7 @@ +"use strict";(()=>{var a={};a.id=997,a.ids=[997],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},27034:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x,dynamic:()=>w});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(65224);let w="force-dynamic";async function x(a){let b=new TextEncoder,c=(0,v.up)(),d={closed:!1,send:null,sendClear:null,keepalive:null},e=()=>{!d.closed&&(d.closed=!0,d.send&&c.off("line",d.send),d.sendClear&&c.off("clear",d.sendClear),d.keepalive&&clearInterval(d.keepalive))};return a.signal.addEventListener("abort",e,{once:!0}),new Response(new ReadableStream({start(a){let f=(0,v.fO)();f.length>0&&a.enqueue(b.encode(`data: ${JSON.stringify({type:"init",logs:f})} + +`)),d.send=c=>{if(!d.closed)try{a.enqueue(b.encode(`data: ${JSON.stringify({type:"line",line:c})} + +`))}catch{e()}},d.sendClear=()=>{if(!d.closed)try{a.enqueue(b.encode(`data: ${JSON.stringify({type:"clear"})} + +`))}catch{e()}},c.on("line",d.send),c.on("clear",d.sendClear),d.keepalive=setInterval(()=>{if(d.closed)return void clearInterval(d.keepalive);try{a.enqueue(b.encode(": ping\n\n"))}catch{e()}},25e3)},cancel(){e()}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}(0,v.wJ)();let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/translator/console-logs/stream/route",pathname:"/api/translator/console-logs/stream",filename:"route",bundlePath:"app/api/translator/console-logs/stream/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/translator/console-logs/stream/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/translator/console-logs/stream/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39006:a=>{a.exports={rE:"0.4.20"}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55103:(a,b,c)=>{a.exports=c(44870)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},65224:(a,b,c)=>{c.d(b,{KM:()=>m,fO:()=>l,up:()=>n,wJ:()=>k});var d=c(94735),e=c(89489);let f=["log","info","warn","error","debug"];global._consoleLogBufferState||(global._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new d.EventEmitter},global._consoleLogBufferState.emitter.setMaxListeners(50));let g=global._consoleLogBufferState;g.emitter||(g.emitter=new d.EventEmitter,g.emitter.setMaxListeners(50));let h=/\x1b\[[0-9;]*m/g;function i(a){return a.replace(h,"")}function j(a){if("string"==typeof a)return i(a);if(a instanceof Error)return i(a.stack||a.message||String(a));try{return i(JSON.stringify(a))}catch{return i(String(a))}}function k(){if(!g.patched){for(let a of f)g.originals[a]=console[a],console[a]=(...b)=>{!function(a){g.logs.push(a);let b=e.UY.maxLines;g.logs.length>b&&(g.logs=g.logs.slice(-b)),g.emitter.emit("line",a)}(b.map(j).join(" ")),g.originals[a](...b)};g.patched=!0}}function l(){return g.logs}function m(){g.logs=[],g.emitter.emit("clear")}function n(){return g.emitter}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},94735:a=>{a.exports=require("events")},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,21,8193],()=>b(b.s=27034));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json b/cli/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json new file mode 100644 index 00000000000..de3b21023b0 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/console-logs/stream/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/21.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js b/cli/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js new file mode 100644 index 00000000000..ae83b75b13d --- /dev/null +++ b/cli/app/.next/server/app/api/translator/console-logs/stream/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/translator/console-logs/stream/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/translator/console-logs/stream/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/load/route.js b/cli/app/.next/server/app/api/translator/load/route.js new file mode 100644 index 00000000000..4c187fa4c17 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/load/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8975,a.ids=[8975],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},60317:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{GET:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(29021),x=c.n(w),y=c(33873),z=c.n(y);async function A(a){try{let{searchParams:b}=new URL(a.url),c=b.get("file");if(!c)return v.NextResponse.json({success:!1,error:"File parameter required"},{status:400});if(!["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt","6_res_openai.txt","7_res_client.txt","7_res_client.json"].includes(c))return v.NextResponse.json({success:!1,error:"Invalid file name"},{status:400});let d=z().join(process.cwd(),"logs","translator"),e=z().join(d,c);if(!x().existsSync(e))return v.NextResponse.json({success:!1,error:"File not found"},{status:404});let f=x().readFileSync(e,"utf-8");return v.NextResponse.json({success:!0,content:f})}catch(a){return console.error("Error loading file:",a),v.NextResponse.json({success:!1,error:a.message},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/translator/load/route",pathname:"/api/translator/load",filename:"route",bundlePath:"app/api/translator/load/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/translator/load/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/translator/load/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=60317));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/load/route.js.nft.json b/cli/app/.next/server/app/api/translator/load/route.js.nft.json new file mode 100644 index 00000000000..b0f3c14cf21 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/load/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../logs/translator/1_req_client.json","../../../../../../logs/translator/2_req_source.json","../../../../../../logs/translator/3_req_openai.json","../../../../../../logs/translator/4_req_target.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/load/route_client-reference-manifest.js b/cli/app/.next/server/app/api/translator/load/route_client-reference-manifest.js new file mode 100644 index 00000000000..9d66fcb15cc --- /dev/null +++ b/cli/app/.next/server/app/api/translator/load/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/translator/load/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/translator/load/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/save/route.js b/cli/app/.next/server/app/api/translator/save/route.js new file mode 100644 index 00000000000..e1302219827 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/save/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=6268,a.ids=[6268],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},26831:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>G,patchFetch:()=>F,routeModule:()=>B,serverHooks:()=>E,workAsyncStorage:()=>C,workUnitAsyncStorage:()=>D});var d={};c.r(d),c.d(d,{POST:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(29021),x=c.n(w),y=c(33873),z=c.n(y);async function A(a){try{let{file:b,content:c}=await a.json();if(!b||void 0===c)return v.NextResponse.json({success:!1,error:"File and content required"},{status:400});if(!["1_req_client.json","2_req_source.json","3_req_openai.json","4_req_target.json","5_res_provider.txt","6_res_openai.txt","7_res_client.txt","7_res_client.json"].includes(b))return v.NextResponse.json({success:!1,error:"Invalid file name"},{status:400});let d=z().join(process.cwd(),"logs","translator");x().existsSync(d)||x().mkdirSync(d,{recursive:!0});let e=z().join(d,b);return x().writeFileSync(e,c,"utf-8"),v.NextResponse.json({success:!0})}catch(a){return console.error("Error saving file:",a),v.NextResponse.json({success:!1,error:a.message},{status:500})}}let B=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/translator/save/route",pathname:"/api/translator/save",filename:"route",bundlePath:"app/api/translator/save/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/translator/save/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:C,workUnitAsyncStorage:D,serverHooks:E}=B;function F(){return(0,g.patchFetch)({workAsyncStorage:C,workUnitAsyncStorage:D})}async function G(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),B.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/translator/save/route";"/index"===d&&(d="/");let e=await B.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||B.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===B.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await B.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>B.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>B.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await B.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),b}},k=await B.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await B.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=26831));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/save/route.js.nft.json b/cli/app/.next/server/app/api/translator/save/route.js.nft.json new file mode 100644 index 00000000000..b0f3c14cf21 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/save/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../logs/translator/1_req_client.json","../../../../../../logs/translator/2_req_source.json","../../../../../../logs/translator/3_req_openai.json","../../../../../../logs/translator/4_req_target.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/save/route_client-reference-manifest.js b/cli/app/.next/server/app/api/translator/save/route_client-reference-manifest.js new file mode 100644 index 00000000000..f864e693ff3 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/save/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/translator/save/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/translator/save/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/send/route.js b/cli/app/.next/server/app/api/translator/send/route.js new file mode 100644 index 00000000000..2dbffa8efd2 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/send/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=7241,a.ids=[7241],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},2449:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(73714);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29807:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},38609:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(76887),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/translator/send/route",pathname:"/api/translator/send",filename:"route",bundlePath:"app/api/translator/send/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/translator/send/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/translator/send/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55103:(a,b,c)=>{a.exports=c(44870)},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},76887:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>h});var e=c(37770),f=c(46379),g=a([f]);async function h(a){try{let{provider:b,model:c,body:d}=await a.json();if(!b||!c||!d)return Response.json({success:!1,error:"provider, model, and body required"},{status:400});let g=(await (0,e.getProviderConnections)({provider:b})).find(a=>!1!==a.isActive);if(!g)return Response.json({success:!1,error:`No active connection for provider: ${b}`},{status:400});let h={apiKey:g.apiKey,accessToken:g.accessToken,refreshToken:g.refreshToken,copilotToken:g.copilotToken,projectId:g.projectId,providerSpecificData:g.providerSpecificData},i=(0,f.SB)(b),j=!1!==d.stream,{response:k}=await i.execute({model:c,body:d,stream:j,credentials:h});if(401===k.status||403===k.status){let a=await (0,f.$B)(b,h);(a?.accessToken||a?.copilotToken)&&(Object.assign(h,a),{response:k}=await i.execute({model:c,body:d,stream:j,credentials:h}))}if(!k.ok){let a=await k.text();return console.error(`[Translator] Provider error ${k.status}:`,a.slice(0,500)),Response.json({success:!1,error:`Provider error: ${k.status}`,details:a},{status:k.status})}return new Response(k.body,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}catch(a){return console.error("[Translator] Send error:",a),Response.json({success:!1,error:a.message},{status:500})}}f=(g.then?(await g)():g)[0],d()}catch(a){d(a)}})},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,8193,126,304,1578,6263,8202,6379],()=>b(b.s=38609));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/send/route.js.nft.json b/cli/app/.next/server/app/api/translator/send/route.js.nft.json new file mode 100644 index 00000000000..50a296fbc47 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/send/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1578.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/523.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/6379.js","../../../../chunks/64.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/send/route_client-reference-manifest.js b/cli/app/.next/server/app/api/translator/send/route_client-reference-manifest.js new file mode 100644 index 00000000000..9f092db4d65 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/send/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/translator/send/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/translator/send/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/translate/route.js b/cli/app/.next/server/app/api/translator/translate/route.js new file mode 100644 index 00000000000..6da488c6052 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/translate/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=3079,a.ids=[3079],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14703:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{POST:()=>m});var e=c(86606),f=c(19171),g=c(26263),h=c(56790),i=c(53057),j=c(37770),k=c(71246),l=a([k]);async function m(a){try{let{step:b,body:c}=await a.json();if(!b||!c)return e.NextResponse.json({success:!1,error:"Step and body required"},{status:400});switch(b){case 1:{let a=c.body||c,{provider:b,model:d}=(0,i.Xh)(a.model),g=(0,f.Tz)(a),h=(0,f.jJ)(b);return e.NextResponse.json({success:!0,result:{provider:b,model:d,sourceFormat:g,targetFormat:h}})}case 2:{let a=c.body||c,{provider:b,model:d}=(0,i.Xh)(a.model),j=(0,f.Tz)(a),k=!1!==a.stream,l=(0,g.GH)(j,h.h.OPENAI,d,a,k,null,b);return delete l._toolNameMap,e.NextResponse.json({success:!0,result:{body:l}})}case 3:{let a=c.body||c,b=c.provider,d=c.model;if(!b||!d)return e.NextResponse.json({success:!1,error:"provider and model required"},{status:400});let i=(0,f.jJ)(b),l=!1!==a.stream,m=(0,g.GH)(h.h.OPENAI,i,d,a,l,null,b);delete m._toolNameMap;let n=(await (0,j.getProviderConnections)({provider:b})).find(a=>!1!==a.isActive);if(!n)return e.NextResponse.json({success:!1,error:`No active connection for provider: ${b}`},{status:400});let o={apiKey:n.apiKey,accessToken:n.accessToken,refreshToken:n.refreshToken,copilotToken:n.copilotToken,projectId:n.projectId,providerSpecificData:n.providerSpecificData},p=(0,k.SB)(b),q=p.buildUrl(d,l,0,o),r=p.buildHeaders(o,l),s=p.transformRequest(d,m,l,o);return e.NextResponse.json({success:!0,result:{url:q,headers:r,body:s}})}default:return e.NextResponse.json({success:!1,error:"Invalid step (1-3)"},{status:400})}}catch(a){return console.error("Error in translator:",a),e.NextResponse.json({success:!1,error:a.message},{status:500})}}k=(l.then?(await l)():l)[0],d()}catch(a){d(a)}})},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40587:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(14703),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/translator/translate/route",pathname:"/api/translator/translate",filename:"route",bundlePath:"app/api/translator/translate/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/translator/translate/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/translator/translate/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,7770,8193,126,304,1578,6263,8202],()=>b(b.s=40587));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/translate/route.js.nft.json b/cli/app/.next/server/app/api/translator/translate/route.js.nft.json new file mode 100644 index 00000000000..659d726d6fe --- /dev/null +++ b/cli/app/.next/server/app/api/translator/translate/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1578.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/523.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js b/cli/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js new file mode 100644 index 00000000000..d4fbff6b030 --- /dev/null +++ b/cli/app/.next/server/app/api/translator/translate/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/translator/translate/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/translator/translate/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/disable/route.js b/cli/app/.next/server/app/api/tunnel/disable/route.js new file mode 100644 index 00000000000..8d993a0ac38 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/disable/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=5685,a.ids=[5685],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},42686:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(88035);async function x(){try{let a=await (0,w.Rg)();return v.NextResponse.json(a)}catch(a){return console.error("Tunnel disable error:",a),v.NextResponse.json({error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/disable/route",pathname:"/api/tunnel/disable",filename:"route",bundlePath:"app/api/tunnel/disable/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/disable/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/disable/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514,3774,8035],()=>b(b.s=42686));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/disable/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/disable/route.js.nft.json new file mode 100644 index 00000000000..9a217051be8 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/disable/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js new file mode 100644 index 00000000000..fb25903c9a6 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/disable/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/disable/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/disable/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/enable/route.js b/cli/app/.next/server/app/api/tunnel/enable/route.js new file mode 100644 index 00000000000..e9912572499 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/enable/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1118,a.ids=[1118],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},96098:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(88035);async function x(){try{let a=await (0,w.cb)();return await new Promise(a=>setTimeout(a,8e3)),v.NextResponse.json(a)}catch(a){return console.error("Tunnel enable error:",a),v.NextResponse.json({error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/enable/route",pathname:"/api/tunnel/enable",filename:"route",bundlePath:"app/api/tunnel/enable/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/enable/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/enable/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514,3774,8035],()=>b(b.s=96098));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/enable/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/enable/route.js.nft.json new file mode 100644 index 00000000000..9a217051be8 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/enable/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js new file mode 100644 index 00000000000..0bd2598f5aa --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/enable/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/enable/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/enable/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/status/route.js b/cli/app/.next/server/app/api/tunnel/status/route.js new file mode 100644 index 00000000000..a6fbcf37df6 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/status/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3397,a.ids=[3397],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},21400:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(88035),x=c(54495);async function y(){try{let[a,b]=await Promise.all([(0,w.Jv)(),(0,w.H4)()]),c=(0,x.Dd)();return v.NextResponse.json({tunnel:a,tailscale:b,download:c})}catch(a){return console.error("Tunnel status error:",a),v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/status/route",pathname:"/api/tunnel/status",filename:"route",bundlePath:"app/api/tunnel/status/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/status/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/status/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514,3774,8035],()=>b(b.s=21400));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/status/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/status/route.js.nft.json new file mode 100644 index 00000000000..9a217051be8 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/status/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js new file mode 100644 index 00000000000..e807aff6fad --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/status/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/status/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/status/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-check/route.js b/cli/app/.next/server/app/api/tunnel/tailscale-check/route.js new file mode 100644 index 00000000000..36578298a4c --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-check/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8026,a.ids=[8026],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32100:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(21820),w=c.n(v),x=c(79646),y=c(86606),z=c(13774);let A=`/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:${process.env.PATH||""}`;async function B(){try{let a=(0,z.xh)(),b=w().platform(),c="darwin"===b&&function(){try{return(0,x.execSync)("which brew",{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:A}}),!0}catch{return!1}}(),d=!!a&&function(){try{return(0,x.execSync)(`tailscale --socket ${z.Z2} status --json`,{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:A},timeout:3e3}),!0}catch{try{return(0,x.execSync)("pgrep -x tailscaled",{stdio:"ignore",windowsHide:!0,timeout:2e3}),!0}catch{return!1}}}(),e=!!d&&(0,z.a$)();return y.NextResponse.json({installed:a,loggedIn:e,platform:b,brewAvailable:c,daemonRunning:d})}catch(a){return y.NextResponse.json({error:a.message},{status:500})}}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/tailscale-check/route",pathname:"/api/tunnel/tailscale-check",filename:"route",bundlePath:"app/api/tunnel/tailscale-check/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/tailscale-check/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/tailscale-check/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},74075:a=>{"use strict";a.exports=require("zlib")},79646:a=>{"use strict";a.exports=require("child_process")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,2503,3774],()=>b(b.s=32100));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json new file mode 100644 index 00000000000..e81e65f96f1 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-check/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/2503.js","../../../../chunks/3774.js","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js new file mode 100644 index 00000000000..7c29c15bd37 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-check/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/tailscale-check/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/tailscale-check/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-disable/route.js b/cli/app/.next/server/app/api/tunnel/tailscale-disable/route.js new file mode 100644 index 00000000000..688bb73b6bd --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-disable/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=9678,a.ids=[9678],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1196:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(88035);async function x(){try{let a=await (0,w.rH)();return v.NextResponse.json(a)}catch(a){return console.error("Tailscale disable error:",a),v.NextResponse.json({error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/tailscale-disable/route",pathname:"/api/tunnel/tailscale-disable",filename:"route",bundlePath:"app/api/tunnel/tailscale-disable/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/tailscale-disable/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/tailscale-disable/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514,3774,8035],()=>b(b.s=1196));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json new file mode 100644 index 00000000000..9a217051be8 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-disable/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js new file mode 100644 index 00000000000..5a0375c6fa4 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-disable/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/tailscale-disable/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/tailscale-disable/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-enable/route.js b/cli/app/.next/server/app/api/tunnel/tailscale-enable/route.js new file mode 100644 index 00000000000..63176174eb9 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-enable/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=39,a.ids=[39],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64645:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(88035);async function x(){try{let a=await (0,w.mh)();return v.NextResponse.json(a)}catch(a){return console.error("Tailscale enable error:",a),v.NextResponse.json({error:a.message},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/tailscale-enable/route",pathname:"/api/tunnel/tailscale-enable",filename:"route",bundlePath:"app/api/tunnel/tailscale-enable/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/tailscale-enable/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/tailscale-enable/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514,3774,8035],()=>b(b.s=64645));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json new file mode 100644 index 00000000000..9a217051be8 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-enable/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js new file mode 100644 index 00000000000..0e95def9c8c --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-enable/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/tailscale-enable/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/tailscale-enable/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-install/route.js b/cli/app/.next/server/app/api/tunnel/tailscale-install/route.js new file mode 100644 index 00000000000..4dbf784ef3e --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-install/route.js @@ -0,0 +1,5 @@ +(()=>{var a={};a.id=7131,a.ids=[7131],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},72423:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>n});var d=c(71266),e=c(21820),f=c.n(e),g=c(79646),h=c(13774),i=c(50514),j=c(37770),k=c(19931),l=c(39990);(0,i.initDbHooks)(j.getSettings,j.Xx);let m=`/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:${process.env.PATH||""}`;async function n(a){let b=await a.json().catch(()=>({})),c=f().platform(),d="darwin"===c&&function(){try{return(0,g.execSync)("which brew",{stdio:"ignore",windowsHide:!0,env:{...process.env,PATH:m}}),!0}catch{return!1}}(),e=b.sudoPassword||(0,i.getCachedPassword)()||await (0,i.loadEncryptedPassword)()||"";if("win32"!==c&&!d&&!e.trim())return new Response(JSON.stringify({error:"Sudo password is required"}),{status:400,headers:{"Content-Type":"application/json"}});let j=(0,k.C7)()?.shortId||(0,k.jd)(),l=new TextEncoder;return new Response(new ReadableStream({async start(a){let b=(b,c)=>{a.enqueue(l.encode(`event: ${b} +data: ${JSON.stringify(c)} + +`))};try{let a=await (0,h.A1)(e,j,a=>{b("progress",{message:a})});b("done",{success:!0,authUrl:a?.authUrl||null})}catch(a){console.error("Tailscale install error:",a),b("error",{error:a.message?.includes("incorrect password")||a.message?.includes("Sorry")?"Wrong sudo password":a.message})}finally{a.close()}}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}(0,l.D)([n]),(0,d.A)(n,"40ab0d117b9f11b4d9760d6aabe71bbe48415f3599",null)},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77484:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(72423);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/tunnel/tailscale-install/route",pathname:"/api/tunnel/tailscale-install",filename:"route",bundlePath:"app/api/tunnel/tailscale-install/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/tailscale-install/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/tailscale-install/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},88986:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40ab0d117b9f11b4d9760d6aabe71bbe48415f3599":()=>d.POST});var d=c(72423)},91645:a=>{"use strict";a.exports=require("net")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},94735:a=>{"use strict";a.exports=require("events")},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,7770,2503,514,3774],()=>b(b.s=77484));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json new file mode 100644 index 00000000000..4f9c407b308 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-install/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js new file mode 100644 index 00000000000..cdb12820281 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-install/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/tailscale-install/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/tailscale-install/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-login/route.js b/cli/app/.next/server/app/api/tunnel/tailscale-login/route.js new file mode 100644 index 00000000000..beb7873efad --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-login/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2525,a.ids=[2525],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},74075:a=>{"use strict";a.exports=require("zlib")},79646:a=>{"use strict";a.exports=require("child_process")},79739:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{POST:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(13774),x=c(19931);async function y(){try{let a=(0,x.C7)()?.shortId||(0,x.jd)(),b=await (0,w.c$)(a);return v.NextResponse.json(b)}catch(a){return console.error("Tailscale login error:",a),v.NextResponse.json({error:a.message},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/tunnel/tailscale-login/route",pathname:"/api/tunnel/tailscale-login",filename:"route",bundlePath:"app/api/tunnel/tailscale-login/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/tailscale-login/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/tailscale-login/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,2503,3774],()=>b(b.s=79739));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json new file mode 100644 index 00000000000..e81e65f96f1 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-login/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/2503.js","../../../../chunks/3774.js","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-login/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/tailscale-login/route_client-reference-manifest.js new file mode 100644 index 00000000000..bab71d0854a --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-login/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/tailscale-login/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/tailscale-login/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js b/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js new file mode 100644 index 00000000000..0832e7a65f9 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=3507,a.ids=[3507],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10767:(a,b,c)=>{"use strict";c.r(b),c.d(b,{"40a24fd44912cb525707d1a793ba48189e8e0b0eb9":()=>d.POST});var d=c(62257)},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},15765:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(62257);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/tunnel/tailscale-start-daemon/route",pathname:"/api/tunnel/tailscale-start-daemon",filename:"route",bundlePath:"app/api/tunnel/tailscale-start-daemon/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/tunnel/tailscale-start-daemon/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/tunnel/tailscale-start-daemon/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},39990:(a,b)=>{"use strict";function c(a){for(let b=0;b{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},62257:(a,b,c)=>{"use strict";c.r(b),c.d(b,{POST:()=>j});var d=c(71266),e=c(86606),f=c(13774),g=c(50514),h=c(37770),i=c(39990);async function j(a){try{let b=(await a.json().catch(()=>({}))).sudoPassword||(0,g.getCachedPassword)()||await (0,g.loadEncryptedPassword)()||"";return await (0,f.OZ)(b),e.NextResponse.json({success:!0})}catch(a){return console.error("Tailscale start daemon error:",a),e.NextResponse.json({error:a.message},{status:500})}}(0,g.initDbHooks)(h.getSettings,h.Xx),(0,i.D)([j]),(0,d.A)(j,"40a24fd44912cb525707d1a793ba48189e8e0b0eb9",null)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},71266:(a,b,c)=>{"use strict";Object.defineProperty(b,"A",{enumerable:!0,get:function(){return d.registerServerReference}});let d=c(92713)},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},92713:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].ReactServerDOMWebpackServer},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,2566,5978,7770,2503,514,3774],()=>b(b.s=15765));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json b/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json new file mode 100644 index 00000000000..fd3d26bfd25 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/mitm/server.js","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js b/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js new file mode 100644 index 00000000000..4faf99a1e45 --- /dev/null +++ b/cli/app/.next/server/app/api/tunnel/tailscale-start-daemon/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/tunnel/tailscale-start-daemon/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/tunnel/tailscale-start-daemon/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/[connectionId]/route.js b/cli/app/.next/server/app/api/usage/[connectionId]/route.js new file mode 100644 index 00000000000..b4d8daaa2b7 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/[connectionId]/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=907,a.ids=[907],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},2449:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(73714);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29807:(a,b,c)=>{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55103:(a,b,c)=>{a.exports=c(44870)},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},62291:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(91883),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/[connectionId]/route",pathname:"/api/usage/[connectionId]",filename:"route",bundlePath:"app/api/usage/[connectionId]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/[connectionId]/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/[connectionId]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63631:(a,b,c)=>{c.d(b,{m:()=>j});var d=c(43528),e=c(37973);let f={international:"https://api.z.ai/api/monitor/usage/quota/limit",china:"https://open.bigmodel.cn/api/monitor/usage/quota/limit"},g={minimax:["https://www.minimax.io/v1/token_plan/remains","https://api.minimax.io/v1/api/openplatform/coding_plan/remains"],"minimax-cn":["https://www.minimaxi.com/v1/api/openplatform/coding_plan/remains","https://api.minimaxi.com/v1/api/openplatform/coding_plan/remains"]},h={quotaApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:fetchAvailableModels",loadProjectApiUrl:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",tokenUrl:"https://oauth2.googleapis.com/token",clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",userAgent:(0,d.A9)()},i="2023-06-01";async function j(a,b=null){let{provider:c,accessToken:d,apiKey:e,providerSpecificData:f}=a;switch(c){case"github":return await l(d,f,b);case"gemini-cli":return await n(d,f,b);case"antigravity":return await p(d,f,b);case"claude":return await r(d,b);case"codex":return await w(d,b);case"kiro":return await x(d,f,b);case"qwen":return await y(d,f);case"iflow":return await z(d);case"ollama":return await A(d);case"glm":case"glm-cn":return await B(e,c,b);case"minimax":case"minimax-cn":return await I(e,c,b);default:return{message:`Usage API not implemented for ${c}`}}}function k(a){if(!a)return null;try{if(a instanceof Date)return a.toISOString();if("number"==typeof a)return new Date(a<1e12?1e3*a:a).toISOString();if("string"==typeof a){if(/^\d+$/.test(a)){let b=Number(a);return new Date(b<1e12?1e3*b:b).toISOString()}return new Date(a).toISOString()}return null}catch(b){return console.warn(`Failed to parse reset time: ${a}`,b),null}}async function l(a,b,c=null){try{if(!a)throw Error("No GitHub access token available. Please re-authorize the connection.");let b=await (0,e.proxyAwareFetch)("https://api.github.com/copilot_internal/user",{headers:{Authorization:`token ${a}`,Accept:"application/json","X-GitHub-Api-Version":"2022-11-28","User-Agent":"GitHubCopilotChat/0.26.7","Editor-Version":"vscode/1.100.0","Editor-Plugin-Version":"copilot-chat/0.26.7"}},c);if(!b.ok){let a=await b.text();throw Error(`GitHub API error: ${a}`)}let d=await b.json();if(d.quota_snapshots){let a=d.quota_snapshots,b=k(d.quota_reset_date);return{plan:d.copilot_plan,resetDate:d.quota_reset_date,quotas:{chat:{...m(a.chat),resetAt:b},completions:{...m(a.completions),resetAt:b},premium_interactions:{...m(a.premium_interactions),resetAt:b}}}}if(d.monthly_quotas||d.limited_user_quotas){let a=d.monthly_quotas||{},b=d.limited_user_quotas||{},c=k(d.limited_user_reset_date);return{plan:d.copilot_plan||d.access_type_sku,resetDate:d.limited_user_reset_date,quotas:{chat:{used:b.chat||0,total:a.chat||0,unlimited:!1,resetAt:c},completions:{used:b.completions||0,total:a.completions||0,unlimited:!1,resetAt:c}}}}return{message:"GitHub Copilot connected. Unable to parse quota data."}}catch(a){throw Error(`Failed to fetch GitHub usage: ${a.message}`)}}function m(a){return a?{used:a.entitlement-a.remaining,total:a.entitlement,remaining:a.remaining,unlimited:a.unlimited||!1}:{used:0,total:0,unlimited:!0}}async function n(a,b,c=null){if(!a)return{plan:"Free",message:"Gemini CLI access token not available."};try{let d,f=b?.projectId||null,g="Free";if(!f){let b=await o(a,c);f=b?.cloudaicompanionProject||null,g=b?.currentTier?.name||g}if(!f)return{plan:g,message:"Gemini CLI project ID not available."};let h=new AbortController,i=setTimeout(()=>h.abort(),1e4);try{d=await (0,e.proxyAwareFetch)("https://cloudcode-pa.googleapis.com/v1internal:retrieveUserQuota",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({project:f}),signal:h.signal},c)}finally{clearTimeout(i)}if(!d.ok)return{plan:g,message:`Gemini CLI quota error (${d.status}).`};let j=await d.json(),l={};if(Array.isArray(j.buckets))for(let a of j.buckets){if(!a.modelId||null==a.remainingFraction)continue;let b=Number(a.remainingFraction)||0,c=Math.round(1e3*b),d=Math.max(0,1e3-c);l[a.modelId]={used:d,total:1e3,resetAt:k(a.resetTime),remainingPercentage:100*b,unlimited:!1}}return{plan:g,quotas:l}}catch(a){return{message:`Gemini CLI error: ${a.message}`}}}async function o(a,b=null){let c=new AbortController,d=setTimeout(()=>c.abort(),1e4);try{let d=await (0,e.proxyAwareFetch)("https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/json"},body:JSON.stringify({metadata:{ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"}}),signal:c.signal},b);if(!d.ok)return null;return await d.json()}catch{return null}finally{clearTimeout(d)}}async function p(a,b,c=null){try{let b,d=await q(a,c),f=d?.cloudaicompanionProject||null,g=new AbortController,i=setTimeout(()=>g.abort(),1e4);try{b=await (0,e.proxyAwareFetch)(h.quotaApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":h.userAgent,"Content-Type":"application/json","X-Client-Name":"antigravity","X-Client-Version":"1.107.0","x-request-source":"local"},body:JSON.stringify({...f?{project:f}:{}}),signal:g.signal},c)}finally{clearTimeout(i)}if(403===b.status)return{message:"Antigravity quota API access forbidden. Chat may still work.",quotas:{}};if(401===b.status)return{message:"Antigravity quota API authentication expired. Chat may still work.",quotas:{}};if(!b.ok)throw Error(`Antigravity API error: ${b.status}`);let j=await b.json(),l={};if(j.models){let a=["claude-opus-4-6-thinking","claude-sonnet-4-6","gemini-3.1-pro-high","gemini-3.1-pro-low","gemini-3-flash","gpt-oss-120b-medium"];for(let[b,c]of Object.entries(j.models)){if(!c.quotaInfo||c.isInternal||!a.includes(b))continue;let d=c.quotaInfo.remainingFraction||0,e=100*d,f=Math.round(1e3*d),g=1e3-f;l[b]={used:g,total:1e3,resetAt:k(c.quotaInfo.resetTime),remainingPercentage:e,unlimited:!1,displayName:c.displayName||b}}}return{plan:d?.currentTier?.name||"Unknown",quotas:l,subscriptionInfo:d}}catch(a){return console.error("[Antigravity Usage] Error:",a.message,a.cause),{message:`Antigravity error: ${a.message}`}}}async function q(a,b=null){let c=new AbortController,f=setTimeout(()=>c.abort(),1e4);try{let f=await (0,e.proxyAwareFetch)(h.loadProjectApiUrl,{method:"POST",headers:{Authorization:`Bearer ${a}`,"User-Agent":h.userAgent,"Content-Type":"application/json","x-request-source":"local"},body:JSON.stringify({metadata:d.Cn,mode:1}),signal:c.signal},b);if(!f.ok)return null;return await f.json()}catch(a){return console.error("[Antigravity Subscription] Error:",a.message),null}finally{clearTimeout(f)}}async function r(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://api.anthropic.com/api/oauth/usage",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-beta":"oauth-2025-04-20","anthropic-version":i}},b);if(c.ok){let a=await c.json(),b={},d=a=>a&&"object"==typeof a&&"number"==typeof a.utilization,e=a=>{let b=a.utilization,c=Math.max(0,100-b);return{used:b,total:100,remaining:c,remainingPercentage:c,resetAt:k(a.resets_at),unlimited:!1}};for(let[c,f]of(d(a.five_hour)&&(b["session (5h)"]=e(a.five_hour)),d(a.seven_day)&&(b["weekly (7d)"]=e(a.seven_day)),Object.entries(a)))if(c.startsWith("seven_day_")&&"seven_day"!==c&&d(f)){let a=c.replace("seven_day_","");b[`weekly ${a} (7d)`]=e(f)}return{plan:"Claude Code",extraUsage:a.extra_usage??null,quotas:b}}return console.warn(`[Claude Usage] OAuth endpoint returned ${c.status}, falling back to legacy`),await s(a,b)}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}async function s(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://api.anthropic.com/v1/settings",{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":i}},b);if(c.ok){let d=await c.json();if(d.organization_id){let c=await (0,e.proxyAwareFetch)("https://api.anthropic.com/v1/organizations/{org_id}/usage".replace("{org_id}",d.organization_id),{method:"GET",headers:{Authorization:`Bearer ${a}`,"anthropic-version":i}},b);if(c.ok){let a=await c.json();return{plan:d.plan||"Unknown",organization:d.organization_name,quotas:a}}}return{plan:d.plan||"Unknown",organization:d.organization_name,message:"Claude connected. Usage details require admin access."}}return{message:"Claude connected. Usage API requires admin permissions."}}catch(a){return{message:`Claude connected. Unable to fetch usage: ${a.message}`}}}function t(a){return!a||"object"!=typeof a||Array.isArray(a)?null:a.rate_limit&&"object"==typeof a.rate_limit?a.rate_limit:a}function u(a){let b=Math.max(0,Math.min(100,function(a,b=0){if("number"==typeof a&&Number.isFinite(a))return a;if("string"==typeof a&&a.trim()){let b=Number(a);if(Number.isFinite(b))return b}return b}(a?.used_percent??a?.percent_used,0)));return{used:b,total:100,remaining:Math.max(0,100-b),resetAt:k(a?.reset_at??a?.resets_at??a?.resetAt??null),unlimited:!1}}function v(a,b,c){let d=t(c);if(!d)return!1;let e=d.primary_window||d.primary||c.primary_window||c.primary,f=d.secondary_window||d.secondary||c.secondary_window||c.secondary,g=!1;return e&&(a[b?`${b}_session`:"session"]=u(e),g=!0),f&&(a[b?`${b}_weekly`:"weekly"]=u(f),g=!0),g}async function w(a,b=null){try{let c=await (0,e.proxyAwareFetch)("https://chatgpt.com/backend-api/wham/usage",{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},b);if(!c.ok)return{message:`Codex connected. Usage API temporarily unavailable (${c.status}).`};let d=await c.json(),f=d.rate_limit||d.rate_limits||d.rate_limits_by_limit_id?.codex||{},g=function(a){if(a.code_review_rate_limit||a.review_rate_limit)return a.code_review_rate_limit||a.review_rate_limit;let b=a.rate_limits_by_limit_id;return b&&"object"==typeof b&&!Array.isArray(b)?b.code_review||b.codex_review||b.review||null:(Array.isArray(a.additional_rate_limits)?a.additional_rate_limits:[]).find(a=>{let b=String(a?.limit_name||a?.metered_feature||a?.id||"").toLowerCase();return"code_review"===b||"codex_review"===b||"review"===b||b.includes("review")})||null}(d),h={};return v(h,"",f),v(h,"review",g),{plan:d.plan_type||d.summary?.plan||"unknown",limitReached:t(f)?.limit_reached||!1,reviewLimitReached:t(g)?.limit_reached||!1,quotas:h}}catch(a){throw Error(`Failed to fetch Codex usage: ${a.message}`)}}async function x(a,b,c=null){let d=b?.profileArn||"arn:aws:codewhisperer:us-east-1:638616132270:profile/AAAACCCCXXXX",f=b?.authMethod||"builder-id",g=new URLSearchParams({isEmailRequired:"true",origin:"AI_EDITOR",resourceType:"AGENTIC_REQUEST"}),h=!1,i=[];for(let b of[{name:"codewhisperer-get",run:async()=>(0,e.proxyAwareFetch)(`https://codewhisperer.us-east-1.amazonaws.com/getUsageLimits?${g.toString()}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json","x-amz-user-agent":"aws-sdk-js/1.0.0 KiroIDE","user-agent":"aws-sdk-js/1.0.0 KiroIDE"}},c)},{name:"codewhisperer-post",run:async()=>(0,e.proxyAwareFetch)("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{Authorization:`Bearer ${a}`,"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.GetUsageLimits",Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:d,resourceType:"AGENTIC_REQUEST"})},c)},{name:"q-get",run:async()=>{let b=new URLSearchParams({origin:"AI_EDITOR",profileArn:d,resourceType:"AGENTIC_REQUEST"});return(0,e.proxyAwareFetch)(`https://q.us-east-1.amazonaws.com/getUsageLimits?${b}`,{method:"GET",headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c)}}])try{let a=await b.run();if(!a.ok){let c=await a.text().catch(()=>"");(401===a.status||403===a.status)&&(h=!0),i.push(`${b.name}:${a.status}${c?`:${c}`:""}`);continue}let c=await a.json();return function(a){let b=a.usageBreakdownList||[],c={},d=k(a.nextDateReset||a.resetDate);return b.forEach(a=>{let b=a.resourceType?.toLowerCase()||"unknown",e=a.currentUsageWithPrecision||0,f=a.usageLimitWithPrecision||0;if(c[b]={used:e,total:f,remaining:f-e,resetAt:d,unlimited:!1},a.freeTrialInfo){let e=a.freeTrialInfo.currentUsageWithPrecision||0,f=a.freeTrialInfo.usageLimitWithPrecision||0;c[`${b}_freetrial`]={used:e,total:f,remaining:f-e,resetAt:k(a.freeTrialInfo.freeTrialExpiry||d),unlimited:!1}}}),{plan:a.subscriptionInfo?.subscriptionTitle||"Kiro",quotas:c}}(c)}catch(a){i.push(`${b.name}:${a.message}`)}return h&&"idc"===f?{message:"Kiro quota API is unavailable for the current AWS IAM Identity Center session. Chat may still work. If this persists after renewing your session, reconnect Kiro.",quotas:{}}:h&&("google"===f||"github"===f)?{message:"Kiro quota API authentication expired. Chat may still work.",quotas:{}}:h?{message:"Kiro quota API rejected the current token. Chat may still work.",quotas:{}}:{message:i.length>0?`Unable to fetch Kiro usage right now. (${i[i.length-1]})`:"Unable to fetch Kiro usage right now.",quotas:{}}}async function y(a,b){try{if(!b?.resourceUrl)return{message:"Qwen connected. No resource URL available."};return{message:"Qwen connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch Qwen usage."}}}async function z(a){try{return{message:"iFlow connected. Usage tracked per request."}}catch(a){return{message:"Unable to fetch iFlow usage."}}}async function A(a,b){try{return{plan:b?.plan||"Free",message:"Ollama Cloud uses a free tier with light usage limits (resets every 5h & 7d). For detailed usage tracking, visit ollama.com/settings/keys.",quotas:[]}}catch(a){return{message:"Unable to fetch Ollama Cloud usage."}}}async function B(a,b,c=null){if(!a)return{message:"GLM API key not available."};let d=f["glm-cn"===b?"china":"international"];try{let b=await (0,e.proxyAwareFetch)(d,{headers:{Authorization:`Bearer ${a}`,Accept:"application/json"}},c);if(!b.ok){if(401===b.status)return{message:"GLM API key invalid or expired."};return{message:`GLM quota API error (${b.status}).`}}let f=await b.json(),g=f?.data&&"object"==typeof f.data?f.data:{},h=Array.isArray(g.limits)?g.limits:[],i={};for(let a of h){if(!a||"TOKENS_LIMIT"!==a.type)continue;let b=Number(a.percentage)||0,c=Number(a.nextResetTime)||0,d=Math.max(0,100-b);i.session={used:b,total:100,remaining:d,remainingPercentage:d,resetAt:c>0?new Date(c).toISOString():null,unlimited:!1}}let j="string"==typeof g.level?g.level:"";return{plan:j?j.charAt(0).toUpperCase()+j.slice(1).toLowerCase():"Unknown",quotas:i}}catch(a){return{message:`GLM error: ${a.message}`}}}function C(a,b,c){return a&&"object"==typeof a?a[b]??a[c]??null:null}function D(a){return Math.max(0,Number(C(a,"current_interval_total_count","currentIntervalTotalCount"))||0)}function E(a){return Math.max(0,Number(C(a,"current_weekly_total_count","currentWeeklyTotalCount"))||0)}function F(a,b){let c=a.filter(a=>b(a)>0),d=c.length>0?c:a;return 0===d.length?null:d.reduce((a,c)=>b(c)>b(a)?c:a)}function G(a,b,c,d,e,f){let g=Number(C(a,c,d))||0;return g>0?new Date(b+g).toISOString():k(C(a,e,f))}function H(a,b,c,d){let e=Math.max(0,a),f=d?Math.max(e-b,0):Math.min(Math.max(0,b),e),g=Math.max(e-f,0);return{used:f,total:e,remaining:g,remainingPercentage:e>0?Math.max(0,Math.min(100,g/e*100)):0,resetAt:c,unlimited:!1}}async function I(a,b,c=null){if(!a)return{message:"MiniMax API key not available."};let d=g[b]||[],f="";for(let b=0;b=500)&&h)continue;return{message:`MiniMax connected. ${f}`}}if(0!==k)return{message:`MiniMax connected. ${l||"Upstream quota API error"}`};let o=i?.model_remains??i?.modelRemains,p=(Array.isArray(o)?o:[]).filter(a=>(function(a){let b=(a||"").trim().toLowerCase();return b.startsWith("minimax-m")||b.startsWith("coding-plan")})(String(C(a,"model_name","modelName"))));if(0===p.length)return{message:"MiniMax connected. No text quota data was returned."};let q=Date.now(),r=g.includes("/coding_plan/remains"),s={},t=F(p,D);if(t){let a=D(t),b=Math.max(0,Number(C(t,"current_interval_usage_count","currentIntervalUsageCount"))||0);s["session (5h)"]=H(a,b,G(t,q,"remains_time","remainsTime","end_time","endTime"),r)}let u=F(p,E);if(u&&E(u)>0){let a=E(u),b=Math.max(0,Number(C(u,"current_weekly_usage_count","currentWeeklyUsageCount"))||0);s["weekly (7d)"]=H(a,b,G(u,q,"weekly_remains_time","weeklyRemainsTime","weekly_end_time","weeklyEndTime"),r)}if(0===Object.keys(s).length)return{message:"MiniMax connected. Unable to extract quota usage."};return{quotas:s}}catch(a){if(f=a.message,!h)break}}return{message:f?`MiniMax connected. Unable to fetch usage: ${f}`:"MiniMax connected. Unable to fetch usage."}}},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},91645:a=>{a.exports=require("net")},91883:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{GET:()=>m});var e=c(46379),f=c(37770),g=c(63631),h=c(71246),i=c(93250),j=c(50021),k=a([e,h]);[e,h]=k.then?(await k)():k;let n=["expired","authentication","unauthorized","401","re-authorize"];async function l(a,b=!1,c=null){let d=(0,h.SB)(a.provider),e={accessToken:a.accessToken,refreshToken:a.refreshToken,expiresAt:a.expiresAt||a.tokenExpiresAt,providerSpecificData:a.providerSpecificData,copilotToken:a.providerSpecificData?.copilotToken,copilotTokenExpiresAt:a.providerSpecificData?.copilotTokenExpiresAt};if(!(b||d.needsRefresh(e)))return{connection:a,refreshed:!1};let g=await d.refreshCredentials(e,console,c);if(!g){if(a.accessToken)return{connection:a,refreshed:!1};throw Error("Failed to refresh credentials. Please re-authorize the connection.")}let i={updatedAt:new Date().toISOString()};return g.accessToken&&(i.accessToken=g.accessToken),g.refreshToken&&(i.refreshToken=g.refreshToken),g.expiresIn?i.expiresAt=new Date(Date.now()+1e3*g.expiresIn).toISOString():g.expiresAt&&(i.expiresAt=g.expiresAt),(g.copilotToken||g.copilotTokenExpiresAt)&&(i.providerSpecificData={...a.providerSpecificData,copilotToken:g.copilotToken,copilotTokenExpiresAt:g.copilotTokenExpiresAt}),await (0,f.updateProviderConnection)(a.id,i),{connection:{...a,...i},refreshed:!0}}async function m(a,{params:b}){let c;try{let{connectionId:a}=await b;if(!(c=await (0,f.Mc)(a)))return Response.json({error:"Connection not found"},{status:404});let d="oauth"===c.authType,e="apikey"===c.authType&&j.jO.includes(c.provider);if(!d&&!e)return Response.json({message:"Usage not available for this connection"});let h=await (0,i.B)(c.providerSpecificData),k={connectionProxyEnabled:!0===h.connectionProxyEnabled,connectionProxyUrl:h.connectionProxyUrl||"",connectionNoProxy:h.connectionNoProxy||"",vercelRelayUrl:h.vercelRelayUrl||"",strictProxy:!1};if(d)try{c=(await l(c,!1,k)).connection}catch(a){return console.error("[Usage API] Credential refresh failed:",a),Response.json({error:`Credential refresh failed: ${a.message}`},{status:401})}let m=await (0,g.m)(c,k);if(d&&function(a){if(!a?.message)return!1;let b=a.message.toLowerCase();return n.some(a=>b.includes(a))}(m)&&c.refreshToken)try{c=(await l(c,!0,k)).connection,m=await (0,g.m)(c,k)}catch(a){console.warn(`[Usage] ${c.provider}: force refresh failed: ${a.message}`)}return Response.json(m)}catch(b){let a=c?.provider??"unknown";return console.warn(`[Usage] ${a}: ${b.message}`),Response.json({error:b.message},{status:500})}}d()}catch(a){d(a)}})},93250:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(89442);function e(a){return null==a?"":String(a).trim()}async function f(a={}){let b=e(a?.proxyPoolId),c="__none__"===b?"":b,g=function(a={}){let b=a?.connectionProxyEnabled===!0;return{connectionProxyEnabled:b,connectionProxyUrl:e(a?.connectionProxyUrl),connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b)return"vercel"===a.type?{source:"vercel",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b}:{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}return g.connectionProxyEnabled&&g.connectionProxyUrl?{source:"legacy",proxyPoolId:c||null,proxyPool:null,...g}:{source:"none",proxyPoolId:c||null,proxyPool:null,...g}}},94735:a=>{a.exports=require("events")},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,6379],()=>b(b.s=62291));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json b/cli/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json new file mode 100644 index 00000000000..dc80d98b633 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/[connectionId]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1578.js","../../../../chunks/21.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/523.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/6379.js","../../../../chunks/64.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js new file mode 100644 index 00000000000..56c9fa64816 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/[connectionId]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/[connectionId]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/[connectionId]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/chart/route.js b/cli/app/.next/server/app/api/usage/chart/route.js new file mode 100644 index 00000000000..165ddf83ca9 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/chart/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=4422,a.ids=[4422],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},79494:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(60126);let x=new Set(["24h","7d","30d","60d"]);async function y(a){try{let{searchParams:b}=new URL(a.url),c=b.get("period")||"7d";if(!x.has(c))return v.NextResponse.json({error:"Invalid period"},{status:400});let d=await (0,w.j$)(c);return v.NextResponse.json(d)}catch(a){return console.error("[API] Failed to get chart data:",a),v.NextResponse.json({error:"Failed to fetch chart data"},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/chart/route",pathname:"/api/usage/chart",filename:"route",bundlePath:"app/api/usage/chart/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/chart/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/chart/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,126],()=>b(b.s=79494));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/chart/route.js.nft.json b/cli/app/.next/server/app/api/usage/chart/route.js.nft.json new file mode 100644 index 00000000000..bc49441cee4 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/chart/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js new file mode 100644 index 00000000000..c744086d935 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/chart/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/chart/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/chart/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/history/route.js b/cli/app/.next/server/app/api/usage/history/route.js new file mode 100644 index 00000000000..7b5b4f047c4 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/history/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3038,a.ids=[3038],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},75860:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(60126);async function x(){try{let a=await (0,w.BY)();return v.NextResponse.json(a)}catch(a){return console.error("Error fetching usage stats:",a),v.NextResponse.json({error:"Failed to fetch usage stats"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/history/route",pathname:"/api/usage/history",filename:"route",bundlePath:"app/api/usage/history/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/history/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/history/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,126],()=>b(b.s=75860));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/history/route.js.nft.json b/cli/app/.next/server/app/api/usage/history/route.js.nft.json new file mode 100644 index 00000000000..bc49441cee4 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/history/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/history/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/history/route_client-reference-manifest.js new file mode 100644 index 00000000000..90f1b82b5a0 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/history/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/history/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/history/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/providers/route.js b/cli/app/.next/server/app/api/usage/providers/route.js new file mode 100644 index 00000000000..5e055ad37c1 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/providers/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1088,a.ids=[1088],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21812:(a,b,c)=>{"use strict";c.d(b,{SL:()=>v,ox:()=>u});var d=c(34278),e=c(73865),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(81372);let k=g().join(j.n,"request-details.json");i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let l=null;async function m(){if(!l){let a=new e.Pv(k),b=new d.t(a,{records:[]});await b.read(),b.data?.records||(b.data={records:[]}),l=b}return l}let n=null,o=0;async function p(){if(n&&Date.now()-o<5e3)return n;try{let{getSettings:a}=await Promise.all([c.e(3656),c.e(7770)]).then(c.bind(c,37770)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;n={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{n={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return o=Date.now(),n}let q=[],r=null,s=!1;async function t(){if(!s&&0!==q.length){s=!0;try{let a=[...q];q=[];let b=await m(),c=await p();for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:d.request||{},providerRequest:d.providerRequest||{},providerResponse:d.providerResponse||{},response:d.response||{}},e=c.maxJsonSize;for(let b of["request","providerRequest","providerResponse","response"]){let c=JSON.stringify(a[b]);c.length>e&&(a[b]={_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)})}let f=b.data.records.findIndex(b=>b.id===a.id);-1!==f?b.data.records[f]=a:b.data.records.push(a)}for(b.data.records.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)),b.data.records.length>c.maxRecords&&(b.data.records=b.data.records.slice(0,c.maxRecords));b.data.records.length>1&&!(0x3200000>=Buffer.byteLength(JSON.stringify(b.data),"utf8"));)b.data.records=b.data.records.slice(0,Math.floor(b.data.records.length/2));await b.write()}catch(a){console.error("[requestDetailsDb] Batch write failed:",a)}finally{s=!1}}}async function u(a){let b=await p();b.enabled&&(q.push(a),q.length>=b.batchSize?(await t(),r&&(clearTimeout(r),r=null)):r||(r=setTimeout(()=>{t().catch(()=>{}),r=null},b.flushIntervalMs)))}async function v(a={}){let b=[...(await m()).data.records];a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.model&&(b=b.filter(b=>b.model===a.model)),a.connectionId&&(b=b.filter(b=>b.connectionId===a.connectionId)),a.status&&(b=b.filter(b=>b.status===a.status)),a.startDate&&(b=b.filter(b=>new Date(b.timestamp)>=new Date(a.startDate))),a.endDate&&(b=b.filter(b=>new Date(b.timestamp)<=new Date(a.endDate))),b.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp));let c=b.length,d=a.page||1,e=a.pageSize||50,f=Math.ceil(c/e);return{details:b.slice((d-1)*e,d*e),pagination:{page:d,pageSize:e,totalItems:c,totalPages:f,hasNext:d1}}}let w=async()=>{r&&(clearTimeout(r),r=null),q.length>0&&await t()};process.off("beforeExit",w),process.off("SIGINT",w),process.off("SIGTERM",w),process.off("exit",w),process.on("beforeExit",w),process.on("SIGINT",w),process.on("SIGTERM",w),process.on("exit",w)},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},50134:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(21812),x=c(37770),y=c(50021);async function z(){try{let{details:a}=await (0,w.SL)({pageSize:9999}),b=[...new Set(a.map(a=>a.provider).filter(Boolean))].sort(),c=await (0,x.getProviderNodes)(),d={};for(let a of c)d[a.id]=a.name;let e=b.map(a=>{let b=a;if(d[a])b=d[a];else{let c=(0,y.zt)(a)||y.AI_PROVIDERS[a];c?.name&&(b=c.name)}return{id:a,name:b}});return v.NextResponse.json({providers:e})}catch(a){return console.error("[API] Failed to get providers:",a),v.NextResponse.json({error:"Failed to fetch providers"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/providers/route",pathname:"/api/usage/providers",filename:"route",bundlePath:"app/api/usage/providers/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/providers/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/providers/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,6799,7770,21],()=>b(b.s=50134));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/providers/route.js.nft.json b/cli/app/.next/server/app/api/usage/providers/route.js.nft.json new file mode 100644 index 00000000000..52a119a197c --- /dev/null +++ b/cli/app/.next/server/app/api/usage/providers/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/21.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js new file mode 100644 index 00000000000..5a08eac59f1 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/providers/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/providers/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/providers/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/request-details/route.js b/cli/app/.next/server/app/api/usage/request-details/route.js new file mode 100644 index 00000000000..e50012f3398 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/request-details/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1200,a.ids=[1200],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},40486:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(60126);async function x(a){try{let{searchParams:b}=new URL(a.url),c=parseInt(b.get("page"))||1,d=parseInt(b.get("pageSize"))||20,e=b.get("provider"),f=b.get("model"),g=b.get("connectionId"),h=b.get("status"),i=b.get("startDate"),j=b.get("endDate");if(c<1)return v.NextResponse.json({error:"Page must be >= 1"},{status:400});if(d<1||d>100)return v.NextResponse.json({error:"PageSize must be between 1 and 100"},{status:400});let k={page:c,pageSize:d};e&&(k.provider=e),f&&(k.model=f),g&&(k.connectionId=g),h&&(k.status=h),i&&(k.startDate=i),j&&(k.endDate=j);let l=await (0,w.SL)(k);return v.NextResponse.json(l)}catch(a){return console.error("[API] Failed to get request details:",a),v.NextResponse.json({error:"Failed to fetch request details"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/request-details/route",pathname:"/api/usage/request-details",filename:"route",bundlePath:"app/api/usage/request-details/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/request-details/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/request-details/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,126],()=>b(b.s=40486));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/request-details/route.js.nft.json b/cli/app/.next/server/app/api/usage/request-details/route.js.nft.json new file mode 100644 index 00000000000..bc49441cee4 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/request-details/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js new file mode 100644 index 00000000000..d3b9b37e0d9 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/request-details/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/request-details/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/request-details/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/request-logs/route.js b/cli/app/.next/server/app/api/usage/request-logs/route.js new file mode 100644 index 00000000000..c44988b5a8b --- /dev/null +++ b/cli/app/.next/server/app/api/usage/request-logs/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=9027,a.ids=[9027],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27811:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(60126);async function x(){try{let a=await (0,w.Zx)(200);return v.NextResponse.json(a)}catch(a){return console.error("[API ERROR] /api/usage/logs failed:",a),console.error("[API ERROR] Stack:",a?.stack),v.NextResponse.json({error:"Failed to fetch logs"},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/request-logs/route",pathname:"/api/usage/request-logs",filename:"route",bundlePath:"app/api/usage/request-logs/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/request-logs/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/request-logs/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,126],()=>b(b.s=27811));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/request-logs/route.js.nft.json b/cli/app/.next/server/app/api/usage/request-logs/route.js.nft.json new file mode 100644 index 00000000000..bc49441cee4 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/request-logs/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js new file mode 100644 index 00000000000..023dbcb47f2 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/request-logs/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/request-logs/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/request-logs/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/stats/route.js b/cli/app/.next/server/app/api/usage/stats/route.js new file mode 100644 index 00000000000..1461e042cec --- /dev/null +++ b/cli/app/.next/server/app/api/usage/stats/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=9199,a.ids=[9199],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},49299:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>F,patchFetch:()=>E,routeModule:()=>A,serverHooks:()=>D,workAsyncStorage:()=>B,workUnitAsyncStorage:()=>C});var d={};c.r(d),c.d(d,{GET:()=>z,dynamic:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(60126);let x=new Set(["24h","7d","30d","60d","all"]),y="force-dynamic";async function z(a){try{let{searchParams:b}=new URL(a.url),c=b.get("period")||"7d";if(!x.has(c))return v.NextResponse.json({error:"Invalid period"},{status:400});let d=await (0,w.BY)(c);return v.NextResponse.json(d)}catch(a){return console.error("[API] Failed to get usage stats:",a),v.NextResponse.json({error:"Failed to fetch usage stats"},{status:500})}}let A=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/stats/route",pathname:"/api/usage/stats",filename:"route",bundlePath:"app/api/usage/stats/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/stats/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:B,workUnitAsyncStorage:C,serverHooks:D}=A;function E(){return(0,g.patchFetch)({workAsyncStorage:B,workUnitAsyncStorage:C})}async function F(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),A.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/stats/route";"/index"===d&&(d="/");let e=await A.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||A.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===A.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await A.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>A.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>A.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await A.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await A.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await A.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,126],()=>b(b.s=49299));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/stats/route.js.nft.json b/cli/app/.next/server/app/api/usage/stats/route.js.nft.json new file mode 100644 index 00000000000..bc49441cee4 --- /dev/null +++ b/cli/app/.next/server/app/api/usage/stats/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/6799.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js new file mode 100644 index 00000000000..5b1a29c285b --- /dev/null +++ b/cli/app/.next/server/app/api/usage/stats/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/stats/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/stats/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/stream/route.js b/cli/app/.next/server/app/api/usage/stream/route.js new file mode 100644 index 00000000000..84ea45f92fa --- /dev/null +++ b/cli/app/.next/server/app/api/usage/stream/route.js @@ -0,0 +1,7 @@ +(()=>{var a={};a.id=1382,a.ids=[1382],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32263:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x,dynamic:()=>w});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(60126);let w="force-dynamic";async function x(){let a=new TextEncoder,b={closed:!1,keepalive:null,send:null,sendPending:null,cachedStats:null};return new Response(new ReadableStream({async start(c){b.send=async()=>{if(!b.closed)try{if(b.cachedStats){let{activeRequests:d,recentRequests:e,errorProvider:f}=await (0,v.rg)(),g={...b.cachedStats,activeRequests:d,recentRequests:e,errorProvider:f};c.enqueue(a.encode(`data: ${JSON.stringify(g)} + +`))}let d=await (0,v.BY)();b.cachedStats=d,c.enqueue(a.encode(`data: ${JSON.stringify(d)} + +`))}catch{b.closed=!0,v._V.off("update",b.send),v._V.off("pending",b.sendPending),clearInterval(b.keepalive)}},b.sendPending=async()=>{if(!b.closed&&b.cachedStats)try{let{activeRequests:d,recentRequests:e,errorProvider:f}=await (0,v.rg)(),g={...b.cachedStats,activeRequests:d,recentRequests:e,errorProvider:f};c.enqueue(a.encode(`data: ${JSON.stringify(g)} + +`))}catch{b.closed=!0,v._V.off("update",b.send),v._V.off("pending",b.sendPending),clearInterval(b.keepalive)}},await b.send(),v._V.on("update",b.send),v._V.on("pending",b.sendPending),b.keepalive=setInterval(()=>{if(b.closed)return void clearInterval(b.keepalive);try{c.enqueue(a.encode(": ping\n\n"))}catch{b.closed=!0,clearInterval(b.keepalive)}},25e3)},cancel(){b.closed=!0,v._V.off("update",b.send),v._V.off("pending",b.sendPending),clearInterval(b.keepalive)}}),{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/usage/stream/route",pathname:"/api/usage/stream",filename:"route",bundlePath:"app/api/usage/stream/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/usage/stream/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/usage/stream/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,126],()=>b(b.s=32263));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/stream/route.js.nft.json b/cli/app/.next/server/app/api/usage/stream/route.js.nft.json new file mode 100644 index 00000000000..8a157ce572a --- /dev/null +++ b/cli/app/.next/server/app/api/usage/stream/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js b/cli/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js new file mode 100644 index 00000000000..1569e27ddab --- /dev/null +++ b/cli/app/.next/server/app/api/usage/stream/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/usage/stream/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/usage/stream/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/api/chat/route.js b/cli/app/.next/server/app/api/v1/api/chat/route.js new file mode 100644 index 00000000000..0e88922b2c3 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/api/chat/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=3025,a.ids=[3025],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},5219:(a,b,c)=>{c.d(b,{o:()=>d});function d(a,b){let c="",d={},e=new TransformStream({transform(a,e){let f=new TextDecoder().decode(a),g=(c+=f).split("\n");for(let a of(c=g.pop()||"",g)){if(!a.startsWith("data:"))continue;let c=a.slice(5).trim();if("[DONE]"===c){let a=JSON.stringify({model:b,message:{role:"assistant",content:""},done:!0})+"\n";e.enqueue(new TextEncoder().encode(a));return}try{let a=JSON.parse(c),f=a.choices?.[0]?.delta||{},g=f.content||"",h=f.tool_calls;if(h)for(let a of h){let b=a.index;d[b]||(d[b]={id:a.id,function:{name:"",arguments:""}}),a.function?.name&&(d[b].function.name+=a.function.name),a.function?.arguments&&(d[b].function.arguments+=a.function.arguments)}if(g){let a=JSON.stringify({model:b,message:{role:"assistant",content:g},done:!1})+"\n";e.enqueue(new TextEncoder().encode(a))}let i=a.choices?.[0]?.finish_reason;if("tool_calls"===i||"stop"===i){let a=Object.values(d);if(a.length>0){let c=a.map(a=>({function:{name:a.function.name,arguments:(()=>{try{return JSON.parse(a.function.arguments||"{}")}catch{return{}}})()}})),f=JSON.stringify({model:b,message:{role:"assistant",content:"",tool_calls:c},done:!0})+"\n";e.enqueue(new TextEncoder().encode(f)),d={}}else if("stop"===i){let a=JSON.stringify({model:b,message:{role:"assistant",content:""},done:!0})+"\n";e.enqueue(new TextEncoder().encode(a))}}}catch(a){}}},flush(a){let c=JSON.stringify({model:b,message:{role:"assistant",content:""},done:!0})+"\n";a.enqueue(new TextEncoder().encode(c))}});return a.body?new Response(a.body.pipeThrough(e),{headers:{"Content-Type":"application/x-ndjson","Access-Control-Allow-Origin":"*"}}):new Response("",{status:a.status,headers:{"Content-Type":"application/x-ndjson"}})}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},20685:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(57383),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/api/chat/route",pathname:"/api/v1/api/chat",filename:"route",bundlePath:"app/api/v1/api/chat/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/api/chat/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/api/chat/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57383:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>j,POST:()=>k});var e=c(55221),f=c(26263),g=c(5219),h=a([e]);e=(h.then?(await h)():h)[0];let l=!1;async function i(){l||(await (0,f.Ai)(),l=!0)}async function j(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function k(a){await i();let b=a.clone(),c="llama3.2";try{c=(await b.json()).model||"llama3.2"}catch{}let d=await (0,e.P)(a);return(0,g.o)(d,c)}d()}catch(a){d(a)}})},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560,6379,5221],()=>b(b.s=20685));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/api/chat/route.js.nft.json b/cli/app/.next/server/app/api/v1/api/chat/route.js.nft.json new file mode 100644 index 00000000000..2fdf7e5e3f5 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/api/chat/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/126.js","../../../../../chunks/1301.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/2566.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/5221.js","../../../../../chunks/523.js","../../../../../chunks/6263.js","../../../../../chunks/6288.js","../../../../../chunks/6379.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8202.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js new file mode 100644 index 00000000000..17034fbb092 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/api/chat/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/api/chat/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/api/chat/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/speech/route.js b/cli/app/.next/server/app/api/v1/audio/speech/route.js new file mode 100644 index 00000000000..9ec2fbbaac2 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/speech/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=6479,a.ids=[6479],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29440:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>O,patchFetch:()=>N,routeModule:()=>J,serverHooks:()=>M,workAsyncStorage:()=>K,workUnitAsyncStorage:()=>L});var d={};c.r(d),c.d(d,{OPTIONS:()=>H,POST:()=>I});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(84514),w=c(37770),x=c(37915),y=c(77301),z=c(29807),A=c(23016),B=c(50021),C=c(48146),D=c(44575);let E=new Set(Object.entries(B.AI_PROVIDERS).filter(([,a])=>a.serviceKinds?.includes("tts")&&!a.noAuth&&a.ttsConfig?.authType!=="none").map(([a])=>a));async function F(a){let b;try{b=await a.json()}catch{return(0,z.yj)(A.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=b.model,e=c.searchParams.get("response_format")||"mp3",f=b.language||"";D.request("POST",`${c.pathname} | ${d} | format=${e}${f?` | lang=${f}`:""}`);let g=await (0,w.getSettings)();if(g.requireApiKey){let b=(0,v.Tr)(a);if(!b)return(0,z.yj)(A.gx.UNAUTHORIZED,"Missing API key");if(!await (0,v.kI)(b))return(0,z.yj)(A.gx.UNAUTHORIZED,"Invalid API key")}if(!d)return(0,z.yj)(A.gx.BAD_REQUEST,"Missing model");if(!b.input)return(0,z.yj)(A.gx.BAD_REQUEST,"Missing required field: input");let h=await (0,x.d_)(d);if(h){let a=g.comboStrategies||{},c=a[d]?.fallbackStrategy||g.comboStrategy||"fallback",i=g.comboStickyRoundRobinLimit;return D.info("TTS",`Combo "${d}" with ${h.length} models (strategy: ${c}, sticky: ${i})`),(0,C.Pr)({body:b,models:h,handleSingleModel:(a,b)=>G(a,b,e,f),log:D,comboName:d,comboStrategy:c,comboStickyLimit:i})}return G(b,d,e,f)}async function G(a,b,c,d){let e=await (0,x.mA)(b);if(!e.provider)return(0,z.yj)(A.gx.BAD_REQUEST,"Invalid model format");let{provider:f,model:g}=e;if(D.info("ROUTING",`Provider: ${f}, Voice: ${g}`),!E.has(f)){let b=await (0,y.PE)({provider:f,model:g,input:a.input,responseFormat:c,language:d});return b.success?b.response:(0,z.yj)(b.status||A.gx.BAD_GATEWAY,b.error||"TTS failed")}let h=new Set,i=null,j=null;for(;;){let b=await (0,v.c1)(f,h,g);if(!b||b.allRateLimited){if(b?.allRateLimited){let a=i||b.lastError||"Unavailable",c=j||Number(b.lastErrorCode)||A.gx.SERVICE_UNAVAILABLE;return(0,z.wO)(c,`[${f}/${g}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===h.size)return(0,z.yj)(A.gx.BAD_REQUEST,`No credentials for provider: ${f}`);return(0,z.yj)(j||A.gx.SERVICE_UNAVAILABLE,i||"All accounts unavailable")}D.info("AUTH",`\x1b[32mUsing ${f} account: ${b.connectionName}\x1b[0m`);let e=await (0,y.PE)({provider:f,model:g,input:a.input,credentials:b,responseFormat:c,language:d});if(e.success)return e.response;let{shouldFallback:k}=await (0,v.vk)(b.connectionId,e.status,e.error,f,g);if(k){h.add(b.connectionId),i=e.error,j=e.status;continue}return e.response||(0,z.yj)(e.status,e.error)}}async function H(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function I(a){return await F(a)}let J=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/audio/speech/route",pathname:"/api/v1/audio/speech",filename:"route",bundlePath:"app/api/v1/audio/speech/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/audio/speech/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:K,workUnitAsyncStorage:L,serverHooks:M}=J;function N(){return(0,g.patchFetch)({workAsyncStorage:K,workUnitAsyncStorage:L})}async function O(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),J.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/audio/speech/route";"/index"===d&&(d="/");let e=await J.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let K=null;!H||J.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===J.isDev||!H,M=H&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await J.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>J.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>J.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await J.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await J.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await J.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},31421:a=>{a.exports=require("node:child_process")},33873:a=>{a.exports=require("path")},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},37915:(a,b,c)=>{c.d(b,{d_:()=>g,mA:()=>f});var d=c(37770),e=c(53057);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);return e?{provider:e.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48146:(a,b,c)=>{c.d(b,{Pr:()=>i,UP:()=>g,Vu:()=>h});var d=c(2449),e=c(29807);let f=new Map;function g(a){a?f.delete(a):f.clear()}function h(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function i({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:j,comboStickyLimit:k=1}){let l=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let g=b||"__default__",h=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,i=f.get(g),j="number"==typeof i?{index:i,consecutiveUseCount:0}:i||{index:0,consecutiveUseCount:0},k=j.index%a.length,l=function(a,b){let c=[...a];for(let a=0;a=h?f.set(g,{index:(k+1)%a.length,consecutiveUseCount:0}):f.set(g,{index:k,consecutiveUseCount:m}),l}(b,h,j,k),m=null,n=null,o=null;for(let b=0;b0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),m=f||String(b.status),o||(o=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){m=a.message||String(a),o||(o=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:m})}}let p=m&&m.toLowerCase().includes("no credentials")?503:o||503,q=m||"All combo models unavailable";if(n){let a=(0,d.Qo)(n);return g.warn("COMBO",`All models failed | ${q} (${a})`),(0,e.wO)(p,q,n,a)}return g.warn("COMBO",`All models failed | ${q}`),new Response(JSON.stringify({error:{message:q}}),{status:p,headers:{"Content-Type":"application/json"}})}},48161:a=>{a.exports=require("node:os")},51455:a=>{a.exports=require("node:fs/promises")},53057:(a,b,c)=>{c.d(b,{Xh:()=>e,js:()=>f});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",ocg:"opencode-go",el:"elevenlabs",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",cmc:"commandcode",commandcode:"commandcode",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};function e(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function f(a,b){let c=e(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let f="function"==typeof b?await b():b,g=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,f);return g||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},55511:a=>{a.exports=require("crypto")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,1301,8525],()=>b(b.s=29440));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/speech/route.js.nft.json b/cli/app/.next/server/app/api/v1/audio/speech/route.js.nft.json new file mode 100644 index 00000000000..94a59c90b5e --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/speech/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/1301.js","../../../../../chunks/21.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8525.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js new file mode 100644 index 00000000000..3abf40f7e20 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/speech/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/audio/speech/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/audio/speech/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/transcriptions/route.js b/cli/app/.next/server/app/api/v1/audio/transcriptions/route.js new file mode 100644 index 00000000000..263affc8a5f --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/transcriptions/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=1910,a.ids=[1910],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},21820:a=>{"use strict";a.exports=require("os")},23016:(a,b,c)=>{"use strict";c.d(b,{C8:()=>j,DR:()=>i,Uc:()=>f,cI:()=>h,eo:()=>g,gx:()=>d,v1:()=>e}),c(73714);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=64e3,g=32e3,h={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function i(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let j=["Please write a 5-10 word title for the following conversation:"]},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},37915:(a,b,c)=>{"use strict";c.d(b,{d_:()=>g,mA:()=>f});var d=c(37770),e=c(53057);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);return e?{provider:e.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53057:(a,b,c)=>{"use strict";c.d(b,{Xh:()=>e,js:()=>f});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",ocg:"opencode-go",el:"elevenlabs",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",cmc:"commandcode",commandcode:"commandcode",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};function e(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function f(a,b){let c=e(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let f="function"==typeof b?await b():b,g=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,f);return g||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},55511:a=>{"use strict";a.exports=require("crypto")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73714:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},76760:a=>{"use strict";a.exports=require("node:path")},77534:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>Y,patchFetch:()=>X,routeModule:()=>T,serverHooks:()=>W,workAsyncStorage:()=>U,workUnitAsyncStorage:()=>V});var d={};c.r(d),c.d(d,{OPTIONS:()=>R,POST:()=>S,maxDuration:()=>Q});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(84514),w=c(37770),x=c(37915),y=c(4573),z=c(29807),A=c(23016),B=c(50021);function C(a,b){if(!b)return{};switch(a.authHeader){case"bearer":default:return{Authorization:`Bearer ${b}`};case"token":return{Authorization:`Token ${b}`};case"x-api-key":return{"x-api-key":b};case"key":return{Authorization:`Key ${b}`}}}function D(a){let b=(a.type||"").toLowerCase();if(b.startsWith("audio/"))return b;let c="string"==typeof a.name?a.name.toLowerCase():"";return({mp3:"audio/mpeg",mp4:"audio/mp4",m4a:"audio/mp4",wav:"audio/wav",ogg:"audio/ogg",flac:"audio/flac",webm:"audio/webm",aac:"audio/aac",opus:"audio/opus"})[c.includes(".")?c.split(".").pop():""]||"application/octet-stream"}async function E(a){let b="";try{b=await a.text()}catch{}let c=b||`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.error||a?.message||c}catch{}return(0,z.A1)(a.status,"string"==typeof c?c:JSON.stringify(c))}async function F(a,b,c,d,e){let f=new URL(a.baseUrl);f.searchParams.set("model",c),f.searchParams.set("smart_format","true"),f.searchParams.set("punctuate","true");let g=e.get("language");"string"==typeof g&&g.trim()?f.searchParams.set("language",g.trim()):f.searchParams.set("detect_language","true");let h=await b.arrayBuffer(),i=await fetch(f,{method:"POST",headers:{...C(a,d),"Content-Type":D(b)},body:h});if(!i.ok)return E(i);let j=await i.json();return L({text:j.results?.channels?.[0]?.alternatives?.[0]?.transcript??""})}async function G(a,b,c,d){let e=C(a,d),f=await b.arrayBuffer(),g=await fetch("https://api.assemblyai.com/v2/upload",{method:"POST",headers:{...e,"Content-Type":"application/octet-stream"},body:f});if(!g.ok)return E(g);let{upload_url:h}=await g.json(),i=await fetch(a.baseUrl,{method:"POST",headers:{...e,"Content-Type":"application/json"},body:JSON.stringify({audio_url:h,speech_models:[c],language_detection:!0})});if(!i.ok)return E(i);let{id:j}=await i.json(),k=Date.now();for(;Date.now()-k<12e4;){await new Promise(a=>setTimeout(a,2e3));let b=await fetch(`${a.baseUrl}/${j}`,{headers:e});if(!b.ok)continue;let c=await b.json();if("completed"===c.status)return L({text:c.text||""});if("error"===c.status)return(0,z.A1)(500,c.error||"AssemblyAI failed")}return(0,z.A1)(504,"AssemblyAI timeout after 120s")}async function H(a,b,c,d){let e=new FormData;e.append("file",b,b.name||"audio.wav"),e.append("model",c);let f=await fetch(a.baseUrl,{method:"POST",headers:C(a,d),body:e});if(!f.ok)return E(f);let g=await f.json();return L({text:g.text||g.transcript||""})}async function I(a,b,c,d,e){let f=await b.arrayBuffer(),g=y.Buffer.from(f).toString("base64"),h=D(b),i=e.get("language"),j=e.get("prompt"),k=j&&"string"==typeof j&&j.trim()?j.trim():"Generate a transcript of the speech. Return only the transcribed text, no commentary.";"string"==typeof i&&i.trim()&&(k+=` Language: ${i.trim()}.`);let l=`${a.baseUrl}/${c}:generateContent?key=${d}`,m=await fetch(l,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:k},{inline_data:{mime_type:h,data:g}}]}]})});if(!m.ok)return E(m);let n=await m.json();return L({text:n?.candidates?.[0]?.content?.parts?.map(a=>a.text).filter(Boolean).join("")||""})}async function J(a,b,c,d){if(c.includes("..")||c.includes("//"))return(0,z.A1)(400,"Invalid model ID");let e=`${a.baseUrl.replace(/\/+$/,"")}/${c}`,f=await b.arrayBuffer(),g=await fetch(e,{method:"POST",headers:{...C(a,d),"Content-Type":D(b)},body:f});return g.ok?L({text:(await g.json()).text||""}):E(g)}async function K(a,b,c,d,e){let f=new FormData;for(let a of(f.append("file",b,b.name||"audio.wav"),f.append("model",c),["language","prompt","response_format","temperature"])){let b=e.get(a);null!=b&&""!==b&&f.append(a,b)}let g=await fetch(a.baseUrl,{method:"POST",headers:C(a,d),body:f});if(!g.ok)return E(g);let h=g.headers.get("content-type")||"application/json";return{success:!0,response:new Response(await g.text(),{status:200,headers:{"Content-Type":h,"Access-Control-Allow-Origin":"*"}})}}function L(a){return{success:!0,response:new Response(JSON.stringify(a),{status:200,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}async function M({provider:a,model:b,formData:c,credentials:d}){let e=c.get("file");if(!e)return(0,z.A1)(A.gx.BAD_REQUEST,"Missing required field: file");let f=B.AI_PROVIDERS[a]?.sttConfig;if(!f)return(0,z.A1)(A.gx.BAD_REQUEST,`Provider '${a}' does not support STT`);let g="none"===f.authType?null:d?.apiKey||d?.accessToken;if("none"!==f.authType&&!g)return(0,z.A1)(A.gx.UNAUTHORIZED,`No credentials for STT provider: ${a}`);try{switch(f.format){case"deepgram":return await F(f,e,b,g,c);case"assemblyai":return await G(f,e,b,g);case"nvidia-asr":return await H(f,e,b,g);case"huggingface-asr":return await J(f,e,b,g);case"gemini-stt":return await I(f,e,b,g,c);default:return await K(f,e,b,g,c)}}catch(a){return(0,z.A1)(A.gx.BAD_GATEWAY,a.message||"STT request failed")}}var N=c(44575);let O=new Set(Object.entries(B.AI_PROVIDERS).filter(([,a])=>a.serviceKinds?.includes("stt")&&!a.noAuth&&a.sttConfig?.authType!=="none").map(([a])=>a));async function P(a){let b;try{b=await a.formData()}catch{return(0,z.yj)(A.gx.BAD_REQUEST,"Invalid multipart form data")}let c=b.get("model");if(N.request("POST",`/v1/audio/transcriptions | ${c}`),(await (0,w.getSettings)()).requireApiKey){let b=(0,v.Tr)(a);if(!b)return(0,z.yj)(A.gx.UNAUTHORIZED,"Missing API key");if(!await (0,v.kI)(b))return(0,z.yj)(A.gx.UNAUTHORIZED,"Invalid API key")}if(!c)return(0,z.yj)(A.gx.BAD_REQUEST,"Missing model");if(!b.get("file"))return(0,z.yj)(A.gx.BAD_REQUEST,"Missing required field: file");let d=await (0,x.mA)(c);if(!d.provider)return(0,z.yj)(A.gx.BAD_REQUEST,"Invalid model format");let{provider:e,model:f}=d;if(N.info("ROUTING",`Provider: ${e}, Model: ${f}`),!O.has(e)){let a=await M({provider:e,model:f,formData:b});return a.success?a.response:(0,z.yj)(a.status||A.gx.BAD_GATEWAY,a.error||"STT failed")}let g=new Set,h=null,i=null;for(;;){let a=await (0,v.c1)(e,g,f);if(!a||a.allRateLimited){if(a?.allRateLimited){let b=h||a.lastError||"Unavailable",c=i||Number(a.lastErrorCode)||A.gx.SERVICE_UNAVAILABLE;return(0,z.wO)(c,`[${e}/${f}] ${b}`,a.retryAfter,a.retryAfterHuman)}if(0===g.size)return(0,z.yj)(A.gx.BAD_REQUEST,`No credentials for provider: ${e}`);return(0,z.yj)(i||A.gx.SERVICE_UNAVAILABLE,h||"All accounts unavailable")}N.info("AUTH",`\x1b[32mUsing ${e} account: ${a.connectionName}\x1b[0m`);let c=await M({provider:e,model:f,formData:b,credentials:a});if(c.success)return c.response;let{shouldFallback:d}=await (0,v.vk)(a.connectionId,c.status,c.error,e,f);if(d){g.add(a.connectionId),h=c.error,i=c.status;continue}return c.response||(0,z.yj)(c.status,c.error)}}let Q=300;async function R(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function S(a){return await P(a)}let T=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/audio/transcriptions/route",pathname:"/api/v1/audio/transcriptions",filename:"route",bundlePath:"app/api/v1/audio/transcriptions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/audio/transcriptions/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:U,workUnitAsyncStorage:V,serverHooks:W}=T;function X(){return(0,g.patchFetch)({workAsyncStorage:U,workUnitAsyncStorage:V})}async function Y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),T.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/audio/transcriptions/route";"/index"===d&&(d="/");let e=await T.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let J=null;!H||T.isDev||y||(J="/index"===(J=D)?"/":J);let K=!0===T.isDev||!H,L=H&&!K;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let M=a.method||"GET",N=(0,i.getTracer)(),O=N.getActiveScopeSpan(),P=!!(null==A?void 0:A.isWrappedByNextServer),Q=!!(0,h.getRequestMeta)(a,"minimalMode"),R=(0,h.getRequestMeta)(a,"incrementalCache")||await T.getIncrementalCache(a,w,z,Q);null==R||R.resetRequestCache(),globalThis.__incrementalCache=R;let S={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:K,incrementalCache:R,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>T.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>T.handle(W,S).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=N.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${M} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${M} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!Q&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=S.renderOpts.fetchMetrics;let h=S.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=S.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,S.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==S.renderOpts.collectedRevalidate&&!(S.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&S.renderOpts.collectedRevalidate,e=void 0===S.renderOpts.collectedExpire||S.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:S.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await T.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),b}},k=await T.handleResponse({req:a,nextConfig:w,cacheKey:J,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:Q});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Q||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return Q&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};P&&O?await h(O):(e=N.getActiveScopeSpan(),await N.withPropagatedContext(a.headers,()=>N.trace(n.BaseServerSpan.handleRequest,{spanName:`${M} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":a.url}},h),void 0,!P))}catch(b){if(b instanceof t.NoFallbackError||await T.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},77598:a=>{"use strict";a.exports=require("node:crypto")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,1301],()=>b(b.s=77534));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json b/cli/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json new file mode 100644 index 00000000000..44c1777de90 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/transcriptions/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/1301.js","../../../../../chunks/21.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js new file mode 100644 index 00000000000..f86cf479849 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/transcriptions/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/audio/transcriptions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/audio/transcriptions/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/voices/route.js b/cli/app/.next/server/app/api/v1/audio/voices/route.js new file mode 100644 index 00000000000..bc7adc1870e --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/voices/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3888,a.ids=[3888],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29201:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,OPTIONS:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(50021);let w={elevenlabs:a=>`${a}/api/media-providers/tts/elevenlabs/voices`,deepgram:a=>`${a}/api/media-providers/tts/deepgram/voices`,inworld:a=>`${a}/api/media-providers/tts/inworld/voices`,"edge-tts":a=>`${a}/api/media-providers/tts/voices?provider=edge-tts`,"local-device":a=>`${a}/api/media-providers/tts/voices?provider=local-device`};async function x(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS"}})}async function y(a){try{let{searchParams:b,origin:c}=new URL(a.url),d=b.get("provider"),e=b.get("lang");if(!d||!w[d])return Response.json({error:{message:`provider must be one of: ${Object.keys(w).join(", ")}`,type:"invalid_request_error"}},{status:400,headers:{"Access-Control-Allow-Origin":"*"}});let f=w[d](c),g=e?`${f}${f.includes("?")?"&":"?"}lang=${encodeURIComponent(e)}`:f,h=await fetch(g,{cache:"no-store"}),i=await h.json();if(!h.ok||i.error)return Response.json({error:{message:i.error||`Upstream ${h.status}`,type:"server_error"}},{status:h.status,headers:{"Access-Control-Allow-Origin":"*"}});let j=e?i.voices||[]:Object.values(i.byLang||{}).flatMap(a=>a.voices||[]),k=v.AI_PROVIDERS[d]?.alias||d,l=j.map(a=>({id:a.id,name:a.name,lang:a.lang||"",gender:a.gender||"",model:`${k}/${a.id}`}));return Response.json({object:"list",data:l},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return Response.json({error:{message:a.message||"Failed",type:"server_error"}},{status:502,headers:{"Access-Control-Allow-Origin":"*"}})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/audio/voices/route",pathname:"/api/v1/audio/voices",filename:"route",bundlePath:"app/api/v1/audio/voices/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/audio/voices/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/audio/voices/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,21],()=>b(b.s=29201));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/voices/route.js.nft.json b/cli/app/.next/server/app/api/v1/audio/voices/route.js.nft.json new file mode 100644 index 00000000000..eb27df2106c --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/voices/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/21.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js new file mode 100644 index 00000000000..a6fc73c7dbb --- /dev/null +++ b/cli/app/.next/server/app/api/v1/audio/voices/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/audio/voices/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/audio/voices/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/chat/completions/route.js b/cli/app/.next/server/app/api/v1/chat/completions/route.js new file mode 100644 index 00000000000..480551b0914 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/chat/completions/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=8246,a.ids=[8246],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},18538:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>i,POST:()=>j}),c(57194);var e=c(55221),f=c(26263),g=a([e]);e=(g.then?(await g)():g)[0];let k=!1;async function h(){k||(await (0,f.Ai)(),k=!0)}async function i(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function j(a){return await h(),await (0,e.P)(a)}d()}catch(a){d(a)}})},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57194:(a,b,c)=>{c(75662)},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75662:(a,b,c)=>{c.d(b,{D1:()=>e});var d=c(99119);async function e(){return await (0,d.Xj)()}},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},80333:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(18538),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/chat/completions/route",pathname:"/api/v1/chat/completions",filename:"route",bundlePath:"app/api/v1/chat/completions/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/chat/completions/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/chat/completions/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560,6379,5221],()=>b(b.s=80333));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/chat/completions/route.js.nft.json b/cli/app/.next/server/app/api/v1/chat/completions/route.js.nft.json new file mode 100644 index 00000000000..2fdf7e5e3f5 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/chat/completions/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/126.js","../../../../../chunks/1301.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/2566.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/5221.js","../../../../../chunks/523.js","../../../../../chunks/6263.js","../../../../../chunks/6288.js","../../../../../chunks/6379.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8202.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js new file mode 100644 index 00000000000..df80e45bf60 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/chat/completions/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/chat/completions/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/chat/completions/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/embeddings/route.js b/cli/app/.next/server/app/api/v1/embeddings/route.js new file mode 100644 index 00000000000..6230d5454ef --- /dev/null +++ b/cli/app/.next/server/app/api/v1/embeddings/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=5018,a.ids=[5018],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},22944:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{o:()=>k});var e=c(29807),f=c(23016),g=c(71246),h=c(41578),i=c(31244),j=a([g]);async function k({body:a,modelInfo:b,credentials:c,log:d,onCredentialsRefreshed:j,onRequestSuccess:l}){let m,n,{provider:o,model:p}=b,q=a.input;if(!q)return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");if("string"!=typeof q&&!Array.isArray(q))return(0,e.A1)(f.gx.BAD_REQUEST,"input must be a string or array of strings");let r=(0,i.d)(o);if(!r)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${o}' does not support embeddings.`);let s={input:q},t=r.buildUrl(p,c,s),u=r.buildHeaders(c,s),v=r.buildBody(p,{input:q,encoding_format:a.encoding_format||"float",dimensions:a.dimensions});d?.debug?.("EMBEDDINGS",`${o.toUpperCase()} | ${p} | input_type=${Array.isArray(q)?`array[${q.length}]`:"string"}`);try{m=await fetch(t,{method:"POST",headers:u,body:JSON.stringify(v)})}catch(b){let a=(0,e.lR)(b,o,p,f.gx.BAD_GATEWAY);return d?.debug?.("EMBEDDINGS",`Fetch error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}let w=(0,g.SB)(o);if(!w?.noAuth&&(m.status===f.gx.UNAUTHORIZED||m.status===f.gx.FORBIDDEN)){let a=await (0,h.qZ)(()=>w.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.apiKey){d?.info?.("TOKEN",`${o.toUpperCase()} | refreshed for embeddings`),Object.assign(c,a),j&&await j(a);try{let a=r.buildHeaders(c,s),b=r.buildUrl(p,c,s);m=await fetch(b,{method:"POST",headers:a,body:JSON.stringify(v)})}catch{d?.warn?.("TOKEN",`${o.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${o.toUpperCase()} | refresh failed`)}if(!m.ok){let{statusCode:a,message:b}=await (0,e.zL)(m),c=(0,e.lR)(Error(b),o,p,a);return d?.debug?.("EMBEDDINGS",`Provider error: ${c}`),(0,e.A1)(a,c)}try{n=await m.json()}catch{return(0,e.A1)(f.gx.BAD_GATEWAY,`Invalid JSON response from ${o}`)}l&&await l();let x=r.normalize(n,p);return d?.debug?.("EMBEDDINGS",`Success | usage=${JSON.stringify(x.usage||{})}`),{success:!0,response:new Response(JSON.stringify(x),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}g=(j.then?(await j)():j)[0],d()}catch(a){d(a)}})},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31244:(a,b,c)=>{c.d(b,{d:()=>j});let d={openai:"https://api.openai.com/v1/embeddings",openrouter:"https://openrouter.ai/api/v1/embeddings",mistral:"https://api.mistral.ai/v1/embeddings","voyage-ai":"https://api.voyageai.com/v1/embeddings",fireworks:"https://api.fireworks.ai/inference/v1/embeddings",together:"https://api.together.xyz/v1/embeddings",nebius:"https://api.tokenfactory.nebius.com/v1/embeddings",github:"https://models.github.ai/inference/embeddings",nvidia:"https://integrate.api.nvidia.com/v1/embeddings","jina-ai":"https://api.jina.ai/v1/embeddings"};function e(a){return{buildUrl:()=>d[a],buildHeaders:b=>{let c={"Content-Type":"application/json",...{Authorization:`Bearer ${b.apiKey||b.accessToken}`}};return"openrouter"===a&&(c["HTTP-Referer"]="https://endpoint-proxy.local",c["X-Title"]="Endpoint Proxy"),c},buildBody:(a,{input:b,encoding_format:c,dimensions:d})=>{let e={model:a,input:b};if(c&&(e.encoding_format=c),null!=d&&""!==d){let a=Number(d);Number.isFinite(a)&&a>0&&(e.dimensions=a)}return e},normalize:a=>a}}function f(a){return a.startsWith("models/")?a:`models/${a}`}let g={buildUrl:(a,b,{input:c}={})=>{let d=b.apiKey||b.accessToken,e=f(a),g=Array.isArray(c)?"batchEmbedContents":"embedContent";return`https://generativelanguage.googleapis.com/v1beta/${e}:${g}?key=${encodeURIComponent(d)}`},buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,{input:b})=>{let c=f(a);return Array.isArray(b)?{requests:b.map(a=>({model:c,content:{parts:[{text:String(a)}]}}))}:{model:c,content:{parts:[{text:String(b)}]}}},normalize:(a,b)=>{if("list"===a.object&&Array.isArray(a.data))return a;let c=[];return Array.isArray(a.embeddings)?c=a.embeddings.map((a,b)=>({object:"embedding",index:b,embedding:a.values||[]})):a.embedding?.values&&(c=[{object:"embedding",index:0,embedding:a.embedding.values}]),{object:"list",data:c,model:b,usage:{prompt_tokens:0,total_tokens:0}}}},h={...e("openai"),buildUrl:(a,b)=>{let c=(b?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,"").replace(/\/embeddings$/,"");return`${c}/embeddings`}},i={...Object.fromEntries(["openai","openrouter","mistral","voyage-ai","fireworks","together","nebius","github","nvidia","jina-ai"].map(a=>[a,e(a)])),gemini:g,google_ai_studio:g};function j(a){return i[a]?i[a]:a?.startsWith?.("openai-compatible-")||a?.startsWith?.("custom-embedding-")?h:null}},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},37915:(a,b,c)=>{c.d(b,{d_:()=>g,mA:()=>f});var d=c(37770),e=c(53057);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);return e?{provider:e.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},58689:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(85146),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/embeddings/route",pathname:"/api/v1/embeddings",filename:"route",bundlePath:"app/api/v1/embeddings/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/embeddings/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/embeddings/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},84921:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{P:()=>n});var e=c(84514),f=c(37770),g=c(37915),h=c(22944),i=c(29807),j=c(23016),k=c(44575),l=c(16560),m=a([h]);async function n(a){let b;try{b=await a.json()}catch{return k.warn("EMBEDDINGS","Invalid JSON body"),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=b.model;k.request("POST",`${c.pathname} | ${d}`);let m=(0,e.Tr)(a);if(m?k.debug("AUTH",`API Key: ${k.maskKey(m)}`):k.debug("AUTH","No API key provided (local mode)"),(await (0,f.getSettings)()).requireApiKey){if(!m)return k.warn("AUTH","Missing API key (requireApiKey=true)"),(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(m))return k.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}if(!d)return k.warn("EMBEDDINGS","Missing model"),(0,i.yj)(j.gx.BAD_REQUEST,"Missing model");if(!b.input)return k.warn("EMBEDDINGS","Missing input"),(0,i.yj)(j.gx.BAD_REQUEST,"Missing required field: input");let n=await (0,g.mA)(d);if(!n.provider)return k.warn("EMBEDDINGS","Invalid model format",{model:d}),(0,i.yj)(j.gx.BAD_REQUEST,"Invalid model format");let{provider:o,model:p}=n;d!==`${o}/${p}`?k.info("ROUTING",`${d} → ${o}/${p}`):k.info("ROUTING",`Provider: ${o}, Model: ${p}`);let q=new Set,r=null,s=null;for(;;){let a=await (0,e.c1)(o,q,p);if(!a||a.allRateLimited){if(a?.allRateLimited){let b=r||a.lastError||"Unavailable",c=s||Number(a.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return k.warn("EMBEDDINGS",`[${o}/${p}] ${b} (${a.retryAfterHuman})`),(0,i.wO)(c,`[${o}/${p}] ${b}`,a.retryAfter,a.retryAfterHuman)}if(0===q.size)return k.error("AUTH",`No credentials for provider: ${o}`),(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${o}`);return k.warn("EMBEDDINGS","No more accounts available",{provider:o}),(0,i.yj)(s||j.gx.SERVICE_UNAVAILABLE,r||"All accounts unavailable")}k.info("AUTH",`\x1b[32mUsing ${o} account: ${a.connectionName}\x1b[0m`);let c=await (0,l.eU)(o,a),d=await (0,h.o)({body:{...b,model:`${o}/${p}`},modelInfo:{provider:o,model:p},credentials:c,log:k,onCredentialsRefreshed:async b=>{await (0,l.vN)(a.connectionId,{accessToken:b.accessToken,refreshToken:b.refreshToken,providerSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(a.connectionId,a,p)}});if(d.success)return d.response;let{shouldFallback:f}=await (0,e.vk)(a.connectionId,d.status,d.error,o,p);if(f){k.warn("AUTH",`Account ${a.connectionName} unavailable (${d.status}), trying fallback`),q.add(a.connectionId),r=d.error,s=d.status;continue}return d.response}}h=(m.then?(await m)():m)[0],d()}catch(a){d(a)}})},85146:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>g,POST:()=>h});var e=c(84921),f=a([e]);async function g(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function h(a){return await (0,e.P)(a)}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560],()=>b(b.s=58689));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/embeddings/route.js.nft.json b/cli/app/.next/server/app/api/v1/embeddings/route.js.nft.json new file mode 100644 index 00000000000..3ca7a680860 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/embeddings/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1301.js","../../../../chunks/1578.js","../../../../chunks/21.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/523.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/64.js","../../../../chunks/6560.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js new file mode 100644 index 00000000000..bd07b3baa9a --- /dev/null +++ b/cli/app/.next/server/app/api/v1/embeddings/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/embeddings/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/embeddings/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/images/generations/route.js b/cli/app/.next/server/app/api/v1/images/generations/route.js new file mode 100644 index 00000000000..4b059bb5e29 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/images/generations/route.js @@ -0,0 +1,4 @@ +"use strict";(()=>{var a={};a.id=8870,a.ids=[8870],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16178:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>g,POST:()=>h});var e=c(37440),f=a([e]);async function g(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function h(a){return await (0,e.k)(a)}e=(f.then?(await f)():f)[0],d()}catch(a){d(a)}})},16698:a=>{a.exports=require("node:async_hooks")},17093:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(16178),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/images/generations/route",pathname:"/api/v1/images/generations",filename:"route",bundlePath:"app/api/v1/images/generations/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/images/generations/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/images/generations/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37440:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{k:()=>o});var e=c(84514),f=c(37770),g=c(37915),h=c(94321),i=c(29807),j=c(23016),k=c(16560),l=c(48146),m=c(44575),n=a([h]);h=(n.then?(await n)():n)[0];let q=new Set(["sdwebui","comfyui"]);async function o(a){let b;try{b=await a.json()}catch{return(0,i.yj)(j.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=a.headers.get("x-connection-id")||null,h=(a.headers.get("accept")||"").includes("text/event-stream"),k="binary"===c.searchParams.get("response_format"),n=b.model,o=(0,e.Tr)(a),q=await (0,f.getSettings)();if(q.requireApiKey){if(!o)return(0,i.yj)(j.gx.UNAUTHORIZED,"Missing API key");if(!await (0,e.kI)(o))return(0,i.yj)(j.gx.UNAUTHORIZED,"Invalid API key")}if(!n)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing model");if(!b.prompt)return(0,i.yj)(j.gx.BAD_REQUEST,"Missing required field: prompt");let r=await (0,g.d_)(n);if(r){let a=q.comboStrategies||{},c=a[n]?.fallbackStrategy||q.comboStrategy||"fallback",e=q.comboStickyRoundRobinLimit;return m.info("IMAGE",`Combo "${n}" with ${r.length} models (strategy: ${c}, sticky: ${e})`),(0,l.Pr)({body:b,models:r,handleSingleModel:(a,b)=>p(a,b,{wantsStream:h,binaryOutput:k,preferredConnectionId:d}),log:m,comboName:n,comboStrategy:c,comboStickyLimit:e})}return p(b,n,{wantsStream:h,binaryOutput:k,preferredConnectionId:d})}async function p(a,b,{wantsStream:c,binaryOutput:d,preferredConnectionId:f}={}){let l=await (0,g.mA)(b);if(!l.provider)return(0,i.yj)(j.gx.BAD_REQUEST,"Invalid model format");let{provider:m,model:n}=l;if(q.has(m)){let b=await (0,h.l)({body:a,modelInfo:{provider:m,model:n},credentials:null,binaryOutput:d});return b.success?b.response:(0,i.yj)(b.status||j.gx.BAD_GATEWAY,b.error||"Image generation failed")}let o=new Set,r=null,s=null;for(;;){let b=await (0,e.c1)(m,o,n,{preferredConnectionId:f});if(!b||b.allRateLimited){if(b?.allRateLimited){let a=r||b.lastError||"Unavailable",c=s||Number(b.lastErrorCode)||j.gx.SERVICE_UNAVAILABLE;return(0,i.wO)(c,`[${m}/${n}] ${a}`,b.retryAfter,b.retryAfterHuman)}if(0===o.size)return(0,i.yj)(j.gx.BAD_REQUEST,`No credentials for provider: ${m}`);return(0,i.yj)(s||j.gx.SERVICE_UNAVAILABLE,r||"All accounts unavailable")}let g=await (0,k.eU)(m,b),l=await (0,h.l)({body:a,modelInfo:{provider:m,model:n},credentials:g,streamToClient:c,binaryOutput:d,onCredentialsRefreshed:async a=>{await (0,k.vN)(b.connectionId,{accessToken:a.accessToken,refreshToken:a.refreshToken,providerSpecificData:a.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,e.Pt)(b.connectionId,b,n)}});if(l.success)return l.response;let{shouldFallback:p}=await (0,e.vk)(b.connectionId,l.status,l.error,m,n);if(p){o.add(b.connectionId),r=l.error,s=l.status;continue}return l.response}}d()}catch(a){d(a)}})},37540:a=>{a.exports=require("node:console")},37915:(a,b,c)=>{c.d(b,{d_:()=>g,mA:()=>f});var d=c(37770),e=c(53057);async function f(a){let b=(0,e.Xh)(a);if(!b.isAlias){let a=(await (0,d.getProviderNodes)({type:"openai-compatible"})).find(a=>a.prefix===b.providerAlias);if(a)return{provider:a.id,model:b.model};let c=(await (0,d.getProviderNodes)({type:"anthropic-compatible"})).find(a=>a.prefix===b.providerAlias);if(c)return{provider:c.id,model:b.model};let e=(await (0,d.getProviderNodes)({type:"custom-embedding"})).find(a=>a.prefix===b.providerAlias);return e?{provider:e.id,model:b.model}:{provider:b.provider,model:b.model}}return await (0,d.Dj)(b.model)?{provider:null,model:b.model}:(0,e.js)(a,d.OM)}async function g(a){if(a.includes("/"))return null;let b=await (0,d.Dj)(a);return b&&b.models&&b.models.length>0?b.models:null}},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48146:(a,b,c)=>{c.d(b,{Pr:()=>i,UP:()=>g,Vu:()=>h});var d=c(2449),e=c(29807);let f=new Map;function g(a){a?f.delete(a):f.clear()}function h(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function i({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:j,comboStickyLimit:k=1}){let l=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let g=b||"__default__",h=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,i=f.get(g),j="number"==typeof i?{index:i,consecutiveUseCount:0}:i||{index:0,consecutiveUseCount:0},k=j.index%a.length,l=function(a,b){let c=[...a];for(let a=0;a=h?f.set(g,{index:(k+1)%a.length,consecutiveUseCount:0}):f.set(g,{index:k,consecutiveUseCount:m}),l}(b,h,j,k),m=null,n=null,o=null;for(let b=0;b0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),m=f||String(b.status),o||(o=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){m=a.message||String(a),o||(o=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:m})}}let p=m&&m.toLowerCase().includes("no credentials")?503:o||503,q=m||"All combo models unavailable";if(n){let a=(0,d.Qo)(n);return g.warn("COMBO",`All models failed | ${q} (${a})`),(0,e.wO)(p,q,n,a)}return g.warn("COMBO",`All models failed | ${q}`),new Response(JSON.stringify({error:{message:q}}),{status:p,headers:{"Content-Type":"application/json"}})}},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},54708:(a,b,c)=>{c.d(b,{j:()=>n});let d={openai:"https://api.openai.com/v1/images/generations",minimax:"https://api.minimaxi.com/v1/images/generations",openrouter:"https://openrouter.ai/api/v1/images/generations",recraft:"https://external.api.recraft.ai/v1/images/generations"};function e(a){return{buildUrl:()=>d[a],buildHeaders:b=>{let c={"Content-Type":"application/json"},d=b?.apiKey||b?.accessToken;return d&&(c.Authorization=`Bearer ${d}`),"openrouter"===a&&(c["HTTP-Referer"]="https://endpoint-proxy.local",c["X-Title"]="Endpoint Proxy"),c},buildBody:(a,b)=>{let{prompt:c,n:d=1,size:e="1024x1024",quality:f,style:g,response_format:h}=b,i={model:a,prompt:c,n:d,size:e};return f&&(i.quality=f),g&&(i.style=g),h&&(i.response_format=h),i},normalize:a=>a}}var f=c(74867),g=c(77598);let h="-image",i="high";function j(a){return a&&"string"==typeof a?/^data:image\//i.test(a)||/^https?:\/\//i.test(a)?a:`data:image/png;base64,${a}`:null}async function k(a,b,c={}){let d=a.body.getReader(),e=new TextDecoder,f="",g=null,h=null,i=0,j=0;for(;;){let a,{done:k,value:l}=await d.read();if(k)break;for(i+=l?.byteLength||0,f+=e.decode(l,{stream:!0});-1!==(a=f.indexOf("\n\n"));){let d=f.slice(0,a);f=f.slice(a+2);let e=d.split("\n"),k=null,l="";for(let a of e)a.startsWith("event:")?k=a.slice(6).trim():a.startsWith("data:")&&(l+=a.slice(5).trim());if(!k)continue;k!==h&&(b?.info?.("IMAGE",`codex progress: ${k}`),h=k);let m=Date.now();if(c.onProgress&&m-j>200&&(j=m,c.onProgress({stage:k,bytesReceived:i})),"response.image_generation_call.partial_image"===k&&l)try{let a=JSON.parse(l);c.onPartialImage&&a?.partial_image_b64&&c.onPartialImage({b64_json:a.partial_image_b64,index:a.partial_image_index})}catch{}if("response.output_item.done"===k&&l)try{let a=JSON.parse(l),b=a?.item;b?.type==="image_generation_call"&&b.result&&(g=b.result)}catch{}}}return g}let l="https://api.dev.runwayml.com/v1",m={openai:e("openai"),minimax:e("minimax"),openrouter:e("openrouter"),recraft:e("recraft"),gemini:{buildUrl:(a,b)=>{let c=b?.apiKey||b?.accessToken,d=a.replace(/^models\//,"");return`https://generativelanguage.googleapis.com/v1beta/models/${d}:generateContent?key=${encodeURIComponent(c)}`},buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>({contents:[{parts:[{text:b.prompt}]}],generationConfig:{responseModalities:["TEXT","IMAGE"]}}),normalize:(a,b)=>{let c=(a.candidates?.[0]?.content?.parts||[]).filter(a=>a.inlineData?.data).map(a=>({b64_json:a.inlineData.data}));return{created:(0,f.kv)(),data:c.length>0?c:[{b64_json:"",revised_prompt:b}]}}},codex:{stream:!0,buildUrl:()=>"https://chatgpt.com/backend-api/codex/responses",buildHeaders:a=>{let b=a?.providerSpecificData?.chatgptAccountId||function(a){try{let b=String(a||"").split(".");if(3!==b.length)return null;let c=b[1].replace(/-/g,"+").replace(/_/g,"/"),d=(4-c.length%4)%4,e=JSON.parse(Buffer.from(c+"=".repeat(d),"base64").toString("utf8"));return e?.["https://api.openai.com/auth"]?.chatgpt_account_id||null}catch{return null}}(a?.idToken);return{accept:"text/event-stream, application/json",authorization:`Bearer ${a?.accessToken||""}`,"chatgpt-account-id":b||"","content-type":"application/json",originator:"codex_cli_rs",session_id:(0,g.randomUUID)(),"user-agent":"codex-imagen/0.2.6",version:"0.122.0","x-client-request-id":(0,g.randomUUID)()}},buildBody:(a,b)=>{let c=[];Array.isArray(b.images)&&b.images.forEach(a=>{let b=j(a);b&&c.push(b)});let d=j(b.image);d&&c.push(d);let e=b.image_detail||i,f={type:"image_generation",output_format:(b.output_format||"png").toLowerCase()};return b.size&&""!==b.size&&(f.size=b.size),b.quality&&""!==b.quality&&(f.quality=b.quality),b.background&&""!==b.background&&(f.background=b.background),{model:a.endsWith(h)?a.slice(0,-h.length):a,instructions:"",input:[{type:"message",role:"user",content:function(a,b,c=i){let d=[];return b.forEach((a,b)=>{d.push({type:"input_text",text:``}),d.push({type:"input_image",image_url:a,detail:c}),d.push({type:"input_text",text:""})}),d.push({type:"input_text",text:a}),d}(b.prompt,c,e)}],tools:[f],tool_choice:"auto",parallel_tool_calls:!1,prompt_cache_key:(0,g.randomUUID)(),stream:!0,store:!1,reasoning:null}},async parseResponse(a,{log:b,streamToClient:c,onRequestSuccess:d}){if(c){let c;return{sseResponse:(c=new ReadableStream({async start(c){let e=new TextEncoder,g=(a,b)=>{c.enqueue(e.encode(`event: ${a} +data: ${JSON.stringify(b)} + +`))};try{let c=await k(a,b,{onProgress:a=>g("progress",a),onPartialImage:a=>g("partial_image",a)});c?(d&&await d(),g("done",{created:(0,f.kv)(),data:[{b64_json:c}]})):g("error",{message:"Codex did not return an image. Account may not be entitled (Plus/Pro required)."})}catch(a){g("error",{message:a?.message||"Stream failed"})}finally{c.close()}}}),new Response(c,{headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache, no-transform",Connection:"keep-alive","X-Accel-Buffering":"no","Access-Control-Allow-Origin":"*"}}))}}let e=await k(a,b);if(!e)throw Error("Codex did not return an image. Account may not be entitled (Plus/Pro required).");return{created:(0,f.kv)(),data:[{b64_json:e}]}},normalize:a=>a},sdwebui:{noAuth:!0,buildUrl:()=>"http://localhost:7860/sdapi/v1/txt2img",buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>{let{prompt:c,n:d=1,size:e="1024x1024"}=b,[f,g]=e.split("x").map(Number);return{prompt:c,width:f||512,height:g||512,steps:20,batch_size:d}},normalize:a=>{let b=Array.isArray(a.images)?a.images.map(a=>({b64_json:a})):[];return{created:(0,f.kv)(),data:b}}},comfyui:{noAuth:!0,buildUrl:()=>"http://localhost:8188",buildHeaders:()=>({"Content-Type":"application/json"}),buildBody:(a,b)=>({prompt:b.prompt}),normalize:a=>a},huggingface:{buildUrl:a=>`https://api-inference.huggingface.co/models/${a}`,buildHeaders:a=>{let b={"Content-Type":"application/json"},c=a?.apiKey||a?.accessToken;return c&&(b.Authorization=`Bearer ${c}`),b},buildBody:(a,b)=>({inputs:b.prompt}),async parseResponse(a){let b=await a.arrayBuffer(),c=Buffer.from(b).toString("base64");return{created:(0,f.kv)(),data:[{b64_json:c}]}},normalize:a=>a},nanobanana:{async:!0,buildUrl:()=>"https://api.nanobananaapi.ai/api/v1/nanobanana/generate",buildHeaders:a=>{let b={"Content-Type":"application/json"},c=a?.apiKey||a?.accessToken;return c&&(b.Authorization=`Bearer ${c}`),b},buildBody:(a,b)=>{let c=(0,f.CY)(b.size),d=!!(b.image||Array.isArray(b.images)&&b.images.length),e={prompt:b.prompt,type:d?"IMAGETOIAMGE":"TEXTTOIAMGE",numImages:b.n||1,image_size:c,callBackUrl:"https://localhost/callback"};if(d){let a=Array.isArray(b.images)?b.images.filter(Boolean):[];b.image&&a.push(b.image),e.imageUrls=a}return e},async parseResponse(a,{headers:b}){let c=await a.json();if(200!==c.code)throw Error(c.msg||"NanoBanana submit failed");let d=c.data?.taskId;if(!d)throw Error("NanoBanana: no taskId returned");let e=`https://api.nanobananaapi.ai/api/v1/nanobanana/record-info?taskId=${encodeURIComponent(d)}`,g=Date.now()+f.vv;for(;Date.now(){let c=a.response?.resultImageUrl||a.response?.originImageUrl;return c?{created:(0,f.kv)(),data:[{url:c,revised_prompt:b}]}:{created:(0,f.kv)(),data:[]}}},"fal-ai":{async:!0,buildUrl:a=>`https://queue.fal.run/${a}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Key ${b}`}},buildBody:(a,b)=>{let c={prompt:b.prompt,num_images:b.n||1};return b.size&&(c.image_size=(0,f.CY)(b.size)),b.image&&(c.image_url=b.image),c},async parseResponse(a,{headers:b}){let{status_url:c,response_url:d}=await a.json(),e=Date.now()+f.vv;for(;Date.now(){let b=Array.isArray(a.images)?a.images:a.image?[a.image]:[];return{created:(0,f.kv)(),data:b.map(a=>({url:a.url||a}))}}},"stability-ai":{buildUrl:a=>`https://api.stability.ai/v2beta/stable-image/generate/${a.includes("ultra")?"ultra":a.includes("sd3")?"sd3":"core"}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Bearer ${b}`,Accept:"application/json"}},buildBody:(a,b)=>{let c={prompt:b.prompt,output_format:(b.output_format||"png").toLowerCase()};return b.size&&(c.aspect_ratio=(0,f.CY)(b.size)),b.style&&(c.style_preset=b.style),a.includes("sd3")&&(c.model=a),c},normalize:a=>a.image?{created:(0,f.kv)(),data:[{b64_json:a.image}]}:{created:(0,f.kv)(),data:[]}},"black-forest-labs":{async:!0,buildUrl:a=>`https://api.bfl.ai/v1/${a}`,buildHeaders:a=>({"Content-Type":"application/json","x-key":a?.apiKey||a?.accessToken}),buildBody:(a,b)=>{let c={prompt:b.prompt};if(b.size){let[a,d]=b.size.split("x").map(Number);a&&(c.width=a),d&&(c.height=d)}return b.image&&(c.image_prompt=b.image),c},async parseResponse(a,{headers:b}){let c=(await a.json()).polling_url;if(!c)throw Error("BFL: no polling_url returned");let d=Date.now()+f.vv;for(;Date.now(){let b=a.result?.sample;return b?{created:(0,f.kv)(),data:[{url:b}]}:{created:(0,f.kv)(),data:[]}}},runwayml:{async:!0,buildUrl:a=>`${l}/${a.includes("image")?"text_to_image":"image_to_video"}`,buildHeaders:a=>{let b=a?.apiKey||a?.accessToken;return{"Content-Type":"application/json",Authorization:`Bearer ${b}`,"X-Runway-Version":"2024-11-06"}},buildBody:(a,b)=>{let c=!a.includes("image"),d=(0,f.CY)(b.size);return c?{promptText:b.prompt,model:a,ratio:d,duration:5,...b.image?{promptImage:b.image}:{}}:{promptText:b.prompt,model:a,ratio:d,...b.image?{referenceImages:[{uri:b.image}]}:{}}},async parseResponse(a,{headers:b}){let{id:c}=await a.json();if(!c)throw Error("Runway: no task id returned");let d=`${l}/tasks/${c}`,e=Date.now()+f.vv;for(;Date.now(){let b=Array.isArray(a.output)?a.output:[];return{created:(0,f.kv)(),data:b.map(a=>({url:a}))}}}};function n(a){return m[a]||null}},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},74867:(a,b,c)=>{c.d(b,{CY:()=>g,W6:()=>h,fv:()=>d,kv:()=>i,vv:()=>e,yy:()=>f});let d=1500,e=12e4,f=a=>new Promise(b=>setTimeout(b,a));function g(a){return a&&"string"==typeof a&&({"1024x1024":"1:1","1024x1792":"9:16","1792x1024":"16:9","1024x1536":"2:3","1536x1024":"3:2"})[a]||"1:1"}async function h(a){let b=await fetch(a);if(!b.ok)throw Error(`Failed to fetch image: ${b.status}`);let c=await b.arrayBuffer();return Buffer.from(c).toString("base64")}function i(){return Math.floor(Date.now()/1e3)}},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94321:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{l:()=>l});var e=c(29807),f=c(23016),g=c(41578),h=c(71246),i=c(54708),j=c(74867),k=a([h]);async function l({body:a,modelInfo:b,credentials:c,log:d,streamToClient:k=!1,binaryOutput:m=!1,onCredentialsRefreshed:n,onRequestSuccess:o}){let p,q,{provider:r,model:s}=b;if(!a.prompt)return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: prompt");let t=(0,i.j)(r);if(!t)return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${r}' does not support image generation`);let u=t.buildUrl(s,c),v=t.buildHeaders(c),w=t.buildBody(s,a);d?.debug?.("IMAGE",`${r.toUpperCase()} | ${s} | prompt="${a.prompt.slice(0,50)}..."`);try{p=await fetch(u,{method:"POST",headers:v,body:JSON.stringify(w)})}catch(b){let a=(0,e.lR)(b,r,s,f.gx.BAD_GATEWAY);return d?.debug?.("IMAGE",`Fetch error: ${a}`),(0,e.A1)(f.gx.BAD_GATEWAY,a)}let x=(0,h.SB)(r);if(!x?.noAuth&&!t.noAuth&&(p.status===f.gx.UNAUTHORIZED||p.status===f.gx.FORBIDDEN)){let a=await (0,g.qZ)(()=>x.refreshCredentials(c,d),3,d);if(a?.accessToken||a?.apiKey){d?.info?.("TOKEN",`${r.toUpperCase()} | refreshed for image generation`),Object.assign(c,a),n&&await n(a);try{let a=t.buildHeaders(c),b=t.buildUrl(s,c);p=await fetch(b,{method:"POST",headers:a,body:JSON.stringify(w)})}catch{d?.warn?.("TOKEN",`${r.toUpperCase()} | retry after refresh failed`)}}else d?.warn?.("TOKEN",`${r.toUpperCase()} | refresh failed`)}if(!p.ok){let{statusCode:a,message:b}=await (0,e.zL)(p),c=(0,e.lR)(Error(b),r,s,a);return d?.debug?.("IMAGE",`Provider error: ${c}`),(0,e.A1)(a,c)}try{if(t.parseResponse){if(q=await t.parseResponse(p,{headers:v,log:d,streamToClient:k,onRequestSuccess:o}),q?.sseResponse)return{success:!0,response:q.sseResponse}}else q=await p.json()}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||`Invalid response from ${r}`)}o&&await o();let y=t.normalize(q,a.prompt),z=y.created&&Array.isArray(y.data)?y:q;if(m){let b=z.data?.[0],c=b?.b64_json;if(!c&&b?.url)try{c=await (0,j.W6)(b.url)}catch{}if(c){let b=Buffer.from(c,"base64"),d=(a.output_format||"png").toLowerCase();return{success:!0,response:new Response(b,{headers:{"Content-Type":"jpeg"===d||"jpg"===d?"image/jpeg":"webp"===d?"image/webp":"image/png","Content-Disposition":`inline; filename="image.${"jpeg"===d?"jpg":d}"`,"Access-Control-Allow-Origin":"*"}})}}}return{success:!0,response:new Response(JSON.stringify(z),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}}h=(k.then?(await k)():k)[0],d()}catch(a){d(a)}})},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560],()=>b(b.s=17093));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/images/generations/route.js.nft.json b/cli/app/.next/server/app/api/v1/images/generations/route.js.nft.json new file mode 100644 index 00000000000..5d5fba70c28 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/images/generations/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/126.js","../../../../../chunks/1301.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/2566.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/523.js","../../../../../chunks/6263.js","../../../../../chunks/6288.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8202.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js new file mode 100644 index 00000000000..b7f41cdfbd8 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/images/generations/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/images/generations/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/images/generations/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/messages/count_tokens/route.js b/cli/app/.next/server/app/api/v1/messages/count_tokens/route.js new file mode 100644 index 00000000000..5b1dfdd7b87 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/messages/count_tokens/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=6529,a.ids=[6529],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},45291:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{OPTIONS:()=>w,POST:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509);let v={"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"};async function w(){return new Response(null,{headers:v})}async function x(a){let b;try{b=await a.json()}catch{return new Response(JSON.stringify({error:"Invalid JSON body"}),{status:400,headers:{"Content-Type":"application/json",...v}})}let c=b.messages||[],d=0;for(let a of c)if("string"==typeof a.content)d+=a.content.length;else if(Array.isArray(a.content))for(let b of a.content)"text"===b.type&&b.text&&(d+=b.text.length);return new Response(JSON.stringify({input_tokens:Math.ceil(d/4)}),{headers:{"Content-Type":"application/json",...v}})}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/messages/count_tokens/route",pathname:"/api/v1/messages/count_tokens",filename:"route",bundlePath:"app/api/v1/messages/count_tokens/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/messages/count_tokens/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/messages/count_tokens/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773],()=>b(b.s=45291));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json b/cli/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json new file mode 100644 index 00000000000..4dc827314a3 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/messages/count_tokens/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js new file mode 100644 index 00000000000..b9f9978c4c7 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/messages/count_tokens/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/messages/count_tokens/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/messages/count_tokens/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/messages/route.js b/cli/app/.next/server/app/api/v1/messages/route.js new file mode 100644 index 00000000000..93938255510 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/messages/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=748,a.ids=[748],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},38576:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>i,POST:()=>j});var e=c(55221),f=c(26263),g=a([e]);e=(g.then?(await g)():g)[0];let k=!1;async function h(){k||(await (0,f.Ai)(),k=!0)}async function i(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function j(a){return await h(),await (0,e.P)(a)}d()}catch(a){d(a)}})},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},68593:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(38576),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/messages/route",pathname:"/api/v1/messages",filename:"route",bundlePath:"app/api/v1/messages/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/messages/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/messages/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560,6379,5221],()=>b(b.s=68593));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/messages/route.js.nft.json b/cli/app/.next/server/app/api/v1/messages/route.js.nft.json new file mode 100644 index 00000000000..455770bc55b --- /dev/null +++ b/cli/app/.next/server/app/api/v1/messages/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1301.js","../../../../chunks/1578.js","../../../../chunks/21.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/5221.js","../../../../chunks/523.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/6379.js","../../../../chunks/64.js","../../../../chunks/6560.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js new file mode 100644 index 00000000000..d015c2593d3 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/messages/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/messages/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/messages/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/[kind]/route.js b/cli/app/.next/server/app/api/v1/models/[kind]/route.js new file mode 100644 index 00000000000..7390fe6f5dc --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/[kind]/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=6107,a.ids=[6107],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},80970:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y,OPTIONS:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(61250);let w={image:["image"],tts:["tts"],stt:["stt"],embedding:["embedding"],"image-to-text":["imageToText"],web:["webSearch","webFetch"]};async function x(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function y(a,{params:b}){try{let{kind:a}=await b,c=w[a];if(!c)return Response.json({error:{message:`Unknown model kind: ${a}. Supported: ${Object.keys(w).join(", ")}`,type:"invalid_request_error"}},{status:404,headers:{"Access-Control-Allow-Origin":"*"}});let d=await (0,v.buildModelsList)(c);return Response.json({object:"list",data:d},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models by kind:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/models/[kind]/route",pathname:"/api/v1/models/[kind]",filename:"route",bundlePath:"app/api/v1/models/[kind]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/models/[kind]/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/models/[kind]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,8193,8515],()=>b(b.s=80970));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json b/cli/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json new file mode 100644 index 00000000000..8e80a179d33 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/[kind]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/21.js","../../../../../chunks/3656.js","../../../../../chunks/64.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8515.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js new file mode 100644 index 00000000000..7ea702162e7 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/[kind]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/models/[kind]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/models/[kind]/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/info/route.js b/cli/app/.next/server/app/api/v1/models/info/route.js new file mode 100644 index 00000000000..b998052d5c7 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/info/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=501,a.ids=[501],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55103:(a,b,c)=>{a.exports=c(44870)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},72695:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>H,patchFetch:()=>G,routeModule:()=>C,serverHooks:()=>F,workAsyncStorage:()=>D,workUnitAsyncStorage:()=>E});var d={};c.r(d),c.d(d,{GET:()=>B,OPTIONS:()=>A});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(29737),w=c(50021);let x={llm:"/v1/chat/completions",image:"/v1/images/generations",tts:"/v1/audio/speech",stt:"/v1/audio/transcriptions",embedding:"/v1/embeddings",imageToText:"/v1/chat/completions",webSearch:"/v1/search",webFetch:"/v1/fetch"},y=new Set(["elevenlabs","edge-tts","deepgram","inworld","local-device"]);function z({alias:a,providerId:b,model:c,kind:d,providerInfo:e}){let f={id:`${a}/${c.id}`,name:c.name||c.id,kind:d,owned_by:a,endpoint:x[d]||null};if(c.params&&(f.params=c.params),c.capabilities&&(f.capabilities=c.capabilities),c.options&&(f.options=c.options),c.dimensions&&(f.dimensions=c.dimensions),c.contextWindow&&(f.contextWindow=c.contextWindow),"tts"===d&&y.has(b)&&(f.voicesUrl=`/v1/audio/voices?provider=${b}`),"webSearch"===d&&e?.searchConfig){let a=e.searchConfig;a.searchTypes&&(f.searchTypes=a.searchTypes),a.maxMaxResults&&(f.maxResults=a.maxMaxResults),a.requiredOptions&&(f.required=a.requiredOptions)}return f}async function A(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS"}})}async function B(a){let{searchParams:b}=new URL(a.url),c=b.get("id");if(!c)return Response.json({error:{message:"Missing required query param: id (e.g. ?id=openai/dall-e-3)",type:"invalid_request_error"}},{status:400,headers:{"Access-Control-Allow-Origin":"*"}});let d=function(a){if(!a||!a.includes("/"))return null;let b=a.indexOf("/"),c=a.slice(0,b),d=a.slice(b+1),e=w.js[c]||c,f=w.AI_PROVIDERS[e],g=(v.vq[c]||v.vq[e]||[]).find(a=>a.id===d);if(g){let a=g.type||"llm";return z({alias:c,providerId:e,model:g,kind:a,providerInfo:f})}for(let[a,b]of[["tts",f?.ttsConfig],["stt",f?.sttConfig],["embedding",f?.embeddingConfig]]){let g=b?.models?.find(a=>a.id===d);if(g)return z({alias:c,providerId:e,model:g,kind:a,providerInfo:f})}return"search"===d&&f?.searchConfig?z({alias:c,providerId:e,kind:"webSearch",providerInfo:f,model:{id:"search",name:`${f.name} Search`,params:["query","max_results","country","language","time_range","domain_filter","search_type"]}}):"fetch"===d&&f?.fetchConfig?z({alias:c,providerId:e,kind:"webFetch",providerInfo:f,model:{id:"fetch",name:`${f.name} Fetch`,params:["url","format","max_characters"]}}):null}(c);return d?Response.json(d,{headers:{"Access-Control-Allow-Origin":"*"}}):Response.json({error:{message:`Model not found: ${c}`,type:"not_found"}},{status:404,headers:{"Access-Control-Allow-Origin":"*"}})}let C=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/models/info/route",pathname:"/api/v1/models/info",filename:"route",bundlePath:"app/api/v1/models/info/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/models/info/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:D,workUnitAsyncStorage:E,serverHooks:F}=C;function G(){return(0,g.patchFetch)({workAsyncStorage:D,workUnitAsyncStorage:E})}async function H(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),C.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/models/info/route";"/index"===d&&(d="/");let e=await C.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[E]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[E],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||C.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===C.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await C.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>C.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>C.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await C.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await C.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await C.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,21,8193],()=>b(b.s=72695));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/info/route.js.nft.json b/cli/app/.next/server/app/api/v1/models/info/route.js.nft.json new file mode 100644 index 00000000000..de3b21023b0 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/info/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../chunks/21.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js new file mode 100644 index 00000000000..070639120fd --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/info/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/models/info/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/models/info/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/route.js b/cli/app/.next/server/app/api/v1/models/route.js new file mode 100644 index 00000000000..242243849be --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=5466,a.ids=[5466],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73097:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>A,patchFetch:()=>z,routeModule:()=>v,serverHooks:()=>y,workAsyncStorage:()=>w,workUnitAsyncStorage:()=>x});var d=c(55103),e=c(30600),f=c(10087),g=c(42431),h=c(27321),i=c(42417),j=c(261),k=c(8555),l=c(87717),m=c(34935),n=c(66116),o=c(99218),p=c(43448),q=c(67162),r=c(80463),s=c(86439),t=c(99509),u=c(61250);let v=new d.AppRouteRouteModule({definition:{kind:e.RouteKind.APP_ROUTE,page:"/api/v1/models/route",pathname:"/api/v1/models",filename:"route",bundlePath:"app/api/v1/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/models/route.js",nextConfigOutput:"standalone",userland:u}),{workAsyncStorage:w,workUnitAsyncStorage:x,serverHooks:y}=v;function z(){return(0,f.patchFetch)({workAsyncStorage:w,workUnitAsyncStorage:x})}async function A(a,b,c){c.requestMeta&&(0,g.setRequestMeta)(a,c.requestMeta),v.isDev&&(0,g.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/models/route";"/index"===d&&(d="/");let f=await v.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!f)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:u,params:w,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=f,H=(0,j.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new s.NoFallbackError}}let K=null;!I||v.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===v.isDev||!I,M=I&&!L;G&&F&&(0,i.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,h.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,g.getRequestMeta)(a,"minimalMode"),S=(0,g.getRequestMeta)(a,"incrementalCache")||await v.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:w,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>v.onRequestError(a,b,d,e,B)},sharedContext:{buildId:u}},U=new k.NodeNextRequest(a),V=new k.NodeNextResponse(b),W=l.NextRequestAdapter.fromNodeNextRequest(U,(0,l.signalFromNodeResponse)(b));try{let f,g=async a=>v.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==m.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let e=c.get("next.route");if(e){let b=`${N} ${e}`;a.setAttributes({"next.route":e,"http.route":e,"next.span_name":b}),a.updateName(b),f&&f!==a&&(f.setAttribute("http.route",e),f.updateName(b))}else a.updateName(`${N} ${d}`)}),i=async f=>{var h,i;let j=async({previousCacheEntry:e})=>{try{if(!R&&C&&D&&!e)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(f);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,o.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,p.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[r.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=r.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=r.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:t.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==e?void 0:e.isStale)&&await v.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await v.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:e.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==t.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,p.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(r.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,q.getCacheControlHeader)(k.cacheControl)),await (0,o.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await i(P):(f=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(m.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:h.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},i),void 0,!Q))}catch(b){if(b instanceof s.NoFallbackError||await v.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,n.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,o.I)(U,V,new Response(null,{status:500})),null}}},73136:a=>{a.exports=require("node:url")},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,8193,8515],()=>b(b.s=73097));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/route.js.nft.json b/cli/app/.next/server/app/api/v1/models/route.js.nft.json new file mode 100644 index 00000000000..becc00044b1 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/21.js","../../../../chunks/3656.js","../../../../chunks/64.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8515.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/models/route_client-reference-manifest.js new file mode 100644 index 00000000000..21ab89bb3d4 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/responses/compact/route.js b/cli/app/.next/server/app/api/v1/responses/compact/route.js new file mode 100644 index 00000000000..94f2bca062e --- /dev/null +++ b/cli/app/.next/server/app/api/v1/responses/compact/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=7158,a.ids=[7158],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},31080:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>i,POST:()=>j});var e=c(55221),f=c(26263),g=a([e]);e=(g.then?(await g)():g)[0];let k=!1;async function h(){k||(await (0,f.Ai)(),k=!0)}async function i(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function j(a){await h();let b=await a.json();b._compact=!0;let c=new Request(a.url,{method:"POST",headers:a.headers,body:JSON.stringify(b)});return await (0,e.P)(c)}d()}catch(a){d(a)}})},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},51643:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(31080),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/responses/compact/route",pathname:"/api/v1/responses/compact",filename:"route",bundlePath:"app/api/v1/responses/compact/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/responses/compact/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/responses/compact/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560,6379,5221],()=>b(b.s=51643));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/responses/compact/route.js.nft.json b/cli/app/.next/server/app/api/v1/responses/compact/route.js.nft.json new file mode 100644 index 00000000000..2fdf7e5e3f5 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/responses/compact/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/126.js","../../../../../chunks/1301.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/2566.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/5221.js","../../../../../chunks/523.js","../../../../../chunks/6263.js","../../../../../chunks/6288.js","../../../../../chunks/6379.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8202.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js new file mode 100644 index 00000000000..a46ad01d083 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/responses/compact/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/responses/compact/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/responses/compact/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/responses/route.js b/cli/app/.next/server/app/api/v1/responses/route.js new file mode 100644 index 00000000000..f91672f2927 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/responses/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=1512,a.ids=[1512],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32427:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(95638),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/responses/route",pathname:"/api/v1/responses",filename:"route",bundlePath:"app/api/v1/responses/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/responses/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/responses/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")},95638:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>i,POST:()=>j});var e=c(55221),f=c(26263),g=a([e]);e=(g.then?(await g)():g)[0];let k=!1;async function h(){k||(await (0,f.Ai)(),k=!0)}async function i(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function j(a){return await h(),await (0,e.P)(a)}d()}catch(a){d(a)}})}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560,6379,5221],()=>b(b.s=32427));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/responses/route.js.nft.json b/cli/app/.next/server/app/api/v1/responses/route.js.nft.json new file mode 100644 index 00000000000..455770bc55b --- /dev/null +++ b/cli/app/.next/server/app/api/v1/responses/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/126.js","../../../../chunks/1301.js","../../../../chunks/1578.js","../../../../chunks/21.js","../../../../chunks/2566.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/5221.js","../../../../chunks/523.js","../../../../chunks/6263.js","../../../../chunks/6288.js","../../../../chunks/6379.js","../../../../chunks/64.js","../../../../chunks/6560.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../chunks/8202.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js new file mode 100644 index 00000000000..58871dcda40 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/responses/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/responses/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/responses/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/route.js b/cli/app/.next/server/app/api/v1/route.js new file mode 100644 index 00000000000..c93192dcb84 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=9461,a.ids=[9461],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},21820:a=>{a.exports=require("os")},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},76110:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>B,patchFetch:()=>A,routeModule:()=>w,serverHooks:()=>z,workAsyncStorage:()=>x,workUnitAsyncStorage:()=>y});var d={};c.r(d),c.d(d,{GET:()=>v.GET,OPTIONS:()=>v.OPTIONS});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(61250);let w=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/route",pathname:"/api/v1",filename:"route",bundlePath:"app/api/v1/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:x,workUnitAsyncStorage:y,serverHooks:z}=w;function A(){return(0,g.patchFetch)({workAsyncStorage:x,workUnitAsyncStorage:y})}async function B(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),w.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/route";"/index"===d&&(d="/");let e=await w.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:x,parsedUrl:y,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,y,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(x.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||w.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===w.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await w.getIncrementalCache(a,x,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!x.experimental.authInterrupts},cacheComponents:!!x.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:x.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>w.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>w.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await w.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await w.handleResponse({req:a,nextConfig:x,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await w.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},76760:a=>{a.exports=require("node:path")},77598:a=>{a.exports=require("node:crypto")},81115:a=>{a.exports=require("constants")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},94735:a=>{a.exports=require("events")}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,8193,8515],()=>b(b.s=76110));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/route.js.nft.json b/cli/app/.next/server/app/api/v1/route.js.nft.json new file mode 100644 index 00000000000..c9edbfdac07 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../../src/shared/utils/apiKey.js","../../../../package.json","../../../chunks/1249.js","../../../chunks/21.js","../../../chunks/3656.js","../../../chunks/64.js","../../../chunks/7770.js","../../../chunks/7773.js","../../../chunks/8193.js","../../../chunks/8515.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/route_client-reference-manifest.js new file mode 100644 index 00000000000..60fe3b7da87 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/search/route.js b/cli/app/.next/server/app/api/v1/search/route.js new file mode 100644 index 00000000000..3dbfb158638 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/search/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=8736,a.ids=[8736],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{"use strict";a.exports=require("node:perf_hooks")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},21147:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>ab,patchFetch:()=>aa,routeModule:()=>Y,serverHooks:()=>_,workAsyncStorage:()=>Z,workUnitAsyncStorage:()=>$});var d={};c.r(d),c.d(d,{OPTIONS:()=>W,POST:()=>X});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(84514),w=c(37770),x=c(50021);function y(a){return a?.length?{includes:a.filter(a=>!a.startsWith("-")),excludes:a.filter(a=>a.startsWith("-")).map(a=>a.slice(1))}:{includes:[],excludes:[]}}function z(a,b){let c=a.providerOptions?.[b];if("string"==typeof c&&c.trim().length>0)return c.trim();let d=a.providerSpecificData?.[b];if("string"==typeof d&&d.trim().length>0)return d.trim()}function A(a,b){return(z(b,"baseUrl")||a.baseUrl).replace(/\/+$/,"")}function B(a,b){if("number"==typeof a&&!(a<=0)&&!(b<=0))return Math.floor(a/b)+1}let C={serper:function(a,b){let c="news"===b.searchType?"/news":"/search",d={q:b.query,num:b.maxResults};return b.country&&(d.gl=b.country.toLowerCase()),b.language&&(d.hl=b.language),{url:`${A(a,b)}${c}`,init:{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b.token},body:JSON.stringify(d)}}},"brave-search":function(a,b){let c="news"===b.searchType?"/news/search":"/web/search",d=new URLSearchParams({q:b.query,count:String(b.maxResults)});return b.country&&d.set("country",b.country),b.language&&d.set("search_lang",b.language),{url:`${A(a,b)}${c}?${d}`,init:{method:"GET",headers:{Accept:"application/json","X-Subscription-Token":b.token}}}},perplexity:function(a,b){let c={query:b.query,max_results:b.maxResults};return b.country&&(c.country=b.country),b.language&&(c.search_language_filter=[b.language]),b.domainFilter?.length&&(c.search_domain_filter=b.domainFilter),{url:A(a,b),init:{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b.token}`},body:JSON.stringify(c)}}},exa:function(a,b){let{includes:c,excludes:d}=y(b.domainFilter),e={query:b.query,numResults:b.maxResults,type:"auto",text:!0,highlights:!0};return c.length&&(e.includeDomains=c),d.length&&(e.excludeDomains=d),"news"===b.searchType&&(e.category="news"),{url:A(a,b),init:{method:"POST",headers:{"Content-Type":"application/json","x-api-key":b.token},body:JSON.stringify(e)}}},tavily:function(a,b){let{includes:c,excludes:d}=y(b.domainFilter),e={query:b.query,max_results:b.maxResults,topic:"news"===b.searchType?"news":"general"};return c.length&&(e.include_domains=c),d.length&&(e.exclude_domains=d),b.country&&(e.country=b.country),{url:A(a,b),init:{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b.token}`},body:JSON.stringify(e)}}},"google-pse":function(a,b){let c=b.token,d=z(b,"cx");if(!c||!d)throw Error("Google Programmable Search requires both apiKey and cx");let e=new URLSearchParams({key:c,cx:d,q:b.query,num:String(Math.min(b.maxResults,10))});if(b.country&&e.set("gl",b.country.toLowerCase()),b.language&&e.set("hl",b.language),b.timeRange&&"any"!==b.timeRange){let a={day:"d1",week:"w1",month:"m1",year:"y1"}[b.timeRange];a&&e.set("dateRestrict",a)}return"number"==typeof b.offset&&b.offset>0&&e.set("start",String(Math.min(b.offset+1,91))),{url:`${A(a,b)}?${e}`,init:{method:"GET",headers:{Accept:"application/json"}}}},linkup:function(a,b){let c=b.token;if(!c)throw Error("Linkup Search requires an API key");let{includes:d,excludes:e}=y(b.domainFilter),f=z(b,"depth"),g=f&&["fast","standard","deep"].includes(f)?f:"standard",h={q:b.query,depth:g,outputType:"searchResults",maxResults:b.maxResults};if(d.length&&(h.includeDomains=d),e.length&&(h.excludeDomains=e),b.timeRange&&"any"!==b.timeRange){let a=new Date,c=a.toISOString().slice(0,10),d=new Date(a);"day"===b.timeRange&&d.setUTCDate(d.getUTCDate()-1),"week"===b.timeRange&&d.setUTCDate(d.getUTCDate()-7),"month"===b.timeRange&&d.setUTCMonth(d.getUTCMonth()-1),"year"===b.timeRange&&d.setUTCFullYear(d.getUTCFullYear()-1),h.fromDate=d.toISOString().slice(0,10),h.toDate=c}return{url:A(a,b),init:{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c}`},body:JSON.stringify(h)}}},searchapi:function(a,b){let c=b.token;if(!c)throw Error("SearchAPI requires an API key");let d=new URLSearchParams({engine:"news"===b.searchType?"google_news":"google",q:b.query,api_key:c});b.country&&d.set("gl",b.country.toLowerCase()),b.language&&d.set("hl",b.language);let e=B(b.offset,b.maxResults);return e&&d.set("page",String(e)),{url:`${A(a,b)}?${d}`,init:{method:"GET",headers:{Accept:"application/json"}}}},youcom:function(a,b){let c=b.token;if(!c)throw Error("You.com Search requires an API key");let{includes:d,excludes:e}=y(b.domainFilter),f=new URLSearchParams({query:b.query,count:String(Math.min(b.maxResults,100))});return b.timeRange&&"any"!==b.timeRange&&f.set("freshness",b.timeRange),"number"==typeof b.offset&&b.offset>0&&b.maxResults>0&&f.set("offset",String(Math.min(Math.floor(b.offset/b.maxResults),9))),b.country&&f.set("country",b.country),b.language&&f.set("language",b.language),d.length&&f.set("include_domains",d.join(",")),e.length&&f.set("exclude_domains",e.join(",")),b.contentOptions?.full_page&&(f.set("livecrawl","news"===b.searchType?"news":"web"),f.append("livecrawl_formats","markdown"===b.contentOptions.format?"markdown":"html")),{url:`${A(a,b)}?${f}`,init:{method:"GET",headers:{Accept:"application/json","X-API-Key":c}}}},searxng:function(a,b){let c=A(a,b),d=c.endsWith("/search")?c:`${c}/search`,e=new URLSearchParams({q:b.query,format:"json",categories:"news"===b.searchType?"news":"general"});b.language&&e.set("language",b.language),b.timeRange&&"any"!==b.timeRange&&e.set("time_range",b.timeRange);let f=B(b.offset,b.maxResults);return f&&e.set("pageno",String(f)),{url:`${d}?${e}`,init:{method:"GET",headers:{Accept:"application/json"}}}}};function D(a,b,c,d){let e=b.url||"";return{title:b.title||"",url:e,display_url:e?e.replace(/^https?:\/\/(www\.)?/,"").split("?")[0]:void 0,snippet:b.snippet||"",position:c+1,score:"number"==typeof b.score?Math.min(1,Math.max(0,b.score)):null,published_at:b.published_at||null,favicon_url:b.favicon_url||null,content:b.full_text?{format:b.text_format||"text",text:b.full_text,length:b.full_text.length}:null,metadata:{author:b.author||null,language:null,source_type:b.source_type||null,image_url:b.image_url||null},citation:{provider:a,retrieved_at:d,rank:c+1},provider_raw:null}}let E={serper:function(a,b,c){let d=new Date().toISOString(),e="news"===c?a.news:a.organic;if(!Array.isArray(e))return{results:[],totalResults:null};let f=e.map((a,b)=>D("serper",{title:a.title,url:a.link,snippet:a.snippet||a.description,published_at:a.date},b,d)),g=a.searchParameters?.totalResults;return{results:f,totalResults:"number"==typeof g?g:null}},"brave-search":function(a,b,c){let d=new Date().toISOString(),e="news"===c?a.news||a:a.web,f=e?.results;return Array.isArray(f)?{results:f.map((a,b)=>D("brave-search",{title:a.title,url:a.url,snippet:a.description,published_at:a.page_age||a.age,favicon_url:a.meta_url?.favicon||a.favicon},b,d)),totalResults:e?.totalCount??null}:{results:[],totalResults:null}},perplexity:function(a,b,c){let d=new Date().toISOString(),e=a.results;if(!Array.isArray(e))return{results:[],totalResults:null};let f=e.map((a,b)=>D("perplexity",{title:a.title,url:a.url,snippet:a.snippet,published_at:a.date||a.last_updated},b,d));return{results:f,totalResults:f.length}},exa:function(a,b,c){let d=new Date().toISOString(),e=a.results;if(!Array.isArray(e))return{results:[],totalResults:null};let f=e.map((a,b)=>D("exa",{title:a.title,url:a.url,snippet:a.highlights?.[0]||a.text?.slice(0,300)||"",score:a.score,published_at:a.publishedDate,favicon_url:a.favicon,author:a.author,image_url:a.image,full_text:a.text,text_format:"text"},b,d));return{results:f,totalResults:f.length}},tavily:function(a,b,c){let d=new Date().toISOString(),e=a.results;if(!Array.isArray(e))return{results:[],totalResults:null};let f=e.map((a,b)=>D("tavily",{title:a.title,url:a.url,snippet:a.content||"",score:a.score,published_at:a.published_date,full_text:a.raw_content,text_format:"text"},b,d));return{results:f,totalResults:f.length}},"google-pse":function(a,b,c){let d=new Date().toISOString(),e=(Array.isArray(a.items)?a.items:[]).map((a,b)=>D("google-pse",{title:a.title,url:a.link,snippet:a.snippet,image_url:a.pagemap?.cse_image?.[0]?.src||a.pagemap?.cse_thumbnail?.[0]?.src||a.pagemap?.metatags?.[0]?.["og:image"]},b,d)),f=a.searchInformation?.totalResults??a.queries?.request?.[0]?.totalResults??null,g="string"==typeof f?Number(f):f;return{results:e,totalResults:Number.isFinite(g)?g:null}},linkup:function(a,b,c){let d=new Date().toISOString(),e=(Array.isArray(a.results)?a.results:[]).map((a,b)=>D("linkup",{title:a.name||a.title,url:a.url,snippet:a.content||a.snippet||"",source_type:a.type||"web",image_url:a.image_url||a.imageUrl||null,full_text:a.content,text_format:"text"},b,d));return{results:e,totalResults:e.length}},searchapi:function(a,b,c){let d=new Date().toISOString(),e=(Array.isArray(a.organic_results)?a.organic_results:Array.isArray(a.top_stories)?a.top_stories:[]).map((a,b)=>D("searchapi",{title:a.title,url:a.link,snippet:a.snippet||a.description||"",published_at:a.date||a.published_at,favicon_url:a.favicon,author:a.source||null,image_url:a.thumbnail||null},b,d)),f=a.search_information?.total_results,g="number"==typeof f?f:"string"==typeof f?Number(f):null;return{results:e,totalResults:Number.isFinite(g)?g:e.length}},youcom:function(a,b,c){let d=new Date().toISOString(),e=a?.results&&"object"==typeof a.results?a.results:void 0,f="news"===c?e?.news||[]:e?.web||[],g=(Array.isArray(f)?f:[]).map((a,b)=>{let e=Array.isArray(a.snippets)?a.snippets.find(a=>"string"==typeof a):null,f="string"==typeof a.markdown?a.markdown:"string"==typeof a.html?a.html:void 0,g="string"==typeof a.markdown?"markdown":"html";return D("youcom",{title:a.title,url:a.url,snippet:"string"==typeof e?e:"string"==typeof a.description?a.description:"",published_at:a.page_age,favicon_url:a.favicon_url,image_url:a.thumbnail_url,source_type:c,full_text:f,text_format:f?g:void 0},b,d)});return{results:g,totalResults:g.length}},searxng:function(a,b,c){let d=new Date().toISOString(),e=(Array.isArray(a.results)?a.results:[]).map((a,b)=>D("searxng",{title:a.title,url:a.url,snippet:a.content||a.snippet||"",published_at:a.publishedDate||a.published_date||null,source_type:Array.isArray(a.engines)?a.engines.join(", "):a.engine||a.category||null,image_url:a.thumbnail||a.img_src||null},b,d));return{results:e,totalResults:e.length}}};function F(a){return a?"string"==typeof a?{url:a}:"object"==typeof a&&a.url?a:null:null}let G={gemini:{endpoint:a=>`https://generativelanguage.googleapis.com/v1beta/models/${a}:generateContent`,defaultModel:"gemini-2.5-flash",buildBody:a=>({contents:[{role:"user",parts:[{text:a}]}],tools:[{google_search:{}}]}),buildHeaders:a=>({"Content-Type":"application/json","x-goog-api-key":a}),extractAnswer:a=>{let b=a?.candidates?.[0],c=(b?.content?.parts||[]).map(a=>a?.text||"").filter(Boolean).join("");return{text:c,citations:(b?.groundingMetadata?.groundingChunks||[]).map(a=>a?.web).filter(Boolean).map(a=>({url:a.uri||a.url,title:a.title||""})).filter(a=>a.url),tokens:a?.usageMetadata?.totalTokenCount||0}}},openai:{endpoint:()=>"https://api.openai.com/v1/chat/completions",defaultModel:"gpt-4o-mini",buildBody:(a,b)=>{let c={model:b,messages:[{role:"user",content:a}]};return/search/i.test(b)||(c.tools=[{type:"web_search"}]),c},buildHeaders:a=>({"Content-Type":"application/json",Authorization:`Bearer ${a}`}),extractAnswer:a=>{let b=a?.choices?.[0]?.message||{},c=b.content||"",d=(Array.isArray(b.annotations)?b.annotations:[]).map(a=>a?.url_citation).filter(Boolean).map(a=>({url:a.url,title:a.title||""})),e=Array.isArray(a?.citations)?a.citations.map(F).filter(Boolean):[];return{text:c,citations:d.length?d:e,tokens:a?.usage?.total_tokens||0}}},xai:{endpoint:()=>"https://api.x.ai/v1/responses",defaultModel:"grok-4.20-reasoning",buildBody:(a,b)=>({model:b,input:[{role:"user",content:a}],tools:[{type:"web_search"}]}),buildHeaders:a=>({"Content-Type":"application/json",Authorization:`Bearer ${a}`}),extractAnswer:a=>{let b=Array.isArray(a?.output)?a.output:[],c="",d=[];for(let a of b)for(let b of Array.isArray(a?.content)?a.content:[])for(let a of("string"==typeof b?.text&&(c+=b.text),Array.isArray(b?.annotations)?b.annotations:[])){let b=F(a?.url?a:a?.url_citation);b&&d.push(b)}if(!d.length&&Array.isArray(a?.citations))for(let b of a.citations){let a=F(b);a&&d.push(a)}return{text:c,citations:d,tokens:a?.usage?.total_tokens||0}}},kimi:{endpoint:()=>"https://api.moonshot.cn/v1/chat/completions",defaultModel:"kimi-k2.5",buildBody:(a,b)=>({model:b,messages:[{role:"user",content:a}],tools:[{type:"builtin_function",function:{name:"$web_search"}}]}),buildHeaders:a=>({"Content-Type":"application/json",Authorization:`Bearer ${a}`}),extractAnswer:a=>{let b=a?.choices?.[0]?.message||{},c=b.content||"",d=Array.isArray(b.tool_calls)?b.tool_calls:[],e=[];for(let a of d){let b,c=a?.function?.arguments;if(!c)continue;try{b="string"==typeof c?JSON.parse(c):c}catch{continue}let d=b?.search_results||b?.results||b?.references||[];if(Array.isArray(d))for(let a of d){let b=a?.url||a?.link;b&&e.push({url:b,title:a.title||"",snippet:a.snippet||a.summary||""})}}return{text:c,citations:e,tokens:a?.usage?.total_tokens||0}}},minimax:{endpoint:()=>"https://api.minimaxi.com/v1/text/chatcompletion_v2",defaultModel:"MiniMax-M2.7",buildBody:(a,b)=>({model:b,messages:[{role:"user",content:a}],tools:[{type:"web_search"}]}),buildHeaders:a=>({"Content-Type":"application/json",Authorization:`Bearer ${a}`}),extractAnswer:a=>{let b=a?.choices?.[0]?.message||{},c=b.content||"",d=[];for(let b of Array.isArray(a?.web_search_results)?a.web_search_results:[]){let a=b?.url||b?.link;a&&d.push({url:a,title:b.title||"",snippet:b.snippet||b.summary||""})}if(!d.length)for(let a of Array.isArray(b.tool_calls)?b.tool_calls:[]){let b,c=a?.function?.arguments;if(!c)continue;try{b="string"==typeof c?JSON.parse(c):c}catch{continue}let e=b?.results||b?.search_results||[];if(Array.isArray(e))for(let a of e){let b=a?.url||a?.link;b&&d.push({url:b,title:a.title||"",snippet:a.snippet||""})}}return{text:c,citations:d,tokens:a?.usage?.total_tokens||0}}},perplexity:{endpoint:()=>"https://api.perplexity.ai/chat/completions",defaultModel:"sonar",buildBody:(a,b)=>({model:b,messages:[{role:"user",content:a}]}),buildHeaders:a=>({"Content-Type":"application/json",Authorization:`Bearer ${a}`}),extractAnswer:a=>{let b=(a?.choices?.[0]?.message||{}).content||"",c=a?.citations||[];return{text:b,citations:Array.isArray(c)?c.map(F).filter(Boolean):[],tokens:a?.usage?.total_tokens||0}}}};async function H({provider:a,query:b,maxResults:c,model:d,credentials:e,log:f}){let g,h,i=Date.now(),j=G[a];if(!j)return{success:!1,status:400,error:`Unsupported chat-search provider: ${a}`};if(!b||"string"!=typeof b)return{success:!1,status:400,error:"Missing query"};let k=e?.apiKey||e?.accessToken;if(!k)return{success:!1,status:401,error:"Missing credentials (apiKey or accessToken)"};let l=Number.isFinite(c)&&c>0?Math.floor(c):10,m=d||j.defaultModel,n=j.endpoint(m),o=j.buildBody(b,m),p=j.buildHeaders(k),q=new AbortController,r=setTimeout(()=>q.abort(),15e3),s=Date.now();try{g=await fetch(n,{method:"POST",headers:p,body:JSON.stringify(o),signal:q.signal})}catch(b){if(clearTimeout(r),b?.name==="AbortError")return f?.warn?.(`[chatSearch] timeout provider=${a}`),{success:!1,status:504,error:"Upstream timeout"};return f?.error?.(`[chatSearch] network error provider=${a}: ${b?.message}`),{success:!1,status:502,error:`Network error: ${b?.message||"unknown"}`}}clearTimeout(r);let t=Date.now()-s;try{h=await g.json()}catch{return{success:!1,status:502,error:`Invalid upstream response (status ${g.status})`}}if(!g.ok){let b=h?.error?.message||h?.error||h?.message||`Upstream HTTP ${g.status}`;return f?.warn?.(`[chatSearch] upstream error provider=${a} status=${g.status}`),{success:!1,status:g.status,error:"string"==typeof b?b:JSON.stringify(b)}}let{text:u,citations:v,tokens:w}=j.extractAnswer(h),x=new Date().toISOString(),y=(v||[]).slice(0,l).map((b,c)=>({title:b.title||"",url:b.url,snippet:b.snippet||"",position:c+1,score:null,published_at:null,favicon_url:null,content:null,metadata:{},citation:{provider:a,retrieved_at:x,rank:c+1},provider_raw:null}));return{success:!0,status:200,data:{provider:a,query:b,results:y,answer:{source:a,text:u||"",model:m},usage:{queries_used:1,search_cost_usd:0,llm_tokens:w||0},metrics:{response_time_ms:Date.now()-i,upstream_latency_ms:t,total_results_available:null},errors:[]}}}let I=new Set([400,401,403,404]),J=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]/;function K(a,b=200){return new Response(JSON.stringify(a),{status:b,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}function L(a,b){return{success:!1,status:a,error:b,response:K({error:{message:b,code:a}},a)}}function M(a){return{success:!0,data:a,response:K(a,200)}}async function N({provider:a,providerConfig:b,body:c,credentials:d,log:e,globalStartTime:f}){var g,h,i,j;let k,l,m=Date.now(),n=d?.apiKey||d?.accessToken||void 0;if("none"!==b.authType&&!n)return{success:!1,status:401,error:`No credentials for provider: ${a.id}`};let o={query:c.query,searchType:c.search_type||b.searchTypes?.[0]||"web",maxResults:Math.min(c.max_results||b.defaultMaxResults||5,b.maxMaxResults||100),token:n,country:c.country,language:c.language,timeRange:c.time_range,offset:c.offset,domainFilter:c.domain_filter,contentOptions:c.content_options,providerOptions:c.provider_options,providerSpecificData:d?.providerSpecificData};try{let c;({url:k,init:l}=(g={id:a.id,...b},(c=C[g.id])?c(g,o):{url:A(g,o),init:{method:g.method||"POST",headers:{"Content-Type":"application/json",...o.token?{Authorization:`Bearer ${o.token}`}:{}},body:JSON.stringify({query:o.query,max_results:o.maxResults,search_type:o.searchType})}}))}catch(b){return{success:!1,status:400,error:b?.message||`Invalid request for ${a.id}`}}let p=15e3-(Date.now()-f),q=Math.min(b.timeoutMs||1e4,Math.max(p,1e3)),r=new AbortController,s=setTimeout(()=>r.abort(),q);e?.info?.("SEARCH",`${a.id} | "${o.query.slice(0,80)}" | type=${o.searchType}`);try{let c,d=await fetch(k,{...l,headers:function(a){if(!a)return a;let b={};for(let[c,d]of Object.entries(a))b[c]="string"==typeof d?d.replace(/[^\x00-\xFF]/g,"").trim():d;return b}(l.headers),signal:r.signal});if(clearTimeout(s),!d.ok){let b=await d.text().catch(()=>"");return e?.error?.("SEARCH",`${a.id} ${d.status}: ${b.slice(0,200)}`),{success:!1,status:d.status,error:`${a.id} returned ${d.status}: ${b.slice(0,200)}`}}let f=await d.json(),g=(h=a.id,i=o.query,j=o.searchType,(c=E[h])?c(f,i,j):{results:[],totalResults:null}),n=g.results.slice(0,o.maxResults),p=Date.now()-m;return{success:!0,data:{provider:a.id,query:o.query,results:n,answer:null,usage:{queries_used:1,search_cost_usd:b.costPerQuery||0},metrics:{response_time_ms:p,upstream_latency_ms:p,total_results_available:g.totalResults},errors:[]}}}catch(c){clearTimeout(s);let b="AbortError"===c.name;return e?.error?.("SEARCH",`${a.id} ${b?"timeout":"error"}: ${c.message}`),{success:!1,status:b?504:502,error:`${a.id} ${b?"timeout":"error"}: ${c.message}`}}}async function O({body:a,provider:b,providerConfig:c,credentials:d,log:e}){let f,g=Date.now(),{clean:h,error:i}=function(a){if(J.test(a))return{error:"Query contains invalid control characters"};let b=a.normalize("NFKC").trim().replace(/\s+/g," ");return b?{clean:b}:{error:"Query is empty after normalization"}}(a.query||"");if(i)return L(400,i);let j={...a,query:h};if(c)f=await N({provider:b,providerConfig:c,body:j,credentials:d,log:e,globalStartTime:g});else{if(!b.searchViaChat)return L(400,`Provider ${b.id} does not support web search`);f=await H({provider:b.id,query:h,maxResults:j.max_results,model:b.searchViaChat.defaultModel,credentials:d,log:e})}if(f.success)return M(f.data);if(!I.has(f.status||0)&&Date.now()-g<15e3&&b.searchViaChat&&c){e?.warn?.("SEARCH",`${b.id} dedicated failed (${f.status}), falling back to chat-based search`);let a=await H({provider:b.id,query:h,maxResults:j.max_results,model:b.searchViaChat.defaultModel,credentials:d,log:e});if(a.success)return M(a.data)}return L(f.status||502,f.error||"Search failed")}var P=c(29807),Q=c(23016),R=c(44575),S=c(16560),T=c(48146);async function U(a){let b;try{b=await a.json()}catch{return R.warn("SEARCH","Invalid JSON body"),(0,P.yj)(Q.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=b.provider||b.model,e=b.query;R.request("POST",`${c.pathname} | ${d}`);let f=(0,v.Tr)(a);f?R.debug("AUTH",`API Key: ${R.maskKey(f)}`):R.debug("AUTH","No API key provided (local mode)");let g=await (0,w.getSettings)();if(g.requireApiKey){if(!f)return R.warn("AUTH","Missing API key (requireApiKey=true)"),(0,P.yj)(Q.gx.UNAUTHORIZED,"Missing API key");if(!await (0,v.kI)(f))return R.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,P.yj)(Q.gx.UNAUTHORIZED,"Invalid API key")}if(!d||"string"!=typeof d)return R.warn("SEARCH","Missing provider/model"),(0,P.yj)(Q.gx.BAD_REQUEST,"Missing required field: provider (or model)");if(!e||"string"!=typeof e||!e.trim())return R.warn("SEARCH","Missing query"),(0,P.yj)(Q.gx.BAD_REQUEST,"Missing required field: query");let h=await (0,w.Uv)(),i=(0,T.Vu)(d,h);if(i){let c=g.comboStrategies||{},e=c[d]?.fallbackStrategy||g.comboStrategy||"fallback",h=g.comboStickyRoundRobinLimit;return R.info("SEARCH",`Combo "${d}" with ${i.length} providers (strategy: ${e}, sticky: ${h})`),(0,T.Pr)({body:b,models:i,handleSingleModel:(b,c)=>V(b,c,a,f,g),log:R,comboName:d,comboStrategy:e,comboStickyLimit:h})}return V(b,d,a,f,g)}async function V(a,b,c,d,e){let f=a.query,g=(0,x.rs)(b),h=x.AI_PROVIDERS[g];if(!h)return R.warn("SEARCH","Unknown provider",{provider:b}),(0,P.yj)(Q.gx.BAD_REQUEST,`Unknown provider: ${b}`);let i=h.searchConfig;if(!(i||h.searchViaChat))return R.warn("SEARCH","Provider does not support web search",{provider:g}),(0,P.yj)(Q.gx.BAD_REQUEST,`Provider ${g} does not support web search`);b!==g?R.info("ROUTING",`${b} → ${g}`):R.info("ROUTING",`Provider: ${g}`);let j={query:f.trim(),provider:g,max_results:a.max_results,search_type:a.search_type,country:a.country,language:a.language,time_range:a.time_range,offset:a.offset,domain_filter:a.domain_filter,content_options:a.content_options,provider_options:a.provider_options};if(h.noAuth){R.info("AUTH",`\x1b[32m${g} no-auth mode\x1b[0m`);let a=await O({body:j,provider:h,providerConfig:i,credentials:null,log:R});return a.success,a.response}let k=new Set,l=null,m=null;for(;;){let a=await (0,v.c1)(g,k);if(!a||a.allRateLimited){if(a?.allRateLimited){let b=l||a.lastError||"Unavailable",c=m||Number(a.lastErrorCode)||Q.gx.SERVICE_UNAVAILABLE;return R.warn("SEARCH",`[${g}] ${b} (${a.retryAfterHuman})`),(0,P.wO)(c,`[${g}] ${b}`,a.retryAfter,a.retryAfterHuman)}if(0===k.size)return R.error("AUTH",`No credentials for provider: ${g}`),(0,P.yj)(Q.gx.BAD_REQUEST,`No credentials for provider: ${g}`);return R.warn("SEARCH","No more accounts available",{provider:g}),(0,P.yj)(m||Q.gx.SERVICE_UNAVAILABLE,l||"All accounts unavailable")}R.info("AUTH",`\x1b[32mUsing ${g} account: ${a.connectionName}\x1b[0m`);let b=await (0,S.eU)(g,a),c=await O({body:j,provider:h,providerConfig:i,credentials:b,log:R,onCredentialsRefreshed:async b=>{await (0,S.vN)(a.connectionId,{accessToken:b.accessToken,refreshToken:b.refreshToken,providerSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,v.Pt)(a.connectionId,a)}});if(c.success)return c.response;let{shouldFallback:d}=await (0,v.vk)(a.connectionId,c.status,c.error,g);if(d){R.warn("AUTH",`Account ${a.connectionName} unavailable (${c.status}), trying fallback`),k.add(a.connectionId),l=c.error,m=c.status;continue}return c.response}}async function W(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function X(a){return await U(a)}let Y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/search/route",pathname:"/api/v1/search",filename:"route",bundlePath:"app/api/v1/search/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/search/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:Z,workUnitAsyncStorage:$,serverHooks:_}=Y;function aa(){return(0,g.patchFetch)({workAsyncStorage:Z,workUnitAsyncStorage:$})}async function ab(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),Y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/search/route";"/index"===d&&(d="/");let e=await Y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let J=null;!H||Y.isDev||y||(J="/index"===(J=D)?"/":J);let K=!0===Y.isDev||!H,L=H&&!K;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let M=a.method||"GET",N=(0,i.getTracer)(),O=N.getActiveScopeSpan(),P=!!(null==A?void 0:A.isWrappedByNextServer),Q=!!(0,h.getRequestMeta)(a,"minimalMode"),R=(0,h.getRequestMeta)(a,"incrementalCache")||await Y.getIncrementalCache(a,w,z,Q);null==R||R.resetRequestCache(),globalThis.__incrementalCache=R;let S={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:K,incrementalCache:R,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>Y.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},T=new l.NodeNextRequest(a),U=new l.NodeNextResponse(b),V=m.NextRequestAdapter.fromNodeNextRequest(T,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>Y.handle(V,S).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=N.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${M} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${M} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!Q&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=S.renderOpts.fetchMetrics;let h=S.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=S.renderOpts.collectedTags;if(!H)return await (0,p.I)(T,U,d,S.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==S.renderOpts.collectedRevalidate&&!(S.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&S.renderOpts.collectedRevalidate,e=void 0===S.renderOpts.collectedExpire||S.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:S.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await Y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),b}},k=await Y.handleResponse({req:a,nextConfig:w,cacheKey:J,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:Q});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});Q||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return Q&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(T,U,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};P&&O?await h(O):(e=N.getActiveScopeSpan(),await N.withPropagatedContext(a.headers,()=>N.trace(n.BaseServerSpan.handleRequest,{spanName:`${M} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":a.url}},h),void 0,!P))}catch(b){if(b instanceof t.NoFallbackError||await Y.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(T,U,new Response(null,{status:500})),null}}},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48146:(a,b,c)=>{"use strict";c.d(b,{Pr:()=>i,UP:()=>g,Vu:()=>h});var d=c(2449),e=c(29807);let f=new Map;function g(a){a?f.delete(a):f.clear()}function h(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function i({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:j,comboStickyLimit:k=1}){let l=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let g=b||"__default__",h=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,i=f.get(g),j="number"==typeof i?{index:i,consecutiveUseCount:0}:i||{index:0,consecutiveUseCount:0},k=j.index%a.length,l=function(a,b){let c=[...a];for(let a=0;a=h?f.set(g,{index:(k+1)%a.length,consecutiveUseCount:0}):f.set(g,{index:k,consecutiveUseCount:m}),l}(b,h,j,k),m=null,n=null,o=null;for(let b=0;b0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),m=f||String(b.status),o||(o=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){m=a.message||String(a),o||(o=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:m})}}let p=m&&m.toLowerCase().includes("no credentials")?503:o||503,q=m||"All combo models unavailable";if(n){let a=(0,d.Qo)(n);return g.warn("COMBO",`All models failed | ${q} (${a})`),(0,e.wO)(p,q,n,a)}return g.warn("COMBO",`All models failed | ${q}`),new Response(JSON.stringify({error:{message:q}}),{status:p,headers:{"Content-Type":"application/json"}})}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},62276:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>h,xq:()=>g});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:f,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};function h(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,304,1578,1301,6560],()=>b(b.s=21147));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/search/route.js.nft.json b/cli/app/.next/server/app/api/v1/search/route.js.nft.json new file mode 100644 index 00000000000..61c2c70fee7 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/search/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/shared/utils/apiKey.js","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/1301.js","../../../../chunks/1578.js","../../../../chunks/21.js","../../../../chunks/304.js","../../../../chunks/3656.js","../../../../chunks/523.js","../../../../chunks/6288.js","../../../../chunks/64.js","../../../../chunks/6560.js","../../../../chunks/7690.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/search/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/search/route_client-reference-manifest.js new file mode 100644 index 00000000000..9c44b1c2a9b --- /dev/null +++ b/cli/app/.next/server/app/api/v1/search/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/search/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/search/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/web/fetch/route.js b/cli/app/.next/server/app/api/v1/web/fetch/route.js new file mode 100644 index 00000000000..fb8d53ac524 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/web/fetch/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=3883,a.ids=[3883],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{"use strict";a.exports=require("node:perf_hooks")},4573:a=>{"use strict";a.exports=require("node:buffer")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},21820:a=>{"use strict";a.exports=require("os")},24429:()=>{},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{"use strict";a.exports=require("node:http2")},33873:a=>{"use strict";a.exports=require("path")},34278:(a,b,c)=>{"use strict";c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},34589:a=>{"use strict";a.exports=require("node:assert")},37067:a=>{"use strict";a.exports=require("node:http")},37540:a=>{"use strict";a.exports=require("node:console")},38522:a=>{"use strict";a.exports=require("node:zlib")},40610:a=>{"use strict";a.exports=require("node:dns")},41692:a=>{"use strict";a.exports=require("node:tls")},41792:a=>{"use strict";a.exports=require("node:querystring")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},48146:(a,b,c)=>{"use strict";c.d(b,{Pr:()=>i,UP:()=>g,Vu:()=>h});var d=c(2449),e=c(29807);let f=new Map;function g(a){a?f.delete(a):f.clear()}function h(a,b){if(a.includes("/"))return null;let c=(Array.isArray(b)?b:b?.combos||[]).find(b=>b.name===a);return c&&c.models&&c.models.length>0?c.models:null}async function i({body:a,models:b,handleSingleModel:c,log:g,comboName:h,comboStrategy:j,comboStickyLimit:k=1}){let l=function(a,b,c,d=1){let e;if(!a||a.length<=1||"round-robin"!==c)return a;let g=b||"__default__",h=Number.isFinite(e=Number.parseInt(d,10))&&e>0?e:1,i=f.get(g),j="number"==typeof i?{index:i,consecutiveUseCount:0}:i||{index:0,consecutiveUseCount:0},k=j.index%a.length,l=function(a,b){let c=[...a];for(let a=0;a=h?f.set(g,{index:(k+1)%a.length,consecutiveUseCount:0}):f.set(g,{index:k,consecutiveUseCount:m}),l}(b,h,j,k),m=null,n=null,o=null;for(let b=0;b0&&j<=5e3&&(503===b.status||502===b.status||504===b.status)&&(g.info("COMBO",`Model ${e} transient ${b.status}, waiting ${j}ms before next`),await new Promise(a=>setTimeout(a,j))),m=f||String(b.status),o||(o=b.status),g.warn("COMBO",`Model ${e} failed, trying next`,{status:b.status})}catch(a){m=a.message||String(a),o||(o=500),g.warn("COMBO",`Model ${e} threw error, trying next`,{error:m})}}let p=m&&m.toLowerCase().includes("no credentials")?503:o||503,q=m||"All combo models unavailable";if(n){let a=(0,d.Qo)(n);return g.warn("COMBO",`All models failed | ${q} (${a})`),(0,e.wO)(p,q,n,a)}return g.warn("COMBO",`All models failed | ${q}`),new Response(JSON.stringify({error:{message:q}}),{status:p,headers:{"Content-Type":"application/json"}})}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53053:a=>{"use strict";a.exports=require("node:diagnostics_channel")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},57075:a=>{"use strict";a.exports=require("node:stream")},57975:a=>{"use strict";a.exports=require("node:util")},62276:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>h,xq:()=>g});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:f,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};function h(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73429:a=>{"use strict";a.exports=require("node:util/types")},73865:(a,b,c)=>{"use strict";c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},75919:a=>{"use strict";a.exports=require("node:worker_threads")},76760:a=>{"use strict";a.exports=require("node:path")},77030:a=>{"use strict";a.exports=require("node:net")},77598:a=>{"use strict";a.exports=require("node:crypto")},78474:a=>{"use strict";a.exports=require("node:events")},80099:a=>{"use strict";a.exports=require("node:sqlite")},81115:a=>{"use strict";a.exports=require("constants")},81372:(a,b,c)=>{"use strict";c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},84766:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>V,patchFetch:()=>U,routeModule:()=>Q,serverHooks:()=>T,workAsyncStorage:()=>R,workUnitAsyncStorage:()=>S});var d={};c.r(d),c.d(d,{OPTIONS:()=>O,POST:()=>P});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(84514),w=c(37770),x=c(50021);async function y(a,b,c){let d=new AbortController,e=setTimeout(()=>d.abort(),c);try{let c=await fetch(a,{...b,headers:function(a){if(!a)return a;let b={};for(let[c,d]of Object.entries(a))b[c]="string"==typeof d?d.replace(/[^\x00-\xFF]/g,"").trim():d;return b}(b.headers),signal:d.signal});return{ok:!0,res:c}}catch(a){return{ok:!1,timeout:a?.name==="AbortError",error:a?.message||String(a)}}finally{clearTimeout(e)}}function z(a,b){return a&&"string"==typeof a?!b||b<=0?a:a.length>b?a.slice(0,b):a:a||""}function A({provider:a,url:b,title:c,format:d,text:e,costUsd:f,responseMs:g,upstreamMs:h}){return{provider:a,url:b,title:c||null,content:{format:d,text:e||"",length:(e||"").length},metadata:{author:null,published_at:null,language:null},usage:{fetch_cost_usd:f??null},metrics:{response_time_ms:g,upstream_latency_ms:h}}}async function B(a){if((a.headers.get("content-type")||"").includes("application/json"))try{return{json:await a.json()}}catch{return{text:""}}return{text:await a.text()}}async function C({url:a,format:b,maxCharacters:c,provider:d,providerConfig:e,credentials:f,log:g}){if(!a||"string"!=typeof a)return{success:!1,status:400,error:"url is required"};if(!d)return{success:!1,status:400,error:"provider is required"};let h=b||"markdown",i=e?.timeoutMs||15e3,j=f?.apiKey||f?.key||f?.token||"",k=e?.costPerQuery??null,l=Date.now();try{if("firecrawl"===d)return await D({url:a,fmt:h,timeoutMs:i,apiKey:j,maxCharacters:c,costPerQuery:k,startedAt:l});if("jina-reader"===d)return await E({url:a,fmt:h,timeoutMs:i,apiKey:j,maxCharacters:c,costPerQuery:k,startedAt:l});if("tavily"===d)return await F({url:a,fmt:h,timeoutMs:i,apiKey:j,maxCharacters:c,costPerQuery:k,startedAt:l});if("exa"===d)return await G({url:a,fmt:h,timeoutMs:i,apiKey:j,maxCharacters:c,costPerQuery:k,startedAt:l});return{success:!1,status:400,error:`Unsupported provider: ${d}`}}catch(a){return g?.("fetch handler error:",a?.message||a),{success:!1,status:502,error:a?.message||"Internal fetch error"}}}async function D({url:a,fmt:b,timeoutMs:c,apiKey:d,maxCharacters:e,costPerQuery:f,startedAt:g}){let h=Date.now(),i=await y("https://api.firecrawl.dev/v1/scrape",{method:"POST",headers:{"content-type":"application/json",...d?{authorization:`Bearer ${d}`}:{}},body:JSON.stringify({url:a,formats:[b]})},c);if(!i.ok)return{success:!1,status:i.timeout?504:502,error:i.error};let j=Date.now()-h,{json:k}=await B(i.res);if(!i.res.ok)return{success:!1,status:i.res.status,error:k?.error||`Firecrawl error: ${i.res.status}`};let l=k?.data||{},m=z(l.markdown||l.html||l.text||"",e);return{success:!0,data:A({provider:"firecrawl",url:a,title:l.metadata?.title||null,format:b,text:m,costUsd:f,responseMs:Date.now()-g,upstreamMs:j})}}async function E({url:a,fmt:b,timeoutMs:c,apiKey:d,maxCharacters:e,costPerQuery:f,startedAt:g}){let h,i=`https://r.jina.ai/${encodeURIComponent(a)}`,j=Date.now(),k=await y(i,{method:"GET",headers:d?{authorization:`Bearer ${d}`}:{}},c);if(!k.ok)return{success:!1,status:k.timeout?504:502,error:k.error};let l=Date.now()-j,m=await k.res.text();if(!k.res.ok)return{success:!1,status:k.res.status,error:m?.slice(0,500)||`Jina error: ${k.res.status}`};let n=z(m,e);return{success:!0,data:A({provider:"jina-reader",url:a,title:(h=String(m||"").match(/^\s*#\s+(.+)$/m))?h[1].trim():null,format:b,text:n,costUsd:f,responseMs:Date.now()-g,upstreamMs:l})}}async function F({url:a,fmt:b,timeoutMs:c,apiKey:d,maxCharacters:e,costPerQuery:f,startedAt:g}){let h=Date.now(),i=await y("https://api.tavily.com/extract",{method:"POST",headers:{"content-type":"application/json",...d?{authorization:`Bearer ${d}`}:{}},body:JSON.stringify({urls:[a],extract_depth:"basic"})},c);if(!i.ok)return{success:!1,status:i.timeout?504:502,error:i.error};let j=Date.now()-h,{json:k}=await B(i.res);return i.res.ok?{success:!0,data:A({provider:"tavily",url:a,title:null,format:b,text:z((k?.results?.[0]||{}).raw_content||"",e),costUsd:f,responseMs:Date.now()-g,upstreamMs:j})}:{success:!1,status:i.res.status,error:k?.error||`Tavily error: ${i.res.status}`}}async function G({url:a,fmt:b,timeoutMs:c,apiKey:d,maxCharacters:e,costPerQuery:f,startedAt:g}){let h=Date.now(),i=await y("https://api.exa.ai/contents",{method:"POST",headers:{"content-type":"application/json",...d?{"x-api-key":d}:{}},body:JSON.stringify({ids:[a],text:!0})},c);if(!i.ok)return{success:!1,status:i.timeout?504:502,error:i.error};let j=Date.now()-h,{json:k}=await B(i.res);if(!i.res.ok)return{success:!1,status:i.res.status,error:k?.error||`Exa error: ${i.res.status}`};let l=k?.results?.[0]||{},m=z(l.text||"",e);return{success:!0,data:A({provider:"exa",url:a,title:l.title||null,format:b,text:m,costUsd:f,responseMs:Date.now()-g,upstreamMs:j})}}var H=c(29807),I=c(23016),J=c(44575),K=c(16560),L=c(48146);async function M(a){let b;try{b=await a.json()}catch{return J.warn("FETCH","Invalid JSON body"),(0,H.yj)(I.gx.BAD_REQUEST,"Invalid JSON body")}let c=new URL(a.url),d=b.provider||b.model,e=b.url;b.format,b.max_characters,J.request("POST",`${c.pathname} | ${d}`);let f=(0,v.Tr)(a);f?J.debug("AUTH",`API Key: ${J.maskKey(f)}`):J.debug("AUTH","No API key provided (local mode)");let g=await (0,w.getSettings)();if(g.requireApiKey){if(!f)return J.warn("AUTH","Missing API key (requireApiKey=true)"),(0,H.yj)(I.gx.UNAUTHORIZED,"Missing API key");if(!await (0,v.kI)(f))return J.warn("AUTH","Invalid API key (requireApiKey=true)"),(0,H.yj)(I.gx.UNAUTHORIZED,"Invalid API key")}if(!d||"string"!=typeof d)return J.warn("FETCH","Missing provider/model"),(0,H.yj)(I.gx.BAD_REQUEST,"Missing required field: provider (or model)");if(!e||"string"!=typeof e)return J.warn("FETCH","Missing url"),(0,H.yj)(I.gx.BAD_REQUEST,"Missing required field: url");try{new URL(e)}catch{return J.warn("FETCH","Invalid URL",{url:e}),(0,H.yj)(I.gx.BAD_REQUEST,"Invalid URL format")}let h=await (0,w.Uv)(),i=(0,L.Vu)(d,h);if(i){let c=g.comboStrategies||{},e=c[d]?.fallbackStrategy||g.comboStrategy||"fallback",h=g.comboStickyRoundRobinLimit;return J.info("FETCH",`Combo "${d}" with ${i.length} providers (strategy: ${e}, sticky: ${h})`),(0,L.Pr)({body:b,models:i,handleSingleModel:(b,c)=>N(b,c,a,f,g),log:J,comboName:d,comboStrategy:e,comboStickyLimit:h})}return N(b,d,a,f,g)}async function N(a,b,c,d,e){let f=a.url,g=a.format,h=a.max_characters,i=(0,x.rs)(b),j=x.AI_PROVIDERS[i];if(!j)return J.warn("FETCH","Unknown provider",{provider:b}),(0,H.yj)(I.gx.BAD_REQUEST,`Unknown provider: ${b}`);let k=j.fetchConfig;if(!k)return J.warn("FETCH","Provider does not support web fetch",{provider:i}),(0,H.yj)(I.gx.BAD_REQUEST,`Provider ${i} does not support web fetch`);if(b!==i?J.info("ROUTING",`${b} → ${i}`):J.info("ROUTING",`Provider: ${i}`),j.noAuth){J.info("AUTH",`\x1b[32m${i} no-auth mode\x1b[0m`);let a=await C({url:f,format:g,maxCharacters:h,provider:j.id,providerConfig:k,credentials:null,log:J});return a.success?new Response(JSON.stringify(a.data),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}}):(0,H.yj)(a.status||I.gx.BAD_GATEWAY,a.error||"Fetch failed")}let l=new Set,m=null,n=null;for(;;){let a=await (0,v.c1)(i,l);if(!a||a.allRateLimited){if(a?.allRateLimited){let b=m||a.lastError||"Unavailable",c=n||Number(a.lastErrorCode)||I.gx.SERVICE_UNAVAILABLE;return J.warn("FETCH",`[${i}] ${b} (${a.retryAfterHuman})`),(0,H.wO)(c,`[${i}] ${b}`,a.retryAfter,a.retryAfterHuman)}if(0===l.size)return J.error("AUTH",`No credentials for provider: ${i}`),(0,H.yj)(I.gx.BAD_REQUEST,`No credentials for provider: ${i}`);return J.warn("FETCH","No more accounts available",{provider:i}),(0,H.yj)(n||I.gx.SERVICE_UNAVAILABLE,m||"All accounts unavailable")}J.info("AUTH",`\x1b[32mUsing ${i} account: ${a.connectionName}\x1b[0m`);let b=await (0,K.eU)(i,a),c=await C({url:f,format:g,maxCharacters:h,provider:j.id,providerConfig:k,credentials:b,log:J,onCredentialsRefreshed:async b=>{await (0,K.vN)(a.connectionId,{accessToken:b.accessToken,refreshToken:b.refreshToken,providerSpecificData:b.providerSpecificData,testStatus:"active"})},onRequestSuccess:async()=>{await (0,v.Pt)(a.connectionId,a)}});if(c.success)return new Response(JSON.stringify(c.data),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}});let{shouldFallback:d}=await (0,v.vk)(a.connectionId,c.status,c.error,i);if(d){J.warn("AUTH",`Account ${a.connectionName} unavailable (${c.status}), trying fallback`),l.add(a.connectionId),m=c.error,n=c.status;continue}return(0,H.yj)(c.status||I.gx.BAD_GATEWAY,c.error||"Fetch failed")}}async function O(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function P(a){return await M(a)}let Q=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1/web/fetch/route",pathname:"/api/v1/web/fetch",filename:"route",bundlePath:"app/api/v1/web/fetch/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1/web/fetch/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:R,workUnitAsyncStorage:S,serverHooks:T}=Q;function U(){return(0,g.patchFetch)({workAsyncStorage:R,workUnitAsyncStorage:S})}async function V(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),Q.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1/web/fetch/route";"/index"===d&&(d="/");let e=await Q.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,G=(0,k.normalizeAppPath)(d),H=!!(z.dynamicRoutes[G]||z.routes[D]),I=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(H&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[G];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await I();throw new t.NoFallbackError}}let J=null;!H||Q.isDev||y||(J="/index"===(J=D)?"/":J);let K=!0===Q.isDev||!H,L=H&&!K;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let M=a.method||"GET",N=(0,i.getTracer)(),O=N.getActiveScopeSpan(),P=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await Q.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:K,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>Q.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>Q.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=N.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${M} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${M} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!H)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await Q.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),b}},k=await Q.handleResponse({req:a,nextConfig:w,cacheKey:J,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!H)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&H||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};P&&O?await h(O):(e=N.getActiveScopeSpan(),await N.withPropagatedContext(a.headers,()=>N.trace(n.BaseServerSpan.handleRequest,{spanName:`${M} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":M,"http.target":a.url}},h),void 0,!P))}catch(b){if(b instanceof t.NoFallbackError||await Q.onRequestError(a,b,{routerKind:"App Router",routePath:G,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:L,isOnDemandRevalidate:B})},!1,A),H)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{"use strict";a.exports=require("node:timers")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,7770,21,304,1578,1301,6560],()=>b(b.s=84766));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/web/fetch/route.js.nft.json b/cli/app/.next/server/app/api/v1/web/fetch/route.js.nft.json new file mode 100644 index 00000000000..732e7da6ddb --- /dev/null +++ b/cli/app/.next/server/app/api/v1/web/fetch/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/1301.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/523.js","../../../../../chunks/6288.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js new file mode 100644 index 00000000000..3e803525a79 --- /dev/null +++ b/cli/app/.next/server/app/api/v1/web/fetch/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1/web/fetch/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1/web/fetch/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1beta/models/[...path]/route.js b/cli/app/.next/server/app/api/v1beta/models/[...path]/route.js new file mode 100644 index 00000000000..78c698f251b --- /dev/null +++ b/cli/app/.next/server/app/api/v1beta/models/[...path]/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=1566,a.ids=[1566],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},643:a=>{a.exports=require("node:perf_hooks")},4573:a=>{a.exports=require("node:buffer")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},16698:a=>{a.exports=require("node:async_hooks")},21820:a=>{a.exports=require("os")},22437:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{handler:()=>y,patchFetch:()=>x,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(82274),w=a([v]);v=(w.then?(await w)():w)[0];let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1beta/models/[...path]/route",pathname:"/api/v1beta/models/[...path]",filename:"route",bundlePath:"app/api/v1beta/models/[...path]/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1beta/models/[...path]/route.js",nextConfigOutput:"standalone",userland:v}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function x(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function y(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1beta/models/[...path]/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K=E,K="/index"===K?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}d()}catch(a){d(a)}})},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},32467:a=>{a.exports=require("node:http2")},33873:a=>{a.exports=require("path")},34589:a=>{a.exports=require("node:assert")},37067:a=>{a.exports=require("node:http")},37540:a=>{a.exports=require("node:console")},38522:a=>{a.exports=require("node:zlib")},40610:a=>{a.exports=require("node:dns")},41692:a=>{a.exports=require("node:tls")},41792:a=>{a.exports=require("node:querystring")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},51455:a=>{a.exports=require("node:fs/promises")},53053:a=>{a.exports=require("node:diagnostics_channel")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},57075:a=>{a.exports=require("node:stream")},57975:a=>{a.exports=require("node:util")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},73429:a=>{a.exports=require("node:util/types")},73496:a=>{a.exports=require("http2")},74075:a=>{a.exports=require("zlib")},75919:a=>{a.exports=require("node:worker_threads")},76760:a=>{a.exports=require("node:path")},77030:a=>{a.exports=require("node:net")},77598:a=>{a.exports=require("node:crypto")},78474:a=>{a.exports=require("node:events")},79646:a=>{a.exports=require("child_process")},80099:a=>{a.exports=require("node:sqlite")},81115:a=>{a.exports=require("constants")},82274:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.r(b),c.d(b,{OPTIONS:()=>i,POST:()=>j});var e=c(55221),f=c(26263),g=a([e]);e=(g.then?(await g)():g)[0];let l=!1;async function h(){l||(await (0,f.Ai)(),l=!0)}async function i(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, POST, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function j(a,{params:b}){await h();try{let f,g,{path:h}=await b;if(h.length>=2){let a=h[0],b=h[1];g=b.includes(":streamGenerateContent")?":streamGenerateContent":":generateContent";let c=b.replace(":streamGenerateContent","").replace(":generateContent","");f=a+"/"+c}else{let a=h[0];g=a.includes(":streamGenerateContent")?":streamGenerateContent":":generateContent",f=a.replace(":streamGenerateContent","").replace(":generateContent","")}let i=await a.json(),j=":streamGenerateContent"===g,l=function(a,b,c){let d=[];if(a.systemInstruction){let b=a.systemInstruction.parts?.map(a=>a.text).join("\n")||"";b&&d.push({role:"system",content:b})}if(a.contents)for(let b of a.contents){let a="model"===b.role?"assistant":"user",c=b.parts?.map(a=>a.text).join("\n")||"";d.push({role:a,content:c})}return{model:b,messages:d,stream:c,max_tokens:a.generationConfig?.maxOutputTokens,temperature:a.generationConfig?.temperature,top_p:a.generationConfig?.topP}}(i,f,j),n=new Request(a.url,{method:"POST",headers:a.headers,body:JSON.stringify(l)}),o=await (0,e.P)(n);if(j){var c=o,d=f;if(!c.ok||!c.body)return c;let a=new TextDecoder,b=new TextEncoder,e=new TransformStream({transform(c,e){for(let f of a.decode(c,{stream:!0}).split("\n")){let a;if(!f.startsWith("data:"))continue;let c=f.slice(5).trim();if(!c||"[DONE]"===c)continue;try{a=JSON.parse(c)}catch{continue}let g=a.choices?.[0];if(!g)continue;let h=g.delta||{},i=[];if(h.reasoning_content&&i.push({text:h.reasoning_content,thought:!0}),h.content&&i.push({text:h.content}),0===i.length&&!g.finish_reason)continue;let j={content:{role:"model",parts:i.length>0?i:[{text:""}]},index:0};g.finish_reason&&(j.finishReason=m[g.finish_reason]||"STOP");let k={candidates:[j]};if(g.finish_reason&&a.usage){k.usageMetadata={promptTokenCount:a.usage.prompt_tokens||0,candidatesTokenCount:a.usage.completion_tokens||0,totalTokenCount:a.usage.total_tokens||0};let b=a.usage.completion_tokens_details?.reasoning_tokens;b&&(k.usageMetadata.thoughtsTokenCount=b),k.modelVersion=a.model||d}e.enqueue(b.encode("data: "+JSON.stringify(k)+"\r\n\r\n"))}}});return new Response(c.body.pipeThrough(e),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","Access-Control-Allow-Origin":"*"}})}return await k(o,f)}catch(a){return console.log("Error handling Gemini request:",a),Response.json({error:{message:a.message,code:500}},{status:500})}}let m={stop:"STOP",length:"MAX_TOKENS",tool_calls:"STOP",content_filter:"SAFETY"};async function k(a,b){let c;if(!a.ok)return a;try{c=await a.json()}catch{return a}if(c.candidates)return Response.json(c,{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}});if(c.error)return Response.json(c,{status:a.status,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}});let d=c.choices?.[0];if(!d)return Response.json(c,{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}});let{message:e,finish_reason:f}=d,g=[];e.reasoning_content&&g.push({text:e.reasoning_content,thought:!0}),g.push({text:e.content||""});let h=m[f]||"STOP",i={candidates:[{content:{role:"model",parts:g},finishReason:h,index:0}],modelVersion:c.model||b};if(c.usage){i.usageMetadata={promptTokenCount:c.usage.prompt_tokens||0,candidatesTokenCount:c.usage.completion_tokens||0,totalTokenCount:c.usage.total_tokens||0};let a=c.usage.completion_tokens_details?.reasoning_tokens;a&&(i.usageMetadata.thoughtsTokenCount=a)}return Response.json(i,{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}d()}catch(a){d(a)}})},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87997:a=>{a.exports=require("node:timers")},91645:a=>{a.exports=require("net")},94735:a=>{a.exports=require("events")}};var b=require("../../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,7770,21,8193,126,304,1578,6263,8202,1301,6560,6379,5221],()=>b(b.s=22437));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json b/cli/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json new file mode 100644 index 00000000000..2fdf7e5e3f5 --- /dev/null +++ b/cli/app/.next/server/app/api/v1beta/models/[...path]/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../../node_modules/next/package.json","../../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../../node_modules/react/index.js","../../../../../../../../node_modules/react/package.json","../../../../../../../../package.json","../../../../../../../package.json","../../../../../../../src/shared/utils/apiKey.js","../../../../../../package.json","../../../../../chunks/1249.js","../../../../../chunks/126.js","../../../../../chunks/1301.js","../../../../../chunks/1578.js","../../../../../chunks/21.js","../../../../../chunks/2566.js","../../../../../chunks/304.js","../../../../../chunks/3656.js","../../../../../chunks/5221.js","../../../../../chunks/523.js","../../../../../chunks/6263.js","../../../../../chunks/6288.js","../../../../../chunks/6379.js","../../../../../chunks/64.js","../../../../../chunks/6560.js","../../../../../chunks/7690.js","../../../../../chunks/7770.js","../../../../../chunks/7773.js","../../../../../chunks/8193.js","../../../../../chunks/8202.js","../../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js new file mode 100644 index 00000000000..aefadd9ee07 --- /dev/null +++ b/cli/app/.next/server/app/api/v1beta/models/[...path]/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1beta/models/[...path]/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1beta/models/[...path]/route":[],"/Users/Working/router4/app/src/app/api/v1beta/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1beta/models/route.js b/cli/app/.next/server/app/api/v1beta/models/route.js new file mode 100644 index 00000000000..a64f85abf75 --- /dev/null +++ b/cli/app/.next/server/app/api/v1beta/models/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=1860,a.ids=[1860],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},1526:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x,OPTIONS:()=>w});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(24709);async function w(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function x(){try{let a=[];for(let[b,c]of Object.entries(v.vq))for(let d of c)a.push({name:`models/${b}/${d.id}`,displayName:d.name||d.id,description:`${b} model: ${d.name||d.id}`,supportedGenerationMethods:["generateContent"],inputTokenLimit:128e3,outputTokenLimit:8192});return Response.json({models:a})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message}},{status:500})}}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/v1beta/models/route",pathname:"/api/v1beta/models",filename:"route",bundlePath:"app/api/v1beta/models/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/v1beta/models/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/v1beta/models/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55103:(a,b,c)=>{a.exports=c(44870)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,21,8193],()=>b(b.s=1526));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1beta/models/route.js.nft.json b/cli/app/.next/server/app/api/v1beta/models/route.js.nft.json new file mode 100644 index 00000000000..1f86546a52e --- /dev/null +++ b/cli/app/.next/server/app/api/v1beta/models/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/21.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js b/cli/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js new file mode 100644 index 00000000000..77fd0b3334d --- /dev/null +++ b/cli/app/.next/server/app/api/v1beta/models/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/v1beta/models/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/v1beta/models/[...path]/route":[],"/Users/Working/router4/app/src/app/api/v1beta/models/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/version/route.js b/cli/app/.next/server/app/api/version/route.js new file mode 100644 index 00000000000..030546814f4 --- /dev/null +++ b/cli/app/.next/server/app/api/version/route.js @@ -0,0 +1 @@ +(()=>{var a={};a.id=2922,a.ids=[2922],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},39006:a=>{"use strict";a.exports={rE:"0.4.20"}},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},55103:(a,b,c)=>{"use strict";a.exports=c(44870)},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},85132:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(55591),w=c.n(v),x=c(39006);async function y(){let a=await new Promise(a=>{let b=w().get("https://registry.npmjs.org/9router/latest",{timeout:4e3},b=>{let c="";b.on("data",a=>c+=a),b.on("end",()=>{try{a(JSON.parse(c).version||null)}catch{a(null)}})});b.on("error",()=>a(null)),b.on("timeout",()=>{b.destroy(),a(null)})}),b=x.rE,c=!!a&&function(a,b){let c=a.split(".").map(Number),d=b.split(".").map(Number);for(let a=0;a<3;a++){if(c[a]>d[a])return 1;if(c[a]0;return Response.json({currentVersion:b,latestVersion:a,hasUpdate:c})}let z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/version/route",pathname:"/api/version",filename:"route",bundlePath:"app/api/version/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/version/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/version/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},99218:(a,b,c)=>{"use strict";Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}};var b=require("../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773],()=>b(b.s=85132));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/version/route.js.nft.json b/cli/app/.next/server/app/api/version/route.js.nft.json new file mode 100644 index 00000000000..0f35e6fa360 --- /dev/null +++ b/cli/app/.next/server/app/api/version/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../node_modules/@swc/helpers/package.json","../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../node_modules/next/package.json","../../../../../../node_modules/react/cjs/react.development.js","../../../../../../node_modules/react/cjs/react.production.js","../../../../../../node_modules/react/index.js","../../../../../../node_modules/react/package.json","../../../../../package.json","../../../../package.json","../../../chunks/7773.js","../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/version/route_client-reference-manifest.js b/cli/app/.next/server/app/api/version/route_client-reference-manifest.js new file mode 100644 index 00000000000..6f0d5f45694 --- /dev/null +++ b/cli/app/.next/server/app/api/version/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/version/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/version/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/api/version/update/route.js b/cli/app/.next/server/app/api/version/update/route.js new file mode 100644 index 00000000000..b6adb9a285c --- /dev/null +++ b/cli/app/.next/server/app/api/version/update/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=2198,a.ids=[2198],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},21820:a=>{a.exports=require("os")},24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},39006:a=>{a.exports={rE:"0.4.20"}},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},79646:a=>{a.exports=require("child_process")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87066:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>L,patchFetch:()=>K,routeModule:()=>G,serverHooks:()=>J,workAsyncStorage:()=>H,workUnitAsyncStorage:()=>I});var d={};c.r(d),c.d(d,{POST:()=>F});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(79646),x=c(33873),y=c.n(x),z=c(29021),A=c.n(z),B=c(21820),C=c.n(B),D=c(89489);async function E(){!function(){try{let a=y().join("win32"===process.platform?y().join(process.env.APPDATA||"","9router"):y().join(C().homedir(),".9router"),"mitm",".mitm.pid");if(!A().existsSync(a))return;let b=parseInt(A().readFileSync(a,"utf8").trim(),10);if(!b)return;if("win32"===process.platform)(0,w.execSync)(`taskkill /F /T /PID ${b}`,{stdio:"ignore",windowsHide:!0,timeout:3e3});else try{(0,w.execSync)(`sudo -n kill -9 ${b} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{try{process.kill(b,"SIGKILL")}catch{}}try{A().unlinkSync(a)}catch{}}catch{}}();let a=function(){let a=[];if("win32"===process.platform){try{(0,w.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter \'Name=\\"node.exe\\"\' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").slice(1).filter(a=>a.trim()).forEach(b=>{if(b.toLowerCase().includes("9router")||b.toLowerCase().includes("next-server")){let c=b.match(/^"(\d+)"/);c&&c[1]&&c[1]!==process.pid.toString()&&a.push(c[1])}})}catch{}try{(0,w.execSync)('powershell -NonInteractive -WindowStyle Hidden -Command "Get-Process cloudflared -ErrorAction SilentlyContinue | Select-Object -ExpandProperty Id"',{encoding:"utf8",windowsHide:!0,timeout:5e3}).split("\n").forEach(b=>{let c=b.trim();c&&!isNaN(c)&&a.push(c)})}catch{}}else try{(0,w.execSync)("ps aux 2>/dev/null",{encoding:"utf8",timeout:5e3}).split("\n").forEach(b=>{if(b.includes("9router")||b.includes("next-server")||b.includes("cloudflared")){let c=b.trim().split(/\s+/)[1];c&&!isNaN(c)&&c!==process.pid.toString()&&a.push(c)}})}catch{}return a}(),b=process.platform;a.forEach(a=>{try{"win32"===b?(0,w.execSync)(`taskkill /F /PID ${a} 2>nul`,{stdio:"ignore",shell:!0,windowsHide:!0,timeout:3e3}):(0,w.execSync)(`kill -9 ${a} 2>/dev/null`,{stdio:"ignore",timeout:3e3})}catch{}}),a.length>0&&await new Promise(a=>setTimeout(a,1500))}async function F(){try{await E()}catch{}return!function(a=D.h0.npmPackageName){let b=function(a){try{if(!a||!A().existsSync(a))return a;let b=y().join(process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?y().join(process.env.APPDATA||y().join(C().homedir(),"AppData","Roaming"),"9router"):y().join(C().homedir(),".9router"),"runtime","updater"),c=y().join(b,"updater.js");if(A().existsSync(c))try{if(A().statSync(a).size===A().statSync(c).size)return c}catch{}return A().mkdirSync(b,{recursive:!0}),A().copyFileSync(a,c),c}catch{return a}}(function(){if(process.env.UPDATER_SCRIPT_PATH&&A().existsSync(process.env.UPDATER_SCRIPT_PATH))return process.env.UPDATER_SCRIPT_PATH;let a=y().join(process.cwd(),"src","lib","updater","updater.js");if(A().existsSync(a))return a;let b=y().join(process.cwd(),"..","src","lib","updater","updater.js");return A().existsSync(b)?b:a}()),c="1"===process.env.TRAY_MODE,d={cmd:"win32"===process.platform?"npx.cmd":"npx",args:[D.h0.npmPackageName]},e=c?[...d.args,"--tray","--skip-update"]:[...d.args,"--skip-update"];(0,w.spawn)(process.execPath,[b],{detached:!0,stdio:"ignore",windowsHide:!0,env:{...process.env,UPDATER_PKG_NAME:a,UPDATER_PORT:String(D.h0.statusPort),UPDATER_TAIL_LINES:String(D.h0.statusLogTailLines),UPDATER_RETRIES:String(D.h0.installRetries),UPDATER_RETRY_DELAY_MS:String(D.h0.installRetryDelayMs),UPDATER_LINGER_MS:String(D.h0.lingerAfterDoneMs),UPDATER_WAIT_MIN_MS:String(D.h0.waitForExitMinMs),UPDATER_WAIT_MAX_MS:String(D.h0.waitForExitMaxMs),UPDATER_WAIT_CHECK_MS:String(D.h0.waitForExitCheckMs),UPDATER_APP_PORT:String(D.h0.appPort),UPDATER_RELAUNCH:"1",UPDATER_RELAUNCH_CMD:d.cmd,UPDATER_RELAUNCH_ARGS:JSON.stringify(e)}}).unref(),setTimeout(()=>process.exit(0),D.h0.exitDelayMs)}(),v.NextResponse.json({success:!0,message:"Updater started. This app will exit shortly."})}let G=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/api/version/update/route",pathname:"/api/version/update",filename:"route",bundlePath:"app/api/version/update/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"/Users/Working/router4/app/src/app/api/version/update/route.js",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:H,workUnitAsyncStorage:I,serverHooks:J}=G;function K(){return(0,g.patchFetch)({workAsyncStorage:H,workUnitAsyncStorage:I})}async function L(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),G.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/api/version/update/route";"/index"===d&&(d="/");let e=await G.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:z,routerServerContext:A,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,resolvedPathname:D,clientReferenceManifest:E,serverActionsManifest:F}=e,H=(0,k.normalizeAppPath)(d),I=!!(z.dynamicRoutes[H]||z.routes[D]),J=async()=>((null==A?void 0:A.render404)?await A.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!z.routes[D],b=z.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||G.isDev||y||(K="/index"===(K=D)?"/":K);let L=!0===G.isDev||!I,M=I&&!L;F&&E&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:E,serverActionsManifest:F});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==A?void 0:A.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await G.getIncrementalCache(a,w,z,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:z.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>G.onRequestError(a,b,d,e,A)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>G.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&B&&C&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await G.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),b}},k=await G.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:z,isRoutePPREnabled:!1,isOnDemandRevalidate:B,revalidateOnlyGenerated:C,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",B?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await G.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:B})},!1,A),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799,21,8193],()=>b(b.s=87066));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/api/version/update/route.js.nft.json b/cli/app/.next/server/app/api/version/update/route.js.nft.json new file mode 100644 index 00000000000..ca423876f60 --- /dev/null +++ b/cli/app/.next/server/app/api/version/update/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../../package.json","../../../../../../package.json","../../../../../../src/lib/updater/updater.js","../../../../../package.json","../../../../chunks/21.js","../../../../chunks/6799.js","../../../../chunks/7773.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/api/version/update/route_client-reference-manifest.js b/cli/app/.next/server/app/api/version/update/route_client-reference-manifest.js new file mode 100644 index 00000000000..a01a6a055a1 --- /dev/null +++ b/cli/app/.next/server/app/api/version/update/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/api/version/update/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/api/version/update/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/callback.html b/cli/app/.next/server/app/callback.html new file mode 100644 index 00000000000..f16de99e792 --- /dev/null +++ b/cli/app/.next/server/app/callback.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
progress_activity

Loading...

\ No newline at end of file diff --git a/cli/app/.next/server/app/callback.meta b/cli/app/.next/server/app/callback.meta new file mode 100644 index 00000000000..1e66f8872b0 --- /dev/null +++ b/cli/app/.next/server/app/callback.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/callback/layout,_N_T_/callback/page,_N_T_/callback" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/callback/__PAGE__", + "/callback", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/callback.rsc b/cli/app/.next/server/app/callback.rsc new file mode 100644 index 00000000000..49b1dc88257 --- /dev/null +++ b/cli/app/.next/server/app/callback.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[30948,["7852","static/chunks/app/callback/page-80c520a5e353c3ac.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","callback"],"q":"","i":false,"f":[[["",{"children":["callback",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/callback.segments/_full.segment.rsc b/cli/app/.next/server/app/callback.segments/_full.segment.rsc new file mode 100644 index 00000000000..49b1dc88257 --- /dev/null +++ b/cli/app/.next/server/app/callback.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[30948,["7852","static/chunks/app/callback/page-80c520a5e353c3ac.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","callback"],"q":"","i":false,"f":[[["",{"children":["callback",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/callback.segments/_head.segment.rsc b/cli/app/.next/server/app/callback.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/callback.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/callback.segments/_index.segment.rsc b/cli/app/.next/server/app/callback.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/callback.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/callback.segments/_tree.segment.rsc b/cli/app/.next/server/app/callback.segments/_tree.segment.rsc new file mode 100644 index 00000000000..47280fff563 --- /dev/null +++ b/cli/app/.next/server/app/callback.segments/_tree.segment.rsc @@ -0,0 +1,5 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"callback","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/callback.segments/callback.segment.rsc b/cli/app/.next/server/app/callback.segments/callback.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/callback.segments/callback.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc b/cli/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc new file mode 100644 index 00000000000..98c1ef250c7 --- /dev/null +++ b/cli/app/.next/server/app/callback.segments/callback/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[30948,["7852","static/chunks/app/callback/page-80c520a5e353c3ac.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/callback/page.js b/cli/app/.next/server/app/callback/page.js new file mode 100644 index 00000000000..1ac09f6349c --- /dev/null +++ b/cli/app/.next/server/app/callback/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=7852,a.ids=[7852],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},37400:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/callback/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/callback/page.js","default")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},49145:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["callback",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,37400)),"/Users/Working/router4/app/src/app/callback/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/callback/page",pathname:"/callback",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/callback/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64439:(a,b,c)=>{Promise.resolve().then(c.bind(c,66646))},66646:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(26835),e=c(53830),f=c(28217);function g(){(0,f.useSearchParams)();let[a,b]=(0,e.useState)("processing");return(0,d.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg",children:(0,d.jsxs)("div",{className:"text-center p-8 max-w-md",children:["processing"===a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("h1",{className:"text-xl font-semibold mb-2",children:"Processing..."}),(0,d.jsx)("p",{className:"text-text-muted",children:"Please wait while we complete the authorization."})]}),("success"===a||"done"===a)&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,d.jsx)("h1",{className:"text-xl font-semibold mb-2",children:"Authorization Successful!"}),(0,d.jsx)("p",{className:"text-text-muted",children:"success"===a?"This window will close automatically...":"You can close this tab now."})]}),"manual"===a&&(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-yellow-100 dark:bg-yellow-900/30 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-yellow-600",children:"info"})}),(0,d.jsx)("h1",{className:"text-xl font-semibold mb-2",children:"Copy This URL"}),(0,d.jsx)("p",{className:"text-text-muted mb-4",children:"Please copy the URL from the address bar and paste it in the application."}),(0,d.jsx)("div",{className:"bg-surface border border-border rounded-lg p-3 text-left",children:(0,d.jsx)("code",{className:"text-xs break-all",children:""})})]})]})})}function h(){return(0,d.jsx)(e.Suspense,{fallback:(0,d.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg",children:(0,d.jsxs)("div",{className:"text-center p-8",children:[(0,d.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,d.jsx)("p",{className:"text-text-muted",children:"Loading..."})]})}),children:(0,d.jsx)(g,{})})}},70015:(a,b,c)=>{Promise.resolve().then(c.bind(c,37400))},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,7770,21,8193,2503,514,3774,8035,2049],()=>b(b.s=49145));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/callback/page.js.nft.json b/cli/app/.next/server/app/callback/page.js.nft.json new file mode 100644 index 00000000000..f6ed2c73644 --- /dev/null +++ b/cli/app/.next/server/app/callback/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../package.json","../../../package.json","../../chunks/1249.js","../../chunks/2049.js","../../chunks/21.js","../../chunks/2371.js","../../chunks/2503.js","../../chunks/2566.js","../../chunks/3656.js","../../chunks/375.js","../../chunks/3774.js","../../chunks/514.js","../../chunks/5978.js","../../chunks/64.js","../../chunks/7770.js","../../chunks/7773.js","../../chunks/8035.js","../../chunks/8193.js","../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/callback/page_client-reference-manifest.js b/cli/app/.next/server/app/callback/page_client-reference-manifest.js new file mode 100644 index 00000000000..1a5fa5d7ffc --- /dev/null +++ b/cli/app/.next/server/app/callback/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/callback/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":["7852","static/chunks/app/callback/page-80c520a5e353c3ac.js"],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/callback/page":[]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard.html b/cli/app/.next/server/app/dashboard.html new file mode 100644 index 00000000000..63de48ec940 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard.meta b/cli/app/.next/server/app/dashboard.meta new file mode 100644 index 00000000000..1934d705e78 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.meta @@ -0,0 +1,16 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/page,_N_T_/dashboard" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard.rsc b/cli/app/.next/server/app/dashboard.rsc new file mode 100644 index 00000000000..da9f0b245d5 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +12:I[64795,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"default"] +7:["$","$L12",null,{"machineId":"6581be4f05a82b6b"}] +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc new file mode 100644 index 00000000000..08c35b35e69 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/!KGRhc2hib2FyZCk/dashboard/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[64795,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"default"] +3:I[31872,[],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"machineId":"6581be4f05a82b6b"}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +5:null diff --git a/cli/app/.next/server/app/dashboard.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard.segments/_full.segment.rsc new file mode 100644 index 00000000000..da9f0b245d5 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +12:I[64795,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"default"] +7:["$","$L12",null,{"machineId":"6581be4f05a82b6b"}] +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard.segments/_tree.segment.rsc new file mode 100644 index 00000000000..1e02c5bf985 --- /dev/null +++ b/cli/app/.next/server/app/dashboard.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/basic-chat.html b/cli/app/.next/server/app/dashboard/basic-chat.html new file mode 100644 index 00000000000..dda0666b2e3 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
chat

Start a conversation

Simple chat interface to interact with any AI model from connected providers. Select a model and start chatting!

No model

Model list is filtered from connected providers.

\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/basic-chat.meta b/cli/app/.next/server/app/dashboard/basic-chat.meta new file mode 100644 index 00000000000..2ce99a8901f --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/basic-chat/layout,_N_T_/(dashboard)/dashboard/basic-chat/page,_N_T_/dashboard/basic-chat" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/basic-chat", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/basic-chat.rsc b/cli/app/.next/server/app/dashboard/basic-chat.rsc new file mode 100644 index 00000000000..b44beef8af4 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.rsc @@ -0,0 +1,24 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[72600,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4465","static/chunks/app/(dashboard)/dashboard/basic-chat/page-cd02fe7b10810144.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","basic-chat"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["basic-chat",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{}],null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +12:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L12","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc new file mode 100644 index 00000000000..7e957924fda --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/!KGRhc2hib2FyZCk/dashboard/basic-chat/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[72600,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4465","static/chunks/app/(dashboard)/dashboard/basic-chat/page-cd02fe7b10810144.js"],"default"] +3:I[31872,[],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +5:null diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc new file mode 100644 index 00000000000..b44beef8af4 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/_full.segment.rsc @@ -0,0 +1,24 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[72600,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4465","static/chunks/app/(dashboard)/dashboard/basic-chat/page-cd02fe7b10810144.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","basic-chat"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["basic-chat",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{}],null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +12:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L12","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc new file mode 100644 index 00000000000..337d09abc67 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/basic-chat.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"basic-chat","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/cli-tools.html b/cli/app/.next/server/app/dashboard/cli-tools.html new file mode 100644 index 00000000000..e53890042f8 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/cli-tools.meta b/cli/app/.next/server/app/dashboard/cli-tools.meta new file mode 100644 index 00000000000..4cad6df66d9 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/cli-tools/layout,_N_T_/(dashboard)/dashboard/cli-tools/page,_N_T_/dashboard/cli-tools" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/cli-tools", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/cli-tools.rsc b/cli/app/.next/server/app/dashboard/cli-tools.rsc new file mode 100644 index 00000000000..6629364dded --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","cli-tools"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["cli-tools",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +12:I[46772,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","2326","static/chunks/app/(dashboard)/dashboard/cli-tools/page-a6fe1644188a6348.js"],"default"] +7:["$","$L12",null,{"machineId":"6581be4f05a82b6b"}] +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc new file mode 100644 index 00000000000..2dd84c3486c --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/!KGRhc2hib2FyZCk/dashboard/cli-tools/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[46772,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","2326","static/chunks/app/(dashboard)/dashboard/cli-tools/page-a6fe1644188a6348.js"],"default"] +3:I[31872,[],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"machineId":"6581be4f05a82b6b"}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +5:null diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc new file mode 100644 index 00000000000..6629364dded --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","cli-tools"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["cli-tools",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +12:I[46772,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","2326","static/chunks/app/(dashboard)/dashboard/cli-tools/page-a6fe1644188a6348.js"],"default"] +7:["$","$L12",null,{"machineId":"6581be4f05a82b6b"}] +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc new file mode 100644 index 00000000000..d757a283bfb --- /dev/null +++ b/cli/app/.next/server/app/dashboard/cli-tools.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"cli-tools","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/combos.html b/cli/app/.next/server/app/dashboard/combos.html new file mode 100644 index 00000000000..ed57acdda78 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/combos.meta b/cli/app/.next/server/app/dashboard/combos.meta new file mode 100644 index 00000000000..9f053daf208 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/combos/layout,_N_T_/(dashboard)/dashboard/combos/page,_N_T_/dashboard/combos" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/combos", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/combos.rsc b/cli/app/.next/server/app/dashboard/combos.rsc new file mode 100644 index 00000000000..527ca48e92a --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[37175,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3649","static/chunks/app/(dashboard)/dashboard/combos/page-4e109bbbffbc2e16.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","combos"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["combos",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc new file mode 100644 index 00000000000..d72a7e2b0fc --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/!KGRhc2hib2FyZCk/dashboard/combos/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[37175,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3649","static/chunks/app/(dashboard)/dashboard/combos/page-4e109bbbffbc2e16.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc new file mode 100644 index 00000000000..527ca48e92a --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[37175,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3649","static/chunks/app/(dashboard)/dashboard/combos/page-4e109bbbffbc2e16.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","combos"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["combos",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc new file mode 100644 index 00000000000..f303cdd99a5 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/combos.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"combos","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/endpoint.html b/cli/app/.next/server/app/dashboard/endpoint.html new file mode 100644 index 00000000000..f7c7af0332c --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/endpoint.meta b/cli/app/.next/server/app/dashboard/endpoint.meta new file mode 100644 index 00000000000..b1f1fe371be --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/endpoint/layout,_N_T_/(dashboard)/dashboard/endpoint/page,_N_T_/dashboard/endpoint" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/endpoint", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/endpoint.rsc b/cli/app/.next/server/app/dashboard/endpoint.rsc new file mode 100644 index 00000000000..de4e28b0b16 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","endpoint"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["endpoint",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +12:I[64795,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6099","static/chunks/app/(dashboard)/dashboard/endpoint/page-79a243ddf837f243.js"],"default"] +7:["$","$L12",null,{"machineId":"6581be4f05a82b6b"}] +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc new file mode 100644 index 00000000000..7fa57036841 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/!KGRhc2hib2FyZCk/dashboard/endpoint/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[64795,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6099","static/chunks/app/(dashboard)/dashboard/endpoint/page-79a243ddf837f243.js"],"default"] +3:I[31872,[],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"machineId":"6581be4f05a82b6b"}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +5:null diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc new file mode 100644 index 00000000000..de4e28b0b16 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","endpoint"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["endpoint",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":["$L7",null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +12:I[64795,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6099","static/chunks/app/(dashboard)/dashboard/endpoint/page-79a243ddf837f243.js"],"default"] +7:["$","$L12",null,{"machineId":"6581be4f05a82b6b"}] +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc new file mode 100644 index 00000000000..9f5faa53115 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/endpoint.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"endpoint","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.html b/cli/app/.next/server/app/dashboard/media-providers/web.html new file mode 100644 index 00000000000..298cd728cb8 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.meta b/cli/app/.next/server/app/dashboard/media-providers/web.meta new file mode 100644 index 00000000000..90f40b3a2de --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.meta @@ -0,0 +1,18 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/media-providers/layout,_N_T_/(dashboard)/dashboard/media-providers/web/layout,_N_T_/(dashboard)/dashboard/media-providers/web/page,_N_T_/dashboard/media-providers/web" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/media-providers/web", + "/!KGRhc2hib2FyZCk/dashboard/media-providers", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.rsc new file mode 100644 index 00000000000..780d7954d07 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[69640,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9260","static/chunks/app/(dashboard)/dashboard/media-providers/web/page-617c9cc320c9aced.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","media-providers","web"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["media-providers",{"children":["web",{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc new file mode 100644 index 00000000000..a3e403de512 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/!KGRhc2hib2FyZCk/dashboard/media-providers/web/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[69640,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9260","static/chunks/app/(dashboard)/dashboard/media-providers/web/page-617c9cc320c9aced.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc new file mode 100644 index 00000000000..780d7954d07 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[69640,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9260","static/chunks/app/(dashboard)/dashboard/media-providers/web/page-617c9cc320c9aced.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","media-providers","web"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["media-providers",{"children":["web",{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc new file mode 100644 index 00000000000..19711589e1d --- /dev/null +++ b/cli/app/.next/server/app/dashboard/media-providers/web.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"media-providers","param":null,"prefetchHints":0,"slots":{"children":{"name":"web","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/mitm.html b/cli/app/.next/server/app/dashboard/mitm.html new file mode 100644 index 00000000000..7f96974eb2f --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
security

MITM Proxy

securityMITM ServerStopped
cancelCertcancelTrustedcancelServer

Purpose: Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router

How it works: Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot

9Router Base URL
API Key
Antigravity

Antigravity

Server off

Intercept Antigravity requests via MITM proxy

expand_more
GitHub Copilot

GitHub Copilot

Server off

Intercept GitHub Copilot requests via MITM proxy

expand_more
Kiro

Kiro

Server off

Intercept Kiro requests via MITM proxy

expand_more
\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/mitm.meta b/cli/app/.next/server/app/dashboard/mitm.meta new file mode 100644 index 00000000000..54d35c44d20 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/mitm/layout,_N_T_/(dashboard)/dashboard/mitm/page,_N_T_/dashboard/mitm" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/mitm", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/mitm.rsc b/cli/app/.next/server/app/dashboard/mitm.rsc new file mode 100644 index 00000000000..418fd328403 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.rsc @@ -0,0 +1,24 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[71103,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","6607","static/chunks/app/(dashboard)/dashboard/mitm/page-bad9a5af75575018.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","mitm"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["mitm",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{}],null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +12:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L12","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc new file mode 100644 index 00000000000..1d272a0d78e --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/!KGRhc2hib2FyZCk/dashboard/mitm/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[71103,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","6607","static/chunks/app/(dashboard)/dashboard/mitm/page-bad9a5af75575018.js"],"default"] +3:I[31872,[],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{}],null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +5:null diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc new file mode 100644 index 00000000000..418fd328403 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/_full.segment.rsc @@ -0,0 +1,24 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[71103,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","8872","static/chunks/8872-3d43cb238f9deea9.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","1939","static/chunks/1939-b2a5b6699b8bf3d5.js","6607","static/chunks/app/(dashboard)/dashboard/mitm/page-bad9a5af75575018.js"],"default"] +8:I[31872,[],"OutletBoundary"] +9:"$Sreact.suspense" +c:I[31872,[],"ViewportBoundary"] +e:I[31872,[],"MetadataBoundary"] +10:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","mitm"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["mitm",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{}],null,["$","$L8",null,{"children":["$","$9",null,{"name":"Next.MetadataOutlet","children":"$@a"}]}]]}],{},null,false,null]},null,false,"$@b"]},null,false,"$@b"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lc",null,{"children":"$Ld"}],["$","div",null,{"hidden":true,"children":["$","$Le",null,{"children":["$","$9",null,{"name":"Next.Metadata","children":"$Lf"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$10",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +11:[] +b:"$W11" +d:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +12:I[12569,[],"IconMark"] +a:null +f:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L12","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc new file mode 100644 index 00000000000..26961fea061 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/mitm.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"mitm","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/profile.html b/cli/app/.next/server/app/dashboard/profile.html new file mode 100644 index 00000000000..cb468365f18 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
settings

Settings

computer

Local Mode

Running on your machine

Database Location

~/.9router/db.json

shield

Security

Require login

When ON, dashboard requires password. When OFF, access without login.

route

Routing Strategy

Round Robin

Cycle through accounts to distribute load

Combo Round Robin

Cycle through providers in combos instead of always starting with first

Currently using accounts in priority order (Fill First). Combos always start with their first model.

wifi

Network

Outbound Proxy

Enable proxy for OAuth + provider outbound requests.

monitoring

Observability

Enable Observability

Record request details for inspection in the logs view

9Router proxy v0.4.20

Local Mode - All data stored on your machine

\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/profile.meta b/cli/app/.next/server/app/dashboard/profile.meta new file mode 100644 index 00000000000..e4ec8b30233 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/profile/layout,_N_T_/(dashboard)/dashboard/profile/page,_N_T_/dashboard/profile" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/profile", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/profile.rsc b/cli/app/.next/server/app/dashboard/profile.rsc new file mode 100644 index 00000000000..922921d08d2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[65177,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3471","static/chunks/app/(dashboard)/dashboard/profile/page-1c3e2ce342940999.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","profile"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["profile",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc new file mode 100644 index 00000000000..76caaaa4b81 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/!KGRhc2hib2FyZCk/dashboard/profile/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[65177,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3471","static/chunks/app/(dashboard)/dashboard/profile/page-1c3e2ce342940999.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc new file mode 100644 index 00000000000..922921d08d2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[65177,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3471","static/chunks/app/(dashboard)/dashboard/profile/page-1c3e2ce342940999.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","profile"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["profile",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc new file mode 100644 index 00000000000..44eef3c799e --- /dev/null +++ b/cli/app/.next/server/app/dashboard/profile.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"profile","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers.html b/cli/app/.next/server/app/dashboard/providers.html new file mode 100644 index 00000000000..77704892b86 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/providers.meta b/cli/app/.next/server/app/dashboard/providers.meta new file mode 100644 index 00000000000..730cb7cce61 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/providers/layout,_N_T_/(dashboard)/dashboard/providers/page,_N_T_/dashboard/providers" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/providers", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/providers.rsc b/cli/app/.next/server/app/dashboard/providers.rsc new file mode 100644 index 00000000000..784cd9f6bad --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[69692,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8460","static/chunks/app/(dashboard)/dashboard/providers/page-6c6bb4f9b3b7e5f8.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","providers"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["providers",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc new file mode 100644 index 00000000000..09a60faeed1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/!KGRhc2hib2FyZCk/dashboard/providers/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[69692,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8460","static/chunks/app/(dashboard)/dashboard/providers/page-6c6bb4f9b3b7e5f8.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc new file mode 100644 index 00000000000..784cd9f6bad --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[69692,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8460","static/chunks/app/(dashboard)/dashboard/providers/page-6c6bb4f9b3b7e5f8.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","providers"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["providers",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc new file mode 100644 index 00000000000..325d46912f1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"providers","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.html b/cli/app/.next/server/app/dashboard/providers/new.html new file mode 100644 index 00000000000..484afe64aa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
dns

Providers

arrow_backBack to Providers

Add New Provider

Configure a new AI provider to use with your applications.

expand_more

Your API key will be encrypted and stored securely.

Optional. A friendly name to identify this configuration.

ActiveEnable this provider for use in your applications
\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/providers/new.meta b/cli/app/.next/server/app/dashboard/providers/new.meta new file mode 100644 index 00000000000..c814f979fef --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.meta @@ -0,0 +1,18 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/providers/layout,_N_T_/(dashboard)/dashboard/providers/new/layout,_N_T_/(dashboard)/dashboard/providers/new/page,_N_T_/dashboard/providers/new" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/providers/new", + "/!KGRhc2hib2FyZCk/dashboard/providers", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/providers/new.rsc b/cli/app/.next/server/app/dashboard/providers/new.rsc new file mode 100644 index 00000000000..69d6141ccd1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[57047,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9089","static/chunks/app/(dashboard)/dashboard/providers/new/page-510b667ad2defe52.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","providers","new"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["providers",{"children":["new",{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc new file mode 100644 index 00000000000..d7b79479efc --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/!KGRhc2hib2FyZCk/dashboard/providers/new/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[57047,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9089","static/chunks/app/(dashboard)/dashboard/providers/new/page-510b667ad2defe52.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc new file mode 100644 index 00000000000..69d6141ccd1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[57047,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9089","static/chunks/app/(dashboard)/dashboard/providers/new/page-510b667ad2defe52.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","providers","new"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["providers",{"children":["new",{"children":["__PAGE__",{}]}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc new file mode 100644 index 00000000000..2879148baca --- /dev/null +++ b/cli/app/.next/server/app/dashboard/providers/new.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"providers","param":null,"prefetchHints":0,"slots":{"children":{"name":"new","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.html b/cli/app/.next/server/app/dashboard/proxy-pools.html new file mode 100644 index 00000000000..7eaa8d054d8 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.meta b/cli/app/.next/server/app/dashboard/proxy-pools.meta new file mode 100644 index 00000000000..3fa2cca7f85 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/proxy-pools/layout,_N_T_/(dashboard)/dashboard/proxy-pools/page,_N_T_/dashboard/proxy-pools" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/proxy-pools", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.rsc new file mode 100644 index 00000000000..3e241119a7c --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[85148,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","6812","static/chunks/app/(dashboard)/dashboard/proxy-pools/page-a38a16ee9a757333.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","proxy-pools"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["proxy-pools",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc new file mode 100644 index 00000000000..f5ee39899f9 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/!KGRhc2hib2FyZCk/dashboard/proxy-pools/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[85148,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","6812","static/chunks/app/(dashboard)/dashboard/proxy-pools/page-a38a16ee9a757333.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc new file mode 100644 index 00000000000..3e241119a7c --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[85148,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","6812","static/chunks/app/(dashboard)/dashboard/proxy-pools/page-a38a16ee9a757333.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","proxy-pools"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["proxy-pools",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc new file mode 100644 index 00000000000..d70d22b9ad3 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/proxy-pools.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"proxy-pools","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/quota.html b/cli/app/.next/server/app/dashboard/quota.html new file mode 100644 index 00000000000..58a2651112e --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.html @@ -0,0 +1,2 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/quota.meta b/cli/app/.next/server/app/dashboard/quota.meta new file mode 100644 index 00000000000..5789fa13a2f --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/quota/layout,_N_T_/(dashboard)/dashboard/quota/page,_N_T_/dashboard/quota" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/quota", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/quota.rsc b/cli/app/.next/server/app/dashboard/quota.rsc new file mode 100644 index 00000000000..2a37b7263a1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:"$Sreact.suspense" +8:I[91494,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"CardSkeleton"] +9:I[59295,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"default"] +a:I[31872,[],"OutletBoundary"] +d:I[31872,[],"ViewportBoundary"] +f:I[31872,[],"MetadataBoundary"] +11:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","quota"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["quota",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$7",null,{"fallback":["$","$L8",null,{}],"children":["$","$L9",null,{}]}],null,["$","$La",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,"$@c"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +12:[] +c:"$W12" +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +b:null +10:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc new file mode 100644 index 00000000000..694209fbda2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/!KGRhc2hib2FyZCk/dashboard/quota/__PAGE__.segment.rsc @@ -0,0 +1,7 @@ +1:"$Sreact.fragment" +2:"$Sreact.suspense" +3:I[91494,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"CardSkeleton"] +4:I[59295,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"default"] +5:I[31872,[],"OutletBoundary"] +0:{"rsc":["$","$1","c",{"children":[["$","$2",null,{"fallback":["$","$L3",null,{}],"children":["$","$L4",null,{}]}],null,["$","$L5",null,{"children":["$","$2",null,{"name":"Next.MetadataOutlet","children":"$@6"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +6:null diff --git a/cli/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc new file mode 100644 index 00000000000..2a37b7263a1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:"$Sreact.suspense" +8:I[91494,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"CardSkeleton"] +9:I[59295,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3826","static/chunks/app/(dashboard)/dashboard/quota/page-443513423cf1526a.js"],"default"] +a:I[31872,[],"OutletBoundary"] +d:I[31872,[],"ViewportBoundary"] +f:I[31872,[],"MetadataBoundary"] +11:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","quota"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["quota",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$7",null,{"fallback":["$","$L8",null,{}],"children":["$","$L9",null,{}]}],null,["$","$La",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@b"}]}]]}],{},null,false,null]},null,false,"$@c"]},null,false,"$@c"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Ld",null,{"children":"$Le"}],["$","div",null,{"hidden":true,"children":["$","$Lf",null,{"children":["$","$7",null,{"name":"Next.Metadata","children":"$L10"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$11",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +12:[] +c:"$W12" +e:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +13:I[12569,[],"IconMark"] +b:null +10:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L13","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc new file mode 100644 index 00000000000..ea62bd60642 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/quota.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"quota","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.html b/cli/app/.next/server/app/dashboard/settings/pricing.html new file mode 100644 index 00000000000..430b9fbfc32 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management

Pricing Settings

Configure pricing rates for cost tracking and calculations

Total Models
...
Providers
...
Status
...

How Pricing Works

Cost Calculation:Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens × input_rate) + (output_tokens × output_rate) + (cached_tokens × cached_rate)

Pricing Format: All rates are in dollars per million tokens ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens.

Token Types:

  • Input: Standard prompt tokens
  • Output: Completion/response tokens
  • Cached: Cached input tokens (typically 50% of input rate)
  • Reasoning: Special reasoning/thinking tokens (fallback to output rate)
  • Cache Creation: Tokens used to create cache entries (fallback to input rate)

Custom Pricing: You can override default pricing for specific models. Reset to defaults anytime to restore standard rates.

Current Pricing Overview

Loading pricing data...
\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.meta b/cli/app/.next/server/app/dashboard/settings/pricing.meta new file mode 100644 index 00000000000..2fcad127120 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/dashboard/layout,_N_T_/dashboard/settings/layout,_N_T_/dashboard/settings/pricing/layout,_N_T_/dashboard/settings/pricing/page,_N_T_/dashboard/settings/pricing" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/dashboard/settings/pricing/__PAGE__", + "/dashboard/settings/pricing", + "/dashboard/settings", + "/dashboard", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.rsc new file mode 100644 index 00000000000..661eb26960a --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[32530,["7370","static/chunks/app/dashboard/settings/pricing/page-77a73529baba955b.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","settings","pricing"],"q":"","i":false,"f":[[["",{"children":["dashboard",{"children":["settings",{"children":["pricing",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,"$@d"]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc new file mode 100644 index 00000000000..661eb26960a --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[32530,["7370","static/chunks/app/dashboard/settings/pricing/page-77a73529baba955b.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","settings","pricing"],"q":"","i":false,"f":[[["",{"children":["dashboard",{"children":["settings",{"children":["pricing",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,"$@d"]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc new file mode 100644 index 00000000000..c56952179b7 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/_tree.segment.rsc @@ -0,0 +1,5 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"settings","param":null,"prefetchHints":0,"slots":{"children":{"name":"pricing","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc new file mode 100644 index 00000000000..d5dd242d9b4 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing.segments/dashboard/settings/pricing/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[32530,["7370","static/chunks/app/dashboard/settings/pricing/page-77a73529baba955b.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/settings/pricing/page.js b/cli/app/.next/server/app/dashboard/settings/pricing/page.js new file mode 100644 index 00000000000..1bab827af04 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=7370,a.ids=[7370],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},25682:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js","default")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},26741:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>j});var d=c(26835),e=c(53830),f=c(28217),g=c(75012);let h={gh:{"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75}}};function i({isOpen:a,onClose:b,onSave:c}){let[f,g]=(0,e.useState)({}),[j,k]=(0,e.useState)(!0),[l,m]=(0,e.useState)(!1),n=async()=>{m(!0);try{let a=await fetch("/api/pricing",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(f)});if(a.ok)c?.(),b();else{let b=await a.json();alert(`Failed to save pricing: ${b.error}`)}}catch(a){console.error("Failed to save pricing:",a),alert("Failed to save pricing")}finally{m(!1)}},o=async()=>{if(confirm("Reset all pricing to defaults? This cannot be undone."))try{(await fetch("/api/pricing",{method:"DELETE"})).ok&&g(h)}catch(a){console.error("Failed to reset pricing:",a),alert("Failed to reset pricing")}};if(!a)return null;let p=Object.keys(f).sort(),q=["input","output","cached","reasoning","cache_creation"];return(0,d.jsx)("div",{className:"fixed inset-0 bg-black/50 flex items-center justify-center z-50 p-4",children:(0,d.jsxs)("div",{className:"bg-bg-base border border-border rounded-lg shadow-xl max-w-6xl w-full max-h-[90vh] overflow-hidden flex flex-col",children:[(0,d.jsxs)("div",{className:"p-4 border-b border-border flex items-center justify-between",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:"Pricing Configuration"}),(0,d.jsx)("button",{onClick:b,className:"text-text-muted hover:text-text text-2xl leading-none",children:"\xd7"})]}),(0,d.jsx)("div",{className:"flex-1 overflow-auto p-4",children:j?(0,d.jsx)("div",{className:"text-center py-8 text-text-muted",children:"Loading pricing data..."}):(0,d.jsxs)("div",{className:"space-y-6",children:[(0,d.jsxs)("div",{className:"bg-bg-subtle border border-border rounded-lg p-3 text-sm",children:[(0,d.jsx)("p",{className:"font-medium mb-1",children:"Pricing Rates Format"}),(0,d.jsxs)("p",{className:"text-text-muted",children:["All rates are in ",(0,d.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens."]})]}),p.map(a=>{let b=Object.keys(f[a]).sort();return(0,d.jsxs)("div",{className:"border border-border rounded-lg overflow-hidden",children:[(0,d.jsx)("div",{className:"bg-bg-subtle px-4 py-2 font-semibold text-sm",children:a.toUpperCase()}),(0,d.jsx)("div",{className:"overflow-x-auto",children:(0,d.jsxs)("table",{className:"w-full text-sm",children:[(0,d.jsx)("thead",{className:"bg-bg-hover text-text-muted uppercase text-xs",children:(0,d.jsxs)("tr",{children:[(0,d.jsx)("th",{className:"px-3 py-2 text-left",children:"Model"}),(0,d.jsx)("th",{className:"px-3 py-2 text-right",children:"Input"}),(0,d.jsx)("th",{className:"px-3 py-2 text-right",children:"Output"}),(0,d.jsx)("th",{className:"px-3 py-2 text-right",children:"Cached"}),(0,d.jsx)("th",{className:"px-3 py-2 text-right",children:"Reasoning"}),(0,d.jsx)("th",{className:"px-3 py-2 text-right",children:"Cache Creation"})]})}),(0,d.jsx)("tbody",{className:"divide-y divide-border",children:b.map(b=>(0,d.jsxs)("tr",{className:"hover:bg-bg-subtle/50",children:[(0,d.jsx)("td",{className:"px-3 py-2 font-medium",children:b}),q.map(c=>(0,d.jsx)("td",{className:"px-3 py-2",children:(0,d.jsx)("input",{type:"number",step:"0.01",min:"0",value:f[a][b][c]||0,onChange:d=>{let e;!isNaN(e=parseFloat(d.target.value))&&!(e<0)&&g(d=>{let f={...d};return f[a]||(f[a]={}),f[a][b]||(f[a][b]={}),f[a][b][c]=e,f})},className:"w-20 px-2 py-1 text-right bg-bg-base border border-border rounded focus:outline-none focus:border-primary"})},c))]},b))})]})})]},a)}),0===p.length&&(0,d.jsx)("div",{className:"text-center py-8 text-text-muted",children:"No pricing data available"})]})}),(0,d.jsxs)("div",{className:"p-4 border-t border-border flex items-center justify-between gap-2",children:[(0,d.jsx)("button",{onClick:o,className:"px-4 py-2 text-sm text-red-500 hover:bg-red-500/10 rounded border border-red-500/20 transition-colors",disabled:l,children:"Reset to Defaults"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)("button",{onClick:b,className:"px-4 py-2 text-sm text-text-muted hover:text-text border border-border rounded transition-colors",disabled:l,children:"Cancel"}),(0,d.jsx)("button",{onClick:n,className:"px-4 py-2 text-sm bg-primary text-white rounded hover:bg-primary/90 transition-colors disabled:opacity-50",disabled:l,children:l?"Saving...":"Save Changes"})]})]})]})})}function j(){(0,f.useRouter)();let[a,b]=(0,e.useState)(!1),[c,h]=(0,e.useState)(null),[j,k]=(0,e.useState)(!0),l=async()=>{k(!0);try{let a=await fetch("/api/pricing");if(a.ok){let b=await a.json();h(b)}}catch(a){console.error("Failed to load pricing:",a)}finally{k(!1)}};return(0,d.jsxs)("div",{className:"max-w-6xl mx-auto p-6 space-y-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("h1",{className:"text-3xl font-bold",children:"Pricing Settings"}),(0,d.jsx)("p",{className:"text-text-muted mt-1",children:"Configure pricing rates for cost tracking and calculations"})]}),(0,d.jsx)("button",{onClick:()=>b(!0),className:"px-4 py-2 bg-primary text-white rounded hover:bg-primary/90 transition-colors",children:"Edit Pricing"})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-4",children:[(0,d.jsxs)(g.default,{className:"p-4",children:[(0,d.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Models"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1",children:j?"...":(()=>{if(!c)return 0;let a=0;for(let b in c)a+=Object.keys(c[b]).length;return a})()})]}),(0,d.jsxs)(g.default,{className:"p-4",children:[(0,d.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Providers"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1",children:j?"...":(!c?[]:Object.keys(c).sort()).length})]}),(0,d.jsxs)(g.default,{className:"p-4",children:[(0,d.jsx)("div",{className:"text-text-muted text-sm uppercase font-semibold",children:"Status"}),(0,d.jsx)("div",{className:"text-2xl font-bold mt-1 text-success",children:j?"...":"Active"})]})]}),(0,d.jsxs)(g.default,{className:"p-6",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold mb-4",children:"How Pricing Works"}),(0,d.jsxs)("div",{className:"space-y-3 text-sm text-text-muted",children:[(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Cost Calculation:"}),"Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens \xd7 input_rate) + (output_tokens \xd7 output_rate) + (cached_tokens \xd7 cached_rate)"]}),(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Pricing Format:"})," All rates are in ",(0,d.jsx)("strong",{children:"dollars per million tokens"})," ($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens."]}),(0,d.jsx)("p",{children:(0,d.jsx)("strong",{children:"Token Types:"})}),(0,d.jsxs)("ul",{className:"list-disc list-inside ml-4 space-y-1",children:[(0,d.jsxs)("li",{children:[(0,d.jsx)("strong",{children:"Input:"})," Standard prompt tokens"]}),(0,d.jsxs)("li",{children:[(0,d.jsx)("strong",{children:"Output:"})," Completion/response tokens"]}),(0,d.jsxs)("li",{children:[(0,d.jsx)("strong",{children:"Cached:"})," Cached input tokens (typically 50% of input rate)"]}),(0,d.jsxs)("li",{children:[(0,d.jsx)("strong",{children:"Reasoning:"})," Special reasoning/thinking tokens (fallback to output rate)"]}),(0,d.jsxs)("li",{children:[(0,d.jsx)("strong",{children:"Cache Creation:"})," Tokens used to create cache entries (fallback to input rate)"]})]}),(0,d.jsxs)("p",{children:[(0,d.jsx)("strong",{children:"Custom Pricing:"})," You can override default pricing for specific models. Reset to defaults anytime to restore standard rates."]})]})]}),(0,d.jsxs)(g.default,{className:"p-6",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsx)("h2",{className:"text-xl font-semibold",children:"Current Pricing Overview"}),(0,d.jsx)("button",{onClick:()=>b(!0),className:"text-primary hover:underline text-sm",children:"View Full Details"})]}),j?(0,d.jsx)("div",{className:"text-center py-4 text-text-muted",children:"Loading pricing data..."}):c?(0,d.jsxs)("div",{className:"space-y-3",children:[Object.keys(c).slice(0,5).map(a=>(0,d.jsxs)("div",{className:"text-sm",children:[(0,d.jsxs)("span",{className:"font-semibold",children:[a.toUpperCase(),":"]})," ",(0,d.jsxs)("span",{className:"text-text-muted",children:[Object.keys(c[a]).length," models"]})]},a)),Object.keys(c).length>5&&(0,d.jsxs)("div",{className:"text-sm text-text-muted",children:["+ ",Object.keys(c).length-5," more providers"]})]}):(0,d.jsx)("div",{className:"text-text-muted",children:"No pricing data available"})]}),a&&(0,d.jsx)(i,{isOpen:a,onClose:()=>b(!1),onSave:()=>{l()}})]})}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},71940:(a,b,c)=>{"use strict";function d(...a){return a.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}c.d(b,{cn:()=>d})},73024:a=>{"use strict";a.exports=require("node:fs")},73085:(a,b,c)=>{Promise.resolve().then(c.bind(c,26741))},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},75012:(a,b,c)=>{"use strict";c.d(b,{default:()=>f});var d=c(26835),e=c(71940);function f({children:a,title:b,subtitle:c,icon:g,action:h,padding:i="md",hover:j=!1,elev:k=!1,className:l,...m}){return(0,d.jsxs)("div",{className:(0,e.cn)("bg-surface border border-border-subtle",k?"rounded-[14px] shadow-[var(--shadow-elev)]":"rounded-[14px] shadow-[var(--shadow-soft)]",j&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[i],l),...m,children:[(b||h)&&(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3",children:[g&&(0,d.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:g})}),(0,d.jsxs)("div",{children:[b&&(0,d.jsx)("h3",{className:"text-text-main font-semibold",children:b}),c&&(0,d.jsx)("p",{className:"text-sm text-text-muted",children:c})]})]}),h]}),a]})}f.Section=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",b),...c,children:a})},f.Row=function({children:a,className:b,...c}){return(0,d.jsx)("div",{className:(0,e.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",b),...c,children:a})},f.ListItem=function({children:a,actions:b,className:c,...f}){return(0,d.jsxs)("div",{className:(0,e.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",c),...f,children:[(0,d.jsx)("div",{className:"flex-1 min-w-0",children:a}),b&&(0,d.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:b})]})}},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},85373:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["dashboard",{children:["settings",{children:["pricing",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,25682)),"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"]},[]]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/dashboard/settings/pricing/page",pathname:"/dashboard/settings/pricing",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/dashboard/settings/pricing/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},86589:(a,b,c)=>{Promise.resolve().then(c.bind(c,25682))},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,7770,21,8193,2503,514,3774,8035,2049],()=>b(b.s=85373));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json b/cli/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json new file mode 100644 index 00000000000..cb0d58fbf8c --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../../../node_modules/@swc/helpers/package.json","../../../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../../../node_modules/next/dist/client/lib/console.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../../../node_modules/next/dist/lib/constants.js","../../../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../../../node_modules/next/dist/lib/is-error.js","../../../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../../../node_modules/next/dist/server/node-environment.js","../../../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../../../node_modules/next/dist/server/require-hook.js","../../../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../../../node_modules/next/package.json","../../../../../../../node_modules/react/cjs/react.development.js","../../../../../../../node_modules/react/cjs/react.production.js","../../../../../../../node_modules/react/index.js","../../../../../../../node_modules/react/package.json","../../../../../../package.json","../../../../../package.json","../../../../chunks/1249.js","../../../../chunks/2049.js","../../../../chunks/21.js","../../../../chunks/2371.js","../../../../chunks/2503.js","../../../../chunks/2566.js","../../../../chunks/3656.js","../../../../chunks/375.js","../../../../chunks/3774.js","../../../../chunks/514.js","../../../../chunks/5978.js","../../../../chunks/64.js","../../../../chunks/7770.js","../../../../chunks/7773.js","../../../../chunks/8035.js","../../../../chunks/8193.js","../../../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js b/cli/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js new file mode 100644 index 00000000000..6a5440f16f0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/settings/pricing/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/dashboard/settings/pricing/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":["7370","static/chunks/app/dashboard/settings/pricing/page-77a73529baba955b.js"],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","8035","static/chunks/8035-1f56df5774b5cc34.js","6337","static/chunks/app/(dashboard)/dashboard/page-87aa0d715eec8054.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/(dashboard)/dashboard/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page":[]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/skills.html b/cli/app/.next/server/app/dashboard/skills.html new file mode 100644 index 00000000000..ffb5ddfc85b --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
extension

Agent Skills

Paste this to your AI:
Read this skill and use it: https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.md
hub

9Router (Entry)

START HERE

Setup + index of all capabilities. Start here — covers base URL, auth, model discovery, and links to every capability skill.

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router/SKILL.mdopen_in_new
chat

Chat

/v1/chat/completions

Chat / code-gen via OpenAI or Anthropic format with streaming.

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-chat/SKILL.mdopen_in_new
image

Image Generation

/v1/images/generations

Text-to-image via DALL-E, Imagen, FLUX, MiniMax, SDWebUI…

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-image/SKILL.mdopen_in_new
record_voice_over

Text-to-Speech

/v1/audio/speech

OpenAI / ElevenLabs / Edge / Google / Deepgram voices.

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-tts/SKILL.mdopen_in_new
mic

Speech-to-Text

/v1/audio/transcriptions

Transcribe audio via OpenAI Whisper, Groq, Gemini, Deepgram, AssemblyAI…

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-stt/SKILL.mdopen_in_new
scatter_plot

Embeddings

/v1/embeddings

Vectors for RAG / semantic search via OpenAI, Gemini, Mistral…

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-embeddings/SKILL.mdopen_in_new
search

Web Search

/v1/search

Tavily / Exa / Brave / Serper / SearXNG / Google PSE / You.com.

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-web-search/SKILL.mdopen_in_new
language

Web Fetch

/v1/web/fetch

URL → markdown / text / HTML via Firecrawl, Jina, Tavily, Exa.

https://raw.githubusercontent.com/decolua/9router/refs/heads/master/skills/9router-web-fetch/SKILL.mdopen_in_new

More on GitHub

Browse source, README, and examples.

open_in_newView on GitHub
\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/skills.meta b/cli/app/.next/server/app/dashboard/skills.meta new file mode 100644 index 00000000000..7080bd184af --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/skills/layout,_N_T_/(dashboard)/dashboard/skills/page,_N_T_/dashboard/skills" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/skills", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/skills.rsc b/cli/app/.next/server/app/dashboard/skills.rsc new file mode 100644 index 00000000000..6164c6cdc41 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[29650,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9516","static/chunks/app/(dashboard)/dashboard/skills/page-58f11e8a5a8f3810.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","skills"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["skills",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc new file mode 100644 index 00000000000..bda92a39d4b --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/!KGRhc2hib2FyZCk/dashboard/skills/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[29650,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9516","static/chunks/app/(dashboard)/dashboard/skills/page-58f11e8a5a8f3810.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc new file mode 100644 index 00000000000..6164c6cdc41 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[29650,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9516","static/chunks/app/(dashboard)/dashboard/skills/page-58f11e8a5a8f3810.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","skills"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["skills",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc new file mode 100644 index 00000000000..c3b004010be --- /dev/null +++ b/cli/app/.next/server/app/dashboard/skills.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"skills","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/translator.html b/cli/app/.next/server/app/dashboard/translator.html new file mode 100644 index 00000000000..cd1f4e15263 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
translate

Translator

Translator Debug

Replay request flow — matches log files

\ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/translator.meta b/cli/app/.next/server/app/dashboard/translator.meta new file mode 100644 index 00000000000..7300979d30d --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/translator/layout,_N_T_/(dashboard)/dashboard/translator/page,_N_T_/dashboard/translator" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/translator", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/translator.rsc b/cli/app/.next/server/app/dashboard/translator.rsc new file mode 100644 index 00000000000..3781a71ccb6 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[54053,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3528","static/chunks/app/(dashboard)/dashboard/translator/page-f87aca0195ce41ad.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","translator"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["translator",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc new file mode 100644 index 00000000000..21a11c19f1d --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/!KGRhc2hib2FyZCk/dashboard/translator/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[54053,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3528","static/chunks/app/(dashboard)/dashboard/translator/page-f87aca0195ce41ad.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc new file mode 100644 index 00000000000..3781a71ccb6 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[54053,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","3528","static/chunks/app/(dashboard)/dashboard/translator/page-f87aca0195ce41ad.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","translator"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["translator",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc new file mode 100644 index 00000000000..41535d536c4 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/translator.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"translator","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/usage.html b/cli/app/.next/server/app/dashboard/usage.html new file mode 100644 index 00000000000..bdac50f7b7f --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/usage.meta b/cli/app/.next/server/app/dashboard/usage.meta new file mode 100644 index 00000000000..3c6f3c30a21 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.meta @@ -0,0 +1,17 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/(dashboard)/layout,_N_T_/(dashboard)/dashboard/layout,_N_T_/(dashboard)/dashboard/usage/layout,_N_T_/(dashboard)/dashboard/usage/page,_N_T_/dashboard/usage" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__", + "/!KGRhc2hib2FyZCk/dashboard/usage", + "/!KGRhc2hib2FyZCk/dashboard", + "/!KGRhc2hib2FyZCk", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/dashboard/usage.rsc b/cli/app/.next/server/app/dashboard/usage.rsc new file mode 100644 index 00000000000..5c6502cbd0d --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[83101,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","2825","static/chunks/app/(dashboard)/dashboard/usage/page-92b9dd8c50ab5e50.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","usage"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["usage",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc new file mode 100644 index 00000000000..464869514c2 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +3:I[91133,[],""] +4:I[4297,[],""] +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L2",null,{"children":["$","$L3",null,{"parallelRouterKey":"children","template":["$","$L4",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc new file mode 100644 index 00000000000..f619d5b3ca0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/!KGRhc2hib2FyZCk/dashboard/usage/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[83101,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","2825","static/chunks/app/(dashboard)/dashboard/usage/page-92b9dd8c50ab5e50.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc new file mode 100644 index 00000000000..5c6502cbd0d --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/_full.segment.rsc @@ -0,0 +1,27 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[13048,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"default"] +7:I[1076,[],"ClientPageRoot"] +8:I[83101,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","2825","static/chunks/app/(dashboard)/dashboard/usage/page-92b9dd8c50ab5e50.js"],"default"] +b:I[31872,[],"OutletBoundary"] +c:"$Sreact.suspense" +f:I[31872,[],"ViewportBoundary"] +11:I[31872,[],"MetadataBoundary"] +13:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","dashboard","usage"],"q":"","i":false,"f":[[["",{"children":["(dashboard)",{"children":["dashboard",{"children":["usage",{"children":["__PAGE__",{}]}]}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$L6",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:style","children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:1:props:style","children":404}],["$","div",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:style","children":["$","h2",null,{"style":"$0:f:0:1:0:props:children:1:props:children:1:props:children:props:children:props:children:props:notFound:0:1:props:children:props:children:2:props:children:props:style","children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L7",null,{"Component":"$8","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@9","$@a"]}}],null,["$","$Lb",null,{"children":["$","$c",null,{"name":"Next.MetadataOutlet","children":"$@d"}]}]]}],{},null,false,null]},null,false,"$@e"]},null,false,"$@e"]},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$Lf",null,{"children":"$L10"}],["$","div",null,{"hidden":true,"children":["$","$L11",null,{"children":["$","$c",null,{"name":"Next.Metadata","children":"$L12"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$13",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +14:[] +e:"$W14" +9:{} +a:"$0:f:0:1:1:children:1:children:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +10:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +15:I[12569,[],"IconMark"] +d:null +12:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L15","5",{}]] diff --git a/cli/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc b/cli/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc new file mode 100644 index 00000000000..045523d77f9 --- /dev/null +++ b/cli/app/.next/server/app/dashboard/usage.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"(dashboard)","param":null,"prefetchHints":0,"slots":{"children":{"name":"dashboard","param":null,"prefetchHints":0,"slots":{"children":{"name":"usage","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/favicon.ico.body b/cli/app/.next/server/app/favicon.ico.body new file mode 100644 index 00000000000..718d6fea483 Binary files /dev/null and b/cli/app/.next/server/app/favicon.ico.body differ diff --git a/cli/app/.next/server/app/favicon.ico.meta b/cli/app/.next/server/app/favicon.ico.meta new file mode 100644 index 00000000000..b5516f2f535 --- /dev/null +++ b/cli/app/.next/server/app/favicon.ico.meta @@ -0,0 +1 @@ +{"status":200,"headers":{"cache-control":"public, max-age=0, must-revalidate","content-type":"image/x-icon","x-next-cache-tags":"_N_T_/layout,_N_T_/favicon.ico/layout,_N_T_/favicon.ico/route,_N_T_/favicon.ico"}} \ No newline at end of file diff --git a/cli/app/.next/server/app/favicon.ico/route.js b/cli/app/.next/server/app/favicon.ico/route.js new file mode 100644 index 00000000000..bbd5361c9d3 --- /dev/null +++ b/cli/app/.next/server/app/favicon.ico/route.js @@ -0,0 +1 @@ +"use strict";(()=>{var a={};a.id=3230,a.ids=[3230],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},16634:(a,b,c)=>{c.r(b),c.d(b,{handler:()=>E,patchFetch:()=>D,routeModule:()=>z,serverHooks:()=>C,workAsyncStorage:()=>A,workUnitAsyncStorage:()=>B});var d={};c.r(d),c.d(d,{GET:()=>x,dynamic:()=>y});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606);let w=Buffer.from("AAABAAQAEBAAAAEAIAAoBQAARgAAACAgAAABACAAKBQAAG4FAAAwMAAAAQAgACgtAACWGQAAAAAAAAEAIACNHgAAvkYAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAKAAAADyAAAA/wAAAP8AAAD/AAAA/wAAAPIAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAOAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOAAAAA4AAAAAAAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAKEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAChAAAAAAAAACMAAAD0AAAA/wAAAP9PT0//rq6u/6urq/+rq6v/q6ur/6urq/+tra3/Z2dn/wAAAP8AAAD/AAAA9AAAACMAAABZAAAA/wAAAP8AAAD/Hx8f/+3t7f///////////////////////f39/zU1Nf8AAAD/AAAA/wAAAP8AAABZAAAAuwAAAP8AAAD/AAAA/wAAAP9ra2v//////////////////////46Ojv8AAAD/AAAA/wAAAP8AAAD/AAAAuwAAALsAAAD/AAAA/wAAAP8AAAD/CQkJ/83Nzf///////////+Tk5P8YGBj/AAAA/wAAAP8AAAD/AAAA/wAAALsAAABZAAAA/wAAAP8AAAD/AAAA/wAAAP9KSkr//f39//////9ra2v/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABZAAAAIwAAAPQAAAD/AAAA/wAAAP8AAAD/AQEB/7a2tv/V1dX/CQkJ/wAAAP8AAAD/AAAA/wAAAP8AAAD0AAAAIwAAAAAAAAChAAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/RERE/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAAAAAAHwAAAOIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4gAAAB8AAAAAAAAAAAAAAAAAAAA4AAAA4AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA4AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACgAAAA8gAAAP8AAAD/AAAA/wAAAP8AAADyAAAAoAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQAAABdAAAAugAAALoAAABdAAAAJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAgAAAAQAAAAAEAIAAAAAAAABQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAsAAAAVQAAAIEAAADoAAAA6AAAAIEAAABVAAAALAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACoAAACFAAAA0gAAAPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD5AAAA0gAAAIUAAAAqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABRAAAA4QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADhAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcgAAAPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABPAAAA+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD7AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGwAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADjAAAAGwAAAAAAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAKAAAAPUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPQAAAAnAAAAAAAAAAAAAACGAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ODg4/4uLi/+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+IiIj/iIiI/4iIiP+JiYn/X19f/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIYAAAAAAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8eHh7/7u7u//////////////////////////////////////////////////////////////////////9TU1P/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAArAAAA+gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj/////////////////////////////////////////////////////////////////rq6u/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD6AAAAKwAAAFQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v///////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAABUAAAAggAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3/////////////////////////////////////////////////jY2N/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIEAAADpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/62trf///////////////////////////////////////////+Tk5P8XFxf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA6QAAAOkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Kysr//Pz8///////////////////////////////////////ampq/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADpAAAAgQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/i4uL/////////////////////////////////8zMzP8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIIAAABUAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8WFhb/4+Pj///////////////////////9/f3/SUlJ/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVAAAACsAAAD6AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGj//////////////////////6+vr/8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPoAAAArAAAABwAAANQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP/Ly8v////////////09PT/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA1AAAAAcAAAAAAAAAhgAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0dHR//9/f3//////42Njf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACGAAAAAAAAAAAAAAAnAAAA9AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/7Gxsf/s7Oz/FxcX/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA9QAAACgAAAAAAAAAAAAAAAAAAACXAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MzMz/19fX/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACXAAAAAAAAAAAAAAAAAAAAAAAAABoAAADjAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA5AAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE8AAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPsAAABPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHIAAAD7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+wAAAHIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFEAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAABRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwAAACWAAAA8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPMAAACWAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAqAAAAhQAAANIAAAD5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAANIAAACFAAAAKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAACwAAABVAAAAgQAAAOgAAADoAAAAgQAAAFUAAAAsAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAC0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEwAAABqAAAAswAAAPgAAAD3AAAAswAAAGoAAABLAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVgAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVQAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJQAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUQAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAATwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAIwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACLAAAAAAAAAAAAAAAAAAAAEQAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8kJCT/aGho/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/2VlZf9lZWX/ZWVl/1BQUP8BAQH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADkAAAAEQAAAAAAAAAAAAAAVQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8cHBz/6+vr/////////////////////////////////////////////////////////////////////////////////////////////////////////////////3Nzc/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ZWVl////////////////////////////////////////////////////////////////////////////////////////////////////////////zMzM/wgICP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAJAAAA2gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/8nJyf/////////////////////////////////////////////////////////////////////////////////////////////////9/f3/SEhI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAAAAkAAAAoAAAA+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0VFRf/8/Pz///////////////////////////////////////////////////////////////////////////////////////////+urq7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAACgAAABLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP+qqqr///////////////////////////////////////////////////////////////////////////////////////T09P8sLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEwAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8pKSn/8vLy/////////////////////////////////////////////////////////////////////////////////4yMjP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGoAAAC0AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/iIiI////////////////////////////////////////////////////////////////////////////4+Pj/xYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALMAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/+Hh4f//////////////////////////////////////////////////////////////////////aWlp/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAAD4AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2VlZf/////////////////////////////////////////////////////////////////Ly8v/CAgI/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPgAAACzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB//Jycn///////////////////////////////////////////////////////39/f9ISEj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAALQAAABqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9FRUX//Pz8/////////////////////////////////////////////////66urv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAGoAAABMAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/qqqq////////////////////////////////////////////9PT0/ywsLP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAEsAAAAoAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/KSkp//Ly8v//////////////////////////////////////jIyM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+QAAACgAAAAJAAAA2gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/4iIiP/////////////////////////////////j4+P/FhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA2gAAAAkAAAAAAAAAoQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP/h4eH///////////////////////////9paWn/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAoQAAAAAAAAAAAAAAVQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9lZWX//////////////////////8zMzP8ICAj/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAVQAAAAAAAAAAAAAAEQAAAOQAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf/ycnJ/////////////f39/0hISP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADkAAAAEQAAAAAAAAAAAAAAAAAAAIsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RUVF//z8/P//////rq6u/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACMAAAAAAAAAAAAAAAAAAAAAAAAACMAAADxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/6ysrP/7+/v/LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAPEAAAAjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACLAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zIyMv99fX3/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAIsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVAAAA3wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA3wAAABUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATwAAAP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD9AAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACuAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAK4AAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOAAAAuAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAuAAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADwAAAK0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAACtAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAACKAAAA/gAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/gAAAIoAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUgAAANwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAADcAAAAUQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYAAACLAAAA7wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA7wAAAIsAAAAWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJgAAAIsAAADhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAOEAAACLAAAAJQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATAAAAVQAAAKAAAADYAAAA+AAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA+AAAANgAAACgAAAAVgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJAAAAKAAAAEsAAABqAAAAswAAAPcAAAD4AAAAswAAAGoAAABMAAAAKAAAAAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJUE5HDQoaCgAAAA1JSERSAAABAAAAAQAIBgAAAFxyqGYAAAABc1JHQgCuzhzpAAAAOGVYSWZNTQAqAAAACAABh2kABAAAAAEAAAAaAAAAAAACoAIABAAAAAEAAAEAoAMABAAAAAEAAAEAAAAAAEQiOHMAAB4DSURBVHgB7V0JsBXVmW6UXQg8FhFRVkGW6MRoJAnKToyOMTMqiHGwwmSqBsSNqUmhiAiYRJNMMpOqKM4UKNSYMtbEmdEYGUcJi8FxX0DlsYjghoobEngIyJvvu9CPvo97b/e9vZ3T/f1V33t9u0+f5Tvn//v0+c853cKRZIGBrihEZ6AT0BE4CegD9AROALoBXYDuQAugDmgDeKURP3YADcBO4DPgPWA78DbwLvAmsAvgdeIT4CAgsZQBNgaJHQxQganQvYDBQP/DoFLTAFD5aQRaA3HKXkRO4+AagHdwvA3YDLwB0FjQaNCYSAxnQAbAzAo6GdniE3wI8DVgIHAiQAPAJ7zJsgeZc3sN63D8KvAywN4DjYXEIAZkANKvjJbIAhV8KDAS+AowAOCTPkvyFgqzBXgeWAOsBzYBBwBJSgzIAKRDfD8kS0UfBwwHTgHYfc+TfIrC8rXhGeB/AfYWaCAkCTIgA5AM2Xwvp8KPAC4ATgN6AJIjDLyPw1eAZcAK4DWA4w2SGBmQAYiP3LaI+gzgO8B5AJW+FSDxZ+BzBKkHHgZoEF4AGgBJxAzIAERMKKI7E7gEOB+g0h8LSGpngGMEHEh8CHgQoDGgy1IiBoxhgO/004GVAEfB2UCF6DlgL2AlMAPoDUjEQGoM8L1+LLAIoNtLCp8sB3QpLgbOAehJkYiBRBjogVSmAk8C+wEpfrocsA5WA+yBdQUkYiAWBuiqmw3QVSWlN5ODjaib+QBfySRiIBIGOEHn18AHgBTfDg74SvYzYBggEQM1MTAEd1HxPwak+HZy8NHhOvwy/kvEQCAGpPh2KnslI+0agkGBWoAC5ZKBXij1zwE98bNnAFzjwFeD2wGNEYAEySEGOuDfLGAb4DYU/c82FzQEM4E6QJJjBi5G2Z8DpPD55IB1PxHQPAKQkCfhFN0HgIOAlF8c3I92cDogyTgDHVG+mwEOCknxxYG3DXB7M87z0GsBSMiijEehngK8la5j8dG8DTyNNjImiwqQ1zJ1Q8H/BeDa8uaVrd/ipFQb+DPaCr0F6g2ABJuFO+68CJSqZJ0TL35tgL0BLviSWMZAe+R3LrAb8KtkXRdHldoAewNsS9zgRWIBA5z//ShQqVJ1TfxU2wYeQ5vS2gLDDcBk5O9dKb+MX0xt4D3E+z1AYhgDnM33S4DbR1Vr2RVenFXTBtjG2Nb4mikxgIEByAO7Z9VUosKKr7BtYDnaXH8D2n+us8BR/s1A2MrU/eKwljbwOtqe1V4Cm3esnQby7wG4RZdEDKTBAOcJ/DWwE+C6AuvERgPQBizfBtwK8FgiBtJkgG3wPIBuQn7y7AtAEhMDtLj3ArV013SPeIu7Dfw72mbePvEWk6ofHe1JOLUCiLsSFb84DtMGuEMx26okQga4lROnZYapGN0r/pJqA2yr3EVaEgEDwxHHJiCpylM64jqKNrABbfbrEbT/XEcxGqXnF2CiqBDFIR6TbgNsu2zDxorJXoBRYO23QE9j2VPGxEBlBrgBzbcBugi556RxYqoBcJX/BOMYU4bEQHUMcJq6sUbARANA5b8P0JO/uoam0OYyQCPAuQLG9QRMMwCjQZKUHyRIMscAXwdoBJ4HtgJGSAsjcnEoExzt/0/gRIPypKyIgagZ4HJ1bkdPV2HqYooBGAAmlgEDU2dEGRAD8TPARUTnA3RvpyrHpJr6ocQ5a4rdfim/AZWhLCTCAB94vwFSnzGYdg/gSyDhD8A5gEQM5I2BVSjwdwGuJkxF0hwE5Oqpu4ALUym5EhUD6TPQF1k4GXgEOAAkLmkagAUo7YzES6wExYBZDJyO7PBhyF2tEpe0DMA0lPTHgAljEImTrgTFQDMGuGbgA4DzBBKVNMYAxqKE/w3QLyoRA2LgEAP8/gDHA/6YJCFJG4B+hwvYN8lCKi0xYAkDbyCfEwC6CRORJLvgx6FEi4G+iZRMiYgB+xjgA/LfAOpKIpLkGMBPUaLLEymVEhED9jJAI9AOeDSJIiRlAKj4twNJ9jiS4E9piIE4GPgaIt0AvBpH5N44W3h/xHQ8FPEuB7S0NyaCFW0mGdiOUo0HXouzdHH3ANiV4S6+p8VZCMUtBjLIAL1kpwIPAPvjKl/cBuAmZHxqXJlXvGIg4wz0R/n2AaviKmecrwCjkemHgcRGNOMiSfGKgRQZ2IO0LwBiMQJxGYBOyPDjwFmARAyIgXAMvIzbOYHu43DRHH13XK8A85HUpKOT0xkxIAZqYIAD6BxP+58a7q14Sxw9gNFI8fcA90GTiAExEA0DnyMavgpEOlU4agPA9f10+anrDxIkYiBiBp5BfHwV2B1VvFG/AvwDMjYlqswpHjEgBooY6IVfDcDqorMhfkTZA+C65pUAv+ArEQNiIB4GPkG03Dp/XRTRHxNFJIijNTAXkPJHRGhS0XTo0MHp3bt3UskpnfAMUMcWAJHobiSRIDPc1usSQGIZA1OnTnWWLFnitGrVyrKc5zq7F6H03DvACOHA3/NAo2AXB8cff3zjli1bGimTJ09W/dnVhqlzRnjarpPi26X4bn3NmzevoPz8s379+sa6ujoZAbuMwA9Rl6lKX6TOVUtqOJZxMHjw4MYdO3Y0GQAezJ49W/VoVz2+Cd3rCaQmtyFlNRrLOGjRokXj3XffXaT8/PHhhx829u/fX/VpV33+U1raPwgJvy8DYJ8BHDt2bOO+ffuOMgA8sWjRIhkAuwzAp9BB7rmRuNyBFNVYLOOgbdu2jStWrCip/Dy5d+/exhEjRqhe7arXO5PW/mFI8GMZAPsM4JQpU8oqv3th+fLljXALygjYYwQ4OSjRXoCe/vY0jiZFpttvw4YNrp5X/C+3oHXGPbFegJ7+Fio/e2tet19F7cfF+vp6uQXtqmf2AoYAVUkti4HoexxXVSoKnDoDcPs5CxcudNq3bx8oL926dXM+++wz54knnggUXoFSZ4DfF+TankfizElfRK6Rf7ueDI3l3H5+vQC5Ba17DfgI+tk/TgMwH5E3vVPq2A4uxo0b17h//34/fS95XW5BO+rYo4uz4zIAXRDxRk9CMgQWGEM/t19JrfeclFvQOgOwBTraPQ4jwE96S+kt4yCI28+j7yUP5Ra0rt1/P2oD0AYR/kkGwK6GUI3br6Tme07KLWhV3f8fdJU6G5mcg5j4gQL1ACzioBq3n0fXSx7KLWhV2+cGomODaH9QNyAH/84MEqHCmMFAtW4/v1zTLbhr1y65Bf2IMuM69fog8GAU2eFGhNsBPf0t4aBWt1/JR7/npNyCVukA3fV9ojAAV0n5rar4Rrr9yq328+hzTYdyC1rVFjhwH0q4UdwqQE9/SzgI6/bzswpyC1qlC9TdlmEsAN/7d8sA2FPpV155pZ8Oh74ut6A17WEPdDfU2N2PpPzWVHYj3X4bN24MreBBIrj88svVK7SjV/gT6HBNwsUFLwGqaEs4iNLt52cE5Ba0Ri9ehA63q8UCjMBNe2UA7KjoUpt8+ilx2Os33XSTHg7mPxw4J+AbtRiAH0v57VB+uv3uueeesPpc9f1yC9rRPqDHt1VrANhlUPfffOteeALH6fbzswqLFy9WL8D8dvIC9Jmv9IHlDITkCKIq13AO4nb7+RkAuQWt0BG+yp9dSvvLfRuQ84hrGjgolYjOxcfAxIkTndGjR8eXgE/Mbdq0cRYsWKBvC/rwlPJlLgzimF4goVF4HNDT33AOknT7+fUE5BY0Xl8eg06Xe+AXGYa++MV5xDIAhnOQpNvPzwDQLdi5c2e1GXPbzAfQaep2kZRaDTgKIX5QFEo/jGOAq/3uuuuuwJt8xl0ArhbcvXu3s3r16riTUvy1MXAcbuPU4Hrv7aW6BBO8AXRsHgNw+zmzZs1yunbtalTmrr/+egffFjQqT8pMEQPji36V+NEa554D1JUzmIM03X5+rwJyCxqtO9Rt6nhZGYwr/MCADIChHKTt9vMzAHILGq071G3qeJM0fwXg98U6N13VgXEMTJo0KVW3nx8hcgv6MZTqdeo2v+zVJM0NwDebrujAOAa6d+/uzJkzx7h8Nc8QPj/uXHrppc1P67cZDJzrzYbXAPD4LO9FHZvFwIwZM5yBAwealakyubnlllucurq6Mld1OkUGvoK0m7x/XgNwAi4MSDFjSroCA3T7XX311RVCmHXp1FNPda66irvJSQxjgE+QnqXyxCWDBwANABrGQVqr/fwG/Pyua7WgkbpEHT/HNQDeHkBR18ANoP/pM8B36iuuuCL9jFSZA85TwJ4BVd6l4DEzwO4/B/sL4jUATSfdi/qfPgNw+xUG/lq1apV+ZmrIAQ3XiBGB16HUkIJuqYGBprE+1wDw/2k1RKRbYmYg7dV+YYsnt2BYBmO5n+MALbwx82uimwG9/xvEgUmr/fze9/2ua7WgUbrFr3zza99NywPpASg5MshAknQYsMnt58cQ3YJYLegXTNeTYYD6TjQZgJNx3J4nJGYwQLcfDUBWhG5Bm9yYWeG9TDk64nwvXnPHAPqXCajTKTBg6mq/sFRcd911Wi0YlsTo7h/CqFwDoAlA0REbOqaxY+10+/kVnHsGyC3ox1Ji1/sxJdcA9EksWSVUkQHb3X4VC4eLcgv6MZTY9cJDnwaAHw8svA8klrQSKsuA6av9ymY84AW5BQMSFX8wev6OpQHoBGjVRvyE+6YAt58Vq/18C+ITgK84Wi3oQ1L8l7mdVGfXANAISFJmgItnbFntF5aquXPnyi0YlsRw99MnKwMQjsPo7rZttV/YkmfNzRmWjxTu50O/E3sA9AnywwGSlBjIqtvPj86ZM2fKLehHUnzXuTdgRxqA3vGloZiDMJBVt59f2bVa0I+h2K+fRAOgKcCx81w+gay7/cqX/NAVuQX9GIr1eh8aAE4DlqTEQNbdfn60yi3ox1Cs13tyc4C/BbQXQKw8l46cm3wuXbrUuA98lM5tfGf79evnrF+/3nnllVfiS0Qxl2LgTb0ClKIloXNcHJMXt58fpXIL+jEUy/Vu7AFcCxSWBsaShCItyQDdYAsXLjTm234lM5ngSX1bMEGyjyS1kz0ALdI+QkgiR67bj41ecoQBrRY8wkVCR91pANollJiSOcxAXt1+fg1AqwX9GIr8+jHcF+wLgIZAkgADdPstW7bM6M97JUBD2STwbUFn/Pjxzpo1a8qG0YXIGPicii/lj4xP/4hs3+TTv4ThQtBALliwwLF1F+RwpU/87jYcBJyXeLI5TVBuv2AV37dvX6e+vl5uwWB0hQqlp38o+qq7mYNccvv5c8ZB0nnz5unbgv5UhQ6hHkBoCoNFMGzYMOfOO+902rXTmGsQxrhOoKGhwVm1alWQ4ApTIwPsAXxe4726LSADfKLdcMMNTpcuha3YA96lYNdee616TPE2g4M0AJ/Em4Zi56j2ZZddJiKqZIAGc86cOVXepeBVMPAhDcDBKm5Q0CoZYJf/5ptv1qh2lby5wWk4R40a5f7U/2gZaKAB2BFtnIrNy8DkyZOdc88913tKx1UwwNWC8+fPd1q35v4VkogZ+JSDgOyb9o04YkUHBnr06OEsWbJE7/4hW0OfPn2cjRs3OmvXrg0Zk25vxsBm9gA+anZSPyNigINYAwYMiCi2/EbDQVS+RtXVafPqiFvBe+wBsH96dsQR5z66oUOHyu0XYSuQWzBCMo9EtZw9gO1HfusoCgb4xLrxxhvV9Y+CTE8c11xzjdyCHj4iOHyLBmBbBBEpCg8DEyZMcDj4J4mWAfYC5BaMlNPtNABvRxplziOj248fwGzZkl9ck0TNgNyCkTJa2BJsF6LcF2m0OY6MDXTkyJE5ZiDeosstGBm/nAG8iz2AnYcRWcx5jYhuP3VR4699GljNrAzNc0HvaQA+PYzQMeY9Ag5Sye0XfyvgICsNrdyCobguMgCaCxCKS+yrDrff9OnTQ8ai24MyMGjQIIfLqyU1M8A1QIVNQbklmKYD18yj48jtF4K8ELdqW/UQ5DnOO7j7AF8BKK8f+qe/tTDA1X5y+9XCXLh79G3BUPwV3P+uAXgjVFQ5vpluP76Pyu2XTiOg4ZXXpSbuCw991wCsrykK3VQYjVYDTK8huN8W1GrBqutgC+9wDQDfBzgfQFIFA3L7VUFWjEHlFqya3D244y3e5RqA93BMSKpgQG6/KsiKMajcglWTy/U/BX13DQBdAuwFSAIyQLfftGnTAoZWsLgZoFuQy68lgRjg9P+C6981AI04sSnQrQpUYICbfHIUWmIOA1otGLgu1iFkYStA1wDwzucC357zgFrtZ2YDkFswcL285ob0GgCe5KQgSQUGtMlnBXIMuCS3oG8lUMdfckN5DcBWnHzfvaD/pRngIhRt8lmaGxPOyi3oWwscAGzaA8RrAHhB4wAV+JPbrwI5Bl2iW3DSpEkG5ciorHACUJPHz2sAiroGRmXZkMzI7WdIRfhkg25BbSJaliSO9TV9C4SbgnrlOPyQ6fQycvhYm3yWIMXgUxwQ3Lt3r7Ny5UqDc5lK1n6BVJtm/np7AMzNqwD3B5B4GNBqPw8ZFh1qteBRlUXdbvIA8GpzA8D5wXxHkHgY0Lf9PGRYdCi34FGVRd0urAFwrzQ3ANwb8Cn3ov47hc95c7Vfq1atRIeFDMgtWFRp1O2i/T+bGwCGfrzolpz/kNvP7gYgt2BR/T1W9As/mg8C8vpe4AqAA4K5Frr9li5dqg98WN4K9G3BQgV+gL8/AorG+Er1AN5EoJcLt+T8j9x+2WgAcgsW6pHz/6nbRVKqB8CFQd2A84pC5uwH3X533HGH0759+5yVPJvFlVvQuQM1+2Tz2i3VA2CYNQA/HJBLcd1+bDSS7DBAt+App5ySnQIFL0kDgq4oFbycAeCH2Iv8haVuzuo5uf2yWbM06JwhmEPZiDLXlyp3OQPAgcBHS92Q9XPuJp9y+2WzpnP66bY/oDbZCzhKyhkABnwIKPIZHnV3Bk/ktIFksCZLFymHbkG+yj9Smo3SbkA3LLcMugg4wT2R9f9y+2W9hg+Vj27BTZs2OWvX8k0388Lp/bcCB0qVtFIPgF2GZaVuyuo5uf2yWrPF5eIgLz/hnpNvCz6M0vOVvqSUcgN6A3LSwBQg8/Ng5fbzVnv2j7t16+Y0NDQ4q1atynJh96BwswDu9VFSWpQ8e+RkSxwuB0YeOZW9I35U4r777nMuvvji7BVOJSrLAA3A8OHDnXXrOEcmk7IapRoP7C9XOip4JeF7w31Apg0Au4JsBPX19U5jI+dBSfLAwLHHHpv1ad73ox7LKj/r2K8HwDB9gGeA4/lDIgbEgBUMcNuvs4CK3/uoNAjolpIbCNKPKBEDYsAeBjiAX1H5WZQgBoDh7gVyNyeABZeIAQsZYLf/7iD5DmoAuDbghSARKowYEAOpM8BX9meD5CKoAeBson8NEqHCiAExkDoD7LFTZ30lyCCgGwkHAbmlUD/3hP6LATFgHAObkKOvAx8HyVnQHgDj4o4ii4JEqjBiQAykxgDd9oGUnzmspgfA8P0Bvlt04Q+JGBADRjHAh/RwYGvQXFXTA2Cc3FL4t0EjVzgxIAYSZWApUttaTYrV9gAY9xCAWwt15g+JGBADRjDwCXJxLsDVf4Gl2h4AI14P8D1DIgbEgDkMUCerUn5mvZYeAO8bCnBugHoBZEMiBtJloKanP7NcSw+A970GqBdAJiRiIH0Ganr6M9u19gB4L3sBHAvoxB8SMSAGUmGAI/989+fGn1VLrT0AJsRegOYFVE25bhADkTLAOf81KT9zEaYHwPt7Ak8DJ/OHRAyIgUQZ4JLfbwBba03Vb0swv3j/jADcVGSCX0BdFwNiIHIG5iDGR8PEGrYHwLQ7AKuAr/KHRAyIgUQY4OrcMcBnYVIL2wNg2twnYAcwEYjCoCAaiRgQAz4MXI3rL/mE8b0cZhDQG/mD+PGQ94SOxYAYiI2B3yFmbvcdWqJ8Yp+G3PBVoC50rhSBGBAD5RjgpJ/RwNpyAao5H8UrgJse/ZGtgLHuCf0XA2IgcgZuRYwPRBVrlD0A5uk44I/A2fwhEQNiIFIGnkNs44BQA3/eHEXZA2C83IyQS4YnA37fHEAQiRgQAwEZoMt9KrAhYPhAwaI2AEz0DaA7wI0JJGJADETDwD8jmshn3kb9CuAWtQsOVgIcGJSIATEQjgF2/ccDO8NFc/TdUbkBm8fMPcmuA/Y0v6DfYkAMVMXAboT+IRC58jMXcbwCMF7KVoDjAGMAiRgQA7Ux8BPctrS2W/3viusVwE25PQ44SYjdF4kYEAPVMUCP2oVAQ3W3BQ8dtwFgTrhvwOMAVw5KxIAYCMYAV/rR5cdl97FJnK8Abqa5TuBt4K+AuMYc3LT0XwxkgYEDKMQ0YEXchUnCALAMrwKcIsy1yxIxIAYqM/ArXP5F5SDRXE3iFcDNKWcJcsGQpgq7jOi/GDiaAT71vwNw9D92SdIAsDADgMeAfvwhEQNioIiBrfjFByQn0yUiSb+Tv45S/R3AaY0SMSAGjjCwC4c/ABJTfiad1BgA03KFBeSSxguApHsgbh70XwyYxMAXyMxM4D+SzlQaBoBl5NTGjsA3+UMiBnLOwE9RfiJxScsAsKBPABwLOJ0/JGIgpwzci3L/I0DXX+KSdhe8E0rMmYKjEi+5EhQD6TPwJ2ThL4HI1vdXW6SkBwGb528nTvwN8GzzC/otBjLOANv85UBqyk9+0+4BMA+UgcAyYAB/SMRAxhnYhPKdD9Arlqqk3QNwC09CrgDedU/ovxjIKANs41OA1JWf/KY5CMj0vfIOfvBjB98GOngv6FgMZIQBLvD5HrDGlPKYZADIyVbgeUBGACRIMsUAlZ/v/CtNKpVpBoDcbAU4T0BGACRIMsEAlZ8b5a4yrTQmGgBytA1QT8C01qL81MKA++Q3TvlZGFMNAPO2FaAR+BbAWYMSMWAbAxzw4zv/SlMzbrIBIGdbgSeBkUBXQCIGbGFgMzLKbj8n+0hCMnAK7n8aaBTEgQVtgG11ECCJkIGTENdqQEZAHJjcBlagjbKtWiGmvwJ4SeSUyf8CSK4WEHmZ0bEpDPwGGfk+wA/lWiE2GQASuhfglGHOYOT+gqbMZERWJDlmgOv5fwlwTb82u0moIUxHOlxMZHJ3UHnLfv1Q4acl1OaVTDMGxuE351RL0cRBGm2AbW98szapnwkz0B/pLQfSaABKM7+8P442NyDhth55craNAZQigPsL/g7gZ8jOBjQuABIksTHA9/1fAX8PvB9bKoq4Jga4pJhTL/VkFgdxtAHO7OPkHonBDAxD3h4D4mgAijO/vD6KNsW2JbGAgbbI41yAI7RSWnEQpg3wCz1sS3zFlFjGwFjkV1OIZQBqNQAvof3Q0ySxmIE65P12QL0BGYKghoATzjjQ1w2QZISBMSiHegMyAn5G4Cm0E/n2M6L0zYvB3sBsgK5Dv4ag6/ni6CO0iZsB7T0BErIuXEx0PyAlFwcH0Q4eAE4DJDlioCXKOhHg/oMyBPnkgHV/CSDJMQN8LZgJbAdkCPLBAfecnAV0ACRioMBAP/ylt0CGILtG4GPU78+BXoBEDJRkgFs5/RrgoJB6BNnggIrPOh0KSMRAIAa+jFAyBHYbACl+oKauQJUY4PzvnwF6NbDHGHyA+tITv1Kr1rWqGeAYwXxgI6BXAzM52IK64TwP7iItEQOxMMDvE1wFPAHsB2QM0uWAdcBvR0wFegASMZAIA5xHcA6wGOCXjWUIkuWAr2SLAC74ag1IxEBqDPRGyjOAlUADIGMQDwd7DnM8Hf/5SiYJyUCLkPfr9mIGuB3ZGcB3gYsADiCypyCpnQFuwbUO4HbwnLL7PCCJiAEZgIiILBFNO5z7KnA+cCEwGGgDSPwZ4Hs9lZ678PweeBHgEl1JxAzIAERMaJno2uI8J6GMAWgQOMdAA1YgwSPv45hK/wiwBuBmHPsASYwMyADESG6FqPvjGleffQvgTsZ0W3UG8iSforCbgaeB5QAV/g1AkiADMgAJkl0mKY4RDASGACOAMwEaiJOBLAk9Ja8DVPTVwGvAJuAAIEmJARmAlIj3SbYXrtOz8BcABxLZWzgJ6Am0B0yWXcgcXXTvAlTwZ4H1wDbgLUBiEAMyAAZVhk9WuuM6DQANQT+Arw19ABoLLmnuBHwJ4HhDnML3cnbfdwIfATsAzsAj6gE+6WkAOA9fYjgDMgCGV1CA7NH16BoAGoGOAHsPJwJur+EEHNM48Ho7gMaked1/jnOfAJzDQKWmAn8IvAdQobcBbwN8wlP5aQRoACQWM/D/QN+5DmrsiuEAAAAASUVORK5CYII=","base64");function x(){return new v.NextResponse(w,{headers:{"Content-Type":"image/x-icon","Cache-Control":"public, max-age=0, must-revalidate"}})}let y="force-static",z=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/favicon.ico/route",pathname:"/favicon.ico",filename:"favicon",bundlePath:"app/favicon.ico/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2FUsers%2FWorking%2Frouter4%2Fapp%2Fsrc%2Fapp%2Ffavicon.ico&isDynamicRouteExtension=0!?__next_metadata_route__",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:A,workUnitAsyncStorage:B,serverHooks:C}=z;function D(){return(0,g.patchFetch)({workAsyncStorage:A,workUnitAsyncStorage:B})}async function E(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),z.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/favicon.ico/route";"/index"===d&&(d="/");let e=await z.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:y,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!y){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||z.isDev||y||(K="/index"===(K=E)?"/":K);let L=!0===z.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await z.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>z.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>z.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await z.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await z.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),y&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await z.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=16634));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/favicon.ico/route.js.nft.json b/cli/app/.next/server/app/favicon.ico/route.js.nft.json new file mode 100644 index 00000000000..7e1674c463a --- /dev/null +++ b/cli/app/.next/server/app/favicon.ico/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../../package.json","../../../package.json","../../chunks/6799.js","../../chunks/7773.js","../../webpack-runtime.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/index.html b/cli/app/.next/server/app/index.html new file mode 100644 index 00000000000..f81556d4c48 --- /dev/null +++ b/cli/app/.next/server/app/index.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management \ No newline at end of file diff --git a/cli/app/.next/server/app/index.meta b/cli/app/.next/server/app/index.meta new file mode 100644 index 00000000000..10ea3a05462 --- /dev/null +++ b/cli/app/.next/server/app/index.meta @@ -0,0 +1,16 @@ +{ + "status": 307, + "headers": { + "location": "/dashboard", + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/page,_N_T_/,_N_T_/index" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/__PAGE__", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/index.rsc b/cli/app/.next/server/app/index.rsc new file mode 100644 index 00000000000..4086c57716b --- /dev/null +++ b/cli/app/.next/server/app/index.rsc @@ -0,0 +1,20 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +7:I[31872,[],"OutletBoundary"] +8:"$Sreact.suspense" +a:I[31872,[],"ViewportBoundary"] +c:I[31872,[],"MetadataBoundary"] +e:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":["$L6",null,["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +6:E{"digest":"NEXT_REDIRECT;replace;/dashboard;307;"} +b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +f:I[12569,[],"IconMark"] +9:null +d:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$Lf","5",{}]] diff --git a/cli/app/.next/server/app/index.segments/__PAGE__.segment.rsc b/cli/app/.next/server/app/index.segments/__PAGE__.segment.rsc new file mode 100644 index 00000000000..13d82c29e95 --- /dev/null +++ b/cli/app/.next/server/app/index.segments/__PAGE__.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +3:I[31872,[],"OutletBoundary"] +4:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":["$L2",null,["$","$L3",null,{"children":["$","$4",null,{"name":"Next.MetadataOutlet","children":"$@5"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +5:null +2:E{"digest":"NEXT_REDIRECT;replace;/dashboard;307;"} diff --git a/cli/app/.next/server/app/index.segments/_full.segment.rsc b/cli/app/.next/server/app/index.segments/_full.segment.rsc new file mode 100644 index 00000000000..4086c57716b --- /dev/null +++ b/cli/app/.next/server/app/index.segments/_full.segment.rsc @@ -0,0 +1,20 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +7:I[31872,[],"OutletBoundary"] +8:"$Sreact.suspense" +a:I[31872,[],"ViewportBoundary"] +c:I[31872,[],"MetadataBoundary"] +e:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["",""],"q":"","i":false,"f":[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":["$L6",null,["$","$L7",null,{"children":["$","$8",null,{"name":"Next.MetadataOutlet","children":"$@9"}]}]]}],{},null,false,null]},null,false,null],["$","$1","h",{"children":[null,["$","$La",null,{"children":"$Lb"}],["$","div",null,{"hidden":true,"children":["$","$Lc",null,{"children":["$","$8",null,{"name":"Next.Metadata","children":"$Ld"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$e",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +6:E{"digest":"NEXT_REDIRECT;replace;/dashboard;307;"} +b:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +f:I[12569,[],"IconMark"] +9:null +d:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$Lf","5",{}]] diff --git a/cli/app/.next/server/app/index.segments/_head.segment.rsc b/cli/app/.next/server/app/index.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/index.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/index.segments/_index.segment.rsc b/cli/app/.next/server/app/index.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/index.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/index.segments/_tree.segment.rsc b/cli/app/.next/server/app/index.segments/_tree.segment.rsc new file mode 100644 index 00000000000..087f0b3f23d --- /dev/null +++ b/cli/app/.next/server/app/index.segments/_tree.segment.rsc @@ -0,0 +1,5 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/landing.html b/cli/app/.next/server/app/landing.html new file mode 100644 index 00000000000..bc318833a4b --- /dev/null +++ b/cli/app/.next/server/app/landing.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management
v1.0 is now live

One Endpoint for
All AI Providers

AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools.

codeView on GitHub

Get Started in 30 Seconds

Install 9Router, configure your providers via web dashboard, and start routing AI requests.

1

Install 9Router

Run npx command to start the server instantly

2

Open Dashboard

Configure providers and API keys via web interface

3

Route Requests

Point your CLI tools to http://localhost:20128

terminal
$npx 9routerCopy
> Starting 9Router...
> Server running on http://localhost:20128
> Dashboard: http://localhost:20128/dashboard
> Ready to route! ✓
📝 Configure providers in dashboard or use environment variables
Data Location:
macOS/Linux: ~/.9router/db.json
Windows: %APPDATA%/9router/db.json

How 9Router Works

Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job.

terminal

1. CLI & SDKs

Your requests start from your favorite tools or our unified SDK. Just change the base URL.

hub

2. 9Router Hub

Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost.

3. AI Providers

The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.

Powerful Features

Everything you need to manage your AI infrastructure in one place, built for scale.

link

Unified Endpoint

Access all providers via a single standard API URL.

bolt

Easy Setup

Get up and running in minutes with npx command.

shield_with_heart

Model Fallback

Automatically switch providers on failure or high latency.

monitoring

Usage Tracking

Detailed analytics and cost monitoring across all models.

key

OAuth & API Keys

Securely manage credentials in one vault.

cloud_sync

Cloud Sync

Sync your configurations across devices instantly.

terminal

CLI Support

Works with Claude Code, Codex, Cline, Cursor, and more.

dashboard

Dashboard

Visual dashboard for real-time traffic analysis.

Ready to Simplify Your AI Infrastructure?

Join developers who are streamlining their AI integrations with 9Router. Open source and free to start.

\ No newline at end of file diff --git a/cli/app/.next/server/app/landing.meta b/cli/app/.next/server/app/landing.meta new file mode 100644 index 00000000000..8a4def20cce --- /dev/null +++ b/cli/app/.next/server/app/landing.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/landing/layout,_N_T_/landing/page,_N_T_/landing" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/landing/__PAGE__", + "/landing", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/landing.rsc b/cli/app/.next/server/app/landing.rsc new file mode 100644 index 00000000000..f9ed6952976 --- /dev/null +++ b/cli/app/.next/server/app/landing.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[16435,["8038","static/chunks/8038-368cfbdf9080110b.js","7018","static/chunks/app/landing/page-297a1c9230927b6f.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","landing"],"q":"","i":false,"f":[[["",{"children":["landing",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/landing.segments/_full.segment.rsc b/cli/app/.next/server/app/landing.segments/_full.segment.rsc new file mode 100644 index 00000000000..f9ed6952976 --- /dev/null +++ b/cli/app/.next/server/app/landing.segments/_full.segment.rsc @@ -0,0 +1,25 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[16435,["8038","static/chunks/8038-368cfbdf9080110b.js","7018","static/chunks/app/landing/page-297a1c9230927b6f.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","landing"],"q":"","i":false,"f":[[["",{"children":["landing",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],null,["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/landing.segments/_head.segment.rsc b/cli/app/.next/server/app/landing.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/landing.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/landing.segments/_index.segment.rsc b/cli/app/.next/server/app/landing.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/landing.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/landing.segments/_tree.segment.rsc b/cli/app/.next/server/app/landing.segments/_tree.segment.rsc new file mode 100644 index 00000000000..541bdb9db12 --- /dev/null +++ b/cli/app/.next/server/app/landing.segments/_tree.segment.rsc @@ -0,0 +1,5 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"landing","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/landing.segments/landing.segment.rsc b/cli/app/.next/server/app/landing.segments/landing.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/landing.segments/landing.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc b/cli/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc new file mode 100644 index 00000000000..26d8a0a2b77 --- /dev/null +++ b/cli/app/.next/server/app/landing.segments/landing/__PAGE__.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[16435,["8038","static/chunks/8038-368cfbdf9080110b.js","7018","static/chunks/app/landing/page-297a1c9230927b6f.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],null,["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/landing/page.js b/cli/app/.next/server/app/landing/page.js new file mode 100644 index 00000000000..0c74f145ad0 --- /dev/null +++ b/cli/app/.next/server/app/landing/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=7018,a.ids=[7018],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3256:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/landing/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/landing/page.js","default")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},6883:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["landing",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,3256)),"/Users/Working/router4/app/src/app/landing/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/landing/page",pathname:"/landing",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/landing/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14415:(a,b,c)=>{Promise.resolve().then(c.bind(c,65227))},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},41183:(a,b,c)=>{a.exports=c(53555)()},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},51455:a=>{"use strict";a.exports=require("node:fs/promises")},53555:(a,b,c)=>{"use strict";var d=c(84928);function e(){}function f(){}f.resetWarningCache=e,a.exports=function(){function a(a,b,c,e,f,g){if(g!==d){var h=Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw h.name="Invariant Violation",h}}function b(){return a}a.isRequired=a;var c={array:a,bigint:a,bool:a,func:a,number:a,object:a,string:a,symbol:a,any:a,arrayOf:b,element:a,elementType:a,instanceOf:b,node:a,objectOf:b,oneOf:b,oneOfType:b,shape:b,exact:b,checkPropTypes:f,resetWarningCache:e};return c.PropTypes=c,c}},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63277:(a,b,c)=>{"use strict";c(84225);var d=c(53830),e=d&&"object"==typeof d&&"default"in d?d:{default:d},f="u">typeof process&&process.env&&!0,g=function(a){return"[object String]"===Object.prototype.toString.call(a)},h=function(){function a(a){var b=void 0===a?{}:a,c=b.name,d=void 0===c?"stylesheet":c,e=b.optimizeForSpeed,h=void 0===e?f:e;i(g(d),"`name` must be a string"),this._name=d,this._deletedRulePlaceholder="#"+d+"-deleted-rule____{}",i("boolean"==typeof h,"`optimizeForSpeed` must be a boolean"),this._optimizeForSpeed=h,this._serverSheet=void 0,this._tags=[],this._injected=!1,this._rulesCount=0,this._nonce=null}var b,c=a.prototype;return c.setOptimizeForSpeed=function(a){i("boolean"==typeof a,"`setOptimizeForSpeed` accepts a boolean"),i(0===this._rulesCount,"optimizeForSpeed cannot be when rules have already been inserted"),this.flush(),this._optimizeForSpeed=a,this.inject()},c.isOptimizeForSpeed=function(){return this._optimizeForSpeed},c.inject=function(){var a=this;i(!this._injected,"sheet already injected"),this._injected=!0,this._serverSheet={cssRules:[],insertRule:function(b,c){return"number"==typeof c?a._serverSheet.cssRules[c]={cssText:b}:a._serverSheet.cssRules.push({cssText:b}),c},deleteRule:function(b){a._serverSheet.cssRules[b]=null}}},c.getSheetForTag=function(a){if(a.sheet)return a.sheet;for(var b=0;b>>0},k={};function l(a,b){if(!b)return"jsx-"+a;var c=String(b),d=a+c;return k[d]||(k[d]="jsx-"+j(a+"-"+c)),k[d]}function m(a,b){var c=a+(b=b.replace(/\/style/gi,"\\/style"));return k[c]||(k[c]=b.replace(/__jsx-style-dynamic-selector/g,a)),k[c]}var n=function(){function a(a){var b=void 0===a?{}:a,c=b.styleSheet,d=void 0===c?null:c,e=b.optimizeForSpeed,f=void 0!==e&&e;this._sheet=d||new h({name:"styled-jsx",optimizeForSpeed:f}),this._sheet.inject(),d&&"boolean"==typeof f&&(this._sheet.setOptimizeForSpeed(f),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed()),this._fromServer=void 0,this._indices={},this._instancesCounts={}}var b=a.prototype;return b.add=function(a){var b=this;void 0===this._optimizeForSpeed&&(this._optimizeForSpeed=Array.isArray(a.children),this._sheet.setOptimizeForSpeed(this._optimizeForSpeed),this._optimizeForSpeed=this._sheet.isOptimizeForSpeed());var c=this.getIdAndRules(a),d=c.styleId,e=c.rules;if(d in this._instancesCounts){this._instancesCounts[d]+=1;return}var f=e.map(function(a){return b._sheet.insertRule(a)}).filter(function(a){return -1!==a});this._indices[d]=f,this._instancesCounts[d]=1},b.remove=function(a){var b=this,c=this.getIdAndRules(a).styleId;if(function(a,b){if(!a)throw Error("StyleSheetRegistry: "+b+".")}(c in this._instancesCounts,"styleId: `"+c+"` not found"),this._instancesCounts[c]-=1,this._instancesCounts[c]<1){var d=this._fromServer&&this._fromServer[c];d?(d.parentNode.removeChild(d),delete this._fromServer[c]):(this._indices[c].forEach(function(a){return b._sheet.deleteRule(a)}),delete this._indices[c]),delete this._instancesCounts[c]}},b.update=function(a,b){this.add(b),this.remove(a)},b.flush=function(){this._sheet.flush(),this._sheet.inject(),this._fromServer=void 0,this._indices={},this._instancesCounts={}},b.cssRules=function(){var a=this,b=this._fromServer?Object.keys(this._fromServer).map(function(b){return[b,a._fromServer[b]]}):[],c=this._sheet.cssRules();return b.concat(Object.keys(this._indices).map(function(b){return[b,a._indices[b].map(function(a){return c[a].cssText}).join(a._optimizeForSpeed?"":"\n")]}).filter(function(a){return!!a[1]}))},b.styles=function(a){var b,c;return b=this.cssRules(),void 0===(c=a)&&(c={}),b.map(function(a){var b=a[0],d=a[1];return e.default.createElement("style",{id:"__"+b,key:"__"+b,nonce:c.nonce?c.nonce:void 0,dangerouslySetInnerHTML:{__html:d}})})},b.getIdAndRules=function(a){var b=a.children,c=a.dynamic,d=a.id;if(c){var e=l(d,c);return{styleId:e,rules:Array.isArray(b)?b.map(function(a){return m(e,a)}):[m(e,b)]}}return{styleId:l(d),rules:Array.isArray(b)?b:[b]}},b.selectFromServer=function(){return Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')).reduce(function(a,b){return a[b.id.slice(2)]=b,a},{})},a}(),o=d.createContext(null);o.displayName="StyleSheetContext";e.default.useInsertionEffect||e.default.useLayoutEffect;var p=void 0;function q(a){var b=p||d.useContext(o);return b&&b.add(a),null}q.dynamic=function(a){return a.map(function(a){return l(a[0],a[1])}).join(" ")},b.style=q},65227:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>u});var d=c(26835),e=c(78088),f=c.n(e),g=c(28217),h=c(53830);function i(){let[a,b]=(0,h.useState)(!1),c=(0,g.useRouter)();return(0,d.jsxs)("nav",{className:"fixed top-0 z-50 w-full bg-[#181411]/80 backdrop-blur-md border-b border-[#3a2f27]",children:[(0,d.jsxs)("div",{className:"max-w-7xl mx-auto px-6 h-16 flex items-center justify-between",children:[(0,d.jsxs)("button",{type:"button",className:"flex items-center gap-3 cursor-pointer bg-transparent border-none p-0",onClick:()=>c.push("/"),"aria-label":"Navigate to home",children:[(0,d.jsx)("div",{className:"size-8 rounded bg-linear-to-br from-[#f97815] to-orange-700 flex items-center justify-center text-white",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"hub"})}),(0,d.jsx)("h2",{className:"text-white text-xl font-bold tracking-tight",children:"9Router"})]}),(0,d.jsxs)("div",{className:"hidden md:flex items-center gap-8",children:[(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#features",children:"Features"}),(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#how-it-works",children:"How it Works"}),(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Docs"}),(0,d.jsxs)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors flex items-center gap-1",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:["GitHub ",(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"open_in_new"})]})]}),(0,d.jsxs)("div",{className:"flex items-center gap-4",children:[(0,d.jsx)("button",{onClick:()=>c.push("/dashboard"),className:"hidden sm:flex h-9 items-center justify-center rounded-lg px-4 bg-[#f97815] hover:bg-[#e0650a] transition-all text-[#181411] text-sm font-bold shadow-[0_0_15px_rgba(249,120,21,0.4)] hover:shadow-[0_0_20px_rgba(249,120,21,0.6)]",children:"Get Started"}),(0,d.jsx)("button",{className:"md:hidden text-white",onClick:()=>b(!a),children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:a?"close":"menu"})})]})]}),a&&(0,d.jsx)("div",{className:"md:hidden border-t border-[#3a2f27] bg-[#181411]/95 backdrop-blur-md",children:(0,d.jsxs)("div",{className:"flex flex-col gap-4 p-6",children:[(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#features",onClick:()=>b(!1),children:"Features"}),(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"#how-it-works",onClick:()=>b(!1),children:"How it Works"}),(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Docs"}),(0,d.jsx)("a",{className:"text-gray-300 hover:text-white text-sm font-medium transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,d.jsx)("button",{onClick:()=>c.push("/dashboard"),className:"h-9 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-sm font-bold",children:"Get Started"})]})})]})}function j(){return(0,d.jsxs)("section",{className:"relative pt-32 pb-20 px-6 min-h-[90vh] flex flex-col items-center justify-center overflow-hidden",children:[(0,d.jsx)("div",{className:"absolute top-0 left-1/2 -translate-x-1/2 w-[1000px] h-[500px] bg-[#f97815]/10 rounded-full blur-[120px] pointer-events-none"}),(0,d.jsxs)("div",{className:"relative z-10 max-w-4xl w-full text-center flex flex-col items-center gap-8",children:[(0,d.jsxs)("div",{className:"inline-flex items-center gap-2 rounded-full border border-[#3a2f27] bg-[#23180f]/50 px-3 py-1 text-xs font-medium text-[#f97815]",children:[(0,d.jsx)("span",{className:"flex h-2 w-2 rounded-full bg-[#f97815] animate-pulse"}),"v1.0 is now live"]}),(0,d.jsxs)("h1",{className:"text-5xl md:text-7xl font-black leading-[1.1] tracking-tight",children:["One Endpoint for ",(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-[#f97815]",children:"All AI Providers"})]}),(0,d.jsx)("p",{className:"text-lg md:text-xl text-gray-400 max-w-2xl mx-auto font-light",children:"AI endpoint proxy with web dashboard - A JavaScript port of CLIProxyAPI. Works seamlessly with Claude Code, OpenAI Codex, Cline, RooCode, and other CLI tools."}),(0,d.jsxs)("div",{className:"flex flex-wrap items-center justify-center gap-4 w-full",children:[(0,d.jsxs)("button",{className:"h-12 px-8 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-base font-bold transition-all shadow-[0_0_15px_rgba(249,120,21,0.4)] flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined",children:"rocket_launch"}),"Get Started"]}),(0,d.jsxs)("a",{href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",className:"h-12 px-8 rounded-lg border border-[#3a2f27] bg-[#23180f] hover:bg-[#3a2f27] text-white text-base font-bold transition-all flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined",children:"code"}),"View on GitHub"]})]})]})]})}var k=c(66298);let l=[{id:"claude",name:"Claude Code",image:"/providers/claude.png"},{id:"codex",name:"OpenAI Codex",image:"/providers/codex.png"},{id:"cline",name:"Cline",image:"/providers/cline.png"},{id:"cursor",name:"Cursor",image:"/providers/cursor.png"}],m=[{id:"openai",name:"OpenAI",color:"bg-emerald-500",textColor:"text-white"},{id:"anthropic",name:"Anthropic",color:"bg-orange-400",textColor:"text-white"},{id:"gemini",name:"Gemini",color:"bg-blue-500",textColor:"text-white"},{id:"github",name:"GitHub Copilot",color:"bg-gray-700",textColor:"text-white"}];function n(){let[a,b]=(0,h.useState)(0);return(0,d.jsxs)("div",{className:"mt-16 w-full max-w-4xl relative h-[360px] hidden md:flex items-center justify-center animate-[float_6s_ease-in-out_infinite]",children:[(0,d.jsxs)("div",{className:"relative z-20 w-32 h-32 rounded-full bg-[#23180f] border-2 border-[#f97815] shadow-[0_0_40px_rgba(249,120,21,0.3)] flex flex-col items-center justify-center gap-1 group cursor-pointer hover:scale-105 transition-transform duration-500",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-4xl text-[#f97815]",children:"hub"}),(0,d.jsx)("span",{className:"text-xs font-bold text-white tracking-widest uppercase",children:"9Router"}),(0,d.jsx)("div",{className:"absolute inset-0 rounded-full border border-[#f97815]/30 animate-ping opacity-20"})]}),(0,d.jsx)("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 flex flex-col gap-7",children:l.map(a=>(0,d.jsx)("div",{className:"flex items-center gap-3 opacity-70 hover:opacity-100 transition-opacity group",children:(0,d.jsx)("div",{className:"w-16 h-16 rounded-2xl bg-[#23180f] border border-[#3a2f27] flex items-center justify-center overflow-hidden p-2 hover:border-[#f97815]/50 transition-all hover:scale-105",children:(0,d.jsx)(k.A,{src:a.image,alt:a.name,size:48,className:"object-contain rounded-xl max-w-[48px] max-h-[48px]",fallbackText:a.name.slice(0,2).toUpperCase()})})},a.id))}),(0,d.jsxs)("svg",{className:"absolute inset-0 w-full h-full z-10 pointer-events-none stroke-yellow-700",xmlns:"http://www.w3.org/2000/svg",children:[(0,d.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 50 C 250 70, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,d.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 140 C 250 140, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,d.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 210 C 250 210, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"}),(0,d.jsx)("path",{className:"animate-[dash_2s_linear_infinite]",d:"M 60 300 C 250 280, 250 180, 360 180",fill:"none",strokeDasharray:"5,5",strokeWidth:"2"})]}),(0,d.jsxs)("svg",{className:"absolute inset-0 w-full h-full z-10 pointer-events-none",xmlns:"http://www.w3.org/2000/svg",children:[(0,d.jsx)("path",{d:"M 440 180 C 550 180, 550 50, 740 50",fill:"none",stroke:0===a?"#f97815":"rgb(75, 85, 99)",strokeWidth:0===a?"3":"2",className:0===a?"animate-pulse":""}),(0,d.jsx)("path",{d:"M 440 180 C 550 180, 550 130, 740 130",fill:"none",stroke:1===a?"#f97815":"rgb(75, 85, 99)",strokeWidth:1===a?"3":"2",className:1===a?"animate-pulse":""}),(0,d.jsx)("path",{d:"M 440 180 C 550 180, 550 230, 740 230",fill:"none",stroke:2===a?"#f97815":"rgb(75, 85, 99)",strokeWidth:2===a?"3":"2",className:2===a?"animate-pulse":""}),(0,d.jsx)("path",{d:"M 440 180 C 550 180, 550 310, 740 310",fill:"none",stroke:3===a?"#f97815":"rgb(75, 85, 99)",strokeWidth:3===a?"3":"2",className:3===a?"animate-pulse":""})]}),(0,d.jsx)("div",{className:"absolute right-0 top-0 bottom-0 flex flex-col justify-between py-6",children:m.map((b,c)=>(0,d.jsx)("div",{className:`px-4 py-2 rounded-lg ${b.color} ${b.textColor} flex items-center justify-center font-bold text-xs shadow-lg hover:scale-110 transition-all cursor-help min-w-[140px] ${a===c?"ring-4 ring-[#f97815]/50 scale-110":""}`,title:b.name,children:b.name},b.id))}),(0,d.jsx)("div",{className:"md:hidden mt-8 w-full p-4 rounded-lg bg-[#23180f] border border-[#3a2f27]",children:(0,d.jsx)("p",{className:"text-sm text-center text-gray-400",children:"Interactive diagram visible on desktop"})})]})}function o(){return(0,d.jsx)("section",{className:"py-24 border-y border-[#3a2f27] bg-[#23180f]/30",id:"how-it-works",children:(0,d.jsxs)("div",{className:"max-w-7xl mx-auto px-6",children:[(0,d.jsxs)("div",{className:"mb-16",children:[(0,d.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"How 9Router Works"}),(0,d.jsx)("p",{className:"text-gray-400 max-w-xl text-lg",children:"Data flows seamlessly from your application through our intelligent routing layer to the best provider for the job."})]}),(0,d.jsxs)("div",{className:"grid grid-cols-1 md:grid-cols-3 gap-8 relative",children:[(0,d.jsx)("div",{className:"hidden md:block absolute top-12 left-[16%] right-[16%] h-[2px] bg-linear-to-r from-gray-700 via-[#f97815] to-gray-700 -z-10"}),(0,d.jsxs)("div",{className:"flex flex-col gap-6 relative group",children:[(0,d.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#181411] border border-[#3a2f27] flex items-center justify-center shadow-xl group-hover:border-gray-500 transition-colors z-10 mx-auto md:mx-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-4xl text-gray-300",children:"terminal"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-xl font-bold mb-2",children:"1. CLI & SDKs"}),(0,d.jsx)("p",{className:"text-sm text-gray-400",children:"Your requests start from your favorite tools or our unified SDK. Just change the base URL."})]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-6 relative group md:items-center md:text-center",children:[(0,d.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#181411] border-2 border-[#f97815] flex items-center justify-center shadow-[0_0_30px_rgba(249,120,21,0.2)] z-10 mx-auto",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-4xl text-[#f97815] animate-pulse",children:"hub"})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-xl font-bold mb-2 text-[#f97815]",children:"2. 9Router Hub"}),(0,d.jsx)("p",{className:"text-sm text-gray-400",children:"Our engine analyzes the prompt, checks provider health, and routes for lowest latency or cost."})]})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-6 relative group md:items-end md:text-right",children:[(0,d.jsx)("div",{className:"w-24 h-24 rounded-2xl bg-[#181411] border border-[#3a2f27] flex items-center justify-center shadow-xl group-hover:border-gray-500 transition-colors z-10 mx-auto md:mx-0",children:(0,d.jsxs)("div",{className:"grid grid-cols-2 gap-2",children:[(0,d.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,d.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,d.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"}),(0,d.jsx)("div",{className:"w-6 h-6 rounded bg-white/10"})]})}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h3",{className:"text-xl font-bold mb-2",children:"3. AI Providers"}),(0,d.jsx)("p",{className:"text-sm text-gray-400",children:"The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly."})]})]})]})]})})}let p=[{icon:"link",title:"Unified Endpoint",desc:"Access all providers via a single standard API URL.",colors:{border:"hover:border-blue-500/50",bg:"hover:bg-blue-500/5",iconBg:"bg-blue-500/10",iconText:"text-blue-500",titleHover:"group-hover:text-blue-400"}},{icon:"bolt",title:"Easy Setup",desc:"Get up and running in minutes with npx command.",colors:{border:"hover:border-orange-500/50",bg:"hover:bg-orange-500/5",iconBg:"bg-orange-500/10",iconText:"text-orange-500",titleHover:"group-hover:text-orange-400"}},{icon:"shield_with_heart",title:"Model Fallback",desc:"Automatically switch providers on failure or high latency.",colors:{border:"hover:border-rose-500/50",bg:"hover:bg-rose-500/5",iconBg:"bg-rose-500/10",iconText:"text-rose-500",titleHover:"group-hover:text-rose-400"}},{icon:"monitoring",title:"Usage Tracking",desc:"Detailed analytics and cost monitoring across all models.",colors:{border:"hover:border-purple-500/50",bg:"hover:bg-purple-500/5",iconBg:"bg-purple-500/10",iconText:"text-purple-500",titleHover:"group-hover:text-purple-400"}},{icon:"key",title:"OAuth & API Keys",desc:"Securely manage credentials in one vault.",colors:{border:"hover:border-amber-500/50",bg:"hover:bg-amber-500/5",iconBg:"bg-amber-500/10",iconText:"text-amber-500",titleHover:"group-hover:text-amber-400"}},{icon:"cloud_sync",title:"Cloud Sync",desc:"Sync your configurations across devices instantly.",colors:{border:"hover:border-sky-500/50",bg:"hover:bg-sky-500/5",iconBg:"bg-sky-500/10",iconText:"text-sky-500",titleHover:"group-hover:text-sky-400"}},{icon:"terminal",title:"CLI Support",desc:"Works with Claude Code, Codex, Cline, Cursor, and more.",colors:{border:"hover:border-emerald-500/50",bg:"hover:bg-emerald-500/5",iconBg:"bg-emerald-500/10",iconText:"text-emerald-500",titleHover:"group-hover:text-emerald-400"}},{icon:"dashboard",title:"Dashboard",desc:"Visual dashboard for real-time traffic analysis.",colors:{border:"hover:border-fuchsia-500/50",bg:"hover:bg-fuchsia-500/5",iconBg:"bg-fuchsia-500/10",iconText:"text-fuchsia-500",titleHover:"group-hover:text-fuchsia-400"}}];function q(){return(0,d.jsx)("section",{className:"py-24 px-6",id:"features",children:(0,d.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,d.jsxs)("div",{className:"mb-16",children:[(0,d.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-4",children:"Powerful Features"}),(0,d.jsx)("p",{className:"text-gray-400 max-w-xl text-lg",children:"Everything you need to manage your AI infrastructure in one place, built for scale."})]}),(0,d.jsx)("div",{className:"grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-4",children:p.map(a=>(0,d.jsxs)("div",{className:`p-6 rounded-xl bg-[#23180f] border border-[#3a2f27] ${a.colors.border} ${a.colors.bg} transition-all duration-300 group`,children:[(0,d.jsx)("div",{className:`w-10 h-10 rounded-lg ${a.colors.iconBg} flex items-center justify-center mb-4 ${a.colors.iconText} group-hover:scale-110 transition-transform duration-300`,children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:a.icon})}),(0,d.jsx)("h3",{className:`text-lg font-bold mb-2 ${a.colors.titleHover} transition-colors`,children:a.title}),(0,d.jsx)("p",{className:"text-sm text-gray-400 leading-relaxed",children:a.desc})]},a.title))})]})})}var r=c(93617);function s(){let{copied:a,copy:b}=(0,r.C)();return(0,d.jsx)("section",{className:"py-24 px-6 bg-[#120f0d]",children:(0,d.jsx)("div",{className:"max-w-7xl mx-auto",children:(0,d.jsxs)("div",{className:"flex flex-col lg:flex-row gap-16 items-start",children:[(0,d.jsxs)("div",{className:"flex-1",children:[(0,d.jsx)("h2",{className:"text-3xl md:text-4xl font-bold mb-6",children:"Get Started in 30 Seconds"}),(0,d.jsx)("p",{className:"text-gray-400 text-lg mb-8",children:"Install 9Router, configure your providers via web dashboard, and start routing AI requests."}),(0,d.jsxs)("div",{className:"flex flex-col gap-6",children:[(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#f97815]/20 text-[#f97815] flex items-center justify-center font-bold",children:"1"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-bold text-lg",children:"Install 9Router"}),(0,d.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Run npx command to start the server instantly"})]})]}),(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#f97815]/20 text-[#f97815] flex items-center justify-center font-bold",children:"2"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-bold text-lg",children:"Open Dashboard"}),(0,d.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Configure providers and API keys via web interface"})]})]}),(0,d.jsxs)("div",{className:"flex gap-4",children:[(0,d.jsx)("div",{className:"flex-none w-8 h-8 rounded-full bg-[#f97815]/20 text-[#f97815] flex items-center justify-center font-bold",children:"3"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("h4",{className:"font-bold text-lg",children:"Route Requests"}),(0,d.jsx)("p",{className:"text-sm text-gray-500 mt-1",children:"Point your CLI tools to http://localhost:20128"})]})]})]})]}),(0,d.jsx)("div",{className:"flex-1 w-full",children:(0,d.jsxs)("div",{className:"rounded-xl overflow-hidden bg-[#1e1e1e] border border-[#3a2f27] shadow-2xl",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 px-4 py-3 bg-[#252526] border-b border-gray-700",children:[(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-red-500"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-yellow-500"}),(0,d.jsx)("div",{className:"w-3 h-3 rounded-full bg-green-500"}),(0,d.jsx)("div",{className:"ml-2 text-xs text-gray-500 font-mono",children:"terminal"})]}),(0,d.jsxs)("div",{className:"p-6 font-mono text-sm leading-relaxed overflow-x-auto",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 mb-4 group cursor-pointer",onClick:()=>{b("npx 9router","landing")},children:[(0,d.jsx)("span",{className:"text-green-400",children:"$"}),(0,d.jsx)("span",{className:"text-white",children:"npx 9router"}),(0,d.jsx)("span",{className:"ml-auto text-gray-500 text-xs opacity-0 group-hover:opacity-100",children:"landing"===a?"✓ Copied":"Copy"})]}),(0,d.jsxs)("div",{className:"text-gray-400 mb-6",children:[(0,d.jsx)("span",{className:"text-[#f97815]",children:">"})," Starting 9Router...",(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-[#f97815]",children:">"})," Server running on ",(0,d.jsx)("span",{className:"text-blue-400",children:"http://localhost:20128"}),(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-[#f97815]",children:">"})," Dashboard: ",(0,d.jsx)("span",{className:"text-blue-400",children:"http://localhost:20128/dashboard"}),(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-green-400",children:">"})," Ready to route! ✓"]}),(0,d.jsx)("div",{className:"text-xs text-gray-500 mb-2 border-t border-gray-700 pt-4",children:"\uD83D\uDCDD Configure providers in dashboard or use environment variables"}),(0,d.jsxs)("div",{className:"text-gray-400 text-xs",children:[(0,d.jsx)("span",{className:"text-purple-400",children:"Data Location:"}),(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-gray-500",children:" macOS/Linux:"})," ~/.9router/db.json",(0,d.jsx)("br",{}),(0,d.jsx)("span",{className:"text-gray-500",children:" Windows:"})," %APPDATA%/9router/db.json"]})]})]})})]})})})}function t(){return(0,d.jsx)("footer",{className:"border-t border-[#3a2f27] bg-[#120f0d] pt-16 pb-8 px-6",children:(0,d.jsxs)("div",{className:"max-w-7xl mx-auto",children:[(0,d.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-8 mb-16",children:[(0,d.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-3 mb-6",children:[(0,d.jsx)("div",{className:"size-6 rounded bg-[#f97815] flex items-center justify-center text-white",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"hub"})}),(0,d.jsx)("h3",{className:"text-white text-lg font-bold",children:"9Router"})]}),(0,d.jsx)("p",{className:"text-gray-500 text-sm max-w-xs mb-6",children:"The unified endpoint for AI generation. Connect, route, and manage your AI providers with ease."}),(0,d.jsx)("div",{className:"flex gap-4",children:(0,d.jsx)("a",{className:"text-gray-400 hover:text-white transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:(0,d.jsx)("span",{className:"material-symbols-outlined",children:"code"})})})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("h4",{className:"font-bold text-white",children:"Product"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"#features",children:"Features"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"/dashboard",children:"Dashboard"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"Changelog"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("h4",{className:"font-bold text-white",children:"Resources"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router#readme",target:"_blank",rel:"noopener noreferrer",children:"Documentation"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://www.npmjs.com/package/9router",target:"_blank",rel:"noopener noreferrer",children:"NPM"})]}),(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("h4",{className:"font-bold text-white",children:"Legal"}),(0,d.jsx)("a",{className:"text-gray-400 hover:text-[#f97815] text-sm transition-colors",href:"https://github.com/decolua/9router/blob/main/LICENSE",target:"_blank",rel:"noopener noreferrer",children:"MIT License"})]})]}),(0,d.jsxs)("div",{className:"border-t border-[#3a2f27] pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,d.jsx)("p",{className:"text-gray-600 text-sm",children:"\xa9 2025 9Router. All rights reserved."}),(0,d.jsxs)("div",{className:"flex gap-6",children:[(0,d.jsx)("a",{className:"text-gray-600 hover:text-white text-sm transition-colors",href:"https://github.com/decolua/9router",target:"_blank",rel:"noopener noreferrer",children:"GitHub"}),(0,d.jsx)("a",{className:"text-gray-600 hover:text-white text-sm transition-colors",href:"https://www.npmjs.com/package/9router",target:"_blank",rel:"noopener noreferrer",children:"NPM"})]})]})]})})}function u(){let a=(0,g.useRouter)();return(0,d.jsxs)("div",{className:"jsx-3853dfda129ea3f2 relative text-white font-sans overflow-x-hidden antialiased selection:bg-[#f97815] selection:text-white",children:[(0,d.jsxs)("div",{className:"jsx-3853dfda129ea3f2 fixed inset-0 z-0 overflow-hidden pointer-events-none bg-[#181411]",children:[(0,d.jsx)("div",{style:{backgroundImage:"linear-gradient(to right, #f97815 1px, transparent 1px), linear-gradient(to bottom, #f97815 1px, transparent 1px)",backgroundSize:"50px 50px"},className:"jsx-3853dfda129ea3f2 absolute inset-0 opacity-[0.06]"}),(0,d.jsx)("div",{className:"jsx-3853dfda129ea3f2 absolute top-0 left-1/4 w-[700px] h-[700px] bg-[#f97815]/12 rounded-full blur-[130px] animate-blob"}),(0,d.jsx)("div",{style:{animationDelay:"2s",animationDuration:"22s"},className:"jsx-3853dfda129ea3f2 absolute top-1/3 right-1/4 w-[600px] h-[600px] bg-purple-500/10 rounded-full blur-[130px] animate-blob"}),(0,d.jsx)("div",{style:{animationDelay:"4s",animationDuration:"25s"},className:"jsx-3853dfda129ea3f2 absolute bottom-0 left-1/2 w-[650px] h-[650px] bg-blue-500/8 rounded-full blur-[130px] animate-blob"}),(0,d.jsx)("div",{style:{background:"radial-gradient(circle at center, transparent 0%, rgba(24, 20, 17, 0.4) 100%)"},className:"jsx-3853dfda129ea3f2 absolute inset-0"})]}),(0,d.jsxs)("div",{className:"jsx-3853dfda129ea3f2 relative z-10",children:[(0,d.jsx)(i,{}),(0,d.jsxs)("main",{className:"jsx-3853dfda129ea3f2",children:[(0,d.jsxs)("div",{className:"jsx-3853dfda129ea3f2 relative",children:[(0,d.jsx)(j,{}),(0,d.jsx)("div",{className:"jsx-3853dfda129ea3f2 flex justify-center pb-20",children:(0,d.jsx)(n,{})})]}),(0,d.jsx)(s,{}),(0,d.jsx)(o,{}),(0,d.jsx)(q,{}),(0,d.jsxs)("section",{className:"jsx-3853dfda129ea3f2 py-32 px-6 relative overflow-hidden",children:[(0,d.jsx)("div",{className:"jsx-3853dfda129ea3f2 absolute inset-0 bg-linear-to-t from-[#f97815]/5 to-transparent pointer-events-none"}),(0,d.jsxs)("div",{className:"jsx-3853dfda129ea3f2 max-w-4xl mx-auto text-center relative z-10",children:[(0,d.jsx)("h2",{className:"jsx-3853dfda129ea3f2 text-4xl md:text-5xl font-black mb-6",children:"Ready to Simplify Your AI Infrastructure?"}),(0,d.jsx)("p",{className:"jsx-3853dfda129ea3f2 text-xl text-gray-400 mb-10 max-w-2xl mx-auto",children:"Join developers who are streamlining their AI integrations with 9Router. Open source and free to start."}),(0,d.jsxs)("div",{className:"jsx-3853dfda129ea3f2 flex flex-col sm:flex-row items-center justify-center gap-4",children:[(0,d.jsx)("button",{onClick:()=>a.push("/dashboard"),className:"jsx-3853dfda129ea3f2 w-full sm:w-auto h-14 px-10 rounded-lg bg-[#f97815] hover:bg-[#e0650a] text-[#181411] text-lg font-bold transition-all shadow-[0_0_20px_rgba(249,120,21,0.5)]",children:"Start Free"}),(0,d.jsx)("button",{onClick:()=>window.open("https://github.com/decolua/9router#readme","_blank"),className:"jsx-3853dfda129ea3f2 w-full sm:w-auto h-14 px-10 rounded-lg border border-[#3a2f27] hover:bg-[#23180f] text-white text-lg font-bold transition-all",children:"Read Documentation"})]})]})]})]}),(0,d.jsx)(t,{})]}),(0,d.jsx)(f(),{id:"3853dfda129ea3f2",children:"@keyframes float{0%,100%{transform:translatey(0)}50%{transform:translatey(-10px)}}@keyframes dash{to{stroke-dashoffset:-20}}@keyframes blob{0%,100%{transform:translate(0,0)scale(1)}33%{transform:translate(30px,-50px)scale(1.1)}66%{transform:translate(-20px,20px)scale(.9)}}.animate-blob{animation:blob 20s ease-in-out infinite}"})]})}},66298:(a,b,c)=>{"use strict";c.d(b,{A:()=>h});var d=c(26835),e=c(53830),f=c(41183),g=c.n(f);function h({src:a,alt:b,size:c=32,className:f="",fallbackText:g="?",fallbackColor:i}){let[j,k]=(0,e.useState)(!1);return!a||j?(0,d.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${f}`.trim(),style:{width:c,height:c,color:i,fontSize:Math.max(10,Math.floor(.38*c))},children:g}):(0,d.jsx)("img",{src:a,alt:b,width:c,height:c,className:f,onError:()=>k(!0)})}h.propTypes={src:g().string,alt:g().string,size:g().number,className:g().string,fallbackText:g().string,fallbackColor:g().string}},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},78088:(a,b,c)=>{"use strict";a.exports=c(63277).style},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},84225:()=>{},84928:a=>{"use strict";a.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},86391:(a,b,c)=>{Promise.resolve().then(c.bind(c,3256))},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},93617:(a,b,c)=>{"use strict";c.d(b,{C:()=>e});var d=c(53830);function e(a=2e3){let[b,c]=(0,d.useState)(null),f=(0,d.useRef)(null);return{copied:b,copy:(0,d.useCallback)((b,d="default")=>{(async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(b);else{let a=document.createElement("textarea");a.value=b,a.style.position="fixed",a.style.opacity="0",document.body.appendChild(a),a.select(),document.execCommand("copy"),document.body.removeChild(a)}})(),c(d),f.current&&clearTimeout(f.current),f.current=setTimeout(()=>{c(null)},a)},[a])}}},94735:a=>{"use strict";a.exports=require("events")}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,7770,21,8193,2503,514,3774,8035,2049],()=>b(b.s=6883));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/landing/page.js.nft.json b/cli/app/.next/server/app/landing/page.js.nft.json new file mode 100644 index 00000000000..f6ed2c73644 --- /dev/null +++ b/cli/app/.next/server/app/landing/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../package.json","../../../package.json","../../chunks/1249.js","../../chunks/2049.js","../../chunks/21.js","../../chunks/2371.js","../../chunks/2503.js","../../chunks/2566.js","../../chunks/3656.js","../../chunks/375.js","../../chunks/3774.js","../../chunks/514.js","../../chunks/5978.js","../../chunks/64.js","../../chunks/7770.js","../../chunks/7773.js","../../chunks/8035.js","../../chunks/8193.js","../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/landing/page_client-reference-manifest.js b/cli/app/.next/server/app/landing/page_client-reference-manifest.js new file mode 100644 index 00000000000..a453a1a2d0f --- /dev/null +++ b/cli/app/.next/server/app/landing/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/landing/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":["8038","static/chunks/8038-368cfbdf9080110b.js","7018","static/chunks/app/landing/page-297a1c9230927b6f.js"],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/landing/page":[]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/login.html b/cli/app/.next/server/app/login.html new file mode 100644 index 00000000000..09f89a2ad1d --- /dev/null +++ b/cli/app/.next/server/app/login.html @@ -0,0 +1 @@ +9Router - AI Infrastructure Management

Loading...

\ No newline at end of file diff --git a/cli/app/.next/server/app/login.meta b/cli/app/.next/server/app/login.meta new file mode 100644 index 00000000000..9058170fcf5 --- /dev/null +++ b/cli/app/.next/server/app/login.meta @@ -0,0 +1,15 @@ +{ + "headers": { + "x-nextjs-stale-time": "300", + "x-nextjs-prerender": "1", + "x-next-cache-tags": "_N_T_/layout,_N_T_/login/layout,_N_T_/login/page,_N_T_/login" + }, + "segmentPaths": [ + "/_tree", + "/_full", + "/login/__PAGE__", + "/login", + "/_index", + "/_head" + ] +} \ No newline at end of file diff --git a/cli/app/.next/server/app/login.rsc b/cli/app/.next/server/app/login.rsc new file mode 100644 index 00000000000..6ea6e910e2c --- /dev/null +++ b/cli/app/.next/server/app/login.rsc @@ -0,0 +1,26 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[15872,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4520","static/chunks/app/login/page-2f45309b2d2ca209.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","login"],"q":"","i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/login.segments/_full.segment.rsc b/cli/app/.next/server/app/login.segments/_full.segment.rsc new file mode 100644 index 00000000000..6ea6e910e2c --- /dev/null +++ b/cli/app/.next/server/app/login.segments/_full.segment.rsc @@ -0,0 +1,26 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +6:I[1076,[],"ClientPageRoot"] +7:I[15872,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4520","static/chunks/app/login/page-2f45309b2d2ca209.js"],"default"] +a:I[31872,[],"OutletBoundary"] +b:"$Sreact.suspense" +e:I[31872,[],"ViewportBoundary"] +10:I[31872,[],"MetadataBoundary"] +12:I[57567,[],"default",1] +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"P":null,"c":["","login"],"q":"","i":false,"f":[[["",{"children":["login",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",16],[["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]],"forbidden":"$undefined","unauthorized":"$undefined"}]}]}]}]]}]]}],{"children":[["$","$1","c",{"children":[null,["$","$L4",null,{"parallelRouterKey":"children","error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","forbidden":"$undefined","unauthorized":"$undefined"}]]}],{"children":[["$","$1","c",{"children":[["$","$L6",null,{"Component":"$7","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@8","$@9"]}}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next","crossOrigin":"$undefined","nonce":"$undefined"}]],["$","$La",null,{"children":["$","$b",null,{"name":"Next.MetadataOutlet","children":"$@c"}]}]]}],{},null,false,null]},null,false,"$@d"]},null,false,null],["$","$1","h",{"children":[null,["$","$Le",null,{"children":"$Lf"}],["$","div",null,{"hidden":true,"children":["$","$L10",null,{"children":["$","$b",null,{"name":"Next.Metadata","children":"$L11"}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],false]],"m":"$undefined","G":["$12",[]],"S":true,"h":null,"s":"$undefined","l":"$undefined","p":"$undefined","d":"$undefined","b":"g6K-sXverqaFK0NMbiAzn"} +13:[] +d:"$W13" +8:{} +9:"$0:f:0:1:1:children:1:children:0:props:children:0:props:serverProvidedParams:params" +f:[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]] +14:I[12569,[],"IconMark"] +c:null +11:[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest","crossOrigin":"$undefined"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L14","5",{}]] diff --git a/cli/app/.next/server/app/login.segments/_head.segment.rsc b/cli/app/.next/server/app/login.segments/_head.segment.rsc new file mode 100644 index 00000000000..b2df0ecffc1 --- /dev/null +++ b/cli/app/.next/server/app/login.segments/_head.segment.rsc @@ -0,0 +1,6 @@ +1:"$Sreact.fragment" +2:I[31872,[],"ViewportBoundary"] +3:I[31872,[],"MetadataBoundary"] +4:"$Sreact.suspense" +5:I[12569,[],"IconMark"] +0:{"rsc":["$","$1","h",{"children":[null,["$","$L2",null,{"children":[["$","meta","0",{"charSet":"utf-8"}],["$","meta","1",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","2",{"name":"theme-color","content":"#0a0a0a"}]]}],["$","div",null,{"hidden":true,"children":["$","$L3",null,{"children":["$","$4",null,{"name":"Next.Metadata","children":[["$","title","0",{"children":"9Router - AI Infrastructure Management"}],["$","meta","1",{"name":"description","content":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly."}],["$","link","2",{"rel":"manifest","href":"/manifest.webmanifest"}],["$","link","3",{"rel":"icon","href":"/favicon.ico?603d046c9a6fdfbb","type":"image/x-icon","sizes":"16x16"}],["$","link","4",{"rel":"icon","href":"/favicon.svg"}],["$","$L5","5",{}]]}]}]}],["$","meta",null,{"name":"next-size-adjust","content":""}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/login.segments/_index.segment.rsc b/cli/app/.next/server/app/login.segments/_index.segment.rsc new file mode 100644 index 00000000000..f8eae22aaa0 --- /dev/null +++ b/cli/app/.next/server/app/login.segments/_index.segment.rsc @@ -0,0 +1,9 @@ +1:"$Sreact.fragment" +2:I[98814,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"ThemeProvider"] +3:I[70339,["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"RuntimeI18nProvider"] +4:I[91133,[],""] +5:I[4297,[],""] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"rsc":["$","$1","c",{"children":[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/313a62036a09d576.css","precedence":"next"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/081a0afca5a9bd20.css","precedence":"next"}]],["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{"children":[["$","link",null,{"rel":"preconnect","href":"https://fonts.googleapis.com"}],["$","link",null,{"rel":"preconnect","href":"https://fonts.gstatic.com","crossOrigin":"anonymous"}],["$","link",null,{"href":"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","rel":"stylesheet"}]]}],["$","body",null,{"className":"__variable_f367f3 font-sans antialiased","children":["$","$L2",null,{"children":["$","$L3",null,{"children":["$","$L4",null,{"parallelRouterKey":"children","template":["$","$L5",null,{}],"notFound":[[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":404}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],[]]}]}]}]}]]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/login.segments/_tree.segment.rsc b/cli/app/.next/server/app/login.segments/_tree.segment.rsc new file mode 100644 index 00000000000..f8b23bc97f9 --- /dev/null +++ b/cli/app/.next/server/app/login.segments/_tree.segment.rsc @@ -0,0 +1,6 @@ +:HL["/_next/static/media/e4af272ccee01ff0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] +:HL["/_next/static/css/313a62036a09d576.css","style"] +:HL["/_next/static/css/081a0afca5a9bd20.css","style"] +:HL["/_next/static/css/599369d853c61df7.css","style"] +:HL["https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap","style"] +0:{"tree":{"name":"","param":null,"prefetchHints":16,"slots":{"children":{"name":"login","param":null,"prefetchHints":0,"slots":{"children":{"name":"__PAGE__","param":null,"prefetchHints":0,"slots":null}}}}},"staleTime":300,"buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/login.segments/login.segment.rsc b/cli/app/.next/server/app/login.segments/login.segment.rsc new file mode 100644 index 00000000000..8f5370fe858 --- /dev/null +++ b/cli/app/.next/server/app/login.segments/login.segment.rsc @@ -0,0 +1,5 @@ +1:"$Sreact.fragment" +2:I[91133,[],""] +3:I[4297,[],""] +4:[] +0:{"rsc":["$","$1","c",{"children":[null,["$","$L2",null,{"parallelRouterKey":"children","template":["$","$L3",null,{}]}]]}],"isPartial":false,"staleTime":300,"varyParams":"$W4","buildId":"g6K-sXverqaFK0NMbiAzn"} diff --git a/cli/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc b/cli/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc new file mode 100644 index 00000000000..919e3a838d3 --- /dev/null +++ b/cli/app/.next/server/app/login.segments/login/__PAGE__.segment.rsc @@ -0,0 +1,10 @@ +1:"$Sreact.fragment" +2:I[1076,[],"ClientPageRoot"] +3:I[15872,["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4520","static/chunks/app/login/page-2f45309b2d2ca209.js"],"default"] +6:I[31872,[],"OutletBoundary"] +7:"$Sreact.suspense" +:HL["/_next/static/css/599369d853c61df7.css","style"] +0:{"rsc":["$","$1","c",{"children":[["$","$L2",null,{"Component":"$3","serverProvidedParams":{"searchParams":{},"params":{},"promises":["$@4","$@5"]}}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/599369d853c61df7.css","precedence":"next"}]],["$","$L6",null,{"children":["$","$7",null,{"name":"Next.MetadataOutlet","children":"$@8"}]}]]}],"isPartial":false,"staleTime":300,"varyParams":null,"buildId":"g6K-sXverqaFK0NMbiAzn"} +4:{} +5:"$0:rsc:props:children:0:props:serverProvidedParams:params" +8:null diff --git a/cli/app/.next/server/app/login/page.js b/cli/app/.next/server/app/login/page.js new file mode 100644 index 00000000000..8c82cc05878 --- /dev/null +++ b/cli/app/.next/server/app/login/page.js @@ -0,0 +1,2 @@ +(()=>{var a={};a.id=4520,a.ids=[4520],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5142:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/login/page.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/login/page.js","default")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{"use strict";a.exports=require("assert")},14985:a=>{"use strict";a.exports=require("dns")},17891:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{"use strict";a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{"use strict";a.exports=require("os")},26713:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{"use strict";a.exports=require("path")},40049:(a,b,c)=>{Promise.resolve().then(c.bind(c,95892))},41025:a=>{"use strict";a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},44903:(a,b,c)=>{"use strict";c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["login",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,5142)),"/Users/Working/router4/app/src/app/login/page.js"]}]},{"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/login/page",pathname:"/login",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/login/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},49777:(a,b,c)=>{Promise.resolve().then(c.bind(c,5142))},51455:a=>{"use strict";a.exports=require("node:fs/promises")},55511:a=>{"use strict";a.exports=require("crypto")},55591:a=>{"use strict";a.exports=require("https")},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{"use strict";a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},74075:a=>{"use strict";a.exports=require("zlib")},76760:a=>{"use strict";a.exports=require("node:path")},77068:a=>{"use strict";a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{"use strict";a.exports=require("node:crypto")},79551:a=>{"use strict";a.exports=require("url")},79646:a=>{"use strict";a.exports=require("child_process")},81115:a=>{"use strict";a.exports=require("constants")},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{"use strict";a.exports=require("net")},94735:a=>{"use strict";a.exports=require("events")},95892:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>h});var d=c(26835),e=c(53830),f=c(50450),g=c(28217);function h(){let[a,b]=(0,e.useState)(""),[c,h]=(0,e.useState)(""),[i,j]=(0,e.useState)(!1),[k,l]=(0,e.useState)(null),m=(0,g.useRouter)(),n=async b=>{b.preventDefault(),j(!0),h("");try{let b=await fetch("/api/auth/login",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({password:a})});if(b.ok)m.push("/dashboard"),m.refresh();else{let a=await b.json();h(a.error||"Invalid password")}}catch(a){h("An error occurred. Please try again.")}finally{j(!1)}};return null===k?(0,d.jsx)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4",children:(0,d.jsxs)("div",{className:"text-center",children:[(0,d.jsx)("div",{className:"inline-block animate-spin rounded-full h-8 w-8 border-b-2 border-primary"}),(0,d.jsx)("p",{className:"text-text-muted mt-4",children:"Loading..."})]})}):(0,d.jsxs)("div",{className:"min-h-screen flex items-center justify-center bg-bg p-4 relative overflow-hidden",children:[(0,d.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none","aria-hidden":"true"}),(0,d.jsxs)("div",{className:"relative z-10 w-full max-w-md",children:[(0,d.jsxs)("div",{className:"text-center mb-8",children:[(0,d.jsx)("h1",{className:"text-3xl font-bold text-primary mb-2",children:"9Router"}),(0,d.jsx)("p",{className:"text-text-muted",children:"Enter your password to access the dashboard"})]}),(0,d.jsx)(f.Zp,{children:(0,d.jsxs)("form",{onSubmit:n,className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)("label",{className:"text-sm font-medium",children:"Password"}),(0,d.jsx)(f.pd,{type:"password",placeholder:"Enter password",value:a,onChange:a=>b(a.target.value),required:!0,autoFocus:!0}),c&&(0,d.jsx)("p",{className:"text-xs text-red-500",children:c})]}),(0,d.jsx)(f.$n,{type:"submit",variant:"primary",className:"w-full",loading:i,children:"Login"}),(0,d.jsxs)("p",{className:"text-xs text-center text-text-muted mt-2",children:["Default password is ",(0,d.jsx)("code",{className:"bg-sidebar px-1 rounded",children:"123456"})]})]})})]})]})}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,5053,7770,21,8193,2503,514,3774,8035,2049,450],()=>b(b.s=44903));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/login/page.js.nft.json b/cli/app/.next/server/app/login/page.js.nft.json new file mode 100644 index 00000000000..74ead40249c --- /dev/null +++ b/cli/app/.next/server/app/login/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../package.json","../../../package.json","../../chunks/1249.js","../../chunks/2049.js","../../chunks/21.js","../../chunks/2371.js","../../chunks/2503.js","../../chunks/2566.js","../../chunks/3656.js","../../chunks/375.js","../../chunks/3774.js","../../chunks/450.js","../../chunks/5053.js","../../chunks/514.js","../../chunks/5978.js","../../chunks/64.js","../../chunks/7770.js","../../chunks/7773.js","../../chunks/8035.js","../../chunks/8193.js","../../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/login/page_client-reference-manifest.js b/cli/app/.next/server/app/login/page_client-reference-manifest.js new file mode 100644 index 00000000000..f9f92b80716 --- /dev/null +++ b/cli/app/.next/server/app/login/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/login/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","4520","static/chunks/app/login/page-2f45309b2d2ca209.js"],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}],"/Users/Working/router4/app/src/app/login/page":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/manifest.webmanifest.body b/cli/app/.next/server/app/manifest.webmanifest.body new file mode 100644 index 00000000000..466a69fc753 --- /dev/null +++ b/cli/app/.next/server/app/manifest.webmanifest.body @@ -0,0 +1 @@ +{"name":"9Router - AI Infrastructure Management","short_name":"9Router","description":"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.","start_url":"/","display":"standalone","background_color":"#0a0a0a","theme_color":"#0a0a0a","orientation":"portrait-primary","icons":[{"src":"/icons/icon-192.svg","sizes":"192x192","type":"image/svg+xml"},{"src":"/icons/icon-512.svg","sizes":"512x512","type":"image/svg+xml"},{"src":"/icons/icon-512.svg","sizes":"512x512","type":"image/svg+xml","purpose":"maskable"}]} \ No newline at end of file diff --git a/cli/app/.next/server/app/manifest.webmanifest.meta b/cli/app/.next/server/app/manifest.webmanifest.meta new file mode 100644 index 00000000000..a5504f756c3 --- /dev/null +++ b/cli/app/.next/server/app/manifest.webmanifest.meta @@ -0,0 +1 @@ +{"status":200,"headers":{"cache-control":"public, max-age=0, must-revalidate","content-type":"application/manifest+json","x-next-cache-tags":"_N_T_/layout,_N_T_/manifest.webmanifest/layout,_N_T_/manifest.webmanifest/route,_N_T_/manifest.webmanifest"}} \ No newline at end of file diff --git a/cli/app/.next/server/app/manifest.webmanifest/route.js b/cli/app/.next/server/app/manifest.webmanifest/route.js new file mode 100644 index 00000000000..fab032f497b --- /dev/null +++ b/cli/app/.next/server/app/manifest.webmanifest/route.js @@ -0,0 +1,16 @@ +(()=>{var a={};a.id=1337,a.ids=[1337],a.modules={261:a=>{"use strict";a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},24429:()=>{},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},44870:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-route.runtime.prod.js")},53585:(a,b,c)=>{"use strict";c.r(b),c.d(b,{handler:()=>D,patchFetch:()=>C,routeModule:()=>y,serverHooks:()=>B,workAsyncStorage:()=>z,workUnitAsyncStorage:()=>A});var d={};c.r(d),c.d(d,{GET:()=>x});var e=c(55103),f=c(30600),g=c(10087),h=c(42431),i=c(27321),j=c(42417),k=c(261),l=c(8555),m=c(87717),n=c(34935),o=c(66116),p=c(99218),q=c(43448),r=c(67162),s=c(80463),t=c(86439),u=c(99509),v=c(86606),w=c(87695);async function x(){let a=await {name:"9Router - AI Infrastructure Management",short_name:"9Router",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.",start_url:"/",display:"standalone",background_color:"#0a0a0a",theme_color:"#0a0a0a",orientation:"portrait-primary",icons:[{src:"/icons/icon-192.svg",sizes:"192x192",type:"image/svg+xml"},{src:"/icons/icon-512.svg",sizes:"512x512",type:"image/svg+xml"},{src:"/icons/icon-512.svg",sizes:"512x512",type:"image/svg+xml",purpose:"maskable"}]},b=(0,w.resolveRouteData)(a,"manifest");return new v.NextResponse(b,{headers:{"Content-Type":"application/manifest+json","Cache-Control":"public, max-age=0, must-revalidate"}})}let y=new e.AppRouteRouteModule({definition:{kind:f.RouteKind.APP_ROUTE,page:"/manifest.webmanifest/route",pathname:"/manifest.webmanifest",filename:"manifest",bundlePath:"app/manifest.webmanifest/route"},distDir:".next",relativeProjectDir:"",resolvedPagePath:"next-metadata-route-loader?filePath=%2FUsers%2FWorking%2Frouter4%2Fapp%2Fsrc%2Fapp%2Fmanifest.js&isDynamicRouteExtension=1!?__next_metadata_route__",nextConfigOutput:"standalone",userland:d}),{workAsyncStorage:z,workUnitAsyncStorage:A,serverHooks:B}=y;function C(){return(0,g.patchFetch)({workAsyncStorage:z,workUnitAsyncStorage:A})}async function D(a,b,c){c.requestMeta&&(0,h.setRequestMeta)(a,c.requestMeta),y.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let d="/manifest.webmanifest/route";"/index"===d&&(d="/");let e=await y.prepare(a,b,{srcPage:d,multiZoneDraftMode:!1});if(!e)return b.statusCode=400,b.end("Bad Request"),null==c.waitUntil||c.waitUntil.call(c,Promise.resolve()),null;let{buildId:g,params:v,nextConfig:w,parsedUrl:x,isDraftMode:z,prerenderManifest:A,routerServerContext:B,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,resolvedPathname:E,clientReferenceManifest:F,serverActionsManifest:G}=e,H=(0,k.normalizeAppPath)(d),I=!!(A.dynamicRoutes[H]||A.routes[E]),J=async()=>((null==B?void 0:B.render404)?await B.render404(a,b,x,!1):b.end("This page could not be found"),null);if(I&&!z){let a=!!A.routes[E],b=A.dynamicRoutes[H];if(b&&!1===b.fallback&&!a){if(w.adapterPath)return await J();throw new t.NoFallbackError}}let K=null;!I||y.isDev||z||(K="/index"===(K=E)?"/":K);let L=!0===y.isDev||!I,M=I&&!L;G&&F&&(0,j.setManifestsSingleton)({page:d,clientReferenceManifest:F,serverActionsManifest:G});let N=a.method||"GET",O=(0,i.getTracer)(),P=O.getActiveScopeSpan(),Q=!!(null==B?void 0:B.isWrappedByNextServer),R=!!(0,h.getRequestMeta)(a,"minimalMode"),S=(0,h.getRequestMeta)(a,"incrementalCache")||await y.getIncrementalCache(a,w,A,R);null==S||S.resetRequestCache(),globalThis.__incrementalCache=S;let T={params:v,previewProps:A.preview,renderOpts:{experimental:{authInterrupts:!!w.experimental.authInterrupts},cacheComponents:!!w.cacheComponents,supportsDynamicResponse:L,incrementalCache:S,cacheLifeProfiles:w.cacheLife,waitUntil:c.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:void 0,onInstrumentationRequestError:(b,c,d,e)=>y.onRequestError(a,b,d,e,B)},sharedContext:{buildId:g}},U=new l.NodeNextRequest(a),V=new l.NodeNextResponse(b),W=m.NextRequestAdapter.fromNodeNextRequest(U,(0,m.signalFromNodeResponse)(b));try{let e,g=async a=>y.handle(W,T).finally(()=>{if(!a)return;a.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let c=O.getRootSpanAttributes();if(!c)return;if(c.get("next.span_type")!==n.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${c.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let f=c.get("next.route");if(f){let b=`${N} ${f}`;a.setAttributes({"next.route":f,"http.route":f,"next.span_name":b}),a.updateName(b),e&&e!==a&&(e.setAttribute("http.route",f),e.updateName(b))}else a.updateName(`${N} ${d}`)}),h=async e=>{var h,i;let j=async({previousCacheEntry:f})=>{try{if(!R&&C&&D&&!f)return b.statusCode=404,b.setHeader("x-nextjs-cache","REVALIDATED"),b.end("This page could not be found"),null;let d=await g(e);a.fetchMetrics=T.renderOpts.fetchMetrics;let h=T.renderOpts.pendingWaitUntil;h&&c.waitUntil&&(c.waitUntil(h),h=void 0);let i=T.renderOpts.collectedTags;if(!I)return await (0,p.I)(U,V,d,T.renderOpts.pendingWaitUntil),null;{let a=await d.blob(),b=(0,q.toNodeOutgoingHttpHeaders)(d.headers);i&&(b[s.NEXT_CACHE_TAGS_HEADER]=i),!b["content-type"]&&a.type&&(b["content-type"]=a.type);let c=void 0!==T.renderOpts.collectedRevalidate&&!(T.renderOpts.collectedRevalidate>=s.INFINITE_CACHE)&&T.renderOpts.collectedRevalidate,e=void 0===T.renderOpts.collectedExpire||T.renderOpts.collectedExpire>=s.INFINITE_CACHE?void 0:T.renderOpts.collectedExpire;return{value:{kind:u.CachedRouteKind.APP_ROUTE,status:d.status,body:Buffer.from(await a.arrayBuffer()),headers:b},cacheControl:{revalidate:c,expire:e}}}}catch(b){throw(null==f?void 0:f.isStale)&&await y.onRequestError(a,b,{routerKind:"App Router",routePath:d,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),b}},k=await y.handleResponse({req:a,nextConfig:w,cacheKey:K,routeKind:f.RouteKind.APP_ROUTE,isFallback:!1,prerenderManifest:A,isRoutePPREnabled:!1,isOnDemandRevalidate:C,revalidateOnlyGenerated:D,responseGenerator:j,waitUntil:c.waitUntil,isMinimalMode:R});if(!I)return null;if((null==k||null==(h=k.value)?void 0:h.kind)!==u.CachedRouteKind.APP_ROUTE)throw Object.defineProperty(Error(`Invariant: app-route received invalid cache entry ${null==k||null==(i=k.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E701",enumerable:!1,configurable:!0});R||b.setHeader("x-nextjs-cache",C?"REVALIDATED":k.isMiss?"MISS":k.isStale?"STALE":"HIT"),z&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate");let l=(0,q.fromNodeOutgoingHttpHeaders)(k.value.headers);return R&&I||l.delete(s.NEXT_CACHE_TAGS_HEADER),!k.cacheControl||b.getHeader("Cache-Control")||l.get("Cache-Control")||l.set("Cache-Control",(0,r.getCacheControlHeader)(k.cacheControl)),await (0,p.I)(U,V,new Response(k.value.body,{headers:l,status:k.value.status||200})),null};Q&&P?await h(P):(e=O.getActiveScopeSpan(),await O.withPropagatedContext(a.headers,()=>O.trace(n.BaseServerSpan.handleRequest,{spanName:`${N} ${d}`,kind:i.SpanKind.SERVER,attributes:{"http.method":N,"http.target":a.url}},h),void 0,!Q))}catch(b){if(b instanceof t.NoFallbackError||await y.onRequestError(a,b,{routerKind:"App Router",routePath:H,routeType:"route",revalidateReason:(0,o.c)({isStaticGeneration:M,isOnDemandRevalidate:C})},!1,B),I)throw b;return await (0,p.I)(U,V,new Response(null,{status:500})),null}}},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},64749:()=>{},70797:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getOrigin:function(){return g},resolveArray:function(){return e},resolveAsArrayOrUndefined:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){return Array.isArray(a)?a:[a]}function f(a){if(null!=a)return e(a)}function g(a){let b;if("string"==typeof a)try{b=(a=new URL(a)).origin}catch{}return b}},86439:a=>{"use strict";a.exports=require("next/dist/shared/lib/no-fallback-error.external")},87695:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={resolveManifest:function(){return i},resolveRobots:function(){return g},resolveRouteData:function(){return j},resolveSitemap:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(70797);function g(a){let b="";for(let c of Array.isArray(a.rules)?a.rules:[a.rules]){for(let a of(0,f.resolveArray)(c.userAgent||["*"]))b+=`User-Agent: ${a} +`;if(c.allow)for(let a of(0,f.resolveArray)(c.allow))b+=`Allow: ${a} +`;if(c.disallow)for(let a of(0,f.resolveArray)(c.disallow))b+=`Disallow: ${a} +`;c.crawlDelay&&(b+=`Crawl-delay: ${c.crawlDelay} +`),b+="\n"}return a.host&&(b+=`Host: ${a.host} +`),a.sitemap&&(0,f.resolveArray)(a.sitemap).forEach(a=>{b+=`Sitemap: ${a} +`}),b}function h(a){let b=a.some(a=>Object.keys(a.alternates??{}).length>0),c=a.some(a=>{var b;return!!(null==(b=a.images)?void 0:b.length)}),d=a.some(a=>{var b;return!!(null==(b=a.videos)?void 0:b.length)}),e="";for(let i of(e+='\n',e+='${i.url} +`;let a=null==(f=i.alternates)?void 0:f.languages;if(a&&Object.keys(a).length)for(let b in a)e+=` +`;if(null==(g=i.images)?void 0:g.length)for(let a of i.images)e+=` +${a} + +`;if(null==(h=i.videos)?void 0:h.length)for(let a of i.videos)e+=["",`${a.title}`,`${a.thumbnail_loc}`,`${a.description}`,a.content_loc&&`${a.content_loc}`,a.player_loc&&`${a.player_loc}`,a.duration&&`${a.duration}`,a.view_count&&`${a.view_count}`,a.tag&&`${a.tag}`,a.rating&&`${a.rating}`,a.expiration_date&&`${a.expiration_date}`,a.publication_date&&`${a.publication_date}`,a.family_friendly&&`${a.family_friendly}`,a.requires_subscription&&`${a.requires_subscription}`,a.live&&`${a.live}`,a.restriction&&`${a.restriction.content}`,a.platform&&`${a.platform.content}`,a.uploader&&`${a.uploader.content}`,` +`].filter(Boolean).join("\n");if(i.lastModified){let a=i.lastModified instanceof Date?i.lastModified.toISOString():i.lastModified;e+=`${a} +`}i.changeFrequency&&(e+=`${i.changeFrequency} +`),"number"==typeof i.priority&&(e+=`${i.priority} +`),e+="\n"}return e+"\n"}function i(a){return JSON.stringify(a)}function j(a,b){return"robots"===b?g(a):"sitemap"===b?h(a):"manifest"===b?i(a):""}}};var b=require("../../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,6799],()=>b(b.s=53585));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/manifest.webmanifest/route.js.nft.json b/cli/app/.next/server/app/manifest.webmanifest/route.js.nft.json new file mode 100644 index 00000000000..a086dfaea77 --- /dev/null +++ b/cli/app/.next/server/app/manifest.webmanifest/route.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../../node_modules/@swc/helpers/package.json","../../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../../node_modules/next/dist/client/lib/console.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../../node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js","../../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../../node_modules/next/dist/compiled/ws/index.js","../../../../../node_modules/next/dist/compiled/ws/package.json","../../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../../node_modules/next/dist/lib/constants.js","../../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../../node_modules/next/dist/lib/interop-default.js","../../../../../node_modules/next/dist/lib/is-error.js","../../../../../node_modules/next/dist/lib/picocolors.js","../../../../../node_modules/next/dist/lib/scheduler.js","../../../../../node_modules/next/dist/lib/semver-noop.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../../node_modules/next/dist/server/node-environment.js","../../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../../node_modules/next/dist/server/require-hook.js","../../../../../node_modules/next/dist/server/response-cache/types.js","../../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../../node_modules/next/dist/shared/lib/segment.js","../../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../../node_modules/next/package.json","../../../../../node_modules/react/cjs/react.development.js","../../../../../node_modules/react/cjs/react.production.js","../../../../../node_modules/react/index.js","../../../../../node_modules/react/package.json","../../../../../package.json","../../../../package.json","../../../package.json","../../chunks/6799.js","../../chunks/7773.js","../../webpack-runtime.js","route_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js b/cli/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js new file mode 100644 index 00000000000..1b13e20b4ae --- /dev/null +++ b/cli/app/.next/server/app/manifest.webmanifest/route_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/manifest.webmanifest/route"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{},"edgeSSRModuleMapping":{},"clientModules":{},"entryCSSFiles":{"/Users/Working/router4/app/src/app/manifest.webmanifest/route":[]},"rscModuleMapping":{},"edgeRscModuleMapping":{}}; \ No newline at end of file diff --git a/cli/app/.next/server/app/page.js b/cli/app/.next/server/app/page.js new file mode 100644 index 00000000000..f9dbed540d8 --- /dev/null +++ b/cli/app/.next/server/app/page.js @@ -0,0 +1,2 @@ +"use strict";(()=>{var a={};a.id=8974,a.ids=[8974],a.modules={261:a=>{a.exports=require("next/dist/shared/lib/router/utils/app-paths")},3295:a=>{a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},4192:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`forbidden()` is experimental and only allowed to be enabled when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E488",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"forbidden",{enumerable:!0,get:function(){return d}}),c(54928).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},10846:a=>{a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},12412:a=>{a.exports=require("assert")},14985:a=>{a.exports=require("dns")},17891:a=>{a.exports=require("next/dist/shared/lib/router/utils/get-segment-param")},19121:a=>{a.exports=require("next/dist/server/app-render/action-async-storage.external.js")},21820:a=>{a.exports=require("os")},26713:a=>{a.exports=require("next/dist/shared/lib/router/utils/is-bot")},27283:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return d}});let d=c(47314).unstable_rethrow;("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},27910:a=>{a.exports=require("stream")},28354:a=>{a.exports=require("util")},29021:a=>{a.exports=require("fs")},29294:a=>{a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},33873:a=>{a.exports=require("path")},41025:a=>{a.exports=require("next/dist/server/app-render/dynamic-access-async-storage.external.js")},43954:a=>{a.exports=require("next/dist/shared/lib/router/utils/interception-routes")},47314:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unstable_rethrow",{enumerable:!0,get:function(){return function a(b){if((0,g.isNextRouterError)(b)||(0,f.isBailoutToCSRError)(b)||(0,i.isDynamicServerError)(b)||(0,h.isDynamicPostpone)(b)||(0,e.isPostpone)(b)||(0,d.isHangingPromiseRejectionError)(b)||(0,h.isPrerenderInterruptedError)(b))throw b;b instanceof Error&&"cause"in b&&a(b.cause)}}});let d=c(3060),e=c(14541),f=c(93334),g=c(25482),h=c(12987),i=c(4351);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},50999:(a,b,c)=>{c.r(b),c.d(b,{__next_app__:()=>M,handler:()=>O,routeModule:()=>N});var d=c(31975),e=c(30600),f=c(66116),g=c(27321),h=c(42431),i=c(34935),j=c(57326),k=c(63459),l=c(8555),m=c(67401),n=c(75869),o=c(42417),p=c(44612),q=c(261),r=c(14220),s=c(37353),t=c(26713),u=c(99509),v=c(31310),w=c(85426),x=c(80463),y=c(83665),z=c(9071),A=c(62091),B=c(86439),C=c(77068),D=c(44303),E=c(18045),F=c(71860),G=c(70722),H=c(19995),I=c(43954),J=c(17891),K={};for(let a in E)0>["default","__next_app__","routeModule","handler"].indexOf(a)&&(K[a]=()=>E[a]);c.d(b,K);let L={children:["",{children:["__PAGE__",{},{page:[()=>Promise.resolve().then(c.bind(c,93105)),"/Users/Working/router4/app/src/app/page.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}}]},{layout:[()=>Promise.resolve().then(c.bind(c,6112)),"/Users/Working/router4/app/src/app/layout.js"],"global-error":[()=>Promise.resolve().then(c.t.bind(c,75765,23)),"next/dist/client/components/builtin/global-error.js"],"not-found":[()=>Promise.resolve().then(c.t.bind(c,13729,23)),"next/dist/client/components/builtin/not-found.js"],forbidden:[()=>Promise.resolve().then(c.t.bind(c,53532,23)),"next/dist/client/components/builtin/forbidden.js"],unauthorized:[()=>Promise.resolve().then(c.t.bind(c,4175,23)),"next/dist/client/components/builtin/unauthorized.js"],metadata:{icon:[async a=>(await Promise.resolve().then(c.bind(c,94638))).default(a)],apple:[],openGraph:[],twitter:[],manifest:"/manifest.webmanifest"}},[]]}.children,M={require:c,loadChunk:()=>Promise.resolve()},N=new d.AppPageRouteModule({definition:{kind:e.RouteKind.APP_PAGE,page:"/page",pathname:"/",bundlePath:"",filename:"",appPaths:[]},userland:{loaderTree:L},distDir:".next",relativeProjectDir:""});async function O(a,b,d){var K,P,Q,R,S;d.requestMeta&&(0,h.setRequestMeta)(a,d.requestMeta),N.isDev&&(0,h.addRequestMeta)(a,"devRequestTimingInternalsEnd",process.hrtime.bigint());let T=!!(0,h.getRequestMeta)(a,"minimalMode"),U="/page";"/index"===U&&(U="/");let V=await N.prepare(a,b,{srcPage:U,multiZoneDraftMode:!1});if(!V)return b.statusCode=400,b.end("Bad Request"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let{buildId:W,query:X,params:Y,pageIsDynamic:Z,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,serverActionsManifest:ab,clientReferenceManifest:ac,subresourceIntegrityManifest:ad,prerenderManifest:ae,isDraftMode:af,resolvedPathname:ag,revalidateOnlyGenerated:ah,routerServerContext:ai,nextConfig:aj,parsedUrl:ak,interceptionRoutePatterns:al,deploymentId:am,clientAssetToken:an}=V,ao=(0,q.normalizeAppPath)(U),{isOnDemandRevalidate:ap}=V,aq=aj.experimental.ppr&&!aj.cacheComponents&&(0,I.isInterceptionRouteAppPath)(ag)?null:N.match(ag,ae),ar=(null==aq?void 0:aq.route)??null,as=!!ae.routes[ag],at=a.headers["user-agent"]||"",au=(0,t.getBotType)(at),av=(0,p.isHtmlBotRequest)(a),aw=(0,h.getRequestMeta)(a,"isPrefetchRSCRequest")??"1"===a.headers[s.NEXT_ROUTER_PREFETCH_HEADER],ax=(0,h.getRequestMeta)(a,"isRSCRequest")??!!a.headers[s.RSC_HEADER],ay=(0,r.getIsPossibleServerAction)(a),az=(0,m.checkIsAppPPREnabled)(aj.experimental.ppr),aA=a.headers[x.NEXT_RESUME_STATE_LENGTH_HEADER];if(!(0,h.getRequestMeta)(a,"postponed")&&T&&az&&ay&&aA&&"string"==typeof aA){let e=parseInt(aA,10),{maxPostponedStateSize:f,maxPostponedStateSizeBytes:g}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize);if(!isNaN(e)&&e>0){if(e>g)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(f)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let i="1 MB",j=(null==(S=aj.experimental.serverActions)?void 0:S.bodySizeLimit)??i,k=e+(j!==i?c(66716).parse(j):1048576),l=await (0,D.readBodyWithSizeLimit)(a,k);if(null===l)return b.statusCode=413,b.end("Request body exceeded limit. To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit"),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;if(l.length>=e){let b=l.subarray(0,e).toString("utf8");(0,h.addRequestMeta)(a,"postponed",b);let c=l.subarray(e);(0,h.addRequestMeta)(a,"actionBody",c)}else throw Object.defineProperty(Error(`invariant: expected ${e} bytes of postponed state but only received ${l.length} bytes`),"__NEXT_ERROR_CODE",{value:"E979",enumerable:!1,configurable:!0})}}if(!(0,h.getRequestMeta)(a,"postponed")&&az&&"1"===a.headers[x.NEXT_RESUME_HEADER]&&"POST"===a.method){let{maxPostponedStateSize:c,maxPostponedStateSizeBytes:e}=(0,D.getMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize),f=await (0,D.readBodyWithSizeLimit)(a,e);if(null===f)return b.statusCode=413,b.end((0,D.getPostponedStateExceededErrorMessage)(c)),null==d.waitUntil||d.waitUntil.call(d,Promise.resolve()),null;let g=f.toString("utf8");(0,h.addRequestMeta)(a,"postponed",g)}let aB=!0===N.isDev||!0===aj.experimental.exposeTestingApiInProductionBuild,aC=aB&&("1"===a.headers[s.NEXT_INSTANT_PREFETCH_HEADER]||void 0===a.headers[s.RSC_HEADER]&&"string"==typeof a.headers.cookie&&a.headers.cookie.includes(s.NEXT_INSTANT_TEST_COOKIE+"=")),aD=(az||aC)&&((null==(K=ae.routes[ao]??ae.dynamicRoutes[ao])?void 0:K.renderingMode)==="PARTIALLY_STATIC"||aC&&(aB||(null==ai?void 0:ai.experimentalTestProxy)===!0)),aE=aC&&aD,aF=aE&&!0===N.isDev,aG=!1,aH=aD?(0,h.getRequestMeta)(a,"postponed"):void 0,aI=null==(P=ae.routes[ag])?void 0:P.prefetchDataRoute,aJ=aD&&ax&&!aw&&!aI;T&&(aJ=aJ&&!!aH);let aK=(0,h.getRequestMeta)(a,"segmentPrefetchRSCRequest"),aL=(!au||!aD)&&(!at||(0,p.shouldServeStreamingMetadata)(at,aj.htmlLimitedBots)),aM=!!((ar||as||ae.routes[ao])&&!(au&&aD)),aN=aD&&!0===aj.cacheComponents,aO=!0===N.isDev||!aM||"string"==typeof aH||(aN&&(0,h.getRequestMeta)(a,"onCacheEntryV2")?aJ&&!T:aJ),aP=!!au&&aD,aQ=(null==ar?void 0:ar.remainingPrerenderableParams)??[],aR=(null==ar?void 0:ar.fallback)===null&&((null==(Q=ar.fallbackRootParams)?void 0:Q.length)??0)>0,aS=null;if(!af&&aM&&!aO&&!ay&&!aH&&!aJ){let a=aq?"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:aq.source:null;if(!0===aj.experimental.partialFallbacks&&a&&(null==ar?void 0:ar.fallbackRouteParams)&&!aR){if(aQ.length>0){let b,c=(b=new Map(aQ.map(a=>[a.paramName,a])),a.split("/").map(a=>{let c=(0,J.getSegmentParam)(a);if(!c)return a;let d=b.get(c.paramName);if(!d)return a;let e=null==Y?void 0:Y[d.paramName];if(!e)return a;let f=Array.isArray(e)?e.map(a=>encodeURIComponent(a)).join("/"):encodeURIComponent(e);return a.replace(function(a){let{repeat:b,optional:c}=(0,J.getParamProperties)(a.paramType);return c?`[[...${a.paramName}]]`:b?`[...${a.paramName}]`:`[${a.paramName}]`}(d),f)}).join("/")||"/");aS=c!==a?c:null}}else aS=ag}let aT=aS;!aT&&(N.isDev||aM&&Z&&(null==ar?void 0:ar.fallbackRouteParams)&&!ay)&&(aT=ag),N.isDev||af||!aM||!ax||aJ||(0,k.d)(a.headers);let aU={...E,tree:L,handler:O,routeModule:N,__next_app__:M};ab&&ac&&(0,o.setManifestsSingleton)({page:U,clientReferenceManifest:ac,serverActionsManifest:ab});let aV=a.method||"GET",aW=(0,g.getTracer)(),aX=aW.getActiveScopeSpan(),aY=!!(null==ai?void 0:ai.isWrappedByNextServer),aZ=!0===aj.experimental.partialFallbacks&&aQ.length>0?(null==ar||null==(R=ar.fallbackRouteParams)?void 0:R.filter(a=>!aQ.some(b=>b.paramName===a.paramName)))??[]:[],a$=async()=>((null==ai?void 0:ai.render404)?await ai.render404(a,b,ak,!1):b.end("This page could not be found"),null);try{let f,k=N.getVaryHeader(ag,al);b.setHeader("Vary",k);let m=async(c,d)=>{let e=new l.NodeNextRequest(a),g=new l.NodeNextResponse(b);return N.render(e,g,d).finally(()=>{if(!c)return;c.setAttributes({"http.status_code":b.statusCode,"next.rsc":!1});let a=aW.getRootSpanAttributes();if(!a)return;if(a.get("next.span_type")!==i.BaseServerSpan.handleRequest)return void console.warn(`Unexpected root span type '${a.get("next.span_type")}'. Please report this Next.js issue https://github.com/vercel/next.js`);let d=a.get("next.route");if(d){let a=`${aV} ${d}`;c.setAttributes({"next.route":d,"http.route":d,"next.span_name":a}),c.updateName(a),f&&f!==c&&(f.setAttribute("http.route",d),f.updateName(a))}else c.updateName(`${aV} ${U}`)})},o=(0,h.getRequestMeta)(a,"incrementalCache")||await N.getIncrementalCache(a,aj,ae,T);null==o||o.resetRequestCache(),globalThis.__incrementalCache=o;let p=async({span:e,postponed:f,fallbackRouteParams:g,forceStaticRender:i})=>{let k={query:X,params:Y,page:ao,sharedContext:{buildId:W,deploymentId:am,clientAssetToken:an},serverComponentsHmrCache:(0,h.getRequestMeta)(a,"serverComponentsHmrCache"),fallbackRouteParams:g,renderOpts:{App:()=>null,Document:()=>null,pageConfig:{},ComponentMod:aU,Component:(0,j.T)(aU),params:Y,routeModule:N,page:U,postponed:f,shouldWaitOnAllReady:aP,serveStreamingMetadata:aL,supportsDynamicResponse:"string"==typeof f||aO,buildManifest:$,nextFontManifest:_,reactLoadableManifest:aa,subresourceIntegrityManifest:ad,setCacheStatus:null==ai?void 0:ai.setCacheStatus,setIsrStatus:null==ai?void 0:ai.setIsrStatus,setReactDebugChannel:null==ai?void 0:ai.setReactDebugChannel,sendErrorsToBrowser:null==ai?void 0:ai.sendErrorsToBrowser,dir:c(33873).join(process.cwd(),N.relativeProjectDir),isDraftMode:af,botType:au,isOnDemandRevalidate:ap,isPossibleServerAction:ay,assetPrefix:aj.assetPrefix,nextConfigOutput:aj.output,crossOrigin:aj.crossOrigin,trailingSlash:aj.trailingSlash,images:aj.images,previewProps:ae.preview,enableTainting:aj.experimental.taint,htmlLimitedBots:aj.htmlLimitedBots,reactMaxHeadersLength:aj.reactMaxHeadersLength,multiZoneDraftMode:!1,incrementalCache:o,cacheLifeProfiles:aj.cacheLife,basePath:aj.basePath,serverActions:aj.experimental.serverActions,logServerFunctions:"object"==typeof aj.logging&&!!aj.logging.serverFunctions,...aE||aF||aG?{isBuildTimePrerendering:!0,supportsDynamicResponse:!1,isStaticGeneration:!0,isDebugDynamicAccesses:aF}:{},cacheComponents:!!aj.cacheComponents,experimental:{isRoutePPREnabled:aD,expireTime:aj.expireTime,staleTimes:aj.experimental.staleTimes,dynamicOnHover:!!aj.experimental.dynamicOnHover,optimisticRouting:!!aj.experimental.optimisticRouting,inlineCss:!!aj.experimental.inlineCss,prefetchInlining:aj.experimental.prefetchInlining??!1,authInterrupts:!!aj.experimental.authInterrupts,cachedNavigations:!!aj.experimental.cachedNavigations,clientTraceMetadata:aj.experimental.clientTraceMetadata||[],clientParamParsingOrigins:aj.experimental.clientParamParsingOrigins,maxPostponedStateSizeBytes:(0,C.parseMaxPostponedStateSize)(aj.experimental.maxPostponedStateSize)},waitUntil:d.waitUntil,onClose:a=>{b.on("close",a)},onAfterTaskError:()=>{},onInstrumentationRequestError:(b,c,d,e)=>N.onRequestError(a,b,d,e,ai),err:(0,h.getRequestMeta)(a,"invokeError")}};i&&(k.renderOpts.supportsDynamicResponse=!1);let l=await m(e,k),{metadata:n}=l,{cacheControl:p,headers:q={},fetchTags:r,fetchMetrics:s}=n;if(r&&(q[x.NEXT_CACHE_TAGS_HEADER]=r),a.fetchMetrics=s,aM&&(null==p?void 0:p.revalidate)===0&&!N.isDev&&!aD){let a=n.staticBailoutInfo,b=Object.defineProperty(Error(`Page changed from static to dynamic at runtime ${ag}${(null==a?void 0:a.description)?`, reason: ${a.description}`:""} +see more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`),"__NEXT_ERROR_CODE",{value:"E132",enumerable:!1,configurable:!0});if(null==a?void 0:a.stack){let c=a.stack;b.stack=b.message+c.substring(c.indexOf("\n"))}throw b}return{value:{kind:u.CachedRouteKind.APP_PAGE,html:l,headers:q,rscData:n.flightData,postponed:n.postponed,status:n.statusCode,segmentData:n.segmentData},cacheControl:p}},q=async({hasResolved:c,previousCacheEntry:f,isRevalidating:g,span:i,forceStaticRender:j=!1})=>{let k,l=!1===N.isDev,m=c||b.writableEnded;if(ap&&ah&&!f&&!T)return(null==ai?void 0:ai.render404)?await ai.render404(a,b):(b.statusCode=404,b.end("This page could not be found")),null;if(ar&&(k=(0,v.parseFallbackField)(ar.fallback)),!0===aj.experimental.partialFallbacks&&(null==ar?void 0:ar.fallback)===null&&!aR&&aQ.length>0&&(k=v.FallbackMode.PRERENDER),k===v.FallbackMode.PRERENDER&&(0,t.isBot)(at)&&(!aD||av)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),(null==f?void 0:f.isStale)===-1&&(ap=!0),ap&&(k!==v.FallbackMode.NOT_FOUND||f)&&(k=v.FallbackMode.BLOCKING_STATIC_RENDER),!T&&k!==v.FallbackMode.BLOCKING_STATIC_RENDER&&aT&&!m&&!af&&Z&&(l||!as)){if((l||ar)&&k===v.FallbackMode.NOT_FOUND){if(aj.adapterPath)return await a$();throw new B.NoFallbackError}if(aD&&(aj.cacheComponents?!aJ:!ax)){let b=l&&"string"==typeof(null==ar?void 0:ar.fallback)?ar.fallback:ao,f=(l||aE)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;aE&&f&&(0,h.addRequestMeta)(a,"fallbackParams",f);let g=await N.handleResponse({cacheKey:b,req:a,nextConfig:aj,routeKind:e.RouteKind.APP_PAGE,isFallback:!0,prerenderManifest:ae,isRoutePPREnabled:aD,responseGenerator:async()=>p({span:i,postponed:void 0,fallbackRouteParams:f,forceStaticRender:!0}),waitUntil:d.waitUntil,isMinimalMode:T});if(null===g)return null;if(g)return T||!aD||!(aQ.length>0)||!0!==aj.experimental.partialFallbacks||!aS||!o||ap||aG||aB||aC||aw||(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(aS,o,aD,!1,a=>p({span:a.span,postponed:void 0,fallbackRouteParams:aZ.length>0?(0,n.createOpaqueFallbackRouteParams)(aZ):null,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}),delete g.cacheControl,g}}let r=ap||g||!aH?void 0:aH;if(aN&&!T&&o&&(aJ||ay)&&!j){let b=await o.get(ag,{kind:u.IncrementalCacheKind.APP_PAGE,isRoutePPREnabled:!0,isFallback:!1});b&&b.value&&b.value.kind===u.CachedRouteKind.APP_PAGE&&(r=b.value.postponed,b&&(-1===b.isStale||!0===b.isStale)&&(0,H.scheduleOnNextTick)(async()=>{let b=N.getResponseCache(a);try{await b.revalidate(ag,o,aD,!1,a=>q({...a,forceStaticRender:!0}),null,c,d.waitUntil)}catch(a){console.error("Error revalidating the page in the background",a)}}))}if((aE||aF)&&void 0!==r)return{cacheControl:{revalidate:1,expire:void 0},value:{kind:u.CachedRouteKind.PAGES,html:w.default.EMPTY,pageData:{},headers:void 0,status:void 0}};let s=(l&&(0,h.getRequestMeta)(a,"renderFallbackShell")||aE&&!as)&&(null==ar?void 0:ar.fallbackRouteParams)?(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams):aG?(0,n.getFallbackRouteParams)(ao,N):null;if((l||aE)&&aj.cacheComponents&&!as&&(null==ar?void 0:ar.fallbackRouteParams)){let b=(0,n.createOpaqueFallbackRouteParams)(ar.fallbackRouteParams);b&&(0,h.addRequestMeta)(a,"fallbackParams",b)}return p({span:i,postponed:r,fallbackRouteParams:s,forceStaticRender:j})},r=async c=>{var f,g,i,j,k;let l,m=await N.handleResponse({cacheKey:aS,responseGenerator:a=>q({span:c,...a}),routeKind:e.RouteKind.APP_PAGE,isOnDemandRevalidate:ap,isRoutePPREnabled:aD,req:a,nextConfig:aj,prerenderManifest:ae,waitUntil:d.waitUntil,isMinimalMode:T});if(af&&b.setHeader("Cache-Control","private, no-cache, no-store, max-age=0, must-revalidate"),N.isDev&&b.setHeader("Cache-Control","no-cache, must-revalidate"),!m){if(aS)throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return null}if((null==(f=m.value)?void 0:f.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant app-page handler received invalid cache entry ${null==(i=m.value)?void 0:i.kind}`),"__NEXT_ERROR_CODE",{value:"E707",enumerable:!1,configurable:!0});let n="string"==typeof m.value.postponed;ax&&!ay&&am&&b.setHeader(x.NEXT_NAV_DEPLOYMENT_ID_HEADER,am),aM&&!aJ&&(!n||aw)&&(T||b.setHeader("x-nextjs-cache",ap?"REVALIDATED":m.isMiss?"MISS":m.isStale?"STALE":"HIT"),b.setHeader(s.NEXT_IS_PRERENDER_HEADER,"1"));let{value:o}=m;if(aH)l={revalidate:0,expire:void 0};else if(aJ)l={revalidate:0,expire:void 0};else if(!N.isDev)if(af)l={revalidate:0,expire:void 0};else if(aM){if(m.cacheControl)if("number"==typeof m.cacheControl.revalidate){if(m.cacheControl.revalidate<1)throw Object.defineProperty(Error(`Invalid revalidate configuration provided: ${m.cacheControl.revalidate} < 1`),"__NEXT_ERROR_CODE",{value:"E22",enumerable:!1,configurable:!0});l={revalidate:m.cacheControl.revalidate,expire:(null==(j=m.cacheControl)?void 0:j.expire)??aj.expireTime}}else l={revalidate:x.CACHE_ONE_YEAR_SECONDS,expire:void 0}}else b.getHeader("Cache-Control")||(l={revalidate:0,expire:void 0});if(m.cacheControl=l,"string"==typeof aK&&(null==o?void 0:o.kind)===u.CachedRouteKind.APP_PAGE&&o.segmentData){b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"2");let c=null==(k=o.headers)?void 0:k[x.NEXT_CACHE_TAGS_HEADER];T&&aM&&c&&"string"==typeof c&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,c);let d=o.segmentData.get(aK);return void 0!==d?(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(d,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl}):(b.statusCode=204,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl}))}let r=aN?(0,h.getRequestMeta)(a,"onCacheEntryV2")??(0,h.getRequestMeta)(a,"onCacheEntry"):(0,h.getRequestMeta)(a,"onCacheEntry");if(r&&await r(m,{url:(0,h.getRequestMeta)(a,"initURL")??a.url}))return null;if(o.headers){let a={...o.headers};for(let[c,d]of(T&&aM||delete a[x.NEXT_CACHE_TAGS_HEADER],Object.entries(a)))if(void 0!==d)if(Array.isArray(d))for(let a of d)b.appendHeader(c,a);else"number"==typeof d&&(d=d.toString()),b.appendHeader(c,d)}let t=null==(g=o.headers)?void 0:g[x.NEXT_CACHE_TAGS_HEADER];if(T&&aM&&t&&"string"==typeof t&&b.setHeader(x.NEXT_CACHE_TAGS_HEADER,t),!o.status||ax&&aD||(b.statusCode=o.status),!T&&o.status&&F.RedirectStatusCode[o.status]&&ax&&(b.statusCode=200),n&&!aJ&&b.setHeader(s.NEXT_DID_POSTPONE_HEADER,"1"),ax&&!af){if(void 0===o.rscData){if(o.html.contentType!==s.RSC_CONTENT_TYPE_HEADER)if(aj.cacheComponents)return b.statusCode=404,(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.EMPTY,cacheControl:m.cacheControl});else throw Object.defineProperty(new G.InvariantError(`Expected RSC response, got ${o.html.contentType}`),"__NEXT_ERROR_CODE",{value:"E789",enumerable:!1,configurable:!0});return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:o.html,cacheControl:m.cacheControl})}return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:w.default.fromStatic(o.rscData,s.RSC_CONTENT_TYPE_HEADER),cacheControl:m.cacheControl})}let v=o.html;if(aC&&aE){let c=!0===N.isDev?crypto.randomUUID():null;return v.pipeThrough((0,z.createInstantTestScriptInsertionTransformStream)(c)),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})}if(!n||T||ax)return(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:m.cacheControl});if(aE||aF)return v.push(new ReadableStream({start(a){a.enqueue(y.ENCODED_TAGS.CLOSED.BODY_AND_HTML),a.close()}})),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}});let B=new TransformStream;return v.push(B.readable),p({span:c,postponed:o.postponed,fallbackRouteParams:null,forceStaticRender:!1}).then(async a=>{var b,c;if(!a)throw Object.defineProperty(Error("Invariant: expected a result to be returned"),"__NEXT_ERROR_CODE",{value:"E463",enumerable:!1,configurable:!0});if((null==(b=a.value)?void 0:b.kind)!==u.CachedRouteKind.APP_PAGE)throw Object.defineProperty(Error(`Invariant: expected a page response, got ${null==(c=a.value)?void 0:c.kind}`),"__NEXT_ERROR_CODE",{value:"E305",enumerable:!1,configurable:!0});await a.value.html.pipeTo(B.writable)}).catch(a=>{B.writable.abort(a).catch(a=>{console.error("couldn't abort transformer",a)})}),(0,A.sendRenderResult)({req:a,res:b,generateEtags:aj.generateEtags,poweredByHeader:aj.poweredByHeader,result:v,cacheControl:{revalidate:0,expire:void 0}})};if(!aY||!aX)return f=aW.getActiveScopeSpan(),await aW.withPropagatedContext(a.headers,()=>aW.trace(i.BaseServerSpan.handleRequest,{spanName:`${aV} ${U}`,kind:g.SpanKind.SERVER,attributes:{"http.method":aV,"http.target":a.url}},r),void 0,!aY);await r(aX)}catch(b){throw b instanceof B.NoFallbackError||await N.onRequestError(a,b,{routerKind:"App Router",routePath:U,routeType:"render",revalidateReason:(0,f.c)({isStaticGeneration:aM,isOnDemandRevalidate:ap})},!1,ai),b}}},51455:a=>{a.exports=require("node:fs/promises")},55511:a=>{a.exports=require("crypto")},55591:a=>{a.exports=require("https")},55777:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return n},getRedirectTypeFromError:function(){return m},getURLFromRedirectError:function(){return l},permanentRedirect:function(){return k},redirect:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(71860),g=c(11858),h=c(19121).actionAsyncStorage;function i(a,b,c=f.RedirectStatusCode.TemporaryRedirect){let d=Object.defineProperty(Error(g.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return d.digest=`${g.REDIRECT_ERROR_CODE};${b};${a};${c};`,d}function j(a,b){throw i(a,b??=h?.getStore()?.isAction?"push":"replace",f.RedirectStatusCode.TemporaryRedirect)}function k(a,b="replace"){throw i(a,b,f.RedirectStatusCode.PermanentRedirect)}function l(a){return(0,g.isRedirectError)(a)?a.digest.split(";").slice(2,-2).join(";"):null}function m(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return a.digest.split(";",2)[1]}function n(a){if(!(0,g.isRedirectError)(a))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(a.digest.split(";").at(-2))}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},59459:(a,b,c)=>{function d(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"unauthorized",{enumerable:!0,get:function(){return d}}),c(54928).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},63033:a=>{a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},70722:a=>{a.exports=require("next/dist/shared/lib/invariant-error")},73024:a=>{a.exports=require("node:fs")},73136:a=>{a.exports=require("node:url")},74075:a=>{a.exports=require("zlib")},76760:a=>{a.exports=require("node:path")},77068:a=>{a.exports=require("next/dist/shared/lib/size-limit")},77598:a=>{a.exports=require("node:crypto")},79551:a=>{a.exports=require("url")},79646:a=>{a.exports=require("child_process")},81115:a=>{a.exports=require("constants")},84573:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"notFound",{enumerable:!0,get:function(){return f}});let d=c(54928),e=`${d.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function f(){let a=Object.defineProperty(Error(e),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw a.digest=e,a}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},85848:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={ReadonlyURLSearchParams:function(){return f.ReadonlyURLSearchParams},RedirectType:function(){return m},forbidden:function(){return i.forbidden},notFound:function(){return h.notFound},permanentRedirect:function(){return g.permanentRedirect},redirect:function(){return g.redirect},unauthorized:function(){return j.unauthorized},unstable_isUnrecognizedActionError:function(){return l},unstable_rethrow:function(){return k.unstable_rethrow}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(97619),g=c(55777),h=c(84573),i=c(4192),j=c(59459),k=c(27283);function l(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let m={push:"push",replace:"replace"};("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},86439:a=>{a.exports=require("next/dist/shared/lib/no-fallback-error.external")},91645:a=>{a.exports=require("net")},93105:(a,b,c)=>{c.r(b),c.d(b,{default:()=>e}),c(56502);var d=c(85848);function e(){(0,d.redirect)("/dashboard")}},94735:a=>{a.exports=require("events")},97619:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReadonlyURLSearchParams",{enumerable:!0,get:function(){return d}});class c extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class d extends URLSearchParams{append(){throw new c}delete(){throw new c}set(){throw new c}sort(){throw new c}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)}};var b=require("../webpack-runtime.js");b.C(a);var c=b.X(0,[7773,3656,2566,5978,375,2371,7770,21,8193,2503,514,3774,8035,2049],()=>b(b.s=50999));module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/app/page.js.nft.json b/cli/app/.next/server/app/page.js.nft.json new file mode 100644 index 00000000000..cdb1821be7f --- /dev/null +++ b/cli/app/.next/server/app/page.js.nft.json @@ -0,0 +1 @@ +{"version":1,"files":["../../../../node_modules/@swc/helpers/_/_interop_require_default/package.json","../../../../node_modules/@swc/helpers/cjs/_interop_require_default.cjs","../../../../node_modules/@swc/helpers/package.json","../../../../node_modules/next/dist/build/adapter/setup-node-env.external.js","../../../../node_modules/next/dist/client/components/app-router-headers.js","../../../../node_modules/next/dist/client/components/hooks-server-context.js","../../../../node_modules/next/dist/client/components/static-generation-bailout.js","../../../../node_modules/next/dist/client/lib/console.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/index.js","../../../../node_modules/next/dist/compiled/@opentelemetry/api/package.json","../../../../node_modules/next/dist/compiled/bytes/index.js","../../../../node_modules/next/dist/compiled/bytes/package.json","../../../../node_modules/next/dist/compiled/jsonwebtoken/index.js","../../../../node_modules/next/dist/compiled/jsonwebtoken/package.json","../../../../node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js","../../../../node_modules/next/dist/compiled/source-map/package.json","../../../../node_modules/next/dist/compiled/source-map/source-map.js","../../../../node_modules/next/dist/compiled/stacktrace-parser/package.json","../../../../node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","../../../../node_modules/next/dist/compiled/ws/index.js","../../../../node_modules/next/dist/compiled/ws/package.json","../../../../node_modules/next/dist/lib/client-and-server-references.js","../../../../node_modules/next/dist/lib/constants.js","../../../../node_modules/next/dist/lib/framework/boundary-constants.js","../../../../node_modules/next/dist/lib/interop-default.js","../../../../node_modules/next/dist/lib/is-error.js","../../../../node_modules/next/dist/lib/picocolors.js","../../../../node_modules/next/dist/lib/scheduler.js","../../../../node_modules/next/dist/lib/semver-noop.js","../../../../node_modules/next/dist/server/app-render/action-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/action-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/after-task-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/async-local-storage.js","../../../../node_modules/next/dist/server/app-render/cache-signal.js","../../../../node_modules/next/dist/server/app-render/console-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/console-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/dynamic-rendering.js","../../../../node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js","../../../../node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js","../../../../node_modules/next/dist/server/app-render/staged-rendering.js","../../../../node_modules/next/dist/server/app-render/work-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-async-storage.external.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js","../../../../node_modules/next/dist/server/app-render/work-unit-async-storage.external.js","../../../../node_modules/next/dist/server/dev/browser-logs/file-logger.js","../../../../node_modules/next/dist/server/dynamic-rendering-utils.js","../../../../node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js","../../../../node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js","../../../../node_modules/next/dist/server/lib/lru-cache.js","../../../../node_modules/next/dist/server/lib/parse-stack.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js","../../../../node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js","../../../../node_modules/next/dist/server/lib/source-maps.js","../../../../node_modules/next/dist/server/lib/trace/constants.js","../../../../node_modules/next/dist/server/lib/trace/tracer.js","../../../../node_modules/next/dist/server/load-manifest.external.js","../../../../node_modules/next/dist/server/node-environment-baseline.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-dim.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-exit.js","../../../../node_modules/next/dist/server/node-environment-extensions/console-file.js","../../../../node_modules/next/dist/server/node-environment-extensions/date.js","../../../../node_modules/next/dist/server/node-environment-extensions/error-inspect.js","../../../../node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/io-utils.js","../../../../node_modules/next/dist/server/node-environment-extensions/node-crypto.js","../../../../node_modules/next/dist/server/node-environment-extensions/random.js","../../../../node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js","../../../../node_modules/next/dist/server/node-environment-extensions/web-crypto.js","../../../../node_modules/next/dist/server/node-environment.js","../../../../node_modules/next/dist/server/node-polyfill-crypto.js","../../../../node_modules/next/dist/server/patch-error-inspect.js","../../../../node_modules/next/dist/server/require-hook.js","../../../../node_modules/next/dist/server/response-cache/types.js","../../../../node_modules/next/dist/server/runtime-reacts.external.js","../../../../node_modules/next/dist/shared/lib/deep-freeze.js","../../../../node_modules/next/dist/shared/lib/invariant-error.js","../../../../node_modules/next/dist/shared/lib/is-plain-object.js","../../../../node_modules/next/dist/shared/lib/is-thenable.js","../../../../node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","../../../../node_modules/next/dist/shared/lib/no-fallback-error.external.js","../../../../node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","../../../../node_modules/next/dist/shared/lib/promise-with-resolvers.js","../../../../node_modules/next/dist/shared/lib/router/utils/app-paths.js","../../../../node_modules/next/dist/shared/lib/router/utils/get-segment-param.js","../../../../node_modules/next/dist/shared/lib/router/utils/html-bots.js","../../../../node_modules/next/dist/shared/lib/router/utils/interception-routes.js","../../../../node_modules/next/dist/shared/lib/router/utils/is-bot.js","../../../../node_modules/next/dist/shared/lib/segment.js","../../../../node_modules/next/dist/shared/lib/server-reference-info.js","../../../../node_modules/next/dist/shared/lib/size-limit.js","../../../../node_modules/next/package.json","../../../../node_modules/react/cjs/react.development.js","../../../../node_modules/react/cjs/react.production.js","../../../../node_modules/react/index.js","../../../../node_modules/react/package.json","../../../../package.json","../../../package.json","../../../src/mitm/server.js","../../../src/shared/utils/apiKey.js","../../package.json","../chunks/1249.js","../chunks/2049.js","../chunks/21.js","../chunks/2371.js","../chunks/2503.js","../chunks/2566.js","../chunks/3656.js","../chunks/375.js","../chunks/3774.js","../chunks/514.js","../chunks/5978.js","../chunks/64.js","../chunks/7770.js","../chunks/7773.js","../chunks/8035.js","../chunks/8193.js","../webpack-runtime.js","page_client-reference-manifest.js"]} \ No newline at end of file diff --git a/cli/app/.next/server/app/page_client-reference-manifest.js b/cli/app/.next/server/app/page_client-reference-manifest.js new file mode 100644 index 00000000000..27ff4222910 --- /dev/null +++ b/cli/app/.next/server/app/page_client-reference-manifest.js @@ -0,0 +1 @@ +globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"292":{"*":{"id":"75012","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"39907","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"7274","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"33265","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"44037","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"37545","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"60115","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"66610","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"77410","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"11747","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"37922","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"95892","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"65227","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"9904","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"81005","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"52149","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"38298","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"66646","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"15769","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"26741","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"92251","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"62490","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"50005","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"33160","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"55590","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"14638","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"48300","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"67394","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"61094","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"46411","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"33446","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"49871","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"31288","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"46041","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"53142","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"71708","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"44403","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"57783","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"27848","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"82774","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"27386","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"22649","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"33809","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"85600","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"14504","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"100","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"41225","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"81059","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"37421","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"4565","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"89437","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"6564","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"60835","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"27452","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"93447","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"68657","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"81101","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"74004","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"18649","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"11892","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"7268","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"16081","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/Working/router4/node_modules/next/dist/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/builtin/global-error.js":{"id":57567,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-page.js":{"id":1076,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/client-segment.js":{"id":21580,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":47245,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/layout-router.js":{"id":91133,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":4297,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/framework/boundary-components.js":{"id":31872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":12569,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/globals.css":{"id":43333,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js":{"id":70339,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js":{"id":98814,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/node_modules/next/font/google/target.css?{\"path\":\"src/app/layout.js\",\"import\":\"Inter\",\"arguments\":[{\"subsets\":[\"latin\"],\"variable\":\"--font-inter\"}],\"variableName\":\"inter\"}":{"id":88276,"name":"*","chunks":["505","static/chunks/505-87d01d8c08b1bf87.js","7177","static/chunks/app/layout-c47481f46f5ae72b.js"],"async":false},"/Users/Working/router4/app/src/app/callback/page.js":{"id":30948,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/dashboard/settings/pricing/page.js":{"id":32530,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/landing/page.js":{"id":16435,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/login/page.js":{"id":15872,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/shared/components/AddCustomEmbeddingModal.js":{"id":12820,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Avatar.js":{"id":82455,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Badge.js":{"id":35045,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Button.js":{"id":38230,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Card.js":{"id":292,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ChangelogModal.js":{"id":26125,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ComboFormModal.js":{"id":52327,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/CursorAuthModal.js":{"id":70391,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/EditConnectionModal.js":{"id":90163,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Footer.js":{"id":70789,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/GitLabAuthModal.js":{"id":50136,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Header.js":{"id":51123,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/HeaderMenu.js":{"id":80600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/IFlowCookieModal.js":{"id":68600,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Input.js":{"id":53038,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroAuthModal.js":{"id":63380,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroOAuthWrapper.js":{"id":73531,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/KiroSocialOAuthModal.js":{"id":51454,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/LanguageSwitcher.js":{"id":12003,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/AuthLayout.js":{"id":54546,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/layouts/DashboardLayout.js":{"id":13048,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Loading.js":{"id":91494,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ManualConfigModal.js":{"id":5671,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Modal.js":{"id":66911,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ModelSelectModal.js":{"id":24372,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NineRemoteButton.js":{"id":67692,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/NoAuthProxyCard.js":{"id":99775,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/OAuthModal.js":{"id":3242,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ProviderInfoCard.js":{"id":8569,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/RequestLogger.js":{"id":32135,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/SegmentedControl.js":{"id":1755,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Select.js":{"id":37066,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Sidebar.js":{"id":56550,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/ThemeToggle.js":{"id":84675,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Toggle.js":{"id":14406,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/Tooltip.js":{"id":13333,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/shared/components/UsageStats.js":{"id":3412,"name":"*","chunks":["4335","static/chunks/c6123951-b42288d628b452ba.js","6795","static/chunks/6795-3ddcc1d55c65c001.js","505","static/chunks/505-87d01d8c08b1bf87.js","4156","static/chunks/4156-cc8090a3b79e0545.js","9305","static/chunks/app/(dashboard)/layout-14ad56e827498f3d.js"],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/basic-chat/BasicChatPageClient.js":{"id":72600,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/cli-tools/CLIToolsPageClient.js":{"id":46772,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/combos/page.js":{"id":37175,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js":{"id":64795,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/[id]/page.js":{"id":38596,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/[kind]/page.js":{"id":47432,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/combo/[id]/page.js":{"id":37694,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/media-providers/web/page.js":{"id":69640,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/mitm/MitmPageClient.js":{"id":71103,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/new/page.js":{"id":57047,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/components/ProviderLimits/index.js":{"id":59295,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/skills/page.js":{"id":29650,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/translator/page.js":{"id":54053,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/usage/page.js":{"id":83101,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/console-log/ConsoleLogClient.js":{"id":25733,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/profile/page.js":{"id":65177,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/proxy-pools/page.js":{"id":85148,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/page.js":{"id":69692,"name":"*","chunks":[],"async":false},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/providers/[id]/page.js":{"id":60717,"name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/Working/router4/app/src/":[],"/Users/Working/router4/app/src/app/layout":[{"inlined":false,"path":"static/css/313a62036a09d576.css"},{"inlined":false,"path":"static/css/081a0afca5a9bd20.css"}],"/Users/Working/router4/app/src/app/page":[],"/Users/Working/router4/app/src/app/(dashboard)/layout":[{"inlined":false,"path":"static/css/599369d853c61df7.css"}]},"rscModuleMapping":{"292":{"*":{"id":"82934","name":"*","chunks":[],"async":false}},"1076":{"*":{"id":"4396","name":"*","chunks":[],"async":false}},"1755":{"*":{"id":"61357","name":"*","chunks":[],"async":false}},"3242":{"*":{"id":"15044","name":"*","chunks":[],"async":false}},"3412":{"*":{"id":"85634","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"51739","name":"*","chunks":[],"async":false}},"5671":{"*":{"id":"33335","name":"*","chunks":[],"async":false}},"8569":{"*":{"id":"95031","name":"*","chunks":[],"async":false}},"12003":{"*":{"id":"86241","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"14801","name":"*","chunks":[],"async":false}},"12820":{"*":{"id":"89468","name":"*","chunks":[],"async":false}},"13048":{"*":{"id":"60864","name":"*","chunks":[],"async":false}},"13333":{"*":{"id":"78249","name":"*","chunks":[],"async":false}},"14406":{"*":{"id":"86672","name":"*","chunks":[],"async":false}},"15872":{"*":{"id":"5142","name":"*","chunks":[],"async":false}},"16435":{"*":{"id":"3256","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"94746","name":"*","chunks":[],"async":false}},"24372":{"*":{"id":"37218","name":"*","chunks":[],"async":false}},"25733":{"*":{"id":"74159","name":"*","chunks":[],"async":false}},"26125":{"*":{"id":"20535","name":"*","chunks":[],"async":false}},"29650":{"*":{"id":"1304","name":"*","chunks":[],"async":false}},"30948":{"*":{"id":"37400","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"91996","name":"*","chunks":[],"async":false}},"32135":{"*":{"id":"81567","name":"*","chunks":[],"async":false}},"32530":{"*":{"id":"25682","name":"*","chunks":[],"async":false}},"35045":{"*":{"id":"69385","name":"*","chunks":[],"async":false}},"37066":{"*":{"id":"22252","name":"*","chunks":[],"async":false}},"37175":{"*":{"id":"98723","name":"*","chunks":[],"async":false}},"37694":{"*":{"id":"17626","name":"*","chunks":[],"async":false}},"38230":{"*":{"id":"38868","name":"*","chunks":[],"async":false}},"38596":{"*":{"id":"23476","name":"*","chunks":[],"async":false}},"43333":{"*":{"id":"20485","name":"*","chunks":[],"async":false}},"46772":{"*":{"id":"8834","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"44469","name":"*","chunks":[],"async":false}},"47432":{"*":{"id":"53192","name":"*","chunks":[],"async":false}},"50136":{"*":{"id":"78472","name":"*","chunks":[],"async":false}},"51123":{"*":{"id":"90537","name":"*","chunks":[],"async":false}},"51454":{"*":{"id":"65024","name":"*","chunks":[],"async":false}},"52327":{"*":{"id":"91329","name":"*","chunks":[],"async":false}},"53038":{"*":{"id":"8114","name":"*","chunks":[],"async":false}},"54053":{"*":{"id":"38768","name":"*","chunks":[],"async":false}},"54546":{"*":{"id":"68480","name":"*","chunks":[],"async":false}},"56550":{"*":{"id":"44846","name":"*","chunks":[],"async":false}},"57047":{"*":{"id":"78353","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"75765","name":"*","chunks":[],"async":false}},"59295":{"*":{"id":"67235","name":"*","chunks":[],"async":false}},"60717":{"*":{"id":"43394","name":"*","chunks":[],"async":false}},"63380":{"*":{"id":"932","name":"*","chunks":[],"async":false}},"64795":{"*":{"id":"14567","name":"*","chunks":[],"async":false}},"65177":{"*":{"id":"50747","name":"*","chunks":[],"async":false}},"66911":{"*":{"id":"73723","name":"*","chunks":[],"async":false}},"67692":{"*":{"id":"69270","name":"*","chunks":[],"async":false}},"68600":{"*":{"id":"50258","name":"*","chunks":[],"async":false}},"69640":{"*":{"id":"58770","name":"*","chunks":[],"async":false}},"69692":{"*":{"id":"34202","name":"*","chunks":[],"async":false}},"70339":{"*":{"id":"25385","name":"*","chunks":[],"async":false}},"70391":{"*":{"id":"51283","name":"*","chunks":[],"async":false}},"70789":{"*":{"id":"80959","name":"*","chunks":[],"async":false}},"71103":{"*":{"id":"98831","name":"*","chunks":[],"async":false}},"72600":{"*":{"id":"31178","name":"*","chunks":[],"async":false}},"73531":{"*":{"id":"13377","name":"*","chunks":[],"async":false}},"80600":{"*":{"id":"87030","name":"*","chunks":[],"async":false}},"82455":{"*":{"id":"97617","name":"*","chunks":[],"async":false}},"83101":{"*":{"id":"16865","name":"*","chunks":[],"async":false}},"84675":{"*":{"id":"46127","name":"*","chunks":[],"async":false}},"85148":{"*":{"id":"28606","name":"*","chunks":[],"async":false}},"90163":{"*":{"id":"39623","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"80913","name":"*","chunks":[],"async":false}},"91494":{"*":{"id":"59062","name":"*","chunks":[],"async":false}},"98814":{"*":{"id":"87050","name":"*","chunks":[],"async":false}},"99775":{"*":{"id":"89439","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{"1076":{"*":{"id":"88182","name":"*","chunks":[],"async":false}},"4297":{"*":{"id":"92249","name":"*","chunks":[],"async":false}},"12569":{"*":{"id":"35879","name":"*","chunks":[],"async":false}},"21580":{"*":{"id":"20232","name":"*","chunks":[],"async":false}},"31872":{"*":{"id":"40622","name":"*","chunks":[],"async":false}},"47245":{"*":{"id":"94647","name":"*","chunks":[],"async":false}},"57567":{"*":{"id":"11319","name":"*","chunks":[],"async":false}},"91133":{"*":{"id":"90511","name":"*","chunks":[],"async":false}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/1249.js b/cli/app/.next/server/chunks/1249.js new file mode 100644 index 00000000000..4d61eec5bfc --- /dev/null +++ b/cli/app/.next/server/chunks/1249.js @@ -0,0 +1 @@ +"use strict";exports.id=1249,exports.ids=[1249],exports.modules={61249:(a,b,c)=>{c.d(b,{PROVIDER_PRICING:()=>e,ad:()=>i,getPricingForModel:()=>h});let d={"claude-opus-4-6":{input:5,output:25,cached:.5,reasoning:25,cache_creation:6.25},"claude-opus-4-5-20251101":{input:5,output:25,cached:.5,reasoning:25,cache_creation:6.25},"claude-sonnet-4-6":{input:3,output:15,cached:.3,reasoning:15,cache_creation:3.75},"claude-sonnet-4-5-20250929":{input:3,output:15,cached:.3,reasoning:15,cache_creation:3.75},"claude-haiku-4-5-20251001":{input:1,output:5,cached:.1,reasoning:5,cache_creation:1.25},"claude-sonnet-4-20250514":{input:3,output:15,cached:1.5,reasoning:15,cache_creation:3},"claude-opus-4-20250514":{input:15,output:25,cached:7.5,reasoning:112.5,cache_creation:15},"claude-3-5-sonnet-20241022":{input:3,output:15,cached:1.5,reasoning:15,cache_creation:3},"claude-haiku-4.5":{input:.5,output:2.5,cached:.05,reasoning:3.75,cache_creation:.5},"claude-opus-4.1":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-opus-4.5":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-opus-4.6":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-sonnet-4":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-sonnet-4.5":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-sonnet-4.6":{input:3,output:15,cached:.3,reasoning:22.5,cache_creation:3},"claude-opus-4-5-thinking":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"claude-opus-4-6-thinking":{input:5,output:25,cached:.5,reasoning:37.5,cache_creation:5},"gpt-3.5-turbo":{input:.5,output:1.5,cached:.25,reasoning:2.25,cache_creation:.5},"gpt-4":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-4-turbo":{input:10,output:30,cached:5,reasoning:45,cache_creation:10},"gpt-4o":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-4o-mini":{input:.15,output:.6,cached:.075,reasoning:.9,cache_creation:.15},"gpt-4.1":{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5},"gpt-5":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5-mini":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"gpt-5-codex":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5.1":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.1-codex":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.1-codex-mini":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"gpt-5.1-codex-mini-high":{input:2,output:8,cached:1,reasoning:12,cache_creation:2},"gpt-5.1-codex-max":{input:8,output:32,cached:4,reasoning:48,cache_creation:8},"gpt-5.2":{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5},"gpt-5.2-codex":{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5},"gpt-5.3-codex":{input:6,output:24,cached:3,reasoning:36,cache_creation:6},"gpt-5.3-codex-xhigh":{input:10,output:40,cached:5,reasoning:60,cache_creation:10},"gpt-5.3-codex-high":{input:8,output:32,cached:4,reasoning:48,cache_creation:8},"gpt-5.3-codex-low":{input:4,output:16,cached:2,reasoning:24,cache_creation:4},"gpt-5.3-codex-none":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gpt-5.3-codex-spark":{input:3,output:12,cached:.3,reasoning:12,cache_creation:3},o1:{input:15,output:60,cached:7.5,reasoning:90,cache_creation:15},"o1-mini":{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3},"gemini-3-flash-preview":{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5},"gemini-3-pro-preview":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-3.1-pro-low":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-3.1-pro-high":{input:4,output:18,cached:.5,reasoning:27,cache_creation:4},"gemini-3-flash":{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5},"gemini-2.5-pro":{input:2,output:12,cached:.25,reasoning:18,cache_creation:2},"gemini-2.5-flash":{input:.3,output:2.5,cached:.03,reasoning:3.75,cache_creation:.3},"gemini-2.5-flash-lite":{input:.15,output:1.25,cached:.015,reasoning:1.875,cache_creation:.15},"qwen3-coder-plus":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"qwen3-coder-flash":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"kimi-k2":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"kimi-k2-thinking":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"kimi-k2.5":{input:1.2,output:4.8,cached:.6,reasoning:7.2,cache_creation:1.2},"kimi-k2.5-thinking":{input:1.8,output:7.2,cached:.9,reasoning:10.8,cache_creation:1.8},"kimi-latest":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"deepseek-chat":{input:.28,output:.42,cached:.028,reasoning:.42,cache_creation:.28},"deepseek-reasoner":{input:.28,output:.42,cached:.028,reasoning:.42,cache_creation:.28},"deepseek-r1":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"deepseek-v3.2-chat":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"deepseek-v3.2-reasoner":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"glm-4.6":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"glm-4.6v":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"glm-4.7":{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75},"glm-5":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"MiniMax-M2.1":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"MiniMax-M2.5":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"MiniMax-M2.7":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"minimax-m2.1":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"minimax-m2.5":{input:.6,output:2.4,cached:.3,reasoning:3.6,cache_creation:.6},"grok-code-fast-1":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},auto:{input:2,output:8,cached:1,reasoning:12,cache_creation:2},"oswe-vscode-prime":{input:1,output:4,cached:.5,reasoning:6,cache_creation:1},"gpt-oss-120b-medium":{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5},"vision-model":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5},"coder-model":{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5}},e={gh:{"gpt-5.3-codex":{input:1.75,output:14,cached:.175,reasoning:14,cache_creation:1.75}}},f=[{pattern:"*-codex-xhigh",pricing:{input:10,output:40,cached:5,reasoning:60,cache_creation:10}},{pattern:"*-codex-high",pricing:{input:8,output:32,cached:4,reasoning:48,cache_creation:8}},{pattern:"*-codex-max",pricing:{input:8,output:32,cached:4,reasoning:48,cache_creation:8}},{pattern:"*-codex-mini-*",pricing:{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5}},{pattern:"*-codex-mini",pricing:{input:1.5,output:6,cached:.75,reasoning:9,cache_creation:1.5}},{pattern:"*-codex-low",pricing:{input:4,output:16,cached:2,reasoning:24,cache_creation:4}},{pattern:"*-codex-none",pricing:{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},{pattern:"*-codex-spark",pricing:{input:3,output:12,cached:.3,reasoning:12,cache_creation:3}},{pattern:"codex-*",pricing:{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},{pattern:"*-codex",pricing:{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},{pattern:"claude-opus-*",pricing:{input:5,output:25,cached:.5,reasoning:25,cache_creation:6.25}},{pattern:"claude-sonnet-*",pricing:{input:3,output:15,cached:.3,reasoning:15,cache_creation:3.75}},{pattern:"claude-haiku-*",pricing:{input:1,output:5,cached:.1,reasoning:5,cache_creation:1.25}},{pattern:"claude-*",pricing:{input:3,output:15,cached:.3,reasoning:15,cache_creation:3.75}},{pattern:"gemini-*-flash-lite",pricing:{input:.15,output:1.25,cached:.015,reasoning:1.875,cache_creation:.15}},{pattern:"gemini-*-flash",pricing:{input:.3,output:2.5,cached:.03,reasoning:3.75,cache_creation:.3}},{pattern:"gemini-*-pro",pricing:{input:2,output:12,cached:.25,reasoning:18,cache_creation:2}},{pattern:"gemini-3-*",pricing:{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5}},{pattern:"gemini-2.5-*",pricing:{input:.3,output:2.5,cached:.03,reasoning:3.75,cache_creation:.3}},{pattern:"gemini-*",pricing:{input:.5,output:3,cached:.03,reasoning:4.5,cache_creation:.5}},{pattern:"gpt-5.3-*",pricing:{input:6,output:24,cached:3,reasoning:36,cache_creation:6}},{pattern:"gpt-5.2-*",pricing:{input:5,output:20,cached:2.5,reasoning:30,cache_creation:5}},{pattern:"gpt-5.1-*",pricing:{input:4,output:16,cached:2,reasoning:24,cache_creation:4}},{pattern:"gpt-5-*",pricing:{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},{pattern:"gpt-5*",pricing:{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},{pattern:"gpt-4o-*",pricing:{input:.15,output:.6,cached:.075,reasoning:.9,cache_creation:.15}},{pattern:"gpt-4o",pricing:{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5}},{pattern:"gpt-4*",pricing:{input:2.5,output:10,cached:1.25,reasoning:15,cache_creation:2.5}},{pattern:"o1-*",pricing:{input:3,output:12,cached:1.5,reasoning:18,cache_creation:3}},{pattern:"o1",pricing:{input:15,output:60,cached:7.5,reasoning:90,cache_creation:15}},{pattern:"o3-*",pricing:{input:10,output:40,cached:5,reasoning:60,cache_creation:10}},{pattern:"o4-*",pricing:{input:2,output:8,cached:1,reasoning:12,cache_creation:2}},{pattern:"qwen3-coder-*",pricing:{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},{pattern:"qwen*-coder-*",pricing:{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},{pattern:"qwen*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},{pattern:"kimi-*-thinking",pricing:{input:1.8,output:7.2,cached:.9,reasoning:10.8,cache_creation:1.8}},{pattern:"kimi-k2*",pricing:{input:1.2,output:4.8,cached:.6,reasoning:7.2,cache_creation:1.2}},{pattern:"kimi-*",pricing:{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},{pattern:"deepseek-*reasoner*",pricing:{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75}},{pattern:"deepseek-r*",pricing:{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75}},{pattern:"deepseek-v*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},{pattern:"deepseek-*",pricing:{input:.28,output:.42,cached:.028,reasoning:.42,cache_creation:.28}},{pattern:"glm-5*",pricing:{input:1,output:4,cached:.5,reasoning:6,cache_creation:1}},{pattern:"glm-4*",pricing:{input:.75,output:3,cached:.375,reasoning:4.5,cache_creation:.75}},{pattern:"glm-*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},{pattern:"MiniMax-*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},{pattern:"minimax-*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},{pattern:"grok-code-*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}},{pattern:"grok-*",pricing:{input:.5,output:2,cached:.25,reasoning:3,cache_creation:.5}}];function g(a,b){return RegExp("^"+a.split("*").map(a=>a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")).join(".*")+"$").test(b)}function h(a,b){if(!b)return null;if(a&&e[a]?.[b])return e[a][b];let c=b.includes("/")?b.split("/").pop():b;if(d[c])return d[c];if(d[b])return d[b];for(let{pattern:a,pricing:d}of f)if(g(a,c)||g(a,b))return d;return null}function i(){return e}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/126.js b/cli/app/.next/server/chunks/126.js new file mode 100644 index 00000000000..a994718e9d7 --- /dev/null +++ b/cli/app/.next/server/chunks/126.js @@ -0,0 +1,2 @@ +"use strict";exports.id=126,exports.ids=[126],exports.modules={21812:(a,b,c)=>{c.d(b,{SL:()=>v,ox:()=>u});var d=c(34278),e=c(73865),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(81372);let k=g().join(j.n,"request-details.json");i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let l=null;async function m(){if(!l){let a=new e.Pv(k),b=new d.t(a,{records:[]});await b.read(),b.data?.records||(b.data={records:[]}),l=b}return l}let n=null,o=0;async function p(){if(n&&Date.now()-o<5e3)return n;try{let{getSettings:a}=await Promise.all([c.e(3656),c.e(7770)]).then(c.bind(c,37770)),b=await a(),d="false"!==process.env.OBSERVABILITY_ENABLED;n={enabled:"boolean"==typeof b.enableObservability?b.enableObservability:d,maxRecords:b.observabilityMaxRecords||parseInt(process.env.OBSERVABILITY_MAX_RECORDS||String(200),10),batchSize:b.observabilityBatchSize||parseInt(process.env.OBSERVABILITY_BATCH_SIZE||String(20),10),flushIntervalMs:b.observabilityFlushIntervalMs||parseInt(process.env.OBSERVABILITY_FLUSH_INTERVAL_MS||String(5e3),10),maxJsonSize:1024*(b.observabilityMaxJsonSize||parseInt(process.env.OBSERVABILITY_MAX_JSON_SIZE||"5",10))}}catch{n={enabled:!1,maxRecords:200,batchSize:20,flushIntervalMs:5e3,maxJsonSize:5120}}return o=Date.now(),n}let q=[],r=null,s=!1;async function t(){if(!s&&0!==q.length){s=!0;try{let a=[...q];q=[];let b=await m(),c=await p();for(let d of a){d.id||(d.id=function(a){let b=new Date().toISOString(),c=Math.random().toString(36).substring(2,8),d=a?a.replace(/[^a-zA-Z0-9-]/g,"-"):"unknown";return`${b}-${c}-${d}`}(d.model)),d.timestamp||(d.timestamp=new Date().toISOString()),d.request?.headers&&(d.request.headers=function(a){if(!a||"object"!=typeof a)return{};let b=["authorization","x-api-key","cookie","token","api-key"],c={...a};for(let a of Object.keys(c))b.some(b=>a.toLowerCase().includes(b))&&delete c[a];return c}(d.request.headers));let a={id:d.id,provider:d.provider||null,model:d.model||null,connectionId:d.connectionId||null,timestamp:d.timestamp,status:d.status||null,latency:d.latency||{},tokens:d.tokens||{},request:d.request||{},providerRequest:d.providerRequest||{},providerResponse:d.providerResponse||{},response:d.response||{}},e=c.maxJsonSize;for(let b of["request","providerRequest","providerResponse","response"]){let c=JSON.stringify(a[b]);c.length>e&&(a[b]={_truncated:!0,_originalSize:c.length,_preview:c.substring(0,200)})}let f=b.data.records.findIndex(b=>b.id===a.id);-1!==f?b.data.records[f]=a:b.data.records.push(a)}for(b.data.records.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)),b.data.records.length>c.maxRecords&&(b.data.records=b.data.records.slice(0,c.maxRecords));b.data.records.length>1&&!(0x3200000>=Buffer.byteLength(JSON.stringify(b.data),"utf8"));)b.data.records=b.data.records.slice(0,Math.floor(b.data.records.length/2));await b.write()}catch(a){console.error("[requestDetailsDb] Batch write failed:",a)}finally{s=!1}}}async function u(a){let b=await p();b.enabled&&(q.push(a),q.length>=b.batchSize?(await t(),r&&(clearTimeout(r),r=null)):r||(r=setTimeout(()=>{t().catch(()=>{}),r=null},b.flushIntervalMs)))}async function v(a={}){let b=[...(await m()).data.records];a.provider&&(b=b.filter(b=>b.provider===a.provider)),a.model&&(b=b.filter(b=>b.model===a.model)),a.connectionId&&(b=b.filter(b=>b.connectionId===a.connectionId)),a.status&&(b=b.filter(b=>b.status===a.status)),a.startDate&&(b=b.filter(b=>new Date(b.timestamp)>=new Date(a.startDate))),a.endDate&&(b=b.filter(b=>new Date(b.timestamp)<=new Date(a.endDate))),b.sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp));let c=b.length,d=a.page||1,e=a.pageSize||50,f=Math.ceil(c/e);return{details:b.slice((d-1)*e,d*e),pagination:{page:d,pageSize:e,totalItems:c,totalPages:f,hasNext:d1}}}let w=async()=>{r&&(clearTimeout(r),r=null),q.length>0&&await t()};process.off("beforeExit",w),process.off("SIGINT",w),process.off("SIGTERM",w),process.off("exit",w),process.on("beforeExit",w),process.on("SIGINT",w),process.on("SIGTERM",w),process.on("exit",w)},60126:(a,b,c)=>{c.d(b,{BY:()=>H,E5:()=>E,SL:()=>l.SL,Zx:()=>F,_V:()=>u,j$:()=>I,ox:()=>l.ox,rg:()=>B,sZ:()=>D,uw:()=>A});var d=c(34278),e=c(73865),f=c(94735),g=c(33873),h=c.n(g),i=c(29021),j=c.n(i),k=c(81372),l=c(21812);let m=h().join(k.n,"usage.json"),n=h().join(k.n,"log.txt");if(j()&&"function"==typeof j().existsSync)try{j().existsSync(k.n)||(j().mkdirSync(k.n,{recursive:!0}),console.log(`[usageDb] Created data directory: ${k.n}`))}catch(a){console.error("[usageDb] Failed to create data directory:",a.message)}let o={history:[],totalRequestsLifetime:0,dailySummary:{}};function p(a,b,c){a[b]||(a[b]={requests:0,promptTokens:0,completionTokens:0,cost:0}),a[b].requests+=c.requests||1,a[b].promptTokens+=c.promptTokens||0,a[b].completionTokens+=c.completionTokens||0,a[b].cost+=c.cost||0,c.meta&&Object.assign(a[b],c.meta)}function q(a,b){var c;let d,e=(d=(c=b.timestamp)?new Date(c):new Date,`${d.getFullYear()}-${String(d.getMonth()+1).padStart(2,"0")}-${String(d.getDate()).padStart(2,"0")}`);a[e]||(a[e]={requests:0,promptTokens:0,completionTokens:0,cost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{}});let f=a[e],g=b.tokens?.prompt_tokens||b.tokens?.input_tokens||0,h=b.tokens?.completion_tokens||b.tokens?.output_tokens||0,i=b.cost||0,j={promptTokens:g,completionTokens:h,cost:i};f.requests+=1,f.promptTokens+=g,f.completionTokens+=h,f.cost+=i,b.provider&&p(f.byProvider,b.provider,j);let k=b.provider?`${b.model}|${b.provider}`:b.model;p(f.byModel,k,{...j,meta:{rawModel:b.model,provider:b.provider}}),b.connectionId&&p(f.byAccount,b.connectionId,{...j,meta:{rawModel:b.model,provider:b.provider}});let l=b.apiKey&&"string"==typeof b.apiKey?b.apiKey:"local-no-key",m=`${l}|${b.model}|${b.provider||"unknown"}`;p(f.byApiKey,m,{...j,meta:{rawModel:b.model,provider:b.provider,apiKey:b.apiKey||null}});let n=b.endpoint||"Unknown",o=`${n}|${b.model}|${b.provider||"unknown"}`;p(f.byEndpoint,o,{...j,meta:{endpoint:n,rawModel:b.model,provider:b.provider}})}let r=null;global._pendingRequests||(global._pendingRequests={byModel:{},byAccount:{}});let s=global._pendingRequests;global._lastErrorProvider||(global._lastErrorProvider={provider:"",ts:0});let t=global._lastErrorProvider;global._statsEmitter||(global._statsEmitter=new f.EventEmitter,global._statsEmitter.setMaxListeners(50));let u=global._statsEmitter;global._pendingTimers||(global._pendingTimers={});let v=global._pendingTimers;global._recentRing||(global._recentRing={items:[],initialized:!1}),global._connectionMapCache||(global._connectionMapCache={map:{},ts:0});let w=global._recentRing,x=global._connectionMapCache;async function y(){if(Date.now()-x.ts<3e4)return x.map;try{let{getProviderConnections:a}=await Promise.all([c.e(3656),c.e(7770)]).then(c.bind(c,37770)),b=await a(),d={};for(let a of b)d[a.id]=a.name||a.email||a.id;x.map=d,x.ts=Date.now()}catch{}return x.map}async function z(){if(!w.initialized){w.initialized=!0;try{w.items=((await C()).data.history||[]).slice(-50)}catch{}}}function A(a,b,c,d,e=!1){let f=b?`${a} (${b})`:a,g=`${c}|${f}`;s.byModel[f]||(s.byModel[f]=0),s.byModel[f]=Math.max(0,s.byModel[f]+(d?1:-1)),0===s.byModel[f]&&delete s.byModel[f],c&&(s.byAccount[c]||(s.byAccount[c]={}),s.byAccount[c][f]||(s.byAccount[c][f]=0),s.byAccount[c][f]=Math.max(0,s.byAccount[c][f]+(d?1:-1)),0===s.byAccount[c][f]&&(delete s.byAccount[c][f],0===Object.keys(s.byAccount[c]).length&&delete s.byAccount[c])),d?(clearTimeout(v[g]),v[g]=setTimeout(()=>{delete v[g],s.byModel[f]>0&&(s.byModel[f]=0),c&&s.byAccount[c]?.[f]>0&&(s.byAccount[c][f]=0),u.emit("pending")},6e4)):(clearTimeout(v[g]),delete v[g]),!d&&e&&b&&(t.provider=b.toLowerCase(),t.ts=Date.now());let h=new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"});console.log(`[${h}] [PENDING] ${d?"START":"END"}${e?" (ERROR)":""} | provider=${b} | model=${a}`),u.emit("pending")}async function B(){let a=[],b=await y();for(let[c,d]of Object.entries(s.byAccount))for(let[e,f]of Object.entries(d))if(f>0){let d=b[c]||`Account ${c.slice(0,8)}...`,g=e.match(/^(.*) \((.*)\)$/),h=g?g[1]:e,i=g?g[2]:"unknown";a.push({model:h,provider:i,account:d,count:f})}await z();let c=new Set;return{activeRequests:a,recentRequests:[...w.items].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{},c=b.prompt_tokens||b.input_tokens||0,d=b.completion_tokens||b.output_tokens||0;return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:c,completionTokens:d,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",d=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!c.has(d)&&(c.add(d),!0)}).slice(0,20),errorProvider:Date.now()-t.ts<1e4?t.provider:""}}async function C(){if(!r){let a=new e.Pv(m);r=new d.t(a,o);try{await r.read()}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt Usage JSON detected, resetting to defaults..."),r.data=o,await r.write();else throw a}r.data||(r.data={...o},await r.write()),r.data.dailySummary||(function(a){let b=a.data.history||[];if(!b.length)return!1;for(let c of(a.data.dailySummary={},b))q(a.data.dailySummary,c);return console.log(`[usageDb] Migrated ${b.length} history entries to dailySummary (${Object.keys(a.data.dailySummary).length} days)`),!0}(r)?await r.write():r.data.dailySummary={})}return r}async function D(a){try{let b=await C();a.timestamp||(a.timestamp=new Date().toISOString()),Array.isArray(b.data.history)||(b.data.history=[]),"number"!=typeof b.data.totalRequestsLifetime&&(b.data.totalRequestsLifetime=b.data.history.length);let c=await G(a.provider,a.model,a.tokens);a.cost=c,b.data.history.push(a),b.data.totalRequestsLifetime+=1,b.data.dailySummary||(b.data.dailySummary={}),q(b.data.dailySummary,a),b.data.history.length>2e3&&b.data.history.splice(0,b.data.history.length-2e3),await b.write(),w.items.push(a),w.items.length>50&&(w.items=w.items.slice(-50)),u.emit("update")}catch(a){console.error("Failed to save usage stats:",a)}}async function E({model:a,provider:b,connectionId:d,tokens:e,status:f}){try{let g=function(a=new Date){let b=a=>String(a).padStart(2,"0"),c=b(a.getDate()),d=b(a.getMonth()+1),e=a.getFullYear(),f=b(a.getHours()),g=b(a.getMinutes()),h=b(a.getSeconds());return`${c}-${d}-${e} ${f}:${g}:${h}`}(),h=b?.toUpperCase()||"-",i=d?d.slice(0,8):"-";try{let{getProviderConnections:a}=await Promise.all([c.e(3656),c.e(7770)]).then(c.bind(c,37770)),b=(await a()).find(a=>a.id===d);b&&(i=b.name||b.email||i)}catch{}let k=e?.prompt_tokens!==void 0?e.prompt_tokens:"-",l=e?.completion_tokens!==void 0?e.completion_tokens:"-",m=`${g} | ${a||"-"} | ${h} | ${i} | ${k} | ${l} | ${f} +`;j().appendFileSync(n,m);let o=j().readFileSync(n,"utf-8").trim().split("\n");o.length>200&&j().writeFileSync(n,o.slice(-200).join("\n")+"\n")}catch(a){console.error("Failed to append to log.txt:",a.message)}}async function F(a=200){if(!j()||"function"!=typeof j().existsSync)return console.error("[usageDb] fs module not available in this environment"),[];if(!n)return console.error("[usageDb] LOG_FILE path not defined"),[];if(!j().existsSync(n))return console.log(`[usageDb] Log file does not exist: ${n}`),[];try{return j().readFileSync(n,"utf-8").trim().split("\n").slice(-a).reverse()}catch(a){return console.error("[usageDb] Failed to read log.txt:",a.message),console.error("[usageDb] LOG_FILE path:",n),[]}}async function G(a,b,d){if(!d||!a||!b)return 0;try{let{getPricingForModel:e}=await Promise.all([c.e(3656),c.e(7770)]).then(c.bind(c,37770)),f=await e(a,b);if(!f)return 0;let g=0,h=d.prompt_tokens||d.input_tokens||0,i=d.cached_tokens||d.cache_read_input_tokens||0,j=Math.max(0,h-i);if(g+=j*(f.input/1e6),i>0){let a=f.cached||f.input;g+=a/1e6*i}let k=d.completion_tokens||d.output_tokens||0;g+=k*(f.output/1e6);let l=d.reasoning_tokens||0;if(l>0){let a=f.reasoning||f.output;g+=a/1e6*l}let m=d.cache_creation_input_tokens||0;if(m>0){let a=f.cache_creation||f.input;g+=a/1e6*m}return g}catch(a){return console.error("Error calculating cost:",a),0}}async function H(a="all"){let b=await C(),d=b.data.history||[],e=b.data.dailySummary||{},{getProviderConnections:f,getApiKeys:g,getProviderNodes:h}=await Promise.all([c.e(3656),c.e(7770)]).then(c.bind(c,37770)),i=[];try{i=await f()}catch{}let j={};for(let a of i)j[a.id]=a.name||a.email||a.id;let k={};try{for(let a of(await h()))a.id&&a.name&&(k[a.id]=a.name)}catch{}let l=[];try{l=await g()}catch{}let m={};for(let a of l)m[a.key]={name:a.name,id:a.id,createdAt:a.createdAt};let n=new Set,o={totalRequests:0,totalPromptTokens:0,totalCompletionTokens:0,totalCost:0,byProvider:{},byModel:{},byAccount:{},byApiKey:{},byEndpoint:{},last10Minutes:[],pending:s,activeRequests:[],recentRequests:[...d].sort((a,b)=>new Date(b.timestamp)-new Date(a.timestamp)).map(a=>{let b=a.tokens||{};return{timestamp:a.timestamp,model:a.model,provider:a.provider||"",promptTokens:b.prompt_tokens||b.input_tokens||0,completionTokens:b.completion_tokens||b.output_tokens||0,status:a.status||"ok"}}).filter(a=>{if(0===a.promptTokens&&0===a.completionTokens)return!1;let b=a.timestamp?a.timestamp.slice(0,16):"",c=`${a.model}|${a.provider}|${a.promptTokens}|${a.completionTokens}|${b}`;return!n.has(c)&&(n.add(c),!0)}).slice(0,20),errorProvider:Date.now()-t.ts<1e4?t.provider:""};for(let[a,b]of Object.entries(s.byAccount))for(let[c,d]of Object.entries(b))if(d>0){let b=j[a]||`Account ${a.slice(0,8)}...`,e=c.match(/^(.*) \((.*)\)$/);o.activeRequests.push({model:e?e[1]:c,provider:e?e[2]:"unknown",account:b,count:d})}let p=new Date,q=new Date(6e4*Math.floor(p.getTime()/6e4)),r=new Date(q.getTime()-54e4),u={};for(let a=0;a<10;a++){let b=q.getTime()-(9-a)*6e4;u[b]={requests:0,promptTokens:0,completionTokens:0,cost:0},o.last10Minutes.push(u[b])}for(let a of d){let b=new Date(a.timestamp);if(b>=r&&b<=p){let c=6e4*Math.floor(b.getTime()/6e4);if(u[c]){let b=a.tokens?.prompt_tokens||0,d=a.tokens?.completion_tokens||0;u[c].requests++,u[c].promptTokens+=b,u[c].completionTokens+=d,u[c].cost+=a.cost||0}}}if("24h"!==a){let b={"7d":7,"30d":30,"60d":60}[a]||null,c=new Date;for(let a of Object.keys(e).filter(a=>{if(!b)return!0;let d=a.split("-"),e=new Date(Number(d[0]),Number(d[1])-1,Number(d[2]));return Math.floor((c.getTime()-e.getTime())/864e5)(o.byModel[f].lastUsed||"")&&(o.byModel[f].lastUsed=a)}for(let[c,d]of Object.entries(b.byAccount||{})){let b=j[c]||`Account ${c.slice(0,8)}...`,e=d.rawModel||"",f=d.provider||"",g=k[f]||f,h=`${e} (${f} - ${b})`;o.byAccount[h]||(o.byAccount[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:e,provider:g,connectionId:c,accountName:b,lastUsed:a}),o.byAccount[h].requests+=d.requests||0,o.byAccount[h].promptTokens+=d.promptTokens||0,o.byAccount[h].completionTokens+=d.completionTokens||0,o.byAccount[h].cost+=d.cost||0,a>(o.byAccount[h].lastUsed||"")&&(o.byAccount[h].lastUsed=a)}for(let[c,d]of Object.entries(b.byApiKey||{})){let b=d.rawModel||"",e=d.provider||"",f=k[e]||e,g=d.apiKey,h=g?m[g]:null,i=h?.name||(g?g.slice(0,8)+"...":"Local (No API Key)"),j=g||"local-no-key";o.byApiKey[c]||(o.byApiKey[c]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b,provider:f,apiKey:g,keyName:i,apiKeyKey:j,lastUsed:a}),o.byApiKey[c].requests+=d.requests||0,o.byApiKey[c].promptTokens+=d.promptTokens||0,o.byApiKey[c].completionTokens+=d.completionTokens||0,o.byApiKey[c].cost+=d.cost||0,a>(o.byApiKey[c].lastUsed||"")&&(o.byApiKey[c].lastUsed=a)}for(let[c,d]of Object.entries(b.byEndpoint||{})){let b=d.endpoint||c.split("|")[0]||"Unknown",e=d.rawModel||"",f=d.provider||"",g=k[f]||f;o.byEndpoint[c]||(o.byEndpoint[c]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:b,rawModel:e,provider:g,lastUsed:a}),o.byEndpoint[c].requests+=d.requests||0,o.byEndpoint[c].promptTokens+=d.promptTokens||0,o.byEndpoint[c].completionTokens+=d.completionTokens||0,o.byEndpoint[c].cost+=d.cost||0,a>(o.byEndpoint[c].lastUsed||"")&&(o.byEndpoint[c].lastUsed=a)}}let f=b?Date.now()-864e5*b:0;for(let a of d){let b=a.timestamp;if(!b||new Date(b).getTime()new Date(o.byModel[c].lastUsed)&&(o.byModel[c].lastUsed=b),a.connectionId){let c=j[a.connectionId]||`Account ${a.connectionId.slice(0,8)}...`,d=`${a.model} (${a.provider} - ${c})`;o.byAccount[d]&&new Date(b)>new Date(o.byAccount[d].lastUsed)&&(o.byAccount[d].lastUsed=b)}let d=a.apiKey&&"string"==typeof a.apiKey?`${a.apiKey}|${a.model}|${a.provider||"unknown"}`:"local-no-key";o.byApiKey[d]&&new Date(b)>new Date(o.byApiKey[d].lastUsed)&&(o.byApiKey[d].lastUsed=b);let e=a.endpoint||"Unknown",g=`${e}|${a.model}|${a.provider||"unknown"}`;o.byEndpoint[g]&&new Date(b)>new Date(o.byEndpoint[g].lastUsed)&&(o.byEndpoint[g].lastUsed=b)}}else{let a=Date.now()-864e5;for(let b of d.filter(b=>new Date(b.timestamp).getTime()>=a)){let a=b.tokens?.prompt_tokens||0,c=b.tokens?.completion_tokens||0,d=b.cost||0,e=k[b.provider]||b.provider;o.totalPromptTokens+=a,o.totalCompletionTokens+=c,o.totalCost+=d,o.byProvider[b.provider]||(o.byProvider[b.provider]={requests:0,promptTokens:0,completionTokens:0,cost:0}),o.byProvider[b.provider].requests++,o.byProvider[b.provider].promptTokens+=a,o.byProvider[b.provider].completionTokens+=c,o.byProvider[b.provider].cost+=d;let f=b.provider?`${b.model} (${b.provider})`:b.model;if(o.byModel[f]||(o.byModel[f]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,lastUsed:b.timestamp}),o.byModel[f].requests++,o.byModel[f].promptTokens+=a,o.byModel[f].completionTokens+=c,o.byModel[f].cost+=d,new Date(b.timestamp)>new Date(o.byModel[f].lastUsed)&&(o.byModel[f].lastUsed=b.timestamp),b.connectionId){let f=j[b.connectionId]||`Account ${b.connectionId.slice(0,8)}...`,g=`${b.model} (${b.provider} - ${f})`;o.byAccount[g]||(o.byAccount[g]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,connectionId:b.connectionId,accountName:f,lastUsed:b.timestamp}),o.byAccount[g].requests++,o.byAccount[g].promptTokens+=a,o.byAccount[g].completionTokens+=c,o.byAccount[g].cost+=d,new Date(b.timestamp)>new Date(o.byAccount[g].lastUsed)&&(o.byAccount[g].lastUsed=b.timestamp)}if(b.apiKey&&"string"==typeof b.apiKey){let f=m[b.apiKey],g=f?.name||b.apiKey.slice(0,8)+"...",h=`${b.apiKey}|${b.model}|${b.provider||"unknown"}`;o.byApiKey[h]||(o.byApiKey[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,apiKey:b.apiKey,keyName:g,apiKeyKey:b.apiKey,lastUsed:b.timestamp});let i=o.byApiKey[h];i.requests++,i.promptTokens+=a,i.completionTokens+=c,i.cost+=d,new Date(b.timestamp)>new Date(i.lastUsed)&&(i.lastUsed=b.timestamp)}else{o.byApiKey["local-no-key"]||(o.byApiKey["local-no-key"]={requests:0,promptTokens:0,completionTokens:0,cost:0,rawModel:b.model,provider:e,apiKey:null,keyName:"Local (No API Key)",apiKeyKey:"local-no-key",lastUsed:b.timestamp});let f=o.byApiKey["local-no-key"];f.requests++,f.promptTokens+=a,f.completionTokens+=c,f.cost+=d,new Date(b.timestamp)>new Date(f.lastUsed)&&(f.lastUsed=b.timestamp)}let g=b.endpoint||"Unknown",h=`${g}|${b.model}|${b.provider||"unknown"}`;o.byEndpoint[h]||(o.byEndpoint[h]={requests:0,promptTokens:0,completionTokens:0,cost:0,endpoint:g,rawModel:b.model,provider:e,lastUsed:b.timestamp});let i=o.byEndpoint[h];i.requests++,i.promptTokens+=a,i.completionTokens+=c,i.cost+=d,new Date(b.timestamp)>new Date(i.lastUsed)&&(i.lastUsed=b.timestamp)}}return o.totalRequests=Object.values(o.byProvider).reduce((a,b)=>a+(b.requests||0),0),o}async function I(a="7d"){let b=await C(),c=b.data.history||[],d=b.data.dailySummary||{},e=Date.now();if("24h"===a){let a=e-864e5,b=Array.from({length:24},(b,c)=>({label:new Date(a+36e5*c).toLocaleTimeString("en-US",{hour:"2-digit",minute:"2-digit",hour12:!1}),tokens:0,cost:0}));for(let d of c){let c=new Date(d.timestamp).getTime();if(ce)continue;let f=Math.min(Math.floor((c-a)/36e5),23);b[f].tokens+=(d.tokens?.prompt_tokens||0)+(d.tokens?.completion_tokens||0),b[f].cost+=d.cost||0}return b}let f="7d"===a?7:"30d"===a?30:60,g=new Date;return Array.from({length:f},(a,b)=>{let c=new Date(g);c.setDate(c.getDate()-(f-1-b));let e=d[`${c.getFullYear()}-${String(c.getMonth()+1).padStart(2,"0")}-${String(c.getDate()).padStart(2,"0")}`];return{label:c.toLocaleDateString("en-US",{month:"short",day:"numeric"}),tokens:e?(e.promptTokens||0)+(e.completionTokens||0):0,cost:e&&e.cost||0}})}},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/1301.js b/cli/app/.next/server/chunks/1301.js new file mode 100644 index 00000000000..bba3fae510b --- /dev/null +++ b/cli/app/.next/server/chunks/1301.js @@ -0,0 +1 @@ +"use strict";exports.id=1301,exports.ids=[1301],exports.modules={2449:(a,b,c)=>{c.d(b,{Bl:()=>j,Qo:()=>f,S5:()=>l,hk:()=>e,kJ:()=>k});var d=c(73714);function e(a,b,c=0){let f=b?("string"==typeof b?b:JSON.stringify(b)).toLowerCase():"";for(let b of d.t2)if(b.text&&f&&f.includes(b.text)||b.status&&b.status===a){if(b.backoff){let a=Math.min(c+1,d.EQ.maxLevel);return{shouldFallback:!0,cooldownMs:function(a=0){let b=Math.max(0,a-1);return Math.min(d.EQ.base*Math.pow(2,b),d.EQ.max)}(a),newBackoffLevel:a}}return{shouldFallback:!0,cooldownMs:b.cooldownMs}}return{shouldFallback:!0,cooldownMs:d.wf}}function f(a){if(!a)return"";let b=new Date(a).getTime()-Date.now();if(b<=0)return"reset after 0s";let c=Math.ceil(b/1e3),d=Math.floor(c/3600),e=Math.floor(c%3600/60),f=c%60,g=[];return d>0&&g.push(`${d}h`),e>0&&g.push(`${e}m`),(f>0||0===g.length)&&g.push(`${f}s`),`reset after ${g.join(" ")}`}let g="modelLock_",h=`${g}__all`;function i(a){return a?`${g}${a}`:h}function j(a,b){let c=a[i(b)]||a[h];return!!c&&new Date(c).getTime()>Date.now()}function k(a){if(!a)return null;let b=null,c=Date.now();for(let[d,e]of Object.entries(a)){if(!d.startsWith(g)||!e)continue;let a=new Date(e).getTime();a<=c||(!b||a{c.d(b,{A1:()=>g,lR:()=>i,wO:()=>h,yj:()=>e,zL:()=>f});var d=c(73714);function e(a,b){let c;return new Response(JSON.stringify((c=d.LY[a]||(a>=500?{type:"server_error",code:"internal_server_error"}:{type:"invalid_request_error",code:""}),{error:{message:b||d.O[a]||"An error occurred",type:c.type,code:c.code}})),{status:a,headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}async function f(a,b=null){let c="";try{c=await a.text()}catch{c=""}if(b&&"function"==typeof b.parseError)try{let e=b.parseError(a,c);if(e&&"object"==typeof e){let b=e.message||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:e.status||a.status,message:b,resetsAtMs:e.resetsAtMs}}}catch{}let e="";try{let a=JSON.parse(c);e=a.error?.message||a.message||a.error||c}catch{e=c}let g=("string"==typeof e?e:JSON.stringify(e))||d.O[a.status]||`Upstream error: ${a.status}`;return{statusCode:a.status,message:g}}function g(a,b,c){return{success:!1,status:a,error:b,resetsAtMs:c,response:e(a,b)}}function h(a,b,c,d){let e=Math.max(Math.ceil((new Date(c).getTime()-Date.now())/1e3),1);return new Response(JSON.stringify({error:{message:`${b} (${d})`}}),{status:a,headers:{"Content-Type":"application/json","Retry-After":String(e)}})}function i(a,b,c,d){let e=d||a.code||"FETCH_FAILED",f=a.message||"Unknown error",g=a.cause?.code,h=a.cause?.message,i=g||h?` (cause: ${[g,h].filter(Boolean).join(": ")})`:"";return`[${e}]: ${f}${i}`}},44575:(a,b,c)=>{c.r(b),c.d(b,{debug:()=>f,error:()=>i,info:()=>g,maskKey:()=>m,request:()=>j,response:()=>k,stream:()=>l,warn:()=>h});function d(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}function e(a){if(!a)return"";if("string"==typeof a)return a;try{return JSON.stringify(a)}catch{return String(a)}}function f(a,b,c){!0;{let f=c?` ${e(c)}`:"";console.log(`[${d()}] 🔍 [${a}] ${b}${f}`)}}function g(a,b,c){!0;{let f=c?` ${e(c)}`:"";console.log(`[${d()}] ℹ️ [${a}] ${b}${f}`)}}function h(a,b,c){c&&e(c)}function i(a,b,c){!0;{let f=c?` ${e(c)}`:"";console.log(`[${d()}] ❌ [${a}] ${b}${f}`)}}function j(a,b,c){let f=c?` ${e(c)}`:"";console.log(`\x1b[36m[${d()}] 📥 ${a} ${b}${f}\x1b[0m`)}function k(a,b,c){let f=c?` ${e(c)}`:"";console.log(`[${d()}] ${a<400?"\uD83D\uDCE4":"\uD83D\uDCA5"} ${a} (${b}ms)${f}`)}function l(a,b){let c=b?` ${e(b)}`:"";console.log(`[${d()}] 🌊 [STREAM] ${a}${c}`)}function m(a){return!a||a.length<8?"***":`${a.slice(0,4)}...${a.slice(-4)}`}},55103:(a,b,c)=>{a.exports=c(44870)},84514:(a,b,c)=>{c.d(b,{Pt:()=>m,Tr:()=>n,c1:()=>k,kI:()=>o,vk:()=>l});var d=c(37770),e=c(93250),f=c(2449),g=c(73714),h=c(50021),i=c(44575);let j=Promise.resolve();async function k(a,b=null,c=null,g={}){let l,m=b instanceof Set?b:b?new Set([b]):new Set,n=g?.preferredConnectionId||null,o=j;j=new Promise(a=>{l=a});try{let b;await o;let g=(0,h.rs)(a);if(h.IS[g]?.noAuth){let a=((await (0,d.getSettings)()).providerStrategies||{})[g]||{},b=await (0,e.B)({proxyPoolId:a.proxyPoolId||""});return{id:"noauth",connectionName:"Public",isActive:!0,accessToken:"public",providerSpecificData:{connectionProxyEnabled:b.connectionProxyEnabled,connectionProxyUrl:b.connectionProxyUrl,connectionNoProxy:b.connectionNoProxy,connectionProxyPoolId:b.proxyPoolId||null,vercelRelayUrl:b.vercelRelayUrl||""}}}let j=await (0,d.getProviderConnections)({provider:g,isActive:!0});if(i.debug("AUTH",`${a} | total connections: ${j.length}, excludeIds: ${m.size>0?[...m].join(","):"none"}, model: ${c||"any"}`),0===j.length)return i.warn("AUTH",`No credentials for ${a}`),null;let k=j.filter(a=>!(m.has(a.id)||(0,f.Bl)(a,c)));if(i.debug("AUTH",`${a} | available: ${k.length}/${j.length}`),j.forEach(a=>{let b=m.has(a.id),d=(0,f.Bl)(a,c);if(b||d){let e=(0,f.kJ)(a);i.debug("AUTH",` → ${a.id?.slice(0,8)} | ${b?"excluded":""} ${d?`modelLocked(${c}) until ${e}`:""}`)}}),0===k.length){let b=j.filter(a=>(0,f.Bl)(a,c)),d=b.map(a=>(0,f.kJ)(a)).filter(Boolean).sort()[0]||null;if(d){let e=b[0];return i.warn("AUTH",`${a} | all ${j.length} accounts locked for ${c||"all"} (${(0,f.Qo)(d)}) | lastError=${e?.lastError?.slice(0,50)}`),{allRateLimited:!0,retryAfter:d,retryAfterHuman:(0,f.Qo)(d),lastError:e?.lastError||null,lastErrorCode:e?.errorCode||null}}return i.warn("AUTH",`${a} | all ${j.length} accounts unavailable`),null}let l=await (0,d.getSettings)(),p=(l.providerStrategies||{})[g]||{},q=p.fallbackStrategy||l.fallbackStrategy||"fill-first";if(n&&(b=k.find(a=>a.id===n))&&i.info("AUTH",`${a} | pinned to ${b.id?.slice(0,8)} (${b.name||b.email||"unnamed"})`),b);else if("round-robin"===q){let a=p.stickyRoundRobinLimit||l.stickyRoundRobinLimit||3,c=[...k].sort((a,b)=>a.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(b.lastUsedAt)-new Date(a.lastUsedAt):-1:1:(a.priority||999)-(b.priority||999))[0],e=c?.consecutiveUseCount||0;c&&c.lastUsedAt&&ea.lastUsedAt||b.lastUsedAt?a.lastUsedAt?b.lastUsedAt?new Date(a.lastUsedAt)-new Date(b.lastUsedAt):1:-1:(a.priority||999)-(b.priority||999))[0],await (0,d.updateProviderConnection)(b.id,{lastUsedAt:new Date().toISOString(),consecutiveUseCount:1}))}else b=k[0];let r=await (0,e.B)(b.providerSpecificData||{});return{apiKey:b.apiKey,accessToken:b.accessToken,refreshToken:b.refreshToken,projectId:b.projectId,connectionName:b.displayName||b.name||b.email||b.id,copilotToken:b.providerSpecificData?.copilotToken,providerSpecificData:{...b.providerSpecificData||{},connectionProxyEnabled:r.connectionProxyEnabled,connectionProxyUrl:r.connectionProxyUrl,connectionNoProxy:r.connectionNoProxy,connectionProxyPoolId:r.proxyPoolId||null,vercelRelayUrl:r.vercelRelayUrl||""},connectionId:b.id,testStatus:b.testStatus,lastError:b.lastError,_connection:b}}finally{l&&l()}}async function l(a,b,c,e=null,h=null,j=null){let k,m,n;if(!a||"noauth"===a)return{shouldFallback:!1,cooldownMs:0};let o=(await (0,d.getProviderConnections)({provider:e})).find(b=>b.id===a),p=o?.backoffLevel||0;if(j&&j>Date.now()?(k=!0,m=Math.min(j-Date.now(),g.fh),n=0):{shouldFallback:k,cooldownMs:m,newBackoffLevel:n}=(0,f.hk)(b,c,p),!k)return{shouldFallback:!1,cooldownMs:0};let q="string"==typeof c?c.slice(0,100):"Provider error",r=(0,f.S5)(h,m);await (0,d.updateProviderConnection)(a,{...r,testStatus:"unavailable",lastError:q,errorCode:b,lastErrorAt:new Date().toISOString(),backoffLevel:n??p});let s=Object.keys(r)[0],t=o?.displayName||o?.name||o?.email||a.slice(0,8);return i.warn("AUTH",`${t} locked ${s} for ${Math.round(m/1e3)}s [${b}]`),e&&b&&q&&console.error(`❌ ${e} [${b}]: ${q}`),{shouldFallback:!0,cooldownMs:m}}async function m(a,b,c=null){if(!a||"noauth"===a)return;let e=b._connection||b,f=Date.now(),g=Object.keys(e).filter(a=>a.startsWith("modelLock_"));if(!e.testStatus&&!e.lastError&&0===g.length)return;let h=g.filter(a=>{if(c&&a===`modelLock_${c}`||c&&"modelLock___all"===a)return!0;let b=e[a];return b&&new Date(b).getTime()<=f});if(0===h.length&&"unavailable"!==e.testStatus&&!e.lastError)return;let i=g.filter(a=>{if(h.includes(a))return!1;let b=e[a];return b&&new Date(b).getTime()>f}),j=Object.fromEntries(h.map(a=>[a,null]));0===i.length&&Object.assign(j,{testStatus:"active",lastError:null,lastErrorAt:null,backoffLevel:0}),await (0,d.updateProviderConnection)(a,j)}function n(a){let b=a.headers.get("Authorization");if(b?.startsWith("Bearer "))return b.slice(7);let c=a.headers.get("x-api-key");return c||null}async function o(a){return!!a&&await (0,d.ek)(a)}},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},93250:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(89442);function e(a){return null==a?"":String(a).trim()}async function f(a={}){let b=e(a?.proxyPoolId),c="__none__"===b?"":b,g=function(a={}){let b=a?.connectionProxyEnabled===!0;return{connectionProxyEnabled:b,connectionProxyUrl:e(a?.connectionProxyUrl),connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b)return"vercel"===a.type?{source:"vercel",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b}:{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}return g.connectionProxyEnabled&&g.connectionProxyUrl?{source:"legacy",proxyPoolId:c||null,proxyPool:null,...g}:{source:"none",proxyPoolId:c||null,proxyPool:null,...g}}},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/1574.js b/cli/app/.next/server/chunks/1574.js new file mode 100644 index 00000000000..33824b655b7 --- /dev/null +++ b/cli/app/.next/server/chunks/1574.js @@ -0,0 +1,3 @@ +exports.id=1574,exports.ids=[1574],exports.modules={14567:(a,b,c)=>{"use strict";c.d(b,{default:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call the default export of \"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/app/(dashboard)/dashboard/endpoint/EndpointPageClient.js","default")},27386:(a,b,c)=>{"use strict";c.d(b,{default:()=>l});var d=c(26835),e=c(53830),f=c(41183),g=c.n(f),h=c(50450),i=c(93617);let j=[{icon:"public",title:"Access Anywhere",desc:"Use your API from any network"},{icon:"group",title:"Share Endpoint",desc:"Share URL with team members"},{icon:"code",title:"Use in Cursor/Cline",desc:"Connect AI tools remotely"},{icon:"lock",title:"Encrypted",desc:"End-to-end TLS via Cloudflare"}],k=[{id:"lite",label:"Lite",desc:"Drop filler, keep grammar"},{id:"full",label:"Full",desc:"Drop articles, fragments OK"},{id:"ultra",label:"Ultra",desc:"Telegraphic, max compression"}];function l({machineId:a}){let[b,c]=(0,e.useState)([]),[f,g]=(0,e.useState)(!0),[q,r]=(0,e.useState)(!1),[s,t]=(0,e.useState)(""),[u,v]=(0,e.useState)(null),[w,x]=(0,e.useState)(!1),[y,z]=(0,e.useState)(!0),[A,B]=(0,e.useState)(!0),[C,D]=(0,e.useState)(!1),[E,F]=(0,e.useState)(!0),[G,H]=(0,e.useState)(!1),[I,J]=(0,e.useState)("full"),[K,L]=(0,e.useState)(!0),[M,N]=(0,e.useState)(!1),[O,P]=(0,e.useState)(""),[Q,R]=(0,e.useState)(""),[S,T]=(0,e.useState)(!1),[U,V]=(0,e.useState)(""),[W,X]=(0,e.useState)(null),[Y,Z]=(0,e.useState)(!1),[$,_]=(0,e.useState)(!1),[aa,ab]=(0,e.useState)(!1),[ac,ad]=(0,e.useState)(""),[ae,af]=(0,e.useState)(!1),[ag,ah]=(0,e.useState)(""),[ai,aj]=(0,e.useState)(null),[ak,al]=(0,e.useState)(null),[am,an]=(0,e.useState)(!1),[ao,ap]=(0,e.useState)([]),[aq,ar]=(0,e.useState)(""),[as,at]=(0,e.useState)(!1),[au,av]=(0,e.useState)(!1),[aw,ax]=(0,e.useState)(!1),ay=(0,e.useRef)(null),[az,aA]=(0,e.useState)(new Set),{copied:aB,copy:aC}=(0,i.C)(),aD=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tunnelDashboardAccess:a})})).ok&&D(a)}catch(a){console.log("Error updating tunnelDashboardAccess:",a)}},aE=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({requireApiKey:a})})).ok&&x(a)}catch(a){console.log("Error updating requireApiKey:",a)}},aF=async a=>{try{(await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({rtkEnabled:a})})).ok&&F(a)}catch(a){console.log("Error updating rtkEnabled:",a)}},aG=async a=>{try{await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify(a)})}catch(a){console.log("Error updating setting:",a)}},aH=async()=>{try{let a=await fetch("/api/keys"),b=await a.json();a.ok&&c(b.keys||[])}catch(a){console.log("Error fetching data:",a)}finally{g(!1)}},aI=async a=>{T(!0),V("Waiting for tunnel ready...");let b=`${a}/api/health`,c=Date.now();for(;Date.now()-c<3e5;){await new Promise(a=>setTimeout(a,2e3));try{let a=await fetch(b,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return N(!0),T(!1),V(""),!0}catch{}if((Date.now()-c)%1e4<2e3)try{let a=await fetch("/api/tunnel/status");if(a.ok){let b=await a.json();if(!b.tunnel?.enabled)return X({type:"error",message:"Tunnel process stopped unexpectedly."}),T(!1),V(""),!1}}catch{}}return X({type:"error",message:"Tunnel created but not reachable. Please try again."}),T(!1),V(""),!1},aJ=async()=>{Z(!1),T(!0),X(null),V("Creating tunnel...");let a=!0;(async()=>{for(;a;){try{let b=await fetch("/api/tunnel/status");if(b.ok){let c=await b.json();c.download?.downloading?V(`Downloading cloudflared... ${c.download.progress}%`):a&&V("Creating tunnel...")}}catch{}await new Promise(a=>setTimeout(a,1e3))}})();try{let b=await fetch("/api/tunnel/enable",{method:"POST"});a=!1;let c=await b.json();if(!b.ok)return void X({type:"error",message:c.error||"Failed to enable tunnel"});let d=c.publicUrl||c.tunnelUrl;if(!d)return void X({type:"error",message:"No tunnel URL returned"});P(c.tunnelUrl||""),R(c.publicUrl||""),await aI(d)}catch(a){X({type:"error",message:a.message})}finally{a=!1,T(!1),V("")}},aK=async()=>{T(!0),X(null);try{let a=await fetch("/api/tunnel/disable",{method:"POST"}),b=await a.json();a.ok?(N(!1),P(""),R(""),_(!1),X({type:"success",message:"Tunnel disabled"})):X({type:"error",message:b.error||"Failed to disable tunnel"})}catch(a){X({type:"error",message:a.message})}finally{T(!1)}},aL=async()=>{al(null);try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok){let b=await a.json();return al(b.installed),b}}catch{}return al(!1),{installed:!1}},aM=async()=>{an(!0),aj(null),ap([]);try{let a=await fetch("/api/tunnel/tailscale-install",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:aq})});ar("");let b=a.body.getReader(),c=new TextDecoder,d="";for(;;){let{done:a,value:e}=await b.read();if(a)break;let f=(d+=c.decode(e,{stream:!0})).split("\n\n");for(let a of(d=f.pop()||"",f)){let b=a.split("\n"),c="progress",d=null;for(let a of b)if(a.startsWith("event: ")&&(c=a.slice(7).trim()),a.startsWith("data: "))try{d=JSON.parse(a.slice(6))}catch{}if(d)if("progress"===c)ap(a=>[...a.slice(-50),d.message]);else if("done"===c){al(!0),an(!1);return}else"error"===c&&aj({type:"error",message:d.error||"Install failed"})}}}catch(a){aj({type:"error",message:a.message})}finally{an(!1)}},aN=async a=>{ah("Waiting for Tailscale ready...");let b=`${a}/api/health`,c=Date.now();for(;Date.now()-c<3e5;){await new Promise(a=>setTimeout(a,2e3));try{let a=await fetch(b,{mode:"no-cors",cache:"no-store"});if(a.ok||"opaque"===a.type)return!0}catch{}}return!1},aO=async a=>{let b=a||null;av(!1),at(!0),af(!0),aj(null),ah("Connecting...");try{let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),c=await a.json();if(a.ok&&c.success){b&&b.close(),ad(c.tunnelUrl||""),await aN(c.tunnelUrl)?(ab(!0),aj(null)):(ab(!0),aj({type:"warning",message:"Connected but not reachable yet."}));return}if(c.needsLogin&&c.authUrl){b?b.location.href=c.authUrl:window.open(c.authUrl,"tailscale_auth","width=600,height=700"),ah("Waiting for login...");for(let a=0;a<40;a++){await new Promise(a=>setTimeout(a,3e3));try{let a=await fetch("/api/tunnel/tailscale-check");if(a.ok&&(await a.json()).loggedIn){ah("Starting funnel...");let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),c=await a.json();a.ok&&c.success?(b&&b.close(),ad(c.tunnelUrl||""),await aN(c.tunnelUrl)?(ab(!0),aj(null)):(ab(!0),aj({type:"warning",message:"Connected but not reachable yet."}))):c.funnelNotEnabled&&c.enableUrl?await aP(c.enableUrl,b):aj({type:"error",message:c.error||"Failed to start funnel"});return}}catch{}}aj({type:"error",message:"Login timed out. Please try again."});return}if(c.funnelNotEnabled&&c.enableUrl)return void await aP(c.enableUrl,b);b&&b.close(),aj({type:"error",message:c.error||"Failed to connect"})}catch(a){b&&b.close(),aj({type:"error",message:a.message})}finally{af(!1),at(!1),ah("")}},aP=async(a,b)=>{b?b.location.href=a:window.open(a,"tailscale_auth","width=600,height=700"),ah("Enable Funnel in browser, waiting...");for(let a=0;a<40;a++){await new Promise(a=>setTimeout(a,3e3));try{let a=await fetch("/api/tunnel/tailscale-enable",{method:"POST"}),c=await a.json();if(a.ok&&c.success){b&&b.close(),ad(c.tunnelUrl||""),await aN(c.tunnelUrl)?(ab(!0),aj(null)):(ab(!0),aj({type:"warning",message:"Connected but not reachable yet."}));return}if(c.funnelNotEnabled)continue;if(c.error)return void aj({type:"error",message:c.error})}catch{}}aj({type:"error",message:"Timed out waiting for Funnel to be enabled."})},aQ=async()=>{af(!0),aj(null);try{let a=await fetch("/api/tunnel/tailscale-disable",{method:"POST"}),b=await a.json();a.ok?(ab(!1),ad(""),ax(!1),aj({type:"success",message:"Tailscale disabled"})):aj({type:"error",message:b.error||"Failed to disable Tailscale"})}catch(a){aj({type:"error",message:a.message})}finally{af(!1)}},aR=async()=>{aj(null),ap([]),av(!0),await aL()},aS=async()=>{if(s.trim())try{let a=await fetch("/api/keys",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:s})}),b=await a.json();a.ok&&(v(b.key),await aH(),t(""),r(!1))}catch(a){console.log("Error creating key:",a)}},aT=async a=>{if(confirm("Delete this API key?"))try{(await fetch(`/api/keys/${a}`,{method:"DELETE"})).ok&&(c(b.filter(b=>b.id!==a)),aA(b=>{let c=new Set(b);return c.delete(a),c}))}catch(a){console.log("Error deleting key:",a)}},aU=async(a,b)=>{try{(await fetch(`/api/keys/${a}`,{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({isActive:b})})).ok&&c(c=>c.map(c=>c.id===a?{...c,isActive:b}:c))}catch(a){console.log("Error toggling key:",a)}},[aV,aW]=(0,e.useState)("/v1");return f?(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsx)(h.Qv,{}),(0,d.jsx)(h.Qv,{})]}):(0,d.jsxs)("div",{className:"flex flex-col gap-8",children:[(0,d.jsxs)(h.Zp,{children:[(0,d.jsxs)("h2",{className:"text-lg font-semibold mb-4 flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"api"}),"API Endpoint"]}),(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsx)(m,{label:"Local",url:aV,copyId:"local_url",copied:aB,onCopy:aC}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${M?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tunnel"}),M&&!S?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.pd,{value:`${Q||O}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>aC(`${Q||O}/v1`,"tunnel_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"tunnel_url"===aB?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>_(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tunnel",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):S?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),U||"Creating tunnel..."]}),(0,d.jsx)("button",{onClick:()=>{T(!1),V("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):W?.type==="error"?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),W.message]}),(0,d.jsx)(h.$n,{size:"sm",icon:"cloud_upload",onClick:()=>Z(!0),children:"Enable"})]}):K?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),(0,d.jsx)("button",{onClick:()=>L(!1),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):(0,d.jsx)(h.$n,{size:"sm",icon:"cloud_upload",onClick:()=>{w?Z(!0):X({type:"error",message:'Security required: Enable "Require API key" before activating the tunnel.'})},children:"Enable"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${aa?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:"Tailscale"}),aa&&!ae?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsx)(h.pd,{value:`${ac}/v1`,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>aC(`${ac}/v1`,"ts_url"),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"ts_url"===aB?"check":"content_copy"})}),(0,d.jsx)("button",{onClick:()=>ax(!0),className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Disable Tailscale",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ae||as?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-border bg-input text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),ag||"Connecting..."]}),(0,d.jsx)("button",{onClick:()=>{af(!1),at(!1),ah("")},className:"p-2 hover:bg-red-500/10 rounded text-red-500 transition-colors shrink-0",title:"Stop",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"power_settings_new"})})]}):ai?.type==="error"?(0,d.jsxs)(d.Fragment,{children:[(0,d.jsxs)("div",{className:"flex-1 flex items-center gap-2 px-3 py-1.5 rounded border border-red-300 dark:border-red-800 bg-red-500/5 text-sm text-red-600 dark:text-red-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-sm",children:"error"}),ai.message]}),(0,d.jsx)(h.$n,{size:"sm",icon:"vpn_lock",onClick:aR,children:"Enable"})]}):(0,d.jsx)(h.$n,{size:"sm",icon:"vpn_lock",onClick:aR,className:"bg-linear-to-r from-indigo-500 to-purple-500 hover:from-indigo-600 hover:to-purple-600 text-white!",children:"Enable"})]})]}),(M||aa)&&(0,d.jsxs)("div",{className:"mt-4 flex flex-col gap-2",children:[!w&&(0,d.jsx)(p,{message:"Require API key is disabled — your endpoint is publicly accessible without authentication.",action:{label:"Enable",href:"#require-api-key"}}),(!y||!A)&&(0,d.jsx)(p,{message:y?"Dashboard uses the default password — change it in Profile settings.":"Require login is disabled — anyone can access your dashboard via tunnel.",action:{label:y?"Change password":"Enable",href:"/dashboard/profile"}})]}),(M||aa)&&(0,d.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex items-center gap-3",children:[(0,d.jsx)(h.lM,{checked:C,onChange:()=>aD(!C)}),(0,d.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,d.jsx)("p",{className:"font-medium text-sm",children:"Allow dashboard access via tunnel"}),(0,d.jsx)(o,{text:"When enabled, the dashboard can be accessed through your tunnel or Tailscale URL (login still required). When disabled, dashboard access via tunnel/Tailscale is completely blocked."})]})]})]}),(0,d.jsxs)(h.Zp,{id:"rtk",children:[(0,d.jsx)("div",{className:"flex items-center justify-between mb-2",children:(0,d.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"bolt"}),"Token Saver"]})}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-2 pb-4 border-b border-border gap-4",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"font-medium",children:["Compress tool output"," ",(0,d.jsx)("a",{href:"https://github.com/rtk-ai/rtk",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(RTK)"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"git/grep/ls/tree/logs → 60-90% fewer input tokens"})]}),(0,d.jsx)(h.lM,{checked:E,onChange:()=>aF(!E)})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pt-4 gap-4 flex-wrap",children:[(0,d.jsxs)("div",{className:"min-w-0 flex-1",children:[(0,d.jsxs)("p",{className:"font-medium",children:["Compress LLM output"," ",(0,d.jsx)("a",{href:"https://github.com/JuliusBrussee/caveman",target:"_blank",rel:"noreferrer",className:"text-xs font-normal text-primary underline hover:opacity-80",children:"(Caveman)"})]}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Terse-style system prompt → ~65% fewer output tokens (up to 87%)"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-3 shrink-0",children:[G&&(0,d.jsx)("div",{className:"flex items-center gap-1.5",children:k.map(a=>(0,d.jsx)("button",{onClick:()=>{var b;J(b=a.id),aG({cavemanLevel:b})},className:`px-3 py-1.5 rounded text-xs font-medium border transition-colors ${I===a.id?"bg-primary text-white border-primary":"bg-transparent border-border text-text-muted hover:bg-surface-2"}`,title:a.desc,children:a.label},a.id))}),(0,d.jsx)(h.lM,{checked:G,onChange:()=>{var a;H(a=!G),aG({cavemanEnabled:a})}})]})]})]}),(0,d.jsxs)(h.Zp,{id:"require-api-key",children:[(0,d.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,d.jsxs)("h2",{className:"text-lg font-semibold flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"vpn_key"}),"API Keys"]}),(0,d.jsx)(h.$n,{icon:"add",onClick:()=>r(!0),children:"Create Key"})]}),(0,d.jsxs)("div",{className:"flex items-center justify-between pb-4 mb-4 border-b border-border",children:[(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"font-medium",children:"Require API key"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Requests without a valid key will be rejected"})]}),(0,d.jsx)(h.lM,{checked:w,onChange:()=>aE(!w)})]}),0===b.length?(0,d.jsxs)("div",{className:"text-center py-12",children:[(0,d.jsx)("div",{className:"inline-flex items-center justify-center w-16 h-16 rounded-full bg-primary/10 text-primary mb-4",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"vpn_key"})}),(0,d.jsx)("p",{className:"text-text-main font-medium mb-1",children:"No API keys yet"}),(0,d.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Create your first API key to get started"}),(0,d.jsx)(h.$n,{icon:"add",onClick:()=>r(!0),children:"Create Key"})]}):(0,d.jsx)("div",{className:"flex flex-col",children:b.map(a=>{var b;return(0,d.jsxs)("div",{className:`group flex items-center justify-between py-3 border-b border-black/[0.03] dark:border-white/[0.03] last:border-b-0 ${!1===a.isActive?"opacity-60":""}`,children:[(0,d.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,d.jsx)("p",{className:"text-sm font-medium",children:a.name}),(0,d.jsxs)("div",{className:"flex items-center gap-2 mt-1",children:[(0,d.jsx)("code",{className:"text-xs text-text-muted font-mono",children:az.has(a.id)?a.key:(b=a.key)?b.length>8?b.slice(0,8)+"...":b:""}),(0,d.jsx)("button",{onClick:()=>{var b;return b=a.id,void aA(a=>{let c=new Set(a);return c.has(b)?c.delete(b):c.add(b),c})},className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",title:az.has(a.id)?"Hide key":"Show key",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:az.has(a.id)?"visibility_off":"visibility"})}),(0,d.jsx)("button",{onClick:()=>aC(a.key,a.id),className:"p-1 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary opacity-0 group-hover:opacity-100 transition-all",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:aB===a.id?"check":"content_copy"})})]}),(0,d.jsxs)("p",{className:"text-xs text-text-muted mt-1",children:["Created ",new Date(a.createdAt).toLocaleDateString()]}),!1===a.isActive&&(0,d.jsx)("p",{className:"text-xs text-orange-500 mt-1",children:"Paused"})]}),(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)(h.lM,{size:"sm",checked:a.isActive??!0,onChange:b=>{a.isActive&&!b?confirm(`Pause API key "${a.name}"? + +This key will stop working immediately but can be resumed later.`)&&aU(a.id,b):aU(a.id,b)},title:a.isActive?"Pause key":"Resume key"}),(0,d.jsx)("button",{onClick:()=>aT(a.id),className:"p-2 hover:bg-red-500/10 rounded text-red-500 opacity-0 group-hover:opacity-100 transition-all",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"delete"})})]})]},a.id)})})]}),(0,d.jsx)(h.aF,{isOpen:q,title:"Create API Key",onClose:()=>{r(!1),t("")},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)(h.pd,{label:"Key Name",value:s,onChange:a=>t(a.target.value),placeholder:"Production Key"}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aS,fullWidth:!0,disabled:!s.trim(),children:"Create"}),(0,d.jsx)(h.$n,{onClick:()=>{r(!1),t("")},variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:!!u,title:"API Key Created",onClose:()=>v(null),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsxs)("div",{className:"bg-yellow-50 dark:bg-yellow-900/20 border border-yellow-200 dark:border-yellow-800 rounded-lg p-4",children:[(0,d.jsx)("p",{className:"text-sm text-yellow-800 dark:text-yellow-200 mb-2 font-medium",children:"Save this key now!"}),(0,d.jsx)("p",{className:"text-sm text-yellow-700 dark:text-yellow-300",children:"This is the only time you will see this key. Store it securely."})]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.pd,{value:u||"",readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)(h.$n,{variant:"secondary",icon:"created_key"===aB?"check":"content_copy",onClick:()=>aC(u,"created_key"),children:"created_key"===aB?"Copied!":"Copy"})]}),(0,d.jsx)(h.$n,{onClick:()=>v(null),fullWidth:!0,children:"Done"})]})}),(0,d.jsx)(h.aF,{isOpen:Y,title:"Enable Tunnel",onClose:()=>Z(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("div",{className:"bg-surface-2 border border-border-subtle rounded-lg p-4",children:(0,d.jsxs)("div",{className:"flex items-start gap-3",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-primary",children:"cloud_upload"}),(0,d.jsxs)("div",{children:[(0,d.jsx)("p",{className:"text-sm text-text-main font-medium mb-1",children:"Cloudflare Tunnel"}),(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Expose your local 9Router to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere."})]})]})}),(0,d.jsx)("div",{className:"grid grid-cols-2 gap-3",children:j.map(a=>(0,d.jsxs)("div",{className:"flex flex-col items-center text-center p-3 rounded-lg bg-sidebar/50",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-xl text-primary mb-1",children:a.icon}),(0,d.jsx)("p",{className:"text-xs font-semibold",children:a.title}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:a.desc})]},a.title))}),(0,d.jsx)("p",{className:"text-xs text-text-muted",children:"Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aJ,fullWidth:!0,children:"Start Tunnel"}),(0,d.jsx)(h.$n,{onClick:()=>Z(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:$,title:"Disable Tunnel",onClose:()=>!S&&_(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"The Cloudflare tunnel will be disconnected. Remote access via tunnel URL will stop working."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aK,fullWidth:!0,disabled:S,variant:"danger",children:S?"Disabling...":"Disable"}),(0,d.jsx)(h.$n,{onClick:()=>_(!1),variant:"ghost",fullWidth:!0,disabled:S,children:"Cancel"})]})]})}),(0,d.jsx)(h.aF,{isOpen:au,title:"Tailscale Funnel",onClose:()=>{am||(av(!1),ar(""),aj(null))},children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[null===ak&&(0,d.jsxs)("p",{className:"text-sm text-text-muted flex items-center gap-2",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Checking..."]}),!1===ak&&!am&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale is not installed. Install it to enable Funnel."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aM,fullWidth:!0,children:"Install Tailscale"}),(0,d.jsx)(h.$n,{onClick:()=>av(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),am&&(0,d.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-text-muted",children:[(0,d.jsx)("span",{className:"material-symbols-outlined animate-spin text-sm",children:"progress_activity"}),"Installing Tailscale..."]}),ao.length>0&&(0,d.jsx)("div",{ref:ay,className:"bg-black/5 dark:bg-white/5 rounded p-2 max-h-40 overflow-y-auto font-mono text-xs text-text-muted",children:ao.map((a,b)=>(0,d.jsx)("div",{children:a},b))})]}),!0===ak&&!am&&(0,d.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,d.jsxs)("div",{className:"flex items-center gap-2 text-sm text-green-600 dark:text-green-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"check_circle"}),"Tailscale installed"]}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:()=>{let a=window.open("","tailscale_auth","width=600,height=700");a&&a.document.write("

Connecting to Tailscale...

"),aO(a)},fullWidth:!0,children:"Connect"}),(0,d.jsx)(h.$n,{onClick:()=>av(!1),variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),ai&&(0,d.jsx)(n,{status:ai})]})}),(0,d.jsx)(h.aF,{isOpen:aw,title:"Disable Tailscale",onClose:()=>!ae&&ax(!1),children:(0,d.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,d.jsx)("p",{className:"text-sm text-text-muted",children:"Tailscale Funnel will be stopped. Remote access via Tailscale URL will stop working."}),(0,d.jsxs)("div",{className:"flex gap-2",children:[(0,d.jsx)(h.$n,{onClick:aQ,fullWidth:!0,disabled:ae,variant:"danger",children:ae?"Disabling...":"Disable"}),(0,d.jsx)(h.$n,{onClick:()=>ax(!1),variant:"ghost",fullWidth:!0,disabled:ae,children:"Cancel"})]})]})})]})}function m({label:a,url:b,copyId:c,copied:e,onCopy:f,badge:g,actions:i}){return(0,d.jsxs)("div",{className:"flex items-center gap-2",children:[(0,d.jsx)("span",{className:`text-xs font-mono px-1.5 py-0.5 rounded shrink-0 min-w-[88px] text-center ${"CF"===g||"TS"===g?"bg-primary/10 text-primary":"bg-surface-2 text-text-muted"}`,children:a}),(0,d.jsx)(h.pd,{value:b,readOnly:!0,className:"flex-1 font-mono text-sm"}),(0,d.jsx)("button",{onClick:()=>f(b,c),className:"p-2 hover:bg-black/5 dark:hover:bg-white/5 rounded text-text-muted hover:text-primary transition-colors shrink-0",children:(0,d.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:e===c?"check":"content_copy"})}),i]})}function n({status:a,className:b=""}){return(0,d.jsx)("div",{className:`p-2 rounded text-sm ${b} ${"success"===a.type?"bg-green-500/10 text-green-600 dark:text-green-400":"warning"===a.type?"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400":"info"===a.type?"bg-blue-500/10 text-blue-600 dark:text-blue-400":"bg-red-500/10 text-red-600 dark:text-red-400"}`,children:a.message.split(/(https?:\/\/[^\s]+)/g).map((a,b)=>/^https?:\/\//.test(a)?(0,d.jsx)("a",{href:a,target:"_blank",rel:"noreferrer",className:"underline font-medium",children:a},b):a)})}function o({text:a}){return(0,d.jsxs)("span",{className:"relative group inline-flex items-center",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[14px] text-text-muted cursor-help",children:"help"}),(0,d.jsx)("span",{className:"pointer-events-none absolute left-5 top-1/2 -translate-y-1/2 z-50 w-64 rounded bg-gray-900 dark:bg-gray-800 text-white text-xs px-2.5 py-1.5 opacity-0 group-hover:opacity-100 transition-opacity shadow-lg",children:a})]})}function p({message:a,action:b}){return(0,d.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 rounded-lg bg-amber-500/10 border border-amber-500/20 text-amber-700 dark:text-amber-400",children:[(0,d.jsx)("span",{className:"material-symbols-outlined text-[16px] shrink-0 mt-0.5",children:"warning"}),(0,d.jsx)("p",{className:"text-xs flex-1",children:a}),b&&(0,d.jsx)("a",{href:b.href,className:"text-xs font-medium underline shrink-0 hover:opacity-80",onClick:b.href.startsWith("#")?a=>{a.preventDefault(),document.getElementById(b.href.slice(1))?.scrollIntoView({behavior:"smooth"})}:void 0,children:b.label})]})}l.propTypes={machineId:g().string.isRequired}},54501:(a,b,c)=>{Promise.resolve().then(c.bind(c,14567))},75662:(a,b,c)=>{"use strict";c.d(b,{D1:()=>e});var d=c(99119);async function e(){return await (0,d.Xj)()}},90949:(a,b,c)=>{Promise.resolve().then(c.bind(c,27386))},99119:(a,b,c)=>{"use strict";c.d(b,{Xj:()=>e});var d=c(20243);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/1578.js b/cli/app/.next/server/chunks/1578.js new file mode 100644 index 00000000000..cb96a26623f --- /dev/null +++ b/cli/app/.next/server/chunks/1578.js @@ -0,0 +1 @@ +"use strict";exports.id=1578,exports.ids=[1578],exports.modules={41578:(a,b,c)=>{c.d(b,{$B:()=>u,I9:()=>l,Og:()=>i,Ql:()=>o,Sc:()=>v,iD:()=>s,jR:()=>r,oD:()=>g,pb:()=>x,qZ:()=>y});var d=c(62276),e=c(43528),f=c(37973);let g=3e5,h=new Map;function i(a){return e.Wu[a]||g}async function j(a,b,c,e){let f=d.xq[a];if(!f||!f.refreshUrl)return e?.warn?.("TOKEN_REFRESH",`No refresh URL configured for provider: ${a}`),null;if(!b)return e?.warn?.("TOKEN_REFRESH",`No refresh token available for provider: ${a}`),null;try{let c=await fetch(f.refreshUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:b,client_id:f.clientId,client_secret:f.clientSecret})});if(!c.ok){let b=await c.text();return e?.error?.("TOKEN_REFRESH",`Failed to refresh token for ${a}`,{status:c.status,error:b}),null}let d=await c.json();return e?.info?.("TOKEN_REFRESH",`Successfully refreshed token for ${a}`,{hasNewAccessToken:!!d.access_token,hasNewRefreshToken:!!d.refresh_token,expiresIn:d.expires_in}),{accessToken:d.access_token,refreshToken:d.refresh_token||b,expiresIn:d.expires_in}}catch(b){return e?.error?.("TOKEN_REFRESH",`Error refreshing token for ${a}`,{error:b.message}),null}}async function k(a,b){try{let c=await fetch(e.NA.anthropic.token,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.claude.clientId})});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Claude OAuth token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Claude OAuth token",{hasNewAccessToken:!!f.access_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Claude token: ${a.message}`),null}}async function l(a,b,c,d){try{let f=await fetch(e.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:b,client_secret:c})});if(!f.ok){let a=await f.text();return d?.error?.("TOKEN_REFRESH","Failed to refresh Google token",{status:f.status,error:a}),null}let g=await f.json();return d?.info?.("TOKEN_REFRESH","Successfully refreshed Google token",{hasNewAccessToken:!!g.access_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return d?.error?.("TOKEN_REFRESH",`Network error refreshing Google token: ${a.message}`),null}}async function m(a,b){let c=e.NA.qwen.token;try{let e=await fetch(c,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.qwen.clientId})});if(200===e.status){let c=await e.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Qwen token",{hasNewAccessToken:!!c.access_token,hasNewRefreshToken:!!c.refresh_token,expiresIn:c.expires_in}),{accessToken:c.access_token,refreshToken:c.refresh_token||a,expiresIn:c.expires_in,providerSpecificData:c.resource_url?{resourceUrl:c.resource_url}:void 0}}{let a=await e.text().catch(()=>"");b?.warn?.("TOKEN_REFRESH","Error with Qwen endpoint",{status:e.status,error:a})}}catch(a){b?.warn?.("TOKEN_REFRESH","Network error trying Qwen endpoint",{error:a.message})}return b?.error?.("TOKEN_REFRESH","Failed to refresh Qwen token"),null}async function n(a,b){try{let c=await fetch(e.NA.openai.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.codex.clientId,scope:"openid profile email offline_access"})});if(!c.ok){let a=await c.text(),d=null;try{let b=JSON.parse(a);d=b?.error?.code||("string"==typeof b?.error?b.error:null)}catch{}if("refresh_token_reused"===d||"invalid_grant"===d||"token_expired"===d||"invalid_token"===d)return b?.error?.("TOKEN_REFRESH","Codex refresh token already used or invalid. Re-auth required.",{status:c.status,errorCode:d}),{error:"unrecoverable_refresh_error",code:d};return b?.error?.("TOKEN_REFRESH","Failed to refresh Codex token",{status:c.status,error:a}),null}let f=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Codex token",{hasNewAccessToken:!!f.access_token,hasNewRefreshToken:!!f.refresh_token,expiresIn:f.expires_in}),{accessToken:f.access_token,refreshToken:f.refresh_token||a,expiresIn:f.expires_in}}catch(a){return b?.error?.("TOKEN_REFRESH",`Network error refreshing Codex token: ${a.message}`),null}}async function o(a,b,c,e=null){let g=b?.authMethod,h=b?.clientId,i=b?.clientSecret,j=b?.region;if(h&&i){let b="idc"===g&&j?`https://oidc.${j}.amazonaws.com/token`:"https://oidc.us-east-1.amazonaws.com/token",d=await (0,f.proxyAwareFetch)(b,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({clientId:h,clientSecret:i,refreshToken:a,grantType:"refresh_token"})},e);if(!d.ok){let a=await d.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro AWS token",{status:d.status,error:a}),null}let k=await d.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro AWS token",{hasNewAccessToken:!!k.accessToken,expiresIn:k.expiresIn}),{accessToken:k.accessToken,refreshToken:k.refreshToken||a,expiresIn:k.expiresIn}}let k=await (0,f.proxyAwareFetch)(d.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})},e);if(!k.ok){let a=await k.text();return c?.error?.("TOKEN_REFRESH","Failed to refresh Kiro social token",{status:k.status,error:a}),null}let l=await k.json();return c?.info?.("TOKEN_REFRESH","Successfully refreshed Kiro social token",{hasNewAccessToken:!!l.accessToken,expiresIn:l.expiresIn}),{accessToken:l.accessToken,refreshToken:l.refreshToken||a,expiresIn:l.expiresIn}}async function p(a,b){let c=btoa(`${d.xq.iflow.clientId}:${d.xq.iflow.clientSecret}`),f=await fetch(e.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:d.xq.iflow.clientId,client_secret:d.xq.iflow.clientSecret})});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh iFlow token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed iFlow token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function q(a,b){let c={grant_type:"refresh_token",refresh_token:a,client_id:d.xq.github.clientId};d.xq.github.clientSecret&&(c.client_secret=d.xq.github.clientSecret);let f=await fetch(e.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(c)});if(!f.ok){let a=await f.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh GitHub token",{status:f.status,error:a}),null}let g=await f.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed GitHub token",{hasNewAccessToken:!!g.access_token,hasNewRefreshToken:!!g.refresh_token,expiresIn:g.expires_in}),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async function r(a,b){try{let c=await fetch("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":e.x0.USER_AGENT,"Editor-Version":`vscode/${e.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${e.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":e.x0.API_VERSION}});if(!c.ok){let a=await c.text();return b?.error?.("TOKEN_REFRESH","Failed to refresh Copilot token",{status:c.status,error:a}),null}let d=await c.json();return b?.info?.("TOKEN_REFRESH","Successfully refreshed Copilot token",{hasToken:!!d.token,expiresAt:d.expires_at}),{token:d.token,expiresAt:d.expires_at}}catch(a){return b?.error?.("TOKEN_REFRESH","Error refreshing Copilot token",{error:a.message}),null}}async function s(a,b,c){var d;if(!b||!b.refreshToken||"string"!=typeof b.refreshToken)return c?.warn?.("TOKEN_REFRESH",`No valid refresh token available for provider: ${a}`),null;let e=(d=b.refreshToken,`${a}:${d}`);if(h.has(e))return c?.info?.("TOKEN_REFRESH",`Reusing in-flight refresh for ${a}`),h.get(e);let f=t(a,b,c).finally(()=>{h.delete(e)});return h.set(e,f),f}async function t(a,b,c){switch(a){case"gemini":case"gemini-cli":case"antigravity":return await l(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return await k(b.refreshToken,c);case"codex":return await n(b.refreshToken,c);case"qwen":return await m(b.refreshToken,c);case"iflow":return await p(b.refreshToken,c);case"github":return await q(b.refreshToken,c);case"kiro":return await o(b.refreshToken,b.providerSpecificData,c);case"vertex":case"vertex-partner":{let a=v(b.apiKey);if(!a)return null;return await x(a,c)}default:return c?.warn?.("TOKEN_REFRESH",`Unsupported provider for token refresh: ${a}`),null}}async function u(a,b,c){if(!b.refreshToken)return null;switch(a){case"gemini-cli":case"antigravity":return l(b.refreshToken,d.xq[a].clientId,d.xq[a].clientSecret,c);case"claude":return k(b.refreshToken,c);case"codex":return n(b.refreshToken,c);case"qwen":return m(b.refreshToken,c);case"iflow":return p(b.refreshToken,c);case"github":return q(b.refreshToken,c);case"kiro":return o(b.refreshToken,b.providerSpecificData,c);case"vertex":case"vertex-partner":{let a=v(b.apiKey);if(!a)return null;return x(a,c)}default:return j(a,b.refreshToken,b,c)}}function v(a){if("string"!=typeof a)return null;try{let b=JSON.parse(a);if("service_account"===b.type&&b.client_email&&b.private_key&&b.project_id)return b;return null}catch{return null}}let w=new Map;async function x(a,b){let d=a.client_email,e=w.get(d);if(e&&e.expiresAt-Date.now()>3e5)return{accessToken:e.token,expiresAt:e.expiresAt};try{let{SignJWT:e,importPKCS8:f}=await Promise.all([c.e(7690),c.e(523)]).then(c.bind(c,80523));b?.debug?.("TOKEN_REFRESH",`Vertex minting token for ${a.client_email}`);let g=await f(a.private_key.replace(/\\n/g,"\n"),"RS256"),h=Math.floor(Date.now()/1e3),i=await new e({scope:"https://www.googleapis.com/auth/cloud-platform"}).setProtectedHeader({alg:"RS256"}).setIssuer(a.client_email).setAudience("https://oauth2.googleapis.com/token").setIssuedAt(h).setExpirationTime(h+3600).sign(g),j=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"urn:ietf:params:oauth:grant-type:jwt-bearer",assertion:i})});if(!j.ok){let a=await j.text();return b?.error?.("TOKEN_REFRESH",`Vertex token mint failed: ${a}`),null}let{access_token:k,expires_in:l}=await j.json(),m=Date.now()+(l??3600)*1e3;return w.set(d,{token:k,expiresAt:m}),b?.info?.("TOKEN_REFRESH",`Vertex token minted for ${a.client_email}`),{accessToken:k,expiresAt:m}}catch(a){return b?.error?.("TOKEN_REFRESH",`Vertex token error: ${a.message}`),null}}async function y(a,b=3,c=null){for(let d=0;d0){let a=1e3*d;c?.debug?.("TOKEN_REFRESH",`Retry ${d}/${b} after ${a}ms`),await new Promise(b=>setTimeout(b,a))}try{let b=await a();if(b)return b}catch(a){c?.warn?.("TOKEN_REFRESH",`Attempt ${d+1}/${b} failed: ${a.message}`)}}return c?.error?.("TOKEN_REFRESH",`All ${b} retry attempts failed`),null}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/1735.js b/cli/app/.next/server/chunks/1735.js new file mode 100644 index 00000000000..3bfc10d2472 --- /dev/null +++ b/cli/app/.next/server/chunks/1735.js @@ -0,0 +1 @@ +"use strict";exports.id=1735,exports.ids=[1735],exports.modules={132:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},11735:(a,b,c)=>{c.d(b,{UL:()=>d.U,b3:()=>e.b});var d=c(58925),e=c(54776);c(87625)},49902:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupedByCallsiteServerErrorLoggerDev",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=e(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var f in a)if("default"!==f&&Object.prototype.hasOwnProperty.call(a,f)){var g=d?Object.getOwnPropertyDescriptor(a,f):null;g&&(g.get||g.set)?Object.defineProperty(c,f,g):c[f]=a[f]}return c.default=a,b&&b.set(a,c),c}(c(64176));function e(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(e=function(a){return a?c:b})(a)}let f={current:null},g="function"==typeof d.cache?d.cache:a=>a,h=console.warn;function i(a){return function(...b){h(a(...b))}}g(a=>{try{h(f.current)}finally{f.current=null}})},54776:(a,b,c)=>{Object.defineProperty(b,"b",{enumerable:!0,get:function(){return m}});let d=c(33784),e=c(29294),f=c(63033),g=c(12987),h=c(37799),i=c(3060),j=c(49902),k=c(26015),l=c(45521);function m(){let a="headers",b=e.workAsyncStorage.getStore(),c=f.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,k.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`headers()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E839",enumerable:!1,configurable:!0});if(b.forceStatic)return o(d.HeadersAdapter.seal(new Headers({})));if(c)switch(c.type){case"cache":{let a=Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E833",enumerable:!1,configurable:!0});throw Error.captureStackTrace(a,m),b.invalidDynamicUsageError??=a,a}case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`headers()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E838",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`headers()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1134",enumerable:!1,configurable:!0})}if(b.dynamicShouldError)throw Object.defineProperty(new h.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`headers()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E828",enumerable:!1,configurable:!0});if(c)switch(c.type){case"prerender":var j=b,p=c;let e=n.get(p);if(e)return e;let q=(0,i.makeHangingPromise)(p.renderSignal,j.route,"`headers()`");return n.set(p,q),q;case"prerender-client":case"validation-client":let r="`headers`";throw Object.defineProperty(new l.InvariantError(`${r} must not be used within a client component. Next.js should be preventing ${r} from being included in client components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1017",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,g.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,g.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,i.delayUntilRuntimeStage)(c,o(c.headers));case"private-cache":return o(c.headers);case"request":if((0,g.trackDynamicDataInDynamicRender)(c),c.asyncApiPromises)return(0,f.isInEarlyRenderStage)(c)?c.asyncApiPromises.earlyHeaders:c.asyncApiPromises.headers;return o(c.headers)}}(0,f.throwForMissingRequestStore)(a)}c(53320);let n=new WeakMap;function o(a){let b=n.get(a);if(b)return b;let c=Promise.resolve(a);return n.set(a,c),c}(0,j.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`headers()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E836",enumerable:!1,configurable:!0})})},58925:(a,b,c)=>{Object.defineProperty(b,"U",{enumerable:!0,get:function(){return n}});let d=c(94693),e=c(89542),f=c(29294),g=c(63033),h=c(12987),i=c(37799),j=c(3060),k=c(49902),l=c(26015),m=c(45521);function n(){let a="cookies",b=f.workAsyncStorage.getStore(),c=g.workUnitAsyncStorage.getStore();if(b){if(c&&"after"===c.phase&&!(0,l.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`after()\`. This is not supported. If you need this data inside an \`after()\` callback, use \`cookies()\` outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E843",enumerable:!1,configurable:!0});if(b.forceStatic)return p(d.RequestCookiesAdapter.seal(new e.RequestCookies(new Headers({}))));if(b.dynamicShouldError)throw Object.defineProperty(new i.StaticGenBailoutError(`Route ${b.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`cookies()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E849",enumerable:!1,configurable:!0});if(c)switch(c.type){case"cache":let f=Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E831",enumerable:!1,configurable:!0});throw Error.captureStackTrace(f,n),b.invalidDynamicUsageError??=f,f;case"unstable-cache":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside a function cached with \`unstable_cache()\`. Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \`cookies()\` outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E846",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${b.route} used \`cookies()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1123",enumerable:!1,configurable:!0});case"prerender":var k=b,q=c;let r=o.get(q);if(r)return r;let s=(0,j.makeHangingPromise)(q.renderSignal,k.route,"`cookies()`");return o.set(q,s),s;case"prerender-client":case"validation-client":let t="`cookies`";throw Object.defineProperty(new m.InvariantError(`${t} must not be used within a Client Component. Next.js should be preventing ${t} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1037",enumerable:!1,configurable:!0});case"prerender-ppr":return(0,h.postponeWithTracking)(b.route,a,c.dynamicTracking);case"prerender-legacy":return(0,h.throwToInterruptStaticGeneration)(a,b,c);case"prerender-runtime":return(0,j.delayUntilRuntimeStage)(c,p(c.cookies));case"private-cache":return p(c.cookies);case"request":let u;if((0,h.trackDynamicDataInDynamicRender)(c),u=(0,d.areCookiesMutableInCurrentPhase)(c)?c.userspaceMutableCookies:c.cookies,!c.asyncApiPromises)return p(u);{let a=(0,g.isInEarlyRenderStage)(c);if(u===c.mutableCookies)return a?c.asyncApiPromises.earlyMutableCookies:c.asyncApiPromises.mutableCookies;return a?c.asyncApiPromises.earlyCookies:c.asyncApiPromises.cookies}}}(0,g.throwForMissingRequestStore)(a)}c(53320);let o=new WeakMap;function p(a){let b=o.get(a);if(b)return b;let c=Promise.resolve(a);return o.set(a,c),c}(0,k.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`cookies()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E830",enumerable:!1,configurable:!0})})},87625:(a,b,c)=>{let d=c(63033),e=c(29294),f=c(12987),g=c(49902),h=c(37799),i=c(4351),j=c(45521),k=c(3060);c(26211);new WeakMap;(0,g.createDedupedByCallsiteServerErrorLoggerDev)(function(a,b){let c=a?`Route "${a}" `:"This route ";return Object.defineProperty(Error(`${c}used ${b}. \`draftMode()\` returns a Promise and must be unwrapped with \`await\` or \`React.use()\` before accessing its properties. Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`),"__NEXT_ERROR_CODE",{value:"E835",enumerable:!1,configurable:!0})})},94693:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(89542),g=c(26211),h=c(29294),i=c(132);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/2049.js b/cli/app/.next/server/chunks/2049.js new file mode 100644 index 00000000000..93b2a1c42d2 --- /dev/null +++ b/cli/app/.next/server/chunks/2049.js @@ -0,0 +1 @@ +exports.id=2049,exports.ids=[2049],exports.modules={4202:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,75765,23)),Promise.resolve().then(c.t.bind(c,4396,23)),Promise.resolve().then(c.t.bind(c,94746,23)),Promise.resolve().then(c.t.bind(c,44469,23)),Promise.resolve().then(c.t.bind(c,80913,23)),Promise.resolve().then(c.t.bind(c,51739,23)),Promise.resolve().then(c.t.bind(c,91996,23)),Promise.resolve().then(c.t.bind(c,14801,23))},6112:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>o,metadata:()=>m,viewport:()=>n});var d=c(22037),e=c(76647),f=c.n(e);c(20485);var g=c(87050);c(56502);var h=c(37770),i=c(26314);let j=!1;(async function(){if(j)return!0;try{let a=await (0,h.getSettings)();(0,i.k)(a),j=!0}catch(a){console.error("[ServerInit] Error initializing outbound proxy:",a)}return j})().catch(console.log);var k=c(65224),l=c(25385);(0,k.wJ)();let m={title:"9Router - AI Infrastructure Management",description:"One endpoint for all your AI providers. Manage keys, monitor usage, and scale effortlessly.",icons:{icon:"/favicon.svg"}},n={themeColor:"#0a0a0a"};function o({children:a}){return(0,d.jsxs)("html",{lang:"en",suppressHydrationWarning:!0,children:[(0,d.jsxs)("head",{children:[(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.googleapis.com"}),(0,d.jsx)("link",{rel:"preconnect",href:"https://fonts.gstatic.com",crossOrigin:"anonymous"}),(0,d.jsx)("link",{href:"https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL,GRAD@20..48,100..700,0..1,-50..200&display=swap",rel:"stylesheet"})]}),(0,d.jsx)("body",{className:`${f().variable} font-sans antialiased`,children:(0,d.jsx)(g.ThemeProvider,{children:(0,d.jsx)(l.RuntimeI18nProvider,{children:a})})})]})}},7088:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,75765,23))},7268:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>f});var d=c(26835);c(53830);var e=c(71873);function f({children:a}){let{initTheme:b}=(0,e.A)();return(0,d.jsx)(d.Fragment,{children:a})}},10074:(a,b,c)=>{"use strict";c.d(b,{Q2:()=>d.Q2,fg:()=>d.fg,vQ:()=>e,MA:()=>d.MA,UY:()=>i,Nu:()=>f,zN:()=>d.zN,B2:()=>h,h0:()=>g});var d=c(30207);c(65839);let e={name:"9Router proxy",description:"AI Infrastructure Management",version:"0.4.20"},f={changelogUrl:"https://raw.githubusercontent.com/decolua/9router/refs/heads/master/CHANGELOG.md"},g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={storageKey:"theme",defaultTheme:"system"},i={maxLines:200,pollIntervalMs:1e3}},16816:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,11319,23))},19538:(a,b,c)=>{"use strict";c.d(b,{FE:()=>k,Tl:()=>i,wn:()=>l});var d=c(82174);let e={},f=d.Xn,g=[];async function h(a){if("en"===a){e={};return}try{let b=await fetch(`/i18n/literals/${a}.json`);e=await b.json()}catch(a){console.error("Failed to load translations:",a),e={}}}function i(a){if(!a||"string"!=typeof a)return a;let b=a.trim();return b&&"en"!==f&&e[b]||a}function j(a){if(!a.nodeValue||!a.nodeValue.trim())return;let b=a.parentElement;if(!b)return;let c=b;for(;c;){if(c.hasAttribute&&c.hasAttribute("data-i18n-skip"))return;c=c.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(b.tagName?.toLowerCase()))return;a._originalText||(a._originalText=a.nodeValue);let d=i(a._originalText);d!==a.nodeValue&&(a.nodeValue=d)}async function k(){}async function l(){f=function(){if("u"a.trim().startsWith(`${d.CL}=`)),b=a?decodeURIComponent(a.split("=")[1]):d.Xn;return(0,d.QC)(b)}(),await h(f),g.forEach(a=>a()),function(a){let b;if(!a)return;let c=document.createTreeWalker(a,NodeFilter.SHOW_TEXT,null,!1),d=[];for(;b=c.nextNode();)d.push(b);d.forEach(j)}(document.body)}},20485:()=>{},21573:(a,b,c)=>{Promise.resolve().then(c.t.bind(c,11319,23)),Promise.resolve().then(c.t.bind(c,88182,23)),Promise.resolve().then(c.t.bind(c,20232,23)),Promise.resolve().then(c.t.bind(c,94647,23)),Promise.resolve().then(c.t.bind(c,90511,23)),Promise.resolve().then(c.t.bind(c,92249,23)),Promise.resolve().then(c.t.bind(c,40622,23)),Promise.resolve().then(c.bind(c,35879))},24709:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},25385:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call RuntimeI18nProvider() from the server but RuntimeI18nProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/i18n/RuntimeI18nProvider.js","RuntimeI18nProvider")},26314:(a,b,c)=>{"use strict";function d(a){return null==a?"":String(a).trim()}function e({outboundProxyEnabled:a,outboundProxyUrl:b,outboundNoProxy:c}={}){if("u"e})},30207:(a,b,c)=>{"use strict";c.d(b,{DI:()=>l,IS:()=>d,JH:()=>k,MA:()=>q,Q2:()=>p,br:()=>i,fg:()=>h,gC:()=>o,gb:()=>n,jO:()=>v,mq:()=>m,nJ:()=>e,o5:()=>t,rj:()=>j,s9:()=>f,wG:()=>s,wb:()=>u,zN:()=>g,zt:()=>r});let d={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"}},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981",mediaPriority:999,deprecated:!0,deprecationNotice:"Qwen OAuth free tier was discontinued by Alibaba on 2026-04-15. New connections will not work.",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]}},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Gemini CLI is designed exclusively for Gemini CLI. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"}},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},opencode:{id:"opencode",alias:"oc",name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC",noAuth:!0,passthroughModels:!0,modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"}}},e={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0,serviceKinds:["llm","embedding","tts","imageToText"],embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"openai/text-embedding-3-small",name:"Text Embedding 3 Small (OpenRouter)",dimensions:1536},{id:"openai/text-embedding-3-large",name:"Text Embedding 3 Large (OpenRouter)",dimensions:3072},{id:"openai/text-embedding-ada-002",name:"Text Embedding Ada 002 (OpenRouter)",dimensions:1536}]}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"},serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"fastpitch",name:"FastPitch"},{id:"tacotron2",name:"Tacotron2"}]},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",mediaPriority:1,website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"},serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}]},searchViaChat:{defaultModel:"gemini-2.5-flash",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",models:[{id:"text-embedding-004",name:"Text Embedding 004",dimensions:768},{id:"embedding-001",name:"Embedding 001",dimensions:768}]},ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts",models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS"}]}},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"},serviceKinds:["llm"],hasProviderSpecificData:!0},byteplus:{id:"byteplus",alias:"bpm",name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"},serviceKinds:["llm"]}},f={extended:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4},effort:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},g={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"}},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"AG is designed exclusively for Antigravity IDE. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"}},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6",thinkingConfig:f.effort,serviceKinds:["llm","image"],kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."},website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"}},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333",serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",dimensions:3072}]},website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"}},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}}},h={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k2.5",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","image","imageToText","webSearch"],searchViaChat:{defaultModel:"MiniMax-M2.7",pricingUrl:"https://www.minimaxi.com/document/price"}},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},"xiaomi-mimo":{id:"xiaomi-mimo",alias:"mimo",name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://xiaomimimo.com"}},"volcengine-ark":{id:"volcengine-ark",alias:"ark",name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"},serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],thinkingConfig:f.effort,searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"},ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"tts-1",name:"TTS-1"},{id:"tts-1-hd",name:"TTS-1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe"}]},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]}},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"},serviceKinds:["llm","imageToText"]},"opencode-go":{id:"opencode-go",alias:"ocg",name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then $10/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},azure:{id:"azure",alias:"azure",name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"},hasProviderSpecificData:!0},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},commandcode:{id:"commandcode",alias:"cmc",name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"},serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]}},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"},serviceKinds:["llm","imageToText","webSearch"],searchViaChat:{defaultModel:"grok-4.20-reasoning",pricingUrl:"https://x.ai/api#pricing"}},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"},serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]}},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"},serviceKinds:["llm","webSearch"],searchConfig:{baseUrl:"https://api.perplexity.ai/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]}},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]}},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]}},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]}},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"},serviceKinds:["stt","imageToText","tts"],ttsConfig:{baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[]},sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]}},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"},serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",format:"assemblyai",async:!0,models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]}},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"},serviceKinds:["image"]},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]}},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]}},"local-device":{id:"local-device",alias:"local-device",name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},"google-tts":{id:"google-tts",alias:"google-tts",name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},"edge-tts":{id:"edge-tts",alias:"edge-tts",name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},coqui:{id:"coqui",alias:"coqui",name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]}},tortoise:{id:"tortoise",alias:"tortoise",name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]}},inworld:{id:"inworld",alias:"inworld",name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},"voyage-ai":{id:"voyage-ai",alias:"voyage",name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"voyage-3-large",name:"Voyage 3 Large",dimensions:1024},{id:"voyage-3.5",name:"Voyage 3.5",dimensions:1024},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",dimensions:1024},{id:"voyage-code-3",name:"Voyage Code 3",dimensions:1024},{id:"voyage-finance-2",name:"Voyage Finance 2",dimensions:1024},{id:"voyage-law-2",name:"Voyage Law 2",dimensions:1024},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",dimensions:1024}]}},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui",serviceKinds:["image"]},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI",serviceKinds:["image"]},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"},serviceKinds:["image","imageToText","tts","stt"],hiddenKinds:["tts"],ttsConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},sttConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]}},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"},serviceKinds:["llm"]},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},tavily:{id:"tavily",alias:"tavily",name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},"brave-search":{id:"brave-search",alias:"brave",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},serper:{id:"serper",alias:"serper",name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},exa:{id:"exa",alias:"exa",name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},searxng:{id:"searxng",alias:"searxng",name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},"google-pse":{id:"google-pse",alias:"gpse",name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},linkup:{id:"linkup",alias:"linkup",name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},searchapi:{id:"searchapi",alias:"searchapi",name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},youcom:{id:"youcom",alias:"youcom",name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},firecrawl:{id:"firecrawl",alias:"firecrawl",name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},"fal-ai":{id:"fal-ai",alias:"fal",name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run/fal-ai/flux/schnell",method:"POST",authType:"apikey",authHeader:"key"}},"stability-ai":{id:"stability-ai",alias:"stability",name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v1/user/account",method:"GET",authType:"apikey",authHeader:"bearer"}},"black-forest-labs":{id:"black-forest-labs",alias:"bfl",name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1/get_result?id=ping",method:"GET",authType:"apikey",authHeader:"x-key"}},recraft:{id:"recraft",alias:"recraft",name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"},serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/users/me",method:"GET",authType:"apikey",authHeader:"bearer"}},topaz:{id:"topaz",alias:"topaz",name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"},serviceKinds:["image"]},runwayml:{id:"runwayml",alias:"runway",name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"},serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1/organization",method:"GET",authType:"apikey",authHeader:"bearer",extraHeaders:{"X-Runway-Version":"2024-11-06"}}},"aws-polly":{id:"aws-polly",alias:"polly",name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"},serviceKinds:["tts"],hasProviderSpecificData:!0,ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]}},"jina-ai":{id:"jina-ai",alias:"jina",name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},"jina-reader":{id:"jina-reader",alias:"jina",name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}}},i={"grok-web":{id:"grok-web",alias:"gw",name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",passthroughModels:!0,serviceKinds:["llm"]},"perplexity-web":{id:"perplexity-web",alias:"pw",name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",serviceKinds:["llm"]}},j=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to Image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to Text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text To Speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech To Text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web Search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web Fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/video/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}],k="openai-compatible-",l="anthropic-compatible-";function m(a){return"string"==typeof a&&a.startsWith(k)}function n(a){return"string"==typeof a&&a.startsWith(l)}function o(a){return"string"==typeof a&&a.startsWith("custom-embedding-")}let p={...d,...e,...g,...h,...i},q={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"},cookie:{id:"cookie",name:"Browser Cookie",icon:"cookie"}};function r(a){for(let b of Object.values(p))if(b.alias===a||b.id===a)return b;return null}function s(a){let b=p[a];return b?.alias||a}function t(a){return Object.values(p).filter(b=>!(!(b.serviceKinds??["llm"]).includes(a)||b.hidden||b.hiddenKinds?.includes(a))).sort((a,b)=>(a.mediaPriority??100)-(b.mediaPriority??100))}Object.values(p).reduce((a,b)=>(a[b.alias]=b.id,a),{}),Object.values(p).reduce((a,b)=>(a[b.id]=b.alias,a),{});let u=["claude","antigravity","kiro","github","codex","kimi-coding","ollama","gemini-cli","glm","glm-cn","minimax","minimax-cn"],v=["glm","glm-cn","minimax","minimax-cn"]},39006:a=>{"use strict";a.exports={rE:"0.4.20"}},40126:(a,b,c)=>{Promise.resolve().then(c.bind(c,25385)),Promise.resolve().then(c.bind(c,87050))},56502:(a,b,c)=>{"use strict";var d=c(21820),e=c.n(d),f=c(79551),g=c(33873),h=c(29021),i=c(37770),j=c(88035),k=c(54495),l=c(13774),m=c(19931),n=c(91160),o=c(50304),p=c(50514);if(!process.env.MITM_SERVER_PATH)try{let a=(0,f.fileURLToPath)("file:///Users/Working/router4/app/src/shared/services/initializeApp.js"),b=(0,g.dirname)((0,g.dirname)(a)),c=(0,g.join)(b,"mitm","server.js");(0,h.existsSync)(c)&&(process.env.MITM_SERVER_PATH=c)}catch{}try{(0,p.initDbHooks)(i.getSettings,i.Xx)}catch{}process.setMaxListeners(20);let q=global.__appSingleton??={signalHandlersRegistered:!1,watchdogInterval:null,networkMonitorInterval:null,lastNetworkFingerprint:null,lastWatchdogTick:Date.now(),mitmStartInProgress:!1,tunnelAutoResumed:!1,tailscaleAutoResumed:!1};async function r(){try{await (0,i.bI)();let a=await (0,i.getSettings)();if(a.tunnelEnabled&&!q.tunnelAutoResumed&&(q.tunnelAutoResumed=!0,console.log("[InitApp] Tunnel was enabled, auto-resuming..."),t("startup").catch(a=>console.log("[InitApp] Tunnel resume failed:",a.message))),a.tailscaleEnabled&&!q.tailscaleAutoResumed&&(q.tailscaleAutoResumed=!0,console.log("[InitApp] Tailscale was enabled, auto-resuming..."),u("startup").catch(a=>console.log("[InitApp] Tailscale resume failed:",a.message))),!q.signalHandlersRegistered){let a=()=>{try{(0,p.removeAllDNSEntriesSync)()}catch{}(0,k.ss)(),process.exit()};process.on("SIGINT",a),process.on("SIGTERM",a),process.on("exit",()=>{try{(0,p.removeAllDNSEntriesSync)()}catch{}}),q.signalHandlersRegistered=!0}(0,k.Al)().catch(()=>{}),!q.watchdogInterval&&(q.watchdogInterval=setInterval(()=>{t("watchdog").catch(()=>{}),u("watchdog").catch(()=>{})},o.DA),q.watchdogInterval.unref&&q.watchdogInterval.unref()),!q.networkMonitorInterval&&(q.lastNetworkFingerprint=v(),q.lastWatchdogTick=Date.now(),q.networkMonitorInterval=setInterval(async()=>{try{let a=Date.now(),b=a-q.lastWatchdogTick;q.lastWatchdogTick=a;let c=v(),d=c!==q.lastNetworkFingerprint,e=b>3*o.rI;if(d&&(q.lastNetworkFingerprint=c),!d&&!e)return;await new Promise(a=>setTimeout(a,o.cw));let f=e&&d?"sleep+netchange":e?"sleep":"netchange";t(f).catch(()=>{}),u(f).catch(()=>{})}catch(a){console.log("[NetworkMonitor] error:",a.message)}},o.rI),q.networkMonitorInterval.unref&&q.networkMonitorInterval.unref()),s()}catch(a){console.error("[InitApp] Error:",a)}}async function s(){if(!q.mitmStartInProgress){q.mitmStartInProgress=!0;try{if(!(await (0,i.getSettings)()).mitmEnabled||(await (0,p.getMitmStatus)()).running)return;let a=await (0,p.loadEncryptedPassword)();if(!a&&"win32"!==process.platform)return void console.log("[InitApp] MITM was enabled but no saved password found, skipping auto-start");let b=(await (0,i.getApiKeys)()).find(a=>!1!==a.isActive);console.log("[InitApp] MITM was enabled, auto-starting..."),await (0,p.startMitm)(b?.key||"sk_9router",a),console.log("[InitApp] MITM auto-started");try{await (0,p.restoreToolDNS)(a),console.log("[InitApp] DNS restored from saved state")}catch(a){console.log("[InitApp] DNS restore failed:",a.message)}}catch(a){console.log("[InitApp] MITM auto-start failed:",a.message)}finally{q.mitmStartInProgress=!1}}}async function t(a){let b=(0,j.Qn)();if(!(!(await (0,i.getSettings)()).tunnelEnabled||b.cancelToken.cancelled||b.spawnInProgress||Date.now()-b.lastRestartAt{try{await r(),w.initialized=!0}catch(a){console.error("[ServerInit] Error initializing app:",a)}finally{w.inProgress=null}return w.initialized})()),w.inProgress)}"phase-production-build"!==process.env.NEXT_PHASE&&x().catch(console.log)},65224:(a,b,c)=>{"use strict";c.d(b,{KM:()=>m,fO:()=>l,up:()=>n,wJ:()=>k});var d=c(94735),e=c(89489);let f=["log","info","warn","error","debug"];global._consoleLogBufferState||(global._consoleLogBufferState={logs:[],patched:!1,originals:{},emitter:new d.EventEmitter},global._consoleLogBufferState.emitter.setMaxListeners(50));let g=global._consoleLogBufferState;g.emitter||(g.emitter=new d.EventEmitter,g.emitter.setMaxListeners(50));let h=/\x1b\[[0-9;]*m/g;function i(a){return a.replace(h,"")}function j(a){if("string"==typeof a)return i(a);if(a instanceof Error)return i(a.stack||a.message||String(a));try{return i(JSON.stringify(a))}catch{return i(String(a))}}function k(){if(!g.patched){for(let a of f)g.originals[a]=console[a],console[a]=(...b)=>{!function(a){g.logs.push(a);let b=e.UY.maxLines;g.logs.length>b&&(g.logs=g.logs.slice(-b)),g.emitter.emit("line",a)}(b.map(j).join(" ")),g.originals[a](...b)};g.patched=!0}}function l(){return g.logs}function m(){g.logs=[],g.emitter.emit("clear")}function n(){return g.emitter}},65839:(a,b,c)=>{"use strict";c.d(b,{KC:()=>d.KC,Xg:()=>d.Xg});var d=c(87693);Object.entries(c(30207).Q2).filter(([,a])=>a.passthroughModels).map(([a])=>a),Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},68907:(a,b,c)=>{"use strict";c.d(b,{jY:()=>k,pp:()=>l});var d=c(75333);let e={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},f=(...a)=>a.map(a=>({...e[a],type:"tts"})),g=f("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),h=f("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),i=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),j={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":h,"tts-1":g,"tts-1-hd":g},allVoices:h},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":h,"openai/tts-1":g,"openai/tts-1-hd":g},allVoices:h},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:d.I},gemini:{models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-2.5-flash-preview-tts":i,"gemini-2.5-pro-preview-tts":i},allVoices:i}};function k(a,b){let c=j[a];return c?.voices&&(c.voices[b]||c.allVoices)||null}function l(){let a={};for(let[b,c]of Object.entries(j))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=j.openai.allVoices,a["openrouter-tts-voices"]=j.openrouter.allVoices,a}},71873:(a,b,c)=>{"use strict";c.d(b,{A:()=>g});var d=c(8423),e=c(29030),f=c(10074);let g=(0,d.v)((0,e.Zr)((a,b)=>({theme:f.B2.defaultTheme,setTheme:b=>{a({theme:b})},toggleTheme:()=>{let c="dark"===b().theme?"light":"dark";a({theme:c})},initTheme:()=>{b().theme}}),{name:f.B2.storageKey}))},75333:(a,b,c)=>{"use strict";c.d(b,{I:()=>d});let d=[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},80294:(a,b,c)=>{Promise.resolve().then(c.bind(c,81059)),Promise.resolve().then(c.bind(c,7268))},81059:(a,b,c)=>{"use strict";c.d(b,{RuntimeI18nProvider:()=>f});var d=c(26835);c(53830);var e=c(28217);function f({children:a}){return(0,e.usePathname)(),(0,d.jsx)(d.Fragment,{children:a})}c(19538)},82174:(a,b,c)=>{"use strict";c.d(b,{CL:()=>f,QC:()=>g,Xn:()=>e,YZ:()=>d});let d=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],e="en",f="locale";function g(a){return"zh"===a||"zh-CN"===a?"zh-CN":"en"===a?"en":"vi"===a?"vi":"zh-TW"===a?"zh-TW":"ja"===a?"ja":"pt-BR"===a?"pt-BR":"pt-PT"===a?"pt-PT":"ko"===a?"ko":"es"===a?"es":"de"===a?"de":"fr"===a?"fr":"he"===a?"he":"ar"===a?"ar":"ru"===a?"ru":"pl"===a?"pl":"cs"===a?"cs":"nl"===a?"nl":"tr"===a?"tr":"uk"===a?"uk":"tl"===a?"tl":"id"===a?"id":"th"===a?"th":"hi"===a?"hi":"bn"===a?"bn":"ur"===a?"ur":"ro"===a?"ro":"sv"===a?"sv":"it"===a?"it":"el"===a?"el":"hu"===a?"hu":"fi"===a?"fi":"da"===a?"da":"no"===a?"no":e}},87050:(a,b,c)=>{"use strict";c.d(b,{ThemeProvider:()=>d});let d=(0,c(92713).registerClientReference)(function(){throw Error("Attempted to call ThemeProvider() from the server but ThemeProvider is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component.")},"/Users/Working/router4/app/src/shared/components/ThemeProvider.js","ThemeProvider")},87693:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>l,vq:()=>j,KC:()=>m});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:f,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};var h=c(68907);let i="-review",j={cc:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.3-image",name:"GPT 5.3 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.2-image",name:"GPT 5.2 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]}].flatMap(a=>"llm"!==(a.type||"llm")||a.id.endsWith(i)?[a]:[a,{...a,id:`${a.id}${i}`,name:`${a.name} Review`,upstreamModelId:a.upstreamModelId||a.id,quotaFamily:"review"}]),gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",type:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",type:"embedding"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"}],cu:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],"opencode-go":[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude"},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude"}],oc:[],cl:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",type:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",type:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",type:"embedding"},{id:"tts-1",name:"TTS-1",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"whisper-1",name:"Whisper 1",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-image-1",name:"GPT Image 1",type:"image",params:["n","size","quality","response_format"]},{id:"dall-e-3",name:"DALL-E 3",type:"image",params:["size","quality","style","response_format"]},{id:"dall-e-2",name:"DALL-E 2",type:"image",params:["n","size","response_format"]}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",type:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",type:"image",params:[]},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",type:"image",params:[]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",type:"image",params:[]},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",type:"stt",params:["language","prompt"]},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",type:"stt",params:["language","prompt"]}],openrouter:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",type:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",type:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",type:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",type:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",type:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",type:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",type:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",type:"image",params:["size","quality","style","response_format"]},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",type:"image",params:["n","size","quality","response_format"]},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",type:"image",params:["n","size"]},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",type:"image",params:["n","size"]}],glm:[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",type:"image",params:["n","size","response_format"]}],blackbox:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Legacy)"},{id:"claude-opus-4-6",name:"Claude Opus 4.6 (Legacy)"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-v3-671b",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"o1",name:"OpenAI o1"},{id:"o3-mini",name:"OpenAI o3-mini"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"}],"minimax-cn":[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"volcengine-ark":[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"},{id:"MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"Kimi-K2.5",name:"Kimi-K2.5"},{id:"GLM-4.7",name:"GLM-4.7"},{id:"DeepSeek-V3.2",name:"DeepSeek-V3.2"}],"cloudflare-ai":[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"}],byteplus:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],deepseek:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],commandcode:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"}],groq:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",type:"stt",params:["language","response_format","temperature","prompt"]}],xai:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}],mistral:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",type:"embedding"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",type:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",type:"embedding"}],fireworks:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",type:"embedding"}],cerebras:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}],nvidia:[{id:"minimaxai/minimax-m2.7",name:"Minimax M2.7"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",type:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",type:"stt",params:["language"]}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",type:"embedding"}],"voyage-ai":[{id:"voyage-3-large",name:"Voyage 3 Large",type:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",type:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",type:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",type:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",type:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",type:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",type:"embedding"}],siliconflow:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}],"xiaomi-mimo":[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}],hyperbolic:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}],"grok-web":[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],"perplexity-web":[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}],...(0,h.pp)(),nanobanana:[{id:"nanobanana-flash",name:"NanoBanana Flash",type:"image",params:["n","size"]},{id:"nanobanana-pro",name:"NanoBanana Pro",type:"image",params:["n","size"]}],sdwebui:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",type:"image",params:["n","size"]},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",type:"image",params:["n","size"]}],comfyui:[{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"sdxl",name:"SDXL",type:"image",params:["n","size"]}],huggingface:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",type:"image",params:[]},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",type:"image",params:[]},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",type:"stt",params:["language"]},{id:"openai/whisper-small",name:"Whisper Small (HF)",type:"stt",params:["language"]}],deepgram:[{id:"nova-3",name:"Nova 3",type:"stt",params:["language"]},{id:"nova-2",name:"Nova 2",type:"stt",params:["language"]},{id:"whisper-large",name:"Whisper Large",type:"stt",params:["language"]}],assemblyai:[{id:"universal-3-pro",name:"Universal 3 Pro",type:"stt",params:["language"]},{id:"universal-2",name:"Universal 2",type:"stt",params:["language"]}],"fal-ai":[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",type:"image",params:["n","size"]},{id:"fal-ai/flux/dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",type:"image",params:["n","size"]},{id:"fal-ai/recraft-v3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",type:"image",params:["n","size","style"]},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",type:"image",params:["n","size"]}],"stability-ai":[{id:"stable-image-ultra",name:"Stable Image Ultra",type:"image",params:["size"]},{id:"stable-image-core",name:"Stable Image Core",type:"image",params:["size","style"]},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",type:"image",params:["size"]},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",type:"image",params:["size"]},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",type:"image",params:["size"]}],"black-forest-labs":[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",type:"image",params:["n","size"]},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",type:"image",params:["size"]},{id:"flux-pro",name:"FLUX Pro",type:"image",params:["n","size"]},{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",type:"image",params:["size"],capabilities:["edit"]},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",type:"image",params:["size"],capabilities:["edit"]}],recraft:[{id:"recraftv3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"recraftv2",name:"Recraft V2",type:"image",params:["n","size","style"]}],runwayml:[{id:"gen4_image",name:"Gen-4 Image",type:"image",params:["size"]},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",type:"image",params:["size"]},{id:"gen4_turbo",name:"Gen-4 Turbo",type:"video",params:[]},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",type:"video",params:[]}]},k={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",opencode:"oc",vertex:"vertex","vertex-partner":"vertex-partner"},l=Object.fromEntries(Object.keys(g).map(a=>[a,k[a]||a]));function m(a){return j[l[a]||a]||[]}},89489:(a,b,c)=>{"use strict";c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},94638:(a,b,c)=>{"use strict";c.r(b),c.d(b,{default:()=>e});var d=c(50714);let e=async a=>[{type:"image/x-icon",sizes:"16x16",url:(0,d.fillMetadataSegment)(".",await a.params,"favicon.ico",!0)+"?603d046c9a6fdfbb"}]}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/21.js b/cli/app/.next/server/chunks/21.js new file mode 100644 index 00000000000..7955e08d191 --- /dev/null +++ b/cli/app/.next/server/chunks/21.js @@ -0,0 +1 @@ +"use strict";exports.id=21,exports.ids=[21],exports.modules={50021:(a,b,c)=>{c.d(b,{AI_PROVIDERS:()=>p,DI:()=>k,IS:()=>d,JH:()=>j,Pd:()=>l,br:()=>i,fg:()=>h,gC:()=>o,gb:()=>n,jO:()=>u,js:()=>t,mq:()=>m,nJ:()=>e,rs:()=>r,wG:()=>s,zN:()=>g,zt:()=>q});let d={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"}},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981",mediaPriority:999,deprecated:!0,deprecationNotice:"Qwen OAuth free tier was discontinued by Alibaba on 2026-04-15. New connections will not work.",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]}},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Gemini CLI is designed exclusively for Gemini CLI. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"}},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},opencode:{id:"opencode",alias:"oc",name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC",noAuth:!0,passthroughModels:!0,modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"}}},e={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0,serviceKinds:["llm","embedding","tts","imageToText"],embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"openai/text-embedding-3-small",name:"Text Embedding 3 Small (OpenRouter)",dimensions:1536},{id:"openai/text-embedding-3-large",name:"Text Embedding 3 Large (OpenRouter)",dimensions:3072},{id:"openai/text-embedding-ada-002",name:"Text Embedding Ada 002 (OpenRouter)",dimensions:1536}]}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"},serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"fastpitch",name:"FastPitch"},{id:"tacotron2",name:"Tacotron2"}]},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",mediaPriority:1,website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"},serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}]},searchViaChat:{defaultModel:"gemini-2.5-flash",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",models:[{id:"text-embedding-004",name:"Text Embedding 004",dimensions:768},{id:"embedding-001",name:"Embedding 001",dimensions:768}]},ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts",models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS"}]}},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"},serviceKinds:["llm"],hasProviderSpecificData:!0},byteplus:{id:"byteplus",alias:"bpm",name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"},serviceKinds:["llm"]}},f={options:["auto","none","low","medium","high"],defaultMode:"auto"},g={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"}},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"AG is designed exclusively for Antigravity IDE. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"}},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6",thinkingConfig:f,serviceKinds:["llm","image"],kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."},website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"}},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333",serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",dimensions:3072}]},website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"}},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}}},h={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k2.5",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","image","imageToText","webSearch"],searchViaChat:{defaultModel:"MiniMax-M2.7",pricingUrl:"https://www.minimaxi.com/document/price"}},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},"xiaomi-mimo":{id:"xiaomi-mimo",alias:"mimo",name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://xiaomimimo.com"}},"volcengine-ark":{id:"volcengine-ark",alias:"ark",name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"},serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],thinkingConfig:f,searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"},ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"tts-1",name:"TTS-1"},{id:"tts-1-hd",name:"TTS-1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe"}]},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]}},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"},serviceKinds:["llm","imageToText"]},"opencode-go":{id:"opencode-go",alias:"ocg",name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then $10/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},azure:{id:"azure",alias:"azure",name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"},hasProviderSpecificData:!0},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},commandcode:{id:"commandcode",alias:"cmc",name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"},serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]}},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"},serviceKinds:["llm","imageToText","webSearch"],searchViaChat:{defaultModel:"grok-4.20-reasoning",pricingUrl:"https://x.ai/api#pricing"}},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"},serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]}},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"},serviceKinds:["llm","webSearch"],searchConfig:{baseUrl:"https://api.perplexity.ai/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]}},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]}},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]}},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]}},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"},serviceKinds:["stt","imageToText","tts"],ttsConfig:{baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[]},sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]}},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"},serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",format:"assemblyai",async:!0,models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]}},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"},serviceKinds:["image"]},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]}},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]}},"local-device":{id:"local-device",alias:"local-device",name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},"google-tts":{id:"google-tts",alias:"google-tts",name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},"edge-tts":{id:"edge-tts",alias:"edge-tts",name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},coqui:{id:"coqui",alias:"coqui",name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]}},tortoise:{id:"tortoise",alias:"tortoise",name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]}},inworld:{id:"inworld",alias:"inworld",name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},"voyage-ai":{id:"voyage-ai",alias:"voyage",name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"voyage-3-large",name:"Voyage 3 Large",dimensions:1024},{id:"voyage-3.5",name:"Voyage 3.5",dimensions:1024},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",dimensions:1024},{id:"voyage-code-3",name:"Voyage Code 3",dimensions:1024},{id:"voyage-finance-2",name:"Voyage Finance 2",dimensions:1024},{id:"voyage-law-2",name:"Voyage Law 2",dimensions:1024},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",dimensions:1024}]}},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui",serviceKinds:["image"]},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI",serviceKinds:["image"]},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"},serviceKinds:["image","imageToText","tts","stt"],hiddenKinds:["tts"],ttsConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},sttConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]}},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"},serviceKinds:["llm"]},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},tavily:{id:"tavily",alias:"tavily",name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},"brave-search":{id:"brave-search",alias:"brave",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},serper:{id:"serper",alias:"serper",name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},exa:{id:"exa",alias:"exa",name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},searxng:{id:"searxng",alias:"searxng",name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},"google-pse":{id:"google-pse",alias:"gpse",name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},linkup:{id:"linkup",alias:"linkup",name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},searchapi:{id:"searchapi",alias:"searchapi",name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},youcom:{id:"youcom",alias:"youcom",name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},firecrawl:{id:"firecrawl",alias:"firecrawl",name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},"fal-ai":{id:"fal-ai",alias:"fal",name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run/fal-ai/flux/schnell",method:"POST",authType:"apikey",authHeader:"key"}},"stability-ai":{id:"stability-ai",alias:"stability",name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v1/user/account",method:"GET",authType:"apikey",authHeader:"bearer"}},"black-forest-labs":{id:"black-forest-labs",alias:"bfl",name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1/get_result?id=ping",method:"GET",authType:"apikey",authHeader:"x-key"}},recraft:{id:"recraft",alias:"recraft",name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"},serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/users/me",method:"GET",authType:"apikey",authHeader:"bearer"}},topaz:{id:"topaz",alias:"topaz",name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"},serviceKinds:["image"]},runwayml:{id:"runwayml",alias:"runway",name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"},serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1/organization",method:"GET",authType:"apikey",authHeader:"bearer",extraHeaders:{"X-Runway-Version":"2024-11-06"}}},"aws-polly":{id:"aws-polly",alias:"polly",name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"},serviceKinds:["tts"],hasProviderSpecificData:!0,ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]}},"jina-ai":{id:"jina-ai",alias:"jina",name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},"jina-reader":{id:"jina-reader",alias:"jina",name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}}},i={"grok-web":{id:"grok-web",alias:"gw",name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",passthroughModels:!0,serviceKinds:["llm"]},"perplexity-web":{id:"perplexity-web",alias:"pw",name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",serviceKinds:["llm"]}},j="openai-compatible-",k="anthropic-compatible-",l="custom-embedding-";function m(a){return"string"==typeof a&&a.startsWith(j)}function n(a){return"string"==typeof a&&a.startsWith(k)}function o(a){return"string"==typeof a&&a.startsWith(l)}let p={...d,...e,...g,...h,...i};function q(a){for(let b of Object.values(p))if(b.alias===a||b.id===a)return b;return null}function r(a){let b=q(a);return b?.id||a}function s(a){let b=p[a];return b?.alias||a}let t=Object.values(p).reduce((a,b)=>(a[b.alias]=b.id,a),{});Object.values(p).reduce((a,b)=>(a[b.id]=b.alias,a),{});let u=["glm","glm-cn","minimax","minimax-cn"]}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/2141.js b/cli/app/.next/server/chunks/2141.js new file mode 100644 index 00000000000..3ff34045422 --- /dev/null +++ b/cli/app/.next/server/chunks/2141.js @@ -0,0 +1 @@ +exports.id=2141,exports.ids=[2141],exports.modules={24429:()=>{},35445:(a,b,c)=>{"use strict";c.d(b,{v:()=>f});var d=c(47978);let e="https://prod.us-east-1.auth.desktop.kiro.dev";class f{async registerClient(a="us-east-1"){let b=`https://oidc.${a}.amazonaws.com/client/register`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientName:d.Tx.clientName,clientType:d.Tx.clientType,scopes:d.Tx.scopes,grantTypes:d.Tx.grantTypes,issuerUrl:d.Tx.issuerUrl})});if(!c.ok){let a=await c.text();throw Error(`Failed to register client: ${a}`)}let e=await c.json();return{clientId:e.clientId,clientSecret:e.clientSecret,clientSecretExpiresAt:e.clientSecretExpiresAt}}async startDeviceAuthorization(a,b,c,d="us-east-1"){let e=`https://oidc.${d}.amazonaws.com/device_authorization`,f=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,startUrl:c})});if(!f.ok){let a=await f.text();throw Error(`Failed to start device authorization: ${a}`)}let g=await f.json();return{deviceCode:g.deviceCode,userCode:g.userCode,verificationUri:g.verificationUri,verificationUriComplete:g.verificationUriComplete,expiresIn:g.expiresIn,interval:g.interval||5}}async pollDeviceToken(a,b,c,d="us-east-1"){let e=`https://oidc.${d}.amazonaws.com/token`,f=await fetch(e,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:a,clientSecret:b,deviceCode:c,grantType:"urn:ietf:params:oauth:grant-type:device_code"})}),g=await f.json();return!f.ok||g.error?{success:!1,error:g.error,errorDescription:g.error_description,pending:"authorization_pending"===g.error||"slow_down"===g.error}:{success:!0,tokens:{accessToken:g.accessToken,refreshToken:g.refreshToken,expiresIn:g.expiresIn,tokenType:g.tokenType}}}buildSocialLoginUrl(a,b,c){return`${e}/login?idp=${"google"===a?"Google":"Github"}&redirect_uri=${encodeURIComponent("kiro://kiro.kiroAgent/authenticate-success")}&code_challenge=${b}&code_challenge_method=S256&state=${c}&prompt=select_account`}async exchangeSocialCode(a,b){let c=await fetch(`${e}/oauth/token`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:a,code_verifier:b,redirect_uri:"kiro://kiro.kiroAgent/authenticate-success"})});if(!c.ok){let a=await c.text();throw Error(`Token exchange failed: ${a}`)}let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken,profileArn:d.profileArn,expiresIn:d.expiresIn||3600}}async refreshToken(a,b={}){let{authMethod:c,clientId:d,clientSecret:f,region:g}=b;if(d&&f){let b=`https://oidc.${g||"us-east-1"}.amazonaws.com/token`,c=await fetch(b,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:d,clientSecret:f,refreshToken:a,grantType:"refresh_token"})});if(!c.ok){let a=await c.text();throw Error(`Token refresh failed: ${a}`)}let e=await c.json();return{accessToken:e.accessToken,refreshToken:e.refreshToken||a,expiresIn:e.expiresIn}}let h=await fetch(`${e}/refreshToken`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:a})});if(!h.ok){let a=await h.text();throw Error(`Token refresh failed: ${a}`)}let i=await h.json();return{accessToken:i.accessToken,refreshToken:i.refreshToken||a,profileArn:i.profileArn,expiresIn:i.expiresIn||3600}}async validateImportToken(a){if(!a.startsWith("aorAAAAAG"))throw Error("Invalid token format. Token should start with aorAAAAAG...");try{let b=await this.refreshToken(a);return{accessToken:b.accessToken,refreshToken:b.refreshToken||a,profileArn:b.profileArn,expiresIn:b.expiresIn,authMethod:"imported"}}catch(a){throw Error(`Token validation failed: ${a.message}`)}}async listAvailableModels(a,b){let c=await fetch("https://codewhisperer.us-east-1.amazonaws.com",{method:"POST",headers:{"Content-Type":"application/x-amz-json-1.0","x-amz-target":"AmazonCodeWhispererService.ListAvailableModels",Authorization:`Bearer ${a}`,Accept:"application/json"},body:JSON.stringify({origin:"AI_EDITOR",profileArn:b})});if(!c.ok){let a=await c.text();throw Error(`Failed to list models: ${a}`)}return((await c.json()).models||[]).map(a=>({id:a.modelId,name:a.modelName||a.modelId,description:a.description,rateMultiplier:a.rateMultiplier,rateUnit:a.rateUnit,maxInputTokens:a.tokenLimits?.maxInputTokens||0}))}extractEmailFromJWT(a){try{let b=a.split(".");if(3!==b.length)return null;let c=b[1];for(;c.length%4;)c+="=";let d=JSON.parse(atob(c.replace(/-/g,"+").replace(/_/g,"/")));return d.email||d.preferred_username||d.sub}catch{return null}}}},47978:(a,b,c)=>{"use strict";c.d(b,{DI:()=>e,Hp:()=>g,LT:()=>f,MZ:()=>o,Nl:()=>r,Nu:()=>k,OV:()=>d,Tx:()=>l,WN:()=>m,YT:()=>j,ZL:()=>i,f7:()=>q,hF:()=>h,lB:()=>p,t:()=>n}),c(21820);let d={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},e={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},f={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},g={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},h={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},i={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},j={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},k={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},l={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},m={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users//Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},n={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},o={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},p={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},q={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},r={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3}},64749:()=>{}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/2371.js b/cli/app/.next/server/chunks/2371.js new file mode 100644 index 00000000000..aa8fc060cf3 --- /dev/null +++ b/cli/app/.next/server/chunks/2371.js @@ -0,0 +1 @@ +exports.id=2371,exports.ids=[2371],exports.modules={8423:(a,b,c)=>{"use strict";c.d(b,{v:()=>g});var d=c(53830);let e=a=>{let b,c=new Set,d=(a,d)=>{let e="function"==typeof a?a(b):a;if(!Object.is(e,b)){let a=b;b=(null!=d?d:"object"!=typeof e||null===e)?e:Object.assign({},b,e),c.forEach(c=>c(b,a))}},e=()=>b,f={setState:d,getState:e,getInitialState:()=>g,subscribe:a=>(c.add(a),()=>c.delete(a))},g=b=a(d,e,f);return f},f=a=>{let b=a?e(a):e,c=a=>(function(a,b=a=>a){let c=d.useSyncExternalStore(a.subscribe,d.useCallback(()=>b(a.getState()),[a,b]),d.useCallback(()=>b(a.getInitialState()),[a,b]));return d.useDebugValue(c),c})(b,a);return Object.assign(c,b),c},g=a=>a?f(a):f},13729:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return f}});let d=c(22037),e=c(8629);function f(){return(0,d.jsx)(e.HTTPAccessErrorFallback,{status:404,message:"This page could not be found."})}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},24802:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return f}});let d=c(6187),e=c(25025);function f({re:a,groups:b}){return(0,e.safeRouteMatcher)(c=>{let e=a.exec(c);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch{throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,c]of Object.entries(b)){let b=e[c.pos];void 0!==b&&(c.repeat?g[a]=b.split("/").map(a=>f(a)):g[a]=f(b))}return g})}},25025:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={safeCompile:function(){return i},safePathToRegexp:function(){return h},safeRegexpToFunction:function(){return j},safeRouteMatcher:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(57810),g=c(34490);function h(a,b,c){if("string"!=typeof a)return(0,f.pathToRegexp)(a,b,c);let d=(0,g.hasAdjacentParameterIssues)(a),e=d?(0,g.normalizeAdjacentParameters)(a):a;try{return(0,f.pathToRegexp)(e,b,c)}catch(e){if(!d)try{let d=(0,g.normalizeAdjacentParameters)(a);return(0,f.pathToRegexp)(d,b,c)}catch(a){}throw e}}function i(a,b){let c=(0,g.hasAdjacentParameterIssues)(a),d=c?(0,g.normalizeAdjacentParameters)(a):a;try{let a=(0,f.compile)(d,b);if(c)return b=>(0,g.stripNormalizedSeparators)(a(b));return a}catch(d){if(!c)try{let c=(0,g.normalizeAdjacentParameters)(a),d=(0,f.compile)(c,b);return a=>(0,g.stripNormalizedSeparators)(d(a))}catch(a){}throw d}}function j(a,b){let c=(0,f.regexpToFunction)(a,b||[]);return a=>{let b=c(a);return!!b&&{...b,params:(0,g.stripParameterSeparators)(b.params)}}}function k(a){return b=>{let c=a(b);return!!c&&(0,g.stripParameterSeparators)(c)}}},25098:(a,b)=>{"use strict";function c(a){return a.endsWith("/route")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isAppRouteRoute",{enumerable:!0,get:function(){return c}})},25646:(a,b)=>{"use strict";function c(a){return a.replace(/\\/g,"/")}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePathSep",{enumerable:!0,get:function(){return c}})},27968:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={DEFAULT_METADATA_ROUTE_EXTENSIONS:function(){return j},STATIC_METADATA_IMAGES:function(){return i},getExtensionRegexString:function(){return k},isMetadataPage:function(){return u},isMetadataRoute:function(){return v},isMetadataRouteFile:function(){return s},isStaticMetadataFile:function(){return l},isStaticMetadataRoute:function(){return t}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(25646),g=c(1586),h=c(25098),i={icon:{filename:"icon",extensions:["ico","jpg","jpeg","png","svg"]},apple:{filename:"apple-icon",extensions:["jpg","jpeg","png"]},favicon:{filename:"favicon",extensions:["ico"]},openGraph:{filename:"opengraph-image",extensions:["jpg","jpeg","png","gif"]},twitter:{filename:"twitter-image",extensions:["jpg","jpeg","png","gif"]}},j=["js","jsx","ts","tsx"],k=(a,b)=>b&&0!==b.length?`(?:\\.(${a.join("|")})|(\\.(${b.join("|")})))`:`(\\.(?:${a.join("|")}))`;function l(a){return s(a,[],!0)}let m=/^[\\/]favicon\.ico$/,n=/^[\\/]robots\.txt$/,o=/^[\\/]manifest\.json$/,p=/^[\\/]manifest\.webmanifest$/,q=/[\\/]sitemap\.xml$/,r=new Map;function s(a,b,c){if(!a||a.length<2)return!1;let d=(0,f.normalizePathSep)(a),e=!!(m.test(d)||n.test(d)||o.test(d)||p.test(d)||q.test(d))||(!!d.includes("robots")||!!d.includes("manifest")||!!d.includes("sitemap")||!!d.includes("icon")||!!d.includes("apple-icon")||!!d.includes("opengraph-image")||!!d.includes("twitter-image")||!!d.includes("favicon"))&&null;if(null!==e)return e;let g=function(a,b){let c=`${a.join(",")}|${b}`,d=r.get(c);if(d)return d;let e=b?"$":"?$",f="\\d?"+(b?"":"(-\\w{6})?"),g=a.length>0?[...a,"txt"]:["txt"],h=a.length>0?[...a,"webmanifest","json"]:["webmanifest","json"],j=[RegExp(`^[\\\\/]robots${k(g,null)}${e}`),RegExp(`^[\\\\/]manifest${k(h,null)}${e}`),RegExp(`[\\\\/]sitemap${k(["xml"],a)}${e}`),RegExp(`[\\\\/]icon${f}${k(i.icon.extensions,a)}${e}`),RegExp(`[\\\\/]apple-icon${f}${k(i.apple.extensions,a)}${e}`),RegExp(`[\\\\/]opengraph-image${f}${k(i.openGraph.extensions,a)}${e}`),RegExp(`[\\\\/]twitter-image${f}${k(i.twitter.extensions,a)}${e}`)];return r.set(c,j),j}(b,c);for(let a=0;a{"use strict";var d=c(48137);c.o(d,"notFound")&&c.d(b,{notFound:function(){return d.notFound}}),c.o(d,"useParams")&&c.d(b,{useParams:function(){return d.useParams}}),c.o(d,"usePathname")&&c.d(b,{usePathname:function(){return d.usePathname}}),c.o(d,"useRouter")&&c.d(b,{useRouter:function(){return d.useRouter}}),c.o(d,"useSearchParams")&&c.d(b,{useSearchParams:function(){return d.useSearchParams}})},29030:(a,b,c)=>{"use strict";c.d(b,{Zr:()=>e});let d=a=>b=>{try{let c=a(b);if(c instanceof Promise)return c;return{then:a=>d(a)(c),catch(a){return this}}}catch(a){return{then(a){return this},catch:b=>d(b)(a)}}},e=(a,b)=>(c,e,f)=>{let g,h={storage:function(a){let b;try{b=a()}catch(a){return}return{getItem:a=>{var c;let d=a=>null===a?null:JSON.parse(a,void 0),e=null!=(c=b.getItem(a))?c:null;return e instanceof Promise?e.then(d):d(e)},setItem:(a,c)=>b.setItem(a,JSON.stringify(c,void 0)),removeItem:a=>b.removeItem(a)}}(()=>window.localStorage),partialize:a=>a,version:0,merge:(a,b)=>({...b,...a}),...b},i=!1,j=0,k=new Set,l=new Set,m=h.storage;if(!m)return a((...a)=>{console.warn(`[zustand persist middleware] Unable to update item '${h.name}', the given storage is currently unavailable.`),c(...a)},e,f);let n=()=>{let a=h.partialize({...e()});return m.setItem(h.name,{state:a,version:h.version})},o=f.setState;f.setState=(a,b)=>(o(a,b),n());let p=a((...a)=>(c(...a),n()),e,f);f.getInitialState=()=>p;let q=()=>{var a,b;if(!m)return;let f=++j;i=!1,k.forEach(a=>{var b;return a(null!=(b=e())?b:p)});let o=(null==(b=h.onRehydrateStorage)?void 0:b.call(h,null!=(a=e())?a:p))||void 0;return d(m.getItem.bind(m))(h.name).then(a=>{if(a)if("number"!=typeof a.version||a.version===h.version)return[!1,a.state];else{if(h.migrate){let b=h.migrate(a.state,a.version);return b instanceof Promise?b.then(a=>[!0,a]):[!0,b]}console.error("State loaded from storage couldn't be migrated since no migrate function was provided")}return[!1,void 0]}).then(a=>{var b;if(f!==j)return;let[d,i]=a;if(c(g=h.merge(i,null!=(b=e())?b:p),!0),d)return n()}).then(()=>{f===j&&(null==o||o(e(),void 0),g=e(),i=!0,l.forEach(a=>a(g)))}).catch(a=>{f===j&&(null==o||o(void 0,a))})};return f.persist={setOptions:a=>{h={...h,...a},a.storage&&(m=a.storage)},clearStorage:()=>{null==m||m.removeItem(h.name)},getOptions:()=>h,rehydrate:()=>q(),hasHydrated:()=>i,onHydrate:a=>(k.add(a),()=>{k.delete(a)}),onFinishHydration:a=>(l.add(a),()=>{l.delete(a)})},h.skipHydration||q(),g||p}},34070:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compileNonPath:function(){return m},matchHas:function(){return l},parseDestination:function(){return n},prepareDestination:function(){return o}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(53693),g=c(55079),h=c(53309),i=c(93156),j=c(25025);function k(a){return a.replace(/__ESC_COLON_/gi,":")}function l(a,b,c=[],d=[]){let e={},f=c=>{let d,f=c.key;switch(c.type){case"header":f=f.toLowerCase(),d=a.headers[f];break;case"cookie":d="cookies"in a?a.cookies[c.key]:(0,i.getCookieParser)(a.headers)()[c.key];break;case"query":d=b[f];break;case"host":{let{host:b}=a?.headers||{};d=b?.split(":",1)[0].toLowerCase()}}if(!c.value&&d)return e[function(a){let b="";for(let c=0;c64&&d<91||d>96&&d<123)&&(b+=a[c])}return b}(f)]=d,!0;if(d){let a=RegExp(`^${c.value}$`),b=Array.isArray(d)?d.slice(-1)[0].match(a):d.match(a);if(b)return Array.isArray(b)&&(b.groups?Object.keys(b.groups).forEach(a=>{e[a]=b.groups[a]}):"host"===c.type&&b[0]&&(e.host=b[0])),!0}return!1};return!(!c.every(a=>f(a))||d.some(a=>f(a)))&&e}function m(a,b){if(!a.includes(":"))return a;for(let c of Object.keys(b))a.includes(`:${c}`)&&(a=a.replace(RegExp(`:${c}\\*`,"g"),`:${c}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${c}\\?`,"g"),`:${c}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${c}\\+`,"g"),`:${c}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${c}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${c}`));return a=a.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),(0,j.safeCompile)(`/${a}`,{validate:!1})(b).slice(1)}function n(a){let b=a.destination;for(let c of Object.keys({...a.params,...a.query}))c&&(b=b.replace(RegExp(`:${(0,f.escapeStringRegexp)(c)}`,"g"),`__ESC_COLON_${c}`));let c=(0,g.parseUrl)(b),d=c.pathname;d&&(d=k(d));let e=c.href;e&&(e=k(e));let h=c.hostname;h&&(h=k(h));let i=c.hash;i&&(i=k(i));let j=c.search;j&&(j=k(j));let l=c.origin;return l&&(l=k(l)),{...c,pathname:d,hostname:h,href:e,hash:i,search:j,origin:l}}function o(a){let b,c,d=n(a),{hostname:e,query:f,search:g}=d,i=d.pathname;d.hash&&(i=`${i}${d.hash}`);let l=[],o=[];for(let a of((0,j.safePathToRegexp)(i,o),o))l.push(a.name);if(e){let a=[];for(let b of((0,j.safePathToRegexp)(e,a),a))l.push(b.name)}let p=(0,j.safeCompile)(i,{validate:!1});for(let[c,d]of(e&&(b=(0,j.safeCompile)(e,{validate:!1})),Object.entries(f)))Array.isArray(d)?f[c]=d.map(b=>m(k(b),a.params)):"string"==typeof d&&(f[c]=m(k(d),a.params));let q=Object.keys(a.params).filter(a=>"nextInternalLocale"!==a);if(a.appendParamsToQuery&&!q.some(a=>l.includes(a)))for(let b of q)b in f||(f[b]=a.params[b]);if((0,h.isInterceptionRouteAppPath)(i))for(let b of i.split("/")){let c=h.INTERCEPTION_ROUTE_MARKERS.find(a=>b.startsWith(a));if(c){"(..)(..)"===c?(a.params["0"]="(..)",a.params["1"]="(..)"):a.params["0"]=c;break}}try{let[e,f]=(c=p(a.params)).split("#",2);b&&(d.hostname=b(a.params)),d.pathname=e,d.hash=`${f?"#":""}${f||""}`,d.search=g?m(g,a.params):""}catch(a){if(a.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw a}return d.query={...a.query,...d.query},{newUrl:c,destQuery:f,parsedDestination:d}}},34490:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PARAM_SEPARATOR:function(){return e},hasAdjacentParameterIssues:function(){return f},normalizeAdjacentParameters:function(){return g},normalizeTokensForRegexp:function(){return h},stripNormalizedSeparators:function(){return i},stripParameterSeparators:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="_NEXTSEP_";function f(a){return"string"==typeof a&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(a)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(a))}function g(a){let b=a;return(b=b.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${e}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${e}`)}function h(a){return a.map(a=>"object"==typeof a&&null!==a&&"modifier"in a&&("*"===a.modifier||"+"===a.modifier)&&"prefix"in a&&"suffix"in a&&""===a.prefix&&""===a.suffix?{...a,prefix:"/"}:a)}function i(a){return a.replace(RegExp(`\\)${e}`,"g"),")")}function j(a){let b={};for(let[c,d]of Object.entries(a))"string"==typeof d?b[c]=d.replace(RegExp(`^${e}`),""):Array.isArray(d)?b[c]=d.map(a=>"string"==typeof a?a.replace(RegExp(`^${e}`),""):a):b[c]=d;return b}},45493:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getPreviouslyRevalidatedTags:function(){return w},getServerUtils:function(){return v},interpolateDynamicPath:function(){return t},normalizeCdnUrl:function(){return s},normalizeDynamicRouteParams:function(){return u}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(5831),g=c(82917),h=c(57839),i=c(24802),j=c(34070),k=c(31303),l=c(1586),m=c(80463),n=c(43448),o=c(58903),p=c(92031),q=c(67801);function r(a,b){for(let c in delete a.nextInternalLocale,a){let d=c!==m.NEXT_QUERY_PARAM_PREFIX&&c.startsWith(m.NEXT_QUERY_PARAM_PREFIX),e=c!==m.NEXT_INTERCEPTION_MARKER_PREFIX&&c.startsWith(m.NEXT_INTERCEPTION_MARKER_PREFIX);(d||e||b.includes(c))&&delete a[c]}}function s(a,b){let c=(0,p.parseReqUrl)(a.url);if(!c)return a.url;delete c.search,r(c.query,b),a.url=(0,q.formatUrl)(c)}function t(a,b,c){if(!c)return a;for(let d of Object.keys(c.groups)){let e,{optional:f,repeat:g}=c.groups[d],h=`[${g?"...":""}${d}]`;f&&(h=`[${h}]`);let i=b[d];((e=Array.isArray(i)?i.map(a=>a&&encodeURIComponent(a)).join("/"):i?encodeURIComponent(i):"")||f)&&(a=a.replaceAll(h,e))}return a}function u(a,b,c,d){let e={};for(let f of Object.keys(b.groups)){let g=a[f];"string"==typeof g?g=(0,l.normalizeRscURL)(g):Array.isArray(g)&&(g=g.map(l.normalizeRscURL));let h=c[f],i=b.groups[f].optional;if((Array.isArray(h)?h.some(a=>Array.isArray(g)?g.some(b=>b.includes(a)):null==g?void 0:g.includes(a)):null==g?void 0:g.includes(h))||void 0===g&&!(i&&d))return{params:{},hasValidParams:!1};i&&(!g||Array.isArray(g)&&1===g.length&&("index"===g[0]||g[0]===`[[...${f}]]`)||"index"===g||g===`[[...${f}]]`)&&(g=void 0,delete a[f]),g&&"string"==typeof g&&b.groups[f].repeat&&(g=g.split("/")),g&&(e[f]=g)}return{params:e,hasValidParams:!0}}function v({page:a,i18n:b,basePath:c,rewrites:d,pageIsDynamic:e,trailingSlash:l,caseSensitive:m}){let p,q,w;return e&&(p=(0,h.getNamedRouteRegex)(a,{prefixRouteKeys:!1}),w=(q=(0,i.getRouteMatcher)(p))(a)),{handleRewrites:function(h,i){let n=structuredClone(i),o={},p=n.pathname,r=d=>{let i=(0,g.getPathMatch)(d.source+(l?"(/)?":""),{removeUnnamedParams:!0,strict:!0,sensitive:!!m});if(!n.pathname)return!1;let k=i(n.pathname);if((d.has||d.missing)&&k){let a=(0,j.matchHas)(h,n.query,d.has,d.missing);a?Object.assign(k,a):k=!1}if(k){let{parsedDestination:g,destQuery:h}=(0,j.prepareDestination)({appendParamsToQuery:!0,destination:d.destination,params:k,query:n.query});if(g.protocol)return!0;if(Object.assign(o,h,k),Object.assign(n.query,g.query),delete g.query,Object.assign(n,g),!(p=n.pathname))return!1;if(c&&(p=p.replace(RegExp(`^${c}`),"")||"/"),b){let a=(0,f.normalizeLocalePath)(p,b.locales);p=a.pathname,n.query.nextInternalLocale=a.detectedLocale||k.nextInternalLocale}if(p===a)return!0;if(e&&q){let a=q(p);if(a)return n.query={...n.query,...a},!0}}return!1};for(let a of d.beforeFiles||[])r(a);if(p!==a){let b,c=!1;for(let a of d.afterFiles||[])if(c=r(a))break;if(!c&&!((b=(0,k.removeTrailingSlash)(p||""))===(0,k.removeTrailingSlash)(a)||(null==q?void 0:q(b)))){for(let a of d.fallback||[])if(c=r(a))break}}return{rewriteParams:o,rewrittenParsedUrl:n}},defaultRouteRegex:p,dynamicRouteMatcher:q,defaultRouteMatches:w,normalizeQueryParams:function(a,b){for(let[c,d]of(delete a.nextInternalLocale,Object.entries(a))){let e=(0,n.normalizeNextQueryParam)(c);e&&(delete a[c],b.add(e),void 0!==d&&(a[e]=Array.isArray(d)?d.map(a=>(0,o.decodeQueryPathParameter)(a)):(0,o.decodeQueryPathParameter)(d)))}},getParamsFromRouteMatches:function(a){if(!p)return null;let{groups:b,routeKeys:c}=p,d=(0,i.getRouteMatcher)({re:{exec:a=>{let d=Object.fromEntries(new URLSearchParams(a));for(let[a,b]of Object.entries(d)){let c=(0,n.normalizeNextQueryParam)(a);c&&(d[c]=b,delete d[a])}let e={};for(let a of Object.keys(c)){let f=c[a];if(!f)continue;let g=b[f],h=d[a];if(!g.optional&&!h)return null;e[g.pos]=h}return e}},groups:b})(a);return d||null},normalizeDynamicRouteParams:(a,b)=>p&&w?u(a,p,w,b):{params:{},hasValidParams:!1},normalizeCdnUrl:(a,b)=>s(a,b),interpolateDynamicPath:(a,b)=>t(a,b,p),filterInternalQuery:(a,b)=>r(a,b)}}function w(a,b){return"string"==typeof a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER]&&a[m.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER]===b?a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(","):[]}},50714:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={fillMetadataSegment:function(){return p},normalizeMetadataPageToRoute:function(){return r},normalizeMetadataRoute:function(){return q}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(27968),h=(d=c(57183))&&d.__esModule?d:{default:d},i=c(45493),j=c(57839),k=c(46484),l=c(1586),m=c(25646),n=c(20187);function o(a){let b=h.default.dirname(a);if(a.endsWith("/sitemap")||a.endsWith("/sitemap.xml"))return"";let c="";return b.split("/").some(a=>(0,n.isGroupSegment)(a)||(0,n.isParallelRouteSegment)(a))&&(c=(0,k.djb2Hash)(b).toString(36).slice(0,6)),c}function p(a,b,c,d){let e=(0,l.normalizeAppPath)(a),f=(0,j.getNamedRouteRegex)(e,{prefixRouteKeys:!1}),g=d?Object.keys(f.groups).reduce((a,b)=>{let{repeat:c}=f.groups[b];return a[b]=c?["-"]:"-",a},{}):b,k=(0,i.interpolateDynamicPath)(e,g,f),{name:n,ext:p}=h.default.parse(c),q=o(h.default.posix.join(a,n)),r=q?`-${q}`:"";return(0,m.normalizePathSep)(h.default.join(k,`${n}${r}${p}`))}function q(a){if(!(0,g.isMetadataPage)(a))return a;let b=a,c="";if("/robots"===a?b+=".txt":"/manifest"===a?b+=".webmanifest":c=o(a),!b.endsWith("/route")){let{dir:a,name:d,ext:e}=h.default.parse(b);b=h.default.posix.join(a,`${d}${c?`-${c}`:""}${e}`,"route")}return b}function r(a,b){let c=a.endsWith("/route"),d=c?a.slice(0,-6):a,e=d.endsWith("/sitemap")?".xml":"";return(b?`${d}/[__metadata_id__]`:`${d}${e}`)+(c?"/route":"")}},53693:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},55079:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseUrl",{enumerable:!0,get:function(){return f}});let d=c(24529),e=c(35848);function f(a){if(a.startsWith("/"))return(0,e.parseRelativeUrl)(a);let b=new URL(a),c=b.username,f=b.password,g=c?f?`${c}:${f}`:c:null,h=b.pathname,i=b.search;return{auth:g,hash:b.hash,hostname:b.hostname,href:b.href,pathname:h,port:b.port,protocol:b.protocol,query:(0,d.searchParamsToUrlQuery)(b.searchParams),search:i,origin:b.origin,slashes:"//"===b.href.slice(b.protocol.length,b.protocol.length+2)}}},57810:a=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b={};(()=>{function a(a,b){void 0===b&&(b={});for(var c=function(a){for(var b=[],c=0;c=48&&g<=57||g>=65&&g<=90||g>=97&&g<=122||95===g){e+=a[f++];continue}break}if(!e)throw TypeError("Missing parameter name at ".concat(c));b.push({type:"NAME",index:c,value:e}),c=f;continue}if("("===d){var h=1,i="",f=c+1;if("?"===a[f])throw TypeError('Pattern cannot start with "?" at '.concat(f));for(;f-1)return!0}return!1},q=function(a){var b=i[i.length-1],c=a||(b&&"string"==typeof b?b:"");if(b&&!c)throw TypeError('Must have text between two parameters, missing text after "'.concat(b.name,'"'));return!c||p(c)?"[^".concat(e(h),"]+?"):"(?:(?!".concat(e(c),")[^").concat(e(h),"])+?")};k-1:void 0===v;g||(p+="(?:".concat(o,"(?=").concat(n,"))?")),w||(p+="(?=".concat(o,"|").concat(n,")"))}return new RegExp(p,f(c))}function h(b,c,d){if(b instanceof RegExp){var e;if(!c)return b;for(var i=/\((?:\?<(.*?)>)?(?!\?)/g,j=0,k=i.exec(b.source);k;)c.push({name:k[1]||j++,prefix:"",suffix:"",modifier:"",pattern:""}),k=i.exec(b.source);return b}return Array.isArray(b)?(e=b.map(function(a){return h(a,c,d).source}),new RegExp("(?:".concat(e.join("|"),")"),f(d))):g(a(b,d),c,d)}Object.defineProperty(b,"__esModule",{value:!0}),b.pathToRegexp=b.tokensToRegexp=b.regexpToFunction=b.match=b.tokensToFunction=b.compile=b.parse=void 0,b.parse=a,b.compile=function(b,d){return c(a(b,d),d)},b.tokensToFunction=c,b.match=function(a,b){var c=[];return d(h(a,c,b),c,b)},b.regexpToFunction=d,b.tokensToRegexp=g,b.pathToRegexp=h})(),a.exports=b})()},57839:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(80463),g=c(53309),h=c(53693),i=c(31303),j=c(86480);function k(a,b,c){let d={},e=1,f=[];for(let k of(0,i.removeTrailingSlash)(a).slice(1).split("/")){let a=g.INTERCEPTION_ROUTE_MARKERS.find(a=>k.startsWith(a)),i=k.match(j.PARAMETER_PATTERN);if(a&&i&&i[2]){let{key:b,optional:c,repeat:g}=(0,j.parseMatchedParameter)(i[2]);d[b]={pos:e++,repeat:g,optional:c},f.push(`/${(0,h.escapeStringRegexp)(a)}([^/]+?)`)}else if(i&&i[2]){let{key:a,repeat:b,optional:g}=(0,j.parseMatchedParameter)(i[2]);d[a]={pos:e++,repeat:b,optional:g},c&&i[1]&&f.push(`/${(0,h.escapeStringRegexp)(i[1])}`);let k=b?g?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&i[1]&&(k=k.substring(1)),f.push(k)}else f.push(`/${(0,h.escapeStringRegexp)(k)}`);b&&i&&i[3]&&f.push((0,h.escapeStringRegexp)(i[3]))}return{parameterizedRoute:f.join(""),groups:d}}function l(a,{includeSuffix:b=!1,includePrefix:c=!1,excludeOptionalTrailingSlash:d=!1}={}){let{parameterizedRoute:e,groups:f}=k(a,b,c),g=e;return d||(g+="(?:/)?"),{re:RegExp(`^${g}$`),groups:f}}function m({interceptionMarker:a,getSafeRouteKey:b,segment:c,routeKeys:d,keyPrefix:e,backreferenceDuplicateKeys:f}){let g,{key:i,optional:k,repeat:l}=(0,j.parseMatchedParameter)(c),n=i.replace(/\W/g,"");e&&(n=`${e}${n}`);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=b());let p=n in d;e?d[n]=`${e}${i}`:d[n]=i;let q=a?(0,h.escapeStringRegexp)(a):"";return g=p&&f?`\\k<${n}>`:l?`(?<${n}>.+?)`:`(?<${n}>[^/]+?)`,{key:i,pattern:k?`(?:/${q}${g})?`:`/${q}${g}`,cleanedKey:n,optional:k,repeat:l}}function n(a,b,c,d,e,k={names:{},intercepted:{}}){let l,o=(l=0,()=>{let a="",b=++l;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),p={},q=[],r=[];for(let l of(k=structuredClone(k),(0,i.removeTrailingSlash)(a).slice(1).split("/"))){let a,i=g.INTERCEPTION_ROUTE_MARKERS.some(a=>l.startsWith(a)),n=l.match(j.PARAMETER_PATTERN),s=i?n?.[1]:void 0;if(s&&n?.[2]?(a=b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,k.intercepted[n[2]]=s):a=n?.[2]&&k.intercepted[n[2]]?b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0:b?f.NEXT_QUERY_PARAM_PREFIX:void 0,s&&n&&n[2]){let{key:b,pattern:c,cleanedKey:d,repeat:f,optional:g}=m({getSafeRouteKey:o,interceptionMarker:s,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e});q.push(c),r.push(`/${n[1]}:${k.names[b]??d}${f?g?"*":"+":""}`),k.names[b]??=d}else if(n&&n[2]){d&&n[1]&&(q.push(`/${(0,h.escapeStringRegexp)(n[1])}`),r.push(`/${n[1]}`));let{key:b,pattern:c,cleanedKey:f,repeat:g,optional:i}=m({getSafeRouteKey:o,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e}),j=c;d&&n[1]&&(j=j.substring(1)),q.push(j),r.push(`/:${k.names[b]??f}${g?i?"*":"+":""}`),k.names[b]??=f}else q.push(`/${(0,h.escapeStringRegexp)(l)}`),r.push(`/${l}`);c&&n&&n[3]&&(q.push((0,h.escapeStringRegexp)(n[3])),r.push(n[3]))}return{namedParameterizedRoute:q.join(""),routeKeys:p,pathToRegexpPattern:r.join(""),reference:k}}function o(a,b){let c=n(a,b.prefixRouteKeys,b.includeSuffix??!1,b.includePrefix??!1,b.backreferenceDuplicateKeys??!1,b.reference),d=c.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(d+="(?:/)?"),{...l(a,b),namedRegex:`^${d}$`,routeKeys:c.routeKeys,pathToRegexpPattern:c.pathToRegexpPattern,reference:c.reference}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:`^/${d?".*":""}$`};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1,void 0);return{namedRegex:`^${e}${d?"(?:(/.*)?)":""}$`}}},58903:(a,b)=>{"use strict";function c(a){try{return decodeURIComponent(a)}catch{return a}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"decodeQueryPathParameter",{enumerable:!0,get:function(){return c}})},67801:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={formatUrl:function(){return h},formatWithValidation:function(){return j},urlObjectKeys:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(74802)._(c(24529)),g=/https?|ftp|gopher|file/;function h(a){let{auth:b,hostname:c}=a,d=a.protocol||"",e=a.pathname||"",h=a.hash||"",i=a.query||"",j=!1;b=b?encodeURIComponent(b).replace(/%3A/i,":")+"@":"",a.host?j=b+a.host:c&&(j=b+(~c.indexOf(":")?`[${c}]`:c),a.port&&(j+=":"+a.port)),i&&"object"==typeof i&&(i=String(f.urlQueryToSearchParams(i)));let k=a.search||i&&`?${i}`||"";return d&&!d.endsWith(":")&&(d+=":"),a.slashes||(!d||g.test(d))&&!1!==j?(j="//"+(j||""),e&&"/"!==e[0]&&(e="/"+e)):j||(j=""),h&&"#"!==h[0]&&(h="#"+h),k&&"?"!==k[0]&&(k="?"+k),e=e.replace(/[?#]/g,encodeURIComponent),k=k.replace("#","%23"),`${d}${j}${e}${k}${h}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function j(a){return h(a)}},74802:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},76647:a=>{a.exports={style:{fontFamily:"'Inter', 'Inter Fallback'",fontStyle:"normal"},className:"__className_f367f3",variable:"__variable_f367f3"}},82917:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getPathMatch",{enumerable:!0,get:function(){return e}});let d=c(57810);function e(a,b){let c=[],e=(0,d.pathToRegexp)(a,c,{delimiter:"/",sensitive:"boolean"==typeof b?.sensitive&&b.sensitive,strict:b?.strict}),f=(0,d.regexpToFunction)(b?.regexModifier?new RegExp(b.regexModifier(e.source),e.flags):e,c);return(a,d)=>{if("string"!=typeof a)return!1;let e=f(a);if(!e)return!1;if(b?.removeUnnamedParams)for(let a of c)"number"==typeof a.name&&delete e.params[a.name];return{...d,...e.params}}}},86480:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={PARAMETER_PATTERN:function(){return l},getDynamicParam:function(){return k},interpolateParallelRouteParams:function(){return j},parseMatchedParameter:function(){return n},parseParameter:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(45521),g=c(21232),h=c(17682),i=c(51904);function j(a,b,c,d){let e=structuredClone(b),j=[{tree:a,depth:0}],k=(0,h.parseAppRoute)(c,!0);for(;j.length>0;){let{tree:a,depth:b}=j.pop(),{segment:c,parallelRoutes:l}=(0,g.parseLoaderTree)(a),m=(0,h.parseAppRouteSegment)(c);if(m?.type==="dynamic"&&!e.hasOwnProperty(m.param.paramName)&&!d?.has(m.param.paramName)){let{paramName:a,paramType:c}=m.param,d=(0,i.resolveParamValue)(a,c,b,k,e);if(void 0!==d)e[a]=d;else if("optional-catchall"!==c)throw Object.defineProperty(new f.InvariantError(`Could not resolve param value for segment: ${a}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let n=b;for(let a of(m&&"route-group"!==m.type&&"parallel-route"!==m.type&&n++,Object.values(l)))j.push({tree:a,depth:n})}return e}function k(a,b,c,d,e){let g=function(a,b,c){let d=a[b];if(c?.has(b)){let[a]=c.get(b);d=a}else Array.isArray(d)?d=d.map(a=>encodeURIComponent(a)):"string"==typeof d&&(d=encodeURIComponent(d));return d}(a,b,d);if(!g||0===g.length){if("oc"===c)return{param:b,value:null,type:c,treeSegment:[b,"",c,e]};throw Object.defineProperty(new f.InvariantError(`Missing value for segment key: "${b}" with dynamic param type: ${c}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let h=Array.isArray(g)?g.join("/"):g;return{param:b,value:g,treeSegment:[b,h,c,e],type:c}}let l=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function m(a){let b=a.match(l);return b?n(b[2]):n(a)}function n(a){let b=a.startsWith("[")&&a.endsWith("]");b&&(a=a.slice(1,-1));let c=a.startsWith("...");return c&&(a=a.slice(3)),{key:a,repeat:c,optional:b}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/2503.js b/cli/app/.next/server/chunks/2503.js new file mode 100644 index 00000000000..229af7c9fa1 --- /dev/null +++ b/cli/app/.next/server/chunks/2503.js @@ -0,0 +1,15 @@ +"use strict";exports.id=2503,exports.ids=[2503],exports.modules={17893:(a,b,c)=>{let d=c(33873),e=c(21820),f=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?d.join(process.env.APPDATA||d.join(e.homedir(),"AppData","Roaming"),"9router"):d.join(e.homedir(),".9router"),g=d.join(f,"mitm");a.exports={DATA_DIR:f,MITM_DIR:g}},55757:(a,b,c)=>{let{exec:d,execSync:e}=c(79646),f="win32"===process.platform;function g(){if(f)try{return e("net session >nul 2>&1",{windowsHide:!0,stdio:"ignore"}),!0}catch{return!1}return"function"==typeof process.getuid&&0===process.getuid()}function h(a){return`'${String(a).replace(/'/g,"''")}'`}a.exports={isAdmin:g,runElevatedPowerShell:function(a){if(!f)return Promise.reject(Error("Windows-only"));let b=Buffer.from(a,"utf16le").toString("base64");if(g())return new Promise((a,c)=>{d(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${b}`,{windowsHide:!0},(b,d,e)=>{b?c(Error(e||b.message)):a(d)})});let c=` + $proc = Start-Process powershell -ArgumentList @( + '-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass', + '-WindowStyle','Hidden','-EncodedCommand','${b}' + ) -Verb RunAs -Wait -PassThru -WindowStyle Hidden; + if ($proc.ExitCode -ne 0) { throw "Elevated command exited with code $($proc.ExitCode)" } + `;return new Promise((a,b)=>{d(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command ${h(c)}`,{windowsHide:!0},(c,d,e)=>{if(c){let a=e||c.message;a.includes("canceled by the user")||a.includes("operation was canceled")?b(Error("User canceled UAC prompt")):b(Error(a))}else a(d)})})},quotePs:h}},66233:a=>{a.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"]}}},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},82571:a=>{a.exports={TARGET_HOSTS:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","api2.cursor.sh"],URL_PATTERNS:{antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"]},MODEL_SYNONYMS:{antigravity:{"gemini-default":"gemini-3-flash"}},LOG_BLACKLIST_URL_PARTS:["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"],getToolForHost:function(a){let b=(a||"").split(":")[0];return"api.individual.githubcopilot.com"===b?"copilot":"daily-cloudcode-pa.googleapis.com"===b||"cloudcode-pa.googleapis.com"===b?"antigravity":"q.us-east-1.amazonaws.com"===b?"kiro":"api2.cursor.sh"===b?"cursor":null}}},93741:(a,b,c)=>{let d=c(29021),e=c(33873),f=c(74075),{DATA_DIR:g}=c(17893),{LOG_BLACKLIST_URL_PARTS:h}=c(82571);function i(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}let j=e.join(g,"logs","mitm");d.existsSync(j)||d.mkdirSync(j,{recursive:!0});let k=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function l(a,b=80){return String(a).replace(/[^a-zA-Z0-9]/g,"_").substring(0,b)}function m(a){return!!a&&h.some(b=>a.includes(b))}a.exports={log:a=>console.log(`[${i()}] [MITM] ${a}`),err:a=>console.error(`[${i()}] ❌ [MITM] ${a}`),dumpRequest:function(a,b,c="raw"){if(m(a.url))return null;try{let f=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${f}_${c}_${g}.req.json`),i=null;try{i=JSON.parse(b.toString())}catch{}return d.writeFileSync(h,JSON.stringify({method:a.method,url:a.url,host:a.headers.host,headers:a.headers,body:i??b.toString("utf8")},null,2)),h}catch{return null}},createResponseDumper:function(a,b="raw"){if(m(a.url))return null;let c=new Date().toISOString().replace(/[:.]/g,"-"),g=l((a.headers.host||"")+a.url),h=e.join(j,`${c}_${b}_${g}.res.txt`),i=0,n={},o=[];return{writeHeader:(a,b)=>{i=a,n=b||{}},writeChunk:a=>{null!=a&&o.push(Buffer.isBuffer(a)?a:Buffer.from(a))},end:()=>{try{let a=Buffer.concat(o),b=n["content-encoding"]||n["Content-Encoding"],c=(function(a,b){if(!a||0===a.length)return a;try{let c=(b||"").toLowerCase();if(c.includes("gzip"))return f.gunzipSync(a);if(c.includes("br"))return f.brotliDecompressSync(a);if(c.includes("deflate"))return f.inflateSync(a)}catch{}return a})(a,b).toString("utf8");if(k.test(c))return;let e={...n};delete e["content-encoding"],delete e["Content-Encoding"];let g=`STATUS: ${i} +HEADERS: ${JSON.stringify(e,null,2)} +---BODY--- +${c}`;d.writeFileSync(h,g)}catch{}},file:h}}}},98012:(a,b,c)=>{let{exec:d,spawn:e,execSync:f}=c(79646),g=c(29021),h=c(33873);c(21820);let{log:i,err:j}=c(93741),{TOOL_HOSTS:k}=c(66233),{runElevatedPowerShell:l,isAdmin:m}=c(55757);function n(a,b,c){let d=`${a}.9router.new`,e=`${a}.9router.bak`;try{g.writeFileSync(d,c,"utf8");try{g.unlinkSync(e)}catch{}g.renameSync(a,e);try{g.renameSync(d,a)}catch(c){try{g.renameSync(e,a)}catch{g.writeFileSync(a,b,"utf8")}throw c}try{g.unlinkSync(e)}catch{}}finally{try{g.unlinkSync(d)}catch{}}}let o="win32"===process.platform,p="darwin"===process.platform,q=o?h.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"):"/etc/hosts";function r(){if(o)return!1;try{return f("command -v sudo",{stdio:"ignore",windowsHide:!0}),!0}catch{return!1}}function s(){if(o||!r())return!0;try{return f("sudo -n true",{stdio:"ignore",windowsHide:!0}),!0}catch{return!1}}function t(a,b){return new Promise((c,d)=>{let f=r(),g=f?e("sudo",["-S","sh","-c",a],{stdio:["pipe","pipe","pipe"],windowsHide:!0}):e("sh",["-c",a],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),h="",i="";g.stdout.on("data",a=>{h+=a}),g.stderr.on("data",a=>{i+=a}),g.on("close",a=>{0===a?c(h):d(Error(i||`Exit code ${a}`))}),f&&(g.stdin.write(`${b} +`),g.stdin.end())})}async function u(a){o||(p?await t("dscacheutil -flushcache && killall -HUP mDNSResponder",a):await t("resolvectl flush-caches 2>/dev/null || true",a))}function v(a=null){try{let b=g.readFileSync(q,"utf8");if(a)return b.includes(a);return k.antigravity.every(a=>b.includes(a))}catch{return!1}}async function w(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>!v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already active`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.replace(/[\r\n\s]+$/g,""),c=d.map(a=>`127.0.0.1 ${a}`).join("\r\n"),e=`${b}\r +${c}\r +`;n(q,a,e),await l("ipconfig /flushdns | Out-Null")}else{let a=g.readFileSync(q,"utf8").replace(/[\r\n\s]+$/g,""),c=d.map(a=>`127.0.0.1 ${a}`).join("\n"),e=`${a} +${c} +`.replace(/'/g,"'\\''");await t(`printf '%s' '${e}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ added ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${a.message}`)}}async function x(a,b){let c=k[a];if(!c)throw Error(`Unknown tool: ${a}`);let d=c.filter(a=>v(a));if(0===d.length)return void i(`🌐 DNS ${a}: already inactive`);try{if(o){let a=g.readFileSync(q,"utf8"),b=a.split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\r\n").replace(/[\r\n\s]+$/g,"")+"\r\n";n(q,a,b),await l("ipconfig /flushdns | Out-Null")}else{let a=(g.readFileSync(q,"utf8").split(/\r?\n/).filter(a=>!d.some(b=>a.includes(b))).join("\n").replace(/[\r\n\s]+$/g,"")+"\n").replace(/'/g,"'\\''");await t(`printf '%s' '${a}' | tee ${q} > /dev/null`,b),await u(b)}i(`🌐 DNS ${a}: ✅ removed ${d.join(", ")}`)}catch(a){throw Error(a.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${a.message}`)}}async function y(a){for(let b of Object.keys(k))try{await x(b,a)}catch(a){j(`DNS ${b}: failed to remove — ${a.message}`)}}a.exports={TOOL_HOSTS:k,addDNSEntry:w,removeDNSEntry:x,removeAllDNSEntries:y,removeAllDNSEntriesSync:function(){try{if(!g.existsSync(q))return;let a=Object.values(k).flat(),b=g.readFileSync(q,"utf8"),c=o?"\r\n":"\n",d=b.split(/\r?\n/).filter(b=>!a.some(a=>b.includes(a))).join(c).replace(/[\r\n\s]+$/g,"")+c;if(d===b)return;if(g.writeFileSync(q,d,"utf8"),o)try{f("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(p)try{f("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{f("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}},execWithPassword:t,isSudoAvailable:r,canRunSudoWithoutPassword:s,isSudoPasswordRequired:function(){return!o&&r()&&!s()},checkDNSEntry:v,checkAllDNSStatus:function(){try{let a=g.readFileSync(q,"utf8"),b={};for(let[c,d]of Object.entries(k))b[c]=d.every(b=>a.includes(b));return b}catch{return Object.fromEntries(Object.keys(k).map(a=>[a,!1]))}}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/253.js b/cli/app/.next/server/chunks/253.js new file mode 100644 index 00000000000..5d61a70d61c --- /dev/null +++ b/cli/app/.next/server/chunks/253.js @@ -0,0 +1 @@ +"use strict";exports.id=253,exports.ids=[253],exports.modules={24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},39006:a=>{a.exports={rE:"0.4.20"}},47978:(a,b,c)=>{c.d(b,{DI:()=>e,Hp:()=>g,LT:()=>f,MZ:()=>o,Nl:()=>r,Nu:()=>k,OV:()=>d,Tx:()=>l,WN:()=>m,YT:()=>j,ZL:()=>i,f7:()=>q,hF:()=>h,lB:()=>p,t:()=>n}),c(21820);let d={clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",authorizeUrl:"https://claude.ai/oauth/authorize",tokenUrl:"https://api.anthropic.com/v1/oauth/token",scopes:["org:create_api_key","user:profile","user:inference"],codeChallengeMethod:"S256"},e={clientId:"app_EMoamEEZ73f0CkXaXp7hrann",authorizeUrl:"https://auth.openai.com/oauth/authorize",tokenUrl:"https://auth.openai.com/oauth/token",scope:"openid profile email offline_access",codeChallengeMethod:"S256",extraParams:{id_token_add_organizations:"true",codex_cli_simplified_flow:"true",originator:"codex_cli_rs"}},f={clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile"]},g={clientId:"f0304373b74a44d2b584a3fb70ca9e56",deviceCodeUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",scope:"openid profile email model.completion",codeChallengeMethod:"S256"},h={apiBaseUrl:"https://api2.qoder.sh",deviceTokenUrl:"https://api2.qoder.sh/api/v1/deviceToken/poll",deviceRefreshUrl:"https://api2.qoder.sh/api/v1/deviceToken/refresh",refreshUrl:"https://api2.qoder.sh/api/v3/user/refresh_token",userInfoUrl:"https://api2.qoder.sh/api/v1/userinfo",statusUrl:"https://api2.qoder.sh/api/v3/user/status",loginUrl:"https://qoder.com/login"},i={clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",authorizeUrl:"https://iflow.cn/oauth",tokenUrl:"https://iflow.cn/oauth/token",userInfoUrl:"https://iflow.cn/api/oauth/getUserInfo",extraParams:{loginMethod:"phone",type:"phone"}},j={clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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",authorizeUrl:"https://accounts.google.com/o/oauth2/v2/auth",tokenUrl:"https://oauth2.googleapis.com/token",userInfoUrl:"https://www.googleapis.com/oauth2/v1/userinfo",scopes:["https://www.googleapis.com/auth/cloud-platform","https://www.googleapis.com/auth/userinfo.email","https://www.googleapis.com/auth/userinfo.profile","https://www.googleapis.com/auth/cclog","https://www.googleapis.com/auth/experimentsandconfigs"],apiEndpoint:"https://cloudcode-pa.googleapis.com",apiVersion:"v1internal",loadCodeAssistEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:loadCodeAssist",onboardUserEndpoint:"https://cloudcode-pa.googleapis.com/v1internal:onboardUser",loadCodeAssistUserAgent:"google-api-nodejs-client/9.15.1",loadCodeAssistApiClient:"google-cloud-sdk vscode_cloudshelleditor/0.1",loadCodeAssistClientMetadata:JSON.stringify({ideType:"IDE_UNSPECIFIED",platform:"PLATFORM_UNSPECIFIED",pluginType:"GEMINI"})},k={clientId:"Iv1.b507a08c87ecfe98",deviceCodeUrl:"https://github.com/login/device/code",tokenUrl:"https://github.com/login/oauth/access_token",userInfoUrl:"https://api.github.com/user",scopes:"read:user",apiVersion:"2022-11-28",copilotTokenUrl:"https://api.github.com/copilot_internal/v2/token",userAgent:"GitHubCopilotChat/0.26.7",editorVersion:"vscode/1.85.0",editorPluginVersion:"copilot-chat/0.26.7"},l={ssoOidcEndpoint:"https://oidc.us-east-1.amazonaws.com",registerClientUrl:"https://oidc.us-east-1.amazonaws.com/client/register",deviceAuthUrl:"https://oidc.us-east-1.amazonaws.com/device_authorization",tokenUrl:"https://oidc.us-east-1.amazonaws.com/token",startUrl:"https://view.awsapps.com/start",clientName:"kiro-oauth-client",clientType:"public",scopes:["codewhisperer:completions","codewhisperer:analysis","codewhisperer:conversations"],grantTypes:["urn:ietf:params:oauth:grant-type:device_code","refresh_token"],issuerUrl:"https://identitycenter.amazonaws.com/ssoins-722374e8c3c8e6c6",socialAuthEndpoint:"https://prod.us-east-1.auth.desktop.kiro.dev",socialLoginUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/login",socialTokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/oauth/token",socialRefreshUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authMethods:["builder-id","idc","google","github","import"]},m={apiEndpoint:"https://api2.cursor.sh",chatEndpoint:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",modelsEndpoint:"/aiserver.v1.AiService/GetDefaultModelNudgeData",api3Endpoint:"https://api3.cursor.sh",agentEndpoint:"https://agent.api5.cursor.sh",agentNonPrivacyEndpoint:"https://agentn.api5.cursor.sh",clientVersion:"3.1.0",clientType:"ide",tokenStoragePaths:{linux:"~/.config/Cursor/User/globalStorage/state.vscdb",macos:"/Users//Library/Application Support/Cursor/User/globalStorage/state.vscdb",windows:"%APPDATA%\\Cursor\\User\\globalStorage\\state.vscdb"},dbKeys:{accessToken:"cursorAuth/accessToken",machineId:"storage.serviceMachineId"}},n={clientId:process.env.KIMI_CODING_OAUTH_CLIENT_ID||"17e5f671-d194-4dfb-9706-5516cb48c098",deviceCodeUrl:"https://auth.kimi.com/api/oauth/device_authorization",tokenUrl:"https://auth.kimi.com/api/oauth/token"},o={apiBaseUrl:"https://api.kilo.ai",initiateUrl:"https://api.kilo.ai/api/device-auth/codes",pollUrlBase:"https://api.kilo.ai/api/device-auth/codes"},p={appBaseUrl:"https://app.cline.bot",apiBaseUrl:"https://api.cline.bot",authorizeUrl:"https://api.cline.bot/api/v1/auth/authorize",tokenExchangeUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},q={defaultBaseUrl:"https://gitlab.com",authorizeUrlPath:"/oauth/authorize",tokenUrlPath:"/oauth/token",userInfoUrlPath:"/api/v4/user",scope:"api read_user",codeChallengeMethod:"S256"},r={baseUrl:"https://copilot.tencent.com",stateUrl:"https://copilot.tencent.com/v2/plugin/auth/state",tokenUrl:"https://copilot.tencent.com/v2/plugin/auth/token",refreshUrl:"https://copilot.tencent.com/v2/plugin/auth/token/refresh",userAgent:"CLI/2.63.2 CodeBuddy/2.63.2",platform:"CLI",pollInterval:5e3}},56066:(a,b,c)=>{c.d(b,{C:()=>f});var d=c(16288);function e(a){return null==a?"":String(a).trim()}async function f({proxyUrl:a,testUrl:b,timeoutMs:c}={}){let g,h=e(a);if(!h)return{ok:!1,status:400,error:"proxyUrl is required"};let i=e(b)||"https://google.com/",j=Number(c),k=Number.isFinite(j)&&j>0?Math.min(j,3e4):8e3;try{try{g=new d.ProxyAgent({uri:h})}catch(a){return{ok:!1,status:400,error:`Invalid proxy URL: ${a?.message||String(a)}`}}let a=new AbortController,b=Date.now(),c=setTimeout(()=>a.abort(),k);try{let c=await (0,d.hd)(i,{method:"HEAD",dispatcher:g,signal:a.signal,headers:{"User-Agent":"9Router"}});return{ok:c.ok,status:c.status,statusText:c.statusText,url:i,elapsedMs:Date.now()-b}}catch(b){let a=b?.name==="AbortError"?"Proxy test timed out":function(a){if(!a)return"Unknown error";let b=a?.message||String(a),c=a?.cause?.code||a?.code,d=a?.cause?.message;return d&&d!==b?c?`${b}: ${d} (${c})`:`${b}: ${d}`:c&&!b.includes(c)?`${b} (${c})`:b}(b);return{ok:!1,status:500,error:a}}finally{clearTimeout(c)}}finally{try{await g?.close?.()}catch{}}}},71679:(a,b,c)=>{c.d(b,{F:()=>s});var d=c(37770),e=c(93250),f=c(56066),g=c(50021),h=c(89489),i=c(29737),j=c(62276),k=c(47978),l=c(98774);let m={claude:{checkExpiry:!0,refreshable:!0},codex:{url:"https://chatgpt.com/backend-api/codex/responses",method:"POST",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"Content-Type":"application/json",originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},body:JSON.stringify({model:"gpt-5.3-codex",input:[],stream:!1,store:!1}),acceptStatuses:[400],refreshable:!0},"gemini-cli":{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},antigravity:{url:"https://www.googleapis.com/oauth2/v1/userinfo?alt=json",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",refreshable:!0},github:{url:"https://api.github.com/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer ",extraHeaders:{"User-Agent":"9Router",Accept:"application/vnd.github+json"}},iflow:{buildUrl:a=>`https://iflow.cn/api/oauth/getUserInfo?accessToken=${encodeURIComponent(a)}`,method:"GET",noAuth:!0},qwen:{checkExpiry:!0,refreshable:!0},kiro:{checkExpiry:!0,refreshable:!0},"kimi-coding":{checkExpiry:!0,refreshable:!1},cursor:{tokenExists:!0},kilocode:{url:`${k.MZ.apiBaseUrl}/api/profile`,method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},cline:{refreshable:!0},gitlab:{url:"https://gitlab.com/api/v4/user",method:"GET",authHeader:"Authorization",authPrefix:"Bearer "},codebuddy:{tokenExists:!0}};async function n(a){return await fetch("https://api.cline.bot/api/v1/users/me",{method:"GET",headers:(0,l.w$)(a,{Accept:"application/json"})})}async function o(a){let b=a.provider,c=a.refreshToken;if(!c)return null;try{if("gemini-cli"===b||"antigravity"===b){let a="gemini-cli"===b?k.LT:k.YT,d=await fetch("https://oauth2.googleapis.com/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({client_id:a.clientId,client_secret:a.clientSecret,grant_type:"refresh_token",refresh_token:c})});if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,expiresIn:e.expires_in,refreshToken:e.refresh_token||c}}if("codex"===b){let a=await fetch(k.DI.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:new URLSearchParams({grant_type:"refresh_token",client_id:k.DI.clientId,refresh_token:c})});if(!a.ok)return null;let b=await a.json();return{accessToken:b.access_token,expiresIn:b.expires_in,refreshToken:b.refresh_token||c}}if("claude"===b){let a=await fetch(k.OV.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({grant_type:"refresh_token",refresh_token:c,client_id:k.OV.clientId})});if(!a.ok)return null;let b=await a.json();return{accessToken:b.access_token,expiresIn:b.expires_in,refreshToken:b.refresh_token||c}}if("kiro"===b){let b=a.providerSpecificData||{},d=b.clientId||a.clientId,e=b.clientSecret||a.clientSecret,f=b.region||a.region;if(d&&e){let a=`https://oidc.${f||"us-east-1"}.amazonaws.com/token`,b=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({clientId:d,clientSecret:e,refreshToken:c,grantType:"refresh_token"})});if(!b.ok)return null;let g=await b.json();return{accessToken:g.accessToken,expiresIn:g.expiresIn||3600,refreshToken:g.refreshToken||c}}let g=await fetch(k.Tx.socialRefreshUrl,{method:"POST",headers:{"Content-Type":"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:c})});if(!g.ok)return null;let h=await g.json();return{accessToken:h.accessToken,expiresIn:h.expiresIn||3600,refreshToken:h.refreshToken||c}}if("qwen"===b){let a=await fetch(k.Hp.tokenUrl,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:c,client_id:k.Hp.clientId})});if(!a.ok)return null;let b=await a.json();return{accessToken:b.access_token,expiresIn:b.expires_in,refreshToken:b.refresh_token||c}}if("cline"===b){let a=await fetch(k.lB.refreshUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:c,grantType:"refresh_token",clientType:"extension"})});if(!a.ok)return null;let b=await a.json(),d=b?.data||b,e=d?.expiresAt?Math.max(1,Math.floor((new Date(d.expiresAt).getTime()-Date.now())/1e3)):3600;return{accessToken:d?.accessToken,expiresIn:e,refreshToken:d?.refreshToken||c}}return null}catch(a){return console.log(`Error refreshing ${b} token:`,a.message),null}}async function p(a,b=null){var c;let d=m[a.provider];if(!d)return{valid:!1,error:"Provider test not supported",refreshed:!1};if(!a.accessToken)return{valid:!1,error:"No access token",refreshed:!1};if(d.tokenExists)return{valid:!0,error:null,refreshed:!1,newTokens:null};let e=a.accessToken,f=!1,g=null,h=!!(c=a).expiresAt&&new Date(c.expiresAt).getTime()<=Date.now()+3e5;if(d.refreshable&&h&&a.refreshToken){let b=await o(a);if(!b)return{valid:!1,error:"Token expired and refresh failed",refreshed:!1};e=b.accessToken,f=!0,g=b}if(d.checkExpiry)return f?{valid:!0,error:null,refreshed:f,newTokens:g}:h?{valid:!1,error:"Token expired",refreshed:!1}:{valid:!0,error:null,refreshed:!1,newTokens:null};if("cline"===a.provider){let b=async a=>{let b=await n(a);return b.ok?{valid:!0,error:null,refreshed:f,newTokens:g}:401===b.status?{valid:!1,error:"Token invalid or revoked",refreshed:f}:403===b.status?{valid:!1,error:"Access denied",refreshed:f}:{valid:!1,error:`API returned ${b.status}`,refreshed:f}},c=await b(e);if(c.valid||"Token invalid or revoked"!==c.error||!a.refreshToken)return c;let d=await o(a);return d?.accessToken?(f=!0,g=d,e=d.accessToken,await b(e)):{valid:!1,error:"Token invalid or revoked",refreshed:!1}}try{let c=d.buildUrl?d.buildUrl(e):d.url,h=d.noAuth?{...d.extraHeaders}:{[d.authHeader]:`${d.authPrefix}${e}`,...d.extraHeaders},i={method:d.method,headers:h};d.body&&(i.body=d.body);let j=await q(c,i,b);if(j.ok||d.acceptStatuses&&d.acceptStatuses.includes(j.status))return{valid:!0,error:null,refreshed:f,newTokens:g};if(401===j.status&&d.refreshable&&!f&&a.refreshToken){let e=await o(a);if(e){let a=d.buildUrl?d.buildUrl(e.accessToken):c,f=d.noAuth?{...d.extraHeaders}:{[d.authHeader]:`${d.authPrefix}${e.accessToken}`,...d.extraHeaders},g={method:d.method,headers:f};d.body&&(g.body=d.body);let h=await q(a,g,b);if(h.ok||d.acceptStatuses&&d.acceptStatuses.includes(h.status))return{valid:!0,error:null,refreshed:!0,newTokens:e}}return{valid:!1,error:"Token invalid or revoked",refreshed:!1}}if(401===j.status)return{valid:!1,error:"Token invalid or revoked",refreshed:f};if(403===j.status)return{valid:!1,error:"Access denied",refreshed:f};return{valid:!1,error:`API returned ${j.status}`,refreshed:f}}catch(a){return{valid:!1,error:a.message,refreshed:f}}}async function q(a,b={},d=null){if(d?.vercelRelayUrl){let{proxyAwareFetch:e}=await c.e(7973).then(c.bind(c,37973));return e(a,b,{vercelRelayUrl:d.vercelRelayUrl})}if(!d?.connectionProxyEnabled||!d?.connectionProxyUrl)return fetch(a,b);let{proxyAwareFetch:e}=await c.e(7973).then(c.bind(c,37973));return e(a,b,{connectionProxyEnabled:!0,connectionProxyUrl:d.connectionProxyUrl,connectionNoProxy:d.connectionNoProxy||""})}async function r(a,b=null){if((0,g.mq)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{let d=await q(`${c.replace(/\/$/,"")}/models`,{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}if((0,g.gb)(a.provider)){let c=a.providerSpecificData?.baseUrl;if(!c)return{valid:!1,error:"Missing base URL"};try{(c=c.replace(/\/$/,"")).endsWith("/messages")&&(c=c.slice(0,-9));let d=await q(`${c}/models`,{headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01",Authorization:`Bearer ${a.apiKey}`}},b);return{valid:d.ok,error:d.ok?null:"Invalid API key or base URL"}}catch(a){return{valid:!1,error:a.message}}}try{switch(a.provider){case"cloudflare-ai":{let c=(a.providerSpecificData||{}).accountId;if(!c)return{valid:!1,error:"Missing Account ID"};let d=`https://api.cloudflare.com/client/v4/accounts/${c}/ai/v1/chat/completions`,e=await q(d,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"Content-Type":"application/json"},body:JSON.stringify({model:(0,i.fZ)("cloudflare-ai"),messages:[{role:"user",content:"test"}],max_tokens:1})},b),f=401!==e.status&&403!==e.status&&404!==e.status;return{valid:f,error:f?null:"Invalid API token or Account ID"}}case"azure":{let c=a.providerSpecificData||{},d=(c.azureEndpoint||"").replace(/\/$/,""),e=c.deployment||"gpt-4",f=c.apiVersion||"2024-10-01-preview",g=`${d}/openai/deployments/${e}/chat/completions?api-version=${f}`,h={"api-key":a.apiKey,"Content-Type":"application/json"};c.organization&&(h["OpenAI-Organization"]=c.organization);let i=await q(g,{method:"POST",headers:h,body:JSON.stringify({messages:[{role:"user",content:"test"}],max_completion_tokens:1})},b),j=401!==i.status&&403!==i.status;return{valid:j,error:j?null:"Invalid API key or Azure configuration"}}case"openai":{let c=await q("https://api.openai.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"anthropic":{let c=await q("https://api.anthropic.com/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"claude-3-haiku-20240307",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"gemini":{let c=await q(`https://generativelanguage.googleapis.com/v1/models?key=${a.apiKey}`,{},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"openrouter":{let c=await q("https://openrouter.ai/api/v1/auth/key",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"glm":{let c=await q("https://api.z.ai/api/anthropic/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"glm-cn":{let c=await q("https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:"glm-4.7",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"minimax":case"minimax-cn":{let c=await q({minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages"}[a.provider],{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"minimax-m2",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"kimi":{let c=await q("https://api.kimi.com/coding/v1/messages",{method:"POST",headers:{"x-api-key":a.apiKey,"anthropic-version":"2023-06-01","content-type":"application/json"},body:JSON.stringify({model:"kimi-latest",max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"alicode":case"alicode-intl":{let c="alicode-intl"===a.provider?"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions":"https://coding.dashscope.aliyuncs.com/v1/chat/completions",d=await q(c,{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:(0,i.fZ)(a.provider),max_tokens:1,messages:[{role:"user",content:"test"}]})},b),e=401!==d.status&&403!==d.status;return{valid:e,error:e?null:"Invalid API key"}}case"volcengine-ark":case"byteplus":{let c=await q(h.X3[a.provider],{method:"POST",headers:{Authorization:`Bearer ${a.apiKey}`,"content-type":"application/json"},body:JSON.stringify({model:(0,i.fZ)(a.provider),max_tokens:1,messages:[{role:"user",content:"test"}]})},b),d=401!==c.status&&403!==c.status;return{valid:d,error:d?null:"Invalid API key"}}case"deepseek":{let c=await q("https://api.deepseek.com/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"groq":{let c=await q("https://api.groq.com/openai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"mistral":{let c=await q("https://api.mistral.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"xai":{let c=await q("https://api.x.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nvidia":{let c=await q("https://integrate.api.nvidia.com/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"perplexity":{let c=await q("https://api.perplexity.ai/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"together":{let c=await q("https://api.together.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"fireworks":{let c=await q("https://api.fireworks.ai/inference/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cerebras":{let c=await q("https://api.cerebras.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"cohere":{let c=await q("https://api.cohere.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nebius":{let c=await q("https://api.studio.nebius.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"siliconflow":{let c=await q("https://api.siliconflow.cn/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"hyperbolic":{let c=await q("https://api.hyperbolic.xyz/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"ollama":{let b=await fetch("https://ollama.com/api/tags",{headers:{Authorization:`Bearer ${a.apiKey}`}});return{valid:b.ok,error:b.ok?null:"Invalid API key"}}case"ollama-local":{let b=(0,j.Ak)(a),c=await fetch(`${b}/api/tags`);return{valid:c.ok,error:c.ok?null:`Ollama not reachable at ${b}`}}case"deepgram":{let c=await q("https://api.deepgram.com/v1/projects",{headers:{Authorization:`Token ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"assemblyai":{let c=await q("https://api.assemblyai.com/v1/account",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"nanobanana":{let c=await q("https://api.nanobananaapi.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"chutes":{let c=await q("https://llm.chutes.ai/v1/models",{headers:{Authorization:`Bearer ${a.apiKey}`}},b);return{valid:c.ok,error:c.ok?null:"Invalid API key"}}case"grok-web":{let c=a.apiKey.startsWith("sso=")?a.apiKey.slice(4):a.apiKey,d=a=>Array.from(crypto.getRandomValues(new Uint8Array(a)),a=>a.toString(16).padStart(2,"0")).join(""),e=Buffer.from("e:TypeError: Cannot read properties of null (reading 'children')").toString("base64"),f=await q("https://grok.com/rest/app-chat/conversations/new",{method:"POST",headers:{Accept:"*/*","Content-Type":"application/json",Cookie:`sso=${c}`,Origin:"https://grok.com",Referer:"https://grok.com/","User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36","x-statsig-id":e,"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${d(16)}-${d(8)}-00`},body:JSON.stringify({temporary:!0,modelName:"grok-4",message:"ping",fileAttachments:[],imageAttachments:[],disableSearch:!1,enableImageGeneration:!1,sendFinalMetadata:!0})},b),g=401!==f.status&&403!==f.status;return{valid:g,error:g?null:"Invalid SSO cookie"}}case"perplexity-web":{let c=a.apiKey;c.startsWith("__Secure-next-auth.session-token=")&&(c=c.slice(33));let d=await q("https://www.perplexity.ai/api/auth/session",{method:"GET",headers:{"User-Agent":"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/136.0.0.0 Safari/537.36",Cookie:`__Secure-next-auth.session-token=${c}`}},b);if(!d.ok)return{valid:!1,error:"Invalid session cookie"};let e=await d.json().catch(()=>null),f=!!(e&&e.user);return{valid:f,error:f?null:"Session expired — re-paste cookie"}}default:return{valid:!1,error:"Provider test not supported"}}}catch(a){return{valid:!1,error:a.message}}}async function s(a){let b,c=await (0,d.Mc)(a);if(!c)return{valid:!1,error:"Connection not found",latencyMs:0,testedAt:new Date().toISOString()};let g=await (0,e.B)(c.providerSpecificData||{});if(g.connectionProxyEnabled&&g.connectionProxyUrl&&!g.vercelRelayUrl){let b=await (0,f.C)({proxyUrl:g.connectionProxyUrl});if(!b.ok){let c=b.error||`Proxy test failed with status ${b.status}`;return await (0,d.updateProviderConnection)(a,{testStatus:"error",lastError:c,lastErrorAt:new Date().toISOString()}),{valid:!1,error:c,latencyMs:0,testedAt:new Date().toISOString()}}}let h=Date.now();b="apikey"===c.authType||"cookie"===c.authType?await r(c,g):await p(c,g);let i=Date.now()-h,j={testStatus:b.valid?"active":"error",lastError:b.valid?null:b.error,lastErrorAt:b.valid?null:new Date().toISOString()};return b.refreshed&&b.newTokens&&(j.accessToken=b.newTokens.accessToken,b.newTokens.refreshToken&&(j.refreshToken=b.newTokens.refreshToken),b.newTokens.expiresIn&&(j.expiresAt=new Date(Date.now()+1e3*b.newTokens.expiresIn).toISOString())),await (0,d.updateProviderConnection)(a,j),{valid:b.valid,error:b.error,latencyMs:i,testedAt:new Date().toISOString()}}},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},89442:(a,b,c)=>{c.d(b,{Fh:()=>d.getProviderNodes,L9:()=>d.L9,Mc:()=>d.Mc,OM:()=>d.OM,P:()=>d.getProviderConnections,Pc:()=>d.Pc,Q_:()=>d.Q_,Qu:()=>d.Qu,S8:()=>d.S8,Yd:()=>d.Yd,ZO:()=>d.ZO,c:()=>d.c,createProviderConnection:()=>d.iE,ek:()=>d.ek,fK:()=>d.fK,fv:()=>d.fv,ho:()=>d.ho,hr:()=>d.hr,i0:()=>d.i0,o5:()=>d.o5,op:()=>d.op,rj:()=>d.updateProviderConnection,uL:()=>d.uL,ui:()=>d.ui,uv:()=>d.uv});var d=c(37770)},89489:(a,b,c)=>{c.d(b,{UY:()=>h,X3:()=>i,eh:()=>f.eh,fg:()=>e.fg,h0:()=>g});var d=c(39006),e=c(50021),f=c(24709);d.rE;let g={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},h={maxLines:200,pollIntervalMs:1e3},i={openrouter:"https://openrouter.ai/api/v1/chat/completions",glm:"https://api.z.ai/api/anthropic/v1/messages","glm-cn":"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",kimi:"https://api.kimi.com/coding/v1/messages",minimax:"https://api.minimax.io/anthropic/v1/messages","minimax-cn":"https://api.minimaxi.com/anthropic/v1/messages",alicode:"https://coding.dashscope.aliyuncs.com/v1/chat/completions","alicode-intl":"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions","volcengine-ark":"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",byteplus:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",openai:"https://api.openai.com/v1/chat/completions",anthropic:"https://api.anthropic.com/v1/messages",gemini:"https://generativelanguage.googleapis.com/v1beta/models",ollama:"https://ollama.com/api/chat","ollama-local":"http://localhost:11434/api/chat"}},93250:(a,b,c)=>{c.d(b,{B:()=>f});var d=c(89442);function e(a){return null==a?"":String(a).trim()}async function f(a={}){let b=e(a?.proxyPoolId),c="__none__"===b?"":b,g=function(a={}){let b=a?.connectionProxyEnabled===!0;return{connectionProxyEnabled:b,connectionProxyUrl:e(a?.connectionProxyUrl),connectionNoProxy:e(a?.connectionNoProxy)}}(a);if(c){let a=await (0,d.hr)(c),b=e(a?.proxyUrl),f=e(a?.noProxy);if(a&&!0===a.isActive&&b)return"vercel"===a.type?{source:"vercel",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!1,connectionProxyUrl:"",connectionNoProxy:f,strictProxy:!0===a.strictProxy,vercelRelayUrl:b}:{source:"pool",proxyPoolId:c,proxyPool:a,connectionProxyEnabled:!0,connectionProxyUrl:b,connectionNoProxy:f,strictProxy:!0===a.strictProxy}}return g.connectionProxyEnabled&&g.connectionProxyUrl?{source:"legacy",proxyPoolId:c||null,proxyPool:null,...g}:{source:"none",proxyPoolId:c||null,proxyPool:null,...g}}},98774:(a,b,c)=>{c.d(b,{w$:()=>e});let d=c(39006).rE||"0.0.0";function e(a,b={}){let c,f=(c=function(a){if("string"!=typeof a)return"";let b=a.trim();return b?b.startsWith("workos:")?b:`workos:${b}`:""}(a))?`Bearer ${c}`:"",g={"HTTP-Referer":"https://cline.bot","X-Title":"Cline","User-Agent":`9Router/${d}`,"X-PLATFORM":process.platform||"unknown","X-PLATFORM-VERSION":process.version||"unknown","X-CLIENT-TYPE":"9router","X-CLIENT-VERSION":d,"X-CORE-VERSION":d,"X-IS-MULTIROOT":"false",...b};return f&&(g.Authorization=f),g}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/2566.js b/cli/app/.next/server/chunks/2566.js new file mode 100644 index 00000000000..40b63efa2cd --- /dev/null +++ b/cli/app/.next/server/chunks/2566.js @@ -0,0 +1 @@ +exports.id=2566,exports.ids=[2566],exports.modules={20243:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("`,g=!1;return new TransformStream({transform(a,b){if(g)return void b.enqueue(a);let c=(0,k.indexOfUint8Array)(a,j.ENCODED_TAGS.OPENING.HEAD);if(-1===c)return void b.enqueue(a);let d=a.indexOf(62,c+j.ENCODED_TAGS.OPENING.HEAD.length);if(-1===d)return void b.enqueue(a);let e=p.encode(f),h=d+1,i=new Uint8Array(a.length+e.length);i.set(a.slice(0,h)),i.set(e,h),i.set(a.slice(h),h+e.length),b.enqueue(i),g=!0},flush(a){a.enqueue(j.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function C(a,b){let c=!1,d=null,e=!1;function f(a){return d||(d=g(a)),d}async function g(d){let f=a.getReader();b&&await (0,i.atLeastOneTask)();try{for(;;){let{done:a,value:g}=await f.read();if(a){e=!0;return}b||c||await (0,i.atLeastOneTask)(),d.enqueue(g)}}catch(a){d.error(a)}}return new TransformStream({start(a){b||f(a)},transform(a,c){c.enqueue(a),b&&f(c)},flush(a){if(c=!0,!e)return f(a)}})}let D="";function E(){let a=!1;return new TransformStream({transform(b,c){if(a)return c.enqueue(b);let d=(0,k.indexOfUint8Array)(b,j.ENCODED_TAGS.CLOSED.BODY_AND_HTML);if(d>-1){if(a=!0,b.length===j.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length)return;let e=b.slice(0,d);if(c.enqueue(e),b.length>j.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length+d){let a=b.slice(d+j.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);c.enqueue(a)}}else c.enqueue(b)},flush(a){a.enqueue(j.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function F(a){let b=!1;return new TransformStream({transform(c,d){if(b)return void d.enqueue(c);let e=(0,k.indexOfUint8Array)(c,j.ENCODED_TAGS.OPENING.HTML);if(-1===e)return void d.enqueue(c);let f=e+j.ENCODED_TAGS.OPENING.HTML.length,g=` data-dpl-id="${a}"`,h=p.encode(g),i=new Uint8Array(c.length+h.length);i.set(c.subarray(0,f)),i.set(h,f),i.set(c.subarray(f),f+h.length),d.enqueue(i),b=!0}})}function G(){let a=!1,b=!1;return new TransformStream({async transform(c,d){!a&&(0,k.indexOfUint8Array)(c,j.ENCODED_TAGS.OPENING.HTML)>-1&&(a=!0),!b&&(0,k.indexOfUint8Array)(c,j.ENCODED_TAGS.OPENING.BODY)>-1&&(b=!0),d.enqueue(c)},flush(c){let d=[];a||d.push("html"),b||d.push("body"),d.length&&c.enqueue(p.encode(` + + `))}})}function H(a,b){let c=a;for(let a of b)a&&(c=c.pipeThrough(a));return c}async function I(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,deploymentId:e,getServerInsertedHTML:f,getServerInsertedMetadata:g,validateRootLayout:j}){let k,l,m=b?b.split(D,1)[0]:null;return d?await a.allReady:await (0,i.waitAtLeastOneReactRenderTask)(),H(a,[x(),e?F(e):null,z(g),null!=m&&m.length>0?(l=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!l){let a;l=!0,k=a=new h.DetachedPromise,(0,i.scheduleImmediate)(()=>{try{b.enqueue(p.encode(m))}catch{}finally{k=void 0,a.resolve()}})}},flush(a){if(k)return k.promise;l||a.enqueue(p.encode(m))}})):null,c?C(c,!0):null,j?G():null,E(),A(f)])}async function J(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c,deploymentId:d}){return H(a,[x(),new TransformStream({transform(a,b){(0,k.isEquivalentUint8Arrays)(a,j.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,k.isEquivalentUint8Arrays)(a,j.ENCODED_TAGS.CLOSED.BODY)||(0,k.isEquivalentUint8Arrays)(a,j.ENCODED_TAGS.CLOSED.HTML)||(a=(0,k.removeFromUint8Array)(a,j.ENCODED_TAGS.CLOSED.BODY),a=(0,k.removeFromUint8Array)(a,j.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}}),d?F(d):null,A(b),z(c)])}async function K(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,deploymentId:e}){return H(a,[x(),e?F(e):null,A(c),z(d),C(b,!0),E()])}async function L(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,deploymentId:e}){let f,g,h,i;return H(a,[x(),e?F(e):null,A(c),(f=(0,n.computeCacheBustingSearchParam)("1","/_full",void 0,void 0),g=`${m.NEXT_RSC_UNION_QUERY}=${f}`,h=``,i=!1,new TransformStream({transform(a,b){if(i)return void b.enqueue(a);let c=(0,k.indexOfUint8Array)(a,j.ENCODED_TAGS.CLOSED.HEAD);if(-1===c)return void b.enqueue(a);let d=p.encode(h),e=new Uint8Array(a.length+d.length);e.set(a.slice(0,c)),e.set(d,c),e.set(a.slice(c),c+d.length),b.enqueue(e),i=!0}})),z(d),C(b,!0),E()])}async function M(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e,deploymentId:f}){return H(a,[x(),f?F(f):null,A(d),z(e),C(c,b),E()])}function N(){return r(D)}function O(a,b,c){let d=new TextEncoder,e=d.encode(`[${a}]`),f=e[0],g=d.encode(`[${b},${c}]`),h=e.length,i=null,j=!1;function k(a,b){if(j){b&&a.enqueue(b);return}if(i){let c=i.length-(h-1);if(b&&(c+=Math.min(b.length,h-1)),c<1){a.enqueue(i),i=b;return}let d=i.indexOf(f);a:for(;-10?b.subarray(c):b;a.enqueue(e)}i=null;return}a.enqueue(i)}i=b}return new TransformStream({transform(a,b){k(b,a)},flush(a){k(a,null)}})}},10087:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NEXT_PATCH_SYMBOL:function(){return o},createPatchedFetcher:function(){return u},patchFetch:function(){return v},validateRevalidate:function(){return p},validateTags:function(){return q}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(34935),g=c(27321),h=c(80463),i=c(12987),j=c(3060),k=c(23124),l=c(63033),m=c(99509),n=c(59233);c(53320);let o=Symbol.for("next-patch");function p(a,b){try{let c;if(!1===a)c=h.INFINITE_CACHE;else if("number"==typeof a&&!isNaN(a)&&a>-1)c=a;else if(void 0!==a)throw Object.defineProperty(Error(`Invalid revalidate value "${a}" on "${b}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return c}catch(a){if(a instanceof Error&&a.message.includes("Invalid revalidate"))throw a;return}}function q(a,b){let c=[],d=[];for(let e=0;eh.NEXT_CACHE_TAG_MAX_LENGTH?d.push({tag:f,reason:`exceeded max length of ${h.NEXT_CACHE_TAG_MAX_LENGTH}`}):c.push(f),c.length>h.NEXT_CACHE_TAG_MAX_ITEMS){console.warn(`Warning: exceeded max tag count for ${b}, dropped tags:`,a.slice(e).join(", "));break}}if(d.length>0)for(let{tag:a,reason:c}of(console.warn(`Warning: invalid tags passed to ${b}: `),d))console.log(`tag: "${a}" ${c}`);return c}function r(a,b){a.shouldTrackFetchMetrics&&(a.fetchMetrics??=[],a.fetchMetrics.push({...b,end:performance.timeOrigin+performance.now(),idx:a.nextFetchId||0}))}async function s(a,b,c,d,e,f){let g=await a.arrayBuffer(),h={headers:Object.fromEntries(a.headers.entries()),body:Buffer.from(g).toString("base64"),status:a.status,url:a.url};return c&&await d.set(b,{kind:m.CachedRouteKind.FETCH,data:h,revalidate:e},c),await f(),new Response(g,{headers:a.headers,status:a.status,statusText:a.statusText})}async function t(a,b,c,d,e,f,g,h,i,j){let[k,l]=(0,n.cloneResponse)(b),o=k.arrayBuffer().then(async a=>{let b=Buffer.from(a),h={headers:Object.fromEntries(k.headers.entries()),body:b.toString("base64"),status:k.status,url:k.url};null==f||f.set(c,h),d&&await e.set(c,{kind:m.CachedRouteKind.FETCH,data:h,revalidate:g},d)}).catch(a=>{(null==j?void 0:j.aborted)||console.warn("Failed to set fetch cache",h,a)}).finally(i),p=`cache-set-${c}`,q=a.pendingRevalidates??={},r=Promise.resolve();return p in q&&(r=q[p]),q[p]=r.then(()=>o).finally(()=>{(null==q?void 0:q[p])&&delete q[p]}),l}function u(a,{workAsyncStorage:b,workUnitAsyncStorage:c}){let d=async function(d,e){var k,o;let u;try{(u=new URL(d instanceof Request?d.url:d)).username="",u.password=""}catch{u=void 0}let v=(null==u?void 0:u.href)??"",x=(null==e||null==(k=e.method)?void 0:k.toUpperCase())||"GET",y=(null==e||null==(o=e.next)?void 0:o.internal)===!0,z="1"===process.env.NEXT_OTEL_FETCH_DISABLED,A=y?void 0:performance.timeOrigin+performance.now(),B=b.getStore(),C=c.getStore(),D=C?(0,l.getCacheSignal)(C):null;D&&D.beginRead();let E=(0,g.getTracer)().trace(y?f.NextNodeServerSpan.internalFetch:f.AppRenderSpan.fetch,{hideSpan:z,kind:g.SpanKind.CLIENT,spanName:["fetch",x,v].filter(Boolean).join(" "),attributes:{"http.url":v,"http.method":x,"net.peer.name":null==u?void 0:u.hostname,"net.peer.port":(null==u?void 0:u.port)||void 0}},async()=>{var b;let c,f,g,k,l,o;if(y||!B||B.isDraftMode)return a(d,e);let u=d&&"object"==typeof d&&"string"==typeof d.method,x=a=>(null==e?void 0:e[a])||(u?d[a]:null),z=a=>{var b,c,f;return void 0!==(null==e||null==(b=e.next)?void 0:b[a])?null==e||null==(c=e.next)?void 0:c[a]:u?null==(f=d.next)?void 0:f[a]:void 0},E=z("revalidate"),F=E,G=q(z("tags")||[],`fetch ${d.toString()}`);if(C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":c=C}if(c&&Array.isArray(G)){let a=c.tags??(c.tags=[]);for(let b of G)a.includes(b)||a.push(b)}let H=null==C?void 0:C.implicitTags,I=B.fetchCache;C&&"unstable-cache"===C.type&&(I="force-no-store");let J=!!B.isUnstableNoStore,K=x("cache"),L="";"string"==typeof K&&void 0!==F&&("force-cache"===K&&0===F||"no-store"===K&&(F>0||!1===F))&&(f=`Specified "cache: ${K}" and "revalidate: ${F}", only one should be specified.`,K=void 0,F=void 0);let M="no-cache"===K||"no-store"===K||"force-no-store"===I||"only-no-store"===I,N=!I&&!K&&!F&&B.forceDynamic;"force-cache"===K&&void 0===F?F=!1:(M||N)&&(F=0),("no-cache"===K||"no-store"===K)&&(L=`cache: ${K}`),o=p(F,B.route);let O=x("headers"),P="function"==typeof(null==O?void 0:O.get)?O:new Headers(O||{}),Q=P.get("authorization")||P.get("cookie"),R=!["get","head"].includes((null==(b=x("method"))?void 0:b.toLowerCase())||"get"),S=void 0==I&&(void 0==K||"default"===K)&&void 0==F,T=!!((Q||R)&&(null==c?void 0:c.revalidate)===0),U=!1;if(!T&&S&&(B.isBuildTimePrerendering?U=!0:T=!0),S&&void 0!==C)switch(C.type){case"prerender":case"prerender-runtime":case"prerender-client":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}switch(I){case"force-no-store":L="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===K||void 0!==o&&o>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${v} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});L="fetchCache = only-no-store";break;case"only-cache":if("no-store"===K)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${v} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===F||0===F)&&(L="fetchCache = force-cache",o=h.INFINITE_CACHE)}if(void 0===o?"default-cache"!==I||J?"default-no-store"===I?(o=0,L="fetchCache = default-no-store"):J?(o=0,L="noStore call"):T?(o=0,L="auto no cache"):(L="auto cache",o=c?c.revalidate:h.INFINITE_CACHE):(o=h.INFINITE_CACHE,L="fetchCache = default-cache"):L||(L=`revalidate: ${o}`),!(B.forceStatic&&0===o)&&!T&&c&&o0,{incrementalCache:W}=B,X=!1;if(C)switch(C.type){case"request":case"cache":case"private-cache":X=C.isHmrRefresh??!1,k=C.serverComponentsHmrCache}if(W&&(V||k))try{g=await W.generateCacheKey(v,u?d:e)}catch(a){console.error("Failed to generate cache key for",d)}let Y=B.nextFetchId??1;B.nextFetchId=Y+1;let Z=()=>{},$=async(b,c)=>{let i=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...b?[]:["signal"]];if(u){let a=d,b={body:a._ogBody||a.body};for(let c of i)b[c]=a[c];d=new Request(a.url,b)}else if(e){let{_ogBody:a,body:c,signal:d,...f}=e;e={...f,body:a||c,signal:b?void 0:d}}let j={...e,next:{...null==e?void 0:e.next,fetchType:"origin",fetchIdx:Y}};return a(d,j).then(async a=>{if(!b&&A&&r(B,{start:A,url:v,cacheReason:c||L,cacheStatus:0===o||c?"skip":"miss",cacheWarning:f,status:a.status,method:j.method||"GET"}),200===a.status&&W&&g&&(V||k)){let b=o>=h.INFINITE_CACHE?h.CACHE_ONE_YEAR_SECONDS:o,c=V?{fetchCache:!0,fetchUrl:v,fetchIdx:Y,tags:G,isImplicitBuildTimeCache:U}:void 0;switch(null==C?void 0:C.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return s(a,g,c,W,b,Z);case"request":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":case void 0:return t(B,a,g,c,W,k,b,d,Z,x("signal"))}}return await Z(),a}).catch(a=>{throw Z(),a})},_=!1,aa=!1;if(g&&W){let a;if(X&&k&&(a=k.get(g),aa=!0),V&&!a){Z=await W.lock(g);let b=B.isOnDemandRevalidate?null:await W.get(g,{kind:m.IncrementalCacheKind.FETCH,revalidate:o,fetchUrl:v,fetchIdx:Y,tags:G,softTags:null==H?void 0:H.tags});if(S&&C)switch(C.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":await (w||(w=new Promise(a=>{setTimeout(()=>{w=null,a()},0)})),w)}if(b?await Z():l="cache-control: no-cache (hard refresh)",(null==b?void 0:b.value)&&b.value.kind===m.CachedRouteKind.FETCH)if(B.isStaticGeneration&&b.isStale)_=!0;else{if(b.isStale&&(B.pendingRevalidates??={},!B.pendingRevalidates[g])){let a=$(!0).then(async a=>({body:await a.arrayBuffer(),headers:a.headers,status:a.status,statusText:a.statusText})).finally(()=>{B.pendingRevalidates??={},delete B.pendingRevalidates[g||""]});a.catch(console.error),B.pendingRevalidates[g]=a}a=b.value.data}}if(a){A&&r(B,{start:A,url:v,cacheReason:L,cacheStatus:aa?"hmr":"hit",cacheWarning:f,status:a.status||200,method:(null==e?void 0:e.method)||"GET"});let b=new Response(Buffer.from(a.body,"base64"),{headers:a.headers,status:a.status});return Object.defineProperty(b,"url",{value:a.url}),b}}if(B.isStaticGeneration&&e&&"object"==typeof e){let{cache:a}=e;if("no-store"===a){if(C)switch(C.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return D&&(D.endRead(),D=null),(0,j.makeHangingPromise)(C.renderSignal,B.route,"fetch()")}(0,i.markCurrentScopeAsDynamic)(B,C,`no-store fetch ${d} ${B.route}`)}let b="next"in e,{next:f={}}=e;if("number"==typeof f.revalidate&&c&&f.revalidate{let b=a[0];return{body:await b.arrayBuffer(),headers:b.headers,status:b.status,statusText:b.statusText}}).finally(()=>{var b;(null==(b=B.pendingRevalidates)?void 0:b[a])&&delete B.pendingRevalidates[a]})).catch(()=>{}),B.pendingRevalidates[a]=b,c.then(a=>a[1])}});if(D)try{return await E}finally{D&&D.endRead()}return E};return d.__nextPatched=!0,d.__nextGetStaticStore=()=>b,d._nextOriginalFetch=a,globalThis[o]=!0,Object.defineProperty(d,"name",{value:"fetch",writable:!1}),d}function v(a){if(!0===globalThis[o])return;let b=(0,k.createDedupeFetch)(globalThis.fetch);globalThis.fetch=u(b,a)}let w=null},12644:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e={CachedRouteKind:function(){return g},IncrementalCacheKind:function(){return h}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});var g=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.REDIRECT="REDIRECT",c.IMAGE="IMAGE",c),h=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.IMAGE="IMAGE",d)},12987:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e,f,g={DynamicHoleKind:function(){return $},Postpone:function(){return D},PreludeState:function(){return af},abortAndThrowOnSynchronousRequestDataAccess:function(){return C},abortOnSynchronousPlatformIOAccess:function(){return B},accessedDynamicData:function(){return L},annotateDynamicAccess:function(){return Q},consumeDynamicAccess:function(){return M},createDynamicTrackingState:function(){return u},createDynamicValidationState:function(){return v},createHangingInputAbortSignal:function(){return P},createInstantValidationState:function(){return _},createRenderInBrowserAbortSignal:function(){return O},formatDynamicAPIAccesses:function(){return N},getFirstDynamicReason:function(){return w},getNavigationDisallowedDynamicReasons:function(){return aj},getStaticShellDisallowedDynamicReasons:function(){return ai},isDynamicPostpone:function(){return G},isPrerenderInterruptedError:function(){return K},logDisallowedDynamicError:function(){return ag},markCurrentScopeAsDynamic:function(){return x},postponeWithTracking:function(){return E},throwIfDisallowedDynamic:function(){return ah},throwToInterruptStaticGeneration:function(){return y},trackAllowedDynamicAccess:function(){return Z},trackDynamicDataInDynamicRender:function(){return z},trackDynamicHoleInNavigation:function(){return aa},trackDynamicHoleInRuntimeShell:function(){return ac},trackDynamicHoleInStaticShell:function(){return ad},trackThrownErrorInNavigation:function(){return ab},useDynamicRouteParams:function(){return R},useDynamicSearchParams:function(){return S}};for(var h in g)Object.defineProperty(b,h,{enumerable:!0,get:g[h]});let i=(d=c(64176))&&d.__esModule?d:{default:d},j=c(4351),k=c(37799),l=c(63033),m=c(29294),n=c(3060),o=c(50855),p=c(19995),q=c(93334),r=c(45521),s=c(21717),t="function"==typeof i.default.unstable_postpone;function u(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function v(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function w(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function x(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new k.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return E(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new j.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function y(a,b,c){let d=Object.defineProperty(new j.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function z(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function A(a,b,c){let d=J(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function B(a,b,c,d){let e=d.dynamicTracking;A(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function C(a,b,c,d){if(!1===d.controller.signal.aborted){A(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw J(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function D({reason:a,route:b}){let c=l.workUnitAsyncStorage.getStore();E(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function E(a,b,c){(function(){if(!t)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),i.default.unstable_postpone(F(a,b))}function F(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function G(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&H(a.message)}function H(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===H(F("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let I="NEXT_PRERENDER_INTERRUPTED";function J(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=I,b}function K(a){return"object"==typeof a&&null!==a&&a.digest===I&&"name"in a&&"message"in a&&a instanceof Error}function L(a){return a.length>0}function M(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function N(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" ()")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}: +${b}`))}function O(){let a=new AbortController;return a.abort(Object.defineProperty(new q.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function P(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else if("prerender-runtime"===a.type&&a.stagedRendering){let{stagedRendering:c}=a;c.waitForStage((0,n.getRuntimeStage)(c)).then(()=>(0,p.scheduleOnNextTick)(()=>b.abort()))}else(0,p.scheduleOnNextTick)(()=>b.abort());return b.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function Q(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function R(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let d=c.fallbackRouteParams;d&&d.size>0&&i.default.use((0,n.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return E(b.route,a,c.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function S(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,l.throwForMissingRequestStore)(a),c.type){case"validation-client":case"request":return;case"prerender-client":i.default.use((0,n.makeHangingPromise)(c.renderSignal,b.route,a));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new q.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let T=/\n\s+at Suspense \(\)/,U=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${o.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),V=RegExp(`\\n\\s+at ${o.METADATA_BOUNDARY_NAME}[\\n\\s]`),W=RegExp(`\\n\\s+at ${o.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),X=RegExp(`\\n\\s+at ${o.OUTLET_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${s.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`);function Z(a,b,c,d){if(!X.test(b)){if(V.test(b)){c.hasDynamicMetadata=!0;return}if(W.test(b)){c.hasDynamicViewport=!0;return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(T.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1079",enumerable:!1,configurable:!0}),b,null);return void c.dynamicErrors.push(e)}}}var $=((e={})[e.Runtime=1]="Runtime",e[e.Dynamic=2]="Dynamic",e);function _(a){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],createInstantStack:a}}function aa(a,b,c,d,e,f){if(X.test(b))return;if(V.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateMetadata` or you have file-based metadata such as icons that depend on dynamic params segments.":"Uncached data or `connection()` was accessed inside `generateMetadata`."} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1076",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicMetadata=d;return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateViewport`.":"Uncached data or `connection()` was accessed inside `generateViewport`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1086",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicErrors.push(d);return}let g=Y.exec(b);if(g){let a=T.exec(b);if(a&&a.index`.":"Uncached data or `connection()` was accessed outside of ``."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1078",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicErrors.push(h)}function ab(a,b,c,d){let e=Y.exec(d);if(e){let f=T.exec(d);if(f&&f.index\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1084",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(e)}function ad(a,b,c,d){if(!X.test(b)){if(V.test(b)){c.dynamicMetadata=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1085",enumerable:!1,configurable:!0}),b,null);return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1081",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(d);return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(T.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1083",enumerable:!1,configurable:!0}),b,null);return void c.dynamicErrors.push(e)}}}function ae(a,b,c){return null!==c&&(a.cause=c()),a.stack=a.name+": "+a.message+b,a}var af=((f={})[f.Full=0]="Full",f[f.Empty=1]="Empty",f[f.Errored=2]="Errored",f);function ag(a,b){console.error(b),console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}function ah(a,b,c,d){if(d.syncDynamicErrorWithStack)throw ag(a,d.syncDynamicErrorWithStack),new k.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b0)return d;if(1===b)return[Object.defineProperty(new r.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function aj(a,b,c,d,e){if(d){let{missingSampleErrors:a}=d;if(a.length>0)return a}let{validationPreventingErrors:f}=c;if(f.length>0)return f;if(e.renderedIds.size0)return d;if(1===b)return c.hasAllowedClientDynamicAboveBoundary?[]:[Object.defineProperty(new r.InvariantError(`Route "${a.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})]}else{let a=c.dynamicErrors;if(a.length>0)return a;if(!1===c.hasAllowedDynamic&&c.dynamicMetadata)return[c.dynamicMetadata]}return[]}},13129:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathSuffix",{enumerable:!0,get:function(){return e}});let d=c(80247);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return`${c}${b}${e}${f}`}},14978:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return e}});let d=c(46484);function e(a,b,c,e){return(void 0===a||"0"===a)&&void 0===b&&void 0===c&&void 0===e?"":(0,d.hexHash)([a||"0",b||"0",c||"0",e||"0"].join(","))}},16103:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ApiError:function(){return t},COOKIE_NAME_PRERENDER_BYPASS:function(){return n},COOKIE_NAME_PRERENDER_DATA:function(){return o},RESPONSE_LIMIT_DEFAULT:function(){return p},SYMBOL_CLEARED_COOKIES:function(){return r},SYMBOL_PREVIEW_DATA:function(){return q},checkIsOnDemandRevalidate:function(){return m},clearPreviewData:function(){return s},redirect:function(){return l},sendError:function(){return u},sendStatusCode:function(){return k},setLazyProp:function(){return v},wrapApiHandler:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(33784),g=c(80463),h=c(27321),i=c(34935);function j(a,b){return(...c)=>((0,h.getTracer)().setRootSpanAttribute("next.route",a),(0,h.getTracer)().trace(i.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function k(a,b){return a.statusCode=b,a}function l(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function m(a,b){let c=f.HeadersAdapter.from(a.headers);return{isOnDemandRevalidate:c.get(g.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let n="__prerender_bypass",o="__next_preview_data",p=4194304,q=Symbol(o),r=Symbol(n);function s(a,b={}){if(r in a)return a;let{serialize:d}=c(73631),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(n,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,r,{value:!0,enumerable:!1}),a}class t extends Error{constructor(a,b){super(b),this.statusCode=a}}function u(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function v({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},17894:(a,b)=>{"use strict";function c(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createPromiseWithResolvers",{enumerable:!0,get:function(){return c}})},19995:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={atLeastOneTask:function(){return g},scheduleImmediate:function(){return f},scheduleOnNextTick:function(){return e},waitAtLeastOneReactRenderTask:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},f=a=>{setImmediate(a)};function g(){return new Promise(a=>f(a))}function h(){return new Promise(a=>setImmediate(a))}},20187:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DEFAULT_SEGMENT_KEY:function(){return k},NOT_FOUND_SEGMENT_KEY:function(){return l},PAGE_SEGMENT_KEY:function(){return j},addSearchParamsIfPageSegment:function(){return h},computeSelectedLayoutSegment:function(){return i},getSegmentValue:function(){return e},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,f=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return f;let h=e(g[0]);return!h||h.startsWith(j)?f:(f.push(h),a(g,c,!1,f))}},isGroupSegment:function(){return f},isParallelRouteSegment:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){return Array.isArray(a)?a[1]:a}function f(a){return"("===a[0]&&a.endsWith(")")}function g(a){return a.startsWith("@")&&"@children"!==a}function h(a,b){if(a.includes(j)){let a=JSON.stringify(b);return"{}"!==a?j+"?"+a:j}return a}function i(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===k?null:c}let j="__PAGE__",k="__DEFAULT__",l="/_not-found"},21717:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"INSTANT_VALIDATION_BOUNDARY_NAME",{enumerable:!0,get:function(){return c}});let c="__next_instant_validation_boundary__"},23124:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDedupeFetch",{enumerable:!0,get:function(){return i}});let d=function(a){if(a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var b=g(void 0);if(b&&b.has(a))return b.get(a);var c={__proto__:null},d=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var e in a)if("default"!==e&&Object.prototype.hasOwnProperty.call(a,e)){var f=d?Object.getOwnPropertyDescriptor(a,e):null;f&&(f.get||f.set)?Object.defineProperty(c,e,f):c[e]=a[e]}return c.default=a,b&&b.set(a,c),c}(c(64176)),e=c(59233),f=c(45521);function g(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(g=function(a){return a?c:b})(a)}let h=new Set(["traceparent","tracestate"]);function i(a){let b=d.cache(a=>[]);return function(c,d){let g,i;if(d&&d.signal)return a(c,d);if("string"!=typeof c||d){let b,e="string"==typeof c||c instanceof URL?new Request(c,d):c;if("GET"!==e.method&&"HEAD"!==e.method||e.keepalive)return a(c,d);b=Array.from(e.headers.entries()).filter(([a])=>!h.has(a.toLowerCase())),i=JSON.stringify([e.method,b,e.mode,e.redirect,e.credentials,e.referrer,e.referrerPolicy,e.integrity]),g=e.url}else i='["GET",[],null,"follow",null,null,null,null]',g=c;let j=b(g);for(let a=0,b=j.length;a{let b=j[a][2];if(!b)throw Object.defineProperty(new f.InvariantError("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[c,d]=(0,e.cloneResponse)(b);return j[a][2]=d,c})}let k=a(c,d),l=[i,k,null];return j.push(l),k.then(a=>{let[b,c]=(0,e.cloneResponse)(a);return l[2]=c,b})}}},23146:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},23696:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={fromResponseCacheEntry:function(){return k},routeKindToIncrementalCacheKind:function(){return m},toResponseCacheEntry:function(){return l}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(12644),h=(d=c(85426))&&d.__esModule?d:{default:d},i=c(30600),j=c(80463);async function k(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function l(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,isFallback:a.isFallback,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function m(a){switch(a){case i.RouteKind.PAGES:return g.IncrementalCacheKind.PAGES;case i.RouteKind.APP_PAGE:return g.IncrementalCacheKind.APP_PAGE;case i.RouteKind.IMAGE:return g.IncrementalCacheKind.IMAGE;case i.RouteKind.APP_ROUTE:return g.IncrementalCacheKind.APP_ROUTE;case i.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},26211:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReflectAdapter",{enumerable:!0,get:function(){return c}});class c{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},27321:(a,b,c)=>{"use strict";let d,e;Object.defineProperty(b,"__esModule",{value:!0});var f={BubbledError:function(){return q},SpanKind:function(){return o},SpanStatusCode:function(){return n},getTracer:function(){return y},isBubbledError:function(){return r}};for(var g in f)Object.defineProperty(b,g,{enumerable:!0,get:f[g]});let h=c(34935),i=c(23146),j=process.env.NEXT_OTEL_PERFORMANCE_PREFIX;try{d=c(96073)}catch(a){d=c(96073)}let{context:k,propagation:l,trace:m,SpanStatusCode:n,SpanKind:o,ROOT_CONTEXT:p}=d;class q extends Error{constructor(a,b){super(),this.bubble=a,this.result=b}}function r(a){return"object"==typeof a&&null!==a&&a instanceof q}let s=(a,b)=>{r(b)&&b.bubble?a.setAttribute("next.bubble",!0):(b&&(a.recordException(b),a.setAttribute("error.type",b.name)),a.setStatus({code:n.ERROR,message:null==b?void 0:b.message})),a.end()},t=new Map,u=d.createContextKey("next.rootSpanId"),v=0,w={set(a,b,c){a.push({key:b,value:c})}};class x{getTracerInstance(){return m.getTracer("next.js","0.0.1")}getContext(){return k}getTracePropagationData(){let a=k.active(),b=[];return l.inject(a,b,w),b}getActiveScopeSpan(){return m.getSpan(null==k?void 0:k.active())}withPropagatedContext(a,b,c,d=!1){let e=k.active();if(d){let d=l.extract(p,a,c);if(m.getSpanContext(d))return k.with(d,b);let f=l.extract(e,a,c);return k.with(f,b)}if(m.getSpanContext(e))return b();let f=l.extract(e,a,c);return k.with(f,b)}trace(...a){let[b,c,d]=a,{fn:e,options:f}="function"==typeof c?{fn:c,options:{}}:{fn:d,options:{...c}},g=f.spanName??b;if(!h.NextVanillaSpanAllowlist.has(b)&&"1"!==process.env.NEXT_OTEL_VERBOSE||f.hideSpan)return e();let l=this.getSpanContext((null==f?void 0:f.parentSpan)??this.getActiveScopeSpan());l||(l=(null==k?void 0:k.active())??p);let m=l.getValue(u),n="number"!=typeof m||!t.has(m),o=v++;return f.attributes={"next.span_name":g,"next.span_type":b,...f.attributes},k.with(l.setValue(u,o),()=>this.getTracerInstance().startActiveSpan(g,f,a=>{let c;j&&b&&h.LogSpanAllowList.has(b)&&(c="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0);let d=!1,g=()=>{!d&&(d=!0,t.delete(o),c&&performance.measure(`${j}:next-${(b.split(".").pop()||"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())}`,{start:c,end:performance.now()}))};if(n&&t.set(o,new Map(Object.entries(f.attributes??{}))),e.length>1)try{return e(a,b=>s(a,b))}catch(b){throw s(a,b),b}finally{g()}try{let b=e(a);if((0,i.isThenable)(b))return b.then(b=>(a.end(),b)).catch(b=>{throw s(a,b),b}).finally(g);return a.end(),g(),b}catch(b){throw s(a,b),g(),b}}))}wrap(...a){let b=this,[c,d,e]=3===a.length?a:[a[0],{},a[1]];return h.NextVanillaSpanAllowlist.has(c)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let a=d;"function"==typeof a&&"function"==typeof e&&(a=a.apply(this,arguments));let f=arguments.length-1,g=arguments[f];if("function"!=typeof g)return b.trace(c,a,()=>e.apply(this,arguments));{let d=b.getContext().bind(k.active(),g);return b.trace(c,a,(a,b)=>(arguments[f]=function(a){return null==b||b(a),d.apply(this,arguments)},e.apply(this,arguments)))}}:e}startSpan(...a){let[b,c]=a,d=this.getSpanContext((null==c?void 0:c.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(b,c,d)}getSpanContext(a){return a?m.setSpan(k.active(),a):void 0}getRootSpanAttributes(){let a=k.active().getValue(u);return t.get(a)}setRootSpanAttribute(a,b){let c=k.active().getValue(u),d=t.get(c);d&&!d.has(a)&&d.set(a,b)}withSpan(a,b){let c=m.setSpan(k.active(),a);return k.with(c,b)}}let y=(e=new x,()=>e)},29874:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getNextPathnameInfo",{enumerable:!0,get:function(){return g}});let d=c(5831),e=c(77549),f=c(71741);function g(a,b){let{basePath:c,i18n:g,trailingSlash:h}=b.nextConfig??{},i={pathname:a,trailingSlash:"/"!==a?a.endsWith("/"):h};c&&(0,f.pathHasPrefix)(i.pathname,c)&&(i.pathname=(0,e.removePathPrefix)(i.pathname,c),i.basePath=c);let j=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let a=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=a[0],j="index"!==a[1]?`/${a.slice(1).join("/")}`:"/",!0===b.parseData&&(i.pathname=j)}if(g){let a=b.i18nProvider?b.i18nProvider.analyze(i.pathname):(0,d.normalizeLocalePath)(i.pathname,g.locales);i.locale=a.detectedLocale,i.pathname=a.pathname??i.pathname,!a.detectedLocale&&i.buildId&&(a=b.i18nProvider?b.i18nProvider.analyze(j):(0,d.normalizeLocalePath)(j,g.locales)).detectedLocale&&(i.locale=a.detectedLocale)}return i}},30600:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return d}});var c,d=((c={}).PAGES="PAGES",c.PAGES_API="PAGES_API",c.APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.IMAGE="IMAGE",c)},31303:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},31975:(a,b,c)=>{"use strict";a.exports=c(10846)},33784:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(26211);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},34935:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o={AppRenderSpan:function(){return w},AppRouteRouteHandlersSpan:function(){return z},BaseServerSpan:function(){return q},LoadComponentsSpan:function(){return r},LogSpanAllowList:function(){return D},MiddlewareSpan:function(){return B},NextNodeServerSpan:function(){return t},NextServerSpan:function(){return s},NextVanillaSpanAllowlist:function(){return C},NodeSpan:function(){return y},RenderSpan:function(){return v},ResolveMetadataSpan:function(){return A},RouterSpan:function(){return x},StartServerSpan:function(){return u}};for(var p in o)Object.defineProperty(b,p,{enumerable:!0,get:o[p]});var q=((c=q||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),r=((d=r||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d),s=((e=s||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),t=((f=t||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),u=((g=u||{}).startServer="startServer.startServer",g),v=((h=v||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),w=((i=w||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i),x=((j=x||{}).executeRoute="Router.executeRoute",j),y=((k=y||{}).runHandler="Node.runHandler",k),z=((l=z||{}).runHandler="AppRouteRouteHandlers.runHandler",l),A=((m=A||{}).generateMetadata="ResolveMetadata.generateMetadata",m.generateViewport="ResolveMetadata.generateViewport",m),B=((n=B||{}).execute="Middleware.execute",n);let C=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),D=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},35946:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E1045",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},37353:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_HEADER:function(){return f},FLIGHT_HEADERS:function(){return p},NEXT_ACTION_NOT_FOUND_HEADER:function(){return w},NEXT_ACTION_REVALIDATED_HEADER:function(){return z},NEXT_DID_POSTPONE_HEADER:function(){return s},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return k},NEXT_HMR_REFRESH_HEADER:function(){return j},NEXT_HTML_REQUEST_ID_HEADER:function(){return y},NEXT_INSTANT_PREFETCH_HEADER:function(){return n},NEXT_INSTANT_TEST_COOKIE:function(){return o},NEXT_IS_PRERENDER_HEADER:function(){return v},NEXT_REQUEST_ID_HEADER:function(){return x},NEXT_REWRITTEN_PATH_HEADER:function(){return t},NEXT_REWRITTEN_QUERY_HEADER:function(){return u},NEXT_ROUTER_PREFETCH_HEADER:function(){return h},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return i},NEXT_ROUTER_STALE_TIME_HEADER:function(){return r},NEXT_ROUTER_STATE_TREE_HEADER:function(){return g},NEXT_RSC_UNION_QUERY:function(){return q},NEXT_URL:function(){return l},RSC_CONTENT_TYPE_HEADER:function(){return m},RSC_HEADER:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="rsc",f="next-action",g="next-router-state-tree",h="next-router-prefetch",i="next-router-segment-prefetch",j="next-hmr-refresh",k="__next_hmr_refresh_hash__",l="next-url",m="text/x-component",n="next-instant-navigation-testing-prefetch",o="next-instant-navigation-testing",p=[e,g,h,j,i],q="_rsc",r="x-nextjs-stale-time",s="x-nextjs-postponed",t="x-nextjs-rewritten-path",u="x-nextjs-rewritten-query",v="x-nextjs-prerender",w="x-nextjs-action-not-found",x="x-nextjs-request-id",y="x-nextjs-html-request-id",z="x-action-revalidated";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},37675:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PageSignatureError:function(){return e},RemovedPageError:function(){return f},RemovedUAError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form: + + export function middleware(request, event) { + return NextResponse.redirect('/new-location') + } + + Read more: https://nextjs.org/docs/messages/middleware-new-signature + `)}}class f extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n ")}}class g extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n ")}}},37799:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={StaticGenBailoutError:function(){return f},isStaticGenBailoutError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="NEXT_STATIC_GEN_BAILOUT";class f extends Error{constructor(...a){super(...a),this.code=e}}function g(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},42417:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getClientReferenceManifest:function(){return q},getServerActionsManifest:function(){return r},getServerModuleMap:function(){return s},selectWorkerForForwarding:function(){return n},setManifestsSingleton:function(){return o}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(45521),g=c(1586),h=c(71741),i=c(77549),j=c(29294),k=Symbol.for("next.server.manifests"),l=globalThis;function m(a){return(0,h.pathHasPrefix)(a,"app")?a:"app"+a}function n(a,b){var c,d;let e=null==(c=r().node[a])?void 0:c.workers;if(e&&!e[m(b)])return d=Object.keys(e)[0],(0,g.normalizeAppPath)((0,i.removePathPrefix)(d,"app"))}function o({page:a,clientReferenceManifest:b,serverActionsManifest:c}){let d=l[k],e={encryptionKey:c.encryptionKey,node:Object.assign(Object.create(null),c.node),edge:Object.assign(Object.create(null),c.edge)};if(d)d.clientReferenceManifestsPerRoute.set((0,g.normalizeAppPath)(a),b),d.serverActionsManifest=e;else{let c,d=new Map([[(0,g.normalizeAppPath)(a),b]]),h=(c=new Map,new Proxy({},{get(a,b){let e=j.workAsyncStorage.getStore();switch(b){case"moduleLoading":case"entryCSSFiles":case"entryJSFiles":{if(!e)throw Object.defineProperty(new f.InvariantError(`Cannot access "${b}" without a work store.`),"__NEXT_ERROR_CODE",{value:"E952",enumerable:!1,configurable:!0});let a=d.get(e.route);if(!a)throw Object.defineProperty(new f.InvariantError(`The client reference manifest for route "${e.route}" does not exist.`),"__NEXT_ERROR_CODE",{value:"E951",enumerable:!1,configurable:!0});return a[b]}case"clientModules":case"rscModuleMapping":case"edgeRscModuleMapping":case"ssrModuleMapping":case"edgeSSRModuleMapping":{let a=c.get(b);!a&&(a=new Proxy({},{get(a,c){let e=j.workAsyncStorage.getStore();if(e){let a=d.get(e.route);if(null==a?void 0:a[b][c])return a[b][c]}else for(let a of d.values()){let d=a[b][c];if(void 0!==d)return d}}}),c.set(b,a));return a}default:throw Object.defineProperty(new f.InvariantError(`This is a proxied client reference manifest. The property "${String(b)}" is not handled.`),"__NEXT_ERROR_CODE",{value:"E953",enumerable:!1,configurable:!0})}}}));l[k]={clientReferenceManifestsPerRoute:d,proxiedClientReferenceManifest:h,serverActionsManifest:e,serverModuleMap:new Proxy({},{get:(a,b)=>{var c,d;let e,f=null==(d=r().node)||null==(c=d[b])?void 0:c.workers;if(!f)return;let g=j.workAsyncStorage.getStore();if(!(e=g?f[m(g.page)]:Object.values(f).at(0)))return;let{moduleId:h,async:i}=e;return{id:h,name:b,chunks:[],async:i}}})}}}function p(){let a=l[k];if(!a)throw Object.defineProperty(new f.InvariantError("The manifests singleton was not initialized."),"__NEXT_ERROR_CODE",{value:"E950",enumerable:!1,configurable:!0});return a}function q(){return p().proxiedClientReferenceManifest}function r(){return p().serverActionsManifest}function s(){return p().serverModuleMap}},42431:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={NEXT_REQUEST_META:function(){return e},addRequestMeta:function(){return h},getRequestMeta:function(){return f},removeRequestMeta:function(){return i},setRequestMeta:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Symbol.for("NextInternalRequestMeta");function f(a,b){let c=a[e]||{};return"string"==typeof b?c[b]:c}function g(a,b){return a[e]=b,b}function h(a,b,c){let d=f(a);return d[b]=c,g(a,d)}function i(a,b){let c=f(a);return delete c[b],g(a,c)}},43448:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={fromNodeOutgoingHttpHeaders:function(){return g},normalizeNextQueryParam:function(){return k},splitCookiesString:function(){return h},toNodeOutgoingHttpHeaders:function(){return i},validateURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(80463);function g(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function h(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h=a.length)&&g.push(a.substring(b,a.length))}return g}function i(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...h(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function j(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function k(a){for(let b of[f.NEXT_QUERY_PARAM_PREFIX,f.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},45521:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"InvariantError",{enumerable:!0,get:function(){return c}});class c extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},46484:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={djb2Hash:function(){return e},hexHash:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){let b=5381;for(let c=0;c>>0}function f(a){return e(a).toString(36).slice(0,5)}},47812:(a,b)=>{"use strict";function c(a,b,c){if(a){for(let d of(c&&(c=c.toLowerCase()),a))if(b===d.domain?.split(":",1)[0].toLowerCase()||c===d.defaultLocale.toLowerCase()||d.locales?.some(a=>a.toLowerCase()===c))return d}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"detectDomainLocale",{enumerable:!0,get:function(){return c}})},49227:(a,b)=>{"use strict";function c(a){return a.startsWith("/")?a:`/${a}`}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ensureLeadingSlash",{enumerable:!0,get:function(){return c}})},50855:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={METADATA_BOUNDARY_NAME:function(){return e},OUTLET_BOUNDARY_NAME:function(){return g},ROOT_LAYOUT_BOUNDARY_NAME:function(){return h},VIEWPORT_BOUNDARY_NAME:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="__next_metadata_boundary__",f="__next_viewport_boundary__",g="__next_outlet_boundary__",h="__next_root_layout_boundary__"},53320:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={RenderStage:function(){return i},StagedRenderingController:function(){return j}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(45521),h=c(17894);var i=((d={})[d.Before=1]="Before",d[d.EarlyStatic=2]="EarlyStatic",d[d.Static=3]="Static",d[d.EarlyRuntime=4]="EarlyRuntime",d[d.Runtime=5]="Runtime",d[d.Dynamic=6]="Dynamic",d[d.Abandoned=7]="Abandoned",d);class j{constructor(a,b,c){this.abortSignal=a,this.abandonController=b,this.shouldTrackSyncIO=c,this.currentStage=1,this.syncInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.staticStageListeners=[],this.earlyRuntimeStageListeners=[],this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.staticStagePromise=(0,h.createPromiseWithResolvers)(),this.earlyRuntimeStagePromise=(0,h.createPromiseWithResolvers)(),this.runtimeStagePromise=(0,h.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,h.createPromiseWithResolvers)(),a&&a.addEventListener("abort",()=>{let{reason:b}=a;this.staticStagePromise.promise.catch(k),this.staticStagePromise.reject(b),this.earlyRuntimeStagePromise.promise.catch(k),this.earlyRuntimeStagePromise.reject(b),this.runtimeStagePromise.promise.catch(k),this.runtimeStagePromise.reject(b),this.dynamicStagePromise.promise.catch(k),this.dynamicStagePromise.reject(b)},{once:!0}),b&&b.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(a,b){if(this.currentStage>=a)b();else if(3===a)this.staticStageListeners.push(b);else if(4===a)this.earlyRuntimeStageListeners.push(b);else if(5===a)this.runtimeStageListeners.push(b);else if(6===a)this.dynamicStageListeners.push(b);else throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}shouldTrackSyncInterrupt(){if(!this.shouldTrackSyncIO)return!1;switch(this.currentStage){case 1:case 5:case 6:case 7:default:return!1;case 2:case 3:case 4:return!0}}syncInterruptCurrentStageWithReason(a){if(1!==this.currentStage&&7!==this.currentStage){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=a,this.currentStage=7;return}switch(this.currentStage){case 2:case 3:case 4:this.syncInterruptReason=a,this.advanceStage(6);return;case 5:return}}}getSyncInterruptReason(){return this.syncInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){let{currentStage:a}=this;switch(a){case 2:this.resolveStaticStage();case 3:this.resolveEarlyRuntimeStage();case 4:this.resolveRuntimeStage();case 5:this.currentStage=7;return}}advanceStage(a){if(a<=this.currentStage)return;let b=this.currentStage;if(this.currentStage=a,b<3&&a>=3&&this.resolveStaticStage(),b<4&&a>=4&&this.resolveEarlyRuntimeStage(),b<5&&a>=5&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),b<6&&a>=6){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveStaticStage(){let a=this.staticStageListeners;for(let b=0;b{d.then(a.bind(null,f),b)}),void 0!==e&&(g.displayName=e),g);return this.abortSignal&&h.catch(k),h}}function k(){}},56347:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={BaseNextRequest:function(){return h},BaseNextResponse:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(71860),g=c(93156);class h{constructor(a,b,c){this.method=a,this.url=b,this.body=c}get cookies(){return this._cookies?this._cookies:this._cookies=(0,g.getCookieParser)(this.headers)()}}class i{constructor(a){this.destination=a}redirect(a,b){return this.setHeader("Location",a),this.statusCode=b,b===f.RedirectStatusCode.PermanentRedirect&&this.setHeader("Refresh",`0;url=${a}`),this}}},59233:(a,b)=>{"use strict";let c;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"cloneResponse",{enumerable:!0,get:function(){return e}});let d=()=>{};function e(a){if(!a.body)return[a,a];let[b,d]=a.body.tee(),e=new Response(b,{status:a.status,statusText:a.statusText,headers:a.headers});Object.defineProperty(e,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1});let f=new Response(d,{status:a.status,statusText:a.statusText,headers:a.headers});return Object.defineProperty(f,"url",{value:a.url,configurable:!0,enumerable:!0,writable:!1}),c&&(e.body&&c.register(e,new WeakRef(e.body)),f.body&&c.register(f,new WeakRef(f.body))),[e,f]}globalThis.FinalizationRegistry&&(c=new FinalizationRegistry(a=>{let b=a.deref();b&&!b.locked&&b.cancel("Response object has been garbage collected").then(d)}))},60800:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(47812),e=c(89485),f=c(8738),g=c(29874),h=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function i(a,b){let c=new URL(String(a),b&&String(b));return h.test(c.hostname)&&(c.hostname="localhost"),c}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},64176:(a,b,c)=>{"use strict";a.exports=c(31975).vendored["react-rsc"].React},66116:(a,b)=>{"use strict";function c(a){return a.isOnDemandRevalidate?"on-demand":a.isStaticGeneration?"stale":void 0}Object.defineProperty(b,"c",{enumerable:!0,get:function(){return c}})},67162:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCacheControlHeader",{enumerable:!0,get:function(){return e}});let d=c(80463);function e({revalidate:a,expire:b}){let c="number"==typeof a&&void 0!==b&&a{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(5220),e=c(71741);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,`/${b.toLowerCase()}`))?a:(0,d.addPathPrefix)(a,`/${b}`)}},69531:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={},g={RequestCookies:()=>n,ResponseCookies:()=>o,parseCookie:()=>j,parseSetCookie:()=>k,stringifyCookie:()=>i};for(var h in g)b(f,h,{get:g[h],enumerable:!0});function i(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function j(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function k(a){if(!a)return;let[[b,c],...d]=j(a),{domain:e,expires:f,httponly:g,maxage:h,path:i,samesite:k,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof h&&{maxAge:Number(h)},path:i,...k&&{sameSite:l.includes(q=(q=k).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:m.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}a.exports=((a,f,g,h)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let i of d(f))e.call(a,i)||i===g||b(a,i,{get:()=>f[i],enumerable:!(h=c(f,i))||h.enumerable});return a})(b({},"__esModule",{value:!0}),f);var l=["strict","lax","none"],m=["low","medium","high"],n=class{constructor(a){this._parsed=new Map,this._headers=a;const b=a.get("cookie");if(b)for(const[a,c]of j(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>i(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>i(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},o=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;const e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(const a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){const b=k(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=i(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(i).join("; ")}}},71330:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={isNodeNextRequest:function(){return g},isNodeNextResponse:function(){return h},isWebNextRequest:function(){return e},isWebNextResponse:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=a=>!1,f=a=>!1,g=a=>!0,h=a=>!0},71741:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(80247);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},71860:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RedirectStatusCode",{enumerable:!0,get:function(){return d}});var c,d=((c={})[c.SeeOther=303]="SeeOther",c[c.TemporaryRedirect=307]="TemporaryRedirect",c[c.PermanentRedirect=308]="PermanentRedirect",c);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},72285:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={bootstrap:function(){return k},error:function(){return m},errorOnce:function(){return v},event:function(){return q},info:function(){return p},prefixes:function(){return h},ready:function(){return o},trace:function(){return r},wait:function(){return l},warn:function(){return n},warnOnce:function(){return t}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(94277),g=c(35946),h={wait:(0,f.white)((0,f.bold)("○")),error:(0,f.red)((0,f.bold)("⨯")),warn:(0,f.yellow)((0,f.bold)("⚠")),ready:"▲",info:(0,f.white)((0,f.bold)(" ")),event:(0,f.green)((0,f.bold)("✓")),trace:(0,f.magenta)((0,f.bold)("\xbb"))},i={log:"log",warn:"warn",error:"error"};function j(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in i?i[a]:"log",d=h[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](d+" "+b[0]):console[c](d,...b)}function k(a){console.log(a)}function l(...a){j("wait",...a)}function m(...a){j("error",...a)}function n(...a){j("warn",...a)}function o(...a){j("ready",...a)}function p(...a){j("info",...a)}function q(...a){j("event",...a)}function r(...a){j("trace",...a)}let s=new g.LRUCache(1e4,a=>a.length);function t(...a){let b=a.join(" ");s.has(b)||(s.set(b,b),n(...a))}let u=new g.LRUCache(1e4,a=>a.length);function v(...a){let b=a.join(" ");u.has(b)||(u.set(b,b),m(...a))}},73436:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={indexOfUint8Array:function(){return e},isEquivalentUint8Arrays:function(){return f},removeFromUint8Array:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;if("u">typeof Buffer)return(Buffer.isBuffer(a)?a:Buffer.from(a.buffer,a.byteOffset,a.byteLength)).indexOf(b);for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e-1))return a;{let d=new Uint8Array(a.length-b.length);return d.set(a.subarray(0,c)),d.set(a.subarray(c+b.length),c),d}}},73631:a=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b,c,d,e,f={};f.parse=function(a,c){if("string"!=typeof a)throw TypeError("argument str must be a string");for(var e={},f=a.split(d),g=(c||{}).decode||b,h=0;h{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(71741);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:`/${c}`}},79569:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(95310);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b({resolve:a=>Promise.resolve(a),key:a});let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let c=await b({resolve:g,key:a});g(c)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},80247:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},80463:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_SUFFIX:function(){return p},APP_DIR_ALIAS:function(){return O},CACHE_ONE_YEAR_SECONDS:function(){return E},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ag},GSP_NO_RETURNED_VALUE:function(){return aa},GSSP_COMPONENT_MEMBER_ERROR:function(){return ad},GSSP_NO_RETURNED_VALUE:function(){return ab},HTML_CONTENT_TYPE_HEADER:function(){return f},INFINITE_CACHE:function(){return F},INSTRUMENTATION_HOOK_FILENAME:function(){return K},JSON_CONTENT_TYPE_HEADER:function(){return g},MATCHED_PATH_HEADER:function(){return j},MIDDLEWARE_FILENAME:function(){return G},MIDDLEWARE_LOCATION_REGEXP:function(){return H},NEXT_BODY_SUFFIX:function(){return s},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return w},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return D},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return B},NEXT_CACHE_TAGS_HEADER:function(){return u},NEXT_CACHE_TAG_MAX_ITEMS:function(){return z},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return q},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return i},NEXT_META_SUFFIX:function(){return r},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return t},NEXT_QUERY_PARAM_PREFIX:function(){return h},NEXT_RESUME_HEADER:function(){return x},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return ae},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return k},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return J},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return N},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return R},RSC_ACTION_VALIDATE_ALIAS:function(){return Q},RSC_CACHE_WRAPPER_ALIAS:function(){return S},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return T},RSC_MOD_REF_PROXY_ALIAS:function(){return P},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return n},RSC_SUFFIX:function(){return o},SERVER_PROPS_EXPORT_ERROR:function(){return _},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return ah},SSG_FALLBACK_EXPORT_ERROR:function(){return af},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return X},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return $},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return e},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ac},WEBPACK_LAYERS:function(){return ak},WEBPACK_RESOURCE_QUERIES:function(){return al},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ai}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="text/plain",f="text/html; charset=utf-8",g="application/json; charset=utf-8",h="nxtP",i="nxtI",j="x-matched-path",k="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",m=".segments",n=".segment.rsc",o=".rsc",p=".action",q=".json",r=".meta",s=".body",t="x-nextjs-deployment-id",u="x-next-cache-tags",v="x-next-revalidated-tags",w="x-next-revalidate-tag-token",x="next-resume",y="x-next-resume-state-length",z=128,A=256,B=1024,C="_N_T_",D="_N_RP_",E=31536e3,F=0xfffffffe,G="middleware",H=`(?:src/)?${G}`,I="proxy",J=`(?:src/)?${I}`,K="instrumentation",L="private-next-pages",M="private-dot-next",N="private-next-root-dir",O="private-next-app-dir",P="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",Q="private-next-rsc-action-validate",R="private-next-rsc-server-reference",S="private-next-rsc-cache-wrapper",T="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",X="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",$="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",_="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",aa="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ab="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ac="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ad="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ae='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',af="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ag=["app","pages","components","lib","src"],ah={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ai=12,aj={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ak={...aj,GROUP:{builtinReact:[aj.reactServerComponents,aj.actionBrowser],serverOnly:[aj.reactServerComponents,aj.actionBrowser,aj.instrument,aj.middleware],neutralTarget:[aj.apiNode,aj.apiEdge],clientOnly:[aj.serverSideRendering,aj.appPagesBrowser],bundled:[aj.reactServerComponents,aj.actionBrowser,aj.serverSideRendering,aj.appPagesBrowser,aj.shared,aj.instrument,aj.middleware],appPages:[aj.reactServerComponents,aj.serverSideRendering,aj.appPagesBrowser,aj.actionBrowser]}},al={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},81764:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getClientComponentLoaderMetrics:function(){return i},wrapClientComponentLoader:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=0,g=0;function h(a){return"performance"in globalThis?{require:(...b)=>{let c=performance.now();0===e&&(e=c);try{return g+=1,a.__next_app__.require(...b)}finally{f+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{f+=performance.now()-c}),d}}:a.__next_app__}function i(a={}){let b=0===e?void 0:{clientComponentLoadStart:e,clientComponentLoadTimes:f,clientComponentLoadCount:g};return a.reset&&(e=0,f=0,g=0),b}},83665:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ENCODED_TAGS",{enumerable:!0,get:function(){return c}});let c={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),HEAD:new Uint8Array([60,104,101,97,100]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}}},83777:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},85426:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(9071),e=c(90711),f=c(45521);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}pipeThrough(a){this.response=this.readable.pipeThrough(a)}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},87717:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(42431),g=c(43448),h=c(8412),i=c(71330),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},89485:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"formatNextPathnameInfo",{enumerable:!0,get:function(){return h}});let d=c(31303),e=c(5220),f=c(13129),g=c(68922);function h(a){let b=(0,g.addLocale)(a.pathname,a.locale,a.buildId?void 0:a.defaultLocale,a.ignorePrefix);return(a.buildId||!a.trailingSlash)&&(b=(0,d.removeTrailingSlash)(b)),a.buildId&&(b=(0,f.addPathSuffix)((0,e.addPathPrefix)(b,`/_next/data/${a.buildId}`),"/"===a.pathname?"index.json":".json")),b=(0,e.addPathPrefix)(b,a.basePath),!a.buildId&&a.trailingSlash?b.endsWith("/")?b:(0,f.addPathSuffix)(b,"/"):(0,d.removeTrailingSlash)(b)}},89542:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(69531)},90711:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isAbortError:function(){return k},pipeToNodeResponse:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(87717),g=c(95310),h=c(27321),i=c(34935),j=c(81764);function k(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===f.ResponseAbortedName}async function l(a,b,c){try{let{errored:d,destroyed:e}=b;if(d||e)return;let k=(0,f.createAbortController)(b),l=function(a,b){let c=!1,d=new g.DetachedPromise;function e(){d.resolve()}a.on("drain",e),a.once("close",()=>{a.off("drain",e),d.resolve()});let f=new g.DetachedPromise;return a.once("finish",()=>{f.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,j.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,h.getTracer)().trace(i.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new g.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),f.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(k(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},93156:(a,b,c)=>{"use strict";function d(a){return function(){let{cookie:b}=a;if(!b)return{};let{parse:d}=c(73631);return d(Array.isArray(b)?b.join("; "):b)}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCookieParser",{enumerable:!0,get:function(){return d}})},93334:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={BailoutToCSRError:function(){return f},isBailoutToCSRError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="BAILOUT_TO_CLIENT_SIDE_RENDERING";class f extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===e}},94277:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d={bgBlack:function(){return C},bgBlue:function(){return G},bgCyan:function(){return I},bgGreen:function(){return E},bgMagenta:function(){return H},bgRed:function(){return D},bgWhite:function(){return J},bgYellow:function(){return F},black:function(){return s},blue:function(){return w},bold:function(){return l},cyan:function(){return z},dim:function(){return m},gray:function(){return B},green:function(){return u},hidden:function(){return q},inverse:function(){return p},italic:function(){return n},magenta:function(){return x},purple:function(){return y},red:function(){return t},reset:function(){return k},strikethrough:function(){return r},underline:function(){return o},white:function(){return A},yellow:function(){return v}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let{env:f,stdout:g}=(null==(c=globalThis)?void 0:c.process)??{},h=f&&!f.NO_COLOR&&(f.FORCE_COLOR||(null==g?void 0:g.isTTY)&&!f.CI&&"dumb"!==f.TERM),i=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),g=f.indexOf(b);return~g?e+i(f,b,c,g):e+f},j=(a,b,c=a)=>h?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+i(e,b,c,f)+b:a+e+b}:String,k=h?a=>`\x1b[0m${a}\x1b[0m`:String,l=j("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),m=j("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),n=j("\x1b[3m","\x1b[23m"),o=j("\x1b[4m","\x1b[24m"),p=j("\x1b[7m","\x1b[27m"),q=j("\x1b[8m","\x1b[28m"),r=j("\x1b[9m","\x1b[29m"),s=j("\x1b[30m","\x1b[39m"),t=j("\x1b[31m","\x1b[39m"),u=j("\x1b[32m","\x1b[39m"),v=j("\x1b[33m","\x1b[39m"),w=j("\x1b[34m","\x1b[39m"),x=j("\x1b[35m","\x1b[39m"),y=j("\x1b[38;2;173;127;168m","\x1b[39m"),z=j("\x1b[36m","\x1b[39m"),A=j("\x1b[37m","\x1b[39m"),B=j("\x1b[90m","\x1b[39m"),C=j("\x1b[40m","\x1b[49m"),D=j("\x1b[41m","\x1b[49m"),E=j("\x1b[42m","\x1b[49m"),F=j("\x1b[43m","\x1b[49m"),G=j("\x1b[44m","\x1b[49m"),H=j("\x1b[45m","\x1b[49m"),I=j("\x1b[46m","\x1b[49m"),J=j("\x1b[47m","\x1b[49m")},95310:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},96073:a=>{(()=>{"use strict";let b,c,d,e,f;var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}const b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){const b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return ad.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,(c=b.DiagLogLevel||(b.DiagLogLevel={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL"},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,(c=b.ValueType||(b.ValueType={}))[c.INT=0]="INT",c[c.DOUBLE=1]="DOUBLE"},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,(c=b.SamplingDecision||(b.SamplingDecision={}))[c.NOT_RECORD=0]="NOT_RECORD",c[c.RECORD=1]="RECORD",c[c.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,(c=b.SpanKind||(b.SpanKind={}))[c.INTERNAL=0]="INTERNAL",c[c.SERVER=1]="SERVER",c[c.CLIENT=2]="CLIENT",c[c.PRODUCER=3]="PRODUCER",c[c.CONSUMER=4]="CONSUMER"},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,(c=b.SpanStatusCode||(b.SpanStatusCode={}))[c.UNSET=0]="UNSET",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR"},475:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,(c=b.TraceFlags||(b.TraceFlags={}))[c.NONE=0]="NONE",c[c.SAMPLED=1]="SAMPLED"},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},x={};function y(a){var b=x[a];if(void 0!==b)return b.exports;var c=x[a]={exports:{}},d=!0;try{w[a].call(c.exports,c,c.exports,y),d=!1}finally{d&&delete x[a]}return c.exports}y.ab=__dirname+"/";var z={};Object.defineProperty(z,"__esModule",{value:!0}),z.trace=z.propagation=z.metrics=z.diag=z.context=z.INVALID_SPAN_CONTEXT=z.INVALID_TRACEID=z.INVALID_SPANID=z.isValidSpanId=z.isValidTraceId=z.isSpanContextValid=z.createTraceState=z.TraceFlags=z.SpanStatusCode=z.SpanKind=z.SamplingDecision=z.ProxyTracerProvider=z.ProxyTracer=z.defaultTextMapSetter=z.defaultTextMapGetter=z.ValueType=z.createNoopMeter=z.DiagLogLevel=z.DiagConsoleLogger=z.ROOT_CONTEXT=z.createContextKey=z.baggageEntryMetadataFromString=void 0,g=y(369),Object.defineProperty(z,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return g.baggageEntryMetadataFromString}}),h=y(780),Object.defineProperty(z,"createContextKey",{enumerable:!0,get:function(){return h.createContextKey}}),Object.defineProperty(z,"ROOT_CONTEXT",{enumerable:!0,get:function(){return h.ROOT_CONTEXT}}),i=y(972),Object.defineProperty(z,"DiagConsoleLogger",{enumerable:!0,get:function(){return i.DiagConsoleLogger}}),j=y(957),Object.defineProperty(z,"DiagLogLevel",{enumerable:!0,get:function(){return j.DiagLogLevel}}),k=y(102),Object.defineProperty(z,"createNoopMeter",{enumerable:!0,get:function(){return k.createNoopMeter}}),l=y(901),Object.defineProperty(z,"ValueType",{enumerable:!0,get:function(){return l.ValueType}}),m=y(194),Object.defineProperty(z,"defaultTextMapGetter",{enumerable:!0,get:function(){return m.defaultTextMapGetter}}),Object.defineProperty(z,"defaultTextMapSetter",{enumerable:!0,get:function(){return m.defaultTextMapSetter}}),n=y(125),Object.defineProperty(z,"ProxyTracer",{enumerable:!0,get:function(){return n.ProxyTracer}}),o=y(846),Object.defineProperty(z,"ProxyTracerProvider",{enumerable:!0,get:function(){return o.ProxyTracerProvider}}),p=y(996),Object.defineProperty(z,"SamplingDecision",{enumerable:!0,get:function(){return p.SamplingDecision}}),q=y(357),Object.defineProperty(z,"SpanKind",{enumerable:!0,get:function(){return q.SpanKind}}),r=y(847),Object.defineProperty(z,"SpanStatusCode",{enumerable:!0,get:function(){return r.SpanStatusCode}}),s=y(475),Object.defineProperty(z,"TraceFlags",{enumerable:!0,get:function(){return s.TraceFlags}}),t=y(98),Object.defineProperty(z,"createTraceState",{enumerable:!0,get:function(){return t.createTraceState}}),u=y(139),Object.defineProperty(z,"isSpanContextValid",{enumerable:!0,get:function(){return u.isSpanContextValid}}),Object.defineProperty(z,"isValidTraceId",{enumerable:!0,get:function(){return u.isValidTraceId}}),Object.defineProperty(z,"isValidSpanId",{enumerable:!0,get:function(){return u.isValidSpanId}}),v=y(476),Object.defineProperty(z,"INVALID_SPANID",{enumerable:!0,get:function(){return v.INVALID_SPANID}}),Object.defineProperty(z,"INVALID_TRACEID",{enumerable:!0,get:function(){return v.INVALID_TRACEID}}),Object.defineProperty(z,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return v.INVALID_SPAN_CONTEXT}}),b=y(67),Object.defineProperty(z,"context",{enumerable:!0,get:function(){return b.context}}),c=y(506),Object.defineProperty(z,"diag",{enumerable:!0,get:function(){return c.diag}}),d=y(886),Object.defineProperty(z,"metrics",{enumerable:!0,get:function(){return d.metrics}}),e=y(939),Object.defineProperty(z,"propagation",{enumerable:!0,get:function(){return e.propagation}}),f=y(845),Object.defineProperty(z,"trace",{enumerable:!0,get:function(){return f.trace}}),z.default={context:b.context,diag:c.diag,metrics:d.metrics,propagation:e.propagation,trace:f.trace},a.exports=z})()},99509:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return p}});let f=c(79569),g=c(35946),h=c(72285),i=c(19995),j=c(23696);function k(a,b){if(!a)return b;let c=parseInt(a,10);return Number.isFinite(c)&&c>0?c:b}d=c(12644),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})});let l=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),m=k(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),n="__ttl_sentinel__";function o(a,b){return`${a}\0${b??n}`}class p{constructor(a,b=m,c=l){this.getBatcher=f.Batcher.create({cacheKeyFn:({key:a,isOnDemandRevalidate:b})=>`${a}-${b?"1":"0"}`,schedulerFn:i.scheduleOnNextTick}),this.revalidateBatcher=f.Batcher.create({schedulerFn:i.scheduleOnNextTick}),this.evictedInvocationIDs=new Set,this.minimal_mode=a,this.maxSize=b,this.ttl=c,this.cache=new g.LRUCache(b,void 0,a=>{let b=function(a){let b=a.lastIndexOf("\0");if(-1===b)return;let c=a.slice(b+1);return c===n?void 0:c}(a);if(b){if(this.evictedInvocationIDs.size>=100){let a=this.evictedInvocationIDs.values().next().value;a&&this.evictedInvocationIDs.delete(a)}this.evictedInvocationIDs.add(b)}})}async get(a,b,c){if(!a)return b({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let b=o(a,c.invocationID),d=this.cache.get(b);if(d){if(void 0!==c.invocationID)return(0,j.toResponseCacheEntry)(d.entry);let a=Date.now();if(d.expiresAt>a)return(0,j.toResponseCacheEntry)(d.entry);this.cache.remove(b)}c.invocationID&&this.evictedInvocationIDs.has(c.invocationID)&&(0,h.warnOnce)(`Response cache entry was evicted for invocation ${c.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:d,isOnDemandRevalidate:e=!1,isFallback:f=!1,isRoutePPREnabled:g=!1,isPrefetch:i=!1,waitUntil:k,routeKind:l,invocationID:m}=c,n=await this.getBatcher.batch({key:a,isOnDemandRevalidate:e},({resolve:c})=>{let h=this.handleGet(a,b,{incrementalCache:d,isOnDemandRevalidate:e,isFallback:f,isRoutePPREnabled:g,isPrefetch:i,routeKind:l,invocationID:m},c);return k&&k(h),h});return(0,j.toResponseCacheEntry)(n)}async handleGet(a,b,c,d){let e=null,f=!1;try{if((e=this.minimal_mode?null:await c.incrementalCache.get(a,{kind:(0,j.routeKindToIncrementalCacheKind)(c.routeKind),isRoutePPREnabled:c.isRoutePPREnabled,isFallback:c.isFallback}))&&!c.isOnDemandRevalidate&&(d(e),f=!0,!e.isStale||c.isPrefetch))return e;let g=await this.revalidate(a,c.incrementalCache,c.isRoutePPREnabled,c.isFallback,b,e,null!==e&&!c.isOnDemandRevalidate,void 0,c.invocationID);if(!g){if(this.minimal_mode){let b=o(a,c.invocationID);this.cache.remove(b)}return null}return c.isOnDemandRevalidate,g}catch(a){if(f)return console.error(a),null;throw a}}async revalidate(a,b,c,d,e,f,g,h,i){return this.revalidateBatcher.batch(a,()=>{let j=this.handleRevalidate(a,b,c,d,e,f,g,i);return h&&h(j),j})}async handleRevalidate(a,b,c,d,e,f,g,h){try{let i=await e({hasResolved:g,previousCacheEntry:f,isRevalidating:!0});if(!i)return null;let k=await (0,j.fromResponseCacheEntry)({...i,isMiss:!f});if(k.cacheControl)if(this.minimal_mode){let b=o(a,h);this.cache.set(b,{entry:k,expiresAt:Date.now()+this.ttl})}else await b.set(a,k.value,{cacheControl:k.cacheControl,isRoutePPREnabled:c,isFallback:d});return k}catch(e){if(null==f?void 0:f.cacheControl){let e=Math.min(Math.max(f.cacheControl.revalidate||3,3),30),g=void 0===f.cacheControl.expire?void 0:Math.max(e+3,f.cacheControl.expire);await b.set(a,f.value,{cacheControl:{revalidate:e,expire:g},isRoutePPREnabled:c,isFallback:d})}throw e}}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/7973.js b/cli/app/.next/server/chunks/7973.js new file mode 100644 index 00000000000..f69257db6b6 --- /dev/null +++ b/cli/app/.next/server/chunks/7973.js @@ -0,0 +1 @@ +"use strict";exports.id=7973,exports.ids=[7973],exports.modules={23016:(a,b,c)=>{c.d(b,{C8:()=>j,DR:()=>i,Uc:()=>f,cI:()=>h,eo:()=>g,gx:()=>d,v1:()=>e}),c(73714);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=64e3,g=32e3,h={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function i(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let j=["Please write a 5-10 word title for the following conversation:"]},37973:(a,b,c)=>{c.d(b,{proxyAwareFetch:()=>q});var d=c(27910),e=c(23016);let f=globalThis.fetch,g=new Map,h=new Map,i=["cloudcode-pa.googleapis.com","daily-cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com","api2.cursor.sh"],j=["8.8.8.8","8.8.4.4"];function k(a){return null==a?"":String(a).trim()}async function l(a){let b=h.get(a);if(b&&Date.now()a.trim().toLowerCase()).filter(Boolean).some(a=>"*"===a||(a.startsWith(".")?c.endsWith(a)||c===a.slice(1):c===a||c.endsWith(`.${a}`)))}function n(a){let b=k(a);if(!b)return null;try{return new URL(b),b}catch{return`http://${b}`}}async function o(a){let b=n(a);if(!b)return null;if(!g.has(b)){g.size>=e.v1.proxyDispatchersMaxSize&&g.delete(g.keys().next().value);let{ProxyAgent:a}=await c.e(6288).then(c.t.bind(c,16288,19));g.set(b,new a({uri:b}))}return g.get(b)}async function p(a,b,e){let f=await Promise.resolve().then(c.t.bind(c,55591,23)),g=await Promise.resolve().then(c.t.bind(c,91645,23)),h=f.default??f,i=g.default??g;return new Promise((c,f)=>{let g=new i.Socket;g.connect(443,b,()=>{let b={socket:g,servername:a.hostname,rejectUnauthorized:!1,path:a.pathname+a.search,method:e.method||"POST",headers:{...e.headers,Host:a.hostname}},i=h.request(b,a=>{let b={ok:a.statusCode>=200&&a.statusCode<300,status:a.statusCode,statusText:a.statusMessage,headers:new Map(Object.entries(a.headers)),body:d.Readable.toWeb(a),text:async()=>{let b=[];for await(let c of a)b.push(c);return Buffer.concat(b).toString()},json:async()=>JSON.parse(await b.text())};c(b)});i.on("error",f),e.body&&i.write("string"==typeof e.body?e.body:JSON.stringify(e.body)),i.end()}),g.on("error",f)})}async function q(a,b={},c=null){let d="string"==typeof a?a:a.toString(),e=k(c?.vercelRelayUrl);if(e){let a=new URL(d),c={...b.headers,"x-relay-target":`${a.protocol}//${a.host}`,"x-relay-path":`${a.pathname}${a.search}`};return f(e,{...b,headers:c})}let g=function(a,b){if(b?.enabled!==!0&&b?.connectionProxyEnabled!==!0)return null;let c=k(b?.url??b?.connectionProxyUrl);if(!c)return null;let d=k(b?.noProxy??b?.connectionNoProxy);return d&&m(a,d)?null:n(c)}(d,c),h=g?null:n(function(a){let b;if(m(a,process.env.NO_PROXY||process.env.no_proxy))return null;try{b=new URL(a).protocol}catch{return null}return"https:"===b?process.env.HTTPS_PROXY||process.env.https_proxy||process.env.ALL_PROXY||process.env.all_proxy:process.env.HTTP_PROXY||process.env.http_proxy||process.env.ALL_PROXY||process.env.all_proxy}(d)),j=g||h;if(function(a){try{let b=new URL(a).hostname;return i.some(a=>b.includes(a))}catch{return!1}}(d)){if(j)try{let c=await o(j);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct bypass: ${a.message}`)}try{let a=new URL(d),c=await l(a.hostname);if(c)return await p(a,c,b)}catch(a){console.warn(`[ProxyFetch] MITM bypass failed: ${a.message}`)}}if(j)try{let c=await o(j);return await f(a,{...b,dispatcher:c})}catch(a){if(c?.strictProxy===!0)throw Error(`[ProxyFetch] Proxy required but failed (strictProxy=true): ${a.message}`);console.warn(`[ProxyFetch] Proxy failed, falling back to direct: ${a.message}`)}return f(a,b)}async function r(a,b={}){return q(a,b,null)}globalThis.fetch!==r&&(globalThis.fetch=r)},73714:(a,b,c)=>{c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/8035.js b/cli/app/.next/server/chunks/8035.js new file mode 100644 index 00000000000..6ad50bcbdec --- /dev/null +++ b/cli/app/.next/server/chunks/8035.js @@ -0,0 +1 @@ +"use strict";exports.id=8035,exports.ids=[8035],exports.modules={50304:(a,b,c)=>{c.d(b,{DA:()=>h,Lh:()=>f,Ux:()=>d,cw:()=>g,rI:()=>i,t1:()=>e});let d={intervalMs:2e3,timeoutMs:18e4,fetchTimeoutMs:5e3,dnsTimeoutMs:2e3},e={host:"1.1.1.1",port:443,timeoutMs:3e3},f=6e4,g=2500,h=6e4,i=5e3},54495:(a,b,c)=>{c.d(b,{Al:()=>A,Dd:()=>y,es:()=>E,fn:()=>F,nN:()=>H,ss:()=>G});var d=c(29021),e=c.n(d),f=c(33873),g=c.n(f),h=c(55591),i=c.n(h),j=c(21820),k=c.n(j),l=c(79646),m=c(19931),n=c(81372);let o=g().join(n.n,"bin"),p="cloudflared",q="win32"===k().platform(),r=q?`${p}.exe`:p,s=g().join(o,r),t="http2",u=new Set(["http2","quic","auto"]),v={darwin:{x64:"cloudflared-darwin-amd64.tgz",arm64:"cloudflared-darwin-arm64.tgz"},win32:{x64:"cloudflared-windows-amd64.exe",ia32:"cloudflared-windows-386.exe",arm64:"cloudflared-windows-386.exe"},linux:{x64:"cloudflared-linux-amd64",arm64:"cloudflared-linux-arm64"}},w={darwin:"cloudflared-darwin-amd64.tgz",win32:"cloudflared-windows-386.exe",linux:"cloudflared-linux-amd64"},x={downloading:!1,progress:0};function y(){return{downloading:x.downloading,progress:x.progress}}let z=null;async function A(){return z||(z=B().finally(()=>{z=null}))}async function B(){e().existsSync(o)||e().mkdirSync(o,{recursive:!0});let a=`${s}.tmp`;if(e().existsSync(a))try{e().unlinkSync(a)}catch{}if(e().existsSync(s))if(function(a){try{if(e().statSync(a).size<1048576)return!1;let b=e().openSync(a,"r"),c=Buffer.alloc(4);e().readSync(b,c,0,4,0),e().closeSync(b);let d=c.toString("hex");if(q)return d.startsWith("4d5a");if("darwin"===k().platform())return d.startsWith("cffaedfe")||d.startsWith("cefaedfe");return d.startsWith("7f454c46")}catch{return!1}}(s))return q||e().chmodSync(s,"755"),s;else console.log("[cloudflared] Invalid binary detected, re-downloading..."),e().unlinkSync(s);let b=function(){let a=k().platform(),b=k().arch(),c=v[a];if(!c)throw Error(`Unsupported platform: ${a}`);let d=c[b]||w[a];return`https://github.com/cloudflare/cloudflared/releases/latest/download/${d}`}(),c=b.endsWith(".tgz"),d=c?g().join(o,"cloudflared.tgz.tmp"):a;return await function a(b,c){return new Promise((d,f)=>{let g=e().createWriteStream(c);i().get(b,b=>{if([301,302,303,307,308].includes(b.statusCode)){g.close(),e().unlinkSync(c),a(b.headers.location,c).then(d).catch(f);return}if(200!==b.statusCode){g.close(),e().unlinkSync(c),f(Error(`Download failed with status ${b.statusCode}`));return}let h=parseInt(b.headers["content-length"],10)||0,i=0;x.downloading=!0,x.progress=0,b.on("data",a=>{i+=a.length,h>0&&(x.progress=Math.round(i/h*100))}),b.pipe(g),g.on("finish",()=>{x.downloading=!1,x.progress=100,g.close(()=>d(c))}),g.on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().unlinkSync(c),f(a)})}).on("error",a=>{x.downloading=!1,x.progress=0,g.close(),e().existsSync(c)&&e().unlinkSync(c),f(a)})})}(b,d),c?((0,l.execSync)(`tar -xzf "${d}" -C "${o}"`,{stdio:"pipe",windowsHide:!0}),e().unlinkSync(d)):e().renameSync(d,s),q||e().chmodSync(s,"755"),s}let C=null,D=null;function E(a){D=a}async function F(a,b){let c=await A(),d=e().mkdtempSync(g().join(k().tmpdir(),"cloudflared-quick-")),f=g().join(d,"config.yml");e().writeFileSync(f,"# quick-tunnel config placeholder\n","utf8");let h=!1,i=()=>{if(!h){h=!0;try{e().rmSync(d,{recursive:!0,force:!0})}catch(a){}}},j=String(process.env.TUNNEL_TRANSPORT_PROTOCOL||process.env.CLOUDFLARED_PROTOCOL||t).trim().toLowerCase(),n=u.has(j)?j:t,o=(0,l.spawn)(c,["tunnel","--url",`http://127.0.0.1:${a}`,"--config",f,"--no-autoupdate"],{detached:!1,windowsHide:!0,env:{...process.env,TUNNEL_TRANSPORT_PROTOCOL:n},stdio:["ignore","pipe","pipe"]});return C=o,(0,m.xS)(o.pid),new Promise((a,c)=>{let d=!1,e=setTimeout(()=>{d||(d=!0,i(),c(Error("Quick tunnel timed out")))},9e4),f=null,g=c=>{let g=function(a){let b=[];for(let c of a.matchAll(/https:\/\/([a-z0-9-]+)\.trycloudflare\.com/gi)){let a=c[1];"api"!==a&&b.push(`https://${a}.trycloudflare.com`)}return b.length?b[b.length-1]:null}(c.toString());if(g){if(!d){d=!0,f=g,clearTimeout(e),i(),a({child:o,tunnelUrl:g});return}g!==f&&(f=g,b&&b(g))}};o.stdout.on("data",g),o.stderr.on("data",g),o.on("error",a=>{d||(d=!0,clearTimeout(e),i(),c(a))}),o.on("exit",(a,b)=>{if(C=null,(0,m.r4)(),!d){d=!0,clearTimeout(e),i(),1===a?c(Error(`cloudflared exited with code ${a}. This often means: (1) the tunnel token is invalid or expired, (2) network connectivity issues, or (3) cloudflared cannot reach the local server.`)):2===a?c(Error(`cloudflared exited with code ${a}. Check that arguments are correct.`)):c(Error(`cloudflared exited with code ${a}`));return}D&&D(),i()})})}function G(a){if(C){try{C.kill()}catch(a){}C=null}let b=(0,m.Cr)();if(b){try{process.kill(b)}catch(a){}(0,m.r4)()}if(a)try{if(q){let b=`Get-CimInstance Win32_Process -Filter \\"Name='cloudflared.exe'\\" | Where-Object { $_.CommandLine -match ':${a}(\\D|$)' } | ForEach-Object { Stop-Process -Id $_.ProcessId -Force }`;(0,l.execSync)(`powershell -NoProfile -NonInteractive -WindowStyle Hidden -Command "${b}"`,{stdio:"ignore",windowsHide:!0})}else(0,l.execSync)(`pkill -f "cloudflared.*:${a}([^0-9]|$)" 2>/dev/null || true`,{stdio:"ignore",windowsHide:!0})}catch(a){}}function H(){let a=(0,m.Cr)();if(!a)return!1;try{return process.kill(a,0),!0}catch(a){return!1}}},88035:(a,b,c)=>{c.d(b,{H4:()=>x,Jv:()=>u,Qn:()=>o,Rg:()=>t,cb:()=>s,mh:()=>v,oN:()=>p,rH:()=>w});var d=c(55511),e=c.n(d),f=c(19931),g=c(54495),h=c(13774),i=c(37770),j=c(50514),k=c(91160);(0,j.initDbHooks)(i.getSettings,i.Xx);let l=process.env.TUNNEL_WORKER_URL||"https://9router.com",m={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null},n={cancelToken:{cancelled:!1},spawnInProgress:!1,lastRestartAt:0,activeLocalPort:null};function o(){return m}function p(){return n}async function q(a,b){await fetch(`${l}/api/tunnel/register`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({shortId:a,tunnelUrl:b})})}function r(a,b){if(a.cancelled)throw Error(`${b} cancelled`)}async function s(a=20128){m.cancelToken={cancelled:!1},m.activeLocalPort=a,m.spawnInProgress=!0;let b=m.cancelToken;try{if((0,g.nN)()){let a=(0,f.C7)();if(a?.tunnelUrl&&await (0,k.$c)(a.tunnelUrl)){let b=`https://r${a.shortId}.9router.com`;return{success:!0,tunnelUrl:a.tunnelUrl,shortId:a.shortId,publicUrl:b,alreadyRunning:!0}}}(0,g.ss)(a),r(b,"tunnel");let d=function(){try{let{machineIdSync:a}=c(20243),b=a();return e().createHash("sha256").update(b+"9router-tunnel-salt").digest("hex").substring(0,16)}catch(a){return e().randomUUID().replace(/-/g,"").substring(0,16)}}(),h=(0,f.C7)(),j=h?.shortId||(0,f.jd)(),l=async a=>{b.cancelled||(await q(j,a),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:a}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:a}))},{tunnelUrl:m}=await (0,g.fn)(a,l);r(b,"tunnel");let n=`https://r${j}.9router.com`;return await q(j,m),(0,f.LZ)({shortId:j,machineId:d,tunnelUrl:m}),await (0,i.Xx)({tunnelEnabled:!0,tunnelUrl:m}),await (0,k.tm)(n,b),{success:!0,tunnelUrl:m,shortId:j,publicUrl:n}}finally{m.spawnInProgress=!1}}async function t(){m.cancelToken.cancelled=!0,(0,g.es)(null),(0,g.ss)(m.activeLocalPort);let a=(0,f.C7)();return a&&(0,f.LZ)({shortId:a.shortId,machineId:a.machineId,tunnelUrl:null}),await (0,i.Xx)({tunnelEnabled:!1,tunnelUrl:""}),{success:!0}}async function u(){let a=(0,f.C7)(),b=(0,g.nN)(),c=await (0,i.getSettings)(),d=a?.shortId||"",e=d?`https://r${d}.9router.com`:"";return{enabled:!0===c.tunnelEnabled&&b,settingsEnabled:!0===c.tunnelEnabled,tunnelUrl:a?.tunnelUrl||"",shortId:d,publicUrl:e,running:b}}async function v(a=20128){n.cancelToken={cancelled:!1},n.activeLocalPort=a,n.spawnInProgress=!0;let b=n.cancelToken;try{let c=(0,j.getCachedPassword)()||await (0,j.loadEncryptedPassword)()||"";await (0,h.OZ)(c),r(b,"tailscale");let d=(0,f.C7)(),e=d?.shortId||(0,f.jd)();if(!(0,h.a$)()){let a=await (0,h.c$)(e);if(a.authUrl)return{success:!1,needsLogin:!0,authUrl:a.authUrl}}r(b,"tailscale"),(0,h.PZ)();let g=await (0,h.LC)(a);if(r(b,"tailscale"),g.funnelNotEnabled)return{success:!1,funnelNotEnabled:!0,enableUrl:g.enableUrl};if(!(0,h.a$)()||!(0,h.Kp)())return(0,h.PZ)(),{success:!1,error:"Tailscale not connected. Device may have been removed. Please re-login."};return await (0,i.Xx)({tailscaleEnabled:!0,tailscaleUrl:g.tunnelUrl}),await (0,k.tm)(g.tunnelUrl,b),{success:!0,tunnelUrl:g.tunnelUrl}}finally{n.spawnInProgress=!1}}async function w(){return n.cancelToken.cancelled=!0,(0,h.PZ)(),await (0,i.Xx)({tailscaleEnabled:!1,tailscaleUrl:""}),{success:!0}}async function x(){let a=await (0,i.getSettings)(),b=(0,h.Kp)();return{enabled:!0===a.tailscaleEnabled&&b,settingsEnabled:!0===a.tailscaleEnabled,tunnelUrl:a.tailscaleUrl||"",running:b}}},91160:(a,b,c)=>{c.d(b,{$c:()=>l,tm:()=>m,u7:()=>j});var d=c(91645),e=c.n(d),f=c(14985),g=c.n(f),h=c(50304);let i=new(g()).promises.Resolver;function j(){return new Promise(a=>{let b=new(e()).Socket,c=!1,d=d=>{if(!c){c=!0;try{b.destroy()}catch{}a(d)}};b.setTimeout(h.t1.timeoutMs),b.once("connect",()=>d(!0)),b.once("timeout",()=>d(!1)),b.once("error",()=>d(!1));try{b.connect(h.t1.port,h.t1.host)}catch{d(!1)}})}async function k(a,b){try{return await Promise.race([i.resolve4(a),new Promise((a,c)=>setTimeout(()=>c(Error("dns timeout")),b))]),!0}catch{return!1}}async function l(a){let b;if(!a)return!1;try{b=new URL(a).hostname}catch{return!1}if(!await k(b,h.Ux.dnsTimeoutMs))return!1;try{return(await fetch(`${a}/api/health`,{signal:AbortSignal.timeout(h.Ux.fetchTimeoutMs)})).ok}catch{return!1}}async function m(a,b={cancelled:!1}){let c=Date.now();for(;Date.now()-csetTimeout(a,h.Ux.intervalMs))}throw Error(`Health check timeout after ${h.Ux.timeoutMs}ms`)}i.setServers(["1.1.1.1","1.0.0.1","8.8.8.8"])}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/8193.js b/cli/app/.next/server/chunks/8193.js new file mode 100644 index 00000000000..d037986975a --- /dev/null +++ b/cli/app/.next/server/chunks/8193.js @@ -0,0 +1 @@ +exports.id=8193,exports.ids=[8193],exports.modules={24429:()=>{},29737:(a,b,c)=>{"use strict";c.d(b,{Xg:()=>r,vq:()=>l,fZ:()=>n,cY:()=>s,ux:()=>o,kt:()=>p,SM:()=>m});var d=c(62276);let e={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},f=(...a)=>a.map(a=>({...e[a],type:"tts"})),g=f("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),h=f("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),i=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(a=>({id:a,name:a,type:"tts"})),j={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":h,"tts-1":g,"tts-1-hd":g},allVoices:h},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":h,"openai/tts-1":g,"openai/tts-1-hd":g},allVoices:h},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},gemini:{models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-2.5-flash-preview-tts":i,"gemini-2.5-pro-preview-tts":i},allVoices:i}},k="-review",l={cc:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.3-image",name:"GPT 5.3 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.2-image",name:"GPT 5.2 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]}].flatMap(a=>"llm"!==(a.type||"llm")||a.id.endsWith(k)?[a]:[a,{...a,id:`${a.id}${k}`,name:`${a.name} Review`,upstreamModelId:a.upstreamModelId||a.id,quotaFamily:"review"}]),gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",type:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",type:"embedding"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"}],cu:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],"opencode-go":[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude"},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude"}],oc:[],cl:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",type:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",type:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",type:"embedding"},{id:"tts-1",name:"TTS-1",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"whisper-1",name:"Whisper 1",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-image-1",name:"GPT Image 1",type:"image",params:["n","size","quality","response_format"]},{id:"dall-e-3",name:"DALL-E 3",type:"image",params:["size","quality","style","response_format"]},{id:"dall-e-2",name:"DALL-E 2",type:"image",params:["n","size","response_format"]}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",type:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",type:"image",params:[]},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",type:"image",params:[]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",type:"image",params:[]},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",type:"stt",params:["language","prompt"]},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",type:"stt",params:["language","prompt"]}],openrouter:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",type:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",type:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",type:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",type:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",type:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",type:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",type:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",type:"image",params:["size","quality","style","response_format"]},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",type:"image",params:["n","size","quality","response_format"]},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",type:"image",params:["n","size"]},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",type:"image",params:["n","size"]}],glm:[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",type:"image",params:["n","size","response_format"]}],blackbox:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Legacy)"},{id:"claude-opus-4-6",name:"Claude Opus 4.6 (Legacy)"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-v3-671b",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"o1",name:"OpenAI o1"},{id:"o3-mini",name:"OpenAI o3-mini"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"}],"minimax-cn":[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"volcengine-ark":[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"},{id:"MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"Kimi-K2.5",name:"Kimi-K2.5"},{id:"GLM-4.7",name:"GLM-4.7"},{id:"DeepSeek-V3.2",name:"DeepSeek-V3.2"}],"cloudflare-ai":[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"}],byteplus:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],deepseek:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],commandcode:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"}],groq:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",type:"stt",params:["language","response_format","temperature","prompt"]}],xai:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}],mistral:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",type:"embedding"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",type:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",type:"embedding"}],fireworks:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",type:"embedding"}],cerebras:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}],nvidia:[{id:"minimaxai/minimax-m2.7",name:"Minimax M2.7"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",type:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",type:"stt",params:["language"]}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",type:"embedding"}],"voyage-ai":[{id:"voyage-3-large",name:"Voyage 3 Large",type:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",type:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",type:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",type:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",type:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",type:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",type:"embedding"}],siliconflow:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}],"xiaomi-mimo":[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}],hyperbolic:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}],"grok-web":[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],"perplexity-web":[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}],...function(){let a={};for(let[b,c]of Object.entries(j))c.models&&(a[`${b}-tts-models`]=c.models),c.allVoices&&(a[`${b}-tts-voices`]=c.allVoices),c.defaults&&(a[b]=c.defaults);return a["openai-tts-voices"]=j.openai.allVoices,a["openrouter-tts-voices"]=j.openrouter.allVoices,a}(),nanobanana:[{id:"nanobanana-flash",name:"NanoBanana Flash",type:"image",params:["n","size"]},{id:"nanobanana-pro",name:"NanoBanana Pro",type:"image",params:["n","size"]}],sdwebui:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",type:"image",params:["n","size"]},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",type:"image",params:["n","size"]}],comfyui:[{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"sdxl",name:"SDXL",type:"image",params:["n","size"]}],huggingface:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",type:"image",params:[]},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",type:"image",params:[]},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",type:"stt",params:["language"]},{id:"openai/whisper-small",name:"Whisper Small (HF)",type:"stt",params:["language"]}],deepgram:[{id:"nova-3",name:"Nova 3",type:"stt",params:["language"]},{id:"nova-2",name:"Nova 2",type:"stt",params:["language"]},{id:"whisper-large",name:"Whisper Large",type:"stt",params:["language"]}],assemblyai:[{id:"universal-3-pro",name:"Universal 3 Pro",type:"stt",params:["language"]},{id:"universal-2",name:"Universal 2",type:"stt",params:["language"]}],"fal-ai":[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",type:"image",params:["n","size"]},{id:"fal-ai/flux/dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",type:"image",params:["n","size"]},{id:"fal-ai/recraft-v3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",type:"image",params:["n","size","style"]},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",type:"image",params:["n","size"]}],"stability-ai":[{id:"stable-image-ultra",name:"Stable Image Ultra",type:"image",params:["size"]},{id:"stable-image-core",name:"Stable Image Core",type:"image",params:["size","style"]},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",type:"image",params:["size"]},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",type:"image",params:["size"]},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",type:"image",params:["size"]}],"black-forest-labs":[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",type:"image",params:["n","size"]},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",type:"image",params:["size"]},{id:"flux-pro",name:"FLUX Pro",type:"image",params:["n","size"]},{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",type:"image",params:["size"],capabilities:["edit"]},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",type:"image",params:["size"],capabilities:["edit"]}],recraft:[{id:"recraftv3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"recraftv2",name:"Recraft V2",type:"image",params:["n","size","style"]}],runwayml:[{id:"gen4_image",name:"Gen-4 Image",type:"image",params:["size"]},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",type:"image",params:["size"]},{id:"gen4_turbo",name:"Gen-4 Turbo",type:"video",params:[]},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",type:"video",params:[]}]};function m(a){return l[a]||[]}function n(a){let b=l[a];return b?.[0]?.id||null}function o(a,b){let c=l[a];if(!c)return null;let d=c.find(a=>a.id===b);return d?.targetFormat||null}function p(a,b){let c=l[a],d=c?.find(a=>a.id===b);return d?.upstreamModelId?d.upstreamModelId:"cx"===a&&"string"==typeof b&&b.endsWith(k)?b.slice(0,-k.length):b}let q={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",opencode:"oc",vertex:"vertex","vertex-partner":"vertex-partner"},r=Object.fromEntries(Object.keys(d.xq).map(a=>[a,q[a]||a]));function s(a,b){let c=l[a]?.find(a=>a.id===b);return c?.strip||[]}},62276:(a,b,c)=>{"use strict";c.d(b,{Ak:()=>h,xq:()=>g});var d=c(21820);let e={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},f="https://api.kimi.com/coding/v1/messages",g={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,d.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,d.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,d.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,d.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:process.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:process.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,d.platform)()}/${(0,d.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...e}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:f,format:"claude",headers:{...e}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...e}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...e}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:f,format:"claude",headers:{...e},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...e}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};function h(a){return(a?.providerSpecificData?.baseUrl?.trim()||"http://localhost:11434").replace(/\/$/,"")}},64749:()=>{}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/8202.js b/cli/app/.next/server/chunks/8202.js new file mode 100644 index 00000000000..c5855a573e6 --- /dev/null +++ b/cli/app/.next/server/chunks/8202.js @@ -0,0 +1,160 @@ +"use strict";exports.id=8202,exports.ids=[8202],exports.modules={11572:(a,b,c)=>{c.d(b,{A4:()=>g,c2:()=>f,tV:()=>e,v8:()=>i});var d=c(56790);function e(a,b=null){if(!a)return null;if(b===d.h.OLLAMA){let b=a.trim();if(b.startsWith("{"))try{return JSON.parse(b)}catch(a){}return null}if(100!==a.charCodeAt(0))return null;let c=a.slice(5).trim();if("[DONE]"===c)return{done:!0};try{return JSON.parse(c)}catch(a){return c.length>0&&c.length<1e3&&console.log(`[WARN] Failed to parse SSE line (${c.length} chars): ${c.substring(0,100)}...`),null}}function f(a,b){if(b===d.h.OPENAI&&a.choices?.[0]?.delta){let b=a.choices[0].delta;return b.content&&""!==b.content||b.reasoning_content&&""!==b.reasoning_content||b.tool_calls&&b.tool_calls.length>0||a.choices[0].finish_reason||b.role}if(b===d.h.CLAUDE){let b="content_block_delta"===a.type,c=a.delta?.text&&""!==a.delta.text,d=a.delta?.thinking&&""!==a.delta.thinking,e=a.delta?.partial_json&&""!==a.delta.partial_json;if(b&&!c&&!d&&!e)return!1}return!0}function g(a){if(a.id&&("chat"===a.id||"completion"===a.id||a.id.length<8)){let b=a.extend_fields?.requestId||a.extend_fields?.traceId||Date.now().toString(36);return a.id=`chatcmpl-${b}`,!0}return!1}function h(a){if(!a||"object"!=typeof a||Array.isArray(a))return a;let b=a;if("usage"in b){if(null===b.usage){let{usage:a,...c}=b;b=c}else if("object"==typeof b.usage&&null===b.usage.perf_metrics){let{perf_metrics:a,...c}=b.usage;b={...b,usage:c}}}if(b.response&&"object"==typeof b.response&&!Array.isArray(b.response)){let a=h(b.response);a!==b.response&&(b={...b,response:a})}return b}function i(a,b){if(null==a)return"data: null\n\n";if(a&&a.done)return"data: [DONE]\n\n";if(a&&a.event&&a.data){let b=h(a.data);return`event: ${a.event} +data: ${JSON.stringify(b)} + +`}return(a=h(a),b===d.h.CLAUDE&&a&&a.type)?`event: ${a.type} +data: ${JSON.stringify(a)} + +`:`data: ${JSON.stringify(a)} + +`}},21241:(a,b,c)=>{c.d(b,{j:()=>g});var d=c(24353),e=c(62276);let f=new Set(["big-pickle"]);class g extends d.H{constructor(){super("opencode",e.xq.opencode)}buildUrl(a){let b="https://opencode.ai";return f.has(a)?`${b}/zen/v1/messages`:`${b}/zen/v1/chat/completions`}buildHeaders(){return{"Content-Type":"application/json",Authorization:"Bearer public","x-opencode-client":"desktop",Accept:"text/event-stream"}}}},21303:(a,b,c)=>{c.d(b,{B:()=>j});var d=c(24353),e=c(62276),f=c(37873),g=c(41578),h=c(37973),i=c(23016);class j extends d.H{constructor(){super("kiro",e.xq.kiro)}buildHeaders(a,b=!0){let c={...this.config.headers,"Amz-Sdk-Request":"attempt=1; max=3","Amz-Sdk-Invocation-Id":(0,f.A)()};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c}transformRequest(a,b,c,d){return b}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let j=this.buildUrl(a,c,0),k=this.transformRequest(a,b,c,d),l={...i.cI,...this.config.retry},m=0;for(;;){let b=this.buildHeaders(d,c),n=await (0,h.proxyAwareFetch)(j,{method:"POST",headers:b,body:JSON.stringify(k),signal:e},g),{attempts:o,delayMs:p}=(0,i.DR)(l[n.status]);if(!n.ok&&o>0&&msetTimeout(a,p));continue}if(!n.ok)return{response:n,url:j,headers:b,transformedBody:k};return{response:this.transformEventStreamToSSE(n,a),url:j,headers:b,transformedBody:k}}}transformEventStreamToSSE(a,b){let c=new Uint8Array(0),d=0,e=`chatcmpl-${Date.now()}`,f=Math.floor(Date.now()/1e3),g={endDetected:!1,finishEmitted:!1,hasToolCalls:!1,toolCallIndex:0,seenToolIds:new Map},h=new TransformStream({async transform(a,h){let i=new Uint8Array(c.length+a.length);i.set(c),i.set(a,c.length),c=i;let j=0;for(;c.length>=16&&j<1e3;){j++;let a=new DataView(c.buffer,c.byteOffset).getUint32(0,!1);if(a<16||a>c.length||c.lengtha.length)break;let e=new TextDecoder().decode(a.slice(d,d+b)),f=a[d+=b];if(d++,7===f){let b=a[d]<<8|a[d+1];if((d+=2)+b>a.length)break;let f=new TextDecoder().decode(a.slice(d,d+b));d+=b,c[e]=f}else break}let f=12+b,g=a.length-4,h=null;if(g>f){let b=new TextDecoder().decode(a.slice(f,g));if(!b||!b.trim())return{headers:c,payload:null};try{h=JSON.parse(b)}catch(a){console.warn(`[Kiro] Failed to parse payload: ${a.message} | payload: ${b.substring(0,100)}`),h={raw:b}}}return{headers:c,payload:h}}catch{return null}}(i);if(!k)continue;let l=k.headers[":event-type"]||"";if(g.totalContentLength||(g.totalContentLength=0),g.contextUsagePercentage||(g.contextUsagePercentage=0),"assistantResponseEvent"===l&&k.payload?.content){let a=k.payload.content;g.totalContentLength+=a.length;let c={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:0===d?{role:"assistant",content:a}:{content:a},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)} + +`))}if("codeEvent"===l&&k.payload?.content){let a={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{content:k.payload.content},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(a)} + +`))}if("toolUseEvent"===l&&k.payload){g.hasToolCalls=!0;let a=k.payload;for(let c of Array.isArray(a)?a:[a]){let a,i=c.toolUseId||`call_${Date.now()}`,j=c.name||"",k=c.input;if(g.seenToolIds.has(i))a=g.seenToolIds.get(i);else{a=g.toolCallIndex++,g.seenToolIds.set(i,a);let c={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{...0===d?{role:"assistant"}:{},tool_calls:[{index:a,id:i,type:"function",function:{name:j,arguments:""}}]},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)} + +`))}if(void 0!==k){let c;if("string"==typeof k)c=k;else{if("object"!=typeof k)continue;c=JSON.stringify(k)}let g={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{tool_calls:[{index:a,function:{arguments:c}}]},finish_reason:null}]};d++,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(g)} + +`))}}}if("messageStopEvent"===l){let a={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{},finish_reason:g.hasToolCalls?"tool_calls":"stop"}]};g.finishEmitted=!0,h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(a)} + +`))}if("contextUsageEvent"===l&&k.payload?.contextUsagePercentage&&(g.contextUsagePercentage=k.payload.contextUsagePercentage,g.hasContextUsage=!0),"meteringEvent"===l&&(g.hasMeteringEvent=!0),"metricsEvent"===l){let a=k.payload?.metricsEvent||k.payload;if(a&&"object"==typeof a){let b=a.inputTokens||0,c=a.outputTokens||0;(b>0||c>0)&&(g.usage={prompt_tokens:b,completion_tokens:c,total_tokens:b+c})}}if(g.hasMeteringEvent&&g.hasContextUsage&&!g.finishEmitted){if(g.finishEmitted=!0,!g.usage){let a=g.totalContentLength>0?Math.max(1,Math.floor(g.totalContentLength/4)):0,b=g.contextUsagePercentage>0?Math.floor(2e5*g.contextUsagePercentage/100):0;g.usage={prompt_tokens:b,completion_tokens:a,total_tokens:b+a}}let a={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{},finish_reason:g.hasToolCalls?"tool_calls":"stop"}]};g.usage&&(a.usage=g.usage),h.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(a)} + +`))}}j>=1e3&&console.warn("[Kiro] Max iterations reached in event parsing")},flush(a){if(!g.finishEmitted){g.finishEmitted=!0;let c={id:e,object:"chat.completion.chunk",created:f,model:b,choices:[{index:0,delta:{},finish_reason:g.hasToolCalls?"tool_calls":"stop"}]};a.enqueue(new TextEncoder().encode(`data: ${JSON.stringify(c)} + +`))}a.enqueue(new TextEncoder().encode("data: [DONE]\n\n"))}});return a.body?new Response(a.body.pipeThrough(h),{status:a.status,statusText:a.statusText,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}}):new Response("data: [DONE]\n\n",{status:a.status,headers:{"Content-Type":"text/event-stream"}})}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;try{return await (0,g.Ql)(a.refreshToken,a.providerSpecificData,b,c)}catch(a){return b?.error?.("TOKEN",`Kiro refresh error: ${a.message}`),null}}}},23082:(a,b,c)=>{c.d(b,{w:()=>j});var d=c(24353),e=c(62276),f=c(41578),g=c(37973);let h=new Map;async function i(a){if(h.has(a))return h.get(a);let b=await fetch(`https://aiplatform.googleapis.com/v1/publishers/google/models/__probe__:generateContent?key=${a}`,{method:"POST",headers:{"Content-Type":"application/json"},body:"{}"}),c=await b.json().catch(()=>null),d=(c?.[0]?.error?.message||c?.error?.message||"").match(/projects\/([^/]+)\//),e=d?.[1]||null;return e&&h.set(a,e),e}class j extends d.H{constructor(a="vertex"){super(a,e.xq[a]||{})}buildUrl(a,b,c=0,d=null){let e=(0,f.Sc)(d?.apiKey),g=e?null:d?.apiKey,h=e?.project_id||d?.providerSpecificData?.projectId;if("vertex-partner"===this.provider){if(!h)throw Error("Vertex partner models require a project_id. Add it in providerSpecificData or use Service Account JSON.");let a=`https://aiplatform.googleapis.com/v1/projects/${h}/locations/global/endpoints/openapi/chat/completions`;return g?`${a}?key=${g}`:a}let i=b?"streamGenerateContent":"generateContent";if(e){let c=d?.providerSpecificData?.location||"us-central1",e=`https://aiplatform.googleapis.com/v1/projects/${h}/locations/${c}/publishers/google/models/${a}:${i}`;return b&&(e+="?alt=sse"),e}let j=`https://aiplatform.googleapis.com/v1/publishers/google/models/${a}:${i}`;return b&&(j+="?alt=sse"),g&&(j+=b?`&key=${g}`:`?key=${g}`),j}buildHeaders(a,b=!0){let c={"Content-Type":"application/json"};return a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b){let c=(0,f.Sc)(a?.apiKey);if(!c)return null;let d=await (0,f.pb)(c,b);return d?{accessToken:d.accessToken,expiresAt:d.expiresAt}:null}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:h,proxyOptions:j=null}){let k=(0,f.Sc)(d?.apiKey);if(k){let a=await (0,f.pb)(k,h);if(!a?.accessToken)throw Error("Vertex: failed to mint access token from Service Account JSON");d.accessToken=a.accessToken}if("vertex-partner"===this.provider&&!k&&!d?.providerSpecificData?.projectId){let a=await i(d.apiKey);if(!a)throw Error("Vertex: could not resolve project_id from API key. Please add it manually in provider settings.");h?.debug?.("VERTEX",`Resolved project_id: ${a}`),d.providerSpecificData={...d.providerSpecificData,projectId:a}}let l=this.buildUrl(a,c,0,d),m=this.buildHeaders(d,c),n=this.transformRequest(a,b,c,d);return{response:await (0,g.proxyAwareFetch)(l,{method:"POST",headers:m,body:JSON.stringify(n),signal:e},j),url:l,headers:m,transformedBody:n}}}},23568:(a,b,c)=>{c.d(b,{$:()=>n});var d=c(24353),e=c(62276);let f=e.xq["grok-web"].baseUrl,g={"grok-3":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3",isThinking:!1},"grok-3-mini":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_MINI_THINKING",isThinking:!0},"grok-3-thinking":{grokModel:"grok-3",modelMode:"MODEL_MODE_GROK_3_THINKING",isThinking:!0},"grok-4":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4",isThinking:!1},"grok-4-mini":{grokModel:"grok-4-mini",modelMode:"MODEL_MODE_GROK_4_MINI_THINKING",isThinking:!0},"grok-4-thinking":{grokModel:"grok-4",modelMode:"MODEL_MODE_GROK_4_THINKING",isThinking:!0},"grok-4-heavy":{grokModel:"grok-4",modelMode:"MODEL_MODE_HEAVY",isThinking:!0},"grok-4.1-mini":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_MINI_THINKING",isThinking:!0},"grok-4.1-fast":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_FAST",isThinking:!1},"grok-4.1-expert":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_EXPERT",isThinking:!0},"grok-4.1-thinking":{grokModel:"grok-4-1-thinking-1129",modelMode:"MODEL_MODE_GROK_4_1_THINKING",isThinking:!0},"grok-4.2":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1},"grok-4.20-beta":{grokModel:"grok-420",modelMode:"MODEL_MODE_GROK_420",isThinking:!1}};function h(a,b=!1){let c=b?"abcdefghijklmnopqrstuvwxyz0123456789":"abcdefghijklmnopqrstuvwxyz",d="";for(let b=0;ba.toString(16).padStart(2,"0")).join("")}async function*j(a,b){let c=a.getReader(),d=new TextDecoder,e="";try{for(;;){if(b?.aborted)return;let{value:a,done:f}=await c.read();if(f)break;for(e+=d.decode(a,{stream:!0});;){let a=e.indexOf("\n");if(a<0)break;let b=e.slice(0,a).trim();if(e=e.slice(a+1),b)try{yield JSON.parse(b)}catch{}}}let a=(e+=d.decode()).trim();if(a)try{yield JSON.parse(a)}catch{}}finally{c.releaseLock()}}async function*k(a,b,c){let d="",e="",f=!1;for await(let g of j(a,c)){if(g.error)return void(yield{error:g.error.message||`Grok error: ${g.error.code}`,done:!0});let a=g.result?.response;if(a){if(a.llmInfo?.modelHash&&!d&&(d=a.llmInfo.modelHash),a.responseId&&(e=a.responseId),a.modelResponse){let c=a.modelResponse;f&&b&&(c.message&&(yield{thinking:c.message}),f=!1),c.message&&(yield{fullMessage:c.message,fingerprint:d,responseId:e}),c.metadata?.llm_info?.modelHash&&(d=c.metadata.llm_info.modelHash);continue}null!=a.token&&(yield{delta:a.token,fingerprint:d,responseId:e})}}yield{done:!0,fingerprint:d,responseId:e}}function l(a){return`data: ${JSON.stringify(a)} + +`}async function m(a,b,c,d,e,f){let g="",h="",i=[];for await(let b of k(a,e,f)){if(b.fingerprint&&(h=b.fingerprint),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"GROK_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){i.push(b.thinking);continue}if(b.done)break;b.fullMessage?g=b.fullMessage:b.delta&&(g+=b.delta)}let j={role:"assistant",content:g};i.length>0&&(j.reasoning_content=i.join("\n"));let l=Math.ceil(g.length/4),m=Math.ceil(g.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:h||null,choices:[{index:0,message:j,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:l,completion_tokens:m,total_tokens:l+m}}),{status:200,headers:{"Content-Type":"application/json"}})}class n extends d.H{constructor(){super("grok-web",e.xq["grok-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:j}){let n,o,p=b?.messages;if(!p||!Array.isArray(p)||0===p.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:b};let q=g[a];q||j?.info?.("GROK-WEB",`Unmapped model ${a}, defaulting to grok-4.1-fast`);let{grokModel:r,modelMode:s,isThinking:t}=q||g["grok-4.1-fast"],u=function(a){let b=[];for(let c of a){let a=String(c.role||"user");"developer"===a&&(a="system");let d="";"string"==typeof c.content?d=c.content:Array.isArray(c.content)&&(d=c.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),d.trim()&&b.push({role:a,text:d})}let c=-1;for(let a=b.length-1;a>=0;a--)if("user"===b[a].role){c=a;break}let d=[];for(let a=0;aMath.random()?`e:TypeError: Cannot read properties of null (reading 'children["${h(5,!0)}"]')`:`e:TypeError: Cannot read properties of undefined (reading '${h(10)}')`),"x-xai-request-id":crypto.randomUUID(),traceparent:`00-${w}-${x}-00`};if(d.apiKey){let a=d.apiKey;a.startsWith("sso=")&&(a=a.slice(4)),y.Cookie=`sso=${a}`}j?.info?.("GROK-WEB",`Query to ${a} (grok=${r}, mode=${s}), len=${u.length}`);try{n=await fetch(f,{method:"POST",headers:y,body:JSON.stringify(v),signal:e})}catch(a){return j?.error?.("GROK-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Grok connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:f,headers:y,transformedBody:v}}if(!n.ok){let a=n.status,b=`Grok returned HTTP ${a}`;return 401===a||403===a?b="Grok auth failed — SSO cookie may be expired. Re-paste your sso cookie value from grok.com.":429===a&&(b="Grok rate limited. Wait a moment and retry, or rotate cookies."),j?.warn?.("GROK-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:f,headers:y,transformedBody:v}}if(!n.body)return{response:new Response(JSON.stringify({error:{message:"Grok returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:f,headers:y,transformedBody:v};let z=`chatcmpl-grok-${crypto.randomUUID().slice(0,12)}`,A=Math.floor(Date.now()/1e3);if(c){var B;let b;o=new Response((B=n.body,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(l({id:z,object:"chat.completion.chunk",created:A,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="";for await(let f of k(B,t,e)){if(f.fingerprint&&(d=f.fingerprint),f.error){c.enqueue(b.encode(l({id:z,object:"chat.completion.chunk",created:A,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:`[Error: ${f.error}]`},finish_reason:null,logprobs:null}]})));break}if(f.thinking){c.enqueue(b.encode(l({id:z,object:"chat.completion.chunk",created:A,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{reasoning_content:f.thinking},finish_reason:null,logprobs:null}]})));continue}if(f.done)break;f.delta&&c.enqueue(b.encode(l({id:z,object:"chat.completion.chunk",created:A,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{content:f.delta},finish_reason:null,logprobs:null}]})))}c.enqueue(b.encode(l({id:z,object:"chat.completion.chunk",created:A,model:a,system_fingerprint:d||null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}catch(d){c.enqueue(b.encode(l({id:z,object:"chat.completion.chunk",created:A,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{c.close()}}})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else o=await m(n.body,a,z,A,t,e);return{response:o,url:f,headers:y,transformedBody:v}}}},27381:(a,b,c)=>{c.d(b,{P:()=>e});var d=c(83543);class e extends d.L{constructor(){super("azure")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.azureEndpoint||process.env.AZURE_ENDPOINT||"https://api.openai.com",f=d?.providerSpecificData?.apiVersion||process.env.AZURE_API_VERSION||"2024-10-01-preview",g=d?.providerSpecificData?.deployment||a||process.env.AZURE_DEPLOYMENT||"gpt-4",h=e.replace(/\/$/,"");return`${h}/openai/deployments/${g}/chat/completions?api-version=${f}`}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers},d=a?.apiKey||a?.accessToken||process.env.OPENAI_API_KEY;d&&(c["api-key"]=d);let e=a?.providerSpecificData?.organization||process.env.AZURE_ORGANIZATION;return e&&(c["OpenAI-Organization"]=e),b&&(c.Accept="text/event-stream"),c}transformRequest(a,b,c,d){return b}}},38461:(a,b,c)=>{c.d(b,{r:()=>h});var d=c(55511),e=c.n(d),f=c(24353),g=c(62276);class h extends f.H{constructor(){super("iflow",g.xq.iflow)}generateUUID(){return e().randomUUID()}createIFlowSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${this.generateUUID()}`,d=Date.now(),e=this.config.headers["User-Agent"]||"iFlow-Cli",f=a.apiKey||a.accessToken||"",g=this.createIFlowSignature(e,c,d,f),h={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-iflow-timestamp":d.toString(),"x-iflow-signature":g};return a.apiKey&&(h.Authorization=`Bearer ${a.apiKey}`),b&&(h.Accept="text/event-stream"),h}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},42506:(a,b,c)=>{c.d(b,{b:()=>g,n:()=>f});let d=["user-agent","anthropic-beta","anthropic-version","anthropic-dangerous-direct-browser-access","x-app","x-stainless-helper-method","x-stainless-retry-count","x-stainless-runtime-version","x-stainless-package-version","x-stainless-runtime","x-stainless-lang","x-stainless-arch","x-stainless-os","x-stainless-timeout","x-claude-code-session-id","package-version","runtime-version","os","arch"],e=null;function f(a){let b,c;if(!a||"object"!=typeof a||(b=(a["user-agent"]||"").toLowerCase(),c=(a["x-app"]||"").toLowerCase(),!(b.includes("claude-cli")||b.includes("claude-code"))&&"cli"!==c))return;let f={};for(let b of d)void 0!==a[b]&&null!==a[b]&&(f[b]=a[b]);Object.keys(f).length>0&&(e=f,console.log(`[ClaudeHeaders] Cached ${Object.keys(f).length} identity headers from Claude Code client`))}function g(){return e}},48788:(a,b,c)=>{c.d(b,{CP:()=>q,yI:()=>n});var d=c(37873),e=c(74075),f=c.n(e);let g="1"===process.env.CURSOR_PROTOBUF_DEBUG,h=(a,...b)=>g&&console.log(`[PROTOBUF:${a}]`,...b);new TextDecoder;let i="1.1.3",j=new Set([1,2,3,9,10,11,27,1,25]);function k(a){let b=[];for(;a>=128;)b.push(127&a|128),a>>>=7;return b.push(127&a),new Uint8Array(b)}function l(a,b,c){let d=k(a<<3|b);if(0===b)return m(d,k(c));if(2===b){let a="string"==typeof c?new TextEncoder().encode(c):c instanceof Uint8Array?c:Buffer.isBuffer(c)?new Uint8Array(c):new Uint8Array(0);return m(d,k(a.length),a)}return new Uint8Array(0)}function m(...a){let b=new Uint8Array(a.reduce((a,b)=>a+b.length,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}function n(a,b,c=[],e=null,g=!1){h("BODY",`Generating: ${a.length} msgs, model=${b}, tools=${c.length}, reasoning=${e||"none"}, forceAgentMode=${g}`);let i=function(a,b,c=[],e=null,f=!1){return l(1,2,function(a,b,c=[],e=null,f=!1){let g,i=c?.length>0,j=i||f,n=[],o=[],p=[];for(let b=0;b0,e=Array.isArray(c?.tool_results)&&c.tool_results.length>0;if(c?.role==="assistant"&&d&&e){h("ENCODE",`normalizing mixed assistant tool payload at msg[${b}] (calls=${c.tool_calls.length}, results=${c.tool_results.length})`),p.push({...c,tool_results:[]});let d=a[b+1],e=d?.role==="assistant"&&Array.isArray(d?.tool_results)&&d.tool_results.length>0,f=new Set(c.tool_results.map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),g=new Set((d?.tool_results||[]).map(a=>a?.tool_call_id).filter(a=>"string"==typeof a)),i=f.size>0&&f.size===g.size;if(i){for(let a of f)if(!g.has(a)){i=!1;break}}e&&i||p.push({role:"assistant",content:"",tool_results:c.tool_results});continue}p.push(c)}for(let a=0;al(1,2,function(a,b,c,d=null,e=!1,f=!1,g=[],h=null){let i=g.length>0;return m(l(1,2,a),l(2,0,b),l(13,2,c),...h?[l(32,2,h)]:[],...i?g.map(a=>l(18,2,function(a){var b;let c,d,e=function(a){let b="string"==typeof a&&a.length>0?a:"tool";if(b.startsWith("mcp__")){let a=b.slice(5),c=a.indexOf("__");if(c>=0){let b=a.slice(0,c)||"custom",d=a.slice(c+2)||"tool";return`mcp_${b}_${d}`}return`mcp_custom_${a||"tool"}`}return b.startsWith("mcp_")?b:`mcp_custom_${b}`}(a.tool_name||a.name||""),f=a.raw_args||"{}",g=a.result_content||a.result||"",{toolCallId:h,modelCallId:i}=(b=a.tool_call_id||"",c="\nmc_",(d=b.indexOf(c))>=0?{toolCallId:b.slice(0,d),modelCallId:b.slice(d+c.length)}:{toolCallId:b,modelCallId:null}),j=a.tool_index||a.index||1,{serverName:k,selectedTool:n}=function(a){if("string"!=typeof a||!a.startsWith("mcp_"))return{serverName:"custom",selectedTool:a||"tool"};let b=a.slice(4),c=b.indexOf("_");return c<0?{serverName:"custom",selectedTool:b||"tool"}:{serverName:b.slice(0,c)||"custom",selectedTool:b.slice(c+1)||"tool"}}(e);return m(l(1,2,h),l(2,2,e),l(3,0,j>0?j:1),...i?[l(12,2,i)]:[],l(5,2,f),l(8,2,function(a,b,c,d,e=1){return m(l(1,0,19),l(28,2,m(l(1,2,c),l(2,2,d))),l(35,2,a),...b?[l(48,2,b)]:[],l(49,0,e>0?e:1))}(h,i,n,g,j)),l(11,2,function(a,b,c,d,e,f,g=1){let h;return m(l(1,0,19),l(27,2,(h=m(l(1,2,c),l(3,2,e),l(4,2,d)),l(1,2,h))),l(3,2,a),l(9,2,b),l(10,2,e),l(48,0,g>0?g:1),...f?[l(49,2,f)]:[])}(h,e,n,k,f,i,j)))}(a))):[],l(29,0,+!!f),l(47,0,f?2:1),...e&&f?[l(51,2,k(1))]:[])}(a.content,a.role,a.messageId,null,a.isLast,a.hasTools,a.toolResults))),l(2,0,1),l(3,2,new Uint8Array(0)),l(4,0,1),l(5,2,m(l(1,2,b),l(4,2,new Uint8Array(0)))),l(8,2,""),l(13,0,1),l(15,2,(g=m(l(1,2,new Uint8Array(0)),l(2,2,new Uint8Array(0))),m(l(1,2,"cursor\\aisettings"),l(3,2,new Uint8Array(0)),l(6,2,g),l(8,0,1),l(9,0,1)))),l(19,0,1),l(23,2,(0,d.A)()),l(26,2,m(l(1,2,process.platform||"linux"),l(2,2,process.arch||"x64"),l(3,2,process.version||"v20.0.0"),l(4,2,process.cwd?.()||"/"),l(5,2,new Date().toISOString()))),l(27,0,+!!j),...j?[l(29,2,k(1))]:[],...o.map(a=>l(30,2,function(a,b,c=null){return m(l(1,2,a),...c?[l(2,2,c)]:[],l(3,0,b))}(a.messageId,a.role))),...c?.length>0?c.map(a=>{let b,c,d;return l(34,2,(b=a.function?.name||a.name||"",c=a.function?.description||a.description||"",d=a.function?.parameters||a.input_schema||{},m(...b?[l(1,2,b)]:[],...c?[l(2,2,c)]:[],...Object.keys(d).length>0?[l(3,2,JSON.stringify(d))]:[],l(4,2,"custom"))))}):[],l(35,0,0),l(38,0,0),l(46,0,j?2:1),l(47,2,""),l(48,0,+!j),l(49,0,q),l(51,0,0),l(53,0,1),l(54,2,j?"Agent":"Ask"))}(a,b,c,e,f))}(a,b,c,e,g),j=function(a,b=!1){let c=a,d=0;b&&(c=new Uint8Array(f().gzipSync(Buffer.from(a))),d=1);let e=new Uint8Array(5+c.length);return e[0]=d,e[1]=c.length>>24&255,e[2]=c.length>>16&255,e[3]=c.length>>8&255,e[4]=255&c.length,e.set(c,5),e}(i,!1);return h("BODY",`Protobuf=${i.length}B, Framed=${j.length}B`),j}function o(a,b){let c=0,d=0,e=b;for(;e=a.length)return[null,null,null,b];let[d,e]=o(a,b),f=7&d,g=e;if(0===f)[c,g]=o(a,g);else if(2===f){let[b,d]=o(a,g);c=a.slice(d,d+b),g=d+b}else 1===f?(c=a.slice(g,g+8),g+=8):5===f?(c=a.slice(g,g+4),g+=4):c=null;return[d>>3,f,c,g]}(a,c);if(null===d)break;b.has(d)||b.set(d,[]),b.get(d).push({wireType:e,value:f}),c=g}return b}function q(a){try{let b=p(a);for(let a of b.keys())j.has(a)||h("SCHEMA",`Unknown response field #${a} detected. Schema v${i} may be outdated.`);if(b.has(1)){let a=function(a){let b=p(a),c="",d="",e="",f=!1;if(b.has(3)&&(c=new TextDecoder().decode(b.get(3)[0].value).split("\n")[0]),b.has(9)&&(d=new TextDecoder().decode(b.get(9)[0].value)),b.has(11)&&(f=0!==b.get(11)[0].value),b.has(27))try{let a=p(b.get(27)[0].value);if(a.has(1)){let b=p(a.get(1)[0].value);b.has(1)&&(d=new TextDecoder().decode(b.get(1)[0].value)),b.has(3)&&(e=new TextDecoder().decode(b.get(3)[0].value))}}catch(a){h("EXTRACT",`MCP parse error: ${a.message}`)}return(!e&&b.has(10)&&(e=new TextDecoder().decode(b.get(10)[0].value)),c&&d)?{id:c,type:"function",function:{name:d,arguments:e||"{}"},isLast:f}:null}(b.get(1)[0].value);if(a)return h("EXTRACT",`Tool call: ${a.function.name}`),{text:null,error:null,toolCall:a,thinking:null}}if(b.has(2)){let{text:a,thinking:c}=function(a){let b=p(a),c=null,d=null;if(b.has(1)&&(c=new TextDecoder().decode(b.get(1)[0].value)),b.has(25))try{let a=p(b.get(25)[0].value);a.has(1)&&(d=new TextDecoder().decode(a.get(1)[0].value))}catch(a){h("EXTRACT",`Thinking parse error: ${a.message}`)}return{text:c,thinking:d}}(b.get(2)[0].value);if(a||c)return{text:a,error:null,toolCall:null,thinking:c}}return{text:null,error:null,toolCall:null,thinking:null}}catch(b){return h("EXTRACT",`Decode failed (schema v${i}): ${b.message}`),{text:null,error:null,toolCall:null,thinking:null,raw:Buffer.from(a).toString("base64"),decodeError:b.message}}}},53057:(a,b,c)=>{c.d(b,{Xh:()=>e,js:()=>f});let d={cc:"claude",cx:"codex",gc:"gemini-cli",qw:"qwen",if:"iflow",ag:"antigravity",gh:"github",kr:"kiro",cu:"cursor",kc:"kilocode",kmc:"kimi-coding",cl:"cline",oc:"opencode",ocg:"opencode-go",el:"elevenlabs",openai:"openai",anthropic:"anthropic",gemini:"gemini",openrouter:"openrouter",glm:"glm",kimi:"kimi",minimax:"minimax","minimax-cn":"minimax-cn",ds:"deepseek",deepseek:"deepseek",cmc:"commandcode",commandcode:"commandcode",groq:"groq",xai:"xai",mistral:"mistral",pplx:"perplexity",perplexity:"perplexity",together:"together",fireworks:"fireworks",cerebras:"cerebras",cohere:"cohere",nvidia:"nvidia",nebius:"nebius",siliconflow:"siliconflow",hyp:"hyperbolic",hyperbolic:"hyperbolic",dg:"deepgram",deepgram:"deepgram",aai:"assemblyai",assemblyai:"assemblyai",nb:"nanobanana",nanobanana:"nanobanana",ch:"chutes",chutes:"chutes",ark:"volcengine-ark","volcengine-ark":"volcengine-ark",byteplus:"byteplus",bpm:"byteplus",cursor:"cursor",vx:"vertex",vertex:"vertex",vxp:"vertex-partner","vertex-partner":"vertex-partner",gw:"grok-web","grok-web":"grok-web",pw:"perplexity-web","perplexity-web":"perplexity-web",mimo:"xiaomi-mimo","xiaomi-mimo":"xiaomi-mimo",cf:"cloudflare-ai","cloudflare-ai":"cloudflare-ai",fal:"fal-ai","fal-ai":"fal-ai",stability:"stability-ai","stability-ai":"stability-ai",bfl:"black-forest-labs","black-forest-labs":"black-forest-labs",recraft:"recraft",topaz:"topaz",runway:"runwayml",runwayml:"runwayml",jina:"jina-ai","jina-ai":"jina-ai",polly:"aws-polly","aws-polly":"aws-polly"};function e(a){if(!a)return{provider:null,model:null,isAlias:!1,providerAlias:null};if(a.includes("/")){let b=a.indexOf("/"),c=a.slice(0,b),e=a.slice(b+1);return{provider:d[c]||c,model:e,isAlias:!1,providerAlias:c}}return{provider:null,model:a,isAlias:!0,providerAlias:null}}async function f(a,b){let c=e(a);if(!c.isAlias)return{provider:c.provider,model:c.model};let f="function"==typeof b?await b():b,g=function(a,b){var c,e;if(!b)return null;let f=b[a];if(!f)return null;if("string"==typeof f&&f.includes("/")){let a=f.indexOf("/");return{provider:d[c=f.slice(0,a)]||c,model:f.slice(a+1)}}return"object"==typeof f&&f.provider&&f.model?{provider:d[e=f.provider]||e,model:f.model}:null}(c.model,f);return g||{provider:function(a){if(!a)return"openai";let b=a.toLowerCase();return b.startsWith("claude-")?"anthropic":b.startsWith("gemini-")?"gemini":b.startsWith("gpt-")||b.startsWith("o1")||b.startsWith("o3")||b.startsWith("o4")?"openai":b.startsWith("deepseek-")?"openrouter":"openai"}(c.model),model:c.model}}},65640:(a,b,c)=>{c.d(b,{D:()=>f});var d=c(83543),e=c(62276);class f extends d.L{constructor(){super("ollama-local")}buildUrl(a,b,c=0,d=null){return`${(0,e.Ak)(d)}/api/chat`}}},65787:(a,b,c)=>{c.d(b,{x:()=>o});var d=c(24353),e=c(62276),f=c(43528),g=c(23016),h=c(77021),i=c(1950),j=c(26263),k=c(11572),l=c(37973),m=c(55511),n=c.n(m);class o extends d.H{constructor(){super("github",e.xq.github),this.knownCodexModels=new Set}buildUrl(a,b,c=0){return this.config.baseUrl}buildHeaders(a,b=!0){let c=a.copilotToken||a.accessToken;return{Authorization:`Bearer ${c}`,"Content-Type":"application/json","copilot-integration-id":"vscode-chat","editor-version":`vscode/${f.x0.VSCODE_VERSION}`,"editor-plugin-version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,"user-agent":f.x0.USER_AGENT,"openai-intent":"conversation-panel","x-github-api-version":f.x0.API_VERSION,"x-request-id":n().randomUUID?.()||`${Date.now()}-${Math.random().toString(36).slice(2)}`,"x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:b?"text/event-stream":"application/json"}}sanitizeMessagesForChatCompletions(a){if(!a?.messages)return a;let b={...a};if(a.response_format&&a.model?.includes("claude")){let b=a.response_format,c="";if("json_schema"===b.type&&b.json_schema?.schema?c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks. Never wrap JSON in triple backticks. Output ONLY the raw JSON object.":"json_object"===b.type&&(c="CRITICAL: You must ONLY output raw JSON. Never use markdown code blocks. Never use backticks."),c){let b=a.messages.findIndex(a=>"system"===a.role);b>=0?a.messages[b].content=c+"\n\n"+a.messages[b].content:a.messages.unshift({role:"system",content:c});let d=a.messages.map((a,b)=>"user"===a.role?b:-1).filter(a=>a>=0).pop();if(d>=0){let b=a.messages[d],c="string"==typeof b.content?b.content:JSON.stringify(b.content);b.content="Respond with ONLY raw JSON (no markdown, no backticks, no code blocks): "+c}}}return b.messages=a.messages.map(a=>{if(!a.content||"string"==typeof a.content)return a;if(Array.isArray(a.content)){let b=a.content.map(a=>{if("text"===a.type||"image_url"===a.type)return a;let b=a.text||a.content||JSON.stringify(a);return{type:"text",text:"string"==typeof b?b:JSON.stringify(b)}}).filter(a=>""!==a.text);return{...a,content:b.length>0?b:null}}return a}),b}requiresMaxCompletionTokens(a){return/gpt-5|o[134]-/i.test(a)}supportsTemperature(a){return!/gpt-5\.4/i.test(a)}supportsThinking(a){return!/claude/i.test(a)}supportsReasoningEffort(a){let b=a.toLowerCase();return!!(/claude.*opus.*4\.6/i.test(b)||/claude.*sonnet.*4\.6/i.test(b))||!/claude/i.test(a)}transformRequest(a,b,c,d){let e={...b};return this.requiresMaxCompletionTokens(a)&&void 0!==e.max_tokens&&(e.max_completion_tokens=e.max_tokens,delete e.max_tokens),this.supportsTemperature(a)||void 0===e.temperature||delete e.temperature,this.supportsThinking(a)||delete e.thinking,"none"===e.reasoning_effort&&delete e.reasoning_effort,this.supportsReasoningEffort(a)||void 0===e.reasoning_effort||delete e.reasoning_effort,e}async execute(a){let{model:b,log:c}=a;if(this.knownCodexModels.has(b))return c?.debug("GITHUB",`Using cached /responses route for ${b}`),this.executeWithResponsesEndpoint(a);let d={...a,body:this.sanitizeMessagesForChatCompletions(a.body)},e=await super.execute({...d,proxyOptions:a.proxyOptions||null});if(e.response.status===g.gx.BAD_REQUEST){let d=await e.response.clone().text();if(d.includes("not accessible via the /chat/completions endpoint")||d.includes("The requested model is not supported"))return c?.warn("GITHUB",`Model ${b} requires /responses. Switching...`),this.knownCodexModels.add(b),this.executeWithResponsesEndpoint(a)}return e}async executeWithResponsesEndpoint({model:a,body:b,stream:c,credentials:d,signal:e,log:f,proxyOptions:g=null}){let m=this.config.responsesUrl,n=this.buildHeaders(d,c),o=(0,h.openaiToOpenAIResponsesRequest)(a,b,c,d);f?.debug("GITHUB","Sending translated request to /responses");let p=await (0,l.proxyAwareFetch)(m,{method:"POST",headers:n,body:JSON.stringify(o),signal:e},g);if(!p.ok)return{response:p,url:m,headers:n,transformedBody:o};let q=(0,j.Ws)("openai-responses");q.model=a;let r=new TextDecoder,s="",t=new TransformStream({async transform(a,b){let d=(s+=r.decode(a,{stream:!0})).split("\n");for(let a of(s=d.pop()||"",d)){let d=a.trim();if(!d)continue;let e=(0,k.tV)(d);if(!e)continue;if(e.done&&!0===c){b.enqueue(new TextEncoder().encode("data: [DONE]\n\n"));continue}let f=(0,i.openaiResponsesToOpenAIResponse)(e,q);if(f){let a=(0,k.v8)(f,"openai");b.enqueue(new TextEncoder().encode(a))}}},flush(a){if(s.trim()){let b=(0,k.tV)(s.trim());if(b&&!b.done){let c=(0,i.openaiResponsesToOpenAIResponse)(b,q);c&&a.enqueue(new TextEncoder().encode((0,k.v8)(c,"openai")))}}}});return p.body?{response:new Response(p.body.pipeThrough(t),{status:p.status,statusText:p.statusText,headers:p.headers}),url:m,headers:n,transformedBody:o}:{response:new Response("",{status:p.status,headers:p.headers}),url:m,headers:n,transformedBody:o}}async refreshCopilotToken(a,b,c=null){try{let d=await (0,l.proxyAwareFetch)("https://api.github.com/copilot_internal/v2/token",{headers:{Authorization:`token ${a}`,"User-Agent":f.x0.USER_AGENT,"Editor-Version":`vscode/${f.x0.VSCODE_VERSION}`,"Editor-Plugin-Version":`copilot-chat/${f.x0.COPILOT_CHAT_VERSION}`,Accept:"application/json","x-github-api-version":f.x0.API_VERSION}},c);if(!d.ok){let a=await d.text();return b?.error?.("TOKEN",`Copilot token refresh failed: ${d.status} ${a}`),null}let e=await d.json();return b?.info?.("TOKEN","Copilot token refreshed"),{token:e.token,expiresAt:e.expires_at}}catch(a){return b?.error?.("TOKEN",`Copilot refresh error: ${a.message}`),null}}async refreshGitHubToken(a,b,c=null){try{let d={grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId};this.config.clientSecret&&(d.client_secret=this.config.clientSecret);let e=await (0,l.proxyAwareFetch)(f.NA.github.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(d)},c);if(!e.ok)return null;let g=await e.json();return b?.info?.("TOKEN","GitHub token refreshed"),{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}catch(a){return b?.error?.("TOKEN",`GitHub refresh error: ${a.message}`),null}}async refreshCredentials(a,b,c=null){let d=await this.refreshCopilotToken(a.accessToken,b,c);if(!d&&a.refreshToken){let e=await this.refreshGitHubToken(a.refreshToken,b,c);if(e?.accessToken)return(d=await this.refreshCopilotToken(e.accessToken,b,c))?{...e,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:e}return d?{accessToken:a.accessToken,refreshToken:a.refreshToken,copilotToken:d.token,copilotTokenExpiresAt:d.expiresAt}:null}needsRefresh(a){if(!a.copilotToken)return!0;if(a.copilotTokenExpiresAt){let b=a.copilotTokenExpiresAt;if("number"==typeof b&&b<1e12?b*=1e3:"string"==typeof b&&(b=new Date(b).getTime()),b-Date.now()<3e5)return!0}return super.needsRefresh(a)}}},68735:(a,b,c)=>{c.d(b,{Gh:()=>j,IF:()=>m,O9:()=>g,OF:()=>l,WL:()=>h,f5:()=>k,lm:()=>f});var d=c(60126),e=c(56790);let f={reset:"\x1b[0m",red:"\x1b[31m",green:"\x1b[32m",yellow:"\x1b[33m",blue:"\x1b[34m",cyan:"\x1b[36m"};function g(a){if(!a||"object"!=typeof a)return a;let b={...a};return void 0!==b.input_tokens&&(b.input_tokens+=2e3),void 0!==b.prompt_tokens&&(b.prompt_tokens+=2e3),void 0!==b.total_tokens?b.total_tokens+=2e3:void 0!==b.prompt_tokens&&void 0!==b.completion_tokens&&(b.total_tokens=b.prompt_tokens+b.completion_tokens),b}function h(a,b){if(!a||"object"!=typeof a)return a;let c={[e.h.CLAUDE]:["input_tokens","output_tokens","cache_read_input_tokens","cache_creation_input_tokens","estimated"],[e.h.GEMINI]:["promptTokenCount","candidatesTokenCount","totalTokenCount","cachedContentTokenCount","thoughtsTokenCount","estimated"],[e.h.OPENAI_RESPONSES]:["input_tokens","output_tokens","input_tokens_details","output_tokens_details","estimated"],default:["prompt_tokens","completion_tokens","total_tokens","cached_tokens","reasoning_tokens","prompt_tokens_details","completion_tokens_details","estimated"]},d=c[b];b===e.h.GEMINI_CLI||b===e.h.ANTIGRAVITY?d=c[e.h.GEMINI]:b===e.h.OPENAI_RESPONSE?d=c[e.h.OPENAI_RESPONSES]:d||(d=c.default);let f={};for(let b of d)void 0!==a[b]&&(f[b]=a[b]);return f}function i(a){if(!a||"object"!=typeof a||Array.isArray(a))return null;let b={},c=(a,c)=>{if(null==c)return;let d=Number(c);Number.isFinite(d)&&(b[a]=d)};return(c("prompt_tokens",a?.prompt_tokens),c("completion_tokens",a?.completion_tokens),c("total_tokens",a?.total_tokens),c("cache_read_input_tokens",a?.cache_read_input_tokens),c("cache_creation_input_tokens",a?.cache_creation_input_tokens),c("cached_tokens",a?.cached_tokens),c("reasoning_tokens",a?.reasoning_tokens),a?.prompt_tokens_details&&"object"==typeof a.prompt_tokens_details&&(b.prompt_tokens_details=a.prompt_tokens_details),a?.completion_tokens_details&&"object"==typeof a.completion_tokens_details&&(b.completion_tokens_details=a.completion_tokens_details),0===Object.keys(b).length)?null:b}function j(a){if(!a||"object"!=typeof a)return!1;for(let b of["prompt_tokens","completion_tokens","total_tokens","input_tokens","output_tokens","promptTokenCount","candidatesTokenCount"])if("number"==typeof a[b]&&a[b]>0)return!0;return!1}function k(a){if(!a||"object"!=typeof a)return null;if("message_delta"===a.type&&a.usage&&"object"==typeof a.usage)return i({prompt_tokens:a.usage.input_tokens||0,completion_tokens:a.usage.output_tokens||0,cache_read_input_tokens:a.usage.cache_read_input_tokens,cache_creation_input_tokens:a.usage.cache_creation_input_tokens});if(("response.completed"===a.type||"response.done"===a.type)&&a.response?.usage&&"object"==typeof a.response.usage){let b=a.response.usage,c=b.input_tokens_details?.cached_tokens;return i({prompt_tokens:b.input_tokens||b.prompt_tokens||0,completion_tokens:b.output_tokens||b.completion_tokens||0,cached_tokens:c,reasoning_tokens:b.output_tokens_details?.reasoning_tokens,prompt_tokens_details:c?{cached_tokens:c}:void 0})}if(a.usage&&"object"==typeof a.usage&&void 0!==a.usage.prompt_tokens)return i({prompt_tokens:a.usage.prompt_tokens,completion_tokens:a.usage.completion_tokens||0,cached_tokens:a.usage.prompt_tokens_details?.cached_tokens||a.usage.prompt_cache_hit_tokens,reasoning_tokens:a.usage.completion_tokens_details?.reasoning_tokens,prompt_tokens_details:a.usage.prompt_tokens_details,completion_tokens_details:a.usage.completion_tokens_details});let b=a.usageMetadata||a.response?.usageMetadata;return b&&"object"==typeof b?i({prompt_tokens:b.promptTokenCount||0,completion_tokens:b.candidatesTokenCount||0,total_tokens:b.totalTokenCount,cached_tokens:b.cachedContentTokenCount,reasoning_tokens:b.thoughtsTokenCount}):null}function l(a,b,c=e.h.OPENAI){var d,f;return d=function(a){if(!a||"object"!=typeof a)return 0;try{let b=JSON.stringify(a).length;return Math.ceil(b/4)}catch(a){return 0}}(a),f=b&&!(b<=0)?Math.max(1,Math.floor(b/4)):0,c===e.h.CLAUDE?g({input_tokens:d,output_tokens:f,estimated:!0}):g({prompt_tokens:d,completion_tokens:f,total_tokens:d+f,estimated:!0})}function m(a,b,c=null,e=null,g=null){if(!b||"object"!=typeof b)return;let h=a?.toUpperCase()||"UNKNOWN",i=b?.prompt_tokens||b?.input_tokens||0,j=b?.completion_tokens||b?.output_tokens||0,k=e?e.slice(0,8)+"...":"unknown",l=`[${new Date().toLocaleTimeString("en-US",{hour12:!1,hour:"2-digit",minute:"2-digit",second:"2-digit"})}] 📊 ${f.green}[USAGE] ${h} | in=${i} | out=${j} | account=${k}${f.reset}`;b.estimated&&(l+=` ${f.yellow}(estimated)${f.reset}`);let n=b.cache_read_input_tokens||b.cached_tokens||b.prompt_tokens_details?.cached_tokens;n&&(l+=` | cache_read=${n}`);let o=b.cache_creation_input_tokens;o&&(l+=` | cache_create=${o}`);let p=b.reasoning_tokens;p&&(l+=` | reasoning=${p}`),console.log(l);let q={prompt_tokens:i,completion_tokens:j,cache_read_input_tokens:n||0,cache_creation_input_tokens:o||0,reasoning_tokens:p||0};(0,d.sZ)({model:c,provider:a,connectionId:e,tokens:q,apiKey:g||void 0}).catch(()=>{}),(0,d.E5)({model:c,provider:a,connectionId:e,tokens:q,status:"200 OK"}).catch(()=>{})}},71246:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{SB:()=>x});var e=c(1820),f=c(27381),g=c(84868),h=c(65787),i=c(38461),j=c(89641),k=c(21303),l=c(84508),m=c(86758),n=c(23082),o=c(87767),p=c(21241),q=c(83628),r=c(23568),s=c(74009),t=c(65640),u=c(92930),v=c(83543);c(24353);var w=a([m]);m=(w.then?(await w)():w)[0];let y={antigravity:new e.c,azure:new f.P,"gemini-cli":new g.V,github:new h.x,iflow:new i.r,qoder:new j.D,kiro:new k.B,codex:new l.T,cursor:new m.o,cu:new m.o,vertex:new n.w("vertex"),"vertex-partner":new n.w("vertex-partner"),qwen:new o.R,opencode:new p.j,"opencode-go":new q.H,"grok-web":new r.$,"perplexity-web":new s.Ay,"ollama-local":new t.D,commandcode:new u.A},z=new Map;function x(a){return y[a]?y[a]:(z.has(a)||z.set(a,new v.L(a)),z.get(a))}d()}catch(a){d(a)}})},74009:(a,b,c)=>{c.d(b,{Ay:()=>y});var d=c(24353),e=c(62276);let f=e.xq["perplexity-web"].baseUrl,g="2.18",h={"pplx-auto":["concise","pplx_pro"],"pplx-sonar":["copilot","experimental"],"pplx-gpt":["copilot","gpt54"],"pplx-gemini":["copilot","gemini31pro_high"],"pplx-sonnet":["copilot","claude46sonnet"],"pplx-opus":["copilot","claude46opus"],"pplx-nemotron":["copilot","nv_nemotron_3_super"]},i={"pplx-gpt":"gpt54_thinking","pplx-sonnet":"claude46sonnetthinking","pplx-opus":"claude46opusthinking"},j=/\[\d+\]/g,k=/]*>.*?<\/grok:[^>]*>/gs,l=/]*\/>/g,m=/<[?]xml[^?]*[?]>/g,n=/<\/?response\b[^>]*>/gi,o=/ {2,}/g,p=/\n{3,}/g,q=new Map;function r(a){let b=a.map(a=>`${a.role}:${a.content}`).join("\n"),c=0x811c9dc5;for(let a=0;a>>0;return c.toString(16).padStart(8,"0")}function s(a,b,c,d){if(!d)return;let e=r([...a,{role:"user",content:b},{role:"assistant",content:c}]);if(q.set(e,{backendUuid:d,ts:Date.now()}),q.size>200){let a=null,b=1/0;for(let[c,d]of q)d.tse){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}}if(0===a.length&&g.text){let a=g.text.trim();if(a.length>e){let b=a.slice(e);c=a,e=a.length,yield{delta:b,answer:c,backendUuid:d??void 0}}}if(g.final||"COMPLETED"===g.status)break}yield{delta:"",answer:c,backendUuid:d??void 0,done:!0}}function w(a){return`data: ${JSON.stringify(a)} + +`}async function x(a,b,c,d,e,f,g){let h="",i=null,j=[];for await(let b of v(a,g)){if(b.backendUuid&&(i=b.backendUuid),b.error)return new Response(JSON.stringify({error:{message:b.error,type:"upstream_error",code:"PPLX_ERROR"}}),{status:502,headers:{"Content-Type":"application/json"}});if(b.thinking){j.push(b.thinking);continue}if(b.done){h=b.answer||h;break}b.answer&&(h=b.answer)}s(e,f,h=t(h),i);let k=j.length>0?j.join("\n"):void 0,l={role:"assistant",content:h};k&&(l.reasoning_content=k);let m=Math.ceil(f.length/4),n=Math.ceil(h.length/4);return new Response(JSON.stringify({id:c,object:"chat.completion",created:d,model:b,system_fingerprint:null,choices:[{index:0,message:l,finish_reason:"stop",logprobs:null}],usage:{prompt_tokens:m,completion_tokens:n,total_tokens:m+n}}),{status:200,headers:{"Content-Type":"application/json"}})}class y extends d.H{constructor(){super("perplexity-web",e.xq["perplexity-web"])}async execute({model:a,body:b,stream:c,credentials:d,signal:e,log:j}){var k,l,m,n,o;let p,u,y,z,A,B=b?.messages;if(!B||!Array.isArray(B)||0===B.length)return{response:new Response(JSON.stringify({error:{message:"Missing or empty messages array",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:b};(b?.thinking===!0||b?.reasoning_effort!=null&&"none"!==b.reasoning_effort)&&i[a]?(p="copilot",u=i[a],j?.info?.("PPLX-WEB",`Thinking mode → ${a} using ${u}`)):h[a]?[p,u]=h[a]:(p="copilot",u=a,j?.info?.("PPLX-WEB",`Unmapped model ${a}, using as raw preference`));let C=function(a){let b="",c=[];for(let d of a){let a=String(d.role||"user");"developer"===a&&(a="system");let e="";"string"==typeof d.content?e=d.content:Array.isArray(d.content)&&(e=d.content.filter(a=>"text"===a.type).map(a=>String(a.text||"")).join(" ")),e.trim()&&("system"===a?b+=e+"\n":("user"===a||"assistant"===a)&&c.push({role:a,content:e}))}let d="";return c.length>0&&"user"===c[c.length-1].role&&(d=c.pop().content),{systemMsg:b,history:c,currentMsg:d}}(B),D=function(a){if(0===a.length)return null;let b=r(a),c=q.get(b);return c?Date.now()-c.ts>36e5?(q.delete(b),null):c.backendUuid:null}(C.history);D&&j?.info?.("PPLX-WEB",`Session continue: ${D.slice(0,12)}...`);let E=function(a,b,c){if(b)return a.currentMsg;let d={},e=[];a.systemMsg.trim()&&e.push(a.systemMsg.trim());let f=function(a){if(!Array.isArray(a)||0===a.length)return"";let b=a.map(a=>{let b=a?.function||a||{},c=b.name||"unnamed",d=(b.description||"").split("\n")[0].slice(0,200);return`- ${c}: ${d}`});return`Available tools (reference only, cannot invoke): +${b.join("\n")}`}(c);f&&e.push(f),e.push("You have built-in web search. Answer questions directly using search results."),d.instructions=e,a.history.length>0&&(d.history=a.history),a.currentMsg?d.query=a.currentMsg:0===a.history.length&&(d.query="");let g=JSON.stringify(d);return g.length>96e3?g.slice(-96e3):g}(C,D,b?.tools);if(!E.trim())return{response:new Response(JSON.stringify({error:{message:"Empty query after processing",type:"invalid_request"}}),{status:400,headers:{"Content-Type":"application/json"}}),url:f,headers:{},transformedBody:b};let F=(k=p,l=u,A="u">typeof Intl?Intl.DateTimeFormat().resolvedOptions().timeZone:"UTC",{query_str:E,params:{query_str:E,search_focus:"internet",mode:k,model_preference:l,sources:["web"],attachments:[],frontend_uuid:crypto.randomUUID(),frontend_context_uuid:crypto.randomUUID(),version:g,language:"en-US",timezone:A,search_recency_filter:null,is_incognito:!0,use_schematized_api:!0,last_backend_uuid:D}}),G={"Content-Type":"application/json",Accept:"text/event-stream",Origin:"https://www.perplexity.ai",Referer:"https://www.perplexity.ai/","User-Agent":"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/130.0.0.0 Safari/537.36","X-App-ApiClient":"default","X-App-ApiVersion":g};d.accessToken?G.Authorization=`Bearer ${d.accessToken}`:d.apiKey&&(G.Cookie=`__Secure-next-auth.session-token=${d.apiKey}`),j?.info?.("PPLX-WEB",`Query to ${a} (pref=${u}, mode=${p}), len=${E.length}`);let H={method:"POST",headers:G,body:JSON.stringify(F)};e&&(H.signal=e);try{y=await fetch(f,H)}catch(a){return j?.error?.("PPLX-WEB",`Fetch failed: ${a.message||String(a)}`),{response:new Response(JSON.stringify({error:{message:`Perplexity connection failed: ${a.message||String(a)}`,type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:f,headers:G,transformedBody:F}}if(!y.ok){let a=y.status,b=`Perplexity returned HTTP ${a}`;return 401===a||403===a?b="Perplexity auth failed — session cookie may be expired. Re-paste your __Secure-next-auth.session-token.":429===a&&(b="Perplexity rate limited. Wait a moment and retry."),j?.warn?.("PPLX-WEB",b),{response:new Response(JSON.stringify({error:{message:b,type:"upstream_error",code:`HTTP_${a}`}}),{status:a,headers:{"Content-Type":"application/json"}}),url:f,headers:G,transformedBody:F}}if(!y.body)return{response:new Response(JSON.stringify({error:{message:"Perplexity returned empty response body",type:"upstream_error"}}),{status:502,headers:{"Content-Type":"application/json"}}),url:f,headers:G,transformedBody:F};let I=`chatcmpl-pplx-${crypto.randomUUID().slice(0,12)}`,J=Math.floor(Date.now()/1e3);if(c){let b;z=new Response((m=y.body,n=C.history,o=C.currentMsg,b=new TextEncoder,new ReadableStream({async start(c){try{c.enqueue(b.encode(w({id:I,object:"chat.completion.chunk",created:J,model:a,system_fingerprint:null,choices:[{index:0,delta:{role:"assistant"},finish_reason:null,logprobs:null}]})));let d="",f=null;for await(let g of v(m,e)){if(g.backendUuid&&(f=g.backendUuid),g.error){c.enqueue(b.encode(w({id:I,object:"chat.completion.chunk",created:J,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Error: ${g.error}]`},finish_reason:null,logprobs:null}]})));break}if(g.thinking){c.enqueue(b.encode(w({id:I,object:"chat.completion.chunk",created:J,model:a,system_fingerprint:null,choices:[{index:0,delta:{reasoning_content:g.thinking+"\n"},finish_reason:null,logprobs:null}]})));continue}if(g.done){d=g.answer||d;break}let e=g.delta||"";e&&(e=t(e,!1))&&c.enqueue(b.encode(w({id:I,object:"chat.completion.chunk",created:J,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:e},finish_reason:null,logprobs:null}]}))),g.answer&&(d=g.answer)}c.enqueue(b.encode(w({id:I,object:"chat.completion.chunk",created:J,model:a,system_fingerprint:null,choices:[{index:0,delta:{},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n")),s(n,o,t(d),f)}catch(d){c.enqueue(b.encode(w({id:I,object:"chat.completion.chunk",created:J,model:a,system_fingerprint:null,choices:[{index:0,delta:{content:`[Stream error: ${d.message||String(d)}]`},finish_reason:"stop",logprobs:null}]}))),c.enqueue(b.encode("data: [DONE]\n\n"))}finally{c.close()}}})),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache","X-Accel-Buffering":"no"}})}else z=await x(y.body,a,I,J,C.history,C.currentMsg,e);return{response:z,url:f,headers:G,transformedBody:F}}}},74264:(a,b,c)=>{c.d(b,{Z:()=>f});let d={deepseek:{scope:"all"}},e=[{match:a=>a?.startsWith?.("kimi-"),scope:"toolCalls"},{match:a=>a?.startsWith?.("deepseek-"),scope:"all"}];function f({provider:a,model:b,body:c}){let g=d[a],h=e.find(a=>a.match(b));var i=g||h;if(!i||!c?.messages)return c;let j=c.messages.map(a=>!function(a,b){if(a?.role!=="assistant")return!1;let c=a.reasoning_content;return("string"!=typeof c||!(c.length>0))&&("toolCalls"!==b||Array.isArray(a.tool_calls)&&a.tool_calls.length>0)}(a,i.scope)?a:{...a,reasoning_content:" "});return{...c,messages:j}}},83543:(a,b,c)=>{c.d(b,{L:()=>k});var d=c(24353),e=c(62276),f=c(43528),g=c(98774),h=c(42506),i=c(37973),j=c(74264);class k extends d.H{constructor(a){super(a,e.xq[a]||e.xq.openai)}transformRequest(a,b){return(0,j.Z)({provider:this.provider,model:a,body:b})}buildUrl(a,b,c=0,d=null){if(this.provider?.startsWith?.("openai-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.openai.com/v1").replace(/\/$/,""),b=this.provider.includes("responses")?"/responses":"/chat/completions";return`${a}${b}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let a=(d?.providerSpecificData?.baseUrl||"https://api.anthropic.com/v1").replace(/\/$/,"");return`${a}/messages`}switch(this.provider){case"claude":case"glm":case"kimi":case"minimax":case"minimax-cn":case"kimi-coding":return`${this.config.baseUrl}?beta=true`;case"gemini":return`${this.config.baseUrl}/${a}:${b?"streamGenerateContent?alt=sse":"generateContent"}`;default:{let a=this.config.baseUrl;if(a?.includes("{accountId}")){let b=d?.providerSpecificData?.accountId;if(!b)throw Error(`${this.provider} requires accountId in providerSpecificData`);return a.replace("{accountId}",b)}return a}}}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers};switch(this.provider){case"gemini":a.apiKey?c["x-goog-api-key"]=a.apiKey:c.Authorization=`Bearer ${a.accessToken}`;break;case"claude":{let b=(0,h.b)();if(b){for(let a of Object.keys(b)){let d=a.replace(/(^|-)([a-z])/g,(a,b,c)=>b+c.toUpperCase());if("anthropic-beta"===a){let e=new Set((c[d]||c[a]||"").split(",").map(a=>a.trim()).filter(Boolean)),f=new Set(b[a].split(",").map(a=>a.trim()).filter(Boolean));for(let a of e)f.add(a);b[a]=Array.from(f).join(",")}d!==a&&void 0!==c[d]&&delete c[d]}Object.assign(c,b)}a.apiKey?c["x-api-key"]=a.apiKey:c.Authorization=`Bearer ${a.accessToken}`;break}case"glm":case"kimi":case"minimax":case"minimax-cn":c["x-api-key"]=a.apiKey||a.accessToken;break;case"kimi-coding":c.Authorization=`Bearer ${a.accessToken}`,Object.assign(c,(0,f.VK)());break;default:this.provider?.startsWith?.("anthropic-compatible-")?(a.apiKey?c["x-api-key"]=a.apiKey:a.accessToken&&(c.Authorization=`Bearer ${a.accessToken}`),c["anthropic-version"]||(c["anthropic-version"]="2023-06-01")):"gitlab"===this.provider||"codebuddy"===this.provider?c.Authorization=`Bearer ${a.apiKey||a.accessToken}`:"kilocode"===this.provider?(c.Authorization=`Bearer ${a.apiKey||a.accessToken}`,a.providerSpecificData?.orgId&&(c["X-Kilocode-OrganizationID"]=a.providerSpecificData.orgId)):"cline"===this.provider?Object.assign(c,(0,g.w$)(a.apiKey||a.accessToken)):c.Authorization=`Bearer ${a.apiKey||a.accessToken}`}if(this.provider?.startsWith?.("anthropic-compatible-")){let b=a?.providerSpecificData?.baseUrl||"";if(!(""===b||b.includes("api.anthropic.com"))){for(let a of(delete c["anthropic-dangerous-direct-browser-access"],delete c["Anthropic-Dangerous-Direct-Browser-Access"],delete c["x-app"],delete c["X-App"],["anthropic-beta","Anthropic-Beta"]))if(c[a]){let b=c[a].split(",").map(a=>a.trim()).filter(a=>a&&"claude-code-20250219"!==a).join(",");b?c[a]=b:delete c[a]}}}return b&&(c.Accept="text/event-stream"),c}async refreshCredentials(a,b,c=null){if(!a.refreshToken)return null;let d={claude:()=>this.refreshWithJSON(f.NA.anthropic.token,{grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.claude.clientId},c),codex:()=>this.refreshWithForm(f.NA.openai.token,{grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.codex.clientId,scope:"openid profile email offline_access"},c),qwen:()=>this.refreshWithForm(f.NA.qwen.token,{grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.qwen.clientId},c),iflow:()=>this.refreshIflow(a.refreshToken,c),gemini:()=>this.refreshGoogle(a.refreshToken,c),kiro:()=>this.refreshKiro(a.refreshToken,c),cline:()=>this.refreshCline(a.refreshToken,c),"kimi-coding":()=>this.refreshKimiCoding(a.refreshToken,c),kilocode:()=>this.refreshKilocode(a.refreshToken,c)}[this.provider];if(!d)return null;try{let a=await d();return a&&b?.info?.("TOKEN",`${this.provider} refreshed`),a}catch(a){return b?.error?.("TOKEN",`${this.provider} refresh error: ${a.message}`),null}}async refreshWithJSON(a,b,c=null){let d=await (0,i.proxyAwareFetch)(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify(b)},c);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||b.refresh_token,expiresIn:e.expires_in}}async refreshWithForm(a,b,c=null){let d=await (0,i.proxyAwareFetch)(a,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams(b)},c);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||b.refresh_token,expiresIn:e.expires_in}}async refreshIflow(a,b=null){let c=btoa(`${e.xq.iflow.clientId}:${e.xq.iflow.clientSecret}`),d=await (0,i.proxyAwareFetch)(f.NA.iflow.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",Authorization:`Basic ${c}`},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:e.xq.iflow.clientId,client_secret:e.xq.iflow.clientSecret})},b);if(!d.ok)return null;let g=await d.json();return{accessToken:g.access_token,refreshToken:g.refresh_token||a,expiresIn:g.expires_in}}async refreshGoogle(a,b=null){let c=await (0,i.proxyAwareFetch)(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:this.config.clientId,client_secret:this.config.clientSecret})},b);if(!c.ok)return null;let d=await c.json();return{accessToken:d.access_token,refreshToken:d.refresh_token||a,expiresIn:d.expires_in}}async refreshKiro(a,b=null){let c=await (0,i.proxyAwareFetch)(e.xq.kiro.tokenUrl,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json","User-Agent":"kiro-cli/1.0.0"},body:JSON.stringify({refreshToken:a})},b);if(!c.ok)return null;let d=await c.json();return{accessToken:d.accessToken,refreshToken:d.refreshToken||a,expiresIn:d.expiresIn}}async refreshCline(a,b=null){console.log("[DEBUG] Refreshing Cline token, refreshToken length:",a?.length);let c=await (0,i.proxyAwareFetch)("https://api.cline.bot/api/v1/auth/refresh",{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({refreshToken:a,grantType:"refresh_token",clientType:"extension"})},b);if(console.log("[DEBUG] Cline refresh response status:",c.status),!c.ok)return console.log("[DEBUG] Cline refresh error:",await c.text()),null;let d=await c.json();console.log("[DEBUG] Cline refresh payload:",JSON.stringify(d).substring(0,200));let e=d?.data||d,f=e?.expiresAt,g=f?Math.max(1,Math.floor((new Date(f).getTime()-Date.now())/1e3)):void 0;return console.log("[DEBUG] Cline refresh success, expiresIn:",g),{accessToken:e?.accessToken,refreshToken:e?.refreshToken||a,expiresIn:g}}async refreshKimiCoding(a,b=null){let c=(0,f.VK)(),d=await (0,i.proxyAwareFetch)("https://auth.kimi.com/api/oauth/token",{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json",...c},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a,client_id:"17e5f671-d194-4dfb-9706-5516cb48c098"})},b);if(!d.ok)return null;let e=await d.json();return{accessToken:e.access_token,refreshToken:e.refresh_token||a,expiresIn:e.expires_in}}async refreshKilocode(a,b=null){return null}}},83628:(a,b,c)=>{c.d(b,{H:()=>i});var d=c(24353),e=c(62276),f=c(74264);let g=new Set(["minimax-m2.5","minimax-m2.7"]),h="https://opencode.ai/zen/go/v1";class i extends d.H{constructor(){super("opencode-go",e.xq["opencode-go"])}buildUrl(a){return this._lastModel=a,g.has(a)?`${h}/messages`:`${h}/chat/completions`}buildHeaders(a,b=!0){let c=a?.apiKey||a?.accessToken,d={"Content-Type":"application/json"};return g.has(this._lastModel)?(d["x-api-key"]=c,d["anthropic-version"]="2023-06-01"):d.Authorization=`Bearer ${c}`,b&&(d.Accept="text/event-stream"),d}transformRequest(a,b){return(0,f.Z)({provider:this.provider,model:a,body:b})}}},84508:(a,b,c)=>{c.d(b,{T:()=>p});var d=c(55511),e=c(24353);let f=`You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer. + +## General + +- When searching for text or files, prefer using \`rg\` or \`rg --files\` respectively because \`rg\` is much faster than alternatives like \`grep\`. (If the \`rg\` command is not found, then use alternatives.) + +## Editing constraints + +- Default to ASCII when editing or creating files. Only introduce non-ASCII or other Unicode characters when there is a clear justification and the file already uses them. +- Add succinct code comments that explain what is going on if code is not self-explanatory. You should not add comments like "Assigns the value to the variable", but a brief comment might be useful ahead of a complex code block that the user would otherwise have to spend time parsing out. Usage of these comments should be rare. +- Try to use apply_patch for single file edits, but it is fine to explore other options to make the edit if it does not work well. Do not use apply_patch for changes that are auto-generated (i.e. generating package.json or running a lint or format command like gofmt) or when scripting is more efficient (such as search and replacing a string across a codebase). +- You may be in a dirty git worktree. + * NEVER revert existing changes you did not make unless explicitly requested, since these changes were made by the user. + * If asked to make a commit or code edits and there are unrelated changes to your work or changes that you didn't make in those files, don't revert those changes. + * If the changes are in files you've touched recently, you should read carefully and understand how you can work with the changes rather than reverting them. + * If the changes are in unrelated files, just ignore them and don't revert them. +- Do not amend a commit unless explicitly requested to do so. +- While you are working, you might notice unexpected changes that you didn't make. If this happens, STOP IMMEDIATELY and ask the user how they would like to proceed. +- **NEVER** use destructive commands like \`git reset --hard\` or \`git checkout --\` unless specifically requested or approved by the user. + +## Plan tool + +When using the planning tool: +- Skip using the planning tool for straightforward tasks (roughly the easiest 25%). +- Do not make single-step plans. +- When you made a plan, update it after having performed one of the sub-tasks that you shared on the plan. + +## Codex CLI harness, sandboxing, and approvals + +The Codex CLI harness supports several different configurations for sandboxing and escalation approvals that the user can choose from. + +Filesystem sandboxing defines which files can be read or written. The options for \`sandbox_mode\` are: +- **read-only**: The sandbox only permits reading files. +- **workspace-write**: The sandbox permits reading files, and editing files in \`cwd\` and \`writable_roots\`. Editing files in other directories requires approval. +- **danger-full-access**: No filesystem sandboxing - all commands are permitted. + +Network sandboxing defines whether network can be accessed without approval. Options for \`network_access\` are: +- **restricted**: Requires approval +- **enabled**: No approval needed + +Approvals are your mechanism to get user consent to run shell commands without the sandbox. Possible configuration options for \`approval_policy\` are +- **untrusted**: The harness will escalate most commands for user approval, apart from a limited allowlist of safe "read" commands. +- **on-failure**: The harness will allow all commands to run in the sandbox (if enabled), and failures will be escalated to the user for approval to run again without the sandbox. +- **on-request**: Commands will be run in the sandbox by default, and you can specify in your tool call if you want to escalate a command to run without sandboxing. (Note that this mode is not always available. If it is, you'll see parameters for it in the \`shell\` command description.) +- **never**: This is a non-interactive mode where you may NEVER ask the user for approval to run commands. Instead, you must always persist and work around constraints to solve the task for the user. You MUST do your utmost best to finish the task and validate your work before yielding. If this mode is paired with \`danger-full-access\`, take advantage of it to deliver the best outcome for the user. Further, in this mode, your default testing philosophy is overridden: Even if you don't see local patterns for testing, you may add tests and scripts to validate your work. Just remove them before yielding. + +When you are running with \`approval_policy == on-request\`, and sandboxing enabled, here are scenarios where you'll need to request approval: +- You need to run a command that writes to a directory that requires it (e.g. running tests that write to /var) +- You need to run a GUI app (e.g., open/xdg-open/osascript) to open browsers or files. +- You are running sandboxed and need to run a command that requires network access (e.g. installing packages) +- If you run a command that is important to solving the user's query, but it fails because of sandboxing, rerun the command with approval. ALWAYS proceed to use the \`sandbox_permissions\` and \`justification\` parameters - do not message the user before requesting approval for the command. +- You are about to take a potentially destructive action such as an \`rm\` or \`git reset\` that the user did not explicitly ask for +- (for all of these, you should weigh alternative paths that do not require approval) + +When \`sandbox_mode\` is set to read-only, you'll need to request approval for any command that isn't a read. + +You will be told what filesystem sandboxing, network sandboxing, and approval mode are active in a developer or user message. If you are not told about this, assume that you are running with workspace-write, network sandboxing enabled, and approval on-failure. + +Although they introduce friction to the user because your work is paused until the user responds, you should leverage them when necessary to accomplish important work. If the completing the task requires escalated permissions, Do not let these settings or the sandbox deter you from attempting to accomplish the user's task unless it is set to "never", in which case never ask for approvals. + +When requesting approval to execute a command that will require escalated privileges: + - Provide the \`sandbox_permissions\` parameter with the value \`"require_escalated"\` + - Include a short, 1 sentence explanation for why you need escalated permissions in the justification parameter + +## Special user requests + +- If the user makes a simple request (such as asking for the time) which you can fulfill by running a terminal command (such as \`date\`), you should do so. +- If the user asks for a "review", default to a code review mindset: prioritise identifying bugs, risks, behavioural regressions, and missing tests. Findings must be the primary focus of the response - keep summaries or overviews brief and only after enumerating the issues. Present findings first (ordered by severity with file/line references), follow with open questions or assumptions, and offer a change-summary only as a secondary detail. If no findings are discovered, state that explicitly and mention any residual risks or testing gaps. + +## Frontend tasks +When doing frontend design tasks, avoid collapsing into "AI slop" or safe, average-looking layouts. +Aim for interfaces that feel intentional, bold, and a bit surprising. +- Typography: Use expressive, purposeful fonts and avoid default stacks (Inter, Roboto, Arial, system). +- Color & Look: Choose a clear visual direction; define CSS variables; avoid purple-on-white defaults. No purple bias or dark mode bias. +- Motion: Use a few meaningful animations (page-load, staggered reveals) instead of generic micro-motions. +- Background: Don't rely on flat, single-color backgrounds; use gradients, shapes, or subtle patterns to build atmosphere. +- Overall: Avoid boilerplate layouts and interchangeable UI patterns. Vary themes, type families, and visual languages across outputs. +- Ensure the page loads properly on both desktop and mobile + +Exception: If working within an existing website or design system, preserve the established patterns, structure, and visual language. + +## Presenting your work and final message + +You are producing plain text that will later be styled by the CLI. Follow these rules exactly. Formatting should make results easy to scan, but not feel mechanical. Use judgment to decide how much structure adds value. + +- Default: be very concise; friendly coding teammate tone. +- Ask only when needed; suggest ideas; mirror the user's style. +- For substantial work, summarize clearly; follow final‑answer formatting. +- Skip heavy formatting for simple confirmations. +- Don't dump large files you've written; reference paths only. +- No "save/copy this file" - User is on the same machine. +- Offer logical next steps (tests, commits, build) briefly; add verify steps if you couldn't do something. +- For code changes: + * Lead with a quick explanation of the change, and then give more details on the context covering where and why a change was made. Do not start this explanation with "summary", just jump right in. + * If there are natural next steps the user may want to take, suggest them at the end of your response. Do not make suggestions if there are no natural next steps. + * When suggesting multiple options, use numeric lists for the suggestions so the user can quickly respond with a single number. +- The user does not command execution outputs. When asked to show the output of a command (e.g. \`git show\`), relay the important details in your answer or summarize the key lines so the user understands the result. + +### Final answer structure and style guidelines + +- Plain text; CLI handles styling. Use structure only when it helps scanability. +- Headers: optional; short Title Case (1-3 words) wrapped in **…**; no blank line before the first bullet; add only if they truly help. +- Bullets: use - ; merge related points; keep to one line when possible; 4–6 per list ordered by importance; keep phrasing consistent. +- Monospace: backticks for commands/paths/env vars/code ids and inline examples; use for literal keyword bullets; never combine with **. +- Code samples or multi-line snippets should be wrapped in fenced code blocks; include an info string as often as possible. +- Structure: group related bullets; order sections general → specific → supporting; for subsections, start with a bolded keyword bullet, then items; match complexity to the task. +- Tone: collaborative, concise, factual; present tense, active voice; self‑contained; no "above/below"; parallel wording. +- Don'ts: no nested bullets/hierarchies; no ANSI codes; don't cram unrelated keywords; keep keyword lists short—wrap/reformat if long; avoid naming formatting styles in answers. +- Adaptation: code explanations → precise, structured with code refs; simple tasks → lead with outcome; big changes → logical walkthrough + rationale + next actions; casual one-offs → plain sentences, no headers/bullets. +- File References: When referencing files in your response follow the below rules: + * Use inline code to make file paths clickable. + * Each reference should have a stand alone path. Even if it's the same file. + * Accepted: absolute, workspace‑relative, a/ or b/ diff prefixes, or bare filename/suffix. + * Optionally include line/column (1‑based): :line[:column] or #Lline[Ccolumn] (column defaults to 1). + * Do not use URIs like file://, vscode://, or https://. + * Do not provide range of lines + * Examples: src/app.ts, src/app.ts:42, b/server/index.js#L10, C:\\repo\\project\\main.rs:12:5`;var g=c(62276),h=c(62970);async function i(a,b={}){let{signal:c,timeoutMs:d=1e4}=b;if(!a||!a.startsWith("http://")&&!a.startsWith("https://"))return null;let e=new AbortController,f=c?null:setTimeout(()=>e.abort(),d),g=c||e.signal;try{let b=await fetch(a,{signal:g});if(!b.ok)return null;let c=b.headers.get("Content-Type")||"image/jpeg",d=await b.arrayBuffer(),e=Buffer.from(d).toString("base64");return{url:`data:${c};base64,${e}`,mimeType:c}}catch{return null}finally{f&&clearTimeout(f)}}var j=c(29737),k=c(99119);let l=new Map,m=null;function n(a){return(0,d.createHash)("sha256").update(a).digest("hex").slice(0,16)}function o(){return`sess_${Date.now().toString(36)}_${Math.random().toString(36).slice(2,9)}`}(0,k.Xj)().then(a=>{m=a}),setInterval(()=>{let a=Date.now();for(let[b,c]of l)a-c.lastUsed>36e5&&l.delete(b)},6e5);class p extends e.H{constructor(){super("codex",g.xq.codex),this._currentSessionId=null}buildHeaders(a,b=!0){let c=super.buildHeaders(a,b);return c.session_id=this._currentSessionId||a?.connectionId||"default",c}buildUrl(a,b,c=0,d=null){let e=super.buildUrl(a,b,c,d);return this._isCompact?`${e}/compact`:e}async prefetchImages(a){if(Array.isArray(a?.input))for(let b of a.input){if(!Array.isArray(b.content))continue;let a=b.content.map(async a=>{if("image_url"!==a.type)return a;let b="string"==typeof a.image_url?a.image_url:a.image_url?.url,c=a.image_url?.detail||"auto";if(!b)return a;if(b.startsWith("data:"))return{type:"input_image",image_url:b,detail:c};let d=await i(b,{timeoutMs:15e3});return{type:"input_image",image_url:d?.url||b,detail:c}});b.content=await Promise.all(a)}}async execute(a){return await this.prefetchImages(a.body),super.execute(a)}parseError(a,b){if(429===a.status&&b)try{let a=JSON.parse(b),c=a?.error;if(c?.type==="usage_limit_reached"){let a=Date.now(),d=null;if("number"==typeof c.resets_at&&c.resets_at>0){let b=1e3*c.resets_at;b>a&&(d=b)}if(!d&&"number"==typeof c.resets_in_seconds&&c.resets_in_seconds>0&&(d=a+1e3*c.resets_in_seconds),d)return{status:429,message:c.message||b,resetsAtMs:d}}}catch{}return super.parseError(a,b)}transformRequest(a,b,c,d){this._isCompact=!!b._compact,delete b._compact,this._currentSessionId=function(a,b){let c=b?`sess_${n(b)}`:o();if(!Array.isArray(a)||0===a.length)return c;let d="";for(let b of a)if("assistant"===b.role&&(d=b?"string"==typeof b.content?b.content:Array.isArray(b.content)?b.content.map(a=>a.text||a.output||"").filter(Boolean).join(""):"":""))break;if(!d)return c;let e=n((b||"")+d),f=l.get(e);if(f)return f.lastUsed=Date.now(),f.sessionId;let g=o();return l.set(e,{sessionId:g,lastUsed:Date.now()}),g}(b.input,m);let e=(0,h.m)(b.input);e&&(b.input=e),(!b.input||Array.isArray(b.input)&&0===b.input.length)&&(b.input=[{type:"message",role:"user",content:[{type:"input_text",text:"..."}]}]),b.stream=!0,b.instructions&&""!==b.instructions.trim()||(b.instructions=f),b.store=!1,b.model=(0,j.kt)("cx",b.model||a);let g=null;for(let a of["none","low","medium","high","xhigh"])if(b.model.endsWith(`-${a}`)){g=a,b.model=b.model.replace(`-${a}`,"");break}if(b.reasoning)b.reasoning.summary||(b.reasoning.summary="auto");else{let a=b.reasoning_effort||g||"low";b.reasoning={effort:a,summary:"auto"}}return delete b.reasoning_effort,b.reasoning&&b.reasoning.effort&&"none"!==b.reasoning.effort&&(b.include=["reasoning.encrypted_content"]),delete b.temperature,delete b.top_p,delete b.frequency_penalty,delete b.presence_penalty,delete b.logprobs,delete b.top_logprobs,delete b.n,delete b.seed,delete b.max_tokens,delete b.max_completion_tokens,delete b.max_output_tokens,delete b.user,delete b.prompt_cache_retention,delete b.metadata,delete b.stream_options,delete b.safety_identifier,b}}},84868:(a,b,c)=>{c.d(b,{V:()=>g});var d=c(24353),e=c(62276),f=c(43528);class g extends d.H{constructor(){super("gemini-cli",e.xq["gemini-cli"])}buildUrl(a,b,c=0){return`${this.config.baseUrl}:${b?"streamGenerateContent?alt=sse":"generateContent"}`}buildHeaders(a,b=!0){return{"Content-Type":"application/json",Authorization:`Bearer ${a.accessToken}`,"User-Agent":(0,f.sX)(this._currentModel),"X-Goog-Api-Client":f.go,Accept:b?"text/event-stream":"application/json"}}transformRequest(a,b,c,d){return this._currentModel=a,!b.project&&d?.projectId&&(b.project=d.projectId),b}async refreshCredentials(a,b){if(!a.refreshToken)return null;try{let c=await fetch(f.NA.google.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:this.config.clientId,client_secret:this.config.clientSecret})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","Gemini CLI refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,projectId:a.projectId}}catch(a){return b?.error?.("TOKEN",`Gemini CLI refresh error: ${a.message}`),null}}}},86758:(a,b,c)=>{c.a(a,async(a,d)=>{try{c.d(b,{o:()=>s});var e=c(24353),f=c(62276),g=c(23016),h=c(48788),i=c(96946),j=c(68735),k=c(56790),l=c(37973),m=c(74075),n=c.n(m);let a=null;if(!("u">typeof caches&&"object"==typeof caches||"u">typeof EdgeRuntime))try{a=await Promise.resolve().then(c.t.bind(c,73496,23))}catch{}let q="1"===process.env.CURSOR_STREAM_DEBUG,r=(...a)=>{q&&console.log(...a)};function o(a,b){if(a.length>10&&123===a[0]&&34===a[1])try{if(a.toString("utf-8").startsWith('{"error"'))return r("[DECOMPRESS] Detected JSON error, skipping decompression"),a}catch{}if(1===b||2===b||3===b)try{return n().gunzipSync(a)}catch(c){try{return n().inflateSync(a)}catch(d){try{return n().inflateRawSync(a)}catch(e){r(`[DECOMPRESS ERROR] flags=${b}, payloadSize=${a.length}, gzip=${c.message}, deflate=${d.message}, raw=${e.message}`),r("[DECOMPRESS ERROR] First 50 bytes (hex):",a.slice(0,50).toString("hex"))}}}return a}function p(a){let b=a?.error?.details?.[0]?.debug?.details?.title||a?.error?.details?.[0]?.debug?.details?.detail||a?.error?.message||"API Error",c=a?.error?.code==="resource_exhausted";return new Response(JSON.stringify({error:{message:b,type:c?"rate_limit_error":"api_error",code:a?.error?.details?.[0]?.debug?.error||"unknown"}}),{status:c?g.gx.RATE_LIMITED:g.gx.BAD_REQUEST,headers:{"Content-Type":"application/json"}})}class s extends e.H{constructor(){super("cursor",f.xq.cursor)}buildUrl(){return`${this.config.baseUrl}${this.config.chatPath}`}buildHeaders(a){let b=a.accessToken,c=a.providerSpecificData?.machineId,d=a.providerSpecificData?.ghostMode!==!1;if(!c)throw Error("Machine ID is required for Cursor API");return(0,i.JA)(b,c,d)}transformRequest(a,b,c,d){let e=b.messages||[],f=b.tools||[],g=b.reasoning_effort||null,i=d?.rawHeaders?.["user-agent"]||"",j=i.includes("claude-cli")||i.includes("claude-code")||i.includes("Claude Code");return(0,h.yI)(e,a,f,g,j)}async makeFetchRequest(a,b,c,d,e=null){let f=await (0,l.proxyAwareFetch)(a,{method:"POST",headers:b,body:c,signal:d},e);return{status:f.status,headers:Object.fromEntries(f.headers.entries()),body:Buffer.from(await f.arrayBuffer())}}makeHttp2Request(b,c,d,e){if(!a)throw Error("http2 module not available");return new Promise((f,g)=>{let h=new URL(b),i=a.connect(`https://${h.host}`),j=[],k={},l=!1,m=a=>(...b)=>{l||(l=!0,clearTimeout(n),i.close(),a(...b))},n=setTimeout(m(()=>{g(Error("HTTP/2 request timed out"))}),6e4);i.on("error",m(g));let o=i.request({":method":"POST",":path":h.pathname,":authority":h.host,":scheme":"https",...c});if(o.on("response",a=>{k=a}),o.on("data",a=>{j.push(a)}),o.on("end",m(()=>{f({status:k[":status"],headers:k,body:Buffer.concat(j)})})),o.on("error",m(g)),e){let a=m(()=>g(Error("Request aborted")));e.addEventListener("abort",a,{once:!0})}o.write(d),o.end()})}async execute({model:b,body:c,stream:d,credentials:e,signal:f,log:h,proxyOptions:i=null}){let j=this.buildUrl(),k=this.buildHeaders(e),l=this.transformRequest(b,c,d,e);try{let e=i?.enabled===!0||i?.connectionProxyEnabled===!0||!!i?.vercelRelayUrl,g=a&&!e?await this.makeHttp2Request(j,k,l,f):await this.makeFetchRequest(j,k,l,f,i);if(200!==g.status){let a=g.body?.toString()||"Unknown error";return{response:new Response(JSON.stringify({error:{message:`[${g.status}]: ${a}`,type:"invalid_request_error",code:""}}),{status:g.status,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}return{response:!1!==d?this.transformProtobufToSSE(g.body,b,c):this.transformProtobufToJSON(g.body,b,c),url:j,headers:k,transformedBody:c}}catch(a){return{response:new Response(JSON.stringify({error:{message:a.message,type:"connection_error",code:""}}),{status:g.gx.SERVER_ERROR,headers:{"Content-Type":"application/json"}}),url:j,headers:k,transformedBody:c}}}transformProtobufToJSON(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=0,i="",l=[],m=new Map,n=new Set,q=0;for(r(`[CURSOR BUFFER] Total length: ${a.length} bytes`);fa.length){r(`[CURSOR BUFFER] Reached end, offset=${f}, remaining=${a.length-f}`);break}let b=a[f],c=a.readUInt32BE(f+1);if(r(`[CURSOR BUFFER] Frame ${q+1}: flags=0x${b.toString(16).padStart(2,"0")}, length=${c}`),f+5+c>a.length){r(`[CURSOR BUFFER] Incomplete frame, offset=${f}, length=${c}, buffer.length=${a.length}`);break}let d=a.slice(f+5,f+5+c);if(f+=5+c,q++,!(d=o(d,b))){r(`[CURSOR BUFFER] Frame ${q}: decompression failed, skipping`);continue}if(d.length>0&&123===d[0])try{let a=d.toString("utf-8");if(a.includes('"error"')){let b=i||m.size>0;if(r(`[CURSOR BUFFER] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return p(JSON.parse(a))}}catch{}let e=(0,h.CP)(new Uint8Array(d));if(r(`[CURSOR DECODED] Frame ${q}:`,e),e.error){let a=i||m.size>0;if(r(`[CURSOR BUFFER] Decoded error (hasContent=${a}): ${e.error}`),a)break;return new Response(JSON.stringify({error:{message:e.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(e.toolCall){let a=e.toolCall;if(m.has(a.id)){let b=m.get(a.id);b.function.arguments+=a.function.arguments,b.isLast=a.isLast}else m.set(a.id,{...a});if(a.isLast){let b=m.get(a.id);n.add(a.id),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}})}}e.text&&(i+=e.text)}for(let[a,b]of(r(`[CURSOR BUFFER] Parsed ${q} frames, toolCallsMap size: ${m.size}, finalized toolCalls: ${l.length}`),m.entries()))n.has(a)||(r(`[CURSOR BUFFER] Finalizing incomplete tool call: ${a}, isLast=${b.isLast}`),l.push({id:b.id,type:b.type,function:{name:b.function.name,arguments:b.function.arguments}}));r(`[CURSOR BUFFER] Final toolCalls count: ${l.length}`);let s={role:"assistant",content:i||null};l.length>0&&(s.tool_calls=l);let t=(0,j.OF)(c,i.length,k.h.OPENAI),u={id:d,object:"chat.completion",created:e,model:b,choices:[{index:0,message:s,finish_reason:l.length>0?"tool_calls":"stop"}],usage:t};return new Response(JSON.stringify(u),{status:200,headers:{"Content-Type":"application/json"}})}transformProtobufToSSE(a,b,c){let d=`chatcmpl-cursor-${Date.now()}`,e=Math.floor(Date.now()/1e3),f=[],i=0,l="",m=[],n=new Map,q=new Set,s=new Set,t=0;for(r(`[CURSOR BUFFER SSE] Total length: ${a.length} bytes`);ia.length){r(`[CURSOR BUFFER SSE] Reached end, offset=${i}, remaining=${a.length-i}`);break}let c=a[i],j=a.readUInt32BE(i+1);if(r(`[CURSOR BUFFER SSE] Frame ${t+1}: flags=0x${c.toString(16).padStart(2,"0")}, length=${j}`),i+5+j>a.length){r(`[CURSOR BUFFER SSE] Incomplete frame, offset=${i}, length=${j}, buffer.length=${a.length}`);break}let k=a.slice(i+5,i+5+j);if(i+=5+j,t++,!(k=o(k,c))){r(`[CURSOR BUFFER SSE] Frame ${t}: decompression failed, skipping`);continue}if(123===k[0])try{let a=k.toString("utf-8");if(a.includes('"error"')){let b=f.length>0||l||n.size>0;if(r(`[CURSOR BUFFER SSE] Error frame (hasContent=${b}): ${a.slice(0,500)}`),b)break;return p(JSON.parse(a))}}catch{}let u=(0,h.CP)(new Uint8Array(k));if(r(`[CURSOR DECODED SSE] Frame ${t}:`,u),u.error){let a=f.length>0||l||n.size>0;if(r(`[CURSOR BUFFER SSE] Decoded error (hasContent=${a}): ${u.error}`),a)break;return new Response(JSON.stringify({error:{message:u.error,type:"rate_limit_error",code:"rate_limited"}}),{status:g.gx.RATE_LIMITED,headers:{"Content-Type":"application/json"}})}if(u.toolCall){let a=u.toolCall;if(0===f.length&&f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})} + +`),n.has(a.id)){let c=n.get(a.id);c.function.arguments.length,c.function.arguments+=a.function.arguments,c.isLast=a.isLast,a.function.arguments&&(s.add(a.id),f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{tool_calls:[{index:c.index,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]},finish_reason:null}]})} + +`))}else{let c=m.length;q.add(a.id),m.push({...a,index:c}),n.set(a.id,{...a,index:c}),s.add(a.id),f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{tool_calls:[{index:c,id:a.id,type:"function",function:{name:a.function.name,arguments:a.function.arguments}}]},finish_reason:null}]})} + +`)}}u.text&&(l+=u.text,f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:0===f.length&&0===m.length?{role:"assistant",content:u.text}:{content:u.text},finish_reason:null}]})} + +`))}for(let[a,c]of(r(`[CURSOR BUFFER SSE] Parsed ${t} frames, toolCallsMap size: ${n.size}, toolCalls array: ${m.length}`),n.entries()))if(!q.has(a)){r(`[CURSOR BUFFER SSE] Finalizing incomplete tool call: ${a}, isLast=${c.isLast}`);let g=m.length;m.push({id:c.id,type:c.type,index:g,function:{name:c.function.name,arguments:c.function.arguments}}),s.has(c.id)||f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{tool_calls:[{index:g,id:c.id,type:"function",function:{name:c.function.name,arguments:c.function.arguments}}]},finish_reason:null}]})} + +`)}0===f.length&&0===m.length&&f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{role:"assistant",content:""},finish_reason:null}]})} + +`);let u=(0,j.OF)(c,l.length,k.h.OPENAI);return f.push(`data: ${JSON.stringify({id:d,object:"chat.completion.chunk",created:e,model:b,choices:[{index:0,delta:{},finish_reason:m.length>0?"tool_calls":"stop"}],usage:u})} + +`),f.push("data: [DONE]\n\n"),new Response(f.join(""),{status:200,headers:{"Content-Type":"text/event-stream","Cache-Control":"no-cache",Connection:"keep-alive"}})}async refreshCredentials(){return null}}d()}catch(a){d(a)}},1)},87767:(a,b,c)=>{c.d(b,{R:()=>i});var d=c(83543),e=c(62276),f=c(43528);let g="QwenCode/0.12.3 (linux; x64)",h={role:"system",content:[{type:"text",text:"",cache_control:{type:"ephemeral"}}]};class i extends d.L{constructor(){super("qwen")}buildUrl(a,b,c=0,d=null){let e=d?.providerSpecificData?.resourceUrl,f=e?e.replace(/^https?:\/\//,"").replace(/\/$/,""):"portal.qwen.ai";return`https://${f}/v1/chat/completions`}buildHeaders(a,b=!0){return function(a,b=!0){let c=a?.apiKey||a?.accessToken||"",d={"Content-Type":"application/json",Authorization:`Bearer ${c}`,"User-Agent":g,"X-DashScope-AuthType":"qwen-oauth","X-DashScope-CacheControl":"enable","X-DashScope-UserAgent":g,"X-Stainless-Arch":"x64","X-Stainless-Lang":"js","X-Stainless-Os":"Linux","X-Stainless-Package-Version":"5.11.0","X-Stainless-Retry-Count":"1","X-Stainless-Runtime":"node","X-Stainless-Runtime-Version":"v18.19.1",Connection:"keep-alive","Accept-Language":"*","Sec-Fetch-Mode":"cors"};return d.Accept=b?"text/event-stream":"application/json",d}(a,b)}transformRequest(a,b,c,d){let e=b&&"object"==typeof b?{...b}:b;c&&e?.messages&&!e.stream_options&&!e.thinking&&!e.enable_thinking&&!1!==e.stream&&(e.stream_options={include_usage:!0});var f=e=function(a){let b;if(!0!==(b=a?.thinking)&&a?.enable_thinking!==!0&&("object"!=typeof b||null===b||Array.isArray(b)||"enabled"!==b.type))return a;let c=a.tool_choice;return"required"!==c&&("object"!=typeof c||null===c)?a:{...a,tool_choice:"auto"}}(e);if(!f||"object"!=typeof f)return f;let g={...f};return Array.isArray(g.messages)?g.messages=[h,...g.messages]:g.messages=[h],g}async refreshCredentials(a,b){if(!a?.refreshToken)return null;try{let c=await fetch(f.NA.qwen.token,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"application/json"},body:new URLSearchParams({grant_type:"refresh_token",refresh_token:a.refreshToken,client_id:e.xq.qwen.clientId})});if(!c.ok)return null;let d=await c.json();return b?.info?.("TOKEN","qwen refreshed"),{accessToken:d.access_token,refreshToken:d.refresh_token||a.refreshToken,expiresIn:d.expires_in,providerSpecificData:{...a.providerSpecificData||{},...d.resource_url?{resourceUrl:d.resource_url}:{}}}}catch(a){return b?.error?.("TOKEN",`qwen refresh error: ${a.message}`),null}}}},89641:(a,b,c)=>{c.d(b,{D:()=>h});var d=c(55511),e=c.n(d),f=c(24353),g=c(62276);class h extends f.H{constructor(){super("qoder",g.xq.qoder)}createSignature(a,b,c,d){if(!d)return"";let f=`${a}:${b}:${c}`,g=e().createHmac("sha256",d);return g.update(f),g.digest("hex")}buildHeaders(a,b=!0){let c=`session-${e().randomUUID()}`,d=Date.now(),f=this.config.headers["User-Agent"]||"Qoder-Cli",g=a.apiKey||a.accessToken||"",h=this.createSignature(f,c,d,g),i={"Content-Type":"application/json",...this.config.headers,"session-id":c,"x-qoder-timestamp":d.toString(),"x-qoder-signature":h};return a.apiKey?i.Authorization=`Bearer ${a.apiKey}`:a.accessToken&&(i.Authorization=`Bearer ${a.accessToken}`),b&&(i.Accept="text/event-stream"),i}buildUrl(a,b,c=0,d=null){return this.config.baseUrl}transformRequest(a,b,c,d){return c&&b.messages&&!b.stream_options&&(b.stream_options={include_usage:!0}),b}}},92930:(a,b,c)=>{c.d(b,{A:()=>h});var d=c(55511),e=c(24353),f=c(62276),g=c(80319);class h extends e.H{constructor(){super("commandcode",f.xq.commandcode)}buildHeaders(a,b=!0){let c={"Content-Type":"application/json",...this.config.headers||{},"x-session-id":(0,d.randomUUID)()},e=a?.apiKey||a?.accessToken;return e&&(c.Authorization=`Bearer ${e}`),b&&(c.Accept="text/event-stream"),c}async execute(a){var b,c;let d,e,f,h,i,j,k=await super.execute(a);return k?.response?.ok&&k.response.body&&(b=k.response,c=a.model,d=new TextDecoder,e=new TextEncoder,f="",h={model:c},i=(a,b)=>{if(a)for(let c of Array.isArray(a)?a:[a])null!=c&&b.enqueue(e.encode(`data: ${JSON.stringify(c)} + +`))},j=new TransformStream({transform(a,b){let c=(f+=d.decode(a,{stream:!0})).split("\n");for(let a of(f=c.pop()||"",c)){let c=a.trim();c&&i((0,g.convertCommandCodeToOpenAI)(c,h),b)}},flush(a){let b=f.trim();b&&i((0,g.convertCommandCodeToOpenAI)(b,h),a),a.enqueue(e.encode("data: [DONE]\n\n"))}}),k.response=new Response(b.body.pipeThrough(j),{status:b.status,statusText:b.statusText,headers:b.headers})),k}}},96946:(a,b,c)=>{c.d(b,{JA:()=>m});var d=c(55511),e=c.n(d),f=c(77598);let g=function(a){return Array.isArray(a)?a=Buffer.from(a):"string"==typeof a&&(a=Buffer.from(a,"utf8")),(0,f.createHash)("sha1").update(a).digest()},h=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-8][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$/i,i=function(a){let b;if(!("string"==typeof a&&h.test(a)))throw TypeError("Invalid UUID");return Uint8Array.of((b=parseInt(a.slice(0,8),16))>>>24,b>>>16&255,b>>>8&255,255&b,(b=parseInt(a.slice(9,13),16))>>>8,255&b,(b=parseInt(a.slice(14,18),16))>>>8,255&b,(b=parseInt(a.slice(19,23),16))>>>8,255&b,(b=parseInt(a.slice(24,36),16))/0x10000000000&255,b/0x100000000&255,b>>>24&255,b>>>16&255,b>>>8&255,255&b)};var j=c(7468);function k(a,b,c,d){var e=b,f=d;let h="string"==typeof a?function(a){let b=new Uint8Array((a=unescape(encodeURIComponent(a))).length);for(let c=0;c>40&255,b>>32&255,b>>24&255,b>>16&255,b>>8&255,255&b]),d=165;for(let a=0;a>2],f+=e[(3&b)<<4|d>>4],a+1>6]),a+2typeof process&&("win32"===process.platform?j="windows":"darwin"===process.platform&&(j="macos"));let n="x64";return"u">typeof process&&"arm64"===process.arch&&(n="aarch64"),{authorization:`Bearer ${d}`,"connect-accept-encoding":"gzip","connect-protocol-version":"1","content-type":"application/connect+proto","user-agent":"connect-es/1.6.1","x-amzn-trace-id":`Root=${e().randomUUID()}`,"x-client-key":h,"x-cursor-checksum":i,"x-cursor-client-version":"3.1.0","x-cursor-client-type":"ide","x-cursor-client-os":j,"x-cursor-client-arch":n,"x-cursor-client-device-type":"desktop","x-cursor-config-version":e().randomUUID(),"x-cursor-timezone":Intl.DateTimeFormat().resolvedOptions().timeZone||"UTC","x-ghost-mode":c?"true":"false","x-request-id":e().randomUUID(),"x-session-id":g}}k.DNS="6ba7b810-9dad-11d1-80b4-00c04fd430c8",k.URL="6ba7b811-9dad-11d1-80b4-00c04fd430c8"},99119:(a,b,c)=>{c.d(b,{Xj:()=>e});var d=c(20243);async function e(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,d.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/8515.js b/cli/app/.next/server/chunks/8515.js new file mode 100644 index 00000000000..2e053e0fa87 --- /dev/null +++ b/cli/app/.next/server/chunks/8515.js @@ -0,0 +1 @@ +"use strict";exports.id=8515,exports.ids=[8515],exports.modules={24709:(a,b,c)=>{c.d(b,{Xg:()=>d.Xg,eh:()=>e,vq:()=>d.vq});var d=c(29737);Object.entries(c(50021).AI_PROVIDERS).filter(([,a])=>a.passthroughModels).map(([a])=>a);let e=Object.entries(d.vq).flatMap(([a,b])=>b.map(b=>({provider:a,model:b.id,name:b.name})))},34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},55103:(a,b,c)=>{a.exports=c(44870)},60475:(a,b,c)=>{c.d(b,{oF:()=>q,tm:()=>p,vF:()=>o});var d=c(34278),e=c(73865),f=c(76760),g=c.n(f),h=c(73024),i=c.n(h),j=c(81372);let k=g().join(j.n,"disabledModels.json");i().existsSync(j.n)||i().mkdirSync(j.n,{recursive:!0});let l={disabled:{}},m=null;async function n(){if(!m){let a=new e.Pv(k);m=new d.t(a,l);try{await m.read()}catch(a){if(a instanceof SyntaxError)m.data={...l},await m.write();else throw a}m.data&&"object"==typeof m.data||(m.data={...l}),m.data.disabled||(m.data.disabled={})}return m}async function o(){return(await n()).data.disabled||{}}async function p(a,b){if(!a||!Array.isArray(b))return;let c=await n(),d=new Set(c.data.disabled[a]||[]);b.forEach(a=>d.add(a)),c.data.disabled[a]=[...d],await c.write()}async function q(a,b){if(!a)return;let c=await n(),d=c.data.disabled[a]||[];if(Array.isArray(b)&&0!==b.length){let e=new Set(b),f=d.filter(a=>!e.has(a));0===f.length?delete c.data.disabled[a]:c.data.disabled[a]=f}else delete c.data.disabled[a];await c.write()}},61250:(a,b,c)=>{c.r(b),c.d(b,{GET:()=>o,OPTIONS:()=>n,buildModelsList:()=>m});var d=c(24709),e=c(50021),f=c(37770),g=c(60475);let h=/[-_][0-9a-f]{8,}$/i,i={image:"image",tts:"tts",embedding:"embedding",stt:"stt",imageToText:"imageToText"};function j(a){return a?.type&&i[a.type]||"llm"}async function k(a){if(!a?.apiKey)return[];let b="string"==typeof a?.providerSpecificData?.baseUrl?a.providerSpecificData.baseUrl.trim().replace(/\/$/,""):"";if(!b)return[];let c=`${b}/models`,d={"Content-Type":"application/json"};if((0,e.mq)(a.provider))d.Authorization=`Bearer ${a.apiKey}`;else{if(!(0,e.gb)(a.provider))return[];c.endsWith("/messages/models")?c=c.slice(0,-9):c.endsWith("/messages")&&(c=`${c.slice(0,-9)}/models`),d["x-api-key"]=a.apiKey,d["anthropic-version"]="2023-06-01",d.Authorization=`Bearer ${a.apiKey}`}try{var f;let a=new AbortController,b=setTimeout(()=>a.abort(),5e3),e=await fetch(c,{method:"GET",headers:d,cache:"no-store",signal:a.signal});if(clearTimeout(b),!e.ok)return[];let g=(f=await e.json(),Array.isArray(f)?f:f?.data||f?.models||f?.results||[]);return Array.from(new Set(g.map(a=>a?.id||a?.name||a?.model).filter(a=>"string"==typeof a&&""!==a.trim())))}catch{return[]}}function l(a,b){let c=e.AI_PROVIDERS[a],d=Array.isArray(c?.serviceKinds)&&c.serviceKinds.length>0?c.serviceKinds:["llm"];return b.some(a=>d.includes(a))}async function m(a){let b=[];try{b=(b=await (0,f.getProviderConnections)()).filter(a=>!1!==a.isActive)}catch(a){console.log("Could not fetch providers, returning all models")}let c=[];try{c=await (0,f.Uv)()}catch(a){console.log("Could not fetch combos")}let i=[];try{i=await (0,f.uv)()}catch(a){console.log("Could not fetch custom models")}let m={};try{m=await (0,f.OM)()}catch(a){console.log("Could not fetch model aliases")}let n={};try{n=await (0,g.vF)()}catch(a){console.log("Could not fetch disabled models")}let o=(a,b)=>Array.isArray(n[a])&&n[a].includes(b),p=new Map;for(let a of b)p.has(a.provider)||p.set(a.provider,a);let q=[];for(let b of c){if(!function(a,b){let c=a?.kind||"llm";return b.includes(c)}(b,a))continue;let c={id:b.name,object:"model",owned_by:"combo"};("webSearch"===b.kind||"webFetch"===b.kind)&&(c.kind=b.kind),q.push(c)}if(0===b.length){let b=Object.fromEntries(Object.entries(d.Xg).map(([a,b])=>[b,a]));for(let[c,e]of Object.entries(d.vq))if(l(b[c]||c,a))for(let b of e)a.includes(j(b))&&(o(c,b.id)||q.push({id:`${c}/${b.id}`,object:"model",owned_by:c}));for(let b of i){if(!b?.id||b.type&&"llm"!==b.type||!a.includes("llm"))continue;let c=b.providerAlias;if(!c)continue;let d=String(b.id).trim();d&&q.push({id:`${c}/${d}`,object:"model",owned_by:c})}}else for(let[b,c]of p.entries()){if(!l(b,a))continue;let f=d.Xg[b]||b,g=(c?.providerSpecificData?.prefix||(0,e.wG)(b)||f).trim(),n=d.vq[f]||[],p=c?.providerSpecificData?.enabledModels,r=Array.isArray(p)&&p.length>0,s=(0,e.mq)(b)||(0,e.gb)(b),t=new Map(n.map(a=>[a.id,j(a)])),u=r?Array.from(new Set(p.filter(a=>"string"==typeof a&&""!==a.trim()))):n.map(a=>a.id);for(let d of(s&&0===u.length&&!h.test(b)&&(u=await k(c)),Array.from(new Set([...u.map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim()),...i.filter(a=>{if(!a?.id||a.type&&"llm"!==a.type)return!1;let c=a.providerAlias;return c===f||c===g||c===b}).map(a=>String(a.id).trim()).filter(a=>""!==a),...Object.values(m||{}).filter(a=>"string"==typeof a&&!!a.includes("/")&&(a.startsWith(`${g}/`)||a.startsWith(`${f}/`)||a.startsWith(`${b}/`))).map(a=>a.startsWith(`${g}/`)?a.slice(g.length+1):a.startsWith(`${f}/`)?a.slice(f.length+1):a.startsWith(`${b}/`)?a.slice(b.length+1):a).filter(a=>"string"==typeof a&&""!==a.trim())])))){let b=t.get(d)||function(a){let b=String(a).toLowerCase();return/embed/.test(b)?"embedding":/tts|speech|audio|voice/.test(b)?"tts":/image|imagen|dall-?e|flux|sdxl|sd-|stable-diffusion/.test(b)?"image":"llm"}(d);a.includes(b)&&(o(g,d)||o(f,d)||q.push({id:`${g}/${d}`,object:"model",owned_by:g}))}let v=e.AI_PROVIDERS[b],w=[];if(a.includes("tts")&&Array.isArray(v?.ttsConfig?.models))for(let a of v.ttsConfig.models)a?.id&&w.push(a.id);if(a.includes("embedding")&&Array.isArray(v?.embeddingConfig?.models))for(let a of v.embeddingConfig.models)a?.id&&w.push(a.id);for(let a of w)o(g,a)||o(f,a)||q.push({id:`${g}/${a}`,object:"model",owned_by:g});a.includes("webSearch")&&v?.searchConfig&&q.push({id:`${g}/search`,object:"model",kind:"webSearch",owned_by:g}),a.includes("webFetch")&&v?.fetchConfig&&q.push({id:`${g}/fetch`,object:"model",kind:"webFetch",owned_by:g})}let r=[],s=new Set;for(let a of q)!a?.id||s.has(a.id)||(s.add(a.id),r.push(a));return r}async function n(){return new Response(null,{headers:{"Access-Control-Allow-Origin":"*","Access-Control-Allow-Methods":"GET, OPTIONS","Access-Control-Allow-Headers":"*"}})}async function o(){try{let a=await m(["llm"]);return Response.json({object:"list",data:a},{headers:{"Access-Control-Allow-Origin":"*"}})}catch(a){return console.log("Error fetching models:",a),Response.json({error:{message:a.message,type:"server_error"}},{status:500})}}},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},81372:(a,b,c)=>{c.d(b,{n:()=>i});var d=c(33873),e=c.n(d),f=c(21820),g=c.n(f);let h="9router",i=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?e().join(process.env.APPDATA||e().join(g().homedir(),"AppData","Roaming"),h):e().join(g().homedir(),`.${h}`)},99218:(a,b,c)=>{Object.defineProperty(b,"I",{enumerable:!0,get:function(){return g}});let d=c(71330),e=c(90711),f=c(43448);async function g(a,b,c,g){if((0,d.isNodeNextResponse)(b)){var h;b.statusCode=c.status,b.statusMessage=c.statusText;let d=["set-cookie","www-authenticate","proxy-authenticate","vary"];null==(h=c.headers)||h.forEach((a,c)=>{if("x-middleware-set-cookie"!==c.toLowerCase())if("set-cookie"===c.toLowerCase())for(let d of(0,f.splitCookiesString)(a))b.appendHeader(c,d);else{let e=void 0!==b.getHeader(c);(d.includes(c.toLowerCase())||!e)&&b.appendHeader(c,a)}});let{originalResponse:i}=b;c.body&&"HEAD"!==a.method?await (0,e.pipeToNodeResponse)(c.body,i,g):i.end()}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/8525.js b/cli/app/.next/server/chunks/8525.js new file mode 100644 index 00000000000..202fbde3293 --- /dev/null +++ b/cli/app/.next/server/chunks/8525.js @@ -0,0 +1 @@ +exports.id=8525,exports.ids=[8525],exports.modules={23016:(a,b,c)=>{"use strict";c.d(b,{C8:()=>j,DR:()=>i,Uc:()=>f,cI:()=>h,eo:()=>g,gx:()=>d,v1:()=>e}),c(73714);let d={BAD_REQUEST:400,UNAUTHORIZED:401,PAYMENT_REQUIRED:402,FORBIDDEN:403,NOT_FOUND:404,NOT_ACCEPTABLE:406,REQUEST_TIMEOUT:408,RATE_LIMITED:429,SERVER_ERROR:500,BAD_GATEWAY:502,SERVICE_UNAVAILABLE:503,GATEWAY_TIMEOUT:504},e={sessionTtlMs:72e5,sessionCleanupIntervalMs:18e5,dnsCacheTtlMs:3e5,proxyDispatchersMaxSize:20},f=64e3,g=32e3,h={429:{attempts:0,delayMs:0},502:{attempts:3,delayMs:3e3},503:{attempts:3,delayMs:2e3},504:{attempts:2,delayMs:3e3}};function i(a){return null==a?{attempts:0,delayMs:2e3}:"number"==typeof a?{attempts:a,delayMs:2e3}:{attempts:a.attempts||0,delayMs:null!=a.delayMs?a.delayMs:2e3}}let j=["Please write a 5-10 word title for the following conversation:"]},24429:()=>{},64749:()=>{},73714:(a,b,c)=>{"use strict";c.d(b,{EQ:()=>f,LY:()=>d,O:()=>e,fh:()=>h,t2:()=>i,wf:()=>g});let d={400:{type:"invalid_request_error",code:"bad_request"},401:{type:"authentication_error",code:"invalid_api_key"},402:{type:"billing_error",code:"payment_required"},403:{type:"permission_error",code:"insufficient_quota"},404:{type:"invalid_request_error",code:"model_not_found"},406:{type:"invalid_request_error",code:"model_not_supported"},429:{type:"rate_limit_error",code:"rate_limit_exceeded"},500:{type:"server_error",code:"internal_server_error"},502:{type:"server_error",code:"bad_gateway"},503:{type:"server_error",code:"service_unavailable"},504:{type:"server_error",code:"gateway_timeout"}},e={400:"Bad request",401:"Invalid API key provided",402:"Payment required",403:"You exceeded your current quota",404:"Model not found",406:"Model not supported",429:"Rate limit exceeded",500:"Internal server error",502:"Bad gateway - upstream provider error",503:"Service temporarily unavailable",504:"Gateway timeout"},f={base:2e3,max:3e5,maxLevel:15},g=3e4,h=18e5,i=[{text:"no credentials",cooldownMs:12e4},{text:"request not allowed",cooldownMs:5e3},{text:"improperly formed request",cooldownMs:12e4},{text:"rate limit",backoff:!0},{text:"too many requests",backoff:!0},{text:"quota exceeded",backoff:!0},{text:"capacity",backoff:!0},{text:"overloaded",backoff:!0},{status:401,cooldownMs:12e4},{status:402,cooldownMs:12e4},{status:403,cooldownMs:12e4},{status:404,cooldownMs:12e4},{status:429,backoff:!0}]},77301:(a,b,c)=>{"use strict";c.d(b,{Op:()=>N,Nq:()=>E,PE:()=>P});var d=c(4573),e=c(29807),f=c(23016);let g="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/146.0.0.0 Safari/537.36";async function h(a,b="mp3"){let c=await a.arrayBuffer();if(c.byteLength<100)throw Error("Upstream returned empty audio");let e=a.headers.get("content-type")||"",f=b;return e.includes("wav")?f="wav":e.includes("mpeg")||e.includes("mp3")?f="mp3":e.includes("ogg")&&(f="ogg"),{base64:d.Buffer.from(c).toString("base64"),format:f}}async function i(a){let b=await a.text().catch(()=>""),c=`Upstream error (${a.status})`;try{let a=JSON.parse(b);c=a?.error?.message||a?.message||a?.detail?.message||("string"==typeof a?.detail?a.detail:null)||b||c}catch{c=b||c}throw Error(c)}let j={token:null,tokenTime:0},k=0;async function l(){let a=Date.now();if(j.token&&a-j.tokenTime<66e4)return j.token;let b=await fetch("https://translate.google.com/",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Google translate fetch failed: ${b.status}`);let c=await b.text(),d=c.match(/"FdrFJe":"(.*?)"/)?.[1],e=c.match(/"cfb2h":"(.*?)"/)?.[1];if(!d||!e)throw Error("Failed to parse Google token");return j.token={"f.sid":d,bl:e},j.tokenTime=a,j.token}let m={token:null,tokenTime:0},n=null,o=0;async function p(){let a=Date.now();if(m.token&&a-m.tokenTime<3e5)return m.token;let b=await fetch("https://www.bing.com/translator",{headers:{"User-Agent":g,"Accept-Language":"vi,en-US;q=0.9,en;q=0.8"}});if(!b.ok)throw Error(`Bing translator fetch failed: ${b.status}`);let c=(b.headers.getSetCookie?.()||[]).map(a=>a.split(";")[0]).join("; "),d=(await b.text()).match(/params_AbusePreventionHelper\s*=\s*\[([^,]+),([^,]+),/);if(!d)throw Error("Failed to parse Bing token");return m.token={key:d[1],token:d[2].replace(/"/g,""),cookie:c},m.tokenTime=a,m.token}async function q(a,b,c){let d=b.split("-").slice(0,2).join("-"),e=b.toLowerCase().includes("male")?"Male":"Female",f=`${a}`,h=new URLSearchParams;return h.append("ssml",f),h.append("token",c.token),h.append("key",c.key),fetch("https://www.bing.com/tfettts?isVertical=1&&IG=1&IID=translator.5023&SFX=1",{method:"POST",body:h.toString(),headers:{"Content-Type":"application/x-www-form-urlencoded",Accept:"*/*",Origin:"https://www.bing.com",Referer:"https://www.bing.com/translator","User-Agent":g,...c.cookie?{Cookie:c.cookie}:{}}})}async function r(){let a=Date.now();if(n&&a-o<864e5)return n;let b=await fetch("https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=6A5AA1D4EAFF4E9FB37E23D68491D6F4",{headers:{"User-Agent":g}});if(!b.ok)throw Error(`Edge TTS voices fetch failed: ${b.status}`);let c=await b.json();return n=c,o=a,c}var s=c(31421),t=c(57975),u=c(51455),v=c(48161),w=c(76760);let x=(0,t.promisify)(s.execFile),y=null;async function z(){let{stdout:a}=await x("say",["-v","?"]),b=[];for(let c of a.split("\n")){let a=c.match(/^([^\s].*?)\s{2,}([a-z]{2}_[A-Z]{2})/);if(!a)continue;let d=a[1].trim(),e=a[2].trim(),f=e.split("_")[0],g=e.split("_")[1];b.push({id:d,name:d,locale:e,lang:f,country:g,gender:""})}return b}async function A(){let{stdout:a}=await x("powershell.exe",["-NoProfile","-NonInteractive","-WindowStyle","Hidden","-Command","Add-Type -AssemblyName System.Speech; $s = New-Object System.Speech.Synthesis.SpeechSynthesizer; $s.GetInstalledVoices() | ForEach-Object { $v = $_.VoiceInfo; [PSCustomObject]@{ Name=$v.Name; Culture=$v.Culture.Name; Gender=$v.Gender } } | ConvertTo-Json -Compress"],{windowsHide:!0}),b=JSON.parse(a.trim()||"[]");return(Array.isArray(b)?b:[b]).map(a=>{let b=a.Culture||"en-US",[c,d=""]=b.split("-");return{id:a.Name,name:a.Name,locale:b.replace("-","_"),lang:c,country:d,gender:({1:"Male",2:"Female",Male:"Male",Female:"Female"})[a.Gender]||""}})}async function B(){if(y)return y;try{let a="win32"===process.platform?await A():await z();return y=a,a}catch{return[]}}async function C(a,b){let c=await (0,u.mkdtemp)((0,w.join)((0,v.tmpdir)(),"tts-")),d=(0,w.join)(c,"out.aiff"),e=(0,w.join)(c,"out.mp3");try{let c=b?["-v",b,"-o",d,a]:["-o",d,a];return await x("say",c),await x("ffmpeg",["-y","-i",d,"-codec:a","libmp3lame","-qscale:a","4",e]),(await (0,u.readFile)(e)).toString("base64")}finally{await (0,u.rm)(c,{recursive:!0,force:!0})}}let D=new Map;async function E(a){if(!a)throw Error("ElevenLabs API key required");let b=Date.now(),c=D.get(a);if(c&&b-c.time<864e5)return c.voices;let d=await fetch("https://api.elevenlabs.io/v1/voices",{headers:{"xi-api-key":a,"Content-Type":"application/json"}});if(!d.ok)throw Error(`ElevenLabs voices fetch failed: ${d.status}`);let e=((await d.json()).voices||[]).map(a=>({...a,lang:a.labels?.language||"en"}));return D.set(a,{voices:e,time:b}),e}let F="gemini-2.5-flash-preview-tts",G="Kore",H=["gemini-2.5-flash-preview-tts","gemini-2.5-pro-preview-tts"],I=[{id:"Zephyr",lang:"en",gender:"Female"},{id:"Puck",lang:"en",gender:"Male"},{id:"Charon",lang:"en",gender:"Male"},{id:"Kore",lang:"en",gender:"Female"},{id:"Fenrir",lang:"en",gender:"Male"},{id:"Leda",lang:"en",gender:"Female"},{id:"Orus",lang:"en",gender:"Male"},{id:"Aoede",lang:"en",gender:"Female"},{id:"Callirrhoe",lang:"en",gender:"Female"},{id:"Autonoe",lang:"en",gender:"Female"},{id:"Enceladus",lang:"en",gender:"Male"},{id:"Iapetus",lang:"en",gender:"Male"},{id:"Umbriel",lang:"en",gender:"Male"},{id:"Algieba",lang:"en",gender:"Male"},{id:"Despina",lang:"en",gender:"Female"},{id:"Erinome",lang:"en",gender:"Female"},{id:"Algenib",lang:"en",gender:"Male"},{id:"Rasalgethi",lang:"en",gender:"Male"},{id:"Laomedeia",lang:"en",gender:"Female"},{id:"Achernar",lang:"en",gender:"Female"},{id:"Alnilam",lang:"en",gender:"Male"},{id:"Schedar",lang:"en",gender:"Male"},{id:"Gacrux",lang:"en",gender:"Female"},{id:"Pulcherrima",lang:"en",gender:"Female"},{id:"Achird",lang:"en",gender:"Male"},{id:"Zubenelgenubi",lang:"en",gender:"Male"},{id:"Vindemiatrix",lang:"en",gender:"Female"},{id:"Sadachbia",lang:"en",gender:"Male"},{id:"Sadaltager",lang:"en",gender:"Male"},{id:"Sulafat",lang:"en",gender:"Female"}];async function J(){return I.map(a=>({voice_id:a.id,name:a.id,labels:{language:a.lang,gender:a.gender}}))}let K={hyperbolic:async function({baseUrl:a,apiKey:b,text:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({text:c})});return d.ok||await i(d),{base64:(await d.json()).audio,format:"mp3"}},deepgram:async function({baseUrl:a,apiKey:b,text:c,modelId:d}){let e=new URL(a);e.searchParams.set("model",d||"aura-asteria-en");let f=await fetch(e.toString(),{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Token ${b}`},body:JSON.stringify({text:c})});return f.ok||await i(f),h(f,"mp3")},"nvidia-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({input:{text:c},voice:e||"default",model:d})});return f.ok||await i(f),h(f,"wav")},"huggingface-tts":async function({baseUrl:a,apiKey:b,text:c,modelId:d}){if(!d||d.includes(".."))throw Error("Invalid HuggingFace model ID");let e=await fetch(`${a}/${d}`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${b}`},body:JSON.stringify({inputs:c})});return e.ok||await i(e),h(e,"wav")},inworld:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Basic ${b}`},body:JSON.stringify({text:c,voiceId:e||"Alex",modelId:d||"inworld-tts-1.5-mini",audioConfig:{audioEncoding:"MP3"}})});f.ok||await i(f);let g=await f.json();if(!g.audioContent)throw Error("Inworld TTS returned no audio");return{base64:g.audioContent,format:"mp3"}},cartesia:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json","X-API-Key":b,"Cartesia-Version":"2024-06-10"},body:JSON.stringify({model_id:d||"sonic-2",transcript:c,...e?{voice:{mode:"id",id:e}}:{},output_format:{container:"mp3",bit_rate:128e3,sample_rate:44100}})});return f.ok||await i(f),h(f,"mp3")},playht:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let[f,g]=(b||":").split(":"),j=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json",Accept:"audio/mpeg","X-USER-ID":f||"",Authorization:`Bearer ${g||b}`},body:JSON.stringify({text:c,voice:e||"s3://voice-cloning-zero-shot/d9ff78ba-d016-47f6-b0ef-dd630f59414e/female-cs/manifest.json",voice_engine:d||"PlayDialog",output_format:"mp3",speed:1})});return j.ok||await i(j),h(j,"mp3")},coqui:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,...c?{speaker_id:c}:{}})});return d.ok||await i(d),h(d,"wav")},tortoise:async function({baseUrl:a,text:b,voiceId:c}){let d=await fetch(a,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({text:b,voice:c||"random"})});return d.ok||await i(d),h(d,"wav")},openai:async function({baseUrl:a,apiKey:b,text:c,modelId:d,voiceId:e}){let f={"Content-Type":"application/json"};b&&(f.Authorization=`Bearer ${b}`);let g=await fetch(a,{method:"POST",headers:f,body:JSON.stringify({model:d,input:c,voice:e||"alloy",response_format:"mp3",speed:1})});return g.ok||await i(g),h(g,"mp3")}},L={"google-tts":{noAuth:!0,async synthesize(a,b){let c=b||"en",d=await l(),e=a.replace(/[@^*()\\/\-_+=><"'\u201c\u201d\u3010\u3011]/g," ").replaceAll(", ",". "),f="jQ1olc",g=1e5*++k+Math.floor(1e3+9e3*Math.random()),h=new URLSearchParams({rpcids:f,"f.sid":d["f.sid"],bl:d.bl,hl:c,"soc-app":1,"soc-platform":1,"soc-device":1,_reqid:g,rt:"c"}),i=[e,c,null,"undefined",[0]],j=new URLSearchParams;j.append("f.req",JSON.stringify([[[f,JSON.stringify(i),null,"generic"]]]));let m=await fetch(`https://translate.google.com/_/TranslateWebserverUi/data/batchexecute?${h}`,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded",Referer:"https://translate.google.com/"},body:j.toString()});if(!m.ok)throw Error(`Google TTS failed: ${m.status}`);let n=JSON.parse(JSON.parse((await m.text()).split("\n")[3])[0][2])[0];if(!n||n.length<100)throw Error("Google TTS returned empty audio");return{base64:n,format:"mp3"}}},"edge-tts":{noAuth:!0,async synthesize(a,b){let c=b||"vi-VN-HoaiMyNeural",e=await p(),f=await q(a,c,e);if((429===f.status||403===f.status)&&(m.token=null,m.tokenTime=0,e=await p(),f=await q(a,c,e)),!f.ok){let a=await f.text().catch(()=>"");throw Error(`Bing TTS failed: ${f.status}${a?" - "+a:""}`)}let g=await f.arrayBuffer();if(g.byteLength<1024)throw Error("Bing TTS returned empty audio");return{base64:d.Buffer.from(g).toString("base64"),format:"mp3"}}},"local-device":{noAuth:!0,synthesize:async(a,b)=>({base64:await C(a,b),format:"mp3"})},elevenlabs:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("ElevenLabs API key required");let e="eleven_flash_v2_5",f=b;b&&b.includes("/")&&([e,f]=b.split("/"));let g=await fetch(`https://api.elevenlabs.io/v1/text-to-speech/${f}`,{method:"POST",headers:{"xi-api-key":c.apiKey,"Content-Type":"application/json"},body:JSON.stringify({text:a,model_id:e,voice_settings:{stability:.5,similarity_boost:.75}})});if(!g.ok){let a=await g.json().catch(()=>({}));throw Error(a?.detail?.message||`ElevenLabs TTS failed: ${g.status}`)}let h=await g.arrayBuffer();if(h.byteLength<1024)throw Error("ElevenLabs TTS returned empty audio");return{base64:d.Buffer.from(h).toString("base64"),format:"mp3"}}},openai:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenAI API key configured");let e="gpt-4o-mini-tts",f="alloy";if(b&&b.includes("/")){let a=b.split("/");2===a.length&&([e,f]=a)}else b&&(f=b);let g=(c.baseUrl||"https://api.openai.com").replace(/\/+$/,""),h=await fetch(`${g}/v1/audio/speech`,{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`},body:JSON.stringify({model:e,voice:f,input:a})});if(!h.ok){let a=await h.json().catch(()=>({}));throw Error(a?.error?.message||`OpenAI TTS failed: ${h.status}`)}let i=await h.arrayBuffer();return{base64:d.Buffer.from(i).toString("base64"),format:"mp3"}}},openrouter:{async synthesize(a,b,c){if(!c?.apiKey)throw Error("No OpenRouter API key configured");let d="openai/gpt-4o-mini-tts",e="alloy";if(b&&b.includes("/")){let a=b.lastIndexOf("/"),c=b.slice(a+1),f=b.slice(0,a);f.includes("/")?(d=f,e=c):e=b}else b&&(e=b);let f=await fetch("https://openrouter.ai/api/v1/chat/completions",{method:"POST",headers:{"Content-Type":"application/json",Authorization:`Bearer ${c.apiKey}`,"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"},body:JSON.stringify({model:d,modalities:["text","audio"],audio:{voice:e,format:"wav"},stream:!0,messages:[{role:"user",content:a}]})});if(!f.ok){let a=await f.json().catch(()=>({}));throw Error(a?.error?.message||`OpenRouter TTS failed: ${f.status}`)}let g=[],h=f.body.getReader(),i=new TextDecoder,j="";for(;;){let{done:a,value:b}=await h.read();if(a)break;let c=(j+=i.decode(b,{stream:!0})).split("\n");for(let a of(j=c.pop(),c))if(a.startsWith("data: ")&&"data: [DONE]"!==a)try{let b=JSON.parse(a.slice(6)),c=b.choices?.[0]?.delta?.audio?.data;c&&g.push(c)}catch{}}if(0===g.length)throw Error("OpenRouter TTS returned no audio data");return{base64:g.join(""),format:"wav"}}},gemini:{async synthesize(a,b,c,e,f={}){var g,h;let i,j;if(!c?.apiKey)throw Error("No Gemini API key configured");let{modelId:k,voiceId:l}=function(a){if(!a)return{modelId:F,voiceId:G};for(let b of H){if(a===b)return{modelId:b,voiceId:G};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}return{modelId:F,voiceId:a}}(b),m=`https://generativelanguage.googleapis.com/v1beta/models/${k}:generateContent?key=${c.apiKey}`,n=await fetch(m,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({contents:[{parts:[{text:(g=f.language,/:\s/.test(a)?a:g?`Say in ${g}: ${a}`:`Say: ${a}`)}]}],generationConfig:{responseModalities:["AUDIO"],speechConfig:{voiceConfig:{prebuiltVoiceConfig:{voiceName:l}}}}})});if(!n.ok){let a=await n.json().catch(()=>({}));throw Error(a?.error?.message||`Gemini TTS failed: ${n.status}`)}let o=await n.json(),p=o?.candidates?.[0]?.content?.parts?.find(a=>a.inlineData?.data)?.inlineData?.data;if(!p){let a=o?.candidates?.[0]?.finishReason||o?.promptFeedback?.blockReason||"unknown";throw Error(`Gemini TTS returned no audio (finishReason: ${a}, voice: ${l}, model: ${k})`)}return{base64:(i=(h=d.Buffer.from(p,"base64")).length,(j=d.Buffer.alloc(44)).write("RIFF",0),j.writeUInt32LE(36+i,4),j.write("WAVE",8),j.write("fmt ",12),j.writeUInt32LE(16,16),j.writeUInt16LE(1,20),j.writeUInt16LE(1,22),j.writeUInt32LE(24e3,24),j.writeUInt32LE(48e3,28),j.writeUInt16LE(2,32),j.writeUInt16LE(16,34),j.write("data",36),j.writeUInt32LE(i,40),d.Buffer.concat([j,h])).toString("base64"),format:"wav"}}}};async function M(a,b,d,e){let{AI_PROVIDERS:f}=await c.e(21).then(c.bind(c,50021)),g=f[a]?.ttsConfig;if(!g)return null;let h=K[g.format];if(!h)return null;let i=e?.apiKey;if("none"!==g.authType&&!i)throw Error(`${a} API key required`);let{modelId:j,voiceId:k}=function(a,b="",c="",d=[]){if(!a)return{modelId:b,voiceId:c};for(let b of d.map(a=>a.id||a).filter(Boolean).sort((a,b)=>b.length-a.length)){if(a===b)return{modelId:b,voiceId:c};if(a.startsWith(`${b}/`))return{modelId:b,voiceId:a.slice(b.length+1)}}let e=a.lastIndexOf("/");return e>0?{modelId:a.slice(0,e),voiceId:a.slice(e+1)}:{modelId:b||a,voiceId:c||a}}(d,g.models?.[0]?.id||"","",g.models||[]);return h({baseUrl:g.baseUrl,apiKey:i,text:b,modelId:j,voiceId:k})}let N={"edge-tts":r,"local-device":B,elevenlabs:E,gemini:J};function O(a,b,c){let e=d.Buffer.from(a,"base64");return"json"===c?{success:!0,response:new Response(JSON.stringify({audio:a,format:b}),{headers:{"Content-Type":"application/json","Access-Control-Allow-Origin":"*"}})}:{success:!0,response:new Response(e,{headers:{"Content-Type":`audio/${b}`,"Content-Length":String(e.length),"Access-Control-Allow-Origin":"*"}})}}async function P({provider:a,model:b,input:c,credentials:d,responseFormat:g="mp3",language:h}){if(!c?.trim())return(0,e.A1)(f.gx.BAD_REQUEST,"Missing required field: input");try{let i=L[a]||null;if(i){let a=await i.synthesize(c.trim(),b,d,g,{language:h});if(void 0!==a.success)return a;return O(a.base64,a.format,g)}let j=await M(a,c.trim(),b,d);if(j)return O(j.base64,j.format,g);return(0,e.A1)(f.gx.BAD_REQUEST,`Provider '${a}' does not support TTS via this route.`)}catch(a){return(0,e.A1)(f.gx.BAD_GATEWAY,a.message||"TTS synthesis failed")}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/chunks/8710.js b/cli/app/.next/server/chunks/8710.js new file mode 100644 index 00000000000..eb4821d289b --- /dev/null +++ b/cli/app/.next/server/chunks/8710.js @@ -0,0 +1 @@ +"use strict";exports.id=8710,exports.ids=[8710],exports.modules={34278:(a,b,c)=>{c.d(b,{t:()=>d});class d{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}},73865:(a,b,c)=>{c.d(b,{Pv:()=>k}),c(73024);var d=c(51455),e=c(76760),f=c(73136);async function g(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class h{#a;#b;#c=!1;#d=null;#e=null;#f=null;#g=null;#h(a){return this.#g=a,this.#f||=new Promise((a,b)=>{this.#e=[a,b]}),new Promise((a,b)=>{this.#f?.then(a).catch(b)})}async #i(a){this.#c=!0;try{await (0,d.writeFile)(this.#b,a,"utf-8"),await g(async()=>{await (0,d.rename)(this.#b,this.#a)},10,100),this.#d?.[0]()}catch(a){throw a instanceof Error&&this.#d?.[1](a),a}finally{if(this.#c=!1,this.#d=this.#e,this.#e=this.#f=null,null!==this.#g){let a=this.#g;this.#g=null,await this.write(a)}}}constructor(a){this.#a=a,this.#b=function(a){let b=a instanceof URL?(0,f.fileURLToPath)(a):a.toString();return(0,e.join)((0,e.dirname)(b),`.${(0,e.basename)(b)}.tmp`)}(a)}async write(a){return this.#c?this.#h(a):this.#i(a)}}class i{#a;#j;constructor(a){this.#a=a,this.#j=new h(a)}async read(){let a;try{a=await (0,d.readFile)(this.#a,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#j.write(a)}}class j{#k;#l;#m;constructor(a,{parse:b,stringify:c}){this.#k=new i(a),this.#l=b,this.#m=c}async read(){let a=await this.#k.read();return null===a?null:this.#l(a)}write(a){return this.#k.write(this.#m(a))}}class k extends j{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}},94723:(a,b,c)=>{c.d(b,{Ay:()=>A});var d=c(55511),e=null;function f(a,b){if("number"!=typeof(a=a||r))throw Error("Illegal arguments: "+typeof a+", "+typeof b);a<4?a=4:a>31&&(a=31);var c=[];return c.push("$2b$"),a<10&&c.push("0"),c.push(a.toString()),c.push("$"),c.push(o(function(a){try{return crypto.getRandomValues(new Uint8Array(a))}catch{}try{return d.randomBytes(a)}catch{}if(!e)throw Error("Neither WebCryptoAPI nor a crypto module is available. Use bcrypt.setRandomFallback to set an alternative");return e(a)}(q),q)),c.join("")}function g(a,b,c){if("function"==typeof b&&(c=b,b=void 0),"function"==typeof a&&(c=a,a=void 0),void 0===a)a=r;else if("number"!=typeof a)throw Error("illegal arguments: "+typeof a);function d(b){k(function(){try{b(null,f(a))}catch(a){b(a)}})}if(!c)return new Promise(function(a,b){d(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);d(c)}function h(a,b){if(void 0===b&&(b=r),"number"==typeof b&&(b=f(b)),"string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return z(a,b)}function i(a,b,c,d){function e(c){"string"==typeof a&&"number"==typeof b?g(b,function(b,e){z(a,e,c,d)}):"string"==typeof a&&"string"==typeof b?z(a,b,c,d):k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b)))}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)}function j(a,b){for(var c=a.length^b.length,d=0;da.length)throw Error("Illegal len: "+b);for(;e>2&63]),c=(3&c)<<4,e>=b||(c|=(d=255&a[e++])>>4&15,f.push(m[63&c]),c=(15&d)<<2,e>=b)){f.push(m[63&c]);break}c|=(d=255&a[e++])>>6&3,f.push(m[63&c]),f.push(m[63&d])}return f.join("")}function p(a,b){var c,d,e,f,g,h=0,i=a.length,j=0,k=[];if(b<=0)throw Error("Illegal len: "+b);for(;h>>0|(48&d)>>4,k.push(String.fromCharCode(f)),!(++j>=b||h>=i||-1==(e=(g=a.charCodeAt(h++))>>0|(60&e)>>2,k.push(String.fromCharCode(f)),++j>=b||h>=i)));){;f=(3&e)<<6>>>0|((g=a.charCodeAt(h++))>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[1],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[2],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[3],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[4],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[5],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[6],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[7],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[8],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[9],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[10],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[11],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[12],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[13],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[14],f^=(d[e>>>24]+d[256|e>>16&255]^d[512|e>>8&255])+d[768|255&e]^c[15],e^=(d[f>>>24]+d[256|f>>16&255]^d[512|f>>8&255])+d[768|255&f]^c[16],a[b]=f^c[17],a[b+1]=e,a}function w(a,b){for(var c=0,d=0;c<4;++c)d=d<<8|255&a[b],b=(b+1)%a.length;return{key:d,offp:b}}function x(a,b,c){for(var d,e=0,f=[0,0],g=b.length,h=c.length,i=0;i31){if(g=Error("Illegal number of rounds (4-31): "+c),d)return void k(d.bind(this,g));throw g}if(b.length!==q){if(g=Error("Illegal salt length: "+b.length+" != "+q),d)return void k(d.bind(this,g));throw g}c=1<>>0;var j,l,m,n=0;function o(){if(e&&e(n/c),n100)););else{for(n=0;n<64;n++)for(m=0;m>1;m++)v(h,m<<1,j,l);var g=[];for(n=0;n>24&255)>>>0),g.push((h[n]>>16&255)>>>0),g.push((h[n]>>8&255)>>>0),g.push((255&h[n])>>>0);return d?void d(null,g):g}d&&k(o)}if("function"==typeof Int32Array?(j=new Int32Array(s),l=new Int32Array(t)):(j=s.slice(),l=t.slice()),!function(a,b,c,d){for(var e,f=0,g=[0,0],h=c.length,i=d.length,j=0;j"$"){if(e=Error("Missing salt rounds"),c)return void k(c.bind(this,e));throw e}var e,f,g,h=10*parseInt(b.substring(g,g+1),10)+parseInt(b.substring(g+1,g+2),10),i=b.substring(g+3,g+25),j=function(a){for(var b,c,d=0,e=Array(l(a)),f=0,g=a.length;f>6|192:((64512&b)==55296&&(64512&(c=a.charCodeAt(f+1)))==56320?(b=65536+((1023&b)<<10)+(1023&c),++f,e[d++]=b>>18|240,e[d++]=b>>12&63|128):e[d++]=b>>12|224,e[d++]=b>>6&63|128),e[d++]=63&b|128);return e}(a+=f>="a"?"\0":""),m=p(i,q);function n(a){var b=[];return b.push("$2"),f>="a"&&b.push(f),b.push("$"),h<10&&b.push("0"),b.push(h.toString()),b.push("$"),b.push(o(m,m.length)),b.push(o(a,4*u.length-1)),b.join("")}if(void 0===c)return n(y(j,m,h));y(j,m,h,function(a,b){a?c(a,null):c(null,n(b))},d)}let A={setRandomFallback:function(a){e=a},genSaltSync:f,genSalt:g,hashSync:h,hash:i,compareSync:function(a,b){if("string"!=typeof a||"string"!=typeof b)throw Error("Illegal arguments: "+typeof a+", "+typeof b);return 60===b.length&&j(h(a,b.substring(0,b.length-31)),b)},compare:function(a,b,c,d){function e(c){"string"!=typeof a||"string"!=typeof b?k(c.bind(this,Error("Illegal arguments: "+typeof a+", "+typeof b))):60!==b.length?k(c.bind(this,null,!1)):i(a,b.substring(0,29),function(a,d){a?c(a):c(null,j(d,b))},d)}if(!c)return new Promise(function(a,b){e(function(c,d){c?b(c):a(d)})});if("function"!=typeof c)throw Error("Illegal callback: "+typeof c);e(c)},getRounds:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return parseInt(a.split("$")[2],10)},getSalt:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);if(60!==a.length)throw Error("Illegal hash length: "+a.length+" != 60");return a.substring(0,29)},truncates:function(a){if("string"!=typeof a)throw Error("Illegal arguments: "+typeof a);return l(a)>72},encodeBase64:function(a,b){return o(a,b)},decodeBase64:function(a,b){return p(a,b)}}}}; \ No newline at end of file diff --git a/cli/app/.next/server/functions-config-manifest.json b/cli/app/.next/server/functions-config-manifest.json new file mode 100644 index 00000000000..5382db5408c --- /dev/null +++ b/cli/app/.next/server/functions-config-manifest.json @@ -0,0 +1,45 @@ +{ + "version": 1, + "functions": { + "/_middleware": { + "runtime": "nodejs", + "matchers": [ + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?(?:\\/(\\/?index|\\/?index\\.json))?[\\/#\\?]?$", + "originalSource": "/" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/dashboard(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?(\\.json)?[\\/#\\?]?$", + "originalSource": "/dashboard/:path*" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api\\/shutdown(\\.json)?[\\/#\\?]?$", + "originalSource": "/api/shutdown" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api\\/settings(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?(\\.json)?[\\/#\\?]?$", + "originalSource": "/api/settings/:path*" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api\\/keys(\\.json)?[\\/#\\?]?$", + "originalSource": "/api/keys" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api\\/keys(?:\\/((?:[^\\/#\\?]+?)(?:\\/(?:[^\\/#\\?]+?))*))?(\\.json)?[\\/#\\?]?$", + "originalSource": "/api/keys/:path*" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api\\/providers\\/client(\\.json)?[\\/#\\?]?$", + "originalSource": "/api/providers/client" + }, + { + "regexp": "^(?:\\/(_next\\/data\\/[^/]{1,}))?\\/api\\/provider-nodes\\/validate(\\.json)?[\\/#\\?]?$", + "originalSource": "/api/provider-nodes/validate" + } + ] + }, + "/api/v1/audio/transcriptions": { + "maxDuration": 300 + } + } +} \ No newline at end of file diff --git a/cli/app/.next/server/middleware-build-manifest.js b/cli/app/.next/server/middleware-build-manifest.js new file mode 100644 index 00000000000..cc31fcfc075 --- /dev/null +++ b/cli/app/.next/server/middleware-build-manifest.js @@ -0,0 +1 @@ +globalThis.__BUILD_MANIFEST={polyfillFiles:["static/chunks/polyfills-42372ed130431b0a.js"],devFiles:[],lowPriorityFiles:["static/g6K-sXverqaFK0NMbiAzn/_buildManifest.js","static/g6K-sXverqaFK0NMbiAzn/_ssgManifest.js"],rootMainFiles:["static/chunks/webpack-86e40ea2022f394c.js","static/chunks/c7879cf7-255d52e3eda24cb7.js","static/chunks/5158-4b48a3595c794bbc.js","static/chunks/main-app-2c8be355ba1c4e93.js"],rootMainFilesTree:{},pages:{"/_app":[]}}; \ No newline at end of file diff --git a/cli/app/.next/server/middleware-manifest.json b/cli/app/.next/server/middleware-manifest.json new file mode 100644 index 00000000000..33872a3e667 --- /dev/null +++ b/cli/app/.next/server/middleware-manifest.json @@ -0,0 +1,6 @@ +{ + "version": 3, + "middleware": {}, + "functions": {}, + "sortedMiddleware": [] +} \ No newline at end of file diff --git a/cli/app/.next/server/middleware-react-loadable-manifest.js b/cli/app/.next/server/middleware-react-loadable-manifest.js new file mode 100644 index 00000000000..eff18781b51 --- /dev/null +++ b/cli/app/.next/server/middleware-react-loadable-manifest.js @@ -0,0 +1 @@ +self.__REACT_LOADABLE_MANIFEST='{"app/(dashboard)/dashboard/translator/page.js -> @monaco-editor/react":{"id":41310,"files":["static/chunks/1310.277601b1f5c247fc.js"]}}'; \ No newline at end of file diff --git a/cli/app/.next/server/middleware.js b/cli/app/.next/server/middleware.js new file mode 100644 index 00000000000..a39a08dce09 --- /dev/null +++ b/cli/app/.next/server/middleware.js @@ -0,0 +1,18 @@ +(()=>{var a={};a.id=8929,a.ids=[8929],a.modules={97:(a,b)=>{"use strict";function c(){let a,b,c=new Promise((c,d)=>{a=c,b=d});return{resolve:a,reject:b,promise:c}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createPromiseWithResolvers",{enumerable:!0,get:function(){return c}})},414:(a,b,c)=>{var d=global.process;let e=function(a){return a&&"object"==typeof a&&"function"==typeof a.removeListener&&"function"==typeof a.emit&&"function"==typeof a.reallyExit&&"function"==typeof a.listeners&&"function"==typeof a.kill&&"number"==typeof a.pid&&"function"==typeof a.on};if(e(d)){var f,g=c(12412),h=c(23581),i=/^win/i.test(d.platform),j=c(94735);"function"!=typeof j&&(j=j.EventEmitter),d.__signal_exit_emitter__?f=d.__signal_exit_emitter__:((f=d.__signal_exit_emitter__=new j).count=0,f.emitted={}),f.infinite||(f.setMaxListeners(1/0),f.infinite=!0),a.exports=function(a,b){if(!e(global.process))return function(){};g.equal(typeof a,"function","a callback must be provided for exit handler"),!1===n&&o();var c="exit";return b&&b.alwaysLast&&(c="afterexit"),f.on(c,a),function(){f.removeListener(c,a),0===f.listeners("exit").length&&0===f.listeners("afterexit").length&&k()}};var k=function(){n&&e(global.process)&&(n=!1,h.forEach(function(a){try{d.removeListener(a,m[a])}catch(a){}}),d.emit=r,d.reallyExit=p,f.count-=1)};a.exports.unload=k;var l=function(a,b,c){f.emitted[a]||(f.emitted[a]=!0,f.emit(a,b,c))},m={};h.forEach(function(a){m[a]=function(){e(global.process)&&d.listeners(a).length===f.count&&(k(),l("exit",null,a),l("afterexit",null,a),i&&"SIGHUP"===a&&(a="SIGINT"),d.kill(d.pid,a))}}),a.exports.signals=function(){return h};var n=!1,o=function(){!n&&e(global.process)&&(n=!0,f.count+=1,h=h.filter(function(a){try{return d.on(a,m[a]),!0}catch(a){return!1}}),d.emit=s,d.reallyExit=q)};a.exports.load=o;var p=d.reallyExit,q=function(a){e(global.process)&&(d.exitCode=a||0,l("exit",d.exitCode,null),l("afterexit",d.exitCode,null),p.call(d,d.exitCode))},r=d.emit,s=function(a,b){if(!("exit"===a&&e(global.process)))return r.apply(this,arguments);void 0!==b&&(d.exitCode=b);var c=r.apply(this,arguments);return l("exit",d.exitCode,null),l("afterexit",d.exitCode,null),c}}else a.exports=function(){return function(){}}},482:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getPathMatch",{enumerable:!0,get:function(){return e}});let d=c(58865);function e(a,b){let c=[],e=(0,d.pathToRegexp)(a,c,{delimiter:"/",sensitive:"boolean"==typeof b?.sensitive&&b.sensitive,strict:b?.strict}),f=(0,d.regexpToFunction)(b?.regexModifier?new RegExp(b.regexModifier(e.source),e.flags):e,c);return(a,d)=>{if("string"!=typeof a)return!1;let e=f(a);if(!e)return!1;if(b?.removeUnnamedParams)for(let a of c)"number"==typeof a.name&&delete e.params[a.name];return{...d,...e.params}}}},798:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseUrl",{enumerable:!0,get:function(){return f}});let d=c(83767),e=c(53549);function f(a){if(a.startsWith("/"))return(0,e.parseRelativeUrl)(a);let b=new URL(a),c=b.username,f=b.password,g=c?f?`${c}:${f}`:c:null,h=b.pathname,i=b.search;return{auth:g,hash:b.hash,hostname:b.hostname,href:b.href,pathname:h,port:b.port,protocol:b.protocol,query:(0,d.searchParamsToUrlQuery)(b.searchParams),search:i,origin:b.origin,slashes:"//"===b.href.slice(b.protocol.length,b.protocol.length+2)}}},844:(a,b,c)=>{var d=c(81115),e=process.cwd,f=null,g=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return f||(f=e.call(process)),f};try{process.cwd()}catch(a){}if("function"==typeof process.chdir){var h=process.chdir;process.chdir=function(a){f=null,h.call(process,a)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,h)}a.exports=function(a){var b,c,e;function f(b){return b?function(c,d,e){return b.call(a,c,d,function(a){m(a)&&(a=null),e&&e.apply(this,arguments)})}:b}function h(b){return b?function(c,d){try{return b.call(a,c,d)}catch(a){if(!m(a))throw a}}:b}function i(b){return b?function(c,d,e,f){return b.call(a,c,d,e,function(a){m(a)&&(a=null),f&&f.apply(this,arguments)})}:b}function j(b){return b?function(c,d,e){try{return b.call(a,c,d,e)}catch(a){if(!m(a))throw a}}:b}function k(b){return b?function(c,d,e){function f(a,b){b&&(b.uid<0&&(b.uid+=0x100000000),b.gid<0&&(b.gid+=0x100000000)),e&&e.apply(this,arguments)}return"function"==typeof d&&(e=d,d=null),d?b.call(a,c,d,f):b.call(a,c,f)}:b}function l(b){return b?function(c,d){var e=d?b.call(a,c,d):b.call(a,c);return e&&(e.uid<0&&(e.uid+=0x100000000),e.gid<0&&(e.gid+=0x100000000)),e}:b}function m(a){return!a||"ENOSYS"===a.code||(!process.getuid||0!==process.getuid())&&("EINVAL"===a.code||"EPERM"===a.code)}d.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&((c=a).lchmod=function(a,b,e){c.open(a,d.O_WRONLY|d.O_SYMLINK,b,function(a,d){if(a){e&&e(a);return}c.fchmod(d,b,function(a){c.close(d,function(b){e&&e(a||b)})})})},c.lchmodSync=function(a,b){var e,f=c.openSync(a,d.O_WRONLY|d.O_SYMLINK,b),g=!0;try{e=c.fchmodSync(f,b),g=!1}finally{if(g)try{c.closeSync(f)}catch(a){}else c.closeSync(f)}return e}),a.lutimes||(e=a,d.hasOwnProperty("O_SYMLINK")&&e.futimes?(e.lutimes=function(a,b,c,f){e.open(a,d.O_SYMLINK,function(a,d){if(a){f&&f(a);return}e.futimes(d,b,c,function(a){e.close(d,function(b){f&&f(a||b)})})})},e.lutimesSync=function(a,b,c){var f,g=e.openSync(a,d.O_SYMLINK),h=!0;try{f=e.futimesSync(g,b,c),h=!1}finally{if(h)try{e.closeSync(g)}catch(a){}else e.closeSync(g)}return f}):e.futimes&&(e.lutimes=function(a,b,c,d){d&&process.nextTick(d)},e.lutimesSync=function(){})),a.chown=i(a.chown),a.fchown=i(a.fchown),a.lchown=i(a.lchown),a.chmod=f(a.chmod),a.fchmod=f(a.fchmod),a.lchmod=f(a.lchmod),a.chownSync=j(a.chownSync),a.fchownSync=j(a.fchownSync),a.lchownSync=j(a.lchownSync),a.chmodSync=h(a.chmodSync),a.fchmodSync=h(a.fchmodSync),a.lchmodSync=h(a.lchmodSync),a.stat=k(a.stat),a.fstat=k(a.fstat),a.lstat=k(a.lstat),a.statSync=l(a.statSync),a.fstatSync=l(a.fstatSync),a.lstatSync=l(a.lstatSync),a.chmod&&!a.lchmod&&(a.lchmod=function(a,b,c){c&&process.nextTick(c)},a.lchmodSync=function(){}),a.chown&&!a.lchown&&(a.lchown=function(a,b,c,d){d&&process.nextTick(d)},a.lchownSync=function(){}),"win32"===g&&(a.rename="function"!=typeof a.rename?a.rename:function(b){function c(c,d,e){var f=Date.now(),g=0;b(c,d,function h(i){if(i&&("EACCES"===i.code||"EPERM"===i.code||"EBUSY"===i.code)&&Date.now()-f<6e4){setTimeout(function(){a.stat(d,function(a,f){a&&"ENOENT"===a.code?b(c,d,h):e(i)})},g),g<100&&(g+=10);return}e&&e(i)})}return Object.setPrototypeOf&&Object.setPrototypeOf(c,b),c}(a.rename)),a.read="function"!=typeof a.read?a.read:function(b){function c(c,d,e,f,g,h){var i;if(h&&"function"==typeof h){var j=0;i=function(k,l,m){if(k&&"EAGAIN"===k.code&&j<10)return j++,b.call(a,c,d,e,f,g,i);h.apply(this,arguments)}}return b.call(a,c,d,e,f,g,i)}return Object.setPrototypeOf&&Object.setPrototypeOf(c,b),c}(a.read),a.readSync="function"!=typeof a.readSync?a.readSync:(b=a.readSync,function(c,d,e,f,g){for(var h=0;;)try{return b.call(a,c,d,e,f,g)}catch(a){if("EAGAIN"===a.code&&h<10){h++;continue}throw a}})}},1899:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={BailoutToCSRError:function(){return f},isBailoutToCSRError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="BAILOUT_TO_CLIENT_SIDE_RENDERING";class f extends Error{constructor(a){super(`Bail out to client-side rendering: ${a}`),this.reason=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===e}},3295:a=>{"use strict";a.exports=require("next/dist/server/app-render/after-task-async-storage.external.js")},5827:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isInterceptionAppRoute:function(){return k},isNormalizedAppRoute:function(){return j},parseAppRoute:function(){return function a(b,c){let d,e,g,h=b.split("/").filter(Boolean),j=[];for(let k of h){let h=i(k);if(h){if(c&&("route-group"===h.type||"parallel-route"===h.type))throw Object.defineProperty(new f.InvariantError(`${b} is being parsed as a normalized route, but it has a route group or parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E923",enumerable:!1,configurable:!0});if(j.push(h),h.interceptionMarker){let f=b.split(h.interceptionMarker);if(2!==f.length)throw Object.defineProperty(Error(`Invalid interception route: ${b}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});e=c?a(f[0],!0):a(f[0],!1),g=c?a(f[1],!0):a(f[1],!1),d=h.interceptionMarker}}}let k=j.filter(a=>"dynamic"===a.type);return{normalized:c,pathname:b,segments:j,dynamicSegments:k,interceptionMarker:d,interceptingRoute:e,interceptedRoute:g}}},parseAppRouteSegment:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(93402),g=c(92959),h=c(66072);function i(a){if(""===a)return null;let b=h.INTERCEPTION_ROUTE_MARKERS.find(b=>a.startsWith(b)),c=(0,g.getSegmentParam)(a);return c?{type:"dynamic",name:a,param:c,interceptionMarker:b}:a.startsWith("(")&&a.endsWith(")")?{type:"route-group",name:a,interceptionMarker:b}:a.startsWith("@")?{type:"parallel-route",name:a,interceptionMarker:b}:{type:"static",name:a,interceptionMarker:b}}function j(a){return a.normalized}function k(a){return void 0!==a.interceptionMarker&&void 0!==a.interceptingRoute&&void 0!==a.interceptedRoute}},5885:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={CacheHandler:function(){return s},IncrementalCache:function(){return t}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(32060),h=(d=c(82324))&&d.__esModule?d:{default:d},i=c(29788),j=c(71286),k=c(10838),l=c(97538),m=c(63033),n=c(93402),o=c(28388),p=c(29294),q=c(9367),r=c(36820);class s{constructor(a){}async get(a,b){return{}}async set(a,b,c){}async revalidateTag(a,b){}resetRequestCache(){}}class t{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:a,dev:b,flushToDisk:c,minimalMode:d,serverDistDir:e,requestHeaders:f,maxMemoryCacheSize:g,getPrerenderManifest:i,fetchCacheKeyPrefix:k,CurCacheHandler:m,allowedRevalidateHeaderKeys:n}){var p,q,r,s;this.locks=new Map,this.hasCustomCacheHandler=!!m;const u=Symbol.for("@next/cache-handlers"),v=globalThis;if(m)t.debug&&console.log("IncrementalCache: using custom cache handler",m.name);else{const b=v[u];(null==b?void 0:b.FetchCache)?(m=b.FetchCache,t.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):a&&e&&(t.debug&&console.log("IncrementalCache: using filesystem cache handler"),m=h.default)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(g=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=b,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=d,this.requestHeaders=f,this.allowedRevalidateHeaderKeys=n,this.prerenderManifest=i(),this.cacheControls=new l.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=k;let w=[];f[j.PRERENDER_REVALIDATE_HEADER]===(null==(q=this.prerenderManifest)||null==(p=q.preview)?void 0:p.previewModeId)&&(this.isOnDemandRevalidate=!0),d&&(w=this.revalidatedTags=(0,o.getPreviouslyRevalidatedTags)(f,null==(s=this.prerenderManifest)||null==(r=s.preview)?void 0:r.previewModeId)),m&&(this.cacheHandler=new m({dev:b,fs:a,flushToDisk:c,serverDistDir:e,revalidatedTags:w,maxMemoryCacheSize:g,_requestHeaders:f,fetchCacheKeyPrefix:k}))}calculateRevalidate(a,b,c,d){if(c)return Math.floor(performance.timeOrigin+performance.now()-1e3);let e=this.cacheControls.get((0,k.toRoute)(a)),f=e?e.revalidate:!d&&1;return"number"==typeof f?1e3*f+b:f}_getPathname(a,b){return b?a:(0,i.normalizePagePath)(a)}resetRequestCache(){var a,b;null==(b=this.cacheHandler)||null==(a=b.resetRequestCache)||a.call(b)}async lock(a){for(;;){let b=this.locks.get(a);if(t.debug&&console.log("IncrementalCache: lock get",a,!!b),!b)break;await b}let{resolve:b,promise:c}=new q.DetachedPromise;return t.debug&&console.log("IncrementalCache: successfully locked",a),this.locks.set(a,c),()=>{b(),this.locks.delete(a)}}async revalidateTag(a,b){var c;return null==(c=this.cacheHandler)?void 0:c.revalidateTag(a,b)}async generateCacheKey(a,b={}){let d=[],e=new TextEncoder,f=new TextDecoder;if(b.body)if(b.body instanceof Uint8Array)d.push(f.decode(b.body)),b._ogBody=b.body;else if("function"==typeof b.body.getReader){let a=b.body,c=[];try{await a.pipeTo(new WritableStream({write(a){"string"==typeof a?(c.push(e.encode(a)),d.push(a)):(c.push(a),d.push(f.decode(a,{stream:!0})))}})),d.push(f.decode());let g=c.reduce((a,b)=>a+b.length,0),h=new Uint8Array(g),i=0;for(let a of c)h.set(a,i),i+=a.length;b._ogBody=h}catch(a){console.error("Problem reading body",a)}}else if("function"==typeof b.body.keys){let a=b.body;for(let c of(b._ogBody=b.body,new Set([...a.keys()]))){let b=a.getAll(c);d.push(`${c}=${(await Promise.all(b.map(async a=>"string"==typeof a?a:await a.text()))).join(",")}`)}}else if("function"==typeof b.body.arrayBuffer){let a=b.body,c=await a.arrayBuffer();d.push(await a.text()),b._ogBody=new Blob([c],{type:a.type})}else"string"==typeof b.body&&(d.push(b.body),b._ogBody=b.body);let g="function"==typeof(b.headers||{}).keys?Object.fromEntries(b.headers):Object.assign({},b.headers);"traceparent"in g&&delete g.traceparent,"tracestate"in g&&delete g.tracestate;let h=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",a,b.method,g,b.mode,b.redirect,b.credentials,b.referrer,b.referrerPolicy,b.integrity,b.cache,d]);return c(55511).createHash("sha256").update(h).digest("hex")}async get(a,b){var c,d,e,f,h,i,l;let o,q;if(b.kind===g.IncrementalCacheKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getRenderResumeDataCache)(c):null;if(d){let c=d.fetch.get(a);if((null==c?void 0:c.kind)===g.CachedRouteKind.FETCH){let d=p.workAsyncStorage.getStore();if(![...b.tags||[],...b.softTags||[]].some(a=>{var b,c;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==d||null==(c=d.pendingRevalidatedTags)?void 0:c.some(b=>b.tag===a))}))return t.debug&&console.log("IncrementalCache: rdc:hit",a),{isStale:!1,value:c};t.debug&&console.log("IncrementalCache: rdc:revalidated-tag",a)}else t.debug&&console.log("IncrementalCache: rdc:miss",a)}else t.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(b.kind!==g.IncrementalCacheKind.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;a=this._getPathname(a,b.kind===g.IncrementalCacheKind.FETCH);let s=await (null==(c=this.cacheHandler)?void 0:c.get(a,b));if(b.kind===g.IncrementalCacheKind.FETCH){if(!s)return null;if((null==(e=s.value)?void 0:e.kind)!==g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} to be a "FETCH" kind, got ${JSON.stringify(null==(f=s.value)?void 0:f.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let c=p.workAsyncStorage.getStore(),d=[...b.tags||[],...b.softTags||[]];if(d.some(a=>{var b,d;return(null==(b=this.revalidatedTags)?void 0:b.includes(a))||(null==c||null==(d=c.pendingRevalidatedTags)?void 0:d.some(b=>b.tag===a))}))return t.debug&&console.log("IncrementalCache: expired tag",a),null;let h=m.workUnitAsyncStorage.getStore();if(h){let b=(0,m.getPrerenderResumeDataCache)(h);b&&(t.debug&&console.log("IncrementalCache: rdc:set",a),b.fetch.set(a,s.value))}let i=b.revalidate||s.value.revalidate,j=(performance.timeOrigin+performance.now()-(s.lastModified||0))/1e3>i,k=s.value.data;return(0,r.areTagsExpired)(d,s.lastModified)?null:((0,r.areTagsStale)(d,s.lastModified)&&(j=!0),{isStale:j,value:{kind:g.CachedRouteKind.FETCH,data:k,revalidate:i}})}if((null==s||null==(d=s.value)?void 0:d.kind)===g.CachedRouteKind.FETCH)throw Object.defineProperty(new n.InvariantError(`Expected cached value for cache key ${JSON.stringify(a)} not to be a ${JSON.stringify(b.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let u=null,{isFallback:v}=b,w=this.cacheControls.get((0,k.toRoute)(a));if((null==s?void 0:s.lastModified)===-1)o=-1,q=-1*j.CACHE_ONE_YEAR_SECONDS*1e3;else{let c=performance.timeOrigin+performance.now(),d=(null==s?void 0:s.lastModified)||c;if(void 0===(o=!1!==(q=this.calculateRevalidate(a,d,this.dev??!1,b.isFallback))&&q0&&((0,r.areTagsExpired)(b,d)?o=-1:(0,r.areTagsStale)(b,d)&&(o=!0))}}}return s&&(u={isStale:o,cacheControl:w,revalidateAfter:q,value:s.value,isFallback:v}),!s&&this.prerenderManifest.notFoundRoutes.includes(a)&&(u={isStale:o,value:null,cacheControl:w,revalidateAfter:q,isFallback:v},this.set(a,u.value,{...b,cacheControl:w})),u}async set(a,b,c){if((null==b?void 0:b.kind)===g.CachedRouteKind.FETCH){let c=m.workUnitAsyncStorage.getStore(),d=c?(0,m.getPrerenderResumeDataCache)(c):null;d&&(t.debug&&console.log("IncrementalCache: rdc:set",a),d.fetch.set(a,b))}if(this.disableForTestmode||this.dev&&!c.fetchCache)return;a=this._getPathname(a,c.fetchCache);let d=JSON.stringify(b).length;if(c.fetchCache&&d>2097152&&!this.hasCustomCacheHandler&&!c.isImplicitBuildTimeCache){let b=`Failed to set Next.js data cache for ${c.fetchUrl||a}, items over 2MB can not be cached (${d} bytes)`;if(this.dev)throw Object.defineProperty(Error(b),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(b);return}try{var e;!c.fetchCache&&c.cacheControl&&this.cacheControls.set((0,k.toRoute)(a),c.cacheControl),await (null==(e=this.cacheHandler)?void 0:e.set(a,b,c))}catch(b){console.warn("Failed to update prerender cache for",a,b)}}}},7364:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getImplicitTags",{enumerable:!0,get:function(){return g}});let d=c(71286),e=c(53373),f=c(53465);async function g(a,b,c){let g=new Set;for(let b of(a=>{let b=["/layout"];if(a.startsWith("/")){let c=a.split("/");for(let a=1;ae.getExpiration(a)));return b}(h)}}},9367:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DetachedPromise",{enumerable:!0,get:function(){return c}});class c{constructor(){let a,b;this.promise=new Promise((c,d)=>{a=c,b=d}),this.resolve=a,this.reject=b}}},9388:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isRequestAPICallableInsideAfter:function(){return j},throwForSearchParamsAccessInUseCache:function(){return i},throwWithStaticGenerationBailoutErrorWithDynamicError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(63290),g=c(3295);function h(a,b){throw Object.defineProperty(new f.StaticGenBailoutError(`Route ${a} with \`dynamic = "error"\` couldn't be rendered statically because it used ${b}. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E543",enumerable:!1,configurable:!0})}function i(a,b){let c=Object.defineProperty(Error(`Route ${a.route} used \`searchParams\` inside "use cache". Accessing dynamic request data inside a cache scope is not supported. If you need some search params inside a cached function await \`searchParams\` outside of the cached function and pass only the required search params as arguments to the cached function. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E842",enumerable:!1,configurable:!0});throw Error.captureStackTrace(c,b),a.invalidDynamicUsageError??=c,c}function j(){let a=g.afterTaskAsyncStorage.getStore();return(null==a?void 0:a.rootTaskSpawnPhase)==="action"}},10098:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={HeadersAdapter:function(){return h},ReadonlyHeadersError:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(14364);class g extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new g}}class h extends Headers{constructor(a){super(),this.headers=new Proxy(a,{get(b,c,d){if("symbol"==typeof c)return f.ReflectAdapter.get(b,c,d);let e=c.toLowerCase(),g=Object.keys(a).find(a=>a.toLowerCase()===e);if(void 0!==g)return f.ReflectAdapter.get(b,g,d)},set(b,c,d,e){if("symbol"==typeof c)return f.ReflectAdapter.set(b,c,d,e);let g=c.toLowerCase(),h=Object.keys(a).find(a=>a.toLowerCase()===g);return f.ReflectAdapter.set(b,h??c,d,e)},has(b,c){if("symbol"==typeof c)return f.ReflectAdapter.has(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0!==e&&f.ReflectAdapter.has(b,e)},deleteProperty(b,c){if("symbol"==typeof c)return f.ReflectAdapter.deleteProperty(b,c);let d=c.toLowerCase(),e=Object.keys(a).find(a=>a.toLowerCase()===d);return void 0===e||f.ReflectAdapter.deleteProperty(b,e)}})}static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"append":case"delete":case"set":return g.callable;default:return f.ReflectAdapter.get(a,b,c)}}})}merge(a){return Array.isArray(a)?a.join(", "):a}static from(a){return a instanceof Headers?a:new h(a)}append(a,b){let c=this.headers[a];"string"==typeof c?this.headers[a]=[c,b]:Array.isArray(c)?c.push(b):this.headers[a]=b}delete(a){delete this.headers[a]}get(a){let b=this.headers[a];return void 0!==b?this.merge(b):null}has(a){return void 0!==this.headers[a]}set(a,b){this.headers[a]=b}forEach(a,b){for(let[c,d]of this.entries())a.call(b,d,c,this)}*entries(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase(),c=this.get(b);yield[b,c]}}*keys(){for(let a of Object.keys(this.headers)){let b=a.toLowerCase();yield b}}*values(){for(let a of Object.keys(this.headers)){let b=this.get(a);yield b}}[Symbol.iterator](){return this.entries()}}},10838:(a,b)=>{"use strict";function c(a){return a.replace(/(?:\/index)?\/?$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"toRoute",{enumerable:!0,get:function(){return c}})},10846:a=>{"use strict";a.exports=require("next/dist/compiled/next-server/app-page.runtime.prod.js")},10854:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"URLPattern",{enumerable:!0,get:function(){return c}});let c="u"{var d,e,f,g=c(29021),h=c(844),i=c(73259),j=c(85495),k=c(28354);function l(a,b){Object.defineProperty(a,d,{get:function(){return b}})}"function"==typeof Symbol&&"function"==typeof Symbol.for?(d=Symbol.for("graceful-fs.queue"),e=Symbol.for("graceful-fs.previous")):(d="___graceful-fs.queue",e="___graceful-fs.previous");var m=function(){};function n(a){h(a),a.gracefulify=n,a.createReadStream=function(b,c){return new a.ReadStream(b,c)},a.createWriteStream=function(b,c){return new a.WriteStream(b,c)};var b=a.readFile;a.readFile=function(a,c,d){return"function"==typeof c&&(d=c,c=null),function a(c,d,e,f){return b(c,d,function(b){b&&("EMFILE"===b.code||"ENFILE"===b.code)?o([a,[c,d,e],b,f||Date.now(),Date.now()]):"function"==typeof e&&e.apply(this,arguments)})}(a,c,d)};var c=a.writeFile;a.writeFile=function(a,b,d,e){return"function"==typeof d&&(e=d,d=null),function a(b,d,e,f,g){return c(b,d,e,function(c){c&&("EMFILE"===c.code||"ENFILE"===c.code)?o([a,[b,d,e,f],c,g||Date.now(),Date.now()]):"function"==typeof f&&f.apply(this,arguments)})}(a,b,d,e)};var d=a.appendFile;d&&(a.appendFile=function(a,b,c,e){return"function"==typeof c&&(e=c,c=null),function a(b,c,e,f,g){return d(b,c,e,function(d){d&&("EMFILE"===d.code||"ENFILE"===d.code)?o([a,[b,c,e,f],d,g||Date.now(),Date.now()]):"function"==typeof f&&f.apply(this,arguments)})}(a,b,c,e)});var e=a.copyFile;e&&(a.copyFile=function(a,b,c,d){return"function"==typeof c&&(d=c,c=0),function a(b,c,d,f,g){return e(b,c,d,function(e){e&&("EMFILE"===e.code||"ENFILE"===e.code)?o([a,[b,c,d,f],e,g||Date.now(),Date.now()]):"function"==typeof f&&f.apply(this,arguments)})}(a,b,c,d)});var f=a.readdir;a.readdir=function(a,b,c){"function"==typeof b&&(c=b,b=null);var d=g.test(process.version)?function(a,b,c,d){return f(a,e(a,b,c,d))}:function(a,b,c,d){return f(a,b,e(a,b,c,d))};return d(a,b,c);function e(a,b,c,e){return function(f,g){f&&("EMFILE"===f.code||"ENFILE"===f.code)?o([d,[a,b,c],f,e||Date.now(),Date.now()]):(g&&g.sort&&g.sort(),"function"==typeof c&&c.call(this,f,g))}}};var g=/^v[0-5]\./;if("v0.8"===process.version.substr(0,4)){var j=i(a);q=j.ReadStream,r=j.WriteStream}var k=a.ReadStream;k&&(q.prototype=Object.create(k.prototype),q.prototype.open=function(){var a=this;t(a.path,a.flags,a.mode,function(b,c){b?(a.autoClose&&a.destroy(),a.emit("error",b)):(a.fd=c,a.emit("open",c),a.read())})});var l=a.WriteStream;l&&(r.prototype=Object.create(l.prototype),r.prototype.open=function(){var a=this;t(a.path,a.flags,a.mode,function(b,c){b?(a.destroy(),a.emit("error",b)):(a.fd=c,a.emit("open",c))})}),Object.defineProperty(a,"ReadStream",{get:function(){return q},set:function(a){q=a},enumerable:!0,configurable:!0}),Object.defineProperty(a,"WriteStream",{get:function(){return r},set:function(a){r=a},enumerable:!0,configurable:!0});var m=q;Object.defineProperty(a,"FileReadStream",{get:function(){return m},set:function(a){m=a},enumerable:!0,configurable:!0});var p=r;function q(a,b){return this instanceof q?(k.apply(this,arguments),this):q.apply(Object.create(q.prototype),arguments)}function r(a,b){return this instanceof r?(l.apply(this,arguments),this):r.apply(Object.create(r.prototype),arguments)}Object.defineProperty(a,"FileWriteStream",{get:function(){return p},set:function(a){p=a},enumerable:!0,configurable:!0});var s=a.open;function t(a,b,c,d){return"function"==typeof c&&(d=c,c=null),function a(b,c,d,e,f){return s(b,c,d,function(g,h){g&&("EMFILE"===g.code||"ENFILE"===g.code)?o([a,[b,c,d,e],g,f||Date.now(),Date.now()]):"function"==typeof e&&e.apply(this,arguments)})}(a,b,c,d)}return a.open=t,a}function o(a){m("ENQUEUE",a[0].name,a[1]),g[d].push(a),q()}function p(){for(var a=Date.now(),b=0;b2&&(g[d][b][3]=a,g[d][b][4]=a);q()}function q(){if(clearTimeout(f),f=void 0,0!==g[d].length){var a=g[d].shift(),b=a[0],c=a[1],e=a[2],h=a[3],i=a[4];if(void 0===h)m("RETRY",b.name,c),b.apply(null,c);else if(Date.now()-h>=6e4){m("TIMEOUT",b.name,c);var j=c.pop();"function"==typeof j&&j.call(null,e)}else Date.now()-i>=Math.min(1.2*Math.max(i-h,1),100)?(m("RETRY",b.name,c),b.apply(null,c.concat([h]))):g[d].push(a);void 0===f&&(f=setTimeout(q,0))}}k.debuglog?m=k.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(m=function(){var a=k.format.apply(k,arguments);console.error(a="GFS4: "+a.split(/\n/).join("\nGFS4: "))}),!g[d]&&(l(g,global[d]||[]),g.close=function(a){function b(b,c){return a.call(g,b,function(a){a||p(),"function"==typeof c&&c.apply(this,arguments)})}return Object.defineProperty(b,e,{value:a}),b}(g.close),g.closeSync=function(a){function b(b){a.apply(g,arguments),p()}return Object.defineProperty(b,e,{value:a}),b}(g.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",function(){m(g[d]),c(12412).equal(g[d].length,0)})),global[d]||l(global,g[d]),a.exports=n(j(g)),process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!g.__patched&&(a.exports=n(g),g.__patched=!0)},12342:(a,b,c)=>{"use strict";a.exports=c(10846)},12412:a=>{"use strict";a.exports=require("assert")},13449:(a,b,c)=>{"use strict";function d(a){return function(){let{cookie:b}=a;if(!b)return{};let{parse:d}=c(59454);return d(Array.isArray(b)?b.join("; "):b)}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getCookieParser",{enumerable:!0,get:function(){return d}})},14071:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"DraftModeProvider",{enumerable:!0,get:function(){return e}});let d=c(91688);class e{constructor(a,b,c,e){var f;const g=a&&(0,d.checkIsOnDemandRevalidate)(b,a).isOnDemandRevalidate,h=null==(f=c.get(d.COOKIE_NAME_PRERENDER_BYPASS))?void 0:f.value;this._isEnabled=!!(!g&&h&&a&&h===a.previewModeId),this._previewModeId=null==a?void 0:a.previewModeId,this._mutableCookies=e}get isEnabled(){return this._isEnabled}enable(){if(!this._previewModeId)throw Object.defineProperty(Error("Invariant: previewProps missing previewModeId this should never happen"),"__NEXT_ERROR_CODE",{value:"E93",enumerable:!1,configurable:!0});this._mutableCookies.set({name:d.COOKIE_NAME_PRERENDER_BYPASS,value:this._previewModeId,httpOnly:!0,sameSite:"none",secure:!0,path:"/"}),this._isEnabled=!0}disable(){this._mutableCookies.set({name:d.COOKIE_NAME_PRERENDER_BYPASS,value:"",httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:new Date(0)}),this._isEnabled=!1}}},14364:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ReflectAdapter",{enumerable:!0,get:function(){return c}});class c{static get(a,b,c){let d=Reflect.get(a,b,c);return"function"==typeof d?d.bind(a):d}static set(a,b,c,d){return Reflect.set(a,b,c,d)}static has(a,b){return Reflect.has(a,b)}static deleteProperty(a,b){return Reflect.deleteProperty(a,b)}}},15755:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={createRequestStoreForAPI:function(){return n},createRequestStoreForRender:function(){return m},synchronizeMutableCookies:function(){return p}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(54362),g=c(10098),h=c(38722),i=c(65597),j=c(14071),k=c(18977);function l(a,b){if("x-middleware-set-cookie"in a.headers&&"string"==typeof a.headers["x-middleware-set-cookie"]){let c=a.headers["x-middleware-set-cookie"],d=new Headers;for(let a of(0,k.splitCookiesString)(c))d.append("set-cookie",a);for(let a of new i.ResponseCookies(d).getAll())b.set(a)}}function m(a,b,c,d,e,f,g,h,i,j,k){return o("render",a,b,c,d,e,f,j,g,h,i,k)}function n(a,b,c,d,e){return o("action",a,void 0,b,{},c,d,null,e,!1,void 0,null)}function o(a,b,c,d,e,k,m,n,o,p,q,r){function s(a){c&&c.setHeader("Set-Cookie",a)}let t={};return{type:"request",phase:a,implicitTags:k,url:{pathname:d.pathname,search:d.search??""},rootParams:e,get headers(){return t.headers||(t.headers=function(a){let b=g.HeadersAdapter.from(a);for(let a of f.FLIGHT_HEADERS)b.delete(a);return g.HeadersAdapter.seal(b)}(b.headers)),t.headers},get cookies(){if(!t.cookies){let a=new i.RequestCookies(g.HeadersAdapter.from(b.headers));l(b,a),t.cookies=h.RequestCookiesAdapter.seal(a)}return t.cookies},set cookies(value){t.cookies=value},get mutableCookies(){if(!t.mutableCookies){var u,v;let a,d=(u=b.headers,v=m||(c?s:void 0),a=new i.RequestCookies(g.HeadersAdapter.from(u)),h.MutableRequestCookiesAdapter.wrap(a,v));l(b,d),t.mutableCookies=d}return t.mutableCookies},get userspaceMutableCookies(){return t.userspaceMutableCookies||(t.userspaceMutableCookies=(0,h.createCookiesWithMutableAccessCheck)(this)),t.userspaceMutableCookies},get draftMode(){return t.draftMode||(t.draftMode=new j.DraftModeProvider(o,b,this.cookies,this.mutableCookies)),t.draftMode},renderResumeDataCache:n??null,isHmrRefresh:p,serverComponentsHmrCache:q||globalThis.__serverComponentsHmrCache,fallbackParams:r}}function p(a){a.cookies=h.RequestCookiesAdapter.seal((0,h.responseCookiesToRequestCookies)(a.mutableCookies))}},15834:(a,b)=>{"use strict";function c(a){return a.startsWith("/")?a:`/${a}`}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ensureLeadingSlash",{enumerable:!0,get:function(){return c}})},16078:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={bootstrap:function(){return k},error:function(){return m},errorOnce:function(){return v},event:function(){return q},info:function(){return p},prefixes:function(){return h},ready:function(){return o},trace:function(){return r},wait:function(){return l},warn:function(){return n},warnOnce:function(){return t}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(17522),g=c(49191),h={wait:(0,f.white)((0,f.bold)("○")),error:(0,f.red)((0,f.bold)("⨯")),warn:(0,f.yellow)((0,f.bold)("⚠")),ready:"▲",info:(0,f.white)((0,f.bold)(" ")),event:(0,f.green)((0,f.bold)("✓")),trace:(0,f.magenta)((0,f.bold)("\xbb"))},i={log:"log",warn:"warn",error:"error"};function j(a,...b){(""===b[0]||void 0===b[0])&&1===b.length&&b.shift();let c=a in i?i[a]:"log",d=h[a];0===b.length?console[c](""):1===b.length&&"string"==typeof b[0]?console[c](d+" "+b[0]):console[c](d,...b)}function k(a){console.log(a)}function l(...a){j("wait",...a)}function m(...a){j("error",...a)}function n(...a){j("warn",...a)}function o(...a){j("ready",...a)}function p(...a){j("info",...a)}function q(...a){j("event",...a)}function r(...a){j("trace",...a)}let s=new g.LRUCache(1e4,a=>a.length);function t(...a){let b=a.join(" ");s.has(b)||(s.set(b,b),n(...a))}let u=new g.LRUCache(1e4,a=>a.length);function v(...a){let b=a.join(" ");u.has(b)||(u.set(b,b),m(...a))}},16524:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/memory-cache.external.js")},16698:a=>{"use strict";a.exports=require("node:async_hooks")},16993:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={delayUntilRuntimeStage:function(){return o},getRuntimeStage:function(){return n},isHangingPromiseRejectionError:function(){return g},makeDevtoolsIOAwarePromise:function(){return m},makeHangingPromise:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(55113);function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&a.digest===h}let h="HANGING_PROMISE_REJECTION";class i extends Error{constructor(a,b){super(`During prerendering, ${b} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${b} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${a}".`),this.route=a,this.expression=b,this.digest=h}}let j=new WeakMap;function k(a,b,c){if(a.aborted)return Promise.reject(new i(b,c));{let d=new Promise((d,e)=>{let f=e.bind(null,new i(b,c)),g=j.get(a);if(g)g.push(f);else{let b=[f];j.set(a,b),a.addEventListener("abort",()=>{for(let a=0;a{setTimeout(()=>{b(a)},0)})}function n(a){return a.currentStage===f.RenderStage.EarlyStatic||a.currentStage===f.RenderStage.EarlyRuntime?f.RenderStage.EarlyRuntime:f.RenderStage.Runtime}function o(a,b){let{stagedRendering:c}=a;return c?c.waitForStage(n(c)).then(()=>b):b}},17052:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"INSTANT_VALIDATION_BOUNDARY_NAME",{enumerable:!0,get:function(){return c}});let c="__next_instant_validation_boundary__"},17522:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d={bgBlack:function(){return C},bgBlue:function(){return G},bgCyan:function(){return I},bgGreen:function(){return E},bgMagenta:function(){return H},bgRed:function(){return D},bgWhite:function(){return J},bgYellow:function(){return F},black:function(){return s},blue:function(){return w},bold:function(){return l},cyan:function(){return z},dim:function(){return m},gray:function(){return B},green:function(){return u},hidden:function(){return q},inverse:function(){return p},italic:function(){return n},magenta:function(){return x},purple:function(){return y},red:function(){return t},reset:function(){return k},strikethrough:function(){return r},underline:function(){return o},white:function(){return A},yellow:function(){return v}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let{env:f,stdout:g}=(null==(c=globalThis)?void 0:c.process)??{},h=f&&!f.NO_COLOR&&(f.FORCE_COLOR||(null==g?void 0:g.isTTY)&&!f.CI&&"dumb"!==f.TERM),i=(a,b,c,d)=>{let e=a.substring(0,d)+c,f=a.substring(d+b.length),g=f.indexOf(b);return~g?e+i(f,b,c,g):e+f},j=(a,b,c=a)=>h?d=>{let e=""+d,f=e.indexOf(b,a.length);return~f?a+i(e,b,c,f)+b:a+e+b}:String,k=h?a=>`\x1b[0m${a}\x1b[0m`:String,l=j("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m"),m=j("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),n=j("\x1b[3m","\x1b[23m"),o=j("\x1b[4m","\x1b[24m"),p=j("\x1b[7m","\x1b[27m"),q=j("\x1b[8m","\x1b[28m"),r=j("\x1b[9m","\x1b[29m"),s=j("\x1b[30m","\x1b[39m"),t=j("\x1b[31m","\x1b[39m"),u=j("\x1b[32m","\x1b[39m"),v=j("\x1b[33m","\x1b[39m"),w=j("\x1b[34m","\x1b[39m"),x=j("\x1b[35m","\x1b[39m"),y=j("\x1b[38;2;173;127;168m","\x1b[39m"),z=j("\x1b[36m","\x1b[39m"),A=j("\x1b[37m","\x1b[39m"),B=j("\x1b[90m","\x1b[39m"),C=j("\x1b[40m","\x1b[49m"),D=j("\x1b[41m","\x1b[49m"),E=j("\x1b[42m","\x1b[49m"),F=j("\x1b[43m","\x1b[49m"),G=j("\x1b[44m","\x1b[49m"),H=j("\x1b[45m","\x1b[49m"),I=j("\x1b[46m","\x1b[49m"),J=j("\x1b[47m","\x1b[49m")},18431:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isDynamicRoute",{enumerable:!0,get:function(){return g}});let d=c(66072),e=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,f=/\/\[[^/]+\](?=\/|$)/;function g(a,b=!0){return((0,d.isInterceptionRouteAppPath)(a)&&(a=(0,d.extractInterceptionRouteInformation)(a).interceptedRoute),b)?f.test(a):e.test(a)}},18904:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PageSignatureError:function(){return e},RemovedPageError:function(){return f},RemovedUAError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e extends Error{constructor({page:a}){super(`The middleware "${a}" accepts an async API directly with the form: + + export function middleware(request, event) { + return NextResponse.redirect('/new-location') + } + + Read more: https://nextjs.org/docs/messages/middleware-new-signature + `)}}class f extends Error{constructor(){super("The request.page has been deprecated in favour of `URLPattern`.\n Read more: https://nextjs.org/docs/messages/middleware-request-page\n ")}}class g extends Error{constructor(){super("The request.ua has been removed in favour of `userAgent` function.\n Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent\n ")}}},18977:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={fromNodeOutgoingHttpHeaders:function(){return g},normalizeNextQueryParam:function(){return k},splitCookiesString:function(){return h},toNodeOutgoingHttpHeaders:function(){return i},validateURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(71286);function g(a){let b=new Headers;for(let[c,d]of Object.entries(a))for(let a of Array.isArray(d)?d:[d])void 0!==a&&("number"==typeof a&&(a=a.toString()),b.append(c,a));return b}function h(a){var b,c,d,e,f,g=[],h=0;function i(){for(;h=a.length)&&g.push(a.substring(b,a.length))}return g}function i(a){let b={},c=[];if(a)for(let[d,e]of a.entries())"set-cookie"===d.toLowerCase()?(c.push(...h(e)),b[d]=1===c.length?c[0]:c):b[d]=e;return b}function j(a){try{return String(new URL(String(a)))}catch(b){throw Object.defineProperty(Error(`URL is malformed "${String(a)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`,{cause:b}),"__NEXT_ERROR_CODE",{value:"E61",enumerable:!1,configurable:!0})}}function k(a){for(let b of[f.NEXT_QUERY_PARAM_PREFIX,f.NEXT_INTERCEPTION_MARKER_PREFIX])if(a!==b&&a.startsWith(b))return a.substring(b.length);return null}},20026:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isFullStringUrl:function(){return h},parseReqUrl:function(){return j},parseUrl:function(){return i},stripNextRscUnionQuery:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(54362),g="http://n";function h(a){return/https?:\/\//.test(a)}function i(a){let b;try{b=new URL(a,g)}catch{}return b}function j(a){let b=i(a);if(!b)return;let c={};for(let a of b.searchParams.keys()){let d=b.searchParams.getAll(a);c[a]=d.length>1?d:d[0]}return{query:c,hash:b.hash,search:b.search,path:b.pathname,pathname:b.pathname,href:`${b.pathname}${b.search}${b.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}function k(a){let b=new URL(a,g);return b.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b.pathname+b.search}},20444:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={bindSnapshot:function(){return i},createAsyncLocalStorage:function(){return h},createSnapshot:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class f{disable(){throw e}getStore(){}run(){throw e}exit(){throw e}enterWith(){throw e}static bind(a){return a}}let g="u">typeof globalThis&&globalThis.AsyncLocalStorage;function h(){return g?new g:new f}function i(a){return g?g.bind(a):f.bind(a)}function j(){return g?g.snapshot():function(a,...b){return a(...b)}}},20966:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ImageResponse:function(){return f.ImageResponse},NextRequest:function(){return g.NextRequest},NextResponse:function(){return h.NextResponse},URLPattern:function(){return j.URLPattern},after:function(){return k.after},connection:function(){return l.connection},userAgent:function(){return i.userAgent},userAgentFromString:function(){return i.userAgentFromString}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(40719),g=c(98907),h=c(54111),i=c(36471),j=c(10854),k=c(65386),l=c(74387)},21820:a=>{"use strict";a.exports=require("os")},22771:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return g}});let d=c(32406),e=c(63480),f=c(93402);class g{static #a=this.EMPTY=new g(null,{metadata:{},contentType:null});static fromStatic(a,b){return new g(a,{metadata:{},contentType:b})}constructor(a,{contentType:b,waitUntil:c,metadata:d}){this.response=a,this.contentType=b,this.metadata=d,this.waitUntil=c}assignMetadata(a){Object.assign(this.metadata,a)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(a=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!a)throw Object.defineProperty(new f.InvariantError("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return(0,d.streamToString)(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(a){a.close()}}):"string"==typeof this.response?(0,d.streamFromString)(this.response):Buffer.isBuffer(this.response)?(0,d.streamFromBuffer)(this.response):Array.isArray(this.response)?(0,d.chainStreams)(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[(0,d.streamFromString)(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[(0,d.streamFromBuffer)(this.response)]:[this.response]}pipeThrough(a){this.response=this.readable.pipeThrough(a)}unshift(a){this.response=this.coerce(),this.response.unshift(a)}push(a){this.response=this.coerce(),this.response.push(a)}async pipeTo(a){try{await this.readable.pipeTo(a,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await a.close()}catch(b){if((0,e.isAbortError)(b))return void await a.abort(b);throw b}}async pipeToNodeResponse(a){await (0,e.pipeToNodeResponse)(this.readable,a,this.waitUntil)}}},23451:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextURL",{enumerable:!0,get:function(){return k}});let d=c(85993),e=c(80516),f=c(60285),g=c(72483),h=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function i(a,b){let c=new URL(String(a),b&&String(b));return h.test(c.hostname)&&(c.hostname="localhost"),c}let j=Symbol("NextURLInternal");class k{constructor(a,b,c){let d,e;"object"==typeof b&&"pathname"in b||"string"==typeof b?(d=b,e=c||{}):e=c||b||{},this[j]={url:i(a,d??e.base),options:e,basePath:""},this.analyze()}analyze(){var a,b,c,e,h;let i=(0,g.getNextPathnameInfo)(this[j].url.pathname,{nextConfig:this[j].options.nextConfig,parseData:!0,i18nProvider:this[j].options.i18nProvider}),k=(0,f.getHostname)(this[j].url,this[j].options.headers);this[j].domainLocale=this[j].options.i18nProvider?this[j].options.i18nProvider.detectDomainLocale(k):(0,d.detectDomainLocale)(null==(b=this[j].options.nextConfig)||null==(a=b.i18n)?void 0:a.domains,k);let l=(null==(c=this[j].domainLocale)?void 0:c.defaultLocale)||(null==(h=this[j].options.nextConfig)||null==(e=h.i18n)?void 0:e.defaultLocale);this[j].url.pathname=i.pathname,this[j].defaultLocale=l,this[j].basePath=i.basePath??"",this[j].buildId=i.buildId,this[j].locale=i.locale??l,this[j].trailingSlash=i.trailingSlash}formatPathname(){return(0,e.formatNextPathnameInfo)({basePath:this[j].basePath,buildId:this[j].buildId,defaultLocale:this[j].options.forceLocale?void 0:this[j].defaultLocale,locale:this[j].locale,pathname:this[j].url.pathname,trailingSlash:this[j].trailingSlash})}formatSearch(){return this[j].url.search}get buildId(){return this[j].buildId}set buildId(a){this[j].buildId=a}get locale(){return this[j].locale??""}set locale(a){var b,c;if(!this[j].locale||!(null==(c=this[j].options.nextConfig)||null==(b=c.i18n)?void 0:b.locales.includes(a)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${a}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[j].locale=a}get defaultLocale(){return this[j].defaultLocale}get domainLocale(){return this[j].domainLocale}get searchParams(){return this[j].url.searchParams}get host(){return this[j].url.host}set host(a){this[j].url.host=a}get hostname(){return this[j].url.hostname}set hostname(a){this[j].url.hostname=a}get port(){return this[j].url.port}set port(a){this[j].url.port=a}get protocol(){return this[j].url.protocol}set protocol(a){this[j].url.protocol=a}get href(){let a=this.formatPathname(),b=this.formatSearch();return`${this.protocol}//${this.host}${a}${b}${this.hash}`}set href(a){this[j].url=i(a),this.analyze()}get origin(){return this[j].url.origin}get pathname(){return this[j].url.pathname}set pathname(a){this[j].url.pathname=a}get hash(){return this[j].url.hash}set hash(a){this[j].url.hash=a}get search(){return this[j].url.search}set search(a){this[j].url.search=a}get password(){return this[j].url.password}set password(a){this[j].url.password=a}get username(){return this[j].url.username}set username(a){this[j].url.username=a}get basePath(){return this[j].basePath}set basePath(a){this[j].basePath=a.startsWith("/")?a:`/${a}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new k(String(this),this[j].options)}}},23581:a=>{a.exports=["SIGABRT","SIGALRM","SIGHUP","SIGINT","SIGTERM"],"win32"!==process.platform&&a.exports.push("SIGVTALRM","SIGXCPU","SIGXFSZ","SIGUSR2","SIGTRAP","SIGSYS","SIGQUIT","SIGIOT"),"linux"===process.platform&&a.exports.push("SIGIO","SIGPOLL","SIGPWR","SIGSTKFLT","SIGUNUSED")},25068:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathSuffix",{enumerable:!0,get:function(){return e}});let d=c(29684);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return`${c}${b}${e}${f}`}},26390:a=>{(()=>{"use strict";var b={993:a=>{var b=Object.prototype.hasOwnProperty,c="~";function d(){}function e(a,b,c){this.fn=a,this.context=b,this.once=c||!1}function f(a,b,d,f,g){if("function"!=typeof d)throw TypeError("The listener must be a function");var h=new e(d,f||a,g),i=c?c+b:b;return a._events[i]?a._events[i].fn?a._events[i]=[a._events[i],h]:a._events[i].push(h):(a._events[i]=h,a._eventsCount++),a}function g(a,b){0==--a._eventsCount?a._events=new d:delete a._events[b]}function h(){this._events=new d,this._eventsCount=0}Object.create&&(d.prototype=Object.create(null),(new d).__proto__||(c=!1)),h.prototype.eventNames=function(){var a,d,e=[];if(0===this._eventsCount)return e;for(d in a=this._events)b.call(a,d)&&e.push(c?d.slice(1):d);return Object.getOwnPropertySymbols?e.concat(Object.getOwnPropertySymbols(a)):e},h.prototype.listeners=function(a){var b=c?c+a:a,d=this._events[b];if(!d)return[];if(d.fn)return[d.fn];for(var e=0,f=d.length,g=Array(f);e{a.exports=(a,b)=>(b=b||(()=>{}),a.then(a=>new Promise(a=>{a(b())}).then(()=>a),a=>new Promise(a=>{a(b())}).then(()=>{throw a})))},574:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.default=function(a,b,c){let d=0,e=a.length;for(;e>0;){let f=e/2|0,g=d+f;0>=c(a[g],b)?(d=++g,e-=f+1):e=f}return d}},821:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0});let d=c(574);class e{constructor(){this._queue=[]}enqueue(a,b){let c={priority:(b=Object.assign({priority:0},b)).priority,run:a};if(this.size&&this._queue[this.size-1].priority>=b.priority)return void this._queue.push(c);let e=d.default(this._queue,c,(a,b)=>b.priority-a.priority);this._queue.splice(e,0,c)}dequeue(){let a=this._queue.shift();return null==a?void 0:a.run}filter(a){return this._queue.filter(b=>b.priority===a.priority).map(a=>a.run)}get size(){return this._queue.length}}b.default=e},816:(a,b,c)=>{let d=c(213);class e extends Error{constructor(a){super(a),this.name="TimeoutError"}}let f=(a,b,c)=>new Promise((f,g)=>{if("number"!=typeof b||b<0)throw TypeError("Expected `milliseconds` to be a positive number");if(b===1/0)return void f(a);let h=setTimeout(()=>{if("function"==typeof c){try{f(c())}catch(a){g(a)}return}let d="string"==typeof c?c:`Promise timed out after ${b} milliseconds`,h=c instanceof Error?c:new e(d);"function"==typeof a.cancel&&a.cancel(),g(h)},b);d(a.then(f,g),()=>{clearTimeout(h)})});a.exports=f,a.exports.default=f,a.exports.TimeoutError=e}},c={};function d(a){var e=c[a];if(void 0!==e)return e.exports;var f=c[a]={exports:{}},g=!0;try{b[a](f,f.exports,d),g=!1}finally{g&&delete c[a]}return f.exports}d.ab=__dirname+"/";var e={};(()=>{Object.defineProperty(e,"__esModule",{value:!0});let a=d(993),b=d(816),c=d(821),f=()=>{},g=new b.TimeoutError;class h extends a{constructor(a){var b,d,e,g;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=f,this._resolveIdle=f,!("number"==typeof(a=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:c.default},a)).intervalCap&&a.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(d=null==(b=a.intervalCap)?void 0:b.toString())?d:""}\` (${typeof a.intervalCap})`);if(void 0===a.interval||!(Number.isFinite(a.interval)&&a.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(g=null==(e=a.interval)?void 0:e.toString())?g:""}\` (${typeof a.interval})`);this._carryoverConcurrencyCount=a.carryoverConcurrencyCount,this._isIntervalIgnored=a.intervalCap===1/0||0===a.interval,this._intervalCap=a.intervalCap,this._interval=a.interval,this._queue=new a.queueClass,this._queueClass=a.queueClass,this.concurrency=a.concurrency,this._timeout=a.timeout,this._throwOnTimeout=!0===a.throwOnTimeout,this._isPaused=!1===a.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},b)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let a=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let b=this._queue.dequeue();return!!b&&(this.emit("active"),b(),a&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(a){if(!("number"==typeof a&&a>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${a}\` (${typeof a})`);this._concurrency=a,this._processQueue()}async add(a,c={}){return new Promise((d,e)=>{let f=async()=>{this._pendingCount++,this._intervalCount++;try{let f=void 0===this._timeout&&void 0===c.timeout?a():b.default(Promise.resolve(a()),void 0===c.timeout?this._timeout:c.timeout,()=>{(void 0===c.throwOnTimeout?this._throwOnTimeout:c.throwOnTimeout)&&e(g)});d(await f)}catch(a){e(a)}this._next()};this._queue.enqueue(f,c),this._tryToStartAnother(),this.emit("add")})}async addAll(a,b){return Promise.all(a.map(async a=>this.add(a,b)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(a=>{let b=this._resolveEmpty;this._resolveEmpty=()=>{b(),a()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(a=>{let b=this._resolveIdle;this._resolveIdle=()=>{b(),a()}})}get size(){return this._queue.size}sizeBy(a){return this._queue.filter(a).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(a){this._timeout=a}}e.default=h})(),a.exports=e})()},27595:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={CloseController:function(){return g},trackBodyConsumed:function(){return e},trackStreamConsumed:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){return"string"==typeof a?async function*(){let c=new TextEncoder;yield c.encode(a),b()}():f(a,b)}function f(a,b){let c=new TransformStream,d=()=>b();return a.pipeTo(c.writable).then(d,d),c.readable}class g{onClose(a){if(this.isClosed)throw Object.defineProperty(Error("Cannot subscribe to a closed CloseController"),"__NEXT_ERROR_CODE",{value:"E365",enumerable:!1,configurable:!0});this.target.addEventListener("close",a),this.listeners++}dispatchClose(){if(this.isClosed)throw Object.defineProperty(Error("Cannot close a CloseController multiple times"),"__NEXT_ERROR_CODE",{value:"E229",enumerable:!1,configurable:!0});this.listeners>0&&this.target.dispatchEvent(new Event("close")),this.isClosed=!0}constructor(){this.target=new EventTarget,this.listeners=0,this.isClosed=!1}}},27910:a=>{"use strict";a.exports=require("stream")},28354:a=>{"use strict";a.exports=require("util")},28388:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getPreviouslyRevalidatedTags:function(){return w},getServerUtils:function(){return v},interpolateDynamicPath:function(){return t},normalizeCdnUrl:function(){return s},normalizeDynamicRouteParams:function(){return u}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(28778),g=c(482),h=c(72874),i=c(65061),j=c(98985),k=c(89570),l=c(56733),m=c(71286),n=c(18977),o=c(40704),p=c(20026),q=c(51650);function r(a,b){for(let c in delete a.nextInternalLocale,a){let d=c!==m.NEXT_QUERY_PARAM_PREFIX&&c.startsWith(m.NEXT_QUERY_PARAM_PREFIX),e=c!==m.NEXT_INTERCEPTION_MARKER_PREFIX&&c.startsWith(m.NEXT_INTERCEPTION_MARKER_PREFIX);(d||e||b.includes(c))&&delete a[c]}}function s(a,b){let c=(0,p.parseReqUrl)(a.url);if(!c)return a.url;delete c.search,r(c.query,b),a.url=(0,q.formatUrl)(c)}function t(a,b,c){if(!c)return a;for(let d of Object.keys(c.groups)){let e,{optional:f,repeat:g}=c.groups[d],h=`[${g?"...":""}${d}]`;f&&(h=`[${h}]`);let i=b[d];((e=Array.isArray(i)?i.map(a=>a&&encodeURIComponent(a)).join("/"):i?encodeURIComponent(i):"")||f)&&(a=a.replaceAll(h,e))}return a}function u(a,b,c,d){let e={};for(let f of Object.keys(b.groups)){let g=a[f];"string"==typeof g?g=(0,l.normalizeRscURL)(g):Array.isArray(g)&&(g=g.map(l.normalizeRscURL));let h=c[f],i=b.groups[f].optional;if((Array.isArray(h)?h.some(a=>Array.isArray(g)?g.some(b=>b.includes(a)):null==g?void 0:g.includes(a)):null==g?void 0:g.includes(h))||void 0===g&&!(i&&d))return{params:{},hasValidParams:!1};i&&(!g||Array.isArray(g)&&1===g.length&&("index"===g[0]||g[0]===`[[...${f}]]`)||"index"===g||g===`[[...${f}]]`)&&(g=void 0,delete a[f]),g&&"string"==typeof g&&b.groups[f].repeat&&(g=g.split("/")),g&&(e[f]=g)}return{params:e,hasValidParams:!0}}function v({page:a,i18n:b,basePath:c,rewrites:d,pageIsDynamic:e,trailingSlash:l,caseSensitive:m}){let p,q,w;return e&&(p=(0,h.getNamedRouteRegex)(a,{prefixRouteKeys:!1}),w=(q=(0,i.getRouteMatcher)(p))(a)),{handleRewrites:function(h,i){let n=structuredClone(i),o={},p=n.pathname,r=d=>{let i=(0,g.getPathMatch)(d.source+(l?"(/)?":""),{removeUnnamedParams:!0,strict:!0,sensitive:!!m});if(!n.pathname)return!1;let k=i(n.pathname);if((d.has||d.missing)&&k){let a=(0,j.matchHas)(h,n.query,d.has,d.missing);a?Object.assign(k,a):k=!1}if(k){let{parsedDestination:g,destQuery:h}=(0,j.prepareDestination)({appendParamsToQuery:!0,destination:d.destination,params:k,query:n.query});if(g.protocol)return!0;if(Object.assign(o,h,k),Object.assign(n.query,g.query),delete g.query,Object.assign(n,g),!(p=n.pathname))return!1;if(c&&(p=p.replace(RegExp(`^${c}`),"")||"/"),b){let a=(0,f.normalizeLocalePath)(p,b.locales);p=a.pathname,n.query.nextInternalLocale=a.detectedLocale||k.nextInternalLocale}if(p===a)return!0;if(e&&q){let a=q(p);if(a)return n.query={...n.query,...a},!0}}return!1};for(let a of d.beforeFiles||[])r(a);if(p!==a){let b,c=!1;for(let a of d.afterFiles||[])if(c=r(a))break;if(!c&&!((b=(0,k.removeTrailingSlash)(p||""))===(0,k.removeTrailingSlash)(a)||(null==q?void 0:q(b)))){for(let a of d.fallback||[])if(c=r(a))break}}return{rewriteParams:o,rewrittenParsedUrl:n}},defaultRouteRegex:p,dynamicRouteMatcher:q,defaultRouteMatches:w,normalizeQueryParams:function(a,b){for(let[c,d]of(delete a.nextInternalLocale,Object.entries(a))){let e=(0,n.normalizeNextQueryParam)(c);e&&(delete a[c],b.add(e),void 0!==d&&(a[e]=Array.isArray(d)?d.map(a=>(0,o.decodeQueryPathParameter)(a)):(0,o.decodeQueryPathParameter)(d)))}},getParamsFromRouteMatches:function(a){if(!p)return null;let{groups:b,routeKeys:c}=p,d=(0,i.getRouteMatcher)({re:{exec:a=>{let d=Object.fromEntries(new URLSearchParams(a));for(let[a,b]of Object.entries(d)){let c=(0,n.normalizeNextQueryParam)(a);c&&(d[c]=b,delete d[a])}let e={};for(let a of Object.keys(c)){let f=c[a];if(!f)continue;let g=b[f],h=d[a];if(!g.optional&&!h)return null;e[g.pos]=h}return e}},groups:b})(a);return d||null},normalizeDynamicRouteParams:(a,b)=>p&&w?u(a,p,w,b):{params:{},hasValidParams:!1},normalizeCdnUrl:(a,b)=>s(a,b),interpolateDynamicPath:(a,b)=>t(a,b,p),filterInternalQuery:(a,b)=>r(a,b)}}function w(a,b){return"string"==typeof a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER]&&a[m.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER]===b?a[m.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(","):[]}},28494:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={edgeInstrumentationOnRequestError:function(){return h},ensureInstrumentationRegistered:function(){return j},getEdgeInstrumentationModule:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});async function e(){return"_ENTRIES"in globalThis&&_ENTRIES.middleware_instrumentation&&await _ENTRIES.middleware_instrumentation}let f=null;async function g(){if("phase-production-build"===process.env.NEXT_PHASE)return;f||(f=e());let a=await f;if(null==a?void 0:a.register)try{await a.register()}catch(a){throw a.message=`An error occurred while loading instrumentation hook: ${a.message}`,a}}async function h(...a){let b=await e();try{var c;await (null==b||null==(c=b.onRequestError)?void 0:c.call(b,...a))}catch(a){console.error("Error in instrumentation.onRequestError:",a)}}let i=null;function j(){return i||(i=g()),i}},28778:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizeLocalePath",{enumerable:!0,get:function(){return d}});let c=new WeakMap;function d(a,b){let d;if(!b)return{pathname:a};let e=c.get(b);e||(e=b.map(a=>a.toLowerCase()),c.set(b,e));let f=a.split("/",2);if(!f[1])return{pathname:a};let g=f[1].toLowerCase(),h=e.indexOf(g);return h<0?{pathname:a}:(d=b[h],{pathname:a=a.slice(d.length+1)||"/",detectedLocale:d})}},28864:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getRelativeURL:function(){return f},parseRelativeURL:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){let c="string"==typeof b?new URL(b):b,d=new URL(a,b),e=d.origin===c.origin;return{url:e?d.toString().slice(c.origin.length):d.toString(),isRelative:e}}function f(a,b){return e(a,b).url}},28990:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"AfterContext",{enumerable:!0,get:function(){return m}});let e=(d=c(26390))&&d.__esModule?d:{default:d},f=c(93402),g=c(52235),h=c(29294),i=c(74183),j=c(20444),k=c(63033),l=c(3295);class m{constructor({waitUntil:a,onClose:b,onTaskError:c}){this.workUnitStores=new Set,this.waitUntil=a,this.onClose=b,this.onTaskError=c,this.callbackQueue=new e.default,this.callbackQueue.pause()}after(a){if((0,g.isThenable)(a))this.waitUntil||n(),this.waitUntil(a.catch(a=>this.reportTaskError("promise",a)));else if("function"==typeof a)this.addCallback(a);else throw Object.defineProperty(Error("`after()`: Argument must be a promise or a function"),"__NEXT_ERROR_CODE",{value:"E50",enumerable:!1,configurable:!0})}addCallback(a){this.waitUntil||n();let b=k.workUnitAsyncStorage.getStore();b&&this.workUnitStores.add(b);let c=l.afterTaskAsyncStorage.getStore(),d=c?c.rootTaskSpawnPhase:null==b?void 0:b.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let e=(0,j.bindSnapshot)(async()=>{try{await l.afterTaskAsyncStorage.run({rootTaskSpawnPhase:d},()=>a())}catch(a){this.reportTaskError("function",a)}});this.callbackQueue.add(e)}async runCallbacksOnClose(){return await new Promise(a=>this.onClose(a)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;for(let a of this.workUnitStores)a.phase="after";let a=h.workAsyncStorage.getStore();if(!a)throw Object.defineProperty(new f.InvariantError("Missing workStore in AfterContext.runCallbacks"),"__NEXT_ERROR_CODE",{value:"E547",enumerable:!1,configurable:!0});return(0,i.withExecuteRevalidates)(a,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(a,b){if(console.error("promise"===a?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",b),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,b)}catch(a){console.error(Object.defineProperty(new f.InvariantError("`onTaskError` threw while handling an error thrown from an `after` task",{cause:a}),"__NEXT_ERROR_CODE",{value:"E569",enumerable:!1,configurable:!0}))}}}function n(){throw Object.defineProperty(Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment."),"__NEXT_ERROR_CODE",{value:"E91",enumerable:!1,configurable:!0})}},29021:a=>{"use strict";a.exports=require("fs")},29294:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-async-storage.external.js")},29684:(a,b)=>{"use strict";function c(a){let b=a.indexOf("#"),c=a.indexOf("?"),d=c>-1&&(b<0||c-1?{pathname:a.substring(0,d?c:b),query:d?a.substring(c,b>-1?b:void 0):"",hash:b>-1?a.slice(b):""}:{pathname:a,query:"",hash:""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parsePath",{enumerable:!0,get:function(){return c}})},29788:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"normalizePagePath",{enumerable:!0,get:function(){return g}});let d=c(15834),e=c(58955),f=c(95676);function g(a){let b=/^\/index(\/|$)/.test(a)&&!(0,e.isDynamicRoute)(a)?`/index${a}`:"/"===a?"/index":(0,d.ensureLeadingSlash)(a);{let{posix:a}=c(33873),d=a.normalize(b);if(d!==b)throw new f.NormalizeError(`Requested and resolved page mismatch: ${b} ${d}`)}return b}},29999:function(a,b,c){a.exports=function(a,b){var d=[function(a,b,c){a.exports=c(34)},function(a,b,c){var d=c(29)("wks"),e=c(33),f=c(2).Symbol,g="function"==typeof f;(a.exports=function(a){return d[a]||(d[a]=g&&f[a]||(g?f:e)("Symbol."+a))}).store=d},function(a,b){var c=a.exports="u">typeof window&&window.Math==Math?window:"u">typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=c)},function(a,b,c){var d=c(9);a.exports=function(a){if(!d(a))throw TypeError(a+" is not an object!");return a}},function(a,b,c){a.exports=!c(24)(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},function(a,b,c){var d=c(12),e=c(17);a.exports=c(4)?function(a,b,c){return d.f(a,b,e(1,c))}:function(a,b,c){return a[b]=c,a}},function(a,b){var c=a.exports={version:"2.4.0"};"number"==typeof __e&&(__e=c)},function(a,b,c){var d=c(14);a.exports=function(a,b,c){if(d(a),void 0===b)return a;switch(c){case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}}},function(a,b){var c={}.hasOwnProperty;a.exports=function(a,b){return c.call(a,b)}},function(a,b){a.exports=function(a){return"object"==typeof a?null!==a:"function"==typeof a}},function(a,b){a.exports={}},function(a,b){var c={}.toString;a.exports=function(a){return c.call(a).slice(8,-1)}},function(a,b,c){var d=c(3),e=c(26),f=c(32),g=Object.defineProperty;b.f=c(4)?Object.defineProperty:function(a,b,c){if(d(a),b=f(b,!0),d(c),e)try{return g(a,b,c)}catch(a){}if("get"in c||"set"in c)throw TypeError("Accessors not supported!");return"value"in c&&(a[b]=c.value),a}},function(a,b,c){var d=c(42),e=c(15);a.exports=function(a){return d(e(a))}},function(a,b){a.exports=function(a){if("function"!=typeof a)throw TypeError(a+" is not a function!");return a}},function(a,b){a.exports=function(a){if(void 0==a)throw TypeError("Can't call method on "+a);return a}},function(a,b,c){var d=c(9),e=c(2).document,f=d(e)&&d(e.createElement);a.exports=function(a){return f?e.createElement(a):{}}},function(a,b){a.exports=function(a,b){return{enumerable:!(1&a),configurable:!(2&a),writable:!(4&a),value:b}}},function(a,b,c){var d=c(12).f,e=c(8),f=c(1)("toStringTag");a.exports=function(a,b,c){a&&!e(a=c?a:a.prototype,f)&&d(a,f,{configurable:!0,value:b})}},function(a,b,c){var d=c(29)("keys"),e=c(33);a.exports=function(a){return d[a]||(d[a]=e(a))}},function(a,b){var c=Math.ceil,d=Math.floor;a.exports=function(a){return isNaN(a*=1)?0:(a>0?d:c)(a)}},function(a,b,c){var d=c(11),e=c(1)("toStringTag"),f="Arguments"==d(function(){return arguments}()),g=function(a,b){try{return a[b]}catch(a){}};a.exports=function(a){var b,c,h;return void 0===a?"Undefined":null===a?"Null":"string"==typeof(c=g(b=Object(a),e))?c:f?d(b):"Object"==(h=d(b))&&"function"==typeof b.callee?"Arguments":h}},function(a,b){a.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},function(a,b,c){var d=c(2),e=c(6),f=c(7),g=c(5),h="prototype",i=function(a,b,c){var j,k,l,m=a&i.F,n=a&i.G,o=a&i.S,p=a&i.P,q=a&i.B,r=a&i.W,s=n?e:e[b]||(e[b]={}),t=s[h],u=n?d:o?d[b]:(d[b]||{})[h];for(j in n&&(c=b),c)(k=!m&&u&&void 0!==u[j])&&j in s||(l=k?u[j]:c[j],s[j]=n&&"function"!=typeof u[j]?c[j]:q&&k?f(l,d):r&&u[j]==l?function(a){var b=function(b,c,d){if(this instanceof a){switch(arguments.length){case 0:return new a;case 1:return new a(b);case 2:return new a(b,c)}return new a(b,c,d)}return a.apply(this,arguments)};return b[h]=a[h],b}(l):p&&"function"==typeof l?f(Function.call,l):l,p&&((s.virtual||(s.virtual={}))[j]=l,a&i.R&&t&&!t[j]&&g(t,j,l)))};i.F=1,i.G=2,i.S=4,i.P=8,i.B=16,i.W=32,i.U=64,i.R=128,a.exports=i},function(a,b){a.exports=function(a){try{return!!a()}catch(a){return!0}}},function(a,b,c){a.exports=c(2).document&&document.documentElement},function(a,b,c){a.exports=!c(4)&&!c(24)(function(){return 7!=Object.defineProperty(c(16)("div"),"a",{get:function(){return 7}}).a})},function(a,b,c){"use strict";var d=c(28),e=c(23),f=c(57),g=c(5),h=c(8),i=c(10),j=c(45),k=c(18),l=c(52),m=c(1)("iterator"),n=!([].keys&&"next"in[].keys()),o="keys",p="values",q=function(){return this};a.exports=function(a,b,c,r,s,t,u){j(c,b,r);var v,w,x,y=function(a){if(!n&&a in C)return C[a];switch(a){case o:case p:return function(){return new c(this,a)}}return function(){return new c(this,a)}},z=b+" Iterator",A=s==p,B=!1,C=a.prototype,D=C[m]||C["@@iterator"]||s&&C[s],E=D||y(s),F=s?A?y("entries"):E:void 0,G="Array"==b&&C.entries||D;if(G&&(x=l(G.call(new a)))!==Object.prototype&&(k(x,z,!0),d||h(x,m)||g(x,m,q)),A&&D&&D.name!==p&&(B=!0,E=function(){return D.call(this)}),(!d||u)&&(n||B||!C[m])&&g(C,m,E),i[b]=E,i[z]=q,s)if(v={values:A?E:y(p),keys:t?E:y(o),entries:F},u)for(w in v)w in C||f(C,w,v[w]);else e(e.P+e.F*(n||B),b,v);return v}},function(a,b){a.exports=!0},function(a,b,c){var d=c(2),e="__core-js_shared__",f=d[e]||(d[e]={});a.exports=function(a){return f[a]||(f[a]={})}},function(a,b,c){var d,e,f,g=c(7),h=c(41),i=c(25),j=c(16),k=c(2),l=k.process,m=k.setImmediate,n=k.clearImmediate,o=k.MessageChannel,p=0,q={},r="onreadystatechange",s=function(){var a=+this;if(q.hasOwnProperty(a)){var b=q[a];delete q[a],b()}},t=function(a){s.call(a.data)};m&&n||(m=function(a){for(var b=[],c=1;arguments.length>c;)b.push(arguments[c++]);return q[++p]=function(){h("function"==typeof a?a:Function(a),b)},d(p),p},n=function(a){delete q[a]},"process"==c(11)(l)?d=function(a){l.nextTick(g(s,a,1))}:o?(f=(e=new o).port2,e.port1.onmessage=t,d=g(f.postMessage,f,1)):k.addEventListener&&"function"==typeof postMessage&&!k.importScripts?(d=function(a){k.postMessage(a+"","*")},k.addEventListener("message",t,!1)):d=r in j("script")?function(a){i.appendChild(j("script"))[r]=function(){i.removeChild(this),s.call(a)}}:function(a){setTimeout(g(s,a,1),0)}),a.exports={set:m,clear:n}},function(a,b,c){var d=c(20),e=Math.min;a.exports=function(a){return a>0?e(d(a),0x1fffffffffffff):0}},function(a,b,c){var d=c(9);a.exports=function(a,b){var c,e;if(!d(a))return a;if(b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a))||"function"==typeof(c=a.valueOf)&&!d(e=c.call(a))||!b&&"function"==typeof(c=a.toString)&&!d(e=c.call(a)))return e;throw TypeError("Can't convert object to primitive value")}},function(a,b){var c=0,d=Math.random();a.exports=function(a){return"Symbol(".concat(void 0===a?"":a,")_",(++c+d).toString(36))}},function(a,b,c){"use strict";function d(a){return(0,i.createHash)("sha256").update(a).digest("hex")}function e(a){switch(j){case"darwin":return a.split("IOPlatformUUID")[1].split("\n")[0].replace(/\=|\s+|\"/gi,"").toLowerCase();case"win32":return a.toString().split("REG_SZ")[1].replace(/\r+|\n+|\s+/gi,"").toLowerCase();case"linux":case"freebsd":return a.toString().replace(/\r+|\n+|\s+/gi,"").toLowerCase();default:throw Error("Unsupported platform: "+process.platform)}}Object.defineProperty(b,"__esModule",{value:!0});var f,g=(f=c(35))&&f.__esModule?f:{default:f};b.machineIdSync=function(a){var b=e((0,h.execSync)(k[j]).toString());return a?b:d(b)},b.machineId=function(a){return new g.default(function(b,c){return(0,h.exec)(k[j],{},function(f,g,h){if(f)return c(Error("Error while obtaining machine id: "+f.stack));var i=e(g.toString());return b(a?i:d(i))})})};var h=c(70),i=c(71),j=process.platform,k={darwin:"ioreg -rd1 -c IOPlatformExpertDevice",win32:{native:"%windir%\\System32",mixed:"%windir%\\sysnative\\cmd.exe /c %windir%\\System32"}["win32"!==process.platform?"":"ia32"===process.arch&&process.env.hasOwnProperty("PROCESSOR_ARCHITEW6432")?"mixed":"native"]+"\\REG.exe QUERY HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Cryptography /v MachineGuid",linux:"( cat /var/lib/dbus/machine-id /etc/machine-id 2> /dev/null || hostname ) | head -n 1 || :",freebsd:"kenv -q smbios.system.uuid || sysctl -n kern.hostuuid"}},function(a,b,c){a.exports={default:c(36),__esModule:!0}},function(a,b,c){c(66),c(68),c(69),c(67),a.exports=c(6).Promise},function(a,b){a.exports=function(){}},function(a,b){a.exports=function(a,b,c,d){if(!(a instanceof b)||void 0!==d&&d in a)throw TypeError(c+": incorrect invocation!");return a}},function(a,b,c){var d=c(13),e=c(31),f=c(62);a.exports=function(a){return function(b,c,g){var h,i=d(b),j=e(i.length),k=f(g,j);if(a&&c!=c){for(;j>k;)if((h=i[k++])!=h)return!0}else for(;j>k;k++)if((a||k in i)&&i[k]===c)return a||k||0;return!a&&-1}}},function(a,b,c){var d=c(7),e=c(44),f=c(43),g=c(3),h=c(31),i=c(64),j={},k={},b=a.exports=function(a,b,c,l,m){var n,o,p,q,r=m?function(){return a}:i(a),s=d(c,l,b?2:1),t=0;if("function"!=typeof r)throw TypeError(a+" is not iterable!");if(f(r)){for(n=h(a.length);n>t;t++)if((q=b?s(g(o=a[t])[0],o[1]):s(a[t]))===j||q===k)return q}else for(p=r.call(a);!(o=p.next()).done;)if((q=e(p,s,o.value,b))===j||q===k)return q};b.BREAK=j,b.RETURN=k},function(a,b){a.exports=function(a,b,c){var d=void 0===c;switch(b.length){case 0:return d?a():a.call(c);case 1:return d?a(b[0]):a.call(c,b[0]);case 2:return d?a(b[0],b[1]):a.call(c,b[0],b[1]);case 3:return d?a(b[0],b[1],b[2]):a.call(c,b[0],b[1],b[2]);case 4:return d?a(b[0],b[1],b[2],b[3]):a.call(c,b[0],b[1],b[2],b[3])}return a.apply(c,b)}},function(a,b,c){var d=c(11);a.exports=Object("z").propertyIsEnumerable(0)?Object:function(a){return"String"==d(a)?a.split(""):Object(a)}},function(a,b,c){var d=c(10),e=c(1)("iterator"),f=Array.prototype;a.exports=function(a){return void 0!==a&&(d.Array===a||f[e]===a)}},function(a,b,c){var d=c(3);a.exports=function(a,b,c,e){try{return e?b(d(c)[0],c[1]):b(c)}catch(b){var f=a.return;throw void 0!==f&&d(f.call(a)),b}}},function(a,b,c){"use strict";var d=c(49),e=c(17),f=c(18),g={};c(5)(g,c(1)("iterator"),function(){return this}),a.exports=function(a,b,c){a.prototype=d(g,{next:e(1,c)}),f(a,b+" Iterator")}},function(a,b,c){var d=c(1)("iterator"),e=!1;try{var f=[7][d]();f.return=function(){e=!0},Array.from(f,function(){throw 2})}catch(a){}a.exports=function(a,b){if(!b&&!e)return!1;var c=!1;try{var f=[7],g=f[d]();g.next=function(){return{done:c=!0}},f[d]=function(){return g},a(f)}catch(a){}return c}},function(a,b){a.exports=function(a,b){return{value:b,done:!!a}}},function(a,b,c){var d=c(2),e=c(30).set,f=d.MutationObserver||d.WebKitMutationObserver,g=d.process,h=d.Promise,i="process"==c(11)(g);a.exports=function(){var a,b,c,j=function(){var d,e;for(i&&(d=g.domain)&&d.exit();a;){e=a.fn,a=a.next;try{e()}catch(d){throw a?c():b=void 0,d}}b=void 0,d&&d.enter()};if(i)c=function(){g.nextTick(j)};else if(f){var k=!0,l=document.createTextNode("");new f(j).observe(l,{characterData:!0}),c=function(){l.data=k=!k}}else if(h&&h.resolve){var m=h.resolve();c=function(){m.then(j)}}else c=function(){e.call(d,j)};return function(d){var e={fn:d,next:void 0};b&&(b.next=e),a||(a=e,c()),b=e}}},function(a,b,c){var d=c(3),e=c(50),f=c(22),g=c(19)("IE_PROTO"),h=function(){},i="prototype",j=function(){var a,b=c(16)("iframe"),d=f.length;for(b.style.display="none",c(25).appendChild(b),b.src="javascript:",(a=b.contentWindow.document).open(),a.write("`,g=!1;return new TransformStream({transform(a,b){if(g)return void b.enqueue(a);let c=(0,k.indexOfUint8Array)(a,j.ENCODED_TAGS.OPENING.HEAD);if(-1===c)return void b.enqueue(a);let d=a.indexOf(62,c+j.ENCODED_TAGS.OPENING.HEAD.length);if(-1===d)return void b.enqueue(a);let e=p.encode(f),h=d+1,i=new Uint8Array(a.length+e.length);i.set(a.slice(0,h)),i.set(e,h),i.set(a.slice(h),h+e.length),b.enqueue(i),g=!0},flush(a){a.enqueue(j.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function C(a,b){let c=!1,d=null,e=!1;function f(a){return d||(d=g(a)),d}async function g(d){let f=a.getReader();b&&await (0,i.atLeastOneTask)();try{for(;;){let{done:a,value:g}=await f.read();if(a){e=!0;return}b||c||await (0,i.atLeastOneTask)(),d.enqueue(g)}}catch(a){d.error(a)}}return new TransformStream({start(a){b||f(a)},transform(a,c){c.enqueue(a),b&&f(c)},flush(a){if(c=!0,!e)return f(a)}})}let D="";function E(){let a=!1;return new TransformStream({transform(b,c){if(a)return c.enqueue(b);let d=(0,k.indexOfUint8Array)(b,j.ENCODED_TAGS.CLOSED.BODY_AND_HTML);if(d>-1){if(a=!0,b.length===j.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length)return;let e=b.slice(0,d);if(c.enqueue(e),b.length>j.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length+d){let a=b.slice(d+j.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length);c.enqueue(a)}}else c.enqueue(b)},flush(a){a.enqueue(j.ENCODED_TAGS.CLOSED.BODY_AND_HTML)}})}function F(a){let b=!1;return new TransformStream({transform(c,d){if(b)return void d.enqueue(c);let e=(0,k.indexOfUint8Array)(c,j.ENCODED_TAGS.OPENING.HTML);if(-1===e)return void d.enqueue(c);let f=e+j.ENCODED_TAGS.OPENING.HTML.length,g=` data-dpl-id="${a}"`,h=p.encode(g),i=new Uint8Array(c.length+h.length);i.set(c.subarray(0,f)),i.set(h,f),i.set(c.subarray(f),f+h.length),d.enqueue(i),b=!0}})}function G(){let a=!1,b=!1;return new TransformStream({async transform(c,d){!a&&(0,k.indexOfUint8Array)(c,j.ENCODED_TAGS.OPENING.HTML)>-1&&(a=!0),!b&&(0,k.indexOfUint8Array)(c,j.ENCODED_TAGS.OPENING.BODY)>-1&&(b=!0),d.enqueue(c)},flush(c){let d=[];a||d.push("html"),b||d.push("body"),d.length&&c.enqueue(p.encode(` + + `))}})}function H(a,b){let c=a;for(let a of b)a&&(c=c.pipeThrough(a));return c}async function I(a,{suffix:b,inlinedDataStream:c,isStaticGeneration:d,deploymentId:e,getServerInsertedHTML:f,getServerInsertedMetadata:g,validateRootLayout:j}){let k,l,m=b?b.split(D,1)[0]:null;return d?await a.allReady:await (0,i.waitAtLeastOneReactRenderTask)(),H(a,[x(),e?F(e):null,z(g),null!=m&&m.length>0?(l=!1,new TransformStream({transform(a,b){if(b.enqueue(a),!l){let a;l=!0,k=a=new h.DetachedPromise,(0,i.scheduleImmediate)(()=>{try{b.enqueue(p.encode(m))}catch{}finally{k=void 0,a.resolve()}})}},flush(a){if(k)return k.promise;l||a.enqueue(p.encode(m))}})):null,c?C(c,!0):null,j?G():null,E(),A(f)])}async function J(a,{getServerInsertedHTML:b,getServerInsertedMetadata:c,deploymentId:d}){return H(a,[x(),new TransformStream({transform(a,b){(0,k.isEquivalentUint8Arrays)(a,j.ENCODED_TAGS.CLOSED.BODY_AND_HTML)||(0,k.isEquivalentUint8Arrays)(a,j.ENCODED_TAGS.CLOSED.BODY)||(0,k.isEquivalentUint8Arrays)(a,j.ENCODED_TAGS.CLOSED.HTML)||(a=(0,k.removeFromUint8Array)(a,j.ENCODED_TAGS.CLOSED.BODY),a=(0,k.removeFromUint8Array)(a,j.ENCODED_TAGS.CLOSED.HTML),b.enqueue(a))}}),d?F(d):null,A(b),z(c)])}async function K(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,deploymentId:e}){return H(a,[x(),e?F(e):null,A(c),z(d),C(b,!0),E()])}async function L(a,{inlinedDataStream:b,getServerInsertedHTML:c,getServerInsertedMetadata:d,deploymentId:e}){let f,g,h,i;return H(a,[x(),e?F(e):null,A(c),(f=(0,n.computeCacheBustingSearchParam)("1","/_full",void 0,void 0),g=`${m.NEXT_RSC_UNION_QUERY}=${f}`,h=``,i=!1,new TransformStream({transform(a,b){if(i)return void b.enqueue(a);let c=(0,k.indexOfUint8Array)(a,j.ENCODED_TAGS.CLOSED.HEAD);if(-1===c)return void b.enqueue(a);let d=p.encode(h),e=new Uint8Array(a.length+d.length);e.set(a.slice(0,c)),e.set(d,c),e.set(a.slice(c),c+d.length),b.enqueue(e),i=!0}})),z(d),C(b,!0),E()])}async function M(a,{delayDataUntilFirstHtmlChunk:b,inlinedDataStream:c,getServerInsertedHTML:d,getServerInsertedMetadata:e,deploymentId:f}){return H(a,[x(),f?F(f):null,A(d),z(e),C(c,b),E()])}function N(){return r(D)}function O(a,b,c){let d=new TextEncoder,e=d.encode(`[${a}]`),f=e[0],g=d.encode(`[${b},${c}]`),h=e.length,i=null,j=!1;function k(a,b){if(j){b&&a.enqueue(b);return}if(i){let c=i.length-(h-1);if(b&&(c+=Math.min(b.length,h-1)),c<1){a.enqueue(i),i=b;return}let d=i.indexOf(f);a:for(;-10?b.subarray(c):b;a.enqueue(e)}i=null;return}a.enqueue(i)}i=b}return new TransformStream({transform(a,b){k(b,a)},flush(a){k(a,null)}})}},33873:a=>{"use strict";a.exports=require("path")},34971:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addPathPrefix",{enumerable:!0,get:function(){return e}});let d=c(29684);function e(a,b){if(!a.startsWith("/")||!b)return a;let{pathname:c,query:e,hash:f}=(0,d.parsePath)(a);return`${b}${c}${e}${f}`}},35773:(a,b,c)=>{"use strict";a.exports=c(12342).vendored["react-rsc"].React},36471:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={isBot:function(){return h},userAgent:function(){return j},userAgentFromString:function(){return i}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=(d=c(90676))&&d.__esModule?d:{default:d};function h(a){return/Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver|GPTBot/i.test(a)}function i(a){return{...(0,g.default)(a),isBot:void 0!==a&&h(a)}}function j({headers:a}){return i(a.get("user-agent")||void 0)}},36800:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DynamicServerError:function(){return f},isDynamicServerError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="DYNAMIC_SERVER_USAGE";class f extends Error{constructor(a){super(`Dynamic server usage: ${a}`),this.description=a,this.digest=e}}function g(a){return"object"==typeof a&&null!==a&&"digest"in a&&"string"==typeof a.digest&&a.digest===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},36820:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/tags-manifest.external.js")},38384:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DEFAULT_SEGMENT_KEY:function(){return k},NOT_FOUND_SEGMENT_KEY:function(){return l},PAGE_SEGMENT_KEY:function(){return j},addSearchParamsIfPageSegment:function(){return h},computeSelectedLayoutSegment:function(){return i},getSegmentValue:function(){return e},getSelectedLayoutSegmentPath:function(){return function a(b,c,d=!0,f=[]){let g;if(d)g=b[1][c];else{let a=b[1];g=a.children??Object.values(a)[0]}if(!g)return f;let h=e(g[0]);return!h||h.startsWith(j)?f:(f.push(h),a(g,c,!1,f))}},isGroupSegment:function(){return f},isParallelRouteSegment:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){return Array.isArray(a)?a[1]:a}function f(a){return"("===a[0]&&a.endsWith(")")}function g(a){return a.startsWith("@")&&"@children"!==a}function h(a,b){if(a.includes(j)){let a=JSON.stringify(b);return"{}"!==a?j+"?"+a:j}return a}function i(a,b){if(!a||0===a.length)return null;let c="children"===b?a[0]:a[a.length-1];return c===k?null:c}let j="__PAGE__",k="__DEFAULT__",l="/_not-found"},38722:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={MutableRequestCookiesAdapter:function(){return o},ReadonlyRequestCookiesError:function(){return j},RequestCookiesAdapter:function(){return k},appendMutableCookies:function(){return n},areCookiesMutableInCurrentPhase:function(){return q},createCookiesWithMutableAccessCheck:function(){return p},getModifiedCookieValues:function(){return m},responseCookiesToRequestCookies:function(){return s}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(65597),g=c(14364),h=c(29294),i=c(88095);class j extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new j}}class k{static seal(a){return new Proxy(a,{get(a,b,c){switch(b){case"clear":case"delete":case"set":return j.callable;default:return g.ReflectAdapter.get(a,b,c)}}})}}let l=Symbol.for("next.mutated.cookies");function m(a){let b=a[l];return b&&Array.isArray(b)&&0!==b.length?b:[]}function n(a,b){let c=m(b);if(0===c.length)return!1;let d=new f.ResponseCookies(a),e=d.getAll();for(let a of c)d.set(a);for(let a of e)d.set(a);return!0}class o{static wrap(a,b){let c=new f.ResponseCookies(new Headers);for(let b of a.getAll())c.set(b);let d=[],e=new Set,j=()=>{let a=h.workAsyncStorage.getStore();if(a&&(a.pathWasRevalidated=i.ActionDidRevalidateStaticAndDynamic),d=c.getAll().filter(a=>e.has(a.name)),b){let a=[];for(let b of d){let c=new f.ResponseCookies(new Headers);c.set(b),a.push(c.toString())}b(a)}},k=new Proxy(c,{get(a,b,c){switch(b){case l:return d;case"delete":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.delete(...b),k}finally{j()}};case"set":return function(...b){e.add("string"==typeof b[0]?b[0]:b[0].name);try{return a.set(...b),k}finally{j()}};default:return g.ReflectAdapter.get(a,b,c)}}});return k}}function p(a){let b=new Proxy(a.mutableCookies,{get(c,d,e){switch(d){case"delete":return function(...d){return r(a,"cookies().delete"),c.delete(...d),b};case"set":return function(...d){return r(a,"cookies().set"),c.set(...d),b};default:return g.ReflectAdapter.get(c,d,e)}}});return b}function q(a){return"action"===a.phase}function r(a,b){if(!q(a))throw new j}function s(a){let b=new f.RequestCookies(new Headers);for(let c of a.getAll())b.set(c);return b}},38899:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={PARAM_SEPARATOR:function(){return e},hasAdjacentParameterIssues:function(){return f},normalizeAdjacentParameters:function(){return g},normalizeTokensForRegexp:function(){return h},stripNormalizedSeparators:function(){return i},stripParameterSeparators:function(){return j}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="_NEXTSEP_";function f(a){return"string"==typeof a&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(a)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(a))}function g(a){let b=a;return(b=b.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${e}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${e}`)}function h(a){return a.map(a=>"object"==typeof a&&null!==a&&"modifier"in a&&("*"===a.modifier||"+"===a.modifier)&&"prefix"in a&&"suffix"in a&&""===a.prefix&&""===a.suffix?{...a,prefix:"/"}:a)}function i(a){return a.replace(RegExp(`\\)${e}`,"g"),")")}function j(a){let b={};for(let[c,d]of Object.entries(a))"string"==typeof d?b[c]=d.replace(RegExp(`^${e}`),""):Array.isArray(d)?b[c]=d.map(a=>"string"==typeof a?a.replace(RegExp(`^${e}`),""):a):b[c]=d;return b}},39439:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MultiFileWriter",{enumerable:!0,get:function(){return f}});let e=(d=c(82720))&&d.__esModule?d:{default:d};class f{constructor(a){this.fs=a,this.tasks=[]}findOrCreateTask(a){for(let b of this.tasks)if(b[0]===a)return b;let b=this.fs.mkdir(a);b.catch(()=>{});let c=[a,b,[]];return this.tasks.push(c),c}append(a,b){let c=this.findOrCreateTask(e.default.dirname(a)),d=c[1].then(()=>this.fs.writeFile(a,b));d.catch(()=>{}),c[2].push(d)}wait(){return Promise.all(this.tasks.flatMap(a=>a[2]))}}},40411:(a,b,c)=>{"use strict";let d=c(56136),{toPromise:e,toSync:f,toSyncOptions:g}=c(47054);async function h(a,b){let c=await e(d.lock)(a,b);return e(c)}a.exports=h,a.exports.lock=h,a.exports.unlock=function(a,b){return e(d.unlock)(a,b)},a.exports.lockSync=function(a,b){let c=f(d.lock)(a,g(b));return f(c)},a.exports.unlockSync=function(a,b){return f(d.unlock)(a,g(b))},a.exports.check=function(a,b){return e(d.check)(a,b)},a.exports.checkSync=function(a,b){return f(d.check)(a,g(b))}},40631:(a,b,c)=>{"use strict";let d;c.r(b),c.d(b,{default:()=>aT,handler:()=>aS});var e={};c.r(e),c.d(e,{config:()=>aL,proxy:()=>aK}),require("next/dist/build/adapter/setup-node-env.external");var f=c(28494),g=c(80695),h=c(5885),i=c(20966);let j=new TextEncoder,k=new TextDecoder;function l(a){let b=new Uint8Array(a.length);for(let c=0;c127)throw TypeError("non-ASCII string encountered in encode()");b[c]=d}return b}function m(a){if(Uint8Array.fromBase64)return Uint8Array.fromBase64("string"==typeof a?a:k.decode(a),{alphabet:"base64url"});let b=a;b instanceof Uint8Array&&(b=k.decode(b)),b=b.replace(/-/g,"+").replace(/_/g,"/");try{var c=b;if(Uint8Array.fromBase64)return Uint8Array.fromBase64(c);let a=atob(c),d=new Uint8Array(a.length);for(let b=0;bTypeError(`CryptoKey does not support this operation, its ${b} must be ${a}`);function x(a,b){if(parseInt(a.hash.name.slice(4),10)!==b)throw w(`SHA-${b}`,"algorithm.hash")}function y(a,b,...c){if((c=c.filter(Boolean)).length>2){let b=c.pop();a+=`one of type ${c.join(", ")}, or ${b}.`}else 2===c.length?a+=`one of type ${c[0]} or ${c[1]}.`:a+=`of type ${c[0]}.`;return null==b?a+=` Received ${b}`:"function"==typeof b&&b.name?a+=` Received function ${b.name}`:"object"==typeof b&&null!=b&&b.constructor?.name&&(a+=` Received an instance of ${b.constructor.name}`),a}let z=(a,b,...c)=>y(`Key for the ${a} algorithm must be `,b,...c);async function A(a,b,c){if(b instanceof Uint8Array){if(!a.startsWith("HS"))throw TypeError(((a,...b)=>y("Key must be ",a,...b))(b,"CryptoKey","KeyObject","JSON Web Key"));return crypto.subtle.importKey("raw",b,{hash:`SHA-${a.slice(-3)}`,name:"HMAC"},!1,[c])}return!function(a,b,c){switch(b){case"HS256":case"HS384":case"HS512":if("HMAC"!==a.algorithm.name)throw w("HMAC");x(a.algorithm,parseInt(b.slice(2),10));break;case"RS256":case"RS384":case"RS512":if("RSASSA-PKCS1-v1_5"!==a.algorithm.name)throw w("RSASSA-PKCS1-v1_5");x(a.algorithm,parseInt(b.slice(2),10));break;case"PS256":case"PS384":case"PS512":if("RSA-PSS"!==a.algorithm.name)throw w("RSA-PSS");x(a.algorithm,parseInt(b.slice(2),10));break;case"Ed25519":case"EdDSA":if("Ed25519"!==a.algorithm.name)throw w("Ed25519");break;case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":let d;if(d=a.algorithm,d.name!==b)throw w(b);break;case"ES256":case"ES384":case"ES512":{if("ECDSA"!==a.algorithm.name)throw w("ECDSA");let c=function(a){switch(a){case"ES256":return"P-256";case"ES384":return"P-384";case"ES512":return"P-521";default:throw Error("unreachable")}}(b);if(a.algorithm.namedCurve!==c)throw w(c,"algorithm.namedCurve");break}default:throw TypeError("CryptoKey does not support this operation")}if(c&&!a.usages.includes(c))throw TypeError(`CryptoKey does not support this operation, its usages must include ${c}.`)}(b,a,c),b}async function B(a,b,c,d){let e=await A(a,b,"verify");!function(a,b){if(a.startsWith("RS")||a.startsWith("PS")){let{modulusLength:c}=b.algorithm;if("number"!=typeof c||c<2048)throw TypeError(`${a} requires key modulusLength to be 2048 bits or larger`)}}(a,e);let f=function(a,b){let c=`SHA-${a.slice(-3)}`;switch(a){case"HS256":case"HS384":case"HS512":return{hash:c,name:"HMAC"};case"PS256":case"PS384":case"PS512":return{hash:c,name:"RSA-PSS",saltLength:parseInt(a.slice(-3),10)>>3};case"RS256":case"RS384":case"RS512":return{hash:c,name:"RSASSA-PKCS1-v1_5"};case"ES256":case"ES384":case"ES512":return{hash:c,name:"ECDSA",namedCurve:b.namedCurve};case"Ed25519":case"EdDSA":return{name:"Ed25519"};case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":return{name:a};default:throw new r(`alg ${a} is not supported either by JOSE or your javascript runtime`)}}(a,e.algorithm);try{return await crypto.subtle.verify(f,e,c,d)}catch{return!1}}function C(a,b,c){try{return m(a)}catch{throw new c(`Failed to base64url decode the ${b}`)}}function D(a){if("object"!=typeof a||null===a||"[object Object]"!==Object.prototype.toString.call(a))return!1;if(null===Object.getPrototypeOf(a))return!0;let b=a;for(;null!==Object.getPrototypeOf(b);)b=Object.getPrototypeOf(b);return Object.getPrototypeOf(a)===b}Symbol();let E=a=>D(a)&&"string"==typeof a.kty,F=a=>{if(a?.[Symbol.toStringTag]==="CryptoKey")return!0;try{return a instanceof CryptoKey}catch{return!1}},G=a=>a?.[Symbol.toStringTag]==="KeyObject",H=a=>F(a)||G(a),I=a=>a?.[Symbol.toStringTag],J=(a,b,c)=>{if(void 0!==b.use){let a;switch(c){case"sign":case"verify":a="sig";break;case"encrypt":case"decrypt":a="enc"}if(b.use!==a)throw TypeError(`Invalid key for this operation, its "use" must be "${a}" when present`)}if(void 0!==b.alg&&b.alg!==a)throw TypeError(`Invalid key for this operation, its "alg" must be "${a}" when present`);if(Array.isArray(b.key_ops)){let d;switch(!0){case"sign"===c||"verify"===c:case"dir"===a:case a.includes("CBC-HS"):d=c;break;case a.startsWith("PBES2"):d="deriveBits";break;case/^A\d{3}(?:GCM)?(?:KW)?$/.test(a):d=!a.includes("GCM")&&a.endsWith("KW")?"encrypt"===c?"wrapKey":"unwrapKey":c;break;case"encrypt"===c&&a.startsWith("RSA"):d="wrapKey";break;case"decrypt"===c:d=a.startsWith("RSA")?"unwrapKey":"deriveBits"}if(d&&b.key_ops?.includes?.(d)===!1)throw TypeError(`Invalid key for this operation, its "key_ops" must include "${d}" when present`)}return!0},K='Invalid or unsupported JWK "alg" (Algorithm) Parameter value';async function L(a){if(!a.alg)throw TypeError('"alg" argument is required when "jwk.alg" is not present');let{algorithm:b,keyUsages:c}=function(a){let b,c;switch(a.kty){case"AKP":switch(a.alg){case"ML-DSA-44":case"ML-DSA-65":case"ML-DSA-87":b={name:a.alg},c=a.priv?["sign"]:["verify"];break;default:throw new r(K)}break;case"RSA":switch(a.alg){case"PS256":case"PS384":case"PS512":b={name:"RSA-PSS",hash:`SHA-${a.alg.slice(-3)}`},c=a.d?["sign"]:["verify"];break;case"RS256":case"RS384":case"RS512":b={name:"RSASSA-PKCS1-v1_5",hash:`SHA-${a.alg.slice(-3)}`},c=a.d?["sign"]:["verify"];break;case"RSA-OAEP":case"RSA-OAEP-256":case"RSA-OAEP-384":case"RSA-OAEP-512":b={name:"RSA-OAEP",hash:`SHA-${parseInt(a.alg.slice(-3),10)||1}`},c=a.d?["decrypt","unwrapKey"]:["encrypt","wrapKey"];break;default:throw new r(K)}break;case"EC":switch(a.alg){case"ES256":case"ES384":case"ES512":b={name:"ECDSA",namedCurve:({ES256:"P-256",ES384:"P-384",ES512:"P-521"})[a.alg]},c=a.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":b={name:"ECDH",namedCurve:a.crv},c=a.d?["deriveBits"]:[];break;default:throw new r(K)}break;case"OKP":switch(a.alg){case"Ed25519":case"EdDSA":b={name:"Ed25519"},c=a.d?["sign"]:["verify"];break;case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":b={name:a.crv},c=a.d?["deriveBits"]:[];break;default:throw new r(K)}break;default:throw new r('Invalid or unsupported JWK "kty" (Key Type) Parameter value')}return{algorithm:b,keyUsages:c}}(a),d={...a};return"AKP"!==d.kty&&delete d.alg,delete d.use,crypto.subtle.importKey("jwk",d,b,a.ext??(!a.d&&!a.priv),a.key_ops??c)}let M="given KeyObject instance cannot be used for this algorithm",N=async(a,b,c,e=!1)=>{let f=(d||=new WeakMap).get(a);if(f?.[c])return f[c];let g=await L({...b,alg:c});return e&&Object.freeze(a),f?f[c]=g:d.set(a,{[c]:g}),g};async function O(a,b){if(a instanceof Uint8Array||F(a))return a;if(G(a)){if("secret"===a.type)return a.export();if("toCryptoKey"in a&&"function"==typeof a.toCryptoKey)try{return((a,b)=>{let c,e=(d||=new WeakMap).get(a);if(e?.[b])return e[b];let f="public"===a.type,g=!!f;if("x25519"===a.asymmetricKeyType){switch(b){case"ECDH-ES":case"ECDH-ES+A128KW":case"ECDH-ES+A192KW":case"ECDH-ES+A256KW":break;default:throw TypeError(M)}c=a.toCryptoKey(a.asymmetricKeyType,g,f?[]:["deriveBits"])}if("ed25519"===a.asymmetricKeyType){if("EdDSA"!==b&&"Ed25519"!==b)throw TypeError(M);c=a.toCryptoKey(a.asymmetricKeyType,g,[f?"verify":"sign"])}switch(a.asymmetricKeyType){case"ml-dsa-44":case"ml-dsa-65":case"ml-dsa-87":if(b!==a.asymmetricKeyType.toUpperCase())throw TypeError(M);c=a.toCryptoKey(a.asymmetricKeyType,g,[f?"verify":"sign"])}if("rsa"===a.asymmetricKeyType){let d;switch(b){case"RSA-OAEP":d="SHA-1";break;case"RS256":case"PS256":case"RSA-OAEP-256":d="SHA-256";break;case"RS384":case"PS384":case"RSA-OAEP-384":d="SHA-384";break;case"RS512":case"PS512":case"RSA-OAEP-512":d="SHA-512";break;default:throw TypeError(M)}if(b.startsWith("RSA-OAEP"))return a.toCryptoKey({name:"RSA-OAEP",hash:d},g,f?["encrypt"]:["decrypt"]);c=a.toCryptoKey({name:b.startsWith("PS")?"RSA-PSS":"RSASSA-PKCS1-v1_5",hash:d},g,[f?"verify":"sign"])}if("ec"===a.asymmetricKeyType){let d=new Map([["prime256v1","P-256"],["secp384r1","P-384"],["secp521r1","P-521"]]).get(a.asymmetricKeyDetails?.namedCurve);if(!d)throw TypeError(M);let e={ES256:"P-256",ES384:"P-384",ES512:"P-521"};e[b]&&d===e[b]&&(c=a.toCryptoKey({name:"ECDSA",namedCurve:d},g,[f?"verify":"sign"])),b.startsWith("ECDH-ES")&&(c=a.toCryptoKey({name:"ECDH",namedCurve:d},g,f?[]:["deriveBits"]))}if(!c)throw TypeError(M);return e?e[b]=c:d.set(a,{[b]:c}),c})(a,b)}catch(a){if(a instanceof TypeError)throw a}let c=a.export({format:"jwk"});return N(a,c,b)}if(E(a))return a.k?m(a.k):N(a,a,b,!0);throw Error("unreachable")}async function P(a,b,c){if(!D(a))throw new s("Flattened JWS must be an object");if(void 0===a.protected&&void 0===a.header)throw new s('Flattened JWS must have either of the "protected" or "header" members');if(void 0!==a.protected&&"string"!=typeof a.protected)throw new s("JWS Protected Header incorrect type");if(void 0===a.payload)throw new s("JWS Payload missing");if("string"!=typeof a.signature)throw new s("JWS Signature missing or incorrect type");if(void 0!==a.header&&!D(a.header))throw new s("JWS Unprotected Header incorrect type");let d={};if(a.protected)try{let b=m(a.protected);d=JSON.parse(k.decode(b))}catch{throw new s("JWS Protected Header is invalid")}if(!function(...a){let b,c=a.filter(Boolean);if(0===c.length||1===c.length)return!0;for(let a of c){let c=Object.keys(a);if(!b||0===b.size){b=new Set(c);continue}for(let a of c){if(b.has(a))return!1;b.add(a)}}return!0}(d,a.header))throw new s("JWS Protected and JWS Unprotected Header Parameter names must be disjoint");let e={...d,...a.header},f=function(a,b,c,d,e){let f;if(void 0!==e.crit&&d?.crit===void 0)throw new a('"crit" (Critical) Header Parameter MUST be integrity protected');if(!d||void 0===d.crit)return new Set;if(!Array.isArray(d.crit)||0===d.crit.length||d.crit.some(a=>"string"!=typeof a||0===a.length))throw new a('"crit" (Critical) Header Parameter MUST be an array of non-empty strings when present');for(let g of(f=void 0!==c?new Map([...Object.entries(c),...b.entries()]):b,d.crit)){if(!f.has(g))throw new r(`Extension Header Parameter "${g}" is not recognized`);if(void 0===e[g])throw new a(`Extension Header Parameter "${g}" is missing`);if(f.get(g)&&void 0===d[g])throw new a(`Extension Header Parameter "${g}" MUST be integrity protected`)}return new Set(d.crit)}(s,new Map([["b64",!0]]),c?.crit,d,e),g=!0;if(f.has("b64")&&"boolean"!=typeof(g=d.b64))throw new s('The "b64" (base64url-encode payload) Header Parameter must be a boolean');let{alg:h}=e;if("string"!=typeof h||!h)throw new s('JWS "alg" (Algorithm) Header Parameter missing or invalid');let i=c&&function(a,b){if(void 0!==b&&(!Array.isArray(b)||b.some(a=>"string"!=typeof a)))throw TypeError(`"${a}" option must be an array of strings`);if(b)return new Set(b)}("algorithms",c.algorithms);if(i&&!i.has(h))throw new q('"alg" (Algorithm) Header Parameter value not allowed');if(g){if("string"!=typeof a.payload)throw new s("JWS Payload must be a string")}else if("string"!=typeof a.payload&&!(a.payload instanceof Uint8Array))throw new s("JWS Payload must be a string or an Uint8Array instance");let n=!1;"function"==typeof b&&(b=await b(d,a),n=!0);var o=b,p="verify";switch(h.substring(0,2)){case"A1":case"A2":case"di":case"HS":case"PB":((a,b,c)=>{if(!(b instanceof Uint8Array)){if(E(b)){if("oct"===b.kty&&"string"==typeof b.k&&J(a,b,c))return;throw TypeError('JSON Web Key for symmetric algorithms must have JWK "kty" (Key Type) equal to "oct" and the JWK "k" (Key Value) present')}if(!H(b))throw TypeError(z(a,b,"CryptoKey","KeyObject","JSON Web Key","Uint8Array"));if("secret"!==b.type)throw TypeError(`${I(b)} instances for symmetric algorithms must be of type "secret"`)}})(h,o,p);break;default:((a,b,c)=>{if(E(b))switch(c){case"decrypt":case"sign":if("oct"!==b.kty&&("AKP"===b.kty&&"string"==typeof b.priv||"string"==typeof b.d)&&J(a,b,c))return;throw TypeError("JSON Web Key for this operation must be a private JWK");case"encrypt":case"verify":if("oct"!==b.kty&&void 0===b.d&&void 0===b.priv&&J(a,b,c))return;throw TypeError("JSON Web Key for this operation must be a public JWK")}if(!H(b))throw TypeError(z(a,b,"CryptoKey","KeyObject","JSON Web Key"));if("secret"===b.type)throw TypeError(`${I(b)} instances for asymmetric algorithms must not be of type "secret"`);if("public"===b.type)switch(c){case"sign":throw TypeError(`${I(b)} instances for asymmetric algorithm signing must be of type "private"`);case"decrypt":throw TypeError(`${I(b)} instances for asymmetric algorithm decryption must be of type "private"`)}if("private"===b.type)switch(c){case"verify":throw TypeError(`${I(b)} instances for asymmetric algorithm verifying must be of type "public"`);case"encrypt":throw TypeError(`${I(b)} instances for asymmetric algorithm encryption must be of type "public"`)}})(h,o,p)}let t=function(...a){let b=new Uint8Array(a.reduce((a,{length:b})=>a+b,0)),c=0;for(let d of a)b.set(d,c),c+=d.length;return b}(void 0!==a.protected?l(a.protected):new Uint8Array,l("."),"string"==typeof a.payload?g?l(a.payload):j.encode(a.payload):a.payload),u=C(a.signature,"signature",s),w=await O(b,h);if(!await B(h,w,u,t))throw new v;let x={payload:g?C(a.payload,"payload",s):"string"==typeof a.payload?j.encode(a.payload):a.payload};return(void 0!==a.protected&&(x.protectedHeader=d),void 0!==a.header&&(x.unprotectedHeader=a.header),n)?{...x,key:w}:x}async function Q(a,b,c){if(a instanceof Uint8Array&&(a=k.decode(a)),"string"!=typeof a)throw new s("Compact JWS must be a string or Uint8Array");let{0:d,1:e,2:f,length:g}=a.split(".");if(3!==g)throw new s("Invalid Compact JWS");let h=await P({payload:e,protected:d,signature:f},b,c),i={payload:h.payload,protectedHeader:h.protectedHeader};return"function"==typeof b?{...i,key:h.key}:i}let R=/^(\+|\-)? ?(\d+|\d+\.\d+) ?(seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)(?: (ago|from now))?$/i;function S(a){let b,c=R.exec(a);if(!c||c[4]&&c[1])throw TypeError("Invalid time period format");let d=parseFloat(c[2]);switch(c[3].toLowerCase()){case"sec":case"secs":case"second":case"seconds":case"s":b=Math.round(d);break;case"minute":case"minutes":case"min":case"mins":case"m":b=Math.round(60*d);break;case"hour":case"hours":case"hr":case"hrs":case"h":b=Math.round(3600*d);break;case"day":case"days":case"d":b=Math.round(86400*d);break;case"week":case"weeks":case"w":b=Math.round(604800*d);break;default:b=Math.round(0x1e187e0*d)}return"-"===c[1]||"ago"===c[4]?-b:b}let T=a=>a.includes("/")?a.toLowerCase():`application/${a.toLowerCase()}`;async function U(a,b,c){let d=await Q(a,b,c);if(d.protectedHeader.crit?.includes("b64")&&!1===d.protectedHeader.b64)throw new t("JWTs MUST NOT use unencoded payload");let e={payload:function(a,b,c={}){var d,e;let f,g;try{f=JSON.parse(k.decode(b))}catch{}if(!D(f))throw new t("JWT Claims Set must be a top-level JSON object");let{typ:h}=c;if(h&&("string"!=typeof a.typ||T(a.typ)!==T(h)))throw new o('unexpected "typ" JWT header value',f,"typ","check_failed");let{requiredClaims:i=[],issuer:j,subject:l,audience:m,maxTokenAge:n}=c,q=[...i];for(let a of(void 0!==n&&q.push("iat"),void 0!==m&&q.push("aud"),void 0!==l&&q.push("sub"),void 0!==j&&q.push("iss"),new Set(q.reverse())))if(!(a in f))throw new o(`missing required "${a}" claim`,f,a,"missing");if(j&&!(Array.isArray(j)?j:[j]).includes(f.iss))throw new o('unexpected "iss" claim value',f,"iss","check_failed");if(l&&f.sub!==l)throw new o('unexpected "sub" claim value',f,"sub","check_failed");if(m&&(d=f.aud,e="string"==typeof m?[m]:m,"string"==typeof d?!e.includes(d):!(Array.isArray(d)&&e.some(Set.prototype.has.bind(new Set(d))))))throw new o('unexpected "aud" claim value',f,"aud","check_failed");switch(typeof c.clockTolerance){case"string":g=S(c.clockTolerance);break;case"number":g=c.clockTolerance;break;case"undefined":g=0;break;default:throw TypeError("Invalid clockTolerance option type")}let{currentDate:r}=c,s=Math.floor((r||new Date).getTime()/1e3);if((void 0!==f.iat||n)&&"number"!=typeof f.iat)throw new o('"iat" claim must be a number',f,"iat","invalid");if(void 0!==f.nbf){if("number"!=typeof f.nbf)throw new o('"nbf" claim must be a number',f,"nbf","invalid");if(f.nbf>s+g)throw new o('"nbf" claim timestamp check failed',f,"nbf","check_failed")}if(void 0!==f.exp){if("number"!=typeof f.exp)throw new o('"exp" claim must be a number',f,"exp","invalid");if(f.exp<=s-g)throw new p('"exp" claim timestamp check failed',f,"exp","check_failed")}if(n){let a=s-f.iat;if(a-g>("number"==typeof n?n:S(n)))throw new p('"iat" claim timestamp check failed (too far in the past)',f,"iat","check_failed");if(a<0-g)throw new o('"iat" claim timestamp check failed (it should be in the past)',f,"iat","check_failed")}return f}(d.protectedHeader,d.payload,c),protectedHeader:d.protectedHeader};return"function"==typeof b?{...e,key:d.key}:e}class V{adapter;data;constructor(a,b){!function(a,b){if(void 0===a)throw Error("lowdb: missing adapter");if(void 0===b)throw Error("lowdb: missing default data")}(a,b),this.adapter=a,this.data=b}async read(){let a=await this.adapter.read();a&&(this.data=a)}async write(){this.data&&await this.adapter.write(this.data)}async update(a){a(this.data),await this.write()}}var W=c(73024),X=c.n(W),Y=c(51455),Z=c(76760),$=c.n(Z),_=c(73136);async function aa(a,b,c){for(let d=0;dsetTimeout(a,c));else throw a}}class ab{#b;#c;#d=!1;#e=null;#f=null;#g=null;#h=null;#i(a){return this.#h=a,this.#g||=new Promise((a,b)=>{this.#f=[a,b]}),new Promise((a,b)=>{this.#g?.then(a).catch(b)})}async #j(a){this.#d=!0;try{await (0,Y.writeFile)(this.#c,a,"utf-8"),await aa(async()=>{await (0,Y.rename)(this.#c,this.#b)},10,100),this.#e?.[0]()}catch(a){throw a instanceof Error&&this.#e?.[1](a),a}finally{if(this.#d=!1,this.#e=this.#f,this.#f=this.#g=null,null!==this.#h){let a=this.#h;this.#h=null,await this.write(a)}}}constructor(a){this.#b=a,this.#c=function(a){let b=a instanceof URL?(0,_.fileURLToPath)(a):a.toString();return(0,Z.join)((0,Z.dirname)(b),`.${(0,Z.basename)(b)}.tmp`)}(a)}async write(a){return this.#d?this.#i(a):this.#j(a)}}class ac{#b;#k;constructor(a){this.#b=a,this.#k=new ab(a)}async read(){let a;try{a=await (0,Y.readFile)(this.#b,"utf-8")}catch(a){if("ENOENT"===a.code)return null;throw a}return a}write(a){return this.#k.write(a)}}class ad{#l;#m;#n;constructor(a,{parse:b,stringify:c}){this.#l=new ac(a),this.#m=b,this.#n=c}async read(){let a=await this.#l.read();return null===a?null:this.#m(a)}write(a){return this.#l.write(this.#n(a))}}class ae extends ad{constructor(a){super(a,{parse:JSON.parse,stringify:a=>JSON.stringify(a,null,2)})}}var af=c(40411),ag=c.n(af),ah=c(33873),ai=c.n(ah),aj=c(21820),ak=c.n(aj);let al="9router",am=process.env.DATA_DIR?process.env.DATA_DIR:"win32"===process.platform?ai().join(process.env.APPDATA||ai().join(ak().homedir(),"AppData","Roaming"),al):ai().join(ak().homedir(),`.${al}`),an=$().join(am,"db.json");X().existsSync(am)||X().mkdirSync(am,{recursive:!0});let ao={cloudEnabled:!1,tunnelEnabled:!1,tunnelUrl:"",tunnelProvider:"cloudflare",tailscaleEnabled:!1,tailscaleUrl:"",stickyRoundRobinLimit:3,providerStrategies:{},comboStrategy:"fallback",comboStickyRoundRobinLimit:1,comboStrategies:{},requireLogin:!0,tunnelDashboardAccess:!0,observabilityEnabled:!0,observabilityMaxRecords:1e3,observabilityBatchSize:20,observabilityFlushIntervalMs:5e3,observabilityMaxJsonSize:1024,outboundProxyEnabled:!1,outboundProxyUrl:"",outboundNoProxy:"",mitmRouterBaseUrl:"http://localhost:20128",dnsToolEnabled:{},rtkEnabled:!0,cavemanEnabled:!1,cavemanLevel:"full"};function ap(){return{providerConnections:[],providerNodes:[],proxyPools:[],modelAliases:{},customModels:[],mitmAlias:{},combos:[],apiKeys:[],settings:{...ao},pricing:{}}}X().existsSync(an)||X().writeFileSync(an,JSON.stringify(ap(),null,2));let aq=null,ar={retries:{retries:15,minTimeout:50,maxTimeout:3e3},stale:1e4};class as{constructor(){this._queue=[],this._locked=!1}async acquire(){return this._locked?new Promise(a=>{this._queue.push(()=>a(()=>this._release()))}):(this._locked=!0,()=>this._release())}_release(){let a=this._queue.shift();a?a():this._locked=!1}}let at=new as;async function au(a,b){let c=await at.acquire(),d=null;try{d=await ag().lock(an,ar),await b()}catch(a){throw"ELOCKED"===a.code&&console.warn("[DB] File is locked, retrying..."),a}finally{if(d)try{await d()}catch(a){}c()}}async function av(a){await au(a,()=>a.read())}async function aw(a){await au(a,()=>a.write())}async function ax(){aq||(aq=new V(new ae(an),ap()));try{await av(aq)}catch(a){if(a instanceof SyntaxError)console.warn("[DB] Corrupt JSON detected, resetting to defaults..."),aq.data=ap(),await aw(aq);else throw a}if(aq.data){let{data:a,changed:b}=function(a){let b=ap(),c=a&&"object"==typeof a?a:{},d=!1;for(let[a,e]of Object.entries(b)){if(void 0===c[a]||null===c[a]){c[a]=e,d=!0;continue}if("settings"===a&&("object"!=typeof c.settings||Array.isArray(c.settings))){c.settings={...e},d=!0;continue}if("settings"===a&&"object"==typeof c.settings&&!Array.isArray(c.settings))for(let[a,b]of Object.entries(e))void 0===c.settings[a]&&("outboundProxyEnabled"===a&&"string"==typeof c.settings.outboundProxyUrl&&c.settings.outboundProxyUrl.trim()?c.settings.outboundProxyEnabled=!0:c.settings[a]=b,d=!0);if("apiKeys"===a&&Array.isArray(c.apiKeys))for(let a of c.apiKeys)(void 0===a.isActive||null===a.isActive)&&(a.isActive=!0,d=!0)}return{data:c,changed:d}}(aq.data);aq.data=a,b&&await aw(aq)}else aq.data=ap(),await aw(aq);return aq}async function ay(){return(await ax()).data.settings||{cloudEnabled:!1}}var az=c(29999);async function aA(a=null){let b=a||process.env.MACHINE_ID_SALT||"endpoint-proxy-salt";try{let a=(0,az.machineIdSync)();return(await Promise.resolve().then(c.t.bind(c,55511,23))).createHash("sha256").update(a+b).digest("hex").substring(0,16)}catch(a){return console.log("Error getting machine ID:",a),crypto.randomUUID?crypto.randomUUID():"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(a){let b=16*Math.random()|0;return("x"==a?b:3&b|8).toString(16)})}}let aB=new TextEncoder().encode(process.env.JWT_SECRET||"9router-default-secret-change-me"),aC=null;async function aD(){return aC||(aC=await aA("9r-cli-auth")),aC}async function aE(a){let b=a.headers.get("x-9r-cli-token");return!!b&&b===await aD()}let aF=["/api/shutdown","/api/settings/database"],aG=["/api/settings","/api/keys","/api/providers/client","/api/provider-nodes/validate"];async function aH(a){let b=a.cookies.get("auth_token")?.value;if(!b)return!1;try{return await U(b,aB),!0}catch{return!1}}async function aI(){try{return await ay()}catch{return null}}async function aJ(a){if(await aH(a))return!0;let b=await aI();return!!b&&!1===b.requireLogin}async function aK(a){let{pathname:b}=a.nextUrl;if(aF.some(a=>b.startsWith(a)))return await aE(a)||await aH(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(aG.some(a=>b.startsWith(a)))return"/api/settings/require-login"===b||await aE(a)||await aJ(a)?i.NextResponse.next():i.NextResponse.json({error:"Unauthorized"},{status:401});if(b.startsWith("/dashboard")){let b=!0;try{let c=await aI();if(c&&(b=!1!==c.requireLogin,!0!==c.tunnelDashboardAccess)){let b=(a.headers.get("host")||"").split(":")[0].toLowerCase(),d=c.tunnelUrl?new URL(c.tunnelUrl).hostname.toLowerCase():"",e=c.tailscaleUrl?new URL(c.tailscaleUrl).hostname.toLowerCase():"";if(d&&b===d||e&&b===e)return i.NextResponse.redirect(new URL("/login",a.url))}}catch{}if(!b)return i.NextResponse.next();let c=a.cookies.get("auth_token")?.value;if(c)try{return await U(c,aB),i.NextResponse.next()}catch{}return i.NextResponse.redirect(new URL("/login",a.url))}return"/"===b?i.NextResponse.redirect(new URL("/dashboard",a.url)):i.NextResponse.next()}let aL={matcher:["/","/dashboard/:path*","/api/shutdown","/api/settings/:path*","/api/keys","/api/keys/:path*","/api/providers/client","/api/provider-nodes/validate"]};c(52895);var aM=c(18977);let aN={...e},aO="/src/proxy",aP=(0,aN.proxy||aN.default);class aQ extends Error{constructor(a){super(a),this.stack=""}}if("function"!=typeof aP)throw new aQ(`The Proxy file "${aO}" must export a function named \`proxy\` or a default function.`);let aR=a=>(0,g.adapter)({...a,IncrementalCache:h.IncrementalCache,incrementalCacheHandler:null,page:aO,handler:async(...a)=>{try{return await aP(...a)}catch(e){let b=a[0],c=new URL(b.url),d=c.pathname+c.search;throw await (0,f.edgeInstrumentationOnRequestError)(e,{path:d,method:b.method,headers:Object.fromEntries(b.headers.entries())},{routerKind:"Pages Router",routePath:"/proxy",routeType:"proxy",revalidateReason:void 0}),e}}});async function aS(a,b){let c=await aR({request:{url:a.url,method:a.method,headers:(0,aM.toNodeOutgoingHttpHeaders)(a.headers),nextConfig:{basePath:"",i18n:"",trailingSlash:!1,experimental:{cacheLife:{default:{stale:300,revalidate:900,expire:0xfffffffe},seconds:{stale:30,revalidate:1,expire:60},minutes:{stale:300,revalidate:60,expire:3600},hours:{stale:300,revalidate:3600,expire:86400},days:{stale:300,revalidate:86400,expire:604800},weeks:{stale:300,revalidate:604800,expire:2592e3},max:{stale:300,revalidate:2592e3,expire:31536e3}},authInterrupts:!1,clientParamParsingOrigins:[]}},page:{name:aO},body:"GET"!==a.method&&"HEAD"!==a.method?a.body??void 0:void 0,waitUntil:b.waitUntil,requestMeta:b.requestMeta,signal:b.signal||new AbortController().signal}});return null==b.waitUntil||b.waitUntil.call(b,c.waitUntil),c.response}let aT=aR},40704:(a,b)=>{"use strict";function c(a){try{return decodeURIComponent(a)}catch{return a}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"decodeQueryPathParameter",{enumerable:!0,get:function(){return c}})},40719:(a,b)=>{"use strict";function c(){throw Object.defineProperty(Error('ImageResponse moved from "next/server" to "next/og" since Next.js 14, please import from "next/og" instead'),"__NEXT_ERROR_CODE",{value:"E183",enumerable:!1,configurable:!0})}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ImageResponse",{enumerable:!0,get:function(){return c}})},41128:a=>{"use strict";var b=Object.defineProperty,c=Object.getOwnPropertyDescriptor,d=Object.getOwnPropertyNames,e=Object.prototype.hasOwnProperty,f={},g={RequestCookies:()=>n,ResponseCookies:()=>o,parseCookie:()=>j,parseSetCookie:()=>k,stringifyCookie:()=>i};for(var h in g)b(f,h,{get:g[h],enumerable:!0});function i(a){var b;let c=["path"in a&&a.path&&`Path=${a.path}`,"expires"in a&&(a.expires||0===a.expires)&&`Expires=${("number"==typeof a.expires?new Date(a.expires):a.expires).toUTCString()}`,"maxAge"in a&&"number"==typeof a.maxAge&&`Max-Age=${a.maxAge}`,"domain"in a&&a.domain&&`Domain=${a.domain}`,"secure"in a&&a.secure&&"Secure","httpOnly"in a&&a.httpOnly&&"HttpOnly","sameSite"in a&&a.sameSite&&`SameSite=${a.sameSite}`,"partitioned"in a&&a.partitioned&&"Partitioned","priority"in a&&a.priority&&`Priority=${a.priority}`].filter(Boolean),d=`${a.name}=${encodeURIComponent(null!=(b=a.value)?b:"")}`;return 0===c.length?d:`${d}; ${c.join("; ")}`}function j(a){let b=new Map;for(let c of a.split(/; */)){if(!c)continue;let a=c.indexOf("=");if(-1===a){b.set(c,"true");continue}let[d,e]=[c.slice(0,a),c.slice(a+1)];try{b.set(d,decodeURIComponent(null!=e?e:"true"))}catch{}}return b}function k(a){if(!a)return;let[[b,c],...d]=j(a),{domain:e,expires:f,httponly:g,maxage:h,path:i,samesite:k,secure:n,partitioned:o,priority:p}=Object.fromEntries(d.map(([a,b])=>[a.toLowerCase().replace(/-/g,""),b]));{var q,r,s={name:b,value:decodeURIComponent(c),domain:e,...f&&{expires:new Date(f)},...g&&{httpOnly:!0},..."string"==typeof h&&{maxAge:Number(h)},path:i,...k&&{sameSite:l.includes(q=(q=k).toLowerCase())?q:void 0},...n&&{secure:!0},...p&&{priority:m.includes(r=(r=p).toLowerCase())?r:void 0},...o&&{partitioned:!0}};let a={};for(let b in s)s[b]&&(a[b]=s[b]);return a}}a.exports=((a,f,g,h)=>{if(f&&"object"==typeof f||"function"==typeof f)for(let i of d(f))e.call(a,i)||i===g||b(a,i,{get:()=>f[i],enumerable:!(h=c(f,i))||h.enumerable});return a})(b({},"__esModule",{value:!0}),f);var l=["strict","lax","none"],m=["low","medium","high"],n=class{constructor(a){this._parsed=new Map,this._headers=a;const b=a.get("cookie");if(b)for(const[a,c]of j(b))this._parsed.set(a,{name:a,value:c})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed);if(!a.length)return c.map(([a,b])=>b);let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(([a])=>a===d).map(([a,b])=>b)}has(a){return this._parsed.has(a)}set(...a){let[b,c]=1===a.length?[a[0].name,a[0].value]:a,d=this._parsed;return d.set(b,{name:b,value:c}),this._headers.set("cookie",Array.from(d).map(([a,b])=>i(b)).join("; ")),this}delete(a){let b=this._parsed,c=Array.isArray(a)?a.map(a=>b.delete(a)):b.delete(a);return this._headers.set("cookie",Array.from(b).map(([a,b])=>i(b)).join("; ")),c}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(a=>`${a.name}=${encodeURIComponent(a.value)}`).join("; ")}},o=class{constructor(a){var b,c,d;this._parsed=new Map,this._headers=a;const e=null!=(d=null!=(c=null==(b=a.getSetCookie)?void 0:b.call(a))?c:a.get("set-cookie"))?d:[];for(const a of Array.isArray(e)?e:function(a){if(!a)return[];var b,c,d,e,f,g=[],h=0;function i(){for(;h=a.length)&&g.push(a.substring(b,a.length))}return g}(e)){const b=k(a);b&&this._parsed.set(b.name,b)}}get(...a){let b="string"==typeof a[0]?a[0]:a[0].name;return this._parsed.get(b)}getAll(...a){var b;let c=Array.from(this._parsed.values());if(!a.length)return c;let d="string"==typeof a[0]?a[0]:null==(b=a[0])?void 0:b.name;return c.filter(a=>a.name===d)}has(a){return this._parsed.has(a)}set(...a){let[b,c,d]=1===a.length?[a[0].name,a[0].value,a[0]]:a,e=this._parsed;return e.set(b,function(a={name:"",value:""}){return"number"==typeof a.expires&&(a.expires=new Date(a.expires)),a.maxAge&&(a.expires=new Date(Date.now()+1e3*a.maxAge)),(null===a.path||void 0===a.path)&&(a.path="/"),a}({name:b,value:c,...d})),function(a,b){for(let[,c]of(b.delete("set-cookie"),a)){let a=i(c);b.append("set-cookie",a)}}(e,this._headers),this}delete(...a){let[b,c]="string"==typeof a[0]?[a[0]]:[a[0].name,a[0]];return this.set({...c,name:b,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(i).join("; ")}}},43137:(a,b,c)=>{a.exports=c(69903)},43413:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getTestReqInfo:function(){return i},withRequest:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=new(c(16698)).AsyncLocalStorage;function g(a,b){let c=b.header(a,"next-test-proxy-port");if(!c)return;let d=b.url(a);return{url:d,proxyPort:Number(c),testData:b.header(a,"next-test-data")||""}}function h(a,b,c){let d=g(a,b);return d?f.run(d,c):c()}function i(a,b){let c=f.getStore();return c||(a&&b?g(a,b):void 0)}},43950:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={atLeastOneTask:function(){return g},scheduleImmediate:function(){return f},scheduleOnNextTick:function(){return e},waitAtLeastOneReactRenderTask:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=a=>{Promise.resolve().then(()=>{process.nextTick(a)})},f=a=>{setImmediate(a)};function g(){return new Promise(a=>f(a))}function h(){return new Promise(a=>setImmediate(a))}},44820:(a,b)=>{"use strict";function c(){return{previewModeId:process.env.__NEXT_PREVIEW_MODE_ID||"",previewModeSigningKey:process.env.__NEXT_PREVIEW_MODE_SIGNING_KEY||"",previewModeEncryptionKey:process.env.__NEXT_PREVIEW_MODE_ENCRYPTION_KEY||""}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getEdgePreviewProps",{enumerable:!0,get:function(){return c}})},45044:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={handleFetch:function(){return i},interceptFetch:function(){return j},reader:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(43413),g={url:a=>a.url,header:(a,b)=>a.headers.get(b)};async function h(a,b){let{url:c,method:d,headers:e,body:f,cache:g,credentials:h,integrity:i,mode:j,redirect:k,referrer:l,referrerPolicy:m}=b;return{testData:a,api:"fetch",request:{url:c,method:d,headers:[...Array.from(e),["next-test-stack",function(){let a=(Error().stack??"").split("\n");for(let b=1;b0){a=a.slice(b);break}return(a=(a=(a=a.filter(a=>!a.includes("/next/dist/"))).slice(0,5)).map(a=>a.replace("webpack-internal:///(rsc)/","").trim())).join(" ")}()]],body:f?Buffer.from(await b.arrayBuffer()).toString("base64"):null,cache:g,credentials:h,integrity:i,mode:j,redirect:k,referrer:l,referrerPolicy:m}}}async function i(a,b){let c=(0,f.getTestReqInfo)(b,g);if(!c)return a(b);let{testData:d,proxyPort:e}=c,i=await h(d,b),j=await a(`http://localhost:${e}`,{method:"POST",body:JSON.stringify(i),next:{internal:!0}});if(!j.ok)throw Object.defineProperty(Error(`Proxy request failed: ${j.status}`),"__NEXT_ERROR_CODE",{value:"E146",enumerable:!1,configurable:!0});let k=await j.json(),{api:l}=k;switch(l){case"continue":return a(b);case"abort":case"unhandled":throw Object.defineProperty(Error(`Proxy request aborted [${b.method} ${b.url}]`),"__NEXT_ERROR_CODE",{value:"E145",enumerable:!1,configurable:!0});case"fetch":return function(a){let{status:b,headers:c,body:d}=a.response;return new Response(d?Buffer.from(d,"base64"):null,{status:b,headers:new Headers(c)})}(k);default:return l}}function j(a){return global.fetch=function(b,c){var d;return(null==c||null==(d=c.next)?void 0:d.internal)?a(b,c):i(a,new Request(b,c))},()=>{global.fetch=a}}},46676:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={safeCompile:function(){return i},safePathToRegexp:function(){return h},safeRegexpToFunction:function(){return j},safeRouteMatcher:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(58865),g=c(38899);function h(a,b,c){if("string"!=typeof a)return(0,f.pathToRegexp)(a,b,c);let d=(0,g.hasAdjacentParameterIssues)(a),e=d?(0,g.normalizeAdjacentParameters)(a):a;try{return(0,f.pathToRegexp)(e,b,c)}catch(e){if(!d)try{let d=(0,g.normalizeAdjacentParameters)(a);return(0,f.pathToRegexp)(d,b,c)}catch(a){}throw e}}function i(a,b){let c=(0,g.hasAdjacentParameterIssues)(a),d=c?(0,g.normalizeAdjacentParameters)(a):a;try{let a=(0,f.compile)(d,b);if(c)return b=>(0,g.stripNormalizedSeparators)(a(b));return a}catch(d){if(!c)try{let c=(0,g.normalizeAdjacentParameters)(a),d=(0,f.compile)(c,b);return a=>(0,g.stripNormalizedSeparators)(d(a))}catch(a){}throw d}}function j(a,b){let c=(0,f.regexpToFunction)(a,b||[]);return a=>{let b=c(a);return!!b&&{...b,params:(0,g.stripParameterSeparators)(b.params)}}}function k(a){return b=>{let c=a(b);return!!c&&(0,g.stripParameterSeparators)(c)}}},47054:(a,b,c)=>{"use strict";let d=c(11679);a.exports={toPromise:function(a){return(...b)=>new Promise((c,d)=>{b.push((a,b)=>{a?d(a):c(b)}),a(...b)})},toSync:function(a){return(...b)=>{let c,d;if(b.push((a,b)=>{c=a,d=b}),a(...b),c)throw c;return d}},toSyncOptions:function(a){var b;let c;if((a={...a}).fs=(c={...b=a.fs||d},["mkdir","realpath","stat","rmdir","utimes"].forEach(a=>{c[a]=(...c)=>{let d,e=c.pop();try{d=b[`${a}Sync`](...c)}catch(a){return e(a)}e(null,d)}}),c),"number"==typeof a.retries&&a.retries>0||a.retries&&"number"==typeof a.retries.retries&&a.retries.retries>0)throw Object.assign(Error("Cannot use retries with the sync api"),{code:"ESYNC"});return a}}},48747:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseLoaderTree",{enumerable:!0,get:function(){return e}});let d=c(38384);function e(a){let[b,c,e,f]=a,{layout:g,template:h}=e,{page:i}=e;i=b===d.DEFAULT_SEGMENT_KEY?e.defaultPage:i;let j=g?.[1]||h?.[1]||i?.[1];return{page:i,segment:b,modules:e,conventionPath:j,parallelRoutes:c,staticSiblings:f}}},49191:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"LRUCache",{enumerable:!0,get:function(){return e}});class c{constructor(a,b,c){this.prev=null,this.next=null,this.key=a,this.data=b,this.size=c}}class d{constructor(){this.prev=null,this.next=null}}class e{constructor(a,b,c){this.cache=new Map,this.totalSize=0,this.maxSize=a,this.calculateSize=b,this.onEvict=c,this.head=new d,this.tail=new d,this.head.next=this.tail,this.tail.prev=this.head}addToHead(a){a.prev=this.head,a.next=this.head.next,this.head.next.prev=a,this.head.next=a}removeNode(a){a.prev.next=a.next,a.next.prev=a.prev}moveToHead(a){this.removeNode(a),this.addToHead(a)}removeTail(){let a=this.tail.prev;return this.removeNode(a),a}set(a,b){let d=(null==this.calculateSize?void 0:this.calculateSize.call(this,b))??1;if(d<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${d}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E1045",enumerable:!1,configurable:!0});if(d>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let e=this.cache.get(a);if(e)e.data=b,this.totalSize=this.totalSize-e.size+d,e.size=d,this.moveToHead(e);else{let e=new c(a,b,d);this.cache.set(a,e),this.addToHead(e),this.totalSize+=d}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let a=this.removeTail();this.cache.delete(a.key),this.totalSize-=a.size,null==this.onEvict||this.onEvict.call(this,a.key,a.data)}return!0}has(a){return this.cache.has(a)}get(a){let b=this.cache.get(a);if(b)return this.moveToHead(b),b.data}*[Symbol.iterator](){let a=this.head.next;for(;a&&a!==this.tail;){let b=a;yield[b.key,b.data],a=a.next}}remove(a){let b=this.cache.get(a);b&&(this.removeNode(b),this.cache.delete(a),this.totalSize-=b.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},49557:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={interceptTestApis:function(){return h},wrapRequestHandler:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(43413),g=c(45044);function h(){return(0,g.interceptFetch)(global.fetch)}function i(a){return(b,c)=>(0,f.withRequest)(b,g.reader,()=>a(b,c))}},51455:a=>{"use strict";a.exports=require("node:fs/promises")},51650:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={formatUrl:function(){return h},formatWithValidation:function(){return j},urlObjectKeys:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(88255)._(c(83767)),g=/https?|ftp|gopher|file/;function h(a){let{auth:b,hostname:c}=a,d=a.protocol||"",e=a.pathname||"",h=a.hash||"",i=a.query||"",j=!1;b=b?encodeURIComponent(b).replace(/%3A/i,":")+"@":"",a.host?j=b+a.host:c&&(j=b+(~c.indexOf(":")?`[${c}]`:c),a.port&&(j+=":"+a.port)),i&&"object"==typeof i&&(i=String(f.urlQueryToSearchParams(i)));let k=a.search||i&&`?${i}`||"";return d&&!d.endsWith(":")&&(d+=":"),a.slashes||(!d||g.test(d))&&!1!==j?(j="//"+(j||""),e&&"/"!==e[0]&&(e="/"+e)):j||(j=""),h&&"#"!==h[0]&&(h="#"+h),k&&"?"!==k[0]&&(k="?"+k),e=e.replace(/[?#]/g,encodeURIComponent),k=k.replace("#","%23"),`${d}${j}${e}${k}${h}`}let i=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function j(a){return h(a)}},51660:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"MISSING_ROOT_TAGS_ERROR",{enumerable:!0,get:function(){return c}});let c="NEXT_MISSING_ROOT_TAGS";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},52235:(a,b)=>{"use strict";function c(a){return null!==a&&"object"==typeof a&&"then"in a&&"function"==typeof a.then}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isThenable",{enumerable:!0,get:function(){return c}})},52288:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestAdapter:function(){return n},ResponseAborted:function(){return k},ResponseAbortedName:function(){return j},createAbortController:function(){return l},signalFromNodeResponse:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(75238),g=c(18977),h=c(98907),i=c(91551),j="ResponseAborted";class k extends Error{constructor(...a){super(...a),this.name=j}}function l(a){let b=new AbortController;return a.once("close",()=>{a.writableFinished||b.abort(new k)}),b}function m(a){let{errored:b,destroyed:c}=a;if(b||c)return AbortSignal.abort(b??new k);let{signal:d}=l(a);return d}class n{static fromBaseNextRequest(a,b){if((0,i.isNodeNextRequest)(a))return n.fromNodeNextRequest(a,b);throw Object.defineProperty(Error("Invariant: Unsupported NextRequest type"),"__NEXT_ERROR_CODE",{value:"E345",enumerable:!1,configurable:!0})}static fromNodeNextRequest(a,b){let c,d=null;if("GET"!==a.method&&"HEAD"!==a.method&&a.body&&(d=a.body),a.url.startsWith("http"))c=new URL(a.url);else{let b=(0,f.getRequestMeta)(a,"initURL");c=b&&b.startsWith("http")?new URL(a.url,b):new URL(a.url,"http://n")}return new h.NextRequest(c,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:b,...b.aborted?{}:{body:d}})}static fromWebNextRequest(a){let b=null;return"GET"!==a.method&&"HEAD"!==a.method&&(b=a.body),new h.NextRequest(a.url,{method:a.method,headers:(0,g.fromNodeOutgoingHttpHeaders)(a.headers),duplex:"half",signal:a.request.signal,...a.request.signal.aborted?{}:{body:b}})}}},52351:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getClientComponentLoaderMetrics:function(){return i},wrapClientComponentLoader:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=0,g=0;function h(a){return"performance"in globalThis?{require:(...b)=>{let c=performance.now();0===e&&(e=c);try{return g+=1,a.__next_app__.require(...b)}finally{f+=performance.now()-c}},loadChunk:(...b)=>{let c=performance.now(),d=a.__next_app__.loadChunk(...b);return d.finally(()=>{f+=performance.now()-c}),d}}:a.__next_app__}function i(a={}){let b=0===e?void 0:{clientComponentLoadStart:e,clientComponentLoadTimes:f,clientComponentLoadCount:g};return a.reset&&(e=0,f=0,g=0),b}},52895:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"isNextRouterError",{enumerable:!0,get:function(){return f}});let d=c(76655),e=c(70375);function f(a){return(0,e.isRedirectError)(a)||(0,d.isHTTPAccessFallbackError)(a)}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},53373:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getCacheHandler:function(){return m},getCacheHandlerEntries:function(){return o},getCacheHandlers:function(){return n},initializeCacheHandlers:function(){return l},setCacheHandler:function(){return p}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(68619),g=process.env.NEXT_PRIVATE_DEBUG_CACHE?(a,...b)=>{console.log(`use-cache: ${a}`,...b)}:void 0,h=Symbol.for("@next/cache-handlers"),i=Symbol.for("@next/cache-handlers-map"),j=Symbol.for("@next/cache-handlers-set"),k=globalThis;function l(a){if(k[i])return null==g||g("cache handlers already initialized"),!1;if(null==g||g("initializing cache handlers"),k[i]=new Map,k[h]){let b;k[h].DefaultCache?(null==g||g('setting "default" cache handler from symbol'),b=k[h].DefaultCache):(null==g||g('setting "default" cache handler from default'),b=(0,f.createDefaultCacheHandler)(a)),k[i].set("default",b),k[h].RemoteCache?(null==g||g('setting "remote" cache handler from symbol'),k[i].set("remote",k[h].RemoteCache)):(null==g||g('setting "remote" cache handler from default'),k[i].set("remote",b))}else{let b=(0,f.createDefaultCacheHandler)(a);null==g||g('setting "default" cache handler from default'),k[i].set("default",b),null==g||g('setting "remote" cache handler from default'),k[i].set("remote",b)}return k[j]=new Set(k[i].values()),!0}function m(a){if(!k[i])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});return k[i].get(a)}function n(){if(k[j])return k[j].values()}function o(){if(k[i])return k[i].entries()}function p(a,b){if(!k[i]||!k[j])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});null==g||g('setting cache handler for "%s"',a),k[i].set(a,b),k[j].add(b)}},53465:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={createLazyResult:function(){return e},isResolvedLazyResult:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){let b,c={then:(d,e)=>(b||(b=Promise.resolve(a())),b.then(a=>{c.value=a}).catch(()=>{}),b.then(d,e))};return c}function f(a){return a.hasOwnProperty("value")}},53549:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"parseRelativeUrl",{enumerable:!0,get:function(){return e}}),c(95676);let d=c(83767);function e(a,b,c=!0){let f=new URL("http://n"),g=b?new URL(b,f):a.startsWith(".")?new URL("http://n"):f,{pathname:h,searchParams:i,search:j,hash:k,href:l,origin:m}=a.startsWith("/")?new URL(`${g.protocol}//${g.host}${a}`):new URL(a,g);if(m!==f.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${a}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:h,port:null,protocol:null,query:c?(0,d.searchParamsToUrlQuery)(i):void 0,search:j,hash:k,href:l.slice(m.length),slashes:null}}},53896:a=>{(()=>{"use strict";let b,c,d,e,f;var g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w={491:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ContextAPI=void 0;let d=c(223),e=c(172),f=c(930),g="context",h=new d.NoopContextManager;class i{static getInstance(){return this._instance||(this._instance=new i),this._instance}setGlobalContextManager(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}active(){return this._getContextManager().active()}with(a,b,c,...d){return this._getContextManager().with(a,b,c,...d)}bind(a,b){return this._getContextManager().bind(a,b)}_getContextManager(){return(0,e.getGlobal)(g)||h}disable(){this._getContextManager().disable(),(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.ContextAPI=i},930:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagAPI=void 0;let d=c(56),e=c(912),f=c(957),g=c(172);class h{constructor(){function a(a){return function(...b){let c=(0,g.getGlobal)("diag");if(c)return c[a](...b)}}const b=this;b.setLogger=(a,c={logLevel:f.DiagLogLevel.INFO})=>{var d,h,i;if(a===b){let a=Error("Cannot use diag as the logger for itself. Please use a DiagLogger implementation like ConsoleDiagLogger or a custom implementation");return b.error(null!=(d=a.stack)?d:a.message),!1}"number"==typeof c&&(c={logLevel:c});let j=(0,g.getGlobal)("diag"),k=(0,e.createLogLevelDiagLogger)(null!=(h=c.logLevel)?h:f.DiagLogLevel.INFO,a);if(j&&!c.suppressOverrideMessage){let a=null!=(i=Error().stack)?i:"";j.warn(`Current logger will be overwritten from ${a}`),k.warn(`Current logger will overwrite one already registered from ${a}`)}return(0,g.registerGlobal)("diag",k,b,!0)},b.disable=()=>{(0,g.unregisterGlobal)("diag",b)},b.createComponentLogger=a=>new d.DiagComponentLogger(a),b.verbose=a("verbose"),b.debug=a("debug"),b.info=a("info"),b.warn=a("warn"),b.error=a("error")}static instance(){return this._instance||(this._instance=new h),this._instance}}b.DiagAPI=h},653:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.MetricsAPI=void 0;let d=c(660),e=c(172),f=c(930),g="metrics";class h{static getInstance(){return this._instance||(this._instance=new h),this._instance}setGlobalMeterProvider(a){return(0,e.registerGlobal)(g,a,f.DiagAPI.instance())}getMeterProvider(){return(0,e.getGlobal)(g)||d.NOOP_METER_PROVIDER}getMeter(a,b,c){return this.getMeterProvider().getMeter(a,b,c)}disable(){(0,e.unregisterGlobal)(g,f.DiagAPI.instance())}}b.MetricsAPI=h},181:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.PropagationAPI=void 0;let d=c(172),e=c(874),f=c(194),g=c(277),h=c(369),i=c(930),j="propagation",k=new e.NoopTextMapPropagator;class l{constructor(){this.createBaggage=h.createBaggage,this.getBaggage=g.getBaggage,this.getActiveBaggage=g.getActiveBaggage,this.setBaggage=g.setBaggage,this.deleteBaggage=g.deleteBaggage}static getInstance(){return this._instance||(this._instance=new l),this._instance}setGlobalPropagator(a){return(0,d.registerGlobal)(j,a,i.DiagAPI.instance())}inject(a,b,c=f.defaultTextMapSetter){return this._getGlobalPropagator().inject(a,b,c)}extract(a,b,c=f.defaultTextMapGetter){return this._getGlobalPropagator().extract(a,b,c)}fields(){return this._getGlobalPropagator().fields()}disable(){(0,d.unregisterGlobal)(j,i.DiagAPI.instance())}_getGlobalPropagator(){return(0,d.getGlobal)(j)||k}}b.PropagationAPI=l},997:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceAPI=void 0;let d=c(172),e=c(846),f=c(139),g=c(607),h=c(930),i="trace";class j{constructor(){this._proxyTracerProvider=new e.ProxyTracerProvider,this.wrapSpanContext=f.wrapSpanContext,this.isSpanContextValid=f.isSpanContextValid,this.deleteSpan=g.deleteSpan,this.getSpan=g.getSpan,this.getActiveSpan=g.getActiveSpan,this.getSpanContext=g.getSpanContext,this.setSpan=g.setSpan,this.setSpanContext=g.setSpanContext}static getInstance(){return this._instance||(this._instance=new j),this._instance}setGlobalTracerProvider(a){let b=(0,d.registerGlobal)(i,this._proxyTracerProvider,h.DiagAPI.instance());return b&&this._proxyTracerProvider.setDelegate(a),b}getTracerProvider(){return(0,d.getGlobal)(i)||this._proxyTracerProvider}getTracer(a,b){return this.getTracerProvider().getTracer(a,b)}disable(){(0,d.unregisterGlobal)(i,h.DiagAPI.instance()),this._proxyTracerProvider=new e.ProxyTracerProvider}}b.TraceAPI=j},277:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.deleteBaggage=b.setBaggage=b.getActiveBaggage=b.getBaggage=void 0;let d=c(491),e=(0,c(780).createContextKey)("OpenTelemetry Baggage Key");function f(a){return a.getValue(e)||void 0}b.getBaggage=f,b.getActiveBaggage=function(){return f(d.ContextAPI.getInstance().active())},b.setBaggage=function(a,b){return a.setValue(e,b)},b.deleteBaggage=function(a){return a.deleteValue(e)}},993:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.BaggageImpl=void 0;class c{constructor(a){this._entries=a?new Map(a):new Map}getEntry(a){let b=this._entries.get(a);if(b)return Object.assign({},b)}getAllEntries(){return Array.from(this._entries.entries()).map(([a,b])=>[a,b])}setEntry(a,b){let d=new c(this._entries);return d._entries.set(a,b),d}removeEntry(a){let b=new c(this._entries);return b._entries.delete(a),b}removeEntries(...a){let b=new c(this._entries);for(let c of a)b._entries.delete(c);return b}clear(){return new c}}b.BaggageImpl=c},830:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataSymbol=void 0,b.baggageEntryMetadataSymbol=Symbol("BaggageEntryMetadata")},369:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.baggageEntryMetadataFromString=b.createBaggage=void 0;let d=c(930),e=c(993),f=c(830),g=d.DiagAPI.instance();b.createBaggage=function(a={}){return new e.BaggageImpl(new Map(Object.entries(a)))},b.baggageEntryMetadataFromString=function(a){return"string"!=typeof a&&(g.error(`Cannot create baggage metadata from unknown type: ${typeof a}`),a=""),{__TYPE__:f.baggageEntryMetadataSymbol,toString:()=>a}}},67:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.context=void 0,b.context=c(491).ContextAPI.getInstance()},223:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopContextManager=void 0;let d=c(780);class e{active(){return d.ROOT_CONTEXT}with(a,b,c,...d){return b.call(c,...d)}bind(a,b){return b}enable(){return this}disable(){return this}}b.NoopContextManager=e},780:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ROOT_CONTEXT=b.createContextKey=void 0,b.createContextKey=function(a){return Symbol.for(a)};class c{constructor(a){const b=this;b._currentContext=a?new Map(a):new Map,b.getValue=a=>b._currentContext.get(a),b.setValue=(a,d)=>{let e=new c(b._currentContext);return e._currentContext.set(a,d),e},b.deleteValue=a=>{let d=new c(b._currentContext);return d._currentContext.delete(a),d}}}b.ROOT_CONTEXT=new c},506:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.diag=void 0,b.diag=c(930).DiagAPI.instance()},56:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagComponentLogger=void 0;let d=c(172);class e{constructor(a){this._namespace=a.namespace||"DiagComponentLogger"}debug(...a){return f("debug",this._namespace,a)}error(...a){return f("error",this._namespace,a)}info(...a){return f("info",this._namespace,a)}warn(...a){return f("warn",this._namespace,a)}verbose(...a){return f("verbose",this._namespace,a)}}function f(a,b,c){let e=(0,d.getGlobal)("diag");if(e)return c.unshift(b),e[a](...c)}b.DiagComponentLogger=e},972:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.DiagConsoleLogger=void 0;let c=[{n:"error",c:"error"},{n:"warn",c:"warn"},{n:"info",c:"info"},{n:"debug",c:"debug"},{n:"verbose",c:"trace"}];class d{constructor(){for(let a=0;a{Object.defineProperty(b,"__esModule",{value:!0}),b.createLogLevelDiagLogger=void 0;let d=c(957);b.createLogLevelDiagLogger=function(a,b){function c(c,d){let e=b[c];return"function"==typeof e&&a>=d?e.bind(b):function(){}}return ad.DiagLogLevel.ALL&&(a=d.DiagLogLevel.ALL),b=b||{},{error:c("error",d.DiagLogLevel.ERROR),warn:c("warn",d.DiagLogLevel.WARN),info:c("info",d.DiagLogLevel.INFO),debug:c("debug",d.DiagLogLevel.DEBUG),verbose:c("verbose",d.DiagLogLevel.VERBOSE)}}},957:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.DiagLogLevel=void 0,(c=b.DiagLogLevel||(b.DiagLogLevel={}))[c.NONE=0]="NONE",c[c.ERROR=30]="ERROR",c[c.WARN=50]="WARN",c[c.INFO=60]="INFO",c[c.DEBUG=70]="DEBUG",c[c.VERBOSE=80]="VERBOSE",c[c.ALL=9999]="ALL"},172:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.unregisterGlobal=b.getGlobal=b.registerGlobal=void 0;let d=c(200),e=c(521),f=c(130),g=e.VERSION.split(".")[0],h=Symbol.for(`opentelemetry.js.api.${g}`),i=d._globalThis;b.registerGlobal=function(a,b,c,d=!1){var f;let g=i[h]=null!=(f=i[h])?f:{version:e.VERSION};if(!d&&g[a]){let b=Error(`@opentelemetry/api: Attempted duplicate registration of API: ${a}`);return c.error(b.stack||b.message),!1}if(g.version!==e.VERSION){let b=Error(`@opentelemetry/api: Registration of version v${g.version} for ${a} does not match previously registered API v${e.VERSION}`);return c.error(b.stack||b.message),!1}return g[a]=b,c.debug(`@opentelemetry/api: Registered a global for ${a} v${e.VERSION}.`),!0},b.getGlobal=function(a){var b,c;let d=null==(b=i[h])?void 0:b.version;if(d&&(0,f.isCompatible)(d))return null==(c=i[h])?void 0:c[a]},b.unregisterGlobal=function(a,b){b.debug(`@opentelemetry/api: Unregistering a global for ${a} v${e.VERSION}.`);let c=i[h];c&&delete c[a]}},130:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.isCompatible=b._makeCompatibilityCheck=void 0;let d=c(521),e=/^(\d+)\.(\d+)\.(\d+)(-(.+))?$/;function f(a){let b=new Set([a]),c=new Set,d=a.match(e);if(!d)return()=>!1;let f={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=f.prerelease)return function(b){return b===a};function g(a){return c.add(a),!1}return function(a){if(b.has(a))return!0;if(c.has(a))return!1;let d=a.match(e);if(!d)return g(a);let h={major:+d[1],minor:+d[2],patch:+d[3],prerelease:d[4]};if(null!=h.prerelease||f.major!==h.major)return g(a);if(0===f.major)return f.minor===h.minor&&f.patch<=h.patch?(b.add(a),!0):g(a);return f.minor<=h.minor?(b.add(a),!0):g(a)}}b._makeCompatibilityCheck=f,b.isCompatible=f(d.VERSION)},886:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.metrics=void 0,b.metrics=c(653).MetricsAPI.getInstance()},901:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.ValueType=void 0,(c=b.ValueType||(b.ValueType={}))[c.INT=0]="INT",c[c.DOUBLE=1]="DOUBLE"},102:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createNoopMeter=b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=b.NOOP_OBSERVABLE_GAUGE_METRIC=b.NOOP_OBSERVABLE_COUNTER_METRIC=b.NOOP_UP_DOWN_COUNTER_METRIC=b.NOOP_HISTOGRAM_METRIC=b.NOOP_COUNTER_METRIC=b.NOOP_METER=b.NoopObservableUpDownCounterMetric=b.NoopObservableGaugeMetric=b.NoopObservableCounterMetric=b.NoopObservableMetric=b.NoopHistogramMetric=b.NoopUpDownCounterMetric=b.NoopCounterMetric=b.NoopMetric=b.NoopMeter=void 0;class c{createHistogram(a,c){return b.NOOP_HISTOGRAM_METRIC}createCounter(a,c){return b.NOOP_COUNTER_METRIC}createUpDownCounter(a,c){return b.NOOP_UP_DOWN_COUNTER_METRIC}createObservableGauge(a,c){return b.NOOP_OBSERVABLE_GAUGE_METRIC}createObservableCounter(a,c){return b.NOOP_OBSERVABLE_COUNTER_METRIC}createObservableUpDownCounter(a,c){return b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC}addBatchObservableCallback(a,b){}removeBatchObservableCallback(a){}}b.NoopMeter=c;class d{}b.NoopMetric=d;class e extends d{add(a,b){}}b.NoopCounterMetric=e;class f extends d{add(a,b){}}b.NoopUpDownCounterMetric=f;class g extends d{record(a,b){}}b.NoopHistogramMetric=g;class h{addCallback(a){}removeCallback(a){}}b.NoopObservableMetric=h;class i extends h{}b.NoopObservableCounterMetric=i;class j extends h{}b.NoopObservableGaugeMetric=j;class k extends h{}b.NoopObservableUpDownCounterMetric=k,b.NOOP_METER=new c,b.NOOP_COUNTER_METRIC=new e,b.NOOP_HISTOGRAM_METRIC=new g,b.NOOP_UP_DOWN_COUNTER_METRIC=new f,b.NOOP_OBSERVABLE_COUNTER_METRIC=new i,b.NOOP_OBSERVABLE_GAUGE_METRIC=new j,b.NOOP_OBSERVABLE_UP_DOWN_COUNTER_METRIC=new k,b.createNoopMeter=function(){return b.NOOP_METER}},660:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NOOP_METER_PROVIDER=b.NoopMeterProvider=void 0;let d=c(102);class e{getMeter(a,b,c){return d.NOOP_METER}}b.NoopMeterProvider=e,b.NOOP_METER_PROVIDER=new e},200:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(46),b)},651:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b._globalThis=void 0,b._globalThis="object"==typeof globalThis?globalThis:global},46:function(a,b,c){var d=this&&this.__createBinding||(Object.create?function(a,b,c,d){void 0===d&&(d=c),Object.defineProperty(a,d,{enumerable:!0,get:function(){return b[c]}})}:function(a,b,c,d){void 0===d&&(d=c),a[d]=b[c]}),e=this&&this.__exportStar||function(a,b){for(var c in a)"default"===c||Object.prototype.hasOwnProperty.call(b,c)||d(b,a,c)};Object.defineProperty(b,"__esModule",{value:!0}),e(c(651),b)},939:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.propagation=void 0,b.propagation=c(181).PropagationAPI.getInstance()},874:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTextMapPropagator=void 0;class c{inject(a,b){}extract(a,b){return a}fields(){return[]}}b.NoopTextMapPropagator=c},194:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.defaultTextMapSetter=b.defaultTextMapGetter=void 0,b.defaultTextMapGetter={get(a,b){if(null!=a)return a[b]},keys:a=>null==a?[]:Object.keys(a)},b.defaultTextMapSetter={set(a,b,c){null!=a&&(a[b]=c)}}},845:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.trace=void 0,b.trace=c(997).TraceAPI.getInstance()},403:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NonRecordingSpan=void 0;let d=c(476);class e{constructor(a=d.INVALID_SPAN_CONTEXT){this._spanContext=a}spanContext(){return this._spanContext}setAttribute(a,b){return this}setAttributes(a){return this}addEvent(a,b){return this}setStatus(a){return this}updateName(a){return this}end(a){}isRecording(){return!1}recordException(a,b){}}b.NonRecordingSpan=e},614:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracer=void 0;let d=c(491),e=c(607),f=c(403),g=c(139),h=d.ContextAPI.getInstance();class i{startSpan(a,b,c=h.active()){var d;if(null==b?void 0:b.root)return new f.NonRecordingSpan;let i=c&&(0,e.getSpanContext)(c);return"object"==typeof(d=i)&&"string"==typeof d.spanId&&"string"==typeof d.traceId&&"number"==typeof d.traceFlags&&(0,g.isSpanContextValid)(i)?new f.NonRecordingSpan(i):new f.NonRecordingSpan}startActiveSpan(a,b,c,d){let f,g,i;if(arguments.length<2)return;2==arguments.length?i=b:3==arguments.length?(f=b,i=c):(f=b,g=c,i=d);let j=null!=g?g:h.active(),k=this.startSpan(a,f,j),l=(0,e.setSpan)(j,k);return h.with(l,i,void 0,k)}}b.NoopTracer=i},124:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.NoopTracerProvider=void 0;let d=c(614);class e{getTracer(a,b,c){return new d.NoopTracer}}b.NoopTracerProvider=e},125:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracer=void 0;let d=new(c(614)).NoopTracer;class e{constructor(a,b,c,d){this._provider=a,this.name=b,this.version=c,this.options=d}startSpan(a,b,c){return this._getTracer().startSpan(a,b,c)}startActiveSpan(a,b,c,d){let e=this._getTracer();return Reflect.apply(e.startActiveSpan,e,arguments)}_getTracer(){if(this._delegate)return this._delegate;let a=this._provider.getDelegateTracer(this.name,this.version,this.options);return a?(this._delegate=a,this._delegate):d}}b.ProxyTracer=e},846:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.ProxyTracerProvider=void 0;let d=c(125),e=new(c(124)).NoopTracerProvider;class f{getTracer(a,b,c){var e;return null!=(e=this.getDelegateTracer(a,b,c))?e:new d.ProxyTracer(this,a,b,c)}getDelegate(){var a;return null!=(a=this._delegate)?a:e}setDelegate(a){this._delegate=a}getDelegateTracer(a,b,c){var d;return null==(d=this._delegate)?void 0:d.getTracer(a,b,c)}}b.ProxyTracerProvider=f},996:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SamplingDecision=void 0,(c=b.SamplingDecision||(b.SamplingDecision={}))[c.NOT_RECORD=0]="NOT_RECORD",c[c.RECORD=1]="RECORD",c[c.RECORD_AND_SAMPLED=2]="RECORD_AND_SAMPLED"},607:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.getSpanContext=b.setSpanContext=b.deleteSpan=b.setSpan=b.getActiveSpan=b.getSpan=void 0;let d=c(780),e=c(403),f=c(491),g=(0,d.createContextKey)("OpenTelemetry Context Key SPAN");function h(a){return a.getValue(g)||void 0}function i(a,b){return a.setValue(g,b)}b.getSpan=h,b.getActiveSpan=function(){return h(f.ContextAPI.getInstance().active())},b.setSpan=i,b.deleteSpan=function(a){return a.deleteValue(g)},b.setSpanContext=function(a,b){return i(a,new e.NonRecordingSpan(b))},b.getSpanContext=function(a){var b;return null==(b=h(a))?void 0:b.spanContext()}},325:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.TraceStateImpl=void 0;let d=c(564);class e{constructor(a){this._internalState=new Map,a&&this._parse(a)}set(a,b){let c=this._clone();return c._internalState.has(a)&&c._internalState.delete(a),c._internalState.set(a,b),c}unset(a){let b=this._clone();return b._internalState.delete(a),b}get(a){return this._internalState.get(a)}serialize(){return this._keys().reduce((a,b)=>(a.push(b+"="+this.get(b)),a),[]).join(",")}_parse(a){!(a.length>512)&&(this._internalState=a.split(",").reverse().reduce((a,b)=>{let c=b.trim(),e=c.indexOf("=");if(-1!==e){let f=c.slice(0,e),g=c.slice(e+1,b.length);(0,d.validateKey)(f)&&(0,d.validateValue)(g)&&a.set(f,g)}return a},new Map),this._internalState.size>32&&(this._internalState=new Map(Array.from(this._internalState.entries()).reverse().slice(0,32))))}_keys(){return Array.from(this._internalState.keys()).reverse()}_clone(){let a=new e;return a._internalState=new Map(this._internalState),a}}b.TraceStateImpl=e},564:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.validateValue=b.validateKey=void 0;let c="[_0-9a-z-*/]",d=`[a-z]${c}{0,255}`,e=`[a-z0-9]${c}{0,240}@[a-z]${c}{0,13}`,f=RegExp(`^(?:${d}|${e})$`),g=/^[ -~]{0,255}[!-~]$/,h=/,|=/;b.validateKey=function(a){return f.test(a)},b.validateValue=function(a){return g.test(a)&&!h.test(a)}},98:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.createTraceState=void 0;let d=c(325);b.createTraceState=function(a){return new d.TraceStateImpl(a)}},476:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.INVALID_SPAN_CONTEXT=b.INVALID_TRACEID=b.INVALID_SPANID=void 0;let d=c(475);b.INVALID_SPANID="0000000000000000",b.INVALID_TRACEID="00000000000000000000000000000000",b.INVALID_SPAN_CONTEXT={traceId:b.INVALID_TRACEID,spanId:b.INVALID_SPANID,traceFlags:d.TraceFlags.NONE}},357:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanKind=void 0,(c=b.SpanKind||(b.SpanKind={}))[c.INTERNAL=0]="INTERNAL",c[c.SERVER=1]="SERVER",c[c.CLIENT=2]="CLIENT",c[c.PRODUCER=3]="PRODUCER",c[c.CONSUMER=4]="CONSUMER"},139:(a,b,c)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.wrapSpanContext=b.isSpanContextValid=b.isValidSpanId=b.isValidTraceId=void 0;let d=c(476),e=c(403),f=/^([0-9a-f]{32})$/i,g=/^[0-9a-f]{16}$/i;function h(a){return f.test(a)&&a!==d.INVALID_TRACEID}function i(a){return g.test(a)&&a!==d.INVALID_SPANID}b.isValidTraceId=h,b.isValidSpanId=i,b.isSpanContextValid=function(a){return h(a.traceId)&&i(a.spanId)},b.wrapSpanContext=function(a){return new e.NonRecordingSpan(a)}},847:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.SpanStatusCode=void 0,(c=b.SpanStatusCode||(b.SpanStatusCode={}))[c.UNSET=0]="UNSET",c[c.OK=1]="OK",c[c.ERROR=2]="ERROR"},475:(a,b)=>{var c;Object.defineProperty(b,"__esModule",{value:!0}),b.TraceFlags=void 0,(c=b.TraceFlags||(b.TraceFlags={}))[c.NONE=0]="NONE",c[c.SAMPLED=1]="SAMPLED"},521:(a,b)=>{Object.defineProperty(b,"__esModule",{value:!0}),b.VERSION=void 0,b.VERSION="1.6.0"}},x={};function y(a){var b=x[a];if(void 0!==b)return b.exports;var c=x[a]={exports:{}},d=!0;try{w[a].call(c.exports,c,c.exports,y),d=!1}finally{d&&delete x[a]}return c.exports}y.ab=__dirname+"/";var z={};Object.defineProperty(z,"__esModule",{value:!0}),z.trace=z.propagation=z.metrics=z.diag=z.context=z.INVALID_SPAN_CONTEXT=z.INVALID_TRACEID=z.INVALID_SPANID=z.isValidSpanId=z.isValidTraceId=z.isSpanContextValid=z.createTraceState=z.TraceFlags=z.SpanStatusCode=z.SpanKind=z.SamplingDecision=z.ProxyTracerProvider=z.ProxyTracer=z.defaultTextMapSetter=z.defaultTextMapGetter=z.ValueType=z.createNoopMeter=z.DiagLogLevel=z.DiagConsoleLogger=z.ROOT_CONTEXT=z.createContextKey=z.baggageEntryMetadataFromString=void 0,g=y(369),Object.defineProperty(z,"baggageEntryMetadataFromString",{enumerable:!0,get:function(){return g.baggageEntryMetadataFromString}}),h=y(780),Object.defineProperty(z,"createContextKey",{enumerable:!0,get:function(){return h.createContextKey}}),Object.defineProperty(z,"ROOT_CONTEXT",{enumerable:!0,get:function(){return h.ROOT_CONTEXT}}),i=y(972),Object.defineProperty(z,"DiagConsoleLogger",{enumerable:!0,get:function(){return i.DiagConsoleLogger}}),j=y(957),Object.defineProperty(z,"DiagLogLevel",{enumerable:!0,get:function(){return j.DiagLogLevel}}),k=y(102),Object.defineProperty(z,"createNoopMeter",{enumerable:!0,get:function(){return k.createNoopMeter}}),l=y(901),Object.defineProperty(z,"ValueType",{enumerable:!0,get:function(){return l.ValueType}}),m=y(194),Object.defineProperty(z,"defaultTextMapGetter",{enumerable:!0,get:function(){return m.defaultTextMapGetter}}),Object.defineProperty(z,"defaultTextMapSetter",{enumerable:!0,get:function(){return m.defaultTextMapSetter}}),n=y(125),Object.defineProperty(z,"ProxyTracer",{enumerable:!0,get:function(){return n.ProxyTracer}}),o=y(846),Object.defineProperty(z,"ProxyTracerProvider",{enumerable:!0,get:function(){return o.ProxyTracerProvider}}),p=y(996),Object.defineProperty(z,"SamplingDecision",{enumerable:!0,get:function(){return p.SamplingDecision}}),q=y(357),Object.defineProperty(z,"SpanKind",{enumerable:!0,get:function(){return q.SpanKind}}),r=y(847),Object.defineProperty(z,"SpanStatusCode",{enumerable:!0,get:function(){return r.SpanStatusCode}}),s=y(475),Object.defineProperty(z,"TraceFlags",{enumerable:!0,get:function(){return s.TraceFlags}}),t=y(98),Object.defineProperty(z,"createTraceState",{enumerable:!0,get:function(){return t.createTraceState}}),u=y(139),Object.defineProperty(z,"isSpanContextValid",{enumerable:!0,get:function(){return u.isSpanContextValid}}),Object.defineProperty(z,"isValidTraceId",{enumerable:!0,get:function(){return u.isValidTraceId}}),Object.defineProperty(z,"isValidSpanId",{enumerable:!0,get:function(){return u.isValidSpanId}}),v=y(476),Object.defineProperty(z,"INVALID_SPANID",{enumerable:!0,get:function(){return v.INVALID_SPANID}}),Object.defineProperty(z,"INVALID_TRACEID",{enumerable:!0,get:function(){return v.INVALID_TRACEID}}),Object.defineProperty(z,"INVALID_SPAN_CONTEXT",{enumerable:!0,get:function(){return v.INVALID_SPAN_CONTEXT}}),b=y(67),Object.defineProperty(z,"context",{enumerable:!0,get:function(){return b.context}}),c=y(506),Object.defineProperty(z,"diag",{enumerable:!0,get:function(){return c.diag}}),d=y(886),Object.defineProperty(z,"metrics",{enumerable:!0,get:function(){return d.metrics}}),e=y(939),Object.defineProperty(z,"propagation",{enumerable:!0,get:function(){return e.propagation}}),f=y(845),Object.defineProperty(z,"trace",{enumerable:!0,get:function(){return f.trace}}),z.default={context:b.context,diag:c.diag,metrics:d.metrics,propagation:e.propagation,trace:f.trace},a.exports=z})()},54111:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"NextResponse",{enumerable:!0,get:function(){return l}});let d=c(65597),e=c(23451),f=c(18977),g=c(14364),h=c(65597),i=Symbol("internal response"),j=new Set([301,302,303,307,308]);function k(a,b){var c;if(null==a||null==(c=a.request)?void 0:c.headers){if(!(a.request.headers instanceof Headers))throw Object.defineProperty(Error("request.headers must be an instance of Headers"),"__NEXT_ERROR_CODE",{value:"E119",enumerable:!1,configurable:!0});let c=[];for(let[d,e]of a.request.headers)b.set("x-middleware-request-"+d,e),c.push(d);b.set("x-middleware-override-headers",c.join(","))}}class l extends Response{constructor(a,b={}){super(a,b);const c=this.headers,j=new Proxy(new h.ResponseCookies(c),{get(a,e,f){switch(e){case"delete":case"set":return(...f)=>{let g=Reflect.apply(a[e],a,f),i=new Headers(c);return g instanceof h.ResponseCookies&&c.set("x-middleware-set-cookie",g.getAll().map(a=>(0,d.stringifyCookie)(a)).join(",")),k(b,i),g};default:return g.ReflectAdapter.get(a,e,f)}}});this[i]={cookies:j,url:b.url?new e.NextURL(b.url,{headers:(0,f.toNodeOutgoingHttpHeaders)(c),nextConfig:b.nextConfig}):void 0}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,url:this.url,body:this.body,bodyUsed:this.bodyUsed,headers:Object.fromEntries(this.headers),ok:this.ok,redirected:this.redirected,status:this.status,statusText:this.statusText,type:this.type}}get cookies(){return this[i].cookies}static json(a,b){let c=Response.json(a,b);return new l(c.body,c)}static redirect(a,b){let c="number"==typeof b?b:(null==b?void 0:b.status)??307;if(!j.has(c))throw Object.defineProperty(RangeError('Failed to execute "redirect" on "response": Invalid status code'),"__NEXT_ERROR_CODE",{value:"E529",enumerable:!1,configurable:!0});let d="object"==typeof b?b:{},e=new Headers(null==d?void 0:d.headers);return e.set("Location",(0,f.validateURL)(a)),new l(null,{...d,headers:e,status:c})}static rewrite(a,b){let c=new Headers(null==b?void 0:b.headers);return c.set("x-middleware-rewrite",(0,f.validateURL)(a)),k(b,c),new l(null,{...b,headers:c})}static next(a){let b=new Headers(null==a?void 0:a.headers);return b.set("x-middleware-next","1"),k(a,b),new l(null,{...a,headers:b})}}},54362:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_HEADER:function(){return f},FLIGHT_HEADERS:function(){return p},NEXT_ACTION_NOT_FOUND_HEADER:function(){return w},NEXT_ACTION_REVALIDATED_HEADER:function(){return z},NEXT_DID_POSTPONE_HEADER:function(){return s},NEXT_HMR_REFRESH_HASH_COOKIE:function(){return k},NEXT_HMR_REFRESH_HEADER:function(){return j},NEXT_HTML_REQUEST_ID_HEADER:function(){return y},NEXT_INSTANT_PREFETCH_HEADER:function(){return n},NEXT_INSTANT_TEST_COOKIE:function(){return o},NEXT_IS_PRERENDER_HEADER:function(){return v},NEXT_REQUEST_ID_HEADER:function(){return x},NEXT_REWRITTEN_PATH_HEADER:function(){return t},NEXT_REWRITTEN_QUERY_HEADER:function(){return u},NEXT_ROUTER_PREFETCH_HEADER:function(){return h},NEXT_ROUTER_SEGMENT_PREFETCH_HEADER:function(){return i},NEXT_ROUTER_STALE_TIME_HEADER:function(){return r},NEXT_ROUTER_STATE_TREE_HEADER:function(){return g},NEXT_RSC_UNION_QUERY:function(){return q},NEXT_URL:function(){return l},RSC_CONTENT_TYPE_HEADER:function(){return m},RSC_HEADER:function(){return e}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="rsc",f="next-action",g="next-router-state-tree",h="next-router-prefetch",i="next-router-segment-prefetch",j="next-hmr-refresh",k="__next_hmr_refresh_hash__",l="next-url",m="text/x-component",n="next-instant-navigation-testing-prefetch",o="next-instant-navigation-testing",p=[e,g,h,j,i],q="_rsc",r="x-nextjs-stale-time",s="x-nextjs-postponed",t="x-nextjs-rewritten-path",u="x-nextjs-rewritten-query",v="x-nextjs-prerender",w="x-nextjs-action-not-found",x="x-nextjs-request-id",y="x-nextjs-html-request-id",z="x-action-revalidated";("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},55113:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={RenderStage:function(){return i},StagedRenderingController:function(){return j}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(93402),h=c(97);var i=((d={})[d.Before=1]="Before",d[d.EarlyStatic=2]="EarlyStatic",d[d.Static=3]="Static",d[d.EarlyRuntime=4]="EarlyRuntime",d[d.Runtime=5]="Runtime",d[d.Dynamic=6]="Dynamic",d[d.Abandoned=7]="Abandoned",d);class j{constructor(a,b,c){this.abortSignal=a,this.abandonController=b,this.shouldTrackSyncIO=c,this.currentStage=1,this.syncInterruptReason=null,this.staticStageEndTime=1/0,this.runtimeStageEndTime=1/0,this.staticStageListeners=[],this.earlyRuntimeStageListeners=[],this.runtimeStageListeners=[],this.dynamicStageListeners=[],this.staticStagePromise=(0,h.createPromiseWithResolvers)(),this.earlyRuntimeStagePromise=(0,h.createPromiseWithResolvers)(),this.runtimeStagePromise=(0,h.createPromiseWithResolvers)(),this.dynamicStagePromise=(0,h.createPromiseWithResolvers)(),a&&a.addEventListener("abort",()=>{let{reason:b}=a;this.staticStagePromise.promise.catch(k),this.staticStagePromise.reject(b),this.earlyRuntimeStagePromise.promise.catch(k),this.earlyRuntimeStagePromise.reject(b),this.runtimeStagePromise.promise.catch(k),this.runtimeStagePromise.reject(b),this.dynamicStagePromise.promise.catch(k),this.dynamicStagePromise.reject(b)},{once:!0}),b&&b.signal.addEventListener("abort",()=>{this.abandonRender()},{once:!0})}onStage(a,b){if(this.currentStage>=a)b();else if(3===a)this.staticStageListeners.push(b);else if(4===a)this.earlyRuntimeStageListeners.push(b);else if(5===a)this.runtimeStageListeners.push(b);else if(6===a)this.dynamicStageListeners.push(b);else throw Object.defineProperty(new g.InvariantError(`Invalid render stage: ${a}`),"__NEXT_ERROR_CODE",{value:"E881",enumerable:!1,configurable:!0})}shouldTrackSyncInterrupt(){if(!this.shouldTrackSyncIO)return!1;switch(this.currentStage){case 1:case 5:case 6:case 7:default:return!1;case 2:case 3:case 4:return!0}}syncInterruptCurrentStageWithReason(a){if(1!==this.currentStage&&7!==this.currentStage){if(this.abandonController)return void this.abandonController.abort();if(this.abortSignal){this.syncInterruptReason=a,this.currentStage=7;return}switch(this.currentStage){case 2:case 3:case 4:this.syncInterruptReason=a,this.advanceStage(6);return;case 5:return}}}getSyncInterruptReason(){return this.syncInterruptReason}getStaticStageEndTime(){return this.staticStageEndTime}getRuntimeStageEndTime(){return this.runtimeStageEndTime}abandonRender(){let{currentStage:a}=this;switch(a){case 2:this.resolveStaticStage();case 3:this.resolveEarlyRuntimeStage();case 4:this.resolveRuntimeStage();case 5:this.currentStage=7;return}}advanceStage(a){if(a<=this.currentStage)return;let b=this.currentStage;if(this.currentStage=a,b<3&&a>=3&&this.resolveStaticStage(),b<4&&a>=4&&this.resolveEarlyRuntimeStage(),b<5&&a>=5&&(this.staticStageEndTime=performance.now()+performance.timeOrigin,this.resolveRuntimeStage()),b<6&&a>=6){this.runtimeStageEndTime=performance.now()+performance.timeOrigin,this.resolveDynamicStage();return}}resolveStaticStage(){let a=this.staticStageListeners;for(let b=0;b{d.then(a.bind(null,f),b)}),void 0!==e&&(g.displayName=e),g);return this.abortSignal&&h.catch(k),h}}function k(){}},55511:a=>{"use strict";a.exports=require("crypto")},56136:(a,b,c)=>{"use strict";let d=c(33873),e=c(11679),f=c(43137),g=c(414),h=c(93458),i={};function j(a,b){return b.lockfilePath||`${a}.lock`}function k(a,b,c){if(!b.realpath)return c(null,d.resolve(a));b.fs.realpath(a,c)}function l(a,b){return a.mtime.getTime(){if(a&&"ENOENT"!==a.code)return c(a);c()})}function n(a,b,c){b.released=!0,b.updateTimeout&&clearTimeout(b.updateTimeout),i[a]===b&&delete i[a],b.options.onCompromised(c)}function o(a,b,c){k(a,b={fs:e,realpath:!0,...b},(a,d)=>{if(a)return c(a);let e=i[d];if(!e)return c(Object.assign(Error("Lock is not acquired/owned by you"),{code:"ENOTACQUIRED"}));e.updateTimeout&&clearTimeout(e.updateTimeout),e.released=!0,delete i[d],m(d,b,c)})}g(()=>{for(let a in i){let b=i[a].options;try{b.fs.rmdirSync(j(a,b))}catch(a){}}}),a.exports.lock=function(a,b,c){(b={stale:1e4,update:null,realpath:!0,retries:0,fs:e,onCompromised:a=>{throw a},...b}).retries=b.retries||0,b.retries="number"==typeof b.retries?{retries:b.retries}:b.retries,b.stale=Math.max(b.stale||0,2e3),b.update=null==b.update?b.stale/2:b.update||0,b.update=Math.max(Math.min(b.update,b.stale/2),1e3),k(a,b,(a,d)=>{if(a)return c(a);let e=f.operation(b.retries);e.attempt(()=>{!function a(b,c,d){let e=j(b,c);c.fs.mkdir(e,f=>f?"EEXIST"!==f.code?d(f):c.stale<=0?d(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:b})):void c.fs.stat(e,(e,f)=>e?"ENOENT"===e.code?a(b,{...c,stale:0},d):d(e):l(f,c)?void m(b,c,e=>{if(e)return d(e);a(b,{...c,stale:0},d)}):d(Object.assign(Error("Lock file is already being held"),{code:"ELOCKED",file:b}))):h.probe(e,c.fs,(a,b,f)=>{if(a)return c.fs.rmdir(e,()=>{}),d(a);d(null,b,f)}))}(d,b,(a,f,g)=>{if(e.retry(a))return;if(a)return c(e.mainError());let k=i[d]={lockfilePath:j(d,b),mtime:f,mtimePrecision:g,options:b,lastUpdate:Date.now()};!function a(b,c){let d=i[b];!d.updateTimeout&&(d.updateDelay=d.updateDelay||c.update,d.updateTimeout=setTimeout(()=>{d.updateTimeout=null,c.fs.stat(d.lockfilePath,(e,f)=>{let g=d.lastUpdate+c.stale{let f=d.lastUpdate+c.stale{if(k.released)return a&&a(Object.assign(Error("Lock is already released"),{code:"ERELEASED"}));o(d,{...b,realpath:!1},a)})})})})},a.exports.unlock=o,a.exports.check=function(a,b,c){(b={stale:1e4,realpath:!0,fs:e,...b}).stale=Math.max(b.stale||0,2e3),k(a,b,(a,d)=>{if(a)return c(a);b.fs.stat(j(d,b),(a,d)=>a?"ENOENT"===a.code?c(null,!1):c(a):c(null,!l(d,b)))})},a.exports.getLocks=function(){return i}},56268:(a,b,c)=>{"use strict";let d,e;Object.defineProperty(b,"__esModule",{value:!0});var f={BubbledError:function(){return q},SpanKind:function(){return o},SpanStatusCode:function(){return n},getTracer:function(){return y},isBubbledError:function(){return r}};for(var g in f)Object.defineProperty(b,g,{enumerable:!0,get:f[g]});let h=c(81400),i=c(52235),j=process.env.NEXT_OTEL_PERFORMANCE_PREFIX;try{d=c(53896)}catch(a){d=c(53896)}let{context:k,propagation:l,trace:m,SpanStatusCode:n,SpanKind:o,ROOT_CONTEXT:p}=d;class q extends Error{constructor(a,b){super(),this.bubble=a,this.result=b}}function r(a){return"object"==typeof a&&null!==a&&a instanceof q}let s=(a,b)=>{r(b)&&b.bubble?a.setAttribute("next.bubble",!0):(b&&(a.recordException(b),a.setAttribute("error.type",b.name)),a.setStatus({code:n.ERROR,message:null==b?void 0:b.message})),a.end()},t=new Map,u=d.createContextKey("next.rootSpanId"),v=0,w={set(a,b,c){a.push({key:b,value:c})}};class x{getTracerInstance(){return m.getTracer("next.js","0.0.1")}getContext(){return k}getTracePropagationData(){let a=k.active(),b=[];return l.inject(a,b,w),b}getActiveScopeSpan(){return m.getSpan(null==k?void 0:k.active())}withPropagatedContext(a,b,c,d=!1){let e=k.active();if(d){let d=l.extract(p,a,c);if(m.getSpanContext(d))return k.with(d,b);let f=l.extract(e,a,c);return k.with(f,b)}if(m.getSpanContext(e))return b();let f=l.extract(e,a,c);return k.with(f,b)}trace(...a){let[b,c,d]=a,{fn:e,options:f}="function"==typeof c?{fn:c,options:{}}:{fn:d,options:{...c}},g=f.spanName??b;if(!h.NextVanillaSpanAllowlist.has(b)&&"1"!==process.env.NEXT_OTEL_VERBOSE||f.hideSpan)return e();let l=this.getSpanContext((null==f?void 0:f.parentSpan)??this.getActiveScopeSpan());l||(l=(null==k?void 0:k.active())??p);let m=l.getValue(u),n="number"!=typeof m||!t.has(m),o=v++;return f.attributes={"next.span_name":g,"next.span_type":b,...f.attributes},k.with(l.setValue(u,o),()=>this.getTracerInstance().startActiveSpan(g,f,a=>{let c;j&&b&&h.LogSpanAllowList.has(b)&&(c="performance"in globalThis&&"measure"in performance?globalThis.performance.now():void 0);let d=!1,g=()=>{!d&&(d=!0,t.delete(o),c&&performance.measure(`${j}:next-${(b.split(".").pop()||"").replace(/[A-Z]/g,a=>"-"+a.toLowerCase())}`,{start:c,end:performance.now()}))};if(n&&t.set(o,new Map(Object.entries(f.attributes??{}))),e.length>1)try{return e(a,b=>s(a,b))}catch(b){throw s(a,b),b}finally{g()}try{let b=e(a);if((0,i.isThenable)(b))return b.then(b=>(a.end(),b)).catch(b=>{throw s(a,b),b}).finally(g);return a.end(),g(),b}catch(b){throw s(a,b),g(),b}}))}wrap(...a){let b=this,[c,d,e]=3===a.length?a:[a[0],{},a[1]];return h.NextVanillaSpanAllowlist.has(c)||"1"===process.env.NEXT_OTEL_VERBOSE?function(){let a=d;"function"==typeof a&&"function"==typeof e&&(a=a.apply(this,arguments));let f=arguments.length-1,g=arguments[f];if("function"!=typeof g)return b.trace(c,a,()=>e.apply(this,arguments));{let d=b.getContext().bind(k.active(),g);return b.trace(c,a,(a,b)=>(arguments[f]=function(a){return null==b||b(a),d.apply(this,arguments)},e.apply(this,arguments)))}}:e}startSpan(...a){let[b,c]=a,d=this.getSpanContext((null==c?void 0:c.parentSpan)??this.getActiveScopeSpan());return this.getTracerInstance().startSpan(b,c,d)}getSpanContext(a){return a?m.setSpan(k.active(),a):void 0}getRootSpanAttributes(){let a=k.active().getValue(u);return t.get(a)}setRootSpanAttribute(a,b){let c=k.active().getValue(u),d=t.get(c);d&&!d.has(a)&&d.set(a,b)}withSpan(a,b){let c=m.setSpan(k.active(),a);return k.with(c,b)}}let y=(e=new x,()=>e)},56467:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={djb2Hash:function(){return e},hexHash:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){let b=5381;for(let c=0;c>>0}function f(a){return e(a).toString(36).slice(0,5)}},56573:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={createLocalRequestContext:function(){return i},getBuiltinRequestContext:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(20444);function g(){let a=globalThis[h];return null==a?void 0:a.get()}let h=Symbol.for("@next/request-context");function i(){let a=(0,f.createAsyncLocalStorage)();return{get:()=>a.getStore(),run:(b,c)=>a.run(b,c)}}},56733:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compareAppPaths:function(){return i},normalizeAppPath:function(){return h},normalizeRscURL:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(15834),g=c(38384);function h(a){return(0,f.ensureLeadingSlash)(a.split("/").reduce((a,b,c,d)=>!b||(0,g.isGroupSegment)(b)||"@"===b[0]||("page"===b||"route"===b)&&c===d.length-1?a:`${a}/${b}`,""))}function i(a,b){let c=a.includes("/@"),d=b.includes("/@");return c&&!d?-1:!c&&d?1:a.localeCompare(b)}function j(a){return a.replace(/\.rsc($|\?)/,"$1")}},58865:a=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b={};(()=>{function a(a,b){void 0===b&&(b={});for(var c=function(a){for(var b=[],c=0;c=48&&g<=57||g>=65&&g<=90||g>=97&&g<=122||95===g){e+=a[f++];continue}break}if(!e)throw TypeError("Missing parameter name at ".concat(c));b.push({type:"NAME",index:c,value:e}),c=f;continue}if("("===d){var h=1,i="",f=c+1;if("?"===a[f])throw TypeError('Pattern cannot start with "?" at '.concat(f));for(;f-1)return!0}return!1},q=function(a){var b=i[i.length-1],c=a||(b&&"string"==typeof b?b:"");if(b&&!c)throw TypeError('Must have text between two parameters, missing text after "'.concat(b.name,'"'));return!c||p(c)?"[^".concat(e(h),"]+?"):"(?:(?!".concat(e(c),")[^").concat(e(h),"])+?")};k-1:void 0===v;g||(p+="(?:".concat(o,"(?=").concat(n,"))?")),w||(p+="(?=".concat(o,"|").concat(n,")"))}return new RegExp(p,f(c))}function h(b,c,d){if(b instanceof RegExp){var e;if(!c)return b;for(var i=/\((?:\?<(.*?)>)?(?!\?)/g,j=0,k=i.exec(b.source);k;)c.push({name:k[1]||j++,prefix:"",suffix:"",modifier:"",pattern:""}),k=i.exec(b.source);return b}return Array.isArray(b)?(e=b.map(function(a){return h(a,c,d).source}),new RegExp("(?:".concat(e.join("|"),")"),f(d))):g(a(b,d),c,d)}Object.defineProperty(b,"__esModule",{value:!0}),b.pathToRegexp=b.tokensToRegexp=b.regexpToFunction=b.match=b.tokensToFunction=b.compile=b.parse=void 0,b.parse=a,b.compile=function(b,d){return c(a(b,d),d)},b.tokensToFunction=c,b.match=function(a,b){var c=[];return d(h(a,c,b),c,b)},b.regexpToFunction=d,b.tokensToRegexp=g,b.pathToRegexp=h})(),a.exports=b})()},58955:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getSortedRouteObjects:function(){return f.getSortedRouteObjects},getSortedRoutes:function(){return f.getSortedRoutes},isDynamicRoute:function(){return g.isDynamicRoute}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(76597),g=c(18431)},59007:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={PARAMETER_PATTERN:function(){return l},getDynamicParam:function(){return k},interpolateParallelRouteParams:function(){return j},parseMatchedParameter:function(){return n},parseParameter:function(){return m}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(93402),g=c(48747),h=c(5827),i=c(30607);function j(a,b,c,d){let e=structuredClone(b),j=[{tree:a,depth:0}],k=(0,h.parseAppRoute)(c,!0);for(;j.length>0;){let{tree:a,depth:b}=j.pop(),{segment:c,parallelRoutes:l}=(0,g.parseLoaderTree)(a),m=(0,h.parseAppRouteSegment)(c);if(m?.type==="dynamic"&&!e.hasOwnProperty(m.param.paramName)&&!d?.has(m.param.paramName)){let{paramName:a,paramType:c}=m.param,d=(0,i.resolveParamValue)(a,c,b,k,e);if(void 0!==d)e[a]=d;else if("optional-catchall"!==c)throw Object.defineProperty(new f.InvariantError(`Could not resolve param value for segment: ${a}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let n=b;for(let a of(m&&"route-group"!==m.type&&"parallel-route"!==m.type&&n++,Object.values(l)))j.push({tree:a,depth:n})}return e}function k(a,b,c,d,e){let g=function(a,b,c){let d=a[b];if(c?.has(b)){let[a]=c.get(b);d=a}else Array.isArray(d)?d=d.map(a=>encodeURIComponent(a)):"string"==typeof d&&(d=encodeURIComponent(d));return d}(a,b,d);if(!g||0===g.length){if("oc"===c)return{param:b,value:null,type:c,treeSegment:[b,"",c,e]};throw Object.defineProperty(new f.InvariantError(`Missing value for segment key: "${b}" with dynamic param type: ${c}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let h=Array.isArray(g)?g.join("/"):g;return{param:b,value:g,treeSegment:[b,h,c,e],type:c}}let l=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function m(a){let b=a.match(l);return b?n(b[2]):n(a)}function n(a){let b=a.startsWith("[")&&a.endsWith("]");b&&(a=a.slice(1,-1));let c=a.startsWith("...");return c&&(a=a.slice(3)),{key:a,repeat:c,optional:b}}},59454:a=>{(()=>{"use strict";"u">typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var b,c,d,e,f={};f.parse=function(a,c){if("string"!=typeof a)throw TypeError("argument str must be a string");for(var e={},f=a.split(d),g=(c||{}).decode||b,h=0;h{"use strict";function c(a,b){let c;if(b?.host&&!Array.isArray(b.host))c=b.host.toString().split(":",1)[0];else{if(!a.hostname)return;c=a.hostname}return c.toLowerCase()}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getHostname",{enumerable:!0,get:function(){return c}})},60717:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createWorkStore",{enumerable:!0,get:function(){return i}});let d=c(28990),e=c(56733),f=c(53465),g=c(53373),h=c(20444);function i({page:a,renderOpts:b,isPrefetchRequest:c,buildId:j,previouslyRevalidatedTags:k,nonce:l}){let m=!b.shouldWaitOnAllReady&&!b.supportsDynamicResponse&&!b.isDraftMode&&!b.isPossibleServerAction,n=m&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),o={isStaticGeneration:m,page:a,route:(0,e.normalizeAppPath)(a),incrementalCache:b.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:b.cacheLifeProfiles,isBuildTimePrerendering:b.isBuildTimePrerendering,fetchCache:b.fetchCache,isOnDemandRevalidate:b.isOnDemandRevalidate,isDraftMode:b.isDraftMode,isPrefetchRequest:c,buildId:j,reactLoadableManifest:(null==b?void 0:b.reactLoadableManifest)||{},assetPrefix:(null==b?void 0:b.assetPrefix)||"",nonce:l,afterContext:function(a){let{waitUntil:b,onClose:c,onAfterTaskError:e}=a;return new d.AfterContext({waitUntil:b,onClose:c,onTaskError:e})}(b),cacheComponentsEnabled:b.cacheComponents,previouslyRevalidatedTags:k,refreshTagsByCacheKind:function(){let a=new Map,b=(0,g.getCacheHandlerEntries)();if(b)for(let[c,d]of b)"refreshTags"in d&&a.set(c,(0,f.createLazyResult)(async()=>d.refreshTags()));return a}(),runInCleanSnapshot:(0,h.createSnapshot)(),shouldTrackFetchMetrics:n,reactServerErrorsByDigest:new Map};return b.store=o,o}},60935:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RouteKind",{enumerable:!0,get:function(){return d}});var c,d=((c={}).PAGES="PAGES",c.PAGES_API="PAGES_API",c.APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.IMAGE="IMAGE",c)},61475:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e={CachedRouteKind:function(){return g},IncrementalCacheKind:function(){return h}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});var g=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.REDIRECT="REDIRECT",c.IMAGE="IMAGE",c),h=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.IMAGE="IMAGE",d)},63033:a=>{"use strict";a.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},63290:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={StaticGenBailoutError:function(){return f},isStaticGenBailoutError:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="NEXT_STATIC_GEN_BAILOUT";class f extends Error{constructor(...a){super(...a),this.code=e}}function g(a){return"object"==typeof a&&null!==a&&"code"in a&&a.code===e}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},63480:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={isAbortError:function(){return k},pipeToNodeResponse:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(52288),g=c(9367),h=c(56268),i=c(81400),j=c(52351);function k(a){return(null==a?void 0:a.name)==="AbortError"||(null==a?void 0:a.name)===f.ResponseAbortedName}async function l(a,b,c){try{let{errored:d,destroyed:e}=b;if(d||e)return;let k=(0,f.createAbortController)(b),l=function(a,b){let c=!1,d=new g.DetachedPromise;function e(){d.resolve()}a.on("drain",e),a.once("close",()=>{a.off("drain",e),d.resolve()});let f=new g.DetachedPromise;return a.once("finish",()=>{f.resolve()}),new WritableStream({write:async b=>{if(!c){if(c=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let a=(0,j.getClientComponentLoaderMetrics)();a&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:a.clientComponentLoadStart,end:a.clientComponentLoadStart+a.clientComponentLoadTimes})}a.flushHeaders(),(0,h.getTracer)().trace(i.NextNodeServerSpan.startResponse,{spanName:"start response"},()=>void 0)}try{let c=a.write(b);"flush"in a&&"function"==typeof a.flush&&a.flush(),c||(await d.promise,d=new g.DetachedPromise)}catch(b){throw a.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:b}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:b=>{a.writableFinished||a.destroy(b)},close:async()=>{if(b&&await b,!a.writableFinished)return a.end(),f.promise}})}(b,c);await a.pipeTo(l,{signal:k.signal})}catch(a){if(k(a))return;throw Object.defineProperty(Error("failed to pipe response",{cause:a}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}},65061:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getRouteMatcher",{enumerable:!0,get:function(){return f}});let d=c(95676),e=c(46676);function f({re:a,groups:b}){return(0,e.safeRouteMatcher)(c=>{let e=a.exec(c);if(!e)return!1;let f=a=>{try{return decodeURIComponent(a)}catch{throw Object.defineProperty(new d.DecodeError("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},g={};for(let[a,c]of Object.entries(b)){let b=e[c.pos];void 0!==b&&(c.repeat?g[a]=b.split("/").map(a=>f(a)):g[a]=f(b))}return g})}},65386:(a,b,c)=>{"use strict";var d,e;Object.defineProperty(b,"__esModule",{value:!0}),d=c(85676),e=b,Object.keys(d).forEach(function(a){"default"===a||Object.prototype.hasOwnProperty.call(e,a)||Object.defineProperty(e,a,{enumerable:!0,get:function(){return d[a]}})})},65597:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={RequestCookies:function(){return f.RequestCookies},ResponseCookies:function(){return f.ResponseCookies},stringifyCookie:function(){return f.stringifyCookie}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(41128)},66072:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERCEPTION_ROUTE_MARKERS:function(){return g},extractInterceptionRouteInformation:function(){return i},isInterceptionRouteAppPath:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(56733),g=["(..)(..)","(.)","(..)","(...)"];function h(a){return void 0!==a.split("/").find(a=>g.find(b=>a.startsWith(b)))}function i(a){let b,c,d;for(let e of a.split("/"))if(c=g.find(a=>e.startsWith(a))){[b,d]=a.split(c,2);break}if(!b||!c||!d)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(b=(0,f.normalizeAppPath)(b),c){case"(.)":d="/"===b?`/${d}`:b+"/"+d;break;case"(..)":if("/"===b)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});d=b.split("/").slice(0,-1).concat(d).join("/");break;case"(...)":d="/"+d;break;case"(..)(..)":let e=b.split("/");if(e.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${a}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});d=e.slice(0,-2).concat(d).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:b,interceptedRoute:d}}},68530:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"escapeStringRegexp",{enumerable:!0,get:function(){return e}});let c=/[|\\{}()[\]^$+*?.-]/,d=/[|\\{}()[\]^$+*?.-]/g;function e(a){return c.test(a)?a.replace(d,"\\$&"):a}},68619:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"createDefaultCacheHandler",{enumerable:!0,get:function(){return f}});let d=c(49191),e=c(36820);function f(a){if(0===a)return{get:()=>Promise.resolve(void 0),set:()=>Promise.resolve(),refreshTags:()=>Promise.resolve(),getExpiration:()=>Promise.resolve(0),updateTags:()=>Promise.resolve()};let b=new d.LRUCache(a,a=>a.size),c=new Map,f=process.env.NEXT_PRIVATE_DEBUG_CACHE?console.debug.bind(console,"DefaultCacheHandler:"):void 0;return{async get(a){let d=c.get(a);d&&(null==f||f("get",a,"pending"),await d);let g=b.get(a);if(!g){null==f||f("get",a,"not found");return}let h=g.entry;if(performance.timeOrigin+performance.now()>h.timestamp+1e3*h.revalidate){null==f||f("get",a,"expired");return}let i=h.revalidate;if((0,e.areTagsExpired)(h.tags,h.timestamp)){null==f||f("get",a,"had expired tag");return}(0,e.areTagsStale)(h.tags,h.timestamp)&&(null==f||f("get",a,"had stale tag"),i=-1);let[j,k]=h.value.tee();return h.value=k,null==f||f("get",a,"found",{tags:h.tags,timestamp:h.timestamp,expire:h.expire,revalidate:i}),{...h,revalidate:i,value:j}},async set(a,d){null==f||f("set",a,"start");let e=()=>{},g=new Promise(a=>{e=a});c.set(a,g);let h=await d,i=0;try{let[c,d]=h.value.tee();h.value=c;let e=d.getReader();for(let a;!(a=await e.read()).done;)i+=Buffer.from(a.value).byteLength;b.set(a,{entry:h,isErrored:!1,errorRetryCount:0,size:i}),null==f||f("set",a,"done")}catch(b){null==f||f("set",a,"failed",b)}finally{e(),c.delete(a)}},async refreshTags(){},async getExpiration(a){let b=Math.max(...a.map(a=>{let b=e.tagsManifest.get(a);return b&&b.expired||0}),0);return null==f||f("getExpiration",{tags:a,expiration:b}),b},async updateTags(a,b){let c=Math.round(performance.timeOrigin+performance.now());for(let d of(null==f||f("updateTags",{tags:a,timestamp:c}),a)){let a=e.tagsManifest.get(d)||{};if(b){let f={...a};f.stale=c,void 0!==b.expire&&(f.expired=c+1e3*b.expire),e.tagsManifest.set(d,f)}else e.tagsManifest.set(d,{...a,expired:c})}}}}},68967:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextFetchEvent:function(){return l},getWaitUntilPromiseFromEvent:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(18904),g=Symbol("response"),h=Symbol("passThrough"),i=Symbol("waitUntil");class j{constructor(a,b){this[h]=!1,this[i]=b?{kind:"external",function:b}:{kind:"internal",promises:[]}}respondWith(a){this[g]||(this[g]=Promise.resolve(a))}passThroughOnException(){this[h]=!0}waitUntil(a){if("external"===this[i].kind)return(0,this[i].function)(a);this[i].promises.push(a)}}function k(a){return"internal"===a[i].kind?Promise.all(a[i].promises).then(()=>{}):void 0}class l extends j{constructor(a){var b;super(a.request,null==(b=a.context)?void 0:b.waitUntil),this.sourcePage=a.page}get request(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}respondWith(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}}},69903:(a,b,c)=>{var d=c(75785);b.operation=function(a){return new d(b.timeouts(a),{forever:a&&a.forever,unref:a&&a.unref,maxRetryTime:a&&a.maxRetryTime})},b.timeouts=function(a){if(a instanceof Array)return[].concat(a);var b={retries:10,factor:2,minTimeout:1e3,maxTimeout:1/0,randomize:!1};for(var c in a)b[c]=a[c];if(b.minTimeout>b.maxTimeout)throw Error("minTimeout is greater than maxTimeout");for(var d=[],e=0;e{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"RedirectStatusCode",{enumerable:!0,get:function(){return d}});var c,d=((c={})[c.SeeOther=303]="SeeOther",c[c.TemporaryRedirect=307]="TemporaryRedirect",c[c.PermanentRedirect=308]="PermanentRedirect",c);("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},70375:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={REDIRECT_ERROR_CODE:function(){return g},isRedirectError:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(70301),g="NEXT_REDIRECT";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let b=a.digest.split(";"),[c,d]=b,e=b.slice(2,-2).join(";"),h=Number(b.at(-2));return c===g&&("replace"===d||"push"===d)&&"string"==typeof e&&!isNaN(h)&&h in f.RedirectStatusCode}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},70782:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removePathPrefix",{enumerable:!0,get:function(){return e}});let d=c(79668);function e(a,b){if(!(0,d.pathHasPrefix)(a,b))return a;let c=a.slice(b.length);return c.startsWith("/")?c:`/${c}`}},71286:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ACTION_SUFFIX:function(){return p},APP_DIR_ALIAS:function(){return O},CACHE_ONE_YEAR_SECONDS:function(){return E},DOT_NEXT_ALIAS:function(){return M},ESLINT_DEFAULT_DIRS:function(){return ag},GSP_NO_RETURNED_VALUE:function(){return aa},GSSP_COMPONENT_MEMBER_ERROR:function(){return ad},GSSP_NO_RETURNED_VALUE:function(){return ab},HTML_CONTENT_TYPE_HEADER:function(){return f},INFINITE_CACHE:function(){return F},INSTRUMENTATION_HOOK_FILENAME:function(){return K},JSON_CONTENT_TYPE_HEADER:function(){return g},MATCHED_PATH_HEADER:function(){return j},MIDDLEWARE_FILENAME:function(){return G},MIDDLEWARE_LOCATION_REGEXP:function(){return H},NEXT_BODY_SUFFIX:function(){return s},NEXT_CACHE_IMPLICIT_TAG_ID:function(){return C},NEXT_CACHE_REVALIDATED_TAGS_HEADER:function(){return v},NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER:function(){return w},NEXT_CACHE_ROOT_PARAM_TAG_ID:function(){return D},NEXT_CACHE_SOFT_TAG_MAX_LENGTH:function(){return B},NEXT_CACHE_TAGS_HEADER:function(){return u},NEXT_CACHE_TAG_MAX_ITEMS:function(){return z},NEXT_CACHE_TAG_MAX_LENGTH:function(){return A},NEXT_DATA_SUFFIX:function(){return q},NEXT_INTERCEPTION_MARKER_PREFIX:function(){return i},NEXT_META_SUFFIX:function(){return r},NEXT_NAV_DEPLOYMENT_ID_HEADER:function(){return t},NEXT_QUERY_PARAM_PREFIX:function(){return h},NEXT_RESUME_HEADER:function(){return x},NEXT_RESUME_STATE_LENGTH_HEADER:function(){return y},NON_STANDARD_NODE_ENV:function(){return ae},PAGES_DIR_ALIAS:function(){return L},PRERENDER_REVALIDATE_HEADER:function(){return k},PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER:function(){return l},PROXY_FILENAME:function(){return I},PROXY_LOCATION_REGEXP:function(){return J},PUBLIC_DIR_MIDDLEWARE_CONFLICT:function(){return W},ROOT_DIR_ALIAS:function(){return N},RSC_ACTION_CLIENT_WRAPPER_ALIAS:function(){return V},RSC_ACTION_ENCRYPTION_ALIAS:function(){return U},RSC_ACTION_PROXY_ALIAS:function(){return R},RSC_ACTION_VALIDATE_ALIAS:function(){return Q},RSC_CACHE_WRAPPER_ALIAS:function(){return S},RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS:function(){return T},RSC_MOD_REF_PROXY_ALIAS:function(){return P},RSC_SEGMENTS_DIR_SUFFIX:function(){return m},RSC_SEGMENT_SUFFIX:function(){return n},RSC_SUFFIX:function(){return o},SERVER_PROPS_EXPORT_ERROR:function(){return _},SERVER_PROPS_GET_INIT_PROPS_CONFLICT:function(){return Y},SERVER_PROPS_SSG_CONFLICT:function(){return Z},SERVER_RUNTIME:function(){return ah},SSG_FALLBACK_EXPORT_ERROR:function(){return af},SSG_GET_INITIAL_PROPS_CONFLICT:function(){return X},STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR:function(){return $},TEXT_PLAIN_CONTENT_TYPE_HEADER:function(){return e},UNSTABLE_REVALIDATE_RENAME_ERROR:function(){return ac},WEBPACK_LAYERS:function(){return ak},WEBPACK_RESOURCE_QUERIES:function(){return al},WEB_SOCKET_MAX_RECONNECTIONS:function(){return ai}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="text/plain",f="text/html; charset=utf-8",g="application/json; charset=utf-8",h="nxtP",i="nxtI",j="x-matched-path",k="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",m=".segments",n=".segment.rsc",o=".rsc",p=".action",q=".json",r=".meta",s=".body",t="x-nextjs-deployment-id",u="x-next-cache-tags",v="x-next-revalidated-tags",w="x-next-revalidate-tag-token",x="next-resume",y="x-next-resume-state-length",z=128,A=256,B=1024,C="_N_T_",D="_N_RP_",E=31536e3,F=0xfffffffe,G="middleware",H=`(?:src/)?${G}`,I="proxy",J=`(?:src/)?${I}`,K="instrumentation",L="private-next-pages",M="private-dot-next",N="private-next-root-dir",O="private-next-app-dir",P="next/dist/build/webpack/loaders/next-flight-loader/module-proxy",Q="private-next-rsc-action-validate",R="private-next-rsc-server-reference",S="private-next-rsc-cache-wrapper",T="private-next-rsc-track-dynamic-import",U="private-next-rsc-action-encryption",V="private-next-rsc-action-client-wrapper",W="You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict",X="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",Y="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",Z="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",$="can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props",_="pages with `getServerSideProps` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export",aa="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",ab="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",ac="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",ad="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",ae='You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env',af="Pages with `fallback` enabled in `getStaticPaths` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export",ag=["app","pages","components","lib","src"],ah={edge:"edge",experimentalEdge:"experimental-edge",nodejs:"nodejs"},ai=12,aj={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"},ak={...aj,GROUP:{builtinReact:[aj.reactServerComponents,aj.actionBrowser],serverOnly:[aj.reactServerComponents,aj.actionBrowser,aj.instrument,aj.middleware],neutralTarget:[aj.apiNode,aj.apiEdge],clientOnly:[aj.serverSideRendering,aj.appPagesBrowser],bundled:[aj.reactServerComponents,aj.actionBrowser,aj.serverSideRendering,aj.appPagesBrowser,aj.shared,aj.instrument,aj.middleware],appPages:[aj.reactServerComponents,aj.serverSideRendering,aj.appPagesBrowser,aj.actionBrowser]}},al={edgeSSREntry:"__next_edge_ssr_entry__",metadata:"__next_metadata__",metadataRoute:"__next_metadata_route__",metadataImageMeta:"__next_metadata_image_meta__"}},72483:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"getNextPathnameInfo",{enumerable:!0,get:function(){return g}});let d=c(28778),e=c(70782),f=c(79668);function g(a,b){let{basePath:c,i18n:g,trailingSlash:h}=b.nextConfig??{},i={pathname:a,trailingSlash:"/"!==a?a.endsWith("/"):h};c&&(0,f.pathHasPrefix)(i.pathname,c)&&(i.pathname=(0,e.removePathPrefix)(i.pathname,c),i.basePath=c);let j=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let a=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=a[0],j="index"!==a[1]?`/${a.slice(1).join("/")}`:"/",!0===b.parseData&&(i.pathname=j)}if(g){let a=b.i18nProvider?b.i18nProvider.analyze(i.pathname):(0,d.normalizeLocalePath)(i.pathname,g.locales);i.locale=a.detectedLocale,i.pathname=a.pathname??i.pathname,!a.detectedLocale&&i.buildId&&(a=b.i18nProvider?b.i18nProvider.analyze(j):(0,d.normalizeLocalePath)(j,g.locales)).detectedLocale&&(i.locale=a.detectedLocale)}return i}},72874:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getNamedMiddlewareRegex:function(){return p},getNamedRouteRegex:function(){return o},getRouteRegex:function(){return l}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(71286),g=c(66072),h=c(68530),i=c(89570),j=c(59007);function k(a,b,c){let d={},e=1,f=[];for(let k of(0,i.removeTrailingSlash)(a).slice(1).split("/")){let a=g.INTERCEPTION_ROUTE_MARKERS.find(a=>k.startsWith(a)),i=k.match(j.PARAMETER_PATTERN);if(a&&i&&i[2]){let{key:b,optional:c,repeat:g}=(0,j.parseMatchedParameter)(i[2]);d[b]={pos:e++,repeat:g,optional:c},f.push(`/${(0,h.escapeStringRegexp)(a)}([^/]+?)`)}else if(i&&i[2]){let{key:a,repeat:b,optional:g}=(0,j.parseMatchedParameter)(i[2]);d[a]={pos:e++,repeat:b,optional:g},c&&i[1]&&f.push(`/${(0,h.escapeStringRegexp)(i[1])}`);let k=b?g?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";c&&i[1]&&(k=k.substring(1)),f.push(k)}else f.push(`/${(0,h.escapeStringRegexp)(k)}`);b&&i&&i[3]&&f.push((0,h.escapeStringRegexp)(i[3]))}return{parameterizedRoute:f.join(""),groups:d}}function l(a,{includeSuffix:b=!1,includePrefix:c=!1,excludeOptionalTrailingSlash:d=!1}={}){let{parameterizedRoute:e,groups:f}=k(a,b,c),g=e;return d||(g+="(?:/)?"),{re:RegExp(`^${g}$`),groups:f}}function m({interceptionMarker:a,getSafeRouteKey:b,segment:c,routeKeys:d,keyPrefix:e,backreferenceDuplicateKeys:f}){let g,{key:i,optional:k,repeat:l}=(0,j.parseMatchedParameter)(c),n=i.replace(/\W/g,"");e&&(n=`${e}${n}`);let o=!1;(0===n.length||n.length>30)&&(o=!0),isNaN(parseInt(n.slice(0,1)))||(o=!0),o&&(n=b());let p=n in d;e?d[n]=`${e}${i}`:d[n]=i;let q=a?(0,h.escapeStringRegexp)(a):"";return g=p&&f?`\\k<${n}>`:l?`(?<${n}>.+?)`:`(?<${n}>[^/]+?)`,{key:i,pattern:k?`(?:/${q}${g})?`:`/${q}${g}`,cleanedKey:n,optional:k,repeat:l}}function n(a,b,c,d,e,k={names:{},intercepted:{}}){let l,o=(l=0,()=>{let a="",b=++l;for(;b>0;)a+=String.fromCharCode(97+(b-1)%26),b=Math.floor((b-1)/26);return a}),p={},q=[],r=[];for(let l of(k=structuredClone(k),(0,i.removeTrailingSlash)(a).slice(1).split("/"))){let a,i=g.INTERCEPTION_ROUTE_MARKERS.some(a=>l.startsWith(a)),n=l.match(j.PARAMETER_PATTERN),s=i?n?.[1]:void 0;if(s&&n?.[2]?(a=b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0,k.intercepted[n[2]]=s):a=n?.[2]&&k.intercepted[n[2]]?b?f.NEXT_INTERCEPTION_MARKER_PREFIX:void 0:b?f.NEXT_QUERY_PARAM_PREFIX:void 0,s&&n&&n[2]){let{key:b,pattern:c,cleanedKey:d,repeat:f,optional:g}=m({getSafeRouteKey:o,interceptionMarker:s,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e});q.push(c),r.push(`/${n[1]}:${k.names[b]??d}${f?g?"*":"+":""}`),k.names[b]??=d}else if(n&&n[2]){d&&n[1]&&(q.push(`/${(0,h.escapeStringRegexp)(n[1])}`),r.push(`/${n[1]}`));let{key:b,pattern:c,cleanedKey:f,repeat:g,optional:i}=m({getSafeRouteKey:o,segment:n[2],routeKeys:p,keyPrefix:a,backreferenceDuplicateKeys:e}),j=c;d&&n[1]&&(j=j.substring(1)),q.push(j),r.push(`/:${k.names[b]??f}${g?i?"*":"+":""}`),k.names[b]??=f}else q.push(`/${(0,h.escapeStringRegexp)(l)}`),r.push(`/${l}`);c&&n&&n[3]&&(q.push((0,h.escapeStringRegexp)(n[3])),r.push(n[3]))}return{namedParameterizedRoute:q.join(""),routeKeys:p,pathToRegexpPattern:r.join(""),reference:k}}function o(a,b){let c=n(a,b.prefixRouteKeys,b.includeSuffix??!1,b.includePrefix??!1,b.backreferenceDuplicateKeys??!1,b.reference),d=c.namedParameterizedRoute;return b.excludeOptionalTrailingSlash||(d+="(?:/)?"),{...l(a,b),namedRegex:`^${d}$`,routeKeys:c.routeKeys,pathToRegexpPattern:c.pathToRegexpPattern,reference:c.reference}}function p(a,b){let{parameterizedRoute:c}=k(a,!1,!1),{catchAll:d=!0}=b;if("/"===c)return{namedRegex:`^/${d?".*":""}$`};let{namedParameterizedRoute:e}=n(a,!1,!1,!1,!1,void 0);return{namedRegex:`^${e}${d?"(?:(/.*)?)":""}$`}}},73024:a=>{"use strict";a.exports=require("node:fs")},73136:a=>{"use strict";a.exports=require("node:url")},73259:(a,b,c)=>{var d=c(27910).Stream;a.exports=function(a){return{ReadStream:function b(c,e){if(!(this instanceof b))return new b(c,e);d.call(this);var f=this;this.path=c,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536;for(var g=Object.keys(e=e||{}),h=0,i=g.length;hthis.end)throw Error("start must be <= end");this.pos=this.start}null!==this.fd?process.nextTick(function(){f._read()}):a.open(this.path,this.flags,this.mode,function(a,b){if(a){f.emit("error",a),f.readable=!1;return}f.fd=b,f.emit("open",b),f._read()})},WriteStream:function b(c,e){if(!(this instanceof b))return new b(c,e);d.call(this),this.path=c,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0;for(var f=Object.keys(e=e||{}),g=0,h=f.length;g= zero");this.pos=this.start}this.busy=!1,this._queue=[],null===this.fd&&(this._open=a.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}}},74183:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={executeRevalidates:function(){return j},withExecuteRevalidates:function(){return g}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(53373);async function g(a,b){if(!a)return b();let c=h(a);try{return await b()}finally{var d,e;let b,f,g=(d=c,e=h(a),b=new Set(d.pendingRevalidatedTags.map(a=>{let b="object"==typeof a.profile?JSON.stringify(a.profile):a.profile||"";return`${a.tag}:${b}`})),f=new Set(d.pendingRevalidateWrites),{pendingRevalidatedTags:e.pendingRevalidatedTags.filter(a=>{let c="object"==typeof a.profile?JSON.stringify(a.profile):a.profile||"";return!b.has(`${a.tag}:${c}`)}),pendingRevalidates:Object.fromEntries(Object.entries(e.pendingRevalidates).filter(([a])=>!(a in d.pendingRevalidates))),pendingRevalidateWrites:e.pendingRevalidateWrites.filter(a=>!f.has(a))});await j(a,g)}}function h(a){return{pendingRevalidatedTags:a.pendingRevalidatedTags?[...a.pendingRevalidatedTags]:[],pendingRevalidates:{...a.pendingRevalidates},pendingRevalidateWrites:a.pendingRevalidateWrites?[...a.pendingRevalidateWrites]:[]}}async function i(a,b,c){if(0===a.length)return;let d=(0,f.getCacheHandlers)(),e=[],g=new Map;for(let b of a){let a,c=b.profile;for(let[b]of g)if("string"==typeof b&&"string"==typeof c&&b===c||"object"==typeof b&&"object"==typeof c&&JSON.stringify(b)===JSON.stringify(c)||b===c){a=b;break}let d=a||c;g.has(d)||g.set(d,[]),g.get(d).push(b.tag)}for(let[a,f]of g){let g;if(a){let b;if("object"==typeof a)b=a;else if("string"==typeof a){var h;if(!(b=null==c||null==(h=c.cacheLifeProfiles)?void 0:h[a]))throw Object.defineProperty(Error(`Invalid profile provided "${a}" must be configured under cacheLife in next.config or be "max"`),"__NEXT_ERROR_CODE",{value:"E873",enumerable:!1,configurable:!0})}b&&(g={expire:b.expire})}for(let b of d||[])a?e.push(null==b.updateTags?void 0:b.updateTags.call(b,f,g)):e.push(null==b.updateTags?void 0:b.updateTags.call(b,f));b&&e.push(b.revalidateTag(f,g))}await Promise.all(e)}function j(a,b){let c=[],d=(null==b?void 0:b.pendingRevalidatedTags)??a.pendingRevalidatedTags??[];return d.length>0&&c.push(i(d,a.incrementalCache,a)),c.push(...Object.values((null==b?void 0:b.pendingRevalidates)??a.pendingRevalidates??{})),c.push(...(null==b?void 0:b.pendingRevalidateWrites)??a.pendingRevalidateWrites??[]),0!==c.length&&Promise.all(c).then(()=>void 0)}},74387:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"connection",{enumerable:!0,get:function(){return k}});let d=c(29294),e=c(63033),f=c(92690),g=c(63290),h=c(16993),i=c(9388);c(55113);let j=c(93402);function k(){let a=d.workAsyncStorage.getStore(),b=e.workUnitAsyncStorage.getStore();if(a){if(b&&"after"===b.phase&&!(0,i.isRequestAPICallableInsideAfter)())throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`after()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but \`after()\` executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`),"__NEXT_ERROR_CODE",{value:"E827",enumerable:!1,configurable:!0});if(a.forceStatic)return Promise.resolve(void 0);if(a.dynamicShouldError)throw Object.defineProperty(new g.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`connection()\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E847",enumerable:!1,configurable:!0});if(b)switch(b.type){case"cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual request, but caches must be able to be produced before a request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E841",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"private-cache":{let b=Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside "use cache: private". The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual navigation request, but caches must be able to be produced before a navigation request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E837",enumerable:!1,configurable:!0});throw Error.captureStackTrace(b,k),a.invalidDynamicUsageError??=b,b}case"unstable-cache":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside a function cached with \`unstable_cache()\`. The \`connection()\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E840",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(Error(`Route ${a.route} used \`connection()\` inside \`generateStaticParams\`. This is not supported because \`generateStaticParams\` runs at build time without an HTTP request. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`),"__NEXT_ERROR_CODE",{value:"E1125",enumerable:!1,configurable:!0});case"prerender":case"prerender-client":case"prerender-runtime":return(0,h.makeHangingPromise)(b.renderSignal,a.route,"`connection()`");case"validation-client":{let a="`connection`";throw Object.defineProperty(new j.InvariantError(`${a} must not be used within a Client Component. Next.js should be preventing ${a} from being included in Client Components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1063",enumerable:!1,configurable:!0})}case"prerender-ppr":return(0,f.postponeWithTracking)(a.route,"connection",b.dynamicTracking);case"prerender-legacy":return(0,f.throwToInterruptStaticGeneration)("connection",a,b);case"request":if((0,f.trackDynamicDataInDynamicRender)(b),b.asyncApiPromises)return b.asyncApiPromises.connection;return Promise.resolve(void 0)}}(0,e.throwForMissingRequestStore)("connection")}},75238:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={NEXT_REQUEST_META:function(){return e},addRequestMeta:function(){return h},getRequestMeta:function(){return f},removeRequestMeta:function(){return i},setRequestMeta:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=Symbol.for("NextInternalRequestMeta");function f(a,b){let c=a[e]||{};return"string"==typeof b?c[b]:c}function g(a,b){return a[e]=b,b}function h(a,b,c){let d=f(a);return d[b]=c,g(a,d)}function i(a,b){let c=f(a);return delete c[b],g(a,c)}},75785:a=>{function b(a,b){"boolean"==typeof b&&(b={forever:b}),this._originalTimeouts=JSON.parse(JSON.stringify(a)),this._timeouts=a,this._options=b||{},this._maxRetryTime=b&&b.maxRetryTime||1/0,this._fn=null,this._errors=[],this._attempts=1,this._operationTimeout=null,this._operationTimeoutCb=null,this._timeout=null,this._operationStart=null,this._options.forever&&(this._cachedTimeouts=this._timeouts.slice(0))}a.exports=b,b.prototype.reset=function(){this._attempts=1,this._timeouts=this._originalTimeouts},b.prototype.stop=function(){this._timeout&&clearTimeout(this._timeout),this._timeouts=[],this._cachedTimeouts=null},b.prototype.retry=function(a){if(this._timeout&&clearTimeout(this._timeout),!a)return!1;var b=new Date().getTime();if(a&&b-this._operationStart>=this._maxRetryTime)return this._errors.unshift(Error("RetryOperation timeout occurred")),!1;this._errors.push(a);var c=this._timeouts.shift();if(void 0===c)if(!this._cachedTimeouts)return!1;else this._errors.splice(this._errors.length-1,this._errors.length),this._timeouts=this._cachedTimeouts.slice(0),c=this._timeouts.shift();var d=this,e=setTimeout(function(){d._attempts++,d._operationTimeoutCb&&(d._timeout=setTimeout(function(){d._operationTimeoutCb(d._attempts)},d._operationTimeout),d._options.unref&&d._timeout.unref()),d._fn(d._attempts)},c);return this._options.unref&&e.unref(),!0},b.prototype.attempt=function(a,b){this._fn=a,b&&(b.timeout&&(this._operationTimeout=b.timeout),b.cb&&(this._operationTimeoutCb=b.cb));var c=this;this._operationTimeoutCb&&(this._timeout=setTimeout(function(){c._operationTimeoutCb()},c._operationTimeout)),this._operationStart=new Date().getTime(),this._fn(this._attempts)},b.prototype.try=function(a){console.log("Using RetryOperation.try() is deprecated"),this.attempt(a)},b.prototype.start=function(a){console.log("Using RetryOperation.start() is deprecated"),this.attempt(a)},b.prototype.start=b.prototype.try,b.prototype.errors=function(){return this._errors},b.prototype.attempts=function(){return this._attempts},b.prototype.mainError=function(){if(0===this._errors.length)return null;for(var a={},b=null,c=0,d=0;d=c&&(b=e,c=g)}return b}},76379:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"addLocale",{enumerable:!0,get:function(){return f}});let d=c(34971),e=c(79668);function f(a,b,c,f){if(!b||b===c)return a;let g=a.toLowerCase();return!f&&((0,e.pathHasPrefix)(g,"/api")||(0,e.pathHasPrefix)(g,`/${b.toLowerCase()}`))?a:(0,d.addPathPrefix)(a,`/${b}`)}},76597:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={getSortedRouteObjects:function(){return g},getSortedRoutes:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});class e{insert(a){this._insert(a.split("/").filter(Boolean),[],!1)}smoosh(){return this._smoosh()}_smoosh(a="/"){let b=[...this.children.keys()].sort();null!==this.slugName&&b.splice(b.indexOf("[]"),1),null!==this.restSlugName&&b.splice(b.indexOf("[...]"),1),null!==this.optionalRestSlugName&&b.splice(b.indexOf("[[...]]"),1);let c=b.map(b=>this.children.get(b)._smoosh(`${a}${b}/`)).reduce((a,b)=>[...a,...b],[]);if(null!==this.slugName&&c.push(...this.children.get("[]")._smoosh(`${a}[${this.slugName}]/`)),!this.placeholder){let b="/"===a?"/":a.slice(0,-1);if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot define a route with the same specificity as a optional catch-all route ("${b}" and "${b}[[...${this.optionalRestSlugName}]]").`),"__NEXT_ERROR_CODE",{value:"E458",enumerable:!1,configurable:!0});c.unshift(b)}return null!==this.restSlugName&&c.push(...this.children.get("[...]")._smoosh(`${a}[...${this.restSlugName}]/`)),null!==this.optionalRestSlugName&&c.push(...this.children.get("[[...]]")._smoosh(`${a}[[...${this.optionalRestSlugName}]]/`)),c}_insert(a,b,c){if(0===a.length){this.placeholder=!1;return}if(c)throw Object.defineProperty(Error("Catch-all must be the last part of the URL."),"__NEXT_ERROR_CODE",{value:"E392",enumerable:!1,configurable:!0});let d=a[0];if(d.startsWith("[")&&d.endsWith("]")){let e=d.slice(1,-1),g=!1;if(e.startsWith("[")&&e.endsWith("]")&&(e=e.slice(1,-1),g=!0),e.startsWith("…"))throw Object.defineProperty(Error(`Detected a three-dot character ('…') at ('${e}'). Did you mean ('...')?`),"__NEXT_ERROR_CODE",{value:"E147",enumerable:!1,configurable:!0});if(e.startsWith("...")&&(e=e.substring(3),c=!0),e.startsWith("[")||e.endsWith("]"))throw Object.defineProperty(Error(`Segment names may not start or end with extra brackets ('${e}').`),"__NEXT_ERROR_CODE",{value:"E421",enumerable:!1,configurable:!0});if(e.startsWith("."))throw Object.defineProperty(Error(`Segment names may not start with erroneous periods ('${e}').`),"__NEXT_ERROR_CODE",{value:"E288",enumerable:!1,configurable:!0});function f(a,c){if(null!==a&&a!==c)throw Object.defineProperty(Error(`You cannot use different slug names for the same dynamic path ('${a}' !== '${c}').`),"__NEXT_ERROR_CODE",{value:"E337",enumerable:!1,configurable:!0});b.forEach(a=>{if(a===c)throw Object.defineProperty(Error(`You cannot have the same slug name "${c}" repeat within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E247",enumerable:!1,configurable:!0});if(a.replace(/\W/g,"")===d.replace(/\W/g,""))throw Object.defineProperty(Error(`You cannot have the slug names "${a}" and "${c}" differ only by non-word symbols within a single dynamic path`),"__NEXT_ERROR_CODE",{value:"E499",enumerable:!1,configurable:!0})}),b.push(c)}if(c)if(g){if(null!=this.restSlugName)throw Object.defineProperty(Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${a[0]}" ).`),"__NEXT_ERROR_CODE",{value:"E299",enumerable:!1,configurable:!0});f(this.optionalRestSlugName,e),this.optionalRestSlugName=e,d="[[...]]"}else{if(null!=this.optionalRestSlugName)throw Object.defineProperty(Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E300",enumerable:!1,configurable:!0});f(this.restSlugName,e),this.restSlugName=e,d="[...]"}else{if(g)throw Object.defineProperty(Error(`Optional route parameters are not yet supported ("${a[0]}").`),"__NEXT_ERROR_CODE",{value:"E435",enumerable:!1,configurable:!0});f(this.slugName,e),this.slugName=e,d="[]"}}this.children.has(d)||this.children.set(d,new e),this.children.get(d)._insert(a.slice(1),b,c)}constructor(){this.placeholder=!0,this.children=new Map,this.slugName=null,this.restSlugName=null,this.optionalRestSlugName=null}}function f(a){let b=new e;return a.forEach(a=>b.insert(a)),b.smoosh()}function g(a,b){let c={},d=[];for(let e=0;ea[c[b]])}},76655:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={HTTPAccessErrorStatus:function(){return e},HTTP_ERROR_FALLBACK_ERROR_CODE:function(){return g},getAccessFallbackErrorTypeByStatus:function(){return j},getAccessFallbackHTTPStatus:function(){return i},isHTTPAccessFallbackError:function(){return h}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e={NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401},f=new Set(Object.values(e)),g="NEXT_HTTP_ERROR_FALLBACK";function h(a){if("object"!=typeof a||null===a||!("digest"in a)||"string"!=typeof a.digest)return!1;let[b,c]=a.digest.split(";");return b===g&&f.has(Number(c))}function i(a){return Number(a.digest.split(";")[1])}function j(a){switch(a){case 401:return"unauthorized";case 403:return"forbidden";case 404:return"not-found";default:return}}("function"==typeof b.default||"object"==typeof b.default&&null!==b.default)&&void 0===b.default.__esModule&&(Object.defineProperty(b.default,"__esModule",{value:!0}),Object.assign(b.default,b),a.exports=b.default)},76760:a=>{"use strict";a.exports=require("node:path")},78175:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e={fromResponseCacheEntry:function(){return k},routeKindToIncrementalCacheKind:function(){return m},toResponseCacheEntry:function(){return l}};for(var f in e)Object.defineProperty(b,f,{enumerable:!0,get:e[f]});let g=c(61475),h=(d=c(22771))&&d.__esModule?d:{default:d},i=c(60935),j=c(71286);async function k(a){var b,c;return{...a,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:await a.value.html.toUnchunkedString(!0),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:await a.value.html.toUnchunkedString(!0),postponed:a.value.postponed,rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,segmentData:a.value.segmentData}:a.value}}async function l(a){var b,c;return a?{isMiss:a.isMiss,isStale:a.isStale,cacheControl:a.cacheControl,isFallback:a.isFallback,value:(null==(b=a.value)?void 0:b.kind)===g.CachedRouteKind.PAGES?{kind:g.CachedRouteKind.PAGES,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),pageData:a.value.pageData,headers:a.value.headers,status:a.value.status}:(null==(c=a.value)?void 0:c.kind)===g.CachedRouteKind.APP_PAGE?{kind:g.CachedRouteKind.APP_PAGE,html:h.default.fromStatic(a.value.html,j.HTML_CONTENT_TYPE_HEADER),rscData:a.value.rscData,headers:a.value.headers,status:a.value.status,postponed:a.value.postponed,segmentData:a.value.segmentData}:a.value}:null}function m(a){switch(a){case i.RouteKind.PAGES:return g.IncrementalCacheKind.PAGES;case i.RouteKind.APP_PAGE:return g.IncrementalCacheKind.APP_PAGE;case i.RouteKind.IMAGE:return g.IncrementalCacheKind.IMAGE;case i.RouteKind.APP_ROUTE:return g.IncrementalCacheKind.APP_ROUTE;case i.RouteKind.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${a}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return a}}},79646:a=>{"use strict";a.exports=require("child_process")},79668:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"pathHasPrefix",{enumerable:!0,get:function(){return e}});let d=c(29684);function e(a,b){if("string"!=typeof a)return!1;let{pathname:c}=(0,d.parsePath)(a);return c===b||c.startsWith(b+"/")}},80516:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"formatNextPathnameInfo",{enumerable:!0,get:function(){return h}});let d=c(89570),e=c(34971),f=c(25068),g=c(76379);function h(a){let b=(0,g.addLocale)(a.pathname,a.locale,a.buildId?void 0:a.defaultLocale,a.ignorePrefix);return(a.buildId||!a.trailingSlash)&&(b=(0,d.removeTrailingSlash)(b)),a.buildId&&(b=(0,f.addPathSuffix)((0,e.addPathPrefix)(b,`/_next/data/${a.buildId}`),"/"===a.pathname?"index.json":".json")),b=(0,e.addPathPrefix)(b,a.basePath),!a.buildId&&a.trailingSlash?b.endsWith("/")?b:(0,f.addPathSuffix)(b,"/"):(0,d.removeTrailingSlash)(b)}},80695:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={NextRequestHint:function(){return B},adapter:function(){return F}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(18904),g=c(18977),h=c(68967),i=c(98907),j=c(54111),k=c(28864),l=c(23451),m=c(83158),n=c(56733),o=c(54362),p=c(28494),q=c(15755),r=c(63033),s=c(60717),t=c(29294),u=c(56268),v=c(81400),w=c(27595),x=c(44820),y=c(56573),z=c(7364),A=c(75238);class B extends i.NextRequest{constructor(a){super(a.input,a.init),this.sourcePage=a.page}get request(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}respondWith(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}waitUntil(){throw Object.defineProperty(new f.PageSignatureError({page:this.sourcePage}),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}}let C={keys:a=>Array.from(a.keys()),get:(a,b)=>a.get(b)??void 0},D=(a,b)=>(0,u.getTracer)().withPropagatedContext(a.headers,b,C),E=!1;async function F(a){var b,d,e,f;let i,C;!function(){if(!E&&(E=!0,"true"===process.env.NEXT_PRIVATE_TEST_PROXY)){let{interceptTestApis:a,wrapRequestHandler:b}=c(49557);a(),D=b(D)}}(),await (0,p.ensureInstrumentationRegistered)();let F=void 0!==globalThis.__BUILD_MANIFEST;a.request.url=(0,n.normalizeRscURL)(a.request.url);let G=a.bypassNextUrl?new URL(a.request.url):new l.NextURL(a.request.url,{headers:a.request.headers,nextConfig:a.request.nextConfig});for(let a of[...G.searchParams.keys()]){let b=G.searchParams.getAll(a),c=(0,g.normalizeNextQueryParam)(a);if(c){for(let a of(G.searchParams.delete(c),b))G.searchParams.append(c,a);G.searchParams.delete(a)}}let H=process.env.__NEXT_BUILD_ID||"";"buildId"in G&&(H=G.buildId||"",G.buildId="");let I=(0,g.fromNodeOutgoingHttpHeaders)(a.request.headers),J=I.has("x-nextjs-data"),K="1"===I.get(o.RSC_HEADER);J&&"/index"===G.pathname&&(G.pathname="/");let L=new Map;if(!F)for(let a of o.FLIGHT_HEADERS){let b=I.get(a);null!==b&&(L.set(a,b),I.delete(a))}let M=G.searchParams.get(o.NEXT_RSC_UNION_QUERY),N=new B({page:a.page,input:(0,m.stripInternalSearchParams)(G).toString(),init:{body:a.request.body,headers:I,method:a.request.method,nextConfig:a.request.nextConfig,signal:a.request.signal}});a.request.requestMeta&&(0,A.setRequestMeta)(N,a.request.requestMeta),J&&Object.defineProperty(N,"__isData",{enumerable:!1,value:!0}),!globalThis.__incrementalCacheShared&&a.IncrementalCache&&(globalThis.__incrementalCache=new a.IncrementalCache({CurCacheHandler:a.incrementalCacheHandler,minimalMode:!0,fetchCacheKeyPrefix:"",dev:!1,requestHeaders:a.request.headers,getPrerenderManifest:()=>({version:-1,routes:{},dynamicRoutes:{},notFoundRoutes:[],preview:(0,x.getEdgePreviewProps)()})}));let O=a.request.waitUntil??(null==(b=(0,y.getBuiltinRequestContext)())?void 0:b.waitUntil),P=new h.NextFetchEvent({request:N,page:a.page,context:O?{waitUntil:O}:void 0});if((i=await D(N,()=>{if("/middleware"===a.page||"/src/middleware"===a.page||"/proxy"===a.page||"/src/proxy"===a.page){let b=P.waitUntil.bind(P),c=new w.CloseController;return(0,u.getTracer)().trace(v.MiddlewareSpan.execute,{spanName:`middleware ${N.method}`,attributes:{"http.target":N.nextUrl.pathname,"http.method":N.method}},async()=>{try{var d,e,f,g;let h=(0,x.getEdgePreviewProps)(),i=await (0,z.getImplicitTags)("/",N.nextUrl.pathname,null),j=(0,q.createRequestStoreForAPI)(N,N.nextUrl,i,a=>{C=a},h),k=(0,s.createWorkStore)({page:"/",renderOpts:{cacheLifeProfiles:null==(e=a.request.nextConfig)||null==(d=e.experimental)?void 0:d.cacheLife,cacheComponents:!1,experimental:{isRoutePPREnabled:!1,authInterrupts:!!(null==(g=a.request.nextConfig)||null==(f=g.experimental)?void 0:f.authInterrupts)},supportsDynamicResponse:!0,waitUntil:b,onClose:c.onClose.bind(c),onAfterTaskError:void 0},isPrefetchRequest:"1"===N.headers.get(o.NEXT_ROUTER_PREFETCH_HEADER),buildId:H??"",previouslyRevalidatedTags:[]});return await t.workAsyncStorage.run(k,()=>r.workUnitAsyncStorage.run(j,a.handler,N,P))}finally{setTimeout(()=>{c.dispatchClose()},0)}})}return a.handler(N,P)}))&&!(i instanceof Response))throw Object.defineProperty(TypeError("Expected an instance of Response to be returned"),"__NEXT_ERROR_CODE",{value:"E567",enumerable:!1,configurable:!0});i&&C&&i.headers.set("set-cookie",C);let Q=null==i?void 0:i.headers.get("x-middleware-rewrite");if(i&&Q&&(K||!F)){let b=new l.NextURL(Q,{forceLocale:!0,headers:a.request.headers,nextConfig:a.request.nextConfig});F||b.host!==N.nextUrl.host||(b.buildId=H||b.buildId,i.headers.set("x-middleware-rewrite",String(b)));let{url:c,isRelative:g}=(0,k.parseRelativeURL)(b.toString(),G.toString());!F&&J&&i.headers.set("x-nextjs-rewrite",c);let h=!g&&(null==(f=a.request.nextConfig)||null==(e=f.experimental)||null==(d=e.clientParamParsingOrigins)?void 0:d.some(a=>new RegExp(a).test(b.origin)));K&&(g||h)&&(G.pathname!==b.pathname&&i.headers.set(o.NEXT_REWRITTEN_PATH_HEADER,b.pathname),G.search!==b.search&&i.headers.set(o.NEXT_REWRITTEN_QUERY_HEADER,b.search.slice(1)))}if(i&&Q&&K&&M){let a=new URL(Q);a.searchParams.has(o.NEXT_RSC_UNION_QUERY)||(a.searchParams.set(o.NEXT_RSC_UNION_QUERY,M),i.headers.set("x-middleware-rewrite",a.toString()))}let R=null==i?void 0:i.headers.get("Location");if(i&&R&&!F){let b=new l.NextURL(R,{forceLocale:!1,headers:a.request.headers,nextConfig:a.request.nextConfig});i=new Response(i.body,i),b.host===G.host&&(b.buildId=H||b.buildId,i.headers.set("Location",(0,k.getRelativeURL)(b,G))),J&&(i.headers.delete("Location"),i.headers.set("x-nextjs-redirect",(0,k.getRelativeURL)(b.toString(),G.toString())))}let S=i||j.NextResponse.next(),T=S.headers.get("x-middleware-override-headers"),U=[];if(T){for(let[a,b]of L)S.headers.set(`x-middleware-request-${a}`,b),U.push(a);U.length>0&&S.headers.set("x-middleware-override-headers",T+","+U.join(","))}return{response:S,waitUntil:(0,h.getWaitUntilPromiseFromEvent)(P)??Promise.resolve(),fetchMetrics:N.fetchMetrics}}},81115:a=>{"use strict";a.exports=require("constants")},81400:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c,d,e,f,g,h,i,j,k,l,m,n,o={AppRenderSpan:function(){return w},AppRouteRouteHandlersSpan:function(){return z},BaseServerSpan:function(){return q},LoadComponentsSpan:function(){return r},LogSpanAllowList:function(){return D},MiddlewareSpan:function(){return B},NextNodeServerSpan:function(){return t},NextServerSpan:function(){return s},NextVanillaSpanAllowlist:function(){return C},NodeSpan:function(){return y},RenderSpan:function(){return v},ResolveMetadataSpan:function(){return A},RouterSpan:function(){return x},StartServerSpan:function(){return u}};for(var p in o)Object.defineProperty(b,p,{enumerable:!0,get:o[p]});var q=((c=q||{}).handleRequest="BaseServer.handleRequest",c.run="BaseServer.run",c.pipe="BaseServer.pipe",c.getStaticHTML="BaseServer.getStaticHTML",c.render="BaseServer.render",c.renderToResponseWithComponents="BaseServer.renderToResponseWithComponents",c.renderToResponse="BaseServer.renderToResponse",c.renderToHTML="BaseServer.renderToHTML",c.renderError="BaseServer.renderError",c.renderErrorToResponse="BaseServer.renderErrorToResponse",c.renderErrorToHTML="BaseServer.renderErrorToHTML",c.render404="BaseServer.render404",c),r=((d=r||{}).loadDefaultErrorComponents="LoadComponents.loadDefaultErrorComponents",d.loadComponents="LoadComponents.loadComponents",d),s=((e=s||{}).getRequestHandler="NextServer.getRequestHandler",e.getRequestHandlerWithMetadata="NextServer.getRequestHandlerWithMetadata",e.getServer="NextServer.getServer",e.getServerRequestHandler="NextServer.getServerRequestHandler",e.createServer="createServer.createServer",e),t=((f=t||{}).compression="NextNodeServer.compression",f.getBuildId="NextNodeServer.getBuildId",f.createComponentTree="NextNodeServer.createComponentTree",f.clientComponentLoading="NextNodeServer.clientComponentLoading",f.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",f.generateStaticRoutes="NextNodeServer.generateStaticRoutes",f.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",f.generatePublicRoutes="NextNodeServer.generatePublicRoutes",f.generateImageRoutes="NextNodeServer.generateImageRoutes.route",f.sendRenderResult="NextNodeServer.sendRenderResult",f.proxyRequest="NextNodeServer.proxyRequest",f.runApi="NextNodeServer.runApi",f.render="NextNodeServer.render",f.renderHTML="NextNodeServer.renderHTML",f.imageOptimizer="NextNodeServer.imageOptimizer",f.getPagePath="NextNodeServer.getPagePath",f.getRoutesManifest="NextNodeServer.getRoutesManifest",f.findPageComponents="NextNodeServer.findPageComponents",f.getFontManifest="NextNodeServer.getFontManifest",f.getServerComponentManifest="NextNodeServer.getServerComponentManifest",f.getRequestHandler="NextNodeServer.getRequestHandler",f.renderToHTML="NextNodeServer.renderToHTML",f.renderError="NextNodeServer.renderError",f.renderErrorToHTML="NextNodeServer.renderErrorToHTML",f.render404="NextNodeServer.render404",f.startResponse="NextNodeServer.startResponse",f.route="route",f.onProxyReq="onProxyReq",f.apiResolver="apiResolver",f.internalFetch="internalFetch",f),u=((g=u||{}).startServer="startServer.startServer",g),v=((h=v||{}).getServerSideProps="Render.getServerSideProps",h.getStaticProps="Render.getStaticProps",h.renderToString="Render.renderToString",h.renderDocument="Render.renderDocument",h.createBodyResult="Render.createBodyResult",h),w=((i=w||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i),x=((j=x||{}).executeRoute="Router.executeRoute",j),y=((k=y||{}).runHandler="Node.runHandler",k),z=((l=z||{}).runHandler="AppRouteRouteHandlers.runHandler",l),A=((m=A||{}).generateMetadata="ResolveMetadata.generateMetadata",m.generateViewport="ResolveMetadata.generateViewport",m),B=((n=B||{}).execute="Middleware.execute",n);let C=new Set(["Middleware.execute","BaseServer.handleRequest","Render.getServerSideProps","Render.getStaticProps","AppRender.fetch","AppRender.getBodyResult","Render.renderDocument","Node.runHandler","AppRouteRouteHandlers.runHandler","ResolveMetadata.generateMetadata","ResolveMetadata.generateViewport","NextNodeServer.createComponentTree","NextNodeServer.findPageComponents","NextNodeServer.getLayoutOrPageModule","NextNodeServer.startResponse","NextNodeServer.clientComponentLoading"]),D=new Set(["NextNodeServer.findPageComponents","NextNodeServer.createComponentTree","NextNodeServer.clientComponentLoading"])},82324:(a,b,c)=>{"use strict";var d;Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"default",{enumerable:!0,get:function(){return k}});let e=c(32060),f=(d=c(82720))&&d.__esModule?d:{default:d},g=c(71286),h=c(36820),i=c(39439),j=c(16524);class k{static #a=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(a){this.fs=a.fs,this.flushToDisk=a.flushToDisk,this.serverDistDir=a.serverDistDir,this.revalidatedTags=a.revalidatedTags,a.maxMemoryCacheSize?k.memoryCache?k.debug&&console.log("FileSystemCache: memory store already initialized"):(k.debug&&console.log("FileSystemCache: using memory store for fetch cache"),k.memoryCache=(0,j.getMemoryCache)(a.maxMemoryCacheSize)):k.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(a,b){if(a="string"==typeof a?[a]:a,k.debug&&console.log("FileSystemCache: revalidateTag",a,b),0===a.length)return;let c=Date.now();for(let d of a){let a=h.tagsManifest.get(d)||{};if(b){let e={...a};e.stale=c,void 0!==b.expire&&(e.expired=c+1e3*b.expire),h.tagsManifest.set(d,e)}else h.tagsManifest.set(d,{...a,expired:c})}}async get(...a){var b,c,d,f,i,j,l,m,n;let[o,p]=a,{kind:q}=p,r=null==(b=k.memoryCache)?void 0:b.get(o);if(k.debug&&(q===e.IncrementalCacheKind.FETCH?console.log("FileSystemCache: get",o,p.tags,q,!!r):console.log("FileSystemCache: get",o,q,!!r)),!r)try{if(q===e.IncrementalCacheKind.APP_ROUTE){let a=this.getFilePath(`${o}.body`,e.IncrementalCacheKind.APP_ROUTE),b=await this.fs.readFile(a),{mtime:c}=await this.fs.stat(a),d=JSON.parse(await this.fs.readFile(a.replace(/\.body$/,g.NEXT_META_SUFFIX),"utf8"));r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_ROUTE,body:b,headers:d.headers,status:d.status}}}else{let a=this.getFilePath(q===e.IncrementalCacheKind.FETCH?o:`${o}.html`,q),b=await this.fs.readFile(a,"utf8"),{mtime:c}=await this.fs.stat(a);if(q===e.IncrementalCacheKind.FETCH){let{tags:a,fetchIdx:d,fetchUrl:f}=p;if(!this.flushToDisk)return null;let g=c.getTime(),h=JSON.parse(b);if(r={lastModified:g,value:h},(null==(j=r.value)?void 0:j.kind)===e.CachedRouteKind.FETCH){let b=null==(l=r.value)?void 0:l.tags;(null==a?void 0:a.every(a=>null==b?void 0:b.includes(a)))||(k.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",a,b),await this.set(o,r.value,{fetchCache:!0,tags:a,fetchIdx:d,fetchUrl:f}))}}else if(q===e.IncrementalCacheKind.APP_PAGE){let d,f,h;try{d=JSON.parse(await this.fs.readFile(a.replace(/\.html$/,g.NEXT_META_SUFFIX),"utf8"))}catch{}if(null==d?void 0:d.segmentPaths){let a=new Map;f=a;let b=o+g.RSC_SEGMENTS_DIR_SUFFIX;await Promise.all(d.segmentPaths.map(async c=>{let d=this.getFilePath(b+c+g.RSC_SEGMENT_SUFFIX,e.IncrementalCacheKind.APP_PAGE);try{a.set(c,await this.fs.readFile(d))}catch{}}))}p.isFallback||p.isRoutePPREnabled&&(null==d?void 0:d.postponed)!=null||(h=await this.fs.readFile(this.getFilePath(`${o}${g.RSC_SUFFIX}`,e.IncrementalCacheKind.APP_PAGE))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.APP_PAGE,html:b,rscData:h,postponed:null==d?void 0:d.postponed,headers:null==d?void 0:d.headers,status:null==d?void 0:d.status,segmentData:f}}}else if(q===e.IncrementalCacheKind.PAGES){let a,d={};p.isFallback||(d=JSON.parse(await this.fs.readFile(this.getFilePath(`${o}${g.NEXT_DATA_SUFFIX}`,e.IncrementalCacheKind.PAGES),"utf8"))),r={lastModified:c.getTime(),value:{kind:e.CachedRouteKind.PAGES,html:b,pageData:d,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${q} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}r&&(null==(m=k.memoryCache)||m.set(o,r))}catch{return null}if((null==r||null==(c=r.value)?void 0:c.kind)===e.CachedRouteKind.APP_PAGE||(null==r||null==(d=r.value)?void 0:d.kind)===e.CachedRouteKind.APP_ROUTE||(null==r||null==(f=r.value)?void 0:f.kind)===e.CachedRouteKind.PAGES){let a=null==(n=r.value.headers)?void 0:n[g.NEXT_CACHE_TAGS_HEADER];if("string"==typeof a){let b=a.split(",");if(b.length>0&&(0,h.areTagsExpired)(b,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",b),null}}else if((null==r||null==(i=r.value)?void 0:i.kind)===e.CachedRouteKind.FETCH){let a=p.kind===e.IncrementalCacheKind.FETCH?[...p.tags||[],...p.softTags||[]]:[];if(a.some(a=>this.revalidatedTags.includes(a)))return k.debug&&console.log("FileSystemCache: was revalidated",a),null;if((0,h.areTagsExpired)(a,r.lastModified))return k.debug&&console.log("FileSystemCache: expired tags",a),null}return r??null}async set(a,b,c){var d;if(null==(d=k.memoryCache)||d.set(a,{value:b,lastModified:Date.now()}),k.debug&&console.log("FileSystemCache: set",a),!this.flushToDisk||!b)return;let f=new i.MultiFileWriter(this.fs);if(b.kind===e.CachedRouteKind.APP_ROUTE){let c=this.getFilePath(`${a}.body`,e.IncrementalCacheKind.APP_ROUTE);f.append(c,b.body);let d={headers:b.headers,status:b.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};f.append(c.replace(/\.body$/,g.NEXT_META_SUFFIX),JSON.stringify(d,null,2))}else if(b.kind===e.CachedRouteKind.PAGES||b.kind===e.CachedRouteKind.APP_PAGE){let d=b.kind===e.CachedRouteKind.APP_PAGE,h=this.getFilePath(`${a}.html`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES);if(f.append(h,b.html),c.fetchCache||c.isFallback||c.isRoutePPREnabled||f.append(this.getFilePath(`${a}${d?g.RSC_SUFFIX:g.NEXT_DATA_SUFFIX}`,d?e.IncrementalCacheKind.APP_PAGE:e.IncrementalCacheKind.PAGES),d?b.rscData:JSON.stringify(b.pageData)),(null==b?void 0:b.kind)===e.CachedRouteKind.APP_PAGE){let a;if(b.segmentData){a=[];let c=h.replace(/\.html$/,g.RSC_SEGMENTS_DIR_SUFFIX);for(let[d,e]of b.segmentData){a.push(d);let b=c+d+g.RSC_SEGMENT_SUFFIX;f.append(b,e)}}let c={headers:b.headers,status:b.status,postponed:b.postponed,segmentPaths:a,prefetchHints:void 0};f.append(h.replace(/\.html$/,g.NEXT_META_SUFFIX),JSON.stringify(c))}}else if(b.kind===e.CachedRouteKind.FETCH){let d=this.getFilePath(a,e.IncrementalCacheKind.FETCH);f.append(d,JSON.stringify({...b,tags:c.fetchCache?c.tags:[]}))}await f.wait()}getFilePath(a,b){switch(b){case e.IncrementalCacheKind.FETCH:return f.default.join(this.serverDistDir,"..","cache","fetch-cache",a);case e.IncrementalCacheKind.PAGES:return f.default.join(this.serverDistDir,"pages",a);case e.IncrementalCacheKind.IMAGE:case e.IncrementalCacheKind.APP_PAGE:case e.IncrementalCacheKind.APP_ROUTE:return f.default.join(this.serverDistDir,"app",a);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${b}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}},82720:(a,b,c)=>{"use strict";a.exports=c(33873)},83035:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return e}});let d=c(56467);function e(a,b,c,e){return(void 0===a||"0"===a)&&void 0===b&&void 0===c&&void 0===e?"":(0,d.hexHash)([a||"0",b||"0",c||"0",e||"0"].join(","))}},83158:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={stripInternalQueries:function(){return h},stripInternalSearchParams:function(){return i}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(54362),g=[f.NEXT_RSC_UNION_QUERY];function h(a){for(let b of g)delete a[b]}function i(a){let b="string"==typeof a,c=b?new URL(a):a;return c.searchParams.delete(f.NEXT_RSC_UNION_QUERY),b?c.toString():c}},83767:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={assign:function(){return h},searchParamsToUrlQuery:function(){return e},urlQueryToSearchParams:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a){let b={};for(let[c,d]of a.entries()){let a=b[c];void 0===a?b[c]=d:Array.isArray(a)?a.push(d):b[c]=[a,d]}return b}function f(a){return"string"==typeof a?a:("number"!=typeof a||isNaN(a))&&"boolean"!=typeof a?"":String(a)}function g(a){let b=new URLSearchParams;for(let[c,d]of Object.entries(a))if(Array.isArray(d))for(let a of d)b.append(c,f(a));else b.set(c,f(d));return b}function h(a,...b){for(let c of b){for(let b of c.keys())a.delete(b);for(let[b,d]of c.entries())a.append(b,d)}return a}},85495:a=>{"use strict";a.exports=function(a){if(null===a||"object"!=typeof a)return a;if(a instanceof Object)var c={__proto__:b(a)};else var c=Object.create(null);return Object.getOwnPropertyNames(a).forEach(function(b){Object.defineProperty(c,b,Object.getOwnPropertyDescriptor(a,b))}),c};var b=Object.getPrototypeOf||function(a){return a.__proto__}},85676:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"after",{enumerable:!0,get:function(){return e}});let d=c(29294);function e(a){let b=d.workAsyncStorage.getStore();if(!b)throw Object.defineProperty(Error("`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context"),"__NEXT_ERROR_CODE",{value:"E468",enumerable:!1,configurable:!0});let{afterContext:c}=b;return c.after(a)}},85993:(a,b)=>{"use strict";function c(a,b,c){if(a){for(let d of(c&&(c=c.toLowerCase()),a))if(b===d.domain?.split(":",1)[0].toLowerCase()||c===d.defaultLocale.toLowerCase()||d.locales?.some(a=>a.toLowerCase()===c))return d}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"detectDomainLocale",{enumerable:!0,get:function(){return c}})},88095:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={ActionDidNotRevalidate:function(){return e},ActionDidRevalidateDynamicOnly:function(){return g},ActionDidRevalidateStaticAndDynamic:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=0,f=1,g=2},88255:(a,b,c)=>{"use strict";function d(a){if("function"!=typeof WeakMap)return null;var b=new WeakMap,c=new WeakMap;return(d=function(a){return a?c:b})(a)}function e(a,b){if(!b&&a&&a.__esModule)return a;if(null===a||"object"!=typeof a&&"function"!=typeof a)return{default:a};var c=d(b);if(c&&c.has(a))return c.get(a);var e={__proto__:null},f=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var g in a)if("default"!==g&&Object.prototype.hasOwnProperty.call(a,g)){var h=f?Object.getOwnPropertyDescriptor(a,g):null;h&&(h.get||h.set)?Object.defineProperty(e,g,h):e[g]=a[g]}return e.default=a,c&&c.set(a,e),e}c.r(b),c.d(b,{_:()=>e})},89202:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"ENCODED_TAGS",{enumerable:!0,get:function(){return c}});let c={OPENING:{HTML:new Uint8Array([60,104,116,109,108]),HEAD:new Uint8Array([60,104,101,97,100]),BODY:new Uint8Array([60,98,111,100,121])},CLOSED:{HEAD:new Uint8Array([60,47,104,101,97,100,62]),BODY:new Uint8Array([60,47,98,111,100,121,62]),HTML:new Uint8Array([60,47,104,116,109,108,62]),BODY_AND_HTML:new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62])},META:{ICON_MARK:new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34])}}},89570:(a,b)=>{"use strict";function c(a){return a.replace(/\/$/,"")||"/"}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"removeTrailingSlash",{enumerable:!0,get:function(){return c}})},90676:(a,b,c)=>{var d,e={226:function(e,f){!function(g){"use strict";var h="function",i="undefined",j="object",k="string",l="major",m="model",n="name",o="type",p="vendor",q="version",r="architecture",s="console",t="mobile",u="tablet",v="smarttv",w="wearable",x="embedded",y="Amazon",z="Apple",A="ASUS",B="BlackBerry",C="Browser",D="Chrome",E="Firefox",F="Google",G="Huawei",H="Microsoft",I="Motorola",J="Opera",K="Samsung",L="Sharp",M="Sony",N="Xiaomi",O="Zebra",P="Facebook",Q="Chromium OS",R="Mac OS",S=function(a,b){var c={};for(var d in a)b[d]&&b[d].length%2==0?c[d]=b[d].concat(a[d]):c[d]=a[d];return c},T=function(a){for(var b={},c=0;c0?2===f.length?typeof f[1]==h?this[f[0]]=f[1].call(this,i):this[f[0]]=f[1]:3===f.length?typeof f[1]!==h||f[1].exec&&f[1].test?this[f[0]]=i?i.replace(f[1],f[2]):void 0:this[f[0]]=i?f[1].call(this,i,f[2]):void 0:4===f.length&&(this[f[0]]=i?f[3].call(this,i.replace(f[1],f[2])):void 0):this[f]=i||void 0;k+=2}},Y=function(a,b){for(var c in b)if(typeof b[c]===j&&b[c].length>0){for(var d=0;d2&&(a[m]="iPad",a[o]=u),a},this.getEngine=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.engine),a},this.getOS=function(){var a={};return a[n]=void 0,a[q]=void 0,X.call(a,d,f.os),s&&!a[n]&&e&&"Unknown"!=e.platform&&(a[n]=e.platform.replace(/chrome os/i,Q).replace(/macos/i,R)),a},this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}},this.getUA=function(){return d},this.setUA=function(a){return d=typeof a===k&&a.length>350?W(a,350):a,this},this.setUA(d),this};_.VERSION="1.0.35",_.BROWSER=T([n,q,l]),_.CPU=T([r]),_.DEVICE=T([m,p,o,s,t,v,u,w,x]),_.ENGINE=_.OS=T([n,q]),typeof f!==i?(e.exports&&(f=e.exports=_),f.UAParser=_):c.amdO?void 0===(d=(function(){return _}).call(b,c,b,a))||(a.exports=d):typeof g!==i&&(g.UAParser=_);var aa=typeof g!==i&&(g.jQuery||g.Zepto);if(aa&&!aa.ua){var ab=new _;aa.ua=ab.getResult(),aa.ua.get=function(){return ab.getUA()},aa.ua.set=function(a){ab.setUA(a);var b=ab.getResult();for(var c in b)aa.ua[c]=b[c]}}}("object"==typeof window?window:this)}},f={};function g(a){var b=f[a];if(void 0!==b)return b.exports;var c=f[a]={exports:{}},d=!0;try{e[a].call(c.exports,c,c.exports,g),d=!1}finally{d&&delete f[a]}return c.exports}g.ab=__dirname+"/",a.exports=g(226)},90744:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"Batcher",{enumerable:!0,get:function(){return e}});let d=c(9367);class e{constructor(a,b=a=>a()){this.cacheKeyFn=a,this.schedulerFn=b,this.pending=new Map}static create(a){return new e(null==a?void 0:a.cacheKeyFn,null==a?void 0:a.schedulerFn)}async batch(a,b){let c=this.cacheKeyFn?await this.cacheKeyFn(a):a;if(null===c)return b({resolve:a=>Promise.resolve(a),key:a});let e=this.pending.get(c);if(e)return e;let{promise:f,resolve:g,reject:h}=new d.DetachedPromise;return this.pending.set(c,f),this.schedulerFn(async()=>{try{let c=await b({resolve:g,key:a});g(c)}catch(a){h(a)}finally{this.pending.delete(c)}}),f}}},91551:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={isNodeNextRequest:function(){return g},isNodeNextResponse:function(){return h},isWebNextRequest:function(){return e},isWebNextResponse:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=a=>!1,f=a=>!1,g=a=>!0,h=a=>!0},91688:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={ApiError:function(){return t},COOKIE_NAME_PRERENDER_BYPASS:function(){return n},COOKIE_NAME_PRERENDER_DATA:function(){return o},RESPONSE_LIMIT_DEFAULT:function(){return p},SYMBOL_CLEARED_COOKIES:function(){return r},SYMBOL_PREVIEW_DATA:function(){return q},checkIsOnDemandRevalidate:function(){return m},clearPreviewData:function(){return s},redirect:function(){return l},sendError:function(){return u},sendStatusCode:function(){return k},setLazyProp:function(){return v},wrapApiHandler:function(){return j}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(10098),g=c(71286),h=c(56268),i=c(81400);function j(a,b){return(...c)=>((0,h.getTracer)().setRootSpanAttribute("next.route",a),(0,h.getTracer)().trace(i.NodeSpan.runHandler,{spanName:`executing api route (pages) ${a}`},()=>b(...c)))}function k(a,b){return a.statusCode=b,a}function l(a,b,c){if("string"==typeof b&&(c=b,b=307),"number"!=typeof b||"string"!=typeof c)throw Object.defineProperty(Error("Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination')."),"__NEXT_ERROR_CODE",{value:"E389",enumerable:!1,configurable:!0});return a.writeHead(b,{Location:c}),a.write(c),a.end(),a}function m(a,b){let c=f.HeadersAdapter.from(a.headers);return{isOnDemandRevalidate:c.get(g.PRERENDER_REVALIDATE_HEADER)===b.previewModeId,revalidateOnlyGenerated:c.has(g.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER)}}let n="__prerender_bypass",o="__next_preview_data",p=4194304,q=Symbol(o),r=Symbol(n);function s(a,b={}){if(r in a)return a;let{serialize:d}=c(59454),e=a.getHeader("Set-Cookie");return a.setHeader("Set-Cookie",[..."string"==typeof e?[e]:Array.isArray(e)?e:[],d(n,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0}),d(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==b.path?{path:b.path}:void 0})]),Object.defineProperty(a,r,{value:!0,enumerable:!1}),a}class t extends Error{constructor(a,b){super(b),this.statusCode=a}}function u(a,b,c){a.statusCode=b,a.statusMessage=c,a.end(c)}function v({req:a},b,c){let d={configurable:!0,enumerable:!0},e={...d,writable:!0};Object.defineProperty(a,b,{...d,get:()=>{let d=c();return Object.defineProperty(a,b,{...e,value:d}),d},set:c=>{Object.defineProperty(a,b,{...e,value:c})}})}},92032:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={METADATA_BOUNDARY_NAME:function(){return e},OUTLET_BOUNDARY_NAME:function(){return g},ROOT_LAYOUT_BOUNDARY_NAME:function(){return h},VIEWPORT_BOUNDARY_NAME:function(){return f}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e="__next_metadata_boundary__",f="__next_viewport_boundary__",g="__next_outlet_boundary__",h="__next_root_layout_boundary__"},92690:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d,e,f,g={DynamicHoleKind:function(){return $},Postpone:function(){return D},PreludeState:function(){return af},abortAndThrowOnSynchronousRequestDataAccess:function(){return C},abortOnSynchronousPlatformIOAccess:function(){return B},accessedDynamicData:function(){return L},annotateDynamicAccess:function(){return Q},consumeDynamicAccess:function(){return M},createDynamicTrackingState:function(){return u},createDynamicValidationState:function(){return v},createHangingInputAbortSignal:function(){return P},createInstantValidationState:function(){return _},createRenderInBrowserAbortSignal:function(){return O},formatDynamicAPIAccesses:function(){return N},getFirstDynamicReason:function(){return w},getNavigationDisallowedDynamicReasons:function(){return aj},getStaticShellDisallowedDynamicReasons:function(){return ai},isDynamicPostpone:function(){return G},isPrerenderInterruptedError:function(){return K},logDisallowedDynamicError:function(){return ag},markCurrentScopeAsDynamic:function(){return x},postponeWithTracking:function(){return E},throwIfDisallowedDynamic:function(){return ah},throwToInterruptStaticGeneration:function(){return y},trackAllowedDynamicAccess:function(){return Z},trackDynamicDataInDynamicRender:function(){return z},trackDynamicHoleInNavigation:function(){return aa},trackDynamicHoleInRuntimeShell:function(){return ac},trackDynamicHoleInStaticShell:function(){return ad},trackThrownErrorInNavigation:function(){return ab},useDynamicRouteParams:function(){return R},useDynamicSearchParams:function(){return S}};for(var h in g)Object.defineProperty(b,h,{enumerable:!0,get:g[h]});let i=(d=c(35773))&&d.__esModule?d:{default:d},j=c(36800),k=c(63290),l=c(63033),m=c(29294),n=c(16993),o=c(92032),p=c(43950),q=c(1899),r=c(93402),s=c(17052),t="function"==typeof i.default.unstable_postpone;function u(a){return{isDebugDynamicAccesses:a,dynamicAccesses:[],syncDynamicErrorWithStack:null}}function v(){return{hasSuspenseAboveBody:!1,hasDynamicMetadata:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[]}}function w(a){var b;return null==(b=a.dynamicAccesses[0])?void 0:b.expression}function x(a,b,c){if(b)switch(b.type){case"cache":case"unstable-cache":case"private-cache":return}if(!a.forceDynamic&&!a.forceStatic){if(a.dynamicShouldError)throw Object.defineProperty(new k.StaticGenBailoutError(`Route ${a.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${c}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(b)switch(b.type){case"prerender-ppr":return E(a.route,c,b.dynamicTracking);case"prerender-legacy":b.revalidate=0;let d=Object.defineProperty(new j.DynamicServerError(`Route ${a.route} couldn't be rendered statically because it used ${c}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E550",enumerable:!1,configurable:!0});throw a.dynamicUsageDescription=c,a.dynamicUsageStack=d.stack,d}}}function y(a,b,c){let d=Object.defineProperty(new j.DynamicServerError(`Route ${b.route} couldn't be rendered statically because it used \`${a}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw c.revalidate=0,b.dynamicUsageDescription=a,b.dynamicUsageStack=d.stack,d}function z(a){switch(a.type){case"cache":case"unstable-cache":case"private-cache":return}}function A(a,b,c){let d=J(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`);c.controller.abort(d);let e=c.dynamicTracking;e&&e.dynamicAccesses.push({stack:e.isDebugDynamicAccesses?Error().stack:void 0,expression:b})}function B(a,b,c,d){let e=d.dynamicTracking;A(a,b,d),e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}function C(a,b,c,d){if(!1===d.controller.signal.aborted){A(a,b,d);let e=d.dynamicTracking;e&&null===e.syncDynamicErrorWithStack&&(e.syncDynamicErrorWithStack=c)}throw J(`Route ${a} needs to bail out of prerendering at this point because it used ${b}.`)}function D({reason:a,route:b}){let c=l.workUnitAsyncStorage.getStore();E(b,a,c&&"prerender-ppr"===c.type?c.dynamicTracking:null)}function E(a,b,c){(function(){if(!t)throw Object.defineProperty(Error("Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E224",enumerable:!1,configurable:!0})})(),c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:b}),i.default.unstable_postpone(F(a,b))}function F(a,b){return`Route ${a} needs to bail out of prerendering at this point because it used ${b}. React throws this special object to indicate where. It should not be caught by your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`}function G(a){return"object"==typeof a&&null!==a&&"string"==typeof a.message&&H(a.message)}function H(a){return a.includes("needs to bail out of prerendering at this point because it used")&&a.includes("Learn more: https://nextjs.org/docs/messages/ppr-caught-error")}if(!1===H(F("%%%","^^^")))throw Object.defineProperty(Error("Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E296",enumerable:!1,configurable:!0});let I="NEXT_PRERENDER_INTERRUPTED";function J(a){let b=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return b.digest=I,b}function K(a){return"object"==typeof a&&null!==a&&a.digest===I&&"name"in a&&"message"in a&&a instanceof Error}function L(a){return a.length>0}function M(a,b){return a.dynamicAccesses.push(...b.dynamicAccesses),a.dynamicAccesses}function N(a){return a.filter(a=>"string"==typeof a.stack&&a.stack.length>0).map(({expression:a,stack:b})=>(b=b.split("\n").slice(4).filter(a=>!(a.includes("node_modules/next/")||a.includes(" ()")||a.includes(" (node:"))).join("\n"),`Dynamic API Usage Debug - ${a}: +${b}`))}function O(){let a=new AbortController;return a.abort(Object.defineProperty(new q.BailoutToCSRError("Render in Browser"),"__NEXT_ERROR_CODE",{value:"E721",enumerable:!1,configurable:!0})),a.signal}function P(a){switch(a.type){case"prerender":case"prerender-runtime":let b=new AbortController;if(a.cacheSignal)a.cacheSignal.inputReady().then(()=>{b.abort()});else if("prerender-runtime"===a.type&&a.stagedRendering){let{stagedRendering:c}=a;c.waitForStage((0,n.getRuntimeStage)(c)).then(()=>(0,p.scheduleOnNextTick)(()=>b.abort()))}else(0,p.scheduleOnNextTick)(()=>b.abort());return b.signal;case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"request":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":return}}function Q(a,b){let c=b.dynamicTracking;c&&c.dynamicAccesses.push({stack:c.isDebugDynamicAccesses?Error().stack:void 0,expression:a})}function R(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b&&c)switch(c.type){case"prerender-client":case"prerender":{let d=c.fallbackRouteParams;d&&d.size>0&&i.default.use((0,n.makeHangingPromise)(c.renderSignal,b.route,a));break}case"prerender-ppr":{let d=c.fallbackRouteParams;if(d&&d.size>0)return E(b.route,a,c.dynamicTracking);break}case"validation-client":case"prerender-legacy":case"request":case"unstable-cache":break;case"prerender-runtime":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called during a runtime prerender. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E771",enumerable:!1,configurable:!0});case"cache":case"private-cache":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}function S(a){let b=m.workAsyncStorage.getStore(),c=l.workUnitAsyncStorage.getStore();if(b)switch(!c&&(0,l.throwForMissingRequestStore)(a),c.type){case"validation-client":case"request":return;case"prerender-client":i.default.use((0,n.makeHangingPromise)(c.renderSignal,b.route,a));break;case"prerender-legacy":case"prerender-ppr":if(b.forceStatic)return;throw Object.defineProperty(new q.BailoutToCSRError(a),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});case"prerender":case"prerender-runtime":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called from a Server Component. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E795",enumerable:!1,configurable:!0});case"cache":case"unstable-cache":case"private-cache":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called inside a cache scope. Next.js should be preventing ${a} from being included in server components statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E745",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new r.InvariantError(`\`${a}\` was called in \`generateStaticParams\`. Next.js should be preventing ${a} from being included in server component files statically, but did not in this case.`),"__NEXT_ERROR_CODE",{value:"E1130",enumerable:!1,configurable:!0})}}let T=/\n\s+at Suspense \(\)/,U=RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at ${o.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`),V=RegExp(`\\n\\s+at ${o.METADATA_BOUNDARY_NAME}[\\n\\s]`),W=RegExp(`\\n\\s+at ${o.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`),X=RegExp(`\\n\\s+at ${o.OUTLET_BOUNDARY_NAME}[\\n\\s]`),Y=RegExp(`\\n\\s+at ${s.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`);function Z(a,b,c,d){if(!X.test(b)){if(V.test(b)){c.hasDynamicMetadata=!0;return}if(W.test(b)){c.hasDynamicViewport=!0;return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(T.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Uncached data was accessed outside of . This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1079",enumerable:!1,configurable:!0}),b,null);return void c.dynamicErrors.push(e)}}}var $=((e={})[e.Runtime=1]="Runtime",e[e.Dynamic=2]="Dynamic",e);function _(a){return{hasDynamicMetadata:!1,hasAllowedClientDynamicAboveBoundary:!1,dynamicMetadata:null,hasDynamicViewport:!1,hasAllowedDynamic:!1,dynamicErrors:[],validationPreventingErrors:[],thrownErrorsOutsideBoundary:[],createInstantStack:a}}function aa(a,b,c,d,e,f){if(X.test(b))return;if(V.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateMetadata` or you have file-based metadata such as icons that depend on dynamic params segments.":"Uncached data or `connection()` was accessed inside `generateMetadata`."} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1076",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicMetadata=d;return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": ${1===e?"Runtime data such as `cookies()`, `headers()`, `params`, or `searchParams` was accessed inside `generateViewport`.":"Uncached data or `connection()` was accessed inside `generateViewport`."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1086",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicErrors.push(d);return}let g=Y.exec(b);if(g){let a=T.exec(b);if(a&&a.index`.":"Uncached data or `connection()` was accessed outside of ``."} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1078",enumerable:!1,configurable:!0}),b,c.createInstantStack);c.dynamicErrors.push(h)}function ab(a,b,c,d){let e=Y.exec(d);if(e){let f=T.exec(d);if(f&&f.index\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1084",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(e)}function ad(a,b,c,d){if(!X.test(b)){if(V.test(b)){c.dynamicMetadata=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`),"__NEXT_ERROR_CODE",{value:"E1085",enumerable:!1,configurable:!0}),b,null);return}if(W.test(b)){let d=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`),"__NEXT_ERROR_CODE",{value:"E1081",enumerable:!1,configurable:!0}),b,null);c.dynamicErrors.push(d);return}if(U.test(b)){c.hasAllowedDynamic=!0,c.hasSuspenseAboveBody=!0;return}else if(T.test(b)){c.hasAllowedDynamic=!0;return}else{if(d.syncDynamicErrorWithStack)return void c.dynamicErrors.push(d.syncDynamicErrorWithStack);let e=ae(Object.defineProperty(Error(`Route "${a.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`),"__NEXT_ERROR_CODE",{value:"E1083",enumerable:!1,configurable:!0}),b,null);return void c.dynamicErrors.push(e)}}}function ae(a,b,c){return null!==c&&(a.cause=c()),a.stack=a.name+": "+a.message+b,a}var af=((f={})[f.Full=0]="Full",f[f.Empty=1]="Empty",f[f.Errored=2]="Errored",f);function ag(a,b){console.error(b),console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${a.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`)}function ah(a,b,c,d){if(d.syncDynamicErrorWithStack)throw ag(a,d.syncDynamicErrorWithStack),new k.StaticGenBailoutError;if(0!==b){if(c.hasSuspenseAboveBody)return;let d=c.dynamicErrors;if(d.length>0){for(let b=0;b0)return d;if(1===b)return[Object.defineProperty(new r.InvariantError(`Route "${a.route}" did not produce a static shell and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E936",enumerable:!1,configurable:!0})]}else if(!1===c.hasAllowedDynamic&&0===c.dynamicErrors.length&&c.dynamicMetadata)return[c.dynamicMetadata];return[]}function aj(a,b,c,d,e){if(d){let{missingSampleErrors:a}=d;if(a.length>0)return a}let{validationPreventingErrors:f}=c;if(f.length>0)return f;if(e.renderedIds.size0)return d;if(1===b)return c.hasAllowedClientDynamicAboveBoundary?[]:[Object.defineProperty(new r.InvariantError(`Route "${a.route}" failed to render during instant validation and Next.js was unable to determine a reason.`),"__NEXT_ERROR_CODE",{value:"E1055",enumerable:!1,configurable:!0})]}else{let a=c.dynamicErrors;if(a.length>0)return a;if(!1===c.hasAllowedDynamic&&c.dynamicMetadata)return[c.dynamicMetadata]}return[]}},92959:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={getParamProperties:function(){return i},getSegmentParam:function(){return g},isCatchAll:function(){return h}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(66072);function g(a){let b=f.INTERCEPTION_ROUTE_MARKERS.find(b=>a.startsWith(b));return(b&&(a=a.slice(b.length)),a.startsWith("[[...")&&a.endsWith("]]"))?{paramType:"optional-catchall",paramName:a.slice(5,-2)}:a.startsWith("[...")&&a.endsWith("]")?{paramType:b?`catchall-intercepted-${b}`:"catchall",paramName:a.slice(4,-1)}:a.startsWith("[")&&a.endsWith("]")?{paramType:b?`dynamic-intercepted-${b}`:"dynamic",paramName:a.slice(1,-1)}:null}function h(a){return"catchall"===a||"catchall-intercepted-(..)(..)"===a||"catchall-intercepted-(.)"===a||"catchall-intercepted-(..)"===a||"catchall-intercepted-(...)"===a||"optional-catchall"===a}function i(a){let b=!1,c=!1;switch(a){case"catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":b=!0;break;case"optional-catchall":b=!0,c=!0}return{repeat:b,optional:c}}},93402:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"InvariantError",{enumerable:!0,get:function(){return c}});class c extends Error{constructor(a,b){super(`Invariant: ${a.endsWith(".")?a:a+"."} This is a bug in Next.js.`,b),this.name="InvariantError"}}},93458:a=>{"use strict";let b=Symbol();a.exports.probe=function(a,c,d){let e=c[b];if(e)return c.stat(a,(a,b)=>{if(a)return d(a);d(null,b.mtime,e)});let f=new Date(1e3*Math.ceil(Date.now()/1e3)+5);c.utimes(a,f,f,e=>{if(e)return d(e);c.stat(a,(a,e)=>{if(a)return d(a);let f=e.mtime.getTime()%1e3==0?"s":"ms";Object.defineProperty(c,b,{value:f}),d(null,e.mtime,f)})})},a.exports.getMtime=function(a){let b=Date.now();return"s"===a&&(b=1e3*Math.ceil(b/1e3)),new Date(b)}},94735:a=>{"use strict";a.exports=require("events")},95676:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={DecodeError:function(){return q},MiddlewareNotFoundError:function(){return u},MissingStaticPage:function(){return t},NormalizeError:function(){return r},PageNotFoundError:function(){return s},SP:function(){return o},ST:function(){return p},WEB_VITALS:function(){return e},execOnce:function(){return f},getDisplayName:function(){return k},getLocationOrigin:function(){return i},getURL:function(){return j},isAbsoluteUrl:function(){return h},isResSent:function(){return l},loadGetInitialProps:function(){return n},normalizeRepeatedSlashes:function(){return m},stringifyError:function(){return v}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});let e=["CLS","FCP","FID","INP","LCP","TTFB"];function f(a){let b,c=!1;return(...d)=>(c||(c=!0,b=a(...d)),b)}let g=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,h=a=>g.test(a);function i(){let{protocol:a,hostname:b,port:c}=window.location;return`${a}//${b}${c?":"+c:""}`}function j(){let{href:a}=window.location,b=i();return a.substring(b.length)}function k(a){return"string"==typeof a?a:a.displayName||a.name||"Unknown"}function l(a){return a.finished||a.headersSent}function m(a){let b=a.split("?");return b[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(b[1]?`?${b.slice(1).join("?")}`:"")}async function n(a,b){let c=b.res||b.ctx&&b.ctx.res;if(!a.getInitialProps)return b.ctx&&b.Component?{pageProps:await n(b.Component,b.ctx)}:{};let d=await a.getInitialProps(b);if(c&&l(c))return d;if(!d)throw Object.defineProperty(Error(`"${k(a)}.getInitialProps()" should resolve to an object. But found "${d}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return d}let o="u">typeof performance,p=o&&["mark","measure","getEntriesByName"].every(a=>"function"==typeof performance[a]);class q extends Error{}class r extends Error{}class s extends Error{constructor(a){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${a}`}}class t extends Error{constructor(a,b){super(),this.message=`Failed to load static file for page: ${a} ${b}`}}class u extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function v(a){return JSON.stringify({message:a.message,stack:a.stack})}},97538:a=>{"use strict";a.exports=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js")},98907:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={INTERNALS:function(){return j},NextRequest:function(){return k}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(23451),g=c(18977),h=c(18904),i=c(65597),j=Symbol("internal request");class k extends Request{constructor(a,b={}){const c="string"!=typeof a&&"url"in a?a.url:String(a);(0,g.validateURL)(c),b.body&&"half"!==b.duplex&&(b.duplex="half"),a instanceof Request?super(a,b):super(c,b);const d=new f.NextURL(c,{headers:(0,g.toNodeOutgoingHttpHeaders)(this.headers),nextConfig:b.nextConfig});this[j]={cookies:new i.RequestCookies(this.headers),nextUrl:d,url:d.toString()}}[Symbol.for("edge-runtime.inspect.custom")](){return{cookies:this.cookies,nextUrl:this.nextUrl,url:this.url,bodyUsed:this.bodyUsed,cache:this.cache,credentials:this.credentials,destination:this.destination,headers:Object.fromEntries(this.headers),integrity:this.integrity,keepalive:this.keepalive,method:this.method,mode:this.mode,redirect:this.redirect,referrer:this.referrer,referrerPolicy:this.referrerPolicy,signal:this.signal}}get cookies(){return this[j].cookies}get nextUrl(){return this[j].nextUrl}get page(){throw new h.RemovedPageError}get ua(){throw new h.RemovedUAError}get url(){return this[j].url}}},98985:(a,b,c)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var d={compileNonPath:function(){return m},matchHas:function(){return l},parseDestination:function(){return n},prepareDestination:function(){return o}};for(var e in d)Object.defineProperty(b,e,{enumerable:!0,get:d[e]});let f=c(68530),g=c(798),h=c(66072),i=c(13449),j=c(46676);function k(a){return a.replace(/__ESC_COLON_/gi,":")}function l(a,b,c=[],d=[]){let e={},f=c=>{let d,f=c.key;switch(c.type){case"header":f=f.toLowerCase(),d=a.headers[f];break;case"cookie":d="cookies"in a?a.cookies[c.key]:(0,i.getCookieParser)(a.headers)()[c.key];break;case"query":d=b[f];break;case"host":{let{host:b}=a?.headers||{};d=b?.split(":",1)[0].toLowerCase()}}if(!c.value&&d)return e[function(a){let b="";for(let c=0;c64&&d<91||d>96&&d<123)&&(b+=a[c])}return b}(f)]=d,!0;if(d){let a=RegExp(`^${c.value}$`),b=Array.isArray(d)?d.slice(-1)[0].match(a):d.match(a);if(b)return Array.isArray(b)&&(b.groups?Object.keys(b.groups).forEach(a=>{e[a]=b.groups[a]}):"host"===c.type&&b[0]&&(e.host=b[0])),!0}return!1};return!(!c.every(a=>f(a))||d.some(a=>f(a)))&&e}function m(a,b){if(!a.includes(":"))return a;for(let c of Object.keys(b))a.includes(`:${c}`)&&(a=a.replace(RegExp(`:${c}\\*`,"g"),`:${c}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${c}\\?`,"g"),`:${c}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${c}\\+`,"g"),`:${c}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${c}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${c}`));return a=a.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),(0,j.safeCompile)(`/${a}`,{validate:!1})(b).slice(1)}function n(a){let b=a.destination;for(let c of Object.keys({...a.params,...a.query}))c&&(b=b.replace(RegExp(`:${(0,f.escapeStringRegexp)(c)}`,"g"),`__ESC_COLON_${c}`));let c=(0,g.parseUrl)(b),d=c.pathname;d&&(d=k(d));let e=c.href;e&&(e=k(e));let h=c.hostname;h&&(h=k(h));let i=c.hash;i&&(i=k(i));let j=c.search;j&&(j=k(j));let l=c.origin;return l&&(l=k(l)),{...c,pathname:d,hostname:h,href:e,hash:i,search:j,origin:l}}function o(a){let b,c,d=n(a),{hostname:e,query:f,search:g}=d,i=d.pathname;d.hash&&(i=`${i}${d.hash}`);let l=[],o=[];for(let a of((0,j.safePathToRegexp)(i,o),o))l.push(a.name);if(e){let a=[];for(let b of((0,j.safePathToRegexp)(e,a),a))l.push(b.name)}let p=(0,j.safeCompile)(i,{validate:!1});for(let[c,d]of(e&&(b=(0,j.safeCompile)(e,{validate:!1})),Object.entries(f)))Array.isArray(d)?f[c]=d.map(b=>m(k(b),a.params)):"string"==typeof d&&(f[c]=m(k(d),a.params));let q=Object.keys(a.params).filter(a=>"nextInternalLocale"!==a);if(a.appendParamsToQuery&&!q.some(a=>l.includes(a)))for(let b of q)b in f||(f[b]=a.params[b]);if((0,h.isInterceptionRouteAppPath)(i))for(let b of i.split("/")){let c=h.INTERCEPTION_ROUTE_MARKERS.find(a=>b.startsWith(a));if(c){"(..)(..)"===c?(a.params["0"]="(..)",a.params["1"]="(..)"):a.params["0"]=c;break}}try{let[e,f]=(c=p(a.params)).split("#",2);b&&(d.hostname=b(a.params)),d.pathname=e,d.hash=`${f?"#":""}${f||""}`,d.search=g?m(g,a.params):""}catch(a){if(a.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw a}return d.query={...a.query,...d.query},{newUrl:c,destQuery:f,parsedDestination:d}}},99541:(a,b)=>{"use strict";Object.defineProperty(b,"__esModule",{value:!0});var c={indexOfUint8Array:function(){return e},isEquivalentUint8Arrays:function(){return f},removeFromUint8Array:function(){return g}};for(var d in c)Object.defineProperty(b,d,{enumerable:!0,get:c[d]});function e(a,b){if(0===b.length)return 0;if(0===a.length||b.length>a.length)return -1;if("u">typeof Buffer)return(Buffer.isBuffer(a)?a:Buffer.from(a.buffer,a.byteOffset,a.byteLength)).indexOf(b);for(let c=0;c<=a.length-b.length;c++){let d=!0;for(let e=0;e-1))return a;{let d=new Uint8Array(a.length-b.length);return d.set(a.subarray(0,c)),d.set(a.subarray(c+b.length),c),d}}},99984:(a,b)=>{"use strict";function c(a){switch(a){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}Object.defineProperty(b,"__esModule",{value:!0}),Object.defineProperty(b,"interceptionPrefixFromParamType",{enumerable:!0,get:function(){return c}})}};var b=require("./webpack-runtime.js");b.C(a);var c=b(b.s=40631);module.exports=c})(); \ No newline at end of file diff --git a/cli/app/.next/server/next-font-manifest.js b/cli/app/.next/server/next-font-manifest.js new file mode 100644 index 00000000000..aa7bc29caa2 --- /dev/null +++ b/cli/app/.next/server/next-font-manifest.js @@ -0,0 +1 @@ +self.__NEXT_FONT_MANIFEST='{"pages":{},"app":{"/Users/Working/router4/app/src/app/layout":["static/media/e4af272ccee01ff0-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false}'; \ No newline at end of file diff --git a/cli/app/.next/server/next-font-manifest.json b/cli/app/.next/server/next-font-manifest.json new file mode 100644 index 00000000000..0d74737dc0f --- /dev/null +++ b/cli/app/.next/server/next-font-manifest.json @@ -0,0 +1 @@ +{"pages":{},"app":{"/Users/Working/router4/app/src/app/layout":["static/media/e4af272ccee01ff0-s.p.woff2"]},"appUsingSizeAdjust":true,"pagesUsingSizeAdjust":false} \ No newline at end of file diff --git a/cli/app/.next/server/pages-manifest.json b/cli/app/.next/server/pages-manifest.json new file mode 100644 index 00000000000..6a2cf434327 --- /dev/null +++ b/cli/app/.next/server/pages-manifest.json @@ -0,0 +1,4 @@ +{ + "/404": "pages/404.html", + "/500": "pages/500.html" +} \ No newline at end of file diff --git a/cli/app/.next/server/pages/404.html b/cli/app/.next/server/pages/404.html new file mode 100644 index 00000000000..4dbc69c7c5c --- /dev/null +++ b/cli/app/.next/server/pages/404.html @@ -0,0 +1 @@ +404: This page could not be found.9Router - AI Infrastructure Management

404

This page could not be found.

\ No newline at end of file diff --git a/cli/app/.next/server/pages/500.html b/cli/app/.next/server/pages/500.html new file mode 100644 index 00000000000..ac0ee6df8bb --- /dev/null +++ b/cli/app/.next/server/pages/500.html @@ -0,0 +1 @@ +500: This page couldn’t load

This page couldn’t load

A server error occurred. Reload to try again.

\ No newline at end of file diff --git a/cli/app/.next/server/prefetch-hints.json b/cli/app/.next/server/prefetch-hints.json new file mode 100644 index 00000000000..9e26dfeeb6e --- /dev/null +++ b/cli/app/.next/server/prefetch-hints.json @@ -0,0 +1 @@ +{} \ No newline at end of file diff --git a/cli/app/.next/server/server-reference-manifest.js b/cli/app/.next/server/server-reference-manifest.js new file mode 100644 index 00000000000..3589f652363 --- /dev/null +++ b/cli/app/.next/server/server-reference-manifest.js @@ -0,0 +1 @@ +self.__RSC_SERVER_MANIFEST="{\"node\":{\"4078a2380d185e5db9d344be8a92e6873cf30c1b36\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"36274\",\"async\":false}},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"GET\"},\"40a937d31604b64cfb12144366fc627f6948942dcb\":{\"workers\":{\"app/api/cli-tools/antigravity-mitm/alias/route\":{\"moduleId\":\"36274\",\"async\":false}},\"filename\":\"app/api/cli-tools/antigravity-mitm/alias/route.js\",\"exportedName\":\"PUT\"},\"004addfe77c08777b9e567a3a2c74433b6d273ecf5\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"61935\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"GET\"},\"0063c4c2e69585bc4ea25ebbfcd5611d003988f618\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"61935\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"DELETE\"},\"40b9d31c67b3027add9fd8b4c314711cc2fc51b734\":{\"workers\":{\"app/api/cli-tools/claude-settings/route\":{\"moduleId\":\"61935\",\"async\":false}},\"filename\":\"app/api/cli-tools/claude-settings/route.js\",\"exportedName\":\"POST\"},\"003f081365ffb7f0fc04c58d2de54ce4ac9a844d5d\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"13897\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"DELETE\"},\"0065e34dd5d77a4a3d14fe758c5cc2fd36349d3262\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"13897\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"GET\"},\"405132466c0ed027510c0c6f9d358a392eb348aa4e\":{\"workers\":{\"app/api/cli-tools/codex-settings/route\":{\"moduleId\":\"13897\",\"async\":false}},\"filename\":\"app/api/cli-tools/codex-settings/route.js\",\"exportedName\":\"POST\"},\"0026af6c87082dff5e4d38a0763d266211aeff4e0f\":{\"workers\":{\"app/api/cli-tools/copilot-settings/route\":{\"moduleId\":\"55233\",\"async\":false}},\"filename\":\"app/api/cli-tools/copilot-settings/route.js\",\"exportedName\":\"GET\"},\"00f09e471d39080525851ae8f23903e1d749e1d619\":{\"workers\":{\"app/api/cli-tools/copilot-settings/route\":{\"moduleId\":\"55233\",\"async\":false}},\"filename\":\"app/api/cli-tools/copilot-settings/route.js\",\"exportedName\":\"DELETE\"},\"40a275d6aac0cebe46a54d9be5d091c39d482049e5\":{\"workers\":{\"app/api/cli-tools/copilot-settings/route\":{\"moduleId\":\"55233\",\"async\":false}},\"filename\":\"app/api/cli-tools/copilot-settings/route.js\",\"exportedName\":\"POST\"},\"409e1307868cd2973b8c82b8cf2bb3543300c1c085\":{\"workers\":{\"app/api/cli-tools/cowork-mcp-registry/route\":{\"moduleId\":\"44198\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-mcp-registry/route.js\",\"exportedName\":\"GET\"},\"00160511706990bbe01dd8036c5c8cc33c9b157aaf\":{\"workers\":{\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"99709\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"DELETE\"},\"00899530af7bd797b6b0e26f580c38e29e82d3c474\":{\"workers\":{\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"99709\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"GET\"},\"40a06f24a5114e11489a892a599e64053e534a00b0\":{\"workers\":{\"app/api/cli-tools/cowork-settings/route\":{\"moduleId\":\"99709\",\"async\":false}},\"filename\":\"app/api/cli-tools/cowork-settings/route.js\",\"exportedName\":\"POST\"},\"00081696414627e0360ac23da5754fdb662b9cdd98\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"36906\",\"async\":false}},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"DELETE\"},\"002f464ab09d187fe5ca6c27ef250e14f3c7d87138\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"36906\",\"async\":false}},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"GET\"},\"40c2933a21e82221a7c89f37f580b92be1ca9b6bd7\":{\"workers\":{\"app/api/cli-tools/droid-settings/route\":{\"moduleId\":\"36906\",\"async\":false}},\"filename\":\"app/api/cli-tools/droid-settings/route.js\",\"exportedName\":\"POST\"},\"00153d06c353563c3cfbc5189bd1740182c2d6c3bd\":{\"workers\":{\"app/api/cli-tools/hermes-settings/route\":{\"moduleId\":\"69134\",\"async\":false}},\"filename\":\"app/api/cli-tools/hermes-settings/route.js\",\"exportedName\":\"DELETE\"},\"0054998d0e0575a1cc2403bec46ab7f66b3e253c51\":{\"workers\":{\"app/api/cli-tools/hermes-settings/route\":{\"moduleId\":\"69134\",\"async\":false}},\"filename\":\"app/api/cli-tools/hermes-settings/route.js\",\"exportedName\":\"GET\"},\"40eb3fd1cb411590acb0b4fb0599099e1042daf735\":{\"workers\":{\"app/api/cli-tools/hermes-settings/route\":{\"moduleId\":\"69134\",\"async\":false}},\"filename\":\"app/api/cli-tools/hermes-settings/route.js\",\"exportedName\":\"POST\"},\"0034bb26a501bddec0558f525918e4ffa90b740e56\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"27799\",\"async\":false}},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"DELETE\"},\"00c431ac0a42cc98605b2dea6428bed43c727780f5\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"27799\",\"async\":false}},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"GET\"},\"40b3fb1cff1a7c2735872030c41a370652d7181e60\":{\"workers\":{\"app/api/cli-tools/openclaw-settings/route\":{\"moduleId\":\"27799\",\"async\":false}},\"filename\":\"app/api/cli-tools/openclaw-settings/route.js\",\"exportedName\":\"POST\"},\"008db9df614355a5563e33299d9b3b0856f2cd4afa\":{\"workers\":{\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"94709\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"GET\"},\"4061ff2beedf8de739155fc38e246aec0c3c0d4b0c\":{\"workers\":{\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"94709\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"POST\"},\"4071acff606ed5ec58b015cda9ec830bbee823002d\":{\"workers\":{\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"94709\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"PATCH\"},\"40f70769a2ac49ea3748193b795f050c9a7c6c6965\":{\"workers\":{\"app/api/cli-tools/opencode-settings/route\":{\"moduleId\":\"94709\",\"async\":false}},\"filename\":\"app/api/cli-tools/opencode-settings/route.js\",\"exportedName\":\"DELETE\"},\"40ab0d117b9f11b4d9760d6aabe71bbe48415f3599\":{\"workers\":{\"app/api/tunnel/tailscale-install/route\":{\"moduleId\":\"88986\",\"async\":false}},\"filename\":\"app/api/tunnel/tailscale-install/route.js\",\"exportedName\":\"POST\"},\"40a24fd44912cb525707d1a793ba48189e8e0b0eb9\":{\"workers\":{\"app/api/tunnel/tailscale-start-daemon/route\":{\"moduleId\":\"10767\",\"async\":false}},\"filename\":\"app/api/tunnel/tailscale-start-daemon/route.js\",\"exportedName\":\"POST\"}},\"edge\":{},\"encryptionKey\":\"process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY\"}" \ No newline at end of file diff --git a/cli/app/.next/server/server-reference-manifest.json b/cli/app/.next/server/server-reference-manifest.json new file mode 100644 index 00000000000..6bf6cc1e824 --- /dev/null +++ b/cli/app/.next/server/server-reference-manifest.json @@ -0,0 +1 @@ +{"node":{"4078a2380d185e5db9d344be8a92e6873cf30c1b36":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"36274","async":false}},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"GET"},"40a937d31604b64cfb12144366fc627f6948942dcb":{"workers":{"app/api/cli-tools/antigravity-mitm/alias/route":{"moduleId":"36274","async":false}},"filename":"app/api/cli-tools/antigravity-mitm/alias/route.js","exportedName":"PUT"},"004addfe77c08777b9e567a3a2c74433b6d273ecf5":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"61935","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"GET"},"0063c4c2e69585bc4ea25ebbfcd5611d003988f618":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"61935","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"DELETE"},"40b9d31c67b3027add9fd8b4c314711cc2fc51b734":{"workers":{"app/api/cli-tools/claude-settings/route":{"moduleId":"61935","async":false}},"filename":"app/api/cli-tools/claude-settings/route.js","exportedName":"POST"},"003f081365ffb7f0fc04c58d2de54ce4ac9a844d5d":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"13897","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"DELETE"},"0065e34dd5d77a4a3d14fe758c5cc2fd36349d3262":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"13897","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"GET"},"405132466c0ed027510c0c6f9d358a392eb348aa4e":{"workers":{"app/api/cli-tools/codex-settings/route":{"moduleId":"13897","async":false}},"filename":"app/api/cli-tools/codex-settings/route.js","exportedName":"POST"},"0026af6c87082dff5e4d38a0763d266211aeff4e0f":{"workers":{"app/api/cli-tools/copilot-settings/route":{"moduleId":"55233","async":false}},"filename":"app/api/cli-tools/copilot-settings/route.js","exportedName":"GET"},"00f09e471d39080525851ae8f23903e1d749e1d619":{"workers":{"app/api/cli-tools/copilot-settings/route":{"moduleId":"55233","async":false}},"filename":"app/api/cli-tools/copilot-settings/route.js","exportedName":"DELETE"},"40a275d6aac0cebe46a54d9be5d091c39d482049e5":{"workers":{"app/api/cli-tools/copilot-settings/route":{"moduleId":"55233","async":false}},"filename":"app/api/cli-tools/copilot-settings/route.js","exportedName":"POST"},"409e1307868cd2973b8c82b8cf2bb3543300c1c085":{"workers":{"app/api/cli-tools/cowork-mcp-registry/route":{"moduleId":"44198","async":false}},"filename":"app/api/cli-tools/cowork-mcp-registry/route.js","exportedName":"GET"},"00160511706990bbe01dd8036c5c8cc33c9b157aaf":{"workers":{"app/api/cli-tools/cowork-settings/route":{"moduleId":"99709","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"DELETE"},"00899530af7bd797b6b0e26f580c38e29e82d3c474":{"workers":{"app/api/cli-tools/cowork-settings/route":{"moduleId":"99709","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"GET"},"40a06f24a5114e11489a892a599e64053e534a00b0":{"workers":{"app/api/cli-tools/cowork-settings/route":{"moduleId":"99709","async":false}},"filename":"app/api/cli-tools/cowork-settings/route.js","exportedName":"POST"},"00081696414627e0360ac23da5754fdb662b9cdd98":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"36906","async":false}},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"DELETE"},"002f464ab09d187fe5ca6c27ef250e14f3c7d87138":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"36906","async":false}},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"GET"},"40c2933a21e82221a7c89f37f580b92be1ca9b6bd7":{"workers":{"app/api/cli-tools/droid-settings/route":{"moduleId":"36906","async":false}},"filename":"app/api/cli-tools/droid-settings/route.js","exportedName":"POST"},"00153d06c353563c3cfbc5189bd1740182c2d6c3bd":{"workers":{"app/api/cli-tools/hermes-settings/route":{"moduleId":"69134","async":false}},"filename":"app/api/cli-tools/hermes-settings/route.js","exportedName":"DELETE"},"0054998d0e0575a1cc2403bec46ab7f66b3e253c51":{"workers":{"app/api/cli-tools/hermes-settings/route":{"moduleId":"69134","async":false}},"filename":"app/api/cli-tools/hermes-settings/route.js","exportedName":"GET"},"40eb3fd1cb411590acb0b4fb0599099e1042daf735":{"workers":{"app/api/cli-tools/hermes-settings/route":{"moduleId":"69134","async":false}},"filename":"app/api/cli-tools/hermes-settings/route.js","exportedName":"POST"},"0034bb26a501bddec0558f525918e4ffa90b740e56":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"27799","async":false}},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"DELETE"},"00c431ac0a42cc98605b2dea6428bed43c727780f5":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"27799","async":false}},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"GET"},"40b3fb1cff1a7c2735872030c41a370652d7181e60":{"workers":{"app/api/cli-tools/openclaw-settings/route":{"moduleId":"27799","async":false}},"filename":"app/api/cli-tools/openclaw-settings/route.js","exportedName":"POST"},"008db9df614355a5563e33299d9b3b0856f2cd4afa":{"workers":{"app/api/cli-tools/opencode-settings/route":{"moduleId":"94709","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"GET"},"4061ff2beedf8de739155fc38e246aec0c3c0d4b0c":{"workers":{"app/api/cli-tools/opencode-settings/route":{"moduleId":"94709","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"POST"},"4071acff606ed5ec58b015cda9ec830bbee823002d":{"workers":{"app/api/cli-tools/opencode-settings/route":{"moduleId":"94709","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"PATCH"},"40f70769a2ac49ea3748193b795f050c9a7c6c6965":{"workers":{"app/api/cli-tools/opencode-settings/route":{"moduleId":"94709","async":false}},"filename":"app/api/cli-tools/opencode-settings/route.js","exportedName":"DELETE"},"40ab0d117b9f11b4d9760d6aabe71bbe48415f3599":{"workers":{"app/api/tunnel/tailscale-install/route":{"moduleId":"88986","async":false}},"filename":"app/api/tunnel/tailscale-install/route.js","exportedName":"POST"},"40a24fd44912cb525707d1a793ba48189e8e0b0eb9":{"workers":{"app/api/tunnel/tailscale-start-daemon/route":{"moduleId":"10767","async":false}},"filename":"app/api/tunnel/tailscale-start-daemon/route.js","exportedName":"POST"}},"edge":{},"encryptionKey":"B43s4St9LbNvn6bmjnIERyYT/rKeaZBdJ5P2iPcrD+U="} \ No newline at end of file diff --git a/cli/app/.next/server/webpack-runtime.js b/cli/app/.next/server/webpack-runtime.js new file mode 100644 index 00000000000..94780d07ec5 --- /dev/null +++ b/cli/app/.next/server/webpack-runtime.js @@ -0,0 +1 @@ +(()=>{"use strict";var a,b,c,d,e,f,g,h,i={},j={};function k(a){var b=j[a];if(void 0!==b)return b.exports;var c=j[a]={id:a,loaded:!1,exports:{}},d=!0;try{i[a].call(c.exports,c,c.exports,k),d=!1}finally{d&&delete j[a]}return c.loaded=!0,c.exports}k.m=i,k.amdO={},a="function"==typeof Symbol?Symbol("webpack queues"):"__webpack_queues__",b="function"==typeof Symbol?Symbol("webpack exports"):"__webpack_exports__",c="function"==typeof Symbol?Symbol("webpack error"):"__webpack_error__",d=a=>{a&&a.d<1&&(a.d=1,a.forEach(a=>a.r--),a.forEach(a=>a.r--?a.r++:a()))},k.a=(e,f,g)=>{g&&((h=[]).d=-1);var h,i,j,k,l=new Set,m=e.exports,n=new Promise((a,b)=>{k=b,j=a});n[b]=m,n[a]=a=>(h&&a(h),l.forEach(a),n.catch(a=>{})),e.exports=n,f(e=>{i=e.map(e=>{if(null!==e&&"object"==typeof e){if(e[a])return e;if(e.then){var f=[];f.d=0,e.then(a=>{g[b]=a,d(f)},a=>{g[c]=a,d(f)});var g={};return g[a]=a=>a(f),g}}var h={};return h[a]=a=>{},h[b]=e,h});var f,g=()=>i.map(a=>{if(a[c])throw a[c];return a[b]}),j=new Promise(b=>{(f=()=>b(g)).r=0;var c=a=>a!==h&&!l.has(a)&&(l.add(a),a&&!a.d&&(f.r++,a.push(f)));i.map(b=>b[a](c))});return f.r?j:g()},a=>(a?k(n[c]=a):j(m),d(h))),h&&h.d<0&&(h.d=0)},k.n=a=>{var b=a&&a.__esModule?()=>a.default:()=>a;return k.d(b,{a:b}),b},f=Object.getPrototypeOf?a=>Object.getPrototypeOf(a):a=>a.__proto__,k.t=function(a,b){if(1&b&&(a=this(a)),8&b||"object"==typeof a&&a&&(4&b&&a.__esModule||16&b&&"function"==typeof a.then))return a;var c=Object.create(null);k.r(c);var d={};e=e||[null,f({}),f([]),f(f)];for(var g=2&b&&a;"object"==typeof g&&!~e.indexOf(g);g=f(g))Object.getOwnPropertyNames(g).forEach(b=>d[b]=()=>a[b]);return d.default=()=>a,k.d(c,d),c},k.d=(a,b)=>{for(var c in b)k.o(b,c)&&!k.o(a,c)&&Object.defineProperty(a,c,{enumerable:!0,get:b[c]})},k.f={},k.e=a=>Promise.all(Object.keys(k.f).reduce((b,c)=>(k.f[c](a,b),b),[])),k.u=a=>""+a+".js",k.o=(a,b)=>Object.prototype.hasOwnProperty.call(a,b),k.r=a=>{"u">typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(a,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(a,"__esModule",{value:!0})},k.nmd=a=>(a.paths=[],a.children||(a.children=[]),a),k.X=(a,b,c)=>{var d=b;c||(b=a,c=()=>k(k.s=d)),b.map(k.e,k);var e=c();return void 0===e?a:e},g={9692:1},h=a=>{var b=a.modules,c=a.ids,d=a.runtime;for(var e in b)k.o(b,e)&&(k.m[e]=b[e]);d&&d(k);for(var f=0;f{g[a]||(9692!=a?h(require("./chunks/"+k.u(a))):g[a]=1)},module.exports=k,k.C=h})(); \ No newline at end of file diff --git a/cli/app/.next/static/chunks/1310.277601b1f5c247fc.js b/cli/app/.next/static/chunks/1310.277601b1f5c247fc.js new file mode 100644 index 00000000000..59c7ecb3914 --- /dev/null +++ b/cli/app/.next/static/chunks/1310.277601b1f5c247fc.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1310],{41310:(e,t,r)=>{function n(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r=e.length?e.apply(this,o):function(){for(var e=arguments.length,n=Array(e),i=0;iK,Editor:()=>Z,default:()=>ee,loader:()=>L,useMonaco:()=>Q});var f,d,g=a(function(e,t){throw Error(e[t]||e.default)})({initialIsRequired:"initial state is required",initialType:"initial state should be an object",initialContent:"initial state shouldn't be an empty object",handlerType:"handler should be an object or a function",handlersType:"all handlers should be a functions",selectorType:"selector should be a function",changeType:"provided value of changes should be an object",changeField:'it seams you want to change a field in the state which is not specified in the "initial" state',default:"an unknown error accured in `state-local` package"}),p=function(e,t){return l(t)||g("changeType"),Object.keys(t).some(function(t){return!Object.prototype.hasOwnProperty.call(e,t)})&&g("changeField"),t},h=function(e){s(e)||g("selectorType")},y=function(e){s(e)||l(e)||g("handlerType"),l(e)&&Object.values(e).some(function(e){return!s(e)})&&g("handlersType")},m=function(e){e||g("initialIsRequired"),l(e)||g("initialType"),Object.keys(e).length||g("initialContent")};function v(e,t){return s(t)?t(e.current):t}function b(e,t){return e.current=u(u({},e.current),t),t}function O(e,t,r){return s(t)?t(e.current):Object.keys(r).forEach(function(r){var n;return null==(n=t[r])?void 0:n.call(t,e.current[r])}),r}var w={configIsRequired:"the configuration object is required",configType:"the configuration object should be an object",default:"an unknown error accured in `@monaco-editor/loader` package",deprecation:"Deprecation warning!\n You are using deprecated way of configuration.\n\n Instead of using\n monaco.config({ urls: { monacoBase: '...' } })\n use\n monaco.config({ paths: { vs: '...' } })\n\n For more please check the link https://github.com/suren-atoyan/monaco-loader#config\n "},j=(f=function(e,t){throw Error(e[t]||e.default)},function e(){for(var t=this,r=arguments.length,n=Array(r),o=0;o=f.length?f.apply(this,n):function(){for(var r=arguments.length,o=Array(r),i=0;i1&&void 0!==arguments[1]?arguments[1]:{};m(e),y(t);var r={current:e},n=a(O)(r,t),o=a(b)(r),i=a(p)(e),c=a(v)(r);return[function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:function(e){return e};return h(e),e(r.current)},function(e){(function(){for(var e=arguments.length,t=Array(e),r=0;rtypeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=t){var r,n,o,i,c=[],u=!0,a=!1;try{o=(t=t.call(e)).next,!1;for(;!(u=(r=o.call(t)).done)&&(c.push(r.value),2!==c.length);u=!0);}catch(e){a=!0,n=e}finally{try{if(!u&&null!=t.return&&(i=t.return(),Object(i)!==i))return}finally{if(a)throw n}}return c}}(d)||function(e){if(e){if("string"==typeof e)return n(e,2);var t=({}).toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?n(e,2):void 0}}(d)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),T=k[0],C=k[1];function I(e){return document.body.appendChild(e)}function x(e){var t,r,n=T(function(e){return{config:e.config,reject:e.reject}}),o=(t="".concat(n.config.paths.vs,"/loader.js"),r=document.createElement("script"),t&&(r.src=t),r);return o.onload=function(){return e()},o.onerror=n.reject,o}function A(){var e=T(function(e){return{config:e.config,resolve:e.resolve,reject:e.reject}}),t=window.require;t.config(e.config),t(["vs/editor/editor.main"],function(t){var r=t.m||t;D(r),e.resolve(r)},function(t){e.reject(t)})}function D(e){T().monaco||C({monaco:e})}var V=new Promise(function(e,t){return C({resolve:e,reject:t})}),L={config:function(e){var t=M(e),r=t.monaco,n=function(e,t){if(null==e)return{};var r,n,o=function(e,t){if(null==e)return{};var r={};for(var n in e)if(({}).hasOwnProperty.call(e,n)){if(-1!==t.indexOf(n))continue;r[n]=e[n]}return r}(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(n=0;n{n.current=!1}:e,t)};function G(){}function H(e,t,r,n){var o,i,c,u,a,l;return o=e,i=n,o.editor.getModel(J(o,i))||(c=e,u=t,a=r,l=n,c.editor.createModel(u,a,l?J(c,l):void 0))}function J(e,t){return e.Uri.parse(t)}var K=(0,_.memo)(function({original:e,modified:t,language:r,originalLanguage:n,modifiedLanguage:o,originalModelPath:i,modifiedModelPath:c,keepCurrentOriginalModel:u=!1,keepCurrentModifiedModel:a=!1,theme:l="light",loading:s="Loading...",options:f={},height:d="100%",width:g="100%",className:p,wrapperProps:h={},beforeMount:y=G,onMount:m=G}){let[v,b]=(0,_.useState)(!1),[O,w]=(0,_.useState)(!0),j=(0,_.useRef)(null),M=(0,_.useRef)(null),E=(0,_.useRef)(null),P=(0,_.useRef)(m),R=(0,_.useRef)(y),S=(0,_.useRef)(!1);Y(()=>{let e=L.init();return e.then(e=>(M.current=e)&&w(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>{let t;return j.current?(t=j.current?.getModel(),void(u||t?.original?.dispose(),a||t?.modified?.dispose(),j.current?.dispose())):e.cancel()}}),$(()=>{if(j.current&&M.current){let t=j.current.getOriginalEditor(),o=H(M.current,e||"",n||r||"text",i||"");o!==t.getModel()&&t.setModel(o)}},[i],v),$(()=>{if(j.current&&M.current){let e=j.current.getModifiedEditor(),n=H(M.current,t||"",o||r||"text",c||"");n!==e.getModel()&&e.setModel(n)}},[c],v),$(()=>{let e=j.current.getModifiedEditor();e.getOption(M.current.editor.EditorOption.readOnly)?e.setValue(t||""):t!==e.getValue()&&(e.executeEdits("",[{range:e.getModel().getFullModelRange(),text:t||"",forceMoveMarkers:!0}]),e.pushUndoStop())},[t],v),$(()=>{j.current?.getModel()?.original.setValue(e||"")},[e],v),$(()=>{let{original:e,modified:t}=j.current.getModel();M.current.editor.setModelLanguage(e,n||r||"text"),M.current.editor.setModelLanguage(t,o||r||"text")},[r,n,o],v),$(()=>{M.current?.editor.setTheme(l)},[l],v),$(()=>{j.current?.updateOptions(f)},[f],v);let k=(0,_.useCallback)(()=>{if(!M.current)return;R.current(M.current);let u=H(M.current,e||"",n||r||"text",i||""),a=H(M.current,t||"",o||r||"text",c||"");j.current?.setModel({original:u,modified:a})},[r,t,o,e,n,i,c]),T=(0,_.useCallback)(()=>{!S.current&&E.current&&(j.current=M.current.editor.createDiffEditor(E.current,{automaticLayout:!0,...f}),k(),M.current?.editor.setTheme(l),b(!0),S.current=!0)},[f,l,k]);return(0,_.useEffect)(()=>{v&&P.current(j.current,M.current)},[v]),(0,_.useEffect)(()=>{O||v||T()},[O,v,T]),_.createElement(B,{width:g,height:d,isEditorReady:v,loading:s,_ref:E,className:p,wrapperProps:h})}),Q=function(){let[e,t]=(0,_.useState)(L.__getMonacoInstance());return Y(()=>{let r;return e||(r=L.init()).then(e=>{t(e)}),()=>r?.cancel()}),e},W=function(e){let t=(0,_.useRef)();return(0,_.useEffect)(()=>{t.current=e},[e]),t.current},X=new Map,Z=(0,_.memo)(function({defaultValue:e,defaultLanguage:t,defaultPath:r,value:n,language:o,path:i,theme:c="light",line:u,loading:a="Loading...",options:l={},overrideServices:s={},saveViewState:f=!0,keepCurrentModel:d=!1,width:g="100%",height:p="100%",className:h,wrapperProps:y={},beforeMount:m=G,onMount:v=G,onChange:b,onValidate:O=G}){let[w,j]=(0,_.useState)(!1),[M,E]=(0,_.useState)(!0),P=(0,_.useRef)(null),R=(0,_.useRef)(null),S=(0,_.useRef)(null),k=(0,_.useRef)(v),T=(0,_.useRef)(m),C=(0,_.useRef)(),I=(0,_.useRef)(n),x=W(i),A=(0,_.useRef)(!1),D=(0,_.useRef)(!1);Y(()=>{let e=L.init();return e.then(e=>(P.current=e)&&E(!1)).catch(e=>e?.type!=="cancelation"&&console.error("Monaco initialization: error:",e)),()=>R.current?void(C.current?.dispose(),d?f&&X.set(i,R.current.saveViewState()):R.current.getModel()?.dispose(),R.current.dispose()):e.cancel()}),$(()=>{let c=H(P.current,e||n||"",t||o||"",i||r||"");c!==R.current?.getModel()&&(f&&X.set(x,R.current?.saveViewState()),R.current?.setModel(c),f&&R.current?.restoreViewState(X.get(i)))},[i],w),$(()=>{R.current?.updateOptions(l)},[l],w),$(()=>{R.current&&void 0!==n&&(R.current.getOption(P.current.editor.EditorOption.readOnly)?R.current.setValue(n):n!==R.current.getValue()&&(D.current=!0,R.current.executeEdits("",[{range:R.current.getModel().getFullModelRange(),text:n,forceMoveMarkers:!0}]),R.current.pushUndoStop(),D.current=!1))},[n],w),$(()=>{let e=R.current?.getModel();e&&o&&P.current?.editor.setModelLanguage(e,o)},[o],w),$(()=>{void 0!==u&&R.current?.revealLine(u)},[u],w),$(()=>{P.current?.editor.setTheme(c)},[c],w);let V=(0,_.useCallback)(()=>{if(!(!S.current||!P.current)&&!A.current){T.current(P.current);let a=i||r,d=H(P.current,n||e||"",t||o||"",a||"");R.current=P.current?.editor.create(S.current,{model:d,automaticLayout:!0,...l},s),f&&R.current.restoreViewState(X.get(a)),P.current.editor.setTheme(c),void 0!==u&&R.current.revealLine(u),j(!0),A.current=!0}},[e,t,r,n,o,i,l,s,f,c,u]);return(0,_.useEffect)(()=>{w&&k.current(R.current,P.current)},[w]),(0,_.useEffect)(()=>{M||w||V()},[M,w,V]),I.current=n,(0,_.useEffect)(()=>{w&&b&&(C.current?.dispose(),C.current=R.current?.onDidChangeModelContent(e=>{D.current||b(R.current.getValue(),e)}))},[w,b]),(0,_.useEffect)(()=>{if(w){let e=P.current.editor.onDidChangeMarkers(e=>{let t=R.current.getModel()?.uri;if(t&&e.find(e=>e.path===t.path)){let e=P.current.editor.getModelMarkers({resource:t});O?.(e)}});return()=>{e?.dispose()}}return()=>{}},[w,O]),_.createElement(B,{width:g,height:p,isEditorReady:w,loading:a,_ref:S,className:h,wrapperProps:y})}),ee=Z}}]); \ No newline at end of file diff --git a/cli/app/.next/static/chunks/1939-b2a5b6699b8bf3d5.js b/cli/app/.next/static/chunks/1939-b2a5b6699b8bf3d5.js new file mode 100644 index 00000000000..bd334e69342 --- /dev/null +++ b/cli/app/.next/static/chunks/1939-b2a5b6699b8bf3d5.js @@ -0,0 +1,23 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1939],{35984:(e,t,s)=>{s.d(t,{Tk:()=>g,Ah:()=>f,Q6:()=>E,a7:()=>k,ZM:()=>b,RF:()=>v,gY:()=>T,tA:()=>O,kn:()=>P,yZ:()=>j,qO:()=>C});var l=s(73365),r=s(1521),a=s(74156),i=s(58872),n=s(43202);let o="9router.cliToolEndpointPresets",d="__custom__",c="__save__",m=e=>{window.localStorage.setItem(o,JSON.stringify(e))};function x({value:e,onChange:t,requiresExternalUrl:s=!1,tunnelEnabled:a=!1,tunnelPublicUrl:i="",tailscaleEnabled:u=!1,tailscaleUrl:p="",cloudEnabled:h=!1,cloudUrl:g="",withV1:f=!0}){let[y,b]=(0,r.useState)([]),[j,N]=(0,r.useState)(""),[v,w]=(0,r.useState)(""),k=(0,r.useRef)(!1);(0,r.useEffect)(()=>{b((()=>{try{let e=JSON.parse(window.localStorage.getItem(o)||"[]");if(!Array.isArray(e))return[];return e.filter(e=>e?.name&&e?.baseUrl)}catch{return[]}})())},[]);let C=(0,r.useMemo)(()=>(({requiresExternalUrl:e,tunnelEnabled:t,tunnelPublicUrl:s,tailscaleEnabled:l,tailscaleUrl:r,cloudEnabled:a,cloudUrl:i,savedPresets:o,withV1:c})=>{let m=[],x=e=>{let t;return c?(t=(e||"").replace(/\/+$/,""))?/\/v1$/.test(t)?t:`${t}/v1`:"":(e||"").replace(/\/+$/,"")};if(!e){let e=x(`http://127.0.0.1:${n.h0.appPort}`);m.push({value:"local",label:e,url:e})}if(t&&s){let e=x(s);m.push({value:"tunnel",label:e,url:e})}if(l&&r){let e=x(r);m.push({value:"tailscale",label:e,url:e})}if(a&&i){let e=x(i);m.push({value:"cloud",label:e,url:e})}return o.forEach(e=>{m.push({value:`saved:${e.name}`,label:e.baseUrl,url:e.baseUrl,saved:!0})}),m.push({value:d,label:"Custom URL...",url:""}),m})({requiresExternalUrl:s,tunnelEnabled:a,tunnelPublicUrl:i,tailscaleEnabled:u,tailscaleUrl:p,cloudEnabled:h,cloudUrl:g,savedPresets:y,withV1:f}),[s,a,i,u,p,h,g,y,f]);(0,r.useEffect)(()=>{if(k.current||0===C.length)return;k.current=!0;let e=C.find(e=>e.value!==d);e?(N(e.value),t(e.url)):N(d)},[C,t]);let _=j.startsWith("saved:"),S=j===d,E=S&&(v||"").trim().length>0;return(0,l.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsxs)("select",{value:j,onChange:s=>{let l=s.target.value;if(l===c){let t=(e||"").trim();if(!t)return;let s=t;try{s=new URL(t).host}catch{}let l=window.prompt("Save endpoint as:",s);if(!l?.trim())return;let r=[...y.filter(e=>e.name!==l.trim()),{name:l.trim(),baseUrl:t}].sort((e,t)=>e.name.localeCompare(t.name));b(r),m(r);return}if(N(l),l===d){w(""),t("");return}let r=C.find(e=>e.value===l);r&&t(r.url)},className:"flex-1 min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[C.map(e=>(0,l.jsx)("option",{value:e.value,children:e.label},e.value)),E&&(0,l.jsx)("option",{value:c,children:"+ Save current as..."})]}),_&&(0,l.jsx)("button",{type:"button",onClick:()=>{if(!j.startsWith("saved:"))return;let e=j.slice(6),s=y.filter(t=>t.name!==e);b(s),m(s),N(d),w(""),t("")},className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors shrink-0",title:"Delete saved endpoint",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"delete"})})]}),S&&(0,l.jsx)("input",{type:"text",value:v,onChange:e=>{let s=e.target.value;w(s),t(s)},placeholder:f?"https://example.com/v1":"https://example.com",className:"w-full min-w-0 px-2 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"})]})}let u=e=>(e||"").replace(/\/+$/,"");function p(e,t={}){if(!e)return!1;let s=u(e),{tunnelPublicUrl:l,tailscaleUrl:r,cloudUrl:a}=t;return!!(/localhost|127\.0\.0\.1|0\.0\.0\.0/.test(s)||l&&s.startsWith(u(l))||r&&s.startsWith(u(r))||a&&s.startsWith(u(a)))}let h=s(89651).env.NEXT_PUBLIC_CLOUD_URL;function g({tool:e,isExpanded:t,onToggle:s,activeProviders:n,modelMappings:o,onModelMappingChange:d,baseUrl:c,hasActiveProviders:m,apiKeys:u,cloudEnabled:f,initialStatus:y,tunnelEnabled:b,tunnelPublicUrl:j,tailscaleEnabled:N,tailscaleUrl:v}){let w,k,C,[_,S]=(0,r.useState)(y||null),[E,A]=(0,r.useState)(!1),[O,M]=(0,r.useState)(!1),[P,I]=(0,r.useState)(!1),[$,T]=(0,r.useState)(null),[R,U]=(0,r.useState)(!1),[z,D]=(0,r.useState)(!1),[K,L]=(0,r.useState)(null),[F,H]=(0,r.useState)(""),[q,B]=(0,r.useState)({}),[W,J]=(0,r.useState)(!1),[G,Y]=(0,r.useState)(""),[Z,V]=(0,r.useState)(!1),Q=(0,r.useRef)(!1),X=(()=>{if(!_?.installed)return null;let e=_.settings?.env?.ANTHROPIC_BASE_URL;return e?p(e,{tunnelPublicUrl:j,tailscaleUrl:v,cloudUrl:f?h:null})?"configured":"other":"not_configured"})();(0,r.useEffect)(()=>{u?.length>0&&!F&&H(u[0].key)},[u,F]),(0,r.useEffect)(()=>{y&&S(y)},[y]),(0,r.useEffect)(()=>{t&&!_&&(es(),et()),t&&et()},[t]),(0,r.useEffect)(()=>{fetch("/api/settings").then(e=>e.json()).then(e=>{V(!!e.ccFilterNaming)}).catch(()=>{})},[]);let ee=async e=>{let t=e.target.checked;V(t),await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({ccFilterNaming:t})}).catch(()=>{})},et=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&B(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,r.useEffect)(()=>{if(_?.installed&&!Q.current){Q.current=!0;let t=_.settings?.env||{};e.defaultModels.forEach(e=>{if(e.envKey){let s=t[e.envKey]||e.defaultValue||"";s&&d(e.alias,s)}});let s=t.ANTHROPIC_AUTH_TOKEN;s&&u?.some(e=>e.key===s)&&H(s)}},[_,u,e.defaultModels,d]);let es=async()=>{A(!0);try{let e=await fetch("/api/cli-tools/claude-settings"),t=await e.json();S(t)}catch(e){S({installed:!1,error:e.message})}finally{A(!1)}},el=()=>{let e=G||c;return e.endsWith("/v1")?e:`${e}/v1`},er=F&&!u.some(e=>e.key===F),ea=async()=>{M(!0),T(null);try{let t={ANTHROPIC_BASE_URL:el()},s=F?.trim()||(u?.length>0?u[0].key:null)||(f?null:"sk_9router");s&&(t.ANTHROPIC_AUTH_TOKEN=s),e.defaultModels.forEach(e=>{let s=o[e.alias];s&&e.envKey&&(t[e.envKey]=s)});let l=await fetch("/api/cli-tools/claude-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({env:t})}),r=await l.json();l.ok?(T({type:"success",text:"Settings applied successfully!"}),S(e=>({...e,hasBackup:!0,settings:{...e?.settings,env:t}}))):T({type:"error",text:r.error||"Failed to apply settings"})}catch(e){T({type:"error",text:e.message})}finally{M(!1)}},ei=async()=>{I(!0),T(null);try{let t=await fetch("/api/cli-tools/claude-settings",{method:"DELETE"}),s=await t.json();t.ok?(T({type:"success",text:"Settings reset successfully!"}),e.defaultModels.forEach(e=>d(e.alias,e.defaultValue||"")),H("")):T({type:"error",text:s.error||"Failed to reset settings"})}catch(e){T({type:"error",text:e.message})}finally{I(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:"/providers/claude.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===X&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===X&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===X&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[E&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Claude CLI..."})]}),!E&&_&&!_.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Claude CLI not detected locally"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Manual configuration is still available if 9router is deployed on a remote server."})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 pl-9",children:[(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>J(!0),className:"!bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:()=>U(!R),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:R?"expand_less":"help"}),R?"Hide":"How to Install"]})]})]}),R&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @anthropic-ai/claude-code"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"claude"})," to verify."]})]})]})]}),!E&&_?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:G||((w=G||c).endsWith("/v1")?w:`${w}/v1`),onChange:Y,requiresExternalUrl:e.requiresExternalUrl,tunnelEnabled:b,tunnelPublicUrl:j,tailscaleEnabled:N,tailscaleUrl:v})]}),_?.settings?.env?.ANTHROPIC_BASE_URL&&(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:_.settings.env.ANTHROPIC_BASE_URL})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),u.length>0||F?(0,l.jsxs)("select",{value:F,onChange:e=>H(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[er&&(0,l.jsx)("option",{value:F,children:F}),u.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:f?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),e.defaultModels.map(e=>(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:e.name}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:o[e.alias]||"",onChange:t=>d(e.alias,t.target.value),placeholder:"provider/model-id",className:"w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),o[e.alias]&&(0,l.jsx)("button",{onClick:()=>d(e.alias,""),className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>{L(e.alias),D(!0)},disabled:!m,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${m?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"})]},e.alias)),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Filter naming"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("label",{className:"flex items-center gap-1.5 cursor-pointer select-none",children:[(0,l.jsx)("input",{type:"checkbox",checked:Z,onChange:ee,className:"w-3.5 h-3.5 accent-primary cursor-pointer"}),(0,l.jsx)("span",{className:"text-xs text-text-muted",children:"Filter naming requests"})]}),(0,l.jsx)(a.m_,{text:"Intercepts Claude Code's topic-naming requests and returns a fake response locally, saving API tokens.",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px] cursor-help",children:"info"})})]})]}),$&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===$.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===$.type?"check_circle":"error"}),(0,l.jsx)("span",{children:$.text})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:ea,disabled:!m,loading:O,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:ei,disabled:!_?.has9Router,loading:P,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>J(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.rq,{isOpen:z,onClose:()=>D(!1),onSelect:e=>{K&&d(K,e.value)},selectedModel:K?o[K]:null,activeProviders:n,modelAliases:q,title:`Select model for ${K}`}),(0,l.jsx)(a.uR,{isOpen:W,onClose:()=>J(!1),title:"Claude CLI - Manual Configuration",configs:(k=F&&F.trim()?F:f?"":"sk_9router",C={ANTHROPIC_BASE_URL:el(),ANTHROPIC_AUTH_TOKEN:k},e.defaultModels.forEach(e=>{let t=o[e.alias];t&&e.envKey&&(C[e.envKey]=t)}),[{filename:"~/.claude/settings.json",content:JSON.stringify({hasCompletedOnboarding:!0,env:C},null,2)}])})]})}function f({tool:e,isExpanded:t,onToggle:s,baseUrl:n,apiKeys:o,activeProviders:d,cloudEnabled:c,initialStatus:m,tunnelEnabled:u,tunnelPublicUrl:h,tailscaleEnabled:g,tailscaleUrl:y}){let b,j,N,v,[w,k]=(0,r.useState)(m||null),[C,_]=(0,r.useState)(!1),[S,E]=(0,r.useState)(!1),[A,O]=(0,r.useState)(!1),[M,P]=(0,r.useState)(null),[I,$]=(0,r.useState)(!1),[T,R]=(0,r.useState)(""),[U,z]=(0,r.useState)(""),[D,K]=(0,r.useState)(""),[L,F]=(0,r.useState)(!1),[H,q]=(0,r.useState)(!1),[B,W]=(0,r.useState)({}),[J,G]=(0,r.useState)(!1),[Y,Z]=(0,r.useState)("");(0,r.useEffect)(()=>{o?.length>0&&!T&&R(o[0].key)},[o,T]),(0,r.useEffect)(()=>{m&&k(m)},[m]),(0,r.useEffect)(()=>{t&&!w&&(et(),V()),t&&V()},[t]);let V=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&W(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,r.useEffect)(()=>{if(w?.config){let e=w.config.match(/^model\s*=\s*"([^"]+)"/m);e&&z(e[1]);let t=w.config.match(/\[agents\.subagent\]\s*\n\s*model\s*=\s*"([^"]+)"/m);t&&K(t[1])}},[w]);let Q=(()=>{if(!w?.installed)return null;if(!w.config)return"not_configured";let e=w.config.match(/base_url\s*=\s*"([^"]+)"/);return p(e?e[1]:"",{tunnelPublicUrl:h,tailscaleUrl:y})?"configured":"other"})(),X=()=>{let e=Y||`${n}/v1`;return e.endsWith("/v1")?e:`${e}/v1`},ee=T&&!o.some(e=>e.key===T),et=async()=>{_(!0);try{let e=await fetch("/api/cli-tools/codex-settings"),t=await e.json();k(t)}catch(e){k({installed:!1,error:e.message})}finally{_(!1)}},es=async()=>{E(!0),P(null);try{let e=T&&T.trim()||c?T:"sk_9router",t=await fetch("/api/cli-tools/codex-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:X(),apiKey:e,model:U,subagentModel:D||U})}),s=await t.json();t.ok?(P({type:"success",text:"Settings applied successfully!"}),et()):P({type:"error",text:s.error||"Failed to apply settings"})}catch(e){P({type:"error",text:e.message})}finally{E(!1)}},el=async()=>{O(!0),P(null);try{let e=await fetch("/api/cli-tools/codex-settings",{method:"DELETE"}),t=await e.json();e.ok?(P({type:"success",text:"Settings reset successfully!"}),z(""),K(""),et()):P({type:"error",text:t.error||"Failed to reset settings"})}catch(e){P({type:"error",text:e.message})}finally{O(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:"/providers/codex.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===Q&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===Q&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===Q&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[C&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Codex CLI..."})]}),!C&&w&&!w.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Codex CLI not detected locally"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Manual configuration is still available if 9router is deployed on a remote server."})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 pl-9",children:[(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>G(!0),className:"!bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:()=>$(!I),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:I?"expand_less":"help"}),I?"Hide":"How to Install"]})]})]}),I&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g @openai/codex"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"codex"})," to verify."]}),(0,l.jsx)("div",{className:"pt-2 border-t border-border",children:(0,l.jsxs)("p",{className:"text-text-muted text-xs",children:["Codex uses ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"~/.codex/auth.json"})," with ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"OPENAI_API_KEY"}),'. Click "Apply" to auto-configure.']})})]})]})]}),!C&&w?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:Y||Y||`${n}/v1`,onChange:Z,requiresExternalUrl:e.requiresExternalUrl,tunnelEnabled:u,tunnelPublicUrl:h,tailscaleEnabled:g,tailscaleUrl:y})]}),w?.config&&((j=(b=w.config.match(/base_url\s*=\s*"([^"]+)"/))?b[1]:null)?(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:j})]}):null),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),o.length>0||T?(0,l.jsxs)("select",{value:T,onChange:e=>R(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[ee&&(0,l.jsx)("option",{value:T,children:T}),o.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:c?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:U,onChange:e=>z(e.target.value),placeholder:"provider/model-id",className:"w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),U&&(0,l.jsx)("button",{onClick:()=>z(""),className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>F(!0),disabled:!d?.length,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${d?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Subagent Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:D,onChange:e=>K(e.target.value),placeholder:U||"provider/model-id (defaults to main model)",className:"w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),D&&(0,l.jsx)("button",{onClick:()=>K(""),className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear (will use main model)",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>q(!0),disabled:!d?.length,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${d?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"})]})]}),M&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===M.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===M.type?"check_circle":"error"}),(0,l.jsx)("span",{children:M.text})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:es,disabled:!T&&c&&o.length>0||!U,loading:S,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:el,disabled:A,loading:A,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>G(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.rq,{isOpen:L,onClose:()=>F(!1),onSelect:e=>{z(e.value),D||K(e.value),F(!1)},selectedModel:U,activeProviders:d,modelAliases:B,title:"Select Model for Codex"}),(0,l.jsx)(a.rq,{isOpen:H,onClose:()=>q(!1),onSelect:e=>{K(e.value),q(!1)},selectedModel:D,activeProviders:d,modelAliases:B,title:"Select Subagent Model for Codex"}),(0,l.jsx)(a.uR,{isOpen:J,onClose:()=>G(!1),title:"Codex CLI - Manual Configuration",configs:(N=T&&T.trim()?T:c?"":"sk_9router",v=D||U,[{filename:"~/.codex/config.toml",content:`# 9Router Configuration for Codex CLI +model = "${U}" +model_provider = "9router" + +[model_providers.9router] +name = "9Router" +base_url = "${X()}" +wire_api = "responses" + +[agents.subagent] +model = "${v}" +`},{filename:"~/.codex/auth.json",content:JSON.stringify({auth_mode:"apikey",OPENAI_API_KEY:N},null,2)}])})]})}let y=s(89651).env.NEXT_PUBLIC_CLOUD_URL;function b({tool:e,isExpanded:t,onToggle:s,baseUrl:n,hasActiveProviders:o,apiKeys:d,activeProviders:c,cloudEnabled:m,initialStatus:u,tunnelEnabled:h,tunnelPublicUrl:g,tailscaleEnabled:f,tailscaleUrl:j}){let N,v,w,k,[C,_]=(0,r.useState)(u||null),[S,E]=(0,r.useState)(!1),[A,O]=(0,r.useState)(!1),[M,P]=(0,r.useState)(!1),[I,$]=(0,r.useState)(null),[T,R]=(0,r.useState)(""),[U,z]=(0,r.useState)([]),[D,K]=(0,r.useState)(""),[L,F]=(0,r.useState)(!1),[H,q]=(0,r.useState)({}),[B,W]=(0,r.useState)(!1),[J,G]=(0,r.useState)(!1),[Y,Z]=(0,r.useState)(""),V=(0,r.useRef)(!1),Q=(()=>{if(!C?.installed)return null;let e=C.settings?.customModels?.find(e=>e.id?.startsWith("custom:9Router"));return e?p(e.baseUrl,{tunnelPublicUrl:g,tailscaleUrl:j,cloudUrl:m?y:null})?"configured":"other":"not_configured"})();(0,r.useEffect)(()=>{d?.length>0&&!T&&R(d[0].key)},[d,T]),(0,r.useEffect)(()=>{u&&_(u)},[u]),(0,r.useEffect)(()=>{t&&!C&&(ee(),X()),t&&X()},[t]);let X=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&q(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,r.useEffect)(()=>{if(C?.installed&&!V.current){V.current=!0;let e=(C.settings?.customModels||[]).filter(e=>e.id?.startsWith("custom:9Router")).sort((e,t)=>(e.index||0)-(t.index||0)).map(e=>e.model);if(e.length>0)z(e);else{let e=C.settings?.customModels?.find(e=>"custom:9Router-0"===e.id);e?.model&&z([e.model])}}},[C]);let ee=async()=>{E(!0);try{let e=await fetch("/api/cli-tools/droid-settings"),t=await e.json();_(t)}catch(e){_({installed:!1,error:e.message})}finally{E(!1)}},et=()=>{let e=Y||n;return e.endsWith("/v1")?e:`${e}/v1`},es=T&&!d.some(e=>e.key===T),el=()=>{let e=D.trim();!e||U.includes(e)||(z(t=>[...t,e]),K(""))},er=async()=>{O(!0),$(null);try{let e=T?.trim()||(d?.length>0?d[0].key:null)||(m?null:"sk_9router"),t=await fetch("/api/cli-tools/droid-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:et(),apiKey:e,models:U,activeModel:U[0]||""})}),s=await t.json();t.ok?($({type:"success",text:"Settings applied successfully!"}),ee()):$({type:"error",text:s.error||"Failed to apply settings"})}catch(e){$({type:"error",text:e.message})}finally{O(!1)}},ea=async()=>{P(!0),$(null);try{let e=await fetch("/api/cli-tools/droid-settings",{method:"DELETE"}),t=await e.json();e.ok?($({type:"success",text:"Settings reset successfully!"}),z([]),ee()):$({type:"error",text:t.error||"Failed to reset settings"})}catch(e){$({type:"error",text:e.message})}finally{P(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:"/providers/droid.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===Q&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===Q&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===Q&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[S&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Factory Droid CLI..."})]}),!S&&C&&!C.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Factory Droid CLI not detected locally"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Manual configuration is still available if 9router is deployed on a remote server."})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 pl-9",children:[(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>W(!0),className:"!bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:()=>G(!J),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:J?"expand_less":"help"}),J?"Hide":"How to Install"]})]})]}),J&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux / Windows:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"curl -fsSL https://app.factory.ai/cli | sh"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"droid"})," to verify."]})]})]})]}),!S&&C?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:Y||((N=Y||n).endsWith("/v1")?N:`${N}/v1`),onChange:Z,requiresExternalUrl:e.requiresExternalUrl,tunnelEnabled:h,tunnelPublicUrl:g,tailscaleEnabled:f,tailscaleUrl:j})]}),C?.settings?.customModels?.find(e=>e.id?.startsWith("custom:9Router"))?.baseUrl&&(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:C.settings.customModels.find(e=>e.id?.startsWith("custom:9Router")).baseUrl})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),d.length>0||T?(0,l.jsxs)("select",{value:T,onChange:e=>R(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[es&&(0,l.jsx)("option",{value:T,children:T}),d.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:m?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsxs)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:["Models ",U.length>0&&(0,l.jsxs)("span",{className:"text-primary",children:["(",U.length,")"]})]}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"flex-1 flex flex-col gap-1",children:[U.length>0&&(0,l.jsx)("div",{className:"flex flex-col gap-0.5 mb-1",children:U.map(e=>(0,l.jsxs)("div",{className:"flex items-center gap-1.5 px-2 py-1 bg-bg-secondary rounded border border-border",children:[(0,l.jsx)("span",{className:"flex-1 text-xs font-mono truncate",children:e}),(0,l.jsx)("button",{onClick:()=>z(t=>t.filter(t=>t!==e)),className:"text-text-muted hover:text-red-500 transition-colors shrink-0",title:"Remove",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},e))}),(0,l.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,l.jsx)("input",{type:"text",value:D,onChange:e=>K(e.target.value),onKeyDown:e=>{"Enter"===e.key&&(e.preventDefault(),el())},placeholder:"provider/model-id",className:"w-full min-w-0 px-2 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),(0,l.jsx)("button",{onClick:()=>F(!0),disabled:!o,className:`px-2 py-1.5 rounded border text-xs shrink-0 ${o?"bg-surface border-border hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select"}),(0,l.jsx)("button",{onClick:el,disabled:!D.trim(),className:"px-2 py-1.5 rounded border bg-surface border-border hover:border-primary text-xs shrink-0 disabled:opacity-50",title:"Add model",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"add"})})]})]})]})]}),I&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===I.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===I.type?"check_circle":"error"}),(0,l.jsx)("span",{children:I.text})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:er,disabled:0===U.length,loading:A,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:ea,disabled:!C?.has9Router,loading:M,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>W(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.rq,{isOpen:L,onClose:()=>F(!1),onSelect:e=>{!e.value||U.includes(e.value)||(z(t=>[...t,e.value]),F(!1))},selectedModel:null,activeProviders:c,modelAliases:H,title:"Select Model for Factory Droid"}),(0,l.jsx)(a.uR,{isOpen:B,onClose:()=>W(!1),title:"Factory Droid - Manual Configuration",configs:(v=T&&T.trim()?T:m?"":"sk_9router",w={customModels:U.map((e,t)=>({model:e,id:`custom:9Router-${t}`,index:t,baseUrl:et(),apiKey:v,displayName:e,maxOutputTokens:131072,noImageSupport:!1,provider:"openai"}))},k="u">typeof navigator&&navigator.platform,[{filename:k?.toLowerCase().includes("win")?"%USERPROFILE%\\.factory\\settings.json":"~/.factory/settings.json",content:JSON.stringify(w,null,2)}])})]})}function j({tool:e,isExpanded:t,onToggle:s,baseUrl:n,hasActiveProviders:o,apiKeys:d,activeProviders:c,cloudEnabled:m,initialStatus:u,tunnelEnabled:h,tunnelPublicUrl:g,tailscaleEnabled:f,tailscaleUrl:y}){let b,N,[v,w]=(0,r.useState)(u||null),[k,C]=(0,r.useState)(!1),[_,S]=(0,r.useState)(!1),[E,A]=(0,r.useState)(!1),[O,M]=(0,r.useState)(null),[P,I]=(0,r.useState)(""),[$,T]=(0,r.useState)(""),[R,U]=(0,r.useState)({}),[z,D]=(0,r.useState)(null),[K,L]=(0,r.useState)(!1),[F,H]=(0,r.useState)({}),[q,B]=(0,r.useState)(!1),[W,J]=(0,r.useState)(""),G=(0,r.useRef)(!1),Y=(()=>{if(!v?.installed)return null;let e=v.settings?.models?.providers?.["9router"];return e?p(e.baseUrl,{tunnelPublicUrl:g,tailscaleUrl:y})?"configured":"other":"not_configured"})();(0,r.useEffect)(()=>{d?.length>0&&!P&&I(d[0].key)},[d,P]),(0,r.useEffect)(()=>{u&&w(u)},[u]),(0,r.useEffect)(()=>{t&&!v&&(V(),Z()),t&&Z()},[t]);let Z=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&H(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,r.useEffect)(()=>{if(v?.installed&&!G.current){G.current=!0;let e=v.settings?.models?.providers?.["9router"];if(e){let t=v.settings?.agents?.defaults?.model?.primary;t&&T(t.replace("9router/","")),e.apiKey&&d?.some(t=>t.key===e.apiKey)&&I(e.apiKey)}let t=v.agents||[],s={};t.forEach(e=>{e.currentModel&&(s[e.id]=e.currentModel)}),U(s)}},[v,d]);let V=async()=>{C(!0);try{let e=await fetch("/api/cli-tools/openclaw-settings"),t=await e.json();w(t)}catch(e){w({installed:!1,error:e.message})}finally{C(!1)}},Q=()=>window.location.origin.replace("://localhost","://127.0.0.1"),X=()=>{let e=W||Q();return e.endsWith("/v1")?e:`${e}/v1`},ee=P&&!d.some(e=>e.key===P),et=async()=>{S(!0),M(null);try{let e=P?.trim()||(d?.length>0?d[0].key:null)||(m?null:"sk_9router"),t=await fetch("/api/cli-tools/openclaw-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:X(),apiKey:e,model:$,agentModels:R})}),s=await t.json();t.ok?(M({type:"success",text:"Settings applied successfully!"}),V()):M({type:"error",text:s.error||"Failed to apply settings"})}catch(e){M({type:"error",text:e.message})}finally{S(!1)}},es=async()=>{A(!0),M(null);try{let e=await fetch("/api/cli-tools/openclaw-settings",{method:"DELETE"}),t=await e.json();e.ok?(M({type:"success",text:"Settings reset successfully!"}),T(""),I(""),V()):M({type:"error",text:t.error||"Failed to reset settings"})}catch(e){M({type:"error",text:e.message})}finally{A(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:"/providers/openclaw.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===Y&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===Y&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===Y&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[k&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Open Claw CLI..."})]}),!k&&v&&!v.installed&&(0,l.jsx)("div",{className:"flex flex-col gap-4",children:(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Open Claw CLI not detected locally"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Manual configuration is still available if 9router is deployed on a remote server."})]})]}),(0,l.jsx)("div",{className:"flex items-center gap-2 pl-9",children:(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>B(!0),className:"!bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]})})]})}),!k&&v?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:W||((b=W||Q()).endsWith("/v1")?b:`${b}/v1`),onChange:J,requiresExternalUrl:e.requiresExternalUrl,tunnelEnabled:h,tunnelPublicUrl:g,tailscaleEnabled:f,tailscaleUrl:y})]}),v?.settings?.models?.providers?.["9router"]?.baseUrl&&(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:v.settings.models.providers["9router"].baseUrl})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),d.length>0||P?(0,l.jsxs)("select",{value:P,onChange:e=>I(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[ee&&(0,l.jsx)("option",{value:P,children:P}),d.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:m?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Default Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:$,onChange:e=>T(e.target.value),placeholder:"provider/model-id",className:"w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),$&&(0,l.jsx)("button",{onClick:()=>T(""),className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>{D(null),L(!0)},disabled:!o,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${o?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select"})]}),(v.agents||[]).filter(e=>e.agentDir).map(e=>(0,l.jsxs)("div",{className:"flex items-center gap-2 pl-4",children:[(0,l.jsxs)("span",{className:"w-32 shrink-0 text-xs text-primary text-right truncate",title:e.name||e.id,children:["Agent ",e.name||e.id]}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:R[e.id]||"",onChange:t=>U(s=>({...s,[e.id]:t.target.value})),placeholder:`default (${$||"provider/model-id"})`,className:"w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),R[e.id]&&(0,l.jsx)("button",{onClick:()=>U(t=>({...t,[e.id]:""})),className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>{D(e.id),L(!0)},disabled:!o,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${o?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select"})]},e.id))]}),O&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===O.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===O.type?"check_circle":"error"}),(0,l.jsx)("span",{children:O.text})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:et,disabled:!$,loading:_,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:es,disabled:!v?.has9Router,loading:E,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>B(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.rq,{isOpen:K,onClose:()=>L(!1),onSelect:e=>{z?(U(t=>({...t,[z]:e.value})),D(null)):T(e.value),L(!1)},selectedModel:$,activeProviders:c,modelAliases:F,title:"Select Model for Open Claw"}),(0,l.jsx)(a.uR,{isOpen:q,onClose:()=>B(!1),title:"Open Claw - Manual Configuration",configs:(N=P&&P.trim()?P:m?"":"sk_9router",[{filename:"~/.openclaw/openclaw.json",content:JSON.stringify({agents:{defaults:{model:{primary:`9router/${$||"provider/model-id"}`}}},models:{providers:{"9router":{baseUrl:X(),apiKey:N,api:"openai-completions",models:[{id:$||"provider/model-id",name:($||"provider/model-id").split("/").pop()}]}}}},null,2)}])})]})}let N="/api/cli-tools/hermes-settings";function v({tool:e,isExpanded:t,onToggle:s,baseUrl:n,hasActiveProviders:o,apiKeys:d,activeProviders:c,cloudEnabled:m,initialStatus:u,tunnelEnabled:h,tunnelPublicUrl:g,tailscaleEnabled:f,tailscaleUrl:y}){let b,[j,w]=(0,r.useState)(u||null),[k,C]=(0,r.useState)(!1),[_,S]=(0,r.useState)(!1),[E,A]=(0,r.useState)(!1),[O,M]=(0,r.useState)(null),[P,I]=(0,r.useState)(""),[$,T]=(0,r.useState)(""),[R,U]=(0,r.useState)(!1),[z,D]=(0,r.useState)({}),[K,L]=(0,r.useState)(!1),[F,H]=(0,r.useState)(""),q=(0,r.useRef)(!1),B=(()=>{if(!j?.installed)return null;let e=j.settings?.model;return e?.base_url?p(e.base_url,{tunnelPublicUrl:g,tailscaleUrl:y})?"configured":"other":"not_configured"})();(0,r.useEffect)(()=>{d?.length>0&&!P&&I(d[0].key)},[d,P]),(0,r.useEffect)(()=>{u&&w(u)},[u]),(0,r.useEffect)(()=>{t&&!j&&(J(),W()),t&&W()},[t]);let W=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&D(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}};(0,r.useEffect)(()=>{if(j?.installed&&!q.current){q.current=!0;let e=j.settings?.model;e?.default&&T(e.default)}},[j]);let J=async()=>{C(!0);try{let e=await fetch(N),t=await e.json();w(t)}catch(e){w({installed:!1,error:e.message})}finally{C(!1)}},G=()=>{let e=F||window.location.origin.replace("://localhost","://127.0.0.1");return e.endsWith("/v1")?e:`${e}/v1`},Y=P&&!d.some(e=>e.key===P),Z=async()=>{S(!0),M(null);try{let e=P?.trim()||(d?.length>0?d[0].key:null)||(m?null:"sk_9router"),t=await fetch(N,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:G(),apiKey:e,model:$})}),s=await t.json();t.ok?(M({type:"success",text:"Settings applied successfully!"}),J()):M({type:"error",text:s.error||"Failed to apply settings"})}catch(e){M({type:"error",text:e.message})}finally{S(!1)}},V=async()=>{A(!0),M(null);try{let e=await fetch(N,{method:"DELETE"}),t=await e.json();e.ok?(M({type:"success",text:"Settings reset successfully!"}),T(""),J()):M({type:"error",text:t.error||"Failed to reset settings"})}catch(e){M({type:"error",text:e.message})}finally{A(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:"/providers/hermes.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===B&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===B&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===B&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[k&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Hermes Agent..."})]}),!k&&j&&!j.installed&&(0,l.jsx)("div",{className:"flex flex-col gap-4",children:(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Hermes Agent not detected locally"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Install: curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash"})]})]}),(0,l.jsx)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2 pl-0 sm:pl-9",children:(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>L(!0),className:"w-full sm:w-auto !bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]})})]})}),!k&&j?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:F||G(),onChange:H,requiresExternalUrl:e.requiresExternalUrl,tunnelEnabled:h,tunnelPublicUrl:g,tailscaleEnabled:f,tailscaleUrl:y})]}),j?.settings?.model?.base_url&&(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:j.settings.model.base_url})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),d.length>0||P?(0,l.jsxs)("select",{value:P,onChange:e=>I(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[Y&&(0,l.jsx)("option",{value:P,children:P}),d.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:m?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Default Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:$,onChange:e=>T(e.target.value),placeholder:"provider/model-id",className:"w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),$&&(0,l.jsx)("button",{onClick:()=>T(""),className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>U(!0),disabled:!o,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${o?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select"})]})]}),O&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===O.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===O.type?"check_circle":"error"}),(0,l.jsx)("span",{children:O.text})]}),(0,l.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:Z,disabled:!$,loading:_,className:"w-full sm:w-auto",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:V,disabled:!j?.has9Router,loading:E,className:"w-full sm:w-auto",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>L(!0),className:"w-full sm:w-auto",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.rq,{isOpen:R,onClose:()=>U(!1),onSelect:e=>{T(e.value),U(!1)},selectedModel:$,activeProviders:c,modelAliases:z,title:"Select Model for Hermes Agent"}),(0,l.jsx)(a.uR,{isOpen:K,onClose:()=>L(!1),title:"Hermes Agent - Manual Configuration",configs:(b=P&&P.trim()?P:m?"":"sk_9router",[{filename:"~/.hermes/config.yaml",content:`model: + default: "${$||"provider/model-id"}" + provider: "custom" + base_url: "${G()}" +`},{filename:"~/.hermes/.env",content:`OPENAI_API_KEY=${b} +`}])})]})}var w=s(96459);function k({toolId:e,tool:t,isExpanded:s,onToggle:n,baseUrl:o,apiKeys:d,activeProviders:c=[],cloudEnabled:m=!1,tunnelEnabled:x=!1}){let[u,p]=(0,r.useState)(null),[h,g]=(0,r.useState)(!1),[f,y]=(0,r.useState)(""),[b,j]=(0,r.useState)(()=>d?.length>0?d[0].key:""),N=e=>{let t=b&&b.trim()?b:m?"your-api-key":"sk_9router",s=o||"http://localhost:20128",l=s.endsWith("/v1")?s:`${s}/v1`;return e.replace(/\{\{baseUrl\}\}/g,l).replace(/\{\{apiKey\}\}/g,t).replace(/\{\{model\}\}/g,f||"provider/model-id")},{copy:v}=(0,w.C)(),C=async(e,t)=>{await v(N(e),`toolcard-${t}`),p(t),setTimeout(()=>p(null),2e3)},_=c.length>0,S=()=>(!t.requiresExternalUrl||!!m||!!x)&&(!t.requiresCloud||!!m);return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden overflow-x-hidden",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between hover:cursor-pointer",onClick:n,children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 rounded-lg flex items-center justify-center shrink-0",children:t.image?(0,l.jsx)(i.default,{src:t.image,alt:t.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}}):t.icon?(0,l.jsx)("span",{className:"material-symbols-outlined text-xl",style:{color:t.color},children:t.icon}):(0,l.jsx)(i.default,{src:`/providers/${e}.png`,alt:t.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:t.name}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:t.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${s?"rotate-180":""}`,children:"expand_more"})]}),s&&(0,l.jsx)("div",{className:"mt-6 pt-6 border-t border-border",children:t.guideSteps?(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[t.notes&&0!==t.notes.length?(0,l.jsx)("div",{className:"flex flex-col gap-2 mb-4",children:t.notes.map((e,t)=>{if("cloudCheck"===e.type&&(m||x))return null;let s="warning"===e.type,r="cloudCheck"===e.type&&!m&&!x,a="bg-blue-500/10 border-blue-500/30",i="text-blue-600 dark:text-blue-400",n="text-blue-500",o="info";return s?(a="bg-yellow-500/10 border-yellow-500/30",i="text-yellow-600 dark:text-yellow-400",n="text-yellow-500",o="warning"):r&&(a="bg-red-500/10 border-red-500/30",i="text-red-600 dark:text-red-400",n="text-red-500",o="error"),(0,l.jsxs)("div",{className:`flex items-start gap-3 p-3 rounded-lg border ${a}`,children:[(0,l.jsx)("span",{className:`material-symbols-outlined text-lg ${n}`,children:o}),(0,l.jsx)("p",{className:`text-sm ${i}`,children:e.text})]},t)})}):null,S()&&t.guideSteps.map(e=>(0,l.jsxs)("div",{className:"flex items-start gap-4",children:[(0,l.jsx)("div",{className:"size-8 rounded-full flex items-center justify-center shrink-0 text-sm font-semibold text-white",style:{backgroundColor:t.color},children:e.step}),(0,l.jsxs)("div",{className:"flex-1 min-w-0",children:[(0,l.jsx)("p",{className:"font-medium text-text",children:e.title}),e.desc&&(0,l.jsx)("p",{className:"text-sm text-text-muted mt-0.5",children:e.desc}),"apiKeySelector"===e.type&&(0,l.jsx)("div",{className:"mt-2 flex flex-col sm:flex-row sm:items-center gap-2",children:d&&d.length>0?(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("select",{value:b,onChange:e=>j(e.target.value),className:"w-full sm:w-auto flex-1 px-3 py-2 bg-bg-secondary rounded-lg text-sm border border-border focus:outline-none focus:ring-1 focus:ring-primary/50",children:d.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))}),(0,l.jsx)("button",{onClick:()=>C(b,"apiKey"),className:"shrink-0 px-3 py-2 bg-bg-secondary hover:bg-bg-tertiary rounded-lg border border-border transition-colors",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-lg",children:"apiKey"===u?"check":"content_copy"})})]}):(0,l.jsx)("span",{className:"text-sm text-text-muted",children:m?"No API keys - Create one in Keys page":"sk_9router"})}),"modelSelector"===e.type&&(0,l.jsxs)("div",{className:"mt-2 flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,l.jsx)("input",{type:"text",value:f,onChange:e=>y(e.target.value),placeholder:"provider/model-id",className:"w-full sm:w-auto flex-1 px-3 py-2 bg-bg-secondary rounded-lg text-sm border border-border focus:outline-none focus:ring-1 focus:ring-primary/50"}),(0,l.jsx)("button",{onClick:()=>g(!0),disabled:!_,className:`shrink-0 px-3 py-2 rounded-lg border text-sm transition-colors ${_?"bg-bg-secondary border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),f&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)("button",{onClick:()=>C(f,"model"),className:"shrink-0 px-3 py-2 bg-bg-secondary hover:bg-bg-tertiary rounded-lg border border-border transition-colors",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-lg",children:"model"===u?"check":"content_copy"})}),(0,l.jsx)("button",{onClick:()=>y(""),className:"p-2 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-lg",children:"close"})})]})]}),e.value&&(0,l.jsxs)("div",{className:"mt-2 flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,l.jsx)("code",{className:"w-full sm:w-auto flex-1 px-3 py-2 bg-bg-secondary rounded-lg text-sm font-mono border border-border truncate",children:N(e.value)}),e.copyable&&(0,l.jsx)("button",{onClick:()=>C(e.value,`${e.step}-${e.title}`),className:"shrink-0 px-3 py-2 bg-bg-secondary hover:bg-bg-tertiary rounded-lg border border-border transition-colors",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-lg",children:u===`${e.step}-${e.title}`?"check":"content_copy"})})]})]})]},e.step)),S()&&t.codeBlock&&(0,l.jsxs)("div",{className:"mt-2",children:[(0,l.jsxs)("div",{className:"flex items-center justify-between mb-2",children:[(0,l.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wide",children:t.codeBlock.language}),(0,l.jsxs)("button",{onClick:()=>C(t.codeBlock.code,"codeblock"),className:"flex items-center gap-1 px-2 py-1 text-xs bg-bg-secondary hover:bg-bg-tertiary rounded border border-border transition-colors",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-sm",children:"codeblock"===u?"check":"content_copy"}),"codeblock"===u?"Copied!":"Copy"]})]}),(0,l.jsx)("pre",{className:"p-4 bg-bg-secondary rounded-lg border border-border overflow-x-auto",children:(0,l.jsx)("code",{className:"text-sm font-mono whitespace-pre",children:N(t.codeBlock.code)})})]})]}):(0,l.jsx)("p",{className:"text-text-muted text-sm",children:"Coming soon..."})}),(0,l.jsx)(a.rq,{isOpen:h,onClose:()=>g(!1),onSelect:e=>{y(e.value)},selectedModel:f,activeProviders:c,title:"Select Model"})]})}function C({tool:e,isExpanded:t,onToggle:s,baseUrl:n,apiKeys:o,activeProviders:d,cloudEnabled:c,initialStatus:m,tunnelEnabled:u,tunnelPublicUrl:h,tailscaleEnabled:g,tailscaleUrl:f}){let y,b,j,N,v,[w,k]=(0,r.useState)(m||null),[_,S]=(0,r.useState)(!1),[E,A]=(0,r.useState)(!1),[O,M]=(0,r.useState)(!1),[P,I]=(0,r.useState)(null),[$,T]=(0,r.useState)(!1),[R,U]=(0,r.useState)(""),[z,D]=(0,r.useState)(""),[K,L]=(0,r.useState)(""),[F,H]=(0,r.useState)(!1),[q,B]=(0,r.useState)(!1),[W,J]=(0,r.useState)({}),[G,Y]=(0,r.useState)(!1),[Z,V]=(0,r.useState)(""),[Q,X]=(0,r.useState)([]),[ee,et]=(0,r.useState)("");(0,r.useEffect)(()=>{o?.length>0&&!R&&U(o[0].key)},[o,R]),(0,r.useEffect)(()=>{m&&k(m)},[m]),(0,r.useEffect)(()=>{t&&!w&&(ei(),es()),t&&es()},[t]),(0,r.useEffect)(()=>{w?.opencode?.models&&X(w.opencode.models),w?.opencode?.activeModel&&et(w.opencode.activeModel),w?.config?.agent?.explorer?.model?.startsWith("9router/")&&L(w.config.agent.explorer.model.replace("9router/",""))},[w]);let es=async()=>{try{let e=await fetch("/api/models/alias"),t=await e.json();e.ok&&J(t.aliases||{})}catch(e){console.log("Error fetching model aliases:",e)}},el=w?.installed?w.config&&w.has9Router?p(w.config?.provider?.["9router"]?.options?.baseURL||"",{tunnelPublicUrl:h,tailscaleUrl:f})?"configured":"other":"not_configured":null,er=()=>{let e=Z||n;return e.endsWith("/v1")?e:`${e}/v1`},ea=R&&!o.some(e=>e.key===R),ei=async()=>{S(!0);try{let e=await fetch("/api/cli-tools/opencode-settings"),t=await e.json();k(t)}catch(e){k({installed:!1,error:e.message})}finally{S(!1)}},en=async()=>{A(!0),I(null);try{let e=R&&R.trim()||c?R:"sk_9router",t=await fetch("/api/cli-tools/opencode-settings",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:er(),apiKey:e,models:Q,activeModel:""===ee?"":ee||Q[0],subagentModel:K})}),s=await t.json();t.ok?(I({type:"success",text:"Settings applied successfully!"}),ei()):I({type:"error",text:s.error||"Failed to apply settings"})}catch(e){I({type:"error",text:e.message})}finally{A(!1)}},eo=async()=>{M(!0),I(null);try{let e=await fetch("/api/cli-tools/opencode-settings",{method:"DELETE"}),t=await e.json();e.ok?(I({type:"success",text:"Settings reset successfully!"}),D(""),L(""),X([]),et(""),ei()):I({type:"error",text:t.error||"Failed to reset settings"})}catch(e){I({type:"error",text:e.message})}finally{M(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:"/providers/opencode.png",alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===el&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===el&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===el&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[_&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking OpenCode CLI..."})]}),!_&&w&&!w.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"OpenCode CLI not detected locally"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Manual configuration is still available if 9router is deployed on a remote server."})]})]}),(0,l.jsxs)("div",{className:"flex items-center gap-2 pl-9",children:[(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>Y(!0),className:"!bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:()=>T(!$),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:$?"expand_less":"help"}),$?"Hide":"How to Install"]})]})]}),$&&(0,l.jsxs)("div",{className:"p-4 bg-surface border border-border rounded-lg",children:[(0,l.jsx)("h4",{className:"font-medium mb-3",children:"Installation Guide"}),(0,l.jsxs)("div",{className:"space-y-3 text-sm",children:[(0,l.jsxs)("div",{children:[(0,l.jsx)("p",{className:"text-text-muted mb-1",children:"macOS / Linux:"}),(0,l.jsx)("code",{className:"block px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs",children:"npm install -g opencode-ai"})]}),(0,l.jsxs)("p",{className:"text-text-muted",children:["After installation, run ",(0,l.jsx)("code",{className:"px-1 bg-black/5 dark:bg-white/5 rounded",children:"opencode"})," to verify."]})]})]})]}),!_&&w?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:Z||Z||`${n}/v1`,onChange:V,requiresExternalUrl:e.requiresExternalUrl,tunnelEnabled:u,tunnelPublicUrl:h,tailscaleEnabled:g,tailscaleUrl:f})]}),w?.config?.provider?.["9router"]?.options?.baseURL&&(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:w.config.provider["9router"].options.baseURL})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),o.length>0||R?(0,l.jsxs)("select",{value:R,onChange:e=>U(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[ea&&(0,l.jsx)("option",{value:R,children:R}),o.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:c?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-start sm:gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right pt-1",children:"Models"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px] mt-1.5",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"flex-1 flex flex-col gap-2",children:[(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5 min-h-[28px] px-2 py-1.5 bg-surface rounded border border-border",children:0===Q.length?(0,l.jsx)("span",{className:"text-xs text-text-muted",children:"No models selected"}):Q.map(e=>(0,l.jsxs)("span",{onClick:async()=>{if(e===ee)try{(await fetch("/api/cli-tools/opencode-settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({clearActiveModel:!0})})).ok&&(et(""),ei())}catch(e){console.log("Error clearing active model:",e)}else et(e)},className:`inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs cursor-pointer transition-colors ${e===ee?"bg-primary/10 text-primary border border-primary":"bg-black/5 dark:bg-white/5 text-text-muted border border-transparent hover:border-border"}`,title:e===ee?"Click to clear active model":"Click to set as active",children:[e===ee&&(0,l.jsx)("span",{className:"material-symbols-outlined text-[10px]",children:"star"}),e,(0,l.jsx)("button",{onClick:async t=>{t.stopPropagation();try{if((await fetch(`/api/cli-tools/opencode-settings?model=${encodeURIComponent(e)}`,{method:"DELETE"})).ok){let t=Q.filter(t=>t!==e);X(t),ee===e&&et(""),ei()}}catch(e){console.log("Error removing model:",e)}},className:"ml-0.5 hover:text-red-500",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},e))}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("button",{onClick:()=>H(!0),disabled:!d?.length,className:`px-2 py-1 rounded border text-xs transition-colors ${d?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Add Model"}),(0,l.jsx)("span",{className:"text-xs text-text-muted",children:Q.length>0&&ee?(0,l.jsxs)(l.Fragment,{children:["Active: ",(0,l.jsx)("span",{className:"text-primary",children:ee})]}):Q.length>0?(0,l.jsx)("span",{className:"text-yellow-500",children:"Click a model to set/clear active"}):"Select models to add"})]})]})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Subagent Model"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:K,onChange:e=>L(e.target.value),placeholder:z||"provider/model-id (defaults to main model)",className:"w-full min-w-0 px-2 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5"}),(0,l.jsx)("button",{onClick:()=>B(!0),disabled:!d?.length,className:`w-full sm:w-auto rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 whitespace-nowrap sm:shrink-0 ${d?.length?"bg-surface border-border text-text-main hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select Model"}),K&&(0,l.jsx)("button",{onClick:()=>L(""),className:"p-1 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear (will use main model)",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]})]}),P&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===P.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===P.type?"check_circle":"error"}),(0,l.jsx)("span",{children:P.text})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-2 sm:flex sm:items-center",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:en,disabled:0===Q.length,loading:E,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:eo,disabled:!w.has9Router,loading:O,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>Y(!0),children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.rq,{isOpen:F,onClose:()=>H(!1),onSelect:e=>{!Q.includes(e.value)&&(X([...Q,e.value]),ee||et(e.value)),H(!1)},selectedModel:null,activeProviders:d,modelAliases:W,title:"Add Model for OpenCode"}),(0,l.jsx)(a.rq,{isOpen:q,onClose:()=>B(!1),onSelect:e=>{L(e.value),B(!1)},selectedModel:K,activeProviders:d,modelAliases:W,title:"Select Subagent Model for OpenCode"}),(0,l.jsx)(a.uR,{isOpen:G,onClose:()=>Y(!1),title:"OpenCode - Manual Configuration",configs:(y=R&&R.trim()?R:c?"":"sk_9router",b=Q.length>0?Q:["provider/model-id"],j=ee||Q[0]||b[0],N=K||j,v={},b.forEach(e=>{v[e]={name:e}}),[{filename:"~/.config/opencode/opencode.json",content:JSON.stringify({provider:{"9router":{npm:"@ai-sdk/openai-compatible",options:{baseURL:er(),apiKey:y},models:v}},model:`9router/${j}`,agent:{explorer:{description:"Fast explorer subagent for codebase exploration",mode:"subagent",model:`9router/${N}`}}},null,2)}])})]})}let _="/api/cli-tools/cowork-settings",S=e=>(e||"").replace(/\/v1\/?$/,"");function E({tool:e,isExpanded:t,onToggle:s,baseUrl:n,apiKeys:o,activeProviders:d,hasActiveProviders:c,cloudEnabled:m,cloudUrl:u,tunnelEnabled:p,tunnelPublicUrl:h,tailscaleEnabled:g,tailscaleUrl:f,initialStatus:y}){let b,j,[N,v]=(0,r.useState)(y||null),[w,k]=(0,r.useState)(!1),[C,A]=(0,r.useState)(!1),[O,M]=(0,r.useState)(!1),[P,I]=(0,r.useState)(null),[$,T]=(0,r.useState)(""),[R,U]=(0,r.useState)([]),[z,D]=(0,r.useState)(!1),[K,L]=(0,r.useState)(""),[F,H]=(0,r.useState)([]),[q,B]=(0,r.useState)(!1),[W,J]=(0,r.useState)(!1);(0,r.useEffect)(()=>{o?.length>0&&!$&&T(o[0].key)},[o,$]),(0,r.useEffect)(()=>{y&&v(y)},[y]),(0,r.useEffect)(()=>{t&&!N&&G()},[t]),(0,r.useEffect)(()=>{N?.cowork?.models?.length&&U(N.cowork.models),N?.cowork?.baseUrl&&!K&&L(S(N.cowork.baseUrl)),Array.isArray(N?.cowork?.selectedPlugins)&&H(N.cowork.selectedPlugins)},[N]);let G=async()=>{k(!0);try{let e=await fetch(_),t=await e.json();v(t)}catch(e){v({installed:!1,error:e.message})}finally{k(!1)}},Y=()=>{let e;return(e=(K||"").replace(/\/+$/,""))?/\/v1$/.test(e)?e:`${e}/v1`:""},Z=N?.installed?N?.cowork?.baseUrl?N.has9Router?"configured":"other":"not_configured":null,V=$&&!o.some(e=>e.key===$),Q=async()=>{I(null);let e=Y();if(0===R.length)return void I({type:"error",text:"Please select at least one model"});A(!0);try{let t=$?.trim()||(o?.length>0?o[0].key:null)||(m?null:"sk_9router"),s=await fetch(_,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:e,apiKey:t,models:R,plugins:F})}),l=await s.json();s.ok?(I({type:"success",text:"Settings applied. Quit & reopen Claude Desktop to load."}),G()):I({type:"error",text:l.error||"Failed to apply settings"})}catch(e){I({type:"error",text:e.message})}finally{A(!1)}},X=async({name:e,models:t})=>{try{let s=await fetch("/api/combos",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({name:e,models:t})});if(!s.ok){let e=await s.json();I({type:"error",text:e.error||"Failed to create combo"});return}R.includes(e)||U([...R,e]),J(!1),I({type:"success",text:`Combo "${e}" created and added.`})}catch(e){I({type:"error",text:e.message})}},ee=async()=>{M(!0),I(null);try{let e=await fetch(_,{method:"DELETE"}),t=await e.json();e.ok?(I({type:"success",text:"Settings reset successfully"}),U([]),G()):I({type:"error",text:t.error||"Failed to reset"})}catch(e){I({type:"error",text:e.message})}finally{M(!1)}};return(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:e.image,alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),"configured"===Z&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-green-500/10 text-green-600 dark:text-green-400 rounded-full",children:"Connected"}),"not_configured"===Z&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-yellow-500/10 text-yellow-600 dark:text-yellow-400 rounded-full",children:"Not configured"}),"other"===Z&&(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-blue-500/10 text-blue-600 dark:text-blue-400 rounded-full",children:"Other"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[w&&(0,l.jsxs)("div",{className:"flex items-center gap-2 text-text-muted",children:[(0,l.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),(0,l.jsx)("span",{children:"Checking Claude Cowork..."})]}),!w&&N&&!N.installed&&(0,l.jsxs)("div",{className:"flex flex-col gap-3 p-4 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsxs)("div",{className:"flex items-start gap-3",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500",children:"warning"}),(0,l.jsxs)("div",{className:"flex-1",children:[(0,l.jsx)("p",{className:"font-medium text-yellow-600 dark:text-yellow-400",children:"Claude Desktop (Cowork mode) not detected"}),(0,l.jsx)("p",{className:"text-sm text-text-muted",children:"Open Claude Desktop → Help → Troubleshooting → Enable Developer mode → Configure third-party inference, then return here."})]})]}),(0,l.jsx)("div",{className:"pl-9",children:(0,l.jsxs)(a.$n,{variant:"secondary",size:"sm",onClick:()=>D(!0),className:"!bg-yellow-500/20 !border-yellow-500/40 !text-yellow-700 dark:!text-yellow-300 hover:!bg-yellow-500/30",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[18px] mr-1",children:"content_copy"}),"Manual Config"]})})]}),!w&&N?.installed&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Select Endpoint"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)(x,{value:Y(),onChange:e=>L(S(e)),tunnelEnabled:p,tunnelPublicUrl:h,tailscaleEnabled:g,tailscaleUrl:f,cloudEnabled:m,cloudUrl:u})]}),N?.cowork?.baseUrl&&(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"Current"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("span",{className:"min-w-0 truncate rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:N.cowork.baseUrl})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),o.length>0||$?(0,l.jsxs)("select",{value:$,onChange:e=>T(e.target.value),className:"w-full min-w-0 px-2 py-2 bg-surface rounded text-xs border border-border focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5",children:[V&&(0,l.jsx)("option",{value:$,children:$}),o.map(e=>(0,l.jsx)("option",{value:e.key,children:e.key},e.id))]}):(0,l.jsx)("span",{className:"min-w-0 rounded bg-surface/40 px-2 py-2 text-xs text-text-muted sm:py-1.5",children:m?"No API keys - Create one in Keys page":"sk_9router (default)"})]}),(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[8rem_auto_1fr] sm:items-start sm:gap-2",children:[(0,l.jsx)("span",{className:"w-32 shrink-0 text-sm font-semibold text-text-main text-right pt-1",children:"Models"}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[14px] mt-1.5",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"flex-1 flex flex-col gap-2",children:[(0,l.jsx)("div",{className:"flex flex-wrap gap-1.5 min-h-[28px] px-2 py-1.5 bg-surface rounded border border-border",children:0===R.length?(0,l.jsx)("span",{className:"text-xs text-text-muted",children:"No models selected"}):R.map(e=>(0,l.jsxs)("span",{className:"inline-flex items-center gap-1 px-2 py-0.5 rounded text-xs bg-black/5 dark:bg-white/5 text-text-muted border border-transparent hover:border-border",children:[e,(0,l.jsx)("button",{onClick:()=>U(t=>t.filter(t=>t!==e)),className:"ml-0.5 hover:text-red-500",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]},e))}),(0,l.jsx)("button",{onClick:()=>J(!0),disabled:!c,className:`self-start px-2 py-1 rounded border text-xs transition-colors ${c?"bg-primary/10 border-primary/40 text-primary hover:bg-primary/20 cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"+ Add Combo (claude-)"})]})]}),!1]}),P&&(0,l.jsxs)("div",{className:`flex items-center gap-2 px-2 py-1.5 rounded text-xs ${"success"===P.type?"bg-green-500/10 text-green-600":"bg-red-500/10 text-red-600"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"success"===P.type?"check_circle":"error"}),(0,l.jsx)("span",{children:P.text})]}),(0,l.jsxs)("div",{className:"flex flex-col sm:flex-row sm:items-center gap-2",children:[(0,l.jsxs)(a.$n,{variant:"primary",size:"sm",onClick:Q,disabled:0===R.length,loading:C,className:"w-full sm:w-auto",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"save"}),"Apply"]}),(0,l.jsxs)(a.$n,{variant:"outline",size:"sm",onClick:ee,disabled:!N.has9Router,loading:O,className:"w-full sm:w-auto",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"restore"}),"Reset"]}),(0,l.jsxs)(a.$n,{variant:"ghost",size:"sm",onClick:()=>D(!0),className:"w-full sm:w-auto",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:"content_copy"}),"Manual Config"]})]})]})]}),(0,l.jsx)(a.uR,{isOpen:z,onClose:()=>D(!1),title:"Claude Cowork - Manual Configuration",configs:(b=$&&$.trim()?$:m?"":"sk_9router",j=R.length>0?R:["provider/model-id"],[{filename:"~/Library/Application Support/Claude-3p/configLibrary/.json",content:JSON.stringify({inferenceProvider:"gateway",inferenceGatewayBaseUrl:Y()||"https://your-public-host/v1",inferenceGatewayApiKey:b,inferenceModels:j.map(e=>({name:e}))},null,2)}])}),(0,l.jsx)(a.CK,{isOpen:W,combo:null,onClose:()=>J(!1),onSave:X,activeProviders:d,forcePrefix:"claude-",title:"Create Cowork Combo"})]})}let A="http://localhost:20128";function O({apiKeys:e,cloudEnabled:t,onStatusChange:s}){let[i,n]=(0,r.useState)(null),[o,d]=(0,r.useState)(!1),[c,m]=(0,r.useState)(!1),[x,u]=(0,r.useState)(""),[p,h]=(0,r.useState)(()=>e?.[0]?.key||""),[g,f]=(0,r.useState)(null),[y,b]=(0,r.useState)(null),[j,N]=(0,r.useState)(null),[v,w]=(0,r.useState)(A),[k,C]=(0,r.useState)(null),_=i?.isWin===!0,S=_||i?.hasCachedPassword||i?.needsSudoPassword===!1,E=i?.isAdmin!==!1;!E&&(_||i?.hasCachedPassword||i?.needsSudoPassword);let M=(0,r.useCallback)(async()=>{try{let e=await fetch("/api/cli-tools/antigravity-mitm");if(e.ok){let t=await e.json();n(t),t.mitmRouterBaseUrl&&w(t.mitmRouterBaseUrl),s?.(t)}}catch{n({running:!1,certExists:!1,dnsStatus:{}})}},[s]);(0,r.useEffect)(()=>{queueMicrotask(()=>{M()})},[M]);let P=e=>{N(null),i&&(S?I(e,""):(f(e),m(!0),b(null)))},I=async(s,l,r=!1)=>{d(!0),N(null);try{let a;if("trust-cert"===s)a=await fetch("/api/cli-tools/antigravity-mitm",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"trust-cert",sudoPassword:l})});else if("start"===s){let s=p?.trim()||(e?.length>0?e[0].key:null)||(t?null:"sk_9router");a=await fetch("/api/cli-tools/antigravity-mitm",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({apiKey:s,sudoPassword:l,mitmRouterBaseUrl:v.trim()||A,forceKillPort443:r})})}else a=await fetch("/api/cli-tools/antigravity-mitm",{method:"DELETE",headers:{"Content-Type":"application/json"},body:JSON.stringify({sudoPassword:l})});if(!a.ok){let e=await a.json().catch(()=>({}));if("PORT_443_BUSY"===e.code&&e.portOwner){m(!1),C({owner:e.portOwner,password:l});return}N(e.error||`Failed to ${s} MITM server`);return}m(!1),u(""),C(null),await M()}catch(e){N(e.message||"Network error")}finally{d(!1),f(null)}},$=()=>{x.trim()?I(g,x):b("Sudo password is required")},T=i?.running;return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(a.Zp,{padding:"sm",className:"border-primary/20 bg-primary/5",children:(0,l.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,l.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,l.jsxs)("div",{className:"flex min-w-0 flex-wrap items-center gap-2",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-primary text-[20px]",children:"security"}),(0,l.jsx)("span",{className:"font-semibold text-sm text-text-main",children:"MITM Server"}),T?(0,l.jsx)(a.Ex,{variant:"success",size:"sm",children:"Running"}):(0,l.jsx)(a.Ex,{variant:"default",size:"sm",children:"Stopped"})]}),(0,l.jsx)("div",{className:"flex flex-wrap items-center gap-1 text-xs text-text-muted","data-i18n-skip":"true",children:[{label:"Cert",ok:i?.certExists},{label:"Trusted",ok:i?.certTrusted},{label:"Server",ok:T}].map(({label:e,ok:t})=>(0,l.jsxs)("span",{className:`flex items-center gap-0.5 px-1.5 py-0.5 rounded ${t?"text-green-600":"text-text-muted"}`,children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:t?"check_circle":"cancel"}),e]},e))})]}),(0,l.jsxs)("div",{className:"px-2 py-2 rounded-lg bg-surface/50 border border-border/50 flex flex-col gap-2",children:[(0,l.jsxs)("p",{className:"text-[11px] text-text-muted leading-relaxed",children:[(0,l.jsx)("span",{className:"font-medium text-text-main",children:"Purpose:"})," Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router"]}),(0,l.jsxs)("p",{className:"text-[11px] text-text-muted leading-relaxed",children:[(0,l.jsx)("span",{className:"font-medium text-text-main",children:"How it works:"})," Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot"]})]}),(0,l.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,l.jsxs)("div",{className:"grid gap-1 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"9Router Base URL"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",value:v,onChange:e=>w(e.target.value),placeholder:A,disabled:T,className:"flex-1 min-w-0 px-2 py-1.5 bg-surface rounded border border-border text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50 disabled:opacity-50"})]}),!T&&(0,l.jsxs)("div",{className:"grid gap-1 sm:grid-cols-[8rem_auto_1fr] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right sm:text-sm",children:"API Key"}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsx)("input",{type:"text",list:"mitm-api-keys",value:p,onChange:e=>h(e.target.value),placeholder:t?"Enter or pick API key":"sk_9router (default)",className:"flex-1 min-w-0 px-2 py-1.5 bg-surface rounded border border-border text-xs text-text-main focus:outline-none focus:ring-1 focus:ring-primary/50"}),e?.length>0&&(0,l.jsx)("datalist",{id:"mitm-api-keys",children:e.map(e=>(0,l.jsx)("option",{value:e.key,children:e.name||e.key},e.id))})]})]}),(0,l.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:flex-wrap sm:items-center","data-i18n-skip":"true",children:[i?.certExists&&!i?.certTrusted&&(0,l.jsxs)("button",{onClick:()=>P("trust-cert"),disabled:o,className:"flex w-full items-center justify-center gap-1.5 rounded-lg border border-yellow-500/30 bg-yellow-500/10 px-4 py-2 text-xs font-medium text-yellow-600 transition-colors hover:bg-yellow-500/20 disabled:opacity-50 sm:w-auto sm:py-1.5",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"verified_user"}),"Trust Cert"]}),T?(0,l.jsxs)("button",{onClick:()=>P("stop"),disabled:o,className:"flex w-full items-center justify-center gap-1.5 rounded-lg border border-red-500/30 bg-red-500/10 px-4 py-2 text-xs font-medium text-red-500 transition-colors hover:bg-red-500/20 disabled:opacity-50 sm:w-auto sm:py-1.5",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop_circle"}),"Stop Server"]}):(0,l.jsxs)("button",{onClick:()=>P("start"),disabled:o||!i||_&&!E,title:_&&!E?"Administrator required":void 0,className:"flex w-full items-center justify-center gap-1.5 rounded-lg border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-medium text-primary transition-colors hover:bg-primary/20 disabled:opacity-50 sm:w-auto sm:py-1.5",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"play_circle"}),"Start Server"]}),T&&(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Enable DNS per tool below to activate interception"})]}),j&&(0,l.jsxs)("div",{className:"flex items-start gap-2 px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600 dark:text-red-400 border border-red-500/20",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px] mt-0.5 shrink-0",children:"error"}),(0,l.jsx)("span",{children:j})]}),_&&!E&&(0,l.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600 border border-red-500/20",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"shield_lock"}),(0,l.jsx)("span",{children:"Administrator required — restart 9Router as Administrator to use MITM"})]})]})}),c&&(0,l.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",children:(0,l.jsxs)("div",{className:"mx-4 flex w-full max-w-sm flex-col gap-4 rounded-xl border border-border bg-surface p-5 shadow-xl sm:p-6",children:[(0,l.jsx)("h3",{className:"font-semibold text-text-main",children:"Sudo Password Required"}),(0,l.jsxs)("div",{className:"flex items-start gap-3 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500 text-[20px]",children:"warning"}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Required for SSL certificate and server startup"})]}),(0,l.jsx)(a.pd,{type:"password",placeholder:"Enter sudo password",value:x,onChange:e=>u(e.target.value),onKeyDown:e=>{"Enter"!==e.key||o||$()}}),y&&(0,l.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),(0,l.jsx)("span",{children:y})]}),(0,l.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,l.jsx)(a.$n,{variant:"ghost",size:"sm",onClick:()=>{m(!1),u(""),b(null)},disabled:o,children:"Cancel"}),(0,l.jsx)(a.$n,{variant:"primary",size:"sm",onClick:$,loading:o,children:"Confirm"})]})]})}),k&&(0,l.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",children:(0,l.jsxs)("div",{className:"mx-4 flex w-full max-w-md flex-col gap-4 rounded-xl border border-border bg-surface p-5 shadow-xl sm:p-6",children:[(0,l.jsx)("h3",{className:"font-semibold text-text-main",children:"Port 443 Already In Use"}),(0,l.jsxs)("div",{className:"flex items-start gap-3 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500 text-[20px]",children:"warning"}),(0,l.jsxs)("div",{className:"flex flex-col gap-1 text-xs text-text-muted",children:[(0,l.jsx)("p",{children:"Port 443 đang bị process kh\xe1c chiếm:"}),(0,l.jsxs)("p",{className:"font-mono text-text-main","data-i18n-skip":"true",children:[k.owner.name," (PID ",k.owner.pid,")"]}),(0,l.jsx)("p",{children:"Kill process n\xe0y để chạy MITM Server?"})]})]}),(0,l.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,l.jsx)(a.$n,{variant:"ghost",size:"sm",onClick:()=>{C(null),d(!1)},disabled:o,children:"Cancel"}),(0,l.jsx)(a.$n,{variant:"primary",size:"sm",onClick:()=>{I("start",k?.password||"",!0)},loading:o,children:"Kill & Start"})]})]})})]})}var M=s(45727);function P({tool:e,isExpanded:t,onToggle:s,serverRunning:n,dnsActive:o,hasCachedPassword:d,needsSudoPassword:c,isWin:m,apiKeys:x,activeProviders:u,hasActiveProviders:p,modelAliases:h={},cloudEnabled:g,onDnsChange:f}){let[y,b]=(0,r.useState)(!1),[j,N]=(0,r.useState)(null),[v,w]=(0,r.useState)(!1),[k,C]=(0,r.useState)(""),[_,S]=(0,r.useState)(null),[E,A]=(0,r.useState)(null),[O,I]=(0,r.useState)({}),[$,T]=(0,r.useState)(!1),[R,U]=(0,r.useState)(null),z=M.TOOL_HOSTS[e.id]??[],D=m||d||!1===c;(0,r.useEffect)(()=>{t&&K()},[t]);let K=async()=>{try{let t=await fetch(`/api/cli-tools/antigravity-mitm/alias?tool=${e.id}`);if(t.ok){let e=await t.json();Object.keys(e.aliases||{}).length>0&&I(e.aliases)}}catch{}},L=(0,r.useCallback)(async t=>{try{await fetch("/api/cli-tools/antigravity-mitm/alias",{method:"PUT",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:e.id,mappings:t})})}catch{}},[e.id]),F=(e,t)=>{I(s=>({...s,[e]:t}))},H=()=>{if(!n)return;let e=o?"disable":"enable";D?q(e,""):(S(e),w(!0),A(null))},q=async(t,s)=>{b(!0),N(null);try{let l=await fetch("/api/cli-tools/antigravity-mitm",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({tool:e.id,action:t,sudoPassword:s})}),r=await l.json();if(!l.ok)throw Error(r.error||"Failed to toggle DNS");"enable"===t&&N(`Restart ${e.name} to apply changes`),w(!1),C(""),f?.(r)}catch{}finally{b(!1),S(null)}},B=()=>{k.trim()?q(_,k):A("Sudo password is required")};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(a.Zp,{padding:"xs",className:"overflow-hidden",children:[(0,l.jsxs)("div",{className:"flex items-start justify-between gap-3 hover:cursor-pointer sm:items-center",onClick:s,children:[(0,l.jsxs)("div",{className:"flex min-w-0 items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:e.image,alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex flex-wrap items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),n?o?(0,l.jsx)(a.Ex,{variant:"success",size:"sm",children:"Active"}):(0,l.jsx)(a.Ex,{variant:"warning",size:"sm",children:"DNS off"}):(0,l.jsx)(a.Ex,{variant:"default",size:"sm",children:"Server off"})]}),(0,l.jsxs)("p",{className:"text-xs text-text-muted sm:truncate",children:["Intercept ",e.name," requests via MITM proxy"]})]})]}),(0,l.jsx)("span",{className:`material-symbols-outlined text-text-muted text-[20px] transition-transform ${t?"rotate-180":""}`,children:"expand_more"})]}),t&&(0,l.jsxs)("div",{className:"mt-4 pt-4 border-t border-border flex flex-col gap-4",children:[z.length>0&&(0,l.jsxs)("div",{className:"mt-2 rounded-md border border-border bg-surface/50 px-2 py-1.5",children:[(0,l.jsx)("p",{className:"text-[10px] font-medium tracking-wide text-text-main/80 mb-1",children:"Edit hosts file manually to add the following entries:"}),(0,l.jsx)("ul",{className:"list-none space-y-0.5 font-mono text-[10px] text-text-muted break-all",children:z.map(e=>(0,l.jsxs)("li",{children:["127.0.0.1 ",e]},e))})]}),(0,l.jsxs)("div",{className:"flex flex-col gap-0.5 text-[11px] text-text-muted px-1",children:[(0,l.jsxs)("p",{children:["Toggle DNS to redirect ",e.name," traffic through 9Router via MITM."]}),!o&&(0,l.jsx)("p",{className:"text-amber-600 text-[10px] mt-1",children:"⚠️ Enable DNS to edit model mappings"})]}),e.defaultModels?.length>0&&(0,l.jsx)("div",{className:"flex flex-col gap-2",children:e.defaultModels.map(e=>(0,l.jsxs)("div",{className:"grid grid-cols-1 gap-1.5 sm:grid-cols-[9rem_auto_1fr_auto] sm:items-center sm:gap-2",children:[(0,l.jsx)("span",{className:"text-xs font-semibold text-text-main sm:text-right",children:e.name}),(0,l.jsx)("span",{className:"material-symbols-outlined hidden text-text-muted text-[14px] sm:inline",children:"arrow_forward"}),(0,l.jsxs)("div",{className:"relative w-full min-w-0",children:[(0,l.jsx)("input",{type:"text",value:O[e.alias]||"",onChange:t=>F(e.alias,t.target.value),onBlur:t=>{var s,l;return s=e.alias,l=t.target.value,void L({...O,[s]:l})},placeholder:"provider/model-id",disabled:!o,className:`w-full min-w-0 pl-2 pr-7 py-2 bg-surface rounded border border-border text-xs focus:outline-none focus:ring-1 focus:ring-primary/50 sm:py-1.5 ${!o?"opacity-50 cursor-not-allowed":""}`}),O[e.alias]&&(0,l.jsx)("button",{onClick:()=>{F(e.alias,""),L({...O,[e.alias]:""})},className:"absolute right-1 top-1/2 -translate-y-1/2 p-0.5 text-text-muted hover:text-red-500 rounded transition-colors",title:"Clear",children:(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"close"})})]}),(0,l.jsx)("button",{onClick:()=>{U(e.alias),T(!0)},disabled:!p||!o,className:`rounded border px-2 py-2 text-xs transition-colors sm:py-1.5 ${p&&o?"bg-surface border-border hover:border-primary cursor-pointer":"opacity-50 cursor-not-allowed border-border"}`,children:"Select"})]},e.alias))}),e.defaultModels?.length===0&&(0,l.jsx)("p",{className:"text-xs text-text-muted px-1",children:"Model mappings will be available soon."}),(0,l.jsxs)("div",{className:"flex flex-col gap-2 sm:items-start",children:[o?(0,l.jsxs)("button",{onClick:H,disabled:!n||y,className:"flex w-full items-center justify-center gap-1.5 rounded-lg border border-red-500/30 bg-red-500/10 px-4 py-2 text-xs font-medium text-red-500 transition-colors hover:bg-red-500/20 disabled:cursor-not-allowed disabled:opacity-50 sm:w-auto sm:py-1.5",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"stop_circle"}),"Stop DNS"]}):(0,l.jsxs)("button",{onClick:H,disabled:!n||y,className:"flex w-full items-center justify-center gap-1.5 rounded-lg border border-primary/30 bg-primary/10 px-4 py-2 text-xs font-medium text-primary transition-colors hover:bg-primary/20 disabled:cursor-not-allowed disabled:opacity-50 sm:w-auto sm:py-1.5",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"play_circle"}),"Start DNS"]}),j&&(0,l.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded text-xs text-amber-500",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"warning"}),(0,l.jsx)("span",{children:j})]})]})]})]}),v&&(0,l.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",children:(0,l.jsxs)("div",{className:"mx-4 flex w-full max-w-sm flex-col gap-4 rounded-xl border border-border bg-surface p-5 shadow-xl sm:p-6",children:[(0,l.jsx)("h3",{className:"font-semibold text-text-main",children:"Sudo Password Required"}),(0,l.jsxs)("div",{className:"flex items-start gap-3 p-3 bg-yellow-500/10 border border-yellow-500/30 rounded-lg",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-yellow-500 text-[20px]",children:"warning"}),(0,l.jsx)("p",{className:"text-xs text-text-muted",children:"Required to modify /etc/hosts and flush DNS cache"})]}),(0,l.jsx)(a.pd,{type:"password",placeholder:"Enter sudo password",value:k,onChange:e=>C(e.target.value),onKeyDown:e=>{"Enter"!==e.key||y||B()}}),E&&(0,l.jsxs)("div",{className:"flex items-center gap-2 px-2 py-1.5 rounded text-xs bg-red-500/10 text-red-600",children:[(0,l.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),(0,l.jsx)("span",{children:E})]}),(0,l.jsxs)("div",{className:"flex items-center justify-end gap-2",children:[(0,l.jsx)(a.$n,{variant:"ghost",size:"sm",onClick:()=>{w(!1),C(""),A(null)},disabled:y,children:"Cancel"}),(0,l.jsx)(a.$n,{variant:"primary",size:"sm",onClick:B,loading:y,children:"Confirm"})]})]})}),(0,l.jsx)(a.rq,{isOpen:$,onClose:()=>T(!1),onSelect:e=>{if(!R||e.isPlaceholder)return;let t={...O,[R]:e.value};I(t),L(t)},selectedModel:R?O[R]:null,activeProviders:u,modelAliases:h,title:`Select model for ${R}`})]})}var I=s(99568),$=s.n(I);function T({tool:e}){return(0,l.jsx)($(),{href:"/dashboard/mitm",className:"block",children:(0,l.jsx)(a.Zp,{padding:"sm",className:"overflow-hidden hover:border-primary/50 transition-colors cursor-pointer",children:(0,l.jsxs)("div",{className:"flex items-center justify-between",children:[(0,l.jsxs)("div",{className:"flex items-center gap-3",children:[(0,l.jsx)("div",{className:"size-8 flex items-center justify-center shrink-0",children:(0,l.jsx)(i.default,{src:e.image,alt:e.name,width:32,height:32,className:"size-8 object-contain rounded-lg",sizes:"32px",onError:e=>{e.target.style.display="none"}})}),(0,l.jsxs)("div",{className:"min-w-0",children:[(0,l.jsxs)("div",{className:"flex items-center gap-2",children:[(0,l.jsx)("h3",{className:"font-medium text-sm",children:e.name}),(0,l.jsx)("span",{className:"px-1.5 py-0.5 text-[10px] font-medium bg-purple-500/10 text-purple-600 dark:text-purple-400 rounded-full",children:"MITM"})]}),(0,l.jsx)("p",{className:"text-xs text-text-muted truncate",children:e.description})]})]}),(0,l.jsx)("span",{className:"material-symbols-outlined text-text-muted text-[20px]",children:"chevron_right"})]})})})}},45727:e=>{e.exports={TOOL_HOSTS:{antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"]}}},97990:(e,t,s)=>{s.d(t,{dM:()=>r,wn:()=>l});let l={antigravity:{id:"antigravity",name:"Antigravity",image:"/providers/antigravity.png",color:"#4285F4",description:"Google Antigravity IDE with MITM",configType:"mitm",mitmDomain:"daily-cloudcode-pa.googleapis.com",modelAliases:["claude-opus-4-6-thinking","claude-sonnet-4-6","gemini-3-flash","gpt-oss-120b-medium","gemini-3-pro-high","gemini-3-pro-low"],defaultModels:[{id:"gemini-3.1-pro-high",name:"Gemini 3.1 Pro High",alias:"gemini-3.1-pro-high"},{id:"gemini-3.1-pro-low",name:"Gemini 3.1 Pro Low",alias:"gemini-3.1-pro-low"},{id:"gemini-3-flash",name:"Gemini 3 Flash / Default",alias:"gemini-3-flash"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6",alias:"claude-sonnet-4-6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking",alias:"claude-opus-4-6-thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium",alias:"gpt-oss-120b-medium"}]},copilot:{id:"copilot",name:"GitHub Copilot",image:"/providers/copilot.png",color:"#1F6FEB",description:"GitHub Copilot IDE with MITM",configType:"mitm",mitmDomain:"api.individual.githubcopilot.com",modelAliases:["gpt-4o-mini","claude-haiku-4.5","gpt-4o","gpt-5-mini"],defaultModels:[{id:"gpt-4o",name:"GPT-4o",alias:"gpt-4o"},{id:"gpt-4.1",name:"GPT-4.1",alias:"gpt-4.1"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"}]},kiro:{id:"kiro",name:"Kiro",image:"/providers/kiro.png",color:"#FF6B00",description:"Kiro IDE with MITM",configType:"mitm",mitmDomain:"q.us-east-1.amazonaws.com",defaultModels:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5",alias:"claude-sonnet-4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4",alias:"claude-sonnet-4"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5",alias:"claude-haiku-4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",alias:"deepseek-3.2"},{id:"minimax-m2.1",name:"MiniMax M2.1",alias:"minimax-m2.1"},{id:"simple-task",name:"Qwen3 Coder Next",alias:"simple-task"}]}},r={claude:{id:"claude",name:"Claude Code",icon:"terminal",color:"#D97757",description:"Anthropic Claude Code CLI",configType:"env",envVars:{baseUrl:"ANTHROPIC_BASE_URL",model:"ANTHROPIC_MODEL",opusModel:"ANTHROPIC_DEFAULT_OPUS_MODEL",sonnetModel:"ANTHROPIC_DEFAULT_SONNET_MODEL",haikuModel:"ANTHROPIC_DEFAULT_HAIKU_MODEL"},modelAliases:["default","sonnet","opus","haiku","opusplan"],settingsFile:"~/.claude/settings.json",defaultModels:[{id:"opus",name:"Claude Opus",alias:"opus",envKey:"ANTHROPIC_DEFAULT_OPUS_MODEL",defaultValue:"cc/claude-opus-4-6"},{id:"sonnet",name:"Claude Sonnet",alias:"sonnet",envKey:"ANTHROPIC_DEFAULT_SONNET_MODEL",defaultValue:"cc/claude-sonnet-4-6"},{id:"haiku",name:"Claude Haiku",alias:"haiku",envKey:"ANTHROPIC_DEFAULT_HAIKU_MODEL",defaultValue:"cc/claude-haiku-4-5-20251001"}]},openclaw:{id:"openclaw",name:"Open Claw",image:"/providers/openclaw.png",color:"#FF6B35",description:"Open Claw AI Assistant",configType:"custom"},codex:{id:"codex",name:"OpenAI Codex CLI",image:"/providers/codex.png",color:"#10A37F",description:"OpenAI Codex CLI",configType:"custom"},opencode:{id:"opencode",name:"OpenCode",image:"/providers/opencode.png",color:"#E87040",description:"OpenCode AI Terminal Assistant",configType:"custom"},cowork:{id:"cowork",name:"Claude Cowork",image:"/providers/claude.png",color:"#D97757",description:"Claude Desktop Cowork (third-party inference)",configType:"custom"},hermes:{id:"hermes",name:"Hermes Agent",image:"/providers/hermes.png",color:"#8B5CF6",description:"Nous Research self-improving AI agent",configType:"custom"},droid:{id:"droid",name:"Factory Droid",image:"/providers/droid.png",color:"#00D4FF",description:"Factory Droid AI Assistant",configType:"custom"},cursor:{id:"cursor",name:"Cursor",image:"/providers/cursor.png",color:"#000000",description:"Cursor AI Code Editor",configType:"guide",requiresExternalUrl:!0,notes:[{type:"warning",text:"Requires Cursor Pro account to use this feature."},{type:"cloudCheck",text:"Cursor routes requests through its own server, so local endpoint is not supported. Please enable Tunnel or Cloud Endpoint in Settings."}],guideSteps:[{step:1,title:"Open Settings",desc:"Go to Settings → Models"},{step:2,title:"Enable OpenAI API",desc:'Enable "OpenAI API key" option'},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Add Custom Model",desc:'Click "View All Model" → "Add Custom Model"'},{step:6,title:"Select Model",type:"modelSelector"}]},cline:{id:"cline",name:"Cline",image:"/providers/cline.png",color:"#00D1B2",description:"Cline AI Coding Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Cline Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → OpenAI Compatible"},{step:3,title:"Base URL",value:"{{baseUrl}}/v1",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},kilo:{id:"kilo",name:"Kilo Code",image:"/providers/kilocode.png",color:"#FF6B6B",description:"Kilo Code AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Kilo Code Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → OpenAI Compatible"},{step:3,title:"Base URL",value:"{{baseUrl}}/v1",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},roo:{id:"roo",name:"Roo",image:"/providers/roo.png",color:"#FF6B6B",description:"Roo AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Settings",desc:"Go to Roo Settings panel"},{step:2,title:"Select Provider",desc:"Choose API Provider → Ollama"},{step:3,title:"Base URL",value:"{{baseUrl}}",copyable:!0},{step:4,title:"API Key",type:"apiKeySelector"},{step:5,title:"Select Model",type:"modelSelector"}]},continue:{id:"continue",name:"Continue",image:"/providers/continue.png",color:"#7C3AED",description:"Continue AI Assistant",configType:"guide",guideSteps:[{step:1,title:"Open Config",desc:"Open Continue configuration file"},{step:2,title:"API Key",type:"apiKeySelector"},{step:3,title:"Select Model",type:"modelSelector"},{step:4,title:"Add Model Config",desc:"Add the following configuration to your models array:"}],codeBlock:{language:"json",code:`{ + "apiBase": "{{baseUrl}}", + "title": "{{model}}", + "model": "{{model}}", + "provider": "openai", + "apiKey": "{{apiKey}}" +}`}}}}}]); \ No newline at end of file diff --git a/cli/app/.next/static/chunks/4156-cc8090a3b79e0545.js b/cli/app/.next/static/chunks/4156-cc8090a3b79e0545.js new file mode 100644 index 00000000000..cd46207a6b5 --- /dev/null +++ b/cli/app/.next/static/chunks/4156-cc8090a3b79e0545.js @@ -0,0 +1,7 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[4156],{292:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(73365),a=s(87706);function l({children:e,title:t,subtitle:s,icon:n,action:i,padding:o="md",hover:d=!1,elev:c=!1,className:m,...x}){return(0,r.jsxs)("div",{className:(0,a.cn)("bg-surface border border-border-subtle",c?"rounded-[14px] shadow-[var(--shadow-elev)]":"rounded-[14px] shadow-[var(--shadow-soft)]",d&&"hover:shadow-[var(--shadow-warm)] hover:border-brand-500/30 transition-all cursor-pointer",{none:"",xs:"p-3",sm:"p-4",md:"p-6",lg:"p-8"}[o],m),...x,children:[(t||i)&&(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[n&&(0,r.jsx)("div",{className:"p-2 rounded-[10px] bg-bg text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:n})}),(0,r.jsxs)("div",{children:[t&&(0,r.jsx)("h3",{className:"text-text-main font-semibold",children:t}),s&&(0,r.jsx)("p",{className:"text-sm text-text-muted",children:s})]})]}),i]}),e]})}l.Section=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-4 rounded-[10px]","bg-bg border border-border-subtle",t),...s,children:e})},l.Row=function({children:e,className:t,...s}){return(0,r.jsx)("div",{className:(0,a.cn)("p-3 -mx-3 px-3 transition-colors","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50",t),...s,children:e})},l.ListItem=function({children:e,actions:t,className:s,...l}){return(0,r.jsxs)("div",{className:(0,a.cn)("group flex items-center justify-between p-3 -mx-3 px-3","border-b border-border-subtle last:border-b-0","hover:bg-surface-2/50 transition-colors",s),...l,children:[(0,r.jsx)("div",{className:"flex-1 min-w-0",children:e}),t&&(0,r.jsx)("div",{className:"flex items-center gap-1 opacity-0 group-hover:opacity-100 transition-opacity",children:t})]})}},1755:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(73365),a=s(87706);function l({options:e=[],value:t,onChange:s,size:n="md",className:i}){let o={sm:"h-7 text-xs",md:"h-9 text-sm",lg:"h-11 text-base"};return(0,r.jsx)("div",{className:(0,a.cn)("inline-flex items-center p-1 rounded-[10px] overflow-x-auto","bg-surface-2",i),children:e.map(e=>(0,r.jsxs)("button",{onClick:()=>s(e.value),className:(0,a.cn)("shrink-0 px-4 rounded-[8px] font-medium transition-all",o[n],t===e.value?"bg-surface text-text-main shadow-sm":"text-text-muted hover:text-text-main"),children:[e.icon&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px] mr-1.5",children:e.icon}),e.label]},e.value))})}},3242:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156),o=s(96459);function d({isOpen:e,provider:t,providerInfo:s,onSuccess:l,onClose:n,oauthMeta:c,idcConfig:m}){let[x,u]=(0,a.useState)("waiting"),[p,h]=(0,a.useState)(null),[f,b]=(0,a.useState)(""),[g,j]=(0,a.useState)(null),[v,y]=(0,a.useState)(!1),[N,w]=(0,a.useState)(null),[k,C]=(0,a.useState)(!1),S=(0,a.useRef)(null),T=(0,a.useRef)(!1),{copied:$,copy:R}=(0,o.C)(),[I,P]=(0,a.useState)(!1),[E,O]=(0,a.useState)("/callback?code=..."),M=(0,a.useRef)(!1);(0,a.useEffect)(()=>{P("localhost"===window.location.hostname||"127.0.0.1"===window.location.hostname),O(`${window.location.origin}/callback?code=...`)},[]);let _=(0,a.useCallback)(async(e,s)=>{if(p)try{let r=await fetch(`/api/oauth/${t}/exchange`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,redirectUri:p.redirectUri,codeVerifier:p.codeVerifier,state:s,...c?{meta:c}:{}})}),a=await r.json();if(!r.ok)throw Error(a.error);u("success"),l?.()}catch(e){j(e.message),u("error")}},[p,t,l]),L=(0,a.useCallback)(async(e,s,r,a)=>{T.current=!1,C(!0);for(let n=0;n<60;n++){if(T.current){console.log("[OAuthModal] Polling aborted"),C(!1);return}if(await new Promise(e=>setTimeout(e,1e3*r)),T.current){console.log("[OAuthModal] Polling aborted after sleep"),C(!1);return}try{let n=await fetch(`/api/oauth/${t}/poll`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({deviceCode:e,codeVerifier:s,extraData:a})}),i=await n.json();if(i.success){T.current=!0,u("success"),C(!1),l?.();return}if("expired_token"===i.error||"access_denied"===i.error)throw Error(i.errorDescription||i.error);"slow_down"===i.error&&(r=Math.min(r+5,30))}catch(e){j(e.message),u("error"),C(!1);return}}j("Authorization timeout"),u("error"),C(!1)},[t,l]),A=(0,a.useCallback)(async()=>{if(t)try{let e;if(j(null),["github","qwen","kiro","kimi-coding","kilocode","codebuddy"].includes(t)){y(!0),u("waiting");let e=new URL(`/api/oauth/${t}/device-code`,window.location.origin);"kiro"===t&&m?.startUrl&&(e.searchParams.set("start_url",m.startUrl),m.region&&e.searchParams.set("region",m.region),e.searchParams.set("auth_method","idc"));let s=await fetch(e.toString()),r=await s.json();if(!s.ok)throw Error(r.error);w(r);let a=r.verification_uri_complete||r.verification_uri;a&&window.open(a,"_blank","noopener,noreferrer");let l="kiro"===t?{_clientId:r._clientId,_clientSecret:r._clientSecret,_region:r._region,_authMethod:r._authMethod,_startUrl:r._startUrl}:null;L(r.device_code,r.codeVerifier,r.interval||5,l);return}let s=window.location.port||("https:"===window.location.protocol?"443":"80");e="codex"===t?"http://localhost:1455/auth/callback":`http://localhost:${s}/callback`;let r=new URL(`/api/oauth/${t}/authorize`,window.location.origin);r.searchParams.set("redirect_uri",e),c&&Object.entries(c).forEach(([e,t])=>{t&&r.searchParams.set(e,t)});let a=await fetch(r.toString()),l=await a.json();if(!a.ok)throw Error(l.error);let n=!1,i=!1;if("codex"===t)try{let t=new URL("/api/oauth/codex/start-proxy",window.location.origin);t.searchParams.set("app_port",s),t.searchParams.set("state",l.state),t.searchParams.set("code_verifier",l.codeVerifier),t.searchParams.set("redirect_uri",e);let r=await fetch(t.toString()),a=await r.json();n=a.success,i=!!a.serverSide}catch{n=!1}h({...l,redirectUri:e,codexServerSide:i}),"codex"===t&&n||I&&"codex"!==t?(u("waiting"),S.current=window.open(l.authUrl,"oauth_popup","width=600,height=700"),S.current||u("input")):(u("input"),window.open(l.authUrl,"_blank"))}catch(e){j(e.message),u("error")}},[t,I,L,c,m]);(0,a.useEffect)(()=>{e&&t?(h(null),b(""),j(null),y(!1),w(null),C(!1),T.current=!1,A()):e||(T.current=!0,"codex"===t&&fetch("/api/oauth/codex/stop-proxy").catch(()=>{}))},[e,t,A]),(0,a.useEffect)(()=>{if(!p?.codexServerSide||!p?.state||M.current)return;let e=!1,t=0,s=async()=>{if(!e&&!M.current){t+=1;try{let t=await fetch(`/api/oauth/codex/poll-status?state=${encodeURIComponent(p.state)}`),s=await t.json();if(e||M.current)return;if("done"===s.status){M.current=!0,u("success"),l?.();return}if("error"===s.status){M.current=!0,j(s.error||"Authentication failed"),u("error");return}}catch{}if(t>=200){M.current=!0,j("Authentication timeout"),u("error");return}setTimeout(s,1500)}};return setTimeout(s,1500),()=>{e=!0}},[p,l]),(0,a.useEffect)(()=>{let e;if(!p)return;M.current=!1;let t=async e=>{if(M.current)return;let{code:t,state:s,error:r,errorDescription:a}=e;if(r){M.current=!0,j(a||r),u("error");return}t&&(M.current=!0,await _(t,s))},s=e=>{let s=e.origin.includes("localhost")||e.origin.includes("127.0.0.1"),r=e.origin===window.location.origin;(s||r)&&e.data?.type==="oauth_callback"&&t(e.data.data)};window.addEventListener("message",s);try{(e=new BroadcastChannel("oauth_callback")).onmessage=e=>t(e.data)}catch(e){console.log("BroadcastChannel not supported")}let r=e=>{if("oauth_callback"===e.key&&e.newValue)try{let s=JSON.parse(e.newValue);t(s),localStorage.removeItem("oauth_callback")}catch(e){console.log("Failed to parse localStorage data")}};window.addEventListener("storage",r);try{let e=localStorage.getItem("oauth_callback");if(e){let s=JSON.parse(e);s.timestamp&&Date.now()-s.timestamp<3e4&&t(s),localStorage.removeItem("oauth_callback")}}catch{}return()=>{window.removeEventListener("message",s),window.removeEventListener("storage",r),e&&e.close()}},[p,_]);let z=async()=>{try{j(null);let e=new URL(f),t=e.searchParams.get("code"),s=e.searchParams.get("state"),r=e.searchParams.get("error");if(r)throw Error(e.searchParams.get("error_description")||r);if(!t)throw Error("No authorization code found in URL");await _(t,s)}catch(e){j(e.message),u("error")}},U=(0,a.useCallback)(()=>{"codex"===t&&fetch("/api/oauth/codex/stop-proxy").catch(()=>{}),n()},[n,t]);if(!t||!s)return null;let q=N?.verification_uri_complete||N?.verification_uri||"";return(0,r.jsx)(i.aF,{isOpen:e,title:`Connect ${s.name}`,onClose:U,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[("waiting"===x||"input"===x)&&!v&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-3 py-2 border border-border rounded-lg bg-sidebar/50",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-base text-primary animate-spin",children:"progress_activity"}),(0,r.jsx)("span",{className:"text-sm",children:"Waiting for popup authorization…"})]}),(0,r.jsxs)("div",{className:"flex items-center gap-3 my-1",children:[(0,r.jsx)("div",{className:"flex-1 h-px bg-border"}),(0,r.jsx)("span",{className:"text-xs text-text-muted uppercase tracking-wider",children:"Or paste callback URL manually"}),(0,r.jsx)("div",{className:"flex-1 h-px bg-border"})]}),(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.pd,{value:p?.authUrl||"",readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,r.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===$?"check":"content_copy",onClick:()=>R(p?.authUrl,"auth_url"),disabled:!p?.authUrl,children:"Copy"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser."}),(0,r.jsx)(i.pd,{value:f,onChange:e=>b(e.target.value),placeholder:E,className:"font-mono text-xs"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:z,fullWidth:!0,disabled:!f,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:U,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"waiting"===x&&v&&N&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"text-center py-4",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Visit the login URL below and authorize:"}),(0,r.jsxs)("div",{className:"bg-sidebar p-4 rounded-lg mb-4",children:[(0,r.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Login URL"}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("code",{className:"flex-1 text-sm break-all",children:q}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"login_url"===$?"check":"content_copy",onClick:()=>R(q,"login_url"),disabled:!q}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"open_in_new",onClick:()=>window.open(q,"_blank","noopener,noreferrer"),disabled:!q,children:"Open"})]})]}),(0,r.jsxs)("div",{className:"bg-primary/10 p-4 rounded-lg",children:[(0,r.jsx)("p",{className:"text-xs text-text-muted mb-1",children:"Your Code"}),(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2",children:[(0,r.jsx)("p",{className:"text-2xl font-mono font-bold text-primary",children:N.user_code}),(0,r.jsx)(i.$n,{size:"sm",variant:"ghost",icon:"user_code"===$?"check":"content_copy",onClick:()=>R(N.user_code,"user_code")})]})]})]}),k&&(0,r.jsxs)("div",{className:"flex items-center justify-center gap-2 text-sm text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin",children:"progress_activity"}),"Waiting for authorization..."]})]}),"success"===x&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,r.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your ",s.name," account has been connected."]}),(0,r.jsx)(i.$n,{onClick:U,fullWidth:!0,children:"Done"})]}),"error"===x&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-sm text-red-600 mb-4",children:g}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:A,variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,r.jsx)(i.$n,{onClick:U,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}d.propTypes={isOpen:n().bool.isRequired,provider:n().string,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired,oauthMeta:n().object,idcConfig:n().shape({startUrl:n().string,region:n().string})}},3412:(e,t,s)=>{s.d(t,{default:()=>V});var r=s(73365),a=s(1521),l=s(29717),n=s(82495),i=s(35045),o=s(292),d=s(86447),c=s.n(d);let m=e=>new Intl.NumberFormat().format(e||0);function x({stats:e}){let t;return(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-1 gap-3 sm:grid-cols-2 md:grid-cols-4 sm:gap-4",children:[(0,r.jsxs)(o.default,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,r.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Requests"}),(0,r.jsx)("span",{className:"truncate text-2xl font-bold",children:m(e.totalRequests)})]}),(0,r.jsxs)(o.default,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,r.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Total Input Tokens"}),(0,r.jsx)("span",{className:"truncate text-2xl font-bold text-primary",children:m(e.totalPromptTokens)})]}),(0,r.jsxs)(o.default,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,r.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Output Tokens"}),(0,r.jsx)("span",{className:"truncate text-2xl font-bold text-success",children:m(e.totalCompletionTokens)})]}),(0,r.jsxs)(o.default,{className:"flex min-w-0 flex-col gap-1 px-4 py-3",children:[(0,r.jsx)("span",{className:"text-text-muted text-sm uppercase font-semibold",children:"Est. Cost"}),(0,r.jsxs)("span",{className:"truncate text-2xl font-bold text-warning",children:["~",(t=e.totalCost,`$${(t||0).toFixed(2)}`)]}),(0,r.jsx)("span",{className:"text-[10px] text-text-muted",children:"Estimated, not actual billing"})]})]})}x.propTypes={stats:c().object.isRequired};let u=e=>new Intl.NumberFormat().format(e||0),p=e=>`$${(e||0).toFixed(2)}`;function h(e){if(!e)return"Never";let t=Math.floor((Date.now()-new Date(e))/6e4);return t<1?"Just now":t<60?`${t}m ago`:t<1440?`${Math.floor(t/60)}h ago`:new Date(e).toLocaleDateString()}function f({field:e,currentSort:t,currentOrder:s}){return t!==e?(0,r.jsx)("span",{className:"ml-1 opacity-20",children:"↕"}):(0,r.jsx)("span",{className:"ml-1",children:"asc"===s?"↑":"↓"})}function b({item:e,viewMode:t,isSummary:s=!1}){return"tokens"===t?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.promptTokens?"—":u(e.promptTokens)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.completionTokens?"—":u(e.completionTokens)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right font-medium",children:u(e.totalTokens)})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.inputCost?"—":p(e.inputCost)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted",children:s&&void 0===e.outputCost?"—":p(e.outputCost)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right font-medium text-warning",children:p(e.totalCost||e.cost)})]})}function g({title:e,columns:t,groupedData:s,tableType:l,sortBy:n,sortOrder:i,onToggleSort:d,viewMode:c,storageKey:m,renderDetailCells:x,renderSummaryCells:u,emptyMessage:p}){let[h,j]=(0,a.useState)(new Set);(0,a.useEffect)(()=>{try{let e=localStorage.getItem(m);e&&j(new Set(JSON.parse(e)))}catch(e){console.error(`Failed to load ${m}:`,e)}},[m]),(0,a.useEffect)(()=>{try{localStorage.setItem(m,JSON.stringify([...h]))}catch(e){console.error(`Failed to save ${m}:`,e)}},[h,m]);let v=(0,a.useCallback)(e=>{j(t=>{let s=new Set(t);return s.has(e)?s.delete(e):s.add(e),s})},[]),y=(0,a.useMemo)(()=>"tokens"===c?[{field:"promptTokens",label:"Input Tokens"},{field:"completionTokens",label:"Output Tokens"},{field:"totalTokens",label:"Total Tokens"}]:[{field:"promptTokens",label:"Input Cost"},{field:"completionTokens",label:"Output Cost"},{field:"cost",label:"Total Cost"}],[c]),N=t.length+y.length;return(0,r.jsxs)(o.default,{className:"overflow-hidden",children:[(0,r.jsx)("div",{className:"p-4 border-b border-border bg-bg-subtle/50",children:(0,r.jsx)("h3",{className:"font-semibold",children:e})}),(0,r.jsx)("div",{className:"overflow-x-auto",children:(0,r.jsxs)("table",{className:"w-full text-sm text-left",children:[(0,r.jsx)("thead",{className:"bg-bg-subtle/30 text-text-muted uppercase text-xs",children:(0,r.jsxs)("tr",{children:[t.map(e=>(0,r.jsxs)("th",{className:`px-6 py-3 cursor-pointer hover:bg-bg-subtle/50 ${"right"===e.align?"text-right":""}`,onClick:()=>d(l,e.field),children:[e.label," ",(0,r.jsx)(f,{field:e.field,currentSort:n,currentOrder:i})]},e.field)),y.map(e=>(0,r.jsxs)("th",{className:"px-6 py-3 text-right cursor-pointer hover:bg-bg-subtle/50",onClick:()=>d(l,e.field),children:[e.label," ",(0,r.jsx)(f,{field:e.field,currentSort:n,currentOrder:i})]},e.field))]})}),(0,r.jsxs)("tbody",{className:"divide-y divide-border",children:[s.map(e=>(0,r.jsxs)(a.Fragment,{children:[(0,r.jsxs)("tr",{className:"group-summary cursor-pointer hover:bg-bg-subtle/50 transition-colors",onClick:()=>v(e.groupKey),children:[(0,r.jsx)("td",{className:"px-6 py-3",children:(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[18px] text-text-muted transition-transform ${h.has(e.groupKey)?"rotate-90":""}`,children:"chevron_right"}),(0,r.jsx)("span",{className:`font-medium transition-colors ${e.summary.pending>0?"text-primary":""}`,children:e.groupKey})]})}),u(e),(0,r.jsx)(b,{item:e.summary,viewMode:c,isSummary:!0})]}),h.has(e.groupKey)&&e.items.map(e=>(0,r.jsxs)("tr",{className:"group-detail hover:bg-bg-subtle/20 transition-colors",children:[x(e),(0,r.jsx)(b,{item:e,viewMode:c})]},`detail-${e.key}`))]},e.groupKey)),0===s.length&&(0,r.jsx)("tr",{children:(0,r.jsx)("td",{colSpan:N,className:"px-6 py-8 text-center text-text-muted",children:p})})]})]})})]})}f.propTypes={field:c().string.isRequired,currentSort:c().string.isRequired,currentOrder:c().string.isRequired},b.propTypes={item:c().object.isRequired,viewMode:c().string.isRequired,isSummary:c().bool},g.propTypes={title:c().string.isRequired,columns:c().arrayOf(c().shape({field:c().string.isRequired,label:c().string.isRequired,align:c().string})).isRequired,groupedData:c().array.isRequired,tableType:c().string.isRequired,sortBy:c().string.isRequired,sortOrder:c().string.isRequired,onToggleSort:c().func.isRequired,viewMode:c().string.isRequired,storageKey:c().string.isRequired,renderDetailCells:c().func.isRequired,renderSummaryCells:c().func.isRequired,emptyMessage:c().string.isRequired};var j=s(70842),v=s(36629);function y({data:e}){let{label:t,color:s,imageUrl:l,textIcon:n,active:i}=e,[o,d]=(0,a.useState)(!1);return(0,r.jsxs)("div",{className:"flex items-center gap-2.5 px-4 py-2.5 rounded-lg border-2 transition-all duration-300 bg-bg",style:{borderColor:i?s:"var(--color-border)",boxShadow:i?`0 0 16px ${s}40`:"none",minWidth:"150px"},children:[(0,r.jsx)(j.h7,{type:"target",position:v.yX.Top,id:"top",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)(j.h7,{type:"target",position:v.yX.Bottom,id:"bottom",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)(j.h7,{type:"target",position:v.yX.Left,id:"left",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)(j.h7,{type:"target",position:v.yX.Right,id:"right",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)("div",{className:"w-8 h-8 rounded-md flex items-center justify-center shrink-0",style:{backgroundColor:`${s}15`},children:o?(0,r.jsx)("span",{className:"text-sm font-bold",style:{color:s},children:n}):(0,r.jsx)("img",{src:l,alt:t,className:"w-6 h-6 rounded-sm object-contain",onError:()=>d(!0)})}),(0,r.jsx)("span",{className:"text-base font-medium truncate",style:{color:i?s:"var(--color-text)"},children:t}),i&&(0,r.jsxs)("span",{className:"relative flex h-2 w-2 shrink-0",children:[(0,r.jsx)("span",{className:"animate-ping absolute inline-flex h-full w-full rounded-full opacity-75",style:{backgroundColor:s}}),(0,r.jsx)("span",{className:"relative inline-flex rounded-full h-2 w-2",style:{backgroundColor:s}})]})]})}function N({data:e}){return(0,r.jsxs)("div",{className:"flex items-center justify-center px-5 py-3 rounded-xl border-2 border-primary bg-primary/5 shadow-md min-w-[130px]",children:[(0,r.jsx)(j.h7,{type:"source",position:v.yX.Top,id:"top",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)(j.h7,{type:"source",position:v.yX.Bottom,id:"bottom",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)(j.h7,{type:"source",position:v.yX.Left,id:"left",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)(j.h7,{type:"source",position:v.yX.Right,id:"right",className:"!bg-transparent !border-0 !w-0 !h-0"}),(0,r.jsx)("img",{src:"/favicon.svg",alt:"9Router",className:"w-6 h-6 mr-2"}),(0,r.jsx)("span",{className:"text-sm font-bold text-primary",children:"9Router"}),e.activeCount>0&&(0,r.jsx)("span",{className:"ml-2 px-1.5 py-0.5 rounded-full bg-primary text-white text-xs font-bold",children:e.activeCount})]})}s(97621),y.propTypes={data:c().object.isRequired},N.propTypes={data:c().object.isRequired};let w={provider:y,router:N};function k({providers:e=[],activeRequests:t=[],lastProvider:s="",errorProvider:l=""}){let i=(0,a.useMemo)(()=>t.map(e=>e.provider?.toLowerCase()).filter(Boolean).sort().join(","),[t]),o=s?.toLowerCase()||"",d=l?.toLowerCase()||"",c=(0,a.useMemo)(()=>new Set(i?i.split(","):[]),[i]),m=(0,a.useMemo)(()=>new Set(o?[o]:[]),[o]),x=(0,a.useMemo)(()=>new Set(d?[d]:[]),[d]),u=(0,a.useRef)({}),[p,h]=(0,a.useState)(0);(0,a.useEffect)(()=>{let e=u.current,t=Date.now();for(let s of c)e[s]||(e[s]=t);for(let t of Object.keys(e))c.has(t)||delete e[t]},[c]),(0,a.useEffect)(()=>{if(0===c.size)return;let e=setInterval(()=>h(e=>e+1),1e3);return()=>clearInterval(e)},[c]);let f=(0,a.useMemo)(()=>{let e=Date.now(),t=new Set;for(let s of c){let r=u.current[s];(!r||e-r<6e4)&&t.add(s)}return t},[c,p]),{nodes:b,edges:g}=(0,a.useMemo)(()=>(function(e,t,s,r){let a=e.length,l=Math.max(320,204*a/(2*Math.PI)),i=Math.max(200,.55*l);if(0===a)return{nodes:[{id:"router",type:"router",position:{x:0,y:0},data:{activeCount:0},draggable:!1}],edges:[]};let o=[],d=[];return o.push({id:"router",type:"router",position:{x:-60,y:-22},data:{activeCount:t.size},draggable:!1}),e.forEach((e,c)=>{var m,x;let u,p,h=(m=e.provider,n.Q2[m]||{color:"#6b7280",name:m}),f=t.has(e.provider?.toLowerCase()),b=!f&&s.has(e.provider?.toLowerCase()),g=!f&&r.has(e.provider?.toLowerCase()),j=`provider-${e.provider}`,v={label:(h.name!==e.provider?h.name:null)||e.name||e.provider,color:h.color||"#6b7280",imageUrl:(x=e.provider,`/providers/${x}.png`),textIcon:h.textIcon||(e.provider||"?").slice(0,2).toUpperCase(),active:f},y=-Math.PI/2+2*Math.PI*c/a,N=l*Math.cos(y),w=i*Math.sin(y);Math.abs(y+Math.PI/2)0?(u="right",p="left"):(u="left",p="right"),o.push({id:j,type:"provider",position:{x:N-90,y:w-15},data:v,draggable:!1}),d.push({id:`e-${j}`,source:"router",sourceHandle:u,target:j,targetHandle:p,animated:f,style:(h.color,g?{stroke:"#ef4444",strokeWidth:2.5,opacity:.9}:f?{stroke:"#22c55e",strokeWidth:2.5,opacity:.9}:b?{stroke:"#f59e0b",strokeWidth:2,opacity:.7}:{stroke:"var(--color-border)",strokeWidth:1,opacity:.3})})}),{nodes:o,edges:d}})(e,f,m,x),[e,f,o,d]),v=(0,a.useMemo)(()=>e.map(e=>e.provider).sort().join(","),[e]),y=(0,a.useRef)(null),N=(0,a.useRef)(null),C={padding:.2,duration:200},S=(0,a.useCallback)(e=>{y.current=e,setTimeout(()=>e.fitView(C),50)},[]);return(0,a.useEffect)(()=>{let e=N.current;if(!e)return;let t=new ResizeObserver(()=>{y.current&&y.current.fitView(C)});return t.observe(e),()=>t.disconnect()},[]),(0,a.useEffect)(()=>{if(y.current){let e=setTimeout(()=>y.current.fitView(C),50);return()=>clearTimeout(e)}},[b.length]),(0,r.jsx)("div",{ref:N,className:"h-[320px] w-full min-w-0 rounded-lg border border-border bg-bg-subtle/30 sm:h-[480px]",children:0===e.length?(0,r.jsx)("div",{className:"h-full flex items-center justify-center text-text-muted text-sm",children:"No providers connected"}):(0,r.jsx)(j.Gc,{nodes:b,edges:g,nodeTypes:w,fitView:!0,fitViewOptions:C,minZoom:.1,maxZoom:2,onInit:S,proOptions:{hideAttribution:!0},panOnDrag:!0,zoomOnScroll:!0,zoomOnPinch:!0,zoomOnDoubleClick:!0,preventScrolling:!1,nodesDraggable:!1,nodesConnectable:!1,elementsSelectable:!1,children:(0,r.jsx)(j.H2,{showInteractive:!1})},v)})}k.propTypes={providers:c().arrayOf(c().shape({id:c().string,provider:c().string,name:c().string})),activeRequests:c().arrayOf(c().shape({provider:c().string,model:c().string,account:c().string})),lastProvider:c().string,errorProvider:c().string};var C=s(71220),S=s(51142),T=s(35692),$=s(39719),R=s(94580),I=s(38147),P=s(80900);let E=e=>e>=1e6?`${(e/1e6).toFixed(1)}M`:e>=1e3?`${(e/1e3).toFixed(1)}K`:String(e||0),O=e=>`$${(e||0).toFixed(4)}`;function M({period:e="7d"}){let[t,s]=(0,a.useState)([]),[l,n]=(0,a.useState)(!0),[i,d]=(0,a.useState)("tokens"),c=(0,a.useCallback)(async()=>{n(!0);try{let t=await fetch(`/api/usage/chart?period=${e}`);if(t.ok){let e=await t.json();s(e)}}catch(e){console.error("Failed to fetch chart data:",e)}finally{n(!1)}},[e]);(0,a.useEffect)(()=>{c()},[c]);let m=t.some(e=>e.tokens>0||e.cost>0);return(0,r.jsxs)(o.default,{className:"flex min-w-0 flex-col gap-3 p-3 sm:p-4",children:[(0,r.jsxs)("div",{className:"grid w-full grid-cols-2 items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1 sm:w-auto sm:self-start",children:[(0,r.jsx)("button",{onClick:()=>d("tokens"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"tokens"===i?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Tokens"}),(0,r.jsx)("button",{onClick:()=>d("cost"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"cost"===i?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Cost"})]}),l?(0,r.jsx)("div",{className:"h-48 flex items-center justify-center text-text-muted text-sm",children:"Loading..."}):m?(0,r.jsx)(C.u,{width:"100%",height:220,children:(0,r.jsxs)(S.Q,{data:t,margin:{top:4,right:8,left:0,bottom:0},children:[(0,r.jsxs)("defs",{children:[(0,r.jsxs)("linearGradient",{id:"gradTokens",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,r.jsx)("stop",{offset:"5%",stopColor:"#6366f1",stopOpacity:.25}),(0,r.jsx)("stop",{offset:"95%",stopColor:"#6366f1",stopOpacity:0})]}),(0,r.jsxs)("linearGradient",{id:"gradCost",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,r.jsx)("stop",{offset:"5%",stopColor:"#f59e0b",stopOpacity:.25}),(0,r.jsx)("stop",{offset:"95%",stopColor:"#f59e0b",stopOpacity:0})]})]}),(0,r.jsx)(T.d,{strokeDasharray:"3 3",strokeOpacity:.1}),(0,r.jsx)($.W,{dataKey:"label",tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,interval:"preserveStartEnd"}),(0,r.jsx)(R.h,{tick:{fontSize:10,fill:"currentColor",fillOpacity:.5},tickLine:!1,axisLine:!1,tickFormatter:"tokens"===i?E:O,width:50}),(0,r.jsx)(I.m,{contentStyle:{backgroundColor:"var(--color-bg)",border:"1px solid var(--color-border)",borderRadius:"8px",fontSize:"12px"},formatter:(e,t)=>"tokens"===t?[E(e),"Tokens"]:[O(e),"Cost"]}),"tokens"===i?(0,r.jsx)(P.Gk,{type:"monotone",dataKey:"tokens",stroke:"#6366f1",strokeWidth:2,fill:"url(#gradTokens)",dot:!1,activeDot:{r:4}}):(0,r.jsx)(P.Gk,{type:"monotone",dataKey:"cost",stroke:"#f59e0b",strokeWidth:2,fill:"url(#gradCost)",dot:!1,activeDot:{r:4}})]})}):(0,r.jsx)("div",{className:"h-48 flex items-center justify-center text-text-muted text-sm",children:"No data for this period"})]})}function _(e){let t=n.Q2[e];return!t?.serviceKinds||t.serviceKinds.includes("llm")}function L({timestamp:e}){let t,[,s]=(0,a.useState)(0);return(0,a.useEffect)(()=>{let e=setInterval(()=>s(e=>e+1),1e3);return()=>clearInterval(e)},[]),(0,r.jsx)(r.Fragment,{children:(t=Math.floor((Date.now()-new Date(e))/1e3))<60?`${t}s ago`:t<3600?`${Math.floor(t/60)}m ago`:t<86400?`${Math.floor(t/3600)}h ago`:`${Math.floor(t/86400)}d ago`})}function A({requests:e=[]}){return(0,r.jsxs)(o.default,{className:"flex min-w-0 flex-col overflow-hidden",padding:"sm",style:{height:480},children:[(0,r.jsx)("div",{className:"px-1 py-2 border-b border-border shrink-0",children:(0,r.jsx)("span",{className:"text-xs font-semibold text-text-muted uppercase tracking-wide",children:"Recent Requests"})}),e.length?(0,r.jsx)("div",{className:"flex-1 overflow-y-auto",children:(0,r.jsxs)("table",{className:"w-full min-w-[300px] border-collapse text-xs",children:[(0,r.jsx)("thead",{className:"sticky top-0 bg-bg z-10",children:(0,r.jsxs)("tr",{className:"border-b border-border",children:[(0,r.jsx)("th",{className:"py-1.5 text-left font-semibold text-text-muted w-2"}),(0,r.jsx)("th",{className:"py-1.5 text-left font-semibold text-text-muted",children:"Model"}),(0,r.jsx)("th",{className:"py-1.5 text-right font-semibold text-text-muted whitespace-nowrap",children:"In / Out"}),(0,r.jsx)("th",{className:"py-1.5 text-right font-semibold text-text-muted",children:"When"})]})}),(0,r.jsx)("tbody",{className:"divide-y divide-border/50",children:e.map((e,t)=>{let s=!e.status||"ok"===e.status||"success"===e.status;return(0,r.jsxs)("tr",{className:"hover:bg-bg-subtle transition-colors",children:[(0,r.jsx)("td",{className:"py-1.5",children:(0,r.jsx)("span",{className:`block w-1.5 h-1.5 rounded-full ${s?"bg-success":"bg-error"}`})}),(0,r.jsx)("td",{className:"py-1.5 font-mono truncate max-w-[120px]",title:e.model,children:e.model}),(0,r.jsxs)("td",{className:"py-1.5 text-right whitespace-nowrap",children:[(0,r.jsxs)("span",{className:"text-primary",children:[u(e.promptTokens),"↑"]})," ",(0,r.jsxs)("span",{className:"text-success",children:[u(e.completionTokens),"↓"]})]}),(0,r.jsx)("td",{className:"py-1.5 text-right text-text-muted whitespace-nowrap",children:(0,r.jsx)(L,{timestamp:e.timestamp})})]},t)})})]})}):(0,r.jsx)("div",{className:"flex-1 flex items-center justify-center text-text-muted text-sm",children:"No requests yet."})]})}function z(e,t={},s,r){return Object.entries(e||{}).map(([e,s])=>{let r=(s.promptTokens||0)+(s.completionTokens||0),a=s.cost||0,l=r>0?(s.promptTokens||0)*(a/r):0,n=r>0?(s.completionTokens||0)*(a/r):0;return{...s,key:e,totalTokens:r,totalCost:a,inputCost:l,outputCost:n,pending:t[e]||0}}).sort((e,t)=>{let a=e[s],l=t[s];return("string"==typeof a&&(a=a.toLowerCase()),"string"==typeof l&&(l=l.toLowerCase()),al?"asc"===r?1:-1:0})}function U(e,t){if(!Array.isArray(e))return[];let s={};return e.forEach(e=>{let r=function(e,t){switch(t){case"rawModel":return e.rawModel||"Unknown Model";case"accountName":return e.accountName||`Account ${e.connectionId?.slice(0,8)}...`||"Unknown Account";case"keyName":return e.keyName||"Unknown Key";case"endpoint":return e.endpoint||"Unknown Endpoint";default:return e[t]||"Unknown"}}(e,t);s[r]||(s[r]={groupKey:r,summary:{requests:0,promptTokens:0,completionTokens:0,totalTokens:0,cost:0,inputCost:0,outputCost:0,lastUsed:null,pending:0},items:[]});let a=s[r].summary;a.requests+=e.requests||0,a.promptTokens+=e.promptTokens||0,a.completionTokens+=e.completionTokens||0,a.totalTokens+=e.totalTokens||0,a.cost+=e.cost||0,a.inputCost+=e.inputCost||0,a.outputCost+=e.outputCost||0,a.pending+=e.pending||0,e.lastUsed&&(!a.lastUsed||new Date(e.lastUsed)>new Date(a.lastUsed))&&(a.lastUsed=e.lastUsed),s[r].items.push(e)}),Object.values(s)}M.propTypes={period:c().string};let q=[{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],F=[{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"accountName",label:"Account"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],D=[{field:"keyName",label:"API Key Name"},{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],W=[{field:"endpoint",label:"Endpoint"},{field:"rawModel",label:"Model"},{field:"provider",label:"Provider"},{field:"requests",label:"Requests",align:"right"},{field:"lastUsed",label:"Last Used",align:"right"}],K=[{value:"model",label:"Usage by Model"},{value:"account",label:"Usage by Account"},{value:"apiKey",label:"Usage by API Key"},{value:"endpoint",label:"Usage by Endpoint"}],B=[{value:"24h",label:"24h"},{value:"7d",label:"7D"},{value:"30d",label:"30D"},{value:"60d",label:"60D"}];function V({period:e,setPeriod:t,hidePeriodSelector:s=!1}={}){let o=(0,l.useRouter)(),d=(0,l.useSearchParams)(),c=d.get("sortBy")||"rawModel",m=d.get("sortOrder")||"asc",[p,f]=(0,a.useState)(null),[b,j]=(0,a.useState)(!0),[v,y]=(0,a.useState)(!1),[N,w]=(0,a.useState)("model"),[C,S]=(0,a.useState)("costs"),[T,$]=(0,a.useState)([]),[R,I]=(0,a.useState)("7d"),P=e??R,E=t??I;(0,a.useEffect)(()=>{fetch("/api/providers").then(e=>e.ok?e.json():null).then(e=>{let t=new Set;$([...(e?.connections||[]).filter(e=>!(!1===e.isActive||!_(e.provider)||t.has(e.provider))&&(t.add(e.provider),!0)),...Object.values(n.IS).filter(e=>e.noAuth&&!t.has(e.id)&&_(e.id)).map(e=>({provider:e.id,name:e.name}))])}).catch(()=>{})},[]),(0,a.useEffect)(()=>{p?y(!0):j(!0),fetch(`/api/usage/stats?period=${P}`).then(e=>e.ok?e.json():null).then(e=>{e&&f(t=>({...t,...e}))}).catch(()=>{}).finally(()=>{j(!1),y(!1)})},[P]),(0,a.useEffect)(()=>{let e=new EventSource("/api/usage/stream");return e.onmessage=e=>{try{let t=JSON.parse(e.data);f(e=>({...e||{},activeRequests:t.activeRequests,recentRequests:t.recentRequests,errorProvider:t.errorProvider,pending:t.pending})),j(!1)}catch(e){console.error("[SSE CLIENT] parse error:",e)}},e.onerror=()=>j(!1),()=>e.close()},[]);let O=(0,a.useCallback)((e,t)=>{let s=new URLSearchParams(d.toString());s.get("sortBy")===t?s.set("sortOrder","asc"===s.get("sortOrder")?"desc":"asc"):(s.set("sortBy",t),s.set("sortOrder","asc")),o.replace(`?${s.toString()}`,{scroll:!1})},[d,o]),L=(0,a.useMemo)(()=>{if(!p)return null;switch(N){case"model":{let e=p.pending?.byModel||{};return{columns:q,groupedData:U(z(p.byModel,e,c,m),"rawModel"),storageKey:"usage-stats:expanded-models",emptyMessage:"No usage recorded yet.",renderSummaryCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.summary.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:`px-6 py-3 font-medium transition-colors ${e.pending>0?"text-primary":""}`,children:e.rawModel}),(0,r.jsx)("td",{className:"px-6 py-3",children:(0,r.jsx)(i.default,{variant:e.pending>0?"primary":"neutral",size:"sm",children:e.provider})}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.lastUsed)})]})}}case"account":{let e={};return p?.pending?.byAccount&&Object.entries(p.byAccount||{}).forEach(([t,s])=>{let r=p.pending.byAccount[s.connectionId];if(r){let a=s.provider?`${s.rawModel} (${s.provider})`:s.rawModel;e[t]=r[a]||0}}),{columns:F,groupedData:U(z(p.byAccount,e,c,m),"accountName"),storageKey:"usage-stats:expanded-accounts",emptyMessage:"No account-specific usage recorded yet.",renderSummaryCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.summary.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:`px-6 py-3 font-medium transition-colors ${e.pending>0?"text-primary":""}`,children:e.accountName||`Account ${e.connectionId?.slice(0,8)}...`}),(0,r.jsx)("td",{className:`px-6 py-3 font-medium transition-colors ${e.pending>0?"text-primary":""}`,children:e.rawModel}),(0,r.jsx)("td",{className:"px-6 py-3",children:(0,r.jsx)(i.default,{variant:e.pending>0?"primary":"neutral",size:"sm",children:e.provider})}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.lastUsed)})]})}}case"apiKey":return{columns:D,groupedData:U(z(p.byApiKey,{},c,m),"keyName"),storageKey:"usage-stats:expanded-apikeys",emptyMessage:"No API key usage recorded yet.",renderSummaryCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.summary.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 font-medium",children:e.keyName}),(0,r.jsx)("td",{className:"px-6 py-3",children:e.rawModel}),(0,r.jsx)("td",{className:"px-6 py-3",children:(0,r.jsx)(i.default,{variant:"neutral",size:"sm",children:e.provider})}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.lastUsed)})]})};default:return{columns:W,groupedData:U(z(p.byEndpoint,{},c,m),"endpoint"),storageKey:"usage-stats:expanded-endpoints",emptyMessage:"No endpoint usage recorded yet.",renderSummaryCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-text-muted",children:"—"}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.summary.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.summary.lastUsed)})]}),renderDetailCells:e=>(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("td",{className:"px-6 py-3 font-medium font-mono text-sm",children:e.endpoint}),(0,r.jsx)("td",{className:"px-6 py-3",children:e.rawModel}),(0,r.jsx)("td",{className:"px-6 py-3",children:(0,r.jsx)(i.default,{variant:"neutral",size:"sm",children:e.provider})}),(0,r.jsx)("td",{className:"px-6 py-3 text-right",children:u(e.requests)}),(0,r.jsx)("td",{className:"px-6 py-3 text-right text-text-muted whitespace-nowrap",children:h(e.lastUsed)})]})}}},[p,N,c,m]);if(!p&&!b)return(0,r.jsx)("div",{className:"text-text-muted",children:"Failed to load usage statistics."});let G=(0,r.jsx)("div",{className:"flex items-center justify-center py-12 text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[32px] animate-spin",children:"progress_activity"})});return(0,r.jsxs)("div",{className:"flex min-w-0 flex-col gap-6",children:[!s&&(0,r.jsxs)("div",{className:"flex w-full items-center gap-2 sm:w-auto sm:self-end",children:[(0,r.jsx)("div",{className:"grid flex-1 grid-cols-4 items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1 sm:flex sm:flex-none",children:B.map(e=>(0,r.jsx)("button",{onClick:()=>E(e.value),disabled:v,className:`rounded-md px-3 py-1 text-sm font-medium transition-colors ${P===e.value?"bg-primary text-white shadow-sm":"text-text-muted hover:bg-bg-hover hover:text-text"}`,children:e.label},e.value))}),v&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px] text-text-muted animate-spin",children:"progress_activity"})]}),b?G:(0,r.jsx)(x,{stats:p}),b?G:(0,r.jsxs)("div",{className:"grid min-w-0 grid-cols-1 items-stretch gap-2 lg:grid-cols-[minmax(0,2fr)_minmax(280px,1fr)]",children:[(0,r.jsx)(k,{providers:T,activeRequests:p.activeRequests||[],lastProvider:p.recentRequests?.[0]?.provider||"",errorProvider:p.errorProvider||""}),(0,r.jsx)(A,{requests:p.recentRequests||[]})]}),b?G:(0,r.jsx)(M,{period:P}),(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsxs)("div",{className:"flex flex-col gap-2 sm:flex-row sm:items-center sm:justify-between",children:[(0,r.jsx)("select",{value:N,onChange:e=>w(e.target.value),className:"w-full rounded-lg border border-border bg-bg-subtle px-3 py-1.5 text-sm font-medium text-text focus:outline-none focus:ring-2 focus:ring-primary/50 sm:w-auto",children:K.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))}),(0,r.jsxs)("div",{className:"grid grid-cols-2 items-center gap-1 rounded-lg border border-border bg-bg-subtle p-1 sm:flex",children:[(0,r.jsx)("button",{onClick:()=>S("costs"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"costs"===C?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Costs"}),(0,r.jsx)("button",{onClick:()=>S("tokens"),className:`px-3 py-1 rounded-md text-sm font-medium transition-colors ${"tokens"===C?"bg-primary text-white shadow-sm":"text-text-muted hover:text-text hover:bg-bg-hover"}`,children:"Tokens"})]})]}),b?G:L&&(0,r.jsx)(g,{title:"",columns:L.columns,groupedData:L.groupedData,tableType:N,sortBy:c,sortOrder:m,onToggleSort:O,viewMode:C,storageKey:L.storageKey,renderSummaryCells:L.renderSummaryCells,renderDetailCells:L.renderDetailCells,emptyMessage:L.emptyMessage})]})]})}},5671:(e,t,s)=>{s.d(t,{default:()=>o});var r=s(73365),a=s(1521),l=s(66911),n=s(38230),i=s(96459);function o({isOpen:e,onClose:t,title:s="Manual Configuration",configs:d=[]}){let{copy:c}=(0,i.C)(),[m,x]=(0,a.useState)(null);return(0,r.jsx)(l.default,{isOpen:e,onClose:t,title:s,size:"xl",children:(0,r.jsx)("div",{className:"flex flex-col gap-4",children:d.map((e,t)=>(0,r.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("span",{className:"text-sm font-medium text-text-main",children:e.filename}),(0,r.jsxs)(n.default,{variant:"ghost",size:"sm",onClick:()=>{var s;return s=e.content,void(c(s,`manualconfig-${t}`),x(t),setTimeout(()=>x(null),2e3))},children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px] mr-1",children:m===t?"check":"content_copy"}),m===t?"Copied!":"Copy"]})]}),(0,r.jsx)("pre",{className:"px-3 py-2 bg-black/5 dark:bg-white/5 rounded font-mono text-xs overflow-x-auto whitespace-pre-wrap break-all max-h-60 overflow-y-auto border border-border",children:e.content})]},t))})})}},8569:(e,t,s)=>{s.d(t,{default:()=>n});var r=s(73365),a=s(292);let l={mode:{label:"Mode",format:e=>e},defaultModel:{label:"Model",format:e=>e,mono:!0},baseUrl:{label:"Endpoint",format:e=>e,isLink:!0,mono:!0},costPerQuery:{label:"Cost / call",format:e=>0===e?"Free":`$${e.toFixed(4)}`},pricingUrl:{label:"Pricing",format:()=>"View pricing",isLink:!0},freeTier:{label:"Free tier",format:e=>e},freeMonthlyQuota:{label:"Free quota",format:e=>0===e?"—":e>=999999?"Unlimited":`${e.toLocaleString()} / mo`},searchTypes:{label:"Types",format:e=>e.join(", ")},formats:{label:"Formats",format:e=>e.join(", ")},maxMaxResults:{label:"Max results",format:e=>e},maxCharacters:{label:"Max chars",format:e=>e.toLocaleString()}};function n({config:e,provider:t,title:s="Provider Info"}){if(!e)return null;let i=Object.entries(l).filter(([t])=>void 0!==e[t]&&null!==e[t]&&""!==e[t]).map(([t,s])=>({key:t,label:s.label,value:s.format(e[t]),isLink:s.isLink,mono:s.mono,raw:e[t]})),o=t?.notice?.apiKeyUrl||t?.website,d=t?.notice?.text;return(0,r.jsxs)(a.default,{children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-3",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold",children:s}),o&&(0,r.jsxs)("a",{href:o,target:"_blank",rel:"noopener noreferrer",className:"text-xs text-primary hover:underline inline-flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-sm",children:"open_in_new"}),"Get API Key"]})]}),(0,r.jsxs)("div",{className:"grid grid-cols-1 sm:grid-cols-2 gap-x-6 gap-y-2",children:[i.map(e=>(0,r.jsxs)("div",{className:"flex items-center gap-3 min-w-0",children:[(0,r.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0",children:e.label}),e.isLink?(0,r.jsx)("a",{href:e.raw,target:"_blank",rel:"noopener noreferrer",className:`text-sm text-primary hover:underline truncate ${e.mono?"font-mono":""}`,children:e.value}):(0,r.jsx)("span",{className:`text-sm text-text-main truncate ${e.mono?"font-mono":""}`,children:e.value})]},e.key)),d&&(0,r.jsxs)("div",{className:"flex items-start gap-3 min-w-0 sm:col-span-2",children:[(0,r.jsx)("span",{className:"text-xs text-text-muted w-28 shrink-0 mt-0.5",children:"Notice"}),(0,r.jsx)("span",{className:"text-sm text-text-main leading-relaxed",children:d})]})]})]})}},12003:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(73365),a=s(1521),l=s(98196),n=s(55348),i=s(84502);let o=e=>({en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (Brasil)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (Portugal)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"}})[e]||{name:e,flag:"\uD83C\uDF10"};function d({className:e="",isOpen:t,onClose:s,hideTrigger:c=!1}){let[m,x]=(0,a.useState)("en"),[u,p]=(0,a.useState)(!1),[h,f]=(0,a.useState)(!1),b=(0,a.useRef)(null),g="boolean"==typeof t,j=g?t:h,v=e=>{g?!e&&s&&s():f(e)};(0,a.useEffect)(()=>{x(function(){if("u"e.trim().startsWith(`${n.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):"en";return(0,n.QC)(t)}())},[]),(0,a.useEffect)(()=>{function e(e){b.current&&!b.current.contains(e.target)&&v(!1)}if(j)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[j]);let y=async e=>{if(e!==m&&!u){p(!0),v(!1);try{await fetch("/api/locale",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({locale:e})}),await (0,i.wn)(),x(e)}catch(e){console.error("Failed to set locale:",e)}finally{p(!1)}}};return(0,r.jsxs)("div",{className:e,children:[!c&&(0,r.jsxs)("button",{onClick:()=>v(!j),disabled:u,className:"flex items-center gap-2 px-3 py-2 rounded-lg text-text-muted hover:text-text-main hover:bg-surface/60 transition-colors",title:"Language","data-i18n-skip":"true",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"language"}),(0,r.jsx)("span",{className:"text-sm font-medium",children:o(m).name}),(0,r.jsx)("span",{className:"text-lg",children:o(m).flag})]}),j&&(0,l.createPortal)((0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4","data-i18n-skip":"true",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/30 backdrop-blur-sm",onClick:()=>v(!1)}),(0,r.jsxs)("div",{ref:b,className:"relative w-full bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl animate-in fade-in zoom-in-95 duration-200 max-w-2xl flex flex-col max-h-[80vh]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between p-3 border-b border-black/5 dark:border-white/5",children:[(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:"Select Language"}),(0,r.jsx)("button",{onClick:()=>v(!1),className:"p-1.5 rounded-lg text-text-muted hover:bg-black/5 dark:hover:bg-white/5 transition-colors","aria-label":"Close",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsx)("div",{className:"p-6 overflow-y-auto flex-1",children:(0,r.jsx)("div",{className:"grid grid-cols-[repeat(auto-fill,minmax(100px,1fr))] gap-2",children:n.YZ.map(e=>{let t=m===e,s=o(e);return(0,r.jsxs)("button",{onClick:()=>y(e),disabled:u,className:`flex flex-col items-center justify-start gap-1 px-2 py-3 rounded-lg text-xs font-medium transition-colors w-full ${t?"bg-primary/15 text-primary ring-2 ring-primary":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"} ${u?"opacity-70 cursor-wait":""}`,title:s.name,children:[(0,r.jsx)("span",{className:"text-2xl",children:s.flag}),(0,r.jsx)("span",{className:"text-center leading-tight line-clamp-2 h-8 flex items-center",children:s.name}),t&&(0,r.jsx)("span",{className:"material-symbols-outlined text-sm",children:"check"})]},e)})})})]})]}),document.body)]})}},12820:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156);let o="https://api.openai.com/v1";function d({isOpen:e,onClose:t,onCreated:s,onSaved:l,node:n}){let c=!!n,[m,x]=(0,a.useState)({name:"",prefix:"",baseUrl:o}),[u,p]=(0,a.useState)(!1),[h,f]=(0,a.useState)(""),[b,g]=(0,a.useState)(""),[j,v]=(0,a.useState)(!1),[y,N]=(0,a.useState)(null);(0,a.useEffect)(()=>{e&&(N(null),f(""),g(""),c?x({name:n.name||"",prefix:n.prefix||"",baseUrl:n.baseUrl||o}):x({name:"",prefix:"",baseUrl:o}))},[e,c,n]);let w=async()=>{if(m.name.trim()&&m.prefix.trim()&&m.baseUrl.trim()){p(!0);try{let e=c?`/api/provider-nodes/${n.id}`:"/api/provider-nodes",t=c?"PUT":"POST",r={name:m.name,prefix:m.prefix,baseUrl:m.baseUrl};c||(r.type="custom-embedding");let a=await fetch(e,{method:t,headers:{"Content-Type":"application/json"},body:JSON.stringify(r)}),i=await a.json();a.ok&&(c?l?.(i.node):s?.(i.node))}catch(e){console.log("Error saving custom embedding node:",e)}finally{p(!1)}}},k=async()=>{v(!0);try{let e=await fetch("/api/provider-nodes/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({baseUrl:m.baseUrl,apiKey:h,type:"custom-embedding",modelId:b.trim()||void 0})}),t=await e.json();N(t)}catch{N({valid:!1,error:"Network error"})}finally{v(!1)}};return(0,r.jsx)(i.aF,{isOpen:e,title:c?"Edit Custom Embedding":"Add Custom Embedding",onClose:t,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(i.pd,{label:"Name",value:m.name,onChange:e=>x({...m,name:e.target.value}),placeholder:"Voyage AI",hint:"Required. A friendly label for this embedding provider."}),(0,r.jsx)(i.pd,{label:"Prefix",value:m.prefix,onChange:e=>x({...m,prefix:e.target.value}),placeholder:"voyage",hint:"Required. Used as the provider prefix for model IDs (e.g. voyage/voyage-3)."}),(0,r.jsx)(i.pd,{label:"Base URL",value:m.baseUrl,onChange:e=>x({...m,baseUrl:e.target.value}),placeholder:"https://api.voyageai.com/v1",hint:"Most embedding APIs are OpenAI-compatible: Voyage, Cohere, Jina, Mistral, Together..."}),(0,r.jsx)(i.pd,{label:"API Key (for Check)",type:"password",value:h,onChange:e=>f(e.target.value)}),(0,r.jsx)(i.pd,{label:"Model ID (for Check)",value:b,onChange:e=>g(e.target.value),placeholder:"e.g. voyage-3, embed-english-v3.0, text-embedding-3-small",hint:"Required for validation. Will send a test embeddings request."}),(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(i.$n,{onClick:k,disabled:!h||!b.trim()||j||!m.baseUrl.trim(),variant:"secondary",children:j?"Checking...":"Check"}),(()=>{if(!y)return null;let{valid:e,error:t,dimensions:s}=y;return e?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(i.Ex,{variant:"success",children:"Valid"}),s&&(0,r.jsxs)("span",{className:"text-sm text-text-muted",children:[s," dims"]})]}):(0,r.jsxs)("div",{className:"flex flex-col gap-1",children:[(0,r.jsx)(i.Ex,{variant:"error",children:"Invalid"}),t&&(0,r.jsx)("span",{className:"text-sm text-red-500",children:t})]})})()]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:w,fullWidth:!0,disabled:!m.name.trim()||!m.prefix.trim()||!m.baseUrl.trim()||u,children:u?c?"Saving...":"Creating...":c?"Save":"Create"}),(0,r.jsx)(i.$n,{onClick:t,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})})}d.propTypes={isOpen:n().bool.isRequired,onClose:n().func.isRequired,onCreated:n().func,onSaved:n().func,node:n().shape({id:n().string,name:n().string,prefix:n().string,baseUrl:n().string})}},13048:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(73365),a=s(1521),l=s(29717),n=s(14793),i=s(56550),o=s(51123);function d({children:e}){let[t,s]=(0,a.useState)(!1),c=(0,l.usePathname)(),m=(0,n.i)(e=>e.notifications),x=(0,n.i)(e=>e.removeNotification);return(0,r.jsxs)("div",{className:"flex h-screen w-full overflow-hidden bg-bg",children:[(0,r.jsx)("div",{className:"fixed top-4 right-4 z-[80] flex w-[min(92vw,380px)] flex-col gap-2",children:m.map(e=>{var t;let s="success"===(t=e.type)?{wrapper:"border-green-500/30 bg-green-500/10 text-green-600 dark:text-green-400",icon:"check_circle"}:"error"===t?{wrapper:"border-red-500/30 bg-red-500/10 text-red-600 dark:text-red-400",icon:"error"}:"warning"===t?{wrapper:"border-amber-500/30 bg-amber-500/10 text-amber-600 dark:text-amber-400",icon:"warning"}:{wrapper:"border-blue-500/30 bg-blue-500/10 text-blue-600 dark:text-blue-400",icon:"info"};return(0,r.jsx)("div",{className:`rounded-lg border px-3 py-2 shadow-lg backdrop-blur-sm ${s.wrapper}`,children:(0,r.jsxs)("div",{className:"flex items-start gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px] leading-5",children:s.icon}),(0,r.jsxs)("div",{className:"min-w-0 flex-1",children:[e.title?(0,r.jsx)("p",{className:"text-xs font-semibold mb-0.5",children:e.title}):null,(0,r.jsx)("p",{className:"text-xs whitespace-pre-wrap break-words",children:e.message})]}),e.dismissible?(0,r.jsx)("button",{type:"button",onClick:()=>x(e.id),className:"text-current/70 hover:text-current","aria-label":"Dismiss notification",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})}):null]})},e.id)})}),t&&(0,r.jsx)("div",{className:"fixed inset-0 z-40 bg-black/20 lg:hidden",onClick:()=>s(!1)}),(0,r.jsx)("div",{className:"hidden lg:flex",children:(0,r.jsx)(i.default,{})}),(0,r.jsx)("div",{className:`fixed inset-y-0 left-0 z-50 transform lg:hidden transition-transform duration-300 ease-in-out ${t?"translate-x-0":"-translate-x-full"}`,children:(0,r.jsx)(i.default,{onClose:()=>s(!1)})}),(0,r.jsxs)("main",{className:"flex flex-col flex-1 h-full min-w-0 relative transition-colors duration-300 isolate",children:[(0,r.jsx)("div",{className:"landing-grid absolute inset-0 pointer-events-none -z-10","aria-hidden":"true"}),(0,r.jsx)(o.default,{onMenuClick:()=>s(!0)},c),(0,r.jsx)("div",{className:`flex-1 overflow-y-auto custom-scrollbar ${"/dashboard/basic-chat"===c?"":"p-6 lg:p-10"} ${"/dashboard/basic-chat"===c?"flex flex-col overflow-hidden":""}`,children:(0,r.jsx)("div",{className:`${"/dashboard/basic-chat"===c?"flex-1 w-full h-full flex flex-col":"max-w-7xl mx-auto"}`,children:e})})]})]})}},13333:(e,t,s)=>{s.d(t,{default:()=>a});var r=s(73365);function a({text:e,children:t,position:s="top"}){return(0,r.jsxs)("div",{className:"relative inline-flex group",children:[t,(0,r.jsx)("div",{className:`pointer-events-none absolute ${{top:"bottom-full left-1/2 -translate-x-1/2 mb-1.5",bottom:"top-full left-1/2 -translate-x-1/2 mt-1.5",left:"right-full top-1/2 -translate-y-1/2 mr-1.5",right:"left-full top-1/2 -translate-y-1/2 ml-1.5"}[s]} z-50 w-max max-w-56 rounded px-2 py-1 text-[11px] leading-snug bg-gray-900 text-white opacity-0 group-hover:opacity-100 transition-opacity duration-150 whitespace-normal`,children:e})]})}},14406:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(73365),a=s(87706);function l({checked:e=!1,onChange:t,label:s,description:n,disabled:i=!1,size:o="md",className:d}){let c={sm:{track:"w-8 h-4",thumb:"size-3",translate:"translate-x-4"},md:{track:"w-11 h-6",thumb:"size-5",translate:"translate-x-5"},lg:{track:"w-14 h-7",thumb:"size-6",translate:"translate-x-7"}};return(0,r.jsxs)("div",{className:(0,a.cn)("flex items-center gap-3",i&&"opacity-50 cursor-not-allowed",d),children:[(0,r.jsx)("button",{type:"button",role:"switch","aria-checked":e,disabled:i,onClick:()=>{!i&&t&&t(!e)},className:(0,a.cn)("relative inline-flex shrink-0 cursor-pointer rounded-full","transition-colors duration-200 ease-in-out","focus:outline-none focus:ring-2 focus:ring-brand-500/30",e?"bg-brand-500":"bg-surface-3",c[o].track,i&&"cursor-not-allowed"),children:(0,r.jsx)("span",{className:(0,a.cn)("pointer-events-none inline-block rounded-full bg-white shadow-sm","transform transition duration-200 ease-in-out",e?c[o].translate:"translate-x-0.5",c[o].thumb,"mt-0.5")})}),(s||n)&&(0,r.jsxs)("div",{className:"flex flex-col",children:[s&&(0,r.jsx)("span",{className:"text-sm font-medium text-text-main",children:s}),n&&(0,r.jsx)("span",{className:"text-xs text-text-muted",children:n})]})]})}},14793:(e,t,s)=>{s.d(t,{i:()=>l});var r=s(2074);let a=0,l=(0,r.v)((e,t)=>({notifications:[],addNotification:s=>{let r=++a,l={id:r,type:s.type||"info",message:s.message,title:s.title||null,duration:s.duration??5e3,dismissible:s.dismissible??!0,createdAt:Date.now()};return e(e=>({notifications:[...e.notifications,l]})),l.duration>0&&setTimeout(()=>t().removeNotification(r),l.duration),r},removeNotification:t=>{e(e=>({notifications:e.notifications.filter(e=>e.id!==t)}))},clearAll:()=>e({notifications:[]}),success:(e,s)=>t().addNotification({type:"success",message:e,title:s}),error:(e,s)=>t().addNotification({type:"error",message:e,title:s,duration:8e3}),warning:(e,s)=>t().addNotification({type:"warning",message:e,title:s}),info:(e,s)=>t().addNotification({type:"info",message:e,title:s})}))},24372:(e,t,s)=>{s.d(t,{default:()=>x});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(66911),o=s(69633),d=s(82495);let c=[...Object.keys(d.zN),...Object.keys(d.IS),...Object.keys(d.nJ),...Object.keys(d.fg)],m=Object.keys(d.IS).filter(e=>d.IS[e].noAuth);function x({isOpen:e,onClose:t,onSelect:s,onDeselect:l,selectedModel:n,activeProviders:u=[],title:p="Select Model",modelAliases:h={},kindFilter:f=null,addedModelValues:b=[],closeOnSelect:g=!0}){let j=(0,a.useMemo)(()=>f?u.filter(e=>{let t=d.Q2[e.provider];return(t?.serviceKinds||["llm"]).includes(f)}):u,[u,f]),[v,y]=(0,a.useState)(""),[N,w]=(0,a.useState)([]),[k,C]=(0,a.useState)([]),[S,T]=(0,a.useState)([]),[$,R]=(0,a.useState)({}),I=async()=>{try{let e=await fetch("/api/combos");if(!e.ok)throw Error(`Failed to fetch combos: ${e.status}`);let t=await e.json();w(t.combos||[])}catch(e){console.error("Error fetching combos:",e),w([])}};(0,a.useEffect)(()=>{e&&I()},[e]);let P=async()=>{try{let e=await fetch("/api/provider-nodes");if(!e.ok)throw Error(`Failed to fetch provider nodes: ${e.status}`);let t=await e.json();C(t.nodes||[])}catch(e){console.error("Error fetching provider nodes:",e),C([])}};(0,a.useEffect)(()=>{e&&P()},[e]);let E=async()=>{try{let e=await fetch("/api/models/custom");if(!e.ok)throw Error(`Failed to fetch custom models: ${e.status}`);let t=await e.json();T(t.models||[])}catch(e){console.error("Error fetching custom models:",e),T([])}};(0,a.useEffect)(()=>{e&&E()},[e]);let O=async()=>{try{let e=await fetch("/api/models/disabled");if(!e.ok)throw Error(`Failed to fetch disabled models: ${e.status}`);let t=await e.json();R(t.disabled||{})}catch(e){console.error("Error fetching disabled models:",e),R({})}};(0,a.useEffect)(()=>{e&&O()},[e]);let M=(0,a.useMemo)(()=>({...d.zN,...d.IS,...d.nJ,...d.fg}),[]),_=(0,a.useMemo)(()=>{let e={},t=new Set(["webSearch","webFetch"]),s=new Set(["image","tts","stt","embedding","imageToText"]),r=new Set(["tts","image","webFetch"]);return[...new Set([...j.map(e=>e.provider),...f?m.filter(e=>(d.Q2[e]?.serviceKinds||["llm"]).includes(f)):m])].sort((e,t)=>{let s=c.indexOf(e),r=c.indexOf(t);return(-1===s?999:s)-(-1===r?999:r)}).forEach(a=>{let l=(0,d.wG)(a),n=M[a]||{name:a,color:"#666"},i=(0,d.mq)(a)||(0,d.gb)(a);if(f&&t.has(f)){e[a]={name:n.name,alias:l,color:n.color,models:[{id:a,name:n.name,value:a}]};return}if(n.passthroughModels){let t=Object.entries(h).filter(([,e])=>e.startsWith(`${l}/`)).map(([e,t])=>({id:t.replace(`${l}/`,""),name:e,value:t}));if(f&&s.has(f)&&0===(t=(0,o.KC)(a).filter(e=>e.type===f).map(e=>({id:e.id,name:e.name,value:`${l}/${e.id}`,type:e.type}))).length&&r.has(f)&&(n.serviceKinds||["llm"]).includes(f)&&(t=[{id:a,name:n.name,value:l}]),t.length>0){let s=k.find(e=>e.id===a),r=s?.name||n.name;e[a]={name:r,alias:l,color:n.color,models:t}}}else if(i){if(f&&s.has(f))return;let t=u.find(e=>e.provider===a),r=k.find(e=>e.id===a),l=t?.name||r?.name||n.name,i=t?.providerSpecificData?.prefix||r?.prefix||a,o=Object.entries(h).filter(([,e])=>e.startsWith(`${a}/`)).map(([e,t])=>({id:t.replace(`${a}/`,""),name:e,value:`${i}/${t.replace(`${a}/`,"")}`})),d=o.length>0?o:[{id:`__placeholder__${a}`,name:`${i}/model-id`,value:`${i}/model-id`,isPlaceholder:!0}];e[a]={name:l,alias:i,color:n.color,models:d,isCustom:!0,hasModels:o.length>0}}else{var c;let t=(0,o.KC)(a),i=new Set(t.map(e=>e.id)),d=t.length>0,m=Object.entries(h).filter(([e,t])=>t.startsWith(`${l}/`)&&(!d||e===t.replace(`${l}/`,""))&&!i.has(t.replace(`${l}/`,""))).map(([e,t])=>({id:t.replace(`${l}/`,""),name:e,value:t,isCustom:!0})),x=new Set(m.map(e=>e.id)),u=S.filter(e=>e.providerAlias===l&&!i.has(e.id)&&!x.has(e.id)).map(e=>({id:e.id,name:e.name||e.id,value:`${l}/${e.id}`,isCustom:!0})),p=[...t.map(e=>({id:e.id,name:e.name,value:`${l}/${e.id}`,type:e.type})),...m,...u],b=new Set,g=(c=p.filter(e=>!b.has(e.value)&&(b.add(e.value),!0)),f?s.has(f)?c.filter(e=>e.isPlaceholder||e.type===f):c:c.filter(e=>e.isPlaceholder||!e.type||"llm"===e.type));0===g.length&&f&&r.has(f)&&(n.serviceKinds||["llm"]).includes(f)&&(g=[{id:a,name:n.name,value:l}]),g.length>0&&(e[a]={name:n.name,alias:l,color:n.color,models:g})}}),Object.entries(e).forEach(([t,s])=>{let r=new Set([...$[(0,d.wG)(t)]||[],...$[t]||[]]);0!==r.size&&(s.models=s.models.filter(e=>!r.has(e.id)),0===s.models.length&&delete e[t])}),e},[j,h,M,k,S,$,f,u]),L=(0,a.useMemo)(()=>{if(f)return[];if(!v.trim())return N;let e=v.toLowerCase();return N.filter(t=>t.name.toLowerCase().includes(e))},[N,v,f]),A=(0,a.useMemo)(()=>{if(!v.trim())return _;let e=v.toLowerCase(),t={};return Object.entries(_).forEach(([s,r])=>{let a=r.models.filter(t=>t.name.toLowerCase().includes(e)||t.id.toLowerCase().includes(e)),l=r.name.toLowerCase().includes(e);(a.length>0||l)&&(t[s]={...r,models:a})}),t},[_,v]),z=e=>{let r=e?.value||e?.name||e;b.includes(r)&&l?l(e):s(e),g&&(t(),y(""))};return(0,r.jsxs)(i.default,{isOpen:e,onClose:()=>{t(),y("")},title:p,size:"md",className:"p-4!",children:[(0,r.jsx)("div",{className:"mb-3",children:(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsx)("span",{className:"material-symbols-outlined absolute left-2.5 top-1/2 -translate-y-1/2 text-text-muted text-[16px]",children:"search"}),(0,r.jsx)("input",{type:"text",placeholder:"Search...",value:v,onChange:e=>y(e.target.value),className:"w-full pl-8 pr-3 py-1.5 bg-surface border border-border rounded text-xs focus:outline-none focus:ring-1 focus:ring-primary/50"})]})}),(0,r.jsxs)("div",{className:"max-h-[400px] overflow-y-auto space-y-3",children:[L.length>0&&(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary text-[14px]",children:"layers"}),(0,r.jsx)("span",{className:"text-xs font-medium text-primary",children:"Combos"}),(0,r.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",L.length,")"]})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:L.map(e=>{let t=n===e.name;return(0,r.jsxs)("button",{onClick:()=>z({id:e.name,name:e.name,value:e.name}),className:` + px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer flex items-center gap-1 + ${t?"bg-primary text-white border-primary":b.includes(e.name)?"bg-green-500/10 border-green-500/30 text-green-700 dark:text-green-400 hover:border-green-500/50":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"} + `,children:[b.includes(e.name)&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"check_circle"}),e.name]},e.id)})})]}),Object.entries(A).map(([e,t])=>(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-1.5 mb-1.5 sticky top-0 bg-surface py-0.5",children:[(0,r.jsx)("div",{className:"w-2 h-2 rounded-full",style:{backgroundColor:t.color}}),(0,r.jsx)("span",{className:"text-xs font-medium text-primary",children:t.name}),(0,r.jsxs)("span",{className:"text-[10px] text-text-muted",children:["(",t.models.length,")"]})]}),(0,r.jsx)("div",{className:"flex flex-wrap gap-1.5",children:t.models.map(e=>{let t=n===e.value,s=e.isPlaceholder;return(0,r.jsx)("button",{onClick:()=>z(e),title:s?"Select to pre-fill, then edit model ID in the input":void 0,className:` + px-2 py-1 rounded-xl text-xs font-medium transition-all border hover:cursor-pointer + ${s?"border-dashed border-border text-text-muted hover:border-primary/50 hover:text-primary bg-surface italic":t?"bg-primary text-white border-primary":b.includes(e.value)?"bg-green-500/10 border-green-500/30 text-green-700 dark:text-green-400 hover:border-green-500/50":"bg-surface border-border text-text-main hover:border-primary/50 hover:bg-primary/5"} + `,children:(0,r.jsxs)("span",{className:"flex items-center gap-1",children:[b.includes(e.value)&&!s&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"check_circle"}),s?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[11px]",children:"edit"}),e.name]}):e.isCustom?(0,r.jsxs)(r.Fragment,{children:[e.name,(0,r.jsx)("span",{className:"text-[9px] opacity-60 font-normal",children:"custom"})]}):e.name]})},e.value)})})]},e)),0===Object.keys(A).length&&0===L.length&&(0,r.jsxs)("div",{className:"text-center py-4 text-text-muted",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl mb-1 block",children:"search_off"}),(0,r.jsx)("p",{className:"text-xs",children:"No models found"})]})]})]})}x.propTypes={isOpen:n().bool.isRequired,onClose:n().func.isRequired,onSelect:n().func.isRequired,onDeselect:n().func,selectedModel:n().string,activeProviders:n().arrayOf(n().shape({provider:n().string.isRequired})),title:n().string,modelAliases:n().object,kindFilter:n().string,addedModelValues:n().arrayOf(n().string),closeOnSelect:n().bool}},26125:(e,t,s)=>{s.d(t,{default:()=>c});var r=s(73365),a=s(1521),l=s(98196),n=s(86447),i=s.n(n),o=s(30721),d=s(43202);function c({isOpen:e,onClose:t}){let[s,n]=(0,a.useState)(""),[i,m]=(0,a.useState)(!1),[x,u]=(0,a.useState)(""),p=(0,a.useRef)(null);return((0,a.useEffect)(()=>{e&&!s&&(m(!0),u(""),fetch(d.Nu.changelogUrl).then(e=>{if(!e.ok)throw Error(`HTTP ${e.status}`);return e.text()}).then(e=>n(o.xI.parse(e))).catch(e=>u(e.message||"Failed to load")).finally(()=>m(!1)))},[e,s]),(0,a.useEffect)(()=>{let s=e=>{p.current&&!p.current.contains(e.target)&&t()};if(e)return document.addEventListener("mousedown",s),()=>document.removeEventListener("mousedown",s)},[e,t]),!e||"u"{s.d(t,{default:()=>n});var r=s(73365),a=s(1521),l=s(292);function n(){let[e,t]=(0,a.useState)([]),[s,n]=(0,a.useState)(!0),[i,o]=(0,a.useState)(!0);(0,a.useEffect)(()=>{d()},[]),(0,a.useEffect)(()=>{let e;return i&&(e=setInterval(()=>{d(!1)},3e3)),()=>clearInterval(e)},[i]);let d=async(e=!0)=>{e&&n(!0);try{let e=await fetch("/api/usage/request-logs");if(e.ok){let s=await e.json();t(s)}}catch(e){console.error("Failed to fetch logs:",e)}finally{e&&n(!1)}};return(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between",children:[(0,r.jsx)("h2",{className:"text-xl font-semibold",children:"Request Logs"}),(0,r.jsx)("div",{className:"flex items-center gap-2",children:(0,r.jsxs)("label",{className:"text-sm font-medium text-text-muted flex items-center gap-2 cursor-pointer",children:[(0,r.jsx)("span",{children:"Auto Refresh (3s)"}),(0,r.jsx)("div",{onClick:()=>o(!i),className:`relative inline-flex h-5 w-9 items-center rounded-full transition-colors focus:outline-none ${i?"bg-primary":"bg-bg-subtle border border-border"}`,children:(0,r.jsx)("span",{className:`inline-block h-3 w-3 transform rounded-full bg-white transition-transform ${i?"translate-x-5":"translate-x-1"}`})})]})})]}),(0,r.jsx)(l.default,{className:"overflow-hidden bg-black/5 dark:bg-black/20",children:(0,r.jsx)("div",{className:"p-0 overflow-x-auto max-h-[600px] overflow-y-auto font-mono text-xs",children:s&&0===e.length?(0,r.jsx)("div",{className:"p-8 text-center text-text-muted",children:"Loading logs..."}):0===e.length?(0,r.jsx)("div",{className:"p-8 text-center text-text-muted",children:"No logs recorded yet."}):(0,r.jsxs)("table",{className:"w-full text-left border-collapse whitespace-nowrap",children:[(0,r.jsx)("thead",{className:"sticky top-0 bg-bg-subtle border-b border-border z-10",children:(0,r.jsxs)("tr",{children:[(0,r.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"DateTime"}),(0,r.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Model"}),(0,r.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Provider"}),(0,r.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Account"}),(0,r.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"In"}),(0,r.jsx)("th",{className:"px-3 py-2 border-r border-border",children:"Out"}),(0,r.jsx)("th",{className:"px-3 py-2",children:"Status"})]})}),(0,r.jsx)("tbody",{className:"divide-y divide-border/50",children:e.map((e,t)=>{let s=e.split(" | ");if(s.length<7)return null;let a=s[6],l=a.includes("PENDING"),n=a.includes("FAILED"),i=a.includes("OK");return(0,r.jsxs)("tr",{className:`hover:bg-primary/5 transition-colors ${l?"bg-primary/5":""}`,children:[(0,r.jsx)("td",{className:"px-3 py-1.5 border-r border-border text-text-muted",children:s[0]}),(0,r.jsx)("td",{className:"px-3 py-1.5 border-r border-border font-medium",children:s[1]}),(0,r.jsx)("td",{className:"px-3 py-1.5 border-r border-border",children:(0,r.jsx)("span",{className:"px-1.5 py-0.5 rounded bg-bg-subtle border border-border text-[10px] uppercase font-bold",children:s[2]})}),(0,r.jsx)("td",{className:"px-3 py-1.5 border-r border-border truncate max-w-[150px]",title:s[3],children:s[3]}),(0,r.jsx)("td",{className:"px-3 py-1.5 border-r border-border text-right text-primary",children:s[4]}),(0,r.jsx)("td",{className:"px-3 py-1.5 border-r border-border text-right text-success",children:s[5]}),(0,r.jsx)("td",{className:`px-3 py-1.5 font-bold ${i?"text-success":n?"text-error":"text-primary animate-pulse"}`,children:a})]},t)})})]})})}),(0,r.jsx)("div",{className:"text-[10px] text-text-muted italic",children:"Logs are saved to log.txt in the application data directory."})]})}},35045:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(73365),a=s(87706);let l={default:"bg-surface-2 text-text-muted",primary:"bg-brand-500/10 text-brand-600 dark:text-brand-300",success:"bg-green-500/10 text-green-600 dark:text-green-400",warning:"bg-yellow-500/10 text-yellow-600 dark:text-yellow-400",error:"bg-red-500/10 text-red-600 dark:text-red-400",info:"bg-blue-500/10 text-blue-600 dark:text-blue-400"},n={sm:"px-2 py-0.5 text-[10px]",md:"px-2.5 py-1 text-xs",lg:"px-3 py-1.5 text-sm"};function i({children:e,variant:t="default",size:s="md",dot:o=!1,icon:d,className:c}){return(0,r.jsxs)("span",{className:(0,a.cn)("inline-flex items-center gap-1.5 rounded-full font-semibold",l[t],n[s],c),children:[o&&(0,r.jsx)("span",{className:(0,a.cn)("size-1.5 rounded-full","success"===t&&"bg-green-500","warning"===t&&"bg-yellow-500","error"===t&&"bg-red-500","info"===t&&"bg-blue-500","primary"===t&&"bg-brand-500","default"===t&&"bg-gray-500")}),d&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:d}),e]})}},37066:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(73365),a=s(87706);function l({label:e,options:t=[],value:s,onChange:n,placeholder:i="Select an option",error:o,hint:d,disabled:c=!1,required:m=!1,className:x,selectClassName:u,...p}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col gap-1.5",x),children:[e&&(0,r.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[e,m&&(0,r.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,r.jsxs)("div",{className:"relative",children:[(0,r.jsxs)("select",{value:s,onChange:n,disabled:c,className:(0,a.cn)("w-full py-2.5 px-3 pr-10 text-sm text-text-main","bg-surface-2 border border-transparent rounded-[10px] appearance-none","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",o&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",u),...p,children:[(0,r.jsx)("option",{value:"",disabled:!0,children:i}),t.map(e=>(0,r.jsx)("option",{value:e.value,children:e.label},e.value))]}),(0,r.jsx)("div",{className:"absolute inset-y-0 right-0 flex items-center pr-3 pointer-events-none text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"expand_more"})})]}),o&&(0,r.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),o]}),d&&!o&&(0,r.jsx)("p",{className:"text-xs text-text-muted",children:d})]})}},38230:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(73365),a=s(87706);let l={primary:"bg-brand-500 hover:bg-brand-600 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted",secondary:"bg-surface-2 hover:bg-surface-3 text-text-main border border-border disabled:opacity-50",outline:"border border-border text-text-main hover:bg-surface-2 hover:border-brand-500/40",ghost:"text-text-muted hover:bg-surface-2 hover:text-text-main",danger:"bg-red-500 hover:bg-red-600 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted",success:"bg-green-600 hover:bg-green-700 text-white shadow-sm disabled:bg-surface-3 disabled:text-text-muted"},n={sm:"h-7 px-3 text-xs rounded-[8px]",md:"h-9 px-4 text-sm rounded-[10px]",lg:"h-11 px-6 text-sm rounded-[10px]"};function i({children:e,variant:t="primary",size:s="md",icon:o,iconRight:d,disabled:c=!1,loading:m=!1,fullWidth:x=!1,className:u,...p}){return(0,r.jsxs)("button",{className:(0,a.cn)("inline-flex items-center justify-center gap-2 font-semibold transition-all duration-150 ease-out cursor-pointer","active:scale-[0.97] disabled:opacity-50 disabled:cursor-not-allowed disabled:active:scale-100",l[t],n[s],x&&"w-full",u),disabled:c||m,...p,children:[m?(0,r.jsx)("span",{className:"material-symbols-outlined animate-spin text-[18px]",children:"progress_activity"}):o?(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:o}):null,e,d&&!m&&(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:d})]})}},44156:(e,t,s)=>{s.d(t,{A:()=>o});var r=s(73365),a=s(1521),l=s(98196);let n=[{icon:"terminal",label:"Terminal",desc:"Full shell access"},{icon:"cast",label:"Desktop",desc:"Screen sharing"},{icon:"folder_open",label:"Files",desc:"Browse & edit files"}],i=[{icon:"qr_code_scanner",text:"Scan QR to connect instantly"},{icon:"wifi_off",text:"No port forwarding needed"},{icon:"devices",text:"Works on any device"}];function o({isOpen:e,onClose:t}){return((0,a.useEffect)(()=>{if(!e)return;document.body.style.overflow="hidden";let s=e=>{"Escape"===e.key&&t()};return document.addEventListener("keydown",s),()=>{document.body.style.overflow="",document.removeEventListener("keydown",s)}},[e,t]),e)?(0,l.createPortal)((0,r.jsxs)("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:t}),(0,r.jsxs)("div",{className:"relative w-full max-w-sm rounded-[14px] overflow-hidden shadow-[var(--shadow-elev)] fade-in flex flex-col bg-surface border border-border-subtle",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between px-5 py-3 border-b border-border-subtle",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"w-7 h-7 rounded-[8px] flex items-center justify-center bg-primary",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-white text-base",children:"terminal"})}),(0,r.jsx)("span",{className:"text-xs font-bold uppercase tracking-wider text-primary font-mono",children:"9Remote"})]}),(0,r.jsx)("button",{onClick:t,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-base",children:"close"})})]}),(0,r.jsxs)("div",{className:"px-7 py-7 pb-9 flex flex-col gap-6",children:[(0,r.jsxs)("div",{className:"flex flex-col items-center gap-2 text-center mt-2",children:[(0,r.jsx)("div",{className:"w-14 h-14 rounded-[14px] flex items-center justify-center mb-1 bg-primary shadow-[var(--shadow-warm)]",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-white text-[30px]",children:"terminal"})}),(0,r.jsx)("h1",{className:"text-lg font-bold text-text-main tracking-tight",children:"9Remote"}),(0,r.jsx)("p",{className:"text-xs text-text-muted leading-5 max-w-[220px]",children:"Access your terminal, desktop & files from anywhere"})]}),(0,r.jsx)("div",{className:"flex gap-2 w-full",children:n.map(({icon:e,label:t,desc:s})=>(0,r.jsxs)("div",{className:"flex-1 flex flex-col items-center gap-1.5 py-4 px-1 rounded-[10px] border border-border-subtle bg-surface-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary text-[22px]",children:e}),(0,r.jsx)("p",{className:"text-xs font-semibold text-text-main",children:t}),(0,r.jsx)("p",{className:"text-[10px] text-text-muted text-center leading-4",children:s})]},t))}),(0,r.jsx)("div",{className:"flex flex-col gap-3 w-full",children:i.map(({icon:e,text:t})=>(0,r.jsxs)("div",{className:"flex items-center gap-2.5",children:[(0,r.jsx)("span",{className:"material-symbols-outlined flex-shrink-0 text-primary text-[16px]",children:e}),(0,r.jsx)("span",{className:"text-xs text-text-muted",children:t})]},e))}),(0,r.jsxs)("button",{onClick:()=>window.open("https://9remote.cc","_blank"),className:"w-full py-3 flex items-center justify-center gap-2 text-sm font-semibold text-white rounded-[10px] bg-primary hover:bg-primary-hover shadow-[var(--shadow-warm)] active:scale-[0.98] transition-all",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-base",children:"open_in_new"}),"Get 9Remote"]})]})]})]}),document.body):null}},50136:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156);let o="https://gitlab.com";function d({isOpen:e,providerInfo:t,onSuccess:s,onClose:l}){let n,[c,m]=(0,a.useState)(null),[x,u]=(0,a.useState)(o),[p,h]=(0,a.useState)(""),[f,b]=(0,a.useState)(""),[g,j]=(0,a.useState)(""),[v,y]=(0,a.useState)(!1),[N,w]=(0,a.useState)(null),[k,C]=(0,a.useState)(!1),[S,T]=(0,a.useState)(null),$=()=>{m(null),u(o),h(""),b(""),j(""),w(null),y(!1),C(!1),T(null),l()},R=async()=>{if(!g.trim())return void w("Personal Access Token is required");y(!0),w(null);try{let e=await fetch("/api/oauth/gitlab/pat",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({token:g.trim(),baseUrl:x.trim()||o})}),t=await e.json();if(!e.ok)throw Error(t.error||"Authentication failed");s?.(),$()}catch(e){w(e.message)}finally{y(!1)}};return e?k&&S?(0,r.jsx)(i.LF,{isOpen:!0,provider:"gitlab",providerInfo:t,oauthMeta:S,onSuccess:()=>{s?.(),$()},onClose:()=>{C(!1),T(null)}}):(0,r.jsx)(i.aF,{isOpen:e,title:"Connect GitLab Duo",onClose:$,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[!c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Choose how to authenticate with GitLab Duo:"}),(0,r.jsxs)("div",{className:"grid grid-cols-2 gap-3",children:[(0,r.jsxs)("button",{onClick:()=>m("oauth"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"lock_open"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"OAuth App"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab OAuth application"})]})]}),(0,r.jsxs)("button",{onClick:()=>m("pat"),className:"flex flex-col items-center gap-2 p-4 rounded-lg border border-border hover:border-primary hover:bg-primary/5 transition-colors text-left",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-2xl text-primary",children:"key"}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"Personal Access Token"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"Use a GitLab PAT with api scope"})]})]})]})]}),"oauth"===c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-xs text-text-muted",children:["Create an OAuth app at"," ",(0,r.jsx)("a",{href:`${x.trim()||o}/-/profile/applications`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Applications"})," ","with redirect URI"," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:(n=window.location.port||("https:"===window.location.protocol?"443":"80"),`http://localhost:${n}/callback`)})]}),(0,r.jsx)(i.pd,{label:"GitLab Base URL",value:x,onChange:e=>u(e.target.value),placeholder:o}),(0,r.jsx)(i.pd,{label:"Client ID",value:p,onChange:e=>h(e.target.value),placeholder:"Your OAuth application client ID"}),(0,r.jsx)(i.pd,{label:"Client Secret (optional for PKCE)",value:f,onChange:e=>b(e.target.value),placeholder:"Leave empty for public PKCE app"}),N&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:N}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>{p.trim()?(w(null),T({baseUrl:x.trim()||o,clientId:p.trim(),clientSecret:f.trim()}),C(!0)):w("Client ID is required")},fullWidth:!0,disabled:!p.trim(),children:"Authorize"}),(0,r.jsx)(i.$n,{onClick:()=>{m(null),w(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"pat"===c&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("p",{className:"text-xs text-text-muted",children:["Create a PAT at"," ",(0,r.jsx)("a",{href:`${x.trim()||o}/-/user_settings/personal_access_tokens`,target:"_blank",rel:"noreferrer",className:"text-primary underline",children:"GitLab Access Tokens"})," ","with scopes: ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"api"}),","," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"read_user"}),", and"," ",(0,r.jsx)("code",{className:"bg-sidebar px-1 rounded text-xs",children:"ai_features"}),"."]}),(0,r.jsx)(i.pd,{label:"GitLab Base URL",value:x,onChange:e=>u(e.target.value),placeholder:o}),(0,r.jsx)(i.pd,{label:"Personal Access Token",value:g,onChange:e=>j(e.target.value),placeholder:"glpat-xxxxxxxxxxxxxxxxxxxx",type:"password"}),N&&(0,r.jsx)("p",{className:"text-sm text-red-500",children:N}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:R,fullWidth:!0,disabled:!g.trim()||v,loading:v,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:()=>{m(null),w(null)},variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})}):null}d.propTypes={isOpen:n().bool.isRequired,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired}},51123:(e,t,s)=>{s.d(t,{default:()=>b});var r=s(73365),a=s(29717),l=s(1521),n=s(99568),i=s.n(n),o=s(86447),d=s.n(o),c=s(68266),m=s(80600),x=s(84675),u=s(84907),p=s(43202),h=s(82495),f=s(84502);function b({onMenuClick:e,showMenuButton:t=!0}){let s=(0,a.usePathname)(),n=(0,a.useRouter)(),{title:o,description:d,icon:u,breadcrumbs:j}=(0,l.useMemo)(()=>(e=>{if(!e)return{title:"",description:"",breadcrumbs:[]};let t=e.match(/\/media-providers\/([^/]+)\/([^/]+)$/);if(t){let e=t[1],s=t[2],r=h.rj.find(t=>t.id===e),a=h.Q2[s];return{title:a?.name||s,description:"",breadcrumbs:[{label:"Media Providers",href:`/dashboard/media-providers/${e}`},{label:r?.label||e,href:`/dashboard/media-providers/${e}`},{label:a?.name||s,image:`/providers/${s}.png`}]}}let s=e.match(/\/media-providers\/([^/]+)$/);if(s){let e=s[1],t=h.rj.find(t=>t.id===e);return{title:t?.label||e,description:`Manage your ${t?.label||e} providers`,icon:t?.icon||"perm_media",breadcrumbs:[]}}let r=e.match(/\/providers\/([^/]+)$/);if(r){let e=r[1],t=p.zN[e]||p.fg[e];if(t)return{title:t.name,description:"",breadcrumbs:[{label:"Providers",href:"/dashboard/providers"},{label:t.name,image:`/providers/${t.id}.png`}]}}return e.includes("/providers")&&!e.includes("/media-providers")?{title:"Providers",description:"Manage your AI provider connections",icon:"dns",breadcrumbs:[]}:e.includes("/combos")?{title:"Combos",description:"Model combos with fallback",icon:"layers",breadcrumbs:[]}:e.includes("/usage")?{title:"Usage & Analytics",description:"Monitor your API usage, token consumption, and request logs",icon:"bar_chart",breadcrumbs:[]}:e.includes("/auth-files")?{title:"Auth Files",description:"Map provider credentials stored in the local database",icon:"vpn_key",breadcrumbs:[]}:e.includes("/quota")?{title:"Quota Tracker",description:"Track and manage your API quota limits",icon:"data_usage",breadcrumbs:[]}:e.includes("/mitm")?{title:"MITM Proxy",description:"Intercept CLI tool traffic and route through 9Router",icon:"security",breadcrumbs:[]}:e.includes("/cli-tools")?{title:"CLI Tools",description:"Configure CLI tools",icon:"terminal",breadcrumbs:[]}:e.includes("/proxy-pools")?{title:"Proxy Pools",description:"Manage your proxy pool configurations",icon:"lan",breadcrumbs:[]}:e.includes("/skills")?{title:"Agent Skills",description:"Copy a link and paste to your AI to use 9Router — no install needed",icon:"extension",breadcrumbs:[]}:e.includes("/endpoint")?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:e.includes("/profile")?{title:"Settings",description:"Manage your preferences",icon:"settings",breadcrumbs:[]}:e.includes("/translator")?{title:"Translator",description:"Debug translation flow between formats",icon:"translate",breadcrumbs:[]}:e.includes("/console-log")?{title:"Console Log",description:"Live server console output",icon:"monitor",breadcrumbs:[]}:"/dashboard"===e?{title:"Endpoint",description:"API endpoint configuration",icon:"api",breadcrumbs:[]}:{title:"",description:"",breadcrumbs:[]}})(s),[s]),v=async()=>{try{(await fetch("/api/auth/logout",{method:"POST"})).ok&&(n.push("/login"),n.refresh())}catch(e){console.error("Failed to logout:",e)}};return(0,r.jsxs)("header",{className:"shrink-0 flex items-center justify-between gap-3 px-4 lg:px-8 pt-3 pb-2 border-b border-border-subtle bg-surface/60 backdrop-blur-xl lg:bg-transparent lg:backdrop-blur-none z-20",children:[(0,r.jsx)("div",{className:"flex items-center gap-3 lg:hidden shrink-0",children:t&&(0,r.jsx)("button",{onClick:e,className:"text-text-main hover:text-primary transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"menu"})})}),(0,r.jsx)("div",{className:"flex flex-col min-w-0 flex-1",children:j.length>0?(0,r.jsx)("div",{className:"flex items-center gap-2",children:j.map((e,t)=>(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[t>0&&(0,r.jsx)("span",{className:"material-symbols-outlined text-text-muted text-base",children:"chevron_right"}),e.href?(0,r.jsx)(i(),{href:e.href,className:"text-text-muted hover:text-primary transition-colors",children:e.label}):(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[e.image&&(0,r.jsx)(c.A,{src:e.image,alt:e.label,size:28,className:"object-contain rounded max-w-[28px] max-h-[28px]",fallbackText:e.label.slice(0,2).toUpperCase()}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold text-text-main tracking-tight truncate",children:(0,f.Tl)(e.label)})]})]},`${e.label}-${e.href||"current"}`))}):o?(0,r.jsxs)("div",{children:[(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[u&&(0,r.jsx)("span",{className:"material-symbols-outlined text-primary text-xl lg:text-2xl",children:u}),(0,r.jsx)("h1",{className:"text-base lg:text-2xl font-semibold tracking-tight truncate",children:(0,f.Tl)(o)})]}),d&&(0,r.jsx)("p",{className:"hidden lg:block text-sm text-text-muted truncate",children:(0,f.Tl)(d)})]}):null}),(0,r.jsxs)("div",{className:"flex items-center gap-1 shrink-0",children:[(0,r.jsx)(g,{}),(0,r.jsx)(x.default,{}),(0,r.jsx)(m.default,{onLogout:v})]})]})}function g(){let e=(0,u.C)(e=>e.visible),t=(0,u.C)(e=>e.query),s=(0,u.C)(e=>e.placeholder),a=(0,u.C)(e=>e.setQuery);return e?(0,r.jsxs)("div",{className:"relative w-[160px] sm:w-[220px]",children:[(0,r.jsx)("span",{className:"material-symbols-outlined absolute left-2 top-1/2 -translate-y-1/2 text-text-muted text-[16px] pointer-events-none",children:"search"}),(0,r.jsx)("input",{type:"text",value:t,onChange:e=>a(e.target.value),placeholder:s,className:"w-full h-8 pl-7 pr-7 rounded-lg border border-border bg-surface/60 text-sm focus:outline-none focus:border-primary/50 transition-colors"}),t&&(0,r.jsx)("button",{type:"button",onClick:()=>a(""),className:"absolute right-1 top-1/2 -translate-y-1/2 text-text-muted hover:text-text-main p-0.5 rounded","aria-label":"Clear search",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"close"})})]}):null}b.propTypes={onMenuClick:d().func,showMenuButton:d().bool}},51454:(e,t,s)=>{s.d(t,{default:()=>d});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156),o=s(96459);function d({isOpen:e,provider:t,onSuccess:s,onClose:l}){let[n,c]=(0,a.useState)("loading"),[m,x]=(0,a.useState)(""),[u,p]=(0,a.useState)(null),[h,f]=(0,a.useState)(""),[b,g]=(0,a.useState)(null),{copied:j,copy:v}=(0,o.C)();(0,a.useEffect)(()=>{e&&t&&(async()=>{try{g(null),c("loading");let e=await fetch(`/api/oauth/kiro/social-authorize?provider=${t}`),s=await e.json();if(!e.ok)throw Error(s.error);p(s),x(s.authUrl),c("input"),window.open(s.authUrl,"_blank")}catch(e){g(e.message),c("error")}})()},[e,t]);let y=async()=>{try{let e;g(null);try{e=new URL(h)}catch(e){throw Error("Invalid callback URL format")}let r=e.searchParams.get("code");e.searchParams.get("state");let a=e.searchParams.get("error");if(a)throw Error(e.searchParams.get("error_description")||a);if(!r)throw Error("No authorization code found in URL");let l=await fetch("/api/oauth/kiro/social-exchange",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:r,codeVerifier:u.codeVerifier,provider:t})}),n=await l.json();if(!l.ok)throw Error(n.error);c("success"),s?.()}catch(e){g(e.message),c("error")}},N="google"===t?"Google":"GitHub";return(0,r.jsx)(i.aF,{isOpen:e,title:`Connect Kiro via ${N}`,onClose:l,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:["loading"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Initializing..."}),(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["Setting up ",N," authentication"]})]}),"input"===n&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 1: Open this URL in your browser"}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.pd,{value:m,readOnly:!0,className:"flex-1 font-mono text-xs"}),(0,r.jsx)(i.$n,{variant:"secondary",icon:"auth_url"===j?"check":"content_copy",onClick:()=>v(m,"auth_url"),children:"Copy"})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("p",{className:"text-sm font-medium mb-2",children:"Step 2: Paste the callback URL here"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mb-2",children:"After authorization, copy the full URL from your browser address bar."}),(0,r.jsx)(i.pd,{value:h,onChange:e=>f(e.target.value),placeholder:"kiro://kiro.kiroAgent/authenticate-success?code=...",className:"font-mono text-xs"})]})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:y,fullWidth:!0,disabled:!h,children:"Connect"}),(0,r.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]}),"success"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-green-100 dark:bg-green-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-green-600",children:"check_circle"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connected Successfully!"}),(0,r.jsxs)("p",{className:"text-sm text-text-muted mb-4",children:["Your Kiro account via ",N," has been connected."]}),(0,r.jsx)(i.$n,{onClick:l,fullWidth:!0,children:"Done"})]}),"error"===n&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-red-100 dark:bg-red-900/30 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-red-600",children:"error"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Connection Failed"}),(0,r.jsx)("p",{className:"text-sm text-red-600 mb-4",children:b}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>c("input"),variant:"secondary",fullWidth:!0,children:"Try Again"}),(0,r.jsx)(i.$n,{onClick:l,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}d.propTypes={isOpen:n().bool.isRequired,provider:n().oneOf(["google","github"]).isRequired,onSuccess:n().func,onClose:n().func.isRequired}},52327:(e,t,s)=>{s.d(t,{default:()=>m});var r=s(73365),a=s(1521),l=s(66911),n=s(53038),i=s(38230),o=s(24372);let d=/^[a-zA-Z0-9_.\-]+$/;function c({index:e,model:t,isFirst:s,isLast:l,onEdit:n,onMoveUp:i,onMoveDown:o,onRemove:d}){let[m,x]=(0,a.useState)(!1),[u,p]=(0,a.useState)(t),h=()=>{let e=u.trim();e&&e!==t?n(e):p(t),x(!1)};return(0,r.jsxs)("div",{className:"group flex min-w-0 items-center gap-1.5 rounded-md bg-black/[0.02] px-2 py-1 transition-colors hover:bg-black/[0.04] dark:bg-white/[0.02] dark:hover:bg-white/[0.04]",children:[(0,r.jsx)("span",{className:"text-[10px] font-medium text-text-muted w-3 text-center shrink-0",children:e+1}),m?(0,r.jsx)("input",{autoFocus:!0,value:u,onChange:e=>p(e.target.value),onBlur:h,onKeyDown:e=>{"Enter"===e.key&&h(),"Escape"===e.key&&(p(t),x(!1))},className:"min-w-0 flex-1 rounded border border-primary/40 bg-white px-1.5 py-0.5 font-mono text-xs text-text-main outline-none dark:bg-black/20"}):(0,r.jsx)("div",{className:"min-w-0 flex-1 cursor-text truncate rounded px-1.5 py-0.5 font-mono text-xs text-text-main hover:bg-black/5 dark:hover:bg-white/5",onClick:()=>x(!0),title:"Click to edit",children:t}),(0,r.jsxs)("div",{className:"flex shrink-0 items-center gap-0.5",children:[(0,r.jsx)("button",{onClick:i,disabled:s,className:`p-0.5 rounded ${s?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move up",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_upward"})}),(0,r.jsx)("button",{onClick:o,disabled:l,className:`p-0.5 rounded ${l?"text-text-muted/20 cursor-not-allowed":"text-text-muted hover:text-primary hover:bg-black/5 dark:hover:bg-white/5"}`,title:"Move down",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"arrow_downward"})})]}),(0,r.jsx)("button",{onClick:d,className:"p-0.5 hover:bg-red-500/10 rounded text-text-muted hover:text-red-500 transition-all",title:"Remove",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[12px]",children:"close"})})]})}function m({isOpen:e,combo:t,onClose:s,onSave:x,activeProviders:u,kindFilter:p=null,forcePrefix:h="",title:f}){let b=t?.name?h&&t.name.startsWith(h)?t.name.slice(h.length):t.name:"",[g,j]=(0,a.useState)(b),[v,y]=(0,a.useState)(t?.models||[]),[N,w]=(0,a.useState)(!1),[k,C]=(0,a.useState)(!1),[S,T]=(0,a.useState)(""),[$,R]=(0,a.useState)({});(0,a.useEffect)(()=>{e&&fetch("/api/models/alias").then(e=>e.ok?e.json():null).then(e=>e&&R(e.aliases||{})).catch(()=>{})},[e]);let I=e=>{if(!e.trim())return T("Name is required"),!1;let t=h+e;return d.test(t)?(T(""),!0):(T("Only letters, numbers, -, _ and . allowed"),!1)},P=e=>{let t=e.target.value;h&&t.startsWith(h)&&(t=t.slice(h.length)),j(t),t?I(t):T("")},E=async()=>{I(g)&&(C(!0),await x({name:h+g.trim(),models:v}),C(!1))},O=!!t;return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(l.default,{isOpen:e,onClose:s,title:f||(O?"Edit Combo":"Create Combo"),children:(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsxs)("div",{children:[h?(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)("label",{className:"text-sm font-medium mb-1 block",children:"Combo Name"}),(0,r.jsxs)("div",{className:"flex items-stretch",children:[(0,r.jsx)("span",{className:"inline-flex items-center px-2 rounded-l border border-r-0 border-black/10 dark:border-white/10 bg-black/[0.04] dark:bg-white/[0.04] text-text-muted font-mono text-sm",children:h}),(0,r.jsx)("input",{value:g,onChange:P,placeholder:"my-combo",className:"flex-1 min-w-0 rounded-r border border-black/10 dark:border-white/10 bg-white dark:bg-black/20 px-2 py-1.5 font-mono text-sm outline-none focus:border-primary"})]}),S&&(0,r.jsx)("p",{className:"text-[11px] text-red-500 mt-0.5",children:S})]}):(0,r.jsx)(n.default,{label:"Combo Name",value:g,onChange:P,placeholder:"my-combo",error:S}),(0,r.jsxs)("p",{className:"text-[10px] text-text-muted mt-0.5",children:[h?`Auto-prefixed with "${h}". `:"","Only letters, numbers, -, _ and . allowed"]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"text-sm font-medium mb-1.5 block",children:"Models"}),0===v.length?(0,r.jsxs)("div",{className:"text-center py-4 border border-dashed border-black/10 dark:border-white/10 rounded-lg bg-black/[0.01] dark:bg-white/[0.01]",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-text-muted text-xl mb-1",children:"layers"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"No models added yet"})]}):(0,r.jsx)("div",{className:"flex max-h-[55vh] min-w-0 flex-col gap-1 overflow-y-auto sm:max-h-[350px]",children:v.map((e,t)=>(0,r.jsx)(c,{index:t,model:e,isFirst:0===t,isLast:t===v.length-1,onEdit:e=>{let s=[...v];s[t]=e,y(s)},onMoveUp:()=>(e=>{if(0===e)return;let t=[...v];[t[e-1],t[e]]=[t[e],t[e-1]],y(t)})(t),onMoveDown:()=>(e=>{if(e===v.length-1)return;let t=[...v];[t[e],t[e+1]]=[t[e+1],t[e]],y(t)})(t),onRemove:()=>y(v.filter((e,s)=>s!==t))},t))}),(0,r.jsxs)("button",{onClick:()=>w(!0),className:"w-full mt-2 py-2 border border-dashed border-black/10 dark:border-white/10 rounded-lg text-xs text-primary font-medium hover:text-primary hover:border-primary/50 transition-colors flex items-center justify-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"add"}),"Add Model"]})]}),(0,r.jsxs)("div",{className:"flex flex-col gap-2 pt-1 sm:flex-row",children:[(0,r.jsx)(i.default,{onClick:s,variant:"ghost",fullWidth:!0,size:"sm",children:"Cancel"}),(0,r.jsx)(i.default,{onClick:E,fullWidth:!0,size:"sm",disabled:!g.trim()||!!S||k,children:k?"Saving...":O?"Save":"Create"})]})]})}),(0,r.jsx)(o.default,{isOpen:N,onClose:()=>w(!1),onSelect:e=>{v.includes(e.value)||y([...v,e.value])},activeProviders:u,modelAliases:$,title:"Add Model to Combo",kindFilter:p})]})}},53038:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(73365),a=s(87706);function l({label:e,type:t="text",placeholder:s,value:n,onChange:i,error:o,hint:d,icon:c,disabled:m=!1,required:x=!1,className:u,inputClassName:p,...h}){return(0,r.jsxs)("div",{className:(0,a.cn)("flex flex-col gap-1.5",u),children:[e&&(0,r.jsxs)("label",{className:"text-sm font-medium text-text-main",children:[e,x&&(0,r.jsx)("span",{className:"text-red-500 ml-1",children:"*"})]}),(0,r.jsxs)("div",{className:"relative",children:[c&&(0,r.jsx)("div",{className:"absolute inset-y-0 left-0 flex items-center pl-3 pointer-events-none text-text-muted",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:c})}),(0,r.jsx)("input",{type:t,placeholder:s,value:n,onChange:i,disabled:m,className:(0,a.cn)("w-full py-2.5 px-3 text-sm text-text-main bg-surface-2 rounded-[10px]","border border-transparent placeholder-text-muted/70","focus:outline-none focus:ring-2 focus:ring-brand-500/30 focus:border-brand-500/40","transition-all duration-150 ease-out disabled:opacity-50 disabled:cursor-not-allowed","text-[16px] sm:text-sm",c&&"pl-10",o&&"ring-1 ring-red-500 focus:ring-2 focus:ring-red-500/40 border-red-500/40",p),...h})]}),o&&(0,r.jsxs)("p",{className:"text-xs text-red-500 flex items-center gap-1",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px]",children:"error"}),o]}),d&&!o&&(0,r.jsx)("p",{className:"text-xs text-text-muted",children:d})]})}},54546:(e,t,s)=>{s.d(t,{default:()=>i});var r=s(73365),a=s(86447),l=s.n(a),n=s(84675);function i({children:e}){return(0,r.jsxs)("div",{className:"min-h-screen flex flex-col relative bg-bg transition-colors duration-500 overflow-x-hidden selection:bg-primary/20 selection:text-primary",children:[(0,r.jsx)("div",{className:"fixed top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-[800px] h-[800px] bg-primary/5 dark:bg-primary/5 rounded-full blur-[100px] pointer-events-none z-0"}),(0,r.jsx)("div",{className:"fixed bottom-0 right-0 w-[600px] h-[600px] bg-orange-200/20 dark:bg-orange-900/10 rounded-full blur-[120px] pointer-events-none z-0 translate-y-1/3 translate-x-1/3"}),(0,r.jsx)("div",{className:"absolute top-6 right-6 z-20",children:(0,r.jsx)(n.default,{variant:"card"})}),(0,r.jsx)("main",{className:"flex-1 flex flex-col items-center justify-center p-4 sm:p-6 z-10 w-full h-full",children:e})]})}i.propTypes={children:l().node.isRequired}},56550:(e,t,s)=>{s.d(t,{default:()=>y});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(99568),o=s.n(i),d=s(29717),c=s(87706),m=s(43202),x=s(82495),u=s(96459),p=s(38230),h=s(66911);let f=["embedding","image","tts","stt"],b="/dashboard/media-providers/web",g=[{href:"/dashboard/endpoint",label:"Endpoint",icon:"api"},{href:"/dashboard/providers",label:"Providers",icon:"dns"},{href:"/dashboard/combos",label:"Combos",icon:"layers"},{href:"/dashboard/usage",label:"Usage",icon:"bar_chart"},{href:"/dashboard/quota",label:"Quota Tracker",icon:"data_usage"},{href:"/dashboard/mitm",label:"MITM",icon:"security"},{href:"/dashboard/cli-tools",label:"CLI Tools",icon:"terminal"}],j=[{href:"/dashboard/console-log",label:"Console Log",icon:"terminal"},{href:"/dashboard/translator",label:"Translator",icon:"translate"}],v=[{href:"/dashboard/proxy-pools",label:"Proxy Pools",icon:"lan"},{href:"/dashboard/skills",label:"Skills",icon:"extension"}];function y({onClose:e}){let t=(0,d.usePathname)(),[s,l]=(0,a.useState)(!1),[n,i]=(0,a.useState)(!1),[w,k]=(0,a.useState)(!1),[C,S]=(0,a.useState)(!1),[T,$]=(0,a.useState)(null),[R,I]=(0,a.useState)(!1),[P,E]=(0,a.useState)(!1),[O,M]=(0,a.useState)(null),[_,L]=(0,a.useState)(!1),{copied:A,copy:z}=(0,u.C)(2e3),U=m.h0.installCmd,q=`http://localhost:${m.h0.statusPort}/update/status`;(0,a.useEffect)(()=>{fetch("/api/settings").then(e=>e.json()).then(e=>{e.enableTranslator&&L(!0)}).catch(()=>{})},[]),(0,a.useEffect)(()=>{fetch("/api/version").then(e=>e.json()).then(e=>{e.hasUpdate&&$(e)}).catch(()=>{})},[]);let F=e=>"/dashboard/endpoint"===e?"/dashboard"===t||t.startsWith("/dashboard/endpoint"):t.startsWith(e),D=async()=>{E(!0),I(!1);try{let e=await fetch("/api/version/update",{method:"POST"});if(!e.ok){let t=await e.json().catch(()=>({}));alert(t.message||"Update failed. Please run the install command manually."),E(!1);return}S(!0)}catch(e){S(!0)}};(0,a.useEffect)(()=>{if(!P||!C)return;let e=!1,t=async()=>{try{let t=await fetch(q,{cache:"no-store"});if(t.ok){let s=await t.json();e||M(s)}}catch{}};t();let s=setInterval(t,m.h0.statusPollIntervalMs);return()=>{e=!0,clearInterval(s)}},[P,C,q]);let W=async()=>{k(!0);try{await fetch("/api/shutdown",{method:"POST"})}catch(e){}k(!1),i(!1),S(!0)};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("aside",{className:"flex w-72 flex-col border-r border-border-subtle bg-vibrancy backdrop-blur-xl transition-colors duration-300 min-h-full",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 px-6 pt-5 pb-2",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),(0,r.jsxs)("div",{className:"px-6 py-4 flex flex-col gap-2",children:[(0,r.jsxs)(o(),{href:"/dashboard",className:"flex items-center gap-3",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-9 rounded-[10px] bg-gradient-to-br from-brand-500 to-brand-700 shadow-[var(--shadow-warm)]",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-white text-[20px]",children:"hub"})}),(0,r.jsxs)("div",{className:"flex flex-col",children:[(0,r.jsx)("h1",{className:"text-lg font-semibold tracking-tight text-text-main",children:m.vQ.name}),(0,r.jsxs)("span",{className:"text-xs text-text-muted",children:["v",m.vQ.version]})]})]}),T&&(0,r.jsxs)("div",{className:"flex flex-col gap-1.5 rounded p-1 -m-1",children:[(0,r.jsxs)("span",{className:"text-xs font-semibold text-green-600 dark:text-amber-500",children:["↑ New version available: v",T.latestVersion]}),(0,r.jsxs)("div",{className:"flex items-center gap-2",children:[(0,r.jsx)("button",{onClick:()=>I(!0),className:"px-2 py-1 rounded bg-green-600 hover:bg-green-700 dark:bg-amber-500 dark:hover:bg-amber-600 text-white text-[11px] font-semibold transition-colors cursor-pointer",children:"Update now"}),(0,r.jsx)("button",{onClick:()=>z(U),title:"Copy install command",className:"flex-1 text-left hover:opacity-80 transition-opacity cursor-pointer min-w-0",children:(0,r.jsx)("code",{className:"block text-[10px] text-green-600/80 dark:text-amber-400/70 font-mono truncate",children:A?"✓ copied!":U})})]})]})]}),(0,r.jsxs)("nav",{className:"flex-1 px-4 py-2 space-y-0.5 overflow-y-auto custom-scrollbar",children:[g.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",F(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",F(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-[13px] font-medium",children:t.label})]},t.href)),(0,r.jsxs)("div",{className:"pt-3 mt-2 space-y-0.5",children:[(0,r.jsx)("p",{className:"px-4 text-xs font-semibold text-text-muted/60 uppercase tracking-wider mb-2",children:"System"}),(0,r.jsxs)("button",{onClick:()=>l(e=>!e),className:(0,c.cn)("w-full flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",t.startsWith("/dashboard/media-providers")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"perm_media"}),(0,r.jsx)("span",{className:"text-[13px] font-medium flex-1 text-left",children:"Media Providers"}),(0,r.jsx)("span",{className:"material-symbols-outlined text-[14px] transition-transform",style:{transform:s?"rotate(180deg)":"rotate(0deg)"},children:"expand_more"})]}),s&&(0,r.jsxs)("div",{className:"pl-4",children:[x.rj.filter(e=>f.includes(e.id)).map(s=>(0,r.jsxs)(o(),{href:`/dashboard/media-providers/${s.id}`,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",t.startsWith(`/dashboard/media-providers/${s.id}`)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:s.icon}),(0,r.jsx)("span",{className:"text-sm",children:s.label})]},s.id)),(0,r.jsxs)(o(),{href:b,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-4 py-1 rounded-lg transition-all group",t.startsWith(b)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[16px]",children:"travel_explore"}),(0,r.jsx)("span",{className:"text-sm",children:"Web Fetch & Search"})]},"web")]}),v.map(t=>(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",F(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",F(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-[13px] font-medium",children:t.label})]},t.href)),j.map(t=>"/dashboard/translator"!==t.href||_?(0,r.jsxs)(o(),{href:t.href,onClick:e,className:(0,c.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",F(t.href)?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",F(t.href)?"fill-1":"group-hover:text-primary transition-colors"),children:t.icon}),(0,r.jsx)("span",{className:"text-[13px] font-medium",children:t.label})]},t.href):null),(0,r.jsxs)(o(),{href:"/dashboard/profile",onClick:e,className:(0,c.cn)("flex items-center gap-3 px-3 py-1 rounded-lg transition-all group",F("/dashboard/profile")?"bg-primary/10 text-primary":"text-text-muted hover:bg-surface-2 hover:text-text-main"),children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px]",F("/dashboard/profile")?"fill-1":"group-hover:text-primary transition-colors"),children:"settings"}),(0,r.jsx)("span",{className:"text-[13px] font-medium",children:"Settings"})]})]})]}),(0,r.jsx)("div",{className:"p-3 border-t border-border-subtle",children:(0,r.jsx)(p.default,{variant:"outline",fullWidth:!0,icon:"power_settings_new",onClick:()=>i(!0),className:"text-red-500 border-red-200 hover:bg-red-50 hover:border-red-300",children:"Shutdown"})})]}),(0,r.jsx)(h.ConfirmModal,{isOpen:n,onClose:()=>i(!1),onConfirm:W,title:"Close Proxy",message:"Are you sure you want to close the proxy server?",confirmText:"Close",cancelText:"Cancel",variant:"danger",loading:w}),(0,r.jsx)(h.ConfirmModal,{isOpen:R,onClose:()=>I(!1),onConfirm:D,title:"Update 9Router",message:`This will close 9Router and install v${T?.latestVersion||""} in a separate window. Continue?`,confirmText:"Update",cancelText:"Cancel",variant:"primary",loading:P}),C&&(0,r.jsx)("div",{className:"fixed inset-0 z-50 flex items-center justify-center bg-black/80 backdrop-blur-sm p-6",children:P?(0,r.jsx)(N,{status:O,latestVersion:T?.latestVersion,installCmd:U,copied:A,onCopy:()=>z(U)}):(0,r.jsxs)("div",{className:"text-center p-8",children:[(0,r.jsx)("div",{className:"flex items-center justify-center size-16 rounded-full bg-red-500/20 text-red-500 mx-auto mb-4",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[32px]",children:"power_off"})}),(0,r.jsx)("h2",{className:"text-xl font-semibold text-white mb-2",children:"Server Disconnected"}),(0,r.jsx)("p",{className:"text-text-muted mb-6",children:"The proxy server has been stopped."}),(0,r.jsx)(p.default,{variant:"secondary",onClick:()=>globalThis.location.reload(),children:"Reload Page"})]})})]})}function N({status:e,latestVersion:t,installCmd:s,copied:a,onCopy:l}){let n=e?.phase||"connecting",i=e?.done===!0,o=e?.success===!0,d=e?.attempt||0,m=e?.maxRetries||0,x=e?.logTail||[],u=e?.error,h=[{key:"stopped",label:"Stopped 9Router server",state:"done"},{key:"launched",label:"Launched background installer",state:e?"done":"active"},{key:"waiting",label:"Waiting for app processes to exit",state:"waitingForExit"===n?"active":e&&"starting"!==n?"done":"pending"},{key:"installing",label:d>1?`Installing v${t||"latest"} (attempt ${d}/${m})`:`Installing v${t||"latest"}`,state:i?o?"done":"error":"installing"===n?"active":"pending"},{key:"finished",label:i&&o?"Installed — ready to restart":"Waiting to finish",state:i&&o?"done":i&&!o?"error":"pending"}];return(0,r.jsxs)("div",{className:"w-full max-w-lg rounded-xl bg-neutral-900/95 border border-white/10 p-6 text-white",children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,r.jsx)("div",{className:(0,c.cn)("flex items-center justify-center size-11 rounded-full",i&&o?"bg-green-500/20 text-green-400":i&&!o?"bg-red-500/20 text-red-400":"bg-blue-500/20 text-blue-400"),children:(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[24px]",!i&&"animate-spin"),children:i&&o?"check_circle":i&&!o?"error":"progress_activity"})}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h2",{className:"text-lg font-semibold",children:i&&o?"Update Completed":i&&!o?"Update Failed":"Updating 9Router"}),(0,r.jsx)("p",{className:"text-xs text-white/60",children:i&&o?`Installed v${t||"latest"} successfully`:i&&!o?u||"Installation failed":`Installing v${t||"latest"} from npm...`})]})]}),(0,r.jsx)("ul",{className:"space-y-2 mb-4",children:h.map(e=>(0,r.jsxs)("li",{className:"flex items-center gap-3 text-sm",children:[(0,r.jsx)("span",{className:(0,c.cn)("material-symbols-outlined text-[18px] shrink-0","done"===e.state&&"text-green-400","active"===e.state&&"text-blue-400 animate-pulse","error"===e.state&&"text-red-400","pending"===e.state&&"text-white/30"),children:"done"===e.state?"check_circle":"error"===e.state?"cancel":"active"===e.state?"radio_button_checked":"radio_button_unchecked"}),(0,r.jsx)("span",{className:(0,c.cn)("pending"===e.state?"text-white/40":"text-white/90"),children:e.label})]},e.key))}),x.length>0&&(0,r.jsx)("div",{className:"rounded-md bg-black/50 border border-white/5 p-3 mb-4 max-h-40 overflow-auto",children:(0,r.jsx)("pre",{className:"text-[11px] font-mono text-white/70 whitespace-pre-wrap break-all",children:x.join("\n")})}),i&&o?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("p",{className:"text-sm text-white/80",children:["Run ",(0,r.jsx)("code",{className:"px-1.5 py-0.5 rounded bg-white/10 text-green-400",children:"9router"})," in your terminal to start the new version."]}),(0,r.jsx)(p.default,{variant:"secondary",fullWidth:!0,onClick:()=>globalThis.location.reload(),children:"Reload Page"})]}):i&&!o?(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("p",{className:"text-sm text-white/80",children:"Run the install command manually:"}),(0,r.jsx)("button",{onClick:l,className:"w-full text-left px-3 py-2 rounded bg-white/5 hover:bg-white/10 transition-colors",children:(0,r.jsx)("code",{className:"text-xs font-mono text-amber-400",children:a?"✓ copied!":s})})]}):(0,r.jsx)("p",{className:"text-xs text-white/50 text-center",children:"This may take 30-60 seconds. Please don't close this window."})]})}y.propTypes={onClose:n().func},N.propTypes={status:n().object,latestVersion:n().string,installCmd:n().string.isRequired,copied:n().bool,onCopy:n().func.isRequired}},63380:(e,t,s)=>{s.d(t,{default:()=>o});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156);function o({isOpen:e,onMethodSelect:t,onClose:s}){let[l,n]=(0,a.useState)(null),[d,c]=(0,a.useState)(""),[m,x]=(0,a.useState)("us-east-1"),[u,p]=(0,a.useState)(""),[h,f]=(0,a.useState)(null),[b,g]=(0,a.useState)(!1),[j,v]=(0,a.useState)(!1),[y,N]=(0,a.useState)(!1);(0,a.useEffect)(()=>{"import"===l&&e&&(async()=>{v(!0),f(null),N(!1);try{let e=await fetch("/api/oauth/kiro/auto-import"),t=await e.json();t.found?(p(t.refreshToken),N(!0)):f(t.error||"Could not auto-detect token")}catch(e){f("Failed to auto-detect token")}finally{v(!1)}})()},[l,e]);let w=e=>{n(e),f(null)},k=()=>{n(null),f(null)},C=async()=>{if(!u.trim())return void f("Please enter a refresh token");g(!0),f(null);try{let e=await fetch("/api/oauth/kiro/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({refreshToken:u.trim()})}),s=await e.json();if(!e.ok)throw Error(s.error||"Import failed");t("import")}catch(e){f(e.message)}finally{g(!1)}},S=e=>{t("social",{provider:e})};return(0,r.jsx)(i.aF,{isOpen:e,title:"Connect Kiro",onClose:s,size:"lg",children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[!l&&(0,r.jsxs)("div",{className:"space-y-3",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted mb-4",children:"Choose your authentication method:"}),(0,r.jsx)("button",{onClick:()=>t("builder-id"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"shield"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"font-semibold mb-1",children:"AWS Builder ID"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Recommended for most users. Free AWS account required."})]})]})}),(0,r.jsx)("button",{onClick:()=>w("idc"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"business"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"font-semibold mb-1",children:"AWS IAM Identity Center"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"For enterprise users with custom AWS IAM Identity Center."})]})]})}),(0,r.jsx)("button",{onClick:()=>w("social-google"),className:"hidden w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"account_circle"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"font-semibold mb-1",children:"Google Account"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Login with your Google account (manual callback)."})]})]})}),(0,r.jsx)("button",{onClick:()=>w("social-github"),className:"hidden w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"code"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"font-semibold mb-1",children:"GitHub Account"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Login with your GitHub account (manual callback)."})]})]})}),(0,r.jsx)("button",{onClick:()=>w("import"),className:"w-full p-4 text-left border border-border rounded-lg hover:bg-sidebar transition-colors",children:(0,r.jsxs)("div",{className:"flex items-start gap-3",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-primary mt-0.5",children:"file_upload"}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("h3",{className:"font-semibold mb-1",children:"Import Token"}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Paste refresh token from Kiro IDE."})]})]})})]}),"idc"===l&&(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["IDC Start URL ",(0,r.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,r.jsx)(i.pd,{value:d,onChange:e=>c(e.target.value),placeholder:"https://your-org.awsapps.com/start",className:"font-mono text-sm"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"Your organization's AWS IAM Identity Center URL"})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("label",{className:"block text-sm font-medium mb-2",children:"AWS Region"}),(0,r.jsx)(i.pd,{value:m,onChange:e=>x(e.target.value),placeholder:"us-east-1",className:"font-mono text-sm"}),(0,r.jsx)("p",{className:"text-xs text-text-muted mt-1",children:"AWS region for your Identity Center (default: us-east-1)"})]}),h&&(0,r.jsx)("p",{className:"text-sm text-red-600",children:h}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>{d.trim()?t("idc",{startUrl:d.trim(),region:m}):f("Please enter your IDC start URL")},fullWidth:!0,children:"Continue"}),(0,r.jsx)(i.$n,{onClick:k,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"social-google"===l&&(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-4 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,r.jsxs)("div",{className:"flex-1 text-sm",children:[(0,r.jsx)("p",{className:"font-medium text-amber-900 dark:text-amber-100 mb-1",children:"Manual Callback Required"}),(0,r.jsx)("p",{className:"text-amber-800 dark:text-amber-200",children:"After login, you'll need to copy the callback URL from your browser and paste it back here."})]})]})}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>S("google"),fullWidth:!0,children:"Continue with Google"}),(0,r.jsx)(i.$n,{onClick:k,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"social-github"===l&&(0,r.jsxs)("div",{className:"space-y-4",children:[(0,r.jsx)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-4 rounded-lg border border-amber-200 dark:border-amber-800",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,r.jsxs)("div",{className:"flex-1 text-sm",children:[(0,r.jsx)("p",{className:"font-medium text-amber-900 dark:text-amber-100 mb-1",children:"Manual Callback Required"}),(0,r.jsx)("p",{className:"text-amber-800 dark:text-amber-200",children:"After login, you'll need to copy the callback URL from your browser and paste it back here."})]})]})}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:()=>S("github"),fullWidth:!0,children:"Continue with GitHub"}),(0,r.jsx)(i.$n,{onClick:k,variant:"ghost",fullWidth:!0,children:"Back"})]})]}),"import"===l&&(0,r.jsxs)("div",{className:"space-y-4",children:[j&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Auto-detecting token..."}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Reading from AWS SSO cache"})]}),!j&&(0,r.jsxs)(r.Fragment,{children:[y&&(0,r.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,r.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200",children:"Token auto-detected from Kiro IDE successfully!"})]})}),!y&&!h&&(0,r.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,r.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Kiro IDE not detected. Please paste your refresh token manually."})]})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Refresh Token ",(0,r.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,r.jsx)(i.pd,{value:u,onChange:e=>p(e.target.value),placeholder:"Token will be auto-filled...",className:"font-mono text-sm"})]}),h&&(0,r.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,r.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:h})}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:C,fullWidth:!0,disabled:b||!u.trim(),children:b?"Importing...":"Import Token"}),(0,r.jsx)(i.$n,{onClick:k,variant:"ghost",fullWidth:!0,children:"Back"})]})]})]})]})})}o.propTypes={isOpen:n().bool.isRequired,onMethodSelect:n().func.isRequired,onClose:n().func.isRequired}},66911:(e,t,s)=>{s.d(t,{ConfirmModal:()=>o,default:()=>i});var r=s(73365),a=s(1521),l=s(87706),n=s(38230);function i({isOpen:e,onClose:t,title:s,children:n,footer:o,size:d="md",closeOnOverlay:c=!0,showCloseButton:m=!0,showTrafficLights:x=!0,className:u}){return((0,a.useEffect)(()=>(e?document.body.style.overflow="hidden":document.body.style.overflow="",()=>{document.body.style.overflow=""}),[e]),(0,a.useEffect)(()=>{let s=s=>{"Escape"===s.key&&e&&t()};return document.addEventListener("keydown",s),()=>document.removeEventListener("keydown",s)},[e,t]),e)?(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex items-center justify-center p-4",children:[(0,r.jsx)("div",{className:"absolute inset-0 bg-black/50 backdrop-blur-[2px] fade-in",onClick:c?t:void 0}),(0,r.jsxs)("div",{className:(0,l.cn)("relative w-full bg-surface","border border-border-subtle","rounded-[14px] shadow-[var(--shadow-elev)]","fade-in",{sm:"max-w-sm",md:"max-w-md",lg:"max-w-lg",xl:"max-w-xl",full:"max-w-4xl"}[d],u),children:[(s||m)&&(0,r.jsxs)("div",{className:"flex items-center justify-between p-2 border-b border-border-subtle",children:[(0,r.jsxs)("div",{className:"flex items-center",children:[x&&(0,r.jsxs)("div",{className:"flex items-center gap-2 mr-4 ml-2",children:[(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FF5F56]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#FFBD2E]"}),(0,r.jsx)("div",{className:"w-3 h-3 rounded-full bg-[#27C93F]"})]}),s&&(0,r.jsx)("h2",{className:"text-lg font-semibold text-text-main",children:s})]}),m&&(0,r.jsx)("button",{onClick:t,className:"p-1.5 rounded-[10px] text-text-muted hover:bg-surface-2 hover:text-text-main transition-colors",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"close"})})]}),(0,r.jsx)("div",{className:"p-6 max-h-[calc(85vh-100px)] overflow-y-auto custom-scrollbar",children:n}),o&&(0,r.jsx)("div",{className:"flex items-center justify-end gap-3 p-6 border-t border-border-subtle",children:o})]})]}):null}function o({isOpen:e,onClose:t,onConfirm:s,title:a="Confirm",message:l,confirmText:d="Confirm",cancelText:c="Cancel",variant:m="danger",loading:x=!1}){return(0,r.jsx)(i,{isOpen:e,onClose:t,title:a,size:"sm",footer:(0,r.jsxs)(r.Fragment,{children:[(0,r.jsx)(n.default,{variant:"ghost",onClick:t,disabled:x,children:c}),(0,r.jsx)(n.default,{variant:m,onClick:s,loading:x,children:d})]}),children:(0,r.jsx)("p",{className:"text-text-muted",children:l})})}},67692:(e,t,s)=>{s.d(t,{default:()=>n});var r=s(73365),a=s(1521),l=s(44156);function n(){let[e,t]=(0,a.useState)(!1);return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("button",{onClick:()=>t(!0),className:"relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-lg transition-all text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5",title:"9Remote",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-[18px]",children:"computer"}),(0,r.jsx)("span",{className:"text-xs font-medium",children:"Remote"})]}),(0,r.jsx)(l.A,{isOpen:e,onClose:()=>t(!1)})]})}},68266:(e,t,s)=>{s.d(t,{A:()=>i});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l);function i({src:e,alt:t,size:s=32,className:l="",fallbackText:n="?",fallbackColor:o}){let[d,c]=(0,a.useState)(!1);return!e||d?(0,r.jsx)("span",{className:`inline-flex items-center justify-center font-bold rounded-lg ${l}`.trim(),style:{width:s,height:s,color:o,fontSize:Math.max(10,Math.floor(.38*s))},children:n}):(0,r.jsx)("img",{src:e,alt:t,width:s,height:s,className:l,onError:()=>c(!0)})}i.propTypes={src:n().string,alt:n().string,size:n().number,className:n().string,fallbackText:n().string,fallbackColor:n().string}},68600:(e,t,s)=>{s.d(t,{default:()=>o});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156);function o({isOpen:e,onSuccess:t,onClose:s}){let[l,n]=(0,a.useState)(""),[d,c]=(0,a.useState)(!1),[m,x]=(0,a.useState)(null),[u,p]=(0,a.useState)(!1),h=async()=>{if(!l.trim())return void x("Please paste your cookie");c(!0),x(null);try{let e=await fetch("/api/oauth/iflow/cookie",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({cookie:l.trim()})}),s=await e.json();if(!e.ok)throw Error(s.error||"Authentication failed");p(!0),setTimeout(()=>{t?.(),f()},1500)}catch(e){x(e.message)}finally{c(!1)}},f=()=>{n(""),x(null),p(!1),s?.()};return(0,r.jsx)(i.aF,{isOpen:e,onClose:f,title:"iFlow Cookie Authentication",children:(0,r.jsx)("div",{className:"space-y-4",children:u?(0,r.jsxs)("div",{className:"text-center py-8",children:[(0,r.jsx)("div",{className:"text-6xl mb-4",children:"✅"}),(0,r.jsx)("p",{className:"text-lg font-medium text-text-primary",children:"Authentication Successful!"}),(0,r.jsx)("p",{className:"text-sm text-text-muted mt-2",children:"Fresh API key obtained"})]}):(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["To get a fresh API key, paste your browser cookie from"," ",(0,r.jsx)("a",{href:"https://platform.iflow.cn",target:"_blank",rel:"noopener noreferrer",className:"text-primary hover:underline",children:"platform.iflow.cn"})]}),(0,r.jsxs)("div",{className:"bg-surface-secondary p-3 rounded-lg text-xs space-y-2",children:[(0,r.jsx)("p",{className:"font-medium text-text-primary",children:"How to get cookie:"}),(0,r.jsxs)("ol",{className:"list-decimal list-inside space-y-1 text-text-muted",children:[(0,r.jsx)("li",{children:"Open platform.iflow.cn in your browser"}),(0,r.jsx)("li",{children:"Login to your account"}),(0,r.jsx)("li",{children:"Open DevTools (F12) → Application/Storage → Cookies"}),(0,r.jsx)("li",{children:"Copy the entire cookie string (must include BXAuth)"}),(0,r.jsx)("li",{children:"Paste it below"})]})]})]}),(0,r.jsxs)("div",{className:"space-y-2",children:[(0,r.jsx)("label",{className:"block text-sm font-medium text-text-primary",children:"Cookie String"}),(0,r.jsx)("textarea",{value:l,onChange:e=>n(e.target.value),placeholder:"BXAuth=xxx; ...",className:"w-full px-3 py-2 bg-surface-secondary border border-border rounded-lg text-sm text-text-primary placeholder-text-muted focus:outline-none focus:ring-2 focus:ring-primary resize-none",rows:4,disabled:d})]}),m&&(0,r.jsx)("div",{className:"p-3 bg-error/10 border border-error/20 rounded-lg",children:(0,r.jsx)("p",{className:"text-sm text-error",children:m})}),(0,r.jsxs)("div",{className:"flex gap-3 pt-2",children:[(0,r.jsx)(i.$n,{variant:"secondary",onClick:f,disabled:d,fullWidth:!0,children:"Cancel"}),(0,r.jsx)(i.$n,{onClick:h,loading:d,fullWidth:!0,children:"Authenticate"})]})]})})})}o.propTypes={isOpen:n().bool.isRequired,onSuccess:n().func,onClose:n().func}},70391:(e,t,s)=>{s.d(t,{default:()=>o});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(74156);function o({isOpen:e,onSuccess:t,onClose:s}){let[l,n]=(0,a.useState)(""),[d,c]=(0,a.useState)(""),[m,x]=(0,a.useState)(null),[u,p]=(0,a.useState)(!1),[h,f]=(0,a.useState)(!1),[b,g]=(0,a.useState)(!1),[j,v]=(0,a.useState)(!1),y=async()=>{f(!0),x(null),g(!1),v(!1);try{let e=await fetch("/api/oauth/cursor/auto-import"),t=await e.json();t.found?(n(t.accessToken),c(t.machineId),g(!0)):t.windowsManual?v(!0):x(t.error||"Could not auto-detect tokens")}catch(e){x("Failed to auto-detect tokens")}finally{f(!1)}};(0,a.useEffect)(()=>{e&&y()},[e]);let N=async()=>{if(!l.trim())return void x("Please enter an access token");if(!d.trim())return void x("Please enter a machine ID");p(!0),x(null);try{let e=await fetch("/api/oauth/cursor/import",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({accessToken:l.trim(),machineId:d.trim()})}),r=await e.json();if(!e.ok)throw Error(r.error||"Import failed");t?.(),s()}catch(e){x(e.message)}finally{p(!1)}};return(0,r.jsx)(i.aF,{isOpen:e,title:"Connect Cursor IDE",onClose:s,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[h&&(0,r.jsxs)("div",{className:"text-center py-6",children:[(0,r.jsx)("div",{className:"size-16 mx-auto mb-4 rounded-full bg-primary/10 flex items-center justify-center",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-3xl text-primary animate-spin",children:"progress_activity"})}),(0,r.jsx)("h3",{className:"text-lg font-semibold mb-2",children:"Auto-detecting tokens..."}),(0,r.jsx)("p",{className:"text-sm text-text-muted",children:"Reading from Cursor IDE database"})]}),!h&&(0,r.jsxs)(r.Fragment,{children:[b&&(0,r.jsx)("div",{className:"bg-green-50 dark:bg-green-900/20 p-3 rounded-lg border border-green-200 dark:border-green-800",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-green-600 dark:text-green-400",children:"check_circle"}),(0,r.jsx)("p",{className:"text-sm text-green-800 dark:text-green-200",children:"Tokens auto-detected from Cursor IDE successfully!"})]})}),j&&(0,r.jsxs)("div",{className:"bg-amber-50 dark:bg-amber-900/20 p-3 rounded-lg border border-amber-200 dark:border-amber-800 flex flex-col gap-2",children:[(0,r.jsxs)("div",{className:"flex gap-2 items-center",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-amber-600 dark:text-amber-400",children:"info"}),(0,r.jsx)("p",{className:"text-sm font-medium text-amber-800 dark:text-amber-200",children:"Could not read Cursor database automatically."})]}),(0,r.jsxs)("p",{className:"text-xs text-amber-700 dark:text-amber-300",children:["Make sure Cursor IDE has been opened at least once, then click ",(0,r.jsx)("strong",{children:"Retry"}),". If the problem persists, paste your tokens manually below."]}),(0,r.jsx)(i.$n,{onClick:y,variant:"outline",fullWidth:!0,children:"Retry"})]}),!b&&!j&&!m&&(0,r.jsx)("div",{className:"bg-blue-50 dark:bg-blue-900/20 p-3 rounded-lg border border-blue-200 dark:border-blue-800",children:(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)("span",{className:"material-symbols-outlined text-blue-600 dark:text-blue-400",children:"info"}),(0,r.jsx)("p",{className:"text-sm text-blue-800 dark:text-blue-200",children:"Cursor IDE not detected. Please paste your tokens manually."})]})}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Access Token ",(0,r.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,r.jsx)("textarea",{value:l,onChange:e=>n(e.target.value),placeholder:"Access token will be auto-filled...",rows:3,className:"w-full px-3 py-2 text-sm font-mono border border-border rounded-lg bg-background focus:outline-none focus:border-primary resize-none"})]}),(0,r.jsxs)("div",{children:[(0,r.jsxs)("label",{className:"block text-sm font-medium mb-2",children:["Machine ID ",(0,r.jsx)("span",{className:"text-red-500",children:"*"})]}),(0,r.jsx)(i.pd,{value:d,onChange:e=>c(e.target.value),placeholder:"Machine ID will be auto-filled...",className:"font-mono text-sm"})]}),m&&(0,r.jsx)("div",{className:"bg-red-50 dark:bg-red-900/20 p-3 rounded-lg border border-red-200 dark:border-red-800",children:(0,r.jsx)("p",{className:"text-sm text-red-600 dark:text-red-400",children:m})}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(i.$n,{onClick:N,fullWidth:!0,disabled:u||!l.trim()||!d.trim(),children:u?"Importing...":"Import Token"}),(0,r.jsx)(i.$n,{onClick:s,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})]})})}o.propTypes={isOpen:n().bool.isRequired,onSuccess:n().func,onClose:n().func.isRequired}},70789:(e,t,s)=>{s.d(t,{default:()=>c});var r=s(73365),a=s(99568),l=s.n(a),n=s(43202);let i=[{label:"Features",href:"#features"},{label:"Pricing",href:"#pricing"},{label:"Changelog",href:"#"}],o=[{label:"Documentation",href:"#"},{label:"API Reference",href:"#"},{label:"Help Center",href:"#"}],d=[{label:"About",href:"#"},{label:"Blog",href:"#"},{label:"Contact",href:"#"}];function c(){return(0,r.jsx)("footer",{className:"bg-bg border-t border-border pt-16 pb-12",children:(0,r.jsxs)("div",{className:"container mx-auto px-4 sm:px-6 lg:px-8",children:[(0,r.jsxs)("div",{className:"grid grid-cols-2 md:grid-cols-4 lg:grid-cols-5 gap-10 mb-12",children:[(0,r.jsxs)("div",{className:"col-span-2 lg:col-span-2",children:[(0,r.jsxs)("div",{className:"flex items-center gap-2 mb-6",children:[(0,r.jsx)("div",{className:"size-6 text-primary",children:(0,r.jsx)("svg",{className:"w-full h-full",fill:"currentColor",viewBox:"0 0 48 48",children:(0,r.jsx)("path",{clipRule:"evenodd",d:"M12.0799 24L4 19.2479L9.95537 8.75216L18.04 13.4961L18.0446 4H29.9554L29.96 13.4961L38.0446 8.75216L44 19.2479L35.92 24L44 28.7521L38.0446 39.2479L29.96 34.5039L29.9554 44H18.0446L18.04 34.5039L9.95537 39.2479L4 28.7521L12.0799 24Z",fillRule:"evenodd"})})}),(0,r.jsx)("span",{className:"text-xl font-bold text-text-main",children:n.vQ.name})]}),(0,r.jsx)("p",{className:"text-text-muted mb-6 max-w-sm font-light",children:"The unified interface for modern AI infrastructure. Secure, observable, and scalable."}),(0,r.jsxs)("div",{className:"flex gap-4",children:[(0,r.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"Twitter",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M22.46 6c-.77.35-1.6.58-2.46.69.88-.53 1.56-1.37 1.88-2.38-.83.5-1.75.85-2.72 1.05C18.37 4.5 17.26 4 16 4c-2.35 0-4.27 1.92-4.27 4.29 0 .34.04.67.11.98C8.28 9.09 5.11 7.38 3 4.79c-.37.63-.58 1.37-.58 2.15 0 1.49.75 2.81 1.91 3.56-.71 0-1.37-.2-1.95-.5v.03c0 2.08 1.48 3.82 3.44 4.21a4.22 4.22 0 0 1-1.93.07 4.28 4.28 0 0 0 4 2.98 8.521 8.521 0 0 1-5.33 1.84c-.34 0-.68-.02-1.02-.06C3.44 20.29 5.7 21 8.12 21 16 21 20.33 14.46 20.33 8.79c0-.19 0-.37-.01-.56.84-.6 1.56-1.36 2.14-2.23z"})})}),(0,r.jsx)("a",{href:"#",className:"text-gray-400 hover:text-primary transition-colors","aria-label":"GitHub",children:(0,r.jsx)("svg",{className:"w-5 h-5",fill:"currentColor",viewBox:"0 0 24 24",children:(0,r.jsx)("path",{d:"M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0 1 12 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0 0 22 12.017C22 6.484 17.522 2 12 2z"})})})]})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Product"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:i.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Resources"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:o.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]}),(0,r.jsxs)("div",{children:[(0,r.jsx)("h4",{className:"font-semibold text-text-main mb-4",children:"Company"}),(0,r.jsx)("ul",{className:"flex flex-col gap-3 text-sm text-text-muted font-light",children:d.map(e=>(0,r.jsx)("li",{children:(0,r.jsx)(l(),{href:e.href,className:"hover:text-primary transition-colors",children:e.label})},e.label))})]})]}),(0,r.jsxs)("div",{className:"border-t border-border pt-8 flex flex-col md:flex-row justify-between items-center gap-4",children:[(0,r.jsxs)("p",{className:"text-sm text-text-muted",children:["\xa9 ",new Date().getFullYear()," ",n.vQ.name," Inc. All rights reserved."]}),(0,r.jsxs)("div",{className:"flex gap-6 text-sm text-text-muted",children:[(0,r.jsx)(l(),{href:"#",className:"hover:text-primary transition-colors",children:"Privacy Policy"}),(0,r.jsx)(l(),{href:"#",className:"hover:text-primary transition-colors",children:"Terms of Service"})]})]})]})})}},73531:(e,t,s)=>{s.d(t,{default:()=>c});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(3242),o=s(63380),d=s(51454);function c({isOpen:e,providerInfo:t,onSuccess:s,onClose:l}){let[n,m]=(0,a.useState)(null),[x,u]=(0,a.useState)(null),[p,h]=(0,a.useState)(null),f=(0,a.useCallback)((e,t)=>{"builder-id"===e?m("builder-id"):"idc"===e?(m("idc"),h(t)):"social"===e?(m("social"),u(t.provider)):"import"===e&&s?.()},[s]),b=()=>{m(null),u(null),h(null)};return n?"builder-id"===n||"idc"===n?(0,r.jsx)(i.default,{isOpen:e,provider:"kiro",providerInfo:t,onSuccess:()=>{m(null),h(null),s?.(),l?.()},onClose:b,idcConfig:p}):"social"===n&&x?(0,r.jsx)(d.default,{isOpen:e,provider:x,onSuccess:()=>{m(null),u(null),s?.(),l?.()},onClose:b}):null:(0,r.jsx)(o.default,{isOpen:e,onMethodSelect:f,onClose:l})}c.propTypes={isOpen:n().bool.isRequired,providerInfo:n().shape({name:n().string}),onSuccess:n().func,onClose:n().func.isRequired}},74156:(e,t,s)=>{s.d(t,{x0:()=>N.default,Ex:()=>d.default,$n:()=>r.default,Zp:()=>n.default,Qv:()=>o.CardSkeleton,CK:()=>p.default,G9:()=>g.default,wI:()=>y.default,vj:()=>v.default,vE:()=>j.default,pd:()=>a.default,Mh:()=>b.default,uR:()=>u.default,aF:()=>i.default,rq:()=>x.default,gw:()=>w.default,LF:()=>m.default,Wx:()=>S.default,gM:()=>f.default,Iz:()=>k.default,l6:()=>l.default,lM:()=>c.default,m_:()=>C.default,jK:()=>h.default});var r=s(38230),a=s(53038),l=s(37066),n=s(292),i=s(66911),o=s(91494);s(82455);var d=s(35045),c=s(14406);s(84675),s(98814),s(56550),s(51123),s(70789);var m=s(3242),x=s(24372),u=s(5671),p=s(52327),h=s(3412);s(12003),s(67692),s(80600),s(26125);var f=s(32135);s(63380);var b=s(73531);s(51454);var g=s(70391),j=s(68600),v=s(50136),y=s(90163),N=s(12820),w=s(99775),k=s(1755),C=s(13333),S=s(8569);s(13048),s(54546)},80600:(e,t,s)=>{s.d(t,{default:()=>p});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(55348),o=s(89036),d=s(26125),c=s(44156),m=s(12003);let x={en:{name:"English",flag:"\uD83C\uDDFA\uD83C\uDDF8"},vi:{name:"Tiếng Việt",flag:"\uD83C\uDDFB\uD83C\uDDF3"},"zh-CN":{name:"简体中文",flag:"\uD83C\uDDE8\uD83C\uDDF3"},"zh-TW":{name:"繁體中文",flag:"\uD83C\uDDF9\uD83C\uDDFC"},ja:{name:"日本語",flag:"\uD83C\uDDEF\uD83C\uDDF5"},"pt-BR":{name:"Portugu\xeas (BR)",flag:"\uD83C\uDDE7\uD83C\uDDF7"},"pt-PT":{name:"Portugu\xeas (PT)",flag:"\uD83C\uDDF5\uD83C\uDDF9"},ko:{name:"한국어",flag:"\uD83C\uDDF0\uD83C\uDDF7"},es:{name:"Espa\xf1ol",flag:"\uD83C\uDDEA\uD83C\uDDF8"},de:{name:"Deutsch",flag:"\uD83C\uDDE9\uD83C\uDDEA"},fr:{name:"Fran\xe7ais",flag:"\uD83C\uDDEB\uD83C\uDDF7"},he:{name:"עברית",flag:"\uD83C\uDDEE\uD83C\uDDF1"},ar:{name:"العربية",flag:"\uD83C\uDDF8\uD83C\uDDE6"},ru:{name:"Русский",flag:"\uD83C\uDDF7\uD83C\uDDFA"},pl:{name:"Polski",flag:"\uD83C\uDDF5\uD83C\uDDF1"},cs:{name:"Čeština",flag:"\uD83C\uDDE8\uD83C\uDDFF"},nl:{name:"Nederlands",flag:"\uD83C\uDDF3\uD83C\uDDF1"},tr:{name:"T\xfcrk\xe7e",flag:"\uD83C\uDDF9\uD83C\uDDF7"},uk:{name:"Українська",flag:"\uD83C\uDDFA\uD83C\uDDE6"},tl:{name:"Tagalog",flag:"\uD83C\uDDF5\uD83C\uDDED"},id:{name:"Indonesia",flag:"\uD83C\uDDEE\uD83C\uDDE9"},th:{name:"ไทย",flag:"\uD83C\uDDF9\uD83C\uDDED"},hi:{name:"हिन्दी",flag:"\uD83C\uDDEE\uD83C\uDDF3"},bn:{name:"বাংলা",flag:"\uD83C\uDDE7\uD83C\uDDE9"},ur:{name:"اردو",flag:"\uD83C\uDDF5\uD83C\uDDF0"},ro:{name:"Rom\xe2nă",flag:"\uD83C\uDDF7\uD83C\uDDF4"},sv:{name:"Svenska",flag:"\uD83C\uDDF8\uD83C\uDDEA"},it:{name:"Italiano",flag:"\uD83C\uDDEE\uD83C\uDDF9"},el:{name:"Ελληνικά",flag:"\uD83C\uDDEC\uD83C\uDDF7"},hu:{name:"Magyar",flag:"\uD83C\uDDED\uD83C\uDDFA"},fi:{name:"Suomi",flag:"\uD83C\uDDEB\uD83C\uDDEE"},da:{name:"Dansk",flag:"\uD83C\uDDE9\uD83C\uDDF0"},no:{name:"Norsk",flag:"\uD83C\uDDF3\uD83C\uDDF4"}};function u({icon:e,label:t,onClick:s,trailing:a,danger:l}){return(0,r.jsxs)("button",{onClick:s,className:`flex items-center gap-3 w-full px-4 py-2.5 text-sm transition-colors ${l?"text-red-500 hover:bg-red-500/10":"text-text-main hover:bg-black/5 dark:hover:bg-white/5"}`,children:[(0,r.jsx)("span",{className:`material-symbols-outlined text-[20px] ${l?"":"text-text-muted"}`,children:e}),(0,r.jsx)("span",{className:"flex-1 text-left",children:t}),a&&(0,r.jsx)("span",{className:"text-base",children:a})]})}function p({onLogout:e}){let[t,s]=(0,a.useState)(!1),[l,n]=(0,a.useState)(!1),[h,f]=(0,a.useState)(!1),[b,g]=(0,a.useState)(!1),[j,v]=(0,a.useState)("en"),{toggleTheme:y,isDark:N}=(0,o.D)(),w=(0,a.useRef)(null);return(0,a.useEffect)(()=>{v(function(){if("u"e.trim().startsWith(`${i.CL}=`)),t=e?decodeURIComponent(e.split("=")[1]):"en";return(0,i.QC)(t)}())},[b]),(0,a.useEffect)(()=>{let e=e=>{w.current&&!w.current.contains(e.target)&&s(!1)};if(t)return document.addEventListener("mousedown",e),()=>document.removeEventListener("mousedown",e)},[t]),(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"relative",ref:w,children:[(0,r.jsx)("button",{onClick:()=>s(e=>!e),className:"flex items-center justify-center p-2 rounded-lg text-text-muted hover:text-text-main hover:bg-black/5 dark:hover:bg-white/5 transition-all",title:"Menu",children:(0,r.jsx)("span",{className:"material-symbols-outlined",children:"grid_view"})}),t&&(0,r.jsxs)("div",{className:"absolute right-0 top-full mt-2 w-60 bg-surface border border-black/10 dark:border-white/10 rounded-xl shadow-2xl z-50 animate-in fade-in zoom-in-95 duration-150 overflow-hidden py-1",children:[(0,r.jsx)(u,{icon:"history",label:"Change Log",onClick:()=>{s(!1),n(!0)}}),(0,r.jsx)(u,{icon:"language",label:x[j]?.name||j,trailing:x[j]?.flag||"\uD83C\uDF10",onClick:()=>{s(!1),g(!0)}}),(0,r.jsx)(u,{icon:N?"light_mode":"dark_mode",label:"Theme",onClick:()=>{y(),s(!1)}}),(0,r.jsx)(u,{icon:"computer",label:"Remote",onClick:()=>{s(!1),f(!0)}}),(0,r.jsx)(u,{icon:"logout",label:"Logout",danger:!0,onClick:()=>{s(!1),e()}})]})]}),(0,r.jsx)(d.default,{isOpen:l,onClose:()=>n(!1)}),(0,r.jsx)(c.A,{isOpen:h,onClose:()=>f(!1)}),(0,r.jsx)(m.default,{hideTrigger:!0,isOpen:b,onClose:()=>g(!1)})]})}u.propTypes={icon:n().string.isRequired,label:n().string.isRequired,onClick:n().func.isRequired,trailing:n().node,danger:n().bool},p.propTypes={onLogout:n().func.isRequired}},82455:(e,t,s)=>{s.d(t,{default:()=>l});var r=s(73365),a=s(87706);function l({src:e,alt:t="Avatar",name:s,size:n="md",className:i}){let o={xs:"size-6 text-xs",sm:"size-8 text-sm",md:"size-10 text-base",lg:"size-12 text-lg",xl:"size-16 text-xl"};return e?(0,r.jsx)("div",{className:(0,a.cn)("rounded-full bg-cover bg-center bg-no-repeat","ring-2 ring-white dark:ring-surface-dark shadow-sm",o[n],i),style:{backgroundImage:`url(${e})`},role:"img","aria-label":t}):(0,r.jsx)("div",{className:(0,a.cn)("rounded-full flex items-center justify-center font-semibold text-white","ring-2 ring-white dark:ring-surface-dark shadow-sm",o[n],(e=>{if(!e)return"bg-primary";let t=["bg-red-500","bg-orange-500","bg-amber-500","bg-yellow-500","bg-lime-500","bg-green-500","bg-emerald-500","bg-teal-500","bg-cyan-500","bg-sky-500","bg-blue-500","bg-indigo-500","bg-violet-500","bg-purple-500","bg-fuchsia-500","bg-pink-500","bg-rose-500"],s=e.charCodeAt(0)%t.length;return t[s]})(s),i),role:"img","aria-label":t,children:(e=>{if(!e)return"?";let t=e.split(" ");return t.length>=2?`${t[0][0]}${t[1][0]}`.toUpperCase():e.substring(0,2).toUpperCase()})(s)})}},84675:(e,t,s)=>{s.d(t,{default:()=>n});var r=s(73365),a=s(89036),l=s(87706);function n({className:e,variant:t="default"}){let{isDark:s,toggleTheme:i}=(0,a.D)(),o={default:(0,l.cn)("flex items-center justify-center size-10 rounded-full","text-text-muted hover:text-text-main","hover:bg-surface-2 transition-colors"),card:(0,l.cn)("flex items-center justify-center size-11 rounded-full","bg-surface/60 hover:bg-surface","border border-border","backdrop-blur-md shadow-sm hover:shadow-[var(--shadow-warm)]","text-text-muted hover:text-brand-500","transition-all group")};return(0,r.jsx)("button",{onClick:i,className:(0,l.cn)(o[t],e),"aria-label":`Switch to ${s?"light":"dark"} mode`,title:`Switch to ${s?"light":"dark"} mode`,children:(0,r.jsx)("span",{className:(0,l.cn)("material-symbols-outlined text-[22px]","card"===t&&"transition-transform duration-300 group-hover:rotate-12"),children:s?"light_mode":"dark_mode"})})}},84907:(e,t,s)=>{s.d(t,{C:()=>r});let r=(0,s(2074).v)(e=>({query:"",placeholder:"",visible:!1,setQuery:t=>e({query:t}),register:(t="Search...")=>e({visible:!0,placeholder:t,query:""}),unregister:()=>e({visible:!1,placeholder:"",query:""})}))},87706:(e,t,s)=>{s.d(t,{cn:()=>r});function r(...e){return e.filter(Boolean).join(" ").replace(/\s+/g," ").trim()}},89036:(e,t,s)=>{s.d(t,{D:()=>o});var r=s(1521),a=s(83789);function l(e){let t=window.matchMedia("(prefers-color-scheme: dark)");return t.addEventListener("change",e),()=>t.removeEventListener("change",e)}function n(){return window.matchMedia("(prefers-color-scheme: dark)").matches}function i(){return!1}function o(){let{theme:e,setTheme:t,toggleTheme:s,initTheme:o}=(0,a.A)(),d=(0,r.useSyncExternalStore)(l,n,i);(0,r.useEffect)(()=>{o()},[o]),(0,r.useEffect)(()=>{if("system"!==e)return;let t=window.matchMedia("(prefers-color-scheme: dark)"),s=()=>o();return t.addEventListener("change",s),()=>t.removeEventListener("change",s)},[e,o]);let c="dark"===e||"system"===e&&d;return{theme:e,setTheme:t,toggleTheme:s,isDark:c}}},90163:(e,t,s)=>{s.d(t,{default:()=>x});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(66911),o=s(53038),d=s(38230),c=s(35045),m=s(82495);function x({isOpen:e,connection:t,proxyPools:s,onSave:l,onClose:n}){let[u,p]=(0,a.useState)({name:"",priority:1,apiKey:""}),[h,f]=(0,a.useState)({azureEndpoint:"",apiVersion:"2024-10-01-preview",deployment:"",organization:""}),[b,g]=(0,a.useState)({accountId:""}),[j,v]=(0,a.useState)(!1),[y,N]=(0,a.useState)(null),[w,k]=(0,a.useState)(!1),[C,S]=(0,a.useState)(null),[T,$]=(0,a.useState)(!1);(0,a.useEffect)(()=>{t&&(p({name:t.name||"",priority:t.priority||1,apiKey:""}),"azure"===t.provider&&t.providerSpecificData&&f({azureEndpoint:t.providerSpecificData.azureEndpoint||"",apiVersion:t.providerSpecificData.apiVersion||"2024-10-01-preview",deployment:t.providerSpecificData.deployment||"",organization:t.providerSpecificData.organization||""}),"cloudflare-ai"===t.provider&&t.providerSpecificData&&g({accountId:t.providerSpecificData.accountId||""}),N(null),S(null))},[t]);let R=t?.authType==="oauth",I=t?.provider==="azure",P=t?.provider==="cloudflare-ai",E=!!t&&((0,m.mq)(t.provider)||(0,m.gb)(t.provider)),O=async()=>{if(t?.provider){v(!0),N(null);try{let e=await fetch(`/api/providers/${t.id}/test`,{method:"POST"}),s=await e.json();N(s.valid?"success":"failed")}catch{N("failed")}finally{v(!1)}}},M=async()=>{if(t?.provider&&u.apiKey){k(!0),S(null);try{let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.provider,apiKey:u.apiKey,...I?{providerSpecificData:h}:{},...P?{providerSpecificData:b}:{}})}),s=await e.json();S(s.valid?"success":"failed")}catch{S("failed")}finally{k(!1)}}},_=async()=>{if(t){$(!0);try{let e={name:u.name,priority:u.priority};if(!R&&u.apiKey){e.apiKey=u.apiKey;let s="success"===C;if(!s)try{k(!0),S(null);let e=await fetch("/api/providers/validate",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({provider:t.provider,apiKey:u.apiKey,...I?{providerSpecificData:h}:{},...P?{providerSpecificData:b}:{}})});s=!!(await e.json()).valid,S(s?"success":"failed")}catch{S("failed")}finally{k(!1)}s&&(e.testStatus="active",e.lastError=null,e.lastErrorAt=null)}I&&(e.providerSpecificData={azureEndpoint:h.azureEndpoint,apiVersion:h.apiVersion,deployment:h.deployment,organization:h.organization}),P&&(e.providerSpecificData={accountId:b.accountId}),await l(e)}finally{$(!1)}}};return t?(0,r.jsx)(i.default,{isOpen:e,title:"Edit Connection",onClose:n,children:(0,r.jsxs)("div",{className:"flex flex-col gap-4",children:[(0,r.jsx)(o.default,{label:"Name",value:u.name,onChange:e=>p({...u,name:e.target.value}),placeholder:R?"Account name":"Production Key"}),R&&t.email&&(0,r.jsxs)("div",{className:"bg-sidebar/50 p-3 rounded-lg",children:[(0,r.jsx)("p",{className:"text-sm text-text-muted mb-1",children:"Email"}),(0,r.jsx)("p",{className:"font-medium",children:t.email})]}),(0,r.jsx)(o.default,{label:"Priority",type:"number",value:u.priority,onChange:e=>p({...u,priority:Number.parseInt(e.target.value,10)||1})}),!R&&(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(o.default,{label:"API Key",type:"password",value:u.apiKey,onChange:e=>p({...u,apiKey:e.target.value}),placeholder:"Enter new API key",hint:"Leave blank to keep the current API key.",className:"flex-1"}),(0,r.jsx)("div",{className:"pt-6",children:(0,r.jsx)(d.default,{onClick:M,disabled:!u.apiKey||w||T,variant:"secondary",children:w?"Checking...":"Check"})})]}),C&&(0,r.jsx)(c.default,{variant:"success"===C?"success":"error",children:"success"===C?"Valid":"Invalid"})]}),I&&(0,r.jsxs)("div",{className:"bg-sidebar/50 p-4 rounded-lg border border-accent/20",children:[(0,r.jsx)("h3",{className:"font-semibold mb-3 text-sm",children:"Azure OpenAI Configuration"}),(0,r.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,r.jsx)(o.default,{label:"Azure Endpoint",value:h.azureEndpoint,onChange:e=>f({...h,azureEndpoint:e.target.value}),placeholder:"https://your-resource.openai.azure.com",hint:"Your Azure OpenAI resource endpoint URL"}),(0,r.jsx)(o.default,{label:"Deployment Name",value:h.deployment,onChange:e=>f({...h,deployment:e.target.value}),placeholder:"gpt-4",hint:"The deployment name in your Azure resource"}),(0,r.jsx)(o.default,{label:"API Version",value:h.apiVersion,onChange:e=>f({...h,apiVersion:e.target.value}),placeholder:"2024-10-01-preview",hint:"Azure OpenAI API version to use"}),(0,r.jsx)(o.default,{label:"Organization",value:h.organization,onChange:e=>f({...h,organization:e.target.value}),placeholder:"Organization ID",hint:"Required for billing"})]})]}),!E&&!I&&!P&&(0,r.jsxs)("div",{className:"flex items-center gap-3",children:[(0,r.jsx)(d.default,{onClick:O,variant:"secondary",disabled:j,children:j?"Testing...":"Test Connection"}),y&&(0,r.jsx)(c.default,{variant:"success"===y?"success":"error",children:"success"===y?"Valid":"Failed"})]}),(0,r.jsxs)("div",{className:"flex gap-2",children:[(0,r.jsx)(d.default,{onClick:_,fullWidth:!0,disabled:T,children:T?"Saving...":"Save"}),(0,r.jsx)(d.default,{onClick:n,variant:"ghost",fullWidth:!0,children:"Cancel"})]})]})}):null}x.propTypes={isOpen:n().bool.isRequired,connection:n().shape({id:n().string,name:n().string,email:n().string,priority:n().number,authType:n().string,provider:n().string,providerSpecificData:n().object}),proxyPools:n().arrayOf(n().shape({id:n().string,name:n().string})),onSave:n().func.isRequired,onClose:n().func.isRequired}},91494:(e,t,s)=>{s.d(t,{CardSkeleton:()=>o,PageLoading:()=>n,Skeleton:()=>i,Spinner:()=>l,default:()=>d});var r=s(73365),a=s(87706);function l({size:e="md",className:t}){return(0,r.jsx)("span",{className:(0,a.cn)("material-symbols-outlined animate-spin text-brand-500",{sm:"size-4",md:"size-6",lg:"size-8",xl:"size-12"}[e],t),children:"progress_activity"})}function n({message:e="Loading..."}){return(0,r.jsxs)("div",{className:"fixed inset-0 z-50 flex flex-col items-center justify-center bg-bg",children:[(0,r.jsx)(l,{size:"xl"}),(0,r.jsx)("p",{className:"mt-4 text-text-muted",children:e})]})}function i({className:e,...t}){return(0,r.jsx)("div",{className:(0,a.cn)("animate-pulse rounded-[10px] bg-surface-2",e),...t})}function o(){return(0,r.jsxs)("div",{className:"p-6 rounded-[14px] border border-border-subtle bg-surface shadow-[var(--shadow-soft)]",children:[(0,r.jsxs)("div",{className:"flex items-center justify-between mb-4",children:[(0,r.jsx)(i,{className:"h-4 w-24"}),(0,r.jsx)(i,{className:"size-10 rounded-[10px]"})]}),(0,r.jsx)(i,{className:"h-8 w-16 mb-2"}),(0,r.jsx)(i,{className:"h-3 w-20"})]})}function d({type:e="spinner",...t}){switch(e){case"page":return(0,r.jsx)(n,{...t});case"skeleton":return(0,r.jsx)(i,{...t});case"card":return(0,r.jsx)(o,{...t});default:return(0,r.jsx)(l,{...t})}}},96459:(e,t,s)=>{s.d(t,{C:()=>a});var r=s(1521);function a(e=2e3){let[t,s]=(0,r.useState)(null),l=(0,r.useRef)(null);return{copied:t,copy:(0,r.useCallback)((t,r="default")=>{(async()=>{if(navigator?.clipboard?.writeText)await navigator.clipboard.writeText(t);else{let e=document.createElement("textarea");e.value=t,e.style.position="fixed",e.style.opacity="0",document.body.appendChild(e),e.select(),document.execCommand("copy"),document.body.removeChild(e)}})(),s(r),l.current&&clearTimeout(l.current),l.current=setTimeout(()=>{s(null)},e)},[e])}}},99775:(e,t,s)=>{s.d(t,{default:()=>m});var r=s(73365),a=s(1521),l=s(86447),n=s.n(l),i=s(292),o=s(37066),d=s(35045);let c="__none__";function m({providerId:e}){let[t,s]=(0,a.useState)([]),[l,n]=(0,a.useState)(c),[x,u]=(0,a.useState)(!1),[p,h]=(0,a.useState)(!1);(0,a.useEffect)(()=>{let t=!1;return Promise.all([fetch("/api/proxy-pools?isActive=true",{cache:"no-store"}).then(e=>e.ok?e.json():{proxyPools:[]}),fetch("/api/settings",{cache:"no-store"}).then(e=>e.ok?e.json():{})]).then(([r,a])=>{t||(s(r.proxyPools||[]),n(((a.providerStrategies||{})[e]||{}).proxyPoolId||c))}).catch(()=>{}),()=>{t=!0}},[e]);let f=async t=>{n(t),u(!0);try{let s=await fetch("/api/settings",{cache:"no-store"}),r=(s.ok?await s.json():{}).providerStrategies||{},a={...r[e]||{}};t===c?delete a.proxyPoolId:a.proxyPoolId=t;let l={...r};0===Object.keys(a).length?delete l[e]:l[e]=a,await fetch("/api/settings",{method:"PATCH",headers:{"Content-Type":"application/json"},body:JSON.stringify({providerStrategies:l})}),h(!0),setTimeout(()=>h(!1),1500)}catch(e){console.log("Save proxyPoolId error:",e)}finally{u(!1)}};return(0,r.jsxs)(i.default,{children:[(0,r.jsxs)("div",{className:"flex items-center gap-3 mb-4",children:[(0,r.jsx)("div",{className:"inline-flex items-center justify-center w-10 h-10 rounded-full bg-green-500/10 text-green-500",children:(0,r.jsx)("span",{className:"material-symbols-outlined text-[20px]",children:"lock_open"})}),(0,r.jsxs)("div",{className:"flex-1",children:[(0,r.jsx)("p",{className:"text-sm font-medium",children:"No authentication required"}),(0,r.jsx)("p",{className:"text-xs text-text-muted",children:"This provider is ready to use. Optionally route requests through a proxy pool to bypass IP-based limits."})]}),p&&(0,r.jsx)(d.default,{variant:"success",size:"sm",children:"Saved"})]}),(0,r.jsx)(o.default,{label:"Proxy Pool",value:l,onChange:e=>f(e.target.value),disabled:x,options:[{value:c,label:"None (direct)"},...t.map(e=>({value:e.id,label:e.name}))]})]})}m.propTypes={providerId:n().string.isRequired}}}]); \ No newline at end of file diff --git a/cli/app/.next/static/chunks/505-87d01d8c08b1bf87.js b/cli/app/.next/static/chunks/505-87d01d8c08b1bf87.js new file mode 100644 index 00000000000..b000d5fd530 --- /dev/null +++ b/cli/app/.next/static/chunks/505-87d01d8c08b1bf87.js @@ -0,0 +1 @@ +"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[505],{24021:(e,a,i)=>{i.d(a,{jY:()=>l,pp:()=>p});var t=i(48605);let n={alloy:{id:"alloy",name:"Alloy"},ash:{id:"ash",name:"Ash"},ballad:{id:"ballad",name:"Ballad"},cedar:{id:"cedar",name:"Cedar"},coral:{id:"coral",name:"Coral"},echo:{id:"echo",name:"Echo"},fable:{id:"fable",name:"Fable"},marin:{id:"marin",name:"Marin"},nova:{id:"nova",name:"Nova"},onyx:{id:"onyx",name:"Onyx"},sage:{id:"sage",name:"Sage"},shimmer:{id:"shimmer",name:"Shimmer"},verse:{id:"verse",name:"Verse"}},o=(...e)=>e.map(e=>({...n[e],type:"tts"})),s=o("alloy","ash","coral","echo","fable","nova","onyx","sage","shimmer"),r=o("alloy","ash","ballad","cedar","coral","echo","fable","marin","nova","onyx","sage","shimmer","verse"),m=["Zephyr","Puck","Charon","Kore","Fenrir","Leda","Orus","Aoede","Callirrhoe","Autonoe","Enceladus","Iapetus","Umbriel","Algieba","Despina","Erinome","Algenib","Rasalgethi","Laomedeia","Achernar","Alnilam","Schedar","Gacrux","Pulcherrima","Achird","Zubenelgenubi","Vindemiatrix","Sadachbia","Sadaltager","Sulafat"].map(e=>({id:e,name:e,type:"tts"})),d={openai:{models:[{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"tts-1",name:"TTS-1",type:"tts"}],voices:{"gpt-4o-mini-tts":r,"tts-1":s,"tts-1-hd":s},allVoices:r},openrouter:{models:[{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"}],voices:{"openai/gpt-4o-mini-tts":r,"openai/tts-1":s,"openai/tts-1-hd":s},allVoices:r},elevenlabs:{models:[{id:"eleven_flash_v2_5",name:"Flash v2.5 (Fastest)",type:"tts"},{id:"eleven_turbo_v2_5",name:"Turbo v2.5 (Fast)",type:"tts"},{id:"eleven_multilingual_v2",name:"Multilingual v2 (Quality)",type:"tts"},{id:"eleven_monolingual_v1",name:"Monolingual v1 (English)",type:"tts"}]},"edge-tts":{defaults:[{id:"en-US-AriaNeural",name:"Aria (en-US)",type:"tts"},{id:"en-US-GuyNeural",name:"Guy (en-US)",type:"tts"},{id:"en-GB-SoniaNeural",name:"Sonia (en-GB)",type:"tts"},{id:"vi-VN-HoaiMyNeural",name:"Hoai My (vi-VN)",type:"tts"},{id:"vi-VN-NamMinhNeural",name:"Nam Minh (vi-VN)",type:"tts"},{id:"zh-CN-XiaoxiaoNeural",name:"Xiaoxiao (zh-CN)",type:"tts"},{id:"zh-CN-YunxiNeural",name:"Yunxi (zh-CN)",type:"tts"},{id:"fr-FR-DeniseNeural",name:"Denise (fr-FR)",type:"tts"},{id:"de-DE-KatjaNeural",name:"Katja (de-DE)",type:"tts"},{id:"ja-JP-NanamiNeural",name:"Nanami (ja-JP)",type:"tts"},{id:"ko-KR-SunHiNeural",name:"SunHi (ko-KR)",type:"tts"}]},"local-device":{defaults:[{id:"default",name:"System Default Voice",type:"tts"}]},"google-tts":{defaults:t.I},gemini:{models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS",type:"tts"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS",type:"tts"}],voices:{"gemini-2.5-flash-preview-tts":m,"gemini-2.5-pro-preview-tts":m},allVoices:m}};function l(e,a){let i=d[e];return i?.voices&&(i.voices[a]||i.allVoices)||null}function p(){let e={};for(let[a,i]of Object.entries(d))i.models&&(e[`${a}-tts-models`]=i.models),i.allVoices&&(e[`${a}-tts-voices`]=i.allVoices),i.defaults&&(e[a]=i.defaults);return e["openai-tts-voices"]=d.openai.allVoices,e["openrouter-tts-voices"]=d.openrouter.allVoices,e}},43202:(e,a,i)=>{i.d(a,{Q2:()=>t.Q2,fg:()=>t.fg,vQ:()=>n,MA:()=>t.MA,UY:()=>m,Nu:()=>o,zN:()=>t.zN,B2:()=>r,h0:()=>s});var t=i(82495);i(69633);let n={name:"9Router proxy",description:"AI Infrastructure Management",version:"0.4.20"},o={changelogUrl:"https://raw.githubusercontent.com/decolua/9router/refs/heads/master/CHANGELOG.md"},s={npmPackageName:"9router",installCmd:"npm i -g 9router",exitDelayMs:500,statusPort:20129,statusPollIntervalMs:1e3,statusLogTailLines:8,installRetries:3,installRetryDelayMs:5e3,lingerAfterDoneMs:3e4,waitForExitMinMs:3e3,waitForExitMaxMs:15e3,waitForExitCheckMs:500,appPort:20128},r={storageKey:"theme",defaultTheme:"system"},m={maxLines:200,pollIntervalMs:1e3}},48605:(e,a,i)=>{i.d(a,{I:()=>t});let t=[{id:"af",name:"Afrikaans",type:"tts"},{id:"ar",name:"Arabic",type:"tts"},{id:"bg",name:"Bulgarian",type:"tts"},{id:"bn",name:"Bengali",type:"tts"},{id:"bs",name:"Bosnian",type:"tts"},{id:"ca",name:"Catalan",type:"tts"},{id:"cs",name:"Czech",type:"tts"},{id:"cy",name:"Welsh",type:"tts"},{id:"da",name:"Danish",type:"tts"},{id:"de",name:"German",type:"tts"},{id:"el",name:"Greek",type:"tts"},{id:"en",name:"English",type:"tts"},{id:"eo",name:"Esperanto",type:"tts"},{id:"es",name:"Spanish",type:"tts"},{id:"et",name:"Estonian",type:"tts"},{id:"fi",name:"Finnish",type:"tts"},{id:"fr",name:"French",type:"tts"},{id:"gu",name:"Gujarati",type:"tts"},{id:"hi",name:"Hindi",type:"tts"},{id:"hr",name:"Croatian",type:"tts"},{id:"hu",name:"Hungarian",type:"tts"},{id:"hy",name:"Armenian",type:"tts"},{id:"id",name:"Indonesian",type:"tts"},{id:"is",name:"Icelandic",type:"tts"},{id:"it",name:"Italian",type:"tts"},{id:"ja",name:"Japanese",type:"tts"},{id:"jw",name:"Javanese",type:"tts"},{id:"km",name:"Khmer",type:"tts"},{id:"kn",name:"Kannada",type:"tts"},{id:"ko",name:"Korean",type:"tts"},{id:"la",name:"Latin",type:"tts"},{id:"lv",name:"Latvian",type:"tts"},{id:"mk",name:"Macedonian",type:"tts"},{id:"ml",name:"Malayalam",type:"tts"},{id:"mr",name:"Marathi",type:"tts"},{id:"my",name:"Myanmar (Burmese)",type:"tts"},{id:"ne",name:"Nepali",type:"tts"},{id:"nl",name:"Dutch",type:"tts"},{id:"no",name:"Norwegian",type:"tts"},{id:"pl",name:"Polish",type:"tts"},{id:"pt",name:"Portuguese",type:"tts"},{id:"ro",name:"Romanian",type:"tts"},{id:"ru",name:"Russian",type:"tts"},{id:"si",name:"Sinhala",type:"tts"},{id:"sk",name:"Slovak",type:"tts"},{id:"sq",name:"Albanian",type:"tts"},{id:"sr",name:"Serbian",type:"tts"},{id:"su",name:"Sundanese",type:"tts"},{id:"sv",name:"Swedish",type:"tts"},{id:"sw",name:"Swahili",type:"tts"},{id:"ta",name:"Tamil",type:"tts"},{id:"te",name:"Telugu",type:"tts"},{id:"th",name:"Thai",type:"tts"},{id:"tl",name:"Filipino",type:"tts"},{id:"tr",name:"Turkish",type:"tts"},{id:"uk",name:"Ukrainian",type:"tts"},{id:"ur",name:"Urdu",type:"tts"},{id:"vi",name:"Vietnamese",type:"tts"},{id:"zh-CN",name:"Chinese (Simplified)",type:"tts"},{id:"zh-TW",name:"Chinese (Traditional)",type:"tts"}]},55348:(e,a,i)=>{i.d(a,{CL:()=>o,QC:()=>s,Xn:()=>n,YZ:()=>t});let t=["en","vi","zh-CN","zh-TW","ja","pt-BR","pt-PT","ko","es","de","fr","he","ar","ru","pl","cs","nl","tr","uk","tl","id","th","hi","bn","ur","ro","sv","it","el","hu","fi","da","no"],n="en",o="locale";function s(e){return"zh"===e||"zh-CN"===e?"zh-CN":"en"===e?"en":"vi"===e?"vi":"zh-TW"===e?"zh-TW":"ja"===e?"ja":"pt-BR"===e?"pt-BR":"pt-PT"===e?"pt-PT":"ko"===e?"ko":"es"===e?"es":"de"===e?"de":"fr"===e?"fr":"he"===e?"he":"ar"===e?"ar":"ru"===e?"ru":"pl"===e?"pl":"cs"===e?"cs":"nl"===e?"nl":"tr"===e?"tr":"uk"===e?"uk":"tl"===e?"tl":"id"===e?"id":"th"===e?"th":"hi"===e?"hi":"bn"===e?"bn":"ur"===e?"ur":"ro"===e?"ro":"sv"===e?"sv":"it"===e?"it":"el"===e?"el":"hu"===e?"hu":"fi"===e?"fi":"da"===e?"da":"no"===e?"no":n}},69633:(e,a,i)=>{i.d(a,{KC:()=>t.KC,Xg:()=>t.Xg});var t=i(94718);Object.entries(i(82495).Q2).filter(([,e])=>e.passthroughModels).map(([e])=>e),Object.entries(t.vq).flatMap(([e,a])=>a.map(a=>({provider:e,model:a.id,name:a.name})))},82495:(e,a,i)=>{i.d(a,{DI:()=>p,IS:()=>t,JH:()=>l,MA:()=>b,Q2:()=>u,br:()=>m,fg:()=>r,gC:()=>g,gb:()=>h,jO:()=>w,mq:()=>c,nJ:()=>n,o5:()=>v,rj:()=>d,s9:()=>o,wG:()=>f,wb:()=>x,zN:()=>s,zt:()=>y});let t={kiro:{id:"kiro",alias:"kr",name:"Kiro AI",icon:"psychology_alt",color:"#FF6B35",website:"https://kiro.dev",notice:{signupUrl:"https://kiro.dev"}},qwen:{id:"qwen",alias:"qw",name:"Qwen Code",icon:"psychology",color:"#10B981",mediaPriority:999,deprecated:!0,deprecationNotice:"Qwen OAuth free tier was discontinued by Alibaba on 2026-04-15. New connections will not work.",website:"https://chat.qwen.ai",notice:{signupUrl:"https://chat.qwen.ai"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"http://localhost:8000/v1/audio/speech",authType:"none",authHeader:"none",format:"openai",models:[{id:"qwen3-tts",name:"Qwen3 TTS"}]}},"gemini-cli":{id:"gemini-cli",alias:"gc",name:"Gemini CLI",icon:"terminal",color:"#4285F4",deprecated:!0,deprecationNotice:"Gemini CLI is designed exclusively for Gemini CLI. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://github.com/google-gemini/gemini-cli",notice:{signupUrl:"https://github.com/google-gemini/gemini-cli"}},iflow:{id:"iflow",alias:"if",name:"iFlow AI",icon:"water_drop",color:"#6366F1",website:"https://iflow.cn",notice:{signupUrl:"https://iflow.cn"}},opencode:{id:"opencode",alias:"oc",name:"OpenCode Free",icon:"terminal",color:"#E87040",textIcon:"OC",noAuth:!0,passthroughModels:!0,modelsFetcher:{url:"https://opencode.ai/zen/v1/models",type:"opencode-free"}}},n={openrouter:{id:"openrouter",alias:"openrouter",name:"OpenRouter",icon:"router",color:"#F97316",textIcon:"OR",website:"https://openrouter.ai",notice:{text:"Free tier: 27+ free models, no credit card needed, 200 req/day. After $10 credit: 1,000 req/day.",apiKeyUrl:"https://openrouter.ai/settings/keys"},modelsFetcher:{url:"https://openrouter.ai/api/v1/models",type:"openrouter-free"},passthroughModels:!0,serviceKinds:["llm","embedding","tts","imageToText"],embeddingConfig:{baseUrl:"https://openrouter.ai/api/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"openai/text-embedding-3-small",name:"Text Embedding 3 Small (OpenRouter)",dimensions:1536},{id:"openai/text-embedding-3-large",name:"Text Embedding 3 Large (OpenRouter)",dimensions:3072},{id:"openai/text-embedding-ada-002",name:"Text Embedding Ada 002 (OpenRouter)",dimensions:1536}]}},nvidia:{id:"nvidia",alias:"nvidia",name:"NVIDIA NIM",icon:"developer_board",color:"#76B900",textIcon:"NV",website:"https://developer.nvidia.com/nim",notice:{text:"Free access for NVIDIA Developer Program members (prototyping & testing).",apiKeyUrl:"https://build.nvidia.com/settings/api-keys"},serviceKinds:["llm","tts","embedding"],ttsConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"nvidia-tts",models:[{id:"fastpitch",name:"FastPitch"},{id:"tacotron2",name:"Tacotron2"}]},embeddingConfig:{baseUrl:"https://integrate.api.nvidia.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",dimensions:1024}]}},ollama:{id:"ollama",alias:"ollama",name:"Ollama Cloud",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com",notice:{text:"Free tier: light usage, 1 cloud model at a time (limits reset every 5h & 7d). Pro $20/mo \xb7 Max $100/mo.",apiKeyUrl:"https://ollama.com/settings/keys"}},vertex:{id:"vertex",alias:"vx",name:"Vertex AI",icon:"cloud",color:"#4285F4",textIcon:"VX",website:"https://cloud.google.com/vertex-ai",notice:{text:"New Google Cloud accounts get $300 free credits. Requires GCP project + Service Account with Vertex AI API enabled.",apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},gemini:{id:"gemini",alias:"gemini",name:"Gemini",icon:"diamond",color:"#4285F4",textIcon:"GE",mediaPriority:1,website:"https://ai.google.dev",notice:{apiKeyUrl:"https://aistudio.google.com/app/apikey"},serviceKinds:["llm","embedding","image","imageToText","webSearch","tts","stt"],sttConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-stt",models:[{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"}]},searchViaChat:{defaultModel:"gemini-2.5-flash",pricingUrl:"https://ai.google.dev/pricing",freeTier:"Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio."},embeddingConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",models:[{id:"text-embedding-004",name:"Text Embedding 004",dimensions:768},{id:"embedding-001",name:"Embedding 001",dimensions:768}]},ttsConfig:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",authType:"apikey",authHeader:"key",format:"gemini-tts",models:[{id:"gemini-2.5-flash-preview-tts",name:"Gemini 2.5 Flash TTS"},{id:"gemini-2.5-pro-preview-tts",name:"Gemini 2.5 Pro TTS"}]}},"cloudflare-ai":{id:"cloudflare-ai",alias:"cf",name:"Cloudflare",icon:"cloud",color:"#F38020",textIcon:"CF",website:"https://developers.cloudflare.com/workers-ai/",notice:{text:"Workers AI free tier. Requires a Cloudflare API token and Account ID.",apiKeyUrl:"https://dash.cloudflare.com/profile/api-tokens"},serviceKinds:["llm"],hasProviderSpecificData:!0},byteplus:{id:"byteplus",alias:"bpm",name:"BytePlus ModelArk",icon:"cloud",color:"#2563EB",textIcon:"BP",website:"https://console.byteplus.com/ark",notice:{text:"Free credits for new accounts. Access to Seed 2.0, Kimi K2 Thinking, GLM 4.7, GPT-OSS-120B models.",apiKeyUrl:"https://console.byteplus.com/ark/region:ark+ap-southeast-1/apiKey"},serviceKinds:["llm"]}},o={extended:{options:["auto","on","off"],defaultMode:"auto",defaultBudgetTokens:1e4},effort:{options:["auto","none","low","medium","high"],defaultMode:"auto"}},s={claude:{id:"claude",alias:"cc",name:"Claude Code",icon:"smart_toy",color:"#D97757",website:"https://claude.ai",notice:{signupUrl:"https://claude.ai"}},antigravity:{id:"antigravity",alias:"ag",name:"Antigravity",icon:"rocket_launch",color:"#F59E0B",deprecated:!0,deprecationNotice:"AG is designed exclusively for Antigravity IDE. Using it with other tools (OpenClaw, Claude, Codex...) may result in account restrictions or bans.",website:"https://antigravity.google",notice:{signupUrl:"https://antigravity.google"}},codex:{id:"codex",alias:"cx",name:"OpenAI Codex",icon:"code",color:"#3B82F6",thinkingConfig:o.effort,serviceKinds:["llm","image"],kindNotice:{image:"Requires a ChatGPT Plus (or higher) account. Free accounts are not supported for image generation."},website:"https://chatgpt.com/codex",notice:{signupUrl:"https://chatgpt.com/codex"}},github:{id:"github",alias:"gh",name:"GitHub Copilot",icon:"code",color:"#333333",serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://models.github.ai/inference/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",dimensions:3072}]},website:"https://github.com/features/copilot",notice:{signupUrl:"https://github.com/features/copilot"}},cursor:{id:"cursor",alias:"cu",name:"Cursor IDE",icon:"edit_note",color:"#00D4AA",website:"https://cursor.com",notice:{signupUrl:"https://cursor.com"}},kilocode:{id:"kilocode",alias:"kc",name:"Kilo Code",icon:"code",color:"#FF6B35",textIcon:"KC",website:"https://kilocode.ai",notice:{signupUrl:"https://kilocode.ai"}},cline:{id:"cline",alias:"cl",name:"Cline",icon:"smart_toy",color:"#5B9BD5",textIcon:"CL",website:"https://cline.bot",notice:{signupUrl:"https://cline.bot"}}},r={glm:{id:"glm",alias:"glm",name:"GLM Coding",icon:"code",color:"#2563EB",textIcon:"GL",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},"glm-cn":{id:"glm-cn",alias:"glm-cn",name:"GLM (China)",icon:"code",color:"#DC2626",textIcon:"GC",website:"https://open.bigmodel.cn",notice:{apiKeyUrl:"https://open.bigmodel.cn/usercenter/apikeys"}},kimi:{id:"kimi",alias:"kimi",name:"Kimi",icon:"psychology",color:"#1E3A8A",textIcon:"KM",website:"https://kimi.moonshot.cn",notice:{apiKeyUrl:"https://platform.moonshot.ai/console/api-keys"},serviceKinds:["llm","webSearch"],searchViaChat:{defaultModel:"kimi-k2.5",pricingUrl:"https://platform.moonshot.ai/docs/pricing/chat"}},minimax:{id:"minimax",alias:"minimax",name:"Minimax Coding",icon:"memory",color:"#7C3AED",textIcon:"MM",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"},serviceKinds:["llm","image","imageToText","webSearch"],searchViaChat:{defaultModel:"MiniMax-M2.7",pricingUrl:"https://www.minimaxi.com/document/price"}},"minimax-cn":{id:"minimax-cn",alias:"minimax-cn",name:"Minimax (China)",icon:"memory",color:"#DC2626",textIcon:"MC",website:"https://www.minimaxi.com",notice:{apiKeyUrl:"https://platform.minimaxi.com/user-center/basic-information/interface-key"}},alicode:{id:"alicode",alias:"alicode",name:"Alibaba",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://bailian.console.aliyun.com",notice:{apiKeyUrl:"https://bailian.console.aliyun.com/?apiKey=1"}},"alicode-intl":{id:"alicode-intl",alias:"alicode-intl",name:"Alibaba Intl",icon:"cloud",color:"#FF6A00",textIcon:"ALi",website:"https://modelstudio.console.alibabacloud.com",notice:{apiKeyUrl:"https://modelstudio.console.alibabacloud.com/?apiKey=1"}},"xiaomi-mimo":{id:"xiaomi-mimo",alias:"mimo",name:"Xiaomi MiMo",icon:"smart_toy",color:"#FF6900",textIcon:"XM",website:"https://xiaomimimo.com",notice:{apiKeyUrl:"https://xiaomimimo.com"}},"volcengine-ark":{id:"volcengine-ark",alias:"ark",name:"Volcengine Ark",icon:"cloud",color:"#1677FF",textIcon:"ARK",website:"https://ark.cn-beijing.volces.com",notice:{apiKeyUrl:"https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey"}},openai:{id:"openai",alias:"openai",name:"OpenAI",icon:"auto_awesome",color:"#10A37F",textIcon:"OA",website:"https://platform.openai.com",notice:{apiKeyUrl:"https://platform.openai.com/api-keys"},serviceKinds:["llm","embedding","tts","stt","image","imageToText","webSearch"],thinkingConfig:o.effort,searchViaChat:{defaultModel:"gpt-4o-mini",pricingUrl:"https://openai.com/api/pricing"},ttsConfig:{baseUrl:"https://api.openai.com/v1/audio/speech",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"tts-1",name:"TTS-1"},{id:"tts-1-hd",name:"TTS-1 HD"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS"}]},sttConfig:{baseUrl:"https://api.openai.com/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-1",name:"Whisper 1"},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe"},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe"}]},embeddingConfig:{baseUrl:"https://api.openai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"text-embedding-3-small",name:"Text Embedding 3 Small",dimensions:1536},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",dimensions:3072},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",dimensions:1536}]}},anthropic:{id:"anthropic",alias:"anthropic",name:"Anthropic",icon:"smart_toy",color:"#D97757",textIcon:"AN",website:"https://console.anthropic.com",notice:{apiKeyUrl:"https://console.anthropic.com/settings/keys"},serviceKinds:["llm","imageToText"]},"opencode-go":{id:"opencode-go",alias:"ocg",name:"OpenCode Go",icon:"terminal",color:"#E87040",textIcon:"OC",website:"https://opencode.ai/auth",notice:{text:"OpenCode Go subscription: $5/mo (then $10/mo). Access to Kimi, GLM, Qwen, MiMo, MiniMax models.",apiKeyUrl:"https://opencode.ai/auth"}},azure:{id:"azure",alias:"azure",name:"Azure OpenAI",icon:"cloud",color:"#0078D4",textIcon:"AZ",website:"https://azure.microsoft.com/en-us/products/ai-services/openai-service",notice:{apiKeyUrl:"https://portal.azure.com/#view/Microsoft_Azure_ProjectOxford/CognitiveServicesHub/~/OpenAI"},hasProviderSpecificData:!0},deepseek:{id:"deepseek",alias:"ds",name:"DeepSeek",icon:"bolt",color:"#4D6BFE",textIcon:"DS",website:"https://deepseek.com",notice:{apiKeyUrl:"https://platform.deepseek.com/api_keys"}},commandcode:{id:"commandcode",alias:"cmc",name:"Command Code",icon:"smart_toy",color:"#000000",textIcon:"CC",website:"https://commandcode.ai",notice:{text:"Use your CommandCode CLI API key (starts with user_...) from ~/.commandcode/auth.json or commandcode.ai/studio.",apiKeyUrl:"https://commandcode.ai/studio"}},groq:{id:"groq",alias:"groq",name:"Groq",icon:"speed",color:"#F55036",textIcon:"GQ",website:"https://groq.com",notice:{apiKeyUrl:"https://console.groq.com/keys"},serviceKinds:["llm","imageToText","stt"],sttConfig:{baseUrl:"https://api.groq.com/openai/v1/audio/transcriptions",authType:"apikey",authHeader:"bearer",format:"openai",models:[{id:"whisper-large-v3",name:"Whisper Large v3"},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo"},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN"}]}},xai:{id:"xai",alias:"xai",name:"xAI (Grok)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"XA",website:"https://x.ai",notice:{apiKeyUrl:"https://console.x.ai"},serviceKinds:["llm","imageToText","webSearch"],searchViaChat:{defaultModel:"grok-4.20-reasoning",pricingUrl:"https://x.ai/api#pricing"}},mistral:{id:"mistral",alias:"mistral",name:"Mistral",icon:"air",color:"#FF7000",textIcon:"MI",website:"https://mistral.ai",notice:{apiKeyUrl:"https://console.mistral.ai/api-keys"},serviceKinds:["llm","imageToText","embedding"],embeddingConfig:{baseUrl:"https://api.mistral.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"mistral-embed",name:"Mistral Embed",dimensions:1024}]}},perplexity:{id:"perplexity",alias:"pplx",name:"Perplexity",icon:"search",color:"#20808D",textIcon:"PP",website:"https://www.perplexity.ai",notice:{apiKeyUrl:"https://www.perplexity.ai/settings/api"},serviceKinds:["llm","webSearch"],searchConfig:{baseUrl:"https://api.perplexity.ai/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},together:{id:"together",alias:"together",name:"Together AI",icon:"group_work",color:"#0F6FFF",textIcon:"TG",website:"https://www.together.ai",notice:{apiKeyUrl:"https://api.together.xyz/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.together.xyz/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",dimensions:1024},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",dimensions:768}]}},fireworks:{id:"fireworks",alias:"fireworks",name:"Fireworks AI",icon:"local_fire_department",color:"#7B2EF2",textIcon:"FW",website:"https://fireworks.ai",notice:{apiKeyUrl:"https://fireworks.ai/account/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.fireworks.ai/inference/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",dimensions:768}]}},cerebras:{id:"cerebras",alias:"cerebras",name:"Cerebras",icon:"memory",color:"#FF4F00",textIcon:"CB",website:"https://www.cerebras.ai",notice:{apiKeyUrl:"https://cloud.cerebras.ai/platform"}},cohere:{id:"cohere",alias:"cohere",name:"Cohere",icon:"hub",color:"#39594D",textIcon:"CO",website:"https://cohere.com",notice:{apiKeyUrl:"https://dashboard.cohere.com/api-keys"}},nebius:{id:"nebius",alias:"nebius",name:"Nebius AI",icon:"cloud",color:"#6C5CE7",textIcon:"NB",website:"https://nebius.com",notice:{apiKeyUrl:"https://studio.nebius.com/settings/api-keys"},serviceKinds:["llm","embedding"],embeddingConfig:{baseUrl:"https://api.tokenfactory.nebius.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",dimensions:4096}]}},siliconflow:{id:"siliconflow",alias:"siliconflow",name:"SiliconFlow",icon:"cloud_queue",color:"#5B6EF5",textIcon:"SF",website:"https://cloud.siliconflow.com",notice:{apiKeyUrl:"https://cloud.siliconflow.com/account/ak"}},hyperbolic:{id:"hyperbolic",alias:"hyp",name:"Hyperbolic",icon:"bolt",color:"#00D4FF",textIcon:"HY",website:"https://hyperbolic.xyz",notice:{apiKeyUrl:"https://app.hyperbolic.xyz/settings"},serviceKinds:["llm","tts"],ttsConfig:{baseUrl:"https://api.hyperbolic.xyz/v1/audio/generation",authType:"apikey",authHeader:"bearer",format:"hyperbolic",models:[{id:"melo-tts",name:"Melo TTS"}]}},deepgram:{id:"deepgram",alias:"dg",name:"Deepgram",icon:"mic",color:"#13EF93",textIcon:"DG",website:"https://deepgram.com",notice:{text:"$200 free credit on signup (no card required). Aura-1: $0.015/1k chars, Aura-2: $0.030/1k chars (Pay-As-You-Go).",apiKeyUrl:"https://console.deepgram.com/api-keys"},serviceKinds:["stt","imageToText","tts"],ttsConfig:{baseUrl:"https://api.deepgram.com/v1/speak",authType:"apikey",authHeader:"token",format:"deepgram",models:[]},sttConfig:{baseUrl:"https://api.deepgram.com/v1/listen",authType:"apikey",authHeader:"token",format:"deepgram",models:[{id:"nova-3",name:"Nova 3"},{id:"nova-2",name:"Nova 2"},{id:"whisper-large",name:"Whisper Large"}]}},assemblyai:{id:"assemblyai",alias:"aai",name:"AssemblyAI",icon:"record_voice_over",color:"#0062FF",textIcon:"AA",website:"https://assemblyai.com",notice:{apiKeyUrl:"https://www.assemblyai.com/app/api-keys"},serviceKinds:["stt"],sttConfig:{baseUrl:"https://api.assemblyai.com/v2/transcript",authType:"apikey",authHeader:"bearer",format:"assemblyai",async:!0,models:[{id:"universal-3-pro",name:"Universal 3 Pro"},{id:"universal-2",name:"Universal 2"}]}},nanobanana:{id:"nanobanana",alias:"nb",name:"NanoBanana API",icon:"extension",color:"#FFD700",textIcon:"\uD83C\uDF4C",website:"https://nanobananaapi.ai",notice:{text:"3rd-party proxy for Google Nano Banana (Gemini 2.5/3 Flash Image). For official, use Gemini provider.",apiKeyUrl:"https://nanobananaapi.ai/dashboard"},serviceKinds:["image"]},elevenlabs:{id:"elevenlabs",alias:"el",name:"ElevenLabs",icon:"record_voice_over",color:"#6C47FF",textIcon:"EL",website:"https://elevenlabs.io",notice:{apiKeyUrl:"https://elevenlabs.io/app/settings/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.elevenlabs.io/v1/text-to-speech",authType:"apikey",authHeader:"xi-api-key",format:"elevenlabs",models:[{id:"eleven_multilingual_v2",name:"Eleven Multilingual v2"},{id:"eleven_turbo_v2_5",name:"Eleven Turbo v2.5"}]}},cartesia:{id:"cartesia",alias:"cartesia",name:"Cartesia",icon:"spatial_audio",color:"#FF4F8B",textIcon:"CA",website:"https://cartesia.ai",notice:{apiKeyUrl:"https://play.cartesia.ai/keys"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.cartesia.ai/tts/bytes",authType:"apikey",authHeader:"x-api-key",format:"cartesia",models:[{id:"sonic-2",name:"Sonic 2"},{id:"sonic-3",name:"Sonic 3"}]}},playht:{id:"playht",alias:"playht",name:"PlayHT",icon:"play_circle",color:"#00B4D8",textIcon:"PH",website:"https://play.ht",notice:{apiKeyUrl:"https://play.ht/studio/api-access"},serviceKinds:["tts"],hidden:!0,ttsConfig:{baseUrl:"https://api.play.ht/api/v2/tts/stream",authType:"apikey",authHeader:"playht",format:"playht",models:[{id:"PlayDialog",name:"PlayDialog"},{id:"Play3.0-mini",name:"Play 3.0 Mini"}]}},"local-device":{id:"local-device",alias:"local-device",name:"Local Device",icon:"speaker",color:"#64748B",textIcon:"LD",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"local-device",authType:"none",authHeader:"none",format:"local-device",models:[]}},"google-tts":{id:"google-tts",alias:"google-tts",name:"Google TTS",icon:"record_voice_over",color:"#4285F4",textIcon:"GT",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"google-tts",authType:"none",authHeader:"none",format:"google-tts",models:[]}},"edge-tts":{id:"edge-tts",alias:"edge-tts",name:"Edge TTS",icon:"record_voice_over",color:"#0078D4",textIcon:"ET",mediaPriority:5,serviceKinds:["tts"],noAuth:!0,ttsConfig:{baseUrl:"edge-tts",authType:"none",authHeader:"none",format:"edge-tts",models:[]}},coqui:{id:"coqui",alias:"coqui",name:"Coqui TTS",icon:"record_voice_over",color:"#10B981",textIcon:"CQ",website:"https://github.com/coqui-ai/TTS",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5002/api/tts",authType:"none",authHeader:"none",format:"coqui",models:[{id:"tts_models/en/ljspeech/tacotron2-DDC",name:"Tacotron2 DDC (LJSpeech)"}]}},tortoise:{id:"tortoise",alias:"tortoise",name:"Tortoise TTS",icon:"record_voice_over",color:"#7C3AED",textIcon:"TT",website:"https://github.com/neonbjb/tortoise-tts",serviceKinds:["tts"],hidden:!0,noAuth:!0,ttsConfig:{baseUrl:"http://localhost:5000/api/tts",authType:"none",authHeader:"none",format:"tortoise",models:[{id:"tortoise-v2",name:"Tortoise v2"}]}},inworld:{id:"inworld",alias:"inworld",name:"Inworld TTS",icon:"record_voice_over",color:"#FF6B6B",textIcon:"IW",website:"https://inworld.ai",notice:{text:"Free tier: 40 minutes/month TTS. Paid: TTS-1.5 Mini $0.01/min ($15/1M chars), TTS-1.5 Max $0.025/min ($30/1M chars). 270+ voices, 15 languages.",apiKeyUrl:"https://platform.inworld.ai/api-keys"},serviceKinds:["tts"],ttsConfig:{baseUrl:"https://api.inworld.ai/tts/v1/voice",authType:"apikey",authHeader:"basic",format:"inworld",models:[{id:"inworld-tts-1.5-mini",name:"Inworld TTS 1.5 Mini ($0.01/min)"},{id:"inworld-tts-1.5-max",name:"Inworld TTS 1.5 Max ($0.025/min)"}]}},"voyage-ai":{id:"voyage-ai",alias:"voyage",name:"Voyage AI",icon:"data_array",color:"#0EA5E9",textIcon:"VG",website:"https://www.voyageai.com",notice:{apiKeyUrl:"https://dash.voyageai.com/api-keys"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.voyageai.com/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"voyage-3-large",name:"Voyage 3 Large",dimensions:1024},{id:"voyage-3.5",name:"Voyage 3.5",dimensions:1024},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",dimensions:1024},{id:"voyage-code-3",name:"Voyage Code 3",dimensions:1024},{id:"voyage-finance-2",name:"Voyage Finance 2",dimensions:1024},{id:"voyage-law-2",name:"Voyage Law 2",dimensions:1024},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",dimensions:1024}]}},sdwebui:{id:"sdwebui",alias:"sdwebui",name:"SD WebUI",icon:"brush",color:"#FF7043",textIcon:"SD",website:"https://github.com/AUTOMATIC1111/stable-diffusion-webui",serviceKinds:["image"]},comfyui:{id:"comfyui",alias:"comfyui",name:"ComfyUI",icon:"account_tree",color:"#4CAF50",textIcon:"CF",website:"https://github.com/comfyanonymous/ComfyUI",serviceKinds:["image"]},huggingface:{id:"huggingface",alias:"hf",name:"HuggingFace",icon:"face",color:"#FFD21E",textIcon:"HF",website:"https://huggingface.co",notice:{apiKeyUrl:"https://huggingface.co/settings/tokens"},serviceKinds:["image","imageToText","tts","stt"],hiddenKinds:["tts"],ttsConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-tts",models:[{id:"facebook/mms-tts-eng",name:"MMS TTS English"},{id:"microsoft/speecht5_tts",name:"SpeechT5 TTS"}]},sttConfig:{baseUrl:"https://api-inference.huggingface.co/models",authType:"apikey",authHeader:"bearer",format:"huggingface-asr",models:[{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)"},{id:"openai/whisper-small",name:"Whisper Small (HF)"}]}},blackbox:{id:"blackbox",alias:"bb",name:"Blackbox AI",icon:"smart_toy",color:"#5B5FEF",textIcon:"BB",website:"https://blackbox.ai",notice:{apiKeyUrl:"https://www.blackbox.ai/api-management"},serviceKinds:["llm"]},chutes:{id:"chutes",alias:"ch",name:"Chutes AI",icon:"water_drop",color:"#ffffffff",textIcon:"CH",website:"https://chutes.ai",notice:{apiKeyUrl:"https://chutes.ai/app/api"}},"ollama-local":{id:"ollama-local",alias:"ollama-local",name:"Ollama Local",icon:"cloud",color:"#ffffffff",textIcon:"OL",website:"https://ollama.com"},"vertex-partner":{id:"vertex-partner",alias:"vxp",name:"Vertex Partner",icon:"cloud",color:"#34A853",textIcon:"VP",website:"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models",notice:{apiKeyUrl:"https://console.cloud.google.com/iam-admin/serviceaccounts"}},tavily:{id:"tavily",alias:"tavily",name:"Tavily",icon:"search",color:"#5B21B6",textIcon:"TV",website:"https://tavily.com",notice:{apiKeyUrl:"https://app.tavily.com/home"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.tavily.com/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.tavily.com/extract",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.008,freeMonthlyQuota:1e3,formats:["markdown","text"],maxCharacters:1e5,timeoutMs:15e3}},"brave-search":{id:"brave-search",alias:"brave",name:"Brave Search",icon:"travel_explore",color:"#FB542B",textIcon:"BR",website:"https://brave.com/search/api",notice:{apiKeyUrl:"https://api-dashboard.search.brave.com/app/keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.search.brave.com/res/v1",method:"GET",authType:"apikey",authHeader:"x-subscription-token",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:20,timeoutMs:1e4,cacheTTLMs:3e5}},serper:{id:"serper",alias:"serper",name:"Serper",icon:"search",color:"#4F46E5",textIcon:"SP",website:"https://serper.dev",notice:{apiKeyUrl:"https://serper.dev/api-key"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://google.serper.dev",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:2500,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},exa:{id:"exa",alias:"exa",name:"Exa",icon:"manage_search",color:"#2563EB",textIcon:"EX",website:"https://exa.ai",notice:{apiKeyUrl:"https://dashboard.exa.ai/api-keys"},serviceKinds:["webSearch","webFetch"],searchConfig:{baseUrl:"https://api.exa.ai/search",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.007,freeMonthlyQuota:1e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5},fetchConfig:{baseUrl:"https://api.exa.ai/contents",method:"POST",authType:"apikey",authHeader:"x-api-key",costPerQuery:.001,freeMonthlyQuota:1e3,formats:["text","markdown"],maxCharacters:1e5,timeoutMs:15e3}},searxng:{id:"searxng",alias:"searxng",name:"SearXNG",icon:"saved_search",color:"#3B82F6",textIcon:"SX",website:"https://docs.searxng.org",serviceKinds:["webSearch"],noAuth:!0,searchConfig:{baseUrl:"http://localhost:8888/search",method:"GET",authType:"none",authHeader:"none",costPerQuery:0,freeMonthlyQuota:999999,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:18e4}},"google-pse":{id:"google-pse",alias:"gpse",name:"Google PSE",icon:"search",color:"#4285F4",textIcon:"GP",website:"https://programmablesearchengine.google.com",notice:{apiKeyUrl:"https://programmablesearchengine.google.com/controlpanel/create"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.googleapis.com/customsearch/v1",method:"GET",authType:"apikey",authHeader:"key",costPerQuery:.005,freeMonthlyQuota:3e3,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:10,timeoutMs:1e4,cacheTTLMs:3e5}},linkup:{id:"linkup",alias:"linkup",name:"Linkup",icon:"link",color:"#0EA5E9",textIcon:"LK",website:"https://linkup.so",notice:{apiKeyUrl:"https://app.linkup.so/api-keys"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://api.linkup.so/v1/search",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.005,freeMonthlyQuota:1e3,searchTypes:["web"],defaultMaxResults:5,maxMaxResults:50,timeoutMs:1e4,cacheTTLMs:3e5}},searchapi:{id:"searchapi",alias:"searchapi",name:"SearchAPI",icon:"search",color:"#0EA5A4",textIcon:"SA",website:"https://www.searchapi.io",notice:{apiKeyUrl:"https://www.searchapi.io/dashboard"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://www.searchapi.io/api/v1/search",method:"GET",authType:"apikey",authHeader:"api_key",costPerQuery:.004,freeMonthlyQuota:100,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},youcom:{id:"youcom",alias:"youcom",name:"You.com Search",icon:"search",color:"#7C3AED",textIcon:"YC",website:"https://you.com",notice:{apiKeyUrl:"https://api.you.com"},serviceKinds:["webSearch"],searchConfig:{baseUrl:"https://ydc-index.io/v1/search",method:"GET",authType:"apikey",authHeader:"x-api-key",costPerQuery:.005,freeMonthlyQuota:0,searchTypes:["web","news"],defaultMaxResults:5,maxMaxResults:100,timeoutMs:1e4,cacheTTLMs:3e5}},firecrawl:{id:"firecrawl",alias:"firecrawl",name:"Firecrawl",icon:"local_fire_department",color:"#F59E0B",textIcon:"FC",website:"https://firecrawl.dev",notice:{apiKeyUrl:"https://www.firecrawl.dev/app/api-keys"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://api.firecrawl.dev/v1/scrape",method:"POST",authType:"apikey",authHeader:"bearer",costPerQuery:.002,freeMonthlyQuota:500,formats:["markdown","html","text"],maxCharacters:2e5,timeoutMs:3e4}},"fal-ai":{id:"fal-ai",alias:"fal",name:"Fal.ai",icon:"image",color:"#2563EB",textIcon:"FL",website:"https://fal.ai",notice:{apiKeyUrl:"https://fal.ai/dashboard/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://queue.fal.run/fal-ai/flux/schnell",method:"POST",authType:"apikey",authHeader:"key"}},"stability-ai":{id:"stability-ai",alias:"stability",name:"Stability AI",icon:"image",color:"#8B5CF6",textIcon:"SA",website:"https://stability.ai",notice:{apiKeyUrl:"https://platform.stability.ai/account/keys"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.stability.ai/v1/user/account",method:"GET",authType:"apikey",authHeader:"bearer"}},"black-forest-labs":{id:"black-forest-labs",alias:"bfl",name:"Black Forest Labs",icon:"image",color:"#111827",textIcon:"BF",website:"https://blackforestlabs.ai",notice:{apiKeyUrl:"https://api.bfl.ai"},serviceKinds:["image"],imageConfig:{baseUrl:"https://api.bfl.ai/v1/get_result?id=ping",method:"GET",authType:"apikey",authHeader:"x-key"}},recraft:{id:"recraft",alias:"recraft",name:"Recraft",icon:"image",color:"#EC4899",textIcon:"RC",website:"https://recraft.ai",notice:{apiKeyUrl:"https://www.recraft.ai/profile/api"},serviceKinds:["image"],imageConfig:{baseUrl:"https://external.api.recraft.ai/v1/users/me",method:"GET",authType:"apikey",authHeader:"bearer"}},topaz:{id:"topaz",alias:"topaz",name:"Topaz",icon:"image",color:"#059669",textIcon:"TP",website:"https://topazlabs.com",notice:{apiKeyUrl:"https://topazlabs.com/account"},serviceKinds:["image"]},runwayml:{id:"runwayml",alias:"runway",name:"Runway ML",icon:"movie",color:"#000000",textIcon:"RW",website:"https://runwayml.com",notice:{apiKeyUrl:"https://dev.runwayml.com"},serviceKinds:["image","video"],imageConfig:{baseUrl:"https://api.dev.runwayml.com/v1/organization",method:"GET",authType:"apikey",authHeader:"bearer",extraHeaders:{"X-Runway-Version":"2024-11-06"}}},"aws-polly":{id:"aws-polly",alias:"polly",name:"AWS Polly",icon:"record_voice_over",color:"#FF9900",textIcon:"PL",website:"https://aws.amazon.com/polly/",notice:{text:"Use AWS Secret Access Key as API key; set providerSpecificData.accessKeyId and optional region.",apiKeyUrl:"https://console.aws.amazon.com/iam/home#/security_credentials"},serviceKinds:["tts"],hasProviderSpecificData:!0,ttsConfig:{baseUrl:"https://polly.{region}.amazonaws.com/v1/speech",authType:"apikey",authHeader:"aws-sigv4",format:"aws-polly",models:[{id:"standard",name:"Standard"},{id:"neural",name:"Neural"},{id:"long-form",name:"Long-form"},{id:"generative",name:"Generative"}]}},"jina-ai":{id:"jina-ai",alias:"jina",name:"Jina AI",icon:"blur_on",color:"#2563EB",textIcon:"JA",website:"https://jina.ai",notice:{text:"10M free tokens on signup (non-commercial), no credit card required.",apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["embedding"],embeddingConfig:{baseUrl:"https://api.jina.ai/v1/embeddings",authType:"apikey",authHeader:"bearer",models:[{id:"jina-embeddings-v3",name:"Jina Embeddings v3",dimensions:1024},{id:"jina-embeddings-v2-base-en",name:"Jina Embeddings v2 Base EN",dimensions:768},{id:"jina-embeddings-v2-base-code",name:"Jina Embeddings v2 Base Code",dimensions:768}]}},"jina-reader":{id:"jina-reader",alias:"jina",name:"Jina Reader",icon:"menu_book",color:"#000000",textIcon:"JR",website:"https://jina.ai/reader",notice:{apiKeyUrl:"https://jina.ai/?sui=apikey"},serviceKinds:["webFetch"],fetchConfig:{baseUrl:"https://r.jina.ai",method:"GET",authType:"apikey",authHeader:"bearer",costPerQuery:0,freeMonthlyQuota:1e6,formats:["markdown","text","html"],maxCharacters:2e5,timeoutMs:3e4}}},m={"grok-web":{id:"grok-web",alias:"gw",name:"Grok Web (Subscription)",icon:"auto_awesome",color:"#1DA1F2",textIcon:"GW",website:"https://grok.com",authType:"cookie",authHint:"Paste your sso= cookie value from grok.com",passthroughModels:!0,serviceKinds:["llm"]},"perplexity-web":{id:"perplexity-web",alias:"pw",name:"Perplexity Web (Pro/Max)",icon:"search",color:"#20808D",textIcon:"PW",website:"https://www.perplexity.ai",authType:"cookie",authHint:"Paste your __Secure-next-auth.session-token cookie value from perplexity.ai",serviceKinds:["llm"]}},d=[{id:"embedding",label:"Embedding",icon:"data_array",endpoint:{method:"POST",path:"/v1/embeddings"}},{id:"image",label:"Text to Image",icon:"brush",endpoint:{method:"POST",path:"/v1/images/generations"}},{id:"imageToText",label:"Image to Text",icon:"image_search",endpoint:{method:"POST",path:"/v1/images/understanding"}},{id:"tts",label:"Text To Speech",icon:"record_voice_over",endpoint:{method:"POST",path:"/v1/audio/speech"}},{id:"stt",label:"Speech To Text",icon:"mic",endpoint:{method:"POST",path:"/v1/audio/transcriptions"}},{id:"webSearch",label:"Web Search",icon:"travel_explore",endpoint:{method:"POST",path:"/v1/search"}},{id:"webFetch",label:"Web Fetch",icon:"language",endpoint:{method:"POST",path:"/v1/web/fetch"}},{id:"video",label:"Video",icon:"movie",endpoint:{method:"POST",path:"/v1/video/generations"}},{id:"music",label:"Music",icon:"music_note",endpoint:{method:"POST",path:"/v1/audio/music"}}],l="openai-compatible-",p="anthropic-compatible-";function c(e){return"string"==typeof e&&e.startsWith(l)}function h(e){return"string"==typeof e&&e.startsWith(p)}function g(e){return"string"==typeof e&&e.startsWith("custom-embedding-")}let u={...t,...n,...s,...r,...m},b={oauth:{id:"oauth",name:"OAuth",icon:"lock"},apikey:{id:"apikey",name:"API Key",icon:"key"},cookie:{id:"cookie",name:"Browser Cookie",icon:"cookie"}};function y(e){for(let a of Object.values(u))if(a.alias===e||a.id===e)return a;return null}function f(e){let a=u[e];return a?.alias||e}function v(e){return Object.values(u).filter(a=>!(!(a.serviceKinds??["llm"]).includes(e)||a.hidden||a.hiddenKinds?.includes(e))).sort((e,a)=>(e.mediaPriority??100)-(a.mediaPriority??100))}Object.values(u).reduce((e,a)=>(e[a.alias]=a.id,e),{}),Object.values(u).reduce((e,a)=>(e[a.id]=a.alias,e),{});let x=["claude","antigravity","kiro","github","codex","kimi-coding","ollama","gemini-cli","glm","glm-cn","minimax","minimax-cn"],w=["glm","glm-cn","minimax","minimax-cn"]},83789:(e,a,i)=>{i.d(a,{A:()=>r});var t=i(2074),n=i(11472),o=i(43202);function s(e){let a=document.documentElement,i=window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light";"dark"===("system"===e?i:e)?a.classList.add("dark"):a.classList.remove("dark")}let r=(0,t.v)((0,n.Zr)((e,a)=>({theme:o.B2.defaultTheme,setTheme:a=>{e({theme:a}),s(a)},toggleTheme:()=>{let i="dark"===a().theme?"light":"dark";e({theme:i}),s(i)},initTheme:()=>{s(a().theme)}}),{name:o.B2.storageKey}))},84502:(e,a,i)=>{i.d(a,{FE:()=>c,Tl:()=>d,wn:()=>h});var t=i(55348);let n={},o=t.Xn,s=[];function r(){if("u"e.trim().startsWith(`${t.CL}=`)),a=e?decodeURIComponent(e.split("=")[1]):t.Xn;return(0,t.QC)(a)}async function m(e){if("en"===e){n={};return}try{let a=await fetch(`/i18n/literals/${e}.json`);n=await a.json()}catch(e){console.error("Failed to load translations:",e),n={}}}function d(e){if(!e||"string"!=typeof e)return e;let a=e.trim();return a&&"en"!==o&&n[a]||e}function l(e){if(!e.nodeValue||!e.nodeValue.trim())return;let a=e.parentElement;if(!a)return;let i=a;for(;i;){if(i.hasAttribute&&i.hasAttribute("data-i18n-skip"))return;i=i.parentElement}if(["script","style","code","pre","colgroup","table","thead","tbody","tfoot","tr","select","datalist","optgroup"].includes(a.tagName?.toLowerCase()))return;e._originalText||(e._originalText=e.nodeValue);let t=d(e._originalText);t!==e.nodeValue&&(e.nodeValue=t)}function p(e){let a;if(!e)return;let i=document.createTreeWalker(e,NodeFilter.SHOW_TEXT,null,!1),t=[];for(;a=i.nextNode();)t.push(a);t.forEach(l)}async function c(){o=r(),await m(o),p(document.body),new MutationObserver(e=>{e.forEach(e=>{e.addedNodes.forEach(e=>{e.nodeType===Node.ELEMENT_NODE?p(e):e.nodeType===Node.TEXT_NODE&&l(e)})})}).observe(document.body,{childList:!0,subtree:!0})}async function h(){o=r(),await m(o),s.forEach(e=>e()),p(document.body)}},94718:(e,a,i)=>{i.d(a,{Xg:()=>c,vq:()=>l,KC:()=>h});var t=i(390),n=i(89651);let o={"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,interleaved-thinking-2025-05-14"},s="https://api.kimi.com/coding/v1/messages",r={claude:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{"Anthropic-Version":"2023-06-01","Anthropic-Beta":"claude-code-20250219,oauth-2025-04-20,interleaved-thinking-2025-05-14,context-management-2025-06-27,prompt-caching-scope-2026-01-05,advanced-tool-use-2025-11-20,effort-2025-11-24,structured-outputs-2025-12-15,fast-mode-2026-02-01,redact-thinking-2026-02-12,token-efficient-tools-2026-03-28","Anthropic-Dangerous-Direct-Browser-Access":"true","User-Agent":"claude-cli/2.1.92 (external, sdk-cli)","X-App":"cli","X-Stainless-Helper-Method":"stream","X-Stainless-Retry-Count":"0","X-Stainless-Runtime-Version":"v24.14.0","X-Stainless-Package-Version":"0.80.0","X-Stainless-Runtime":"node","X-Stainless-Lang":"js","X-Stainless-Arch":function(){switch((0,t.arch)()){case"x64":return"x64";case"arm64":return"arm64";case"ia32":return"x86";default:return`other::${(0,t.arch)()}`}}(),"X-Stainless-Os":function(){switch((0,t.platform)()){case"darwin":return"MacOS";case"win32":return"Windows";case"linux":return"Linux";case"freebsd":return"FreeBSD";default:return`Other::${(0,t.platform)()}`}}(),"X-Stainless-Timeout":"600"},clientId:"9d1c250a-e61b-44d9-88ed-5944d1962f5e",tokenUrl:"https://api.anthropic.com/v1/oauth/token"},gemini:{baseUrl:"https://generativelanguage.googleapis.com/v1beta/models",format:"gemini",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},"gemini-cli":{baseUrl:"https://cloudcode-pa.googleapis.com/v1internal",format:"gemini-cli",clientId:"681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",clientSecret:"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"},codex:{baseUrl:"https://chatgpt.com/backend-api/codex/responses",format:"openai-responses",headers:{originator:"codex-cli","User-Agent":"codex-cli/1.0.18 (macOS; arm64)"},clientId:"app_EMoamEEZ73f0CkXaXp7hrann",tokenUrl:"https://auth.openai.com/oauth/token"},qwen:{baseUrl:"https://portal.qwen.ai/v1/chat/completions",format:"openai",clientId:"f0304373b74a44d2b584a3fb70ca9e56",tokenUrl:"https://chat.qwen.ai/api/v1/oauth2/token",authUrl:"https://chat.qwen.ai/api/v1/oauth2/device/code"},iflow:{baseUrl:"https://apis.iflow.cn/v1/chat/completions",format:"openai",headers:{"User-Agent":"iFlow-Cli"},clientId:"10009311001",clientSecret:"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://iflow.cn/oauth/token",authUrl:"https://iflow.cn/oauth"},qoder:{baseUrl:"https://api.qoder.com/v1/chat/completions",format:"openai",headers:{"User-Agent":"Qoder-Cli"},clientId:n.env.QODER_OAUTH_CLIENT_ID||"10009311001",clientSecret:n.env.QODER_OAUTH_CLIENT_SECRET||"4Z3YjXycVsQvyGF1etiNlIBB4RsqSDtW",tokenUrl:"https://api.qoder.com/oauth/token",authUrl:"https://qoder.com/oauth/authorize"},antigravity:{baseUrls:["https://daily-cloudcode-pa.googleapis.com","https://daily-cloudcode-pa.sandbox.googleapis.com"],format:"antigravity",headers:{"User-Agent":`antigravity/1.107.0 ${(0,t.platform)()}/${(0,t.arch)()}`},clientId:"1071006060591-tmhssin2h21lcre235vtolojh4g403ep.apps.googleusercontent.com",clientSecret:"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"},openrouter:{baseUrl:"https://openrouter.ai/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://endpoint-proxy.local","X-Title":"Endpoint Proxy"}},openai:{baseUrl:"https://api.openai.com/v1/chat/completions",format:"openai"},glm:{baseUrl:"https://api.z.ai/api/anthropic/v1/messages",format:"claude",headers:{...o}},"glm-cn":{baseUrl:"https://open.bigmodel.cn/api/coding/paas/v4/chat/completions",format:"openai",headers:{}},kimi:{baseUrl:s,format:"claude",headers:{...o}},minimax:{baseUrl:"https://api.minimax.io/anthropic/v1/messages",format:"claude",headers:{...o}},"minimax-cn":{baseUrl:"https://api.minimaxi.com/anthropic/v1/messages",format:"claude",headers:{...o}},alicode:{baseUrl:"https://coding.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"alicode-intl":{baseUrl:"https://coding-intl.dashscope.aliyuncs.com/v1/chat/completions",format:"openai",headers:{}},"volcengine-ark":{baseUrl:"https://ark.cn-beijing.volces.com/api/coding/v3/chat/completions",format:"openai",headers:{}},byteplus:{baseUrl:"https://ark.ap-southeast.bytepluses.com/api/coding/v3/chat/completions",format:"openai",headers:{}},github:{baseUrl:"https://api.githubcopilot.com/chat/completions",responsesUrl:"https://api.githubcopilot.com/responses",format:"openai",headers:{"copilot-integration-id":"vscode-chat","editor-version":"vscode/1.110.0","editor-plugin-version":"copilot-chat/0.38.0","user-agent":"GitHubCopilotChat/0.38.0","openai-intent":"conversation-panel","x-github-api-version":"2025-04-01","x-vscode-user-agent-library-version":"electron-fetch","X-Initiator":"user",Accept:"application/json","Content-Type":"application/json"},clientId:"Iv1.b507a08c87ecfe98"},kiro:{baseUrl:"https://codewhisperer.us-east-1.amazonaws.com/generateAssistantResponse",format:"kiro",retry:{429:2},headers:{"Content-Type":"application/json",Accept:"application/vnd.amazon.eventstream","X-Amz-Target":"AmazonCodeWhispererStreamingService.GenerateAssistantResponse","User-Agent":"AWS-SDK-JS/3.0.0 kiro-ide/1.0.0","X-Amz-User-Agent":"aws-sdk-js/3.0.0 kiro-ide/1.0.0"},tokenUrl:"https://prod.us-east-1.auth.desktop.kiro.dev/refreshToken",authUrl:"https://prod.us-east-1.auth.desktop.kiro.dev"},cursor:{baseUrl:"https://api2.cursor.sh",chatPath:"/aiserver.v1.ChatService/StreamUnifiedChatWithTools",format:"cursor",headers:{"connect-accept-encoding":"gzip","connect-protocol-version":"1","Content-Type":"application/connect+proto","User-Agent":"connect-es/1.6.1"},clientVersion:"3.1.0"},"kimi-coding":{baseUrl:s,format:"claude",headers:{...o},clientId:"17e5f671-d194-4dfb-9706-5516cb48c098",tokenUrl:"https://auth.kimi.com/api/oauth/token",refreshUrl:"https://auth.kimi.com/api/oauth/token"},kilocode:{baseUrl:"https://api.kilo.ai/api/openrouter/chat/completions",format:"openai",headers:{}},opencode:{baseUrl:"http://localhost:4096/v1/chat/completions",format:"openai",headers:{}},cline:{baseUrl:"https://api.cline.bot/api/v1/chat/completions",format:"openai",headers:{"HTTP-Referer":"https://cline.bot","X-Title":"Cline"},tokenUrl:"https://api.cline.bot/api/v1/auth/token",refreshUrl:"https://api.cline.bot/api/v1/auth/refresh"},nvidia:{baseUrl:"https://integrate.api.nvidia.com/v1/chat/completions",format:"openai"},anthropic:{baseUrl:"https://api.anthropic.com/v1/messages",format:"claude",headers:{...o}},deepseek:{baseUrl:"https://api.deepseek.com/chat/completions",format:"openai"},commandcode:{baseUrl:"https://api.commandcode.ai/alpha/generate",format:"commandcode",headers:{"x-command-code-version":"0.25.7","x-cli-environment":"cli"}},groq:{baseUrl:"https://api.groq.com/openai/v1/chat/completions",format:"openai"},xai:{baseUrl:"https://api.x.ai/v1/chat/completions",format:"openai"},mistral:{baseUrl:"https://api.mistral.ai/v1/chat/completions",format:"openai"},perplexity:{baseUrl:"https://api.perplexity.ai/chat/completions",format:"openai"},together:{baseUrl:"https://api.together.xyz/v1/chat/completions",format:"openai"},fireworks:{baseUrl:"https://api.fireworks.ai/inference/v1/chat/completions",format:"openai"},cerebras:{baseUrl:"https://api.cerebras.ai/v1/chat/completions",format:"openai"},cohere:{baseUrl:"https://api.cohere.ai/v1/chat/completions",format:"openai"},nebius:{baseUrl:"https://api.studio.nebius.ai/v1/chat/completions",format:"openai"},siliconflow:{baseUrl:"https://api.siliconflow.cn/v1/chat/completions",format:"openai"},hyperbolic:{baseUrl:"https://api.hyperbolic.xyz/v1/chat/completions",format:"openai"},deepgram:{baseUrl:"https://api.deepgram.com/v1/listen",format:"openai"},assemblyai:{baseUrl:"https://api.assemblyai.com/v1/audio/transcriptions",format:"openai"},nanobanana:{baseUrl:"https://api.nanobananaapi.ai/v1/chat/completions",format:"openai"},chutes:{baseUrl:"https://llm.chutes.ai/v1/chat/completions",format:"openai"},ollama:{baseUrl:"https://ollama.com/api/chat",format:"ollama"},"ollama-local":{baseUrl:"http://localhost:11434/api/chat",format:"ollama"},vertex:{baseUrl:"https://aiplatform.googleapis.com",format:"vertex"},"vertex-partner":{baseUrl:"https://aiplatform.googleapis.com",format:"openai"},gitlab:{baseUrl:"https://gitlab.com/api/v4/chat/completions",format:"openai"},codebuddy:{baseUrl:"https://copilot.tencent.com/v1/chat/completions",format:"openai"},opencode:{baseUrl:"https://opencode.ai",format:"openai",headers:{"x-opencode-client":"desktop"},noAuth:!0},"opencode-go":{baseUrl:"https://opencode.ai/zen/go/v1/chat/completions",format:"openai",headers:{}},"grok-web":{baseUrl:"https://grok.com/rest/app-chat/conversations/new",format:"grok-web",authType:"cookie"},"perplexity-web":{baseUrl:"https://www.perplexity.ai/rest/sse/perplexity_ask",format:"perplexity-web",authType:"cookie"},azure:{baseUrl:"",format:"openai",headers:{}},"cloudflare-ai":{baseUrl:"https://api.cloudflare.com/client/v4/accounts/{accountId}/ai/v1/chat/completions",format:"openai"},"xiaomi-mimo":{baseUrl:"https://api.xiaomimimo.com/v1/chat/completions",format:"openai"}};var m=i(24021);let d="-review",l={cc:[{id:"claude-opus-4-7",name:"Claude Opus 4.7"},{id:"claude-opus-4-6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-5-20251101",name:"Claude 4.5 Opus"},{id:"claude-sonnet-4-5-20250929",name:"Claude 4.5 Sonnet"},{id:"claude-haiku-4-5-20251001",name:"Claude 4.5 Haiku"}],cx:[{id:"gpt-5.5",name:"GPT 5.5"},{id:"gpt-5.4",name:"GPT 5.4"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"},{id:"gpt-5.3-codex-xhigh",name:"GPT 5.3 Codex (xHigh)"},{id:"gpt-5.3-codex-high",name:"GPT 5.3 Codex (High)"},{id:"gpt-5.3-codex-low",name:"GPT 5.3 Codex (Low)"},{id:"gpt-5.3-codex-none",name:"GPT 5.3 Codex (None)"},{id:"gpt-5.3-codex-spark",name:"GPT 5.3 Codex Spark"},{id:"gpt-5.1-codex-mini",name:"GPT 5.1 Codex Mini"},{id:"gpt-5.1-codex-mini-high",name:"GPT 5.1 Codex Mini (High)"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.1-codex-max",name:"GPT 5.1 Codex Max"},{id:"gpt-5.1-codex",name:"GPT 5.1 Codex"},{id:"gpt-5.1",name:"GPT 5.1"},{id:"gpt-5-codex",name:"GPT 5 Codex"},{id:"gpt-5-codex-mini",name:"GPT 5 Codex Mini"},{id:"gpt-5.4-image",name:"GPT 5.4 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.3-image",name:"GPT 5.3 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]},{id:"gpt-5.2-image",name:"GPT 5.2 Image",type:"image",capabilities:["text2img","edit"],params:["size","quality","background","image_detail","output_format"]}].flatMap(e=>"llm"!==(e.type||"llm")||e.id.endsWith(d)?[e]:[e,{...e,id:`${e.id}${d}`,name:`${e.name} Review`,upstreamModelId:e.upstreamModelId||e.id,quotaFamily:"review"}]),gc:[{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-3-pro-preview",name:"Gemini 3 Pro Preview"}],qw:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-coder-flash",name:"Qwen3 Coder Flash"},{id:"vision-model",name:"Qwen3 Vision Model"},{id:"coder-model",name:"Qwen3.6 Coder Model"}],if:[{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"},{id:"qwen3-max-preview",name:"Qwen3 Max Preview"},{id:"qwen3-235b",name:"Qwen3 235B A22B"},{id:"qwen3-235b-a22b-instruct",name:"Qwen3 235B A22B Instruct"},{id:"qwen3-235b-a22b-thinking-2507",name:"Qwen3 235B A22B Thinking"},{id:"qwen3-32b",name:"Qwen3 32B"},{id:"kimi-k2",name:"Kimi K2"},{id:"deepseek-v3.2",name:"DeepSeek V3.2 Exp"},{id:"deepseek-v3.1",name:"DeepSeek V3.1 Terminus"},{id:"deepseek-v3",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"glm-4.7",name:"GLM 4.7"},{id:"iflow-rome-30ba3b",name:"iFlow ROME"}],ag:[{id:"gemini-3.1-pro-high",name:"Gemini 3 Pro High"},{id:"gemini-3.1-pro-low",name:"Gemini 3 Pro Low"},{id:"gemini-3-flash",name:"Gemini 3 Flash",thinking:!1},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4-6-thinking",name:"Claude Opus 4.6 Thinking"},{id:"gpt-oss-120b-medium",name:"GPT OSS 120B Medium"}],gh:[{id:"gpt-3.5-turbo",name:"GPT-3.5 Turbo"},{id:"gpt-4",name:"GPT-4"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.2-codex",name:"GPT-5.2 Codex"},{id:"gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"claude-opus-4.5",name:"Claude Opus 4.5"},{id:"claude-sonnet-4",name:"Claude Sonnet 4"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-opus-4.7",name:"Claude Opus 4.7"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash"},{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro"},{id:"grok-code-fast-1",name:"Grok Code Fast 1"},{id:"oswe-vscode-prime",name:"Raptor Mini"},{id:"goldeneye-free-auto",name:"GoldenEye"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small (GitHub)",type:"embedding"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large (GitHub)",type:"embedding"}],kr:[{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-haiku-4.5",name:"Claude Haiku 4.5"},{id:"deepseek-3.2",name:"DeepSeek 3.2",strip:["image","audio"]},{id:"qwen3-coder-next",name:"Qwen3 Coder Next",strip:["image","audio"]},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"}],cu:[{id:"default",name:"Auto (Server Picks)"},{id:"claude-4.5-opus-high-thinking",name:"Claude 4.5 Opus High Thinking"},{id:"claude-4.5-opus-high",name:"Claude 4.5 Opus High"},{id:"claude-4.5-sonnet-thinking",name:"Claude 4.5 Sonnet Thinking"},{id:"claude-4.5-sonnet",name:"Claude 4.5 Sonnet"},{id:"claude-4.5-haiku",name:"Claude 4.5 Haiku"},{id:"claude-4.5-opus",name:"Claude 4.5 Opus"},{id:"gpt-5.2-codex",name:"GPT 5.2 Codex"},{id:"claude-4.6-opus-max",name:"Claude 4.6 Opus Max"},{id:"claude-4.6-sonnet-medium-thinking",name:"Claude 4.6 Sonnet Medium Thinking"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gpt-5.2",name:"GPT 5.2"},{id:"gpt-5.3-codex",name:"GPT 5.3 Codex"}],kmc:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],kc:[{id:"anthropic/claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"anthropic/claude-opus-4-20250514",name:"Claude Opus 4"},{id:"google/gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"google/gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"openai/gpt-4.1",name:"GPT-4.1"},{id:"openai/o3",name:"o3"},{id:"deepseek/deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek/deepseek-reasoner",name:"DeepSeek Reasoner"}],"opencode-go":[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"qwen3.5-plus",name:"Qwen 3.5 Plus"},{id:"qwen3.6-plus",name:"Qwen 3.6 Plus"},{id:"mimo-v2-pro",name:"MiMo V2 Pro"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"minimax-m2.7",name:"MiniMax M2.7",targetFormat:"claude"},{id:"minimax-m2.5",name:"MiniMax M2.5",targetFormat:"claude"}],oc:[],cl:[{id:"anthropic/claude-opus-4.7",name:"Claude Opus 4.7"},{id:"anthropic/claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"anthropic/claude-opus-4.6",name:"Claude Opus 4.6"},{id:"openai/gpt-5.3-codex",name:"GPT-5.3 Codex"},{id:"openai/gpt-5.4",name:"GPT-5.4"},{id:"google/gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"google/gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"kwaipilot/kat-coder-pro",name:"KAT Coder Pro"}],openai:[{id:"gpt-5.4",name:"GPT-5.4"},{id:"gpt-5.4-mini",name:"GPT-5.4 Mini"},{id:"gpt-5.4-nano",name:"GPT-5.4 Nano"},{id:"gpt-5.2",name:"GPT-5.2"},{id:"gpt-5.1",name:"GPT-5.1"},{id:"gpt-5",name:"GPT-5"},{id:"gpt-5-mini",name:"GPT-5 Mini"},{id:"gpt-5-nano",name:"GPT-5 Nano"},{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o Mini"},{id:"gpt-4-turbo",name:"GPT-4 Turbo"},{id:"gpt-4.1",name:"GPT-4.1"},{id:"gpt-4.1-mini",name:"GPT-4.1 Mini"},{id:"gpt-4.1-nano",name:"GPT-4.1 Nano"},{id:"o3",name:"O3"},{id:"o3-mini",name:"O3 Mini"},{id:"o3-pro",name:"O3 Pro"},{id:"o4-mini",name:"O4 Mini"},{id:"o1",name:"O1"},{id:"o1-mini",name:"O1 Mini"},{id:"text-embedding-3-large",name:"Text Embedding 3 Large",type:"embedding"},{id:"text-embedding-3-small",name:"Text Embedding 3 Small",type:"embedding"},{id:"text-embedding-ada-002",name:"Text Embedding Ada 002",type:"embedding"},{id:"tts-1",name:"TTS-1",type:"tts"},{id:"tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"whisper-1",name:"Whisper 1",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-transcribe",name:"GPT-4o Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-4o-mini-transcribe",name:"GPT-4o Mini Transcribe",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"gpt-image-1",name:"GPT Image 1",type:"image",params:["n","size","quality","response_format"]},{id:"dall-e-3",name:"DALL-E 3",type:"image",params:["size","quality","style","response_format"]},{id:"dall-e-2",name:"DALL-E 2",type:"image",params:["n","size","response_format"]}],anthropic:[{id:"claude-sonnet-4-20250514",name:"Claude Sonnet 4"},{id:"claude-opus-4-20250514",name:"Claude Opus 4"},{id:"claude-3-5-sonnet-20241022",name:"Claude 3.5 Sonnet"}],gemini:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite"},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash"},{id:"gemini-2.0-flash-lite",name:"Gemini 2.0 Flash Lite"},{id:"gemma-4-31b-it",name:"Gemma 4 31B IT"},{id:"gemini-embedding-2-preview",name:"Gemini Embedding 2 Preview",type:"embedding"},{id:"gemini-embedding-001",name:"Gemini Embedding 001",type:"embedding"},{id:"text-embedding-005",name:"Text Embedding 005",type:"embedding"},{id:"text-embedding-004",name:"Text Embedding 004 (Legacy)",type:"embedding"},{id:"gemini-3.1-flash-image-preview",name:"Gemini 3.1 Flash Image (Nano Banana 2)",type:"image",params:[]},{id:"gemini-3-pro-image-preview",name:"Gemini 3 Pro Image (Nano Banana Pro)",type:"image",params:[]},{id:"gemini-2.5-flash-image",name:"Gemini 2.5 Flash Image (Nano Banana)",type:"image",params:[]},{id:"gemini-2.5-pro",name:"Gemini 2.5 Pro (Best)",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash",type:"stt",params:["language","prompt"]},{id:"gemini-2.5-flash-lite",name:"Gemini 2.5 Flash Lite (Cheapest)",type:"stt",params:["language","prompt"]},{id:"gemini-2.0-flash",name:"Gemini 2.0 Flash",type:"stt",params:["language","prompt"]}],openrouter:[{id:"openai/text-embedding-3-large",name:"OpenAI Text Embedding 3 Large",type:"embedding"},{id:"openai/text-embedding-3-small",name:"OpenAI Text Embedding 3 Small",type:"embedding"},{id:"openai/text-embedding-ada-002",name:"OpenAI Text Embedding Ada 002",type:"embedding"},{id:"qwen/qwen3-embedding-8b",name:"Qwen3 Embedding 8B",type:"embedding"},{id:"perplexity/pplx-embed-v1-4b",name:"Perplexity Embed V1 4B",type:"embedding"},{id:"perplexity/pplx-embed-v1-0.6b",name:"Perplexity Embed V1 0.6B",type:"embedding"},{id:"nvidia/llama-nemotron-embed-vl-1b-v2:free",name:"NVIDIA Nemotron Embed VL 1B V2 (Free)",type:"embedding"},{id:"openai/gpt-4o-mini-tts",name:"GPT-4o Mini TTS",type:"tts"},{id:"openai/tts-1-hd",name:"TTS-1 HD",type:"tts"},{id:"openai/tts-1",name:"TTS-1",type:"tts"},{id:"openai/dall-e-3",name:"DALL-E 3 (via OpenRouter)",type:"image",params:["size","quality","style","response_format"]},{id:"openai/gpt-image-1",name:"GPT Image 1 (via OpenRouter)",type:"image",params:["n","size","quality","response_format"]},{id:"google/imagen-3.0-generate-002",name:"Imagen 3 (via OpenRouter)",type:"image",params:["n","size"]},{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell (via OpenRouter)",type:"image",params:["n","size"]}],glm:[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM 4.7"},{id:"glm-4.6v",name:"GLM 4.6V (Vision)"}],"glm-cn":[{id:"glm-5.1",name:"GLM 5.1"},{id:"glm-5",name:"GLM 5"},{id:"glm-4.7",name:"GLM-4.7"},{id:"glm-4.6",name:"GLM-4.6"},{id:"glm-4.5-air",name:"GLM-4.5-Air"}],kimi:[{id:"kimi-k2.6",name:"Kimi K2.6"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"kimi-k2.5-thinking",name:"Kimi K2.5 Thinking"},{id:"kimi-latest",name:"Kimi Latest"}],minimax:[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"},{id:"minimax-image-01",name:"MiniMax Image 01",type:"image",params:["n","size","response_format"]}],blackbox:[{id:"gpt-4o",name:"GPT-4o"},{id:"gpt-4o-mini",name:"GPT-4o mini"},{id:"claude-sonnet-4.6",name:"Claude Sonnet 4.6"},{id:"claude-sonnet-4.5",name:"Claude Sonnet 4.5"},{id:"claude-opus-4.6",name:"Claude Opus 4.6"},{id:"claude-sonnet-4-6",name:"Claude Sonnet 4.6 (Legacy)"},{id:"claude-opus-4-6",name:"Claude Opus 4.6 (Legacy)"},{id:"deepseek-chat",name:"DeepSeek Chat"},{id:"deepseek-v3-671b",name:"DeepSeek V3 671B"},{id:"deepseek-r1",name:"DeepSeek R1"},{id:"o1",name:"OpenAI o1"},{id:"o3-mini",name:"OpenAI o3-mini"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"qwen3-max",name:"Qwen3 Max"},{id:"qwen3-vl-plus",name:"Qwen3 VL Plus"}],"minimax-cn":[{id:"MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"MiniMax-M2.1",name:"MiniMax M2.1"}],alicode:[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-max-2026-01-23",name:"Qwen3 Max"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"alicode-intl":[{id:"qwen3.5-plus",name:"Qwen3.5 Plus"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"MiniMax-M2.5",name:"MiniMax M2.5"},{id:"qwen3-coder-next",name:"Qwen3 Coder Next"},{id:"qwen3-coder-plus",name:"Qwen3 Coder Plus"},{id:"glm-4.7",name:"GLM 4.7"}],"volcengine-ark":[{id:"Doubao-Seed-2.0-Code",name:"Doubao-Seed-2.0-Code"},{id:"Doubao-Seed-2.0-pro",name:"Doubao-Seed-2.0-pro"},{id:"Doubao-Seed-2.0-lite",name:"Doubao-Seed-2.0-lite"},{id:"Doubao-Seed-Code",name:"Doubao-Seed-Code"},{id:"GLM-5.1",name:"GLM-5.1"},{id:"MiniMax-M2.7",name:"MiniMax-M2.7"},{id:"Kimi-K2.6",name:"Kimi-K2.6"},{id:"MiniMax-M2.5",name:"MiniMax-M2.5"},{id:"Kimi-K2.5",name:"Kimi-K2.5"},{id:"GLM-4.7",name:"GLM-4.7"},{id:"DeepSeek-V3.2",name:"DeepSeek-V3.2"}],"cloudflare-ai":[{id:"@cf/meta/llama-3.2-1b-instruct",name:"Llama 3.2 1B Instruct"},{id:"@cf/meta/llama-3.2-3b-instruct",name:"Llama 3.2 3B Instruct"},{id:"@cf/meta/llama-3.1-8b-instruct-fp8-fast",name:"Llama 3.1 8B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.1-8b-instruct-awq",name:"Llama 3.1 8B Instruct AWQ"},{id:"@cf/mistralai/mistral-small-3.1-24b-instruct",name:"Mistral Small 3.1 24B Instruct"},{id:"@cf/meta/llama-3.1-70b-instruct-fp8-fast",name:"Llama 3.1 70B Instruct FP8 Fast"},{id:"@cf/meta/llama-3.3-70b-instruct-fp8-fast",name:"Llama 3.3 70B Instruct FP8 Fast"},{id:"@cf/deepseek-ai/deepseek-r1-distill-qwen-32b",name:"DeepSeek R1 Distill Qwen 32B"},{id:"@cf/moonshotai/kimi-k2.5",name:"Kimi K2.5"},{id:"@cf/moonshotai/kimi-k2.6",name:"Kimi K2.6"},{id:"@cf/zai-org/glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"@cf/qwen/qwq-32b",name:"QwQ 32B"},{id:"@cf/qwen/qwen2.5-coder-32b-instruct",name:"Qwen 2.5 Coder 32B Instruct"}],byteplus:[{id:"seed-2-0-pro-260328",name:"Seed 2.0 Pro"},{id:"seed-2-0-code-preview-260328",name:"Seed 2.0 Code Preview"},{id:"seed-2-0-mini-260215",name:"Seed 2.0 Mini"},{id:"seed-2-0-lite-260228",name:"Seed 2.0 Lite"},{id:"kimi-k2-thinking-251104",name:"Kimi K2 Thinking"},{id:"glm-4-7-251222",name:"GLM 4.7"},{id:"gpt-oss-120b-250805",name:"GPT-OSS-120B"}],deepseek:[{id:"deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"deepseek-chat",name:"DeepSeek V3.2 Chat"},{id:"deepseek-reasoner",name:"DeepSeek V3.2 Reasoner"}],commandcode:[{id:"deepseek/deepseek-v4-pro",name:"DeepSeek V4 Pro"},{id:"deepseek/deepseek-v4-flash",name:"DeepSeek V4 Flash"},{id:"moonshotai/Kimi-K2.6",name:"Kimi K2.6"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-5.1",name:"GLM 5.1"},{id:"zai-org/GLM-5",name:"GLM 5"},{id:"MiniMaxAI/MiniMax-M2.7",name:"MiniMax M2.7"},{id:"MiniMaxAI/MiniMax-M2.5",name:"MiniMax M2.5"},{id:"Qwen/Qwen3.6-Max-Preview",name:"Qwen 3.6 Max Preview"},{id:"Qwen/Qwen3.6-Plus",name:"Qwen 3.6 Plus"},{id:"stepfun/Step-3.5-Flash",name:"Step 3.5 Flash"}],groq:[{id:"llama-3.3-70b-versatile",name:"Llama 3.3 70B"},{id:"meta-llama/llama-4-maverick-17b-128e-instruct",name:"Llama 4 Maverick"},{id:"qwen/qwen3-32b",name:"Qwen3 32B"},{id:"openai/gpt-oss-120b",name:"GPT-OSS 120B"},{id:"whisper-large-v3",name:"Whisper Large v3",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"whisper-large-v3-turbo",name:"Whisper Large v3 Turbo",type:"stt",params:["language","response_format","temperature","prompt"]},{id:"distil-whisper-large-v3-en",name:"Distil Whisper Large v3 EN",type:"stt",params:["language","response_format","temperature","prompt"]}],xai:[{id:"grok-4",name:"Grok 4"},{id:"grok-4-fast-reasoning",name:"Grok 4 Fast Reasoning"},{id:"grok-code-fast-1",name:"Grok Code Fast"},{id:"grok-3",name:"Grok 3"}],mistral:[{id:"mistral-large-latest",name:"Mistral Large 3"},{id:"codestral-latest",name:"Codestral"},{id:"mistral-medium-latest",name:"Mistral Medium 3"},{id:"mistral-embed",name:"Mistral Embed",type:"embedding"}],perplexity:[{id:"sonar-pro",name:"Sonar Pro"},{id:"sonar",name:"Sonar"}],together:[{id:"meta-llama/Llama-3.3-70B-Instruct-Turbo",name:"Llama 3.3 70B Turbo"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B",name:"Qwen3 235B"},{id:"meta-llama/Llama-4-Maverick-17B-128E-Instruct-FP8",name:"Llama 4 Maverick"},{id:"BAAI/bge-large-en-v1.5",name:"BGE Large EN v1.5",type:"embedding"},{id:"togethercomputer/m2-bert-80M-8k-retrieval",name:"M2 BERT 80M 8K",type:"embedding"}],fireworks:[{id:"accounts/fireworks/models/deepseek-v3p1",name:"DeepSeek V3.1"},{id:"accounts/fireworks/models/llama-v3p3-70b-instruct",name:"Llama 3.3 70B"},{id:"accounts/fireworks/models/qwen3-235b-a22b",name:"Qwen3 235B"},{id:"nomic-ai/nomic-embed-text-v1.5",name:"Nomic Embed Text v1.5",type:"embedding"}],cerebras:[{id:"gpt-oss-120b",name:"GPT OSS 120B"},{id:"zai-glm-4.7",name:"ZAI GLM 4.7"},{id:"llama-3.3-70b",name:"Llama 3.3 70B"},{id:"llama-4-scout-17b-16e-instruct",name:"Llama 4 Scout"},{id:"qwen-3-235b-a22b-instruct-2507",name:"Qwen3 235B A22B"},{id:"qwen-3-32b",name:"Qwen3 32B"}],cohere:[{id:"command-r-plus-08-2024",name:"Command R+ (Aug 2024)"},{id:"command-r-08-2024",name:"Command R (Aug 2024)"},{id:"command-a-03-2025",name:"Command A (Mar 2025)"}],nvidia:[{id:"minimaxai/minimax-m2.7",name:"Minimax M2.7"},{id:"z-ai/glm4.7",name:"GLM 4.7"},{id:"nvidia/nv-embedqa-e5-v5",name:"NV EmbedQA E5 v5",type:"embedding"},{id:"nvidia/parakeet-ctc-1.1b-asr",name:"Parakeet CTC 1.1B",type:"stt",params:["language"]}],nebius:[{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B Instruct"},{id:"Qwen/Qwen3-Embedding-8B",name:"Qwen3 Embedding 8B",type:"embedding"}],"voyage-ai":[{id:"voyage-3-large",name:"Voyage 3 Large",type:"embedding"},{id:"voyage-3.5",name:"Voyage 3.5",type:"embedding"},{id:"voyage-3.5-lite",name:"Voyage 3.5 Lite",type:"embedding"},{id:"voyage-code-3",name:"Voyage Code 3",type:"embedding"},{id:"voyage-finance-2",name:"Voyage Finance 2",type:"embedding"},{id:"voyage-law-2",name:"Voyage Law 2",type:"embedding"},{id:"voyage-multilingual-2",name:"Voyage Multilingual 2",type:"embedding"}],siliconflow:[{id:"deepseek-ai/DeepSeek-V3.2",name:"DeepSeek V3.2"},{id:"deepseek-ai/DeepSeek-V3.1",name:"DeepSeek V3.1"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"Qwen/Qwen3-235B-A22B-Instruct-2507",name:"Qwen3 235B"},{id:"Qwen/Qwen3-Coder-480B-A35B-Instruct",name:"Qwen3 Coder 480B"},{id:"Qwen/Qwen3-32B",name:"Qwen3 32B"},{id:"moonshotai/Kimi-K2.5",name:"Kimi K2.5"},{id:"zai-org/GLM-4.7",name:"GLM 4.7"},{id:"openai/gpt-oss-120b",name:"GPT OSS 120B"},{id:"baidu/ERNIE-4.5-300B-A47B",name:"ERNIE 4.5 300B"}],"xiaomi-mimo":[{id:"mimo-v2.5-pro",name:"MiMo V2.5 Pro"},{id:"mimo-v2.5",name:"MiMo V2.5"},{id:"mimo-v2-omni",name:"MiMo V2 Omni"},{id:"mimo-v2-flash",name:"MiMo V2 Flash"}],hyperbolic:[{id:"Qwen/QwQ-32B",name:"QwQ 32B"},{id:"deepseek-ai/DeepSeek-R1",name:"DeepSeek R1"},{id:"deepseek-ai/DeepSeek-V3",name:"DeepSeek V3"},{id:"meta-llama/Llama-3.3-70B-Instruct",name:"Llama 3.3 70B"},{id:"meta-llama/Llama-3.2-3B-Instruct",name:"Llama 3.2 3B"},{id:"Qwen/Qwen2.5-72B-Instruct",name:"Qwen 2.5 72B"},{id:"Qwen/Qwen2.5-Coder-32B-Instruct",name:"Qwen 2.5 Coder 32B"},{id:"NousResearch/Hermes-3-Llama-3.1-70B",name:"Hermes 3 70B"}],ollama:[{id:"gpt-oss:120b",name:"GPT OSS 120B"},{id:"kimi-k2.5",name:"Kimi K2.5"},{id:"glm-5",name:"GLM 5"},{id:"minimax-m2.5",name:"MiniMax M2.5"},{id:"glm-4.7-flash",name:"GLM 4.7 Flash"},{id:"qwen3.5",name:"Qwen3.5"}],vertex:[{id:"gemini-3.1-pro-preview",name:"Gemini 3.1 Pro Preview"},{id:"gemini-3.1-flash-lite-preview",name:"Gemini 3.1 Flash Lite Preview"},{id:"gemini-3-flash-preview",name:"Gemini 3 Flash Preview"},{id:"gemini-2.5-flash",name:"Gemini 2.5 Flash"}],"vertex-partner":[{id:"deepseek-ai/deepseek-v3.2-maas",name:"DeepSeek V3.2 (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-thinking-maas",name:"Qwen3 Next 80B Thinking (Vertex)"},{id:"qwen/qwen3-next-80b-a3b-instruct-maas",name:"Qwen3 Next 80B Instruct (Vertex)"},{id:"zai-org/glm-5-maas",name:"GLM-5 (Vertex)"}],"grok-web":[{id:"grok-3",name:"Grok 3"},{id:"grok-3-mini",name:"Grok 3 Mini (Thinking)"},{id:"grok-3-thinking",name:"Grok 3 Thinking"},{id:"grok-4",name:"Grok 4"},{id:"grok-4-mini",name:"Grok 4 Mini (Thinking)"},{id:"grok-4-thinking",name:"Grok 4 Thinking"},{id:"grok-4-heavy",name:"Grok 4 Heavy (SuperGrok)"},{id:"grok-4.1-mini",name:"Grok 4.1 Mini (Thinking)"},{id:"grok-4.1-fast",name:"Grok 4.1 Fast"},{id:"grok-4.1-expert",name:"Grok 4.1 Expert"},{id:"grok-4.1-thinking",name:"Grok 4.1 Thinking"},{id:"grok-4.2",name:"Grok 4.2 (4.20 Beta)"}],"perplexity-web":[{id:"pplx-auto",name:"Perplexity Auto (Free)"},{id:"pplx-sonar",name:"Perplexity Sonar"},{id:"pplx-gpt",name:"GPT-5.4 (via Perplexity)"},{id:"pplx-gemini",name:"Gemini 3.1 Pro (via Perplexity)"},{id:"pplx-sonnet",name:"Claude Sonnet 4.6 (via Perplexity)"},{id:"pplx-opus",name:"Claude Opus 4.6 (via Perplexity)"},{id:"pplx-nemotron",name:"Nemotron 3 Super (via Perplexity)"}],...(0,m.pp)(),nanobanana:[{id:"nanobanana-flash",name:"NanoBanana Flash",type:"image",params:["n","size"]},{id:"nanobanana-pro",name:"NanoBanana Pro",type:"image",params:["n","size"]}],sdwebui:[{id:"stable-diffusion-v1-5",name:"Stable Diffusion v1.5",type:"image",params:["n","size"]},{id:"sdxl-base-1.0",name:"SDXL Base 1.0",type:"image",params:["n","size"]}],comfyui:[{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"sdxl",name:"SDXL",type:"image",params:["n","size"]}],huggingface:[{id:"black-forest-labs/FLUX.1-schnell",name:"FLUX.1 Schnell",type:"image",params:[]},{id:"stabilityai/stable-diffusion-xl-base-1.0",name:"SDXL Base 1.0",type:"image",params:[]},{id:"openai/whisper-large-v3",name:"Whisper Large v3 (HF)",type:"stt",params:["language"]},{id:"openai/whisper-small",name:"Whisper Small (HF)",type:"stt",params:["language"]}],deepgram:[{id:"nova-3",name:"Nova 3",type:"stt",params:["language"]},{id:"nova-2",name:"Nova 2",type:"stt",params:["language"]},{id:"whisper-large",name:"Whisper Large",type:"stt",params:["language"]}],assemblyai:[{id:"universal-3-pro",name:"Universal 3 Pro",type:"stt",params:["language"]},{id:"universal-2",name:"Universal 2",type:"stt",params:["language"]}],"fal-ai":[{id:"fal-ai/flux/schnell",name:"FLUX Schnell",type:"image",params:["n","size"]},{id:"fal-ai/flux/dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1",name:"FLUX Pro v1.1",type:"image",params:["n","size"]},{id:"fal-ai/flux-pro/v1.1-ultra",name:"FLUX Pro v1.1 Ultra",type:"image",params:["n","size"]},{id:"fal-ai/recraft-v3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"fal-ai/ideogram/v2",name:"Ideogram V2",type:"image",params:["n","size","style"]},{id:"fal-ai/stable-diffusion-v35-large",name:"SD 3.5 Large",type:"image",params:["n","size"]}],"stability-ai":[{id:"stable-image-ultra",name:"Stable Image Ultra",type:"image",params:["size"]},{id:"stable-image-core",name:"Stable Image Core",type:"image",params:["size","style"]},{id:"sd3.5-large",name:"Stable Diffusion 3.5 Large",type:"image",params:["size"]},{id:"sd3.5-large-turbo",name:"Stable Diffusion 3.5 Large Turbo",type:"image",params:["size"]},{id:"sd3.5-medium",name:"Stable Diffusion 3.5 Medium",type:"image",params:["size"]}],"black-forest-labs":[{id:"flux-pro-1.1",name:"FLUX Pro 1.1",type:"image",params:["n","size"]},{id:"flux-pro-1.1-ultra",name:"FLUX Pro 1.1 Ultra",type:"image",params:["size"]},{id:"flux-pro",name:"FLUX Pro",type:"image",params:["n","size"]},{id:"flux-dev",name:"FLUX Dev",type:"image",params:["n","size"]},{id:"flux-kontext-pro",name:"FLUX Kontext Pro (Edit)",type:"image",params:["size"],capabilities:["edit"]},{id:"flux-kontext-max",name:"FLUX Kontext Max (Edit)",type:"image",params:["size"],capabilities:["edit"]}],recraft:[{id:"recraftv3",name:"Recraft V3",type:"image",params:["n","size","style"]},{id:"recraftv2",name:"Recraft V2",type:"image",params:["n","size","style"]}],runwayml:[{id:"gen4_image",name:"Gen-4 Image",type:"image",params:["size"]},{id:"gen4_image_turbo",name:"Gen-4 Image Turbo",type:"image",params:["size"]},{id:"gen4_turbo",name:"Gen-4 Turbo",type:"video",params:[]},{id:"gen3a_turbo",name:"Gen-3 Alpha Turbo",type:"video",params:[]}]},p={claude:"cc",codex:"cx","gemini-cli":"gc",qwen:"qw",iflow:"if",antigravity:"ag",github:"gh",kiro:"kr",cursor:"cu","kimi-coding":"kmc",kilocode:"kc",cline:"cl",opencode:"oc",vertex:"vertex","vertex-partner":"vertex-partner"},c=Object.fromEntries(Object.keys(r).map(e=>[e,p[e]||e]));function h(e){return l[c[e]||e]||[]}},98814:(e,a,i)=>{i.d(a,{ThemeProvider:()=>s});var t=i(73365),n=i(1521),o=i(83789);function s({children:e}){let{initTheme:a}=(0,o.A)();return(0,n.useEffect)(()=>{a()},[a]),(0,t.jsx)(t.Fragment,{children:e})}}}]); \ No newline at end of file diff --git a/cli/app/.next/static/chunks/5158-4b48a3595c794bbc.js b/cli/app/.next/static/chunks/5158-4b48a3595c794bbc.js new file mode 100644 index 00000000000..19bcd8bd987 --- /dev/null +++ b/cli/app/.next/static/chunks/5158-4b48a3595c794bbc.js @@ -0,0 +1,32 @@ +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[5158],{116:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unresolvedThenable",{enumerable:!0,get:function(){return r}});let r={then:()=>{}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},993:(e,t)=>{"use strict";let r;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"handleISRError",{enumerable:!0,get:function(){return n}});function n({error:e}){if(r){let t=r.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1076:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientPageRoot",{enumerable:!0,get:function(){return i}});let n=r(73365),a=r(96745),u=r(1521),l=r(73452),o=r(82840);function i({Component:e,serverProvidedParams:t}){let s,c;if(null!==t)s=t.searchParams,c=t.params;else{let e=(0,u.use)(a.LayoutRouterContext);c=null!==e?e.parentParams:{},s=(0,l.urlSearchParamsToParsedUrlQuery)((0,u.use)(o.SearchParamsContext))}{let{createRenderSearchParamsFromClient:t}=r(83435),a=t(s),{createRenderParamsFromClient:u}=r(9580),l=u(c);return(0,n.jsx)(e,{params:l,searchParams:a})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1138:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hasInterceptionRouteInCurrentTree",{enumerable:!0,get:function(){return function e([t,r]){if(Array.isArray(t)&&("di(..)(..)"===t[2]||"ci(..)(..)"===t[2]||"di(.)"===t[2]||"ci(.)"===t[2]||"di(..)"===t[2]||"ci(..)"===t[2]||"di(...)"===t[2]||"ci(...)"===t[2])||"string"==typeof t&&(0,n.isInterceptionRouteAppPath)(t))return!0;if(r){for(let t in r)if(e(r[t]))return!0}return!1}}});let n=r(26561);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},1521:(e,t,r)=>{"use strict";e.exports=r(69664)},2118:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={completeHardNavigation:function(){return R},completeSoftNavigation:function(){return P},completeTraverseNavigation:function(){return S},convertServerPatchToFullTree:function(){return O},navigate:function(){return g},navigateToKnownRoute:function(){return v}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(65944),l=r(41116),o=r(64537),i=r(81315),s=r(60798),c=r(59902),f=r(17640);r(36381);let d=r(96697);r(67808);let p=r(70892),h=r(9156),y=r(10301),_=r(49102);function g(e,t,r,n,a,u,l,o,i,c){return function(e,t,r,n,a,u,l,o,i,c){let d=Date.now(),p=t.href,h=(0,f.createCacheKey)(p,l),y=(0,s.readRouteCacheEntry)(d,h);if(null!==y&&y.status===s.EntryStatus.Fulfilled)return m(d,e,t,r,n,l,a,u,o,i,c,y);if(null===y||y.status!==s.EntryStatus.Rejected){let f=(0,s.deprecated_requestOptimisticRouteCacheEntry)(d,t,l);if(null!==f)return m(d,e,t,r,n,l,a,u,o,i,c,f)}return E(d,e,t,r,n,l,a,u,o,i,c).catch(()=>e)}(e,t,r,n,a,u,l,o,i,c)}function v(e,t,r,n,a,u,o,i,s,c,f,d,p,h,y){let _={separateRefreshUrls:null,scrollRef:null},g=r.href===u.href,v=(0,l.startPPRNavigation)(e,u,o,i,s,a.routeTree,a.metadataVaryPath,c,a.data,a.head,a.dynamicStaleAt,g,_);return null!==v?(c!==l.FreshnessPolicy.Gesture&&(0,l.spawnDynamicRequests)(v,r,f,c,_,y,p),P(t,r,f,v.route,v.node,a.renderedSearch,n,p,d,_.scrollRef,h)):R(t,r,p)}function m(e,t,r,n,a,u,l,o,i,s,c,f){let d=f.tree,p=f.canonicalUrl+r.hash,h={renderedSearch:f.renderedSearch,routeTree:d,metadataVaryPath:f.metadata.varyPath,data:null,head:null,dynamicStaleAt:(0,_.computeDynamicStaleAt)(e,_.UnknownDynamicStaleTime)};return v(e,t,r,p,h,n,a,l,o,i,u,s,c,null,f)}let b=["",{},null,"refetch"];async function E(e,t,r,n,a,f,p,h,y,_,g){let m;switch(y){case l.FreshnessPolicy.Default:case l.FreshnessPolicy.HistoryTraversal:case l.FreshnessPolicy.Gesture:m=h;break;case l.FreshnessPolicy.Hydration:case l.FreshnessPolicy.RefreshAll:case l.FreshnessPolicy.HMRRefresh:m=b;break;default:m=h}let E=(0,u.fetchServerResponse)(r,{flightRouterState:m,nextUrl:f}),P=await E;if("string"==typeof P)return R(t,new URL(P,location.origin),g);let{flightData:S,canonicalUrl:T,renderedSearch:j,couldBeIntercepted:w,supportsPerSegmentPrefetching:A,dynamicStaleTime:C,staticStageData:x,runtimePrefetchStream:M,responseHeaders:N,debugInfo:I}=P,D=O(e,h,S,j,C),F=D.metadataVaryPath;if(null!==F){if((0,c.discoverKnownRoute)(e,r.pathname,f,null,D.routeTree,F,w,(0,o.createHrefFromUrl)(T),A,!1),null!==x){let{response:t,isResponsePartial:r}=x;(0,s.getStaleAt)(e,t.s).then(n=>{let a=N.get(i.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;(0,s.writeStaticStageResponseIntoCache)(e,t.f,a,t.h,n,h,j,r)}).catch(()=>{})}null!==M&&(0,s.processRuntimePrefetchStream)(e,M,h,j).then(t=>{null!==t&&(0,s.writeDynamicRenderResponseIntoCache)(e,d.FetchStrategy.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return v(e,t,r,(0,o.createHrefFromUrl)(T),D,n,a,p,h,y,f,_,g,I,null)}function R(e,t,r){return(0,y.isJavaScriptURLString)(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?(0,o.createHrefFromUrl)(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function P(e,t,r,n,a,u,l,o,i,s,c){let f,d,y=(0,h.computeChangedPath)(e.tree,n)||e.nextUrl,_=new URL(e.canonicalUrl,t),g=t.pathname===_.pathname&&t.search===_.search&&t.hash!==_.hash;if(i===p.ScrollBehavior.NoScroll)null!==s&&(s.current=!1),f=e.focusAndScrollRef.scrollRef,d=!1;else if(g){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==s&&(s.current=!1),f={current:!0},d=!0}else{if(f=s,null!==s){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}d=!1}return{canonicalUrl:l,renderedSearch:u,pushRef:{pendingPush:"push"===o,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:f,forceScroll:d,onlyHashChange:g,hashFragment:i!==p.ScrollBehavior.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:y,previousNextUrl:r,debugInfo:c}}function S(e,t,r,n,a,u){return{canonicalUrl:(0,o.createHrefFromUrl)(t),renderedSearch:r,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:e.focusAndScrollRef,cache:n,tree:a,nextUrl:u,previousNextUrl:null,debugInfo:null}}function O(e,t,r,n,a){let u=t,l=null,o=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:i}of r){let r=function e(t,r,n,a,u,l,o){let i;if(o===u.length)return{tree:n,data:a};let s=u[o],c=t[1],f=null!==r?r[1]:null,d={},p={};for(let t in c){let r=c[t],i=null!==f?f[t]??null:null;if(t===s){let s=e(r,i,n,a,u,l,o+2);d[t]=s.tree,p[t]=s.data}else d[t]=r,p[t]=i}if(i=[t[0],d],2 in t){let e=t[2];null!=e&&(i[2]=[e[0],l])}return 3 in t&&(i[3]=t[3]),4 in t&&(i[4]=t[4]),{tree:i,data:[null,p,null,!0,null]}}(u,l,t,a,e,n,0);u=r.tree,l=r.data,o=i}let i=u,c={metadataVaryPath:null};return{routeTree:(0,s.convertRootFlightRouterStateToRouteTree)(i,n,c),metadataVaryPath:c.metadataVaryPath,data:l,renderedSearch:n,head:o,dynamicStaleAt:(0,_.computeDynamicStaleAt)(e,a)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4084:()=>{"trimStart"in String.prototype||(String.prototype.trimStart=String.prototype.trimLeft),"trimEnd"in String.prototype||(String.prototype.trimEnd=String.prototype.trimRight),"description"in Symbol.prototype||Object.defineProperty(Symbol.prototype,"description",{configurable:!0,get:function(){var e=/\((.*)\)/.exec(this.toString());return e?e[1]:void 0}}),Array.prototype.flat||(Array.prototype.flat=function(e,t){return t=this.concat.apply([],this),e>1&&t.some(Array.isArray)?t.flat(e-1):t},Array.prototype.flatMap=function(e,t){return this.map(e,t).flat()}),Promise.prototype.finally||(Promise.prototype.finally=function(e){if("function"!=typeof e)return this.then(e,e);var t=this.constructor||Promise;return this.then(function(r){return t.resolve(e()).then(function(){return r})},function(r){return t.resolve(e()).then(function(){throw r})})}),Object.fromEntries||(Object.fromEntries=function(e){return Array.from(e).reduce(function(e,t){return e[t[0]]=t[1],e},{})}),Array.prototype.at||(Array.prototype.at=function(e){var t=Math.trunc(e)||0;if(t<0&&(t+=this.length),!(t<0||t>=this.length))return this[t]}),Object.hasOwn||(Object.hasOwn=function(e,t){if(null==e)throw TypeError("Cannot convert undefined or null to object");return Object.prototype.hasOwnProperty.call(Object(e),t)}),"canParse"in URL||(URL.canParse=function(e,t){try{return new URL(e,t),!0}catch(e){return!1}})},4134:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"RedirectStatusCode",{enumerable:!0,get:function(){return n}});var r,n=((r={})[r.SeeOther=303]="SeeOther",r[r.TemporaryRedirect=307]="TemporaryRedirect",r[r.PermanentRedirect=308]="PermanentRedirect",r);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},4297:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return o}});let n=r(21512),a=r(73365),u=n._(r(1521)),l=r(96745);function o(){let e=(0,u.useContext)(l.TemplateContext);return(0,a.jsx)(a.Fragment,{children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5057:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={onCaughtError:function(){return d},onUncaughtError:function(){return p}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(12563),l=r(10324),o=r(24104),i=r(44324),s=r(62404),c=u._(r(57567)),f={decorateDevError:e=>e,handleClientError:()=>{},originConsoleError:console.error.bind(console)};function d(e,t){let r,n=t.errorBoundary?.constructor;if(r=r||n===s.ErrorBoundaryHandler&&t.errorBoundary.props.errorComponent===c.default)return p(e);(0,o.isBailoutToCSRError)(e)||(0,l.isNextRouterError)(e)||f.originConsoleError(e)}function p(e){(0,o.isBailoutToCSRError)(e)||(0,l.isNextRouterError)(e)||(0,i.reportGlobalError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},5935:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"PrefetchHint",{enumerable:!0,get:function(){return n}});var r,n=((r={})[r.HasRuntimePrefetch=1]="HasRuntimePrefetch",r[r.SubtreeHasInstant=2]="SubtreeHasInstant",r[r.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",r[r.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",r[r.IsRootLayout=16]="IsRootLayout",r[r.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",r[r.InlinedIntoChild=64]="InlinedIntoChild",r[r.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",r[r.HeadOutlined=256]="HeadOutlined",r)},6550:(e,t,r)=>{"use strict";e.exports=r(51677)},8276:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isRecoverableError:function(){return c},onRecoverableError:function(){return f}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(12563),l=r(24104),o=u._(r(38785)),i=r(44324),s=new WeakSet;function c(e){return s.has(e)}let f=e=>{let t=(0,o.default)(e)&&"cause"in e?e.cause:e;(0,l.isBailoutToCSRError)(t)||(0,i.reportGlobalError)(t)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8312:(e,t,r)=>{"use strict";let n,a;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return F}});let u=r(12563),l=r(21512),o=r(73365),i=l._(r(1521)),s=r(96745),c=r(70892),f=r(64537),d=r(82840),p=r(52625),h=r(80124),y=r(24314),_=r(26612),g=r(63565),v=r(116),m=r(39836),b=r(91212),E=r(9156),R=r(88422),P=r(97488),S=r(40819),O=r(42508),T=r(67808),j=u._(r(21875)),w=u._(r(57567)),A=r(31872),C=r(68491),x={};function M({appRouterState:e}){return(0,i.useInsertionEffect)(()=>{let{tree:t,pushRef:r,canonicalUrl:n,renderedSearch:a}=e,u={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:a}};r.pendingPush&&(0,f.createHrefFromUrl)(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(u,"",n)):window.history.replaceState(u,"",n),(0,h.setLastCommittedTree)(t)},[e]),(0,i.useEffect)(()=>{(0,T.pingVisibleLinks)(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function N(e){null==e&&(e={});let t=window.history.state,r=t?.__NA;r&&(e.__NA=r);let n=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function I({headCacheNode:e}){let t=null!==e?e.head:null,r=null!==e?e.prefetchHead:null,n=null!==r?r:t;return(0,i.useDeferredValue)(t,n)}function D({actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n}){let a,u=(0,p.useActionQueue)(e),{canonicalUrl:l}=u,{searchParams:f,pathname:h}=(0,i.useMemo)(()=>{let e=new URL(l,window.location.href);return{searchParams:e.searchParams,pathname:(0,b.hasBasePath)(e.pathname)?(0,m.removeBasePath)(e.pathname):e.pathname}},[l]);(0,i.useEffect)(()=>{let e=(0,E.extractSourcePageFromFlightRouterState)(u.tree);void 0!==e?window.next.__internal_src_page=e:delete window.next.__internal_src_page},[u.tree]),(0,i.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(x.pendingMpaPath=void 0,(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,i.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,O.isRedirectError)(t)){e.preventDefault();let r=(0,S.getURLFromRedirectError)(t);"push"===(0,S.getRedirectTypeFromError)(t)?P.publicAppRouterInstance.push(r,{}):P.publicAppRouterInstance.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:R}=u;if(R.mpaNavigation){if(x.pendingMpaPath!==l){let e=window.location;R.pendingPush?e.assign(l):e.replace(l),x.pendingMpaPath=l}throw v.unresolvedThenable}(0,i.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{let t=window.location.href,r=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,i.startTransition)(()=>{(0,p.dispatchAppRouterAction)({type:c.ACTION_RESTORE,url:new URL(e??t,t),historyState:r})})};window.history.pushState=function(t,n,a){return t?.__NA||t?._N||(t=N(t),a&&r(a)),e(t,n,a)},window.history.replaceState=function(e,n,a){return e?.__NA||e?._N||(e=N(e),a&&r(a)),t(e,n,a)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,i.startTransition)(()=>{(0,P.dispatchTraverseAction)(window.location.href,e.state.__PRIVATE_NEXTJS_INTERNALS_TREE)})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:T,tree:w,nextUrl:C,focusAndScrollRef:F,previousNextUrl:U}=u,k=(0,i.useMemo)(()=>(0,g.findHeadInCache)(T,w[1]),[T,w]),H=(0,i.useMemo)(()=>(0,E.getSelectedParams)(w),[w]),B=(0,i.useMemo)(()=>({parentTree:w,parentCacheNode:T,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:l,isActive:!0}),[w,T,l]),V=(0,i.useMemo)(()=>({tree:w,focusAndScrollRef:F,nextUrl:C,previousNextUrl:U}),[w,F,C,U]);if(null!==k){let[e,t,r]=k;a=(0,o.jsx)(I,{headCacheNode:e},t)}else a=null;let X=(0,o.jsxs)(_.RedirectBoundary,{children:[a,(0,o.jsx)(A.RootLayoutBoundary,{children:T.rsc}),(0,o.jsx)(y.AppRouterAnnouncer,{tree:w})]});return X=(0,o.jsx)(j.default,{errorComponent:t[0],errorStyles:t[1],children:X}),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(M,{appRouterState:u}),(0,o.jsx)(L,{}),(0,o.jsx)(d.NavigationPromisesContext.Provider,{value:null,children:(0,o.jsx)(d.PathParamsContext.Provider,{value:H,children:(0,o.jsx)(d.PathnameContext.Provider,{value:h,children:(0,o.jsx)(d.SearchParamsContext.Provider,{value:f,children:(0,o.jsx)(s.GlobalLayoutRouterContext.Provider,{value:V,children:(0,o.jsx)(s.AppRouterContext.Provider,{value:P.publicAppRouterInstance,children:(0,o.jsx)(s.LayoutRouterContext.Provider,{value:B,children:X})})})})})})})]})}function F({actionQueue:e,globalErrorState:t,webSocket:r,staticIndicatorState:n}){(0,R.useNavFailureHandler)();let a=(0,o.jsx)(D,{actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n});return(0,o.jsx)(j.default,{errorComponent:w.default,children:a})}function L(){let[,e]=i.default.useState(0),t=n?.size??0;(0,i.useEffect)(()=>{if(!n||!a)return;let r=()=>e(e=>e+1);return a.add(r),t!==n.size&&r(),()=>{a.delete(r)}},[t,e]);let r=(0,C.getAssetTokenQuery)();return[...n||[]].map((e,t)=>(0,o.jsx)("link",{rel:"stylesheet",href:`${e}${r}`,precedence:"next"},t))}n=new Set,a=new Set,globalThis._N_E_STYLE_LOAD=function(e){if(!n||!a)return Promise.resolve();let t=n.size;return n.add(e),n.size!==t&&a.forEach(e=>e()),Promise.resolve()},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},8666:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={GracefulDegradeBoundary:function(){return o},default:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(73365),l=r(1521);class o extends l.Component{constructor(e){super(e),this.state={hasError:!1},this.rootHtml="",this.htmlAttributes={},this.htmlRef=(0,l.createRef)()}static getDerivedStateFromError(e){return{hasError:!0}}componentDidMount(){let e=this.htmlRef.current;this.state.hasError&&e&&Object.entries(this.htmlAttributes).forEach(([t,r])=>{e.setAttribute(t,r)})}render(){let{hasError:e}=this.state;return(this.rootHtml||(this.rootHtml=document.documentElement.innerHTML,this.htmlAttributes=function(e){let t={};for(let r=0;r{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useUntrackedPathname",{enumerable:!0,get:function(){return u}});let n=r(1521),a=r(82840);function u(){return(0,n.useContext)(a.PathnameContext)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9156:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={computeChangedPath:function(){return p},extractPathFromFlightRouterState:function(){return f},extractSourcePageFromFlightRouterState:function(){return d},getSelectedParams:function(){return function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),u=a?t[1]:t;!u||u.startsWith(l.PAGE_SEGMENT_KEY)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r}}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(26561),l=r(72201),o=r(38025),i=e=>"/"===e[0]?e.slice(1):e,s=e=>"string"==typeof e?"children"===e?"":e:e[1];function c(e){return e.reduce((e,t)=>""===(t=i(t))||(0,l.isGroupSegment)(t)?e:`${e}/${t}`,"")||"/"}function f(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===l.DEFAULT_SEGMENT_KEY||u.INTERCEPTION_ROUTE_MARKERS.some(e=>t.startsWith(e)))return;if(t.startsWith(l.PAGE_SEGMENT_KEY))return"";let r=[s(t)],n=e[1]??{},a=n.children?f(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=f(t);void 0!==n&&r.push(n)}return c(r)}function d(e){let t=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(l.PAGE_SEGMENT_KEY)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===l.DEFAULT_SEGMENT_KEY)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[i(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[i(r),...n]}}(e);return t?`/${t.join("/")}`:void 0}function p(e,t){let r=function e(t,r){let[n,a]=t,[l,i]=r,c=s(n),d=s(l);if(u.INTERCEPTION_ROUTE_MARKERS.some(e=>c.startsWith(e)||d.startsWith(e)))return"";if(!(0,o.matchSegment)(n,l))return f(r)??"";for(let t in a)if(i[t]){let r=e(a[t],i[t]);if(null!==r)return`${s(l)}/${r}`}return null}(e,t);return null==r||"/"===r?r:c(r.split("/"))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},9580:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let n=r(68659).createRenderParamsFromClient;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},10301:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isJavaScriptURLString",{enumerable:!0,get:function(){return n}});let r=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function n(e){return r.test(""+e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},10324:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNextRouterError",{enumerable:!0,get:function(){return u}});let n=r(93028),a=r(42508);function u(e){return(0,a.isRedirectError)(e)||(0,n.isHTTPAccessFallbackError)(e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},11031:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return function e(t){if((0,a.isNextRouterError)(t)||(0,n.isBailoutToCSRError)(t))throw t;t instanceof Error&&"cause"in t&&e(t.cause)}}});let n=r(24104),a=r(10324);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},11320:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(4084),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},12220:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reducer",{enumerable:!0,get:function(){return c}});let n=r(70892),a=r(83548),u=r(81839),l=r(34721),o=r(63260),i=r(72262),s=r(60687),c=function(e,t){switch(t.type){case n.ACTION_NAVIGATE:return(0,a.navigateReducer)(e,t);case n.ACTION_SERVER_PATCH:return(0,u.serverPatchReducer)(e,t);case n.ACTION_RESTORE:return(0,l.restoreReducer)(e,t);case n.ACTION_REFRESH:return(0,o.refreshReducer)(e,t);case n.ACTION_HMR_REFRESH:return(0,i.hmrRefreshReducer)(e);case n.ACTION_SERVER_ACTION:return(0,s.serverActionReducer)(e,t);default:throw Object.defineProperty(Error("Unknown action"),"__NEXT_ERROR_CODE",{value:"E295",enumerable:!1,configurable:!0})}};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},12260:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HeadManagerContext",{enumerable:!0,get:function(){return n}});let n=r(12563)._(r(1521)).default.createContext({})},12563:(e,t,r)=>{"use strict";function n(e){return e&&e.__esModule?e:{default:e}}r.r(t),r.d(t,{_:()=>n})},12569:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"IconMark",{enumerable:!0,get:function(){return n}}),r(73365);let n=()=>null},14594:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderSearchParamsFromClient",{enumerable:!0,get:function(){return n}});let r=new WeakMap;function n(e){let t=r.get(e);if(t)return t;let n=Promise.resolve(e);return r.set(e,n),n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},14860:(e,t,r)=>{"use strict";e.exports=r(64633)},17640:(e,t)=>{"use strict";function r(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createCacheKey",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},18423:(e,t,r)=>{"use strict";e.exports=r(50252)},18948:(e,t,r)=>{"use strict";let n,a,u,l;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hydrate",{enumerable:!0,get:function(){return k}});let o=r(12563),i=r(73365);r(11320);let s=o._(r(51023)),c=o._(r(1521)),f=r(18423),d=r(12260),p=r(8276),h=r(5057),y=r(90476),_=r(33200),g=r(97488),v=o._(r(8312)),m=r(58037);r(96745);let b=r(53739),E=r(68491),R=r(34225),P=f.createFromReadableStream,S=f.createFromFetch,O=document,T=self.__next_instant_test?self.__next_instant_test:void 0,j=new TextEncoder,w=!1,A=!1,C=null;function x(e){if(0===e[0])u=[];else if(1===e[0]){if(!u)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});l?l.enqueue(j.encode(e[1])):u.push(e[1])}else if(2===e[0])C=e[1];else if(3===e[0]){if(!u)throw Object.defineProperty(Error("Unexpected server data: missing bootstrap script."),"__NEXT_ERROR_CODE",{value:"E18",enumerable:!1,configurable:!0});let r=atob(e[1]),n=new Uint8Array(r.length);for(var t=0;t{e.enqueue("string"==typeof t?j.encode(t):t)}),w&&!A)&&(null===e.desiredSize||e.desiredSize<0?T||e.error(Object.defineProperty(Error("The connection to the page was unexpectedly closed, possibly due to the stop button being clicked, loss of Wi-Fi, or an unstable internet connection."),"__NEXT_ERROR_CODE",{value:"E117",enumerable:!1,configurable:!0})):e.close(),A=!0,u=void 0),l=e}});if(T)a=Promise.resolve(S(T,{callServer:y.callServer,findSourceMapURL:_.findSourceMapURL,debugChannel:n,unstable_allowPartialStream:!0})).then(async e=>(0,b.createInitialRSCPayloadFromFallbackPrerender)(await T,e));else if(window.__NEXT_CLIENT_RESUME){let e=window.__NEXT_CLIENT_RESUME;a=Promise.resolve(S(e,{callServer:y.callServer,findSourceMapURL:_.findSourceMapURL,debugChannel:n})).then(async t=>(0,b.createInitialRSCPayloadFromFallbackPrerender)(await e,t))}else a=P(I,{callServer:y.callServer,findSourceMapURL:_.findSourceMapURL,debugChannel:n,startTime:0});function D({initialRSCPayload:e,actionQueue:t,webSocket:r,staticIndicatorState:n}){return(0,i.jsx)(v.default,{actionQueue:t,globalErrorState:e.G,webSocket:r,staticIndicatorState:n})}let F=c.default.StrictMode;function L({children:e}){return e}let U={onDefaultTransitionIndicator:function(){return()=>{}},onRecoverableError:p.onRecoverableError,onCaughtError:h.onCaughtError,onUncaughtError:h.onUncaughtError};async function k(e,t){let r,n,u=await a;u.b?(0,R.setNavigationBuildId)(u.b):(0,R.setNavigationBuildId)((0,E.getDeploymentId)());let l=Date.now(),o=(0,g.createMutableActionQueue)((0,m.createInitialRouterState)({navigatedAt:l,initialRSCPayload:u,initialFlightStreamForCache:null,location:window.location}),e),f=(0,i.jsx)(F,{children:(0,i.jsx)(d.HeadManagerContext.Provider,{value:{appDir:!0},children:(0,i.jsx)(L,{children:(0,i.jsx)(D,{initialRSCPayload:u,actionQueue:o,webSocket:n,staticIndicatorState:r})})})});"__next_error__"===document.documentElement.id?s.default.createRoot(O,U).render(f):c.default.startTransition(()=>{s.default.hydrateRoot(O,f,{...U,formState:C})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},19444:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={ActionDidNotRevalidate:function(){return a},ActionDidRevalidateDynamicOnly:function(){return l},ActionDidRevalidateStaticAndDynamic:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let a=0,u=1,l=2},21505:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return o.ReadonlyURLSearchParams},RedirectType:function(){return f.RedirectType},ServerInsertedHTMLContext:function(){return s.ServerInsertedHTMLContext},forbidden:function(){return f.forbidden},notFound:function(){return f.notFound},permanentRedirect:function(){return f.permanentRedirect},redirect:function(){return f.redirect},unauthorized:function(){return f.unauthorized},unstable_isUnrecognizedActionError:function(){return c.unstable_isUnrecognizedActionError},unstable_rethrow:function(){return f.unstable_rethrow},useParams:function(){return b},usePathname:function(){return v},useRouter:function(){return m},useSearchParams:function(){return g},useSelectedLayoutSegment:function(){return R},useSelectedLayoutSegments:function(){return E},useServerInsertedHTML:function(){return s.useServerInsertedHTML}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(21512)._(r(1521)),l=r(96745),o=r(82840),i=r(72201),s=r(92914),c=r(80690),f=r(58796),d,p,{instrumentParamsForClientValidation:h,instrumentSearchParamsForClientValidation:y,expectCompleteParamsInClientValidation:_}={};function g(){p?.("useSearchParams()");let e=(0,u.useContext)(o.SearchParamsContext);return(0,u.useMemo)(()=>e?new o.ReadonlyURLSearchParams(e):null,[e])}function v(){return d?.("usePathname()"),(0,u.useContext)(o.PathnameContext)}function m(){let e=(0,u.useContext)(l.AppRouterContext);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function b(){return d?.("useParams()"),(0,u.useContext)(o.PathParamsContext)}function E(e="children"){d?.("useSelectedLayoutSegments()");let t=(0,u.useContext)(l.LayoutRouterContext);return t?(0,i.getSelectedLayoutSegmentPath)(t.parentTree,e):null}function R(e="children"){d?.("useSelectedLayoutSegment()"),(0,u.useContext)(o.NavigationPromisesContext);let t=E(e);return(0,i.computeSelectedLayoutSegment)(t,e)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},21512:(e,t,r)=>{"use strict";function n(e){if("function"!=typeof WeakMap)return null;var t=new WeakMap,r=new WeakMap;return(n=function(e){return e?r:t})(e)}function a(e,t){if(!t&&e&&e.__esModule)return e;if(null===e||"object"!=typeof e&&"function"!=typeof e)return{default:e};var r=n(t);if(r&&r.has(e))return r.get(e);var a={__proto__:null},u=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var l in e)if("default"!==l&&Object.prototype.hasOwnProperty.call(e,l)){var o=u?Object.getOwnPropertyDescriptor(e,l):null;o&&(o.get||o.set)?Object.defineProperty(a,l,o):a[l]=e[l]}return a.default=e,r&&r.set(e,a),a}r.r(t),r.d(t,{_:()=>a})},21580:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"ClientSegmentRoot",{enumerable:!0,get:function(){return l}});let n=r(73365),a=r(96745),u=r(1521);function l({Component:e,slots:t,serverProvidedParams:o}){let i;if(null!==o)i=o.params;else{let e=(0,u.use)(a.LayoutRouterContext);i=null!==e?e.parentParams:{}}{let{createRenderParamsFromClient:a}=r(9580),u=a(i);return(0,n.jsx)(e,{...t,params:u})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},21875:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return i}});let n=r(12563),a=r(73365);r(1521);let u=n._(r(8666)),l=r(62404),o=(0,r(33260).isBot)(window.navigator.userAgent);function i({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return o?(0,a.jsx)(u.default,{children:e}):(0,a.jsx)(l.ErrorBoundary,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},22901:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={isNavigationLocked:function(){return i},startListeningForInstantNavigationCookie:function(){return u},transitionToCapturedSPA:function(){return l},updateCapturedSPAToTree:function(){return o},waitForNavigationLockIfActive:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});function u(){}function l(e,t){}function o(e,t){}function i(){return!1}async function s(){}r(77807),r(52625),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},24104:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={BailoutToCSRError:function(){return u},isBailoutToCSRError:function(){return l}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let a="BAILOUT_TO_CLIENT_SIDE_RENDERING";class u extends Error{constructor(e){super(`Bail out to client-side rendering: ${e}`),this.reason=e,this.digest=a}}function l(e){return"object"==typeof e&&null!==e&&"digest"in e&&e.digest===a}},24296:(e,t)=>{"use strict";function r(e){return null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isThenable",{enumerable:!0,get:function(){return r}})},24314:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"AppRouterAnnouncer",{enumerable:!0,get:function(){return l}});let n=r(1521),a=r(98196),u="next-route-announcer";function l({tree:e}){let[t,r]=(0,n.useState)(null);(0,n.useEffect)(()=>(r(function(){let e=document.getElementsByName(u)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(u);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(u)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[o,i]=(0,n.useState)(""),s=(0,n.useRef)(void 0);return(0,n.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==s.current&&s.current!==e&&i(e),s.current=e},[e]),t?(0,a.createPortal)(o,t):null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},26561:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={INTERCEPTION_ROUTE_MARKERS:function(){return l},extractInterceptionRouteInformation:function(){return i},isInterceptionRouteAppPath:function(){return o}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(28294),l=["(..)(..)","(.)","(..)","(...)"];function o(e){return void 0!==e.split("/").find(e=>l.find(t=>e.startsWith(t)))}function i(e){let t,r,n;for(let a of e.split("/"))if(r=l.find(e=>a.startsWith(e))){[t,n]=e.split(r,2);break}if(!t||!r||!n)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,u.normalizeAppPath)(t),r){case"(.)":n="/"===t?`/${n}`:t+"/"+n;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});n=t.split("/").slice(0,-1).concat(n).join("/");break;case"(...)":n="/"+n;break;case"(..)(..)":let a=t.split("/");if(a.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});n=a.slice(0,-2).concat(n).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:n}}},26612:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={RedirectBoundary:function(){return p},RedirectErrorBoundary:function(){return d}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(21512),l=r(73365),o=u._(r(1521)),i=r(21505),s=r(40819),c=r(42508);function f({redirect:e,reset:t,redirectType:r}){let n=(0,i.useRouter)();return(0,o.useEffect)(()=>{o.default.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class d extends o.default.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,c.isRedirectError)(e)){let t=(0,s.getURLFromRedirectError)(e),r=(0,s.getRedirectTypeFromError)(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,l.jsx)(f,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function p({children:e}){let t=(0,i.useRouter)();return(0,l.jsx)(d,{router:t,children:e})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},26783:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRouterCacheKey",{enumerable:!0,get:function(){return a}});let n=r(72201);function a(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(n.PAGE_SEGMENT_KEY)?n.PAGE_SEGMENT_KEY:e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},28294:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={compareAppPaths:function(){return i},normalizeAppPath:function(){return o},normalizeRscURL:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(90479),l=r(72201);function o(e){return(0,u.ensureLeadingSlash)(e.split("/").reduce((e,t,r,n)=>!t||(0,l.isGroupSegment)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function i(e,t){let r=e.includes("/@"),n=t.includes("/@");return r&&!n?-1:!r&&n?1:e.localeCompare(t)}function s(e){return e.replace(/\.rsc($|\?)/,"$1")}},28952:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={appendLayoutVaryPath:function(){return c},clonePageVaryPathWithNewSearchParams:function(){return g},finalizeLayoutVaryPath:function(){return f},finalizeMetadataVaryPath:function(){return y},finalizePageVaryPath:function(){return p},getFulfilledRouteVaryPath:function(){return s},getFulfilledSegmentVaryPath:function(){return function e(t,r){return{id:t.id,value:null===t.id||r.has(t.id)?t.value:l.Fallback,parent:null===t.parent?null:e(t.parent,r)}}},getPartialLayoutVaryPath:function(){return d},getPartialPageVaryPath:function(){return h},getRenderedSearchFromVaryPath:function(){return v},getRouteVaryPath:function(){return i},getSegmentVaryPathForRequest:function(){return _}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(96697),l=r(42661),o=r(82570);function i(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function s(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:l.Fallback,parent:null}}}}function c(e,t,r){return{id:r,value:t,parent:e}}function f(e,t){return{id:null,value:e,parent:t}}function d(e){return e.parent}function p(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function h(e){return e.parent.parent}function y(e,t,r){return{id:null,value:e+o.HEAD_REQUEST_KEY,parent:{id:"?",value:t,parent:r}}}function _(e,t){let r=t.varyPath;if(t.isPage&&e!==u.FetchStrategy.Full&&e!==u.FetchStrategy.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:l.Fallback,parent:e}}}return r}function g(e,t){let r=e.parent;return{id:null,value:e.value,parent:{id:"?",value:t,parent:r.parent}}}function v(e){let t=e.parent.value;return"string"==typeof t?t:null}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},29645:(e,t,r)=>{"use strict";function n(e,t={}){if(t.onlyHashChange)return void e();let r=document.documentElement;if("smooth"!==r.dataset.scrollBehavior)return void e();let a=r.style.scrollBehavior;r.style.scrollBehavior="auto",t.dontForceLayout||r.getClientRects(),e(),r.style.scrollBehavior=a}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"disableSmoothScrollDuringRouteTransition",{enumerable:!0,get:function(){return n}}),r(30208)},30208:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"warnOnce",{enumerable:!0,get:function(){return r}});let r=e=>{}},30457:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"useRouterBFCache",{enumerable:!0,get:function(){return a}});let n=r(1521);function a(e,t,r){let[a,u]=(0,n.useState)(()=>({tree:e,cacheNode:t,stateKey:r,next:null}));if(a.tree===e)return a;let l={tree:e,cacheNode:t,stateKey:r,next:null},o=1,i=a,s=l;for(;null!==i&&o<1;){if(i.stateKey===r){s.next=i.next;break}{o++;let e={tree:i.tree,cacheNode:i.cacheNode,stateKey:i.stateKey,next:null};s.next=e,s=e}i=i.next}return u(l),l}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},31872:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={MetadataBoundary:function(){return o},OutletBoundary:function(){return s},RootLayoutBoundary:function(){return c},ViewportBoundary:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(94649),l={[u.METADATA_BOUNDARY_NAME]:function({children:e}){return e},[u.VIEWPORT_BOUNDARY_NAME]:function({children:e}){return e},[u.OUTLET_BOUNDARY_NAME]:function({children:e}){return e},[u.ROOT_LAYOUT_BOUNDARY_NAME]:function({children:e}){return e}},o=l[u.METADATA_BOUNDARY_NAME.slice(0)],i=l[u.VIEWPORT_BOUNDARY_NAME.slice(0)],s=l[u.OUTLET_BOUNDARY_NAME.slice(0)],c=l[u.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]},33200:(e,t)=>{"use strict";let r;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findSourceMapURL",{enumerable:!0,get:function(){return r}});("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},33260:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={HTML_LIMITED_BOT_UA_RE:function(){return u.HTML_LIMITED_BOT_UA_RE},HTML_LIMITED_BOT_UA_RE_STRING:function(){return o},getBotType:function(){return c},isBot:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(39450),l=/Googlebot(?!-)|Googlebot$/i,o=u.HTML_LIMITED_BOT_UA_RE.source;function i(e){return u.HTML_LIMITED_BOT_UA_RE.test(e)}function s(e){return l.test(e)||i(e)}function c(e){return l.test(e)?"dom":i(e)?"html":void 0}},34225:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={getNavigationBuildId:function(){return l},setNavigationBuildId:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});let a="";function u(e){a=e}function l(){return a}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},34578:(e,t)=>{"use strict";function r(){let e,t,r=new Promise((r,n)=>{e=r,t=n});return{resolve:e,reject:t,promise:r}}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createPromiseWithResolvers",{enumerable:!0,get:function(){return r}})},34721:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"restoreReducer",{enumerable:!0,get:function(){return o}});let n=r(9156),a=r(41116),u=r(2118),l=r(49102);function o(e,t){let r,o,i=t.historyState;i?(r=i.tree,o=i.renderedSearch):(r=e.tree,o=e.renderedSearch);let s=new URL(e.canonicalUrl,location.origin),c=t.url,f=(0,n.extractPathFromFlightRouterState)(r)??c.pathname,d=Date.now(),p={separateRefreshUrls:null,scrollRef:null},h=(0,u.convertServerPatchToFullTree)(d,r,null,o,l.UnknownDynamicStaleTime),y=(0,a.startPPRNavigation)(d,s,e.renderedSearch,e.cache,e.tree,h.routeTree,h.metadataVaryPath,a.FreshnessPolicy.HistoryTraversal,null,null,h.dynamicStaleAt,!1,p);return null===y?(0,u.completeHardNavigation)(e,c,"replace"):((0,a.spawnDynamicRequests)(y,c,f,a.FreshnessPolicy.HistoryTraversal,p,null,"replace"),(0,u.completeTraverseNavigation)(e,c,o,y.node,y.route,f))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},35825:(e,t,r)=>{"use strict";function n(){throw Object.defineProperty(Error("`unauthorized()` is experimental and only allowed to be used when `experimental.authInterrupts` is enabled."),"__NEXT_ERROR_CODE",{value:"E411",enumerable:!1,configurable:!0})}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unauthorized",{enumerable:!0,get:function(){return n}}),r(93028).HTTP_ERROR_FALLBACK_ERROR_CODE,("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},36381:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={cancelPrefetchTask:function(){return E},isPrefetchTaskDirty:function(){return P},pingPrefetchScheduler:function(){return O},pingPrefetchTask:function(){return A},reschedulePrefetchTask:function(){return R},schedulePrefetchTask:function(){return b},startRevalidationCooldown:function(){return m}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(5935),l=r(38025),o=r(60798),i=r(17640),s=r(96697),c=r(72201),f=r(38453),d="function"==typeof queueMicrotask?queueMicrotask:e=>Promise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),p=[],h=0,y=0,_=!1,g=null,v=null;function m(){null!==v&&clearTimeout(v),v=setTimeout(()=>{v=null,O()},300)}function b(e,t,r,n,a,u){let l={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:(0,o.getCurrentRouteCacheVersion)(),segmentCacheVersion:(0,o.getCurrentSegmentCacheVersion)(),priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:y++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return S(l),k(p,l),O(),l}function E(e){e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,$(e,n,r))}}(p,e)}function R(e,t,r,n){e.isCanceled=!1,e.phase=1,e.sortId=y++,e.priority=e===g?s.PrefetchPriority.Intent:n,e.treeAtTimeOfPrefetch=t,e.fetchStrategy=r,S(e),-1!==e._heapIndex?V(p,e):k(p,e),O()}function P(e,t,r){return e.routeCacheVersion!==(0,o.getCurrentRouteCacheVersion)()||e.segmentCacheVersion!==(0,o.getCurrentSegmentCacheVersion)()||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function S(e){e.priority===s.PrefetchPriority.Intent&&e!==g&&(null!==g&&g.priority!==s.PrefetchPriority.Background&&(g.priority=s.PrefetchPriority.Default,V(p,g)),g=e)}function O(){_||(_=!0,d(C))}function T(e){return null===v&&(e.priority===s.PrefetchPriority.Intent?h<12:h<4)}function j(e){return h++,e.then(e=>null===e?(w(),null):(e.closed.then(w),e.value))}function w(){h--,O()}function A(e){e.isCanceled||-1!==e._heapIndex||(k(p,e),O())}function C(){_=!1;let e=Date.now(),t=H(p);for(;null!==t&&T(t);){t.routeCacheVersion=(0,o.getCurrentRouteCacheVersion)(),t.segmentCacheVersion=(0,o.getCurrentSegmentCacheVersion)();let r=function(e,t){let r=t.key,n=(0,o.readOrCreateRouteCacheEntry)(e,t,r),a=function(e,t,r){switch(r.status){case o.EntryStatus.Empty:j((0,o.fetchRouteOnCacheMiss)(r,t.key)),r.staleAt=e+6e4,r.status=o.EntryStatus.Pending;case o.EntryStatus.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case o.EntryStatus.Rejected:break;case o.EntryStatus.Fulfilled:{let i;if(0!==t.phase)return 2;if(!T(t))return 0;let c=r.tree;switch(i=c.prefetchHints&u.PrefetchHint.SubtreeHasInstant?s.FetchStrategy.PPR:t.fetchStrategy===s.FetchStrategy.PPR?r.supportsPerSegmentPrefetching?s.FetchStrategy.PPR:s.FetchStrategy.LoadingBoundary:t.fetchStrategy){case s.FetchStrategy.PPR:{var n,a,l;if(I(n=e,a=t,l=r,(0,o.readOrCreateSegmentCacheEntry)(n,s.FetchStrategy.PPR,l.metadata),a.key,l.metadata),0===function e(t,r,n,a,l){let i=(0,o.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,l);I(t,r,n,i,r.key,l);let s=a[1],c=l.slots;if(null!==c)for(let a in c){if(!T(r))return 0;let l=c[a],i=l.segment,f=s[a],d=f?.[0];if(0===(void 0!==d&&L(n,i,d)?e(t,r,n,f,l):function e(t,r,n,a){if(a.prefetchHints&u.PrefetchHint.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let l=(0,o.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,a);if(I(t,r,n,l,r.key,a),null!==a.slots){if(!T(r))return 0;for(let u in a.slots)if(0===e(t,r,n,a.slots[u]))return 0}return 2}(t,r,n,l)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,c))return 0;let i=t.spawnedRuntimePrefetches;if(null!==i){let n=new Map;M(e,t,r,n,s.FetchStrategy.PPRRuntime);let a=function e(t,r,n,a,u,l){if(u.has(a.requestKey))return N(t,r,n,a,!1,l,s.FetchStrategy.PPRRuntime);let o={},i=a.slots;if(null!==i)for(let a in i){let s=i[a];o[a]=e(t,r,n,s,u,l)}return[a.segment,o,null,null]}(e,t,r,c,i,n);n.size>0&&j((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,r,s.FetchStrategy.PPRRuntime,a,n))}return 2}case s.FetchStrategy.Full:case s.FetchStrategy.PPRRuntime:case s.FetchStrategy.LoadingBoundary:{let n=new Map;M(e,t,r,n,i);let a=function e(t,r,n,a,l,i,c){let f=a[1],d=l.slots,p={};if(null!==d)for(let a in d){let l=d[a],h=l.segment,y=f[a],_=y?.[0];if(void 0!==_&&L(n,h,_)){let u=e(t,r,n,y,l,i,c);p[a]=u}else switch(c){case s.FetchStrategy.LoadingBoundary:{let e=(l.prefetchHints&(u.PrefetchHint.SegmentHasLoadingBoundary|u.PrefetchHint.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,l,i){let c=null===l?"inside-shared-layout":null,f=(0,o.readOrCreateSegmentCacheEntry)(t,r.fetchStrategy,a);switch(f.status){case o.EntryStatus.Empty:i.set(a.requestKey,(0,o.upgradeToPendingSegment)(f,s.FetchStrategy.LoadingBoundary)),"refetch"!==l&&(c=l="refetch");break;case o.EntryStatus.Fulfilled:if((a.prefetchHints&u.PrefetchHint.SegmentHasLoadingBoundary)!=0)return(0,o.convertRouteTreeToFlightRouterState)(a);case o.EntryStatus.Pending:case o.EntryStatus.Rejected:}let d={};if(null!==a.slots)for(let u in a.slots){let o=a.slots[u];d[u]=e(t,r,n,o,l,i)}return[a.segment,d,null,c]}(t,r,n,l,null,i):(0,o.convertRouteTreeToFlightRouterState)(l);p[a]=e;break}case s.FetchStrategy.PPRRuntime:{let e=N(t,r,n,l,!1,i,c);p[a]=e;break}case s.FetchStrategy.Full:{let e=N(t,r,n,l,!1,i,c);p[a]=e}}}return[l.segment,p,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,c,n,i);return n.size>0&&j((0,o.fetchSegmentPrefetchesUsingDynamicRequest)(t,r,i,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=new URL(r.pathname,location.origin),a=(0,i.createCacheKey)(n.href,r.nextUrl),u=(0,o.readOrCreateRouteCacheEntry)(e,t,a);switch(u.status){case o.EntryStatus.Empty:x(t)&&(u.status=o.EntryStatus.Pending,j((0,o.fetchRouteOnCacheMiss)(u,a)));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:B(p),t=H(p);continue;case 2:1===t.phase?(t.phase=0,V(p,t)):n?(t.priority=s.PrefetchPriority.Background,V(p,t)):B(p),t=H(p);continue}}null===t&&0===h&&(0,f.cleanup)()}function x(e){return e.priority===s.PrefetchPriority.Background||(e.hasBackgroundWork=!0,!1)}function M(e,t,r,n,a){N(e,t,r,r.metadata,!1,n,a===s.FetchStrategy.LoadingBoundary?s.FetchStrategy.Full:a)}function N(e,t,r,n,a,u,l){let i=(0,o.readOrCreateSegmentCacheEntry)(e,l,n),c=null;switch(i.status){case o.EntryStatus.Empty:if(l===s.FetchStrategy.Full&&null!==(0,o.attemptToFulfillDynamicSegmentFromBFCache)(e,i,n))break;c=(0,o.upgradeToPendingSegment)(i,l);break;case o.EntryStatus.Fulfilled:if(i.isPartial&&(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,l)){if(l===s.FetchStrategy.Full&&null!==(0,o.attemptToUpgradeSegmentFromBFCache)(e,n))break;c=F(e,n,l)}break;case o.EntryStatus.Pending:case o.EntryStatus.Rejected:(0,o.canNewFetchStrategyProvideMoreContent)(i.fetchStrategy,l)&&(c=F(e,n,l))}let f={};if(null!==n.slots)for(let o in n.slots){let i=n.slots[o];f[o]=N(e,t,r,i,a||null!==c,u,l)}null!==c&&u.set(n.requestKey,c);let d=a||null===c?null:"refetch";return[n.segment,f,null,d]}function I(e,t,r,n,a,u){switch(n.status){case o.EntryStatus.Empty:j((0,o.fetchSegmentOnCacheMiss)(r,(0,o.upgradeToPendingSegment)(n,s.FetchStrategy.PPR),a,u));break;case o.EntryStatus.Pending:switch(n.fetchStrategy){case s.FetchStrategy.PPR:case s.FetchStrategy.PPRRuntime:case s.FetchStrategy.Full:break;case s.FetchStrategy.LoadingBoundary:x(t)&&D(e,r,a,u);break;default:n.fetchStrategy}break;case o.EntryStatus.Rejected:switch(n.fetchStrategy){case s.FetchStrategy.PPR:case s.FetchStrategy.PPRRuntime:case s.FetchStrategy.Full:break;case s.FetchStrategy.LoadingBoundary:D(e,r,a,u);break;default:n.fetchStrategy}case o.EntryStatus.Fulfilled:}}function D(e,t,r,n){let a=(0,o.readOrCreateRevalidatingSegmentEntry)(e,s.FetchStrategy.PPR,n);switch(a.status){case o.EntryStatus.Empty:j((0,o.fetchSegmentOnCacheMiss)(t,(0,o.upgradeToPendingSegment)(a,s.FetchStrategy.PPR),r,n));case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:}}function F(e,t,r){let n=(0,o.readOrCreateRevalidatingSegmentEntry)(e,r,t);if(n.status===o.EntryStatus.Empty)return(0,o.upgradeToPendingSegment)(n,r);if((0,o.canNewFetchStrategyProvideMoreContent)(n.fetchStrategy,r)){let n=(0,o.overwriteRevalidatingSegmentCacheEntry)(e,r,t);return(0,o.upgradeToPendingSegment)(n,r)}switch(n.status){case o.EntryStatus.Pending:case o.EntryStatus.Fulfilled:case o.EntryStatus.Rejected:default:return null}}function L(e,t,r){return r===c.PAGE_SEGMENT_KEY?t===(0,c.addSearchParamsIfPageSegment)(c.PAGE_SEGMENT_KEY,Object.fromEntries(new URLSearchParams(e.renderedSearch))):(0,l.matchSegment)(r,t)}function U(e,t){let r=t.priority-e.priority;if(0!==r)return r;let n=t.phase-e.phase;return 0!==n?n:t.sortId-e.sortId}function k(e,t){let r=e.length;e.push(t),t._heapIndex=r,X(e,t,r)}function H(e){return 0===e.length?null:e[0]}function B(e){if(0===e.length)return null;let t=e[0];t._heapIndex=-1;let r=e.pop();return r!==t&&(e[0]=r,r._heapIndex=0,$(e,r,0)),t}function V(e,t){let r=t._heapIndex;-1!==r&&(0===r?$(e,t,0):U(e[r-1>>>1],t)>0?X(e,t,r):$(e,t,r))}function X(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(U(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function $(e,t,r){let n=r,a=e.length,u=a>>>1;for(;nU(u,t))lU(o,u)?(e[n]=o,o._heapIndex=n,e[l]=t,t._heapIndex=l,n=l):(e[n]=u,u._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(lU(o,t)))return;e[n]=o,o._heapIndex=n,e[l]=t,t._heapIndex=l,n=l}}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},36561:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"unstable_rethrow",{enumerable:!0,get:function(){return n}});let n=r(11031).unstable_rethrow;("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},37938:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"appBootstrap",{enumerable:!0,get:function(){return u}});let n=r(72501),a=r(85628);function u(e){var t,r;let u=(0,n.getAssetPrefix)();t=self.__next_s,r=()=>{e(u)},t&&t.length?t.reduce((e,[t,r])=>e.then(()=>new Promise((e,n)=>{let u=document.createElement("script");r&&(0,a.setAttributesFromProps)(u,r),t?(u.src=t,u.onload=()=>e(),u.onerror=n):r&&(u.innerHTML=r.children,setTimeout(e)),document.head.appendChild(u)})),Promise.resolve()).catch(e=>{console.error(e)}).then(()=>{r()}):r()}window.next={version:"16.2.1",appDir:!0},("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38004:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"isNavigatingToNewRootLayout",{enumerable:!0,get:function(){return function e(t,r){let a=t[0],u=r.segment;if(Array.isArray(a)&&Array.isArray(u)){if(a[0]!==u[0]||a[2]!==u[2])return!0}else if(a!==u)return!0;let l=((t[4]??0)&n.PrefetchHint.IsRootLayout)!=0,o=(r.prefetchHints&n.PrefetchHint.IsRootLayout)!=0;if(l)return!o;if(o)return!0;let i=r.slots,s=t[1];if(null!==i)for(let t in i){let r=i[t],n=s[t];if(void 0===n||e(n,r))return!0}return!1}}});let n=r(5935);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38025:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"matchSegment",{enumerable:!0,get:function(){return r}});let r=(e,t)=>"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38439:(e,t)=>{"use strict";function r(e){return e.replace(/\/$/,"")||"/"}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeTrailingSlash",{enumerable:!0,get:function(){return r}})},38453:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={cleanup:function(){return p},deleteFromLru:function(){return f},lruPut:function(){return s},updateLruSize:function(){return c}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(42661),l=r(36381),o=null,i=0;function s(e){if(o===e)return;let t=e.prev,r=e.next;if(null===r||null===t?(i+=e.size,d()):(t.next=r,r.prev=t),null===o)e.prev=e,e.next=e;else{let t=o.prev;e.prev=t,null!==t&&(t.next=e),e.next=o,o.prev=e}o=e}function c(e,t){let r=e.size;e.size=t,null!==e.next&&(i=i-r+t,d())}function f(e){let t=e.next,r=e.prev;null!==t&&null!==r&&(i-=e.size,e.next=null,e.prev=null,o===e?t===o?o=null:(o=t,r.next=t,t.prev=r):(r.next=t,t.prev=r))}function d(){i<=0x3200000||(0,l.pingPrefetchScheduler)()}function p(){if(!(i<=0x3200000))for(;i>0x2d00000&&null!==o;){let e=o.prev;null!==e&&(0,u.deleteMapEntry)(e)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},38488:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"computeCacheBustingSearchParam",{enumerable:!0,get:function(){return a}});let n=r(43520);function a(e,t,r,a){return(void 0===e||"0"===e)&&void 0===t&&void 0===r&&void 0===a?"":(0,n.hexHash)([e||"0",t||"0",r||"0",a||"0"].join(","))}},38785:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={default:function(){return l},getProperError:function(){return o}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(86739);function l(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function o(e){let t;return l(e)?e:Object.defineProperty(Error((0,u.isPlainObject)(e)?(t=new WeakSet,JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r})):e+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}},39320:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"normalizePathTrailingSlash",{enumerable:!0,get:function(){return u}});let n=r(38439),a=r(96949),u=e=>{if(!e.startsWith("/"))return e;let{pathname:t,query:r,hash:u}=(0,a.parsePath)(e);return`${(0,n.removeTrailingSlash)(t)}${r}${u}`};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},39450:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTML_LIMITED_BOT_UA_RE",{enumerable:!0,get:function(){return r}});let r=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i},39836:(e,t,r)=>{"use strict";function n(e){return e}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"removeBasePath",{enumerable:!0,get:function(){return n}}),r(91212),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},40819:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={getRedirectError:function(){return i},getRedirectStatusCodeFromError:function(){return p},getRedirectTypeFromError:function(){return d},getURLFromRedirectError:function(){return f},permanentRedirect:function(){return c},redirect:function(){return s}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(4134),l=r(42508),o;function i(e,t,r=u.RedirectStatusCode.TemporaryRedirect){let n=Object.defineProperty(Error(l.REDIRECT_ERROR_CODE),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n.digest=`${l.REDIRECT_ERROR_CODE};${t};${e};${r};`,n}function s(e,t){throw i(e,t??=o?.getStore()?.isAction?"push":"replace",u.RedirectStatusCode.TemporaryRedirect)}function c(e,t="replace"){throw i(e,t,u.RedirectStatusCode.PermanentRedirect)}function f(e){return(0,l.isRedirectError)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function d(e){if(!(0,l.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function p(e){if(!(0,l.isRedirectError)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},41116:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,a={FreshnessPolicy:function(){return R},createInitialCacheNodeForHydration:function(){return S},isDeferredRsc:function(){return U},spawnDynamicRequests:function(){return N},startPPRNavigation:function(){return O}};for(var u in a)Object.defineProperty(t,u,{enumerable:!0,get:a[u]});let l=r(5935),o=r(72201),i=r(38025),s=r(64537),c=r(65944),f=r(52625),d=r(70892),p=r(38004),h=r(80124),y=r(2118),_=r(60798),g=r(96697),v=r(59902),m=r(81315),b=r(28952),E=r(49102);var R=((n={})[n.Default=0]="Default",n[n.Hydration=1]="Hydration",n[n.HistoryTraversal=2]="HistoryTraversal",n[n.RefreshAll=3]="RefreshAll",n[n.HMRRefresh=4]="HMRRefresh",n[n.Gesture=5]="Gesture",n);let P=()=>{};function S(e,t,r,n,a){return T(e,t,null,1,r,n,a,!1,{separateRefreshUrls:null,scrollRef:null})}function O(e,t,r,n,a,u,c,f,d,h,y,g,v){let m={canonicalUrl:(0,s.createHrefFromUrl)(t),renderedSearch:r};return function e(t,r,n,a,u,s,c,f,d,h,y,g,v,m,b,E){var R,P,S;let O,w,M,N,I=a[0],D=j(u);if(!(0,i.matchSegment)(D,I))return!f&&(0,p.isNavigatingToNewRootLayout)(a,u)||D===o.NOT_FOUND_SEGMENT_KEY?null:T(t,u,s,c,d,h,y,v,E);let F=u.slots,L=a[1],U=null!==d?d[1]:null,k=f||(u.prefetchHints&l.PrefetchHint.IsRootLayout)!=0,H=!1;switch(c){case 0:case 2:case 1:case 5:H=!1;break;case 3:case 4:H=!0}let B=null===F;if(void 0===n||H||B&&g){let e=C(t,u,null!==d?d[0]:null,s,h,c,y);M=e.cacheNode,N=e.needsDynamicRequest,void 0!==n&&(M.scrollRef=n.scrollRef)}else{R=!1,M=x((P=n).rsc,R?null:P.prefetchRsc,P.head,R?null:P.prefetchHead,P.scrollRef),N=!1}let V=u.refreshState,X=null!=V?V:b;N&&null!==X&&(S=E,O=X.canonicalUrl,null===(w=S.separateRefreshUrls)?S.separateRefreshUrls=new Set([O]):w.add(O));let $={},G=null,K=!1,Y={},q=null;if(null!==F){let a=void 0!==n?n.slots:null;for(let n in M.slots=q={},G=new Map,F){let l=F[n],i=L[n];if(void 0===i)return null;let f=null!==U?U[n]:null,d=i[0],p=j(l),b=h;2!==c&&p===o.DEFAULT_SEGMENT_KEY&&d!==o.DEFAULT_SEGMENT_KEY&&(p=j(l=function(e,t,r,n){let a,u,l=n[2];null!=l?(a=l[0],u=l[1]):(a=r.canonicalUrl,u=r.renderedSearch);let o=(0,_.convertReusedFlightRouterStateToRouteTree)(e,t,n,u,{metadataVaryPath:null});return o.refreshState={canonicalUrl:a,renderedSearch:u},o}(u,n,m,i)),f=null,b=null);let R=e(t,r,null!==a?a[n]:void 0,i,l,s,c,k,f??null,b,y,g,v||N,m,X,E);if(null===R)return null;G.set(n,R),q[n]=R.node;let P=R.route;$[n]=P;let S=R.dynamicRequestTree;null!==S?(K=!0,Y[n]=S):Y[n]=P}}let z=[j(u),$,null!==X?[X.canonicalUrl,X.renderedSearch]:null,null,u.prefetchHints];return{status:+!N,route:z,node:M,dynamicRequestTree:A(z,Y,N,K,v),refreshState:X,children:G}}(e,t,null!==n?n:void 0,a,u,c,f,!1,d,h,y,g,!1,m,null,v)}function T(e,t,r,n,a,u,l,o,i){let s=j(t),c=t.slots,f=null!==a?a[1]:null,d=C(e,t,null!==a?a[0]:null,r,u,n,l),p=d.cacheNode,h=d.needsDynamicRequest;null===c&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,p,i);let y={},_=null,g=!1,v={},m=null;if(null!==c)for(let t in p.slots=m={},_=new Map,c){let a=T(e,c[t],r,n,(null!==f?f[t]:null)??null,u,l,o||h,i);_.set(t,a),m[t]=a.node;let s=a.route;y[t]=s;let d=a.dynamicRequestTree;null!==d?(g=!0,v[t]=d):v[t]=s}let b=[s,y,null,null,t.prefetchHints];return{status:+!h,route:b,node:p,dynamicRequestTree:A(b,v,h,g,o),refreshState:null,children:_}}function j(e){if(e.isPage){let t=(0,b.getRenderedSearchFromVaryPath)(e.varyPath);if(null===t)return o.PAGE_SEGMENT_KEY;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?o.PAGE_SEGMENT_KEY+"?"+r:o.PAGE_SEGMENT_KEY}return e.segment}function w(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function A(e,t,r,n,a){let u=null;return r?(u=w(e,t),a||(u[3]="refetch")):u=n?w(e,t):null,u}function C(e,t,r,n,a,u,l){let o,i,s,c=t.isPage;switch(u){case 0:{let r=(0,E.readFromBFCacheDuringRegularNavigation)(e,t.varyPath);if(null!==r)return{cacheNode:x(r.rsc,r.prefetchRsc,r.head,r.prefetchHead),needsDynamicRequest:!1};break}case 1:{let u=c?a:null;return(0,E.writeToBFCache)(e,t.varyPath,r,null,u,null,l),c&&null!==n&&(0,E.writeHeadToBFCache)(e,n,u,null,l),{cacheNode:x(r,null,u,null),needsDynamicRequest:!1}}case 2:let f=(0,E.readFromBFCache)(t.varyPath);if(null!==f){let e=f.rsc,t=!U(e)||"pending"!==e.status;return{cacheNode:x(f.rsc,t?null:f.prefetchRsc,f.head,t?null:f.prefetchHead),needsDynamicRequest:!1}}}let d=null,p=!0,h=(0,_.readSegmentCacheEntry)(e,t.varyPath);if(null!==h)switch(h.status){case _.EntryStatus.Fulfilled:d=h.rsc,p=h.isPartial;break;case _.EntryStatus.Pending:d=(0,_.waitForSegmentCacheEntry)(h).then(e=>null!==e?e.rsc:null),p=h.isPartial;case _.EntryStatus.Empty:case _.EntryStatus.Rejected:}null!==r?(p?(o=d,i=r):(o=null,i=d),s=!1):(p?(o=d,i=k()):(o=null,i=d),s=p);let y=null,g=null,v=c;if(c){let t=null,r=!0;if(null!==n){let a=(0,_.readSegmentCacheEntry)(e,n);if(null!==a)switch(a.status){case _.EntryStatus.Fulfilled:t=a.rsc,r=a.isPartial;break;case _.EntryStatus.Pending:t=(0,_.waitForSegmentCacheEntry)(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case _.EntryStatus.Empty:case _.EntryStatus.Rejected:}}null!==a?(r?(y=t,g=a):(y=null,g=t),v=!1):(r?(y=t,g=k()):(y=null,g=t),v=r)}return 5!==u&&((0,E.writeToBFCache)(e,t.varyPath,i,o,g,y,l),c&&null!==n&&(0,E.writeHeadToBFCache)(e,n,g,y,l)),{cacheNode:x(i,o,g,y),needsDynamicRequest:s||v}}function x(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let M=!1;function N(e,t,r,n,a,u,l){let o=e.dynamicRequestTree;if(null===o){M=!1;return}let i=F(e,o,t,r,n,u),c=a.separateRefreshUrls,f=null;if(null!==c){f=[];let a=(0,s.createHrefFromUrl)(t);for(let t of c)t!==a&&null!==o&&f.push(F(e,o,new URL(t,location.origin),r,n,u))}I(e,r,i,f,u,l).then(P,P)}async function I(e,t,r,n,a,u){var l,o;let i=await (l=r,o=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;l.then(t,r),null!==o&&(n+=o.length,o.forEach(e=>e.then(t,r)))}));switch(0===i&&(i=function e(t,r,n){var a,u,l;let o,i,s;0===t.status?(t.status=2,a=t.node,u=r,l=n,U(i=a.rsc)&&(null===u?i.resolve(null,l):i.reject(u,l)),U(s=a.head)&&s.resolve(null,l),o=null===t.refreshState?1:2):o=0;let c=t.children;if(null!==c)for(let[,t]of c){let a=e(t,r,n);a>o&&(o=a)}return o}(e,null,null)),i){case 0:M=!1;return;case 1:{let n=await r;D(!1,n.url,t,n.seed,e.route,a,u);return}case 2:{let n=await r;D(!0,n.url,t,n.seed,e.route,a,u);return}default:return i}}function D(e,t,r,n,a,u,l){if(null!==u)(0,_.markRouteEntryAsDynamicRewrite)(u);else if(null!==n){let e=n.metadataVaryPath;if(null!==e){let a=Date.now();(0,v.discoverKnownRoute)(a,t.pathname,r,null,n.routeTree,e,!1,(0,s.createHrefFromUrl)(t),!1,!0)}}(0,_.invalidateRouteCacheEntries)(r,a),e=e||M,M=!0;let o=(0,h.getLastCommittedTree)(),i=null!==o&&a!==o?l:"replace",c={type:d.ACTION_SERVER_PATCH,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:i};(0,f.dispatchAppRouterAction)(c)}async function F(e,t,r,n,a,u){try{let l=await (0,c.fetchServerResponse)(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof l)return{exitStatus:2,url:new URL(l,location.origin),seed:null};let o=Date.now(),s=(0,y.convertServerPatchToFullTree)(o,e.route,l.flightData,l.renderedSearch,l.dynamicStaleTime);if(null!==u&&null!==l.staticStageData){let{response:e,isResponsePartial:r}=l.staticStageData;(0,_.getStaleAt)(o,e.s).then(n=>{let a=l.responseHeaders.get(m.NEXT_NAV_DEPLOYMENT_ID_HEADER)??e.b;(0,_.writeStaticStageResponseIntoCache)(o,e.f,a,e.h,n,t,l.renderedSearch,r)}).catch(()=>{})}null!==u&&null!==l.runtimePrefetchStream&&(0,_.processRuntimePrefetchStream)(o,l.runtimePrefetchStream,t,l.renderedSearch).then(e=>{null!==e&&(0,_.writeDynamicRenderResponseIntoCache)(o,g.FetchStrategy.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let f=(0,E.computeDynamicStaleAt)(o,l.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,u,l){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,u=t[0];if(null===u)return;null===a?e.rsc=u:U(a)&&a.resolve(u,n);let l=e.head;U(l)&&l.resolve(r,n)}(t.node,n,a,l),(0,E.updateBFCacheEntryStaleAt)(r.varyPath,u));let o=t.children,s=r.slots,c=null!==n?n[1]:null,f=!1;if(null!==o)if(null!==s)for(let t in s){let r=s[t],n=null!==c?c[t]:null,d=o.get(t);if(void 0===d)f=!0;else{let t=d.route[0],o=j(r);(0,i.matchSegment)(o,t)&&null!=n&&e(d,r,n,a,u,l)&&(f=!0)}}else null!==s&&(f=!0);return f}(e,s.routeTree,s.data,s.head,f,l.debugInfo),url:new URL(l.canonicalUrl,location.origin),seed:s}}catch{return{exitStatus:2,url:r,seed:null}}}let L=Symbol();function U(e){return e&&"object"==typeof e&&e.tag===L}function k(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=L,n._debugInfo=r,n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},42306:(e,t)=>{"use strict";function r(e){return(e.then(n),"fulfilled"!==e.status)?null:e.value}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"readVaryParams",{enumerable:!0,get:function(){return r}});let n=()=>{}},42508:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={REDIRECT_ERROR_CODE:function(){return l},isRedirectError:function(){return o}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(4134),l="NEXT_REDIRECT";function o(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,a=t.slice(2,-2).join(";"),o=Number(t.at(-2));return r===l&&("replace"===n||"push"===n)&&"string"==typeof a&&!isNaN(o)&&o in u.RedirectStatusCode}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},42661:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={Fallback:function(){return l},createCacheMap:function(){return i},deleteFromCacheMap:function(){return p},deleteMapEntry:function(){return h},getFromCacheMap:function(){return s},isValueExpired:function(){return c},setInCacheMap:function(){return f},setSizeInCacheMap:function(){return y}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(38453),l={},o={};function i(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function s(e,t,r,n,a){let i=function e(t,r,n,a,u,i){let s,f;if(null!==a)s=a.value,f=a.parent;else if(u&&i!==o)s=o,f=null;else return null===n.value?n:c(t,r,n.value)?(h(n),null):n;let d=n.map;if(null!==d){let n=d.get(s);if(void 0!==n){let a=e(t,r,n,f,u,s);if(null!==a)return a}let a=d.get(l);if(void 0!==a)return e(t,r,a,f,u,s)}return null}(e,t,r,n,a,0);return null===i||null===i.value?null:((0,u.lruPut)(i),i.value)}function c(e,t,r){return r.staleAt<=e||r.version{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={WarningIcon:function(){return i},errorStyles:function(){return l},errorThemeCss:function(){return o}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});r(12563);let u=r(73365);r(1521);let l={container:{fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},card:{marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},icon:{marginBottom:"24px"},title:{fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},message:{fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},form:{margin:0},buttonGroup:{display:"flex",gap:"8px",alignItems:"center"},button:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},buttonSecondary:{display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},digestFooter:{position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"}},o=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function i(){return(0,u.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:l.icon,children:(0,u.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},43520:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={djb2Hash:function(){return a},hexHash:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function a(e){let t=5381;for(let r=0;r>>0}function u(e){return a(e).toString(36).slice(0,5)}},44324:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"reportGlobalError",{enumerable:!0,get:function(){return r}});let r="function"==typeof reportError?reportError:e=>{globalThis.console.error(e)};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},47245:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"HTTPAccessFallbackBoundary",{enumerable:!0,get:function(){return c}});let n=r(21512),a=r(73365),u=n._(r(1521)),l=r(9027),o=r(93028);r(30208);let i=r(96745);class s extends u.default.Component{constructor(e){super(e),this.state={triggeredStatus:void 0,previousPathname:e.pathname}}componentDidCatch(){}static getDerivedStateFromError(e){if((0,o.isHTTPAccessFallbackError)(e))return{triggeredStatus:(0,o.getAccessFallbackHTTPStatus)(e)};throw e}static getDerivedStateFromProps(e,t){return e.pathname!==t.previousPathname&&t.triggeredStatus?{triggeredStatus:void 0,previousPathname:e.pathname}:{triggeredStatus:t.triggeredStatus,previousPathname:e.pathname}}render(){let{notFound:e,forbidden:t,unauthorized:r,children:n}=this.props,{triggeredStatus:u}=this.state,l={[o.HTTPAccessErrorStatus.NOT_FOUND]:e,[o.HTTPAccessErrorStatus.FORBIDDEN]:t,[o.HTTPAccessErrorStatus.UNAUTHORIZED]:r};if(u){let i=u===o.HTTPAccessErrorStatus.NOT_FOUND&&e,s=u===o.HTTPAccessErrorStatus.FORBIDDEN&&t,c=u===o.HTTPAccessErrorStatus.UNAUTHORIZED&&r;return i||s||c?(0,a.jsxs)(a.Fragment,{children:[(0,a.jsx)("meta",{name:"robots",content:"noindex"}),!1,l[u]]}):n}return n}}function c({notFound:e,forbidden:t,unauthorized:r,children:n}){let o=(0,l.useUntrackedPathname)(),f=(0,u.useContext)(i.MissingSlotContext);return e||t||r?(0,a.jsx)(s,{pathname:o,notFound:e,forbidden:t,unauthorized:r,missingSlots:f,children:n}):(0,a.jsx)(a.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},49102:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={UnknownDynamicStaleTime:function(){return o},computeDynamicStaleAt:function(){return i},invalidateBfCache:function(){return f},readFromBFCache:function(){return y},readFromBFCacheDuringRegularNavigation:function(){return _},updateBFCacheEntryStaleAt:function(){return h},writeHeadToBFCache:function(){return p},writeToBFCache:function(){return d}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(83548),l=r(42661),o=-1;function i(e,t){return t!==o?e+1e3*t:e+u.DYNAMIC_STALETIME_MS}let s=(0,l.createCacheMap)(),c=0;function f(){c++}function d(e,t,r,n,a,u,o){let i={rsc:r,prefetchRsc:n,head:a,prefetchHead:u,ref:null,size:100,navigatedAt:e,staleAt:o,version:c};(0,l.setInCacheMap)(s,t,i,!1)}function p(e,t,r,n,a){d(e,t,r,n,null,null,a)}function h(e,t){let r=(0,l.getFromCacheMap)(-1,c,s,e,!1);null!==r&&(r.staleAt=t)}function y(e){return(0,l.getFromCacheMap)(-1,c,s,e,!1)}function _(e,t){return(0,l.getFromCacheMap)(e,c,s,t,!1)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},50252:(e,t,r)=>{"use strict";var n=r(98196),a={stream:!0},u=Object.prototype.hasOwnProperty,l=new Map;function o(e){var t=r(e);return"function"!=typeof t.then||"fulfilled"===t.status?null:(t.then(function(e){t.status="fulfilled",t.value=e},function(e){t.status="rejected",t.reason=e}),t)}function i(){}function s(e){for(var t=e[1],n=[],a=0;af||35===f||114===f||120===f?(d=f,f=3,c++):(d=0,f=3);continue;case 2:44===(g=i[c++])?f=4:h=h<<4|(96i.length&&(g=-1)}var v=i.byteOffset+c;if(-1{"use strict";!function e(){if("u">typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=r(20114)},52625:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={dispatchAppRouterAction:function(){return s},dispatchGestureState:function(){return f},refreshOnInstantNavigationUnlock:function(){return i},useActionQueue:function(){return d}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(21512)._(r(1521)),l=r(24296);r(70892);let o=null;function i(){}function s(e){if(null===o)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});o(e)}let c=null;function f(e){if(null===c)throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0});c(e)}function d(e){let[t,r]=u.default.useState(e.state),[n,a]=(0,u.useOptimistic)(t);c=a,o=t=>e.dispatch(t,r);let i=(0,u.useMemo)(()=>n,[n]);return(0,l.isThenable)(i)?(0,u.use)(i):i}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},53739:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createInitialRSCPayloadFromFallbackPrerender:function(){return s},getFlightDataPartsFromPath:function(){return i},getNextFlightSegmentPath:function(){return c},normalizeFlightData:function(){return f},prepareFlightRouterStateForRequest:function(){return d}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(72201),l=r(73452),o=r(64537);function i(e){let[t,r,n,a]=e.slice(-4),u=e.slice(0,-4);return{pathToSegment:u.slice(0,-1),segmentPath:u,segment:u[u.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function s(e,t){let r=(0,l.getRenderedPathname)(e),n=(0,l.getRenderedSearch)(e),a=(0,o.createHrefFromUrl)(new URL(location.href)),u=t.f[0],i=u[0],s={c:a.split("/"),q:n,i:t.i,f:[[function e(t,r,n,a){let u,o,i=t[0];if("string"==typeof i)u=i,o=(0,l.doesStaticSegmentAppearInURL)(i);else{let e=i[0],t=i[2],s=i[3],c=(0,l.parseDynamicParamFromURLPart)(t,n,a);u=[e,(0,l.getCacheKeyForDynamicParam)(c,r),t,s],o=!0}let s=o?a+1:a,c=t[1],f={};for(let t in c){let a=c[t];f[t]=e(a,r,n,s)}return[u,f,null,t[3],t[4]]}(i,n,r.split("/").filter(e=>""!==e),0),u[1],u[2],u[2]]],m:t.m,G:t.G,S:t.S,h:t.h};return t.b&&(s.b=t.b),s}function c(e){return e.slice(2)}function f(e){return"string"==typeof e?e:e.map(e=>i(e))}function d(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,l,o]=t,i=function(e){if("string"==typeof e)return e.startsWith(u.PAGE_SEGMENT_KEY+"?")?u.PAGE_SEGMENT_KEY:e;let[t,r,n]=e;return[t,r,n,null]}(r),s={};for(let[t,r]of Object.entries(n))s[t]=e(r);let c=[i,s];return l&&(c[2]=null,c[3]=l),void 0!==o&&(c[4]=o),c}(e)))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},57567:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"default",{enumerable:!0,get:function(){return l}}),r(12563);let n=r(73365);r(1521);let a=r(993),u=r(43240),l=function({error:e}){let t=e?.digest,r=!!t;return(0,a.handleISRError)({error:e}),(0,n.jsxs)("html",{id:"__next_error__",children:[(0,n.jsx)("head",{children:(0,n.jsx)("style",{dangerouslySetInnerHTML:{__html:u.errorThemeCss}})}),(0,n.jsxs)("body",{children:[(0,n.jsx)("div",{style:u.errorStyles.container,children:(0,n.jsxs)("div",{style:u.errorStyles.card,children:[(0,n.jsx)(u.WarningIcon,{}),(0,n.jsx)("h1",{style:u.errorStyles.title,children:"This page couldn’t load"}),(0,n.jsx)("p",{style:u.errorStyles.message,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,n.jsxs)("div",{style:u.errorStyles.buttonGroup,children:[(0,n.jsx)("form",{style:u.errorStyles.form,children:(0,n.jsx)("button",{type:"submit",style:u.errorStyles.button,children:"Reload"})}),!r&&(0,n.jsx)("button",{type:"button",style:u.errorStyles.buttonSecondary,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,n.jsxs)("p",{style:u.errorStyles.digestFooter,children:["ERROR ",t]})]})]})};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},58037:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createInitialRouterState",{enumerable:!0,get:function(){return d}});let n=r(64537),a=r(9156),u=r(53739),l=r(41116),o=r(60798),i=r(96697),s=r(49102),c=r(65944),f=r(59902);function d({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:r,location:p}){let{c:h,f:y,q:_,i:g,S:v,s:m,l:b,h:E,p:R,d:P}=t,S=h.join("/"),{tree:O,seedData:T,head:j}=(0,u.getFlightDataPartsFromPath)(y[0]),w=p?(0,n.createHrefFromUrl)(p):S,A={metadataVaryPath:null},C=(0,o.convertRootFlightRouterStateToRouteTree)(O,_,A),x=A.metadataVaryPath,M=(0,l.createInitialCacheNodeForHydration)(e,C,T,j,(0,s.computeDynamicStaleAt)(e,P??s.UnknownDynamicStaleTime));if(null!==p&&null!==x){if((0,f.discoverKnownRoute)(Date.now(),p.pathname,null,null,C,x,g,w,v,!1),null!==T&&void 0!==m)if(void 0!==b&&null!=r)(0,c.decodeStaticStage)(r,b,void 0).then(async e=>{let t=Date.now(),r=await (0,o.getStaleAt)(t,e.s);(0,o.writeStaticStageResponseIntoCache)(t,e.f,void 0,e.h,r,O,_,!0)}).catch(()=>{});else{let e=Date.now();(0,o.getStaleAt)(e,m).then(t=>{(0,o.writeStaticStageResponseIntoCache)(e,y,void 0,E,t,O,_,!1)}).catch(()=>{}),r?.cancel()}else r?.cancel();null!=R&&(0,o.processRuntimePrefetchStream)(Date.now(),R,O,_).then(e=>{null!==e&&(0,o.writeDynamicRenderResponseIntoCache)(Date.now(),i.FetchStrategy.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:M.route,cache:M.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:w,renderedSearch:_,nextUrl:((0,a.extractPathFromFlightRouterState)(O)||p?.pathname)??null,previousNextUrl:null,debugInfo:null}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},58796:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={ReadonlyURLSearchParams:function(){return u.ReadonlyURLSearchParams},RedirectType:function(){return d},forbidden:function(){return i.forbidden},notFound:function(){return o.notFound},permanentRedirect:function(){return l.permanentRedirect},redirect:function(){return l.redirect},unauthorized:function(){return s.unauthorized},unstable_isUnrecognizedActionError:function(){return f},unstable_rethrow:function(){return c.unstable_rethrow}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(83181),l=r(40819),o=r(67285),i=r(93484),s=r(35825),c=r(36561);function f(){throw Object.defineProperty(Error("`unstable_isUnrecognizedActionError` can only be used on the client."),"__NEXT_ERROR_CODE",{value:"E776",enumerable:!1,configurable:!0})}let d={push:"push",replace:"replace"};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},59827:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={setCacheBustingSearchParam:function(){return o},setCacheBustingSearchParamWithHash:function(){return i}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(38488),l=r(77807),o=(e,t)=>{i(e,(0,u.computeCacheBustingSearchParam)(t[l.NEXT_ROUTER_PREFETCH_HEADER],t[l.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER],t[l.NEXT_ROUTER_STATE_TREE_HEADER],t[l.NEXT_URL]))},i=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${l.NEXT_RSC_UNION_QUERY}=`));t.length>0?n.push(`${l.NEXT_RSC_UNION_QUERY}=${t}`):n.push(`${l.NEXT_RSC_UNION_QUERY}`),e.search=n.length?`?${n.join("&")}`:""};("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},59902:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={discoverKnownRoute:function(){return c},matchKnownRoute:function(){return d},resetKnownRoutes:function(){return p}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(60798),l=r(73452),o=r(28952);function i(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let s=i();function c(e,t,r,n,a,l,o,i,c,d){let p=t.split("/").filter(e=>""!==e),h=p.length>0?p[0]:null,y=p.length>0?p.slice(1):[];if(null!==n){let p=(0,u.fulfillRouteCacheEntry)(e,n,a,l,o,i,c);return d&&(p.hasDynamicRewrite=!0),f(s,a,h,y,p,e,t,r,a,l,o,i,c,d),p}return f(s,a,h,y,null,e,t,r,a,l,o,i,c,d)}function f(e,t,r,n,a,o,s,c,d,p,h,y,_,g){let v,m,b=t.segment,E=null,R=null,P=null;"string"==typeof b?v=(0,l.doesStaticSegmentAppearInURL)(b):(E=b[0],R=b[2],P=b[3],v=!0);let S=e,O=r,T=n;if(v){if(null===E&&r!==b)return null!==a?a:(0,u.writeRouteIntoCache)(o,s,c,d,p,h,y,_);if(null!==E&&null!==R){if(S=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=i();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,E,R),null!==P)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),P))e.staticChildren.has(t)||e.staticChildren.set(t,i())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=i(),e.staticChildren.set(r,t)),S=t}O=n.length>0?n[0]:null,T=n.length>0?n.slice(1):[]}let j=t.slots,w=null;if(null!==j){for(let e in j){let t=j[e];null===t.refreshState&&(w=f(S,t,O,T,a,o,s,c,d,p,h,y,_,g))}return null!==w?w:null!==a?a:(0,u.writeRouteIntoCache)(o,s,c,d,p,h,y,_)}return null!==S.pattern?(g&&(S.pattern.hasDynamicRewrite=!0),S.pattern):(m=null!==a?a:(0,u.writeRouteIntoCache)(o,s,c,d,p,h,y,_),g&&(m.hasDynamicRewrite=!0),S.pattern=m,m)}function d(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let u=n{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={extractInfoFromServerReferenceId:function(){return a},omitUnusedArgs:function(){return u}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function a(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}function u(e,t){let r=Array(e.length),n=0;for(let a=0;a=6&&t.hasRestArgs)&&(r[a]=e[a],n=a+1);return r.length=n,r}},60687:(e,t,r)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"serverActionReducer",{enumerable:!0,get:function(){return M}});let a=r(90476),u=r(33200),l=r(77807),o=r(80690),i=r(18423),s=r(70892),c=r(86365),f=r(64537),d=r(1138),p=r(53739),h=r(40819),y=r(39836),_=r(91212),g=r(59930),v=r(60798),m=r(36381),b=r(68491),E=r(34225),R=r(81315),P=r(2118),S=r(59902),O=r(19444),T=r(68596),j=r(41116),w=r(65944),A=r(49102),C=i.createFromFetch;async function x(e,t,{actionId:r,actionArgs:s}){let f,d,h,y,_=(0,i.createTemporaryReferenceSet)(),v=(0,g.extractInfoFromServerReferenceId)(r),m=(0,g.omitUnusedArgs)(s,v),P=await (0,i.encodeReply)(m,{temporaryReferences:_}),S={Accept:l.RSC_CONTENT_TYPE_HEADER,[l.ACTION_HEADER]:r,[l.NEXT_ROUTER_STATE_TREE_HEADER]:(0,p.prepareFlightRouterStateForRequest)(e.tree)},T=(0,b.getDeploymentId)();T&&(S["x-deployment-id"]=T),t&&(S[l.NEXT_URL]=t);let j=await fetch(e.canonicalUrl,{method:"POST",headers:S,body:P});if("1"===j.headers.get(l.NEXT_ACTION_NOT_FOUND_HEADER))throw Object.defineProperty(new o.UnrecognizedActionError(`Server Action "${r}" was not found on the server. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E715",enumerable:!1,configurable:!0});let A=j.headers.get("x-action-redirect"),[M,N]=A?.split(";")||[];switch(N){case"push":f="push";break;case"replace":f="replace";break;default:f=void 0}let I=!!j.headers.get(l.NEXT_IS_PRERENDER_HEADER),D=O.ActionDidNotRevalidate;try{let e=j.headers.get("x-action-revalidated");if(e){let t=JSON.parse(e);(t===O.ActionDidRevalidateStaticAndDynamic||t===O.ActionDidRevalidateDynamicOnly)&&(D=t)}}catch{}let F=M?(0,c.assignLocation)(M,new URL(e.canonicalUrl,window.location.href)):void 0,L=j.headers.get("content-type"),U=!!(L&&L.startsWith(l.RSC_CONTENT_TYPE_HEADER));if(!U&&!F)throw Object.defineProperty(Error(j.status>=400&&"text/plain"===L?await j.text():"An unexpected response was received from the server."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let k=!1;if(U){let e=F?(0,w.processFetch)(j).then(({response:e})=>e):Promise.resolve(j),t=await C(e,{callServer:a.callServer,findSourceMapURL:u.findSourceMapURL,temporaryReferences:_,debugChannel:n&&n(S)});d=F?void 0:t.a,k=t.i;let r=j.headers.get(R.NEXT_NAV_DEPLOYMENT_ID_HEADER)??t.b;if(void 0!==r&&r!==(0,E.getNavigationBuildId)());else{let e=(0,p.normalizeFlightData)(t.f);""!==e&&(h=e,y=t.q)}}else d=void 0,h=void 0,y=void 0;return{actionResult:d,actionFlightData:h,actionFlightDataRenderedSearch:y,redirectLocation:F,redirectType:f,revalidationKind:D,isPrerender:I,couldBeIntercepted:k}}function M(e,t){let{resolve:r,reject:n}=t,a=(e.previousNextUrl||e.nextUrl)&&(0,d.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||e.nextUrl:null;return x(e,a,t).then(async({revalidationKind:u,actionResult:l,actionFlightData:o,actionFlightDataRenderedSearch:i,redirectLocation:c,redirectType:d,isPrerender:p,couldBeIntercepted:h})=>{u!==O.ActionDidNotRevalidate&&((0,A.invalidateBfCache)(),t.didRevalidate=!0,u===O.ActionDidRevalidateStaticAndDynamic&&(0,v.invalidateEntirePrefetchCache)(a,e.tree),(0,m.startRevalidationCooldown)());let g=d||"push";if(void 0!==c)if((0,T.isExternalURL)(c))return n(N(c.href,g)),(0,P.completeHardNavigation)(e,c,g);else{let e=(0,f.createHrefFromUrl)(c,!1);n(N((0,_.hasBasePath)(e)?(0,y.removeBasePath)(e):e,g))}else r(l);if(void 0===c&&u===O.ActionDidNotRevalidate&&void 0===o)return e;if(void 0===o&&void 0!==c)return(0,P.completeHardNavigation)(e,c,g);if("string"==typeof o)return(0,P.completeHardNavigation)(e,new URL(o,location.origin),g);let b=new URL(e.canonicalUrl,location.origin),E=e.renderedSearch,R=void 0!==c?c:b,w=e.tree,C=s.ScrollBehavior.Default,x=u===O.ActionDidNotRevalidate?j.FreshnessPolicy.Default:j.FreshnessPolicy.RefreshAll;if(void 0!==o&&void 0!==i){let t=(0,f.createHrefFromUrl)(R),r=Date.now(),n=(0,P.convertServerPatchToFullTree)(r,w,o,i,A.UnknownDynamicStaleTime),u=n.metadataVaryPath;return null!==u&&(0,S.discoverKnownRoute)(r,R.pathname,a,null,n.routeTree,u,h,t,p,!1),(0,P.navigateToKnownRoute)(r,e,R,t,n,b,E,e.cache,w,x,a,C,g,null,null)}return(0,P.navigate)(e,R,b,E,e.cache,w,a,x,C,g)},t=>(n(t),e))}function N(e,t){let r=(0,h.getRedirectError)(e,t);return r.handled=!0,r}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},60798:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n,a={EntryStatus:function(){return w},attemptToFulfillDynamicSegmentFromBFCache:function(){return ee},attemptToUpgradeSegmentFromBFCache:function(){return et},canNewFetchStrategyProvideMoreContent:function(){return eR},convertReusedFlightRouterStateToRouteTree:function(){return ef},convertRootFlightRouterStateToRouteTree:function(){return ec},convertRouteTreeToFlightRouterState:function(){return function e(t){let r={};if(null!==t.slots)for(let n in t.slots)r[n]=e(t.slots[n]);return[t.segment,r,null,null]}},createDetachedSegmentCacheEntry:function(){return J},createMetadataRouteTree:function(){return en},deprecated_requestOptimisticRouteCacheEntry:function(){return K},fetchInlinedSegmentsOnCacheMiss:function(){return ey},fetchRouteOnCacheMiss:function(){return ep},fetchSegmentOnCacheMiss:function(){return eh},fetchSegmentPrefetchesUsingDynamicRequest:function(){return e_},fulfillRouteCacheEntry:function(){return ea},getCurrentRouteCacheVersion:function(){return D},getCurrentSegmentCacheVersion:function(){return F},getStaleAt:function(){return eS},getStaleTimeMs:function(){return j},invalidateEntirePrefetchCache:function(){return L},invalidateRouteCacheEntries:function(){return U},invalidateSegmentCacheEntries:function(){return k},markRouteEntryAsDynamicRewrite:function(){return el},overwriteRevalidatingSegmentCacheEntry:function(){return W},pingInvalidationListeners:function(){return H},processRuntimePrefetchStream:function(){return eT},readOrCreateRevalidatingSegmentEntry:function(){return z},readOrCreateRouteCacheEntry:function(){return G},readOrCreateSegmentCacheEntry:function(){return q},readRouteCacheEntry:function(){return B},readSegmentCacheEntry:function(){return V},stripIsPartialByte:function(){return ej},upgradeToPendingSegment:function(){return Z},upsertSegmentEntry:function(){return Q},waitForSegmentCacheEntry:function(){return X},writeDynamicRenderResponseIntoCache:function(){return ev},writeRouteIntoCache:function(){return eu},writeStaticStageResponseIntoCache:function(){return eO}};for(var u in a)Object.defineProperty(t,u,{enumerable:!0,get:a[u]});let l=r(42306),o=r(77807),i=r(65944),s=r(36381),c=r(28952),f=r(64537),d=r(17640),p=r(73452),h=r(42661),y=r(82570),_=r(53739),g=r(83548),v=r(67808),m=r(72201),b=r(96697),E=r(34578),R=r(49102),P=r(59902),S=r(2118),O=r(34225),T=r(81315);function j(e){return 1e3*Math.max(e,30)}var w=((n={})[n.Empty=0]="Empty",n[n.Pending=1]="Pending",n[n.Fulfilled=2]="Fulfilled",n[n.Rejected=3]="Rejected",n);let A=["",{},null,"metadata-only"],C=(0,h.createCacheMap)(),x=(0,h.createCacheMap)(),M=null,N=0,I=0;function D(){return N}function F(){return I}function L(e,t){N++,I++,(0,v.pingVisibleLinks)(e,t),H(e,t)}function U(e,t){N++,(0,v.pingVisibleLinks)(e,t),H(e,t)}function k(e,t){I++,(0,v.pingVisibleLinks)(e,t),H(e,t)}function H(e,t){if(null!==M){let r=M;for(let n of(M=null,r))(0,s.isPrefetchTaskDirty)(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}function B(e,t){let r=(0,c.getRouteVaryPath)(t.pathname,t.search,t.nextUrl),n=(0,h.getFromCacheMap)(e,N,C,r,!1);return null!==n?n:null}function V(e,t){return(0,h.getFromCacheMap)(e,I,x,t,!1)}function X(e){let t=e.promise;return null===t&&(t=e.promise=(0,E.createPromiseWithResolvers)()),t.promise}function $(){return{canonicalUrl:null,status:0,blockedTasks:null,tree:null,metadata:null,couldBeIntercepted:!0,supportsPerSegmentPrefetching:!1,renderedSearch:null,ref:null,size:0,staleAt:1/0,version:N}}function G(e,t,r){null!==t.onInvalidate&&(null===M?M=new Set([t]):M.add(t));let n=B(e,r);if(null!==n)return n;let a=$(),u=(0,c.getRouteVaryPath)(r.pathname,r.search,r.nextUrl);return(0,h.setInCacheMap)(C,u,a,!1),a}function K(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let u=B(e,(0,d.createCacheKey)(a.href,r));if(null===u||2!==u.status)return null;let l=new URL(u.canonicalUrl,t.origin),o=""!==l.search?l.search:n,i=""!==u.renderedSearch?u.renderedSearch:n,s=new URL(u.canonicalUrl,location.origin);return s.search=o,{canonicalUrl:(0,f.createHrefFromUrl)(s),status:2,blockedTasks:null,tree:Y(u.tree,i),metadata:Y(u.metadata,i),couldBeIntercepted:u.couldBeIntercepted,supportsPerSegmentPrefetching:u.supportsPerSegmentPrefetching,hasDynamicRewrite:u.hasDynamicRewrite,renderedSearch:i,ref:null,size:0,staleAt:u.staleAt,version:u.version}}function Y(e,t){let r=null,n=e.slots;if(null!==n)for(let e in r={},n){let a=n[e];r[e]=Y(a,t)}return e.isPage?{requestKey:e.requestKey,segment:e.segment,refreshState:e.refreshState,varyPath:(0,c.clonePageVaryPathWithNewSearchParams)(e.varyPath,t),isPage:!0,slots:r,prefetchHints:e.prefetchHints}:{requestKey:e.requestKey,segment:e.segment,refreshState:e.refreshState,varyPath:e.varyPath,isPage:!1,slots:r,prefetchHints:e.prefetchHints}}function q(e,t,r){let n=V(e,r.varyPath);if(null!==n)return n;let a=(0,c.getSegmentVaryPathForRequest)(t,r),u=J(e);return(0,h.setInCacheMap)(x,a,u,!1),u}function z(e,t,r){var n;let a=(n=r.varyPath,(0,h.getFromCacheMap)(e,I,x,n,!0));if(null!==a)return a;let u=(0,c.getSegmentVaryPathForRequest)(t,r),l=J(e);return(0,h.setInCacheMap)(x,u,l,!0),l}function W(e,t,r){let n=(0,c.getSegmentVaryPathForRequest)(t,r),a=J(e);return(0,h.setInCacheMap)(x,n,a,!0),a}function Q(e,t,r){if((0,h.isValueExpired)(e,I,r))return null;let n=V(e,t);if(null!==n){var a;if(r.fetchStrategy!==n.fetchStrategy&&(a=n.fetchStrategy,!(ar?null:eo(Z(t,b.FetchStrategy.Full),a.rsc,r,!1)}return null}function et(e,t){let r=t.varyPath,n=(0,R.readFromBFCache)(r);if(null!==n){let r=n.navigatedAt+g.STATIC_STALETIME_MS;if(e>r)return null;let a=eo(Z(J(e),b.FetchStrategy.Full),n.rsc,r,!1),u=Q(e,(0,c.getSegmentVaryPathForRequest)(b.FetchStrategy.Full,t),a);if(null!==u&&2===u.status)return u}return null}function er(e){let t=e.blockedTasks;if(null!==t){for(let e of t)(0,s.pingPrefetchTask)(e);e.blockedTasks=null}}function en(e){return{requestKey:y.HEAD_REQUEST_KEY,segment:y.HEAD_REQUEST_KEY,refreshState:null,varyPath:e,isPage:!0,slots:null,prefetchHints:0}}function ea(e,t,r,n,a,u,l){let o=(0,c.getRenderedSearchFromVaryPath)(n)??"";return t.status=2,t.tree=r,t.metadata=en(n),t.staleAt=e+g.STATIC_STALETIME_MS,t.couldBeIntercepted=a,t.canonicalUrl=u,t.renderedSearch=o,t.supportsPerSegmentPrefetching=l,t.hasDynamicRewrite=!1,er(t),t}function eu(e,t,r,n,a,u,l,o){let i=ea(e,$(),n,a,u,l,o),s=i.renderedSearch,f=(0,c.getFulfilledRouteVaryPath)(t,s,r,u);return(0,h.setInCacheMap)(C,f,i,!1),i}function el(e){e.hasDynamicRewrite=!0}function eo(e,t,r,n){return e.status=2,e.rsc=t,e.staleAt=r,e.isPartial=n,null!==e.promise&&(e.promise.resolve(e),e.promise=null),e}function ei(e,t){e.status=3,e.staleAt=t,er(e)}function es(e,t){e.status=3,e.staleAt=t,null!==e.promise&&(e.promise.resolve(null),e.promise=null)}function ec(e,t,r){return ed(e,y.ROOT_SEGMENT_REQUEST_KEY,null,t,r)}function ef(e,t,r,n,a){let u=e.isPage?(0,c.getPartialPageVaryPath)(e.varyPath):(0,c.getPartialLayoutVaryPath)(e.varyPath),l=r[0],o=e.requestKey,i=(0,y.createSegmentRequestKeyPart)(l);return ed(r,(0,y.appendSegmentRequestKeyPart)(o,t,i),u,n,a)}function ed(e,t,r,n,a){let u,l,o,i,s=e[0],f=e[2]??null,d=null!==f?{canonicalUrl:f[0],renderedSearch:f[1]}:null,p=null!==d?d.renderedSearch:n;if(Array.isArray(s)){o=!1;let e=s[1],n=s[0];l=(0,c.appendLayoutVaryPath)(r,e,n),i=(0,c.finalizeLayoutVaryPath)(t,l),u=s}else l=r,t.endsWith(m.PAGE_SEGMENT_KEY)?(o=!0,u=m.PAGE_SEGMENT_KEY,i=(0,c.finalizePageVaryPath)(t,p,l),null===a.metadataVaryPath&&(a.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(t,p,l))):(o=!1,u=s,i=(0,c.finalizeLayoutVaryPath)(t,l));let h=null,_=e[1];for(let e in _){let r=_[e],n=r[0],u=(0,y.createSegmentRequestKeyPart)(n),o=ed(r,(0,y.appendSegmentRequestKeyPart)(t,e,u),l,p,a);null===h?h={[e]:o}:h[e]=o}return{requestKey:t,segment:u,refreshState:d,varyPath:i,isPage:o,slots:h,prefetchHints:e[4]??0}}async function ep(e,t){let r=t.pathname,n=t.search,a=t.nextUrl,u={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:"/_tree"};null!==a&&(u[o.NEXT_URL]=a);try{let t,s,d=new URL(r+n,location.origin);if(t=await eb(d,u),s=null!==t&&t.redirected?new URL(t.url):d,!t||!t.ok||204===t.status||!t.body)return ei(e,Date.now()+1e4),null;let g=(0,f.createHrefFromUrl)(s),v=t.headers.get("vary"),j=null!==v&&v.includes(o.NEXT_URL),w=(0,E.createPromiseWithResolvers)(),A="2"===t.headers.get(o.NEXT_DID_POSTPONE_HEADER);if(A){let n,l,{stream:o,size:s}=await eE(t.body);w.resolve(),(0,h.setSizeInCacheMap)(e,s);let f=await (0,i.createFromNextReadableStream)(o,u,{allowPartialStream:!0});if((t.headers.get(T.NEXT_NAV_DEPLOYMENT_ID_HEADER)??f.buildId)!==(0,O.getNavigationBuildId)())return ei(e,Date.now()+1e4),null;let d=(0,p.getRenderedPathname)(t),_=(0,p.getRenderedSearch)(t),v={metadataVaryPath:null},b=(n=d.split("/").filter(e=>""!==e),l=y.ROOT_SEGMENT_REQUEST_KEY,function e(t,r,n,a,u,l,o,i){let s,f,d=null,h=t.slots;if(null!==h)for(let t in s=!1,f=(0,c.finalizeLayoutVaryPath)(a,n),d={},h){let r,s,f,_=h[t],g=_.name,v=_.param;if(null!==v){let e=(0,p.parseDynamicParamFromURLPart)(v.type,u,l),t=null!==v.key?v.key:(0,p.getCacheKeyForDynamicParam)(e,"");f=(0,c.appendLayoutVaryPath)(n,t,g),s=[g,t,v.type,v.siblings],r=!0}else f=n,s=g,r=(0,p.doesStaticSegmentAppearInURL)(g);let m=r?l+1:l,b=(0,y.createSegmentRequestKeyPart)(s),E=(0,y.appendSegmentRequestKeyPart)(a,t,b);d[t]=e(_,s,f,E,u,m,o,i)}else a.endsWith(m.PAGE_SEGMENT_KEY)?(s=!0,f=(0,c.finalizePageVaryPath)(a,o,n),null===i.metadataVaryPath&&(i.metadataVaryPath=(0,c.finalizeMetadataVaryPath)(a,o,n))):(s=!1,f=(0,c.finalizeLayoutVaryPath)(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:f,isPage:s,slots:d,prefetchHints:t.prefetchHints}}(f.tree,l,null,y.ROOT_SEGMENT_REQUEST_KEY,n,0,_,v)),E=v.metadataVaryPath;if(null===E)return ei(e,Date.now()+1e4),null;(0,P.discoverKnownRoute)(Date.now(),r,a,e,b,E,j,g,A,!1)}else{let{stream:n,size:s}=await eE(t.body);w.resolve(),(0,h.setSizeInCacheMap)(e,s);let c=await (0,i.createFromNextReadableStream)(n,u,{allowPartialStream:!0});if((t.headers.get(T.NEXT_NAV_DEPLOYMENT_ID_HEADER)??c.b)!==(0,O.getNavigationBuildId)())return ei(e,Date.now()+1e4),null;let f=c.h,d=null!==f?(0,l.readVaryParams)(f):null;!function(e,t,r,n,a,u,l,i,s,c,f){let d=(0,p.getRenderedSearch)(r),h=(0,_.normalizeFlightData)(n.f);if("string"==typeof h||1!==h.length)return ei(a,e+1e4);let y=h[0];if(!y.isRootRender)return ei(a,e+1e4);let g=y.tree,v="1"===r.headers.get(o.NEXT_DID_POSTPONE_HEADER),m={metadataVaryPath:null},b=ec(g,d,m),E=m.metadataVaryPath;if(null===E)return ei(a,e+1e4);(0,P.discoverKnownRoute)(e,c,f,a,b,E,u,l,i,!1);let O=(0,S.convertServerPatchToFullTree)(e,g,h,d,R.UnknownDynamicStaleTime);ev(e,t,h,r.headers.get(T.NEXT_NAV_DEPLOYMENT_ID_HEADER)??n.b,v,s,eP(e,r),O,null)}(Date.now(),b.FetchStrategy.LoadingBoundary,t,c,e,j,g,A,d,r,a)}if(!j){let t=(0,c.getFulfilledRouteVaryPath)(r,n,a,j);(0,h.setInCacheMap)(C,t,e,!1)}return{value:null,closed:w.promise}}catch(t){return ei(e,Date.now()+1e4),null}}async function eh(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),u=r.nextUrl,l=n.requestKey,s=l===y.ROOT_SEGMENT_REQUEST_KEY?"/_index":l,f={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:s};null!==u&&(f[o.NEXT_URL]=u);try{let e=await eb(a,f);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(o.NEXT_DID_POSTPONE_HEADER)||!e.body)return es(t,Date.now()+1e4),null;let r=(0,E.createPromiseWithResolvers)(),{stream:u,size:l}=await eE(e.body);r.resolve(),(0,h.setSizeInCacheMap)(t,l);let s=await (0,i.createFromNextReadableStream)(u,f,{allowPartialStream:!0});if((e.headers.get(T.NEXT_NAV_DEPLOYMENT_ID_HEADER)??s.buildId)!==(0,O.getNavigationBuildId)())return es(t,Date.now()+1e4),null;let d=Date.now(),p=d+j(s.staleTime),y=eo(t,s.rsc,p,s.isPartial);s.varyParams;let _=(0,c.getSegmentVaryPathForRequest)(t.fetchStrategy,n);return Q(d,_,y),{value:y,closed:r.promise}}catch(e){return es(t,Date.now()+1e4),null}}async function ey(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),u=t.nextUrl,l={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_PREFETCH_HEADER]:"1",[o.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]:"/"+m.PAGE_SEGMENT_KEY};null!==u&&(l[o.NEXT_URL]=u);try{let t=await eb(a,l);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(o.NEXT_DID_POSTPONE_HEADER)||!t.body)return eg(n,Date.now()+1e4),null;let u=(0,E.createPromiseWithResolvers)(),{stream:s}=await eE(t.body);u.resolve();let c=await (0,i.createFromNextReadableStream)(s,l,{allowPartialStream:!0});if((t.headers.get(T.NEXT_NAV_DEPLOYMENT_ID_HEADER)??c.tree.segment.buildId)!==(0,O.getNavigationBuildId)())return eg(n,Date.now()+1e4),null;let f=Date.now();!function e(t,r,n,a,u){let l=a.segment,o=t+j(l.staleTime),i=u.get(n.requestKey);if(void 0!==i)eo(i,l.rsc,o,l.isPartial);else{let e=q(t,b.FetchStrategy.PPR,n);0===e.status&&eo(Z(e,b.FetchStrategy.PPR),l.rsc,o,l.isPartial)}if(null!==n.slots&&null!==a.slots)for(let l in n.slots){let o=n.slots[l],i=a.slots[l];void 0!==i&&e(t,r,o,i,u)}}(f,e,r,c.tree,n);let d=f+j(c.head.staleTime),p=e.metadata.requestKey,h=n.get(p);if(void 0!==h)eo(h,c.head.rsc,d,c.head.isPartial);else{let t=q(f,b.FetchStrategy.PPR,e.metadata);0===t.status&&eo(Z(t,b.FetchStrategy.PPR),c.head.rsc,d,c.head.isPartial)}return eg(n,Date.now()+1e4),{value:null,closed:u.promise}}catch(e){return eg(n,Date.now()+1e4),null}}async function e_(e,t,r,n,a){let u=e.key,s=new URL(t.canonicalUrl,location.origin),c=u.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=A);let f={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,_.prepareFlightRouterStateForRequest)(n)};switch(null!==c&&(f[o.NEXT_URL]=c),r){case b.FetchStrategy.Full:break;case b.FetchStrategy.PPRRuntime:f[o.NEXT_ROUTER_PREFETCH_HEADER]="2";break;case b.FetchStrategy.LoadingBoundary:f[o.NEXT_ROUTER_PREFETCH_HEADER]="1"}try{let e,u=await eb(s,f);if(!u||!u.ok||!u.body)return eg(a,Date.now()+1e4),null;let o=(0,p.getRenderedSearch)(u);if(o!==t.renderedSearch)return eg(a,Date.now()+1e4),null;let c=(0,E.createPromiseWithResolvers)(),v=null,m=null;if(r===b.FetchStrategy.Full){var d,y,g;let t,r;d=u.body,y=c.resolve,g=function(e){if(null===v)return;let t=e/v.length;for(let e of v)(0,h.setSizeInCacheMap)(e,t)},t=0,r=d.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),g(t+=a.byteLength);continue}e.close(),y();return}}})}else{let{stream:t,size:r}=await eE(u.body);c.resolve(),e=t,m=r}let[P,O]=await Promise.all([(0,i.createFromNextReadableStream)(e,f,{allowPartialStream:!0}),u.cacheData]),j=P.h,w=null!==j?(0,l.readVaryParams)(j):null,A=Date.now(),C=await eS(A,P.s,u),x=r===b.FetchStrategy.PPRRuntime&&(O?.isResponsePartial??!1),M=u.headers.get(T.NEXT_NAV_DEPLOYMENT_ID_HEADER)??P.b,N=(0,_.normalizeFlightData)(P.f);if("string"==typeof N)return eg(a,Date.now()+1e4),null;let I=(0,S.convertServerPatchToFullTree)(A,n,N,o,R.UnknownDynamicStaleTime);if(v=ev(A,r,N,M,x,w,C,I,a),null!==m&&null!==v&&v.length>0){let e=m/v.length;for(let t of v)(0,h.setSizeInCacheMap)(t,e)}return{value:null,closed:c.promise}}catch(e){return eg(a,Date.now()+1e4),null}}function eg(e,t){let r=[];for(let n of e.values())1===n.status?es(n,t):2===n.status&&r.push(n);return r}function ev(e,t,r,n,a,u,o,i,s){if(n&&n!==(0,O.getNavigationBuildId)())return null!==s&&eg(s,e+1e4),null;let c=i.routeTree,f=null!==i.metadataVaryPath?en(i.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let u=n.segmentPath,i=c;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function eR(e,t){return ee.close()}),isPartial:!1};let a=n[0],u=35===a||126===a,l=u?n.byteLength>1?n.subarray(1):null:n;return{isPartial:!!u&&126===a,stream:new ReadableStream({start(e){l&&e.enqueue(l)},async pull(e){let r=await t.read();r.done?e.close():e.enqueue(r.value)}})}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},62404:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={ErrorBoundary:function(){return y},ErrorBoundaryHandler:function(){return h}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(21512),l=r(73365),o=u._(r(1521)),i=r(9027),s=r(10324);r(88422);let c=r(993),f=r(33260),d=r(96745),p=(0,f.isBot)(window.navigator.userAgent);class h extends o.default.Component{static{this.contextType=d.AppRouterContext}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,o.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,s.isNextRouterError)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return e.pathname!==t.previousPathname&&t.error?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&!p?((0,c.handleISRError)({error:this.state.error}),(0,l.jsxs)(l.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,l.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function y({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let a=(0,i.useUntrackedPathname)();return e?(0,l.jsx)(h,{pathname:a,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,l.jsx)(l.Fragment,{children:n})}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63260:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={refreshDynamicData:function(){return d},refreshReducer:function(){return f}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(70892),l=r(2118),o=r(60798),i=r(1138),s=r(41116),c=r(49102);function f(e,t){{let t=e.nextUrl,r=e.tree;(0,o.invalidateSegmentCacheEntries)(t,r)}return d(e,s.FreshnessPolicy.RefreshAll)}function d(e,t){(0,c.invalidateBfCache)();let r=e.nextUrl,n=(0,i.hasInterceptionRouteInCurrentTree)(e.tree)?e.previousNextUrl||r:null,a=e.canonicalUrl,o=new URL(a,location.origin),s=e.renderedSearch,f=e.tree,d=u.ScrollBehavior.NoScroll,p=Date.now(),h=(0,l.convertServerPatchToFullTree)(p,f,null,s,c.UnknownDynamicStaleTime);return(0,l.navigateToKnownRoute)(p,e,o,a,h,o,s,e.cache,f,t,n,d,"replace",null,null)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63565:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"findHeadInCache",{enumerable:!0,get:function(){return u}});let n=r(72201),a=r(26783);function u(e,t){return function e(t,r,u,l){if(0===Object.keys(r).length)return[t,u,l];let o=Object.keys(r).filter(e=>"children"!==e);"children"in r&&o.unshift("children");let i=t.slots;if(null!==i)for(let t of o){let[l,o]=r[t];if(l===n.DEFAULT_SEGMENT_KEY)continue;let s=i[t];if(!s)continue;let c=e(s,o,u+"/"+(0,a.createRouterCacheKey)(l),u+"/"+(0,a.createRouterCacheKey)(l,!0));if(c)return c}return null}(e,t,"","")}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},63731:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),r(94855);let n=r(68491),a=r(91319);if((0,n.getAssetToken)()){let e=(0,n.getAssetTokenQuery)(),t=r.u;r.u=(...r)=>(0,a.encodeURIPath)(t(...r))+e;let u=r.k;r.k=(...t)=>u(...t)+e;let l=r.miniCssF;r.miniCssF=(...t)=>l(...t)+e}else{let e=r.u;r.u=(...t)=>(0,a.encodeURIPath)(e(...t))}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},64537:(e,t)=>{"use strict";function r(e,t=!0){return e.pathname+e.search+(t?e.hash:"")}Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createHrefFromUrl",{enumerable:!0,get:function(){return r}}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},64633:(e,t)=>{"use strict";function r(e,t){var r=e.length;for(e.push(t);0>>1,a=e[n];if(0>>1;nu(i,r))su(c,i)?(e[n]=c,e[s]=r,n=s):(e[n]=i,e[o]=r,n=o);else if(su(c,r))e[n]=c,e[s]=r,n=s;else break}}return t}function u(e,t){var r=e.sortIndex-t.sortIndex;return 0!==r?r:e.id-t.id}if(t.unstable_now=void 0,"object"==typeof performance&&"function"==typeof performance.now){var l,o=performance;t.unstable_now=function(){return o.now()}}else{var i=Date,s=i.now();t.unstable_now=function(){return i.now()-s}}var c=[],f=[],d=1,p=null,h=3,y=!1,_=!1,g=!1,v=!1,m="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,E="u">typeof setImmediate?setImmediate:null;function R(e){for(var t=n(f);null!==t;){if(null===t.callback)a(f);else if(t.startTime<=e)a(f),t.sortIndex=t.expirationTime,r(c,t);else break;t=n(f)}}function P(e){if(g=!1,R(e),!_)if(null!==n(c))_=!0,S||(S=!0,l());else{var t=n(f);null!==t&&M(P,t.startTime-e)}}var S=!1,O=-1,T=5,j=-1;function w(){return!!v||!(t.unstable_now()-je&&w());){var o=p.callback;if("function"==typeof o){p.callback=null,h=p.priorityLevel;var i=o(p.expirationTime<=e);if(e=t.unstable_now(),"function"==typeof i){p.callback=i,R(e),r=!0;break t}p===n(c)&&a(c),R(e)}else a(c);p=n(c)}if(null!==p)r=!0;else{var s=n(f);null!==s&&M(P,s.startTime-e),r=!1}}break e}finally{p=null,h=u,y=!1}}}finally{r?l():S=!1}}}if("function"==typeof E)l=function(){E(A)};else if("u">typeof MessageChannel){var C=new MessageChannel,x=C.port2;C.port1.onmessage=A,l=function(){x.postMessage(null)}}else l=function(){m(A,0)};function M(e,r){O=m(function(){e(t.unstable_now())},r)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_forceFrameRate=function(e){0>e||125o?(e.sortIndex=u,r(f,e),null===n(c)&&e===n(f)&&(g?(b(O),O=-1):g=!0,M(P,u-o))):(e.sortIndex=i,r(c,e),_||y||(_=!0,S||(S=!0,l()))),e},t.unstable_shouldYield=w,t.unstable_wrapCallback=function(e){var t=h;return function(){var r=h;h=t;try{return e.apply(this,arguments)}finally{h=r}}}},65944:(e,t,r)=>{"use strict";let n;Object.defineProperty(t,"__esModule",{value:!0});var a={createFetch:function(){return O},createFromNextReadableStream:function(){return T},decodeStaticStage:function(){return S},fetchServerResponse:function(){return E},processFetch:function(){return R},resolveStaticStageData:function(){return P}};for(var u in a)Object.defineProperty(t,u,{enumerable:!0,get:a[u]});let l=r(18423);r(92495);let o=r(77807),i=r(90476),s=r(33200),c=r(53739),f=r(59827),d=r(73452),p=r(68491),h=r(34225),y=r(81315);r(60798);let _=r(49102),g=l.createFromReadableStream,v=l.createFromFetch;function m(e){return(0,d.urlToUrlWithoutFlightMarker)(new URL(e,location.origin)).toString()}let b=!1;async function E(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[o.RSC_HEADER]:"1",[o.NEXT_ROUTER_STATE_TREE_HEADER]:(0,c.prepareFlightRouterStateForRequest)(r,t.isHmrRefresh)};n&&(a[o.NEXT_URL]=n);try{let t=await O(e,a,"auto",!0),r=(0,d.urlToUrlWithoutFlightMarker)(new URL(t.url)),n=t.redirected?r:e,u=t.headers.get("content-type")||"",l=!!t.headers.get("vary")?.includes(o.NEXT_URL),i=!!t.headers.get(o.NEXT_DID_POSTPONE_HEADER);if(!u.startsWith(o.RSC_CONTENT_TYPE_HEADER)||!t.ok||!t.body)return e.hash&&(r.hash=e.hash),m(r.toString());let s=t.flightResponsePromise;null===s&&(s=T(t.body,a,{allowPartialStream:i}));let[f,p]=await Promise.all([s,t.cacheData]);if((t.headers.get(y.NEXT_NAV_DEPLOYMENT_ID_HEADER)??f.b)!==(0,h.getNavigationBuildId)())return m(t.url);let g=(0,c.normalizeFlightData)(f.f);if("string"==typeof g)return m(g);let v=null!==p?await P(p,f,a):null;return{flightData:g,canonicalUrl:n,renderedSearch:f.q,couldBeIntercepted:l,supportsPerSegmentPrefetching:f.S,postponed:i,dynamicStaleTime:f.d??_.UnknownDynamicStaleTime,staticStageData:v,runtimePrefetchStream:f.p??null,responseHeaders:t.headers,debugInfo:s._debugInfo??null}}catch(t){return b||console.error(`Failed to fetch RSC payload for ${e}. Falling back to browser navigation.`,t),e.toString()}}async function R(e){return{response:e,cacheData:null}}async function P(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await S(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function S(e,t,r){var n,a;let u,l;return T((n=e,a=await t,u=n.getReader(),l=a,new ReadableStream({async pull(e){if(l<=0){u.cancel(),e.close();return}let{done:t,value:r}=await u.read();t?e.close():r.byteLength<=l?(e.enqueue(r),l-=r.byteLength):(e.enqueue(r.subarray(0,l)),l=0,u.cancel(),e.close())},cancel(){u.cancel()}})),r,{allowPartialStream:!0})}async function O(e,t,r,a,u){var l,c;let d=(0,p.getDeploymentId)();d&&(t["x-deployment-id"]=d);let h=new URL(e);(0,f.setCacheBustingSearchParam)(h,t);let y=fetch(h,{credentials:"same-origin",headers:t,priority:r||void 0,signal:u}).then(R),_=y.then(({response:e})=>e),g=a?(l=_,c=t,v(l,{callServer:i.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(c)})):null,m=await _,b=m.redirected,E=new URL(m.url,h);return E.searchParams.delete(o.NEXT_RSC_UNION_QUERY),{url:E.href,redirected:b,ok:m.ok,headers:m.headers,body:m.body,status:m.status,flightResponsePromise:g,cacheData:y.then(({cacheData:e})=>e)}}function T(e,t,r){return g(e,{callServer:i.callServer,findSourceMapURL:s.findSourceMapURL,debugChannel:n&&n(t),unstable_allowPartialStream:r?.allowPartialStream})}window.addEventListener("pagehide",()=>{b=!0}),window.addEventListener("pageshow",()=>{b=!1}),("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},67285:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"notFound",{enumerable:!0,get:function(){return u}});let n=r(93028),a=`${n.HTTP_ERROR_FALLBACK_ERROR_CODE};404`;function u(){let e=Object.defineProperty(Error(a),"__NEXT_ERROR_CODE",{value:"E1041",enumerable:!1,configurable:!0});throw e.digest=a,e}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},67808:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={IDLE_LINK_STATUS:function(){return f},PENDING_LINK_STATUS:function(){return c},getLinkForCurrentNavigation:function(){return h},mountFormInstance:function(){return E},mountLinkInstance:function(){return b},onLinkVisibilityChanged:function(){return P},onNavigationIntent:function(){return S},pingVisibleLinks:function(){return T},setLinkForCurrentNavigation:function(){return d},unmountLinkForCurrentNavigation:function(){return p},unmountPrefetchableInstance:function(){return R}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(96697),l=r(17640),o=r(36381),i=r(1521),s=null,c={pending:!0},f={pending:!1};function d(e){(0,i.startTransition)(()=>{s?.setOptimisticLinkStatus(f),e?.setOptimisticLinkStatus(c),s=e})}function p(e){s===e&&(s=null)}function h(){return s}let y="function"==typeof WeakMap?new WeakMap:new Map,_=new Set,g="function"==typeof IntersectionObserver?new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;P(t.target,e)}},{rootMargin:"200px"}):null;function v(e,t){void 0!==y.get(e)&&R(e),y.set(e,t),null!==g&&g.observe(e)}function m(e){{let{createPrefetchURL:t}=r(68596);try{return t(e)}catch{return("function"==typeof reportError?reportError:console.error)(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),null}}}function b(e,t,r,n,a,u){if(a){let a=m(t);if(null!==a){let t={router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:u};return v(e,t),t}}return{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:null,setOptimisticLinkStatus:u}}function E(e,t,r,n){let a=m(t);null===a||v(e,{router:r,fetchStrategy:n,isVisible:!1,prefetchTask:null,prefetchHref:a.href,setOptimisticLinkStatus:null})}function R(e){let t=y.get(e);if(void 0!==t){y.delete(e),_.delete(t);let r=t.prefetchTask;null!==r&&(0,o.cancelPrefetchTask)(r)}null!==g&&g.unobserve(e)}function P(e,t){let r=y.get(e);void 0!==r&&(r.isVisible=t,t?_.add(r):_.delete(r),O(r,u.PrefetchPriority.Default))}function S(e,t){let r=y.get(e);void 0!==r&&void 0!==r&&O(r,u.PrefetchPriority.Intent)}function O(e,t){{let n=e.prefetchTask;if(!e.isVisible){null!==n&&(0,o.cancelPrefetchTask)(n);return}let{getCurrentAppRouterState:a}=r(97488),u=a();if(null!==u){let r=u.tree;if(null===n){let n=u.nextUrl,a=(0,l.createCacheKey)(e.prefetchHref,n);e.prefetchTask=(0,o.schedulePrefetchTask)(a,r,e.fetchStrategy,t,null)}else(0,o.reschedulePrefetchTask)(n,r,e.fetchStrategy,t)}}}function T(e,t){for(let r of _){let n=r.prefetchTask;if(null!==n&&!(0,o.isPrefetchTaskDirty)(n,e,t))continue;null!==n&&(0,o.cancelPrefetchTask)(n);let a=(0,l.createCacheKey)(r.prefetchHref,e);r.prefetchTask=(0,o.schedulePrefetchTask)(a,t,r.fetchStrategy,u.PrefetchPriority.Default,null)}}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68491:(e,t)=>{"use strict";let r;Object.defineProperty(t,"__esModule",{value:!0});var n={getAssetToken:function(){return o},getAssetTokenQuery:function(){return i},getDeploymentId:function(){return u},getDeploymentIdQuery:function(){return l}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});function u(){return r}function l(e=!1){return r?`${e?"&":"?"}dpl=${r}`:""}function o(){return!1}function i(e=!1){return""}r=document.documentElement.dataset.dplId,delete document.documentElement.dataset.dplId},68596:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n={createPrefetchURL:function(){return i},isExternalURL:function(){return o}};for(var a in n)Object.defineProperty(t,a,{enumerable:!0,get:n[a]});let u=r(33260),l=r(77675);function o(e){return e.origin!==window.location.origin}function i(e){let t;if((0,u.isBot)(window.navigator.userAgent))return null;try{t=new URL((0,l.addBasePath)(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return o(t)?null:t}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},68659:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"createRenderParamsFromClient",{enumerable:!0,get:function(){return n}});let r=new WeakMap;function n(e){let t=r.get(e);if(t)return t;let n=Promise.resolve(e);return r.set(e,n),n}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},69664:(e,t,r)=>{"use strict";var n=r(89651),a=Symbol.for("react.transitional.element"),u=Symbol.for("react.portal"),l=Symbol.for("react.fragment"),o=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.consumer"),c=Symbol.for("react.context"),f=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),p=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),y=Symbol.for("react.activity"),_=Symbol.for("react.view_transition"),g=Symbol.iterator,v={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},m=Object.assign,b={};function E(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||v}function R(){}function P(e,t,r){this.props=e,this.context=t,this.refs=b,this.updater=r||v}E.prototype.isReactComponent={},E.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},E.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},R.prototype=E.prototype;var S=P.prototype=new R;S.constructor=P,m(S,E.prototype),S.isPureReactComponent=!0;var O=Array.isArray;function T(){}var j={H:null,A:null,T:null,S:null},w=Object.prototype.hasOwnProperty;function A(e,t,r){var n=r.ref;return{$$typeof:a,type:e,key:t,ref:void 0!==n?n:null,props:r}}function C(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}var x=/\/+/g;function M(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function N(e,t,r){if(null==e)return e;var n=[],l=0;return!function e(t,r,n,l,o){var i,s,c,f=typeof t;("undefined"===f||"boolean"===f)&&(t=null);var d=!1;if(null===t)d=!0;else switch(f){case"bigint":case"string":case"number":d=!0;break;case"object":switch(t.$$typeof){case a:case u:d=!0;break;case h:return e((d=t._init)(t._payload),r,n,l,o)}}if(d)return o=o(t),d=""===l?"."+M(t,0):l,O(o)?(n="",null!=d&&(n=d.replace(x,"$&/")+"/"),e(o,r,n,"",function(e){return e})):null!=o&&(C(o)&&(i=o,s=n+(null==o.key||t&&t.key===o.key?"":(""+o.key).replace(x,"$&/")+"/")+d,o=A(i.type,s,i.props)),r.push(o)),1;d=0;var p=""===l?".":l+":";if(O(t))for(var y=0;y{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,n,a={ACTION_HMR_REFRESH:function(){return c},ACTION_NAVIGATE:function(){return o},ACTION_REFRESH:function(){return l},ACTION_RESTORE:function(){return i},ACTION_SERVER_ACTION:function(){return f},ACTION_SERVER_PATCH:function(){return s},PrefetchKind:function(){return d},ScrollBehavior:function(){return p}};for(var u in a)Object.defineProperty(t,u,{enumerable:!0,get:a[u]});let l="refresh",o="navigate",i="restore",s="server-patch",c="hmr-refresh",f="server-action";var d=((r={}).AUTO="auto",r.FULL="full",r),p=((n={})[n.Default=0]="Default",n[n.NoScroll=1]="NoScroll",n);("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},71445:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"pathHasPrefix",{enumerable:!0,get:function(){return a}});let n=r(96949);function a(e,t){if("string"!=typeof e)return!1;let{pathname:r}=(0,n.parsePath)(e);return r===t||r.startsWith(t+"/")}},72201:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r={DEFAULT_SEGMENT_KEY:function(){return c},NOT_FOUND_SEGMENT_KEY:function(){return f},PAGE_SEGMENT_KEY:function(){return s},addSearchParamsIfPageSegment:function(){return o},computeSelectedLayoutSegment:function(){return i},getSegmentValue:function(){return a},getSelectedLayoutSegmentPath:function(){return function e(t,r,n=!0,u=[]){let l;if(n)l=t[1][r];else{let e=t[1];l=e.children??Object.values(e)[0]}if(!l)return u;let o=a(l[0]);return!o||o.startsWith(s)?u:(u.push(o),e(l,r,!1,u))}},isGroupSegment:function(){return u},isParallelRouteSegment:function(){return l}};for(var n in r)Object.defineProperty(t,n,{enumerable:!0,get:r[n]});function a(e){return Array.isArray(e)?e[1]:e}function u(e){return"("===e[0]&&e.endsWith(")")}function l(e){return e.startsWith("@")&&"@children"!==e}function o(e,t){if(e.includes(s)){let e=JSON.stringify(t);return"{}"!==e?s+"?"+e:s}return e}function i(e,t){if(!e||0===e.length)return null;let r="children"===t?e[0]:e[e.length-1];return r===c?null:r}let s="__PAGE__",c="__DEFAULT__",f="/_not-found"},72262:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"hmrRefreshReducer",{enumerable:!0,get:function(){return u}});let n=r(63260),a=r(41116);function u(e){return(0,n.refreshDynamicData)(e,a.FreshnessPolicy.HMRRefresh)}("function"==typeof t.default||"object"==typeof t.default&&null!==t.default)&&void 0===t.default.__esModule&&(Object.defineProperty(t.default,"__esModule",{value:!0}),Object.assign(t.default,t),e.exports=t.default)},72501:(e,t,r)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"getAssetPrefix",{enumerable:!0,get:function(){return a}});let n=r(92495);function a(){let e=document.currentScript;if(!(e instanceof HTMLScriptElement))throw Object.defineProperty(new n.InvariantError(`Expected document.currentScript to be a `))}class e6{constructor(e){this._stream=e}tee(){if(null===this._stream)throw Object.defineProperty(Error("Cannot tee a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E106",enumerable:!1,configurable:!0});let e=this._stream.tee();return this._stream=e[0],e[1]}consume(){if(null===this._stream)throw Object.defineProperty(Error("Cannot consume a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E470",enumerable:!1,configurable:!0});let e=this._stream;return this._stream=null,e}}async function e8(e){let t=[],{prelude:r}=await e,n=r.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)return new e5(t);t.push(r)}}async function e9(e){let t=[],r=e.getReader();for(;;){let{done:e,value:n}=await r.read();if(e)break;t.push(n)}return new e5(t)}class e5{assertChunks(e){if(null===this._chunks)throw Object.defineProperty(new eU.z(`Cannot \`${e}\` on a ReactServerPrerenderResult that has already been consumed.`),"__NEXT_ERROR_CODE",{value:"E593",enumerable:!1,configurable:!0});return this._chunks}consumeChunks(e){let t=this.assertChunks(e);return this.consume(),t}consume(){this._chunks=null}constructor(e){this._chunks=e}asUnclosingStream(){return e7(this.assertChunks("asUnclosingStream()"))}consumeAsUnclosingStream(){return e7(this.consumeChunks("consumeAsUnclosingStream()"))}asStream(){return te(this.assertChunks("asStream()"))}consumeAsStream(){return te(this.consumeChunks("consumeAsStream()"))}}function e7(e){let t=0;return new ReadableStream({async pull(r){t`:"`))}catch(t){e.error(t)}},async pull(e){try{let{done:t,value:r}=await a.read();if(r)try{let a=i.decode(r,{stream:!t});e4(e,n,a)}catch{e4(e,n,r)}t&&e.close()}catch(t){e.error(t)}}})}function tn(){return new ReadableStream}function ta(e){return t=>{t.forEach((t,r)=>{e(r,t)})}}async function ti(e,t,r){return(0,eH.resume)(e,t,r)}function ts(e,t,r,n){return e.renderToReadableStream(t,r,n)}async function to(e){return ee(e)}async function tl(e,t){let r=await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,I.getTracer)().trace(D.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:{renderToReadableStream:eH.renderToReadableStream},element:e,streamOptions:t});return{stream:r,allReady:r.allReady,abort:void 0}}async function tu(e,t,r){let n=await (0,eH.resume)(e,t,r);return{stream:n,allReady:n.allReady,abort:void 0}}function tc(e){return e.prerender}let td=eB.prerender,tf=[X._A];function th(e){return{trailingSlash:e.trailingSlash,isStaticMetadataRouteFile:!1}}var tp=a("./dist/esm/server/web/spec-extension/adapters/headers.js"),tm=a("./dist/esm/server/web/spec-extension/adapters/request-cookies.js"),tg=a("./dist/esm/server/api-utils/index.js");class ty{constructor(e,t,r,n){var a;const i=e&&(0,tg.checkIsOnDemandRevalidate)(t,e).isOnDemandRevalidate,s=null==(a=r.get(tg.COOKIE_NAME_PRERENDER_BYPASS))?void 0:a.value;this._isEnabled=!!(!i&&s&&e&&s===e.previewModeId),this._previewModeId=null==e?void 0:e.previewModeId,this._mutableCookies=n}get isEnabled(){return this._isEnabled}enable(){if(!this._previewModeId)throw Object.defineProperty(Error("Invariant: previewProps missing previewModeId this should never happen"),"__NEXT_ERROR_CODE",{value:"E93",enumerable:!1,configurable:!0});this._mutableCookies.set({name:tg.COOKIE_NAME_PRERENDER_BYPASS,value:this._previewModeId,httpOnly:!0,sameSite:"none",secure:!0,path:"/"}),this._isEnabled=!0}disable(){this._mutableCookies.set({name:tg.COOKIE_NAME_PRERENDER_BYPASS,value:"",httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:new Date(0)}),this._isEnabled=!1}}function tv(e,t){if("x-middleware-set-cookie"in e.headers&&"string"==typeof e.headers["x-middleware-set-cookie"]){let r=e.headers["x-middleware-set-cookie"],n=new Headers;for(let e of function(e){var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(r))n.append("set-cookie",e);for(let e of new eA.VO(n).getAll())t.set(e)}}function tb(e,t,r,n,a,i,s,o,l,u,c){var d=e,f=t,h=r,p=n,m=a,g=i,y=u,v=s,b=o,w=l,S=c;function _(e){f&&f.setHeader("Set-Cookie",e)}let E={};return{type:"request",phase:"render",implicitTags:m,url:{pathname:h.pathname,search:h.search??""},rootParams:p,get headers(){return E.headers||(E.headers=function(e){let t=tp.o.from(e);for(let e of X.KD)t.delete(e);return tp.o.seal(t)}(d.headers)),E.headers},get cookies(){if(!E.cookies){let e=new eA.tm(tp.o.from(d.headers));tv(d,e),E.cookies=tm.Ck.seal(e)}return E.cookies},set cookies(value){E.cookies=value},get mutableCookies(){if(!E.mutableCookies){var R,k;let e,t=(R=d.headers,k=g||(f?_:void 0),e=new eA.tm(tp.o.from(R)),tm.K8.wrap(e,k));tv(d,t),E.mutableCookies=t}return E.mutableCookies},get userspaceMutableCookies(){return E.userspaceMutableCookies||(E.userspaceMutableCookies=(0,tm.EJ)(this)),E.userspaceMutableCookies},get draftMode(){return E.draftMode||(E.draftMode=new ty(v,d,this.cookies,this.mutableCookies)),E.draftMode},renderResumeDataCache:y??null,isHmrRefresh:b,serverComponentsHmrCache:w||globalThis.__serverComponentsHmrCache,fallbackParams:S}}var tw=a("./dist/esm/server/after/after-context.js");function tS(e){let t,r={then:(n,a)=>(t||(t=Promise.resolve(e())),t.then(e=>{r.value=e}).catch(()=>{}),t.then(n,a))};return r}var t_=a("./dist/esm/server/use-cache/handlers.js"),tE=a("./dist/esm/server/app-render/async-local-storage.js"),tR=a("./dist/esm/client/components/http-access-fallback/http-access-fallback.js"),tk=a("./dist/esm/client/components/redirect-error.js");function tx(e){return(0,tk.n)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function tP(e){if(!(0,tk.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function tC(e){if(!(0,tk.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}async function tT(e,t,r){let n=new Set;for(let t of(e=>{let t=["/layout"];if(e.startsWith("/")){let r=e.split("/");for(let e=1;ea.getExpiration(e)));return t}(a)}}a("../../app-render/action-async-storage.external").actionAsyncStorage;class tA extends eF{constructor(e,t={},r){super(e,{contentType:X.al,metadata:t,waitUntil:r})}}var tO=a("./dist/compiled/string-hash/index.js"),tj=a.n(tO);let t$=["useDeferredValue","useEffect","useEffectEvent","useImperativeHandle","useInsertionEffect","useLayoutEffect","useReducer","useRef","useState","useSyncExternalStore","useTransition","experimental_useOptimistic","useOptimistic"];function tI(e,t){if(e.message=t,e.stack){let r=e.stack.split("\n");r[0]=t,e.stack=r.join("\n")}}function tD(e){let t=e.stack;return t?t.replace(/^[^\n]*\n/,""):""}function tN(e){if("string"==typeof(null==e?void 0:e.message)){if(e.message.includes("Class extends value undefined is not a constructor or null")){let t="This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component";if(e.message.includes(t))return;tI(e,`${e.message} + +${t}`);return}if(e.message.includes("createContext is not a function"))return void tI(e,'createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');for(let t of t$)if(RegExp(`\\b${t}\\b.*is not a function`).test(e.message))return void tI(e,`${t} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`)}}var tM=a("./dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js"),tL=a("./dist/esm/client/components/hooks-server-context.js"),tU=a("./dist/esm/client/components/is-next-router-error.js"),tF=a("./dist/esm/server/app-render/dynamic-rendering.js");function tH(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function tB(e){let t;return tH(e)?e:Object.defineProperty(Error(!function(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}(e)?e+"":(t=new WeakSet,JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r}))),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}let tz=(e,t)=>"object"==typeof e&&null!==e&&"__NEXT_ERROR_CODE"in e?`${t}@${e.__NEXT_ERROR_CODE}`:t;function tq(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message&&e.message.startsWith("This rendered a large document (>")}var tX=a("./dist/esm/server/app-render/instant-validation/instant-validation-error.js");function tV(e){if((0,tM.C)(e)||(0,tU.p)(e)||(0,tL.isDynamicServerError)(e)||(0,tF.AA)(e)||(0,tX.R)(e))return e.digest}function tW(e,t,r,n,a){return i=>{var s;if("string"==typeof i)return tj()(i).toString();if(eM(i))return;let o=tV(i);if(o)return o;if(tq(i))return void console.error(i);let l=tB(i),u=!1;if(l.digest?r.has(l.digest)&&(l=r.get(l.digest),u=!0):l.digest=tz(l,tj()(l.message+(l.stack||"")).toString()),r.has(l.digest)||r.set(l.digest,l),e&&tN(l),!(t&&(null==l||null==(s=l.message)?void 0:s.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))){let e=a??(0,I.getTracer)().getActiveScopeSpan();e&&(e.recordException(l),e.setAttribute("error.type",l.name),e.setStatus({code:I.SpanStatusCode.ERROR,message:l.message})),n(l,u)}return l.digest}}function tG(e,t,r,n,a,i){return(s,o)=>{var l;if(tq(s))return void console.error(s);let u=!0;if(n.push(s),eM(s))return;let c=tV(s);if(c)return c;let d=tB(s);if(d.digest?r.has(d.digest)&&(s=r.get(d.digest),u=!1):d.digest=tz(d,tj()(d.message+((null==o?void 0:o.componentStack)||d.stack||"")).toString()),e&&tN(d),!(t&&(null==d||null==(l=d.message)?void 0:l.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))&&u){let e=i??(0,I.getTracer)().getActiveScopeSpan();e&&(e.recordException(d),e.setAttribute("error.type",d.name),e.setStatus({code:I.SpanStatusCode.ERROR,message:d.message})),a(d,o)}return d.digest}}let tJ={catchall:"c","catchall-intercepted-(..)(..)":"ci(..)(..)","catchall-intercepted-(.)":"ci(.)","catchall-intercepted-(..)":"ci(..)","catchall-intercepted-(...)":"ci(...)","optional-catchall":"oc",dynamic:"d","dynamic-intercepted-(..)(..)":"di(..)(..)","dynamic-intercepted-(.)":"di(.)","dynamic-intercepted-(..)":"di(..)","dynamic-intercepted-(...)":"di(...)"};var tK=a("./dist/esm/shared/lib/router/utils/get-segment-param.js"),tY=a("./dist/compiled/superstruct/index.cjs"),tQ=a.n(tY);let tZ=tQ().enums(["c","ci(..)(..)","ci(.)","ci(..)","ci(...)","oc","d","di(..)(..)","di(.)","di(..)","di(...)"]),t0=tQ().union([tQ().string(),tQ().tuple([tQ().string(),tQ().string(),tZ,tQ().nullable(tQ().array(tQ().string()))])]),t1=tQ().tuple([t0,tQ().record(tQ().string(),tQ().lazy(()=>t1)),tQ().optional(tQ().nullable(tQ().tuple([tQ().string(),tQ().string()]))),tQ().optional(tQ().nullable(tQ().union([tQ().literal("refetch"),tQ().literal("inside-shared-layout"),tQ().literal("metadata-only")]))),tQ().optional(tQ().number())]);var t2=((c={})[c.HasRuntimePrefetch=1]="HasRuntimePrefetch",c[c.SubtreeHasInstant=2]="SubtreeHasInstant",c[c.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",c[c.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",c[c.IsRootLayout=16]="IsRootLayout",c[c.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",c[c.InlinedIntoChild=64]="InlinedIntoChild",c[c.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",c[c.HeadOutlined=256]="HeadOutlined",c),t3=a("./dist/esm/shared/lib/segment.js");async function t4(e,t,r,n,a){let[i,s,{layout:o,loading:l,page:u}]=e,c=r(e),d=c?c.treeSegment:i,f=[(0,t3.HG)(d,n),{}],h=o?await o[0]():u?await u[0]():void 0,p=h?h.unstable_instant:void 0,m=0;null!==t&&(m|=t.hints),a||void 0===o||(a=!0,m|=t2.IsRootLayout),p&&"object"==typeof p&&(m|=t2.SubtreeHasInstant,"runtime"===p.prefetch&&(m|=t2.HasRuntimePrefetch)),l&&(m|=t2.SegmentHasLoadingBoundary);let g={};for(let e in s){var y;let i=(null==t||null==(y=t.slots)?void 0:y[e])??null,o=await t4(s[e],i,r,n,a);void 0!==o[4]&&(m|=o[4]&(t2.SubtreeHasInstant|t2.SubtreeHasLoadingBoundary),o[4]&(t2.SegmentHasLoadingBoundary|t2.SubtreeHasLoadingBoundary)&&(m|=t2.SubtreeHasLoadingBoundary)),g[e]=o}return f[1]=g,0!==m&&(f[4]=m),f}async function t6(e,t,r,n){return t4(e,t,r,n,!1)}async function t8(e,t,r){return t4(e,t,r,{},!1)}let t9=["accept-encoding","keepalive","keep-alive","content-encoding","transfer-encoding","connection","expect","content-length","set-cookie"];function t5(e){let t,r;e.headers instanceof Headers?(t=e.headers.get(X.ts)??null,r=e.headers.get("content-type")):(t=e.headers[X.ts]??null,r=e.headers["content-type"]??null);let n="POST"===e.method&&"application/x-www-form-urlencoded"===r,a=!!("POST"===e.method&&(null==r?void 0:r.startsWith("multipart/form-data"))),i=void 0!==t&&"string"==typeof t&&"POST"===e.method;return{actionId:t,isURLEncodedAction:n,isMultipartAction:a,isFetchAction:i,isPossibleServerAction:!!(i||n||a)}}let{env:t7,stdout:re}=(null==(S=globalThis)?void 0:S.process)??{},rt=t7&&!t7.NO_COLOR&&(t7.FORCE_COLOR||(null==re?void 0:re.isTTY)&&!t7.CI&&"dumb"!==t7.TERM),rr=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),s=i.indexOf(t);return~s?a+rr(i,t,r,s):a+i},rn=(e,t,r=e)=>rt?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+rr(a,t,r,i)+t:e+a+t}:String,ra=rn("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");rn("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),rn("\x1b[3m","\x1b[23m"),rn("\x1b[4m","\x1b[24m"),rn("\x1b[7m","\x1b[27m"),rn("\x1b[8m","\x1b[28m"),rn("\x1b[9m","\x1b[29m"),rn("\x1b[30m","\x1b[39m");let ri=rn("\x1b[31m","\x1b[39m"),rs=rn("\x1b[32m","\x1b[39m"),ro=rn("\x1b[33m","\x1b[39m");rn("\x1b[34m","\x1b[39m");let rl=rn("\x1b[35m","\x1b[39m");rn("\x1b[38;2;173;127;168m","\x1b[39m"),rn("\x1b[36m","\x1b[39m");let ru=rn("\x1b[37m","\x1b[39m");rn("\x1b[90m","\x1b[39m"),rn("\x1b[40m","\x1b[49m"),rn("\x1b[41m","\x1b[49m"),rn("\x1b[42m","\x1b[49m"),rn("\x1b[43m","\x1b[49m"),rn("\x1b[44m","\x1b[49m"),rn("\x1b[45m","\x1b[49m"),rn("\x1b[46m","\x1b[49m"),rn("\x1b[47m","\x1b[49m");var rc=a("./dist/esm/server/lib/lru-cache.js");let rd={wait:ru(ra("○")),error:ri(ra("⨯")),warn:ro(ra("⚠")),ready:"▲",info:ru(ra(" ")),event:rs(ra("✓")),trace:rl(ra("\xbb"))},rf={log:"log",warn:"warn",error:"error"};function rh(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in rf?rf[e]:"log",n=rd[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function rp(...e){rh("error",...e)}function rm(...e){rh("warn",...e)}let rg=new rc.q(1e4,e=>e.length);function ry(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}new rc.q(1e4,e=>e.length);var rv=a("./dist/esm/client/components/redirect-status-code.js"),rb=a("./dist/esm/server/revalidation-utils.js");let rw=(e,t)=>{rS(e,V(t[X._V],t[X.qm],t[X.B],t[X.kO]))},rS=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${X._A}=`));t.length>0?n.push(`${X._A}=${t}`):n.push(`${X._A}`),e.search=n.length?`?${n.join("&")}`:""};var r_=a("./dist/esm/shared/lib/action-revalidation-kind.js");function rE(e){let t={};for(let[r,n]of Object.entries(e))void 0!==n&&(t[r]=Array.isArray(n)?n.join(", "):`${n}`);return t}function rR(e,t){let r=e.headers,n=new eA.tm(tp.o.from(r)),a=t.getHeaders(),i=new eA.VO(function(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}(a)),s=((e,t)=>{for(let[r,n]of(e["content-length"]&&"0"===e["content-length"]&&delete e["content-length"],Object.entries(e)))(t.includes(r)||!(Array.isArray(n)||"string"==typeof n))&&delete e[r];return e})({...rE(r),...rE(a)},t9);return i.getAll().forEach(e=>{void 0===e.value?n.delete(e.name):n.set(e)}),s.cookie=n.toString(),delete s["transfer-encoding"],new Headers(s)}async function rk(e,t,r,n,a){var i,s,o;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let l=rR(e,t);l.set("x-action-forwarded","1");let u=(null==(i=T(e,"initProtocol"))?void 0:i.replace(/:+$/,""))||"https",c=process.env.__NEXT_PRIVATE_ORIGIN||`${u}://${r.value}`,d=new URL(`${c}${a}${n}`);try{let r;r=e.stream();let n=await fetch(d,{method:"POST",body:r,duplex:"half",headers:l,redirect:"manual",next:{internal:1}});if(null==(s=n.headers.get("content-type"))?void 0:s.startsWith(X.al)){for(let[e,r]of n.headers)t9.includes(e)||t.setHeader(e,r);return new tA(n.body)}null==(o=n.body)||o.cancel()}catch(e){console.error("failed to forward action response",e)}return eF.fromStatic("{}",ep.U2)}async function rx(e,t,r,n,a,i,s,o){t.setHeader("x-action-redirect",`${n};${a}`);let l=function(e,t,r,n){if(r.startsWith("/"))return new URL(`${e}${r}`,"http://n");if(r.startsWith(".")){let t=n||"/";t.endsWith("/")||(t+="/");let a=new URL(r,`http://n${t}`);return new URL(`${e}${a.pathname}${a.search}${a.hash}`,"http://n")}let a=new URL(r);return(null==t?void 0:t.value)!==a.host?null:a.pathname.startsWith(e)?a:null}(i,r,n,o);if(l){var u,c,d,f,h,p;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let n=rR(e,t);n.set(X.hY,"1");let a=(null==(u=T(e,"initProtocol"))?void 0:u.replace(/:+$/,""))||"https",i=process.env.__NEXT_PRIVATE_ORIGIN||`${a}://${r.value}`,o=new URL(`${i}${l.pathname}${l.search}`);s.pendingRevalidatedTags&&(n.set(ep.vS,s.pendingRevalidatedTags.map(e=>e.tag).join(",")),n.set(ep.c1,(null==(f=s.incrementalCache)||null==(d=f.prerenderManifest)||null==(c=d.preview)?void 0:c.previewModeId)||"")),n.delete(X.B),n.delete(X.ts);try{rw(o,{[X._V]:n.get(X._V)?"1":void 0,[X.qm]:n.get(X.qm)??void 0,[X.B]:n.get(X.B)??void 0,[X.kO]:n.get(X.kO)??void 0});let e=await fetch(o,{method:"GET",headers:n,next:{internal:1}});if(null==(h=e.headers.get("content-type"))?void 0:h.startsWith(X.al)){for(let[r,n]of e.headers)t9.includes(r)||t.setHeader(r,n);return new tA(e.body)}null==(p=e.body)||p.cancel()}catch(e){console.error("failed to get redirect response",e)}}return eF.EMPTY}function rP(e){return e.length>100?e.slice(0,100)+"...":e}async function rC({req:e,res:t,ComponentMod:r,generateFlight:n,workStore:i,requestStore:s,serverActions:o,ctx:l,metadata:u}){var c,d,f;let h,p,m,g,y,v,b=e.headers["content-type"],{page:w}=l.renderOpts,S=eZ(),{actionId:_,isMultipartAction:E,isFetchAction:R,isURLEncodedAction:k,isPossibleServerAction:x}=t5(e),P=e=>(console.warn(e),t.setHeader(X.Ic,"1"),t.setHeader("content-type","text/plain"),t.statusCode=404,{type:"done",result:eF.fromStatic("Server action not found.","text/plain")});if(!x)return null;if(k)if(R)return{type:"not-found"};else return null;if(!(Object.keys((p=eQ()).node).length>0)&&!(Object.keys(p.edge).length>0))return P(rO(_));if(i.isStaticGeneration)throw Object.defineProperty(Error("Invariant: server actions can't be handled during static rendering"),"__NEXT_ERROR_CODE",{value:"E359",enumerable:!1,configurable:!0});i.fetchCache="default-no-store";let C=e.headers.origin,A="string"==typeof C?"null"===C?"null":new URL(C).host:void 0,O=(g=(m=(c=e.headers)["x-forwarded-host"])&&Array.isArray(m)?m[0]:null==m||null==(f=m.split(","))||null==(d=f[0])?void 0:d.trim(),y=c.host,g?{type:"x-forwarded-host",value:g}:y?{type:"host",value:y}:void 0);if(A){if(!O||A!==O.value)if(((e,t=[])=>{let r=e.replace(/[A-Z]/g,e=>e.toLowerCase());return t.some(t=>!!t&&(t.replace(/[A-Z]/g,e=>e.toLowerCase())===r||function(e,t){let r=e.replace(/[A-Z]/g,e=>e.toLowerCase()),n=t.replace(/[A-Z]/g,e=>e.toLowerCase()),a=r.split("."),i=n.split(".");if(i.length<1||a.length0)return!1;return void 0!==t;default:if(t!==e)return!1}}return 0===a.length}(e,t)))})(A,null==o?void 0:o.allowedOrigins));else{O?console.error(`\`${O.type}\` header with value \`${rP(O.value)}\` does not match \`origin\` header with value \`${rP(A)}\` from a forwarded Server Actions request. Aborting the action.`):console.error("`x-forwarded-host` or `host` headers are not provided. One of these is needed to compare the `origin` header from a forwarded Server Actions request. Aborting the action.");let r=Object.defineProperty(Error("Invalid Server Actions request."),"__NEXT_ERROR_CODE",{value:"E80",enumerable:!1,configurable:!0});if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:!0,temporaryReferences:h})}}throw r}}else v="Missing `origin` header from a forwarded Server Actions request.";t.setHeader("Cache-Control","no-cache, no-store, max-age=0, must-revalidate");let{actionAsyncStorage:j}=r,$=!!e.headers["x-action-forwarded"];if(_){let r=function(e,t){var r,n;let a=null==(r=eQ().node[e])?void 0:r.workers;if(a&&!a[eS(t,"app")?t:"app"+t])return n=Object.keys(a)[0],(0,eW.Yr)(ek(n,"app"))}(_,w);if(r)return{type:"done",result:await rk(e,t,O,r,l.renderOpts.basePath)}}try{return await j.run({isAction:!0},async()=>{let u,c=[];{let{createTemporaryReferenceSet:t,decodeReply:r,decodeReplyFromBusboy:n,decodeAction:l,decodeFormState:d}=a("(react-server)/./dist/esm/server/app-render/react-server.node.js");h=t();let{PassThrough:f,Readable:p,Transform:m}=a("node:stream"),{pipeline:g}=a("node:stream/promises"),y=T(e,"actionBody"),w=y?p.from(y):e.body,k="1 MB",x=(null==o?void 0:o.bodySizeLimit)??k,C=x!==k?a("./dist/compiled/bytes/index.js").parse(x):1048576,A=0,O=new m({transform(e,t,r){if((A+=Buffer.byteLength(e,t))>C){let{ApiError:e}=a("./dist/esm/server/api-utils/index.js");r(Object.defineProperty(new e(413,`Body exceeded ${x} limit. +To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));return}r(null,e)}});if(E)if(R){try{u=rA(_,S)}catch(e){return P(e)}let t=a("./dist/compiled/busboy/index.js")({defParamCharset:"utf8",headers:e.headers,limits:{fieldSize:C}}),r=new AbortController;try{[,c]=await Promise.all([g(w,O,t,{signal:r.signal}),n(t,S,{temporaryReferences:h})])}catch(e){throw r.abort(),e}}else{let e,t=new f,r=new Request("http://localhost",{method:"POST",headers:{"Content-Type":b},body:p.toWeb(t),duplex:"half"}),n=new AbortController;try{[,e]=await Promise.all([g(w,O,t,{signal:n.signal}),r.formData()])}catch(e){throw n.abort(),e}if(!1===function(e,t){let r=!1;for(let i of e.keys())if(i.startsWith(rj)){if(i.startsWith(rI)){var n,a;if(n=i,a=t,n.length!==rI.length+42||null==a[n.slice(rI.length)])return!1;r=!0}else if(i.startsWith(r$)){let n=rj+i.slice(r$.length)+":0",a=e.getAll(n);if(1!==a.length)return!1;let s=a[0];if("string"!=typeof s||function(e,t){if(!1===e.startsWith(rD))return!0;let r=rD.length,n=r+42,a=e.slice(r,n);return 42!==a.length||'"'!==e[n]||null==t[a]}(s,t))return!1;r=!0}}return r}(e,S))throw Object.defineProperty(Error(`Failed to find Server Action. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E975",enumerable:!1,configurable:!0});let a=await l(e,S);if("function"!=typeof a)return null;{v&&rm(v);let{actionResult:t}=await rT(a,[],i,s,$),r=await d(t,e,S);return{type:"done",result:void 0,formState:r}}}else{if(!R)return null;try{u=rA(_,S)}catch(e){return P(e)}let e=new f,t=[];await Promise.all([g(w,O,e),(async()=>{for await(let r of e)t.push(Buffer.from(r))})()]);let n=Buffer.concat(t).toString("utf-8");c=await r(n,S,{temporaryReferences:h})}}let d=(await r.__next_app__.require(u))[_],{type:f}=ry(_),{actionResult:p,skipPageRendering:m}=(performance.now(),await rT(d,c,i,s,$).finally(()=>{!function(e,{workStore:t,requestStore:r}){var n;let a=+(null!=(n=t.pendingRevalidatedTags)&&!!n.some(e=>void 0===e.profile)),i=+!!(0,tm.YX)(r.mutableCookies).length;a||i?e.setHeader(X.ZL,JSON.stringify(r_.Du)):void 0!==t.pathWasRevalidated&&t.pathWasRevalidated!==r_.e9&&e.setHeader(X.ZL,JSON.stringify(t.pathWasRevalidated))}(t,{workStore:i,requestStore:s})}));if(!R)return null;{let t=!!m&&(0,rb.C)(i);return{type:"done",result:await n(e,l,s,{actionResult:Promise.resolve(p),skipPageRendering:m,temporaryReferences:h,waitUntil:!1===t?void 0:t})}}})}catch(r){if((0,tk.n)(r)){let n=tx(r),a=tP(r);if(t.statusCode=rv.Q.SeeOther,u.statusCode=rv.Q.SeeOther,R)return{type:"done",result:await rx(e,t,O,n,a,l.renderOpts.basePath,i,s.url.pathname)};return t.setHeader("Location",n),{type:"done",result:eF.EMPTY}}if((0,tR.RM)(r)){if(t.statusCode=(0,tR.jT)(r),u.statusCode=t.statusCode,R){let t=Promise.reject(r);try{await t}catch{}return{type:"done",result:await n(e,l,s,{skipPageRendering:!1,actionResult:t,temporaryReferences:h})}}return{type:"not-found"}}if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:void 0===i.pathWasRevalidated||i.pathWasRevalidated===r_.e9||$,temporaryReferences:h})}}throw r}}async function rT(e,t,r,n,a){n.phase="action";let i=a;if(t.length>1e3)throw Object.defineProperty(Error(`Server Action arguments list is too long (${t.length}). Maximum allowed is 1000.`),"__NEXT_ERROR_CODE",{value:"E986",enumerable:!1,configurable:!0});try{let a=await eV.workUnitAsyncStorage.run(n,()=>e.apply(null,t));return i||=void 0===r.pathWasRevalidated||r.pathWasRevalidated===r_.e9,{actionResult:a,skipPageRendering:i}}finally{!i&&(n.phase="render",n.cookies=tm.Ck.seal((0,tm.m0)(n.mutableCookies)),r.isDraftMode=n.draftMode.isEnabled,await (0,rb.C)(r))}}function rA(e,t){var r;if(!e)throw Object.defineProperty(new eU.z("Missing 'next-action' header."),"__NEXT_ERROR_CODE",{value:"E664",enumerable:!1,configurable:!0});let n=null==(r=t[e])?void 0:r.id;if(!n)throw rO(e);return n}function rO(e){return Object.defineProperty(Error(`Failed to find Server Action${e?` "${e}"`:""}. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E974",enumerable:!1,configurable:!0})}let rj="$ACTION_",r$="$ACTION_REF_",rI="$ACTION_ID_",rD='{"id":"',rN=$.createContext(null);function rM(e){let t=(0,$.useContext)(rN);t&&t(e)}function rL(){let e=[],t=t=>{e.push(t)};return{ServerInsertedHTMLProvider:({children:e})=>(0,O.jsx)(rN.Provider,{value:t,children:e}),renderServerInsertedHTML:()=>e.map((e,t)=>(0,O.jsx)($.Fragment,{children:e()},"__next_server_inserted__"+t))}}function rU(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}var rF=a("./dist/compiled/react-dom-experimental/index.js");function rH(e,t,r,n,a,i,s){var o;let l,u=[],c={src:"",crossOrigin:r},d=((null==(o=e.rootMainFilesTree)?void 0:o[s])||e.rootMainFiles).map(rU);if(0===d.length)throw Object.defineProperty(Error("Invariant: missing bootstrap script. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E459",enumerable:!1,configurable:!0});if(n){c.src=`${t}/_next/`+d[0]+a,c.integrity=n[d[0]];for(let e=1;e{for(let e=0;e{for(let e=0;e(0,O.jsx)("script",{...e},e.src)),o=(n||[]).map(({key:e,value:t},r)=>(0,O.jsx)("meta",{name:e,content:t},`next-trace-data-${r}`));return async function(){let e=[];for(;i"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];function rq(e,t,r,n){let a=e.replace(/\.[^.]+$/,""),i=new Set,s=new Set,{entryCSSFiles:o,entryJSFiles:l}=eY(),u=o[a],c=null==l?void 0:l[a];if(u)for(let e of u)t.has(e.path)||(n&&t.add(e.path),i.add(e));if(c)for(let e of c)r.has(e)||(n&&r.add(e),s.add(e));return{styles:[...i],scripts:[...s]}}function rX(e,t,r){if(!e||!t)return null;let n=t.replace(/\.[^.]+$/,""),a=new Set,i=!1,s=e.app[n];if(s)for(let e of(i=!0,s))r.has(e)||(a.add(e),r.add(e));return a.size?[...a].sort():i&&0===r.size?[]:null}function rV(e){let[,t,{loading:r}]=e;return!!r||Object.values(t).some(e=>rV(e))}function rW(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=ry(e.$$id);return"use-cache"===t}async function rG(e){let t,r,n,{layout:a,page:i,defaultPage:s}=e[2],o=void 0!==a,l=void 0!==i,u=void 0!==s&&e[0]===t3.WO;return o?(t=await a[0](),r="layout",n=a[1]):l?(t=await i[0](),r="page",n=i[1]):u&&(t=await s[0](),r="page",n=s[1]),{mod:t,modType:r,filePath:n}}function rJ(e){return e.default||e}function rK(e){let[t,r,n,a]=e,{layout:i,template:s}=n,{page:o}=n;o=t===t3.WO?n.defaultPage:o;let l=i?.[1]||s?.[1]||o?.[1];return{page:o,segment:t,modules:n,conventionPath:l,parallelRoutes:r,staticSiblings:a}}function rY(e,t){let r="";return e.sharedContext.clientAssetToken&&(r+=`?dpl=${e.sharedContext.clientAssetToken}`),r}function rQ(e,t,r){let{componentMod:{createElement:n}}=t;return e.map((e,a)=>{let i="next",s=`${t.assetPrefix}/_next/${rU(e.path)}${rY(t,!0)}`;return e.inlined&&!t.parsedRequestHeaders.isRSCRequest?n("style",{key:a,nonce:t.nonce,precedence:i,href:s},e.content):(null==r||r.push(()=>{t.componentMod.preloadStyle(s,t.renderOpts.crossOrigin,t.nonce)}),n("link",{key:a,rel:"stylesheet",href:s,precedence:i,crossOrigin:t.renderOpts.crossOrigin,nonce:t.nonce}))})}async function rZ({filePath:e,getComponent:t,injectedCSS:r,injectedJS:n,ctx:a}){let{componentMod:{createElement:i}}=a,{styles:s,scripts:o}=rq(e,r,n),l=rQ(s,a),u=o?o.map((e,t)=>i("script",{src:`${a.assetPrefix}/_next/${rU(e)}${rY(a,!0)}`,async:!0,key:`script-${t}`})):null;return[rJ(await t()),l,u]}a("./dist/esm/server/dynamic-rendering-utils.js");let r0=()=>{};globalThis.FinalizationRegistry&&new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(r0)});class r1{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new r1(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new N;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}var r2=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.REDIRECT="REDIRECT",d.IMAGE="IMAGE",d),r3=((f={}).APP_PAGE="APP_PAGE",f.APP_ROUTE="APP_ROUTE",f.PAGES="PAGES",f.FETCH="FETCH",f.IMAGE="IMAGE",f),r4=((h={}).PAGES="PAGES",h.PAGES_API="PAGES_API",h.APP_PAGE="APP_PAGE",h.APP_ROUTE="APP_ROUTE",h.IMAGE="IMAGE",h);async function r6(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===r2.PAGES?{kind:r2.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r2.APP_PAGE?{kind:r2.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function r8(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===r2.PAGES?{kind:r2.PAGES,html:eF.fromStatic(e.value.html,ep.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r2.APP_PAGE?{kind:r2.APP_PAGE,html:eF.fromStatic(e.value.html,ep.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function r9(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let r5=r9(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),r7=r9(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),ne="__ttl_sentinel__";function nt(e,t){return`${e}\0${t??ne}`}class nr{constructor(e,t=r7,r=r5){this.getBatcher=r1.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:M}),this.revalidateBatcher=r1.create({schedulerFn:M}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new rc.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===ne?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=nt(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return r8(n.entry);let e=Date.now();if(n.expiresAt>e)return r8(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&function(...e){let t=e.join(" ");rg.has(t)||(rg.set(t,t),rm(...e))}(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:u,invocationID:c}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:u,invocationID:c},r);return l&&l(d),d});return r8(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case r4.PAGES:return r3.PAGES;case r4.APP_PAGE:return r3.APP_PAGE;case r4.IMAGE:return r3.IMAGE;case r4.APP_ROUTE:return r3.APP_ROUTE;case r4.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,null!==a&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=nt(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let u=this.handleRevalidate(e,t,r,n,a,i,s,l);return o&&o(u),u})}async handleRevalidate(e,t,r,n,a,i,s,o){try{let l=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let u=await r6({...l,isMiss:!i});if(u.cacheControl)if(this.minimal_mode){let t=nt(e,o);this.cache.set(t,{entry:u,expiresAt:Date.now()+this.ttl})}else await t.set(e,u.value,{cacheControl:u.cacheControl,isRoutePPREnabled:r,isFallback:n});return u}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}var nn=a("./dist/esm/server/app-render/staged-rendering.js");Symbol.for("next-patch"),tR.s8;var na=a("./dist/esm/client/components/static-generation-bailout.js");function ni(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let ns=new Set,no={varyParams:ns,status:"fulfilled",value:ns,then(e){e&&e(ns)},resolvers:[]};function nl(){let e=ni();return{head:e,rootParams:ni(),segments:new Set}}function nu(){let e=function(){let e=eV.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}();return null!==e?e:null}async function nc(e){let t=e.rootParams.varyParams;for(let r of(nd(e.head,t),e.segments))nd(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function nd(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}let nf=/^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;function nh(e,t,r){let n=e[2],a=n[r]?n[r][1]:void 0;if(a){let e;return e=(function(e,t){let r=process.cwd(),n=e.replace(r,"").replace(/^[\\/]/,""),a=(t||"").replace(/^\[project\][\\/]?/,"").replace(e,"").replace(r,"").replace(/\\/g,"/").replace(/^\//,"");if(n&&a.startsWith(n)&&(a=a.slice(n.length).replace(/^\//,"")),a.includes("/")){let t=e.split(/[\\/]/).pop()||"";if(t){let e=t+"/",r=a.indexOf(e);r>=0&&(a=a.slice(r+e.length))}}return a})(t,a).replace(/^(src\/)?app\//,""),nf.test(e)&&(e=e.replace(nf,""),e=`__next_builtin__${e}`),e}}function np(e){return(0,I.getTracer)().trace(D.Fx.createComponentTree,{spanName:"build component tree"},()=>ng(e,!0))}function nm(e,t){throw Object.defineProperty(Error(`The default export is not a React Component in "${"/"===e?"":e}/${t}"`),"__NEXT_ERROR_CODE",{value:"E45",enumerable:!1,configurable:!0})}async function ng({loaderTree:e,parentParams:t,parentOptionalCatchAllParamName:r,parentRuntimePrefetchable:n,rootLayoutIncluded:i,injectedCSS:s,injectedJS:o,injectedFontPreloadTags:l,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:h},p){let m,{renderOpts:{nextConfigOutput:g,experimental:y,cacheComponents:v},workStore:b,componentMod:{createElement:w,Fragment:S,SegmentViewNode:_,HTTPAccessFallbackBoundary:E,LayoutRouter:R,RenderFromTemplateContext:k,ClientPageRoot:x,ClientSegmentRoot:P,createServerSearchParamsForServerPage:C,createPrerenderSearchParamsForClientPage:T,createServerParamsForServerSegment:A,createPrerenderParamsForClientSegment:O,serverHooks:{DynamicServerError:j},Postpone:$},pagePath:N,getDynamicParamFromSegment:M,isPrefetch:L,query:U}=u,{page:F,conventionPath:H,segment:B,modules:z,parallelRoutes:q}=rK(e),{layout:X,template:V,error:W,loading:G,"not-found":J,forbidden:K,unauthorized:Y}=z,Q=new Set(s),Z=new Set(o),ee=new Set(l),et=function({ctx:e,layoutOrPagePath:t,injectedCSS:r,injectedJS:n,injectedFontPreloadTags:a,preloadCallbacks:i}){let{componentMod:{createElement:s}}=e,{styles:o,scripts:l}=t?rq(t,r,n,!0):{styles:[],scripts:[]},u=t?rX(e.renderOpts.nextFontManifest,t,a):null;if(u)if(u.length)for(let t=0;t{e.componentMod.preloadFont(s,a,e.renderOpts.crossOrigin,e.nonce)})}else try{let t=new URL(e.assetPrefix);i.push(()=>{e.componentMod.preconnect(t.origin,"anonymous",e.nonce)})}catch(t){i.push(()=>{e.componentMod.preconnect("/","anonymous",e.nonce)})}let c=rQ(o,e,i),d=l?l.map((t,r)=>s("script",{src:`${e.assetPrefix}/_next/${rU(t)}${rY(e,!0)}`,async:!0,key:`script-${r}`,nonce:e.nonce})):[];return c.length||d.length?[...c,...d]:null}({preloadCallbacks:d,ctx:u,layoutOrPagePath:H,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee}),[er,en,ea]=V?await rZ({ctx:u,filePath:V[1],getComponent:V[0],injectedCSS:Q,injectedJS:Z}):[S],[ei,es,eo]=W?await rZ({ctx:u,filePath:W[1],getComponent:W[0],injectedCSS:Q,injectedJS:Z}):[],[el,eu,ec]=G?await rZ({ctx:u,filePath:G[1],getComponent:G[0],injectedCSS:Q,injectedJS:Z}):[],ed=void 0!==X,ef=void 0!==F,{mod:eh,modType:em}=await (0,I.getTracer)().trace(D.Fx.getLayoutOrPageModule,{hideSpan:!(ed||ef),spanName:"resolve segment modules",attributes:{"next.segment":B}},()=>rG(e)),eg=ed&&!i,ey=i||eg,[ev,eb]=J?await rZ({ctx:u,filePath:J[1],getComponent:J[0],injectedCSS:Q,injectedJS:Z}):[],ew=eh?eh.unstable_instant:void 0,eS=!!ew&&"object"==typeof ew&&"runtime"===ew.prefetch||n,[e_,eE]=f&&K?await rZ({ctx:u,filePath:K[1],getComponent:K[0],injectedCSS:Q,injectedJS:Z}):[],[eR,ek]=f&&Y?await rZ({ctx:u,filePath:Y[1],getComponent:Y[0],injectedCSS:Q,injectedJS:Z}):[],ex=null==eh?void 0:eh.dynamic;if("export"===g)if(ex&&"auto"!==ex){if("force-dynamic"===ex)throw Object.defineProperty(new na.f('Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports'),"__NEXT_ERROR_CODE",{value:"E527",enumerable:!1,configurable:!0})}else ex="error";if("string"==typeof ex)if("error"===ex)b.dynamicShouldError=!0;else if("force-dynamic"===ex){if(b.forceDynamic=!0,b.isStaticGeneration&&!y.isRoutePPREnabled){let e=Object.defineProperty(new j('Page with `dynamic = "force-dynamic"` won\'t be rendered statically.'),"__NEXT_ERROR_CODE",{value:"E585",enumerable:!1,configurable:!0});throw b.dynamicUsageDescription=e.message,b.dynamicUsageStack=e.stack,e}}else b.dynamicShouldError=!1,b.forceStatic="force-static"===ex;if("string"==typeof(null==eh?void 0:eh.fetchCache)&&(b.fetchCache=null==eh?void 0:eh.fetchCache),void 0!==(null==eh?void 0:eh.revalidate)&&function(e,t){try{if(!1===e)ep.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1);else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0})}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(null==eh?void 0:eh.revalidate,b.route),"number"==typeof(null==eh?void 0:eh.revalidate)){let e=eh.revalidate,t=eV.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.revalidate>e&&(t.revalidate=e)}if(!b.forceStatic&&b.isStaticGeneration&&0===e&&!y.isRoutePPREnabled){let e=`revalidate: 0 configured ${B}`;throw b.dynamicUsageDescription=e,Object.defineProperty(new j(e),"__NEXT_ERROR_CODE",{value:"E1005",enumerable:!1,configurable:!0})}}if(ef&&"number"==typeof(null==eh?void 0:eh.unstable_dynamicStaleTime)){let e=eh.unstable_dynamicStaleTime,t=eV.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.stale>e&&(t.stale=e);break;case"request":(void 0===t.stale||t.stale>e)&&(t.stale=e)}}let eP=b.isStaticGeneration,eC=eP&&!0===y.isRoutePPREnabled,eT=eh?rJ(eh):void 0;if(eP){let{isValidElementType:e}=a("./dist/compiled/react-is/index.js");void 0===eT||e(eT)||nm(N,em??"page"),void 0===ei||e(ei)||nm(N,"error"),void 0===el||e(el)||nm(N,"loading"),void 0===ev||e(ev)||nm(N,"not-found"),void 0===e_||e(e_)||nm(N,"forbidden"),void 0===eR||e(eR)||nm(N,"unauthorized")}let eA=M(e),eO=t;eA&&null!==eA.value&&(eO={...t,[eA.param]:eA.value});let ej=(null==eA?void 0:eA.type)==="oc"&&null===eA.value?eA.param:r,e$=u.renderOpts.dir||"",[eI,eD]=await nb({ctx:u,conventionName:"not-found",Component:ev,styles:eb,tree:e}),[eN]=await nb({ctx:u,conventionName:"forbidden",Component:e_,styles:eE,tree:e}),[eM]=await nb({ctx:u,conventionName:"unauthorized",Component:eR,styles:ek,tree:e}),eL=await Promise.all(Object.keys(q).map(async t=>{let r="children"===t,n=q[t],a=r?eI:void 0,i=r?eN:void 0,s=r?eM:void 0,o=null;L&&(el||!rV(n))&&!y.isRoutePPREnabled||(o=await ng({loaderTree:n,parentParams:eO,parentOptionalCatchAllParamName:ej,parentRuntimePrefetchable:eS,rootLayoutIncluded:ey,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:r?h:null},!1));let l=w(er,null,w(k,null));return nh(e,e$,"template"),nh(e,e$,"error"),nh(e,e$,"loading"),p&&nh(e,e$,"global-error"),[t,w(R,{parallelRouterKey:t,error:ei,errorStyles:es,errorScripts:eo,template:l,templateStyles:en,templateScripts:ea,notFound:a,forbidden:i,unauthorized:s,...!1}),o]})),eU={},eF={};for(let e of eL){let[t,r,n]=e;eU[t]=r,eF[t]=n}let eH=el?w(el,{key:"l"}):null,eB=(nh(e,e$,"loading"),eH?[eH,eu,ec]:null);if(!eT)return nw(u,w(S,{key:"c"},et,eU.children),eF,eB,eC,eS,no);if(b.isStaticGeneration&&b.forceDynamic&&y.isRoutePPREnabled)return nw(u,w(S,{key:"c"},w($,{reason:'dynamic = "force-dynamic" was used',route:b.route}),et),eF,eB,!0,eS,no);let ez=(null==(m=(null==eh?void 0:eh.default)||eh)?void 0:m.$$typeof)===Symbol.for("react.client.reference"),eq=ez&&v?no:function(){let e=eV.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=ni();return t.segments.add(e),e}}}return null}();if(ef){let t;if(ez)if(v)t=w(x,{Component:eT,serverProvidedParams:null});else if(eP){let e=O(eO),r=T();t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:[r,e]}})}else t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:null}});else{let e=A(eO,ej,eq,eS),r=C(U,eq,eS);t=rW(eT)?w(eT,{params:e,searchParams:r,$$isPage:!0}):w(eT,{params:e,searchParams:r})}t3.WO;return nw(u,w(S,{key:"c"},(nh(e,e$,"page")??nh(e,e$,"defaultPage"),t),et,h?w(h,null):null),eF,eB,eC,eS,eq)}{let t,r=eg&&"children"in q&&Object.keys(q).length>1;if(ez){let e;if(v)e=w(P,{Component:eT,slots:eU,serverProvidedParams:null});else if(eP){let t=O(eO);e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:[t]}})}else e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:null}});if(r){let r,n,a;r=ny({ctx:u,ErrorBoundaryComponent:ev,errorElement:eI,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),n=ny({ctx:u,ErrorBoundaryComponent:e_,errorElement:eN,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),a=ny({ctx:u,ErrorBoundaryComponent:eR,errorElement:eM,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),t=r||n||a?w(E,{key:"c",notFound:r,forbidden:n,unauthorized:a},et,e):w(S,{key:"c"},et,e)}else t=w(S,{key:"c"},et,e)}else{let e,n=A(eO,ej,eq,eS);e=rW(eT)?w(eT,{...eU,params:n,$$isLayout:!0},eU.children):w(eT,{...eU,params:n},eU.children),t=r?w(E,{key:"c",notFound:eI?w(S,null,et,w(eT,{params:n},eb,eI)):void 0},et,e):w(S,{key:"c"},et,e)}return nh(e,e$,"layout"),nw(u,t,eF,eB,eC,eS,eq)}}function ny({ctx:e,ErrorBoundaryComponent:t,errorElement:r,ClientSegmentRoot:n,layerAssets:a,SegmentComponent:i,currentParams:s}){let{componentMod:{createElement:o,Fragment:l}}=e;return t?o(l,null,a,o(n,{Component:i,slots:{children:r},params:s})):null}function nv(e,t){return function e(t,r,n){let{modules:{layout:a},parallelRoutes:i}=rK(r),s=n(r),o=t;return(s&&null!==s.value&&(o={...t,[s.param]:s.value}),void 0!==a)?o:i.children?e(o,i.children,n):o}({},e,t)}async function nb({ctx:e,conventionName:t,Component:r,styles:n,tree:a}){let{componentMod:{createElement:i,Fragment:s}}=e,o=e.renderOpts.dir||"",{SegmentViewNode:l}=e.componentMod;return[r?i(s,null,i(r,null),n):void 0,nh(a,o,t)]}function nw(e,t,r,n,a,i,s){let o=e.componentMod.createElement;if(!i){let e=eV.workUnitAsyncStorage.getStore();if(e){let r;switch(e.type){case"request":case"prerender-runtime":if(r=e.stagedRendering){let e=t;t=r.waitForStage(nn.D.Static).then(()=>e)}}}}return null!==n&&(t=o(e.componentMod.LoadingBoundaryProvider,{loading:n,children:t})),[t,r,null,a,s||null]}async function nS({loaderTreeToFilter:e,parentParams:t,flightRouterState:r,parentIsInsideSharedLayout:n,rscHead:a,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,ctx:u,preloadCallbacks:c,MetadataOutlet:d,hintTree:f}){let{renderOpts:{nextFontManifest:h,experimental:p},query:m,isPrefetch:g,getDynamicParamFromSegment:y,parsedRequestHeaders:v}=u,[b,w,S]=e,_=Object.keys(w),{layout:E}=S,R=void 0!==E&&!l,k=l||R,x=y(e),P=x&&null!==x.value?{...t,[x.param]:x.value}:t,C=(0,t3.HG)(x?x.treeSegment:b,m),T=!r||!rz(C,r[0])||"refetch"===r[3],A=T||n||"inside-shared-layout"===r[3];if(A&&!p.isRoutePPREnabled&&(v.isRouteTreePrefetchRequest||g&&!S.loading&&!rV(e)))return[[r&&n_(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t8(e,f,y):await t6(e,f,y,m),null,[null,null],!0]];if(r&&"metadata-only"===r[3])return[[r&&n_(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t8(e,f,y):await t6(e,f,y,m),null,a,!1]];if(T){let t=r&&n_(C,r[0])?r[0]:C,n=await t6(e,f,y,m),h=await np({ctx:u,loaderTree:e,parentParams:P,parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,preloadCallbacks:c,authInterrupts:p.authInterrupts,MetadataOutlet:d});return[[t,n,h,a,!1]]}let O=null==E?void 0:E[1],j=new Set(i),$=new Set(s),I=new Set(o);O&&(rq(O,j,$,!0),rX(h,O,I));let D=[];for(let e of _){var N;let t=w[e];for(let n of(await nS({ctx:u,loaderTreeToFilter:t,parentParams:P,flightRouterState:r&&r[1][e],parentIsInsideSharedLayout:A,rscHead:a,injectedCSS:j,injectedJS:$,injectedFontPreloadTags:I,rootLayoutIncluded:k,preloadCallbacks:c,MetadataOutlet:d,hintTree:(null==f||null==(N=f.slots)?void 0:N[e])??null})))D.push([C,e,...n])}return D}let n_=(e,t)=>{var r;return!Array.isArray(e)&&!!Array.isArray(t)&&(null==(r=(0,tK.Hp)(e))?void 0:r.paramName)===t[0]};var nE=a("./dist/esm/shared/lib/router/utils/interception-routes.js");function nR(e){if(""===e)return null;let t=nE.VB.find(t=>e.startsWith(t)),r=(0,tK.Hp)(e);return r?{type:"dynamic",name:e,param:r,interceptionMarker:t}:e.startsWith("(")&&e.endsWith(")")?{type:"route-group",name:e,interceptionMarker:t}:e.startsWith("@")?{type:"parallel-route",name:e,interceptionMarker:t}:{type:"static",name:e,interceptionMarker:t}}function nk(e,t){let r,n,a,i=e.split("/").filter(Boolean),s=[];for(let o of i){let i=nR(o);if(i){if(t&&("route-group"===i.type||"parallel-route"===i.type))throw Object.defineProperty(new eU.z(`${e} is being parsed as a normalized route, but it has a route group or parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E923",enumerable:!1,configurable:!0});if(s.push(i),i.interceptionMarker){let s=e.split(i.interceptionMarker);if(2!==s.length)throw Object.defineProperty(Error(`Invalid interception route: ${e}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});n=t?nk(s[0],!0):nk(s[0],!1),a=t?nk(s[1],!0):nk(s[1],!1),r=i.interceptionMarker}}}let o=s.filter(e=>"dynamic"===e.type);return{normalized:t,pathname:e,segments:s,dynamicSegments:o,interceptionMarker:r,interceptingRoute:n,interceptedRoute:a}}function nx(e){switch(e){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function nP(e,t,r,n,a){switch(t){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let i=[];for(let e=r;e0)return i;if("optional-catchall"===t)return;throw Object.defineProperty(new eU.z(`Unexpected empty path segments match for a route "${n.pathname}" with param "${e}" of type "${t}"`),"__NEXT_ERROR_CODE",{value:"E931",enumerable:!1,configurable:!0});case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(r0;){let{tree:e,depth:t}=i.pop(),{segment:r,parallelRoutes:o}=rK(e),l=nR(r);if(l?.type==="dynamic"&&!a.hasOwnProperty(l.param.paramName)&&!n?.has(l.param.paramName)){let{paramName:e,paramType:r}=l.param,n=nP(e,r,t,s,a);if(void 0!==n)a[e]=n;else if("optional-catchall"!==r)throw Object.defineProperty(new eU.z(`Could not resolve param value for segment: ${e}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let u=t;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))i.push({tree:e,depth:u})}return a}function nT(e,t,r,n,a){let i=function(e,t,r){let n=e[t];if(r?.has(t)){let[e]=r.get(t);n=e}else Array.isArray(n)?n=n.map(e=>encodeURIComponent(e)):"string"==typeof n&&(n=encodeURIComponent(n));return n}(e,t,n);if(!i||0===i.length){if("oc"===r)return{param:t,value:null,type:r,treeSegment:[t,"",r,a]};throw Object.defineProperty(new eU.z(`Missing value for segment key: "${t}" with dynamic param type: ${r}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let s=Array.isArray(i)?i.join("/"):i;return{param:t,value:i,treeSegment:[t,s,r,a],type:r}}let nA=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function nO(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}async function nj(e,t){return Promise.all(Array.from(e).map(([e,r])=>r.then(async({entry:r,hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i})=>{if(t&&(0===r.revalidate||r.expire<300))return null;let[s,o]=r.value.tee();r.value=o;let l="";for await(let e of s)l+=function(e){let t=new Uint8Array(e),r=t.byteLength;if(r<65535)return String.fromCharCode.apply(null,t);let n="";for(let e=0;enull)))}async function n$(e,t){{if(0===e.fetch.size&&0===e.cache.size)return"null";let r={store:{fetch:Object.fromEntries(Array.from(e.fetch.entries())),cache:Object.fromEntries((await nj(e.cache.entries(),t)).filter(e=>null!==e)),encryptedBoundArgs:Object.fromEntries(Array.from(e.encryptedBoundArgs.entries()))}},{deflateSync:n}=a("node:zlib");return n(JSON.stringify(r)).toString("base64")}}function nI(e){return e?{cache:new Map(e.cache),fetch:new Map(e.fetch),encryptedBoundArgs:new Map(e.encryptedBoundArgs),decryptedBoundArgs:new Map(e.decryptedBoundArgs)}:{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map}}function nD(e,t){{let r;if("string"!=typeof e)return e;if("null"===e)return{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map};let{inflateSync:n}=a("node:zlib"),i=t?5*t:524288e3;try{r=JSON.parse(n(Buffer.from(e,"base64"),{maxOutputLength:i}).toString("utf-8"))}catch(e){if(e instanceof RangeError&&"ERR_BUFFER_TOO_LARGE"===e.code)throw Object.defineProperty(Error(`Decompressed resume data cache exceeded ${i} byte limit`),"__NEXT_ERROR_CODE",{value:"E976",enumerable:!1,configurable:!0});throw e}return{cache:function(e){let t=new Map;for(let[r,{entry:n,hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s}]of e)t.set(r,Promise.resolve({entry:{value:new ReadableStream({start(e){e.enqueue(function(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n(r(function(){let e=document.getElementsByName(n3)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(n3);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(n3)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[n,a]=(0,$.useState)(""),i=(0,$.useRef)(void 0);return(0,$.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&a(e),i.current=e},[e]),t?(0,rF.createPortal)(n,t):null}tR.s8,tR.s8,a("./dist/esm/client/components/unstable-rethrow.server.js").X,a("./dist/esm/server/app-render/dynamic-rendering.js").Ip,a("./dist/esm/server/app-render/dynamic-rendering.js").FD;let{instrumentParamsForClientValidation:n6,instrumentSearchParamsForClientValidation:n8,expectCompleteParamsInClientValidation:n9}=process.env.__NEXT_CACHE_COMPONENTS?a("./dist/esm/server/app-render/instant-validation/instant-samples-client.js"):{};function n5(){let e=(0,$.useContext)(nH);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function n7({redirect:e,reset:t,redirectType:r}){let n=n5();return(0,$.useEffect)(()=>{$.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class ae extends $.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,tk.n)(e)){let t=tx(e),r=tP(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,O.jsx)(n7,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function at({children:e}){let t=n5();return(0,O.jsx)(ae,{router:t,children:e})}function ar(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(t3.OG)?t3.OG:e}let an={then:()=>{}},aa=process.env.__NEXT_ROUTER_BASEPATH||"",ai=process.env.__NEXT_ROUTER_BASEPATH||"",as=e=>"/"===e[0]?e.slice(1):e,ao=e=>"string"==typeof e?"children"===e?"":e:e[1];function al(e){return e.reduce((e,t)=>""===(t=as(t))||(0,t3.V)(t)?e:`${e}/${t}`,"")||"/"}function au(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===t3.WO||nE.VB.some(e=>t.startsWith(e)))return;if(t.startsWith(t3.OG))return"";let r=[ao(t)],n=e[1]??{},a=n.children?au(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=au(t);void 0!==n&&r.push(n)}return al(r)}var ac=a("./dist/compiled/react-server-dom-webpack-experimental/client.node.js");async function ad(e,t){return new Promise((r,n)=>{(0,$.startTransition)(()=>{(0,n1.Dd)({type:nV.s8,actionId:e,actionArgs:t,resolve:r,reject:n})})})}process.env.__NEXT_ROUTER_BASEPATH;function af(e){let[t,r,n,a]=e.slice(-4),i=e.slice(0,-4);return{pathToSegment:i.slice(0,-1),segmentPath:i,segment:i[i.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function ah(e){return"string"==typeof e?e:e.map(e=>af(e))}function ap(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,i,s]=t,o=function(e){if("string"==typeof e)return e.startsWith(t3.OG+"?")?t3.OG:e;let[t,r,n]=e;return[t,r,n,null]}(r),l={};for(let[t,r]of Object.entries(n))l[t]=e(r);let u=[o,l];return i&&(u[2]=null,u[3]=i),void 0!==s&&(u[4]=s),u}(e)))}let am="/_head";function ag(e){if("string"==typeof e)return e.startsWith(t3.OG)?t3.OG:"/_not-found"===e?"_not-found":ab(e);let t=e[0];return"$"+e[2]+"$"+ab(t)}function ay(e,t,r){return e+"/"+("children"===t?r:`@${ab(t)}/${r}`)}let av=/^[a-zA-Z0-9\-_@]+$/;function ab(e){return av.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function aw(e){let t=e.headers.get(X.Wc);return null!==t?""===t?"":"?"+t:a_(new URL(e.url)).search}function aS(e){return!(""===e||e.startsWith(t3.OG)||"("===e[0]&&e.endsWith(")"))&&e!==t3.WO&&"/_not-found"!==e}function a_(e){let t=new URL(e);if(t.searchParams.delete(X._A),"export"===process.env.__NEXT_CONFIG_OUTPUT&&t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}e=process.env.NEXT_DEPLOYMENT_ID||void 0;function aE(e){return(e.then(aR),"fulfilled"!==e.status)?null:e.value}let aR=()=>{};function ak(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}var ax=((g={})[g.Intent=2]="Intent",g[g.Default=1]="Default",g[g.Background=0]="Background",g),aP=((y={})[y.LoadingBoundary=0]="LoadingBoundary",y[y.PPR=1]="PPR",y[y.PPRRuntime=2]="PPRRuntime",y[y.Full=3]="Full",y);let aC={},aT={};function aA(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function aO(e,t,r,n,a){let i=function e(t,r,n,a,i,s){let o,l;if(null!==a)o=a.value,l=a.parent;else if(i&&s!==aT)o=aT,l=null;else return null===n.value?n:aj(t,r,n.value)?(aD(n),null):n;let u=n.map;if(null!==u){let n=u.get(o);if(void 0!==n){let a=e(t,r,n,l,i,o);if(null!==a)return a}let a=u.get(aC);if(void 0!==a)return e(t,r,a,l,i,o)}return null}(e,t,r,n,a,0);return null===i||null===i.value?null:(aU(i),i.value)}function aj(e,t,r){return r.staleAt<=e||r.versionPromise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),az=[],aq=0,aX=0,aV=!1,aW=null;function aG(e,t,r,n,a,i){var s;let o={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:iM,segmentCacheVersion:0,priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:aX++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return process.env.__NEXT_EXPOSE_TESTING_API&&(o._onComplete=i),(s=o).priority===ax.Intent&&s!==aW&&(null!==aW&&aW.priority!==ax.Background&&(aW.priority=ax.Default,ir(az,aW)),aW=s),a7(az,o),aK(),o}function aJ(e,t,r){return e.routeCacheVersion!==iM||0!==e.segmentCacheVersion||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function aK(){aV||(aV=!0,aB(a0))}function aY(e){return e.priority===ax.Intent?aq<12:aq<4}function aQ(e){return aq++,e.then(e=>null===e?(aZ(),null):(e.closed.then(aZ),e.value))}function aZ(){aq--,aK()}function a0(){aV=!1;let e=Date.now(),t=ie(az);for(;null!==t&&aY(t);){t.routeCacheVersion=iM,t.segmentCacheVersion=0;let r=function(e,t){let r=t.key,n=iB(e,t,r),a=function(e,t,r){switch(r.status){case iO.Empty:aQ(i6(r,t.key)),r.staleAt=e+6e4,r.status=iO.Pending;case iO.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case iO.Rejected:break;case iO.Fulfilled:{let s;if(0!==t.phase)return 2;if(!aY(t))return 0;let o=r.tree;switch(s=o.prefetchHints&t2.SubtreeHasInstant?aP.PPR:t.fetchStrategy===aP.PPR?r.supportsPerSegmentPrefetching?aP.PPR:aP.LoadingBoundary:t.fetchStrategy){case aP.PPR:{var n,a,i;if(a4(n=e,a=t,i=r,iq(n,aP.PPR,i.metadata),a.key,i.metadata),0===function e(t,r,n,a,i){let s=iq(t,r.fetchStrategy,i);a4(t,r,n,s,r.key,i);let o=a[1],l=i.slots;if(null!==l)for(let a in l){if(!aY(r))return 0;let i=l[a],s=i.segment,u=o[a],c=u?.[0];if(0===(void 0!==c&&a9(n,s,c)?e(t,r,n,u,i):function e(t,r,n,a){if(a.prefetchHints&t2.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let i=iq(t,r.fetchStrategy,a);if(a4(t,r,n,i,r.key,a),null!==a.slots){if(!aY(r))return 0;for(let i in a.slots)if(0===e(t,r,n,a.slots[i]))return 0}return 2}(t,r,n,i)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,o))return 0;let s=t.spawnedRuntimePrefetches;if(null!==s){let n=new Map;a2(e,t,r,n,aP.PPRRuntime);let a=function e(t,r,n,a,i,s){if(i.has(a.requestKey))return a3(t,r,n,a,!1,s,aP.PPRRuntime);let o={},l=a.slots;if(null!==l)for(let a in l){let u=l[a];o[a]=e(t,r,n,u,i,s)}return[a.segment,o,null,null]}(e,t,r,o,s,n);n.size>0&&aQ(i5(t,r,aP.PPRRuntime,a,n))}return 2}case aP.Full:case aP.PPRRuntime:case aP.LoadingBoundary:{let n=new Map;a2(e,t,r,n,s);let a=function e(t,r,n,a,i,s,o){let l=a[1],u=i.slots,c={};if(null!==u)for(let a in u){let i=u[a],d=i.segment,f=l[a],h=f?.[0];if(void 0!==h&&a9(n,d,h)){let l=e(t,r,n,f,i,s,o);c[a]=l}else switch(o){case aP.LoadingBoundary:{let e=(i.prefetchHints&(t2.SegmentHasLoadingBoundary|t2.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,i,s){let o=null===i?"inside-shared-layout":null,l=iq(t,r.fetchStrategy,a);switch(l.status){case iO.Empty:s.set(a.requestKey,iG(l,aP.LoadingBoundary)),"refetch"!==i&&(o=i="refetch");break;case iO.Fulfilled:if((a.prefetchHints&t2.SegmentHasLoadingBoundary)!=0)return i4(a);case iO.Pending:case iO.Rejected:}let u={};if(null!==a.slots)for(let o in a.slots){let l=a.slots[o];u[o]=e(t,r,n,l,i,s)}return[a.segment,u,null,o]}(t,r,n,i,null,s):i4(i);c[a]=e;break}case aP.PPRRuntime:{let e=a3(t,r,n,i,!1,s,o);c[a]=e;break}case aP.Full:{let e=a3(t,r,n,i,!1,s,o);c[a]=e}}}return[i.segment,c,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,o,n,s);return n.size>0&&aQ(i5(t,r,s,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=ak(new URL(r.pathname,location.origin).href,r.nextUrl),a=iB(e,t,n);switch(a.status){case iO.Empty:a1(t)&&(a.status=iO.Pending,aQ(i6(a,n)));case iO.Pending:case iO.Fulfilled:case iO.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:it(az),t=ie(az);continue;case 2:if(1===t.phase)t.phase=0,ir(az,t);else if(n)t.priority=ax.Background,ir(az,t);else{if(process.env.__NEXT_EXPOSE_TESTING_API){let e=t._onComplete;t._onComplete=void 0,e?.()}it(az)}t=ie(az);continue}}null===t&&0===aq&&function(){if(!(aL<=0x3200000))for(;aL>0x2d00000&&null!==aM;){let e=aM.prev;null!==e&&aD(e)}}()}function a1(e){return e.priority===ax.Background||(e.hasBackgroundWork=!0,!1)}function a2(e,t,r,n,a){a3(e,t,r,r.metadata,!1,n,a===aP.LoadingBoundary?aP.Full:a)}function a3(e,t,r,n,a,i,s){var o,l;let u=iq(e,s,n),c=null;switch(u.status){case iO.Empty:if(s===aP.Full&&null!==function(e,t,r){r.varyPath;let n=null;if(null!==n){let r=n.navigatedAt+sG;return e>r?null:iZ(iG(t,aP.Full),n.rsc,r,!1)}return null}(e,u,n))break;c=iG(u,s);break;case iO.Fulfilled:if(u.isPartial&&(o=u.fetchStrategy,on)return null;let a=iZ(iG(iW(e),aP.Full),r.rsc,n,!1),i=iV(e,ih(aP.Full,t),a);if(null!==i&&2===i.status)return i}return null}(e,n))break;c=a8(e,n,s)}break;case iO.Pending:case iO.Rejected:l=u.fetchStrategy,l0&&aQ(i9(r,a,r.tree,i));break}aQ(i8(r,iG(n,aP.PPR),a,i));break;case iO.Pending:switch(n.fetchStrategy){case aP.PPR:case aP.PPRRuntime:case aP.Full:break;case aP.LoadingBoundary:a1(t)&&a6(e,r,a,i);break;default:n.fetchStrategy}break;case iO.Rejected:switch(n.fetchStrategy){case aP.PPR:case aP.PPRRuntime:case aP.Full:break;case aP.LoadingBoundary:a6(e,r,a,i);break;default:n.fetchStrategy}case iO.Fulfilled:}}function a6(e,t,r,n){let a=iX(e,aP.PPR,n);switch(a.status){case iO.Empty:aQ(i8(t,iG(a,aP.PPR),r,n));case iO.Pending:case iO.Fulfilled:case iO.Rejected:}}function a8(e,t,r){var n,a;let i=iX(e,r,t);if(i.status===iO.Empty)return iG(i,r);if(n=i.fetchStrategy,n>>1],t)>0?ia(e,t,r):ii(e,t,r))}function ia(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(a5(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function ii(e,t,r){let n=r,a=e.length,i=a>>>1;for(;na5(i,t))sa5(o,i)?(e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s):(e[n]=i,i._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(sa5(o,t)))return;e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s}}}function is(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function io(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:aC,parent:null}}}}function il(e,t,r){return{id:r,value:t,parent:e}}function iu(e,t){return{id:null,value:e,parent:t}}function ic(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function id(e,t,r){return{id:null,value:e+am,parent:{id:"?",value:t,parent:r}}}function ih(e,t){let r=t.varyPath;if(t.isPage&&e!==aP.Full&&e!==aP.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:aC,parent:e}}}return r}function ip(e){let t=e.parent.value;return"string"==typeof t?t:null}function im(e,t){return{id:e.id,value:null===e.id||t.has(e.id)?e.value:aC,parent:null===e.parent?null:im(e.parent,t)}}let ig=null,iy={pending:!0},iv={pending:!1},ib="function"==typeof WeakMap?new WeakMap:new Map,iw=new Set;function iS(e,t){for(let r of iw){let n=r.prefetchTask;if(null!==n&&!aJ(n,e,t))continue;null!==n&&function(e){if(e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,ii(e,n,r))}}(az,e),process.env.__NEXT_EXPOSE_TESTING_API){let t=e._onComplete;e._onComplete=void 0,t?.()}}(n);let a=ak(r.prefetchHref,e);r.prefetchTask=aG(a,t,r.fetchStrategy,ax.Default,null)}}"function"==typeof IntersectionObserver&&new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;!function(e,t){let r=ib.get(e);void 0!==r&&(r.isVisible=t,t?iw.add(r):iw.delete(r),ax.Default)}(t.target,e)}},{rootMargin:"200px"});var i_=a("./dist/esm/shared/lib/promise-with-resolvers.js");function iE(e,t){return -1!==t?e+1e3*t:e+sW}function iR(e,t,r,n,a,i,s){}function ik(e,t,r,n,a){}aA();function ix(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let iP=ix();function iC(e,t,r,n,a,i,s,o,l,u){let c=t.split("/").filter(e=>""!==e),d=c.length>0?c[0]:null,f=c.length>0?c.slice(1):[];if(null!==n){let c=iY(e,n,a,i,s,o,l);return u&&(c.hasDynamicRewrite=!0),iT(iP,a,d,f,c,e,t,r,a,i,s,o,l,u),c}return iT(iP,a,d,f,null,e,t,r,a,i,s,o,l,u)}function iT(e,t,r,n,a,i,s,o,l,u,c,d,f,h){let p,m,g=t.segment,y=null,v=null,b=null;"string"==typeof g?p=aS(g):(y=g[0],v=g[2],b=g[3],p=!0);let w=e,S=r,_=n;if(p){if(null===y&&r!==g)return null!==a?a:iQ(i,s,o,l,u,c,d,f);if(null!==y&&null!==v){if(w=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=ix();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,y,v),null!==b)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),b))e.staticChildren.has(t)||e.staticChildren.set(t,ix())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=ix(),e.staticChildren.set(r,t)),w=t}S=n.length>0?n[0]:null,_=n.length>0?n.slice(1):[]}let E=t.slots,R=null;if(null!==E){for(let e in E){let t=E[e];null===t.refreshState&&(R=iT(w,t,S,_,a,i,s,o,l,u,c,d,f,h))}return null!==R?R:null!==a?a:iQ(i,s,o,l,u,c,d,f)}return null!==w.pattern?(h&&(w.pattern.hasDynamicRewrite=!0),w.pattern):(m=null!==a?a:iQ(i,s,o,l,u,c,d,f),h&&(m.hasDynamicRewrite=!0),w.pattern=m,m)}function iA(e){return 1e3*Math.max(e,30)}var iO=((v={})[v.Empty=0]="Empty",v[v.Pending=1]="Pending",v[v.Fulfilled=2]="Fulfilled",v[v.Rejected=3]="Rejected",v);let ij="export"===process.env.__NEXT_CONFIG_OUTPUT,i$=["",{},null,"metadata-only"],iI=aA(),iD=aA(),iN=null,iM=0;function iL(e,t){let r=is(t.pathname,t.search,t.nextUrl),n=aO(e,iM,iI,r,!1);return null!==n?n:process.env.__NEXT_OPTIMISTIC_ROUTING?function(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let i=n=400)return i0(e,Date.now()+1e4),null;l=r.redirected?new URL(r.url):u,t=await sr(sa(l,i),s)}else t=await sr(u,s),l=null!==t&&t.redirected?new URL(t.url):u;if(!t||!t.ok||204===t.status||!t.body)return i0(e,Date.now()+1e4),null;let c=nW(l),d=t.headers.get("vary"),f=null!==d&&d.includes(X.kO),h=(0,i_.b)(),p="2"===t.headers.get(X.jc)||ij;if(p){var o;let n,{stream:i,size:l}=await sn(t.body);h.resolve(),aN(e,l);let u=await sb(i,s,{allowPartialStream:!0});if((t.headers.get(ep.eQ)??u.buildId)!=="")return i0(e,Date.now()+1e4),null;let d=(o=t).headers.get(X.j9)??a_(new URL(o.url)).pathname,m=aw(t),g={metadataVaryPath:null},y=(n=d.split("/").filter(e=>""!==e),function e(t,r,n,a,i,s,o,l){let u,c,d=null,f=t.slots;if(null!==f)for(let t in u=!1,c=iu(a,n),d={},f){let r,u,c,h=f[t],p=h.name,m=h.param;if(null!==m){let e=function(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}(m.type,i,s),t=null!==m.key?m.key:"string"==typeof e?(0,t3.HG)(e,Object.fromEntries(new URLSearchParams(""))):null===e?"":e.join("/");c=il(n,t,p),u=[p,t,m.type,m.siblings],r=!0}else c=n,u=p,r=aS(p);let g=r?s+1:s,y=ay(a,t,ag(u));d[t]=e(h,u,c,y,i,g,o,l)}else a.endsWith(t3.OG)?(u=!0,c=ic(a,o,n),null===l.metadataVaryPath&&(l.metadataVaryPath=id(a,o,n))):(u=!1,c=iu(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:c,isPage:u,slots:d,prefetchHints:t.prefetchHints}}(u.tree,"",null,"",n,0,m,g)),v=g.metadataVaryPath;if(null===v)return i0(e,Date.now()+1e4),null;iC(Date.now(),r,a,e,y,v,f,c,p,!1)}else{let{stream:n,size:i}=await sn(t.body);h.resolve(),aN(e,i);let o=await sb(n,s,{allowPartialStream:!0});if((t.headers.get(ep.eQ)??o.b)!=="")return i0(e,Date.now()+1e4),null;let l=o.h,u=null!==l?aE(l):null;!function(e,t,r,n,a,i,s,o,l,u,c){let d=aw(r),f=ah(n.f);if("string"==typeof f||1!==f.length)return i0(a,e+1e4);let h=f[0];if(!h.isRootRender)return i0(a,e+1e4);let p=h.tree,m="1"===r.headers.get(X.jc),g={metadataVaryPath:null},y=i2(p,d,g),v=g.metadataVaryPath;if(null===v)return i0(a,e+1e4);iC(e,u,c,a,y,v,i,s,o,!1);let b=sX(e,p,f,d,-1);se(e,t,f,r.headers.get(ep.eQ)??n.b,m,l,ss(e,r),b,null)}(Date.now(),aP.LoadingBoundary,t,o,e,f,c,p,u,r,a)}if(!f){let t=io(r,n,a,f);a$(iI,t,e,!1)}return{value:null,closed:h.promise}}catch(t){return i0(e,Date.now()+1e4),null}}async function i8(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=r.nextUrl,s=n.requestKey,o=""===s?"/_index":s,l={[X.hY]:"1",[X._V]:"1",[X.qm]:o};null!==i&&(l[X.kO]=i),si(l);let u=ij?sa(a,o):a;try{let e=await sr(u,l);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(X.jc)&&!ij||!e.body)return i1(t,Date.now()+1e4),null;let r=(0,i_.b)(),{stream:a,size:i}=await sn(e.body);r.resolve(),aN(t,i);let s=await sb(a,l,{allowPartialStream:!0});if((e.headers.get(ep.eQ)??s.buildId)!=="")return i1(t,Date.now()+1e4),null;let o=Date.now(),c=o+iA(s.staleTime),d=iZ(t,s.rsc,c,s.isPartial),f=s.varyParams,h=process.env.__NEXT_VARY_PARAMS&&null!==f?im(n.varyPath,f):ih(t.fetchStrategy,n);return iV(o,h,d),{value:d,closed:r.promise}}catch(e){return i1(t,Date.now()+1e4),null}}async function i9(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=t.nextUrl,s={[X.hY]:"1",[X._V]:"1",[X.qm]:"/"+t3.OG};null!==i&&(s[X.kO]=i),si(s);try{let t=await sr(a,s);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(X.jc)&&!ij||!t.body)return i7(n,Date.now()+1e4),null;let i=(0,i_.b)(),{stream:o}=await sn(t.body);i.resolve();let l=await sb(o,s,{allowPartialStream:!0});if((t.headers.get(ep.eQ)??l.tree.segment.buildId)!=="")return i7(n,Date.now()+1e4),null;let u=Date.now();!function e(t,r,n,a,i){let s=a.segment,o=t+iA(s.staleTime),l=i.get(n.requestKey);if(void 0!==l)iZ(l,s.rsc,o,s.isPartial);else{let e=iq(t,aP.PPR,n);0===e.status&&iZ(iG(e,aP.PPR),s.rsc,o,s.isPartial)}if(null!==n.slots&&null!==a.slots)for(let s in n.slots){let o=n.slots[s],l=a.slots[s];void 0!==l&&e(t,r,o,l,i)}}(u,e,r,l.tree,n);let c=u+iA(l.head.staleTime),d=e.metadata.requestKey,f=n.get(d);if(void 0!==f)iZ(f,l.head.rsc,c,l.head.isPartial);else{let t=iq(u,aP.PPR,e.metadata);0===t.status&&iZ(iG(t,aP.PPR),l.head.rsc,c,l.head.isPartial)}return i7(n,Date.now()+1e4),{value:null,closed:i.promise}}catch(e){return i7(n,Date.now()+1e4),null}}async function i5(e,t,r,n,a){let i=e.key,s=new URL(t.canonicalUrl,location.origin),o=i.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=i$);let l={[X.hY]:"1",[X.B]:ap(n)};switch(null!==o&&(l[X.kO]=o),r){case aP.Full:break;case aP.PPRRuntime:l[X._V]="2";break;case aP.LoadingBoundary:l[X._V]="1"}try{let e,i=await sr(s,l);if(!i||!i.ok||!i.body)return i7(a,Date.now()+1e4),null;let o=aw(i);if(o!==t.renderedSearch)return i7(a,Date.now()+1e4),null;let f=(0,i_.b)(),h=null,p=null;if(r===aP.Full){var u,c,d;let t,r;u=i.body,c=f.resolve,d=function(e){if(null===h)return;let t=e/h.length;for(let e of h)aN(e,t)},t=0,r=u.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),d(t+=a.byteLength);continue}e.close(),c();return}}})}else{let{stream:t,size:r}=await sn(i.body);f.resolve(),e=t,p=r}let[m,g]=await Promise.all([sb(e,l,{allowPartialStream:!0}),i.cacheData]),y=m.h,v=null!==y?aE(y):null,b=Date.now(),w=await so(b,m.s,i),S=r===aP.PPRRuntime&&(g?.isResponsePartial??!1),_=i.headers.get(ep.eQ)??m.b,E=ah(m.f);if("string"==typeof E)return i7(a,Date.now()+1e4),null;let R=sX(b,n,E,o,-1);if(h=se(b,r,E,_,S,v,w,R,a),null!==p&&null!==h&&h.length>0){let e=p/h.length;for(let t of h)aN(t,e)}return{value:null,closed:f.promise}}catch(e){return i7(a,Date.now()+1e4),null}}function i7(e,t){let r=[];for(let n of e.values())1===n.status?i1(n,t):2===n.status&&r.push(n);return r}function se(e,t,r,n,a,i,s,o,l){if(n&&""!==n)return null!==l&&i7(l,e+1e4),null;let u=o.routeTree,c=null!==o.metadataVaryPath?iK(o.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let i=n.segmentPath,o=u;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function sa(e,t){if(ij){let r=new URL(e),n=r.pathname.endsWith("/")?r.pathname.slice(0,-1):r.pathname,a=`__next${t.replace(/\//g,".")}.txt`;return r.pathname=`${n}/${a}`,r}return e}function si(e){if(process.env.__NEXT_EXPOSE_TESTING_API){let{isNavigationLocked:t}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");t()&&(e[X.Yf]="1")}}function ss(e,t){let r=parseInt(t.headers.get(X.UK)??"",10);return e+(isNaN(r)?sG:iA(r))}async function so(e,t,r){if(void 0!==t){let r;for await(let e of t)r=e;if(void 0!==r)return e+(isNaN(r)?sG:iA(r))}return void 0!==r?ss(e,r):e+sG}function sl(e,t,r,n,a,i,s,o){let l=o?aP.PPR:aP.Full,u=null!==n?aE(n):null,c=ah(t);if("string"==typeof c)return;let d=sX(e,i,c,s,-1);se(e,l,c,r,o,u,a,d,null)}async function su(e,t,r,n){let{stream:a,isPartial:i}=await sc(t),s=await sb(a,void 0,{allowPartialStream:!0}),o=s.h,l=null!==o?aE(o):null,u=await so(e,s.s),c=ah(s.f);if("string"==typeof c)return null;let d=sX(e,r,c,n,-1);return{flightDatas:c,navigationSeed:d,buildId:s.b,isResponsePartial:i,headVaryParams:l,staleAt:u}}async function sc(e){let t=!!process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS,r=e.getReader(),{done:n,value:a}=await r.read();if(n||!a||0===a.byteLength)return{stream:new ReadableStream({start:e=>e.close()}),isPartial:t};let i=a[0],s=35===i||126===i,o=s?a.byteLength>1?a.subarray(1):null:a;return{isPartial:s?126===i:t,stream:new ReadableStream({start(e){o&&e.enqueue(o)},async pull(e){let t=await r.read();t.done?e.close():e.enqueue(t.value)}})}}let sd=ac.createFromReadableStream,sf=ac.createFromFetch;function sh(e){return a_(new URL(e,location.origin)).toString()}async function sp(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[X.hY]:"1",[X.B]:ap(r,t.isHmrRefresh)};n&&(a[X.kO]=n);let i=e;try{"export"===process.env.__NEXT_CONFIG_OUTPUT&&((e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt");let t=process.env.__NEXT_PPR&&!process.env.__NEXT_CACHE_COMPONENTS,r=await sv(e,a,"auto",!t),n=a_(new URL(r.url)),s=r.redirected?n:i,o=r.headers.get("content-type")||"",l=!!r.headers.get("vary")?.includes(X.kO),u=!!r.headers.get(X.jc),c=o.startsWith(X.al);if("export"!==process.env.__NEXT_CONFIG_OUTPUT||c||(c=o.startsWith("text/plain")),!c||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),sh(n.toString());let d=r.flightResponsePromise;null===d&&(d=sb(r.body,a,{allowPartialStream:u}));let[f,h]=await Promise.all([d,r.cacheData]);if((r.headers.get(ep.eQ)??f.b)!=="")return sh(r.url);let p=ah(f.f);if("string"==typeof p)return sh(p);let m=null!==h?await sg(h,f,a):null;return{flightData:p,canonicalUrl:s,renderedSearch:f.q,couldBeIntercepted:l,supportsPerSegmentPrefetching:f.S,postponed:u,dynamicStaleTime:f.d??-1,staticStageData:m,runtimePrefetchStream:f.p??null,responseHeaders:r.headers,debugInfo:d._debugInfo??null}}catch(e){return console.error(`Failed to fetch RSC payload for ${i}. Falling back to browser navigation.`,e),i.toString()}}async function sm(e){if(process.env.__NEXT_CACHE_COMPONENTS){let t,r;if(!e.body)throw Object.defineProperty(new eU.z("Expected RSC navigation response to have a body"),"__NEXT_ERROR_CODE",{value:"E1088",enumerable:!1,configurable:!0});let{stream:n,isPartial:a}=await sc(e.body);if(process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS){let[e,i]=n.tee();t=e,r={isResponsePartial:a,responseBodyClone:i}}else t=n,r={isResponsePartial:a};let i=new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText});return Object.defineProperty(i,"url",{value:e.url}),Object.defineProperty(i,"redirected",{value:e.redirected}),{response:i,cacheData:r}}return{response:e,cacheData:null}}async function sg(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await sy(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function sy(e,t,r){var n,a;let i,s;return sb((n=e,a=await t,i=n.getReader(),s=a,new ReadableStream({async pull(e){if(s<=0){i.cancel(),e.close();return}let{done:t,value:r}=await i.read();t?e.close():r.byteLength<=s?(e.enqueue(r),s-=r.byteLength):(e.enqueue(r.subarray(0,s)),s=0,i.cancel(),e.close())},cancel(){i.cancel()}})),r,{allowPartialStream:!0})}async function sv(t,r,n,a,i){process.env.__NEXT_TEST_MODE&&null!==n&&(r["Next-Test-Fetch-Priority"]=n),e&&(r["x-deployment-id"]=e);let s={credentials:"same-origin",headers:r,priority:n||void 0,signal:i},o=new URL(t);rw(o,r);let l=fetch(o,s).then(sm),u=l.then(({response:e})=>e),c=a?sw(u,r):null,d=await u,f=d.redirected;if(process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS)for(let e=0;e<20&&d.redirected;e++){let e=new URL(d.url,o);if(e.origin!==o.origin||e.searchParams.get(X._A)===o.searchParams.get(X._A))break;rw(o=new URL(e),r),u=(l=fetch(o,s).then(sm)).then(({response:e})=>e),c=a?sw(u,r):null,d=await u,f=!0}let h=new URL(d.url,o);return h.searchParams.delete(X._A),{url:h.href,redirected:f,ok:d.ok,headers:d.headers,body:d.body,status:d.status,flightResponsePromise:c,cacheData:l.then(({cacheData:e})=>e)}}function sb(e,r,n){return sd(e,{callServer:ad,findSourceMapURL:l,debugChannel:t&&t(r),unstable_allowPartialStream:n?.allowPartialStream})}function sw(e,r){return sf(e,{callServer:ad,findSourceMapURL:l,debugChannel:t&&t(r)})}var sS=((b={})[b.Default=0]="Default",b[b.Hydration=1]="Hydration",b[b.HistoryTraversal=2]="HistoryTraversal",b[b.RefreshAll=3]="RefreshAll",b[b.HMRRefresh=4]="HMRRefresh",b[b.Gesture=5]="Gesture",b);let s_=()=>{};function sE(e,t,r,n,a,i,s,o,l){let u=sR(t),c=t.slots,d=null!==a?a[1]:null,f=sP(e,t,null!==a?a[0]:null,r,i,n,s),h=f.cacheNode,p=f.needsDynamicRequest;null===c&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,h,l);let m={},g=null,y=!1,v={},b=null;if(null!==c)for(let t in h.slots=b={},g=new Map,c){let a=sE(e,c[t],r,n,(null!==d?d[t]:null)??null,i,s,o||p,l);g.set(t,a),b[t]=a.node;let u=a.route;m[t]=u;let f=a.dynamicRequestTree;null!==f?(y=!0,v[t]=f):v[t]=u}let w=[u,m,null,null,t.prefetchHints];return{status:+!p,route:w,node:h,dynamicRequestTree:sx(w,v,p,y,o),refreshState:null,children:g}}function sR(e){if(e.isPage){let t=ip(e.varyPath);if(null===t)return t3.OG;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?t3.OG+"?"+r:t3.OG}return e.segment}function sk(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function sx(e,t,r,n,a){let i=null;return r?(i=sk(e,t),a||(i[3]="refetch")):i=n?sk(e,t):null,i}function sP(e,t,r,n,a,i,s){let o,l,u,c=t.isPage;switch(i){case 0:{let e=(t.varyPath,null);if(null!==e)return{cacheNode:sC(e.rsc,e.prefetchRsc,e.head,e.prefetchHead),needsDynamicRequest:!1};break}case 1:{let i=c?a:null;return iR(e,t.varyPath,r,null,i,null,s),c&&null!==n&&ik(e,n,i,null,s),{cacheNode:sC(r,null,i,null),needsDynamicRequest:!1}}case 2:let d=(t.varyPath,null);if(null!==d){let e=d.rsc,t=!sI(e)||"pending"!==e.status;return{cacheNode:sC(d.rsc,t?null:d.prefetchRsc,d.head,t?null:d.prefetchHead),needsDynamicRequest:!1}}}let f=null,h=!0,p=iU(e,t.varyPath);if(null!==p)switch(p.status){case iO.Fulfilled:f=p.rsc,h=p.isPartial;break;case iO.Pending:f=iF(p).then(e=>null!==e?e.rsc:null),h=p.isPartial;case iO.Empty:case iO.Rejected:}null!==r?(h?(o=f,l=r):(o=null,l=f),u=!1):(h?(o=f,l=sD()):(o=null,l=f),u=h);let m=null,g=null,y=c;if(c){let t=null,r=!0;if(null!==n){let a=iU(e,n);if(null!==a)switch(a.status){case iO.Fulfilled:t=a.rsc,r=a.isPartial;break;case iO.Pending:t=iF(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case iO.Empty:case iO.Rejected:}}process.env.__NEXT_OPTIMISTIC_ROUTING&&r&&(t=""),null!==a?(r?(m=t,g=a):(m=null,g=t),y=!1):(r?(m=t,g=sD()):(m=null,g=t),y=r)}return 5!==i&&(iR(e,t.varyPath,l,o,g,m,s),c&&null!==n&&ik(e,n,g,m,s)),{cacheNode:sC(l,o,g,m),needsDynamicRequest:u||y}}function sC(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let sT=!1;async function sA(e,t,r,n,a,i){var s,o;let l=await (s=r,o=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;s.then(t,r),null!==o&&(n+=o.length,o.forEach(e=>e.then(t,r)))}));switch(0===l&&(l=function e(t,r,n){var a,i,s;let o,l,u;0===t.status?(t.status=2,a=t.node,i=r,s=n,sI(l=a.rsc)&&(null===i?l.resolve(null,s):l.reject(i,s)),sI(u=a.head)&&u.resolve(null,s),o=null===t.refreshState?1:2):o=0;let c=t.children;if(null!==c)for(let[,t]of c){let a=e(t,r,n);a>o&&(o=a)}return o}(e,null,null)),l){case 0:sT=!1;return;case 1:{let n=await r;sO(!1,n.url,t,n.seed,e.route,a,i);return}case 2:{let n=await r;sO(!0,n.url,t,n.seed,e.route,a,i);return}default:return l}}function sO(e,t,r,n,a,i,s){if(null!==i)i.hasDynamicRewrite=!0;else if(null!==n){let e=n.metadataVaryPath;null!==e&&iC(Date.now(),t.pathname,r,null,n.routeTree,e,!1,nW(t),!1,!0)}iM++,iS(r,a),function(e,t){if(null!==iN){let r=iN;for(let n of(iN=null,r))aJ(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}(r,a),e=e||sT,sT=!0;let o=n2,l=null!==o&&a!==o?s:"replace",u={type:nV.Aw,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:l};(0,n1.Dd)(u)}async function sj(e,t,r,n,a,i){try{let s=await sp(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof s)return{exitStatus:2,url:new URL(s,location.origin),seed:null};let o=Date.now(),l=sX(o,e.route,s.flightData,s.renderedSearch,s.dynamicStaleTime);if(process.env.__NEXT_EXPOSE_TESTING_API&&await sN(),null!==i&&null!==s.staticStageData){let{response:e,isResponsePartial:r}=s.staticStageData;so(o,e.s).then(n=>{let a=s.responseHeaders.get(ep.eQ)??e.b;sl(o,e.f,a,e.h,n,t,s.renderedSearch,r)}).catch(()=>{})}null!==i&&null!==s.runtimePrefetchStream&&su(o,s.runtimePrefetchStream,t,s.renderedSearch).then(e=>{null!==e&&se(o,aP.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let u=iE(o,s.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,i,s){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,i=t[0];if(null===i)return;null===a?e.rsc=i:sI(a)&&a.resolve(i,n);let s=e.head;sI(s)&&s.resolve(r,n)}(t.node,n,a,s),r.varyPath);let o=t.children,l=r.slots,u=null!==n?n[1]:null,c=!1;if(null!==o)if(null!==l)for(let t in l){let r=l[t],n=null!==u?u[t]:null,d=o.get(t);if(void 0===d)c=!0;else{let t=d.route[0];rz(sR(r),t)&&null!=n&&e(d,r,n,a,i,s)&&(c=!0)}}else null!==l&&(c=!0);return c}(e,l.routeTree,l.data,l.head,u,s.debugInfo),url:new URL(s.canonicalUrl,location.origin),seed:l}}catch{return{exitStatus:2,url:r,seed:null}}}let s$=Symbol();function sI(e){return e&&"object"==typeof e&&e.tag===s$}function sD(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=s$,n._debugInfo=r,n}async function sN(){if(process.env.__NEXT_EXPOSE_TESTING_API){let{waitForNavigationLockIfActive:e}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");await e()}}let sM=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function sL(e){return sM.test(""+e)}function sU(e,t,r,n,a,i,s,o,l,u){let c=Date.now(),d=iL(c,ak(t.href,s));if(null!==d&&d.status===iO.Fulfilled)return sH(c,e,t,r,n,s,a,i,o,l,u,d);if(!process.env.__NEXT_OPTIMISTIC_ROUTING&&(null===d||d.status!==iO.Rejected)){let d=function(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let i=iL(e,ak(a.href,r));if(null===i||2!==i.status)return null;let s=new URL(i.canonicalUrl,t.origin),o=""!==s.search?s.search:n,l=""!==i.renderedSearch?i.renderedSearch:n,u=new URL(i.canonicalUrl,location.origin);return u.search=o,{canonicalUrl:nW(u),status:2,blockedTasks:null,tree:iz(i.tree,l),metadata:iz(i.metadata,l),couldBeIntercepted:i.couldBeIntercepted,supportsPerSegmentPrefetching:i.supportsPerSegmentPrefetching,hasDynamicRewrite:i.hasDynamicRewrite,renderedSearch:l,ref:null,size:0,staleAt:i.staleAt,version:i.version}}(c,t,s);if(null!==d)return sH(c,e,t,r,n,s,a,i,o,l,u,d)}return sz(c,e,t,r,n,s,a,i,o,l,u).catch(()=>e)}function sF(e,t,r,n,a,i,s,o,l,u,c,d,f,h,p){var m,g,y,v,b;let w,S={separateRefreshUrls:null,scrollRef:null},_=r.href===i.href,E=(m=a.routeTree,g=a.metadataVaryPath,y=a.data,v=a.head,b=a.dynamicStaleAt,w={canonicalUrl:nW(i),renderedSearch:s},function e(t,r,n,a,i,s,o,l,u,c,d,f,h,p,m,g){var y,v,b;let w,S,_,E,R=a[0],k=sR(i);if(!rz(k,R))return!l&&function e(t,r){let n=t[0],a=r.segment;if(Array.isArray(n)&&Array.isArray(a)){if(n[0]!==a[0]||n[2]!==a[2])return!0}else if(n!==a)return!0;let i=((t[4]??0)&t2.IsRootLayout)!=0,s=(r.prefetchHints&t2.IsRootLayout)!=0;if(i)return!s;if(s)return!0;let o=r.slots,l=t[1];if(null!==o)for(let t in o){let r=o[t],n=l[t];if(void 0===n||e(n,r))return!0}return!1}(a,i)||k===t3.Jn?null:sE(t,i,s,o,u,c,d,h,g);let x=i.slots,P=a[1],C=null!==u?u[1]:null,T=l||(i.prefetchHints&t2.IsRootLayout)!=0,A=!1;switch(o){case 0:case 2:case 1:case 5:A=!1;break;case 3:case 4:A=!0}let O=null===x;if(void 0===n||A||O&&f){let e=sP(t,i,null!==u?u[0]:null,s,c,o,d);_=e.cacheNode,E=e.needsDynamicRequest,void 0!==n&&(_.scrollRef=n.scrollRef)}else{y=!1,_=sC((v=n).rsc,y?null:v.prefetchRsc,v.head,y?null:v.prefetchHead,v.scrollRef),E=!1}let j=i.refreshState,$=null!=j?j:m;E&&null!==$&&(b=g,w=$.canonicalUrl,null===(S=b.separateRefreshUrls)?b.separateRefreshUrls=new Set([w]):S.add(w));let I={},D=null,N=!1,M={},L=null;if(null!==x){let a=void 0!==n?n.slots:null;for(let n in _.slots=L={},D=new Map,x){let l=x[n],u=P[n];if(void 0===u)return null;let m=null!==C?C[n]:null,y=u[0],v=sR(l),b=c;2!==o&&v===t3.WO&&y!==t3.WO&&(v=sR(l=function(e,t,r,n){let a,i,s=n[2];null!=s?(a=s[0],i=s[1]):(a=r.canonicalUrl,i=r.renderedSearch);let o=function(e,t,r,n,a){let i=e.isPage?e.varyPath.parent.parent:e.varyPath.parent,s=r[0];return i3(r,ay(e.requestKey,t,ag(s)),i,n,a)}(e,t,n,i,{metadataVaryPath:null});return o.refreshState={canonicalUrl:a,renderedSearch:i},o}(i,n,p,u)),m=null,b=null);let w=e(t,r,null!==a?a[n]:void 0,u,l,s,o,T,m??null,b,d,f,h||E,p,$,g);if(null===w)return null;D.set(n,w),L[n]=w.node;let S=w.route;I[n]=S;let _=w.dynamicRequestTree;null!==_?(N=!0,M[n]=_):M[n]=S}}let U=[sR(i),I,null!==$?[$.canonicalUrl,$.renderedSearch]:null,null,i.prefetchHints];return{status:+!E,route:U,node:_,dynamicRequestTree:sx(U,M,E,N,h),refreshState:$,children:D}}(e,i,null!==o?o:void 0,l,m,g,u,!1,y,v,b,_,!1,w,null,S));return null!==E?(u!==sS.Gesture&&function(e,t,r,n,a,i,s){let o=e.dynamicRequestTree;if(null===o){sT=!1;return}let l=sj(e,o,t,r,n,i),u=a.separateRefreshUrls,c=null;if(null!==u){c=[];let a=nW(t);for(let t of u)t!==a&&null!==o&&c.push(sj(e,o,new URL(t,location.origin),r,n,i))}sA(e,r,l,c,i,s).then(s_,s_)}(E,r,c,u,S,p,f),function(e,t,r,n,a,i,s,o,l,u,c){let d,f,h,p=(null==(h=function e(t,r){let[n,a]=t,[i,s]=r,o=ao(n),l=ao(i);if(nE.VB.some(e=>o.startsWith(e)||l.startsWith(e)))return"";if(!rz(n,i))return au(r)??"";for(let t in a)if(s[t]){let r=e(a[t],s[t]);if(null!==r)return`${ao(i)}/${r}`}return null}(e.tree,n))||"/"===h?h:al(h.split("/")))||e.nextUrl,m=new URL(e.canonicalUrl,t),g=t.pathname===m.pathname&&t.search===m.search&&t.hash!==m.hash;if(l===nV.Kj.NoScroll)null!==u&&(u.current=!1),d=e.focusAndScrollRef.scrollRef,f=!1;else if(g){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==u&&(u.current=!1),d={current:!0},f=!0}else{if(d=u,null!==u){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}f=!1}return{canonicalUrl:s,renderedSearch:i,pushRef:{pendingPush:"push"===o,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:d,forceScroll:f,onlyHashChange:g,hashFragment:l!==nV.Kj.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:p,previousNextUrl:r,debugInfo:c}}(t,r,c,E.route,E.node,a.renderedSearch,n,f,d,S.scrollRef,h)):sq(t,r,f)}function sH(e,t,r,n,a,i,s,o,l,u,c,d){let f=d.tree,h=d.canonicalUrl+r.hash,p={renderedSearch:d.renderedSearch,routeTree:f,metadataVaryPath:d.metadata.varyPath,data:null,head:null,dynamicStaleAt:iE(e,-1)};return sF(e,t,r,h,p,n,a,s,o,l,i,u,c,null,d)}let sB=["",{},null,"refetch"];async function sz(e,t,r,n,a,i,s,o,l,u,c){let d;switch(l){case sS.Default:case sS.HistoryTraversal:case sS.Gesture:d=o;break;case sS.Hydration:case sS.RefreshAll:case sS.HMRRefresh:d=sB;break;default:d=o}let f=sp(r,{flightRouterState:d,nextUrl:i}),h=await f;if("string"==typeof h)return sq(t,new URL(h,location.origin),c);let{flightData:p,canonicalUrl:m,renderedSearch:g,couldBeIntercepted:y,supportsPerSegmentPrefetching:v,dynamicStaleTime:b,staticStageData:w,runtimePrefetchStream:S,responseHeaders:_,debugInfo:E}=h,R=sX(e,o,p,g,b),k=R.metadataVaryPath;if(null!==k){if(iC(e,r.pathname,i,null,R.routeTree,k,y,nW(m),v,!1),null!==w){let{response:t,isResponsePartial:r}=w;so(e,t.s).then(n=>{let a=_.get(ep.eQ)??t.b;sl(e,t.f,a,t.h,n,o,g,r)}).catch(()=>{})}null!==S&&su(e,S,o,g).then(t=>{null!==t&&se(e,aP.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return sF(e,t,r,nW(m),R,n,a,s,o,l,i,u,c,E,null)}function sq(e,t,r){return sL(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?nW(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function sX(e,t,r,n,a){let i=t,s=null,o=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:l}of r){let r=function e(t,r,n,a,i,s,o){let l;if(o===i.length)return{tree:n,data:a};let u=i[o],c=t[1],d=null!==r?r[1]:null,f={},h={};for(let t in c){let r=c[t],l=null!==d?d[t]??null:null;if(t===u){let u=e(r,l,n,a,i,s,o+2);f[t]=u.tree,h[t]=u.data}else f[t]=r,h[t]=l}if(l=[t[0],f],2 in t){let e=t[2];null!=e&&(l[2]=[e[0],s])}return 3 in t&&(l[3]=t[3]),4 in t&&(l[4]=t[4]),{tree:l,data:[null,h,null,!0,null]}}(i,s,t,a,e,n,0);i=r.tree,s=r.data,o=l}let l={metadataVaryPath:null};return{routeTree:i2(i,n,l),metadataVaryPath:l.metadataVaryPath,data:s,renderedSearch:n,head:o,dynamicStaleAt:iE(e,a)}}async function sV(e,t,r,n,i,s,o,l,u,c){let d=ig,f=null!==d?d.fetchStrategy:aP.PPR,{transitionToCapturedSPA:h,updateCapturedSPAToTree:p}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");h(s,null);let m=ak(t.href,o);await new Promise(e=>{aG(m,s,f,ax.Default,null,e)});let g=await sU(e,t,r,n,i,s,o,l,u,c);return p(s,g.tree),g}let sW=1e3*Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME),sG=iA(Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME)),sJ=process.env.__NEXT_ROUTER_BASEPATH||"";function sK(e,t){return(e=>{if(!e.startsWith("/")||process.env.__NEXT_MANUAL_TRAILING_SLASH)return e;let{pathname:t,query:r,hash:n}=ev(e);if(process.env.__NEXT_TRAILING_SLASH)if(/\.[^/]+\/?$/.test(t));else if(t.endsWith("/"))return`${t}${r}${n}`;else return`${t}/${r}${n}`;return`${ey(t)}${r}${n}`})(process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!t?e:eb(e,sJ))}let sY=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,sQ=/Googlebot(?!-)|Googlebot$/i;function sZ(e){return e.origin!==window.location.origin}sY.source;var s0=a("./dist/esm/shared/lib/is-thenable.js");function s1(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&s2({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:nV.z8},t))}async function s2({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,i=e.action(n,a);function s(n){if(t.discarded){t.payload.type===nV.s8&&t.payload.didRevalidate&&(e.needsRefresh=!0),s1(e,r);return}e.state=n,s1(e,r),t.resolve(n)}(0,s0.Q)(i)?i.then(s,n=>{s1(e,r),t.reject(n)}):s(i)}function s3(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==nV.IU){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,$.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,s2({actionQueue:e,action:a,setState:r})):t.type===nV.Zb||t.type===nV.IU?(e.pending.discarded=!0,a.next=e.pending.next,s2({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(r,e,t),action:async(e,t)=>e,pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};return r}function s4(e,t,r,n,a){if(a)for(let e of a)(0,$.addTransitionType)(e);let i=new URL(sK(e),location.href);process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=i),(0,$.startTransition)(()=>{ig?.setOptimisticLinkStatus(iv),n?.setOptimisticLinkStatus(iy),ig=n});(0,n1.Dd)({type:nV.Zb,url:i,isExternalUrl:sZ(i),locationSearch:location.search,scrollBehavior:r,navigateType:t})}let s6={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{var r,n,a,i;let s,o;if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let l=function(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}();switch(t?.kind??nV.ob.AUTO){case nV.ob.AUTO:s=aP.PPR;break;case nV.ob.FULL:s=aP.Full;break;default:s=aP.PPR}r=l.state.nextUrl,n=l.state.tree,a=s,i=t?.onInvalidate??null,null===(o=function(e){var t,r;let n;if(r=t=window.navigator.userAgent,sQ.test(r)||sY.test(t))return null;try{n=new URL(sK(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return sZ(n)?null:n}(e))||aG(ak(o.href,r),n,a,ax.Default,i)},replace:(e,t)=>{if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,$.startTransition)(()=>{s4(e,"replace",t?.scroll===!1?nV.Kj.NoScroll:nV.Kj.Default,null,t?.transitionTypes)})},push:(e,t)=>{if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,$.startTransition)(()=>{s4(e,"push",t?.scroll===!1?nV.Kj.NoScroll:nV.Kj.Default,null,t?.transitionTypes)})},refresh:()=>{(0,$.startTransition)(()=>{(0,n1.Dd)({type:nV.z8})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};process.env.__NEXT_GESTURE_TRANSITION&&(s6.experimental_gesturePush=function(e,t){if(process.env.__NEXT_GESTURE_TRANSITION){if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});!0;return}}),$.Component;let s8=a("../../app-render/work-async-storage.external").workAsyncStorage;function s9({error:e}){if(s8){let t=s8.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}class s5 extends $.Component{static{this.contextType=nH}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,$.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,tU.p)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return(process.env.__NEXT_APP_NAV_FAIL_HANDLING&&r,e.pathname!==t.previousPathname&&t.error)?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&1?(s9({error:this.state.error}),(0,O.jsxs)(O.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,O.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function s7({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let i=!function(){{let{workUnitAsyncStorage:e}=a("../../app-render/work-unit-async-storage.external"),t=e.getStore();if(!t)return!1;switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let r=t.fallbackRouteParams;return!!r&&r.size>0}return!1}}()?(0,$.useContext)(nY):null;return e?(0,O.jsx)(s5,{pathname:i,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,O.jsx)(O.Fragment,{children:n})}function oe({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return(0,O.jsx)(s7,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}let ot={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},or={marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},on={marginBottom:"24px"},oa={fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},oi={fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},os={margin:0},oo={display:"flex",gap:"8px",alignItems:"center"},ol={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},ou={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},oc={position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"},od=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function of(){return(0,O.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:on,children:(0,O.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}let oh=function({error:e}){let t=e?.digest,r=!!t;return s9({error:e}),(0,O.jsxs)("html",{id:"__next_error__",children:[(0,O.jsx)("head",{children:(0,O.jsx)("style",{dangerouslySetInnerHTML:{__html:od}})}),(0,O.jsxs)("body",{children:[(0,O.jsx)("div",{style:ot,children:(0,O.jsxs)("div",{style:or,children:[(0,O.jsx)(of,{}),(0,O.jsx)("h1",{style:oa,children:"This page couldn’t load"}),(0,O.jsx)("p",{style:oi,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,O.jsxs)("div",{style:oo,children:[(0,O.jsx)("form",{style:os,children:(0,O.jsx)("button",{type:"submit",style:ol,children:"Reload"})}),!r&&(0,O.jsx)("button",{type:"button",style:ou,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,O.jsxs)("p",{style:oc,children:["ERROR ",t]})]})]})};var op=a("./dist/esm/lib/framework/boundary-constants.js");let om={[op.NJ]:function({children:e}){return e},[op.A$]:function({children:e}){return e},[op.DQ]:function({children:e}){return e},[op.ri]:function({children:e}){return e}};om[op.NJ.slice(0)],om[op.A$.slice(0)],om[op.DQ.slice(0)];let og=om[op.ri.slice(0)],oy={};function ov({appRouterState:e}){return(0,$.useInsertionEffect)(()=>{process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=void 0);let{tree:t,pushRef:r,canonicalUrl:n,renderedSearch:a}=e,i={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:a}};r.pendingPush&&nW(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(i,"",n)):window.history.replaceState(i,"",n),n2=t},[e]),(0,$.useEffect)(()=>{iS(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function ob(e){null==e&&(e={});let t=window.history.state,r=t?.__NA;r&&(e.__NA=r);let n=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function ow({headCacheNode:e}){let t=null!==e?e.head:null,r=null!==e?e.prefetchHead:null,n=null!==r?r:t;return(0,$.useDeferredValue)(t,n)}function oS({actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n}){let a,i=(0,n1.n5)(e),{canonicalUrl:s}=i,{searchParams:o,pathname:l}=(0,$.useMemo)(()=>{var e;let t=new URL(s,"http://n");return{searchParams:t.searchParams,pathname:eS(t.pathname,aa)?(e=t.pathname,process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!eS(e,aa)||0===ai.length||(e=e.slice(ai.length)).startsWith("/")||(e=`/${e}`),e):t.pathname}},[s]);(0,$.useEffect)(()=>{let e,t=(e=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(t3.OG)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===t3.WO)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[as(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[as(r),...n]}}(i.tree))?`/${e.join("/")}`:void 0;void 0!==t?window.next.__internal_src_page=t:delete window.next.__internal_src_page},[i.tree]),(0,$.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(oy.pendingMpaPath=void 0,(0,n1.Dd)({type:nV.IU,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,$.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,tk.n)(t)){e.preventDefault();let r=tx(t);"push"===tP(t)?s6.push(r,{}):s6.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:u}=i;if(u.mpaNavigation){if(oy.pendingMpaPath!==s){let e=window.location;u.pendingPush?e.assign(s):e.replace(s),oy.pendingMpaPath=s}throw an}(0,$.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{let t=window.location.href,r=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,$.startTransition)(()=>{(0,n1.Dd)({type:nV.IU,url:new URL(e??t,t),historyState:r})})};window.history.pushState=function(t,n,a){return t?.__NA||t?._N||(t=ob(t),a&&r(a)),e(t,n,a)},window.history.replaceState=function(e,n,a){return e?.__NA||e?._N||(e=ob(e),a&&r(a)),t(e,n,a)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,$.startTransition)(()=>{var t,r;t=window.location.href,r=e.state.__PRIVATE_NEXTJS_INTERNALS_TREE,(0,n1.Dd)({type:nV.IU,url:new URL(t),historyState:r})})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:c,tree:d,nextUrl:f,focusAndScrollRef:h,previousNextUrl:p}=i,m=(0,$.useMemo)(()=>(function e(t,r,n,a){if(0===Object.keys(r).length)return[t,n,a];let i=Object.keys(r).filter(e=>"children"!==e);"children"in r&&i.unshift("children");let s=t.slots;if(null!==s)for(let t of i){let[a,i]=r[t];if(a===t3.WO)continue;let o=s[t];if(!o)continue;let l=e(o,i,n+"/"+ar(a),n+"/"+ar(a,!0));if(l)return l}return null})(c,d[1],"",""),[c,d]),g=(0,$.useMemo)(()=>(function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),i=a?t[1]:t;!i||i.startsWith(t3.OG)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r})(d),[d]),y=(0,$.useMemo)(()=>({parentTree:d,parentCacheNode:c,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:s,isActive:!0}),[d,c,s]),v=(0,$.useMemo)(()=>({tree:d,focusAndScrollRef:h,nextUrl:f,previousNextUrl:p}),[d,h,f,p]);if(null!==m){let[e,t,r]=m;a=(0,O.jsx)(ow,{headCacheNode:e},r)}else a=null;let b=(0,O.jsxs)(at,{children:[a,(0,O.jsx)(og,{children:c.rsc}),(0,O.jsx)(n4,{tree:d})]});return b=(0,O.jsx)(oe,{errorComponent:t[0],errorStyles:t[1],children:b}),(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(ov,{appRouterState:i}),(0,O.jsx)(oE,{}),(0,O.jsx)(nZ.Provider,{value:null,children:(0,O.jsx)(nQ.Provider,{value:g,children:(0,O.jsx)(nY.Provider,{value:l,children:(0,O.jsx)(nK.Provider,{value:o,children:(0,O.jsx)(nz.Provider,{value:v,children:(0,O.jsx)(nH.Provider,{value:s6,children:(0,O.jsx)(nB.Provider,{value:y,children:b})})})})})})})]})}function o_({actionQueue:e,globalErrorState:t,webSocket:r,staticIndicatorState:n}){process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(0,$.useEffect)(()=>{let e=e=>{"reason"in e?e.reason:e.error};return window.addEventListener("unhandledrejection",e),window.addEventListener("error",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let a=(0,O.jsx)(oS,{actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n});return(0,O.jsx)(oe,{errorComponent:oh,children:a})}function oE(){let[,e]=$.useState(0),t=r?.size??0;(0,$.useEffect)(()=>{if(!r||!n)return;let a=()=>e(e=>e+1);return n.add(a),t!==r.size&&a(),()=>{n.delete(a)}},[t,e]);let a=function(e=!1){let t=process.env.NEXT_IMMUTABLE_ASSET_TOKEN||process.env.NEXT_DEPLOYMENT_ID;return t?`${e?"&":"?"}dpl=${t}`:""}();return[...r||[]].map((e,t)=>(0,O.jsx)("link",{rel:"stylesheet",href:`${e}${a}`,precedence:"next"},t))}function oR({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:r,location:n}){let{c:a,f:i,q:s,i:o,S:l,s:u,l:c,h:d,p:f,d:h}=t,p=a.join("/"),{tree:m,seedData:g,head:y}=af(i[0]),v=n?nW(n):p,b={metadataVaryPath:null},w=i2(m,s,b),S=b.metadataVaryPath,_=sE(e,w,null,1,g,y,iE(e,h??-1),!1,{separateRefreshUrls:null,scrollRef:null});if(null!==n&&null!==S){if(iC(Date.now(),n.pathname,null,null,w,S,o,v,l,!1),null!==g&&void 0!==u)if(void 0!==c&&null!=r)sy(r,c,void 0).then(async e=>{let t=Date.now(),r=await so(t,e.s);sl(t,e.f,void 0,e.h,r,m,s,!0)}).catch(()=>{});else{let e=Date.now();so(e,u).then(t=>{sl(e,i,void 0,d,t,m,s,!1)}).catch(()=>{}),r?.cancel()}else r?.cancel();null!=f&&su(Date.now(),f,m,s).then(e=>{null!==e&&se(Date.now(),aP.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:_.route,cache:_.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:v,renderedSearch:s,nextUrl:(au(m)||n?.pathname)??null,previousNextUrl:null,debugInfo:null}}var ok=((w={}).ProspectiveRender="the prospective render",w.SegmentCollection="segment collection",w.InstantValidation="instant validation",w);function ox(e,t,r){let n;if(!tV(e)){if(tq(e))return void console.error(e);if("object"==typeof e&&null!==e&&"string"==typeof e.message){if(n=e.message,"string"==typeof e.stack){let a=e.stack,i=a.indexOf("\n");if(i>-1){let e=Object.defineProperty(Error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${n}`),"__NEXT_ERROR_CODE",{value:"E949",enumerable:!1,configurable:!0});e.stack="Error: "+e.message+a.slice(i),console.error(e);return}}}else"string"==typeof e&&(n=e);if(n)return void console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${n}`);console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`),console.error(e)}}let oP=require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js"),oC=!0;function oT(){console.warn("Next.js cannot guarantee that Cache Components will run as expected due to the current runtime's implementation of `setTimeout()`.\nPlease report a github issue here: https://github.com/vercel/next.js/issues/new/")}function oA(){}function oO(e,...t){return new Promise((r,n)=>{let a,i=function(e=0){{let n=!0,a=null,i=!1,s=!1;function t(e){return i=!0,oC&&(0,oP.unpatchedSetImmediate)(()=>{s=!0}),e()}function r(e){return oC&&s&&(oC=!1,oT()),e()}return function(s){if(i)throw Object.defineProperty(new eU.z("Cannot schedule more timers into a group that already executed"),"__NEXT_ERROR_CODE",{value:"E935",enumerable:!1,configurable:!0});let o=setTimeout(n?t:r,e,s);if(n=!1,!oC)return o;try{"_idleStart"in o&&"number"==typeof o._idleStart?null===a?a=o._idleStart:o._idleStart=a:(oC=!1,oT())}catch(e){console.error(Object.defineProperty(new eU.z("An unexpected error occurred while adjusting `_idleStart` on an atomic timer",{cause:e}),"__NEXT_ERROR_CODE",{value:"E933",enumerable:!1,configurable:!0})),oC=!1,oT()}return o}}}(),s=[];s.push(i(()=>{try{(0,oP.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),a=e(),(0,s0.Q)(a)&&a.then(oA,oA)}catch(e){for(let e=1;e{try{(0,oP.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),r()}catch(e){for(;++a{try{(0,oP.expectNoPendingImmediates)(),r(a)}catch(e){n(e)}}))})}let oj=require("next/dist/server/app-render/console-async-storage.external.js");class o${constructor(){this.count=0,this.earlyListeners=[],this.listeners=[],this.tickPending=!1,this.pendingTimeoutCleanup=null,this.subscribedSignals=null,this.invokeListenersIfNoPendingReads=()=>{if(this.pendingTimeoutCleanup=null,0===this.count){for(let e=0;eprocess.nextTick(()=>{if(this.tickPending=!1,0===this.count){for(let e=0;e{t=clearTimeout.bind(null,setTimeout(e,0))}),t=clearImmediate.bind(null,r),()=>t())}inputReady(){return new Promise(e=>{this.earlyListeners.push(e),0===this.count&&this.noMorePendingCaches()})}cacheReady(){return new Promise(e=>{this.listeners.push(e),0===this.count&&this.noMorePendingCaches()})}beginRead(){if(this.count++,this.pendingTimeoutCleanup&&(this.pendingTimeoutCleanup(),this.pendingTimeoutCleanup=null),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.beginRead()}endRead(){if(0===this.count)throw Object.defineProperty(new eU.z("CacheSignal got more endRead() calls than beginRead() calls"),"__NEXT_ERROR_CODE",{value:"E678",enumerable:!1,configurable:!0});if(this.count--,0===this.count&&this.noMorePendingCaches(),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.endRead()}hasPendingReads(){return this.count>0}trackRead(e){this.beginRead();let t=this.endRead.bind(this);return e.then(t,t),e}subscribeToReads(e){if(e===this)throw Object.defineProperty(new eU.z("A CacheSignal cannot subscribe to itself"),"__NEXT_ERROR_CODE",{value:"E679",enumerable:!1,configurable:!0});null===this.subscribedSignals&&(this.subscribedSignals=new Set),this.subscribedSignals.add(e);for(let t=0;tt.includes(e))}class oD{update(e){this._done||(this.currentValue=e,this._resolve?(this._resolve({value:e,done:!1}),this._resolve=null):this._buffer.push(e))}close(){!this._done&&(this._done=!0,this._resolve&&(this._resolve({value:void 0,done:!0}),this._resolve=null))}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(e=>{this._resolve=e})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this.currentValue=0}}function oN(e){return t=>{var r;return t===ep.AR&&"number"==typeof(null==(r=e.staleTimes)?void 0:r.static)?e.staleTimes.static:t}}function oM(e,t,r){let n=e.stale;t.update(r(n)),Object.defineProperty(e,"stale",{get:()=>n,set:e=>{n=e,t.update(r(e))},configurable:!0,enumerable:!0})}async function oL(e){e.close(),await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function oU(e){let t=!1;return async function(){return t?"":(t=!0,``)}}var oF=a("./dist/compiled/path-to-regexp/index.js");let oH=/[|\\{}()[\]^$+*?.-]/,oB=/[|\\{}()[\]^$+*?.-]/g;function oz(e){return oH.test(e)?e.replace(oB,"\\$&"):e}function oq(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:n=!1}={}){let{parameterizedRoute:a,groups:i}=function(e,t,r){let n={},a=1,i=[];for(let s of ey(e).slice(1).split("/")){let e=nE.VB.find(e=>s.startsWith(e)),o=s.match(nA);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=nO(o[2]);n[t]={pos:a++,repeat:s,optional:r},i.push(`/${oz(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=nO(o[2]);n[e]={pos:a++,repeat:t,optional:s},r&&o[1]&&i.push(`/${oz(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${oz(s)}`);t&&o&&o[3]&&i.push(oz(o[3]))}return{parameterizedRoute:i.join(""),groups:n}}(e,t,r),s=a;return n||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}function oX({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:n,keyPrefix:a,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:u}=nO(r),c=o.replace(/\W/g,"");a&&(c=`${a}${c}`);let d=!1;(0===c.length||c.length>30)&&(d=!0),isNaN(parseInt(c.slice(0,1)))||(d=!0),d&&(c=t());let f=c in n;a?n[c]=`${a}${o}`:n[c]=o;let h=e?oz(e):"";return s=f&&i?`\\k<${c}>`:u?`(?<${c}>.+?)`:`(?<${c}>[^/]+?)`,{key:o,pattern:l?`(?:/${h}${s})?`:`/${h}${s}`,cleanedKey:c,optional:l,repeat:u}}var oV=a("./dist/esm/shared/lib/utils.js");let oW="_NEXTSEP_";function oG(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function oJ(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${oW}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${oW}`)}function oK(e){return e.replace(RegExp(`\\)${oW}`,"g"),")")}function oY(e,t,r){if("string"!=typeof e)return(0,oF.pathToRegexp)(e,t,r);let n=oG(e),a=n?oJ(e):e;try{return(0,oF.pathToRegexp)(a,t,r)}catch(a){if(!n)try{let n=oJ(e);return(0,oF.pathToRegexp)(n,t,r)}catch(e){}throw a}}function oQ(e,t){let r=oG(e),n=r?oJ(e):e;try{let e=(0,oF.compile)(n,t);if(r)return t=>oK(e(t));return e}catch(n){if(!r)try{let r=oJ(e),n=(0,oF.compile)(r,t);return e=>oK(n(e))}catch(e){}throw n}}function oZ({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let a=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new oV.Xc("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>a(e)):i[e]=a(t))}return i},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${oW}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${oW}`),""):e):n[e]=r;return n}}var o0=a("./dist/esm/shared/lib/router/utils/querystring.js");function o1(e){return e.replace(/__ESC_COLON_/gi,":")}function o2(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),oQ(`/${e}`,{validate:!1})(t).slice(1)}function o3(e){try{return decodeURIComponent(e)}catch{return e}}function o4(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let n=t.searchParams.getAll(e);r[e]=n.length>1?n:n[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}let o6=/https?|ftp|gopher|file/;function o8(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(o0.Bw(s)));let l=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o6.test(n))&&!1!==o?(o="//"+(o||""),a&&"/"!==a[0]&&(a="/"+a)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),a=a.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${o}${a}${l}${i}`}function o9(e,t){for(let r in delete e.nextInternalLocale,e){let n=r!==ep.AA&&r.startsWith(ep.AA),a=r!==ep.h&&r.startsWith(ep.h);(n||a||t.includes(r))&&delete e[r]}}function o5(e,t){return"string"==typeof e[ep.vS]&&e[ep.c1]===t?e[ep.vS].split(","):[]}let o7=require("next/dist/server/app-render/module-loading/track-module-loading.external.js"),le={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1},lt=$.createContext(le);async function lr(e){let{mod:t}=await rG(e),r=t?t.unstable_instant:void 0;if(r&&"object"==typeof r&&"runtime"===r.prefetch)return!0;let{parallelRoutes:n}=rK(e);for(let e in n){let t=n[e];if(await lr(t))return!0}return!1}async function ln(e){let{mod:t}=await rG(e),r=t?t.unstable_instant:void 0;if(void 0!==r){if("object"==typeof r)return!1;else if(!1===r)return!0}let{parallelRoutes:n}=rK(e);for(let e in n){let t=n[e];if(await ln(t))return!0}return!1}async function la(e,t){let r=await ls(e),n=!1;for(let{config:e}of r)if("object"==typeof e){if(!0===e.unstable_disableValidation||"dev"===t&&!0===e.unstable_disableDevValidation||"build"===t&&!0===e.unstable_disableBuildValidation)return!1;n=!0}return n}ll(async e=>la(e,"dev"));let li=ll(async e=>la(e,"build")),ls=ll(async e=>{let t=[];async function r(e,n){let{mod:a}=await rG(e),i=a?a.unstable_instant:void 0;void 0!==i&&t.push({path:n,config:i});let{parallelRoutes:s}=rK(e);for(let e in s){let t=s[e];await r(t,[...n,e])}}return await r(e,[]),t}),lo=async e=>{let{mod:t}=await rG(e),r=t?t.unstable_instant:void 0,n=null;void 0!==r&&"object"==typeof r&&r.samples&&(n=r.samples);let{parallelRoutes:a}=rK(e);for(let e in a){if("children"!==e)continue;let t=a[e],r=await lo(t);null!==r&&(n=r)}return n};function ll(e){let t=new WeakMap;return r=>{let n=j.workAsyncStorage.getStore();if(!n)return e(r);let a=t.get(n);if(a&&a.has(r))return a.get(r);let i=e(r);return a||(a=new WeakMap,t.set(n,a)),a.set(r,i),i}}function lu(){}function lc(e,t){return e.sharedContext.deploymentId||(t.b=e.sharedContext.buildId),t}async function ld(e){let{page:t,parallelRoutes:r}=rK(e),n=null;if(void 0!==t){let e=await t[0]();if(e&&"number"==typeof e.unstable_dynamicStaleTime){let t=e.unstable_dynamicStaleTime;n=null!==n?Math.min(n,t):t}}let a=[];for(let e in r)a.push(ld(r[e]));for(let e of(await Promise.all(a)))null!==e&&(n=null!==n?Math.min(n,e):e);return n}function lf(e,t,r){return function(n){let[a,,,i]=n,s=(0,tK.Hp)(a);return s?nT(e,s.paramName,tJ[s.paramType],t,r?i:null):null}}function lh({createElement:e,pagePath:t,statusCode:r,isPossibleServerAction:n}){return!n&&("/404"===t||"number"==typeof r&&r>400)?e("meta",{name:"robots",content:"noindex"}):null}async function lp(e,t){let r="",{componentMod:{routeModule:{userland:{loaderTree:n}},createElement:a,createMetadataComponents:i,Fragment:s},query:o,requestId:l,flightRouterState:u,workStore:c,url:d}=e,f=!!e.renderOpts.serveStreamingMetadata;if(!(null==t?void 0:t.skipPageRendering)){var h;let t=await lr(n),{Viewport:c,Metadata:p,MetadataOutlet:m}=i({tree:n,parsedQuery:o,pathname:d.pathname,metadataContext:th(e.renderOpts),interpolatedParams:e.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:t}),g=a(s,{key:"h"},a(lh,{createElement:a,pagePath:e.pagePath,statusCode:e.res.statusCode,isPossibleServerAction:e.isPossibleServerAction}),a(c,{key:l+"v"}),a(p,{key:l+"m"}));r=(await nS({ctx:e,loaderTreeToFilter:n,parentParams:{},flightRouterState:u,rscHead:g,injectedCSS:new Set,injectedJS:new Set,injectedFontPreloadTags:new Set,rootLayoutIncluded:!1,preloadCallbacks:[],MetadataOutlet:m,hintTree:(null==(h=e.renderOpts.prefetchHints)?void 0:h[e.pagePath])??null})).map(e=>e.slice(1))}let p=e.res.getHeader("vary"),m="string"==typeof p&&p.includes(X.kO);if(null==t?void 0:t.actionResult)return lc(e,{a:t.actionResult,f:r,q:lR(o),i:!!m});let g=lc(e,{f:r,q:lR(o),i:!!m,S:c.isStaticGeneration,h:nu()});if((null==t?void 0:t.staleTimeIterable)!==void 0&&(g.s=t.staleTimeIterable),(null==t?void 0:t.staticStageByteLengthPromise)!==void 0&&(g.l=t.staticStageByteLengthPromise),(null==t?void 0:t.runtimePrefetchStream)!==void 0&&(g.p=t.runtimePrefetchStream),!c.isStaticGeneration){let t=await ld(e.componentMod.routeModule.userland.loaderTree);null!==t&&(g.d=t)}return g}function lm(e,t){var r;return{routerKind:"App Router",routePath:e.pagePath,routeType:e.isPossibleServerAction?"action":"render",renderSource:t,revalidateReason:(r=e.workStore).isOnDemandRevalidate?"on-demand":r.isStaticGeneration?"stale":void 0}}async function lg(e,t,r,n){let{htmlRequestId:a,renderOpts:i,requestId:s,workStore:o}=t,{onInstrumentationRequestError:l,setReactDebugChannel:c,isBuildTimePrerendering:d=!1}=i,f=tW(!1,d,o.reactServerErrorsByDigest,function(r,n){return null==l?void 0:l(r,e,lm(t,"react-server-components-payload"),n)}),h=c&&lu();h&&c(h.clientSide,a,s);let{clientModules:p}=eY(),m=await eV.workUnitAsyncStorage.run(r,lp,t,n),g=eV.workUnitAsyncStorage.run(r,ts,t.componentMod,m,p,{onError:f,temporaryReferences:null==n?void 0:n.temporaryReferences,filterStackFrame:u,debugChannel:null==h?void 0:h.serverSide});return new tA(g,{fetchMetrics:o.fetchMetrics},null==n?void 0:n.waitUntil)}async function ly(e,t,r){let n,a,{componentMod:i,workStore:s,renderOpts:o}=t,{renderToReadableStream:l,routeModule:c}=i,{loaderTree:d}=c.userland,{onInstrumentationRequestError:f,experimental:h}=o,p=tW(!1,!1,s.reactServerErrorsByDigest,function(r,n){return null==f?void 0:f(r,e,lm(t,"react-server-components-payload"),n)}),m=oN(h),g=new oD,y=new nn.V(null,null,!1);r.stale=ep.AR,r.stagedRendering=y,r.asyncApiPromises=lN(y,r.cookies,r.mutableCookies,r.headers),oM(r,g,m);let v=new Promise(e=>{n=e});if(await lr(d)){let e=nI();r.prerenderResumeDataCache=e;let n=new o$;(0,o7.trackPendingModules)(n),r.cacheSignal=n;let i=new TransformStream;a=i.readable,n.cacheReady().then(()=>lv(i.writable,t,e,r,p))}let b=await eV.workUnitAsyncStorage.run(r,lp,t,{staleTimeIterable:g,staticStageByteLengthPromise:v,runtimePrefetchStream:a}),{clientModules:w}=eY();return new tA(await oO(()=>{y.advanceStage(nn.D.Static);let[e,t]=eV.workUnitAsyncStorage.run(r,l,b,w,{onError:p,filterStackFrame:u}).tee();return lD(t,y).then(n),e},()=>{oL(g)},()=>{y.advanceStage(nn.D.Dynamic)}),{fetchMetrics:s.fetchMetrics})}async function lv(e,t,r,n,a){try{let{componentMod:i,getDynamicParamFromSegment:s}=t,{loaderTree:o}=i.routeModule.userland,l=nv(o,s),u=new oD,{result:c}=await l_(t,lp.bind(null,t,{staleTimeIterable:u}),r,null,l,n.headers,n.cookies,n.draftMode,a,u);await c.prelude.pipeTo(e)}catch{try{await e.close()}catch{}}}async function lb(e,t,r){let{workStore:n,renderOpts:a}=t,{isBuildTimePrerendering:i=!1,onInstrumentationRequestError:s}=a,o=tW(!1,i,n.reactServerErrorsByDigest,function(r,n){return null==s?void 0:s(r,e,lm(t,"react-server-components-payload"),n)}),l={},u=new oD,{componentMod:{routeModule:{userland:{loaderTree:c}}},getDynamicParamFromSegment:d}=t,f=nv(c,d),h=nI();await lw(t,lp.bind(null,t),h,null,f,r.headers,r.cookies,r.draftMode);let p=await l_(t,lp.bind(null,t,{staleTimeIterable:u}),h,null,f,r.headers,r.cookies,r.draftMode,o,u);return lj(p,l,n),l.fetchMetrics=t.workStore.fetchMetrics,new tA(p.result.prelude,l)}async function lw(e,t,r,n,a,i,s,o){let{implicitTags:l,renderOpts:c,workStore:d}=e,{ComponentMod:f}=c,h=new AbortController,p=new AbortController,m=new o$,g={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:l,renderSignal:p.signal,controller:h,cacheSignal:m,dynamicTracking:null,revalidate:1,expire:0,stale:ep.AR,tags:[...l.tags],renderResumeDataCache:n,prerenderResumeDataCache:r,hmrRefreshHash:void 0,varyParamsAccumulator:null,stagedRendering:null,headers:i,cookies:s,draftMode:o},{clientModules:y}=eY(),v=await eV.workUnitAsyncStorage.run(g,t),b={filterStackFrame:u,onError:e=>{let t=tV(e);return t||(h.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,d.route,ok.ProspectiveRender)))},signal:p.signal},w=eV.workUnitAsyncStorage.run(g,tc(f),v,y,b);if((0,o7.trackPendingModules)(m),await m.cacheReady(),p.abort(),h.abort(),d.invalidDynamicUsageError)throw d.invalidDynamicUsageError;try{return await e8(w)}catch(e){return p.signal.aborted||h.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,d.route,ok.ProspectiveRender),null}}function lS(e,t){let r=new Uint8Array([t?126:35]);return e.pipeThrough(new TransformStream({start(e){e.enqueue(r)}}))}async function l_(e,t,r,n,a,i,s,o,l,c){let{implicitTags:d,renderOpts:f}=e,{ComponentMod:h,experimental:p,isDebugDynamicAccesses:m}=f,g=oN(p),y=!1,v=new AbortController,b=(0,tF.uO)(m),w=new nn.V(v.signal,null,!0),S=nl(),_={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:d,renderSignal:v.signal,controller:v,cacheSignal:null,dynamicTracking:b,revalidate:1,expire:0,stale:ep.AR,tags:[...d.tags],prerenderResumeDataCache:r,renderResumeDataCache:n,hmrRefreshHash:void 0,varyParamsAccumulator:S,stagedRendering:w,headers:i,cookies:s,draftMode:o};oM(_,c,g);let{clientModules:E}=eY(),R=await eV.workUnitAsyncStorage.run(_,t),k=!0,x=await oO(async()=>{w.advanceStage(nn.D.EarlyStatic);let e=await eV.workUnitAsyncStorage.run(_,tc(h),R,E,{filterStackFrame:u,onError:l,signal:v.signal});return k=!1,e},()=>{w.advanceStage(nn.D.Static)},()=>{w.advanceStage(nn.D.EarlyRuntime)},()=>{w.advanceStage(nn.D.Runtime)},()=>{Promise.all([oL(c),nc(S)]).then(()=>{if(v.signal.aborted){y=!0;return}k&&(y=!0),v.abort()})});return x.prelude=lS(x.prelude,y),{result:x,dynamicAccess:b,isPartial:y,collectedRevalidate:_.revalidate,collectedExpire:_.expire,collectedStale:c.currentValue,collectedTags:_.tags}}function lE(e){return(e.pathname+e.search).split("/")}function lR(e){let t=[];for(let r in e){let n=e[r];if(null!=n)if(Array.isArray(n))for(let e of n)t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(e))}`);else t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(n))}`)}return 0===t.length?"":"?"+t.join("&")}async function lk(e,t,r){var n;let a,{is404:i,staleTimeIterable:s,staticStageByteLengthPromise:o,runtimePrefetchStream:l}=r,u=new Set,c=new Set,d=new Set,{getDynamicParamFromSegment:f,query:h,appUsingSizeAdjustment:p,componentMod:{createMetadataComponents:m,createElement:g,Fragment:y},url:v,workStore:b}=t,w=(null==(n=t.renderOpts.prefetchHints)?void 0:n[t.pagePath])??null,S=await t6(e,w,f,h),_=!!t.renderOpts.serveStreamingMetadata,E=!!e[2]["global-not-found"],R=await lr(e),{Viewport:k,Metadata:x,MetadataOutlet:P}=m({tree:e,errorType:i&&!E?"not-found":void 0,parsedQuery:h,pathname:v.pathname,metadataContext:th(t.renderOpts),interpolatedParams:t.interpolatedParams,serveStreamingMetadata:_,isRuntimePrefetchable:R}),C=[],T=await np({ctx:t,loaderTree:e,parentParams:{},parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:u,injectedJS:c,injectedFontPreloadTags:d,rootLayoutIncluded:!1,missingSlots:a,preloadCallbacks:C,authInterrupts:t.renderOpts.experimental.authInterrupts,MetadataOutlet:P}),A=t.res.getHeader("vary"),O="string"==typeof A&&A.includes(X.kO),j=g(y,{key:"h"},g(lh,{createElement:g,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),g(k,null),g(x,null),p?g("meta",{name:"next-size-adjust",content:""}):null),{GlobalError:$,styles:I}=await lX(e,t),D=b.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lc(t,{P:g(lx,{preloadCallbacks:C}),c:lE(v),q:lR(h),i:!!O,f:[[S,T,j,D]],m:a,G:[$,I],S:b.isStaticGeneration||t.renderOpts.cacheComponents,h:nu(),s:s,l:o,p:l,d:b.isStaticGeneration?void 0:await ld(e)??void 0})}function lx({preloadCallbacks:e}){return e.forEach(e=>e()),null}async function lP(e,t,r,n){var a;let{getDynamicParamFromSegment:i,query:s,componentMod:{createMetadataComponents:o,createElement:l,Fragment:u},url:c,workStore:d}=t,f=!!t.renderOpts.serveStreamingMetadata,h=await lr(e),{Viewport:p,Metadata:m}=o({tree:e,parsedQuery:s,pathname:c.pathname,metadataContext:th(t.renderOpts),errorType:n,interpolatedParams:t.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:h}),g=l(u,{key:"h"},l(lh,{createElement:l,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),l(p,null),"",l(m,null)),y=(null==(a=t.renderOpts.prefetchHints)?void 0:a[t.pagePath])??null,v=await t6(e,y,i,s);r&&(tH(r)||Object.defineProperty(Error(r+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));let b=[l("html",{id:"__next_error__"},l("head",null),l("body",null,null)),{},null,!1,null],{GlobalError:w,styles:S}=await lX(e,t),_=d.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lc(t,{c:lE(c),q:lR(s),m:void 0,i:!1,f:[[v,b,g,_]],G:[w,S],S:d.isStaticGeneration||t.renderOpts.cacheComponents,h:nu()})}function lC({reactServerStream:e,reactDebugStream:t,debugEndTime:r,preinitScripts:n,ServerInsertedHTMLProvider:i,nonce:s,images:o}){n();let l=$.use(e3(e,t,r,s)),u=s3(oR({navigatedAt:-1,initialRSCPayload:l,location:null}),null),{HeadManagerContext:c}=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");return(0,O.jsx)(c.Provider,{value:{appDir:!0,nonce:s},children:(0,O.jsx)(lt.Provider,{value:o??le,children:(0,O.jsx)(i,{children:(0,O.jsx)(o_,{actionQueue:u,globalErrorState:l.G})})})})}function lT({reactServerStream:e,preinitScripts:t,ServerInsertedHTMLProvider:r,nonce:n,images:a}){t();let i=$.use(e3(e,void 0,void 0,n)),s=s3(oR({navigatedAt:-1,initialRSCPayload:i,location:null}),null);return(0,O.jsx)(lt.Provider,{value:a??le,children:(0,O.jsx)(r,{children:(0,O.jsx)(o_,{actionQueue:s,globalErrorState:i.G})})})}async function lA(e,t,r,n,i,s,o,l,u,c,d,f,h){let p,m,g="/404"===n;g&&(t.statusCode=404);let y=Date.now(),{ComponentMod:v,nextFontManifest:b,serverActions:w,assetPrefix:S="",enableTainting:_,cacheComponents:E,setIsrStatus:R}=s,{cachedNavigations:k}=s.experimental;if(v.__next_app__){let e="performance"in globalThis?{require:(...e)=>{let t=performance.now();0===e$&&(e$=t);try{return eD+=1,v.__next_app__.require(...e)}finally{eI+=performance.now()-t}},loadChunk:(...e)=>{let t=performance.now(),r=v.__next_app__.loadChunk(...e);return r.finally(()=>{eI+=performance.now()-t}),r}}:v.__next_app__,t=()=>{if(!E)return!1;let e=eV.workUnitAsyncStorage.getStore();if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":case"cache":case"private-cache":return!0;case"prerender-ppr":case"prerender-legacy":case"request":case"unstable-cache":case"generate-static-params":return!1}};globalThis.__next_require__=(...r)=>{let n=e.require(...r);return t()&&(0,o7.trackPendingImport)(n),n},globalThis.__next_chunk_load__=(...r)=>{let n=e.loadChunk(...r);return t()&&(0,o7.trackPendingChunkLoad)(n),n}}t.onClose(()=>{o.shouldTrackFetchMetrics=!1}),e.originalRequest.on("end",()=>{if("performance"in globalThis){let e=eN({reset:!0});e&&(0,I.getTracer)().startSpan(D.Fx.clientComponentLoading,{startTime:e.clientComponentLoadStart,attributes:{"next.clientComponentLoadCount":e.clientComponentLoadCount,"next.span_type":D.Fx.clientComponentLoading}}).end(e.clientComponentLoadStart+e.clientComponentLoadTimes)}});let x={statusCode:g?404:void 0},P=!!(null==b?void 0:b.appUsingSizeAdjust);v.patchFetch();let{routeModule:{userland:{loaderTree:C}},taintObjectReference:A}=v;_&&A("Do not pass process.env to Client Components since it will leak sensitive data",process.env),o.fetchMetrics=[],x.fetchMetrics=o.fetchMetrics;var O=i={...i};for(let e of tf)delete O[e];let{isStaticGeneration:j}=o,{flightRouterState:$,isPrefetchRequest:N,isRuntimePrefetchRequest:M,isRSCRequest:L,isHmrRefresh:U,nonce:F}=l;l.requestId?p=l.requestId:j?p=Buffer.from(await crypto.subtle.digest("SHA-1",Buffer.from(e.url))).toString("hex"):p=a("./dist/compiled/nanoid/index.cjs").nanoid(),m=l.htmlRequestId||p;let H=lf(f,h,s.experimental.optimisticRouting),B=t5(e).isPossibleServerAction,z=T(e,"resolvedPathname");if(!z)throw Object.defineProperty(new eU.z("resolvedPathname must be set in request metadata"),"__NEXT_ERROR_CODE",{value:"E981",enumerable:!1,configurable:!0});let q=await tT(o.page,z,h),X={componentMod:v,url:r,renderOpts:s,workStore:o,parsedRequestHeaders:l,getDynamicParamFromSegment:H,interpolatedParams:f,query:i,isPrefetch:N,isPossibleServerAction:B,requestTimestamp:y,appUsingSizeAdjustment:P,flightRouterState:$,requestId:p,htmlRequestId:m,pagePath:n,assetPrefix:S,isNotFoundPath:g,nonce:F,res:t,sharedContext:d,implicitTags:q};if((0,I.getTracer)().setRootSpanAttribute("next.route",n),j){let a=(0,I.getTracer)().wrap(D.Wc.getBodyResult,{spanName:`prerender route (app) ${n}`,attributes:{"next.route":n}},lq),i=await a(e,t,X,x,C,h);if(i.dynamicAccess&&(0,tF.Lu)(i.dynamicAccess)&&s.isDebugDynamicAccesses)for(let e of(rm("The following dynamic usage was detected:"),(0,tF.JL)(i.dynamicAccess)))rm(e);if(o.invalidDynamicUsageError)throw(0,tF.gR)(o,o.invalidDynamicUsageError),new na.f;if(i.digestErrorsMap.size){let e=i.digestErrorsMap.values().next().value;if(e)throw e}if(i.ssrErrors.length){let e=i.ssrErrors.find(e=>!eM(e)&&!(0,tM.C)(e)&&!(0,tU.p)(e));if(e)throw e}let l={metadata:x,contentType:ep.j9},u=(0,rb.C)(o);if(!1!==u){let e=u.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):l.waitUntil=e}lj(i,x,o),i.renderResumeDataCache&&(x.renderResumeDataCache=i.renderResumeDataCache);let c=new eF(await to(i.stream),l);return o.cacheComponentsEnabled&&o.isBuildTimePrerendering&&s.runInstantValidation&&await li(C)&&await lF(X,i.renderResumeDataCache??null),c}{let n=s.renderResumeDataCache??(null==u?void 0:u.renderResumeDataCache)??null,a=nv(C,X.getDynamicParamFromSegment),i=T(e,"fallbackParams")||null,l=tb.bind(null,e,t,r,a,q,s.onUpdateCookies,s.previewProps,U,c,n,i),d=l();if(L)if(M)return lb(e,X,d);else return E&&k?ly(e,X,d):lg(e,X,d);let f=!1,h=null;if(B){let r=await rC({req:e,res:t,ComponentMod:v,generateFlight:lg,workStore:o,requestStore:d,serverActions:w,ctx:X,metadata:x});if(r){if("not-found"===r.type){let r,n,a,s=(a=(n=!!(r=C[2])["global-not-found"])?{layout:r["global-not-found"],page:[()=>null,"next/dist/client/components/builtin/empty-stub"]}:{page:r["not-found"]},["",{children:[t3.OG,{},a,null]},n?r:{"global-error":r["global-error"]},null]);return t.statusCode=404,x.statusCode=404,new eF(await l$(d,e,t,X,s,h,u,x,void 0,i),{metadata:x,contentType:ep.j9})}else if("done"===r.type)if(r.result)return r.result.assignMetadata(x),r.result;else r.formState&&(h=r.formState)}f=!0}let p={metadata:x,contentType:ep.j9},m=await l$(d,e,t,X,C,h,u,x,f?void 0:l,i);o.invalidDynamicUsageError;let g=(0,rb.C)(o);if(!1!==g){let e=g.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):p.waitUntil=e}return new eF(m,p)}}let lO=(e,t,r,n,a,i,s,o)=>{var l,u,c;let d,f,h,p,m,g,y,v,b,w,S;if(!e.url)throw Object.defineProperty(Error("Invalid URL"),"__NEXT_ERROR_CODE",{value:"E182",enumerable:!1,configurable:!0});let _=(0,nF.r)(e.url,void 0,!1),E=(u=e.headers,c={isRoutePPREnabled:!0===i.experimental.isRoutePPREnabled,previewModeId:null==(l=i.previewProps)?void 0:l.previewModeId},p="1"===u[X._V],m="2"===u[X._V],g=void 0!==u[X.sX],v=(y=void 0!==u[X.hY])&&(!p||!c.isRoutePPREnabled)?function(e){if(void 0!==e){if(Array.isArray(e))throw Object.defineProperty(Error("Multiple router state headers were sent. This is not allowed."),"__NEXT_ERROR_CODE",{value:"E418",enumerable:!1,configurable:!0});if(e.length>4e4)throw Object.defineProperty(Error("The router state header was too large."),"__NEXT_ERROR_CODE",{value:"E142",enumerable:!1,configurable:!0});try{let t=JSON.parse(decodeURIComponent(e));return(0,tY.assert)(t,t1),t}catch{throw Object.defineProperty(Error("The router state header was sent but could not be parsed."),"__NEXT_ERROR_CODE",{value:"E10",enumerable:!1,configurable:!0})}}}(u[X.B]):void 0,b="/_tree"===u[X.qm],S="string"==typeof(w=u["content-security-policy"]||u["content-security-policy-report-only"])?function(e){var t;let r=e.split(";").map(e=>e.trim()),n=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!n)return;let a=null==(t=n.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(a){if(eq.test(a))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return a}}(w):void 0,{flightRouterState:v,isPrefetchRequest:p,isRuntimePrefetchRequest:m,isRouteTreePrefetchRequest:b,isHmrRefresh:g,isRSCRequest:y,nonce:S,previouslyRevalidatedTags:o5(u,c.previewModeId),requestId:f,htmlRequestId:h}),{isPrefetchRequest:R,previouslyRevalidatedTags:k,nonce:x}=E,P=null;if("string"==typeof i.postponed){if(a)throw Object.defineProperty(new eU.z("postponed state should not be provided when fallback params are provided"),"__NEXT_ERROR_CODE",{value:"E592",enumerable:!1,configurable:!0});d=nC(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a),P=function(e,t,r){try{var n,a;let i=null==(n=e.match(/^([0-9]*):/))?void 0:n[1];if(!i)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${e}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let s=parseInt(i),o=e.slice(i.length+1,i.length+s+1),l=nD(e.slice(i.length+s+1),r);try{if("null"===o)return{type:1,renderResumeDataCache:l};if(/^[0-9]/.test(o)){let e=null==(a=o.match(/^([0-9]*)/))?void 0:a[1];if(!e)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${JSON.stringify(o)}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let r=parseInt(e),n=JSON.parse(o.slice(e.length,e.length+r)),i=o.slice(e.length+r);for(let[e,[r,a]]of n){let{treeSegment:[,n]}=nT(t,e,a,null,null);i=i.replaceAll(r,n)}return{type:2,data:JSON.parse(i),renderResumeDataCache:l}}return{type:2,data:JSON.parse(o),renderResumeDataCache:l}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:l}}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:nI()}}}(i.postponed,d,i.experimental.maxPostponedStateSizeBytes)}else d=nC(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a);if((null==P?void 0:P.renderResumeDataCache)&&i.renderResumeDataCache)throw Object.defineProperty(new eU.z("postponed state and dev warmup immutable resume data cache should not be provided together"),"__NEXT_ERROR_CODE",{value:"E589",enumerable:!1,configurable:!0});let C=function({page:e,renderOpts:t,isPrefetchRequest:r,buildId:n,previouslyRevalidatedTags:a,nonce:i}){let s=!t.shouldWaitOnAllReady&&!t.supportsDynamicResponse&&!t.isDraftMode&&!t.isPossibleServerAction,o=s&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),l={isStaticGeneration:s,page:e,route:(0,eW.Yr)(e),incrementalCache:t.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:t.cacheLifeProfiles,isBuildTimePrerendering:t.isBuildTimePrerendering,fetchCache:t.fetchCache,isOnDemandRevalidate:t.isOnDemandRevalidate,isDraftMode:t.isDraftMode,isPrefetchRequest:r,buildId:n,reactLoadableManifest:(null==t?void 0:t.reactLoadableManifest)||{},assetPrefix:(null==t?void 0:t.assetPrefix)||"",nonce:i,afterContext:function(e){let{waitUntil:t,onClose:r,onAfterTaskError:n}=e;return new tw.AfterContext({waitUntil:t,onClose:r,onTaskError:n})}(t),cacheComponentsEnabled:t.cacheComponents,previouslyRevalidatedTags:a,refreshTagsByCacheKind:function(){let e=new Map,t=(0,t_.fs)();if(t)for(let[r,n]of t)"refreshTags"in n&&e.set(r,tS(async()=>n.refreshTags()));return e}(),runInCleanSnapshot:(0,tE.$p)(),shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return t.store=l,l}({page:i.routeModule.definition.page,renderOpts:i,isPrefetchRequest:R,buildId:o.buildId,previouslyRevalidatedTags:k,nonce:x});return j.workAsyncStorage.run(C,lA,e,t,_,r,n,i,C,E,P,s,o,d,a)};function lj(e,t,r){e.collectedTags&&(t.fetchTags=e.collectedTags.join(","));let n=String(e.collectedStale);t.headers??={},t.headers[X.UK]=n,!1===r.forceStatic||0===e.collectedRevalidate?t.cacheControl={revalidate:0,expire:void 0}:t.cacheControl={revalidate:!(e.collectedRevalidate>=ep.AR)&&e.collectedRevalidate,expire:e.collectedExpire>=ep.AR?void 0:e.collectedExpire},0===t.cacheControl.revalidate&&(t.staticBailoutInfo={description:r.dynamicUsageDescription,stack:r.dynamicUsageStack})}async function l$(e,t,r,n,a,i,s,o,l,c){let{assetPrefix:d,htmlRequestId:f,nonce:h,pagePath:p,renderOpts:m,requestId:g,workStore:y}=n,{basePath:v,buildManifest:b,ComponentMod:{createElement:w},crossOrigin:S,experimental:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,setReactDebugChannel:P,shouldWaitOnAllReady:C,subresourceIntegrityManifest:T,supportsDynamicResponse:A,cacheComponents:j}=m,{cachedNavigations:$}=m.experimental,{ServerInsertedHTMLProvider:N,renderServerInsertedHTML:M}=rL(),L=oU(h),U=oI((0,I.getTracer)().getTracePropagationData(),_.clientTraceMetadata),H=b.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${d}/_next/${e}${rY(n,!1)}`,integrity:null==T?void 0:T[e],crossOrigin:S,noModule:!0,nonce:h})),[B,z]=rH(b,d,S,T,rY(n,!0),h,k),q,X=(0,I.getTracer)().startSpan(`render route (app) ${p}`,{attributes:{"next.span_name":`render route (app) ${p}`,"next.span_type":D.Wc.getBodyResult,"next.route":p}}),V=e=>{X.isRecording()&&(e instanceof Error&&(X.recordException(e),X.setAttribute("error.type",e.name)),X.setStatus({code:I.SpanStatusCode.ERROR,message:e instanceof Error?e.message:void 0}),X.end())};return(0,I.getTracer)().withSpan(X,async()=>{var l,c;let w,{reactServerErrorsByDigest:k}=y,I=tW(!1,E,k,function(e,r){return null==R?void 0:R(e,t,lm(n,"react-server-components"),r)},X),D=[],W=tG(!1,E,k,D,function(e){return null==R?void 0:R(e,t,lm(n,"server-rendering"),!1)},X),G=null,Y=r.setHeader.bind(r),Q=r.appendHeader.bind(r),{clientModules:Z}=eY();try{if(j&&$){let t,i,{renderToReadableStream:s}=n.componentMod,o=oN(_),l=new oD,c=new nn.V(null,null,!1);e.stale=ep.AR,e.stagedRendering=c,oM(e,l,o);let d=new Promise(e=>{t=e});if(await lr(a)){let t=nI();e.prerenderResumeDataCache=t;let r=new o$;(0,o7.trackPendingModules)(r),e.cacheSignal=r;let a=new TransformStream;i=a.readable,r.cacheReady().then(()=>lv(a.writable,n,t,e,I))}let f=await eV.workUnitAsyncStorage.run(e,lk,a,n,{is404:404===r.statusCode,staleTimeIterable:l,staticStageByteLengthPromise:d,runtimePrefetchStream:i}),h=await oO(()=>{c.advanceStage(nn.D.Static);let[r,n]=eV.workUnitAsyncStorage.run(e,s,f,Z,{onError:I,filterStackFrame:u}).tee();return lD(n,c).then(t),r},()=>{oL(l)},()=>{c.advanceStage(nn.D.Dynamic)});G=new e6(h)}else{let t=await eV.workUnitAsyncStorage.run(e,lk,a,n,{is404:404===r.statusCode}),i=P&&lu();if(i){let[e,t]=i.clientSide.readable.tee();w=e,P({readable:t},f,g)}G=new e6(eV.workUnitAsyncStorage.run(e,ts,n.componentMod,t,Z,{filterStackFrame:u,onError:I,debugChannel:null==i?void 0:i.serverSide}))}if(await F(),"string"==typeof m.postponed){if((null==s?void 0:s.type)===nN.DATA){let e=tr(G.tee(),h,i);return X.isRecording()&&X.end(),J(e,K(ei))}else if(s){let{postponed:t,preludeState:r}=function(e){let[t,r]=e.data;return{preludeState:t,postponed:r}}(s),a=(0,O.jsx)(lC,{reactServerStream:G.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),o=rB({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:D,basePath:v,tracingMetadata:U}),{stream:l,allReady:u}=await eV.workUnitAsyncStorage.run(e,tu,a,t,{onError:W,nonce:h});return u.finally(()=>{X.isRecording()&&X.end()}),await eh(l,{delayDataUntilFirstHtmlChunk:r===nM.Empty,inlinedDataStream:tr(G.consume(),h,i),getServerInsertedHTML:o,getServerInsertedMetadata:L,deploymentId:n.sharedContext.deploymentId})}}let t=rB({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:D,basePath:v,tracingMetadata:U}),o=(0,O.jsx)(lC,{reactServerStream:G.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),{stream:c,allReady:d}=await eV.workUnitAsyncStorage.run(e,tl,o,{onError:W,nonce:h,onHeaders:e=>{e.forEach((e,t)=>{Q(t,e)})},maxHeadersLength:x,bootstrapScriptContent:q,bootstrapScripts:[z],formState:i});return d.finally(()=>{X.isRecording()&&X.end()}),await (l={inlinedDataStream:tr(G.consume(),h,i),isStaticGeneration:!0!==A||!!C,allReady:d,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:t,getServerInsertedMetadata:L,validateRootLayout:!1},eu(c,l))}catch(y){let t,s,l;if((0,na.l)(y)||"object"==typeof y&&null!==y&&"message"in y&&"string"==typeof y.message&&y.message.includes("https://nextjs.org/docs/advanced-features/static-html-export"))throw V(y),y;let f=(0,tM.C)(y);if(f){let e=tD(y);throw rp(`${y.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),V(y),y}if((0,tR.RM)(y))r.statusCode=(0,tR.jT)(y),o.statusCode=r.statusCode,t=(0,tR.qe)(r.statusCode);else if((0,tk.n)(y)){t="redirect",r.statusCode=tC(y),o.statusCode=r.statusCode;let n=eb(tx(y),v),a=new Headers;(0,tm.IN)(a,e.mutableCookies)&&Y("set-cookie",Array.from(a.values())),Y("location",n)}else f||(r.statusCode=500,o.statusCode=r.statusCode);let[m,g]=rH(b,d,S,T,rY(n,!1),h,"/_not-found/page");try{if(s=await eV.workUnitAsyncStorage.run(e,lP,a,n,k.has(y.digest)?null:y,t),l=eV.workUnitAsyncStorage.run(e,ts,n.componentMod,s,Z,{filterStackFrame:u,onError:I}),null===G)throw V(y),y}catch(e){throw V(e),e}try{let{stream:t,allReady:r}=await eV.workUnitAsyncStorage.run(e,tl,(0,O.jsx)(lT,{reactServerStream:l,ServerInsertedHTMLProvider:N,preinitScripts:m,nonce:h,images:n.renderOpts.images}),{nonce:h,bootstrapScriptContent:q,bootstrapScripts:[g],formState:i});return r.finally(()=>{X.isRecording()&&X.end()}),await (c={inlinedDataStream:tr(G.consume(),h,i),isStaticGeneration:!0!==A||!!C,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:rB({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:[],basePath:v,tracingMetadata:U}),getServerInsertedMetadata:L,validateRootLayout:!1},eu(t,c))}catch(e){throw V(e),e}}})}async function lI(e,t,r){let n=[],a=[],i=[],s=e.getReader(),o=!1;function l(){o||(o=!0,s.cancel())}r&&r.addEventListener("abort",l,{once:!0});try{for(;!o;){let{done:e,value:r}=await s.read();if(e){l();break}switch(t.currentStage){case nn.D.Before:throw Object.defineProperty(new eU.z("Unexpected stream chunk while in Before stage"),"__NEXT_ERROR_CODE",{value:"E942",enumerable:!1,configurable:!0});case nn.D.EarlyStatic:case nn.D.Static:n.push(r);case nn.D.EarlyRuntime:case nn.D.Runtime:a.push(r);case nn.D.Dynamic:i.push(r);break;case nn.D.Abandoned:break;default:t.currentStage}}}catch(e){if(!o)throw e}return{staticChunks:n,runtimeChunks:a,dynamicChunks:i}}async function lD(e,t){let r=0,n=e.getReader();for(t.onStage(nn.D.EarlyRuntime,()=>{n.cancel()});;){let{done:e,value:a}=await n.read();if(e)break;if(t.currentStage<=nn.D.Static)r+=a.byteLength;else{n.cancel();break}}return r}function lN(e,t,r,n){return{cookies:e.delayUntilStage(nn.D.Runtime,"cookies",t),earlyCookies:e.delayUntilStage(nn.D.EarlyRuntime,"cookies",t),mutableCookies:e.delayUntilStage(nn.D.Runtime,"cookies",r),earlyMutableCookies:e.delayUntilStage(nn.D.EarlyRuntime,"cookies",r),headers:e.delayUntilStage(nn.D.Runtime,"headers",n),earlyHeaders:e.delayUntilStage(nn.D.EarlyRuntime,"headers",n),sharedParamsParent:e.delayUntilStage(nn.D.Runtime,void 0,""),earlySharedParamsParent:e.delayUntilStage(nn.D.EarlyRuntime,void 0,""),sharedSearchParamsParent:e.delayUntilStage(nn.D.Runtime,void 0,""),earlySharedSearchParamsParent:e.delayUntilStage(nn.D.EarlyRuntime,void 0,""),connection:e.delayUntilStage(nn.D.Dynamic,"connection",void 0)}}async function lM(e,t,r,n,i,s,o,l,u){let c,{implicitTags:d,nonce:f,workStore:h}=o,p=new AbortController,m=new AbortController,g=new AbortController,{ServerInsertedHTMLProvider:y}=rL();c="prerender-client"===e?{type:"prerender-client",phase:"render",rootParams:n,fallbackRouteParams:i,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:s,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null}:{type:"validation-client",phase:"render",rootParams:n,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null,boundaryState:null,validationSamples:l,validationSampleTracking:u,fallbackRouteParams:i};let v=function(e,t,r){{let{Readable:n}=a("node:stream"),i=0,s=new n({read(){for(;i{for(;i{s.push(null)})},{once:!0}),s}}(t,r,m.signal),b=eV.workUnitAsyncStorage.run(c,td,(0,O.jsx)(lC,{reactServerStream:v,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:y,nonce:f,images:o.renderOpts.images}),{signal:m.signal,onError:e=>{let t=tV(e);return t||(tq(e)?void console.error(e):void(m.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,h.route,ok.ProspectiveRender)))}});m.signal.addEventListener("abort",()=>{g.abort()},{once:!0}),b.catch(e=>{m.signal.aborted||(0,tF.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,h.route,ok.ProspectiveRender)});let w=new o$;(0,o7.trackPendingModules)(w),await w.cacheReady(),m.abort()}async function lL(e,t,r,n,i,s,o,l){let u="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{createCombinedPayloadAtDepth:c,createCombinedPayloadStream:d,collectStagedSegmentData:f,discoverValidationDepths:h}=s.componentMod.InstantValidation(),{createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js");null==u||u("\nStarting depth-based instant validation...");let m=s.componentMod.routeModule.userland.loaderTree,g=eY(),{cache:y,payload:v,stageEndTimes:b}=await f({[nn.D.Static]:e.staticChunks,[nn.D.Runtime]:e.runtimeChunks,[nn.D.Dynamic]:e.dynamicChunks},t,r,!0,g),{implicitTags:w,nonce:S,workStore:_}=s,E=!!s.renderOpts.setReactDebugChannel;async function R(e,t){return k(e,t,null)}async function k(e,t,a){let u,f=new AbortController,h={expectedIds:new Set,renderedIds:new Set},R=!1;if(a)for(let e of(R=!0,a.expectedIds))h.expectedIds.add(e);let x=await c(v,y,m,s.getDynamicParamFromSegment,s.query,e,t,f.signal,h,g,b,R);if(null===x)return null;let P=new AbortController,C=new AbortController,T=()=>{},{ServerInsertedHTMLProvider:A}=rL(),{stream:j,debugStream:$}=await d(x.payload,f,P.signal,g,r,E),I=(0,tF.md)(x.createInstantStack),D=null!==l?p():null,N=(0,tF.uO)(!1),M={type:"validation-client",phase:"render",rootParams:n,implicitTags:w,renderSignal:C.signal,controller:P,cacheSignal:null,dynamicTracking:N,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...w.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:o,varyParamsAccumulator:null,boundaryState:h,fallbackRouteParams:i,validationSamples:l,validationSampleTracking:D};try{let{prelude:e}=await oO(()=>{let e=eV.workUnitAsyncStorage.run(M,td,(0,O.jsx)(lC,{reactServerStream:j,reactDebugStream:$??void 0,debugEndTime:void 0,preinitScripts:T,ServerInsertedHTMLProvider:A,nonce:S,images:s.renderOpts.images}),{signal:P.signal,onError:(e,t)=>{if((0,tF.AA)(e)||P.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tF.g)(_,e,I,N,x.hasAmbiguousErrors?tF.Q.Runtime:tF.Q.Dynamic,h);return}if(!P.signal.aborted){let r=t.componentStack;if("string"==typeof r){let t=e;if(e&&"object"==typeof e&&"digest"in e&&"string"==typeof e.digest){let r=_.reactServerErrorsByDigest.get(e.digest);void 0!==r&&(t=r)}(0,tF.n1)(_,I,t,r)}}return tq(e)?void console.error(e):tV(e)}});return P.signal.addEventListener("abort",()=>{C.abort()},{once:!0}),e},()=>{P.abort()}),{preludeIsEmpty:t}=await tt(e);u=(0,tF.Jr)(_,t?tF.r0.Empty:tF.r0.Full,I,D,h)}catch(e){u=(0,tF.Jr)(_,tF.r0.Errored,I,D,h)}if(0===u.length)return[];if(null===a&&x.hasAmbiguousErrors){let r=await k(e,t,h);if(null!==r&&r.length>0)return r}return u}let x=h(m),P=x.length;for(let e=P-1;e>=0;e--){let t=x[e];for(let r=t;r>=0;r--){null==u||u(`Trying depth ${e}`+(r>0?` + groupDepth ${r}...`:"..."));let t=await R(e,r);if(null===t){null==u||u(` No config at depth ${e}+${r}, skipping.`);continue}if(t.length>0)return null==u||u(` Depth ${e}+${r}: ❌ Failed (${t.length} errors)`),t;null==u||u(` Depth ${e}+${r}: ✅ Passed`)}}return null==u||u(`✅ All depths passed`),[]}async function lU(e,t,r,n,a,i){let{componentMod:s}=e,{clientModules:o}=eY(),l=-1/0,c=t,d=new o$;(0,o7.trackPendingModules)(d);let f=i?nI(i):nI(),h=new AbortController,p=new AbortController,m=new AbortController,g=new nn.V(p.signal,m,!0);c.prerenderResumeDataCache=f,c.renderResumeDataCache=null,c.stagedRendering=g,c.cacheSignal=d,c.asyncApiPromises=lN(g,c.cookies,c.mutableCookies,c.headers),c.controller=void 0,c.renderSignal=void 0;let y=await n(c),v=e=>{!0===m.signal.aborted||(d.hasPendingReads()?m.abort():g.advanceStage(e))},b=await oO(()=>{g.advanceStage(nn.D.EarlyStatic),l=performance.now()+performance.timeOrigin;let e=eV.workUnitAsyncStorage.run(c,ts,s,y,o,{onError:a(h.signal,!1),startTime:l,filterStackFrame:u,signal:h.signal});h.signal.addEventListener("abort",()=>{let{reason:e}=h.signal;p.abort(e)},{once:!0});let t=lI(e,g,p.signal);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{v(nn.D.Static)},()=>{v(nn.D.EarlyRuntime)},()=>{v(nn.D.Runtime)},()=>{v(nn.D.Dynamic)});if(g.currentStage!==nn.D.Abandoned)return{accumulatedChunksPromise:b.accumulatedChunksPromise,startTime:l,stageController:g,requestStore:c};await d.cacheReady(),h.abort(),c=r();let w=new AbortController,S=new AbortController,_=new nn.V(S.signal,null,!0);c.prerenderResumeDataCache=null,c.renderResumeDataCache=nD(f),c.stagedRendering=_,c.cacheSignal=null,c.asyncApiPromises=lN(_,c.cookies,c.mutableCookies,c.headers),c.controller=w,c.renderSignal=S.signal;let E=await n(c);return{accumulatedChunksPromise:(await oO(()=>{_.advanceStage(nn.D.EarlyStatic),l=performance.now()+performance.timeOrigin;let e=eV.workUnitAsyncStorage.run(c,ts,s,E,o,{onError:a(w.signal,!0),startTime:l,filterStackFrame:u,signal:w.signal});w.signal.addEventListener("abort",()=>{S.abort(w.signal.reason)},{once:!0});let t=lI(e,_,null);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{_.advanceStage(nn.D.Static)},()=>{_.advanceStage(nn.D.EarlyRuntime)},()=>{_.advanceStage(nn.D.Runtime)},()=>{_.advanceStage(nn.D.Dynamic)})).accumulatedChunksPromise,startTime:l,stageController:_,requestStore:c}}async function lF(e,t){let r=async()=>{let r;try{r=await j.workAsyncStorage.exit(async()=>lH(e,t))}catch(e){console.error(Object.defineProperty(new eU.z("An unexpected error occcured during instant validation",{cause:e}),"__NEXT_ERROR_CODE",{value:"E1097",enumerable:!1,configurable:!0})),r=!1}if(!r)throw console.error("Stopping prerender due to instant validation errors."),new na.f};if(!process.env.__NEXT_TEST_MODE||!process.env.NEXT_TEST_LOG_VALIDATION)return await r();{let t=Date.now(),n=e.workStore.route;console.error(""+JSON.stringify({type:"validation_start",requestId:t,url:n})+"");try{return await r()}finally{console.error(""+JSON.stringify({type:"validation_end",requestId:t,url:n})+"")}}}async function lH(e,t){let r="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{workStore:n}=e,a=n.route,i=e.componentMod.routeModule.userland.loaderTree,s=await lo(i);s&&0!==s.length||(s=[{}]),null==r||r("Resolved samples:",s);let o=function(e,t){let r=nk(e,!0),{pathnameRouteParamSegments:n,params:a}=function(e,t){let r=[],n={},a=[{tree:e,depth:0,currentPath:[]}];for(;a.length>0;){let{tree:e,depth:i,currentPath:s}=a.shift(),{segment:o,parallelRoutes:l}=rK(e),u=s,c=i,d=nR(o);if(d&&"route-group"!==d.type&&"parallel-route"!==d.type&&(u=[...s,d],c=i+1),(null==d?void 0:d.type)==="dynamic"){let{paramName:e,paramType:a}=d.param;if(i({paramName:e,paramType:t}));!function(e,t,r,n){let a=[{tree:e,depth:0}];for(;a.length>0;){let{tree:e,depth:i}=a.pop(),{segment:s,parallelRoutes:o}=rK(e),l=nR(s);if((null==l?void 0:l.type)==="dynamic"&&!t.hasOwnProperty(l.param.paramName)&&!n.some(e=>e.paramName===l.param.paramName)){let{paramName:e,paramType:a}=l.param,s=nP(e,a,i,r,t);void 0!==s?t[e]=s:"optional-catchall"!==a&&n.push({paramName:e,paramType:a})}let u=i;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))a.push({tree:e,depth:u})}}(t.userland.loaderTree,a,r,i);if(0===i.length)return null;let s=Math.random().toString(16).slice(2),o=new Map;for(let{paramName:e,paramType:t}of i)o.set(e,[`%%drp:${e}:${s}%%`,tJ[t]]);return o}(a,e.componentMod.routeModule);for(let n=0;nlB(e,l,o,t))}catch(e){if((0,tX.R)(e))i=[e];else throw e}if(i.length>0){null==r||r(`❌ Sample failed validation (${i.length} errors)`);let e=s.length>1?` (sample ${n+1} of ${s.length})`:"";for(let e of i)console.error(e);return console.error(`Build-time instant validation failed for route "${a}"${e}.`),!1}null==r||r("✅ Sample validated successfully")}return!0}async function lB(e,t,r,n){let i,s,{workStore:o}=e,l=e.componentMod.routeModule.userland.loaderTree,u=o.route,{createCookiesFromSample:c,createHeadersFromSample:d,createDraftModeForValidation:f,createRelativeURLFromSamples:h,createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js"),m=h(u,t.params,t.searchParams),g=t.params??{},y=null;if(r){let e=new Map;for(let[t,n]of r)t in g||e.set(t,n);y=e}let v=lf(g,y,!1),b=nv(l,v);({query:s,...i}=m);let{AfterContext:w}=a("./dist/esm/server/after/after-context.js"),S={isStaticGeneration:!1,page:o.page,route:o.route,incrementalCache:o.incrementalCache,cacheLifeProfiles:o.cacheLifeProfiles,isBuildTimePrerendering:!1,fetchCache:o.fetchCache,isOnDemandRevalidate:!1,isDraftMode:!1,isPrefetchRequest:!1,buildId:o.buildId,reactLoadableManifest:o.reactLoadableManifest,assetPrefix:o.assetPrefix,nonce:o.nonce,afterContext:new w({waitUntil(e){e.catch(()=>{})},onClose(){},onTaskError(){}}),cacheComponentsEnabled:o.cacheComponentsEnabled,previouslyRevalidatedTags:[],refreshTagsByCacheKind:new Map,runInCleanSnapshot:o.runInCleanSnapshot,shouldTrackFetchMetrics:!1,reactServerErrorsByDigest:new Map};return j.workAsyncStorage.run(S,async()=>{let r={componentMod:e.componentMod,url:i,renderOpts:e.renderOpts,workStore:S,parsedRequestHeaders:e.parsedRequestHeaders,getDynamicParamFromSegment:v,interpolatedParams:g,query:s,isPrefetch:!1,isPossibleServerAction:!1,requestTimestamp:e.requestTimestamp,appUsingSizeAdjustment:e.appUsingSizeAdjustment,flightRouterState:void 0,requestId:e.requestId,htmlRequestId:e.htmlRequestId,pagePath:e.pagePath,assetPrefix:e.assetPrefix,isNotFoundPath:e.isNotFoundPath,nonce:e.nonce,res:e.res,sharedContext:e.sharedContext,implicitTags:e.implicitTags},a={params:t.params,searchParams:t.searchParams},o=()=>{let r=c(t.cookies,u),n=new eA.VO(new Headers),i=d(t.headers,t.cookies,u),s=f();return{type:"request",phase:"render",implicitTags:e.implicitTags,url:{pathname:m.pathname,search:m.search},headers:i,cookies:r,mutableCookies:n,userspaceMutableCookies:n,draftMode:s,rootParams:b,validationSamples:a,validationSampleTracking:p(),renderResumeDataCache:null,prerenderResumeDataCache:null,stagedRendering:null,asyncApiPromises:void 0}},h=tW(!0,!0,S.reactServerErrorsByDigest,()=>{}),{accumulatedChunksPromise:w,startTime:_,stageController:E,requestStore:R}=await lU(r,o(),o,e=>eV.workUnitAsyncStorage.run(e,lk,l,r,{is404:!1}),e=>function(t){let r=tV(t);return r||(e.aborted?void 0:h(t))},n),k=await w,x=R.validationSampleTracking;if(x.missingSampleErrors.length>0)return x.missingSampleErrors;if(E.currentStage===nn.D.Abandoned&&E.syncInterruptReason)return[E.syncInterruptReason];let P=(r.renderOpts.allowEmptyStaticShell??!1)||await ln(l),C=p();return(await lM("validation-client",k.dynamicChunks,k.dynamicChunks,b,y,P,r,a,C),C.missingSampleErrors.length>0)?C.missingSampleErrors:await lL(k,null,_,b,y,r,void 0,a)})}function lz(e){let{isStaticGeneration:t}=e;return!!t}async function lq(e,t,r,n,a,i){var s,o,l;let{assetPrefix:c,getDynamicParamFromSegment:d,implicitTags:f,nonce:h,pagePath:p,renderOpts:m,workStore:g}=r,{basePath:y,buildManifest:v,ComponentMod:b,crossOrigin:w,experimental:S,isDebugDynamicAccesses:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,subresourceIntegrityManifest:P,cacheComponents:C}=m,{cachedNavigations:T}=m.experimental,A=(m.allowEmptyStaticShell??!1)||await ln(a),j=nv(a,d),{ServerInsertedHTMLProvider:$,renderServerInsertedHTML:D}=rL(),N=oU(h),M=oI((0,I.getTracer)().getTracePropagationData(),S.clientTraceMetadata),L=v.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${c}/_next/${e}${rY(r,!1)}`,integrity:null==P?void 0:P[e],crossOrigin:w,noModule:!0,nonce:h})),[U,F]=rH(v,c,w,P,rY(r,!0),h,k),{reactServerErrorsByDigest:H}=g,B=!S.isRoutePPREnabled,z=tW(!1,E,H,function(t,n){if(B)return null==R?void 0:R(t,e,lm(r,"react-server-components"),n)}),q=[],X=tG(!1,E,H,q,function(t){if(B)return null==R?void 0:R(t,e,lm(r,"server-rendering"),!1)}),V=null,W=e=>{n.headers??={},n.headers[e]=t.getHeader(e)},G=(e,r)=>{Array.isArray(r)?r.forEach(r=>{t.appendHeader(e,r)}):t.appendHeader(e,r),W(e)},K=oN(S),{clientModules:Y}=eY(),Q=null;try{if(C){let e,s,o=new AbortController,l=new AbortController,c=new AbortController,d=new o$,p=nI(),v=m.renderResumeDataCache??null,w={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:new AbortController,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},S=await eV.workUnitAsyncStorage.run(w,lk,a,r,{is404:404===t.statusCode}),E=Q={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:o,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},R={filterStackFrame:u,onError:e=>{let t=tV(e);return t||(tq(e)?void console.error(e):o.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)))},signal:l.signal},k=eV.workUnitAsyncStorage.run(E,tc(b),S,Y,R);if(l.signal.addEventListener("abort",()=>{c.abort(),o.abort()},{once:!0}),(0,o7.trackPendingModules)(d),await d.cacheReady(),l.abort(),g.invalidDynamicUsageError)throw(0,tF.gR)(g,g.invalidDynamicUsageError),new na.f;try{e=await e8(k)}catch(e){l.signal.aborted||o.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)}if(e){let t=new AbortController,n=new AbortController,a=new AbortController,s={type:"prerender-client",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:a.signal,controller:t,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},o=eV.workUnitAsyncStorage.run(s,td,(0,O.jsx)(lC,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{signal:n.signal,onError:e=>{let t=tV(e);return t||(tq(e)?void console.error(e):void(n.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)))},bootstrapScripts:[F]});n.signal.addEventListener("abort",()=>{a.abort()},{once:!0}),o.catch(e=>{n.signal.aborted||(0,tF.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)}),(0,o7.trackPendingModules)(d),await d.cacheReady(),n.abort()}m.renderResumeDataCache&&(v=nD(p));let P=new AbortController,I=new AbortController,B=nl(),W={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:I.signal,controller:new AbortController,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B},ee=await eV.workUnitAsyncStorage.run(W,lk,a,r,{is404:404===t.statusCode});T&&(ee.s=s=new oD);let et=(0,tF.uO)(_),er=!1,en=Q={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:I.signal,controller:P,cacheSignal:null,dynamicTracking:et,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B};void 0!==s&&oM(en,s,K);let ea=!0,ei={filterStackFrame:u,onError:e=>z(e),signal:P.signal},es=async()=>{let e=[nc(B)];if(void 0!==s&&e.push(oL(s)),await Promise.all(e),P.signal.aborted){er=!0;return}ea&&(er=!0),P.abort()},eo=async()=>{let e=eV.workUnitAsyncStorage.run(en,tc(b),ee,Y,ei);P.signal.addEventListener("abort",()=>{I.abort()},{once:!0});let t=await e;return ea=!1,t},el=V=await e8(oO(eo,es)),eu=(0,tF.uO)(_),eh=new AbortController,em=new AbortController,eg={type:"prerender-client",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:em.signal,controller:eh,cacheSignal:null,dynamicTracking:eu,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},ey=(0,tF.Wt)(),ev=ta(G),{prelude:eb,postponed:ew}=await oO(()=>{let e=eV.workUnitAsyncStorage.run(eg,td,(0,O.jsx)(lC,{reactServerStream:el.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{signal:eh.signal,onError:(e,t)=>{if((0,tF.AA)(e)||eh.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tF.Pe)(g,e,ey,eu);return}return X(e,t)},onHeaders:ev,maxHeadersLength:x,bootstrapScripts:[F]});return eh.signal.addEventListener("abort",()=>{em.abort()},{once:!0}),e},()=>{eh.abort()}),{prelude:eS,preludeIsEmpty:e_}=await tt(eb);A||(0,tF.V2)(g,e_?tF.r0.Empty:tF.r0.Full,ey,et);let eE=rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});n.flightData=await Z(T?lS(el.asStream(),er):el.asStream());let eR=T?n.flightData.subarray(1):n.flightData;if(await lV(eR,en,b,m,r.pagePath,n),er){null!=ew?n.postponed=await nL(ew,e_?nM.Empty:nM.Full,i,p,C):n.postponed=await nU(p,C),el.consume();let e={getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await ec(eS,e),dynamicAccess:(0,tF.yI)(et,eu),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:nD(p)}}{let e;if(g.forceDynamic)throw Object.defineProperty(new na.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=eS;if(null!=ew){let e=tn(),n=await ti((0,O.jsx)(lC,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(ew)),{signal:(0,tF.kb)(),onError:X,nonce:h});t=J(eS,n)}if(i&&i.size>0){let n=await e9(ts(b,[],Y,{filterStackFrame:u,onError:z}));e=await ef(t,{inlinedDataStream:tr(n.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId})}else e=await ed(t,{inlinedDataStream:tr(el.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId});return{digestErrorsMap:H,ssrErrors:q,stream:e,dynamicAccess:(0,tF.yI)(et,eu),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:nD(p)}}}if(S.isRoutePPREnabled){let e,s=(0,tF.uO)(_),o=nI(),l=Q={type:"prerender-ppr",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:o},c=await eV.workUnitAsyncStorage.run(l,lk,a,r,{is404:404===t.statusCode});e=V=await e9(eV.workUnitAsyncStorage.run(l,ts,b,c,Y,{filterStackFrame:u,onError:z}));let d={type:"prerender-ppr",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:o},p=ta(G),{prelude:v,postponed:w}=await eV.workUnitAsyncStorage.run(d,td,(0,O.jsx)(lC,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{onError:X,onHeaders:p,maxHeadersLength:x,bootstrapScripts:[F]}),S=rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M}),E=await Z(e.asStream());lz(g)&&(n.flightData=E,await lV(E,d,b,m,r.pagePath,n));let{prelude:R,preludeIsEmpty:k}=await tt(v);if((0,tF.Lu)(s.dynamicAccesses)){null!=w?n.postponed=await nL(w,k?nM.Empty:nM.Full,i,o,C):n.postponed=await nU(o,C),e.consume();let t={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await ec(R,t),dynamicAccess:s.dynamicAccesses,collectedRevalidate:l.revalidate,collectedExpire:l.expire,collectedStale:K(l.stale),collectedTags:l.tags}}if(i&&i.size>0){n.postponed=await nU(o,C);let e={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await ec(R,e),dynamicAccess:s.dynamicAccesses,collectedRevalidate:l.revalidate,collectedExpire:l.expire,collectedStale:K(l.stale),collectedTags:l.tags}}{if(g.forceDynamic)throw Object.defineProperty(new na.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=R;if(null!=w){let e=tn(),n=await ti((0,O.jsx)(lC,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(w)),{signal:(0,tF.kb)(),onError:X,nonce:h});t=J(R,n)}return{digestErrorsMap:H,ssrErrors:q,stream:await ed(t,{inlinedDataStream:tr(e.consumeAsStream(),h,null),getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId}),dynamicAccess:s.dynamicAccesses,collectedRevalidate:l.revalidate,collectedExpire:l.expire,collectedStale:K(l.stale),collectedTags:l.tags}}}{let e,i=Q={type:"prerender-legacy",phase:"render",rootParams:j,implicitTags:f,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags]},o=await eV.workUnitAsyncStorage.run(i,lk,a,r,{is404:404===t.statusCode});e=V=await e9(eV.workUnitAsyncStorage.run(i,ts,b,o,Y,{filterStackFrame:u,onError:z}));let{stream:l}=await eV.workUnitAsyncStorage.run(i,tl,(0,O.jsx)(lC,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{onError:X,nonce:h,bootstrapScripts:[F]});if(lz(g)){let t=await Z(e.asStream());n.flightData=t,await lV(t,i,b,m,r.pagePath,n)}let c=rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});return{digestErrorsMap:H,ssrErrors:q,stream:await (s={inlinedDataStream:tr(e.consumeAsStream(),h,null),isStaticGeneration:!0,getServerInsertedHTML:c,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId},eu(l,s)),collectedRevalidate:i.revalidate,collectedExpire:i.expire,collectedStale:K(i.stale),collectedTags:i.tags}}}catch(R){let e;if((0,na.l)(R)||"object"==typeof R&&null!==R&&"message"in R&&"string"==typeof R.message&&R.message.includes("https://nextjs.org/docs/advanced-features/static-html-export")||(0,tL.isDynamicServerError)(R))throw R;let i=(0,tM.C)(R);if(i){let e=tD(R);throw rp(`${R.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),R}if(null===V)throw R;(0,tR.RM)(R)?(t.statusCode=(0,tR.jT)(R),n.statusCode=t.statusCode,e=(0,tR.qe)(t.statusCode)):(0,tk.n)(R)?(e="redirect",t.statusCode=tC(R),n.statusCode=t.statusCode,o=eb(tx(R),y),t.setHeader("location",o),W("location")):i||(t.statusCode=500,n.statusCode=t.statusCode);let[s,d]=rH(v,c,w,P,rY(r,!1),h,"/_not-found/page"),S=Q={type:"prerender-legacy",phase:"render",rootParams:j,implicitTags:f,revalidate:void 0!==(null==Q?void 0:Q.revalidate)?Q.revalidate:ep.AR,expire:void 0!==(null==Q?void 0:Q.expire)?Q.expire:ep.AR,stale:void 0!==(null==Q?void 0:Q.stale)?Q.stale:ep.AR,tags:[...(null==Q?void 0:Q.tags)||f.tags]},_=await eV.workUnitAsyncStorage.run(S,lP,a,r,H.has(R.digest)?void 0:R,e),E=eV.workUnitAsyncStorage.run(S,ts,b,_,Y,{filterStackFrame:u,onError:z});try{let{stream:e}=await eV.workUnitAsyncStorage.run(S,tl,(0,O.jsx)(lT,{reactServerStream:E,ServerInsertedHTMLProvider:$,preinitScripts:s,nonce:h,images:r.renderOpts.images}),{nonce:h,bootstrapScripts:[d],formState:null});if(lz(g)){let e=await Z(V.asStream());n.flightData=e,await lV(e,S,b,m,r.pagePath,n)}let t=V.consumeAsStream();return{digestErrorsMap:H,ssrErrors:q,stream:await (l={inlinedDataStream:tr(t,h,null),isStaticGeneration:!0,getServerInsertedHTML:rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:[],basePath:y,tracingMetadata:M}),getServerInsertedMetadata:N,validateRootLayout:!1,deploymentId:r.sharedContext.deploymentId},eu(e,l)),dynamicAccess:null,collectedRevalidate:null!==Q?Q.revalidate:ep.AR,collectedExpire:null!==Q?Q.expire:ep.AR,collectedStale:K(null!==Q?Q.stale:ep.AR),collectedTags:null!==Q?Q.tags:null}}catch(e){throw e}}}let lX=async(e,t)=>{let r=rK(e).modules["global-error"];if(!r)throw Object.defineProperty(Error("Invariant: global-error module is required but not found in loader tree"),"__NEXT_ERROR_CODE",{value:"E983",enumerable:!1,configurable:!0});let{componentMod:{createElement:n}}=t,[a,i]=await rZ({ctx:t,filePath:r[1],getComponent:r[0],injectedCSS:new Set,injectedJS:new Set});return{GlobalError:a,styles:i}};async function lV(e,t,r,n,a,i){let s,{clientModules:o,edgeRscModuleMapping:l,rscModuleMapping:u}=eY(),c={moduleLoading:null,moduleMap:u,serverModuleMap:eZ()},d=oN(n.experimental)(t.stale),f=n.experimental.prefetchInlining;if(f)if(n.isBuildTimePrerendering)i.prefetchHints=s=await r.collectPrefetchHints(e,d,o,c,f.maxSize,f.maxBundleSize);else{var h;s=(null==(h=n.prefetchHints)?void 0:h[a])??null}else s=null;i.segmentData=await r.collectSegmentData(n.cacheComponents,e,d,o,c,!!n.experimental.prefetchInlining,s)}require("next/dist/build/adapter/setup-node-env.external.js"),a("./dist/esm/shared/lib/modern-browserslist-target.js");let lW="build-manifest.json";[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let lG=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,lJ=/\/\[[^/]+\](?=\/|$)/;function lK(e,t=!0){return((0,nE.m1)(e)&&(e=(0,nE.$8)(e).interceptedRoute),t)?lJ.test(e):lG.test(e)}function lY(e){return eS(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}var lQ=a("./dist/esm/shared/lib/page-path/ensure-leading-slash.js");function lZ(e){let t=/^\/index(\/|$)/.test(e)&&!lK(e)?`/index${e}`:"/"===e?"/index":(0,lQ.A)(e);{let{posix:e}=a("path"),r=e.normalize(t);if(r!==t)throw new oV.MK(`Requested and resolved page mismatch: ${t} ${r}`)}return t}let l0=["ico","jpg","jpeg","png","svg"],l1=["jpg","jpeg","png"],l2=["jpg","jpeg","png","gif"],l3=["jpg","jpeg","png","gif"],l4=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,l6=/^[\\/]favicon\.ico$/,l8=/^[\\/]robots\.txt$/,l9=/^[\\/]manifest\.json$/,l5=/^[\\/]manifest\.webmanifest$/,l7=/[\\/]sitemap\.xml$/,ue=new Map;var ut=a("./dist/esm/shared/lib/isomorphic/path.js"),ur=a.n(ut),un=a("./tags-manifest.external");class ua{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(ur().dirname(e)),n=r[1].then(()=>this.fs.writeFile(e,t));n.catch(()=>{}),r[2].push(n)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let ui=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class us{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?us.memoryCache?us.debug&&console.log("FileSystemCache: memory store already initialized"):(us.debug&&console.log("FileSystemCache: using memory store for fetch cache"),us.memoryCache=(0,ui.getMemoryCache)(e.maxMemoryCacheSize)):us.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,us.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let n of e){let e=un.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),un.tagsManifest.set(n,a)}else un.tagsManifest.set(n,{...e,expired:r})}}async get(...e){var t,r,n,a,i,s,o,l,u;let[c,d]=e,{kind:f}=d,h=null==(t=us.memoryCache)?void 0:t.get(c);if(us.debug&&(f===r3.FETCH?console.log("FileSystemCache: get",c,d.tags,f,!!h):console.log("FileSystemCache: get",c,f,!!h)),!h)try{if(f===r3.APP_ROUTE){let e=this.getFilePath(`${c}.body`,r3.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),n=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,ep.EP),"utf8"));h={lastModified:r.getTime(),value:{kind:r2.APP_ROUTE,body:t,headers:n.headers,status:n.status}}}else{let e=this.getFilePath(f===r3.FETCH?c:`${c}.html`,f),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(f===r3.FETCH){let{tags:e,fetchIdx:n,fetchUrl:a}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(h={lastModified:i,value:l},(null==(s=h.value)?void 0:s.kind)===r2.FETCH){let t=null==(o=h.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(us.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(c,h.value,{fetchCache:!0,tags:e,fetchIdx:n,fetchUrl:a}))}}else if(f===r3.APP_PAGE){let n,a,i;try{n=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,ep.EP),"utf8"))}catch{}if(null==n?void 0:n.segmentPaths){let e=new Map;a=e;let t=c+ep.mH;await Promise.all(n.segmentPaths.map(async r=>{let n=this.getFilePath(t+r+ep.tz,r3.APP_PAGE);try{e.set(r,await this.fs.readFile(n))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==n?void 0:n.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${c}${ep.RM}`,r3.APP_PAGE))),h={lastModified:r.getTime(),value:{kind:r2.APP_PAGE,html:t,rscData:i,postponed:null==n?void 0:n.postponed,headers:null==n?void 0:n.headers,status:null==n?void 0:n.status,segmentData:a}}}else if(f===r3.PAGES){let e,n={};d.isFallback||(n=JSON.parse(await this.fs.readFile(this.getFilePath(`${c}${ep.x3}`,r3.PAGES),"utf8"))),h={lastModified:r.getTime(),value:{kind:r2.PAGES,html:t,pageData:n,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${f} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}h&&(null==(l=us.memoryCache)||l.set(c,h))}catch{return null}if((null==h||null==(r=h.value)?void 0:r.kind)===r2.APP_PAGE||(null==h||null==(n=h.value)?void 0:n.kind)===r2.APP_ROUTE||(null==h||null==(a=h.value)?void 0:a.kind)===r2.PAGES){let e=null==(u=h.value.headers)?void 0:u[ep.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,un.areTagsExpired)(t,h.lastModified))return us.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==h||null==(i=h.value)?void 0:i.kind)===r2.FETCH){let e=d.kind===r3.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return us.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,un.areTagsExpired)(e,h.lastModified))return us.debug&&console.log("FileSystemCache: expired tags",e),null}return h??null}async set(e,t,r){var n;if(null==(n=us.memoryCache)||n.set(e,{value:t,lastModified:Date.now()}),us.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let a=new ua(this.fs);if(t.kind===r2.APP_ROUTE){let r=this.getFilePath(`${e}.body`,r3.APP_ROUTE);a.append(r,t.body);let n={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};a.append(r.replace(/\.body$/,ep.EP),JSON.stringify(n,null,2))}else if(t.kind===r2.PAGES||t.kind===r2.APP_PAGE){let n=t.kind===r2.APP_PAGE,i=this.getFilePath(`${e}.html`,n?r3.APP_PAGE:r3.PAGES);if(a.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||a.append(this.getFilePath(`${e}${n?ep.RM:ep.x3}`,n?r3.APP_PAGE:r3.PAGES),n?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===r2.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,ep.mH);for(let[n,i]of t.segmentData){e.push(n);let t=r+n+ep.tz;a.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};a.append(i.replace(/\.html$/,ep.EP),JSON.stringify(r))}}else if(t.kind===r2.FETCH){let n=this.getFilePath(e,r3.FETCH);a.append(n,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await a.wait()}getFilePath(e,t){switch(t){case r3.FETCH:return ur().join(this.serverDistDir,"..","cache","fetch-cache",e);case r3.PAGES:return ur().join(this.serverDistDir,"pages",e);case r3.IMAGE:case r3.APP_PAGE:case r3.APP_ROUTE:return ur().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function uo(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let ul=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js");class uu{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:n,serverDistDir:a,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:u,allowedRevalidateHeaderKeys:c}){var d,f,h,p;this.locks=new Map,this.hasCustomCacheHandler=!!u;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(u)uu.debug&&console.log("IncrementalCache: using custom cache handler",u.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(u=t.FetchCache,uu.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&a&&(uu.debug&&console.log("IncrementalCache: using filesystem cache handler"),u=us)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=n,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=c,this.prerenderManifest=o(),this.cacheControls=new ul.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let y=[];i[ep.kz]===(null==(f=this.prerenderManifest)||null==(d=f.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),n&&(y=this.revalidatedTags=o5(i,null==(p=this.prerenderManifest)||null==(h=p.preview)?void 0:h.previewModeId)),u&&(this.cacheHandler=new u({dev:t,fs:e,flushToDisk:r,serverDistDir:a,revalidatedTags:y,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,n){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let a=this.cacheControls.get(uo(e)),i=a?a.revalidate:!n&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:lZ(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(uu.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new N;return uu.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],n=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,a=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(a.push(n.encode(e)),r.push(e)):(a.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=a.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of a)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let n of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(n);r.push(`${n}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,n=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([n],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return a("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,n,a,i,s,o,l;let u,c;if(t.kind===r3.FETCH){let r=eV.workUnitAsyncStorage.getStore(),n=r?(0,eV.getRenderResumeDataCache)(r):null;if(n){let r=n.fetch.get(e);if((null==r?void 0:r.kind)===r2.FETCH){let n=j.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==n||null==(r=n.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return uu.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};uu.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else uu.debug&&console.log("IncrementalCache: rdc:miss",e)}else uu.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==r3.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===r3.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===r3.FETCH){if(!d)return null;if((null==(a=d.value)?void 0:a.kind)!==r2.FETCH)throw Object.defineProperty(new eU.z(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=j.workAsyncStorage.getStore(),n=[...t.tags||[],...t.softTags||[]];if(n.some(e=>{var t,n;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(n=r.pendingRevalidatedTags)?void 0:n.some(t=>t.tag===e))}))return uu.debug&&console.log("IncrementalCache: expired tag",e),null;let s=eV.workUnitAsyncStorage.getStore();if(s){let t=(0,eV.getPrerenderResumeDataCache)(s);t&&(uu.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,u=d.value.data;return(0,un.areTagsExpired)(n,d.lastModified)?null:((0,un.areTagsStale)(n,d.lastModified)&&(l=!0),{isStale:l,value:{kind:r2.FETCH,data:u,revalidate:o}})}if((null==d||null==(n=d.value)?void 0:n.kind)===r2.FETCH)throw Object.defineProperty(new eU.z(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let f=null,{isFallback:h}=t,p=this.cacheControls.get(uo(e));if((null==d?void 0:d.lastModified)===-1)u=-1,c=-1*ep.eM*1e3;else{let r=performance.timeOrigin+performance.now(),n=(null==d?void 0:d.lastModified)||r;if(void 0===(u=!1!==(c=this.calculateRevalidate(e,n,this.dev??!1,t.isFallback))&&c0&&((0,un.areTagsExpired)(t,n)?u=-1:(0,un.areTagsStale)(t,n)&&(u=!0))}}}return d&&(f={isStale:u,cacheControl:p,revalidateAfter:c,value:d.value,isFallback:h}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(f={isStale:u,value:null,cacheControl:p,revalidateAfter:c,isFallback:h},this.set(e,f.value,{...t,cacheControl:p})),f}async set(e,t,r){if((null==t?void 0:t.kind)===r2.FETCH){let r=eV.workUnitAsyncStorage.getStore(),n=r?(0,eV.getPrerenderResumeDataCache)(r):null;n&&(uu.debug&&console.log("IncrementalCache: rdc:set",e),n.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let n=JSON.stringify(t).length;if(r.fetchCache&&n>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${n} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var a;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(uo(e),r.cacheControl),await (null==(a=this.cacheHandler)?void 0:a.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}let uc=Symbol.for("@next/router-server-methods"),ud=globalThis;function uf(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)===X.kO}let uh=e=>import(e).then(e=>e.default||e);class up{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:n}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=n}getRouterServerContext(e){var t;let r=T(e,"hostname"),n=T(e,"revalidate"),a=T(e,"render404"),i=T(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=ud[uc])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==n?{revalidate:n}:{},...void 0!==a?{render404:a}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=a("node:path"),n=r(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));return i(n,this.distDir,...t)}}loadManifests(e,t){let r;{var n,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=a("../load-manifest.external");lZ(e);let l=this.definition.kind===r4.PAGES||this.definition.kind===r4.PAGES_API?"pages":"app",[u,c,d,f,h,p,m,g,y,v,b,w]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:lW,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${lW}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:"react-loadable-manifest.json",handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==l||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let n=e.replace(/\\/g,"/"),a=!!(l6.test(n)||l8.test(n)||l9.test(n)||l5.test(n)||l7.test(n))||(!!n.includes("robots")||!!n.includes("manifest")||!!n.includes("sitemap")||!!n.includes("icon")||!!n.includes("apple-icon")||!!n.includes("opengraph-image")||!!n.includes("twitter-image")||!!n.includes("favicon"))&&null;if(null!==a)return a;let i=function(e,t){let r=`${e.join(",")}|${t}`,n=ue.get(r);if(n)return n;let a=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${l4(s,null)}${a}`),RegExp(`^[\\\\/]manifest${l4(o,null)}${a}`),RegExp(`[\\\\/]sitemap${l4(["xml"],e)}${a}`),RegExp(`[\\\\/]icon${i}${l4(l0,e)}${a}`),RegExp(`[\\\\/]apple-icon${i}${l4(l1,e)}${a}`),RegExp(`[\\\\/]opengraph-image${i}${l4(l2,e)}${a}`),RegExp(`[\\\\/]twitter-image${i}${l4(l3,e)}${a}`)];return ue.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:r,cacheHandlers:n}=t;if(!n||!(0,t_.q3)(r))return;for(let[t,r]of Object.entries(n)){if(!r)continue;let{formatDynamicImportPath:n}=a("./dist/esm/lib/format-dynamic-import-path.js"),{join:i}=a("node:path"),s=i(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir);(0,t_.XJ)(t,rJ(await uh(n(`${s}/${this.distDir}`,r))))}}}async getIncrementalCache(e,t,r,n){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=a("./dist/esm/lib/format-dynamic-import-path.js");i=rJ(await uh(e(this.distDir,s)))}let{join:o}=a("node:path"),l=o(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let u=new uu({fs:a("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:n,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!n&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=u,u}}async onRequestError(e,t,r,n,a){n||((null==a?void 0:a.logErrorWithOriginalStack)?a.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:n}){var i,s;let o,l,u,c,d;{let{join:t,relative:r}=a("node:path");o=t(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir);let n=T(e,"distDir");n&&(this.distDir=r(o,n));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let f=this.loadManifests(r,o),{routesManifest:h,prerenderManifest:p,serverFilesManifest:m}=f,{basePath:g,i18n:y,rewrites:v}=h,b=this.getRouterServerContext(e),w=(null==b?void 0:b.nextConfig)||(null==m?void 0:m.config),S=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!T(e,"initURL")){let t=(null==m?void 0:m.config.experimental.trustHostHeader)?`${S}://${e.headers.host||"localhost"}${e.url}`:`${S}://${(null==b?void 0:b.hostname)||"localhost"}${e.url}`;A(e,"initURL",t),A(e,"initProtocol",S)}g&&(e.url=ek(e.url||"/",g));let _=o4(e.url||"/");if(A(e,"initQuery",{...null==_?void 0:_.query}),!_)return;let E=!1;eS(_.pathname||"/","/_next/data")&&(E=!0,_.pathname=lY(_.pathname||"/")),this.normalizeUrl(e,_);let R=_.pathname||"/",k={..._.query},x=lK(r);y&&(l=eR(_.pathname||"/",y.locales)).detectedLocale&&(e.url=`${l.pathname}${_.search}`,R=l.pathname,u||(u=l.detectedLocale));let P=(0,eW.Yr)(r),C=function({page:e,i18n:t,basePath:r,rewrites:n,pageIsDynamic:i,trailingSlash:s,caseSensitive:o}){let l,u,c;if(i){var d;let t,r;r=(t=function(e,t,r,n,a,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},u=[],c=[];for(let s of(i=structuredClone(i),ey(e).slice(1).split("/"))){let e,d=nE.VB.some(e=>s.startsWith(e)),f=s.match(nA),h=d?f?.[1]:void 0;if(h&&f?.[2]?(e=t?ep.h:void 0,i.intercepted[f[2]]=h):e=f?.[2]&&i.intercepted[f[2]]?t?ep.h:void 0:t?ep.AA:void 0,h&&f&&f[2]){let{key:t,pattern:r,cleanedKey:n,repeat:s,optional:d}=oX({getSafeRouteKey:o,interceptionMarker:h,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a});u.push(r),c.push(`/${f[1]}:${i.names[t]??n}${s?d?"*":"+":""}`),i.names[t]??=n}else if(f&&f[2]){n&&f[1]&&(u.push(`/${oz(f[1])}`),c.push(`/${f[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:h}=oX({getSafeRouteKey:o,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a}),p=r;n&&f[1]&&(p=p.substring(1)),u.push(p),c.push(`/:${i.names[t]??s}${d?h?"*":"+":""}`),i.names[t]??=s}else u.push(`/${oz(s)}`),c.push(`/${s}`);r&&f&&f[3]&&(u.push(oz(f[3])),c.push(f[3]))}return{namedParameterizedRoute:u.join(""),routeKeys:l,pathToRegexpPattern:c.join(""),reference:i}}(e,(d={prefixRouteKeys:!1}).prefixRouteKeys,d.includeSuffix??!1,d.includePrefix??!1,d.backreferenceDuplicateKeys??!1,d.reference)).namedParameterizedRoute,d.excludeOptionalTrailingSlash||(r+="(?:/)?"),c=(u=oZ(l={...oq(e,d),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(l,c){let d=structuredClone(c),f={},h=d.pathname,p=n=>{var c,p;let m,g,y,v=(c=n.source+(s?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!o},m=[],g=(0,oF.pathToRegexp)(c,m,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),y=(0,oF.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(g.source),g.flags):g,m),(e,t)=>{if("string"!=typeof e)return!1;let r=y(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of m)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!d.pathname)return!1;let b=v(d.pathname);if((n.has||n.missing)&&b){let e=function(e,t,r=[],n=[]){let i={},s=r=>{let n,s=r.key;switch(r.type){case"header":s=s.toLowerCase(),n=e.headers[s];break;case"cookie":if("cookies"in e)n=e.cookies[r.key];else{var o;n=(o=e.headers,function(){let{cookie:e}=o;if(!e)return{};let{parse:t}=a("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})()[r.key]}break;case"query":n=t[s];break;case"host":{let{host:t}=e?.headers||{};n=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&n)return i[function(e){let t="";for(let r=0;r64&&n<91||n>96&&n<123)&&(t+=e[r])}return t}(s)]=n,!0;if(n){let e=RegExp(`^${r.value}$`),t=Array.isArray(n)?n.slice(-1)[0].match(e):n.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{i[e]=t.groups[e]}):"host"===r.type&&t[0]&&(i.host=t[0])),!0}return!1};return!(!r.every(e=>s(e))||n.some(e=>s(e)))&&i}(l,d.query,n.has,n.missing);e?Object.assign(b,e):b=!1}if(b){let{parsedDestination:a,destQuery:s}=function(e){let t,r,n=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${oz(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return(0,nF.r)(e);let t=new URL(e),r=t.username,n=t.password,a=r?n?`${r}:${n}`:r:null,i=t.pathname,s=t.search;return{auth:a,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:(0,o0.v1)(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),n=r.pathname;n&&(n=o1(n));let a=r.href;a&&(a=o1(a));let i=r.hostname;i&&(i=o1(i));let s=r.hash;s&&(s=o1(s));let o=r.search;o&&(o=o1(o));let l=r.origin;return l&&(l=o1(l)),{...r,pathname:n,hostname:i,href:a,hash:s,search:o,origin:l}}(e),{hostname:a,query:i,search:s}=n,o=n.pathname;n.hash&&(o=`${o}${n.hash}`);let l=[],u=[];for(let e of(oY(o,u),u))l.push(e.name);if(a){let e=[];for(let t of(oY(a,e),e))l.push(t.name)}let c=oQ(o,{validate:!1});for(let[r,n]of(a&&(t=oQ(a,{validate:!1})),Object.entries(i)))Array.isArray(n)?i[r]=n.map(t=>o2(o1(t),e.params)):"string"==typeof n&&(i[r]=o2(o1(n),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if((0,nE.m1)(o))for(let t of o.split("/")){let r=nE.VB.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[a,i]=(r=c(e.params)).split("#",2);t&&(n.hostname=t(e.params)),n.pathname=a,n.hash=`${i?"#":""}${i||""}`,n.search=s?o2(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return n.query={...e.query,...n.query},{newUrl:r,destQuery:i,parsedDestination:n}}({appendParamsToQuery:!0,destination:n.destination,params:b,query:d.query});if(a.protocol)return!0;if(Object.assign(f,s,b),Object.assign(d.query,a.query),delete a.query,Object.assign(d,a),!(h=d.pathname))return!1;if(r&&(h=h.replace(RegExp(`^${r}`),"")||"/"),t){let e=eR(h,t.locales);h=e.pathname,d.query.nextInternalLocale=e.detectedLocale||b.nextInternalLocale}if(h===e)return!0;if(i&&u){let e=u(h);if(e)return d.query={...d.query,...e},!0}}return!1};for(let e of n.beforeFiles||[])p(e);if(h!==e){let t,r=!1;for(let e of n.afterFiles||[])if(r=p(e))break;if(!r&&!((t=ey(h||""))===ey(e)||(null==u?void 0:u(t)))){for(let e of n.fallback||[])if(r=p(e))break}}return{rewriteParams:f,rewrittenParsedUrl:d}},defaultRouteRegex:l,dynamicRouteMatcher:u,defaultRouteMatches:c,normalizeQueryParams:function(e,t){for(let[r,n]of(delete e.nextInternalLocale,Object.entries(e))){let a=em(r);a&&(delete e[r],t.add(a),void 0!==n&&(e[a]=Array.isArray(n)?n.map(e=>o3(e)):o3(n)))}},getParamsFromRouteMatches:function(e){if(!l)return null;let{groups:t,routeKeys:r}=l,n=oZ({re:{exec:e=>{let n=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(n)){let r=em(e);r&&(n[r]=t,delete n[e])}let a={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=n[e];if(!s.optional&&!o)return null;a[s.pos]=o}return a}},groups:t})(e);return n||null},normalizeDynamicRouteParams:(e,t)=>{if(!l||!c)return{params:{},hasValidParams:!1};var r=l,n=c;let a={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=(0,eW.P7)(s):Array.isArray(s)&&(s=s.map(eW.P7));let o=n[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(a[i]=s)}return{params:a,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=o4(e.url);if(!r)return e.url;delete r.search,o9(r.query,t),e.url=o8(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let n of Object.keys(r.groups)){let a,{optional:i,repeat:s}=r.groups[n],o=`[${s?"...":""}${n}]`;i&&(o=`[${o}]`);let l=t[n];((a=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,a))}return e})(e,t,l),filterInternalQuery:(e,t)=>o9(e,t)}}({page:P,i18n:y,basePath:g,rewrites:v,pageIsDynamic:x,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!h.caseSensitive}),O=eg(null==y?void 0:y.domains,e_(_,e.headers),u);O&&A(e,"isLocaleDomain",!!O);let j=T(e,"defaultLocale")||(null==O?void 0:O.defaultLocale)||(null==y?void 0:y.defaultLocale);j&&!u&&(_.pathname=`/${j}${"/"===_.pathname?"":_.pathname}`);let $=T(e,"locale")||u||j,{rewriteParams:I,rewrittenParsedUrl:D}=C.handleRewrites(e,_),N=Object.keys(I);Object.assign(_.query,D.query),y&&(_.pathname=eR(_.pathname||"/",y.locales).pathname,D.pathname=eR(D.pathname||"/",y.locales).pathname);let M=T(e,"params");if(!M&&C.dynamicRouteMatcher){let e=C.dynamicRouteMatcher(lY((null==D?void 0:D.pathname)||_.pathname||"/")),t=C.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(M=t.params)}let L=T(e,"query")||{..._.query},U=new Set,F=[];if(this.definition.kind===r4.PAGES||this.definition.kind===r4.PAGES_API)for(let e of[...N,...Object.keys(C.defaultRouteMatches||{})]){let t=Array.isArray(k[e])?k[e].join(""):k[e],r=Array.isArray(L[e])?L[e].join(""):L[e];e in k&&t!==r||F.push(e)}if(C.normalizeCdnUrl(e,F),C.normalizeQueryParams(L,U),C.filterInternalQuery(k,F),x){let t,r=C.normalizeDynamicRouteParams(L,!0),n=C.normalizeDynamicRouteParams(M||{},!0);if(L&&M&&n.hasValidParams&&r.hasValidParams&&U.size>0&&Object.keys(n.params).length<=Object.keys(r.params).length?(t=r.params,M=Object.assign(r.params)):t=n.hasValidParams&&M?M:r.hasValidParams?L:{},e.url=C.interpolateDynamicPath(e.url||"/",t),_.pathname=C.interpolateDynamicPath(_.pathname||"/",t),R=C.interpolateDynamicPath(R,t),!M)if(r.hasValidParams)for(let e in M=Object.assign({},r.params),C.defaultRouteMatches)delete L[e];else{let e=null==C.dynamicRouteMatcher?void 0:C.dynamicRouteMatcher.call(C,lY((null==l?void 0:l.pathname)||_.pathname||"/"));e&&(M=Object.assign({},e))}}for(let e of U)e in k?k[e]&&L[e]&&k[e]!==L[e]&&(L[e]=k[e]):delete L[e];let{isOnDemandRevalidate:H,revalidateOnlyGenerated:B}=(0,tg.checkIsOnDemandRevalidate)(e,p.preview),z=!1;if(t){let{tryGetPreviewData:r}=a("./dist/esm/server/api-utils/node/try-get-preview-data.js");z=!1!==(c=r(e,t,p.preview,!!n))}if(!w)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=a("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!w.experimental.removeUncaughtErrorAndRejectionListeners)}let q=P;lK(q)&&M&&(q=C.interpolateDynamicPath(q,M)),"/index"===q&&(q="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",ey(`${$?`/${$}`:""}${P}`));let X=q;try{q=q.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new oV.Xc("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(A(e,"resolvedPathname",q=ey(q)),null==(s=w.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=w.deploymentId||"";return{query:L,originalQuery:k,originalPathname:R,params:M,parsedUrl:_,locale:$,isNextDataRequest:E,locales:null==y?void 0:y.locales,defaultLocale:j,isDraftMode:z,previewData:c,pageIsDynamic:x,resolvedPathname:q,encodedResolvedPathname:X,isOnDemandRevalidate:H,revalidateOnlyGenerated:B,...f,nextConfig:w,routerServerContext:b,deploymentId:d,clientAssetToken:w.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=T(e,"minimalMode")??!1;this.responseCache=new nr(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:n,isFallback:a,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:u,waitUntil:c,isMinimalMode:d}){let f=this.getResponseCache(e),h=await f.get(r,u,{routeKind:n,isFallback:a,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:c});if(!h&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return h}}var um=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");let ug=$.createContext(null);class uy{constructor(e,t){this.matchers=Object.entries(t.dynamicRoutes).filter(([t,r])=>r.fallbackSourceRoute===e||t===e).map(([e,t])=>({source:e,route:t}))}match(e){for(let t of this.matchers)if(t.matcher||(t.matcher=oZ(oq(t.source))),t.matcher(e))return{source:t.source,route:t.route};return null}}class uv{constructor(e){this.suffix=e}match(e){return!!e.endsWith(this.suffix)}normalize(e,t){return t||this.match(e)?e.substring(0,e.length-this.suffix.length):e}}class ub extends uv{constructor(){super(ep.RM)}}let uw=RegExp(`^(/.*)${oz(ep.mH)}(/.*)${oz(ep.tz)}$`);class uS{match(e){return uw.test(e)}extract(e){let t=e.match(uw);return t?{originalPathname:t[1],segmentPath:t[2]}:null}normalize(e){let t=this.extract(e);return t?t.originalPathname:e}}{s=a("(react-server)/./dist/esm/server/route-modules/app-page/vendored/rsc/entrypoints.js"),o=a("./dist/esm/server/route-modules/app-page/vendored/ssr/entrypoints.js");let{registerServerReact:e,registerClientReact:t}=a("../../runtime-reacts.external");e(s.React),t(o.React)}class u_ extends up{match(e,t){let r=this.matchers.get(t);return r||(r=new uy(this.definition.pathname,t),this.matchers.set(t,r)),r.match(e)}normalizeUrl(e,t){if(this.normalizers.segmentPrefetchRSC.match(t.pathname||"/")){let r=this.normalizers.segmentPrefetchRSC.extract(t.pathname||"/");if(!r)return!1;let{originalPathname:n,segmentPath:a}=r;t.pathname=n,e.headers[X.hY]="1",e.headers[X._V]="1",e.headers[X.qm]=a,A(e,"isRSCRequest",!0),A(e,"isPrefetchRSCRequest",!0),A(e,"segmentPrefetchRSCRequest",a)}else this.normalizers.rsc.match(t.pathname||"/")?(t.pathname=this.normalizers.rsc.normalize(t.pathname||"/",!0),e.headers[X.hY]="1",A(e,"isRSCRequest",!0)):super.normalizeUrl(e,t);!function(e,t){if(!e.url)return;let r=o4(e.url);r&&(r.pathname=t,e.url=o8(r))}(e,t.pathname||"/")}render(e,t,r){return lO(e,t,r.page,r.query,r.fallbackRouteParams,r.renderOpts,r.serverComponentsHmrCache,r.sharedContext)}pathCouldBeIntercepted(e,t){return(0,nE.m1)(e)||t.some(t=>t.test(e))}getVaryHeader(e,t){let r=`${X.hY}, ${X.B}, ${X._V}, ${X.qm}`;return this.pathCouldBeIntercepted(e,t)?`${r}, ${X.kO}`:r}constructor(...e){super(...e),this.matchers=new WeakMap,this.normalizers={rsc:new ub,segmentPrefetchRSC:new uS}}}let uE={"react-rsc":s,"react-ssr":o,contexts:P},uR=u_})(),module.exports=i})(); +//# sourceMappingURL=app-page-experimental.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js b/cli/app/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js new file mode 100644 index 00000000000..acbb54e492b --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js @@ -0,0 +1,54 @@ +(()=>{var e,t,r={"./dist/build/webpack/alias/react-dom-server-experimental.js"(e,t,r){"use strict";var n;function a(){throw Object.defineProperty(Error("Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo."),"__NEXT_ERROR_CODE",{value:"E1021",enumerable:!1,configurable:!0})}t.version=(n=r("./dist/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js")).version,t.renderToReadableStream=n.renderToReadableStream,t.renderToString=a,t.renderToStaticMarkup=a,n.resume&&(t.resume=n.resume)},"./dist/compiled/@edge-runtime/cookies/index.js"(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,i={},s={RequestCookies:()=>h,ResponseCookies:()=>p,parseCookie:()=>u,parseSetCookie:()=>c,stringifyCookie:()=>l};for(var o in s)t(i,o,{get:s[o],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function u(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=u(e),{domain:a,expires:i,httponly:s,maxage:o,path:l,samesite:c,secure:h,partitioned:p,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:a,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...c&&{sameSite:d.includes(g=(g=c).toLowerCase())?g:void 0},...h&&{secure:!0},...m&&{priority:f.includes(y=(y=m).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}e.exports=((e,i,s,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let l of n(i))a.call(e,l)||l===s||t(e,l,{get:()=>i[l],enumerable:!(o=r(i,l))||o.enumerable});return e})(t({},"__esModule",{value:!0}),i);var d=["strict","lax","none"],f=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of u(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},p=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},"./dist/compiled/busboy/index.js"(e,t,r){!function(){"use strict";var t={900:function(e,t,r){let{parseContentType:n}=r(318),a=[r(104),r(506)].filter(function(e){return"function"==typeof e.detect});e.exports=e=>{if(("object"!=typeof e||null===e)&&(e={}),"object"!=typeof e.headers||null===e.headers||"string"!=typeof e.headers["content-type"])throw Error("Missing Content-Type");var t=e;let r=t.headers,i=n(r["content-type"]);if(!i)throw Error("Malformed content type");for(let e of a){if(!e.detect(i))continue;let n={limits:t.limits,headers:r,conType:i,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return t.highWaterMark&&(n.highWaterMark=t.highWaterMark),t.fileHwm&&(n.fileHwm=t.fileHwm),n.defCharset=t.defCharset,n.defParamCharset=t.defParamCharset,n.preservePath=t.preservePath,new e(n)}throw Error(`Unsupported content type: ${r["content-type"]}`)}},104:function(e,t,r){let{Readable:n,Writable:a}=r(781),i=r(542),{basename:s,convertToUTF8:o,getDecoder:l,parseContentType:u,parseDisposition:c}=r(318),d=Buffer.from("\r\n"),f=Buffer.from("\r"),h=Buffer.from("-");function p(){}class m{constructor(e){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=0,this.name="",this.value="",this.crlf=0,this.cb=e}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=0,this.name="",this.value="",this.crlf=0}push(e,t,r){let n=t;for(;t{if(this._read(),0==--t._fileEndsLeft&&t._finalcb){let e=t._finalcb;t._finalcb=null,process.nextTick(e)}})}_read(e){let t=this._readcb;t&&(this._readcb=null,t())}}let y={push:(e,t)=>{},destroy:()=>{}};function v(e,t){return e}function b(e,t,r){if(r)return t(r);t(r=w(e))}function w(e){if(e._hparser)return Error("Malformed part header");let t=e._fileStream;if(t&&(e._fileStream=null,t.destroy(Error("Unexpected end of file"))),!e._complete)return Error("Unexpected end of form")}let S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],_=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];e.exports=class extends a{constructor(e){let t,r,n,a,b;if(super({autoDestroy:!0,emitClose:!0,highWaterMark:"number"==typeof e.highWaterMark?e.highWaterMark:void 0}),!e.conType.params||"string"!=typeof e.conType.params.boundary)throw Error("Multipart: Boundary not found");const w=e.conType.params.boundary,S="string"==typeof e.defParamCharset&&e.defParamCharset?l(e.defParamCharset):v,_=e.defCharset||"utf8",E=e.preservePath,R={autoDestroy:!0,emitClose:!0,highWaterMark:"number"==typeof e.fileHwm?e.fileHwm:void 0},k=e.limits,x=k&&"number"==typeof k.fieldSize?k.fieldSize:1048576,P=k&&"number"==typeof k.fileSize?k.fileSize:1/0,C=k&&"number"==typeof k.files?k.files:1/0,T=k&&"number"==typeof k.fields?k.fields:1/0,A=k&&"number"==typeof k.parts?k.parts:1/0;let O=-1,j=0,$=0,I=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let D=0,N=0,M=!1,L=!1,U=!1;this._hparser=null;const F=new m(e=>{let i;if(this._hparser=null,I=!1,a="text/plain",r=_,n="7bit",b=void 0,M=!1,!e["content-disposition"]){I=!0;return}let o=c(e["content-disposition"][0],S);if(!o||"form-data"!==o.type){I=!0;return}if(o.params&&(o.params.name&&(b=o.params.name),o.params["filename*"]?i=o.params["filename*"]:o.params.filename&&(i=o.params.filename),void 0===i||E||(i=s(i))),e["content-type"]){let t=u(e["content-type"][0]);t&&(a=`${t.type}/${t.subtype}`,t.params&&"string"==typeof t.params.charset&&(r=t.params.charset.toLowerCase()))}if(e["content-transfer-encoding"]&&(n=e["content-transfer-encoding"][0].toLowerCase()),"application/octet-stream"===a||void 0!==i){if($===C){L||(L=!0,this.emit("filesLimit")),I=!0;return}if(++$,0===this.listenerCount("file")){I=!0;return}D=0,this._fileStream=new g(R,this),++this._fileEndsLeft,this.emit("file",b,this._fileStream,{filename:i,encoding:n,mimeType:a})}else{if(j===T){U||(U=!0,this.emit("fieldsLimit")),I=!0;return}if(++j,0===this.listenerCount("field")){I=!0;return}t=[],N=0}});let H=0;const B=(e,i,s,l,u)=>{for(;i;){if(null!==this._hparser){let e=this._hparser.push(i,s,l);if(-1===e){this._hparser=null,F.reset(),this.emit("error",Error("Malformed part header"));break}s=e}if(s===l)break;if(0!==H){if(1===H){switch(i[s]){case 45:H=2,++s;break;case 13:H=3,++s;break;default:H=0}if(s===l)return}if(2===H){if(H=0,45===i[s]){this._complete=!0,this._bparser=y;return}let e=this._writecb;this._writecb=p,B(!1,h,0,1,!1),this._writecb=e}else if(3===H){if(H=0,10===i[s]){if(++s,O>=A||(this._hparser=F,s===l))break;continue}{let e=this._writecb;this._writecb=p,B(!1,f,0,1,!1),this._writecb=e}}}if(!I){if(this._fileStream){let e,t=Math.min(l-s,P-D);u?e=i.slice(s,s+t):(e=Buffer.allocUnsafe(t),i.copy(e,0,s,s+t)),(D+=e.length)===P?(e.length>0&&this._fileStream.push(e),this._fileStream.emit("limit"),this._fileStream.truncated=!0,I=!0):this._fileStream.push(e)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(void 0!==t){let e,r=Math.min(l-s,x-N);u?e=i.slice(s,s+r):(e=Buffer.allocUnsafe(r),i.copy(e,0,s,s+r)),N+=r,t.push(e),N===x&&(I=!0,M=!0)}}break}if(e){if(H=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(void 0!==t){let e;switch(t.length){case 0:e="";break;case 1:e=o(t[0],r,0);break;default:e=o(Buffer.concat(t,N),r,0)}t=void 0,N=0,this.emit("field",b,e,{nameTruncated:!1,valueTruncated:M,encoding:n,mimeType:a})}++O===A&&this.emit("partsLimit")}};this._bparser=new i(`\r +--${w}`,B),this._writecb=null,this._finalcb=null,this.write(d)}static detect(e){return"multipart"===e.type&&"form-data"===e.subtype}_write(e,t,r){let n;this._writecb=r,this._bparser.push(e,0),this._writecb&&(n=this._writecb,this._writecb=null,n&&n())}_destroy(e,t){this._hparser=null,this._bparser=y,e||(e=w(this));let r=this._fileStream;r&&(this._fileStream=null,r.destroy(e)),t(e)}_final(e){if(this._bparser.destroy(),!this._complete)return e(Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=b.bind(null,this,e):b(this,e)}}},506:function(e,t,r){let{Writable:n}=r(781),{getDecoder:a}=r(318);function i(e,t,r,n){if(r>=n)return n;if(-1===e._byte){let a=l[t[r++]];if(-1===a)return -1;if(a>=8&&(e._encode=2),re.fieldNameSizeLimit){for(!e._keyTrunc&&e._lastPose.fieldSizeLimit){for(!e._valTrunc&&e._lastPos=this.fieldsLimit)return r();let n=0,a=e.length;if(this._lastPos=0,-2!==this._byte){if(-1===(n=i(this,e,n,a)))return r(Error("Malformed urlencoded form"));if(n>=a)return r();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;n0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue;case 43:this._lastPos=a)return r();++this._bytesKey,n=s(this,e,n,a);continue}++n,++this._bytesKey,n=s(this,e,n,a)}this._lastPos0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue e;case 43:this._lastPos=a)return r();++this._bytesVal,n=o(this,e,n,a);continue}++n,++this._bytesVal,n=o(this,e,n,a)}this._lastPos0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),e()}}},318:function(e){function t(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return r.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return r.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return r.utf16le;case"base64":return r.base64;default:if(void 0===t){t=!0,e=e.toLowerCase();continue}return r.other.bind(e)}}let r={utf8:(e,t)=>{if(0===e.length)return"";if("string"==typeof e){if(t<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,t)=>0===e.length?"":"string"==typeof e?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>0===e.length?"":("string"==typeof e&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,t)=>0===e.length?"":("string"==typeof e&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,t)=>{if(0===e.length)return"";"string"==typeof e&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(this).decode(e)}catch{}}};function n(e,r,n){let a=t(r);if(a)return a(e,n)}let a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];e.exports={basename:function(e){if("string"!=typeof e)return"";for(let t=e.length-1;t>=0;--t)switch(e.charCodeAt(t)){case 47:case 92:return".."===(e=e.slice(t+1))||"."===e?"":e}return".."===e||"."===e?"":e},convertToUTF8:n,getDecoder:t,parseContentType:function(e){if(0===e.length)return;let t=Object.create(null),r=0;for(;r=128?a=2:0===a&&(a=1);continue}return}break}}if(p+=e.slice(d,t),void 0===(p=n(p,f,a)))return}else{if(++t===e.length)return;if(34===e.charCodeAt(t)){d=++t;let r=!1;for(;t1)for(let t=0;t-e._lookbehindSize?e._cb(!0,f,0,e._lookbehindSize+o,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=o+s;o+=d[a]}for(;o<0&&!r(e,n,o,a-o);)++o;if(o<0){let t=e._lookbehindSize+o;return t>0&&e._cb(!1,f,0,t,!1),e._lookbehindSize-=t,f.copy(f,0,t,e._lookbehindSize),f.set(n,e._lookbehindSize),e._lookbehindSize+=a,e._bufPos=a,a}e._cb(!1,f,0,e._lookbehindSize,!1),e._lookbehindSize=0}o+=e._bufPos;let h=i[0];for(;o<=c;){let r=n[o+l];if(r===u&&n[o]===h&&t(i,0,n,o,l))return++e.matches,o>0?e._cb(!0,n,e._bufPos,o,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=o+s;o+=d[r]}for(;o0&&e._cb(!1,n,e._bufPos,o{"use strict";var t={56:e=>{e.exports=function(e,t){return"string"==typeof e?s(e):"number"==typeof e?i(e,t):null},e.exports.format=i,e.exports.parse=s;var t=/\B(?=(\d{3})+(?!\d))/g,r=/(?:\.0*|(\.[^0]+)0+)$/,n={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},a=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function i(e,a){if(!Number.isFinite(e))return null;var i=Math.abs(e),s=a&&a.thousandsSeparator||"",o=a&&a.unitSeparator||"",l=a&&void 0!==a.decimalPlaces?a.decimalPlaces:2,u=!!(a&&a.fixedDecimals),c=a&&a.unit||"";c&&n[c.toLowerCase()]||(c=i>=n.pb?"PB":i>=n.tb?"TB":i>=n.gb?"GB":i>=n.mb?"MB":i>=n.kb?"KB":"B");var d=(e/n[c.toLowerCase()]).toFixed(l);return u||(d=d.replace(r,"$1")),s&&(d=d.split(".").map(function(e,r){return 0===r?e.replace(t,s):e}).join(".")),d+o+c}function s(e){if("number"==typeof e&&!isNaN(e))return e;if("string"!=typeof e)return null;var t,r=a.exec(e),i="b";return r?(t=parseFloat(r[1]),i=r[4].toLowerCase()):(t=parseInt(e,10),i="b"),Math.floor(n[i]*t)}}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}},s=!0;try{t[e](i,i.exports,n),s=!1}finally{s&&delete r[e]}return i.exports}n.ab=__dirname+"/",e.exports=n(56)})()},"./dist/compiled/cookie/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t,r,n,a,i={};i.parse=function(e,r){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var a={},i=e.split(n),s=(r||{}).decode||t,o=0;o{"use strict";let t,r,n,a,i;var s={993:e=>{var t=Object.prototype.hasOwnProperty,r="~";function n(){}function a(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,s){if("function"!=typeof n)throw TypeError("The listener must be a function");var o=new a(n,i||e,s),l=r?r+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),o.prototype.eventNames=function(){var e,n,a=[];if(0===this._eventsCount)return a;for(n in e=this._events)t.call(e,n)&&a.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,s=Array(i);a{e.exports=(e,t)=>(t=t||(()=>{}),e.then(e=>new Promise(e=>{e(t())}).then(()=>e),e=>new Promise(e=>{e(t())}).then(()=>{throw e})))},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){let n=0,a=e.length;for(;a>0;){let i=a/2|0,s=n+i;0>=r(e[s],t)?(n=++s,a-=i+1):a=i}return n}},821:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let n=r(574);t.default=class{constructor(){this._queue=[]}enqueue(e,t){let r={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)return void this._queue.push(r);let a=n.default(this._queue,r,(e,t)=>t.priority-e.priority);this._queue.splice(a,0,r)}dequeue(){let e=this._queue.shift();return null==e?void 0:e.run}filter(e){return this._queue.filter(t=>t.priority===e.priority).map(e=>e.run)}get size(){return this._queue.length}}},816:(e,t,r)=>{let n=r(213);class a extends Error{constructor(e){super(e),this.name="TimeoutError"}}let i=(e,t,r)=>new Promise((i,s)=>{if("number"!=typeof t||t<0)throw TypeError("Expected `milliseconds` to be a positive number");if(t===1/0)return void i(e);let o=setTimeout(()=>{if("function"==typeof r){try{i(r())}catch(e){s(e)}return}let n="string"==typeof r?r:`Promise timed out after ${t} milliseconds`,o=r instanceof Error?r:new a(n);"function"==typeof e.cancel&&e.cancel(),s(o)},t);n(e.then(i,s),()=>{clearTimeout(o)})});e.exports=i,e.exports.default=i,e.exports.TimeoutError=a}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},n=!0;try{s[e](r,r.exports,l),n=!1}finally{n&&delete o[e]}return r.exports}l.ab=__dirname+"/";var u={};Object.defineProperty(u,"__esModule",{value:!0}),t=l(993),r=l(816),n=l(821),a=()=>{},i=new r.TimeoutError,u.default=class extends t{constructor(e){var t,r,i,s;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=a,this._resolveIdle=a,!("number"==typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:n.default},e)).intervalCap&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(r=null==(t=e.intervalCap)?void 0:t.toString())?r:""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(s=null==(i=e.interval)?void 0:i.toString())?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=!0===e.throwOnTimeout,this._isPaused=!1===e.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},t)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let t=this._queue.dequeue();return!!t&&(this.emit("active"),t(),e&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!("number"==typeof e&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,t={}){return new Promise((n,a)=>{let s=async()=>{this._pendingCount++,this._intervalCount++;try{let s=void 0===this._timeout&&void 0===t.timeout?e():r.default(Promise.resolve(e()),void 0===t.timeout?this._timeout:t.timeout,()=>{(void 0===t.throwOnTimeout?this._throwOnTimeout:t.throwOnTimeout)&&a(i)});n(await s)}catch(e){a(e)}this._next()};this._queue.enqueue(s,t),this._tryToStartAnother(),this.emit("add")})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(e=>{let t=this._resolveEmpty;this._resolveEmpty=()=>{t(),e()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(e=>{let t=this._resolveIdle;this._resolveIdle=()=>{t(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}},e.exports=u})()},"./dist/compiled/path-to-regexp/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s){a+=e[i++];continue}break}if(!a)throw TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:a}),r=i;continue}if("("===n){var o=1,l="",i=r+1;if("?"===e[i])throw TypeError('Pattern cannot start with "?" at '.concat(i));for(;i-1)return!0}return!1},g=function(e){var t=l[l.length-1],r=e||(t&&"string"==typeof t?t:"");if(t&&!r)throw TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!r||m(r)?"[^".concat(a(o),"]+?"):"(?:(?!".concat(a(r),")[^").concat(a(o),"])+?")};c-1:void 0===S;s||(m+="(?:".concat(p,"(?=").concat(h,"))?")),_||(m+="(?=".concat(p,"|").concat(h,")"))}return new RegExp(m,i(r))}function o(t,r,n){if(t instanceof RegExp){var a;if(!r)return t;for(var l=/\((?:\?<(.*?)>)?(?!\?)/g,u=0,c=l.exec(t.source);c;)r.push({name:c[1]||u++,prefix:"",suffix:"",modifier:"",pattern:""}),c=l.exec(t.source);return t}return Array.isArray(t)?(a=t.map(function(e){return o(e,r,n).source}),new RegExp("(?:".concat(a.join("|"),")"),i(n))):s(e(t,n),r,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.pathToRegexp=t.tokensToRegexp=t.regexpToFunction=t.match=t.tokensToFunction=t.compile=t.parse=void 0,t.parse=e,t.compile=function(t,n){return r(e(t,n),n)},t.tokensToFunction=r,t.match=function(e,t){var r=[];return n(o(e,r,t),r,t)},t.regexpToFunction=n,t.tokensToRegexp=s,t.pathToRegexp=o})(),e.exports=t})()},"./dist/compiled/react-dom-experimental/cjs/react-dom-server.node.production.js"(e,t,r){"use strict";var n,a,i=r("util"),s=r("crypto"),o=r("async_hooks"),l=r("./dist/compiled/react-experimental/index.js"),u=r("./dist/compiled/react-dom-experimental/index.js"),c=r("stream"),d=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),g=Symbol.for("react.consumer"),y=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),E=Symbol.for("react.scope"),R=Symbol.for("react.activity"),k=Symbol.for("react.legacy_hidden"),x=Symbol.for("react.memo_cache_sentinel"),P=Symbol.for("react.view_transition"),C=Symbol.iterator;function T(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=C&&e[C]||e["@@iterator"])?e:null}var A=Symbol.asyncIterator,O=Symbol.for("react.optimistic_key"),j=Array.isArray,$=queueMicrotask;function I(e){"function"==typeof e.flush&&e.flush()}var D=null,N=0,M=!0;function L(e,t){if("string"==typeof t){if(0!==t.length)if(4096<3*t.length)0]/;function ee(e){if("boolean"==typeof e||"number"==typeof e||"bigint"==typeof e)return""+e;e=""+e;var t=Z.exec(e);if(t){var r,n="",a=0;for(r=t.index;r; rel=dns-prefetch",n=0<=(a.remainingCapacity-=r.length+2)),n?(i.resets.dns[e]=null,a.preconnects&&(a.preconnects+=", "),a.preconnects+=r):(tt(r=[],{href:e,rel:"dns-prefetch"}),i.preconnects.add(r))),a0(t))}else el.D(e)},C:function(e,t){var r=ar();if(r){var n=r.resumableState,a=r.renderState;if("string"==typeof e&&e){var i,s,o="use-credentials"===t?"credentials":"string"==typeof t?"anonymous":"default";n.connectResources[o].hasOwnProperty(e)||(n.connectResources[o][e]=null,(s=(n=a.headers)&&0; rel=preconnect","string"==typeof t&&(s+='; crossorigin="'+(""+t).replace(r2,r3)+'"'),i=s,s=0<=(n.remainingCapacity-=i.length+2)),s?(a.resets.connect[o][e]=null,n.preconnects&&(n.preconnects+=", "),n.preconnects+=i):(tt(o=[],{rel:"preconnect",href:e,crossOrigin:t}),a.preconnects.add(o))),a0(r)}}else el.C(e,t)},L:function(e,t,r){var n=ar();if(n){var a=n.resumableState,i=n.renderState;if(t&&e){switch(t){case"image":if(r)var s,o=r.imageSrcSet,l=r.imageSizes,u=r.fetchPriority;var c=o?o+"\n"+(l||""):e;if(a.imageResources.hasOwnProperty(c))return;a.imageResources[c]=eu,(a=i.headers)&&0'),ef=z(""),ep=z('`,l=!1,new TransformStream({transform(e,t){if(l)return void t.enqueue(e);let r=F(e,U.CLOSED.HEAD);if(-1===r)return void t.enqueue(e);let n=V.encode(o),a=new Uint8Array(e.length+n.length);a.set(e.slice(0,r)),a.set(n,r),a.set(e.slice(r),r+n.length),t.enqueue(a),l=!0}})),ee(n),er(t,!0),ea()])}async function ed(e,{delayDataUntilFirstHtmlChunk:t,inlinedDataStream:r,getServerInsertedHTML:n,getServerInsertedMetadata:a,deploymentId:i}){return es(e,[Z(),i?ei(i):null,et(n),ee(a),er(r,t),ea()])}var ef=a("./dist/esm/lib/constants.js");function eh(e){for(let t of[ef.AA,ef.h])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function ep(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}function em(e){return e.replace(/\/$/,"")||"/"}function eg(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function ey(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=eg(e);return`${t}${r}${n}${a}`}function ev(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=eg(e);return`${r}${t}${n}${a}`}function eb(e,t){if("string"!=typeof e)return!1;let{pathname:r}=eg(e);return r===t||r.startsWith(t+"/")}function ew(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}let eS=new WeakMap;function e_(e,t){let r;if(!t)return{pathname:e};let n=eS.get(t);n||(n=t.map(e=>e.toLowerCase()),eS.set(t,n));let a=e.split("/",2);if(!a[1])return{pathname:e};let i=a[1].toLowerCase(),s=n.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function eE(e,t){if(!eb(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}let eR=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function ek(e,t){let r=new URL(String(e),t&&String(t));return eR.test(r.hostname)&&(r.hostname="localhost"),r}let ex=Symbol("NextURLInternal");class eP{constructor(e,t,r){let n,a;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,a=r||{}):a=r||t||{},this[ex]={url:ek(e,n??a.base),options:a,basePath:""},this.analyze()}analyze(){var e,t,r,n,a;let i=function(e,t){let{basePath:r,i18n:n,trailingSlash:a}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):a};r&&eb(i.pathname,r)&&(i.pathname=eE(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):e_(i.pathname,n.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):e_(s,n.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[ex].url.pathname,{nextConfig:this[ex].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[ex].options.i18nProvider}),s=ew(this[ex].url,this[ex].options.headers);this[ex].domainLocale=this[ex].options.i18nProvider?this[ex].options.i18nProvider.detectDomainLocale(s):ep(null==(t=this[ex].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[ex].domainLocale)?void 0:r.defaultLocale)||(null==(a=this[ex].options.nextConfig)||null==(n=a.i18n)?void 0:n.defaultLocale);this[ex].url.pathname=i.pathname,this[ex].defaultLocale=o,this[ex].basePath=i.basePath??"",this[ex].buildId=i.buildId,this[ex].locale=i.locale??o,this[ex].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let a=e.toLowerCase();return!n&&(eb(a,"/api")||eb(a,`/${t.toLowerCase()}`))?e:ey(e,`/${t}`)}((e={basePath:this[ex].basePath,buildId:this[ex].buildId,defaultLocale:this[ex].options.forceLocale?void 0:this[ex].defaultLocale,locale:this[ex].locale,pathname:this[ex].url.pathname,trailingSlash:this[ex].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=em(t)),e.buildId&&(t=ev(ey(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=ey(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:ev(t,"/"):em(t)}formatSearch(){return this[ex].url.search}get buildId(){return this[ex].buildId}set buildId(e){this[ex].buildId=e}get locale(){return this[ex].locale??""}set locale(e){var t,r;if(!this[ex].locale||!(null==(r=this[ex].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[ex].locale=e}get defaultLocale(){return this[ex].defaultLocale}get domainLocale(){return this[ex].domainLocale}get searchParams(){return this[ex].url.searchParams}get host(){return this[ex].url.host}set host(e){this[ex].url.host=e}get hostname(){return this[ex].url.hostname}set hostname(e){this[ex].url.hostname=e}get port(){return this[ex].url.port}set port(e){this[ex].url.port=e}get protocol(){return this[ex].url.protocol}set protocol(e){this[ex].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[ex].url=ek(e),this.analyze()}get origin(){return this[ex].url.origin}get pathname(){return this[ex].url.pathname}set pathname(e){this[ex].url.pathname=e}get hash(){return this[ex].url.hash}set hash(e){this[ex].url.hash=e}get search(){return this[ex].url.search}set search(e){this[ex].url.search=e}get password(){return this[ex].url.password}set password(e){this[ex].url.password=e}get username(){return this[ex].url.username}set username(e){this[ex].url.username=e}get basePath(){return this[ex].basePath}set basePath(e){this[ex].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new eP(String(this),this[ex].options)}}var eC=a("./dist/esm/server/web/spec-extension/cookies.js");Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let eT="ResponseAborted";class eA extends Error{constructor(...e){super(...e),this.name=eT}}let eO=0,ej=0,e$=0;function eI(e={}){let t=0===eO?void 0:{clientComponentLoadStart:eO,clientComponentLoadTimes:ej,clientComponentLoadCount:e$};return e.reset&&(eO=0,ej=0,e$=0),t}function eD(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===eT}async function eN(e,t,r){try{let n,{errored:a,destroyed:i}=t;if(a||i)return;let s=(n=new AbortController,t.once("close",()=>{t.writableFinished||n.abort(new eA)}),n),o=function(e,t){let r=!1,n=new I;function a(){n.resolve()}e.on("drain",a),e.once("close",()=>{e.off("drain",a),n.resolve()});let i=new I;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=eI();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,j.getTracer)().trace($.Fx.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await n.promise,n=new I)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(o,{signal:s.signal})}catch(e){if(eD(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}var eM=a("./dist/esm/shared/lib/invariant-error.js");class eL{static #e=this.EMPTY=new eL(null,{metadata:{},contentType:null});static fromStatic(e,t){return new eL(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new eM.z("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return Q(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?G(this.response):Buffer.isBuffer(this.response)?J(this.response):Array.isArray(this.response)?W(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[G(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[J(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(eD(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await eN(this.readable,e,this.waitUntil)}}var eU=a("./dist/build/webpack/alias/react-dom-server-experimental.js"),eF=a("./dist/compiled/react-dom-experimental/static.node.js");let eH={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},eB=/[&><\u2028\u2029]/g;function ez(e){return e.replace(eB,e=>eH[e])}var eq=a("../../app-render/work-unit-async-storage.external"),eX=a("./dist/esm/shared/lib/router/utils/app-paths.js");let eV=Symbol.for("next.server.manifests"),eW=globalThis;function eG(){let e=eW[eV];if(!e)throw Object.defineProperty(new eM.z("The manifests singleton was not initialized."),"__NEXT_ERROR_CODE",{value:"E950",enumerable:!1,configurable:!0});return e}function eJ(){return eG().proxiedClientReferenceManifest}function eK(){return eG().serverActionsManifest}function eY(){return eG().serverModuleMap}let eQ=new WeakMap,eZ=new TextEncoder,e0;function e1(e,t,r,n){let i,s=eQ.get(e);if(s)return s;let{moduleLoading:o,edgeSSRModuleMapping:l,ssrModuleMapping:u}=eJ();if(e instanceof ReadableStream){if(t&&!(t instanceof ReadableStream))throw Object.defineProperty(new eM.z("Expected debug stream to be a ReadableStream"),"__NEXT_ERROR_CODE",{value:"E939",enumerable:!1,configurable:!0});let{createFromReadableStream:s}=a("./dist/compiled/react-server-dom-turbopack-experimental/client.node.js");i=s(e,{findSourceMapURL:e0,serverConsumerManifest:{moduleLoading:o,moduleMap:u,serverModuleMap:null},nonce:n,debugChannel:t?{readable:t}:void 0,endTime:r})}else{let{Readable:s}=a("node:stream");if(t&&!(t instanceof s))throw Object.defineProperty(new eM.z("Expected debug stream to be a Readable"),"__NEXT_ERROR_CODE",{value:"E940",enumerable:!1,configurable:!0});let{createFromNodeStream:l}=a("./dist/compiled/react-server-dom-turbopack-experimental/client.node.js");i=l(e,{moduleLoading:o,moduleMap:u,serverModuleMap:null},{findSourceMapURL:e0,nonce:n,debugChannel:t,endTime:r})}{let t=eq.workUnitAsyncStorage.getStore();if(!t)throw Object.defineProperty(new eM.z("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0});switch(t.type){case"prerender-client":case"validation-client":let r=new Promise(e=>{process.nextTick(()=>{e(i)})});return eQ.set(e,r),r}}return eQ.set(e,i),i}function e2(e,t,r){let n;n="string"==typeof r?ez(JSON.stringify([1,r])):ez(JSON.stringify([3,"undefined"!=typeof Buffer?Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("base64"):btoa(String.fromCodePoint(...r))])),e.enqueue(eZ.encode(`${t}self.__next_f.push(${n})`))}class e3{constructor(e){this._stream=e}tee(){if(null===this._stream)throw Object.defineProperty(Error("Cannot tee a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E106",enumerable:!1,configurable:!0});let e=this._stream.tee();return this._stream=e[0],e[1]}consume(){if(null===this._stream)throw Object.defineProperty(Error("Cannot consume a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E470",enumerable:!1,configurable:!0});let e=this._stream;return this._stream=null,e}}async function e4(e){let t=[],{prelude:r}=await e,n=r.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)return new e8(t);t.push(r)}}async function e6(e){let t=[],r=e.getReader();for(;;){let{done:e,value:n}=await r.read();if(e)break;t.push(n)}return new e8(t)}class e8{assertChunks(e){if(null===this._chunks)throw Object.defineProperty(new eM.z(`Cannot \`${e}\` on a ReactServerPrerenderResult that has already been consumed.`),"__NEXT_ERROR_CODE",{value:"E593",enumerable:!1,configurable:!0});return this._chunks}consumeChunks(e){let t=this.assertChunks(e);return this.consume(),t}consume(){this._chunks=null}constructor(e){this._chunks=e}asUnclosingStream(){return e9(this.assertChunks("asUnclosingStream()"))}consumeAsUnclosingStream(){return e9(this.consumeChunks("consumeAsUnclosingStream()"))}asStream(){return e5(this.assertChunks("asStream()"))}consumeAsStream(){return e5(this.consumeChunks("consumeAsStream()"))}}function e9(e){let t=0;return new ReadableStream({async pull(r){t`:"`))}catch(t){e.error(t)}},async pull(e){try{let{done:t,value:r}=await a.read();if(r)try{let a=i.decode(r,{stream:!t});e2(e,n,a)}catch{e2(e,n,r)}t&&e.close()}catch(t){e.error(t)}}})}function tt(){return new ReadableStream}function tr(e){return t=>{t.forEach((t,r)=>{e(r,t)})}}async function tn(e,t,r){return(0,eU.resume)(e,t,r)}function ta(e,t,r,n){return e.renderToReadableStream(t,r,n)}async function ti(e){return Q(e)}async function ts(e,t){let r=await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,j.getTracer)().trace($.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:{renderToReadableStream:eU.renderToReadableStream},element:e,streamOptions:t});return{stream:r,allReady:r.allReady,abort:void 0}}async function to(e,t,r){let n=await (0,eU.resume)(e,t,r);return{stream:n,allReady:n.allReady,abort:void 0}}function tl(e){return e.prerender}let tu=eF.prerender,tc=[z._A];function td(e){return{trailingSlash:e.trailingSlash,isStaticMetadataRouteFile:!1}}var tf=a("./dist/esm/server/web/spec-extension/adapters/headers.js"),th=a("./dist/esm/server/web/spec-extension/adapters/request-cookies.js"),tp=a("./dist/esm/server/api-utils/index.js");class tm{constructor(e,t,r,n){var a;const i=e&&(0,tp.checkIsOnDemandRevalidate)(t,e).isOnDemandRevalidate,s=null==(a=r.get(tp.COOKIE_NAME_PRERENDER_BYPASS))?void 0:a.value;this._isEnabled=!!(!i&&s&&e&&s===e.previewModeId),this._previewModeId=null==e?void 0:e.previewModeId,this._mutableCookies=n}get isEnabled(){return this._isEnabled}enable(){if(!this._previewModeId)throw Object.defineProperty(Error("Invariant: previewProps missing previewModeId this should never happen"),"__NEXT_ERROR_CODE",{value:"E93",enumerable:!1,configurable:!0});this._mutableCookies.set({name:tp.COOKIE_NAME_PRERENDER_BYPASS,value:this._previewModeId,httpOnly:!0,sameSite:"none",secure:!0,path:"/"}),this._isEnabled=!0}disable(){this._mutableCookies.set({name:tp.COOKIE_NAME_PRERENDER_BYPASS,value:"",httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:new Date(0)}),this._isEnabled=!1}}function tg(e,t){if("x-middleware-set-cookie"in e.headers&&"string"==typeof e.headers["x-middleware-set-cookie"]){let r=e.headers["x-middleware-set-cookie"],n=new Headers;for(let e of function(e){var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(r))n.append("set-cookie",e);for(let e of new eC.VO(n).getAll())t.set(e)}}function ty(e,t,r,n,a,i,s,o,l,u,c){var d=e,f=t,h=r,p=n,m=a,g=i,y=u,v=s,b=o,w=l,S=c;function _(e){f&&f.setHeader("Set-Cookie",e)}let E={};return{type:"request",phase:"render",implicitTags:m,url:{pathname:h.pathname,search:h.search??""},rootParams:p,get headers(){return E.headers||(E.headers=function(e){let t=tf.o.from(e);for(let e of z.KD)t.delete(e);return tf.o.seal(t)}(d.headers)),E.headers},get cookies(){if(!E.cookies){let e=new eC.tm(tf.o.from(d.headers));tg(d,e),E.cookies=th.Ck.seal(e)}return E.cookies},set cookies(value){E.cookies=value},get mutableCookies(){if(!E.mutableCookies){var R,k;let e,t=(R=d.headers,k=g||(f?_:void 0),e=new eC.tm(tf.o.from(R)),th.K8.wrap(e,k));tg(d,t),E.mutableCookies=t}return E.mutableCookies},get userspaceMutableCookies(){return E.userspaceMutableCookies||(E.userspaceMutableCookies=(0,th.EJ)(this)),E.userspaceMutableCookies},get draftMode(){return E.draftMode||(E.draftMode=new tm(v,d,this.cookies,this.mutableCookies)),E.draftMode},renderResumeDataCache:y??null,isHmrRefresh:b,serverComponentsHmrCache:w||globalThis.__serverComponentsHmrCache,fallbackParams:S}}var tv=a("./dist/esm/server/after/after-context.js");function tb(e){let t,r={then:(n,a)=>(t||(t=Promise.resolve(e())),t.then(e=>{r.value=e}).catch(()=>{}),t.then(n,a))};return r}var tw=a("./dist/esm/server/use-cache/handlers.js"),tS=a("./dist/esm/server/app-render/async-local-storage.js"),t_=a("./dist/esm/client/components/http-access-fallback/http-access-fallback.js"),tE=a("./dist/esm/client/components/redirect-error.js");function tR(e){return(0,tE.n)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function tk(e){if(!(0,tE.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function tx(e){if(!(0,tE.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}async function tP(e,t,r){let n=new Set;for(let t of(e=>{let t=["/layout"];if(e.startsWith("/")){let r=e.split("/");for(let e=1;ea.getExpiration(e)));return t}(a)}}a("../../app-render/action-async-storage.external").actionAsyncStorage;class tC extends eL{constructor(e,t={},r){super(e,{contentType:z.al,metadata:t,waitUntil:r})}}var tT=a("./dist/compiled/string-hash/index.js"),tA=a.n(tT);let tO=["useDeferredValue","useEffect","useEffectEvent","useImperativeHandle","useInsertionEffect","useLayoutEffect","useReducer","useRef","useState","useSyncExternalStore","useTransition","experimental_useOptimistic","useOptimistic"];function tj(e,t){if(e.message=t,e.stack){let r=e.stack.split("\n");r[0]=t,e.stack=r.join("\n")}}function t$(e){let t=e.stack;return t?t.replace(/^[^\n]*\n/,""):""}function tI(e){if("string"==typeof(null==e?void 0:e.message)){if(e.message.includes("Class extends value undefined is not a constructor or null")){let t="This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component";if(e.message.includes(t))return;tj(e,`${e.message} + +${t}`);return}if(e.message.includes("createContext is not a function"))return void tj(e,'createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');for(let t of tO)if(RegExp(`\\b${t}\\b.*is not a function`).test(e.message))return void tj(e,`${t} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`)}}var tD=a("./dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js"),tN=a("./dist/esm/client/components/hooks-server-context.js"),tM=a("./dist/esm/client/components/is-next-router-error.js"),tL=a("./dist/esm/server/app-render/dynamic-rendering.js");function tU(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function tF(e){let t;return tU(e)?e:Object.defineProperty(Error(!function(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}(e)?e+"":(t=new WeakSet,JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r}))),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}let tH=(e,t)=>"object"==typeof e&&null!==e&&"__NEXT_ERROR_CODE"in e?`${t}@${e.__NEXT_ERROR_CODE}`:t;function tB(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message&&e.message.startsWith("This rendered a large document (>")}var tz=a("./dist/esm/server/app-render/instant-validation/instant-validation-error.js");function tq(e){if((0,tD.C)(e)||(0,tM.p)(e)||(0,tN.isDynamicServerError)(e)||(0,tL.AA)(e)||(0,tz.R)(e))return e.digest}function tX(e,t,r,n,a){return i=>{var s;if("string"==typeof i)return tA()(i).toString();if(eD(i))return;let o=tq(i);if(o)return o;if(tB(i))return void console.error(i);let l=tF(i),u=!1;if(l.digest?r.has(l.digest)&&(l=r.get(l.digest),u=!0):l.digest=tH(l,tA()(l.message+(l.stack||"")).toString()),r.has(l.digest)||r.set(l.digest,l),e&&tI(l),!(t&&(null==l||null==(s=l.message)?void 0:s.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))){let e=a??(0,j.getTracer)().getActiveScopeSpan();e&&(e.recordException(l),e.setAttribute("error.type",l.name),e.setStatus({code:j.SpanStatusCode.ERROR,message:l.message})),n(l,u)}return l.digest}}function tV(e,t,r,n,a,i){return(s,o)=>{var l;if(tB(s))return void console.error(s);let u=!0;if(n.push(s),eD(s))return;let c=tq(s);if(c)return c;let d=tF(s);if(d.digest?r.has(d.digest)&&(s=r.get(d.digest),u=!1):d.digest=tH(d,tA()(d.message+((null==o?void 0:o.componentStack)||d.stack||"")).toString()),e&&tI(d),!(t&&(null==d||null==(l=d.message)?void 0:l.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))&&u){let e=i??(0,j.getTracer)().getActiveScopeSpan();e&&(e.recordException(d),e.setAttribute("error.type",d.name),e.setStatus({code:j.SpanStatusCode.ERROR,message:d.message})),a(d,o)}return d.digest}}let tW={catchall:"c","catchall-intercepted-(..)(..)":"ci(..)(..)","catchall-intercepted-(.)":"ci(.)","catchall-intercepted-(..)":"ci(..)","catchall-intercepted-(...)":"ci(...)","optional-catchall":"oc",dynamic:"d","dynamic-intercepted-(..)(..)":"di(..)(..)","dynamic-intercepted-(.)":"di(.)","dynamic-intercepted-(..)":"di(..)","dynamic-intercepted-(...)":"di(...)"};var tG=a("./dist/esm/shared/lib/router/utils/get-segment-param.js"),tJ=a("./dist/compiled/superstruct/index.cjs"),tK=a.n(tJ);let tY=tK().enums(["c","ci(..)(..)","ci(.)","ci(..)","ci(...)","oc","d","di(..)(..)","di(.)","di(..)","di(...)"]),tQ=tK().union([tK().string(),tK().tuple([tK().string(),tK().string(),tY,tK().nullable(tK().array(tK().string()))])]),tZ=tK().tuple([tQ,tK().record(tK().string(),tK().lazy(()=>tZ)),tK().optional(tK().nullable(tK().tuple([tK().string(),tK().string()]))),tK().optional(tK().nullable(tK().union([tK().literal("refetch"),tK().literal("inside-shared-layout"),tK().literal("metadata-only")]))),tK().optional(tK().number())]);var t0=((l={})[l.HasRuntimePrefetch=1]="HasRuntimePrefetch",l[l.SubtreeHasInstant=2]="SubtreeHasInstant",l[l.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",l[l.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",l[l.IsRootLayout=16]="IsRootLayout",l[l.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",l[l.InlinedIntoChild=64]="InlinedIntoChild",l[l.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",l[l.HeadOutlined=256]="HeadOutlined",l),t1=a("./dist/esm/shared/lib/segment.js");async function t2(e,t,r,n,a){let[i,s,{layout:o,loading:l,page:u}]=e,c=r(e),d=c?c.treeSegment:i,f=[(0,t1.HG)(d,n),{}],h=o?await o[0]():u?await u[0]():void 0,p=h?h.unstable_instant:void 0,m=0;null!==t&&(m|=t.hints),a||void 0===o||(a=!0,m|=t0.IsRootLayout),p&&"object"==typeof p&&(m|=t0.SubtreeHasInstant,"runtime"===p.prefetch&&(m|=t0.HasRuntimePrefetch)),l&&(m|=t0.SegmentHasLoadingBoundary);let g={};for(let e in s){var y;let i=(null==t||null==(y=t.slots)?void 0:y[e])??null,o=await t2(s[e],i,r,n,a);void 0!==o[4]&&(m|=o[4]&(t0.SubtreeHasInstant|t0.SubtreeHasLoadingBoundary),o[4]&(t0.SegmentHasLoadingBoundary|t0.SubtreeHasLoadingBoundary)&&(m|=t0.SubtreeHasLoadingBoundary)),g[e]=o}return f[1]=g,0!==m&&(f[4]=m),f}async function t3(e,t,r,n){return t2(e,t,r,n,!1)}async function t4(e,t,r){return t2(e,t,r,{},!1)}let t6=["accept-encoding","keepalive","keep-alive","content-encoding","transfer-encoding","connection","expect","content-length","set-cookie"];function t8(e){let t,r;e.headers instanceof Headers?(t=e.headers.get(z.ts)??null,r=e.headers.get("content-type")):(t=e.headers[z.ts]??null,r=e.headers["content-type"]??null);let n="POST"===e.method&&"application/x-www-form-urlencoded"===r,a=!!("POST"===e.method&&(null==r?void 0:r.startsWith("multipart/form-data"))),i=void 0!==t&&"string"==typeof t&&"POST"===e.method;return{actionId:t,isURLEncodedAction:n,isMultipartAction:a,isFetchAction:i,isPossibleServerAction:!!(i||n||a)}}let{env:t9,stdout:t5}=(null==(b=globalThis)?void 0:b.process)??{},t7=t9&&!t9.NO_COLOR&&(t9.FORCE_COLOR||(null==t5?void 0:t5.isTTY)&&!t9.CI&&"dumb"!==t9.TERM),re=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),s=i.indexOf(t);return~s?a+re(i,t,r,s):a+i},rt=(e,t,r=e)=>t7?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+re(a,t,r,i)+t:e+a+t}:String,rr=rt("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");rt("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),rt("\x1b[3m","\x1b[23m"),rt("\x1b[4m","\x1b[24m"),rt("\x1b[7m","\x1b[27m"),rt("\x1b[8m","\x1b[28m"),rt("\x1b[9m","\x1b[29m"),rt("\x1b[30m","\x1b[39m");let rn=rt("\x1b[31m","\x1b[39m"),ra=rt("\x1b[32m","\x1b[39m"),ri=rt("\x1b[33m","\x1b[39m");rt("\x1b[34m","\x1b[39m");let rs=rt("\x1b[35m","\x1b[39m");rt("\x1b[38;2;173;127;168m","\x1b[39m"),rt("\x1b[36m","\x1b[39m");let ro=rt("\x1b[37m","\x1b[39m");rt("\x1b[90m","\x1b[39m"),rt("\x1b[40m","\x1b[49m"),rt("\x1b[41m","\x1b[49m"),rt("\x1b[42m","\x1b[49m"),rt("\x1b[43m","\x1b[49m"),rt("\x1b[44m","\x1b[49m"),rt("\x1b[45m","\x1b[49m"),rt("\x1b[46m","\x1b[49m"),rt("\x1b[47m","\x1b[49m");var rl=a("./dist/esm/server/lib/lru-cache.js");let ru={wait:ro(rr("○")),error:rn(rr("⨯")),warn:ri(rr("⚠")),ready:"▲",info:ro(rr(" ")),event:ra(rr("✓")),trace:rs(rr("\xbb"))},rc={log:"log",warn:"warn",error:"error"};function rd(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in rc?rc[e]:"log",n=ru[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function rf(...e){rd("error",...e)}function rh(...e){rd("warn",...e)}let rp=new rl.q(1e4,e=>e.length);function rm(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}new rl.q(1e4,e=>e.length);var rg=a("./dist/esm/client/components/redirect-status-code.js"),ry=a("./dist/esm/server/revalidation-utils.js");let rv=(e,t)=>{rb(e,q(t[z._V],t[z.qm],t[z.B],t[z.kO]))},rb=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${z._A}=`));t.length>0?n.push(`${z._A}=${t}`):n.push(`${z._A}`),e.search=n.length?`?${n.join("&")}`:""};var rw=a("./dist/esm/shared/lib/action-revalidation-kind.js");function rS(e){let t={};for(let[r,n]of Object.entries(e))void 0!==n&&(t[r]=Array.isArray(n)?n.join(", "):`${n}`);return t}function r_(e,t){let r=e.headers,n=new eC.tm(tf.o.from(r)),a=t.getHeaders(),i=new eC.VO(function(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}(a)),s=((e,t)=>{for(let[r,n]of(e["content-length"]&&"0"===e["content-length"]&&delete e["content-length"],Object.entries(e)))(t.includes(r)||!(Array.isArray(n)||"string"==typeof n))&&delete e[r];return e})({...rS(r),...rS(a)},t6);return i.getAll().forEach(e=>{void 0===e.value?n.delete(e.name):n.set(e)}),s.cookie=n.toString(),delete s["transfer-encoding"],new Headers(s)}async function rE(e,t,r,n,a){var i,s,o;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let l=r_(e,t);l.set("x-action-forwarded","1");let u=(null==(i=P(e,"initProtocol"))?void 0:i.replace(/:+$/,""))||"https",c=process.env.__NEXT_PRIVATE_ORIGIN||`${u}://${r.value}`,d=new URL(`${c}${a}${n}`);try{let r;r=e.stream();let n=await fetch(d,{method:"POST",body:r,duplex:"half",headers:l,redirect:"manual",next:{internal:1}});if(null==(s=n.headers.get("content-type"))?void 0:s.startsWith(z.al)){for(let[e,r]of n.headers)t6.includes(e)||t.setHeader(e,r);return new tC(n.body)}null==(o=n.body)||o.cancel()}catch(e){console.error("failed to forward action response",e)}return eL.fromStatic("{}",ef.U2)}async function rR(e,t,r,n,a,i,s,o){t.setHeader("x-action-redirect",`${n};${a}`);let l=function(e,t,r,n){if(r.startsWith("/"))return new URL(`${e}${r}`,"http://n");if(r.startsWith(".")){let t=n||"/";t.endsWith("/")||(t+="/");let a=new URL(r,`http://n${t}`);return new URL(`${e}${a.pathname}${a.search}${a.hash}`,"http://n")}let a=new URL(r);return(null==t?void 0:t.value)!==a.host?null:a.pathname.startsWith(e)?a:null}(i,r,n,o);if(l){var u,c,d,f,h,p;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let n=r_(e,t);n.set(z.hY,"1");let a=(null==(u=P(e,"initProtocol"))?void 0:u.replace(/:+$/,""))||"https",i=process.env.__NEXT_PRIVATE_ORIGIN||`${a}://${r.value}`,o=new URL(`${i}${l.pathname}${l.search}`);s.pendingRevalidatedTags&&(n.set(ef.vS,s.pendingRevalidatedTags.map(e=>e.tag).join(",")),n.set(ef.c1,(null==(f=s.incrementalCache)||null==(d=f.prerenderManifest)||null==(c=d.preview)?void 0:c.previewModeId)||"")),n.delete(z.B),n.delete(z.ts);try{rv(o,{[z._V]:n.get(z._V)?"1":void 0,[z.qm]:n.get(z.qm)??void 0,[z.B]:n.get(z.B)??void 0,[z.kO]:n.get(z.kO)??void 0});let e=await fetch(o,{method:"GET",headers:n,next:{internal:1}});if(null==(h=e.headers.get("content-type"))?void 0:h.startsWith(z.al)){for(let[r,n]of e.headers)t6.includes(r)||t.setHeader(r,n);return new tC(e.body)}null==(p=e.body)||p.cancel()}catch(e){console.error("failed to get redirect response",e)}}return eL.EMPTY}function rk(e){return e.length>100?e.slice(0,100)+"...":e}async function rx({req:e,res:t,ComponentMod:r,generateFlight:n,workStore:i,requestStore:s,serverActions:o,ctx:l,metadata:u}){var c,d,f;let h,p,m,g,y,v,b=e.headers["content-type"],{page:w}=l.renderOpts,S=eY(),{actionId:_,isMultipartAction:E,isFetchAction:R,isURLEncodedAction:k,isPossibleServerAction:x}=t8(e),C=e=>(console.warn(e),t.setHeader(z.Ic,"1"),t.setHeader("content-type","text/plain"),t.statusCode=404,{type:"done",result:eL.fromStatic("Server action not found.","text/plain")});if(!x)return null;if(k)if(R)return{type:"not-found"};else return null;if(!(Object.keys((p=eK()).node).length>0)&&!(Object.keys(p.edge).length>0))return C(rT(_));if(i.isStaticGeneration)throw Object.defineProperty(Error("Invariant: server actions can't be handled during static rendering"),"__NEXT_ERROR_CODE",{value:"E359",enumerable:!1,configurable:!0});i.fetchCache="default-no-store";let T=e.headers.origin,A="string"==typeof T?"null"===T?"null":new URL(T).host:void 0,O=(g=(m=(c=e.headers)["x-forwarded-host"])&&Array.isArray(m)?m[0]:null==m||null==(f=m.split(","))||null==(d=f[0])?void 0:d.trim(),y=c.host,g?{type:"x-forwarded-host",value:g}:y?{type:"host",value:y}:void 0);if(A){if(!O||A!==O.value)if(((e,t=[])=>{let r=e.replace(/[A-Z]/g,e=>e.toLowerCase());return t.some(t=>!!t&&(t.replace(/[A-Z]/g,e=>e.toLowerCase())===r||function(e,t){let r=e.replace(/[A-Z]/g,e=>e.toLowerCase()),n=t.replace(/[A-Z]/g,e=>e.toLowerCase()),a=r.split("."),i=n.split(".");if(i.length<1||a.length0)return!1;return void 0!==t;default:if(t!==e)return!1}}return 0===a.length}(e,t)))})(A,null==o?void 0:o.allowedOrigins));else{O?console.error(`\`${O.type}\` header with value \`${rk(O.value)}\` does not match \`origin\` header with value \`${rk(A)}\` from a forwarded Server Actions request. Aborting the action.`):console.error("`x-forwarded-host` or `host` headers are not provided. One of these is needed to compare the `origin` header from a forwarded Server Actions request. Aborting the action.");let r=Object.defineProperty(Error("Invalid Server Actions request."),"__NEXT_ERROR_CODE",{value:"E80",enumerable:!1,configurable:!0});if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:!0,temporaryReferences:h})}}throw r}}else v="Missing `origin` header from a forwarded Server Actions request.";t.setHeader("Cache-Control","no-cache, no-store, max-age=0, must-revalidate");let{actionAsyncStorage:j}=r,$=!!e.headers["x-action-forwarded"];if(_){let r=function(e,t){var r,n;let a=null==(r=eK().node[e])?void 0:r.workers;if(a&&!a[eb(t,"app")?t:"app"+t])return n=Object.keys(a)[0],(0,eX.Yr)(eE(n,"app"))}(_,w);if(r)return{type:"done",result:await rE(e,t,O,r,l.renderOpts.basePath)}}try{return await j.run({isAction:!0},async()=>{let u,c=[];{let{createTemporaryReferenceSet:t,decodeReply:r,decodeReplyFromBusboy:n,decodeAction:l,decodeFormState:d}=a("(react-server)/./dist/esm/server/app-render/react-server.node.js");h=t();let{PassThrough:f,Readable:p,Transform:m}=a("node:stream"),{pipeline:g}=a("node:stream/promises"),y=P(e,"actionBody"),w=y?p.from(y):e.body,k="1 MB",x=(null==o?void 0:o.bodySizeLimit)??k,T=x!==k?a("./dist/compiled/bytes/index.js").parse(x):1048576,A=0,O=new m({transform(e,t,r){if((A+=Buffer.byteLength(e,t))>T){let{ApiError:e}=a("./dist/esm/server/api-utils/index.js");r(Object.defineProperty(new e(413,`Body exceeded ${x} limit. +To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));return}r(null,e)}});if(E)if(R){try{u=rC(_,S)}catch(e){return C(e)}let t=a("./dist/compiled/busboy/index.js")({defParamCharset:"utf8",headers:e.headers,limits:{fieldSize:T}}),r=new AbortController;try{[,c]=await Promise.all([g(w,O,t,{signal:r.signal}),n(t,S,{temporaryReferences:h})])}catch(e){throw r.abort(),e}}else{let e,t=new f,r=new Request("http://localhost",{method:"POST",headers:{"Content-Type":b},body:p.toWeb(t),duplex:"half"}),n=new AbortController;try{[,e]=await Promise.all([g(w,O,t,{signal:n.signal}),r.formData()])}catch(e){throw n.abort(),e}if(!1===function(e,t){let r=!1;for(let i of e.keys())if(i.startsWith(rA)){if(i.startsWith(rj)){var n,a;if(n=i,a=t,n.length!==rj.length+42||null==a[n.slice(rj.length)])return!1;r=!0}else if(i.startsWith(rO)){let n=rA+i.slice(rO.length)+":0",a=e.getAll(n);if(1!==a.length)return!1;let s=a[0];if("string"!=typeof s||function(e,t){if(!1===e.startsWith(r$))return!0;let r=r$.length,n=r+42,a=e.slice(r,n);return 42!==a.length||'"'!==e[n]||null==t[a]}(s,t))return!1;r=!0}}return r}(e,S))throw Object.defineProperty(Error(`Failed to find Server Action. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E975",enumerable:!1,configurable:!0});let a=await l(e,S);if("function"!=typeof a)return null;{v&&rh(v);let{actionResult:t}=await rP(a,[],i,s,$),r=await d(t,e,S);return{type:"done",result:void 0,formState:r}}}else{if(!R)return null;try{u=rC(_,S)}catch(e){return C(e)}let e=new f,t=[];await Promise.all([g(w,O,e),(async()=>{for await(let r of e)t.push(Buffer.from(r))})()]);let n=Buffer.concat(t).toString("utf-8");c=await r(n,S,{temporaryReferences:h})}}let d=(await r.__next_app__.require(u))[_],{type:f}=rm(_),{actionResult:p,skipPageRendering:m}=(performance.now(),await rP(d,c,i,s,$).finally(()=>{!function(e,{workStore:t,requestStore:r}){var n;let a=+(null!=(n=t.pendingRevalidatedTags)&&!!n.some(e=>void 0===e.profile)),i=+!!(0,th.YX)(r.mutableCookies).length;a||i?e.setHeader(z.ZL,JSON.stringify(rw.Du)):void 0!==t.pathWasRevalidated&&t.pathWasRevalidated!==rw.e9&&e.setHeader(z.ZL,JSON.stringify(t.pathWasRevalidated))}(t,{workStore:i,requestStore:s})}));if(!R)return null;{let t=!!m&&(0,ry.C)(i);return{type:"done",result:await n(e,l,s,{actionResult:Promise.resolve(p),skipPageRendering:m,temporaryReferences:h,waitUntil:!1===t?void 0:t})}}})}catch(r){if((0,tE.n)(r)){let n=tR(r),a=tk(r);if(t.statusCode=rg.Q.SeeOther,u.statusCode=rg.Q.SeeOther,R)return{type:"done",result:await rR(e,t,O,n,a,l.renderOpts.basePath,i,s.url.pathname)};return t.setHeader("Location",n),{type:"done",result:eL.EMPTY}}if((0,t_.RM)(r)){if(t.statusCode=(0,t_.jT)(r),u.statusCode=t.statusCode,R){let t=Promise.reject(r);try{await t}catch{}return{type:"done",result:await n(e,l,s,{skipPageRendering:!1,actionResult:t,temporaryReferences:h})}}return{type:"not-found"}}if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:void 0===i.pathWasRevalidated||i.pathWasRevalidated===rw.e9||$,temporaryReferences:h})}}throw r}}async function rP(e,t,r,n,a){n.phase="action";let i=a;if(t.length>1e3)throw Object.defineProperty(Error(`Server Action arguments list is too long (${t.length}). Maximum allowed is 1000.`),"__NEXT_ERROR_CODE",{value:"E986",enumerable:!1,configurable:!0});try{let a=await eq.workUnitAsyncStorage.run(n,()=>e.apply(null,t));return i||=void 0===r.pathWasRevalidated||r.pathWasRevalidated===rw.e9,{actionResult:a,skipPageRendering:i}}finally{!i&&(n.phase="render",n.cookies=th.Ck.seal((0,th.m0)(n.mutableCookies)),r.isDraftMode=n.draftMode.isEnabled,await (0,ry.C)(r))}}function rC(e,t){var r;if(!e)throw Object.defineProperty(new eM.z("Missing 'next-action' header."),"__NEXT_ERROR_CODE",{value:"E664",enumerable:!1,configurable:!0});let n=null==(r=t[e])?void 0:r.id;if(!n)throw rT(e);return n}function rT(e){return Object.defineProperty(Error(`Failed to find Server Action${e?` "${e}"`:""}. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E974",enumerable:!1,configurable:!0})}let rA="$ACTION_",rO="$ACTION_REF_",rj="$ACTION_ID_",r$='{"id":"',rI=O.createContext(null);function rD(e){let t=(0,O.useContext)(rI);t&&t(e)}function rN(){let e=[],t=t=>{e.push(t)};return{ServerInsertedHTMLProvider:({children:e})=>(0,T.jsx)(rI.Provider,{value:t,children:e}),renderServerInsertedHTML:()=>e.map((e,t)=>(0,T.jsx)(O.Fragment,{children:e()},"__next_server_inserted__"+t))}}function rM(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}var rL=a("./dist/compiled/react-dom-experimental/index.js");function rU(e,t,r,n,a,i,s){var o;let l,u=[],c={src:"",crossOrigin:r},d=((null==(o=e.rootMainFilesTree)?void 0:o[s])||e.rootMainFiles).map(rM);if(0===d.length)throw Object.defineProperty(Error("Invariant: missing bootstrap script. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E459",enumerable:!1,configurable:!0});if(n){c.src=`${t}/_next/`+d[0]+a,c.integrity=n[d[0]];for(let e=1;e{for(let e=0;e{for(let e=0;e(0,T.jsx)("script",{...e},e.src)),o=(n||[]).map(({key:e,value:t},r)=>(0,T.jsx)("meta",{name:e,content:t},`next-trace-data-${r}`));return async function(){let e=[];for(;i"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];function rB(e,t,r,n){let a=e.replace(/\.[^.]+$/,""),i=new Set,s=new Set,{entryCSSFiles:o,entryJSFiles:l}=eJ(),u=o[a],c=null==l?void 0:l[a];if(u)for(let e of u)t.has(e.path)||(n&&t.add(e.path),i.add(e));if(c)for(let e of c)r.has(e)||(n&&r.add(e),s.add(e));return{styles:[...i],scripts:[...s]}}function rz(e,t,r){if(!e||!t)return null;let n=t.replace(/\.[^.]+$/,""),a=new Set,i=!1,s=e.app[n];if(s)for(let e of(i=!0,s))r.has(e)||(a.add(e),r.add(e));return a.size?[...a].sort():i&&0===r.size?[]:null}function rq(e){let[,t,{loading:r}]=e;return!!r||Object.values(t).some(e=>rq(e))}function rX(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=rm(e.$$id);return"use-cache"===t}async function rV(e){let t,r,n,{layout:a,page:i,defaultPage:s}=e[2],o=void 0!==a,l=void 0!==i,u=void 0!==s&&e[0]===t1.WO;return o?(t=await a[0](),r="layout",n=a[1]):l?(t=await i[0](),r="page",n=i[1]):u&&(t=await s[0](),r="page",n=s[1]),{mod:t,modType:r,filePath:n}}function rW(e){return e.default||e}function rG(e){let[t,r,n,a]=e,{layout:i,template:s}=n,{page:o}=n;o=t===t1.WO?n.defaultPage:o;let l=i?.[1]||s?.[1]||o?.[1];return{page:o,segment:t,modules:n,conventionPath:l,parallelRoutes:r,staticSiblings:a}}function rJ(e,t){let r="";return e.sharedContext.clientAssetToken&&(r+=`?dpl=${e.sharedContext.clientAssetToken}`),r}function rK(e,t,r){let{componentMod:{createElement:n}}=t;return e.map((e,a)=>{let i="next",s=`${t.assetPrefix}/_next/${rM(e.path)}${rJ(t,!0)}`;return e.inlined&&!t.parsedRequestHeaders.isRSCRequest?n("style",{key:a,nonce:t.nonce,precedence:i,href:s},e.content):(null==r||r.push(()=>{t.componentMod.preloadStyle(s,t.renderOpts.crossOrigin,t.nonce)}),n("link",{key:a,rel:"stylesheet",href:s,precedence:i,crossOrigin:t.renderOpts.crossOrigin,nonce:t.nonce}))})}async function rY({filePath:e,getComponent:t,injectedCSS:r,injectedJS:n,ctx:a}){let{componentMod:{createElement:i}}=a,{styles:s,scripts:o}=rB(e,r,n),l=rK(s,a),u=o?o.map((e,t)=>i("script",{src:`${a.assetPrefix}/_next/${rM(e)}${rJ(a,!0)}`,async:!0,key:`script-${t}`})):null;return[rW(await t()),l,u]}a("./dist/esm/server/dynamic-rendering-utils.js");let rQ=()=>{};globalThis.FinalizationRegistry&&new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(rQ)});class rZ{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new rZ(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new I;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}var r0=((u={}).APP_PAGE="APP_PAGE",u.APP_ROUTE="APP_ROUTE",u.PAGES="PAGES",u.FETCH="FETCH",u.REDIRECT="REDIRECT",u.IMAGE="IMAGE",u),r1=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.IMAGE="IMAGE",c),r2=((d={}).PAGES="PAGES",d.PAGES_API="PAGES_API",d.APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.IMAGE="IMAGE",d);async function r3(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===r0.PAGES?{kind:r0.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r0.APP_PAGE?{kind:r0.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function r4(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===r0.PAGES?{kind:r0.PAGES,html:eL.fromStatic(e.value.html,ef.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r0.APP_PAGE?{kind:r0.APP_PAGE,html:eL.fromStatic(e.value.html,ef.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function r6(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let r8=r6(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),r9=r6(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),r5="__ttl_sentinel__";function r7(e,t){return`${e}\0${t??r5}`}class ne{constructor(e,t=r9,r=r8){this.getBatcher=rZ.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:D}),this.revalidateBatcher=rZ.create({schedulerFn:D}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new rl.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===r5?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=r7(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return r4(n.entry);let e=Date.now();if(n.expiresAt>e)return r4(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&function(...e){let t=e.join(" ");rp.has(t)||(rp.set(t,t),rh(...e))}(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:u,invocationID:c}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:u,invocationID:c},r);return l&&l(d),d});return r4(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case r2.PAGES:return r1.PAGES;case r2.APP_PAGE:return r1.APP_PAGE;case r2.IMAGE:return r1.IMAGE;case r2.APP_ROUTE:return r1.APP_ROUTE;case r2.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,null!==a&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=r7(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let u=this.handleRevalidate(e,t,r,n,a,i,s,l);return o&&o(u),u})}async handleRevalidate(e,t,r,n,a,i,s,o){try{let l=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let u=await r3({...l,isMiss:!i});if(u.cacheControl)if(this.minimal_mode){let t=r7(e,o);this.cache.set(t,{entry:u,expiresAt:Date.now()+this.ttl})}else await t.set(e,u.value,{cacheControl:u.cacheControl,isRoutePPREnabled:r,isFallback:n});return u}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}var nt=a("./dist/esm/server/app-render/staged-rendering.js");Symbol.for("next-patch"),t_.s8;var nr=a("./dist/esm/client/components/static-generation-bailout.js");function nn(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let na=new Set,ni={varyParams:na,status:"fulfilled",value:na,then(e){e&&e(na)},resolvers:[]};function ns(){let e=nn();return{head:e,rootParams:nn(),segments:new Set}}function no(){let e=function(){let e=eq.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}();return null!==e?e:null}async function nl(e){let t=e.rootParams.varyParams;for(let r of(nu(e.head,t),e.segments))nu(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function nu(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}let nc=/^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;function nd(e,t,r){let n=e[2],a=n[r]?n[r][1]:void 0;if(a){let e;return e=(function(e,t){let r=process.cwd(),n=e.replace(r,"").replace(/^[\\/]/,""),a=(t||"").replace(/^\[project\][\\/]?/,"").replace(e,"").replace(r,"").replace(/\\/g,"/").replace(/^\//,"");if(n&&a.startsWith(n)&&(a=a.slice(n.length).replace(/^\//,"")),a.includes("/")){let t=e.split(/[\\/]/).pop()||"";if(t){let e=t+"/",r=a.indexOf(e);r>=0&&(a=a.slice(r+e.length))}}return a})(t,a).replace(/^(src\/)?app\//,""),nc.test(e)&&(e=e.replace(nc,""),e=`__next_builtin__${e}`),e}}function nf(e){return(0,j.getTracer)().trace($.Fx.createComponentTree,{spanName:"build component tree"},()=>np(e,!0))}function nh(e,t){throw Object.defineProperty(Error(`The default export is not a React Component in "${"/"===e?"":e}/${t}"`),"__NEXT_ERROR_CODE",{value:"E45",enumerable:!1,configurable:!0})}async function np({loaderTree:e,parentParams:t,parentOptionalCatchAllParamName:r,parentRuntimePrefetchable:n,rootLayoutIncluded:i,injectedCSS:s,injectedJS:o,injectedFontPreloadTags:l,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:h},p){let m,{renderOpts:{nextConfigOutput:g,experimental:y,cacheComponents:v},workStore:b,componentMod:{createElement:w,Fragment:S,SegmentViewNode:_,HTTPAccessFallbackBoundary:E,LayoutRouter:R,RenderFromTemplateContext:k,ClientPageRoot:x,ClientSegmentRoot:P,createServerSearchParamsForServerPage:C,createPrerenderSearchParamsForClientPage:T,createServerParamsForServerSegment:A,createPrerenderParamsForClientSegment:O,serverHooks:{DynamicServerError:I},Postpone:D},pagePath:N,getDynamicParamFromSegment:M,isPrefetch:L,query:U}=u,{page:F,conventionPath:H,segment:B,modules:z,parallelRoutes:q}=rG(e),{layout:X,template:V,error:W,loading:G,"not-found":J,forbidden:K,unauthorized:Y}=z,Q=new Set(s),Z=new Set(o),ee=new Set(l),et=function({ctx:e,layoutOrPagePath:t,injectedCSS:r,injectedJS:n,injectedFontPreloadTags:a,preloadCallbacks:i}){let{componentMod:{createElement:s}}=e,{styles:o,scripts:l}=t?rB(t,r,n,!0):{styles:[],scripts:[]},u=t?rz(e.renderOpts.nextFontManifest,t,a):null;if(u)if(u.length)for(let t=0;t{e.componentMod.preloadFont(s,a,e.renderOpts.crossOrigin,e.nonce)})}else try{let t=new URL(e.assetPrefix);i.push(()=>{e.componentMod.preconnect(t.origin,"anonymous",e.nonce)})}catch(t){i.push(()=>{e.componentMod.preconnect("/","anonymous",e.nonce)})}let c=rK(o,e,i),d=l?l.map((t,r)=>s("script",{src:`${e.assetPrefix}/_next/${rM(t)}${rJ(e,!0)}`,async:!0,key:`script-${r}`,nonce:e.nonce})):[];return c.length||d.length?[...c,...d]:null}({preloadCallbacks:d,ctx:u,layoutOrPagePath:H,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee}),[er,en,ea]=V?await rY({ctx:u,filePath:V[1],getComponent:V[0],injectedCSS:Q,injectedJS:Z}):[S],[ei,es,eo]=W?await rY({ctx:u,filePath:W[1],getComponent:W[0],injectedCSS:Q,injectedJS:Z}):[],[el,eu,ec]=G?await rY({ctx:u,filePath:G[1],getComponent:G[0],injectedCSS:Q,injectedJS:Z}):[],ed=void 0!==X,eh=void 0!==F,{mod:ep,modType:em}=await (0,j.getTracer)().trace($.Fx.getLayoutOrPageModule,{hideSpan:!(ed||eh),spanName:"resolve segment modules",attributes:{"next.segment":B}},()=>rV(e)),eg=ed&&!i,ey=i||eg,[ev,eb]=J?await rY({ctx:u,filePath:J[1],getComponent:J[0],injectedCSS:Q,injectedJS:Z}):[],ew=ep?ep.unstable_instant:void 0,eS=!!ew&&"object"==typeof ew&&"runtime"===ew.prefetch||n,[e_,eE]=f&&K?await rY({ctx:u,filePath:K[1],getComponent:K[0],injectedCSS:Q,injectedJS:Z}):[],[eR,ek]=f&&Y?await rY({ctx:u,filePath:Y[1],getComponent:Y[0],injectedCSS:Q,injectedJS:Z}):[],ex=null==ep?void 0:ep.dynamic;if("export"===g)if(ex&&"auto"!==ex){if("force-dynamic"===ex)throw Object.defineProperty(new nr.f('Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports'),"__NEXT_ERROR_CODE",{value:"E527",enumerable:!1,configurable:!0})}else ex="error";if("string"==typeof ex)if("error"===ex)b.dynamicShouldError=!0;else if("force-dynamic"===ex){if(b.forceDynamic=!0,b.isStaticGeneration&&!y.isRoutePPREnabled){let e=Object.defineProperty(new I('Page with `dynamic = "force-dynamic"` won\'t be rendered statically.'),"__NEXT_ERROR_CODE",{value:"E585",enumerable:!1,configurable:!0});throw b.dynamicUsageDescription=e.message,b.dynamicUsageStack=e.stack,e}}else b.dynamicShouldError=!1,b.forceStatic="force-static"===ex;if("string"==typeof(null==ep?void 0:ep.fetchCache)&&(b.fetchCache=null==ep?void 0:ep.fetchCache),void 0!==(null==ep?void 0:ep.revalidate)&&function(e,t){try{if(!1===e)ef.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1);else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0})}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(null==ep?void 0:ep.revalidate,b.route),"number"==typeof(null==ep?void 0:ep.revalidate)){let e=ep.revalidate,t=eq.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.revalidate>e&&(t.revalidate=e)}if(!b.forceStatic&&b.isStaticGeneration&&0===e&&!y.isRoutePPREnabled){let e=`revalidate: 0 configured ${B}`;throw b.dynamicUsageDescription=e,Object.defineProperty(new I(e),"__NEXT_ERROR_CODE",{value:"E1005",enumerable:!1,configurable:!0})}}if(eh&&"number"==typeof(null==ep?void 0:ep.unstable_dynamicStaleTime)){let e=ep.unstable_dynamicStaleTime,t=eq.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.stale>e&&(t.stale=e);break;case"request":(void 0===t.stale||t.stale>e)&&(t.stale=e)}}let eP=b.isStaticGeneration,eC=eP&&!0===y.isRoutePPREnabled,eT=ep?rW(ep):void 0;if(eP){let{isValidElementType:e}=a("./dist/compiled/react-is/index.js");void 0===eT||e(eT)||nh(N,em??"page"),void 0===ei||e(ei)||nh(N,"error"),void 0===el||e(el)||nh(N,"loading"),void 0===ev||e(ev)||nh(N,"not-found"),void 0===e_||e(e_)||nh(N,"forbidden"),void 0===eR||e(eR)||nh(N,"unauthorized")}let eA=M(e),eO=t;eA&&null!==eA.value&&(eO={...t,[eA.param]:eA.value});let ej=(null==eA?void 0:eA.type)==="oc"&&null===eA.value?eA.param:r,e$=u.renderOpts.dir||"",[eI,eD]=await ny({ctx:u,conventionName:"not-found",Component:ev,styles:eb,tree:e}),[eN]=await ny({ctx:u,conventionName:"forbidden",Component:e_,styles:eE,tree:e}),[eM]=await ny({ctx:u,conventionName:"unauthorized",Component:eR,styles:ek,tree:e}),eL=await Promise.all(Object.keys(q).map(async t=>{let r="children"===t,n=q[t],a=r?eI:void 0,i=r?eN:void 0,s=r?eM:void 0,o=null;L&&(el||!rq(n))&&!y.isRoutePPREnabled||(o=await np({loaderTree:n,parentParams:eO,parentOptionalCatchAllParamName:ej,parentRuntimePrefetchable:eS,rootLayoutIncluded:ey,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:r?h:null},!1));let l=w(er,null,w(k,null));return nd(e,e$,"template"),nd(e,e$,"error"),nd(e,e$,"loading"),p&&nd(e,e$,"global-error"),[t,w(R,{parallelRouterKey:t,error:ei,errorStyles:es,errorScripts:eo,template:l,templateStyles:en,templateScripts:ea,notFound:a,forbidden:i,unauthorized:s,...!1}),o]})),eU={},eF={};for(let e of eL){let[t,r,n]=e;eU[t]=r,eF[t]=n}let eH=el?w(el,{key:"l"}):null,eB=(nd(e,e$,"loading"),eH?[eH,eu,ec]:null);if(!eT)return nv(u,w(S,{key:"c"},et,eU.children),eF,eB,eC,eS,ni);if(b.isStaticGeneration&&b.forceDynamic&&y.isRoutePPREnabled)return nv(u,w(S,{key:"c"},w(D,{reason:'dynamic = "force-dynamic" was used',route:b.route}),et),eF,eB,!0,eS,ni);let ez=(null==(m=(null==ep?void 0:ep.default)||ep)?void 0:m.$$typeof)===Symbol.for("react.client.reference"),eX=ez&&v?ni:function(){let e=eq.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=nn();return t.segments.add(e),e}}}return null}();if(eh){let t;if(ez)if(v)t=w(x,{Component:eT,serverProvidedParams:null});else if(eP){let e=O(eO),r=T();t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:[r,e]}})}else t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:null}});else{let e=A(eO,ej,eX,eS),r=C(U,eX,eS);t=rX(eT)?w(eT,{params:e,searchParams:r,$$isPage:!0}):w(eT,{params:e,searchParams:r})}t1.WO;return nv(u,w(S,{key:"c"},(nd(e,e$,"page")??nd(e,e$,"defaultPage"),t),et,h?w(h,null):null),eF,eB,eC,eS,eX)}{let t,r=eg&&"children"in q&&Object.keys(q).length>1;if(ez){let e;if(v)e=w(P,{Component:eT,slots:eU,serverProvidedParams:null});else if(eP){let t=O(eO);e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:[t]}})}else e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:null}});if(r){let r,n,a;r=nm({ctx:u,ErrorBoundaryComponent:ev,errorElement:eI,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),n=nm({ctx:u,ErrorBoundaryComponent:e_,errorElement:eN,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),a=nm({ctx:u,ErrorBoundaryComponent:eR,errorElement:eM,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),t=r||n||a?w(E,{key:"c",notFound:r,forbidden:n,unauthorized:a},et,e):w(S,{key:"c"},et,e)}else t=w(S,{key:"c"},et,e)}else{let e,n=A(eO,ej,eX,eS);e=rX(eT)?w(eT,{...eU,params:n,$$isLayout:!0},eU.children):w(eT,{...eU,params:n},eU.children),t=r?w(E,{key:"c",notFound:eI?w(S,null,et,w(eT,{params:n},eb,eI)):void 0},et,e):w(S,{key:"c"},et,e)}return nd(e,e$,"layout"),nv(u,t,eF,eB,eC,eS,eX)}}function nm({ctx:e,ErrorBoundaryComponent:t,errorElement:r,ClientSegmentRoot:n,layerAssets:a,SegmentComponent:i,currentParams:s}){let{componentMod:{createElement:o,Fragment:l}}=e;return t?o(l,null,a,o(n,{Component:i,slots:{children:r},params:s})):null}function ng(e,t){return function e(t,r,n){let{modules:{layout:a},parallelRoutes:i}=rG(r),s=n(r),o=t;return(s&&null!==s.value&&(o={...t,[s.param]:s.value}),void 0!==a)?o:i.children?e(o,i.children,n):o}({},e,t)}async function ny({ctx:e,conventionName:t,Component:r,styles:n,tree:a}){let{componentMod:{createElement:i,Fragment:s}}=e,o=e.renderOpts.dir||"",{SegmentViewNode:l}=e.componentMod;return[r?i(s,null,i(r,null),n):void 0,nd(a,o,t)]}function nv(e,t,r,n,a,i,s){let o=e.componentMod.createElement;if(!i){let e=eq.workUnitAsyncStorage.getStore();if(e){let r;switch(e.type){case"request":case"prerender-runtime":if(r=e.stagedRendering){let e=t;t=r.waitForStage(nt.D.Static).then(()=>e)}}}}return null!==n&&(t=o(e.componentMod.LoadingBoundaryProvider,{loading:n,children:t})),[t,r,null,a,s||null]}async function nb({loaderTreeToFilter:e,parentParams:t,flightRouterState:r,parentIsInsideSharedLayout:n,rscHead:a,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,ctx:u,preloadCallbacks:c,MetadataOutlet:d,hintTree:f}){let{renderOpts:{nextFontManifest:h,experimental:p},query:m,isPrefetch:g,getDynamicParamFromSegment:y,parsedRequestHeaders:v}=u,[b,w,S]=e,_=Object.keys(w),{layout:E}=S,R=void 0!==E&&!l,k=l||R,x=y(e),P=x&&null!==x.value?{...t,[x.param]:x.value}:t,C=(0,t1.HG)(x?x.treeSegment:b,m),T=!r||!rH(C,r[0])||"refetch"===r[3],A=T||n||"inside-shared-layout"===r[3];if(A&&!p.isRoutePPREnabled&&(v.isRouteTreePrefetchRequest||g&&!S.loading&&!rq(e)))return[[r&&nw(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t4(e,f,y):await t3(e,f,y,m),null,[null,null],!0]];if(r&&"metadata-only"===r[3])return[[r&&nw(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t4(e,f,y):await t3(e,f,y,m),null,a,!1]];if(T){let t=r&&nw(C,r[0])?r[0]:C,n=await t3(e,f,y,m),h=await nf({ctx:u,loaderTree:e,parentParams:P,parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,preloadCallbacks:c,authInterrupts:p.authInterrupts,MetadataOutlet:d});return[[t,n,h,a,!1]]}let O=null==E?void 0:E[1],j=new Set(i),$=new Set(s),I=new Set(o);O&&(rB(O,j,$,!0),rz(h,O,I));let D=[];for(let e of _){var N;let t=w[e];for(let n of(await nb({ctx:u,loaderTreeToFilter:t,parentParams:P,flightRouterState:r&&r[1][e],parentIsInsideSharedLayout:A,rscHead:a,injectedCSS:j,injectedJS:$,injectedFontPreloadTags:I,rootLayoutIncluded:k,preloadCallbacks:c,MetadataOutlet:d,hintTree:(null==f||null==(N=f.slots)?void 0:N[e])??null})))D.push([C,e,...n])}return D}let nw=(e,t)=>{var r;return!Array.isArray(e)&&!!Array.isArray(t)&&(null==(r=(0,tG.Hp)(e))?void 0:r.paramName)===t[0]};var nS=a("./dist/esm/shared/lib/router/utils/interception-routes.js");function n_(e){if(""===e)return null;let t=nS.VB.find(t=>e.startsWith(t)),r=(0,tG.Hp)(e);return r?{type:"dynamic",name:e,param:r,interceptionMarker:t}:e.startsWith("(")&&e.endsWith(")")?{type:"route-group",name:e,interceptionMarker:t}:e.startsWith("@")?{type:"parallel-route",name:e,interceptionMarker:t}:{type:"static",name:e,interceptionMarker:t}}function nE(e,t){let r,n,a,i=e.split("/").filter(Boolean),s=[];for(let o of i){let i=n_(o);if(i){if(t&&("route-group"===i.type||"parallel-route"===i.type))throw Object.defineProperty(new eM.z(`${e} is being parsed as a normalized route, but it has a route group or parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E923",enumerable:!1,configurable:!0});if(s.push(i),i.interceptionMarker){let s=e.split(i.interceptionMarker);if(2!==s.length)throw Object.defineProperty(Error(`Invalid interception route: ${e}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});n=t?nE(s[0],!0):nE(s[0],!1),a=t?nE(s[1],!0):nE(s[1],!1),r=i.interceptionMarker}}}let o=s.filter(e=>"dynamic"===e.type);return{normalized:t,pathname:e,segments:s,dynamicSegments:o,interceptionMarker:r,interceptingRoute:n,interceptedRoute:a}}function nR(e){switch(e){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function nk(e,t,r,n,a){switch(t){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let i=[];for(let e=r;e0)return i;if("optional-catchall"===t)return;throw Object.defineProperty(new eM.z(`Unexpected empty path segments match for a route "${n.pathname}" with param "${e}" of type "${t}"`),"__NEXT_ERROR_CODE",{value:"E931",enumerable:!1,configurable:!0});case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(r0;){let{tree:e,depth:t}=i.pop(),{segment:r,parallelRoutes:o}=rG(e),l=n_(r);if(l?.type==="dynamic"&&!a.hasOwnProperty(l.param.paramName)&&!n?.has(l.param.paramName)){let{paramName:e,paramType:r}=l.param,n=nk(e,r,t,s,a);if(void 0!==n)a[e]=n;else if("optional-catchall"!==r)throw Object.defineProperty(new eM.z(`Could not resolve param value for segment: ${e}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let u=t;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))i.push({tree:e,depth:u})}return a}function nP(e,t,r,n,a){let i=function(e,t,r){let n=e[t];if(r?.has(t)){let[e]=r.get(t);n=e}else Array.isArray(n)?n=n.map(e=>encodeURIComponent(e)):"string"==typeof n&&(n=encodeURIComponent(n));return n}(e,t,n);if(!i||0===i.length){if("oc"===r)return{param:t,value:null,type:r,treeSegment:[t,"",r,a]};throw Object.defineProperty(new eM.z(`Missing value for segment key: "${t}" with dynamic param type: ${r}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let s=Array.isArray(i)?i.join("/"):i;return{param:t,value:i,treeSegment:[t,s,r,a],type:r}}let nC=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function nT(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}async function nA(e,t){return Promise.all(Array.from(e).map(([e,r])=>r.then(async({entry:r,hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i})=>{if(t&&(0===r.revalidate||r.expire<300))return null;let[s,o]=r.value.tee();r.value=o;let l="";for await(let e of s)l+=function(e){let t=new Uint8Array(e),r=t.byteLength;if(r<65535)return String.fromCharCode.apply(null,t);let n="";for(let e=0;enull)))}async function nO(e,t){{if(0===e.fetch.size&&0===e.cache.size)return"null";let r={store:{fetch:Object.fromEntries(Array.from(e.fetch.entries())),cache:Object.fromEntries((await nA(e.cache.entries(),t)).filter(e=>null!==e)),encryptedBoundArgs:Object.fromEntries(Array.from(e.encryptedBoundArgs.entries()))}},{deflateSync:n}=a("node:zlib");return n(JSON.stringify(r)).toString("base64")}}function nj(e){return e?{cache:new Map(e.cache),fetch:new Map(e.fetch),encryptedBoundArgs:new Map(e.encryptedBoundArgs),decryptedBoundArgs:new Map(e.decryptedBoundArgs)}:{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map}}function n$(e,t){{let r;if("string"!=typeof e)return e;if("null"===e)return{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map};let{inflateSync:n}=a("node:zlib"),i=t?5*t:524288e3;try{r=JSON.parse(n(Buffer.from(e,"base64"),{maxOutputLength:i}).toString("utf-8"))}catch(e){if(e instanceof RangeError&&"ERR_BUFFER_TOO_LARGE"===e.code)throw Object.defineProperty(Error(`Decompressed resume data cache exceeded ${i} byte limit`),"__NEXT_ERROR_CODE",{value:"E976",enumerable:!1,configurable:!0});throw e}return{cache:function(e){let t=new Map;for(let[r,{entry:n,hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s}]of e)t.set(r,Promise.resolve({entry:{value:new ReadableStream({start(e){e.enqueue(function(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n(r(function(){let e=document.getElementsByName(n1)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(n1);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(n1)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[n,a]=(0,O.useState)(""),i=(0,O.useRef)(void 0);return(0,O.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&a(e),i.current=e},[e]),t?(0,rL.createPortal)(n,t):null}t_.s8,t_.s8,a("./dist/esm/client/components/unstable-rethrow.server.js").X,a("./dist/esm/server/app-render/dynamic-rendering.js").Ip,a("./dist/esm/server/app-render/dynamic-rendering.js").FD;let{instrumentParamsForClientValidation:n3,instrumentSearchParamsForClientValidation:n4,expectCompleteParamsInClientValidation:n6}=process.env.__NEXT_CACHE_COMPONENTS?a("./dist/esm/server/app-render/instant-validation/instant-samples-client.js"):{};function n8(){let e=(0,O.useContext)(nU);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function n9({redirect:e,reset:t,redirectType:r}){let n=n8();return(0,O.useEffect)(()=>{O.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class n5 extends O.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,tE.n)(e)){let t=tR(e),r=tk(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,T.jsx)(n9,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function n7({children:e}){let t=n8();return(0,T.jsx)(n5,{router:t,children:e})}function ae(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(t1.OG)?t1.OG:e}let at={then:()=>{}},ar=process.env.__NEXT_ROUTER_BASEPATH||"",an=process.env.__NEXT_ROUTER_BASEPATH||"",aa=e=>"/"===e[0]?e.slice(1):e,ai=e=>"string"==typeof e?"children"===e?"":e:e[1];function as(e){return e.reduce((e,t)=>""===(t=aa(t))||(0,t1.V)(t)?e:`${e}/${t}`,"")||"/"}function ao(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===t1.WO||nS.VB.some(e=>t.startsWith(e)))return;if(t.startsWith(t1.OG))return"";let r=[ai(t)],n=e[1]??{},a=n.children?ao(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=ao(t);void 0!==n&&r.push(n)}return as(r)}var al=a("./dist/compiled/react-server-dom-turbopack-experimental/client.node.js");async function au(e,t){return new Promise((r,n)=>{(0,O.startTransition)(()=>{(0,nZ.Dd)({type:nq.s8,actionId:e,actionArgs:t,resolve:r,reject:n})})})}process.env.__NEXT_ROUTER_BASEPATH;function ac(e){let[t,r,n,a]=e.slice(-4),i=e.slice(0,-4);return{pathToSegment:i.slice(0,-1),segmentPath:i,segment:i[i.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function ad(e){return"string"==typeof e?e:e.map(e=>ac(e))}function af(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,i,s]=t,o=function(e){if("string"==typeof e)return e.startsWith(t1.OG+"?")?t1.OG:e;let[t,r,n]=e;return[t,r,n,null]}(r),l={};for(let[t,r]of Object.entries(n))l[t]=e(r);let u=[o,l];return i&&(u[2]=null,u[3]=i),void 0!==s&&(u[4]=s),u}(e)))}let ah="/_head";function ap(e){if("string"==typeof e)return e.startsWith(t1.OG)?t1.OG:"/_not-found"===e?"_not-found":ay(e);let t=e[0];return"$"+e[2]+"$"+ay(t)}function am(e,t,r){return e+"/"+("children"===t?r:`@${ay(t)}/${r}`)}let ag=/^[a-zA-Z0-9\-_@]+$/;function ay(e){return ag.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function av(e){let t=e.headers.get(z.Wc);return null!==t?""===t?"":"?"+t:aw(new URL(e.url)).search}function ab(e){return!(""===e||e.startsWith(t1.OG)||"("===e[0]&&e.endsWith(")"))&&e!==t1.WO&&"/_not-found"!==e}function aw(e){let t=new URL(e);if(t.searchParams.delete(z._A),"export"===process.env.__NEXT_CONFIG_OUTPUT&&t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}e=process.env.NEXT_DEPLOYMENT_ID||void 0;function aS(e){return(e.then(a_),"fulfilled"!==e.status)?null:e.value}let a_=()=>{};function aE(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}var aR=((p={})[p.Intent=2]="Intent",p[p.Default=1]="Default",p[p.Background=0]="Background",p),ak=((m={})[m.LoadingBoundary=0]="LoadingBoundary",m[m.PPR=1]="PPR",m[m.PPRRuntime=2]="PPRRuntime",m[m.Full=3]="Full",m);let ax={},aP={};function aC(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function aT(e,t,r,n,a){let i=function e(t,r,n,a,i,s){let o,l;if(null!==a)o=a.value,l=a.parent;else if(i&&s!==aP)o=aP,l=null;else return null===n.value?n:aA(t,r,n.value)?(a$(n),null):n;let u=n.map;if(null!==u){let n=u.get(o);if(void 0!==n){let a=e(t,r,n,l,i,o);if(null!==a)return a}let a=u.get(ax);if(void 0!==a)return e(t,r,a,l,i,o)}return null}(e,t,r,n,a,0);return null===i||null===i.value?null:(aM(i),i.value)}function aA(e,t,r){return r.staleAt<=e||r.versionPromise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),aH=[],aB=0,az=0,aq=!1,aX=null;function aV(e,t,r,n,a,i){var s;let o={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:iD,segmentCacheVersion:0,priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:az++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return process.env.__NEXT_EXPOSE_TESTING_API&&(o._onComplete=i),(s=o).priority===aR.Intent&&s!==aX&&(null!==aX&&aX.priority!==aR.Background&&(aX.priority=aR.Default,ie(aH,aX)),aX=s),a9(aH,o),aG(),o}function aW(e,t,r){return e.routeCacheVersion!==iD||0!==e.segmentCacheVersion||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function aG(){aq||(aq=!0,aF(aQ))}function aJ(e){return e.priority===aR.Intent?aB<12:aB<4}function aK(e){return aB++,e.then(e=>null===e?(aY(),null):(e.closed.then(aY),e.value))}function aY(){aB--,aG()}function aQ(){aq=!1;let e=Date.now(),t=a5(aH);for(;null!==t&&aJ(t);){t.routeCacheVersion=iD,t.segmentCacheVersion=0;let r=function(e,t){let r=t.key,n=iF(e,t,r),a=function(e,t,r){switch(r.status){case iT.Empty:aK(i3(r,t.key)),r.staleAt=e+6e4,r.status=iT.Pending;case iT.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case iT.Rejected:break;case iT.Fulfilled:{let s;if(0!==t.phase)return 2;if(!aJ(t))return 0;let o=r.tree;switch(s=o.prefetchHints&t0.SubtreeHasInstant?ak.PPR:t.fetchStrategy===ak.PPR?r.supportsPerSegmentPrefetching?ak.PPR:ak.LoadingBoundary:t.fetchStrategy){case ak.PPR:{var n,a,i;if(a2(n=e,a=t,i=r,iB(n,ak.PPR,i.metadata),a.key,i.metadata),0===function e(t,r,n,a,i){let s=iB(t,r.fetchStrategy,i);a2(t,r,n,s,r.key,i);let o=a[1],l=i.slots;if(null!==l)for(let a in l){if(!aJ(r))return 0;let i=l[a],s=i.segment,u=o[a],c=u?.[0];if(0===(void 0!==c&&a6(n,s,c)?e(t,r,n,u,i):function e(t,r,n,a){if(a.prefetchHints&t0.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let i=iB(t,r.fetchStrategy,a);if(a2(t,r,n,i,r.key,a),null!==a.slots){if(!aJ(r))return 0;for(let i in a.slots)if(0===e(t,r,n,a.slots[i]))return 0}return 2}(t,r,n,i)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,o))return 0;let s=t.spawnedRuntimePrefetches;if(null!==s){let n=new Map;a0(e,t,r,n,ak.PPRRuntime);let a=function e(t,r,n,a,i,s){if(i.has(a.requestKey))return a1(t,r,n,a,!1,s,ak.PPRRuntime);let o={},l=a.slots;if(null!==l)for(let a in l){let u=l[a];o[a]=e(t,r,n,u,i,s)}return[a.segment,o,null,null]}(e,t,r,o,s,n);n.size>0&&aK(i8(t,r,ak.PPRRuntime,a,n))}return 2}case ak.Full:case ak.PPRRuntime:case ak.LoadingBoundary:{let n=new Map;a0(e,t,r,n,s);let a=function e(t,r,n,a,i,s,o){let l=a[1],u=i.slots,c={};if(null!==u)for(let a in u){let i=u[a],d=i.segment,f=l[a],h=f?.[0];if(void 0!==h&&a6(n,d,h)){let l=e(t,r,n,f,i,s,o);c[a]=l}else switch(o){case ak.LoadingBoundary:{let e=(i.prefetchHints&(t0.SegmentHasLoadingBoundary|t0.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,i,s){let o=null===i?"inside-shared-layout":null,l=iB(t,r.fetchStrategy,a);switch(l.status){case iT.Empty:s.set(a.requestKey,iV(l,ak.LoadingBoundary)),"refetch"!==i&&(o=i="refetch");break;case iT.Fulfilled:if((a.prefetchHints&t0.SegmentHasLoadingBoundary)!=0)return i2(a);case iT.Pending:case iT.Rejected:}let u={};if(null!==a.slots)for(let o in a.slots){let l=a.slots[o];u[o]=e(t,r,n,l,i,s)}return[a.segment,u,null,o]}(t,r,n,i,null,s):i2(i);c[a]=e;break}case ak.PPRRuntime:{let e=a1(t,r,n,i,!1,s,o);c[a]=e;break}case ak.Full:{let e=a1(t,r,n,i,!1,s,o);c[a]=e}}}return[i.segment,c,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,o,n,s);return n.size>0&&aK(i8(t,r,s,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=aE(new URL(r.pathname,location.origin).href,r.nextUrl),a=iF(e,t,n);switch(a.status){case iT.Empty:aZ(t)&&(a.status=iT.Pending,aK(i3(a,n)));case iT.Pending:case iT.Fulfilled:case iT.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:a7(aH),t=a5(aH);continue;case 2:if(1===t.phase)t.phase=0,ie(aH,t);else if(n)t.priority=aR.Background,ie(aH,t);else{if(process.env.__NEXT_EXPOSE_TESTING_API){let e=t._onComplete;t._onComplete=void 0,e?.()}a7(aH)}t=a5(aH);continue}}null===t&&0===aB&&function(){if(!(aN<=0x3200000))for(;aN>0x2d00000&&null!==aD;){let e=aD.prev;null!==e&&a$(e)}}()}function aZ(e){return e.priority===aR.Background||(e.hasBackgroundWork=!0,!1)}function a0(e,t,r,n,a){a1(e,t,r,r.metadata,!1,n,a===ak.LoadingBoundary?ak.Full:a)}function a1(e,t,r,n,a,i,s){var o,l;let u=iB(e,s,n),c=null;switch(u.status){case iT.Empty:if(s===ak.Full&&null!==function(e,t,r){r.varyPath;let n=null;if(null!==n){let r=n.navigatedAt+sV;return e>r?null:iY(iV(t,ak.Full),n.rsc,r,!1)}return null}(e,u,n))break;c=iV(u,s);break;case iT.Fulfilled:if(u.isPartial&&(o=u.fetchStrategy,on)return null;let a=iY(iV(iX(e),ak.Full),r.rsc,n,!1),i=iq(e,ic(ak.Full,t),a);if(null!==i&&2===i.status)return i}return null}(e,n))break;c=a4(e,n,s)}break;case iT.Pending:case iT.Rejected:l=u.fetchStrategy,l0&&aK(i6(r,a,r.tree,i));break}aK(i4(r,iV(n,ak.PPR),a,i));break;case iT.Pending:switch(n.fetchStrategy){case ak.PPR:case ak.PPRRuntime:case ak.Full:break;case ak.LoadingBoundary:aZ(t)&&a3(e,r,a,i);break;default:n.fetchStrategy}break;case iT.Rejected:switch(n.fetchStrategy){case ak.PPR:case ak.PPRRuntime:case ak.Full:break;case ak.LoadingBoundary:a3(e,r,a,i);break;default:n.fetchStrategy}case iT.Fulfilled:}}function a3(e,t,r,n){let a=iz(e,ak.PPR,n);switch(a.status){case iT.Empty:aK(i4(t,iV(a,ak.PPR),r,n));case iT.Pending:case iT.Fulfilled:case iT.Rejected:}}function a4(e,t,r){var n,a;let i=iz(e,r,t);if(i.status===iT.Empty)return iV(i,r);if(n=i.fetchStrategy,n>>1],t)>0?it(e,t,r):ir(e,t,r))}function it(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(a8(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function ir(e,t,r){let n=r,a=e.length,i=a>>>1;for(;na8(i,t))sa8(o,i)?(e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s):(e[n]=i,i._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(sa8(o,t)))return;e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s}}}function ia(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function ii(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:ax,parent:null}}}}function is(e,t,r){return{id:r,value:t,parent:e}}function io(e,t){return{id:null,value:e,parent:t}}function il(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function iu(e,t,r){return{id:null,value:e+ah,parent:{id:"?",value:t,parent:r}}}function ic(e,t){let r=t.varyPath;if(t.isPage&&e!==ak.Full&&e!==ak.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:ax,parent:e}}}return r}function id(e){let t=e.parent.value;return"string"==typeof t?t:null}function ih(e,t){return{id:e.id,value:null===e.id||t.has(e.id)?e.value:ax,parent:null===e.parent?null:ih(e.parent,t)}}let ip=null,im={pending:!0},ig={pending:!1},iy="function"==typeof WeakMap?new WeakMap:new Map,iv=new Set;function ib(e,t){for(let r of iv){let n=r.prefetchTask;if(null!==n&&!aW(n,e,t))continue;null!==n&&function(e){if(e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,ir(e,n,r))}}(aH,e),process.env.__NEXT_EXPOSE_TESTING_API){let t=e._onComplete;e._onComplete=void 0,t?.()}}(n);let a=aE(r.prefetchHref,e);r.prefetchTask=aV(a,t,r.fetchStrategy,aR.Default,null)}}"function"==typeof IntersectionObserver&&new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;!function(e,t){let r=iy.get(e);void 0!==r&&(r.isVisible=t,t?iv.add(r):iv.delete(r),aR.Default)}(t.target,e)}},{rootMargin:"200px"});var iw=a("./dist/esm/shared/lib/promise-with-resolvers.js");function iS(e,t){return -1!==t?e+1e3*t:e+sX}function i_(e,t,r,n,a,i,s){}function iE(e,t,r,n,a){}aC();function iR(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let ik=iR();function ix(e,t,r,n,a,i,s,o,l,u){let c=t.split("/").filter(e=>""!==e),d=c.length>0?c[0]:null,f=c.length>0?c.slice(1):[];if(null!==n){let c=iJ(e,n,a,i,s,o,l);return u&&(c.hasDynamicRewrite=!0),iP(ik,a,d,f,c,e,t,r,a,i,s,o,l,u),c}return iP(ik,a,d,f,null,e,t,r,a,i,s,o,l,u)}function iP(e,t,r,n,a,i,s,o,l,u,c,d,f,h){let p,m,g=t.segment,y=null,v=null,b=null;"string"==typeof g?p=ab(g):(y=g[0],v=g[2],b=g[3],p=!0);let w=e,S=r,_=n;if(p){if(null===y&&r!==g)return null!==a?a:iK(i,s,o,l,u,c,d,f);if(null!==y&&null!==v){if(w=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=iR();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,y,v),null!==b)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),b))e.staticChildren.has(t)||e.staticChildren.set(t,iR())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=iR(),e.staticChildren.set(r,t)),w=t}S=n.length>0?n[0]:null,_=n.length>0?n.slice(1):[]}let E=t.slots,R=null;if(null!==E){for(let e in E){let t=E[e];null===t.refreshState&&(R=iP(w,t,S,_,a,i,s,o,l,u,c,d,f,h))}return null!==R?R:null!==a?a:iK(i,s,o,l,u,c,d,f)}return null!==w.pattern?(h&&(w.pattern.hasDynamicRewrite=!0),w.pattern):(m=null!==a?a:iK(i,s,o,l,u,c,d,f),h&&(m.hasDynamicRewrite=!0),w.pattern=m,m)}function iC(e){return 1e3*Math.max(e,30)}var iT=((g={})[g.Empty=0]="Empty",g[g.Pending=1]="Pending",g[g.Fulfilled=2]="Fulfilled",g[g.Rejected=3]="Rejected",g);let iA="export"===process.env.__NEXT_CONFIG_OUTPUT,iO=["",{},null,"metadata-only"],ij=aC(),i$=aC(),iI=null,iD=0;function iN(e,t){let r=ia(t.pathname,t.search,t.nextUrl),n=aT(e,iD,ij,r,!1);return null!==n?n:process.env.__NEXT_OPTIMISTIC_ROUTING?function(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let i=n=400)return iQ(e,Date.now()+1e4),null;l=r.redirected?new URL(r.url):u,t=await se(sr(l,i),s)}else t=await se(u,s),l=null!==t&&t.redirected?new URL(t.url):u;if(!t||!t.ok||204===t.status||!t.body)return iQ(e,Date.now()+1e4),null;let c=nX(l),d=t.headers.get("vary"),f=null!==d&&d.includes(z.kO),h=(0,iw.b)(),p="2"===t.headers.get(z.jc)||iA;if(p){var o;let n,{stream:i,size:l}=await st(t.body);h.resolve(),aI(e,l);let u=await sy(i,s,{allowPartialStream:!0});if((t.headers.get(ef.eQ)??u.buildId)!=="")return iQ(e,Date.now()+1e4),null;let d=(o=t).headers.get(z.j9)??aw(new URL(o.url)).pathname,m=av(t),g={metadataVaryPath:null},y=(n=d.split("/").filter(e=>""!==e),function e(t,r,n,a,i,s,o,l){let u,c,d=null,f=t.slots;if(null!==f)for(let t in u=!1,c=io(a,n),d={},f){let r,u,c,h=f[t],p=h.name,m=h.param;if(null!==m){let e=function(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}(m.type,i,s),t=null!==m.key?m.key:"string"==typeof e?(0,t1.HG)(e,Object.fromEntries(new URLSearchParams(""))):null===e?"":e.join("/");c=is(n,t,p),u=[p,t,m.type,m.siblings],r=!0}else c=n,u=p,r=ab(p);let g=r?s+1:s,y=am(a,t,ap(u));d[t]=e(h,u,c,y,i,g,o,l)}else a.endsWith(t1.OG)?(u=!0,c=il(a,o,n),null===l.metadataVaryPath&&(l.metadataVaryPath=iu(a,o,n))):(u=!1,c=io(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:c,isPage:u,slots:d,prefetchHints:t.prefetchHints}}(u.tree,"",null,"",n,0,m,g)),v=g.metadataVaryPath;if(null===v)return iQ(e,Date.now()+1e4),null;ix(Date.now(),r,a,e,y,v,f,c,p,!1)}else{let{stream:n,size:i}=await st(t.body);h.resolve(),aI(e,i);let o=await sy(n,s,{allowPartialStream:!0});if((t.headers.get(ef.eQ)??o.b)!=="")return iQ(e,Date.now()+1e4),null;let l=o.h,u=null!==l?aS(l):null;!function(e,t,r,n,a,i,s,o,l,u,c){let d=av(r),f=ad(n.f);if("string"==typeof f||1!==f.length)return iQ(a,e+1e4);let h=f[0];if(!h.isRootRender)return iQ(a,e+1e4);let p=h.tree,m="1"===r.headers.get(z.jc),g={metadataVaryPath:null},y=i0(p,d,g),v=g.metadataVaryPath;if(null===v)return iQ(a,e+1e4);ix(e,u,c,a,y,v,i,s,o,!1);let b=sz(e,p,f,d,-1);i5(e,t,f,r.headers.get(ef.eQ)??n.b,m,l,sa(e,r),b,null)}(Date.now(),ak.LoadingBoundary,t,o,e,f,c,p,u,r,a)}if(!f){let t=ii(r,n,a,f);aO(ij,t,e,!1)}return{value:null,closed:h.promise}}catch(t){return iQ(e,Date.now()+1e4),null}}async function i4(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=r.nextUrl,s=n.requestKey,o=""===s?"/_index":s,l={[z.hY]:"1",[z._V]:"1",[z.qm]:o};null!==i&&(l[z.kO]=i),sn(l);let u=iA?sr(a,o):a;try{let e=await se(u,l);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(z.jc)&&!iA||!e.body)return iZ(t,Date.now()+1e4),null;let r=(0,iw.b)(),{stream:a,size:i}=await st(e.body);r.resolve(),aI(t,i);let s=await sy(a,l,{allowPartialStream:!0});if((e.headers.get(ef.eQ)??s.buildId)!=="")return iZ(t,Date.now()+1e4),null;let o=Date.now(),c=o+iC(s.staleTime),d=iY(t,s.rsc,c,s.isPartial),f=s.varyParams,h=process.env.__NEXT_VARY_PARAMS&&null!==f?ih(n.varyPath,f):ic(t.fetchStrategy,n);return iq(o,h,d),{value:d,closed:r.promise}}catch(e){return iZ(t,Date.now()+1e4),null}}async function i6(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=t.nextUrl,s={[z.hY]:"1",[z._V]:"1",[z.qm]:"/"+t1.OG};null!==i&&(s[z.kO]=i),sn(s);try{let t=await se(a,s);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(z.jc)&&!iA||!t.body)return i9(n,Date.now()+1e4),null;let i=(0,iw.b)(),{stream:o}=await st(t.body);i.resolve();let l=await sy(o,s,{allowPartialStream:!0});if((t.headers.get(ef.eQ)??l.tree.segment.buildId)!=="")return i9(n,Date.now()+1e4),null;let u=Date.now();!function e(t,r,n,a,i){let s=a.segment,o=t+iC(s.staleTime),l=i.get(n.requestKey);if(void 0!==l)iY(l,s.rsc,o,s.isPartial);else{let e=iB(t,ak.PPR,n);0===e.status&&iY(iV(e,ak.PPR),s.rsc,o,s.isPartial)}if(null!==n.slots&&null!==a.slots)for(let s in n.slots){let o=n.slots[s],l=a.slots[s];void 0!==l&&e(t,r,o,l,i)}}(u,e,r,l.tree,n);let c=u+iC(l.head.staleTime),d=e.metadata.requestKey,f=n.get(d);if(void 0!==f)iY(f,l.head.rsc,c,l.head.isPartial);else{let t=iB(u,ak.PPR,e.metadata);0===t.status&&iY(iV(t,ak.PPR),l.head.rsc,c,l.head.isPartial)}return i9(n,Date.now()+1e4),{value:null,closed:i.promise}}catch(e){return i9(n,Date.now()+1e4),null}}async function i8(e,t,r,n,a){let i=e.key,s=new URL(t.canonicalUrl,location.origin),o=i.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=iO);let l={[z.hY]:"1",[z.B]:af(n)};switch(null!==o&&(l[z.kO]=o),r){case ak.Full:break;case ak.PPRRuntime:l[z._V]="2";break;case ak.LoadingBoundary:l[z._V]="1"}try{let e,i=await se(s,l);if(!i||!i.ok||!i.body)return i9(a,Date.now()+1e4),null;let o=av(i);if(o!==t.renderedSearch)return i9(a,Date.now()+1e4),null;let f=(0,iw.b)(),h=null,p=null;if(r===ak.Full){var u,c,d;let t,r;u=i.body,c=f.resolve,d=function(e){if(null===h)return;let t=e/h.length;for(let e of h)aI(e,t)},t=0,r=u.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),d(t+=a.byteLength);continue}e.close(),c();return}}})}else{let{stream:t,size:r}=await st(i.body);f.resolve(),e=t,p=r}let[m,g]=await Promise.all([sy(e,l,{allowPartialStream:!0}),i.cacheData]),y=m.h,v=null!==y?aS(y):null,b=Date.now(),w=await si(b,m.s,i),S=r===ak.PPRRuntime&&(g?.isResponsePartial??!1),_=i.headers.get(ef.eQ)??m.b,E=ad(m.f);if("string"==typeof E)return i9(a,Date.now()+1e4),null;let R=sz(b,n,E,o,-1);if(h=i5(b,r,E,_,S,v,w,R,a),null!==p&&null!==h&&h.length>0){let e=p/h.length;for(let t of h)aI(t,e)}return{value:null,closed:f.promise}}catch(e){return i9(a,Date.now()+1e4),null}}function i9(e,t){let r=[];for(let n of e.values())1===n.status?iZ(n,t):2===n.status&&r.push(n);return r}function i5(e,t,r,n,a,i,s,o,l){if(n&&""!==n)return null!==l&&i9(l,e+1e4),null;let u=o.routeTree,c=null!==o.metadataVaryPath?iG(o.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let i=n.segmentPath,o=u;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function sr(e,t){if(iA){let r=new URL(e),n=r.pathname.endsWith("/")?r.pathname.slice(0,-1):r.pathname,a=`__next${t.replace(/\//g,".")}.txt`;return r.pathname=`${n}/${a}`,r}return e}function sn(e){if(process.env.__NEXT_EXPOSE_TESTING_API){let{isNavigationLocked:t}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");t()&&(e[z.Yf]="1")}}function sa(e,t){let r=parseInt(t.headers.get(z.UK)??"",10);return e+(isNaN(r)?sV:iC(r))}async function si(e,t,r){if(void 0!==t){let r;for await(let e of t)r=e;if(void 0!==r)return e+(isNaN(r)?sV:iC(r))}return void 0!==r?sa(e,r):e+sV}function ss(e,t,r,n,a,i,s,o){let l=o?ak.PPR:ak.Full,u=null!==n?aS(n):null,c=ad(t);if("string"==typeof c)return;let d=sz(e,i,c,s,-1);i5(e,l,c,r,o,u,a,d,null)}async function so(e,t,r,n){let{stream:a,isPartial:i}=await sl(t),s=await sy(a,void 0,{allowPartialStream:!0}),o=s.h,l=null!==o?aS(o):null,u=await si(e,s.s),c=ad(s.f);if("string"==typeof c)return null;let d=sz(e,r,c,n,-1);return{flightDatas:c,navigationSeed:d,buildId:s.b,isResponsePartial:i,headVaryParams:l,staleAt:u}}async function sl(e){let t=!!process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS,r=e.getReader(),{done:n,value:a}=await r.read();if(n||!a||0===a.byteLength)return{stream:new ReadableStream({start:e=>e.close()}),isPartial:t};let i=a[0],s=35===i||126===i,o=s?a.byteLength>1?a.subarray(1):null:a;return{isPartial:s?126===i:t,stream:new ReadableStream({start(e){o&&e.enqueue(o)},async pull(e){let t=await r.read();t.done?e.close():e.enqueue(t.value)}})}}let su=al.createFromReadableStream,sc=al.createFromFetch;function sd(e){return aw(new URL(e,location.origin)).toString()}async function sf(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[z.hY]:"1",[z.B]:af(r,t.isHmrRefresh)};n&&(a[z.kO]=n);let i=e;try{"export"===process.env.__NEXT_CONFIG_OUTPUT&&((e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt");let t=process.env.__NEXT_PPR&&!process.env.__NEXT_CACHE_COMPONENTS,r=await sg(e,a,"auto",!t),n=aw(new URL(r.url)),s=r.redirected?n:i,o=r.headers.get("content-type")||"",l=!!r.headers.get("vary")?.includes(z.kO),u=!!r.headers.get(z.jc),c=o.startsWith(z.al);if("export"!==process.env.__NEXT_CONFIG_OUTPUT||c||(c=o.startsWith("text/plain")),!c||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),sd(n.toString());let d=r.flightResponsePromise;null===d&&(d=sy(r.body,a,{allowPartialStream:u}));let[f,h]=await Promise.all([d,r.cacheData]);if((r.headers.get(ef.eQ)??f.b)!=="")return sd(r.url);let p=ad(f.f);if("string"==typeof p)return sd(p);let m=null!==h?await sp(h,f,a):null;return{flightData:p,canonicalUrl:s,renderedSearch:f.q,couldBeIntercepted:l,supportsPerSegmentPrefetching:f.S,postponed:u,dynamicStaleTime:f.d??-1,staticStageData:m,runtimePrefetchStream:f.p??null,responseHeaders:r.headers,debugInfo:d._debugInfo??null}}catch(e){return console.error(`Failed to fetch RSC payload for ${i}. Falling back to browser navigation.`,e),i.toString()}}async function sh(e){if(process.env.__NEXT_CACHE_COMPONENTS){let t,r;if(!e.body)throw Object.defineProperty(new eM.z("Expected RSC navigation response to have a body"),"__NEXT_ERROR_CODE",{value:"E1088",enumerable:!1,configurable:!0});let{stream:n,isPartial:a}=await sl(e.body);if(process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS){let[e,i]=n.tee();t=e,r={isResponsePartial:a,responseBodyClone:i}}else t=n,r={isResponsePartial:a};let i=new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText});return Object.defineProperty(i,"url",{value:e.url}),Object.defineProperty(i,"redirected",{value:e.redirected}),{response:i,cacheData:r}}return{response:e,cacheData:null}}async function sp(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await sm(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function sm(e,t,r){var n,a;let i,s;return sy((n=e,a=await t,i=n.getReader(),s=a,new ReadableStream({async pull(e){if(s<=0){i.cancel(),e.close();return}let{done:t,value:r}=await i.read();t?e.close():r.byteLength<=s?(e.enqueue(r),s-=r.byteLength):(e.enqueue(r.subarray(0,s)),s=0,i.cancel(),e.close())},cancel(){i.cancel()}})),r,{allowPartialStream:!0})}async function sg(t,r,n,a,i){process.env.__NEXT_TEST_MODE&&null!==n&&(r["Next-Test-Fetch-Priority"]=n),e&&(r["x-deployment-id"]=e);let s={credentials:"same-origin",headers:r,priority:n||void 0,signal:i},o=new URL(t);rv(o,r);let l=fetch(o,s).then(sh),u=l.then(({response:e})=>e),c=a?sv(u,r):null,d=await u,f=d.redirected;if(process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS)for(let e=0;e<20&&d.redirected;e++){let e=new URL(d.url,o);if(e.origin!==o.origin||e.searchParams.get(z._A)===o.searchParams.get(z._A))break;rv(o=new URL(e),r),u=(l=fetch(o,s).then(sh)).then(({response:e})=>e),c=a?sv(u,r):null,d=await u,f=!0}let h=new URL(d.url,o);return h.searchParams.delete(z._A),{url:h.href,redirected:f,ok:d.ok,headers:d.headers,body:d.body,status:d.status,flightResponsePromise:c,cacheData:l.then(({cacheData:e})=>e)}}function sy(e,r,n){return su(e,{callServer:au,findSourceMapURL:s,debugChannel:t&&t(r),unstable_allowPartialStream:n?.allowPartialStream})}function sv(e,r){return sc(e,{callServer:au,findSourceMapURL:s,debugChannel:t&&t(r)})}var sb=((y={})[y.Default=0]="Default",y[y.Hydration=1]="Hydration",y[y.HistoryTraversal=2]="HistoryTraversal",y[y.RefreshAll=3]="RefreshAll",y[y.HMRRefresh=4]="HMRRefresh",y[y.Gesture=5]="Gesture",y);let sw=()=>{};function sS(e,t,r,n,a,i,s,o,l){let u=s_(t),c=t.slots,d=null!==a?a[1]:null,f=sk(e,t,null!==a?a[0]:null,r,i,n,s),h=f.cacheNode,p=f.needsDynamicRequest;null===c&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,h,l);let m={},g=null,y=!1,v={},b=null;if(null!==c)for(let t in h.slots=b={},g=new Map,c){let a=sS(e,c[t],r,n,(null!==d?d[t]:null)??null,i,s,o||p,l);g.set(t,a),b[t]=a.node;let u=a.route;m[t]=u;let f=a.dynamicRequestTree;null!==f?(y=!0,v[t]=f):v[t]=u}let w=[u,m,null,null,t.prefetchHints];return{status:+!p,route:w,node:h,dynamicRequestTree:sR(w,v,p,y,o),refreshState:null,children:g}}function s_(e){if(e.isPage){let t=id(e.varyPath);if(null===t)return t1.OG;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?t1.OG+"?"+r:t1.OG}return e.segment}function sE(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function sR(e,t,r,n,a){let i=null;return r?(i=sE(e,t),a||(i[3]="refetch")):i=n?sE(e,t):null,i}function sk(e,t,r,n,a,i,s){let o,l,u,c=t.isPage;switch(i){case 0:{let e=(t.varyPath,null);if(null!==e)return{cacheNode:sx(e.rsc,e.prefetchRsc,e.head,e.prefetchHead),needsDynamicRequest:!1};break}case 1:{let i=c?a:null;return i_(e,t.varyPath,r,null,i,null,s),c&&null!==n&&iE(e,n,i,null,s),{cacheNode:sx(r,null,i,null),needsDynamicRequest:!1}}case 2:let d=(t.varyPath,null);if(null!==d){let e=d.rsc,t=!sj(e)||"pending"!==e.status;return{cacheNode:sx(d.rsc,t?null:d.prefetchRsc,d.head,t?null:d.prefetchHead),needsDynamicRequest:!1}}}let f=null,h=!0,p=iM(e,t.varyPath);if(null!==p)switch(p.status){case iT.Fulfilled:f=p.rsc,h=p.isPartial;break;case iT.Pending:f=iL(p).then(e=>null!==e?e.rsc:null),h=p.isPartial;case iT.Empty:case iT.Rejected:}null!==r?(h?(o=f,l=r):(o=null,l=f),u=!1):(h?(o=f,l=s$()):(o=null,l=f),u=h);let m=null,g=null,y=c;if(c){let t=null,r=!0;if(null!==n){let a=iM(e,n);if(null!==a)switch(a.status){case iT.Fulfilled:t=a.rsc,r=a.isPartial;break;case iT.Pending:t=iL(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case iT.Empty:case iT.Rejected:}}process.env.__NEXT_OPTIMISTIC_ROUTING&&r&&(t=""),null!==a?(r?(m=t,g=a):(m=null,g=t),y=!1):(r?(m=t,g=s$()):(m=null,g=t),y=r)}return 5!==i&&(i_(e,t.varyPath,l,o,g,m,s),c&&null!==n&&iE(e,n,g,m,s)),{cacheNode:sx(l,o,g,m),needsDynamicRequest:u||y}}function sx(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let sP=!1;async function sC(e,t,r,n,a,i){var s,o;let l=await (s=r,o=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;s.then(t,r),null!==o&&(n+=o.length,o.forEach(e=>e.then(t,r)))}));switch(0===l&&(l=function e(t,r,n){var a,i,s;let o,l,u;0===t.status?(t.status=2,a=t.node,i=r,s=n,sj(l=a.rsc)&&(null===i?l.resolve(null,s):l.reject(i,s)),sj(u=a.head)&&u.resolve(null,s),o=null===t.refreshState?1:2):o=0;let c=t.children;if(null!==c)for(let[,t]of c){let a=e(t,r,n);a>o&&(o=a)}return o}(e,null,null)),l){case 0:sP=!1;return;case 1:{let n=await r;sT(!1,n.url,t,n.seed,e.route,a,i);return}case 2:{let n=await r;sT(!0,n.url,t,n.seed,e.route,a,i);return}default:return l}}function sT(e,t,r,n,a,i,s){if(null!==i)i.hasDynamicRewrite=!0;else if(null!==n){let e=n.metadataVaryPath;null!==e&&ix(Date.now(),t.pathname,r,null,n.routeTree,e,!1,nX(t),!1,!0)}iD++,ib(r,a),function(e,t){if(null!==iI){let r=iI;for(let n of(iI=null,r))aW(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}(r,a),e=e||sP,sP=!0;let o=n0,l=null!==o&&a!==o?s:"replace",u={type:nq.Aw,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:l};(0,nZ.Dd)(u)}async function sA(e,t,r,n,a,i){try{let s=await sf(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof s)return{exitStatus:2,url:new URL(s,location.origin),seed:null};let o=Date.now(),l=sz(o,e.route,s.flightData,s.renderedSearch,s.dynamicStaleTime);if(process.env.__NEXT_EXPOSE_TESTING_API&&await sI(),null!==i&&null!==s.staticStageData){let{response:e,isResponsePartial:r}=s.staticStageData;si(o,e.s).then(n=>{let a=s.responseHeaders.get(ef.eQ)??e.b;ss(o,e.f,a,e.h,n,t,s.renderedSearch,r)}).catch(()=>{})}null!==i&&null!==s.runtimePrefetchStream&&so(o,s.runtimePrefetchStream,t,s.renderedSearch).then(e=>{null!==e&&i5(o,ak.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let u=iS(o,s.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,i,s){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,i=t[0];if(null===i)return;null===a?e.rsc=i:sj(a)&&a.resolve(i,n);let s=e.head;sj(s)&&s.resolve(r,n)}(t.node,n,a,s),r.varyPath);let o=t.children,l=r.slots,u=null!==n?n[1]:null,c=!1;if(null!==o)if(null!==l)for(let t in l){let r=l[t],n=null!==u?u[t]:null,d=o.get(t);if(void 0===d)c=!0;else{let t=d.route[0];rH(s_(r),t)&&null!=n&&e(d,r,n,a,i,s)&&(c=!0)}}else null!==l&&(c=!0);return c}(e,l.routeTree,l.data,l.head,u,s.debugInfo),url:new URL(s.canonicalUrl,location.origin),seed:l}}catch{return{exitStatus:2,url:r,seed:null}}}let sO=Symbol();function sj(e){return e&&"object"==typeof e&&e.tag===sO}function s$(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=sO,n._debugInfo=r,n}async function sI(){if(process.env.__NEXT_EXPOSE_TESTING_API){let{waitForNavigationLockIfActive:e}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");await e()}}let sD=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function sN(e){return sD.test(""+e)}function sM(e,t,r,n,a,i,s,o,l,u){let c=Date.now(),d=iN(c,aE(t.href,s));if(null!==d&&d.status===iT.Fulfilled)return sU(c,e,t,r,n,s,a,i,o,l,u,d);if(!process.env.__NEXT_OPTIMISTIC_ROUTING&&(null===d||d.status!==iT.Rejected)){let d=function(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let i=iN(e,aE(a.href,r));if(null===i||2!==i.status)return null;let s=new URL(i.canonicalUrl,t.origin),o=""!==s.search?s.search:n,l=""!==i.renderedSearch?i.renderedSearch:n,u=new URL(i.canonicalUrl,location.origin);return u.search=o,{canonicalUrl:nX(u),status:2,blockedTasks:null,tree:iH(i.tree,l),metadata:iH(i.metadata,l),couldBeIntercepted:i.couldBeIntercepted,supportsPerSegmentPrefetching:i.supportsPerSegmentPrefetching,hasDynamicRewrite:i.hasDynamicRewrite,renderedSearch:l,ref:null,size:0,staleAt:i.staleAt,version:i.version}}(c,t,s);if(null!==d)return sU(c,e,t,r,n,s,a,i,o,l,u,d)}return sH(c,e,t,r,n,s,a,i,o,l,u).catch(()=>e)}function sL(e,t,r,n,a,i,s,o,l,u,c,d,f,h,p){var m,g,y,v,b;let w,S={separateRefreshUrls:null,scrollRef:null},_=r.href===i.href,E=(m=a.routeTree,g=a.metadataVaryPath,y=a.data,v=a.head,b=a.dynamicStaleAt,w={canonicalUrl:nX(i),renderedSearch:s},function e(t,r,n,a,i,s,o,l,u,c,d,f,h,p,m,g){var y,v,b;let w,S,_,E,R=a[0],k=s_(i);if(!rH(k,R))return!l&&function e(t,r){let n=t[0],a=r.segment;if(Array.isArray(n)&&Array.isArray(a)){if(n[0]!==a[0]||n[2]!==a[2])return!0}else if(n!==a)return!0;let i=((t[4]??0)&t0.IsRootLayout)!=0,s=(r.prefetchHints&t0.IsRootLayout)!=0;if(i)return!s;if(s)return!0;let o=r.slots,l=t[1];if(null!==o)for(let t in o){let r=o[t],n=l[t];if(void 0===n||e(n,r))return!0}return!1}(a,i)||k===t1.Jn?null:sS(t,i,s,o,u,c,d,h,g);let x=i.slots,P=a[1],C=null!==u?u[1]:null,T=l||(i.prefetchHints&t0.IsRootLayout)!=0,A=!1;switch(o){case 0:case 2:case 1:case 5:A=!1;break;case 3:case 4:A=!0}let O=null===x;if(void 0===n||A||O&&f){let e=sk(t,i,null!==u?u[0]:null,s,c,o,d);_=e.cacheNode,E=e.needsDynamicRequest,void 0!==n&&(_.scrollRef=n.scrollRef)}else{y=!1,_=sx((v=n).rsc,y?null:v.prefetchRsc,v.head,y?null:v.prefetchHead,v.scrollRef),E=!1}let j=i.refreshState,$=null!=j?j:m;E&&null!==$&&(b=g,w=$.canonicalUrl,null===(S=b.separateRefreshUrls)?b.separateRefreshUrls=new Set([w]):S.add(w));let I={},D=null,N=!1,M={},L=null;if(null!==x){let a=void 0!==n?n.slots:null;for(let n in _.slots=L={},D=new Map,x){let l=x[n],u=P[n];if(void 0===u)return null;let m=null!==C?C[n]:null,y=u[0],v=s_(l),b=c;2!==o&&v===t1.WO&&y!==t1.WO&&(v=s_(l=function(e,t,r,n){let a,i,s=n[2];null!=s?(a=s[0],i=s[1]):(a=r.canonicalUrl,i=r.renderedSearch);let o=function(e,t,r,n,a){let i=e.isPage?e.varyPath.parent.parent:e.varyPath.parent,s=r[0];return i1(r,am(e.requestKey,t,ap(s)),i,n,a)}(e,t,n,i,{metadataVaryPath:null});return o.refreshState={canonicalUrl:a,renderedSearch:i},o}(i,n,p,u)),m=null,b=null);let w=e(t,r,null!==a?a[n]:void 0,u,l,s,o,T,m??null,b,d,f,h||E,p,$,g);if(null===w)return null;D.set(n,w),L[n]=w.node;let S=w.route;I[n]=S;let _=w.dynamicRequestTree;null!==_?(N=!0,M[n]=_):M[n]=S}}let U=[s_(i),I,null!==$?[$.canonicalUrl,$.renderedSearch]:null,null,i.prefetchHints];return{status:+!E,route:U,node:_,dynamicRequestTree:sR(U,M,E,N,h),refreshState:$,children:D}}(e,i,null!==o?o:void 0,l,m,g,u,!1,y,v,b,_,!1,w,null,S));return null!==E?(u!==sb.Gesture&&function(e,t,r,n,a,i,s){let o=e.dynamicRequestTree;if(null===o){sP=!1;return}let l=sA(e,o,t,r,n,i),u=a.separateRefreshUrls,c=null;if(null!==u){c=[];let a=nX(t);for(let t of u)t!==a&&null!==o&&c.push(sA(e,o,new URL(t,location.origin),r,n,i))}sC(e,r,l,c,i,s).then(sw,sw)}(E,r,c,u,S,p,f),function(e,t,r,n,a,i,s,o,l,u,c){let d,f,h,p=(null==(h=function e(t,r){let[n,a]=t,[i,s]=r,o=ai(n),l=ai(i);if(nS.VB.some(e=>o.startsWith(e)||l.startsWith(e)))return"";if(!rH(n,i))return ao(r)??"";for(let t in a)if(s[t]){let r=e(a[t],s[t]);if(null!==r)return`${ai(i)}/${r}`}return null}(e.tree,n))||"/"===h?h:as(h.split("/")))||e.nextUrl,m=new URL(e.canonicalUrl,t),g=t.pathname===m.pathname&&t.search===m.search&&t.hash!==m.hash;if(l===nq.Kj.NoScroll)null!==u&&(u.current=!1),d=e.focusAndScrollRef.scrollRef,f=!1;else if(g){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==u&&(u.current=!1),d={current:!0},f=!0}else{if(d=u,null!==u){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}f=!1}return{canonicalUrl:s,renderedSearch:i,pushRef:{pendingPush:"push"===o,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:d,forceScroll:f,onlyHashChange:g,hashFragment:l!==nq.Kj.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:p,previousNextUrl:r,debugInfo:c}}(t,r,c,E.route,E.node,a.renderedSearch,n,f,d,S.scrollRef,h)):sB(t,r,f)}function sU(e,t,r,n,a,i,s,o,l,u,c,d){let f=d.tree,h=d.canonicalUrl+r.hash,p={renderedSearch:d.renderedSearch,routeTree:f,metadataVaryPath:d.metadata.varyPath,data:null,head:null,dynamicStaleAt:iS(e,-1)};return sL(e,t,r,h,p,n,a,s,o,l,i,u,c,null,d)}let sF=["",{},null,"refetch"];async function sH(e,t,r,n,a,i,s,o,l,u,c){let d;switch(l){case sb.Default:case sb.HistoryTraversal:case sb.Gesture:d=o;break;case sb.Hydration:case sb.RefreshAll:case sb.HMRRefresh:d=sF;break;default:d=o}let f=sf(r,{flightRouterState:d,nextUrl:i}),h=await f;if("string"==typeof h)return sB(t,new URL(h,location.origin),c);let{flightData:p,canonicalUrl:m,renderedSearch:g,couldBeIntercepted:y,supportsPerSegmentPrefetching:v,dynamicStaleTime:b,staticStageData:w,runtimePrefetchStream:S,responseHeaders:_,debugInfo:E}=h,R=sz(e,o,p,g,b),k=R.metadataVaryPath;if(null!==k){if(ix(e,r.pathname,i,null,R.routeTree,k,y,nX(m),v,!1),null!==w){let{response:t,isResponsePartial:r}=w;si(e,t.s).then(n=>{let a=_.get(ef.eQ)??t.b;ss(e,t.f,a,t.h,n,o,g,r)}).catch(()=>{})}null!==S&&so(e,S,o,g).then(t=>{null!==t&&i5(e,ak.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return sL(e,t,r,nX(m),R,n,a,s,o,l,i,u,c,E,null)}function sB(e,t,r){return sN(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?nX(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function sz(e,t,r,n,a){let i=t,s=null,o=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:l}of r){let r=function e(t,r,n,a,i,s,o){let l;if(o===i.length)return{tree:n,data:a};let u=i[o],c=t[1],d=null!==r?r[1]:null,f={},h={};for(let t in c){let r=c[t],l=null!==d?d[t]??null:null;if(t===u){let u=e(r,l,n,a,i,s,o+2);f[t]=u.tree,h[t]=u.data}else f[t]=r,h[t]=l}if(l=[t[0],f],2 in t){let e=t[2];null!=e&&(l[2]=[e[0],s])}return 3 in t&&(l[3]=t[3]),4 in t&&(l[4]=t[4]),{tree:l,data:[null,h,null,!0,null]}}(i,s,t,a,e,n,0);i=r.tree,s=r.data,o=l}let l={metadataVaryPath:null};return{routeTree:i0(i,n,l),metadataVaryPath:l.metadataVaryPath,data:s,renderedSearch:n,head:o,dynamicStaleAt:iS(e,a)}}async function sq(e,t,r,n,i,s,o,l,u,c){let d=ip,f=null!==d?d.fetchStrategy:ak.PPR,{transitionToCapturedSPA:h,updateCapturedSPAToTree:p}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");h(s,null);let m=aE(t.href,o);await new Promise(e=>{aV(m,s,f,aR.Default,null,e)});let g=await sM(e,t,r,n,i,s,o,l,u,c);return p(s,g.tree),g}let sX=1e3*Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME),sV=iC(Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME)),sW=process.env.__NEXT_ROUTER_BASEPATH||"";function sG(e,t){return(e=>{if(!e.startsWith("/")||process.env.__NEXT_MANUAL_TRAILING_SLASH)return e;let{pathname:t,query:r,hash:n}=eg(e);if(process.env.__NEXT_TRAILING_SLASH)if(/\.[^/]+\/?$/.test(t));else if(t.endsWith("/"))return`${t}${r}${n}`;else return`${t}/${r}${n}`;return`${em(t)}${r}${n}`})(process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!t?e:ey(e,sW))}let sJ=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,sK=/Googlebot(?!-)|Googlebot$/i;function sY(e){return e.origin!==window.location.origin}sJ.source;var sQ=a("./dist/esm/shared/lib/is-thenable.js");function sZ(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&s0({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:nq.z8},t))}async function s0({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,i=e.action(n,a);function s(n){if(t.discarded){t.payload.type===nq.s8&&t.payload.didRevalidate&&(e.needsRefresh=!0),sZ(e,r);return}e.state=n,sZ(e,r),t.resolve(n)}(0,sQ.Q)(i)?i.then(s,n=>{sZ(e,r),t.reject(n)}):s(i)}function s1(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==nq.IU){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,O.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,s0({actionQueue:e,action:a,setState:r})):t.type===nq.Zb||t.type===nq.IU?(e.pending.discarded=!0,a.next=e.pending.next,s0({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(r,e,t),action:async(e,t)=>e,pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};return r}function s2(e,t,r,n,a){if(a)for(let e of a)(0,O.addTransitionType)(e);let i=new URL(sG(e),location.href);process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=i),(0,O.startTransition)(()=>{ip?.setOptimisticLinkStatus(ig),n?.setOptimisticLinkStatus(im),ip=n});(0,nZ.Dd)({type:nq.Zb,url:i,isExternalUrl:sY(i),locationSearch:location.search,scrollBehavior:r,navigateType:t})}let s3={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{var r,n,a,i;let s,o;if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let l=function(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}();switch(t?.kind??nq.ob.AUTO){case nq.ob.AUTO:s=ak.PPR;break;case nq.ob.FULL:s=ak.Full;break;default:s=ak.PPR}r=l.state.nextUrl,n=l.state.tree,a=s,i=t?.onInvalidate??null,null===(o=function(e){var t,r;let n;if(r=t=window.navigator.userAgent,sK.test(r)||sJ.test(t))return null;try{n=new URL(sG(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return sY(n)?null:n}(e))||aV(aE(o.href,r),n,a,aR.Default,i)},replace:(e,t)=>{if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,O.startTransition)(()=>{s2(e,"replace",t?.scroll===!1?nq.Kj.NoScroll:nq.Kj.Default,null,t?.transitionTypes)})},push:(e,t)=>{if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,O.startTransition)(()=>{s2(e,"push",t?.scroll===!1?nq.Kj.NoScroll:nq.Kj.Default,null,t?.transitionTypes)})},refresh:()=>{(0,O.startTransition)(()=>{(0,nZ.Dd)({type:nq.z8})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};process.env.__NEXT_GESTURE_TRANSITION&&(s3.experimental_gesturePush=function(e,t){if(process.env.__NEXT_GESTURE_TRANSITION){if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});!0;return}}),O.Component;let s4=a("../../app-render/work-async-storage.external").workAsyncStorage;function s6({error:e}){if(s4){let t=s4.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}class s8 extends O.Component{static{this.contextType=nU}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,O.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,tM.p)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return(process.env.__NEXT_APP_NAV_FAIL_HANDLING&&r,e.pathname!==t.previousPathname&&t.error)?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&1?(s6({error:this.state.error}),(0,T.jsxs)(T.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,T.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function s9({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let i=!function(){{let{workUnitAsyncStorage:e}=a("../../app-render/work-unit-async-storage.external"),t=e.getStore();if(!t)return!1;switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let r=t.fallbackRouteParams;return!!r&&r.size>0}return!1}}()?(0,O.useContext)(nJ):null;return e?(0,T.jsx)(s8,{pathname:i,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,T.jsx)(T.Fragment,{children:n})}function s5({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return(0,T.jsx)(s9,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}let s7={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},oe={marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},ot={marginBottom:"24px"},or={fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},on={fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},oa={margin:0},oi={display:"flex",gap:"8px",alignItems:"center"},os={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},oo={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},ol={position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"},ou=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function oc(){return(0,T.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:ot,children:(0,T.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}let od=function({error:e}){let t=e?.digest,r=!!t;return s6({error:e}),(0,T.jsxs)("html",{id:"__next_error__",children:[(0,T.jsx)("head",{children:(0,T.jsx)("style",{dangerouslySetInnerHTML:{__html:ou}})}),(0,T.jsxs)("body",{children:[(0,T.jsx)("div",{style:s7,children:(0,T.jsxs)("div",{style:oe,children:[(0,T.jsx)(oc,{}),(0,T.jsx)("h1",{style:or,children:"This page couldn’t load"}),(0,T.jsx)("p",{style:on,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,T.jsxs)("div",{style:oi,children:[(0,T.jsx)("form",{style:oa,children:(0,T.jsx)("button",{type:"submit",style:os,children:"Reload"})}),!r&&(0,T.jsx)("button",{type:"button",style:oo,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,T.jsxs)("p",{style:ol,children:["ERROR ",t]})]})]})};var of=a("./dist/esm/lib/framework/boundary-constants.js");let oh={[of.NJ]:function({children:e}){return e},[of.A$]:function({children:e}){return e},[of.DQ]:function({children:e}){return e},[of.ri]:function({children:e}){return e}};oh[of.NJ.slice(0)],oh[of.A$.slice(0)],oh[of.DQ.slice(0)];let op=oh[of.ri.slice(0)],om={};function og({appRouterState:e}){return(0,O.useInsertionEffect)(()=>{process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=void 0);let{tree:t,pushRef:r,canonicalUrl:n,renderedSearch:a}=e,i={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:a}};r.pendingPush&&nX(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(i,"",n)):window.history.replaceState(i,"",n),n0=t},[e]),(0,O.useEffect)(()=>{ib(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function oy(e){null==e&&(e={});let t=window.history.state,r=t?.__NA;r&&(e.__NA=r);let n=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function ov({headCacheNode:e}){let t=null!==e?e.head:null,r=null!==e?e.prefetchHead:null,n=null!==r?r:t;return(0,O.useDeferredValue)(t,n)}function ob({actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n}){let a,i=(0,nZ.n5)(e),{canonicalUrl:s}=i,{searchParams:o,pathname:l}=(0,O.useMemo)(()=>{var e;let t=new URL(s,"http://n");return{searchParams:t.searchParams,pathname:eb(t.pathname,ar)?(e=t.pathname,process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!eb(e,ar)||0===an.length||(e=e.slice(an.length)).startsWith("/")||(e=`/${e}`),e):t.pathname}},[s]);(0,O.useEffect)(()=>{let e,t=(e=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(t1.OG)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===t1.WO)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[aa(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[aa(r),...n]}}(i.tree))?`/${e.join("/")}`:void 0;void 0!==t?window.next.__internal_src_page=t:delete window.next.__internal_src_page},[i.tree]),(0,O.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(om.pendingMpaPath=void 0,(0,nZ.Dd)({type:nq.IU,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,O.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,tE.n)(t)){e.preventDefault();let r=tR(t);"push"===tk(t)?s3.push(r,{}):s3.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:u}=i;if(u.mpaNavigation){if(om.pendingMpaPath!==s){let e=window.location;u.pendingPush?e.assign(s):e.replace(s),om.pendingMpaPath=s}throw at}(0,O.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{let t=window.location.href,r=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,O.startTransition)(()=>{(0,nZ.Dd)({type:nq.IU,url:new URL(e??t,t),historyState:r})})};window.history.pushState=function(t,n,a){return t?.__NA||t?._N||(t=oy(t),a&&r(a)),e(t,n,a)},window.history.replaceState=function(e,n,a){return e?.__NA||e?._N||(e=oy(e),a&&r(a)),t(e,n,a)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,O.startTransition)(()=>{var t,r;t=window.location.href,r=e.state.__PRIVATE_NEXTJS_INTERNALS_TREE,(0,nZ.Dd)({type:nq.IU,url:new URL(t),historyState:r})})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:c,tree:d,nextUrl:f,focusAndScrollRef:h,previousNextUrl:p}=i,m=(0,O.useMemo)(()=>(function e(t,r,n,a){if(0===Object.keys(r).length)return[t,n,a];let i=Object.keys(r).filter(e=>"children"!==e);"children"in r&&i.unshift("children");let s=t.slots;if(null!==s)for(let t of i){let[a,i]=r[t];if(a===t1.WO)continue;let o=s[t];if(!o)continue;let l=e(o,i,n+"/"+ae(a),n+"/"+ae(a,!0));if(l)return l}return null})(c,d[1],"",""),[c,d]),g=(0,O.useMemo)(()=>(function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),i=a?t[1]:t;!i||i.startsWith(t1.OG)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r})(d),[d]),y=(0,O.useMemo)(()=>({parentTree:d,parentCacheNode:c,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:s,isActive:!0}),[d,c,s]),v=(0,O.useMemo)(()=>({tree:d,focusAndScrollRef:h,nextUrl:f,previousNextUrl:p}),[d,h,f,p]);if(null!==m){let[e,t,r]=m;a=(0,T.jsx)(ov,{headCacheNode:e},r)}else a=null;let b=(0,T.jsxs)(n7,{children:[a,(0,T.jsx)(op,{children:c.rsc}),(0,T.jsx)(n2,{tree:d})]});return b=(0,T.jsx)(s5,{errorComponent:t[0],errorStyles:t[1],children:b}),(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(og,{appRouterState:i}),null,(0,T.jsx)(nY.Provider,{value:null,children:(0,T.jsx)(nK.Provider,{value:g,children:(0,T.jsx)(nJ.Provider,{value:l,children:(0,T.jsx)(nG.Provider,{value:o,children:(0,T.jsx)(nH.Provider,{value:v,children:(0,T.jsx)(nU.Provider,{value:s3,children:(0,T.jsx)(nF.Provider,{value:y,children:b})})})})})})})]})}function ow({actionQueue:e,globalErrorState:t,webSocket:r,staticIndicatorState:n}){process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(0,O.useEffect)(()=>{let e=e=>{"reason"in e?e.reason:e.error};return window.addEventListener("unhandledrejection",e),window.addEventListener("error",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let a=(0,T.jsx)(ob,{actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n});return(0,T.jsx)(s5,{errorComponent:od,children:a})}function oS({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:r,location:n}){let{c:a,f:i,q:s,i:o,S:l,s:u,l:c,h:d,p:f,d:h}=t,p=a.join("/"),{tree:m,seedData:g,head:y}=ac(i[0]),v=n?nX(n):p,b={metadataVaryPath:null},w=i0(m,s,b),S=b.metadataVaryPath,_=sS(e,w,null,1,g,y,iS(e,h??-1),!1,{separateRefreshUrls:null,scrollRef:null});if(null!==n&&null!==S){if(ix(Date.now(),n.pathname,null,null,w,S,o,v,l,!1),null!==g&&void 0!==u)if(void 0!==c&&null!=r)sm(r,c,void 0).then(async e=>{let t=Date.now(),r=await si(t,e.s);ss(t,e.f,void 0,e.h,r,m,s,!0)}).catch(()=>{});else{let e=Date.now();si(e,u).then(t=>{ss(e,i,void 0,d,t,m,s,!1)}).catch(()=>{}),r?.cancel()}else r?.cancel();null!=f&&so(Date.now(),f,m,s).then(e=>{null!==e&&i5(Date.now(),ak.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:_.route,cache:_.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:v,renderedSearch:s,nextUrl:(ao(m)||n?.pathname)??null,previousNextUrl:null,debugInfo:null}}var o_=((v={}).ProspectiveRender="the prospective render",v.SegmentCollection="segment collection",v.InstantValidation="instant validation",v);function oE(e,t,r){let n;if(!tq(e)){if(tB(e))return void console.error(e);if("object"==typeof e&&null!==e&&"string"==typeof e.message){if(n=e.message,"string"==typeof e.stack){let a=e.stack,i=a.indexOf("\n");if(i>-1){let e=Object.defineProperty(Error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${n}`),"__NEXT_ERROR_CODE",{value:"E949",enumerable:!1,configurable:!0});e.stack="Error: "+e.message+a.slice(i),console.error(e);return}}}else"string"==typeof e&&(n=e);if(n)return void console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${n}`);console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`),console.error(e)}}let oR=require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js"),ok=!0;function ox(){console.warn("Next.js cannot guarantee that Cache Components will run as expected due to the current runtime's implementation of `setTimeout()`.\nPlease report a github issue here: https://github.com/vercel/next.js/issues/new/")}function oP(){}function oC(e,...t){return new Promise((r,n)=>{let a,i=function(e=0){{let n=!0,a=null,i=!1,s=!1;function t(e){return i=!0,ok&&(0,oR.unpatchedSetImmediate)(()=>{s=!0}),e()}function r(e){return ok&&s&&(ok=!1,ox()),e()}return function(s){if(i)throw Object.defineProperty(new eM.z("Cannot schedule more timers into a group that already executed"),"__NEXT_ERROR_CODE",{value:"E935",enumerable:!1,configurable:!0});let o=setTimeout(n?t:r,e,s);if(n=!1,!ok)return o;try{"_idleStart"in o&&"number"==typeof o._idleStart?null===a?a=o._idleStart:o._idleStart=a:(ok=!1,ox())}catch(e){console.error(Object.defineProperty(new eM.z("An unexpected error occurred while adjusting `_idleStart` on an atomic timer",{cause:e}),"__NEXT_ERROR_CODE",{value:"E933",enumerable:!1,configurable:!0})),ok=!1,ox()}return o}}}(),s=[];s.push(i(()=>{try{(0,oR.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),a=e(),(0,sQ.Q)(a)&&a.then(oP,oP)}catch(e){for(let e=1;e{try{(0,oR.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),r()}catch(e){for(;++a{try{(0,oR.expectNoPendingImmediates)(),r(a)}catch(e){n(e)}}))})}let oT=require("next/dist/server/app-render/console-async-storage.external.js");class oA{constructor(){this.count=0,this.earlyListeners=[],this.listeners=[],this.tickPending=!1,this.pendingTimeoutCleanup=null,this.subscribedSignals=null,this.invokeListenersIfNoPendingReads=()=>{if(this.pendingTimeoutCleanup=null,0===this.count){for(let e=0;eprocess.nextTick(()=>{if(this.tickPending=!1,0===this.count){for(let e=0;e{t=clearTimeout.bind(null,setTimeout(e,0))}),t=clearImmediate.bind(null,r),()=>t())}inputReady(){return new Promise(e=>{this.earlyListeners.push(e),0===this.count&&this.noMorePendingCaches()})}cacheReady(){return new Promise(e=>{this.listeners.push(e),0===this.count&&this.noMorePendingCaches()})}beginRead(){if(this.count++,this.pendingTimeoutCleanup&&(this.pendingTimeoutCleanup(),this.pendingTimeoutCleanup=null),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.beginRead()}endRead(){if(0===this.count)throw Object.defineProperty(new eM.z("CacheSignal got more endRead() calls than beginRead() calls"),"__NEXT_ERROR_CODE",{value:"E678",enumerable:!1,configurable:!0});if(this.count--,0===this.count&&this.noMorePendingCaches(),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.endRead()}hasPendingReads(){return this.count>0}trackRead(e){this.beginRead();let t=this.endRead.bind(this);return e.then(t,t),e}subscribeToReads(e){if(e===this)throw Object.defineProperty(new eM.z("A CacheSignal cannot subscribe to itself"),"__NEXT_ERROR_CODE",{value:"E679",enumerable:!1,configurable:!0});null===this.subscribedSignals&&(this.subscribedSignals=new Set),this.subscribedSignals.add(e);for(let t=0;tt.includes(e))}class oj{update(e){this._done||(this.currentValue=e,this._resolve?(this._resolve({value:e,done:!1}),this._resolve=null):this._buffer.push(e))}close(){!this._done&&(this._done=!0,this._resolve&&(this._resolve({value:void 0,done:!0}),this._resolve=null))}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(e=>{this._resolve=e})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this.currentValue=0}}function o$(e){return t=>{var r;return t===ef.AR&&"number"==typeof(null==(r=e.staleTimes)?void 0:r.static)?e.staleTimes.static:t}}function oI(e,t,r){let n=e.stale;t.update(r(n)),Object.defineProperty(e,"stale",{get:()=>n,set:e=>{n=e,t.update(r(e))},configurable:!0,enumerable:!0})}async function oD(e){e.close(),await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function oN(e){let t=!1;return async function(){return t?"":(t=!0,``)}}var oM=a("./dist/compiled/path-to-regexp/index.js");let oL=/[|\\{}()[\]^$+*?.-]/,oU=/[|\\{}()[\]^$+*?.-]/g;function oF(e){return oL.test(e)?e.replace(oU,"\\$&"):e}function oH(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:n=!1}={}){let{parameterizedRoute:a,groups:i}=function(e,t,r){let n={},a=1,i=[];for(let s of em(e).slice(1).split("/")){let e=nS.VB.find(e=>s.startsWith(e)),o=s.match(nC);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=nT(o[2]);n[t]={pos:a++,repeat:s,optional:r},i.push(`/${oF(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=nT(o[2]);n[e]={pos:a++,repeat:t,optional:s},r&&o[1]&&i.push(`/${oF(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${oF(s)}`);t&&o&&o[3]&&i.push(oF(o[3]))}return{parameterizedRoute:i.join(""),groups:n}}(e,t,r),s=a;return n||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}function oB({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:n,keyPrefix:a,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:u}=nT(r),c=o.replace(/\W/g,"");a&&(c=`${a}${c}`);let d=!1;(0===c.length||c.length>30)&&(d=!0),isNaN(parseInt(c.slice(0,1)))||(d=!0),d&&(c=t());let f=c in n;a?n[c]=`${a}${o}`:n[c]=o;let h=e?oF(e):"";return s=f&&i?`\\k<${c}>`:u?`(?<${c}>.+?)`:`(?<${c}>[^/]+?)`,{key:o,pattern:l?`(?:/${h}${s})?`:`/${h}${s}`,cleanedKey:c,optional:l,repeat:u}}var oz=a("./dist/esm/shared/lib/utils.js");let oq="_NEXTSEP_";function oX(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function oV(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${oq}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${oq}`)}function oW(e){return e.replace(RegExp(`\\)${oq}`,"g"),")")}function oG(e,t,r){if("string"!=typeof e)return(0,oM.pathToRegexp)(e,t,r);let n=oX(e),a=n?oV(e):e;try{return(0,oM.pathToRegexp)(a,t,r)}catch(a){if(!n)try{let n=oV(e);return(0,oM.pathToRegexp)(n,t,r)}catch(e){}throw a}}function oJ(e,t){let r=oX(e),n=r?oV(e):e;try{let e=(0,oM.compile)(n,t);if(r)return t=>oW(e(t));return e}catch(n){if(!r)try{let r=oV(e),n=(0,oM.compile)(r,t);return e=>oW(n(e))}catch(e){}throw n}}function oK({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let a=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new oz.Xc("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>a(e)):i[e]=a(t))}return i},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${oq}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${oq}`),""):e):n[e]=r;return n}}var oY=a("./dist/esm/shared/lib/router/utils/querystring.js");function oQ(e){return e.replace(/__ESC_COLON_/gi,":")}function oZ(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),oJ(`/${e}`,{validate:!1})(t).slice(1)}function o0(e){try{return decodeURIComponent(e)}catch{return e}}function o1(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let n=t.searchParams.getAll(e);r[e]=n.length>1?n:n[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}let o2=/https?|ftp|gopher|file/;function o3(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(oY.Bw(s)));let l=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o2.test(n))&&!1!==o?(o="//"+(o||""),a&&"/"!==a[0]&&(a="/"+a)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),a=a.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${o}${a}${l}${i}`}function o4(e,t){for(let r in delete e.nextInternalLocale,e){let n=r!==ef.AA&&r.startsWith(ef.AA),a=r!==ef.h&&r.startsWith(ef.h);(n||a||t.includes(r))&&delete e[r]}}function o6(e,t){return"string"==typeof e[ef.vS]&&e[ef.c1]===t?e[ef.vS].split(","):[]}let o8=require("next/dist/server/app-render/module-loading/track-module-loading.external.js"),o9={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1},o5=O.createContext(o9);async function o7(e){let{mod:t}=await rV(e),r=t?t.unstable_instant:void 0;if(r&&"object"==typeof r&&"runtime"===r.prefetch)return!0;let{parallelRoutes:n}=rG(e);for(let e in n){let t=n[e];if(await o7(t))return!0}return!1}async function le(e){let{mod:t}=await rV(e),r=t?t.unstable_instant:void 0;if(void 0!==r){if("object"==typeof r)return!1;else if(!1===r)return!0}let{parallelRoutes:n}=rG(e);for(let e in n){let t=n[e];if(await le(t))return!0}return!1}async function lt(e,t){let r=await ln(e),n=!1;for(let{config:e}of r)if("object"==typeof e){if(!0===e.unstable_disableValidation||"dev"===t&&!0===e.unstable_disableDevValidation||"build"===t&&!0===e.unstable_disableBuildValidation)return!1;n=!0}return n}li(async e=>lt(e,"dev"));let lr=li(async e=>lt(e,"build")),ln=li(async e=>{let t=[];async function r(e,n){let{mod:a}=await rV(e),i=a?a.unstable_instant:void 0;void 0!==i&&t.push({path:n,config:i});let{parallelRoutes:s}=rG(e);for(let e in s){let t=s[e];await r(t,[...n,e])}}return await r(e,[]),t}),la=async e=>{let{mod:t}=await rV(e),r=t?t.unstable_instant:void 0,n=null;void 0!==r&&"object"==typeof r&&r.samples&&(n=r.samples);let{parallelRoutes:a}=rG(e);for(let e in a){if("children"!==e)continue;let t=a[e],r=await la(t);null!==r&&(n=r)}return n};function li(e){let t=new WeakMap;return r=>{let n=A.workAsyncStorage.getStore();if(!n)return e(r);let a=t.get(n);if(a&&a.has(r))return a.get(r);let i=e(r);return a||(a=new WeakMap,t.set(n,a)),a.set(r,i),i}}function ls(){}function lo(e,t){return e.sharedContext.deploymentId||(t.b=e.sharedContext.buildId),t}async function ll(e){let{page:t,parallelRoutes:r}=rG(e),n=null;if(void 0!==t){let e=await t[0]();if(e&&"number"==typeof e.unstable_dynamicStaleTime){let t=e.unstable_dynamicStaleTime;n=null!==n?Math.min(n,t):t}}let a=[];for(let e in r)a.push(ll(r[e]));for(let e of(await Promise.all(a)))null!==e&&(n=null!==n?Math.min(n,e):e);return n}function lu(e,t,r){return function(n){let[a,,,i]=n,s=(0,tG.Hp)(a);return s?nP(e,s.paramName,tW[s.paramType],t,r?i:null):null}}function lc({createElement:e,pagePath:t,statusCode:r,isPossibleServerAction:n}){return!n&&("/404"===t||"number"==typeof r&&r>400)?e("meta",{name:"robots",content:"noindex"}):null}async function ld(e,t){let r="",{componentMod:{routeModule:{userland:{loaderTree:n}},createElement:a,createMetadataComponents:i,Fragment:s},query:o,requestId:l,flightRouterState:u,workStore:c,url:d}=e,f=!!e.renderOpts.serveStreamingMetadata;if(!(null==t?void 0:t.skipPageRendering)){var h;let t=await o7(n),{Viewport:c,Metadata:p,MetadataOutlet:m}=i({tree:n,parsedQuery:o,pathname:d.pathname,metadataContext:td(e.renderOpts),interpolatedParams:e.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:t}),g=a(s,{key:"h"},a(lc,{createElement:a,pagePath:e.pagePath,statusCode:e.res.statusCode,isPossibleServerAction:e.isPossibleServerAction}),a(c,{key:l+"v"}),a(p,{key:l+"m"}));r=(await nb({ctx:e,loaderTreeToFilter:n,parentParams:{},flightRouterState:u,rscHead:g,injectedCSS:new Set,injectedJS:new Set,injectedFontPreloadTags:new Set,rootLayoutIncluded:!1,preloadCallbacks:[],MetadataOutlet:m,hintTree:(null==(h=e.renderOpts.prefetchHints)?void 0:h[e.pagePath])??null})).map(e=>e.slice(1))}let p=e.res.getHeader("vary"),m="string"==typeof p&&p.includes(z.kO);if(null==t?void 0:t.actionResult)return lo(e,{a:t.actionResult,f:r,q:lS(o),i:!!m});let g=lo(e,{f:r,q:lS(o),i:!!m,S:c.isStaticGeneration,h:no()});if((null==t?void 0:t.staleTimeIterable)!==void 0&&(g.s=t.staleTimeIterable),(null==t?void 0:t.staticStageByteLengthPromise)!==void 0&&(g.l=t.staticStageByteLengthPromise),(null==t?void 0:t.runtimePrefetchStream)!==void 0&&(g.p=t.runtimePrefetchStream),!c.isStaticGeneration){let t=await ll(e.componentMod.routeModule.userland.loaderTree);null!==t&&(g.d=t)}return g}function lf(e,t){var r;return{routerKind:"App Router",routePath:e.pagePath,routeType:e.isPossibleServerAction?"action":"render",renderSource:t,revalidateReason:(r=e.workStore).isOnDemandRevalidate?"on-demand":r.isStaticGeneration?"stale":void 0}}async function lh(e,t,r,n){let{htmlRequestId:a,renderOpts:i,requestId:s,workStore:l}=t,{onInstrumentationRequestError:u,setReactDebugChannel:c,isBuildTimePrerendering:d=!1}=i,f=tX(!1,d,l.reactServerErrorsByDigest,function(r,n){return null==u?void 0:u(r,e,lf(t,"react-server-components-payload"),n)}),h=c&&ls();h&&c(h.clientSide,a,s);let{clientModules:p}=eJ(),m=await eq.workUnitAsyncStorage.run(r,ld,t,n),g=eq.workUnitAsyncStorage.run(r,ta,t.componentMod,m,p,{onError:f,temporaryReferences:null==n?void 0:n.temporaryReferences,filterStackFrame:o,debugChannel:null==h?void 0:h.serverSide});return new tC(g,{fetchMetrics:l.fetchMetrics},null==n?void 0:n.waitUntil)}async function lp(e,t,r){let n,a,{componentMod:i,workStore:s,renderOpts:l}=t,{renderToReadableStream:u,routeModule:c}=i,{loaderTree:d}=c.userland,{onInstrumentationRequestError:f,experimental:h}=l,p=tX(!1,!1,s.reactServerErrorsByDigest,function(r,n){return null==f?void 0:f(r,e,lf(t,"react-server-components-payload"),n)}),m=o$(h),g=new oj,y=new nt.V(null,null,!1);r.stale=ef.AR,r.stagedRendering=y,r.asyncApiPromises=l$(y,r.cookies,r.mutableCookies,r.headers),oI(r,g,m);let v=new Promise(e=>{n=e});if(await o7(d)){let e=nj();r.prerenderResumeDataCache=e;let n=new oA;(0,o8.trackPendingModules)(n),r.cacheSignal=n;let i=new TransformStream;a=i.readable,n.cacheReady().then(()=>lm(i.writable,t,e,r,p))}let b=await eq.workUnitAsyncStorage.run(r,ld,t,{staleTimeIterable:g,staticStageByteLengthPromise:v,runtimePrefetchStream:a}),{clientModules:w}=eJ();return new tC(await oC(()=>{y.advanceStage(nt.D.Static);let[e,t]=eq.workUnitAsyncStorage.run(r,u,b,w,{onError:p,filterStackFrame:o}).tee();return lj(t,y).then(n),e},()=>{oD(g)},()=>{y.advanceStage(nt.D.Dynamic)}),{fetchMetrics:s.fetchMetrics})}async function lm(e,t,r,n,a){try{let{componentMod:i,getDynamicParamFromSegment:s}=t,{loaderTree:o}=i.routeModule.userland,l=ng(o,s),u=new oj,{result:c}=await lb(t,ld.bind(null,t,{staleTimeIterable:u}),r,null,l,n.headers,n.cookies,n.draftMode,a,u);await c.prelude.pipeTo(e)}catch{try{await e.close()}catch{}}}async function lg(e,t,r){let{workStore:n,renderOpts:a}=t,{isBuildTimePrerendering:i=!1,onInstrumentationRequestError:s}=a,o=tX(!1,i,n.reactServerErrorsByDigest,function(r,n){return null==s?void 0:s(r,e,lf(t,"react-server-components-payload"),n)}),l={},u=new oj,{componentMod:{routeModule:{userland:{loaderTree:c}}},getDynamicParamFromSegment:d}=t,f=ng(c,d),h=nj();await ly(t,ld.bind(null,t),h,null,f,r.headers,r.cookies,r.draftMode);let p=await lb(t,ld.bind(null,t,{staleTimeIterable:u}),h,null,f,r.headers,r.cookies,r.draftMode,o,u);return lT(p,l,n),l.fetchMetrics=t.workStore.fetchMetrics,new tC(p.result.prelude,l)}async function ly(e,t,r,n,a,i,s,l){let{implicitTags:u,renderOpts:c,workStore:d}=e,{ComponentMod:f}=c,h=new AbortController,p=new AbortController,m=new oA,g={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:u,renderSignal:p.signal,controller:h,cacheSignal:m,dynamicTracking:null,revalidate:1,expire:0,stale:ef.AR,tags:[...u.tags],renderResumeDataCache:n,prerenderResumeDataCache:r,hmrRefreshHash:void 0,varyParamsAccumulator:null,stagedRendering:null,headers:i,cookies:s,draftMode:l},{clientModules:y}=eJ(),v=await eq.workUnitAsyncStorage.run(g,t),b={filterStackFrame:o,onError:e=>{let t=tq(e);return t||(h.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,d.route,o_.ProspectiveRender)))},signal:p.signal},w=eq.workUnitAsyncStorage.run(g,tl(f),v,y,b);if((0,o8.trackPendingModules)(m),await m.cacheReady(),p.abort(),h.abort(),d.invalidDynamicUsageError)throw d.invalidDynamicUsageError;try{return await e4(w)}catch(e){return p.signal.aborted||h.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,d.route,o_.ProspectiveRender),null}}function lv(e,t){let r=new Uint8Array([t?126:35]);return e.pipeThrough(new TransformStream({start(e){e.enqueue(r)}}))}async function lb(e,t,r,n,a,i,s,l,u,c){let{implicitTags:d,renderOpts:f}=e,{ComponentMod:h,experimental:p,isDebugDynamicAccesses:m}=f,g=o$(p),y=!1,v=new AbortController,b=(0,tL.uO)(m),w=new nt.V(v.signal,null,!0),S=ns(),_={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:d,renderSignal:v.signal,controller:v,cacheSignal:null,dynamicTracking:b,revalidate:1,expire:0,stale:ef.AR,tags:[...d.tags],prerenderResumeDataCache:r,renderResumeDataCache:n,hmrRefreshHash:void 0,varyParamsAccumulator:S,stagedRendering:w,headers:i,cookies:s,draftMode:l};oI(_,c,g);let{clientModules:E}=eJ(),R=await eq.workUnitAsyncStorage.run(_,t),k=!0,x=await oC(async()=>{w.advanceStage(nt.D.EarlyStatic);let e=await eq.workUnitAsyncStorage.run(_,tl(h),R,E,{filterStackFrame:o,onError:u,signal:v.signal});return k=!1,e},()=>{w.advanceStage(nt.D.Static)},()=>{w.advanceStage(nt.D.EarlyRuntime)},()=>{w.advanceStage(nt.D.Runtime)},()=>{Promise.all([oD(c),nl(S)]).then(()=>{if(v.signal.aborted){y=!0;return}k&&(y=!0),v.abort()})});return x.prelude=lv(x.prelude,y),{result:x,dynamicAccess:b,isPartial:y,collectedRevalidate:_.revalidate,collectedExpire:_.expire,collectedStale:c.currentValue,collectedTags:_.tags}}function lw(e){return(e.pathname+e.search).split("/")}function lS(e){let t=[];for(let r in e){let n=e[r];if(null!=n)if(Array.isArray(n))for(let e of n)t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(e))}`);else t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(n))}`)}return 0===t.length?"":"?"+t.join("&")}async function l_(e,t,r){var n;let a,{is404:i,staleTimeIterable:s,staticStageByteLengthPromise:o,runtimePrefetchStream:l}=r,u=new Set,c=new Set,d=new Set,{getDynamicParamFromSegment:f,query:h,appUsingSizeAdjustment:p,componentMod:{createMetadataComponents:m,createElement:g,Fragment:y},url:v,workStore:b}=t,w=(null==(n=t.renderOpts.prefetchHints)?void 0:n[t.pagePath])??null,S=await t3(e,w,f,h),_=!!t.renderOpts.serveStreamingMetadata,E=!!e[2]["global-not-found"],R=await o7(e),{Viewport:k,Metadata:x,MetadataOutlet:P}=m({tree:e,errorType:i&&!E?"not-found":void 0,parsedQuery:h,pathname:v.pathname,metadataContext:td(t.renderOpts),interpolatedParams:t.interpolatedParams,serveStreamingMetadata:_,isRuntimePrefetchable:R}),C=[],T=await nf({ctx:t,loaderTree:e,parentParams:{},parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:u,injectedJS:c,injectedFontPreloadTags:d,rootLayoutIncluded:!1,missingSlots:a,preloadCallbacks:C,authInterrupts:t.renderOpts.experimental.authInterrupts,MetadataOutlet:P}),A=t.res.getHeader("vary"),O="string"==typeof A&&A.includes(z.kO),j=g(y,{key:"h"},g(lc,{createElement:g,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),g(k,null),g(x,null),p?g("meta",{name:"next-size-adjust",content:""}):null),{GlobalError:$,styles:I}=await lB(e,t),D=b.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lo(t,{P:g(lE,{preloadCallbacks:C}),c:lw(v),q:lS(h),i:!!O,f:[[S,T,j,D]],m:a,G:[$,I],S:b.isStaticGeneration||t.renderOpts.cacheComponents,h:no(),s:s,l:o,p:l,d:b.isStaticGeneration?void 0:await ll(e)??void 0})}function lE({preloadCallbacks:e}){return e.forEach(e=>e()),null}async function lR(e,t,r,n){var a;let{getDynamicParamFromSegment:i,query:s,componentMod:{createMetadataComponents:o,createElement:l,Fragment:u},url:c,workStore:d}=t,f=!!t.renderOpts.serveStreamingMetadata,h=await o7(e),{Viewport:p,Metadata:m}=o({tree:e,parsedQuery:s,pathname:c.pathname,metadataContext:td(t.renderOpts),errorType:n,interpolatedParams:t.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:h}),g=l(u,{key:"h"},l(lc,{createElement:l,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),l(p,null),"",l(m,null)),y=(null==(a=t.renderOpts.prefetchHints)?void 0:a[t.pagePath])??null,v=await t3(e,y,i,s);r&&(tU(r)||Object.defineProperty(Error(r+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));let b=[l("html",{id:"__next_error__"},l("head",null),l("body",null,null)),{},null,!1,null],{GlobalError:w,styles:S}=await lB(e,t),_=d.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lo(t,{c:lw(c),q:lS(s),m:void 0,i:!1,f:[[v,b,g,_]],G:[w,S],S:d.isStaticGeneration||t.renderOpts.cacheComponents,h:no()})}function lk({reactServerStream:e,reactDebugStream:t,debugEndTime:r,preinitScripts:n,ServerInsertedHTMLProvider:i,nonce:s,images:o}){n();let l=O.use(e1(e,t,r,s)),u=s1(oS({navigatedAt:-1,initialRSCPayload:l,location:null}),null),{HeadManagerContext:c}=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");return(0,T.jsx)(c.Provider,{value:{appDir:!0,nonce:s},children:(0,T.jsx)(o5.Provider,{value:o??o9,children:(0,T.jsx)(i,{children:(0,T.jsx)(ow,{actionQueue:u,globalErrorState:l.G})})})})}function lx({reactServerStream:e,preinitScripts:t,ServerInsertedHTMLProvider:r,nonce:n,images:a}){t();let i=O.use(e1(e,void 0,void 0,n)),s=s1(oS({navigatedAt:-1,initialRSCPayload:i,location:null}),null);return(0,T.jsx)(o5.Provider,{value:a??o9,children:(0,T.jsx)(r,{children:(0,T.jsx)(ow,{actionQueue:s,globalErrorState:i.G})})})}async function lP(e,t,r,n,i,s,o,l,u,c,d,f,h){let p,m,g="/404"===n;g&&(t.statusCode=404);let y=Date.now(),{ComponentMod:v,nextFontManifest:b,serverActions:w,assetPrefix:S="",enableTainting:_,cacheComponents:E,setIsrStatus:R}=s,{cachedNavigations:k}=s.experimental;if(v.__next_app__){let e="performance"in globalThis?{require:(...e)=>{let t=performance.now();0===eO&&(eO=t);try{return e$+=1,v.__next_app__.require(...e)}finally{ej+=performance.now()-t}},loadChunk:(...e)=>{let t=performance.now(),r=v.__next_app__.loadChunk(...e);return r.finally(()=>{ej+=performance.now()-t}),r}}:v.__next_app__,t=()=>{if(!E)return!1;let e=eq.workUnitAsyncStorage.getStore();if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":case"cache":case"private-cache":return!0;case"prerender-ppr":case"prerender-legacy":case"request":case"unstable-cache":case"generate-static-params":return!1}};globalThis.__next_require__=(...r)=>{let n=e.require(...r);return t()&&(0,o8.trackPendingImport)(n),n},globalThis.__next_chunk_load__=(...r)=>{let n=e.loadChunk(...r);return t()&&(0,o8.trackPendingChunkLoad)(n),n}}t.onClose(()=>{o.shouldTrackFetchMetrics=!1}),e.originalRequest.on("end",()=>{if("performance"in globalThis){let e=eI({reset:!0});e&&(0,j.getTracer)().startSpan($.Fx.clientComponentLoading,{startTime:e.clientComponentLoadStart,attributes:{"next.clientComponentLoadCount":e.clientComponentLoadCount,"next.span_type":$.Fx.clientComponentLoading}}).end(e.clientComponentLoadStart+e.clientComponentLoadTimes)}});let x={statusCode:g?404:void 0},C=!!(null==b?void 0:b.appUsingSizeAdjust);v.patchFetch();let{routeModule:{userland:{loaderTree:T}},taintObjectReference:A}=v;_&&A("Do not pass process.env to Client Components since it will leak sensitive data",process.env),o.fetchMetrics=[],x.fetchMetrics=o.fetchMetrics;var O=i={...i};for(let e of tc)delete O[e];let{isStaticGeneration:I}=o,{flightRouterState:D,isPrefetchRequest:N,isRuntimePrefetchRequest:M,isRSCRequest:L,isHmrRefresh:U,nonce:F}=l;l.requestId?p=l.requestId:I?p=Buffer.from(await crypto.subtle.digest("SHA-1",Buffer.from(e.url))).toString("hex"):p=a("./dist/compiled/nanoid/index.cjs").nanoid(),m=l.htmlRequestId||p;let H=lu(f,h,s.experimental.optimisticRouting),B=t8(e).isPossibleServerAction,z=P(e,"resolvedPathname");if(!z)throw Object.defineProperty(new eM.z("resolvedPathname must be set in request metadata"),"__NEXT_ERROR_CODE",{value:"E981",enumerable:!1,configurable:!0});let q=await tP(o.page,z,h),X={componentMod:v,url:r,renderOpts:s,workStore:o,parsedRequestHeaders:l,getDynamicParamFromSegment:H,interpolatedParams:f,query:i,isPrefetch:N,isPossibleServerAction:B,requestTimestamp:y,appUsingSizeAdjustment:C,flightRouterState:D,requestId:p,htmlRequestId:m,pagePath:n,assetPrefix:S,isNotFoundPath:g,nonce:F,res:t,sharedContext:d,implicitTags:q};if((0,j.getTracer)().setRootSpanAttribute("next.route",n),I){let a=(0,j.getTracer)().wrap($.Wc.getBodyResult,{spanName:`prerender route (app) ${n}`,attributes:{"next.route":n}},lH),i=await a(e,t,X,x,T,h);if(i.dynamicAccess&&(0,tL.Lu)(i.dynamicAccess)&&s.isDebugDynamicAccesses)for(let e of(rh("The following dynamic usage was detected:"),(0,tL.JL)(i.dynamicAccess)))rh(e);if(o.invalidDynamicUsageError)throw(0,tL.gR)(o,o.invalidDynamicUsageError),new nr.f;if(i.digestErrorsMap.size){let e=i.digestErrorsMap.values().next().value;if(e)throw e}if(i.ssrErrors.length){let e=i.ssrErrors.find(e=>!eD(e)&&!(0,tD.C)(e)&&!(0,tM.p)(e));if(e)throw e}let l={metadata:x,contentType:ef.j9},u=(0,ry.C)(o);if(!1!==u){let e=u.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):l.waitUntil=e}lT(i,x,o),i.renderResumeDataCache&&(x.renderResumeDataCache=i.renderResumeDataCache);let c=new eL(await ti(i.stream),l);return o.cacheComponentsEnabled&&o.isBuildTimePrerendering&&s.runInstantValidation&&await lr(T)&&await lM(X,i.renderResumeDataCache??null),c}{let n=s.renderResumeDataCache??(null==u?void 0:u.renderResumeDataCache)??null,a=ng(T,X.getDynamicParamFromSegment),i=P(e,"fallbackParams")||null,l=ty.bind(null,e,t,r,a,q,s.onUpdateCookies,s.previewProps,U,c,n,i),d=l();if(L)if(M)return lg(e,X,d);else return E&&k?lp(e,X,d):lh(e,X,d);let f=!1,h=null;if(B){let r=await rx({req:e,res:t,ComponentMod:v,generateFlight:lh,workStore:o,requestStore:d,serverActions:w,ctx:X,metadata:x});if(r){if("not-found"===r.type){let r,n,a,s=(a=(n=!!(r=T[2])["global-not-found"])?{layout:r["global-not-found"],page:[()=>null,"next/dist/client/components/builtin/empty-stub"]}:{page:r["not-found"]},["",{children:[t1.OG,{},a,null]},n?r:{"global-error":r["global-error"]},null]);return t.statusCode=404,x.statusCode=404,new eL(await lA(d,e,t,X,s,h,u,x,void 0,i),{metadata:x,contentType:ef.j9})}else if("done"===r.type)if(r.result)return r.result.assignMetadata(x),r.result;else r.formState&&(h=r.formState)}f=!0}let p={metadata:x,contentType:ef.j9},m=await lA(d,e,t,X,T,h,u,x,f?void 0:l,i);o.invalidDynamicUsageError;let g=(0,ry.C)(o);if(!1!==g){let e=g.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):p.waitUntil=e}return new eL(m,p)}}let lC=(e,t,r,n,a,i,s,o)=>{var l,u,c;let d,f,h,p,m,g,y,v,b,w,S;if(!e.url)throw Object.defineProperty(Error("Invalid URL"),"__NEXT_ERROR_CODE",{value:"E182",enumerable:!1,configurable:!0});let _=(0,nL.r)(e.url,void 0,!1),E=(u=e.headers,c={isRoutePPREnabled:!0===i.experimental.isRoutePPREnabled,previewModeId:null==(l=i.previewProps)?void 0:l.previewModeId},p="1"===u[z._V],m="2"===u[z._V],g=void 0!==u[z.sX],v=(y=void 0!==u[z.hY])&&(!p||!c.isRoutePPREnabled)?function(e){if(void 0!==e){if(Array.isArray(e))throw Object.defineProperty(Error("Multiple router state headers were sent. This is not allowed."),"__NEXT_ERROR_CODE",{value:"E418",enumerable:!1,configurable:!0});if(e.length>4e4)throw Object.defineProperty(Error("The router state header was too large."),"__NEXT_ERROR_CODE",{value:"E142",enumerable:!1,configurable:!0});try{let t=JSON.parse(decodeURIComponent(e));return(0,tJ.assert)(t,tZ),t}catch{throw Object.defineProperty(Error("The router state header was sent but could not be parsed."),"__NEXT_ERROR_CODE",{value:"E10",enumerable:!1,configurable:!0})}}}(u[z.B]):void 0,b="/_tree"===u[z.qm],S="string"==typeof(w=u["content-security-policy"]||u["content-security-policy-report-only"])?function(e){var t;let r=e.split(";").map(e=>e.trim()),n=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!n)return;let a=null==(t=n.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(a){if(eB.test(a))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return a}}(w):void 0,{flightRouterState:v,isPrefetchRequest:p,isRuntimePrefetchRequest:m,isRouteTreePrefetchRequest:b,isHmrRefresh:g,isRSCRequest:y,nonce:S,previouslyRevalidatedTags:o6(u,c.previewModeId),requestId:f,htmlRequestId:h}),{isPrefetchRequest:R,previouslyRevalidatedTags:k,nonce:x}=E,P=null;if("string"==typeof i.postponed){if(a)throw Object.defineProperty(new eM.z("postponed state should not be provided when fallback params are provided"),"__NEXT_ERROR_CODE",{value:"E592",enumerable:!1,configurable:!0});d=nx(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a),P=function(e,t,r){try{var n,a;let i=null==(n=e.match(/^([0-9]*):/))?void 0:n[1];if(!i)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${e}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let s=parseInt(i),o=e.slice(i.length+1,i.length+s+1),l=n$(e.slice(i.length+s+1),r);try{if("null"===o)return{type:1,renderResumeDataCache:l};if(/^[0-9]/.test(o)){let e=null==(a=o.match(/^([0-9]*)/))?void 0:a[1];if(!e)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${JSON.stringify(o)}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let r=parseInt(e),n=JSON.parse(o.slice(e.length,e.length+r)),i=o.slice(e.length+r);for(let[e,[r,a]]of n){let{treeSegment:[,n]}=nP(t,e,a,null,null);i=i.replaceAll(r,n)}return{type:2,data:JSON.parse(i),renderResumeDataCache:l}}return{type:2,data:JSON.parse(o),renderResumeDataCache:l}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:l}}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:nj()}}}(i.postponed,d,i.experimental.maxPostponedStateSizeBytes)}else d=nx(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a);if((null==P?void 0:P.renderResumeDataCache)&&i.renderResumeDataCache)throw Object.defineProperty(new eM.z("postponed state and dev warmup immutable resume data cache should not be provided together"),"__NEXT_ERROR_CODE",{value:"E589",enumerable:!1,configurable:!0});let C=function({page:e,renderOpts:t,isPrefetchRequest:r,buildId:n,previouslyRevalidatedTags:a,nonce:i}){let s=!t.shouldWaitOnAllReady&&!t.supportsDynamicResponse&&!t.isDraftMode&&!t.isPossibleServerAction,o=s&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),l={isStaticGeneration:s,page:e,route:(0,eX.Yr)(e),incrementalCache:t.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:t.cacheLifeProfiles,isBuildTimePrerendering:t.isBuildTimePrerendering,fetchCache:t.fetchCache,isOnDemandRevalidate:t.isOnDemandRevalidate,isDraftMode:t.isDraftMode,isPrefetchRequest:r,buildId:n,reactLoadableManifest:(null==t?void 0:t.reactLoadableManifest)||{},assetPrefix:(null==t?void 0:t.assetPrefix)||"",nonce:i,afterContext:function(e){let{waitUntil:t,onClose:r,onAfterTaskError:n}=e;return new tv.AfterContext({waitUntil:t,onClose:r,onTaskError:n})}(t),cacheComponentsEnabled:t.cacheComponents,previouslyRevalidatedTags:a,refreshTagsByCacheKind:function(){let e=new Map,t=(0,tw.fs)();if(t)for(let[r,n]of t)"refreshTags"in n&&e.set(r,tb(async()=>n.refreshTags()));return e}(),runInCleanSnapshot:(0,tS.$p)(),shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return t.store=l,l}({page:i.routeModule.definition.page,renderOpts:i,isPrefetchRequest:R,buildId:o.buildId,previouslyRevalidatedTags:k,nonce:x});return A.workAsyncStorage.run(C,lP,e,t,_,r,n,i,C,E,P,s,o,d,a)};function lT(e,t,r){e.collectedTags&&(t.fetchTags=e.collectedTags.join(","));let n=String(e.collectedStale);t.headers??={},t.headers[z.UK]=n,!1===r.forceStatic||0===e.collectedRevalidate?t.cacheControl={revalidate:0,expire:void 0}:t.cacheControl={revalidate:!(e.collectedRevalidate>=ef.AR)&&e.collectedRevalidate,expire:e.collectedExpire>=ef.AR?void 0:e.collectedExpire},0===t.cacheControl.revalidate&&(t.staticBailoutInfo={description:r.dynamicUsageDescription,stack:r.dynamicUsageStack})}async function lA(e,t,r,n,a,i,s,l,u,c){let{assetPrefix:d,htmlRequestId:f,nonce:h,pagePath:p,renderOpts:m,requestId:g,workStore:y}=n,{basePath:v,buildManifest:b,ComponentMod:{createElement:w},crossOrigin:S,experimental:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,setReactDebugChannel:P,shouldWaitOnAllReady:C,subresourceIntegrityManifest:A,supportsDynamicResponse:O,cacheComponents:I}=m,{cachedNavigations:D}=m.experimental,{ServerInsertedHTMLProvider:N,renderServerInsertedHTML:M}=rN(),U=oN(h),F=oO((0,j.getTracer)().getTracePropagationData(),_.clientTraceMetadata),H=b.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${d}/_next/${e}${rJ(n,!1)}`,integrity:null==A?void 0:A[e],crossOrigin:S,noModule:!0,nonce:h})),[B,z]=rU(b,d,S,A,rJ(n,!0),h,k),q,X=(0,j.getTracer)().startSpan(`render route (app) ${p}`,{attributes:{"next.span_name":`render route (app) ${p}`,"next.span_type":$.Wc.getBodyResult,"next.route":p}}),V=e=>{X.isRecording()&&(e instanceof Error&&(X.recordException(e),X.setAttribute("error.type",e.name)),X.setStatus({code:j.SpanStatusCode.ERROR,message:e instanceof Error?e.message:void 0}),X.end())};return(0,j.getTracer)().withSpan(X,async()=>{var u,c;let w,{reactServerErrorsByDigest:k}=y,j=tX(!1,E,k,function(e,r){return null==R?void 0:R(e,t,lf(n,"react-server-components"),r)},X),$=[],J=tV(!1,E,k,$,function(e){return null==R?void 0:R(e,t,lf(n,"server-rendering"),!1)},X),K=null,Y=r.setHeader.bind(r),Q=r.appendHeader.bind(r),{clientModules:Z}=eJ();try{if(I&&D){let t,i,{renderToReadableStream:s}=n.componentMod,l=o$(_),u=new oj,c=new nt.V(null,null,!1);e.stale=ef.AR,e.stagedRendering=c,oI(e,u,l);let d=new Promise(e=>{t=e});if(await o7(a)){let t=nj();e.prerenderResumeDataCache=t;let r=new oA;(0,o8.trackPendingModules)(r),e.cacheSignal=r;let a=new TransformStream;i=a.readable,r.cacheReady().then(()=>lm(a.writable,n,t,e,j))}let f=await eq.workUnitAsyncStorage.run(e,l_,a,n,{is404:404===r.statusCode,staleTimeIterable:u,staticStageByteLengthPromise:d,runtimePrefetchStream:i}),h=await oC(()=>{c.advanceStage(nt.D.Static);let[r,n]=eq.workUnitAsyncStorage.run(e,s,f,Z,{onError:j,filterStackFrame:o}).tee();return lj(n,c).then(t),r},()=>{oD(u)},()=>{c.advanceStage(nt.D.Dynamic)});K=new e3(h)}else{let t=await eq.workUnitAsyncStorage.run(e,l_,a,n,{is404:404===r.statusCode}),i=P&&ls();if(i){let[e,t]=i.clientSide.readable.tee();w=e,P({readable:t},f,g)}K=new e3(eq.workUnitAsyncStorage.run(e,ta,n.componentMod,t,Z,{filterStackFrame:o,onError:j,debugChannel:null==i?void 0:i.serverSide}))}if(await L(),"string"==typeof m.postponed){if((null==s?void 0:s.type)===nI.DATA){let e=te(K.tee(),h,i);return X.isRecording()&&X.end(),W(e,G(en))}else if(s){let{postponed:t,preludeState:r}=function(e){let[t,r]=e.data;return{preludeState:t,postponed:r}}(s),a=(0,T.jsx)(lk,{reactServerStream:K.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),o=rF({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:$,basePath:v,tracingMetadata:F}),{stream:l,allReady:u}=await eq.workUnitAsyncStorage.run(e,to,a,t,{onError:J,nonce:h});return u.finally(()=>{X.isRecording()&&X.end()}),await ed(l,{delayDataUntilFirstHtmlChunk:r===nD.Empty,inlinedDataStream:te(K.consume(),h,i),getServerInsertedHTML:o,getServerInsertedMetadata:U,deploymentId:n.sharedContext.deploymentId})}}let t=rF({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:$,basePath:v,tracingMetadata:F}),l=(0,T.jsx)(lk,{reactServerStream:K.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),{stream:c,allReady:d}=await eq.workUnitAsyncStorage.run(e,ts,l,{onError:J,nonce:h,onHeaders:e=>{e.forEach((e,t)=>{Q(t,e)})},maxHeadersLength:x,bootstrapScriptContent:q,bootstrapScripts:[z],formState:i});return d.finally(()=>{X.isRecording()&&X.end()}),await (u={inlinedDataStream:te(K.consume(),h,i),isStaticGeneration:!0!==O||!!C,allReady:d,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:t,getServerInsertedMetadata:U,validateRootLayout:!1},eo(c,u))}catch(y){let t,s,u;if((0,nr.l)(y)||"object"==typeof y&&null!==y&&"message"in y&&"string"==typeof y.message&&y.message.includes("https://nextjs.org/docs/advanced-features/static-html-export"))throw V(y),y;let f=(0,tD.C)(y);if(f){let e=t$(y);throw rf(`${y.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),V(y),y}if((0,t_.RM)(y))r.statusCode=(0,t_.jT)(y),l.statusCode=r.statusCode,t=(0,t_.qe)(r.statusCode);else if((0,tE.n)(y)){t="redirect",r.statusCode=tx(y),l.statusCode=r.statusCode;let n=ey(tR(y),v),a=new Headers;(0,th.IN)(a,e.mutableCookies)&&Y("set-cookie",Array.from(a.values())),Y("location",n)}else f||(r.statusCode=500,l.statusCode=r.statusCode);let[m,g]=rU(b,d,S,A,rJ(n,!1),h,"/_not-found/page");try{if(s=await eq.workUnitAsyncStorage.run(e,lR,a,n,k.has(y.digest)?null:y,t),u=eq.workUnitAsyncStorage.run(e,ta,n.componentMod,s,Z,{filterStackFrame:o,onError:j}),null===K)throw V(y),y}catch(e){throw V(e),e}try{let{stream:t,allReady:r}=await eq.workUnitAsyncStorage.run(e,ts,(0,T.jsx)(lx,{reactServerStream:u,ServerInsertedHTMLProvider:N,preinitScripts:m,nonce:h,images:n.renderOpts.images}),{nonce:h,bootstrapScriptContent:q,bootstrapScripts:[g],formState:i});return r.finally(()=>{X.isRecording()&&X.end()}),await (c={inlinedDataStream:te(K.consume(),h,i),isStaticGeneration:!0!==O||!!C,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:rF({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:[],basePath:v,tracingMetadata:F}),getServerInsertedMetadata:U,validateRootLayout:!1},eo(t,c))}catch(e){throw V(e),e}}})}async function lO(e,t,r){let n=[],a=[],i=[],s=e.getReader(),o=!1;function l(){o||(o=!0,s.cancel())}r&&r.addEventListener("abort",l,{once:!0});try{for(;!o;){let{done:e,value:r}=await s.read();if(e){l();break}switch(t.currentStage){case nt.D.Before:throw Object.defineProperty(new eM.z("Unexpected stream chunk while in Before stage"),"__NEXT_ERROR_CODE",{value:"E942",enumerable:!1,configurable:!0});case nt.D.EarlyStatic:case nt.D.Static:n.push(r);case nt.D.EarlyRuntime:case nt.D.Runtime:a.push(r);case nt.D.Dynamic:i.push(r);break;case nt.D.Abandoned:break;default:t.currentStage}}}catch(e){if(!o)throw e}return{staticChunks:n,runtimeChunks:a,dynamicChunks:i}}async function lj(e,t){let r=0,n=e.getReader();for(t.onStage(nt.D.EarlyRuntime,()=>{n.cancel()});;){let{done:e,value:a}=await n.read();if(e)break;if(t.currentStage<=nt.D.Static)r+=a.byteLength;else{n.cancel();break}}return r}function l$(e,t,r,n){return{cookies:e.delayUntilStage(nt.D.Runtime,"cookies",t),earlyCookies:e.delayUntilStage(nt.D.EarlyRuntime,"cookies",t),mutableCookies:e.delayUntilStage(nt.D.Runtime,"cookies",r),earlyMutableCookies:e.delayUntilStage(nt.D.EarlyRuntime,"cookies",r),headers:e.delayUntilStage(nt.D.Runtime,"headers",n),earlyHeaders:e.delayUntilStage(nt.D.EarlyRuntime,"headers",n),sharedParamsParent:e.delayUntilStage(nt.D.Runtime,void 0,""),earlySharedParamsParent:e.delayUntilStage(nt.D.EarlyRuntime,void 0,""),sharedSearchParamsParent:e.delayUntilStage(nt.D.Runtime,void 0,""),earlySharedSearchParamsParent:e.delayUntilStage(nt.D.EarlyRuntime,void 0,""),connection:e.delayUntilStage(nt.D.Dynamic,"connection",void 0)}}async function lI(e,t,r,n,i,s,o,l,u){let c,{implicitTags:d,nonce:f,workStore:h}=o,p=new AbortController,m=new AbortController,g=new AbortController,{ServerInsertedHTMLProvider:y}=rN();c="prerender-client"===e?{type:"prerender-client",phase:"render",rootParams:n,fallbackRouteParams:i,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:s,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null}:{type:"validation-client",phase:"render",rootParams:n,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null,boundaryState:null,validationSamples:l,validationSampleTracking:u,fallbackRouteParams:i};let v=function(e,t,r){{let{Readable:n}=a("node:stream"),i=0,s=new n({read(){for(;i{for(;i{s.push(null)})},{once:!0}),s}}(t,r,m.signal),b=eq.workUnitAsyncStorage.run(c,tu,(0,T.jsx)(lk,{reactServerStream:v,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:y,nonce:f,images:o.renderOpts.images}),{signal:m.signal,onError:e=>{let t=tq(e);return t||(tB(e)?void console.error(e):void(m.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,h.route,o_.ProspectiveRender)))}});m.signal.addEventListener("abort",()=>{g.abort()},{once:!0}),b.catch(e=>{m.signal.aborted||(0,tL.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,h.route,o_.ProspectiveRender)});let w=new oA;(0,o8.trackPendingModules)(w),await w.cacheReady(),m.abort()}async function lD(e,t,r,n,i,s,o,l){let u="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{createCombinedPayloadAtDepth:c,createCombinedPayloadStream:d,collectStagedSegmentData:f,discoverValidationDepths:h}=s.componentMod.InstantValidation(),{createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js");null==u||u("\nStarting depth-based instant validation...");let m=s.componentMod.routeModule.userland.loaderTree,g=eJ(),{cache:y,payload:v,stageEndTimes:b}=await f({[nt.D.Static]:e.staticChunks,[nt.D.Runtime]:e.runtimeChunks,[nt.D.Dynamic]:e.dynamicChunks},t,r,!0,g),{implicitTags:w,nonce:S,workStore:_}=s,E=!!s.renderOpts.setReactDebugChannel;async function R(e,t){return k(e,t,null)}async function k(e,t,a){let u,f=new AbortController,h={expectedIds:new Set,renderedIds:new Set},R=!1;if(a)for(let e of(R=!0,a.expectedIds))h.expectedIds.add(e);let x=await c(v,y,m,s.getDynamicParamFromSegment,s.query,e,t,f.signal,h,g,b,R);if(null===x)return null;let P=new AbortController,C=new AbortController,A=()=>{},{ServerInsertedHTMLProvider:O}=rN(),{stream:j,debugStream:$}=await d(x.payload,f,P.signal,g,r,E),I=(0,tL.md)(x.createInstantStack),D=null!==l?p():null,N=(0,tL.uO)(!1),M={type:"validation-client",phase:"render",rootParams:n,implicitTags:w,renderSignal:C.signal,controller:P,cacheSignal:null,dynamicTracking:N,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...w.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:o,varyParamsAccumulator:null,boundaryState:h,fallbackRouteParams:i,validationSamples:l,validationSampleTracking:D};try{let{prelude:e}=await oC(()=>{let e=eq.workUnitAsyncStorage.run(M,tu,(0,T.jsx)(lk,{reactServerStream:j,reactDebugStream:$??void 0,debugEndTime:void 0,preinitScripts:A,ServerInsertedHTMLProvider:O,nonce:S,images:s.renderOpts.images}),{signal:P.signal,onError:(e,t)=>{if((0,tL.AA)(e)||P.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tL.g)(_,e,I,N,x.hasAmbiguousErrors?tL.Q.Runtime:tL.Q.Dynamic,h);return}if(!P.signal.aborted){let r=t.componentStack;if("string"==typeof r){let t=e;if(e&&"object"==typeof e&&"digest"in e&&"string"==typeof e.digest){let r=_.reactServerErrorsByDigest.get(e.digest);void 0!==r&&(t=r)}(0,tL.n1)(_,I,t,r)}}return tB(e)?void console.error(e):tq(e)}});return P.signal.addEventListener("abort",()=>{C.abort()},{once:!0}),e},()=>{P.abort()}),{preludeIsEmpty:t}=await e7(e);u=(0,tL.Jr)(_,t?tL.r0.Empty:tL.r0.Full,I,D,h)}catch(e){u=(0,tL.Jr)(_,tL.r0.Errored,I,D,h)}if(0===u.length)return[];if(null===a&&x.hasAmbiguousErrors){let r=await k(e,t,h);if(null!==r&&r.length>0)return r}return u}let x=h(m),P=x.length;for(let e=P-1;e>=0;e--){let t=x[e];for(let r=t;r>=0;r--){null==u||u(`Trying depth ${e}`+(r>0?` + groupDepth ${r}...`:"..."));let t=await R(e,r);if(null===t){null==u||u(` No config at depth ${e}+${r}, skipping.`);continue}if(t.length>0)return null==u||u(` Depth ${e}+${r}: ❌ Failed (${t.length} errors)`),t;null==u||u(` Depth ${e}+${r}: ✅ Passed`)}}return null==u||u(`✅ All depths passed`),[]}async function lN(e,t,r,n,a,i){let{componentMod:s}=e,{clientModules:l}=eJ(),u=-1/0,c=t,d=new oA;(0,o8.trackPendingModules)(d);let f=i?nj(i):nj(),h=new AbortController,p=new AbortController,m=new AbortController,g=new nt.V(p.signal,m,!0);c.prerenderResumeDataCache=f,c.renderResumeDataCache=null,c.stagedRendering=g,c.cacheSignal=d,c.asyncApiPromises=l$(g,c.cookies,c.mutableCookies,c.headers),c.controller=void 0,c.renderSignal=void 0;let y=await n(c),v=e=>{!0===m.signal.aborted||(d.hasPendingReads()?m.abort():g.advanceStage(e))},b=await oC(()=>{g.advanceStage(nt.D.EarlyStatic),u=performance.now()+performance.timeOrigin;let e=eq.workUnitAsyncStorage.run(c,ta,s,y,l,{onError:a(h.signal,!1),startTime:u,filterStackFrame:o,signal:h.signal});h.signal.addEventListener("abort",()=>{let{reason:e}=h.signal;p.abort(e)},{once:!0});let t=lO(e,g,p.signal);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{v(nt.D.Static)},()=>{v(nt.D.EarlyRuntime)},()=>{v(nt.D.Runtime)},()=>{v(nt.D.Dynamic)});if(g.currentStage!==nt.D.Abandoned)return{accumulatedChunksPromise:b.accumulatedChunksPromise,startTime:u,stageController:g,requestStore:c};await d.cacheReady(),h.abort(),c=r();let w=new AbortController,S=new AbortController,_=new nt.V(S.signal,null,!0);c.prerenderResumeDataCache=null,c.renderResumeDataCache=n$(f),c.stagedRendering=_,c.cacheSignal=null,c.asyncApiPromises=l$(_,c.cookies,c.mutableCookies,c.headers),c.controller=w,c.renderSignal=S.signal;let E=await n(c);return{accumulatedChunksPromise:(await oC(()=>{_.advanceStage(nt.D.EarlyStatic),u=performance.now()+performance.timeOrigin;let e=eq.workUnitAsyncStorage.run(c,ta,s,E,l,{onError:a(w.signal,!0),startTime:u,filterStackFrame:o,signal:w.signal});w.signal.addEventListener("abort",()=>{S.abort(w.signal.reason)},{once:!0});let t=lO(e,_,null);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{_.advanceStage(nt.D.Static)},()=>{_.advanceStage(nt.D.EarlyRuntime)},()=>{_.advanceStage(nt.D.Runtime)},()=>{_.advanceStage(nt.D.Dynamic)})).accumulatedChunksPromise,startTime:u,stageController:_,requestStore:c}}async function lM(e,t){let r=async()=>{let r;try{r=await A.workAsyncStorage.exit(async()=>lL(e,t))}catch(e){console.error(Object.defineProperty(new eM.z("An unexpected error occcured during instant validation",{cause:e}),"__NEXT_ERROR_CODE",{value:"E1097",enumerable:!1,configurable:!0})),r=!1}if(!r)throw console.error("Stopping prerender due to instant validation errors."),new nr.f};if(!process.env.__NEXT_TEST_MODE||!process.env.NEXT_TEST_LOG_VALIDATION)return await r();{let t=Date.now(),n=e.workStore.route;console.error(""+JSON.stringify({type:"validation_start",requestId:t,url:n})+"");try{return await r()}finally{console.error(""+JSON.stringify({type:"validation_end",requestId:t,url:n})+"")}}}async function lL(e,t){let r="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{workStore:n}=e,a=n.route,i=e.componentMod.routeModule.userland.loaderTree,s=await la(i);s&&0!==s.length||(s=[{}]),null==r||r("Resolved samples:",s);let o=function(e,t){let r=nE(e,!0),{pathnameRouteParamSegments:n,params:a}=function(e,t){let r=[],n={},a=[{tree:e,depth:0,currentPath:[]}];for(;a.length>0;){let{tree:e,depth:i,currentPath:s}=a.shift(),{segment:o,parallelRoutes:l}=rG(e),u=s,c=i,d=n_(o);if(d&&"route-group"!==d.type&&"parallel-route"!==d.type&&(u=[...s,d],c=i+1),(null==d?void 0:d.type)==="dynamic"){let{paramName:e,paramType:a}=d.param;if(i({paramName:e,paramType:t}));!function(e,t,r,n){let a=[{tree:e,depth:0}];for(;a.length>0;){let{tree:e,depth:i}=a.pop(),{segment:s,parallelRoutes:o}=rG(e),l=n_(s);if((null==l?void 0:l.type)==="dynamic"&&!t.hasOwnProperty(l.param.paramName)&&!n.some(e=>e.paramName===l.param.paramName)){let{paramName:e,paramType:a}=l.param,s=nk(e,a,i,r,t);void 0!==s?t[e]=s:"optional-catchall"!==a&&n.push({paramName:e,paramType:a})}let u=i;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))a.push({tree:e,depth:u})}}(t.userland.loaderTree,a,r,i);if(0===i.length)return null;let s=Math.random().toString(16).slice(2),o=new Map;for(let{paramName:e,paramType:t}of i)o.set(e,[`%%drp:${e}:${s}%%`,tW[t]]);return o}(a,e.componentMod.routeModule);for(let n=0;nlU(e,l,o,t))}catch(e){if((0,tz.R)(e))i=[e];else throw e}if(i.length>0){null==r||r(`❌ Sample failed validation (${i.length} errors)`);let e=s.length>1?` (sample ${n+1} of ${s.length})`:"";for(let e of i)console.error(e);return console.error(`Build-time instant validation failed for route "${a}"${e}.`),!1}null==r||r("✅ Sample validated successfully")}return!0}async function lU(e,t,r,n){let i,s,{workStore:o}=e,l=e.componentMod.routeModule.userland.loaderTree,u=o.route,{createCookiesFromSample:c,createHeadersFromSample:d,createDraftModeForValidation:f,createRelativeURLFromSamples:h,createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js"),m=h(u,t.params,t.searchParams),g=t.params??{},y=null;if(r){let e=new Map;for(let[t,n]of r)t in g||e.set(t,n);y=e}let v=lu(g,y,!1),b=ng(l,v);({query:s,...i}=m);let{AfterContext:w}=a("./dist/esm/server/after/after-context.js"),S={isStaticGeneration:!1,page:o.page,route:o.route,incrementalCache:o.incrementalCache,cacheLifeProfiles:o.cacheLifeProfiles,isBuildTimePrerendering:!1,fetchCache:o.fetchCache,isOnDemandRevalidate:!1,isDraftMode:!1,isPrefetchRequest:!1,buildId:o.buildId,reactLoadableManifest:o.reactLoadableManifest,assetPrefix:o.assetPrefix,nonce:o.nonce,afterContext:new w({waitUntil(e){e.catch(()=>{})},onClose(){},onTaskError(){}}),cacheComponentsEnabled:o.cacheComponentsEnabled,previouslyRevalidatedTags:[],refreshTagsByCacheKind:new Map,runInCleanSnapshot:o.runInCleanSnapshot,shouldTrackFetchMetrics:!1,reactServerErrorsByDigest:new Map};return A.workAsyncStorage.run(S,async()=>{let r={componentMod:e.componentMod,url:i,renderOpts:e.renderOpts,workStore:S,parsedRequestHeaders:e.parsedRequestHeaders,getDynamicParamFromSegment:v,interpolatedParams:g,query:s,isPrefetch:!1,isPossibleServerAction:!1,requestTimestamp:e.requestTimestamp,appUsingSizeAdjustment:e.appUsingSizeAdjustment,flightRouterState:void 0,requestId:e.requestId,htmlRequestId:e.htmlRequestId,pagePath:e.pagePath,assetPrefix:e.assetPrefix,isNotFoundPath:e.isNotFoundPath,nonce:e.nonce,res:e.res,sharedContext:e.sharedContext,implicitTags:e.implicitTags},a={params:t.params,searchParams:t.searchParams},o=()=>{let r=c(t.cookies,u),n=new eC.VO(new Headers),i=d(t.headers,t.cookies,u),s=f();return{type:"request",phase:"render",implicitTags:e.implicitTags,url:{pathname:m.pathname,search:m.search},headers:i,cookies:r,mutableCookies:n,userspaceMutableCookies:n,draftMode:s,rootParams:b,validationSamples:a,validationSampleTracking:p(),renderResumeDataCache:null,prerenderResumeDataCache:null,stagedRendering:null,asyncApiPromises:void 0}},h=tX(!0,!0,S.reactServerErrorsByDigest,()=>{}),{accumulatedChunksPromise:w,startTime:_,stageController:E,requestStore:R}=await lN(r,o(),o,e=>eq.workUnitAsyncStorage.run(e,l_,l,r,{is404:!1}),e=>function(t){let r=tq(t);return r||(e.aborted?void 0:h(t))},n),k=await w,x=R.validationSampleTracking;if(x.missingSampleErrors.length>0)return x.missingSampleErrors;if(E.currentStage===nt.D.Abandoned&&E.syncInterruptReason)return[E.syncInterruptReason];let P=(r.renderOpts.allowEmptyStaticShell??!1)||await le(l),C=p();return(await lI("validation-client",k.dynamicChunks,k.dynamicChunks,b,y,P,r,a,C),C.missingSampleErrors.length>0)?C.missingSampleErrors:await lD(k,null,_,b,y,r,void 0,a)})}function lF(e){let{isStaticGeneration:t}=e;return!!t}async function lH(e,t,r,n,a,i){var s,l,u;let{assetPrefix:c,getDynamicParamFromSegment:d,implicitTags:f,nonce:h,pagePath:p,renderOpts:m,workStore:g}=r,{basePath:y,buildManifest:v,ComponentMod:b,crossOrigin:w,experimental:S,isDebugDynamicAccesses:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,subresourceIntegrityManifest:P,cacheComponents:C}=m,{cachedNavigations:A}=m.experimental,O=(m.allowEmptyStaticShell??!1)||await le(a),$=ng(a,d),{ServerInsertedHTMLProvider:I,renderServerInsertedHTML:D}=rN(),N=oN(h),M=oO((0,j.getTracer)().getTracePropagationData(),S.clientTraceMetadata),L=v.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${c}/_next/${e}${rJ(r,!1)}`,integrity:null==P?void 0:P[e],crossOrigin:w,noModule:!0,nonce:h})),[U,F]=rU(v,c,w,P,rJ(r,!0),h,k),{reactServerErrorsByDigest:H}=g,B=!S.isRoutePPREnabled,z=tX(!1,E,H,function(t,n){if(B)return null==R?void 0:R(t,e,lf(r,"react-server-components"),n)}),q=[],X=tV(!1,E,H,q,function(t){if(B)return null==R?void 0:R(t,e,lf(r,"server-rendering"),!1)}),V=null,G=e=>{n.headers??={},n.headers[e]=t.getHeader(e)},J=(e,r)=>{Array.isArray(r)?r.forEach(r=>{t.appendHeader(e,r)}):t.appendHeader(e,r),G(e)},K=o$(S),{clientModules:Q}=eJ(),Z=null;try{if(C){let e,s,l=new AbortController,u=new AbortController,c=new AbortController,d=new oA,p=nj(),v=m.renderResumeDataCache??null,w={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:new AbortController,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},S=await eq.workUnitAsyncStorage.run(w,l_,a,r,{is404:404===t.statusCode}),E=Z={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:l,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},R={filterStackFrame:o,onError:e=>{let t=tq(e);return t||(tB(e)?void console.error(e):l.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)))},signal:u.signal},k=eq.workUnitAsyncStorage.run(E,tl(b),S,Q,R);if(u.signal.addEventListener("abort",()=>{c.abort(),l.abort()},{once:!0}),(0,o8.trackPendingModules)(d),await d.cacheReady(),u.abort(),g.invalidDynamicUsageError)throw(0,tL.gR)(g,g.invalidDynamicUsageError),new nr.f;try{e=await e4(k)}catch(e){u.signal.aborted||l.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)}if(e){let t=new AbortController,n=new AbortController,a=new AbortController,s={type:"prerender-client",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:a.signal,controller:t,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},o=eq.workUnitAsyncStorage.run(s,tu,(0,T.jsx)(lk,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{signal:n.signal,onError:e=>{let t=tq(e);return t||(tB(e)?void console.error(e):void(n.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)))},bootstrapScripts:[F]});n.signal.addEventListener("abort",()=>{a.abort()},{once:!0}),o.catch(e=>{n.signal.aborted||(0,tL.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)}),(0,o8.trackPendingModules)(d),await d.cacheReady(),n.abort()}m.renderResumeDataCache&&(v=n$(p));let P=new AbortController,j=new AbortController,B=ns(),G={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:j.signal,controller:new AbortController,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B},ee=await eq.workUnitAsyncStorage.run(G,l_,a,r,{is404:404===t.statusCode});A&&(ee.s=s=new oj);let et=(0,tL.uO)(_),er=!1,en=Z={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:j.signal,controller:P,cacheSignal:null,dynamicTracking:et,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B};void 0!==s&&oI(en,s,K);let ea=!0,ei={filterStackFrame:o,onError:e=>z(e),signal:P.signal},es=async()=>{let e=[nl(B)];if(void 0!==s&&e.push(oD(s)),await Promise.all(e),P.signal.aborted){er=!0;return}ea&&(er=!0),P.abort()},eo=async()=>{let e=eq.workUnitAsyncStorage.run(en,tl(b),ee,Q,ei);P.signal.addEventListener("abort",()=>{j.abort()},{once:!0});let t=await e;return ea=!1,t},ed=V=await e4(oC(eo,es)),eh=(0,tL.uO)(_),ep=new AbortController,em=new AbortController,eg={type:"prerender-client",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:em.signal,controller:ep,cacheSignal:null,dynamicTracking:eh,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},ey=(0,tL.Wt)(),ev=tr(J),{prelude:eb,postponed:ew}=await oC(()=>{let e=eq.workUnitAsyncStorage.run(eg,tu,(0,T.jsx)(lk,{reactServerStream:ed.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{signal:ep.signal,onError:(e,t)=>{if((0,tL.AA)(e)||ep.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tL.Pe)(g,e,ey,eh);return}return X(e,t)},onHeaders:ev,maxHeadersLength:x,bootstrapScripts:[F]});return ep.signal.addEventListener("abort",()=>{em.abort()},{once:!0}),e},()=>{ep.abort()}),{prelude:eS,preludeIsEmpty:e_}=await e7(eb);O||(0,tL.V2)(g,e_?tL.r0.Empty:tL.r0.Full,ey,et);let eE=rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});n.flightData=await Y(A?lv(ed.asStream(),er):ed.asStream());let eR=A?n.flightData.subarray(1):n.flightData;if(await lz(eR,en,b,m,r.pagePath,n),er){null!=ew?n.postponed=await nN(ew,e_?nD.Empty:nD.Full,i,p,C):n.postponed=await nM(p,C),ed.consume();let e={getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await el(eS,e),dynamicAccess:(0,tL.yI)(et,eh),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:n$(p)}}{let e;if(g.forceDynamic)throw Object.defineProperty(new nr.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=eS;if(null!=ew){let e=tt(),n=await tn((0,T.jsx)(lk,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(ew)),{signal:(0,tL.kb)(),onError:X,nonce:h});t=W(eS,n)}if(i&&i.size>0){let n=await e6(ta(b,[],Q,{filterStackFrame:o,onError:z}));e=await ec(t,{inlinedDataStream:te(n.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId})}else e=await eu(t,{inlinedDataStream:te(ed.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId});return{digestErrorsMap:H,ssrErrors:q,stream:e,dynamicAccess:(0,tL.yI)(et,eh),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:n$(p)}}}if(S.isRoutePPREnabled){let e,s=(0,tL.uO)(_),l=nj(),u=Z={type:"prerender-ppr",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:l},c=await eq.workUnitAsyncStorage.run(u,l_,a,r,{is404:404===t.statusCode});e=V=await e6(eq.workUnitAsyncStorage.run(u,ta,b,c,Q,{filterStackFrame:o,onError:z}));let d={type:"prerender-ppr",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:l},p=tr(J),{prelude:v,postponed:w}=await eq.workUnitAsyncStorage.run(d,tu,(0,T.jsx)(lk,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{onError:X,onHeaders:p,maxHeadersLength:x,bootstrapScripts:[F]}),S=rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M}),E=await Y(e.asStream());lF(g)&&(n.flightData=E,await lz(E,d,b,m,r.pagePath,n));let{prelude:R,preludeIsEmpty:k}=await e7(v);if((0,tL.Lu)(s.dynamicAccesses)){null!=w?n.postponed=await nN(w,k?nD.Empty:nD.Full,i,l,C):n.postponed=await nM(l,C),e.consume();let t={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await el(R,t),dynamicAccess:s.dynamicAccesses,collectedRevalidate:u.revalidate,collectedExpire:u.expire,collectedStale:K(u.stale),collectedTags:u.tags}}if(i&&i.size>0){n.postponed=await nM(l,C);let e={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await el(R,e),dynamicAccess:s.dynamicAccesses,collectedRevalidate:u.revalidate,collectedExpire:u.expire,collectedStale:K(u.stale),collectedTags:u.tags}}{if(g.forceDynamic)throw Object.defineProperty(new nr.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=R;if(null!=w){let e=tt(),n=await tn((0,T.jsx)(lk,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(w)),{signal:(0,tL.kb)(),onError:X,nonce:h});t=W(R,n)}return{digestErrorsMap:H,ssrErrors:q,stream:await eu(t,{inlinedDataStream:te(e.consumeAsStream(),h,null),getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId}),dynamicAccess:s.dynamicAccesses,collectedRevalidate:u.revalidate,collectedExpire:u.expire,collectedStale:K(u.stale),collectedTags:u.tags}}}{let e,i=Z={type:"prerender-legacy",phase:"render",rootParams:$,implicitTags:f,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags]},l=await eq.workUnitAsyncStorage.run(i,l_,a,r,{is404:404===t.statusCode});e=V=await e6(eq.workUnitAsyncStorage.run(i,ta,b,l,Q,{filterStackFrame:o,onError:z}));let{stream:u}=await eq.workUnitAsyncStorage.run(i,ts,(0,T.jsx)(lk,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{onError:X,nonce:h,bootstrapScripts:[F]});if(lF(g)){let t=await Y(e.asStream());n.flightData=t,await lz(t,i,b,m,r.pagePath,n)}let c=rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});return{digestErrorsMap:H,ssrErrors:q,stream:await (s={inlinedDataStream:te(e.consumeAsStream(),h,null),isStaticGeneration:!0,getServerInsertedHTML:c,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId},eo(u,s)),collectedRevalidate:i.revalidate,collectedExpire:i.expire,collectedStale:K(i.stale),collectedTags:i.tags}}}catch(R){let e;if((0,nr.l)(R)||"object"==typeof R&&null!==R&&"message"in R&&"string"==typeof R.message&&R.message.includes("https://nextjs.org/docs/advanced-features/static-html-export")||(0,tN.isDynamicServerError)(R))throw R;let i=(0,tD.C)(R);if(i){let e=t$(R);throw rf(`${R.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),R}if(null===V)throw R;(0,t_.RM)(R)?(t.statusCode=(0,t_.jT)(R),n.statusCode=t.statusCode,e=(0,t_.qe)(t.statusCode)):(0,tE.n)(R)?(e="redirect",t.statusCode=tx(R),n.statusCode=t.statusCode,l=ey(tR(R),y),t.setHeader("location",l),G("location")):i||(t.statusCode=500,n.statusCode=t.statusCode);let[s,d]=rU(v,c,w,P,rJ(r,!1),h,"/_not-found/page"),S=Z={type:"prerender-legacy",phase:"render",rootParams:$,implicitTags:f,revalidate:void 0!==(null==Z?void 0:Z.revalidate)?Z.revalidate:ef.AR,expire:void 0!==(null==Z?void 0:Z.expire)?Z.expire:ef.AR,stale:void 0!==(null==Z?void 0:Z.stale)?Z.stale:ef.AR,tags:[...(null==Z?void 0:Z.tags)||f.tags]},_=await eq.workUnitAsyncStorage.run(S,lR,a,r,H.has(R.digest)?void 0:R,e),E=eq.workUnitAsyncStorage.run(S,ta,b,_,Q,{filterStackFrame:o,onError:z});try{let{stream:e}=await eq.workUnitAsyncStorage.run(S,ts,(0,T.jsx)(lx,{reactServerStream:E,ServerInsertedHTMLProvider:I,preinitScripts:s,nonce:h,images:r.renderOpts.images}),{nonce:h,bootstrapScripts:[d],formState:null});if(lF(g)){let e=await Y(V.asStream());n.flightData=e,await lz(e,S,b,m,r.pagePath,n)}let t=V.consumeAsStream();return{digestErrorsMap:H,ssrErrors:q,stream:await (u={inlinedDataStream:te(t,h,null),isStaticGeneration:!0,getServerInsertedHTML:rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:[],basePath:y,tracingMetadata:M}),getServerInsertedMetadata:N,validateRootLayout:!1,deploymentId:r.sharedContext.deploymentId},eo(e,u)),dynamicAccess:null,collectedRevalidate:null!==Z?Z.revalidate:ef.AR,collectedExpire:null!==Z?Z.expire:ef.AR,collectedStale:K(null!==Z?Z.stale:ef.AR),collectedTags:null!==Z?Z.tags:null}}catch(e){throw e}}}let lB=async(e,t)=>{let r=rG(e).modules["global-error"];if(!r)throw Object.defineProperty(Error("Invariant: global-error module is required but not found in loader tree"),"__NEXT_ERROR_CODE",{value:"E983",enumerable:!1,configurable:!0});let{componentMod:{createElement:n}}=t,[a,i]=await rY({ctx:t,filePath:r[1],getComponent:r[0],injectedCSS:new Set,injectedJS:new Set});return{GlobalError:a,styles:i}};async function lz(e,t,r,n,a,i){let s,{clientModules:o,edgeRscModuleMapping:l,rscModuleMapping:u}=eJ(),c={moduleLoading:null,moduleMap:u,serverModuleMap:eY()},d=o$(n.experimental)(t.stale),f=n.experimental.prefetchInlining;if(f)if(n.isBuildTimePrerendering)i.prefetchHints=s=await r.collectPrefetchHints(e,d,o,c,f.maxSize,f.maxBundleSize);else{var h;s=(null==(h=n.prefetchHints)?void 0:h[a])??null}else s=null;i.segmentData=await r.collectSegmentData(n.cacheComponents,e,d,o,c,!!n.experimental.prefetchInlining,s)}require("next/dist/build/adapter/setup-node-env.external.js"),a("./dist/esm/shared/lib/modern-browserslist-target.js");let lq="build-manifest.json";[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let lX=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,lV=/\/\[[^/]+\](?=\/|$)/;function lW(e,t=!0){return((0,nS.m1)(e)&&(e=(0,nS.$8)(e).interceptedRoute),t)?lV.test(e):lX.test(e)}function lG(e){return eb(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}var lJ=a("./dist/esm/shared/lib/page-path/ensure-leading-slash.js");function lK(e){let t=/^\/index(\/|$)/.test(e)&&!lW(e)?`/index${e}`:"/"===e?"/index":(0,lJ.A)(e);{let{posix:e}=a("path"),r=e.normalize(t);if(r!==t)throw new oz.MK(`Requested and resolved page mismatch: ${t} ${r}`)}return t}let lY=["ico","jpg","jpeg","png","svg"],lQ=["jpg","jpeg","png"],lZ=["jpg","jpeg","png","gif"],l0=["jpg","jpeg","png","gif"],l1=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,l2=/^[\\/]favicon\.ico$/,l3=/^[\\/]robots\.txt$/,l4=/^[\\/]manifest\.json$/,l6=/^[\\/]manifest\.webmanifest$/,l8=/[\\/]sitemap\.xml$/,l9=new Map;var l5=a("./dist/esm/shared/lib/isomorphic/path.js"),l7=a.n(l5),ue=a("./tags-manifest.external");class ut{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(l7().dirname(e)),n=r[1].then(()=>this.fs.writeFile(e,t));n.catch(()=>{}),r[2].push(n)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let ur=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class un{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?un.memoryCache?un.debug&&console.log("FileSystemCache: memory store already initialized"):(un.debug&&console.log("FileSystemCache: using memory store for fetch cache"),un.memoryCache=(0,ur.getMemoryCache)(e.maxMemoryCacheSize)):un.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,un.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let n of e){let e=ue.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),ue.tagsManifest.set(n,a)}else ue.tagsManifest.set(n,{...e,expired:r})}}async get(...e){var t,r,n,a,i,s,o,l,u;let[c,d]=e,{kind:f}=d,h=null==(t=un.memoryCache)?void 0:t.get(c);if(un.debug&&(f===r1.FETCH?console.log("FileSystemCache: get",c,d.tags,f,!!h):console.log("FileSystemCache: get",c,f,!!h)),!h)try{if(f===r1.APP_ROUTE){let e=this.getFilePath(`${c}.body`,r1.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),n=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,ef.EP),"utf8"));h={lastModified:r.getTime(),value:{kind:r0.APP_ROUTE,body:t,headers:n.headers,status:n.status}}}else{let e=this.getFilePath(f===r1.FETCH?c:`${c}.html`,f),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(f===r1.FETCH){let{tags:e,fetchIdx:n,fetchUrl:a}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(h={lastModified:i,value:l},(null==(s=h.value)?void 0:s.kind)===r0.FETCH){let t=null==(o=h.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(un.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(c,h.value,{fetchCache:!0,tags:e,fetchIdx:n,fetchUrl:a}))}}else if(f===r1.APP_PAGE){let n,a,i;try{n=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,ef.EP),"utf8"))}catch{}if(null==n?void 0:n.segmentPaths){let e=new Map;a=e;let t=c+ef.mH;await Promise.all(n.segmentPaths.map(async r=>{let n=this.getFilePath(t+r+ef.tz,r1.APP_PAGE);try{e.set(r,await this.fs.readFile(n))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==n?void 0:n.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${c}${ef.RM}`,r1.APP_PAGE))),h={lastModified:r.getTime(),value:{kind:r0.APP_PAGE,html:t,rscData:i,postponed:null==n?void 0:n.postponed,headers:null==n?void 0:n.headers,status:null==n?void 0:n.status,segmentData:a}}}else if(f===r1.PAGES){let e,n={};d.isFallback||(n=JSON.parse(await this.fs.readFile(this.getFilePath(`${c}${ef.x3}`,r1.PAGES),"utf8"))),h={lastModified:r.getTime(),value:{kind:r0.PAGES,html:t,pageData:n,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${f} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}h&&(null==(l=un.memoryCache)||l.set(c,h))}catch{return null}if((null==h||null==(r=h.value)?void 0:r.kind)===r0.APP_PAGE||(null==h||null==(n=h.value)?void 0:n.kind)===r0.APP_ROUTE||(null==h||null==(a=h.value)?void 0:a.kind)===r0.PAGES){let e=null==(u=h.value.headers)?void 0:u[ef.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,ue.areTagsExpired)(t,h.lastModified))return un.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==h||null==(i=h.value)?void 0:i.kind)===r0.FETCH){let e=d.kind===r1.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return un.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,ue.areTagsExpired)(e,h.lastModified))return un.debug&&console.log("FileSystemCache: expired tags",e),null}return h??null}async set(e,t,r){var n;if(null==(n=un.memoryCache)||n.set(e,{value:t,lastModified:Date.now()}),un.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let a=new ut(this.fs);if(t.kind===r0.APP_ROUTE){let r=this.getFilePath(`${e}.body`,r1.APP_ROUTE);a.append(r,t.body);let n={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};a.append(r.replace(/\.body$/,ef.EP),JSON.stringify(n,null,2))}else if(t.kind===r0.PAGES||t.kind===r0.APP_PAGE){let n=t.kind===r0.APP_PAGE,i=this.getFilePath(`${e}.html`,n?r1.APP_PAGE:r1.PAGES);if(a.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||a.append(this.getFilePath(`${e}${n?ef.RM:ef.x3}`,n?r1.APP_PAGE:r1.PAGES),n?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===r0.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,ef.mH);for(let[n,i]of t.segmentData){e.push(n);let t=r+n+ef.tz;a.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};a.append(i.replace(/\.html$/,ef.EP),JSON.stringify(r))}}else if(t.kind===r0.FETCH){let n=this.getFilePath(e,r1.FETCH);a.append(n,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await a.wait()}getFilePath(e,t){switch(t){case r1.FETCH:return l7().join(this.serverDistDir,"..","cache","fetch-cache",e);case r1.PAGES:return l7().join(this.serverDistDir,"pages",e);case r1.IMAGE:case r1.APP_PAGE:case r1.APP_ROUTE:return l7().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function ua(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let ui=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js");class us{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:n,serverDistDir:a,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:u,allowedRevalidateHeaderKeys:c}){var d,f,h,p;this.locks=new Map,this.hasCustomCacheHandler=!!u;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(u)us.debug&&console.log("IncrementalCache: using custom cache handler",u.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(u=t.FetchCache,us.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&a&&(us.debug&&console.log("IncrementalCache: using filesystem cache handler"),u=un)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=n,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=c,this.prerenderManifest=o(),this.cacheControls=new ui.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let y=[];i[ef.kz]===(null==(f=this.prerenderManifest)||null==(d=f.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),n&&(y=this.revalidatedTags=o6(i,null==(p=this.prerenderManifest)||null==(h=p.preview)?void 0:h.previewModeId)),u&&(this.cacheHandler=new u({dev:t,fs:e,flushToDisk:r,serverDistDir:a,revalidatedTags:y,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,n){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let a=this.cacheControls.get(ua(e)),i=a?a.revalidate:!n&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:lK(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(us.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new I;return us.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],n=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,a=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(a.push(n.encode(e)),r.push(e)):(a.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=a.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of a)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let n of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(n);r.push(`${n}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,n=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([n],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return a("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,n,a,i,s,o,l;let u,c;if(t.kind===r1.FETCH){let r=eq.workUnitAsyncStorage.getStore(),n=r?(0,eq.getRenderResumeDataCache)(r):null;if(n){let r=n.fetch.get(e);if((null==r?void 0:r.kind)===r0.FETCH){let n=A.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==n||null==(r=n.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return us.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};us.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else us.debug&&console.log("IncrementalCache: rdc:miss",e)}else us.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==r1.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===r1.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===r1.FETCH){if(!d)return null;if((null==(a=d.value)?void 0:a.kind)!==r0.FETCH)throw Object.defineProperty(new eM.z(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=A.workAsyncStorage.getStore(),n=[...t.tags||[],...t.softTags||[]];if(n.some(e=>{var t,n;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(n=r.pendingRevalidatedTags)?void 0:n.some(t=>t.tag===e))}))return us.debug&&console.log("IncrementalCache: expired tag",e),null;let s=eq.workUnitAsyncStorage.getStore();if(s){let t=(0,eq.getPrerenderResumeDataCache)(s);t&&(us.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,u=d.value.data;return(0,ue.areTagsExpired)(n,d.lastModified)?null:((0,ue.areTagsStale)(n,d.lastModified)&&(l=!0),{isStale:l,value:{kind:r0.FETCH,data:u,revalidate:o}})}if((null==d||null==(n=d.value)?void 0:n.kind)===r0.FETCH)throw Object.defineProperty(new eM.z(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let f=null,{isFallback:h}=t,p=this.cacheControls.get(ua(e));if((null==d?void 0:d.lastModified)===-1)u=-1,c=-1*ef.eM*1e3;else{let r=performance.timeOrigin+performance.now(),n=(null==d?void 0:d.lastModified)||r;if(void 0===(u=!1!==(c=this.calculateRevalidate(e,n,this.dev??!1,t.isFallback))&&c0&&((0,ue.areTagsExpired)(t,n)?u=-1:(0,ue.areTagsStale)(t,n)&&(u=!0))}}}return d&&(f={isStale:u,cacheControl:p,revalidateAfter:c,value:d.value,isFallback:h}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(f={isStale:u,value:null,cacheControl:p,revalidateAfter:c,isFallback:h},this.set(e,f.value,{...t,cacheControl:p})),f}async set(e,t,r){if((null==t?void 0:t.kind)===r0.FETCH){let r=eq.workUnitAsyncStorage.getStore(),n=r?(0,eq.getPrerenderResumeDataCache)(r):null;n&&(us.debug&&console.log("IncrementalCache: rdc:set",e),n.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let n=JSON.stringify(t).length;if(r.fetchCache&&n>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${n} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var a;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(ua(e),r.cacheControl),await (null==(a=this.cacheHandler)?void 0:a.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}let uo=Symbol.for("@next/router-server-methods"),ul=globalThis;function uu(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)===z.kO}let uc=e=>import(e).then(e=>e.default||e);class ud{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:n}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=n}getRouterServerContext(e){var t;let r=P(e,"hostname"),n=P(e,"revalidate"),a=P(e,"render404"),i=P(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=ul[uo])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==n?{revalidate:n}:{},...void 0!==a?{render404:a}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=a("node:path"),n=r(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));return i(n,this.distDir,...t)}}loadManifests(e,t){let r;{var n,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=a("../load-manifest.external"),l=lK(e),u=this.definition.kind===r2.PAGES||this.definition.kind===r2.PAGES_API?"pages":"app",[c,d,f,h,p,m,g,y,v,b,w,S]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:lq,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${lq}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:`server/${"app"===u?"app":"pages"}${l}/react-loadable-manifest.json`,handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==u||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let n=e.replace(/\\/g,"/"),a=!!(l2.test(n)||l3.test(n)||l4.test(n)||l6.test(n)||l8.test(n))||(!!n.includes("robots")||!!n.includes("manifest")||!!n.includes("sitemap")||!!n.includes("icon")||!!n.includes("apple-icon")||!!n.includes("opengraph-image")||!!n.includes("twitter-image")||!!n.includes("favicon"))&&null;if(null!==a)return a;let i=function(e,t){let r=`${e.join(",")}|${t}`,n=l9.get(r);if(n)return n;let a=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${l1(s,null)}${a}`),RegExp(`^[\\\\/]manifest${l1(o,null)}${a}`),RegExp(`[\\\\/]sitemap${l1(["xml"],e)}${a}`),RegExp(`[\\\\/]icon${i}${l1(lY,e)}${a}`),RegExp(`[\\\\/]apple-icon${i}${l1(lQ,e)}${a}`),RegExp(`[\\\\/]opengraph-image${i}${l1(lZ,e)}${a}`),RegExp(`[\\\\/]twitter-image${i}${l1(l0,e)}${a}`)];return l9.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:r,cacheHandlers:n}=t;if(!n||!(0,tw.q3)(r))return;for(let[t,r]of Object.entries(n)){if(!r)continue;let{formatDynamicImportPath:n}=a("./dist/esm/lib/format-dynamic-import-path.js"),{join:i}=a("node:path"),s=i(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir);(0,tw.XJ)(t,rW(await uc(n(`${s}/${this.distDir}`,r))))}}}async getIncrementalCache(e,t,r,n){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=a("./dist/esm/lib/format-dynamic-import-path.js");i=rW(await uc(e(this.distDir,s)))}let{join:o}=a("node:path"),l=o(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let u=new us({fs:a("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:n,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!n&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=u,u}}async onRequestError(e,t,r,n,a){n||((null==a?void 0:a.logErrorWithOriginalStack)?a.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:n}){var i,s;let o,l,u,c,d;{let{join:t,relative:r}=a("node:path");o=t(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir);let n=P(e,"distDir");n&&(this.distDir=r(o,n));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let f=this.loadManifests(r,o),{routesManifest:h,prerenderManifest:p,serverFilesManifest:m}=f,{basePath:g,i18n:y,rewrites:v}=h,b=this.getRouterServerContext(e),w=(null==b?void 0:b.nextConfig)||(null==m?void 0:m.config),S=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!P(e,"initURL")){let t=(null==m?void 0:m.config.experimental.trustHostHeader)?`${S}://${e.headers.host||"localhost"}${e.url}`:`${S}://${(null==b?void 0:b.hostname)||"localhost"}${e.url}`;C(e,"initURL",t),C(e,"initProtocol",S)}g&&(e.url=eE(e.url||"/",g));let _=o1(e.url||"/");if(C(e,"initQuery",{...null==_?void 0:_.query}),!_)return;let E=!1;eb(_.pathname||"/","/_next/data")&&(E=!0,_.pathname=lG(_.pathname||"/")),this.normalizeUrl(e,_);let R=_.pathname||"/",k={..._.query},x=lW(r);y&&(l=e_(_.pathname||"/",y.locales)).detectedLocale&&(e.url=`${l.pathname}${_.search}`,R=l.pathname,u||(u=l.detectedLocale));let T=(0,eX.Yr)(r),A=function({page:e,i18n:t,basePath:r,rewrites:n,pageIsDynamic:i,trailingSlash:s,caseSensitive:o}){let l,u,c;if(i){var d;let t,r;r=(t=function(e,t,r,n,a,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},u=[],c=[];for(let s of(i=structuredClone(i),em(e).slice(1).split("/"))){let e,d=nS.VB.some(e=>s.startsWith(e)),f=s.match(nC),h=d?f?.[1]:void 0;if(h&&f?.[2]?(e=t?ef.h:void 0,i.intercepted[f[2]]=h):e=f?.[2]&&i.intercepted[f[2]]?t?ef.h:void 0:t?ef.AA:void 0,h&&f&&f[2]){let{key:t,pattern:r,cleanedKey:n,repeat:s,optional:d}=oB({getSafeRouteKey:o,interceptionMarker:h,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a});u.push(r),c.push(`/${f[1]}:${i.names[t]??n}${s?d?"*":"+":""}`),i.names[t]??=n}else if(f&&f[2]){n&&f[1]&&(u.push(`/${oF(f[1])}`),c.push(`/${f[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:h}=oB({getSafeRouteKey:o,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a}),p=r;n&&f[1]&&(p=p.substring(1)),u.push(p),c.push(`/:${i.names[t]??s}${d?h?"*":"+":""}`),i.names[t]??=s}else u.push(`/${oF(s)}`),c.push(`/${s}`);r&&f&&f[3]&&(u.push(oF(f[3])),c.push(f[3]))}return{namedParameterizedRoute:u.join(""),routeKeys:l,pathToRegexpPattern:c.join(""),reference:i}}(e,(d={prefixRouteKeys:!1}).prefixRouteKeys,d.includeSuffix??!1,d.includePrefix??!1,d.backreferenceDuplicateKeys??!1,d.reference)).namedParameterizedRoute,d.excludeOptionalTrailingSlash||(r+="(?:/)?"),c=(u=oK(l={...oH(e,d),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(l,c){let d=structuredClone(c),f={},h=d.pathname,p=n=>{var c,p;let m,g,y,v=(c=n.source+(s?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!o},m=[],g=(0,oM.pathToRegexp)(c,m,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),y=(0,oM.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(g.source),g.flags):g,m),(e,t)=>{if("string"!=typeof e)return!1;let r=y(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of m)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!d.pathname)return!1;let b=v(d.pathname);if((n.has||n.missing)&&b){let e=function(e,t,r=[],n=[]){let i={},s=r=>{let n,s=r.key;switch(r.type){case"header":s=s.toLowerCase(),n=e.headers[s];break;case"cookie":if("cookies"in e)n=e.cookies[r.key];else{var o;n=(o=e.headers,function(){let{cookie:e}=o;if(!e)return{};let{parse:t}=a("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})()[r.key]}break;case"query":n=t[s];break;case"host":{let{host:t}=e?.headers||{};n=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&n)return i[function(e){let t="";for(let r=0;r64&&n<91||n>96&&n<123)&&(t+=e[r])}return t}(s)]=n,!0;if(n){let e=RegExp(`^${r.value}$`),t=Array.isArray(n)?n.slice(-1)[0].match(e):n.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{i[e]=t.groups[e]}):"host"===r.type&&t[0]&&(i.host=t[0])),!0}return!1};return!(!r.every(e=>s(e))||n.some(e=>s(e)))&&i}(l,d.query,n.has,n.missing);e?Object.assign(b,e):b=!1}if(b){let{parsedDestination:a,destQuery:s}=function(e){let t,r,n=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${oF(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return(0,nL.r)(e);let t=new URL(e),r=t.username,n=t.password,a=r?n?`${r}:${n}`:r:null,i=t.pathname,s=t.search;return{auth:a,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:(0,oY.v1)(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),n=r.pathname;n&&(n=oQ(n));let a=r.href;a&&(a=oQ(a));let i=r.hostname;i&&(i=oQ(i));let s=r.hash;s&&(s=oQ(s));let o=r.search;o&&(o=oQ(o));let l=r.origin;return l&&(l=oQ(l)),{...r,pathname:n,hostname:i,href:a,hash:s,search:o,origin:l}}(e),{hostname:a,query:i,search:s}=n,o=n.pathname;n.hash&&(o=`${o}${n.hash}`);let l=[],u=[];for(let e of(oG(o,u),u))l.push(e.name);if(a){let e=[];for(let t of(oG(a,e),e))l.push(t.name)}let c=oJ(o,{validate:!1});for(let[r,n]of(a&&(t=oJ(a,{validate:!1})),Object.entries(i)))Array.isArray(n)?i[r]=n.map(t=>oZ(oQ(t),e.params)):"string"==typeof n&&(i[r]=oZ(oQ(n),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if((0,nS.m1)(o))for(let t of o.split("/")){let r=nS.VB.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[a,i]=(r=c(e.params)).split("#",2);t&&(n.hostname=t(e.params)),n.pathname=a,n.hash=`${i?"#":""}${i||""}`,n.search=s?oZ(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return n.query={...e.query,...n.query},{newUrl:r,destQuery:i,parsedDestination:n}}({appendParamsToQuery:!0,destination:n.destination,params:b,query:d.query});if(a.protocol)return!0;if(Object.assign(f,s,b),Object.assign(d.query,a.query),delete a.query,Object.assign(d,a),!(h=d.pathname))return!1;if(r&&(h=h.replace(RegExp(`^${r}`),"")||"/"),t){let e=e_(h,t.locales);h=e.pathname,d.query.nextInternalLocale=e.detectedLocale||b.nextInternalLocale}if(h===e)return!0;if(i&&u){let e=u(h);if(e)return d.query={...d.query,...e},!0}}return!1};for(let e of n.beforeFiles||[])p(e);if(h!==e){let t,r=!1;for(let e of n.afterFiles||[])if(r=p(e))break;if(!r&&!((t=em(h||""))===em(e)||(null==u?void 0:u(t)))){for(let e of n.fallback||[])if(r=p(e))break}}return{rewriteParams:f,rewrittenParsedUrl:d}},defaultRouteRegex:l,dynamicRouteMatcher:u,defaultRouteMatches:c,normalizeQueryParams:function(e,t){for(let[r,n]of(delete e.nextInternalLocale,Object.entries(e))){let a=eh(r);a&&(delete e[r],t.add(a),void 0!==n&&(e[a]=Array.isArray(n)?n.map(e=>o0(e)):o0(n)))}},getParamsFromRouteMatches:function(e){if(!l)return null;let{groups:t,routeKeys:r}=l,n=oK({re:{exec:e=>{let n=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(n)){let r=eh(e);r&&(n[r]=t,delete n[e])}let a={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=n[e];if(!s.optional&&!o)return null;a[s.pos]=o}return a}},groups:t})(e);return n||null},normalizeDynamicRouteParams:(e,t)=>{if(!l||!c)return{params:{},hasValidParams:!1};var r=l,n=c;let a={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=(0,eX.P7)(s):Array.isArray(s)&&(s=s.map(eX.P7));let o=n[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(a[i]=s)}return{params:a,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=o1(e.url);if(!r)return e.url;delete r.search,o4(r.query,t),e.url=o3(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let n of Object.keys(r.groups)){let a,{optional:i,repeat:s}=r.groups[n],o=`[${s?"...":""}${n}]`;i&&(o=`[${o}]`);let l=t[n];((a=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,a))}return e})(e,t,l),filterInternalQuery:(e,t)=>o4(e,t)}}({page:T,i18n:y,basePath:g,rewrites:v,pageIsDynamic:x,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!h.caseSensitive}),O=ep(null==y?void 0:y.domains,ew(_,e.headers),u);O&&C(e,"isLocaleDomain",!!O);let j=P(e,"defaultLocale")||(null==O?void 0:O.defaultLocale)||(null==y?void 0:y.defaultLocale);j&&!u&&(_.pathname=`/${j}${"/"===_.pathname?"":_.pathname}`);let $=P(e,"locale")||u||j,{rewriteParams:I,rewrittenParsedUrl:D}=A.handleRewrites(e,_),N=Object.keys(I);Object.assign(_.query,D.query),y&&(_.pathname=e_(_.pathname||"/",y.locales).pathname,D.pathname=e_(D.pathname||"/",y.locales).pathname);let M=P(e,"params");if(!M&&A.dynamicRouteMatcher){let e=A.dynamicRouteMatcher(lG((null==D?void 0:D.pathname)||_.pathname||"/")),t=A.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(M=t.params)}let L=P(e,"query")||{..._.query},U=new Set,F=[];if(this.definition.kind===r2.PAGES||this.definition.kind===r2.PAGES_API)for(let e of[...N,...Object.keys(A.defaultRouteMatches||{})]){let t=Array.isArray(k[e])?k[e].join(""):k[e],r=Array.isArray(L[e])?L[e].join(""):L[e];e in k&&t!==r||F.push(e)}if(A.normalizeCdnUrl(e,F),A.normalizeQueryParams(L,U),A.filterInternalQuery(k,F),x){let t,r=A.normalizeDynamicRouteParams(L,!0),n=A.normalizeDynamicRouteParams(M||{},!0);if(L&&M&&n.hasValidParams&&r.hasValidParams&&U.size>0&&Object.keys(n.params).length<=Object.keys(r.params).length?(t=r.params,M=Object.assign(r.params)):t=n.hasValidParams&&M?M:r.hasValidParams?L:{},e.url=A.interpolateDynamicPath(e.url||"/",t),_.pathname=A.interpolateDynamicPath(_.pathname||"/",t),R=A.interpolateDynamicPath(R,t),!M)if(r.hasValidParams)for(let e in M=Object.assign({},r.params),A.defaultRouteMatches)delete L[e];else{let e=null==A.dynamicRouteMatcher?void 0:A.dynamicRouteMatcher.call(A,lG((null==l?void 0:l.pathname)||_.pathname||"/"));e&&(M=Object.assign({},e))}}for(let e of U)e in k?k[e]&&L[e]&&k[e]!==L[e]&&(L[e]=k[e]):delete L[e];let{isOnDemandRevalidate:H,revalidateOnlyGenerated:B}=(0,tp.checkIsOnDemandRevalidate)(e,p.preview),z=!1;if(t){let{tryGetPreviewData:r}=a("./dist/esm/server/api-utils/node/try-get-preview-data.js");z=!1!==(c=r(e,t,p.preview,!!n))}if(!w)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=a("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!w.experimental.removeUncaughtErrorAndRejectionListeners)}let q=T;lW(q)&&M&&(q=A.interpolateDynamicPath(q,M)),"/index"===q&&(q="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",em(`${$?`/${$}`:""}${T}`));let X=q;try{q=q.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new oz.Xc("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(C(e,"resolvedPathname",q=em(q)),null==(s=w.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=w.deploymentId||"";return{query:L,originalQuery:k,originalPathname:R,params:M,parsedUrl:_,locale:$,isNextDataRequest:E,locales:null==y?void 0:y.locales,defaultLocale:j,isDraftMode:z,previewData:c,pageIsDynamic:x,resolvedPathname:q,encodedResolvedPathname:X,isOnDemandRevalidate:H,revalidateOnlyGenerated:B,...f,nextConfig:w,routerServerContext:b,deploymentId:d,clientAssetToken:w.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=P(e,"minimalMode")??!1;this.responseCache=new ne(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:n,isFallback:a,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:u,waitUntil:c,isMinimalMode:d}){let f=this.getResponseCache(e),h=await f.get(r,u,{routeKind:n,isFallback:a,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:c});if(!h&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return h}}var uf=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");let uh=O.createContext(null);class up{constructor(e,t){this.matchers=Object.entries(t.dynamicRoutes).filter(([t,r])=>r.fallbackSourceRoute===e||t===e).map(([e,t])=>({source:e,route:t}))}match(e){for(let t of this.matchers)if(t.matcher||(t.matcher=oK(oH(t.source))),t.matcher(e))return{source:t.source,route:t.route};return null}}class um{constructor(e){this.suffix=e}match(e){return!!e.endsWith(this.suffix)}normalize(e,t){return t||this.match(e)?e.substring(0,e.length-this.suffix.length):e}}class ug extends um{constructor(){super(ef.RM)}}let uy=RegExp(`^(/.*)${oF(ef.mH)}(/.*)${oF(ef.tz)}$`);class uv{match(e){return uy.test(e)}extract(e){let t=e.match(uy);return t?{originalPathname:t[1],segmentPath:t[2]}:null}normalize(e){let t=this.extract(e);return t?t.originalPathname:e}}{r=a("(react-server)/./dist/esm/server/route-modules/app-page/vendored/rsc/entrypoints.js"),n=a("./dist/esm/server/route-modules/app-page/vendored/ssr/entrypoints.js");let{registerServerReact:e,registerClientReact:t}=a("../../runtime-reacts.external");e(r.React),t(n.React)}class ub extends ud{match(e,t){let r=this.matchers.get(t);return r||(r=new up(this.definition.pathname,t),this.matchers.set(t,r)),r.match(e)}normalizeUrl(e,t){if(this.normalizers.segmentPrefetchRSC.match(t.pathname||"/")){let r=this.normalizers.segmentPrefetchRSC.extract(t.pathname||"/");if(!r)return!1;let{originalPathname:n,segmentPath:a}=r;t.pathname=n,e.headers[z.hY]="1",e.headers[z._V]="1",e.headers[z.qm]=a,C(e,"isRSCRequest",!0),C(e,"isPrefetchRSCRequest",!0),C(e,"segmentPrefetchRSCRequest",a)}else this.normalizers.rsc.match(t.pathname||"/")?(t.pathname=this.normalizers.rsc.normalize(t.pathname||"/",!0),e.headers[z.hY]="1",C(e,"isRSCRequest",!0)):super.normalizeUrl(e,t);!function(e,t){if(!e.url)return;let r=o1(e.url);r&&(r.pathname=t,e.url=o3(r))}(e,t.pathname||"/")}render(e,t,r){return lC(e,t,r.page,r.query,r.fallbackRouteParams,r.renderOpts,r.serverComponentsHmrCache,r.sharedContext)}pathCouldBeIntercepted(e,t){return(0,nS.m1)(e)||t.some(t=>t.test(e))}getVaryHeader(e,t){let r=`${z.hY}, ${z.B}, ${z._V}, ${z.qm}`;return this.pathCouldBeIntercepted(e,t)?`${r}, ${z.kO}`:r}constructor(...e){super(...e),this.matchers=new WeakMap,this.normalizers={rsc:new ug,segmentPrefetchRSC:new uv}}}let uw={"react-rsc":r,"react-ssr":n,contexts:k},uS=ub})(),module.exports=i})(); +//# sourceMappingURL=app-page-turbo-experimental.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js b/cli/app/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js new file mode 100644 index 00000000000..14dec00eab3 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/next-server/app-page-turbo.runtime.prod.js @@ -0,0 +1,54 @@ +(()=>{var e,t,r={"./dist/build/webpack/alias/react-dom-server.js"(e,t,r){"use strict";var n;function a(){throw Object.defineProperty(Error("Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo."),"__NEXT_ERROR_CODE",{value:"E1021",enumerable:!1,configurable:!0})}t.version=(n=r("./dist/compiled/react-dom/cjs/react-dom-server.node.production.js")).version,t.renderToReadableStream=n.renderToReadableStream,t.renderToString=a,t.renderToStaticMarkup=a,n.resume&&(t.resume=n.resume)},"./dist/compiled/@edge-runtime/cookies/index.js"(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,i={},s={RequestCookies:()=>h,ResponseCookies:()=>p,parseCookie:()=>u,parseSetCookie:()=>c,stringifyCookie:()=>l};for(var o in s)t(i,o,{get:s[o],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function u(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=u(e),{domain:a,expires:i,httponly:s,maxage:o,path:l,samesite:c,secure:h,partitioned:p,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:a,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...c&&{sameSite:d.includes(g=(g=c).toLowerCase())?g:void 0},...h&&{secure:!0},...m&&{priority:f.includes(y=(y=m).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}e.exports=((e,i,s,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let l of n(i))a.call(e,l)||l===s||t(e,l,{get:()=>i[l],enumerable:!(o=r(i,l))||o.enumerable});return e})(t({},"__esModule",{value:!0}),i);var d=["strict","lax","none"],f=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of u(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},p=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},"./dist/compiled/busboy/index.js"(e,t,r){!function(){"use strict";var t={900:function(e,t,r){let{parseContentType:n}=r(318),a=[r(104),r(506)].filter(function(e){return"function"==typeof e.detect});e.exports=e=>{if(("object"!=typeof e||null===e)&&(e={}),"object"!=typeof e.headers||null===e.headers||"string"!=typeof e.headers["content-type"])throw Error("Missing Content-Type");var t=e;let r=t.headers,i=n(r["content-type"]);if(!i)throw Error("Malformed content type");for(let e of a){if(!e.detect(i))continue;let n={limits:t.limits,headers:r,conType:i,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return t.highWaterMark&&(n.highWaterMark=t.highWaterMark),t.fileHwm&&(n.fileHwm=t.fileHwm),n.defCharset=t.defCharset,n.defParamCharset=t.defParamCharset,n.preservePath=t.preservePath,new e(n)}throw Error(`Unsupported content type: ${r["content-type"]}`)}},104:function(e,t,r){let{Readable:n,Writable:a}=r(781),i=r(542),{basename:s,convertToUTF8:o,getDecoder:l,parseContentType:u,parseDisposition:c}=r(318),d=Buffer.from("\r\n"),f=Buffer.from("\r"),h=Buffer.from("-");function p(){}class m{constructor(e){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=0,this.name="",this.value="",this.crlf=0,this.cb=e}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=0,this.name="",this.value="",this.crlf=0}push(e,t,r){let n=t;for(;t{if(this._read(),0==--t._fileEndsLeft&&t._finalcb){let e=t._finalcb;t._finalcb=null,process.nextTick(e)}})}_read(e){let t=this._readcb;t&&(this._readcb=null,t())}}let y={push:(e,t)=>{},destroy:()=>{}};function v(e,t){return e}function b(e,t,r){if(r)return t(r);t(r=w(e))}function w(e){if(e._hparser)return Error("Malformed part header");let t=e._fileStream;if(t&&(e._fileStream=null,t.destroy(Error("Unexpected end of file"))),!e._complete)return Error("Unexpected end of form")}let S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],_=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];e.exports=class extends a{constructor(e){let t,r,n,a,b;if(super({autoDestroy:!0,emitClose:!0,highWaterMark:"number"==typeof e.highWaterMark?e.highWaterMark:void 0}),!e.conType.params||"string"!=typeof e.conType.params.boundary)throw Error("Multipart: Boundary not found");const w=e.conType.params.boundary,S="string"==typeof e.defParamCharset&&e.defParamCharset?l(e.defParamCharset):v,_=e.defCharset||"utf8",E=e.preservePath,R={autoDestroy:!0,emitClose:!0,highWaterMark:"number"==typeof e.fileHwm?e.fileHwm:void 0},k=e.limits,x=k&&"number"==typeof k.fieldSize?k.fieldSize:1048576,P=k&&"number"==typeof k.fileSize?k.fileSize:1/0,C=k&&"number"==typeof k.files?k.files:1/0,T=k&&"number"==typeof k.fields?k.fields:1/0,A=k&&"number"==typeof k.parts?k.parts:1/0;let O=-1,j=0,$=0,I=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let D=0,N=0,M=!1,L=!1,U=!1;this._hparser=null;const F=new m(e=>{let i;if(this._hparser=null,I=!1,a="text/plain",r=_,n="7bit",b=void 0,M=!1,!e["content-disposition"]){I=!0;return}let o=c(e["content-disposition"][0],S);if(!o||"form-data"!==o.type){I=!0;return}if(o.params&&(o.params.name&&(b=o.params.name),o.params["filename*"]?i=o.params["filename*"]:o.params.filename&&(i=o.params.filename),void 0===i||E||(i=s(i))),e["content-type"]){let t=u(e["content-type"][0]);t&&(a=`${t.type}/${t.subtype}`,t.params&&"string"==typeof t.params.charset&&(r=t.params.charset.toLowerCase()))}if(e["content-transfer-encoding"]&&(n=e["content-transfer-encoding"][0].toLowerCase()),"application/octet-stream"===a||void 0!==i){if($===C){L||(L=!0,this.emit("filesLimit")),I=!0;return}if(++$,0===this.listenerCount("file")){I=!0;return}D=0,this._fileStream=new g(R,this),++this._fileEndsLeft,this.emit("file",b,this._fileStream,{filename:i,encoding:n,mimeType:a})}else{if(j===T){U||(U=!0,this.emit("fieldsLimit")),I=!0;return}if(++j,0===this.listenerCount("field")){I=!0;return}t=[],N=0}});let H=0;const B=(e,i,s,l,u)=>{for(;i;){if(null!==this._hparser){let e=this._hparser.push(i,s,l);if(-1===e){this._hparser=null,F.reset(),this.emit("error",Error("Malformed part header"));break}s=e}if(s===l)break;if(0!==H){if(1===H){switch(i[s]){case 45:H=2,++s;break;case 13:H=3,++s;break;default:H=0}if(s===l)return}if(2===H){if(H=0,45===i[s]){this._complete=!0,this._bparser=y;return}let e=this._writecb;this._writecb=p,B(!1,h,0,1,!1),this._writecb=e}else if(3===H){if(H=0,10===i[s]){if(++s,O>=A||(this._hparser=F,s===l))break;continue}{let e=this._writecb;this._writecb=p,B(!1,f,0,1,!1),this._writecb=e}}}if(!I){if(this._fileStream){let e,t=Math.min(l-s,P-D);u?e=i.slice(s,s+t):(e=Buffer.allocUnsafe(t),i.copy(e,0,s,s+t)),(D+=e.length)===P?(e.length>0&&this._fileStream.push(e),this._fileStream.emit("limit"),this._fileStream.truncated=!0,I=!0):this._fileStream.push(e)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(void 0!==t){let e,r=Math.min(l-s,x-N);u?e=i.slice(s,s+r):(e=Buffer.allocUnsafe(r),i.copy(e,0,s,s+r)),N+=r,t.push(e),N===x&&(I=!0,M=!0)}}break}if(e){if(H=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(void 0!==t){let e;switch(t.length){case 0:e="";break;case 1:e=o(t[0],r,0);break;default:e=o(Buffer.concat(t,N),r,0)}t=void 0,N=0,this.emit("field",b,e,{nameTruncated:!1,valueTruncated:M,encoding:n,mimeType:a})}++O===A&&this.emit("partsLimit")}};this._bparser=new i(`\r +--${w}`,B),this._writecb=null,this._finalcb=null,this.write(d)}static detect(e){return"multipart"===e.type&&"form-data"===e.subtype}_write(e,t,r){let n;this._writecb=r,this._bparser.push(e,0),this._writecb&&(n=this._writecb,this._writecb=null,n&&n())}_destroy(e,t){this._hparser=null,this._bparser=y,e||(e=w(this));let r=this._fileStream;r&&(this._fileStream=null,r.destroy(e)),t(e)}_final(e){if(this._bparser.destroy(),!this._complete)return e(Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=b.bind(null,this,e):b(this,e)}}},506:function(e,t,r){let{Writable:n}=r(781),{getDecoder:a}=r(318);function i(e,t,r,n){if(r>=n)return n;if(-1===e._byte){let a=l[t[r++]];if(-1===a)return -1;if(a>=8&&(e._encode=2),re.fieldNameSizeLimit){for(!e._keyTrunc&&e._lastPose.fieldSizeLimit){for(!e._valTrunc&&e._lastPos=this.fieldsLimit)return r();let n=0,a=e.length;if(this._lastPos=0,-2!==this._byte){if(-1===(n=i(this,e,n,a)))return r(Error("Malformed urlencoded form"));if(n>=a)return r();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;n0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue;case 43:this._lastPos=a)return r();++this._bytesKey,n=s(this,e,n,a);continue}++n,++this._bytesKey,n=s(this,e,n,a)}this._lastPos0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue e;case 43:this._lastPos=a)return r();++this._bytesVal,n=o(this,e,n,a);continue}++n,++this._bytesVal,n=o(this,e,n,a)}this._lastPos0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),e()}}},318:function(e){function t(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return r.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return r.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return r.utf16le;case"base64":return r.base64;default:if(void 0===t){t=!0,e=e.toLowerCase();continue}return r.other.bind(e)}}let r={utf8:(e,t)=>{if(0===e.length)return"";if("string"==typeof e){if(t<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,t)=>0===e.length?"":"string"==typeof e?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>0===e.length?"":("string"==typeof e&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,t)=>0===e.length?"":("string"==typeof e&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,t)=>{if(0===e.length)return"";"string"==typeof e&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(this).decode(e)}catch{}}};function n(e,r,n){let a=t(r);if(a)return a(e,n)}let a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];e.exports={basename:function(e){if("string"!=typeof e)return"";for(let t=e.length-1;t>=0;--t)switch(e.charCodeAt(t)){case 47:case 92:return".."===(e=e.slice(t+1))||"."===e?"":e}return".."===e||"."===e?"":e},convertToUTF8:n,getDecoder:t,parseContentType:function(e){if(0===e.length)return;let t=Object.create(null),r=0;for(;r=128?a=2:0===a&&(a=1);continue}return}break}}if(p+=e.slice(d,t),void 0===(p=n(p,f,a)))return}else{if(++t===e.length)return;if(34===e.charCodeAt(t)){d=++t;let r=!1;for(;t1)for(let t=0;t-e._lookbehindSize?e._cb(!0,f,0,e._lookbehindSize+o,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=o+s;o+=d[a]}for(;o<0&&!r(e,n,o,a-o);)++o;if(o<0){let t=e._lookbehindSize+o;return t>0&&e._cb(!1,f,0,t,!1),e._lookbehindSize-=t,f.copy(f,0,t,e._lookbehindSize),f.set(n,e._lookbehindSize),e._lookbehindSize+=a,e._bufPos=a,a}e._cb(!1,f,0,e._lookbehindSize,!1),e._lookbehindSize=0}o+=e._bufPos;let h=i[0];for(;o<=c;){let r=n[o+l];if(r===u&&n[o]===h&&t(i,0,n,o,l))return++e.matches,o>0?e._cb(!0,n,e._bufPos,o,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=o+s;o+=d[r]}for(;o0&&e._cb(!1,n,e._bufPos,o{"use strict";var t={56:e=>{e.exports=function(e,t){return"string"==typeof e?s(e):"number"==typeof e?i(e,t):null},e.exports.format=i,e.exports.parse=s;var t=/\B(?=(\d{3})+(?!\d))/g,r=/(?:\.0*|(\.[^0]+)0+)$/,n={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},a=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function i(e,a){if(!Number.isFinite(e))return null;var i=Math.abs(e),s=a&&a.thousandsSeparator||"",o=a&&a.unitSeparator||"",l=a&&void 0!==a.decimalPlaces?a.decimalPlaces:2,u=!!(a&&a.fixedDecimals),c=a&&a.unit||"";c&&n[c.toLowerCase()]||(c=i>=n.pb?"PB":i>=n.tb?"TB":i>=n.gb?"GB":i>=n.mb?"MB":i>=n.kb?"KB":"B");var d=(e/n[c.toLowerCase()]).toFixed(l);return u||(d=d.replace(r,"$1")),s&&(d=d.split(".").map(function(e,r){return 0===r?e.replace(t,s):e}).join(".")),d+o+c}function s(e){if("number"==typeof e&&!isNaN(e))return e;if("string"!=typeof e)return null;var t,r=a.exec(e),i="b";return r?(t=parseFloat(r[1]),i=r[4].toLowerCase()):(t=parseInt(e,10),i="b"),Math.floor(n[i]*t)}}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}},s=!0;try{t[e](i,i.exports,n),s=!1}finally{s&&delete r[e]}return i.exports}n.ab=__dirname+"/",e.exports=n(56)})()},"./dist/compiled/cookie/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t,r,n,a,i={};i.parse=function(e,r){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var a={},i=e.split(n),s=(r||{}).decode||t,o=0;o{"use strict";let t,r,n,a,i;var s={993:e=>{var t=Object.prototype.hasOwnProperty,r="~";function n(){}function a(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,s){if("function"!=typeof n)throw TypeError("The listener must be a function");var o=new a(n,i||e,s),l=r?r+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),o.prototype.eventNames=function(){var e,n,a=[];if(0===this._eventsCount)return a;for(n in e=this._events)t.call(e,n)&&a.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,s=Array(i);a{e.exports=(e,t)=>(t=t||(()=>{}),e.then(e=>new Promise(e=>{e(t())}).then(()=>e),e=>new Promise(e=>{e(t())}).then(()=>{throw e})))},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){let n=0,a=e.length;for(;a>0;){let i=a/2|0,s=n+i;0>=r(e[s],t)?(n=++s,a-=i+1):a=i}return n}},821:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let n=r(574);t.default=class{constructor(){this._queue=[]}enqueue(e,t){let r={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)return void this._queue.push(r);let a=n.default(this._queue,r,(e,t)=>t.priority-e.priority);this._queue.splice(a,0,r)}dequeue(){let e=this._queue.shift();return null==e?void 0:e.run}filter(e){return this._queue.filter(t=>t.priority===e.priority).map(e=>e.run)}get size(){return this._queue.length}}},816:(e,t,r)=>{let n=r(213);class a extends Error{constructor(e){super(e),this.name="TimeoutError"}}let i=(e,t,r)=>new Promise((i,s)=>{if("number"!=typeof t||t<0)throw TypeError("Expected `milliseconds` to be a positive number");if(t===1/0)return void i(e);let o=setTimeout(()=>{if("function"==typeof r){try{i(r())}catch(e){s(e)}return}let n="string"==typeof r?r:`Promise timed out after ${t} milliseconds`,o=r instanceof Error?r:new a(n);"function"==typeof e.cancel&&e.cancel(),s(o)},t);n(e.then(i,s),()=>{clearTimeout(o)})});e.exports=i,e.exports.default=i,e.exports.TimeoutError=a}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},n=!0;try{s[e](r,r.exports,l),n=!1}finally{n&&delete o[e]}return r.exports}l.ab=__dirname+"/";var u={};Object.defineProperty(u,"__esModule",{value:!0}),t=l(993),r=l(816),n=l(821),a=()=>{},i=new r.TimeoutError,u.default=class extends t{constructor(e){var t,r,i,s;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=a,this._resolveIdle=a,!("number"==typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:n.default},e)).intervalCap&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(r=null==(t=e.intervalCap)?void 0:t.toString())?r:""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(s=null==(i=e.interval)?void 0:i.toString())?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=!0===e.throwOnTimeout,this._isPaused=!1===e.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},t)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let t=this._queue.dequeue();return!!t&&(this.emit("active"),t(),e&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!("number"==typeof e&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,t={}){return new Promise((n,a)=>{let s=async()=>{this._pendingCount++,this._intervalCount++;try{let s=void 0===this._timeout&&void 0===t.timeout?e():r.default(Promise.resolve(e()),void 0===t.timeout?this._timeout:t.timeout,()=>{(void 0===t.throwOnTimeout?this._throwOnTimeout:t.throwOnTimeout)&&a(i)});n(await s)}catch(e){a(e)}this._next()};this._queue.enqueue(s,t),this._tryToStartAnother(),this.emit("add")})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(e=>{let t=this._resolveEmpty;this._resolveEmpty=()=>{t(),e()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(e=>{let t=this._resolveIdle;this._resolveIdle=()=>{t(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}},e.exports=u})()},"./dist/compiled/path-to-regexp/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s){a+=e[i++];continue}break}if(!a)throw TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:a}),r=i;continue}if("("===n){var o=1,l="",i=r+1;if("?"===e[i])throw TypeError('Pattern cannot start with "?" at '.concat(i));for(;i-1)return!0}return!1},g=function(e){var t=l[l.length-1],r=e||(t&&"string"==typeof t?t:"");if(t&&!r)throw TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!r||m(r)?"[^".concat(a(o),"]+?"):"(?:(?!".concat(a(r),")[^").concat(a(o),"])+?")};c-1:void 0===S;s||(m+="(?:".concat(p,"(?=").concat(h,"))?")),_||(m+="(?=".concat(p,"|").concat(h,")"))}return new RegExp(m,i(r))}function o(t,r,n){if(t instanceof RegExp){var a;if(!r)return t;for(var l=/\((?:\?<(.*?)>)?(?!\?)/g,u=0,c=l.exec(t.source);c;)r.push({name:c[1]||u++,prefix:"",suffix:"",modifier:"",pattern:""}),c=l.exec(t.source);return t}return Array.isArray(t)?(a=t.map(function(e){return o(e,r,n).source}),new RegExp("(?:".concat(a.join("|"),")"),i(n))):s(e(t,n),r,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.pathToRegexp=t.tokensToRegexp=t.regexpToFunction=t.match=t.tokensToFunction=t.compile=t.parse=void 0,t.parse=e,t.compile=function(t,n){return r(e(t,n),n)},t.tokensToFunction=r,t.match=function(e,t){var r=[];return n(o(e,r,t),r,t)},t.regexpToFunction=n,t.tokensToRegexp=s,t.pathToRegexp=o})(),e.exports=t})()},"./dist/compiled/react-dom/cjs/react-dom-server.node.production.js"(e,t,r){"use strict";var n,a,i=r("util"),s=r("crypto"),o=r("async_hooks"),l=r("./dist/compiled/react/index.js"),u=r("./dist/compiled/react-dom/index.js"),c=r("stream"),d=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),g=Symbol.for("react.consumer"),y=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),E=Symbol.for("react.scope"),R=Symbol.for("react.activity"),k=Symbol.for("react.legacy_hidden"),x=Symbol.for("react.memo_cache_sentinel"),P=Symbol.for("react.view_transition"),C=Symbol.iterator;function T(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=C&&e[C]||e["@@iterator"])?e:null}var A=Symbol.for("react.optimistic_key"),O=Array.isArray,j=queueMicrotask;function $(e){"function"==typeof e.flush&&e.flush()}var I=null,D=0,N=!0;function M(e,t){if("string"==typeof t){if(0!==t.length)if(4096<3*t.length)0]/;function Z(e){if("boolean"==typeof e||"number"==typeof e||"bigint"==typeof e)return""+e;e=""+e;var t=Q.exec(e);if(t){var r,n="",a=0;for(r=t.index;r; rel=dns-prefetch",n=0<=(a.remainingCapacity-=r.length+2)),n?(i.resets.dns[e]=null,a.preconnects&&(a.preconnects+=", "),a.preconnects+=r):(e5(r=[],{href:e,rel:"dns-prefetch"}),i.preconnects.add(r))),aU(t))}else eo.D(e)},C:function(e,t){var r=nY();if(r){var n=r.resumableState,a=r.renderState;if("string"==typeof e&&e){var i,s,o="use-credentials"===t?"credentials":"string"==typeof t?"anonymous":"default";n.connectResources[o].hasOwnProperty(e)||(n.connectResources[o][e]=null,(s=(n=a.headers)&&0; rel=preconnect","string"==typeof t&&(s+='; crossorigin="'+(""+t).replace(rB,rz)+'"'),i=s,s=0<=(n.remainingCapacity-=i.length+2)),s?(a.resets.connect[o][e]=null,n.preconnects&&(n.preconnects+=", "),n.preconnects+=i):(e5(o=[],{rel:"preconnect",href:e,crossOrigin:t}),a.preconnects.add(o))),aU(r)}}else eo.C(e,t)},L:function(e,t,r){var n=nY();if(n){var a=n.resumableState,i=n.renderState;if(t&&e){switch(t){case"image":if(r)var s,o=r.imageSrcSet,l=r.imageSizes,u=r.fetchPriority;var c=o?o+"\n"+(l||""):e;if(a.imageResources.hasOwnProperty(c))return;a.imageResources[c]=el,(a=i.headers)&&0');var ec=B(""),ef=B('`,l=!1,new TransformStream({transform(e,t){if(l)return void t.enqueue(e);let r=F(e,U.CLOSED.HEAD);if(-1===r)return void t.enqueue(e);let n=V.encode(o),a=new Uint8Array(e.length+n.length);a.set(e.slice(0,r)),a.set(n,r),a.set(e.slice(r),r+n.length),t.enqueue(a),l=!0}})),ee(n),er(t,!0),ea()])}async function ed(e,{delayDataUntilFirstHtmlChunk:t,inlinedDataStream:r,getServerInsertedHTML:n,getServerInsertedMetadata:a,deploymentId:i}){return es(e,[Z(),i?ei(i):null,et(n),ee(a),er(r,t),ea()])}var ef=a("./dist/esm/lib/constants.js");function eh(e){for(let t of[ef.AA,ef.h])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function ep(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}function em(e){return e.replace(/\/$/,"")||"/"}function eg(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function ey(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=eg(e);return`${t}${r}${n}${a}`}function ev(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=eg(e);return`${r}${t}${n}${a}`}function eb(e,t){if("string"!=typeof e)return!1;let{pathname:r}=eg(e);return r===t||r.startsWith(t+"/")}function ew(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}let eS=new WeakMap;function e_(e,t){let r;if(!t)return{pathname:e};let n=eS.get(t);n||(n=t.map(e=>e.toLowerCase()),eS.set(t,n));let a=e.split("/",2);if(!a[1])return{pathname:e};let i=a[1].toLowerCase(),s=n.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function eE(e,t){if(!eb(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}let eR=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function ek(e,t){let r=new URL(String(e),t&&String(t));return eR.test(r.hostname)&&(r.hostname="localhost"),r}let ex=Symbol("NextURLInternal");class eP{constructor(e,t,r){let n,a;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,a=r||{}):a=r||t||{},this[ex]={url:ek(e,n??a.base),options:a,basePath:""},this.analyze()}analyze(){var e,t,r,n,a;let i=function(e,t){let{basePath:r,i18n:n,trailingSlash:a}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):a};r&&eb(i.pathname,r)&&(i.pathname=eE(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):e_(i.pathname,n.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):e_(s,n.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[ex].url.pathname,{nextConfig:this[ex].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[ex].options.i18nProvider}),s=ew(this[ex].url,this[ex].options.headers);this[ex].domainLocale=this[ex].options.i18nProvider?this[ex].options.i18nProvider.detectDomainLocale(s):ep(null==(t=this[ex].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[ex].domainLocale)?void 0:r.defaultLocale)||(null==(a=this[ex].options.nextConfig)||null==(n=a.i18n)?void 0:n.defaultLocale);this[ex].url.pathname=i.pathname,this[ex].defaultLocale=o,this[ex].basePath=i.basePath??"",this[ex].buildId=i.buildId,this[ex].locale=i.locale??o,this[ex].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let a=e.toLowerCase();return!n&&(eb(a,"/api")||eb(a,`/${t.toLowerCase()}`))?e:ey(e,`/${t}`)}((e={basePath:this[ex].basePath,buildId:this[ex].buildId,defaultLocale:this[ex].options.forceLocale?void 0:this[ex].defaultLocale,locale:this[ex].locale,pathname:this[ex].url.pathname,trailingSlash:this[ex].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=em(t)),e.buildId&&(t=ev(ey(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=ey(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:ev(t,"/"):em(t)}formatSearch(){return this[ex].url.search}get buildId(){return this[ex].buildId}set buildId(e){this[ex].buildId=e}get locale(){return this[ex].locale??""}set locale(e){var t,r;if(!this[ex].locale||!(null==(r=this[ex].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[ex].locale=e}get defaultLocale(){return this[ex].defaultLocale}get domainLocale(){return this[ex].domainLocale}get searchParams(){return this[ex].url.searchParams}get host(){return this[ex].url.host}set host(e){this[ex].url.host=e}get hostname(){return this[ex].url.hostname}set hostname(e){this[ex].url.hostname=e}get port(){return this[ex].url.port}set port(e){this[ex].url.port=e}get protocol(){return this[ex].url.protocol}set protocol(e){this[ex].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[ex].url=ek(e),this.analyze()}get origin(){return this[ex].url.origin}get pathname(){return this[ex].url.pathname}set pathname(e){this[ex].url.pathname=e}get hash(){return this[ex].url.hash}set hash(e){this[ex].url.hash=e}get search(){return this[ex].url.search}set search(e){this[ex].url.search=e}get password(){return this[ex].url.password}set password(e){this[ex].url.password=e}get username(){return this[ex].url.username}set username(e){this[ex].url.username=e}get basePath(){return this[ex].basePath}set basePath(e){this[ex].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new eP(String(this),this[ex].options)}}var eC=a("./dist/esm/server/web/spec-extension/cookies.js");Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let eT="ResponseAborted";class eA extends Error{constructor(...e){super(...e),this.name=eT}}let eO=0,ej=0,e$=0;function eI(e={}){let t=0===eO?void 0:{clientComponentLoadStart:eO,clientComponentLoadTimes:ej,clientComponentLoadCount:e$};return e.reset&&(eO=0,ej=0,e$=0),t}function eD(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===eT}async function eN(e,t,r){try{let n,{errored:a,destroyed:i}=t;if(a||i)return;let s=(n=new AbortController,t.once("close",()=>{t.writableFinished||n.abort(new eA)}),n),o=function(e,t){let r=!1,n=new I;function a(){n.resolve()}e.on("drain",a),e.once("close",()=>{e.off("drain",a),n.resolve()});let i=new I;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=eI();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,j.getTracer)().trace($.Fx.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await n.promise,n=new I)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(o,{signal:s.signal})}catch(e){if(eD(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}var eM=a("./dist/esm/shared/lib/invariant-error.js");class eL{static #e=this.EMPTY=new eL(null,{metadata:{},contentType:null});static fromStatic(e,t){return new eL(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new eM.z("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return Q(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?G(this.response):Buffer.isBuffer(this.response)?J(this.response):Array.isArray(this.response)?W(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[G(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[J(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(eD(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await eN(this.readable,e,this.waitUntil)}}var eU=a("./dist/build/webpack/alias/react-dom-server.js"),eF=a("./dist/compiled/react-dom/static.node.js");let eH={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},eB=/[&><\u2028\u2029]/g;function ez(e){return e.replace(eB,e=>eH[e])}var eq=a("../../app-render/work-unit-async-storage.external"),eX=a("./dist/esm/shared/lib/router/utils/app-paths.js");let eV=Symbol.for("next.server.manifests"),eW=globalThis;function eG(){let e=eW[eV];if(!e)throw Object.defineProperty(new eM.z("The manifests singleton was not initialized."),"__NEXT_ERROR_CODE",{value:"E950",enumerable:!1,configurable:!0});return e}function eJ(){return eG().proxiedClientReferenceManifest}function eK(){return eG().serverActionsManifest}function eY(){return eG().serverModuleMap}let eQ=new WeakMap,eZ=new TextEncoder,e0;function e1(e,t,r,n){let i,s=eQ.get(e);if(s)return s;let{moduleLoading:o,edgeSSRModuleMapping:l,ssrModuleMapping:u}=eJ();if(e instanceof ReadableStream){if(t&&!(t instanceof ReadableStream))throw Object.defineProperty(new eM.z("Expected debug stream to be a ReadableStream"),"__NEXT_ERROR_CODE",{value:"E939",enumerable:!1,configurable:!0});let{createFromReadableStream:s}=a("./dist/compiled/react-server-dom-turbopack/client.node.js");i=s(e,{findSourceMapURL:e0,serverConsumerManifest:{moduleLoading:o,moduleMap:u,serverModuleMap:null},nonce:n,debugChannel:t?{readable:t}:void 0,endTime:r})}else{let{Readable:s}=a("node:stream");if(t&&!(t instanceof s))throw Object.defineProperty(new eM.z("Expected debug stream to be a Readable"),"__NEXT_ERROR_CODE",{value:"E940",enumerable:!1,configurable:!0});let{createFromNodeStream:l}=a("./dist/compiled/react-server-dom-turbopack/client.node.js");i=l(e,{moduleLoading:o,moduleMap:u,serverModuleMap:null},{findSourceMapURL:e0,nonce:n,debugChannel:t,endTime:r})}{let t=eq.workUnitAsyncStorage.getStore();if(!t)throw Object.defineProperty(new eM.z("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0});switch(t.type){case"prerender-client":case"validation-client":let r=new Promise(e=>{process.nextTick(()=>{e(i)})});return eQ.set(e,r),r}}return eQ.set(e,i),i}function e2(e,t,r){let n;n="string"==typeof r?ez(JSON.stringify([1,r])):ez(JSON.stringify([3,"undefined"!=typeof Buffer?Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("base64"):btoa(String.fromCodePoint(...r))])),e.enqueue(eZ.encode(`${t}self.__next_f.push(${n})`))}class e3{constructor(e){this._stream=e}tee(){if(null===this._stream)throw Object.defineProperty(Error("Cannot tee a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E106",enumerable:!1,configurable:!0});let e=this._stream.tee();return this._stream=e[0],e[1]}consume(){if(null===this._stream)throw Object.defineProperty(Error("Cannot consume a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E470",enumerable:!1,configurable:!0});let e=this._stream;return this._stream=null,e}}async function e4(e){let t=[],{prelude:r}=await e,n=r.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)return new e8(t);t.push(r)}}async function e6(e){let t=[],r=e.getReader();for(;;){let{done:e,value:n}=await r.read();if(e)break;t.push(n)}return new e8(t)}class e8{assertChunks(e){if(null===this._chunks)throw Object.defineProperty(new eM.z(`Cannot \`${e}\` on a ReactServerPrerenderResult that has already been consumed.`),"__NEXT_ERROR_CODE",{value:"E593",enumerable:!1,configurable:!0});return this._chunks}consumeChunks(e){let t=this.assertChunks(e);return this.consume(),t}consume(){this._chunks=null}constructor(e){this._chunks=e}asUnclosingStream(){return e9(this.assertChunks("asUnclosingStream()"))}consumeAsUnclosingStream(){return e9(this.consumeChunks("consumeAsUnclosingStream()"))}asStream(){return e5(this.assertChunks("asStream()"))}consumeAsStream(){return e5(this.consumeChunks("consumeAsStream()"))}}function e9(e){let t=0;return new ReadableStream({async pull(r){t`:"`))}catch(t){e.error(t)}},async pull(e){try{let{done:t,value:r}=await a.read();if(r)try{let a=i.decode(r,{stream:!t});e2(e,n,a)}catch{e2(e,n,r)}t&&e.close()}catch(t){e.error(t)}}})}function tt(){return new ReadableStream}function tr(e){return t=>{t.forEach((t,r)=>{e(r,t)})}}async function tn(e,t,r){return(0,eU.resume)(e,t,r)}function ta(e,t,r,n){return e.renderToReadableStream(t,r,n)}async function ti(e){return Q(e)}async function ts(e,t){let r=await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,j.getTracer)().trace($.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:{renderToReadableStream:eU.renderToReadableStream},element:e,streamOptions:t});return{stream:r,allReady:r.allReady,abort:void 0}}async function to(e,t,r){let n=await (0,eU.resume)(e,t,r);return{stream:n,allReady:n.allReady,abort:void 0}}function tl(e){return e.prerender}let tu=eF.prerender,tc=[z._A];function td(e){return{trailingSlash:e.trailingSlash,isStaticMetadataRouteFile:!1}}var tf=a("./dist/esm/server/web/spec-extension/adapters/headers.js"),th=a("./dist/esm/server/web/spec-extension/adapters/request-cookies.js"),tp=a("./dist/esm/server/api-utils/index.js");class tm{constructor(e,t,r,n){var a;const i=e&&(0,tp.checkIsOnDemandRevalidate)(t,e).isOnDemandRevalidate,s=null==(a=r.get(tp.COOKIE_NAME_PRERENDER_BYPASS))?void 0:a.value;this._isEnabled=!!(!i&&s&&e&&s===e.previewModeId),this._previewModeId=null==e?void 0:e.previewModeId,this._mutableCookies=n}get isEnabled(){return this._isEnabled}enable(){if(!this._previewModeId)throw Object.defineProperty(Error("Invariant: previewProps missing previewModeId this should never happen"),"__NEXT_ERROR_CODE",{value:"E93",enumerable:!1,configurable:!0});this._mutableCookies.set({name:tp.COOKIE_NAME_PRERENDER_BYPASS,value:this._previewModeId,httpOnly:!0,sameSite:"none",secure:!0,path:"/"}),this._isEnabled=!0}disable(){this._mutableCookies.set({name:tp.COOKIE_NAME_PRERENDER_BYPASS,value:"",httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:new Date(0)}),this._isEnabled=!1}}function tg(e,t){if("x-middleware-set-cookie"in e.headers&&"string"==typeof e.headers["x-middleware-set-cookie"]){let r=e.headers["x-middleware-set-cookie"],n=new Headers;for(let e of function(e){var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(r))n.append("set-cookie",e);for(let e of new eC.VO(n).getAll())t.set(e)}}function ty(e,t,r,n,a,i,s,o,l,u,c){var d=e,f=t,h=r,p=n,m=a,g=i,y=u,v=s,b=o,w=l,S=c;function _(e){f&&f.setHeader("Set-Cookie",e)}let E={};return{type:"request",phase:"render",implicitTags:m,url:{pathname:h.pathname,search:h.search??""},rootParams:p,get headers(){return E.headers||(E.headers=function(e){let t=tf.o.from(e);for(let e of z.KD)t.delete(e);return tf.o.seal(t)}(d.headers)),E.headers},get cookies(){if(!E.cookies){let e=new eC.tm(tf.o.from(d.headers));tg(d,e),E.cookies=th.Ck.seal(e)}return E.cookies},set cookies(value){E.cookies=value},get mutableCookies(){if(!E.mutableCookies){var R,k;let e,t=(R=d.headers,k=g||(f?_:void 0),e=new eC.tm(tf.o.from(R)),th.K8.wrap(e,k));tg(d,t),E.mutableCookies=t}return E.mutableCookies},get userspaceMutableCookies(){return E.userspaceMutableCookies||(E.userspaceMutableCookies=(0,th.EJ)(this)),E.userspaceMutableCookies},get draftMode(){return E.draftMode||(E.draftMode=new tm(v,d,this.cookies,this.mutableCookies)),E.draftMode},renderResumeDataCache:y??null,isHmrRefresh:b,serverComponentsHmrCache:w||globalThis.__serverComponentsHmrCache,fallbackParams:S}}var tv=a("./dist/esm/server/after/after-context.js");function tb(e){let t,r={then:(n,a)=>(t||(t=Promise.resolve(e())),t.then(e=>{r.value=e}).catch(()=>{}),t.then(n,a))};return r}var tw=a("./dist/esm/server/use-cache/handlers.js"),tS=a("./dist/esm/server/app-render/async-local-storage.js"),t_=a("./dist/esm/client/components/http-access-fallback/http-access-fallback.js"),tE=a("./dist/esm/client/components/redirect-error.js");function tR(e){return(0,tE.n)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function tk(e){if(!(0,tE.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function tx(e){if(!(0,tE.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}async function tP(e,t,r){let n=new Set;for(let t of(e=>{let t=["/layout"];if(e.startsWith("/")){let r=e.split("/");for(let e=1;ea.getExpiration(e)));return t}(a)}}a("../../app-render/action-async-storage.external").actionAsyncStorage;class tC extends eL{constructor(e,t={},r){super(e,{contentType:z.al,metadata:t,waitUntil:r})}}var tT=a("./dist/compiled/string-hash/index.js"),tA=a.n(tT);let tO=["useDeferredValue","useEffect","useEffectEvent","useImperativeHandle","useInsertionEffect","useLayoutEffect","useReducer","useRef","useState","useSyncExternalStore","useTransition","experimental_useOptimistic","useOptimistic"];function tj(e,t){if(e.message=t,e.stack){let r=e.stack.split("\n");r[0]=t,e.stack=r.join("\n")}}function t$(e){let t=e.stack;return t?t.replace(/^[^\n]*\n/,""):""}function tI(e){if("string"==typeof(null==e?void 0:e.message)){if(e.message.includes("Class extends value undefined is not a constructor or null")){let t="This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component";if(e.message.includes(t))return;tj(e,`${e.message} + +${t}`);return}if(e.message.includes("createContext is not a function"))return void tj(e,'createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');for(let t of tO)if(RegExp(`\\b${t}\\b.*is not a function`).test(e.message))return void tj(e,`${t} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`)}}var tD=a("./dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js"),tN=a("./dist/esm/client/components/hooks-server-context.js"),tM=a("./dist/esm/client/components/is-next-router-error.js"),tL=a("./dist/esm/server/app-render/dynamic-rendering.js");function tU(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function tF(e){let t;return tU(e)?e:Object.defineProperty(Error(!function(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}(e)?e+"":(t=new WeakSet,JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r}))),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}let tH=(e,t)=>"object"==typeof e&&null!==e&&"__NEXT_ERROR_CODE"in e?`${t}@${e.__NEXT_ERROR_CODE}`:t;function tB(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message&&e.message.startsWith("This rendered a large document (>")}var tz=a("./dist/esm/server/app-render/instant-validation/instant-validation-error.js");function tq(e){if((0,tD.C)(e)||(0,tM.p)(e)||(0,tN.isDynamicServerError)(e)||(0,tL.AA)(e)||(0,tz.R)(e))return e.digest}function tX(e,t,r,n,a){return i=>{var s;if("string"==typeof i)return tA()(i).toString();if(eD(i))return;let o=tq(i);if(o)return o;if(tB(i))return void console.error(i);let l=tF(i),u=!1;if(l.digest?r.has(l.digest)&&(l=r.get(l.digest),u=!0):l.digest=tH(l,tA()(l.message+(l.stack||"")).toString()),r.has(l.digest)||r.set(l.digest,l),e&&tI(l),!(t&&(null==l||null==(s=l.message)?void 0:s.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))){let e=a??(0,j.getTracer)().getActiveScopeSpan();e&&(e.recordException(l),e.setAttribute("error.type",l.name),e.setStatus({code:j.SpanStatusCode.ERROR,message:l.message})),n(l,u)}return l.digest}}function tV(e,t,r,n,a,i){return(s,o)=>{var l;if(tB(s))return void console.error(s);let u=!0;if(n.push(s),eD(s))return;let c=tq(s);if(c)return c;let d=tF(s);if(d.digest?r.has(d.digest)&&(s=r.get(d.digest),u=!1):d.digest=tH(d,tA()(d.message+((null==o?void 0:o.componentStack)||d.stack||"")).toString()),e&&tI(d),!(t&&(null==d||null==(l=d.message)?void 0:l.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))&&u){let e=i??(0,j.getTracer)().getActiveScopeSpan();e&&(e.recordException(d),e.setAttribute("error.type",d.name),e.setStatus({code:j.SpanStatusCode.ERROR,message:d.message})),a(d,o)}return d.digest}}let tW={catchall:"c","catchall-intercepted-(..)(..)":"ci(..)(..)","catchall-intercepted-(.)":"ci(.)","catchall-intercepted-(..)":"ci(..)","catchall-intercepted-(...)":"ci(...)","optional-catchall":"oc",dynamic:"d","dynamic-intercepted-(..)(..)":"di(..)(..)","dynamic-intercepted-(.)":"di(.)","dynamic-intercepted-(..)":"di(..)","dynamic-intercepted-(...)":"di(...)"};var tG=a("./dist/esm/shared/lib/router/utils/get-segment-param.js"),tJ=a("./dist/compiled/superstruct/index.cjs"),tK=a.n(tJ);let tY=tK().enums(["c","ci(..)(..)","ci(.)","ci(..)","ci(...)","oc","d","di(..)(..)","di(.)","di(..)","di(...)"]),tQ=tK().union([tK().string(),tK().tuple([tK().string(),tK().string(),tY,tK().nullable(tK().array(tK().string()))])]),tZ=tK().tuple([tQ,tK().record(tK().string(),tK().lazy(()=>tZ)),tK().optional(tK().nullable(tK().tuple([tK().string(),tK().string()]))),tK().optional(tK().nullable(tK().union([tK().literal("refetch"),tK().literal("inside-shared-layout"),tK().literal("metadata-only")]))),tK().optional(tK().number())]);var t0=((l={})[l.HasRuntimePrefetch=1]="HasRuntimePrefetch",l[l.SubtreeHasInstant=2]="SubtreeHasInstant",l[l.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",l[l.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",l[l.IsRootLayout=16]="IsRootLayout",l[l.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",l[l.InlinedIntoChild=64]="InlinedIntoChild",l[l.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",l[l.HeadOutlined=256]="HeadOutlined",l),t1=a("./dist/esm/shared/lib/segment.js");async function t2(e,t,r,n,a){let[i,s,{layout:o,loading:l,page:u}]=e,c=r(e),d=c?c.treeSegment:i,f=[(0,t1.HG)(d,n),{}],h=o?await o[0]():u?await u[0]():void 0,p=h?h.unstable_instant:void 0,m=0;null!==t&&(m|=t.hints),a||void 0===o||(a=!0,m|=t0.IsRootLayout),p&&"object"==typeof p&&(m|=t0.SubtreeHasInstant,"runtime"===p.prefetch&&(m|=t0.HasRuntimePrefetch)),l&&(m|=t0.SegmentHasLoadingBoundary);let g={};for(let e in s){var y;let i=(null==t||null==(y=t.slots)?void 0:y[e])??null,o=await t2(s[e],i,r,n,a);void 0!==o[4]&&(m|=o[4]&(t0.SubtreeHasInstant|t0.SubtreeHasLoadingBoundary),o[4]&(t0.SegmentHasLoadingBoundary|t0.SubtreeHasLoadingBoundary)&&(m|=t0.SubtreeHasLoadingBoundary)),g[e]=o}return f[1]=g,0!==m&&(f[4]=m),f}async function t3(e,t,r,n){return t2(e,t,r,n,!1)}async function t4(e,t,r){return t2(e,t,r,{},!1)}let t6=["accept-encoding","keepalive","keep-alive","content-encoding","transfer-encoding","connection","expect","content-length","set-cookie"];function t8(e){let t,r;e.headers instanceof Headers?(t=e.headers.get(z.ts)??null,r=e.headers.get("content-type")):(t=e.headers[z.ts]??null,r=e.headers["content-type"]??null);let n="POST"===e.method&&"application/x-www-form-urlencoded"===r,a=!!("POST"===e.method&&(null==r?void 0:r.startsWith("multipart/form-data"))),i=void 0!==t&&"string"==typeof t&&"POST"===e.method;return{actionId:t,isURLEncodedAction:n,isMultipartAction:a,isFetchAction:i,isPossibleServerAction:!!(i||n||a)}}let{env:t9,stdout:t5}=(null==(b=globalThis)?void 0:b.process)??{},t7=t9&&!t9.NO_COLOR&&(t9.FORCE_COLOR||(null==t5?void 0:t5.isTTY)&&!t9.CI&&"dumb"!==t9.TERM),re=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),s=i.indexOf(t);return~s?a+re(i,t,r,s):a+i},rt=(e,t,r=e)=>t7?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+re(a,t,r,i)+t:e+a+t}:String,rr=rt("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");rt("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),rt("\x1b[3m","\x1b[23m"),rt("\x1b[4m","\x1b[24m"),rt("\x1b[7m","\x1b[27m"),rt("\x1b[8m","\x1b[28m"),rt("\x1b[9m","\x1b[29m"),rt("\x1b[30m","\x1b[39m");let rn=rt("\x1b[31m","\x1b[39m"),ra=rt("\x1b[32m","\x1b[39m"),ri=rt("\x1b[33m","\x1b[39m");rt("\x1b[34m","\x1b[39m");let rs=rt("\x1b[35m","\x1b[39m");rt("\x1b[38;2;173;127;168m","\x1b[39m"),rt("\x1b[36m","\x1b[39m");let ro=rt("\x1b[37m","\x1b[39m");rt("\x1b[90m","\x1b[39m"),rt("\x1b[40m","\x1b[49m"),rt("\x1b[41m","\x1b[49m"),rt("\x1b[42m","\x1b[49m"),rt("\x1b[43m","\x1b[49m"),rt("\x1b[44m","\x1b[49m"),rt("\x1b[45m","\x1b[49m"),rt("\x1b[46m","\x1b[49m"),rt("\x1b[47m","\x1b[49m");var rl=a("./dist/esm/server/lib/lru-cache.js");let ru={wait:ro(rr("○")),error:rn(rr("⨯")),warn:ri(rr("⚠")),ready:"▲",info:ro(rr(" ")),event:ra(rr("✓")),trace:rs(rr("\xbb"))},rc={log:"log",warn:"warn",error:"error"};function rd(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in rc?rc[e]:"log",n=ru[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function rf(...e){rd("error",...e)}function rh(...e){rd("warn",...e)}let rp=new rl.q(1e4,e=>e.length);function rm(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}new rl.q(1e4,e=>e.length);var rg=a("./dist/esm/client/components/redirect-status-code.js"),ry=a("./dist/esm/server/revalidation-utils.js");let rv=(e,t)=>{rb(e,q(t[z._V],t[z.qm],t[z.B],t[z.kO]))},rb=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${z._A}=`));t.length>0?n.push(`${z._A}=${t}`):n.push(`${z._A}`),e.search=n.length?`?${n.join("&")}`:""};var rw=a("./dist/esm/shared/lib/action-revalidation-kind.js");function rS(e){let t={};for(let[r,n]of Object.entries(e))void 0!==n&&(t[r]=Array.isArray(n)?n.join(", "):`${n}`);return t}function r_(e,t){let r=e.headers,n=new eC.tm(tf.o.from(r)),a=t.getHeaders(),i=new eC.VO(function(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}(a)),s=((e,t)=>{for(let[r,n]of(e["content-length"]&&"0"===e["content-length"]&&delete e["content-length"],Object.entries(e)))(t.includes(r)||!(Array.isArray(n)||"string"==typeof n))&&delete e[r];return e})({...rS(r),...rS(a)},t6);return i.getAll().forEach(e=>{void 0===e.value?n.delete(e.name):n.set(e)}),s.cookie=n.toString(),delete s["transfer-encoding"],new Headers(s)}async function rE(e,t,r,n,a){var i,s,o;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let l=r_(e,t);l.set("x-action-forwarded","1");let u=(null==(i=P(e,"initProtocol"))?void 0:i.replace(/:+$/,""))||"https",c=process.env.__NEXT_PRIVATE_ORIGIN||`${u}://${r.value}`,d=new URL(`${c}${a}${n}`);try{let r;r=e.stream();let n=await fetch(d,{method:"POST",body:r,duplex:"half",headers:l,redirect:"manual",next:{internal:1}});if(null==(s=n.headers.get("content-type"))?void 0:s.startsWith(z.al)){for(let[e,r]of n.headers)t6.includes(e)||t.setHeader(e,r);return new tC(n.body)}null==(o=n.body)||o.cancel()}catch(e){console.error("failed to forward action response",e)}return eL.fromStatic("{}",ef.U2)}async function rR(e,t,r,n,a,i,s,o){t.setHeader("x-action-redirect",`${n};${a}`);let l=function(e,t,r,n){if(r.startsWith("/"))return new URL(`${e}${r}`,"http://n");if(r.startsWith(".")){let t=n||"/";t.endsWith("/")||(t+="/");let a=new URL(r,`http://n${t}`);return new URL(`${e}${a.pathname}${a.search}${a.hash}`,"http://n")}let a=new URL(r);return(null==t?void 0:t.value)!==a.host?null:a.pathname.startsWith(e)?a:null}(i,r,n,o);if(l){var u,c,d,f,h,p;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let n=r_(e,t);n.set(z.hY,"1");let a=(null==(u=P(e,"initProtocol"))?void 0:u.replace(/:+$/,""))||"https",i=process.env.__NEXT_PRIVATE_ORIGIN||`${a}://${r.value}`,o=new URL(`${i}${l.pathname}${l.search}`);s.pendingRevalidatedTags&&(n.set(ef.vS,s.pendingRevalidatedTags.map(e=>e.tag).join(",")),n.set(ef.c1,(null==(f=s.incrementalCache)||null==(d=f.prerenderManifest)||null==(c=d.preview)?void 0:c.previewModeId)||"")),n.delete(z.B),n.delete(z.ts);try{rv(o,{[z._V]:n.get(z._V)?"1":void 0,[z.qm]:n.get(z.qm)??void 0,[z.B]:n.get(z.B)??void 0,[z.kO]:n.get(z.kO)??void 0});let e=await fetch(o,{method:"GET",headers:n,next:{internal:1}});if(null==(h=e.headers.get("content-type"))?void 0:h.startsWith(z.al)){for(let[r,n]of e.headers)t6.includes(r)||t.setHeader(r,n);return new tC(e.body)}null==(p=e.body)||p.cancel()}catch(e){console.error("failed to get redirect response",e)}}return eL.EMPTY}function rk(e){return e.length>100?e.slice(0,100)+"...":e}async function rx({req:e,res:t,ComponentMod:r,generateFlight:n,workStore:i,requestStore:s,serverActions:o,ctx:l,metadata:u}){var c,d,f;let h,p,m,g,y,v,b=e.headers["content-type"],{page:w}=l.renderOpts,S=eY(),{actionId:_,isMultipartAction:E,isFetchAction:R,isURLEncodedAction:k,isPossibleServerAction:x}=t8(e),C=e=>(console.warn(e),t.setHeader(z.Ic,"1"),t.setHeader("content-type","text/plain"),t.statusCode=404,{type:"done",result:eL.fromStatic("Server action not found.","text/plain")});if(!x)return null;if(k)if(R)return{type:"not-found"};else return null;if(!(Object.keys((p=eK()).node).length>0)&&!(Object.keys(p.edge).length>0))return C(rT(_));if(i.isStaticGeneration)throw Object.defineProperty(Error("Invariant: server actions can't be handled during static rendering"),"__NEXT_ERROR_CODE",{value:"E359",enumerable:!1,configurable:!0});i.fetchCache="default-no-store";let T=e.headers.origin,A="string"==typeof T?"null"===T?"null":new URL(T).host:void 0,O=(g=(m=(c=e.headers)["x-forwarded-host"])&&Array.isArray(m)?m[0]:null==m||null==(f=m.split(","))||null==(d=f[0])?void 0:d.trim(),y=c.host,g?{type:"x-forwarded-host",value:g}:y?{type:"host",value:y}:void 0);if(A){if(!O||A!==O.value)if(((e,t=[])=>{let r=e.replace(/[A-Z]/g,e=>e.toLowerCase());return t.some(t=>!!t&&(t.replace(/[A-Z]/g,e=>e.toLowerCase())===r||function(e,t){let r=e.replace(/[A-Z]/g,e=>e.toLowerCase()),n=t.replace(/[A-Z]/g,e=>e.toLowerCase()),a=r.split("."),i=n.split(".");if(i.length<1||a.length0)return!1;return void 0!==t;default:if(t!==e)return!1}}return 0===a.length}(e,t)))})(A,null==o?void 0:o.allowedOrigins));else{O?console.error(`\`${O.type}\` header with value \`${rk(O.value)}\` does not match \`origin\` header with value \`${rk(A)}\` from a forwarded Server Actions request. Aborting the action.`):console.error("`x-forwarded-host` or `host` headers are not provided. One of these is needed to compare the `origin` header from a forwarded Server Actions request. Aborting the action.");let r=Object.defineProperty(Error("Invalid Server Actions request."),"__NEXT_ERROR_CODE",{value:"E80",enumerable:!1,configurable:!0});if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:!0,temporaryReferences:h})}}throw r}}else v="Missing `origin` header from a forwarded Server Actions request.";t.setHeader("Cache-Control","no-cache, no-store, max-age=0, must-revalidate");let{actionAsyncStorage:j}=r,$=!!e.headers["x-action-forwarded"];if(_){let r=function(e,t){var r,n;let a=null==(r=eK().node[e])?void 0:r.workers;if(a&&!a[eb(t,"app")?t:"app"+t])return n=Object.keys(a)[0],(0,eX.Yr)(eE(n,"app"))}(_,w);if(r)return{type:"done",result:await rE(e,t,O,r,l.renderOpts.basePath)}}try{return await j.run({isAction:!0},async()=>{let u,c=[];{let{createTemporaryReferenceSet:t,decodeReply:r,decodeReplyFromBusboy:n,decodeAction:l,decodeFormState:d}=a("(react-server)/./dist/esm/server/app-render/react-server.node.js");h=t();let{PassThrough:f,Readable:p,Transform:m}=a("node:stream"),{pipeline:g}=a("node:stream/promises"),y=P(e,"actionBody"),w=y?p.from(y):e.body,k="1 MB",x=(null==o?void 0:o.bodySizeLimit)??k,T=x!==k?a("./dist/compiled/bytes/index.js").parse(x):1048576,A=0,O=new m({transform(e,t,r){if((A+=Buffer.byteLength(e,t))>T){let{ApiError:e}=a("./dist/esm/server/api-utils/index.js");r(Object.defineProperty(new e(413,`Body exceeded ${x} limit. +To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));return}r(null,e)}});if(E)if(R){try{u=rC(_,S)}catch(e){return C(e)}let t=a("./dist/compiled/busboy/index.js")({defParamCharset:"utf8",headers:e.headers,limits:{fieldSize:T}}),r=new AbortController;try{[,c]=await Promise.all([g(w,O,t,{signal:r.signal}),n(t,S,{temporaryReferences:h})])}catch(e){throw r.abort(),e}}else{let e,t=new f,r=new Request("http://localhost",{method:"POST",headers:{"Content-Type":b},body:p.toWeb(t),duplex:"half"}),n=new AbortController;try{[,e]=await Promise.all([g(w,O,t,{signal:n.signal}),r.formData()])}catch(e){throw n.abort(),e}if(!1===function(e,t){let r=!1;for(let i of e.keys())if(i.startsWith(rA)){if(i.startsWith(rj)){var n,a;if(n=i,a=t,n.length!==rj.length+42||null==a[n.slice(rj.length)])return!1;r=!0}else if(i.startsWith(rO)){let n=rA+i.slice(rO.length)+":0",a=e.getAll(n);if(1!==a.length)return!1;let s=a[0];if("string"!=typeof s||function(e,t){if(!1===e.startsWith(r$))return!0;let r=r$.length,n=r+42,a=e.slice(r,n);return 42!==a.length||'"'!==e[n]||null==t[a]}(s,t))return!1;r=!0}}return r}(e,S))throw Object.defineProperty(Error(`Failed to find Server Action. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E975",enumerable:!1,configurable:!0});let a=await l(e,S);if("function"!=typeof a)return null;{v&&rh(v);let{actionResult:t}=await rP(a,[],i,s,$),r=await d(t,e,S);return{type:"done",result:void 0,formState:r}}}else{if(!R)return null;try{u=rC(_,S)}catch(e){return C(e)}let e=new f,t=[];await Promise.all([g(w,O,e),(async()=>{for await(let r of e)t.push(Buffer.from(r))})()]);let n=Buffer.concat(t).toString("utf-8");c=await r(n,S,{temporaryReferences:h})}}let d=(await r.__next_app__.require(u))[_],{type:f}=rm(_),{actionResult:p,skipPageRendering:m}=(performance.now(),await rP(d,c,i,s,$).finally(()=>{!function(e,{workStore:t,requestStore:r}){var n;let a=+(null!=(n=t.pendingRevalidatedTags)&&!!n.some(e=>void 0===e.profile)),i=+!!(0,th.YX)(r.mutableCookies).length;a||i?e.setHeader(z.ZL,JSON.stringify(rw.Du)):void 0!==t.pathWasRevalidated&&t.pathWasRevalidated!==rw.e9&&e.setHeader(z.ZL,JSON.stringify(t.pathWasRevalidated))}(t,{workStore:i,requestStore:s})}));if(!R)return null;{let t=!!m&&(0,ry.C)(i);return{type:"done",result:await n(e,l,s,{actionResult:Promise.resolve(p),skipPageRendering:m,temporaryReferences:h,waitUntil:!1===t?void 0:t})}}})}catch(r){if((0,tE.n)(r)){let n=tR(r),a=tk(r);if(t.statusCode=rg.Q.SeeOther,u.statusCode=rg.Q.SeeOther,R)return{type:"done",result:await rR(e,t,O,n,a,l.renderOpts.basePath,i,s.url.pathname)};return t.setHeader("Location",n),{type:"done",result:eL.EMPTY}}if((0,t_.RM)(r)){if(t.statusCode=(0,t_.jT)(r),u.statusCode=t.statusCode,R){let t=Promise.reject(r);try{await t}catch{}return{type:"done",result:await n(e,l,s,{skipPageRendering:!1,actionResult:t,temporaryReferences:h})}}return{type:"not-found"}}if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:void 0===i.pathWasRevalidated||i.pathWasRevalidated===rw.e9||$,temporaryReferences:h})}}throw r}}async function rP(e,t,r,n,a){n.phase="action";let i=a;if(t.length>1e3)throw Object.defineProperty(Error(`Server Action arguments list is too long (${t.length}). Maximum allowed is 1000.`),"__NEXT_ERROR_CODE",{value:"E986",enumerable:!1,configurable:!0});try{let a=await eq.workUnitAsyncStorage.run(n,()=>e.apply(null,t));return i||=void 0===r.pathWasRevalidated||r.pathWasRevalidated===rw.e9,{actionResult:a,skipPageRendering:i}}finally{!i&&(n.phase="render",n.cookies=th.Ck.seal((0,th.m0)(n.mutableCookies)),r.isDraftMode=n.draftMode.isEnabled,await (0,ry.C)(r))}}function rC(e,t){var r;if(!e)throw Object.defineProperty(new eM.z("Missing 'next-action' header."),"__NEXT_ERROR_CODE",{value:"E664",enumerable:!1,configurable:!0});let n=null==(r=t[e])?void 0:r.id;if(!n)throw rT(e);return n}function rT(e){return Object.defineProperty(Error(`Failed to find Server Action${e?` "${e}"`:""}. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E974",enumerable:!1,configurable:!0})}let rA="$ACTION_",rO="$ACTION_REF_",rj="$ACTION_ID_",r$='{"id":"',rI=O.createContext(null);function rD(e){let t=(0,O.useContext)(rI);t&&t(e)}function rN(){let e=[],t=t=>{e.push(t)};return{ServerInsertedHTMLProvider:({children:e})=>(0,T.jsx)(rI.Provider,{value:t,children:e}),renderServerInsertedHTML:()=>e.map((e,t)=>(0,T.jsx)(O.Fragment,{children:e()},"__next_server_inserted__"+t))}}function rM(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}var rL=a("./dist/compiled/react-dom/index.js");function rU(e,t,r,n,a,i,s){var o;let l,u=[],c={src:"",crossOrigin:r},d=((null==(o=e.rootMainFilesTree)?void 0:o[s])||e.rootMainFiles).map(rM);if(0===d.length)throw Object.defineProperty(Error("Invariant: missing bootstrap script. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E459",enumerable:!1,configurable:!0});if(n){c.src=`${t}/_next/`+d[0]+a,c.integrity=n[d[0]];for(let e=1;e{for(let e=0;e{for(let e=0;e(0,T.jsx)("script",{...e},e.src)),o=(n||[]).map(({key:e,value:t},r)=>(0,T.jsx)("meta",{name:e,content:t},`next-trace-data-${r}`));return async function(){let e=[];for(;i"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];function rB(e,t,r,n){let a=e.replace(/\.[^.]+$/,""),i=new Set,s=new Set,{entryCSSFiles:o,entryJSFiles:l}=eJ(),u=o[a],c=null==l?void 0:l[a];if(u)for(let e of u)t.has(e.path)||(n&&t.add(e.path),i.add(e));if(c)for(let e of c)r.has(e)||(n&&r.add(e),s.add(e));return{styles:[...i],scripts:[...s]}}function rz(e,t,r){if(!e||!t)return null;let n=t.replace(/\.[^.]+$/,""),a=new Set,i=!1,s=e.app[n];if(s)for(let e of(i=!0,s))r.has(e)||(a.add(e),r.add(e));return a.size?[...a].sort():i&&0===r.size?[]:null}function rq(e){let[,t,{loading:r}]=e;return!!r||Object.values(t).some(e=>rq(e))}function rX(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=rm(e.$$id);return"use-cache"===t}async function rV(e){let t,r,n,{layout:a,page:i,defaultPage:s}=e[2],o=void 0!==a,l=void 0!==i,u=void 0!==s&&e[0]===t1.WO;return o?(t=await a[0](),r="layout",n=a[1]):l?(t=await i[0](),r="page",n=i[1]):u&&(t=await s[0](),r="page",n=s[1]),{mod:t,modType:r,filePath:n}}function rW(e){return e.default||e}function rG(e){let[t,r,n,a]=e,{layout:i,template:s}=n,{page:o}=n;o=t===t1.WO?n.defaultPage:o;let l=i?.[1]||s?.[1]||o?.[1];return{page:o,segment:t,modules:n,conventionPath:l,parallelRoutes:r,staticSiblings:a}}function rJ(e,t){let r="";return e.sharedContext.clientAssetToken&&(r+=`?dpl=${e.sharedContext.clientAssetToken}`),r}function rK(e,t,r){let{componentMod:{createElement:n}}=t;return e.map((e,a)=>{let i="next",s=`${t.assetPrefix}/_next/${rM(e.path)}${rJ(t,!0)}`;return e.inlined&&!t.parsedRequestHeaders.isRSCRequest?n("style",{key:a,nonce:t.nonce,precedence:i,href:s},e.content):(null==r||r.push(()=>{t.componentMod.preloadStyle(s,t.renderOpts.crossOrigin,t.nonce)}),n("link",{key:a,rel:"stylesheet",href:s,precedence:i,crossOrigin:t.renderOpts.crossOrigin,nonce:t.nonce}))})}async function rY({filePath:e,getComponent:t,injectedCSS:r,injectedJS:n,ctx:a}){let{componentMod:{createElement:i}}=a,{styles:s,scripts:o}=rB(e,r,n),l=rK(s,a),u=o?o.map((e,t)=>i("script",{src:`${a.assetPrefix}/_next/${rM(e)}${rJ(a,!0)}`,async:!0,key:`script-${t}`})):null;return[rW(await t()),l,u]}a("./dist/esm/server/dynamic-rendering-utils.js");let rQ=()=>{};globalThis.FinalizationRegistry&&new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(rQ)});class rZ{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new rZ(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new I;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}var r0=((u={}).APP_PAGE="APP_PAGE",u.APP_ROUTE="APP_ROUTE",u.PAGES="PAGES",u.FETCH="FETCH",u.REDIRECT="REDIRECT",u.IMAGE="IMAGE",u),r1=((c={}).APP_PAGE="APP_PAGE",c.APP_ROUTE="APP_ROUTE",c.PAGES="PAGES",c.FETCH="FETCH",c.IMAGE="IMAGE",c),r2=((d={}).PAGES="PAGES",d.PAGES_API="PAGES_API",d.APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.IMAGE="IMAGE",d);async function r3(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===r0.PAGES?{kind:r0.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r0.APP_PAGE?{kind:r0.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function r4(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===r0.PAGES?{kind:r0.PAGES,html:eL.fromStatic(e.value.html,ef.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r0.APP_PAGE?{kind:r0.APP_PAGE,html:eL.fromStatic(e.value.html,ef.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function r6(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let r8=r6(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),r9=r6(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),r5="__ttl_sentinel__";function r7(e,t){return`${e}\0${t??r5}`}class ne{constructor(e,t=r9,r=r8){this.getBatcher=rZ.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:D}),this.revalidateBatcher=rZ.create({schedulerFn:D}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new rl.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===r5?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=r7(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return r4(n.entry);let e=Date.now();if(n.expiresAt>e)return r4(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&function(...e){let t=e.join(" ");rp.has(t)||(rp.set(t,t),rh(...e))}(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:u,invocationID:c}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:u,invocationID:c},r);return l&&l(d),d});return r4(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case r2.PAGES:return r1.PAGES;case r2.APP_PAGE:return r1.APP_PAGE;case r2.IMAGE:return r1.IMAGE;case r2.APP_ROUTE:return r1.APP_ROUTE;case r2.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,null!==a&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=r7(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let u=this.handleRevalidate(e,t,r,n,a,i,s,l);return o&&o(u),u})}async handleRevalidate(e,t,r,n,a,i,s,o){try{let l=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let u=await r3({...l,isMiss:!i});if(u.cacheControl)if(this.minimal_mode){let t=r7(e,o);this.cache.set(t,{entry:u,expiresAt:Date.now()+this.ttl})}else await t.set(e,u.value,{cacheControl:u.cacheControl,isRoutePPREnabled:r,isFallback:n});return u}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}var nt=a("./dist/esm/server/app-render/staged-rendering.js");Symbol.for("next-patch"),t_.s8;var nr=a("./dist/esm/client/components/static-generation-bailout.js");function nn(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let na=new Set,ni={varyParams:na,status:"fulfilled",value:na,then(e){e&&e(na)},resolvers:[]};function ns(){let e=nn();return{head:e,rootParams:nn(),segments:new Set}}function no(){let e=function(){let e=eq.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}();return null!==e?e:null}async function nl(e){let t=e.rootParams.varyParams;for(let r of(nu(e.head,t),e.segments))nu(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function nu(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}let nc=/^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;function nd(e,t,r){let n=e[2],a=n[r]?n[r][1]:void 0;if(a){let e;return e=(function(e,t){let r=process.cwd(),n=e.replace(r,"").replace(/^[\\/]/,""),a=(t||"").replace(/^\[project\][\\/]?/,"").replace(e,"").replace(r,"").replace(/\\/g,"/").replace(/^\//,"");if(n&&a.startsWith(n)&&(a=a.slice(n.length).replace(/^\//,"")),a.includes("/")){let t=e.split(/[\\/]/).pop()||"";if(t){let e=t+"/",r=a.indexOf(e);r>=0&&(a=a.slice(r+e.length))}}return a})(t,a).replace(/^(src\/)?app\//,""),nc.test(e)&&(e=e.replace(nc,""),e=`__next_builtin__${e}`),e}}function nf(e){return(0,j.getTracer)().trace($.Fx.createComponentTree,{spanName:"build component tree"},()=>np(e,!0))}function nh(e,t){throw Object.defineProperty(Error(`The default export is not a React Component in "${"/"===e?"":e}/${t}"`),"__NEXT_ERROR_CODE",{value:"E45",enumerable:!1,configurable:!0})}async function np({loaderTree:e,parentParams:t,parentOptionalCatchAllParamName:r,parentRuntimePrefetchable:n,rootLayoutIncluded:i,injectedCSS:s,injectedJS:o,injectedFontPreloadTags:l,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:h},p){let m,{renderOpts:{nextConfigOutput:g,experimental:y,cacheComponents:v},workStore:b,componentMod:{createElement:w,Fragment:S,SegmentViewNode:_,HTTPAccessFallbackBoundary:E,LayoutRouter:R,RenderFromTemplateContext:k,ClientPageRoot:x,ClientSegmentRoot:P,createServerSearchParamsForServerPage:C,createPrerenderSearchParamsForClientPage:T,createServerParamsForServerSegment:A,createPrerenderParamsForClientSegment:O,serverHooks:{DynamicServerError:I},Postpone:D},pagePath:N,getDynamicParamFromSegment:M,isPrefetch:L,query:U}=u,{page:F,conventionPath:H,segment:B,modules:z,parallelRoutes:q}=rG(e),{layout:X,template:V,error:W,loading:G,"not-found":J,forbidden:K,unauthorized:Y}=z,Q=new Set(s),Z=new Set(o),ee=new Set(l),et=function({ctx:e,layoutOrPagePath:t,injectedCSS:r,injectedJS:n,injectedFontPreloadTags:a,preloadCallbacks:i}){let{componentMod:{createElement:s}}=e,{styles:o,scripts:l}=t?rB(t,r,n,!0):{styles:[],scripts:[]},u=t?rz(e.renderOpts.nextFontManifest,t,a):null;if(u)if(u.length)for(let t=0;t{e.componentMod.preloadFont(s,a,e.renderOpts.crossOrigin,e.nonce)})}else try{let t=new URL(e.assetPrefix);i.push(()=>{e.componentMod.preconnect(t.origin,"anonymous",e.nonce)})}catch(t){i.push(()=>{e.componentMod.preconnect("/","anonymous",e.nonce)})}let c=rK(o,e,i),d=l?l.map((t,r)=>s("script",{src:`${e.assetPrefix}/_next/${rM(t)}${rJ(e,!0)}`,async:!0,key:`script-${r}`,nonce:e.nonce})):[];return c.length||d.length?[...c,...d]:null}({preloadCallbacks:d,ctx:u,layoutOrPagePath:H,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee}),[er,en,ea]=V?await rY({ctx:u,filePath:V[1],getComponent:V[0],injectedCSS:Q,injectedJS:Z}):[S],[ei,es,eo]=W?await rY({ctx:u,filePath:W[1],getComponent:W[0],injectedCSS:Q,injectedJS:Z}):[],[el,eu,ec]=G?await rY({ctx:u,filePath:G[1],getComponent:G[0],injectedCSS:Q,injectedJS:Z}):[],ed=void 0!==X,eh=void 0!==F,{mod:ep,modType:em}=await (0,j.getTracer)().trace($.Fx.getLayoutOrPageModule,{hideSpan:!(ed||eh),spanName:"resolve segment modules",attributes:{"next.segment":B}},()=>rV(e)),eg=ed&&!i,ey=i||eg,[ev,eb]=J?await rY({ctx:u,filePath:J[1],getComponent:J[0],injectedCSS:Q,injectedJS:Z}):[],ew=ep?ep.unstable_instant:void 0,eS=!!ew&&"object"==typeof ew&&"runtime"===ew.prefetch||n,[e_,eE]=f&&K?await rY({ctx:u,filePath:K[1],getComponent:K[0],injectedCSS:Q,injectedJS:Z}):[],[eR,ek]=f&&Y?await rY({ctx:u,filePath:Y[1],getComponent:Y[0],injectedCSS:Q,injectedJS:Z}):[],ex=null==ep?void 0:ep.dynamic;if("export"===g)if(ex&&"auto"!==ex){if("force-dynamic"===ex)throw Object.defineProperty(new nr.f('Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports'),"__NEXT_ERROR_CODE",{value:"E527",enumerable:!1,configurable:!0})}else ex="error";if("string"==typeof ex)if("error"===ex)b.dynamicShouldError=!0;else if("force-dynamic"===ex){if(b.forceDynamic=!0,b.isStaticGeneration&&!y.isRoutePPREnabled){let e=Object.defineProperty(new I('Page with `dynamic = "force-dynamic"` won\'t be rendered statically.'),"__NEXT_ERROR_CODE",{value:"E585",enumerable:!1,configurable:!0});throw b.dynamicUsageDescription=e.message,b.dynamicUsageStack=e.stack,e}}else b.dynamicShouldError=!1,b.forceStatic="force-static"===ex;if("string"==typeof(null==ep?void 0:ep.fetchCache)&&(b.fetchCache=null==ep?void 0:ep.fetchCache),void 0!==(null==ep?void 0:ep.revalidate)&&function(e,t){try{if(!1===e)ef.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1);else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0})}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(null==ep?void 0:ep.revalidate,b.route),"number"==typeof(null==ep?void 0:ep.revalidate)){let e=ep.revalidate,t=eq.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.revalidate>e&&(t.revalidate=e)}if(!b.forceStatic&&b.isStaticGeneration&&0===e&&!y.isRoutePPREnabled){let e=`revalidate: 0 configured ${B}`;throw b.dynamicUsageDescription=e,Object.defineProperty(new I(e),"__NEXT_ERROR_CODE",{value:"E1005",enumerable:!1,configurable:!0})}}if(eh&&"number"==typeof(null==ep?void 0:ep.unstable_dynamicStaleTime)){let e=ep.unstable_dynamicStaleTime,t=eq.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.stale>e&&(t.stale=e);break;case"request":(void 0===t.stale||t.stale>e)&&(t.stale=e)}}let eP=b.isStaticGeneration,eC=eP&&!0===y.isRoutePPREnabled,eT=ep?rW(ep):void 0;if(eP){let{isValidElementType:e}=a("./dist/compiled/react-is/index.js");void 0===eT||e(eT)||nh(N,em??"page"),void 0===ei||e(ei)||nh(N,"error"),void 0===el||e(el)||nh(N,"loading"),void 0===ev||e(ev)||nh(N,"not-found"),void 0===e_||e(e_)||nh(N,"forbidden"),void 0===eR||e(eR)||nh(N,"unauthorized")}let eA=M(e),eO=t;eA&&null!==eA.value&&(eO={...t,[eA.param]:eA.value});let ej=(null==eA?void 0:eA.type)==="oc"&&null===eA.value?eA.param:r,e$=u.renderOpts.dir||"",[eI,eD]=await ny({ctx:u,conventionName:"not-found",Component:ev,styles:eb,tree:e}),[eN]=await ny({ctx:u,conventionName:"forbidden",Component:e_,styles:eE,tree:e}),[eM]=await ny({ctx:u,conventionName:"unauthorized",Component:eR,styles:ek,tree:e}),eL=await Promise.all(Object.keys(q).map(async t=>{let r="children"===t,n=q[t],a=r?eI:void 0,i=r?eN:void 0,s=r?eM:void 0,o=null;L&&(el||!rq(n))&&!y.isRoutePPREnabled||(o=await np({loaderTree:n,parentParams:eO,parentOptionalCatchAllParamName:ej,parentRuntimePrefetchable:eS,rootLayoutIncluded:ey,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:r?h:null},!1));let l=w(er,null,w(k,null));return nd(e,e$,"template"),nd(e,e$,"error"),nd(e,e$,"loading"),p&&nd(e,e$,"global-error"),[t,w(R,{parallelRouterKey:t,error:ei,errorStyles:es,errorScripts:eo,template:l,templateStyles:en,templateScripts:ea,notFound:a,forbidden:i,unauthorized:s,...!1}),o]})),eU={},eF={};for(let e of eL){let[t,r,n]=e;eU[t]=r,eF[t]=n}let eH=el?w(el,{key:"l"}):null,eB=(nd(e,e$,"loading"),eH?[eH,eu,ec]:null);if(!eT)return nv(u,w(S,{key:"c"},et,eU.children),eF,eB,eC,eS,ni);if(b.isStaticGeneration&&b.forceDynamic&&y.isRoutePPREnabled)return nv(u,w(S,{key:"c"},w(D,{reason:'dynamic = "force-dynamic" was used',route:b.route}),et),eF,eB,!0,eS,ni);let ez=(null==(m=(null==ep?void 0:ep.default)||ep)?void 0:m.$$typeof)===Symbol.for("react.client.reference"),eX=ez&&v?ni:function(){let e=eq.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=nn();return t.segments.add(e),e}}}return null}();if(eh){let t;if(ez)if(v)t=w(x,{Component:eT,serverProvidedParams:null});else if(eP){let e=O(eO),r=T();t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:[r,e]}})}else t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:null}});else{let e=A(eO,ej,eX,eS),r=C(U,eX,eS);t=rX(eT)?w(eT,{params:e,searchParams:r,$$isPage:!0}):w(eT,{params:e,searchParams:r})}t1.WO;return nv(u,w(S,{key:"c"},(nd(e,e$,"page")??nd(e,e$,"defaultPage"),t),et,h?w(h,null):null),eF,eB,eC,eS,eX)}{let t,r=eg&&"children"in q&&Object.keys(q).length>1;if(ez){let e;if(v)e=w(P,{Component:eT,slots:eU,serverProvidedParams:null});else if(eP){let t=O(eO);e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:[t]}})}else e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:null}});if(r){let r,n,a;r=nm({ctx:u,ErrorBoundaryComponent:ev,errorElement:eI,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),n=nm({ctx:u,ErrorBoundaryComponent:e_,errorElement:eN,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),a=nm({ctx:u,ErrorBoundaryComponent:eR,errorElement:eM,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),t=r||n||a?w(E,{key:"c",notFound:r,forbidden:n,unauthorized:a},et,e):w(S,{key:"c"},et,e)}else t=w(S,{key:"c"},et,e)}else{let e,n=A(eO,ej,eX,eS);e=rX(eT)?w(eT,{...eU,params:n,$$isLayout:!0},eU.children):w(eT,{...eU,params:n},eU.children),t=r?w(E,{key:"c",notFound:eI?w(S,null,et,w(eT,{params:n},eb,eI)):void 0},et,e):w(S,{key:"c"},et,e)}return nd(e,e$,"layout"),nv(u,t,eF,eB,eC,eS,eX)}}function nm({ctx:e,ErrorBoundaryComponent:t,errorElement:r,ClientSegmentRoot:n,layerAssets:a,SegmentComponent:i,currentParams:s}){let{componentMod:{createElement:o,Fragment:l}}=e;return t?o(l,null,a,o(n,{Component:i,slots:{children:r},params:s})):null}function ng(e,t){return function e(t,r,n){let{modules:{layout:a},parallelRoutes:i}=rG(r),s=n(r),o=t;return(s&&null!==s.value&&(o={...t,[s.param]:s.value}),void 0!==a)?o:i.children?e(o,i.children,n):o}({},e,t)}async function ny({ctx:e,conventionName:t,Component:r,styles:n,tree:a}){let{componentMod:{createElement:i,Fragment:s}}=e,o=e.renderOpts.dir||"",{SegmentViewNode:l}=e.componentMod;return[r?i(s,null,i(r,null),n):void 0,nd(a,o,t)]}function nv(e,t,r,n,a,i,s){let o=e.componentMod.createElement;if(!i){let e=eq.workUnitAsyncStorage.getStore();if(e){let r;switch(e.type){case"request":case"prerender-runtime":if(r=e.stagedRendering){let e=t;t=r.waitForStage(nt.D.Static).then(()=>e)}}}}return null!==n&&(t=o(e.componentMod.LoadingBoundaryProvider,{loading:n,children:t})),[t,r,null,a,s||null]}async function nb({loaderTreeToFilter:e,parentParams:t,flightRouterState:r,parentIsInsideSharedLayout:n,rscHead:a,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,ctx:u,preloadCallbacks:c,MetadataOutlet:d,hintTree:f}){let{renderOpts:{nextFontManifest:h,experimental:p},query:m,isPrefetch:g,getDynamicParamFromSegment:y,parsedRequestHeaders:v}=u,[b,w,S]=e,_=Object.keys(w),{layout:E}=S,R=void 0!==E&&!l,k=l||R,x=y(e),P=x&&null!==x.value?{...t,[x.param]:x.value}:t,C=(0,t1.HG)(x?x.treeSegment:b,m),T=!r||!rH(C,r[0])||"refetch"===r[3],A=T||n||"inside-shared-layout"===r[3];if(A&&!p.isRoutePPREnabled&&(v.isRouteTreePrefetchRequest||g&&!S.loading&&!rq(e)))return[[r&&nw(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t4(e,f,y):await t3(e,f,y,m),null,[null,null],!0]];if(r&&"metadata-only"===r[3])return[[r&&nw(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t4(e,f,y):await t3(e,f,y,m),null,a,!1]];if(T){let t=r&&nw(C,r[0])?r[0]:C,n=await t3(e,f,y,m),h=await nf({ctx:u,loaderTree:e,parentParams:P,parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,preloadCallbacks:c,authInterrupts:p.authInterrupts,MetadataOutlet:d});return[[t,n,h,a,!1]]}let O=null==E?void 0:E[1],j=new Set(i),$=new Set(s),I=new Set(o);O&&(rB(O,j,$,!0),rz(h,O,I));let D=[];for(let e of _){var N;let t=w[e];for(let n of(await nb({ctx:u,loaderTreeToFilter:t,parentParams:P,flightRouterState:r&&r[1][e],parentIsInsideSharedLayout:A,rscHead:a,injectedCSS:j,injectedJS:$,injectedFontPreloadTags:I,rootLayoutIncluded:k,preloadCallbacks:c,MetadataOutlet:d,hintTree:(null==f||null==(N=f.slots)?void 0:N[e])??null})))D.push([C,e,...n])}return D}let nw=(e,t)=>{var r;return!Array.isArray(e)&&!!Array.isArray(t)&&(null==(r=(0,tG.Hp)(e))?void 0:r.paramName)===t[0]};var nS=a("./dist/esm/shared/lib/router/utils/interception-routes.js");function n_(e){if(""===e)return null;let t=nS.VB.find(t=>e.startsWith(t)),r=(0,tG.Hp)(e);return r?{type:"dynamic",name:e,param:r,interceptionMarker:t}:e.startsWith("(")&&e.endsWith(")")?{type:"route-group",name:e,interceptionMarker:t}:e.startsWith("@")?{type:"parallel-route",name:e,interceptionMarker:t}:{type:"static",name:e,interceptionMarker:t}}function nE(e,t){let r,n,a,i=e.split("/").filter(Boolean),s=[];for(let o of i){let i=n_(o);if(i){if(t&&("route-group"===i.type||"parallel-route"===i.type))throw Object.defineProperty(new eM.z(`${e} is being parsed as a normalized route, but it has a route group or parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E923",enumerable:!1,configurable:!0});if(s.push(i),i.interceptionMarker){let s=e.split(i.interceptionMarker);if(2!==s.length)throw Object.defineProperty(Error(`Invalid interception route: ${e}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});n=t?nE(s[0],!0):nE(s[0],!1),a=t?nE(s[1],!0):nE(s[1],!1),r=i.interceptionMarker}}}let o=s.filter(e=>"dynamic"===e.type);return{normalized:t,pathname:e,segments:s,dynamicSegments:o,interceptionMarker:r,interceptingRoute:n,interceptedRoute:a}}function nR(e){switch(e){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function nk(e,t,r,n,a){switch(t){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let i=[];for(let e=r;e0)return i;if("optional-catchall"===t)return;throw Object.defineProperty(new eM.z(`Unexpected empty path segments match for a route "${n.pathname}" with param "${e}" of type "${t}"`),"__NEXT_ERROR_CODE",{value:"E931",enumerable:!1,configurable:!0});case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(r0;){let{tree:e,depth:t}=i.pop(),{segment:r,parallelRoutes:o}=rG(e),l=n_(r);if(l?.type==="dynamic"&&!a.hasOwnProperty(l.param.paramName)&&!n?.has(l.param.paramName)){let{paramName:e,paramType:r}=l.param,n=nk(e,r,t,s,a);if(void 0!==n)a[e]=n;else if("optional-catchall"!==r)throw Object.defineProperty(new eM.z(`Could not resolve param value for segment: ${e}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let u=t;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))i.push({tree:e,depth:u})}return a}function nP(e,t,r,n,a){let i=function(e,t,r){let n=e[t];if(r?.has(t)){let[e]=r.get(t);n=e}else Array.isArray(n)?n=n.map(e=>encodeURIComponent(e)):"string"==typeof n&&(n=encodeURIComponent(n));return n}(e,t,n);if(!i||0===i.length){if("oc"===r)return{param:t,value:null,type:r,treeSegment:[t,"",r,a]};throw Object.defineProperty(new eM.z(`Missing value for segment key: "${t}" with dynamic param type: ${r}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let s=Array.isArray(i)?i.join("/"):i;return{param:t,value:i,treeSegment:[t,s,r,a],type:r}}let nC=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function nT(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}async function nA(e,t){return Promise.all(Array.from(e).map(([e,r])=>r.then(async({entry:r,hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i})=>{if(t&&(0===r.revalidate||r.expire<300))return null;let[s,o]=r.value.tee();r.value=o;let l="";for await(let e of s)l+=function(e){let t=new Uint8Array(e),r=t.byteLength;if(r<65535)return String.fromCharCode.apply(null,t);let n="";for(let e=0;enull)))}async function nO(e,t){{if(0===e.fetch.size&&0===e.cache.size)return"null";let r={store:{fetch:Object.fromEntries(Array.from(e.fetch.entries())),cache:Object.fromEntries((await nA(e.cache.entries(),t)).filter(e=>null!==e)),encryptedBoundArgs:Object.fromEntries(Array.from(e.encryptedBoundArgs.entries()))}},{deflateSync:n}=a("node:zlib");return n(JSON.stringify(r)).toString("base64")}}function nj(e){return e?{cache:new Map(e.cache),fetch:new Map(e.fetch),encryptedBoundArgs:new Map(e.encryptedBoundArgs),decryptedBoundArgs:new Map(e.decryptedBoundArgs)}:{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map}}function n$(e,t){{let r;if("string"!=typeof e)return e;if("null"===e)return{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map};let{inflateSync:n}=a("node:zlib"),i=t?5*t:524288e3;try{r=JSON.parse(n(Buffer.from(e,"base64"),{maxOutputLength:i}).toString("utf-8"))}catch(e){if(e instanceof RangeError&&"ERR_BUFFER_TOO_LARGE"===e.code)throw Object.defineProperty(Error(`Decompressed resume data cache exceeded ${i} byte limit`),"__NEXT_ERROR_CODE",{value:"E976",enumerable:!1,configurable:!0});throw e}return{cache:function(e){let t=new Map;for(let[r,{entry:n,hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s}]of e)t.set(r,Promise.resolve({entry:{value:new ReadableStream({start(e){e.enqueue(function(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n(r(function(){let e=document.getElementsByName(n1)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(n1);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(n1)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[n,a]=(0,O.useState)(""),i=(0,O.useRef)(void 0);return(0,O.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&a(e),i.current=e},[e]),t?(0,rL.createPortal)(n,t):null}t_.s8,t_.s8,a("./dist/esm/client/components/unstable-rethrow.server.js").X,a("./dist/esm/server/app-render/dynamic-rendering.js").Ip,a("./dist/esm/server/app-render/dynamic-rendering.js").FD;let{instrumentParamsForClientValidation:n3,instrumentSearchParamsForClientValidation:n4,expectCompleteParamsInClientValidation:n6}=process.env.__NEXT_CACHE_COMPONENTS?a("./dist/esm/server/app-render/instant-validation/instant-samples-client.js"):{};function n8(){let e=(0,O.useContext)(nU);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function n9({redirect:e,reset:t,redirectType:r}){let n=n8();return(0,O.useEffect)(()=>{O.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class n5 extends O.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,tE.n)(e)){let t=tR(e),r=tk(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,T.jsx)(n9,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function n7({children:e}){let t=n8();return(0,T.jsx)(n5,{router:t,children:e})}function ae(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(t1.OG)?t1.OG:e}let at={then:()=>{}},ar=process.env.__NEXT_ROUTER_BASEPATH||"",an=process.env.__NEXT_ROUTER_BASEPATH||"",aa=e=>"/"===e[0]?e.slice(1):e,ai=e=>"string"==typeof e?"children"===e?"":e:e[1];function as(e){return e.reduce((e,t)=>""===(t=aa(t))||(0,t1.V)(t)?e:`${e}/${t}`,"")||"/"}function ao(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===t1.WO||nS.VB.some(e=>t.startsWith(e)))return;if(t.startsWith(t1.OG))return"";let r=[ai(t)],n=e[1]??{},a=n.children?ao(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=ao(t);void 0!==n&&r.push(n)}return as(r)}var al=a("./dist/compiled/react-server-dom-turbopack/client.node.js");async function au(e,t){return new Promise((r,n)=>{(0,O.startTransition)(()=>{(0,nZ.Dd)({type:nq.s8,actionId:e,actionArgs:t,resolve:r,reject:n})})})}process.env.__NEXT_ROUTER_BASEPATH;function ac(e){let[t,r,n,a]=e.slice(-4),i=e.slice(0,-4);return{pathToSegment:i.slice(0,-1),segmentPath:i,segment:i[i.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function ad(e){return"string"==typeof e?e:e.map(e=>ac(e))}function af(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,i,s]=t,o=function(e){if("string"==typeof e)return e.startsWith(t1.OG+"?")?t1.OG:e;let[t,r,n]=e;return[t,r,n,null]}(r),l={};for(let[t,r]of Object.entries(n))l[t]=e(r);let u=[o,l];return i&&(u[2]=null,u[3]=i),void 0!==s&&(u[4]=s),u}(e)))}let ah="/_head";function ap(e){if("string"==typeof e)return e.startsWith(t1.OG)?t1.OG:"/_not-found"===e?"_not-found":ay(e);let t=e[0];return"$"+e[2]+"$"+ay(t)}function am(e,t,r){return e+"/"+("children"===t?r:`@${ay(t)}/${r}`)}let ag=/^[a-zA-Z0-9\-_@]+$/;function ay(e){return ag.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function av(e){let t=e.headers.get(z.Wc);return null!==t?""===t?"":"?"+t:aw(new URL(e.url)).search}function ab(e){return!(""===e||e.startsWith(t1.OG)||"("===e[0]&&e.endsWith(")"))&&e!==t1.WO&&"/_not-found"!==e}function aw(e){let t=new URL(e);if(t.searchParams.delete(z._A),"export"===process.env.__NEXT_CONFIG_OUTPUT&&t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}e=process.env.NEXT_DEPLOYMENT_ID||void 0;function aS(e){return(e.then(a_),"fulfilled"!==e.status)?null:e.value}let a_=()=>{};function aE(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}var aR=((p={})[p.Intent=2]="Intent",p[p.Default=1]="Default",p[p.Background=0]="Background",p),ak=((m={})[m.LoadingBoundary=0]="LoadingBoundary",m[m.PPR=1]="PPR",m[m.PPRRuntime=2]="PPRRuntime",m[m.Full=3]="Full",m);let ax={},aP={};function aC(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function aT(e,t,r,n,a){let i=function e(t,r,n,a,i,s){let o,l;if(null!==a)o=a.value,l=a.parent;else if(i&&s!==aP)o=aP,l=null;else return null===n.value?n:aA(t,r,n.value)?(a$(n),null):n;let u=n.map;if(null!==u){let n=u.get(o);if(void 0!==n){let a=e(t,r,n,l,i,o);if(null!==a)return a}let a=u.get(ax);if(void 0!==a)return e(t,r,a,l,i,o)}return null}(e,t,r,n,a,0);return null===i||null===i.value?null:(aM(i),i.value)}function aA(e,t,r){return r.staleAt<=e||r.versionPromise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),aH=[],aB=0,az=0,aq=!1,aX=null;function aV(e,t,r,n,a,i){var s;let o={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:iD,segmentCacheVersion:0,priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:az++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return process.env.__NEXT_EXPOSE_TESTING_API&&(o._onComplete=i),(s=o).priority===aR.Intent&&s!==aX&&(null!==aX&&aX.priority!==aR.Background&&(aX.priority=aR.Default,ie(aH,aX)),aX=s),a9(aH,o),aG(),o}function aW(e,t,r){return e.routeCacheVersion!==iD||0!==e.segmentCacheVersion||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function aG(){aq||(aq=!0,aF(aQ))}function aJ(e){return e.priority===aR.Intent?aB<12:aB<4}function aK(e){return aB++,e.then(e=>null===e?(aY(),null):(e.closed.then(aY),e.value))}function aY(){aB--,aG()}function aQ(){aq=!1;let e=Date.now(),t=a5(aH);for(;null!==t&&aJ(t);){t.routeCacheVersion=iD,t.segmentCacheVersion=0;let r=function(e,t){let r=t.key,n=iF(e,t,r),a=function(e,t,r){switch(r.status){case iT.Empty:aK(i3(r,t.key)),r.staleAt=e+6e4,r.status=iT.Pending;case iT.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case iT.Rejected:break;case iT.Fulfilled:{let s;if(0!==t.phase)return 2;if(!aJ(t))return 0;let o=r.tree;switch(s=o.prefetchHints&t0.SubtreeHasInstant?ak.PPR:t.fetchStrategy===ak.PPR?r.supportsPerSegmentPrefetching?ak.PPR:ak.LoadingBoundary:t.fetchStrategy){case ak.PPR:{var n,a,i;if(a2(n=e,a=t,i=r,iB(n,ak.PPR,i.metadata),a.key,i.metadata),0===function e(t,r,n,a,i){let s=iB(t,r.fetchStrategy,i);a2(t,r,n,s,r.key,i);let o=a[1],l=i.slots;if(null!==l)for(let a in l){if(!aJ(r))return 0;let i=l[a],s=i.segment,u=o[a],c=u?.[0];if(0===(void 0!==c&&a6(n,s,c)?e(t,r,n,u,i):function e(t,r,n,a){if(a.prefetchHints&t0.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let i=iB(t,r.fetchStrategy,a);if(a2(t,r,n,i,r.key,a),null!==a.slots){if(!aJ(r))return 0;for(let i in a.slots)if(0===e(t,r,n,a.slots[i]))return 0}return 2}(t,r,n,i)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,o))return 0;let s=t.spawnedRuntimePrefetches;if(null!==s){let n=new Map;a0(e,t,r,n,ak.PPRRuntime);let a=function e(t,r,n,a,i,s){if(i.has(a.requestKey))return a1(t,r,n,a,!1,s,ak.PPRRuntime);let o={},l=a.slots;if(null!==l)for(let a in l){let u=l[a];o[a]=e(t,r,n,u,i,s)}return[a.segment,o,null,null]}(e,t,r,o,s,n);n.size>0&&aK(i8(t,r,ak.PPRRuntime,a,n))}return 2}case ak.Full:case ak.PPRRuntime:case ak.LoadingBoundary:{let n=new Map;a0(e,t,r,n,s);let a=function e(t,r,n,a,i,s,o){let l=a[1],u=i.slots,c={};if(null!==u)for(let a in u){let i=u[a],d=i.segment,f=l[a],h=f?.[0];if(void 0!==h&&a6(n,d,h)){let l=e(t,r,n,f,i,s,o);c[a]=l}else switch(o){case ak.LoadingBoundary:{let e=(i.prefetchHints&(t0.SegmentHasLoadingBoundary|t0.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,i,s){let o=null===i?"inside-shared-layout":null,l=iB(t,r.fetchStrategy,a);switch(l.status){case iT.Empty:s.set(a.requestKey,iV(l,ak.LoadingBoundary)),"refetch"!==i&&(o=i="refetch");break;case iT.Fulfilled:if((a.prefetchHints&t0.SegmentHasLoadingBoundary)!=0)return i2(a);case iT.Pending:case iT.Rejected:}let u={};if(null!==a.slots)for(let o in a.slots){let l=a.slots[o];u[o]=e(t,r,n,l,i,s)}return[a.segment,u,null,o]}(t,r,n,i,null,s):i2(i);c[a]=e;break}case ak.PPRRuntime:{let e=a1(t,r,n,i,!1,s,o);c[a]=e;break}case ak.Full:{let e=a1(t,r,n,i,!1,s,o);c[a]=e}}}return[i.segment,c,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,o,n,s);return n.size>0&&aK(i8(t,r,s,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=aE(new URL(r.pathname,location.origin).href,r.nextUrl),a=iF(e,t,n);switch(a.status){case iT.Empty:aZ(t)&&(a.status=iT.Pending,aK(i3(a,n)));case iT.Pending:case iT.Fulfilled:case iT.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:a7(aH),t=a5(aH);continue;case 2:if(1===t.phase)t.phase=0,ie(aH,t);else if(n)t.priority=aR.Background,ie(aH,t);else{if(process.env.__NEXT_EXPOSE_TESTING_API){let e=t._onComplete;t._onComplete=void 0,e?.()}a7(aH)}t=a5(aH);continue}}null===t&&0===aB&&function(){if(!(aN<=0x3200000))for(;aN>0x2d00000&&null!==aD;){let e=aD.prev;null!==e&&a$(e)}}()}function aZ(e){return e.priority===aR.Background||(e.hasBackgroundWork=!0,!1)}function a0(e,t,r,n,a){a1(e,t,r,r.metadata,!1,n,a===ak.LoadingBoundary?ak.Full:a)}function a1(e,t,r,n,a,i,s){var o,l;let u=iB(e,s,n),c=null;switch(u.status){case iT.Empty:if(s===ak.Full&&null!==function(e,t,r){r.varyPath;let n=null;if(null!==n){let r=n.navigatedAt+sV;return e>r?null:iY(iV(t,ak.Full),n.rsc,r,!1)}return null}(e,u,n))break;c=iV(u,s);break;case iT.Fulfilled:if(u.isPartial&&(o=u.fetchStrategy,on)return null;let a=iY(iV(iX(e),ak.Full),r.rsc,n,!1),i=iq(e,ic(ak.Full,t),a);if(null!==i&&2===i.status)return i}return null}(e,n))break;c=a4(e,n,s)}break;case iT.Pending:case iT.Rejected:l=u.fetchStrategy,l0&&aK(i6(r,a,r.tree,i));break}aK(i4(r,iV(n,ak.PPR),a,i));break;case iT.Pending:switch(n.fetchStrategy){case ak.PPR:case ak.PPRRuntime:case ak.Full:break;case ak.LoadingBoundary:aZ(t)&&a3(e,r,a,i);break;default:n.fetchStrategy}break;case iT.Rejected:switch(n.fetchStrategy){case ak.PPR:case ak.PPRRuntime:case ak.Full:break;case ak.LoadingBoundary:a3(e,r,a,i);break;default:n.fetchStrategy}case iT.Fulfilled:}}function a3(e,t,r,n){let a=iz(e,ak.PPR,n);switch(a.status){case iT.Empty:aK(i4(t,iV(a,ak.PPR),r,n));case iT.Pending:case iT.Fulfilled:case iT.Rejected:}}function a4(e,t,r){var n,a;let i=iz(e,r,t);if(i.status===iT.Empty)return iV(i,r);if(n=i.fetchStrategy,n>>1],t)>0?it(e,t,r):ir(e,t,r))}function it(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(a8(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function ir(e,t,r){let n=r,a=e.length,i=a>>>1;for(;na8(i,t))sa8(o,i)?(e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s):(e[n]=i,i._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(sa8(o,t)))return;e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s}}}function ia(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function ii(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:ax,parent:null}}}}function is(e,t,r){return{id:r,value:t,parent:e}}function io(e,t){return{id:null,value:e,parent:t}}function il(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function iu(e,t,r){return{id:null,value:e+ah,parent:{id:"?",value:t,parent:r}}}function ic(e,t){let r=t.varyPath;if(t.isPage&&e!==ak.Full&&e!==ak.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:ax,parent:e}}}return r}function id(e){let t=e.parent.value;return"string"==typeof t?t:null}function ih(e,t){return{id:e.id,value:null===e.id||t.has(e.id)?e.value:ax,parent:null===e.parent?null:ih(e.parent,t)}}let ip=null,im={pending:!0},ig={pending:!1},iy="function"==typeof WeakMap?new WeakMap:new Map,iv=new Set;function ib(e,t){for(let r of iv){let n=r.prefetchTask;if(null!==n&&!aW(n,e,t))continue;null!==n&&function(e){if(e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,ir(e,n,r))}}(aH,e),process.env.__NEXT_EXPOSE_TESTING_API){let t=e._onComplete;e._onComplete=void 0,t?.()}}(n);let a=aE(r.prefetchHref,e);r.prefetchTask=aV(a,t,r.fetchStrategy,aR.Default,null)}}"function"==typeof IntersectionObserver&&new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;!function(e,t){let r=iy.get(e);void 0!==r&&(r.isVisible=t,t?iv.add(r):iv.delete(r),aR.Default)}(t.target,e)}},{rootMargin:"200px"});var iw=a("./dist/esm/shared/lib/promise-with-resolvers.js");function iS(e,t){return -1!==t?e+1e3*t:e+sX}function i_(e,t,r,n,a,i,s){}function iE(e,t,r,n,a){}aC();function iR(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let ik=iR();function ix(e,t,r,n,a,i,s,o,l,u){let c=t.split("/").filter(e=>""!==e),d=c.length>0?c[0]:null,f=c.length>0?c.slice(1):[];if(null!==n){let c=iJ(e,n,a,i,s,o,l);return u&&(c.hasDynamicRewrite=!0),iP(ik,a,d,f,c,e,t,r,a,i,s,o,l,u),c}return iP(ik,a,d,f,null,e,t,r,a,i,s,o,l,u)}function iP(e,t,r,n,a,i,s,o,l,u,c,d,f,h){let p,m,g=t.segment,y=null,v=null,b=null;"string"==typeof g?p=ab(g):(y=g[0],v=g[2],b=g[3],p=!0);let w=e,S=r,_=n;if(p){if(null===y&&r!==g)return null!==a?a:iK(i,s,o,l,u,c,d,f);if(null!==y&&null!==v){if(w=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=iR();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,y,v),null!==b)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),b))e.staticChildren.has(t)||e.staticChildren.set(t,iR())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=iR(),e.staticChildren.set(r,t)),w=t}S=n.length>0?n[0]:null,_=n.length>0?n.slice(1):[]}let E=t.slots,R=null;if(null!==E){for(let e in E){let t=E[e];null===t.refreshState&&(R=iP(w,t,S,_,a,i,s,o,l,u,c,d,f,h))}return null!==R?R:null!==a?a:iK(i,s,o,l,u,c,d,f)}return null!==w.pattern?(h&&(w.pattern.hasDynamicRewrite=!0),w.pattern):(m=null!==a?a:iK(i,s,o,l,u,c,d,f),h&&(m.hasDynamicRewrite=!0),w.pattern=m,m)}function iC(e){return 1e3*Math.max(e,30)}var iT=((g={})[g.Empty=0]="Empty",g[g.Pending=1]="Pending",g[g.Fulfilled=2]="Fulfilled",g[g.Rejected=3]="Rejected",g);let iA="export"===process.env.__NEXT_CONFIG_OUTPUT,iO=["",{},null,"metadata-only"],ij=aC(),i$=aC(),iI=null,iD=0;function iN(e,t){let r=ia(t.pathname,t.search,t.nextUrl),n=aT(e,iD,ij,r,!1);return null!==n?n:process.env.__NEXT_OPTIMISTIC_ROUTING?function(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let i=n=400)return iQ(e,Date.now()+1e4),null;l=r.redirected?new URL(r.url):u,t=await se(sr(l,i),s)}else t=await se(u,s),l=null!==t&&t.redirected?new URL(t.url):u;if(!t||!t.ok||204===t.status||!t.body)return iQ(e,Date.now()+1e4),null;let c=nX(l),d=t.headers.get("vary"),f=null!==d&&d.includes(z.kO),h=(0,iw.b)(),p="2"===t.headers.get(z.jc)||iA;if(p){var o;let n,{stream:i,size:l}=await st(t.body);h.resolve(),aI(e,l);let u=await sy(i,s,{allowPartialStream:!0});if((t.headers.get(ef.eQ)??u.buildId)!=="")return iQ(e,Date.now()+1e4),null;let d=(o=t).headers.get(z.j9)??aw(new URL(o.url)).pathname,m=av(t),g={metadataVaryPath:null},y=(n=d.split("/").filter(e=>""!==e),function e(t,r,n,a,i,s,o,l){let u,c,d=null,f=t.slots;if(null!==f)for(let t in u=!1,c=io(a,n),d={},f){let r,u,c,h=f[t],p=h.name,m=h.param;if(null!==m){let e=function(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}(m.type,i,s),t=null!==m.key?m.key:"string"==typeof e?(0,t1.HG)(e,Object.fromEntries(new URLSearchParams(""))):null===e?"":e.join("/");c=is(n,t,p),u=[p,t,m.type,m.siblings],r=!0}else c=n,u=p,r=ab(p);let g=r?s+1:s,y=am(a,t,ap(u));d[t]=e(h,u,c,y,i,g,o,l)}else a.endsWith(t1.OG)?(u=!0,c=il(a,o,n),null===l.metadataVaryPath&&(l.metadataVaryPath=iu(a,o,n))):(u=!1,c=io(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:c,isPage:u,slots:d,prefetchHints:t.prefetchHints}}(u.tree,"",null,"",n,0,m,g)),v=g.metadataVaryPath;if(null===v)return iQ(e,Date.now()+1e4),null;ix(Date.now(),r,a,e,y,v,f,c,p,!1)}else{let{stream:n,size:i}=await st(t.body);h.resolve(),aI(e,i);let o=await sy(n,s,{allowPartialStream:!0});if((t.headers.get(ef.eQ)??o.b)!=="")return iQ(e,Date.now()+1e4),null;let l=o.h,u=null!==l?aS(l):null;!function(e,t,r,n,a,i,s,o,l,u,c){let d=av(r),f=ad(n.f);if("string"==typeof f||1!==f.length)return iQ(a,e+1e4);let h=f[0];if(!h.isRootRender)return iQ(a,e+1e4);let p=h.tree,m="1"===r.headers.get(z.jc),g={metadataVaryPath:null},y=i0(p,d,g),v=g.metadataVaryPath;if(null===v)return iQ(a,e+1e4);ix(e,u,c,a,y,v,i,s,o,!1);let b=sz(e,p,f,d,-1);i5(e,t,f,r.headers.get(ef.eQ)??n.b,m,l,sa(e,r),b,null)}(Date.now(),ak.LoadingBoundary,t,o,e,f,c,p,u,r,a)}if(!f){let t=ii(r,n,a,f);aO(ij,t,e,!1)}return{value:null,closed:h.promise}}catch(t){return iQ(e,Date.now()+1e4),null}}async function i4(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=r.nextUrl,s=n.requestKey,o=""===s?"/_index":s,l={[z.hY]:"1",[z._V]:"1",[z.qm]:o};null!==i&&(l[z.kO]=i),sn(l);let u=iA?sr(a,o):a;try{let e=await se(u,l);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(z.jc)&&!iA||!e.body)return iZ(t,Date.now()+1e4),null;let r=(0,iw.b)(),{stream:a,size:i}=await st(e.body);r.resolve(),aI(t,i);let s=await sy(a,l,{allowPartialStream:!0});if((e.headers.get(ef.eQ)??s.buildId)!=="")return iZ(t,Date.now()+1e4),null;let o=Date.now(),c=o+iC(s.staleTime),d=iY(t,s.rsc,c,s.isPartial),f=s.varyParams,h=process.env.__NEXT_VARY_PARAMS&&null!==f?ih(n.varyPath,f):ic(t.fetchStrategy,n);return iq(o,h,d),{value:d,closed:r.promise}}catch(e){return iZ(t,Date.now()+1e4),null}}async function i6(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=t.nextUrl,s={[z.hY]:"1",[z._V]:"1",[z.qm]:"/"+t1.OG};null!==i&&(s[z.kO]=i),sn(s);try{let t=await se(a,s);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(z.jc)&&!iA||!t.body)return i9(n,Date.now()+1e4),null;let i=(0,iw.b)(),{stream:o}=await st(t.body);i.resolve();let l=await sy(o,s,{allowPartialStream:!0});if((t.headers.get(ef.eQ)??l.tree.segment.buildId)!=="")return i9(n,Date.now()+1e4),null;let u=Date.now();!function e(t,r,n,a,i){let s=a.segment,o=t+iC(s.staleTime),l=i.get(n.requestKey);if(void 0!==l)iY(l,s.rsc,o,s.isPartial);else{let e=iB(t,ak.PPR,n);0===e.status&&iY(iV(e,ak.PPR),s.rsc,o,s.isPartial)}if(null!==n.slots&&null!==a.slots)for(let s in n.slots){let o=n.slots[s],l=a.slots[s];void 0!==l&&e(t,r,o,l,i)}}(u,e,r,l.tree,n);let c=u+iC(l.head.staleTime),d=e.metadata.requestKey,f=n.get(d);if(void 0!==f)iY(f,l.head.rsc,c,l.head.isPartial);else{let t=iB(u,ak.PPR,e.metadata);0===t.status&&iY(iV(t,ak.PPR),l.head.rsc,c,l.head.isPartial)}return i9(n,Date.now()+1e4),{value:null,closed:i.promise}}catch(e){return i9(n,Date.now()+1e4),null}}async function i8(e,t,r,n,a){let i=e.key,s=new URL(t.canonicalUrl,location.origin),o=i.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=iO);let l={[z.hY]:"1",[z.B]:af(n)};switch(null!==o&&(l[z.kO]=o),r){case ak.Full:break;case ak.PPRRuntime:l[z._V]="2";break;case ak.LoadingBoundary:l[z._V]="1"}try{let e,i=await se(s,l);if(!i||!i.ok||!i.body)return i9(a,Date.now()+1e4),null;let o=av(i);if(o!==t.renderedSearch)return i9(a,Date.now()+1e4),null;let f=(0,iw.b)(),h=null,p=null;if(r===ak.Full){var u,c,d;let t,r;u=i.body,c=f.resolve,d=function(e){if(null===h)return;let t=e/h.length;for(let e of h)aI(e,t)},t=0,r=u.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),d(t+=a.byteLength);continue}e.close(),c();return}}})}else{let{stream:t,size:r}=await st(i.body);f.resolve(),e=t,p=r}let[m,g]=await Promise.all([sy(e,l,{allowPartialStream:!0}),i.cacheData]),y=m.h,v=null!==y?aS(y):null,b=Date.now(),w=await si(b,m.s,i),S=r===ak.PPRRuntime&&(g?.isResponsePartial??!1),_=i.headers.get(ef.eQ)??m.b,E=ad(m.f);if("string"==typeof E)return i9(a,Date.now()+1e4),null;let R=sz(b,n,E,o,-1);if(h=i5(b,r,E,_,S,v,w,R,a),null!==p&&null!==h&&h.length>0){let e=p/h.length;for(let t of h)aI(t,e)}return{value:null,closed:f.promise}}catch(e){return i9(a,Date.now()+1e4),null}}function i9(e,t){let r=[];for(let n of e.values())1===n.status?iZ(n,t):2===n.status&&r.push(n);return r}function i5(e,t,r,n,a,i,s,o,l){if(n&&""!==n)return null!==l&&i9(l,e+1e4),null;let u=o.routeTree,c=null!==o.metadataVaryPath?iG(o.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let i=n.segmentPath,o=u;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function sr(e,t){if(iA){let r=new URL(e),n=r.pathname.endsWith("/")?r.pathname.slice(0,-1):r.pathname,a=`__next${t.replace(/\//g,".")}.txt`;return r.pathname=`${n}/${a}`,r}return e}function sn(e){if(process.env.__NEXT_EXPOSE_TESTING_API){let{isNavigationLocked:t}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");t()&&(e[z.Yf]="1")}}function sa(e,t){let r=parseInt(t.headers.get(z.UK)??"",10);return e+(isNaN(r)?sV:iC(r))}async function si(e,t,r){if(void 0!==t){let r;for await(let e of t)r=e;if(void 0!==r)return e+(isNaN(r)?sV:iC(r))}return void 0!==r?sa(e,r):e+sV}function ss(e,t,r,n,a,i,s,o){let l=o?ak.PPR:ak.Full,u=null!==n?aS(n):null,c=ad(t);if("string"==typeof c)return;let d=sz(e,i,c,s,-1);i5(e,l,c,r,o,u,a,d,null)}async function so(e,t,r,n){let{stream:a,isPartial:i}=await sl(t),s=await sy(a,void 0,{allowPartialStream:!0}),o=s.h,l=null!==o?aS(o):null,u=await si(e,s.s),c=ad(s.f);if("string"==typeof c)return null;let d=sz(e,r,c,n,-1);return{flightDatas:c,navigationSeed:d,buildId:s.b,isResponsePartial:i,headVaryParams:l,staleAt:u}}async function sl(e){let t=!!process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS,r=e.getReader(),{done:n,value:a}=await r.read();if(n||!a||0===a.byteLength)return{stream:new ReadableStream({start:e=>e.close()}),isPartial:t};let i=a[0],s=35===i||126===i,o=s?a.byteLength>1?a.subarray(1):null:a;return{isPartial:s?126===i:t,stream:new ReadableStream({start(e){o&&e.enqueue(o)},async pull(e){let t=await r.read();t.done?e.close():e.enqueue(t.value)}})}}let su=al.createFromReadableStream,sc=al.createFromFetch;function sd(e){return aw(new URL(e,location.origin)).toString()}async function sf(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[z.hY]:"1",[z.B]:af(r,t.isHmrRefresh)};n&&(a[z.kO]=n);let i=e;try{"export"===process.env.__NEXT_CONFIG_OUTPUT&&((e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt");let t=process.env.__NEXT_PPR&&!process.env.__NEXT_CACHE_COMPONENTS,r=await sg(e,a,"auto",!t),n=aw(new URL(r.url)),s=r.redirected?n:i,o=r.headers.get("content-type")||"",l=!!r.headers.get("vary")?.includes(z.kO),u=!!r.headers.get(z.jc),c=o.startsWith(z.al);if("export"!==process.env.__NEXT_CONFIG_OUTPUT||c||(c=o.startsWith("text/plain")),!c||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),sd(n.toString());let d=r.flightResponsePromise;null===d&&(d=sy(r.body,a,{allowPartialStream:u}));let[f,h]=await Promise.all([d,r.cacheData]);if((r.headers.get(ef.eQ)??f.b)!=="")return sd(r.url);let p=ad(f.f);if("string"==typeof p)return sd(p);let m=null!==h?await sp(h,f,a):null;return{flightData:p,canonicalUrl:s,renderedSearch:f.q,couldBeIntercepted:l,supportsPerSegmentPrefetching:f.S,postponed:u,dynamicStaleTime:f.d??-1,staticStageData:m,runtimePrefetchStream:f.p??null,responseHeaders:r.headers,debugInfo:d._debugInfo??null}}catch(e){return console.error(`Failed to fetch RSC payload for ${i}. Falling back to browser navigation.`,e),i.toString()}}async function sh(e){if(process.env.__NEXT_CACHE_COMPONENTS){let t,r;if(!e.body)throw Object.defineProperty(new eM.z("Expected RSC navigation response to have a body"),"__NEXT_ERROR_CODE",{value:"E1088",enumerable:!1,configurable:!0});let{stream:n,isPartial:a}=await sl(e.body);if(process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS){let[e,i]=n.tee();t=e,r={isResponsePartial:a,responseBodyClone:i}}else t=n,r={isResponsePartial:a};let i=new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText});return Object.defineProperty(i,"url",{value:e.url}),Object.defineProperty(i,"redirected",{value:e.redirected}),{response:i,cacheData:r}}return{response:e,cacheData:null}}async function sp(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await sm(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function sm(e,t,r){var n,a;let i,s;return sy((n=e,a=await t,i=n.getReader(),s=a,new ReadableStream({async pull(e){if(s<=0){i.cancel(),e.close();return}let{done:t,value:r}=await i.read();t?e.close():r.byteLength<=s?(e.enqueue(r),s-=r.byteLength):(e.enqueue(r.subarray(0,s)),s=0,i.cancel(),e.close())},cancel(){i.cancel()}})),r,{allowPartialStream:!0})}async function sg(t,r,n,a,i){process.env.__NEXT_TEST_MODE&&null!==n&&(r["Next-Test-Fetch-Priority"]=n),e&&(r["x-deployment-id"]=e);let s={credentials:"same-origin",headers:r,priority:n||void 0,signal:i},o=new URL(t);rv(o,r);let l=fetch(o,s).then(sh),u=l.then(({response:e})=>e),c=a?sv(u,r):null,d=await u,f=d.redirected;if(process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS)for(let e=0;e<20&&d.redirected;e++){let e=new URL(d.url,o);if(e.origin!==o.origin||e.searchParams.get(z._A)===o.searchParams.get(z._A))break;rv(o=new URL(e),r),u=(l=fetch(o,s).then(sh)).then(({response:e})=>e),c=a?sv(u,r):null,d=await u,f=!0}let h=new URL(d.url,o);return h.searchParams.delete(z._A),{url:h.href,redirected:f,ok:d.ok,headers:d.headers,body:d.body,status:d.status,flightResponsePromise:c,cacheData:l.then(({cacheData:e})=>e)}}function sy(e,r,n){return su(e,{callServer:au,findSourceMapURL:s,debugChannel:t&&t(r),unstable_allowPartialStream:n?.allowPartialStream})}function sv(e,r){return sc(e,{callServer:au,findSourceMapURL:s,debugChannel:t&&t(r)})}var sb=((y={})[y.Default=0]="Default",y[y.Hydration=1]="Hydration",y[y.HistoryTraversal=2]="HistoryTraversal",y[y.RefreshAll=3]="RefreshAll",y[y.HMRRefresh=4]="HMRRefresh",y[y.Gesture=5]="Gesture",y);let sw=()=>{};function sS(e,t,r,n,a,i,s,o,l){let u=s_(t),c=t.slots,d=null!==a?a[1]:null,f=sk(e,t,null!==a?a[0]:null,r,i,n,s),h=f.cacheNode,p=f.needsDynamicRequest;null===c&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,h,l);let m={},g=null,y=!1,v={},b=null;if(null!==c)for(let t in h.slots=b={},g=new Map,c){let a=sS(e,c[t],r,n,(null!==d?d[t]:null)??null,i,s,o||p,l);g.set(t,a),b[t]=a.node;let u=a.route;m[t]=u;let f=a.dynamicRequestTree;null!==f?(y=!0,v[t]=f):v[t]=u}let w=[u,m,null,null,t.prefetchHints];return{status:+!p,route:w,node:h,dynamicRequestTree:sR(w,v,p,y,o),refreshState:null,children:g}}function s_(e){if(e.isPage){let t=id(e.varyPath);if(null===t)return t1.OG;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?t1.OG+"?"+r:t1.OG}return e.segment}function sE(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function sR(e,t,r,n,a){let i=null;return r?(i=sE(e,t),a||(i[3]="refetch")):i=n?sE(e,t):null,i}function sk(e,t,r,n,a,i,s){let o,l,u,c=t.isPage;switch(i){case 0:{let e=(t.varyPath,null);if(null!==e)return{cacheNode:sx(e.rsc,e.prefetchRsc,e.head,e.prefetchHead),needsDynamicRequest:!1};break}case 1:{let i=c?a:null;return i_(e,t.varyPath,r,null,i,null,s),c&&null!==n&&iE(e,n,i,null,s),{cacheNode:sx(r,null,i,null),needsDynamicRequest:!1}}case 2:let d=(t.varyPath,null);if(null!==d){let e=d.rsc,t=!sj(e)||"pending"!==e.status;return{cacheNode:sx(d.rsc,t?null:d.prefetchRsc,d.head,t?null:d.prefetchHead),needsDynamicRequest:!1}}}let f=null,h=!0,p=iM(e,t.varyPath);if(null!==p)switch(p.status){case iT.Fulfilled:f=p.rsc,h=p.isPartial;break;case iT.Pending:f=iL(p).then(e=>null!==e?e.rsc:null),h=p.isPartial;case iT.Empty:case iT.Rejected:}null!==r?(h?(o=f,l=r):(o=null,l=f),u=!1):(h?(o=f,l=s$()):(o=null,l=f),u=h);let m=null,g=null,y=c;if(c){let t=null,r=!0;if(null!==n){let a=iM(e,n);if(null!==a)switch(a.status){case iT.Fulfilled:t=a.rsc,r=a.isPartial;break;case iT.Pending:t=iL(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case iT.Empty:case iT.Rejected:}}process.env.__NEXT_OPTIMISTIC_ROUTING&&r&&(t=""),null!==a?(r?(m=t,g=a):(m=null,g=t),y=!1):(r?(m=t,g=s$()):(m=null,g=t),y=r)}return 5!==i&&(i_(e,t.varyPath,l,o,g,m,s),c&&null!==n&&iE(e,n,g,m,s)),{cacheNode:sx(l,o,g,m),needsDynamicRequest:u||y}}function sx(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let sP=!1;async function sC(e,t,r,n,a,i){var s,o;let l=await (s=r,o=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;s.then(t,r),null!==o&&(n+=o.length,o.forEach(e=>e.then(t,r)))}));switch(0===l&&(l=function e(t,r,n){var a,i,s;let o,l,u;0===t.status?(t.status=2,a=t.node,i=r,s=n,sj(l=a.rsc)&&(null===i?l.resolve(null,s):l.reject(i,s)),sj(u=a.head)&&u.resolve(null,s),o=null===t.refreshState?1:2):o=0;let c=t.children;if(null!==c)for(let[,t]of c){let a=e(t,r,n);a>o&&(o=a)}return o}(e,null,null)),l){case 0:sP=!1;return;case 1:{let n=await r;sT(!1,n.url,t,n.seed,e.route,a,i);return}case 2:{let n=await r;sT(!0,n.url,t,n.seed,e.route,a,i);return}default:return l}}function sT(e,t,r,n,a,i,s){if(null!==i)i.hasDynamicRewrite=!0;else if(null!==n){let e=n.metadataVaryPath;null!==e&&ix(Date.now(),t.pathname,r,null,n.routeTree,e,!1,nX(t),!1,!0)}iD++,ib(r,a),function(e,t){if(null!==iI){let r=iI;for(let n of(iI=null,r))aW(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}(r,a),e=e||sP,sP=!0;let o=n0,l=null!==o&&a!==o?s:"replace",u={type:nq.Aw,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:l};(0,nZ.Dd)(u)}async function sA(e,t,r,n,a,i){try{let s=await sf(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof s)return{exitStatus:2,url:new URL(s,location.origin),seed:null};let o=Date.now(),l=sz(o,e.route,s.flightData,s.renderedSearch,s.dynamicStaleTime);if(process.env.__NEXT_EXPOSE_TESTING_API&&await sI(),null!==i&&null!==s.staticStageData){let{response:e,isResponsePartial:r}=s.staticStageData;si(o,e.s).then(n=>{let a=s.responseHeaders.get(ef.eQ)??e.b;ss(o,e.f,a,e.h,n,t,s.renderedSearch,r)}).catch(()=>{})}null!==i&&null!==s.runtimePrefetchStream&&so(o,s.runtimePrefetchStream,t,s.renderedSearch).then(e=>{null!==e&&i5(o,ak.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let u=iS(o,s.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,i,s){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,i=t[0];if(null===i)return;null===a?e.rsc=i:sj(a)&&a.resolve(i,n);let s=e.head;sj(s)&&s.resolve(r,n)}(t.node,n,a,s),r.varyPath);let o=t.children,l=r.slots,u=null!==n?n[1]:null,c=!1;if(null!==o)if(null!==l)for(let t in l){let r=l[t],n=null!==u?u[t]:null,d=o.get(t);if(void 0===d)c=!0;else{let t=d.route[0];rH(s_(r),t)&&null!=n&&e(d,r,n,a,i,s)&&(c=!0)}}else null!==l&&(c=!0);return c}(e,l.routeTree,l.data,l.head,u,s.debugInfo),url:new URL(s.canonicalUrl,location.origin),seed:l}}catch{return{exitStatus:2,url:r,seed:null}}}let sO=Symbol();function sj(e){return e&&"object"==typeof e&&e.tag===sO}function s$(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=sO,n._debugInfo=r,n}async function sI(){if(process.env.__NEXT_EXPOSE_TESTING_API){let{waitForNavigationLockIfActive:e}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");await e()}}let sD=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function sN(e){return sD.test(""+e)}function sM(e,t,r,n,a,i,s,o,l,u){let c=Date.now(),d=iN(c,aE(t.href,s));if(null!==d&&d.status===iT.Fulfilled)return sU(c,e,t,r,n,s,a,i,o,l,u,d);if(!process.env.__NEXT_OPTIMISTIC_ROUTING&&(null===d||d.status!==iT.Rejected)){let d=function(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let i=iN(e,aE(a.href,r));if(null===i||2!==i.status)return null;let s=new URL(i.canonicalUrl,t.origin),o=""!==s.search?s.search:n,l=""!==i.renderedSearch?i.renderedSearch:n,u=new URL(i.canonicalUrl,location.origin);return u.search=o,{canonicalUrl:nX(u),status:2,blockedTasks:null,tree:iH(i.tree,l),metadata:iH(i.metadata,l),couldBeIntercepted:i.couldBeIntercepted,supportsPerSegmentPrefetching:i.supportsPerSegmentPrefetching,hasDynamicRewrite:i.hasDynamicRewrite,renderedSearch:l,ref:null,size:0,staleAt:i.staleAt,version:i.version}}(c,t,s);if(null!==d)return sU(c,e,t,r,n,s,a,i,o,l,u,d)}return sH(c,e,t,r,n,s,a,i,o,l,u).catch(()=>e)}function sL(e,t,r,n,a,i,s,o,l,u,c,d,f,h,p){var m,g,y,v,b;let w,S={separateRefreshUrls:null,scrollRef:null},_=r.href===i.href,E=(m=a.routeTree,g=a.metadataVaryPath,y=a.data,v=a.head,b=a.dynamicStaleAt,w={canonicalUrl:nX(i),renderedSearch:s},function e(t,r,n,a,i,s,o,l,u,c,d,f,h,p,m,g){var y,v,b;let w,S,_,E,R=a[0],k=s_(i);if(!rH(k,R))return!l&&function e(t,r){let n=t[0],a=r.segment;if(Array.isArray(n)&&Array.isArray(a)){if(n[0]!==a[0]||n[2]!==a[2])return!0}else if(n!==a)return!0;let i=((t[4]??0)&t0.IsRootLayout)!=0,s=(r.prefetchHints&t0.IsRootLayout)!=0;if(i)return!s;if(s)return!0;let o=r.slots,l=t[1];if(null!==o)for(let t in o){let r=o[t],n=l[t];if(void 0===n||e(n,r))return!0}return!1}(a,i)||k===t1.Jn?null:sS(t,i,s,o,u,c,d,h,g);let x=i.slots,P=a[1],C=null!==u?u[1]:null,T=l||(i.prefetchHints&t0.IsRootLayout)!=0,A=!1;switch(o){case 0:case 2:case 1:case 5:A=!1;break;case 3:case 4:A=!0}let O=null===x;if(void 0===n||A||O&&f){let e=sk(t,i,null!==u?u[0]:null,s,c,o,d);_=e.cacheNode,E=e.needsDynamicRequest,void 0!==n&&(_.scrollRef=n.scrollRef)}else{y=!1,_=sx((v=n).rsc,y?null:v.prefetchRsc,v.head,y?null:v.prefetchHead,v.scrollRef),E=!1}let j=i.refreshState,$=null!=j?j:m;E&&null!==$&&(b=g,w=$.canonicalUrl,null===(S=b.separateRefreshUrls)?b.separateRefreshUrls=new Set([w]):S.add(w));let I={},D=null,N=!1,M={},L=null;if(null!==x){let a=void 0!==n?n.slots:null;for(let n in _.slots=L={},D=new Map,x){let l=x[n],u=P[n];if(void 0===u)return null;let m=null!==C?C[n]:null,y=u[0],v=s_(l),b=c;2!==o&&v===t1.WO&&y!==t1.WO&&(v=s_(l=function(e,t,r,n){let a,i,s=n[2];null!=s?(a=s[0],i=s[1]):(a=r.canonicalUrl,i=r.renderedSearch);let o=function(e,t,r,n,a){let i=e.isPage?e.varyPath.parent.parent:e.varyPath.parent,s=r[0];return i1(r,am(e.requestKey,t,ap(s)),i,n,a)}(e,t,n,i,{metadataVaryPath:null});return o.refreshState={canonicalUrl:a,renderedSearch:i},o}(i,n,p,u)),m=null,b=null);let w=e(t,r,null!==a?a[n]:void 0,u,l,s,o,T,m??null,b,d,f,h||E,p,$,g);if(null===w)return null;D.set(n,w),L[n]=w.node;let S=w.route;I[n]=S;let _=w.dynamicRequestTree;null!==_?(N=!0,M[n]=_):M[n]=S}}let U=[s_(i),I,null!==$?[$.canonicalUrl,$.renderedSearch]:null,null,i.prefetchHints];return{status:+!E,route:U,node:_,dynamicRequestTree:sR(U,M,E,N,h),refreshState:$,children:D}}(e,i,null!==o?o:void 0,l,m,g,u,!1,y,v,b,_,!1,w,null,S));return null!==E?(u!==sb.Gesture&&function(e,t,r,n,a,i,s){let o=e.dynamicRequestTree;if(null===o){sP=!1;return}let l=sA(e,o,t,r,n,i),u=a.separateRefreshUrls,c=null;if(null!==u){c=[];let a=nX(t);for(let t of u)t!==a&&null!==o&&c.push(sA(e,o,new URL(t,location.origin),r,n,i))}sC(e,r,l,c,i,s).then(sw,sw)}(E,r,c,u,S,p,f),function(e,t,r,n,a,i,s,o,l,u,c){let d,f,h,p=(null==(h=function e(t,r){let[n,a]=t,[i,s]=r,o=ai(n),l=ai(i);if(nS.VB.some(e=>o.startsWith(e)||l.startsWith(e)))return"";if(!rH(n,i))return ao(r)??"";for(let t in a)if(s[t]){let r=e(a[t],s[t]);if(null!==r)return`${ai(i)}/${r}`}return null}(e.tree,n))||"/"===h?h:as(h.split("/")))||e.nextUrl,m=new URL(e.canonicalUrl,t),g=t.pathname===m.pathname&&t.search===m.search&&t.hash!==m.hash;if(l===nq.Kj.NoScroll)null!==u&&(u.current=!1),d=e.focusAndScrollRef.scrollRef,f=!1;else if(g){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==u&&(u.current=!1),d={current:!0},f=!0}else{if(d=u,null!==u){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}f=!1}return{canonicalUrl:s,renderedSearch:i,pushRef:{pendingPush:"push"===o,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:d,forceScroll:f,onlyHashChange:g,hashFragment:l!==nq.Kj.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:p,previousNextUrl:r,debugInfo:c}}(t,r,c,E.route,E.node,a.renderedSearch,n,f,d,S.scrollRef,h)):sB(t,r,f)}function sU(e,t,r,n,a,i,s,o,l,u,c,d){let f=d.tree,h=d.canonicalUrl+r.hash,p={renderedSearch:d.renderedSearch,routeTree:f,metadataVaryPath:d.metadata.varyPath,data:null,head:null,dynamicStaleAt:iS(e,-1)};return sL(e,t,r,h,p,n,a,s,o,l,i,u,c,null,d)}let sF=["",{},null,"refetch"];async function sH(e,t,r,n,a,i,s,o,l,u,c){let d;switch(l){case sb.Default:case sb.HistoryTraversal:case sb.Gesture:d=o;break;case sb.Hydration:case sb.RefreshAll:case sb.HMRRefresh:d=sF;break;default:d=o}let f=sf(r,{flightRouterState:d,nextUrl:i}),h=await f;if("string"==typeof h)return sB(t,new URL(h,location.origin),c);let{flightData:p,canonicalUrl:m,renderedSearch:g,couldBeIntercepted:y,supportsPerSegmentPrefetching:v,dynamicStaleTime:b,staticStageData:w,runtimePrefetchStream:S,responseHeaders:_,debugInfo:E}=h,R=sz(e,o,p,g,b),k=R.metadataVaryPath;if(null!==k){if(ix(e,r.pathname,i,null,R.routeTree,k,y,nX(m),v,!1),null!==w){let{response:t,isResponsePartial:r}=w;si(e,t.s).then(n=>{let a=_.get(ef.eQ)??t.b;ss(e,t.f,a,t.h,n,o,g,r)}).catch(()=>{})}null!==S&&so(e,S,o,g).then(t=>{null!==t&&i5(e,ak.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return sL(e,t,r,nX(m),R,n,a,s,o,l,i,u,c,E,null)}function sB(e,t,r){return sN(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?nX(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function sz(e,t,r,n,a){let i=t,s=null,o=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:l}of r){let r=function e(t,r,n,a,i,s,o){let l;if(o===i.length)return{tree:n,data:a};let u=i[o],c=t[1],d=null!==r?r[1]:null,f={},h={};for(let t in c){let r=c[t],l=null!==d?d[t]??null:null;if(t===u){let u=e(r,l,n,a,i,s,o+2);f[t]=u.tree,h[t]=u.data}else f[t]=r,h[t]=l}if(l=[t[0],f],2 in t){let e=t[2];null!=e&&(l[2]=[e[0],s])}return 3 in t&&(l[3]=t[3]),4 in t&&(l[4]=t[4]),{tree:l,data:[null,h,null,!0,null]}}(i,s,t,a,e,n,0);i=r.tree,s=r.data,o=l}let l={metadataVaryPath:null};return{routeTree:i0(i,n,l),metadataVaryPath:l.metadataVaryPath,data:s,renderedSearch:n,head:o,dynamicStaleAt:iS(e,a)}}async function sq(e,t,r,n,i,s,o,l,u,c){let d=ip,f=null!==d?d.fetchStrategy:ak.PPR,{transitionToCapturedSPA:h,updateCapturedSPAToTree:p}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");h(s,null);let m=aE(t.href,o);await new Promise(e=>{aV(m,s,f,aR.Default,null,e)});let g=await sM(e,t,r,n,i,s,o,l,u,c);return p(s,g.tree),g}let sX=1e3*Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME),sV=iC(Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME)),sW=process.env.__NEXT_ROUTER_BASEPATH||"";function sG(e,t){return(e=>{if(!e.startsWith("/")||process.env.__NEXT_MANUAL_TRAILING_SLASH)return e;let{pathname:t,query:r,hash:n}=eg(e);if(process.env.__NEXT_TRAILING_SLASH)if(/\.[^/]+\/?$/.test(t));else if(t.endsWith("/"))return`${t}${r}${n}`;else return`${t}/${r}${n}`;return`${em(t)}${r}${n}`})(process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!t?e:ey(e,sW))}let sJ=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,sK=/Googlebot(?!-)|Googlebot$/i;function sY(e){return e.origin!==window.location.origin}sJ.source;var sQ=a("./dist/esm/shared/lib/is-thenable.js");function sZ(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&s0({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:nq.z8},t))}async function s0({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,i=e.action(n,a);function s(n){if(t.discarded){t.payload.type===nq.s8&&t.payload.didRevalidate&&(e.needsRefresh=!0),sZ(e,r);return}e.state=n,sZ(e,r),t.resolve(n)}(0,sQ.Q)(i)?i.then(s,n=>{sZ(e,r),t.reject(n)}):s(i)}function s1(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==nq.IU){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,O.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,s0({actionQueue:e,action:a,setState:r})):t.type===nq.Zb||t.type===nq.IU?(e.pending.discarded=!0,a.next=e.pending.next,s0({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(r,e,t),action:async(e,t)=>e,pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};return r}function s2(e,t,r,n,a){if(a)for(let e of a)(0,O.addTransitionType)(e);let i=new URL(sG(e),location.href);process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=i),(0,O.startTransition)(()=>{ip?.setOptimisticLinkStatus(ig),n?.setOptimisticLinkStatus(im),ip=n});(0,nZ.Dd)({type:nq.Zb,url:i,isExternalUrl:sY(i),locationSearch:location.search,scrollBehavior:r,navigateType:t})}let s3={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{var r,n,a,i;let s,o;if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let l=function(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}();switch(t?.kind??nq.ob.AUTO){case nq.ob.AUTO:s=ak.PPR;break;case nq.ob.FULL:s=ak.Full;break;default:s=ak.PPR}r=l.state.nextUrl,n=l.state.tree,a=s,i=t?.onInvalidate??null,null===(o=function(e){var t,r;let n;if(r=t=window.navigator.userAgent,sK.test(r)||sJ.test(t))return null;try{n=new URL(sG(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return sY(n)?null:n}(e))||aV(aE(o.href,r),n,a,aR.Default,i)},replace:(e,t)=>{if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,O.startTransition)(()=>{s2(e,"replace",t?.scroll===!1?nq.Kj.NoScroll:nq.Kj.Default,null,t?.transitionTypes)})},push:(e,t)=>{if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,O.startTransition)(()=>{s2(e,"push",t?.scroll===!1?nq.Kj.NoScroll:nq.Kj.Default,null,t?.transitionTypes)})},refresh:()=>{(0,O.startTransition)(()=>{(0,nZ.Dd)({type:nq.z8})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};process.env.__NEXT_GESTURE_TRANSITION&&(s3.experimental_gesturePush=function(e,t){if(process.env.__NEXT_GESTURE_TRANSITION){if(sN(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});!0;return}}),O.Component;let s4=a("../../app-render/work-async-storage.external").workAsyncStorage;function s6({error:e}){if(s4){let t=s4.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}class s8 extends O.Component{static{this.contextType=nU}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,O.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,tM.p)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return(process.env.__NEXT_APP_NAV_FAIL_HANDLING&&r,e.pathname!==t.previousPathname&&t.error)?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&1?(s6({error:this.state.error}),(0,T.jsxs)(T.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,T.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function s9({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let i=!function(){{let{workUnitAsyncStorage:e}=a("../../app-render/work-unit-async-storage.external"),t=e.getStore();if(!t)return!1;switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let r=t.fallbackRouteParams;return!!r&&r.size>0}return!1}}()?(0,O.useContext)(nJ):null;return e?(0,T.jsx)(s8,{pathname:i,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,T.jsx)(T.Fragment,{children:n})}function s5({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return(0,T.jsx)(s9,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}let s7={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},oe={marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},ot={marginBottom:"24px"},or={fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},on={fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},oa={margin:0},oi={display:"flex",gap:"8px",alignItems:"center"},os={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},oo={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},ol={position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"},ou=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function oc(){return(0,T.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:ot,children:(0,T.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}let od=function({error:e}){let t=e?.digest,r=!!t;return s6({error:e}),(0,T.jsxs)("html",{id:"__next_error__",children:[(0,T.jsx)("head",{children:(0,T.jsx)("style",{dangerouslySetInnerHTML:{__html:ou}})}),(0,T.jsxs)("body",{children:[(0,T.jsx)("div",{style:s7,children:(0,T.jsxs)("div",{style:oe,children:[(0,T.jsx)(oc,{}),(0,T.jsx)("h1",{style:or,children:"This page couldn’t load"}),(0,T.jsx)("p",{style:on,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,T.jsxs)("div",{style:oi,children:[(0,T.jsx)("form",{style:oa,children:(0,T.jsx)("button",{type:"submit",style:os,children:"Reload"})}),!r&&(0,T.jsx)("button",{type:"button",style:oo,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,T.jsxs)("p",{style:ol,children:["ERROR ",t]})]})]})};var of=a("./dist/esm/lib/framework/boundary-constants.js");let oh={[of.NJ]:function({children:e}){return e},[of.A$]:function({children:e}){return e},[of.DQ]:function({children:e}){return e},[of.ri]:function({children:e}){return e}};oh[of.NJ.slice(0)],oh[of.A$.slice(0)],oh[of.DQ.slice(0)];let op=oh[of.ri.slice(0)],om={};function og({appRouterState:e}){return(0,O.useInsertionEffect)(()=>{process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=void 0);let{tree:t,pushRef:r,canonicalUrl:n,renderedSearch:a}=e,i={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:a}};r.pendingPush&&nX(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(i,"",n)):window.history.replaceState(i,"",n),n0=t},[e]),(0,O.useEffect)(()=>{ib(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function oy(e){null==e&&(e={});let t=window.history.state,r=t?.__NA;r&&(e.__NA=r);let n=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function ov({headCacheNode:e}){let t=null!==e?e.head:null,r=null!==e?e.prefetchHead:null,n=null!==r?r:t;return(0,O.useDeferredValue)(t,n)}function ob({actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n}){let a,i=(0,nZ.n5)(e),{canonicalUrl:s}=i,{searchParams:o,pathname:l}=(0,O.useMemo)(()=>{var e;let t=new URL(s,"http://n");return{searchParams:t.searchParams,pathname:eb(t.pathname,ar)?(e=t.pathname,process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!eb(e,ar)||0===an.length||(e=e.slice(an.length)).startsWith("/")||(e=`/${e}`),e):t.pathname}},[s]);(0,O.useEffect)(()=>{let e,t=(e=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(t1.OG)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===t1.WO)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[aa(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[aa(r),...n]}}(i.tree))?`/${e.join("/")}`:void 0;void 0!==t?window.next.__internal_src_page=t:delete window.next.__internal_src_page},[i.tree]),(0,O.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(om.pendingMpaPath=void 0,(0,nZ.Dd)({type:nq.IU,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,O.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,tE.n)(t)){e.preventDefault();let r=tR(t);"push"===tk(t)?s3.push(r,{}):s3.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:u}=i;if(u.mpaNavigation){if(om.pendingMpaPath!==s){let e=window.location;u.pendingPush?e.assign(s):e.replace(s),om.pendingMpaPath=s}throw at}(0,O.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{let t=window.location.href,r=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,O.startTransition)(()=>{(0,nZ.Dd)({type:nq.IU,url:new URL(e??t,t),historyState:r})})};window.history.pushState=function(t,n,a){return t?.__NA||t?._N||(t=oy(t),a&&r(a)),e(t,n,a)},window.history.replaceState=function(e,n,a){return e?.__NA||e?._N||(e=oy(e),a&&r(a)),t(e,n,a)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,O.startTransition)(()=>{var t,r;t=window.location.href,r=e.state.__PRIVATE_NEXTJS_INTERNALS_TREE,(0,nZ.Dd)({type:nq.IU,url:new URL(t),historyState:r})})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:c,tree:d,nextUrl:f,focusAndScrollRef:h,previousNextUrl:p}=i,m=(0,O.useMemo)(()=>(function e(t,r,n,a){if(0===Object.keys(r).length)return[t,n,a];let i=Object.keys(r).filter(e=>"children"!==e);"children"in r&&i.unshift("children");let s=t.slots;if(null!==s)for(let t of i){let[a,i]=r[t];if(a===t1.WO)continue;let o=s[t];if(!o)continue;let l=e(o,i,n+"/"+ae(a),n+"/"+ae(a,!0));if(l)return l}return null})(c,d[1],"",""),[c,d]),g=(0,O.useMemo)(()=>(function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),i=a?t[1]:t;!i||i.startsWith(t1.OG)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r})(d),[d]),y=(0,O.useMemo)(()=>({parentTree:d,parentCacheNode:c,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:s,isActive:!0}),[d,c,s]),v=(0,O.useMemo)(()=>({tree:d,focusAndScrollRef:h,nextUrl:f,previousNextUrl:p}),[d,h,f,p]);if(null!==m){let[e,t,r]=m;a=(0,T.jsx)(ov,{headCacheNode:e},r)}else a=null;let b=(0,T.jsxs)(n7,{children:[a,(0,T.jsx)(op,{children:c.rsc}),(0,T.jsx)(n2,{tree:d})]});return b=(0,T.jsx)(s5,{errorComponent:t[0],errorStyles:t[1],children:b}),(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(og,{appRouterState:i}),null,(0,T.jsx)(nY.Provider,{value:null,children:(0,T.jsx)(nK.Provider,{value:g,children:(0,T.jsx)(nJ.Provider,{value:l,children:(0,T.jsx)(nG.Provider,{value:o,children:(0,T.jsx)(nH.Provider,{value:v,children:(0,T.jsx)(nU.Provider,{value:s3,children:(0,T.jsx)(nF.Provider,{value:y,children:b})})})})})})})]})}function ow({actionQueue:e,globalErrorState:t,webSocket:r,staticIndicatorState:n}){process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(0,O.useEffect)(()=>{let e=e=>{"reason"in e?e.reason:e.error};return window.addEventListener("unhandledrejection",e),window.addEventListener("error",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let a=(0,T.jsx)(ob,{actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n});return(0,T.jsx)(s5,{errorComponent:od,children:a})}function oS({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:r,location:n}){let{c:a,f:i,q:s,i:o,S:l,s:u,l:c,h:d,p:f,d:h}=t,p=a.join("/"),{tree:m,seedData:g,head:y}=ac(i[0]),v=n?nX(n):p,b={metadataVaryPath:null},w=i0(m,s,b),S=b.metadataVaryPath,_=sS(e,w,null,1,g,y,iS(e,h??-1),!1,{separateRefreshUrls:null,scrollRef:null});if(null!==n&&null!==S){if(ix(Date.now(),n.pathname,null,null,w,S,o,v,l,!1),null!==g&&void 0!==u)if(void 0!==c&&null!=r)sm(r,c,void 0).then(async e=>{let t=Date.now(),r=await si(t,e.s);ss(t,e.f,void 0,e.h,r,m,s,!0)}).catch(()=>{});else{let e=Date.now();si(e,u).then(t=>{ss(e,i,void 0,d,t,m,s,!1)}).catch(()=>{}),r?.cancel()}else r?.cancel();null!=f&&so(Date.now(),f,m,s).then(e=>{null!==e&&i5(Date.now(),ak.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:_.route,cache:_.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:v,renderedSearch:s,nextUrl:(ao(m)||n?.pathname)??null,previousNextUrl:null,debugInfo:null}}var o_=((v={}).ProspectiveRender="the prospective render",v.SegmentCollection="segment collection",v.InstantValidation="instant validation",v);function oE(e,t,r){let n;if(!tq(e)){if(tB(e))return void console.error(e);if("object"==typeof e&&null!==e&&"string"==typeof e.message){if(n=e.message,"string"==typeof e.stack){let a=e.stack,i=a.indexOf("\n");if(i>-1){let e=Object.defineProperty(Error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${n}`),"__NEXT_ERROR_CODE",{value:"E949",enumerable:!1,configurable:!0});e.stack="Error: "+e.message+a.slice(i),console.error(e);return}}}else"string"==typeof e&&(n=e);if(n)return void console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${n}`);console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`),console.error(e)}}let oR=require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js"),ok=!0;function ox(){console.warn("Next.js cannot guarantee that Cache Components will run as expected due to the current runtime's implementation of `setTimeout()`.\nPlease report a github issue here: https://github.com/vercel/next.js/issues/new/")}function oP(){}function oC(e,...t){return new Promise((r,n)=>{let a,i=function(e=0){{let n=!0,a=null,i=!1,s=!1;function t(e){return i=!0,ok&&(0,oR.unpatchedSetImmediate)(()=>{s=!0}),e()}function r(e){return ok&&s&&(ok=!1,ox()),e()}return function(s){if(i)throw Object.defineProperty(new eM.z("Cannot schedule more timers into a group that already executed"),"__NEXT_ERROR_CODE",{value:"E935",enumerable:!1,configurable:!0});let o=setTimeout(n?t:r,e,s);if(n=!1,!ok)return o;try{"_idleStart"in o&&"number"==typeof o._idleStart?null===a?a=o._idleStart:o._idleStart=a:(ok=!1,ox())}catch(e){console.error(Object.defineProperty(new eM.z("An unexpected error occurred while adjusting `_idleStart` on an atomic timer",{cause:e}),"__NEXT_ERROR_CODE",{value:"E933",enumerable:!1,configurable:!0})),ok=!1,ox()}return o}}}(),s=[];s.push(i(()=>{try{(0,oR.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),a=e(),(0,sQ.Q)(a)&&a.then(oP,oP)}catch(e){for(let e=1;e{try{(0,oR.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),r()}catch(e){for(;++a{try{(0,oR.expectNoPendingImmediates)(),r(a)}catch(e){n(e)}}))})}let oT=require("next/dist/server/app-render/console-async-storage.external.js");class oA{constructor(){this.count=0,this.earlyListeners=[],this.listeners=[],this.tickPending=!1,this.pendingTimeoutCleanup=null,this.subscribedSignals=null,this.invokeListenersIfNoPendingReads=()=>{if(this.pendingTimeoutCleanup=null,0===this.count){for(let e=0;eprocess.nextTick(()=>{if(this.tickPending=!1,0===this.count){for(let e=0;e{t=clearTimeout.bind(null,setTimeout(e,0))}),t=clearImmediate.bind(null,r),()=>t())}inputReady(){return new Promise(e=>{this.earlyListeners.push(e),0===this.count&&this.noMorePendingCaches()})}cacheReady(){return new Promise(e=>{this.listeners.push(e),0===this.count&&this.noMorePendingCaches()})}beginRead(){if(this.count++,this.pendingTimeoutCleanup&&(this.pendingTimeoutCleanup(),this.pendingTimeoutCleanup=null),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.beginRead()}endRead(){if(0===this.count)throw Object.defineProperty(new eM.z("CacheSignal got more endRead() calls than beginRead() calls"),"__NEXT_ERROR_CODE",{value:"E678",enumerable:!1,configurable:!0});if(this.count--,0===this.count&&this.noMorePendingCaches(),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.endRead()}hasPendingReads(){return this.count>0}trackRead(e){this.beginRead();let t=this.endRead.bind(this);return e.then(t,t),e}subscribeToReads(e){if(e===this)throw Object.defineProperty(new eM.z("A CacheSignal cannot subscribe to itself"),"__NEXT_ERROR_CODE",{value:"E679",enumerable:!1,configurable:!0});null===this.subscribedSignals&&(this.subscribedSignals=new Set),this.subscribedSignals.add(e);for(let t=0;tt.includes(e))}class oj{update(e){this._done||(this.currentValue=e,this._resolve?(this._resolve({value:e,done:!1}),this._resolve=null):this._buffer.push(e))}close(){!this._done&&(this._done=!0,this._resolve&&(this._resolve({value:void 0,done:!0}),this._resolve=null))}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(e=>{this._resolve=e})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this.currentValue=0}}function o$(e){return t=>{var r;return t===ef.AR&&"number"==typeof(null==(r=e.staleTimes)?void 0:r.static)?e.staleTimes.static:t}}function oI(e,t,r){let n=e.stale;t.update(r(n)),Object.defineProperty(e,"stale",{get:()=>n,set:e=>{n=e,t.update(r(e))},configurable:!0,enumerable:!0})}async function oD(e){e.close(),await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function oN(e){let t=!1;return async function(){return t?"":(t=!0,``)}}var oM=a("./dist/compiled/path-to-regexp/index.js");let oL=/[|\\{}()[\]^$+*?.-]/,oU=/[|\\{}()[\]^$+*?.-]/g;function oF(e){return oL.test(e)?e.replace(oU,"\\$&"):e}function oH(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:n=!1}={}){let{parameterizedRoute:a,groups:i}=function(e,t,r){let n={},a=1,i=[];for(let s of em(e).slice(1).split("/")){let e=nS.VB.find(e=>s.startsWith(e)),o=s.match(nC);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=nT(o[2]);n[t]={pos:a++,repeat:s,optional:r},i.push(`/${oF(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=nT(o[2]);n[e]={pos:a++,repeat:t,optional:s},r&&o[1]&&i.push(`/${oF(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${oF(s)}`);t&&o&&o[3]&&i.push(oF(o[3]))}return{parameterizedRoute:i.join(""),groups:n}}(e,t,r),s=a;return n||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}function oB({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:n,keyPrefix:a,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:u}=nT(r),c=o.replace(/\W/g,"");a&&(c=`${a}${c}`);let d=!1;(0===c.length||c.length>30)&&(d=!0),isNaN(parseInt(c.slice(0,1)))||(d=!0),d&&(c=t());let f=c in n;a?n[c]=`${a}${o}`:n[c]=o;let h=e?oF(e):"";return s=f&&i?`\\k<${c}>`:u?`(?<${c}>.+?)`:`(?<${c}>[^/]+?)`,{key:o,pattern:l?`(?:/${h}${s})?`:`/${h}${s}`,cleanedKey:c,optional:l,repeat:u}}var oz=a("./dist/esm/shared/lib/utils.js");let oq="_NEXTSEP_";function oX(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function oV(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${oq}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${oq}`)}function oW(e){return e.replace(RegExp(`\\)${oq}`,"g"),")")}function oG(e,t,r){if("string"!=typeof e)return(0,oM.pathToRegexp)(e,t,r);let n=oX(e),a=n?oV(e):e;try{return(0,oM.pathToRegexp)(a,t,r)}catch(a){if(!n)try{let n=oV(e);return(0,oM.pathToRegexp)(n,t,r)}catch(e){}throw a}}function oJ(e,t){let r=oX(e),n=r?oV(e):e;try{let e=(0,oM.compile)(n,t);if(r)return t=>oW(e(t));return e}catch(n){if(!r)try{let r=oV(e),n=(0,oM.compile)(r,t);return e=>oW(n(e))}catch(e){}throw n}}function oK({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let a=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new oz.Xc("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>a(e)):i[e]=a(t))}return i},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${oq}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${oq}`),""):e):n[e]=r;return n}}var oY=a("./dist/esm/shared/lib/router/utils/querystring.js");function oQ(e){return e.replace(/__ESC_COLON_/gi,":")}function oZ(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),oJ(`/${e}`,{validate:!1})(t).slice(1)}function o0(e){try{return decodeURIComponent(e)}catch{return e}}function o1(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let n=t.searchParams.getAll(e);r[e]=n.length>1?n:n[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}let o2=/https?|ftp|gopher|file/;function o3(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(oY.Bw(s)));let l=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o2.test(n))&&!1!==o?(o="//"+(o||""),a&&"/"!==a[0]&&(a="/"+a)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),a=a.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${o}${a}${l}${i}`}function o4(e,t){for(let r in delete e.nextInternalLocale,e){let n=r!==ef.AA&&r.startsWith(ef.AA),a=r!==ef.h&&r.startsWith(ef.h);(n||a||t.includes(r))&&delete e[r]}}function o6(e,t){return"string"==typeof e[ef.vS]&&e[ef.c1]===t?e[ef.vS].split(","):[]}let o8=require("next/dist/server/app-render/module-loading/track-module-loading.external.js"),o9={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1},o5=O.createContext(o9);async function o7(e){let{mod:t}=await rV(e),r=t?t.unstable_instant:void 0;if(r&&"object"==typeof r&&"runtime"===r.prefetch)return!0;let{parallelRoutes:n}=rG(e);for(let e in n){let t=n[e];if(await o7(t))return!0}return!1}async function le(e){let{mod:t}=await rV(e),r=t?t.unstable_instant:void 0;if(void 0!==r){if("object"==typeof r)return!1;else if(!1===r)return!0}let{parallelRoutes:n}=rG(e);for(let e in n){let t=n[e];if(await le(t))return!0}return!1}async function lt(e,t){let r=await ln(e),n=!1;for(let{config:e}of r)if("object"==typeof e){if(!0===e.unstable_disableValidation||"dev"===t&&!0===e.unstable_disableDevValidation||"build"===t&&!0===e.unstable_disableBuildValidation)return!1;n=!0}return n}li(async e=>lt(e,"dev"));let lr=li(async e=>lt(e,"build")),ln=li(async e=>{let t=[];async function r(e,n){let{mod:a}=await rV(e),i=a?a.unstable_instant:void 0;void 0!==i&&t.push({path:n,config:i});let{parallelRoutes:s}=rG(e);for(let e in s){let t=s[e];await r(t,[...n,e])}}return await r(e,[]),t}),la=async e=>{let{mod:t}=await rV(e),r=t?t.unstable_instant:void 0,n=null;void 0!==r&&"object"==typeof r&&r.samples&&(n=r.samples);let{parallelRoutes:a}=rG(e);for(let e in a){if("children"!==e)continue;let t=a[e],r=await la(t);null!==r&&(n=r)}return n};function li(e){let t=new WeakMap;return r=>{let n=A.workAsyncStorage.getStore();if(!n)return e(r);let a=t.get(n);if(a&&a.has(r))return a.get(r);let i=e(r);return a||(a=new WeakMap,t.set(n,a)),a.set(r,i),i}}function ls(){}function lo(e,t){return e.sharedContext.deploymentId||(t.b=e.sharedContext.buildId),t}async function ll(e){let{page:t,parallelRoutes:r}=rG(e),n=null;if(void 0!==t){let e=await t[0]();if(e&&"number"==typeof e.unstable_dynamicStaleTime){let t=e.unstable_dynamicStaleTime;n=null!==n?Math.min(n,t):t}}let a=[];for(let e in r)a.push(ll(r[e]));for(let e of(await Promise.all(a)))null!==e&&(n=null!==n?Math.min(n,e):e);return n}function lu(e,t,r){return function(n){let[a,,,i]=n,s=(0,tG.Hp)(a);return s?nP(e,s.paramName,tW[s.paramType],t,r?i:null):null}}function lc({createElement:e,pagePath:t,statusCode:r,isPossibleServerAction:n}){return!n&&("/404"===t||"number"==typeof r&&r>400)?e("meta",{name:"robots",content:"noindex"}):null}async function ld(e,t){let r="",{componentMod:{routeModule:{userland:{loaderTree:n}},createElement:a,createMetadataComponents:i,Fragment:s},query:o,requestId:l,flightRouterState:u,workStore:c,url:d}=e,f=!!e.renderOpts.serveStreamingMetadata;if(!(null==t?void 0:t.skipPageRendering)){var h;let t=await o7(n),{Viewport:c,Metadata:p,MetadataOutlet:m}=i({tree:n,parsedQuery:o,pathname:d.pathname,metadataContext:td(e.renderOpts),interpolatedParams:e.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:t}),g=a(s,{key:"h"},a(lc,{createElement:a,pagePath:e.pagePath,statusCode:e.res.statusCode,isPossibleServerAction:e.isPossibleServerAction}),a(c,{key:l+"v"}),a(p,{key:l+"m"}));r=(await nb({ctx:e,loaderTreeToFilter:n,parentParams:{},flightRouterState:u,rscHead:g,injectedCSS:new Set,injectedJS:new Set,injectedFontPreloadTags:new Set,rootLayoutIncluded:!1,preloadCallbacks:[],MetadataOutlet:m,hintTree:(null==(h=e.renderOpts.prefetchHints)?void 0:h[e.pagePath])??null})).map(e=>e.slice(1))}let p=e.res.getHeader("vary"),m="string"==typeof p&&p.includes(z.kO);if(null==t?void 0:t.actionResult)return lo(e,{a:t.actionResult,f:r,q:lS(o),i:!!m});let g=lo(e,{f:r,q:lS(o),i:!!m,S:c.isStaticGeneration,h:no()});if((null==t?void 0:t.staleTimeIterable)!==void 0&&(g.s=t.staleTimeIterable),(null==t?void 0:t.staticStageByteLengthPromise)!==void 0&&(g.l=t.staticStageByteLengthPromise),(null==t?void 0:t.runtimePrefetchStream)!==void 0&&(g.p=t.runtimePrefetchStream),!c.isStaticGeneration){let t=await ll(e.componentMod.routeModule.userland.loaderTree);null!==t&&(g.d=t)}return g}function lf(e,t){var r;return{routerKind:"App Router",routePath:e.pagePath,routeType:e.isPossibleServerAction?"action":"render",renderSource:t,revalidateReason:(r=e.workStore).isOnDemandRevalidate?"on-demand":r.isStaticGeneration?"stale":void 0}}async function lh(e,t,r,n){let{htmlRequestId:a,renderOpts:i,requestId:s,workStore:l}=t,{onInstrumentationRequestError:u,setReactDebugChannel:c,isBuildTimePrerendering:d=!1}=i,f=tX(!1,d,l.reactServerErrorsByDigest,function(r,n){return null==u?void 0:u(r,e,lf(t,"react-server-components-payload"),n)}),h=c&&ls();h&&c(h.clientSide,a,s);let{clientModules:p}=eJ(),m=await eq.workUnitAsyncStorage.run(r,ld,t,n),g=eq.workUnitAsyncStorage.run(r,ta,t.componentMod,m,p,{onError:f,temporaryReferences:null==n?void 0:n.temporaryReferences,filterStackFrame:o,debugChannel:null==h?void 0:h.serverSide});return new tC(g,{fetchMetrics:l.fetchMetrics},null==n?void 0:n.waitUntil)}async function lp(e,t,r){let n,a,{componentMod:i,workStore:s,renderOpts:l}=t,{renderToReadableStream:u,routeModule:c}=i,{loaderTree:d}=c.userland,{onInstrumentationRequestError:f,experimental:h}=l,p=tX(!1,!1,s.reactServerErrorsByDigest,function(r,n){return null==f?void 0:f(r,e,lf(t,"react-server-components-payload"),n)}),m=o$(h),g=new oj,y=new nt.V(null,null,!1);r.stale=ef.AR,r.stagedRendering=y,r.asyncApiPromises=l$(y,r.cookies,r.mutableCookies,r.headers),oI(r,g,m);let v=new Promise(e=>{n=e});if(await o7(d)){let e=nj();r.prerenderResumeDataCache=e;let n=new oA;(0,o8.trackPendingModules)(n),r.cacheSignal=n;let i=new TransformStream;a=i.readable,n.cacheReady().then(()=>lm(i.writable,t,e,r,p))}let b=await eq.workUnitAsyncStorage.run(r,ld,t,{staleTimeIterable:g,staticStageByteLengthPromise:v,runtimePrefetchStream:a}),{clientModules:w}=eJ();return new tC(await oC(()=>{y.advanceStage(nt.D.Static);let[e,t]=eq.workUnitAsyncStorage.run(r,u,b,w,{onError:p,filterStackFrame:o}).tee();return lj(t,y).then(n),e},()=>{oD(g)},()=>{y.advanceStage(nt.D.Dynamic)}),{fetchMetrics:s.fetchMetrics})}async function lm(e,t,r,n,a){try{let{componentMod:i,getDynamicParamFromSegment:s}=t,{loaderTree:o}=i.routeModule.userland,l=ng(o,s),u=new oj,{result:c}=await lb(t,ld.bind(null,t,{staleTimeIterable:u}),r,null,l,n.headers,n.cookies,n.draftMode,a,u);await c.prelude.pipeTo(e)}catch{try{await e.close()}catch{}}}async function lg(e,t,r){let{workStore:n,renderOpts:a}=t,{isBuildTimePrerendering:i=!1,onInstrumentationRequestError:s}=a,o=tX(!1,i,n.reactServerErrorsByDigest,function(r,n){return null==s?void 0:s(r,e,lf(t,"react-server-components-payload"),n)}),l={},u=new oj,{componentMod:{routeModule:{userland:{loaderTree:c}}},getDynamicParamFromSegment:d}=t,f=ng(c,d),h=nj();await ly(t,ld.bind(null,t),h,null,f,r.headers,r.cookies,r.draftMode);let p=await lb(t,ld.bind(null,t,{staleTimeIterable:u}),h,null,f,r.headers,r.cookies,r.draftMode,o,u);return lT(p,l,n),l.fetchMetrics=t.workStore.fetchMetrics,new tC(p.result.prelude,l)}async function ly(e,t,r,n,a,i,s,l){let{implicitTags:u,renderOpts:c,workStore:d}=e,{ComponentMod:f}=c,h=new AbortController,p=new AbortController,m=new oA,g={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:u,renderSignal:p.signal,controller:h,cacheSignal:m,dynamicTracking:null,revalidate:1,expire:0,stale:ef.AR,tags:[...u.tags],renderResumeDataCache:n,prerenderResumeDataCache:r,hmrRefreshHash:void 0,varyParamsAccumulator:null,stagedRendering:null,headers:i,cookies:s,draftMode:l},{clientModules:y}=eJ(),v=await eq.workUnitAsyncStorage.run(g,t),b={filterStackFrame:o,onError:e=>{let t=tq(e);return t||(h.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,d.route,o_.ProspectiveRender)))},signal:p.signal},w=eq.workUnitAsyncStorage.run(g,tl(f),v,y,b);if((0,o8.trackPendingModules)(m),await m.cacheReady(),p.abort(),h.abort(),d.invalidDynamicUsageError)throw d.invalidDynamicUsageError;try{return await e4(w)}catch(e){return p.signal.aborted||h.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,d.route,o_.ProspectiveRender),null}}function lv(e,t){let r=new Uint8Array([t?126:35]);return e.pipeThrough(new TransformStream({start(e){e.enqueue(r)}}))}async function lb(e,t,r,n,a,i,s,l,u,c){let{implicitTags:d,renderOpts:f}=e,{ComponentMod:h,experimental:p,isDebugDynamicAccesses:m}=f,g=o$(p),y=!1,v=new AbortController,b=(0,tL.uO)(m),w=new nt.V(v.signal,null,!0),S=ns(),_={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:d,renderSignal:v.signal,controller:v,cacheSignal:null,dynamicTracking:b,revalidate:1,expire:0,stale:ef.AR,tags:[...d.tags],prerenderResumeDataCache:r,renderResumeDataCache:n,hmrRefreshHash:void 0,varyParamsAccumulator:S,stagedRendering:w,headers:i,cookies:s,draftMode:l};oI(_,c,g);let{clientModules:E}=eJ(),R=await eq.workUnitAsyncStorage.run(_,t),k=!0,x=await oC(async()=>{w.advanceStage(nt.D.EarlyStatic);let e=await eq.workUnitAsyncStorage.run(_,tl(h),R,E,{filterStackFrame:o,onError:u,signal:v.signal});return k=!1,e},()=>{w.advanceStage(nt.D.Static)},()=>{w.advanceStage(nt.D.EarlyRuntime)},()=>{w.advanceStage(nt.D.Runtime)},()=>{Promise.all([oD(c),nl(S)]).then(()=>{if(v.signal.aborted){y=!0;return}k&&(y=!0),v.abort()})});return x.prelude=lv(x.prelude,y),{result:x,dynamicAccess:b,isPartial:y,collectedRevalidate:_.revalidate,collectedExpire:_.expire,collectedStale:c.currentValue,collectedTags:_.tags}}function lw(e){return(e.pathname+e.search).split("/")}function lS(e){let t=[];for(let r in e){let n=e[r];if(null!=n)if(Array.isArray(n))for(let e of n)t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(e))}`);else t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(n))}`)}return 0===t.length?"":"?"+t.join("&")}async function l_(e,t,r){var n;let a,{is404:i,staleTimeIterable:s,staticStageByteLengthPromise:o,runtimePrefetchStream:l}=r,u=new Set,c=new Set,d=new Set,{getDynamicParamFromSegment:f,query:h,appUsingSizeAdjustment:p,componentMod:{createMetadataComponents:m,createElement:g,Fragment:y},url:v,workStore:b}=t,w=(null==(n=t.renderOpts.prefetchHints)?void 0:n[t.pagePath])??null,S=await t3(e,w,f,h),_=!!t.renderOpts.serveStreamingMetadata,E=!!e[2]["global-not-found"],R=await o7(e),{Viewport:k,Metadata:x,MetadataOutlet:P}=m({tree:e,errorType:i&&!E?"not-found":void 0,parsedQuery:h,pathname:v.pathname,metadataContext:td(t.renderOpts),interpolatedParams:t.interpolatedParams,serveStreamingMetadata:_,isRuntimePrefetchable:R}),C=[],T=await nf({ctx:t,loaderTree:e,parentParams:{},parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:u,injectedJS:c,injectedFontPreloadTags:d,rootLayoutIncluded:!1,missingSlots:a,preloadCallbacks:C,authInterrupts:t.renderOpts.experimental.authInterrupts,MetadataOutlet:P}),A=t.res.getHeader("vary"),O="string"==typeof A&&A.includes(z.kO),j=g(y,{key:"h"},g(lc,{createElement:g,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),g(k,null),g(x,null),p?g("meta",{name:"next-size-adjust",content:""}):null),{GlobalError:$,styles:I}=await lB(e,t),D=b.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lo(t,{P:g(lE,{preloadCallbacks:C}),c:lw(v),q:lS(h),i:!!O,f:[[S,T,j,D]],m:a,G:[$,I],S:b.isStaticGeneration||t.renderOpts.cacheComponents,h:no(),s:s,l:o,p:l,d:b.isStaticGeneration?void 0:await ll(e)??void 0})}function lE({preloadCallbacks:e}){return e.forEach(e=>e()),null}async function lR(e,t,r,n){var a;let{getDynamicParamFromSegment:i,query:s,componentMod:{createMetadataComponents:o,createElement:l,Fragment:u},url:c,workStore:d}=t,f=!!t.renderOpts.serveStreamingMetadata,h=await o7(e),{Viewport:p,Metadata:m}=o({tree:e,parsedQuery:s,pathname:c.pathname,metadataContext:td(t.renderOpts),errorType:n,interpolatedParams:t.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:h}),g=l(u,{key:"h"},l(lc,{createElement:l,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),l(p,null),"",l(m,null)),y=(null==(a=t.renderOpts.prefetchHints)?void 0:a[t.pagePath])??null,v=await t3(e,y,i,s);r&&(tU(r)||Object.defineProperty(Error(r+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));let b=[l("html",{id:"__next_error__"},l("head",null),l("body",null,null)),{},null,!1,null],{GlobalError:w,styles:S}=await lB(e,t),_=d.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lo(t,{c:lw(c),q:lS(s),m:void 0,i:!1,f:[[v,b,g,_]],G:[w,S],S:d.isStaticGeneration||t.renderOpts.cacheComponents,h:no()})}function lk({reactServerStream:e,reactDebugStream:t,debugEndTime:r,preinitScripts:n,ServerInsertedHTMLProvider:i,nonce:s,images:o}){n();let l=O.use(e1(e,t,r,s)),u=s1(oS({navigatedAt:-1,initialRSCPayload:l,location:null}),null),{HeadManagerContext:c}=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");return(0,T.jsx)(c.Provider,{value:{appDir:!0,nonce:s},children:(0,T.jsx)(o5.Provider,{value:o??o9,children:(0,T.jsx)(i,{children:(0,T.jsx)(ow,{actionQueue:u,globalErrorState:l.G})})})})}function lx({reactServerStream:e,preinitScripts:t,ServerInsertedHTMLProvider:r,nonce:n,images:a}){t();let i=O.use(e1(e,void 0,void 0,n)),s=s1(oS({navigatedAt:-1,initialRSCPayload:i,location:null}),null);return(0,T.jsx)(o5.Provider,{value:a??o9,children:(0,T.jsx)(r,{children:(0,T.jsx)(ow,{actionQueue:s,globalErrorState:i.G})})})}async function lP(e,t,r,n,i,s,o,l,u,c,d,f,h){let p,m,g="/404"===n;g&&(t.statusCode=404);let y=Date.now(),{ComponentMod:v,nextFontManifest:b,serverActions:w,assetPrefix:S="",enableTainting:_,cacheComponents:E,setIsrStatus:R}=s,{cachedNavigations:k}=s.experimental;if(v.__next_app__){let e="performance"in globalThis?{require:(...e)=>{let t=performance.now();0===eO&&(eO=t);try{return e$+=1,v.__next_app__.require(...e)}finally{ej+=performance.now()-t}},loadChunk:(...e)=>{let t=performance.now(),r=v.__next_app__.loadChunk(...e);return r.finally(()=>{ej+=performance.now()-t}),r}}:v.__next_app__,t=()=>{if(!E)return!1;let e=eq.workUnitAsyncStorage.getStore();if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":case"cache":case"private-cache":return!0;case"prerender-ppr":case"prerender-legacy":case"request":case"unstable-cache":case"generate-static-params":return!1}};globalThis.__next_require__=(...r)=>{let n=e.require(...r);return t()&&(0,o8.trackPendingImport)(n),n},globalThis.__next_chunk_load__=(...r)=>{let n=e.loadChunk(...r);return t()&&(0,o8.trackPendingChunkLoad)(n),n}}t.onClose(()=>{o.shouldTrackFetchMetrics=!1}),e.originalRequest.on("end",()=>{if("performance"in globalThis){let e=eI({reset:!0});e&&(0,j.getTracer)().startSpan($.Fx.clientComponentLoading,{startTime:e.clientComponentLoadStart,attributes:{"next.clientComponentLoadCount":e.clientComponentLoadCount,"next.span_type":$.Fx.clientComponentLoading}}).end(e.clientComponentLoadStart+e.clientComponentLoadTimes)}});let x={statusCode:g?404:void 0},C=!!(null==b?void 0:b.appUsingSizeAdjust);v.patchFetch();let{routeModule:{userland:{loaderTree:T}},taintObjectReference:A}=v;_&&A("Do not pass process.env to Client Components since it will leak sensitive data",process.env),o.fetchMetrics=[],x.fetchMetrics=o.fetchMetrics;var O=i={...i};for(let e of tc)delete O[e];let{isStaticGeneration:I}=o,{flightRouterState:D,isPrefetchRequest:N,isRuntimePrefetchRequest:M,isRSCRequest:L,isHmrRefresh:U,nonce:F}=l;l.requestId?p=l.requestId:I?p=Buffer.from(await crypto.subtle.digest("SHA-1",Buffer.from(e.url))).toString("hex"):p=a("./dist/compiled/nanoid/index.cjs").nanoid(),m=l.htmlRequestId||p;let H=lu(f,h,s.experimental.optimisticRouting),B=t8(e).isPossibleServerAction,z=P(e,"resolvedPathname");if(!z)throw Object.defineProperty(new eM.z("resolvedPathname must be set in request metadata"),"__NEXT_ERROR_CODE",{value:"E981",enumerable:!1,configurable:!0});let q=await tP(o.page,z,h),X={componentMod:v,url:r,renderOpts:s,workStore:o,parsedRequestHeaders:l,getDynamicParamFromSegment:H,interpolatedParams:f,query:i,isPrefetch:N,isPossibleServerAction:B,requestTimestamp:y,appUsingSizeAdjustment:C,flightRouterState:D,requestId:p,htmlRequestId:m,pagePath:n,assetPrefix:S,isNotFoundPath:g,nonce:F,res:t,sharedContext:d,implicitTags:q};if((0,j.getTracer)().setRootSpanAttribute("next.route",n),I){let a=(0,j.getTracer)().wrap($.Wc.getBodyResult,{spanName:`prerender route (app) ${n}`,attributes:{"next.route":n}},lH),i=await a(e,t,X,x,T,h);if(i.dynamicAccess&&(0,tL.Lu)(i.dynamicAccess)&&s.isDebugDynamicAccesses)for(let e of(rh("The following dynamic usage was detected:"),(0,tL.JL)(i.dynamicAccess)))rh(e);if(o.invalidDynamicUsageError)throw(0,tL.gR)(o,o.invalidDynamicUsageError),new nr.f;if(i.digestErrorsMap.size){let e=i.digestErrorsMap.values().next().value;if(e)throw e}if(i.ssrErrors.length){let e=i.ssrErrors.find(e=>!eD(e)&&!(0,tD.C)(e)&&!(0,tM.p)(e));if(e)throw e}let l={metadata:x,contentType:ef.j9},u=(0,ry.C)(o);if(!1!==u){let e=u.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):l.waitUntil=e}lT(i,x,o),i.renderResumeDataCache&&(x.renderResumeDataCache=i.renderResumeDataCache);let c=new eL(await ti(i.stream),l);return o.cacheComponentsEnabled&&o.isBuildTimePrerendering&&s.runInstantValidation&&await lr(T)&&await lM(X,i.renderResumeDataCache??null),c}{let n=s.renderResumeDataCache??(null==u?void 0:u.renderResumeDataCache)??null,a=ng(T,X.getDynamicParamFromSegment),i=P(e,"fallbackParams")||null,l=ty.bind(null,e,t,r,a,q,s.onUpdateCookies,s.previewProps,U,c,n,i),d=l();if(L)if(M)return lg(e,X,d);else return E&&k?lp(e,X,d):lh(e,X,d);let f=!1,h=null;if(B){let r=await rx({req:e,res:t,ComponentMod:v,generateFlight:lh,workStore:o,requestStore:d,serverActions:w,ctx:X,metadata:x});if(r){if("not-found"===r.type){let r,n,a,s=(a=(n=!!(r=T[2])["global-not-found"])?{layout:r["global-not-found"],page:[()=>null,"next/dist/client/components/builtin/empty-stub"]}:{page:r["not-found"]},["",{children:[t1.OG,{},a,null]},n?r:{"global-error":r["global-error"]},null]);return t.statusCode=404,x.statusCode=404,new eL(await lA(d,e,t,X,s,h,u,x,void 0,i),{metadata:x,contentType:ef.j9})}else if("done"===r.type)if(r.result)return r.result.assignMetadata(x),r.result;else r.formState&&(h=r.formState)}f=!0}let p={metadata:x,contentType:ef.j9},m=await lA(d,e,t,X,T,h,u,x,f?void 0:l,i);o.invalidDynamicUsageError;let g=(0,ry.C)(o);if(!1!==g){let e=g.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):p.waitUntil=e}return new eL(m,p)}}let lC=(e,t,r,n,a,i,s,o)=>{var l,u,c;let d,f,h,p,m,g,y,v,b,w,S;if(!e.url)throw Object.defineProperty(Error("Invalid URL"),"__NEXT_ERROR_CODE",{value:"E182",enumerable:!1,configurable:!0});let _=(0,nL.r)(e.url,void 0,!1),E=(u=e.headers,c={isRoutePPREnabled:!0===i.experimental.isRoutePPREnabled,previewModeId:null==(l=i.previewProps)?void 0:l.previewModeId},p="1"===u[z._V],m="2"===u[z._V],g=void 0!==u[z.sX],v=(y=void 0!==u[z.hY])&&(!p||!c.isRoutePPREnabled)?function(e){if(void 0!==e){if(Array.isArray(e))throw Object.defineProperty(Error("Multiple router state headers were sent. This is not allowed."),"__NEXT_ERROR_CODE",{value:"E418",enumerable:!1,configurable:!0});if(e.length>4e4)throw Object.defineProperty(Error("The router state header was too large."),"__NEXT_ERROR_CODE",{value:"E142",enumerable:!1,configurable:!0});try{let t=JSON.parse(decodeURIComponent(e));return(0,tJ.assert)(t,tZ),t}catch{throw Object.defineProperty(Error("The router state header was sent but could not be parsed."),"__NEXT_ERROR_CODE",{value:"E10",enumerable:!1,configurable:!0})}}}(u[z.B]):void 0,b="/_tree"===u[z.qm],S="string"==typeof(w=u["content-security-policy"]||u["content-security-policy-report-only"])?function(e){var t;let r=e.split(";").map(e=>e.trim()),n=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!n)return;let a=null==(t=n.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(a){if(eB.test(a))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return a}}(w):void 0,{flightRouterState:v,isPrefetchRequest:p,isRuntimePrefetchRequest:m,isRouteTreePrefetchRequest:b,isHmrRefresh:g,isRSCRequest:y,nonce:S,previouslyRevalidatedTags:o6(u,c.previewModeId),requestId:f,htmlRequestId:h}),{isPrefetchRequest:R,previouslyRevalidatedTags:k,nonce:x}=E,P=null;if("string"==typeof i.postponed){if(a)throw Object.defineProperty(new eM.z("postponed state should not be provided when fallback params are provided"),"__NEXT_ERROR_CODE",{value:"E592",enumerable:!1,configurable:!0});d=nx(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a),P=function(e,t,r){try{var n,a;let i=null==(n=e.match(/^([0-9]*):/))?void 0:n[1];if(!i)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${e}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let s=parseInt(i),o=e.slice(i.length+1,i.length+s+1),l=n$(e.slice(i.length+s+1),r);try{if("null"===o)return{type:1,renderResumeDataCache:l};if(/^[0-9]/.test(o)){let e=null==(a=o.match(/^([0-9]*)/))?void 0:a[1];if(!e)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${JSON.stringify(o)}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let r=parseInt(e),n=JSON.parse(o.slice(e.length,e.length+r)),i=o.slice(e.length+r);for(let[e,[r,a]]of n){let{treeSegment:[,n]}=nP(t,e,a,null,null);i=i.replaceAll(r,n)}return{type:2,data:JSON.parse(i),renderResumeDataCache:l}}return{type:2,data:JSON.parse(o),renderResumeDataCache:l}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:l}}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:nj()}}}(i.postponed,d,i.experimental.maxPostponedStateSizeBytes)}else d=nx(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a);if((null==P?void 0:P.renderResumeDataCache)&&i.renderResumeDataCache)throw Object.defineProperty(new eM.z("postponed state and dev warmup immutable resume data cache should not be provided together"),"__NEXT_ERROR_CODE",{value:"E589",enumerable:!1,configurable:!0});let C=function({page:e,renderOpts:t,isPrefetchRequest:r,buildId:n,previouslyRevalidatedTags:a,nonce:i}){let s=!t.shouldWaitOnAllReady&&!t.supportsDynamicResponse&&!t.isDraftMode&&!t.isPossibleServerAction,o=s&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),l={isStaticGeneration:s,page:e,route:(0,eX.Yr)(e),incrementalCache:t.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:t.cacheLifeProfiles,isBuildTimePrerendering:t.isBuildTimePrerendering,fetchCache:t.fetchCache,isOnDemandRevalidate:t.isOnDemandRevalidate,isDraftMode:t.isDraftMode,isPrefetchRequest:r,buildId:n,reactLoadableManifest:(null==t?void 0:t.reactLoadableManifest)||{},assetPrefix:(null==t?void 0:t.assetPrefix)||"",nonce:i,afterContext:function(e){let{waitUntil:t,onClose:r,onAfterTaskError:n}=e;return new tv.AfterContext({waitUntil:t,onClose:r,onTaskError:n})}(t),cacheComponentsEnabled:t.cacheComponents,previouslyRevalidatedTags:a,refreshTagsByCacheKind:function(){let e=new Map,t=(0,tw.fs)();if(t)for(let[r,n]of t)"refreshTags"in n&&e.set(r,tb(async()=>n.refreshTags()));return e}(),runInCleanSnapshot:(0,tS.$p)(),shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return t.store=l,l}({page:i.routeModule.definition.page,renderOpts:i,isPrefetchRequest:R,buildId:o.buildId,previouslyRevalidatedTags:k,nonce:x});return A.workAsyncStorage.run(C,lP,e,t,_,r,n,i,C,E,P,s,o,d,a)};function lT(e,t,r){e.collectedTags&&(t.fetchTags=e.collectedTags.join(","));let n=String(e.collectedStale);t.headers??={},t.headers[z.UK]=n,!1===r.forceStatic||0===e.collectedRevalidate?t.cacheControl={revalidate:0,expire:void 0}:t.cacheControl={revalidate:!(e.collectedRevalidate>=ef.AR)&&e.collectedRevalidate,expire:e.collectedExpire>=ef.AR?void 0:e.collectedExpire},0===t.cacheControl.revalidate&&(t.staticBailoutInfo={description:r.dynamicUsageDescription,stack:r.dynamicUsageStack})}async function lA(e,t,r,n,a,i,s,l,u,c){let{assetPrefix:d,htmlRequestId:f,nonce:h,pagePath:p,renderOpts:m,requestId:g,workStore:y}=n,{basePath:v,buildManifest:b,ComponentMod:{createElement:w},crossOrigin:S,experimental:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,setReactDebugChannel:P,shouldWaitOnAllReady:C,subresourceIntegrityManifest:A,supportsDynamicResponse:O,cacheComponents:I}=m,{cachedNavigations:D}=m.experimental,{ServerInsertedHTMLProvider:N,renderServerInsertedHTML:M}=rN(),U=oN(h),F=oO((0,j.getTracer)().getTracePropagationData(),_.clientTraceMetadata),H=b.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${d}/_next/${e}${rJ(n,!1)}`,integrity:null==A?void 0:A[e],crossOrigin:S,noModule:!0,nonce:h})),[B,z]=rU(b,d,S,A,rJ(n,!0),h,k),q,X=(0,j.getTracer)().startSpan(`render route (app) ${p}`,{attributes:{"next.span_name":`render route (app) ${p}`,"next.span_type":$.Wc.getBodyResult,"next.route":p}}),V=e=>{X.isRecording()&&(e instanceof Error&&(X.recordException(e),X.setAttribute("error.type",e.name)),X.setStatus({code:j.SpanStatusCode.ERROR,message:e instanceof Error?e.message:void 0}),X.end())};return(0,j.getTracer)().withSpan(X,async()=>{var u,c;let w,{reactServerErrorsByDigest:k}=y,j=tX(!1,E,k,function(e,r){return null==R?void 0:R(e,t,lf(n,"react-server-components"),r)},X),$=[],J=tV(!1,E,k,$,function(e){return null==R?void 0:R(e,t,lf(n,"server-rendering"),!1)},X),K=null,Y=r.setHeader.bind(r),Q=r.appendHeader.bind(r),{clientModules:Z}=eJ();try{if(I&&D){let t,i,{renderToReadableStream:s}=n.componentMod,l=o$(_),u=new oj,c=new nt.V(null,null,!1);e.stale=ef.AR,e.stagedRendering=c,oI(e,u,l);let d=new Promise(e=>{t=e});if(await o7(a)){let t=nj();e.prerenderResumeDataCache=t;let r=new oA;(0,o8.trackPendingModules)(r),e.cacheSignal=r;let a=new TransformStream;i=a.readable,r.cacheReady().then(()=>lm(a.writable,n,t,e,j))}let f=await eq.workUnitAsyncStorage.run(e,l_,a,n,{is404:404===r.statusCode,staleTimeIterable:u,staticStageByteLengthPromise:d,runtimePrefetchStream:i}),h=await oC(()=>{c.advanceStage(nt.D.Static);let[r,n]=eq.workUnitAsyncStorage.run(e,s,f,Z,{onError:j,filterStackFrame:o}).tee();return lj(n,c).then(t),r},()=>{oD(u)},()=>{c.advanceStage(nt.D.Dynamic)});K=new e3(h)}else{let t=await eq.workUnitAsyncStorage.run(e,l_,a,n,{is404:404===r.statusCode}),i=P&&ls();if(i){let[e,t]=i.clientSide.readable.tee();w=e,P({readable:t},f,g)}K=new e3(eq.workUnitAsyncStorage.run(e,ta,n.componentMod,t,Z,{filterStackFrame:o,onError:j,debugChannel:null==i?void 0:i.serverSide}))}if(await L(),"string"==typeof m.postponed){if((null==s?void 0:s.type)===nI.DATA){let e=te(K.tee(),h,i);return X.isRecording()&&X.end(),W(e,G(en))}else if(s){let{postponed:t,preludeState:r}=function(e){let[t,r]=e.data;return{preludeState:t,postponed:r}}(s),a=(0,T.jsx)(lk,{reactServerStream:K.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),o=rF({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:$,basePath:v,tracingMetadata:F}),{stream:l,allReady:u}=await eq.workUnitAsyncStorage.run(e,to,a,t,{onError:J,nonce:h});return u.finally(()=>{X.isRecording()&&X.end()}),await ed(l,{delayDataUntilFirstHtmlChunk:r===nD.Empty,inlinedDataStream:te(K.consume(),h,i),getServerInsertedHTML:o,getServerInsertedMetadata:U,deploymentId:n.sharedContext.deploymentId})}}let t=rF({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:$,basePath:v,tracingMetadata:F}),l=(0,T.jsx)(lk,{reactServerStream:K.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),{stream:c,allReady:d}=await eq.workUnitAsyncStorage.run(e,ts,l,{onError:J,nonce:h,onHeaders:e=>{e.forEach((e,t)=>{Q(t,e)})},maxHeadersLength:x,bootstrapScriptContent:q,bootstrapScripts:[z],formState:i});return d.finally(()=>{X.isRecording()&&X.end()}),await (u={inlinedDataStream:te(K.consume(),h,i),isStaticGeneration:!0!==O||!!C,allReady:d,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:t,getServerInsertedMetadata:U,validateRootLayout:!1},eo(c,u))}catch(y){let t,s,u;if((0,nr.l)(y)||"object"==typeof y&&null!==y&&"message"in y&&"string"==typeof y.message&&y.message.includes("https://nextjs.org/docs/advanced-features/static-html-export"))throw V(y),y;let f=(0,tD.C)(y);if(f){let e=t$(y);throw rf(`${y.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),V(y),y}if((0,t_.RM)(y))r.statusCode=(0,t_.jT)(y),l.statusCode=r.statusCode,t=(0,t_.qe)(r.statusCode);else if((0,tE.n)(y)){t="redirect",r.statusCode=tx(y),l.statusCode=r.statusCode;let n=ey(tR(y),v),a=new Headers;(0,th.IN)(a,e.mutableCookies)&&Y("set-cookie",Array.from(a.values())),Y("location",n)}else f||(r.statusCode=500,l.statusCode=r.statusCode);let[m,g]=rU(b,d,S,A,rJ(n,!1),h,"/_not-found/page");try{if(s=await eq.workUnitAsyncStorage.run(e,lR,a,n,k.has(y.digest)?null:y,t),u=eq.workUnitAsyncStorage.run(e,ta,n.componentMod,s,Z,{filterStackFrame:o,onError:j}),null===K)throw V(y),y}catch(e){throw V(e),e}try{let{stream:t,allReady:r}=await eq.workUnitAsyncStorage.run(e,ts,(0,T.jsx)(lx,{reactServerStream:u,ServerInsertedHTMLProvider:N,preinitScripts:m,nonce:h,images:n.renderOpts.images}),{nonce:h,bootstrapScriptContent:q,bootstrapScripts:[g],formState:i});return r.finally(()=>{X.isRecording()&&X.end()}),await (c={inlinedDataStream:te(K.consume(),h,i),isStaticGeneration:!0!==O||!!C,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:rF({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:[],basePath:v,tracingMetadata:F}),getServerInsertedMetadata:U,validateRootLayout:!1},eo(t,c))}catch(e){throw V(e),e}}})}async function lO(e,t,r){let n=[],a=[],i=[],s=e.getReader(),o=!1;function l(){o||(o=!0,s.cancel())}r&&r.addEventListener("abort",l,{once:!0});try{for(;!o;){let{done:e,value:r}=await s.read();if(e){l();break}switch(t.currentStage){case nt.D.Before:throw Object.defineProperty(new eM.z("Unexpected stream chunk while in Before stage"),"__NEXT_ERROR_CODE",{value:"E942",enumerable:!1,configurable:!0});case nt.D.EarlyStatic:case nt.D.Static:n.push(r);case nt.D.EarlyRuntime:case nt.D.Runtime:a.push(r);case nt.D.Dynamic:i.push(r);break;case nt.D.Abandoned:break;default:t.currentStage}}}catch(e){if(!o)throw e}return{staticChunks:n,runtimeChunks:a,dynamicChunks:i}}async function lj(e,t){let r=0,n=e.getReader();for(t.onStage(nt.D.EarlyRuntime,()=>{n.cancel()});;){let{done:e,value:a}=await n.read();if(e)break;if(t.currentStage<=nt.D.Static)r+=a.byteLength;else{n.cancel();break}}return r}function l$(e,t,r,n){return{cookies:e.delayUntilStage(nt.D.Runtime,"cookies",t),earlyCookies:e.delayUntilStage(nt.D.EarlyRuntime,"cookies",t),mutableCookies:e.delayUntilStage(nt.D.Runtime,"cookies",r),earlyMutableCookies:e.delayUntilStage(nt.D.EarlyRuntime,"cookies",r),headers:e.delayUntilStage(nt.D.Runtime,"headers",n),earlyHeaders:e.delayUntilStage(nt.D.EarlyRuntime,"headers",n),sharedParamsParent:e.delayUntilStage(nt.D.Runtime,void 0,""),earlySharedParamsParent:e.delayUntilStage(nt.D.EarlyRuntime,void 0,""),sharedSearchParamsParent:e.delayUntilStage(nt.D.Runtime,void 0,""),earlySharedSearchParamsParent:e.delayUntilStage(nt.D.EarlyRuntime,void 0,""),connection:e.delayUntilStage(nt.D.Dynamic,"connection",void 0)}}async function lI(e,t,r,n,i,s,o,l,u){let c,{implicitTags:d,nonce:f,workStore:h}=o,p=new AbortController,m=new AbortController,g=new AbortController,{ServerInsertedHTMLProvider:y}=rN();c="prerender-client"===e?{type:"prerender-client",phase:"render",rootParams:n,fallbackRouteParams:i,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:s,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null}:{type:"validation-client",phase:"render",rootParams:n,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null,boundaryState:null,validationSamples:l,validationSampleTracking:u,fallbackRouteParams:i};let v=function(e,t,r){{let{Readable:n}=a("node:stream"),i=0,s=new n({read(){for(;i{for(;i{s.push(null)})},{once:!0}),s}}(t,r,m.signal),b=eq.workUnitAsyncStorage.run(c,tu,(0,T.jsx)(lk,{reactServerStream:v,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:y,nonce:f,images:o.renderOpts.images}),{signal:m.signal,onError:e=>{let t=tq(e);return t||(tB(e)?void console.error(e):void(m.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,h.route,o_.ProspectiveRender)))}});m.signal.addEventListener("abort",()=>{g.abort()},{once:!0}),b.catch(e=>{m.signal.aborted||(0,tL.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,h.route,o_.ProspectiveRender)});let w=new oA;(0,o8.trackPendingModules)(w),await w.cacheReady(),m.abort()}async function lD(e,t,r,n,i,s,o,l){let u="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{createCombinedPayloadAtDepth:c,createCombinedPayloadStream:d,collectStagedSegmentData:f,discoverValidationDepths:h}=s.componentMod.InstantValidation(),{createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js");null==u||u("\nStarting depth-based instant validation...");let m=s.componentMod.routeModule.userland.loaderTree,g=eJ(),{cache:y,payload:v,stageEndTimes:b}=await f({[nt.D.Static]:e.staticChunks,[nt.D.Runtime]:e.runtimeChunks,[nt.D.Dynamic]:e.dynamicChunks},t,r,!0,g),{implicitTags:w,nonce:S,workStore:_}=s,E=!!s.renderOpts.setReactDebugChannel;async function R(e,t){return k(e,t,null)}async function k(e,t,a){let u,f=new AbortController,h={expectedIds:new Set,renderedIds:new Set},R=!1;if(a)for(let e of(R=!0,a.expectedIds))h.expectedIds.add(e);let x=await c(v,y,m,s.getDynamicParamFromSegment,s.query,e,t,f.signal,h,g,b,R);if(null===x)return null;let P=new AbortController,C=new AbortController,A=()=>{},{ServerInsertedHTMLProvider:O}=rN(),{stream:j,debugStream:$}=await d(x.payload,f,P.signal,g,r,E),I=(0,tL.md)(x.createInstantStack),D=null!==l?p():null,N=(0,tL.uO)(!1),M={type:"validation-client",phase:"render",rootParams:n,implicitTags:w,renderSignal:C.signal,controller:P,cacheSignal:null,dynamicTracking:N,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...w.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:o,varyParamsAccumulator:null,boundaryState:h,fallbackRouteParams:i,validationSamples:l,validationSampleTracking:D};try{let{prelude:e}=await oC(()=>{let e=eq.workUnitAsyncStorage.run(M,tu,(0,T.jsx)(lk,{reactServerStream:j,reactDebugStream:$??void 0,debugEndTime:void 0,preinitScripts:A,ServerInsertedHTMLProvider:O,nonce:S,images:s.renderOpts.images}),{signal:P.signal,onError:(e,t)=>{if((0,tL.AA)(e)||P.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tL.g)(_,e,I,N,x.hasAmbiguousErrors?tL.Q.Runtime:tL.Q.Dynamic,h);return}if(!P.signal.aborted){let r=t.componentStack;if("string"==typeof r){let t=e;if(e&&"object"==typeof e&&"digest"in e&&"string"==typeof e.digest){let r=_.reactServerErrorsByDigest.get(e.digest);void 0!==r&&(t=r)}(0,tL.n1)(_,I,t,r)}}return tB(e)?void console.error(e):tq(e)}});return P.signal.addEventListener("abort",()=>{C.abort()},{once:!0}),e},()=>{P.abort()}),{preludeIsEmpty:t}=await e7(e);u=(0,tL.Jr)(_,t?tL.r0.Empty:tL.r0.Full,I,D,h)}catch(e){u=(0,tL.Jr)(_,tL.r0.Errored,I,D,h)}if(0===u.length)return[];if(null===a&&x.hasAmbiguousErrors){let r=await k(e,t,h);if(null!==r&&r.length>0)return r}return u}let x=h(m),P=x.length;for(let e=P-1;e>=0;e--){let t=x[e];for(let r=t;r>=0;r--){null==u||u(`Trying depth ${e}`+(r>0?` + groupDepth ${r}...`:"..."));let t=await R(e,r);if(null===t){null==u||u(` No config at depth ${e}+${r}, skipping.`);continue}if(t.length>0)return null==u||u(` Depth ${e}+${r}: ❌ Failed (${t.length} errors)`),t;null==u||u(` Depth ${e}+${r}: ✅ Passed`)}}return null==u||u(`✅ All depths passed`),[]}async function lN(e,t,r,n,a,i){let{componentMod:s}=e,{clientModules:l}=eJ(),u=-1/0,c=t,d=new oA;(0,o8.trackPendingModules)(d);let f=i?nj(i):nj(),h=new AbortController,p=new AbortController,m=new AbortController,g=new nt.V(p.signal,m,!0);c.prerenderResumeDataCache=f,c.renderResumeDataCache=null,c.stagedRendering=g,c.cacheSignal=d,c.asyncApiPromises=l$(g,c.cookies,c.mutableCookies,c.headers),c.controller=void 0,c.renderSignal=void 0;let y=await n(c),v=e=>{!0===m.signal.aborted||(d.hasPendingReads()?m.abort():g.advanceStage(e))},b=await oC(()=>{g.advanceStage(nt.D.EarlyStatic),u=performance.now()+performance.timeOrigin;let e=eq.workUnitAsyncStorage.run(c,ta,s,y,l,{onError:a(h.signal,!1),startTime:u,filterStackFrame:o,signal:h.signal});h.signal.addEventListener("abort",()=>{let{reason:e}=h.signal;p.abort(e)},{once:!0});let t=lO(e,g,p.signal);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{v(nt.D.Static)},()=>{v(nt.D.EarlyRuntime)},()=>{v(nt.D.Runtime)},()=>{v(nt.D.Dynamic)});if(g.currentStage!==nt.D.Abandoned)return{accumulatedChunksPromise:b.accumulatedChunksPromise,startTime:u,stageController:g,requestStore:c};await d.cacheReady(),h.abort(),c=r();let w=new AbortController,S=new AbortController,_=new nt.V(S.signal,null,!0);c.prerenderResumeDataCache=null,c.renderResumeDataCache=n$(f),c.stagedRendering=_,c.cacheSignal=null,c.asyncApiPromises=l$(_,c.cookies,c.mutableCookies,c.headers),c.controller=w,c.renderSignal=S.signal;let E=await n(c);return{accumulatedChunksPromise:(await oC(()=>{_.advanceStage(nt.D.EarlyStatic),u=performance.now()+performance.timeOrigin;let e=eq.workUnitAsyncStorage.run(c,ta,s,E,l,{onError:a(w.signal,!0),startTime:u,filterStackFrame:o,signal:w.signal});w.signal.addEventListener("abort",()=>{S.abort(w.signal.reason)},{once:!0});let t=lO(e,_,null);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{_.advanceStage(nt.D.Static)},()=>{_.advanceStage(nt.D.EarlyRuntime)},()=>{_.advanceStage(nt.D.Runtime)},()=>{_.advanceStage(nt.D.Dynamic)})).accumulatedChunksPromise,startTime:u,stageController:_,requestStore:c}}async function lM(e,t){let r=async()=>{let r;try{r=await A.workAsyncStorage.exit(async()=>lL(e,t))}catch(e){console.error(Object.defineProperty(new eM.z("An unexpected error occcured during instant validation",{cause:e}),"__NEXT_ERROR_CODE",{value:"E1097",enumerable:!1,configurable:!0})),r=!1}if(!r)throw console.error("Stopping prerender due to instant validation errors."),new nr.f};if(!process.env.__NEXT_TEST_MODE||!process.env.NEXT_TEST_LOG_VALIDATION)return await r();{let t=Date.now(),n=e.workStore.route;console.error(""+JSON.stringify({type:"validation_start",requestId:t,url:n})+"");try{return await r()}finally{console.error(""+JSON.stringify({type:"validation_end",requestId:t,url:n})+"")}}}async function lL(e,t){let r="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{workStore:n}=e,a=n.route,i=e.componentMod.routeModule.userland.loaderTree,s=await la(i);s&&0!==s.length||(s=[{}]),null==r||r("Resolved samples:",s);let o=function(e,t){let r=nE(e,!0),{pathnameRouteParamSegments:n,params:a}=function(e,t){let r=[],n={},a=[{tree:e,depth:0,currentPath:[]}];for(;a.length>0;){let{tree:e,depth:i,currentPath:s}=a.shift(),{segment:o,parallelRoutes:l}=rG(e),u=s,c=i,d=n_(o);if(d&&"route-group"!==d.type&&"parallel-route"!==d.type&&(u=[...s,d],c=i+1),(null==d?void 0:d.type)==="dynamic"){let{paramName:e,paramType:a}=d.param;if(i({paramName:e,paramType:t}));!function(e,t,r,n){let a=[{tree:e,depth:0}];for(;a.length>0;){let{tree:e,depth:i}=a.pop(),{segment:s,parallelRoutes:o}=rG(e),l=n_(s);if((null==l?void 0:l.type)==="dynamic"&&!t.hasOwnProperty(l.param.paramName)&&!n.some(e=>e.paramName===l.param.paramName)){let{paramName:e,paramType:a}=l.param,s=nk(e,a,i,r,t);void 0!==s?t[e]=s:"optional-catchall"!==a&&n.push({paramName:e,paramType:a})}let u=i;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))a.push({tree:e,depth:u})}}(t.userland.loaderTree,a,r,i);if(0===i.length)return null;let s=Math.random().toString(16).slice(2),o=new Map;for(let{paramName:e,paramType:t}of i)o.set(e,[`%%drp:${e}:${s}%%`,tW[t]]);return o}(a,e.componentMod.routeModule);for(let n=0;nlU(e,l,o,t))}catch(e){if((0,tz.R)(e))i=[e];else throw e}if(i.length>0){null==r||r(`❌ Sample failed validation (${i.length} errors)`);let e=s.length>1?` (sample ${n+1} of ${s.length})`:"";for(let e of i)console.error(e);return console.error(`Build-time instant validation failed for route "${a}"${e}.`),!1}null==r||r("✅ Sample validated successfully")}return!0}async function lU(e,t,r,n){let i,s,{workStore:o}=e,l=e.componentMod.routeModule.userland.loaderTree,u=o.route,{createCookiesFromSample:c,createHeadersFromSample:d,createDraftModeForValidation:f,createRelativeURLFromSamples:h,createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js"),m=h(u,t.params,t.searchParams),g=t.params??{},y=null;if(r){let e=new Map;for(let[t,n]of r)t in g||e.set(t,n);y=e}let v=lu(g,y,!1),b=ng(l,v);({query:s,...i}=m);let{AfterContext:w}=a("./dist/esm/server/after/after-context.js"),S={isStaticGeneration:!1,page:o.page,route:o.route,incrementalCache:o.incrementalCache,cacheLifeProfiles:o.cacheLifeProfiles,isBuildTimePrerendering:!1,fetchCache:o.fetchCache,isOnDemandRevalidate:!1,isDraftMode:!1,isPrefetchRequest:!1,buildId:o.buildId,reactLoadableManifest:o.reactLoadableManifest,assetPrefix:o.assetPrefix,nonce:o.nonce,afterContext:new w({waitUntil(e){e.catch(()=>{})},onClose(){},onTaskError(){}}),cacheComponentsEnabled:o.cacheComponentsEnabled,previouslyRevalidatedTags:[],refreshTagsByCacheKind:new Map,runInCleanSnapshot:o.runInCleanSnapshot,shouldTrackFetchMetrics:!1,reactServerErrorsByDigest:new Map};return A.workAsyncStorage.run(S,async()=>{let r={componentMod:e.componentMod,url:i,renderOpts:e.renderOpts,workStore:S,parsedRequestHeaders:e.parsedRequestHeaders,getDynamicParamFromSegment:v,interpolatedParams:g,query:s,isPrefetch:!1,isPossibleServerAction:!1,requestTimestamp:e.requestTimestamp,appUsingSizeAdjustment:e.appUsingSizeAdjustment,flightRouterState:void 0,requestId:e.requestId,htmlRequestId:e.htmlRequestId,pagePath:e.pagePath,assetPrefix:e.assetPrefix,isNotFoundPath:e.isNotFoundPath,nonce:e.nonce,res:e.res,sharedContext:e.sharedContext,implicitTags:e.implicitTags},a={params:t.params,searchParams:t.searchParams},o=()=>{let r=c(t.cookies,u),n=new eC.VO(new Headers),i=d(t.headers,t.cookies,u),s=f();return{type:"request",phase:"render",implicitTags:e.implicitTags,url:{pathname:m.pathname,search:m.search},headers:i,cookies:r,mutableCookies:n,userspaceMutableCookies:n,draftMode:s,rootParams:b,validationSamples:a,validationSampleTracking:p(),renderResumeDataCache:null,prerenderResumeDataCache:null,stagedRendering:null,asyncApiPromises:void 0}},h=tX(!0,!0,S.reactServerErrorsByDigest,()=>{}),{accumulatedChunksPromise:w,startTime:_,stageController:E,requestStore:R}=await lN(r,o(),o,e=>eq.workUnitAsyncStorage.run(e,l_,l,r,{is404:!1}),e=>function(t){let r=tq(t);return r||(e.aborted?void 0:h(t))},n),k=await w,x=R.validationSampleTracking;if(x.missingSampleErrors.length>0)return x.missingSampleErrors;if(E.currentStage===nt.D.Abandoned&&E.syncInterruptReason)return[E.syncInterruptReason];let P=(r.renderOpts.allowEmptyStaticShell??!1)||await le(l),C=p();return(await lI("validation-client",k.dynamicChunks,k.dynamicChunks,b,y,P,r,a,C),C.missingSampleErrors.length>0)?C.missingSampleErrors:await lD(k,null,_,b,y,r,void 0,a)})}function lF(e){let{isStaticGeneration:t}=e;return!!t}async function lH(e,t,r,n,a,i){var s,l,u;let{assetPrefix:c,getDynamicParamFromSegment:d,implicitTags:f,nonce:h,pagePath:p,renderOpts:m,workStore:g}=r,{basePath:y,buildManifest:v,ComponentMod:b,crossOrigin:w,experimental:S,isDebugDynamicAccesses:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,subresourceIntegrityManifest:P,cacheComponents:C}=m,{cachedNavigations:A}=m.experimental,O=(m.allowEmptyStaticShell??!1)||await le(a),$=ng(a,d),{ServerInsertedHTMLProvider:I,renderServerInsertedHTML:D}=rN(),N=oN(h),M=oO((0,j.getTracer)().getTracePropagationData(),S.clientTraceMetadata),L=v.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${c}/_next/${e}${rJ(r,!1)}`,integrity:null==P?void 0:P[e],crossOrigin:w,noModule:!0,nonce:h})),[U,F]=rU(v,c,w,P,rJ(r,!0),h,k),{reactServerErrorsByDigest:H}=g,B=!S.isRoutePPREnabled,z=tX(!1,E,H,function(t,n){if(B)return null==R?void 0:R(t,e,lf(r,"react-server-components"),n)}),q=[],X=tV(!1,E,H,q,function(t){if(B)return null==R?void 0:R(t,e,lf(r,"server-rendering"),!1)}),V=null,G=e=>{n.headers??={},n.headers[e]=t.getHeader(e)},J=(e,r)=>{Array.isArray(r)?r.forEach(r=>{t.appendHeader(e,r)}):t.appendHeader(e,r),G(e)},K=o$(S),{clientModules:Q}=eJ(),Z=null;try{if(C){let e,s,l=new AbortController,u=new AbortController,c=new AbortController,d=new oA,p=nj(),v=m.renderResumeDataCache??null,w={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:new AbortController,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},S=await eq.workUnitAsyncStorage.run(w,l_,a,r,{is404:404===t.statusCode}),E=Z={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:l,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},R={filterStackFrame:o,onError:e=>{let t=tq(e);return t||(tB(e)?void console.error(e):l.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)))},signal:u.signal},k=eq.workUnitAsyncStorage.run(E,tl(b),S,Q,R);if(u.signal.addEventListener("abort",()=>{c.abort(),l.abort()},{once:!0}),(0,o8.trackPendingModules)(d),await d.cacheReady(),u.abort(),g.invalidDynamicUsageError)throw(0,tL.gR)(g,g.invalidDynamicUsageError),new nr.f;try{e=await e4(k)}catch(e){u.signal.aborted||l.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)}if(e){let t=new AbortController,n=new AbortController,a=new AbortController,s={type:"prerender-client",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:a.signal,controller:t,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},o=eq.workUnitAsyncStorage.run(s,tu,(0,T.jsx)(lk,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{signal:n.signal,onError:e=>{let t=tq(e);return t||(tB(e)?void console.error(e):void(n.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)))},bootstrapScripts:[F]});n.signal.addEventListener("abort",()=>{a.abort()},{once:!0}),o.catch(e=>{n.signal.aborted||(0,tL.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&oE(e,g.route,o_.ProspectiveRender)}),(0,o8.trackPendingModules)(d),await d.cacheReady(),n.abort()}m.renderResumeDataCache&&(v=n$(p));let P=new AbortController,j=new AbortController,B=ns(),G={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:j.signal,controller:new AbortController,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B},ee=await eq.workUnitAsyncStorage.run(G,l_,a,r,{is404:404===t.statusCode});A&&(ee.s=s=new oj);let et=(0,tL.uO)(_),er=!1,en=Z={type:"prerender",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:j.signal,controller:P,cacheSignal:null,dynamicTracking:et,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B};void 0!==s&&oI(en,s,K);let ea=!0,ei={filterStackFrame:o,onError:e=>z(e),signal:P.signal},es=async()=>{let e=[nl(B)];if(void 0!==s&&e.push(oD(s)),await Promise.all(e),P.signal.aborted){er=!0;return}ea&&(er=!0),P.abort()},eo=async()=>{let e=eq.workUnitAsyncStorage.run(en,tl(b),ee,Q,ei);P.signal.addEventListener("abort",()=>{j.abort()},{once:!0});let t=await e;return ea=!1,t},ed=V=await e4(oC(eo,es)),eh=(0,tL.uO)(_),ep=new AbortController,em=new AbortController,eg={type:"prerender-client",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,renderSignal:em.signal,controller:ep,cacheSignal:null,dynamicTracking:eh,allowEmptyStaticShell:O,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},ey=(0,tL.Wt)(),ev=tr(J),{prelude:eb,postponed:ew}=await oC(()=>{let e=eq.workUnitAsyncStorage.run(eg,tu,(0,T.jsx)(lk,{reactServerStream:ed.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{signal:ep.signal,onError:(e,t)=>{if((0,tL.AA)(e)||ep.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tL.Pe)(g,e,ey,eh);return}return X(e,t)},onHeaders:ev,maxHeadersLength:x,bootstrapScripts:[F]});return ep.signal.addEventListener("abort",()=>{em.abort()},{once:!0}),e},()=>{ep.abort()}),{prelude:eS,preludeIsEmpty:e_}=await e7(eb);O||(0,tL.V2)(g,e_?tL.r0.Empty:tL.r0.Full,ey,et);let eE=rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});n.flightData=await Y(A?lv(ed.asStream(),er):ed.asStream());let eR=A?n.flightData.subarray(1):n.flightData;if(await lz(eR,en,b,m,r.pagePath,n),er){null!=ew?n.postponed=await nN(ew,e_?nD.Empty:nD.Full,i,p,C):n.postponed=await nM(p,C),ed.consume();let e={getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await el(eS,e),dynamicAccess:(0,tL.yI)(et,eh),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:n$(p)}}{let e;if(g.forceDynamic)throw Object.defineProperty(new nr.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=eS;if(null!=ew){let e=tt(),n=await tn((0,T.jsx)(lk,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(ew)),{signal:(0,tL.kb)(),onError:X,nonce:h});t=W(eS,n)}if(i&&i.size>0){let n=await e6(ta(b,[],Q,{filterStackFrame:o,onError:z}));e=await ec(t,{inlinedDataStream:te(n.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId})}else e=await eu(t,{inlinedDataStream:te(ed.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId});return{digestErrorsMap:H,ssrErrors:q,stream:e,dynamicAccess:(0,tL.yI)(et,eh),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:n$(p)}}}if(S.isRoutePPREnabled){let e,s=(0,tL.uO)(_),l=nj(),u=Z={type:"prerender-ppr",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:l},c=await eq.workUnitAsyncStorage.run(u,l_,a,r,{is404:404===t.statusCode});e=V=await e6(eq.workUnitAsyncStorage.run(u,ta,b,c,Q,{filterStackFrame:o,onError:z}));let d={type:"prerender-ppr",phase:"render",rootParams:$,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags],prerenderResumeDataCache:l},p=tr(J),{prelude:v,postponed:w}=await eq.workUnitAsyncStorage.run(d,tu,(0,T.jsx)(lk,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{onError:X,onHeaders:p,maxHeadersLength:x,bootstrapScripts:[F]}),S=rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M}),E=await Y(e.asStream());lF(g)&&(n.flightData=E,await lz(E,d,b,m,r.pagePath,n));let{prelude:R,preludeIsEmpty:k}=await e7(v);if((0,tL.Lu)(s.dynamicAccesses)){null!=w?n.postponed=await nN(w,k?nD.Empty:nD.Full,i,l,C):n.postponed=await nM(l,C),e.consume();let t={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await el(R,t),dynamicAccess:s.dynamicAccesses,collectedRevalidate:u.revalidate,collectedExpire:u.expire,collectedStale:K(u.stale),collectedTags:u.tags}}if(i&&i.size>0){n.postponed=await nM(l,C);let e={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await el(R,e),dynamicAccess:s.dynamicAccesses,collectedRevalidate:u.revalidate,collectedExpire:u.expire,collectedStale:K(u.stale),collectedTags:u.tags}}{if(g.forceDynamic)throw Object.defineProperty(new nr.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=R;if(null!=w){let e=tt(),n=await tn((0,T.jsx)(lk,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(w)),{signal:(0,tL.kb)(),onError:X,nonce:h});t=W(R,n)}return{digestErrorsMap:H,ssrErrors:q,stream:await eu(t,{inlinedDataStream:te(e.consumeAsStream(),h,null),getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId}),dynamicAccess:s.dynamicAccesses,collectedRevalidate:u.revalidate,collectedExpire:u.expire,collectedStale:K(u.stale),collectedTags:u.tags}}}{let e,i=Z={type:"prerender-legacy",phase:"render",rootParams:$,implicitTags:f,revalidate:ef.AR,expire:ef.AR,stale:ef.AR,tags:[...f.tags]},l=await eq.workUnitAsyncStorage.run(i,l_,a,r,{is404:404===t.statusCode});e=V=await e6(eq.workUnitAsyncStorage.run(i,ta,b,l,Q,{filterStackFrame:o,onError:z}));let{stream:u}=await eq.workUnitAsyncStorage.run(i,ts,(0,T.jsx)(lk,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:I,nonce:h,images:r.renderOpts.images}),{onError:X,nonce:h,bootstrapScripts:[F]});if(lF(g)){let t=await Y(e.asStream());n.flightData=t,await lz(t,i,b,m,r.pagePath,n)}let c=rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});return{digestErrorsMap:H,ssrErrors:q,stream:await (s={inlinedDataStream:te(e.consumeAsStream(),h,null),isStaticGeneration:!0,getServerInsertedHTML:c,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId},eo(u,s)),collectedRevalidate:i.revalidate,collectedExpire:i.expire,collectedStale:K(i.stale),collectedTags:i.tags}}}catch(R){let e;if((0,nr.l)(R)||"object"==typeof R&&null!==R&&"message"in R&&"string"==typeof R.message&&R.message.includes("https://nextjs.org/docs/advanced-features/static-html-export")||(0,tN.isDynamicServerError)(R))throw R;let i=(0,tD.C)(R);if(i){let e=t$(R);throw rf(`${R.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),R}if(null===V)throw R;(0,t_.RM)(R)?(t.statusCode=(0,t_.jT)(R),n.statusCode=t.statusCode,e=(0,t_.qe)(t.statusCode)):(0,tE.n)(R)?(e="redirect",t.statusCode=tx(R),n.statusCode=t.statusCode,l=ey(tR(R),y),t.setHeader("location",l),G("location")):i||(t.statusCode=500,n.statusCode=t.statusCode);let[s,d]=rU(v,c,w,P,rJ(r,!1),h,"/_not-found/page"),S=Z={type:"prerender-legacy",phase:"render",rootParams:$,implicitTags:f,revalidate:void 0!==(null==Z?void 0:Z.revalidate)?Z.revalidate:ef.AR,expire:void 0!==(null==Z?void 0:Z.expire)?Z.expire:ef.AR,stale:void 0!==(null==Z?void 0:Z.stale)?Z.stale:ef.AR,tags:[...(null==Z?void 0:Z.tags)||f.tags]},_=await eq.workUnitAsyncStorage.run(S,lR,a,r,H.has(R.digest)?void 0:R,e),E=eq.workUnitAsyncStorage.run(S,ta,b,_,Q,{filterStackFrame:o,onError:z});try{let{stream:e}=await eq.workUnitAsyncStorage.run(S,ts,(0,T.jsx)(lx,{reactServerStream:E,ServerInsertedHTMLProvider:I,preinitScripts:s,nonce:h,images:r.renderOpts.images}),{nonce:h,bootstrapScripts:[d],formState:null});if(lF(g)){let e=await Y(V.asStream());n.flightData=e,await lz(e,S,b,m,r.pagePath,n)}let t=V.consumeAsStream();return{digestErrorsMap:H,ssrErrors:q,stream:await (u={inlinedDataStream:te(t,h,null),isStaticGeneration:!0,getServerInsertedHTML:rF({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:[],basePath:y,tracingMetadata:M}),getServerInsertedMetadata:N,validateRootLayout:!1,deploymentId:r.sharedContext.deploymentId},eo(e,u)),dynamicAccess:null,collectedRevalidate:null!==Z?Z.revalidate:ef.AR,collectedExpire:null!==Z?Z.expire:ef.AR,collectedStale:K(null!==Z?Z.stale:ef.AR),collectedTags:null!==Z?Z.tags:null}}catch(e){throw e}}}let lB=async(e,t)=>{let r=rG(e).modules["global-error"];if(!r)throw Object.defineProperty(Error("Invariant: global-error module is required but not found in loader tree"),"__NEXT_ERROR_CODE",{value:"E983",enumerable:!1,configurable:!0});let{componentMod:{createElement:n}}=t,[a,i]=await rY({ctx:t,filePath:r[1],getComponent:r[0],injectedCSS:new Set,injectedJS:new Set});return{GlobalError:a,styles:i}};async function lz(e,t,r,n,a,i){let s,{clientModules:o,edgeRscModuleMapping:l,rscModuleMapping:u}=eJ(),c={moduleLoading:null,moduleMap:u,serverModuleMap:eY()},d=o$(n.experimental)(t.stale),f=n.experimental.prefetchInlining;if(f)if(n.isBuildTimePrerendering)i.prefetchHints=s=await r.collectPrefetchHints(e,d,o,c,f.maxSize,f.maxBundleSize);else{var h;s=(null==(h=n.prefetchHints)?void 0:h[a])??null}else s=null;i.segmentData=await r.collectSegmentData(n.cacheComponents,e,d,o,c,!!n.experimental.prefetchInlining,s)}require("next/dist/build/adapter/setup-node-env.external.js"),a("./dist/esm/shared/lib/modern-browserslist-target.js");let lq="build-manifest.json";[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let lX=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,lV=/\/\[[^/]+\](?=\/|$)/;function lW(e,t=!0){return((0,nS.m1)(e)&&(e=(0,nS.$8)(e).interceptedRoute),t)?lV.test(e):lX.test(e)}function lG(e){return eb(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}var lJ=a("./dist/esm/shared/lib/page-path/ensure-leading-slash.js");function lK(e){let t=/^\/index(\/|$)/.test(e)&&!lW(e)?`/index${e}`:"/"===e?"/index":(0,lJ.A)(e);{let{posix:e}=a("path"),r=e.normalize(t);if(r!==t)throw new oz.MK(`Requested and resolved page mismatch: ${t} ${r}`)}return t}let lY=["ico","jpg","jpeg","png","svg"],lQ=["jpg","jpeg","png"],lZ=["jpg","jpeg","png","gif"],l0=["jpg","jpeg","png","gif"],l1=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,l2=/^[\\/]favicon\.ico$/,l3=/^[\\/]robots\.txt$/,l4=/^[\\/]manifest\.json$/,l6=/^[\\/]manifest\.webmanifest$/,l8=/[\\/]sitemap\.xml$/,l9=new Map;var l5=a("./dist/esm/shared/lib/isomorphic/path.js"),l7=a.n(l5),ue=a("./tags-manifest.external");class ut{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(l7().dirname(e)),n=r[1].then(()=>this.fs.writeFile(e,t));n.catch(()=>{}),r[2].push(n)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let ur=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class un{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?un.memoryCache?un.debug&&console.log("FileSystemCache: memory store already initialized"):(un.debug&&console.log("FileSystemCache: using memory store for fetch cache"),un.memoryCache=(0,ur.getMemoryCache)(e.maxMemoryCacheSize)):un.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,un.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let n of e){let e=ue.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),ue.tagsManifest.set(n,a)}else ue.tagsManifest.set(n,{...e,expired:r})}}async get(...e){var t,r,n,a,i,s,o,l,u;let[c,d]=e,{kind:f}=d,h=null==(t=un.memoryCache)?void 0:t.get(c);if(un.debug&&(f===r1.FETCH?console.log("FileSystemCache: get",c,d.tags,f,!!h):console.log("FileSystemCache: get",c,f,!!h)),!h)try{if(f===r1.APP_ROUTE){let e=this.getFilePath(`${c}.body`,r1.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),n=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,ef.EP),"utf8"));h={lastModified:r.getTime(),value:{kind:r0.APP_ROUTE,body:t,headers:n.headers,status:n.status}}}else{let e=this.getFilePath(f===r1.FETCH?c:`${c}.html`,f),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(f===r1.FETCH){let{tags:e,fetchIdx:n,fetchUrl:a}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(h={lastModified:i,value:l},(null==(s=h.value)?void 0:s.kind)===r0.FETCH){let t=null==(o=h.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(un.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(c,h.value,{fetchCache:!0,tags:e,fetchIdx:n,fetchUrl:a}))}}else if(f===r1.APP_PAGE){let n,a,i;try{n=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,ef.EP),"utf8"))}catch{}if(null==n?void 0:n.segmentPaths){let e=new Map;a=e;let t=c+ef.mH;await Promise.all(n.segmentPaths.map(async r=>{let n=this.getFilePath(t+r+ef.tz,r1.APP_PAGE);try{e.set(r,await this.fs.readFile(n))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==n?void 0:n.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${c}${ef.RM}`,r1.APP_PAGE))),h={lastModified:r.getTime(),value:{kind:r0.APP_PAGE,html:t,rscData:i,postponed:null==n?void 0:n.postponed,headers:null==n?void 0:n.headers,status:null==n?void 0:n.status,segmentData:a}}}else if(f===r1.PAGES){let e,n={};d.isFallback||(n=JSON.parse(await this.fs.readFile(this.getFilePath(`${c}${ef.x3}`,r1.PAGES),"utf8"))),h={lastModified:r.getTime(),value:{kind:r0.PAGES,html:t,pageData:n,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${f} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}h&&(null==(l=un.memoryCache)||l.set(c,h))}catch{return null}if((null==h||null==(r=h.value)?void 0:r.kind)===r0.APP_PAGE||(null==h||null==(n=h.value)?void 0:n.kind)===r0.APP_ROUTE||(null==h||null==(a=h.value)?void 0:a.kind)===r0.PAGES){let e=null==(u=h.value.headers)?void 0:u[ef.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,ue.areTagsExpired)(t,h.lastModified))return un.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==h||null==(i=h.value)?void 0:i.kind)===r0.FETCH){let e=d.kind===r1.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return un.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,ue.areTagsExpired)(e,h.lastModified))return un.debug&&console.log("FileSystemCache: expired tags",e),null}return h??null}async set(e,t,r){var n;if(null==(n=un.memoryCache)||n.set(e,{value:t,lastModified:Date.now()}),un.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let a=new ut(this.fs);if(t.kind===r0.APP_ROUTE){let r=this.getFilePath(`${e}.body`,r1.APP_ROUTE);a.append(r,t.body);let n={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};a.append(r.replace(/\.body$/,ef.EP),JSON.stringify(n,null,2))}else if(t.kind===r0.PAGES||t.kind===r0.APP_PAGE){let n=t.kind===r0.APP_PAGE,i=this.getFilePath(`${e}.html`,n?r1.APP_PAGE:r1.PAGES);if(a.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||a.append(this.getFilePath(`${e}${n?ef.RM:ef.x3}`,n?r1.APP_PAGE:r1.PAGES),n?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===r0.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,ef.mH);for(let[n,i]of t.segmentData){e.push(n);let t=r+n+ef.tz;a.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};a.append(i.replace(/\.html$/,ef.EP),JSON.stringify(r))}}else if(t.kind===r0.FETCH){let n=this.getFilePath(e,r1.FETCH);a.append(n,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await a.wait()}getFilePath(e,t){switch(t){case r1.FETCH:return l7().join(this.serverDistDir,"..","cache","fetch-cache",e);case r1.PAGES:return l7().join(this.serverDistDir,"pages",e);case r1.IMAGE:case r1.APP_PAGE:case r1.APP_ROUTE:return l7().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function ua(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let ui=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js");class us{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:n,serverDistDir:a,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:u,allowedRevalidateHeaderKeys:c}){var d,f,h,p;this.locks=new Map,this.hasCustomCacheHandler=!!u;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(u)us.debug&&console.log("IncrementalCache: using custom cache handler",u.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(u=t.FetchCache,us.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&a&&(us.debug&&console.log("IncrementalCache: using filesystem cache handler"),u=un)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=n,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=c,this.prerenderManifest=o(),this.cacheControls=new ui.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let y=[];i[ef.kz]===(null==(f=this.prerenderManifest)||null==(d=f.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),n&&(y=this.revalidatedTags=o6(i,null==(p=this.prerenderManifest)||null==(h=p.preview)?void 0:h.previewModeId)),u&&(this.cacheHandler=new u({dev:t,fs:e,flushToDisk:r,serverDistDir:a,revalidatedTags:y,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,n){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let a=this.cacheControls.get(ua(e)),i=a?a.revalidate:!n&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:lK(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(us.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new I;return us.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],n=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,a=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(a.push(n.encode(e)),r.push(e)):(a.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=a.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of a)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let n of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(n);r.push(`${n}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,n=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([n],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return a("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,n,a,i,s,o,l;let u,c;if(t.kind===r1.FETCH){let r=eq.workUnitAsyncStorage.getStore(),n=r?(0,eq.getRenderResumeDataCache)(r):null;if(n){let r=n.fetch.get(e);if((null==r?void 0:r.kind)===r0.FETCH){let n=A.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==n||null==(r=n.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return us.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};us.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else us.debug&&console.log("IncrementalCache: rdc:miss",e)}else us.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==r1.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===r1.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===r1.FETCH){if(!d)return null;if((null==(a=d.value)?void 0:a.kind)!==r0.FETCH)throw Object.defineProperty(new eM.z(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=A.workAsyncStorage.getStore(),n=[...t.tags||[],...t.softTags||[]];if(n.some(e=>{var t,n;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(n=r.pendingRevalidatedTags)?void 0:n.some(t=>t.tag===e))}))return us.debug&&console.log("IncrementalCache: expired tag",e),null;let s=eq.workUnitAsyncStorage.getStore();if(s){let t=(0,eq.getPrerenderResumeDataCache)(s);t&&(us.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,u=d.value.data;return(0,ue.areTagsExpired)(n,d.lastModified)?null:((0,ue.areTagsStale)(n,d.lastModified)&&(l=!0),{isStale:l,value:{kind:r0.FETCH,data:u,revalidate:o}})}if((null==d||null==(n=d.value)?void 0:n.kind)===r0.FETCH)throw Object.defineProperty(new eM.z(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let f=null,{isFallback:h}=t,p=this.cacheControls.get(ua(e));if((null==d?void 0:d.lastModified)===-1)u=-1,c=-1*ef.eM*1e3;else{let r=performance.timeOrigin+performance.now(),n=(null==d?void 0:d.lastModified)||r;if(void 0===(u=!1!==(c=this.calculateRevalidate(e,n,this.dev??!1,t.isFallback))&&c0&&((0,ue.areTagsExpired)(t,n)?u=-1:(0,ue.areTagsStale)(t,n)&&(u=!0))}}}return d&&(f={isStale:u,cacheControl:p,revalidateAfter:c,value:d.value,isFallback:h}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(f={isStale:u,value:null,cacheControl:p,revalidateAfter:c,isFallback:h},this.set(e,f.value,{...t,cacheControl:p})),f}async set(e,t,r){if((null==t?void 0:t.kind)===r0.FETCH){let r=eq.workUnitAsyncStorage.getStore(),n=r?(0,eq.getPrerenderResumeDataCache)(r):null;n&&(us.debug&&console.log("IncrementalCache: rdc:set",e),n.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let n=JSON.stringify(t).length;if(r.fetchCache&&n>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${n} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var a;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(ua(e),r.cacheControl),await (null==(a=this.cacheHandler)?void 0:a.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}let uo=Symbol.for("@next/router-server-methods"),ul=globalThis;function uu(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)===z.kO}let uc=e=>import(e).then(e=>e.default||e);class ud{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:n}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=n}getRouterServerContext(e){var t;let r=P(e,"hostname"),n=P(e,"revalidate"),a=P(e,"render404"),i=P(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=ul[uo])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==n?{revalidate:n}:{},...void 0!==a?{render404:a}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=a("node:path"),n=r(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));return i(n,this.distDir,...t)}}loadManifests(e,t){let r;{var n,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=a("../load-manifest.external"),l=lK(e),u=this.definition.kind===r2.PAGES||this.definition.kind===r2.PAGES_API?"pages":"app",[c,d,f,h,p,m,g,y,v,b,w,S]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:lq,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${lq}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:`server/${"app"===u?"app":"pages"}${l}/react-loadable-manifest.json`,handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==u||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let n=e.replace(/\\/g,"/"),a=!!(l2.test(n)||l3.test(n)||l4.test(n)||l6.test(n)||l8.test(n))||(!!n.includes("robots")||!!n.includes("manifest")||!!n.includes("sitemap")||!!n.includes("icon")||!!n.includes("apple-icon")||!!n.includes("opengraph-image")||!!n.includes("twitter-image")||!!n.includes("favicon"))&&null;if(null!==a)return a;let i=function(e,t){let r=`${e.join(",")}|${t}`,n=l9.get(r);if(n)return n;let a=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${l1(s,null)}${a}`),RegExp(`^[\\\\/]manifest${l1(o,null)}${a}`),RegExp(`[\\\\/]sitemap${l1(["xml"],e)}${a}`),RegExp(`[\\\\/]icon${i}${l1(lY,e)}${a}`),RegExp(`[\\\\/]apple-icon${i}${l1(lQ,e)}${a}`),RegExp(`[\\\\/]opengraph-image${i}${l1(lZ,e)}${a}`),RegExp(`[\\\\/]twitter-image${i}${l1(l0,e)}${a}`)];return l9.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:r,cacheHandlers:n}=t;if(!n||!(0,tw.q3)(r))return;for(let[t,r]of Object.entries(n)){if(!r)continue;let{formatDynamicImportPath:n}=a("./dist/esm/lib/format-dynamic-import-path.js"),{join:i}=a("node:path"),s=i(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir);(0,tw.XJ)(t,rW(await uc(n(`${s}/${this.distDir}`,r))))}}}async getIncrementalCache(e,t,r,n){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=a("./dist/esm/lib/format-dynamic-import-path.js");i=rW(await uc(e(this.distDir,s)))}let{join:o}=a("node:path"),l=o(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let u=new us({fs:a("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:n,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!n&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=u,u}}async onRequestError(e,t,r,n,a){n||((null==a?void 0:a.logErrorWithOriginalStack)?a.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:n}){var i,s;let o,l,u,c,d;{let{join:t,relative:r}=a("node:path");o=t(process.cwd(),P(e,"relativeProjectDir")||this.relativeProjectDir);let n=P(e,"distDir");n&&(this.distDir=r(o,n));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let f=this.loadManifests(r,o),{routesManifest:h,prerenderManifest:p,serverFilesManifest:m}=f,{basePath:g,i18n:y,rewrites:v}=h,b=this.getRouterServerContext(e),w=(null==b?void 0:b.nextConfig)||(null==m?void 0:m.config),S=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!P(e,"initURL")){let t=(null==m?void 0:m.config.experimental.trustHostHeader)?`${S}://${e.headers.host||"localhost"}${e.url}`:`${S}://${(null==b?void 0:b.hostname)||"localhost"}${e.url}`;C(e,"initURL",t),C(e,"initProtocol",S)}g&&(e.url=eE(e.url||"/",g));let _=o1(e.url||"/");if(C(e,"initQuery",{...null==_?void 0:_.query}),!_)return;let E=!1;eb(_.pathname||"/","/_next/data")&&(E=!0,_.pathname=lG(_.pathname||"/")),this.normalizeUrl(e,_);let R=_.pathname||"/",k={..._.query},x=lW(r);y&&(l=e_(_.pathname||"/",y.locales)).detectedLocale&&(e.url=`${l.pathname}${_.search}`,R=l.pathname,u||(u=l.detectedLocale));let T=(0,eX.Yr)(r),A=function({page:e,i18n:t,basePath:r,rewrites:n,pageIsDynamic:i,trailingSlash:s,caseSensitive:o}){let l,u,c;if(i){var d;let t,r;r=(t=function(e,t,r,n,a,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},u=[],c=[];for(let s of(i=structuredClone(i),em(e).slice(1).split("/"))){let e,d=nS.VB.some(e=>s.startsWith(e)),f=s.match(nC),h=d?f?.[1]:void 0;if(h&&f?.[2]?(e=t?ef.h:void 0,i.intercepted[f[2]]=h):e=f?.[2]&&i.intercepted[f[2]]?t?ef.h:void 0:t?ef.AA:void 0,h&&f&&f[2]){let{key:t,pattern:r,cleanedKey:n,repeat:s,optional:d}=oB({getSafeRouteKey:o,interceptionMarker:h,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a});u.push(r),c.push(`/${f[1]}:${i.names[t]??n}${s?d?"*":"+":""}`),i.names[t]??=n}else if(f&&f[2]){n&&f[1]&&(u.push(`/${oF(f[1])}`),c.push(`/${f[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:h}=oB({getSafeRouteKey:o,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a}),p=r;n&&f[1]&&(p=p.substring(1)),u.push(p),c.push(`/:${i.names[t]??s}${d?h?"*":"+":""}`),i.names[t]??=s}else u.push(`/${oF(s)}`),c.push(`/${s}`);r&&f&&f[3]&&(u.push(oF(f[3])),c.push(f[3]))}return{namedParameterizedRoute:u.join(""),routeKeys:l,pathToRegexpPattern:c.join(""),reference:i}}(e,(d={prefixRouteKeys:!1}).prefixRouteKeys,d.includeSuffix??!1,d.includePrefix??!1,d.backreferenceDuplicateKeys??!1,d.reference)).namedParameterizedRoute,d.excludeOptionalTrailingSlash||(r+="(?:/)?"),c=(u=oK(l={...oH(e,d),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(l,c){let d=structuredClone(c),f={},h=d.pathname,p=n=>{var c,p;let m,g,y,v=(c=n.source+(s?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!o},m=[],g=(0,oM.pathToRegexp)(c,m,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),y=(0,oM.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(g.source),g.flags):g,m),(e,t)=>{if("string"!=typeof e)return!1;let r=y(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of m)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!d.pathname)return!1;let b=v(d.pathname);if((n.has||n.missing)&&b){let e=function(e,t,r=[],n=[]){let i={},s=r=>{let n,s=r.key;switch(r.type){case"header":s=s.toLowerCase(),n=e.headers[s];break;case"cookie":if("cookies"in e)n=e.cookies[r.key];else{var o;n=(o=e.headers,function(){let{cookie:e}=o;if(!e)return{};let{parse:t}=a("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})()[r.key]}break;case"query":n=t[s];break;case"host":{let{host:t}=e?.headers||{};n=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&n)return i[function(e){let t="";for(let r=0;r64&&n<91||n>96&&n<123)&&(t+=e[r])}return t}(s)]=n,!0;if(n){let e=RegExp(`^${r.value}$`),t=Array.isArray(n)?n.slice(-1)[0].match(e):n.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{i[e]=t.groups[e]}):"host"===r.type&&t[0]&&(i.host=t[0])),!0}return!1};return!(!r.every(e=>s(e))||n.some(e=>s(e)))&&i}(l,d.query,n.has,n.missing);e?Object.assign(b,e):b=!1}if(b){let{parsedDestination:a,destQuery:s}=function(e){let t,r,n=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${oF(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return(0,nL.r)(e);let t=new URL(e),r=t.username,n=t.password,a=r?n?`${r}:${n}`:r:null,i=t.pathname,s=t.search;return{auth:a,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:(0,oY.v1)(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),n=r.pathname;n&&(n=oQ(n));let a=r.href;a&&(a=oQ(a));let i=r.hostname;i&&(i=oQ(i));let s=r.hash;s&&(s=oQ(s));let o=r.search;o&&(o=oQ(o));let l=r.origin;return l&&(l=oQ(l)),{...r,pathname:n,hostname:i,href:a,hash:s,search:o,origin:l}}(e),{hostname:a,query:i,search:s}=n,o=n.pathname;n.hash&&(o=`${o}${n.hash}`);let l=[],u=[];for(let e of(oG(o,u),u))l.push(e.name);if(a){let e=[];for(let t of(oG(a,e),e))l.push(t.name)}let c=oJ(o,{validate:!1});for(let[r,n]of(a&&(t=oJ(a,{validate:!1})),Object.entries(i)))Array.isArray(n)?i[r]=n.map(t=>oZ(oQ(t),e.params)):"string"==typeof n&&(i[r]=oZ(oQ(n),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if((0,nS.m1)(o))for(let t of o.split("/")){let r=nS.VB.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[a,i]=(r=c(e.params)).split("#",2);t&&(n.hostname=t(e.params)),n.pathname=a,n.hash=`${i?"#":""}${i||""}`,n.search=s?oZ(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return n.query={...e.query,...n.query},{newUrl:r,destQuery:i,parsedDestination:n}}({appendParamsToQuery:!0,destination:n.destination,params:b,query:d.query});if(a.protocol)return!0;if(Object.assign(f,s,b),Object.assign(d.query,a.query),delete a.query,Object.assign(d,a),!(h=d.pathname))return!1;if(r&&(h=h.replace(RegExp(`^${r}`),"")||"/"),t){let e=e_(h,t.locales);h=e.pathname,d.query.nextInternalLocale=e.detectedLocale||b.nextInternalLocale}if(h===e)return!0;if(i&&u){let e=u(h);if(e)return d.query={...d.query,...e},!0}}return!1};for(let e of n.beforeFiles||[])p(e);if(h!==e){let t,r=!1;for(let e of n.afterFiles||[])if(r=p(e))break;if(!r&&!((t=em(h||""))===em(e)||(null==u?void 0:u(t)))){for(let e of n.fallback||[])if(r=p(e))break}}return{rewriteParams:f,rewrittenParsedUrl:d}},defaultRouteRegex:l,dynamicRouteMatcher:u,defaultRouteMatches:c,normalizeQueryParams:function(e,t){for(let[r,n]of(delete e.nextInternalLocale,Object.entries(e))){let a=eh(r);a&&(delete e[r],t.add(a),void 0!==n&&(e[a]=Array.isArray(n)?n.map(e=>o0(e)):o0(n)))}},getParamsFromRouteMatches:function(e){if(!l)return null;let{groups:t,routeKeys:r}=l,n=oK({re:{exec:e=>{let n=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(n)){let r=eh(e);r&&(n[r]=t,delete n[e])}let a={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=n[e];if(!s.optional&&!o)return null;a[s.pos]=o}return a}},groups:t})(e);return n||null},normalizeDynamicRouteParams:(e,t)=>{if(!l||!c)return{params:{},hasValidParams:!1};var r=l,n=c;let a={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=(0,eX.P7)(s):Array.isArray(s)&&(s=s.map(eX.P7));let o=n[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(a[i]=s)}return{params:a,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=o1(e.url);if(!r)return e.url;delete r.search,o4(r.query,t),e.url=o3(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let n of Object.keys(r.groups)){let a,{optional:i,repeat:s}=r.groups[n],o=`[${s?"...":""}${n}]`;i&&(o=`[${o}]`);let l=t[n];((a=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,a))}return e})(e,t,l),filterInternalQuery:(e,t)=>o4(e,t)}}({page:T,i18n:y,basePath:g,rewrites:v,pageIsDynamic:x,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!h.caseSensitive}),O=ep(null==y?void 0:y.domains,ew(_,e.headers),u);O&&C(e,"isLocaleDomain",!!O);let j=P(e,"defaultLocale")||(null==O?void 0:O.defaultLocale)||(null==y?void 0:y.defaultLocale);j&&!u&&(_.pathname=`/${j}${"/"===_.pathname?"":_.pathname}`);let $=P(e,"locale")||u||j,{rewriteParams:I,rewrittenParsedUrl:D}=A.handleRewrites(e,_),N=Object.keys(I);Object.assign(_.query,D.query),y&&(_.pathname=e_(_.pathname||"/",y.locales).pathname,D.pathname=e_(D.pathname||"/",y.locales).pathname);let M=P(e,"params");if(!M&&A.dynamicRouteMatcher){let e=A.dynamicRouteMatcher(lG((null==D?void 0:D.pathname)||_.pathname||"/")),t=A.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(M=t.params)}let L=P(e,"query")||{..._.query},U=new Set,F=[];if(this.definition.kind===r2.PAGES||this.definition.kind===r2.PAGES_API)for(let e of[...N,...Object.keys(A.defaultRouteMatches||{})]){let t=Array.isArray(k[e])?k[e].join(""):k[e],r=Array.isArray(L[e])?L[e].join(""):L[e];e in k&&t!==r||F.push(e)}if(A.normalizeCdnUrl(e,F),A.normalizeQueryParams(L,U),A.filterInternalQuery(k,F),x){let t,r=A.normalizeDynamicRouteParams(L,!0),n=A.normalizeDynamicRouteParams(M||{},!0);if(L&&M&&n.hasValidParams&&r.hasValidParams&&U.size>0&&Object.keys(n.params).length<=Object.keys(r.params).length?(t=r.params,M=Object.assign(r.params)):t=n.hasValidParams&&M?M:r.hasValidParams?L:{},e.url=A.interpolateDynamicPath(e.url||"/",t),_.pathname=A.interpolateDynamicPath(_.pathname||"/",t),R=A.interpolateDynamicPath(R,t),!M)if(r.hasValidParams)for(let e in M=Object.assign({},r.params),A.defaultRouteMatches)delete L[e];else{let e=null==A.dynamicRouteMatcher?void 0:A.dynamicRouteMatcher.call(A,lG((null==l?void 0:l.pathname)||_.pathname||"/"));e&&(M=Object.assign({},e))}}for(let e of U)e in k?k[e]&&L[e]&&k[e]!==L[e]&&(L[e]=k[e]):delete L[e];let{isOnDemandRevalidate:H,revalidateOnlyGenerated:B}=(0,tp.checkIsOnDemandRevalidate)(e,p.preview),z=!1;if(t){let{tryGetPreviewData:r}=a("./dist/esm/server/api-utils/node/try-get-preview-data.js");z=!1!==(c=r(e,t,p.preview,!!n))}if(!w)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=a("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!w.experimental.removeUncaughtErrorAndRejectionListeners)}let q=T;lW(q)&&M&&(q=A.interpolateDynamicPath(q,M)),"/index"===q&&(q="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",em(`${$?`/${$}`:""}${T}`));let X=q;try{q=q.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new oz.Xc("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(C(e,"resolvedPathname",q=em(q)),null==(s=w.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=w.deploymentId||"";return{query:L,originalQuery:k,originalPathname:R,params:M,parsedUrl:_,locale:$,isNextDataRequest:E,locales:null==y?void 0:y.locales,defaultLocale:j,isDraftMode:z,previewData:c,pageIsDynamic:x,resolvedPathname:q,encodedResolvedPathname:X,isOnDemandRevalidate:H,revalidateOnlyGenerated:B,...f,nextConfig:w,routerServerContext:b,deploymentId:d,clientAssetToken:w.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=P(e,"minimalMode")??!1;this.responseCache=new ne(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:n,isFallback:a,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:u,waitUntil:c,isMinimalMode:d}){let f=this.getResponseCache(e),h=await f.get(r,u,{routeKind:n,isFallback:a,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:c});if(!h&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return h}}var uf=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");let uh=O.createContext(null);class up{constructor(e,t){this.matchers=Object.entries(t.dynamicRoutes).filter(([t,r])=>r.fallbackSourceRoute===e||t===e).map(([e,t])=>({source:e,route:t}))}match(e){for(let t of this.matchers)if(t.matcher||(t.matcher=oK(oH(t.source))),t.matcher(e))return{source:t.source,route:t.route};return null}}class um{constructor(e){this.suffix=e}match(e){return!!e.endsWith(this.suffix)}normalize(e,t){return t||this.match(e)?e.substring(0,e.length-this.suffix.length):e}}class ug extends um{constructor(){super(ef.RM)}}let uy=RegExp(`^(/.*)${oF(ef.mH)}(/.*)${oF(ef.tz)}$`);class uv{match(e){return uy.test(e)}extract(e){let t=e.match(uy);return t?{originalPathname:t[1],segmentPath:t[2]}:null}normalize(e){let t=this.extract(e);return t?t.originalPathname:e}}{r=a("(react-server)/./dist/esm/server/route-modules/app-page/vendored/rsc/entrypoints.js"),n=a("./dist/esm/server/route-modules/app-page/vendored/ssr/entrypoints.js");let{registerServerReact:e,registerClientReact:t}=a("../../runtime-reacts.external");e(r.React),t(n.React)}class ub extends ud{match(e,t){let r=this.matchers.get(t);return r||(r=new up(this.definition.pathname,t),this.matchers.set(t,r)),r.match(e)}normalizeUrl(e,t){if(this.normalizers.segmentPrefetchRSC.match(t.pathname||"/")){let r=this.normalizers.segmentPrefetchRSC.extract(t.pathname||"/");if(!r)return!1;let{originalPathname:n,segmentPath:a}=r;t.pathname=n,e.headers[z.hY]="1",e.headers[z._V]="1",e.headers[z.qm]=a,C(e,"isRSCRequest",!0),C(e,"isPrefetchRSCRequest",!0),C(e,"segmentPrefetchRSCRequest",a)}else this.normalizers.rsc.match(t.pathname||"/")?(t.pathname=this.normalizers.rsc.normalize(t.pathname||"/",!0),e.headers[z.hY]="1",C(e,"isRSCRequest",!0)):super.normalizeUrl(e,t);!function(e,t){if(!e.url)return;let r=o1(e.url);r&&(r.pathname=t,e.url=o3(r))}(e,t.pathname||"/")}render(e,t,r){return lC(e,t,r.page,r.query,r.fallbackRouteParams,r.renderOpts,r.serverComponentsHmrCache,r.sharedContext)}pathCouldBeIntercepted(e,t){return(0,nS.m1)(e)||t.some(t=>t.test(e))}getVaryHeader(e,t){let r=`${z.hY}, ${z.B}, ${z._V}, ${z.qm}`;return this.pathCouldBeIntercepted(e,t)?`${r}, ${z.kO}`:r}constructor(...e){super(...e),this.matchers=new WeakMap,this.normalizers={rsc:new ug,segmentPrefetchRSC:new uv}}}let uw={"react-rsc":r,"react-ssr":n,contexts:k},uS=ub})(),module.exports=i})(); +//# sourceMappingURL=app-page-turbo.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js b/cli/app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js new file mode 100644 index 00000000000..dc3f0c0377a --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/next-server/app-page.runtime.prod.js @@ -0,0 +1,54 @@ +(()=>{var e,t,r={"./dist/build/webpack/alias/react-dom-server.js"(e,t,r){"use strict";var n;function a(){throw Object.defineProperty(Error("Internal Error: do not use legacy react-dom/server APIs. If you encountered this error, please open an issue on the Next.js repo."),"__NEXT_ERROR_CODE",{value:"E1021",enumerable:!1,configurable:!0})}t.version=(n=r("./dist/compiled/react-dom/cjs/react-dom-server.node.production.js")).version,t.renderToReadableStream=n.renderToReadableStream,t.renderToString=a,t.renderToStaticMarkup=a,n.resume&&(t.resume=n.resume)},"./dist/compiled/@edge-runtime/cookies/index.js"(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,i={},s={RequestCookies:()=>h,ResponseCookies:()=>p,parseCookie:()=>u,parseSetCookie:()=>c,stringifyCookie:()=>l};for(var o in s)t(i,o,{get:s[o],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function u(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function c(e){if(!e)return;let[[t,r],...n]=u(e),{domain:a,expires:i,httponly:s,maxage:o,path:l,samesite:c,secure:h,partitioned:p,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,y,v={name:t,value:decodeURIComponent(r),domain:a,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...c&&{sameSite:d.includes(g=(g=c).toLowerCase())?g:void 0},...h&&{secure:!0},...m&&{priority:f.includes(y=(y=m).toLowerCase())?y:void 0},...p&&{partitioned:!0}};let e={};for(let t in v)v[t]&&(e[t]=v[t]);return e}}e.exports=((e,i,s,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let l of n(i))a.call(e,l)||l===s||t(e,l,{get:()=>i[l],enumerable:!(o=r(i,l))||o.enumerable});return e})(t({},"__esModule",{value:!0}),i);var d=["strict","lax","none"],f=["low","medium","high"],h=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of u(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},p=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=c(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},"./dist/compiled/busboy/index.js"(e,t,r){!function(){"use strict";var t={900:function(e,t,r){let{parseContentType:n}=r(318),a=[r(104),r(506)].filter(function(e){return"function"==typeof e.detect});e.exports=e=>{if(("object"!=typeof e||null===e)&&(e={}),"object"!=typeof e.headers||null===e.headers||"string"!=typeof e.headers["content-type"])throw Error("Missing Content-Type");var t=e;let r=t.headers,i=n(r["content-type"]);if(!i)throw Error("Malformed content type");for(let e of a){if(!e.detect(i))continue;let n={limits:t.limits,headers:r,conType:i,highWaterMark:void 0,fileHwm:void 0,defCharset:void 0,defParamCharset:void 0,preservePath:!1};return t.highWaterMark&&(n.highWaterMark=t.highWaterMark),t.fileHwm&&(n.fileHwm=t.fileHwm),n.defCharset=t.defCharset,n.defParamCharset=t.defParamCharset,n.preservePath=t.preservePath,new e(n)}throw Error(`Unsupported content type: ${r["content-type"]}`)}},104:function(e,t,r){let{Readable:n,Writable:a}=r(781),i=r(542),{basename:s,convertToUTF8:o,getDecoder:l,parseContentType:u,parseDisposition:c}=r(318),d=Buffer.from("\r\n"),f=Buffer.from("\r"),h=Buffer.from("-");function p(){}class m{constructor(e){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=0,this.name="",this.value="",this.crlf=0,this.cb=e}reset(){this.header=Object.create(null),this.pairCount=0,this.byteCount=0,this.state=0,this.name="",this.value="",this.crlf=0}push(e,t,r){let n=t;for(;t{if(this._read(),0==--t._fileEndsLeft&&t._finalcb){let e=t._finalcb;t._finalcb=null,process.nextTick(e)}})}_read(e){let t=this._readcb;t&&(this._readcb=null,t())}}let y={push:(e,t)=>{},destroy:()=>{}};function v(e,t){return e}function b(e,t,r){if(r)return t(r);t(r=w(e))}function w(e){if(e._hparser)return Error("Malformed part header");let t=e._fileStream;if(t&&(e._fileStream=null,t.destroy(Error("Unexpected end of file"))),!e._complete)return Error("Unexpected end of form")}let S=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],_=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1];e.exports=class extends a{constructor(e){let t,r,n,a,b;if(super({autoDestroy:!0,emitClose:!0,highWaterMark:"number"==typeof e.highWaterMark?e.highWaterMark:void 0}),!e.conType.params||"string"!=typeof e.conType.params.boundary)throw Error("Multipart: Boundary not found");const w=e.conType.params.boundary,S="string"==typeof e.defParamCharset&&e.defParamCharset?l(e.defParamCharset):v,_=e.defCharset||"utf8",E=e.preservePath,R={autoDestroy:!0,emitClose:!0,highWaterMark:"number"==typeof e.fileHwm?e.fileHwm:void 0},k=e.limits,x=k&&"number"==typeof k.fieldSize?k.fieldSize:1048576,P=k&&"number"==typeof k.fileSize?k.fileSize:1/0,C=k&&"number"==typeof k.files?k.files:1/0,T=k&&"number"==typeof k.fields?k.fields:1/0,A=k&&"number"==typeof k.parts?k.parts:1/0;let O=-1,j=0,$=0,I=!1;this._fileEndsLeft=0,this._fileStream=void 0,this._complete=!1;let D=0,N=0,M=!1,L=!1,U=!1;this._hparser=null;const F=new m(e=>{let i;if(this._hparser=null,I=!1,a="text/plain",r=_,n="7bit",b=void 0,M=!1,!e["content-disposition"]){I=!0;return}let o=c(e["content-disposition"][0],S);if(!o||"form-data"!==o.type){I=!0;return}if(o.params&&(o.params.name&&(b=o.params.name),o.params["filename*"]?i=o.params["filename*"]:o.params.filename&&(i=o.params.filename),void 0===i||E||(i=s(i))),e["content-type"]){let t=u(e["content-type"][0]);t&&(a=`${t.type}/${t.subtype}`,t.params&&"string"==typeof t.params.charset&&(r=t.params.charset.toLowerCase()))}if(e["content-transfer-encoding"]&&(n=e["content-transfer-encoding"][0].toLowerCase()),"application/octet-stream"===a||void 0!==i){if($===C){L||(L=!0,this.emit("filesLimit")),I=!0;return}if(++$,0===this.listenerCount("file")){I=!0;return}D=0,this._fileStream=new g(R,this),++this._fileEndsLeft,this.emit("file",b,this._fileStream,{filename:i,encoding:n,mimeType:a})}else{if(j===T){U||(U=!0,this.emit("fieldsLimit")),I=!0;return}if(++j,0===this.listenerCount("field")){I=!0;return}t=[],N=0}});let H=0;const B=(e,i,s,l,u)=>{for(;i;){if(null!==this._hparser){let e=this._hparser.push(i,s,l);if(-1===e){this._hparser=null,F.reset(),this.emit("error",Error("Malformed part header"));break}s=e}if(s===l)break;if(0!==H){if(1===H){switch(i[s]){case 45:H=2,++s;break;case 13:H=3,++s;break;default:H=0}if(s===l)return}if(2===H){if(H=0,45===i[s]){this._complete=!0,this._bparser=y;return}let e=this._writecb;this._writecb=p,B(!1,h,0,1,!1),this._writecb=e}else if(3===H){if(H=0,10===i[s]){if(++s,O>=A||(this._hparser=F,s===l))break;continue}{let e=this._writecb;this._writecb=p,B(!1,f,0,1,!1),this._writecb=e}}}if(!I){if(this._fileStream){let e,t=Math.min(l-s,P-D);u?e=i.slice(s,s+t):(e=Buffer.allocUnsafe(t),i.copy(e,0,s,s+t)),(D+=e.length)===P?(e.length>0&&this._fileStream.push(e),this._fileStream.emit("limit"),this._fileStream.truncated=!0,I=!0):this._fileStream.push(e)||(this._writecb&&(this._fileStream._readcb=this._writecb),this._writecb=null)}else if(void 0!==t){let e,r=Math.min(l-s,x-N);u?e=i.slice(s,s+r):(e=Buffer.allocUnsafe(r),i.copy(e,0,s,s+r)),N+=r,t.push(e),N===x&&(I=!0,M=!0)}}break}if(e){if(H=1,this._fileStream)this._fileStream.push(null),this._fileStream=null;else if(void 0!==t){let e;switch(t.length){case 0:e="";break;case 1:e=o(t[0],r,0);break;default:e=o(Buffer.concat(t,N),r,0)}t=void 0,N=0,this.emit("field",b,e,{nameTruncated:!1,valueTruncated:M,encoding:n,mimeType:a})}++O===A&&this.emit("partsLimit")}};this._bparser=new i(`\r +--${w}`,B),this._writecb=null,this._finalcb=null,this.write(d)}static detect(e){return"multipart"===e.type&&"form-data"===e.subtype}_write(e,t,r){let n;this._writecb=r,this._bparser.push(e,0),this._writecb&&(n=this._writecb,this._writecb=null,n&&n())}_destroy(e,t){this._hparser=null,this._bparser=y,e||(e=w(this));let r=this._fileStream;r&&(this._fileStream=null,r.destroy(e)),t(e)}_final(e){if(this._bparser.destroy(),!this._complete)return e(Error("Unexpected end of form"));this._fileEndsLeft?this._finalcb=b.bind(null,this,e):b(this,e)}}},506:function(e,t,r){let{Writable:n}=r(781),{getDecoder:a}=r(318);function i(e,t,r,n){if(r>=n)return n;if(-1===e._byte){let a=l[t[r++]];if(-1===a)return -1;if(a>=8&&(e._encode=2),re.fieldNameSizeLimit){for(!e._keyTrunc&&e._lastPose.fieldSizeLimit){for(!e._valTrunc&&e._lastPos=this.fieldsLimit)return r();let n=0,a=e.length;if(this._lastPos=0,-2!==this._byte){if(-1===(n=i(this,e,n,a)))return r(Error("Malformed urlencoded form"));if(n>=a)return r();this._inKey?++this._bytesKey:++this._bytesVal}e:for(;n0&&this.emit("field",this._key,"",{nameTruncated:this._keyTrunc,valueTruncated:!1,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue;case 43:this._lastPos=a)return r();++this._bytesKey,n=s(this,e,n,a);continue}++n,++this._bytesKey,n=s(this,e,n,a)}this._lastPos0||this._bytesVal>0)&&this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"}),this._key="",this._val="",this._keyTrunc=!1,this._valTrunc=!1,this._bytesKey=0,this._bytesVal=0,++this._fields>=this.fieldsLimit)return this.emit("fieldsLimit"),r();continue e;case 43:this._lastPos=a)return r();++this._bytesVal,n=o(this,e,n,a);continue}++n,++this._bytesVal,n=o(this,e,n,a)}this._lastPos0||this._bytesVal>0)&&(this._inKey?this._key=this._decoder(this._key,this._encode):this._val=this._decoder(this._val,this._encode),this.emit("field",this._key,this._val,{nameTruncated:this._keyTrunc,valueTruncated:this._valTrunc,encoding:this.charset,mimeType:"text/plain"})),e()}}},318:function(e){function t(e){let t;for(;;)switch(e){case"utf-8":case"utf8":return r.utf8;case"latin1":case"ascii":case"us-ascii":case"iso-8859-1":case"iso8859-1":case"iso88591":case"iso_8859-1":case"windows-1252":case"iso_8859-1:1987":case"cp1252":case"x-cp1252":return r.latin1;case"utf16le":case"utf-16le":case"ucs2":case"ucs-2":return r.utf16le;case"base64":return r.base64;default:if(void 0===t){t=!0,e=e.toLowerCase();continue}return r.other.bind(e)}}let r={utf8:(e,t)=>{if(0===e.length)return"";if("string"==typeof e){if(t<2)return e;e=Buffer.from(e,"latin1")}return e.utf8Slice(0,e.length)},latin1:(e,t)=>0===e.length?"":"string"==typeof e?e:e.latin1Slice(0,e.length),utf16le:(e,t)=>0===e.length?"":("string"==typeof e&&(e=Buffer.from(e,"latin1")),e.ucs2Slice(0,e.length)),base64:(e,t)=>0===e.length?"":("string"==typeof e&&(e=Buffer.from(e,"latin1")),e.base64Slice(0,e.length)),other:(e,t)=>{if(0===e.length)return"";"string"==typeof e&&(e=Buffer.from(e,"latin1"));try{return new TextDecoder(this).decode(e)}catch{}}};function n(e,r,n){let a=t(r);if(a)return a(e,n)}let a=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],i=[0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1],s=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,0,0,0,0,1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],o=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,0,0,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0],l=[-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,10,11,12,13,14,15,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1,-1];e.exports={basename:function(e){if("string"!=typeof e)return"";for(let t=e.length-1;t>=0;--t)switch(e.charCodeAt(t)){case 47:case 92:return".."===(e=e.slice(t+1))||"."===e?"":e}return".."===e||"."===e?"":e},convertToUTF8:n,getDecoder:t,parseContentType:function(e){if(0===e.length)return;let t=Object.create(null),r=0;for(;r=128?a=2:0===a&&(a=1);continue}return}break}}if(p+=e.slice(d,t),void 0===(p=n(p,f,a)))return}else{if(++t===e.length)return;if(34===e.charCodeAt(t)){d=++t;let r=!1;for(;t1)for(let t=0;t-e._lookbehindSize?e._cb(!0,f,0,e._lookbehindSize+o,!1):e._cb(!0,void 0,0,0,!0),e._bufPos=o+s;o+=d[a]}for(;o<0&&!r(e,n,o,a-o);)++o;if(o<0){let t=e._lookbehindSize+o;return t>0&&e._cb(!1,f,0,t,!1),e._lookbehindSize-=t,f.copy(f,0,t,e._lookbehindSize),f.set(n,e._lookbehindSize),e._lookbehindSize+=a,e._bufPos=a,a}e._cb(!1,f,0,e._lookbehindSize,!1),e._lookbehindSize=0}o+=e._bufPos;let h=i[0];for(;o<=c;){let r=n[o+l];if(r===u&&n[o]===h&&t(i,0,n,o,l))return++e.matches,o>0?e._cb(!0,n,e._bufPos,o,!0):e._cb(!0,void 0,0,0,!0),e._bufPos=o+s;o+=d[r]}for(;o0&&e._cb(!1,n,e._bufPos,o{"use strict";var t={56:e=>{e.exports=function(e,t){return"string"==typeof e?s(e):"number"==typeof e?i(e,t):null},e.exports.format=i,e.exports.parse=s;var t=/\B(?=(\d{3})+(?!\d))/g,r=/(?:\.0*|(\.[^0]+)0+)$/,n={b:1,kb:1024,mb:1048576,gb:0x40000000,tb:0x10000000000,pb:0x4000000000000},a=/^((-|\+)?(\d+(?:\.\d+)?)) *(kb|mb|gb|tb|pb)$/i;function i(e,a){if(!Number.isFinite(e))return null;var i=Math.abs(e),s=a&&a.thousandsSeparator||"",o=a&&a.unitSeparator||"",l=a&&void 0!==a.decimalPlaces?a.decimalPlaces:2,u=!!(a&&a.fixedDecimals),c=a&&a.unit||"";c&&n[c.toLowerCase()]||(c=i>=n.pb?"PB":i>=n.tb?"TB":i>=n.gb?"GB":i>=n.mb?"MB":i>=n.kb?"KB":"B");var d=(e/n[c.toLowerCase()]).toFixed(l);return u||(d=d.replace(r,"$1")),s&&(d=d.split(".").map(function(e,r){return 0===r?e.replace(t,s):e}).join(".")),d+o+c}function s(e){if("number"==typeof e&&!isNaN(e))return e;if("string"!=typeof e)return null;var t,r=a.exec(e),i="b";return r?(t=parseFloat(r[1]),i=r[4].toLowerCase()):(t=parseInt(e,10),i="b"),Math.floor(n[i]*t)}}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}},s=!0;try{t[e](i,i.exports,n),s=!1}finally{s&&delete r[e]}return i.exports}n.ab=__dirname+"/",e.exports=n(56)})()},"./dist/compiled/cookie/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t,r,n,a,i={};i.parse=function(e,r){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var a={},i=e.split(n),s=(r||{}).decode||t,o=0;o{"use strict";let t,r,n,a,i;var s={993:e=>{var t=Object.prototype.hasOwnProperty,r="~";function n(){}function a(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,s){if("function"!=typeof n)throw TypeError("The listener must be a function");var o=new a(n,i||e,s),l=r?r+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),o.prototype.eventNames=function(){var e,n,a=[];if(0===this._eventsCount)return a;for(n in e=this._events)t.call(e,n)&&a.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,s=Array(i);a{e.exports=(e,t)=>(t=t||(()=>{}),e.then(e=>new Promise(e=>{e(t())}).then(()=>e),e=>new Promise(e=>{e(t())}).then(()=>{throw e})))},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){let n=0,a=e.length;for(;a>0;){let i=a/2|0,s=n+i;0>=r(e[s],t)?(n=++s,a-=i+1):a=i}return n}},821:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let n=r(574);t.default=class{constructor(){this._queue=[]}enqueue(e,t){let r={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)return void this._queue.push(r);let a=n.default(this._queue,r,(e,t)=>t.priority-e.priority);this._queue.splice(a,0,r)}dequeue(){let e=this._queue.shift();return null==e?void 0:e.run}filter(e){return this._queue.filter(t=>t.priority===e.priority).map(e=>e.run)}get size(){return this._queue.length}}},816:(e,t,r)=>{let n=r(213);class a extends Error{constructor(e){super(e),this.name="TimeoutError"}}let i=(e,t,r)=>new Promise((i,s)=>{if("number"!=typeof t||t<0)throw TypeError("Expected `milliseconds` to be a positive number");if(t===1/0)return void i(e);let o=setTimeout(()=>{if("function"==typeof r){try{i(r())}catch(e){s(e)}return}let n="string"==typeof r?r:`Promise timed out after ${t} milliseconds`,o=r instanceof Error?r:new a(n);"function"==typeof e.cancel&&e.cancel(),s(o)},t);n(e.then(i,s),()=>{clearTimeout(o)})});e.exports=i,e.exports.default=i,e.exports.TimeoutError=a}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},n=!0;try{s[e](r,r.exports,l),n=!1}finally{n&&delete o[e]}return r.exports}l.ab=__dirname+"/";var u={};Object.defineProperty(u,"__esModule",{value:!0}),t=l(993),r=l(816),n=l(821),a=()=>{},i=new r.TimeoutError,u.default=class extends t{constructor(e){var t,r,i,s;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=a,this._resolveIdle=a,!("number"==typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:n.default},e)).intervalCap&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(r=null==(t=e.intervalCap)?void 0:t.toString())?r:""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(s=null==(i=e.interval)?void 0:i.toString())?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=!0===e.throwOnTimeout,this._isPaused=!1===e.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},t)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let t=this._queue.dequeue();return!!t&&(this.emit("active"),t(),e&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!("number"==typeof e&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,t={}){return new Promise((n,a)=>{let s=async()=>{this._pendingCount++,this._intervalCount++;try{let s=void 0===this._timeout&&void 0===t.timeout?e():r.default(Promise.resolve(e()),void 0===t.timeout?this._timeout:t.timeout,()=>{(void 0===t.throwOnTimeout?this._throwOnTimeout:t.throwOnTimeout)&&a(i)});n(await s)}catch(e){a(e)}this._next()};this._queue.enqueue(s,t),this._tryToStartAnother(),this.emit("add")})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(e=>{let t=this._resolveEmpty;this._resolveEmpty=()=>{t(),e()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(e=>{let t=this._resolveIdle;this._resolveIdle=()=>{t(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}},e.exports=u})()},"./dist/compiled/path-to-regexp/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s){a+=e[i++];continue}break}if(!a)throw TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:a}),r=i;continue}if("("===n){var o=1,l="",i=r+1;if("?"===e[i])throw TypeError('Pattern cannot start with "?" at '.concat(i));for(;i-1)return!0}return!1},g=function(e){var t=l[l.length-1],r=e||(t&&"string"==typeof t?t:"");if(t&&!r)throw TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!r||m(r)?"[^".concat(a(o),"]+?"):"(?:(?!".concat(a(r),")[^").concat(a(o),"])+?")};c-1:void 0===S;s||(m+="(?:".concat(p,"(?=").concat(h,"))?")),_||(m+="(?=".concat(p,"|").concat(h,")"))}return new RegExp(m,i(r))}function o(t,r,n){if(t instanceof RegExp){var a;if(!r)return t;for(var l=/\((?:\?<(.*?)>)?(?!\?)/g,u=0,c=l.exec(t.source);c;)r.push({name:c[1]||u++,prefix:"",suffix:"",modifier:"",pattern:""}),c=l.exec(t.source);return t}return Array.isArray(t)?(a=t.map(function(e){return o(e,r,n).source}),new RegExp("(?:".concat(a.join("|"),")"),i(n))):s(e(t,n),r,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.pathToRegexp=t.tokensToRegexp=t.regexpToFunction=t.match=t.tokensToFunction=t.compile=t.parse=void 0,t.parse=e,t.compile=function(t,n){return r(e(t,n),n)},t.tokensToFunction=r,t.match=function(e,t){var r=[];return n(o(e,r,t),r,t)},t.regexpToFunction=n,t.tokensToRegexp=s,t.pathToRegexp=o})(),e.exports=t})()},"./dist/compiled/react-dom/cjs/react-dom-server.node.production.js"(e,t,r){"use strict";var n,a,i=r("util"),s=r("crypto"),o=r("async_hooks"),l=r("./dist/compiled/react/index.js"),u=r("./dist/compiled/react-dom/index.js"),c=r("stream"),d=Symbol.for("react.transitional.element"),f=Symbol.for("react.portal"),h=Symbol.for("react.fragment"),p=Symbol.for("react.strict_mode"),m=Symbol.for("react.profiler"),g=Symbol.for("react.consumer"),y=Symbol.for("react.context"),v=Symbol.for("react.forward_ref"),b=Symbol.for("react.suspense"),w=Symbol.for("react.suspense_list"),S=Symbol.for("react.memo"),_=Symbol.for("react.lazy"),E=Symbol.for("react.scope"),R=Symbol.for("react.activity"),k=Symbol.for("react.legacy_hidden"),x=Symbol.for("react.memo_cache_sentinel"),P=Symbol.for("react.view_transition"),C=Symbol.iterator;function T(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=C&&e[C]||e["@@iterator"])?e:null}var A=Symbol.for("react.optimistic_key"),O=Array.isArray,j=queueMicrotask;function $(e){"function"==typeof e.flush&&e.flush()}var I=null,D=0,N=!0;function M(e,t){if("string"==typeof t){if(0!==t.length)if(4096<3*t.length)0]/;function Z(e){if("boolean"==typeof e||"number"==typeof e||"bigint"==typeof e)return""+e;e=""+e;var t=Q.exec(e);if(t){var r,n="",a=0;for(r=t.index;r; rel=dns-prefetch",n=0<=(a.remainingCapacity-=r.length+2)),n?(i.resets.dns[e]=null,a.preconnects&&(a.preconnects+=", "),a.preconnects+=r):(e5(r=[],{href:e,rel:"dns-prefetch"}),i.preconnects.add(r))),aU(t))}else eo.D(e)},C:function(e,t){var r=nY();if(r){var n=r.resumableState,a=r.renderState;if("string"==typeof e&&e){var i,s,o="use-credentials"===t?"credentials":"string"==typeof t?"anonymous":"default";n.connectResources[o].hasOwnProperty(e)||(n.connectResources[o][e]=null,(s=(n=a.headers)&&0; rel=preconnect","string"==typeof t&&(s+='; crossorigin="'+(""+t).replace(rB,rz)+'"'),i=s,s=0<=(n.remainingCapacity-=i.length+2)),s?(a.resets.connect[o][e]=null,n.preconnects&&(n.preconnects+=", "),n.preconnects+=i):(e5(o=[],{rel:"preconnect",href:e,crossOrigin:t}),a.preconnects.add(o))),aU(r)}}else eo.C(e,t)},L:function(e,t,r){var n=nY();if(n){var a=n.resumableState,i=n.renderState;if(t&&e){switch(t){case"image":if(r)var s,o=r.imageSrcSet,l=r.imageSizes,u=r.fetchPriority;var c=o?o+"\n"+(l||""):e;if(a.imageResources.hasOwnProperty(c))return;a.imageResources[c]=el,(a=i.headers)&&0');var ec=B(""),ef=B('`,l=!1,new TransformStream({transform(e,t){if(l)return void t.enqueue(e);let r=B(e,H.CLOSED.HEAD);if(-1===r)return void t.enqueue(e);let n=G.encode(o),a=new Uint8Array(e.length+n.length);a.set(e.slice(0,r)),a.set(n,r),a.set(e.slice(r),r+n.length),t.enqueue(a),l=!0}})),er(n),ea(t,!0),es()])}async function eh(e,{delayDataUntilFirstHtmlChunk:t,inlinedDataStream:r,getServerInsertedHTML:n,getServerInsertedMetadata:a,deploymentId:i}){return el(e,[et(),i?eo(i):null,en(n),er(a),ea(r,t),es()])}var ep=a("./dist/esm/lib/constants.js");function em(e){for(let t of[ep.AA,ep.h])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function eg(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}function ey(e){return e.replace(/\/$/,"")||"/"}function ev(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function eb(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=ev(e);return`${t}${r}${n}${a}`}function ew(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=ev(e);return`${r}${t}${n}${a}`}function eS(e,t){if("string"!=typeof e)return!1;let{pathname:r}=ev(e);return r===t||r.startsWith(t+"/")}function e_(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}let eE=new WeakMap;function eR(e,t){let r;if(!t)return{pathname:e};let n=eE.get(t);n||(n=t.map(e=>e.toLowerCase()),eE.set(t,n));let a=e.split("/",2);if(!a[1])return{pathname:e};let i=a[1].toLowerCase(),s=n.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function ek(e,t){if(!eS(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}let ex=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function eP(e,t){let r=new URL(String(e),t&&String(t));return ex.test(r.hostname)&&(r.hostname="localhost"),r}let eC=Symbol("NextURLInternal");class eT{constructor(e,t,r){let n,a;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,a=r||{}):a=r||t||{},this[eC]={url:eP(e,n??a.base),options:a,basePath:""},this.analyze()}analyze(){var e,t,r,n,a;let i=function(e,t){let{basePath:r,i18n:n,trailingSlash:a}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):a};r&&eS(i.pathname,r)&&(i.pathname=ek(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):eR(i.pathname,n.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):eR(s,n.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[eC].url.pathname,{nextConfig:this[eC].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[eC].options.i18nProvider}),s=e_(this[eC].url,this[eC].options.headers);this[eC].domainLocale=this[eC].options.i18nProvider?this[eC].options.i18nProvider.detectDomainLocale(s):eg(null==(t=this[eC].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[eC].domainLocale)?void 0:r.defaultLocale)||(null==(a=this[eC].options.nextConfig)||null==(n=a.i18n)?void 0:n.defaultLocale);this[eC].url.pathname=i.pathname,this[eC].defaultLocale=o,this[eC].basePath=i.basePath??"",this[eC].buildId=i.buildId,this[eC].locale=i.locale??o,this[eC].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let a=e.toLowerCase();return!n&&(eS(a,"/api")||eS(a,`/${t.toLowerCase()}`))?e:eb(e,`/${t}`)}((e={basePath:this[eC].basePath,buildId:this[eC].buildId,defaultLocale:this[eC].options.forceLocale?void 0:this[eC].defaultLocale,locale:this[eC].locale,pathname:this[eC].url.pathname,trailingSlash:this[eC].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=ey(t)),e.buildId&&(t=ew(eb(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=eb(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:ew(t,"/"):ey(t)}formatSearch(){return this[eC].url.search}get buildId(){return this[eC].buildId}set buildId(e){this[eC].buildId=e}get locale(){return this[eC].locale??""}set locale(e){var t,r;if(!this[eC].locale||!(null==(r=this[eC].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[eC].locale=e}get defaultLocale(){return this[eC].defaultLocale}get domainLocale(){return this[eC].domainLocale}get searchParams(){return this[eC].url.searchParams}get host(){return this[eC].url.host}set host(e){this[eC].url.host=e}get hostname(){return this[eC].url.hostname}set hostname(e){this[eC].url.hostname=e}get port(){return this[eC].url.port}set port(e){this[eC].url.port=e}get protocol(){return this[eC].url.protocol}set protocol(e){this[eC].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[eC].url=eP(e),this.analyze()}get origin(){return this[eC].url.origin}get pathname(){return this[eC].url.pathname}set pathname(e){this[eC].url.pathname=e}get hash(){return this[eC].url.hash}set hash(e){this[eC].url.hash=e}get search(){return this[eC].url.search}set search(e){this[eC].url.search=e}get password(){return this[eC].url.password}set password(e){this[eC].url.password=e}get username(){return this[eC].url.username}set username(e){this[eC].url.username=e}get basePath(){return this[eC].basePath}set basePath(e){this[eC].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new eT(String(this),this[eC].options)}}var eA=a("./dist/esm/server/web/spec-extension/cookies.js");Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let eO="ResponseAborted";class ej extends Error{constructor(...e){super(...e),this.name=eO}}let e$=0,eI=0,eD=0;function eN(e={}){let t=0===e$?void 0:{clientComponentLoadStart:e$,clientComponentLoadTimes:eI,clientComponentLoadCount:eD};return e.reset&&(e$=0,eI=0,eD=0),t}function eM(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===eO}async function eL(e,t,r){try{let n,{errored:a,destroyed:i}=t;if(a||i)return;let s=(n=new AbortController,t.once("close",()=>{t.writableFinished||n.abort(new ej)}),n),o=function(e,t){let r=!1,n=new N;function a(){n.resolve()}e.on("drain",a),e.once("close",()=>{e.off("drain",a),n.resolve()});let i=new N;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=eN();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,I.getTracer)().trace(D.Fx.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await n.promise,n=new N)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(o,{signal:s.signal})}catch(e){if(eM(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}var eU=a("./dist/esm/shared/lib/invariant-error.js");class eF{static #e=this.EMPTY=new eF(null,{metadata:{},contentType:null});static fromStatic(e,t){return new eF(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new eU.z("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return ee(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?K(this.response):Buffer.isBuffer(this.response)?Y(this.response):Array.isArray(this.response)?J(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[K(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[Y(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(eM(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await eL(this.readable,e,this.waitUntil)}}var eH=a("./dist/build/webpack/alias/react-dom-server.js"),eB=a("./dist/compiled/react-dom/static.node.js");let ez={"&":"\\u0026",">":"\\u003e","<":"\\u003c","\u2028":"\\u2028","\u2029":"\\u2029"},eq=/[&><\u2028\u2029]/g;function eX(e){return e.replace(eq,e=>ez[e])}var eV=a("../../app-render/work-unit-async-storage.external"),eW=a("./dist/esm/shared/lib/router/utils/app-paths.js");let eG=Symbol.for("next.server.manifests"),eJ=globalThis;function eK(){let e=eJ[eG];if(!e)throw Object.defineProperty(new eU.z("The manifests singleton was not initialized."),"__NEXT_ERROR_CODE",{value:"E950",enumerable:!1,configurable:!0});return e}function eY(){return eK().proxiedClientReferenceManifest}function eQ(){return eK().serverActionsManifest}function eZ(){return eK().serverModuleMap}let e0=new WeakMap,e1=new TextEncoder,e2;function e3(e,t,r,n){let i,s=e0.get(e);if(s)return s;let{moduleLoading:o,edgeSSRModuleMapping:l,ssrModuleMapping:u}=eY();if(e instanceof ReadableStream){if(t&&!(t instanceof ReadableStream))throw Object.defineProperty(new eU.z("Expected debug stream to be a ReadableStream"),"__NEXT_ERROR_CODE",{value:"E939",enumerable:!1,configurable:!0});let{createFromReadableStream:s}=a("./dist/compiled/react-server-dom-webpack/client.node.js");i=s(e,{findSourceMapURL:e2,serverConsumerManifest:{moduleLoading:o,moduleMap:u,serverModuleMap:null},nonce:n,debugChannel:t?{readable:t}:void 0,endTime:r})}else{let{Readable:s}=a("node:stream");if(t&&!(t instanceof s))throw Object.defineProperty(new eU.z("Expected debug stream to be a Readable"),"__NEXT_ERROR_CODE",{value:"E940",enumerable:!1,configurable:!0});let{createFromNodeStream:l}=a("./dist/compiled/react-server-dom-webpack/client.node.js");i=l(e,{moduleLoading:o,moduleMap:u,serverModuleMap:null},{findSourceMapURL:e2,nonce:n,debugChannel:t,endTime:r})}{let t=eV.workUnitAsyncStorage.getStore();if(!t)throw Object.defineProperty(new eU.z("Expected workUnitAsyncStorage to have a store."),"__NEXT_ERROR_CODE",{value:"E696",enumerable:!1,configurable:!0});switch(t.type){case"prerender-client":case"validation-client":let r=new Promise(e=>{process.nextTick(()=>{e(i)})});return e0.set(e,r),r}}return e0.set(e,i),i}function e4(e,t,r){let n;n="string"==typeof r?eX(JSON.stringify([1,r])):eX(JSON.stringify([3,"undefined"!=typeof Buffer?Buffer.from(r.buffer,r.byteOffset,r.byteLength).toString("base64"):btoa(String.fromCodePoint(...r))])),e.enqueue(e1.encode(`${t}self.__next_f.push(${n})`))}class e6{constructor(e){this._stream=e}tee(){if(null===this._stream)throw Object.defineProperty(Error("Cannot tee a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E106",enumerable:!1,configurable:!0});let e=this._stream.tee();return this._stream=e[0],e[1]}consume(){if(null===this._stream)throw Object.defineProperty(Error("Cannot consume a ReactServerResult that has already been consumed"),"__NEXT_ERROR_CODE",{value:"E470",enumerable:!1,configurable:!0});let e=this._stream;return this._stream=null,e}}async function e8(e){let t=[],{prelude:r}=await e,n=r.getReader();for(;;){let{done:e,value:r}=await n.read();if(e)return new e5(t);t.push(r)}}async function e9(e){let t=[],r=e.getReader();for(;;){let{done:e,value:n}=await r.read();if(e)break;t.push(n)}return new e5(t)}class e5{assertChunks(e){if(null===this._chunks)throw Object.defineProperty(new eU.z(`Cannot \`${e}\` on a ReactServerPrerenderResult that has already been consumed.`),"__NEXT_ERROR_CODE",{value:"E593",enumerable:!1,configurable:!0});return this._chunks}consumeChunks(e){let t=this.assertChunks(e);return this.consume(),t}consume(){this._chunks=null}constructor(e){this._chunks=e}asUnclosingStream(){return e7(this.assertChunks("asUnclosingStream()"))}consumeAsUnclosingStream(){return e7(this.consumeChunks("consumeAsUnclosingStream()"))}asStream(){return te(this.assertChunks("asStream()"))}consumeAsStream(){return te(this.consumeChunks("consumeAsStream()"))}}function e7(e){let t=0;return new ReadableStream({async pull(r){t`:"`))}catch(t){e.error(t)}},async pull(e){try{let{done:t,value:r}=await a.read();if(r)try{let a=i.decode(r,{stream:!t});e4(e,n,a)}catch{e4(e,n,r)}t&&e.close()}catch(t){e.error(t)}}})}function tn(){return new ReadableStream}function ta(e){return t=>{t.forEach((t,r)=>{e(r,t)})}}async function ti(e,t,r){return(0,eH.resume)(e,t,r)}function ts(e,t,r,n){return e.renderToReadableStream(t,r,n)}async function to(e){return ee(e)}async function tl(e,t){let r=await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,I.getTracer)().trace(D.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:{renderToReadableStream:eH.renderToReadableStream},element:e,streamOptions:t});return{stream:r,allReady:r.allReady,abort:void 0}}async function tu(e,t,r){let n=await (0,eH.resume)(e,t,r);return{stream:n,allReady:n.allReady,abort:void 0}}function tc(e){return e.prerender}let td=eB.prerender,tf=[X._A];function th(e){return{trailingSlash:e.trailingSlash,isStaticMetadataRouteFile:!1}}var tp=a("./dist/esm/server/web/spec-extension/adapters/headers.js"),tm=a("./dist/esm/server/web/spec-extension/adapters/request-cookies.js"),tg=a("./dist/esm/server/api-utils/index.js");class ty{constructor(e,t,r,n){var a;const i=e&&(0,tg.checkIsOnDemandRevalidate)(t,e).isOnDemandRevalidate,s=null==(a=r.get(tg.COOKIE_NAME_PRERENDER_BYPASS))?void 0:a.value;this._isEnabled=!!(!i&&s&&e&&s===e.previewModeId),this._previewModeId=null==e?void 0:e.previewModeId,this._mutableCookies=n}get isEnabled(){return this._isEnabled}enable(){if(!this._previewModeId)throw Object.defineProperty(Error("Invariant: previewProps missing previewModeId this should never happen"),"__NEXT_ERROR_CODE",{value:"E93",enumerable:!1,configurable:!0});this._mutableCookies.set({name:tg.COOKIE_NAME_PRERENDER_BYPASS,value:this._previewModeId,httpOnly:!0,sameSite:"none",secure:!0,path:"/"}),this._isEnabled=!0}disable(){this._mutableCookies.set({name:tg.COOKIE_NAME_PRERENDER_BYPASS,value:"",httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:new Date(0)}),this._isEnabled=!1}}function tv(e,t){if("x-middleware-set-cookie"in e.headers&&"string"==typeof e.headers["x-middleware-set-cookie"]){let r=e.headers["x-middleware-set-cookie"],n=new Headers;for(let e of function(e){var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(r))n.append("set-cookie",e);for(let e of new eA.VO(n).getAll())t.set(e)}}function tb(e,t,r,n,a,i,s,o,l,u,c){var d=e,f=t,h=r,p=n,m=a,g=i,y=u,v=s,b=o,w=l,S=c;function _(e){f&&f.setHeader("Set-Cookie",e)}let E={};return{type:"request",phase:"render",implicitTags:m,url:{pathname:h.pathname,search:h.search??""},rootParams:p,get headers(){return E.headers||(E.headers=function(e){let t=tp.o.from(e);for(let e of X.KD)t.delete(e);return tp.o.seal(t)}(d.headers)),E.headers},get cookies(){if(!E.cookies){let e=new eA.tm(tp.o.from(d.headers));tv(d,e),E.cookies=tm.Ck.seal(e)}return E.cookies},set cookies(value){E.cookies=value},get mutableCookies(){if(!E.mutableCookies){var R,k;let e,t=(R=d.headers,k=g||(f?_:void 0),e=new eA.tm(tp.o.from(R)),tm.K8.wrap(e,k));tv(d,t),E.mutableCookies=t}return E.mutableCookies},get userspaceMutableCookies(){return E.userspaceMutableCookies||(E.userspaceMutableCookies=(0,tm.EJ)(this)),E.userspaceMutableCookies},get draftMode(){return E.draftMode||(E.draftMode=new ty(v,d,this.cookies,this.mutableCookies)),E.draftMode},renderResumeDataCache:y??null,isHmrRefresh:b,serverComponentsHmrCache:w||globalThis.__serverComponentsHmrCache,fallbackParams:S}}var tw=a("./dist/esm/server/after/after-context.js");function tS(e){let t,r={then:(n,a)=>(t||(t=Promise.resolve(e())),t.then(e=>{r.value=e}).catch(()=>{}),t.then(n,a))};return r}var t_=a("./dist/esm/server/use-cache/handlers.js"),tE=a("./dist/esm/server/app-render/async-local-storage.js"),tR=a("./dist/esm/client/components/http-access-fallback/http-access-fallback.js"),tk=a("./dist/esm/client/components/redirect-error.js");function tx(e){return(0,tk.n)(e)?e.digest.split(";").slice(2,-2).join(";"):null}function tP(e){if(!(0,tk.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return e.digest.split(";",2)[1]}function tC(e){if(!(0,tk.n)(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}async function tT(e,t,r){let n=new Set;for(let t of(e=>{let t=["/layout"];if(e.startsWith("/")){let r=e.split("/");for(let e=1;ea.getExpiration(e)));return t}(a)}}a("../../app-render/action-async-storage.external").actionAsyncStorage;class tA extends eF{constructor(e,t={},r){super(e,{contentType:X.al,metadata:t,waitUntil:r})}}var tO=a("./dist/compiled/string-hash/index.js"),tj=a.n(tO);let t$=["useDeferredValue","useEffect","useEffectEvent","useImperativeHandle","useInsertionEffect","useLayoutEffect","useReducer","useRef","useState","useSyncExternalStore","useTransition","experimental_useOptimistic","useOptimistic"];function tI(e,t){if(e.message=t,e.stack){let r=e.stack.split("\n");r[0]=t,e.stack=r.join("\n")}}function tD(e){let t=e.stack;return t?t.replace(/^[^\n]*\n/,""):""}function tN(e){if("string"==typeof(null==e?void 0:e.message)){if(e.message.includes("Class extends value undefined is not a constructor or null")){let t="This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component";if(e.message.includes(t))return;tI(e,`${e.message} + +${t}`);return}if(e.message.includes("createContext is not a function"))return void tI(e,'createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component');for(let t of t$)if(RegExp(`\\b${t}\\b.*is not a function`).test(e.message))return void tI(e,`${t} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`)}}var tM=a("./dist/esm/shared/lib/lazy-dynamic/bailout-to-csr.js"),tL=a("./dist/esm/client/components/hooks-server-context.js"),tU=a("./dist/esm/client/components/is-next-router-error.js"),tF=a("./dist/esm/server/app-render/dynamic-rendering.js");function tH(e){return"object"==typeof e&&null!==e&&"name"in e&&"message"in e}function tB(e){let t;return tH(e)?e:Object.defineProperty(Error(!function(e){if("[object Object]"!==Object.prototype.toString.call(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}(e)?e+"":(t=new WeakSet,JSON.stringify(e,(e,r)=>{if("object"==typeof r&&null!==r){if(t.has(r))return"[Circular]";t.add(r)}return r}))),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}let tz=(e,t)=>"object"==typeof e&&null!==e&&"__NEXT_ERROR_CODE"in e?`${t}@${e.__NEXT_ERROR_CODE}`:t;function tq(e){return"object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message&&e.message.startsWith("This rendered a large document (>")}var tX=a("./dist/esm/server/app-render/instant-validation/instant-validation-error.js");function tV(e){if((0,tM.C)(e)||(0,tU.p)(e)||(0,tL.isDynamicServerError)(e)||(0,tF.AA)(e)||(0,tX.R)(e))return e.digest}function tW(e,t,r,n,a){return i=>{var s;if("string"==typeof i)return tj()(i).toString();if(eM(i))return;let o=tV(i);if(o)return o;if(tq(i))return void console.error(i);let l=tB(i),u=!1;if(l.digest?r.has(l.digest)&&(l=r.get(l.digest),u=!0):l.digest=tz(l,tj()(l.message+(l.stack||"")).toString()),r.has(l.digest)||r.set(l.digest,l),e&&tN(l),!(t&&(null==l||null==(s=l.message)?void 0:s.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))){let e=a??(0,I.getTracer)().getActiveScopeSpan();e&&(e.recordException(l),e.setAttribute("error.type",l.name),e.setStatus({code:I.SpanStatusCode.ERROR,message:l.message})),n(l,u)}return l.digest}}function tG(e,t,r,n,a,i){return(s,o)=>{var l;if(tq(s))return void console.error(s);let u=!0;if(n.push(s),eM(s))return;let c=tV(s);if(c)return c;let d=tB(s);if(d.digest?r.has(d.digest)&&(s=r.get(d.digest),u=!1):d.digest=tz(d,tj()(d.message+((null==o?void 0:o.componentStack)||d.stack||"")).toString()),e&&tN(d),!(t&&(null==d||null==(l=d.message)?void 0:l.includes("The specific message is omitted in production builds to avoid leaking sensitive details.")))&&u){let e=i??(0,I.getTracer)().getActiveScopeSpan();e&&(e.recordException(d),e.setAttribute("error.type",d.name),e.setStatus({code:I.SpanStatusCode.ERROR,message:d.message})),a(d,o)}return d.digest}}let tJ={catchall:"c","catchall-intercepted-(..)(..)":"ci(..)(..)","catchall-intercepted-(.)":"ci(.)","catchall-intercepted-(..)":"ci(..)","catchall-intercepted-(...)":"ci(...)","optional-catchall":"oc",dynamic:"d","dynamic-intercepted-(..)(..)":"di(..)(..)","dynamic-intercepted-(.)":"di(.)","dynamic-intercepted-(..)":"di(..)","dynamic-intercepted-(...)":"di(...)"};var tK=a("./dist/esm/shared/lib/router/utils/get-segment-param.js"),tY=a("./dist/compiled/superstruct/index.cjs"),tQ=a.n(tY);let tZ=tQ().enums(["c","ci(..)(..)","ci(.)","ci(..)","ci(...)","oc","d","di(..)(..)","di(.)","di(..)","di(...)"]),t0=tQ().union([tQ().string(),tQ().tuple([tQ().string(),tQ().string(),tZ,tQ().nullable(tQ().array(tQ().string()))])]),t1=tQ().tuple([t0,tQ().record(tQ().string(),tQ().lazy(()=>t1)),tQ().optional(tQ().nullable(tQ().tuple([tQ().string(),tQ().string()]))),tQ().optional(tQ().nullable(tQ().union([tQ().literal("refetch"),tQ().literal("inside-shared-layout"),tQ().literal("metadata-only")]))),tQ().optional(tQ().number())]);var t2=((c={})[c.HasRuntimePrefetch=1]="HasRuntimePrefetch",c[c.SubtreeHasInstant=2]="SubtreeHasInstant",c[c.SegmentHasLoadingBoundary=4]="SegmentHasLoadingBoundary",c[c.SubtreeHasLoadingBoundary=8]="SubtreeHasLoadingBoundary",c[c.IsRootLayout=16]="IsRootLayout",c[c.ParentInlinedIntoSelf=32]="ParentInlinedIntoSelf",c[c.InlinedIntoChild=64]="InlinedIntoChild",c[c.HeadInlinedIntoSelf=128]="HeadInlinedIntoSelf",c[c.HeadOutlined=256]="HeadOutlined",c),t3=a("./dist/esm/shared/lib/segment.js");async function t4(e,t,r,n,a){let[i,s,{layout:o,loading:l,page:u}]=e,c=r(e),d=c?c.treeSegment:i,f=[(0,t3.HG)(d,n),{}],h=o?await o[0]():u?await u[0]():void 0,p=h?h.unstable_instant:void 0,m=0;null!==t&&(m|=t.hints),a||void 0===o||(a=!0,m|=t2.IsRootLayout),p&&"object"==typeof p&&(m|=t2.SubtreeHasInstant,"runtime"===p.prefetch&&(m|=t2.HasRuntimePrefetch)),l&&(m|=t2.SegmentHasLoadingBoundary);let g={};for(let e in s){var y;let i=(null==t||null==(y=t.slots)?void 0:y[e])??null,o=await t4(s[e],i,r,n,a);void 0!==o[4]&&(m|=o[4]&(t2.SubtreeHasInstant|t2.SubtreeHasLoadingBoundary),o[4]&(t2.SegmentHasLoadingBoundary|t2.SubtreeHasLoadingBoundary)&&(m|=t2.SubtreeHasLoadingBoundary)),g[e]=o}return f[1]=g,0!==m&&(f[4]=m),f}async function t6(e,t,r,n){return t4(e,t,r,n,!1)}async function t8(e,t,r){return t4(e,t,r,{},!1)}let t9=["accept-encoding","keepalive","keep-alive","content-encoding","transfer-encoding","connection","expect","content-length","set-cookie"];function t5(e){let t,r;e.headers instanceof Headers?(t=e.headers.get(X.ts)??null,r=e.headers.get("content-type")):(t=e.headers[X.ts]??null,r=e.headers["content-type"]??null);let n="POST"===e.method&&"application/x-www-form-urlencoded"===r,a=!!("POST"===e.method&&(null==r?void 0:r.startsWith("multipart/form-data"))),i=void 0!==t&&"string"==typeof t&&"POST"===e.method;return{actionId:t,isURLEncodedAction:n,isMultipartAction:a,isFetchAction:i,isPossibleServerAction:!!(i||n||a)}}let{env:t7,stdout:re}=(null==(S=globalThis)?void 0:S.process)??{},rt=t7&&!t7.NO_COLOR&&(t7.FORCE_COLOR||(null==re?void 0:re.isTTY)&&!t7.CI&&"dumb"!==t7.TERM),rr=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),s=i.indexOf(t);return~s?a+rr(i,t,r,s):a+i},rn=(e,t,r=e)=>rt?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+rr(a,t,r,i)+t:e+a+t}:String,ra=rn("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");rn("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),rn("\x1b[3m","\x1b[23m"),rn("\x1b[4m","\x1b[24m"),rn("\x1b[7m","\x1b[27m"),rn("\x1b[8m","\x1b[28m"),rn("\x1b[9m","\x1b[29m"),rn("\x1b[30m","\x1b[39m");let ri=rn("\x1b[31m","\x1b[39m"),rs=rn("\x1b[32m","\x1b[39m"),ro=rn("\x1b[33m","\x1b[39m");rn("\x1b[34m","\x1b[39m");let rl=rn("\x1b[35m","\x1b[39m");rn("\x1b[38;2;173;127;168m","\x1b[39m"),rn("\x1b[36m","\x1b[39m");let ru=rn("\x1b[37m","\x1b[39m");rn("\x1b[90m","\x1b[39m"),rn("\x1b[40m","\x1b[49m"),rn("\x1b[41m","\x1b[49m"),rn("\x1b[42m","\x1b[49m"),rn("\x1b[43m","\x1b[49m"),rn("\x1b[44m","\x1b[49m"),rn("\x1b[45m","\x1b[49m"),rn("\x1b[46m","\x1b[49m"),rn("\x1b[47m","\x1b[49m");var rc=a("./dist/esm/server/lib/lru-cache.js");let rd={wait:ru(ra("○")),error:ri(ra("⨯")),warn:ro(ra("⚠")),ready:"▲",info:ru(ra(" ")),event:rs(ra("✓")),trace:rl(ra("\xbb"))},rf={log:"log",warn:"warn",error:"error"};function rh(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in rf?rf[e]:"log",n=rd[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}function rp(...e){rh("error",...e)}function rm(...e){rh("warn",...e)}let rg=new rc.q(1e4,e=>e.length);function ry(e){let t=parseInt(e.slice(0,2),16),r=t>>1&63,n=Array(6);for(let e=0;e<6;e++){let t=r>>5-e&1;n[e]=1===t}return{type:1==(t>>7&1)?"use-cache":"server-action",usedArgs:n,hasRestArgs:1==(1&t)}}new rc.q(1e4,e=>e.length);var rv=a("./dist/esm/client/components/redirect-status-code.js"),rb=a("./dist/esm/server/revalidation-utils.js");let rw=(e,t)=>{rS(e,V(t[X._V],t[X.qm],t[X.B],t[X.kO]))},rS=(e,t)=>{let r=e.search,n=(r.startsWith("?")?r.slice(1):r).split("&").filter(e=>e&&!e.startsWith(`${X._A}=`));t.length>0?n.push(`${X._A}=${t}`):n.push(`${X._A}`),e.search=n.length?`?${n.join("&")}`:""};var r_=a("./dist/esm/shared/lib/action-revalidation-kind.js");function rE(e){let t={};for(let[r,n]of Object.entries(e))void 0!==n&&(t[r]=Array.isArray(n)?n.join(", "):`${n}`);return t}function rR(e,t){let r=e.headers,n=new eA.tm(tp.o.from(r)),a=t.getHeaders(),i=new eA.VO(function(e){let t=new Headers;for(let[r,n]of Object.entries(e))for(let e of Array.isArray(n)?n:[n])void 0!==e&&("number"==typeof e&&(e=e.toString()),t.append(r,e));return t}(a)),s=((e,t)=>{for(let[r,n]of(e["content-length"]&&"0"===e["content-length"]&&delete e["content-length"],Object.entries(e)))(t.includes(r)||!(Array.isArray(n)||"string"==typeof n))&&delete e[r];return e})({...rE(r),...rE(a)},t9);return i.getAll().forEach(e=>{void 0===e.value?n.delete(e.name):n.set(e)}),s.cookie=n.toString(),delete s["transfer-encoding"],new Headers(s)}async function rk(e,t,r,n,a){var i,s,o;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let l=rR(e,t);l.set("x-action-forwarded","1");let u=(null==(i=T(e,"initProtocol"))?void 0:i.replace(/:+$/,""))||"https",c=process.env.__NEXT_PRIVATE_ORIGIN||`${u}://${r.value}`,d=new URL(`${c}${a}${n}`);try{let r;r=e.stream();let n=await fetch(d,{method:"POST",body:r,duplex:"half",headers:l,redirect:"manual",next:{internal:1}});if(null==(s=n.headers.get("content-type"))?void 0:s.startsWith(X.al)){for(let[e,r]of n.headers)t9.includes(e)||t.setHeader(e,r);return new tA(n.body)}null==(o=n.body)||o.cancel()}catch(e){console.error("failed to forward action response",e)}return eF.fromStatic("{}",ep.U2)}async function rx(e,t,r,n,a,i,s,o){t.setHeader("x-action-redirect",`${n};${a}`);let l=function(e,t,r,n){if(r.startsWith("/"))return new URL(`${e}${r}`,"http://n");if(r.startsWith(".")){let t=n||"/";t.endsWith("/")||(t+="/");let a=new URL(r,`http://n${t}`);return new URL(`${e}${a.pathname}${a.search}${a.hash}`,"http://n")}let a=new URL(r);return(null==t?void 0:t.value)!==a.host?null:a.pathname.startsWith(e)?a:null}(i,r,n,o);if(l){var u,c,d,f,h,p;if(!r)throw Object.defineProperty(Error("Invariant: Missing `host` header from a forwarded Server Actions request."),"__NEXT_ERROR_CODE",{value:"E226",enumerable:!1,configurable:!0});let n=rR(e,t);n.set(X.hY,"1");let a=(null==(u=T(e,"initProtocol"))?void 0:u.replace(/:+$/,""))||"https",i=process.env.__NEXT_PRIVATE_ORIGIN||`${a}://${r.value}`,o=new URL(`${i}${l.pathname}${l.search}`);s.pendingRevalidatedTags&&(n.set(ep.vS,s.pendingRevalidatedTags.map(e=>e.tag).join(",")),n.set(ep.c1,(null==(f=s.incrementalCache)||null==(d=f.prerenderManifest)||null==(c=d.preview)?void 0:c.previewModeId)||"")),n.delete(X.B),n.delete(X.ts);try{rw(o,{[X._V]:n.get(X._V)?"1":void 0,[X.qm]:n.get(X.qm)??void 0,[X.B]:n.get(X.B)??void 0,[X.kO]:n.get(X.kO)??void 0});let e=await fetch(o,{method:"GET",headers:n,next:{internal:1}});if(null==(h=e.headers.get("content-type"))?void 0:h.startsWith(X.al)){for(let[r,n]of e.headers)t9.includes(r)||t.setHeader(r,n);return new tA(e.body)}null==(p=e.body)||p.cancel()}catch(e){console.error("failed to get redirect response",e)}}return eF.EMPTY}function rP(e){return e.length>100?e.slice(0,100)+"...":e}async function rC({req:e,res:t,ComponentMod:r,generateFlight:n,workStore:i,requestStore:s,serverActions:o,ctx:l,metadata:u}){var c,d,f;let h,p,m,g,y,v,b=e.headers["content-type"],{page:w}=l.renderOpts,S=eZ(),{actionId:_,isMultipartAction:E,isFetchAction:R,isURLEncodedAction:k,isPossibleServerAction:x}=t5(e),P=e=>(console.warn(e),t.setHeader(X.Ic,"1"),t.setHeader("content-type","text/plain"),t.statusCode=404,{type:"done",result:eF.fromStatic("Server action not found.","text/plain")});if(!x)return null;if(k)if(R)return{type:"not-found"};else return null;if(!(Object.keys((p=eQ()).node).length>0)&&!(Object.keys(p.edge).length>0))return P(rO(_));if(i.isStaticGeneration)throw Object.defineProperty(Error("Invariant: server actions can't be handled during static rendering"),"__NEXT_ERROR_CODE",{value:"E359",enumerable:!1,configurable:!0});i.fetchCache="default-no-store";let C=e.headers.origin,A="string"==typeof C?"null"===C?"null":new URL(C).host:void 0,O=(g=(m=(c=e.headers)["x-forwarded-host"])&&Array.isArray(m)?m[0]:null==m||null==(f=m.split(","))||null==(d=f[0])?void 0:d.trim(),y=c.host,g?{type:"x-forwarded-host",value:g}:y?{type:"host",value:y}:void 0);if(A){if(!O||A!==O.value)if(((e,t=[])=>{let r=e.replace(/[A-Z]/g,e=>e.toLowerCase());return t.some(t=>!!t&&(t.replace(/[A-Z]/g,e=>e.toLowerCase())===r||function(e,t){let r=e.replace(/[A-Z]/g,e=>e.toLowerCase()),n=t.replace(/[A-Z]/g,e=>e.toLowerCase()),a=r.split("."),i=n.split(".");if(i.length<1||a.length0)return!1;return void 0!==t;default:if(t!==e)return!1}}return 0===a.length}(e,t)))})(A,null==o?void 0:o.allowedOrigins));else{O?console.error(`\`${O.type}\` header with value \`${rP(O.value)}\` does not match \`origin\` header with value \`${rP(A)}\` from a forwarded Server Actions request. Aborting the action.`):console.error("`x-forwarded-host` or `host` headers are not provided. One of these is needed to compare the `origin` header from a forwarded Server Actions request. Aborting the action.");let r=Object.defineProperty(Error("Invalid Server Actions request."),"__NEXT_ERROR_CODE",{value:"E80",enumerable:!1,configurable:!0});if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:!0,temporaryReferences:h})}}throw r}}else v="Missing `origin` header from a forwarded Server Actions request.";t.setHeader("Cache-Control","no-cache, no-store, max-age=0, must-revalidate");let{actionAsyncStorage:j}=r,$=!!e.headers["x-action-forwarded"];if(_){let r=function(e,t){var r,n;let a=null==(r=eQ().node[e])?void 0:r.workers;if(a&&!a[eS(t,"app")?t:"app"+t])return n=Object.keys(a)[0],(0,eW.Yr)(ek(n,"app"))}(_,w);if(r)return{type:"done",result:await rk(e,t,O,r,l.renderOpts.basePath)}}try{return await j.run({isAction:!0},async()=>{let u,c=[];{let{createTemporaryReferenceSet:t,decodeReply:r,decodeReplyFromBusboy:n,decodeAction:l,decodeFormState:d}=a("(react-server)/./dist/esm/server/app-render/react-server.node.js");h=t();let{PassThrough:f,Readable:p,Transform:m}=a("node:stream"),{pipeline:g}=a("node:stream/promises"),y=T(e,"actionBody"),w=y?p.from(y):e.body,k="1 MB",x=(null==o?void 0:o.bodySizeLimit)??k,C=x!==k?a("./dist/compiled/bytes/index.js").parse(x):1048576,A=0,O=new m({transform(e,t,r){if((A+=Buffer.byteLength(e,t))>C){let{ApiError:e}=a("./dist/esm/server/api-utils/index.js");r(Object.defineProperty(new e(413,`Body exceeded ${x} limit. +To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));return}r(null,e)}});if(E)if(R){try{u=rA(_,S)}catch(e){return P(e)}let t=a("./dist/compiled/busboy/index.js")({defParamCharset:"utf8",headers:e.headers,limits:{fieldSize:C}}),r=new AbortController;try{[,c]=await Promise.all([g(w,O,t,{signal:r.signal}),n(t,S,{temporaryReferences:h})])}catch(e){throw r.abort(),e}}else{let e,t=new f,r=new Request("http://localhost",{method:"POST",headers:{"Content-Type":b},body:p.toWeb(t),duplex:"half"}),n=new AbortController;try{[,e]=await Promise.all([g(w,O,t,{signal:n.signal}),r.formData()])}catch(e){throw n.abort(),e}if(!1===function(e,t){let r=!1;for(let i of e.keys())if(i.startsWith(rj)){if(i.startsWith(rI)){var n,a;if(n=i,a=t,n.length!==rI.length+42||null==a[n.slice(rI.length)])return!1;r=!0}else if(i.startsWith(r$)){let n=rj+i.slice(r$.length)+":0",a=e.getAll(n);if(1!==a.length)return!1;let s=a[0];if("string"!=typeof s||function(e,t){if(!1===e.startsWith(rD))return!0;let r=rD.length,n=r+42,a=e.slice(r,n);return 42!==a.length||'"'!==e[n]||null==t[a]}(s,t))return!1;r=!0}}return r}(e,S))throw Object.defineProperty(Error(`Failed to find Server Action. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E975",enumerable:!1,configurable:!0});let a=await l(e,S);if("function"!=typeof a)return null;{v&&rm(v);let{actionResult:t}=await rT(a,[],i,s,$),r=await d(t,e,S);return{type:"done",result:void 0,formState:r}}}else{if(!R)return null;try{u=rA(_,S)}catch(e){return P(e)}let e=new f,t=[];await Promise.all([g(w,O,e),(async()=>{for await(let r of e)t.push(Buffer.from(r))})()]);let n=Buffer.concat(t).toString("utf-8");c=await r(n,S,{temporaryReferences:h})}}let d=(await r.__next_app__.require(u))[_],{type:f}=ry(_),{actionResult:p,skipPageRendering:m}=(performance.now(),await rT(d,c,i,s,$).finally(()=>{!function(e,{workStore:t,requestStore:r}){var n;let a=+(null!=(n=t.pendingRevalidatedTags)&&!!n.some(e=>void 0===e.profile)),i=+!!(0,tm.YX)(r.mutableCookies).length;a||i?e.setHeader(X.ZL,JSON.stringify(r_.Du)):void 0!==t.pathWasRevalidated&&t.pathWasRevalidated!==r_.e9&&e.setHeader(X.ZL,JSON.stringify(t.pathWasRevalidated))}(t,{workStore:i,requestStore:s})}));if(!R)return null;{let t=!!m&&(0,rb.C)(i);return{type:"done",result:await n(e,l,s,{actionResult:Promise.resolve(p),skipPageRendering:m,temporaryReferences:h,waitUntil:!1===t?void 0:t})}}})}catch(r){if((0,tk.n)(r)){let n=tx(r),a=tP(r);if(t.statusCode=rv.Q.SeeOther,u.statusCode=rv.Q.SeeOther,R)return{type:"done",result:await rx(e,t,O,n,a,l.renderOpts.basePath,i,s.url.pathname)};return t.setHeader("Location",n),{type:"done",result:eF.EMPTY}}if((0,tR.RM)(r)){if(t.statusCode=(0,tR.jT)(r),u.statusCode=t.statusCode,R){let t=Promise.reject(r);try{await t}catch{}return{type:"done",result:await n(e,l,s,{skipPageRendering:!1,actionResult:t,temporaryReferences:h})}}return{type:"not-found"}}if(R){t.statusCode=500,u.statusCode=500;let a=Promise.reject(r);try{await a}catch{}return{type:"done",result:await n(e,l,s,{actionResult:a,skipPageRendering:void 0===i.pathWasRevalidated||i.pathWasRevalidated===r_.e9||$,temporaryReferences:h})}}throw r}}async function rT(e,t,r,n,a){n.phase="action";let i=a;if(t.length>1e3)throw Object.defineProperty(Error(`Server Action arguments list is too long (${t.length}). Maximum allowed is 1000.`),"__NEXT_ERROR_CODE",{value:"E986",enumerable:!1,configurable:!0});try{let a=await eV.workUnitAsyncStorage.run(n,()=>e.apply(null,t));return i||=void 0===r.pathWasRevalidated||r.pathWasRevalidated===r_.e9,{actionResult:a,skipPageRendering:i}}finally{!i&&(n.phase="render",n.cookies=tm.Ck.seal((0,tm.m0)(n.mutableCookies)),r.isDraftMode=n.draftMode.isEnabled,await (0,rb.C)(r))}}function rA(e,t){var r;if(!e)throw Object.defineProperty(new eU.z("Missing 'next-action' header."),"__NEXT_ERROR_CODE",{value:"E664",enumerable:!1,configurable:!0});let n=null==(r=t[e])?void 0:r.id;if(!n)throw rO(e);return n}function rO(e){return Object.defineProperty(Error(`Failed to find Server Action${e?` "${e}"`:""}. This request might be from an older or newer deployment. +Read more: https://nextjs.org/docs/messages/failed-to-find-server-action`),"__NEXT_ERROR_CODE",{value:"E974",enumerable:!1,configurable:!0})}let rj="$ACTION_",r$="$ACTION_REF_",rI="$ACTION_ID_",rD='{"id":"',rN=$.createContext(null);function rM(e){let t=(0,$.useContext)(rN);t&&t(e)}function rL(){let e=[],t=t=>{e.push(t)};return{ServerInsertedHTMLProvider:({children:e})=>(0,O.jsx)(rN.Provider,{value:t,children:e}),renderServerInsertedHTML:()=>e.map((e,t)=>(0,O.jsx)($.Fragment,{children:e()},"__next_server_inserted__"+t))}}function rU(e){return e.split("/").map(e=>encodeURIComponent(e)).join("/")}var rF=a("./dist/compiled/react-dom/index.js");function rH(e,t,r,n,a,i,s){var o;let l,u=[],c={src:"",crossOrigin:r},d=((null==(o=e.rootMainFilesTree)?void 0:o[s])||e.rootMainFiles).map(rU);if(0===d.length)throw Object.defineProperty(Error("Invariant: missing bootstrap script. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E459",enumerable:!1,configurable:!0});if(n){c.src=`${t}/_next/`+d[0]+a,c.integrity=n[d[0]];for(let e=1;e{for(let e=0;e{for(let e=0;e(0,O.jsx)("script",{...e},e.src)),o=(n||[]).map(({key:e,value:t},r)=>(0,O.jsx)("meta",{name:e,content:t},`next-trace-data-${r}`));return async function(){let e=[];for(;i"string"==typeof e?"string"==typeof t&&e===t:"string"!=typeof t&&e[0]===t[0]&&e[1]===t[1];function rq(e,t,r,n){let a=e.replace(/\.[^.]+$/,""),i=new Set,s=new Set,{entryCSSFiles:o,entryJSFiles:l}=eY(),u=o[a],c=null==l?void 0:l[a];if(u)for(let e of u)t.has(e.path)||(n&&t.add(e.path),i.add(e));if(c)for(let e of c)r.has(e)||(n&&r.add(e),s.add(e));return{styles:[...i],scripts:[...s]}}function rX(e,t,r){if(!e||!t)return null;let n=t.replace(/\.[^.]+$/,""),a=new Set,i=!1,s=e.app[n];if(s)for(let e of(i=!0,s))r.has(e)||(a.add(e),r.add(e));return a.size?[...a].sort():i&&0===r.size?[]:null}function rV(e){let[,t,{loading:r}]=e;return!!r||Object.values(t).some(e=>rV(e))}function rW(e){if(e.$$typeof!==Symbol.for("react.server.reference"))return!1;let{type:t}=ry(e.$$id);return"use-cache"===t}async function rG(e){let t,r,n,{layout:a,page:i,defaultPage:s}=e[2],o=void 0!==a,l=void 0!==i,u=void 0!==s&&e[0]===t3.WO;return o?(t=await a[0](),r="layout",n=a[1]):l?(t=await i[0](),r="page",n=i[1]):u&&(t=await s[0](),r="page",n=s[1]),{mod:t,modType:r,filePath:n}}function rJ(e){return e.default||e}function rK(e){let[t,r,n,a]=e,{layout:i,template:s}=n,{page:o}=n;o=t===t3.WO?n.defaultPage:o;let l=i?.[1]||s?.[1]||o?.[1];return{page:o,segment:t,modules:n,conventionPath:l,parallelRoutes:r,staticSiblings:a}}function rY(e,t){let r="";return e.sharedContext.clientAssetToken&&(r+=`?dpl=${e.sharedContext.clientAssetToken}`),r}function rQ(e,t,r){let{componentMod:{createElement:n}}=t;return e.map((e,a)=>{let i="next",s=`${t.assetPrefix}/_next/${rU(e.path)}${rY(t,!0)}`;return e.inlined&&!t.parsedRequestHeaders.isRSCRequest?n("style",{key:a,nonce:t.nonce,precedence:i,href:s},e.content):(null==r||r.push(()=>{t.componentMod.preloadStyle(s,t.renderOpts.crossOrigin,t.nonce)}),n("link",{key:a,rel:"stylesheet",href:s,precedence:i,crossOrigin:t.renderOpts.crossOrigin,nonce:t.nonce}))})}async function rZ({filePath:e,getComponent:t,injectedCSS:r,injectedJS:n,ctx:a}){let{componentMod:{createElement:i}}=a,{styles:s,scripts:o}=rq(e,r,n),l=rQ(s,a),u=o?o.map((e,t)=>i("script",{src:`${a.assetPrefix}/_next/${rU(e)}${rY(a,!0)}`,async:!0,key:`script-${t}`})):null;return[rJ(await t()),l,u]}a("./dist/esm/server/dynamic-rendering-utils.js");let r0=()=>{};globalThis.FinalizationRegistry&&new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(r0)});class r1{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new r1(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new N;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}var r2=((d={}).APP_PAGE="APP_PAGE",d.APP_ROUTE="APP_ROUTE",d.PAGES="PAGES",d.FETCH="FETCH",d.REDIRECT="REDIRECT",d.IMAGE="IMAGE",d),r3=((f={}).APP_PAGE="APP_PAGE",f.APP_ROUTE="APP_ROUTE",f.PAGES="PAGES",f.FETCH="FETCH",f.IMAGE="IMAGE",f),r4=((h={}).PAGES="PAGES",h.PAGES_API="PAGES_API",h.APP_PAGE="APP_PAGE",h.APP_ROUTE="APP_ROUTE",h.IMAGE="IMAGE",h);async function r6(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===r2.PAGES?{kind:r2.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r2.APP_PAGE?{kind:r2.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function r8(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===r2.PAGES?{kind:r2.PAGES,html:eF.fromStatic(e.value.html,ep.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===r2.APP_PAGE?{kind:r2.APP_PAGE,html:eF.fromStatic(e.value.html,ep.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function r9(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let r5=r9(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),r7=r9(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),ne="__ttl_sentinel__";function nt(e,t){return`${e}\0${t??ne}`}class nr{constructor(e,t=r7,r=r5){this.getBatcher=r1.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:M}),this.revalidateBatcher=r1.create({schedulerFn:M}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new rc.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===ne?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=nt(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return r8(n.entry);let e=Date.now();if(n.expiresAt>e)return r8(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&function(...e){let t=e.join(" ");rg.has(t)||(rg.set(t,t),rm(...e))}(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:u,invocationID:c}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:u,invocationID:c},r);return l&&l(d),d});return r8(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case r4.PAGES:return r3.PAGES;case r4.APP_PAGE:return r3.APP_PAGE;case r4.IMAGE:return r3.IMAGE;case r4.APP_ROUTE:return r3.APP_ROUTE;case r4.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,null!==a&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=nt(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let u=this.handleRevalidate(e,t,r,n,a,i,s,l);return o&&o(u),u})}async handleRevalidate(e,t,r,n,a,i,s,o){try{let l=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let u=await r6({...l,isMiss:!i});if(u.cacheControl)if(this.minimal_mode){let t=nt(e,o);this.cache.set(t,{entry:u,expiresAt:Date.now()+this.ttl})}else await t.set(e,u.value,{cacheControl:u.cacheControl,isRoutePPREnabled:r,isFallback:n});return u}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}var nn=a("./dist/esm/server/app-render/staged-rendering.js");Symbol.for("next-patch"),tR.s8;var na=a("./dist/esm/client/components/static-generation-bailout.js");function ni(){let e={varyParams:new Set,status:"pending",value:new Set,then(t){t&&("pending"===e.status?e.resolvers.push(t):t(e.value))},resolvers:[]};return e}let ns=new Set,no={varyParams:ns,status:"fulfilled",value:ns,then(e){e&&e(ns)},resolvers:[]};function nl(){let e=ni();return{head:e,rootParams:ni(),segments:new Set}}function nu(){let e=function(){let e=eV.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t)return t.head}}return null}();return null!==e?e:null}async function nc(e){let t=e.rootParams.varyParams;for(let r of(nd(e.head,t),e.segments))nd(r,t);await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function nd(e,t){if("pending"!==e.status)return;let r=new Set(e.varyParams);for(let e of t)r.add(e);for(let t of(e.value=r,e.status="fulfilled",e.resolvers))t(r);e.resolvers=[]}let nf=/^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/;function nh(e,t,r){let n=e[2],a=n[r]?n[r][1]:void 0;if(a){let e;return e=(function(e,t){let r=process.cwd(),n=e.replace(r,"").replace(/^[\\/]/,""),a=(t||"").replace(/^\[project\][\\/]?/,"").replace(e,"").replace(r,"").replace(/\\/g,"/").replace(/^\//,"");if(n&&a.startsWith(n)&&(a=a.slice(n.length).replace(/^\//,"")),a.includes("/")){let t=e.split(/[\\/]/).pop()||"";if(t){let e=t+"/",r=a.indexOf(e);r>=0&&(a=a.slice(r+e.length))}}return a})(t,a).replace(/^(src\/)?app\//,""),nf.test(e)&&(e=e.replace(nf,""),e=`__next_builtin__${e}`),e}}function np(e){return(0,I.getTracer)().trace(D.Fx.createComponentTree,{spanName:"build component tree"},()=>ng(e,!0))}function nm(e,t){throw Object.defineProperty(Error(`The default export is not a React Component in "${"/"===e?"":e}/${t}"`),"__NEXT_ERROR_CODE",{value:"E45",enumerable:!1,configurable:!0})}async function ng({loaderTree:e,parentParams:t,parentOptionalCatchAllParamName:r,parentRuntimePrefetchable:n,rootLayoutIncluded:i,injectedCSS:s,injectedJS:o,injectedFontPreloadTags:l,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:h},p){let m,{renderOpts:{nextConfigOutput:g,experimental:y,cacheComponents:v},workStore:b,componentMod:{createElement:w,Fragment:S,SegmentViewNode:_,HTTPAccessFallbackBoundary:E,LayoutRouter:R,RenderFromTemplateContext:k,ClientPageRoot:x,ClientSegmentRoot:P,createServerSearchParamsForServerPage:C,createPrerenderSearchParamsForClientPage:T,createServerParamsForServerSegment:A,createPrerenderParamsForClientSegment:O,serverHooks:{DynamicServerError:j},Postpone:$},pagePath:N,getDynamicParamFromSegment:M,isPrefetch:L,query:U}=u,{page:F,conventionPath:H,segment:B,modules:z,parallelRoutes:q}=rK(e),{layout:X,template:V,error:W,loading:G,"not-found":J,forbidden:K,unauthorized:Y}=z,Q=new Set(s),Z=new Set(o),ee=new Set(l),et=function({ctx:e,layoutOrPagePath:t,injectedCSS:r,injectedJS:n,injectedFontPreloadTags:a,preloadCallbacks:i}){let{componentMod:{createElement:s}}=e,{styles:o,scripts:l}=t?rq(t,r,n,!0):{styles:[],scripts:[]},u=t?rX(e.renderOpts.nextFontManifest,t,a):null;if(u)if(u.length)for(let t=0;t{e.componentMod.preloadFont(s,a,e.renderOpts.crossOrigin,e.nonce)})}else try{let t=new URL(e.assetPrefix);i.push(()=>{e.componentMod.preconnect(t.origin,"anonymous",e.nonce)})}catch(t){i.push(()=>{e.componentMod.preconnect("/","anonymous",e.nonce)})}let c=rQ(o,e,i),d=l?l.map((t,r)=>s("script",{src:`${e.assetPrefix}/_next/${rU(t)}${rY(e,!0)}`,async:!0,key:`script-${r}`,nonce:e.nonce})):[];return c.length||d.length?[...c,...d]:null}({preloadCallbacks:d,ctx:u,layoutOrPagePath:H,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee}),[er,en,ea]=V?await rZ({ctx:u,filePath:V[1],getComponent:V[0],injectedCSS:Q,injectedJS:Z}):[S],[ei,es,eo]=W?await rZ({ctx:u,filePath:W[1],getComponent:W[0],injectedCSS:Q,injectedJS:Z}):[],[el,eu,ec]=G?await rZ({ctx:u,filePath:G[1],getComponent:G[0],injectedCSS:Q,injectedJS:Z}):[],ed=void 0!==X,ef=void 0!==F,{mod:eh,modType:em}=await (0,I.getTracer)().trace(D.Fx.getLayoutOrPageModule,{hideSpan:!(ed||ef),spanName:"resolve segment modules",attributes:{"next.segment":B}},()=>rG(e)),eg=ed&&!i,ey=i||eg,[ev,eb]=J?await rZ({ctx:u,filePath:J[1],getComponent:J[0],injectedCSS:Q,injectedJS:Z}):[],ew=eh?eh.unstable_instant:void 0,eS=!!ew&&"object"==typeof ew&&"runtime"===ew.prefetch||n,[e_,eE]=f&&K?await rZ({ctx:u,filePath:K[1],getComponent:K[0],injectedCSS:Q,injectedJS:Z}):[],[eR,ek]=f&&Y?await rZ({ctx:u,filePath:Y[1],getComponent:Y[0],injectedCSS:Q,injectedJS:Z}):[],ex=null==eh?void 0:eh.dynamic;if("export"===g)if(ex&&"auto"!==ex){if("force-dynamic"===ex)throw Object.defineProperty(new na.f('Page with `dynamic = "force-dynamic"` couldn\'t be exported. `output: "export"` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports'),"__NEXT_ERROR_CODE",{value:"E527",enumerable:!1,configurable:!0})}else ex="error";if("string"==typeof ex)if("error"===ex)b.dynamicShouldError=!0;else if("force-dynamic"===ex){if(b.forceDynamic=!0,b.isStaticGeneration&&!y.isRoutePPREnabled){let e=Object.defineProperty(new j('Page with `dynamic = "force-dynamic"` won\'t be rendered statically.'),"__NEXT_ERROR_CODE",{value:"E585",enumerable:!1,configurable:!0});throw b.dynamicUsageDescription=e.message,b.dynamicUsageStack=e.stack,e}}else b.dynamicShouldError=!1,b.forceStatic="force-static"===ex;if("string"==typeof(null==eh?void 0:eh.fetchCache)&&(b.fetchCache=null==eh?void 0:eh.fetchCache),void 0!==(null==eh?void 0:eh.revalidate)&&function(e,t){try{if(!1===e)ep.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1);else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0})}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(null==eh?void 0:eh.revalidate,b.route),"number"==typeof(null==eh?void 0:eh.revalidate)){let e=eh.revalidate,t=eV.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.revalidate>e&&(t.revalidate=e)}if(!b.forceStatic&&b.isStaticGeneration&&0===e&&!y.isRoutePPREnabled){let e=`revalidate: 0 configured ${B}`;throw b.dynamicUsageDescription=e,Object.defineProperty(new j(e),"__NEXT_ERROR_CODE",{value:"E1005",enumerable:!1,configurable:!0})}}if(ef&&"number"==typeof(null==eh?void 0:eh.unstable_dynamicStaleTime)){let e=eh.unstable_dynamicStaleTime,t=eV.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"prerender":case"prerender-runtime":case"prerender-legacy":case"prerender-ppr":t.stale>e&&(t.stale=e);break;case"request":(void 0===t.stale||t.stale>e)&&(t.stale=e)}}let eP=b.isStaticGeneration,eC=eP&&!0===y.isRoutePPREnabled,eT=eh?rJ(eh):void 0;if(eP){let{isValidElementType:e}=a("./dist/compiled/react-is/index.js");void 0===eT||e(eT)||nm(N,em??"page"),void 0===ei||e(ei)||nm(N,"error"),void 0===el||e(el)||nm(N,"loading"),void 0===ev||e(ev)||nm(N,"not-found"),void 0===e_||e(e_)||nm(N,"forbidden"),void 0===eR||e(eR)||nm(N,"unauthorized")}let eA=M(e),eO=t;eA&&null!==eA.value&&(eO={...t,[eA.param]:eA.value});let ej=(null==eA?void 0:eA.type)==="oc"&&null===eA.value?eA.param:r,e$=u.renderOpts.dir||"",[eI,eD]=await nb({ctx:u,conventionName:"not-found",Component:ev,styles:eb,tree:e}),[eN]=await nb({ctx:u,conventionName:"forbidden",Component:e_,styles:eE,tree:e}),[eM]=await nb({ctx:u,conventionName:"unauthorized",Component:eR,styles:ek,tree:e}),eL=await Promise.all(Object.keys(q).map(async t=>{let r="children"===t,n=q[t],a=r?eI:void 0,i=r?eN:void 0,s=r?eM:void 0,o=null;L&&(el||!rV(n))&&!y.isRoutePPREnabled||(o=await ng({loaderTree:n,parentParams:eO,parentOptionalCatchAllParamName:ej,parentRuntimePrefetchable:eS,rootLayoutIncluded:ey,injectedCSS:Q,injectedJS:Z,injectedFontPreloadTags:ee,ctx:u,missingSlots:c,preloadCallbacks:d,authInterrupts:f,MetadataOutlet:r?h:null},!1));let l=w(er,null,w(k,null));return nh(e,e$,"template"),nh(e,e$,"error"),nh(e,e$,"loading"),p&&nh(e,e$,"global-error"),[t,w(R,{parallelRouterKey:t,error:ei,errorStyles:es,errorScripts:eo,template:l,templateStyles:en,templateScripts:ea,notFound:a,forbidden:i,unauthorized:s,...!1}),o]})),eU={},eF={};for(let e of eL){let[t,r,n]=e;eU[t]=r,eF[t]=n}let eH=el?w(el,{key:"l"}):null,eB=(nh(e,e$,"loading"),eH?[eH,eu,ec]:null);if(!eT)return nw(u,w(S,{key:"c"},et,eU.children),eF,eB,eC,eS,no);if(b.isStaticGeneration&&b.forceDynamic&&y.isRoutePPREnabled)return nw(u,w(S,{key:"c"},w($,{reason:'dynamic = "force-dynamic" was used',route:b.route}),et),eF,eB,!0,eS,no);let ez=(null==(m=(null==eh?void 0:eh.default)||eh)?void 0:m.$$typeof)===Symbol.for("react.client.reference"),eq=ez&&v?no:function(){let e=eV.workUnitAsyncStorage.getStore();if(e)switch(e.type){case"prerender":case"prerender-runtime":{let t=e.varyParamsAccumulator;if(null!==t){let e=ni();return t.segments.add(e),e}}}return null}();if(ef){let t;if(ez)if(v)t=w(x,{Component:eT,serverProvidedParams:null});else if(eP){let e=O(eO),r=T();t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:[r,e]}})}else t=w(x,{Component:eT,serverProvidedParams:{searchParams:U,params:eO,promises:null}});else{let e=A(eO,ej,eq,eS),r=C(U,eq,eS);t=rW(eT)?w(eT,{params:e,searchParams:r,$$isPage:!0}):w(eT,{params:e,searchParams:r})}t3.WO;return nw(u,w(S,{key:"c"},(nh(e,e$,"page")??nh(e,e$,"defaultPage"),t),et,h?w(h,null):null),eF,eB,eC,eS,eq)}{let t,r=eg&&"children"in q&&Object.keys(q).length>1;if(ez){let e;if(v)e=w(P,{Component:eT,slots:eU,serverProvidedParams:null});else if(eP){let t=O(eO);e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:[t]}})}else e=w(P,{Component:eT,slots:eU,serverProvidedParams:{params:eO,promises:null}});if(r){let r,n,a;r=ny({ctx:u,ErrorBoundaryComponent:ev,errorElement:eI,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),n=ny({ctx:u,ErrorBoundaryComponent:e_,errorElement:eN,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),a=ny({ctx:u,ErrorBoundaryComponent:eR,errorElement:eM,ClientSegmentRoot:P,layerAssets:et,SegmentComponent:eT,currentParams:eO}),t=r||n||a?w(E,{key:"c",notFound:r,forbidden:n,unauthorized:a},et,e):w(S,{key:"c"},et,e)}else t=w(S,{key:"c"},et,e)}else{let e,n=A(eO,ej,eq,eS);e=rW(eT)?w(eT,{...eU,params:n,$$isLayout:!0},eU.children):w(eT,{...eU,params:n},eU.children),t=r?w(E,{key:"c",notFound:eI?w(S,null,et,w(eT,{params:n},eb,eI)):void 0},et,e):w(S,{key:"c"},et,e)}return nh(e,e$,"layout"),nw(u,t,eF,eB,eC,eS,eq)}}function ny({ctx:e,ErrorBoundaryComponent:t,errorElement:r,ClientSegmentRoot:n,layerAssets:a,SegmentComponent:i,currentParams:s}){let{componentMod:{createElement:o,Fragment:l}}=e;return t?o(l,null,a,o(n,{Component:i,slots:{children:r},params:s})):null}function nv(e,t){return function e(t,r,n){let{modules:{layout:a},parallelRoutes:i}=rK(r),s=n(r),o=t;return(s&&null!==s.value&&(o={...t,[s.param]:s.value}),void 0!==a)?o:i.children?e(o,i.children,n):o}({},e,t)}async function nb({ctx:e,conventionName:t,Component:r,styles:n,tree:a}){let{componentMod:{createElement:i,Fragment:s}}=e,o=e.renderOpts.dir||"",{SegmentViewNode:l}=e.componentMod;return[r?i(s,null,i(r,null),n):void 0,nh(a,o,t)]}function nw(e,t,r,n,a,i,s){let o=e.componentMod.createElement;if(!i){let e=eV.workUnitAsyncStorage.getStore();if(e){let r;switch(e.type){case"request":case"prerender-runtime":if(r=e.stagedRendering){let e=t;t=r.waitForStage(nn.D.Static).then(()=>e)}}}}return null!==n&&(t=o(e.componentMod.LoadingBoundaryProvider,{loading:n,children:t})),[t,r,null,a,s||null]}async function nS({loaderTreeToFilter:e,parentParams:t,flightRouterState:r,parentIsInsideSharedLayout:n,rscHead:a,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,ctx:u,preloadCallbacks:c,MetadataOutlet:d,hintTree:f}){let{renderOpts:{nextFontManifest:h,experimental:p},query:m,isPrefetch:g,getDynamicParamFromSegment:y,parsedRequestHeaders:v}=u,[b,w,S]=e,_=Object.keys(w),{layout:E}=S,R=void 0!==E&&!l,k=l||R,x=y(e),P=x&&null!==x.value?{...t,[x.param]:x.value}:t,C=(0,t3.HG)(x?x.treeSegment:b,m),T=!r||!rz(C,r[0])||"refetch"===r[3],A=T||n||"inside-shared-layout"===r[3];if(A&&!p.isRoutePPREnabled&&(v.isRouteTreePrefetchRequest||g&&!S.loading&&!rV(e)))return[[r&&n_(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t8(e,f,y):await t6(e,f,y,m),null,[null,null],!0]];if(r&&"metadata-only"===r[3])return[[r&&n_(C,r[0])?r[0]:C,v.isRouteTreePrefetchRequest?await t8(e,f,y):await t6(e,f,y,m),null,a,!1]];if(T){let t=r&&n_(C,r[0])?r[0]:C,n=await t6(e,f,y,m),h=await np({ctx:u,loaderTree:e,parentParams:P,parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:i,injectedJS:s,injectedFontPreloadTags:o,rootLayoutIncluded:l,preloadCallbacks:c,authInterrupts:p.authInterrupts,MetadataOutlet:d});return[[t,n,h,a,!1]]}let O=null==E?void 0:E[1],j=new Set(i),$=new Set(s),I=new Set(o);O&&(rq(O,j,$,!0),rX(h,O,I));let D=[];for(let e of _){var N;let t=w[e];for(let n of(await nS({ctx:u,loaderTreeToFilter:t,parentParams:P,flightRouterState:r&&r[1][e],parentIsInsideSharedLayout:A,rscHead:a,injectedCSS:j,injectedJS:$,injectedFontPreloadTags:I,rootLayoutIncluded:k,preloadCallbacks:c,MetadataOutlet:d,hintTree:(null==f||null==(N=f.slots)?void 0:N[e])??null})))D.push([C,e,...n])}return D}let n_=(e,t)=>{var r;return!Array.isArray(e)&&!!Array.isArray(t)&&(null==(r=(0,tK.Hp)(e))?void 0:r.paramName)===t[0]};var nE=a("./dist/esm/shared/lib/router/utils/interception-routes.js");function nR(e){if(""===e)return null;let t=nE.VB.find(t=>e.startsWith(t)),r=(0,tK.Hp)(e);return r?{type:"dynamic",name:e,param:r,interceptionMarker:t}:e.startsWith("(")&&e.endsWith(")")?{type:"route-group",name:e,interceptionMarker:t}:e.startsWith("@")?{type:"parallel-route",name:e,interceptionMarker:t}:{type:"static",name:e,interceptionMarker:t}}function nk(e,t){let r,n,a,i=e.split("/").filter(Boolean),s=[];for(let o of i){let i=nR(o);if(i){if(t&&("route-group"===i.type||"parallel-route"===i.type))throw Object.defineProperty(new eU.z(`${e} is being parsed as a normalized route, but it has a route group or parallel route segment.`),"__NEXT_ERROR_CODE",{value:"E923",enumerable:!1,configurable:!0});if(s.push(i),i.interceptionMarker){let s=e.split(i.interceptionMarker);if(2!==s.length)throw Object.defineProperty(Error(`Invalid interception route: ${e}`),"__NEXT_ERROR_CODE",{value:"E924",enumerable:!1,configurable:!0});n=t?nk(s[0],!0):nk(s[0],!1),a=t?nk(s[1],!0):nk(s[1],!1),r=i.interceptionMarker}}}let o=s.filter(e=>"dynamic"===e.type);return{normalized:t,pathname:e,segments:s,dynamicSegments:o,interceptionMarker:r,interceptingRoute:n,interceptedRoute:a}}function nx(e){switch(e){case"catchall-intercepted-(..)(..)":case"dynamic-intercepted-(..)(..)":return"(..)(..)";case"catchall-intercepted-(.)":case"dynamic-intercepted-(.)":return"(.)";case"catchall-intercepted-(..)":case"dynamic-intercepted-(..)":return"(..)";case"catchall-intercepted-(...)":case"dynamic-intercepted-(...)":return"(...)";default:return null}}function nP(e,t,r,n,a){switch(t){case"catchall":case"optional-catchall":case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":let i=[];for(let e=r;e0)return i;if("optional-catchall"===t)return;throw Object.defineProperty(new eU.z(`Unexpected empty path segments match for a route "${n.pathname}" with param "${e}" of type "${t}"`),"__NEXT_ERROR_CODE",{value:"E931",enumerable:!1,configurable:!0});case"dynamic":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":if(r0;){let{tree:e,depth:t}=i.pop(),{segment:r,parallelRoutes:o}=rK(e),l=nR(r);if(l?.type==="dynamic"&&!a.hasOwnProperty(l.param.paramName)&&!n?.has(l.param.paramName)){let{paramName:e,paramType:r}=l.param,n=nP(e,r,t,s,a);if(void 0!==n)a[e]=n;else if("optional-catchall"!==r)throw Object.defineProperty(new eU.z(`Could not resolve param value for segment: ${e}`),"__NEXT_ERROR_CODE",{value:"E932",enumerable:!1,configurable:!0})}let u=t;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))i.push({tree:e,depth:u})}return a}function nT(e,t,r,n,a){let i=function(e,t,r){let n=e[t];if(r?.has(t)){let[e]=r.get(t);n=e}else Array.isArray(n)?n=n.map(e=>encodeURIComponent(e)):"string"==typeof n&&(n=encodeURIComponent(n));return n}(e,t,n);if(!i||0===i.length){if("oc"===r)return{param:t,value:null,type:r,treeSegment:[t,"",r,a]};throw Object.defineProperty(new eU.z(`Missing value for segment key: "${t}" with dynamic param type: ${r}`),"__NEXT_ERROR_CODE",{value:"E864",enumerable:!1,configurable:!0})}let s=Array.isArray(i)?i.join("/"):i;return{param:t,value:i,treeSegment:[t,s,r,a],type:r}}let nA=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function nO(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}async function nj(e,t){return Promise.all(Array.from(e).map(([e,r])=>r.then(async({entry:r,hasExplicitRevalidate:n,hasExplicitExpire:a,readRootParamNames:i})=>{if(t&&(0===r.revalidate||r.expire<300))return null;let[s,o]=r.value.tee();r.value=o;let l="";for await(let e of s)l+=function(e){let t=new Uint8Array(e),r=t.byteLength;if(r<65535)return String.fromCharCode.apply(null,t);let n="";for(let e=0;enull)))}async function n$(e,t){{if(0===e.fetch.size&&0===e.cache.size)return"null";let r={store:{fetch:Object.fromEntries(Array.from(e.fetch.entries())),cache:Object.fromEntries((await nj(e.cache.entries(),t)).filter(e=>null!==e)),encryptedBoundArgs:Object.fromEntries(Array.from(e.encryptedBoundArgs.entries()))}},{deflateSync:n}=a("node:zlib");return n(JSON.stringify(r)).toString("base64")}}function nI(e){return e?{cache:new Map(e.cache),fetch:new Map(e.fetch),encryptedBoundArgs:new Map(e.encryptedBoundArgs),decryptedBoundArgs:new Map(e.decryptedBoundArgs)}:{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map}}function nD(e,t){{let r;if("string"!=typeof e)return e;if("null"===e)return{cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map};let{inflateSync:n}=a("node:zlib"),i=t?5*t:524288e3;try{r=JSON.parse(n(Buffer.from(e,"base64"),{maxOutputLength:i}).toString("utf-8"))}catch(e){if(e instanceof RangeError&&"ERR_BUFFER_TOO_LARGE"===e.code)throw Object.defineProperty(Error(`Decompressed resume data cache exceeded ${i} byte limit`),"__NEXT_ERROR_CODE",{value:"E976",enumerable:!1,configurable:!0});throw e}return{cache:function(e){let t=new Map;for(let[r,{entry:n,hasExplicitRevalidate:a,hasExplicitExpire:i,readRootParamNames:s}]of e)t.set(r,Promise.resolve({entry:{value:new ReadableStream({start(e){e.enqueue(function(e){let t=e.length,r=new Uint8Array(t);for(let n=0;n(r(function(){let e=document.getElementsByName(n3)[0];if(e?.shadowRoot?.childNodes[0])return e.shadowRoot.childNodes[0];{let e=document.createElement(n3);e.style.cssText="position:absolute";let t=document.createElement("div");return t.ariaLive="assertive",t.id="__next-route-announcer__",t.role="alert",t.style.cssText="position:absolute;border:0;height:1px;margin:-1px;padding:0;width:1px;clip:rect(0 0 0 0);overflow:hidden;white-space:nowrap;word-wrap:normal",e.attachShadow({mode:"open"}).appendChild(t),document.body.appendChild(e),t}}()),()=>{let e=document.getElementsByTagName(n3)[0];e?.isConnected&&document.body.removeChild(e)}),[]);let[n,a]=(0,$.useState)(""),i=(0,$.useRef)(void 0);return(0,$.useEffect)(()=>{let e="";if(document.title)e=document.title;else{let t=document.querySelector("h1");t&&(e=t.innerText||t.textContent||"")}void 0!==i.current&&i.current!==e&&a(e),i.current=e},[e]),t?(0,rF.createPortal)(n,t):null}tR.s8,tR.s8,a("./dist/esm/client/components/unstable-rethrow.server.js").X,a("./dist/esm/server/app-render/dynamic-rendering.js").Ip,a("./dist/esm/server/app-render/dynamic-rendering.js").FD;let{instrumentParamsForClientValidation:n6,instrumentSearchParamsForClientValidation:n8,expectCompleteParamsInClientValidation:n9}=process.env.__NEXT_CACHE_COMPONENTS?a("./dist/esm/server/app-render/instant-validation/instant-samples-client.js"):{};function n5(){let e=(0,$.useContext)(nH);if(null===e)throw Object.defineProperty(Error("invariant expected app router to be mounted"),"__NEXT_ERROR_CODE",{value:"E238",enumerable:!1,configurable:!0});return e}function n7({redirect:e,reset:t,redirectType:r}){let n=n5();return(0,$.useEffect)(()=>{$.startTransition(()=>{"push"===r?n.push(e,{}):n.replace(e,{}),t()})},[e,r,t,n]),null}class ae extends $.Component{constructor(e){super(e),this.state={redirect:null,redirectType:null}}static getDerivedStateFromError(e){if((0,tk.n)(e)){let t=tx(e),r=tP(e);return"handled"in e?{redirect:null,redirectType:null}:{redirect:t,redirectType:r}}throw e}render(){let{redirect:e,redirectType:t}=this.state;return null!==e&&null!==t?(0,O.jsx)(n7,{redirect:e,redirectType:t,reset:()=>this.setState({redirect:null})}):this.props.children}}function at({children:e}){let t=n5();return(0,O.jsx)(ae,{router:t,children:e})}function ar(e,t=!1){return Array.isArray(e)?`${e[0]}|${e[1]}|${e[2]}`:t&&e.startsWith(t3.OG)?t3.OG:e}let an={then:()=>{}},aa=process.env.__NEXT_ROUTER_BASEPATH||"",ai=process.env.__NEXT_ROUTER_BASEPATH||"",as=e=>"/"===e[0]?e.slice(1):e,ao=e=>"string"==typeof e?"children"===e?"":e:e[1];function al(e){return e.reduce((e,t)=>""===(t=as(t))||(0,t3.V)(t)?e:`${e}/${t}`,"")||"/"}function au(e){let t=Array.isArray(e[0])?e[0][1]:e[0];if(t===t3.WO||nE.VB.some(e=>t.startsWith(e)))return;if(t.startsWith(t3.OG))return"";let r=[ao(t)],n=e[1]??{},a=n.children?au(n.children):void 0;if(void 0!==a)r.push(a);else for(let[e,t]of Object.entries(n)){if("children"===e)continue;let n=au(t);void 0!==n&&r.push(n)}return al(r)}var ac=a("./dist/compiled/react-server-dom-webpack/client.node.js");async function ad(e,t){return new Promise((r,n)=>{(0,$.startTransition)(()=>{(0,n1.Dd)({type:nV.s8,actionId:e,actionArgs:t,resolve:r,reject:n})})})}process.env.__NEXT_ROUTER_BASEPATH;function af(e){let[t,r,n,a]=e.slice(-4),i=e.slice(0,-4);return{pathToSegment:i.slice(0,-1),segmentPath:i,segment:i[i.length-1]??"",tree:t,seedData:r,head:n,isHeadPartial:a,isRootRender:4===e.length}}function ah(e){return"string"==typeof e?e:e.map(e=>af(e))}function ap(e,t){return t?encodeURIComponent(JSON.stringify(e)):encodeURIComponent(JSON.stringify(function e(t){let[r,n,a,i,s]=t,o=function(e){if("string"==typeof e)return e.startsWith(t3.OG+"?")?t3.OG:e;let[t,r,n]=e;return[t,r,n,null]}(r),l={};for(let[t,r]of Object.entries(n))l[t]=e(r);let u=[o,l];return i&&(u[2]=null,u[3]=i),void 0!==s&&(u[4]=s),u}(e)))}let am="/_head";function ag(e){if("string"==typeof e)return e.startsWith(t3.OG)?t3.OG:"/_not-found"===e?"_not-found":ab(e);let t=e[0];return"$"+e[2]+"$"+ab(t)}function ay(e,t,r){return e+"/"+("children"===t?r:`@${ab(t)}/${r}`)}let av=/^[a-zA-Z0-9\-_@]+$/;function ab(e){return av.test(e)?e:"!"+btoa(e).replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,"")}function aw(e){let t=e.headers.get(X.Wc);return null!==t?""===t?"":"?"+t:a_(new URL(e.url)).search}function aS(e){return!(""===e||e.startsWith(t3.OG)||"("===e[0]&&e.endsWith(")"))&&e!==t3.WO&&"/_not-found"!==e}function a_(e){let t=new URL(e);if(t.searchParams.delete(X._A),"export"===process.env.__NEXT_CONFIG_OUTPUT&&t.pathname.endsWith(".txt")){let{pathname:e}=t,r=e.endsWith("/index.txt")?10:4;t.pathname=e.slice(0,-r)}return t}e=process.env.NEXT_DEPLOYMENT_ID||void 0;function aE(e){return(e.then(aR),"fulfilled"!==e.status)?null:e.value}let aR=()=>{};function ak(e,t){let r=new URL(e);return{pathname:r.pathname,search:r.search,nextUrl:t}}var ax=((g={})[g.Intent=2]="Intent",g[g.Default=1]="Default",g[g.Background=0]="Background",g),aP=((y={})[y.LoadingBoundary=0]="LoadingBoundary",y[y.PPR=1]="PPR",y[y.PPRRuntime=2]="PPRRuntime",y[y.Full=3]="Full",y);let aC={},aT={};function aA(){return{parent:null,key:null,value:null,map:null,prev:null,next:null,size:0}}function aO(e,t,r,n,a){let i=function e(t,r,n,a,i,s){let o,l;if(null!==a)o=a.value,l=a.parent;else if(i&&s!==aT)o=aT,l=null;else return null===n.value?n:aj(t,r,n.value)?(aD(n),null):n;let u=n.map;if(null!==u){let n=u.get(o);if(void 0!==n){let a=e(t,r,n,l,i,o);if(null!==a)return a}let a=u.get(aC);if(void 0!==a)return e(t,r,a,l,i,o)}return null}(e,t,r,n,a,0);return null===i||null===i.value?null:(aU(i),i.value)}function aj(e,t,r){return r.staleAt<=e||r.versionPromise.resolve().then(e).catch(e=>setTimeout(()=>{throw e})),az=[],aq=0,aX=0,aV=!1,aW=null;function aG(e,t,r,n,a,i){var s;let o={key:e,treeAtTimeOfPrefetch:t,routeCacheVersion:iM,segmentCacheVersion:0,priority:n,phase:1,hasBackgroundWork:!1,spawnedRuntimePrefetches:null,fetchStrategy:r,sortId:aX++,isCanceled:!1,onInvalidate:a,_heapIndex:-1};return process.env.__NEXT_EXPOSE_TESTING_API&&(o._onComplete=i),(s=o).priority===ax.Intent&&s!==aW&&(null!==aW&&aW.priority!==ax.Background&&(aW.priority=ax.Default,ir(az,aW)),aW=s),a7(az,o),aK(),o}function aJ(e,t,r){return e.routeCacheVersion!==iM||0!==e.segmentCacheVersion||e.treeAtTimeOfPrefetch!==r||e.key.nextUrl!==t}function aK(){aV||(aV=!0,aB(a0))}function aY(e){return e.priority===ax.Intent?aq<12:aq<4}function aQ(e){return aq++,e.then(e=>null===e?(aZ(),null):(e.closed.then(aZ),e.value))}function aZ(){aq--,aK()}function a0(){aV=!1;let e=Date.now(),t=ie(az);for(;null!==t&&aY(t);){t.routeCacheVersion=iM,t.segmentCacheVersion=0;let r=function(e,t){let r=t.key,n=iB(e,t,r),a=function(e,t,r){switch(r.status){case iO.Empty:aQ(i6(r,t.key)),r.staleAt=e+6e4,r.status=iO.Pending;case iO.Pending:{let e=r.blockedTasks;return null===e?r.blockedTasks=new Set([t]):e.add(t),1}case iO.Rejected:break;case iO.Fulfilled:{let s;if(0!==t.phase)return 2;if(!aY(t))return 0;let o=r.tree;switch(s=o.prefetchHints&t2.SubtreeHasInstant?aP.PPR:t.fetchStrategy===aP.PPR?r.supportsPerSegmentPrefetching?aP.PPR:aP.LoadingBoundary:t.fetchStrategy){case aP.PPR:{var n,a,i;if(a4(n=e,a=t,i=r,iq(n,aP.PPR,i.metadata),a.key,i.metadata),0===function e(t,r,n,a,i){let s=iq(t,r.fetchStrategy,i);a4(t,r,n,s,r.key,i);let o=a[1],l=i.slots;if(null!==l)for(let a in l){if(!aY(r))return 0;let i=l[a],s=i.segment,u=o[a],c=u?.[0];if(0===(void 0!==c&&a9(n,s,c)?e(t,r,n,u,i):function e(t,r,n,a){if(a.prefetchHints&t2.HasRuntimePrefetch)return null===r.spawnedRuntimePrefetches?r.spawnedRuntimePrefetches=new Set([a.requestKey]):r.spawnedRuntimePrefetches.add(a.requestKey),2;let i=iq(t,r.fetchStrategy,a);if(a4(t,r,n,i,r.key,a),null!==a.slots){if(!aY(r))return 0;for(let i in a.slots)if(0===e(t,r,n,a.slots[i]))return 0}return 2}(t,r,n,i)))return 0}return 2}(e,t,r,t.treeAtTimeOfPrefetch,o))return 0;let s=t.spawnedRuntimePrefetches;if(null!==s){let n=new Map;a2(e,t,r,n,aP.PPRRuntime);let a=function e(t,r,n,a,i,s){if(i.has(a.requestKey))return a3(t,r,n,a,!1,s,aP.PPRRuntime);let o={},l=a.slots;if(null!==l)for(let a in l){let u=l[a];o[a]=e(t,r,n,u,i,s)}return[a.segment,o,null,null]}(e,t,r,o,s,n);n.size>0&&aQ(i5(t,r,aP.PPRRuntime,a,n))}return 2}case aP.Full:case aP.PPRRuntime:case aP.LoadingBoundary:{let n=new Map;a2(e,t,r,n,s);let a=function e(t,r,n,a,i,s,o){let l=a[1],u=i.slots,c={};if(null!==u)for(let a in u){let i=u[a],d=i.segment,f=l[a],h=f?.[0];if(void 0!==h&&a9(n,d,h)){let l=e(t,r,n,f,i,s,o);c[a]=l}else switch(o){case aP.LoadingBoundary:{let e=(i.prefetchHints&(t2.SegmentHasLoadingBoundary|t2.SubtreeHasLoadingBoundary))!=0?function e(t,r,n,a,i,s){let o=null===i?"inside-shared-layout":null,l=iq(t,r.fetchStrategy,a);switch(l.status){case iO.Empty:s.set(a.requestKey,iG(l,aP.LoadingBoundary)),"refetch"!==i&&(o=i="refetch");break;case iO.Fulfilled:if((a.prefetchHints&t2.SegmentHasLoadingBoundary)!=0)return i4(a);case iO.Pending:case iO.Rejected:}let u={};if(null!==a.slots)for(let o in a.slots){let l=a.slots[o];u[o]=e(t,r,n,l,i,s)}return[a.segment,u,null,o]}(t,r,n,i,null,s):i4(i);c[a]=e;break}case aP.PPRRuntime:{let e=a3(t,r,n,i,!1,s,o);c[a]=e;break}case aP.Full:{let e=a3(t,r,n,i,!1,s,o);c[a]=e}}}return[i.segment,c,null,null]}(e,t,r,t.treeAtTimeOfPrefetch,o,n,s);return n.size>0&&aQ(i5(t,r,s,a,n)),2}}}}return 2}(e,t,n);if(0!==a&&""!==r.search){let n=ak(new URL(r.pathname,location.origin).href,r.nextUrl),a=iB(e,t,n);switch(a.status){case iO.Empty:a1(t)&&(a.status=iO.Pending,aQ(i6(a,n)));case iO.Pending:case iO.Fulfilled:case iO.Rejected:}}return a}(e,t),n=t.hasBackgroundWork;switch(t.hasBackgroundWork=!1,t.spawnedRuntimePrefetches=null,r){case 0:return;case 1:it(az),t=ie(az);continue;case 2:if(1===t.phase)t.phase=0,ir(az,t);else if(n)t.priority=ax.Background,ir(az,t);else{if(process.env.__NEXT_EXPOSE_TESTING_API){let e=t._onComplete;t._onComplete=void 0,e?.()}it(az)}t=ie(az);continue}}null===t&&0===aq&&function(){if(!(aL<=0x3200000))for(;aL>0x2d00000&&null!==aM;){let e=aM.prev;null!==e&&aD(e)}}()}function a1(e){return e.priority===ax.Background||(e.hasBackgroundWork=!0,!1)}function a2(e,t,r,n,a){a3(e,t,r,r.metadata,!1,n,a===aP.LoadingBoundary?aP.Full:a)}function a3(e,t,r,n,a,i,s){var o,l;let u=iq(e,s,n),c=null;switch(u.status){case iO.Empty:if(s===aP.Full&&null!==function(e,t,r){r.varyPath;let n=null;if(null!==n){let r=n.navigatedAt+sG;return e>r?null:iZ(iG(t,aP.Full),n.rsc,r,!1)}return null}(e,u,n))break;c=iG(u,s);break;case iO.Fulfilled:if(u.isPartial&&(o=u.fetchStrategy,on)return null;let a=iZ(iG(iW(e),aP.Full),r.rsc,n,!1),i=iV(e,ih(aP.Full,t),a);if(null!==i&&2===i.status)return i}return null}(e,n))break;c=a8(e,n,s)}break;case iO.Pending:case iO.Rejected:l=u.fetchStrategy,l0&&aQ(i9(r,a,r.tree,i));break}aQ(i8(r,iG(n,aP.PPR),a,i));break;case iO.Pending:switch(n.fetchStrategy){case aP.PPR:case aP.PPRRuntime:case aP.Full:break;case aP.LoadingBoundary:a1(t)&&a6(e,r,a,i);break;default:n.fetchStrategy}break;case iO.Rejected:switch(n.fetchStrategy){case aP.PPR:case aP.PPRRuntime:case aP.Full:break;case aP.LoadingBoundary:a6(e,r,a,i);break;default:n.fetchStrategy}case iO.Fulfilled:}}function a6(e,t,r,n){let a=iX(e,aP.PPR,n);switch(a.status){case iO.Empty:aQ(i8(t,iG(a,aP.PPR),r,n));case iO.Pending:case iO.Fulfilled:case iO.Rejected:}}function a8(e,t,r){var n,a;let i=iX(e,r,t);if(i.status===iO.Empty)return iG(i,r);if(n=i.fetchStrategy,n>>1],t)>0?ia(e,t,r):ii(e,t,r))}function ia(e,t,r){let n=r;for(;n>0;){let r=n-1>>>1,a=e[r];if(!(a5(a,t)>0))return;e[r]=t,t._heapIndex=r,e[n]=a,a._heapIndex=n,n=r}}function ii(e,t,r){let n=r,a=e.length,i=a>>>1;for(;na5(i,t))sa5(o,i)?(e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s):(e[n]=i,i._heapIndex=n,e[r]=t,t._heapIndex=r,n=r);else{if(!(sa5(o,t)))return;e[n]=o,o._heapIndex=n,e[s]=t,t._heapIndex=s,n=s}}}function is(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:r,parent:null}}}}function io(e,t,r,n){return{id:null,value:e,parent:{id:"?",value:t,parent:{id:null,value:n?r:aC,parent:null}}}}function il(e,t,r){return{id:r,value:t,parent:e}}function iu(e,t){return{id:null,value:e,parent:t}}function ic(e,t,r){return{id:null,value:e,parent:{id:"?",value:t,parent:r}}}function id(e,t,r){return{id:null,value:e+am,parent:{id:"?",value:t,parent:r}}}function ih(e,t){let r=t.varyPath;if(t.isPage&&e!==aP.Full&&e!==aP.PPRRuntime){let e=r.parent.parent;return{id:null,value:r.value,parent:{id:"?",value:aC,parent:e}}}return r}function ip(e){let t=e.parent.value;return"string"==typeof t?t:null}function im(e,t){return{id:e.id,value:null===e.id||t.has(e.id)?e.value:aC,parent:null===e.parent?null:im(e.parent,t)}}let ig=null,iy={pending:!0},iv={pending:!1},ib="function"==typeof WeakMap?new WeakMap:new Map,iw=new Set;function iS(e,t){for(let r of iw){let n=r.prefetchTask;if(null!==n&&!aJ(n,e,t))continue;null!==n&&function(e){if(e.isCanceled=!0,function(e,t){let r=t._heapIndex;if(-1!==r&&(t._heapIndex=-1,0!==e.length)){let n=e.pop();n!==t&&(e[r]=n,n._heapIndex=r,ii(e,n,r))}}(az,e),process.env.__NEXT_EXPOSE_TESTING_API){let t=e._onComplete;e._onComplete=void 0,t?.()}}(n);let a=ak(r.prefetchHref,e);r.prefetchTask=aG(a,t,r.fetchStrategy,ax.Default,null)}}"function"==typeof IntersectionObserver&&new IntersectionObserver(function(e){for(let t of e){let e=t.intersectionRatio>0;!function(e,t){let r=ib.get(e);void 0!==r&&(r.isVisible=t,t?iw.add(r):iw.delete(r),ax.Default)}(t.target,e)}},{rootMargin:"200px"});var i_=a("./dist/esm/shared/lib/promise-with-resolvers.js");function iE(e,t){return -1!==t?e+1e3*t:e+sW}function iR(e,t,r,n,a,i,s){}function ik(e,t,r,n,a){}aA();function ix(){return{staticChildren:null,dynamicChild:null,dynamicChildParamName:null,dynamicChildParamType:null,pattern:null}}let iP=ix();function iC(e,t,r,n,a,i,s,o,l,u){let c=t.split("/").filter(e=>""!==e),d=c.length>0?c[0]:null,f=c.length>0?c.slice(1):[];if(null!==n){let c=iY(e,n,a,i,s,o,l);return u&&(c.hasDynamicRewrite=!0),iT(iP,a,d,f,c,e,t,r,a,i,s,o,l,u),c}return iT(iP,a,d,f,null,e,t,r,a,i,s,o,l,u)}function iT(e,t,r,n,a,i,s,o,l,u,c,d,f,h){let p,m,g=t.segment,y=null,v=null,b=null;"string"==typeof g?p=aS(g):(y=g[0],v=g[2],b=g[3],p=!0);let w=e,S=r,_=n;if(p){if(null===y&&r!==g)return null!==a?a:iQ(i,s,o,l,u,c,d,f);if(null!==y&&null!==v){if(w=function(e,t,r){if(null!==e.dynamicChild)return e.dynamicChild;let n=ix();return e.dynamicChild=n,e.dynamicChildParamName=t,e.dynamicChildParamType=r,n}(e,y,v),null!==b)for(let t of(null===e.staticChildren&&(e.staticChildren=new Map),b))e.staticChildren.has(t)||e.staticChildren.set(t,ix())}else{null===e.staticChildren&&(e.staticChildren=new Map);let t=e.staticChildren.get(r);void 0===t&&(t=ix(),e.staticChildren.set(r,t)),w=t}S=n.length>0?n[0]:null,_=n.length>0?n.slice(1):[]}let E=t.slots,R=null;if(null!==E){for(let e in E){let t=E[e];null===t.refreshState&&(R=iT(w,t,S,_,a,i,s,o,l,u,c,d,f,h))}return null!==R?R:null!==a?a:iQ(i,s,o,l,u,c,d,f)}return null!==w.pattern?(h&&(w.pattern.hasDynamicRewrite=!0),w.pattern):(m=null!==a?a:iQ(i,s,o,l,u,c,d,f),h&&(m.hasDynamicRewrite=!0),w.pattern=m,m)}function iA(e){return 1e3*Math.max(e,30)}var iO=((v={})[v.Empty=0]="Empty",v[v.Pending=1]="Pending",v[v.Fulfilled=2]="Fulfilled",v[v.Rejected=3]="Rejected",v);let ij="export"===process.env.__NEXT_CONFIG_OUTPUT,i$=["",{},null,"metadata-only"],iI=aA(),iD=aA(),iN=null,iM=0;function iL(e,t){let r=is(t.pathname,t.search,t.nextUrl),n=aO(e,iM,iI,r,!1);return null!==n?n:process.env.__NEXT_OPTIMISTIC_ROUTING?function(e,t){let r=e.split("/").filter(e=>""!==e),n=new Map,a=function e(t,r,n,a){let i=n=400)return i0(e,Date.now()+1e4),null;l=r.redirected?new URL(r.url):u,t=await sr(sa(l,i),s)}else t=await sr(u,s),l=null!==t&&t.redirected?new URL(t.url):u;if(!t||!t.ok||204===t.status||!t.body)return i0(e,Date.now()+1e4),null;let c=nW(l),d=t.headers.get("vary"),f=null!==d&&d.includes(X.kO),h=(0,i_.b)(),p="2"===t.headers.get(X.jc)||ij;if(p){var o;let n,{stream:i,size:l}=await sn(t.body);h.resolve(),aN(e,l);let u=await sb(i,s,{allowPartialStream:!0});if((t.headers.get(ep.eQ)??u.buildId)!=="")return i0(e,Date.now()+1e4),null;let d=(o=t).headers.get(X.j9)??a_(new URL(o.url)).pathname,m=aw(t),g={metadataVaryPath:null},y=(n=d.split("/").filter(e=>""!==e),function e(t,r,n,a,i,s,o,l){let u,c,d=null,f=t.slots;if(null!==f)for(let t in u=!1,c=iu(a,n),d={},f){let r,u,c,h=f[t],p=h.name,m=h.param;if(null!==m){let e=function(e,t,r){switch(e){case"c":return rencodeURIComponent(e)):[];case"ci(..)(..)":case"ci(.)":case"ci(..)":case"ci(...)":{let n=e.length-2;return r0===t?encodeURIComponent(e.slice(n)):encodeURIComponent(e)):[]}case"oc":return rencodeURIComponent(e)):null;case"d":if(r>=t.length)return"";return encodeURIComponent(t[r]);case"di(..)(..)":case"di(.)":case"di(..)":case"di(...)":{let n=e.length-2;if(r>=t.length)return"";return encodeURIComponent(t[r].slice(n))}default:return""}}(m.type,i,s),t=null!==m.key?m.key:"string"==typeof e?(0,t3.HG)(e,Object.fromEntries(new URLSearchParams(""))):null===e?"":e.join("/");c=il(n,t,p),u=[p,t,m.type,m.siblings],r=!0}else c=n,u=p,r=aS(p);let g=r?s+1:s,y=ay(a,t,ag(u));d[t]=e(h,u,c,y,i,g,o,l)}else a.endsWith(t3.OG)?(u=!0,c=ic(a,o,n),null===l.metadataVaryPath&&(l.metadataVaryPath=id(a,o,n))):(u=!1,c=iu(a,n));return{requestKey:a,segment:r,refreshState:null,varyPath:c,isPage:u,slots:d,prefetchHints:t.prefetchHints}}(u.tree,"",null,"",n,0,m,g)),v=g.metadataVaryPath;if(null===v)return i0(e,Date.now()+1e4),null;iC(Date.now(),r,a,e,y,v,f,c,p,!1)}else{let{stream:n,size:i}=await sn(t.body);h.resolve(),aN(e,i);let o=await sb(n,s,{allowPartialStream:!0});if((t.headers.get(ep.eQ)??o.b)!=="")return i0(e,Date.now()+1e4),null;let l=o.h,u=null!==l?aE(l):null;!function(e,t,r,n,a,i,s,o,l,u,c){let d=aw(r),f=ah(n.f);if("string"==typeof f||1!==f.length)return i0(a,e+1e4);let h=f[0];if(!h.isRootRender)return i0(a,e+1e4);let p=h.tree,m="1"===r.headers.get(X.jc),g={metadataVaryPath:null},y=i2(p,d,g),v=g.metadataVaryPath;if(null===v)return i0(a,e+1e4);iC(e,u,c,a,y,v,i,s,o,!1);let b=sX(e,p,f,d,-1);se(e,t,f,r.headers.get(ep.eQ)??n.b,m,l,ss(e,r),b,null)}(Date.now(),aP.LoadingBoundary,t,o,e,f,c,p,u,r,a)}if(!f){let t=io(r,n,a,f);a$(iI,t,e,!1)}return{value:null,closed:h.promise}}catch(t){return i0(e,Date.now()+1e4),null}}async function i8(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=r.nextUrl,s=n.requestKey,o=""===s?"/_index":s,l={[X.hY]:"1",[X._V]:"1",[X.qm]:o};null!==i&&(l[X.kO]=i),si(l);let u=ij?sa(a,o):a;try{let e=await sr(u,l);if(!e||!e.ok||204===e.status||"2"!==e.headers.get(X.jc)&&!ij||!e.body)return i1(t,Date.now()+1e4),null;let r=(0,i_.b)(),{stream:a,size:i}=await sn(e.body);r.resolve(),aN(t,i);let s=await sb(a,l,{allowPartialStream:!0});if((e.headers.get(ep.eQ)??s.buildId)!=="")return i1(t,Date.now()+1e4),null;let o=Date.now(),c=o+iA(s.staleTime),d=iZ(t,s.rsc,c,s.isPartial),f=s.varyParams,h=process.env.__NEXT_VARY_PARAMS&&null!==f?im(n.varyPath,f):ih(t.fetchStrategy,n);return iV(o,h,d),{value:d,closed:r.promise}}catch(e){return i1(t,Date.now()+1e4),null}}async function i9(e,t,r,n){let a=new URL(e.canonicalUrl,location.origin),i=t.nextUrl,s={[X.hY]:"1",[X._V]:"1",[X.qm]:"/"+t3.OG};null!==i&&(s[X.kO]=i),si(s);try{let t=await sr(a,s);if(!t||!t.ok||204===t.status||"2"!==t.headers.get(X.jc)&&!ij||!t.body)return i7(n,Date.now()+1e4),null;let i=(0,i_.b)(),{stream:o}=await sn(t.body);i.resolve();let l=await sb(o,s,{allowPartialStream:!0});if((t.headers.get(ep.eQ)??l.tree.segment.buildId)!=="")return i7(n,Date.now()+1e4),null;let u=Date.now();!function e(t,r,n,a,i){let s=a.segment,o=t+iA(s.staleTime),l=i.get(n.requestKey);if(void 0!==l)iZ(l,s.rsc,o,s.isPartial);else{let e=iq(t,aP.PPR,n);0===e.status&&iZ(iG(e,aP.PPR),s.rsc,o,s.isPartial)}if(null!==n.slots&&null!==a.slots)for(let s in n.slots){let o=n.slots[s],l=a.slots[s];void 0!==l&&e(t,r,o,l,i)}}(u,e,r,l.tree,n);let c=u+iA(l.head.staleTime),d=e.metadata.requestKey,f=n.get(d);if(void 0!==f)iZ(f,l.head.rsc,c,l.head.isPartial);else{let t=iq(u,aP.PPR,e.metadata);0===t.status&&iZ(iG(t,aP.PPR),l.head.rsc,c,l.head.isPartial)}return i7(n,Date.now()+1e4),{value:null,closed:i.promise}}catch(e){return i7(n,Date.now()+1e4),null}}async function i5(e,t,r,n,a){let i=e.key,s=new URL(t.canonicalUrl,location.origin),o=i.nextUrl;1===a.size&&a.has(t.metadata.requestKey)&&(n=i$);let l={[X.hY]:"1",[X.B]:ap(n)};switch(null!==o&&(l[X.kO]=o),r){case aP.Full:break;case aP.PPRRuntime:l[X._V]="2";break;case aP.LoadingBoundary:l[X._V]="1"}try{let e,i=await sr(s,l);if(!i||!i.ok||!i.body)return i7(a,Date.now()+1e4),null;let o=aw(i);if(o!==t.renderedSearch)return i7(a,Date.now()+1e4),null;let f=(0,i_.b)(),h=null,p=null;if(r===aP.Full){var u,c,d;let t,r;u=i.body,c=f.resolve,d=function(e){if(null===h)return;let t=e/h.length;for(let e of h)aN(e,t)},t=0,r=u.getReader(),e=new ReadableStream({async pull(e){for(;;){let{done:n,value:a}=await r.read();if(!n){e.enqueue(a),d(t+=a.byteLength);continue}e.close(),c();return}}})}else{let{stream:t,size:r}=await sn(i.body);f.resolve(),e=t,p=r}let[m,g]=await Promise.all([sb(e,l,{allowPartialStream:!0}),i.cacheData]),y=m.h,v=null!==y?aE(y):null,b=Date.now(),w=await so(b,m.s,i),S=r===aP.PPRRuntime&&(g?.isResponsePartial??!1),_=i.headers.get(ep.eQ)??m.b,E=ah(m.f);if("string"==typeof E)return i7(a,Date.now()+1e4),null;let R=sX(b,n,E,o,-1);if(h=se(b,r,E,_,S,v,w,R,a),null!==p&&null!==h&&h.length>0){let e=p/h.length;for(let t of h)aN(t,e)}return{value:null,closed:f.promise}}catch(e){return i7(a,Date.now()+1e4),null}}function i7(e,t){let r=[];for(let n of e.values())1===n.status?i1(n,t):2===n.status&&r.push(n);return r}function se(e,t,r,n,a,i,s,o,l){if(n&&""!==n)return null!==l&&i7(l,e+1e4),null;let u=o.routeTree,c=null!==o.metadataVaryPath?iK(o.metadataVaryPath):null;for(let n of r){let r=n.seedData;if(null!==r){let i=n.segmentPath,o=u;for(let t=0;t1){t=new Uint8Array(a);let e=0;for(let r of n)t.set(r,e),e+=r.byteLength}else t=new Uint8Array(0);return{stream:new ReadableStream({start(e){e.enqueue(t),e.close()}}),size:a}}function sa(e,t){if(ij){let r=new URL(e),n=r.pathname.endsWith("/")?r.pathname.slice(0,-1):r.pathname,a=`__next${t.replace(/\//g,".")}.txt`;return r.pathname=`${n}/${a}`,r}return e}function si(e){if(process.env.__NEXT_EXPOSE_TESTING_API){let{isNavigationLocked:t}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");t()&&(e[X.Yf]="1")}}function ss(e,t){let r=parseInt(t.headers.get(X.UK)??"",10);return e+(isNaN(r)?sG:iA(r))}async function so(e,t,r){if(void 0!==t){let r;for await(let e of t)r=e;if(void 0!==r)return e+(isNaN(r)?sG:iA(r))}return void 0!==r?ss(e,r):e+sG}function sl(e,t,r,n,a,i,s,o){let l=o?aP.PPR:aP.Full,u=null!==n?aE(n):null,c=ah(t);if("string"==typeof c)return;let d=sX(e,i,c,s,-1);se(e,l,c,r,o,u,a,d,null)}async function su(e,t,r,n){let{stream:a,isPartial:i}=await sc(t),s=await sb(a,void 0,{allowPartialStream:!0}),o=s.h,l=null!==o?aE(o):null,u=await so(e,s.s),c=ah(s.f);if("string"==typeof c)return null;let d=sX(e,r,c,n,-1);return{flightDatas:c,navigationSeed:d,buildId:s.b,isResponsePartial:i,headVaryParams:l,staleAt:u}}async function sc(e){let t=!!process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS,r=e.getReader(),{done:n,value:a}=await r.read();if(n||!a||0===a.byteLength)return{stream:new ReadableStream({start:e=>e.close()}),isPartial:t};let i=a[0],s=35===i||126===i,o=s?a.byteLength>1?a.subarray(1):null:a;return{isPartial:s?126===i:t,stream:new ReadableStream({start(e){o&&e.enqueue(o)},async pull(e){let t=await r.read();t.done?e.close():e.enqueue(t.value)}})}}let sd=ac.createFromReadableStream,sf=ac.createFromFetch;function sh(e){return a_(new URL(e,location.origin)).toString()}async function sp(e,t){let{flightRouterState:r,nextUrl:n}=t,a={[X.hY]:"1",[X.B]:ap(r,t.isHmrRefresh)};n&&(a[X.kO]=n);let i=e;try{"export"===process.env.__NEXT_CONFIG_OUTPUT&&((e=new URL(e)).pathname.endsWith("/")?e.pathname+="index.txt":e.pathname+=".txt");let t=process.env.__NEXT_PPR&&!process.env.__NEXT_CACHE_COMPONENTS,r=await sv(e,a,"auto",!t),n=a_(new URL(r.url)),s=r.redirected?n:i,o=r.headers.get("content-type")||"",l=!!r.headers.get("vary")?.includes(X.kO),u=!!r.headers.get(X.jc),c=o.startsWith(X.al);if("export"!==process.env.__NEXT_CONFIG_OUTPUT||c||(c=o.startsWith("text/plain")),!c||!r.ok||!r.body)return e.hash&&(n.hash=e.hash),sh(n.toString());let d=r.flightResponsePromise;null===d&&(d=sb(r.body,a,{allowPartialStream:u}));let[f,h]=await Promise.all([d,r.cacheData]);if((r.headers.get(ep.eQ)??f.b)!=="")return sh(r.url);let p=ah(f.f);if("string"==typeof p)return sh(p);let m=null!==h?await sg(h,f,a):null;return{flightData:p,canonicalUrl:s,renderedSearch:f.q,couldBeIntercepted:l,supportsPerSegmentPrefetching:f.S,postponed:u,dynamicStaleTime:f.d??-1,staticStageData:m,runtimePrefetchStream:f.p??null,responseHeaders:r.headers,debugInfo:d._debugInfo??null}}catch(e){return console.error(`Failed to fetch RSC payload for ${i}. Falling back to browser navigation.`,e),i.toString()}}async function sm(e){if(process.env.__NEXT_CACHE_COMPONENTS){let t,r;if(!e.body)throw Object.defineProperty(new eU.z("Expected RSC navigation response to have a body"),"__NEXT_ERROR_CODE",{value:"E1088",enumerable:!1,configurable:!0});let{stream:n,isPartial:a}=await sc(e.body);if(process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS){let[e,i]=n.tee();t=e,r={isResponsePartial:a,responseBodyClone:i}}else t=n,r={isResponsePartial:a};let i=new Response(t,{headers:e.headers,status:e.status,statusText:e.statusText});return Object.defineProperty(i,"url",{value:e.url}),Object.defineProperty(i,"redirected",{value:e.redirected}),{response:i,cacheData:r}}return{response:e,cacheData:null}}async function sg(e,t,r){let{isResponsePartial:n,responseBodyClone:a}=e;if(a){if(!n)return a.cancel(),{response:t,isResponsePartial:!1};if(void 0!==t.l)return{response:await sy(a,t.l,r),isResponsePartial:!0};a.cancel()}return null}async function sy(e,t,r){var n,a;let i,s;return sb((n=e,a=await t,i=n.getReader(),s=a,new ReadableStream({async pull(e){if(s<=0){i.cancel(),e.close();return}let{done:t,value:r}=await i.read();t?e.close():r.byteLength<=s?(e.enqueue(r),s-=r.byteLength):(e.enqueue(r.subarray(0,s)),s=0,i.cancel(),e.close())},cancel(){i.cancel()}})),r,{allowPartialStream:!0})}async function sv(t,r,n,a,i){process.env.__NEXT_TEST_MODE&&null!==n&&(r["Next-Test-Fetch-Priority"]=n),e&&(r["x-deployment-id"]=e);let s={credentials:"same-origin",headers:r,priority:n||void 0,signal:i},o=new URL(t);rw(o,r);let l=fetch(o,s).then(sm),u=l.then(({response:e})=>e),c=a?sw(u,r):null,d=await u,f=d.redirected;if(process.env.__NEXT_CLIENT_VALIDATE_RSC_REQUEST_HEADERS)for(let e=0;e<20&&d.redirected;e++){let e=new URL(d.url,o);if(e.origin!==o.origin||e.searchParams.get(X._A)===o.searchParams.get(X._A))break;rw(o=new URL(e),r),u=(l=fetch(o,s).then(sm)).then(({response:e})=>e),c=a?sw(u,r):null,d=await u,f=!0}let h=new URL(d.url,o);return h.searchParams.delete(X._A),{url:h.href,redirected:f,ok:d.ok,headers:d.headers,body:d.body,status:d.status,flightResponsePromise:c,cacheData:l.then(({cacheData:e})=>e)}}function sb(e,r,n){return sd(e,{callServer:ad,findSourceMapURL:l,debugChannel:t&&t(r),unstable_allowPartialStream:n?.allowPartialStream})}function sw(e,r){return sf(e,{callServer:ad,findSourceMapURL:l,debugChannel:t&&t(r)})}var sS=((b={})[b.Default=0]="Default",b[b.Hydration=1]="Hydration",b[b.HistoryTraversal=2]="HistoryTraversal",b[b.RefreshAll=3]="RefreshAll",b[b.HMRRefresh=4]="HMRRefresh",b[b.Gesture=5]="Gesture",b);let s_=()=>{};function sE(e,t,r,n,a,i,s,o,l){let u=sR(t),c=t.slots,d=null!==a?a[1]:null,f=sP(e,t,null!==a?a[0]:null,r,i,n,s),h=f.cacheNode,p=f.needsDynamicRequest;null===c&&function(e,t,r){switch(e){case 0:case 5:case 3:case 4:null===r.scrollRef&&(r.scrollRef={current:!0}),t.scrollRef=r.scrollRef}}(n,h,l);let m={},g=null,y=!1,v={},b=null;if(null!==c)for(let t in h.slots=b={},g=new Map,c){let a=sE(e,c[t],r,n,(null!==d?d[t]:null)??null,i,s,o||p,l);g.set(t,a),b[t]=a.node;let u=a.route;m[t]=u;let f=a.dynamicRequestTree;null!==f?(y=!0,v[t]=f):v[t]=u}let w=[u,m,null,null,t.prefetchHints];return{status:+!p,route:w,node:h,dynamicRequestTree:sx(w,v,p,y,o),refreshState:null,children:g}}function sR(e){if(e.isPage){let t=ip(e.varyPath);if(null===t)return t3.OG;let r=JSON.stringify(Object.fromEntries(new URLSearchParams(t)));return"{}"!==r?t3.OG+"?"+r:t3.OG}return e.segment}function sk(e,t){let r=[e[0],t];return 2 in e&&(r[2]=e[2]),3 in e&&(r[3]=e[3]),4 in e&&(r[4]=e[4]),r}function sx(e,t,r,n,a){let i=null;return r?(i=sk(e,t),a||(i[3]="refetch")):i=n?sk(e,t):null,i}function sP(e,t,r,n,a,i,s){let o,l,u,c=t.isPage;switch(i){case 0:{let e=(t.varyPath,null);if(null!==e)return{cacheNode:sC(e.rsc,e.prefetchRsc,e.head,e.prefetchHead),needsDynamicRequest:!1};break}case 1:{let i=c?a:null;return iR(e,t.varyPath,r,null,i,null,s),c&&null!==n&&ik(e,n,i,null,s),{cacheNode:sC(r,null,i,null),needsDynamicRequest:!1}}case 2:let d=(t.varyPath,null);if(null!==d){let e=d.rsc,t=!sI(e)||"pending"!==e.status;return{cacheNode:sC(d.rsc,t?null:d.prefetchRsc,d.head,t?null:d.prefetchHead),needsDynamicRequest:!1}}}let f=null,h=!0,p=iU(e,t.varyPath);if(null!==p)switch(p.status){case iO.Fulfilled:f=p.rsc,h=p.isPartial;break;case iO.Pending:f=iF(p).then(e=>null!==e?e.rsc:null),h=p.isPartial;case iO.Empty:case iO.Rejected:}null!==r?(h?(o=f,l=r):(o=null,l=f),u=!1):(h?(o=f,l=sD()):(o=null,l=f),u=h);let m=null,g=null,y=c;if(c){let t=null,r=!0;if(null!==n){let a=iU(e,n);if(null!==a)switch(a.status){case iO.Fulfilled:t=a.rsc,r=a.isPartial;break;case iO.Pending:t=iF(a).then(e=>null!==e?e.rsc:null),r=a.isPartial;case iO.Empty:case iO.Rejected:}}process.env.__NEXT_OPTIMISTIC_ROUTING&&r&&(t=""),null!==a?(r?(m=t,g=a):(m=null,g=t),y=!1):(r?(m=t,g=sD()):(m=null,g=t),y=r)}return 5!==i&&(iR(e,t.varyPath,l,o,g,m,s),c&&null!==n&&ik(e,n,g,m,s)),{cacheNode:sC(l,o,g,m),needsDynamicRequest:u||y}}function sC(e,t,r,n,a=null){return{rsc:e,prefetchRsc:t,head:r,prefetchHead:n,slots:null,scrollRef:a}}let sT=!1;async function sA(e,t,r,n,a,i){var s,o;let l=await (s=r,o=n,new Promise(e=>{let t=t=>{0===t.exitStatus?0==--n&&e(0):e(t.exitStatus)},r=()=>e(2),n=1;s.then(t,r),null!==o&&(n+=o.length,o.forEach(e=>e.then(t,r)))}));switch(0===l&&(l=function e(t,r,n){var a,i,s;let o,l,u;0===t.status?(t.status=2,a=t.node,i=r,s=n,sI(l=a.rsc)&&(null===i?l.resolve(null,s):l.reject(i,s)),sI(u=a.head)&&u.resolve(null,s),o=null===t.refreshState?1:2):o=0;let c=t.children;if(null!==c)for(let[,t]of c){let a=e(t,r,n);a>o&&(o=a)}return o}(e,null,null)),l){case 0:sT=!1;return;case 1:{let n=await r;sO(!1,n.url,t,n.seed,e.route,a,i);return}case 2:{let n=await r;sO(!0,n.url,t,n.seed,e.route,a,i);return}default:return l}}function sO(e,t,r,n,a,i,s){if(null!==i)i.hasDynamicRewrite=!0;else if(null!==n){let e=n.metadataVaryPath;null!==e&&iC(Date.now(),t.pathname,r,null,n.routeTree,e,!1,nW(t),!1,!0)}iM++,iS(r,a),function(e,t){if(null!==iN){let r=iN;for(let n of(iN=null,r))aJ(n,e,t)&&function(e){let t=e.onInvalidate;if(null!==t){e.onInvalidate=null;try{t()}catch(e){"function"==typeof reportError?reportError(e):console.error(e)}}}(n)}}(r,a),e=e||sT,sT=!0;let o=n2,l=null!==o&&a!==o?s:"replace",u={type:nV.Aw,previousTree:a,url:t,nextUrl:r,seed:n,mpa:e,navigateType:l};(0,n1.Dd)(u)}async function sj(e,t,r,n,a,i){try{let s=await sp(r,{flightRouterState:t,nextUrl:n,isHmrRefresh:4===a});if("string"==typeof s)return{exitStatus:2,url:new URL(s,location.origin),seed:null};let o=Date.now(),l=sX(o,e.route,s.flightData,s.renderedSearch,s.dynamicStaleTime);if(process.env.__NEXT_EXPOSE_TESTING_API&&await sN(),null!==i&&null!==s.staticStageData){let{response:e,isResponsePartial:r}=s.staticStageData;so(o,e.s).then(n=>{let a=s.responseHeaders.get(ep.eQ)??e.b;sl(o,e.f,a,e.h,n,t,s.renderedSearch,r)}).catch(()=>{})}null!==i&&null!==s.runtimePrefetchStream&&su(o,s.runtimePrefetchStream,t,s.renderedSearch).then(e=>{null!==e&&se(o,aP.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{});let u=iE(o,s.dynamicStaleTime);return{exitStatus:+!!function e(t,r,n,a,i,s){0===t.status&&null!==n&&(t.status=1,function(e,t,r,n){let a=e.rsc,i=t[0];if(null===i)return;null===a?e.rsc=i:sI(a)&&a.resolve(i,n);let s=e.head;sI(s)&&s.resolve(r,n)}(t.node,n,a,s),r.varyPath);let o=t.children,l=r.slots,u=null!==n?n[1]:null,c=!1;if(null!==o)if(null!==l)for(let t in l){let r=l[t],n=null!==u?u[t]:null,d=o.get(t);if(void 0===d)c=!0;else{let t=d.route[0];rz(sR(r),t)&&null!=n&&e(d,r,n,a,i,s)&&(c=!0)}}else null!==l&&(c=!0);return c}(e,l.routeTree,l.data,l.head,u,s.debugInfo),url:new URL(s.canonicalUrl,location.origin),seed:l}}catch{return{exitStatus:2,url:r,seed:null}}}let s$=Symbol();function sI(e){return e&&"object"==typeof e&&e.tag===s$}function sD(){let e,t,r=[],n=new Promise((r,n)=>{e=r,t=n});return n.status="pending",n.resolve=(t,a)=>{"pending"===n.status&&(n.status="fulfilled",n.value=t,null!==a&&r.push.apply(r,a),e(t))},n.reject=(e,a)=>{"pending"===n.status&&(n.status="rejected",n.reason=e,null!==a&&r.push.apply(r,a),t(e))},n.tag=s$,n._debugInfo=r,n}async function sN(){if(process.env.__NEXT_EXPOSE_TESTING_API){let{waitForNavigationLockIfActive:e}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");await e()}}let sM=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i;function sL(e){return sM.test(""+e)}function sU(e,t,r,n,a,i,s,o,l,u){let c=Date.now(),d=iL(c,ak(t.href,s));if(null!==d&&d.status===iO.Fulfilled)return sH(c,e,t,r,n,s,a,i,o,l,u,d);if(!process.env.__NEXT_OPTIMISTIC_ROUTING&&(null===d||d.status!==iO.Rejected)){let d=function(e,t,r){let n=t.search;if(""===n)return null;let a=new URL(t);a.search="";let i=iL(e,ak(a.href,r));if(null===i||2!==i.status)return null;let s=new URL(i.canonicalUrl,t.origin),o=""!==s.search?s.search:n,l=""!==i.renderedSearch?i.renderedSearch:n,u=new URL(i.canonicalUrl,location.origin);return u.search=o,{canonicalUrl:nW(u),status:2,blockedTasks:null,tree:iz(i.tree,l),metadata:iz(i.metadata,l),couldBeIntercepted:i.couldBeIntercepted,supportsPerSegmentPrefetching:i.supportsPerSegmentPrefetching,hasDynamicRewrite:i.hasDynamicRewrite,renderedSearch:l,ref:null,size:0,staleAt:i.staleAt,version:i.version}}(c,t,s);if(null!==d)return sH(c,e,t,r,n,s,a,i,o,l,u,d)}return sz(c,e,t,r,n,s,a,i,o,l,u).catch(()=>e)}function sF(e,t,r,n,a,i,s,o,l,u,c,d,f,h,p){var m,g,y,v,b;let w,S={separateRefreshUrls:null,scrollRef:null},_=r.href===i.href,E=(m=a.routeTree,g=a.metadataVaryPath,y=a.data,v=a.head,b=a.dynamicStaleAt,w={canonicalUrl:nW(i),renderedSearch:s},function e(t,r,n,a,i,s,o,l,u,c,d,f,h,p,m,g){var y,v,b;let w,S,_,E,R=a[0],k=sR(i);if(!rz(k,R))return!l&&function e(t,r){let n=t[0],a=r.segment;if(Array.isArray(n)&&Array.isArray(a)){if(n[0]!==a[0]||n[2]!==a[2])return!0}else if(n!==a)return!0;let i=((t[4]??0)&t2.IsRootLayout)!=0,s=(r.prefetchHints&t2.IsRootLayout)!=0;if(i)return!s;if(s)return!0;let o=r.slots,l=t[1];if(null!==o)for(let t in o){let r=o[t],n=l[t];if(void 0===n||e(n,r))return!0}return!1}(a,i)||k===t3.Jn?null:sE(t,i,s,o,u,c,d,h,g);let x=i.slots,P=a[1],C=null!==u?u[1]:null,T=l||(i.prefetchHints&t2.IsRootLayout)!=0,A=!1;switch(o){case 0:case 2:case 1:case 5:A=!1;break;case 3:case 4:A=!0}let O=null===x;if(void 0===n||A||O&&f){let e=sP(t,i,null!==u?u[0]:null,s,c,o,d);_=e.cacheNode,E=e.needsDynamicRequest,void 0!==n&&(_.scrollRef=n.scrollRef)}else{y=!1,_=sC((v=n).rsc,y?null:v.prefetchRsc,v.head,y?null:v.prefetchHead,v.scrollRef),E=!1}let j=i.refreshState,$=null!=j?j:m;E&&null!==$&&(b=g,w=$.canonicalUrl,null===(S=b.separateRefreshUrls)?b.separateRefreshUrls=new Set([w]):S.add(w));let I={},D=null,N=!1,M={},L=null;if(null!==x){let a=void 0!==n?n.slots:null;for(let n in _.slots=L={},D=new Map,x){let l=x[n],u=P[n];if(void 0===u)return null;let m=null!==C?C[n]:null,y=u[0],v=sR(l),b=c;2!==o&&v===t3.WO&&y!==t3.WO&&(v=sR(l=function(e,t,r,n){let a,i,s=n[2];null!=s?(a=s[0],i=s[1]):(a=r.canonicalUrl,i=r.renderedSearch);let o=function(e,t,r,n,a){let i=e.isPage?e.varyPath.parent.parent:e.varyPath.parent,s=r[0];return i3(r,ay(e.requestKey,t,ag(s)),i,n,a)}(e,t,n,i,{metadataVaryPath:null});return o.refreshState={canonicalUrl:a,renderedSearch:i},o}(i,n,p,u)),m=null,b=null);let w=e(t,r,null!==a?a[n]:void 0,u,l,s,o,T,m??null,b,d,f,h||E,p,$,g);if(null===w)return null;D.set(n,w),L[n]=w.node;let S=w.route;I[n]=S;let _=w.dynamicRequestTree;null!==_?(N=!0,M[n]=_):M[n]=S}}let U=[sR(i),I,null!==$?[$.canonicalUrl,$.renderedSearch]:null,null,i.prefetchHints];return{status:+!E,route:U,node:_,dynamicRequestTree:sx(U,M,E,N,h),refreshState:$,children:D}}(e,i,null!==o?o:void 0,l,m,g,u,!1,y,v,b,_,!1,w,null,S));return null!==E?(u!==sS.Gesture&&function(e,t,r,n,a,i,s){let o=e.dynamicRequestTree;if(null===o){sT=!1;return}let l=sj(e,o,t,r,n,i),u=a.separateRefreshUrls,c=null;if(null!==u){c=[];let a=nW(t);for(let t of u)t!==a&&null!==o&&c.push(sj(e,o,new URL(t,location.origin),r,n,i))}sA(e,r,l,c,i,s).then(s_,s_)}(E,r,c,u,S,p,f),function(e,t,r,n,a,i,s,o,l,u,c){let d,f,h,p=(null==(h=function e(t,r){let[n,a]=t,[i,s]=r,o=ao(n),l=ao(i);if(nE.VB.some(e=>o.startsWith(e)||l.startsWith(e)))return"";if(!rz(n,i))return au(r)??"";for(let t in a)if(s[t]){let r=e(a[t],s[t]);if(null!==r)return`${ao(i)}/${r}`}return null}(e.tree,n))||"/"===h?h:al(h.split("/")))||e.nextUrl,m=new URL(e.canonicalUrl,t),g=t.pathname===m.pathname&&t.search===m.search&&t.hash!==m.hash;if(l===nV.Kj.NoScroll)null!==u&&(u.current=!1),d=e.focusAndScrollRef.scrollRef,f=!1;else if(g){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1),null!==u&&(u.current=!1),d={current:!0},f=!0}else{if(d=u,null!==u){let t=e.focusAndScrollRef.scrollRef;null!==t&&(t.current=!1)}f=!1}return{canonicalUrl:s,renderedSearch:i,pushRef:{pendingPush:"push"===o,mpaNavigation:!1,preserveCustomHistoryState:!1},focusAndScrollRef:{scrollRef:d,forceScroll:f,onlyHashChange:g,hashFragment:l!==nV.Kj.NoScroll&&""!==t.hash?decodeURIComponent(t.hash.slice(1)):e.focusAndScrollRef.hashFragment},cache:a,tree:n,nextUrl:p,previousNextUrl:r,debugInfo:c}}(t,r,c,E.route,E.node,a.renderedSearch,n,f,d,S.scrollRef,h)):sq(t,r,f)}function sH(e,t,r,n,a,i,s,o,l,u,c,d){let f=d.tree,h=d.canonicalUrl+r.hash,p={renderedSearch:d.renderedSearch,routeTree:f,metadataVaryPath:d.metadata.varyPath,data:null,head:null,dynamicStaleAt:iE(e,-1)};return sF(e,t,r,h,p,n,a,s,o,l,i,u,c,null,d)}let sB=["",{},null,"refetch"];async function sz(e,t,r,n,a,i,s,o,l,u,c){let d;switch(l){case sS.Default:case sS.HistoryTraversal:case sS.Gesture:d=o;break;case sS.Hydration:case sS.RefreshAll:case sS.HMRRefresh:d=sB;break;default:d=o}let f=sp(r,{flightRouterState:d,nextUrl:i}),h=await f;if("string"==typeof h)return sq(t,new URL(h,location.origin),c);let{flightData:p,canonicalUrl:m,renderedSearch:g,couldBeIntercepted:y,supportsPerSegmentPrefetching:v,dynamicStaleTime:b,staticStageData:w,runtimePrefetchStream:S,responseHeaders:_,debugInfo:E}=h,R=sX(e,o,p,g,b),k=R.metadataVaryPath;if(null!==k){if(iC(e,r.pathname,i,null,R.routeTree,k,y,nW(m),v,!1),null!==w){let{response:t,isResponsePartial:r}=w;so(e,t.s).then(n=>{let a=_.get(ep.eQ)??t.b;sl(e,t.f,a,t.h,n,o,g,r)}).catch(()=>{})}null!==S&&su(e,S,o,g).then(t=>{null!==t&&se(e,aP.PPRRuntime,t.flightDatas,t.buildId,t.isResponsePartial,t.headVaryParams,t.staleAt,t.navigationSeed,null)}).catch(()=>{})}return sF(e,t,r,nW(m),R,n,a,s,o,l,i,u,c,E,null)}function sq(e,t,r){return sL(t.href)?(console.error("Next.js has blocked a javascript: URL as a security precaution."),e):{canonicalUrl:t.origin===location.origin?nW(t):t.href,pushRef:{pendingPush:"push"===r,mpaNavigation:!0,preserveCustomHistoryState:!1},renderedSearch:e.renderedSearch,focusAndScrollRef:e.focusAndScrollRef,cache:e.cache,tree:e.tree,nextUrl:e.nextUrl,previousNextUrl:e.previousNextUrl,debugInfo:null}}function sX(e,t,r,n,a){let i=t,s=null,o=null;if(null!==r)for(let{segmentPath:e,tree:t,seedData:a,head:l}of r){let r=function e(t,r,n,a,i,s,o){let l;if(o===i.length)return{tree:n,data:a};let u=i[o],c=t[1],d=null!==r?r[1]:null,f={},h={};for(let t in c){let r=c[t],l=null!==d?d[t]??null:null;if(t===u){let u=e(r,l,n,a,i,s,o+2);f[t]=u.tree,h[t]=u.data}else f[t]=r,h[t]=l}if(l=[t[0],f],2 in t){let e=t[2];null!=e&&(l[2]=[e[0],s])}return 3 in t&&(l[3]=t[3]),4 in t&&(l[4]=t[4]),{tree:l,data:[null,h,null,!0,null]}}(i,s,t,a,e,n,0);i=r.tree,s=r.data,o=l}let l={metadataVaryPath:null};return{routeTree:i2(i,n,l),metadataVaryPath:l.metadataVaryPath,data:s,renderedSearch:n,head:o,dynamicStaleAt:iE(e,a)}}async function sV(e,t,r,n,i,s,o,l,u,c){let d=ig,f=null!==d?d.fetchStrategy:aP.PPR,{transitionToCapturedSPA:h,updateCapturedSPAToTree:p}=a("./dist/esm/client/components/segment-cache/navigation-testing-lock.js");h(s,null);let m=ak(t.href,o);await new Promise(e=>{aG(m,s,f,ax.Default,null,e)});let g=await sU(e,t,r,n,i,s,o,l,u,c);return p(s,g.tree),g}let sW=1e3*Number(process.env.__NEXT_CLIENT_ROUTER_DYNAMIC_STALETIME),sG=iA(Number(process.env.__NEXT_CLIENT_ROUTER_STATIC_STALETIME)),sJ=process.env.__NEXT_ROUTER_BASEPATH||"";function sK(e,t){return(e=>{if(!e.startsWith("/")||process.env.__NEXT_MANUAL_TRAILING_SLASH)return e;let{pathname:t,query:r,hash:n}=ev(e);if(process.env.__NEXT_TRAILING_SLASH)if(/\.[^/]+\/?$/.test(t));else if(t.endsWith("/"))return`${t}${r}${n}`;else return`${t}/${r}${n}`;return`${ey(t)}${r}${n}`})(process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!t?e:eb(e,sJ))}let sY=/[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i,sQ=/Googlebot(?!-)|Googlebot$/i;function sZ(e){return e.origin!==window.location.origin}sY.source;var s0=a("./dist/esm/shared/lib/is-thenable.js");function s1(e,t){null!==e.pending?(e.pending=e.pending.next,null!==e.pending&&s2({actionQueue:e,action:e.pending,setState:t})):e.needsRefresh&&(e.needsRefresh=!1,e.dispatch({type:nV.z8},t))}async function s2({actionQueue:e,action:t,setState:r}){let n=e.state;e.pending=t;let a=t.payload,i=e.action(n,a);function s(n){if(t.discarded){t.payload.type===nV.s8&&t.payload.didRevalidate&&(e.needsRefresh=!0),s1(e,r);return}e.state=n,s1(e,r),t.resolve(n)}(0,s0.Q)(i)?i.then(s,n=>{s1(e,r),t.reject(n)}):s(i)}function s3(e,t){let r={state:e,dispatch:(e,t)=>(function(e,t,r){let n={resolve:r,reject:()=>{}};if(t.type!==nV.IU){let e=new Promise((e,t)=>{n={resolve:e,reject:t}});(0,$.startTransition)(()=>{r(e)})}let a={payload:t,next:null,resolve:n.resolve,reject:n.reject};null===e.pending?(e.last=a,s2({actionQueue:e,action:a,setState:r})):t.type===nV.Zb||t.type===nV.IU?(e.pending.discarded=!0,a.next=e.pending.next,s2({actionQueue:e,action:a,setState:r})):(null!==e.last&&(e.last.next=a),e.last=a)})(r,e,t),action:async(e,t)=>e,pending:null,last:null,onRouterTransitionStart:null!==t&&"function"==typeof t.onRouterTransitionStart?t.onRouterTransitionStart:null};return r}function s4(e,t,r,n,a){if(a)for(let e of a)(0,$.addTransitionType)(e);let i=new URL(sK(e),location.href);process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=i),(0,$.startTransition)(()=>{ig?.setOptimisticLinkStatus(iv),n?.setOptimisticLinkStatus(iy),ig=n});(0,n1.Dd)({type:nV.Zb,url:i,isExternalUrl:sZ(i),locationSearch:location.search,scrollBehavior:r,navigateType:t})}let s6={back:()=>window.history.back(),forward:()=>window.history.forward(),prefetch:(e,t)=>{var r,n,a,i;let s,o;if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});let l=function(){throw Object.defineProperty(Error("Internal Next.js error: Router action dispatched before initialization."),"__NEXT_ERROR_CODE",{value:"E668",enumerable:!1,configurable:!0})}();switch(t?.kind??nV.ob.AUTO){case nV.ob.AUTO:s=aP.PPR;break;case nV.ob.FULL:s=aP.Full;break;default:s=aP.PPR}r=l.state.nextUrl,n=l.state.tree,a=s,i=t?.onInvalidate??null,null===(o=function(e){var t,r;let n;if(r=t=window.navigator.userAgent,sQ.test(r)||sY.test(t))return null;try{n=new URL(sK(e),window.location.href)}catch(t){throw Object.defineProperty(Error(`Cannot prefetch '${e}' because it cannot be converted to a URL.`),"__NEXT_ERROR_CODE",{value:"E234",enumerable:!1,configurable:!0})}return sZ(n)?null:n}(e))||aG(ak(o.href,r),n,a,ax.Default,i)},replace:(e,t)=>{if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,$.startTransition)(()=>{s4(e,"replace",t?.scroll===!1?nV.Kj.NoScroll:nV.Kj.Default,null,t?.transitionTypes)})},push:(e,t)=>{if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});(0,$.startTransition)(()=>{s4(e,"push",t?.scroll===!1?nV.Kj.NoScroll:nV.Kj.Default,null,t?.transitionTypes)})},refresh:()=>{(0,$.startTransition)(()=>{(0,n1.Dd)({type:nV.z8})})},hmrRefresh:()=>{throw Object.defineProperty(Error("hmrRefresh can only be used in development mode. Please use refresh instead."),"__NEXT_ERROR_CODE",{value:"E485",enumerable:!1,configurable:!0})}};process.env.__NEXT_GESTURE_TRANSITION&&(s6.experimental_gesturePush=function(e,t){if(process.env.__NEXT_GESTURE_TRANSITION){if(sL(e))throw Object.defineProperty(Error("Next.js has blocked a javascript: URL as a security precaution."),"__NEXT_ERROR_CODE",{value:"E978",enumerable:!1,configurable:!0});!0;return}}),$.Component;let s8=a("../../app-render/work-async-storage.external").workAsyncStorage;function s9({error:e}){if(s8){let t=s8.getStore();if(t?.isStaticGeneration)throw e&&console.error(e),e}}class s5 extends $.Component{static{this.contextType=nH}constructor(e){super(e),this.reset=()=>{this.setState({error:null})},this.unstable_retry=()=>{(0,$.startTransition)(()=>{this.context?.refresh(),this.reset()})},this.state={error:null,previousPathname:this.props.pathname}}static getDerivedStateFromError(e){if((0,tU.p)(e))throw e;return{error:e}}static getDerivedStateFromProps(e,t){let{error:r}=t;return(process.env.__NEXT_APP_NAV_FAIL_HANDLING&&r,e.pathname!==t.previousPathname&&t.error)?{error:null,previousPathname:e.pathname}:{error:t.error,previousPathname:e.pathname}}render(){return this.state.error&&1?(s9({error:this.state.error}),(0,O.jsxs)(O.Fragment,{children:[this.props.errorStyles,this.props.errorScripts,(0,O.jsx)(this.props.errorComponent,{error:this.state.error,reset:this.reset,unstable_retry:this.unstable_retry})]})):this.props.children}}function s7({errorComponent:e,errorStyles:t,errorScripts:r,children:n}){let i=!function(){{let{workUnitAsyncStorage:e}=a("../../app-render/work-unit-async-storage.external"),t=e.getStore();if(!t)return!1;switch(t.type){case"prerender":case"prerender-client":case"prerender-ppr":case"validation-client":let r=t.fallbackRouteParams;return!!r&&r.size>0}return!1}}()?(0,$.useContext)(nY):null;return e?(0,O.jsx)(s5,{pathname:i,errorComponent:e,errorStyles:t,errorScripts:r,children:n}):(0,O.jsx)(O.Fragment,{children:n})}function oe({children:e,errorComponent:t,errorStyles:r,errorScripts:n}){return(0,O.jsx)(s7,{errorComponent:t,errorStyles:r,errorScripts:n,children:e})}let ot={fontFamily:'system-ui,"Segoe UI",Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji"',height:"100vh",display:"flex",alignItems:"center",justifyContent:"center"},or={marginTop:"-32px",maxWidth:"325px",padding:"32px 28px",textAlign:"left"},on={marginBottom:"24px"},oa={fontSize:"24px",fontWeight:500,letterSpacing:"-0.02em",lineHeight:"32px",margin:"0 0 12px 0",color:"var(--next-error-title)"},oi={fontSize:"14px",fontWeight:400,lineHeight:"21px",margin:"0 0 20px 0",color:"var(--next-error-message)"},os={margin:0},oo={display:"flex",gap:"8px",alignItems:"center"},ol={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-text)",background:"var(--next-error-btn-bg)",border:"var(--next-error-btn-border)"},ou={display:"inline-flex",alignItems:"center",justifyContent:"center",height:"32px",padding:"0 12px",fontSize:"14px",fontWeight:500,lineHeight:"20px",borderRadius:"6px",cursor:"pointer",color:"var(--next-error-btn-secondary-text)",background:"var(--next-error-btn-secondary-bg)",border:"var(--next-error-btn-secondary-border)"},oc={position:"fixed",bottom:"32px",left:"0",right:"0",textAlign:"center",fontFamily:'ui-monospace,SFMono-Regular,"SF Mono",Menlo,Consolas,monospace',fontSize:"12px",lineHeight:"18px",fontWeight:400,margin:"0",color:"var(--next-error-digest)"},od=` +:root { + --next-error-bg: #fff; + --next-error-text: #171717; + --next-error-title: #171717; + --next-error-message: #171717; + --next-error-digest: #666666; + --next-error-btn-text: #fff; + --next-error-btn-bg: #171717; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #171717; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(0,0,0,0.08); +} +@media (prefers-color-scheme: dark) { + :root { + --next-error-bg: #0a0a0a; + --next-error-text: #ededed; + --next-error-title: #ededed; + --next-error-message: #ededed; + --next-error-digest: #a0a0a0; + --next-error-btn-text: #0a0a0a; + --next-error-btn-bg: #ededed; + --next-error-btn-border: none; + --next-error-btn-secondary-text: #ededed; + --next-error-btn-secondary-bg: transparent; + --next-error-btn-secondary-border: 1px solid rgba(255,255,255,0.14); + } +} +body { margin: 0; color: var(--next-error-text); background: var(--next-error-bg); } +`.replace(/\n\s*/g,"");function of(){return(0,O.jsx)("svg",{width:"32",height:"32",viewBox:"-0.2 -1.5 32 32",fill:"none",style:on,children:(0,O.jsx)("path",{d:"M16.9328 0C18.0839 0.000116771 19.1334 0.658832 19.634 1.69531L31.4299 26.1309C32.0708 27.4588 31.1036 28.9999 29.6291 29H2.00215C0.527541 29 -0.439628 27.4588 0.201371 26.1309L11.9973 1.69531C12.4979 0.658823 13.5474 7.75066e-05 14.6984 0H16.9328ZM3.59493 26H28.0363L16.9328 3H14.6984L3.59493 26ZM15.8156 19C16.9202 19.0001 17.8156 19.8955 17.8156 21C17.8156 22.1045 16.9202 22.9999 15.8156 23C14.7111 23 13.8156 22.1046 13.8156 21C13.8156 19.8954 14.7111 19 15.8156 19ZM17.3156 16.5H14.3156V8.5H17.3156V16.5Z",fill:"var(--next-error-title)"})})}let oh=function({error:e}){let t=e?.digest,r=!!t;return s9({error:e}),(0,O.jsxs)("html",{id:"__next_error__",children:[(0,O.jsx)("head",{children:(0,O.jsx)("style",{dangerouslySetInnerHTML:{__html:od}})}),(0,O.jsxs)("body",{children:[(0,O.jsx)("div",{style:ot,children:(0,O.jsxs)("div",{style:or,children:[(0,O.jsx)(of,{}),(0,O.jsx)("h1",{style:oa,children:"This page couldn’t load"}),(0,O.jsx)("p",{style:oi,children:r?"A server error occurred. Reload to try again.":"Reload to try again, or go back."}),(0,O.jsxs)("div",{style:oo,children:[(0,O.jsx)("form",{style:os,children:(0,O.jsx)("button",{type:"submit",style:ol,children:"Reload"})}),!r&&(0,O.jsx)("button",{type:"button",style:ou,onClick:()=>{window.history.length>1?window.history.back():window.location.href="/"},children:"Back"})]})]})}),t&&(0,O.jsxs)("p",{style:oc,children:["ERROR ",t]})]})]})};var op=a("./dist/esm/lib/framework/boundary-constants.js");let om={[op.NJ]:function({children:e}){return e},[op.A$]:function({children:e}){return e},[op.DQ]:function({children:e}){return e},[op.ri]:function({children:e}){return e}};om[op.NJ.slice(0)],om[op.A$.slice(0)],om[op.DQ.slice(0)];let og=om[op.ri.slice(0)],oy={};function ov({appRouterState:e}){return(0,$.useInsertionEffect)(()=>{process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(window.next.__pendingUrl=void 0);let{tree:t,pushRef:r,canonicalUrl:n,renderedSearch:a}=e,i={...r.preserveCustomHistoryState?window.history.state:{},__NA:!0,__PRIVATE_NEXTJS_INTERNALS_TREE:{tree:t,renderedSearch:a}};r.pendingPush&&nW(new URL(window.location.href))!==n?(r.pendingPush=!1,window.history.pushState(i,"",n)):window.history.replaceState(i,"",n),n2=t},[e]),(0,$.useEffect)(()=>{iS(e.nextUrl,e.tree)},[e.nextUrl,e.tree]),null}function ob(e){null==e&&(e={});let t=window.history.state,r=t?.__NA;r&&(e.__NA=r);let n=t?.__PRIVATE_NEXTJS_INTERNALS_TREE;return n&&(e.__PRIVATE_NEXTJS_INTERNALS_TREE=n),e}function ow({headCacheNode:e}){let t=null!==e?e.head:null,r=null!==e?e.prefetchHead:null,n=null!==r?r:t;return(0,$.useDeferredValue)(t,n)}function oS({actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n}){let a,i=(0,n1.n5)(e),{canonicalUrl:s}=i,{searchParams:o,pathname:l}=(0,$.useMemo)(()=>{var e;let t=new URL(s,"http://n");return{searchParams:t.searchParams,pathname:eS(t.pathname,aa)?(e=t.pathname,process.env.__NEXT_MANUAL_CLIENT_BASE_PATH&&!eS(e,aa)||0===ai.length||(e=e.slice(ai.length)).startsWith("/")||(e=`/${e}`),e):t.pathname}},[s]);(0,$.useEffect)(()=>{let e,t=(e=function e(t){let r=(e=>{if("string"==typeof e)return"children"===e?"":e.startsWith(t3.OG)?"page":e;let[t,,r]=e;switch(r){case"c":return`[...${t}]`;case"ci(..)(..)":return`(..)(..)[...${t}]`;case"ci(.)":return`(.)[...${t}]`;case"ci(..)":return`(..)[...${t}]`;case"ci(...)":return`(...)[...${t}]`;case"oc":return`[[...${t}]]`;case"d":default:return`[${t}]`;case"di(..)(..)":return`(..)(..)[${t}]`;case"di(.)":return`(.)[${t}]`;case"di(..)":return`(..)[${t}]`;case"di(...)":return`(...)[${t}]`}})(t[0]);if(r===t3.WO)return;if("page"===r)return[r];let n=t[1]??{},a=n.children?e(n.children):void 0;if(void 0!==a)return""===r?a:[as(r),...a];for(let[t,a]of Object.entries(n)){if("children"===t)continue;let n=e(a);if(void 0!==n)return""===r?n:[as(r),...n]}}(i.tree))?`/${e.join("/")}`:void 0;void 0!==t?window.next.__internal_src_page=t:delete window.next.__internal_src_page},[i.tree]),(0,$.useEffect)(()=>{function e(e){e.persisted&&window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE&&(oy.pendingMpaPath=void 0,(0,n1.Dd)({type:nV.IU,url:new URL(window.location.href),historyState:window.history.state.__PRIVATE_NEXTJS_INTERNALS_TREE}))}return window.addEventListener("pageshow",e),()=>{window.removeEventListener("pageshow",e)}},[]),(0,$.useEffect)(()=>{function e(e){let t="reason"in e?e.reason:e.error;if((0,tk.n)(t)){e.preventDefault();let r=tx(t);"push"===tP(t)?s6.push(r,{}):s6.replace(r,{})}}return window.addEventListener("error",e),window.addEventListener("unhandledrejection",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let{pushRef:u}=i;if(u.mpaNavigation){if(oy.pendingMpaPath!==s){let e=window.location;u.pendingPush?e.assign(s):e.replace(s),oy.pendingMpaPath=s}throw an}(0,$.useEffect)(()=>{let e=window.history.pushState.bind(window.history),t=window.history.replaceState.bind(window.history),r=e=>{let t=window.location.href,r=window.history.state?.__PRIVATE_NEXTJS_INTERNALS_TREE;(0,$.startTransition)(()=>{(0,n1.Dd)({type:nV.IU,url:new URL(e??t,t),historyState:r})})};window.history.pushState=function(t,n,a){return t?.__NA||t?._N||(t=ob(t),a&&r(a)),e(t,n,a)},window.history.replaceState=function(e,n,a){return e?.__NA||e?._N||(e=ob(e),a&&r(a)),t(e,n,a)};let n=e=>{if(e.state){if(!e.state.__NA)return void window.location.reload();(0,$.startTransition)(()=>{var t,r;t=window.location.href,r=e.state.__PRIVATE_NEXTJS_INTERNALS_TREE,(0,n1.Dd)({type:nV.IU,url:new URL(t),historyState:r})})}};return window.addEventListener("popstate",n),()=>{window.history.pushState=e,window.history.replaceState=t,window.removeEventListener("popstate",n)}},[]);let{cache:c,tree:d,nextUrl:f,focusAndScrollRef:h,previousNextUrl:p}=i,m=(0,$.useMemo)(()=>(function e(t,r,n,a){if(0===Object.keys(r).length)return[t,n,a];let i=Object.keys(r).filter(e=>"children"!==e);"children"in r&&i.unshift("children");let s=t.slots;if(null!==s)for(let t of i){let[a,i]=r[t];if(a===t3.WO)continue;let o=s[t];if(!o)continue;let l=e(o,i,n+"/"+ar(a),n+"/"+ar(a,!0));if(l)return l}return null})(c,d[1],"",""),[c,d]),g=(0,$.useMemo)(()=>(function e(t,r={}){for(let n of Object.values(t[1])){let t=n[0],a=Array.isArray(t),i=a?t[1]:t;!i||i.startsWith(t3.OG)||(a&&("c"===t[2]||"oc"===t[2])?r[t[0]]=t[1].split("/"):a&&(r[t[0]]=t[1]),r=e(n,r))}return r})(d),[d]),y=(0,$.useMemo)(()=>({parentTree:d,parentCacheNode:c,parentSegmentPath:null,parentParams:{},parentLoadingData:null,debugNameContext:"/",url:s,isActive:!0}),[d,c,s]),v=(0,$.useMemo)(()=>({tree:d,focusAndScrollRef:h,nextUrl:f,previousNextUrl:p}),[d,h,f,p]);if(null!==m){let[e,t,r]=m;a=(0,O.jsx)(ow,{headCacheNode:e},r)}else a=null;let b=(0,O.jsxs)(at,{children:[a,(0,O.jsx)(og,{children:c.rsc}),(0,O.jsx)(n4,{tree:d})]});return b=(0,O.jsx)(oe,{errorComponent:t[0],errorStyles:t[1],children:b}),(0,O.jsxs)(O.Fragment,{children:[(0,O.jsx)(ov,{appRouterState:i}),(0,O.jsx)(oE,{}),(0,O.jsx)(nZ.Provider,{value:null,children:(0,O.jsx)(nQ.Provider,{value:g,children:(0,O.jsx)(nY.Provider,{value:l,children:(0,O.jsx)(nK.Provider,{value:o,children:(0,O.jsx)(nz.Provider,{value:v,children:(0,O.jsx)(nH.Provider,{value:s6,children:(0,O.jsx)(nB.Provider,{value:y,children:b})})})})})})})]})}function o_({actionQueue:e,globalErrorState:t,webSocket:r,staticIndicatorState:n}){process.env.__NEXT_APP_NAV_FAIL_HANDLING&&(0,$.useEffect)(()=>{let e=e=>{"reason"in e?e.reason:e.error};return window.addEventListener("unhandledrejection",e),window.addEventListener("error",e),()=>{window.removeEventListener("error",e),window.removeEventListener("unhandledrejection",e)}},[]);let a=(0,O.jsx)(oS,{actionQueue:e,globalError:t,webSocket:r,staticIndicatorState:n});return(0,O.jsx)(oe,{errorComponent:oh,children:a})}function oE(){let[,e]=$.useState(0),t=r?.size??0;(0,$.useEffect)(()=>{if(!r||!n)return;let a=()=>e(e=>e+1);return n.add(a),t!==r.size&&a(),()=>{n.delete(a)}},[t,e]);let a=function(e=!1){let t=process.env.NEXT_IMMUTABLE_ASSET_TOKEN||process.env.NEXT_DEPLOYMENT_ID;return t?`${e?"&":"?"}dpl=${t}`:""}();return[...r||[]].map((e,t)=>(0,O.jsx)("link",{rel:"stylesheet",href:`${e}${a}`,precedence:"next"},t))}function oR({navigatedAt:e,initialRSCPayload:t,initialFlightStreamForCache:r,location:n}){let{c:a,f:i,q:s,i:o,S:l,s:u,l:c,h:d,p:f,d:h}=t,p=a.join("/"),{tree:m,seedData:g,head:y}=af(i[0]),v=n?nW(n):p,b={metadataVaryPath:null},w=i2(m,s,b),S=b.metadataVaryPath,_=sE(e,w,null,1,g,y,iE(e,h??-1),!1,{separateRefreshUrls:null,scrollRef:null});if(null!==n&&null!==S){if(iC(Date.now(),n.pathname,null,null,w,S,o,v,l,!1),null!==g&&void 0!==u)if(void 0!==c&&null!=r)sy(r,c,void 0).then(async e=>{let t=Date.now(),r=await so(t,e.s);sl(t,e.f,void 0,e.h,r,m,s,!0)}).catch(()=>{});else{let e=Date.now();so(e,u).then(t=>{sl(e,i,void 0,d,t,m,s,!1)}).catch(()=>{}),r?.cancel()}else r?.cancel();null!=f&&su(Date.now(),f,m,s).then(e=>{null!==e&&se(Date.now(),aP.PPRRuntime,e.flightDatas,e.buildId,e.isResponsePartial,e.headVaryParams,e.staleAt,e.navigationSeed,null)}).catch(()=>{})}return{tree:_.route,cache:_.node,pushRef:{pendingPush:!1,mpaNavigation:!1,preserveCustomHistoryState:!0},focusAndScrollRef:{scrollRef:null,forceScroll:!1,onlyHashChange:!1,hashFragment:null},canonicalUrl:v,renderedSearch:s,nextUrl:(au(m)||n?.pathname)??null,previousNextUrl:null,debugInfo:null}}var ok=((w={}).ProspectiveRender="the prospective render",w.SegmentCollection="segment collection",w.InstantValidation="instant validation",w);function ox(e,t,r){let n;if(!tV(e)){if(tq(e))return void console.error(e);if("object"==typeof e&&null!==e&&"string"==typeof e.message){if(n=e.message,"string"==typeof e.stack){let a=e.stack,i=a.indexOf("\n");if(i>-1){let e=Object.defineProperty(Error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${n}`),"__NEXT_ERROR_CODE",{value:"E949",enumerable:!1,configurable:!0});e.stack="Error: "+e.message+a.slice(i),console.error(e);return}}}else"string"==typeof e&&(n=e);if(n)return void console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${n}`);console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`),console.error(e)}}let oP=require("next/dist/server/node-environment-extensions/fast-set-immediate.external.js"),oC=!0;function oT(){console.warn("Next.js cannot guarantee that Cache Components will run as expected due to the current runtime's implementation of `setTimeout()`.\nPlease report a github issue here: https://github.com/vercel/next.js/issues/new/")}function oA(){}function oO(e,...t){return new Promise((r,n)=>{let a,i=function(e=0){{let n=!0,a=null,i=!1,s=!1;function t(e){return i=!0,oC&&(0,oP.unpatchedSetImmediate)(()=>{s=!0}),e()}function r(e){return oC&&s&&(oC=!1,oT()),e()}return function(s){if(i)throw Object.defineProperty(new eU.z("Cannot schedule more timers into a group that already executed"),"__NEXT_ERROR_CODE",{value:"E935",enumerable:!1,configurable:!0});let o=setTimeout(n?t:r,e,s);if(n=!1,!oC)return o;try{"_idleStart"in o&&"number"==typeof o._idleStart?null===a?a=o._idleStart:o._idleStart=a:(oC=!1,oT())}catch(e){console.error(Object.defineProperty(new eU.z("An unexpected error occurred while adjusting `_idleStart` on an atomic timer",{cause:e}),"__NEXT_ERROR_CODE",{value:"E933",enumerable:!1,configurable:!0})),oC=!1,oT()}return o}}}(),s=[];s.push(i(()=>{try{(0,oP.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),a=e(),(0,s0.Q)(a)&&a.then(oA,oA)}catch(e){for(let e=1;e{try{(0,oP.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(),r()}catch(e){for(;++a{try{(0,oP.expectNoPendingImmediates)(),r(a)}catch(e){n(e)}}))})}let oj=require("next/dist/server/app-render/console-async-storage.external.js");class o${constructor(){this.count=0,this.earlyListeners=[],this.listeners=[],this.tickPending=!1,this.pendingTimeoutCleanup=null,this.subscribedSignals=null,this.invokeListenersIfNoPendingReads=()=>{if(this.pendingTimeoutCleanup=null,0===this.count){for(let e=0;eprocess.nextTick(()=>{if(this.tickPending=!1,0===this.count){for(let e=0;e{t=clearTimeout.bind(null,setTimeout(e,0))}),t=clearImmediate.bind(null,r),()=>t())}inputReady(){return new Promise(e=>{this.earlyListeners.push(e),0===this.count&&this.noMorePendingCaches()})}cacheReady(){return new Promise(e=>{this.listeners.push(e),0===this.count&&this.noMorePendingCaches()})}beginRead(){if(this.count++,this.pendingTimeoutCleanup&&(this.pendingTimeoutCleanup(),this.pendingTimeoutCleanup=null),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.beginRead()}endRead(){if(0===this.count)throw Object.defineProperty(new eU.z("CacheSignal got more endRead() calls than beginRead() calls"),"__NEXT_ERROR_CODE",{value:"E678",enumerable:!1,configurable:!0});if(this.count--,0===this.count&&this.noMorePendingCaches(),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.endRead()}hasPendingReads(){return this.count>0}trackRead(e){this.beginRead();let t=this.endRead.bind(this);return e.then(t,t),e}subscribeToReads(e){if(e===this)throw Object.defineProperty(new eU.z("A CacheSignal cannot subscribe to itself"),"__NEXT_ERROR_CODE",{value:"E679",enumerable:!1,configurable:!0});null===this.subscribedSignals&&(this.subscribedSignals=new Set),this.subscribedSignals.add(e);for(let t=0;tt.includes(e))}class oD{update(e){this._done||(this.currentValue=e,this._resolve?(this._resolve({value:e,done:!1}),this._resolve=null):this._buffer.push(e))}close(){!this._done&&(this._done=!0,this._resolve&&(this._resolve({value:void 0,done:!0}),this._resolve=null))}[Symbol.asyncIterator](){return{next:()=>this._buffer.length>0?Promise.resolve({value:this._buffer.shift(),done:!1}):this._done?Promise.resolve({value:void 0,done:!0}):new Promise(e=>{this._resolve=e})}}constructor(){this._resolve=null,this._done=!1,this._buffer=[],this.currentValue=0}}function oN(e){return t=>{var r;return t===ep.AR&&"number"==typeof(null==(r=e.staleTimes)?void 0:r.static)?e.staleTimes.static:t}}function oM(e,t,r){let n=e.stale;t.update(r(n)),Object.defineProperty(e,"stale",{get:()=>n,set:e=>{n=e,t.update(r(e))},configurable:!0,enumerable:!0})}async function oL(e){e.close(),await Promise.resolve(),await Promise.resolve(),await Promise.resolve()}function oU(e){let t=!1;return async function(){return t?"":(t=!0,``)}}var oF=a("./dist/compiled/path-to-regexp/index.js");let oH=/[|\\{}()[\]^$+*?.-]/,oB=/[|\\{}()[\]^$+*?.-]/g;function oz(e){return oH.test(e)?e.replace(oB,"\\$&"):e}function oq(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:n=!1}={}){let{parameterizedRoute:a,groups:i}=function(e,t,r){let n={},a=1,i=[];for(let s of ey(e).slice(1).split("/")){let e=nE.VB.find(e=>s.startsWith(e)),o=s.match(nA);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=nO(o[2]);n[t]={pos:a++,repeat:s,optional:r},i.push(`/${oz(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=nO(o[2]);n[e]={pos:a++,repeat:t,optional:s},r&&o[1]&&i.push(`/${oz(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${oz(s)}`);t&&o&&o[3]&&i.push(oz(o[3]))}return{parameterizedRoute:i.join(""),groups:n}}(e,t,r),s=a;return n||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}function oX({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:n,keyPrefix:a,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:u}=nO(r),c=o.replace(/\W/g,"");a&&(c=`${a}${c}`);let d=!1;(0===c.length||c.length>30)&&(d=!0),isNaN(parseInt(c.slice(0,1)))||(d=!0),d&&(c=t());let f=c in n;a?n[c]=`${a}${o}`:n[c]=o;let h=e?oz(e):"";return s=f&&i?`\\k<${c}>`:u?`(?<${c}>.+?)`:`(?<${c}>[^/]+?)`,{key:o,pattern:l?`(?:/${h}${s})?`:`/${h}${s}`,cleanedKey:c,optional:l,repeat:u}}var oV=a("./dist/esm/shared/lib/utils.js");let oW="_NEXTSEP_";function oG(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function oJ(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${oW}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${oW}`)}function oK(e){return e.replace(RegExp(`\\)${oW}`,"g"),")")}function oY(e,t,r){if("string"!=typeof e)return(0,oF.pathToRegexp)(e,t,r);let n=oG(e),a=n?oJ(e):e;try{return(0,oF.pathToRegexp)(a,t,r)}catch(a){if(!n)try{let n=oJ(e);return(0,oF.pathToRegexp)(n,t,r)}catch(e){}throw a}}function oQ(e,t){let r=oG(e),n=r?oJ(e):e;try{let e=(0,oF.compile)(n,t);if(r)return t=>oK(e(t));return e}catch(n){if(!r)try{let r=oJ(e),n=(0,oF.compile)(r,t);return e=>oK(n(e))}catch(e){}throw n}}function oZ({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let a=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new oV.Xc("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>a(e)):i[e]=a(t))}return i},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${oW}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${oW}`),""):e):n[e]=r;return n}}var o0=a("./dist/esm/shared/lib/router/utils/querystring.js");function o1(e){return e.replace(/__ESC_COLON_/gi,":")}function o2(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),oQ(`/${e}`,{validate:!1})(t).slice(1)}function o3(e){try{return decodeURIComponent(e)}catch{return e}}function o4(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let n=t.searchParams.getAll(e);r[e]=n.length>1?n:n[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}let o6=/https?|ftp|gopher|file/;function o8(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(o0.Bw(s)));let l=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||o6.test(n))&&!1!==o?(o="//"+(o||""),a&&"/"!==a[0]&&(a="/"+a)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),a=a.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${o}${a}${l}${i}`}function o9(e,t){for(let r in delete e.nextInternalLocale,e){let n=r!==ep.AA&&r.startsWith(ep.AA),a=r!==ep.h&&r.startsWith(ep.h);(n||a||t.includes(r))&&delete e[r]}}function o5(e,t){return"string"==typeof e[ep.vS]&&e[ep.c1]===t?e[ep.vS].split(","):[]}let o7=require("next/dist/server/app-render/module-loading/track-module-loading.external.js"),le={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1},lt=$.createContext(le);async function lr(e){let{mod:t}=await rG(e),r=t?t.unstable_instant:void 0;if(r&&"object"==typeof r&&"runtime"===r.prefetch)return!0;let{parallelRoutes:n}=rK(e);for(let e in n){let t=n[e];if(await lr(t))return!0}return!1}async function ln(e){let{mod:t}=await rG(e),r=t?t.unstable_instant:void 0;if(void 0!==r){if("object"==typeof r)return!1;else if(!1===r)return!0}let{parallelRoutes:n}=rK(e);for(let e in n){let t=n[e];if(await ln(t))return!0}return!1}async function la(e,t){let r=await ls(e),n=!1;for(let{config:e}of r)if("object"==typeof e){if(!0===e.unstable_disableValidation||"dev"===t&&!0===e.unstable_disableDevValidation||"build"===t&&!0===e.unstable_disableBuildValidation)return!1;n=!0}return n}ll(async e=>la(e,"dev"));let li=ll(async e=>la(e,"build")),ls=ll(async e=>{let t=[];async function r(e,n){let{mod:a}=await rG(e),i=a?a.unstable_instant:void 0;void 0!==i&&t.push({path:n,config:i});let{parallelRoutes:s}=rK(e);for(let e in s){let t=s[e];await r(t,[...n,e])}}return await r(e,[]),t}),lo=async e=>{let{mod:t}=await rG(e),r=t?t.unstable_instant:void 0,n=null;void 0!==r&&"object"==typeof r&&r.samples&&(n=r.samples);let{parallelRoutes:a}=rK(e);for(let e in a){if("children"!==e)continue;let t=a[e],r=await lo(t);null!==r&&(n=r)}return n};function ll(e){let t=new WeakMap;return r=>{let n=j.workAsyncStorage.getStore();if(!n)return e(r);let a=t.get(n);if(a&&a.has(r))return a.get(r);let i=e(r);return a||(a=new WeakMap,t.set(n,a)),a.set(r,i),i}}function lu(){}function lc(e,t){return e.sharedContext.deploymentId||(t.b=e.sharedContext.buildId),t}async function ld(e){let{page:t,parallelRoutes:r}=rK(e),n=null;if(void 0!==t){let e=await t[0]();if(e&&"number"==typeof e.unstable_dynamicStaleTime){let t=e.unstable_dynamicStaleTime;n=null!==n?Math.min(n,t):t}}let a=[];for(let e in r)a.push(ld(r[e]));for(let e of(await Promise.all(a)))null!==e&&(n=null!==n?Math.min(n,e):e);return n}function lf(e,t,r){return function(n){let[a,,,i]=n,s=(0,tK.Hp)(a);return s?nT(e,s.paramName,tJ[s.paramType],t,r?i:null):null}}function lh({createElement:e,pagePath:t,statusCode:r,isPossibleServerAction:n}){return!n&&("/404"===t||"number"==typeof r&&r>400)?e("meta",{name:"robots",content:"noindex"}):null}async function lp(e,t){let r="",{componentMod:{routeModule:{userland:{loaderTree:n}},createElement:a,createMetadataComponents:i,Fragment:s},query:o,requestId:l,flightRouterState:u,workStore:c,url:d}=e,f=!!e.renderOpts.serveStreamingMetadata;if(!(null==t?void 0:t.skipPageRendering)){var h;let t=await lr(n),{Viewport:c,Metadata:p,MetadataOutlet:m}=i({tree:n,parsedQuery:o,pathname:d.pathname,metadataContext:th(e.renderOpts),interpolatedParams:e.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:t}),g=a(s,{key:"h"},a(lh,{createElement:a,pagePath:e.pagePath,statusCode:e.res.statusCode,isPossibleServerAction:e.isPossibleServerAction}),a(c,{key:l+"v"}),a(p,{key:l+"m"}));r=(await nS({ctx:e,loaderTreeToFilter:n,parentParams:{},flightRouterState:u,rscHead:g,injectedCSS:new Set,injectedJS:new Set,injectedFontPreloadTags:new Set,rootLayoutIncluded:!1,preloadCallbacks:[],MetadataOutlet:m,hintTree:(null==(h=e.renderOpts.prefetchHints)?void 0:h[e.pagePath])??null})).map(e=>e.slice(1))}let p=e.res.getHeader("vary"),m="string"==typeof p&&p.includes(X.kO);if(null==t?void 0:t.actionResult)return lc(e,{a:t.actionResult,f:r,q:lR(o),i:!!m});let g=lc(e,{f:r,q:lR(o),i:!!m,S:c.isStaticGeneration,h:nu()});if((null==t?void 0:t.staleTimeIterable)!==void 0&&(g.s=t.staleTimeIterable),(null==t?void 0:t.staticStageByteLengthPromise)!==void 0&&(g.l=t.staticStageByteLengthPromise),(null==t?void 0:t.runtimePrefetchStream)!==void 0&&(g.p=t.runtimePrefetchStream),!c.isStaticGeneration){let t=await ld(e.componentMod.routeModule.userland.loaderTree);null!==t&&(g.d=t)}return g}function lm(e,t){var r;return{routerKind:"App Router",routePath:e.pagePath,routeType:e.isPossibleServerAction?"action":"render",renderSource:t,revalidateReason:(r=e.workStore).isOnDemandRevalidate?"on-demand":r.isStaticGeneration?"stale":void 0}}async function lg(e,t,r,n){let{htmlRequestId:a,renderOpts:i,requestId:s,workStore:o}=t,{onInstrumentationRequestError:l,setReactDebugChannel:c,isBuildTimePrerendering:d=!1}=i,f=tW(!1,d,o.reactServerErrorsByDigest,function(r,n){return null==l?void 0:l(r,e,lm(t,"react-server-components-payload"),n)}),h=c&&lu();h&&c(h.clientSide,a,s);let{clientModules:p}=eY(),m=await eV.workUnitAsyncStorage.run(r,lp,t,n),g=eV.workUnitAsyncStorage.run(r,ts,t.componentMod,m,p,{onError:f,temporaryReferences:null==n?void 0:n.temporaryReferences,filterStackFrame:u,debugChannel:null==h?void 0:h.serverSide});return new tA(g,{fetchMetrics:o.fetchMetrics},null==n?void 0:n.waitUntil)}async function ly(e,t,r){let n,a,{componentMod:i,workStore:s,renderOpts:o}=t,{renderToReadableStream:l,routeModule:c}=i,{loaderTree:d}=c.userland,{onInstrumentationRequestError:f,experimental:h}=o,p=tW(!1,!1,s.reactServerErrorsByDigest,function(r,n){return null==f?void 0:f(r,e,lm(t,"react-server-components-payload"),n)}),m=oN(h),g=new oD,y=new nn.V(null,null,!1);r.stale=ep.AR,r.stagedRendering=y,r.asyncApiPromises=lN(y,r.cookies,r.mutableCookies,r.headers),oM(r,g,m);let v=new Promise(e=>{n=e});if(await lr(d)){let e=nI();r.prerenderResumeDataCache=e;let n=new o$;(0,o7.trackPendingModules)(n),r.cacheSignal=n;let i=new TransformStream;a=i.readable,n.cacheReady().then(()=>lv(i.writable,t,e,r,p))}let b=await eV.workUnitAsyncStorage.run(r,lp,t,{staleTimeIterable:g,staticStageByteLengthPromise:v,runtimePrefetchStream:a}),{clientModules:w}=eY();return new tA(await oO(()=>{y.advanceStage(nn.D.Static);let[e,t]=eV.workUnitAsyncStorage.run(r,l,b,w,{onError:p,filterStackFrame:u}).tee();return lD(t,y).then(n),e},()=>{oL(g)},()=>{y.advanceStage(nn.D.Dynamic)}),{fetchMetrics:s.fetchMetrics})}async function lv(e,t,r,n,a){try{let{componentMod:i,getDynamicParamFromSegment:s}=t,{loaderTree:o}=i.routeModule.userland,l=nv(o,s),u=new oD,{result:c}=await l_(t,lp.bind(null,t,{staleTimeIterable:u}),r,null,l,n.headers,n.cookies,n.draftMode,a,u);await c.prelude.pipeTo(e)}catch{try{await e.close()}catch{}}}async function lb(e,t,r){let{workStore:n,renderOpts:a}=t,{isBuildTimePrerendering:i=!1,onInstrumentationRequestError:s}=a,o=tW(!1,i,n.reactServerErrorsByDigest,function(r,n){return null==s?void 0:s(r,e,lm(t,"react-server-components-payload"),n)}),l={},u=new oD,{componentMod:{routeModule:{userland:{loaderTree:c}}},getDynamicParamFromSegment:d}=t,f=nv(c,d),h=nI();await lw(t,lp.bind(null,t),h,null,f,r.headers,r.cookies,r.draftMode);let p=await l_(t,lp.bind(null,t,{staleTimeIterable:u}),h,null,f,r.headers,r.cookies,r.draftMode,o,u);return lj(p,l,n),l.fetchMetrics=t.workStore.fetchMetrics,new tA(p.result.prelude,l)}async function lw(e,t,r,n,a,i,s,o){let{implicitTags:l,renderOpts:c,workStore:d}=e,{ComponentMod:f}=c,h=new AbortController,p=new AbortController,m=new o$,g={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:l,renderSignal:p.signal,controller:h,cacheSignal:m,dynamicTracking:null,revalidate:1,expire:0,stale:ep.AR,tags:[...l.tags],renderResumeDataCache:n,prerenderResumeDataCache:r,hmrRefreshHash:void 0,varyParamsAccumulator:null,stagedRendering:null,headers:i,cookies:s,draftMode:o},{clientModules:y}=eY(),v=await eV.workUnitAsyncStorage.run(g,t),b={filterStackFrame:u,onError:e=>{let t=tV(e);return t||(h.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,d.route,ok.ProspectiveRender)))},signal:p.signal},w=eV.workUnitAsyncStorage.run(g,tc(f),v,y,b);if((0,o7.trackPendingModules)(m),await m.cacheReady(),p.abort(),h.abort(),d.invalidDynamicUsageError)throw d.invalidDynamicUsageError;try{return await e8(w)}catch(e){return p.signal.aborted||h.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,d.route,ok.ProspectiveRender),null}}function lS(e,t){let r=new Uint8Array([t?126:35]);return e.pipeThrough(new TransformStream({start(e){e.enqueue(r)}}))}async function l_(e,t,r,n,a,i,s,o,l,c){let{implicitTags:d,renderOpts:f}=e,{ComponentMod:h,experimental:p,isDebugDynamicAccesses:m}=f,g=oN(p),y=!1,v=new AbortController,b=(0,tF.uO)(m),w=new nn.V(v.signal,null,!0),S=nl(),_={type:"prerender-runtime",phase:"render",rootParams:a,implicitTags:d,renderSignal:v.signal,controller:v,cacheSignal:null,dynamicTracking:b,revalidate:1,expire:0,stale:ep.AR,tags:[...d.tags],prerenderResumeDataCache:r,renderResumeDataCache:n,hmrRefreshHash:void 0,varyParamsAccumulator:S,stagedRendering:w,headers:i,cookies:s,draftMode:o};oM(_,c,g);let{clientModules:E}=eY(),R=await eV.workUnitAsyncStorage.run(_,t),k=!0,x=await oO(async()=>{w.advanceStage(nn.D.EarlyStatic);let e=await eV.workUnitAsyncStorage.run(_,tc(h),R,E,{filterStackFrame:u,onError:l,signal:v.signal});return k=!1,e},()=>{w.advanceStage(nn.D.Static)},()=>{w.advanceStage(nn.D.EarlyRuntime)},()=>{w.advanceStage(nn.D.Runtime)},()=>{Promise.all([oL(c),nc(S)]).then(()=>{if(v.signal.aborted){y=!0;return}k&&(y=!0),v.abort()})});return x.prelude=lS(x.prelude,y),{result:x,dynamicAccess:b,isPartial:y,collectedRevalidate:_.revalidate,collectedExpire:_.expire,collectedStale:c.currentValue,collectedTags:_.tags}}function lE(e){return(e.pathname+e.search).split("/")}function lR(e){let t=[];for(let r in e){let n=e[r];if(null!=n)if(Array.isArray(n))for(let e of n)t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(e))}`);else t.push(`${encodeURIComponent(r)}=${encodeURIComponent(String(n))}`)}return 0===t.length?"":"?"+t.join("&")}async function lk(e,t,r){var n;let a,{is404:i,staleTimeIterable:s,staticStageByteLengthPromise:o,runtimePrefetchStream:l}=r,u=new Set,c=new Set,d=new Set,{getDynamicParamFromSegment:f,query:h,appUsingSizeAdjustment:p,componentMod:{createMetadataComponents:m,createElement:g,Fragment:y},url:v,workStore:b}=t,w=(null==(n=t.renderOpts.prefetchHints)?void 0:n[t.pagePath])??null,S=await t6(e,w,f,h),_=!!t.renderOpts.serveStreamingMetadata,E=!!e[2]["global-not-found"],R=await lr(e),{Viewport:k,Metadata:x,MetadataOutlet:P}=m({tree:e,errorType:i&&!E?"not-found":void 0,parsedQuery:h,pathname:v.pathname,metadataContext:th(t.renderOpts),interpolatedParams:t.interpolatedParams,serveStreamingMetadata:_,isRuntimePrefetchable:R}),C=[],T=await np({ctx:t,loaderTree:e,parentParams:{},parentOptionalCatchAllParamName:null,parentRuntimePrefetchable:!1,injectedCSS:u,injectedJS:c,injectedFontPreloadTags:d,rootLayoutIncluded:!1,missingSlots:a,preloadCallbacks:C,authInterrupts:t.renderOpts.experimental.authInterrupts,MetadataOutlet:P}),A=t.res.getHeader("vary"),O="string"==typeof A&&A.includes(X.kO),j=g(y,{key:"h"},g(lh,{createElement:g,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),g(k,null),g(x,null),p?g("meta",{name:"next-size-adjust",content:""}):null),{GlobalError:$,styles:I}=await lX(e,t),D=b.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lc(t,{P:g(lx,{preloadCallbacks:C}),c:lE(v),q:lR(h),i:!!O,f:[[S,T,j,D]],m:a,G:[$,I],S:b.isStaticGeneration||t.renderOpts.cacheComponents,h:nu(),s:s,l:o,p:l,d:b.isStaticGeneration?void 0:await ld(e)??void 0})}function lx({preloadCallbacks:e}){return e.forEach(e=>e()),null}async function lP(e,t,r,n){var a;let{getDynamicParamFromSegment:i,query:s,componentMod:{createMetadataComponents:o,createElement:l,Fragment:u},url:c,workStore:d}=t,f=!!t.renderOpts.serveStreamingMetadata,h=await lr(e),{Viewport:p,Metadata:m}=o({tree:e,parsedQuery:s,pathname:c.pathname,metadataContext:th(t.renderOpts),errorType:n,interpolatedParams:t.interpolatedParams,serveStreamingMetadata:f,isRuntimePrefetchable:h}),g=l(u,{key:"h"},l(lh,{createElement:l,pagePath:t.pagePath,statusCode:t.res.statusCode,isPossibleServerAction:t.isPossibleServerAction}),l(p,null),"",l(m,null)),y=(null==(a=t.renderOpts.prefetchHints)?void 0:a[t.pagePath])??null,v=await t6(e,y,i,s);r&&(tH(r)||Object.defineProperty(Error(r+""),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0}));let b=[l("html",{id:"__next_error__"},l("head",null),l("body",null,null)),{},null,!1,null],{GlobalError:w,styles:S}=await lX(e,t),_=d.isStaticGeneration&&!0===t.renderOpts.experimental.isRoutePPREnabled;return lc(t,{c:lE(c),q:lR(s),m:void 0,i:!1,f:[[v,b,g,_]],G:[w,S],S:d.isStaticGeneration||t.renderOpts.cacheComponents,h:nu()})}function lC({reactServerStream:e,reactDebugStream:t,debugEndTime:r,preinitScripts:n,ServerInsertedHTMLProvider:i,nonce:s,images:o}){n();let l=$.use(e3(e,t,r,s)),u=s3(oR({navigatedAt:-1,initialRSCPayload:l,location:null}),null),{HeadManagerContext:c}=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");return(0,O.jsx)(c.Provider,{value:{appDir:!0,nonce:s},children:(0,O.jsx)(lt.Provider,{value:o??le,children:(0,O.jsx)(i,{children:(0,O.jsx)(o_,{actionQueue:u,globalErrorState:l.G})})})})}function lT({reactServerStream:e,preinitScripts:t,ServerInsertedHTMLProvider:r,nonce:n,images:a}){t();let i=$.use(e3(e,void 0,void 0,n)),s=s3(oR({navigatedAt:-1,initialRSCPayload:i,location:null}),null);return(0,O.jsx)(lt.Provider,{value:a??le,children:(0,O.jsx)(r,{children:(0,O.jsx)(o_,{actionQueue:s,globalErrorState:i.G})})})}async function lA(e,t,r,n,i,s,o,l,u,c,d,f,h){let p,m,g="/404"===n;g&&(t.statusCode=404);let y=Date.now(),{ComponentMod:v,nextFontManifest:b,serverActions:w,assetPrefix:S="",enableTainting:_,cacheComponents:E,setIsrStatus:R}=s,{cachedNavigations:k}=s.experimental;if(v.__next_app__){let e="performance"in globalThis?{require:(...e)=>{let t=performance.now();0===e$&&(e$=t);try{return eD+=1,v.__next_app__.require(...e)}finally{eI+=performance.now()-t}},loadChunk:(...e)=>{let t=performance.now(),r=v.__next_app__.loadChunk(...e);return r.finally(()=>{eI+=performance.now()-t}),r}}:v.__next_app__,t=()=>{if(!E)return!1;let e=eV.workUnitAsyncStorage.getStore();if(!e)return!1;switch(e.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":case"cache":case"private-cache":return!0;case"prerender-ppr":case"prerender-legacy":case"request":case"unstable-cache":case"generate-static-params":return!1}};globalThis.__next_require__=(...r)=>{let n=e.require(...r);return t()&&(0,o7.trackPendingImport)(n),n},globalThis.__next_chunk_load__=(...r)=>{let n=e.loadChunk(...r);return t()&&(0,o7.trackPendingChunkLoad)(n),n}}t.onClose(()=>{o.shouldTrackFetchMetrics=!1}),e.originalRequest.on("end",()=>{if("performance"in globalThis){let e=eN({reset:!0});e&&(0,I.getTracer)().startSpan(D.Fx.clientComponentLoading,{startTime:e.clientComponentLoadStart,attributes:{"next.clientComponentLoadCount":e.clientComponentLoadCount,"next.span_type":D.Fx.clientComponentLoading}}).end(e.clientComponentLoadStart+e.clientComponentLoadTimes)}});let x={statusCode:g?404:void 0},P=!!(null==b?void 0:b.appUsingSizeAdjust);v.patchFetch();let{routeModule:{userland:{loaderTree:C}},taintObjectReference:A}=v;_&&A("Do not pass process.env to Client Components since it will leak sensitive data",process.env),o.fetchMetrics=[],x.fetchMetrics=o.fetchMetrics;var O=i={...i};for(let e of tf)delete O[e];let{isStaticGeneration:j}=o,{flightRouterState:$,isPrefetchRequest:N,isRuntimePrefetchRequest:M,isRSCRequest:L,isHmrRefresh:U,nonce:F}=l;l.requestId?p=l.requestId:j?p=Buffer.from(await crypto.subtle.digest("SHA-1",Buffer.from(e.url))).toString("hex"):p=a("./dist/compiled/nanoid/index.cjs").nanoid(),m=l.htmlRequestId||p;let H=lf(f,h,s.experimental.optimisticRouting),B=t5(e).isPossibleServerAction,z=T(e,"resolvedPathname");if(!z)throw Object.defineProperty(new eU.z("resolvedPathname must be set in request metadata"),"__NEXT_ERROR_CODE",{value:"E981",enumerable:!1,configurable:!0});let q=await tT(o.page,z,h),X={componentMod:v,url:r,renderOpts:s,workStore:o,parsedRequestHeaders:l,getDynamicParamFromSegment:H,interpolatedParams:f,query:i,isPrefetch:N,isPossibleServerAction:B,requestTimestamp:y,appUsingSizeAdjustment:P,flightRouterState:$,requestId:p,htmlRequestId:m,pagePath:n,assetPrefix:S,isNotFoundPath:g,nonce:F,res:t,sharedContext:d,implicitTags:q};if((0,I.getTracer)().setRootSpanAttribute("next.route",n),j){let a=(0,I.getTracer)().wrap(D.Wc.getBodyResult,{spanName:`prerender route (app) ${n}`,attributes:{"next.route":n}},lq),i=await a(e,t,X,x,C,h);if(i.dynamicAccess&&(0,tF.Lu)(i.dynamicAccess)&&s.isDebugDynamicAccesses)for(let e of(rm("The following dynamic usage was detected:"),(0,tF.JL)(i.dynamicAccess)))rm(e);if(o.invalidDynamicUsageError)throw(0,tF.gR)(o,o.invalidDynamicUsageError),new na.f;if(i.digestErrorsMap.size){let e=i.digestErrorsMap.values().next().value;if(e)throw e}if(i.ssrErrors.length){let e=i.ssrErrors.find(e=>!eM(e)&&!(0,tM.C)(e)&&!(0,tU.p)(e));if(e)throw e}let l={metadata:x,contentType:ep.j9},u=(0,rb.C)(o);if(!1!==u){let e=u.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):l.waitUntil=e}lj(i,x,o),i.renderResumeDataCache&&(x.renderResumeDataCache=i.renderResumeDataCache);let c=new eF(await to(i.stream),l);return o.cacheComponentsEnabled&&o.isBuildTimePrerendering&&s.runInstantValidation&&await li(C)&&await lF(X,i.renderResumeDataCache??null),c}{let n=s.renderResumeDataCache??(null==u?void 0:u.renderResumeDataCache)??null,a=nv(C,X.getDynamicParamFromSegment),i=T(e,"fallbackParams")||null,l=tb.bind(null,e,t,r,a,q,s.onUpdateCookies,s.previewProps,U,c,n,i),d=l();if(L)if(M)return lb(e,X,d);else return E&&k?ly(e,X,d):lg(e,X,d);let f=!1,h=null;if(B){let r=await rC({req:e,res:t,ComponentMod:v,generateFlight:lg,workStore:o,requestStore:d,serverActions:w,ctx:X,metadata:x});if(r){if("not-found"===r.type){let r,n,a,s=(a=(n=!!(r=C[2])["global-not-found"])?{layout:r["global-not-found"],page:[()=>null,"next/dist/client/components/builtin/empty-stub"]}:{page:r["not-found"]},["",{children:[t3.OG,{},a,null]},n?r:{"global-error":r["global-error"]},null]);return t.statusCode=404,x.statusCode=404,new eF(await l$(d,e,t,X,s,h,u,x,void 0,i),{metadata:x,contentType:ep.j9})}else if("done"===r.type)if(r.result)return r.result.assignMetadata(x),r.result;else r.formState&&(h=r.formState)}f=!0}let p={metadata:x,contentType:ep.j9},m=await l$(d,e,t,X,C,h,u,x,f?void 0:l,i);o.invalidDynamicUsageError;let g=(0,rb.C)(o);if(!1!==g){let e=g.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",r.href)});s.waitUntil?s.waitUntil(e):p.waitUntil=e}return new eF(m,p)}}let lO=(e,t,r,n,a,i,s,o)=>{var l,u,c;let d,f,h,p,m,g,y,v,b,w,S;if(!e.url)throw Object.defineProperty(Error("Invalid URL"),"__NEXT_ERROR_CODE",{value:"E182",enumerable:!1,configurable:!0});let _=(0,nF.r)(e.url,void 0,!1),E=(u=e.headers,c={isRoutePPREnabled:!0===i.experimental.isRoutePPREnabled,previewModeId:null==(l=i.previewProps)?void 0:l.previewModeId},p="1"===u[X._V],m="2"===u[X._V],g=void 0!==u[X.sX],v=(y=void 0!==u[X.hY])&&(!p||!c.isRoutePPREnabled)?function(e){if(void 0!==e){if(Array.isArray(e))throw Object.defineProperty(Error("Multiple router state headers were sent. This is not allowed."),"__NEXT_ERROR_CODE",{value:"E418",enumerable:!1,configurable:!0});if(e.length>4e4)throw Object.defineProperty(Error("The router state header was too large."),"__NEXT_ERROR_CODE",{value:"E142",enumerable:!1,configurable:!0});try{let t=JSON.parse(decodeURIComponent(e));return(0,tY.assert)(t,t1),t}catch{throw Object.defineProperty(Error("The router state header was sent but could not be parsed."),"__NEXT_ERROR_CODE",{value:"E10",enumerable:!1,configurable:!0})}}}(u[X.B]):void 0,b="/_tree"===u[X.qm],S="string"==typeof(w=u["content-security-policy"]||u["content-security-policy-report-only"])?function(e){var t;let r=e.split(";").map(e=>e.trim()),n=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!n)return;let a=null==(t=n.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(a){if(eq.test(a))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return a}}(w):void 0,{flightRouterState:v,isPrefetchRequest:p,isRuntimePrefetchRequest:m,isRouteTreePrefetchRequest:b,isHmrRefresh:g,isRSCRequest:y,nonce:S,previouslyRevalidatedTags:o5(u,c.previewModeId),requestId:f,htmlRequestId:h}),{isPrefetchRequest:R,previouslyRevalidatedTags:k,nonce:x}=E,P=null;if("string"==typeof i.postponed){if(a)throw Object.defineProperty(new eU.z("postponed state should not be provided when fallback params are provided"),"__NEXT_ERROR_CODE",{value:"E592",enumerable:!1,configurable:!0});d=nC(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a),P=function(e,t,r){try{var n,a;let i=null==(n=e.match(/^([0-9]*):/))?void 0:n[1];if(!i)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${e}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let s=parseInt(i),o=e.slice(i.length+1,i.length+s+1),l=nD(e.slice(i.length+s+1),r);try{if("null"===o)return{type:1,renderResumeDataCache:l};if(/^[0-9]/.test(o)){let e=null==(a=o.match(/^([0-9]*)/))?void 0:a[1];if(!e)throw Object.defineProperty(Error(`Invariant: invalid postponed state ${JSON.stringify(o)}`),"__NEXT_ERROR_CODE",{value:"E314",enumerable:!1,configurable:!0});let r=parseInt(e),n=JSON.parse(o.slice(e.length,e.length+r)),i=o.slice(e.length+r);for(let[e,[r,a]]of n){let{treeSegment:[,n]}=nT(t,e,a,null,null);i=i.replaceAll(r,n)}return{type:2,data:JSON.parse(i),renderResumeDataCache:l}}return{type:2,data:JSON.parse(o),renderResumeDataCache:l}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:l}}}catch(e){return console.error("Failed to parse postponed state",e),{type:1,renderResumeDataCache:nI()}}}(i.postponed,d,i.experimental.maxPostponedStateSizeBytes)}else d=nC(i.ComponentMod.routeModule.userland.loaderTree,i.params??{},r,a);if((null==P?void 0:P.renderResumeDataCache)&&i.renderResumeDataCache)throw Object.defineProperty(new eU.z("postponed state and dev warmup immutable resume data cache should not be provided together"),"__NEXT_ERROR_CODE",{value:"E589",enumerable:!1,configurable:!0});let C=function({page:e,renderOpts:t,isPrefetchRequest:r,buildId:n,previouslyRevalidatedTags:a,nonce:i}){let s=!t.shouldWaitOnAllReady&&!t.supportsDynamicResponse&&!t.isDraftMode&&!t.isPossibleServerAction,o=s&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),l={isStaticGeneration:s,page:e,route:(0,eW.Yr)(e),incrementalCache:t.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:t.cacheLifeProfiles,isBuildTimePrerendering:t.isBuildTimePrerendering,fetchCache:t.fetchCache,isOnDemandRevalidate:t.isOnDemandRevalidate,isDraftMode:t.isDraftMode,isPrefetchRequest:r,buildId:n,reactLoadableManifest:(null==t?void 0:t.reactLoadableManifest)||{},assetPrefix:(null==t?void 0:t.assetPrefix)||"",nonce:i,afterContext:function(e){let{waitUntil:t,onClose:r,onAfterTaskError:n}=e;return new tw.AfterContext({waitUntil:t,onClose:r,onTaskError:n})}(t),cacheComponentsEnabled:t.cacheComponents,previouslyRevalidatedTags:a,refreshTagsByCacheKind:function(){let e=new Map,t=(0,t_.fs)();if(t)for(let[r,n]of t)"refreshTags"in n&&e.set(r,tS(async()=>n.refreshTags()));return e}(),runInCleanSnapshot:(0,tE.$p)(),shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return t.store=l,l}({page:i.routeModule.definition.page,renderOpts:i,isPrefetchRequest:R,buildId:o.buildId,previouslyRevalidatedTags:k,nonce:x});return j.workAsyncStorage.run(C,lA,e,t,_,r,n,i,C,E,P,s,o,d,a)};function lj(e,t,r){e.collectedTags&&(t.fetchTags=e.collectedTags.join(","));let n=String(e.collectedStale);t.headers??={},t.headers[X.UK]=n,!1===r.forceStatic||0===e.collectedRevalidate?t.cacheControl={revalidate:0,expire:void 0}:t.cacheControl={revalidate:!(e.collectedRevalidate>=ep.AR)&&e.collectedRevalidate,expire:e.collectedExpire>=ep.AR?void 0:e.collectedExpire},0===t.cacheControl.revalidate&&(t.staticBailoutInfo={description:r.dynamicUsageDescription,stack:r.dynamicUsageStack})}async function l$(e,t,r,n,a,i,s,o,l,c){let{assetPrefix:d,htmlRequestId:f,nonce:h,pagePath:p,renderOpts:m,requestId:g,workStore:y}=n,{basePath:v,buildManifest:b,ComponentMod:{createElement:w},crossOrigin:S,experimental:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,setReactDebugChannel:P,shouldWaitOnAllReady:C,subresourceIntegrityManifest:T,supportsDynamicResponse:A,cacheComponents:j}=m,{cachedNavigations:$}=m.experimental,{ServerInsertedHTMLProvider:N,renderServerInsertedHTML:M}=rL(),L=oU(h),U=oI((0,I.getTracer)().getTracePropagationData(),_.clientTraceMetadata),H=b.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${d}/_next/${e}${rY(n,!1)}`,integrity:null==T?void 0:T[e],crossOrigin:S,noModule:!0,nonce:h})),[B,z]=rH(b,d,S,T,rY(n,!0),h,k),q,X=(0,I.getTracer)().startSpan(`render route (app) ${p}`,{attributes:{"next.span_name":`render route (app) ${p}`,"next.span_type":D.Wc.getBodyResult,"next.route":p}}),V=e=>{X.isRecording()&&(e instanceof Error&&(X.recordException(e),X.setAttribute("error.type",e.name)),X.setStatus({code:I.SpanStatusCode.ERROR,message:e instanceof Error?e.message:void 0}),X.end())};return(0,I.getTracer)().withSpan(X,async()=>{var l,c;let w,{reactServerErrorsByDigest:k}=y,I=tW(!1,E,k,function(e,r){return null==R?void 0:R(e,t,lm(n,"react-server-components"),r)},X),D=[],W=tG(!1,E,k,D,function(e){return null==R?void 0:R(e,t,lm(n,"server-rendering"),!1)},X),G=null,Y=r.setHeader.bind(r),Q=r.appendHeader.bind(r),{clientModules:Z}=eY();try{if(j&&$){let t,i,{renderToReadableStream:s}=n.componentMod,o=oN(_),l=new oD,c=new nn.V(null,null,!1);e.stale=ep.AR,e.stagedRendering=c,oM(e,l,o);let d=new Promise(e=>{t=e});if(await lr(a)){let t=nI();e.prerenderResumeDataCache=t;let r=new o$;(0,o7.trackPendingModules)(r),e.cacheSignal=r;let a=new TransformStream;i=a.readable,r.cacheReady().then(()=>lv(a.writable,n,t,e,I))}let f=await eV.workUnitAsyncStorage.run(e,lk,a,n,{is404:404===r.statusCode,staleTimeIterable:l,staticStageByteLengthPromise:d,runtimePrefetchStream:i}),h=await oO(()=>{c.advanceStage(nn.D.Static);let[r,n]=eV.workUnitAsyncStorage.run(e,s,f,Z,{onError:I,filterStackFrame:u}).tee();return lD(n,c).then(t),r},()=>{oL(l)},()=>{c.advanceStage(nn.D.Dynamic)});G=new e6(h)}else{let t=await eV.workUnitAsyncStorage.run(e,lk,a,n,{is404:404===r.statusCode}),i=P&&lu();if(i){let[e,t]=i.clientSide.readable.tee();w=e,P({readable:t},f,g)}G=new e6(eV.workUnitAsyncStorage.run(e,ts,n.componentMod,t,Z,{filterStackFrame:u,onError:I,debugChannel:null==i?void 0:i.serverSide}))}if(await F(),"string"==typeof m.postponed){if((null==s?void 0:s.type)===nN.DATA){let e=tr(G.tee(),h,i);return X.isRecording()&&X.end(),J(e,K(ei))}else if(s){let{postponed:t,preludeState:r}=function(e){let[t,r]=e.data;return{preludeState:t,postponed:r}}(s),a=(0,O.jsx)(lC,{reactServerStream:G.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),o=rB({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:D,basePath:v,tracingMetadata:U}),{stream:l,allReady:u}=await eV.workUnitAsyncStorage.run(e,tu,a,t,{onError:W,nonce:h});return u.finally(()=>{X.isRecording()&&X.end()}),await eh(l,{delayDataUntilFirstHtmlChunk:r===nM.Empty,inlinedDataStream:tr(G.consume(),h,i),getServerInsertedHTML:o,getServerInsertedMetadata:L,deploymentId:n.sharedContext.deploymentId})}}let t=rB({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:D,basePath:v,tracingMetadata:U}),o=(0,O.jsx)(lC,{reactServerStream:G.tee(),reactDebugStream:w,debugEndTime:void 0,preinitScripts:B,ServerInsertedHTMLProvider:N,nonce:h,images:n.renderOpts.images}),{stream:c,allReady:d}=await eV.workUnitAsyncStorage.run(e,tl,o,{onError:W,nonce:h,onHeaders:e=>{e.forEach((e,t)=>{Q(t,e)})},maxHeadersLength:x,bootstrapScriptContent:q,bootstrapScripts:[z],formState:i});return d.finally(()=>{X.isRecording()&&X.end()}),await (l={inlinedDataStream:tr(G.consume(),h,i),isStaticGeneration:!0!==A||!!C,allReady:d,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:t,getServerInsertedMetadata:L,validateRootLayout:!1},eu(c,l))}catch(y){let t,s,l;if((0,na.l)(y)||"object"==typeof y&&null!==y&&"message"in y&&"string"==typeof y.message&&y.message.includes("https://nextjs.org/docs/advanced-features/static-html-export"))throw V(y),y;let f=(0,tM.C)(y);if(f){let e=tD(y);throw rp(`${y.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),V(y),y}if((0,tR.RM)(y))r.statusCode=(0,tR.jT)(y),o.statusCode=r.statusCode,t=(0,tR.qe)(r.statusCode);else if((0,tk.n)(y)){t="redirect",r.statusCode=tC(y),o.statusCode=r.statusCode;let n=eb(tx(y),v),a=new Headers;(0,tm.IN)(a,e.mutableCookies)&&Y("set-cookie",Array.from(a.values())),Y("location",n)}else f||(r.statusCode=500,o.statusCode=r.statusCode);let[m,g]=rH(b,d,S,T,rY(n,!1),h,"/_not-found/page");try{if(s=await eV.workUnitAsyncStorage.run(e,lP,a,n,k.has(y.digest)?null:y,t),l=eV.workUnitAsyncStorage.run(e,ts,n.componentMod,s,Z,{filterStackFrame:u,onError:I}),null===G)throw V(y),y}catch(e){throw V(e),e}try{let{stream:t,allReady:r}=await eV.workUnitAsyncStorage.run(e,tl,(0,O.jsx)(lT,{reactServerStream:l,ServerInsertedHTMLProvider:N,preinitScripts:m,nonce:h,images:n.renderOpts.images}),{nonce:h,bootstrapScriptContent:q,bootstrapScripts:[g],formState:i});return r.finally(()=>{X.isRecording()&&X.end()}),await (c={inlinedDataStream:tr(G.consume(),h,i),isStaticGeneration:!0!==A||!!C,deploymentId:n.sharedContext.deploymentId,getServerInsertedHTML:rB({polyfills:H,renderServerInsertedHTML:M,serverCapturedErrors:[],basePath:v,tracingMetadata:U}),getServerInsertedMetadata:L,validateRootLayout:!1},eu(t,c))}catch(e){throw V(e),e}}})}async function lI(e,t,r){let n=[],a=[],i=[],s=e.getReader(),o=!1;function l(){o||(o=!0,s.cancel())}r&&r.addEventListener("abort",l,{once:!0});try{for(;!o;){let{done:e,value:r}=await s.read();if(e){l();break}switch(t.currentStage){case nn.D.Before:throw Object.defineProperty(new eU.z("Unexpected stream chunk while in Before stage"),"__NEXT_ERROR_CODE",{value:"E942",enumerable:!1,configurable:!0});case nn.D.EarlyStatic:case nn.D.Static:n.push(r);case nn.D.EarlyRuntime:case nn.D.Runtime:a.push(r);case nn.D.Dynamic:i.push(r);break;case nn.D.Abandoned:break;default:t.currentStage}}}catch(e){if(!o)throw e}return{staticChunks:n,runtimeChunks:a,dynamicChunks:i}}async function lD(e,t){let r=0,n=e.getReader();for(t.onStage(nn.D.EarlyRuntime,()=>{n.cancel()});;){let{done:e,value:a}=await n.read();if(e)break;if(t.currentStage<=nn.D.Static)r+=a.byteLength;else{n.cancel();break}}return r}function lN(e,t,r,n){return{cookies:e.delayUntilStage(nn.D.Runtime,"cookies",t),earlyCookies:e.delayUntilStage(nn.D.EarlyRuntime,"cookies",t),mutableCookies:e.delayUntilStage(nn.D.Runtime,"cookies",r),earlyMutableCookies:e.delayUntilStage(nn.D.EarlyRuntime,"cookies",r),headers:e.delayUntilStage(nn.D.Runtime,"headers",n),earlyHeaders:e.delayUntilStage(nn.D.EarlyRuntime,"headers",n),sharedParamsParent:e.delayUntilStage(nn.D.Runtime,void 0,""),earlySharedParamsParent:e.delayUntilStage(nn.D.EarlyRuntime,void 0,""),sharedSearchParamsParent:e.delayUntilStage(nn.D.Runtime,void 0,""),earlySharedSearchParamsParent:e.delayUntilStage(nn.D.EarlyRuntime,void 0,""),connection:e.delayUntilStage(nn.D.Dynamic,"connection",void 0)}}async function lM(e,t,r,n,i,s,o,l,u){let c,{implicitTags:d,nonce:f,workStore:h}=o,p=new AbortController,m=new AbortController,g=new AbortController,{ServerInsertedHTMLProvider:y}=rL();c="prerender-client"===e?{type:"prerender-client",phase:"render",rootParams:n,fallbackRouteParams:i,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:s,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null}:{type:"validation-client",phase:"render",rootParams:n,implicitTags:d,renderSignal:g.signal,controller:p,cacheSignal:null,dynamicTracking:null,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...d.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null,boundaryState:null,validationSamples:l,validationSampleTracking:u,fallbackRouteParams:i};let v=function(e,t,r){{let{Readable:n}=a("node:stream"),i=0,s=new n({read(){for(;i{for(;i{s.push(null)})},{once:!0}),s}}(t,r,m.signal),b=eV.workUnitAsyncStorage.run(c,td,(0,O.jsx)(lC,{reactServerStream:v,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:y,nonce:f,images:o.renderOpts.images}),{signal:m.signal,onError:e=>{let t=tV(e);return t||(tq(e)?void console.error(e):void(m.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,h.route,ok.ProspectiveRender)))}});m.signal.addEventListener("abort",()=>{g.abort()},{once:!0}),b.catch(e=>{m.signal.aborted||(0,tF.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,h.route,ok.ProspectiveRender)});let w=new o$;(0,o7.trackPendingModules)(w),await w.cacheReady(),m.abort()}async function lL(e,t,r,n,i,s,o,l){let u="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{createCombinedPayloadAtDepth:c,createCombinedPayloadStream:d,collectStagedSegmentData:f,discoverValidationDepths:h}=s.componentMod.InstantValidation(),{createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js");null==u||u("\nStarting depth-based instant validation...");let m=s.componentMod.routeModule.userland.loaderTree,g=eY(),{cache:y,payload:v,stageEndTimes:b}=await f({[nn.D.Static]:e.staticChunks,[nn.D.Runtime]:e.runtimeChunks,[nn.D.Dynamic]:e.dynamicChunks},t,r,!0,g),{implicitTags:w,nonce:S,workStore:_}=s,E=!!s.renderOpts.setReactDebugChannel;async function R(e,t){return k(e,t,null)}async function k(e,t,a){let u,f=new AbortController,h={expectedIds:new Set,renderedIds:new Set},R=!1;if(a)for(let e of(R=!0,a.expectedIds))h.expectedIds.add(e);let x=await c(v,y,m,s.getDynamicParamFromSegment,s.query,e,t,f.signal,h,g,b,R);if(null===x)return null;let P=new AbortController,C=new AbortController,T=()=>{},{ServerInsertedHTMLProvider:A}=rL(),{stream:j,debugStream:$}=await d(x.payload,f,P.signal,g,r,E),I=(0,tF.md)(x.createInstantStack),D=null!==l?p():null,N=(0,tF.uO)(!1),M={type:"validation-client",phase:"render",rootParams:n,implicitTags:w,renderSignal:C.signal,controller:P,cacheSignal:null,dynamicTracking:N,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...w.tags],prerenderResumeDataCache:null,renderResumeDataCache:null,hmrRefreshHash:o,varyParamsAccumulator:null,boundaryState:h,fallbackRouteParams:i,validationSamples:l,validationSampleTracking:D};try{let{prelude:e}=await oO(()=>{let e=eV.workUnitAsyncStorage.run(M,td,(0,O.jsx)(lC,{reactServerStream:j,reactDebugStream:$??void 0,debugEndTime:void 0,preinitScripts:T,ServerInsertedHTMLProvider:A,nonce:S,images:s.renderOpts.images}),{signal:P.signal,onError:(e,t)=>{if((0,tF.AA)(e)||P.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tF.g)(_,e,I,N,x.hasAmbiguousErrors?tF.Q.Runtime:tF.Q.Dynamic,h);return}if(!P.signal.aborted){let r=t.componentStack;if("string"==typeof r){let t=e;if(e&&"object"==typeof e&&"digest"in e&&"string"==typeof e.digest){let r=_.reactServerErrorsByDigest.get(e.digest);void 0!==r&&(t=r)}(0,tF.n1)(_,I,t,r)}}return tq(e)?void console.error(e):tV(e)}});return P.signal.addEventListener("abort",()=>{C.abort()},{once:!0}),e},()=>{P.abort()}),{preludeIsEmpty:t}=await tt(e);u=(0,tF.Jr)(_,t?tF.r0.Empty:tF.r0.Full,I,D,h)}catch(e){u=(0,tF.Jr)(_,tF.r0.Errored,I,D,h)}if(0===u.length)return[];if(null===a&&x.hasAmbiguousErrors){let r=await k(e,t,h);if(null!==r&&r.length>0)return r}return u}let x=h(m),P=x.length;for(let e=P-1;e>=0;e--){let t=x[e];for(let r=t;r>=0;r--){null==u||u(`Trying depth ${e}`+(r>0?` + groupDepth ${r}...`:"..."));let t=await R(e,r);if(null===t){null==u||u(` No config at depth ${e}+${r}, skipping.`);continue}if(t.length>0)return null==u||u(` Depth ${e}+${r}: ❌ Failed (${t.length} errors)`),t;null==u||u(` Depth ${e}+${r}: ✅ Passed`)}}return null==u||u(`✅ All depths passed`),[]}async function lU(e,t,r,n,a,i){let{componentMod:s}=e,{clientModules:o}=eY(),l=-1/0,c=t,d=new o$;(0,o7.trackPendingModules)(d);let f=i?nI(i):nI(),h=new AbortController,p=new AbortController,m=new AbortController,g=new nn.V(p.signal,m,!0);c.prerenderResumeDataCache=f,c.renderResumeDataCache=null,c.stagedRendering=g,c.cacheSignal=d,c.asyncApiPromises=lN(g,c.cookies,c.mutableCookies,c.headers),c.controller=void 0,c.renderSignal=void 0;let y=await n(c),v=e=>{!0===m.signal.aborted||(d.hasPendingReads()?m.abort():g.advanceStage(e))},b=await oO(()=>{g.advanceStage(nn.D.EarlyStatic),l=performance.now()+performance.timeOrigin;let e=eV.workUnitAsyncStorage.run(c,ts,s,y,o,{onError:a(h.signal,!1),startTime:l,filterStackFrame:u,signal:h.signal});h.signal.addEventListener("abort",()=>{let{reason:e}=h.signal;p.abort(e)},{once:!0});let t=lI(e,g,p.signal);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{v(nn.D.Static)},()=>{v(nn.D.EarlyRuntime)},()=>{v(nn.D.Runtime)},()=>{v(nn.D.Dynamic)});if(g.currentStage!==nn.D.Abandoned)return{accumulatedChunksPromise:b.accumulatedChunksPromise,startTime:l,stageController:g,requestStore:c};await d.cacheReady(),h.abort(),c=r();let w=new AbortController,S=new AbortController,_=new nn.V(S.signal,null,!0);c.prerenderResumeDataCache=null,c.renderResumeDataCache=nD(f),c.stagedRendering=_,c.cacheSignal=null,c.asyncApiPromises=lN(_,c.cookies,c.mutableCookies,c.headers),c.controller=w,c.renderSignal=S.signal;let E=await n(c);return{accumulatedChunksPromise:(await oO(()=>{_.advanceStage(nn.D.EarlyStatic),l=performance.now()+performance.timeOrigin;let e=eV.workUnitAsyncStorage.run(c,ts,s,E,o,{onError:a(w.signal,!0),startTime:l,filterStackFrame:u,signal:w.signal});w.signal.addEventListener("abort",()=>{S.abort(w.signal.reason)},{once:!0});let t=lI(e,_,null);return t.catch(()=>{}),{accumulatedChunksPromise:t}},()=>{_.advanceStage(nn.D.Static)},()=>{_.advanceStage(nn.D.EarlyRuntime)},()=>{_.advanceStage(nn.D.Runtime)},()=>{_.advanceStage(nn.D.Dynamic)})).accumulatedChunksPromise,startTime:l,stageController:_,requestStore:c}}async function lF(e,t){let r=async()=>{let r;try{r=await j.workAsyncStorage.exit(async()=>lH(e,t))}catch(e){console.error(Object.defineProperty(new eU.z("An unexpected error occcured during instant validation",{cause:e}),"__NEXT_ERROR_CODE",{value:"E1097",enumerable:!1,configurable:!0})),r=!1}if(!r)throw console.error("Stopping prerender due to instant validation errors."),new na.f};if(!process.env.__NEXT_TEST_MODE||!process.env.NEXT_TEST_LOG_VALIDATION)return await r();{let t=Date.now(),n=e.workStore.route;console.error(""+JSON.stringify({type:"validation_start",requestId:t,url:n})+"");try{return await r()}finally{console.error(""+JSON.stringify({type:"validation_end",requestId:t,url:n})+"")}}}async function lH(e,t){let r="1"===process.env.NEXT_PRIVATE_DEBUG_VALIDATION?console.log:void 0,{workStore:n}=e,a=n.route,i=e.componentMod.routeModule.userland.loaderTree,s=await lo(i);s&&0!==s.length||(s=[{}]),null==r||r("Resolved samples:",s);let o=function(e,t){let r=nk(e,!0),{pathnameRouteParamSegments:n,params:a}=function(e,t){let r=[],n={},a=[{tree:e,depth:0,currentPath:[]}];for(;a.length>0;){let{tree:e,depth:i,currentPath:s}=a.shift(),{segment:o,parallelRoutes:l}=rK(e),u=s,c=i,d=nR(o);if(d&&"route-group"!==d.type&&"parallel-route"!==d.type&&(u=[...s,d],c=i+1),(null==d?void 0:d.type)==="dynamic"){let{paramName:e,paramType:a}=d.param;if(i({paramName:e,paramType:t}));!function(e,t,r,n){let a=[{tree:e,depth:0}];for(;a.length>0;){let{tree:e,depth:i}=a.pop(),{segment:s,parallelRoutes:o}=rK(e),l=nR(s);if((null==l?void 0:l.type)==="dynamic"&&!t.hasOwnProperty(l.param.paramName)&&!n.some(e=>e.paramName===l.param.paramName)){let{paramName:e,paramType:a}=l.param,s=nP(e,a,i,r,t);void 0!==s?t[e]=s:"optional-catchall"!==a&&n.push({paramName:e,paramType:a})}let u=i;for(let e of(l&&"route-group"!==l.type&&"parallel-route"!==l.type&&u++,Object.values(o)))a.push({tree:e,depth:u})}}(t.userland.loaderTree,a,r,i);if(0===i.length)return null;let s=Math.random().toString(16).slice(2),o=new Map;for(let{paramName:e,paramType:t}of i)o.set(e,[`%%drp:${e}:${s}%%`,tJ[t]]);return o}(a,e.componentMod.routeModule);for(let n=0;nlB(e,l,o,t))}catch(e){if((0,tX.R)(e))i=[e];else throw e}if(i.length>0){null==r||r(`❌ Sample failed validation (${i.length} errors)`);let e=s.length>1?` (sample ${n+1} of ${s.length})`:"";for(let e of i)console.error(e);return console.error(`Build-time instant validation failed for route "${a}"${e}.`),!1}null==r||r("✅ Sample validated successfully")}return!0}async function lB(e,t,r,n){let i,s,{workStore:o}=e,l=e.componentMod.routeModule.userland.loaderTree,u=o.route,{createCookiesFromSample:c,createHeadersFromSample:d,createDraftModeForValidation:f,createRelativeURLFromSamples:h,createValidationSampleTracking:p}=a("./dist/esm/server/app-render/instant-validation/instant-samples.js"),m=h(u,t.params,t.searchParams),g=t.params??{},y=null;if(r){let e=new Map;for(let[t,n]of r)t in g||e.set(t,n);y=e}let v=lf(g,y,!1),b=nv(l,v);({query:s,...i}=m);let{AfterContext:w}=a("./dist/esm/server/after/after-context.js"),S={isStaticGeneration:!1,page:o.page,route:o.route,incrementalCache:o.incrementalCache,cacheLifeProfiles:o.cacheLifeProfiles,isBuildTimePrerendering:!1,fetchCache:o.fetchCache,isOnDemandRevalidate:!1,isDraftMode:!1,isPrefetchRequest:!1,buildId:o.buildId,reactLoadableManifest:o.reactLoadableManifest,assetPrefix:o.assetPrefix,nonce:o.nonce,afterContext:new w({waitUntil(e){e.catch(()=>{})},onClose(){},onTaskError(){}}),cacheComponentsEnabled:o.cacheComponentsEnabled,previouslyRevalidatedTags:[],refreshTagsByCacheKind:new Map,runInCleanSnapshot:o.runInCleanSnapshot,shouldTrackFetchMetrics:!1,reactServerErrorsByDigest:new Map};return j.workAsyncStorage.run(S,async()=>{let r={componentMod:e.componentMod,url:i,renderOpts:e.renderOpts,workStore:S,parsedRequestHeaders:e.parsedRequestHeaders,getDynamicParamFromSegment:v,interpolatedParams:g,query:s,isPrefetch:!1,isPossibleServerAction:!1,requestTimestamp:e.requestTimestamp,appUsingSizeAdjustment:e.appUsingSizeAdjustment,flightRouterState:void 0,requestId:e.requestId,htmlRequestId:e.htmlRequestId,pagePath:e.pagePath,assetPrefix:e.assetPrefix,isNotFoundPath:e.isNotFoundPath,nonce:e.nonce,res:e.res,sharedContext:e.sharedContext,implicitTags:e.implicitTags},a={params:t.params,searchParams:t.searchParams},o=()=>{let r=c(t.cookies,u),n=new eA.VO(new Headers),i=d(t.headers,t.cookies,u),s=f();return{type:"request",phase:"render",implicitTags:e.implicitTags,url:{pathname:m.pathname,search:m.search},headers:i,cookies:r,mutableCookies:n,userspaceMutableCookies:n,draftMode:s,rootParams:b,validationSamples:a,validationSampleTracking:p(),renderResumeDataCache:null,prerenderResumeDataCache:null,stagedRendering:null,asyncApiPromises:void 0}},h=tW(!0,!0,S.reactServerErrorsByDigest,()=>{}),{accumulatedChunksPromise:w,startTime:_,stageController:E,requestStore:R}=await lU(r,o(),o,e=>eV.workUnitAsyncStorage.run(e,lk,l,r,{is404:!1}),e=>function(t){let r=tV(t);return r||(e.aborted?void 0:h(t))},n),k=await w,x=R.validationSampleTracking;if(x.missingSampleErrors.length>0)return x.missingSampleErrors;if(E.currentStage===nn.D.Abandoned&&E.syncInterruptReason)return[E.syncInterruptReason];let P=(r.renderOpts.allowEmptyStaticShell??!1)||await ln(l),C=p();return(await lM("validation-client",k.dynamicChunks,k.dynamicChunks,b,y,P,r,a,C),C.missingSampleErrors.length>0)?C.missingSampleErrors:await lL(k,null,_,b,y,r,void 0,a)})}function lz(e){let{isStaticGeneration:t}=e;return!!t}async function lq(e,t,r,n,a,i){var s,o,l;let{assetPrefix:c,getDynamicParamFromSegment:d,implicitTags:f,nonce:h,pagePath:p,renderOpts:m,workStore:g}=r,{basePath:y,buildManifest:v,ComponentMod:b,crossOrigin:w,experimental:S,isDebugDynamicAccesses:_,isBuildTimePrerendering:E=!1,onInstrumentationRequestError:R,page:k,reactMaxHeadersLength:x,subresourceIntegrityManifest:P,cacheComponents:C}=m,{cachedNavigations:T}=m.experimental,A=(m.allowEmptyStaticShell??!1)||await ln(a),j=nv(a,d),{ServerInsertedHTMLProvider:$,renderServerInsertedHTML:D}=rL(),N=oU(h),M=oI((0,I.getTracer)().getTracePropagationData(),S.clientTraceMetadata),L=v.polyfillFiles.filter(e=>e.endsWith(".js")&&!e.endsWith(".module.js")).map(e=>({src:`${c}/_next/${e}${rY(r,!1)}`,integrity:null==P?void 0:P[e],crossOrigin:w,noModule:!0,nonce:h})),[U,F]=rH(v,c,w,P,rY(r,!0),h,k),{reactServerErrorsByDigest:H}=g,B=!S.isRoutePPREnabled,z=tW(!1,E,H,function(t,n){if(B)return null==R?void 0:R(t,e,lm(r,"react-server-components"),n)}),q=[],X=tG(!1,E,H,q,function(t){if(B)return null==R?void 0:R(t,e,lm(r,"server-rendering"),!1)}),V=null,W=e=>{n.headers??={},n.headers[e]=t.getHeader(e)},G=(e,r)=>{Array.isArray(r)?r.forEach(r=>{t.appendHeader(e,r)}):t.appendHeader(e,r),W(e)},K=oN(S),{clientModules:Y}=eY(),Q=null;try{if(C){let e,s,o=new AbortController,l=new AbortController,c=new AbortController,d=new o$,p=nI(),v=m.renderResumeDataCache??null,w={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:new AbortController,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},S=await eV.workUnitAsyncStorage.run(w,lk,a,r,{is404:404===t.statusCode}),E=Q={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:c.signal,controller:o,cacheSignal:d,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},R={filterStackFrame:u,onError:e=>{let t=tV(e);return t||(tq(e)?void console.error(e):o.signal.aborted?void 0:void((process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)))},signal:l.signal},k=eV.workUnitAsyncStorage.run(E,tc(b),S,Y,R);if(l.signal.addEventListener("abort",()=>{c.abort(),o.abort()},{once:!0}),(0,o7.trackPendingModules)(d),await d.cacheReady(),l.abort(),g.invalidDynamicUsageError)throw(0,tF.gR)(g,g.invalidDynamicUsageError),new na.f;try{e=await e8(k)}catch(e){l.signal.aborted||o.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)}if(e){let t=new AbortController,n=new AbortController,a=new AbortController,s={type:"prerender-client",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:a.signal,controller:t,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},o=eV.workUnitAsyncStorage.run(s,td,(0,O.jsx)(lC,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{signal:n.signal,onError:e=>{let t=tV(e);return t||(tq(e)?void console.error(e):void(n.signal.aborted||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)))},bootstrapScripts:[F]});n.signal.addEventListener("abort",()=>{a.abort()},{once:!0}),o.catch(e=>{n.signal.aborted||(0,tF.AA)(e)||(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&ox(e,g.route,ok.ProspectiveRender)}),(0,o7.trackPendingModules)(d),await d.cacheReady(),n.abort()}m.renderResumeDataCache&&(v=nD(p));let P=new AbortController,I=new AbortController,B=nl(),W={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:I.signal,controller:new AbortController,cacheSignal:null,dynamicTracking:null,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B},ee=await eV.workUnitAsyncStorage.run(W,lk,a,r,{is404:404===t.statusCode});T&&(ee.s=s=new oD);let et=(0,tF.uO)(_),er=!1,en=Q={type:"prerender",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:I.signal,controller:P,cacheSignal:null,dynamicTracking:et,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:B};void 0!==s&&oM(en,s,K);let ea=!0,ei={filterStackFrame:u,onError:e=>z(e),signal:P.signal},es=async()=>{let e=[nc(B)];if(void 0!==s&&e.push(oL(s)),await Promise.all(e),P.signal.aborted){er=!0;return}ea&&(er=!0),P.abort()},eo=async()=>{let e=eV.workUnitAsyncStorage.run(en,tc(b),ee,Y,ei);P.signal.addEventListener("abort",()=>{I.abort()},{once:!0});let t=await e;return ea=!1,t},el=V=await e8(oO(eo,es)),eu=(0,tF.uO)(_),eh=new AbortController,em=new AbortController,eg={type:"prerender-client",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,renderSignal:em.signal,controller:eh,cacheSignal:null,dynamicTracking:eu,allowEmptyStaticShell:A,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:p,renderResumeDataCache:v,hmrRefreshHash:void 0,varyParamsAccumulator:null},ey=(0,tF.Wt)(),ev=ta(G),{prelude:eb,postponed:ew}=await oO(()=>{let e=eV.workUnitAsyncStorage.run(eg,td,(0,O.jsx)(lC,{reactServerStream:el.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{signal:eh.signal,onError:(e,t)=>{if((0,tF.AA)(e)||eh.signal.aborted){let e=t.componentStack;"string"==typeof e&&(0,tF.Pe)(g,e,ey,eu);return}return X(e,t)},onHeaders:ev,maxHeadersLength:x,bootstrapScripts:[F]});return eh.signal.addEventListener("abort",()=>{em.abort()},{once:!0}),e},()=>{eh.abort()}),{prelude:eS,preludeIsEmpty:e_}=await tt(eb);A||(0,tF.V2)(g,e_?tF.r0.Empty:tF.r0.Full,ey,et);let eE=rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});n.flightData=await Z(T?lS(el.asStream(),er):el.asStream());let eR=T?n.flightData.subarray(1):n.flightData;if(await lV(eR,en,b,m,r.pagePath,n),er){null!=ew?n.postponed=await nL(ew,e_?nM.Empty:nM.Full,i,p,C):n.postponed=await nU(p,C),el.consume();let e={getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await ec(eS,e),dynamicAccess:(0,tF.yI)(et,eu),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:nD(p)}}{let e;if(g.forceDynamic)throw Object.defineProperty(new na.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=eS;if(null!=ew){let e=tn(),n=await ti((0,O.jsx)(lC,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(ew)),{signal:(0,tF.kb)(),onError:X,nonce:h});t=J(eS,n)}if(i&&i.size>0){let n=await e9(ts(b,[],Y,{filterStackFrame:u,onError:z}));e=await ef(t,{inlinedDataStream:tr(n.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId})}else e=await ed(t,{inlinedDataStream:tr(el.consumeAsStream(),h,null),getServerInsertedHTML:eE,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId});return{digestErrorsMap:H,ssrErrors:q,stream:e,dynamicAccess:(0,tF.yI)(et,eu),collectedRevalidate:en.revalidate,collectedExpire:en.expire,collectedStale:K(en.stale),collectedTags:en.tags,renderResumeDataCache:nD(p)}}}if(S.isRoutePPREnabled){let e,s=(0,tF.uO)(_),o=nI(),l=Q={type:"prerender-ppr",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:o},c=await eV.workUnitAsyncStorage.run(l,lk,a,r,{is404:404===t.statusCode});e=V=await e9(eV.workUnitAsyncStorage.run(l,ts,b,c,Y,{filterStackFrame:u,onError:z}));let d={type:"prerender-ppr",phase:"render",rootParams:j,fallbackRouteParams:i,implicitTags:f,dynamicTracking:s,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags],prerenderResumeDataCache:o},p=ta(G),{prelude:v,postponed:w}=await eV.workUnitAsyncStorage.run(d,td,(0,O.jsx)(lC,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{onError:X,onHeaders:p,maxHeadersLength:x,bootstrapScripts:[F]}),S=rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M}),E=await Z(e.asStream());lz(g)&&(n.flightData=E,await lV(E,d,b,m,r.pagePath,n));let{prelude:R,preludeIsEmpty:k}=await tt(v);if((0,tF.Lu)(s.dynamicAccesses)){null!=w?n.postponed=await nL(w,k?nM.Empty:nM.Full,i,o,C):n.postponed=await nU(o,C),e.consume();let t={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await ec(R,t),dynamicAccess:s.dynamicAccesses,collectedRevalidate:l.revalidate,collectedExpire:l.expire,collectedStale:K(l.stale),collectedTags:l.tags}}if(i&&i.size>0){n.postponed=await nU(o,C);let e={getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId};return{digestErrorsMap:H,ssrErrors:q,stream:await ec(R,e),dynamicAccess:s.dynamicAccesses,collectedRevalidate:l.revalidate,collectedExpire:l.expire,collectedStale:K(l.stale),collectedTags:l.tags}}{if(g.forceDynamic)throw Object.defineProperty(new na.f('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'),"__NEXT_ERROR_CODE",{value:"E598",enumerable:!1,configurable:!0});let t=R;if(null!=w){let e=tn(),n=await ti((0,O.jsx)(lC,{reactServerStream:e,reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:()=>{},ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),JSON.parse(JSON.stringify(w)),{signal:(0,tF.kb)(),onError:X,nonce:h});t=J(R,n)}return{digestErrorsMap:H,ssrErrors:q,stream:await ed(t,{inlinedDataStream:tr(e.consumeAsStream(),h,null),getServerInsertedHTML:S,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId}),dynamicAccess:s.dynamicAccesses,collectedRevalidate:l.revalidate,collectedExpire:l.expire,collectedStale:K(l.stale),collectedTags:l.tags}}}{let e,i=Q={type:"prerender-legacy",phase:"render",rootParams:j,implicitTags:f,revalidate:ep.AR,expire:ep.AR,stale:ep.AR,tags:[...f.tags]},o=await eV.workUnitAsyncStorage.run(i,lk,a,r,{is404:404===t.statusCode});e=V=await e9(eV.workUnitAsyncStorage.run(i,ts,b,o,Y,{filterStackFrame:u,onError:z}));let{stream:l}=await eV.workUnitAsyncStorage.run(i,tl,(0,O.jsx)(lC,{reactServerStream:e.asUnclosingStream(),reactDebugStream:void 0,debugEndTime:void 0,preinitScripts:U,ServerInsertedHTMLProvider:$,nonce:h,images:r.renderOpts.images}),{onError:X,nonce:h,bootstrapScripts:[F]});if(lz(g)){let t=await Z(e.asStream());n.flightData=t,await lV(t,i,b,m,r.pagePath,n)}let c=rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:q,basePath:y,tracingMetadata:M});return{digestErrorsMap:H,ssrErrors:q,stream:await (s={inlinedDataStream:tr(e.consumeAsStream(),h,null),isStaticGeneration:!0,getServerInsertedHTML:c,getServerInsertedMetadata:N,deploymentId:r.sharedContext.deploymentId},eu(l,s)),collectedRevalidate:i.revalidate,collectedExpire:i.expire,collectedStale:K(i.stale),collectedTags:i.tags}}}catch(R){let e;if((0,na.l)(R)||"object"==typeof R&&null!==R&&"message"in R&&"string"==typeof R.message&&R.message.includes("https://nextjs.org/docs/advanced-features/static-html-export")||(0,tL.isDynamicServerError)(R))throw R;let i=(0,tM.C)(R);if(i){let e=tD(R);throw rp(`${R.reason} should be wrapped in a suspense boundary at page "${p}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout +${e}`),R}if(null===V)throw R;(0,tR.RM)(R)?(t.statusCode=(0,tR.jT)(R),n.statusCode=t.statusCode,e=(0,tR.qe)(t.statusCode)):(0,tk.n)(R)?(e="redirect",t.statusCode=tC(R),n.statusCode=t.statusCode,o=eb(tx(R),y),t.setHeader("location",o),W("location")):i||(t.statusCode=500,n.statusCode=t.statusCode);let[s,d]=rH(v,c,w,P,rY(r,!1),h,"/_not-found/page"),S=Q={type:"prerender-legacy",phase:"render",rootParams:j,implicitTags:f,revalidate:void 0!==(null==Q?void 0:Q.revalidate)?Q.revalidate:ep.AR,expire:void 0!==(null==Q?void 0:Q.expire)?Q.expire:ep.AR,stale:void 0!==(null==Q?void 0:Q.stale)?Q.stale:ep.AR,tags:[...(null==Q?void 0:Q.tags)||f.tags]},_=await eV.workUnitAsyncStorage.run(S,lP,a,r,H.has(R.digest)?void 0:R,e),E=eV.workUnitAsyncStorage.run(S,ts,b,_,Y,{filterStackFrame:u,onError:z});try{let{stream:e}=await eV.workUnitAsyncStorage.run(S,tl,(0,O.jsx)(lT,{reactServerStream:E,ServerInsertedHTMLProvider:$,preinitScripts:s,nonce:h,images:r.renderOpts.images}),{nonce:h,bootstrapScripts:[d],formState:null});if(lz(g)){let e=await Z(V.asStream());n.flightData=e,await lV(e,S,b,m,r.pagePath,n)}let t=V.consumeAsStream();return{digestErrorsMap:H,ssrErrors:q,stream:await (l={inlinedDataStream:tr(t,h,null),isStaticGeneration:!0,getServerInsertedHTML:rB({polyfills:L,renderServerInsertedHTML:D,serverCapturedErrors:[],basePath:y,tracingMetadata:M}),getServerInsertedMetadata:N,validateRootLayout:!1,deploymentId:r.sharedContext.deploymentId},eu(e,l)),dynamicAccess:null,collectedRevalidate:null!==Q?Q.revalidate:ep.AR,collectedExpire:null!==Q?Q.expire:ep.AR,collectedStale:K(null!==Q?Q.stale:ep.AR),collectedTags:null!==Q?Q.tags:null}}catch(e){throw e}}}let lX=async(e,t)=>{let r=rK(e).modules["global-error"];if(!r)throw Object.defineProperty(Error("Invariant: global-error module is required but not found in loader tree"),"__NEXT_ERROR_CODE",{value:"E983",enumerable:!1,configurable:!0});let{componentMod:{createElement:n}}=t,[a,i]=await rZ({ctx:t,filePath:r[1],getComponent:r[0],injectedCSS:new Set,injectedJS:new Set});return{GlobalError:a,styles:i}};async function lV(e,t,r,n,a,i){let s,{clientModules:o,edgeRscModuleMapping:l,rscModuleMapping:u}=eY(),c={moduleLoading:null,moduleMap:u,serverModuleMap:eZ()},d=oN(n.experimental)(t.stale),f=n.experimental.prefetchInlining;if(f)if(n.isBuildTimePrerendering)i.prefetchHints=s=await r.collectPrefetchHints(e,d,o,c,f.maxSize,f.maxBundleSize);else{var h;s=(null==(h=n.prefetchHints)?void 0:h[a])??null}else s=null;i.segmentData=await r.collectSegmentData(n.cacheComponents,e,d,o,c,!!n.experimental.prefetchInlining,s)}require("next/dist/build/adapter/setup-node-env.external.js"),a("./dist/esm/shared/lib/modern-browserslist-target.js");let lW="build-manifest.json";[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let lG=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,lJ=/\/\[[^/]+\](?=\/|$)/;function lK(e,t=!0){return((0,nE.m1)(e)&&(e=(0,nE.$8)(e).interceptedRoute),t)?lJ.test(e):lG.test(e)}function lY(e){return eS(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}var lQ=a("./dist/esm/shared/lib/page-path/ensure-leading-slash.js");function lZ(e){let t=/^\/index(\/|$)/.test(e)&&!lK(e)?`/index${e}`:"/"===e?"/index":(0,lQ.A)(e);{let{posix:e}=a("path"),r=e.normalize(t);if(r!==t)throw new oV.MK(`Requested and resolved page mismatch: ${t} ${r}`)}return t}let l0=["ico","jpg","jpeg","png","svg"],l1=["jpg","jpeg","png"],l2=["jpg","jpeg","png","gif"],l3=["jpg","jpeg","png","gif"],l4=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,l6=/^[\\/]favicon\.ico$/,l8=/^[\\/]robots\.txt$/,l9=/^[\\/]manifest\.json$/,l5=/^[\\/]manifest\.webmanifest$/,l7=/[\\/]sitemap\.xml$/,ue=new Map;var ut=a("./dist/esm/shared/lib/isomorphic/path.js"),ur=a.n(ut),un=a("./tags-manifest.external");class ua{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(ur().dirname(e)),n=r[1].then(()=>this.fs.writeFile(e,t));n.catch(()=>{}),r[2].push(n)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let ui=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class us{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?us.memoryCache?us.debug&&console.log("FileSystemCache: memory store already initialized"):(us.debug&&console.log("FileSystemCache: using memory store for fetch cache"),us.memoryCache=(0,ui.getMemoryCache)(e.maxMemoryCacheSize)):us.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,us.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let n of e){let e=un.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),un.tagsManifest.set(n,a)}else un.tagsManifest.set(n,{...e,expired:r})}}async get(...e){var t,r,n,a,i,s,o,l,u;let[c,d]=e,{kind:f}=d,h=null==(t=us.memoryCache)?void 0:t.get(c);if(us.debug&&(f===r3.FETCH?console.log("FileSystemCache: get",c,d.tags,f,!!h):console.log("FileSystemCache: get",c,f,!!h)),!h)try{if(f===r3.APP_ROUTE){let e=this.getFilePath(`${c}.body`,r3.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),n=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,ep.EP),"utf8"));h={lastModified:r.getTime(),value:{kind:r2.APP_ROUTE,body:t,headers:n.headers,status:n.status}}}else{let e=this.getFilePath(f===r3.FETCH?c:`${c}.html`,f),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(f===r3.FETCH){let{tags:e,fetchIdx:n,fetchUrl:a}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(h={lastModified:i,value:l},(null==(s=h.value)?void 0:s.kind)===r2.FETCH){let t=null==(o=h.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(us.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(c,h.value,{fetchCache:!0,tags:e,fetchIdx:n,fetchUrl:a}))}}else if(f===r3.APP_PAGE){let n,a,i;try{n=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,ep.EP),"utf8"))}catch{}if(null==n?void 0:n.segmentPaths){let e=new Map;a=e;let t=c+ep.mH;await Promise.all(n.segmentPaths.map(async r=>{let n=this.getFilePath(t+r+ep.tz,r3.APP_PAGE);try{e.set(r,await this.fs.readFile(n))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==n?void 0:n.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${c}${ep.RM}`,r3.APP_PAGE))),h={lastModified:r.getTime(),value:{kind:r2.APP_PAGE,html:t,rscData:i,postponed:null==n?void 0:n.postponed,headers:null==n?void 0:n.headers,status:null==n?void 0:n.status,segmentData:a}}}else if(f===r3.PAGES){let e,n={};d.isFallback||(n=JSON.parse(await this.fs.readFile(this.getFilePath(`${c}${ep.x3}`,r3.PAGES),"utf8"))),h={lastModified:r.getTime(),value:{kind:r2.PAGES,html:t,pageData:n,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${f} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}h&&(null==(l=us.memoryCache)||l.set(c,h))}catch{return null}if((null==h||null==(r=h.value)?void 0:r.kind)===r2.APP_PAGE||(null==h||null==(n=h.value)?void 0:n.kind)===r2.APP_ROUTE||(null==h||null==(a=h.value)?void 0:a.kind)===r2.PAGES){let e=null==(u=h.value.headers)?void 0:u[ep.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,un.areTagsExpired)(t,h.lastModified))return us.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==h||null==(i=h.value)?void 0:i.kind)===r2.FETCH){let e=d.kind===r3.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return us.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,un.areTagsExpired)(e,h.lastModified))return us.debug&&console.log("FileSystemCache: expired tags",e),null}return h??null}async set(e,t,r){var n;if(null==(n=us.memoryCache)||n.set(e,{value:t,lastModified:Date.now()}),us.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let a=new ua(this.fs);if(t.kind===r2.APP_ROUTE){let r=this.getFilePath(`${e}.body`,r3.APP_ROUTE);a.append(r,t.body);let n={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};a.append(r.replace(/\.body$/,ep.EP),JSON.stringify(n,null,2))}else if(t.kind===r2.PAGES||t.kind===r2.APP_PAGE){let n=t.kind===r2.APP_PAGE,i=this.getFilePath(`${e}.html`,n?r3.APP_PAGE:r3.PAGES);if(a.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||a.append(this.getFilePath(`${e}${n?ep.RM:ep.x3}`,n?r3.APP_PAGE:r3.PAGES),n?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===r2.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,ep.mH);for(let[n,i]of t.segmentData){e.push(n);let t=r+n+ep.tz;a.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};a.append(i.replace(/\.html$/,ep.EP),JSON.stringify(r))}}else if(t.kind===r2.FETCH){let n=this.getFilePath(e,r3.FETCH);a.append(n,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await a.wait()}getFilePath(e,t){switch(t){case r3.FETCH:return ur().join(this.serverDistDir,"..","cache","fetch-cache",e);case r3.PAGES:return ur().join(this.serverDistDir,"pages",e);case r3.IMAGE:case r3.APP_PAGE:case r3.APP_ROUTE:return ur().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function uo(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let ul=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js");class uu{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:n,serverDistDir:a,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:u,allowedRevalidateHeaderKeys:c}){var d,f,h,p;this.locks=new Map,this.hasCustomCacheHandler=!!u;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(u)uu.debug&&console.log("IncrementalCache: using custom cache handler",u.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(u=t.FetchCache,uu.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&a&&(uu.debug&&console.log("IncrementalCache: using filesystem cache handler"),u=us)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=n,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=c,this.prerenderManifest=o(),this.cacheControls=new ul.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let y=[];i[ep.kz]===(null==(f=this.prerenderManifest)||null==(d=f.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),n&&(y=this.revalidatedTags=o5(i,null==(p=this.prerenderManifest)||null==(h=p.preview)?void 0:h.previewModeId)),u&&(this.cacheHandler=new u({dev:t,fs:e,flushToDisk:r,serverDistDir:a,revalidatedTags:y,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,n){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let a=this.cacheControls.get(uo(e)),i=a?a.revalidate:!n&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:lZ(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(uu.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new N;return uu.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],n=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,a=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(a.push(n.encode(e)),r.push(e)):(a.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=a.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of a)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let n of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(n);r.push(`${n}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,n=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([n],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return a("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,n,a,i,s,o,l;let u,c;if(t.kind===r3.FETCH){let r=eV.workUnitAsyncStorage.getStore(),n=r?(0,eV.getRenderResumeDataCache)(r):null;if(n){let r=n.fetch.get(e);if((null==r?void 0:r.kind)===r2.FETCH){let n=j.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==n||null==(r=n.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return uu.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};uu.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else uu.debug&&console.log("IncrementalCache: rdc:miss",e)}else uu.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==r3.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===r3.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===r3.FETCH){if(!d)return null;if((null==(a=d.value)?void 0:a.kind)!==r2.FETCH)throw Object.defineProperty(new eU.z(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=j.workAsyncStorage.getStore(),n=[...t.tags||[],...t.softTags||[]];if(n.some(e=>{var t,n;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(n=r.pendingRevalidatedTags)?void 0:n.some(t=>t.tag===e))}))return uu.debug&&console.log("IncrementalCache: expired tag",e),null;let s=eV.workUnitAsyncStorage.getStore();if(s){let t=(0,eV.getPrerenderResumeDataCache)(s);t&&(uu.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,u=d.value.data;return(0,un.areTagsExpired)(n,d.lastModified)?null:((0,un.areTagsStale)(n,d.lastModified)&&(l=!0),{isStale:l,value:{kind:r2.FETCH,data:u,revalidate:o}})}if((null==d||null==(n=d.value)?void 0:n.kind)===r2.FETCH)throw Object.defineProperty(new eU.z(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let f=null,{isFallback:h}=t,p=this.cacheControls.get(uo(e));if((null==d?void 0:d.lastModified)===-1)u=-1,c=-1*ep.eM*1e3;else{let r=performance.timeOrigin+performance.now(),n=(null==d?void 0:d.lastModified)||r;if(void 0===(u=!1!==(c=this.calculateRevalidate(e,n,this.dev??!1,t.isFallback))&&c0&&((0,un.areTagsExpired)(t,n)?u=-1:(0,un.areTagsStale)(t,n)&&(u=!0))}}}return d&&(f={isStale:u,cacheControl:p,revalidateAfter:c,value:d.value,isFallback:h}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(f={isStale:u,value:null,cacheControl:p,revalidateAfter:c,isFallback:h},this.set(e,f.value,{...t,cacheControl:p})),f}async set(e,t,r){if((null==t?void 0:t.kind)===r2.FETCH){let r=eV.workUnitAsyncStorage.getStore(),n=r?(0,eV.getPrerenderResumeDataCache)(r):null;n&&(uu.debug&&console.log("IncrementalCache: rdc:set",e),n.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let n=JSON.stringify(t).length;if(r.fetchCache&&n>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${n} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var a;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(uo(e),r.cacheControl),await (null==(a=this.cacheHandler)?void 0:a.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}let uc=Symbol.for("@next/router-server-methods"),ud=globalThis;function uf(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)===X.kO}let uh=e=>import(e).then(e=>e.default||e);class up{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:n}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=n}getRouterServerContext(e){var t;let r=T(e,"hostname"),n=T(e,"revalidate"),a=T(e,"render404"),i=T(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=ud[uc])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==n?{revalidate:n}:{},...void 0!==a?{render404:a}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=a("node:path"),n=r(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));return i(n,this.distDir,...t)}}loadManifests(e,t){let r;{var n,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=a("../load-manifest.external");lZ(e);let l=this.definition.kind===r4.PAGES||this.definition.kind===r4.PAGES_API?"pages":"app",[u,c,d,f,h,p,m,g,y,v,b,w]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:lW,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${lW}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:"react-loadable-manifest.json",handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==l||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let n=e.replace(/\\/g,"/"),a=!!(l6.test(n)||l8.test(n)||l9.test(n)||l5.test(n)||l7.test(n))||(!!n.includes("robots")||!!n.includes("manifest")||!!n.includes("sitemap")||!!n.includes("icon")||!!n.includes("apple-icon")||!!n.includes("opengraph-image")||!!n.includes("twitter-image")||!!n.includes("favicon"))&&null;if(null!==a)return a;let i=function(e,t){let r=`${e.join(",")}|${t}`,n=ue.get(r);if(n)return n;let a=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${l4(s,null)}${a}`),RegExp(`^[\\\\/]manifest${l4(o,null)}${a}`),RegExp(`[\\\\/]sitemap${l4(["xml"],e)}${a}`),RegExp(`[\\\\/]icon${i}${l4(l0,e)}${a}`),RegExp(`[\\\\/]apple-icon${i}${l4(l1,e)}${a}`),RegExp(`[\\\\/]opengraph-image${i}${l4(l2,e)}${a}`),RegExp(`[\\\\/]twitter-image${i}${l4(l3,e)}${a}`)];return ue.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:r,cacheHandlers:n}=t;if(!n||!(0,t_.q3)(r))return;for(let[t,r]of Object.entries(n)){if(!r)continue;let{formatDynamicImportPath:n}=a("./dist/esm/lib/format-dynamic-import-path.js"),{join:i}=a("node:path"),s=i(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir);(0,t_.XJ)(t,rJ(await uh(n(`${s}/${this.distDir}`,r))))}}}async getIncrementalCache(e,t,r,n){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=a("./dist/esm/lib/format-dynamic-import-path.js");i=rJ(await uh(e(this.distDir,s)))}let{join:o}=a("node:path"),l=o(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let u=new uu({fs:a("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:n,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!n&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=u,u}}async onRequestError(e,t,r,n,a){n||((null==a?void 0:a.logErrorWithOriginalStack)?a.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:n}){var i,s;let o,l,u,c,d;{let{join:t,relative:r}=a("node:path");o=t(process.cwd(),T(e,"relativeProjectDir")||this.relativeProjectDir);let n=T(e,"distDir");n&&(this.distDir=r(o,n));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let f=this.loadManifests(r,o),{routesManifest:h,prerenderManifest:p,serverFilesManifest:m}=f,{basePath:g,i18n:y,rewrites:v}=h,b=this.getRouterServerContext(e),w=(null==b?void 0:b.nextConfig)||(null==m?void 0:m.config),S=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!T(e,"initURL")){let t=(null==m?void 0:m.config.experimental.trustHostHeader)?`${S}://${e.headers.host||"localhost"}${e.url}`:`${S}://${(null==b?void 0:b.hostname)||"localhost"}${e.url}`;A(e,"initURL",t),A(e,"initProtocol",S)}g&&(e.url=ek(e.url||"/",g));let _=o4(e.url||"/");if(A(e,"initQuery",{...null==_?void 0:_.query}),!_)return;let E=!1;eS(_.pathname||"/","/_next/data")&&(E=!0,_.pathname=lY(_.pathname||"/")),this.normalizeUrl(e,_);let R=_.pathname||"/",k={..._.query},x=lK(r);y&&(l=eR(_.pathname||"/",y.locales)).detectedLocale&&(e.url=`${l.pathname}${_.search}`,R=l.pathname,u||(u=l.detectedLocale));let P=(0,eW.Yr)(r),C=function({page:e,i18n:t,basePath:r,rewrites:n,pageIsDynamic:i,trailingSlash:s,caseSensitive:o}){let l,u,c;if(i){var d;let t,r;r=(t=function(e,t,r,n,a,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},u=[],c=[];for(let s of(i=structuredClone(i),ey(e).slice(1).split("/"))){let e,d=nE.VB.some(e=>s.startsWith(e)),f=s.match(nA),h=d?f?.[1]:void 0;if(h&&f?.[2]?(e=t?ep.h:void 0,i.intercepted[f[2]]=h):e=f?.[2]&&i.intercepted[f[2]]?t?ep.h:void 0:t?ep.AA:void 0,h&&f&&f[2]){let{key:t,pattern:r,cleanedKey:n,repeat:s,optional:d}=oX({getSafeRouteKey:o,interceptionMarker:h,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a});u.push(r),c.push(`/${f[1]}:${i.names[t]??n}${s?d?"*":"+":""}`),i.names[t]??=n}else if(f&&f[2]){n&&f[1]&&(u.push(`/${oz(f[1])}`),c.push(`/${f[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:h}=oX({getSafeRouteKey:o,segment:f[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a}),p=r;n&&f[1]&&(p=p.substring(1)),u.push(p),c.push(`/:${i.names[t]??s}${d?h?"*":"+":""}`),i.names[t]??=s}else u.push(`/${oz(s)}`),c.push(`/${s}`);r&&f&&f[3]&&(u.push(oz(f[3])),c.push(f[3]))}return{namedParameterizedRoute:u.join(""),routeKeys:l,pathToRegexpPattern:c.join(""),reference:i}}(e,(d={prefixRouteKeys:!1}).prefixRouteKeys,d.includeSuffix??!1,d.includePrefix??!1,d.backreferenceDuplicateKeys??!1,d.reference)).namedParameterizedRoute,d.excludeOptionalTrailingSlash||(r+="(?:/)?"),c=(u=oZ(l={...oq(e,d),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(l,c){let d=structuredClone(c),f={},h=d.pathname,p=n=>{var c,p;let m,g,y,v=(c=n.source+(s?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!o},m=[],g=(0,oF.pathToRegexp)(c,m,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),y=(0,oF.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(g.source),g.flags):g,m),(e,t)=>{if("string"!=typeof e)return!1;let r=y(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of m)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!d.pathname)return!1;let b=v(d.pathname);if((n.has||n.missing)&&b){let e=function(e,t,r=[],n=[]){let i={},s=r=>{let n,s=r.key;switch(r.type){case"header":s=s.toLowerCase(),n=e.headers[s];break;case"cookie":if("cookies"in e)n=e.cookies[r.key];else{var o;n=(o=e.headers,function(){let{cookie:e}=o;if(!e)return{};let{parse:t}=a("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})()[r.key]}break;case"query":n=t[s];break;case"host":{let{host:t}=e?.headers||{};n=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&n)return i[function(e){let t="";for(let r=0;r64&&n<91||n>96&&n<123)&&(t+=e[r])}return t}(s)]=n,!0;if(n){let e=RegExp(`^${r.value}$`),t=Array.isArray(n)?n.slice(-1)[0].match(e):n.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{i[e]=t.groups[e]}):"host"===r.type&&t[0]&&(i.host=t[0])),!0}return!1};return!(!r.every(e=>s(e))||n.some(e=>s(e)))&&i}(l,d.query,n.has,n.missing);e?Object.assign(b,e):b=!1}if(b){let{parsedDestination:a,destQuery:s}=function(e){let t,r,n=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${oz(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return(0,nF.r)(e);let t=new URL(e),r=t.username,n=t.password,a=r?n?`${r}:${n}`:r:null,i=t.pathname,s=t.search;return{auth:a,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:(0,o0.v1)(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),n=r.pathname;n&&(n=o1(n));let a=r.href;a&&(a=o1(a));let i=r.hostname;i&&(i=o1(i));let s=r.hash;s&&(s=o1(s));let o=r.search;o&&(o=o1(o));let l=r.origin;return l&&(l=o1(l)),{...r,pathname:n,hostname:i,href:a,hash:s,search:o,origin:l}}(e),{hostname:a,query:i,search:s}=n,o=n.pathname;n.hash&&(o=`${o}${n.hash}`);let l=[],u=[];for(let e of(oY(o,u),u))l.push(e.name);if(a){let e=[];for(let t of(oY(a,e),e))l.push(t.name)}let c=oQ(o,{validate:!1});for(let[r,n]of(a&&(t=oQ(a,{validate:!1})),Object.entries(i)))Array.isArray(n)?i[r]=n.map(t=>o2(o1(t),e.params)):"string"==typeof n&&(i[r]=o2(o1(n),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if((0,nE.m1)(o))for(let t of o.split("/")){let r=nE.VB.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[a,i]=(r=c(e.params)).split("#",2);t&&(n.hostname=t(e.params)),n.pathname=a,n.hash=`${i?"#":""}${i||""}`,n.search=s?o2(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return n.query={...e.query,...n.query},{newUrl:r,destQuery:i,parsedDestination:n}}({appendParamsToQuery:!0,destination:n.destination,params:b,query:d.query});if(a.protocol)return!0;if(Object.assign(f,s,b),Object.assign(d.query,a.query),delete a.query,Object.assign(d,a),!(h=d.pathname))return!1;if(r&&(h=h.replace(RegExp(`^${r}`),"")||"/"),t){let e=eR(h,t.locales);h=e.pathname,d.query.nextInternalLocale=e.detectedLocale||b.nextInternalLocale}if(h===e)return!0;if(i&&u){let e=u(h);if(e)return d.query={...d.query,...e},!0}}return!1};for(let e of n.beforeFiles||[])p(e);if(h!==e){let t,r=!1;for(let e of n.afterFiles||[])if(r=p(e))break;if(!r&&!((t=ey(h||""))===ey(e)||(null==u?void 0:u(t)))){for(let e of n.fallback||[])if(r=p(e))break}}return{rewriteParams:f,rewrittenParsedUrl:d}},defaultRouteRegex:l,dynamicRouteMatcher:u,defaultRouteMatches:c,normalizeQueryParams:function(e,t){for(let[r,n]of(delete e.nextInternalLocale,Object.entries(e))){let a=em(r);a&&(delete e[r],t.add(a),void 0!==n&&(e[a]=Array.isArray(n)?n.map(e=>o3(e)):o3(n)))}},getParamsFromRouteMatches:function(e){if(!l)return null;let{groups:t,routeKeys:r}=l,n=oZ({re:{exec:e=>{let n=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(n)){let r=em(e);r&&(n[r]=t,delete n[e])}let a={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=n[e];if(!s.optional&&!o)return null;a[s.pos]=o}return a}},groups:t})(e);return n||null},normalizeDynamicRouteParams:(e,t)=>{if(!l||!c)return{params:{},hasValidParams:!1};var r=l,n=c;let a={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=(0,eW.P7)(s):Array.isArray(s)&&(s=s.map(eW.P7));let o=n[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(a[i]=s)}return{params:a,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=o4(e.url);if(!r)return e.url;delete r.search,o9(r.query,t),e.url=o8(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let n of Object.keys(r.groups)){let a,{optional:i,repeat:s}=r.groups[n],o=`[${s?"...":""}${n}]`;i&&(o=`[${o}]`);let l=t[n];((a=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,a))}return e})(e,t,l),filterInternalQuery:(e,t)=>o9(e,t)}}({page:P,i18n:y,basePath:g,rewrites:v,pageIsDynamic:x,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!h.caseSensitive}),O=eg(null==y?void 0:y.domains,e_(_,e.headers),u);O&&A(e,"isLocaleDomain",!!O);let j=T(e,"defaultLocale")||(null==O?void 0:O.defaultLocale)||(null==y?void 0:y.defaultLocale);j&&!u&&(_.pathname=`/${j}${"/"===_.pathname?"":_.pathname}`);let $=T(e,"locale")||u||j,{rewriteParams:I,rewrittenParsedUrl:D}=C.handleRewrites(e,_),N=Object.keys(I);Object.assign(_.query,D.query),y&&(_.pathname=eR(_.pathname||"/",y.locales).pathname,D.pathname=eR(D.pathname||"/",y.locales).pathname);let M=T(e,"params");if(!M&&C.dynamicRouteMatcher){let e=C.dynamicRouteMatcher(lY((null==D?void 0:D.pathname)||_.pathname||"/")),t=C.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(M=t.params)}let L=T(e,"query")||{..._.query},U=new Set,F=[];if(this.definition.kind===r4.PAGES||this.definition.kind===r4.PAGES_API)for(let e of[...N,...Object.keys(C.defaultRouteMatches||{})]){let t=Array.isArray(k[e])?k[e].join(""):k[e],r=Array.isArray(L[e])?L[e].join(""):L[e];e in k&&t!==r||F.push(e)}if(C.normalizeCdnUrl(e,F),C.normalizeQueryParams(L,U),C.filterInternalQuery(k,F),x){let t,r=C.normalizeDynamicRouteParams(L,!0),n=C.normalizeDynamicRouteParams(M||{},!0);if(L&&M&&n.hasValidParams&&r.hasValidParams&&U.size>0&&Object.keys(n.params).length<=Object.keys(r.params).length?(t=r.params,M=Object.assign(r.params)):t=n.hasValidParams&&M?M:r.hasValidParams?L:{},e.url=C.interpolateDynamicPath(e.url||"/",t),_.pathname=C.interpolateDynamicPath(_.pathname||"/",t),R=C.interpolateDynamicPath(R,t),!M)if(r.hasValidParams)for(let e in M=Object.assign({},r.params),C.defaultRouteMatches)delete L[e];else{let e=null==C.dynamicRouteMatcher?void 0:C.dynamicRouteMatcher.call(C,lY((null==l?void 0:l.pathname)||_.pathname||"/"));e&&(M=Object.assign({},e))}}for(let e of U)e in k?k[e]&&L[e]&&k[e]!==L[e]&&(L[e]=k[e]):delete L[e];let{isOnDemandRevalidate:H,revalidateOnlyGenerated:B}=(0,tg.checkIsOnDemandRevalidate)(e,p.preview),z=!1;if(t){let{tryGetPreviewData:r}=a("./dist/esm/server/api-utils/node/try-get-preview-data.js");z=!1!==(c=r(e,t,p.preview,!!n))}if(!w)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=a("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!w.experimental.removeUncaughtErrorAndRejectionListeners)}let q=P;lK(q)&&M&&(q=C.interpolateDynamicPath(q,M)),"/index"===q&&(q="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",ey(`${$?`/${$}`:""}${P}`));let X=q;try{q=q.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new oV.Xc("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(A(e,"resolvedPathname",q=ey(q)),null==(s=w.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=w.deploymentId||"";return{query:L,originalQuery:k,originalPathname:R,params:M,parsedUrl:_,locale:$,isNextDataRequest:E,locales:null==y?void 0:y.locales,defaultLocale:j,isDraftMode:z,previewData:c,pageIsDynamic:x,resolvedPathname:q,encodedResolvedPathname:X,isOnDemandRevalidate:H,revalidateOnlyGenerated:B,...f,nextConfig:w,routerServerContext:b,deploymentId:d,clientAssetToken:w.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=T(e,"minimalMode")??!1;this.responseCache=new nr(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:n,isFallback:a,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:u,waitUntil:c,isMinimalMode:d}){let f=this.getResponseCache(e),h=await f.get(r,u,{routeKind:n,isFallback:a,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:c});if(!h&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return h}}var um=a("./dist/esm/shared/lib/head-manager-context.shared-runtime.js");let ug=$.createContext(null);class uy{constructor(e,t){this.matchers=Object.entries(t.dynamicRoutes).filter(([t,r])=>r.fallbackSourceRoute===e||t===e).map(([e,t])=>({source:e,route:t}))}match(e){for(let t of this.matchers)if(t.matcher||(t.matcher=oZ(oq(t.source))),t.matcher(e))return{source:t.source,route:t.route};return null}}class uv{constructor(e){this.suffix=e}match(e){return!!e.endsWith(this.suffix)}normalize(e,t){return t||this.match(e)?e.substring(0,e.length-this.suffix.length):e}}class ub extends uv{constructor(){super(ep.RM)}}let uw=RegExp(`^(/.*)${oz(ep.mH)}(/.*)${oz(ep.tz)}$`);class uS{match(e){return uw.test(e)}extract(e){let t=e.match(uw);return t?{originalPathname:t[1],segmentPath:t[2]}:null}normalize(e){let t=this.extract(e);return t?t.originalPathname:e}}{s=a("(react-server)/./dist/esm/server/route-modules/app-page/vendored/rsc/entrypoints.js"),o=a("./dist/esm/server/route-modules/app-page/vendored/ssr/entrypoints.js");let{registerServerReact:e,registerClientReact:t}=a("../../runtime-reacts.external");e(s.React),t(o.React)}class u_ extends up{match(e,t){let r=this.matchers.get(t);return r||(r=new uy(this.definition.pathname,t),this.matchers.set(t,r)),r.match(e)}normalizeUrl(e,t){if(this.normalizers.segmentPrefetchRSC.match(t.pathname||"/")){let r=this.normalizers.segmentPrefetchRSC.extract(t.pathname||"/");if(!r)return!1;let{originalPathname:n,segmentPath:a}=r;t.pathname=n,e.headers[X.hY]="1",e.headers[X._V]="1",e.headers[X.qm]=a,A(e,"isRSCRequest",!0),A(e,"isPrefetchRSCRequest",!0),A(e,"segmentPrefetchRSCRequest",a)}else this.normalizers.rsc.match(t.pathname||"/")?(t.pathname=this.normalizers.rsc.normalize(t.pathname||"/",!0),e.headers[X.hY]="1",A(e,"isRSCRequest",!0)):super.normalizeUrl(e,t);!function(e,t){if(!e.url)return;let r=o4(e.url);r&&(r.pathname=t,e.url=o8(r))}(e,t.pathname||"/")}render(e,t,r){return lO(e,t,r.page,r.query,r.fallbackRouteParams,r.renderOpts,r.serverComponentsHmrCache,r.sharedContext)}pathCouldBeIntercepted(e,t){return(0,nE.m1)(e)||t.some(t=>t.test(e))}getVaryHeader(e,t){let r=`${X.hY}, ${X.B}, ${X._V}, ${X.qm}`;return this.pathCouldBeIntercepted(e,t)?`${r}, ${X.kO}`:r}constructor(...e){super(...e),this.matchers=new WeakMap,this.normalizers={rsc:new ub,segmentPrefetchRSC:new uS}}}let uE={"react-rsc":s,"react-ssr":o,contexts:P},uR=u_})(),module.exports=i})(); +//# sourceMappingURL=app-page.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js b/cli/app/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js new file mode 100644 index 00000000000..f3483b29c8c --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/next-server/app-route.runtime.prod.js @@ -0,0 +1,6 @@ +(()=>{var e,t,r={"./dist/compiled/@edge-runtime/cookies/index.js"(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,n=Object.getOwnPropertyNames,a=Object.prototype.hasOwnProperty,i={},s={RequestCookies:()=>f,ResponseCookies:()=>p,parseCookie:()=>c,parseSetCookie:()=>u,stringifyCookie:()=>l};for(var o in s)t(i,o,{get:s[o],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),n=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?n:`${n}; ${r.join("; ")}`}function c(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[n,a]=[r.slice(0,e),r.slice(e+1)];try{t.set(n,decodeURIComponent(null!=a?a:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...n]=c(e),{domain:a,expires:i,httponly:s,maxage:o,path:l,samesite:u,secure:f,partitioned:p,priority:m}=Object.fromEntries(n.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,v,y={name:t,value:decodeURIComponent(r),domain:a,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...u&&{sameSite:d.includes(g=(g=u).toLowerCase())?g:void 0},...f&&{secure:!0},...m&&{priority:h.includes(v=(v=m).toLowerCase())?v:void 0},...p&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}e.exports=((e,i,s,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let l of n(i))a.call(e,l)||l===s||t(e,l,{get:()=>i[l],enumerable:!(o=r(i,l))||o.enumerable});return e})(t({},"__esModule",{value:!0}),i);var d=["strict","lax","none"],h=["low","medium","high"],f=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===n).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,n=this._parsed;return n.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(n).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},p=class{constructor(e){var t,r,n;this._parsed=new Map,this._headers=e;const a=null!=(n=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?n:[];for(const e of Array.isArray(a)?a:function(e){if(!e)return[];var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(a)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let n="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===n)}has(e){return this._parsed.has(e)}set(...e){let[t,r,n]=1===e.length?[e[0].name,e[0].value,e[0]]:e,a=this._parsed;return a.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...n})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(a,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},"./dist/compiled/cookie/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t,r,n,a,i={};i.parse=function(e,r){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var a={},i=e.split(n),s=(r||{}).decode||t,o=0;o{"use strict";let t,r,n,a,i;var s={993:e=>{var t=Object.prototype.hasOwnProperty,r="~";function n(){}function a(e,t,r){this.fn=e,this.context=t,this.once=r||!1}function i(e,t,n,i,s){if("function"!=typeof n)throw TypeError("The listener must be a function");var o=new a(n,i||e,s),l=r?r+t:t;return e._events[l]?e._events[l].fn?e._events[l]=[e._events[l],o]:e._events[l].push(o):(e._events[l]=o,e._eventsCount++),e}function s(e,t){0==--e._eventsCount?e._events=new n:delete e._events[t]}function o(){this._events=new n,this._eventsCount=0}Object.create&&(n.prototype=Object.create(null),(new n).__proto__||(r=!1)),o.prototype.eventNames=function(){var e,n,a=[];if(0===this._eventsCount)return a;for(n in e=this._events)t.call(e,n)&&a.push(r?n.slice(1):n);return Object.getOwnPropertySymbols?a.concat(Object.getOwnPropertySymbols(e)):a},o.prototype.listeners=function(e){var t=r?r+e:e,n=this._events[t];if(!n)return[];if(n.fn)return[n.fn];for(var a=0,i=n.length,s=Array(i);a{e.exports=(e,t)=>(t=t||(()=>{}),e.then(e=>new Promise(e=>{e(t())}).then(()=>e),e=>new Promise(e=>{e(t())}).then(()=>{throw e})))},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t,r){let n=0,a=e.length;for(;a>0;){let i=a/2|0,s=n+i;0>=r(e[s],t)?(n=++s,a-=i+1):a=i}return n}},821:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});let n=r(574);t.default=class{constructor(){this._queue=[]}enqueue(e,t){let r={priority:(t=Object.assign({priority:0},t)).priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority)return void this._queue.push(r);let a=n.default(this._queue,r,(e,t)=>t.priority-e.priority);this._queue.splice(a,0,r)}dequeue(){let e=this._queue.shift();return null==e?void 0:e.run}filter(e){return this._queue.filter(t=>t.priority===e.priority).map(e=>e.run)}get size(){return this._queue.length}}},816:(e,t,r)=>{let n=r(213);class a extends Error{constructor(e){super(e),this.name="TimeoutError"}}let i=(e,t,r)=>new Promise((i,s)=>{if("number"!=typeof t||t<0)throw TypeError("Expected `milliseconds` to be a positive number");if(t===1/0)return void i(e);let o=setTimeout(()=>{if("function"==typeof r){try{i(r())}catch(e){s(e)}return}let n="string"==typeof r?r:`Promise timed out after ${t} milliseconds`,o=r instanceof Error?r:new a(n);"function"==typeof e.cancel&&e.cancel(),s(o)},t);n(e.then(i,s),()=>{clearTimeout(o)})});e.exports=i,e.exports.default=i,e.exports.TimeoutError=a}},o={};function l(e){var t=o[e];if(void 0!==t)return t.exports;var r=o[e]={exports:{}},n=!0;try{s[e](r,r.exports,l),n=!1}finally{n&&delete o[e]}return r.exports}l.ab=__dirname+"/";var c={};Object.defineProperty(c,"__esModule",{value:!0}),t=l(993),r=l(816),n=l(821),a=()=>{},i=new r.TimeoutError,c.default=class extends t{constructor(e){var t,r,i,s;if(super(),this._intervalCount=0,this._intervalEnd=0,this._pendingCount=0,this._resolveEmpty=a,this._resolveIdle=a,!("number"==typeof(e=Object.assign({carryoverConcurrencyCount:!1,intervalCap:1/0,interval:0,concurrency:1/0,autoStart:!0,queueClass:n.default},e)).intervalCap&&e.intervalCap>=1))throw TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${null!=(r=null==(t=e.intervalCap)?void 0:t.toString())?r:""}\` (${typeof e.intervalCap})`);if(void 0===e.interval||!(Number.isFinite(e.interval)&&e.interval>=0))throw TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${null!=(s=null==(i=e.interval)?void 0:i.toString())?s:""}\` (${typeof e.interval})`);this._carryoverConcurrencyCount=e.carryoverConcurrencyCount,this._isIntervalIgnored=e.intervalCap===1/0||0===e.interval,this._intervalCap=e.intervalCap,this._interval=e.interval,this._queue=new e.queueClass,this._queueClass=e.queueClass,this.concurrency=e.concurrency,this._timeout=e.timeout,this._throwOnTimeout=!0===e.throwOnTimeout,this._isPaused=!1===e.autoStart}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()},t)),!0;this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0}return!1}_tryToStartAnother(){if(0===this._queue.size)return this._intervalId&&clearInterval(this._intervalId),this._intervalId=void 0,this._resolvePromises(),!1;if(!this._isPaused){let e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){let t=this._queue.dequeue();return!!t&&(this.emit("active"),t(),e&&this._initializeIntervalIfNeeded(),!0)}}return!1}_initializeIntervalIfNeeded(){this._isIntervalIgnored||void 0!==this._intervalId||(this._intervalId=setInterval(()=>{this._onInterval()},this._interval),this._intervalEnd=Date.now()+this._interval)}_onInterval(){0===this._intervalCount&&0===this._pendingCount&&this._intervalId&&(clearInterval(this._intervalId),this._intervalId=void 0),this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0,this._processQueue()}_processQueue(){for(;this._tryToStartAnother(););}get concurrency(){return this._concurrency}set concurrency(e){if(!("number"==typeof e&&e>=1))throw TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`);this._concurrency=e,this._processQueue()}async add(e,t={}){return new Promise((n,a)=>{let s=async()=>{this._pendingCount++,this._intervalCount++;try{let s=void 0===this._timeout&&void 0===t.timeout?e():r.default(Promise.resolve(e()),void 0===t.timeout?this._timeout:t.timeout,()=>{(void 0===t.throwOnTimeout?this._throwOnTimeout:t.throwOnTimeout)&&a(i)});n(await s)}catch(e){a(e)}this._next()};this._queue.enqueue(s,t),this._tryToStartAnother(),this.emit("add")})}async addAll(e,t){return Promise.all(e.map(async e=>this.add(e,t)))}start(){return this._isPaused&&(this._isPaused=!1,this._processQueue()),this}pause(){this._isPaused=!0}clear(){this._queue=new this._queueClass}async onEmpty(){if(0!==this._queue.size)return new Promise(e=>{let t=this._resolveEmpty;this._resolveEmpty=()=>{t(),e()}})}async onIdle(){if(0!==this._pendingCount||0!==this._queue.size)return new Promise(e=>{let t=this._resolveIdle;this._resolveIdle=()=>{t(),e()}})}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}},e.exports=c})()},"./dist/compiled/path-to-regexp/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s){a+=e[i++];continue}break}if(!a)throw TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:a}),r=i;continue}if("("===n){var o=1,l="",i=r+1;if("?"===e[i])throw TypeError('Pattern cannot start with "?" at '.concat(i));for(;i-1)return!0}return!1},g=function(e){var t=l[l.length-1],r=e||(t&&"string"==typeof t?t:"");if(t&&!r)throw TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!r||m(r)?"[^".concat(a(o),"]+?"):"(?:(?!".concat(a(r),")[^").concat(a(o),"])+?")};u-1:void 0===_;s||(m+="(?:".concat(p,"(?=").concat(f,"))?")),R||(m+="(?=".concat(p,"|").concat(f,")"))}return new RegExp(m,i(r))}function o(t,r,n){if(t instanceof RegExp){var a;if(!r)return t;for(var l=/\((?:\?<(.*?)>)?(?!\?)/g,c=0,u=l.exec(t.source);u;)r.push({name:u[1]||c++,prefix:"",suffix:"",modifier:"",pattern:""}),u=l.exec(t.source);return t}return Array.isArray(t)?(a=t.map(function(e){return o(e,r,n).source}),new RegExp("(?:".concat(a.join("|"),")"),i(n))):s(e(t,n),r,n)}Object.defineProperty(t,"__esModule",{value:!0}),t.pathToRegexp=t.tokensToRegexp=t.regexpToFunction=t.match=t.tokensToFunction=t.compile=t.parse=void 0,t.parse=e,t.compile=function(t,n){return r(e(t,n),n)},t.tokensToFunction=r,t.match=function(e,t){var r=[];return n(o(e,r,t),r,t)},t.regexpToFunction=n,t.tokensToRegexp=s,t.pathToRegexp=o})(),e.exports=t})()},"./dist/compiled/react/cjs/react.production.js"(e,t){"use strict";var r=Symbol.for("react.transitional.element"),n=Symbol.for("react.portal"),a=Symbol.for("react.fragment"),i=Symbol.for("react.strict_mode"),s=Symbol.for("react.profiler"),o=Symbol.for("react.consumer"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),d=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),f=Symbol.for("react.activity"),p=Symbol.for("react.view_transition"),m=Symbol.iterator,g={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},v=Object.assign,y={};function b(e,t,r){this.props=e,this.context=t,this.refs=y,this.updater=r||g}function E(){}function _(e,t,r){this.props=e,this.context=t,this.refs=y,this.updater=r||g}b.prototype.isReactComponent={},b.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},b.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},E.prototype=b.prototype;var R=_.prototype=new E;R.constructor=_,v(R,b.prototype),R.isPureReactComponent=!0;var w=Array.isArray;function x(){}var P={H:null,A:null,T:null,S:null},S=Object.prototype.hasOwnProperty;function C(e,t,n){var a=n.ref;return{$$typeof:r,type:e,key:t,ref:void 0!==a?a:null,props:n}}function O(e){return"object"==typeof e&&null!==e&&e.$$typeof===r}var T=/\/+/g;function A(e,t){var r,n;return"object"==typeof e&&null!==e&&null!=e.key?(r=""+e.key,n={"=":"=0",":":"=2"},"$"+r.replace(/[=:]/g,function(e){return n[e]})):t.toString(36)}function j(e,t,a){if(null==e)return e;var i=[],s=0;return!function e(t,a,i,s,o){var l,c,u,d=typeof t;("undefined"===d||"boolean"===d)&&(t=null);var f=!1;if(null===t)f=!0;else switch(d){case"bigint":case"string":case"number":f=!0;break;case"object":switch(t.$$typeof){case r:case n:f=!0;break;case h:return e((f=t._init)(t._payload),a,i,s,o)}}if(f)return o=o(t),f=""===s?"."+A(t,0):s,w(o)?(i="",null!=f&&(i=f.replace(T,"$&/")+"/"),e(o,a,i,"",function(e){return e})):null!=o&&(O(o)&&(l=o,c=i+(null==o.key||t&&t.key===o.key?"":(""+o.key).replace(T,"$&/")+"/")+f,o=C(l.type,c,l.props)),a.push(o)),1;f=0;var p=""===s?".":s+":";if(w(t))for(var g=0;g{"use strict";var t={328:e=>{e.exports=function(e){for(var t=5381,r=e.length;r;)t=33*t^e.charCodeAt(--r);return t>>>0}}},r={};function n(e){var a=r[e];if(void 0!==a)return a.exports;var i=r[e]={exports:{}},s=!0;try{t[e](i,i.exports,n),s=!1}finally{s&&delete r[e]}return i.exports}n.ab=__dirname+"/",e.exports=n(328)})()},"./dist/esm/lib/constants.js"(e,t,r){"use strict";r.d(t,{AA:()=>a,AR:()=>E,EP:()=>h,RM:()=>u,VC:()=>f,c1:()=>m,eM:()=>b,gW:()=>y,h:()=>i,j9:()=>n,kz:()=>s,mH:()=>l,o7:()=>g,qq:()=>v,r4:()=>o,tz:()=>c,vS:()=>p,x3:()=>d});let n="text/html; charset=utf-8",a="nxtP",i="nxtI",s="x-prerender-revalidate",o="x-prerender-revalidate-if-generated",l=".segments",c=".segment.rsc",u=".rsc",d=".json",h=".meta",f="x-next-cache-tags",p="x-next-revalidated-tags",m="x-next-revalidate-tag-token",g=128,v=256,y="_N_T_",b=31536e3,E=0xfffffffe,_={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"};({..._,GROUP:{builtinReact:[_.reactServerComponents,_.actionBrowser],serverOnly:[_.reactServerComponents,_.actionBrowser,_.instrument,_.middleware],neutralTarget:[_.apiNode,_.apiEdge],clientOnly:[_.serverSideRendering,_.appPagesBrowser],bundled:[_.reactServerComponents,_.actionBrowser,_.serverSideRendering,_.appPagesBrowser,_.shared,_.instrument,_.middleware],appPages:[_.reactServerComponents,_.serverSideRendering,_.appPagesBrowser,_.actionBrowser]}})},"./dist/esm/lib/format-dynamic-import-path.js"(e,t,r){"use strict";r.r(t),r.d(t,{formatDynamicImportPath:()=>s});var n=r("path"),a=r.n(n);let i=require("url"),s=(e,t)=>{let r=a().isAbsolute(t)?t:a().join(e,t);return(0,i.pathToFileURL)(r).toString()}},"./dist/esm/server/api-utils/index.js"(e,t,r){"use strict";r.d(t,{COOKIE_NAME_PRERENDER_BYPASS:()=>s,COOKIE_NAME_PRERENDER_DATA:()=>o,SYMBOL_PREVIEW_DATA:()=>l,checkIsOnDemandRevalidate:()=>i,clearPreviewData:()=>u});var n=r("./dist/esm/server/web/spec-extension/adapters/headers.js"),a=r("./dist/esm/lib/constants.js");function i(e,t){let r=n.o.from(e.headers);return{isOnDemandRevalidate:r.get(a.kz)===t.previewModeId,revalidateOnlyGenerated:r.has(a.r4)}}r("../../lib/trace/tracer"),r("./dist/esm/server/lib/trace/constants.js");let s="__prerender_bypass",o="__next_preview_data",l=Symbol(o),c=Symbol(s);function u(e,t={}){if(c in e)return e;let{serialize:n}=r("./dist/compiled/cookie/index.js"),a=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof a?[a]:Array.isArray(a)?a:[],n(s,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0}),n(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,c,{value:!0,enumerable:!1}),e}},"./dist/esm/server/api-utils/node/try-get-preview-data.js"(e,t,r){"use strict";r.r(t),r.d(t,{tryGetPreviewData:()=>s});var n=r("./dist/esm/server/api-utils/index.js"),a=r("./dist/esm/server/web/spec-extension/cookies.js"),i=r("./dist/esm/server/web/spec-extension/adapters/headers.js");function s(e,t,s,o){var l,c;let u;if(s&&(0,n.checkIsOnDemandRevalidate)(e,s).isOnDemandRevalidate)return!1;if(n.SYMBOL_PREVIEW_DATA in e)return e[n.SYMBOL_PREVIEW_DATA];let d=i.o.from(e.headers),h=new a.tm(d),f=null==(l=h.get(n.COOKIE_NAME_PRERENDER_BYPASS))?void 0:l.value,p=null==(c=h.get(n.COOKIE_NAME_PRERENDER_DATA))?void 0:c.value;if(f&&!p&&f===s.previewModeId){let t={};return Object.defineProperty(e,n.SYMBOL_PREVIEW_DATA,{value:t,enumerable:!1}),t}if(!f&&!p)return!1;if(!f||!p||f!==s.previewModeId)return o||(0,n.clearPreviewData)(t),!1;try{u=r("next/dist/compiled/jsonwebtoken").verify(p,s.previewModeSigningKey)}catch{return(0,n.clearPreviewData)(t),!1}let{decryptWithSecret:m}=r("./dist/esm/server/crypto-utils.js"),g=m(Buffer.from(s.previewModeEncryptionKey),u.data);try{let t=JSON.parse(g);return Object.defineProperty(e,n.SYMBOL_PREVIEW_DATA,{value:t,enumerable:!1}),t}catch{return!1}}},"./dist/esm/server/app-render/instant-validation/instant-samples.js"(e,t,r){"use strict";r.r(t),r.d(t,{assertRootParamInSamples:()=>x,createCookiesFromSample:()=>m,createDraftModeForValidation:()=>y,createExhaustiveParamsProxy:()=>b,createExhaustiveSearchParamsProxy:()=>E,createExhaustiveURLSearchParamsProxy:()=>_,createHeadersFromSample:()=>v,createRelativeURLFromSamples:()=>w,createValidationSampleTracking:()=>h,trackMissingSampleError:()=>f,trackMissingSampleErrorAndThrow:()=>p});var n=r("./dist/esm/server/web/spec-extension/cookies.js"),a=r("./dist/esm/server/web/spec-extension/adapters/request-cookies.js"),i=r("./dist/esm/server/web/spec-extension/adapters/headers.js"),s=r("./dist/esm/shared/lib/router/utils/get-segment-param.js"),o=r("./dist/esm/shared/lib/router/utils/parse-relative-url.js"),l=r("./dist/esm/shared/lib/invariant-error.js"),c=r("./dist/esm/server/app-render/instant-validation/instant-validation-error.js"),u=r("../../app-render/work-unit-async-storage.external"),d=r("./dist/esm/shared/lib/utils/reflect-utils.js");function h(){return{missingSampleErrors:[]}}function f(e){(function(){let e=null,t=u.workUnitAsyncStorage.getStore();if(t)switch(t.type){case"request":case"validation-client":e=t.validationSampleTracking??null}if(!e)throw Object.defineProperty(new l.z("Expected to have a workUnitStore that provides validationSampleTracking"),"__NEXT_ERROR_CODE",{value:"E1110",enumerable:!1,configurable:!0});return e})().missingSampleErrors.push(e)}function p(e){throw f(e),e}function m(e,t){let r=new Set,i=new n.tm(new Headers);if(e)for(let t of e)r.add(t.name),null!==t.value&&i.set(t.name,t.value);return new Proxy(a.Ck.seal(i),{get(e,n,a){if("has"===n){let i=Reflect.get(e,n,a);return function(n){return r.has(n)||p(g(t,n)),i.call(e,n)}}if("get"===n){let i=Reflect.get(e,n,a);return function(n){let a;if("string"==typeof n)a=n;else{if(!n||"object"!=typeof n||"string"!=typeof n.name)return i.call(e,n);a=n.name}return r.has(a)||p(g(t,a)),i.call(e,a)}}return Reflect.get(e,n,a)}})}function g(e,t){return Object.defineProperty(new c.D(`Route "${e}" accessed cookie "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`cookies\` array, or \`{ name: "${t}", value: null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1115",enumerable:!1,configurable:!0})}function v(e,t,r){let n=e?[...e]:[];if(n.find(([e])=>"cookie"===e.toLowerCase()))throw Object.defineProperty(new c.D('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'),"__NEXT_ERROR_CODE",{value:"E1111",enumerable:!1,configurable:!0});if(t){let e=t.toString();n.push(["cookie",""!==e?e:null])}let a=new Set,s={};for(let[e,t]of n)a.add(e.toLowerCase()),null!==t&&(s[e.toLowerCase()]=t);return new Proxy(i.o.seal(i.o.from(s)),{get(e,t,n){if("get"===t||"has"===t){let i=Reflect.get(e,t,n);return function(t){let n=t.toLowerCase();return a.has(n)||p(Object.defineProperty(new c.D(`Route "${r}" accessed header "${n}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`headers\` array, or \`["${n}", null]\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1116",enumerable:!1,configurable:!0})),i.call(e,n)}}return Reflect.get(e,t,n)}})}function y(){return{get isEnabled(){return!1},enable(){throw Object.defineProperty(Error("Draft mode cannot be enabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1092",enumerable:!1,configurable:!0})},disable(){throw Object.defineProperty(Error("Draft mode cannot be disabled during build-time instant validation."),"__NEXT_ERROR_CODE",{value:"E1094",enumerable:!1,configurable:!0})}}}function b(e,t,r){return new Proxy(e,{get:(n,a,i)=>("string"==typeof a&&!d.lY.has(a)&&a in e&&!t.has(a)&&p(Object.defineProperty(new c.D(`Route "${r}" accessed param "${a}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1095",enumerable:!1,configurable:!0})),Reflect.get(n,a,i))})}function E(e,t,r){return new Proxy(e,{get:(e,n,a)=>("string"!=typeof n||d.lY.has(n)||t.has(n)||p(R(r,n)),Reflect.get(e,n,a)),has:(e,n)=>("string"!=typeof n||d.lY.has(n)||t.has(n)||p(R(r,n)),Reflect.has(e,n))})}function _(e,t,r){return new Proxy(e,{get(e,n,a){if("get"===n||"getAll"===n||"has"===n){let i=Reflect.get(e,n,a);return n=>("string"!=typeof n||t.has(n)||p(R(r,n)),i.call(e,n))}let i=Reflect.get(e,n,a);return"function"!=typeof i||Object.hasOwn(e,n)?i:i.bind(e)}})}function R(e,t){return Object.defineProperty(new c.D(`Route "${e}" accessed searchParam "${t}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`searchParams\` object, or \`{ "${t}": null }\` if it should be absent.`),"__NEXT_ERROR_CODE",{value:"E1098",enumerable:!1,configurable:!0})}function w(e,t,r){let n=function(e,t){let r=[];for(let n of e.split("/")){let e=(0,s.Hp)(n);if(e)switch(e.paramType){case"catchall":case"optional-catchall":{let a=t[e.paramName];if(void 0===a)a=[n];else if(!Array.isArray(a))throw Object.defineProperty(new c.D(`Expected sample param value for segment '${n}' to be an array of strings, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1104",enumerable:!1,configurable:!0});r.push(...a.map(e=>encodeURIComponent(e)));break}case"dynamic":{let a=t[e.paramName];if(void 0===a)a=n;else if("string"!=typeof a)throw Object.defineProperty(new c.D(`Expected sample param value for segment '${n}' to be a string, got ${typeof a}`),"__NEXT_ERROR_CODE",{value:"E1108",enumerable:!1,configurable:!0});r.push(encodeURIComponent(a));break}case"catchall-intercepted-(..)(..)":case"catchall-intercepted-(.)":case"catchall-intercepted-(..)":case"catchall-intercepted-(...)":case"dynamic-intercepted-(..)(..)":case"dynamic-intercepted-(.)":case"dynamic-intercepted-(..)":case"dynamic-intercepted-(...)":throw Object.defineProperty(new l.z("Not implemented: Validation of interception routes"),"__NEXT_ERROR_CODE",{value:"E1106",enumerable:!1,configurable:!0});default:e.paramType}else r.push(n)}return r.join("/")}(e,t??{}),a="";if(r){let e=(function(e){let t=new URLSearchParams;if(e){for(let[r,n]of Object.entries(e))if(null!=n)if(Array.isArray(n))for(let e of n)t.append(r,e);else t.set(r,n)}return t})(r).toString();e&&(a="?"+e)}return(0,o.r)(n+a,void 0,!0)}function x(e,t,r){if(t&&r in t);else{let t=e.route;p(Object.defineProperty(new c.D(`Route "${t}" accessed root param "${r}" which is not defined in the \`samples\` of \`unstable_instant\`. Add it to the sample's \`params\` object.`),"__NEXT_ERROR_CODE",{value:"E1114",enumerable:!1,configurable:!0}))}}},"./dist/esm/server/app-render/instant-validation/instant-validation-error.js"(e,t,r){"use strict";r.d(t,{D:()=>i,R:()=>a});let n="INSTANT_VALIDATION_ERROR";function a(e){return!!(e&&"object"==typeof e&&e instanceof Error&&e.digest===n)}class i extends Error{constructor(...e){super(...e),this.digest=n}}},"./dist/esm/server/crypto-utils.js"(e,t,r){"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>o,encryptWithSecret:()=>s});var n=r("crypto"),a=r.n(n);let i="aes-256-gcm";function s(e,t){let r=a().randomBytes(16),n=a().randomBytes(64),s=a().pbkdf2Sync(e,n,1e5,32,"sha512"),o=a().createCipheriv(i,s,r),l=Buffer.concat([o.update(t,"utf8"),o.final()]),c=o.getAuthTag();return Buffer.concat([n,r,c,l]).toString("hex")}function o(e,t){let r=Buffer.from(t,"hex"),n=r.slice(0,64),s=r.slice(64,80),o=r.slice(80,96),l=r.slice(96),c=a().pbkdf2Sync(e,n,1e5,32,"sha512"),u=a().createDecipheriv(i,c,s);return u.setAuthTag(o),u.update(l)+u.final("utf8")}},"./dist/esm/server/lib/node-fs-methods.js"(e,t,r){"use strict";r.d(t,{e:()=>i});let n=require("fs");var a=r.n(n);let i={existsSync:a().existsSync,readFile:a().promises.readFile,readFileSync:a().readFileSync,writeFile:(e,t)=>a().promises.writeFile(e,t),mkdir:e=>a().promises.mkdir(e,{recursive:!0}),stat:e=>a().promises.stat(e)}},"./dist/esm/server/lib/router-utils/is-postpone.js"(e,t,r){"use strict";r.d(t,{D:()=>a});let n=Symbol.for("react.postpone");function a(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}},"./dist/esm/server/lib/trace/constants.js"(e,t,r){"use strict";r.d(t,{Fx:()=>s,Wc:()=>o,jM:()=>l});var n,a,i,s=((n=s||{}).compression="NextNodeServer.compression",n.getBuildId="NextNodeServer.getBuildId",n.createComponentTree="NextNodeServer.createComponentTree",n.clientComponentLoading="NextNodeServer.clientComponentLoading",n.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",n.generateStaticRoutes="NextNodeServer.generateStaticRoutes",n.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",n.generatePublicRoutes="NextNodeServer.generatePublicRoutes",n.generateImageRoutes="NextNodeServer.generateImageRoutes.route",n.sendRenderResult="NextNodeServer.sendRenderResult",n.proxyRequest="NextNodeServer.proxyRequest",n.runApi="NextNodeServer.runApi",n.render="NextNodeServer.render",n.renderHTML="NextNodeServer.renderHTML",n.imageOptimizer="NextNodeServer.imageOptimizer",n.getPagePath="NextNodeServer.getPagePath",n.getRoutesManifest="NextNodeServer.getRoutesManifest",n.findPageComponents="NextNodeServer.findPageComponents",n.getFontManifest="NextNodeServer.getFontManifest",n.getServerComponentManifest="NextNodeServer.getServerComponentManifest",n.getRequestHandler="NextNodeServer.getRequestHandler",n.renderToHTML="NextNodeServer.renderToHTML",n.renderError="NextNodeServer.renderError",n.renderErrorToHTML="NextNodeServer.renderErrorToHTML",n.render404="NextNodeServer.render404",n.startResponse="NextNodeServer.startResponse",n.route="route",n.onProxyReq="onProxyReq",n.apiResolver="apiResolver",n.internalFetch="internalFetch",n),o=((a=o||{}).renderToString="AppRender.renderToString",a.renderToReadableStream="AppRender.renderToReadableStream",a.getBodyResult="AppRender.getBodyResult",a.fetch="AppRender.fetch",a),l=((i=l||{}).runHandler="AppRouteRouteHandlers.runHandler",i)},"./dist/esm/server/node-environment-extensions/process-error-handlers.js"(e,t,r){"use strict";r.r(t),r.d(t,{installProcessErrorHandlers:()=>i});var n=r("./dist/esm/server/lib/router-utils/is-postpone.js");let a=globalThis;function i(e){a.nextInitializedProcessErrorHandlers||(a.nextInitializedProcessErrorHandlers=!0,e&&(process.removeAllListeners("uncaughtException"),process.removeAllListeners("unhandledRejection")),process.on("unhandledRejection",e=>{(0,n.D)(e)||console.error(e)}),process.on("rejectionHandled",()=>{}),process.on("uncaughtException",e=>{(0,n.D)(e)||console.error(e)}))}},"./dist/esm/server/web/spec-extension/adapters/headers.js"(e,t,r){"use strict";r.d(t,{o:()=>i});var n=r("./dist/esm/server/web/spec-extension/adapters/reflect.js");class a extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new a}}class i extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,a){if("symbol"==typeof r)return n.l.get(t,r,a);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);if(void 0!==s)return n.l.get(t,s,a)},set(t,r,a,i){if("symbol"==typeof r)return n.l.set(t,r,a,i);let s=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===s);return n.l.set(t,o??r,a,i)},has(t,r){if("symbol"==typeof r)return n.l.has(t,r);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return void 0!==i&&n.l.has(t,i)},deleteProperty(t,r){if("symbol"==typeof r)return n.l.deleteProperty(t,r);let a=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===a);return void 0===i||n.l.deleteProperty(t,i)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return a.callable;default:return n.l.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new i(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,n]of this.entries())e.call(t,n,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},"./dist/esm/server/web/spec-extension/adapters/reflect.js"(e,t,r){"use strict";r.d(t,{l:()=>n});class n{static get(e,t,r){let n=Reflect.get(e,t,r);return"function"==typeof n?n.bind(e):n}static set(e,t,r,n){return Reflect.set(e,t,r,n)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}},"./dist/esm/server/web/spec-extension/adapters/request-cookies.js"(e,t,r){"use strict";r.d(t,{Ck:()=>l,EJ:()=>h,IN:()=>u,K8:()=>d});var n=r("./dist/esm/server/web/spec-extension/cookies.js"),a=r("./dist/esm/server/web/spec-extension/adapters/reflect.js"),i=r("../../app-render/work-async-storage.external"),s=r("./dist/esm/shared/lib/action-revalidation-kind.js");class o extends Error{constructor(){super("Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options")}static callable(){throw new o}}class l{static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"clear":case"delete":case"set":return o.callable;default:return a.l.get(e,t,r)}}})}}let c=Symbol.for("next.mutated.cookies");function u(e,t){let r,a=(r=t[c])&&Array.isArray(r)&&0!==r.length?r:[];if(0===a.length)return!1;let i=new n.VO(e),s=i.getAll();for(let e of a)i.set(e);for(let e of s)i.set(e);return!0}class d{static wrap(e,t){let r=new n.VO(new Headers);for(let t of e.getAll())r.set(t);let o=[],l=new Set,u=()=>{let e=i.workAsyncStorage.getStore();if(e&&(e.pathWasRevalidated=s.Du),o=r.getAll().filter(e=>l.has(e.name)),t){let e=[];for(let t of o){let r=new n.VO(new Headers);r.set(t),e.push(r.toString())}t(e)}},d=new Proxy(r,{get(e,t,r){switch(t){case c:return o;case"delete":return function(...t){l.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.delete(...t),d}finally{u()}};case"set":return function(...t){l.add("string"==typeof t[0]?t[0]:t[0].name);try{return e.set(...t),d}finally{u()}};default:return a.l.get(e,t,r)}}});return d}}function h(e){let t=new Proxy(e.mutableCookies,{get(r,n,i){switch(n){case"delete":return function(...n){return f(e,"cookies().delete"),r.delete(...n),t};case"set":return function(...n){return f(e,"cookies().set"),r.set(...n),t};default:return a.l.get(r,n,i)}}});return t}function f(e,t){if("action"!==e.phase)throw new o}},"./dist/esm/server/web/spec-extension/cookies.js"(e,t,r){"use strict";r.d(t,{VO:()=>n.ResponseCookies,tm:()=>n.RequestCookies});var n=r("./dist/compiled/@edge-runtime/cookies/index.js")},"./dist/esm/shared/lib/action-revalidation-kind.js"(e,t,r){"use strict";r.d(t,{Du:()=>n});let n=1},"./dist/esm/shared/lib/invariant-error.js"(e,t,r){"use strict";r.d(t,{z:()=>n});class n extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}},"./dist/esm/shared/lib/isomorphic/path.js"(e,t,r){e.exports=r("path")},"./dist/esm/shared/lib/modern-browserslist-target.js"(e){e.exports=["chrome 111","edge 111","firefox 111","safari 16.4"]},"./dist/esm/shared/lib/page-path/ensure-leading-slash.js"(e,t,r){"use strict";function n(e){return e.startsWith("/")?e:`/${e}`}r.d(t,{A:()=>n})},"./dist/esm/shared/lib/router/utils/app-paths.js"(e,t,r){"use strict";r.d(t,{P7:()=>s,Yr:()=>i});var n=r("./dist/esm/shared/lib/page-path/ensure-leading-slash.js"),a=r("./dist/esm/shared/lib/segment.js");function i(e){return(0,n.A)(e.split("/").reduce((e,t,r,n)=>!t||(0,a.V)(t)||"@"===t[0]||("page"===t||"route"===t)&&r===n.length-1?e:`${e}/${t}`,""))}function s(e){return e.replace(/\.rsc($|\?)/,"$1")}},"./dist/esm/shared/lib/router/utils/get-segment-param.js"(e,t,r){"use strict";r.d(t,{Hp:()=>a});var n=r("./dist/esm/shared/lib/router/utils/interception-routes.js");function a(e){let t=n.VB.find(t=>e.startsWith(t));return(t&&(e=e.slice(t.length)),e.startsWith("[[...")&&e.endsWith("]]"))?{paramType:"optional-catchall",paramName:e.slice(5,-2)}:e.startsWith("[...")&&e.endsWith("]")?{paramType:t?`catchall-intercepted-${t}`:"catchall",paramName:e.slice(4,-1)}:e.startsWith("[")&&e.endsWith("]")?{paramType:t?`dynamic-intercepted-${t}`:"dynamic",paramName:e.slice(1,-1)}:null}},"./dist/esm/shared/lib/router/utils/interception-routes.js"(e,t,r){"use strict";r.d(t,{$8:()=>s,VB:()=>a,m1:()=>i});var n=r("./dist/esm/shared/lib/router/utils/app-paths.js");let a=["(..)(..)","(.)","(..)","(...)"];function i(e){return void 0!==e.split("/").find(e=>a.find(t=>e.startsWith(t)))}function s(e){let t,r,i;for(let n of e.split("/"))if(r=a.find(e=>n.startsWith(e))){[t,i]=e.split(r,2);break}if(!t||!r||!i)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=(0,n.Yr)(t),r){case"(.)":i="/"===t?`/${i}`:t+"/"+i;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});i=t.split("/").slice(0,-1).concat(i).join("/");break;case"(...)":i="/"+i;break;case"(..)(..)":let s=t.split("/");if(s.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});i=s.slice(0,-2).concat(i).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:i}}},"./dist/esm/shared/lib/router/utils/parse-relative-url.js"(e,t,r){"use strict";r.d(t,{r:()=>a}),r("./dist/esm/shared/lib/utils.js");var n=r("./dist/esm/shared/lib/router/utils/querystring.js");function a(e,t,r=!0){let i=new URL("http://n"),s=t?new URL(t,i):e.startsWith(".")?new URL("http://n"):i,{pathname:o,searchParams:l,search:c,hash:u,href:d,origin:h}=e.startsWith("/")?new URL(`${s.protocol}//${s.host}${e}`):new URL(e,s);if(h!==i.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${e}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:o,port:null,protocol:null,query:r?(0,n.v1)(l):void 0,search:c,hash:u,href:d.slice(h.length),slashes:null}}},"./dist/esm/shared/lib/router/utils/querystring.js"(e,t,r){"use strict";function n(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function a(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function i(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,a(e));else t.set(r,a(n));return t}r.d(t,{Bw:()=>i,v1:()=>n})},"./dist/esm/shared/lib/segment.js"(e,t,r){"use strict";function n(e){return"("===e[0]&&e.endsWith(")")}r.d(t,{V:()=>n})},"./dist/esm/shared/lib/utils.js"(e,t,r){"use strict";r.d(t,{MK:()=>a,Xc:()=>n}),"undefined"!=typeof performance&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class n extends Error{}class a extends Error{}},"./dist/esm/shared/lib/utils/reflect-utils.js"(e,t,r){"use strict";r.d(t,{ke:()=>a,lY:()=>i});let n=/^[A-Za-z_$][A-Za-z0-9_$]*$/;function a(e,t){return n.test(t)?`\`${e}.${t}\``:`\`${e}[${JSON.stringify(t)}]\``}let i=new Set(["hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toString","valueOf","toLocaleString","then","catch","finally","status","displayName","_debugInfo","toJSON","$$typeof","__esModule","@@iterator"])},"../../app-render/action-async-storage.external"(e){"use strict";e.exports=require("next/dist/server/app-render/action-async-storage.external.js")},"../../app-render/work-async-storage.external"(e){"use strict";e.exports=require("next/dist/server/app-render/work-async-storage.external.js")},"../../app-render/work-unit-async-storage.external"(e){"use strict";e.exports=require("next/dist/server/app-render/work-unit-async-storage.external.js")},"../lib/router-utils/instrumentation-globals.external.js"(e){"use strict";e.exports=require("next/dist/server/lib/router-utils/instrumentation-globals.external.js")},"../../lib/trace/tracer"(e){"use strict";e.exports=require("next/dist/server/lib/trace/tracer")},"../load-manifest.external"(e){"use strict";e.exports=require("next/dist/server/load-manifest.external.js")},"next/dist/compiled/jsonwebtoken"(e){"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},crypto(e){"use strict";e.exports=require("crypto")},"node:path"(e){"use strict";e.exports=require("node:path")},"node:zlib"(e){"use strict";e.exports=require("node:zlib")},path(e){"use strict";e.exports=require("path")}},n={};function a(e){var t=n[e];if(void 0!==t)return t.exports;var i=n[e]={exports:{}};return r[e](i,i.exports,a),i.exports}a.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return a.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,a.t=function(r,n){if(1&n&&(r=this(r)),8&n||"object"==typeof r&&r&&(4&n&&r.__esModule||16&n&&"function"==typeof r.then))return r;var i=Object.create(null);a.r(i);var s={};e=e||[null,t({}),t([]),t(t)];for(var o=2&n&&r;("object"==typeof o||"function"==typeof o)&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>{s[e]=()=>r[e]});return s.default=()=>r,a.d(i,s),i},a.d=(e,t)=>{for(var r in t)a.o(t,r)&&!a.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},a.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),a.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";let e;a.r(i),a.d(i,{AppRouteRouteModule:()=>rz,WrappedNextRouterError:()=>rX,default:()=>rG,hasNonStaticMethods:()=>rB});var t,r,n,s,o,l,c,u,d={};a.r(d),a.d(d,{DynamicServerError:()=>t1,isDynamicServerError:()=>t2});var h={};a.r(h),a.d(h,{AppRouterContext:()=>rx,GlobalLayoutRouterContext:()=>rS,LayoutRouterContext:()=>rP,MissingSlotContext:()=>rO,TemplateContext:()=>rC});var f={};a.r(f),a.d(f,{appRouterContext:()=>h}),require("next/dist/build/adapter/setup-node-env.external.js"),a("./dist/esm/shared/lib/modern-browserslist-target.js");let p="build-manifest.json";function m(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let n=t.searchParams.getAll(e);r[e]=n.length>1?n:n[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let g=new WeakMap;function v(e,t){let r;if(!t)return{pathname:e};let n=g.get(t);n||(n=t.map(e=>e.toLowerCase()),g.set(t,n));let a=e.split("/",2);if(!a[1])return{pathname:e};let i=a[1].toLowerCase(),s=n.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}var y=a("./dist/esm/shared/lib/router/utils/interception-routes.js");let b=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,E=/\/\[[^/]+\](?=\/|$)/;function _(e,t=!0){return((0,y.m1)(e)&&(e=(0,y.$8)(e).interceptedRoute),t)?E.test(e):b.test(e)}function R(e){let t=e.indexOf("#"),r=e.indexOf("?"),n=r>-1&&(t<0||r-1?{pathname:e.substring(0,n?r:t),query:n?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function w(e,t){if("string"!=typeof e)return!1;let{pathname:r}=R(e);return r===t||r.startsWith(t+"/")}function x(e,t){if(!w(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}var P=a("./dist/compiled/path-to-regexp/index.js"),S=a("./dist/esm/lib/constants.js");let C=/[|\\{}()[\]^$+*?.-]/,O=/[|\\{}()[\]^$+*?.-]/g;function T(e){return C.test(e)?e.replace(O,"\\$&"):e}function A(e){return e.replace(/\/$/,"")||"/"}var j=a("./dist/esm/shared/lib/invariant-error.js");let k=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function D(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}function $({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:n,keyPrefix:a,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:c}=D(r),u=o.replace(/\W/g,"");a&&(u=`${a}${u}`);let d=!1;(0===u.length||u.length>30)&&(d=!0),isNaN(parseInt(u.slice(0,1)))||(d=!0),d&&(u=t());let h=u in n;a?n[u]=`${a}${o}`:n[u]=o;let f=e?T(e):"";return s=h&&i?`\\k<${u}>`:c?`(?<${u}>.+?)`:`(?<${u}>[^/]+?)`,{key:o,pattern:l?`(?:/${f}${s})?`:`/${f}${s}`,cleanedKey:u,optional:l,repeat:c}}var N=a("./dist/esm/shared/lib/utils.js");let I="_NEXTSEP_";function M(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function L(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${I}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${I}`)}function U(e){return e.replace(RegExp(`\\)${I}`,"g"),")")}function H(e,t,r){if("string"!=typeof e)return(0,P.pathToRegexp)(e,t,r);let n=M(e),a=n?L(e):e;try{return(0,P.pathToRegexp)(a,t,r)}catch(a){if(!n)try{let n=L(e);return(0,P.pathToRegexp)(n,t,r)}catch(e){}throw a}}function F(e,t){let r=M(e),n=r?L(e):e;try{let e=(0,P.compile)(n,t);if(r)return t=>U(e(t));return e}catch(n){if(!r)try{let r=L(e),n=(0,P.compile)(r,t);return e=>U(n(e))}catch(e){}throw n}}function q({re:e,groups:t}){var r;return r=r=>{let n=e.exec(r);if(!n)return!1;let a=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new N.Xc("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=n[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>a(e)):i[e]=a(t))}return i},e=>{let t=r(e);if(!t)return!1;let n={};for(let[e,r]of Object.entries(t))"string"==typeof r?n[e]=r.replace(RegExp(`^${I}`),""):Array.isArray(r)?n[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${I}`),""):e):n[e]=r;return n}}var X=a("./dist/esm/shared/lib/router/utils/querystring.js"),z=a("./dist/esm/shared/lib/router/utils/parse-relative-url.js");function G(e){return e.replace(/__ESC_COLON_/gi,":")}function B(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),F(`/${e}`,{validate:!1})(t).slice(1)}var W=a("./dist/esm/shared/lib/router/utils/app-paths.js");function V(e){for(let t of[S.AA,S.h])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function K(e){try{return decodeURIComponent(e)}catch{return e}}let J=/https?|ftp|gopher|file/;function Y(e,t){for(let r in delete e.nextInternalLocale,e){let n=r!==S.AA&&r.startsWith(S.AA),a=r!==S.h&&r.startsWith(S.h);(n||a||t.includes(r))&&delete e[r]}}function Q(e,t,r){if(e){for(let n of(r&&(r=r.toLowerCase()),e))if(t===n.domain?.split(":",1)[0].toLowerCase()||r===n.defaultLocale.toLowerCase()||n.locales?.some(e=>e.toLowerCase()===r))return n}}function Z(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}var ee=a("./dist/esm/server/api-utils/index.js");function et(e){return w(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}let er=Symbol.for("NextInternalRequestMeta");function en(e,t){let r=e[er]||{};return"string"==typeof t?r[t]:r}function ea(e,t,r){let n=en(e);return n[t]=r,e[er]=n,n}var ei=a("./dist/esm/shared/lib/page-path/ensure-leading-slash.js");function es(e){let t=/^\/index(\/|$)/.test(e)&&!_(e)?`/index${e}`:"/"===e?"/index":(0,ei.A)(e);{let{posix:e}=a("path"),r=e.normalize(t);if(r!==t)throw new N.MK(`Requested and resolved page mismatch: ${t} ${r}`)}return t}let eo=["ico","jpg","jpeg","png","svg"],el=["jpg","jpeg","png"],ec=["jpg","jpeg","png","gif"],eu=["jpg","jpeg","png","gif"],ed=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,eh=/^[\\/]favicon\.ico$/,ef=/^[\\/]robots\.txt$/,ep=/^[\\/]manifest\.json$/,em=/^[\\/]manifest\.webmanifest$/,eg=/[\\/]sitemap\.xml$/,ev=new Map;class ey{constructor(){let e,t;this.promise=new Promise((r,n)=>{e=r,t=n}),this.resolve=e,this.reject=t}}class eb{constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new eb(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let n=this.pending.get(r);if(n)return n;let{promise:a,resolve:i,reject:s}=new ey;return this.pending.set(r,a),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),a}}class eE{constructor(e,t,r){this.prev=null,this.next=null,this.key=e,this.data=t,this.size=r}}class e_{constructor(){this.prev=null,this.next=null}}class eR{constructor(e,t,r){this.cache=new Map,this.totalSize=0,this.maxSize=e,this.calculateSize=t,this.onEvict=r,this.head=new e_,this.tail=new e_,this.head.next=this.tail,this.tail.prev=this.head}addToHead(e){e.prev=this.head,e.next=this.head.next,this.head.next.prev=e,this.head.next=e}removeNode(e){e.prev.next=e.next,e.next.prev=e.prev}moveToHead(e){this.removeNode(e),this.addToHead(e)}removeTail(){let e=this.tail.prev;return this.removeNode(e),e}set(e,t){let r=(null==this.calculateSize?void 0:this.calculateSize.call(this,t))??1;if(r<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${r}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E1045",enumerable:!1,configurable:!0});if(r>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let n=this.cache.get(e);if(n)n.data=t,this.totalSize=this.totalSize-n.size+r,n.size=r,this.moveToHead(n);else{let n=new eE(e,t,r);this.cache.set(e,n),this.addToHead(n),this.totalSize+=r}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let e=this.removeTail();this.cache.delete(e.key),this.totalSize-=e.size,null==this.onEvict||this.onEvict.call(this,e.key,e.data)}return!0}has(e){return this.cache.has(e)}get(e){let t=this.cache.get(e);if(t)return this.moveToHead(t),t.data}*[Symbol.iterator](){let e=this.head.next;for(;e&&e!==this.tail;){let t=e;yield[t.key,t.data],e=e.next}}remove(e){let t=this.cache.get(e);t&&(this.removeNode(t),this.cache.delete(e),this.totalSize-=t.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}let{env:ew,stdout:ex}=(null==(u=globalThis)?void 0:u.process)??{},eP=ew&&!ew.NO_COLOR&&(ew.FORCE_COLOR||(null==ex?void 0:ex.isTTY)&&!ew.CI&&"dumb"!==ew.TERM),eS=(e,t,r,n)=>{let a=e.substring(0,n)+r,i=e.substring(n+t.length),s=i.indexOf(t);return~s?a+eS(i,t,r,s):a+i},eC=(e,t,r=e)=>eP?n=>{let a=""+n,i=a.indexOf(t,e.length);return~i?e+eS(a,t,r,i)+t:e+a+t}:String,eO=eC("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");eC("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),eC("\x1b[3m","\x1b[23m"),eC("\x1b[4m","\x1b[24m"),eC("\x1b[7m","\x1b[27m"),eC("\x1b[8m","\x1b[28m"),eC("\x1b[9m","\x1b[29m"),eC("\x1b[30m","\x1b[39m");let eT=eC("\x1b[31m","\x1b[39m"),eA=eC("\x1b[32m","\x1b[39m"),ej=eC("\x1b[33m","\x1b[39m");eC("\x1b[34m","\x1b[39m");let ek=eC("\x1b[35m","\x1b[39m");eC("\x1b[38;2;173;127;168m","\x1b[39m"),eC("\x1b[36m","\x1b[39m");let eD=eC("\x1b[37m","\x1b[39m");eC("\x1b[90m","\x1b[39m"),eC("\x1b[40m","\x1b[49m"),eC("\x1b[41m","\x1b[49m"),eC("\x1b[42m","\x1b[49m"),eC("\x1b[43m","\x1b[49m"),eC("\x1b[44m","\x1b[49m"),eC("\x1b[45m","\x1b[49m"),eC("\x1b[46m","\x1b[49m"),eC("\x1b[47m","\x1b[49m");let e$={wait:eD(eO("○")),error:eT(eO("⨯")),warn:ej(eO("⚠")),ready:"▲",info:eD(eO(" ")),event:eA(eO("✓")),trace:ek(eO("\xbb"))},eN={log:"log",warn:"warn",error:"error"},eI=new eR(1e4,e=>e.length);new eR(1e4,e=>e.length);let eM=e=>{Promise.resolve().then(()=>{process.nextTick(e)})},eL=e=>{setImmediate(e)};var eU=((t={}).APP_PAGE="APP_PAGE",t.APP_ROUTE="APP_ROUTE",t.PAGES="PAGES",t.FETCH="FETCH",t.REDIRECT="REDIRECT",t.IMAGE="IMAGE",t),eH=((r={}).APP_PAGE="APP_PAGE",r.APP_ROUTE="APP_ROUTE",r.PAGES="PAGES",r.FETCH="FETCH",r.IMAGE="IMAGE",r),eF=a("../../lib/trace/tracer"),eq=a("./dist/esm/server/lib/trace/constants.js");function eX(){}new Uint8Array([60,104,116,109,108]),new Uint8Array([60,104,101,97,100]),new Uint8Array([60,98,111,100,121]),new Uint8Array([60,47,104,101,97,100,62]),new Uint8Array([60,47,98,111,100,121,62]),new Uint8Array([60,47,104,116,109,108,62]),new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62]),new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34]);let ez=new TextEncoder;function eG(e){return new ReadableStream({start(t){t.enqueue(ez.encode(e)),t.close()}})}function eB(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function eW(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),n="";for await(let a of e){if(null==t?void 0:t.aborted)return n;n+=r.decode(a,{stream:!0})}return n+r.decode()}function eV(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=R(e);return`${t}${r}${n}${a}`}function eK(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:n,hash:a}=R(e);return`${r}${t}${n}${a}`}let eJ=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function eY(e,t){let r=new URL(String(e),t&&String(t));return eJ.test(r.hostname)&&(r.hostname="localhost"),r}let eQ=Symbol("NextURLInternal");class eZ{constructor(e,t,r){let n,a;"object"==typeof t&&"pathname"in t||"string"==typeof t?(n=t,a=r||{}):a=r||t||{},this[eQ]={url:eY(e,n??a.base),options:a,basePath:""},this.analyze()}analyze(){var e,t,r,n,a;let i=function(e,t){let{basePath:r,i18n:n,trailingSlash:a}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):a};r&&w(i.pathname,r)&&(i.pathname=x(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(n){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):v(i.pathname,n.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):v(s,n.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[eQ].url.pathname,{nextConfig:this[eQ].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[eQ].options.i18nProvider}),s=Z(this[eQ].url,this[eQ].options.headers);this[eQ].domainLocale=this[eQ].options.i18nProvider?this[eQ].options.i18nProvider.detectDomainLocale(s):Q(null==(t=this[eQ].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[eQ].domainLocale)?void 0:r.defaultLocale)||(null==(a=this[eQ].options.nextConfig)||null==(n=a.i18n)?void 0:n.defaultLocale);this[eQ].url.pathname=i.pathname,this[eQ].defaultLocale=o,this[eQ].basePath=i.basePath??"",this[eQ].buildId=i.buildId,this[eQ].locale=i.locale??o,this[eQ].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,n){if(!t||t===r)return e;let a=e.toLowerCase();return!n&&(w(a,"/api")||w(a,`/${t.toLowerCase()}`))?e:eV(e,`/${t}`)}((e={basePath:this[eQ].basePath,buildId:this[eQ].buildId,defaultLocale:this[eQ].options.forceLocale?void 0:this[eQ].defaultLocale,locale:this[eQ].locale,pathname:this[eQ].url.pathname,trailingSlash:this[eQ].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=A(t)),e.buildId&&(t=eK(eV(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=eV(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:eK(t,"/"):A(t)}formatSearch(){return this[eQ].url.search}get buildId(){return this[eQ].buildId}set buildId(e){this[eQ].buildId=e}get locale(){return this[eQ].locale??""}set locale(e){var t,r;if(!this[eQ].locale||!(null==(r=this[eQ].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[eQ].locale=e}get defaultLocale(){return this[eQ].defaultLocale}get domainLocale(){return this[eQ].domainLocale}get searchParams(){return this[eQ].url.searchParams}get host(){return this[eQ].url.host}set host(e){this[eQ].url.host=e}get hostname(){return this[eQ].url.hostname}set hostname(e){this[eQ].url.hostname=e}get port(){return this[eQ].url.port}set port(e){this[eQ].url.port=e}get protocol(){return this[eQ].url.protocol}set protocol(e){this[eQ].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[eQ].url=eY(e),this.analyze()}get origin(){return this[eQ].url.origin}get pathname(){return this[eQ].url.pathname}set pathname(e){this[eQ].url.pathname=e}get hash(){return this[eQ].url.hash}set hash(e){this[eQ].url.hash=e}get search(){return this[eQ].url.search}set search(e){this[eQ].url.search=e}get password(){return this[eQ].url.password}set password(e){this[eQ].url.password=e}get username(){return this[eQ].url.username}set username(e){this[eQ].url.username=e}get basePath(){return this[eQ].basePath}set basePath(e){this[eQ].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new eZ(String(this),this[eQ].options)}}var e0=a("./dist/esm/server/web/spec-extension/cookies.js");Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let e1="ResponseAborted";class e2 extends Error{constructor(...e){super(...e),this.name=e1}}let e3=0,e9=0,e4=0;function e8(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===e1}async function e6(e,t,r){try{let n,{errored:a,destroyed:i}=t;if(a||i)return;let s=(n=new AbortController,t.once("close",()=>{t.writableFinished||n.abort(new e2)}),n),o=function(e,t){let r=!1,n=new ey;function a(){n.resolve()}e.on("drain",a),e.once("close",()=>{e.off("drain",a),n.resolve()});let i=new ey;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=function(e={}){let t=0===e3?void 0:{clientComponentLoadStart:e3,clientComponentLoadTimes:e9,clientComponentLoadCount:e4};return e.reset&&(e3=0,e9=0,e4=0),t}();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,eF.getTracer)().trace(eq.Fx.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await n.promise,n=new ey)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(o,{signal:s.signal})}catch(e){if(e8(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}class e5{static #e=this.EMPTY=new e5(null,{metadata:{},contentType:null});static fromStatic(e,t){return new e5(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:n}){this.response=e,this.contentType=t,this.metadata=n,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new j.z("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return eW(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?eG(this.response):Buffer.isBuffer(this.response)?eB(this.response):Array.isArray(this.response)?function(...e){if(0===e.length)return new ReadableStream({start(e){e.close()}});if(1===e.length)return e[0];let{readable:t,writable:r}=new TransformStream,n=e[0].pipeTo(r,{preventClose:!0}),a=1;for(;at.pipeTo(r,{preventClose:!0}))}let i=e[a];return(n=n.then(()=>i.pipeTo(r))).catch(eX),t}(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[eG(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[eB(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(e8(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await e6(this.readable,e,this.waitUntil)}}var e7=((n={}).PAGES="PAGES",n.PAGES_API="PAGES_API",n.APP_PAGE="APP_PAGE",n.APP_ROUTE="APP_ROUTE",n.IMAGE="IMAGE",n);async function te(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===eU.PAGES?{kind:eU.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===eU.APP_PAGE?{kind:eU.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function tt(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===eU.PAGES?{kind:eU.PAGES,html:e5.fromStatic(e.value.html,S.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===eU.APP_PAGE?{kind:eU.APP_PAGE,html:e5.fromStatic(e.value.html,S.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function tr(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let tn=tr(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),ta=tr(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),ti="__ttl_sentinel__";function ts(e,t){return`${e}\0${t??ti}`}class to{constructor(e,t=ta,r=tn){this.getBatcher=eb.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:eM}),this.revalidateBatcher=eb.create({schedulerFn:eM}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new eR(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===ti?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=ts(e,r.invocationID),n=this.cache.get(t);if(n){if(void 0!==r.invocationID)return tt(n.entry);let e=Date.now();if(n.expiresAt>e)return tt(n.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&function(...e){let t=e.join(" ");eI.has(t)||(eI.set(t,t),function(...e){!function(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in eN?eN[e]:"log",n=e$[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](n+" "+t[0]):console[r](n,...t)}("warn",...e)}(...e))}(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:n,isOnDemandRevalidate:a=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:c,invocationID:u}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:a},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:n,isOnDemandRevalidate:a,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:c,invocationID:u},r);return l&&l(d),d});return tt(d)}async handleGet(e,t,r,n){let a=null,i=!1;try{if((a=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case e7.PAGES:return eH.PAGES;case e7.APP_PAGE:return eH.APP_PAGE;case e7.IMAGE:return eH.IMAGE;case e7.APP_ROUTE:return eH.APP_ROUTE;case e7.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(n(a),i=!0,!a.isStale||r.isPrefetch))return a;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,a,null!==a&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=ts(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,n,a,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let c=this.handleRevalidate(e,t,r,n,a,i,s,l);return o&&o(c),c})}async handleRevalidate(e,t,r,n,a,i,s,o){try{let l=await a({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let c=await te({...l,isMiss:!i});if(c.cacheControl)if(this.minimal_mode){let t=ts(e,o);this.cache.set(t,{entry:c,expiresAt:Date.now()+this.ttl})}else await t.set(e,c.value,{cacheControl:c.cacheControl,isRoutePPREnabled:r,isFallback:n});return c}catch(a){if(null==i?void 0:i.cacheControl){let a=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(a+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:a,expire:s},isRoutePPREnabled:r,isFallback:n})}throw a}}}var tl=a("./dist/esm/shared/lib/isomorphic/path.js"),tc=a.n(tl);let tu=require("next/dist/server/lib/incremental-cache/tags-manifest.external.js");class td{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(tc().dirname(e)),n=r[1].then(()=>this.fs.writeFile(e,t));n.catch(()=>{}),r[2].push(n)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let th=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class tf{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?tf.memoryCache?tf.debug&&console.log("FileSystemCache: memory store already initialized"):(tf.debug&&console.log("FileSystemCache: using memory store for fetch cache"),tf.memoryCache=(0,th.getMemoryCache)(e.maxMemoryCacheSize)):tf.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,tf.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let n of e){let e=tu.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),tu.tagsManifest.set(n,a)}else tu.tagsManifest.set(n,{...e,expired:r})}}async get(...e){var t,r,n,a,i,s,o,l,c;let[u,d]=e,{kind:h}=d,f=null==(t=tf.memoryCache)?void 0:t.get(u);if(tf.debug&&(h===eH.FETCH?console.log("FileSystemCache: get",u,d.tags,h,!!f):console.log("FileSystemCache: get",u,h,!!f)),!f)try{if(h===eH.APP_ROUTE){let e=this.getFilePath(`${u}.body`,eH.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),n=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,S.EP),"utf8"));f={lastModified:r.getTime(),value:{kind:eU.APP_ROUTE,body:t,headers:n.headers,status:n.status}}}else{let e=this.getFilePath(h===eH.FETCH?u:`${u}.html`,h),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(h===eH.FETCH){let{tags:e,fetchIdx:n,fetchUrl:a}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(f={lastModified:i,value:l},(null==(s=f.value)?void 0:s.kind)===eU.FETCH){let t=null==(o=f.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(tf.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(u,f.value,{fetchCache:!0,tags:e,fetchIdx:n,fetchUrl:a}))}}else if(h===eH.APP_PAGE){let n,a,i;try{n=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,S.EP),"utf8"))}catch{}if(null==n?void 0:n.segmentPaths){let e=new Map;a=e;let t=u+S.mH;await Promise.all(n.segmentPaths.map(async r=>{let n=this.getFilePath(t+r+S.tz,eH.APP_PAGE);try{e.set(r,await this.fs.readFile(n))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==n?void 0:n.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${u}${S.RM}`,eH.APP_PAGE))),f={lastModified:r.getTime(),value:{kind:eU.APP_PAGE,html:t,rscData:i,postponed:null==n?void 0:n.postponed,headers:null==n?void 0:n.headers,status:null==n?void 0:n.status,segmentData:a}}}else if(h===eH.PAGES){let e,n={};d.isFallback||(n=JSON.parse(await this.fs.readFile(this.getFilePath(`${u}${S.x3}`,eH.PAGES),"utf8"))),f={lastModified:r.getTime(),value:{kind:eU.PAGES,html:t,pageData:n,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${h} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}f&&(null==(l=tf.memoryCache)||l.set(u,f))}catch{return null}if((null==f||null==(r=f.value)?void 0:r.kind)===eU.APP_PAGE||(null==f||null==(n=f.value)?void 0:n.kind)===eU.APP_ROUTE||(null==f||null==(a=f.value)?void 0:a.kind)===eU.PAGES){let e=null==(c=f.value.headers)?void 0:c[S.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,tu.areTagsExpired)(t,f.lastModified))return tf.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==f||null==(i=f.value)?void 0:i.kind)===eU.FETCH){let e=d.kind===eH.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return tf.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,tu.areTagsExpired)(e,f.lastModified))return tf.debug&&console.log("FileSystemCache: expired tags",e),null}return f??null}async set(e,t,r){var n;if(null==(n=tf.memoryCache)||n.set(e,{value:t,lastModified:Date.now()}),tf.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let a=new td(this.fs);if(t.kind===eU.APP_ROUTE){let r=this.getFilePath(`${e}.body`,eH.APP_ROUTE);a.append(r,t.body);let n={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};a.append(r.replace(/\.body$/,S.EP),JSON.stringify(n,null,2))}else if(t.kind===eU.PAGES||t.kind===eU.APP_PAGE){let n=t.kind===eU.APP_PAGE,i=this.getFilePath(`${e}.html`,n?eH.APP_PAGE:eH.PAGES);if(a.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||a.append(this.getFilePath(`${e}${n?S.RM:S.x3}`,n?eH.APP_PAGE:eH.PAGES),n?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===eU.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,S.mH);for(let[n,i]of t.segmentData){e.push(n);let t=r+n+S.tz;a.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};a.append(i.replace(/\.html$/,S.EP),JSON.stringify(r))}}else if(t.kind===eU.FETCH){let n=this.getFilePath(e,eH.FETCH);a.append(n,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await a.wait()}getFilePath(e,t){switch(t){case eH.FETCH:return tc().join(this.serverDistDir,"..","cache","fetch-cache",e);case eH.PAGES:return tc().join(this.serverDistDir,"pages",e);case eH.IMAGE:case eH.APP_PAGE:case eH.APP_ROUTE:return tc().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function tp(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let tm=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js");var tg=a("../../app-render/work-unit-async-storage.external"),tv=a("../../app-render/work-async-storage.external");class ty{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:n,serverDistDir:a,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:c,allowedRevalidateHeaderKeys:u}){var d,h,f,p;this.locks=new Map,this.hasCustomCacheHandler=!!c;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(c)ty.debug&&console.log("IncrementalCache: using custom cache handler",c.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(c=t.FetchCache,ty.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&a&&(ty.debug&&console.log("IncrementalCache: using filesystem cache handler"),c=tf)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=n,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=u,this.prerenderManifest=o(),this.cacheControls=new tm.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let v=[];i[S.kz]===(null==(h=this.prerenderManifest)||null==(d=h.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),n&&(v=this.revalidatedTags=function(e,t){return"string"==typeof e[S.vS]&&e[S.c1]===t?e[S.vS].split(","):[]}(i,null==(p=this.prerenderManifest)||null==(f=p.preview)?void 0:f.previewModeId)),c&&(this.cacheHandler=new c({dev:t,fs:e,flushToDisk:r,serverDistDir:a,revalidatedTags:v,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,n){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let a=this.cacheControls.get(tp(e)),i=a?a.revalidate:!n&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:es(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(ty.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new ey;return ty.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],n=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,a=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(a.push(n.encode(e)),r.push(e)):(a.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=a.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of a)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let n of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(n);r.push(`${n}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,n=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([n],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return a("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,n,a,i,s,o,l;let c,u;if(t.kind===eH.FETCH){let r=tg.workUnitAsyncStorage.getStore(),n=r?(0,tg.getRenderResumeDataCache)(r):null;if(n){let r=n.fetch.get(e);if((null==r?void 0:r.kind)===eU.FETCH){let n=tv.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==n||null==(r=n.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return ty.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};ty.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else ty.debug&&console.log("IncrementalCache: rdc:miss",e)}else ty.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==eH.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===eH.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===eH.FETCH){if(!d)return null;if((null==(a=d.value)?void 0:a.kind)!==eU.FETCH)throw Object.defineProperty(new j.z(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=tv.workAsyncStorage.getStore(),n=[...t.tags||[],...t.softTags||[]];if(n.some(e=>{var t,n;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(n=r.pendingRevalidatedTags)?void 0:n.some(t=>t.tag===e))}))return ty.debug&&console.log("IncrementalCache: expired tag",e),null;let s=tg.workUnitAsyncStorage.getStore();if(s){let t=(0,tg.getPrerenderResumeDataCache)(s);t&&(ty.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,c=d.value.data;return(0,tu.areTagsExpired)(n,d.lastModified)?null:((0,tu.areTagsStale)(n,d.lastModified)&&(l=!0),{isStale:l,value:{kind:eU.FETCH,data:c,revalidate:o}})}if((null==d||null==(n=d.value)?void 0:n.kind)===eU.FETCH)throw Object.defineProperty(new j.z(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let h=null,{isFallback:f}=t,p=this.cacheControls.get(tp(e));if((null==d?void 0:d.lastModified)===-1)c=-1,u=-1*S.eM*1e3;else{let r=performance.timeOrigin+performance.now(),n=(null==d?void 0:d.lastModified)||r;if(void 0===(c=!1!==(u=this.calculateRevalidate(e,n,this.dev??!1,t.isFallback))&&u0&&((0,tu.areTagsExpired)(t,n)?c=-1:(0,tu.areTagsStale)(t,n)&&(c=!0))}}}return d&&(h={isStale:c,cacheControl:p,revalidateAfter:u,value:d.value,isFallback:f}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(h={isStale:c,value:null,cacheControl:p,revalidateAfter:u,isFallback:f},this.set(e,h.value,{...t,cacheControl:p})),h}async set(e,t,r){if((null==t?void 0:t.kind)===eU.FETCH){let r=tg.workUnitAsyncStorage.getStore(),n=r?(0,tg.getPrerenderResumeDataCache)(r):null;n&&(ty.debug&&console.log("IncrementalCache: rdc:set",e),n.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let n=JSON.stringify(t).length;if(r.fetchCache&&n>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${n} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var a;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(tp(e),r.cacheControl),await (null==(a=this.cacheHandler)?void 0:a.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}function tb(e){if(0===e)return{get:()=>Promise.resolve(void 0),set:()=>Promise.resolve(),refreshTags:()=>Promise.resolve(),getExpiration:()=>Promise.resolve(0),updateTags:()=>Promise.resolve()};let t=new eR(e,e=>e.size),r=new Map,n=process.env.NEXT_PRIVATE_DEBUG_CACHE?console.debug.bind(console,"DefaultCacheHandler:"):void 0;return{async get(e){let a=r.get(e);a&&(null==n||n("get",e,"pending"),await a);let i=t.get(e);if(!i){null==n||n("get",e,"not found");return}let s=i.entry;if(performance.timeOrigin+performance.now()>s.timestamp+1e3*s.revalidate){null==n||n("get",e,"expired");return}let o=s.revalidate;if((0,tu.areTagsExpired)(s.tags,s.timestamp)){null==n||n("get",e,"had expired tag");return}(0,tu.areTagsStale)(s.tags,s.timestamp)&&(null==n||n("get",e,"had stale tag"),o=-1);let[l,c]=s.value.tee();return s.value=c,null==n||n("get",e,"found",{tags:s.tags,timestamp:s.timestamp,expire:s.expire,revalidate:o}),{...s,revalidate:o,value:l}},async set(e,a){null==n||n("set",e,"start");let i=()=>{},s=new Promise(e=>{i=e});r.set(e,s);let o=await a,l=0;try{let[r,a]=o.value.tee();o.value=r;let i=a.getReader();for(let e;!(e=await i.read()).done;)l+=Buffer.from(e.value).byteLength;t.set(e,{entry:o,isErrored:!1,errorRetryCount:0,size:l}),null==n||n("set",e,"done")}catch(t){null==n||n("set",e,"failed",t)}finally{i(),r.delete(e)}},async refreshTags(){},async getExpiration(e){let t=Math.max(...e.map(e=>{let t=tu.tagsManifest.get(e);return t&&t.expired||0}),0);return null==n||n("getExpiration",{tags:e,expiration:t}),t},async updateTags(e,t){let r=Math.round(performance.timeOrigin+performance.now());for(let a of(null==n||n("updateTags",{tags:e,timestamp:r}),e)){let e=tu.tagsManifest.get(a)||{};if(t){let n={...e};n.stale=r,void 0!==t.expire&&(n.expired=r+1e3*t.expire),tu.tagsManifest.set(a,n)}else tu.tagsManifest.set(a,{...e,expired:r})}}}}let tE=process.env.NEXT_PRIVATE_DEBUG_CACHE?(e,...t)=>{console.log(`use-cache: ${e}`,...t)}:void 0,t_=Symbol.for("@next/cache-handlers"),tR=Symbol.for("@next/cache-handlers-map"),tw=Symbol.for("@next/cache-handlers-set"),tx=globalThis;function tP(){if(tx[tR])return tx[tR].entries()}function tS(e){return e.default||e}let tC=Symbol.for("@next/router-server-methods"),tO=globalThis,tT="next-action",tA=["rsc","next-router-state-tree","next-router-prefetch","next-hmr-refresh","next-router-segment-prefetch"];function tj(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)==="next-url"}let tk=e=>import(e).then(e=>e.default||e);class tD{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:n}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=n}getRouterServerContext(e){var t;let r=en(e,"hostname"),n=en(e,"revalidate"),a=en(e,"render404"),i=en(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=tO[tC])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==n?{revalidate:n}:{},...void 0!==a?{render404:a}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=a("node:path"),n=r(process.cwd(),en(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));return i(n,this.distDir,...t)}}loadManifests(e,t){let r;{var n,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=a("../load-manifest.external");es(e);let l=this.definition.kind===e7.PAGES||this.definition.kind===e7.PAGES_API?"pages":"app",[c,u,d,h,f,m,g,v,y,b,E,_]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:p,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${p}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:"react-loadable-manifest.json",handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==l||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let n=e.replace(/\\/g,"/"),a=!!(eh.test(n)||ef.test(n)||ep.test(n)||em.test(n)||eg.test(n))||(!!n.includes("robots")||!!n.includes("manifest")||!!n.includes("sitemap")||!!n.includes("icon")||!!n.includes("apple-icon")||!!n.includes("opengraph-image")||!!n.includes("twitter-image")||!!n.includes("favicon"))&&null;if(null!==a)return a;let i=function(e,t){let r=`${e.join(",")}|${t}`,n=ev.get(r);if(n)return n;let a=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${ed(s,null)}${a}`),RegExp(`^[\\\\/]manifest${ed(o,null)}${a}`),RegExp(`[\\\\/]sitemap${ed(["xml"],e)}${a}`),RegExp(`[\\\\/]icon${i}${ed(eo,e)}${a}`),RegExp(`[\\\\/]apple-icon${i}${ed(el,e)}${a}`),RegExp(`[\\\\/]opengraph-image${i}${ed(ec,e)}${a}`),RegExp(`[\\\\/]twitter-image${i}${ed(eu,e)}${a}`)];return ev.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:n,cacheHandlers:i}=t;if(!i||!function(e){if(tx[tR])return null==tE||tE("cache handlers already initialized"),!1;if(null==tE||tE("initializing cache handlers"),tx[tR]=new Map,tx[t_]){let t;tx[t_].DefaultCache?(null==tE||tE('setting "default" cache handler from symbol'),t=tx[t_].DefaultCache):(null==tE||tE('setting "default" cache handler from default'),t=tb(e)),tx[tR].set("default",t),tx[t_].RemoteCache?(null==tE||tE('setting "remote" cache handler from symbol'),tx[tR].set("remote",tx[t_].RemoteCache)):(null==tE||tE('setting "remote" cache handler from default'),tx[tR].set("remote",t))}else{let t=tb(e);null==tE||tE('setting "default" cache handler from default'),tx[tR].set("default",t),null==tE||tE('setting "remote" cache handler from default'),tx[tR].set("remote",t)}return tx[tw]=new Set(tx[tR].values()),!0}(n))return;for(let[t,n]of Object.entries(i)){if(!n)continue;let{formatDynamicImportPath:i}=a("./dist/esm/lib/format-dynamic-import-path.js"),{join:s}=a("node:path"),o=s(process.cwd(),en(e,"relativeProjectDir")||this.relativeProjectDir);var r=tS(await tk(i(`${o}/${this.distDir}`,n)));if(!tx[tR]||!tx[tw])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});null==tE||tE('setting cache handler for "%s"',t),tx[tR].set(t,r),tx[tw].add(r)}}}async getIncrementalCache(e,t,r,n){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=a("./dist/esm/lib/format-dynamic-import-path.js");i=tS(await tk(e(this.distDir,s)))}let{join:o}=a("node:path"),l=o(process.cwd(),en(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let c=new ty({fs:a("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:n,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!n&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=c,c}}async onRequestError(e,t,r,n,a){n||((null==a?void 0:a.logErrorWithOriginalStack)?a.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:n}){var i,s;let o,l,c,u,d;{let{join:t,relative:r}=a("node:path");o=t(process.cwd(),en(e,"relativeProjectDir")||this.relativeProjectDir);let n=en(e,"distDir");n&&(this.distDir=r(o,n));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(a.t.bind(a,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let h=this.loadManifests(r,o),{routesManifest:f,prerenderManifest:p,serverFilesManifest:g}=h,{basePath:b,i18n:E,rewrites:R}=f,C=this.getRouterServerContext(e),O=(null==C?void 0:C.nextConfig)||(null==g?void 0:g.config),j=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!en(e,"initURL")){let t=(null==g?void 0:g.config.experimental.trustHostHeader)?`${j}://${e.headers.host||"localhost"}${e.url}`:`${j}://${(null==C?void 0:C.hostname)||"localhost"}${e.url}`;ea(e,"initURL",t),ea(e,"initProtocol",j)}b&&(e.url=x(e.url||"/",b));let I=m(e.url||"/");if(ea(e,"initQuery",{...null==I?void 0:I.query}),!I)return;let M=!1;w(I.pathname||"/","/_next/data")&&(M=!0,I.pathname=et(I.pathname||"/")),this.normalizeUrl(e,I);let L=I.pathname||"/",U={...I.query},er=_(r);E&&(l=v(I.pathname||"/",E.locales)).detectedLocale&&(e.url=`${l.pathname}${I.search}`,L=l.pathname,c||(c=l.detectedLocale));let ei=(0,W.Yr)(r),es=function({page:e,i18n:t,basePath:r,rewrites:n,pageIsDynamic:i,trailingSlash:s,caseSensitive:o}){let l,c,u;if(i){var d;let t,r;r=(t=function(e,t,r,n,a,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},c=[],u=[];for(let s of(i=structuredClone(i),A(e).slice(1).split("/"))){let e,d=y.VB.some(e=>s.startsWith(e)),h=s.match(k),f=d?h?.[1]:void 0;if(f&&h?.[2]?(e=t?S.h:void 0,i.intercepted[h[2]]=f):e=h?.[2]&&i.intercepted[h[2]]?t?S.h:void 0:t?S.AA:void 0,f&&h&&h[2]){let{key:t,pattern:r,cleanedKey:n,repeat:s,optional:d}=$({getSafeRouteKey:o,interceptionMarker:f,segment:h[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a});c.push(r),u.push(`/${h[1]}:${i.names[t]??n}${s?d?"*":"+":""}`),i.names[t]??=n}else if(h&&h[2]){n&&h[1]&&(c.push(`/${T(h[1])}`),u.push(`/${h[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:f}=$({getSafeRouteKey:o,segment:h[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:a}),p=r;n&&h[1]&&(p=p.substring(1)),c.push(p),u.push(`/:${i.names[t]??s}${d?f?"*":"+":""}`),i.names[t]??=s}else c.push(`/${T(s)}`),u.push(`/${s}`);r&&h&&h[3]&&(c.push(T(h[3])),u.push(h[3]))}return{namedParameterizedRoute:c.join(""),routeKeys:l,pathToRegexpPattern:u.join(""),reference:i}}(e,(d={prefixRouteKeys:!1}).prefixRouteKeys,d.includeSuffix??!1,d.includePrefix??!1,d.backreferenceDuplicateKeys??!1,d.reference)).namedParameterizedRoute,d.excludeOptionalTrailingSlash||(r+="(?:/)?"),u=(c=q(l={...function(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:n=!1}={}){let{parameterizedRoute:a,groups:i}=function(e,t,r){let n={},a=1,i=[];for(let s of A(e).slice(1).split("/")){let e=y.VB.find(e=>s.startsWith(e)),o=s.match(k);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=D(o[2]);n[t]={pos:a++,repeat:s,optional:r},i.push(`/${T(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=D(o[2]);n[e]={pos:a++,repeat:t,optional:s},r&&o[1]&&i.push(`/${T(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${T(s)}`);t&&o&&o[3]&&i.push(T(o[3]))}return{parameterizedRoute:i.join(""),groups:n}}(e,t,r),s=a;return n||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}(e,d),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(l,u){let d=structuredClone(u),h={},f=d.pathname,p=n=>{var u,p;let m,g,b,E=(u=n.source+(s?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!o},m=[],g=(0,P.pathToRegexp)(u,m,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),b=(0,P.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(g.source),g.flags):g,m),(e,t)=>{if("string"!=typeof e)return!1;let r=b(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of m)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!d.pathname)return!1;let _=E(d.pathname);if((n.has||n.missing)&&_){let e=function(e,t,r=[],n=[]){let i={},s=r=>{let n,s=r.key;switch(r.type){case"header":s=s.toLowerCase(),n=e.headers[s];break;case"cookie":if("cookies"in e)n=e.cookies[r.key];else{var o;n=(o=e.headers,function(){let{cookie:e}=o;if(!e)return{};let{parse:t}=a("./dist/compiled/cookie/index.js");return t(Array.isArray(e)?e.join("; "):e)})()[r.key]}break;case"query":n=t[s];break;case"host":{let{host:t}=e?.headers||{};n=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&n)return i[function(e){let t="";for(let r=0;r64&&n<91||n>96&&n<123)&&(t+=e[r])}return t}(s)]=n,!0;if(n){let e=RegExp(`^${r.value}$`),t=Array.isArray(n)?n.slice(-1)[0].match(e):n.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{i[e]=t.groups[e]}):"host"===r.type&&t[0]&&(i.host=t[0])),!0}return!1};return!(!r.every(e=>s(e))||n.some(e=>s(e)))&&i}(l,d.query,n.has,n.missing);e?Object.assign(_,e):_=!1}if(_){let{parsedDestination:a,destQuery:s}=function(e){let t,r,n=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${T(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return(0,z.r)(e);let t=new URL(e),r=t.username,n=t.password,a=r?n?`${r}:${n}`:r:null,i=t.pathname,s=t.search;return{auth:a,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:(0,X.v1)(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),n=r.pathname;n&&(n=G(n));let a=r.href;a&&(a=G(a));let i=r.hostname;i&&(i=G(i));let s=r.hash;s&&(s=G(s));let o=r.search;o&&(o=G(o));let l=r.origin;return l&&(l=G(l)),{...r,pathname:n,hostname:i,href:a,hash:s,search:o,origin:l}}(e),{hostname:a,query:i,search:s}=n,o=n.pathname;n.hash&&(o=`${o}${n.hash}`);let l=[],c=[];for(let e of(H(o,c),c))l.push(e.name);if(a){let e=[];for(let t of(H(a,e),e))l.push(t.name)}let u=F(o,{validate:!1});for(let[r,n]of(a&&(t=F(a,{validate:!1})),Object.entries(i)))Array.isArray(n)?i[r]=n.map(t=>B(G(t),e.params)):"string"==typeof n&&(i[r]=B(G(n),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if((0,y.m1)(o))for(let t of o.split("/")){let r=y.VB.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[a,i]=(r=u(e.params)).split("#",2);t&&(n.hostname=t(e.params)),n.pathname=a,n.hash=`${i?"#":""}${i||""}`,n.search=s?B(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return n.query={...e.query,...n.query},{newUrl:r,destQuery:i,parsedDestination:n}}({appendParamsToQuery:!0,destination:n.destination,params:_,query:d.query});if(a.protocol)return!0;if(Object.assign(h,s,_),Object.assign(d.query,a.query),delete a.query,Object.assign(d,a),!(f=d.pathname))return!1;if(r&&(f=f.replace(RegExp(`^${r}`),"")||"/"),t){let e=v(f,t.locales);f=e.pathname,d.query.nextInternalLocale=e.detectedLocale||_.nextInternalLocale}if(f===e)return!0;if(i&&c){let e=c(f);if(e)return d.query={...d.query,...e},!0}}return!1};for(let e of n.beforeFiles||[])p(e);if(f!==e){let t,r=!1;for(let e of n.afterFiles||[])if(r=p(e))break;if(!r&&!((t=A(f||""))===A(e)||(null==c?void 0:c(t)))){for(let e of n.fallback||[])if(r=p(e))break}}return{rewriteParams:h,rewrittenParsedUrl:d}},defaultRouteRegex:l,dynamicRouteMatcher:c,defaultRouteMatches:u,normalizeQueryParams:function(e,t){for(let[r,n]of(delete e.nextInternalLocale,Object.entries(e))){let a=V(r);a&&(delete e[r],t.add(a),void 0!==n&&(e[a]=Array.isArray(n)?n.map(e=>K(e)):K(n)))}},getParamsFromRouteMatches:function(e){if(!l)return null;let{groups:t,routeKeys:r}=l,n=q({re:{exec:e=>{let n=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(n)){let r=V(e);r&&(n[r]=t,delete n[e])}let a={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=n[e];if(!s.optional&&!o)return null;a[s.pos]=o}return a}},groups:t})(e);return n||null},normalizeDynamicRouteParams:(e,t)=>{if(!l||!u)return{params:{},hasValidParams:!1};var r=l,n=u;let a={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=(0,W.P7)(s):Array.isArray(s)&&(s=s.map(W.P7));let o=n[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(a[i]=s)}return{params:a,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=m(e.url);if(!r)return e.url;delete r.search,Y(r.query,t),e.url=function(e){let{auth:t,hostname:r}=e,n=e.protocol||"",a=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(X.Bw(s)));let l=e.search||s&&`?${s}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||J.test(n))&&!1!==o?(o="//"+(o||""),a&&"/"!==a[0]&&(a="/"+a)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),a=a.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${n}${o}${a}${l}${i}`}(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let n of Object.keys(r.groups)){let a,{optional:i,repeat:s}=r.groups[n],o=`[${s?"...":""}${n}]`;i&&(o=`[${o}]`);let l=t[n];((a=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,a))}return e})(e,t,l),filterInternalQuery:(e,t)=>Y(e,t)}}({page:ei,i18n:E,basePath:b,rewrites:R,pageIsDynamic:er,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!f.caseSensitive}),eo=Q(null==E?void 0:E.domains,Z(I,e.headers),c);eo&&ea(e,"isLocaleDomain",!!eo);let el=en(e,"defaultLocale")||(null==eo?void 0:eo.defaultLocale)||(null==E?void 0:E.defaultLocale);el&&!c&&(I.pathname=`/${el}${"/"===I.pathname?"":I.pathname}`);let ec=en(e,"locale")||c||el,{rewriteParams:eu,rewrittenParsedUrl:ed}=es.handleRewrites(e,I),eh=Object.keys(eu);Object.assign(I.query,ed.query),E&&(I.pathname=v(I.pathname||"/",E.locales).pathname,ed.pathname=v(ed.pathname||"/",E.locales).pathname);let ef=en(e,"params");if(!ef&&es.dynamicRouteMatcher){let e=es.dynamicRouteMatcher(et((null==ed?void 0:ed.pathname)||I.pathname||"/")),t=es.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(ef=t.params)}let ep=en(e,"query")||{...I.query},em=new Set,eg=[];if(this.definition.kind===e7.PAGES||this.definition.kind===e7.PAGES_API)for(let e of[...eh,...Object.keys(es.defaultRouteMatches||{})]){let t=Array.isArray(U[e])?U[e].join(""):U[e],r=Array.isArray(ep[e])?ep[e].join(""):ep[e];e in U&&t!==r||eg.push(e)}if(es.normalizeCdnUrl(e,eg),es.normalizeQueryParams(ep,em),es.filterInternalQuery(U,eg),er){let t,r=es.normalizeDynamicRouteParams(ep,!0),n=es.normalizeDynamicRouteParams(ef||{},!0);if(ep&&ef&&n.hasValidParams&&r.hasValidParams&&em.size>0&&Object.keys(n.params).length<=Object.keys(r.params).length?(t=r.params,ef=Object.assign(r.params)):t=n.hasValidParams&&ef?ef:r.hasValidParams?ep:{},e.url=es.interpolateDynamicPath(e.url||"/",t),I.pathname=es.interpolateDynamicPath(I.pathname||"/",t),L=es.interpolateDynamicPath(L,t),!ef)if(r.hasValidParams)for(let e in ef=Object.assign({},r.params),es.defaultRouteMatches)delete ep[e];else{let e=null==es.dynamicRouteMatcher?void 0:es.dynamicRouteMatcher.call(es,et((null==l?void 0:l.pathname)||I.pathname||"/"));e&&(ef=Object.assign({},e))}}for(let e of em)e in U?U[e]&&ep[e]&&U[e]!==ep[e]&&(ep[e]=U[e]):delete ep[e];let{isOnDemandRevalidate:ev,revalidateOnlyGenerated:ey}=(0,ee.checkIsOnDemandRevalidate)(e,p.preview),eb=!1;if(t){let{tryGetPreviewData:r}=a("./dist/esm/server/api-utils/node/try-get-preview-data.js");eb=!1!==(u=r(e,t,p.preview,!!n))}if(!O)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=a("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!O.experimental.removeUncaughtErrorAndRejectionListeners)}let eE=ei;_(eE)&&ef&&(eE=es.interpolateDynamicPath(eE,ef)),"/index"===eE&&(eE="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",A(`${ec?`/${ec}`:""}${ei}`));let e_=eE;try{eE=eE.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new N.Xc("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(ea(e,"resolvedPathname",eE=A(eE)),null==(s=O.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=O.deploymentId||"";return{query:ep,originalQuery:U,originalPathname:L,params:ef,parsedUrl:I,locale:ec,isNextDataRequest:M,locales:null==E?void 0:E.locales,defaultLocale:el,isDraftMode:eb,previewData:u,pageIsDynamic:er,resolvedPathname:eE,encodedResolvedPathname:e_,isOnDemandRevalidate:ev,revalidateOnlyGenerated:ey,...h,nextConfig:O,routerServerContext:C,deploymentId:d,clientAssetToken:O.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=en(e,"minimalMode")??!1;this.responseCache=new to(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:n,isFallback:a,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:c,waitUntil:u,isMinimalMode:d}){let h=this.getResponseCache(e),f=await h.get(r,c,{routeKind:n,isFallback:a,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:u});if(!f&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return f}}var t$=a("./dist/esm/server/web/spec-extension/adapters/headers.js"),tN=a("./dist/esm/server/web/spec-extension/adapters/request-cookies.js");class tI{constructor(e,t,r,n){var a;const i=e&&(0,ee.checkIsOnDemandRevalidate)(t,e).isOnDemandRevalidate,s=null==(a=r.get(ee.COOKIE_NAME_PRERENDER_BYPASS))?void 0:a.value;this._isEnabled=!!(!i&&s&&e&&s===e.previewModeId),this._previewModeId=null==e?void 0:e.previewModeId,this._mutableCookies=n}get isEnabled(){return this._isEnabled}enable(){if(!this._previewModeId)throw Object.defineProperty(Error("Invariant: previewProps missing previewModeId this should never happen"),"__NEXT_ERROR_CODE",{value:"E93",enumerable:!1,configurable:!0});this._mutableCookies.set({name:ee.COOKIE_NAME_PRERENDER_BYPASS,value:this._previewModeId,httpOnly:!0,sameSite:"none",secure:!0,path:"/"}),this._isEnabled=!0}disable(){this._mutableCookies.set({name:ee.COOKIE_NAME_PRERENDER_BYPASS,value:"",httpOnly:!0,sameSite:"none",secure:!0,path:"/",expires:new Date(0)}),this._isEnabled=!1}}function tM(e,t){if("x-middleware-set-cookie"in e.headers&&"string"==typeof e.headers["x-middleware-set-cookie"]){let r=e.headers["x-middleware-set-cookie"],n=new Headers;for(let e of function(e){var t,r,n,a,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(r))n.append("set-cookie",e);for(let e of new e0.VO(n).getAll())t.set(e)}}var tL=a("./dist/compiled/p-queue/index.js"),tU=a.n(tL);async function tH(e,t){if(!e)return t();let r=tF(e);try{return await t()}finally{var n,a;let t,i,s=(n=r,a=tF(e),t=new Set(n.pendingRevalidatedTags.map(e=>{let t="object"==typeof e.profile?JSON.stringify(e.profile):e.profile||"";return`${e.tag}:${t}`})),i=new Set(n.pendingRevalidateWrites),{pendingRevalidatedTags:a.pendingRevalidatedTags.filter(e=>{let r="object"==typeof e.profile?JSON.stringify(e.profile):e.profile||"";return!t.has(`${e.tag}:${r}`)}),pendingRevalidates:Object.fromEntries(Object.entries(a.pendingRevalidates).filter(([e])=>!(e in n.pendingRevalidates))),pendingRevalidateWrites:a.pendingRevalidateWrites.filter(e=>!i.has(e))});await tX(e,s)}}function tF(e){return{pendingRevalidatedTags:e.pendingRevalidatedTags?[...e.pendingRevalidatedTags]:[],pendingRevalidates:{...e.pendingRevalidates},pendingRevalidateWrites:e.pendingRevalidateWrites?[...e.pendingRevalidateWrites]:[]}}async function tq(e,t,r){if(0===e.length)return;let n=function(){if(tx[tw])return tx[tw].values()}(),a=[],i=new Map;for(let t of e){let e,r=t.profile;for(let[t]of i)if("string"==typeof t&&"string"==typeof r&&t===r||"object"==typeof t&&"object"==typeof r&&JSON.stringify(t)===JSON.stringify(r)||t===r){e=t;break}let n=e||r;i.has(n)||i.set(n,[]),i.get(n).push(t.tag)}for(let[e,o]of i){let i;if(e){let t;if("object"==typeof e)t=e;else if("string"==typeof e){var s;if(!(t=null==r||null==(s=r.cacheLifeProfiles)?void 0:s[e]))throw Object.defineProperty(Error(`Invalid profile provided "${e}" must be configured under cacheLife in next.config or be "max"`),"__NEXT_ERROR_CODE",{value:"E873",enumerable:!1,configurable:!0})}t&&(i={expire:t.expire})}for(let t of n||[])e?a.push(null==t.updateTags?void 0:t.updateTags.call(t,o,i)):a.push(null==t.updateTags?void 0:t.updateTags.call(t,o));t&&a.push(t.revalidateTag(o,i))}await Promise.all(a)}function tX(e,t){let r=[],n=(null==t?void 0:t.pendingRevalidatedTags)??e.pendingRevalidatedTags??[];return n.length>0&&r.push(tq(n,e.incrementalCache,e)),r.push(...Object.values((null==t?void 0:t.pendingRevalidates)??e.pendingRevalidates??{})),r.push(...(null==t?void 0:t.pendingRevalidateWrites)??e.pendingRevalidateWrites??[]),0!==r.length&&Promise.all(r).then(()=>void 0)}let tz=Object.defineProperty(Error("Invariant: AsyncLocalStorage accessed in runtime where it is not available"),"__NEXT_ERROR_CODE",{value:"E504",enumerable:!1,configurable:!0});class tG{disable(){throw tz}getStore(){}run(){throw tz}exit(){throw tz}enterWith(){throw tz}static bind(e){return e}}let tB="undefined"!=typeof globalThis&&globalThis.AsyncLocalStorage,tW=require("next/dist/server/app-render/after-task-async-storage.external.js");class tV{constructor({waitUntil:e,onClose:t,onTaskError:r}){this.workUnitStores=new Set,this.waitUntil=e,this.onClose=t,this.onTaskError=r,this.callbackQueue=new(tU()),this.callbackQueue.pause()}after(e){if(null!==e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then)this.waitUntil||tK(),this.waitUntil(e.catch(e=>this.reportTaskError("promise",e)));else if("function"==typeof e)this.addCallback(e);else throw Object.defineProperty(Error("`after()`: Argument must be a promise or a function"),"__NEXT_ERROR_CODE",{value:"E50",enumerable:!1,configurable:!0})}addCallback(e){var t;this.waitUntil||tK();let r=tg.workUnitAsyncStorage.getStore();r&&this.workUnitStores.add(r);let n=tW.afterTaskAsyncStorage.getStore(),a=n?n.rootTaskSpawnPhase:null==r?void 0:r.phase;this.runCallbacksOnClosePromise||(this.runCallbacksOnClosePromise=this.runCallbacksOnClose(),this.waitUntil(this.runCallbacksOnClosePromise));let i=(t=async()=>{try{await tW.afterTaskAsyncStorage.run({rootTaskSpawnPhase:a},()=>e())}catch(e){this.reportTaskError("function",e)}},tB?tB.bind(t):tG.bind(t));this.callbackQueue.add(i)}async runCallbacksOnClose(){return await new Promise(e=>this.onClose(e)),this.runCallbacks()}async runCallbacks(){if(0===this.callbackQueue.size)return;for(let e of this.workUnitStores)e.phase="after";let e=tv.workAsyncStorage.getStore();if(!e)throw Object.defineProperty(new j.z("Missing workStore in AfterContext.runCallbacks"),"__NEXT_ERROR_CODE",{value:"E547",enumerable:!1,configurable:!0});return tH(e,()=>(this.callbackQueue.start(),this.callbackQueue.onIdle()))}reportTaskError(e,t){if(console.error("promise"===e?"A promise passed to `after()` rejected:":"An error occurred in a function passed to `after()`:",t),this.onTaskError)try{null==this.onTaskError||this.onTaskError.call(this,t)}catch(e){console.error(Object.defineProperty(new j.z("`onTaskError` threw while handling an error thrown from an `after` task",{cause:e}),"__NEXT_ERROR_CODE",{value:"E569",enumerable:!1,configurable:!0}))}}}function tK(){throw Object.defineProperty(Error("`after()` will not work correctly, because `waitUntil` is not available in the current environment."),"__NEXT_ERROR_CODE",{value:"E91",enumerable:!1,configurable:!0})}function tJ(e){let t,r={then:(n,a)=>(t||(t=Promise.resolve(e())),t.then(e=>{r.value=e}).catch(()=>{}),t.then(n,a))};return r}let tY=["GET","HEAD","OPTIONS","POST","PUT","DELETE","PATCH"];async function tQ(e,t,r){let n=new Set;for(let t of(e=>{let t=["/layout"];if(e.startsWith("/")){let r=e.split("/");for(let e=1;ea.getExpiration(e)));return t}(a)}}var tZ=a("./dist/compiled/react/index.js");let t0="DYNAMIC_SERVER_USAGE";class t1 extends Error{constructor(e){super(`Dynamic server usage: ${e}`),this.description=e,this.digest=t0}}function t2(e){return"object"==typeof e&&null!==e&&"digest"in e&&"string"==typeof e.digest&&e.digest===t0}class t3 extends Error{constructor(...e){super(...e),this.code="NEXT_STATIC_GEN_BAILOUT"}}var t9=((s={})[s.Before=1]="Before",s[s.EarlyStatic=2]="EarlyStatic",s[s.Static=3]="Static",s[s.EarlyRuntime=4]="EarlyRuntime",s[s.Runtime=5]="Runtime",s[s.Dynamic=6]="Dynamic",s[s.Abandoned=7]="Abandoned",s);class t4 extends Error{constructor(e,t){super(`During prerendering, ${t} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${t} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${e}".`),this.route=e,this.expression=t,this.digest="HANGING_PROMISE_REJECTION"}}let t8=new WeakMap;function t6(e,t,r){if(e.aborted)return Promise.reject(new t4(t,r));{let n=new Promise((n,a)=>{let i=a.bind(null,new t4(t,r)),s=t8.get(e);if(s)s.push(i);else{let t=[i];t8.set(e,t),e.addEventListener("abort",()=>{for(let e=0;e\\)(?:(?!\\n\\s+at (?:body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6) \\(\\))[\\s\\S])*?\\n\\s+at __next_root_layout_boundary__ \\([^\\n]*\\)`),RegExp(`\\n\\s+at __next_metadata_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_viewport_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_outlet_boundary__[\\n\\s]`),RegExp(`\\n\\s+at __next_instant_validation_boundary__[\\n\\s]`);let rs=()=>{};function ro(t){if(!t.body)return[t,t];let[r,n]=t.body.tee(),a=new Response(r,{status:t.status,statusText:t.statusText,headers:t.headers});Object.defineProperty(a,"url",{value:t.url,configurable:!0,enumerable:!0,writable:!1});let i=new Response(n,{status:t.status,statusText:t.statusText,headers:t.headers});return Object.defineProperty(i,"url",{value:t.url,configurable:!0,enumerable:!0,writable:!1}),e&&(a.body&&e.register(a,new WeakRef(a.body)),i.body&&e.register(i,new WeakRef(i.body))),[a,i]}globalThis.FinalizationRegistry&&(e=new FinalizationRegistry(e=>{let t=e.deref();t&&!t.locked&&t.cancel("Response object has been garbage collected").then(rs)}));let rl=new Set(["traceparent","tracestate"]),rc=Symbol.for("next-patch");function ru(e,t){e.shouldTrackFetchMetrics&&(e.fetchMetrics??=[],e.fetchMetrics.push({...t,end:performance.timeOrigin+performance.now(),idx:e.nextFetchId||0}))}async function rd(e,t,r,n,a,i){let s=await e.arrayBuffer(),o={headers:Object.fromEntries(e.headers.entries()),body:Buffer.from(s).toString("base64"),status:e.status,url:e.url};return r&&await n.set(t,{kind:eU.FETCH,data:o,revalidate:a},r),await i(),new Response(s,{headers:e.headers,status:e.status,statusText:e.statusText})}async function rh(e,t,r,n,a,i,s,o,l,c){let[u,d]=ro(t),h=u.arrayBuffer().then(async e=>{let t=Buffer.from(e),o={headers:Object.fromEntries(u.headers.entries()),body:t.toString("base64"),status:u.status,url:u.url};null==i||i.set(r,o),n&&await a.set(r,{kind:eU.FETCH,data:o,revalidate:s},n)}).catch(e=>{(null==c?void 0:c.aborted)||console.warn("Failed to set fetch cache",o,e)}).finally(l),f=`cache-set-${r}`,p=e.pendingRevalidates??={},m=Promise.resolve();return f in p&&(m=p[f]),p[f]=m.then(()=>h).finally(()=>{(null==p?void 0:p[f])&&delete p[f]}),d}let rf=null,rp=["HEAD","OPTIONS"];function rm(){return new Response(null,{status:405})}a("./dist/compiled/string-hash/index.js");let rg=new Set(Object.values({NOT_FOUND:404,FORBIDDEN:403,UNAUTHORIZED:401}));function rv(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let[t,r]=e.digest.split(";");return"NEXT_HTTP_ERROR_FALLBACK"===t&&rg.has(Number(r))}var ry=((l={})[l.SeeOther=303]="SeeOther",l[l.TemporaryRedirect=307]="TemporaryRedirect",l[l.PermanentRedirect=308]="PermanentRedirect",l);function rb(e){if("object"!=typeof e||null===e||!("digest"in e)||"string"!=typeof e.digest)return!1;let t=e.digest.split(";"),[r,n]=t,a=t.slice(2,-2).join(";"),i=Number(t.at(-2));return"NEXT_REDIRECT"===r&&("replace"===n||"push"===n)&&"string"==typeof a&&!isNaN(i)&&i in ry}var rE=a("./dist/esm/server/app-render/instant-validation/instant-validation-error.js"),r_=((c={}).ProspectiveRender="the prospective render",c.SegmentCollection="segment collection",c.InstantValidation="instant validation",c);function rR(e,t,r){let n;if(!function(e){if("object"==typeof e&&null!==e&&"digest"in e&&"BAILOUT_TO_CLIENT_SIDE_RENDERING"===e.digest||rb(e)||rv(e)||t2(e)||"object"==typeof e&&null!==e&&e.digest===ra&&"name"in e&&"message"in e&&e instanceof Error||(0,rE.R)(e))return e.digest}(e)){if("object"==typeof e&&null!==e&&"message"in e&&"string"==typeof e.message&&e.message.startsWith("This rendered a large document (>"))return void console.error(e);if("object"==typeof e&&null!==e&&"string"==typeof e.message){if(n=e.message,"string"==typeof e.stack){let a=e.stack,i=a.indexOf("\n");if(i>-1){let e=Object.defineProperty(Error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${n}`),"__NEXT_ERROR_CODE",{value:"E949",enumerable:!1,configurable:!0});e.stack="Error: "+e.message+a.slice(i),console.error(e);return}}}else"string"==typeof e&&(n=e);if(n)return void console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${n}`);console.error(`Route ${t} errored during ${r}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`),console.error(e)}}var rw=a("../../app-render/action-async-storage.external");let rx=tZ.createContext(null),rP=tZ.createContext(null),rS=tZ.createContext(null),rC=tZ.createContext(null),rO=tZ.createContext(new Set);var rT=a("./dist/compiled/@edge-runtime/cookies/index.js"),rA=a("./dist/esm/server/web/spec-extension/adapters/reflect.js");class rj{constructor(){this.count=0,this.earlyListeners=[],this.listeners=[],this.tickPending=!1,this.pendingTimeoutCleanup=null,this.subscribedSignals=null,this.invokeListenersIfNoPendingReads=()=>{if(this.pendingTimeoutCleanup=null,0===this.count){for(let e=0;eprocess.nextTick(()=>{if(this.tickPending=!1,0===this.count){for(let e=0;e{t=clearTimeout.bind(null,setTimeout(e,0))}),t=clearImmediate.bind(null,r),()=>t())}inputReady(){return new Promise(e=>{this.earlyListeners.push(e),0===this.count&&this.noMorePendingCaches()})}cacheReady(){return new Promise(e=>{this.listeners.push(e),0===this.count&&this.noMorePendingCaches()})}beginRead(){if(this.count++,this.pendingTimeoutCleanup&&(this.pendingTimeoutCleanup(),this.pendingTimeoutCleanup=null),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.beginRead()}endRead(){if(0===this.count)throw Object.defineProperty(new j.z("CacheSignal got more endRead() calls than beginRead() calls"),"__NEXT_ERROR_CODE",{value:"E678",enumerable:!1,configurable:!0});if(this.count--,0===this.count&&this.noMorePendingCaches(),null!==this.subscribedSignals)for(let e of this.subscribedSignals)e.endRead()}hasPendingReads(){return this.count>0}trackRead(e){this.beginRead();let t=this.endRead.bind(this);return e.then(t,t),e}subscribeToReads(e){if(e===this)throw Object.defineProperty(new j.z("A CacheSignal cannot subscribe to itself"),"__NEXT_ERROR_CODE",{value:"E679",enumerable:!1,configurable:!0});null===this.subscribedSignals&&(this.subscribedSignals=new Set),this.subscribedSignals.add(e);for(let t=0;t("string"==typeof n&&(n===r||Object.prototype.hasOwnProperty.call(t,n))&&rk(e,n),Reflect.get(t,n,a)),has:(t,n)=>(n===r&&rk(e,r),Reflect.has(t,n)),ownKeys:t=>(rk(e,r),Reflect.ownKeys(t))});let n={};for(let r in t)Object.defineProperty(n,r,{get:()=>(rk(e,r),t[r]),enumerable:!0});return n}var r$=a("./dist/esm/shared/lib/utils/reflect-utils.js");let rN={current:null},rI="function"==typeof tZ.cache?tZ.cache:e=>e,rM=process.env.__NEXT_CACHE_COMPONENTS?console.error:console.warn;rI(e=>{try{rM(rN.current)}finally{rN.current=null}});let rL=require("next/dist/server/app-render/dynamic-access-async-storage.external.js"),rU=new WeakMap,rH={get:function(e,t,r){if("then"===t||"catch"===t||"finally"===t){let n=rA.l.get(e,t,r);return({[t]:(...t)=>{let r=rL.dynamicAccessAsyncStorage.getStore();return r&&r.abortController.abort(Object.defineProperty(Error("Accessed fallback `params` during prerendering."),"__NEXT_ERROR_CODE",{value:"E691",enumerable:!1,configurable:!0})),new Proxy(n.apply(e,t),rH)}})[t]}return rA.l.get(e,t,r)}};function rF(e){let t=rU.get(e);if(t)return t;let r=Promise.resolve(e);return rU.set(e,r),r}a("../../app-render/action-async-storage.external").actionAsyncStorage;let rq=require("next/dist/server/app-render/module-loading/track-module-loading.external.js");Symbol.for("next.server.manifests");class rX{constructor(e,t){this.error=e,this.headers=t}}class rz extends tD{static #e=this.sharedModules=f;constructor({userland:e,definition:t,distDir:r,relativeProjectDir:n,resolvedPagePath:a,nextConfigOutput:i}){if(super({userland:e,definition:t,distDir:r,relativeProjectDir:n}),this.workUnitAsyncStorage=tg.workUnitAsyncStorage,this.workAsyncStorage=tv.workAsyncStorage,this.serverHooks=d,this.actionAsyncStorage=rw.actionAsyncStorage,this.resolvedPagePath=a,this.nextConfigOutput=i,this.methods=function(e){let t=tY.reduce((t,r)=>({...t,[r]:e[r]??rm}),{}),r=new Set(tY.filter(t=>e[t]));for(let n of rp.filter(e=>!r.has(e))){if("HEAD"===n){e.GET&&(t.HEAD=e.GET,r.add("HEAD"));continue}if("OPTIONS"===n){let e=["OPTIONS",...r];!r.has("HEAD")&&r.has("GET")&&e.push("HEAD");let n={Allow:e.sort().join(", ")};t.OPTIONS=()=>new Response(null,{status:204,headers:n}),r.add("OPTIONS");continue}throw Object.defineProperty(Error(`Invariant: should handle all automatic implementable methods, got method: ${n}`),"__NEXT_ERROR_CODE",{value:"E211",enumerable:!1,configurable:!0})}return t}(e),this.hasNonStaticMethods=rB(e),this.dynamic=this.userland.dynamic,"export"===this.nextConfigOutput)if("force-dynamic"===this.dynamic)throw Object.defineProperty(Error(`export const dynamic = "force-dynamic" on page "${t.pathname}" cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export`),"__NEXT_ERROR_CODE",{value:"E278",enumerable:!1,configurable:!0});else if(!function(e){return"force-static"===e.dynamic||"error"===e.dynamic||!1===e.revalidate||void 0!==e.revalidate&&e.revalidate>0||"function"==typeof e.generateStaticParams}(this.userland)&&this.userland.GET)throw Object.defineProperty(Error(`export const dynamic = "force-static"/export const revalidate not configured on route "${t.pathname}" with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export`),"__NEXT_ERROR_CODE",{value:"E301",enumerable:!1,configurable:!0});else this.dynamic="error"}resolve(e){return tY.includes(e)?this.methods[e]:()=>new Response(null,{status:400})}async do(e,t,r,n,a,i,s){var o,l,c,u;let d,h=r.isStaticGeneration,f=!!s.renderOpts.cacheComponents;!function(e){var t;let r;if(!0===globalThis[rc])return;let n=(t=globalThis.fetch,r=tZ.cache(e=>[]),function(e,n){let a,i;if(n&&n.signal)return t(e,n);if("string"!=typeof e||n){let r,s="string"==typeof e||e instanceof URL?new Request(e,n):e;if("GET"!==s.method&&"HEAD"!==s.method||s.keepalive)return t(e,n);r=Array.from(s.headers.entries()).filter(([e])=>!rl.has(e.toLowerCase())),i=JSON.stringify([s.method,r,s.mode,s.redirect,s.credentials,s.referrer,s.referrerPolicy,s.integrity]),a=s.url}else i='["GET",[],null,"follow",null,null,null,null]',a=e;let s=r(a);for(let e=0,t=s.length;e{let t=s[e][2];if(!t)throw Object.defineProperty(new j.z("No cached response"),"__NEXT_ERROR_CODE",{value:"E579",enumerable:!1,configurable:!0});let[r,n]=ro(t);return s[e][2]=n,r})}let o=t(e,n),l=[i,o,null];return s.push(l),o.then(e=>{let[t,r]=ro(e);return l[2]=r,t})});globalThis.fetch=function(e,{workAsyncStorage:t,workUnitAsyncStorage:r}){let n=async function(n,a){var i,s;let o;try{(o=new URL(n instanceof Request?n.url:n)).username="",o.password=""}catch{o=void 0}let l=(null==o?void 0:o.href)??"",c=(null==a||null==(i=a.method)?void 0:i.toUpperCase())||"GET",u=(null==a||null==(s=a.next)?void 0:s.internal)===!0,d="1"===process.env.NEXT_OTEL_FETCH_DISABLED,h=u?void 0:performance.timeOrigin+performance.now(),f=t.getStore(),p=r.getStore(),m=p?(0,tg.getCacheSignal)(p):null;m&&m.beginRead();let g=(0,eF.getTracer)().trace(u?eq.Fx.internalFetch:eq.Wc.fetch,{hideSpan:d,kind:eF.SpanKind.CLIENT,spanName:["fetch",c,l].filter(Boolean).join(" "),attributes:{"http.url":l,"http.method":c,"net.peer.name":null==o?void 0:o.hostname,"net.peer.port":(null==o?void 0:o.port)||void 0}},async()=>{var t;let r,i,s,o,c,d;if(u||!f||f.isDraftMode)return e(n,a);let g=n&&"object"==typeof n&&"string"==typeof n.method,v=e=>(null==a?void 0:a[e])||(g?n[e]:null),y=e=>{var t,r,i;return void 0!==(null==a||null==(t=a.next)?void 0:t[e])?null==a||null==(r=a.next)?void 0:r[e]:g?null==(i=n.next)?void 0:i[e]:void 0},b=y("revalidate"),E=b,_=function(e,t){let r=[],n=[];for(let a=0;aS.qq?n.push({tag:i,reason:`exceeded max length of ${S.qq}`}):r.push(i),r.length>S.o7){console.warn(`Warning: exceeded max tag count for ${t}, dropped tags:`,e.slice(a).join(", "));break}}if(n.length>0)for(let{tag:e,reason:r}of(console.warn(`Warning: invalid tags passed to ${t}: `),n))console.log(`tag: "${e}" ${r}`);return r}(y("tags")||[],`fetch ${n.toString()}`);if(p)switch(p.type){case"prerender":case"prerender-runtime":case"prerender-client":case"validation-client":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":r=p}if(r&&Array.isArray(_)){let e=r.tags??(r.tags=[]);for(let t of _)e.includes(t)||e.push(t)}let R=null==p?void 0:p.implicitTags,w=f.fetchCache;p&&"unstable-cache"===p.type&&(w="force-no-store");let x=!!f.isUnstableNoStore,P=v("cache"),C="";"string"==typeof P&&void 0!==E&&("force-cache"===P&&0===E||"no-store"===P&&(E>0||!1===E))&&(i=`Specified "cache: ${P}" and "revalidate: ${E}", only one should be specified.`,P=void 0,E=void 0);let O="no-cache"===P||"no-store"===P||"force-no-store"===w||"only-no-store"===w,T=!w&&!P&&!E&&f.forceDynamic;"force-cache"===P&&void 0===E?E=!1:(O||T)&&(E=0),("no-cache"===P||"no-store"===P)&&(C=`cache: ${P}`),d=function(e,t){try{let r;if(!1===e)r=S.AR;else if("number"==typeof e&&!isNaN(e)&&e>-1)r=e;else if(void 0!==e)throw Object.defineProperty(Error(`Invalid revalidate value "${e}" on "${t}", must be a non-negative number or false`),"__NEXT_ERROR_CODE",{value:"E179",enumerable:!1,configurable:!0});return r}catch(e){if(e instanceof Error&&e.message.includes("Invalid revalidate"))throw e;return}}(E,f.route);let A=v("headers"),j="function"==typeof(null==A?void 0:A.get)?A:new Headers(A||{}),k=j.get("authorization")||j.get("cookie"),D=!["get","head"].includes((null==(t=v("method"))?void 0:t.toLowerCase())||"get"),$=void 0==w&&(void 0==P||"default"===P)&&void 0==E,N=!!((k||D)&&(null==r?void 0:r.revalidate)===0),I=!1;if(!N&&$&&(f.isBuildTimePrerendering?I=!0:N=!0),$&&void 0!==p)switch(p.type){case"prerender":case"prerender-runtime":case"prerender-client":return m&&(m.endRead(),m=null),t6(p.renderSignal,f.route,"fetch()")}switch(w){case"force-no-store":C="fetchCache = force-no-store";break;case"only-no-store":if("force-cache"===P||void 0!==d&&d>0)throw Object.defineProperty(Error(`cache: 'force-cache' used on fetch for ${l} with 'export const fetchCache = 'only-no-store'`),"__NEXT_ERROR_CODE",{value:"E448",enumerable:!1,configurable:!0});C="fetchCache = only-no-store";break;case"only-cache":if("no-store"===P)throw Object.defineProperty(Error(`cache: 'no-store' used on fetch for ${l} with 'export const fetchCache = 'only-cache'`),"__NEXT_ERROR_CODE",{value:"E521",enumerable:!1,configurable:!0});break;case"force-cache":(void 0===E||0===E)&&(C="fetchCache = force-cache",d=S.AR)}if(void 0===d?"default-cache"!==w||x?"default-no-store"===w?(d=0,C="fetchCache = default-no-store"):x?(d=0,C="noStore call"):N?(d=0,C="auto no cache"):(C="auto cache",d=r?r.revalidate:S.AR):(d=S.AR,C="fetchCache = default-cache"):C||(C=`revalidate: ${d}`),!(f.forceStatic&&0===d)&&!N&&r&&d0,{incrementalCache:L}=f,U=!1;if(p)switch(p.type){case"request":case"cache":case"private-cache":U=p.isHmrRefresh??!1,o=p.serverComponentsHmrCache}if(L&&(M||o))try{s=await L.generateCacheKey(l,g?n:a)}catch(e){console.error("Failed to generate cache key for",n)}let H=f.nextFetchId??1;f.nextFetchId=H+1;let F=()=>{},q=async(t,r)=>{let c=["cache","credentials","headers","integrity","keepalive","method","mode","redirect","referrer","referrerPolicy","window","duplex",...t?[]:["signal"]];if(g){let e=n,t={body:e._ogBody||e.body};for(let r of c)t[r]=e[r];n=new Request(e.url,t)}else if(a){let{_ogBody:e,body:r,signal:n,...i}=a;a={...i,body:e||r,signal:t?void 0:n}}let u={...a,next:{...null==a?void 0:a.next,fetchType:"origin",fetchIdx:H}};return e(n,u).then(async e=>{if(!t&&h&&ru(f,{start:h,url:l,cacheReason:r||C,cacheStatus:0===d||r?"skip":"miss",cacheWarning:i,status:e.status,method:u.method||"GET"}),200===e.status&&L&&s&&(M||o)){let t=d>=S.AR?S.eM:d,r=M?{fetchCache:!0,fetchUrl:l,fetchIdx:H,tags:_,isImplicitBuildTimeCache:I}:void 0;switch(null==p?void 0:p.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":return rd(e,s,r,L,t,F);case"request":case"prerender-ppr":case"prerender-legacy":case"cache":case"private-cache":case"unstable-cache":case"generate-static-params":case void 0:return rh(f,e,s,r,L,o,t,n,F,v("signal"))}}return await F(),e}).catch(e=>{throw F(),e})},X=!1,z=!1;if(s&&L){let e;if(U&&o&&(e=o.get(s),z=!0),M&&!e){F=await L.lock(s);let t=f.isOnDemandRevalidate?null:await L.get(s,{kind:eH.FETCH,revalidate:d,fetchUrl:l,fetchIdx:H,tags:_,softTags:null==R?void 0:R.tags});if($&&p)switch(p.type){case"prerender":case"prerender-client":case"validation-client":case"prerender-runtime":await (rf||(rf=new Promise(e=>{setTimeout(()=>{rf=null,e()},0)})),rf)}if(t?await F():c="cache-control: no-cache (hard refresh)",(null==t?void 0:t.value)&&t.value.kind===eU.FETCH)if(f.isStaticGeneration&&t.isStale)X=!0;else{if(t.isStale&&(f.pendingRevalidates??={},!f.pendingRevalidates[s])){let e=q(!0).then(async e=>({body:await e.arrayBuffer(),headers:e.headers,status:e.status,statusText:e.statusText})).finally(()=>{f.pendingRevalidates??={},delete f.pendingRevalidates[s||""]});e.catch(console.error),f.pendingRevalidates[s]=e}e=t.value.data}}if(e){h&&ru(f,{start:h,url:l,cacheReason:C,cacheStatus:z?"hmr":"hit",cacheWarning:i,status:e.status||200,method:(null==a?void 0:a.method)||"GET"});let t=new Response(Buffer.from(e.body,"base64"),{headers:e.headers,status:e.status});return Object.defineProperty(t,"url",{value:e.url}),t}}if(f.isStaticGeneration&&a&&"object"==typeof a){let{cache:e}=a;if("no-store"===e){if(p)switch(p.type){case"prerender":case"prerender-client":case"prerender-runtime":case"validation-client":return m&&(m.endRead(),m=null),t6(p.renderSignal,f.route,"fetch()")}rt(f,p,`no-store fetch ${n} ${f.route}`)}let t="next"in a,{next:i={}}=a;if("number"==typeof i.revalidate&&r&&i.revalidate{let t=e[0];return{body:await t.arrayBuffer(),headers:t.headers,status:t.status,statusText:t.statusText}}).finally(()=>{var t;(null==(t=f.pendingRevalidates)?void 0:t[e])&&delete f.pendingRevalidates[e]})).catch(()=>{}),f.pendingRevalidates[e]=t,r.then(e=>e[1])}});if(m)try{return await g}finally{m&&m.endRead()}return g};return n.__nextPatched=!0,n.__nextGetStaticStore=()=>t,n._nextOriginalFetch=e,globalThis[rc]=!0,Object.defineProperty(n,"name",{value:"fetch",writable:!1}),n}(n,e)}({workAsyncStorage:this.workAsyncStorage,workUnitAsyncStorage:this.workUnitAsyncStorage});let p={params:s.params?function(e,t=null){let r=tv.workAsyncStorage.getStore();if(!r)throw Object.defineProperty(new j.z("Expected workStore to be initialized"),"__NEXT_ERROR_CODE",{value:"E1068",enumerable:!1,configurable:!0});let n=tg.workUnitAsyncStorage.getStore();if(n)switch(n.type){case"prerender":case"prerender-ppr":case"prerender-legacy":var a=e,i=r,s=n,o=t;let l=null!==o?rD(o,a,null):a;switch(s.type){case"prerender":case"prerender-client":{let e=s.fallbackRouteParams;if(e){for(let t in a)if(e.has(t))return function(e,t,r){let n=rU.get(e);if(n)return n;let a=new Proxy(t6(r.renderSignal,t.route,"`params`"),rH);return rU.set(e,a),a}(l,i,s)}break}case"prerender-ppr":{let e=s.fallbackRouteParams;if(e){for(let t in a)if(e.has(t))return function(e,t,r,n){let a=rU.get(e);if(a)return a;let i={...e},s=Promise.resolve(i);return rU.set(e,s),Object.keys(e).forEach(e=>{r$.lY.has(e)||t.has(e)&&Object.defineProperty(i,e,{get(){let t=(0,r$.ke)("params",e);if("prerender-ppr"===n.type)rr(r.route,t,n.dynamicTracking);else{let e=Object.defineProperty(new t1(`Route ${r.route} couldn't be rendered statically because it used \`${t}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw n.revalidate=0,r.dynamicUsageDescription=t,r.dynamicUsageStack=e.stack,e}},enumerable:!0})}),s}(l,e,i,s)}}}return rF(l);case"prerender-client":case"validation-client":throw Object.defineProperty(new j.z("createServerParamsForRoute should not be called in client contexts."),"__NEXT_ERROR_CODE",{value:"E1064",enumerable:!1,configurable:!0});case"cache":case"private-cache":case"unstable-cache":throw Object.defineProperty(new j.z("createServerParamsForRoute should not be called in cache contexts."),"__NEXT_ERROR_CODE",{value:"E738",enumerable:!1,configurable:!0});case"generate-static-params":throw Object.defineProperty(new j.z("createServerParamsForRoute should not be called inside generateStaticParams."),"__NEXT_ERROR_CODE",{value:"E1131",enumerable:!1,configurable:!0});case"prerender-runtime":return function(e,t,r,n,a){let i=rF(null!==n?rD(n,e,null):e),{stagedRendering:s}=r;if(!s)return i;let o=a?t9.EarlyRuntime:t9.Runtime;return s.waitForStage(o).then(()=>i)}(e,null,n,t,!1);case"request":return rF(e)}(0,tg.throwInvariantForMissingStore)()}(function(e){let t={};for(let[r,n]of Object.entries(e))void 0!==n&&(t[r]=n);return t}(s.params)):void 0},m=()=>{let e=tX(r);!1!==e&&(s.renderOpts.pendingWaitUntil=e.finally(()=>{process.env.NEXT_PRIVATE_DEBUG_CACHE&&console.log("pending revalidates promise finished for:",n.url.pathname+n.url.search)}))},g=null;try{if(h){let t=this.userland.revalidate,n=!1===t||void 0===t?S.AR:t;if(f){let t,s=new AbortController,o=!1,l=new rj,h=re(void 0),f={cache:new Map,fetch:new Map,encryptedBoundArgs:new Map,decryptedBoundArgs:new Map},m=g={type:"prerender",phase:"action",rootParams:{},fallbackRouteParams:null,implicitTags:a,renderSignal:s.signal,controller:s,cacheSignal:l,dynamicTracking:h,allowEmptyStaticShell:!1,revalidate:n,expire:S.AR,stale:S.AR,tags:[...a.tags],prerenderResumeDataCache:f,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null};try{t=this.workUnitAsyncStorage.run(m,e,i,p)}catch(e){s.signal.aborted?o=!0:(process.env.NEXT_DEBUG_BUILD||process.env.__NEXT_VERBOSE_LOGGING)&&rR(e,r.route,r_.ProspectiveRender)}if("object"==typeof t&&null!==t&&"function"==typeof t.then&&t.then(()=>{},e=>{s.signal.aborted?o=!0:process.env.NEXT_DEBUG_BUILD&&rR(e,r.route,r_.ProspectiveRender)}),(0,rq.trackPendingModules)(l),await l.cacheReady(),o){let e=(c=h,null==(u=c.dynamicAccesses[0])?void 0:u.expression);if(e)throw Object.defineProperty(new t1(`Route ${r.route} couldn't be rendered statically because it used \`${e}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw console.error("Expected Next.js to keep track of reason for opting out of static rendering but one was not found. This is a bug in Next.js"),Object.defineProperty(new t1(`Route ${r.route} couldn't be rendered statically because it used a dynamic API. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E577",enumerable:!1,configurable:!0})}let v=new AbortController;h=re(void 0);let y=g={type:"prerender",phase:"action",rootParams:{},fallbackRouteParams:null,implicitTags:a,renderSignal:v.signal,controller:v,cacheSignal:null,dynamicTracking:h,allowEmptyStaticShell:!1,revalidate:n,expire:S.AR,stale:S.AR,tags:[...a.tags],prerenderResumeDataCache:f,renderResumeDataCache:null,hmrRefreshHash:void 0,varyParamsAccumulator:null},b=!1;if(d=await new Promise((t,n)=>{eL(async()=>{try{let a=await this.workUnitAsyncStorage.run(y,e,i,p);if(b)return;if(!(a instanceof Response))return void t(a);b=!0;let s=!1;a.arrayBuffer().then(e=>{s||(s=!0,t(new Response(e,{headers:a.headers,status:a.status,statusText:a.statusText})))},n),eL(()=>{s||(s=!0,v.abort(),n(r4(r.route)))})}catch(e){n(e)}}),eL(()=>{b||(b=!0,v.abort(),n(r4(r.route)))})}),v.signal.aborted)throw r4(r.route);v.abort()}else g={type:"prerender-legacy",phase:"action",rootParams:{},implicitTags:a,revalidate:n,expire:S.AR,stale:S.AR,tags:[...a.tags]},d=await tg.workUnitAsyncStorage.run(g,e,i,p)}else d=await tg.workUnitAsyncStorage.run(n,e,i,p)}catch(e){if(rb(e)){let r=rb(e)?e.digest.split(";").slice(2,-2).join(";"):null;if(!r)throw Object.defineProperty(Error("Invariant: Unexpected redirect url format"),"__NEXT_ERROR_CODE",{value:"E399",enumerable:!1,configurable:!0});let a=new Headers({Location:r});return(0,tN.IN)(a,n.mutableCookies),m(),new Response(null,{status:t.isAction?ry.SeeOther:function(e){if(!rb(e))throw Object.defineProperty(Error("Not a redirect error"),"__NEXT_ERROR_CODE",{value:"E260",enumerable:!1,configurable:!0});return Number(e.digest.split(";").at(-2))}(e),headers:a})}if(rv(e))return new Response(null,{status:Number(e.digest.split(";")[1])});throw e}if(!(d instanceof Response)){let e=null===d?"null":void 0===d?"undefined":"object"==typeof d?(null==(o=d.constructor)?void 0:o.name)||"object":typeof d;throw Object.defineProperty(Error(`No response is returned from route handler '${this.resolvedPagePath}'. Expected a Response object but received '${e}' (method: ${i.method}, url: ${n.url.pathname}). Ensure you return a \`Response\` or a \`NextResponse\` in all branches of your handler.`),"__NEXT_ERROR_CODE",{value:"E985",enumerable:!1,configurable:!0})}s.renderOpts.fetchMetrics=r.fetchMetrics,m(),g&&(s.renderOpts.collectedTags=null==(l=g.tags)?void 0:l.join(","),s.renderOpts.collectedRevalidate=g.revalidate,s.renderOpts.collectedExpire=g.expire,s.renderOpts.collectedStale=g.stale);let v=new Headers(d.headers);return(0,tN.IN)(v,n.mutableCookies)?new Response(d.body,{status:d.status,statusText:d.statusText,headers:v}):d}async handle(e,t){var r;let n,a,i,s,o,l=this.resolve(e.method),c={page:this.definition.page,renderOpts:t.renderOpts,buildId:t.sharedContext.buildId,previouslyRevalidatedTags:[]};c.renderOpts.fetchCache=this.userland.fetchCache;let u={isAppRoute:!0,isAction:(e.headers instanceof Headers?(n=e.headers.get(tT)??null,a=e.headers.get("content-type")):(n=e.headers[tT]??null,a=e.headers["content-type"]??null),i="POST"===e.method&&"application/x-www-form-urlencoded"===a,s=!!("POST"===e.method&&(null==a?void 0:a.startsWith("multipart/form-data"))),o=void 0!==n&&"string"==typeof n&&"POST"===e.method,{actionId:n,isURLEncodedAction:i,isMultipartAction:s,isFetchAction:o,isPossibleServerAction:!!(o||i||s)}).isPossibleServerAction},d=await tQ(this.definition.page,e.nextUrl.pathname,null),h=(r=e.nextUrl,function(e,t,r,n,a,i,s,o,l,c,u,d){function h(e){r&&r.setHeader("Set-Cookie",e)}let f={};return{type:"request",phase:e,implicitTags:i,url:{pathname:n.pathname,search:n.search??""},rootParams:a,get headers(){return f.headers||(f.headers=function(e){let t=t$.o.from(e);for(let e of tA)t.delete(e);return t$.o.seal(t)}(t.headers)),f.headers},get cookies(){if(!f.cookies){let e=new e0.tm(t$.o.from(t.headers));tM(t,e),f.cookies=tN.Ck.seal(e)}return f.cookies},set cookies(value){f.cookies=value},get mutableCookies(){if(!f.mutableCookies){var p,m;let e,n=(p=t.headers,m=s||(r?h:void 0),e=new e0.tm(t$.o.from(p)),tN.K8.wrap(e,m));tM(t,n),f.mutableCookies=n}return f.mutableCookies},get userspaceMutableCookies(){return f.userspaceMutableCookies||(f.userspaceMutableCookies=(0,tN.EJ)(this)),f.userspaceMutableCookies},get draftMode(){return f.draftMode||(f.draftMode=new tI(l,t,this.cookies,this.mutableCookies)),f.draftMode},renderResumeDataCache:null,isHmrRefresh:c,serverComponentsHmrCache:u||globalThis.__serverComponentsHmrCache,fallbackParams:null}}("action",e,void 0,r,{},d,void 0,null,t.previewProps,!1,void 0,null)),f=function({page:e,renderOpts:t,isPrefetchRequest:r,buildId:n,previouslyRevalidatedTags:a,nonce:i}){let s=!t.shouldWaitOnAllReady&&!t.supportsDynamicResponse&&!t.isDraftMode&&!t.isPossibleServerAction,o=s&&(!!process.env.NEXT_DEBUG_BUILD||"1"===process.env.NEXT_SSG_FETCH_METRICS),l={isStaticGeneration:s,page:e,route:(0,W.Yr)(e),incrementalCache:t.incrementalCache||globalThis.__incrementalCache,cacheLifeProfiles:t.cacheLifeProfiles,isBuildTimePrerendering:t.isBuildTimePrerendering,fetchCache:t.fetchCache,isOnDemandRevalidate:t.isOnDemandRevalidate,isDraftMode:t.isDraftMode,isPrefetchRequest:r,buildId:n,reactLoadableManifest:(null==t?void 0:t.reactLoadableManifest)||{},assetPrefix:(null==t?void 0:t.assetPrefix)||"",nonce:i,afterContext:function(e){let{waitUntil:t,onClose:r,onAfterTaskError:n}=e;return new tV({waitUntil:t,onClose:r,onTaskError:n})}(t),cacheComponentsEnabled:t.cacheComponents,previouslyRevalidatedTags:a,refreshTagsByCacheKind:function(){let e=new Map,t=tP();if(t)for(let[r,n]of t)"refreshTags"in n&&e.set(r,tJ(async()=>n.refreshTags()));return e}(),runInCleanSnapshot:tB?tB.snapshot():function(e,...t){return e(...t)},shouldTrackFetchMetrics:o,reactServerErrorsByDigest:new Map};return t.store=l,l}(c),p=await this.actionAsyncStorage.run(u,()=>this.workUnitAsyncStorage.run(h,()=>this.workAsyncStorage.run(f,async()=>{if(this.hasNonStaticMethods&&f.isStaticGeneration){let e=Object.defineProperty(new t1("Route is configured with methods that cannot be statically generated."),"__NEXT_ERROR_CODE",{value:"E582",enumerable:!1,configurable:!0});throw f.dynamicUsageDescription=e.message,f.dynamicUsageStack=e.stack,e}let r=e;switch(this.dynamic){case"force-dynamic":if(f.forceDynamic=!0,f.isStaticGeneration){let e=Object.defineProperty(new t1("Route is configured with dynamic = error which cannot be statically generated."),"__NEXT_ERROR_CODE",{value:"E703",enumerable:!1,configurable:!0});throw f.dynamicUsageDescription=e.message,f.dynamicUsageStack=e.stack,e}break;case"force-static":f.forceStatic=!0,r=new Proxy(e,r1);break;case"error":f.dynamicShouldError=!0,f.isStaticGeneration&&(r=new Proxy(e,r3));break;case void 0:case"auto":var n,a;let i,s;n=e,a=f,i={get(e,t,r){switch(t){case"search":case"searchParams":case"url":case"href":case"toJSON":case"toString":case"origin":return r8(a,tg.workUnitAsyncStorage.getStore(),`nextUrl.${t}`),rA.l.get(e,t,r);case"clone":return e[rK]||(e[rK]=()=>new Proxy(e.clone(),i));default:return rA.l.get(e,t,r)}}},s={get(e,t){switch(t){case"nextUrl":return e[rW]||(e[rW]=new Proxy(e.nextUrl,i));case"headers":case"cookies":case"url":case"body":case"blob":case"json":case"text":case"arrayBuffer":case"formData":return r8(a,tg.workUnitAsyncStorage.getStore(),`request.${t}`),rA.l.get(e,t,e);case"clone":return e[rV]||(e[rV]=()=>new Proxy(e.clone(),s));default:return rA.l.get(e,t,e)}}},r=new Proxy(n,s);break;default:this.dynamic}let o=(0,eF.getTracer)(),{pathname:c}=this.definition;return o.setRootSpanAttribute("next.route",c),o.trace(eq.jM.runHandler,{spanName:`executing api route (app) ${c}`,attributes:{"next.route":c}},async()=>this.do(l,u,f,h,d,r,t))})));if(!(p instanceof Response))return new Response(null,{status:500});if(p.headers.has("x-middleware-rewrite"))throw Object.defineProperty(Error("NextResponse.rewrite() was used in a app route handler, this is not currently supported. Please remove the invocation to continue."),"__NEXT_ERROR_CODE",{value:"E374",enumerable:!1,configurable:!0});if("1"===p.headers.get("x-middleware-next"))throw Object.defineProperty(Error("NextResponse.next() was used in a app route handler, this is not supported. See here for more info: https://nextjs.org/docs/messages/next-response-next-in-app-route-handler"),"__NEXT_ERROR_CODE",{value:"E385",enumerable:!1,configurable:!0});return p}}let rG=rz;function rB(e){return!!e.POST||!!e.PUT||!!e.DELETE||!!e.PATCH||!!e.OPTIONS}let rW=Symbol("nextUrl"),rV=Symbol("clone"),rK=Symbol("clone"),rJ=Symbol("searchParams"),rY=Symbol("href"),rQ=Symbol("toString"),rZ=Symbol("headers"),r0=Symbol("cookies"),r1={get(e,t,r){switch(t){case"headers":return e[rZ]||(e[rZ]=t$.o.seal(new Headers({})));case"cookies":return e[r0]||(e[r0]=tN.Ck.seal(new rT.RequestCookies(new Headers({}))));case"nextUrl":return e[rW]||(e[rW]=new Proxy(e.nextUrl,r2));case"url":return r.nextUrl.href;case"geo":case"ip":return;case"clone":return e[rV]||(e[rV]=()=>new Proxy(e.clone(),r1));default:return rA.l.get(e,t,r)}}},r2={get(e,t,r){switch(t){case"search":return"";case"searchParams":return e[rJ]||(e[rJ]=new URLSearchParams);case"href":let n;return e[rY]||(e[rY]=((n=new URL(e.href)).host="localhost:3000",n.search="",n.protocol="http",n).href);case"toJSON":case"toString":return e[rQ]||(e[rQ]=()=>r.href);case"url":return;case"clone":return e[rK]||(e[rK]=()=>new Proxy(e.clone(),r2));default:return rA.l.get(e,t,r)}}},r3={get(e,t,r){switch(t){case"nextUrl":return e[rW]||(e[rW]=new Proxy(e.nextUrl,r9));case"headers":case"cookies":case"url":case"body":case"blob":case"json":case"text":case"arrayBuffer":case"formData":throw Object.defineProperty(new t3(`Route ${e.nextUrl.pathname} with \`dynamic = "error"\` couldn't be rendered statically because it used \`request.${t}\`.`),"__NEXT_ERROR_CODE",{value:"E611",enumerable:!1,configurable:!0});case"clone":return e[rV]||(e[rV]=()=>new Proxy(e.clone(),r3));default:return rA.l.get(e,t,r)}}},r9={get(e,t,r){switch(t){case"search":case"searchParams":case"url":case"href":case"toJSON":case"toString":case"origin":throw Object.defineProperty(new t3(`Route ${e.pathname} with \`dynamic = "error"\` couldn't be rendered statically because it used \`nextUrl.${t}\`.`),"__NEXT_ERROR_CODE",{value:"E575",enumerable:!1,configurable:!0});case"clone":return e[rK]||(e[rK]=()=>new Proxy(e.clone(),r9));default:return rA.l.get(e,t,r)}}};function r4(e){return Object.defineProperty(new t1(`Route ${e} couldn't be rendered statically because it used IO that was not cached. See more info here: https://nextjs.org/docs/messages/cache-components`),"__NEXT_ERROR_CODE",{value:"E727",enumerable:!1,configurable:!0})}function r8(e,t,r){if(e.dynamicShouldError)throw Object.defineProperty(new t3(`Route ${e.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`),"__NEXT_ERROR_CODE",{value:"E553",enumerable:!1,configurable:!0});if(t)switch(t.type){case"cache":case"private-cache":throw Object.defineProperty(Error(`Route ${e.route} used "${r}" inside "use cache". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "${r}" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`),"__NEXT_ERROR_CODE",{value:"E178",enumerable:!1,configurable:!0});case"unstable-cache":throw Object.defineProperty(Error(`Route ${e.route} used "${r}" inside a function cached with "unstable_cache(...)". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use "${r}" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`),"__NEXT_ERROR_CODE",{value:"E133",enumerable:!1,configurable:!0});case"prerender":let n=Object.defineProperty(Error(`Route ${e.route} used ${r} without first calling \`await connection()\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-request`),"__NEXT_ERROR_CODE",{value:"E261",enumerable:!1,configurable:!0});return function(e,t,r,n){if(!1===n.controller.signal.aborted){let a,i;a=ri(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`),n.controller.abort(a),(i=n.dynamicTracking)&&i.dynamicAccesses.push({stack:i.isDebugDynamicAccesses?Error().stack:void 0,expression:t});let s=n.dynamicTracking;s&&null===s.syncDynamicErrorWithStack&&(s.syncDynamicErrorWithStack=r)}throw ri(`Route ${e} needs to bail out of prerendering at this point because it used ${t}.`)}(e.route,r,n,t);case"prerender-client":case"validation-client":throw Object.defineProperty(new j.z("A client prerender store should not be used for a route handler."),"__NEXT_ERROR_CODE",{value:"E720",enumerable:!1,configurable:!0});case"prerender-runtime":throw Object.defineProperty(new j.z("A runtime prerender store should not be used for a route handler."),"__NEXT_ERROR_CODE",{value:"E767",enumerable:!1,configurable:!0});case"prerender-ppr":return rr(e.route,r,t.dynamicTracking);case"prerender-legacy":t.revalidate=0;let a=Object.defineProperty(new t1(`Route ${e.route} couldn't be rendered statically because it used \`${r}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`),"__NEXT_ERROR_CODE",{value:"E558",enumerable:!1,configurable:!0});throw e.dynamicUsageDescription=r,e.dynamicUsageStack=a.stack,a}}})(),module.exports=i})(); +//# sourceMappingURL=app-route.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js b/cli/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js new file mode 100644 index 00000000000..6317b3104bd --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/next-server/pages-turbo.runtime.prod.js @@ -0,0 +1,20 @@ +(()=>{var e,t,r={"./dist/compiled/@edge-runtime/cookies/index.js"(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,i={},s={RequestCookies:()=>p,ResponseCookies:()=>f,parseCookie:()=>c,parseSetCookie:()=>u,stringifyCookie:()=>l};for(var o in s)t(i,o,{get:s[o],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),a=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?a:`${a}; ${r.join("; ")}`}function c(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[a,n]=[r.slice(0,e),r.slice(e+1)];try{t.set(a,decodeURIComponent(null!=n?n:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...a]=c(e),{domain:n,expires:i,httponly:s,maxage:o,path:l,samesite:u,secure:p,partitioned:f,priority:m}=Object.fromEntries(a.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,v,y={name:t,value:decodeURIComponent(r),domain:n,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...u&&{sameSite:d.includes(g=(g=u).toLowerCase())?g:void 0},...p&&{secure:!0},...m&&{priority:h.includes(v=(v=m).toLowerCase())?v:void 0},...f&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}e.exports=((e,i,s,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let s of a(i))n.call(e,s)||void 0===s||t(e,s,{get:()=>i[s],enumerable:!(o=r(i,s))||o.enumerable});return e})(t({},"__esModule",{value:!0}),i);var d=["strict","lax","none"],h=["low","medium","high"],p=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===a).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,a=this._parsed;return a.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(a).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,a;this._parsed=new Map,this._headers=e;const n=null!=(a=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?a:[];for(const e of Array.isArray(n)?n:function(e){if(!e)return[];var t,r,a,n,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(n)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===a)}has(e){return this._parsed.has(e)}set(...e){let[t,r,a]=1===e.length?[e[0].name,e[0].value,e[0]]:e,n=this._parsed;return n.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...a})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(n,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},"./dist/compiled/cookie/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t,r,a,n,i={};i.parse=function(e,r){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var n={},i=e.split(a),s=(r||{}).decode||t,o=0;o{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s){n+=e[i++];continue}break}if(!n)throw TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:n}),r=i;continue}if("("===a){var o=1,l="",i=r+1;if("?"===e[i])throw TypeError('Pattern cannot start with "?" at '.concat(i));for(;i-1)return!0}return!1},g=function(e){var t=l[l.length-1],r=e||(t&&"string"==typeof t?t:"");if(t&&!r)throw TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!r||m(r)?"[^".concat(n(o),"]+?"):"(?:(?!".concat(n(r),")[^").concat(n(o),"])+?")};u-1:void 0===x;s||(m+="(?:".concat(f,"(?=").concat(p,"))?")),_||(m+="(?=".concat(f,"|").concat(p,")"))}return new RegExp(m,i(r))}function o(t,r,a){if(t instanceof RegExp){var n;if(!r)return t;for(var l=/\((?:\?<(.*?)>)?(?!\?)/g,c=0,u=l.exec(t.source);u;)r.push({name:u[1]||c++,prefix:"",suffix:"",modifier:"",pattern:""}),u=l.exec(t.source);return t}return Array.isArray(t)?(n=t.map(function(e){return o(e,r,a).source}),new RegExp("(?:".concat(n.join("|"),")"),i(a))):s(e(t,a),r,a)}Object.defineProperty(t,"__esModule",{value:!0}),t.pathToRegexp=t.tokensToRegexp=t.regexpToFunction=t.match=t.tokensToFunction=t.compile=t.parse=void 0,t.parse=e,t.compile=function(t,a){return r(e(t,a),a)},t.tokensToFunction=r,t.match=function(e,t){var r=[];return a(o(e,r,t),r,t)},t.regexpToFunction=a,t.tokensToRegexp=s,t.pathToRegexp=o})(),e.exports=t})()},"./dist/compiled/strip-ansi/index.js"(e){(()=>{"use strict";var t={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))",e?void 0:"g")},532:(e,t,r)=>{let a=r(511);e.exports=e=>"string"==typeof e?e.replace(a(),""):e}},r={};function a(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={exports:{}},s=!0;try{t[e](i,i.exports,a),s=!1}finally{s&&delete r[e]}return i.exports}a.ab=__dirname+"/",e.exports=a(532)})()},"./dist/esm/build/output/log.js"(e,t,r){"use strict";r.d(t,{R8:()=>o,mc:()=>c});var a=r("./dist/esm/lib/picocolors.js"),n=r("./dist/esm/server/lib/lru-cache.js");let i={wait:(0,a.ON)((0,a.Cr)("○")),error:(0,a.wv)((0,a.Cr)("⨯")),warn:(0,a.D9)((0,a.Cr)("⚠")),ready:"▲",info:(0,a.ON)((0,a.Cr)(" ")),event:(0,a.wL)((0,a.Cr)("✓")),trace:(0,a.GC)((0,a.Cr)("\xbb"))},s={log:"log",warn:"warn",error:"error"};function o(...e){!function(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in s?s[e]:"log",a=i[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](a+" "+t[0]):console[r](a,...t)}("warn",...e)}let l=new n.q(1e4,e=>e.length);function c(...e){let t=e.join(" ");l.has(t)||(l.set(t,t),o(...e))}new n.q(1e4,e=>e.length)},"./dist/esm/lib/constants.js"(e,t,r){"use strict";r.d(t,{$1:()=>P,AA:()=>i,EP:()=>p,Oh:()=>R,RM:()=>d,U2:()=>n,UO:()=>_,VC:()=>f,bX:()=>b,c1:()=>g,eM:()=>v,g0:()=>E,h:()=>s,iS:()=>y,j9:()=>a,kz:()=>o,mH:()=>c,r4:()=>l,tz:()=>u,vS:()=>m,x3:()=>h,xV:()=>x});let a="text/html; charset=utf-8",n="application/json; charset=utf-8",i="nxtP",s="nxtI",o="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",c=".segments",u=".segment.rsc",d=".rsc",h=".json",p=".meta",f="x-next-cache-tags",m="x-next-revalidated-tags",g="x-next-revalidate-tag-token",v=31536e3,y="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",b="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",E="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",x="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",_="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",P="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",R="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",w={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"};({...w,GROUP:{builtinReact:[w.reactServerComponents,w.actionBrowser],serverOnly:[w.reactServerComponents,w.actionBrowser,w.instrument,w.middleware],neutralTarget:[w.apiNode,w.apiEdge],clientOnly:[w.serverSideRendering,w.appPagesBrowser],bundled:[w.reactServerComponents,w.actionBrowser,w.serverSideRendering,w.appPagesBrowser,w.shared,w.instrument,w.middleware],appPages:[w.reactServerComponents,w.serverSideRendering,w.appPagesBrowser,w.actionBrowser]}})},"./dist/esm/lib/format-dynamic-import-path.js"(e,t,r){"use strict";r.r(t),r.d(t,{formatDynamicImportPath:()=>s});var a=r("path"),n=r.n(a);let i=require("url"),s=(e,t)=>{let r=n().isAbsolute(t)?t:n().join(e,t);return(0,i.pathToFileURL)(r).toString()}},"./dist/esm/lib/picocolors.js"(e,t,r){"use strict";var a;r.d(t,{Cr:()=>c,D9:()=>h,GC:()=>p,ON:()=>f,wL:()=>d,wv:()=>u});let{env:n,stdout:i}=(null==(a=globalThis)?void 0:a.process)??{},s=n&&!n.NO_COLOR&&(n.FORCE_COLOR||(null==i?void 0:i.isTTY)&&!n.CI&&"dumb"!==n.TERM),o=(e,t,r,a)=>{let n=e.substring(0,a)+r,i=e.substring(a+t.length),s=i.indexOf(t);return~s?n+o(i,t,r,s):n+i},l=(e,t,r=e)=>s?a=>{let n=""+a,i=n.indexOf(t,e.length);return~i?e+o(n,t,r,i)+t:e+n+t}:String,c=l("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");l("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l("\x1b[3m","\x1b[23m"),l("\x1b[4m","\x1b[24m"),l("\x1b[7m","\x1b[27m"),l("\x1b[8m","\x1b[28m"),l("\x1b[9m","\x1b[29m"),l("\x1b[30m","\x1b[39m");let u=l("\x1b[31m","\x1b[39m"),d=l("\x1b[32m","\x1b[39m"),h=l("\x1b[33m","\x1b[39m");l("\x1b[34m","\x1b[39m");let p=l("\x1b[35m","\x1b[39m");l("\x1b[38;2;173;127;168m","\x1b[39m"),l("\x1b[36m","\x1b[39m");let f=l("\x1b[37m","\x1b[39m");l("\x1b[90m","\x1b[39m"),l("\x1b[40m","\x1b[49m"),l("\x1b[41m","\x1b[49m"),l("\x1b[42m","\x1b[49m"),l("\x1b[43m","\x1b[49m"),l("\x1b[44m","\x1b[49m"),l("\x1b[45m","\x1b[49m"),l("\x1b[46m","\x1b[49m"),l("\x1b[47m","\x1b[49m")},"./dist/esm/server/api-utils/index.js"(e,t,r){"use strict";r.d(t,{C4:()=>d,Gx:()=>i,Ic:()=>s,PW:()=>l,Uc:()=>o,wE:()=>u});var a=r("./dist/esm/server/web/spec-extension/adapters/headers.js"),n=r("./dist/esm/lib/constants.js");function i(e,t){let r=a.o.from(e.headers);return{isOnDemandRevalidate:r.get(n.kz)===t.previewModeId,revalidateOnlyGenerated:r.has(n.r4)}}r("../lib/trace/tracer"),r("./dist/esm/server/lib/trace/constants.js");let s="__prerender_bypass",o="__next_preview_data",l=Symbol(o),c=Symbol(s);function u(e,t={}){if(c in e)return e;let{serialize:a}=r("./dist/compiled/cookie/index.js"),n=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof n?[n]:Array.isArray(n)?n:[],a(s,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0}),a(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,c,{value:!0,enumerable:!1}),e}function d({req:e},t,r){let a={configurable:!0,enumerable:!0},n={...a,writable:!0};Object.defineProperty(e,t,{...a,get:()=>{let a=r();return Object.defineProperty(e,t,{...n,value:a}),a},set:r=>{Object.defineProperty(e,t,{...n,value:r})}})}},"./dist/esm/server/api-utils/node/try-get-preview-data.js"(e,t,r){"use strict";r.r(t),r.d(t,{tryGetPreviewData:()=>s});var a=r("./dist/esm/server/api-utils/index.js"),n=r("./dist/esm/server/web/spec-extension/cookies.js"),i=r("./dist/esm/server/web/spec-extension/adapters/headers.js");function s(e,t,s,o){var l,c;let u;if(s&&(0,a.Gx)(e,s).isOnDemandRevalidate)return!1;if(a.PW in e)return e[a.PW];let d=i.o.from(e.headers),h=new n.tm(d),p=null==(l=h.get(a.Ic))?void 0:l.value,f=null==(c=h.get(a.Uc))?void 0:c.value;if(p&&!f&&p===s.previewModeId){let t={};return Object.defineProperty(e,a.PW,{value:t,enumerable:!1}),t}if(!p&&!f)return!1;if(!p||!f||p!==s.previewModeId)return o||(0,a.wE)(t),!1;try{u=r("next/dist/compiled/jsonwebtoken").verify(f,s.previewModeSigningKey)}catch{return(0,a.wE)(t),!1}let{decryptWithSecret:m}=r("./dist/esm/server/crypto-utils.js"),g=m(Buffer.from(s.previewModeEncryptionKey),u.data);try{let t=JSON.parse(g);return Object.defineProperty(e,a.PW,{value:t,enumerable:!1}),t}catch{return!1}}},"./dist/esm/server/crypto-utils.js"(e,t,r){"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>o,encryptWithSecret:()=>s});var a=r("crypto"),n=r.n(a);let i="aes-256-gcm";function s(e,t){let r=n().randomBytes(16),a=n().randomBytes(64),s=n().pbkdf2Sync(e,a,1e5,32,"sha512"),o=n().createCipheriv(i,s,r),l=Buffer.concat([o.update(t,"utf8"),o.final()]),c=o.getAuthTag();return Buffer.concat([a,r,c,l]).toString("hex")}function o(e,t){let r=Buffer.from(t,"hex"),a=r.slice(0,64),s=r.slice(64,80),o=r.slice(80,96),l=r.slice(96),c=n().pbkdf2Sync(e,a,1e5,32,"sha512"),u=n().createDecipheriv(i,c,s);return u.setAuthTag(o),u.update(l)+u.final("utf8")}},"./dist/esm/server/lib/lru-cache.js"(e,t,r){"use strict";r.d(t,{q:()=>i});class a{constructor(e,t,r){this.prev=null,this.next=null,this.key=e,this.data=t,this.size=r}}class n{constructor(){this.prev=null,this.next=null}}class i{constructor(e,t,r){this.cache=new Map,this.totalSize=0,this.maxSize=e,this.calculateSize=t,this.onEvict=r,this.head=new n,this.tail=new n,this.head.next=this.tail,this.tail.prev=this.head}addToHead(e){e.prev=this.head,e.next=this.head.next,this.head.next.prev=e,this.head.next=e}removeNode(e){e.prev.next=e.next,e.next.prev=e.prev}moveToHead(e){this.removeNode(e),this.addToHead(e)}removeTail(){let e=this.tail.prev;return this.removeNode(e),e}set(e,t){let r=(null==this.calculateSize?void 0:this.calculateSize.call(this,t))??1;if(r<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${r}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E1045",enumerable:!1,configurable:!0});if(r>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let n=this.cache.get(e);if(n)n.data=t,this.totalSize=this.totalSize-n.size+r,n.size=r,this.moveToHead(n);else{let n=new a(e,t,r);this.cache.set(e,n),this.addToHead(n),this.totalSize+=r}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let e=this.removeTail();this.cache.delete(e.key),this.totalSize-=e.size,null==this.onEvict||this.onEvict.call(this,e.key,e.data)}return!0}has(e){return this.cache.has(e)}get(e){let t=this.cache.get(e);if(t)return this.moveToHead(t),t.data}*[Symbol.iterator](){let e=this.head.next;for(;e&&e!==this.tail;){let t=e;yield[t.key,t.data],e=e.next}}remove(e){let t=this.cache.get(e);t&&(this.removeNode(t),this.cache.delete(e),this.totalSize-=t.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},"./dist/esm/server/lib/node-fs-methods.js"(e,t,r){"use strict";r.d(t,{e:()=>i});let a=require("fs");var n=r.n(a);let i={existsSync:n().existsSync,readFile:n().promises.readFile,readFileSync:n().readFileSync,writeFile:(e,t)=>n().promises.writeFile(e,t),mkdir:e=>n().promises.mkdir(e,{recursive:!0}),stat:e=>n().promises.stat(e)}},"./dist/esm/server/lib/trace/constants.js"(e,t,r){"use strict";r.d(t,{Fx:()=>s,Wc:()=>l,vr:()=>o});var a,n,i,s=((a=s||{}).compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a),o=((n=o||{}).getServerSideProps="Render.getServerSideProps",n.getStaticProps="Render.getStaticProps",n.renderToString="Render.renderToString",n.renderDocument="Render.renderDocument",n.createBodyResult="Render.createBodyResult",n),l=((i=l||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i)},"./dist/esm/server/node-environment-extensions/process-error-handlers.js"(e,t,r){"use strict";r.r(t),r.d(t,{installProcessErrorHandlers:()=>s});let a=Symbol.for("react.postpone");function n(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}let i=globalThis;function s(e){i.nextInitializedProcessErrorHandlers||(i.nextInitializedProcessErrorHandlers=!0,e&&(process.removeAllListeners("uncaughtException"),process.removeAllListeners("unhandledRejection")),process.on("unhandledRejection",e=>{n(e)||console.error(e)}),process.on("rejectionHandled",()=>{}),process.on("uncaughtException",e=>{n(e)||console.error(e)}))}},"./dist/esm/server/post-process.js"(e,t,r){"use strict";function a(e){return null!=e}async function n(e,t){for(let n of[t.optimizeCss?async e=>{let a=new(r("critters"))({ssrMode:!0,reduceInlineStyles:!1,path:t.distDir,publicPath:`${t.assetPrefix}/_next/`,preload:"media",fonts:!1,logLevel:process.env.CRITTERS_LOG_LEVEL||"warn",...t.optimizeCss});return await a.process(e)}:null].filter(a))n&&(e=await n(e));return e}r.d(t,{F:()=>n})},"./dist/esm/server/web/spec-extension/adapters/headers.js"(e,t,r){"use strict";r.d(t,{o:()=>i});class a{static get(e,t,r){let a=Reflect.get(e,t,r);return"function"==typeof a?a.bind(e):a}static set(e,t,r,a){return Reflect.set(e,t,r,a)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class n extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new n}}class i extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return a.get(t,r,n);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);if(void 0!==s)return a.get(t,s,n)},set(t,r,n,i){if("symbol"==typeof r)return a.set(t,r,n,i);let s=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===s);return a.set(t,o??r,n,i)},has(t,r){if("symbol"==typeof r)return a.has(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==i&&a.has(t,i)},deleteProperty(t,r){if("symbol"==typeof r)return a.deleteProperty(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===i||a.deleteProperty(t,i)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return n.callable;default:return a.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new i(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,a]of this.entries())e.call(t,a,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},"./dist/esm/server/web/spec-extension/cookies.js"(e,t,r){"use strict";r.d(t,{tm:()=>a.RequestCookies});var a=r("./dist/compiled/@edge-runtime/cookies/index.js")},"./dist/esm/shared/lib/isomorphic/path.js"(e,t,r){e.exports=r("path")},"./dist/esm/shared/lib/modern-browserslist-target.js"(e){e.exports=["chrome 111","edge 111","firefox 111","safari 16.4"]},"./dist/server/ReactDOMServerPages.js"(e,t,r){"use strict";let a;try{a=r("react-dom/server.edge")}catch(e){if("MODULE_NOT_FOUND"!==e.code&&"ERR_PACKAGE_PATH_NOT_EXPORTED"!==e.code)throw e;a=r("react-dom/server.browser")}e.exports=a},"../lib/router-utils/instrumentation-globals.external.js"(e){"use strict";e.exports=require("next/dist/server/lib/router-utils/instrumentation-globals.external.js")},"../lib/trace/tracer"(e){"use strict";e.exports=require("next/dist/server/lib/trace/tracer")},"../load-manifest.external"(e){"use strict";e.exports=require("next/dist/server/load-manifest.external.js")},critters(e){"use strict";e.exports=require("critters")},"next/dist/compiled/jsonwebtoken"(e){"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"react-dom/server.browser"(e){"use strict";e.exports=require("react-dom/server.browser")},"react-dom/server.edge"(e){"use strict";e.exports=require("react-dom/server.edge")},crypto(e){"use strict";e.exports=require("crypto")},"node:path"(e){"use strict";e.exports=require("node:path")},path(e){"use strict";e.exports=require("path")}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var i=a[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(r,a){if(1&a&&(r=this(r)),8&a||"object"==typeof r&&r&&(4&a&&r.__esModule||16&a&&"function"==typeof r.then))return r;var i=Object.create(null);n.r(i);var s={};e=e||[null,t({}),t([]),t(t)];for(var o=2&a&&r;("object"==typeof o||"function"==typeof o)&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>{s[e]=()=>r[e]});return s.default=()=>r,n.d(i,s),i},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";let e,t,r;n.r(i),n.d(i,{PagesRouteModule:()=>rE,default:()=>r_,renderToHTML:()=>rv,vendored:()=>rx});var a,s,o,l,c={};n.r(c),n.d(c,{HeadManagerContext:()=>tL});var u={};n.r(u),n.d(u,{LoadableContext:()=>tU});var d={};n.r(d),n.d(d,{default:()=>tW});var h={};n.r(h),n.d(h,{RouterContext:()=>tV});var p={};n.r(p),n.d(p,{HtmlContext:()=>tJ,useHtmlContext:()=>tK});var f={};n.r(f),n.d(f,{ImageConfigContext:()=>t0});var m={};n.r(m),n.d(m,{NavigationPromisesContext:()=>t7,PathParamsContext:()=>t5,PathnameContext:()=>t6,ReadonlyURLSearchParams:()=>t9,SearchParamsContext:()=>t8,createDevToolsInstrumentedPromise:()=>re});var g={};n.r(g),n.d(g,{AppRouterContext:()=>rr,GlobalLayoutRouterContext:()=>rn,LayoutRouterContext:()=>ra,MissingSlotContext:()=>rs,TemplateContext:()=>ri});var v={};n.r(v),n.d(v,{ServerInsertedHTMLContext:()=>ry,useServerInsertedHTML:()=>rb});var y={};n.r(y),n.d(y,{AppRouterContext:()=>g,HeadManagerContext:()=>c,HooksClientContext:()=>m,HtmlContext:()=>p,ImageConfigContext:()=>f,Loadable:()=>d,LoadableContext:()=>u,RouterContext:()=>h,ServerInsertedHtml:()=>v}),require("next/dist/build/adapter/setup-node-env.external.js"),n("./dist/esm/shared/lib/modern-browserslist-target.js");let b="build-manifest.json";function E(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let a=t.searchParams.getAll(e);r[e]=a.length>1?a:a[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let x=new WeakMap;function _(e,t){let r;if(!t)return{pathname:e};let a=x.get(t);a||(a=t.map(e=>e.toLowerCase()),x.set(t,a));let n=e.split("/",2);if(!n[1])return{pathname:e};let i=n[1].toLowerCase(),s=a.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function P(e){return e.startsWith("/")?e:`/${e}`}function R(e){return P(e.split("/").reduce((e,t,r,a)=>t?"("===t[0]&&t.endsWith(")")||"@"===t[0]||("page"===t||"route"===t)&&r===a.length-1?e:`${e}/${t}`:e,""))}function w(e){return e.replace(/\.rsc($|\?)/,"$1")}let C=["(..)(..)","(.)","(..)","(...)"];function S(e){return void 0!==e.split("/").find(e=>C.find(t=>e.startsWith(t)))}let O=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,T=/\/\[[^/]+\](?=\/|$)/;function A(e,t=!0){return(S(e)&&(e=function(e){let t,r,a;for(let n of e.split("/"))if(r=C.find(e=>n.startsWith(e))){[t,a]=e.split(r,2);break}if(!t||!r||!a)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=R(t),r){case"(.)":a="/"===t?`/${a}`:t+"/"+a;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});a=t.split("/").slice(0,-1).concat(a).join("/");break;case"(...)":a="/"+a;break;case"(..)(..)":let n=t.split("/");if(n.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});a=n.slice(0,-2).concat(a).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:a}}(e).interceptedRoute),t)?T.test(e):O.test(e)}function j(e){let t=e.indexOf("#"),r=e.indexOf("?"),a=r>-1&&(t<0||r-1?{pathname:e.substring(0,a?r:t),query:a?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function D(e,t){if("string"!=typeof e)return!1;let{pathname:r}=j(e);return r===t||r.startsWith(t+"/")}function $(e,t){if(!D(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}var N=n("./dist/compiled/path-to-regexp/index.js"),k=n("./dist/esm/lib/constants.js");let I=/[|\\{}()[\]^$+*?.-]/,M=/[|\\{}()[\]^$+*?.-]/g;function F(e){return I.test(e)?e.replace(M,"\\$&"):e}function L(e){return e.replace(/\/$/,"")||"/"}class U extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}let H=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function q(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}function z(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:a=!1}={}){let{parameterizedRoute:n,groups:i}=function(e,t,r){let a={},n=1,i=[];for(let s of L(e).slice(1).split("/")){let e=C.find(e=>s.startsWith(e)),o=s.match(H);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=q(o[2]);a[t]={pos:n++,repeat:s,optional:r},i.push(`/${F(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=q(o[2]);a[e]={pos:n++,repeat:t,optional:s},r&&o[1]&&i.push(`/${F(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${F(s)}`);t&&o&&o[3]&&i.push(F(o[3]))}return{parameterizedRoute:i.join(""),groups:a}}(e,t,r),s=n;return a||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}function X({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:a,keyPrefix:n,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:c}=q(r),u=o.replace(/\W/g,"");n&&(u=`${n}${u}`);let d=!1;(0===u.length||u.length>30)&&(d=!0),isNaN(parseInt(u.slice(0,1)))||(d=!0),d&&(u=t());let h=u in a;n?a[u]=`${n}${o}`:a[u]=o;let p=e?F(e):"";return s=h&&i?`\\k<${u}>`:c?`(?<${u}>.+?)`:`(?<${u}>[^/]+?)`,{key:o,pattern:l?`(?:/${p}${s})?`:`/${p}${s}`,cleanedKey:u,optional:l,repeat:c}}function G(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function B(e){return e.finished||e.headersSent}async function W(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await W(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&B(r))return a;if(!a)throw Object.defineProperty(Error(`"${G(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}"undefined"!=typeof performance&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class V extends Error{}class J extends Error{}let K="_NEXTSEP_";function Z(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function Y(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${K}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${K}`)}function Q(e){return e.replace(RegExp(`\\)${K}`,"g"),")")}function ee(e,t,r){if("string"!=typeof e)return(0,N.pathToRegexp)(e,t,r);let a=Z(e),n=a?Y(e):e;try{return(0,N.pathToRegexp)(n,t,r)}catch(n){if(!a)try{let a=Y(e);return(0,N.pathToRegexp)(a,t,r)}catch(e){}throw n}}function et(e,t){let r=Z(e),a=r?Y(e):e;try{let e=(0,N.compile)(a,t);if(r)return t=>Q(e(t));return e}catch(a){if(!r)try{let r=Y(e),a=(0,N.compile)(r,t);return e=>Q(a(e))}catch(e){}throw a}}function er({re:e,groups:t}){var r;return r=r=>{let a=e.exec(r);if(!a)return!1;let n=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new V("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=a[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>n(e)):i[e]=n(t))}return i},e=>{let t=r(e);if(!t)return!1;let a={};for(let[e,r]of Object.entries(t))"string"==typeof r?a[e]=r.replace(RegExp(`^${K}`),""):Array.isArray(r)?a[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${K}`),""):e):a[e]=r;return a}}function ea(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function en(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function ei(e){return function(){let{cookie:t}=e;if(!t)return{};let{parse:r}=n("./dist/compiled/cookie/index.js");return r(Array.isArray(t)?t.join("; "):t)}}function es(e){return e.replace(/__ESC_COLON_/gi,":")}function eo(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),et(`/${e}`,{validate:!1})(t).slice(1)}function el(e){for(let t of[k.AA,k.h])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function ec(e){try{return decodeURIComponent(e)}catch{return e}}let eu=/https?|ftp|gopher|file/;function ed(e,t){for(let r in delete e.nextInternalLocale,e){let a=r!==k.AA&&r.startsWith(k.AA),n=r!==k.h&&r.startsWith(k.h);(a||n||t.includes(r))&&delete e[r]}}function eh(e,t,r){if(e){for(let a of(r&&(r=r.toLowerCase()),e))if(t===a.domain?.split(":",1)[0].toLowerCase()||r===a.defaultLocale.toLowerCase()||a.locales?.some(e=>e.toLowerCase()===r))return a}}function ep(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}var ef=n("./dist/esm/server/api-utils/index.js");function em(e){return D(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}let eg=Symbol.for("NextInternalRequestMeta");function ev(e,t){let r=e[eg]||{};return"string"==typeof t?r[t]:r}function ey(e,t,r){let a=ev(e);return a[t]=r,e[eg]=a,a}function eb(e){let t=/^\/index(\/|$)/.test(e)&&!A(e)?`/index${e}`:"/"===e?"/index":P(e);{let{posix:e}=n("path"),r=e.normalize(t);if(r!==t)throw new J(`Requested and resolved page mismatch: ${t} ${r}`)}return t}function eE(e){return e.replace(/\\/g,"/")}let ex=["ico","jpg","jpeg","png","svg"],e_=["jpg","jpeg","png"],eP=["jpg","jpeg","png","gif"],eR=["jpg","jpeg","png","gif"],ew=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,eC=/^[\\/]favicon\.ico$/,eS=/^[\\/]robots\.txt$/,eO=/^[\\/]manifest\.json$/,eT=/^[\\/]manifest\.webmanifest$/,eA=/[\\/]sitemap\.xml$/,ej=new Map;class eD{constructor(){let e,t;this.promise=new Promise((r,a)=>{e=r,t=a}),this.resolve=e,this.reject=t}}class e${constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new e$(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let a=this.pending.get(r);if(a)return a;let{promise:n,resolve:i,reject:s}=new eD;return this.pending.set(r,n),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),n}}var eN=n("./dist/esm/server/lib/lru-cache.js"),ek=n("./dist/esm/build/output/log.js");let eI=e=>{Promise.resolve().then(()=>{process.nextTick(e)})};var eM=((a={}).APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.REDIRECT="REDIRECT",a.IMAGE="IMAGE",a),eF=((s={}).APP_PAGE="APP_PAGE",s.APP_ROUTE="APP_ROUTE",s.PAGES="PAGES",s.FETCH="FETCH",s.IMAGE="IMAGE",s),eL=n("../lib/trace/tracer"),eU=n("./dist/esm/server/lib/trace/constants.js");function eH(){}new Uint8Array([60,104,116,109,108]),new Uint8Array([60,104,101,97,100]),new Uint8Array([60,98,111,100,121]),new Uint8Array([60,47,104,101,97,100,62]),new Uint8Array([60,47,98,111,100,121,62]),new Uint8Array([60,47,104,116,109,108,62]),new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62]),new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34]);let eq=new TextEncoder;function ez(e){return new ReadableStream({start(t){t.enqueue(eq.encode(e)),t.close()}})}function eX(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function eG(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),a="";for await(let n of e){if(null==t?void 0:t.aborted)return a;a+=r.decode(n,{stream:!0})}return a+r.decode()}function eB(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:n}=j(e);return`${t}${r}${a}${n}`}function eW(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:n}=j(e);return`${r}${t}${a}${n}`}let eV=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function eJ(e,t){let r=new URL(String(e),t&&String(t));return eV.test(r.hostname)&&(r.hostname="localhost"),r}let eK=Symbol("NextURLInternal");class eZ{constructor(e,t,r){let a,n;"object"==typeof t&&"pathname"in t||"string"==typeof t?(a=t,n=r||{}):n=r||t||{},this[eK]={url:eJ(e,a??n.base),options:n,basePath:""},this.analyze()}analyze(){var e,t,r,a,n;let i=function(e,t){let{basePath:r,i18n:a,trailingSlash:n}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):n};r&&D(i.pathname,r)&&(i.pathname=$(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(a){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):_(i.pathname,a.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):_(s,a.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[eK].url.pathname,{nextConfig:this[eK].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[eK].options.i18nProvider}),s=ep(this[eK].url,this[eK].options.headers);this[eK].domainLocale=this[eK].options.i18nProvider?this[eK].options.i18nProvider.detectDomainLocale(s):eh(null==(t=this[eK].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[eK].domainLocale)?void 0:r.defaultLocale)||(null==(n=this[eK].options.nextConfig)||null==(a=n.i18n)?void 0:a.defaultLocale);this[eK].url.pathname=i.pathname,this[eK].defaultLocale=o,this[eK].basePath=i.basePath??"",this[eK].buildId=i.buildId,this[eK].locale=i.locale??o,this[eK].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,a){if(!t||t===r)return e;let n=e.toLowerCase();return!a&&(D(n,"/api")||D(n,`/${t.toLowerCase()}`))?e:eB(e,`/${t}`)}((e={basePath:this[eK].basePath,buildId:this[eK].buildId,defaultLocale:this[eK].options.forceLocale?void 0:this[eK].defaultLocale,locale:this[eK].locale,pathname:this[eK].url.pathname,trailingSlash:this[eK].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=L(t)),e.buildId&&(t=eW(eB(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=eB(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:eW(t,"/"):L(t)}formatSearch(){return this[eK].url.search}get buildId(){return this[eK].buildId}set buildId(e){this[eK].buildId=e}get locale(){return this[eK].locale??""}set locale(e){var t,r;if(!this[eK].locale||!(null==(r=this[eK].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[eK].locale=e}get defaultLocale(){return this[eK].defaultLocale}get domainLocale(){return this[eK].domainLocale}get searchParams(){return this[eK].url.searchParams}get host(){return this[eK].url.host}set host(e){this[eK].url.host=e}get hostname(){return this[eK].url.hostname}set hostname(e){this[eK].url.hostname=e}get port(){return this[eK].url.port}set port(e){this[eK].url.port=e}get protocol(){return this[eK].url.protocol}set protocol(e){this[eK].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[eK].url=eJ(e),this.analyze()}get origin(){return this[eK].url.origin}get pathname(){return this[eK].url.pathname}set pathname(e){this[eK].url.pathname=e}get hash(){return this[eK].url.hash}set hash(e){this[eK].url.hash=e}get search(){return this[eK].url.search}set search(e){this[eK].url.search=e}get password(){return this[eK].url.password}set password(e){this[eK].url.password=e}get username(){return this[eK].url.username}set username(e){this[eK].url.username=e}get basePath(){return this[eK].basePath}set basePath(e){this[eK].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new eZ(String(this),this[eK].options)}}n("./dist/esm/server/web/spec-extension/cookies.js"),Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let eY="ResponseAborted";class eQ extends Error{constructor(...e){super(...e),this.name=eY}}let e0=0,e1=0,e2=0;function e3(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===eY}async function e4(e,t,r){try{let a,{errored:n,destroyed:i}=t;if(n||i)return;let s=(a=new AbortController,t.once("close",()=>{t.writableFinished||a.abort(new eQ)}),a),o=function(e,t){let r=!1,a=new eD;function n(){a.resolve()}e.on("drain",n),e.once("close",()=>{e.off("drain",n),a.resolve()});let i=new eD;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=function(e={}){let t=0===e0?void 0:{clientComponentLoadStart:e0,clientComponentLoadTimes:e1,clientComponentLoadCount:e2};return e.reset&&(e0=0,e1=0,e2=0),t}();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,eL.getTracer)().trace(eU.Fx.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await a.promise,a=new eD)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(o,{signal:s.signal})}catch(e){if(e3(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}class e9{static #e=this.EMPTY=new e9(null,{metadata:{},contentType:null});static fromStatic(e,t){return new e9(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:a}){this.response=e,this.contentType=t,this.metadata=a,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new U("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return eG(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?ez(this.response):Buffer.isBuffer(this.response)?eX(this.response):Array.isArray(this.response)?function(...e){if(0===e.length)return new ReadableStream({start(e){e.close()}});if(1===e.length)return e[0];let{readable:t,writable:r}=new TransformStream,a=e[0].pipeTo(r,{preventClose:!0}),n=1;for(;nt.pipeTo(r,{preventClose:!0}))}let i=e[n];return(a=a.then(()=>i.pipeTo(r))).catch(eH),t}(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[ez(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[eX(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(e3(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await e4(this.readable,e,this.waitUntil)}}var e8=((o={}).PAGES="PAGES",o.PAGES_API="PAGES_API",o.APP_PAGE="APP_PAGE",o.APP_ROUTE="APP_ROUTE",o.IMAGE="IMAGE",o);async function e6(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===eM.PAGES?{kind:eM.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===eM.APP_PAGE?{kind:eM.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function e5(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===eM.PAGES?{kind:eM.PAGES,html:e9.fromStatic(e.value.html,k.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===eM.APP_PAGE?{kind:eM.APP_PAGE,html:e9.fromStatic(e.value.html,k.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function e7(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let te=e7(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),tt=e7(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),tr="__ttl_sentinel__";function ta(e,t){return`${e}\0${t??tr}`}class tn{constructor(e,t=tt,r=te){this.getBatcher=e$.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:eI}),this.revalidateBatcher=e$.create({schedulerFn:eI}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new eN.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===tr?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=ta(e,r.invocationID),a=this.cache.get(t);if(a){if(void 0!==r.invocationID)return e5(a.entry);let e=Date.now();if(a.expiresAt>e)return e5(a.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&(0,ek.mc)(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:a,isOnDemandRevalidate:n=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:c,invocationID:u}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:n},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:a,isOnDemandRevalidate:n,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:c,invocationID:u},r);return l&&l(d),d});return e5(d)}async handleGet(e,t,r,a){let n=null,i=!1;try{if((n=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case e8.PAGES:return eF.PAGES;case e8.APP_PAGE:return eF.APP_PAGE;case e8.IMAGE:return eF.IMAGE;case e8.APP_ROUTE:return eF.APP_ROUTE;case e8.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(a(n),i=!0,!n.isStale||r.isPrefetch))return n;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,n,null!==n&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=ta(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,a,n,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let c=this.handleRevalidate(e,t,r,a,n,i,s,l);return o&&o(c),c})}async handleRevalidate(e,t,r,a,n,i,s,o){try{let l=await n({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let c=await e6({...l,isMiss:!i});if(c.cacheControl)if(this.minimal_mode){let t=ta(e,o);this.cache.set(t,{entry:c,expiresAt:Date.now()+this.ttl})}else await t.set(e,c.value,{cacheControl:c.cacheControl,isRoutePPREnabled:r,isFallback:a});return c}catch(n){if(null==i?void 0:i.cacheControl){let n=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(n+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:n,expire:s},isRoutePPREnabled:r,isFallback:a})}throw n}}}var ti=n("./dist/esm/shared/lib/isomorphic/path.js"),ts=n.n(ti);let to=require("next/dist/server/lib/incremental-cache/tags-manifest.external.js");class tl{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(ts().dirname(e)),a=r[1].then(()=>this.fs.writeFile(e,t));a.catch(()=>{}),r[2].push(a)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let tc=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class tu{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?tu.memoryCache?tu.debug&&console.log("FileSystemCache: memory store already initialized"):(tu.debug&&console.log("FileSystemCache: using memory store for fetch cache"),tu.memoryCache=(0,tc.getMemoryCache)(e.maxMemoryCacheSize)):tu.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,tu.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let a of e){let e=to.tagsManifest.get(a)||{};if(t){let n={...e};n.stale=r,void 0!==t.expire&&(n.expired=r+1e3*t.expire),to.tagsManifest.set(a,n)}else to.tagsManifest.set(a,{...e,expired:r})}}async get(...e){var t,r,a,n,i,s,o,l,c;let[u,d]=e,{kind:h}=d,p=null==(t=tu.memoryCache)?void 0:t.get(u);if(tu.debug&&(h===eF.FETCH?console.log("FileSystemCache: get",u,d.tags,h,!!p):console.log("FileSystemCache: get",u,h,!!p)),!p)try{if(h===eF.APP_ROUTE){let e=this.getFilePath(`${u}.body`,eF.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),a=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,k.EP),"utf8"));p={lastModified:r.getTime(),value:{kind:eM.APP_ROUTE,body:t,headers:a.headers,status:a.status}}}else{let e=this.getFilePath(h===eF.FETCH?u:`${u}.html`,h),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(h===eF.FETCH){let{tags:e,fetchIdx:a,fetchUrl:n}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(p={lastModified:i,value:l},(null==(s=p.value)?void 0:s.kind)===eM.FETCH){let t=null==(o=p.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(tu.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(u,p.value,{fetchCache:!0,tags:e,fetchIdx:a,fetchUrl:n}))}}else if(h===eF.APP_PAGE){let a,n,i;try{a=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,k.EP),"utf8"))}catch{}if(null==a?void 0:a.segmentPaths){let e=new Map;n=e;let t=u+k.mH;await Promise.all(a.segmentPaths.map(async r=>{let a=this.getFilePath(t+r+k.tz,eF.APP_PAGE);try{e.set(r,await this.fs.readFile(a))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==a?void 0:a.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${u}${k.RM}`,eF.APP_PAGE))),p={lastModified:r.getTime(),value:{kind:eM.APP_PAGE,html:t,rscData:i,postponed:null==a?void 0:a.postponed,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status,segmentData:n}}}else if(h===eF.PAGES){let e,a={};d.isFallback||(a=JSON.parse(await this.fs.readFile(this.getFilePath(`${u}${k.x3}`,eF.PAGES),"utf8"))),p={lastModified:r.getTime(),value:{kind:eM.PAGES,html:t,pageData:a,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${h} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}p&&(null==(l=tu.memoryCache)||l.set(u,p))}catch{return null}if((null==p||null==(r=p.value)?void 0:r.kind)===eM.APP_PAGE||(null==p||null==(a=p.value)?void 0:a.kind)===eM.APP_ROUTE||(null==p||null==(n=p.value)?void 0:n.kind)===eM.PAGES){let e=null==(c=p.value.headers)?void 0:c[k.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,to.areTagsExpired)(t,p.lastModified))return tu.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==p||null==(i=p.value)?void 0:i.kind)===eM.FETCH){let e=d.kind===eF.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return tu.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,to.areTagsExpired)(e,p.lastModified))return tu.debug&&console.log("FileSystemCache: expired tags",e),null}return p??null}async set(e,t,r){var a;if(null==(a=tu.memoryCache)||a.set(e,{value:t,lastModified:Date.now()}),tu.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let n=new tl(this.fs);if(t.kind===eM.APP_ROUTE){let r=this.getFilePath(`${e}.body`,eF.APP_ROUTE);n.append(r,t.body);let a={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};n.append(r.replace(/\.body$/,k.EP),JSON.stringify(a,null,2))}else if(t.kind===eM.PAGES||t.kind===eM.APP_PAGE){let a=t.kind===eM.APP_PAGE,i=this.getFilePath(`${e}.html`,a?eF.APP_PAGE:eF.PAGES);if(n.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||n.append(this.getFilePath(`${e}${a?k.RM:k.x3}`,a?eF.APP_PAGE:eF.PAGES),a?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===eM.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,k.mH);for(let[a,i]of t.segmentData){e.push(a);let t=r+a+k.tz;n.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};n.append(i.replace(/\.html$/,k.EP),JSON.stringify(r))}}else if(t.kind===eM.FETCH){let a=this.getFilePath(e,eF.FETCH);n.append(a,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await n.wait()}getFilePath(e,t){switch(t){case eF.FETCH:return ts().join(this.serverDistDir,"..","cache","fetch-cache",e);case eF.PAGES:return ts().join(this.serverDistDir,"pages",e);case eF.IMAGE:case eF.APP_PAGE:case eF.APP_ROUTE:return ts().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function td(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let th=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js"),tp=require("next/dist/server/app-render/work-unit-async-storage.external.js"),tf=require("next/dist/server/app-render/work-async-storage.external.js");class tm{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:a,serverDistDir:n,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:c,allowedRevalidateHeaderKeys:u}){var d,h,p,f;this.locks=new Map,this.hasCustomCacheHandler=!!c;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(c)tm.debug&&console.log("IncrementalCache: using custom cache handler",c.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(c=t.FetchCache,tm.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&n&&(tm.debug&&console.log("IncrementalCache: using filesystem cache handler"),c=tu)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=a,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=u,this.prerenderManifest=o(),this.cacheControls=new th.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let v=[];i[k.kz]===(null==(h=this.prerenderManifest)||null==(d=h.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),a&&(v=this.revalidatedTags=function(e,t){return"string"==typeof e[k.vS]&&e[k.c1]===t?e[k.vS].split(","):[]}(i,null==(f=this.prerenderManifest)||null==(p=f.preview)?void 0:p.previewModeId)),c&&(this.cacheHandler=new c({dev:t,fs:e,flushToDisk:r,serverDistDir:n,revalidatedTags:v,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,a){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let n=this.cacheControls.get(td(e)),i=n?n.revalidate:!a&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:eb(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(tm.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new eD;return tm.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],a=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,n=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(n.push(a.encode(e)),r.push(e)):(n.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=n.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of n)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let a of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(a);r.push(`${a}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,a=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([a],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return n("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,a,n,i,s,o,l;let c,u;if(t.kind===eF.FETCH){let r=tp.workUnitAsyncStorage.getStore(),a=r?(0,tp.getRenderResumeDataCache)(r):null;if(a){let r=a.fetch.get(e);if((null==r?void 0:r.kind)===eM.FETCH){let a=tf.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==a||null==(r=a.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return tm.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};tm.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else tm.debug&&console.log("IncrementalCache: rdc:miss",e)}else tm.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==eF.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===eF.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===eF.FETCH){if(!d)return null;if((null==(n=d.value)?void 0:n.kind)!==eM.FETCH)throw Object.defineProperty(new U(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=tf.workAsyncStorage.getStore(),a=[...t.tags||[],...t.softTags||[]];if(a.some(e=>{var t,a;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(a=r.pendingRevalidatedTags)?void 0:a.some(t=>t.tag===e))}))return tm.debug&&console.log("IncrementalCache: expired tag",e),null;let s=tp.workUnitAsyncStorage.getStore();if(s){let t=(0,tp.getPrerenderResumeDataCache)(s);t&&(tm.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,c=d.value.data;return(0,to.areTagsExpired)(a,d.lastModified)?null:((0,to.areTagsStale)(a,d.lastModified)&&(l=!0),{isStale:l,value:{kind:eM.FETCH,data:c,revalidate:o}})}if((null==d||null==(a=d.value)?void 0:a.kind)===eM.FETCH)throw Object.defineProperty(new U(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let h=null,{isFallback:p}=t,f=this.cacheControls.get(td(e));if((null==d?void 0:d.lastModified)===-1)c=-1,u=-1*k.eM*1e3;else{let r=performance.timeOrigin+performance.now(),a=(null==d?void 0:d.lastModified)||r;if(void 0===(c=!1!==(u=this.calculateRevalidate(e,a,this.dev??!1,t.isFallback))&&u0&&((0,to.areTagsExpired)(t,a)?c=-1:(0,to.areTagsStale)(t,a)&&(c=!0))}}}return d&&(h={isStale:c,cacheControl:f,revalidateAfter:u,value:d.value,isFallback:p}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(h={isStale:c,value:null,cacheControl:f,revalidateAfter:u,isFallback:p},this.set(e,h.value,{...t,cacheControl:f})),h}async set(e,t,r){if((null==t?void 0:t.kind)===eM.FETCH){let r=tp.workUnitAsyncStorage.getStore(),a=r?(0,tp.getPrerenderResumeDataCache)(r):null;a&&(tm.debug&&console.log("IncrementalCache: rdc:set",e),a.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let a=JSON.stringify(t).length;if(r.fetchCache&&a>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${a} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var n;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(td(e),r.cacheControl),await (null==(n=this.cacheHandler)?void 0:n.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}function tg(e){if(0===e)return{get:()=>Promise.resolve(void 0),set:()=>Promise.resolve(),refreshTags:()=>Promise.resolve(),getExpiration:()=>Promise.resolve(0),updateTags:()=>Promise.resolve()};let t=new eN.q(e,e=>e.size),r=new Map,a=process.env.NEXT_PRIVATE_DEBUG_CACHE?console.debug.bind(console,"DefaultCacheHandler:"):void 0;return{async get(e){let n=r.get(e);n&&(null==a||a("get",e,"pending"),await n);let i=t.get(e);if(!i){null==a||a("get",e,"not found");return}let s=i.entry;if(performance.timeOrigin+performance.now()>s.timestamp+1e3*s.revalidate){null==a||a("get",e,"expired");return}let o=s.revalidate;if((0,to.areTagsExpired)(s.tags,s.timestamp)){null==a||a("get",e,"had expired tag");return}(0,to.areTagsStale)(s.tags,s.timestamp)&&(null==a||a("get",e,"had stale tag"),o=-1);let[l,c]=s.value.tee();return s.value=c,null==a||a("get",e,"found",{tags:s.tags,timestamp:s.timestamp,expire:s.expire,revalidate:o}),{...s,revalidate:o,value:l}},async set(e,n){null==a||a("set",e,"start");let i=()=>{},s=new Promise(e=>{i=e});r.set(e,s);let o=await n,l=0;try{let[r,n]=o.value.tee();o.value=r;let i=n.getReader();for(let e;!(e=await i.read()).done;)l+=Buffer.from(e.value).byteLength;t.set(e,{entry:o,isErrored:!1,errorRetryCount:0,size:l}),null==a||a("set",e,"done")}catch(t){null==a||a("set",e,"failed",t)}finally{i(),r.delete(e)}},async refreshTags(){},async getExpiration(e){let t=Math.max(...e.map(e=>{let t=to.tagsManifest.get(e);return t&&t.expired||0}),0);return null==a||a("getExpiration",{tags:e,expiration:t}),t},async updateTags(e,t){let r=Math.round(performance.timeOrigin+performance.now());for(let n of(null==a||a("updateTags",{tags:e,timestamp:r}),e)){let e=to.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),to.tagsManifest.set(n,a)}else to.tagsManifest.set(n,{...e,expired:r})}}}}let tv=process.env.NEXT_PRIVATE_DEBUG_CACHE?(e,...t)=>{console.log(`use-cache: ${e}`,...t)}:void 0,ty=Symbol.for("@next/cache-handlers"),tb=Symbol.for("@next/cache-handlers-map"),tE=Symbol.for("@next/cache-handlers-set"),tx=globalThis;function t_(e){return e.default||e}let tP=Symbol.for("@next/router-server-methods"),tR=globalThis;function tw(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)==="next-url"}let tC=e=>import(e).then(e=>e.default||e);class tS{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:a}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=a}getRouterServerContext(e){var t;let r=ev(e,"hostname"),a=ev(e,"revalidate"),n=ev(e,"render404"),i=ev(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=tR[tP])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==a?{revalidate:a}:{},...void 0!==n?{render404:n}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=n("node:path"),a=r(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(n.t.bind(n,"../lib/router-utils/instrumentation-globals.external.js",23));return i(a,this.distDir,...t)}}loadManifests(e,t){let r;{var a,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=n("../load-manifest.external"),l=eb(e),c=this.definition.kind===e8.PAGES||this.definition.kind===e8.PAGES_API?"pages":"app",[u,d,h,p,f,m,g,v,y,E,x,_]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:b,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${b}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:`server/${"app"===c?"app":"pages"}${l}/react-loadable-manifest.json`,handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==c||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let a=eE(e),n=!!(eC.test(a)||eS.test(a)||eO.test(a)||eT.test(a)||eA.test(a))||(!!a.includes("robots")||!!a.includes("manifest")||!!a.includes("sitemap")||!!a.includes("icon")||!!a.includes("apple-icon")||!!a.includes("opengraph-image")||!!a.includes("twitter-image")||!!a.includes("favicon"))&&null;if(null!==n)return n;let i=function(e,t){let r=`${e.join(",")}|${t}`,a=ej.get(r);if(a)return a;let n=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${ew(s,null)}${n}`),RegExp(`^[\\\\/]manifest${ew(o,null)}${n}`),RegExp(`[\\\\/]sitemap${ew(["xml"],e)}${n}`),RegExp(`[\\\\/]icon${i}${ew(ex,e)}${n}`),RegExp(`[\\\\/]apple-icon${i}${ew(e_,e)}${n}`),RegExp(`[\\\\/]opengraph-image${i}${ew(eP,e)}${n}`),RegExp(`[\\\\/]twitter-image${i}${ew(eR,e)}${n}`)];return ej.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:a,cacheHandlers:i}=t;if(!i||!function(e){if(tx[tb])return null==tv||tv("cache handlers already initialized"),!1;if(null==tv||tv("initializing cache handlers"),tx[tb]=new Map,tx[ty]){let t;tx[ty].DefaultCache?(null==tv||tv('setting "default" cache handler from symbol'),t=tx[ty].DefaultCache):(null==tv||tv('setting "default" cache handler from default'),t=tg(e)),tx[tb].set("default",t),tx[ty].RemoteCache?(null==tv||tv('setting "remote" cache handler from symbol'),tx[tb].set("remote",tx[ty].RemoteCache)):(null==tv||tv('setting "remote" cache handler from default'),tx[tb].set("remote",t))}else{let t=tg(e);null==tv||tv('setting "default" cache handler from default'),tx[tb].set("default",t),null==tv||tv('setting "remote" cache handler from default'),tx[tb].set("remote",t)}return tx[tE]=new Set(tx[tb].values()),!0}(a))return;for(let[t,a]of Object.entries(i)){if(!a)continue;let{formatDynamicImportPath:i}=n("./dist/esm/lib/format-dynamic-import-path.js"),{join:s}=n("node:path"),o=s(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir);var r=t_(await tC(i(`${o}/${this.distDir}`,a)));if(!tx[tb]||!tx[tE])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});null==tv||tv('setting cache handler for "%s"',t),tx[tb].set(t,r),tx[tE].add(r)}}}async getIncrementalCache(e,t,r,a){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=n("./dist/esm/lib/format-dynamic-import-path.js");i=t_(await tC(e(this.distDir,s)))}let{join:o}=n("node:path"),l=o(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let c=new tm({fs:n("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:a,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!a&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=c,c}}async onRequestError(e,t,r,a,n){a||((null==n?void 0:n.logErrorWithOriginalStack)?n.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:a}){var i,s;let o,l,c,u,d;{let{join:t,relative:r}=n("node:path");o=t(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir);let a=ev(e,"distDir");a&&(this.distDir=r(o,a));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(n.t.bind(n,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let h=this.loadManifests(r,o),{routesManifest:p,prerenderManifest:f,serverFilesManifest:m}=h,{basePath:g,i18n:v,rewrites:y}=p,b=this.getRouterServerContext(e),x=(null==b?void 0:b.nextConfig)||(null==m?void 0:m.config),P=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!ev(e,"initURL")){let t=(null==m?void 0:m.config.experimental.trustHostHeader)?`${P}://${e.headers.host||"localhost"}${e.url}`:`${P}://${(null==b?void 0:b.hostname)||"localhost"}${e.url}`;ey(e,"initURL",t),ey(e,"initProtocol",P)}g&&(e.url=$(e.url||"/",g));let O=E(e.url||"/");if(ey(e,"initQuery",{...null==O?void 0:O.query}),!O)return;let T=!1;D(O.pathname||"/","/_next/data")&&(T=!0,O.pathname=em(O.pathname||"/")),this.normalizeUrl(e,O);let j=O.pathname||"/",I={...O.query},M=A(r);v&&(l=_(O.pathname||"/",v.locales)).detectedLocale&&(e.url=`${l.pathname}${O.search}`,j=l.pathname,c||(c=l.detectedLocale));let U=R(r),q=function({page:e,i18n:t,basePath:r,rewrites:a,pageIsDynamic:n,trailingSlash:i,caseSensitive:s}){let o,l,c;if(n){var u;let t,r;r=(t=function(e,t,r,a,n,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},c=[],u=[];for(let s of(i=structuredClone(i),L(e).slice(1).split("/"))){let e,d=C.some(e=>s.startsWith(e)),h=s.match(H),p=d?h?.[1]:void 0;if(p&&h?.[2]?(e=t?k.h:void 0,i.intercepted[h[2]]=p):e=h?.[2]&&i.intercepted[h[2]]?t?k.h:void 0:t?k.AA:void 0,p&&h&&h[2]){let{key:t,pattern:r,cleanedKey:a,repeat:s,optional:d}=X({getSafeRouteKey:o,interceptionMarker:p,segment:h[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:n});c.push(r),u.push(`/${h[1]}:${i.names[t]??a}${s?d?"*":"+":""}`),i.names[t]??=a}else if(h&&h[2]){a&&h[1]&&(c.push(`/${F(h[1])}`),u.push(`/${h[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:p}=X({getSafeRouteKey:o,segment:h[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:n}),f=r;a&&h[1]&&(f=f.substring(1)),c.push(f),u.push(`/:${i.names[t]??s}${d?p?"*":"+":""}`),i.names[t]??=s}else c.push(`/${F(s)}`),u.push(`/${s}`);r&&h&&h[3]&&(c.push(F(h[3])),u.push(h[3]))}return{namedParameterizedRoute:c.join(""),routeKeys:l,pathToRegexpPattern:u.join(""),reference:i}}(e,(u={prefixRouteKeys:!1}).prefixRouteKeys,u.includeSuffix??!1,u.includePrefix??!1,u.backreferenceDuplicateKeys??!1,u.reference)).namedParameterizedRoute,u.excludeOptionalTrailingSlash||(r+="(?:/)?"),c=(l=er(o={...z(e,u),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(o,c){let u=structuredClone(c),d={},h=u.pathname,p=a=>{var c,p;let f,m,g,v=(c=a.source+(i?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!s},f=[],m=(0,N.pathToRegexp)(c,f,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),g=(0,N.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(m.source),m.flags):m,f),(e,t)=>{if("string"!=typeof e)return!1;let r=g(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of f)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!u.pathname)return!1;let y=v(u.pathname);if((a.has||a.missing)&&y){let e=function(e,t,r=[],a=[]){let n={},i=r=>{let a,i=r.key;switch(r.type){case"header":i=i.toLowerCase(),a=e.headers[i];break;case"cookie":a="cookies"in e?e.cookies[r.key]:ei(e.headers)()[r.key];break;case"query":a=t[i];break;case"host":{let{host:t}=e?.headers||{};a=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&a)return n[function(e){let t="";for(let r=0;r64&&a<91||a>96&&a<123)&&(t+=e[r])}return t}(i)]=a,!0;if(a){let e=RegExp(`^${r.value}$`),t=Array.isArray(a)?a.slice(-1)[0].match(e):a.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{n[e]=t.groups[e]}):"host"===r.type&&t[0]&&(n.host=t[0])),!0}return!1};return!(!r.every(e=>i(e))||a.some(e=>i(e)))&&n}(o,u.query,a.has,a.missing);e?Object.assign(y,e):y=!1}if(y){let{parsedDestination:i,destQuery:s}=function(e){let t,r,a=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${F(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return function(e,t,r=!0){let a=new URL("http://n"),n=e.startsWith(".")?new URL("http://n"):a,{pathname:i,searchParams:s,search:o,hash:l,href:c,origin:u}=e.startsWith("/")?new URL(`${n.protocol}//${n.host}${e}`):new URL(e,n);if(u!==a.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${e}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:i,port:null,protocol:null,query:r?ea(s):void 0,search:o,hash:l,href:c.slice(u.length),slashes:null}}(e);let t=new URL(e),r=t.username,a=t.password,n=r?a?`${r}:${a}`:r:null,i=t.pathname,s=t.search;return{auth:n,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:ea(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),a=r.pathname;a&&(a=es(a));let n=r.href;n&&(n=es(n));let i=r.hostname;i&&(i=es(i));let s=r.hash;s&&(s=es(s));let o=r.search;o&&(o=es(o));let l=r.origin;return l&&(l=es(l)),{...r,pathname:a,hostname:i,href:n,hash:s,search:o,origin:l}}(e),{hostname:n,query:i,search:s}=a,o=a.pathname;a.hash&&(o=`${o}${a.hash}`);let l=[],c=[];for(let e of(ee(o,c),c))l.push(e.name);if(n){let e=[];for(let t of(ee(n,e),e))l.push(t.name)}let u=et(o,{validate:!1});for(let[r,a]of(n&&(t=et(n,{validate:!1})),Object.entries(i)))Array.isArray(a)?i[r]=a.map(t=>eo(es(t),e.params)):"string"==typeof a&&(i[r]=eo(es(a),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if(S(o))for(let t of o.split("/")){let r=C.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[n,i]=(r=u(e.params)).split("#",2);t&&(a.hostname=t(e.params)),a.pathname=n,a.hash=`${i?"#":""}${i||""}`,a.search=s?eo(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return a.query={...e.query,...a.query},{newUrl:r,destQuery:i,parsedDestination:a}}({appendParamsToQuery:!0,destination:a.destination,params:y,query:u.query});if(i.protocol)return!0;if(Object.assign(d,s,y),Object.assign(u.query,i.query),delete i.query,Object.assign(u,i),!(h=u.pathname))return!1;if(r&&(h=h.replace(RegExp(`^${r}`),"")||"/"),t){let e=_(h,t.locales);h=e.pathname,u.query.nextInternalLocale=e.detectedLocale||y.nextInternalLocale}if(h===e)return!0;if(n&&l){let e=l(h);if(e)return u.query={...u.query,...e},!0}}return!1};for(let e of a.beforeFiles||[])p(e);if(h!==e){let t,r=!1;for(let e of a.afterFiles||[])if(r=p(e))break;if(!r&&!((t=L(h||""))===L(e)||(null==l?void 0:l(t)))){for(let e of a.fallback||[])if(r=p(e))break}}return{rewriteParams:d,rewrittenParsedUrl:u}},defaultRouteRegex:o,dynamicRouteMatcher:l,defaultRouteMatches:c,normalizeQueryParams:function(e,t){for(let[r,a]of(delete e.nextInternalLocale,Object.entries(e))){let n=el(r);n&&(delete e[r],t.add(n),void 0!==a&&(e[n]=Array.isArray(a)?a.map(e=>ec(e)):ec(a)))}},getParamsFromRouteMatches:function(e){if(!o)return null;let{groups:t,routeKeys:r}=o,a=er({re:{exec:e=>{let a=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(a)){let r=el(e);r&&(a[r]=t,delete a[e])}let n={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=a[e];if(!s.optional&&!o)return null;n[s.pos]=o}return n}},groups:t})(e);return a||null},normalizeDynamicRouteParams:(e,t)=>{if(!o||!c)return{params:{},hasValidParams:!1};var r=o,a=c;let n={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=w(s):Array.isArray(s)&&(s=s.map(w));let o=a[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(n[i]=s)}return{params:n,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=E(e.url);if(!r)return e.url;delete r.search,ed(r.query,t),e.url=function(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(function(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,en(e));else t.set(r,en(a));return t}(s)));let l=e.search||s&&`?${s}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||eu.test(a))&&!1!==o?(o="//"+(o||""),n&&"/"!==n[0]&&(n="/"+n)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),n=n.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${a}${o}${n}${l}${i}`}(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let a of Object.keys(r.groups)){let n,{optional:i,repeat:s}=r.groups[a],o=`[${s?"...":""}${a}]`;i&&(o=`[${o}]`);let l=t[a];((n=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,n))}return e})(e,t,o),filterInternalQuery:(e,t)=>ed(e,t)}}({page:U,i18n:v,basePath:g,rewrites:y,pageIsDynamic:M,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!p.caseSensitive}),G=eh(null==v?void 0:v.domains,ep(O,e.headers),c);G&&ey(e,"isLocaleDomain",!!G);let B=ev(e,"defaultLocale")||(null==G?void 0:G.defaultLocale)||(null==v?void 0:v.defaultLocale);B&&!c&&(O.pathname=`/${B}${"/"===O.pathname?"":O.pathname}`);let W=ev(e,"locale")||c||B,{rewriteParams:J,rewrittenParsedUrl:K}=q.handleRewrites(e,O),Z=Object.keys(J);Object.assign(O.query,K.query),v&&(O.pathname=_(O.pathname||"/",v.locales).pathname,K.pathname=_(K.pathname||"/",v.locales).pathname);let Y=ev(e,"params");if(!Y&&q.dynamicRouteMatcher){let e=q.dynamicRouteMatcher(em((null==K?void 0:K.pathname)||O.pathname||"/")),t=q.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(Y=t.params)}let Q=ev(e,"query")||{...O.query},eg=new Set,eb=[];if(this.definition.kind===e8.PAGES||this.definition.kind===e8.PAGES_API)for(let e of[...Z,...Object.keys(q.defaultRouteMatches||{})]){let t=Array.isArray(I[e])?I[e].join(""):I[e],r=Array.isArray(Q[e])?Q[e].join(""):Q[e];e in I&&t!==r||eb.push(e)}if(q.normalizeCdnUrl(e,eb),q.normalizeQueryParams(Q,eg),q.filterInternalQuery(I,eb),M){let t,r=q.normalizeDynamicRouteParams(Q,!0),a=q.normalizeDynamicRouteParams(Y||{},!0);if(Q&&Y&&a.hasValidParams&&r.hasValidParams&&eg.size>0&&Object.keys(a.params).length<=Object.keys(r.params).length?(t=r.params,Y=Object.assign(r.params)):t=a.hasValidParams&&Y?Y:r.hasValidParams?Q:{},e.url=q.interpolateDynamicPath(e.url||"/",t),O.pathname=q.interpolateDynamicPath(O.pathname||"/",t),j=q.interpolateDynamicPath(j,t),!Y)if(r.hasValidParams)for(let e in Y=Object.assign({},r.params),q.defaultRouteMatches)delete Q[e];else{let e=null==q.dynamicRouteMatcher?void 0:q.dynamicRouteMatcher.call(q,em((null==l?void 0:l.pathname)||O.pathname||"/"));e&&(Y=Object.assign({},e))}}for(let e of eg)e in I?I[e]&&Q[e]&&I[e]!==Q[e]&&(Q[e]=I[e]):delete Q[e];let{isOnDemandRevalidate:eE,revalidateOnlyGenerated:ex}=(0,ef.Gx)(e,f.preview),e_=!1;if(t){let{tryGetPreviewData:r}=n("./dist/esm/server/api-utils/node/try-get-preview-data.js");e_=!1!==(u=r(e,t,f.preview,!!a))}if(!x)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=n("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!x.experimental.removeUncaughtErrorAndRejectionListeners)}let eP=U;A(eP)&&Y&&(eP=q.interpolateDynamicPath(eP,Y)),"/index"===eP&&(eP="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",L(`${W?`/${W}`:""}${U}`));let eR=eP;try{eP=eP.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new V("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(ey(e,"resolvedPathname",eP=L(eP)),null==(s=x.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=x.deploymentId||"";return{query:Q,originalQuery:I,originalPathname:j,params:Y,parsedUrl:O,locale:W,isNextDataRequest:T,locales:null==v?void 0:v.locales,defaultLocale:B,isDraftMode:e_,previewData:u,pageIsDynamic:M,resolvedPathname:eP,encodedResolvedPathname:eR,isOnDemandRevalidate:eE,revalidateOnlyGenerated:ex,...h,nextConfig:x,routerServerContext:b,deploymentId:d,clientAssetToken:x.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=ev(e,"minimalMode")??!1;this.responseCache=new tn(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:a,isFallback:n,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:c,waitUntil:u,isMinimalMode:d}){let h=this.getResponseCache(e),p=await h.get(r,c,{routeKind:a,isFallback:n,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:u});if(!p&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return p}}let tO=require("react/jsx-runtime"),tT=require("react");var tA=n.n(tT),tj=n("./dist/server/ReactDOMServerPages.js"),tD=n.n(tj);let t$=require("styled-jsx");function tN(e){return Object.prototype.toString.call(e)}function tk(e){if("[object Object]"!==tN(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}let tI=/^[A-Za-z_$][A-Za-z0-9_$]*$/;class tM extends Error{constructor(e,t,r,a){super(r?`Error serializing \`${r}\` returned from \`${t}\` in "${e}". +Reason: ${a}`:`Error serializing props returned from \`${t}\` in "${e}". +Reason: ${a}`)}}function tF(e,t,r){if(!tk(r))throw Object.defineProperty(new tM(e,t,"",`Props must be returned as a plain object from ${t}: \`{ props: { ... } }\` (received: \`${tN(r)}\`).`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});function a(r,a,n){if(r.has(a))throw Object.defineProperty(new tM(e,t,n,`Circular references cannot be expressed in JSON (references: \`${r.get(a)||"(self)"}\`).`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});r.set(a,n)}return function r(n,i,s){let o=typeof i;if(null===i||"boolean"===o||"number"===o||"string"===o)return!0;if("undefined"===o)throw Object.defineProperty(new tM(e,t,s,"`undefined` cannot be serialized as JSON. Please use `null` or omit this value."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(tk(i)){if(a(n,i,s),Object.entries(i).every(([e,t])=>{let a=tI.test(e)?`${s}.${e}`:`${s}[${JSON.stringify(e)}]`,i=new Map(n);return r(i,e,a)&&r(i,t,a)}))return!0;throw Object.defineProperty(new tM(e,t,s,"invariant: Unknown error encountered in Object."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}if(Array.isArray(i)){if(a(n,i,s),i.every((e,t)=>r(new Map(n),e,`${s}[${t}]`)))return!0;throw Object.defineProperty(new tM(e,t,s,"invariant: Unknown error encountered in Array."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}throw Object.defineProperty(new tM(e,t,s,"`"+o+"`"+("object"===o?` ("${Object.prototype.toString.call(i)}")`:"")+" cannot be serialized as JSON. Please only return JSON serializable data types."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}(new Map,r,"")}let tL=tA().createContext({}),tU=tA().createContext(null),tH=[],tq=[];function tz(e){let t=e(),r={loading:!0,loaded:null,error:null};return r.promise=t.then(e=>(r.loading=!1,r.loaded=e,e)).catch(e=>{throw r.loading=!1,r.error=e,e}),r}class tX{constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e},this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}}function tG(e){let t=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},e),r=null;function a(){if(!r){let e=new tX(tz,t);r={getCurrentValue:e.getCurrentValue.bind(e),subscribe:e.subscribe.bind(e),retry:e.retry.bind(e),promise:e.promise.bind(e)}}return r.promise()}function n(e,n){let i;a(),(i=tA().useContext(tU))&&Array.isArray(t.modules)&&t.modules.forEach(e=>{i(e)});let s=tA().useSyncExternalStore(r.subscribe,r.getCurrentValue,r.getCurrentValue);return tA().useImperativeHandle(n,()=>({retry:r.retry}),[]),tA().useMemo(()=>{var a;return s.loading||s.error?tA().createElement(t.loading,{isLoading:s.loading,pastDelay:s.pastDelay,timedOut:s.timedOut,error:s.error,retry:r.retry}):s.loaded?tA().createElement((a=s.loaded)&&a.default?a.default:a,e):null},[e,s])}return tH.push(a),n.preload=()=>a(),n.displayName="LoadableComponent",tA().forwardRef(n)}function tB(e,t){let r=[];for(;e.length;){let a=e.pop();r.push(a(t))}return Promise.all(r).then(()=>{if(e.length)return tB(e,t)})}tG.preloadAll=()=>new Promise((e,t)=>{tB(tH).then(e,t)}),tG.preloadReady=(e=[])=>new Promise(t=>{let r=()=>t();tB(tq,e).then(r,r)});let tW=tG,tV=tA().createContext(null),tJ=(0,tT.createContext)(void 0);function tK(){let e=(0,tT.useContext)(tJ);if(!e)throw Object.defineProperty(Error(` should not be imported outside of pages/_document. +Read more: https://nextjs.org/docs/messages/no-document-import-in-page`),"__NEXT_ERROR_CODE",{value:"E67",enumerable:!1,configurable:!0});return e}var tZ=((l={})[l.SeeOther=303]="SeeOther",l[l.TemporaryRedirect=307]="TemporaryRedirect",l[l.PermanentRedirect=308]="PermanentRedirect",l);let tY=new Set([301,302,303,307,308]);function tQ(e){return e.statusCode||(e.permanent?tZ.PermanentRedirect:tZ.TemporaryRedirect)}let t0=tA().createContext({deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1});var t1=n("./dist/compiled/strip-ansi/index.js"),t2=n.n(t1);let t3=["_rsc"];class t4 extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class t9 extends URLSearchParams{append(){throw new t4}delete(){throw new t4}set(){throw new t4}sort(){throw new t4}}let t8=(0,tT.createContext)(null),t6=(0,tT.createContext)(null),t5=(0,tT.createContext)(null),t7=(0,tT.createContext)(null);function re(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}function rt({children:e,router:t,...r}){let a=(0,tT.useRef)(r.isAutoExport),n=(0,tT.useMemo)(()=>{let e,r=a.current;if(r&&(a.current=!1),A(t.pathname)&&(t.isFallback||r&&!t.isReady))return null;try{e=new URL(t.asPath,"http://f")}catch(e){return"/"}return e.pathname},[t.asPath,t.isFallback,t.isReady,t.pathname]);return(0,tO.jsx)(t6.Provider,{value:n,children:e})}let rr=tA().createContext(null),ra=tA().createContext(null),rn=tA().createContext(null),ri=tA().createContext(null),rs=tA().createContext(new Set),ro=Symbol.for("NextjsError"),rl=/[&><\u2028\u2029]/g,rc="";function ru(){throw Object.defineProperty(Error('No router instance found. you should only use "next/router" inside the client side of your app. https://nextjs.org/docs/messages/no-router-instance'),"__NEXT_ERROR_CODE",{value:"E1027",enumerable:!1,configurable:!0})}async function rd(e){let t=await tD().renderToReadableStream(e);return await t.allReady,eG(t)}e=n("./dist/esm/server/api-utils/node/try-get-preview-data.js").tryGetPreviewData,t=n("./dist/esm/build/output/log.js").R8,r=n("./dist/esm/server/post-process.js").F;class rh{constructor(e,t,r,{isFallback:a},n,i,s,o,l,c,u,d){this.route=e.replace(/\/$/,"")||"/",this.pathname=e,this.query=t,this.asPath=r,this.isFallback=a,this.basePath=i,this.locale=s,this.locales=o,this.defaultLocale=l,this.isReady=n,this.domainLocales=c,this.isPreview=!!u,this.isLocaleDomain=!!d}push(){ru()}replace(){ru()}reload(){ru()}back(){ru()}forward(){ru()}prefetch(){ru()}beforePopState(){ru()}}function rp(e,t,r){return(0,tO.jsx)(e,{Component:t,...r})}let rf=(e,t)=>{let r=`invalid-${e.toLocaleLowerCase()}-value`;return`Additional keys were returned from \`${e}\`. Properties intended for your component must be nested under the \`props\` key, e.g.: + + return { props: { title: 'My Title', content: '...' } } + +Keys that need to be moved: ${t.join(", ")}. +Read more: https://nextjs.org/docs/messages/${r}`};function rm(e,t,r){let{destination:a,permanent:n,statusCode:i,basePath:s}=e,o=[],l=void 0!==i,c=void 0!==n;c&&l?o.push("`permanent` and `statusCode` can not both be provided"):c&&"boolean"!=typeof n?o.push("`permanent` must be `true` or `false`"):l&&!tY.has(i)&&o.push(`\`statusCode\` must undefined or one of ${[...tY].join(", ")}`);let u=typeof a;"string"!==u&&o.push(`\`destination\` should be string but received ${u}`);let d=typeof s;if("undefined"!==d&&"boolean"!==d&&o.push(`\`basePath\` should be undefined or a false, received ${d}`),o.length>0)throw Object.defineProperty(Error(`Invalid redirect object returned from ${r} for ${t.url} +`+o.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1,configurable:!0})}async function rg(a,n,i,s,o,l,c,u){let d,h,p;(0,ef.C4)({req:a},"cookies",ei(a.headers));let f=c.deploymentId?`?dpl=${c.deploymentId}`:"",m=c.clientAssetToken?`?dpl=${c.clientAssetToken}`:"",g={assetQueryString:m,mutableAssetQueryString:f};s=Object.assign({},s);let{err:v,pageConfig:y={},buildManifest:b,reactLoadableManifest:E,ErrorDebug:x,getStaticProps:_,getStaticPaths:P,getServerSideProps:R,isNextDataRequest:w,params:C,previewProps:S,basePath:O,images:T,runtime:j,isExperimentalCompile:D,expireTime:$}=o,{App:N}=l,I=l.Document,M=o.Component,F=u.isFallback??!1;u.developmentNotFoundSourcePage;var L=s;for(let e of t3)delete L[e];let U=!!_,H=U&&o.isBuildTimePrerendering,q=N.getInitialProps===N.origGetInitialProps,X=!!(null==M?void 0:M.getInitialProps),V=null==M?void 0:M.unstable_scriptLoader,J=A(i),K="/_error"===i&&M.getInitialProps===M.origGetInitialProps;o.isBuildTimePrerendering&&X&&!K&&t(`Detected getInitialProps on page '${i}' while running export. It's recommended to use getStaticProps which has a more correct behavior for static exporting. +Read more: https://nextjs.org/docs/messages/get-initial-props-export`);let Z=!X&&q&&!U&&!R;if(Z&&D&&(n.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e"beforeInteractive"===e.props.strategy).map(e=>e.props));let el=a.headers["content-security-policy"]||a.headers["content-security-policy-report-only"],ec="string"==typeof el?function(e){var t;let r=e.split(";").map(e=>e.trim()),a=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!a)return;let n=null==(t=a.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(n){if(rl.test(n))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return n}}(el):void 0,eu=({children:e})=>{var t;return(0,tO.jsx)(rr.Provider,{value:et,children:(0,tO.jsx)(t8.Provider,{value:(t=ee).isReady&&t.query?new URL(t.asPath,"http://n").searchParams:new URLSearchParams,children:(0,tO.jsx)(rt,{router:ee,isAutoExport:Z,children:(0,tO.jsx)(t5.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(z(e.pathname).groups))t[r]=e.query[r];return t}(ee),children:(0,tO.jsx)(tV.Provider,{value:ee,children:(0,tO.jsx)(tL.Provider,{value:{updateHead:e=>{en=e},updateScripts:e=>{er=e},scripts:eo,mountedInstances:new Set,nonce:ec},children:(0,tO.jsx)(tU.Provider,{value:e=>es.push(e),children:(0,tO.jsx)(t$.StyleRegistry,{registry:ea,children:(0,tO.jsx)(t0.Provider,{value:T,children:e})})})})})})})})})},ed=()=>null,eh=({children:e})=>(0,tO.jsxs)(tO.Fragment,{children:[(0,tO.jsx)(ed,{}),(0,tO.jsx)(eu,{children:(0,tO.jsxs)(tO.Fragment,{children:[e,(0,tO.jsx)(ed,{})]})})]}),ep={err:v,req:Z?void 0:a,res:Z?void 0:n,pathname:i,query:s,asPath:Y,locale:o.locale,locales:o.locales,defaultLocale:o.defaultLocale,AppTree:e=>(0,tO.jsx)(eh,{children:rp(N,M,{...e,router:ee})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:a}=await e.renderPage({enhanceApp:e=>t=>(0,tO.jsx)(e,{...t})}),n=ea.styles({nonce:t.nonce||ec});return ea.flush(),{html:r,head:a,styles:n}}},em=!U&&(o.isBuildTimePrerendering||"");if(h=await W(N,{AppTree:ep.AppTree,Component:M,router:ee,ctx:ep}),(U||R)&&p&&(h.__N_PREVIEW=!0),U&&(h.__N_SSG=!0),U&&!F){let e,t;try{e=await (0,eL.getTracer)().trace(eU.vr.getStaticProps,{spanName:`getStaticProps ${i}`,attributes:{"next.route":i}},()=>_({...J?{params:C}:void 0,...p?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale,revalidateReason:o.isOnDemandRevalidate?"on-demand":H?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(k.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(rf("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(rm(e.redirect,a,"getStaticProps"),H)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${a.url}) +See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1,configurable:!0});e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:tQ(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0}if(H&&!g.isNotFound&&!tF(i,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1,configurable:!0});if("revalidate"in e){if(e.revalidate&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1,configurable:!0});if("number"==typeof e.revalidate)if(Number.isInteger(e.revalidate))if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${a.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated. + +To never revalidate, you can set revalidate to \`false\` (only ran once at build-time). +To revalidate as soon as possible, you can set the value to \`1\`.`),"__NEXT_ERROR_CODE",{value:"E311",enumerable:!1,configurable:!0});else e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${a.url}. This may have been done in error. +To only run getStaticProps at build-time and not revalidate at runtime, you can set \`revalidate\` to \`false\`!`),t=e.revalidate;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number for ${a.url}. Mixed numbers, such as '${e.revalidate}', cannot be used. +Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1,configurable:!0});else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${a.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1,configurable:!0})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.cacheControl={revalidate:t,expire:void 0},g.pageData=h,g.isNotFound)return new e9(null,{metadata:g,contentType:null})}if(R&&(h.__N_SSP=!0),R&&!F){let e,t=!1;try{e=await (0,eL.getTracer)().trace(eU.vr.getServerSideProps,{spanName:`getServerSideProps ${i}`,attributes:{"next.route":i}},async()=>R({req:a,res:n,query:s,resolvedUrl:o.resolvedUrl,...J?{params:C}:void 0,...!1!==d?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale})),g.cacheControl={revalidate:0,expire:void 0}}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1,configurable:!0});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(rf("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});return g.isNotFound=!0,new e9(null,{metadata:g,contentType:null})}if("redirect"in e&&"object"==typeof e.redirect&&(rm(e.redirect,a,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:tQ(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0),t&&(e.props=await e.props),H&&!tF(i,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1,configurable:!0});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(w&&!U||g.isRedirect)return new e9(JSON.stringify(h),{metadata:g,contentType:k.U2});if(F&&(h.pageProps={}),B(n)&&!U)return e9.EMPTY;let eg=b;if(Z&&J){let e,t=(e=eE(eb(i))).startsWith("/index/")&&!A(e)?e.slice(6):"/index"!==e?e:"/";t in eg.pages&&(eg={...eg,pages:{...eg.pages,[t]:[...eg.pages[t],...eg.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eg.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let ey=({children:e})=>(0,tO.jsx)("div",{id:"__next",children:e}),ex=async()=>{let e,t,r;async function a(e){let t=async(t={})=>{if(ep.err&&x)return e&&e(N,M),{html:await rd((0,tO.jsx)(ey,{children:(0,tO.jsx)(x,{})})),head:en};let{App:r,Component:a}="function"==typeof t?{App:N,Component:t(M)}:{App:t.enhanceApp?t.enhanceApp(N):N,Component:t.enhanceComponent?t.enhanceComponent(M):M},n=await e(r,a);return await n.allReady,{html:await eG(n),head:en}},r={...ep,renderPage:t},a=await W(I,r);if(B(n)&&!U)return null;if(!a||"string"!=typeof a.html)throw Object.defineProperty(Error(`"${G(I)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E1039",enumerable:!1,configurable:!0});return{docProps:a,documentCtx:r}}I.__NEXT_BUILTIN_DOCUMENT__;let i=async(e,t)=>{let r,a,n=(r=e||N,a=t||M,ep.err&&x?(0,tO.jsx)(ey,{children:(0,tO.jsx)(x,{})}):(0,tO.jsx)(ey,{children:(0,tO.jsx)(eh,{children:rp(r,a,{...h,router:ee})})}));return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eL.getTracer)().trace(eU.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:tD(),element:n})},s=!!I.getInitialProps,[o,l]=await Promise.all([rd((r=ea.styles(),ea.flush(),(0,tO.jsx)(tO.Fragment,{children:r}))),(async()=>{if(s){if(null===(e=await a(i)))return null;let{docProps:t}=e;return t.html}{e={};let t=await i(N,M);return await t.allReady,eG(t)}})()]);if(null===l)return null;let{docProps:c}=e||{};return s?(t=c.styles,en=c.head):(t=ea.styles(),ea.flush()),{contentHTML:o+l,documentElement:e=>(0,tO.jsx)(I,{...e,...c}),head:en,headTags:[],styles:t}};(0,eL.getTracer)().setRootSpanAttribute("next.route",o.page);let e_=await (0,eL.getTracer)().trace(eU.vr.renderDocument,{spanName:`render route (pages) ${o.page}`,attributes:{"next.route":o.page}},async()=>ex());if(!e_)return new e9(null,{metadata:g,contentType:k.j9});let eP=new Set,eR=new Set;for(let e of es){let t=E[e];t&&(eP.add(t.id),t.files.forEach(e=>{eR.add(e)}))}let{assetPrefix:ew,defaultLocale:eC,disableOptimizedLoading:eS,domainLocales:eO,locale:eT,locales:eA}=o,ej={__NEXT_DATA__:{props:h,page:i,query:s,buildId:c.buildId,assetPrefix:""===ew?void 0:ew,nextExport:!0===em||void 0,autoExport:!0===Z||void 0,isFallback:F,isExperimentalCompile:D,dynamicIds:0===eP.size?void 0:Array.from(eP),err:o.err?function(e,t){if(e){let e="server";return e=t[ro]||"server",{name:t.name,source:e,message:t2()(t.message),stack:t.stack,digest:t.digest}}return{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}}(!1,o.err):void 0,gsp:!!_||void 0,gssp:!!R||void 0,customServer:c.customServer,gip:!!X||void 0,appGip:!q||void 0,locale:eT,locales:eA,defaultLocale:eC,domainLocales:eO,isPreview:!0===p||void 0,notFoundSrcPage:void 0},nonce:ec,buildManifest:eg,docComponentsRendered:{},dangerousAsPath:ee.asPath,isDevelopment:!1,deploymentId:c.deploymentId,dynamicImports:Array.from(eR),dynamicCssManifest:new Set(o.dynamicCssManifest||[]),assetPrefix:ew,unstable_runtimeJS:y.unstable_runtimeJS,unstable_JsPreload:y.unstable_JsPreload,assetQueryString:m||"",mutableAssetQueryString:f||"",scriptLoader:er,locale:eT,disableOptimizedLoading:eS,head:e_.head,headTags:e_.headTags,styles:e_.styles,crossOrigin:o.crossOrigin,optimizeCss:o.optimizeCss,nextConfigOutput:o.nextConfigOutput,nextScriptWorkers:o.nextScriptWorkers,runtime:j,largePageDataBytes:o.largePageDataBytes,nextFontManifest:o.nextFontManifest,experimentalClientTraceMetadata:o.experimental.clientTraceMetadata},eD=(0,tO.jsx)(tJ.Provider,{value:ej,children:e_.documentElement(ej)}),e$=await (0,eL.getTracer)().trace(eU.vr.renderToString,async()=>rd(eD)),[eN,ek]=e$.split("",2),eI="";e$.startsWith(rc)||(eI+=rc);let eM=(eI+=eN)+e_.contentHTML+ek;return new e9(await r(eM,o),{metadata:g,contentType:k.j9})}let rv=(e,t,r,a,n,i,s)=>rg(e,t,r,a,n,n,i,s),ry=tA().createContext(null);function rb(e){let t=(0,tT.useContext)(ry);t&&t(e)}class rE extends tS{constructor(e){super(e),this.components=e.components}render(e,t,r){return rg(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document},r.sharedContext,r.renderContext)}}let rx={contexts:y},r_=rE})(),module.exports=i})(); +//# sourceMappingURL=pages-turbo.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js b/cli/app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js new file mode 100644 index 00000000000..b959826ec9b --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/next-server/pages.runtime.prod.js @@ -0,0 +1,20 @@ +(()=>{var e,t,r={"./dist/compiled/@edge-runtime/cookies/index.js"(e){"use strict";var t=Object.defineProperty,r=Object.getOwnPropertyDescriptor,a=Object.getOwnPropertyNames,n=Object.prototype.hasOwnProperty,i={},s={RequestCookies:()=>p,ResponseCookies:()=>f,parseCookie:()=>c,parseSetCookie:()=>u,stringifyCookie:()=>l};for(var o in s)t(i,o,{get:s[o],enumerable:!0});function l(e){var t;let r=["path"in e&&e.path&&`Path=${e.path}`,"expires"in e&&(e.expires||0===e.expires)&&`Expires=${("number"==typeof e.expires?new Date(e.expires):e.expires).toUTCString()}`,"maxAge"in e&&"number"==typeof e.maxAge&&`Max-Age=${e.maxAge}`,"domain"in e&&e.domain&&`Domain=${e.domain}`,"secure"in e&&e.secure&&"Secure","httpOnly"in e&&e.httpOnly&&"HttpOnly","sameSite"in e&&e.sameSite&&`SameSite=${e.sameSite}`,"partitioned"in e&&e.partitioned&&"Partitioned","priority"in e&&e.priority&&`Priority=${e.priority}`].filter(Boolean),a=`${e.name}=${encodeURIComponent(null!=(t=e.value)?t:"")}`;return 0===r.length?a:`${a}; ${r.join("; ")}`}function c(e){let t=new Map;for(let r of e.split(/; */)){if(!r)continue;let e=r.indexOf("=");if(-1===e){t.set(r,"true");continue}let[a,n]=[r.slice(0,e),r.slice(e+1)];try{t.set(a,decodeURIComponent(null!=n?n:"true"))}catch{}}return t}function u(e){if(!e)return;let[[t,r],...a]=c(e),{domain:n,expires:i,httponly:s,maxage:o,path:l,samesite:u,secure:p,partitioned:f,priority:m}=Object.fromEntries(a.map(([e,t])=>[e.toLowerCase().replace(/-/g,""),t]));{var g,v,y={name:t,value:decodeURIComponent(r),domain:n,...i&&{expires:new Date(i)},...s&&{httpOnly:!0},..."string"==typeof o&&{maxAge:Number(o)},path:l,...u&&{sameSite:d.includes(g=(g=u).toLowerCase())?g:void 0},...p&&{secure:!0},...m&&{priority:h.includes(v=(v=m).toLowerCase())?v:void 0},...f&&{partitioned:!0}};let e={};for(let t in y)y[t]&&(e[t]=y[t]);return e}}e.exports=((e,i,s,o)=>{if(i&&"object"==typeof i||"function"==typeof i)for(let s of a(i))n.call(e,s)||void 0===s||t(e,s,{get:()=>i[s],enumerable:!(o=r(i,s))||o.enumerable});return e})(t({},"__esModule",{value:!0}),i);var d=["strict","lax","none"],h=["low","medium","high"],p=class{constructor(e){this._parsed=new Map,this._headers=e;const t=e.get("cookie");if(t)for(const[e,r]of c(t))this._parsed.set(e,{name:e,value:r})}[Symbol.iterator](){return this._parsed[Symbol.iterator]()}get size(){return this._parsed.size}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed);if(!e.length)return r.map(([e,t])=>t);let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(([e])=>e===a).map(([e,t])=>t)}has(e){return this._parsed.has(e)}set(...e){let[t,r]=1===e.length?[e[0].name,e[0].value]:e,a=this._parsed;return a.set(t,{name:t,value:r}),this._headers.set("cookie",Array.from(a).map(([e,t])=>l(t)).join("; ")),this}delete(e){let t=this._parsed,r=Array.isArray(e)?e.map(e=>t.delete(e)):t.delete(e);return this._headers.set("cookie",Array.from(t).map(([e,t])=>l(t)).join("; ")),r}clear(){return this.delete(Array.from(this._parsed.keys())),this}[Symbol.for("edge-runtime.inspect.custom")](){return`RequestCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(e=>`${e.name}=${encodeURIComponent(e.value)}`).join("; ")}},f=class{constructor(e){var t,r,a;this._parsed=new Map,this._headers=e;const n=null!=(a=null!=(r=null==(t=e.getSetCookie)?void 0:t.call(e))?r:e.get("set-cookie"))?a:[];for(const e of Array.isArray(n)?n:function(e){if(!e)return[];var t,r,a,n,i,s=[],o=0;function l(){for(;o=e.length)&&s.push(e.substring(t,e.length))}return s}(n)){const t=u(e);t&&this._parsed.set(t.name,t)}}get(...e){let t="string"==typeof e[0]?e[0]:e[0].name;return this._parsed.get(t)}getAll(...e){var t;let r=Array.from(this._parsed.values());if(!e.length)return r;let a="string"==typeof e[0]?e[0]:null==(t=e[0])?void 0:t.name;return r.filter(e=>e.name===a)}has(e){return this._parsed.has(e)}set(...e){let[t,r,a]=1===e.length?[e[0].name,e[0].value,e[0]]:e,n=this._parsed;return n.set(t,function(e={name:"",value:""}){return"number"==typeof e.expires&&(e.expires=new Date(e.expires)),e.maxAge&&(e.expires=new Date(Date.now()+1e3*e.maxAge)),(null===e.path||void 0===e.path)&&(e.path="/"),e}({name:t,value:r,...a})),function(e,t){for(let[,r]of(t.delete("set-cookie"),e)){let e=l(r);t.append("set-cookie",e)}}(n,this._headers),this}delete(...e){let[t,r]="string"==typeof e[0]?[e[0]]:[e[0].name,e[0]];return this.set({...r,name:t,value:"",expires:new Date(0)})}[Symbol.for("edge-runtime.inspect.custom")](){return`ResponseCookies ${JSON.stringify(Object.fromEntries(this._parsed))}`}toString(){return[...this._parsed.values()].map(l).join("; ")}}},"./dist/compiled/cookie/index.js"(e){(()=>{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t,r,a,n,i={};i.parse=function(e,r){if("string"!=typeof e)throw TypeError("argument str must be a string");for(var n={},i=e.split(a),s=(r||{}).decode||t,o=0;o{"use strict";"undefined"!=typeof __nccwpck_require__&&(__nccwpck_require__.ab=__dirname+"/");var t={};(()=>{function e(e,t){void 0===t&&(t={});for(var r=function(e){for(var t=[],r=0;r=48&&s<=57||s>=65&&s<=90||s>=97&&s<=122||95===s){n+=e[i++];continue}break}if(!n)throw TypeError("Missing parameter name at ".concat(r));t.push({type:"NAME",index:r,value:n}),r=i;continue}if("("===a){var o=1,l="",i=r+1;if("?"===e[i])throw TypeError('Pattern cannot start with "?" at '.concat(i));for(;i-1)return!0}return!1},g=function(e){var t=l[l.length-1],r=e||(t&&"string"==typeof t?t:"");if(t&&!r)throw TypeError('Must have text between two parameters, missing text after "'.concat(t.name,'"'));return!r||m(r)?"[^".concat(n(o),"]+?"):"(?:(?!".concat(n(r),")[^").concat(n(o),"])+?")};u-1:void 0===x;s||(m+="(?:".concat(f,"(?=").concat(p,"))?")),_||(m+="(?=".concat(f,"|").concat(p,")"))}return new RegExp(m,i(r))}function o(t,r,a){if(t instanceof RegExp){var n;if(!r)return t;for(var l=/\((?:\?<(.*?)>)?(?!\?)/g,c=0,u=l.exec(t.source);u;)r.push({name:u[1]||c++,prefix:"",suffix:"",modifier:"",pattern:""}),u=l.exec(t.source);return t}return Array.isArray(t)?(n=t.map(function(e){return o(e,r,a).source}),new RegExp("(?:".concat(n.join("|"),")"),i(a))):s(e(t,a),r,a)}Object.defineProperty(t,"__esModule",{value:!0}),t.pathToRegexp=t.tokensToRegexp=t.regexpToFunction=t.match=t.tokensToFunction=t.compile=t.parse=void 0,t.parse=e,t.compile=function(t,a){return r(e(t,a),a)},t.tokensToFunction=r,t.match=function(e,t){var r=[];return a(o(e,r,t),r,t)},t.regexpToFunction=a,t.tokensToRegexp=s,t.pathToRegexp=o})(),e.exports=t})()},"./dist/compiled/strip-ansi/index.js"(e){(()=>{"use strict";var t={511:e=>{e.exports=({onlyFirst:e=!1}={})=>RegExp("[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)|(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))",e?void 0:"g")},532:(e,t,r)=>{let a=r(511);e.exports=e=>"string"==typeof e?e.replace(a(),""):e}},r={};function a(e){var n=r[e];if(void 0!==n)return n.exports;var i=r[e]={exports:{}},s=!0;try{t[e](i,i.exports,a),s=!1}finally{s&&delete r[e]}return i.exports}a.ab=__dirname+"/",e.exports=a(532)})()},"./dist/esm/build/output/log.js"(e,t,r){"use strict";r.d(t,{R8:()=>o,mc:()=>c});var a=r("./dist/esm/lib/picocolors.js"),n=r("./dist/esm/server/lib/lru-cache.js");let i={wait:(0,a.ON)((0,a.Cr)("○")),error:(0,a.wv)((0,a.Cr)("⨯")),warn:(0,a.D9)((0,a.Cr)("⚠")),ready:"▲",info:(0,a.ON)((0,a.Cr)(" ")),event:(0,a.wL)((0,a.Cr)("✓")),trace:(0,a.GC)((0,a.Cr)("\xbb"))},s={log:"log",warn:"warn",error:"error"};function o(...e){!function(e,...t){(""===t[0]||void 0===t[0])&&1===t.length&&t.shift();let r=e in s?s[e]:"log",a=i[e];0===t.length?console[r](""):1===t.length&&"string"==typeof t[0]?console[r](a+" "+t[0]):console[r](a,...t)}("warn",...e)}let l=new n.q(1e4,e=>e.length);function c(...e){let t=e.join(" ");l.has(t)||(l.set(t,t),o(...e))}new n.q(1e4,e=>e.length)},"./dist/esm/lib/constants.js"(e,t,r){"use strict";r.d(t,{$1:()=>P,AA:()=>i,EP:()=>p,Oh:()=>R,RM:()=>d,U2:()=>n,UO:()=>_,VC:()=>f,bX:()=>b,c1:()=>g,eM:()=>v,g0:()=>E,h:()=>s,iS:()=>y,j9:()=>a,kz:()=>o,mH:()=>c,r4:()=>l,tz:()=>u,vS:()=>m,x3:()=>h,xV:()=>x});let a="text/html; charset=utf-8",n="application/json; charset=utf-8",i="nxtP",s="nxtI",o="x-prerender-revalidate",l="x-prerender-revalidate-if-generated",c=".segments",u=".segment.rsc",d=".rsc",h=".json",p=".meta",f="x-next-cache-tags",m="x-next-revalidated-tags",g="x-next-revalidate-tag-token",v=31536e3,y="You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps",b="You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.",E="You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps",x="Your `getStaticProps` function did not return an object. Did you forget to add a `return`?",_="Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?",P="The `unstable_revalidate` property is available for general use.\nPlease use `revalidate` instead.",R="can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member",w={shared:"shared",reactServerComponents:"rsc",serverSideRendering:"ssr",actionBrowser:"action-browser",apiNode:"api-node",apiEdge:"api-edge",middleware:"middleware",instrument:"instrument",edgeAsset:"edge-asset",appPagesBrowser:"app-pages-browser",pagesDirBrowser:"pages-dir-browser",pagesDirEdge:"pages-dir-edge",pagesDirNode:"pages-dir-node"};({...w,GROUP:{builtinReact:[w.reactServerComponents,w.actionBrowser],serverOnly:[w.reactServerComponents,w.actionBrowser,w.instrument,w.middleware],neutralTarget:[w.apiNode,w.apiEdge],clientOnly:[w.serverSideRendering,w.appPagesBrowser],bundled:[w.reactServerComponents,w.actionBrowser,w.serverSideRendering,w.appPagesBrowser,w.shared,w.instrument,w.middleware],appPages:[w.reactServerComponents,w.serverSideRendering,w.appPagesBrowser,w.actionBrowser]}})},"./dist/esm/lib/format-dynamic-import-path.js"(e,t,r){"use strict";r.r(t),r.d(t,{formatDynamicImportPath:()=>s});var a=r("path"),n=r.n(a);let i=require("url"),s=(e,t)=>{let r=n().isAbsolute(t)?t:n().join(e,t);return(0,i.pathToFileURL)(r).toString()}},"./dist/esm/lib/picocolors.js"(e,t,r){"use strict";var a;r.d(t,{Cr:()=>c,D9:()=>h,GC:()=>p,ON:()=>f,wL:()=>d,wv:()=>u});let{env:n,stdout:i}=(null==(a=globalThis)?void 0:a.process)??{},s=n&&!n.NO_COLOR&&(n.FORCE_COLOR||(null==i?void 0:i.isTTY)&&!n.CI&&"dumb"!==n.TERM),o=(e,t,r,a)=>{let n=e.substring(0,a)+r,i=e.substring(a+t.length),s=i.indexOf(t);return~s?n+o(i,t,r,s):n+i},l=(e,t,r=e)=>s?a=>{let n=""+a,i=n.indexOf(t,e.length);return~i?e+o(n,t,r,i)+t:e+n+t}:String,c=l("\x1b[1m","\x1b[22m","\x1b[22m\x1b[1m");l("\x1b[2m","\x1b[22m","\x1b[22m\x1b[2m"),l("\x1b[3m","\x1b[23m"),l("\x1b[4m","\x1b[24m"),l("\x1b[7m","\x1b[27m"),l("\x1b[8m","\x1b[28m"),l("\x1b[9m","\x1b[29m"),l("\x1b[30m","\x1b[39m");let u=l("\x1b[31m","\x1b[39m"),d=l("\x1b[32m","\x1b[39m"),h=l("\x1b[33m","\x1b[39m");l("\x1b[34m","\x1b[39m");let p=l("\x1b[35m","\x1b[39m");l("\x1b[38;2;173;127;168m","\x1b[39m"),l("\x1b[36m","\x1b[39m");let f=l("\x1b[37m","\x1b[39m");l("\x1b[90m","\x1b[39m"),l("\x1b[40m","\x1b[49m"),l("\x1b[41m","\x1b[49m"),l("\x1b[42m","\x1b[49m"),l("\x1b[43m","\x1b[49m"),l("\x1b[44m","\x1b[49m"),l("\x1b[45m","\x1b[49m"),l("\x1b[46m","\x1b[49m"),l("\x1b[47m","\x1b[49m")},"./dist/esm/server/api-utils/index.js"(e,t,r){"use strict";r.d(t,{C4:()=>d,Gx:()=>i,Ic:()=>s,PW:()=>l,Uc:()=>o,wE:()=>u});var a=r("./dist/esm/server/web/spec-extension/adapters/headers.js"),n=r("./dist/esm/lib/constants.js");function i(e,t){let r=a.o.from(e.headers);return{isOnDemandRevalidate:r.get(n.kz)===t.previewModeId,revalidateOnlyGenerated:r.has(n.r4)}}r("../lib/trace/tracer"),r("./dist/esm/server/lib/trace/constants.js");let s="__prerender_bypass",o="__next_preview_data",l=Symbol(o),c=Symbol(s);function u(e,t={}){if(c in e)return e;let{serialize:a}=r("./dist/compiled/cookie/index.js"),n=e.getHeader("Set-Cookie");return e.setHeader("Set-Cookie",[..."string"==typeof n?[n]:Array.isArray(n)?n:[],a(s,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0}),a(o,"",{expires:new Date(0),httpOnly:!0,sameSite:"none",secure:!0,path:"/",...void 0!==t.path?{path:t.path}:void 0})]),Object.defineProperty(e,c,{value:!0,enumerable:!1}),e}function d({req:e},t,r){let a={configurable:!0,enumerable:!0},n={...a,writable:!0};Object.defineProperty(e,t,{...a,get:()=>{let a=r();return Object.defineProperty(e,t,{...n,value:a}),a},set:r=>{Object.defineProperty(e,t,{...n,value:r})}})}},"./dist/esm/server/api-utils/node/try-get-preview-data.js"(e,t,r){"use strict";r.r(t),r.d(t,{tryGetPreviewData:()=>s});var a=r("./dist/esm/server/api-utils/index.js"),n=r("./dist/esm/server/web/spec-extension/cookies.js"),i=r("./dist/esm/server/web/spec-extension/adapters/headers.js");function s(e,t,s,o){var l,c;let u;if(s&&(0,a.Gx)(e,s).isOnDemandRevalidate)return!1;if(a.PW in e)return e[a.PW];let d=i.o.from(e.headers),h=new n.tm(d),p=null==(l=h.get(a.Ic))?void 0:l.value,f=null==(c=h.get(a.Uc))?void 0:c.value;if(p&&!f&&p===s.previewModeId){let t={};return Object.defineProperty(e,a.PW,{value:t,enumerable:!1}),t}if(!p&&!f)return!1;if(!p||!f||p!==s.previewModeId)return o||(0,a.wE)(t),!1;try{u=r("next/dist/compiled/jsonwebtoken").verify(f,s.previewModeSigningKey)}catch{return(0,a.wE)(t),!1}let{decryptWithSecret:m}=r("./dist/esm/server/crypto-utils.js"),g=m(Buffer.from(s.previewModeEncryptionKey),u.data);try{let t=JSON.parse(g);return Object.defineProperty(e,a.PW,{value:t,enumerable:!1}),t}catch{return!1}}},"./dist/esm/server/crypto-utils.js"(e,t,r){"use strict";r.r(t),r.d(t,{decryptWithSecret:()=>o,encryptWithSecret:()=>s});var a=r("crypto"),n=r.n(a);let i="aes-256-gcm";function s(e,t){let r=n().randomBytes(16),a=n().randomBytes(64),s=n().pbkdf2Sync(e,a,1e5,32,"sha512"),o=n().createCipheriv(i,s,r),l=Buffer.concat([o.update(t,"utf8"),o.final()]),c=o.getAuthTag();return Buffer.concat([a,r,c,l]).toString("hex")}function o(e,t){let r=Buffer.from(t,"hex"),a=r.slice(0,64),s=r.slice(64,80),o=r.slice(80,96),l=r.slice(96),c=n().pbkdf2Sync(e,a,1e5,32,"sha512"),u=n().createDecipheriv(i,c,s);return u.setAuthTag(o),u.update(l)+u.final("utf8")}},"./dist/esm/server/lib/lru-cache.js"(e,t,r){"use strict";r.d(t,{q:()=>i});class a{constructor(e,t,r){this.prev=null,this.next=null,this.key=e,this.data=t,this.size=r}}class n{constructor(){this.prev=null,this.next=null}}class i{constructor(e,t,r){this.cache=new Map,this.totalSize=0,this.maxSize=e,this.calculateSize=t,this.onEvict=r,this.head=new n,this.tail=new n,this.head.next=this.tail,this.tail.prev=this.head}addToHead(e){e.prev=this.head,e.next=this.head.next,this.head.next.prev=e,this.head.next=e}removeNode(e){e.prev.next=e.next,e.next.prev=e.prev}moveToHead(e){this.removeNode(e),this.addToHead(e)}removeTail(){let e=this.tail.prev;return this.removeNode(e),e}set(e,t){let r=(null==this.calculateSize?void 0:this.calculateSize.call(this,t))??1;if(r<=0)throw Object.defineProperty(Error(`LRUCache: calculateSize returned ${r}, but size must be > 0. Items with size 0 would never be evicted, causing unbounded cache growth.`),"__NEXT_ERROR_CODE",{value:"E1045",enumerable:!1,configurable:!0});if(r>this.maxSize)return console.warn("Single item size exceeds maxSize"),!1;let n=this.cache.get(e);if(n)n.data=t,this.totalSize=this.totalSize-n.size+r,n.size=r,this.moveToHead(n);else{let n=new a(e,t,r);this.cache.set(e,n),this.addToHead(n),this.totalSize+=r}for(;this.totalSize>this.maxSize&&this.cache.size>0;){let e=this.removeTail();this.cache.delete(e.key),this.totalSize-=e.size,null==this.onEvict||this.onEvict.call(this,e.key,e.data)}return!0}has(e){return this.cache.has(e)}get(e){let t=this.cache.get(e);if(t)return this.moveToHead(t),t.data}*[Symbol.iterator](){let e=this.head.next;for(;e&&e!==this.tail;){let t=e;yield[t.key,t.data],e=e.next}}remove(e){let t=this.cache.get(e);t&&(this.removeNode(t),this.cache.delete(e),this.totalSize-=t.size)}get size(){return this.cache.size}get currentSize(){return this.totalSize}}},"./dist/esm/server/lib/node-fs-methods.js"(e,t,r){"use strict";r.d(t,{e:()=>i});let a=require("fs");var n=r.n(a);let i={existsSync:n().existsSync,readFile:n().promises.readFile,readFileSync:n().readFileSync,writeFile:(e,t)=>n().promises.writeFile(e,t),mkdir:e=>n().promises.mkdir(e,{recursive:!0}),stat:e=>n().promises.stat(e)}},"./dist/esm/server/lib/trace/constants.js"(e,t,r){"use strict";r.d(t,{Fx:()=>s,Wc:()=>l,vr:()=>o});var a,n,i,s=((a=s||{}).compression="NextNodeServer.compression",a.getBuildId="NextNodeServer.getBuildId",a.createComponentTree="NextNodeServer.createComponentTree",a.clientComponentLoading="NextNodeServer.clientComponentLoading",a.getLayoutOrPageModule="NextNodeServer.getLayoutOrPageModule",a.generateStaticRoutes="NextNodeServer.generateStaticRoutes",a.generateFsStaticRoutes="NextNodeServer.generateFsStaticRoutes",a.generatePublicRoutes="NextNodeServer.generatePublicRoutes",a.generateImageRoutes="NextNodeServer.generateImageRoutes.route",a.sendRenderResult="NextNodeServer.sendRenderResult",a.proxyRequest="NextNodeServer.proxyRequest",a.runApi="NextNodeServer.runApi",a.render="NextNodeServer.render",a.renderHTML="NextNodeServer.renderHTML",a.imageOptimizer="NextNodeServer.imageOptimizer",a.getPagePath="NextNodeServer.getPagePath",a.getRoutesManifest="NextNodeServer.getRoutesManifest",a.findPageComponents="NextNodeServer.findPageComponents",a.getFontManifest="NextNodeServer.getFontManifest",a.getServerComponentManifest="NextNodeServer.getServerComponentManifest",a.getRequestHandler="NextNodeServer.getRequestHandler",a.renderToHTML="NextNodeServer.renderToHTML",a.renderError="NextNodeServer.renderError",a.renderErrorToHTML="NextNodeServer.renderErrorToHTML",a.render404="NextNodeServer.render404",a.startResponse="NextNodeServer.startResponse",a.route="route",a.onProxyReq="onProxyReq",a.apiResolver="apiResolver",a.internalFetch="internalFetch",a),o=((n=o||{}).getServerSideProps="Render.getServerSideProps",n.getStaticProps="Render.getStaticProps",n.renderToString="Render.renderToString",n.renderDocument="Render.renderDocument",n.createBodyResult="Render.createBodyResult",n),l=((i=l||{}).renderToString="AppRender.renderToString",i.renderToReadableStream="AppRender.renderToReadableStream",i.getBodyResult="AppRender.getBodyResult",i.fetch="AppRender.fetch",i)},"./dist/esm/server/node-environment-extensions/process-error-handlers.js"(e,t,r){"use strict";r.r(t),r.d(t,{installProcessErrorHandlers:()=>s});let a=Symbol.for("react.postpone");function n(e){return"object"==typeof e&&null!==e&&e.$$typeof===a}let i=globalThis;function s(e){i.nextInitializedProcessErrorHandlers||(i.nextInitializedProcessErrorHandlers=!0,e&&(process.removeAllListeners("uncaughtException"),process.removeAllListeners("unhandledRejection")),process.on("unhandledRejection",e=>{n(e)||console.error(e)}),process.on("rejectionHandled",()=>{}),process.on("uncaughtException",e=>{n(e)||console.error(e)}))}},"./dist/esm/server/post-process.js"(e,t,r){"use strict";function a(e){return null!=e}async function n(e,t){for(let n of[t.optimizeCss?async e=>{let a=new(r("critters"))({ssrMode:!0,reduceInlineStyles:!1,path:t.distDir,publicPath:`${t.assetPrefix}/_next/`,preload:"media",fonts:!1,logLevel:process.env.CRITTERS_LOG_LEVEL||"warn",...t.optimizeCss});return await a.process(e)}:null].filter(a))n&&(e=await n(e));return e}r.d(t,{F:()=>n})},"./dist/esm/server/web/spec-extension/adapters/headers.js"(e,t,r){"use strict";r.d(t,{o:()=>i});class a{static get(e,t,r){let a=Reflect.get(e,t,r);return"function"==typeof a?a.bind(e):a}static set(e,t,r,a){return Reflect.set(e,t,r,a)}static has(e,t){return Reflect.has(e,t)}static deleteProperty(e,t){return Reflect.deleteProperty(e,t)}}class n extends Error{constructor(){super("Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers")}static callable(){throw new n}}class i extends Headers{constructor(e){super(),this.headers=new Proxy(e,{get(t,r,n){if("symbol"==typeof r)return a.get(t,r,n);let i=r.toLowerCase(),s=Object.keys(e).find(e=>e.toLowerCase()===i);if(void 0!==s)return a.get(t,s,n)},set(t,r,n,i){if("symbol"==typeof r)return a.set(t,r,n,i);let s=r.toLowerCase(),o=Object.keys(e).find(e=>e.toLowerCase()===s);return a.set(t,o??r,n,i)},has(t,r){if("symbol"==typeof r)return a.has(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0!==i&&a.has(t,i)},deleteProperty(t,r){if("symbol"==typeof r)return a.deleteProperty(t,r);let n=r.toLowerCase(),i=Object.keys(e).find(e=>e.toLowerCase()===n);return void 0===i||a.deleteProperty(t,i)}})}static seal(e){return new Proxy(e,{get(e,t,r){switch(t){case"append":case"delete":case"set":return n.callable;default:return a.get(e,t,r)}}})}merge(e){return Array.isArray(e)?e.join(", "):e}static from(e){return e instanceof Headers?e:new i(e)}append(e,t){let r=this.headers[e];"string"==typeof r?this.headers[e]=[r,t]:Array.isArray(r)?r.push(t):this.headers[e]=t}delete(e){delete this.headers[e]}get(e){let t=this.headers[e];return void 0!==t?this.merge(t):null}has(e){return void 0!==this.headers[e]}set(e,t){this.headers[e]=t}forEach(e,t){for(let[r,a]of this.entries())e.call(t,a,r,this)}*entries(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase(),r=this.get(t);yield[t,r]}}*keys(){for(let e of Object.keys(this.headers)){let t=e.toLowerCase();yield t}}*values(){for(let e of Object.keys(this.headers)){let t=this.get(e);yield t}}[Symbol.iterator](){return this.entries()}}},"./dist/esm/server/web/spec-extension/cookies.js"(e,t,r){"use strict";r.d(t,{tm:()=>a.RequestCookies});var a=r("./dist/compiled/@edge-runtime/cookies/index.js")},"./dist/esm/shared/lib/isomorphic/path.js"(e,t,r){e.exports=r("path")},"./dist/esm/shared/lib/modern-browserslist-target.js"(e){e.exports=["chrome 111","edge 111","firefox 111","safari 16.4"]},"./dist/server/ReactDOMServerPages.js"(e,t,r){"use strict";let a;try{a=r("react-dom/server.edge")}catch(e){if("MODULE_NOT_FOUND"!==e.code&&"ERR_PACKAGE_PATH_NOT_EXPORTED"!==e.code)throw e;a=r("react-dom/server.browser")}e.exports=a},"../lib/router-utils/instrumentation-globals.external.js"(e){"use strict";e.exports=require("next/dist/server/lib/router-utils/instrumentation-globals.external.js")},"../lib/trace/tracer"(e){"use strict";e.exports=require("next/dist/server/lib/trace/tracer")},"../load-manifest.external"(e){"use strict";e.exports=require("next/dist/server/load-manifest.external.js")},critters(e){"use strict";e.exports=require("critters")},"next/dist/compiled/jsonwebtoken"(e){"use strict";e.exports=require("next/dist/compiled/jsonwebtoken")},"react-dom/server.browser"(e){"use strict";e.exports=require("react-dom/server.browser")},"react-dom/server.edge"(e){"use strict";e.exports=require("react-dom/server.edge")},crypto(e){"use strict";e.exports=require("crypto")},"node:path"(e){"use strict";e.exports=require("node:path")},path(e){"use strict";e.exports=require("path")}},a={};function n(e){var t=a[e];if(void 0!==t)return t.exports;var i=a[e]={exports:{}};return r[e](i,i.exports,n),i.exports}n.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return n.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,n.t=function(r,a){if(1&a&&(r=this(r)),8&a||"object"==typeof r&&r&&(4&a&&r.__esModule||16&a&&"function"==typeof r.then))return r;var i=Object.create(null);n.r(i);var s={};e=e||[null,t({}),t([]),t(t)];for(var o=2&a&&r;("object"==typeof o||"function"==typeof o)&&!~e.indexOf(o);o=t(o))Object.getOwnPropertyNames(o).forEach(e=>{s[e]=()=>r[e]});return s.default=()=>r,n.d(i,s),i},n.d=(e,t)=>{for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})};var i={};(()=>{"use strict";let e,t,r;n.r(i),n.d(i,{PagesRouteModule:()=>rE,default:()=>r_,renderToHTML:()=>rv,vendored:()=>rx});var a,s,o,l,c={};n.r(c),n.d(c,{HeadManagerContext:()=>tL});var u={};n.r(u),n.d(u,{LoadableContext:()=>tU});var d={};n.r(d),n.d(d,{default:()=>tW});var h={};n.r(h),n.d(h,{RouterContext:()=>tV});var p={};n.r(p),n.d(p,{HtmlContext:()=>tJ,useHtmlContext:()=>tK});var f={};n.r(f),n.d(f,{ImageConfigContext:()=>t0});var m={};n.r(m),n.d(m,{NavigationPromisesContext:()=>t7,PathParamsContext:()=>t5,PathnameContext:()=>t6,ReadonlyURLSearchParams:()=>t9,SearchParamsContext:()=>t8,createDevToolsInstrumentedPromise:()=>re});var g={};n.r(g),n.d(g,{AppRouterContext:()=>rr,GlobalLayoutRouterContext:()=>rn,LayoutRouterContext:()=>ra,MissingSlotContext:()=>rs,TemplateContext:()=>ri});var v={};n.r(v),n.d(v,{ServerInsertedHTMLContext:()=>ry,useServerInsertedHTML:()=>rb});var y={};n.r(y),n.d(y,{AppRouterContext:()=>g,HeadManagerContext:()=>c,HooksClientContext:()=>m,HtmlContext:()=>p,ImageConfigContext:()=>f,Loadable:()=>d,LoadableContext:()=>u,RouterContext:()=>h,ServerInsertedHtml:()=>v}),require("next/dist/build/adapter/setup-node-env.external.js"),n("./dist/esm/shared/lib/modern-browserslist-target.js");let b="build-manifest.json";function E(e){let t=function(e){let t;try{t=new URL(e,"http://n")}catch{}return t}(e);if(!t)return;let r={};for(let e of t.searchParams.keys()){let a=t.searchParams.getAll(e);r[e]=a.length>1?a:a[0]}return{query:r,hash:t.hash,search:t.search,path:t.pathname,pathname:t.pathname,href:`${t.pathname}${t.search}${t.hash}`,host:"",hostname:"",auth:"",protocol:"",slashes:null,port:""}}[...process?.features?.typescript?["next.config.mts"]:[]],Symbol("polyfills");let x=new WeakMap;function _(e,t){let r;if(!t)return{pathname:e};let a=x.get(t);a||(a=t.map(e=>e.toLowerCase()),x.set(t,a));let n=e.split("/",2);if(!n[1])return{pathname:e};let i=n[1].toLowerCase(),s=a.indexOf(i);return s<0?{pathname:e}:(r=t[s],{pathname:e=e.slice(r.length+1)||"/",detectedLocale:r})}function P(e){return e.startsWith("/")?e:`/${e}`}function R(e){return P(e.split("/").reduce((e,t,r,a)=>t?"("===t[0]&&t.endsWith(")")||"@"===t[0]||("page"===t||"route"===t)&&r===a.length-1?e:`${e}/${t}`:e,""))}function w(e){return e.replace(/\.rsc($|\?)/,"$1")}let C=["(..)(..)","(.)","(..)","(...)"];function S(e){return void 0!==e.split("/").find(e=>C.find(t=>e.startsWith(t)))}let O=/\/[^/]*\[[^/]+\][^/]*(?=\/|$)/,T=/\/\[[^/]+\](?=\/|$)/;function A(e,t=!0){return(S(e)&&(e=function(e){let t,r,a;for(let n of e.split("/"))if(r=C.find(e=>n.startsWith(e))){[t,a]=e.split(r,2);break}if(!t||!r||!a)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Must be in the format //(..|...|..)(..)/`),"__NEXT_ERROR_CODE",{value:"E269",enumerable:!1,configurable:!0});switch(t=R(t),r){case"(.)":a="/"===t?`/${a}`:t+"/"+a;break;case"(..)":if("/"===t)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..) marker at the root level, use (.) instead.`),"__NEXT_ERROR_CODE",{value:"E207",enumerable:!1,configurable:!0});a=t.split("/").slice(0,-1).concat(a).join("/");break;case"(...)":a="/"+a;break;case"(..)(..)":let n=t.split("/");if(n.length<=2)throw Object.defineProperty(Error(`Invalid interception route: ${e}. Cannot use (..)(..) marker at the root level or one level up.`),"__NEXT_ERROR_CODE",{value:"E486",enumerable:!1,configurable:!0});a=n.slice(0,-2).concat(a).join("/");break;default:throw Object.defineProperty(Error("Invariant: unexpected marker"),"__NEXT_ERROR_CODE",{value:"E112",enumerable:!1,configurable:!0})}return{interceptingRoute:t,interceptedRoute:a}}(e).interceptedRoute),t)?T.test(e):O.test(e)}function j(e){let t=e.indexOf("#"),r=e.indexOf("?"),a=r>-1&&(t<0||r-1?{pathname:e.substring(0,a?r:t),query:a?e.substring(r,t>-1?t:void 0):"",hash:t>-1?e.slice(t):""}:{pathname:e,query:"",hash:""}}function D(e,t){if("string"!=typeof e)return!1;let{pathname:r}=j(e);return r===t||r.startsWith(t+"/")}function $(e,t){if(!D(e,t))return e;let r=e.slice(t.length);return r.startsWith("/")?r:`/${r}`}var N=n("./dist/compiled/path-to-regexp/index.js"),k=n("./dist/esm/lib/constants.js");let I=/[|\\{}()[\]^$+*?.-]/,M=/[|\\{}()[\]^$+*?.-]/g;function F(e){return I.test(e)?e.replace(M,"\\$&"):e}function L(e){return e.replace(/\/$/,"")||"/"}class U extends Error{constructor(e,t){super(`Invariant: ${e.endsWith(".")?e:e+"."} This is a bug in Next.js.`,t),this.name="InvariantError"}}let H=/^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/;function q(e){let t=e.startsWith("[")&&e.endsWith("]");t&&(e=e.slice(1,-1));let r=e.startsWith("...");return r&&(e=e.slice(3)),{key:e,repeat:r,optional:t}}function z(e,{includeSuffix:t=!1,includePrefix:r=!1,excludeOptionalTrailingSlash:a=!1}={}){let{parameterizedRoute:n,groups:i}=function(e,t,r){let a={},n=1,i=[];for(let s of L(e).slice(1).split("/")){let e=C.find(e=>s.startsWith(e)),o=s.match(H);if(e&&o&&o[2]){let{key:t,optional:r,repeat:s}=q(o[2]);a[t]={pos:n++,repeat:s,optional:r},i.push(`/${F(e)}([^/]+?)`)}else if(o&&o[2]){let{key:e,repeat:t,optional:s}=q(o[2]);a[e]={pos:n++,repeat:t,optional:s},r&&o[1]&&i.push(`/${F(o[1])}`);let l=t?s?"(?:/(.+?))?":"/(.+?)":"/([^/]+?)";r&&o[1]&&(l=l.substring(1)),i.push(l)}else i.push(`/${F(s)}`);t&&o&&o[3]&&i.push(F(o[3]))}return{parameterizedRoute:i.join(""),groups:a}}(e,t,r),s=n;return a||(s+="(?:/)?"),{re:RegExp(`^${s}$`),groups:i}}function X({interceptionMarker:e,getSafeRouteKey:t,segment:r,routeKeys:a,keyPrefix:n,backreferenceDuplicateKeys:i}){let s,{key:o,optional:l,repeat:c}=q(r),u=o.replace(/\W/g,"");n&&(u=`${n}${u}`);let d=!1;(0===u.length||u.length>30)&&(d=!0),isNaN(parseInt(u.slice(0,1)))||(d=!0),d&&(u=t());let h=u in a;n?a[u]=`${n}${o}`:a[u]=o;let p=e?F(e):"";return s=h&&i?`\\k<${u}>`:c?`(?<${u}>.+?)`:`(?<${u}>[^/]+?)`,{key:o,pattern:l?`(?:/${p}${s})?`:`/${p}${s}`,cleanedKey:u,optional:l,repeat:c}}function G(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function B(e){return e.finished||e.headersSent}async function W(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await W(t.Component,t.ctx)}:{};let a=await e.getInitialProps(t);if(r&&B(r))return a;if(!a)throw Object.defineProperty(Error(`"${G(e)}.getInitialProps()" should resolve to an object. But found "${a}" instead.`),"__NEXT_ERROR_CODE",{value:"E1025",enumerable:!1,configurable:!0});return a}"undefined"!=typeof performance&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class V extends Error{}class J extends Error{}let K="_NEXTSEP_";function Z(e){return"string"==typeof e&&!!(/\/\(\.{1,3}\):[^/\s]+/.test(e)||/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(e))}function Y(e){let t=e;return(t=t.replace(/(\([^)]*\)):([^/\s]+)/g,`$1${K}:$2`)).replace(/:([^:/\s)]+)(?=:)/g,`:$1${K}`)}function Q(e){return e.replace(RegExp(`\\)${K}`,"g"),")")}function ee(e,t,r){if("string"!=typeof e)return(0,N.pathToRegexp)(e,t,r);let a=Z(e),n=a?Y(e):e;try{return(0,N.pathToRegexp)(n,t,r)}catch(n){if(!a)try{let a=Y(e);return(0,N.pathToRegexp)(a,t,r)}catch(e){}throw n}}function et(e,t){let r=Z(e),a=r?Y(e):e;try{let e=(0,N.compile)(a,t);if(r)return t=>Q(e(t));return e}catch(a){if(!r)try{let r=Y(e),a=(0,N.compile)(r,t);return e=>Q(a(e))}catch(e){}throw a}}function er({re:e,groups:t}){var r;return r=r=>{let a=e.exec(r);if(!a)return!1;let n=e=>{try{return decodeURIComponent(e)}catch{throw Object.defineProperty(new V("failed to decode param"),"__NEXT_ERROR_CODE",{value:"E528",enumerable:!1,configurable:!0})}},i={};for(let[e,r]of Object.entries(t)){let t=a[r.pos];void 0!==t&&(r.repeat?i[e]=t.split("/").map(e=>n(e)):i[e]=n(t))}return i},e=>{let t=r(e);if(!t)return!1;let a={};for(let[e,r]of Object.entries(t))"string"==typeof r?a[e]=r.replace(RegExp(`^${K}`),""):Array.isArray(r)?a[e]=r.map(e=>"string"==typeof e?e.replace(RegExp(`^${K}`),""):e):a[e]=r;return a}}function ea(e){let t={};for(let[r,a]of e.entries()){let e=t[r];void 0===e?t[r]=a:Array.isArray(e)?e.push(a):t[r]=[e,a]}return t}function en(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function ei(e){return function(){let{cookie:t}=e;if(!t)return{};let{parse:r}=n("./dist/compiled/cookie/index.js");return r(Array.isArray(t)?t.join("; "):t)}}function es(e){return e.replace(/__ESC_COLON_/gi,":")}function eo(e,t){if(!e.includes(":"))return e;for(let r of Object.keys(t))e.includes(`:${r}`)&&(e=e.replace(RegExp(`:${r}\\*`,"g"),`:${r}--ESCAPED_PARAM_ASTERISKS`).replace(RegExp(`:${r}\\?`,"g"),`:${r}--ESCAPED_PARAM_QUESTION`).replace(RegExp(`:${r}\\+`,"g"),`:${r}--ESCAPED_PARAM_PLUS`).replace(RegExp(`:${r}(?!\\w)`,"g"),`--ESCAPED_PARAM_COLON${r}`));return e=e.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g,"\\$1").replace(/--ESCAPED_PARAM_PLUS/g,"+").replace(/--ESCAPED_PARAM_COLON/g,":").replace(/--ESCAPED_PARAM_QUESTION/g,"?").replace(/--ESCAPED_PARAM_ASTERISKS/g,"*"),et(`/${e}`,{validate:!1})(t).slice(1)}function el(e){for(let t of[k.AA,k.h])if(e!==t&&e.startsWith(t))return e.substring(t.length);return null}function ec(e){try{return decodeURIComponent(e)}catch{return e}}let eu=/https?|ftp|gopher|file/;function ed(e,t){for(let r in delete e.nextInternalLocale,e){let a=r!==k.AA&&r.startsWith(k.AA),n=r!==k.h&&r.startsWith(k.h);(a||n||t.includes(r))&&delete e[r]}}function eh(e,t,r){if(e){for(let a of(r&&(r=r.toLowerCase()),e))if(t===a.domain?.split(":",1)[0].toLowerCase()||r===a.defaultLocale.toLowerCase()||a.locales?.some(e=>e.toLowerCase()===r))return a}}function ep(e,t){let r;if(t?.host&&!Array.isArray(t.host))r=t.host.toString().split(":",1)[0];else{if(!e.hostname)return;r=e.hostname}return r.toLowerCase()}var ef=n("./dist/esm/server/api-utils/index.js");function em(e){return D(e||"/","/_next/data")&&"/index"===(e=e.replace(/\/_next\/data\/[^/]{1,}/,"").replace(/\.json$/,""))?"/":e}let eg=Symbol.for("NextInternalRequestMeta");function ev(e,t){let r=e[eg]||{};return"string"==typeof t?r[t]:r}function ey(e,t,r){let a=ev(e);return a[t]=r,e[eg]=a,a}function eb(e){let t=/^\/index(\/|$)/.test(e)&&!A(e)?`/index${e}`:"/"===e?"/index":P(e);{let{posix:e}=n("path"),r=e.normalize(t);if(r!==t)throw new J(`Requested and resolved page mismatch: ${t} ${r}`)}return t}function eE(e){return e.replace(/\\/g,"/")}let ex=["ico","jpg","jpeg","png","svg"],e_=["jpg","jpeg","png"],eP=["jpg","jpeg","png","gif"],eR=["jpg","jpeg","png","gif"],ew=(e,t)=>t&&0!==t.length?`(?:\\.(${e.join("|")})|(\\.(${t.join("|")})))`:`(\\.(?:${e.join("|")}))`,eC=/^[\\/]favicon\.ico$/,eS=/^[\\/]robots\.txt$/,eO=/^[\\/]manifest\.json$/,eT=/^[\\/]manifest\.webmanifest$/,eA=/[\\/]sitemap\.xml$/,ej=new Map;class eD{constructor(){let e,t;this.promise=new Promise((r,a)=>{e=r,t=a}),this.resolve=e,this.reject=t}}class e${constructor(e,t=e=>e()){this.cacheKeyFn=e,this.schedulerFn=t,this.pending=new Map}static create(e){return new e$(null==e?void 0:e.cacheKeyFn,null==e?void 0:e.schedulerFn)}async batch(e,t){let r=this.cacheKeyFn?await this.cacheKeyFn(e):e;if(null===r)return t({resolve:e=>Promise.resolve(e),key:e});let a=this.pending.get(r);if(a)return a;let{promise:n,resolve:i,reject:s}=new eD;return this.pending.set(r,n),this.schedulerFn(async()=>{try{let r=await t({resolve:i,key:e});i(r)}catch(e){s(e)}finally{this.pending.delete(r)}}),n}}var eN=n("./dist/esm/server/lib/lru-cache.js"),ek=n("./dist/esm/build/output/log.js");let eI=e=>{Promise.resolve().then(()=>{process.nextTick(e)})};var eM=((a={}).APP_PAGE="APP_PAGE",a.APP_ROUTE="APP_ROUTE",a.PAGES="PAGES",a.FETCH="FETCH",a.REDIRECT="REDIRECT",a.IMAGE="IMAGE",a),eF=((s={}).APP_PAGE="APP_PAGE",s.APP_ROUTE="APP_ROUTE",s.PAGES="PAGES",s.FETCH="FETCH",s.IMAGE="IMAGE",s),eL=n("../lib/trace/tracer"),eU=n("./dist/esm/server/lib/trace/constants.js");function eH(){}new Uint8Array([60,104,116,109,108]),new Uint8Array([60,104,101,97,100]),new Uint8Array([60,98,111,100,121]),new Uint8Array([60,47,104,101,97,100,62]),new Uint8Array([60,47,98,111,100,121,62]),new Uint8Array([60,47,104,116,109,108,62]),new Uint8Array([60,47,98,111,100,121,62,60,47,104,116,109,108,62]),new Uint8Array([60,109,101,116,97,32,110,97,109,101,61,34,194,171,110,120,116,45,105,99,111,110,194,187,34]);let eq=new TextEncoder;function ez(e){return new ReadableStream({start(t){t.enqueue(eq.encode(e)),t.close()}})}function eX(e){return new ReadableStream({start(t){t.enqueue(e),t.close()}})}async function eG(e,t){let r=new TextDecoder("utf-8",{fatal:!0}),a="";for await(let n of e){if(null==t?void 0:t.aborted)return a;a+=r.decode(n,{stream:!0})}return a+r.decode()}function eB(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:n}=j(e);return`${t}${r}${a}${n}`}function eW(e,t){if(!e.startsWith("/")||!t)return e;let{pathname:r,query:a,hash:n}=j(e);return`${r}${t}${a}${n}`}let eV=/^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/;function eJ(e,t){let r=new URL(String(e),t&&String(t));return eV.test(r.hostname)&&(r.hostname="localhost"),r}let eK=Symbol("NextURLInternal");class eZ{constructor(e,t,r){let a,n;"object"==typeof t&&"pathname"in t||"string"==typeof t?(a=t,n=r||{}):n=r||t||{},this[eK]={url:eJ(e,a??n.base),options:n,basePath:""},this.analyze()}analyze(){var e,t,r,a,n;let i=function(e,t){let{basePath:r,i18n:a,trailingSlash:n}=t.nextConfig??{},i={pathname:e,trailingSlash:"/"!==e?e.endsWith("/"):n};r&&D(i.pathname,r)&&(i.pathname=$(i.pathname,r),i.basePath=r);let s=i.pathname;if(i.pathname.startsWith("/_next/data/")&&i.pathname.endsWith(".json")){let e=i.pathname.replace(/^\/_next\/data\//,"").replace(/\.json$/,"").split("/");i.buildId=e[0],s="index"!==e[1]?`/${e.slice(1).join("/")}`:"/",!0===t.parseData&&(i.pathname=s)}if(a){let e=t.i18nProvider?t.i18nProvider.analyze(i.pathname):_(i.pathname,a.locales);i.locale=e.detectedLocale,i.pathname=e.pathname??i.pathname,!e.detectedLocale&&i.buildId&&(e=t.i18nProvider?t.i18nProvider.analyze(s):_(s,a.locales)).detectedLocale&&(i.locale=e.detectedLocale)}return i}(this[eK].url.pathname,{nextConfig:this[eK].options.nextConfig,parseData:!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE,i18nProvider:this[eK].options.i18nProvider}),s=ep(this[eK].url,this[eK].options.headers);this[eK].domainLocale=this[eK].options.i18nProvider?this[eK].options.i18nProvider.detectDomainLocale(s):eh(null==(t=this[eK].options.nextConfig)||null==(e=t.i18n)?void 0:e.domains,s);let o=(null==(r=this[eK].domainLocale)?void 0:r.defaultLocale)||(null==(n=this[eK].options.nextConfig)||null==(a=n.i18n)?void 0:a.defaultLocale);this[eK].url.pathname=i.pathname,this[eK].defaultLocale=o,this[eK].basePath=i.basePath??"",this[eK].buildId=i.buildId,this[eK].locale=i.locale??o,this[eK].trailingSlash=i.trailingSlash}formatPathname(){var e;let t;return t=function(e,t,r,a){if(!t||t===r)return e;let n=e.toLowerCase();return!a&&(D(n,"/api")||D(n,`/${t.toLowerCase()}`))?e:eB(e,`/${t}`)}((e={basePath:this[eK].basePath,buildId:this[eK].buildId,defaultLocale:this[eK].options.forceLocale?void 0:this[eK].defaultLocale,locale:this[eK].locale,pathname:this[eK].url.pathname,trailingSlash:this[eK].trailingSlash}).pathname,e.locale,e.buildId?void 0:e.defaultLocale,e.ignorePrefix),(e.buildId||!e.trailingSlash)&&(t=L(t)),e.buildId&&(t=eW(eB(t,`/_next/data/${e.buildId}`),"/"===e.pathname?"index.json":".json")),t=eB(t,e.basePath),!e.buildId&&e.trailingSlash?t.endsWith("/")?t:eW(t,"/"):L(t)}formatSearch(){return this[eK].url.search}get buildId(){return this[eK].buildId}set buildId(e){this[eK].buildId=e}get locale(){return this[eK].locale??""}set locale(e){var t,r;if(!this[eK].locale||!(null==(r=this[eK].options.nextConfig)||null==(t=r.i18n)?void 0:t.locales.includes(e)))throw Object.defineProperty(TypeError(`The NextURL configuration includes no locale "${e}"`),"__NEXT_ERROR_CODE",{value:"E597",enumerable:!1,configurable:!0});this[eK].locale=e}get defaultLocale(){return this[eK].defaultLocale}get domainLocale(){return this[eK].domainLocale}get searchParams(){return this[eK].url.searchParams}get host(){return this[eK].url.host}set host(e){this[eK].url.host=e}get hostname(){return this[eK].url.hostname}set hostname(e){this[eK].url.hostname=e}get port(){return this[eK].url.port}set port(e){this[eK].url.port=e}get protocol(){return this[eK].url.protocol}set protocol(e){this[eK].url.protocol=e}get href(){let e=this.formatPathname(),t=this.formatSearch();return`${this.protocol}//${this.host}${e}${t}${this.hash}`}set href(e){this[eK].url=eJ(e),this.analyze()}get origin(){return this[eK].url.origin}get pathname(){return this[eK].url.pathname}set pathname(e){this[eK].url.pathname=e}get hash(){return this[eK].url.hash}set hash(e){this[eK].url.hash=e}get search(){return this[eK].url.search}set search(e){this[eK].url.search=e}get password(){return this[eK].url.password}set password(e){this[eK].url.password=e}get username(){return this[eK].url.username}set username(e){this[eK].url.username=e}get basePath(){return this[eK].basePath}set basePath(e){this[eK].basePath=e.startsWith("/")?e:`/${e}`}toString(){return this.href}toJSON(){return this.href}[Symbol.for("edge-runtime.inspect.custom")](){return{href:this.href,origin:this.origin,protocol:this.protocol,username:this.username,password:this.password,host:this.host,hostname:this.hostname,port:this.port,pathname:this.pathname,search:this.search,searchParams:this.searchParams,hash:this.hash}}clone(){return new eZ(String(this),this[eK].options)}}n("./dist/esm/server/web/spec-extension/cookies.js"),Symbol("internal request"),Request,Symbol.for("edge-runtime.inspect.custom");let eY="ResponseAborted";class eQ extends Error{constructor(...e){super(...e),this.name=eY}}let e0=0,e1=0,e2=0;function e3(e){return(null==e?void 0:e.name)==="AbortError"||(null==e?void 0:e.name)===eY}async function e4(e,t,r){try{let a,{errored:n,destroyed:i}=t;if(n||i)return;let s=(a=new AbortController,t.once("close",()=>{t.writableFinished||a.abort(new eQ)}),a),o=function(e,t){let r=!1,a=new eD;function n(){a.resolve()}e.on("drain",n),e.once("close",()=>{e.off("drain",n),a.resolve()});let i=new eD;return e.once("finish",()=>{i.resolve()}),new WritableStream({write:async t=>{if(!r){if(r=!0,"performance"in globalThis&&process.env.NEXT_OTEL_PERFORMANCE_PREFIX){let e=function(e={}){let t=0===e0?void 0:{clientComponentLoadStart:e0,clientComponentLoadTimes:e1,clientComponentLoadCount:e2};return e.reset&&(e0=0,e1=0,e2=0),t}();e&&performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`,{start:e.clientComponentLoadStart,end:e.clientComponentLoadStart+e.clientComponentLoadTimes})}e.flushHeaders(),(0,eL.getTracer)().trace(eU.Fx.startResponse,{spanName:"start response"},()=>void 0)}try{let r=e.write(t);"flush"in e&&"function"==typeof e.flush&&e.flush(),r||(await a.promise,a=new eD)}catch(t){throw e.end(),Object.defineProperty(Error("failed to write chunk to response",{cause:t}),"__NEXT_ERROR_CODE",{value:"E321",enumerable:!1,configurable:!0})}},abort:t=>{e.writableFinished||e.destroy(t)},close:async()=>{if(t&&await t,!e.writableFinished)return e.end(),i.promise}})}(t,r);await e.pipeTo(o,{signal:s.signal})}catch(e){if(e3(e))return;throw Object.defineProperty(Error("failed to pipe response",{cause:e}),"__NEXT_ERROR_CODE",{value:"E180",enumerable:!1,configurable:!0})}}class e9{static #e=this.EMPTY=new e9(null,{metadata:{},contentType:null});static fromStatic(e,t){return new e9(e,{metadata:{},contentType:t})}constructor(e,{contentType:t,waitUntil:r,metadata:a}){this.response=e,this.contentType=t,this.metadata=a,this.waitUntil=r}assignMetadata(e){Object.assign(this.metadata,e)}get isNull(){return null===this.response}get isDynamic(){return"string"!=typeof this.response}toUnchunkedString(e=!1){if(null===this.response)return"";if("string"!=typeof this.response){if(!e)throw Object.defineProperty(new U("dynamic responses cannot be unchunked. This is a bug in Next.js"),"__NEXT_ERROR_CODE",{value:"E732",enumerable:!1,configurable:!0});return eG(this.readable)}return this.response}get readable(){return null===this.response?new ReadableStream({start(e){e.close()}}):"string"==typeof this.response?ez(this.response):Buffer.isBuffer(this.response)?eX(this.response):Array.isArray(this.response)?function(...e){if(0===e.length)return new ReadableStream({start(e){e.close()}});if(1===e.length)return e[0];let{readable:t,writable:r}=new TransformStream,a=e[0].pipeTo(r,{preventClose:!0}),n=1;for(;nt.pipeTo(r,{preventClose:!0}))}let i=e[n];return(a=a.then(()=>i.pipeTo(r))).catch(eH),t}(...this.response):this.response}coerce(){return null===this.response?[]:"string"==typeof this.response?[ez(this.response)]:Array.isArray(this.response)?this.response:Buffer.isBuffer(this.response)?[eX(this.response)]:[this.response]}pipeThrough(e){this.response=this.readable.pipeThrough(e)}unshift(e){this.response=this.coerce(),this.response.unshift(e)}push(e){this.response=this.coerce(),this.response.push(e)}async pipeTo(e){try{await this.readable.pipeTo(e,{preventClose:!0}),this.waitUntil&&await this.waitUntil,await e.close()}catch(t){if(e3(t))return void await e.abort(t);throw t}}async pipeToNodeResponse(e){await e4(this.readable,e,this.waitUntil)}}var e8=((o={}).PAGES="PAGES",o.PAGES_API="PAGES_API",o.APP_PAGE="APP_PAGE",o.APP_ROUTE="APP_ROUTE",o.IMAGE="IMAGE",o);async function e6(e){var t,r;return{...e,value:(null==(t=e.value)?void 0:t.kind)===eM.PAGES?{kind:eM.PAGES,html:await e.value.html.toUnchunkedString(!0),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===eM.APP_PAGE?{kind:eM.APP_PAGE,html:await e.value.html.toUnchunkedString(!0),postponed:e.value.postponed,rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,segmentData:e.value.segmentData}:e.value}}async function e5(e){var t,r;return e?{isMiss:e.isMiss,isStale:e.isStale,cacheControl:e.cacheControl,isFallback:e.isFallback,value:(null==(t=e.value)?void 0:t.kind)===eM.PAGES?{kind:eM.PAGES,html:e9.fromStatic(e.value.html,k.j9),pageData:e.value.pageData,headers:e.value.headers,status:e.value.status}:(null==(r=e.value)?void 0:r.kind)===eM.APP_PAGE?{kind:eM.APP_PAGE,html:e9.fromStatic(e.value.html,k.j9),rscData:e.value.rscData,headers:e.value.headers,status:e.value.status,postponed:e.value.postponed,segmentData:e.value.segmentData}:e.value}:null}function e7(e,t){if(!e)return t;let r=parseInt(e,10);return Number.isFinite(r)&&r>0?r:t}let te=e7(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL,1e4),tt=e7(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE,150),tr="__ttl_sentinel__";function ta(e,t){return`${e}\0${t??tr}`}class tn{constructor(e,t=tt,r=te){this.getBatcher=e$.create({cacheKeyFn:({key:e,isOnDemandRevalidate:t})=>`${e}-${t?"1":"0"}`,schedulerFn:eI}),this.revalidateBatcher=e$.create({schedulerFn:eI}),this.evictedInvocationIDs=new Set,this.minimal_mode=e,this.maxSize=t,this.ttl=r,this.cache=new eN.q(t,void 0,e=>{let t=function(e){let t=e.lastIndexOf("\0");if(-1===t)return;let r=e.slice(t+1);return r===tr?void 0:r}(e);if(t){if(this.evictedInvocationIDs.size>=100){let e=this.evictedInvocationIDs.values().next().value;e&&this.evictedInvocationIDs.delete(e)}this.evictedInvocationIDs.add(t)}})}async get(e,t,r){if(!e)return t({hasResolved:!1,previousCacheEntry:null});if(this.minimal_mode){let t=ta(e,r.invocationID),a=this.cache.get(t);if(a){if(void 0!==r.invocationID)return e5(a.entry);let e=Date.now();if(a.expiresAt>e)return e5(a.entry);this.cache.remove(t)}r.invocationID&&this.evictedInvocationIDs.has(r.invocationID)&&(0,ek.mc)(`Response cache entry was evicted for invocation ${r.invocationID}. Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`)}let{incrementalCache:a,isOnDemandRevalidate:n=!1,isFallback:i=!1,isRoutePPREnabled:s=!1,isPrefetch:o=!1,waitUntil:l,routeKind:c,invocationID:u}=r,d=await this.getBatcher.batch({key:e,isOnDemandRevalidate:n},({resolve:r})=>{let d=this.handleGet(e,t,{incrementalCache:a,isOnDemandRevalidate:n,isFallback:i,isRoutePPREnabled:s,isPrefetch:o,routeKind:c,invocationID:u},r);return l&&l(d),d});return e5(d)}async handleGet(e,t,r,a){let n=null,i=!1;try{if((n=this.minimal_mode?null:await r.incrementalCache.get(e,{kind:function(e){switch(e){case e8.PAGES:return eF.PAGES;case e8.APP_PAGE:return eF.APP_PAGE;case e8.IMAGE:return eF.IMAGE;case e8.APP_ROUTE:return eF.APP_ROUTE;case e8.PAGES_API:throw Object.defineProperty(Error(`Unexpected route kind ${e}`),"__NEXT_ERROR_CODE",{value:"E64",enumerable:!1,configurable:!0});default:return e}}(r.routeKind),isRoutePPREnabled:r.isRoutePPREnabled,isFallback:r.isFallback}))&&!r.isOnDemandRevalidate&&(a(n),i=!0,!n.isStale||r.isPrefetch))return n;let s=await this.revalidate(e,r.incrementalCache,r.isRoutePPREnabled,r.isFallback,t,n,null!==n&&!r.isOnDemandRevalidate,void 0,r.invocationID);if(!s){if(this.minimal_mode){let t=ta(e,r.invocationID);this.cache.remove(t)}return null}return r.isOnDemandRevalidate,s}catch(e){if(i)return console.error(e),null;throw e}}async revalidate(e,t,r,a,n,i,s,o,l){return this.revalidateBatcher.batch(e,()=>{let c=this.handleRevalidate(e,t,r,a,n,i,s,l);return o&&o(c),c})}async handleRevalidate(e,t,r,a,n,i,s,o){try{let l=await n({hasResolved:s,previousCacheEntry:i,isRevalidating:!0});if(!l)return null;let c=await e6({...l,isMiss:!i});if(c.cacheControl)if(this.minimal_mode){let t=ta(e,o);this.cache.set(t,{entry:c,expiresAt:Date.now()+this.ttl})}else await t.set(e,c.value,{cacheControl:c.cacheControl,isRoutePPREnabled:r,isFallback:a});return c}catch(n){if(null==i?void 0:i.cacheControl){let n=Math.min(Math.max(i.cacheControl.revalidate||3,3),30),s=void 0===i.cacheControl.expire?void 0:Math.max(n+3,i.cacheControl.expire);await t.set(e,i.value,{cacheControl:{revalidate:n,expire:s},isRoutePPREnabled:r,isFallback:a})}throw n}}}var ti=n("./dist/esm/shared/lib/isomorphic/path.js"),ts=n.n(ti);let to=require("next/dist/server/lib/incremental-cache/tags-manifest.external.js");class tl{constructor(e){this.fs=e,this.tasks=[]}findOrCreateTask(e){for(let t of this.tasks)if(t[0]===e)return t;let t=this.fs.mkdir(e);t.catch(()=>{});let r=[e,t,[]];return this.tasks.push(r),r}append(e,t){let r=this.findOrCreateTask(ts().dirname(e)),a=r[1].then(()=>this.fs.writeFile(e,t));a.catch(()=>{}),r[2].push(a)}wait(){return Promise.all(this.tasks.flatMap(e=>e[2]))}}let tc=require("next/dist/server/lib/incremental-cache/memory-cache.external.js");class tu{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor(e){this.fs=e.fs,this.flushToDisk=e.flushToDisk,this.serverDistDir=e.serverDistDir,this.revalidatedTags=e.revalidatedTags,e.maxMemoryCacheSize?tu.memoryCache?tu.debug&&console.log("FileSystemCache: memory store already initialized"):(tu.debug&&console.log("FileSystemCache: using memory store for fetch cache"),tu.memoryCache=(0,tc.getMemoryCache)(e.maxMemoryCacheSize)):tu.debug&&console.log("FileSystemCache: not using memory store for fetch cache")}resetRequestCache(){}async revalidateTag(e,t){if(e="string"==typeof e?[e]:e,tu.debug&&console.log("FileSystemCache: revalidateTag",e,t),0===e.length)return;let r=Date.now();for(let a of e){let e=to.tagsManifest.get(a)||{};if(t){let n={...e};n.stale=r,void 0!==t.expire&&(n.expired=r+1e3*t.expire),to.tagsManifest.set(a,n)}else to.tagsManifest.set(a,{...e,expired:r})}}async get(...e){var t,r,a,n,i,s,o,l,c;let[u,d]=e,{kind:h}=d,p=null==(t=tu.memoryCache)?void 0:t.get(u);if(tu.debug&&(h===eF.FETCH?console.log("FileSystemCache: get",u,d.tags,h,!!p):console.log("FileSystemCache: get",u,h,!!p)),!p)try{if(h===eF.APP_ROUTE){let e=this.getFilePath(`${u}.body`,eF.APP_ROUTE),t=await this.fs.readFile(e),{mtime:r}=await this.fs.stat(e),a=JSON.parse(await this.fs.readFile(e.replace(/\.body$/,k.EP),"utf8"));p={lastModified:r.getTime(),value:{kind:eM.APP_ROUTE,body:t,headers:a.headers,status:a.status}}}else{let e=this.getFilePath(h===eF.FETCH?u:`${u}.html`,h),t=await this.fs.readFile(e,"utf8"),{mtime:r}=await this.fs.stat(e);if(h===eF.FETCH){let{tags:e,fetchIdx:a,fetchUrl:n}=d;if(!this.flushToDisk)return null;let i=r.getTime(),l=JSON.parse(t);if(p={lastModified:i,value:l},(null==(s=p.value)?void 0:s.kind)===eM.FETCH){let t=null==(o=p.value)?void 0:o.tags;(null==e?void 0:e.every(e=>null==t?void 0:t.includes(e)))||(tu.debug&&console.log("FileSystemCache: tags vs storedTags mismatch",e,t),await this.set(u,p.value,{fetchCache:!0,tags:e,fetchIdx:a,fetchUrl:n}))}}else if(h===eF.APP_PAGE){let a,n,i;try{a=JSON.parse(await this.fs.readFile(e.replace(/\.html$/,k.EP),"utf8"))}catch{}if(null==a?void 0:a.segmentPaths){let e=new Map;n=e;let t=u+k.mH;await Promise.all(a.segmentPaths.map(async r=>{let a=this.getFilePath(t+r+k.tz,eF.APP_PAGE);try{e.set(r,await this.fs.readFile(a))}catch{}}))}d.isFallback||d.isRoutePPREnabled&&(null==a?void 0:a.postponed)!=null||(i=await this.fs.readFile(this.getFilePath(`${u}${k.RM}`,eF.APP_PAGE))),p={lastModified:r.getTime(),value:{kind:eM.APP_PAGE,html:t,rscData:i,postponed:null==a?void 0:a.postponed,headers:null==a?void 0:a.headers,status:null==a?void 0:a.status,segmentData:n}}}else if(h===eF.PAGES){let e,a={};d.isFallback||(a=JSON.parse(await this.fs.readFile(this.getFilePath(`${u}${k.x3}`,eF.PAGES),"utf8"))),p={lastModified:r.getTime(),value:{kind:eM.PAGES,html:t,pageData:a,headers:null==e?void 0:e.headers,status:null==e?void 0:e.status}}}else throw Object.defineProperty(Error(`Invariant: Unexpected route kind ${h} in file system cache.`),"__NEXT_ERROR_CODE",{value:"E445",enumerable:!1,configurable:!0})}p&&(null==(l=tu.memoryCache)||l.set(u,p))}catch{return null}if((null==p||null==(r=p.value)?void 0:r.kind)===eM.APP_PAGE||(null==p||null==(a=p.value)?void 0:a.kind)===eM.APP_ROUTE||(null==p||null==(n=p.value)?void 0:n.kind)===eM.PAGES){let e=null==(c=p.value.headers)?void 0:c[k.VC];if("string"==typeof e){let t=e.split(",");if(t.length>0&&(0,to.areTagsExpired)(t,p.lastModified))return tu.debug&&console.log("FileSystemCache: expired tags",t),null}}else if((null==p||null==(i=p.value)?void 0:i.kind)===eM.FETCH){let e=d.kind===eF.FETCH?[...d.tags||[],...d.softTags||[]]:[];if(e.some(e=>this.revalidatedTags.includes(e)))return tu.debug&&console.log("FileSystemCache: was revalidated",e),null;if((0,to.areTagsExpired)(e,p.lastModified))return tu.debug&&console.log("FileSystemCache: expired tags",e),null}return p??null}async set(e,t,r){var a;if(null==(a=tu.memoryCache)||a.set(e,{value:t,lastModified:Date.now()}),tu.debug&&console.log("FileSystemCache: set",e),!this.flushToDisk||!t)return;let n=new tl(this.fs);if(t.kind===eM.APP_ROUTE){let r=this.getFilePath(`${e}.body`,eF.APP_ROUTE);n.append(r,t.body);let a={headers:t.headers,status:t.status,postponed:void 0,segmentPaths:void 0,prefetchHints:void 0};n.append(r.replace(/\.body$/,k.EP),JSON.stringify(a,null,2))}else if(t.kind===eM.PAGES||t.kind===eM.APP_PAGE){let a=t.kind===eM.APP_PAGE,i=this.getFilePath(`${e}.html`,a?eF.APP_PAGE:eF.PAGES);if(n.append(i,t.html),r.fetchCache||r.isFallback||r.isRoutePPREnabled||n.append(this.getFilePath(`${e}${a?k.RM:k.x3}`,a?eF.APP_PAGE:eF.PAGES),a?t.rscData:JSON.stringify(t.pageData)),(null==t?void 0:t.kind)===eM.APP_PAGE){let e;if(t.segmentData){e=[];let r=i.replace(/\.html$/,k.mH);for(let[a,i]of t.segmentData){e.push(a);let t=r+a+k.tz;n.append(t,i)}}let r={headers:t.headers,status:t.status,postponed:t.postponed,segmentPaths:e,prefetchHints:void 0};n.append(i.replace(/\.html$/,k.EP),JSON.stringify(r))}}else if(t.kind===eM.FETCH){let a=this.getFilePath(e,eF.FETCH);n.append(a,JSON.stringify({...t,tags:r.fetchCache?r.tags:[]}))}await n.wait()}getFilePath(e,t){switch(t){case eF.FETCH:return ts().join(this.serverDistDir,"..","cache","fetch-cache",e);case eF.PAGES:return ts().join(this.serverDistDir,"pages",e);case eF.IMAGE:case eF.APP_PAGE:case eF.APP_ROUTE:return ts().join(this.serverDistDir,"app",e);default:throw Object.defineProperty(Error(`Unexpected file path kind: ${t}`),"__NEXT_ERROR_CODE",{value:"E479",enumerable:!1,configurable:!0})}}}function td(e){return e.replace(/(?:\/index)?\/?$/,"")||"/"}let th=require("next/dist/server/lib/incremental-cache/shared-cache-controls.external.js"),tp=require("next/dist/server/app-render/work-unit-async-storage.external.js"),tf=require("next/dist/server/app-render/work-async-storage.external.js");class tm{static #e=this.debug=!!process.env.NEXT_PRIVATE_DEBUG_CACHE;constructor({fs:e,dev:t,flushToDisk:r,minimalMode:a,serverDistDir:n,requestHeaders:i,maxMemoryCacheSize:s,getPrerenderManifest:o,fetchCacheKeyPrefix:l,CurCacheHandler:c,allowedRevalidateHeaderKeys:u}){var d,h,p,f;this.locks=new Map,this.hasCustomCacheHandler=!!c;const m=Symbol.for("@next/cache-handlers"),g=globalThis;if(c)tm.debug&&console.log("IncrementalCache: using custom cache handler",c.name);else{const t=g[m];(null==t?void 0:t.FetchCache)?(c=t.FetchCache,tm.debug&&console.log("IncrementalCache: using global FetchCache cache handler")):e&&n&&(tm.debug&&console.log("IncrementalCache: using filesystem cache handler"),c=tu)}process.env.__NEXT_TEST_MAX_ISR_CACHE&&(s=parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE,10)),this.dev=t,this.disableForTestmode="true"===process.env.NEXT_PRIVATE_TEST_PROXY,this.minimalMode=a,this.requestHeaders=i,this.allowedRevalidateHeaderKeys=u,this.prerenderManifest=o(),this.cacheControls=new th.SharedCacheControls(this.prerenderManifest),this.fetchCacheKeyPrefix=l;let v=[];i[k.kz]===(null==(h=this.prerenderManifest)||null==(d=h.preview)?void 0:d.previewModeId)&&(this.isOnDemandRevalidate=!0),a&&(v=this.revalidatedTags=function(e,t){return"string"==typeof e[k.vS]&&e[k.c1]===t?e[k.vS].split(","):[]}(i,null==(f=this.prerenderManifest)||null==(p=f.preview)?void 0:p.previewModeId)),c&&(this.cacheHandler=new c({dev:t,fs:e,flushToDisk:r,serverDistDir:n,revalidatedTags:v,maxMemoryCacheSize:s,_requestHeaders:i,fetchCacheKeyPrefix:l}))}calculateRevalidate(e,t,r,a){if(r)return Math.floor(performance.timeOrigin+performance.now()-1e3);let n=this.cacheControls.get(td(e)),i=n?n.revalidate:!a&&1;return"number"==typeof i?1e3*i+t:i}_getPathname(e,t){return t?e:eb(e)}resetRequestCache(){var e,t;null==(t=this.cacheHandler)||null==(e=t.resetRequestCache)||e.call(t)}async lock(e){for(;;){let t=this.locks.get(e);if(tm.debug&&console.log("IncrementalCache: lock get",e,!!t),!t)break;await t}let{resolve:t,promise:r}=new eD;return tm.debug&&console.log("IncrementalCache: successfully locked",e),this.locks.set(e,r),()=>{t(),this.locks.delete(e)}}async revalidateTag(e,t){var r;return null==(r=this.cacheHandler)?void 0:r.revalidateTag(e,t)}async generateCacheKey(e,t={}){let r=[],a=new TextEncoder,i=new TextDecoder;if(t.body)if(t.body instanceof Uint8Array)r.push(i.decode(t.body)),t._ogBody=t.body;else if("function"==typeof t.body.getReader){let e=t.body,n=[];try{await e.pipeTo(new WritableStream({write(e){"string"==typeof e?(n.push(a.encode(e)),r.push(e)):(n.push(e),r.push(i.decode(e,{stream:!0})))}})),r.push(i.decode());let s=n.reduce((e,t)=>e+t.length,0),o=new Uint8Array(s),l=0;for(let e of n)o.set(e,l),l+=e.length;t._ogBody=o}catch(e){console.error("Problem reading body",e)}}else if("function"==typeof t.body.keys){let e=t.body;for(let a of(t._ogBody=t.body,new Set([...e.keys()]))){let t=e.getAll(a);r.push(`${a}=${(await Promise.all(t.map(async e=>"string"==typeof e?e:await e.text()))).join(",")}`)}}else if("function"==typeof t.body.arrayBuffer){let e=t.body,a=await e.arrayBuffer();r.push(await e.text()),t._ogBody=new Blob([a],{type:e.type})}else"string"==typeof t.body&&(r.push(t.body),t._ogBody=t.body);let s="function"==typeof(t.headers||{}).keys?Object.fromEntries(t.headers):Object.assign({},t.headers);"traceparent"in s&&delete s.traceparent,"tracestate"in s&&delete s.tracestate;let o=JSON.stringify(["v3",this.fetchCacheKeyPrefix||"",e,t.method,s,t.mode,t.redirect,t.credentials,t.referrer,t.referrerPolicy,t.integrity,t.cache,r]);return n("crypto").createHash("sha256").update(o).digest("hex")}async get(e,t){var r,a,n,i,s,o,l;let c,u;if(t.kind===eF.FETCH){let r=tp.workUnitAsyncStorage.getStore(),a=r?(0,tp.getRenderResumeDataCache)(r):null;if(a){let r=a.fetch.get(e);if((null==r?void 0:r.kind)===eM.FETCH){let a=tf.workAsyncStorage.getStore();if(![...t.tags||[],...t.softTags||[]].some(e=>{var t,r;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==a||null==(r=a.pendingRevalidatedTags)?void 0:r.some(t=>t.tag===e))}))return tm.debug&&console.log("IncrementalCache: rdc:hit",e),{isStale:!1,value:r};tm.debug&&console.log("IncrementalCache: rdc:revalidated-tag",e)}else tm.debug&&console.log("IncrementalCache: rdc:miss",e)}else tm.debug&&console.log("IncrementalCache: rdc:no-resume-data")}if(this.disableForTestmode||this.dev&&(t.kind!==eF.FETCH||"no-cache"===this.requestHeaders["cache-control"]))return null;e=this._getPathname(e,t.kind===eF.FETCH);let d=await (null==(r=this.cacheHandler)?void 0:r.get(e,t));if(t.kind===eF.FETCH){if(!d)return null;if((null==(n=d.value)?void 0:n.kind)!==eM.FETCH)throw Object.defineProperty(new U(`Expected cached value for cache key ${JSON.stringify(e)} to be a "FETCH" kind, got ${JSON.stringify(null==(i=d.value)?void 0:i.kind)} instead.`),"__NEXT_ERROR_CODE",{value:"E653",enumerable:!1,configurable:!0});let r=tf.workAsyncStorage.getStore(),a=[...t.tags||[],...t.softTags||[]];if(a.some(e=>{var t,a;return(null==(t=this.revalidatedTags)?void 0:t.includes(e))||(null==r||null==(a=r.pendingRevalidatedTags)?void 0:a.some(t=>t.tag===e))}))return tm.debug&&console.log("IncrementalCache: expired tag",e),null;let s=tp.workUnitAsyncStorage.getStore();if(s){let t=(0,tp.getPrerenderResumeDataCache)(s);t&&(tm.debug&&console.log("IncrementalCache: rdc:set",e),t.fetch.set(e,d.value))}let o=t.revalidate||d.value.revalidate,l=(performance.timeOrigin+performance.now()-(d.lastModified||0))/1e3>o,c=d.value.data;return(0,to.areTagsExpired)(a,d.lastModified)?null:((0,to.areTagsStale)(a,d.lastModified)&&(l=!0),{isStale:l,value:{kind:eM.FETCH,data:c,revalidate:o}})}if((null==d||null==(a=d.value)?void 0:a.kind)===eM.FETCH)throw Object.defineProperty(new U(`Expected cached value for cache key ${JSON.stringify(e)} not to be a ${JSON.stringify(t.kind)} kind, got "FETCH" instead.`),"__NEXT_ERROR_CODE",{value:"E652",enumerable:!1,configurable:!0});let h=null,{isFallback:p}=t,f=this.cacheControls.get(td(e));if((null==d?void 0:d.lastModified)===-1)c=-1,u=-1*k.eM*1e3;else{let r=performance.timeOrigin+performance.now(),a=(null==d?void 0:d.lastModified)||r;if(void 0===(c=!1!==(u=this.calculateRevalidate(e,a,this.dev??!1,t.isFallback))&&u0&&((0,to.areTagsExpired)(t,a)?c=-1:(0,to.areTagsStale)(t,a)&&(c=!0))}}}return d&&(h={isStale:c,cacheControl:f,revalidateAfter:u,value:d.value,isFallback:p}),!d&&this.prerenderManifest.notFoundRoutes.includes(e)&&(h={isStale:c,value:null,cacheControl:f,revalidateAfter:u,isFallback:p},this.set(e,h.value,{...t,cacheControl:f})),h}async set(e,t,r){if((null==t?void 0:t.kind)===eM.FETCH){let r=tp.workUnitAsyncStorage.getStore(),a=r?(0,tp.getPrerenderResumeDataCache)(r):null;a&&(tm.debug&&console.log("IncrementalCache: rdc:set",e),a.fetch.set(e,t))}if(this.disableForTestmode||this.dev&&!r.fetchCache)return;e=this._getPathname(e,r.fetchCache);let a=JSON.stringify(t).length;if(r.fetchCache&&a>2097152&&!this.hasCustomCacheHandler&&!r.isImplicitBuildTimeCache){let t=`Failed to set Next.js data cache for ${r.fetchUrl||e}, items over 2MB can not be cached (${a} bytes)`;if(this.dev)throw Object.defineProperty(Error(t),"__NEXT_ERROR_CODE",{value:"E1003",enumerable:!1,configurable:!0});console.warn(t);return}try{var n;!r.fetchCache&&r.cacheControl&&this.cacheControls.set(td(e),r.cacheControl),await (null==(n=this.cacheHandler)?void 0:n.set(e,t,r))}catch(t){console.warn("Failed to update prerender cache for",e,t)}}}function tg(e){if(0===e)return{get:()=>Promise.resolve(void 0),set:()=>Promise.resolve(),refreshTags:()=>Promise.resolve(),getExpiration:()=>Promise.resolve(0),updateTags:()=>Promise.resolve()};let t=new eN.q(e,e=>e.size),r=new Map,a=process.env.NEXT_PRIVATE_DEBUG_CACHE?console.debug.bind(console,"DefaultCacheHandler:"):void 0;return{async get(e){let n=r.get(e);n&&(null==a||a("get",e,"pending"),await n);let i=t.get(e);if(!i){null==a||a("get",e,"not found");return}let s=i.entry;if(performance.timeOrigin+performance.now()>s.timestamp+1e3*s.revalidate){null==a||a("get",e,"expired");return}let o=s.revalidate;if((0,to.areTagsExpired)(s.tags,s.timestamp)){null==a||a("get",e,"had expired tag");return}(0,to.areTagsStale)(s.tags,s.timestamp)&&(null==a||a("get",e,"had stale tag"),o=-1);let[l,c]=s.value.tee();return s.value=c,null==a||a("get",e,"found",{tags:s.tags,timestamp:s.timestamp,expire:s.expire,revalidate:o}),{...s,revalidate:o,value:l}},async set(e,n){null==a||a("set",e,"start");let i=()=>{},s=new Promise(e=>{i=e});r.set(e,s);let o=await n,l=0;try{let[r,n]=o.value.tee();o.value=r;let i=n.getReader();for(let e;!(e=await i.read()).done;)l+=Buffer.from(e.value).byteLength;t.set(e,{entry:o,isErrored:!1,errorRetryCount:0,size:l}),null==a||a("set",e,"done")}catch(t){null==a||a("set",e,"failed",t)}finally{i(),r.delete(e)}},async refreshTags(){},async getExpiration(e){let t=Math.max(...e.map(e=>{let t=to.tagsManifest.get(e);return t&&t.expired||0}),0);return null==a||a("getExpiration",{tags:e,expiration:t}),t},async updateTags(e,t){let r=Math.round(performance.timeOrigin+performance.now());for(let n of(null==a||a("updateTags",{tags:e,timestamp:r}),e)){let e=to.tagsManifest.get(n)||{};if(t){let a={...e};a.stale=r,void 0!==t.expire&&(a.expired=r+1e3*t.expire),to.tagsManifest.set(n,a)}else to.tagsManifest.set(n,{...e,expired:r})}}}}let tv=process.env.NEXT_PRIVATE_DEBUG_CACHE?(e,...t)=>{console.log(`use-cache: ${e}`,...t)}:void 0,ty=Symbol.for("@next/cache-handlers"),tb=Symbol.for("@next/cache-handlers-map"),tE=Symbol.for("@next/cache-handlers-set"),tx=globalThis;function t_(e){return e.default||e}let tP=Symbol.for("@next/router-server-methods"),tR=globalThis;function tw(e){var t,r;return(null==(r=e.has)||null==(t=r[0])?void 0:t.key)==="next-url"}let tC=e=>import(e).then(e=>e.default||e);class tS{constructor({userland:e,definition:t,distDir:r,relativeProjectDir:a}){this.userland=e,this.definition=t,this.isDev=!1,this.distDir=r,this.relativeProjectDir=a}getRouterServerContext(e){var t;let r=ev(e,"hostname"),a=ev(e,"revalidate"),n=ev(e,"render404"),i=ev(e,"relativeProjectDir")||this.relativeProjectDir;return{...null==(t=tR[tP])?void 0:t[i],...void 0!==r?{hostname:r}:{},...void 0!==a?{revalidate:a}:{},...void 0!==n?{render404:n}:{}}}normalizeUrl(e,t){}async instrumentationOnRequestError(e,...t){{let{join:r}=n("node:path"),a=r(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir),{instrumentationOnRequestError:i}=await Promise.resolve().then(n.t.bind(n,"../lib/router-utils/instrumentation-globals.external.js",23));return i(a,this.distDir,...t)}}loadManifests(e,t){let r;{var a,i;let s;if(!t)throw Object.defineProperty(Error("Invariant: projectDir is required for node runtime"),"__NEXT_ERROR_CODE",{value:"E718",enumerable:!1,configurable:!0});let{loadManifestFromRelativePath:o}=n("../load-manifest.external");eb(e);let l=this.definition.kind===e8.PAGES||this.definition.kind===e8.PAGES_API?"pages":"app",[c,u,d,h,p,f,m,g,v,y,E,x]=[o({projectDir:t,distDir:this.distDir,manifest:"routes-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"prerender-manifest.json",shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:b,shouldCache:!this.isDev}),"/_error"===e?o({projectDir:t,distDir:this.distDir,manifest:`fallback-${b}`,shouldCache:!this.isDev,handleMissing:!0}):{},o({projectDir:t,distDir:this.distDir,manifest:"react-loadable-manifest.json",handleMissing:!0,shouldCache:!this.isDev}),o({projectDir:t,distDir:this.distDir,manifest:"server/next-font-manifest.json",shouldCache:!this.isDev}),"app"!==l||(s=(i=e).replace(/\/route$/,""),i.endsWith("/route")&&function(e,t,r){if(!e||e.length<2)return!1;let a=eE(e),n=!!(eC.test(a)||eS.test(a)||eO.test(a)||eT.test(a)||eA.test(a))||(!!a.includes("robots")||!!a.includes("manifest")||!!a.includes("sitemap")||!!a.includes("icon")||!!a.includes("apple-icon")||!!a.includes("opengraph-image")||!!a.includes("twitter-image")||!!a.includes("favicon"))&&null;if(null!==n)return n;let i=function(e,t){let r=`${e.join(",")}|${t}`,a=ej.get(r);if(a)return a;let n=t?"$":"?$",i="\\d?"+(t?"":"(-\\w{6})?"),s=e.length>0?[...e,"txt"]:["txt"],o=e.length>0?[...e,"webmanifest","json"]:["webmanifest","json"],l=[RegExp(`^[\\\\/]robots${ew(s,null)}${n}`),RegExp(`^[\\\\/]manifest${ew(o,null)}${n}`),RegExp(`[\\\\/]sitemap${ew(["xml"],e)}${n}`),RegExp(`[\\\\/]icon${i}${ew(ex,e)}${n}`),RegExp(`[\\\\/]apple-icon${i}${ew(e_,e)}${n}`),RegExp(`[\\\\/]opengraph-image${i}${ew(eP,e)}${n}`),RegExp(`[\\\\/]twitter-image${i}${ew(eR,e)}${n}`)];return ej.set(r,l),l}(t,r);for(let e=0;enew RegExp(e.regex))}}return r}async loadCustomCacheHandlers(e,t){{let{cacheMaxMemorySize:a,cacheHandlers:i}=t;if(!i||!function(e){if(tx[tb])return null==tv||tv("cache handlers already initialized"),!1;if(null==tv||tv("initializing cache handlers"),tx[tb]=new Map,tx[ty]){let t;tx[ty].DefaultCache?(null==tv||tv('setting "default" cache handler from symbol'),t=tx[ty].DefaultCache):(null==tv||tv('setting "default" cache handler from default'),t=tg(e)),tx[tb].set("default",t),tx[ty].RemoteCache?(null==tv||tv('setting "remote" cache handler from symbol'),tx[tb].set("remote",tx[ty].RemoteCache)):(null==tv||tv('setting "remote" cache handler from default'),tx[tb].set("remote",t))}else{let t=tg(e);null==tv||tv('setting "default" cache handler from default'),tx[tb].set("default",t),null==tv||tv('setting "remote" cache handler from default'),tx[tb].set("remote",t)}return tx[tE]=new Set(tx[tb].values()),!0}(a))return;for(let[t,a]of Object.entries(i)){if(!a)continue;let{formatDynamicImportPath:i}=n("./dist/esm/lib/format-dynamic-import-path.js"),{join:s}=n("node:path"),o=s(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir);var r=t_(await tC(i(`${o}/${this.distDir}`,a)));if(!tx[tb]||!tx[tE])throw Object.defineProperty(Error("Cache handlers not initialized"),"__NEXT_ERROR_CODE",{value:"E649",enumerable:!1,configurable:!0});null==tv||tv('setting cache handler for "%s"',t),tx[tb].set(t,r),tx[tE].add(r)}}}async getIncrementalCache(e,t,r,a){{let i,{cacheHandler:s}=t;if(s){let{formatDynamicImportPath:e}=n("./dist/esm/lib/format-dynamic-import-path.js");i=t_(await tC(e(this.distDir,s)))}let{join:o}=n("node:path"),l=o(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir);await this.loadCustomCacheHandlers(e,t);let c=new tm({fs:n("./dist/esm/server/lib/node-fs-methods.js").e,dev:this.isDev,requestHeaders:e.headers,allowedRevalidateHeaderKeys:t.experimental.allowedRevalidateHeaderKeys,minimalMode:a,serverDistDir:`${l}/${this.distDir}/server`,fetchCacheKeyPrefix:t.experimental.fetchCacheKeyPrefix,maxMemoryCacheSize:t.cacheMaxMemorySize,flushToDisk:!a&&t.experimental.isrFlushToDisk,getPrerenderManifest:()=>r,CurCacheHandler:i});return globalThis.__incrementalCache=c,c}}async onRequestError(e,t,r,a,n){a||((null==n?void 0:n.logErrorWithOriginalStack)?n.logErrorWithOriginalStack(t,"app-dir"):console.error(t)),await this.instrumentationOnRequestError(e,t,{path:e.url||"/",headers:e.headers,method:e.method||"GET"},r)}getNextConfigEdge(e){throw Object.defineProperty(Error("Invariant: getNextConfigEdge must only be called in edge runtime"),"__NEXT_ERROR_CODE",{value:"E968",enumerable:!1,configurable:!0})}async prepare(e,t,{srcPage:r,multiZoneDraftMode:a}){var i,s;let o,l,c,u,d;{let{join:t,relative:r}=n("node:path");o=t(process.cwd(),ev(e,"relativeProjectDir")||this.relativeProjectDir);let a=ev(e,"distDir");a&&(this.distDir=r(o,a));let{ensureInstrumentationRegistered:i}=await Promise.resolve().then(n.t.bind(n,"../lib/router-utils/instrumentation-globals.external.js",23));i(o,this.distDir)}let h=this.loadManifests(r,o),{routesManifest:p,prerenderManifest:f,serverFilesManifest:m}=h,{basePath:g,i18n:v,rewrites:y}=p,b=this.getRouterServerContext(e),x=(null==b?void 0:b.nextConfig)||(null==m?void 0:m.config),P=(null==(i=e.headers["x-forwarded-proto"])?void 0:i.includes("https"))?"https":"http";if(!ev(e,"initURL")){let t=(null==m?void 0:m.config.experimental.trustHostHeader)?`${P}://${e.headers.host||"localhost"}${e.url}`:`${P}://${(null==b?void 0:b.hostname)||"localhost"}${e.url}`;ey(e,"initURL",t),ey(e,"initProtocol",P)}g&&(e.url=$(e.url||"/",g));let O=E(e.url||"/");if(ey(e,"initQuery",{...null==O?void 0:O.query}),!O)return;let T=!1;D(O.pathname||"/","/_next/data")&&(T=!0,O.pathname=em(O.pathname||"/")),this.normalizeUrl(e,O);let j=O.pathname||"/",I={...O.query},M=A(r);v&&(l=_(O.pathname||"/",v.locales)).detectedLocale&&(e.url=`${l.pathname}${O.search}`,j=l.pathname,c||(c=l.detectedLocale));let U=R(r),q=function({page:e,i18n:t,basePath:r,rewrites:a,pageIsDynamic:n,trailingSlash:i,caseSensitive:s}){let o,l,c;if(n){var u;let t,r;r=(t=function(e,t,r,a,n,i={names:{},intercepted:{}}){let s,o=(s=0,()=>{let e="",t=++s;for(;t>0;)e+=String.fromCharCode(97+(t-1)%26),t=Math.floor((t-1)/26);return e}),l={},c=[],u=[];for(let s of(i=structuredClone(i),L(e).slice(1).split("/"))){let e,d=C.some(e=>s.startsWith(e)),h=s.match(H),p=d?h?.[1]:void 0;if(p&&h?.[2]?(e=t?k.h:void 0,i.intercepted[h[2]]=p):e=h?.[2]&&i.intercepted[h[2]]?t?k.h:void 0:t?k.AA:void 0,p&&h&&h[2]){let{key:t,pattern:r,cleanedKey:a,repeat:s,optional:d}=X({getSafeRouteKey:o,interceptionMarker:p,segment:h[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:n});c.push(r),u.push(`/${h[1]}:${i.names[t]??a}${s?d?"*":"+":""}`),i.names[t]??=a}else if(h&&h[2]){a&&h[1]&&(c.push(`/${F(h[1])}`),u.push(`/${h[1]}`));let{key:t,pattern:r,cleanedKey:s,repeat:d,optional:p}=X({getSafeRouteKey:o,segment:h[2],routeKeys:l,keyPrefix:e,backreferenceDuplicateKeys:n}),f=r;a&&h[1]&&(f=f.substring(1)),c.push(f),u.push(`/:${i.names[t]??s}${d?p?"*":"+":""}`),i.names[t]??=s}else c.push(`/${F(s)}`),u.push(`/${s}`);r&&h&&h[3]&&(c.push(F(h[3])),u.push(h[3]))}return{namedParameterizedRoute:c.join(""),routeKeys:l,pathToRegexpPattern:u.join(""),reference:i}}(e,(u={prefixRouteKeys:!1}).prefixRouteKeys,u.includeSuffix??!1,u.includePrefix??!1,u.backreferenceDuplicateKeys??!1,u.reference)).namedParameterizedRoute,u.excludeOptionalTrailingSlash||(r+="(?:/)?"),c=(l=er(o={...z(e,u),namedRegex:`^${r}$`,routeKeys:t.routeKeys,pathToRegexpPattern:t.pathToRegexpPattern,reference:t.reference}))(e)}return{handleRewrites:function(o,c){let u=structuredClone(c),d={},h=u.pathname,p=a=>{var c,p;let f,m,g,v=(c=a.source+(i?"(/)?":""),p={removeUnnamedParams:!0,strict:!0,sensitive:!!s},f=[],m=(0,N.pathToRegexp)(c,f,{delimiter:"/",sensitive:"boolean"==typeof p?.sensitive&&p.sensitive,strict:p?.strict}),g=(0,N.regexpToFunction)(p?.regexModifier?new RegExp(p.regexModifier(m.source),m.flags):m,f),(e,t)=>{if("string"!=typeof e)return!1;let r=g(e);if(!r)return!1;if(p?.removeUnnamedParams)for(let e of f)"number"==typeof e.name&&delete r.params[e.name];return{...t,...r.params}});if(!u.pathname)return!1;let y=v(u.pathname);if((a.has||a.missing)&&y){let e=function(e,t,r=[],a=[]){let n={},i=r=>{let a,i=r.key;switch(r.type){case"header":i=i.toLowerCase(),a=e.headers[i];break;case"cookie":a="cookies"in e?e.cookies[r.key]:ei(e.headers)()[r.key];break;case"query":a=t[i];break;case"host":{let{host:t}=e?.headers||{};a=t?.split(":",1)[0].toLowerCase()}}if(!r.value&&a)return n[function(e){let t="";for(let r=0;r64&&a<91||a>96&&a<123)&&(t+=e[r])}return t}(i)]=a,!0;if(a){let e=RegExp(`^${r.value}$`),t=Array.isArray(a)?a.slice(-1)[0].match(e):a.match(e);if(t)return Array.isArray(t)&&(t.groups?Object.keys(t.groups).forEach(e=>{n[e]=t.groups[e]}):"host"===r.type&&t[0]&&(n.host=t[0])),!0}return!1};return!(!r.every(e=>i(e))||a.some(e=>i(e)))&&n}(o,u.query,a.has,a.missing);e?Object.assign(y,e):y=!1}if(y){let{parsedDestination:i,destQuery:s}=function(e){let t,r,a=function(e){let t=e.destination;for(let r of Object.keys({...e.params,...e.query}))r&&(t=t.replace(RegExp(`:${F(r)}`,"g"),`__ESC_COLON_${r}`));let r=function(e){if(e.startsWith("/"))return function(e,t,r=!0){let a=new URL("http://n"),n=e.startsWith(".")?new URL("http://n"):a,{pathname:i,searchParams:s,search:o,hash:l,href:c,origin:u}=e.startsWith("/")?new URL(`${n.protocol}//${n.host}${e}`):new URL(e,n);if(u!==a.origin)throw Object.defineProperty(Error(`invariant: invalid relative URL, router received ${e}`),"__NEXT_ERROR_CODE",{value:"E159",enumerable:!1,configurable:!0});return{auth:null,host:null,hostname:null,pathname:i,port:null,protocol:null,query:r?ea(s):void 0,search:o,hash:l,href:c.slice(u.length),slashes:null}}(e);let t=new URL(e),r=t.username,a=t.password,n=r?a?`${r}:${a}`:r:null,i=t.pathname,s=t.search;return{auth:n,hash:t.hash,hostname:t.hostname,href:t.href,pathname:i,port:t.port,protocol:t.protocol,query:ea(t.searchParams),search:s,origin:t.origin,slashes:"//"===t.href.slice(t.protocol.length,t.protocol.length+2)}}(t),a=r.pathname;a&&(a=es(a));let n=r.href;n&&(n=es(n));let i=r.hostname;i&&(i=es(i));let s=r.hash;s&&(s=es(s));let o=r.search;o&&(o=es(o));let l=r.origin;return l&&(l=es(l)),{...r,pathname:a,hostname:i,href:n,hash:s,search:o,origin:l}}(e),{hostname:n,query:i,search:s}=a,o=a.pathname;a.hash&&(o=`${o}${a.hash}`);let l=[],c=[];for(let e of(ee(o,c),c))l.push(e.name);if(n){let e=[];for(let t of(ee(n,e),e))l.push(t.name)}let u=et(o,{validate:!1});for(let[r,a]of(n&&(t=et(n,{validate:!1})),Object.entries(i)))Array.isArray(a)?i[r]=a.map(t=>eo(es(t),e.params)):"string"==typeof a&&(i[r]=eo(es(a),e.params));let d=Object.keys(e.params).filter(e=>"nextInternalLocale"!==e);if(e.appendParamsToQuery&&!d.some(e=>l.includes(e)))for(let t of d)t in i||(i[t]=e.params[t]);if(S(o))for(let t of o.split("/")){let r=C.find(e=>t.startsWith(e));if(r){"(..)(..)"===r?(e.params["0"]="(..)",e.params["1"]="(..)"):e.params["0"]=r;break}}try{let[n,i]=(r=u(e.params)).split("#",2);t&&(a.hostname=t(e.params)),a.pathname=n,a.hash=`${i?"#":""}${i||""}`,a.search=s?eo(s,e.params):""}catch(e){if(e.message.match(/Expected .*? to not repeat, but got an array/))throw Object.defineProperty(Error("To use a multi-match in the destination you must add `*` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match"),"__NEXT_ERROR_CODE",{value:"E329",enumerable:!1,configurable:!0});throw e}return a.query={...e.query,...a.query},{newUrl:r,destQuery:i,parsedDestination:a}}({appendParamsToQuery:!0,destination:a.destination,params:y,query:u.query});if(i.protocol)return!0;if(Object.assign(d,s,y),Object.assign(u.query,i.query),delete i.query,Object.assign(u,i),!(h=u.pathname))return!1;if(r&&(h=h.replace(RegExp(`^${r}`),"")||"/"),t){let e=_(h,t.locales);h=e.pathname,u.query.nextInternalLocale=e.detectedLocale||y.nextInternalLocale}if(h===e)return!0;if(n&&l){let e=l(h);if(e)return u.query={...u.query,...e},!0}}return!1};for(let e of a.beforeFiles||[])p(e);if(h!==e){let t,r=!1;for(let e of a.afterFiles||[])if(r=p(e))break;if(!r&&!((t=L(h||""))===L(e)||(null==l?void 0:l(t)))){for(let e of a.fallback||[])if(r=p(e))break}}return{rewriteParams:d,rewrittenParsedUrl:u}},defaultRouteRegex:o,dynamicRouteMatcher:l,defaultRouteMatches:c,normalizeQueryParams:function(e,t){for(let[r,a]of(delete e.nextInternalLocale,Object.entries(e))){let n=el(r);n&&(delete e[r],t.add(n),void 0!==a&&(e[n]=Array.isArray(a)?a.map(e=>ec(e)):ec(a)))}},getParamsFromRouteMatches:function(e){if(!o)return null;let{groups:t,routeKeys:r}=o,a=er({re:{exec:e=>{let a=Object.fromEntries(new URLSearchParams(e));for(let[e,t]of Object.entries(a)){let r=el(e);r&&(a[r]=t,delete a[e])}let n={};for(let e of Object.keys(r)){let i=r[e];if(!i)continue;let s=t[i],o=a[e];if(!s.optional&&!o)return null;n[s.pos]=o}return n}},groups:t})(e);return a||null},normalizeDynamicRouteParams:(e,t)=>{if(!o||!c)return{params:{},hasValidParams:!1};var r=o,a=c;let n={};for(let i of Object.keys(r.groups)){let s=e[i];"string"==typeof s?s=w(s):Array.isArray(s)&&(s=s.map(w));let o=a[i],l=r.groups[i].optional;if((Array.isArray(o)?o.some(e=>Array.isArray(s)?s.some(t=>t.includes(e)):null==s?void 0:s.includes(e)):null==s?void 0:s.includes(o))||void 0===s&&!(l&&t))return{params:{},hasValidParams:!1};l&&(!s||Array.isArray(s)&&1===s.length&&("index"===s[0]||s[0]===`[[...${i}]]`)||"index"===s||s===`[[...${i}]]`)&&(s=void 0,delete e[i]),s&&"string"==typeof s&&r.groups[i].repeat&&(s=s.split("/")),s&&(n[i]=s)}return{params:n,hasValidParams:!0}},normalizeCdnUrl:(e,t)=>(function(e,t){let r=E(e.url);if(!r)return e.url;delete r.search,ed(r.query,t),e.url=function(e){let{auth:t,hostname:r}=e,a=e.protocol||"",n=e.pathname||"",i=e.hash||"",s=e.query||"",o=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?o=t+e.host:r&&(o=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(o+=":"+e.port)),s&&"object"==typeof s&&(s=String(function(e){let t=new URLSearchParams;for(let[r,a]of Object.entries(e))if(Array.isArray(a))for(let e of a)t.append(r,en(e));else t.set(r,en(a));return t}(s)));let l=e.search||s&&`?${s}`||"";return a&&!a.endsWith(":")&&(a+=":"),e.slashes||(!a||eu.test(a))&&!1!==o?(o="//"+(o||""),n&&"/"!==n[0]&&(n="/"+n)):o||(o=""),i&&"#"!==i[0]&&(i="#"+i),l&&"?"!==l[0]&&(l="?"+l),n=n.replace(/[?#]/g,encodeURIComponent),l=l.replace("#","%23"),`${a}${o}${n}${l}${i}`}(r)})(e,t),interpolateDynamicPath:(e,t)=>(function(e,t,r){if(!r)return e;for(let a of Object.keys(r.groups)){let n,{optional:i,repeat:s}=r.groups[a],o=`[${s?"...":""}${a}]`;i&&(o=`[${o}]`);let l=t[a];((n=Array.isArray(l)?l.map(e=>e&&encodeURIComponent(e)).join("/"):l?encodeURIComponent(l):"")||i)&&(e=e.replaceAll(o,n))}return e})(e,t,o),filterInternalQuery:(e,t)=>ed(e,t)}}({page:U,i18n:v,basePath:g,rewrites:y,pageIsDynamic:M,trailingSlash:process.env.__NEXT_TRAILING_SLASH,caseSensitive:!!p.caseSensitive}),G=eh(null==v?void 0:v.domains,ep(O,e.headers),c);G&&ey(e,"isLocaleDomain",!!G);let B=ev(e,"defaultLocale")||(null==G?void 0:G.defaultLocale)||(null==v?void 0:v.defaultLocale);B&&!c&&(O.pathname=`/${B}${"/"===O.pathname?"":O.pathname}`);let W=ev(e,"locale")||c||B,{rewriteParams:J,rewrittenParsedUrl:K}=q.handleRewrites(e,O),Z=Object.keys(J);Object.assign(O.query,K.query),v&&(O.pathname=_(O.pathname||"/",v.locales).pathname,K.pathname=_(K.pathname||"/",v.locales).pathname);let Y=ev(e,"params");if(!Y&&q.dynamicRouteMatcher){let e=q.dynamicRouteMatcher(em((null==K?void 0:K.pathname)||O.pathname||"/")),t=q.normalizeDynamicRouteParams(e||{},!0);t.hasValidParams&&(Y=t.params)}let Q=ev(e,"query")||{...O.query},eg=new Set,eb=[];if(this.definition.kind===e8.PAGES||this.definition.kind===e8.PAGES_API)for(let e of[...Z,...Object.keys(q.defaultRouteMatches||{})]){let t=Array.isArray(I[e])?I[e].join(""):I[e],r=Array.isArray(Q[e])?Q[e].join(""):Q[e];e in I&&t!==r||eb.push(e)}if(q.normalizeCdnUrl(e,eb),q.normalizeQueryParams(Q,eg),q.filterInternalQuery(I,eb),M){let t,r=q.normalizeDynamicRouteParams(Q,!0),a=q.normalizeDynamicRouteParams(Y||{},!0);if(Q&&Y&&a.hasValidParams&&r.hasValidParams&&eg.size>0&&Object.keys(a.params).length<=Object.keys(r.params).length?(t=r.params,Y=Object.assign(r.params)):t=a.hasValidParams&&Y?Y:r.hasValidParams?Q:{},e.url=q.interpolateDynamicPath(e.url||"/",t),O.pathname=q.interpolateDynamicPath(O.pathname||"/",t),j=q.interpolateDynamicPath(j,t),!Y)if(r.hasValidParams)for(let e in Y=Object.assign({},r.params),q.defaultRouteMatches)delete Q[e];else{let e=null==q.dynamicRouteMatcher?void 0:q.dynamicRouteMatcher.call(q,em((null==l?void 0:l.pathname)||O.pathname||"/"));e&&(Y=Object.assign({},e))}}for(let e of eg)e in I?I[e]&&Q[e]&&I[e]!==Q[e]&&(Q[e]=I[e]):delete Q[e];let{isOnDemandRevalidate:eE,revalidateOnlyGenerated:ex}=(0,ef.Gx)(e,f.preview),e_=!1;if(t){let{tryGetPreviewData:r}=n("./dist/esm/server/api-utils/node/try-get-preview-data.js");e_=!1!==(u=r(e,t,f.preview,!!a))}if(!x)throw Object.defineProperty(Error("Invariant: nextConfig couldn't be loaded"),"__NEXT_ERROR_CODE",{value:"E969",enumerable:!1,configurable:!0});{let{installProcessErrorHandlers:e}=n("./dist/esm/server/node-environment-extensions/process-error-handlers.js");e(!!x.experimental.removeUncaughtErrorAndRejectionListeners)}let eP=U;A(eP)&&Y&&(eP=q.interpolateDynamicPath(eP,Y)),"/index"===eP&&(eP="/"),t&&e.headers["x-nextjs-data"]&&(!t.statusCode||200===t.statusCode)&&t.setHeader("x-nextjs-matched-path",L(`${W?`/${W}`:""}${U}`));let eR=eP;try{eP=eP.split("/").map(e=>{try{var t;t=decodeURIComponent(e),e=t.replace(RegExp("([/#?]|%(2f|23|3f|5c))","gi"),e=>encodeURIComponent(e))}catch(e){throw Object.defineProperty(new V("Failed to decode path param(s)."),"__NEXT_ERROR_CODE",{value:"E539",enumerable:!1,configurable:!0})}return e}).join("/")}catch(e){}if(ey(e,"resolvedPathname",eP=L(eP)),null==(s=x.experimental)?void 0:s.runtimeServerDeploymentId){if(!process.env.NEXT_DEPLOYMENT_ID)throw Object.defineProperty(Error("process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled"),"__NEXT_ERROR_CODE",{value:"E970",enumerable:!1,configurable:!0});d=process.env.NEXT_DEPLOYMENT_ID}else d=x.deploymentId||"";return{query:Q,originalQuery:I,originalPathname:j,params:Y,parsedUrl:O,locale:W,isNextDataRequest:T,locales:null==v?void 0:v.locales,defaultLocale:B,isDraftMode:e_,previewData:u,pageIsDynamic:M,resolvedPathname:eP,encodedResolvedPathname:eR,isOnDemandRevalidate:eE,revalidateOnlyGenerated:ex,...h,nextConfig:x,routerServerContext:b,deploymentId:d,clientAssetToken:x.experimental.immutableAssetToken||d}}getResponseCache(e){if(!this.responseCache){let t=ev(e,"minimalMode")??!1;this.responseCache=new tn(t)}return this.responseCache}async handleResponse({req:e,nextConfig:t,cacheKey:r,routeKind:a,isFallback:n,prerenderManifest:i,isRoutePPREnabled:s,isOnDemandRevalidate:o,revalidateOnlyGenerated:l,responseGenerator:c,waitUntil:u,isMinimalMode:d}){let h=this.getResponseCache(e),p=await h.get(r,c,{routeKind:a,isFallback:n,isRoutePPREnabled:s,isOnDemandRevalidate:o,isPrefetch:"prefetch"===e.headers.purpose,invocationID:e.headers["x-invocation-id"],incrementalCache:await this.getIncrementalCache(e,t,i,d),waitUntil:u});if(!p&&r&&!(o&&l))throw Object.defineProperty(Error("invariant: cache entry required but not generated"),"__NEXT_ERROR_CODE",{value:"E62",enumerable:!1,configurable:!0});return p}}let tO=require("react/jsx-runtime"),tT=require("react");var tA=n.n(tT),tj=n("./dist/server/ReactDOMServerPages.js"),tD=n.n(tj);let t$=require("styled-jsx");function tN(e){return Object.prototype.toString.call(e)}function tk(e){if("[object Object]"!==tN(e))return!1;let t=Object.getPrototypeOf(e);return null===t||t.hasOwnProperty("isPrototypeOf")}let tI=/^[A-Za-z_$][A-Za-z0-9_$]*$/;class tM extends Error{constructor(e,t,r,a){super(r?`Error serializing \`${r}\` returned from \`${t}\` in "${e}". +Reason: ${a}`:`Error serializing props returned from \`${t}\` in "${e}". +Reason: ${a}`)}}function tF(e,t,r){if(!tk(r))throw Object.defineProperty(new tM(e,t,"",`Props must be returned as a plain object from ${t}: \`{ props: { ... } }\` (received: \`${tN(r)}\`).`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});function a(r,a,n){if(r.has(a))throw Object.defineProperty(new tM(e,t,n,`Circular references cannot be expressed in JSON (references: \`${r.get(a)||"(self)"}\`).`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});r.set(a,n)}return function r(n,i,s){let o=typeof i;if(null===i||"boolean"===o||"number"===o||"string"===o)return!0;if("undefined"===o)throw Object.defineProperty(new tM(e,t,s,"`undefined` cannot be serialized as JSON. Please use `null` or omit this value."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(tk(i)){if(a(n,i,s),Object.entries(i).every(([e,t])=>{let a=tI.test(e)?`${s}.${e}`:`${s}[${JSON.stringify(e)}]`,i=new Map(n);return r(i,e,a)&&r(i,t,a)}))return!0;throw Object.defineProperty(new tM(e,t,s,"invariant: Unknown error encountered in Object."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}if(Array.isArray(i)){if(a(n,i,s),i.every((e,t)=>r(new Map(n),e,`${s}[${t}]`)))return!0;throw Object.defineProperty(new tM(e,t,s,"invariant: Unknown error encountered in Array."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}throw Object.defineProperty(new tM(e,t,s,"`"+o+"`"+("object"===o?` ("${Object.prototype.toString.call(i)}")`:"")+" cannot be serialized as JSON. Please only return JSON serializable data types."),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0})}(new Map,r,"")}let tL=tA().createContext({}),tU=tA().createContext(null),tH=[],tq=[];function tz(e){let t=e(),r={loading:!0,loaded:null,error:null};return r.promise=t.then(e=>(r.loading=!1,r.loaded=e,e)).catch(e=>{throw r.loading=!1,r.error=e,e}),r}class tX{constructor(e,t){this._loadFn=e,this._opts=t,this._callbacks=new Set,this._delay=null,this._timeout=null,this.retry()}promise(){return this._res.promise}retry(){this._clearTimeouts(),this._res=this._loadFn(this._opts.loader),this._state={pastDelay:!1,timedOut:!1};let{_res:e,_opts:t}=this;e.loading&&("number"==typeof t.delay&&(0===t.delay?this._state.pastDelay=!0:this._delay=setTimeout(()=>{this._update({pastDelay:!0})},t.delay)),"number"==typeof t.timeout&&(this._timeout=setTimeout(()=>{this._update({timedOut:!0})},t.timeout))),this._res.promise.then(()=>{this._update({}),this._clearTimeouts()}).catch(e=>{this._update({}),this._clearTimeouts()}),this._update({})}_update(e){this._state={...this._state,error:this._res.error,loaded:this._res.loaded,loading:this._res.loading,...e},this._callbacks.forEach(e=>e())}_clearTimeouts(){clearTimeout(this._delay),clearTimeout(this._timeout)}getCurrentValue(){return this._state}subscribe(e){return this._callbacks.add(e),()=>{this._callbacks.delete(e)}}}function tG(e){let t=Object.assign({loader:null,loading:null,delay:200,timeout:null,webpack:null,modules:null},e),r=null;function a(){if(!r){let e=new tX(tz,t);r={getCurrentValue:e.getCurrentValue.bind(e),subscribe:e.subscribe.bind(e),retry:e.retry.bind(e),promise:e.promise.bind(e)}}return r.promise()}function n(e,n){let i;a(),(i=tA().useContext(tU))&&Array.isArray(t.modules)&&t.modules.forEach(e=>{i(e)});let s=tA().useSyncExternalStore(r.subscribe,r.getCurrentValue,r.getCurrentValue);return tA().useImperativeHandle(n,()=>({retry:r.retry}),[]),tA().useMemo(()=>{var a;return s.loading||s.error?tA().createElement(t.loading,{isLoading:s.loading,pastDelay:s.pastDelay,timedOut:s.timedOut,error:s.error,retry:r.retry}):s.loaded?tA().createElement((a=s.loaded)&&a.default?a.default:a,e):null},[e,s])}return tH.push(a),n.preload=()=>a(),n.displayName="LoadableComponent",tA().forwardRef(n)}function tB(e,t){let r=[];for(;e.length;){let a=e.pop();r.push(a(t))}return Promise.all(r).then(()=>{if(e.length)return tB(e,t)})}tG.preloadAll=()=>new Promise((e,t)=>{tB(tH).then(e,t)}),tG.preloadReady=(e=[])=>new Promise(t=>{let r=()=>t();tB(tq,e).then(r,r)});let tW=tG,tV=tA().createContext(null),tJ=(0,tT.createContext)(void 0);function tK(){let e=(0,tT.useContext)(tJ);if(!e)throw Object.defineProperty(Error(` should not be imported outside of pages/_document. +Read more: https://nextjs.org/docs/messages/no-document-import-in-page`),"__NEXT_ERROR_CODE",{value:"E67",enumerable:!1,configurable:!0});return e}var tZ=((l={})[l.SeeOther=303]="SeeOther",l[l.TemporaryRedirect=307]="TemporaryRedirect",l[l.PermanentRedirect=308]="PermanentRedirect",l);let tY=new Set([301,302,303,307,308]);function tQ(e){return e.statusCode||(e.permanent?tZ.PermanentRedirect:tZ.TemporaryRedirect)}let t0=tA().createContext({deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1});var t1=n("./dist/compiled/strip-ansi/index.js"),t2=n.n(t1);let t3=["_rsc"];class t4 extends Error{constructor(){super("Method unavailable on `ReadonlyURLSearchParams`. Read more: https://nextjs.org/docs/app/api-reference/functions/use-search-params#updating-searchparams")}}class t9 extends URLSearchParams{append(){throw new t4}delete(){throw new t4}set(){throw new t4}sort(){throw new t4}}let t8=(0,tT.createContext)(null),t6=(0,tT.createContext)(null),t5=(0,tT.createContext)(null),t7=(0,tT.createContext)(null);function re(e,t){let r=Promise.resolve(t);return r.status="fulfilled",r.value=t,r.displayName=`${e} (SSR)`,r}function rt({children:e,router:t,...r}){let a=(0,tT.useRef)(r.isAutoExport),n=(0,tT.useMemo)(()=>{let e,r=a.current;if(r&&(a.current=!1),A(t.pathname)&&(t.isFallback||r&&!t.isReady))return null;try{e=new URL(t.asPath,"http://f")}catch(e){return"/"}return e.pathname},[t.asPath,t.isFallback,t.isReady,t.pathname]);return(0,tO.jsx)(t6.Provider,{value:n,children:e})}let rr=tA().createContext(null),ra=tA().createContext(null),rn=tA().createContext(null),ri=tA().createContext(null),rs=tA().createContext(new Set),ro=Symbol.for("NextjsError"),rl=/[&><\u2028\u2029]/g,rc="";function ru(){throw Object.defineProperty(Error('No router instance found. you should only use "next/router" inside the client side of your app. https://nextjs.org/docs/messages/no-router-instance'),"__NEXT_ERROR_CODE",{value:"E1027",enumerable:!1,configurable:!0})}async function rd(e){let t=await tD().renderToReadableStream(e);return await t.allReady,eG(t)}e=n("./dist/esm/server/api-utils/node/try-get-preview-data.js").tryGetPreviewData,t=n("./dist/esm/build/output/log.js").R8,r=n("./dist/esm/server/post-process.js").F;class rh{constructor(e,t,r,{isFallback:a},n,i,s,o,l,c,u,d){this.route=e.replace(/\/$/,"")||"/",this.pathname=e,this.query=t,this.asPath=r,this.isFallback=a,this.basePath=i,this.locale=s,this.locales=o,this.defaultLocale=l,this.isReady=n,this.domainLocales=c,this.isPreview=!!u,this.isLocaleDomain=!!d}push(){ru()}replace(){ru()}reload(){ru()}back(){ru()}forward(){ru()}prefetch(){ru()}beforePopState(){ru()}}function rp(e,t,r){return(0,tO.jsx)(e,{Component:t,...r})}let rf=(e,t)=>{let r=`invalid-${e.toLocaleLowerCase()}-value`;return`Additional keys were returned from \`${e}\`. Properties intended for your component must be nested under the \`props\` key, e.g.: + + return { props: { title: 'My Title', content: '...' } } + +Keys that need to be moved: ${t.join(", ")}. +Read more: https://nextjs.org/docs/messages/${r}`};function rm(e,t,r){let{destination:a,permanent:n,statusCode:i,basePath:s}=e,o=[],l=void 0!==i,c=void 0!==n;c&&l?o.push("`permanent` and `statusCode` can not both be provided"):c&&"boolean"!=typeof n?o.push("`permanent` must be `true` or `false`"):l&&!tY.has(i)&&o.push(`\`statusCode\` must undefined or one of ${[...tY].join(", ")}`);let u=typeof a;"string"!==u&&o.push(`\`destination\` should be string but received ${u}`);let d=typeof s;if("undefined"!==d&&"boolean"!==d&&o.push(`\`basePath\` should be undefined or a false, received ${d}`),o.length>0)throw Object.defineProperty(Error(`Invalid redirect object returned from ${r} for ${t.url} +`+o.join(" and ")+"\nSee more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp"),"__NEXT_ERROR_CODE",{value:"E185",enumerable:!1,configurable:!0})}async function rg(a,n,i,s,o,l,c,u){let d,h,p;(0,ef.C4)({req:a},"cookies",ei(a.headers));let f=c.deploymentId?`?dpl=${c.deploymentId}`:"",m=c.clientAssetToken?`?dpl=${c.clientAssetToken}`:"",g={assetQueryString:m,mutableAssetQueryString:f};s=Object.assign({},s);let{err:v,pageConfig:y={},buildManifest:b,reactLoadableManifest:E,ErrorDebug:x,getStaticProps:_,getStaticPaths:P,getServerSideProps:R,isNextDataRequest:w,params:C,previewProps:S,basePath:O,images:T,runtime:j,isExperimentalCompile:D,expireTime:$}=o,{App:N}=l,I=l.Document,M=o.Component,F=u.isFallback??!1;u.developmentNotFoundSourcePage;var L=s;for(let e of t3)delete L[e];let U=!!_,H=U&&o.isBuildTimePrerendering,q=N.getInitialProps===N.origGetInitialProps,X=!!(null==M?void 0:M.getInitialProps),V=null==M?void 0:M.unstable_scriptLoader,J=A(i),K="/_error"===i&&M.getInitialProps===M.origGetInitialProps;o.isBuildTimePrerendering&&X&&!K&&t(`Detected getInitialProps on page '${i}' while running export. It's recommended to use getStaticProps which has a more correct behavior for static exporting. +Read more: https://nextjs.org/docs/messages/get-initial-props-export`);let Z=!X&&q&&!U&&!R;if(Z&&D&&(n.setHeader("Cache-Control",function({revalidate:e,expire:t}){let r="number"==typeof e&&void 0!==t&&e"beforeInteractive"===e.props.strategy).map(e=>e.props));let el=a.headers["content-security-policy"]||a.headers["content-security-policy-report-only"],ec="string"==typeof el?function(e){var t;let r=e.split(";").map(e=>e.trim()),a=r.find(e=>e.startsWith("script-src"))||r.find(e=>e.startsWith("default-src"));if(!a)return;let n=null==(t=a.split(" ").slice(1).map(e=>e.trim()).find(e=>e.startsWith("'nonce-")&&e.length>8&&e.endsWith("'")))?void 0:t.slice(7,-1);if(n){if(rl.test(n))throw Object.defineProperty(Error("Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters"),"__NEXT_ERROR_CODE",{value:"E440",enumerable:!1,configurable:!0});return n}}(el):void 0,eu=({children:e})=>{var t;return(0,tO.jsx)(rr.Provider,{value:et,children:(0,tO.jsx)(t8.Provider,{value:(t=ee).isReady&&t.query?new URL(t.asPath,"http://n").searchParams:new URLSearchParams,children:(0,tO.jsx)(rt,{router:ee,isAutoExport:Z,children:(0,tO.jsx)(t5.Provider,{value:function(e){if(!e.isReady||!e.query)return null;let t={};for(let r of Object.keys(z(e.pathname).groups))t[r]=e.query[r];return t}(ee),children:(0,tO.jsx)(tV.Provider,{value:ee,children:(0,tO.jsx)(tL.Provider,{value:{updateHead:e=>{en=e},updateScripts:e=>{er=e},scripts:eo,mountedInstances:new Set,nonce:ec},children:(0,tO.jsx)(tU.Provider,{value:e=>es.push(e),children:(0,tO.jsx)(t$.StyleRegistry,{registry:ea,children:(0,tO.jsx)(t0.Provider,{value:T,children:e})})})})})})})})})},ed=()=>null,eh=({children:e})=>(0,tO.jsxs)(tO.Fragment,{children:[(0,tO.jsx)(ed,{}),(0,tO.jsx)(eu,{children:(0,tO.jsxs)(tO.Fragment,{children:[e,(0,tO.jsx)(ed,{})]})})]}),ep={err:v,req:Z?void 0:a,res:Z?void 0:n,pathname:i,query:s,asPath:Y,locale:o.locale,locales:o.locales,defaultLocale:o.defaultLocale,AppTree:e=>(0,tO.jsx)(eh,{children:rp(N,M,{...e,router:ee})}),defaultGetInitialProps:async(e,t={})=>{let{html:r,head:a}=await e.renderPage({enhanceApp:e=>t=>(0,tO.jsx)(e,{...t})}),n=ea.styles({nonce:t.nonce||ec});return ea.flush(),{html:r,head:a,styles:n}}},em=!U&&(o.isBuildTimePrerendering||"");if(h=await W(N,{AppTree:ep.AppTree,Component:M,router:ee,ctx:ep}),(U||R)&&p&&(h.__N_PREVIEW=!0),U&&(h.__N_SSG=!0),U&&!F){let e,t;try{e=await (0,eL.getTracer)().trace(eU.vr.getStaticProps,{spanName:`getStaticProps ${i}`,attributes:{"next.route":i}},()=>_({...J?{params:C}:void 0,...p?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale,revalidateReason:o.isOnDemandRevalidate?"on-demand":H?"build":"stale"}))}catch(e){throw e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.xV),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});let r=Object.keys(e).filter(e=>"revalidate"!==e&&"props"!==e&&"redirect"!==e&&"notFound"!==e);if(r.includes("unstable_revalidate"))throw Object.defineProperty(Error(k.$1),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(rf("getStaticProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});g.isNotFound=!0}if("redirect"in e&&e.redirect&&"object"==typeof e.redirect){if(rm(e.redirect,a,"getStaticProps"),H)throw Object.defineProperty(Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${a.url}) +See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`),"__NEXT_ERROR_CODE",{value:"E497",enumerable:!1,configurable:!0});e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:tQ(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0}if(H&&!g.isNotFound&&!tF(i,"getStaticProps",e.props))throw Object.defineProperty(Error("invariant: getStaticProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E129",enumerable:!1,configurable:!0});if("revalidate"in e){if(e.revalidate&&"export"===o.nextConfigOutput)throw Object.defineProperty(Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'),"__NEXT_ERROR_CODE",{value:"E201",enumerable:!1,configurable:!0});if("number"==typeof e.revalidate)if(Number.isInteger(e.revalidate))if(e.revalidate<=0)throw Object.defineProperty(Error(`A page's revalidate option can not be less than or equal to zero for ${a.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated. + +To never revalidate, you can set revalidate to \`false\` (only ran once at build-time). +To revalidate as soon as possible, you can set the value to \`1\`.`),"__NEXT_ERROR_CODE",{value:"E311",enumerable:!1,configurable:!0});else e.revalidate>31536e3&&console.warn(`Warning: A page's revalidate option was set to more than a year for ${a.url}. This may have been done in error. +To only run getStaticProps at build-time and not revalidate at runtime, you can set \`revalidate\` to \`false\`!`),t=e.revalidate;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number for ${a.url}. Mixed numbers, such as '${e.revalidate}', cannot be used. +Try changing the value to '${Math.ceil(e.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`),"__NEXT_ERROR_CODE",{value:"E438",enumerable:!1,configurable:!0});else if(!0===e.revalidate)t=1;else if(!1===e.revalidate||void 0===e.revalidate)t=!1;else throw Object.defineProperty(Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(e.revalidate)}' for ${a.url}`),"__NEXT_ERROR_CODE",{value:"E161",enumerable:!1,configurable:!0})}else t=!1;if(h.pageProps=Object.assign({},h.pageProps,"props"in e?e.props:void 0),g.cacheControl={revalidate:t,expire:void 0},g.pageData=h,g.isNotFound)return new e9(null,{metadata:g,contentType:null})}if(R&&(h.__N_SSP=!0),R&&!F){let e,t=!1;try{e=await (0,eL.getTracer)().trace(eU.vr.getServerSideProps,{spanName:`getServerSideProps ${i}`,attributes:{"next.route":i}},async()=>R({req:a,res:n,query:s,resolvedUrl:o.resolvedUrl,...J?{params:C}:void 0,...!1!==d?{draftMode:!0,preview:!0,previewData:d}:void 0,locales:[...o.locales??[]],locale:o.locale,defaultLocale:o.defaultLocale})),g.cacheControl={revalidate:0,expire:void 0}}catch(e){throw"object"==typeof e&&null!==e&&"name"in e&&"message"in e&&"ENOENT"===e.code&&delete e.code,e}if(null==e)throw Object.defineProperty(Error(k.UO),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});e.props instanceof Promise&&(t=!0);let r=Object.keys(e).filter(e=>"props"!==e&&"redirect"!==e&&"notFound"!==e);if(e.unstable_notFound)throw Object.defineProperty(Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E516",enumerable:!1,configurable:!0});if(e.unstable_redirect)throw Object.defineProperty(Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${i}`),"__NEXT_ERROR_CODE",{value:"E284",enumerable:!1,configurable:!0});if(r.length)throw Object.defineProperty(Error(rf("getServerSideProps",r)),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});if("notFound"in e&&e.notFound){if("/404"===i)throw Object.defineProperty(Error('The /404 page can not return notFound in "getStaticProps", please remove it to continue!'),"__NEXT_ERROR_CODE",{value:"E121",enumerable:!1,configurable:!0});return g.isNotFound=!0,new e9(null,{metadata:g,contentType:null})}if("redirect"in e&&"object"==typeof e.redirect&&(rm(e.redirect,a,"getServerSideProps"),e.props={__N_REDIRECT:e.redirect.destination,__N_REDIRECT_STATUS:tQ(e.redirect)},void 0!==e.redirect.basePath&&(e.props.__N_REDIRECT_BASE_PATH=e.redirect.basePath),g.isRedirect=!0),t&&(e.props=await e.props),H&&!tF(i,"getServerSideProps",e.props))throw Object.defineProperty(Error("invariant: getServerSideProps did not return valid props. Please report this."),"__NEXT_ERROR_CODE",{value:"E31",enumerable:!1,configurable:!0});h.pageProps=Object.assign({},h.pageProps,e.props),g.pageData=h}if(w&&!U||g.isRedirect)return new e9(JSON.stringify(h),{metadata:g,contentType:k.U2});if(F&&(h.pageProps={}),B(n)&&!U)return e9.EMPTY;let eg=b;if(Z&&J){let e,t=(e=eE(eb(i))).startsWith("/index/")&&!A(e)?e.slice(6):"/index"!==e?e:"/";t in eg.pages&&(eg={...eg,pages:{...eg.pages,[t]:[...eg.pages[t],...eg.lowPriorityFiles.filter(e=>e.includes("_buildManifest"))]},lowPriorityFiles:eg.lowPriorityFiles.filter(e=>!e.includes("_buildManifest"))})}let ey=({children:e})=>(0,tO.jsx)("div",{id:"__next",children:e}),ex=async()=>{let e,t,r;async function a(e){let t=async(t={})=>{if(ep.err&&x)return e&&e(N,M),{html:await rd((0,tO.jsx)(ey,{children:(0,tO.jsx)(x,{})})),head:en};let{App:r,Component:a}="function"==typeof t?{App:N,Component:t(M)}:{App:t.enhanceApp?t.enhanceApp(N):N,Component:t.enhanceComponent?t.enhanceComponent(M):M},n=await e(r,a);return await n.allReady,{html:await eG(n),head:en}},r={...ep,renderPage:t},a=await W(I,r);if(B(n)&&!U)return null;if(!a||"string"!=typeof a.html)throw Object.defineProperty(Error(`"${G(I)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`),"__NEXT_ERROR_CODE",{value:"E1039",enumerable:!1,configurable:!0});return{docProps:a,documentCtx:r}}I.__NEXT_BUILTIN_DOCUMENT__;let i=async(e,t)=>{let r,a,n=(r=e||N,a=t||M,ep.err&&x?(0,tO.jsx)(ey,{children:(0,tO.jsx)(x,{})}):(0,tO.jsx)(ey,{children:(0,tO.jsx)(eh,{children:rp(r,a,{...h,router:ee})})}));return await function({ReactDOMServer:e,element:t,streamOptions:r}){return(0,eL.getTracer)().trace(eU.Wc.renderToReadableStream,async()=>e.renderToReadableStream(t,r))}({ReactDOMServer:tD(),element:n})},s=!!I.getInitialProps,[o,l]=await Promise.all([rd((r=ea.styles(),ea.flush(),(0,tO.jsx)(tO.Fragment,{children:r}))),(async()=>{if(s){if(null===(e=await a(i)))return null;let{docProps:t}=e;return t.html}{e={};let t=await i(N,M);return await t.allReady,eG(t)}})()]);if(null===l)return null;let{docProps:c}=e||{};return s?(t=c.styles,en=c.head):(t=ea.styles(),ea.flush()),{contentHTML:o+l,documentElement:e=>(0,tO.jsx)(I,{...e,...c}),head:en,headTags:[],styles:t}};(0,eL.getTracer)().setRootSpanAttribute("next.route",o.page);let e_=await (0,eL.getTracer)().trace(eU.vr.renderDocument,{spanName:`render route (pages) ${o.page}`,attributes:{"next.route":o.page}},async()=>ex());if(!e_)return new e9(null,{metadata:g,contentType:k.j9});let eP=new Set,eR=new Set;for(let e of es){let t=E[e];t&&(eP.add(t.id),t.files.forEach(e=>{eR.add(e)}))}let{assetPrefix:ew,defaultLocale:eC,disableOptimizedLoading:eS,domainLocales:eO,locale:eT,locales:eA}=o,ej={__NEXT_DATA__:{props:h,page:i,query:s,buildId:c.buildId,assetPrefix:""===ew?void 0:ew,nextExport:!0===em||void 0,autoExport:!0===Z||void 0,isFallback:F,isExperimentalCompile:D,dynamicIds:0===eP.size?void 0:Array.from(eP),err:o.err?function(e,t){if(e){let e="server";return e=t[ro]||"server",{name:t.name,source:e,message:t2()(t.message),stack:t.stack,digest:t.digest}}return{name:"Internal Server Error.",message:"500 - Internal Server Error.",statusCode:500}}(!1,o.err):void 0,gsp:!!_||void 0,gssp:!!R||void 0,customServer:c.customServer,gip:!!X||void 0,appGip:!q||void 0,locale:eT,locales:eA,defaultLocale:eC,domainLocales:eO,isPreview:!0===p||void 0,notFoundSrcPage:void 0},nonce:ec,buildManifest:eg,docComponentsRendered:{},dangerousAsPath:ee.asPath,isDevelopment:!1,deploymentId:c.deploymentId,dynamicImports:Array.from(eR),dynamicCssManifest:new Set(o.dynamicCssManifest||[]),assetPrefix:ew,unstable_runtimeJS:y.unstable_runtimeJS,unstable_JsPreload:y.unstable_JsPreload,assetQueryString:m||"",mutableAssetQueryString:f||"",scriptLoader:er,locale:eT,disableOptimizedLoading:eS,head:e_.head,headTags:e_.headTags,styles:e_.styles,crossOrigin:o.crossOrigin,optimizeCss:o.optimizeCss,nextConfigOutput:o.nextConfigOutput,nextScriptWorkers:o.nextScriptWorkers,runtime:j,largePageDataBytes:o.largePageDataBytes,nextFontManifest:o.nextFontManifest,experimentalClientTraceMetadata:o.experimental.clientTraceMetadata},eD=(0,tO.jsx)(tJ.Provider,{value:ej,children:e_.documentElement(ej)}),e$=await (0,eL.getTracer)().trace(eU.vr.renderToString,async()=>rd(eD)),[eN,ek]=e$.split("",2),eI="";e$.startsWith(rc)||(eI+=rc);let eM=(eI+=eN)+e_.contentHTML+ek;return new e9(await r(eM,o),{metadata:g,contentType:k.j9})}let rv=(e,t,r,a,n,i,s)=>rg(e,t,r,a,n,n,i,s),ry=tA().createContext(null);function rb(e){let t=(0,tT.useContext)(ry);t&&t(e)}class rE extends tS{constructor(e){super(e),this.components=e.components}render(e,t,r){return rg(e,t,r.page,r.query,r.renderOpts,{App:this.components.App,Document:this.components.Document},r.sharedContext,r.renderContext)}}let rx={contexts:y},r_=rE})(),module.exports=i})(); +//# sourceMappingURL=pages.runtime.prod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/os-browserify/browser.js b/cli/app/node_modules/next/dist/compiled/os-browserify/browser.js new file mode 100644 index 00000000000..a31eab60c90 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/os-browserify/browser.js @@ -0,0 +1 @@ +(function(){if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};!function(){var e=n;e.endianness=function(){return"LE"};e.hostname=function(){if(typeof location!=="undefined"){return location.hostname}else return""};e.loadavg=function(){return[]};e.uptime=function(){return 0};e.freemem=function(){return Number.MAX_VALUE};e.totalmem=function(){return Number.MAX_VALUE};e.cpus=function(){return[]};e.type=function(){return"Browser"};e.release=function(){if(typeof navigator!=="undefined"){return navigator.appVersion}return""};e.networkInterfaces=e.getNetworkInterfaces=function(){return{}};e.arch=function(){return"javascript"};e.platform=function(){return"browser"};e.tmpdir=e.tmpDir=function(){return"/tmp"};e.EOL="\n";e.homedir=function(){return"/"}}();module.exports=n})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/os-browserify/package.json b/cli/app/node_modules/next/dist/compiled/os-browserify/package.json new file mode 100644 index 00000000000..c7eab9e55ef --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/os-browserify/package.json @@ -0,0 +1 @@ +{"name":"os-browserify","main":"browser.js","author":"CoderPuppy ","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/p-limit/index.js b/cli/app/node_modules/next/dist/compiled/p-limit/index.js new file mode 100644 index 00000000000..3584cdfdbcd --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/p-limit/index.js @@ -0,0 +1 @@ +(()=>{var e={758:(e,t,i)=>{"use strict";const r=i(738);const pLimit=e=>{if(!((Number.isInteger(e)||e===Infinity)&&e>0)){throw new TypeError("Expected `concurrency` to be a number from 1 and up")}const t=new r;let i=0;const next=()=>{i--;if(t.size>0){t.dequeue()()}};const run=async(e,t,...r)=>{i++;const s=(async()=>e(...r))();t(s);try{await s}catch{}next()};const enqueue=(r,s,...n)=>{t.enqueue(run.bind(null,r,s,...n));(async()=>{await Promise.resolve();if(i0){t.dequeue()()}})()};const generator=(e,...t)=>new Promise((i=>{enqueue(e,i,...t)}));Object.defineProperties(generator,{activeCount:{get:()=>i},pendingCount:{get:()=>t.size},clearQueue:{value:()=>{t.clear()}}});return generator};e.exports=pLimit},738:e=>{class Node{constructor(e){this.value=e;this.next=undefined}}class Queue{constructor(){this.clear()}enqueue(e){const t=new Node(e);if(this._head){this._tail.next=t;this._tail=t}else{this._head=t;this._tail=t}this._size++}dequeue(){const e=this._head;if(!e){return}this._head=this._head.next;this._size--;return e.value}clear(){this._head=undefined;this._tail=undefined;this._size=0}get size(){return this._size}*[Symbol.iterator](){let e=this._head;while(e){yield e.value;e=e.next}}}e.exports=Queue}};var t={};function __nccwpck_require__(i){var r=t[i];if(r!==undefined){return r.exports}var s=t[i]={exports:{}};var n=true;try{e[i](s,s.exports,__nccwpck_require__);n=false}finally{if(n)delete t[i]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i=__nccwpck_require__(758);module.exports=i})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/p-limit/package.json b/cli/app/node_modules/next/dist/compiled/p-limit/package.json new file mode 100644 index 00000000000..df63773113d --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/p-limit/package.json @@ -0,0 +1 @@ +{"name":"p-limit","main":"index.js","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"https://sindresorhus.com"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/p-queue/index.js b/cli/app/node_modules/next/dist/compiled/p-queue/index.js new file mode 100644 index 00000000000..e28bcbfdc17 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/p-queue/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var e={993:e=>{var t=Object.prototype.hasOwnProperty,n="~";function Events(){}if(Object.create){Events.prototype=Object.create(null);if(!(new Events).__proto__)n=false}function EE(e,t,n){this.fn=e;this.context=t;this.once=n||false}function addListener(e,t,r,i,s){if(typeof r!=="function"){throw new TypeError("The listener must be a function")}var o=new EE(r,i||e,s),u=n?n+t:t;if(!e._events[u])e._events[u]=o,e._eventsCount++;else if(!e._events[u].fn)e._events[u].push(o);else e._events[u]=[e._events[u],o];return e}function clearEvent(e,t){if(--e._eventsCount===0)e._events=new Events;else delete e._events[t]}function EventEmitter(){this._events=new Events;this._eventsCount=0}EventEmitter.prototype.eventNames=function eventNames(){var e=[],r,i;if(this._eventsCount===0)return e;for(i in r=this._events){if(t.call(r,i))e.push(n?i.slice(1):i)}if(Object.getOwnPropertySymbols){return e.concat(Object.getOwnPropertySymbols(r))}return e};EventEmitter.prototype.listeners=function listeners(e){var t=n?n+e:e,r=this._events[t];if(!r)return[];if(r.fn)return[r.fn];for(var i=0,s=r.length,o=new Array(s);i{e.exports=(e,t)=>{t=t||(()=>{});return e.then((e=>new Promise((e=>{e(t())})).then((()=>e))),(e=>new Promise((e=>{e(t())})).then((()=>{throw e}))))}},574:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});function lowerBound(e,t,n){let r=0;let i=e.length;while(i>0){const s=i/2|0;let o=r+s;if(n(e[o],t)<=0){r=++o;i-=s+1}else{i=s}}return r}t["default"]=lowerBound},821:(e,t,n)=>{Object.defineProperty(t,"__esModule",{value:true});const r=n(574);class PriorityQueue{constructor(){this._queue=[]}enqueue(e,t){t=Object.assign({priority:0},t);const n={priority:t.priority,run:e};if(this.size&&this._queue[this.size-1].priority>=t.priority){this._queue.push(n);return}const i=r.default(this._queue,n,((e,t)=>t.priority-e.priority));this._queue.splice(i,0,n)}dequeue(){const e=this._queue.shift();return e===null||e===void 0?void 0:e.run}filter(e){return this._queue.filter((t=>t.priority===e.priority)).map((e=>e.run))}get size(){return this._queue.length}}t["default"]=PriorityQueue},816:(e,t,n)=>{const r=n(213);class TimeoutError extends Error{constructor(e){super(e);this.name="TimeoutError"}}const pTimeout=(e,t,n)=>new Promise(((i,s)=>{if(typeof t!=="number"||t<0){throw new TypeError("Expected `milliseconds` to be a positive number")}if(t===Infinity){i(e);return}const o=setTimeout((()=>{if(typeof n==="function"){try{i(n())}catch(e){s(e)}return}const r=typeof n==="string"?n:`Promise timed out after ${t} milliseconds`;const o=n instanceof Error?n:new TimeoutError(r);if(typeof e.cancel==="function"){e.cancel()}s(o)}),t);r(e.then(i,s),(()=>{clearTimeout(o)}))}));e.exports=pTimeout;e.exports["default"]=pTimeout;e.exports.TimeoutError=TimeoutError}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var s=true;try{e[n](i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;Object.defineProperty(e,"__esModule",{value:true});const t=__nccwpck_require__(993);const r=__nccwpck_require__(816);const i=__nccwpck_require__(821);const empty=()=>{};const s=new r.TimeoutError;class PQueue extends t{constructor(e){var t,n,r,s;super();this._intervalCount=0;this._intervalEnd=0;this._pendingCount=0;this._resolveEmpty=empty;this._resolveIdle=empty;e=Object.assign({carryoverConcurrencyCount:false,intervalCap:Infinity,interval:0,concurrency:Infinity,autoStart:true,queueClass:i.default},e);if(!(typeof e.intervalCap==="number"&&e.intervalCap>=1)){throw new TypeError(`Expected \`intervalCap\` to be a number from 1 and up, got \`${(n=(t=e.intervalCap)===null||t===void 0?void 0:t.toString())!==null&&n!==void 0?n:""}\` (${typeof e.intervalCap})`)}if(e.interval===undefined||!(Number.isFinite(e.interval)&&e.interval>=0)){throw new TypeError(`Expected \`interval\` to be a finite number >= 0, got \`${(s=(r=e.interval)===null||r===void 0?void 0:r.toString())!==null&&s!==void 0?s:""}\` (${typeof e.interval})`)}this._carryoverConcurrencyCount=e.carryoverConcurrencyCount;this._isIntervalIgnored=e.intervalCap===Infinity||e.interval===0;this._intervalCap=e.intervalCap;this._interval=e.interval;this._queue=new e.queueClass;this._queueClass=e.queueClass;this.concurrency=e.concurrency;this._timeout=e.timeout;this._throwOnTimeout=e.throwOnTimeout===true;this._isPaused=e.autoStart===false}get _doesIntervalAllowAnother(){return this._isIntervalIgnored||this._intervalCount{this._onResumeInterval()}),t)}return true}}return false}_tryToStartAnother(){if(this._queue.size===0){if(this._intervalId){clearInterval(this._intervalId)}this._intervalId=undefined;this._resolvePromises();return false}if(!this._isPaused){const e=!this._isIntervalPaused();if(this._doesIntervalAllowAnother&&this._doesConcurrentAllowAnother){const t=this._queue.dequeue();if(!t){return false}this.emit("active");t();if(e){this._initializeIntervalIfNeeded()}return true}}return false}_initializeIntervalIfNeeded(){if(this._isIntervalIgnored||this._intervalId!==undefined){return}this._intervalId=setInterval((()=>{this._onInterval()}),this._interval);this._intervalEnd=Date.now()+this._interval}_onInterval(){if(this._intervalCount===0&&this._pendingCount===0&&this._intervalId){clearInterval(this._intervalId);this._intervalId=undefined}this._intervalCount=this._carryoverConcurrencyCount?this._pendingCount:0;this._processQueue()}_processQueue(){while(this._tryToStartAnother()){}}get concurrency(){return this._concurrency}set concurrency(e){if(!(typeof e==="number"&&e>=1)){throw new TypeError(`Expected \`concurrency\` to be a number from 1 and up, got \`${e}\` (${typeof e})`)}this._concurrency=e;this._processQueue()}async add(e,t={}){return new Promise(((n,i)=>{const run=async()=>{this._pendingCount++;this._intervalCount++;try{const o=this._timeout===undefined&&t.timeout===undefined?e():r.default(Promise.resolve(e()),t.timeout===undefined?this._timeout:t.timeout,(()=>{if(t.throwOnTimeout===undefined?this._throwOnTimeout:t.throwOnTimeout){i(s)}return undefined}));n(await o)}catch(e){i(e)}this._next()};this._queue.enqueue(run,t);this._tryToStartAnother();this.emit("add")}))}async addAll(e,t){return Promise.all(e.map((async e=>this.add(e,t))))}start(){if(!this._isPaused){return this}this._isPaused=false;this._processQueue();return this}pause(){this._isPaused=true}clear(){this._queue=new this._queueClass}async onEmpty(){if(this._queue.size===0){return}return new Promise((e=>{const t=this._resolveEmpty;this._resolveEmpty=()=>{t();e()}}))}async onIdle(){if(this._pendingCount===0&&this._queue.size===0){return}return new Promise((e=>{const t=this._resolveIdle;this._resolveIdle=()=>{t();e()}}))}get size(){return this._queue.size}sizeBy(e){return this._queue.filter(e).length}get pending(){return this._pendingCount}get isPaused(){return this._isPaused}get timeout(){return this._timeout}set timeout(e){this._timeout=e}}e["default"]=PQueue})();module.exports=n})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/p-queue/package.json b/cli/app/node_modules/next/dist/compiled/p-queue/package.json new file mode 100644 index 00000000000..86ebb70ed08 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/p-queue/package.json @@ -0,0 +1 @@ +{"name":"p-queue","main":"index.js","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/path-browserify/index.js b/cli/app/node_modules/next/dist/compiled/path-browserify/index.js new file mode 100644 index 00000000000..1a7ae046283 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/path-browserify/index.js @@ -0,0 +1 @@ +(function(){"use strict";var e={114:function(e){function assertPath(e){if(typeof e!=="string"){throw new TypeError("Path must be a string. Received "+JSON.stringify(e))}}function normalizeStringPosix(e,r){var t="";var i=0;var n=-1;var a=0;var f;for(var l=0;l<=e.length;++l){if(l2){var s=t.lastIndexOf("/");if(s!==t.length-1){if(s===-1){t="";i=0}else{t=t.slice(0,s);i=t.length-1-t.lastIndexOf("/")}n=l;a=0;continue}}else if(t.length===2||t.length===1){t="";i=0;n=l;a=0;continue}}if(r){if(t.length>0)t+="/..";else t="..";i=2}}else{if(t.length>0)t+="/"+e.slice(n+1,l);else t=e.slice(n+1,l);i=l-n-1}n=l;a=0}else if(f===46&&a!==-1){++a}else{a=-1}}return t}function _format(e,r){var t=r.dir||r.root;var i=r.base||(r.name||"")+(r.ext||"");if(!t){return i}if(t===r.root){return t+i}return t+e+i}var r={resolve:function resolve(){var e="";var r=false;var t;for(var i=arguments.length-1;i>=-1&&!r;i--){var n;if(i>=0)n=arguments[i];else{if(t===undefined)t="";n=t}assertPath(n);if(n.length===0){continue}e=n+"/"+e;r=n.charCodeAt(0)===47}e=normalizeStringPosix(e,!r);if(r){if(e.length>0)return"/"+e;else return"/"}else if(e.length>0){return e}else{return"."}},normalize:function normalize(e){assertPath(e);if(e.length===0)return".";var r=e.charCodeAt(0)===47;var t=e.charCodeAt(e.length-1)===47;e=normalizeStringPosix(e,!r);if(e.length===0&&!r)e=".";if(e.length>0&&t)e+="/";if(r)return"/"+e;return e},isAbsolute:function isAbsolute(e){assertPath(e);return e.length>0&&e.charCodeAt(0)===47},join:function join(){if(arguments.length===0)return".";var e;for(var t=0;t0){if(e===undefined)e=i;else e+="/"+i}}if(e===undefined)return".";return r.normalize(e)},relative:function relative(e,t){assertPath(e);assertPath(t);if(e===t)return"";e=r.resolve(e);t=r.resolve(t);if(e===t)return"";var i=1;for(;io){if(t.charCodeAt(f+h)===47){return t.slice(f+h+1)}else if(h===0){return t.slice(f+h)}}else if(a>o){if(e.charCodeAt(i+h)===47){u=h}else if(h===0){u=0}}break}var c=e.charCodeAt(i+h);var v=t.charCodeAt(f+h);if(c!==v)break;else if(c===47)u=h}var g="";for(h=i+u+1;h<=n;++h){if(h===n||e.charCodeAt(h)===47){if(g.length===0)g+="..";else g+="/.."}}if(g.length>0)return g+t.slice(f+u);else{f+=u;if(t.charCodeAt(f)===47)++f;return t.slice(f)}},_makeLong:function _makeLong(e){return e},dirname:function dirname(e){assertPath(e);if(e.length===0)return".";var r=e.charCodeAt(0);var t=r===47;var i=-1;var n=true;for(var a=e.length-1;a>=1;--a){r=e.charCodeAt(a);if(r===47){if(!n){i=a;break}}else{n=false}}if(i===-1)return t?"/":".";if(t&&i===1)return"//";return e.slice(0,i)},basename:function basename(e,r){if(r!==undefined&&typeof r!=="string")throw new TypeError('"ext" argument must be a string');assertPath(e);var t=0;var i=-1;var n=true;var a;if(r!==undefined&&r.length>0&&r.length<=e.length){if(r.length===e.length&&r===e)return"";var f=r.length-1;var l=-1;for(a=e.length-1;a>=0;--a){var s=e.charCodeAt(a);if(s===47){if(!n){t=a+1;break}}else{if(l===-1){n=false;l=a+1}if(f>=0){if(s===r.charCodeAt(f)){if(--f===-1){i=a}}else{f=-1;i=l}}}}if(t===i)i=l;else if(i===-1)i=e.length;return e.slice(t,i)}else{for(a=e.length-1;a>=0;--a){if(e.charCodeAt(a)===47){if(!n){t=a+1;break}}else if(i===-1){n=false;i=a+1}}if(i===-1)return"";return e.slice(t,i)}},extname:function extname(e){assertPath(e);var r=-1;var t=0;var i=-1;var n=true;var a=0;for(var f=e.length-1;f>=0;--f){var l=e.charCodeAt(f);if(l===47){if(!n){t=f+1;break}continue}if(i===-1){n=false;i=f+1}if(l===46){if(r===-1)r=f;else if(a!==1)a=1}else if(r!==-1){a=-1}}if(r===-1||i===-1||a===0||a===1&&r===i-1&&r===t+1){return""}return e.slice(r,i)},format:function format(e){if(e===null||typeof e!=="object"){throw new TypeError('The "pathObject" argument must be of type Object. Received type '+typeof e)}return _format("/",e)},parse:function parse(e){assertPath(e);var r={root:"",dir:"",base:"",ext:"",name:""};if(e.length===0)return r;var t=e.charCodeAt(0);var i=t===47;var n;if(i){r.root="/";n=1}else{n=0}var a=-1;var f=0;var l=-1;var s=true;var o=e.length-1;var u=0;for(;o>=n;--o){t=e.charCodeAt(o);if(t===47){if(!s){f=o+1;break}continue}if(l===-1){s=false;l=o+1}if(t===46){if(a===-1)a=o;else if(u!==1)u=1}else if(a!==-1){u=-1}}if(a===-1||l===-1||u===0||u===1&&a===l-1&&a===f+1){if(l!==-1){if(f===0&&i)r.base=r.name=e.slice(1,l);else r.base=r.name=e.slice(f,l)}}else{if(f===0&&i){r.name=e.slice(1,a);r.base=e.slice(1,l)}else{r.name=e.slice(f,a);r.base=e.slice(f,l)}r.ext=e.slice(a,l)}if(f>0)r.dir=e.slice(0,f-1);else if(i)r.dir="/";return r},sep:"/",delimiter:":",win32:null,posix:null};r.posix=r;e.exports=r}};var r={};function __nccwpck_require__(t){var i=r[t];if(i!==undefined){return i.exports}var n=r[t]={exports:{}};var a=true;try{e[t](n,n.exports,__nccwpck_require__);a=false}finally{if(a)delete r[t]}return n.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(114);module.exports=t})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/path-browserify/package.json b/cli/app/node_modules/next/dist/compiled/path-browserify/package.json new file mode 100644 index 00000000000..8d3b5a867c5 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/path-browserify/package.json @@ -0,0 +1 @@ +{"name":"path-browserify","main":"index.js","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/path-to-regexp/index.js b/cli/app/node_modules/next/dist/compiled/path-to-regexp/index.js new file mode 100644 index 00000000000..6a86d020d3a --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/path-to-regexp/index.js @@ -0,0 +1 @@ +(()=>{"use strict";if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var n=e;Object.defineProperty(n,"__esModule",{value:true});n.pathToRegexp=n.tokensToRegexp=n.regexpToFunction=n.match=n.tokensToFunction=n.compile=n.parse=void 0;function lexer(e){var n=[];var r=0;while(r=48&&o<=57||o>=65&&o<=90||o>=97&&o<=122||o===95){a+=e[i++];continue}break}if(!a)throw new TypeError("Missing parameter name at ".concat(r));n.push({type:"NAME",index:r,value:a});r=i;continue}if(t==="("){var c=1;var f="";var i=r+1;if(e[i]==="?"){throw new TypeError('Pattern cannot start with "?" at '.concat(i))}while(i-1)return true}return false};var safePattern=function(e){var n=c[c.length-1];var r=e||(n&&typeof n==="string"?n:"");if(n&&!r){throw new TypeError('Must have text between two parameters, missing text after "'.concat(n.name,'"'))}if(!r||isSafe(r))return"[^".concat(escapeString(o),"]+?");return"(?:(?!".concat(escapeString(r),")[^").concat(escapeString(o),"])+?")};while(u)?(?!\?)/g;var t=0;var a=r.exec(e.source);while(a){n.push({name:a[1]||t++,prefix:"",suffix:"",modifier:"",pattern:""});a=r.exec(e.source)}return e}function arrayToRegexp(e,n,r){var t=e.map((function(e){return pathToRegexp(e,n,r).source}));return new RegExp("(?:".concat(t.join("|"),")"),flags(r))}function stringToRegexp(e,n,r){return tokensToRegexp(parse(e,r),n,r)}function tokensToRegexp(e,n,r){if(r===void 0){r={}}var t=r.strict,a=t===void 0?false:t,i=r.start,o=i===void 0?true:i,c=r.end,f=c===void 0?true:c,u=r.encode,p=u===void 0?function(e){return e}:u,v=r.delimiter,s=v===void 0?"/#?":v,d=r.endsWith,g=d===void 0?"":d;var x="[".concat(escapeString(g),"]|$");var h="[".concat(escapeString(s),"]");var l=o?"^":"";for(var m=0,T=e;m-1:A===undefined;if(!a){l+="(?:".concat(h,"(?=").concat(x,"))?")}if(!_){l+="(?=".concat(h,"|").concat(x,")")}}return new RegExp(l,flags(r))}n.tokensToRegexp=tokensToRegexp;function pathToRegexp(e,n,r){if(e instanceof RegExp)return regexpToRegexp(e,n);if(Array.isArray(e))return arrayToRegexp(e,n,r);return stringToRegexp(e,n,r)}n.pathToRegexp=pathToRegexp})();module.exports=e})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/path-to-regexp/package.json b/cli/app/node_modules/next/dist/compiled/path-to-regexp/package.json new file mode 100644 index 00000000000..b6236252d1c --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/path-to-regexp/package.json @@ -0,0 +1 @@ +{"name":"path-to-regexp","main":"index.js","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/picomatch/index.js b/cli/app/node_modules/next/dist/compiled/picomatch/index.js new file mode 100644 index 00000000000..86c9d8fc400 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/picomatch/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var t={170:(t,e,u)=>{const n=u(510);const isWindows=()=>{if(typeof navigator!=="undefined"&&navigator.platform){const t=navigator.platform.toLowerCase();return t==="win32"||t==="windows"}if(typeof process!=="undefined"&&process.platform){return process.platform==="win32"}return false};function picomatch(t,e,u=false){if(e&&(e.windows===null||e.windows===undefined)){e={...e,windows:isWindows()}}return n(t,e,u)}Object.assign(picomatch,n);t.exports=picomatch},154:t=>{const e="\\\\/";const u=`[^${e}]`;const n="\\.";const o="\\+";const s="\\?";const r="\\/";const a="(?=.)";const i="[^/]";const c=`(?:${r}|$)`;const p=`(?:^|${r})`;const l=`${n}{1,2}${c}`;const f=`(?!${n})`;const A=`(?!${p}${l})`;const _=`(?!${n}{0,1}${c})`;const R=`(?!${l})`;const E=`[^.${r}]`;const h=`${i}*?`;const g="/";const b={DOT_LITERAL:n,PLUS_LITERAL:o,QMARK_LITERAL:s,SLASH_LITERAL:r,ONE_CHAR:a,QMARK:i,END_ANCHOR:c,DOTS_SLASH:l,NO_DOT:f,NO_DOTS:A,NO_DOT_SLASH:_,NO_DOTS_SLASH:R,QMARK_NO_DOT:E,STAR:h,START_ANCHOR:p,SEP:g};const C={...b,SLASH_LITERAL:`[${e}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`,SEP:"\\"};const y={alnum:"a-zA-Z0-9",alpha:"a-zA-Z",ascii:"\\x00-\\x7F",blank:" \\t",cntrl:"\\x00-\\x1F\\x7F",digit:"0-9",graph:"\\x21-\\x7E",lower:"a-z",print:"\\x20-\\x7E ",punct:"\\-!\"#$%&'()\\*+,./:;<=>?@[\\]^_`{|}~",space:" \\t\\r\\n\\v\\f",upper:"A-Z",word:"A-Za-z0-9_",xdigit:"A-Fa-f0-9"};t.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:y,REGEX_BACKSLASH:/\\(?![*+?^${}(|)[\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\].,$*+?^{}()|\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\?)((\W)(\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\[.*?[^\\]\]|\\(?=.))/g,REPLACEMENTS:{"***":"*","**/**":"**","**/**/**":"**"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return{"!":{type:"negate",open:"(?:(?!(?:",close:`))${t.STAR})`},"?":{type:"qmark",open:"(?:",close:")?"},"+":{type:"plus",open:"(?:",close:")+"},"*":{type:"star",open:"(?:",close:")*"},"@":{type:"at",open:"(?:",close:")"}}},globChars(t){return t===true?C:b}}},697:(t,e,u)=>{const n=u(154);const o=u(96);const{MAX_LENGTH:s,POSIX_REGEX_SOURCE:r,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:i,REPLACEMENTS:c}=n;const expandRange=(t,e)=>{if(typeof e.expandRange==="function"){return e.expandRange(...t,e)}t.sort();const u=`[${t.join("-")}]`;try{new RegExp(u)}catch(e){return t.map((t=>o.escapeRegex(t))).join("..")}return u};const syntaxError=(t,e)=>`Missing ${t}: "${e}" - use "\\\\${e}" to match literal characters`;const parse=(t,e)=>{if(typeof t!=="string"){throw new TypeError("Expected a string")}t=c[t]||t;const u={...e};const p=typeof u.maxLength==="number"?Math.min(s,u.maxLength):s;let l=t.length;if(l>p){throw new SyntaxError(`Input length: ${l}, exceeds maximum allowed length: ${p}`)}const f={type:"bos",value:"",output:u.prepend||""};const A=[f];const _=u.capture?"":"?:";const R=n.globChars(u.windows);const E=n.extglobChars(R);const{DOT_LITERAL:h,PLUS_LITERAL:g,SLASH_LITERAL:b,ONE_CHAR:C,DOTS_SLASH:y,NO_DOT:$,NO_DOT_SLASH:x,NO_DOTS_SLASH:S,QMARK:H,QMARK_NO_DOT:v,STAR:d,START_ANCHOR:L}=R;const globstar=t=>`(${_}(?:(?!${L}${t.dot?y:h}).)*?)`;const T=u.dot?"":$;const O=u.dot?H:v;let k=u.bash===true?globstar(u):d;if(u.capture){k=`(${k})`}if(typeof u.noext==="boolean"){u.noextglob=u.noext}const m={input:t,index:-1,start:0,dot:u.dot===true,consumed:"",output:"",prefix:"",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:A};t=o.removePrefix(t,m);l=t.length;const w=[];const N=[];const I=[];let B=f;let G;const eos=()=>m.index===l-1;const D=m.peek=(e=1)=>t[m.index+e];const M=m.advance=()=>t[++m.index]||"";const remaining=()=>t.slice(m.index+1);const consume=(t="",e=0)=>{m.consumed+=t;m.index+=e};const append=t=>{m.output+=t.output!=null?t.output:t.value;consume(t.value)};const negate=()=>{let t=1;while(D()==="!"&&(D(2)!=="("||D(3)==="?")){M();m.start++;t++}if(t%2===0){return false}m.negated=true;m.start++;return true};const increment=t=>{m[t]++;I.push(t)};const decrement=t=>{m[t]--;I.pop()};const push=t=>{if(B.type==="globstar"){const e=m.braces>0&&(t.type==="comma"||t.type==="brace");const u=t.extglob===true||w.length&&(t.type==="pipe"||t.type==="paren");if(t.type!=="slash"&&t.type!=="paren"&&!e&&!u){m.output=m.output.slice(0,-B.output.length);B.type="star";B.value="*";B.output=k;m.output+=B.output}}if(w.length&&t.type!=="paren"){w[w.length-1].inner+=t.value}if(t.value||t.output)append(t);if(B&&B.type==="text"&&t.type==="text"){B.output=(B.output||B.value)+t.value;B.value+=t.value;return}t.prev=B;A.push(t);B=t};const extglobOpen=(t,e)=>{const n={...E[e],conditions:1,inner:""};n.prev=B;n.parens=m.parens;n.output=m.output;const o=(u.capture?"(":"")+n.open;increment("parens");push({type:t,value:e,output:m.output?"":C});push({type:"paren",extglob:true,value:M(),output:o});w.push(n)};const extglobClose=t=>{let n=t.close+(u.capture?")":"");let o;if(t.type==="negate"){let s=k;if(t.inner&&t.inner.length>1&&t.inner.includes("/")){s=globstar(u)}if(s!==k||eos()||/^\)+$/.test(remaining())){n=t.close=`)$))${s}`}if(t.inner.includes("*")&&(o=remaining())&&/^\.[^\\/.]+$/.test(o)){const u=parse(o,{...e,fastpaths:false}).output;n=t.close=`)${u})${s})`}if(t.prev.type==="bos"){m.negatedExtglob=true}}push({type:"paren",extglob:true,value:G,output:n});decrement("parens")};if(u.fastpaths!==false&&!/(^[*!]|[/()[\]{}"])/.test(t)){let n=false;let s=t.replace(i,((t,e,u,o,s,r)=>{if(o==="\\"){n=true;return t}if(o==="?"){if(e){return e+o+(s?H.repeat(s.length):"")}if(r===0){return O+(s?H.repeat(s.length):"")}return H.repeat(u.length)}if(o==="."){return h.repeat(u.length)}if(o==="*"){if(e){return e+o+(s?k:"")}return k}return e?t:`\\${t}`}));if(n===true){if(u.unescape===true){s=s.replace(/\\/g,"")}else{s=s.replace(/\\+/g,(t=>t.length%2===0?"\\\\":t?"\\":""))}}if(s===t&&u.contains===true){m.output=t;return m}m.output=o.wrapOutput(s,m,e);return m}while(!eos()){G=M();if(G==="\0"){continue}if(G==="\\"){const t=D();if(t==="/"&&u.bash!==true){continue}if(t==="."||t===";"){continue}if(!t){G+="\\";push({type:"text",value:G});continue}const e=/^\\+/.exec(remaining());let n=0;if(e&&e[0].length>2){n=e[0].length;m.index+=n;if(n%2!==0){G+="\\"}}if(u.unescape===true){G=M()}else{G+=M()}if(m.brackets===0){push({type:"text",value:G});continue}}if(m.brackets>0&&(G!=="]"||B.value==="["||B.value==="[^")){if(u.posix!==false&&G===":"){const t=B.value.slice(1);if(t.includes("[")){B.posix=true;if(t.includes(":")){const t=B.value.lastIndexOf("[");const e=B.value.slice(0,t);const u=B.value.slice(t+2);const n=r[u];if(n){B.value=e+n;m.backtrack=true;M();if(!f.output&&A.indexOf(B)===1){f.output=C}continue}}}}if(G==="["&&D()!==":"||G==="-"&&D()==="]"){G=`\\${G}`}if(G==="]"&&(B.value==="["||B.value==="[^")){G=`\\${G}`}if(u.posix===true&&G==="!"&&B.value==="["){G="^"}B.value+=G;append({value:G});continue}if(m.quotes===1&&G!=='"'){G=o.escapeRegex(G);B.value+=G;append({value:G});continue}if(G==='"'){m.quotes=m.quotes===1?0:1;if(u.keepQuotes===true){push({type:"text",value:G})}continue}if(G==="("){increment("parens");push({type:"paren",value:G});continue}if(G===")"){if(m.parens===0&&u.strictBrackets===true){throw new SyntaxError(syntaxError("opening","("))}const t=w[w.length-1];if(t&&m.parens===t.parens+1){extglobClose(w.pop());continue}push({type:"paren",value:G,output:m.parens?")":"\\)"});decrement("parens");continue}if(G==="["){if(u.nobracket===true||!remaining().includes("]")){if(u.nobracket!==true&&u.strictBrackets===true){throw new SyntaxError(syntaxError("closing","]"))}G=`\\${G}`}else{increment("brackets")}push({type:"bracket",value:G});continue}if(G==="]"){if(u.nobracket===true||B&&B.type==="bracket"&&B.value.length===1){push({type:"text",value:G,output:`\\${G}`});continue}if(m.brackets===0){if(u.strictBrackets===true){throw new SyntaxError(syntaxError("opening","["))}push({type:"text",value:G,output:`\\${G}`});continue}decrement("brackets");const t=B.value.slice(1);if(B.posix!==true&&t[0]==="^"&&!t.includes("/")){G=`/${G}`}B.value+=G;append({value:G});if(u.literalBrackets===false||o.hasRegexChars(t)){continue}const e=o.escapeRegex(B.value);m.output=m.output.slice(0,-B.value.length);if(u.literalBrackets===true){m.output+=e;B.value=e;continue}B.value=`(${_}${e}|${B.value})`;m.output+=B.value;continue}if(G==="{"&&u.nobrace!==true){increment("braces");const t={type:"brace",value:G,output:"(",outputIndex:m.output.length,tokensIndex:m.tokens.length};N.push(t);push(t);continue}if(G==="}"){const t=N[N.length-1];if(u.nobrace===true||!t){push({type:"text",value:G,output:G});continue}let e=")";if(t.dots===true){const t=A.slice();const n=[];for(let e=t.length-1;e>=0;e--){A.pop();if(t[e].type==="brace"){break}if(t[e].type!=="dots"){n.unshift(t[e].value)}}e=expandRange(n,u);m.backtrack=true}if(t.comma!==true&&t.dots!==true){const u=m.output.slice(0,t.outputIndex);const n=m.tokens.slice(t.tokensIndex);t.value=t.output="\\{";G=e="\\}";m.output=u;for(const t of n){m.output+=t.output||t.value}}push({type:"brace",value:G,output:e});decrement("braces");N.pop();continue}if(G==="|"){if(w.length>0){w[w.length-1].conditions++}push({type:"text",value:G});continue}if(G===","){let t=G;const e=N[N.length-1];if(e&&I[I.length-1]==="braces"){e.comma=true;t="|"}push({type:"comma",value:G,output:t});continue}if(G==="/"){if(B.type==="dot"&&m.index===m.start+1){m.start=m.index+1;m.consumed="";m.output="";A.pop();B=f;continue}push({type:"slash",value:G,output:b});continue}if(G==="."){if(m.braces>0&&B.type==="dot"){if(B.value===".")B.output=h;const t=N[N.length-1];B.type="dots";B.output+=G;B.value+=G;t.dots=true;continue}if(m.braces+m.parens===0&&B.type!=="bos"&&B.type!=="slash"){push({type:"text",value:G,output:h});continue}push({type:"dot",value:G,output:h});continue}if(G==="?"){const t=B&&B.value==="(";if(!t&&u.noextglob!==true&&D()==="("&&D(2)!=="?"){extglobOpen("qmark",G);continue}if(B&&B.type==="paren"){const t=D();let e=G;if(B.value==="("&&!/[!=<:]/.test(t)||t==="<"&&!/<([!=]|\w+>)/.test(remaining())){e=`\\${G}`}push({type:"text",value:G,output:e});continue}if(u.dot!==true&&(B.type==="slash"||B.type==="bos")){push({type:"qmark",value:G,output:v});continue}push({type:"qmark",value:G,output:H});continue}if(G==="!"){if(u.noextglob!==true&&D()==="("){if(D(2)!=="?"||!/[!=<:]/.test(D(3))){extglobOpen("negate",G);continue}}if(u.nonegate!==true&&m.index===0){negate();continue}}if(G==="+"){if(u.noextglob!==true&&D()==="("&&D(2)!=="?"){extglobOpen("plus",G);continue}if(B&&B.value==="("||u.regex===false){push({type:"plus",value:G,output:g});continue}if(B&&(B.type==="bracket"||B.type==="paren"||B.type==="brace")||m.parens>0){push({type:"plus",value:G});continue}push({type:"plus",value:g});continue}if(G==="@"){if(u.noextglob!==true&&D()==="("&&D(2)!=="?"){push({type:"at",extglob:true,value:G,output:""});continue}push({type:"text",value:G});continue}if(G!=="*"){if(G==="$"||G==="^"){G=`\\${G}`}const t=a.exec(remaining());if(t){G+=t[0];m.index+=t[0].length}push({type:"text",value:G});continue}if(B&&(B.type==="globstar"||B.star===true)){B.type="star";B.star=true;B.value+=G;B.output=k;m.backtrack=true;m.globstar=true;consume(G);continue}let e=remaining();if(u.noextglob!==true&&/^\([^?]/.test(e)){extglobOpen("star",G);continue}if(B.type==="star"){if(u.noglobstar===true){consume(G);continue}const n=B.prev;const o=n.prev;const s=n.type==="slash"||n.type==="bos";const r=o&&(o.type==="star"||o.type==="globstar");if(u.bash===true&&(!s||e[0]&&e[0]!=="/")){push({type:"star",value:G,output:""});continue}const a=m.braces>0&&(n.type==="comma"||n.type==="brace");const i=w.length&&(n.type==="pipe"||n.type==="paren");if(!s&&n.type!=="paren"&&!a&&!i){push({type:"star",value:G,output:""});continue}while(e.slice(0,3)==="/**"){const u=t[m.index+4];if(u&&u!=="/"){break}e=e.slice(3);consume("/**",3)}if(n.type==="bos"&&eos()){B.type="globstar";B.value+=G;B.output=globstar(u);m.output=B.output;m.globstar=true;consume(G);continue}if(n.type==="slash"&&n.prev.type!=="bos"&&!r&&eos()){m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type="globstar";B.output=globstar(u)+(u.strictSlashes?")":"|$)");B.value+=G;m.globstar=true;m.output+=n.output+B.output;consume(G);continue}if(n.type==="slash"&&n.prev.type!=="bos"&&e[0]==="/"){const t=e[1]!==void 0?"|$":"";m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type="globstar";B.output=`${globstar(u)}${b}|${b}${t})`;B.value+=G;m.output+=n.output+B.output;m.globstar=true;consume(G+M());push({type:"slash",value:"/",output:""});continue}if(n.type==="bos"&&e[0]==="/"){B.type="globstar";B.value+=G;B.output=`(?:^|${b}|${globstar(u)}${b})`;m.output=B.output;m.globstar=true;consume(G+M());push({type:"slash",value:"/",output:""});continue}m.output=m.output.slice(0,-B.output.length);B.type="globstar";B.output=globstar(u);B.value+=G;m.output+=B.output;m.globstar=true;consume(G);continue}const n={type:"star",value:G,output:k};if(u.bash===true){n.output=".*?";if(B.type==="bos"||B.type==="slash"){n.output=T+n.output}push(n);continue}if(B&&(B.type==="bracket"||B.type==="paren")&&u.regex===true){n.output=G;push(n);continue}if(m.index===m.start||B.type==="slash"||B.type==="dot"){if(B.type==="dot"){m.output+=x;B.output+=x}else if(u.dot===true){m.output+=S;B.output+=S}else{m.output+=T;B.output+=T}if(D()!=="*"){m.output+=C;B.output+=C}}push(n)}while(m.brackets>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError("closing","]"));m.output=o.escapeLast(m.output,"[");decrement("brackets")}while(m.parens>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError("closing",")"));m.output=o.escapeLast(m.output,"(");decrement("parens")}while(m.braces>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError("closing","}"));m.output=o.escapeLast(m.output,"{");decrement("braces")}if(u.strictSlashes!==true&&(B.type==="star"||B.type==="bracket")){push({type:"maybe_slash",value:"",output:`${b}?`})}if(m.backtrack===true){m.output="";for(const t of m.tokens){m.output+=t.output!=null?t.output:t.value;if(t.suffix){m.output+=t.suffix}}}return m};parse.fastpaths=(t,e)=>{const u={...e};const r=typeof u.maxLength==="number"?Math.min(s,u.maxLength):s;const a=t.length;if(a>r){throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${r}`)}t=c[t]||t;const{DOT_LITERAL:i,SLASH_LITERAL:p,ONE_CHAR:l,DOTS_SLASH:f,NO_DOT:A,NO_DOTS:_,NO_DOTS_SLASH:R,STAR:E,START_ANCHOR:h}=n.globChars(u.windows);const g=u.dot?_:A;const b=u.dot?R:A;const C=u.capture?"":"?:";const y={negated:false,prefix:""};let $=u.bash===true?".*?":E;if(u.capture){$=`(${$})`}const globstar=t=>{if(t.noglobstar===true)return $;return`(${C}(?:(?!${h}${t.dot?f:i}).)*?)`};const create=t=>{switch(t){case"*":return`${g}${l}${$}`;case".*":return`${i}${l}${$}`;case"*.*":return`${g}${$}${i}${l}${$}`;case"*/*":return`${g}${$}${p}${l}${b}${$}`;case"**":return g+globstar(u);case"**/*":return`(?:${g}${globstar(u)}${p})?${b}${l}${$}`;case"**/*.*":return`(?:${g}${globstar(u)}${p})?${b}${$}${i}${l}${$}`;case"**/.*":return`(?:${g}${globstar(u)}${p})?${i}${l}${$}`;default:{const e=/^(.*?)\.(\w+)$/.exec(t);if(!e)return;const u=create(e[1]);if(!u)return;return u+i+e[2]}}};const x=o.removePrefix(t,y);let S=create(x);if(S&&u.strictSlashes!==true){S+=`${p}?`}return S};t.exports=parse},510:(t,e,u)=>{const n=u(716);const o=u(697);const s=u(96);const r=u(154);const isObject=t=>t&&typeof t==="object"&&!Array.isArray(t);const picomatch=(t,e,u=false)=>{if(Array.isArray(t)){const n=t.map((t=>picomatch(t,e,u)));const arrayMatcher=t=>{for(const e of n){const u=e(t);if(u)return u}return false};return arrayMatcher}const n=isObject(t)&&t.tokens&&t.input;if(t===""||typeof t!=="string"&&!n){throw new TypeError("Expected pattern to be a non-empty string")}const o=e||{};const s=o.windows;const r=n?picomatch.compileRe(t,e):picomatch.makeRe(t,e,false,true);const a=r.state;delete r.state;let isIgnored=()=>false;if(o.ignore){const t={...e,ignore:null,onMatch:null,onResult:null};isIgnored=picomatch(o.ignore,t,u)}const matcher=(u,n=false)=>{const{isMatch:i,match:c,output:p}=picomatch.test(u,r,e,{glob:t,posix:s});const l={glob:t,state:a,regex:r,posix:s,input:u,output:p,match:c,isMatch:i};if(typeof o.onResult==="function"){o.onResult(l)}if(i===false){l.isMatch=false;return n?l:false}if(isIgnored(u)){if(typeof o.onIgnore==="function"){o.onIgnore(l)}l.isMatch=false;return n?l:false}if(typeof o.onMatch==="function"){o.onMatch(l)}return n?l:true};if(u){matcher.state=a}return matcher};picomatch.test=(t,e,u,{glob:n,posix:o}={})=>{if(typeof t!=="string"){throw new TypeError("Expected input to be a string")}if(t===""){return{isMatch:false,output:""}}const r=u||{};const a=r.format||(o?s.toPosixSlashes:null);let i=t===n;let c=i&&a?a(t):t;if(i===false){c=a?a(t):t;i=c===n}if(i===false||r.capture===true){if(r.matchBase===true||r.basename===true){i=picomatch.matchBase(t,e,u,o)}else{i=e.exec(c)}}return{isMatch:Boolean(i),match:i,output:c}};picomatch.matchBase=(t,e,u)=>{const n=e instanceof RegExp?e:picomatch.makeRe(e,u);return n.test(s.basename(t))};picomatch.isMatch=(t,e,u)=>picomatch(e,u)(t);picomatch.parse=(t,e)=>{if(Array.isArray(t))return t.map((t=>picomatch.parse(t,e)));return o(t,{...e,fastpaths:false})};picomatch.scan=(t,e)=>n(t,e);picomatch.compileRe=(t,e,u=false,n=false)=>{if(u===true){return t.output}const o=e||{};const s=o.contains?"":"^";const r=o.contains?"":"$";let a=`${s}(?:${t.output})${r}`;if(t&&t.negated===true){a=`^(?!${a}).*$`}const i=picomatch.toRegex(a,e);if(n===true){i.state=t}return i};picomatch.makeRe=(t,e={},u=false,n=false)=>{if(!t||typeof t!=="string"){throw new TypeError("Expected a non-empty string")}let s={negated:false,fastpaths:true};if(e.fastpaths!==false&&(t[0]==="."||t[0]==="*")){s.output=o.fastpaths(t,e)}if(!s.output){s=o(t,e)}return picomatch.compileRe(s,e,u,n)};picomatch.toRegex=(t,e)=>{try{const u=e||{};return new RegExp(t,u.flags||(u.nocase?"i":""))}catch(t){if(e&&e.debug===true)throw t;return/$^/}};picomatch.constants=r;t.exports=picomatch},716:(t,e,u)=>{const n=u(96);const{CHAR_ASTERISK:o,CHAR_AT:s,CHAR_BACKWARD_SLASH:r,CHAR_COMMA:a,CHAR_DOT:i,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:p,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:f,CHAR_LEFT_SQUARE_BRACKET:A,CHAR_PLUS:_,CHAR_QUESTION_MARK:R,CHAR_RIGHT_CURLY_BRACE:E,CHAR_RIGHT_PARENTHESES:h,CHAR_RIGHT_SQUARE_BRACKET:g}=u(154);const isPathSeparator=t=>t===p||t===r;const depth=t=>{if(t.isPrefix!==true){t.depth=t.isGlobstar?Infinity:1}};const scan=(t,e)=>{const u=e||{};const b=t.length-1;const C=u.parts===true||u.scanToEnd===true;const y=[];const $=[];const x=[];let S=t;let H=-1;let v=0;let d=0;let L=false;let T=false;let O=false;let k=false;let m=false;let w=false;let N=false;let I=false;let B=false;let G=false;let D=0;let M;let P;let K={value:"",depth:0,isGlob:false};const eos=()=>H>=b;const peek=()=>S.charCodeAt(H+1);const advance=()=>{M=P;return S.charCodeAt(++H)};while(H0){X=S.slice(0,v);S=S.slice(v);d-=v}if(U&&O===true&&d>0){U=S.slice(0,d);F=S.slice(d)}else if(O===true){U="";F=S}else{U=S}if(U&&U!==""&&U!=="/"&&U!==S){if(isPathSeparator(U.charCodeAt(U.length-1))){U=U.slice(0,-1)}}if(u.unescape===true){if(F)F=n.removeBackslashes(F);if(U&&N===true){U=n.removeBackslashes(U)}}const Q={prefix:X,input:t,start:v,base:U,glob:F,isBrace:L,isBracket:T,isGlob:O,isExtglob:k,isGlobstar:m,negated:I,negatedExtglob:B};if(u.tokens===true){Q.maxDepth=0;if(!isPathSeparator(P)){$.push(K)}Q.tokens=$}if(u.parts===true||u.tokens===true){let e;for(let n=0;n{const{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:r}=u(154);e.isObject=t=>t!==null&&typeof t==="object"&&!Array.isArray(t);e.hasRegexChars=t=>s.test(t);e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t);e.escapeRegex=t=>t.replace(r,"\\$1");e.toPosixSlashes=t=>t.replace(n,"/");e.removeBackslashes=t=>t.replace(o,(t=>t==="\\"?"":t));e.escapeLast=(t,u,n)=>{const o=t.lastIndexOf(u,n);if(o===-1)return t;if(t[o-1]==="\\")return e.escapeLast(t,u,o-1);return`${t.slice(0,o)}\\${t.slice(o)}`};e.removePrefix=(t,e={})=>{let u=t;if(u.startsWith("./")){u=u.slice(2);e.prefix="./"}return u};e.wrapOutput=(t,e={},u={})=>{const n=u.contains?"":"^";const o=u.contains?"":"$";let s=`${n}(?:${t})${o}`;if(e.negated===true){s=`(?:^(?!${s}).*$)`}return s};e.basename=(t,{windows:e}={})=>{const u=t.split(e?/[\\/]/:"/");const n=u[u.length-1];if(n===""){return u[u.length-2]}return n}}};var e={};function __nccwpck_require__(u){var n=e[u];if(n!==undefined){return n.exports}var o=e[u]={exports:{}};var s=true;try{t[u](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete e[u]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var u=__nccwpck_require__(170);module.exports=u})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/picomatch/package.json b/cli/app/node_modules/next/dist/compiled/picomatch/package.json new file mode 100644 index 00000000000..bcb8420b4c5 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/picomatch/package.json @@ -0,0 +1 @@ +{"name":"picomatch","main":"index.js","author":"Jon Schlinkert (https://github.com/jonschlinkert)","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-flexbugs-fixes/index.js b/cli/app/node_modules/next/dist/compiled/postcss-flexbugs-fixes/index.js new file mode 100644 index 00000000000..ff5b0017a7e --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-flexbugs-fixes/index.js @@ -0,0 +1 @@ +(()=>{var e={747:(e,r,a)=>{var u=a(977);function shouldSetZeroBasis(e){if(!e){return false}return e==="0"||e.replace(/\s/g,"")==="0px"}function properBasis(e){if(shouldSetZeroBasis(e)){return"0%"}return e}e.exports=function(e){if(e.prop==="flex"){var r=u.list.space(e.value);var a="0";var s="1";var t="0%";if(r[0]){a=r[0]}if(r[1]){if(!isNaN(r[1])){s=r[1]}else{t=r[1]}}if(r[2]){t=r[2]}e.value=a+" "+s+" "+properBasis(t)}}},578:(e,r,a)=>{var u=a(977);e.exports=function(e){if(e.prop==="flex"){var r=u.list.space(e.value);var a=r[0];var s=r[1]||"1";var t=r[2]||"0%";if(t==="0%")t=null;e.value=a+" "+s+(t?" "+t:"")}}},526:(e,r,a)=>{var u=a(977);e.exports=function(e){var r=/(\d{1,}) (\d{1,}) (calc\(.*\))/g;var a=r.exec(e.value);if(e.prop==="flex"&&a){var s=u.decl({prop:"flex-grow",value:a[1],source:e.source});var t=u.decl({prop:"flex-shrink",value:a[2],source:e.source});var i=u.decl({prop:"flex-basis",value:a[3],source:e.source});e.parent.insertBefore(e,s);e.parent.insertBefore(e,t);e.parent.insertBefore(e,i);e.remove()}}},136:(e,r,a)=>{var u=a(747);var s=a(578);var t=a(526);var i=["none","auto","content","inherit","initial","unset"];e.exports=function(e){var r=Object.assign({bug4:true,bug6:true,bug81a:true},e);return{postcssPlugin:"postcss-flexbugs-fixes",Once:function(e,a){e.walkDecls((function(e){if(e.value.indexOf("var(")>-1){return}if(e.value==="none"){return}var n=a.list.space(e.value);if(i.indexOf(e.value)>0&&n.length===1){return}if(r.bug4){u(e)}if(r.bug6){s(e)}if(r.bug81a){t(e)}}))}}};e.exports.postcss=true},977:e=>{"use strict";e.exports=require("postcss")}};var r={};function __nccwpck_require__(a){var u=r[a];if(u!==undefined){return u.exports}var s=r[a]={exports:{}};var t=true;try{e[a](s,s.exports,__nccwpck_require__);t=false}finally{if(t)delete r[a]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var a=__nccwpck_require__(136);module.exports=a})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-flexbugs-fixes/package.json b/cli/app/node_modules/next/dist/compiled/postcss-flexbugs-fixes/package.json new file mode 100644 index 00000000000..66372c8420b --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-flexbugs-fixes/package.json @@ -0,0 +1 @@ +{"name":"postcss-flexbugs-fixes","main":"index.js","author":"Luis Rudge ","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-modules-extract-imports/index.js b/cli/app/node_modules/next/dist/compiled/postcss-modules-extract-imports/index.js new file mode 100644 index 00000000000..f6b1fb0e716 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-modules-extract-imports/index.js @@ -0,0 +1 @@ +(()=>{var r={591:(r,e,t)=>{const o=t(697);const n=/^(.+?)\s+from\s+(?:"([^"]+)"|'([^']+)'|(global))$/;const s=/^:import\((?:"([^"]+)"|'([^']+)')\)/;const c=1;function addImportToGraph(r,e,t,o){const n=e+"_"+"siblings";const s=e+"_"+r;if(o[s]!==c){if(!Array.isArray(o[n])){o[n]=[]}const e=o[n];if(Array.isArray(t[r])){t[r]=t[r].concat(e)}else{t[r]=e.slice()}o[s]=c;e.push(r)}}r.exports=(r={})=>{let e=0;const t=typeof r.createImportedName!=="function"?r=>`i__imported_${r.replace(/\W/g,"_")}_${e++}`:r.createImportedName;const c=r.failOnWrongOrder;return{postcssPlugin:"postcss-modules-extract-imports",prepare(){const r={};const e={};const a={};const i={};const p={};return{Once(l,f){l.walkRules((t=>{const o=s.exec(t.selector);if(o){const[,n,s]=o;const c=n||s;addImportToGraph(c,"root",r,e);a[c]=t}}));l.walkDecls(/^composes$/,(o=>{const s=o.value.match(n);if(!s){return}let c;let[,a,l,f,u]=s;if(u){c=a.split(/\s+/).map((r=>`global(${r})`))}else{const n=l||f;let s=o.parent;let u="";while(s.type!=="root"){u=s.parent.index(s)+"_"+u;s=s.parent}const{selector:d}=o.parent;const _=`_${u}${d}`;addImportToGraph(n,_,r,e);i[n]=o;p[n]=p[n]||{};c=a.split(/\s+/).map((r=>{if(!p[n][r]){p[n][r]=t(r,n)}return p[n][r]}))}o.value=c.join(" ")}));const u=o(r,c);if(u instanceof Error){const r=u.nodes.find((r=>i.hasOwnProperty(r)));const e=i[r];throw e.error("Failed to resolve order of composed modules "+u.nodes.map((r=>"`"+r+"`")).join(", ")+".",{plugin:"postcss-modules-extract-imports",word:"composes"})}let d;u.forEach((r=>{const e=p[r];let t=a[r];if(!t&&e){t=f.rule({selector:`:import("${r}")`,raws:{after:"\n"}});if(d){l.insertAfter(d,t)}else{l.prepend(t)}}d=t;if(!e){return}Object.keys(e).forEach((r=>{t.append(f.decl({value:r,prop:e[r],raws:{before:"\n "}}))}))}))}}}}};r.exports.postcss=true},697:r=>{const e=2;const t=1;function createError(r,e){const t=new Error("Nondeterministic import's order");const o=e[r];const n=o.find((t=>e[t].indexOf(r)>-1));t.nodes=[r,n];return t}function walkGraph(r,o,n,s,c){if(n[r]===e){return}if(n[r]===t){if(c){return createError(r,o)}return}n[r]=t;const a=o[r];const i=a.length;for(let r=0;r{var e={441:e=>{"use strict"; +/*! https://mths.be/cssesc v3.0.0 by @mathias */var t={};var r=t.hasOwnProperty;var n=function merge(e,t){if(!e){return t}var n={};for(var i in t){n[i]=r.call(e,i)?e[i]:t[i]}return n};var i=/[ -,\.\/:-@\[-\^`\{-~]/;var s=/[ -,\.\/:-@\[\]\^`\{-~]/;var o=/['"\\]/;var a=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;var u=function cssesc(e,t){t=n(t,cssesc.options);if(t.quotes!="single"&&t.quotes!="double"){t.quotes="single"}var r=t.quotes=="double"?'"':"'";var o=t.isIdentifier;var u=e.charAt(0);var c="";var l=0;var f=e.length;while(l126){if(d>=55296&&d<=56319&&l{"use strict";const n=r(133);const i=r(45);const{extractICSS:s}=r(903);const o="cssmodules-pure-no-check";const a="cssmodules-pure-ignore";const isSpacing=e=>e.type==="combinator"&&e.value===" ";const isPureCheckDisabled=e=>{for(const t of e.nodes){if(t.type!=="comment"){return false}if(t.text.trim().startsWith(o)){return true}}return false};function getIgnoreComment(e){if(!e.parent){return}const t=e.parent.index(e);for(let r=t-1;r>=0;r--){const t=e.parent.nodes[r];if(t.type==="comment"){if(t.text.trimStart().startsWith(a)){return t}}else{break}}}function normalizeNodeArray(e){const t=[];e.forEach((e=>{if(Array.isArray(e)){normalizeNodeArray(e).forEach((e=>{t.push(e)}))}else if(e){t.push(e)}}));if(t.length>0&&isSpacing(t[t.length-1])){t.pop()}return t}const u=Symbol("is-pure-selector");function localizeNode(e,t,r){const transform=(t,i)=>{if(i.ignoreNextSpacing&&!isSpacing(t)){throw new Error("Missing whitespace after "+i.ignoreNextSpacing)}if(i.enforceNoSpacing&&isSpacing(t)){throw new Error("Missing whitespace before "+i.enforceNoSpacing)}let s;switch(t.type){case"root":{let e;i.hasPureGlobals=false;s=t.nodes.map((r=>{const n={global:i.global,lastWasSpacing:true,hasLocals:false,explicit:false};r=transform(r,n);if(typeof e==="undefined"){e=n.global}else if(e!==n.global){throw new Error('Inconsistent rule global/local result in rule "'+t+'" (multiple selectors must result in the same mode for the rule)')}if(!n.hasLocals){i.hasPureGlobals=true}return r}));i.global=e;t.nodes=normalizeNodeArray(s);break}case"selector":{s=t.map((e=>transform(e,i)));t=t.clone();t.nodes=normalizeNodeArray(s);break}case"combinator":{if(isSpacing(t)){if(i.ignoreNextSpacing){i.ignoreNextSpacing=false;i.lastWasSpacing=false;i.enforceNoSpacing=false;return null}i.lastWasSpacing=true;return t}break}case"pseudo":{let e;const r=!!t.length;const o=t.value===":local"||t.value===":global";const a=t.value===":import"||t.value===":export";if(a){i.hasLocals=true}else if(r){if(o){if(t.nodes.length===0){throw new Error(`${t.value}() can't be empty`)}if(i.inside){throw new Error(`A ${t.value} is not allowed inside of a ${i.inside}(...)`)}e={global:t.value===":global",inside:t.value,hasLocals:false,explicit:true};s=t.map((t=>transform(t,e))).reduce(((e,t)=>e.concat(t.nodes)),[]);if(s.length){const{before:e,after:r}=t.spaces;const n=s[0];const i=s[s.length-1];n.spaces={before:e,after:n.spaces.after};i.spaces={before:i.spaces.before,after:r}}t=s;break}else{e={global:i.global,inside:i.inside,lastWasSpacing:true,hasLocals:false,explicit:i.explicit};s=t.map((t=>{const r={...e,enforceNoSpacing:false};const n=transform(t,r);e.global=r.global;e.hasLocals=r.hasLocals;return n}));t=t.clone();t.nodes=normalizeNodeArray(s);if(e.hasLocals){i.hasLocals=true}}break}else if(o){if(i.inside){throw new Error(`A ${t.value} is not allowed inside of a ${i.inside}(...)`)}const e=!!t.spaces.before;i.ignoreNextSpacing=i.lastWasSpacing?t.value:false;i.enforceNoSpacing=i.lastWasSpacing?false:t.value;i.global=t.value===":global";i.explicit=true;return e?n.combinator({value:" "}):null}break}case"id":case"class":{if(!t.value){throw new Error("Invalid class or id selector syntax")}if(i.global){break}const e=r.has(t.value);const s=e&&i.explicit;if(!e||s){const e=t.clone();e.spaces={before:"",after:""};t=n.pseudo({value:":local",nodes:[e],spaces:t.spaces});i.hasLocals=true}break}case"nesting":{if(t.value==="&"){i.hasLocals=e.parent[u]}}}i.lastWasSpacing=false;i.ignoreNextSpacing=false;i.enforceNoSpacing=false;return t};const i={global:t==="global",hasPureGlobals:false};i.selector=n((e=>{transform(e,i)})).processSync(e,{updateSelector:false,lossless:true});return i}function localizeDeclNode(e,t){switch(e.type){case"word":if(t.localizeNextItem){if(!t.localAliasMap.has(e.value)){e.value=":local("+e.value+")";t.localizeNextItem=false}}break;case"function":if(t.options&&t.options.rewriteUrl&&e.value.toLowerCase()==="url"){e.nodes.map((e=>{if(e.type!=="string"&&e.type!=="word"){return}let r=t.options.rewriteUrl(t.global,e.value);switch(e.type){case"string":if(e.quote==="'"){r=r.replace(/(\\)/g,"\\$1").replace(/'/g,"\\'")}if(e.quote==='"'){r=r.replace(/(\\)/g,"\\$1").replace(/"/g,'\\"')}break;case"word":r=r.replace(/("|'|\)|\\)/g,"\\$1");break}e.value=r}))}break}return e}const c=["none","inherit","initial","revert","revert-layer","unset"];function localizeDeclarationValues(e,t,r){const n=i(t.value);n.walk(((t,n,i)=>{if(t.type==="function"&&(t.value.toLowerCase()==="var"||t.value.toLowerCase()==="env")){return false}if(t.type==="word"&&c.includes(t.value.toLowerCase())){return}const s={options:r.options,global:r.global,localizeNextItem:e&&!r.global,localAliasMap:r.localAliasMap};i[n]=localizeDeclNode(t,s)}));t.value=n.toString()}const l=/^-?([a-z\u0080-\uFFFF_]|(\\[^\r\n\f])|-(?![0-9]))((\\[^\r\n\f])|[a-z\u0080-\uFFFF_0-9-])*$/i;const f={$normal:1,$reverse:1,$alternate:1,"$alternate-reverse":1,$forwards:1,$backwards:1,$both:1,$infinite:1,$paused:1,$running:1,$ease:1,"$ease-in":1,"$ease-out":1,"$ease-in-out":1,$linear:1,"$step-end":1,"$step-start":1,$none:Infinity,$initial:Infinity,$inherit:Infinity,$unset:Infinity,$revert:Infinity,"$revert-layer":Infinity};function localizeDeclaration(e,t){const r=/animation(-name)?$/i.test(e.prop);if(r){let r={};const n=i(e.value).walk((e=>{if(e.type==="div"){r={};return}else if(e.type==="function"&&e.value.toLowerCase()==="local"&&e.nodes.length===1){e.type="word";e.value=e.nodes[0].value;return localizeDeclNode(e,{options:t.options,global:t.global,localizeNextItem:true,localAliasMap:t.localAliasMap})}else if(e.type==="function"){if(e.value.toLowerCase()==="global"&&e.nodes.length===1){e.type="word";e.value=e.nodes[0].value}return false}else if(e.type!=="word"){return}const n=e.type==="word"?e.value.toLowerCase():null;let i=false;if(n&&l.test(n)){if("$"+n in f){r["$"+n]="$"+n in r?r["$"+n]+1:0;i=r["$"+n]>=f["$"+n]}else{i=true}}return localizeDeclNode(e,{options:t.options,global:t.global,localizeNextItem:i&&!t.global,localAliasMap:t.localAliasMap})}));e.value=n.toString();return}if(/url\(/i.test(e.value)){return localizeDeclarationValues(false,e,t)}}const isPureSelector=(e,t)=>{if(!t.parent||t.type==="root"){return!e.hasPureGlobals}if(t.type==="rule"&&t[u]){return t[u]||isPureSelector(e,t.parent)}return!e.hasPureGlobals||isPureSelector(e,t.parent)};const isNodeWithoutDeclarations=e=>{if(e.nodes.length>0){return!e.nodes.every((e=>e.type==="rule"||e.type==="atrule"&&!isNodeWithoutDeclarations(e)))}return true};e.exports=(e={})=>{if(e&&e.mode&&e.mode!=="global"&&e.mode!=="local"&&e.mode!=="pure"){throw new Error('options.mode must be either "global", "local" or "pure" (default "local")')}const t=e&&e.mode==="pure";const r=e&&e.mode==="global";return{postcssPlugin:"postcss-modules-local-by-default",prepare(){const n=new Map;return{Once(i){const{icssImports:o}=s(i,false);const a=t&&!isPureCheckDisabled(i);Object.keys(o).forEach((e=>{Object.keys(o[e]).forEach((t=>{n.set(t,o[e][t])}))}));i.walkAtRules((i=>{if(/keyframes$/i.test(i.name)){const t=/^\s*:global\s*\((.+)\)\s*$/.exec(i.params);const s=/^\s*:local\s*\((.+)\)\s*$/.exec(i.params);let o=r;if(t){if(a){const e=getIgnoreComment(i);if(!e){throw i.error("@keyframes :global(...) is not allowed in pure mode")}else{e.remove()}}i.params=t[1];o=true}else if(s){i.params=s[0];o=false}else if(i.params&&!r&&!n.has(i.params)){i.params=":local("+i.params+")"}i.walkDecls((t=>{localizeDeclaration(t,{localAliasMap:n,options:e,global:o})}))}else if(/scope$/i.test(i.name)){if(i.params){const r=t?getIgnoreComment(i):undefined;if(r){r.remove()}i.params=i.params.split("to").map((t=>{const s=t.trim().slice(1,-1).trim();const o=localizeNode(s,e.mode,n);o.options=e;o.localAliasMap=n;if(a&&o.hasPureGlobals&&!r){throw i.error('Selector in at-rule"'+s+'" is not pure '+"(pure selectors must contain at least one local class or id)")}return`(${o.selector})`})).join(" to ")}i.nodes.forEach((t=>{if(t.type==="decl"){localizeDeclaration(t,{localAliasMap:n,options:e,global:r})}}))}else if(i.nodes){i.nodes.forEach((t=>{if(t.type==="decl"){localizeDeclaration(t,{localAliasMap:n,options:e,global:r})}}))}}));i.walkRules((r=>{if(r.parent&&r.parent.type==="atrule"&&/keyframes$/i.test(r.parent.name)){return}const i=localizeNode(r,e.mode,n);i.options=e;i.localAliasMap=n;const s=a?getIgnoreComment(r):undefined;const o=a&&!isPureSelector(i,r);if(o&&isNodeWithoutDeclarations(r)&&!s){throw r.error('Selector "'+r.selector+'" is not pure '+"(pure selectors must contain at least one local class or id)")}else if(s){s.remove()}if(t){r[u]=!o}r.selector=i.selector;if(r.nodes){r.nodes.forEach((e=>localizeDeclaration(e,i)))}}))}}}}};e.exports.postcss=true},133:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(128));var i=_interopRequireWildcard(r(60));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var r=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var r=_getRequireWildcardCache(t);if(r&&r.has(e)){return r.get(e)}var n={};var i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e){if(s!=="default"&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;if(o&&(o.get||o.set)){Object.defineProperty(n,s,o)}else{n[s]=e[s]}}}n["default"]=e;if(r){r.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var s=function parser(e){return new n["default"](e)};Object.assign(s,i);delete s.__esModule;var o=s;t["default"]=o;e.exports=t.default},553:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(478));var i=_interopRequireDefault(r(193));var s=_interopRequireDefault(r(692));var o=_interopRequireDefault(r(416));var a=_interopRequireDefault(r(114));var u=_interopRequireDefault(r(830));var c=_interopRequireDefault(r(54));var l=_interopRequireDefault(r(330));var f=_interopRequireWildcard(r(767));var p=_interopRequireDefault(r(627));var d=_interopRequireDefault(r(242));var h=_interopRequireDefault(r(426));var v=_interopRequireDefault(r(549));var _=_interopRequireWildcard(r(999));var y=_interopRequireWildcard(r(530));var g=_interopRequireWildcard(r(763));var b=r(362);var S,m;function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var r=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var r=_getRequireWildcardCache(t);if(r&&r.has(e)){return r.get(e)}var n={};var i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e){if(s!=="default"&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;if(o&&(o.get||o.set)){Object.defineProperty(n,s,o)}else{n[s]=e[s]}}}n["default"]=e;if(r){r.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r0){var n=this.current.last;if(n){var i=this.convertWhitespaceNodesToSpace(r),s=i.space,o=i.rawSpace;if(o!==undefined){n.rawSpaceAfter+=o}n.spaces.after+=s}else{r.forEach((function(t){return e.newNode(t)}))}}return}var a=this.currToken;var u=undefined;if(t>this.position){u=this.parseWhitespaceEquivalentTokens(t)}var c;if(this.isNamedCombinator()){c=this.namedCombinator()}else if(this.currToken[_.FIELDS.TYPE]===y.combinator){c=new d["default"]({value:this.content(),source:getTokenSource(this.currToken),sourceIndex:this.currToken[_.FIELDS.START_POS]});this.position++}else if(O[this.currToken[_.FIELDS.TYPE]]){}else if(!u){this.unexpected()}if(c){if(u){var l=this.convertWhitespaceNodesToSpace(u),f=l.space,p=l.rawSpace;c.spaces.before=f;c.rawSpaceBefore=p}}else{var h=this.convertWhitespaceNodesToSpace(u,true),v=h.space,g=h.rawSpace;if(!g){g=v}var b={};var S={spaces:{}};if(v.endsWith(" ")&&g.endsWith(" ")){b.before=v.slice(0,v.length-1);S.spaces.before=g.slice(0,g.length-1)}else if(v.startsWith(" ")&&g.startsWith(" ")){b.after=v.slice(1);S.spaces.after=g.slice(1)}else{S.value=g}c=new d["default"]({value:" ",source:getTokenSourceSpan(a,this.tokens[this.position-1]),sourceIndex:a[_.FIELDS.START_POS],spaces:b,raws:S})}if(this.currToken&&this.currToken[_.FIELDS.TYPE]===y.space){c.spaces.after=this.optionalSpace(this.content());this.position++}return this.newNode(c)};e.comma=function comma(){if(this.position===this.tokens.length-1){this.root.trailingComma=true;this.position++;return}this.current._inferEndPosition();var e=new i["default"]({source:{start:tokenStart(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][_.FIELDS.START_POS]});this.current.parent.append(e);this.current=e;this.position++};e.comment=function comment(){var e=this.currToken;this.newNode(new o["default"]({value:this.content(),source:getTokenSource(e),sourceIndex:e[_.FIELDS.START_POS]}));this.position++};e.error=function error(e,t){throw this.root.error(e,t)};e.missingBackslash=function missingBackslash(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[_.FIELDS.START_POS]})};e.missingParenthesis=function missingParenthesis(){return this.expected("opening parenthesis",this.currToken[_.FIELDS.START_POS])};e.missingSquareBracket=function missingSquareBracket(){return this.expected("opening square bracket",this.currToken[_.FIELDS.START_POS])};e.unexpected=function unexpected(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[_.FIELDS.START_POS])};e.unexpectedPipe=function unexpectedPipe(){return this.error("Unexpected '|'.",this.currToken[_.FIELDS.START_POS])};e.namespace=function namespace(){var e=this.prevToken&&this.content(this.prevToken)||true;if(this.nextToken[_.FIELDS.TYPE]===y.word){this.position++;return this.word(e)}else if(this.nextToken[_.FIELDS.TYPE]===y.asterisk){this.position++;return this.universal(e)}this.unexpectedPipe()};e.nesting=function nesting(){if(this.nextToken){var e=this.content(this.nextToken);if(e==="|"){this.position++;return}}var t=this.currToken;this.newNode(new h["default"]({value:this.content(),source:getTokenSource(t),sourceIndex:t[_.FIELDS.START_POS]}));this.position++};e.parentheses=function parentheses(){var e=this.current.last;var t=1;this.position++;if(e&&e.type===g.PSEUDO){var r=new i["default"]({source:{start:tokenStart(this.tokens[this.position])},sourceIndex:this.tokens[this.position][_.FIELDS.START_POS]});var n=this.current;e.append(r);this.current=r;while(this.position1&&e.nextToken&&e.nextToken[_.FIELDS.TYPE]===y.openParenthesis){e.error("Misplaced parenthesis.",{index:e.nextToken[_.FIELDS.START_POS]})}}))}else{return this.expected(["pseudo-class","pseudo-element"],this.currToken[_.FIELDS.START_POS])}};e.space=function space(){var e=this.content();if(this.position===0||this.prevToken[_.FIELDS.TYPE]===y.comma||this.prevToken[_.FIELDS.TYPE]===y.openParenthesis||this.current.nodes.every((function(e){return e.type==="comment"}))){this.spaces=this.optionalSpace(e);this.position++}else if(this.position===this.tokens.length-1||this.nextToken[_.FIELDS.TYPE]===y.comma||this.nextToken[_.FIELDS.TYPE]===y.closeParenthesis){this.current.last.spaces.after=this.optionalSpace(e);this.position++}else{this.combinator()}};e.string=function string(){var e=this.currToken;this.newNode(new c["default"]({value:this.content(),source:getTokenSource(e),sourceIndex:e[_.FIELDS.START_POS]}));this.position++};e.universal=function universal(e){var t=this.nextToken;if(t&&this.content(t)==="|"){this.position++;return this.namespace()}var r=this.currToken;this.newNode(new p["default"]({value:this.content(),source:getTokenSource(r),sourceIndex:r[_.FIELDS.START_POS]}),e);this.position++};e.splitWord=function splitWord(e,t){var r=this;var n=this.nextToken;var i=this.content();while(n&&~[y.dollar,y.caret,y.equals,y.word].indexOf(n[_.FIELDS.TYPE])){this.position++;var o=this.content();i+=o;if(o.lastIndexOf("\\")===o.length-1){var c=this.nextToken;if(c&&c[_.FIELDS.TYPE]===y.space){i+=this.requiredSpace(this.content(c));this.position++}}n=this.nextToken}var l=indexesOf(i,".").filter((function(e){var t=i[e-1]==="\\";var r=/^\d+\.\d+%$/.test(i);return!t&&!r}));var f=indexesOf(i,"#").filter((function(e){return i[e-1]!=="\\"}));var p=indexesOf(i,"#{");if(p.length){f=f.filter((function(e){return!~p.indexOf(e)}))}var d=(0,v["default"])(uniqs([0].concat(l,f)));d.forEach((function(n,o){var c=d[o+1]||i.length;var p=i.slice(n,c);if(o===0&&t){return t.call(r,p,d.length)}var h;var v=r.currToken;var y=v[_.FIELDS.START_POS]+d[o];var g=getSource(v[1],v[2]+n,v[3],v[2]+(c-1));if(~l.indexOf(n)){var b={value:p.slice(1),source:g,sourceIndex:y};h=new s["default"](unescapeProp(b,"value"))}else if(~f.indexOf(n)){var S={value:p.slice(1),source:g,sourceIndex:y};h=new a["default"](unescapeProp(S,"value"))}else{var m={value:p,source:g,sourceIndex:y};unescapeProp(m,"value");h=new u["default"](m)}r.newNode(h,e);e=null}));this.position++};e.word=function word(e){var t=this.nextToken;if(t&&this.content(t)==="|"){this.position++;return this.namespace()}return this.splitWord(e)};e.loop=function loop(){while(this.position{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(553));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var i=function(){function Processor(e,t){this.func=e||function noop(){};this.funcRes=null;this.options=t}var e=Processor.prototype;e._shouldUpdateSelector=function _shouldUpdateSelector(e,t){if(t===void 0){t={}}var r=Object.assign({},this.options,t);if(r.updateSelector===false){return false}else{return typeof e!=="string"}};e._isLossy=function _isLossy(e){if(e===void 0){e={}}var t=Object.assign({},this.options,e);if(t.lossless===false){return true}else{return false}};e._root=function _root(e,t){if(t===void 0){t={}}var r=new n["default"](e,this._parseOptions(t));return r.root};e._parseOptions=function _parseOptions(e){return{lossy:this._isLossy(e)}};e._run=function _run(e,t){var r=this;if(t===void 0){t={}}return new Promise((function(n,i){try{var s=r._root(e,t);Promise.resolve(r.func(s)).then((function(n){var i=undefined;if(r._shouldUpdateSelector(e,t)){i=s.toString();e.selector=i}return{transform:n,root:s,string:i}})).then(n,i)}catch(e){i(e);return}}))};e._runSync=function _runSync(e,t){if(t===void 0){t={}}var r=this._root(e,t);var n=this.func(r);if(n&&typeof n.then==="function"){throw new Error("Selector processor returned a promise to a synchronous call.")}var i=undefined;if(t.updateSelector&&typeof e!=="string"){i=r.toString();e.selector=i}return{transform:n,root:r,string:i}};e.ast=function ast(e,t){return this._run(e,t).then((function(e){return e.root}))};e.astSync=function astSync(e,t){return this._runSync(e,t).root};e.transform=function transform(e,t){return this._run(e,t).then((function(e){return e.transform}))};e.transformSync=function transformSync(e,t){return this._runSync(e,t).transform};e.process=function process(e,t){return this._run(e,t).then((function(e){return e.string||e.root.toString()}))};e.processSync=function processSync(e,t){var r=this._runSync(e,t);return r.string||r.root.toString()};return Processor}();t["default"]=i;e.exports=t.default},767:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;t.unescapeValue=unescapeValue;var n=_interopRequireDefault(r(441));var i=_interopRequireDefault(r(255));var s=_interopRequireDefault(r(929));var o=r(763);var a;function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r0&&!e.quoted&&r.before.length===0&&!(e.spaces.value&&e.spaces.value.after)){r.before=" "}return defaultAttrConcat(t,r)})))}t.push("]");t.push(this.rawSpaceAfter);return t.join("")};_createClass(Attribute,[{key:"quoted",get:function get(){var e=this.quoteMark;return e==="'"||e==='"'},set:function set(e){f()}},{key:"quoteMark",get:function get(){return this._quoteMark},set:function set(e){if(!this._constructed){this._quoteMark=e;return}if(this._quoteMark!==e){this._quoteMark=e;this._syncRawValue()}}},{key:"qualifiedAttribute",get:function get(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function get(){return this.insensitive?"i":""}},{key:"value",get:function get(){return this._value},set:function set(e){if(this._constructed){var t=unescapeValue(e),r=t.deprecatedUsage,n=t.unescaped,i=t.quoteMark;if(r){l()}if(n===this._value&&i===this._quoteMark){return}this._value=n;this._quoteMark=i;this._syncRawValue()}else{this._value=e}}},{key:"insensitive",get:function get(){return this._insensitive},set:function set(e){if(!e){this._insensitive=false;if(this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")){this.raws.insensitiveFlag=undefined}}this._insensitive=e}},{key:"attribute",get:function get(){return this._attribute},set:function set(e){this._handleEscapes("attribute",e);this._attribute=e}}]);return Attribute}(s["default"]);t["default"]=d;d.NO_QUOTE=null;d.SINGLE_QUOTE="'";d.DOUBLE_QUOTE='"';var h=(a={"'":{quotes:"single",wrap:true},'"':{quotes:"double",wrap:true}},a[null]={isIdentifier:true},a);function defaultAttrConcat(e,t){return""+t.before+e+t.after}},692:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(441));var i=r(362);var s=_interopRequireDefault(r(616));var o=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(616));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Combinator,e);function Combinator(t){var r;r=e.call(this,t)||this;r.type=i.COMBINATOR;return r}return Combinator}(n["default"]);t["default"]=s;e.exports=t.default},416:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(616));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Comment,e);function Comment(t){var r;r=e.call(this,t)||this;r.type=i.COMMENT;return r}return Comment}(n["default"]);t["default"]=s;e.exports=t.default},875:(e,t,r)=>{"use strict";t.__esModule=true;t.universal=t.tag=t.string=t.selector=t.root=t.pseudo=t.nesting=t.id=t.comment=t.combinator=t.className=t.attribute=void 0;var n=_interopRequireDefault(r(767));var i=_interopRequireDefault(r(692));var s=_interopRequireDefault(r(242));var o=_interopRequireDefault(r(416));var a=_interopRequireDefault(r(114));var u=_interopRequireDefault(r(426));var c=_interopRequireDefault(r(330));var l=_interopRequireDefault(r(478));var f=_interopRequireDefault(r(193));var p=_interopRequireDefault(r(54));var d=_interopRequireDefault(r(830));var h=_interopRequireDefault(r(627));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var v=function attribute(e){return new n["default"](e)};t.attribute=v;var _=function className(e){return new i["default"](e)};t.className=_;var y=function combinator(e){return new s["default"](e)};t.combinator=y;var g=function comment(e){return new o["default"](e)};t.comment=g;var b=function id(e){return new a["default"](e)};t.id=b;var S=function nesting(e){return new u["default"](e)};t.nesting=S;var m=function pseudo(e){return new c["default"](e)};t.pseudo=m;var O=function root(e){return new l["default"](e)};t.root=O;var w=function selector(e){return new f["default"](e)};t.selector=w;var P=function string(e){return new p["default"](e)};t.string=P;var T=function tag(e){return new d["default"](e)};t.tag=T;var k=function universal(e){return new h["default"](e)};t.universal=k},300:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(616));var i=_interopRequireWildcard(r(763));function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var r=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var r=_getRequireWildcardCache(t);if(r&&r.has(e)){return r.get(e)}var n={};var i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e){if(s!=="default"&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;if(o&&(o.get||o.set)){Object.defineProperty(n,s,o)}else{n[s]=e[s]}}}n["default"]=e;if(r){r.set(e,n)}return n}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _createForOfIteratorHelperLoose(e,t){var r=typeof Symbol!=="undefined"&&e[Symbol.iterator]||e["@@iterator"];if(r)return(r=r.call(e)).next.bind(r);if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||t&&e&&typeof e.length==="number"){if(r)e=r;var n=0;return function(){if(n>=e.length)return{done:true};return{done:false,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(e,t){if(!e)return;if(typeof e==="string")return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _arrayLikeToArray(e,t)}function _arrayLikeToArray(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r=e){this.indexes[r]=t-1}}return this};t.removeAll=function removeAll(){for(var e=_createForOfIteratorHelperLoose(this.nodes),t;!(t=e()).done;){var r=t.value;r.parent=undefined}this.nodes=[];return this};t.empty=function empty(){return this.removeAll()};t.insertAfter=function insertAfter(e,t){t.parent=this;var r=this.index(e);this.nodes.splice(r+1,0,t);t.parent=this;var n;for(var i in this.indexes){n=this.indexes[i];if(r=r){this.indexes[i]=n+1}}return this};t._findChildAtPosition=function _findChildAtPosition(e,t){var r=undefined;this.each((function(n){if(n.atPosition){var i=n.atPosition(e,t);if(i){r=i;return false}}else if(n.isAtPosition(e,t)){r=n;return false}}));return r};t.atPosition=function atPosition(e,t){if(this.isAtPosition(e,t)){return this._findChildAtPosition(e,t)||this}else{return undefined}};t._inferEndPosition=function _inferEndPosition(){if(this.last&&this.last.source&&this.last.source.end){this.source=this.source||{};this.source.end=this.source.end||{};Object.assign(this.source.end,this.last.source.end)}};t.each=function each(e){if(!this.lastEach){this.lastEach=0}if(!this.indexes){this.indexes={}}this.lastEach++;var t=this.lastEach;this.indexes[t]=0;if(!this.length){return undefined}var r,n;while(this.indexes[t]{"use strict";t.__esModule=true;t.isComment=t.isCombinator=t.isClassName=t.isAttribute=void 0;t.isContainer=isContainer;t.isIdentifier=void 0;t.isNamespace=isNamespace;t.isNesting=void 0;t.isNode=isNode;t.isPseudo=void 0;t.isPseudoClass=isPseudoClass;t.isPseudoElement=isPseudoElement;t.isUniversal=t.isTag=t.isString=t.isSelector=t.isRoot=void 0;var n=r(763);var i;var s=(i={},i[n.ATTRIBUTE]=true,i[n.CLASS]=true,i[n.COMBINATOR]=true,i[n.COMMENT]=true,i[n.ID]=true,i[n.NESTING]=true,i[n.PSEUDO]=true,i[n.ROOT]=true,i[n.SELECTOR]=true,i[n.STRING]=true,i[n.TAG]=true,i[n.UNIVERSAL]=true,i);function isNode(e){return typeof e==="object"&&s[e.type]}function isNodeType(e,t){return isNode(t)&&t.type===e}var o=isNodeType.bind(null,n.ATTRIBUTE);t.isAttribute=o;var a=isNodeType.bind(null,n.CLASS);t.isClassName=a;var u=isNodeType.bind(null,n.COMBINATOR);t.isCombinator=u;var c=isNodeType.bind(null,n.COMMENT);t.isComment=c;var l=isNodeType.bind(null,n.ID);t.isIdentifier=l;var f=isNodeType.bind(null,n.NESTING);t.isNesting=f;var p=isNodeType.bind(null,n.PSEUDO);t.isPseudo=p;var d=isNodeType.bind(null,n.ROOT);t.isRoot=d;var h=isNodeType.bind(null,n.SELECTOR);t.isSelector=h;var v=isNodeType.bind(null,n.STRING);t.isString=v;var _=isNodeType.bind(null,n.TAG);t.isTag=_;var y=isNodeType.bind(null,n.UNIVERSAL);t.isUniversal=y;function isPseudoElement(e){return p(e)&&e.value&&(e.value.startsWith("::")||e.value.toLowerCase()===":before"||e.value.toLowerCase()===":after"||e.value.toLowerCase()===":first-letter"||e.value.toLowerCase()===":first-line")}function isPseudoClass(e){return p(e)&&!isPseudoElement(e)}function isContainer(e){return!!(isNode(e)&&e.walk)}function isNamespace(e){return o(e)||_(e)}},114:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(616));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(ID,e);function ID(t){var r;r=e.call(this,t)||this;r.type=i.ID;return r}var t=ID.prototype;t.valueToString=function valueToString(){return"#"+e.prototype.valueToString.call(this)};return ID}(n["default"]);t["default"]=s;e.exports=t.default},60:(e,t,r)=>{"use strict";t.__esModule=true;var n=r(763);Object.keys(n).forEach((function(e){if(e==="default"||e==="__esModule")return;if(e in t&&t[e]===n[e])return;t[e]=n[e]}));var i=r(875);Object.keys(i).forEach((function(e){if(e==="default"||e==="__esModule")return;if(e in t&&t[e]===i[e])return;t[e]=i[e]}));var s=r(93);Object.keys(s).forEach((function(e){if(e==="default"||e==="__esModule")return;if(e in t&&t[e]===s[e])return;t[e]=s[e]}))},929:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(441));var i=r(362);var s=_interopRequireDefault(r(616));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(616));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Nesting,e);function Nesting(t){var r;r=e.call(this,t)||this;r.type=i.NESTING;r.value="&";return r}return Nesting}(n["default"]);t["default"]=s;e.exports=t.default},616:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=r(362);function _defineProperties(e,t){for(var r=0;re){return false}if(this.source.end.linet){return false}if(this.source.end.line===e&&this.source.end.column{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(300));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Pseudo,e);function Pseudo(t){var r;r=e.call(this,t)||this;r.type=i.PSEUDO;return r}var t=Pseudo.prototype;t.toString=function toString(){var e=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),e,this.rawSpaceAfter].join("")};return Pseudo}(n["default"]);t["default"]=s;e.exports=t.default},478:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(300));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(300));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Selector,e);function Selector(t){var r;r=e.call(this,t)||this;r.type=i.SELECTOR;return r}return Selector}(n["default"]);t["default"]=s;e.exports=t.default},54:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(616));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(String,e);function String(t){var r;r=e.call(this,t)||this;r.type=i.STRING;return r}return String}(n["default"]);t["default"]=s;e.exports=t.default},830:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(929));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Tag,e);function Tag(t){var r;r=e.call(this,t)||this;r.type=i.TAG;return r}return Tag}(n["default"]);t["default"]=s;e.exports=t.default},763:(e,t)=>{"use strict";t.__esModule=true;t.UNIVERSAL=t.TAG=t.STRING=t.SELECTOR=t.ROOT=t.PSEUDO=t.NESTING=t.ID=t.COMMENT=t.COMBINATOR=t.CLASS=t.ATTRIBUTE=void 0;var r="tag";t.TAG=r;var n="string";t.STRING=n;var i="selector";t.SELECTOR=i;var s="root";t.ROOT=s;var o="pseudo";t.PSEUDO=o;var a="nesting";t.NESTING=a;var u="id";t.ID=u;var c="comment";t.COMMENT=c;var l="combinator";t.COMBINATOR=l;var f="class";t.CLASS=f;var p="attribute";t.ATTRIBUTE=p;var d="universal";t.UNIVERSAL=d},627:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(929));var i=r(763);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Universal,e);function Universal(t){var r;r=e.call(this,t)||this;r.type=i.UNIVERSAL;r.value="*";return r}return Universal}(n["default"]);t["default"]=s;e.exports=t.default},549:(e,t)=>{"use strict";t.__esModule=true;t["default"]=sortAscending;function sortAscending(e){return e.sort((function(e,t){return e-t}))}e.exports=t.default},530:(e,t)=>{"use strict";t.__esModule=true;t.word=t.tilde=t.tab=t.str=t.space=t.slash=t.singleQuote=t.semicolon=t.plus=t.pipe=t.openSquare=t.openParenthesis=t.newline=t.greaterThan=t.feed=t.equals=t.doubleQuote=t.dollar=t.cr=t.comment=t.comma=t.combinator=t.colon=t.closeSquare=t.closeParenthesis=t.caret=t.bang=t.backslash=t.at=t.asterisk=t.ampersand=void 0;var r=38;t.ampersand=r;var n=42;t.asterisk=n;var i=64;t.at=i;var s=44;t.comma=s;var o=58;t.colon=o;var a=59;t.semicolon=a;var u=40;t.openParenthesis=u;var c=41;t.closeParenthesis=c;var l=91;t.openSquare=l;var f=93;t.closeSquare=f;var p=36;t.dollar=p;var d=126;t.tilde=d;var h=94;t.caret=h;var v=43;t.plus=v;var _=61;t.equals=_;var y=124;t.pipe=y;var g=62;t.greaterThan=g;var b=32;t.space=b;var S=39;t.singleQuote=S;var m=34;t.doubleQuote=m;var O=47;t.slash=O;var w=33;t.bang=w;var P=92;t.backslash=P;var T=13;t.cr=T;var k=12;t.feed=k;var E=10;t.newline=E;var D=9;t.tab=D;var I=S;t.str=I;var L=-1;t.comment=L;var q=-2;t.word=q;var R=-3;t.combinator=R},999:(e,t,r)=>{"use strict";t.__esModule=true;t.FIELDS=void 0;t["default"]=tokenize;var n=_interopRequireWildcard(r(530));var i,s;function _getRequireWildcardCache(e){if(typeof WeakMap!=="function")return null;var t=new WeakMap;var r=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(e){return e?r:t})(e)}function _interopRequireWildcard(e,t){if(!t&&e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var r=_getRequireWildcardCache(t);if(r&&r.has(e)){return r.get(e)}var n={};var i=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var s in e){if(s!=="default"&&Object.prototype.hasOwnProperty.call(e,s)){var o=i?Object.getOwnPropertyDescriptor(e,s):null;if(o&&(o.get||o.set)){Object.defineProperty(n,s,o)}else{n[s]=e[s]}}}n["default"]=e;if(r){r.set(e,n)}return n}var o=(i={},i[n.tab]=true,i[n.newline]=true,i[n.cr]=true,i[n.feed]=true,i);var a=(s={},s[n.space]=true,s[n.tab]=true,s[n.newline]=true,s[n.cr]=true,s[n.feed]=true,s[n.ampersand]=true,s[n.asterisk]=true,s[n.bang]=true,s[n.comma]=true,s[n.colon]=true,s[n.semicolon]=true,s[n.openParenthesis]=true,s[n.closeParenthesis]=true,s[n.openSquare]=true,s[n.closeSquare]=true,s[n.singleQuote]=true,s[n.doubleQuote]=true,s[n.plus]=true,s[n.pipe]=true,s[n.tilde]=true,s[n.greaterThan]=true,s[n.equals]=true,s[n.dollar]=true,s[n.caret]=true,s[n.slash]=true,s);var u={};var c="0123456789abcdefABCDEF";for(var l=0;l0){b=a+_;S=g-y[_].length}else{b=a;S=o}O=n.comment;a=b;d=b;p=g-S}else if(l===n.slash){g=u;O=l;d=a;p=u-o;c=g+1}else{g=consumeWord(r,u);O=n.word;d=a;p=g-o}c=g+1;break}t.push([O,a,u-o,d,p,u,c]);if(S){o=S;S=null}u=c}return t}},184:(e,t)=>{"use strict";t.__esModule=true;t["default"]=ensureObject;function ensureObject(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0){var i=r.shift();if(!e[i]){e[i]={}}e=e[i]}}e.exports=t.default},735:(e,t)=>{"use strict";t.__esModule=true;t["default"]=getProp;function getProp(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0){var i=r.shift();if(!e[i]){return undefined}e=e[i]}return e}e.exports=t.default},362:(e,t,r)=>{"use strict";t.__esModule=true;t.unesc=t.stripComments=t.getProp=t.ensureObject=void 0;var n=_interopRequireDefault(r(255));t.unesc=n["default"];var i=_interopRequireDefault(r(735));t.getProp=i["default"];var s=_interopRequireDefault(r(184));t.ensureObject=s["default"];var o=_interopRequireDefault(r(326));t.stripComments=o["default"];function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},326:(e,t)=>{"use strict";t.__esModule=true;t["default"]=stripComments;function stripComments(e){var t="";var r=e.indexOf("/*");var n=0;while(r>=0){t=t+e.slice(n,r);var i=e.indexOf("*/",r+2);if(i<0){return t}n=i+2;r=e.indexOf("/*",n)}t=t+e.slice(n);return t}e.exports=t.default},255:(e,t)=>{"use strict";t.__esModule=true;t["default"]=unesc;function gobbleHex(e){var t=e.toLowerCase();var r="";var n=false;for(var i=0;i<6&&t[i]!==undefined;i++){var s=t.charCodeAt(i);var o=s>=97&&s<=102||s>=48&&s<=57;n=s===32;if(!o){break}r+=t[i]}if(r.length===0){return undefined}var a=parseInt(r,16);var u=a>=55296&&a<=57343;if(u||a===0||a>1114111){return["�",r.length+(n?1:0)]}return[String.fromCodePoint(a),r.length+(n?1:0)]}var r=/\\/;function unesc(e){var t=r.test(e);if(!t){return e}var n="";for(var i=0;i{e.exports=r(837).deprecate},903:e=>{"use strict";e.exports=require("next/dist/compiled/icss-utils")},45:e=>{"use strict";e.exports=require("next/dist/compiled/postcss-value-parser")},837:e=>{"use strict";e.exports=require("util")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var s=true;try{e[r](i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete t[r]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(742);module.exports=r})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-modules-local-by-default/package.json b/cli/app/node_modules/next/dist/compiled/postcss-modules-local-by-default/package.json new file mode 100644 index 00000000000..7fce070f0f9 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-modules-local-by-default/package.json @@ -0,0 +1 @@ +{"name":"postcss-modules-local-by-default","main":"index.js","author":"Mark Dalgleish","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-modules-scope/index.js b/cli/app/node_modules/next/dist/compiled/postcss-modules-scope/index.js new file mode 100644 index 00000000000..50fde83a77a --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-modules-scope/index.js @@ -0,0 +1,2 @@ +(()=>{var e={441:e=>{"use strict"; +/*! https://mths.be/cssesc v3.0.0 by @mathias */var t={};var r=t.hasOwnProperty;var n=function merge(e,t){if(!e){return t}var n={};for(var i in t){n[i]=r.call(e,i)?e[i]:t[i]}return n};var i=/[ -,\.\/:-@\[-\^`\{-~]/;var s=/[ -,\.\/:-@\[\]\^`\{-~]/;var o=/['"\\]/;var a=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;var u=function cssesc(e,t){t=n(t,cssesc.options);if(t.quotes!="single"&&t.quotes!="double"){t.quotes="single"}var r=t.quotes=="double"?'"':"'";var o=t.isIdentifier;var u=e.charAt(0);var c="";var f=0;var l=e.length;while(f126){if(h>=55296&&h<=56319&&f{"use strict";const n=r(475);const i=Object.prototype.hasOwnProperty;function getSingleLocalNamesForComposes(e){return e.nodes.map((t=>{if(t.type!=="selector"||t.nodes.length!==1){throw new Error(`composition is only allowed when selector is single :local class name not in "${e}"`)}t=t.nodes[0];if(t.type!=="pseudo"||t.value!==":local"||t.nodes.length!==1){throw new Error('composition is only allowed when selector is single :local class name not in "'+e+'", "'+t+'" is weird')}t=t.first;if(t.type!=="selector"||t.length!==1){throw new Error('composition is only allowed when selector is single :local class name not in "'+e+'", "'+t+'" is weird')}t=t.first;if(t.type!=="class"){throw new Error('composition is only allowed when selector is single :local class name not in "'+e+'", "'+t+'" is weird')}return t.value}))}const s="[\\x20\\t\\r\\n\\f]";const o=new RegExp("\\\\([\\da-f]{1,6}"+s+"?|("+s+")|.)","ig");function unescape(e){return e.replace(o,((e,t,r)=>{const n="0x"+t-65536;return n!==n||r?t:n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,n&1023|56320)}))}const plugin=(e={})=>{const t=e&&e.generateScopedName||plugin.generateScopedName;const r=e&&e.generateExportEntry||plugin.generateExportEntry;const s=e&&e.exportGlobals;return{postcssPlugin:"postcss-modules-scope",Once(e,{rule:o}){const a=Object.create(null);function exportScopedName(n,i){const s=t(i?i:n,e.source.input.from,e.source.input.css);const o=r(i?i:n,s,e.source.input.from,e.source.input.css);const{key:u,value:c}=o;a[u]=a[u]||[];if(a[u].indexOf(c)<0){a[u].push(c)}return s}function localizeNode(e){switch(e.type){case"selector":e.nodes=e.map(localizeNode);return e;case"class":return n.className({value:exportScopedName(e.value,e.raws&&e.raws.value?e.raws.value:null)});case"id":{return n.id({value:exportScopedName(e.value,e.raws&&e.raws.value?e.raws.value:null)})}}throw new Error(`${e.type} ("${e}") is not allowed in a :local block`)}function traverseNode(e){switch(e.type){case"pseudo":if(e.value===":local"){if(e.nodes.length!==1){throw new Error('Unexpected comma (",") in :local block')}const t=localizeNode(e.first,e.spaces);t.first.spaces=e.spaces;const r=e.next();if(r&&r.type==="combinator"&&r.value===" "&&/\\[A-F0-9]{1,6}$/.test(t.last.value)){t.last.spaces.after=" "}e.replaceWith(t);return}case"root":case"selector":{e.each(traverseNode);break}case"id":case"class":if(s){a[e.value]=[e.value]}break}return e}const u={};e.walkRules(/^:import\(.+\)$/,(e=>{e.walkDecls((e=>{u[e.prop]=true}))}));e.walkRules((e=>{let t=n().astSync(e);e.selector=traverseNode(t.clone()).toString();e.walkDecls(/composes|compose-with/i,(e=>{const r=getSingleLocalNamesForComposes(t);const n=e.value.split(/\s+/);n.forEach((t=>{const n=/^global\(([^)]+)\)$/.exec(t);if(n){r.forEach((e=>{a[e].push(n[1])}))}else if(i.call(u,t)){r.forEach((e=>{a[e].push(t)}))}else if(i.call(a,t)){r.forEach((e=>{a[t].forEach((t=>{a[e].push(t)}))}))}else{throw e.error(`referenced class name "${t}" in ${e.prop} not found`)}}));e.remove()}));e.walkDecls((e=>{if(!/:local\s*\((.+?)\)/.test(e.value)){return}let t=e.value.split(/(,|'[^']*'|"[^"]*")/);t=t.map(((e,r)=>{if(r===0||t[r-1]===","){let t=e;const r=/:local\s*\((.+?)\)/.exec(e);if(r){const e=r.input;const n=r[0];const i=r[1];const s=exportScopedName(i);t=e.replace(n,s)}else{return e}return t}else{return e}}));e.value=t.join("")}))}));e.walkAtRules(/keyframes$/i,(e=>{const t=/^\s*:local\s*\((.+?)\)\s*$/.exec(e.params);if(!t){return}e.params=exportScopedName(t[1])}));const c=Object.keys(a);if(c.length>0){const t=o({selector:":export"});c.forEach((e=>t.append({prop:e,value:a[e].join(" "),raws:{before:"\n "}})));e.append(t)}}}};plugin.postcss=true;plugin.generateScopedName=function(e,t){const r=t.replace(/\.[^./\\]+$/,"").replace(/[\W_]+/g,"_").replace(/^_|_$/g,"");return`_${r}__${e}`.trim()};plugin.generateExportEntry=function(e,t){return{key:unescape(e),value:unescape(t)}};e.exports=plugin},475:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(605));var i=_interopRequireWildcard(r(534));function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var e=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return e};return e}function _interopRequireWildcard(e){if(e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var t=_getRequireWildcardCache();if(t&&t.has(e)){return t.get(e)}var r={};var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i)){var s=n?Object.getOwnPropertyDescriptor(e,i):null;if(s&&(s.get||s.set)){Object.defineProperty(r,i,s)}else{r[i]=e[i]}}}r["default"]=e;if(t){t.set(e,r)}return r}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var s=function parser(e){return new n["default"](e)};Object.assign(s,i);delete s.__esModule;var o=s;t["default"]=o;e.exports=t.default},969:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(173));var i=_interopRequireDefault(r(589));var s=_interopRequireDefault(r(616));var o=_interopRequireDefault(r(42));var a=_interopRequireDefault(r(46));var u=_interopRequireDefault(r(308));var c=_interopRequireDefault(r(429));var f=_interopRequireDefault(r(794));var l=_interopRequireWildcard(r(382));var p=_interopRequireDefault(r(893));var h=_interopRequireDefault(r(884));var d=_interopRequireDefault(r(743));var v=_interopRequireDefault(r(393));var _=_interopRequireWildcard(r(452));var y=_interopRequireWildcard(r(210));var g=_interopRequireWildcard(r(342));var S=r(984);var b,w;function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var e=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return e};return e}function _interopRequireWildcard(e){if(e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var t=_getRequireWildcardCache();if(t&&t.has(e)){return t.get(e)}var r={};var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i)){var s=n?Object.getOwnPropertyDescriptor(e,i):null;if(s&&(s.get||s.set)){Object.defineProperty(r,i,s)}else{r[i]=e[i]}}}r["default"]=e;if(t){t.set(e,r)}return r}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r0){var n=this.current.last;if(n){var i=this.convertWhitespaceNodesToSpace(r),s=i.space,o=i.rawSpace;if(o!==undefined){n.rawSpaceAfter+=o}n.spaces.after+=s}else{r.forEach((function(t){return e.newNode(t)}))}}return}var a=this.currToken;var u=undefined;if(t>this.position){u=this.parseWhitespaceEquivalentTokens(t)}var c;if(this.isNamedCombinator()){c=this.namedCombinator()}else if(this.currToken[_.FIELDS.TYPE]===y.combinator){c=new h["default"]({value:this.content(),source:getTokenSource(this.currToken),sourceIndex:this.currToken[_.FIELDS.START_POS]});this.position++}else if(T[this.currToken[_.FIELDS.TYPE]]){}else if(!u){this.unexpected()}if(c){if(u){var f=this.convertWhitespaceNodesToSpace(u),l=f.space,p=f.rawSpace;c.spaces.before=l;c.rawSpaceBefore=p}}else{var d=this.convertWhitespaceNodesToSpace(u,true),v=d.space,g=d.rawSpace;if(!g){g=v}var S={};var b={spaces:{}};if(v.endsWith(" ")&&g.endsWith(" ")){S.before=v.slice(0,v.length-1);b.spaces.before=g.slice(0,g.length-1)}else if(v.startsWith(" ")&&g.startsWith(" ")){S.after=v.slice(1);b.spaces.after=g.slice(1)}else{b.value=g}c=new h["default"]({value:" ",source:getTokenSourceSpan(a,this.tokens[this.position-1]),sourceIndex:a[_.FIELDS.START_POS],spaces:S,raws:b})}if(this.currToken&&this.currToken[_.FIELDS.TYPE]===y.space){c.spaces.after=this.optionalSpace(this.content());this.position++}return this.newNode(c)};e.comma=function comma(){if(this.position===this.tokens.length-1){this.root.trailingComma=true;this.position++;return}this.current._inferEndPosition();var e=new i["default"]({source:{start:tokenStart(this.tokens[this.position+1])}});this.current.parent.append(e);this.current=e;this.position++};e.comment=function comment(){var e=this.currToken;this.newNode(new o["default"]({value:this.content(),source:getTokenSource(e),sourceIndex:e[_.FIELDS.START_POS]}));this.position++};e.error=function error(e,t){throw this.root.error(e,t)};e.missingBackslash=function missingBackslash(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[_.FIELDS.START_POS]})};e.missingParenthesis=function missingParenthesis(){return this.expected("opening parenthesis",this.currToken[_.FIELDS.START_POS])};e.missingSquareBracket=function missingSquareBracket(){return this.expected("opening square bracket",this.currToken[_.FIELDS.START_POS])};e.unexpected=function unexpected(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[_.FIELDS.START_POS])};e.namespace=function namespace(){var e=this.prevToken&&this.content(this.prevToken)||true;if(this.nextToken[_.FIELDS.TYPE]===y.word){this.position++;return this.word(e)}else if(this.nextToken[_.FIELDS.TYPE]===y.asterisk){this.position++;return this.universal(e)}};e.nesting=function nesting(){if(this.nextToken){var e=this.content(this.nextToken);if(e==="|"){this.position++;return}}var t=this.currToken;this.newNode(new d["default"]({value:this.content(),source:getTokenSource(t),sourceIndex:t[_.FIELDS.START_POS]}));this.position++};e.parentheses=function parentheses(){var e=this.current.last;var t=1;this.position++;if(e&&e.type===g.PSEUDO){var r=new i["default"]({source:{start:tokenStart(this.tokens[this.position-1])}});var n=this.current;e.append(r);this.current=r;while(this.position1&&e.nextToken&&e.nextToken[_.FIELDS.TYPE]===y.openParenthesis){e.error("Misplaced parenthesis.",{index:e.nextToken[_.FIELDS.START_POS]})}}))}else{return this.expected(["pseudo-class","pseudo-element"],this.currToken[_.FIELDS.START_POS])}};e.space=function space(){var e=this.content();if(this.position===0||this.prevToken[_.FIELDS.TYPE]===y.comma||this.prevToken[_.FIELDS.TYPE]===y.openParenthesis||this.current.nodes.every((function(e){return e.type==="comment"}))){this.spaces=this.optionalSpace(e);this.position++}else if(this.position===this.tokens.length-1||this.nextToken[_.FIELDS.TYPE]===y.comma||this.nextToken[_.FIELDS.TYPE]===y.closeParenthesis){this.current.last.spaces.after=this.optionalSpace(e);this.position++}else{this.combinator()}};e.string=function string(){var e=this.currToken;this.newNode(new c["default"]({value:this.content(),source:getTokenSource(e),sourceIndex:e[_.FIELDS.START_POS]}));this.position++};e.universal=function universal(e){var t=this.nextToken;if(t&&this.content(t)==="|"){this.position++;return this.namespace()}var r=this.currToken;this.newNode(new p["default"]({value:this.content(),source:getTokenSource(r),sourceIndex:r[_.FIELDS.START_POS]}),e);this.position++};e.splitWord=function splitWord(e,t){var r=this;var n=this.nextToken;var i=this.content();while(n&&~[y.dollar,y.caret,y.equals,y.word].indexOf(n[_.FIELDS.TYPE])){this.position++;var o=this.content();i+=o;if(o.lastIndexOf("\\")===o.length-1){var c=this.nextToken;if(c&&c[_.FIELDS.TYPE]===y.space){i+=this.requiredSpace(this.content(c));this.position++}}n=this.nextToken}var f=indexesOf(i,".").filter((function(e){var t=i[e-1]==="\\";var r=/^\d+\.\d+%$/.test(i);return!t&&!r}));var l=indexesOf(i,"#").filter((function(e){return i[e-1]!=="\\"}));var p=indexesOf(i,"#{");if(p.length){l=l.filter((function(e){return!~p.indexOf(e)}))}var h=(0,v["default"])(uniqs([0].concat(f,l)));h.forEach((function(n,o){var c=h[o+1]||i.length;var p=i.slice(n,c);if(o===0&&t){return t.call(r,p,h.length)}var d;var v=r.currToken;var y=v[_.FIELDS.START_POS]+h[o];var g=getSource(v[1],v[2]+n,v[3],v[2]+(c-1));if(~f.indexOf(n)){var S={value:p.slice(1),source:g,sourceIndex:y};d=new s["default"](unescapeProp(S,"value"))}else if(~l.indexOf(n)){var b={value:p.slice(1),source:g,sourceIndex:y};d=new a["default"](unescapeProp(b,"value"))}else{var w={value:p,source:g,sourceIndex:y};unescapeProp(w,"value");d=new u["default"](w)}r.newNode(d,e);e=null}));this.position++};e.word=function word(e){var t=this.nextToken;if(t&&this.content(t)==="|"){this.position++;return this.namespace()}return this.splitWord(e)};e.loop=function loop(){while(this.position{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(969));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var i=function(){function Processor(e,t){this.func=e||function noop(){};this.funcRes=null;this.options=t}var e=Processor.prototype;e._shouldUpdateSelector=function _shouldUpdateSelector(e,t){if(t===void 0){t={}}var r=Object.assign({},this.options,t);if(r.updateSelector===false){return false}else{return typeof e!=="string"}};e._isLossy=function _isLossy(e){if(e===void 0){e={}}var t=Object.assign({},this.options,e);if(t.lossless===false){return true}else{return false}};e._root=function _root(e,t){if(t===void 0){t={}}var r=new n["default"](e,this._parseOptions(t));return r.root};e._parseOptions=function _parseOptions(e){return{lossy:this._isLossy(e)}};e._run=function _run(e,t){var r=this;if(t===void 0){t={}}return new Promise((function(n,i){try{var s=r._root(e,t);Promise.resolve(r.func(s)).then((function(n){var i=undefined;if(r._shouldUpdateSelector(e,t)){i=s.toString();e.selector=i}return{transform:n,root:s,string:i}})).then(n,i)}catch(e){i(e);return}}))};e._runSync=function _runSync(e,t){if(t===void 0){t={}}var r=this._root(e,t);var n=this.func(r);if(n&&typeof n.then==="function"){throw new Error("Selector processor returned a promise to a synchronous call.")}var i=undefined;if(t.updateSelector&&typeof e!=="string"){i=r.toString();e.selector=i}return{transform:n,root:r,string:i}};e.ast=function ast(e,t){return this._run(e,t).then((function(e){return e.root}))};e.astSync=function astSync(e,t){return this._runSync(e,t).root};e.transform=function transform(e,t){return this._run(e,t).then((function(e){return e.transform}))};e.transformSync=function transformSync(e,t){return this._runSync(e,t).transform};e.process=function process(e,t){return this._run(e,t).then((function(e){return e.string||e.root.toString()}))};e.processSync=function processSync(e,t){var r=this._runSync(e,t);return r.string||r.root.toString()};return Processor}();t["default"]=i;e.exports=t.default},382:(e,t,r)=>{"use strict";t.__esModule=true;t.unescapeValue=unescapeValue;t["default"]=void 0;var n=_interopRequireDefault(r(441));var i=_interopRequireDefault(r(30));var s=_interopRequireDefault(r(59));var o=r(342);var a;function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r0&&!e.quoted&&r.before.length===0&&!(e.spaces.value&&e.spaces.value.after)){r.before=" "}return defaultAttrConcat(t,r)})))}t.push("]");t.push(this.rawSpaceAfter);return t.join("")};_createClass(Attribute,[{key:"quoted",get:function get(){var e=this.quoteMark;return e==="'"||e==='"'},set:function set(e){l()}},{key:"quoteMark",get:function get(){return this._quoteMark},set:function set(e){if(!this._constructed){this._quoteMark=e;return}if(this._quoteMark!==e){this._quoteMark=e;this._syncRawValue()}}},{key:"qualifiedAttribute",get:function get(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function get(){return this.insensitive?"i":""}},{key:"value",get:function get(){return this._value},set:function set(e){if(this._constructed){var t=unescapeValue(e),r=t.deprecatedUsage,n=t.unescaped,i=t.quoteMark;if(r){f()}if(n===this._value&&i===this._quoteMark){return}this._value=n;this._quoteMark=i;this._syncRawValue()}else{this._value=e}}},{key:"attribute",get:function get(){return this._attribute},set:function set(e){this._handleEscapes("attribute",e);this._attribute=e}}]);return Attribute}(s["default"]);t["default"]=h;h.NO_QUOTE=null;h.SINGLE_QUOTE="'";h.DOUBLE_QUOTE='"';var d=(a={"'":{quotes:"single",wrap:true},'"':{quotes:"double",wrap:true}},a[null]={isIdentifier:true},a);function defaultAttrConcat(e,t){return""+t.before+e+t.after}},616:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(441));var i=r(984);var s=_interopRequireDefault(r(503));var o=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(503));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Combinator,e);function Combinator(t){var r;r=e.call(this,t)||this;r.type=i.COMBINATOR;return r}return Combinator}(n["default"]);t["default"]=s;e.exports=t.default},42:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(503));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Comment,e);function Comment(t){var r;r=e.call(this,t)||this;r.type=i.COMMENT;return r}return Comment}(n["default"]);t["default"]=s;e.exports=t.default},280:(e,t,r)=>{"use strict";t.__esModule=true;t.universal=t.tag=t.string=t.selector=t.root=t.pseudo=t.nesting=t.id=t.comment=t.combinator=t.className=t.attribute=void 0;var n=_interopRequireDefault(r(382));var i=_interopRequireDefault(r(616));var s=_interopRequireDefault(r(884));var o=_interopRequireDefault(r(42));var a=_interopRequireDefault(r(46));var u=_interopRequireDefault(r(743));var c=_interopRequireDefault(r(794));var f=_interopRequireDefault(r(173));var l=_interopRequireDefault(r(589));var p=_interopRequireDefault(r(429));var h=_interopRequireDefault(r(308));var d=_interopRequireDefault(r(893));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}var v=function attribute(e){return new n["default"](e)};t.attribute=v;var _=function className(e){return new i["default"](e)};t.className=_;var y=function combinator(e){return new s["default"](e)};t.combinator=y;var g=function comment(e){return new o["default"](e)};t.comment=g;var S=function id(e){return new a["default"](e)};t.id=S;var b=function nesting(e){return new u["default"](e)};t.nesting=b;var w=function pseudo(e){return new c["default"](e)};t.pseudo=w;var T=function root(e){return new f["default"](e)};t.root=T;var m=function selector(e){return new l["default"](e)};t.selector=m;var O=function string(e){return new p["default"](e)};t.string=O;var k=function tag(e){return new h["default"](e)};t.tag=k;var P=function universal(e){return new d["default"](e)};t.universal=P},248:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(503));var i=_interopRequireWildcard(r(342));function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var e=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return e};return e}function _interopRequireWildcard(e){if(e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var t=_getRequireWildcardCache();if(t&&t.has(e)){return t.get(e)}var r={};var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i)){var s=n?Object.getOwnPropertyDescriptor(e,i):null;if(s&&(s.get||s.set)){Object.defineProperty(r,i,s)}else{r[i]=e[i]}}}r["default"]=e;if(t){t.set(e,r)}return r}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _createForOfIteratorHelperLoose(e,t){var r;if(typeof Symbol==="undefined"||e[Symbol.iterator]==null){if(Array.isArray(e)||(r=_unsupportedIterableToArray(e))||t&&e&&typeof e.length==="number"){if(r)e=r;var n=0;return function(){if(n>=e.length)return{done:true};return{done:false,value:e[n++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}r=e[Symbol.iterator]();return r.next.bind(r)}function _unsupportedIterableToArray(e,t){if(!e)return;if(typeof e==="string")return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor)r=e.constructor.name;if(r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return _arrayLikeToArray(e,t)}function _arrayLikeToArray(e,t){if(t==null||t>e.length)t=e.length;for(var r=0,n=new Array(t);r=e){this.indexes[r]=t-1}}return this};t.removeAll=function removeAll(){for(var e=_createForOfIteratorHelperLoose(this.nodes),t;!(t=e()).done;){var r=t.value;r.parent=undefined}this.nodes=[];return this};t.empty=function empty(){return this.removeAll()};t.insertAfter=function insertAfter(e,t){t.parent=this;var r=this.index(e);this.nodes.splice(r+1,0,t);t.parent=this;var n;for(var i in this.indexes){n=this.indexes[i];if(r<=n){this.indexes[i]=n+1}}return this};t.insertBefore=function insertBefore(e,t){t.parent=this;var r=this.index(e);this.nodes.splice(r,0,t);t.parent=this;var n;for(var i in this.indexes){n=this.indexes[i];if(n<=r){this.indexes[i]=n+1}}return this};t._findChildAtPosition=function _findChildAtPosition(e,t){var r=undefined;this.each((function(n){if(n.atPosition){var i=n.atPosition(e,t);if(i){r=i;return false}}else if(n.isAtPosition(e,t)){r=n;return false}}));return r};t.atPosition=function atPosition(e,t){if(this.isAtPosition(e,t)){return this._findChildAtPosition(e,t)||this}else{return undefined}};t._inferEndPosition=function _inferEndPosition(){if(this.last&&this.last.source&&this.last.source.end){this.source=this.source||{};this.source.end=this.source.end||{};Object.assign(this.source.end,this.last.source.end)}};t.each=function each(e){if(!this.lastEach){this.lastEach=0}if(!this.indexes){this.indexes={}}this.lastEach++;var t=this.lastEach;this.indexes[t]=0;if(!this.length){return undefined}var r,n;while(this.indexes[t]{"use strict";t.__esModule=true;t.isNode=isNode;t.isPseudoElement=isPseudoElement;t.isPseudoClass=isPseudoClass;t.isContainer=isContainer;t.isNamespace=isNamespace;t.isUniversal=t.isTag=t.isString=t.isSelector=t.isRoot=t.isPseudo=t.isNesting=t.isIdentifier=t.isComment=t.isCombinator=t.isClassName=t.isAttribute=void 0;var n=r(342);var i;var s=(i={},i[n.ATTRIBUTE]=true,i[n.CLASS]=true,i[n.COMBINATOR]=true,i[n.COMMENT]=true,i[n.ID]=true,i[n.NESTING]=true,i[n.PSEUDO]=true,i[n.ROOT]=true,i[n.SELECTOR]=true,i[n.STRING]=true,i[n.TAG]=true,i[n.UNIVERSAL]=true,i);function isNode(e){return typeof e==="object"&&s[e.type]}function isNodeType(e,t){return isNode(t)&&t.type===e}var o=isNodeType.bind(null,n.ATTRIBUTE);t.isAttribute=o;var a=isNodeType.bind(null,n.CLASS);t.isClassName=a;var u=isNodeType.bind(null,n.COMBINATOR);t.isCombinator=u;var c=isNodeType.bind(null,n.COMMENT);t.isComment=c;var f=isNodeType.bind(null,n.ID);t.isIdentifier=f;var l=isNodeType.bind(null,n.NESTING);t.isNesting=l;var p=isNodeType.bind(null,n.PSEUDO);t.isPseudo=p;var h=isNodeType.bind(null,n.ROOT);t.isRoot=h;var d=isNodeType.bind(null,n.SELECTOR);t.isSelector=d;var v=isNodeType.bind(null,n.STRING);t.isString=v;var _=isNodeType.bind(null,n.TAG);t.isTag=_;var y=isNodeType.bind(null,n.UNIVERSAL);t.isUniversal=y;function isPseudoElement(e){return p(e)&&e.value&&(e.value.startsWith("::")||e.value.toLowerCase()===":before"||e.value.toLowerCase()===":after"||e.value.toLowerCase()===":first-letter"||e.value.toLowerCase()===":first-line")}function isPseudoClass(e){return p(e)&&!isPseudoElement(e)}function isContainer(e){return!!(isNode(e)&&e.walk)}function isNamespace(e){return o(e)||_(e)}},46:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(503));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(ID,e);function ID(t){var r;r=e.call(this,t)||this;r.type=i.ID;return r}var t=ID.prototype;t.valueToString=function valueToString(){return"#"+e.prototype.valueToString.call(this)};return ID}(n["default"]);t["default"]=s;e.exports=t.default},534:(e,t,r)=>{"use strict";t.__esModule=true;var n=r(342);Object.keys(n).forEach((function(e){if(e==="default"||e==="__esModule")return;if(e in t&&t[e]===n[e])return;t[e]=n[e]}));var i=r(280);Object.keys(i).forEach((function(e){if(e==="default"||e==="__esModule")return;if(e in t&&t[e]===i[e])return;t[e]=i[e]}));var s=r(836);Object.keys(s).forEach((function(e){if(e==="default"||e==="__esModule")return;if(e in t&&t[e]===s[e])return;t[e]=s[e]}))},59:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(441));var i=r(984);var s=_interopRequireDefault(r(503));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(503));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Nesting,e);function Nesting(t){var r;r=e.call(this,t)||this;r.type=i.NESTING;r.value="&";return r}return Nesting}(n["default"]);t["default"]=s;e.exports=t.default},503:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=r(984);function _defineProperties(e,t){for(var r=0;re){return false}if(this.source.end.linet){return false}if(this.source.end.line===e&&this.source.end.column{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(248));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Pseudo,e);function Pseudo(t){var r;r=e.call(this,t)||this;r.type=i.PSEUDO;return r}var t=Pseudo.prototype;t.toString=function toString(){var e=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),e,this.rawSpaceAfter].join("")};return Pseudo}(n["default"]);t["default"]=s;e.exports=t.default},173:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(248));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _defineProperties(e,t){for(var r=0;r{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(248));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Selector,e);function Selector(t){var r;r=e.call(this,t)||this;r.type=i.SELECTOR;return r}return Selector}(n["default"]);t["default"]=s;e.exports=t.default},429:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(503));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(String,e);function String(t){var r;r=e.call(this,t)||this;r.type=i.STRING;return r}return String}(n["default"]);t["default"]=s;e.exports=t.default},308:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(59));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Tag,e);function Tag(t){var r;r=e.call(this,t)||this;r.type=i.TAG;return r}return Tag}(n["default"]);t["default"]=s;e.exports=t.default},342:(e,t)=>{"use strict";t.__esModule=true;t.UNIVERSAL=t.ATTRIBUTE=t.CLASS=t.COMBINATOR=t.COMMENT=t.ID=t.NESTING=t.PSEUDO=t.ROOT=t.SELECTOR=t.STRING=t.TAG=void 0;var r="tag";t.TAG=r;var n="string";t.STRING=n;var i="selector";t.SELECTOR=i;var s="root";t.ROOT=s;var o="pseudo";t.PSEUDO=o;var a="nesting";t.NESTING=a;var u="id";t.ID=u;var c="comment";t.COMMENT=c;var f="combinator";t.COMBINATOR=f;var l="class";t.CLASS=l;var p="attribute";t.ATTRIBUTE=p;var h="universal";t.UNIVERSAL=h},893:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=void 0;var n=_interopRequireDefault(r(59));var i=r(342);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function _inheritsLoose(e,t){e.prototype=Object.create(t.prototype);e.prototype.constructor=e;_setPrototypeOf(e,t)}function _setPrototypeOf(e,t){_setPrototypeOf=Object.setPrototypeOf||function _setPrototypeOf(e,t){e.__proto__=t;return e};return _setPrototypeOf(e,t)}var s=function(e){_inheritsLoose(Universal,e);function Universal(t){var r;r=e.call(this,t)||this;r.type=i.UNIVERSAL;r.value="*";return r}return Universal}(n["default"]);t["default"]=s;e.exports=t.default},393:(e,t)=>{"use strict";t.__esModule=true;t["default"]=sortAscending;function sortAscending(e){return e.sort((function(e,t){return e-t}))}e.exports=t.default},210:(e,t)=>{"use strict";t.__esModule=true;t.combinator=t.word=t.comment=t.str=t.tab=t.newline=t.feed=t.cr=t.backslash=t.bang=t.slash=t.doubleQuote=t.singleQuote=t.space=t.greaterThan=t.pipe=t.equals=t.plus=t.caret=t.tilde=t.dollar=t.closeSquare=t.openSquare=t.closeParenthesis=t.openParenthesis=t.semicolon=t.colon=t.comma=t.at=t.asterisk=t.ampersand=void 0;var r=38;t.ampersand=r;var n=42;t.asterisk=n;var i=64;t.at=i;var s=44;t.comma=s;var o=58;t.colon=o;var a=59;t.semicolon=a;var u=40;t.openParenthesis=u;var c=41;t.closeParenthesis=c;var f=91;t.openSquare=f;var l=93;t.closeSquare=l;var p=36;t.dollar=p;var h=126;t.tilde=h;var d=94;t.caret=d;var v=43;t.plus=v;var _=61;t.equals=_;var y=124;t.pipe=y;var g=62;t.greaterThan=g;var S=32;t.space=S;var b=39;t.singleQuote=b;var w=34;t.doubleQuote=w;var T=47;t.slash=T;var m=33;t.bang=m;var O=92;t.backslash=O;var k=13;t.cr=k;var P=12;t.feed=P;var E=10;t.newline=E;var D=9;t.tab=D;var q=b;t.str=q;var L=-1;t.comment=L;var R=-2;t.word=R;var I=-3;t.combinator=I},452:(e,t,r)=>{"use strict";t.__esModule=true;t["default"]=tokenize;t.FIELDS=void 0;var n=_interopRequireWildcard(r(210));var i,s;function _getRequireWildcardCache(){if(typeof WeakMap!=="function")return null;var e=new WeakMap;_getRequireWildcardCache=function _getRequireWildcardCache(){return e};return e}function _interopRequireWildcard(e){if(e&&e.__esModule){return e}if(e===null||typeof e!=="object"&&typeof e!=="function"){return{default:e}}var t=_getRequireWildcardCache();if(t&&t.has(e)){return t.get(e)}var r={};var n=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var i in e){if(Object.prototype.hasOwnProperty.call(e,i)){var s=n?Object.getOwnPropertyDescriptor(e,i):null;if(s&&(s.get||s.set)){Object.defineProperty(r,i,s)}else{r[i]=e[i]}}}r["default"]=e;if(t){t.set(e,r)}return r}var o=(i={},i[n.tab]=true,i[n.newline]=true,i[n.cr]=true,i[n.feed]=true,i);var a=(s={},s[n.space]=true,s[n.tab]=true,s[n.newline]=true,s[n.cr]=true,s[n.feed]=true,s[n.ampersand]=true,s[n.asterisk]=true,s[n.bang]=true,s[n.comma]=true,s[n.colon]=true,s[n.semicolon]=true,s[n.openParenthesis]=true,s[n.closeParenthesis]=true,s[n.openSquare]=true,s[n.closeSquare]=true,s[n.singleQuote]=true,s[n.doubleQuote]=true,s[n.plus]=true,s[n.pipe]=true,s[n.tilde]=true,s[n.greaterThan]=true,s[n.equals]=true,s[n.dollar]=true,s[n.caret]=true,s[n.slash]=true,s);var u={};var c="0123456789abcdefABCDEF";for(var f=0;f0){S=a+_;b=g-y[_].length}else{S=a;b=o}T=n.comment;a=S;h=S;p=g-b}else if(f===n.slash){g=u;T=f;h=a;p=u-o;c=g+1}else{g=consumeWord(r,u);T=n.word;h=a;p=g-o}c=g+1;break}t.push([T,a,u-o,h,p,u,c]);if(b){o=b;b=null}u=c}return t}},93:(e,t)=>{"use strict";t.__esModule=true;t["default"]=ensureObject;function ensureObject(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0){var i=r.shift();if(!e[i]){e[i]={}}e=e[i]}}e.exports=t.default},533:(e,t)=>{"use strict";t.__esModule=true;t["default"]=getProp;function getProp(e){for(var t=arguments.length,r=new Array(t>1?t-1:0),n=1;n0){var i=r.shift();if(!e[i]){return undefined}e=e[i]}return e}e.exports=t.default},984:(e,t,r)=>{"use strict";t.__esModule=true;t.stripComments=t.ensureObject=t.getProp=t.unesc=void 0;var n=_interopRequireDefault(r(30));t.unesc=n["default"];var i=_interopRequireDefault(r(533));t.getProp=i["default"];var s=_interopRequireDefault(r(93));t.ensureObject=s["default"];var o=_interopRequireDefault(r(386));t.stripComments=o["default"];function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}},386:(e,t)=>{"use strict";t.__esModule=true;t["default"]=stripComments;function stripComments(e){var t="";var r=e.indexOf("/*");var n=0;while(r>=0){t=t+e.slice(n,r);var i=e.indexOf("*/",r+2);if(i<0){return t}n=i+2;r=e.indexOf("/*",n)}t=t+e.slice(n);return t}e.exports=t.default},30:(e,t)=>{"use strict";t.__esModule=true;t["default"]=unesc;function gobbleHex(e){var t=e.toLowerCase();var r="";var n=false;for(var i=0;i<6&&t[i]!==undefined;i++){var s=t.charCodeAt(i);var o=s>=97&&s<=102||s>=48&&s<=57;n=s===32;if(!o){break}r+=t[i]}if(r.length===0){return undefined}var a=parseInt(r,16);var u=a>=55296&&a<=57343;if(u||a===0||a>1114111){return["�",r.length+(n?1:0)]}return[String.fromCodePoint(a),r.length+(n?1:0)]}var r=/\\/;function unesc(e){var t=r.test(e);if(!t){return e}var n="";for(var i=0;i{e.exports=r(837).deprecate},837:e=>{"use strict";e.exports=require("util")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var s=true;try{e[r](i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete t[r]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(361);module.exports=r})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-modules-scope/package.json b/cli/app/node_modules/next/dist/compiled/postcss-modules-scope/package.json new file mode 100644 index 00000000000..5bd58b07f6f --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-modules-scope/package.json @@ -0,0 +1 @@ +{"name":"postcss-modules-scope","main":"index.js","author":"Glen Maddern","license":"ISC"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-modules-values/index.js b/cli/app/node_modules/next/dist/compiled/postcss-modules-values/index.js new file mode 100644 index 00000000000..1d62b13778d --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-modules-values/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var e={400:(e,r,t)=>{const s=t(903);const a=/^(.+?|\([\s\S]+?\))\s+from\s+("[^"]*"|'[^']*'|[\w-]+)$/;const n=/(?:\s+|^)([\w-]+):?(.*?)$/;const o=/^([\w-]+)(?:\s+as\s+([\w-]+))?/;e.exports=e=>{let r=0;const t=e&&e.createImportedName||(e=>`i__const_${e.replace(/\W/g,"_")}_${r++}`);return{postcssPlugin:"postcss-modules-values",prepare(e){const r=[];const p={};return{Once(i,c){i.walkAtRules(/value/i,(i=>{const c=i.params.match(a);if(c){let[,e,s]=c;if(p[s]){s=p[s]}const a=e.replace(/^\(\s*([\s\S]+)\s*\)$/,"$1").split(/\s*,\s*/).map((e=>{const r=o.exec(e);if(r){const[,e,s=e]=r;const a=t(s);p[s]=a;return{theirName:e,importedName:a}}else{throw new Error(`@import statement "${e}" is invalid!`)}}));r.push({path:s,imports:a});i.remove();return}if(i.params.indexOf("@value")!==-1){e.warn("Invalid value definition: "+i.params)}let[,l,u]=`${i.params}${i.raws.between}`.match(n);const m=u.replace(/\/\*((?!\*\/).*?)\*\//g,"");if(m.length===0){e.warn("Invalid value definition: "+i.params);i.remove();return}let _=/^\s+$/.test(m);if(!_){u=u.trim()}p[l]=s.replaceValueSymbols(u,p);i.remove()}));if(!Object.keys(p).length){return}s.replaceSymbols(i,p);const l=Object.keys(p).map((e=>c.decl({value:p[e],prop:e,raws:{before:"\n "}})));if(l.length>0){const e=c.rule({selector:":export",raws:{after:"\n"}});e.append(l);i.prepend(e)}r.reverse().forEach((({path:e,imports:r})=>{const t=c.rule({selector:`:import(${e})`,raws:{after:"\n"}});r.forEach((({theirName:e,importedName:r})=>{t.append({value:e,prop:r,raws:{before:"\n "}})}));i.prepend(t)}))}}}}};e.exports.postcss=true},903:e=>{e.exports=require("next/dist/compiled/icss-utils")}};var r={};function __nccwpck_require__(t){var s=r[t];if(s!==undefined){return s.exports}var a=r[t]={exports:{}};var n=true;try{e[t](a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete r[t]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(400);module.exports=t})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-modules-values/package.json b/cli/app/node_modules/next/dist/compiled/postcss-modules-values/package.json new file mode 100644 index 00000000000..e7d8ba828df --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-modules-values/package.json @@ -0,0 +1 @@ +{"name":"postcss-modules-values","main":"index.js","author":"Glen Maddern","license":"ISC"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-plugin-stub-for-cssnano-simple/index.js b/cli/app/node_modules/next/dist/compiled/postcss-plugin-stub-for-cssnano-simple/index.js new file mode 100644 index 00000000000..11fdbd6291d --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-plugin-stub-for-cssnano-simple/index.js @@ -0,0 +1 @@ +(()=>{var e={233:(e,r)=>{function pluginCreator(){return{postcssPlugin:"postcss-plugin-stub",prepare(){return{}}}}pluginCreator.postcss=true;Object.defineProperty(r,"__esModule",{value:true});e.exports=pluginCreator;e.exports["default"]=pluginCreator}};var r={};function __nccwpck_require__(t){var _=r[t];if(_!==undefined){return _.exports}var u=r[t]={exports:{}};var p=true;try{e[t](u,u.exports,__nccwpck_require__);p=false}finally{if(p)delete r[t]}return u.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(233);module.exports=t})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-preset-env/index.cjs b/cli/app/node_modules/next/dist/compiled/postcss-preset-env/index.cjs new file mode 100644 index 00000000000..20e8f07b929 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-preset-env/index.cjs @@ -0,0 +1,94 @@ +(()=>{var _={6472:(_,X,ee)=>{let te=ee(1711);function browsersSort(_,X){_=_.split(" ");X=X.split(" ");if(_[0]>X[0]){return 1}else if(_[0]prefix(["border-radius","border-top-left-radius","border-top-right-radius","border-bottom-right-radius","border-bottom-left-radius"],{browsers:_,feature:"border-radius",mistakes:["-khtml-","-ms-","-o-"]})));let ne=ee(2194);f(ne,(_=>prefix(["box-shadow"],{browsers:_,feature:"css-boxshadow",mistakes:["-khtml-"]})));let ie=ee(354);f(ie,(_=>prefix(["animation","animation-name","animation-duration","animation-delay","animation-direction","animation-fill-mode","animation-iteration-count","animation-play-state","animation-timing-function","@keyframes"],{browsers:_,feature:"css-animation",mistakes:["-khtml-","-ms-"]})));let oe=ee(40);f(oe,(_=>prefix(["transition","transition-property","transition-duration","transition-delay","transition-timing-function"],{browsers:_,feature:"css-transitions",mistakes:["-khtml-","-ms-"]})));let ae=ee(4602);f(ae,(_=>prefix(["transform","transform-origin"],{browsers:_,feature:"transforms2d"})));let le=ee(2866);f(le,(_=>{prefix(["perspective","perspective-origin"],{browsers:_,feature:"transforms3d"});return prefix(["transform-style"],{browsers:_,feature:"transforms3d",mistakes:["-ms-","-o-"]})}));f(le,{match:/y\sx|y\s#2/},(_=>prefix(["backface-visibility"],{browsers:_,feature:"transforms3d",mistakes:["-ms-","-o-"]})));let ue=ee(2571);f(ue,{match:/y\sx/},(_=>prefix(["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient"],{browsers:_,feature:"css-gradients",mistakes:["-ms-"],props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"]})));f(ue,{match:/a\sx/},(_=>{_=_.map((_=>{if(/firefox|op/.test(_)){return _}else{return`${_} old`}}));return add(["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient"],{browsers:_,feature:"css-gradients"})}));let ce=ee(6597);f(ce,(_=>prefix(["box-sizing"],{browsers:_,feature:"css3-boxsizing"})));let pe=ee(3882);f(pe,(_=>prefix(["filter"],{browsers:_,feature:"css-filters"})));let fe=ee(1545);f(fe,(_=>prefix(["filter-function"],{browsers:_,feature:"css-filter-function",props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"]})));let de=ee(3166);f(de,{match:/y\sx|y\s#2/},(_=>prefix(["backdrop-filter"],{browsers:_,feature:"css-backdrop-filter"})));let he=ee(7801);f(he,(_=>prefix(["element"],{browsers:_,feature:"css-element-function",props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"]})));let me=ee(7809);f(me,(_=>{prefix(["columns","column-width","column-gap","column-rule","column-rule-color","column-rule-width","column-count","column-rule-style","column-span","column-fill"],{browsers:_,feature:"multicolumn"});let X=_.filter((_=>!/firefox/.test(_)));prefix(["break-before","break-after","break-inside"],{browsers:X,feature:"multicolumn"})}));let ge=ee(9474);f(ge,(_=>prefix(["user-select"],{browsers:_,feature:"user-select-none",mistakes:["-khtml-"]})));let be=ee(4618);f(be,{match:/a\sx/},(_=>{_=_.map((_=>{if(/ie|firefox/.test(_)){return _}else{return`${_} 2009`}}));prefix(["display-flex","inline-flex"],{browsers:_,feature:"flexbox",props:["display"]});prefix(["flex","flex-grow","flex-shrink","flex-basis"],{browsers:_,feature:"flexbox"});prefix(["flex-direction","flex-wrap","flex-flow","justify-content","order","align-items","align-self","align-content"],{browsers:_,feature:"flexbox"})}));f(be,{match:/y\sx/},(_=>{add(["display-flex","inline-flex"],{browsers:_,feature:"flexbox"});add(["flex","flex-grow","flex-shrink","flex-basis"],{browsers:_,feature:"flexbox"});add(["flex-direction","flex-wrap","flex-flow","justify-content","order","align-items","align-self","align-content"],{browsers:_,feature:"flexbox"})}));let ve=ee(3098);f(ve,(_=>prefix(["calc"],{browsers:_,feature:"calc",props:["*"]})));let ye=ee(1188);f(ye,(_=>prefix(["background-origin","background-size"],{browsers:_,feature:"background-img-opts"})));let we=ee(5591);f(we,(_=>prefix(["background-clip"],{browsers:_,feature:"background-clip-text"})));let xe=ee(1328);f(xe,(_=>prefix(["font-feature-settings","font-variant-ligatures","font-language-override"],{browsers:_,feature:"font-feature"})));let ke=ee(3944);f(ke,(_=>prefix(["font-kerning"],{browsers:_,feature:"font-kerning"})));let Se=ee(7097);f(Se,(_=>prefix(["border-image"],{browsers:_,feature:"border-image"})));let _e=ee(4822);f(_e,(_=>prefix(["::selection"],{browsers:_,feature:"css-selection",selector:true})));let Pe=ee(6215);f(Pe,(_=>{prefix(["::placeholder"],{browsers:_.concat(["ie 10 old","ie 11 old","firefox 18 old"]),feature:"css-placeholder",selector:true})}));let Oe=ee(9278);f(Oe,(_=>{prefix([":placeholder-shown"],{browsers:_,feature:"css-placeholder-shown",selector:true})}));let je=ee(5197);f(je,(_=>prefix(["hyphens"],{browsers:_,feature:"css-hyphens"})));let Te=ee(7766);f(Te,(_=>prefix([":fullscreen"],{browsers:_,feature:"fullscreen",selector:true})));let Ee=ee(4643);f(Ee,(_=>prefix(["::backdrop"],{browsers:_,feature:"backdrop",selector:true})));let Fe=ee(2416);f(Fe,(_=>prefix(["::file-selector-button"],{browsers:_,feature:"file-selector-button",selector:true})));let Me=ee(7721);f(Me,(_=>prefix([":autofill"],{browsers:_,feature:"css-autofill",selector:true})));let $e=ee(3247);f($e,(_=>prefix(["tab-size"],{browsers:_,feature:"css3-tabsize"})));let Re=ee(5691);let Ae=["width","min-width","max-width","height","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size","grid","grid-template","grid-template-rows","grid-template-columns","grid-auto-columns","grid-auto-rows"];f(Re,(_=>prefix(["max-content","min-content"],{browsers:_,feature:"intrinsic-width",props:Ae})));f(Re,{match:/x|\s#4/},(_=>prefix(["fill","fill-available"],{browsers:_,feature:"intrinsic-width",props:Ae})));f(Re,{match:/x|\s#5/},(_=>{let X=_.filter((_=>{let[X,ee]=_.split(" ");if(X==="firefox"||X==="and_ff"){return parseInt(ee)<94}else{return true}}));return prefix(["fit-content"],{browsers:X,feature:"intrinsic-width",props:Ae})}));let qe=ee(7437);f(qe,(_=>prefix(["stretch"],{browsers:_,feature:"css-width-stretch",props:Ae})));let ze=ee(8265);f(ze,(_=>prefix(["zoom-in","zoom-out"],{browsers:_,feature:"css3-cursors-newer",props:["cursor"]})));let Ge=ee(2983);f(Ge,(_=>prefix(["grab","grabbing"],{browsers:_,feature:"css3-cursors-grab",props:["cursor"]})));let Ue=ee(8235);f(Ue,(_=>prefix(["sticky"],{browsers:_,feature:"css-sticky",props:["position"]})));let He=ee(1014);f(He,(_=>prefix(["touch-action"],{browsers:_,feature:"pointer"})));let Ze=ee(134);f(Ze,{match:/x.*#[235]/},(_=>prefix(["text-decoration-skip","text-decoration-skip-ink"],{browsers:_,feature:"text-decoration"})));let Ke=ee(1597);f(Ke,(_=>prefix(["text-decoration"],{browsers:_,feature:"text-decoration"})));let Xe=ee(5934);f(Xe,(_=>prefix(["text-decoration-color"],{browsers:_,feature:"text-decoration"})));let et=ee(3874);f(et,(_=>prefix(["text-decoration-line"],{browsers:_,feature:"text-decoration"})));let tt=ee(3480);f(tt,(_=>prefix(["text-decoration-style"],{browsers:_,feature:"text-decoration"})));let rt=ee(744);f(rt,(_=>prefix(["text-size-adjust"],{browsers:_,feature:"text-size-adjust"})));let st=ee(6649);f(st,(_=>{prefix(["mask-clip","mask-composite","mask-image","mask-origin","mask-repeat","mask-border-repeat","mask-border-source"],{browsers:_,feature:"css-masks"});prefix(["mask","mask-position","mask-size","mask-border","mask-border-outset","mask-border-width","mask-border-slice"],{browsers:_,feature:"css-masks"})}));let nt=ee(9205);f(nt,(_=>prefix(["clip-path"],{browsers:_,feature:"css-clip-path"})));let it=ee(6781);f(it,(_=>prefix(["box-decoration-break"],{browsers:_,feature:"css-boxdecorationbreak"})));let ot=ee(1480);f(ot,(_=>prefix(["object-fit","object-position"],{browsers:_,feature:"object-fit"})));let lt=ee(5460);f(lt,(_=>prefix(["shape-margin","shape-outside","shape-image-threshold"],{browsers:_,feature:"css-shapes"})));let ut=ee(7806);f(ut,(_=>prefix(["text-overflow"],{browsers:_,feature:"text-overflow"})));let ct=ee(3504);f(ct,(_=>prefix(["@viewport"],{browsers:_,feature:"css-deviceadaptation"})));let pt=ee(8181);f(pt,{match:/( x($| )|a #2)/},(_=>prefix(["@resolution"],{browsers:_,feature:"css-media-resolution"})));let ft=ee(2807);f(ft,(_=>prefix(["text-align-last"],{browsers:_,feature:"css-text-align-last"})));let dt=ee(8995);f(dt,{match:/y x|a x #1/},(_=>prefix(["pixelated"],{browsers:_,feature:"css-crisp-edges",props:["image-rendering"]})));f(dt,{match:/a x #2/},(_=>prefix(["image-rendering"],{browsers:_,feature:"css-crisp-edges"})));let ht=ee(7395);f(ht,(_=>prefix(["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end"],{browsers:_,feature:"css-logical-props"})));f(ht,{match:/x\s#2/},(_=>prefix(["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end"],{browsers:_,feature:"css-logical-props"})));let mt=ee(4773);f(mt,{match:/#2|x/},(_=>prefix(["appearance"],{browsers:_,feature:"css-appearance"})));let gt=ee(1340);f(gt,(_=>prefix(["scroll-snap-type","scroll-snap-coordinate","scroll-snap-destination","scroll-snap-points-x","scroll-snap-points-y"],{browsers:_,feature:"css-snappoints"})));let bt=ee(1949);f(bt,(_=>prefix(["flow-into","flow-from","region-fragment"],{browsers:_,feature:"css-regions"})));let vt=ee(2237);f(vt,(_=>prefix(["image-set"],{browsers:_,feature:"css-image-set",props:["background","background-image","border-image","cursor","mask","mask-image","list-style","list-style-image","content"]})));let yt=ee(2298);f(yt,{match:/a|x/},(_=>prefix(["writing-mode"],{browsers:_,feature:"css-writing-mode"})));let wt=ee(8786);f(wt,(_=>prefix(["cross-fade"],{browsers:_,feature:"css-cross-fade",props:["background","background-image","border-image","mask","list-style","list-style-image","content","mask-image"]})));let xt=ee(2478);f(xt,(_=>prefix([":read-only",":read-write"],{browsers:_,feature:"css-read-only-write",selector:true})));let kt=ee(5514);f(kt,(_=>prefix(["text-emphasis","text-emphasis-position","text-emphasis-style","text-emphasis-color"],{browsers:_,feature:"text-emphasis"})));let St=ee(6554);f(St,(_=>{prefix(["display-grid","inline-grid"],{browsers:_,feature:"css-grid",props:["display"]});prefix(["grid-template-columns","grid-template-rows","grid-row-start","grid-column-start","grid-row-end","grid-column-end","grid-row","grid-column","grid-area","grid-template","grid-template-areas","place-self"],{browsers:_,feature:"css-grid"})}));f(St,{match:/a x/},(_=>prefix(["grid-column-align","grid-row-align"],{browsers:_,feature:"css-grid"})));let _t=ee(9290);f(_t,(_=>prefix(["text-spacing"],{browsers:_,feature:"css-text-spacing"})));let Pt=ee(9323);f(Pt,(_=>prefix([":any-link"],{browsers:_,feature:"css-any-link",selector:true})));let Ot=ee(7856);f(Ot,(_=>prefix(["isolate"],{browsers:_,feature:"css-unicode-bidi",props:["unicode-bidi"]})));let Ct=ee(6097);f(Ct,(_=>prefix(["plaintext"],{browsers:_,feature:"css-unicode-bidi",props:["unicode-bidi"]})));let jt=ee(9067);f(jt,{match:/y x/},(_=>prefix(["isolate-override"],{browsers:_,feature:"css-unicode-bidi",props:["unicode-bidi"]})));let Tt=ee(3898);f(Tt,{match:/a #1/},(_=>prefix(["overscroll-behavior"],{browsers:_,feature:"css-overscroll-behavior"})));let Et=ee(4838);f(Et,(_=>prefix(["text-orientation"],{browsers:_,feature:"css-text-orientation"})));let Ft=ee(8066);f(Ft,(_=>prefix(["print-color-adjust","color-adjust"],{browsers:_,feature:"css-print-color-adjust"})))},1318:(_,X,ee)=>{let te=ee(9511);class AtRule extends te{add(_,X){let ee=X+_.name;let te=_.parent.some((X=>X.name===ee&&X.params===_.params));if(te){return undefined}let re=this.clone(_,{name:ee});return _.parent.insertBefore(_,re)}process(_){let X=this.parentPrefix(_);for(let ee of this.prefixes){if(!X||X===ee){this.add(_,ee)}}}}_.exports=AtRule},4135:(_,X,ee)=>{let te=ee(4907);let{agents:re}=ee(3768);let se=ee(5701);let ne=ee(6472);let ie=ee(8277);let oe=ee(3872);let ae=ee(4848);let le={browsers:re,prefixes:ne};const ue="\n"+" Replace Autoprefixer `browsers` option to Browserslist config.\n"+" Use `browserslist` key in `package.json` or `.browserslistrc` file.\n"+"\n"+" Using `browsers` option can cause errors. Browserslist config can\n"+" be used for Babel, Autoprefixer, postcss-normalize and other tools.\n"+"\n"+" If you really need to use option, rename it to `overrideBrowserslist`.\n"+"\n"+" Learn more at:\n"+" https://github.com/browserslist/browserslist#readme\n"+" https://twitter.com/browserslist\n"+"\n";function isPlainObject(_){return Object.prototype.toString.apply(_)==="[object Object]"}let ce=new Map;function timeCapsule(_,X){if(X.browsers.selected.length===0){return}if(X.add.selectors.length>0){return}if(Object.keys(X.add).length>2){return}_.warn("Autoprefixer target browsers do not need any prefixes."+"You do not need Autoprefixer anymore.\n"+"Check your Browserslist config to be sure that your targets "+"are set up correctly.\n"+"\n"+" Learn more at:\n"+" https://github.com/postcss/autoprefixer#readme\n"+" https://github.com/browserslist/browserslist#readme\n"+"\n")}_.exports=plugin;function plugin(..._){let X;if(_.length===1&&isPlainObject(_[0])){X=_[0];_=undefined}else if(_.length===0||_.length===1&&!_[0]){_=undefined}else if(_.length<=2&&(Array.isArray(_[0])||!_[0])){X=_[1];_=_[0]}else if(typeof _[_.length-1]==="object"){X=_.pop()}if(!X){X={}}if(X.browser){throw new Error("Change `browser` option to `overrideBrowserslist` in Autoprefixer")}else if(X.browserslist){throw new Error("Change `browserslist` option to `overrideBrowserslist` in Autoprefixer")}if(X.overrideBrowserslist){_=X.overrideBrowserslist}else if(X.browsers){if(typeof console!=="undefined"&&console.warn){console.warn(se.red(ue.replace(/`[^`]+`/g,(_=>se.yellow(_.slice(1,-1))))))}_=X.browsers}let ee={env:X.env,ignoreUnknownVersions:X.ignoreUnknownVersions,stats:X.stats};function loadPrefixes(te){let re=le;let se=new ie(re.browsers,_,te,ee);let ne=se.selected.join(", ")+JSON.stringify(X);if(!ce.has(ne)){ce.set(ne,new ae(re.prefixes,se,X))}return ce.get(ne)}return{browsers:_,info(_){_=_||{};_.from=_.from||process.cwd();return oe(loadPrefixes(_))},options:X,postcssPlugin:"autoprefixer",prepare(_){let ee=loadPrefixes({env:X.env,from:_.opts.from});return{OnceExit(te){timeCapsule(_,ee);if(X.remove!==false){ee.processor.remove(te,_)}if(X.add!==false){ee.processor.add(te,_)}}}}}}plugin.postcss=true;plugin.data=le;plugin.defaults=te.defaults;plugin.info=()=>plugin().info()},8500:_=>{function last(_){return _[_.length-1]}let X={parse(_){let X=[""];let ee=[X];for(let te of _){if(te==="("){X=[""];last(ee).push(X);ee.push(X);continue}if(te===")"){ee.pop();X=last(ee);X.push("");continue}X[X.length-1]+=te}return ee[0]},stringify(_){let ee="";for(let te of _){if(typeof te==="object"){ee+=`(${X.stringify(te)})`;continue}ee+=te}return ee}};_.exports=X},8277:(_,X,ee)=>{let te=ee(4907);let{agents:re}=ee(3768);let se=ee(699);class Browsers{constructor(_,X,ee,te){this.data=_;this.options=ee||{};this.browserslistOpts=te||{};this.selected=this.parse(X)}static prefixes(){if(this.prefixesCache){return this.prefixesCache}this.prefixesCache=[];for(let _ in re){this.prefixesCache.push(`-${re[_].prefix}-`)}this.prefixesCache=se.uniq(this.prefixesCache).sort(((_,X)=>X.length-_.length));return this.prefixesCache}static withPrefix(_){if(!this.prefixesRegexp){this.prefixesRegexp=new RegExp(this.prefixes().join("|"))}return this.prefixesRegexp.test(_)}isSelected(_){return this.selected.includes(_)}parse(_){let X={};for(let _ in this.browserslistOpts){X[_]=this.browserslistOpts[_]}X.path=this.options.from;return te(_,X)}prefix(_){let[X,ee]=_.split(" ");let te=this.data[X];let re=te.prefix_exceptions&&te.prefix_exceptions[ee];if(!re){re=te.prefix}return`-${re}-`}}_.exports=Browsers},4750:(_,X,ee)=>{let te=ee(8277);let re=ee(9511);let se=ee(699);class Declaration extends re{add(_,X,ee,te){let re=this.prefixed(_.prop,X);if(this.isAlready(_,re)||this.otherPrefixes(_.value,X)){return undefined}return this.insert(_,X,ee,te)}calcBefore(_,X,ee=""){let te=this.maxPrefixed(_,X);let re=te-se.removeNote(ee).length;let ne=X.raw("before");if(re>0){ne+=Array(re).fill(" ").join("")}return ne}check(){return true}insert(_,X,ee){let te=this.set(this.clone(_),X);if(!te)return undefined;let re=_.parent.some((_=>_.prop===te.prop&&_.value===te.value));if(re){return undefined}if(this.needCascade(_)){te.raws.before=this.calcBefore(ee,_,X)}return _.parent.insertBefore(_,te)}isAlready(_,X){let ee=this.all.group(_).up((_=>_.prop===X));if(!ee){ee=this.all.group(_).down((_=>_.prop===X))}return ee}maxPrefixed(_,X){if(X._autoprefixerMax){return X._autoprefixerMax}let ee=0;for(let X of _){X=se.removeNote(X);if(X.length>ee){ee=X.length}}X._autoprefixerMax=ee;return X._autoprefixerMax}needCascade(_){if(!_._autoprefixerCascade){_._autoprefixerCascade=this.all.options.cascade!==false&&_.raw("before").includes("\n")}return _._autoprefixerCascade}normalize(_){return _}old(_,X){return[this.prefixed(_,X)]}otherPrefixes(_,X){for(let ee of te.prefixes()){if(ee===X){continue}if(_.includes(ee)){return _.replace(/var\([^)]+\)/,"").includes(ee)}}return false}prefixed(_,X){return X+_}process(_,X){if(!this.needCascade(_)){super.process(_,X);return}let ee=super.process(_,X);if(!ee||!ee.length){return}this.restoreBefore(_);_.raws.before=this.calcBefore(ee,_)}restoreBefore(_){let X=_.raw("before").split("\n");let ee=X[X.length-1];this.all.group(_).up((_=>{let X=_.raw("before").split("\n");let te=X[X.length-1];if(te.length{let te=ee(4750);let re=ee(1902);class AlignContent extends te{normalize(){return"align-content"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2012){return X+"flex-line-pack"}return super.prefixed(_,X)}set(_,X){let ee=re(X)[0];if(ee===2012){_.value=AlignContent.oldValues[_.value]||_.value;return super.set(_,X)}if(ee==="final"){return super.set(_,X)}return undefined}}AlignContent.names=["align-content","flex-line-pack"];AlignContent.oldValues={"flex-end":"end","flex-start":"start","space-around":"distribute","space-between":"justify"};_.exports=AlignContent},1262:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class AlignItems extends te{normalize(){return"align-items"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2009){return X+"box-align"}if(ee===2012){return X+"flex-align"}return super.prefixed(_,X)}set(_,X){let ee=re(X)[0];if(ee===2009||ee===2012){_.value=AlignItems.oldValues[_.value]||_.value}return super.set(_,X)}}AlignItems.names=["align-items","flex-align","box-align"];AlignItems.oldValues={"flex-end":"end","flex-start":"start"};_.exports=AlignItems},2537:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class AlignSelf extends te{check(_){return _.parent&&!_.parent.some((_=>_.prop&&_.prop.startsWith("grid-")))}normalize(){return"align-self"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2012){return X+"flex-item-align"}return super.prefixed(_,X)}set(_,X){let ee=re(X)[0];if(ee===2012){_.value=AlignSelf.oldValues[_.value]||_.value;return super.set(_,X)}if(ee==="final"){return super.set(_,X)}return undefined}}AlignSelf.names=["align-self","flex-item-align"];AlignSelf.oldValues={"flex-end":"end","flex-start":"start"};_.exports=AlignSelf},5136:(_,X,ee)=>{let te=ee(4750);class Animation extends te{check(_){return!_.value.split(/\s+/).some((_=>{let X=_.toLowerCase();return X==="reverse"||X==="alternate-reverse"}))}}Animation.names=["animation","animation-direction"];_.exports=Animation},256:(_,X,ee)=>{let te=ee(4750);let re=ee(699);class Appearance extends te{constructor(_,X,ee){super(_,X,ee);if(this.prefixes){this.prefixes=re.uniq(this.prefixes.map((_=>{if(_==="-ms-"){return"-webkit-"}return _})))}}}Appearance.names=["appearance"];_.exports=Appearance},2087:(_,X,ee)=>{let te=ee(7276);let re=ee(699);class Autofill extends te{constructor(_,X,ee){super(_,X,ee);if(this.prefixes){this.prefixes=re.uniq(this.prefixes.map((()=>"-webkit-")))}}prefixed(_){if(_==="-webkit-"){return":-webkit-autofill"}return`:${_}autofill`}}Autofill.names=[":autofill"];_.exports=Autofill},6921:(_,X,ee)=>{let te=ee(4750);let re=ee(699);class BackdropFilter extends te{constructor(_,X,ee){super(_,X,ee);if(this.prefixes){this.prefixes=re.uniq(this.prefixes.map((_=>_==="-ms-"?"-webkit-":_)))}}}BackdropFilter.names=["backdrop-filter"];_.exports=BackdropFilter},8641:(_,X,ee)=>{let te=ee(4750);let re=ee(699);class BackgroundClip extends te{constructor(_,X,ee){super(_,X,ee);if(this.prefixes){this.prefixes=re.uniq(this.prefixes.map((_=>_==="-ms-"?"-webkit-":_)))}}check(_){return _.value.toLowerCase()==="text"}}BackgroundClip.names=["background-clip"];_.exports=BackgroundClip},2100:(_,X,ee)=>{let te=ee(4750);class BackgroundSize extends te{set(_,X){let ee=_.value.toLowerCase();if(X==="-webkit-"&&!ee.includes(" ")&&ee!=="contain"&&ee!=="cover"){_.value=_.value+" "+_.value}return super.set(_,X)}}BackgroundSize.names=["background-size"];_.exports=BackgroundSize},305:(_,X,ee)=>{let te=ee(4750);class BlockLogical extends te{normalize(_){if(_.includes("-before")){return _.replace("-before","-block-start")}return _.replace("-after","-block-end")}prefixed(_,X){if(_.includes("-start")){return X+_.replace("-block-start","-before")}return X+_.replace("-block-end","-after")}}BlockLogical.names=["border-block-start","border-block-end","margin-block-start","margin-block-end","padding-block-start","padding-block-end","border-before","border-after","margin-before","margin-after","padding-before","padding-after"];_.exports=BlockLogical},6162:(_,X,ee)=>{let te=ee(4750);class BorderImage extends te{set(_,X){_.value=_.value.replace(/\s+fill(\s)/,"$1");return super.set(_,X)}}BorderImage.names=["border-image"];_.exports=BorderImage},4917:(_,X,ee)=>{let te=ee(4750);class BorderRadius extends te{normalize(_){return BorderRadius.toNormal[_]||_}prefixed(_,X){if(X==="-moz-"){return X+(BorderRadius.toMozilla[_]||_)}return super.prefixed(_,X)}}BorderRadius.names=["border-radius"];BorderRadius.toMozilla={};BorderRadius.toNormal={};for(let _ of["top","bottom"]){for(let X of["left","right"]){let ee=`border-${_}-${X}-radius`;let te=`border-radius-${_}${X}`;BorderRadius.names.push(ee);BorderRadius.names.push(te);BorderRadius.toMozilla[ee]=te;BorderRadius.toNormal[te]=ee}}_.exports=BorderRadius},2928:(_,X,ee)=>{let te=ee(4750);class BreakProps extends te{insert(_,X,ee){if(_.prop!=="break-inside"){return super.insert(_,X,ee)}if(/region/i.test(_.value)||/page/i.test(_.value)){return undefined}return super.insert(_,X,ee)}normalize(_){if(_.includes("inside")){return"break-inside"}if(_.includes("before")){return"break-before"}return"break-after"}prefixed(_,X){return`${X}column-${_}`}set(_,X){if(_.prop==="break-inside"&&_.value==="avoid-column"||_.value==="avoid-page"){_.value="avoid"}return super.set(_,X)}}BreakProps.names=["break-inside","page-break-inside","column-break-inside","break-before","page-break-before","column-break-before","break-after","page-break-after","column-break-after"];_.exports=BreakProps},6575:(_,X,ee)=>{let te=ee(977).list;let re=ee(3129);class CrossFade extends re{replace(_,X){return te.space(_).map((_=>{if(_.slice(0,+this.name.length+1)!==this.name+"("){return _}let ee=_.lastIndexOf(")");let te=_.slice(ee+1);let re=_.slice(this.name.length+1,ee);if(X==="-webkit-"){let _=re.match(/\d*.?\d+%?/);if(_){re=re.slice(_[0].length).trim();re+=`, ${_[0]}`}else{re+=", 0.5"}}return X+this.name+"("+re+")"+te})).join(" ")}}CrossFade.names=["cross-fade"];_.exports=CrossFade},6700:(_,X,ee)=>{let te=ee(2097);let re=ee(3129);let se=ee(1902);class DisplayFlex extends re{constructor(_,X){super(_,X);if(_==="display-flex"){this.name="flex"}}check(_){return _.prop==="display"&&_.value===this.name}old(_){let X=this.prefixed(_);if(!X)return undefined;return new te(this.name,X)}prefixed(_){let X,ee;[X,_]=se(_);if(X===2009){if(this.name==="flex"){ee="box"}else{ee="inline-box"}}else if(X===2012){if(this.name==="flex"){ee="flexbox"}else{ee="inline-flexbox"}}else if(X==="final"){ee=this.name}return _+ee}replace(_,X){return this.prefixed(X)}}DisplayFlex.names=["display-flex","inline-flex"];_.exports=DisplayFlex},6898:(_,X,ee)=>{let te=ee(3129);class DisplayGrid extends te{constructor(_,X){super(_,X);if(_==="display-grid"){this.name="grid"}}check(_){return _.prop==="display"&&_.value===this.name}}DisplayGrid.names=["display-grid","inline-grid"];_.exports=DisplayGrid},3594:(_,X,ee)=>{let te=ee(7276);let re=ee(699);class FileSelectorButton extends te{constructor(_,X,ee){super(_,X,ee);if(this.prefixes){this.prefixes=re.uniq(this.prefixes.map((()=>"-webkit-")))}}prefixed(_){if(_==="-webkit-"){return"::-webkit-file-upload-button"}return`::${_}file-selector-button`}}FileSelectorButton.names=["::file-selector-button"];_.exports=FileSelectorButton},4653:(_,X,ee)=>{let te=ee(3129);class FilterValue extends te{constructor(_,X){super(_,X);if(_==="filter-function"){this.name="filter"}}}FilterValue.names=["filter","filter-function"];_.exports=FilterValue},8706:(_,X,ee)=>{let te=ee(4750);class Filter extends te{check(_){let X=_.value;return!X.toLowerCase().includes("alpha(")&&!X.includes("DXImageTransform.Microsoft")&&!X.includes("data:image/svg+xml")}}Filter.names=["filter"];_.exports=Filter},5:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class FlexBasis extends te{normalize(){return"flex-basis"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2012){return X+"flex-preferred-size"}return super.prefixed(_,X)}set(_,X){let ee;[ee,X]=re(X);if(ee===2012||ee==="final"){return super.set(_,X)}return undefined}}FlexBasis.names=["flex-basis","flex-preferred-size"];_.exports=FlexBasis},4927:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class FlexDirection extends te{insert(_,X,ee){let te;[te,X]=re(X);if(te!==2009){return super.insert(_,X,ee)}let se=_.parent.some((_=>_.prop===X+"box-orient"||_.prop===X+"box-direction"));if(se){return undefined}let ne=_.value;let ie,oe;if(ne==="inherit"||ne==="initial"||ne==="unset"){oe=ne;ie=ne}else{oe=ne.includes("row")?"horizontal":"vertical";ie=ne.includes("reverse")?"reverse":"normal"}let ae=this.clone(_);ae.prop=X+"box-orient";ae.value=oe;if(this.needCascade(_)){ae.raws.before=this.calcBefore(ee,_,X)}_.parent.insertBefore(_,ae);ae=this.clone(_);ae.prop=X+"box-direction";ae.value=ie;if(this.needCascade(_)){ae.raws.before=this.calcBefore(ee,_,X)}return _.parent.insertBefore(_,ae)}normalize(){return"flex-direction"}old(_,X){let ee;[ee,X]=re(X);if(ee===2009){return[X+"box-orient",X+"box-direction"]}else{return super.old(_,X)}}}FlexDirection.names=["flex-direction","box-direction","box-orient"];_.exports=FlexDirection},2346:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class FlexFlow extends te{insert(_,X,ee){let te;[te,X]=re(X);if(te!==2009){return super.insert(_,X,ee)}let se=_.value.split(/\s+/).filter((_=>_!=="wrap"&&_!=="nowrap"&&"wrap-reverse"));if(se.length===0){return undefined}let ne=_.parent.some((_=>_.prop===X+"box-orient"||_.prop===X+"box-direction"));if(ne){return undefined}let ie=se[0];let oe=ie.includes("row")?"horizontal":"vertical";let ae=ie.includes("reverse")?"reverse":"normal";let le=this.clone(_);le.prop=X+"box-orient";le.value=oe;if(this.needCascade(_)){le.raws.before=this.calcBefore(ee,_,X)}_.parent.insertBefore(_,le);le=this.clone(_);le.prop=X+"box-direction";le.value=ae;if(this.needCascade(_)){le.raws.before=this.calcBefore(ee,_,X)}return _.parent.insertBefore(_,le)}}FlexFlow.names=["flex-flow","box-direction","box-orient"];_.exports=FlexFlow},5238:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class Flex extends te{normalize(){return"flex"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2009){return X+"box-flex"}if(ee===2012){return X+"flex-positive"}return super.prefixed(_,X)}}Flex.names=["flex-grow","flex-positive"];_.exports=Flex},5713:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class FlexShrink extends te{normalize(){return"flex-shrink"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2012){return X+"flex-negative"}return super.prefixed(_,X)}set(_,X){let ee;[ee,X]=re(X);if(ee===2012||ee==="final"){return super.set(_,X)}return undefined}}FlexShrink.names=["flex-shrink","flex-negative"];_.exports=FlexShrink},1902:_=>{_.exports=function(_){let X;if(_==="-webkit- 2009"||_==="-moz-"){X=2009}else if(_==="-ms-"){X=2012}else if(_==="-webkit-"){X="final"}if(_==="-webkit- 2009"){_="-webkit-"}return[X,_]}},4690:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class FlexWrap extends te{set(_,X){let ee=re(X)[0];if(ee!==2009){return super.set(_,X)}return undefined}}FlexWrap.names=["flex-wrap"];_.exports=FlexWrap},9591:(_,X,ee)=>{let te=ee(977).list;let re=ee(4750);let se=ee(1902);class Flex extends re{normalize(){return"flex"}prefixed(_,X){let ee;[ee,X]=se(X);if(ee===2009){return X+"box-flex"}return super.prefixed(_,X)}set(_,X){let ee=se(X)[0];if(ee===2009){_.value=te.space(_.value)[0];_.value=Flex.oldValues[_.value]||_.value;return super.set(_,X)}if(ee===2012){let X=te.space(_.value);if(X.length===3&&X[2]==="0"){_.value=X.slice(0,2).concat("0px").join(" ")}}return super.set(_,X)}}Flex.names=["flex","box-flex"];Flex.oldValues={auto:"1",none:"0"};_.exports=Flex},4799:(_,X,ee)=>{let te=ee(7276);class Fullscreen extends te{prefixed(_){if(_==="-webkit-"){return":-webkit-full-screen"}if(_==="-moz-"){return":-moz-full-screen"}return`:${_}fullscreen`}}Fullscreen.names=[":fullscreen"];_.exports=Fullscreen},2118:(_,X,ee)=>{let te=ee(2443);let re=ee(2045);let se=ee(2097);let ne=ee(699);let ie=ee(3129);let oe=/top|left|right|bottom/gi;class Gradient extends ie{add(_,X){let ee=_.prop;if(ee.includes("mask")){if(X==="-webkit-"||X==="-webkit- old"){return super.add(_,X)}}else if(ee==="list-style"||ee==="list-style-image"||ee==="content"){if(X==="-webkit-"||X==="-webkit- old"){return super.add(_,X)}}else{return super.add(_,X)}return undefined}cloneDiv(_){for(let X of _){if(X.type==="div"&&X.value===","){return X}}return{after:" ",type:"div",value:","}}colorStops(_){let X=[];for(let ee=0;ee<_.length;ee++){let te;let se=_[ee];let ne;if(ee===0){continue}let ie=re.stringify(se[0]);if(se[1]&&se[1].type==="word"){te=se[1].value}else if(se[2]&&se[2].type==="word"){te=se[2].value}let oe;if(ee===1&&(!te||te==="0%")){oe=`from(${ie})`}else if(ee===_.length-1&&(!te||te==="100%")){oe=`to(${ie})`}else if(te){oe=`color-stop(${te}, ${ie})`}else{oe=`color-stop(${ie})`}let ae=se[se.length-1];_[ee]=[{type:"word",value:oe}];if(ae.type==="div"&&ae.value===","){ne=_[ee].push(ae)}X.push(ne)}return X}convertDirection(_){if(_.length>0){if(_[0].value==="to"){this.fixDirection(_)}else if(_[0].value.includes("deg")){this.fixAngle(_)}else if(this.isRadial(_)){this.fixRadial(_)}}return _}fixAngle(_){let X=_[0].value;X=parseFloat(X);X=Math.abs(450-X)%360;X=this.roundFloat(X,3);_[0].value=`${X}deg`}fixDirection(_){_.splice(0,2);for(let X of _){if(X.type==="div"){break}if(X.type==="word"){X.value=this.revertDirection(X.value)}}}fixRadial(_){let X=[];let ee=[];let te,re,se,ne,ie;for(ne=0;ne<_.length-2;ne++){te=_[ne];re=_[ne+1];se=_[ne+2];if(te.type==="space"&&re.value==="at"&&se.type==="space"){ie=ne+3;break}else{X.push(te)}}let oe;for(ne=ie;ne<_.length;ne++){if(_[ne].type==="div"){oe=_[ne];break}else{ee.push(_[ne])}}_.splice(0,ne,...ee,oe,...X)}isRadial(_){let X="before";for(let ee of _){if(X==="before"&&ee.type==="space"){X="at"}else if(X==="at"&&ee.value==="at"){X="after"}else if(X==="after"&&ee.type==="space"){return true}else if(ee.type==="div"){break}else{X="before"}}return false}newDirection(_){if(_[0].value==="to"){return _}oe.lastIndex=0;if(!oe.test(_[0].value)){return _}_.unshift({type:"word",value:"to"},{type:"space",value:" "});for(let X=2;X<_.length;X++){if(_[X].type==="div"){break}if(_[X].type==="word"){_[X].value=this.revertDirection(_[X].value)}}return _}normalize(_,X){if(!_[0])return _;if(/-?\d+(.\d+)?grad/.test(_[0].value)){_[0].value=this.normalizeUnit(_[0].value,400)}else if(/-?\d+(.\d+)?rad/.test(_[0].value)){_[0].value=this.normalizeUnit(_[0].value,2*Math.PI)}else if(/-?\d+(.\d+)?turn/.test(_[0].value)){_[0].value=this.normalizeUnit(_[0].value,1)}else if(_[0].value.includes("deg")){let X=parseFloat(_[0].value);X=te.wrap(0,360,X);_[0].value=`${X}deg`}if(X==="linear-gradient"||X==="repeating-linear-gradient"){let X=_[0].value;if(X==="0deg"||X==="0"){_=this.replaceFirst(_,"to"," ","top")}else if(X==="90deg"){_=this.replaceFirst(_,"to"," ","right")}else if(X==="180deg"){_=this.replaceFirst(_,"to"," ","bottom")}else if(X==="270deg"){_=this.replaceFirst(_,"to"," ","left")}}return _}normalizeUnit(_,X){let ee=parseFloat(_);let te=ee/X*360;return`${te}deg`}old(_){if(_==="-webkit-"){let X;if(this.name==="linear-gradient"){X="linear"}else if(this.name==="repeating-linear-gradient"){X="repeating-linear"}else if(this.name==="repeating-radial-gradient"){X="repeating-radial"}else{X="radial"}let ee="-gradient";let te=ne.regexp(`-webkit-(${X}-gradient|gradient\\(\\s*${X})`,false);return new se(this.name,_+this.name,ee,te)}else{return super.old(_)}}oldDirection(_){let X=this.cloneDiv(_[0]);if(_[0][0].value!=="to"){return _.unshift([{type:"word",value:Gradient.oldDirections.bottom},X])}else{let ee=[];for(let X of _[0].slice(2)){if(X.type==="word"){ee.push(X.value.toLowerCase())}}ee=ee.join(" ");let te=Gradient.oldDirections[ee]||ee;_[0]=[{type:"word",value:te},X];return _[0]}}oldWebkit(_){let{nodes:X}=_;let ee=re.stringify(_.nodes);if(this.name!=="linear-gradient"){return false}if(X[0]&&X[0].value.includes("deg")){return false}if(ee.includes("px")||ee.includes("-corner")||ee.includes("-side")){return false}let te=[[]];for(let _ of X){te[te.length-1].push(_);if(_.type==="div"&&_.value===","){te.push([])}}this.oldDirection(te);this.colorStops(te);_.nodes=[];for(let X of te){_.nodes=_.nodes.concat(X)}_.nodes.unshift({type:"word",value:"linear"},this.cloneDiv(_.nodes));_.value="-webkit-gradient";return true}replace(_,X){let ee=re(_);for(let _ of ee.nodes){let ee=this.name;if(_.type==="function"&&_.value===ee){_.nodes=this.newDirection(_.nodes);_.nodes=this.normalize(_.nodes,ee);if(X==="-webkit- old"){let X=this.oldWebkit(_);if(!X){return false}}else{_.nodes=this.convertDirection(_.nodes);_.value=X+_.value}}}return ee.toString()}replaceFirst(_,...X){let ee=X.map((_=>{if(_===" "){return{type:"space",value:_}}return{type:"word",value:_}}));return ee.concat(_.slice(1))}revertDirection(_){return Gradient.directions[_.toLowerCase()]||_}roundFloat(_,X){return parseFloat(_.toFixed(X))}}Gradient.names=["linear-gradient","repeating-linear-gradient","radial-gradient","repeating-radial-gradient"];Gradient.directions={bottom:"top",left:"right",right:"left",top:"bottom"};Gradient.oldDirections={bottom:"left top, left bottom","bottom left":"right top, left bottom","bottom right":"left top, right bottom",left:"right top, left top","left bottom":"right top, left bottom","left top":"right bottom, left top",right:"left top, right top","right bottom":"left top, right bottom","right top":"left bottom, right top",top:"left bottom, left top","top left":"right bottom, left top","top right":"left bottom, right top"};_.exports=Gradient},3725:(_,X,ee)=>{let te=ee(4750);let re=ee(9850);class GridArea extends te{insert(_,X,ee,te){if(X!=="-ms-")return super.insert(_,X,ee);let se=re.parse(_);let[ne,ie]=re.translate(se,0,2);let[oe,ae]=re.translate(se,1,3);[["grid-row",ne],["grid-row-span",ie],["grid-column",oe],["grid-column-span",ae]].forEach((([X,ee])=>{re.insertDecl(_,X,ee)}));re.warnTemplateSelectorNotFound(_,te);re.warnIfGridRowColumnExists(_,te);return undefined}}GridArea.names=["grid-area"];_.exports=GridArea},1218:(_,X,ee)=>{let te=ee(4750);class GridColumnAlign extends te{check(_){return!_.value.includes("flex-")&&_.value!=="baseline"}normalize(){return"justify-self"}prefixed(_,X){return X+"grid-column-align"}}GridColumnAlign.names=["grid-column-align"];_.exports=GridColumnAlign},397:(_,X,ee)=>{let te=ee(4750);let{isPureNumber:re}=ee(699);class GridEnd extends te{insert(_,X,ee,te){if(X!=="-ms-")return super.insert(_,X,ee);let se=this.clone(_);let ne=_.prop.replace(/end$/,"start");let ie=X+_.prop.replace(/end$/,"span");if(_.parent.some((_=>_.prop===ie))){return undefined}se.prop=ie;if(_.value.includes("span")){se.value=_.value.replace(/span\s/i,"")}else{let X;_.parent.walkDecls(ne,(_=>{X=_}));if(X){if(re(X.value)){let ee=Number(_.value)-Number(X.value)+"";se.value=ee}else{return undefined}}else{_.warn(te,`Can not prefix ${_.prop} (${ne} is not found)`)}}_.cloneBefore(se);return undefined}}GridEnd.names=["grid-row-end","grid-column-end"];_.exports=GridEnd},1446:(_,X,ee)=>{let te=ee(4750);class GridRowAlign extends te{check(_){return!_.value.includes("flex-")&&_.value!=="baseline"}normalize(){return"align-self"}prefixed(_,X){return X+"grid-row-align"}}GridRowAlign.names=["grid-row-align"];_.exports=GridRowAlign},1909:(_,X,ee)=>{let te=ee(4750);let re=ee(9850);class GridRowColumn extends te{insert(_,X,ee){if(X!=="-ms-")return super.insert(_,X,ee);let te=re.parse(_);let[se,ne]=re.translate(te,0,1);let ie=te[0]&&te[0].includes("span");if(ie){ne=te[0].join("").replace(/\D/g,"")}[[_.prop,se],[`${_.prop}-span`,ne]].forEach((([X,ee])=>{re.insertDecl(_,X,ee)}));return undefined}}GridRowColumn.names=["grid-row","grid-column"];_.exports=GridRowColumn},9762:(_,X,ee)=>{let te=ee(4750);let re=ee(2140);let{autoplaceGridItems:se,getGridGap:ne,inheritGridGap:ie,prefixTrackProp:oe,prefixTrackValue:ae}=ee(9850);class GridRowsColumns extends te{insert(_,X,ee,te){if(X!=="-ms-")return super.insert(_,X,ee);let{parent:le,prop:ue,value:ce}=_;let pe=ue.includes("rows");let fe=ue.includes("columns");let de=le.some((_=>_.prop==="grid-template"||_.prop==="grid-template-areas"));if(de&&pe){return false}let he=new re({options:{}});let me=he.gridStatus(le,te);let ge=ne(_);ge=ie(_,ge)||ge;let be=pe?ge.row:ge.column;if((me==="no-autoplace"||me===true)&&!de){be=null}let ve=ae({gap:be,value:ce});_.cloneBefore({prop:oe({prefix:X,prop:ue}),value:ve});let ye=le.nodes.find((_=>_.prop==="grid-auto-flow"));let we="row";if(ye&&!he.disabled(ye,te)){we=ye.value.trim()}if(me==="autoplace"){let X=le.nodes.find((_=>_.prop==="grid-template-rows"));if(!X&&de){return undefined}else if(!X&&!de){_.warn(te,"Autoplacement does not work without grid-template-rows property");return undefined}let ee=le.nodes.find((_=>_.prop==="grid-template-columns"));if(!ee&&!de){_.warn(te,"Autoplacement does not work without grid-template-columns property")}if(fe&&!de){se(_,te,ge,we)}}return undefined}normalize(_){return _.replace(/^grid-(rows|columns)/,"grid-template-$1")}prefixed(_,X){if(X==="-ms-"){return oe({prefix:X,prop:_})}return super.prefixed(_,X)}}GridRowsColumns.names=["grid-template-rows","grid-template-columns","grid-rows","grid-columns"];_.exports=GridRowsColumns},1461:(_,X,ee)=>{let te=ee(4750);class GridStart extends te{check(_){let X=_.value;return!X.includes("/")&&!X.includes("span")}normalize(_){return _.replace("-start","")}prefixed(_,X){let ee=super.prefixed(_,X);if(X==="-ms-"){ee=ee.replace("-start","")}return ee}}GridStart.names=["grid-row-start","grid-column-start"];_.exports=GridStart},9104:(_,X,ee)=>{let te=ee(4750);let{getGridGap:re,inheritGridGap:se,parseGridAreas:ne,prefixTrackProp:ie,prefixTrackValue:oe,warnGridGap:ae,warnMissedAreas:le}=ee(9850);function getGridRows(_){return _.trim().slice(1,-1).split(/["']\s*["']?/g)}class GridTemplateAreas extends te{insert(_,X,ee,te){if(X!=="-ms-")return super.insert(_,X,ee);let ue=false;let ce=false;let pe=_.parent;let fe=re(_);fe=se(_,fe)||fe;pe.walkDecls(/-ms-grid-rows/,(_=>_.remove()));pe.walkDecls(/grid-template-(rows|columns)/,(_=>{if(_.prop==="grid-template-rows"){ce=true;let{prop:ee,value:te}=_;_.cloneBefore({prop:ie({prefix:X,prop:ee}),value:oe({gap:fe.row,value:te})})}else{ue=true}}));let de=getGridRows(_.value);if(ue&&!ce&&fe.row&&de.length>1){_.cloneBefore({prop:"-ms-grid-rows",raws:{},value:oe({gap:fe.row,value:`repeat(${de.length}, auto)`})})}ae({decl:_,gap:fe,hasColumns:ue,result:te});let he=ne({gap:fe,rows:de});le(he,_,te);return _}}GridTemplateAreas.names=["grid-template-areas"];_.exports=GridTemplateAreas},6955:(_,X,ee)=>{let te=ee(4750);let{getGridGap:re,inheritGridGap:se,parseTemplate:ne,warnGridGap:ie,warnMissedAreas:oe}=ee(9850);class GridTemplate extends te{insert(_,X,ee,te){if(X!=="-ms-")return super.insert(_,X,ee);if(_.parent.some((_=>_.prop==="-ms-grid-rows"))){return undefined}let ae=re(_);let le=se(_,ae);let{areas:ue,columns:ce,rows:pe}=ne({decl:_,gap:le||ae});let fe=Object.keys(ue).length>0;let de=Boolean(pe);let he=Boolean(ce);ie({decl:_,gap:ae,hasColumns:he,result:te});oe(ue,_,te);if(de&&he||fe){_.cloneBefore({prop:"-ms-grid-rows",raws:{},value:pe})}if(he){_.cloneBefore({prop:"-ms-grid-columns",raws:{},value:ce})}return _}}GridTemplate.names=["grid-template"];_.exports=GridTemplate},9850:(_,X,ee)=>{let te=ee(2045);let re=ee(977).list;let se=ee(699).uniq;let ne=ee(699).escapeRegexp;let ie=ee(699).splitSelector;function convert(_){if(_&&_.length===2&&_[0]==="span"&&parseInt(_[1],10)>0){return[false,parseInt(_[1],10)]}if(_&&_.length===1&&parseInt(_[0],10)>0){return[parseInt(_[0],10),false]}return[false,false]}X.translate=translate;function translate(_,X,ee){let te=_[X];let re=_[ee];if(!te){return[false,false]}let[se,ne]=convert(te);let[ie,oe]=convert(re);if(se&&!re){return[se,false]}if(ne&&ie){return[ie-ne,ne]}if(se&&oe){return[se,oe]}if(se&&ie){return[se,ie-se]}return[false,false]}X.parse=parse;function parse(_){let X=te(_.value);let ee=[];let re=0;ee[re]=[];for(let _ of X.nodes){if(_.type==="div"){re+=1;ee[re]=[]}else if(_.type==="word"){ee[re].push(_.value)}}return ee}X.insertDecl=insertDecl;function insertDecl(_,X,ee){if(ee&&!_.parent.some((_=>_.prop===`-ms-${X}`))){_.cloneBefore({prop:`-ms-${X}`,value:ee.toString()})}}X.prefixTrackProp=prefixTrackProp;function prefixTrackProp({prefix:_,prop:X}){return _+X.replace("template-","")}function transformRepeat({nodes:_},{gap:X}){let{count:ee,size:re}=_.reduce(((_,X)=>{if(X.type==="div"&&X.value===","){_.key="size"}else{_[_.key].push(te.stringify(X))}return _}),{count:[],key:"count",size:[]});if(X){re=re.filter((_=>_.trim()));let _=[];for(let te=1;te<=ee;te++){re.forEach(((ee,re)=>{if(re>0||te>1){_.push(X)}_.push(ee)}))}return _.join(" ")}return`(${re.join("")})[${ee.join("")}]`}X.prefixTrackValue=prefixTrackValue;function prefixTrackValue({gap:_,value:X}){let ee=te(X).nodes.reduce(((X,ee)=>{if(ee.type==="function"&&ee.value==="repeat"){return X.concat({type:"word",value:transformRepeat(ee,{gap:_})})}if(_&&ee.type==="space"){return X.concat({type:"space",value:" "},{type:"word",value:_},ee)}return X.concat(ee)}),[]);return te.stringify(ee)}let oe=/^\.+$/;function track(_,X){return{end:X,span:X-_,start:_}}function getColumns(_){return _.trim().split(/\s+/g)}X.parseGridAreas=parseGridAreas;function parseGridAreas({gap:_,rows:X}){return X.reduce(((X,ee,te)=>{if(_.row)te*=2;if(ee.trim()==="")return X;getColumns(ee).forEach(((ee,re)=>{if(oe.test(ee))return;if(_.column)re*=2;if(typeof X[ee]==="undefined"){X[ee]={column:track(re+1,re+2),row:track(te+1,te+2)}}else{let{column:_,row:se}=X[ee];_.start=Math.min(_.start,re+1);_.end=Math.max(_.end,re+2);_.span=_.end-_.start;se.start=Math.min(se.start,te+1);se.end=Math.max(se.end,te+2);se.span=se.end-se.start}}));return X}),{})}function testTrack(_){return _.type==="word"&&/^\[.+]$/.test(_.value)}function verifyRowSize(_){if(_.areas.length>_.rows.length){_.rows.push("auto")}return _}X.parseTemplate=parseTemplate;function parseTemplate({decl:_,gap:X}){let ee=te(_.value).nodes.reduce(((_,X)=>{let{type:ee,value:re}=X;if(testTrack(X)||ee==="space")return _;if(ee==="string"){_=verifyRowSize(_);_.areas.push(re)}if(ee==="word"||ee==="function"){_[_.key].push(te.stringify(X))}if(ee==="div"&&re==="/"){_.key="columns";_=verifyRowSize(_)}return _}),{areas:[],columns:[],key:"rows",rows:[]});return{areas:parseGridAreas({gap:X,rows:ee.areas}),columns:prefixTrackValue({gap:X.column,value:ee.columns.join(" ")}),rows:prefixTrackValue({gap:X.row,value:ee.rows.join(" ")})}}function getMSDecls(_,X=false,ee=false){let te=[{prop:"-ms-grid-row",value:String(_.row.start)}];if(_.row.span>1||X){te.push({prop:"-ms-grid-row-span",value:String(_.row.span)})}te.push({prop:"-ms-grid-column",value:String(_.column.start)});if(_.column.span>1||ee){te.push({prop:"-ms-grid-column-span",value:String(_.column.span)})}return te}function getParentMedia(_){if(_.type==="atrule"&&_.name==="media"){return _}if(!_.parent){return false}return getParentMedia(_.parent)}function changeDuplicateAreaSelectors(_,X){_=_.map((_=>{let X=re.space(_);let ee=re.comma(_);if(X.length>ee.length){_=X.slice(-1).join("")}return _}));return _.map((_=>{let ee=X.map(((X,ee)=>{let te=ee===0?"":" ";return`${te}${X} > ${_}`}));return ee}))}function selectorsEqual(_,X){return _.selectors.some((_=>X.selectors.includes(_)))}function parseGridTemplatesData(_){let X=[];_.walkDecls(/grid-template(-areas)?$/,(_=>{let ee=_.parent;let te=getParentMedia(ee);let re=getGridGap(_);let ne=inheritGridGap(_,re);let{areas:ie}=parseTemplate({decl:_,gap:ne||re});let oe=Object.keys(ie);if(oe.length===0){return true}let ae=X.reduce(((_,{allAreas:X},ee)=>{let te=X&&oe.some((_=>X.includes(_)));return te?ee:_}),null);if(ae!==null){let{allAreas:_,rules:re}=X[ae];let ne=re.some((_=>_.hasDuplicates===false&&selectorsEqual(_,ee)));let le=false;let ue=re.reduce(((_,X)=>{if(!X.params&&selectorsEqual(X,ee)){le=true;return X.duplicateAreaNames}if(!le){oe.forEach((ee=>{if(X.areas[ee]){_.push(ee)}}))}return se(_)}),[]);re.forEach((_=>{oe.forEach((X=>{let ee=_.areas[X];if(ee&&ee.row.span!==ie[X].row.span){ie[X].row.updateSpan=true}if(ee&&ee.column.span!==ie[X].column.span){ie[X].column.updateSpan=true}}))}));X[ae].allAreas=se([..._,...oe]);X[ae].rules.push({areas:ie,duplicateAreaNames:ue,hasDuplicates:!ne,node:ee,params:te.params,selectors:ee.selectors})}else{X.push({allAreas:oe,areasCount:0,rules:[{areas:ie,duplicateAreaNames:[],duplicateRules:[],hasDuplicates:false,node:ee,params:te.params,selectors:ee.selectors}]})}return undefined}));return X}X.insertAreas=insertAreas;function insertAreas(_,X){let ee=parseGridTemplatesData(_);if(ee.length===0){return undefined}let te={};_.walkDecls("grid-area",(se=>{let ne=se.parent;let ie=ne.first.prop==="-ms-grid-row";let oe=getParentMedia(ne);if(X(se)){return undefined}let ae=_.index(oe||ne);let le=se.value;let ue=ee.filter((_=>_.allAreas.includes(le)))[0];if(!ue){return true}let ce=ue.allAreas[ue.allAreas.length-1];let pe=re.space(ne.selector);let fe=re.comma(ne.selector);let de=pe.length>1&&pe.length>fe.length;if(ie){return false}if(!te[ce]){te[ce]={}}let he=false;for(let X of ue.rules){let ee=X.areas[le];let re=X.duplicateAreaNames.includes(le);if(!ee){let X=te[ce].lastRule;let ee;if(X){ee=_.index(X)}else{ee=-1}if(ae>ee){te[ce].lastRule=oe||ne}continue}if(X.params&&!te[ce][X.params]){te[ce][X.params]=[]}if((!X.hasDuplicates||!re)&&!X.params){getMSDecls(ee,false,false).reverse().forEach((_=>ne.prepend(Object.assign(_,{raws:{between:se.raws.between}}))));te[ce].lastRule=ne;he=true}else if(X.hasDuplicates&&!X.params&&!de){let _=ne.clone();_.removeAll();getMSDecls(ee,ee.row.updateSpan,ee.column.updateSpan).reverse().forEach((X=>_.prepend(Object.assign(X,{raws:{between:se.raws.between}}))));_.selectors=changeDuplicateAreaSelectors(_.selectors,X.selectors);if(te[ce].lastRule){te[ce].lastRule.after(_)}te[ce].lastRule=_;he=true}else if(X.hasDuplicates&&!X.params&&de&&ne.selector.includes(X.selectors[0])){ne.walkDecls(/-ms-grid-(row|column)/,(_=>_.remove()));getMSDecls(ee,ee.row.updateSpan,ee.column.updateSpan).reverse().forEach((_=>ne.prepend(Object.assign(_,{raws:{between:se.raws.between}}))))}else if(X.params){let ie=ne.clone();ie.removeAll();getMSDecls(ee,ee.row.updateSpan,ee.column.updateSpan).reverse().forEach((_=>ie.prepend(Object.assign(_,{raws:{between:se.raws.between}}))));if(X.hasDuplicates&&re){ie.selectors=changeDuplicateAreaSelectors(ie.selectors,X.selectors)}ie.raws=X.node.raws;if(_.index(X.node.parent)>ae){X.node.parent.append(ie)}else{te[ce][X.params].push(ie)}if(!he){te[ce].lastRule=oe||ne}}}return undefined}));Object.keys(te).forEach((_=>{let X=te[_];let ee=X.lastRule;Object.keys(X).reverse().filter((_=>_!=="lastRule")).forEach((_=>{if(X[_].length>0&&ee){ee.after({name:"media",params:_});ee.next().append(X[_])}}))}));return undefined}X.warnMissedAreas=warnMissedAreas;function warnMissedAreas(_,X,ee){let te=Object.keys(_);X.root().walkDecls("grid-area",(_=>{te=te.filter((X=>X!==_.value))}));if(te.length>0){X.warn(ee,"Can not find grid areas: "+te.join(", "))}return undefined}X.warnTemplateSelectorNotFound=warnTemplateSelectorNotFound;function warnTemplateSelectorNotFound(_,X){let ee=_.parent;let te=_.root();let se=false;let ne=re.space(ee.selector).filter((_=>_!==">")).slice(0,-1);if(ne.length>0){let ee=false;let ie=null;te.walkDecls(/grid-template(-areas)?$/,(X=>{let te=X.parent;let oe=te.selectors;let{areas:ae}=parseTemplate({decl:X,gap:getGridGap(X)});let le=ae[_.value];for(let _ of oe){if(ee){break}let X=re.space(_).filter((_=>_!==">"));ee=X.every(((_,X)=>_===ne[X]))}if(ee||!le){return true}if(!ie){ie=te.selector}if(ie&&ie!==te.selector){se=true}return undefined}));if(!ee&&se){_.warn(X,"Autoprefixer cannot find a grid-template "+`containing the duplicate grid-area "${_.value}" `+`with full selector matching: ${ne.join(" ")}`)}}}X.warnIfGridRowColumnExists=warnIfGridRowColumnExists;function warnIfGridRowColumnExists(_,X){let ee=_.parent;let te=[];ee.walkDecls(/^grid-(row|column)/,(_=>{if(!_.prop.endsWith("-end")&&!_.value.startsWith("span")&&!_.prop.endsWith("-gap")){te.push(_)}}));if(te.length>0){te.forEach((_=>{_.warn(X,"You already have a grid-area declaration present in the rule. "+`You should use either grid-area or ${_.prop}, not both`)}))}return undefined}X.getGridGap=getGridGap;function getGridGap(_){let X={};let ee=/^(grid-)?((row|column)-)?gap$/;_.parent.walkDecls(ee,(({prop:_,value:ee})=>{if(/^(grid-)?gap$/.test(_)){let[_,,re]=te(ee).nodes;X.row=_&&te.stringify(_);X.column=re?te.stringify(re):X.row}if(/^(grid-)?row-gap$/.test(_))X.row=ee;if(/^(grid-)?column-gap$/.test(_))X.column=ee}));return X}function parseMediaParams(_){if(!_){return[]}let X=te(_);let ee;let re;X.walk((_=>{if(_.type==="word"&&/min|max/g.test(_.value)){ee=_.value}else if(_.value.includes("px")){re=parseInt(_.value.replace(/\D/g,""))}}));return[ee,re]}function shouldInheritGap(_,X){let ee;let te=ie(_);let re=ie(X);if(te[0].lengthre[0].length){let _=te[0].reduce(((_,[X],ee)=>{let te=re[0][0][0];if(X===te){return ee}return false}),false);if(_){ee=re[0].every(((X,ee)=>X.every(((X,re)=>te[0].slice(_)[ee][re]===X))))}}else{ee=re.some((_=>_.every(((_,X)=>_.every(((_,ee)=>te[0][X][ee]===_))))))}return ee}X.inheritGridGap=inheritGridGap;function inheritGridGap(_,X){let ee=_.parent;let te=getParentMedia(ee);let re=ee.root();let se=ie(ee.selector);if(Object.keys(X).length>0){return false}let[oe]=parseMediaParams(te.params);let ae=se[0];let le=ne(ae[ae.length-1][0]);let ue=new RegExp(`(${le}$)|(${le}[,.])`);let ce;re.walkRules(ue,(_=>{let X;if(ee.toString()===_.toString()){return false}_.walkDecls("grid-gap",(_=>X=getGridGap(_)));if(!X||Object.keys(X).length===0){return true}if(!shouldInheritGap(ee.selector,_.selector)){return true}let te=getParentMedia(_);if(te){let _=parseMediaParams(te.params)[0];if(_===oe){ce=X;return true}}else{ce=X;return true}return undefined}));if(ce&&Object.keys(ce).length>0){return ce}return false}X.warnGridGap=warnGridGap;function warnGridGap({decl:_,gap:X,hasColumns:ee,result:te}){let re=X.row&&X.column;if(!ee&&(re||X.column&&!X.row)){delete X.column;_.warn(te,"Can not implement grid-gap without grid-template-columns")}}function normalizeRowColumn(_){let X=te(_).nodes.reduce(((_,X)=>{if(X.type==="function"&&X.value==="repeat"){let ee="count";let[re,se]=X.nodes.reduce(((_,X)=>{if(X.type==="word"&&ee==="count"){_[0]=Math.abs(parseInt(X.value));return _}if(X.type==="div"&&X.value===","){ee="value";return _}if(ee==="value"){_[1]+=te.stringify(X)}return _}),[0,""]);if(re){for(let X=0;X_.prop==="grid-template-rows"));let ne=normalizeRowColumn(se.value);let ie=normalizeRowColumn(_.value);let oe=ne.map(((_,X)=>Array.from({length:ie.length},((_,ee)=>ee+X*ie.length+1)).join(" ")));let ae=parseGridAreas({gap:ee,rows:oe});let le=Object.keys(ae);let ue=le.map((_=>ae[_]));if(te.includes("column")){ue=ue.sort(((_,X)=>_.column.start-X.column.start))}ue.reverse().forEach(((_,X)=>{let{column:ee,row:te}=_;let se=re.selectors.map((_=>_+` > *:nth-child(${le.length-X})`)).join(", ");let ne=re.clone().removeAll();ne.selector=se;ne.append({prop:"-ms-grid-row",value:te.start});ne.append({prop:"-ms-grid-column",value:ee.start});re.after(ne)}));return undefined}},1390:(_,X,ee)=>{let te=ee(4750);class ImageRendering extends te{check(_){return _.value==="pixelated"}normalize(){return"image-rendering"}prefixed(_,X){if(X==="-ms-"){return"-ms-interpolation-mode"}return super.prefixed(_,X)}process(_,X){return super.process(_,X)}set(_,X){if(X!=="-ms-")return super.set(_,X);_.prop="-ms-interpolation-mode";_.value="nearest-neighbor";return _}}ImageRendering.names=["image-rendering","interpolation-mode"];_.exports=ImageRendering},1119:(_,X,ee)=>{let te=ee(3129);class ImageSet extends te{replace(_,X){let ee=super.replace(_,X);if(X==="-webkit-"){ee=ee.replace(/("[^"]+"|'[^']+')(\s+\d+\w)/gi,"url($1)$2")}return ee}}ImageSet.names=["image-set"];_.exports=ImageSet},2993:(_,X,ee)=>{let te=ee(4750);class InlineLogical extends te{normalize(_){return _.replace(/(margin|padding|border)-(start|end)/,"$1-inline-$2")}prefixed(_,X){return X+_.replace("-inline","")}}InlineLogical.names=["border-inline-start","border-inline-end","margin-inline-start","margin-inline-end","padding-inline-start","padding-inline-end","border-start","border-end","margin-start","margin-end","padding-start","padding-end"];_.exports=InlineLogical},5204:(_,X,ee)=>{let te=ee(2097);let re=ee(3129);function regexp(_){return new RegExp(`(^|[\\s,(])(${_}($|[\\s),]))`,"gi")}class Intrinsic extends re{add(_,X){if(_.prop.includes("grid")&&X!=="-webkit-"){return undefined}return super.add(_,X)}isStretch(){return this.name==="stretch"||this.name==="fill"||this.name==="fill-available"}old(_){let X=_+this.name;if(this.isStretch()){if(_==="-moz-"){X="-moz-available"}else if(_==="-webkit-"){X="-webkit-fill-available"}}return new te(this.name,X,X,regexp(X))}regexp(){if(!this.regexpCache)this.regexpCache=regexp(this.name);return this.regexpCache}replace(_,X){if(X==="-moz-"&&this.isStretch()){return _.replace(this.regexp(),"$1-moz-available$3")}if(X==="-webkit-"&&this.isStretch()){return _.replace(this.regexp(),"$1-webkit-fill-available$3")}return super.replace(_,X)}}Intrinsic.names=["max-content","min-content","fit-content","fill","fill-available","stretch"];_.exports=Intrinsic},2982:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class JustifyContent extends te{normalize(){return"justify-content"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2009){return X+"box-pack"}if(ee===2012){return X+"flex-pack"}return super.prefixed(_,X)}set(_,X){let ee=re(X)[0];if(ee===2009||ee===2012){let te=JustifyContent.oldValues[_.value]||_.value;_.value=te;if(ee!==2009||te!=="distribute"){return super.set(_,X)}}else if(ee==="final"){return super.set(_,X)}return undefined}}JustifyContent.names=["justify-content","flex-pack","box-pack"];JustifyContent.oldValues={"flex-end":"end","flex-start":"start","space-around":"distribute","space-between":"justify"};_.exports=JustifyContent},493:(_,X,ee)=>{let te=ee(4750);class MaskBorder extends te{normalize(){return this.name.replace("box-image","border")}prefixed(_,X){let ee=super.prefixed(_,X);if(X==="-webkit-"){ee=ee.replace("border","box-image")}return ee}}MaskBorder.names=["mask-border","mask-border-source","mask-border-slice","mask-border-width","mask-border-outset","mask-border-repeat","mask-box-image","mask-box-image-source","mask-box-image-slice","mask-box-image-width","mask-box-image-outset","mask-box-image-repeat"];_.exports=MaskBorder},2782:(_,X,ee)=>{let te=ee(4750);class MaskComposite extends te{insert(_,X,ee){let te=_.prop==="mask-composite";let re;if(te){re=_.value.split(",")}else{re=_.value.match(MaskComposite.regexp)||[]}re=re.map((_=>_.trim())).filter((_=>_));let se=re.length;let ne;if(se){ne=this.clone(_);ne.value=re.map((_=>MaskComposite.oldValues[_]||_)).join(", ");if(re.includes("intersect")){ne.value+=", xor"}ne.prop=X+"mask-composite"}if(te){if(!se){return undefined}if(this.needCascade(_)){ne.raws.before=this.calcBefore(ee,_,X)}return _.parent.insertBefore(_,ne)}let ie=this.clone(_);ie.prop=X+ie.prop;if(se){ie.value=ie.value.replace(MaskComposite.regexp,"")}if(this.needCascade(_)){ie.raws.before=this.calcBefore(ee,_,X)}_.parent.insertBefore(_,ie);if(!se){return _}if(this.needCascade(_)){ne.raws.before=this.calcBefore(ee,_,X)}return _.parent.insertBefore(_,ne)}}MaskComposite.names=["mask","mask-composite"];MaskComposite.oldValues={add:"source-over",exclude:"xor",intersect:"source-in",subtract:"source-out"};MaskComposite.regexp=new RegExp(`\\s+(${Object.keys(MaskComposite.oldValues).join("|")})\\b(?!\\))\\s*(?=[,])`,"ig");_.exports=MaskComposite},9320:(_,X,ee)=>{let te=ee(4750);let re=ee(1902);class Order extends te{normalize(){return"order"}prefixed(_,X){let ee;[ee,X]=re(X);if(ee===2009){return X+"box-ordinal-group"}if(ee===2012){return X+"flex-order"}return super.prefixed(_,X)}set(_,X){let ee=re(X)[0];if(ee===2009&&/\d/.test(_.value)){_.value=(parseInt(_.value)+1).toString();return super.set(_,X)}return super.set(_,X)}}Order.names=["order","flex-order","box-ordinal-group"];_.exports=Order},2405:(_,X,ee)=>{let te=ee(4750);class OverscrollBehavior extends te{normalize(){return"overscroll-behavior"}prefixed(_,X){return X+"scroll-chaining"}set(_,X){if(_.value==="auto"){_.value="chained"}else if(_.value==="none"||_.value==="contain"){_.value="none"}return super.set(_,X)}}OverscrollBehavior.names=["overscroll-behavior","scroll-chaining"];_.exports=OverscrollBehavior},5017:(_,X,ee)=>{let te=ee(2097);let re=ee(3129);class Pixelated extends re{old(_){if(_==="-webkit-"){return new te(this.name,"-webkit-optimize-contrast")}if(_==="-moz-"){return new te(this.name,"-moz-crisp-edges")}return super.old(_)}replace(_,X){if(X==="-webkit-"){return _.replace(this.regexp(),"$1-webkit-optimize-contrast")}if(X==="-moz-"){return _.replace(this.regexp(),"$1-moz-crisp-edges")}return super.replace(_,X)}}Pixelated.names=["pixelated"];_.exports=Pixelated},7669:(_,X,ee)=>{let te=ee(4750);let re=ee(9850);class PlaceSelf extends te{insert(_,X,ee){if(X!=="-ms-")return super.insert(_,X,ee);if(_.parent.some((_=>_.prop==="-ms-grid-row-align"))){return undefined}let[[te,se]]=re.parse(_);if(se){re.insertDecl(_,"grid-row-align",te);re.insertDecl(_,"grid-column-align",se)}else{re.insertDecl(_,"grid-row-align",te);re.insertDecl(_,"grid-column-align",te)}return undefined}}PlaceSelf.names=["place-self"];_.exports=PlaceSelf},4655:(_,X,ee)=>{let te=ee(7276);class PlaceholderShown extends te{prefixed(_){if(_==="-moz-"){return":-moz-placeholder"}else if(_==="-ms-"){return":-ms-input-placeholder"}return`:${_}placeholder-shown`}}PlaceholderShown.names=[":placeholder-shown"];_.exports=PlaceholderShown},9818:(_,X,ee)=>{let te=ee(7276);class Placeholder extends te{possible(){return super.possible().concat(["-moz- old","-ms- old"])}prefixed(_){if(_==="-webkit-"){return"::-webkit-input-placeholder"}if(_==="-ms-"){return"::-ms-input-placeholder"}if(_==="-ms- old"){return":-ms-input-placeholder"}if(_==="-moz- old"){return":-moz-placeholder"}return`::${_}placeholder`}}Placeholder.names=["::placeholder"];_.exports=Placeholder},8881:(_,X,ee)=>{let te=ee(4750);class PrintColorAdjust extends te{normalize(){return"print-color-adjust"}prefixed(_,X){if(X==="-moz-"){return"color-adjust"}else{return X+"print-color-adjust"}}}PrintColorAdjust.names=["print-color-adjust","color-adjust"];_.exports=PrintColorAdjust},2066:(_,X,ee)=>{let te=ee(4750);class TextDecorationSkipInk extends te{set(_,X){if(_.prop==="text-decoration-skip-ink"&&_.value==="auto"){_.prop=X+"text-decoration-skip";_.value="ink";return _}else{return super.set(_,X)}}}TextDecorationSkipInk.names=["text-decoration-skip-ink","text-decoration-skip"];_.exports=TextDecorationSkipInk},9187:(_,X,ee)=>{let te=ee(4750);const re=["none","underline","overline","line-through","blink","inherit","initial","unset"];class TextDecoration extends te{check(_){return _.value.split(/\s+/).some((_=>!re.includes(_)))}}TextDecoration.names=["text-decoration"];_.exports=TextDecoration},7598:(_,X,ee)=>{let te=ee(4750);class TextEmphasisPosition extends te{set(_,X){if(X==="-webkit-"){_.value=_.value.replace(/\s*(right|left)\s*/i,"")}return super.set(_,X)}}TextEmphasisPosition.names=["text-emphasis-position"];_.exports=TextEmphasisPosition},8563:(_,X,ee)=>{let te=ee(4750);class TransformDecl extends te{contain3d(_){if(_.prop==="transform-origin"){return false}for(let X of TransformDecl.functions3d){if(_.value.includes(`${X}(`)){return true}}return false}insert(_,X,ee){if(X==="-ms-"){if(!this.contain3d(_)&&!this.keyframeParents(_)){return super.insert(_,X,ee)}}else if(X==="-o-"){if(!this.contain3d(_)){return super.insert(_,X,ee)}}else{return super.insert(_,X,ee)}return undefined}keyframeParents(_){let{parent:X}=_;while(X){if(X.type==="atrule"&&X.name==="keyframes"){return true}({parent:X}=X)}return false}set(_,X){_=super.set(_,X);if(X==="-ms-"){_.value=_.value.replace(/rotatez/gi,"rotate")}return _}}TransformDecl.names=["transform","transform-origin"];TransformDecl.functions3d=["matrix3d","translate3d","translateZ","scale3d","scaleZ","rotate3d","rotateX","rotateY","perspective"];_.exports=TransformDecl},5959:(_,X,ee)=>{let te=ee(4750);class UserSelect extends te{insert(_,X,ee){if(_.value==="all"&&X==="-ms-"){return undefined}else if(_.value==="contain"&&(X==="-moz-"||X==="-webkit-")){return undefined}else{return super.insert(_,X,ee)}}set(_,X){if(X==="-ms-"&&_.value==="contain"){_.value="element"}return super.set(_,X)}}UserSelect.names=["user-select"];_.exports=UserSelect},801:(_,X,ee)=>{let te=ee(4750);class WritingMode extends te{insert(_,X,ee){if(X==="-ms-"){let te=this.set(this.clone(_),X);if(this.needCascade(_)){te.raws.before=this.calcBefore(ee,_,X)}let re="ltr";_.parent.nodes.forEach((_=>{if(_.prop==="direction"){if(_.value==="rtl"||_.value==="ltr")re=_.value}}));te.value=WritingMode.msValues[re][_.value]||_.value;return _.parent.insertBefore(_,te)}return super.insert(_,X,ee)}}WritingMode.names=["writing-mode"];WritingMode.msValues={ltr:{"horizontal-tb":"lr-tb","vertical-lr":"tb-lr","vertical-rl":"tb-rl"},rtl:{"horizontal-tb":"rl-tb","vertical-lr":"bt-lr","vertical-rl":"bt-rl"}};_.exports=WritingMode},3872:(_,X,ee)=>{let te=ee(4907);function capitalize(_){return _.slice(0,1).toUpperCase()+_.slice(1)}const re={and_chr:"Chrome for Android",and_ff:"Firefox for Android",and_qq:"QQ Browser",and_uc:"UC for Android",baidu:"Baidu Browser",ie:"IE",ie_mob:"IE Mobile",ios_saf:"iOS Safari",kaios:"KaiOS Browser",op_mini:"Opera Mini",op_mob:"Opera Mobile",samsung:"Samsung Internet"};function prefix(_,X,ee){let te=` ${_}`;if(ee)te+=" *";te+=": ";te+=X.map((_=>_.replace(/^-(.*)-$/g,"$1"))).join(", ");te+="\n";return te}_.exports=function(_){if(_.browsers.selected.length===0){return"No browsers selected"}let X={};for(let ee of _.browsers.selected){let _=ee.split(" ");let te=_[0];let se=_[1];te=re[te]||capitalize(te);if(X[te]){X[te].push(se)}else{X[te]=[se]}}let ee="Browsers:\n";for(let _ in X){let te=X[_];te=te.sort(((_,X)=>parseFloat(X)-parseFloat(_)));ee+=` ${_}: ${te.join(", ")}\n`}let se=te.coverage(_.browsers.selected);let ne=Math.round(se*100)/100;ee+=`\nThese browsers account for ${ne}% of all users globally\n`;let ie=[];for(let X in _.add){let ee=_.add[X];if(X[0]==="@"&&ee.prefixes){ie.push(prefix(X,ee.prefixes))}}if(ie.length>0){ee+=`\nAt-Rules:\n${ie.sort().join("")}`}let oe=[];for(let X of _.add.selectors){if(X.prefixes){oe.push(prefix(X.name,X.prefixes))}}if(oe.length>0){ee+=`\nSelectors:\n${oe.sort().join("")}`}let ae=[];let le=[];let ue=false;for(let X in _.add){let ee=_.add[X];if(X[0]!=="@"&&ee.prefixes){let _=X.indexOf("grid-")===0;if(_)ue=true;le.push(prefix(X,ee.prefixes,_))}if(!Array.isArray(ee.values)){continue}for(let _ of ee.values){let X=_.name.includes("grid");if(X)ue=true;let ee=prefix(_.name,_.prefixes,X);if(!ae.includes(ee)){ae.push(ee)}}}if(le.length>0){ee+=`\nProperties:\n${le.sort().join("")}`}if(ae.length>0){ee+=`\nValues:\n${ae.sort().join("")}`}if(ue){ee+="\n* - Prefixes will be added only on grid: true option.\n"}if(!ie.length&&!oe.length&&!le.length&&!ae.length){ee+="\nAwesome! Your browsers don't require any vendor prefixes."+"\nNow you can remove Autoprefixer from build steps."}return ee}},9830:_=>{class OldSelector{constructor(_,X){this.prefix=X;this.prefixed=_.prefixed(this.prefix);this.regexp=_.regexp(this.prefix);this.prefixeds=_.possible().map((X=>[_.prefixed(X),_.regexp(X)]));this.unprefixed=_.name;this.nameRegexp=_.regexp()}check(_){if(!_.selector.includes(this.prefixed)){return false}if(!_.selector.match(this.regexp)){return false}if(this.isHack(_)){return false}return true}isHack(_){let X=_.parent.index(_)+1;let ee=_.parent.nodes;while(X{let te=ee(699);class OldValue{constructor(_,X,ee,re){this.unprefixed=_;this.prefixed=X;this.string=ee||X;this.regexp=re||te.regexp(X)}check(_){if(_.includes(this.string)){return!!_.match(this.regexp)}return false}}_.exports=OldValue},9511:(_,X,ee)=>{let te=ee(8277);let re=ee(699);let se=ee(8853);function clone(_,X){let ee=new _.constructor;for(let te of Object.keys(_||{})){let re=_[te];if(te==="parent"&&typeof re==="object"){if(X){ee[te]=X}}else if(te==="source"||te===null){ee[te]=re}else if(Array.isArray(re)){ee[te]=re.map((_=>clone(_,ee)))}else if(te!=="_autoprefixerPrefix"&&te!=="_autoprefixerValues"&&te!=="proxyCache"){if(typeof re==="object"&&re!==null){re=clone(re,ee)}ee[te]=re}}return ee}class Prefixer{constructor(_,X,ee){this.prefixes=X;this.name=_;this.all=ee}static clone(_,X){let ee=clone(_);for(let _ in X){ee[_]=X[_]}return ee}static hack(_){if(!this.hacks){this.hacks={}}return _.names.map((X=>{this.hacks[X]=_;return this.hacks[X]}))}static load(_,X,ee){let te=this.hacks&&this.hacks[_];if(te){return new te(_,X,ee)}else{return new this(_,X,ee)}}clone(_,X){return Prefixer.clone(_,X)}parentPrefix(_){let X;if(typeof _._autoprefixerPrefix!=="undefined"){X=_._autoprefixerPrefix}else if(_.type==="decl"&&_.prop[0]==="-"){X=se.prefix(_.prop)}else if(_.type==="root"){X=false}else if(_.type==="rule"&&_.selector.includes(":-")&&/:(-\w+-)/.test(_.selector)){X=_.selector.match(/:(-\w+-)/)[1]}else if(_.type==="atrule"&&_.name[0]==="-"){X=se.prefix(_.name)}else{X=this.parentPrefix(_.parent)}if(!te.prefixes().includes(X)){X=false}_._autoprefixerPrefix=X;return _._autoprefixerPrefix}process(_,X){if(!this.check(_)){return undefined}let ee=this.parentPrefix(_);let te=this.prefixes.filter((_=>!ee||ee===re.removeNote(_)));let se=[];for(let ee of te){if(this.add(_,ee,se.concat([ee]),X)){se.push(ee)}}return se}}_.exports=Prefixer},4848:(_,X,ee)=>{let te=ee(1318);let re=ee(8277);let se=ee(4750);let ne=ee(3740);let ie=ee(1262);let oe=ee(2537);let ae=ee(5136);let le=ee(256);let ue=ee(2087);let ce=ee(6921);let pe=ee(8641);let fe=ee(2100);let de=ee(305);let he=ee(6162);let me=ee(4917);let ge=ee(2928);let be=ee(6575);let ve=ee(6700);let ye=ee(6898);let we=ee(3594);let xe=ee(8706);let ke=ee(4653);let Se=ee(9591);let _e=ee(5);let Pe=ee(4927);let Oe=ee(2346);let je=ee(5238);let Te=ee(5713);let Ee=ee(4690);let Fe=ee(4799);let Me=ee(2118);let $e=ee(3725);let Re=ee(1218);let Ae=ee(397);let qe=ee(1446);let ze=ee(1909);let Ge=ee(9762);let Ue=ee(1461);let He=ee(6955);let Ze=ee(9104);let Ke=ee(1390);let Xe=ee(1119);let et=ee(2993);let tt=ee(5204);let rt=ee(2982);let st=ee(493);let nt=ee(2782);let it=ee(9320);let ot=ee(2405);let lt=ee(5017);let ut=ee(7669);let ct=ee(9818);let pt=ee(4655);let ft=ee(8881);let dt=ee(9187);let ht=ee(2066);let mt=ee(7598);let gt=ee(8563);let bt=ee(5959);let vt=ee(801);let yt=ee(2140);let wt=ee(7876);let xt=ee(7276);let kt=ee(9159);let St=ee(3398);let _t=ee(699);let Pt=ee(3129);let Ot=ee(8853);xt.hack(ue);xt.hack(Fe);xt.hack(ct);xt.hack(pt);xt.hack(we);se.hack(Se);se.hack(it);se.hack(xe);se.hack(Ae);se.hack(ae);se.hack(Oe);se.hack(je);se.hack(Ee);se.hack($e);se.hack(ut);se.hack(Ue);se.hack(oe);se.hack(le);se.hack(_e);se.hack(st);se.hack(nt);se.hack(ie);se.hack(bt);se.hack(Te);se.hack(ge);se.hack(vt);se.hack(he);se.hack(ne);se.hack(me);se.hack(de);se.hack(He);se.hack(et);se.hack(qe);se.hack(gt);se.hack(Pe);se.hack(Ke);se.hack(ce);se.hack(pe);se.hack(dt);se.hack(rt);se.hack(fe);se.hack(ze);se.hack(Ge);se.hack(Re);se.hack(ot);se.hack(Ze);se.hack(ft);se.hack(mt);se.hack(ht);Pt.hack(Me);Pt.hack(tt);Pt.hack(lt);Pt.hack(Xe);Pt.hack(be);Pt.hack(ve);Pt.hack(ye);Pt.hack(ke);let Ct=new Map;class Prefixes{constructor(_,X,ee={}){this.data=_;this.browsers=X;this.options=ee;[this.add,this.remove]=this.preprocess(this.select(this.data));this.transition=new St(this);this.processor=new yt(this)}cleaner(){if(this.cleanerCache){return this.cleanerCache}if(this.browsers.selected.length){let _=new re(this.browsers.data,[]);this.cleanerCache=new Prefixes(this.data,_,this.options)}else{return this}return this.cleanerCache}decl(_){if(!Ct.has(_)){Ct.set(_,se.load(_))}return Ct.get(_)}group(_){let X=_.parent;let ee=X.index(_);let{length:te}=X.nodes;let se=this.unprefixed(_.prop);let checker=(_,ne)=>{ee+=_;while(ee>=0&&ee{let X=_.split(" ");return{browser:`${X[0]} ${X[1]}`,note:X[2]}}));let se=re.filter((_=>_.note)).map((_=>`${this.browsers.prefix(_.browser)} ${_.note}`));se=_t.uniq(se);re=re.filter((_=>this.browsers.isSelected(_.browser))).map((_=>{let X=this.browsers.prefix(_.browser);if(_.note){return`${X} ${_.note}`}else{return X}}));re=this.sort(_t.uniq(re));if(this.options.flexbox==="no-2009"){re=re.filter((_=>!_.includes("2009")))}let ne=te.browsers.map((_=>this.browsers.prefix(_)));if(te.mistakes){ne=ne.concat(te.mistakes)}ne=ne.concat(se);ne=_t.uniq(ne);if(re.length){X.add[ee]=re;if(re.length!re.includes(_)))}}else{X.remove[ee]=ne}}return X}sort(_){return _.sort(((_,X)=>{let ee=_t.removeNote(_).length;let te=_t.removeNote(X).length;if(ee===te){return X.length-_.length}else{return te-ee}}))}unprefixed(_){let X=this.normalize(Ot.unprefixed(_));if(X==="flex-direction"){X="flex-flow"}return X}values(_,X){let ee=this[_];let te=ee["*"]&&ee["*"].values;let re=ee[X]&&ee[X].values;if(te&&re){return _t.uniq(te.concat(re))}else{return te||re||[]}}}_.exports=Prefixes},2140:(_,X,ee)=>{let te=ee(2045);let re=ee(3129);let se=ee(9850).insertAreas;const ne=/(^|[^-])linear-gradient\(\s*(top|left|right|bottom)/i;const ie=/(^|[^-])radial-gradient\(\s*\d+(\w*|%)\s+\d+(\w*|%)\s*,/i;const oe=/(!\s*)?autoprefixer:\s*ignore\s+next/i;const ae=/(!\s*)?autoprefixer\s*grid:\s*(on|off|(no-)?autoplace)/i;const le=["width","height","min-width","max-width","min-height","max-height","inline-size","min-inline-size","max-inline-size","block-size","min-block-size","max-block-size"];function hasGridTemplate(_){return _.parent.some((_=>_.prop==="grid-template"||_.prop==="grid-template-areas"))}function hasRowsAndColumns(_){let X=_.parent.some((_=>_.prop==="grid-template-rows"));let ee=_.parent.some((_=>_.prop==="grid-template-columns"));return X&&ee}class Processor{constructor(_){this.prefixes=_}add(_,X){let ee=this.prefixes.add["@resolution"];let oe=this.prefixes.add["@keyframes"];let ae=this.prefixes.add["@viewport"];let ue=this.prefixes.add["@supports"];_.walkAtRules((_=>{if(_.name==="keyframes"){if(!this.disabled(_,X)){return oe&&oe.process(_)}}else if(_.name==="viewport"){if(!this.disabled(_,X)){return ae&&ae.process(_)}}else if(_.name==="supports"){if(this.prefixes.options.supports!==false&&!this.disabled(_,X)){return ue.process(_)}}else if(_.name==="media"&&_.params.includes("-resolution")){if(!this.disabled(_,X)){return ee&&ee.process(_)}}return undefined}));_.walkRules((_=>{if(this.disabled(_,X))return undefined;return this.prefixes.add.selectors.map((ee=>ee.process(_,X)))}));function insideGrid(_){return _.parent.nodes.some((_=>{if(_.type!=="decl")return false;let X=_.prop==="display"&&/(inline-)?grid/.test(_.value);let ee=_.prop.startsWith("grid-template");let te=/^grid-([A-z]+-)?gap/.test(_.prop);return X||ee||te}))}let ce=this.gridStatus(_,X)&&this.prefixes.add["grid-area"]&&this.prefixes.add["grid-area"].prefixes;_.walkDecls((_=>{if(this.disabledDecl(_,X))return undefined;let ee=_.parent;let re=_.prop;let se=_.value;if(re==="color-adjust"){if(ee.every((_=>_.prop!=="print-color-adjust"))){X.warn("Replace color-adjust to print-color-adjust. "+"The color-adjust shorthand is currently deprecated.",{node:_})}}else if(re==="grid-row-span"){X.warn("grid-row-span is not part of final Grid Layout. Use grid-row.",{node:_});return undefined}else if(re==="grid-column-span"){X.warn("grid-column-span is not part of final Grid Layout. Use grid-column.",{node:_});return undefined}else if(re==="display"&&se==="box"){X.warn("You should write display: flex by final spec "+"instead of display: box",{node:_});return undefined}else if(re==="text-emphasis-position"){if(se==="under"||se==="over"){X.warn("You should use 2 values for text-emphasis-position "+"For example, `under left` instead of just `under`.",{node:_})}}else if(re==="text-decoration-skip"&&se==="ink"){X.warn("Replace text-decoration-skip: ink to "+"text-decoration-skip-ink: auto, because spec had been changed",{node:_})}else{if(ce&&this.gridStatus(_,X)){if(_.value==="subgrid"){X.warn("IE does not support subgrid",{node:_})}if(/^(align|justify|place)-items$/.test(re)&&insideGrid(_)){let ee=re.replace("-items","-self");X.warn(`IE does not support ${re} on grid containers. `+`Try using ${ee} on child elements instead: `+`${_.parent.selector} > * { ${ee}: ${_.value} }`,{node:_})}else if(/^(align|justify|place)-content$/.test(re)&&insideGrid(_)){X.warn(`IE does not support ${_.prop} on grid containers`,{node:_})}else if(re==="display"&&_.value==="contents"){X.warn("Please do not use display: contents; "+"if you have grid setting enabled",{node:_});return undefined}else if(_.prop==="grid-gap"){let ee=this.gridStatus(_,X);if(ee==="autoplace"&&!hasRowsAndColumns(_)&&!hasGridTemplate(_)){X.warn("grid-gap only works if grid-template(-areas) is being "+"used or both rows and columns have been declared "+"and cells have not been manually "+"placed inside the explicit grid",{node:_})}else if((ee===true||ee==="no-autoplace")&&!hasGridTemplate(_)){X.warn("grid-gap only works if grid-template(-areas) is being used",{node:_})}}else if(re==="grid-auto-columns"){X.warn("grid-auto-columns is not supported by IE",{node:_});return undefined}else if(re==="grid-auto-rows"){X.warn("grid-auto-rows is not supported by IE",{node:_});return undefined}else if(re==="grid-auto-flow"){let te=ee.some((_=>_.prop==="grid-template-rows"));let re=ee.some((_=>_.prop==="grid-template-columns"));if(hasGridTemplate(_)){X.warn("grid-auto-flow is not supported by IE",{node:_})}else if(se.includes("dense")){X.warn("grid-auto-flow: dense is not supported by IE",{node:_})}else if(!te&&!re){X.warn("grid-auto-flow works only if grid-template-rows and "+"grid-template-columns are present in the same rule",{node:_})}return undefined}else if(se.includes("auto-fit")){X.warn("auto-fit value is not supported by IE",{node:_,word:"auto-fit"});return undefined}else if(se.includes("auto-fill")){X.warn("auto-fill value is not supported by IE",{node:_,word:"auto-fill"});return undefined}else if(re.startsWith("grid-template")&&se.includes("[")){X.warn("Autoprefixer currently does not support line names. "+"Try using grid-template-areas instead.",{node:_,word:"["})}}if(se.includes("radial-gradient")){if(ie.test(_.value)){X.warn("Gradient has outdated direction syntax. "+"New syntax is like `closest-side at 0 0` "+"instead of `0 0, closest-side`.",{node:_})}else{let ee=te(se);for(let te of ee.nodes){if(te.type==="function"&&te.value==="radial-gradient"){for(let ee of te.nodes){if(ee.type==="word"){if(ee.value==="cover"){X.warn("Gradient has outdated direction syntax. "+"Replace `cover` to `farthest-corner`.",{node:_})}else if(ee.value==="contain"){X.warn("Gradient has outdated direction syntax. "+"Replace `contain` to `closest-side`.",{node:_})}}}}}}}if(se.includes("linear-gradient")){if(ne.test(se)){X.warn("Gradient has outdated direction syntax. "+"New syntax is like `to left` instead of `right`.",{node:_})}}}if(le.includes(_.prop)){if(!_.value.includes("-fill-available")){if(_.value.includes("fill-available")){X.warn("Replace fill-available to stretch, "+"because spec had been changed",{node:_})}else if(_.value.includes("fill")){let ee=te(se);if(ee.nodes.some((_=>_.type==="word"&&_.value==="fill"))){X.warn("Replace fill to stretch, because spec had been changed",{node:_})}}}}let oe;if(_.prop==="transition"||_.prop==="transition-property"){return this.prefixes.transition.add(_,X)}else if(_.prop==="align-self"){let ee=this.displayType(_);if(ee!=="grid"&&this.prefixes.options.flexbox!==false){oe=this.prefixes.add["align-self"];if(oe&&oe.prefixes){oe.process(_)}}if(this.gridStatus(_,X)!==false){oe=this.prefixes.add["grid-row-align"];if(oe&&oe.prefixes){return oe.process(_,X)}}}else if(_.prop==="justify-self"){if(this.gridStatus(_,X)!==false){oe=this.prefixes.add["grid-column-align"];if(oe&&oe.prefixes){return oe.process(_,X)}}}else if(_.prop==="place-self"){oe=this.prefixes.add["place-self"];if(oe&&oe.prefixes&&this.gridStatus(_,X)!==false){return oe.process(_,X)}}else{oe=this.prefixes.add[_.prop];if(oe&&oe.prefixes){return oe.process(_,X)}}return undefined}));if(this.gridStatus(_,X)){se(_,this.disabled)}return _.walkDecls((_=>{if(this.disabledValue(_,X))return;let ee=this.prefixes.unprefixed(_.prop);let te=this.prefixes.values("add",ee);if(Array.isArray(te)){for(let ee of te){if(ee.process)ee.process(_,X)}}re.save(this.prefixes,_)}))}disabled(_,X){if(!_)return false;if(_._autoprefixerDisabled!==undefined){return _._autoprefixerDisabled}if(_.parent){let X=_.prev();if(X&&X.type==="comment"&&oe.test(X.text)){_._autoprefixerDisabled=true;_._autoprefixerSelfDisabled=true;return true}}let ee=null;if(_.nodes){let te;_.each((_=>{if(_.type!=="comment")return;if(/(!\s*)?autoprefixer:\s*(off|on)/i.test(_.text)){if(typeof te!=="undefined"){X.warn("Second Autoprefixer control comment "+"was ignored. Autoprefixer applies control "+"comment to whole block, not to next rules.",{node:_})}else{te=/on/i.test(_.text)}}}));if(te!==undefined){ee=!te}}if(!_.nodes||ee===null){if(_.parent){let te=this.disabled(_.parent,X);if(_.parent._autoprefixerSelfDisabled===true){ee=false}else{ee=te}}else{ee=false}}_._autoprefixerDisabled=ee;return ee}disabledDecl(_,X){if(_.type==="decl"&&this.gridStatus(_,X)===false){if(_.prop.includes("grid")||_.prop==="justify-items"){return true}}if(_.type==="decl"&&this.prefixes.options.flexbox===false){let X=["order","justify-content","align-items","align-content"];if(_.prop.includes("flex")||X.includes(_.prop)){return true}}return this.disabled(_,X)}disabledValue(_,X){if(this.gridStatus(_,X)===false&&_.type==="decl"){if(_.prop==="display"&&_.value.includes("grid")){return true}}if(this.prefixes.options.flexbox===false&&_.type==="decl"){if(_.prop==="display"&&_.value.includes("flex")){return true}}if(_.type==="decl"&&_.prop==="content"){return true}return this.disabled(_,X)}displayType(_){for(let X of _.parent.nodes){if(X.prop!=="display"){continue}if(X.value.includes("flex")){return"flex"}if(X.value.includes("grid")){return"grid"}}return false}gridStatus(_,X){if(!_)return false;if(_._autoprefixerGridStatus!==undefined){return _._autoprefixerGridStatus}let ee=null;if(_.nodes){let te;_.each((_=>{if(_.type!=="comment")return;if(ae.test(_.text)){let ee=/:\s*autoplace/i.test(_.text);let re=/no-autoplace/i.test(_.text);if(typeof te!=="undefined"){X.warn("Second Autoprefixer grid control comment was "+"ignored. Autoprefixer applies control comments to the whole "+"block, not to the next rules.",{node:_})}else if(ee){te="autoplace"}else if(re){te=true}else{te=/on/i.test(_.text)}}}));if(te!==undefined){ee=te}}if(_.type==="atrule"&&_.name==="supports"){let X=_.params;if(X.includes("grid")&&X.includes("auto")){ee=false}}if(!_.nodes||ee===null){if(_.parent){let te=this.gridStatus(_.parent,X);if(_.parent._autoprefixerSelfDisabled===true){ee=false}else{ee=te}}else if(typeof this.prefixes.options.grid!=="undefined"){ee=this.prefixes.options.grid}else if(typeof process.env.AUTOPREFIXER_GRID!=="undefined"){if(process.env.AUTOPREFIXER_GRID==="autoplace"){ee="autoplace"}else{ee=true}}else{ee=false}}_._autoprefixerGridStatus=ee;return ee}reduceSpaces(_){let X=false;this.prefixes.group(_).up((()=>{X=true;return true}));if(X){return}let ee=_.raw("before").split("\n");let te=ee[ee.length-1].length;let re=false;this.prefixes.group(_).down((_=>{ee=_.raw("before").split("\n");let X=ee.length-1;if(ee[X].length>te){if(re===false){re=ee[X].length-te}ee[X]=ee[X].slice(0,-re);_.raws.before=ee.join("\n")}}))}remove(_,X){let ee=this.prefixes.remove["@resolution"];_.walkAtRules(((_,te)=>{if(this.prefixes.remove[`@${_.name}`]){if(!this.disabled(_,X)){_.parent.removeChild(te)}}else if(_.name==="media"&&_.params.includes("-resolution")&&ee){ee.clean(_)}}));_.walkRules(((_,ee)=>{if(this.disabled(_,X))return;for(let X of this.prefixes.remove.selectors){if(X.check(_)){_.parent.removeChild(ee);return}}}));return _.walkDecls(((_,ee)=>{if(this.disabled(_,X))return;let te=_.parent;let re=this.prefixes.unprefixed(_.prop);if(_.prop==="transition"||_.prop==="transition-property"){this.prefixes.transition.remove(_)}if(this.prefixes.remove[_.prop]&&this.prefixes.remove[_.prop].remove){let X=this.prefixes.group(_).down((_=>this.prefixes.normalize(_.prop)===re));if(re==="flex-flow"){X=true}if(_.prop==="-webkit-box-orient"){let X={"flex-direction":true,"flex-flow":true};if(!_.parent.some((_=>X[_.prop])))return}if(X&&!this.withHackValue(_)){if(_.raw("before").includes("\n")){this.reduceSpaces(_)}te.removeChild(ee);return}}for(let X of this.prefixes.values("remove",re)){if(!X.check)continue;if(!X.check(_.value))continue;re=X.unprefixed;let se=this.prefixes.group(_).down((_=>_.value.includes(re)));if(se){te.removeChild(ee);return}}}))}withHackValue(_){return _.prop==="-webkit-background-clip"&&_.value==="text"||_.prop==="-webkit-box-orient"&&_.parent.some((_=>_.prop==="-webkit-line-clamp"))}}_.exports=Processor},7876:(_,X,ee)=>{let te=ee(725);let re=ee(9511);let se=ee(699);const ne=/(min|max)-resolution\s*:\s*\d*\.?\d+(dppx|dpcm|dpi|x)/gi;const ie=/(min|max)-resolution(\s*:\s*)(\d*\.?\d+)(dppx|dpcm|dpi|x)/i;class Resolution extends re{clean(_){if(!this.bad){this.bad=[];for(let _ of this.prefixes){this.bad.push(this.prefixName(_,"min"));this.bad.push(this.prefixName(_,"max"))}}_.params=se.editList(_.params,(_=>_.filter((_=>this.bad.every((X=>!_.includes(X)))))))}prefixName(_,X){if(_==="-moz-"){return X+"--moz-device-pixel-ratio"}else{return _+X+"-device-pixel-ratio"}}prefixQuery(_,X,ee,re,se){re=new te(re);if(se==="dpi"){re=re.div(96)}else if(se==="dpcm"){re=re.mul(2.54).div(96)}re=re.simplify();if(_==="-o-"){re=re.n+"/"+re.d}return this.prefixName(_,X)+ee+re}process(_){let X=this.parentPrefix(_);let ee=X?[X]:this.prefixes;_.params=se.editList(_.params,((_,X)=>{for(let te of _){if(!te.includes("min-resolution")&&!te.includes("max-resolution")){X.push(te);continue}for(let _ of ee){let ee=te.replace(ne,(X=>{let ee=X.match(ie);return this.prefixQuery(_,ee[1],ee[2],ee[3],ee[4])}));X.push(ee)}X.push(te)}return se.uniq(X)}))}}_.exports=Resolution},7276:(_,X,ee)=>{let{list:te}=ee(977);let re=ee(8277);let se=ee(9830);let ne=ee(9511);let ie=ee(699);class Selector extends ne{constructor(_,X,ee){super(_,X,ee);this.regexpCache=new Map}add(_,X){let ee=this.prefixeds(_);if(this.already(_,ee,X)){return}let te=this.clone(_,{selector:ee[this.name][X]});_.parent.insertBefore(_,te)}already(_,X,ee){let te=_.parent.index(_)-1;while(te>=0){let re=_.parent.nodes[te];if(re.type!=="rule"){return false}let se=false;for(let _ in X[this.name]){let te=X[this.name][_];if(re.selector===te){if(ee===_){return true}else{se=true;break}}}if(!se){return false}te-=1}return false}check(_){if(_.selector.includes(this.name)){return!!_.selector.match(this.regexp())}return false}old(_){return new se(this,_)}possible(){return re.prefixes()}prefixed(_){return this.name.replace(/^(\W*)/,`$1${_}`)}prefixeds(_){if(_._autoprefixerPrefixeds){if(_._autoprefixerPrefixeds[this.name]){return _._autoprefixerPrefixeds}}else{_._autoprefixerPrefixeds={}}let X={};if(_.selector.includes(",")){let ee=te.comma(_.selector);let re=ee.filter((_=>_.includes(this.name)));for(let _ of this.possible()){X[_]=re.map((X=>this.replace(X,_))).join(", ")}}else{for(let ee of this.possible()){X[ee]=this.replace(_.selector,ee)}}_._autoprefixerPrefixeds[this.name]=X;return _._autoprefixerPrefixeds}regexp(_){if(!this.regexpCache.has(_)){let X=_?this.prefixed(_):this.name;this.regexpCache.set(_,new RegExp(`(^|[^:"'=])${ie.escapeRegexp(X)}`,"gi"))}return this.regexpCache.get(_)}replace(_,X){return _.replace(this.regexp(),`$1${this.prefixed(X)}`)}}_.exports=Selector},9159:(_,X,ee)=>{let te=ee(8944);let re=ee(1711);let{parse:se}=ee(977);let ne=ee(8500);let ie=ee(8277);let oe=ee(699);let ae=ee(3129);let le=re(te);let ue=[];for(let _ in le.stats){let X=le.stats[_];for(let ee in X){let te=X[ee];if(/y/.test(te)){ue.push(_+" "+ee)}}}class Supports{constructor(_,X){this.Prefixes=_;this.all=X}add(_,X){return _.map((_=>{if(this.isProp(_)){let X=this.prefixed(_[0]);if(X.length>1){return this.convert(X)}return _}if(typeof _==="object"){return this.add(_,X)}return _}))}cleanBrackets(_){return _.map((_=>{if(typeof _!=="object"){return _}if(_.length===1&&typeof _[0]==="object"){return this.cleanBrackets(_[0])}return this.cleanBrackets(_)}))}convert(_){let X=[""];for(let ee of _){X.push([`${ee.prop}: ${ee.value}`]);X.push(" or ")}X[X.length-1]="";return X}disabled(_){if(!this.all.options.grid){if(_.prop==="display"&&_.value.includes("grid")){return true}if(_.prop.includes("grid")||_.prop==="justify-items"){return true}}if(this.all.options.flexbox===false){if(_.prop==="display"&&_.value.includes("flex")){return true}let X=["order","justify-content","align-items","align-content"];if(_.prop.includes("flex")||X.includes(_.prop)){return true}}return false}isHack(_,X){let ee=new RegExp(`(\\(|\\s)${oe.escapeRegexp(X)}:`);return!ee.test(_)}isNot(_){return typeof _==="string"&&/not\s*/i.test(_)}isOr(_){return typeof _==="string"&&/\s*or\s*/i.test(_)}isProp(_){return typeof _==="object"&&_.length===1&&typeof _[0]==="string"}normalize(_){if(typeof _!=="object"){return _}_=_.filter((_=>_!==""));if(typeof _[0]==="string"){let X=_[0].trim();if(X.includes(":")||X==="selector"||X==="not selector"){return[ne.stringify(_)]}}return _.map((_=>this.normalize(_)))}parse(_){let X=_.split(":");let ee=X[0];let te=X[1];if(!te)te="";return[ee.trim(),te.trim()]}prefixed(_){let X=this.virtual(_);if(this.disabled(X.first)){return X.nodes}let ee={warn:()=>null};let te=this.prefixer().add[X.first.prop];te&&te.process&&te.process(X.first,ee);for(let _ of X.nodes){for(let ee of this.prefixer().values("add",X.first.prop)){ee.process(_)}ae.save(this.all,_)}return X.nodes}prefixer(){if(this.prefixerCache){return this.prefixerCache}let _=this.all.browsers.selected.filter((_=>ue.includes(_)));let X=new ie(this.all.browsers.data,_,this.all.options);this.prefixerCache=new this.Prefixes(this.all.data,X,this.all.options);return this.prefixerCache}process(_){let X=ne.parse(_.params);X=this.normalize(X);X=this.remove(X,_.params);X=this.add(X,_.params);X=this.cleanBrackets(X);_.params=ne.stringify(X)}remove(_,X){let ee=0;while(ee<_.length){if(!this.isNot(_[ee-1])&&this.isProp(_[ee])&&this.isOr(_[ee+1])){if(this.toRemove(_[ee][0],X)){_.splice(ee,2);continue}ee+=2;continue}if(typeof _[ee]==="object"){_[ee]=this.remove(_[ee],X)}ee+=1}return _}toRemove(_,X){let[ee,te]=this.parse(_);let re=this.all.unprefixed(ee);let se=this.all.cleaner();if(se.remove[ee]&&se.remove[ee].remove&&!this.isHack(X,re)){return true}for(let _ of se.values("remove",re)){if(_.check(te)){return true}}return false}virtual(_){let[X,ee]=this.parse(_);let te=se("a{}").first;te.append({prop:X,raws:{before:""},value:ee});return te}}_.exports=Supports},3398:(_,X,ee)=>{let{list:te}=ee(977);let re=ee(2045);let se=ee(8277);let ne=ee(8853);class Transition{constructor(_){this.props=["transition","transition-property"];this.prefixes=_}add(_,X){let ee,te;let re=this.prefixes.add[_.prop];let se=this.ruleVendorPrefixes(_);let ne=se||re&&re.prefixes||[];let ie=this.parse(_.value);let oe=ie.map((_=>this.findProp(_)));let ae=[];if(oe.some((_=>_[0]==="-"))){return}for(let _ of ie){te=this.findProp(_);if(te[0]==="-")continue;let X=this.prefixes.add[te];if(!X||!X.prefixes)continue;for(ee of X.prefixes){if(se&&!se.some((_=>ee.includes(_)))){continue}let X=this.prefixes.prefixed(te,ee);if(X!=="-ms-transform"&&!oe.includes(X)){if(!this.disabled(te,ee)){ae.push(this.clone(te,X,_))}}}}ie=ie.concat(ae);let le=this.stringify(ie);let ue=this.stringify(this.cleanFromUnprefixed(ie,"-webkit-"));if(ne.includes("-webkit-")){this.cloneBefore(_,`-webkit-${_.prop}`,ue)}this.cloneBefore(_,_.prop,ue);if(ne.includes("-o-")){let X=this.stringify(this.cleanFromUnprefixed(ie,"-o-"));this.cloneBefore(_,`-o-${_.prop}`,X)}for(ee of ne){if(ee!=="-webkit-"&&ee!=="-o-"){let X=this.stringify(this.cleanOtherPrefixes(ie,ee));this.cloneBefore(_,ee+_.prop,X)}}if(le!==_.value&&!this.already(_,_.prop,le)){this.checkForWarning(X,_);_.cloneBefore();_.value=le}}already(_,X,ee){return _.parent.some((_=>_.prop===X&&_.value===ee))}checkForWarning(_,X){if(X.prop!=="transition-property"){return}let ee=false;let re=false;X.parent.each((_=>{if(_.type!=="decl"){return undefined}if(_.prop.indexOf("transition-")!==0){return undefined}let X=te.comma(_.value);if(_.prop==="transition-property"){X.forEach((_=>{let X=this.prefixes.add[_];if(X&&X.prefixes&&X.prefixes.length>0){ee=true}}));return undefined}re=re||X.length>1;return false}));if(ee&&re){X.warn(_,"Replace transition-property to transition, "+"because Autoprefixer could not support "+"any cases of transition-property "+"and other transition-*")}}cleanFromUnprefixed(_,X){let ee=_.map((_=>this.findProp(_))).filter((_=>_.slice(0,X.length)===X)).map((_=>this.prefixes.unprefixed(_)));let te=[];for(let re of _){let _=this.findProp(re);let se=ne.prefix(_);if(!ee.includes(_)&&(se===X||se==="")){te.push(re)}}return te}cleanOtherPrefixes(_,X){return _.filter((_=>{let ee=ne.prefix(this.findProp(_));return ee===""||ee===X}))}clone(_,X,ee){let te=[];let re=false;for(let se of ee){if(!re&&se.type==="word"&&se.value===_){te.push({type:"word",value:X});re=true}else{te.push(se)}}return te}cloneBefore(_,X,ee){if(!this.already(_,X,ee)){_.cloneBefore({prop:X,value:ee})}}disabled(_,X){let ee=["order","justify-content","align-self","align-content"];if(_.includes("flex")||ee.includes(_)){if(this.prefixes.options.flexbox===false){return true}if(this.prefixes.options.flexbox==="no-2009"){return X.includes("2009")}}return undefined}div(_){for(let X of _){for(let _ of X){if(_.type==="div"&&_.value===","){return _}}}return{after:" ",type:"div",value:","}}findProp(_){let X=_[0].value;if(/^\d/.test(X)){for(let[X,ee]of _.entries()){if(X!==0&&ee.type==="word"){return ee.value}}}return X}parse(_){let X=re(_);let ee=[];let te=[];for(let _ of X.nodes){te.push(_);if(_.type==="div"&&_.value===","){ee.push(te);te=[]}}ee.push(te);return ee.filter((_=>_.length>0))}remove(_){let X=this.parse(_.value);X=X.filter((_=>{let X=this.prefixes.remove[this.findProp(_)];return!X||!X.remove}));let ee=this.stringify(X);if(_.value===ee){return}if(X.length===0){_.remove();return}let te=_.parent.some((X=>X.prop===_.prop&&X.value===ee));let re=_.parent.some((X=>X!==_&&X.prop===_.prop&&X.value.length>ee.length));if(te||re){_.remove();return}_.value=ee}ruleVendorPrefixes(_){let{parent:X}=_;if(X.type!=="rule"){return false}else if(!X.selector.includes(":-")){return false}let ee=se.prefixes().filter((_=>X.selector.includes(":"+_)));return ee.length>0?ee:false}stringify(_){if(_.length===0){return""}let X=[];for(let ee of _){if(ee[ee.length-1].type!=="div"){ee.push(this.div(_))}X=X.concat(ee)}if(X[0].type==="div"){X=X.slice(1)}if(X[X.length-1].type==="div"){X=X.slice(0,+-2+1||0)}return re.stringify({nodes:X})}}_.exports=Transition},699:(_,X,ee)=>{let{list:te}=ee(977);_.exports.error=function(_){let X=new Error(_);X.autoprefixer=true;throw X};_.exports.uniq=function(_){return[...new Set(_)]};_.exports.removeNote=function(_){if(!_.includes(" ")){return _}return _.split(" ")[0]};_.exports.escapeRegexp=function(_){return _.replace(/[$()*+-.?[\\\]^{|}]/g,"\\$&")};_.exports.regexp=function(_,X=true){if(X){_=this.escapeRegexp(_)}return new RegExp(`(^|[\\s,(])(${_}($|[\\s(,]))`,"gi")};_.exports.editList=function(_,X){let ee=te.comma(_);let re=X(ee,[]);if(ee===re){return _}let se=_.match(/,\s*/);se=se?se[0]:", ";return re.join(se)};_.exports.splitSelector=function(_){return te.comma(_).map((_=>te.space(_).map((_=>_.split(/(?=\.|#)/g)))))};_.exports.isPureNumber=function(_){if(typeof _==="number"){return true}if(typeof _==="string"){return/^[0-9]+$/.test(_)}return false}},3129:(_,X,ee)=>{let te=ee(2097);let re=ee(9511);let se=ee(699);let ne=ee(8853);class Value extends re{static save(_,X){let ee=X.prop;let te=[];for(let re in X._autoprefixerValues){let se=X._autoprefixerValues[re];if(se===X.value){continue}let ie;let oe=ne.prefix(ee);if(oe==="-pie-"){continue}if(oe===re){ie=X.value=se;te.push(ie);continue}let ae=_.prefixed(ee,re);let le=X.parent;if(!le.every((_=>_.prop!==ae))){te.push(ie);continue}let ue=se.replace(/\s+/," ");let ce=le.some((_=>_.prop===X.prop&&_.value.replace(/\s+/," ")===ue));if(ce){te.push(ie);continue}let pe=this.clone(X,{value:se});ie=X.parent.insertBefore(X,pe);te.push(ie)}return te}add(_,X){if(!_._autoprefixerValues){_._autoprefixerValues={}}let ee=_._autoprefixerValues[X]||this.value(_);let te;do{te=ee;ee=this.replace(ee,X);if(ee===false)return}while(ee!==te);_._autoprefixerValues[X]=ee}check(_){let X=_.value;if(!X.includes(this.name)){return false}return!!X.match(this.regexp())}old(_){return new te(this.name,_+this.name)}regexp(){return this.regexpCache||(this.regexpCache=se.regexp(this.name))}replace(_,X){return _.replace(this.regexp(),`$1${X}$2`)}value(_){if(_.raws.value&&_.raws.value.value===_.value){return _.raws.value.raw}else{return _.value}}}_.exports=Value},8853:_=>{_.exports={prefix(_){let X=_.match(/^(-\w+-)/);if(X){return X[0]}return""},unprefixed(_){return _.replace(/^-\w+-/,"")}}},4442:_=>{"use strict";_.exports=balanced;function balanced(_,X,ee){if(_ instanceof RegExp)_=maybeMatch(_,ee);if(X instanceof RegExp)X=maybeMatch(X,ee);var te=range(_,X,ee);return te&&{start:te[0],end:te[1],pre:ee.slice(0,te[0]),body:ee.slice(te[0]+_.length,te[1]),post:ee.slice(te[1]+X.length)}}function maybeMatch(_,X){var ee=X.match(_);return ee?ee[0]:null}balanced.range=range;function range(_,X,ee){var te,re,se,ne,ie;var oe=ee.indexOf(_);var ae=ee.indexOf(X,oe+1);var le=oe;if(oe>=0&&ae>0){te=[];se=ee.length;while(le>=0&&!ie){if(le==oe){te.push(le);oe=ee.indexOf(_,le+1)}else if(te.length==1){ie=[te.pop(),ae]}else{re=te.pop();if(re=0?oe:ae}if(te.length){ie=[se,ne]}}return ie}},441:_=>{"use strict"; +/*! https://mths.be/cssesc v3.0.0 by @mathias */var X={};var ee=X.hasOwnProperty;var te=function merge(_,X){if(!_){return X}var te={};for(var re in X){te[re]=ee.call(_,re)?_[re]:X[re]}return te};var re=/[ -,\.\/:-@\[-\^`\{-~]/;var se=/[ -,\.\/:-@\[\]\^`\{-~]/;var ne=/['"\\]/;var ie=/(^|\\+)?(\\[A-F0-9]{1,6})\x20(?![a-fA-F0-9\x20])/g;var oe=function cssesc(_,X){X=te(X,cssesc.options);if(X.quotes!="single"&&X.quotes!="double"){X.quotes="single"}var ee=X.quotes=="double"?'"':"'";var ne=X.isIdentifier;var oe=_.charAt(0);var ae="";var le=0;var ue=_.length;while(le126){if(pe>=55296&&pe<=56319&&le{"use strict";_.exports={wrap:wrapRange,limit:limitRange,validate:validateRange,test:testRange,curry:curry,name:name};function wrapRange(_,X,ee){var te=X-_;return((ee-_)%te+te)%te+_}function limitRange(_,X,ee){return Math.max(_,Math.min(X,ee))}function validateRange(_,X,ee,te,re){if(!testRange(_,X,ee,te,re)){throw new Error(ee+" is outside of range ["+_+","+X+")")}return ee}function testRange(_,X,ee,te,re){return!(ee<_||ee>X||re&&ee===X||te&&ee===_)}function name(_,X,ee,te){return(ee?"(":"[")+_+","+X+(te?")":"]")}function curry(_,X,ee,te){var re=name.bind(null,_,X,ee,te);return{wrap:wrapRange.bind(null,_,X),limit:limitRange.bind(null,_,X),validate:function(re){return validateRange(_,X,re,ee,te)},test:function(re){return testRange(_,X,re,ee,te)},toString:re,name:re}}},5701:_=>{let X=process||{},ee=X.argv||[],te=X.env||{};let re=!(!!te.NO_COLOR||ee.includes("--no-color"))&&(!!te.FORCE_COLOR||ee.includes("--color")||X.platform==="win32"||(X.stdout||{}).isTTY&&te.TERM!=="dumb"||!!te.CI);let formatter=(_,X,ee=_)=>te=>{let re=""+te,se=re.indexOf(X,_.length);return~se?_+replaceClose(re,X,ee,se)+X:_+re+X};let replaceClose=(_,X,ee,te)=>{let re="",se=0;do{re+=_.substring(se,te)+ee;se=te+X.length;te=_.indexOf(X,se)}while(~te);return re+_.substring(se)};let createColors=(_=re)=>{let X=_?formatter:()=>String;return{isColorSupported:_,reset:X("",""),bold:X("","",""),dim:X("","",""),italic:X("",""),underline:X("",""),inverse:X("",""),hidden:X("",""),strikethrough:X("",""),black:X("",""),red:X("",""),green:X("",""),yellow:X("",""),blue:X("",""),magenta:X("",""),cyan:X("",""),white:X("",""),gray:X("",""),bgBlack:X("",""),bgRed:X("",""),bgGreen:X("",""),bgYellow:X("",""),bgBlue:X("",""),bgMagenta:X("",""),bgCyan:X("",""),bgWhite:X("",""),blackBright:X("",""),redBright:X("",""),greenBright:X("",""),yellowBright:X("",""),blueBright:X("",""),magentaBright:X("",""),cyanBright:X("",""),whiteBright:X("",""),bgBlackBright:X("",""),bgRedBright:X("",""),bgGreenBright:X("",""),bgYellowBright:X("",""),bgBlueBright:X("",""),bgMagentaBright:X("",""),bgCyanBright:X("",""),bgWhiteBright:X("","")}};_.exports=createColors();_.exports.createColors=createColors},6924:(_,X,ee)=>{const te=ee(6206);function nodeIsInsensitiveAttribute(_){return _.type==="attribute"&&_.insensitive}function selectorHasInsensitiveAttribute(_){return _.some(nodeIsInsensitiveAttribute)}function transformString(_,X,ee){const te=ee.charAt(X);if(te===""){return _}let re=_.map((_=>_+te));const se=te.toLocaleUpperCase();if(se!==te){re=re.concat(_.map((_=>_+se)))}return transformString(re,X+1,ee)}function createSensitiveAtributes(_){const X=transformString([""],0,_.value);return X.map((X=>{const ee=_.clone({spaces:{after:_.spaces.after,before:_.spaces.before},insensitive:false});ee.setValue(X);return ee}))}function createNewSelectors(_){let X=[te.selector()];_.walk((_=>{if(!nodeIsInsensitiveAttribute(_)){X.forEach((X=>{X.append(_.clone())}));return}const ee=createSensitiveAtributes(_);const te=[];ee.forEach((_=>{X.forEach((X=>{const ee=X.clone();ee.append(_);te.push(ee)}))}));X=te}));return X}function transform(_){let X=[];_.each((_=>{if(selectorHasInsensitiveAttribute(_)){X=X.concat(createNewSelectors(_));_.remove()}}));if(X.length){X.forEach((X=>_.append(X)))}}const re=/i(\s*\/\*[\W\w]*?\*\/)*\s*\]/;_.exports=()=>({postcssPlugin:"postcss-attribute-case-insensitive",Rule(_){if(re.test(_.selector)){_.selector=te(transform).processSync(_.selector)}}});_.exports.postcss=true},4719:(_,X,ee)=>{let te=ee(2045);function parseValue(_){let X=_.match(/([\d.-]+)(.*)/);if(!X||!X[1]||!X[2]||isNaN(X[1])){return undefined}return[parseFloat(X[1]),X[2]]}function compose(_,X,ee){if(_&&X&&ee){return`max(${_}, min(${X}, ${ee}))`}if(_&&X){return`max(${_}, ${X})`}return _}function updateValue(_,X,ee){let re=X;let se=te(X);let ne=te(_.value);let ie=false;ne.walk(((_,X,ee)=>{let te=_.type==="function"&&_.value==="clamp";if(!te||ie){return}ie=true;ee[X]=se}));if(ie){re=ne.toString()}if(ee){_.cloneBefore({value:re})}else{_.value=re}}_.exports=_=>{_=_||{};let X=_.precalculate?Boolean(_.precalculate):false;let ee=_.preserve?Boolean(_.preserve):false;return{postcssPlugin:"postcss-clamp",Declaration(_){if(!_||!_.value.includes("clamp")){return}te(_.value).walk((re=>{let se=re.nodes;if(re.type!=="function"||re.value!=="clamp"||se.length!==5){return}let ne=se[0];let ie=se[2];let oe=se[4];let ae=compose(te.stringify(ne),te.stringify(ie),te.stringify(oe));if(!X||ie.type!=="word"||oe.type!=="word"){updateValue(_,ae,ee);return}let le=parseValue(ie.value);let ue=parseValue(oe.value);if(le===undefined||ue===undefined){updateValue(_,ae,ee);return}let[ce,pe]=le;let[fe,de]=ue;if(pe!==de){updateValue(_,ae,ee);return}let he=parseValue(ne.value);if(he===undefined){let X=`${ce+fe}${pe}`;updateValue(_,compose(te.stringify(ne),X),ee);return}let[me,ge]=he;if(ge!==pe){let X=`${ce+fe}${pe}`;updateValue(_,compose(te.stringify(ne),X),ee);return}updateValue(_,compose(`${me+ce+fe}${pe}`),ee)}))}}};_.exports.postcss=true},5671:(_,X,ee)=>{"use strict";var te=ee(7147);var re=ee(1017);var se=ee(977);function _interopDefaultLegacy(_){return _&&typeof _==="object"&&"default"in _?_:{default:_}}function _interopNamespace(_){if(_&&_.__esModule)return _;var X=Object.create(null);if(_){Object.keys(_).forEach((function(ee){if(ee!=="default"){var te=Object.getOwnPropertyDescriptor(_,ee);Object.defineProperty(X,ee,te.get?te:{enumerable:true,get:function(){return _[ee]}})}}))}X["default"]=_;return Object.freeze(X)}var ne=_interopDefaultLegacy(te);var ie=_interopDefaultLegacy(re);function parse(_,X){const ee=[];let te="";let re=false;let se=0;let ne=-1;while(++ne<_.length){const ie=_[ne];if(ie==="("){se+=1}else if(ie===")"){if(se>0){se-=1}}else if(se===0){if(X&&de.test(te+ie)){re=true}else if(!X&&ie===","){re=true}}if(re){ee.push(X?new MediaExpression(te+ie):new MediaQuery(te));te="";re=false}else{te+=ie}}if(te!==""){ee.push(X?new MediaExpression(te):new MediaQuery(te))}return ee}class MediaQueryList{constructor(_){this.nodes=parse(_)}invert(){this.nodes.forEach((_=>{_.invert()}));return this}clone(){return new MediaQueryList(String(this))}toString(){return this.nodes.join(",")}}class MediaQuery{constructor(_){const[,X,ee,te]=_.match(he);const[,re="",se=" ",ne="",ie="",oe="",ae="",le="",ue=""]=ee.match(me)||[];const ce={before:X,after:te,afterModifier:se,originalModifier:re||"",beforeAnd:ie,and:oe,beforeExpression:ae};const pe=parse(le||ue,true);Object.assign(this,{modifier:re,type:ne,raws:ce,nodes:pe})}clone(_){const X=new MediaQuery(String(this));Object.assign(X,_);return X}invert(){this.modifier=this.modifier?"":this.raws.originalModifier;return this}toString(){const{raws:_}=this;return`${_.before}${this.modifier}${this.modifier?`${_.afterModifier}`:""}${this.type}${_.beforeAnd}${_.and}${_.beforeExpression}${this.nodes.join("")}${this.raws.after}`}}class MediaExpression{constructor(_){const[,X,ee="",te="",re=""]=_.match(de)||[null,_];const se={after:ee,and:te,afterAnd:re};Object.assign(this,{value:X,raws:se})}clone(_){const X=new MediaExpression(String(this));Object.assign(X,_);return X}toString(){const{raws:_}=this;return`${this.value}${_.after}${_.and}${_.afterAnd}`}}const oe="(not|only)";const ae="(all|print|screen|speech)";const le="([\\W\\w]*)";const ue="([\\W\\w]+)";const ce="(\\s*)";const pe="(\\s+)";const fe="(?:(\\s+)(and))";const de=new RegExp(`^${ue}(?:${fe}${pe})$`,"i");const he=new RegExp(`^${ce}${le}${ce}$`);const me=new RegExp(`^(?:${oe}${pe})?(?:${ae}(?:${fe}${pe}${ue})?|${ue})$`,"i");var mediaASTFromString=_=>new MediaQueryList(_);var getCustomMediaFromRoot=(_,X)=>{const ee={};_.nodes.slice().forEach((_=>{if(isCustomMedia(_)){const[,te,re]=_.params.match(be);ee[te]=mediaASTFromString(re);if(!Object(X).preserve){_.remove()}}}));return ee};const ge=/^custom-media$/i;const be=/^(--[A-z][\w-]*)\s+([\W\w]+)\s*$/;const isCustomMedia=_=>_.type==="atrule"&&ge.test(_.name)&&be.test(_.params);async function getCustomMediaFromCSSFile(_){const X=await readFile(_);const ee=se.parse(X,{from:_});return getCustomMediaFromRoot(ee,{preserve:true})}function getCustomMediaFromObject(_){const X=Object.assign({},Object(_).customMedia,Object(_)["custom-media"]);for(const _ in X){X[_]=mediaASTFromString(X[_])}return X}async function getCustomMediaFromJSONFile(_){const X=await readJSON(_);return getCustomMediaFromObject(X)}async function getCustomMediaFromJSFile(_){const X=await Promise.resolve().then((function(){return _interopNamespace(require(_))}));return getCustomMediaFromObject(X)}function getCustomMediaFromSources(_){return _.map((_=>{if(_ instanceof Promise){return _}else if(_ instanceof Function){return _()}const X=_===Object(_)?_:{from:String(_)};if(Object(X).customMedia||Object(X)["custom-media"]){return X}const ee=ie["default"].resolve(String(X.from||""));const te=(X.type||ie["default"].extname(ee).slice(1)).toLowerCase();return{type:te,from:ee}})).reduce((async(_,X)=>{const{type:ee,from:te}=await X;if(ee==="css"||ee==="pcss"){return Object.assign(await _,await getCustomMediaFromCSSFile(te))}if(ee==="js"){return Object.assign(await _,await getCustomMediaFromJSFile(te))}if(ee==="json"){return Object.assign(await _,await getCustomMediaFromJSONFile(te))}return Object.assign(await _,getCustomMediaFromObject(await X))}),{})}const readFile=_=>new Promise(((X,ee)=>{ne["default"].readFile(_,"utf8",((_,te)=>{if(_){ee(_)}else{X(te)}}))}));const readJSON=async _=>JSON.parse(await readFile(_));function transformMediaList(_,X){let ee=_.nodes.length-1;while(ee>=0){const te=transformMedia(_.nodes[ee],X);if(te.length){_.nodes.splice(ee,1,...te)}--ee}return _}function transformMedia(_,X){const ee=[];for(const te in _.nodes){const{value:re,nodes:se}=_.nodes[te];const ne=re.replace(ve,"$1");if(ne in X){for(const re of X[ne].nodes){const se=_.modifier!==re.modifier?_.modifier||re.modifier:"";const ie=_.clone({modifier:se,raws:!se||_.modifier?{..._.raws}:{...re.raws},type:_.type||re.type});if(ie.type===re.type){Object.assign(ie.raws,{and:re.raws.and,beforeAnd:re.raws.beforeAnd,beforeExpression:re.raws.beforeExpression})}ie.nodes.splice(te,1,...re.clone().nodes.map((X=>{if(_.nodes[te].raws.and){X.raws={..._.nodes[te].raws}}X.spaces={..._.nodes[te].spaces};return X})));const oe=getCustomMediasWithoutKey(X,ne);const ae=transformMedia(ie,oe);if(ae.length){ee.push(...ae)}else{ee.push(ie)}}return ee}else if(se&&se.length){transformMediaList(_.nodes[te],X)}}return ee}const ve=/\((--[A-z][\w-]*)\)/;const getCustomMediasWithoutKey=(_,X)=>{const ee=Object.assign({},_);delete ee[X];return ee};var transformAtrules=(_,X,ee)=>{_.walkAtRules(ye,(_=>{if(we.test(_.params)){const te=mediaASTFromString(_.params);const re=String(transformMediaList(te,X));if(ee.preserve){_.cloneBefore({params:re})}else{_.params=re}}}))};const ye=/^media$/i;const we=/\(--[A-z][\w-]*\)/;async function writeCustomMediaToCssFile(_,X){const ee=Object.keys(X).reduce(((_,ee)=>{_.push(`@custom-media ${ee} ${X[ee]};`);return _}),[]).join("\n");const te=`${ee}\n`;await writeFile(_,te)}async function writeCustomMediaToJsonFile(_,X){const ee=JSON.stringify({"custom-media":X},null," ");const te=`${ee}\n`;await writeFile(_,te)}async function writeCustomMediaToCjsFile(_,X){const ee=Object.keys(X).reduce(((_,ee)=>{_.push(`\t\t'${escapeForJS(ee)}': '${escapeForJS(X[ee])}'`);return _}),[]).join(",\n");const te=`module.exports = {\n\tcustomMedia: {\n${ee}\n\t}\n};\n`;await writeFile(_,te)}async function writeCustomMediaToMjsFile(_,X){const ee=Object.keys(X).reduce(((_,ee)=>{_.push(`\t'${escapeForJS(ee)}': '${escapeForJS(X[ee])}'`);return _}),[]).join(",\n");const te=`export const customMedia = {\n${ee}\n};\n`;await writeFile(_,te)}function writeCustomMediaToExports(_,X){return Promise.all(X.map((async X=>{if(X instanceof Function){await X(defaultCustomMediaToJSON(_))}else{const ee=X===Object(X)?X:{to:String(X)};const te=ee.toJSON||defaultCustomMediaToJSON;if("customMedia"in ee){ee.customMedia=te(_)}else if("custom-media"in ee){ee["custom-media"]=te(_)}else{const X=String(ee.to||"");const re=(ee.type||ie["default"].extname(X).slice(1)).toLowerCase();const se=te(_);if(re==="css"){await writeCustomMediaToCssFile(X,se)}if(re==="js"){await writeCustomMediaToCjsFile(X,se)}if(re==="json"){await writeCustomMediaToJsonFile(X,se)}if(re==="mjs"){await writeCustomMediaToMjsFile(X,se)}}}})))}const defaultCustomMediaToJSON=_=>Object.keys(_).reduce(((X,ee)=>{X[ee]=String(_[ee]);return X}),{});const writeFile=(_,X)=>new Promise(((ee,te)=>{ne["default"].writeFile(_,X,(_=>{if(_){te(_)}else{ee()}}))}));const escapeForJS=_=>_.replace(/\\([\s\S])|(')/g,"\\$1$2").replace(/\n/g,"\\n").replace(/\r/g,"\\r");const creator=_=>{const X="preserve"in Object(_)?Boolean(_.preserve):false;const ee=[].concat(Object(_).importFrom||[]);const te=[].concat(Object(_).exportTo||[]);const re=getCustomMediaFromSources(ee);return{postcssPlugin:"postcss-custom-media",Once:async _=>{const ee=Object.assign(await re,getCustomMediaFromRoot(_,{preserve:X}));await writeCustomMediaToExports(ee,te);transformAtrules(_,ee,{preserve:X})}}};creator.postcss=true;_.exports=creator},8179:(_,X,ee)=>{"use strict";var te=ee(6206);var re=ee(7147);var se=ee(1017);var ne=ee(977);function _interopDefaultLegacy(_){return _&&typeof _==="object"&&"default"in _?_:{default:_}}function _interopNamespace(_){if(_&&_.__esModule)return _;var X=Object.create(null);if(_){Object.keys(_).forEach((function(ee){if(ee!=="default"){var te=Object.getOwnPropertyDescriptor(_,ee);Object.defineProperty(X,ee,te.get?te:{enumerable:true,get:function(){return _[ee]}})}}))}X["default"]=_;return Object.freeze(X)}var ie=_interopDefaultLegacy(te);var oe=_interopDefaultLegacy(re);var ae=_interopDefaultLegacy(se);var le=_interopDefaultLegacy(ne);var getSelectorsAstFromSelectorsString=_=>{let X;ie["default"]((_=>{X=_})).processSync(_);return X};var getCustomSelectors=(_,X)=>{const ee={};_.nodes.slice().forEach((_=>{if(isCustomSelector(_)){const[,te,re]=_.params.match(ce);ee[te]=getSelectorsAstFromSelectorsString(re);if(!Object(X).preserve){_.remove()}}}));return ee};const ue=/^custom-selector$/i;const ce=/^(:--[A-z][\w-]*)\s+([\W\w]+)\s*$/;const isCustomSelector=_=>_.type==="atrule"&&ue.test(_.name)&&ce.test(_.params);function transformSelectorList(_,X){let ee=_.nodes.length-1;while(ee>=0){const te=transformSelector(_.nodes[ee],X);if(te.length){_.nodes.splice(ee,1,...te)}--ee}return _}function transformSelector(_,X){const ee=[];for(const te in _.nodes){const{value:re,nodes:se}=_.nodes[te];if(re in X){for(const se of X[re].nodes){const re=_.clone();re.nodes.splice(te,1,...se.clone().nodes.map((X=>{X.spaces={..._.nodes[te].spaces};return X})));const ne=transformSelector(re,X);adjustNodesBySelectorEnds(re.nodes,Number(te));if(ne.length){ee.push(...ne)}else{ee.push(re)}}return ee}else if(se&&se.length){transformSelectorList(_.nodes[te],X)}}return ee}const pe=/^(tag|universal)$/;const fe=/^(class|id|pseudo|tag|universal)$/;const isWithoutSelectorStart=_=>pe.test(Object(_).type);const isWithoutSelectorEnd=_=>fe.test(Object(_).type);const adjustNodesBySelectorEnds=(_,X)=>{if(X&&isWithoutSelectorStart(_[X])&&isWithoutSelectorEnd(_[X-1])){let ee=X-1;while(ee&&isWithoutSelectorEnd(_[ee])){--ee}if(ee{_.walkRules(de,(_=>{const te=ie["default"]((_=>{transformSelectorList(_,X)})).processSync(_.selector);if(ee.preserve){_.cloneBefore({selector:te})}else{_.selector=te}}))};const de=/:--[A-z][\w-]*/;function importCustomSelectorsFromCSSAST(_){return getCustomSelectors(_)}async function importCustomSelectorsFromCSSFile(_){const X=await readFile(ae["default"].resolve(_));const ee=le["default"].parse(X,{from:ae["default"].resolve(_)});return importCustomSelectorsFromCSSAST(ee)}function importCustomSelectorsFromObject(_){const X=Object.assign({},Object(_).customSelectors||Object(_)["custom-selectors"]);for(const _ in X){X[_]=getSelectorsAstFromSelectorsString(X[_])}return X}async function importCustomSelectorsFromJSONFile(_){const X=await readJSON(ae["default"].resolve(_));return importCustomSelectorsFromObject(X)}async function importCustomSelectorsFromJSFile(_){const X=await Promise.resolve().then((function(){return _interopNamespace(require(ae["default"].resolve(_)))}));return importCustomSelectorsFromObject(X)}function importCustomSelectorsFromSources(_){return _.map((_=>{if(_ instanceof Promise){return _}else if(_ instanceof Function){return _()}const X=_===Object(_)?_:{from:String(_)};if(Object(X).customSelectors||Object(X)["custom-selectors"]){return X}const ee=String(X.from||"");const te=(X.type||ae["default"].extname(ee).slice(1)).toLowerCase();return{type:te,from:ee}})).reduce((async(_,X)=>{const ee=await _;const{type:te,from:re}=await X;if(te==="ast"){return Object.assign(ee,importCustomSelectorsFromCSSAST(re))}if(te==="css"){return Object.assign(ee,await importCustomSelectorsFromCSSFile(re))}if(te==="js"){return Object.assign(ee,await importCustomSelectorsFromJSFile(re))}if(te==="json"){return Object.assign(ee,await importCustomSelectorsFromJSONFile(re))}return Object.assign(ee,importCustomSelectorsFromObject(await X))}),Promise.resolve({}))}const readFile=_=>new Promise(((X,ee)=>{oe["default"].readFile(_,"utf8",((_,te)=>{if(_){ee(_)}else{X(te)}}))}));const readJSON=async _=>JSON.parse(await readFile(_));async function exportCustomSelectorsToCssFile(_,X){const ee=Object.keys(X).reduce(((_,ee)=>{_.push(`@custom-selector ${ee} ${X[ee]};`);return _}),[]).join("\n");const te=`${ee}\n`;await writeFile(_,te)}async function exportCustomSelectorsToJsonFile(_,X){const ee=JSON.stringify({"custom-selectors":X},null," ");const te=`${ee}\n`;await writeFile(_,te)}async function exportCustomSelectorsToCjsFile(_,X){const ee=Object.keys(X).reduce(((_,ee)=>{_.push(`\t\t'${escapeForJS(ee)}': '${escapeForJS(X[ee])}'`);return _}),[]).join(",\n");const te=`module.exports = {\n\tcustomSelectors: {\n${ee}\n\t}\n};\n`;await writeFile(_,te)}async function exportCustomSelectorsToMjsFile(_,X){const ee=Object.keys(X).reduce(((_,ee)=>{_.push(`\t'${escapeForJS(ee)}': '${escapeForJS(X[ee])}'`);return _}),[]).join(",\n");const te=`export const customSelectors = {\n${ee}\n};\n`;await writeFile(_,te)}function exportCustomSelectorsToDestinations(_,X){return Promise.all(X.map((async X=>{if(X instanceof Function){await X(defaultCustomSelectorsToJSON(_))}else{const ee=X===Object(X)?X:{to:String(X)};const te=ee.toJSON||defaultCustomSelectorsToJSON;if("customSelectors"in ee){ee.customSelectors=te(_)}else if("custom-selectors"in ee){ee["custom-selectors"]=te(_)}else{const X=String(ee.to||"");const re=(ee.type||ae["default"].extname(ee.to).slice(1)).toLowerCase();const se=te(_);if(re==="css"){await exportCustomSelectorsToCssFile(X,se)}if(re==="js"){await exportCustomSelectorsToCjsFile(X,se)}if(re==="json"){await exportCustomSelectorsToJsonFile(X,se)}if(re==="mjs"){await exportCustomSelectorsToMjsFile(X,se)}}}})))}const defaultCustomSelectorsToJSON=_=>Object.keys(_).reduce(((X,ee)=>{X[ee]=String(_[ee]);return X}),{});const writeFile=(_,X)=>new Promise(((ee,te)=>{oe["default"].writeFile(_,X,(_=>{if(_){te(_)}else{ee()}}))}));const escapeForJS=_=>_.replace(/\\([\s\S])|(')/g,"\\$1$2").replace(/\n/g,"\\n").replace(/\r/g,"\\r");const postcssCustomSelectors=_=>{const X=Boolean(Object(_).preserve);const ee=[].concat(Object(_).importFrom||[]);const te=[].concat(Object(_).exportTo||[]);const re=importCustomSelectorsFromSources(ee);return{postcssPlugin:"postcss-custom-selectors",async Once(_){const ee=Object.assign({},await re,getCustomSelectors(_,{preserve:X}));await exportCustomSelectorsToDestinations(ee,te);transformRules(_,ee,{preserve:X})}}};postcssCustomSelectors.postcss=true;_.exports=postcssCustomSelectors},6033:_=>{const X={"font-variant-ligatures":{"common-ligatures":'"liga", "clig"',"no-common-ligatures":'"liga", "clig off"',"discretionary-ligatures":'"dlig"',"no-discretionary-ligatures":'"dlig" off',"historical-ligatures":'"hlig"',"no-historical-ligatures":'"hlig" off',contextual:'"calt"',"no-contextual":'"calt" off'},"font-variant-position":{sub:'"subs"',super:'"sups"',normal:'"subs" off, "sups" off'},"font-variant-caps":{"small-caps":'"smcp"',"all-small-caps":'"smcp", "c2sc"',"petite-caps":'"pcap"',"all-petite-caps":'"pcap", "c2pc"',unicase:'"unic"',"titling-caps":'"titl"'},"font-variant-numeric":{"lining-nums":'"lnum"',"oldstyle-nums":'"onum"',"proportional-nums":'"pnum"',"tabular-nums":'"tnum"',"diagonal-fractions":'"frac"',"stacked-fractions":'"afrc"',ordinal:'"ordn"',"slashed-zero":'"zero"'},"font-kerning":{normal:'"kern"',none:'"kern" off'},"font-variant":{normal:"normal",inherit:"inherit"}};for(const _ in X){const ee=X[_];for(const _ in ee){if(!(_ in X["font-variant"])){X["font-variant"][_]=ee[_]}}}function getFontFeatureSettingsPrevTo(_){let X=null;_.parent.walkDecls((_=>{if(_.prop==="font-feature-settings"){X=_}}));if(X===null){X=_.clone();X.prop="font-feature-settings";X.value="";_.parent.insertBefore(_,X)}return X}function walkRule(_){let ee=null;_.walkDecls((_=>{if(!X[_.prop]){return null}let te=_.value;if(_.prop==="font-variant"){te=_.value.split(/\s+/g).map((_=>X["font-variant"][_])).join(", ")}else if(X[_.prop][_.value]){te=X[_.prop][_.value]}if(ee===null){ee=getFontFeatureSettingsPrevTo(_)}if(ee.value&&ee.value!==te){ee.value+=", "+te}else{ee.value=te}}))}_.exports=()=>({postcssPlugin:"postcss-font-variant",Once(_){_.walkRules(walkRule)}});_.exports.postcss=true},8633:(_,X,ee)=>{var te=ee(298);_.exports=function postcssInitial(_){_=_||{};_.reset=_.reset||"all";_.replace=_.replace||false;var X=te(_.reset==="inherited");var getPropPrevTo=function(_,X){var ee=false;X.parent.walkDecls((function(_){if(_.prop===X.prop&&_.value!==X.value){ee=true}}));return ee};return{postcssPlugin:"postcss-initial",Declaration:function(ee){if(!/\binitial\b/.test(ee.value)){return}var te=X(ee.prop,ee.value);if(te.length===0)return;te.forEach((function(_){if(!getPropPrevTo(ee.prop,ee)){ee.cloneBefore(_)}}));if(_.replace===true){ee.remove()}}}};_.exports.postcss=true},298:(_,X,ee)=>{var te=ee(9717);function template(_,X){return _.replace(/\$\{([\w\-\.]*)\}/g,(function(_,ee){var te=X[ee];return typeof te!=="undefined"&&te!==null?te:""}))}function _getRulesMap(_){return _.filter((function(_){return!_.combined})).reduce((function(_,X){_[X.prop.replace(/\-/g,"")]=X.initial;return _}),{})}function _compileDecls(_){var X=_getRulesMap(_);return _.map((function(_){if(_.combined&&_.initial){_.initial=template(_.initial.replace(/\-/g,""),X)}return _}))}function _getRequirements(_){return _.reduce((function(_,X){if(!X.contains)return _;return X.contains.reduce((function(_,ee){_[ee]=X;return _}),_)}),{})}function _expandContainments(_){var X=_getRequirements(_);return _.filter((function(_){return!_.contains})).map((function(_){var ee=X[_.prop];if(ee){_.requiredBy=ee.prop;_.basic=_.basic||ee.basic;_.inherited=_.inherited||ee.inherited}return _}))}var re=_expandContainments(_compileDecls(te));function _clearDecls(_,X){return _.map((function(_){return{prop:_.prop,value:X.replace(/\binitial\b/g,_.initial)}}))}function _allDecls(_){return re.filter((function(X){var ee=X.combined||X.basic;if(_)return ee&&X.inherited;return ee}))}function _concreteDecl(_){return re.filter((function(X){return _===X.prop||_===X.requiredBy}))}function makeFallbackFunction(_){return function(X,ee){var te;if(X==="all"){te=_allDecls(_)}else{te=_concreteDecl(X)}return _clearDecls(te,ee)}}_.exports=makeFallbackFunction},9142:_=>{const X={width:"px",height:"px","device-width":"px","device-height":"px","aspect-ratio":"","device-aspect-ratio":"",color:"","color-index":"",monochrome:"",resolution:"dpi"};const ee=Object.keys(X);const te=.001;const re={">":1,"<":-1};const se={">":"min","<":"max"};function create_query(_,ee,ne,ie){return ie.replace(/([-\d\.]+)(.*)/,(function(ie,oe,ae){const le=parseFloat(oe);if(parseFloat(oe)||ne){if(!ne){if(ae==="px"&&le===parseInt(oe,10)){oe=le+re[ee]}else{oe=Number(Math.round(parseFloat(oe)+te*re[ee]+"e6")+"e-6")}}}else{oe=re[ee]+X[_]}return"("+se[ee]+"-"+_+": "+oe+ae+")"}))}function transform(_){if(!_.params.includes("<")&&!_.params.includes(">")){return}_.params=_.params.replace(/\(\s*([a-z-]+?)\s*([<>])(=?)\s*((?:-?\d*\.?(?:\s*\/?\s*)?\d+[a-z]*)?)\s*\)/gi,(function(_,X,te,re,se){if(ee.indexOf(X)>-1){return create_query(X,te,re,se)}return _}));_.params=_.params.replace(/\(\s*((?:-?\d*\.?(?:\s*\/?\s*)?\d+[a-z]*)?)\s*(<|>)(=?)\s*([a-z-]+)\s*(<|>)(=?)\s*((?:-?\d*\.?(?:\s*\/?\s*)?\d+[a-z]*)?)\s*\)/gi,(function(_,X,te,re,se,ne,ie,oe){if(ee.indexOf(se)>-1){if(te==="<"&&ne==="<"||te===">"&&ne===">"){const _=te==="<"?X:oe;const ee=te==="<"?oe:X;let ne=re;let ae=ie;if(te===">"){ne=ie;ae=re}return create_query(se,">",ne,_)+" and "+create_query(se,"<",ae,ee)}}return _}))}_.exports=()=>({postcssPlugin:"postcss-media-minmax",AtRule:{media:_=>{transform(_)},"custom-media":_=>{transform(_)}}});_.exports.postcss=true},4658:_=>{const X=new Set(["inherit","initial","revert","unset"]);_.exports=({preserve:_=false}={})=>({postcssPlugin:"postcss-opacity-percentage",Declaration:{opacity:ee=>{if(!ee.value||ee.value.startsWith("var(")||!ee.value.endsWith("%")||X.has(ee.value)){return}ee.cloneBefore({value:String(Number.parseFloat(ee.value)/100)});if(!_){ee.remove()}}}});_.exports.postcss=true},971:_=>{_.exports=function(_){return{postcssPlugin:"postcss-page-break",Declaration(_){if(_.prop.startsWith("break-")&&/^break-(inside|before|after)/.test(_.prop)){if(_.value.search(/column|region/)>=0){return}let X;switch(_.value){case"page":X="always";break;case"avoid-page":X="avoid";break;default:X=_.value}const ee="page-"+_.prop;if(_.parent.every((_=>_.prop!==ee))){_.cloneBefore({prop:ee,value:X})}}}}};_.exports.postcss=true},3181:_=>{_.exports=function(_){_=_||{};var X=_.method||"replace";return{postcssPlugin:"postcss-replace-overflow-wrap",Declaration:{"overflow-wrap":_=>{_.cloneBefore({prop:"word-wrap"});if(X==="replace"){_.remove()}}}}};_.exports.postcss=true},3991:(_,X,ee)=>{"use strict";Object.defineProperty(X,"__esModule",{value:true});X["default"]=void 0;var te=_interopRequireDefault(ee(5726));var re=_interopRequireDefault(ee(4442));function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function explodeSelector(_,X){const ee=locatePseudoClass(X,_);if(X&&ee>-1){const se=X.slice(0,ee);const ne=(0,re.default)("(",")",X.slice(ee));if(!ne){return X}const ie=ne.body?te.default.comma(ne.body).map((X=>explodeSelector(_,X))).join(`)${_}(`):"";const oe=ne.post?explodeSelector(_,ne.post):"";return`${se}${_}(${ie})${oe}`}return X}const se={};function locatePseudoClass(_,X){se[X]=se[X]||new RegExp(`([^\\\\]|^)${X}`);const ee=se[X];const te=_.search(ee);if(te===-1){return-1}return te+_.slice(te).indexOf(X)}function explodeSelectors(_){return()=>({postcssPlugin:"postcss-selector-not",Rule:X=>{if(X.selector&&X.selector.indexOf(_)>-1){X.selector=explodeSelector(_,X.selector)}}})}const ne=explodeSelectors(":not");ne.postcss=true;var ie=ne;X["default"]=ie},6206:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(6440));var re=_interopRequireWildcard(ee(7759));function _getRequireWildcardCache(_){if(typeof WeakMap!=="function")return null;var X=new WeakMap;var ee=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(_){return _?ee:X})(_)}function _interopRequireWildcard(_,X){if(!X&&_&&_.__esModule){return _}if(_===null||typeof _!=="object"&&typeof _!=="function"){return{default:_}}var ee=_getRequireWildcardCache(X);if(ee&&ee.has(_)){return ee.get(_)}var te={};var re=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var se in _){if(se!=="default"&&Object.prototype.hasOwnProperty.call(_,se)){var ne=re?Object.getOwnPropertyDescriptor(_,se):null;if(ne&&(ne.get||ne.set)){Object.defineProperty(te,se,ne)}else{te[se]=_[se]}}}te["default"]=_;if(ee){ee.set(_,te)}return te}function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}var se=function parser(_){return new te["default"](_)};Object.assign(se,re);delete se.__esModule;var ne=se;X["default"]=ne;_.exports=X.default},5838:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(7774));var re=_interopRequireDefault(ee(372));var se=_interopRequireDefault(ee(7113));var ne=_interopRequireDefault(ee(6723));var ie=_interopRequireDefault(ee(8362));var oe=_interopRequireDefault(ee(4088));var ae=_interopRequireDefault(ee(4931));var le=_interopRequireDefault(ee(9573));var ue=_interopRequireWildcard(ee(4910));var ce=_interopRequireDefault(ee(2767));var pe=_interopRequireDefault(ee(7805));var fe=_interopRequireDefault(ee(7066));var de=_interopRequireDefault(ee(866));var he=_interopRequireWildcard(ee(9668));var me=_interopRequireWildcard(ee(6004));var ge=_interopRequireWildcard(ee(7105));var be=ee(4371);var ve,ye;function _getRequireWildcardCache(_){if(typeof WeakMap!=="function")return null;var X=new WeakMap;var ee=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(_){return _?ee:X})(_)}function _interopRequireWildcard(_,X){if(!X&&_&&_.__esModule){return _}if(_===null||typeof _!=="object"&&typeof _!=="function"){return{default:_}}var ee=_getRequireWildcardCache(X);if(ee&&ee.has(_)){return ee.get(_)}var te={};var re=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var se in _){if(se!=="default"&&Object.prototype.hasOwnProperty.call(_,se)){var ne=re?Object.getOwnPropertyDescriptor(_,se):null;if(ne&&(ne.get||ne.set)){Object.defineProperty(te,se,ne)}else{te[se]=_[se]}}}te["default"]=_;if(ee){ee.set(_,te)}return te}function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _defineProperties(_,X){for(var ee=0;ee0){var te=this.current.last;if(te){var re=this.convertWhitespaceNodesToSpace(ee),se=re.space,ne=re.rawSpace;if(ne!==undefined){te.rawSpaceAfter+=ne}te.spaces.after+=se}else{ee.forEach((function(X){return _.newNode(X)}))}}return}var ie=this.currToken;var oe=undefined;if(X>this.position){oe=this.parseWhitespaceEquivalentTokens(X)}var ae;if(this.isNamedCombinator()){ae=this.namedCombinator()}else if(this.currToken[he.FIELDS.TYPE]===me.combinator){ae=new pe["default"]({value:this.content(),source:getTokenSource(this.currToken),sourceIndex:this.currToken[he.FIELDS.START_POS]});this.position++}else if(we[this.currToken[he.FIELDS.TYPE]]){}else if(!oe){this.unexpected()}if(ae){if(oe){var le=this.convertWhitespaceNodesToSpace(oe),ue=le.space,ce=le.rawSpace;ae.spaces.before=ue;ae.rawSpaceBefore=ce}}else{var fe=this.convertWhitespaceNodesToSpace(oe,true),de=fe.space,ge=fe.rawSpace;if(!ge){ge=de}var be={};var ve={spaces:{}};if(de.endsWith(" ")&&ge.endsWith(" ")){be.before=de.slice(0,de.length-1);ve.spaces.before=ge.slice(0,ge.length-1)}else if(de.startsWith(" ")&&ge.startsWith(" ")){be.after=de.slice(1);ve.spaces.after=ge.slice(1)}else{ve.value=ge}ae=new pe["default"]({value:" ",source:getTokenSourceSpan(ie,this.tokens[this.position-1]),sourceIndex:ie[he.FIELDS.START_POS],spaces:be,raws:ve})}if(this.currToken&&this.currToken[he.FIELDS.TYPE]===me.space){ae.spaces.after=this.optionalSpace(this.content());this.position++}return this.newNode(ae)};_.comma=function comma(){if(this.position===this.tokens.length-1){this.root.trailingComma=true;this.position++;return}this.current._inferEndPosition();var _=new re["default"]({source:{start:tokenStart(this.tokens[this.position+1])},sourceIndex:this.tokens[this.position+1][he.FIELDS.START_POS]});this.current.parent.append(_);this.current=_;this.position++};_.comment=function comment(){var _=this.currToken;this.newNode(new ne["default"]({value:this.content(),source:getTokenSource(_),sourceIndex:_[he.FIELDS.START_POS]}));this.position++};_.error=function error(_,X){throw this.root.error(_,X)};_.missingBackslash=function missingBackslash(){return this.error("Expected a backslash preceding the semicolon.",{index:this.currToken[he.FIELDS.START_POS]})};_.missingParenthesis=function missingParenthesis(){return this.expected("opening parenthesis",this.currToken[he.FIELDS.START_POS])};_.missingSquareBracket=function missingSquareBracket(){return this.expected("opening square bracket",this.currToken[he.FIELDS.START_POS])};_.unexpected=function unexpected(){return this.error("Unexpected '"+this.content()+"'. Escaping special characters with \\ may help.",this.currToken[he.FIELDS.START_POS])};_.unexpectedPipe=function unexpectedPipe(){return this.error("Unexpected '|'.",this.currToken[he.FIELDS.START_POS])};_.namespace=function namespace(){var _=this.prevToken&&this.content(this.prevToken)||true;if(this.nextToken[he.FIELDS.TYPE]===me.word){this.position++;return this.word(_)}else if(this.nextToken[he.FIELDS.TYPE]===me.asterisk){this.position++;return this.universal(_)}this.unexpectedPipe()};_.nesting=function nesting(){if(this.nextToken){var _=this.content(this.nextToken);if(_==="|"){this.position++;return}}var X=this.currToken;this.newNode(new fe["default"]({value:this.content(),source:getTokenSource(X),sourceIndex:X[he.FIELDS.START_POS]}));this.position++};_.parentheses=function parentheses(){var _=this.current.last;var X=1;this.position++;if(_&&_.type===ge.PSEUDO){var ee=new re["default"]({source:{start:tokenStart(this.tokens[this.position])},sourceIndex:this.tokens[this.position][he.FIELDS.START_POS]});var te=this.current;_.append(ee);this.current=ee;while(this.position1&&_.nextToken&&_.nextToken[he.FIELDS.TYPE]===me.openParenthesis){_.error("Misplaced parenthesis.",{index:_.nextToken[he.FIELDS.START_POS]})}}))}else{return this.expected(["pseudo-class","pseudo-element"],this.currToken[he.FIELDS.START_POS])}};_.space=function space(){var _=this.content();if(this.position===0||this.prevToken[he.FIELDS.TYPE]===me.comma||this.prevToken[he.FIELDS.TYPE]===me.openParenthesis||this.current.nodes.every((function(_){return _.type==="comment"}))){this.spaces=this.optionalSpace(_);this.position++}else if(this.position===this.tokens.length-1||this.nextToken[he.FIELDS.TYPE]===me.comma||this.nextToken[he.FIELDS.TYPE]===me.closeParenthesis){this.current.last.spaces.after=this.optionalSpace(_);this.position++}else{this.combinator()}};_.string=function string(){var _=this.currToken;this.newNode(new ae["default"]({value:this.content(),source:getTokenSource(_),sourceIndex:_[he.FIELDS.START_POS]}));this.position++};_.universal=function universal(_){var X=this.nextToken;if(X&&this.content(X)==="|"){this.position++;return this.namespace()}var ee=this.currToken;this.newNode(new ce["default"]({value:this.content(),source:getTokenSource(ee),sourceIndex:ee[he.FIELDS.START_POS]}),_);this.position++};_.splitWord=function splitWord(_,X){var ee=this;var te=this.nextToken;var re=this.content();while(te&&~[me.dollar,me.caret,me.equals,me.word].indexOf(te[he.FIELDS.TYPE])){this.position++;var ne=this.content();re+=ne;if(ne.lastIndexOf("\\")===ne.length-1){var ae=this.nextToken;if(ae&&ae[he.FIELDS.TYPE]===me.space){re+=this.requiredSpace(this.content(ae));this.position++}}te=this.nextToken}var le=indexesOf(re,".").filter((function(_){var X=re[_-1]==="\\";var ee=/^\d+\.\d+%$/.test(re);return!X&&!ee}));var ue=indexesOf(re,"#").filter((function(_){return re[_-1]!=="\\"}));var ce=indexesOf(re,"#{");if(ce.length){ue=ue.filter((function(_){return!~ce.indexOf(_)}))}var pe=(0,de["default"])(uniqs([0].concat(le,ue)));pe.forEach((function(te,ne){var ae=pe[ne+1]||re.length;var ce=re.slice(te,ae);if(ne===0&&X){return X.call(ee,ce,pe.length)}var fe;var de=ee.currToken;var me=de[he.FIELDS.START_POS]+pe[ne];var ge=getSource(de[1],de[2]+te,de[3],de[2]+(ae-1));if(~le.indexOf(te)){var be={value:ce.slice(1),source:ge,sourceIndex:me};fe=new se["default"](unescapeProp(be,"value"))}else if(~ue.indexOf(te)){var ve={value:ce.slice(1),source:ge,sourceIndex:me};fe=new ie["default"](unescapeProp(ve,"value"))}else{var ye={value:ce,source:ge,sourceIndex:me};unescapeProp(ye,"value");fe=new oe["default"](ye)}ee.newNode(fe,_);_=null}));this.position++};_.word=function word(_){var X=this.nextToken;if(X&&this.content(X)==="|"){this.position++;return this.namespace()}return this.splitWord(_)};_.loop=function loop(){while(this.position{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(5838));function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}var re=function(){function Processor(_,X){this.func=_||function noop(){};this.funcRes=null;this.options=X}var _=Processor.prototype;_._shouldUpdateSelector=function _shouldUpdateSelector(_,X){if(X===void 0){X={}}var ee=Object.assign({},this.options,X);if(ee.updateSelector===false){return false}else{return typeof _!=="string"}};_._isLossy=function _isLossy(_){if(_===void 0){_={}}var X=Object.assign({},this.options,_);if(X.lossless===false){return true}else{return false}};_._root=function _root(_,X){if(X===void 0){X={}}var ee=new te["default"](_,this._parseOptions(X));return ee.root};_._parseOptions=function _parseOptions(_){return{lossy:this._isLossy(_)}};_._run=function _run(_,X){var ee=this;if(X===void 0){X={}}return new Promise((function(te,re){try{var se=ee._root(_,X);Promise.resolve(ee.func(se)).then((function(te){var re=undefined;if(ee._shouldUpdateSelector(_,X)){re=se.toString();_.selector=re}return{transform:te,root:se,string:re}})).then(te,re)}catch(_){re(_);return}}))};_._runSync=function _runSync(_,X){if(X===void 0){X={}}var ee=this._root(_,X);var te=this.func(ee);if(te&&typeof te.then==="function"){throw new Error("Selector processor returned a promise to a synchronous call.")}var re=undefined;if(X.updateSelector&&typeof _!=="string"){re=ee.toString();_.selector=re}return{transform:te,root:ee,string:re}};_.ast=function ast(_,X){return this._run(_,X).then((function(_){return _.root}))};_.astSync=function astSync(_,X){return this._runSync(_,X).root};_.transform=function transform(_,X){return this._run(_,X).then((function(_){return _.transform}))};_.transformSync=function transformSync(_,X){return this._runSync(_,X).transform};_.process=function process(_,X){return this._run(_,X).then((function(_){return _.string||_.root.toString()}))};_.processSync=function processSync(_,X){var ee=this._runSync(_,X);return ee.string||ee.root.toString()};return Processor}();X["default"]=re;_.exports=X.default},4910:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;X.unescapeValue=unescapeValue;var te=_interopRequireDefault(ee(441));var re=_interopRequireDefault(ee(7949));var se=_interopRequireDefault(ee(2551));var ne=ee(7105);var ie;function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _defineProperties(_,X){for(var ee=0;ee0&&!_.quoted&&ee.before.length===0&&!(_.spaces.value&&_.spaces.value.after)){ee.before=" "}return defaultAttrConcat(X,ee)})))}X.push("]");X.push(this.rawSpaceAfter);return X.join("")};_createClass(Attribute,[{key:"quoted",get:function get(){var _=this.quoteMark;return _==="'"||_==='"'},set:function set(_){ue()}},{key:"quoteMark",get:function get(){return this._quoteMark},set:function set(_){if(!this._constructed){this._quoteMark=_;return}if(this._quoteMark!==_){this._quoteMark=_;this._syncRawValue()}}},{key:"qualifiedAttribute",get:function get(){return this.qualifiedName(this.raws.attribute||this.attribute)}},{key:"insensitiveFlag",get:function get(){return this.insensitive?"i":""}},{key:"value",get:function get(){return this._value},set:function set(_){if(this._constructed){var X=unescapeValue(_),ee=X.deprecatedUsage,te=X.unescaped,re=X.quoteMark;if(ee){le()}if(te===this._value&&re===this._quoteMark){return}this._value=te;this._quoteMark=re;this._syncRawValue()}else{this._value=_}}},{key:"insensitive",get:function get(){return this._insensitive},set:function set(_){if(!_){this._insensitive=false;if(this.raws&&(this.raws.insensitiveFlag==="I"||this.raws.insensitiveFlag==="i")){this.raws.insensitiveFlag=undefined}}this._insensitive=_}},{key:"attribute",get:function get(){return this._attribute},set:function set(_){this._handleEscapes("attribute",_);this._attribute=_}}]);return Attribute}(se["default"]);X["default"]=pe;pe.NO_QUOTE=null;pe.SINGLE_QUOTE="'";pe.DOUBLE_QUOTE='"';var fe=(ie={"'":{quotes:"single",wrap:true},'"':{quotes:"double",wrap:true}},ie[null]={isIdentifier:true},ie);function defaultAttrConcat(_,X){return""+X.before+_+X.after}},7113:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(441));var re=ee(4371);var se=_interopRequireDefault(ee(4938));var ne=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _defineProperties(_,X){for(var ee=0;ee{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(4938));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Combinator,_);function Combinator(X){var ee;ee=_.call(this,X)||this;ee.type=re.COMBINATOR;return ee}return Combinator}(te["default"]);X["default"]=se;_.exports=X.default},6723:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(4938));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Comment,_);function Comment(X){var ee;ee=_.call(this,X)||this;ee.type=re.COMMENT;return ee}return Comment}(te["default"]);X["default"]=se;_.exports=X.default},9374:(_,X,ee)=>{"use strict";X.__esModule=true;X.universal=X.tag=X.string=X.selector=X.root=X.pseudo=X.nesting=X.id=X.comment=X.combinator=X.className=X.attribute=void 0;var te=_interopRequireDefault(ee(4910));var re=_interopRequireDefault(ee(7113));var se=_interopRequireDefault(ee(7805));var ne=_interopRequireDefault(ee(6723));var ie=_interopRequireDefault(ee(8362));var oe=_interopRequireDefault(ee(7066));var ae=_interopRequireDefault(ee(9573));var le=_interopRequireDefault(ee(7774));var ue=_interopRequireDefault(ee(372));var ce=_interopRequireDefault(ee(4931));var pe=_interopRequireDefault(ee(4088));var fe=_interopRequireDefault(ee(2767));function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}var de=function attribute(_){return new te["default"](_)};X.attribute=de;var he=function className(_){return new re["default"](_)};X.className=he;var me=function combinator(_){return new se["default"](_)};X.combinator=me;var ge=function comment(_){return new ne["default"](_)};X.comment=ge;var be=function id(_){return new ie["default"](_)};X.id=be;var ve=function nesting(_){return new oe["default"](_)};X.nesting=ve;var ye=function pseudo(_){return new ae["default"](_)};X.pseudo=ye;var we=function root(_){return new le["default"](_)};X.root=we;var xe=function selector(_){return new ue["default"](_)};X.selector=xe;var ke=function string(_){return new ce["default"](_)};X.string=ke;var Se=function tag(_){return new pe["default"](_)};X.tag=Se;var _e=function universal(_){return new fe["default"](_)};X.universal=_e},304:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(4938));var re=_interopRequireWildcard(ee(7105));function _getRequireWildcardCache(_){if(typeof WeakMap!=="function")return null;var X=new WeakMap;var ee=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(_){return _?ee:X})(_)}function _interopRequireWildcard(_,X){if(!X&&_&&_.__esModule){return _}if(_===null||typeof _!=="object"&&typeof _!=="function"){return{default:_}}var ee=_getRequireWildcardCache(X);if(ee&&ee.has(_)){return ee.get(_)}var te={};var re=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var se in _){if(se!=="default"&&Object.prototype.hasOwnProperty.call(_,se)){var ne=re?Object.getOwnPropertyDescriptor(_,se):null;if(ne&&(ne.get||ne.set)){Object.defineProperty(te,se,ne)}else{te[se]=_[se]}}}te["default"]=_;if(ee){ee.set(_,te)}return te}function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _createForOfIteratorHelperLoose(_,X){var ee=typeof Symbol!=="undefined"&&_[Symbol.iterator]||_["@@iterator"];if(ee)return(ee=ee.call(_)).next.bind(ee);if(Array.isArray(_)||(ee=_unsupportedIterableToArray(_))||X&&_&&typeof _.length==="number"){if(ee)_=ee;var te=0;return function(){if(te>=_.length)return{done:true};return{done:false,value:_[te++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}function _unsupportedIterableToArray(_,X){if(!_)return;if(typeof _==="string")return _arrayLikeToArray(_,X);var ee=Object.prototype.toString.call(_).slice(8,-1);if(ee==="Object"&&_.constructor)ee=_.constructor.name;if(ee==="Map"||ee==="Set")return Array.from(_);if(ee==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(ee))return _arrayLikeToArray(_,X)}function _arrayLikeToArray(_,X){if(X==null||X>_.length)X=_.length;for(var ee=0,te=new Array(X);ee=_){this.indexes[ee]=X-1}}return this};X.removeAll=function removeAll(){for(var _=_createForOfIteratorHelperLoose(this.nodes),X;!(X=_()).done;){var ee=X.value;ee.parent=undefined}this.nodes=[];return this};X.empty=function empty(){return this.removeAll()};X.insertAfter=function insertAfter(_,X){X.parent=this;var ee=this.index(_);this.nodes.splice(ee+1,0,X);X.parent=this;var te;for(var re in this.indexes){te=this.indexes[re];if(ee<=te){this.indexes[re]=te+1}}return this};X.insertBefore=function insertBefore(_,X){X.parent=this;var ee=this.index(_);this.nodes.splice(ee,0,X);X.parent=this;var te;for(var re in this.indexes){te=this.indexes[re];if(te<=ee){this.indexes[re]=te+1}}return this};X._findChildAtPosition=function _findChildAtPosition(_,X){var ee=undefined;this.each((function(te){if(te.atPosition){var re=te.atPosition(_,X);if(re){ee=re;return false}}else if(te.isAtPosition(_,X)){ee=te;return false}}));return ee};X.atPosition=function atPosition(_,X){if(this.isAtPosition(_,X)){return this._findChildAtPosition(_,X)||this}else{return undefined}};X._inferEndPosition=function _inferEndPosition(){if(this.last&&this.last.source&&this.last.source.end){this.source=this.source||{};this.source.end=this.source.end||{};Object.assign(this.source.end,this.last.source.end)}};X.each=function each(_){if(!this.lastEach){this.lastEach=0}if(!this.indexes){this.indexes={}}this.lastEach++;var X=this.lastEach;this.indexes[X]=0;if(!this.length){return undefined}var ee,te;while(this.indexes[X]{"use strict";X.__esModule=true;X.isComment=X.isCombinator=X.isClassName=X.isAttribute=void 0;X.isContainer=isContainer;X.isIdentifier=void 0;X.isNamespace=isNamespace;X.isNesting=void 0;X.isNode=isNode;X.isPseudo=void 0;X.isPseudoClass=isPseudoClass;X.isPseudoElement=isPseudoElement;X.isUniversal=X.isTag=X.isString=X.isSelector=X.isRoot=void 0;var te=ee(7105);var re;var se=(re={},re[te.ATTRIBUTE]=true,re[te.CLASS]=true,re[te.COMBINATOR]=true,re[te.COMMENT]=true,re[te.ID]=true,re[te.NESTING]=true,re[te.PSEUDO]=true,re[te.ROOT]=true,re[te.SELECTOR]=true,re[te.STRING]=true,re[te.TAG]=true,re[te.UNIVERSAL]=true,re);function isNode(_){return typeof _==="object"&&se[_.type]}function isNodeType(_,X){return isNode(X)&&X.type===_}var ne=isNodeType.bind(null,te.ATTRIBUTE);X.isAttribute=ne;var ie=isNodeType.bind(null,te.CLASS);X.isClassName=ie;var oe=isNodeType.bind(null,te.COMBINATOR);X.isCombinator=oe;var ae=isNodeType.bind(null,te.COMMENT);X.isComment=ae;var le=isNodeType.bind(null,te.ID);X.isIdentifier=le;var ue=isNodeType.bind(null,te.NESTING);X.isNesting=ue;var ce=isNodeType.bind(null,te.PSEUDO);X.isPseudo=ce;var pe=isNodeType.bind(null,te.ROOT);X.isRoot=pe;var fe=isNodeType.bind(null,te.SELECTOR);X.isSelector=fe;var de=isNodeType.bind(null,te.STRING);X.isString=de;var he=isNodeType.bind(null,te.TAG);X.isTag=he;var me=isNodeType.bind(null,te.UNIVERSAL);X.isUniversal=me;function isPseudoElement(_){return ce(_)&&_.value&&(_.value.startsWith("::")||_.value.toLowerCase()===":before"||_.value.toLowerCase()===":after"||_.value.toLowerCase()===":first-letter"||_.value.toLowerCase()===":first-line")}function isPseudoClass(_){return ce(_)&&!isPseudoElement(_)}function isContainer(_){return!!(isNode(_)&&_.walk)}function isNamespace(_){return ne(_)||he(_)}},8362:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(4938));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(ID,_);function ID(X){var ee;ee=_.call(this,X)||this;ee.type=re.ID;return ee}var X=ID.prototype;X.valueToString=function valueToString(){return"#"+_.prototype.valueToString.call(this)};return ID}(te["default"]);X["default"]=se;_.exports=X.default},7759:(_,X,ee)=>{"use strict";X.__esModule=true;var te=ee(7105);Object.keys(te).forEach((function(_){if(_==="default"||_==="__esModule")return;if(_ in X&&X[_]===te[_])return;X[_]=te[_]}));var re=ee(9374);Object.keys(re).forEach((function(_){if(_==="default"||_==="__esModule")return;if(_ in X&&X[_]===re[_])return;X[_]=re[_]}));var se=ee(5943);Object.keys(se).forEach((function(_){if(_==="default"||_==="__esModule")return;if(_ in X&&X[_]===se[_])return;X[_]=se[_]}))},2551:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(441));var re=ee(4371);var se=_interopRequireDefault(ee(4938));function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _defineProperties(_,X){for(var ee=0;ee{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(4938));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Nesting,_);function Nesting(X){var ee;ee=_.call(this,X)||this;ee.type=re.NESTING;ee.value="&";return ee}return Nesting}(te["default"]);X["default"]=se;_.exports=X.default},4938:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=ee(4371);function _defineProperties(_,X){for(var ee=0;ee_){return false}if(this.source.end.line<_){return false}if(this.source.start.line===_&&this.source.start.column>X){return false}if(this.source.end.line===_&&this.source.end.column{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(304));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Pseudo,_);function Pseudo(X){var ee;ee=_.call(this,X)||this;ee.type=re.PSEUDO;return ee}var X=Pseudo.prototype;X.toString=function toString(){var _=this.length?"("+this.map(String).join(",")+")":"";return[this.rawSpaceBefore,this.stringifyProperty("value"),_,this.rawSpaceAfter].join("")};return Pseudo}(te["default"]);X["default"]=se;_.exports=X.default},7774:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(304));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _defineProperties(_,X){for(var ee=0;ee{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(304));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Selector,_);function Selector(X){var ee;ee=_.call(this,X)||this;ee.type=re.SELECTOR;return ee}return Selector}(te["default"]);X["default"]=se;_.exports=X.default},4931:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(4938));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(String,_);function String(X){var ee;ee=_.call(this,X)||this;ee.type=re.STRING;return ee}return String}(te["default"]);X["default"]=se;_.exports=X.default},4088:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(2551));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Tag,_);function Tag(X){var ee;ee=_.call(this,X)||this;ee.type=re.TAG;return ee}return Tag}(te["default"]);X["default"]=se;_.exports=X.default},7105:(_,X)=>{"use strict";X.__esModule=true;X.UNIVERSAL=X.TAG=X.STRING=X.SELECTOR=X.ROOT=X.PSEUDO=X.NESTING=X.ID=X.COMMENT=X.COMBINATOR=X.CLASS=X.ATTRIBUTE=void 0;var ee="tag";X.TAG=ee;var te="string";X.STRING=te;var re="selector";X.SELECTOR=re;var se="root";X.ROOT=se;var ne="pseudo";X.PSEUDO=ne;var ie="nesting";X.NESTING=ie;var oe="id";X.ID=oe;var ae="comment";X.COMMENT=ae;var le="combinator";X.COMBINATOR=le;var ue="class";X.CLASS=ue;var ce="attribute";X.ATTRIBUTE=ce;var pe="universal";X.UNIVERSAL=pe},2767:(_,X,ee)=>{"use strict";X.__esModule=true;X["default"]=void 0;var te=_interopRequireDefault(ee(2551));var re=ee(7105);function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}function _inheritsLoose(_,X){_.prototype=Object.create(X.prototype);_.prototype.constructor=_;_setPrototypeOf(_,X)}function _setPrototypeOf(_,X){_setPrototypeOf=Object.setPrototypeOf?Object.setPrototypeOf.bind():function _setPrototypeOf(_,X){_.__proto__=X;return _};return _setPrototypeOf(_,X)}var se=function(_){_inheritsLoose(Universal,_);function Universal(X){var ee;ee=_.call(this,X)||this;ee.type=re.UNIVERSAL;ee.value="*";return ee}return Universal}(te["default"]);X["default"]=se;_.exports=X.default},866:(_,X)=>{"use strict";X.__esModule=true;X["default"]=sortAscending;function sortAscending(_){return _.sort((function(_,X){return _-X}))}_.exports=X.default},6004:(_,X)=>{"use strict";X.__esModule=true;X.word=X.tilde=X.tab=X.str=X.space=X.slash=X.singleQuote=X.semicolon=X.plus=X.pipe=X.openSquare=X.openParenthesis=X.newline=X.greaterThan=X.feed=X.equals=X.doubleQuote=X.dollar=X.cr=X.comment=X.comma=X.combinator=X.colon=X.closeSquare=X.closeParenthesis=X.caret=X.bang=X.backslash=X.at=X.asterisk=X.ampersand=void 0;var ee=38;X.ampersand=ee;var te=42;X.asterisk=te;var re=64;X.at=re;var se=44;X.comma=se;var ne=58;X.colon=ne;var ie=59;X.semicolon=ie;var oe=40;X.openParenthesis=oe;var ae=41;X.closeParenthesis=ae;var le=91;X.openSquare=le;var ue=93;X.closeSquare=ue;var ce=36;X.dollar=ce;var pe=126;X.tilde=pe;var fe=94;X.caret=fe;var de=43;X.plus=de;var he=61;X.equals=he;var me=124;X.pipe=me;var ge=62;X.greaterThan=ge;var be=32;X.space=be;var ve=39;X.singleQuote=ve;var ye=34;X.doubleQuote=ye;var we=47;X.slash=we;var xe=33;X.bang=xe;var ke=92;X.backslash=ke;var Se=13;X.cr=Se;var _e=12;X.feed=_e;var Pe=10;X.newline=Pe;var Oe=9;X.tab=Oe;var je=ve;X.str=je;var Te=-1;X.comment=Te;var Ee=-2;X.word=Ee;var Fe=-3;X.combinator=Fe},9668:(_,X,ee)=>{"use strict";X.__esModule=true;X.FIELDS=void 0;X["default"]=tokenize;var te=_interopRequireWildcard(ee(6004));var re,se;function _getRequireWildcardCache(_){if(typeof WeakMap!=="function")return null;var X=new WeakMap;var ee=new WeakMap;return(_getRequireWildcardCache=function _getRequireWildcardCache(_){return _?ee:X})(_)}function _interopRequireWildcard(_,X){if(!X&&_&&_.__esModule){return _}if(_===null||typeof _!=="object"&&typeof _!=="function"){return{default:_}}var ee=_getRequireWildcardCache(X);if(ee&&ee.has(_)){return ee.get(_)}var te={};var re=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var se in _){if(se!=="default"&&Object.prototype.hasOwnProperty.call(_,se)){var ne=re?Object.getOwnPropertyDescriptor(_,se):null;if(ne&&(ne.get||ne.set)){Object.defineProperty(te,se,ne)}else{te[se]=_[se]}}}te["default"]=_;if(ee){ee.set(_,te)}return te}var ne=(re={},re[te.tab]=true,re[te.newline]=true,re[te.cr]=true,re[te.feed]=true,re);var ie=(se={},se[te.space]=true,se[te.tab]=true,se[te.newline]=true,se[te.cr]=true,se[te.feed]=true,se[te.ampersand]=true,se[te.asterisk]=true,se[te.bang]=true,se[te.comma]=true,se[te.colon]=true,se[te.semicolon]=true,se[te.openParenthesis]=true,se[te.closeParenthesis]=true,se[te.openSquare]=true,se[te.closeSquare]=true,se[te.singleQuote]=true,se[te.doubleQuote]=true,se[te.plus]=true,se[te.pipe]=true,se[te.tilde]=true,se[te.greaterThan]=true,se[te.equals]=true,se[te.dollar]=true,se[te.caret]=true,se[te.slash]=true,se);var oe={};var ae="0123456789abcdefABCDEF";for(var le=0;le0){be=ie+he;ve=ge-me[he].length}else{be=ie;ve=ne}we=te.comment;ie=be;pe=be;ce=ge-ve}else if(le===te.slash){ge=oe;we=le;pe=ie;ce=oe-ne;ae=ge+1}else{ge=consumeWord(ee,oe);we=te.word;pe=ie;ce=ge-ne}ae=ge+1;break}X.push([we,ie,oe-ne,pe,ce,oe,ae]);if(ve){ne=ve;ve=null}oe=ae}return X}},3695:(_,X)=>{"use strict";X.__esModule=true;X["default"]=ensureObject;function ensureObject(_){for(var X=arguments.length,ee=new Array(X>1?X-1:0),te=1;te0){var re=ee.shift();if(!_[re]){_[re]={}}_=_[re]}}_.exports=X.default},5919:(_,X)=>{"use strict";X.__esModule=true;X["default"]=getProp;function getProp(_){for(var X=arguments.length,ee=new Array(X>1?X-1:0),te=1;te0){var re=ee.shift();if(!_[re]){return undefined}_=_[re]}return _}_.exports=X.default},4371:(_,X,ee)=>{"use strict";X.__esModule=true;X.unesc=X.stripComments=X.getProp=X.ensureObject=void 0;var te=_interopRequireDefault(ee(7949));X.unesc=te["default"];var re=_interopRequireDefault(ee(5919));X.getProp=re["default"];var se=_interopRequireDefault(ee(3695));X.ensureObject=se["default"];var ne=_interopRequireDefault(ee(7945));X.stripComments=ne["default"];function _interopRequireDefault(_){return _&&_.__esModule?_:{default:_}}},7945:(_,X)=>{"use strict";X.__esModule=true;X["default"]=stripComments;function stripComments(_){var X="";var ee=_.indexOf("/*");var te=0;while(ee>=0){X=X+_.slice(te,ee);var re=_.indexOf("*/",ee+2);if(re<0){return X}te=re+2;ee=_.indexOf("/*",te)}X=X+_.slice(te);return X}_.exports=X.default},7949:(_,X)=>{"use strict";X.__esModule=true;X["default"]=unesc;function gobbleHex(_){var X=_.toLowerCase();var ee="";var te=false;for(var re=0;re<6&&X[re]!==undefined;re++){var se=X.charCodeAt(re);var ne=se>=97&&se<=102||se>=48&&se<=57;te=se===32;if(!ne){break}ee+=X[re]}if(ee.length===0){return undefined}var ie=parseInt(ee,16);var oe=ie>=55296&&ie<=57343;if(oe||ie===0||ie>1114111){return["�",ee.length+(te?1:0)]}return[String.fromCodePoint(ie),ee.length+(te?1:0)]}var ee=/\\/;function unesc(_){var X=ee.test(_);if(!X){return _}var te="";for(var re=0;re<_.length;re++){if(_[re]==="\\"){var se=gobbleHex(_.slice(re+1,re+7));if(se!==undefined){te+=se[0];re+=se[1];continue}if(_[re+1]==="\\"){te+="\\";re++;continue}if(_.length===re+1){te+=_[re]}continue}te+=_[re]}return te}_.exports=X.default},5726:_=>{"use strict";let X={comma(_){return X.split(_,[","],true)},space(_){let ee=[" ","\n","\t"];return X.split(_,ee)},split(_,X,ee){let te=[];let re="";let se=false;let ne=0;let ie=false;let oe="";let ae=false;for(let ee of _){if(ae){ae=false}else if(ee==="\\"){ae=true}else if(ie){if(ee===oe){ie=false}}else if(ee==='"'||ee==="'"){ie=true;oe=ee}else if(ee==="("){ne+=1}else if(ee===")"){if(ne>0)ne-=1}else if(ne===0){if(X.includes(ee))se=true}if(se){if(re!=="")te.push(re.trim());re="";se=false}else{re+=ee}}if(ee||re!=="")te.push(re.trim());return te}};_.exports=X;X.default=X},6124:(_,X,ee)=>{_.exports=ee(3837).deprecate},5829:_=>{function webpackEmptyContext(_){var X=new Error("Cannot find module '"+_+"'");X.code="MODULE_NOT_FOUND";throw X}webpackEmptyContext.keys=()=>[];webpackEmptyContext.resolve=webpackEmptyContext;webpackEmptyContext.id=5829;_.exports=webpackEmptyContext},1736:_=>{function webpackEmptyContext(_){var X=new Error("Cannot find module '"+_+"'");X.code="MODULE_NOT_FOUND";throw X}webpackEmptyContext.keys=()=>[];webpackEmptyContext.resolve=webpackEmptyContext;webpackEmptyContext.id=1736;_.exports=webpackEmptyContext},5591:_=>{"use strict";_.exports=require("caniuse-lite/data/features/background-clip-text")},1188:_=>{"use strict";_.exports=require("caniuse-lite/data/features/background-img-opts")},7097:_=>{"use strict";_.exports=require("caniuse-lite/data/features/border-image")},2861:_=>{"use strict";_.exports=require("caniuse-lite/data/features/border-radius")},3098:_=>{"use strict";_.exports=require("caniuse-lite/data/features/calc")},354:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-animation")},9323:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-any-link")},4773:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-appearance")},7721:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-autofill")},3166:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-backdrop-filter")},6781:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-boxdecorationbreak")},2194:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-boxshadow")},9205:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-clip-path")},8995:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-crisp-edges")},8786:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-cross-fade")},3504:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-deviceadaptation")},7801:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-element-function")},8944:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-featurequeries.js")},2416:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-file-selector-button")},1545:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-filter-function")},3882:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-filters")},2571:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-gradients")},6554:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-grid")},5197:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-hyphens")},2237:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-image-set")},7395:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-logical-props")},6649:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-masks")},8181:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-media-resolution")},3898:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-overscroll-behavior")},6215:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-placeholder")},9278:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-placeholder-shown")},8066:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-print-color-adjust")},2478:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-read-only-write")},1949:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-regions")},4822:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-selection")},5460:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-shapes")},1340:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-snappoints")},8235:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-sticky")},2807:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-text-align-last")},4838:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-text-orientation")},9290:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-text-spacing")},40:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-transitions")},7437:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-width-stretch")},2298:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css-writing-mode")},6597:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css3-boxsizing")},2983:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css3-cursors-grab")},8265:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css3-cursors-newer")},3247:_=>{"use strict";_.exports=require("caniuse-lite/data/features/css3-tabsize")},4618:_=>{"use strict";_.exports=require("caniuse-lite/data/features/flexbox")},1328:_=>{"use strict";_.exports=require("caniuse-lite/data/features/font-feature")},3944:_=>{"use strict";_.exports=require("caniuse-lite/data/features/font-kerning")},7766:_=>{"use strict";_.exports=require("caniuse-lite/data/features/fullscreen")},5691:_=>{"use strict";_.exports=require("caniuse-lite/data/features/intrinsic-width")},4643:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-css-backdrop-pseudo-element")},7856:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-css-unicode-bidi-isolate")},9067:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-css-unicode-bidi-isolate-override")},6097:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-css-unicode-bidi-plaintext")},5934:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-text-decoration-color")},3874:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-text-decoration-line")},1597:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-text-decoration-shorthand")},3480:_=>{"use strict";_.exports=require("caniuse-lite/data/features/mdn-text-decoration-style")},7809:_=>{"use strict";_.exports=require("caniuse-lite/data/features/multicolumn")},1480:_=>{"use strict";_.exports=require("caniuse-lite/data/features/object-fit")},1014:_=>{"use strict";_.exports=require("caniuse-lite/data/features/pointer")},134:_=>{"use strict";_.exports=require("caniuse-lite/data/features/text-decoration")},5514:_=>{"use strict";_.exports=require("caniuse-lite/data/features/text-emphasis")},7806:_=>{"use strict";_.exports=require("caniuse-lite/data/features/text-overflow")},744:_=>{"use strict";_.exports=require("caniuse-lite/data/features/text-size-adjust")},4602:_=>{"use strict";_.exports=require("caniuse-lite/data/features/transforms2d")},2866:_=>{"use strict";_.exports=require("caniuse-lite/data/features/transforms3d")},9474:_=>{"use strict";_.exports=require("caniuse-lite/data/features/user-select-none")},3768:_=>{"use strict";_.exports=require("caniuse-lite/dist/unpacker/agents")},1711:_=>{"use strict";_.exports=require("caniuse-lite/dist/unpacker/feature")},7147:_=>{"use strict";_.exports=require("fs")},4907:_=>{"use strict";_.exports=require("next/dist/compiled/browserslist")},2045:_=>{"use strict";_.exports=require("next/dist/compiled/postcss-value-parser")},1017:_=>{"use strict";_.exports=require("path")},977:_=>{"use strict";_.exports=require("postcss")},7310:_=>{"use strict";_.exports=require("url")},3837:_=>{"use strict";_.exports=require("util")},5378:(_,X,ee)=>{"use strict";var te=ee(5449),re=ee(2045);function t(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var se=t(te),ne=t(re); +/** + * Simple matrix (and vector) multiplication + * Warning: No error handling for incompatible dimensions! + * @author Lea Verou 2020 MIT License + * + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js + */function a(_,X){const ee=_.length;let te,re;te=Array.isArray(_[0])?_:[_],Array.isArray(X[0])||(re=X.map((_=>[_])));const se=re[0].length,ne=re[0].map(((_,X)=>re.map((_=>_[X]))));let ie=te.map((_=>ne.map((X=>Array.isArray(_)?_.reduce(((_,ee,te)=>_+ee*(X[te]||0)),0):X.reduce(((X,ee)=>X+ee*_),0)))));return 1===ee&&(ie=ie[0]),1===se?ie.map((_=>_[0])):ie} +/** + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */function o(_){return _.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return ee<.04045?_/12.92:X*Math.pow((ee+.055)/1.055,2.4)}))}function s(_){return _.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return ee>.0031308?X*(1.055*Math.pow(ee,1/2.4)-.055):12.92*_}))}function c(_){return a([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],_)}function i(_){return a([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],_)}function l(_){return a([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],_)}function p(_){const X=a([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],_);return a([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],X.map((_=>Math.cbrt(_))))}function f(_){const X=a([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],_);return a([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],X.map((_=>_**3)))}function d(_){const X=180*Math.atan2(_[2],_[1])/Math.PI;return[_[0],Math.sqrt(_[1]**2+_[2]**2),X>=0?X:X+360]}function v(_){return[_[0],_[1]*Math.cos(_[2]*Math.PI/180),_[1]*Math.sin(_[2]*Math.PI/180)]} +/** + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js + */function h(_,X){const[ee,te,re]=_,[se,ne,ie]=X,oe=ee-se,ae=te-ne,le=re-ie;return Math.sqrt(oe**2+ae**2+le**2)}function m(_,X,ee){return function(_,X,ee){let te=0,re=_[1];const se=_;for(;re-te>1e-4;){const _=b(X(se));h(v(se),v(ee(_)))-.02<1e-4?te=se[1]:re=se[1],se[1]=(re+te)/2}return b(X([...se]))}(_,X,ee)}function b(_){return _.map((_=>_<0?0:_>1?1:_))}function y(_){const[X,ee,te]=_;return X>=-1e-4&&X<=1.0001&&ee>=-1e-4&&ee<=1.0001&&te>=-1e-4&&te<=1.0001}function g(_){let X=_.slice();X=X.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return X*Math.pow(ee,563/256)})),X=a([[.5766690429101305,.1855582379065463,.1882286462349947],[.29734497525053605,.6273635662554661,.07529145849399788],[.02703136138641234,.07068885253582723,.9913375368376388]],X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function x(_){let X=_.slice();X=l(X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function M(_){let X=_.slice(),ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function w(_){let X=_.slice();X=o(X),X=a([[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function I(_){let X=_.slice();X=X.map((function(_){const X=_<0?-1:1;return Math.abs(_)<=.03125?_/16:X*Math.pow(_,1.8)})),X=a([[.7977604896723027,.13518583717574031,.0313493495815248],[.2880711282292934,.7118432178101014,8565396060525902e-20],[0,0,.8251046025104601]],X),X=l(X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function S(_){let X=_.slice();X=function(_){const X=1.09929682680944;return _.map((function(_){const ee=_<0?-1:1,te=Math.abs(_);return te<.08124285829863151?_/4.5:ee*Math.pow((te+X-1)/X,1/.45)}))}(X),X=a([[.6369580483012914,.14461690358620832,.1688809751641721],[.2627002120112671,.6779980715188708,.05930171646986196],[0,.028072693049087428,1.060985057710791]],X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function k(_){let X=_.slice();X=c(X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function P(_){let X=_.slice();X=o(X),X=c(X);let ee=X.slice();return ee=p(ee),ee=d(ee),ee[0]<1e-6&&(ee=[0,0,0]),ee[0]>.999999&&(ee=[1,0,0]),X=i(X),X=s(X),y(X)?b(X):m(ee,(_=>s(_=i(_=f(_=v(_))))),(_=>d(_=p(_=c(_=o(_))))))}function E(_,X,ee,te){const re=ne.default.stringify(_),se=_.value,ie=_.nodes.slice().filter((_=>"comment"!==_.type&&"space"!==_.type));let oe,ae=null;if("color"===se&&(ae=function(_){if(!function(_){if(!_||"word"!==_.type)return!1;switch(_.value){case"srgb":case"srgb-linear":case"display-p3":case"a98-rgb":case"prophoto-rgb":case"rec2020":case"xyz-d50":case"xyz-d65":case"xyz":return!0;default:return!1}}(_[0]))return null;const X={colorSpace:_[0].value,colorSpaceNode:_[0],parameters:[]};for(let ee=1;ee<_.length;ee++)if(F(_[ee]))X.slash=_[ee];else{if(X.slash&&(z(_[ee])||A(_[ee])||q(_[ee]))){X.alpha=_[ee];break}if(!z(_[ee]))return null;{const te=ne.default.unit(_[ee].value);"%"===te.unit&&(te.number=String(parseFloat(te.number)/100),te.unit="",_[ee].value=String(te.number)),X.parameters.push({value:te,node:_[ee]})}}if(0===X.parameters.length)return X;X.parameters.length<3&&(X.parameters=[...X.parameters,{node:{sourceIndex:0,sourceEndIndex:1,value:"0",type:"word"},value:{number:"0",unit:""}},{node:{sourceIndex:0,sourceEndIndex:1,value:"0",type:"word"},value:{number:"0",unit:""}}]);X.parameters.length>3&&(X.parameters=X.parameters.slice(0,3));return X}(ie)),!ae)return;switch(_.value="rgb",function(_,X,ee){if(!X||!ee)return;if(_.value="rgba",X.value=",",X.before="",!function(_){if(!_||"word"!==_.type)return!1;if(!O(_))return!1;const X=ne.default.unit(_.value);if(!X)return!1;return!!X.number}(ee))return;const te=ne.default.unit(ee.value);if(!te)return;"%"===te.unit&&(te.number=String(parseFloat(te.number)/100),ee.value=String(te.number))}(_,ae.slash,ae.alpha),ae.colorSpace){case"srgb":oe=P;break;case"srgb-linear":oe=k;break;case"a98-rgb":oe=g;break;case"prophoto-rgb":oe=I;break;case"display-p3":oe=w;break;case"rec2020":oe=S;break;case"xyz-d50":oe=x;break;case"xyz-d65":case"xyz":oe=M;break;default:return}const le=(ue=ae,ue.parameters.map((_=>_.value))).map((_=>parseFloat(_.number)));var ue;const ce=oe(le);!y(le)&&te&&X.warn(ee,`"${re}" is out of gamut for "${ae.colorSpace}". Given "preserve: true" is set, this will lead to unexpected results in some browsers.`),_.nodes=[{sourceIndex:0,sourceEndIndex:1,value:String(Math.round(255*ce[0])),type:"word"},{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""},{sourceIndex:0,sourceEndIndex:1,value:String(Math.round(255*ce[1])),type:"word"},{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""},{sourceIndex:0,sourceEndIndex:1,value:String(Math.round(255*ce[2])),type:"word"}],ae.alpha&&(_.nodes.push({sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),_.nodes.push(ae.alpha))}function z(_){if(!_||"word"!==_.type)return!1;if(!O(_))return!1;const X=ne.default.unit(_.value);return!!X&&("%"===X.unit||""===X.unit)}function A(_){return _&&"function"===_.type&&"calc"===_.value}function q(_){return _&&"function"===_.type&&"var"===_.value}function F(_){return _&&"div"===_.type&&"/"===_.value}function O(_){if(!_||!_.value)return!1;try{return!1!==ne.default.unit(_.value)}catch(_){return!1}}const j=_=>{const X="preserve"in Object(_)&&Boolean(_.preserve);return{postcssPlugin:"postcss-color-function",Declaration:(_,{result:ee})=>{if(function(_){const X=_.parent;if(!X)return!1;const ee=X.index(_);for(let te=0;te{_.type&&"function"===_.type&&"color"===_.value&&E(_,X,ee,te)}));const se=String(re);return se!==_?se:void 0}(te,_,ee,X);void 0!==re&&(X?_.cloneBefore({value:re}):_.value=re)}}};j.postcss=!0;const $=_=>{const X=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},_);return X.enableProgressiveCustomProperties&&X.preserve?{postcssPlugin:"postcss-color-function",plugins:[se.default(),j(X)]}:j(X)};$.postcss=!0,_.exports=$},3345:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045));const re=["woff","truetype","opentype","woff2","embedded-opentype","collection","svg"],r=_=>{const X="preserve"in Object(_)&&Boolean(_.preserve);return{postcssPlugin:"postcss-font-format-keywords",AtRule:{"font-face"(_){"font-face"===_.name&&_.walkDecls("src",(_=>{if(!_.value.includes("format("))return;const ee=te.default(_.value);ee.walk((_=>{"function"===_.type&&"format"===_.value&&_.nodes.forEach((_=>{"word"===_.type&&re.includes(_.value)&&(_.value=te.default.stringify({type:"string",value:_.value,quote:'"'}))}))})),X?_.cloneBefore({value:ee.toString()}):_.value=ee.toString()}))}}}};r.postcss=!0,_.exports=r},434:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045));function t(_){const X=_[0];let ee=_[1],te=_[2];if(ee/=100,te/=100,ee+te>=1){const _=ee/(ee+te);return[_,_,_]}const re=function(_){let X=_[0],ee=_[1],te=_[2];X%=360,X<0&&(X+=360);function u(_){const re=(_+X/30)%12,se=ee*Math.min(te,1-te);return te-se*Math.max(-1,Math.min(re-3,9-re,1))}return ee/=100,te/=100,[u(0),u(8),u(4)]}([X,100,50]);for(let _=0;_<3;_++)re[_]*=1-ee-te,re[_]+=ee;return re.map((_=>Math.round(255*_)))}function r(_){const X=_.nodes.slice().filter((_=>"comment"!==_.type&&"space"!==_.type)),ee=function(_){if(!function(_){if(!_||"word"!==_.type)return!1;if(!o(_))return!1;const X=te.default.unit(_.value);if(!X)return!1;return!!X.number&&("deg"===X.unit||"grad"===X.unit||"rad"===X.unit||"turn"===X.unit||""===X.unit)}(_[0]))return null;if(!u(_[1]))return null;if(!u(_[2]))return null;const X={h:te.default.unit(_[0].value),hNode:_[0],w:te.default.unit(_[1].value),wNode:_[1],b:te.default.unit(_[2].value),bNode:_[2]};if(function(_){switch(_.unit){case"deg":return void(_.unit="");case"rad":return _.unit="",void(_.number=(180*parseFloat(_.number)/Math.PI).toString());case"grad":return _.unit="",void(_.number=(.9*parseFloat(_.number)).toString());case"turn":_.unit="",_.number=(360*parseFloat(_.number)).toString()}}(X.h),""!==X.h.unit)return null;i(X.w),i(X.b),function(_){return _&&"div"===_.type&&"/"===_.value}(_[3])&&(X.slash=_[3]);(u(_[4])||function(_){return _&&"function"===_.type&&"calc"===_.value}(_[4])||function(_){return _&&"function"===_.type&&"var"===_.value}(_[4]))&&(X.alpha=_[4]);return X}(X);if(!ee)return;if(X.length>3&&(!ee.slash||!ee.alpha))return;_.value="rgb",function(_,X,ee){if(!X||!ee)return;if(_.value="rgba",X.value=",",X.before="",!function(_){if(!_||"word"!==_.type)return!1;if(!o(_))return!1;const X=te.default.unit(_.value);if(!X)return!1;return!!X.number}(ee))return;const re=te.default.unit(ee.value);if(!re)return;"%"===re.unit&&(re.number=String(parseFloat(re.number)/100),ee.value=String(re.number))}(_,ee.slash,ee.alpha);const[re,se,ne]=[(ie=ee).hNode,ie.wNode,ie.bNode];var ie;const[oe,ae,le]=function(_){return[_.h,_.w,_.b]}(ee),ue=t([oe.number,ae.number,le.number].map((_=>parseFloat(_))));_.nodes.splice(_.nodes.indexOf(re)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),_.nodes.splice(_.nodes.indexOf(se)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),a(_.nodes,re,{...re,value:String(ue[0])}),a(_.nodes,se,{...se,value:String(ue[1])}),a(_.nodes,ne,{...ne,value:String(ue[2])})}function u(_){if(!_||"word"!==_.type)return!1;if(!o(_))return!1;const X=te.default.unit(_.value);return!!X&&("%"===X.unit||""===X.unit)}function a(_,X,ee){const te=_.indexOf(X);_[te]=ee}function i(_){if("%"!==_.unit)return _.unit="%",void(_.number=(100*parseFloat(_.number)).toString())}function o(_){if(!_||!_.value)return!1;try{return!1!==te.default.unit(_.value)}catch(_){return!1}}const l=_=>{const X="preserve"in Object(_)&&Boolean(_.preserve);return{postcssPlugin:"postcss-hwb-function",Declaration:(_,{result:ee,postcss:re})=>{if(X&&function(_){let X=_.parent;for(;X;)if("atrule"===X.type){if("supports"===X.name&&-1!==X.params.indexOf("(color: hwb(0% 0 0))"))return!0;X=X.parent}else X=X.parent;return!1}(_))return;const se=_.value;if(!se.includes("hwb"))return;const ne=function(_,X,ee){let re;try{re=te.default(_)}catch(te){X.warn(ee,`Failed to parse value '${_}' as a hwb function. Leaving the original value intact.`)}if(void 0===re)return;re.walk((_=>{_.type&&"function"===_.type&&"hwb"===_.value&&r(_)}));const se=String(re);if(se===_)return;return se}(se,_,ee);if(void 0!==ne)if(_.variable&&X){const X=_.parent,ee=re.atRule({name:"supports",params:"(color: hwb(0% 0 0))",source:_.source}),te=X.clone();te.removeAll(),te.append(_.clone()),ee.append(te),function(_,X,ee){let te=X,re=X.next();for(;te&&re&&"atrule"===re.type&&"supports"===re.name&&re.params===ee;)te=re,re=re.next();te.after(_)}(ee,X,"(color: hwb(0% 0 0))"),_.value=ne}else X?_.cloneBefore({value:ne}):_.value=ne}}};l.postcss=!0,_.exports=l},1758:(_,X,ee)=>{"use strict";var te=ee(5449),re=ee(2045);function t(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var se=t(te),ne=t(re);const n=_=>({postcssPlugin:"postcss-ic-unit",Declaration(X){if(!X.value.includes("ic"))return;if(function(_){let X=_.parent;for(;X;)if("atrule"===X.type){if("supports"===X.name&&/\(font-size: \d+ic\)/.test(X.params))return!0;X=X.parent}else X=X.parent;return!1}(X))return;const ee=ne.default(X.value);ee.walk((_=>{if(!_.type||"word"!==_.type)return;const X=ne.default.unit(_.value);X&&"ic"===X.unit&&(_.value=`${X.number}em`)}));const te=String(ee);te!==X.value&&(_.preserve?X.cloneBefore({value:te}):X.value=te)}});n.postcss=!0;const o=_=>{const X=Object.assign({preserve:!1,enableProgressiveCustomProperties:!0},_);return X.enableProgressiveCustomProperties&&X.preserve?{postcssPlugin:"postcss-ic-unit",plugins:[se.default(),n(X)]}:n(X)};o.postcss=!0,_.exports=o},2238:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));function n(_){_&&_.nodes&&_.nodes.sort(((_,X)=>"selector"===_.type&&"selector"===X.type&&_.nodes.length&&X.nodes.length?o(_.nodes[0].value,_.nodes[0].type)-o(X.nodes[0].value,X.nodes[0].type):"selector"===_.type&&_.nodes.length?o(_.nodes[0].value,_.nodes[0].type)-o(X.value,X.type):"selector"===X.type&&X.nodes.length?o(_.value,_.type)-o(X.nodes[0].value,X.nodes[0].type):o(_.value,_.type)-o(X.value,X.type)))}function o(_,X){return"pseudo"===X&&_&&0===_.indexOf("::")?re.pseudoElement:re[X]}const re={universal:0,tag:1,id:2,class:3,attribute:4,selector:5,pseudo:6,pseudoElement:7,string:8,root:9,comment:10};function d(_,X,ee){return _.flatMap((_=>{if(-1===_.indexOf(":-csstools-matches")&&-1===_.indexOf(":is"))return _;const re=te.default().astSync(_);return re.walkPseudos((_=>{if(":is"===_.value&&_.nodes&&_.nodes.length&&"selector"===_.nodes[0].type&&0===_.nodes[0].nodes.length)return _.value=":not",void _.nodes[0].append(te.default.universal());if(":-csstools-matches"===_.value)if(!_.nodes||_.nodes.length){if(1===_.nodes.length&&"selector"===_.nodes[0].type){if(1===_.nodes[0].nodes.length)return void _.replaceWith(_.nodes[0].nodes[0]);if(!_.nodes[0].some((_=>"combinator"===_.type)))return void _.replaceWith(..._.nodes[0].nodes)}1!==re.nodes.length||"selector"!==re.nodes[0].type||1!==re.nodes[0].nodes.length||re.nodes[0].nodes[0]!==_?function(_){return!(!_||!_.nodes||"selector"!==_.type||3!==_.nodes.length||!_.nodes[0]||"pseudo"!==_.nodes[0].type||":-csstools-matches"!==_.nodes[0].value||!_.nodes[1]||"combinator"!==_.nodes[1].type||"+"!==_.nodes[1].value||!_.nodes[2]||"pseudo"!==_.nodes[2].type||":-csstools-matches"!==_.nodes[2].value||!_.nodes[0].nodes||1!==_.nodes[0].nodes.length||"selector"!==_.nodes[0].nodes[0].type||!_.nodes[0].nodes[0].nodes||3!==_.nodes[0].nodes[0].nodes.length||!_.nodes[0].nodes[0].nodes||"combinator"!==_.nodes[0].nodes[0].nodes[1].type||">"!==_.nodes[0].nodes[0].nodes[1].value||!_.nodes[2].nodes||1!==_.nodes[2].nodes.length||"selector"!==_.nodes[2].nodes[0].type||!_.nodes[2].nodes[0].nodes||3!==_.nodes[2].nodes[0].nodes.length||!_.nodes[2].nodes[0].nodes||"combinator"!==_.nodes[2].nodes[0].nodes[1].type||">"!==_.nodes[2].nodes[0].nodes[1].value||(_.nodes[0].nodes[0].insertAfter(_.nodes[0].nodes[0].nodes[0],_.nodes[2].nodes[0].nodes[0].clone()),_.nodes[2].nodes[0].nodes[1].remove(),_.nodes[2].nodes[0].nodes[0].remove(),_.nodes[0].replaceWith(_.nodes[0].nodes[0]),_.nodes[2].replaceWith(_.nodes[2].nodes[0]),0))}(_.parent)||function(_){if(!_||!_.nodes)return!1;if("selector"!==_.type)return!1;if(2!==_.nodes.length)return!1;let X,ee;return _.nodes[0]&&"pseudo"===_.nodes[0].type&&":-csstools-matches"===_.nodes[0].value?(X=0,ee=1):_.nodes[1]&&"pseudo"===_.nodes[1].type&&":-csstools-matches"===_.nodes[1].value&&(X=1,ee=0),!(!X||!_.nodes[ee]||"selector"===_.nodes[ee].type&&_.nodes[ee].some((_=>"combinator"===_.type))||(_.nodes[X].append(_.nodes[ee].clone()),_.nodes[X].replaceWith(..._.nodes[X].nodes),_.nodes[ee].remove(),0))}(_.parent)||("warning"===X.onComplexSelector&&ee(),_.value=":is"):_.replaceWith(..._.nodes[0].nodes)}else _.remove()})),re.walk((_=>{"selector"===_.type&&"nodes"in _&&1===_.nodes.length&&"selector"===_.nodes[0].type&&_.replaceWith(_.nodes[0])})),re.walk((_=>{"nodes"in _&&function(_){if(!_||!_.nodes)return;let X=[];const ee=[..._.nodes];for(let _=0;_1){const _=te.default.selector({value:""});X[0].replaceWith(_),X.slice(1).forEach((_=>{_.remove()})),X.forEach((X=>{_.append(X)})),n(_),_.replaceWith(..._.nodes)}X=[]}}}(_)})),re.toString()})).filter((_=>!!_))}function l(_){let X=0,ee=0,re=0;if("universal"==_.type)return{a:0,b:0,c:0};if("id"===_.type)X+=1;else if("tag"===_.type)re+=1;else if("class"===_.type)ee+=1;else if("attribute"===_.type)ee+=1;else if("pseudo"===_.type&&0===_.value.indexOf("::"))re+=1;else if("pseudo"===_.type)switch(_.value){case":after":case":before":re+=1;break;case":is":case":has":case":not":if(_.nodes&&_.nodes.length>0){let te={a:0,b:0,c:0};_.nodes.forEach((_=>{const X=l(_);X.a>te.a?te=X:X.ate.b?te=X:X.bte.c&&(te=X))})),X+=te.a,ee+=te.b,re+=te.c}break;case"where":break;case":nth-child":case":nth-last-child":{const se=_.nodes.findIndex((_=>{_.value}));if(se>-1){const ne=l(te.default.selector({nodes:_.nodes.slice(se+1),value:""}));X+=ne.a,ee+=ne.b,re+=ne.c}else X+=X,ee+=ee,re+=re}break;default:ee+=1}else _.nodes&&_.nodes.length>0&&_.nodes.forEach((_=>{const te=l(_);X+=te.a,ee+=te.b,re+=te.c}));return{a:X,b:ee,c:re}}function r(_,X,ee=0){const re=":not(#"+X.specificityMatchingName+")",se=":not(."+X.specificityMatchingName+")",ne=":not("+X.specificityMatchingName+")";return _.flatMap((_=>{if(-1===_.indexOf(":is"))return _;let ie=!1;const oe=[];if(te.default().astSync(_).walkPseudos((_=>{if(":is"!==_.value||!_.nodes||!_.nodes.length)return;if("selector"===_.nodes[0].type&&0===_.nodes[0].nodes.length)return;let X=_.parent;for(;X;){if(":is"===X.value&&"pseudo"===X.type)return void(ie=!0);X=X.parent}const ee=l(_),te=_.sourceIndex,ae=te+_.toString().length,le=[];_.nodes.forEach((_=>{const X={start:te,end:ae,option:""},ie=l(_);let oe=_.toString().trim();const ue=Math.max(0,ee.a-ie.a),ce=Math.max(0,ee.b-ie.b),pe=Math.max(0,ee.c-ie.c);for(let _=0;_{let ee="";for(let re=0;re!!_))}const c=_=>{const X={specificityMatchingName:"does-not-exist",..._||{}};return{postcssPlugin:"postcss-is-pseudo-class",Rule(_,{result:ee}){if(!_.selector)return;if(-1===_.selector.indexOf(":is"))return;let te=!1;const t=()=>{"warning"===X.onComplexSelector&&(te||(te=!0,_.warn(ee,`Complex selectors in '${_.selector}' can not be transformed to an equivalent selector without ':is()'.`)))};try{let ee=!1;const te=[],re=d(r(_.selectors,{specificityMatchingName:X.specificityMatchingName}),{onComplexSelector:X.onComplexSelector},t);if(Array.from(new Set(re)).forEach((X=>{_.selectors.indexOf(X)>-1?te.push(X):(_.cloneBefore({selector:X}),ee=!0)})),te.length&&ee&&_.cloneBefore({selectors:te}),!X.preserve){if(!ee)return;_.remove()}}catch(X){if(X.message.indexOf("call stack size exceeded")>-1)throw X;_.warn(ee,`Failed to parse selector "${_.selector}"`)}}}};c.postcss=!0,_.exports=c},3942:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045)),re=new Map([["block,flow","block"],["block,flow-root","flow-root"],["inline,flow","inline"],["inline,flow-root","inline-block"],["run-in,flow","run-in"],["list-item,block,flow","list-item"],["inline,flow,list-item","inline list-item"],["block,flex","flex"],["inline,flex","inline-flex"],["block,grid","grid"],["inline,grid","inline-grid"],["inline,ruby","ruby"],["block,table","table"],["inline,table","inline-table"],["table-cell,flow","table-cell"],["table-caption,flow","table-caption"],["ruby-base,flow","ruby-base"],["ruby-text,flow","ruby-text"]]);const n=_=>{const X=!("preserve"in Object(_))||Boolean(_.preserve);return{postcssPlugin:"postcss-normalize-display-values",prepare(){const _=new Map;return{Declaration:{display(ee){const se=ee.value;if(!se)return;if(_.has(se))return void(ee.value!==_.get(se)&&(X?ee.cloneBefore({value:_.get(se)}):ee.value=_.get(se)));const ne=function(_){const{nodes:X}=te.default(_);if(1===X.length)return _;const ee=X.filter((_=>"word"===_.type)).map((_=>_.value.toLowerCase()));if(ee.length<=1)return _;return re.get(ee.join(","))||_}(se);ee.value!==ne&&(X?ee.cloneBefore({value:ne}):ee.value=ne),_.set(se,ne)}}}}}};n.postcss=!0,_.exports=n},8078:(_,X,ee)=>{"use strict";var te=ee(5449),re=ee(2045);function t(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var se=t(te),ne=t(re); +/** + * Simple matrix (and vector) multiplication + * Warning: No error handling for incompatible dimensions! + * @author Lea Verou 2020 MIT License + * + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js + */function a(_,X){const ee=_.length;let te,re;te=Array.isArray(_[0])?_:[_],Array.isArray(X[0])||(re=X.map((_=>[_])));const se=re[0].length,ne=re[0].map(((_,X)=>re.map((_=>_[X]))));let ie=te.map((_=>ne.map((X=>Array.isArray(_)?_.reduce(((_,ee,te)=>_+ee*(X[te]||0)),0):X.reduce(((X,ee)=>X+ee*_),0)))));return 1===ee&&(ie=ie[0]),1===se?ie.map((_=>_[0])):ie} +/** + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */function o(_){return _.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return ee<.04045?_/12.92:X*Math.pow((ee+.055)/1.055,2.4)}))}function i(_){return _.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return ee>.0031308?X*(1.055*Math.pow(ee,1/2.4)-.055):12.92*_}))}function l(_){return a([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],_)}function s(_){return a([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],_)}function c(_){return o(_)}function f(_){return i(_)}function p(_){return a([[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],_)}function d(_){return a([[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],_)}function b(_){const X=a([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],_);return a([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],X.map((_=>Math.cbrt(_))))}function v(_){const X=a([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],_);return a([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],X.map((_=>_**3)))}function m(_){const X=180*Math.atan2(_[2],_[1])/Math.PI;return[_[0],Math.sqrt(_[1]**2+_[2]**2),X>=0?X:X+360]}function h(_){return[_[0],_[1]*Math.cos(_[2]*Math.PI/180),_[1]*Math.sin(_[2]*Math.PI/180)]} +/** + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js + */function y(_,X){const[ee,te,re]=_,[se,ne,ie]=X,oe=ee-se,ae=te-ne,le=re-ie;return Math.sqrt(oe**2+ae**2+le**2)}function g(_,X,ee){return function(_,X,ee){let te=0,re=_[1];const se=_;for(;re-te>1e-4;){const _=x(X(se));y(h(se),h(ee(_)))-.02<1e-4?te=se[1]:re=se[1],se[1]=(re+te)/2}return x(X([...se]))}(_,X,ee)}function x(_){return _.map((_=>_<0?0:_>1?1:_))}function F(_){const[X,ee,te]=_;return X>=-1e-4&&X<=1.0001&&ee>=-1e-4&&ee<=1.0001&&te>=-1e-4&&te<=1.0001}function M(_){const[X,ee,te]=_;let re=[Math.max(X,0),ee,te],se=m(re);return se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),re=v(re),re=d(re),re=f(re),F(re)?[x(re),!0]:[g(se,(_=>f(_=d(_=v(_=h(_))))),(_=>m(_=b(_=p(_=c(_)))))),!1]}function k(_){const[X,ee,te]=_,re=[Math.max(X,0),ee,te%360];let se=re;return se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),se=h(se),se=v(se),se=d(se),se=f(se),F(se)?[x(se),!0]:[g(re,(_=>f(_=d(_=v(_=h(_))))),(_=>m(_=b(_=p(_=c(_)))))),!1]}function P(_){const[X,ee,te]=_;let re=[Math.max(X,0),ee,te],se=m(re);return se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),re=v(re),re=s(re),re=i(re),F(re)?x(re).map((_=>Math.round(255*_))):g(se,(_=>i(_=s(_=v(_=h(_))))),(_=>m(_=b(_=l(_=o(_)))))).map((_=>Math.round(255*_)))}function w(_){const[X,ee,te]=_,re=[Math.max(X,0),ee,te%360];let se=re;return se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),se=h(se),se=v(se),se=s(se),se=i(se),F(se)?x(se).map((_=>Math.round(255*_))):g(re,(_=>i(_=s(_=v(_=h(_))))),(_=>m(_=b(_=l(_=o(_)))))).map((_=>Math.round(255*_)))}function I(_){const X=_.value,ee=_.nodes.slice().filter((_=>"comment"!==_.type&&"space"!==_.type));let te=null;if("oklab"===X?te=B(ee):"oklch"===X&&(te=q(ee)),!te)return;_.value="rgb",function(_,X,ee){if(!X||!ee)return;if(_.value="rgba",X.value=",",X.before="",!function(_){if(!_||"word"!==_.type)return!1;if(!D(_))return!1;const X=ne.default.unit(_.value);if(!X)return!1;return!!X.number}(ee))return;const te=ne.default.unit(ee.value);if(!te)return;"%"===te.unit&&(te.number=String(parseFloat(te.number)/100),ee.value=String(te.number))}(_,te.slash,te.alpha);const[re,se,ie]=j(te),[oe,ae,le]=C(te),ue=("oklab"===X?P:w)([oe.number,ae.number,le.number].map((_=>parseFloat(_))));_.nodes.splice(_.nodes.indexOf(re)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),_.nodes.splice(_.nodes.indexOf(se)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),$(_.nodes,re,{...re,value:String(ue[0])}),$(_.nodes,se,{...se,value:String(ue[1])}),$(_.nodes,ie,{...ie,value:String(ue[2])})}function N(_){if(!_||"word"!==_.type)return!1;if(!D(_))return!1;const X=ne.default.unit(_.value);return!!X&&("%"===X.unit||""===X.unit)}function S(_){return _&&"function"===_.type&&"calc"===_.value}function O(_){return _&&"function"===_.type&&"var"===_.value}function A(_){return _&&"div"===_.type&&"/"===_.value}function q(_){if(!N(_[0]))return null;if(!N(_[1]))return null;if(!function(_){if(!_||"word"!==_.type)return!1;if(!D(_))return!1;const X=ne.default.unit(_.value);return!(!X||!X.number||"deg"!==X.unit&&"grad"!==X.unit&&"rad"!==X.unit&&"turn"!==X.unit&&""!==X.unit)}(_[2]))return null;const X={l:ne.default.unit(_[0].value),lNode:_[0],c:ne.default.unit(_[1].value),cNode:_[1],h:ne.default.unit(_[2].value),hNode:_[2]};return function(_){switch(_.unit){case"deg":return void(_.unit="");case"rad":return _.unit="",void(_.number=(180*parseFloat(_.number)/Math.PI).toString());case"grad":return _.unit="",void(_.number=(.9*parseFloat(_.number)).toString());case"turn":_.unit="",_.number=(360*parseFloat(_.number)).toString()}}(X.h),""!==X.h.unit?null:(A(_[3])&&(X.slash=_[3]),(N(_[4])||S(_[4])||O(_[4]))&&(X.alpha=_[4]),!(_.length>3)||X.slash&&X.alpha?("%"===X.l.unit&&(X.l.unit="",X.l.number=(parseFloat(X.l.number)/100).toFixed(10)),"%"===X.c.unit&&(X.c.unit="",X.c.number=(parseFloat(X.c.number)/100*.4).toFixed(10)),X):null)}function B(_){if(!N(_[0]))return null;if(!N(_[1]))return null;if(!N(_[2]))return null;const X={l:ne.default.unit(_[0].value),lNode:_[0],a:ne.default.unit(_[1].value),aNode:_[1],b:ne.default.unit(_[2].value),bNode:_[2]};return A(_[3])&&(X.slash=_[3]),(N(_[4])||S(_[4])||O(_[4]))&&(X.alpha=_[4]),!(_.length>3)||X.slash&&X.alpha?("%"===X.l.unit&&(X.l.unit="",X.l.number=(parseFloat(X.l.number)/100).toFixed(10)),"%"===X.a.unit&&(X.a.unit="",X.a.number=(parseFloat(X.a.number)/100*.4).toFixed(10)),"%"===X.b.unit&&(X.b.unit="",X.b.number=(parseFloat(X.b.number)/100*.4).toFixed(10)),X):null}function E(_){return void 0!==_.a}function j(_){return E(_)?[_.lNode,_.aNode,_.bNode]:[_.lNode,_.cNode,_.hNode]}function C(_){return E(_)?[_.l,_.a,_.b]:[_.l,_.c,_.h]}function $(_,X,ee){const te=_.indexOf(X);_[te]=ee}function D(_){if(!_||!_.value)return!1;try{return!1!==ne.default.unit(_.value)}catch(_){return!1}}function G(_,X,ee,te){let re;try{re=ne.default(_)}catch(te){X.warn(ee,`Failed to parse value '${_}' as an oklab or oklch function. Leaving the original value intact.`)}if(void 0===re)return;re.walk((_=>{_.type&&"function"===_.type&&("oklab"!==_.value&&"oklch"!==_.value||I(_))}));const se=String(re);if(se===_)return;const ie=ne.default(_);ie.walk((_=>{_.type&&"function"===_.type&&("oklab"!==_.value&&"oklch"!==_.value||function(_,X,ee,te){const re=ne.default.stringify(_),se=_.value,ie=_.nodes.slice().filter((_=>"comment"!==_.type&&"space"!==_.type));let oe=null;if("oklab"===se?oe=B(ie):"oklch"===se&&(oe=q(ie)),!oe)return;if(ie.length>3&&(!oe.slash||!oe.alpha))return;_.value="color";const[ae,le,ue]=j(oe),[ce,pe,fe]=C(oe),de="oklab"===se?M:k,he=[ce.number,pe.number,fe.number].map((_=>parseFloat(_))),[me,ge]=de(he);!ge&&te&&X.warn(ee,`"${re}" is out of gamut for "display-p3". Given "preserve: true" is set, this will lead to unexpected results in some browsers.`),_.nodes.splice(0,0,{sourceIndex:0,sourceEndIndex:10,value:"display-p3",type:"word"}),_.nodes.splice(1,0,{sourceIndex:0,sourceEndIndex:1,value:" ",type:"space"}),$(_.nodes,ae,{...ae,value:me[0].toFixed(5)}),$(_.nodes,le,{...le,value:me[1].toFixed(5)}),$(_.nodes,ue,{...ue,value:me[2].toFixed(5)})}(_,X,ee,te))}));return{rgb:se,displayP3:String(ie)}}const L=_=>({postcssPlugin:"postcss-oklab-function",Declaration:(X,{result:ee})=>{if(function(_){const X=_.parent;if(!X)return!1;const ee=X.index(_);for(let te=0;te{const X=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},_);return X.subFeatures=Object.assign({displayP3:!0},X.subFeatures),X.enableProgressiveCustomProperties&&(X.preserve||X.subFeatures.displayP3)?{postcssPlugin:"postcss-oklab-function",plugins:[se.default(),L(X)]}:L(X)};z.postcss=!0,_.exports=z},5449:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045));const re=[{supports:"color(srgb 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"srgb"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"srgb"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(srgb-linear 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"srgb-linear"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"srgb-linear"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(a98-rgb 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"a98-rgb"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"a98-rgb"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(prophoto-rgb 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"prophoto-rgb"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"prophoto-rgb"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(display-p3 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"display-p3"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"display-p3"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(rec2020 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"rec2020"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"rec2020"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(xyz-d50 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"xyz-d50"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"xyz-d50"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(xyz-d65 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"xyz-d65"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"xyz-d65"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color(xyz 0 0 0)",property:"color",sniff:"color",matchers:[{type:"function",value:"color",nodes:[{type:"word",value:"xyz"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color",nodes:[{type:"word",value:"xyz"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"hsl(0, 0%, 0%)",property:"color",sniff:"hsl",matchers:[{type:"function",value:"hsl",nodes:[{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0}]}]},{supports:"hsl(0 0% 0% / 0)",property:"color",sniff:"hsl",matchers:[{type:"function",value:"hsl",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"hsl",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"hsla(0 0% 0% / 0)",property:"color",sniff:"hsla",matchers:[{type:"function",value:"hsla",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"hwb(0 0% 0%)",property:"color",sniff:"hwb",matchers:[{type:"function",value:"hwb",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"hwb",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"lab(0% 0 0)",property:"color",sniff:"lab",matchers:[{type:"function",value:"lab",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"lab",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"lch(0% 0 0)",property:"color",sniff:"lch",matchers:[{type:"function",value:"lch",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"lch",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"oklab(0% 0 0)",property:"color",sniff:"oklab",matchers:[{type:"function",value:"oklab",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"oklab",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"oklch(0% 0 0)",property:"color",sniff:"oklch",matchers:[{type:"function",value:"oklch",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"oklch",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"rgb(0, 0, 0, 0)",property:"color",sniff:"rgb",matchers:[{type:"function",value:"rgb",nodes:[{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0}]}]},{supports:"rgb(0 0 0 / 0)",property:"color",sniff:"rgb",matchers:[{type:"function",value:"rgb",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"rgb",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"rgba(0 0 0 / 0)",property:"color",sniff:"rgba",matchers:[{type:"function",value:"rgba",nodes:[{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:"/"},{type:"word",isVariable:!0}]}]},{supports:"color-mix(in oklch, #000, #fff)",property:"color",sniff:"color-mix",matchers:[{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]},{type:"function",value:"color-mix",nodes:[{type:"word",value:"in"},{type:"space"},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0},{type:"div",value:","},{type:"word",isVariable:!0},{type:"space"},{type:"word",isVariable:!0}]}]},{supports:"1ic",property:"font-size",sniff:"ic",matchers:[{type:"word",value:"1ic",dimension:{unit:"ic"}}]}];function p(_,X){if(_.isVariable&&X)return!0;if(_.type!==X.type)return!1;if(function(_,X){if("space"===_.type&&"space"===X.type&&_.value.trim()===X.value.trim())return!1;if(_.dimension&&X.dimension)return _.dimension.unit!==X.dimension.unit;if(_.value!==X.value)return!0;return!1}(_,X))return!1;if(_.nodes&&X.nodes){for(let ee=0;ee<_.nodes.length;ee++){let te=ee,re=ee;for(;_.nodes[te]&&"space"===_.nodes[te].type;)te++;for(;X.nodes[re]&&"space"===X.nodes[re].type;)re++;if(!!_.nodes[te]!=!!X.nodes[re])return!1;if(!p(_.nodes[te],X.nodes[re]))return!1}return!0}return!0}const se=["at","bottom","center","circle","closest-corner","closest-side","ellipse","farthest-corner","farthest-side","from","in","left","right","to","top"];function i(_){const X=[],ee=[];re.forEach((X=>{_.indexOf(X.sniff)>-1&&ee.push(X)}));try{te.default(_).walk((_=>{try{_.dimension=te.default.unit(_.value)}finally{!1===_.dimension&&delete _.dimension}for(let te=0;te({postcssPlugin:"postcss-progressive-custom-properties",RuleExit:(_,{postcss:X})=>{const ee=[],te=new Set;_.each((re=>{if("decl"!==re.type)return;if(!re.variable)return;if("initial"===re.value.trim())return;if(""===re.value.trim())return;if(!te.has(re.prop.toString()))return void te.add(re.prop.toString());const se=i(re.value);if(!se.length)return;const ne=X.atRule({name:"supports",params:se.join(" and "),source:_.source,raws:{before:"\n\n",after:"\n"}}),ie=_.clone();ie.removeAll(),ie.raws.before="\n",ie.append(re.clone()),re.remove(),ne.append(ie),ee.push(ne)})),0!==ee.length&&ee.reverse().forEach((X=>{_.after(X)}))}});o.postcss=!0,_.exports=o},3570:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));const r=_=>{const X=String(Object(_).replaceWith||"[blank]"),ee=te.default().astSync(X),re=Boolean(!("preserve"in Object(_))||_.preserve);return{postcssPlugin:"css-blank-pseudo",Rule:(_,{result:X})=>{if(-1===_.selector.indexOf(":blank"))return;let se;try{const X=te.default((_=>{_.walkPseudos((_=>{":blank"===_.value&&(_.nodes&&_.nodes.length||_.replaceWith(ee.clone()))}))})).processSync(_.selector);se=String(X)}catch(ee){return void _.warn(X,`Failed to parse selector : ${_.selector}`)}if(void 0===se)return;if(se===_.selector)return;const ne=_.clone({selector:se});re?_.before(ne):_.replaceWith(ne)}}};r.postcss=!0,_.exports=r},3318:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));const s=_=>{_="object"==typeof _&&_||re;const X=Boolean(!("preserve"in _)||_.preserve);return{postcssPlugin:"css-has-pseudo",Rule:(_,{result:ee})=>{if(!_.selector.includes(":has("))return;let re;try{const X=te.default((_=>{_.walkPseudos((_=>{if(":has"===_.value&&_.nodes){const X=r(_);_.value=X?":not-has":":has";const ee=te.default.attribute({attribute:o(String(_))});X?_.parent.parent.replaceWith(ee):_.replaceWith(ee)}}))})).processSync(_.selector);re=String(X)}catch(X){return void _.warn(ee,`Failed to parse selector : ${_.selector}`)}void 0!==re&&re!==_.selector&&(X?_.cloneBefore({selector:re}):_.selector=re)}}};s.postcss=!0;const re={preserve:!0},o=_=>{let X="",ee="";const n=()=>{if(ee){const _=encodeURIComponent(ee);let te="",re="";const r=()=>{te&&(re+=te,te="")};let se=!1;for(let X=0;X<_.length;X++){const ee=_[X];if(se)te+=ee,se=!1;else switch(ee){case"%":r(),re+="\\"+ee;continue;case"\\":te+=ee,se=!0;continue;default:te+=ee;continue}}r(),X+=re,ee=""}};let te=!1;for(let re=0;re<_.length;re++){const se=_[re];if(te)ee+=se,te=!1;else switch(se){case":":case"[":case"]":case",":case"(":case")":n(),X+="\\"+se;continue;case"\\":ee+=se,te=!0;continue;default:ee+=se;continue}}return n(),X},r=_=>{var X,ee;return"pseudo"===(null==(X=_.parent)||null==(ee=X.parent)?void 0:ee.type)&&":not"===_.parent.parent.value};_.exports=s},8780:_=>{"use strict";const X=/^media$/i,ee=/\(\s*prefers-color-scheme\s*:\s*(dark|light|no-preference)\s*\)/i,te={dark:48,light:70,"no-preference":22},s=(_,X)=>`(color-index: ${te[X.toLowerCase()]})`,re={dark:48842621,light:70318723,"no-preference":22511989},t=(_,X)=>`(color: ${re[X.toLowerCase()]})`,l=_=>{const te=!("preserve"in Object(_))||_.preserve,re={};return!("mediaQuery"in Object(_))||"color-index"!==_.mediaQuery&&"color"!==_.mediaQuery?(re["color-index"]=!0,re.color=!0):re[_.mediaQuery]=!0,{postcssPlugin:"postcss-prefers-color-scheme",AtRule:_=>{if(!X.test(_.name))return;const{params:se}=_,ne=se.replace(ee,s),ie=se.replace(ee,t);let oe=!1;se!==ne&&re["color-index"]&&(_.cloneBefore({params:ne}),oe=!0),se!==ie&&re.color&&(_.cloneBefore({params:ie}),oe=!0),!te&&oe&&_.remove()}}};l.postcss=!0,_.exports=l},725:function(_,X){ +/** + * @license Fraction.js v4.3.7 31/08/2023 + * https://www.xarg.org/2014/03/rational-numbers-in-javascript/ + * + * Copyright (c) 2023, Robert Eisele (robert@raw.org) + * Dual licensed under the MIT or GPL Version 2 licenses. + **/ +(function(ee){"use strict";var te=2e3;var re={s:1,n:0,d:1};function assign(_,X){if(isNaN(_=parseInt(_,10))){throw InvalidParameter()}return _*X}function newFraction(_,X){if(X===0){throw DivisionByZero()}var ee=Object.create(Fraction.prototype);ee["s"]=_<0?-1:1;_=_<0?-_:_;var te=gcd(_,X);ee["n"]=_/te;ee["d"]=X/te;return ee}function factorize(_){var X={};var ee=_;var te=2;var re=4;while(re<=ee){while(ee%te===0){ee/=te;X[te]=(X[te]||0)+1}re+=1+2*te++}if(ee!==_){if(ee>1)X[ee]=(X[ee]||0)+1}else{X[_]=(X[_]||0)+1}return X}var parse=function(_,X){var ee=0,te=1,se=1;var ne=0,ie=0,oe=0,ae=1,le=1;var ue=0,ce=1;var pe=1,fe=1;var de=1e7;var he;if(_===undefined||_===null){}else if(X!==undefined){ee=_;te=X;se=ee*te;if(ee%1!==0||te%1!==0){throw NonIntegerParameter()}}else switch(typeof _){case"object":{if("d"in _&&"n"in _){ee=_["n"];te=_["d"];if("s"in _)ee*=_["s"]}else if(0 in _){ee=_[0];if(1 in _)te=_[1]}else{throw InvalidParameter()}se=ee*te;break}case"number":{if(_<0){se=_;_=-_}if(_%1===0){ee=_}else if(_>0){if(_>=1){le=Math.pow(10,Math.floor(1+Math.log(_)/Math.LN10));_/=le}while(ce<=de&&fe<=de){he=(ue+pe)/(ce+fe);if(_===he){if(ce+fe<=de){ee=ue+pe;te=ce+fe}else if(fe>ce){ee=pe;te=fe}else{ee=ue;te=ce}break}else{if(_>he){ue+=pe;ce+=fe}else{pe+=ue;fe+=ce}if(ce>de){ee=pe;te=fe}else{ee=ue;te=ce}}}ee*=le}else if(isNaN(_)||isNaN(X)){te=ee=NaN}break}case"string":{ce=_.match(/\d+|./g);if(ce===null)throw InvalidParameter();if(ce[ue]==="-"){se=-1;ue++}else if(ce[ue]==="+"){ue++}if(ce.length===ue+1){ie=assign(ce[ue++],se)}else if(ce[ue+1]==="."||ce[ue]==="."){if(ce[ue]!=="."){ne=assign(ce[ue++],se)}ue++;if(ue+1===ce.length||ce[ue+1]==="("&&ce[ue+3]===")"||ce[ue+1]==="'"&&ce[ue+3]==="'"){ie=assign(ce[ue],se);ae=Math.pow(10,ce[ue].length);ue++}if(ce[ue]==="("&&ce[ue+2]===")"||ce[ue]==="'"&&ce[ue+2]==="'"){oe=assign(ce[ue+1],se);le=Math.pow(10,ce[ue+1].length)-1;ue+=3}}else if(ce[ue+1]==="/"||ce[ue+1]===":"){ie=assign(ce[ue],se);ae=assign(ce[ue+2],1);ue+=3}else if(ce[ue+3]==="/"&&ce[ue+1]===" "){ne=assign(ce[ue],se);ie=assign(ce[ue+2],se);ae=assign(ce[ue+4],1);ue+=5}if(ce.length<=ue){te=ae*le;se=ee=oe+te*ne+le*ie;break}}default:throw InvalidParameter()}if(te===0){throw DivisionByZero()}re["s"]=se<0?-1:1;re["n"]=Math.abs(ee);re["d"]=Math.abs(te)};function modpow(_,X,ee){var te=1;for(;X>0;_=_*_%ee,X>>=1){if(X&1){te=te*_%ee}}return te}function cycleLen(_,X){for(;X%2===0;X/=2){}for(;X%5===0;X/=5){}if(X===1)return 0;var ee=10%X;var re=1;for(;ee!==1;re++){ee=ee*10%X;if(re>te)return 0}return re}function cycleStart(_,X,ee){var te=1;var re=modpow(10,ee,X);for(var se=0;se<300;se++){if(te===re)return se;te=te*10%X;re=re*10%X}return 0}function gcd(_,X){if(!_)return X;if(!X)return _;while(1){_%=X;if(!_)return X;X%=_;if(!X)return _}}function Fraction(_,X){parse(_,X);if(this instanceof Fraction){_=gcd(re["d"],re["n"]);this["s"]=re["s"];this["n"]=re["n"]/_;this["d"]=re["d"]/_}else{return newFraction(re["s"]*re["n"],re["d"])}}var DivisionByZero=function(){return new Error("Division by Zero")};var InvalidParameter=function(){return new Error("Invalid argument")};var NonIntegerParameter=function(){return new Error("Parameters must be integer")};Fraction.prototype={s:1,n:0,d:1,abs:function(){return newFraction(this["n"],this["d"])},neg:function(){return newFraction(-this["s"]*this["n"],this["d"])},add:function(_,X){parse(_,X);return newFraction(this["s"]*this["n"]*re["d"]+re["s"]*this["d"]*re["n"],this["d"]*re["d"])},sub:function(_,X){parse(_,X);return newFraction(this["s"]*this["n"]*re["d"]-re["s"]*this["d"]*re["n"],this["d"]*re["d"])},mul:function(_,X){parse(_,X);return newFraction(this["s"]*re["s"]*this["n"]*re["n"],this["d"]*re["d"])},div:function(_,X){parse(_,X);return newFraction(this["s"]*re["s"]*this["n"]*re["d"],this["d"]*re["n"])},clone:function(){return newFraction(this["s"]*this["n"],this["d"])},mod:function(_,X){if(isNaN(this["n"])||isNaN(this["d"])){return new Fraction(NaN)}if(_===undefined){return newFraction(this["s"]*this["n"]%this["d"],1)}parse(_,X);if(0===re["n"]&&0===this["d"]){throw DivisionByZero()}return newFraction(this["s"]*(re["d"]*this["n"])%(re["n"]*this["d"]),re["d"]*this["d"])},gcd:function(_,X){parse(_,X);return newFraction(gcd(re["n"],this["n"])*gcd(re["d"],this["d"]),re["d"]*this["d"])},lcm:function(_,X){parse(_,X);if(re["n"]===0&&this["n"]===0){return newFraction(0,1)}return newFraction(re["n"]*this["n"],gcd(re["n"],this["n"])*gcd(re["d"],this["d"]))},ceil:function(_){_=Math.pow(10,_||0);if(isNaN(this["n"])||isNaN(this["d"])){return new Fraction(NaN)}return newFraction(Math.ceil(_*this["s"]*this["n"]/this["d"]),_)},floor:function(_){_=Math.pow(10,_||0);if(isNaN(this["n"])||isNaN(this["d"])){return new Fraction(NaN)}return newFraction(Math.floor(_*this["s"]*this["n"]/this["d"]),_)},round:function(_){_=Math.pow(10,_||0);if(isNaN(this["n"])||isNaN(this["d"])){return new Fraction(NaN)}return newFraction(Math.round(_*this["s"]*this["n"]/this["d"]),_)},roundTo:function(_,X){parse(_,X);return newFraction(this["s"]*Math.round(this["n"]*re["d"]/(this["d"]*re["n"]))*re["n"],re["d"])},inverse:function(){return newFraction(this["s"]*this["d"],this["n"])},pow:function(_,X){parse(_,X);if(re["d"]===1){if(re["s"]<0){return newFraction(Math.pow(this["s"]*this["d"],re["n"]),Math.pow(this["n"],re["n"]))}else{return newFraction(Math.pow(this["s"]*this["n"],re["n"]),Math.pow(this["d"],re["n"]))}}if(this["s"]<0)return null;var ee=factorize(this["n"]);var te=factorize(this["d"]);var se=1;var ne=1;for(var ie in ee){if(ie==="1")continue;if(ie==="0"){se=0;break}ee[ie]*=re["n"];if(ee[ie]%re["d"]===0){ee[ie]/=re["d"]}else return null;se*=Math.pow(ie,ee[ie])}for(var ie in te){if(ie==="1")continue;te[ie]*=re["n"];if(te[ie]%re["d"]===0){te[ie]/=re["d"]}else return null;ne*=Math.pow(ie,te[ie])}if(re["s"]<0){return newFraction(ne,se)}return newFraction(se,ne)},equals:function(_,X){parse(_,X);return this["s"]*this["n"]*re["d"]===re["s"]*re["n"]*this["d"]},compare:function(_,X){parse(_,X);var ee=this["s"]*this["n"]*re["d"]-re["s"]*re["n"]*this["d"];return(0=0;se--){re=re["inverse"]()["add"](ee[se])}if(Math.abs(re["sub"](X).valueOf())<_){return re["mul"](this["s"])}}return this},divisible:function(_,X){parse(_,X);return!(!(re["n"]*this["d"])||this["n"]*re["d"]%(re["n"]*this["d"]))},valueOf:function(){return this["s"]*this["n"]/this["d"]},toFraction:function(_){var X,ee="";var te=this["n"];var re=this["d"];if(this["s"]<0){ee+="-"}if(re===1){ee+=te}else{if(_&&(X=Math.floor(te/re))>0){ee+=X;ee+=" ";te%=re}ee+=te;ee+="/";ee+=re}return ee},toLatex:function(_){var X,ee="";var te=this["n"];var re=this["d"];if(this["s"]<0){ee+="-"}if(re===1){ee+=te}else{if(_&&(X=Math.floor(te/re))>0){ee+=X;te%=re}ee+="\\frac{";ee+=te;ee+="}{";ee+=re;ee+="}"}return ee},toContinued:function(){var _;var X=this["n"];var ee=this["d"];var te=[];if(isNaN(X)||isNaN(ee)){return te}do{te.push(Math.floor(X/ee));_=X%ee;X=ee;ee=_}while(X!==1);return te},toString:function(_){var X=this["n"];var ee=this["d"];if(isNaN(X)||isNaN(ee)){return"NaN"}_=_||15;var te=cycleLen(X,ee);var re=cycleStart(X,ee,te);var se=this["s"]<0?"-":"";se+=X/ee|0;X%=ee;X*=10;if(X)se+=".";if(te){for(var ne=re;ne--;){se+=X/ee|0;X%=ee;X*=10}se+="(";for(var ne=te;ne--;){se+=X/ee|0;X%=ee;X*=10}se+=")"}else{for(var ne=_;X&&ne--;){se+=X/ee|0;X%=ee;X*=10}}return se}};if(true){Object.defineProperty(X,"__esModule",{value:true});X["default"]=Fraction;_["exports"]=Fraction}else{}})(this)},4836:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045));function n(_){const X=_.value;let ee=_.nodes;"rgb"!==X&&"hsl"!==X||(ee=function(_){let X=0;for(let ee=0;ee<_.length;ee++){const te=_[ee];if("div"===te.type&&","===te.value){if(X<2&&(te.value=" ",te.type="space"),2===X&&(te.value="/"),X>2)return;X++}}return _}(ee));const re=ee.slice().filter((_=>"comment"!==_.type&&"space"!==_.type));let se=null;if("hsl"===X||"hsla"===X?se=function(_){if(!function(_){if(!_||"word"!==_.type)return!1;if(!o(_))return!1;const X=te.default.unit(_.value);if(!X)return!1;return!!X.number&&("deg"===X.unit||"grad"===X.unit||"rad"===X.unit||"turn"===X.unit||""===X.unit)}(_[0]))return null;if(!t(_[1]))return null;if(!t(_[2]))return null;const X={h:te.default.unit(_[0].value),hNode:_[0],s:te.default.unit(_[1].value),sNode:_[1],l:te.default.unit(_[2].value),lNode:_[2]};if(function(_){switch(_.unit){case"deg":return void(_.unit="");case"rad":return _.unit="",void(_.number=Math.round(180*parseFloat(_.number)/Math.PI).toString());case"grad":return _.unit="",void(_.number=Math.round(.9*parseFloat(_.number)).toString());case"turn":_.unit="",_.number=Math.round(360*parseFloat(_.number)).toString()}}(X.h),""!==X.h.unit)return null;X.hNode.value=X.h.number,l(_[3])&&(X.slash=_[3]);(t(_[4])||u(_[4])||a(_[4]))&&(X.alpha=_[4]);return X}(re):"rgb"!==X&&"rgba"!==X||(se=function(_){if(!t(_[0]))return null;if(!t(_[1]))return null;if(!t(_[2]))return null;const X={r:te.default.unit(_[0].value),rNode:_[0],g:te.default.unit(_[1].value),gNode:_[1],b:te.default.unit(_[2].value),bNode:_[2]};"%"===X.r.unit&&(X.r.number=String(Math.floor(Number(X.r.number)/100*255)),X.rNode.value=X.r.number);"%"===X.g.unit&&(X.g.number=String(Math.floor(Number(X.g.number)/100*255)),X.gNode.value=X.g.number);"%"===X.b.unit&&(X.b.number=String(Math.floor(Number(X.b.number)/100*255)),X.bNode.value=X.b.number);l(_[3])&&(X.slash=_[3]);(t(_[4])||u(_[4])||a(_[4]))&&(X.alpha=_[4]);return X}(re)),!se)return;if(re.length>3&&(!se.slash||!se.alpha))return;!function(_,X,ee){"hsl"===_.value||"hsla"===_.value?_.value="hsl":"rgb"!==_.value&&"rgba"!==_.value||(_.value="rgb");if(!X||!ee)return;"hsl"===_.value?_.value="hsla":_.value="rgba";if(X.value=",",X.before="",!function(_){if(!_||"word"!==_.type)return!1;if(!o(_))return!1;const X=te.default.unit(_.value);if(!X)return!1;return!!X.number}(ee))return;const re=te.default.unit(ee.value);if(!re)return;"%"===re.unit&&(re.number=String(parseFloat(re.number)/100),ee.value=String(re.number))}(_,se.slash,se.alpha);const[ne,ie]=function(_){if(function(_){if(void 0!==_.r)return!0;return!1}(_))return[_.rNode,_.gNode,_.bNode];return[_.hNode,_.sNode,_.lNode]}(se);_.nodes.splice(_.nodes.indexOf(ne)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),_.nodes.splice(_.nodes.indexOf(ie)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""})}function t(_){if(!_||"word"!==_.type)return!1;if(!o(_))return!1;const X=te.default.unit(_.value);return!!X&&("%"===X.unit||""===X.unit)}function u(_){return _&&"function"===_.type&&"calc"===_.value}function a(_){return _&&"function"===_.type&&"var"===_.value}function l(_){return _&&"div"===_.type&&"/"===_.value}function o(_){if(!_||!_.value)return!1;try{return!1!==te.default.unit(_.value)}catch(_){return!1}}const i=_=>{const X="preserve"in Object(_)&&Boolean(_.preserve);return{postcssPlugin:"postcss-color-functional-notation",Declaration:(_,{result:ee,postcss:re})=>{if(X&&function(_){let X=_.parent;for(;X;)if("atrule"===X.type){if("supports"===X.name&&-1!==X.params.indexOf("(color: rgb(0 0 0 / 0.5)) and (color: hsl(0 0% 0% / 0.5))"))return!0;X=X.parent}else X=X.parent;return!1}(_))return;const se=_.value;if(!/(^|[^\w-])(hsla?|rgba?)\(/i.test(se))return;let ne;try{ne=te.default(se)}catch(X){_.warn(ee,`Failed to parse value '${se}' as a hsl or rgb function. Leaving the original value intact.`)}if(void 0===ne)return;ne.walk((_=>{_.type&&"function"===_.type&&("hsl"!==_.value&&"hsla"!==_.value&&"rgb"!==_.value&&"rgba"!==_.value||n(_))}));const ie=String(ne);if(ie!==se)if(X&&_.variable){const X=_.parent,ee="(color: rgb(0 0 0 / 0.5)) and (color: hsl(0 0% 0% / 0.5))",te=re.atRule({name:"supports",params:ee,source:_.source}),se=X.clone();se.removeAll(),se.append(_.clone()),te.append(se);let ne=X,oe=X.next();for(;ne&&oe&&"atrule"===oe.type&&"supports"===oe.name&&oe.params===ee;)ne=oe,oe=oe.next();ne.after(te),_.value=ie}else X?_.cloneBefore({value:ie}):_.value=ie}}};i.postcss=!0,_.exports=i},2060:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045)),re={preserve:!1};const r=_=>{if(o(_)){const{value:X}=_,ee=te.default(X);ee.walk((_=>{c(_)&&n(_)}));const se=ee.toString();se!==X&&(re.preserve?_.cloneBefore({value:se}):_.value=se)}},se=/^#([0-9A-Fa-f]{4}(?:[0-9A-Fa-f]{4})?)$/,ne=/#([0-9A-Fa-f]{4}(?:[0-9A-Fa-f]{4})?)\b/,o=_=>ne.test(_.value),c=_=>"word"===_.type&&se.test(_.value),n=_=>{const X=_.value,ee=`0x${5===X.length?X.slice(1).replace(/[0-9A-f]/g,"$&$&"):X.slice(1)}`,[te,re,se,ne]=[parseInt(ee.slice(2,4),16),parseInt(ee.slice(4,6),16),parseInt(ee.slice(6,8),16),Math.round(parseInt(ee.slice(8,10),16)/255*1e5)/1e5];_.value=`rgba(${te},${re},${se},${ne})`};function u(_){return re.preserve="preserve"in Object(_)&&Boolean(_.preserve),{postcssPlugin:"postcss-color-hex-alpha",Declaration:r}}u.postcss=!0,_.exports=u},7106:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045));const re=Function.bind.bind(RegExp.prototype.test)(/^rebeccapurple$/i);var se={preserve:!1};const s=_=>{const{value:X}=_;if(ne(X)){const ee=te.default(X);ee.walk((_=>{"word"===_.type&&(_=>{re(_.value)&&(_.value="#639")})(_)}));const ne=String(ee);ne!==X&&(se.preserve?_.cloneBefore({value:ne}):_.value=ne)}},ne=Function.bind.bind(RegExp.prototype.test)(/(^|[^\w-])rebeccapurple([^\w-]|$)/i);function c(_){return se.preserve="preserve"in Object(_)&&Boolean(_.preserve),{postcssPlugin:"postcss-color-rebeccapurple",Declaration:s}}c.postcss=!0,_.exports=c},8806:(_,X,ee)=>{"use strict";var te=ee(2045),re=ee(1017),se=ee(7310),ne=ee(977),ie=ee(7147);function n(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}function i(_){if(_&&_.__esModule)return _;var X=Object.create(null);return _&&Object.keys(_).forEach((function(ee){if("default"!==ee){var te=Object.getOwnPropertyDescriptor(_,ee);Object.defineProperty(X,ee,te.get?te:{enumerable:!0,get:function(){return _[ee]}})}})),X.default=_,Object.freeze(X)}var oe=n(te),ae=n(re);function u(_){const X=_.selector?_:_.parent;return/(!\s*)?postcss-custom-properties:\s*off\b/i.test(X.toString())}function l(_,X){const ee=new Map,te=new Map,re=new Map;_.nodes.slice().forEach((_=>{const re=m(_)?ee:w(_)?te:null;re&&(_.nodes.slice().forEach((_=>{if(_.variable&&!u(_)){const{prop:ee}=_;re.set(ee,oe.default(_.value)),X.preserve||_.remove()}})),X.preserve||!d(_)||u(_)||_.remove())}));for(const[_,X]of ee.entries())re.set(_,X);for(const[_,X]of te.entries())re.set(_,X);return re}const le=/^html$/i,ue=/^:root$/i,m=_=>"rule"===_.type&&_.selector.split(",").some((_=>le.test(_)))&&Object(_.nodes).length,w=_=>"rule"===_.type&&_.selector.split(",").some((_=>ue.test(_)))&&Object(_.nodes).length,d=_=>0===Object(_.nodes).length;function v(_){const X=new Map;if("customProperties"in _)for(const[ee,te]of Object.entries(_.customProperties))X.set(ee,oe.default(te.toString()));if("custom-properties"in _)for(const[ee,te]of Object.entries(_["custom-properties"]))X.set(ee,oe.default(te.toString()));return X}async function y(_){let X;try{X=await(te=_,Promise.resolve().then((function(){return i(ee(5829)(te))})))}catch(te){X=await function(_){return Promise.resolve().then((function(){return i(ee(5829)(_))}))}(se.pathToFileURL(_).href)}var te;return v("default"in X?X.default:X)}async function h(_){const X=(await Promise.all(_.map((async _=>{if(_ instanceof Promise?_=await _:_ instanceof Function&&(_=await _()),"string"==typeof _){const X=ae.default.resolve(_);return{type:ae.default.extname(X).slice(1).toLowerCase(),from:X}}if("customProperties"in _&&Object(_.customProperties)===_.customProperties)return _;if("custom-properties"in _&&Object(_["custom-properties"])===_["custom-properties"])return _;if("from"in _){const X=ae.default.resolve(_.from);let ee=_.type;return ee||(ee=ae.default.extname(X).slice(1).toLowerCase()),{type:ee,from:X}}return Object.keys(_).length,null})))).filter((_=>!!_)),ee=await Promise.all(X.map((async _=>{if("type"in _&&"from"in _){if("css"===_.type||"pcss"===_.type)return await async function(_){const X=await ie.promises.readFile(_);return l(ne.parse(X,{from:_.toString()}),{preserve:!0})}(_.from);if("js"===_.type||"cjs"===_.type)return await y(_.from);if("mjs"===_.type)return await y(_.from);if("json"===_.type)return await async function(_){return v(await g(_))}(_.from);throw new Error("Invalid source type: "+_.type)}return v(_)}))),te=new Map;return ee.forEach((_=>{for(const[X,ee]of _.entries())te.set(X,ee)})),te}const g=async _=>JSON.parse((await ie.promises.readFile(_)).toString());function j(_,X){return _.nodes&&_.nodes.length&&_.nodes.slice().forEach((ee=>{if(O(ee)){const[te,...re]=ee.nodes.filter((_=>"div"!==_.type)),{value:se}=te,ne=_.nodes.indexOf(ee);if(X.has(se)){const ee=X.get(se).nodes;!function(_,X,ee){const te=new Map(X);te.delete(ee),j(_,te)}({nodes:ee},X,se),ne>-1&&_.nodes.splice(ne,1,...ee)}else re.length&&(ne>-1&&_.nodes.splice(ne,1,...ee.nodes.slice(ee.nodes.indexOf(re[0]))),j(_,X))}else j(ee,X)})),_.toString()}const ce=/^var$/i,O=_=>"function"===_.type&&ce.test(_.value)&&Object(_.nodes).length>0;var $=(_,X,ee)=>{if(F(_)&&!function(_){const X=_.prev();return Boolean(u(_)||X&&"comment"===X.type&&/(!\s*)?postcss-custom-properties:\s*ignore\s+next\b/i.test(X.text))}(_)){const te=_.value;let re=j(oe.default(te),X);const se=new Set;for(;fe.test(re)&&!se.has(re);){se.add(re);re=j(oe.default(re),X)}if(re!==te)if(ee.preserve){const X=_.cloneBefore({value:re});S(X)&&(X.raws.value.value=X.value.replace(de,"$1"),X.raws.value.raw=X.raws.value.value+X.raws.value.raw.replace(de,"$2"))}else _.value=re,S(_)&&(_.raws.value.value=_.value.replace(de,"$1"),_.raws.value.raw=_.raws.value.value+_.raws.value.raw.replace(de,"$2"))}};const pe=/^--[A-z][\w-]*$/,fe=/(^|[^\w-])var\([\W\w]+\)/,F=_=>!pe.test(_.prop)&&fe.test(_.value),S=_=>"value"in Object(Object(_.raws).value)&&"raw"in _.raws.value&&de.test(_.raws.value.raw),de=/^([\W\w]+)(\s*\/\*[\W\w]+?\*\/)$/;async function E(_,X,ee){"css"===X&&await async function(_,X){const ee=`:root {\n${Object.keys(X).reduce(((_,ee)=>(_.push(`\t${ee}: ${X[ee]};`),_)),[]).join("\n")}\n}\n`;await ie.promises.writeFile(_,ee)}(_,ee),"scss"===X&&await async function(_,X){const ee=`${Object.keys(X).reduce(((_,ee)=>{const te=ee.replace("--","$");return _.push(`${te}: ${X[ee]};`),_}),[]).join("\n")}\n`;await ie.promises.writeFile(_,ee)}(_,ee),"js"===X&&await async function(_,X){const ee=`module.exports = {\n\tcustomProperties: {\n${Object.keys(X).reduce(((_,ee)=>(_.push(`\t\t'${q(ee)}': '${q(X[ee])}'`),_)),[]).join(",\n")}\n\t}\n};\n`;await ie.promises.writeFile(_,ee)}(_,ee),"json"===X&&await async function(_,X){const ee=`${JSON.stringify({"custom-properties":X},null," ")}\n`;await ie.promises.writeFile(_,ee)}(_,ee),"mjs"===X&&await async function(_,X){const ee=`export const customProperties = {\n${Object.keys(X).reduce(((_,ee)=>(_.push(`\t'${q(ee)}': '${q(X[ee])}'`),_)),[]).join(",\n")}\n};\n`;await ie.promises.writeFile(_,ee)}(_,ee)}function M(_){const X={};for(const[ee,te]of _.entries())X[ee]=te.toString();return X}const q=_=>_.replace(/\\([\s\S])|(')/g,"\\$1$2").replace(/\n/g,"\\n").replace(/\r/g,"\\r"),N=_=>{const X=!("preserve"in Object(_))||Boolean(_.preserve),ee="overrideImportFromWithRoot"in Object(_)&&Boolean(_.overrideImportFromWithRoot),te="disableDeprecationNotice"in Object(_)&&Boolean(_.disableDeprecationNotice);let re=[];Array.isArray(null==_?void 0:_.importFrom)?re=_.importFrom:null!=_&&_.importFrom&&(re=[_.importFrom]);let se=[];Array.isArray(null==_?void 0:_.exportTo)?se=_.exportTo:null!=_&&_.exportTo&&(se=[_.exportTo]);const ne=h(re),ie=0===re.length&&0===se.length;return{postcssPlugin:"postcss-custom-properties",prepare(){let _=new Map;return ie?{Once:ee=>{_=l(ee,{preserve:X})},Declaration:ee=>{$(ee,_,{preserve:X})},OnceExit:()=>{_.clear()}}:{Once:async te=>{const re=(await ne).entries(),ie=l(te,{preserve:X}).entries();if(ee)for(const[X,ee]of[...re,...ie])_.set(X,ee);else for(const[X,ee]of[...ie,...re])_.set(X,ee);await function(_,X){return Promise.all(X.map((async X=>{if(X instanceof Function)return void await X(M(_));if("string"==typeof X){const ee=ae.default.resolve(X),te=ae.default.extname(ee).slice(1).toLowerCase();return void await E(ee,te,M(_))}let ee={};if(ee="toJSON"in X?X.toJSON(M(_)):M(_),"to"in X){const _=ae.default.resolve(X.to);let te=X.type;return te||(te=ae.default.extname(_).slice(1).toLowerCase()),void await E(_,te,ee)}"customProperties"in X?X.customProperties=ee:"custom-properties"in X&&(X["custom-properties"]=ee)})))}(_,se)},Declaration:ee=>{$(ee,_,{preserve:X})},OnceExit:(X,{result:ee})=>{!te&&(re.length>0||se.length>0)&&X.warn(ee,'"importFrom" and "exportTo" will be removed in a future version of postcss-custom-properties.\nWe are looking for insights and anecdotes on how these features are used so that we can design the best alternative.\nPlease let us know if our proposal will work for you.\nVisit the discussion on github for more details. https://github.com/csstools/postcss-plugins/discussions/192'),_.clear()}}}}};N.postcss=!0,_.exports=N},50:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));const re=/:dir\([^)]*\)/;function o(_){const X=Object(_).dir,ee=Boolean(Object(_).preserve),se=Boolean(Object(_).shadow);return{postcssPlugin:"postcss-dir-pseudo-class",Rule(_,{result:ne}){let ie,oe=!1;if(re.test(_.selector)){try{ie=te.default((ee=>{ee.nodes.forEach((ee=>{ee.walk((ee=>{if("pseudo"!==ee.type)return;if(":dir"!==ee.value)return;const re=ee.nodes.toString();if("rtl"!==re&&"ltr"!==re)return;const ie=ee.parent;ie.nodes.filter((_=>"pseudo"===_.type&&":dir"===_.value)).length>1&&!oe&&(oe=!0,_.warn(ne,`Hierarchical :dir pseudo class usage can't be transformed correctly to [dir] attributes. This will lead to incorrect selectors for "${_.selector}"`));const ae=ee.prev(),le=ee.next(),ue=ae&&ae.type&&"combinator"!==ae.type,ce=le&&le.type&&"combinator"!==le.type,pe=le&&le.type&&("combinator"!==le.type||"combinator"===le.type&&" "===le.value);ue||ce||0===ie.nodes.indexOf(ee)&&pe||1===ie.nodes.length?ee.remove():ee.replaceWith(te.default.universal());const fe=ie.nodes[0],de=fe&&"combinator"===fe.type&&" "===fe.value,he=fe&&"tag"===fe.type&&"html"===fe.value,me=fe&&"pseudo"===fe.type&&":root"===fe.value;!fe||he||me||de||ie.prepend(te.default.combinator({value:" "}));const ge=X===re,be=te.default.attribute({attribute:"dir",operator:"=",quoteMark:'"',value:`"${re}"`}),ve=te.default.pseudo({value:":host-context"});ve.append(be);const ye=te.default.pseudo({value:(he||me?"":"html")+":not"});ye.append(te.default.attribute({attribute:"dir",operator:"=",quoteMark:'"',value:`"${"ltr"===re?"rtl":"ltr"}"`})),ge?he?ie.insertAfter(fe,ye):ie.prepend(ye):he?ie.insertAfter(fe,be):se&&!me?ie.prepend(ve):ie.prepend(be)}))}))})).processSync(_.selector)}catch(X){return void _.warn(ne,`Failed to parse selector : ${_.selector}`)}void 0!==ie&&ie!==_.selector&&(ee?_.cloneBefore({selector:ie}):_.selector=ie)}}}}o.postcss=!0,_.exports=o},1426:(_,X,ee)=>{"use strict";var te=ee(5449),re=ee(2045);function r(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var se=r(te),ne=r(re);function s(_){return _.includes("conic-gradient(")||_.includes("linear-gradient(")||_.includes("radial-gradient(")||_.includes("repeating-conic-gradient(")||_.includes("repeating-linear-gradient(")||_.includes("repeating-radial-gradient(")}const ie=["at","bottom","center","circle","closest-corner","closest-side","ellipse","farthest-corner","farthest-side","from","in","left","right","to","top"],o=_=>"div"===_.type&&","===_.value;function l(_){try{return!1!==ne.default.unit(null==_?void 0:_.value)}catch(_){return!1}}const c=_=>({postcssPlugin:"postcss-double-position-gradients",Declaration(X,{result:ee}){if(!s(X.value))return;if(function(_){let X=_.parent;for(;X;)if("atrule"===X.type){if("supports"===X.name&&s(X.params))return!0;X=X.parent}else X=X.parent;return!1}(X))return;let te;try{te=ne.default(X.value)}catch(_){X.warn(ee,`Failed to parse value '${X.value}' as a CSS gradient. Leaving the original value intact.`)}if(void 0===te)return;te.walk((_=>{if("function"!==_.type||"conic-gradient"!==(X=_.value)&&"linear-gradient"!==X&&"radial-gradient"!==X&&"repeating-conic-gradient"!==X&&"repeating-linear-gradient"!==X&&"repeating-radial-gradient"!==X)return;var X;const ee=_.nodes.filter((_=>"comment"!==_.type&&"space"!==_.type));let te=!1;ee.forEach(((X,ee,re)=>{if("word"===X.type&&ie.includes(X.value)&&(te=!0),"div"===X.type&&","===X.value&&(te=!1),te)return;const se=Object(re[ee-1]),ne=Object(re[ee-2]),oe=Object(re[ee+1]);if(ne.type&&l(se)&&l(X)){const ee=ne,te={type:"div",value:",",before:o(oe)?oe.before:"",after:o(oe)?"":" "};_.nodes.splice(_.nodes.indexOf(X)-1,0,te,ee)}}))}));const re=te.toString();if(re!==X.value){if(_.preserve)return void X.cloneBefore({value:re});X.value=re}}});c.postcss=!0;const u=_=>{const X=Object.assign({enableProgressiveCustomProperties:!0,preserve:!0},_);return X.enableProgressiveCustomProperties&&X.preserve?{postcssPlugin:"postcss-double-position-gradients",plugins:[se.default(),c(X)]}:c(X)};u.postcss=!0,_.exports=u},3365:(_,X,ee)=>{"use strict";var te=ee(2045),re=ee(7147),se=ee(1017);function a(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}function r(_){if(_&&_.__esModule)return _;var X=Object.create(null);return _&&Object.keys(_).forEach((function(ee){if("default"!==ee){var te=Object.getOwnPropertyDescriptor(_,ee);Object.defineProperty(X,ee,te.get?te:{enumerable:!0,get:function(){return _[ee]}})}})),X.default=_,Object.freeze(X)}var ne=a(te),ie=a(re),oe=a(se),c=(_,X)=>{const ee=ne.default(_);return ee.walk((_=>{if((_=>_&&"function"===_.type&&"env"===_.value)(_)){const[ee]=_.nodes;"word"===ee.type&&void 0!==X[ee.value]&&(_.nodes=[],_.type="word",_.value=X[ee.value])}})),ee.toString()};function u(_){return Object.assign({},Object(_).environmentVariables||Object(_)["environment-variables"])}function l(_){return _.map((_=>{if(_ instanceof Promise)return _;if(_ instanceof Function)return _();const X=_===Object(_)?_:{from:String(_)};if(X.environmentVariables||X["environment-variables"])return X;const ee=String(X.from||"");return{type:(X.type||oe.default.extname(ee).slice(1)).toLowerCase(),from:ee}})).reduce((async(_,X)=>{const{type:te,from:re}=await X;return"js"===te||"cjs"===te?Object.assign(_,await async function(_){var X;return u(await(X=oe.default.resolve(_),Promise.resolve().then((function(){return r(ee(1736)(X))}))))}(re)):"json"===te?Object.assign(_,await async function(_){return u(await f(oe.default.resolve(_)))}(re)):Object.assign(_,u(await X))}),{})}const f=async _=>JSON.parse(await(_=>new Promise(((X,ee)=>{ie.default.readFile(_,"utf8",((_,te)=>{_?ee(_):X(te)}))})))(_));function d(_){const X=l([].concat(Object(_).importFrom||[])),ee="disableDeprecationNotice"in Object(_)&&Boolean(_.disableDeprecationNotice);let te=!1;return{postcssPlugin:"postcss-env-fn",async AtRule(_,{result:re}){let se;try{se=c(_.params,await X)}catch(X){_.warn(re,`Failed to parse params '${_.params}' as an environment value. Leaving the original value intact.`)}void 0!==se&&se!==_.params&&(_.params=se,ee||te||(te=!0,_.warn(re,"postcss-env-function is deprecated and will be removed.\nCheck the discussion on github for more details. https://github.com/csstools/postcss-plugins/discussions/192")))},async Declaration(_,{result:re}){let se;try{se=c(_.value,await X)}catch(X){_.warn(re,`Failed to parse value '${_.value}' as an environment value. Leaving the original value intact.`)}void 0!==se&&se!==_.value&&(_.value=se,ee||te||(te=!0,_.warn(re,"postcss-env-function is deprecated and will be removed.\nWe are looking for insights and anecdotes on how these features are used so that we can design the best alternative.\nPlease let us know if our proposal will work for you.\nVisit the discussion on github for more details. https://github.com/csstools/postcss-plugins/discussions/192")))}}}d.postcss=!0,_.exports=d},3073:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));const t=_=>{_=Object(_);const X=Boolean(!("preserve"in _)||_.preserve),ee=String(_.replaceWith||".focus-visible"),re=te.default().astSync(ee);return{postcssPlugin:"postcss-focus-visible",Rule(_,{result:ee}){if(!_.selector.includes(":focus-visible"))return;let se;try{const X=te.default((_=>{_.walkPseudos((_=>{":focus-visible"===_.value&&(_.nodes&&_.nodes.length||_.replaceWith(re.clone({})))}))})).processSync(_.selector);se=String(X)}catch(X){return void _.warn(ee,`Failed to parse selector : ${_.selector}`)}if(void 0===se)return;if(se===_.selector)return;const ne=_.clone({selector:se});X?_.before(ne):_.replaceWith(ne)}}};t.postcss=!0,_.exports=t},8742:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));const s=_=>{const X=String(Object(_).replaceWith||"[focus-within]"),ee=Boolean(!("preserve"in Object(_))||_.preserve),re=te.default().astSync(X);return{postcssPlugin:"postcss-focus-within",Rule:(_,{result:X})=>{if(!_.selector.includes(":focus-within"))return;let se;try{const X=te.default((_=>{_.walkPseudos((_=>{":focus-within"===_.value&&(_.nodes&&_.nodes.length||_.replaceWith(re.clone({})))}))})).processSync(_.selector);se=String(X)}catch(ee){return void _.warn(X,`Failed to parse selector : ${_.selector}`)}if(void 0===se)return;if(se===_.selector)return;const ne=_.clone({selector:se});ee?_.before(ne):_.replaceWith(ne)}}};s.postcss=!0,_.exports=s},9060:_=>{"use strict";const X=/^(column-gap|gap|row-gap)$/i,o=_=>"display"===_.prop&&"grid"===_.value;function p(_){const ee=!("preserve"in Object(_))||Boolean(_.preserve);return{postcssPlugin:"postcss-gap-properties",Declaration(_){X.test(_.prop)&&_.parent.some(o)&&(_.cloneBefore({prop:`grid-${_.prop}`}),ee||_.remove())}}}p.postcss=!0,_.exports=p},6008:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045));const re=/^(cross-fade|image|(repeating-)?(conic|linear|radial)-gradient|url|var)$/i;function r(_){return!(!_||!_.type)&&("string"===_.type?"url("+te.default.stringify(_)+")":!("function"!==_.type||!re.test(_.value))&&te.default.stringify(_))}const se={dpcm:2.54,dpi:1,dppx:96,x:96};function a(_,X,ee){if("boolean"==typeof _)return!1;const te=Math.floor(_/se.x*100)/100;return X.atRule({name:"media",params:`(-webkit-min-device-pixel-ratio: ${te}), (min-resolution: ${_}dpi)`,source:ee.source})}function o(_){if(!_)return!1;if("word"!==_.type)return!1;if(!function(_){if(!_||!_.value)return!1;try{return!1!==te.default.unit(_.value)}catch(_){return!1}}(_))return!1;const X=te.default.unit(_.value);return!!X&&(X.unit.toLowerCase()in se&&Number(X.number)*se[X.unit.toLowerCase()])}const s=(_,X,ee)=>{if("warn"===_.oninvalid)_.decl.warn(_.result,X,{word:String(ee)});else if("throw"===_.oninvalid)throw _.decl.error(X,{word:String(ee)})},ne=/(^|[^\w-])(-webkit-)?image-set\(/i,ie=/^(-webkit-)?image-set$/i,c=_=>{const X=!("preserve"in Object(_))||Boolean(_.preserve),ee="oninvalid"in Object(_)?_.oninvalid:"ignore";return{postcssPlugin:"postcss-image-set-function",Declaration(_,{result:re,postcss:se}){const oe=_.value;if(!ne.test(oe))return;let ae;try{ae=te.default(oe)}catch(X){_.warn(re,`Failed to parse value '${oe}' as an image-set function. Leaving the original value intact.`)}if(void 0===ae)return;const le=[];ae.walk((X=>{if("function"!==X.type)return;if(!ie.test(X.value))return;let se=!1;if(te.default.walk(X.nodes,(_=>{"function"===_.type&&ie.test(_.value)&&(se=!0)})),se)return s({decl:_,oninvalid:ee,result:re},"nested image-set functions are not allowed",te.default.stringify(X)),!1;const ne=X.nodes.filter((_=>"comment"!==_.type&&"space"!==_.type));le.push({imageSetFunction:X,imageSetOptionNodes:ne})})),((_,X,ee)=>{const re=X.parent,se=new Map,ne=X.value;for(let re=0;re<_.length;re++){const{imageSetFunction:oe,imageSetOptionNodes:ae}=_[re],le=new Map,ue=ae.length;let ce=-1;for(;ce_-X)).map((_=>se.get(_).atRule));if(!oe.length)return;const ae=oe[0],le=oe.slice(1);le.length&&re.after(le);const ue=ae.nodes[0].nodes[0];X.cloneBefore({value:ue.value.trim()}),ee.preserve||(X.remove(),re.nodes.length||re.remove())})(le,_,{decl:_,oninvalid:ee,preserve:X,result:re,postcss:se})}}};c.postcss=!0,_.exports=c},6157:(_,X,ee)=>{"use strict";var te=ee(5449),re=ee(2045);function n(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var se=n(te),ne=n(re); +/** + * Simple matrix (and vector) multiplication + * Warning: No error handling for incompatible dimensions! + * @author Lea Verou 2020 MIT License + * + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/multiply-matrices.js + */function a(_,X){const ee=_.length;let te,re;te=Array.isArray(_[0])?_:[_],Array.isArray(X[0])||(re=X.map((_=>[_])));const se=re[0].length,ne=re[0].map(((_,X)=>re.map((_=>_[X]))));let ie=te.map((_=>ne.map((X=>Array.isArray(_)?_.reduce(((_,ee,te)=>_+ee*(X[te]||0)),0):X.reduce(((X,ee)=>X+ee*_),0)))));return 1===ee&&(ie=ie[0]),1===se?ie.map((_=>_[0])):ie} +/** + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/conversions.js + */const ie=[.3457/.3585,1,.2958/.3585];function i(_){return _.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return ee<.04045?_/12.92:X*Math.pow((ee+.055)/1.055,2.4)}))}function s(_){return _.map((function(_){const X=_<0?-1:1,ee=Math.abs(_);return ee>.0031308?X*(1.055*Math.pow(ee,1/2.4)-.055):12.92*_}))}function l(_){return a([[.41239079926595934,.357584339383878,.1804807884018343],[.21263900587151027,.715168678767756,.07219231536073371],[.01933081871559182,.11919477979462598,.9505321522496607]],_)}function c(_){return a([[3.2409699419045226,-1.537383177570094,-.4986107602930034],[-.9692436362808796,1.8759675015077202,.04155505740717559],[.05563007969699366,-.20397695888897652,1.0569715142428786]],_)}function f(_){return i(_)}function p(_){return s(_)}function d(_){return a([[.4865709486482162,.26566769316909306,.1982172852343625],[.2289745640697488,.6917385218365064,.079286914093745],[0,.04511338185890264,1.043944368900976]],_)}function h(_){return a([[2.493496911941425,-.9313836179191239,-.40271078445071684],[-.8294889695615747,1.7626640603183463,.023624685841943577],[.03584583024378447,-.07617238926804182,.9568845240076872]],_)}function m(_){return a([[.9554734527042182,-.023098536874261423,.0632593086610217],[-.028369706963208136,1.0099954580058226,.021041398966943008],[.012314001688319899,-.020507696433477912,1.3303659366080753]],_)}function v(_){const X=24389/27,ee=216/24389,te=[];te[1]=(_[0]+16)/116,te[0]=_[1]/500+te[1],te[2]=te[1]-_[2]/200;return[Math.pow(te[0],3)>ee?Math.pow(te[0],3):(116*te[0]-16)/X,_[0]>8?Math.pow((_[0]+16)/116,3):_[0]/X,Math.pow(te[2],3)>ee?Math.pow(te[2],3):(116*te[2]-16)/X].map(((_,X)=>_*ie[X]))}function b(_){return[_[0],_[1]*Math.cos(_[2]*Math.PI/180),_[1]*Math.sin(_[2]*Math.PI/180)]}function y(_){const X=a([[.8190224432164319,.3619062562801221,-.12887378261216414],[.0329836671980271,.9292868468965546,.03614466816999844],[.048177199566046255,.26423952494422764,.6335478258136937]],_);return a([[.2104542553,.793617785,-.0040720468],[1.9779984951,-2.428592205,.4505937099],[.0259040371,.7827717662,-.808675766]],X.map((_=>Math.cbrt(_))))}function M(_){const X=a([[.9999999984505198,.39633779217376786,.2158037580607588],[1.0000000088817609,-.10556134232365635,-.06385417477170591],[1.0000000546724108,-.08948418209496575,-1.2914855378640917]],_);return a([[1.2268798733741557,-.5578149965554813,.28139105017721583],[-.04057576262431372,1.1122868293970594,-.07171106666151701],[-.07637294974672142,-.4214933239627914,1.5869240244272418]],X.map((_=>_**3)))}function g(_){const X=180*Math.atan2(_[2],_[1])/Math.PI;return[_[0],Math.sqrt(_[1]**2+_[2]**2),X>=0?X:X+360]}function x(_){return[_[0],_[1]*Math.cos(_[2]*Math.PI/180),_[1]*Math.sin(_[2]*Math.PI/180)]} +/** + * @license W3C + * https://www.w3.org/Consortium/Legal/2015/copyright-software-and-document + * + * @copyright This software or document includes material copied from or derived from https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js. Copyright © 2022 W3C® (MIT, ERCIM, Keio, Beihang). + * + * @see https://github.com/w3c/csswg-drafts/blob/main/css-color-4/deltaEOK.js + */function F(_,X){const[ee,te,re]=_,[se,ne,ie]=X,oe=ee-se,ae=te-ne,le=re-ie;return Math.sqrt(oe**2+ae**2+le**2)}function P(_,X,ee){return function(_,X,ee){let te=0,re=_[1];const se=_;for(;re-te>1e-4;){const _=w(X(se));F(x(se),x(ee(_)))-.02<1e-4?te=se[1]:re=se[1],se[1]=(re+te)/2}return w(X([...se]))}(_,X,ee)}function w(_){return _.map((_=>_<0?0:_>1?1:_))}function I(_){const[X,ee,te]=_;return X>=-1e-4&&X<=1.0001&&ee>=-1e-4&&ee<=1.0001&&te>=-1e-4&&te<=1.0001}function N(_){const[X,ee,te]=_;let re=[Math.max(X,0),Math.min(Math.max(ee,-160),160),Math.min(Math.max(te,-160),160)];re=v(re);let se=re.slice();return se=m(se),se=y(se),se=g(se),se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),re=m(re),re=h(re),re=p(re),I(re)?[w(re),!0]:[P(se,(_=>p(_=h(_=M(_=x(_))))),(_=>g(_=y(_=d(_=f(_)))))),!1]}function S(_){const[X,ee,te]=_;let re=[Math.max(X,0),Math.min(Math.max(ee,-160),160),Math.min(Math.max(te,-160),160)];re=v(re);let se=re.slice();return se=m(se),se=y(se),se=g(se),se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),re=m(re),re=c(re),re=s(re),I(re)?w(re).map((_=>Math.round(255*_))):P(se,(_=>s(_=c(_=M(_=x(_))))),(_=>g(_=y(_=l(_=i(_)))))).map((_=>Math.round(255*_)))}function O(_){const[X,ee,te]=_;let re=[Math.max(X,0),ee,te%360];re=b(re),re=v(re);let se=re.slice();return se=m(se),se=y(se),se=g(se),se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),re=m(re),re=h(re),re=p(re),I(re)?[w(re),!0]:[P(se,(_=>p(_=h(_=M(_=x(_))))),(_=>g(_=y(_=d(_=f(_)))))),!1]}function A(_){const[X,ee,te]=_;let re=[Math.max(X,0),ee,te%360];re=b(re),re=v(re);let se=re.slice();return se=m(se),se=y(se),se=g(se),se[0]<1e-6&&(se=[0,0,0]),se[0]>.999999&&(se=[1,0,0]),re=m(re),re=c(re),re=s(re),I(re)?w(re).map((_=>Math.round(255*_))):P(se,(_=>s(_=c(_=M(_=x(_))))),(_=>g(_=y(_=l(_=i(_)))))).map((_=>Math.round(255*_)))}function q(_){const X=_.value,ee=_.nodes.slice().filter((_=>"comment"!==_.type&&"space"!==_.type));let te=null;if("lab"===X?te=$(ee):"lch"===X&&(te=C(ee)),!te)return;_.value="rgb",function(_,X,ee){if(!X||!ee)return;if(_.value="rgba",X.value=",",X.before="",!function(_){if(!_||"word"!==_.type)return!1;if(!H(_))return!1;const X=ne.default.unit(_.value);if(!X)return!1;return!!X.number}(ee))return;const te=ne.default.unit(ee.value);if(!te)return;"%"===te.unit&&(te.number=String(parseFloat(te.number)/100),ee.value=String(te.number))}(_,te.slash,te.alpha);const[re,se,ie]=G(te),[oe,ae,le]=L(te),ue=("lab"===X?S:A)([oe.number,ae.number,le.number].map((_=>parseFloat(_))));_.nodes.splice(_.nodes.indexOf(re)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),_.nodes.splice(_.nodes.indexOf(se)+1,0,{sourceIndex:0,sourceEndIndex:1,value:",",type:"div",before:"",after:""}),z(_.nodes,re,{...re,value:String(ue[0])}),z(_.nodes,se,{...se,value:String(ue[1])}),z(_.nodes,ie,{...ie,value:String(ue[2])})}function B(_){if(!_||"word"!==_.type)return!1;if(!H(_))return!1;const X=ne.default.unit(_.value);return!!X&&("%"===X.unit||""===X.unit)}function E(_){return _&&"function"===_.type&&"calc"===_.value}function j(_){return _&&"function"===_.type&&"var"===_.value}function k(_){return _&&"div"===_.type&&"/"===_.value}function C(_){if(!B(_[0]))return null;if(!B(_[1]))return null;if(!function(_){if(!_||"word"!==_.type)return!1;if(!H(_))return!1;const X=ne.default.unit(_.value);return!(!X||!X.number||"deg"!==X.unit&&"grad"!==X.unit&&"rad"!==X.unit&&"turn"!==X.unit&&""!==X.unit)}(_[2]))return null;const X={l:ne.default.unit(_[0].value),lNode:_[0],c:ne.default.unit(_[1].value),cNode:_[1],h:ne.default.unit(_[2].value),hNode:_[2]};return function(_){switch(_.unit){case"deg":return void(_.unit="");case"rad":return _.unit="",void(_.number=(180*parseFloat(_.number)/Math.PI).toString());case"grad":return _.unit="",void(_.number=(.9*parseFloat(_.number)).toString());case"turn":_.unit="",_.number=(360*parseFloat(_.number)).toString()}}(X.h),""!==X.h.unit?null:(k(_[3])&&(X.slash=_[3]),(B(_[4])||E(_[4])||j(_[4]))&&(X.alpha=_[4]),!(_.length>3)||X.slash&&X.alpha?("%"===X.l.unit&&(X.l.unit=""),"%"===X.c.unit&&(X.c.unit="",X.c.number=(parseFloat(X.c.number)/100*150).toFixed(10)),X):null)}function $(_){if(!B(_[0]))return null;if(!B(_[1]))return null;if(!B(_[2]))return null;const X={l:ne.default.unit(_[0].value),lNode:_[0],a:ne.default.unit(_[1].value),aNode:_[1],b:ne.default.unit(_[2].value),bNode:_[2]};return k(_[3])&&(X.slash=_[3]),(B(_[4])||E(_[4])||j(_[4]))&&(X.alpha=_[4]),!(_.length>3)||X.slash&&X.alpha?("%"===X.l.unit&&(X.l.unit=""),"%"===X.a.unit&&(X.a.unit="",X.a.number=(parseFloat(X.a.number)/100*125).toFixed(10)),"%"===X.b.unit&&(X.b.unit="",X.b.number=(parseFloat(X.b.number)/100*125).toFixed(10)),X):null}function D(_){return void 0!==_.a}function G(_){return D(_)?[_.lNode,_.aNode,_.bNode]:[_.lNode,_.cNode,_.hNode]}function L(_){return D(_)?[_.l,_.a,_.b]:[_.l,_.c,_.h]}function z(_,X,ee){const te=_.indexOf(X);_[te]=ee}function H(_){if(!_||!_.value)return!1;try{return!1!==ne.default.unit(_.value)}catch(_){return!1}}function J(_,X,ee,te){let re;try{re=ne.default(_)}catch(te){X.warn(ee,`Failed to parse value '${_}' as a lab or lch function. Leaving the original value intact.`)}if(void 0===re)return;re.walk((_=>{_.type&&"function"===_.type&&("lab"!==_.value&&"lch"!==_.value||q(_))}));const se=String(re);if(se===_)return;const ie=ne.default(_);ie.walk((_=>{_.type&&"function"===_.type&&("lab"!==_.value&&"lch"!==_.value||function(_,X,ee,te){const re=ne.default.stringify(_),se=_.value,ie=_.nodes.slice().filter((_=>"comment"!==_.type&&"space"!==_.type));let oe=null;if("lab"===se?oe=$(ie):"lch"===se&&(oe=C(ie)),!oe)return;if(ie.length>3&&(!oe.slash||!oe.alpha))return;_.value="color";const[ae,le,ue]=G(oe),[ce,pe,fe]=L(oe),de="lab"===se?N:O,he=[ce.number,pe.number,fe.number].map((_=>parseFloat(_))),[me,ge]=de(he);!ge&&te&&X.warn(ee,`"${re}" is out of gamut for "display-p3". Given "preserve: true" is set, this will lead to unexpected results in some browsers.`),_.nodes.splice(0,0,{sourceIndex:0,sourceEndIndex:10,value:"display-p3",type:"word"}),_.nodes.splice(1,0,{sourceIndex:0,sourceEndIndex:1,value:" ",type:"space"}),z(_.nodes,ae,{...ae,value:me[0].toFixed(5)}),z(_.nodes,le,{...le,value:me[1].toFixed(5)}),z(_.nodes,ue,{...ue,value:me[2].toFixed(5)})}(_,X,ee,te))}));return{rgb:se,displayP3:String(ie)}}const K=_=>({postcssPlugin:"postcss-lab-function",Declaration:(X,{result:ee})=>{if(function(_){const X=_.parent;if(!X)return!1;const ee=X.index(_);for(let te=0;te{const X=Object.assign({enableProgressiveCustomProperties:!0,preserve:!1,subFeatures:{displayP3:!0}},_);return X.subFeatures=Object.assign({displayP3:!0},X.subFeatures),X.enableProgressiveCustomProperties&&(X.preserve||X.subFeatures.displayP3)?{postcssPlugin:"postcss-lab-function",plugins:[se.default(),K(X)]}:K(X)};Q.postcss=!0,_.exports=Q},2520:(_,X,ee)=>{"use strict";function r(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=r(ee(977)),t=(_,X)=>{const ee="rule"===Object(_.parent).type?_.parent.cloneBefore({raws:{}}).removeAll():te.default.rule({selector:"&"});return ee.selectors=ee.selectors.map((_=>`${_}:dir(${X})`)),ee};const re=/^border-(block|block-start|block-end|inline|inline-start|inline-end)(-(width|style|color))?$/i;var l=(_,X,ee,te)=>{_.cloneBefore({prop:`border-top${_.prop.replace(re,"$2")}`,value:X[0]}),_.cloneBefore({prop:`border-bottom${_.prop.replace(re,"$2")}`,value:X[1]||X[0]}),b(_,te)},n=(_,X,ee,te)=>{_.cloneBefore({prop:`border-top${_.prop.replace(re,"$2")}`}),b(_,te)},i=(_,X,ee,te)=>{_.cloneBefore({prop:`border-bottom${_.prop.replace(re,"$2")}`}),b(_,te)},d=(_,X,ee,te)=>{const i=()=>[_.cloneBefore({prop:`border-left${_.prop.replace(re,"$2")}`,value:X[0]}),_.cloneBefore({prop:`border-right${_.prop.replace(re,"$2")}`,value:X[1]||X[0]})],d=()=>[_.clone({prop:`border-right${_.prop.replace(re,"$2")}`,value:X[0]}),_.clone({prop:`border-left${_.prop.replace(re,"$2")}`,value:X[1]||X[0]})];return 1===X.length||2===X.length&&X[0]===X[1]||"ltr"===ee?(i(),void b(_,te)):"rtl"===ee?(d(),void b(_,te)):(t(_,"ltr").append(i()),t(_,"rtl").append(d()),void b(_,te))},p=(_,X,ee,te)=>{const i=()=>_.cloneBefore({prop:`border-left${_.prop.replace(re,"$2")}`}),d=()=>_.cloneBefore({prop:`border-right${_.prop.replace(re,"$2")}`});return"ltr"===ee?(i(),void b(_,te)):"rtl"===ee?(d(),void b(_,te)):(t(_,"ltr").append(i()),t(_,"rtl").append(d()),void b(_,te))},a=(_,X,ee,te)=>{const i=()=>_.cloneBefore({prop:`border-right${_.prop.replace(re,"$2")}`}),d=()=>_.cloneBefore({prop:`border-left${_.prop.replace(re,"$2")}`});return"ltr"===ee?(i(),void b(_,te)):"rtl"===ee?(d(),void b(_,te)):(t(_,"ltr").append(i()),t(_,"rtl").append(d()),void b(_,te))};function b(_,X){X||_.remove()}const se=/^(border-)(end-end|end-start|start-end|start-start)(-radius)$/i,ne={"end-end":"bottom-right","end-start":"bottom-left","start-end":"top-right","start-start":"top-left"},ie={"end-end":"bottom-left","end-start":"bottom-right","start-end":"top-left","start-start":"top-right"};var f=(_,X,ee,te)=>"ltr"===ee?(u(_),void v(_,te)):"rtl"===ee?(h(_),void v(_,te)):(t(_,"ltr").append(u(_)),t(_,"rtl").append(h(_)),void v(_,te));function u(_){return _.cloneBefore({prop:_.prop.replace(se,((_,X,ee,te)=>`${X}${ne[ee]}${te}`))})}function h(_){return _.cloneBefore({prop:_.prop.replace(se,((_,X,ee,te)=>`${X}${ie[ee]}${te}`))})}function v(_,X){X||_.remove()}var m=_=>{const X=_.slice();return 4===X.length&&X[3]===X[1]&&X.pop(),3===X.length&&X[2]===X[0]&&X.pop(),2===X.length&&X[1]===X[0]&&X.pop(),X},k=(_,X,ee,te)=>{if("logical"!==X[0])return null;const[,re,se,ne,ie]=X,oe=m([re,ie||se||re,ne||re,se||re]),b=()=>_.cloneBefore({value:oe.join(" ")});if(oe.length<4||"ltr"===ee)return b(),void $(_,te);const ae=m([re,se||re,ne||re,ie||se||re]),s=()=>_.cloneBefore({value:ae.join(" ")});if("rtl"===ee)return s(),void $(_,te);t(_,"ltr").append(b()),t(_,"rtl").append(s()),$(_,te)};function $(_,X){X||_.remove()}var B=(_,X,ee,te)=>/^inline-start$/i.test(_.value)?"ltr"===ee?(y(_),void j(_,te)):"rtl"===ee?(w(_),void j(_,te)):(t(_,"ltr").append(y(_)),t(_,"rtl").append(w(_)),void j(_,te)):/^inline-end$/i.test(_.value)?"ltr"===ee?(w(_),void j(_,te)):"rtl"===ee?(y(_),void j(_,te)):(t(_,"ltr").append(w(_)),t(_,"rtl").append(y(_)),void j(_,te)):void 0;function y(_){return _.cloneBefore({value:"left"})}function w(_){return _.cloneBefore({value:"right"})}function j(_,X){X||_.remove()}var z=(_,X,ee,te)=>{if("logical"!==X[0])return _.cloneBefore({prop:"top",value:X[0]}),_.cloneBefore({prop:"right",value:X[1]||X[0]}),_.cloneBefore({prop:"bottom",value:X[2]||X[0]}),_.cloneBefore({prop:"left",value:X[3]||X[1]||X[0]}),void O(_,te);return!X[4]||X[4]===X[2]||"ltr"===ee?(x(_,X),void O(_,te)):"rtl"===ee?(E(_,X),void O(_,te)):(t(_,"ltr").append(x(_,X)),t(_,"rtl").append(E(_,X)),void O(_,te))};function x(_,X){return[_.cloneBefore({prop:"top",value:X[1]}),_.cloneBefore({prop:"left",value:X[2]||X[1]}),_.cloneBefore({prop:"bottom",value:X[3]||X[1]}),_.cloneBefore({prop:"right",value:X[4]||X[2]||X[1]})]}function E(_,X){return[_.cloneBefore({prop:"top",value:X[1]}),_.cloneBefore({prop:"right",value:X[2]||X[1]}),_.cloneBefore({prop:"bottom",value:X[3]||X[1]}),_.cloneBefore({prop:"left",value:X[4]||X[2]||X[1]})]}function O(_,X){X||_.remove()}var q=(_,X,ee,te)=>/^block$/i.test(_.value)?(_.cloneBefore({value:"vertical"}),void A(_,te)):/^inline$/i.test(_.value)?(_.cloneBefore({value:"horizontal"}),void A(_,te)):void 0;function A(_,X){X||_.remove()}var oe=/^(inset|margin|padding)(?:-(block|block-start|block-end|inline|inline-start|inline-end|start|end))$/i,ae=/^inset-/i,C=(_,X,ee)=>_.cloneBefore({prop:`${_.prop.replace(oe,"$1")}${X}`.replace(ae,""),value:ee}),F=(_,X,ee,te)=>{C(_,"-top",X[0]),C(_,"-bottom",X[1]||X[0]),L(_,te)},G=(_,X,ee,te)=>{_.cloneBefore({prop:_.prop.replace(oe,"$1-top").replace(ae,"")}),L(_,te)},H=(_,X,ee,te)=>{_.cloneBefore({prop:_.prop.replace(oe,"$1-bottom").replace(ae,"")}),L(_,te)},I=(_,X,ee,te)=>{const n=()=>[C(_,"-left",X[0]),C(_,"-right",X[1]||X[0])],i=()=>[C(_,"-right",X[0]),C(_,"-left",X[1]||X[0])];return 1===X.length||2===X.length&&X[0]===X[1]||"ltr"===ee?(n(),void L(_,te)):"rtl"===ee?(i(),void L(_,te)):(t(_,"ltr").append(n()),t(_,"rtl").append(i()),void L(_,te))},J=(_,X,ee,te)=>{const n=()=>C(_,"-left",_.value),i=()=>C(_,"-right",_.value);return"ltr"===ee?(n(),void L(_,te)):"rtl"===ee?(i(),void L(_,te)):(t(_,"ltr").append(n()),t(_,"rtl").append(i()),void L(_,te))},K=(_,X,ee,te)=>{const n=()=>C(_,"-right",_.value),i=()=>C(_,"-left",_.value);return"ltr"===ee?(n(),void L(_,te)):"rtl"===ee?(i(),void L(_,te)):(t(_,"ltr").append(n()),t(_,"rtl").append(i()),void L(_,te))};function L(_,X){X||_.remove()}var le=/^(min-|max-)?(block|inline)-(size)$/i,N=(_,X,ee,te)=>{_.cloneBefore({prop:_.prop.replace(le,((_,X,ee)=>`${X||""}${"block"===ee?"height":"width"}`))}),te||_.remove()},Q=(_,X,ee,te)=>/^start$/i.test(_.value)?"ltr"===ee?(R(_),void T(_,te)):"rtl"===ee?(S(_),void T(_,te)):(t(_,"ltr").append(R(_)),t(_,"rtl").append(S(_)),void T(_,te)):/^end$/i.test(_.value)?"ltr"===ee?(S(_),void T(_,te)):"rtl"===ee?(R(_),void T(_,te)):(t(_,"ltr").append(S(_)),t(_,"rtl").append(R(_)),void T(_,te)):void 0;function R(_){return _.cloneBefore({value:"left"})}function S(_){return _.cloneBefore({value:"right"})}function T(_,X){X||_.remove()}function U(_,X){return V(_,/^\s$/,X)}function V(_,X,ee){const te=[];let re="",se=!1,ne=0,ie=-1;for(;++ie<_.length;){const oe=_[ie];"("===oe?ne+=1:")"===oe?ne>0&&(ne-=1):0===ne&&X.test(oe)&&(se=!0),se?(ee&&!re.trim()||te.push(ee?re.trim():re),ee||te.push(oe),re="",se=!1):re+=oe}return""!==re&&te.push(ee?re.trim():re),te}var W=(_,X,ee,te)=>{const re=[],se=[];var ne,ie;return(ne=_.value,V(ne,/^,$/,ie)).forEach((_=>{let X=!1;U(_).forEach(((_,ee,te)=>{_ in ue&&(X=!0,ue[_].ltr.forEach((_=>{const X=te.slice();X.splice(ee,1,_),re.length&&!/^,$/.test(re[re.length-1])&&re.push(","),re.push(X.join(""))})),ue[_].rtl.forEach((_=>{const X=te.slice();X.splice(ee,1,_),se.length&&!/^,$/.test(se[se.length-1])&&se.push(","),se.push(X.join(""))})))})),X||(re.push(_),se.push(_))})),re.length&&"ltr"===ee?(te&&_.cloneBefore({}),void(_.value=re.join(""))):se.length&&"rtl"===ee?(te&&_.cloneBefore({}),void(_.value=se.join(""))):re.join("")!==se.join("")?(t(_,"ltr").append(_.cloneBefore({value:re.join("")})),t(_,"rtl").append(_.cloneBefore({value:se.join("")})),void function(_,X){X||_.remove()}(_,te)):void 0};const ue={"block-size":{ltr:["height"],rtl:["height"]},"inline-size":{ltr:["width"],rtl:["width"]},"margin-block-end":{ltr:["margin-bottom"],rtl:["margin-bottom"]},"margin-block-start":{ltr:["margin-top"],rtl:["margin-top"]},"margin-block":{ltr:["margin-top","margin-bottom"],rtl:["margin-top","margin-bottom"]},"margin-inline-end":{ltr:["margin-right"],rtl:["margin-left"]},"margin-inline-start":{ltr:["margin-left"],rtl:["margin-right"]},"margin-inline":{ltr:["margin-left","margin-right"],rtl:["margin-left","margin-right"]},"inset-block-end":{ltr:["bottom"],rtl:["bottom"]},"inset-block-start":{ltr:["top"],rtl:["top"]},"inset-block":{ltr:["top","bottom"],rtl:["top","bottom"]},"inset-inline-end":{ltr:["right"],rtl:["left"]},"inset-inline-start":{ltr:["left"],rtl:["right"]},"inset-inline":{ltr:["left","right"],rtl:["left","right"]},inset:{ltr:["top","right","bottom","left"],rtl:["top","right","bottom","left"]},"padding-block-end":{ltr:["padding-bottom"],rtl:["padding-bottom"]},"padding-block-start":{ltr:["padding-top"],rtl:["padding-top"]},"padding-block":{ltr:["padding-top","padding-bottom"],rtl:["padding-top","padding-bottom"]},"padding-inline-end":{ltr:["padding-right"],rtl:["padding-left"]},"padding-inline-start":{ltr:["padding-left"],rtl:["padding-right"]},"padding-inline":{ltr:["padding-left","padding-right"],rtl:["padding-left","padding-right"]},"border-block-color":{ltr:["border-top-color","border-bottom-color"],rtl:["border-top-color","border-bottom-color"]},"border-block-end-color":{ltr:["border-bottom-color"],rtl:["border-bottom-color"]},"border-block-end-style":{ltr:["border-bottom-style"],rtl:["border-bottom-style"]},"border-block-end-width":{ltr:["border-bottom-width"],rtl:["border-bottom-width"]},"border-block-end":{ltr:["border-bottom"],rtl:["border-bottom"]},"border-block-start-color":{ltr:["border-top-color"],rtl:["border-top-color"]},"border-block-start-style":{ltr:["border-top-style"],rtl:["border-top-style"]},"border-block-start-width":{ltr:["border-top-width"],rtl:["border-top-width"]},"border-block-start":{ltr:["border-top"],rtl:["border-top"]},"border-block-style":{ltr:["border-top-style","border-bottom-style"],rtl:["border-top-style","border-bottom-style"]},"border-block-width":{ltr:["border-top-width","border-bottom-width"],rtl:["border-top-width","border-bottom-width"]},"border-block":{ltr:["border-top","border-bottom"],rtl:["border-top","border-bottom"]},"border-inline-color":{ltr:["border-left-color","border-right-color"],rtl:["border-left-color","border-right-color"]},"border-inline-end-color":{ltr:["border-right-color"],rtl:["border-left-color"]},"border-inline-end-style":{ltr:["border-right-style"],rtl:["border-left-style"]},"border-inline-end-width":{ltr:["border-right-width"],rtl:["border-left-width"]},"border-inline-end":{ltr:["border-right"],rtl:["border-left"]},"border-inline-start-color":{ltr:["border-left-color"],rtl:["border-right-color"]},"border-inline-start-style":{ltr:["border-left-style"],rtl:["border-right-style"]},"border-inline-start-width":{ltr:["border-left-width"],rtl:["border-right-width"]},"border-inline-start":{ltr:["border-left"],rtl:["border-right"]},"border-inline-style":{ltr:["border-left-style","border-right-style"],rtl:["border-left-style","border-right-style"]},"border-inline-width":{ltr:["border-left-width","border-right-width"],rtl:["border-left-width","border-right-width"]},"border-inline":{ltr:["border-left","border-right"],rtl:["border-left","border-right"]},"border-end-end-radius":{ltr:["border-bottom-right-radius"],rtl:["border-bottom-left-radius"]},"border-end-start-radius":{ltr:["border-bottom-left-radius"],rtl:["border-bottom-right-radius"]},"border-start-end-radius":{ltr:["border-top-right-radius"],rtl:["border-top-left-radius"]},"border-start-start-radius":{ltr:["border-top-left-radius"],rtl:["border-top-right-radius"]}};function Y(_){let X=_.parent;for(;X;)if("atrule"===X.type){if("keyframes"===X.name)return!0;X=X.parent}else X=X.parent;return!1}function Z(_){_=Object(_);const X=Boolean(_.preserve),ee=!X&&"string"==typeof _.dir&&(/^rtl$/i.test(_.dir)?"rtl":"ltr"),o=_=>te=>{if(Y(te))return;const re=te.parent,se=U(te.value,!0);_(te,se,ee,X),re.nodes.length||re.remove()},b=_=>te=>{if(Y(te))return;const re=te.parent,se=[te.value];_(te,se,ee,X),re.nodes.length||re.remove()};return{postcssPlugin:"postcss-logical-properties",Declaration:{clear:o(B),float:o(B),resize:o(q),"text-align":o(Q),"block-size":o(N),"max-block-size":o(N),"min-block-size":o(N),"inline-size":o(N),"max-inline-size":o(N),"min-inline-size":o(N),margin:o(k),"margin-inline":o(I),"margin-inline-end":o(K),"margin-inline-start":o(J),"margin-block":o(F),"margin-block-end":o(H),"margin-block-start":o(G),inset:o(z),"inset-inline":o(I),"inset-inline-end":o(K),"inset-inline-start":o(J),"inset-block":o(F),"inset-block-end":o(H),"inset-block-start":o(G),padding:o(k),"padding-inline":o(I),"padding-inline-end":o(K),"padding-inline-start":o(J),"padding-block":o(F),"padding-block-end":o(H),"padding-block-start":o(G),"border-block":b(l),"border-block-color":o(l),"border-block-style":o(l),"border-block-width":o(l),"border-block-end":b(i),"border-block-end-color":o(i),"border-block-end-style":o(i),"border-block-end-width":o(i),"border-block-start":b(n),"border-block-start-color":o(n),"border-block-start-style":o(n),"border-block-start-width":o(n),"border-inline":b(d),"border-inline-color":o(d),"border-inline-style":o(d),"border-inline-width":o(d),"border-inline-end":b(a),"border-inline-end-color":o(a),"border-inline-end-style":o(a),"border-inline-end-width":o(a),"border-inline-start":b(p),"border-inline-start-color":o(p),"border-inline-start-style":o(p),"border-inline-start-width":o(p),"border-end-end-radius":o(f),"border-end-start-radius":o(f),"border-start-end-radius":o(f),"border-start-start-radius":o(f),"border-color":o(k),"border-style":o(k),"border-width":o(k),transition:o(W),"transition-property":o(W)}}}Z.postcss=!0,_.exports=Z},94:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));function n(_){if(!_.nodes.length)return void _.remove();const X=_.nodes.filter((_=>"comment"===_.type));X.length===_.nodes.length&&_.replaceWith(...X)}function o(_){const X=_.parent,ee=X.index(_);if(ee){n(X.cloneBefore().removeAll().append(X.nodes.slice(0,ee)))}return X.before(_),X}function r(_,X){if(X<2)throw new Error("n must be greater than 1");if(_.length<2)throw new Error("s must be greater than 1");if(Math.pow(_.length,X)>1e4)throw new Error("Too many combinations when trying to resolve a nested selector with lists, reduce the complexity of your selectors");const ee=[];for(let _=0;_=0;se--){let X=ee[se];if(X>=_.length){if(X=0,ee[se]=0,0===se)return te;ee[se-1]+=1}re[se]=_[X]}te.push(re),ee[ee.length-1]++}}const re=te.default.pseudo({value:":is"});function a(_){const X=_.nodes.filter((_=>"tag"===_.type));X.length>1&&X.slice(1).forEach((_=>{const X=re.clone();_.replaceWith(X),X.append(_)}))}function l(_,X){let ee=[],re=!1;const se=[..._.nodes];for(let _=0;_1){const _=te.default.selector();ee[0].replaceWith(_),ee.slice(1).forEach((_=>{_.remove()})),ee.forEach((X=>{_.append(X)})),c(_),X&&a(_),_.replaceWith(..._.nodes)}ee=[]}}}function c(_){_.nodes.sort(((_,X)=>i(_.value,_.type)-i(X.value,X.type)))}function i(_,X){return"pseudo"===X&&_&&0===_.indexOf("::")?se.pseudoElement:se[X]}const se={universal:0,tag:1,id:2,class:3,attribute:4,selector:5,pseudo:6,pseudoElement:7,string:8,root:9,comment:10,nesting:9999};function u(_){const X=_.map((_=>te.default().astSync(_))).map((_=>d(_))),ee=X[0];for(let _=1;_0){let te={a:0,b:0,c:0};_.nodes.forEach((_=>{const X=d(_);X.a>te.a?te=X:X.ate.b?te=X:X.bte.c&&(te=X))})),X+=te.a,ee+=te.b,re+=te.c}break;case"where":break;case":nth-child":case":nth-last-child":{const se=_.nodes.findIndex((_=>{_.value}));if(se>-1){const ne=d(te.default.selector({nodes:_.nodes.slice(se+1),value:""}));X+=ne.a,ee+=ne.b,re+=ne.c}else X+=X,ee+=ee,re+=re}break;default:ee+=1}else _.nodes&&_.nodes.length>0&&_.nodes.forEach((_=>{const te=d(_);X+=te.a,ee+=te.b,re+=te.c}));return{a:X,b:ee,c:re}}function f(_,X,ee){let re=[];re=u(_)||ee.noIsPseudoSelector?_.map((_=>te.default().astSync(_))):[te.default().astSync(`:is(${_.join(",")})`)];let se=[];for(let _=0;_{ae++})),ae>1&&re.length>1)oe=r(re,ae),ie=oe.length;else{ie=re.length;for(let _=0;_{if("nesting"!==re.type)return;let se=oe[_][X];X++,"root"===se.type&&1===se.nodes.length&&(se=se.nodes[0]);const ne=te.default().astSync(`:is(${se.toString()})`),ie=h(se.nodes[0]),ae=y(se.nodes[0]),le=h(re),ue=y(re);if(ie&&le)return void re.replaceWith(se.clone());if((ie||ae)&&(le||ue)){const _=re.parent;return ie&&"selector"===se.type?re.replaceWith(se.clone().nodes[0]):re.replaceWith(...se.clone().nodes),void(_&&_.nodes.length>1&&(c(_),ee.noIsPseudoSelector||a(_)))}if(ie){const _=re.parent;return re.replaceWith(se.clone().nodes[0]),void(_&&l(_,!ee.noIsPseudoSelector))}if(ae){const _=re.parent;return re.replaceWith(...se.clone().nodes),void(_&&l(_,!ee.noIsPseudoSelector))}if(m(re)){const _=re.parent;return re.replaceWith(...se.clone().nodes),void(_&&l(_,!ee.noIsPseudoSelector))}if(g(re)){const _=re.parent;return re.replaceWith(...se.clone().nodes),void(_&&l(_,!ee.noIsPseudoSelector))}const ce=re.parent;ee.noIsPseudoSelector?re.replaceWith(...se.clone().nodes):re.replaceWith(...ne.clone().nodes),ce&&l(ce,!ee.noIsPseudoSelector)})),se.push(re.toString())}}return se}function h(_){return"combinator"!==_.type&&!(_.parent&&_.parent.nodes.length>1)}function y(_,X=null){if(h(_))return!1;if(!_.parent)return!1;if(!!_.parent.nodes.find((_=>"combinator"===_.type||"comment"===_.type)))return!1;return!(!!_.parent.nodes.find((_=>"nesting"===_.type))&&X&&!y(X))}function m(_){if(!_.parent)return!1;if(0!==_.parent.nodes.indexOf(_))return!1;for(let X=1;X<_.parent.nodes.length;X++)if("combinator"===_.parent.nodes[X].type&&" "!==_.parent.nodes[X].value&&">"!==_.parent.nodes[X].value)return!1;return!0}function g(_){if(h(_))return!0;if(!_.parent)return!1;for(let X=0;X<_.parent.nodes.length;X++)if("nesting"!==!_.parent.nodes[X].type&&(_.parent.nodes[X].prev()||_.parent.nodes[X].next())){if(_.parent.nodes[X].prev()&&"combinator"!==_.parent.nodes[X].prev().type)return!1;if(_.parent.nodes[X].next()&&"combinator"!==_.parent.nodes[X].next().type)return!1}return!0}const b=_=>{let X=[],ee="",te=!1,re=0,se=!1,ne=!1;for(let ie of _)ne?ne=!1:"\\"===ie?ne=!0:se?ie===se&&(se=!1):'"'===ie||"'"===ie?se=ie:"("===ie?re+=1:")"===ie?re>0&&(re-=1):0===re&&","===ie&&(te=!0),te?(""!==ee&&X.push(ee.trim()),ee="",te=!1):ee+=ie;return X.push(ee.trim()),X};var ne=["container","document","media","supports"];function S(_){const X=o(_);var ee,te;_.params=(ee=X.params,te=_.params,b(ee).map((_=>b(te).map((X=>`${_} and ${X}`)).join(", "))).join(", ")),n(X)}function W(_,X){_.each((_=>{(_=>"rule"===_.type&&"rule"===Object(_.parent).type&&_.selectors.every((_=>0===_.trim().indexOf("&")&&-1===_.indexOf("|"))))(_)?function(_,X){const ee=o(_);_.selectors=f(ee.selectors,_.selectors,X),("rule"===_.type&&"rule"===ee.type&&_.selector===ee.selector||"atrule"===_.type&&"atrule"===ee.type&&_.params===ee.params)&&_.append(...ee.nodes),n(ee)}(_,X):(_=>"atrule"===_.type&&"nest"===_.name&&"rule"===Object(_.parent).type&&b(_.params).every((_=>_.split("&").length>=2&&-1===_.indexOf("|"))))(_)?function(_,X,ee){const te=o(_),re=te.clone().removeAll().append(_.nodes);_.replaceWith(re),re.selectors=f(te.selectors,b(_.params),ee),n(te),X(re,ee)}(_,W,X):(_=>"atrule"===_.type&&ne.includes(_.name)&&"rule"===Object(_.parent).type)(_)?function(_,X,ee){const te=o(_),re=te.clone().removeAll().append(_.nodes);_.append(re),n(te),X(re,ee)}(_,W,X):(_=>"atrule"===_.type&&ne.includes(_.name)&&"atrule"===Object(_.parent).type&&_.name===_.parent.name)(_)&&S(_),Object(_.nodes).length&&W(_,X)}))}function w(_){const X=Object(_).noIsPseudoSelector||!1;return{postcssPlugin:"postcss-nesting",Rule(_){W(_,{noIsPseudoSelector:X})}}}w.postcss=!0,_.exports=w},5698:_=>{"use strict";const X=/^overflow/i;const o=_=>{const ee=!("preserve"in Object(_))||Boolean(_.preserve);return{postcssPlugin:"postcss-overflow-shorthand",Declaration:(_,{list:te})=>{X.test(_)&&function(_,X,ee){const[te,re,...se]=_.space(X.value);re&&!se.length&&(X.cloneBefore({prop:`${X.prop}-x`,value:te}),X.cloneBefore({prop:`${X.prop}-y`,value:re}),ee||X.remove())}(te,_,ee)}}};o.postcss=!0,_.exports=o},6681:(_,X,ee)=>{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(2045)),re={preserve:!0};const se=/^place-(content|items|self)/,l=_=>("preserve"in Object(_)&&(re.preserve=Boolean(_.preserve)),{postcssPlugin:"postcss-place",Declaration:(_,{result:X})=>{se.test(_)&&((_,{result:X})=>{const ee=_.prop.match(se)[1];let ne;try{ne=te.default(_.value)}catch(ee){_.warn(X,`Failed to parse value '${_.value}'. Leaving the original value intact.`)}if(void 0===ne)return;let ie=[];ie=ne.nodes.length?ne.nodes.filter((_=>"word"===_.type||"function"===_.type)).map((_=>te.default.stringify(_))):[te.default.stringify(ne)],_.cloneBefore({prop:`align-${ee}`,value:ie[0]}),_.cloneBefore({prop:`justify-${ee}`,value:ie[1]||ie[0]}),re.preserve||_.remove()})(_,{result:X})}});l.postcss=!0,_.exports=l},1097:(_,X,ee)=>{"use strict";var te=ee(4135),re=ee(2760),se=ee(5449),ne=ee(7147),ie=ee(1017),oe=ee(4907),ae=ee(6924),le=ee(3570),ue=ee(4836),ce=ee(2060),pe=ee(7106),fe=ee(5671),de=ee(8806),he=ee(8179),me=ee(50),ge=ee(1426),be=ee(3365),ve=ee(3073),ye=ee(8742),we=ee(6033),xe=ee(9060),ke=ee(3318),Se=ee(6008),_e=ee(8633),Pe=ee(6157),Oe=ee(2520),je=ee(9142),Te=ee(94),Ee=ee(5698),Fe=ee(971),Me=ee(6681),$e=ee(8780),Re=ee(6788),Ae=ee(3181),qe=ee(3991),ze=ee(2238),Ge=ee(434),Ue=ee(4658),He=ee(4719),Ze=ee(3345),Ke=ee(3942),Xe=ee(5378),et=ee(8078),tt=ee(1758);function L(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var rt=L(te),st=L(re),nt=L(se),it=L(ne),ot=L(ie),lt=L(oe),ut=L(ae),ct=L(le),pt=L(ue),ft=L(ce),dt=L(pe),ht=L(fe),mt=L(de),gt=L(he),bt=L(me),vt=L(ge),yt=L(be),wt=L(ve),xt=L(ye),kt=L(we),St=L(xe),_t=L(ke),Pt=L(Se),Ot=L(_e),Ct=L(Pe),jt=L(Oe),Tt=L(je),Et=L(Te),Ft=L(Ee),Mt=L(Fe),$t=L(Me),Rt=L($e),At=L(Re),Dt=L(Ae),qt=L(qe),It=L(ze),Nt=L(Ge),Lt=L(Ue),Bt=L(He),Vt=L(Ze),zt=L(Ke),Wt=L(Xe),Gt=L(et),Ut=L(tt);const Qt={"blank-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-blank-pseudo/README-BROWSER.md","focus-visible-pseudo-class":"https://github.com/WICG/focus-visible","focus-within-pseudo-class":"https://github.com/jsxtools/focus-within/blob/master/README-BROWSER.md","has-pseudo-class":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-has-pseudo/README-BROWSER.md","prefers-color-scheme-query":"https://github.com/csstools/postcss-plugins/blob/main/plugins/css-prefers-color-scheme/README-BROWSER.md"},Yt=["blank-pseudo-class","focus-visible-pseudo-class","focus-within-pseudo-class","has-pseudo-class","prefers-color-scheme-query"];async function Ne(_,X,ee,te){const re=function(_){return`:root {\n${Object.keys(_).reduce(((X,ee)=>(X.push(`\t${ee}: ${_[ee]};`),X)),[]).join("\n")}\n}\n`}(ee),se=function(_){return`${Object.keys(_).reduce(((X,ee)=>(X.push(`@custom-media ${ee} ${_[ee]};`),X)),[]).join("\n")}\n`}(X),ne=function(_){return`${Object.keys(_).reduce(((X,ee)=>(X.push(`@custom-selector ${ee} ${_[ee]};`),X)),[]).join("\n")}\n`}(te),ie=`${se}\n${ne}\n${re}`;await Ve(_,ie)}function Be(_,X){return`\n\t${_}: {\n${Object.keys(X).reduce(((_,ee)=>(_.push(`\t\t'${De(ee)}': '${De(X[ee])}'`),_)),[]).join(",\n")}\n\t}`}function We(_,X){return`export const ${_} = {\n${Object.keys(X).reduce(((_,ee)=>(_.push(`\t'${De(ee)}': '${De(X[ee])}'`),_)),[]).join(",\n")}\n};\n`}function Ce(_,X){return Promise.all([].concat(X).map((async X=>{if(X instanceof Function)await X({customMedia:Ie(_.customMedia),customProperties:Ie(_.customProperties),customSelectors:Ie(_.customSelectors)});else{const ee=X===Object(X)?X:{to:String(X)},te=ee.toJSON||Ie;if("customMedia"in ee||"customProperties"in ee||"customSelectors"in ee)ee.customMedia=te(_.customMedia),ee.customProperties=te(_.customProperties),ee.customSelectors=te(_.customSelectors);else if("custom-media"in ee||"custom-properties"in ee||"custom-selectors"in ee)ee["custom-media"]=te(_.customMedia),ee["custom-properties"]=te(_.customProperties),ee["custom-selectors"]=te(_.customSelectors);else{const X=String(ee.to||""),re=(ee.type||ot.default.extname(ee.to).slice(1)).toLowerCase(),se=te(_.customMedia),ne=te(_.customProperties),ie=te(_.customSelectors);"css"===re&&await Ne(X,se,ne,ie),"js"===re&&await async function(_,X,ee,te){const re=`module.exports = {${Be("customMedia",X)},${Be("customProperties",ee)},${Be("customSelectors",te)}\n};\n`;await Ve(_,re)}(X,se,ne,ie),"json"===re&&await async function(_,X,ee,te){const re=`${JSON.stringify({"custom-media":X,"custom-properties":ee,"custom-selectors":te},null," ")}\n`;await Ve(_,re)}(X,se,ne,ie),"mjs"===re&&await async function(_,X,ee,te){const re=`${We("customMedia",X)}\n${We("customProperties",ee)}\n${We("customSelectors",te)}`;await Ve(_,re)}(X,se,ne,ie)}}})))}function Ie(_){return Object.keys(_).reduce(((X,ee)=>(X[ee]=String(_[ee]),X)),{})}function Ve(_,X){return new Promise(((ee,te)=>{it.default.writeFile(_,X,(_=>{_?te(_):ee()}))}))}function De(_){return _.replace(/\\([\s\S])|(')/g,"\\$1$2").replace(/\n/g,"\\n").replace(/\r/g,"\\r")}function Le(_,X){if(!_)return!1;if("string"==typeof _)return!0;if(Array.isArray(_)){for(let ee=0;ee<_.length;ee++){if("string"==typeof _[ee])return!0;if(_[ee]&&X in Object(_[ee]))return!0}return!1}return X in Object(_)}function Je(_,X,ee){return Math.max(_,Math.min(X,ee))}const Jt=Symbol("insertBefore"),Ht=Symbol("insertAfter"),Zt=Symbol("insertOrder"),Kt=Symbol("plugin");function Qe(_,X,ee){if("insertBefore"!==ee&&"insertAfter"!==ee)return[];const te="insertBefore"===ee?Jt:Ht,re=[];for(const ee in X){if(!Object.hasOwnProperty.call(X,ee))continue;if(!_.find((_=>_.id===ee)))continue;let se=X[ee];Array.isArray(se)||(se=[se]);for(let _=0;_function(_){return!!_[Jt]||!!_[Ht]||!!ir.has(_.id)}(_))).sort(((_,X)=>function(_,X){return _.id===X.id?_[Jt]&&X[Jt]||_[Ht]&&X[Ht]?Je(-1,_[Zt]-X[Zt],1):_[Jt]||X[Ht]?-1:_[Ht]||X[Jt]?1:0:Je(-1,Xt.indexOf(_.id)-Xt.indexOf(X.id),1)}(_,X)))}const or=["ie","edge","firefox","chrome","safari","opera","ios_saf","android","op_mob","and_chr","and_ff","and_uc","samsung","and_qq","baidu","kaios"];function cs(_){if(!_)return[];if(!("browser_support"in _))return["> 0%"];const X=[];return or.forEach((ee=>{const te=_.browser_support[ee];"string"==typeof te&&/^[0-9|.]+$/.test(te)?X.push(`${ee} < ${_.browser_support[ee]}`):X.push(`${ee} >= 1`)})),X}function us(_,X,ee,te){const re=lt.default(_,{ignoreUnknownVersions:!0});switch(X.id){case"is-pseudo-class":return{onComplexSelector:"warning"};case"nesting-rules":if(function(_,X){const ee=cs(_);if(X.some((_=>lt.default(ee,{ignoreUnknownVersions:!0}).some((X=>X===_)))))return!0;return!1}(ee.find((_=>"is-pseudo-class"===_.id)),re))return te.log('Disabling :is on "nesting-rules" due to lack of browser support.'),{noIsPseudoSelector:!0};return{};case"any-link-pseudo-class":if(re.find((_=>_.startsWith("ie ")||_.startsWith("edge "))))return te.log('Adding area[href] fallbacks for ":any-link" support in Edge and IE.'),{subFeatures:{areaHrefNeedsFixing:!0}};return{};default:return{}}}function as(_,X,ee,te){const re=Object(X.features),se=!("enableClientSidePolyfills"in X)||X.enableClientSidePolyfills,ne=Object(X.insertBefore),ie=Object(X.insertAfter),oe=X.browsers,ae=Je(0,function(_){const X=parseInt(_,10);return Number.isNaN(X)?0:X}(X.minimumVendorImplementations),3);ae>0&&te.log(`Using features with ${ae} or more vendor implementations`);const le=function(_,X){let ee=2;if(void 0===_.stage)return X.log(`Using features from Stage ${ee} (default)`),ee;if(!1===_.stage)ee=5;else{let X=parseInt(_.stage,10);Number.isNaN(X)&&(X=0),ee=Je(0,X,5)}return 5===ee?X.log('Stage has been disabled, features will be handled via the "features" option.'):X.log(`Using features from Stage ${ee}`),ee}(X,te);2===le&&ee&&!1===ee.preserve&&(_=JSON.parse(JSON.stringify(_))).forEach((_=>{("blank-pseudo-class"===_.id||"prefers-color-scheme-query"===_.id)&&(_.stage=1)}));const ue=is(_,ne,ie).map((_=>function(_){const X=cs(_);if(_[Jt]||_[Ht]){let ee=_.id;return ee=_.insertBefore?`before-${ee}`:`after-${ee}`,{browsers:X,vendors_implementations:_.vendors_implementations,plugin:_[Kt],id:ee,stage:6}}return{browsers:X,vendors_implementations:_.vendors_implementations,plugin:ir.get(_.id),id:_.id,stage:_.stage}}(_))).filter((_=>0===ae||(!(!_[Jt]&&!_[Ht])||(ae<=_.vendors_implementations||(re[_.id]?(te.log(` ${_.id} does not meet the required vendor implementations but has been enabled by options`),!0):(te.log(` ${_.id} with ${_.vendors_implementations} vendor implementations has been disabled`),!1)))))).filter((_=>{const X=_.stage>=le,ee=se||!Yt.includes(_.id),ne=!1===re[_.id],ie=re[_.id]?re[_.id]:X&ⅇreturn ne?te.log(` ${_.id} has been disabled by options`):X?ee||te.log(` ${_.id} has been disabled by "enableClientSidePolyfills: false".`):ie?te.log(` ${_.id} does not meet the required stage but has been enabled by options`):te.log(` ${_.id} with stage ${_.stage} has been disabled`),ie})).map((X=>function(_,X,ee,te,re,se){let ne,ie;return ne=us(X,te,_,se),!0===ee[te.id]?re&&(ne=Object.assign({},ne,re)):ne=re?Object.assign({},ne,re,ee[te.id]):Object.assign({},ne,ee[te.id]),ne.enableProgressiveCustomProperties=!1,ie=te.plugin.postcss&&"function"==typeof te.plugin?te.plugin(ne):te.plugin&&te.plugin.default&&"function"==typeof te.plugin.default&&te.plugin.default.postcss?te.plugin.default(ne):te.plugin,{browsers:te.browsers,vendors_implementations:te.vendors_implementations,plugin:ie,pluginOptions:ne,id:te.id}}(_,oe,re,X,ee,te))),ce=lt.default(oe,{ignoreUnknownVersions:!0});return ue.filter((_=>{if(_.id in re)return re[_.id];if(function(_){if("importFrom"in Object(_.pluginOptions))switch(_.id){case"custom-media-queries":if(Le(_.pluginOptions.importFrom,"customMedia"))return!0;break;case"custom-properties":if(Le(_.pluginOptions.importFrom,"customProperties"))return!0;break;case"environment-variables":if(Le(_.pluginOptions.importFrom,"environmentVariables"))return!0;break;case"custom-selectors":if(Le(_.pluginOptions.importFrom,"customSelectors"))return!0}if("exportTo"in Object(_.pluginOptions))switch(_.id){case"custom-media-queries":if(Le(_.pluginOptions.exportTo,"customMedia"))return!0;break;case"custom-properties":if(Le(_.pluginOptions.exportTo,"customProperties"))return!0;break;case"environment-variables":if(Le(_.pluginOptions.exportTo,"environmentVariables"))return!0;break;case"custom-selectors":if(Le(_.pluginOptions.exportTo,"customSelectors"))return!0}return!1}(_))return!0;const X=lt.default(_.browsers,{ignoreUnknownVersions:!0}),ee=ce.some((_=>X.some((X=>X===_))));return ee||te.log(`${_.id} disabled due to browser support`),ee}))}class ls{constructor(){this.logs=[]}log(_){this.logs.push(_)}resetLogger(){this.logs.length=0}dumpLogs(_){_&&this.logs.forEach((X=>_.warn(X))),this.resetLogger()}}const ar={"css-blank-pseudo":"blank-pseudo-class","css-has-pseudo":"has-pseudo-class","css-prefers-color-scheme":"prefers-color-scheme-query","postcss-attribute-case-insensitive":"case-insensitive-attributes","postcss-clamp":"clamp","postcss-color-function":"color-function","postcss-color-functional-notation":"color-functional-notation","postcss-color-hex-alpha":"hexadecimal-alpha-notation","postcss-color-rebeccapurple":"rebeccapurple-color","postcss-custom-media":"custom-media-queries","postcss-custom-properties":"custom-properties","postcss-custom-selectors":"custom-selectors","postcss-dir-pseudo-class":"dir-pseudo-class","postcss-double-position-gradients":"double-position-gradients","postcss-env-function":"environment-variables","postcss-focus-visible":"focus-visible-pseudo-class","postcss-focus-within":"focus-within-pseudo-class","postcss-font-format-keywords":"font-format-keywords","postcss-font-variant":"font-variant-property","postcss-gap-properties":"gap-properties","postcss-hwb-function":"hwb-function","postcss-ic-unit":"ic-unit","postcss-image-set-function":"image-set-function","postcss-initial":"all-property","postcss-is-pseudo-class":"is-pseudo-class","postcss-lab-function":"lab-function","postcss-logical":"logical-properties-and-values","postcss-media-minmax":"media-query-ranges","postcss-nesting":"nesting-rules","postcss-normalize-display-values":"display-two-values","postcss-oklab-function":"oklab-function","postcss-opacity-percentage":"opacity-percentage","postcss-overflow-shorthand":"overflow-property","postcss-page-break":"break-properties","postcss-place":"place-properties","postcss-pseudo-class-any-link":"any-link-pseudo-class","postcss-replace-overflow-wrap":"overflow-wrap-property","postcss-selector-not":"not-pseudo-class","postcss-system-ui-font-family":"system-ui-font-family"},lr=(()=>{const _={};for(const[X,ee]of Object.entries(ar))_[ee]=X;return _})();function ds(_,X){let ee="unknown",te=1/0;for(let re=0;re{const X=new ls,ee=Object(_),te=Object.keys(Object(ee.features)),re=ee.browsers,se=function(_){if("importFrom"in _||"exportTo"in _||"preserve"in _){const X={};return"importFrom"in _&&(X.importFrom=_.importFrom),"exportTo"in _&&(X.exportTo={customMedia:{},customProperties:{},customSelectors:{}}),"preserve"in _&&(X.preserve=_.preserve),X}return!1}(ee),ne=as(st.default,ee,se,X),ie=ne.map((_=>_.plugin));!1!==ee.autoprefixer&&ie.push(rt.default(Object.assign({overrideBrowserslist:re},ee.autoprefixer))),ie.push(nt.default()),function(_,X,ee){if(X.debug){ee.log("Enabling the following feature(s):");const X=[];_.forEach((_=>{_.id.startsWith("before")||_.id.startsWith("after")?ee.log(` ${_.id} (injected via options)`):ee.log(` ${_.id}`),void 0!==Qt[_.id]&&X.push(_.id)})),X.length&&(ee.log("These feature(s) need a browser library to work:"),X.forEach((_=>ee.log(` ${_}: ${Qt[_]}`))))}}(ne,ee,X);const u=()=>({postcssPlugin:"postcss-preset-env",OnceExit:function(re,{result:ne}){!function(_,X,ee){const te=Object.keys(lr),re=Object.keys(ar);_.forEach((_=>{if(te.includes(_))return;const se=ds(_,te),ne=ds(_,re);Math.min(se.distance,ne.distance)>10?X.warn(ee`Unknown feature: "${_}", see the list of features https://github.com/csstools/postcss-plugins/blob/main/plugin-packs/postcss-preset-env/FEATURES.md`):se.distance{"use strict";function e(_){return _&&"object"==typeof _&&"default"in _?_:{default:_}}var te=e(ee(6206));function n(_){if(!_||!_.nodes)return;let X=[];const ee=[..._.nodes];for(let _=0;_1){const _=te.default.selector({value:""});X[0].replaceWith(_),X.slice(1).forEach((_=>{_.remove()})),X.forEach((X=>{_.append(X)})),s(_),_.replaceWith(..._.nodes)}X=[]}}}function s(_){_&&_.nodes&&_.nodes.sort(((_,X)=>{if("selector"===_.type&&"selector"===X.type&&_.nodes.length&&X.nodes.length){if(_.nodes[0].type===X.nodes[0].type)return 0;if(re[_.nodes[0].type]re[X.nodes[0].type])return 1}if("selector"===_.type&&_.nodes.length){if(_.nodes[0].type===X.type)return 0;if(re[_.nodes[0].type]re[X.type])return 1}if("selector"===X.type&&X.nodes.length){if(_.type===X.nodes[0].type)return 0;if(re[_.type]re[X.nodes[0].type])return 1}return _.type===X.type?0:re[_.type]{let te=0;if(_.walkPseudos((_=>{":any-link"!==_.value||_.nodes&&_.nodes.length||te++})),!te)return;let re=[];for(let _=0;_{const te=_.clone();te.walkPseudos((_=>{":any-link"!==_.value||_.nodes&&_.nodes.length||_.replaceWith(...X.shift().nodes)})),te.walk((_=>{"nodes"in _&&(_.nodes.forEach((_=>{n(_)})),n(_))})),ee.push(te.toString())}))})).processSync(_),ee}const oe=/:any-link/;function p(_){const X={preserve:!0,..._},ee={areaHrefNeedsFixing:!1,...Object(X.subFeatures)};return{postcssPlugin:"postcss-pseudo-class-any-link",Rule(_,{result:te}){if(!oe.test(_.selector))return;const re=_.raws.selector&&_.raws.selector.raw||_.selector;":"!==re[re.length-1]&&function(_,X,ee,te){let re=[],se=[];try{for(let X=0;X<_.selectors.length;X++){const ee=_.selectors[X],ne=u(ee,te);ne.length?re.push(...ne):se.push(ee)}}catch(ee){return void _.warn(X,`Failed to parse selector : ${_.selector}`)}re.length&&(_.cloneBefore({selectors:re}),ee?se.length&&_.cloneBefore({selectors:se}):se.length?_.selectors=se:_.remove())}(_,te,X.preserve,ee.areaHrefNeedsFixing)}}}p.postcss=!0,_.exports=p},2760:_=>{"use strict";_.exports=JSON.parse('[{"id":"all-property","title":"`all` Property","description":"A property for defining the reset of all properties of an element","specification":"https://www.w3.org/TR/css-cascade-3/#all-shorthand","stage":4,"browser_support":{"edge":"79","firefox":"27","chrome":"37","safari":"9.1","opera":"24","ios_saf":"9.3","android":"4.4.3","op_mob":"64","and_chr":"37","and_ff":"27","and_uc":"12.12","samsung":"4","and_qq":"10.4","baidu":"7.12","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/all"},"example":"a {\\n all: initial;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/maximkoretskiy/postcss-initial"}],"vendors_implementations":3},{"id":"any-link-pseudo-class","title":"`:any-link` Hyperlink Pseudo-Class","description":"A pseudo-class for matching anchor elements independent of whether they have been visited","specification":"https://www.w3.org/TR/selectors-4/#any-link-pseudo","stage":2,"browser_support":{"chrome":"1","and_chr":"18","edge":"79","firefox":"1","and_ff":"4","opera":"15","op_mob":"14","safari":"3","ios_saf":"1","samsung":"1.0","android":"65"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:any-link"},"example":"nav :any-link > span {\\n background-color: yellow;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-pseudo-class-any-link"}],"vendors_implementations":3},{"id":"blank-pseudo-class","title":"`:blank` Empty-Value Pseudo-Class","description":"A pseudo-class for matching form elements when they are empty","specification":"https://www.w3.org/TR/selectors-4/#blank","stage":2,"browser_support":{},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:blank"},"example":"input:blank {\\n background-color: yellow;\\n}","polyfills":[{"type":"JavaScript Library","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/css-blank-pseudo"},{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/css-blank-pseudo"}],"vendors_implementations":0},{"id":"break-properties","title":"Break Properties","description":"Properties for defining the break behavior between and within boxes","specification":"https://www.w3.org/TR/css-break-3/#breaking-controls","stage":3,"browser_support":{"ie":"10","edge":"12","safari":"10","opera":"11.1","ios_saf":"10","op_mini":"all","op_mob":"11.1","ie_mob":"10","and_uc":"12.12","samsung":"5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/break-after"},"example":"a {\\n break-inside: avoid;\\n break-before: avoid-column;\\n break-after: always;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/shrpne/postcss-page-break"}],"vendors_implementations":1},{"id":"cascade-layers","title":"CSS Cascade Layers","description":"The `@layer` at-rule allows authors to explicitly layer their styles in the cascade, before specificity and order of appearance are considered.","specification":"https://www.w3.org/TR/css-cascade-5/#layering","stage":2,"browser_support":{"edge":"99","firefox":"97","chrome":"99","safari":"15.4","ios_saf":"15.4","android":"99","and_chr":"99"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/@layer"},"example":"/* Un-layered styles have the highest priority */\\na {\\n color: mediumvioletred;\\n}\\n\\n@layer defaults {\\n a { color: maroon; }\\n}","polyfills":[],"vendors_implementations":3},{"id":"case-insensitive-attributes","title":"Case-Insensitive Attributes","description":"An attribute selector matching attribute values case-insensitively","specification":"https://www.w3.org/TR/selectors-4/#attribute-case","stage":2,"browser_support":{"edge":"79","firefox":"47","chrome":"49","safari":"9","opera":"36","ios_saf":"9","android":"49","op_mob":"64","and_chr":"49","and_ff":"47","and_uc":"12.12","samsung":"5","and_qq":"10.4","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/Attribute_selectors"},"example":"[frame=hsides i] {\\n border-style: solid none;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/Semigradsky/postcss-attribute-case-insensitive"}],"vendors_implementations":3},{"id":"clamp","title":"`clamp` Function","description":"The clamp() CSS function clamps a value between an upper and lower bound. It enables selecting a middle value within a range of values between a defined minimum and maximum.","specification":"https://www.w3.org/TR/css-values-4/#funcdef-clamp","stage":2,"browser_support":{"chrome":"79","and_chr":"79","edge":"79","firefox":"75","and_ff":"79","opera":"66","op_mob":"57","safari":"13.1","ios_saf":"13.4","samsung":"12.0","android":"79"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/clamp()"},"example":"button {\\n font-size: clamp(1rem, 2.5vw, 2rem);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/polemius/postcss-clamp"}],"vendors_implementations":3},{"id":"color-adjust","title":"`color-adjust` Property","description":"The color-adjust property is a non-standard CSS extension that can be used to force printing of background colors and images","specification":"https://www.w3.org/TR/css-color-4/#color-adjust","stage":2,"browser_support":{"firefox":"48","and_ff":"48","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color-adjust"},"example":".background {\\n background-color:#ccc;\\n}\\n.background.color-adjust {\\n color-adjust: economy;\\n}\\n.background.color-adjust-exact {\\n color-adjust: exact;\\n}","vendors_implementations":1},{"id":"color-contrast","title":"`color-contrast()` Function","description":"A function for choosing the color that contrasts the most.","specification":"https://www.w3.org/TR/css-color-5/#colorcontrast","stage":2,"browser_support":{},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color-contrast()"},"example":"p {\\n color: color-contrast(wheat vs tan, sienna, var(--myAccent), #d2691e);\\n}","polyfills":[],"vendors_implementations":0},{"id":"color-function","title":"`color()` Function","description":"A function that allows a color to be specified in a particular, specified color space rather than the implicit sRGB color space that most of the other color functions operate in.","specification":"https://www.w3.org/TR/css-color-4/#funcdef-color","stage":2,"browser_support":{"safari":"15","ios_saf":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/color()"},"example":"p {\\n color: color(display-p3 1 0.5 0);\\n color: color(display-p3 1 0.5 0 / .5);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-function"}],"vendors_implementations":1},{"id":"color-functional-notation","title":"Color Functional Notation","description":"A space and slash separated notation for specifying colors","specification":"https://www.w3.org/TR/css-color-4/#funcdef-rgb","stage":2,"browser_support":{"chrome":"65","and_chr":"65","edge":"79","firefox":"52","and_ff":"52","opera":"52","op_mob":"47","safari":"12.1","ios_saf":"12.2","samsung":"9.0","android":"65"},"example":"em {\\n background-color: hsl(120deg 100% 25%);\\n color: rgb(0 255 0);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-functional-notation"}],"vendors_implementations":3},{"id":"color-mix","title":"`color-mix()` Function","description":"A function for mixing colors","specification":"https://www.w3.org/TR/css-color-5/#color-mix","stage":2,"browser_support":{},"example":"p {\\n color: color-mix(in lch, purple 50%, plum 50%);\\n}","polyfills":[],"vendors_implementations":0},{"id":"color-mod-function","title":"`color-mod()` Function","description":"A function for modifying colors","specification":"https://www.w3.org/TR/css-color-4/#funcdef-color-mod","stage":-1,"browser_support":{},"example":"p {\\n color: color-mod(black alpha(50%));\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-color-mod-function"}],"vendors_implementations":0},{"id":"container-queries","title":"Container Queries","description":"New container property and container at rule to make changes depending on the container\'s size","specification":"https://www.w3.org/TR/css-contain-3/#container-queries","stage":0,"browser_support":{},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Container_Queries"},"example":".container {\\n contain: layout inline-size;\\n}\\n\\n@container (min-width: 700px) {\\n .container {\\n /* styles applied when a container is at least 700px */\\n }\\n}","polyfills":[{"type":"JavaScript Library","link":"https://www.npmjs.com/package/container-query-polyfill"}],"vendors_implementations":0},{"id":"custom-media-queries","title":"Custom Media Queries","description":"An at-rule for defining aliases that represent media queries","specification":"https://www.w3.org/TR/mediaqueries-5/#at-ruledef-custom-media","stage":2,"browser_support":{},"example":"@custom-media --narrow-window (max-width: 30em);\\n\\n@media (--narrow-window) {}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-custom-media"}],"vendors_implementations":0},{"id":"custom-properties","title":"Custom Properties","description":"A syntax for defining custom values accepted by all CSS properties","specification":"https://www.w3.org/TR/css-variables-1/","stage":3,"browser_support":{"edge":"16","firefox":"31","chrome":"49","safari":"10","opera":"36","ios_saf":"10","android":"49","op_mob":"64","and_chr":"49","and_ff":"31","and_uc":"12.12","samsung":"5","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/var"},"example":":root {\\n --some-length: 32px;\\n\\n height: var(--some-length);\\n width: var(--some-length);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-custom-properties"}],"vendors_implementations":3},{"id":"custom-property-sets","title":"Custom Property Sets","description":"A syntax for storing properties in named variables, referenceable in other style rules","specification":"https://tabatkins.github.io/specs/css-apply-rule/","stage":-1,"browser_support":{},"example":"img {\\n --some-length-styles: {\\n height: 32px;\\n width: 32px;\\n };\\n\\n @apply --some-length-styles;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/pascalduez/postcss-apply"}],"vendors_implementations":0},{"id":"custom-selectors","title":"Custom Selectors","description":"An at-rule for defining aliases that represent selectors","specification":"https://drafts.csswg.org/css-extensions/#custom-selectors","stage":1,"browser_support":{},"example":"@custom-selector :--heading h1, h2, h3, h4, h5, h6;\\n\\narticle :--heading + p {}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-custom-selectors"}],"vendors_implementations":0},{"id":"dir-pseudo-class","title":"`:dir` Directionality Pseudo-Class","description":"A pseudo-class for matching elements based on their directionality","specification":"https://www.w3.org/TR/selectors-4/#dir-pseudo","stage":2,"browser_support":{"firefox":"49","and_ff":"49"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:dir"},"example":"blockquote:dir(rtl) {\\n margin-right: 10px;\\n}\\n\\nblockquote:dir(ltr) {\\n margin-left: 10px;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-dir-pseudo-class"}],"vendors_implementations":1},{"id":"display-two-values","title":"Two values syntax for `display`","description":"Syntax that allows definition of outer and inner displays types for an element","specification":"https://www.w3.org/TR/css-display-3/#the-display-properties","stage":2,"browser_support":{"firefox":"70","safari":"15","ios_saf":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/display/two-value_syntax_of_display"},"example":".element {\\n display: inline flow-root;\\n display: inline flex;\\n display: block grid;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-normalize-display-values"}],"vendors_implementations":2},{"id":"double-position-gradients","title":"Double Position Gradients","description":"A syntax for using two positions in a gradient.","specification":"https://www.w3.org/TR/css-images-4/#color-stop-syntax","stage":2,"browser_support":{"chrome":"72","and_chr":"72","edge":"79","firefox":"83","and_ff":"83","opera":"60","op_mob":"51","safari":"12.1","ios_saf":"12.2","samsung":"11.0","android":"72"},"example":".pie_chart {\\n background-image: conic-gradient(yellowgreen 40%, gold 0deg 75%, #f06 0deg);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-double-position-gradients"}],"vendors_implementations":3},{"id":"environment-variables","title":"Custom Environment Variables","description":"A syntax for using custom values accepted by CSS globally","specification":"https://drafts.csswg.org/css-env-1/","stage":0,"browser_support":{"edge":"79","firefox":"65","chrome":"69","safari":"11.1","opera":"56","ios_saf":"11.3","android":"69","op_mob":"64","and_chr":"69","and_ff":"65","samsung":"10.1"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/env"},"example":"@media (max-width: env(--brand-small)) {\\n body {\\n padding: env(--brand-spacing);\\n }\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-env-function"}],"vendors_implementations":3},{"id":"fangsong-font-family","title":"`fangsong` Font Family","description":"A generic font used for Fang Song (仿宋) typefaces in Chinese","specification":"https://www.w3.org/TR/css-fonts-4/#fangsong-def","stage":2,"browser_support":{},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Syntax"},"example":"body {\\n font-family: fangsong;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/JLHwung/postcss-font-family-fangsong"}],"vendors_implementations":0},{"id":"focus-visible-pseudo-class","title":"`:focus-visible` Focus-Indicated Pseudo-Class","description":"A pseudo-class for matching focused elements that indicate that focus to a user","specification":"https://www.w3.org/TR/selectors-4/#focus-visible-pseudo","stage":2,"browser_support":{"chrome":"86","and_chr":"86","edge":"86","firefox":"85","and_ff":"85","opera":"72","op_mob":"61","samsung":"14.0","android":"86"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-visible"},"example":":focus:not(:focus-visible) {\\n outline: 0;\\n}","polyfills":[{"type":"JavaScript Library","link":"https://github.com/WICG/focus-visible"},{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-focus-visible"}],"vendors_implementations":2},{"id":"focus-within-pseudo-class","title":"`:focus-within` Focus Container Pseudo-Class","description":"A pseudo-class for matching elements that are either focused or that have focused descendants","specification":"https://www.w3.org/TR/selectors-4/#focus-within-pseudo","stage":2,"browser_support":{"edge":"79","firefox":"52","chrome":"60","safari":"10.1","opera":"47","ios_saf":"10.3","android":"60","op_mob":"64","and_chr":"60","and_ff":"52","samsung":"8.2","and_qq":"10.4"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:focus-within"},"example":"form:focus-within {\\n background: rgba(0, 0, 0, 0.3);\\n}","polyfills":[{"type":"JavaScript Library","link":"https://github.com/jsxtools/focus-within"},{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-focus-within"}],"vendors_implementations":3},{"id":"font-format-keywords","title":"Font `format()` Keywords","description":"A syntax for specifying font format as a keyword in `@font-face` rule’s `format()` function","specification":"https://www.w3.org/TR/css-fonts-4/#font-format-values","stage":1,"browser_support":{"safari":"4","ios_saf":"5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face"},"example":"@font-face {\\n src: url(file.woff2) format(woff2);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/valtlai/postcss-font-format-keywords"}],"vendors_implementations":1},{"id":"font-variant-property","title":"`font-variant` Property","description":"A property for defining the usage of alternate glyphs in a font","specification":"https://www.w3.org/TR/css-fonts-3/#propdef-font-variant","stage":4,"browser_support":{"firefox":"34","safari":"9.1","ios_saf":"9.3","and_ff":"34","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/font-variant"},"example":"h2 {\\n font-variant: small-caps;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-font-variant"}],"vendors_implementations":2},{"id":"gap-properties","title":"Gap Properties","description":"Properties for defining gutters within a layout","specification":"https://www.w3.org/TR/css-grid-1/#gutters","stage":3,"browser_support":{"chrome":"66","and_chr":"66","edge":"16","firefox":"61","and_ff":"61","opera":"53","op_mob":"47","safari":"12","ios_saf":"12","samsung":"9.0","android":"66"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/gap"},"example":".grid-1 {\\n gap: 20px;\\n}\\n\\n.grid-2 {\\n column-gap: 40px;\\n row-gap: 20px;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-gap-properties"}],"vendors_implementations":3},{"id":"gray-function","title":"`gray()` Function","description":"A function for specifying fully desaturated colors","specification":"https://www.w3.org/TR/css-color-4/#funcdef-gray","stage":-1,"browser_support":{},"example":"p {\\n color: gray(50);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-color-gray"}],"vendors_implementations":0},{"id":"grid-layout","title":"Grid Layout","description":"A syntax for using a grid concept to lay out content","specification":"https://www.w3.org/TR/css-grid-1/","stage":3,"browser_support":{"edge":"16","firefox":"54","chrome":"58","safari":"10.1","opera":"44","ios_saf":"10.3","android":"58","op_mob":"64","and_chr":"58","and_ff":"54","and_uc":"12.12","samsung":"6.2","and_qq":"10.4","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/grid"},"example":"section {\\n display: grid;\\n grid-template-columns: 100px 100px 100px;\\n grid-gap: 10px;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/autoprefixer"}],"vendors_implementations":3},{"id":"has-pseudo-class","title":"`:has()` Relational Pseudo-Class","description":"A pseudo-class for matching ancestor and sibling elements","specification":"https://www.w3.org/TR/selectors-4/#has-pseudo","stage":2,"browser_support":{"safari":"15.4","ios_saf":"15.4"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:has"},"example":"a:has(> img) {\\n display: block;\\n}","polyfills":[{"type":"JavaScript Library","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/css-has-pseudo"},{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/css-has-pseudo"},{"type":"Experimental Library","link":"https://github.com/csstools/postcss-plugins/tree/main/experimental/css-has-pseudo"}],"vendors_implementations":1},{"id":"hexadecimal-alpha-notation","title":"Hexadecimal Alpha Notation","description":"A 4 & 8 character hex color notation for specifying the opacity level","specification":"https://www.w3.org/TR/css-color-4/#hex-notation","stage":2,"browser_support":{"edge":"79","firefox":"49","chrome":"62","safari":"10","opera":"52","ios_saf":"10","android":"62","op_mob":"64","and_chr":"62","and_ff":"49","samsung":"8.2"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Syntax_2"},"example":"section {\\n background-color: #f3f3f3f3;\\n color: #0003;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-hex-alpha"}],"vendors_implementations":3},{"id":"hwb-function","title":"`hwb()` Function","description":"A function for specifying colors by hue and then a degree of whiteness and blackness to mix into it","specification":"https://www.w3.org/TR/css-color-4/#funcdef-hwb","stage":2,"browser_support":{"firefox":"96","and_ff":"96","safari":"15","ios_saf":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/hwb()"},"example":"p {\\n color: hwb(120 44% 50%);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-hwb-function"}],"vendors_implementations":2},{"id":"ic-unit","title":"`ic` length unit","description":"Equal to the used advance measure of the \\"水\\" (CJK water ideograph, U+6C34) glyph found in the font used to render it","specification":"https://www.w3.org/TR/css-values-4/#ic","stage":2,"browser_support":{"firefox":"97","and_ff":"97","safari":"15.4","ios_saf":"15.4"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Values_and_Units#dimensions"},"example":"p {\\n text-indent: 2ic;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-ic-unit"}],"vendors_implementations":2},{"id":"image-set-function","title":"`image-set()` Function","description":"A function for specifying image sources based on the user’s resolution","specification":"https://www.w3.org/TR/css-images-4/#image-set-notation","stage":2,"browser_support":{},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/image-set"},"example":"p {\\n background-image: image-set(\\n \\"foo.png\\" 1x,\\n \\"foo-2x.png\\" 2x,\\n \\"foo-print.png\\" 600dpi\\n );\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-image-set-function"}],"vendors_implementations":0},{"id":"in-out-of-range-pseudo-class","title":"`:in-range` and `:out-of-range` Pseudo-Classes","description":"A pseudo-class for matching elements that have range limitations","specification":"https://www.w3.org/TR/selectors-4/#range-pseudos","stage":2,"browser_support":{"edge":"79","firefox":"50","chrome":"53","safari":"10.1","opera":"40","ios_saf":"10.3","android":"53","op_mob":"64","and_chr":"53","and_ff":"50","and_uc":"12.12","samsung":"5","and_qq":"10.4","baidu":"7.12"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:in-range"},"example":"input:in-range {\\n background-color: rgba(0, 255, 0, 0.25);\\n}\\ninput:out-of-range {\\n background-color: rgba(255, 0, 0, 0.25);\\n border: 2px solid red;\\n}","vendors_implementations":3},{"id":"is-pseudo-class","title":"`:is()` Matches-Any Pseudo-Class","description":"A pseudo-class for matching elements in a selector list","specification":"https://www.w3.org/TR/selectors-4/#matches-pseudo","stage":2,"browser_support":{"edge":"88","firefox":"78","chrome":"88","safari":"14","opera":"75","ios_saf":"14","android":"88","op_mob":"64","and_chr":"88","and_ff":"78","samsung":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:is"},"example":"p:is(:first-child, .special) {\\n margin-top: 1em;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-is-pseudo-class"}],"vendors_implementations":3},{"id":"lab-function","title":"`lab()` Function","description":"A function for specifying colors expressed in the CIE Lab color space","specification":"https://www.w3.org/TR/css-color-4/#funcdef-lab","stage":2,"browser_support":{"safari":"15","ios_saf":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/lab()"},"example":"body {\\n color: lab(80% 50 20);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-lab-function"}],"vendors_implementations":1},{"id":"lch-function","title":"`lch()` Function","description":"A function for specifying colors expressed in the CIE Lab color space with chroma and hue","specification":"https://www.w3.org/TR/css-color-4/#funcdef-lch","stage":2,"browser_support":{"safari":"15","ios_saf":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value/lch()"},"example":"body {\\n color: lch(53% 105 40);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-lab-function"}],"vendors_implementations":1},{"id":"logical-properties-and-values","title":"Logical Properties and Values","description":"Flow-relative (left-to-right or right-to-left) properties and values","specification":"https://www.w3.org/TR/css-logical-1/","stage":2,"browser_support":{"edge":"89","firefox":"66","chrome":"89","safari":"15","opera":"76","ios_saf":"15","android":"89","op_mob":"64","and_chr":"89","and_ff":"66","samsung":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_Logical_Properties"},"example":"span:first-child {\\n float: inline-start;\\n margin-inline-start: 10px;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-logical"}],"vendors_implementations":3},{"id":"matches-pseudo-class","title":"`:matches()` Matches-Any Pseudo-Class","description":"A pseudo-class for matching elements in a selector list","specification":"https://www.w3.org/TR/selectors-4/#selectordef-matches","stage":-1,"browser_support":{"edge":"88","firefox":"78","chrome":"88","safari":"14","opera":"75","ios_saf":"14","android":"88","op_mob":"64","and_chr":"88","and_ff":"78","samsung":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:is"},"example":"p:matches(:first-child, .special) {\\n margin-top: 1em;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-selector-matches"}],"vendors_implementations":3},{"id":"media-query-ranges","title":"Media Query Ranges","description":"A syntax for defining media query ranges using ordinary comparison operators","specification":"https://www.w3.org/TR/mediaqueries-4/#range-context","stage":3,"browser_support":{},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/Media_Queries/Using_media_queries#Syntax_improvements_in_Level_4"},"example":"@media (width < 480px) {}\\n\\n@media (480px <= width < 768px) {}\\n\\n@media (width >= 768px) {}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-media-minmax"}],"vendors_implementations":0},{"id":"nesting-rules","title":"Nesting Rules","description":"A syntax for nesting relative rules within rules","specification":"https://www.w3.org/TR/css-nesting-1/","stage":1,"browser_support":{},"example":"article {\\n & p {\\n color: #333;\\n }\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-nesting"}],"vendors_implementations":0},{"id":"not-pseudo-class","title":"`:not()` Negation List Pseudo-Class","description":"A pseudo-class for ignoring elements in a selector list","specification":"https://www.w3.org/TR/selectors-4/#negation-pseudo","stage":2,"browser_support":{"edge":"88","firefox":"84","chrome":"88","safari":"9","opera":"75","ios_saf":"9","android":"88","op_mob":"64","and_chr":"88","and_ff":"84","samsung":"15"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:not"},"example":"p:not(:first-child, .special) {\\n margin-top: 1em;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/postcss/postcss-selector-not"}],"vendors_implementations":3},{"id":"oklab-function","title":"`oklab` and `oklch` color functions","description":"Functions that allow colors to be expressed in OKLab and OKLCH.","specification":"https://www.w3.org/TR/css-color-4/#specifying-oklab-oklch","stage":2,"browser_support":{},"example":"p {\\n color: oklab(72.322% -0.0465 -0.1150);\\n color: oklch(72.322% 0.12403 247.996);\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-oklab-function"}],"vendors_implementations":0},{"id":"opacity-percentage","title":"Support for percentages for `opacity`","description":"Syntactic sugar to use percentages instead of a float between 0 and 1.","specification":"https://www.w3.org/TR/css-color-4/#transparency","stage":2,"browser_support":{"chrome":"78","and_chr":"78","edge":"79","firefox":"70","samsung":"12.0","android":"78"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/opacity"},"example":"img {\\n opacity: 90%;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/mrcgrtz/postcss-opacity-percentage"}],"vendors_implementations":2},{"id":"overflow-property","title":"`overflow` Shorthand Property","description":"A property for defining `overflow-x` and `overflow-y`","specification":"https://www.w3.org/TR/css-overflow-3/#propdef-overflow","stage":2,"browser_support":{"chrome":"68","and_chr":"68","edge":"79","firefox":"61","and_ff":"61","opera":"55","op_mob":"48","samsung":"10.0","android":"68"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/overflow"},"example":"html {\\n overflow: hidden auto;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-overflow-shorthand"}],"vendors_implementations":2},{"id":"overflow-wrap-property","title":"`overflow-wrap` Property","description":"A property for defining whether to insert line breaks within words to prevent overflowing","specification":"https://www.w3.org/TR/css-text-3/#overflow-wrap-property","stage":2,"browser_support":{"edge":"18","firefox":"49","chrome":"23","safari":"6.1","opera":"12.1","ios_saf":"7","android":"4.4","bb":"10","op_mob":"64","and_chr":"23","and_ff":"49","and_uc":"12.12","samsung":"4","and_qq":"10.4","baidu":"7.12"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/overflow-wrap"},"example":"p {\\n overflow-wrap: break-word;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/mattdimu/postcss-replace-overflow-wrap"}],"vendors_implementations":3},{"id":"overscroll-behavior-property","title":"`overscroll-behavior` Property","description":"Properties for controlling when the scroll position of a scroll container reaches the edge of a scrollport","specification":"https://www.w3.org/TR/css-overscroll-1/","stage":1,"browser_support":{"edge":"79","firefox":"59","chrome":"65","opera":"52","android":"65","op_mob":"64","and_chr":"65","and_ff":"59","samsung":"8.2","and_qq":"10.4"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/overscroll-behavior"},"example":".messages {\\n height: 220px;\\n overflow: auto;\\n overscroll-behavior-y: contain;\\n}\\n\\nbody {\\n margin: 0;\\n overscroll-behavior: none;\\n}","vendors_implementations":2},{"id":"place-properties","title":"Place Properties","description":"Properties for defining alignment within a layout","specification":"https://www.w3.org/TR/css-align-3/#place-items-property","stage":2,"browser_support":{"chrome":"59","and_chr":"59","edge":"79","firefox":"53","and_ff":"53","opera":"46","op_mob":"43","safari":"11","ios_saf":"11","samsung":"7.0","android":"59"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/place-content"},"example":".example {\\n place-content: flex-end;\\n place-items: center / space-between;\\n place-self: flex-start / center;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-place"}],"vendors_implementations":3},{"id":"prefers-color-scheme-query","title":"`prefers-color-scheme` Media Query","description":"A media query to detect if the user has requested the system use a light or dark color theme","specification":"https://www.w3.org/TR/mediaqueries-5/#prefers-color-scheme","stage":2,"browser_support":{"edge":"79","firefox":"67","chrome":"76","safari":"12.1","opera":"62","ios_saf":"13","android":"76","op_mob":"64","and_chr":"76","and_ff":"67","samsung":"12"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-color-scheme"},"example":"body {\\n background-color: white;\\n color: black;\\n}\\n\\n@media (prefers-color-scheme: dark) {\\n body {\\n background-color: black;\\n color: white;\\n }\\n}","polyfills":[{"type":"JavaScript Library","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/css-prefers-color-scheme"},{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/css-prefers-color-scheme"}],"vendors_implementations":3},{"id":"prefers-reduced-motion-query","title":"`prefers-reduced-motion` Media Query","description":"A media query to detect if the user has requested less animation and general motion on the page","specification":"https://www.w3.org/TR/mediaqueries-5/#prefers-reduced-motion","stage":2,"browser_support":{"edge":"79","firefox":"63","chrome":"74","safari":"10.1","opera":"64","ios_saf":"10.3","android":"74","op_mob":"64","and_chr":"74","and_ff":"63","samsung":"11.1"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/@media/prefers-reduced-motion"},"example":".animation {\\n animation: vibrate 0.3s linear infinite both; \\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .animation {\\n animation: none;\\n }\\n}","vendors_implementations":3},{"id":"read-only-write-pseudo-class","title":"`:read-only` and `:read-write` selectors","description":"Pseudo-classes to match elements which are considered user-alterable","specification":"https://www.w3.org/TR/selectors-4/#rw-pseudos","stage":2,"browser_support":{"edge":"13","firefox":"78","chrome":"36","safari":"9","opera":"23","ios_saf":"9","android":"36","bb":"10","op_mob":"64","and_chr":"36","and_ff":"78","and_uc":"12.12","samsung":"4","and_qq":"10.4","baidu":"7.12"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:read-only"},"example":"input:read-only {\\n background-color: #ccc;\\n}","vendors_implementations":3},{"id":"rebeccapurple-color","title":"`rebeccapurple` Color","description":"A particularly lovely shade of purple in memory of Rebecca Alison Meyer","specification":"https://www.w3.org/TR/css-color-4/#valdef-color-rebeccapurple","stage":2,"browser_support":{"edge":"12","firefox":"33","chrome":"38","safari":"7","opera":"25","ios_saf":"8","android":"4.4","op_mob":"64","and_chr":"38","and_ff":"33","and_uc":"12.12","samsung":"4","and_qq":"10.4","baidu":"7.12","kaios":"2.5"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/color_value"},"example":"html {\\n color: rebeccapurple;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/csstools/postcss-plugins/tree/main/plugins/postcss-color-rebeccapurple"}],"vendors_implementations":3},{"id":"system-ui-font-family","title":"`system-ui` Font Family","description":"A generic font used to match the user’s interface","specification":"https://www.w3.org/TR/css-fonts-4/#system-ui-def","stage":2,"browser_support":{"edge":"79","firefox":"92","chrome":"56","safari":"11","opera":"43","ios_saf":"11","android":"56","op_mob":"64","and_chr":"56","and_ff":"92","and_uc":"12.12","samsung":"6.2","and_qq":"10.4"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Syntax"},"example":"body {\\n font-family: system-ui;\\n}","polyfills":[{"type":"PostCSS Plugin","link":"https://github.com/JLHwung/postcss-font-family-system-ui"}],"vendors_implementations":3},{"id":"unset-value","title":"`unset` Keyword","description":"The unset CSS keyword resets a property to its inherited value if the property naturally inherits from its parent, and to its initial value if not.","specification":"https://www.w3.org/TR/css-cascade-4/#inherit-initial","stage":3,"browser_support":{"chrome":"41","and_chr":"41","edge":"13","firefox":"27","and_ff":"27","opera":"28","op_mob":"28","safari":"9.1","ios_saf":"9.3","samsung":"4.0","android":"41"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/unset"},"example":"div {\\n border-color: unset;\\n color: unset;\\n}","vendors_implementations":3},{"id":"when-else-rules","title":"When/Else Rules","description":"At-rules for specifying media queries and support queries in a single grammar","specification":"https://www.w3.org/TR/2021/WD-css-conditional-5-20211221/","stage":2,"browser_support":{},"example":"@when media(width >= 640px) and (supports(display: flex) or supports(display: grid)) {\\n /* A */\\n} @else media(pointer: coarse) {\\n /* B */\\n} @else {\\n /* C */\\n}","vendors_implementations":0},{"id":"where-pseudo-class","title":"`:where()` Zero-Specificity Pseudo-Class","description":"A pseudo-class for matching elements in a selector list without contributing specificity","specification":"https://www.w3.org/TR/selectors-4/#where-pseudo","stage":2,"browser_support":{"chrome":"88","and_chr":"88","edge":"88","firefox":"82","and_ff":"82","opera":"74","op_mob":"63","safari":"14","ios_saf":"14","samsung":"15.0","android":"88"},"docs":{"mdn":"https://developer.mozilla.org/en-US/docs/Web/CSS/:where"},"example":"a:where(:not(:hover)) {\\n text-decoration: none;\\n}","vendors_implementations":3}]')},9717:_=>{"use strict";_.exports=JSON.parse('[{"prop":"animation","initial":"${animation-name} ${animation-duration} ${animation-timing-function} ${animation-delay} ${animation-iteration-count} ${animation-direction} ${animation-fill-mode} ${animation-play-state}","combined":true},{"prop":"animation-delay","initial":"0s"},{"prop":"animation-direction","initial":"normal"},{"prop":"animation-duration","initial":"0s"},{"prop":"animation-fill-mode","initial":"none"},{"prop":"animation-iteration-count","initial":"1"},{"prop":"animation-name","initial":"none"},{"prop":"animation-play-state","initial":"running"},{"prop":"animation-timing-function","initial":"ease"},{"prop":"backface-visibility","initial":"visible","basic":true},{"prop":"background","initial":"${background-color} ${background-image} ${background-repeat} ${background-position} / ${background-size} ${background-origin} ${background-clip} ${background-attachment}","combined":true},{"prop":"background-attachment","initial":"scroll"},{"prop":"background-clip","initial":"border-box"},{"prop":"background-color","initial":"transparent"},{"prop":"background-image","initial":"none"},{"prop":"background-origin","initial":"padding-box"},{"prop":"background-position","initial":"0 0"},{"prop":"background-position-x","initial":"0"},{"prop":"background-position-y","initial":"0"},{"prop":"background-repeat","initial":"repeat"},{"prop":"background-size","initial":"auto auto"},{"prop":"border","initial":"${border-width} ${border-style} ${border-color}","combined":true},{"prop":"border-style","initial":"none"},{"prop":"border-width","initial":"medium"},{"prop":"border-color","initial":"currentColor"},{"prop":"border-bottom","initial":"0"},{"prop":"border-bottom-color","initial":"currentColor"},{"prop":"border-bottom-left-radius","initial":"0"},{"prop":"border-bottom-right-radius","initial":"0"},{"prop":"border-bottom-style","initial":"none"},{"prop":"border-bottom-width","initial":"medium"},{"prop":"border-collapse","initial":"separate","basic":true,"inherited":true},{"prop":"border-image","initial":"none","basic":true},{"prop":"border-left","initial":"0"},{"prop":"border-left-color","initial":"currentColor"},{"prop":"border-left-style","initial":"none"},{"prop":"border-left-width","initial":"medium"},{"prop":"border-radius","initial":"0","basic":true},{"prop":"border-right","initial":"0"},{"prop":"border-right-color","initial":"currentColor"},{"prop":"border-right-style","initial":"none"},{"prop":"border-right-width","initial":"medium"},{"prop":"border-spacing","initial":"0","basic":true,"inherited":true},{"prop":"border-top","initial":"0"},{"prop":"border-top-color","initial":"currentColor"},{"prop":"border-top-left-radius","initial":"0"},{"prop":"border-top-right-radius","initial":"0"},{"prop":"border-top-style","initial":"none"},{"prop":"border-top-width","initial":"medium"},{"prop":"bottom","initial":"auto","basic":true},{"prop":"box-shadow","initial":"none","basic":true},{"prop":"box-sizing","initial":"content-box","basic":true},{"prop":"caption-side","initial":"top","basic":true,"inherited":true},{"prop":"clear","initial":"none","basic":true},{"prop":"clip","initial":"auto","basic":true},{"prop":"color","initial":"#000","basic":true},{"prop":"columns","initial":"auto","basic":true},{"prop":"column-count","initial":"auto","basic":true},{"prop":"column-fill","initial":"balance","basic":true},{"prop":"column-gap","initial":"normal","basic":true},{"prop":"column-rule","initial":"${column-rule-width} ${column-rule-style} ${column-rule-color}","combined":true},{"prop":"column-rule-color","initial":"currentColor"},{"prop":"column-rule-style","initial":"none"},{"prop":"column-rule-width","initial":"medium"},{"prop":"column-span","initial":"1","basic":true},{"prop":"column-width","initial":"auto","basic":true},{"prop":"content","initial":"normal","basic":true},{"prop":"counter-increment","initial":"none","basic":true},{"prop":"counter-reset","initial":"none","basic":true},{"prop":"cursor","initial":"auto","basic":true,"inherited":true},{"prop":"direction","initial":"ltr","basic":true,"inherited":true},{"prop":"display","initial":"inline","basic":true},{"prop":"empty-cells","initial":"show","basic":true,"inherited":true},{"prop":"float","initial":"none","basic":true},{"prop":"font","contains":["font-style","font-variant","font-weight","font-stretch","font-size","line-height","font-family"],"basic":true,"inherited":true},{"prop":"font-family","initial":"serif"},{"prop":"font-size","initial":"medium"},{"prop":"font-style","initial":"normal"},{"prop":"font-variant","initial":"normal"},{"prop":"font-weight","initial":"normal"},{"prop":"font-stretch","initial":"normal"},{"prop":"line-height","initial":"normal","inherited":true},{"prop":"height","initial":"auto","basic":true},{"prop":"hyphens","initial":"none","basic":true,"inherited":true},{"prop":"left","initial":"auto","basic":true},{"prop":"letter-spacing","initial":"normal","basic":true,"inherited":true},{"prop":"list-style","initial":"${list-style-type} ${list-style-position} ${list-style-image}","combined":true,"inherited":true},{"prop":"list-style-image","initial":"none"},{"prop":"list-style-position","initial":"outside"},{"prop":"list-style-type","initial":"disc"},{"prop":"margin","initial":"0","basic":true},{"prop":"margin-bottom","initial":"0"},{"prop":"margin-left","initial":"0"},{"prop":"margin-right","initial":"0"},{"prop":"margin-top","initial":"0"},{"prop":"max-height","initial":"none","basic":true},{"prop":"max-width","initial":"none","basic":true},{"prop":"min-height","initial":"0","basic":true},{"prop":"min-width","initial":"0","basic":true},{"prop":"opacity","initial":"1","basic":true},{"prop":"orphans","initial":"2","basic":true},{"prop":"outline","initial":"${outline-width} ${outline-style} ${outline-color}","combined":true},{"prop":"outline-color","initial":"invert"},{"prop":"outline-style","initial":"none"},{"prop":"outline-width","initial":"medium"},{"prop":"overflow","initial":"visible","basic":true},{"prop":"overflow-x","initial":"visible","basic":true},{"prop":"overflow-y","initial":"visible","basic":true},{"prop":"padding","initial":"0","basic":true},{"prop":"padding-bottom","initial":"0"},{"prop":"padding-left","initial":"0"},{"prop":"padding-right","initial":"0"},{"prop":"padding-top","initial":"0"},{"prop":"page-break-after","initial":"auto","basic":true},{"prop":"page-break-before","initial":"auto","basic":true},{"prop":"page-break-inside","initial":"auto","basic":true},{"prop":"perspective","initial":"none","basic":true},{"prop":"perspective-origin","initial":"50% 50%","basic":true},{"prop":"position","initial":"static","basic":true},{"prop":"quotes","initial":"“ ” ‘ ’"},{"prop":"right","initial":"auto","basic":true},{"prop":"tab-size","initial":"8","basic":true,"inherited":true},{"prop":"table-layout","initial":"auto","basic":true},{"prop":"text-align","initial":"left","basic":true,"inherited":true},{"prop":"text-align-last","initial":"auto","basic":true,"inherited":true},{"prop":"text-decoration","initial":"${text-decoration-line}","combined":true},{"prop":"text-decoration-color","initial":"inherited"},{"prop":"text-decoration-color","initial":"currentColor"},{"prop":"text-decoration-line","initial":"none"},{"prop":"text-decoration-style","initial":"solid"},{"prop":"text-indent","initial":"0","basic":true,"inherited":true},{"prop":"text-shadow","initial":"none","basic":true,"inherited":true},{"prop":"text-transform","initial":"none","basic":true,"inherited":true},{"prop":"top","initial":"auto","basic":true},{"prop":"transform","initial":"none","basic":true},{"prop":"transform-origin","initial":"50% 50% 0","basic":true},{"prop":"transform-style","initial":"flat","basic":true},{"prop":"transition","initial":"${transition-property} ${transition-duration} ${transition-timing-function} ${transition-delay}","combined":true},{"prop":"transition-delay","initial":"0s"},{"prop":"transition-duration","initial":"0s"},{"prop":"transition-property","initial":"none"},{"prop":"transition-timing-function","initial":"ease"},{"prop":"unicode-bidi","initial":"normal","basic":true},{"prop":"vertical-align","initial":"baseline","basic":true},{"prop":"visibility","initial":"visible","basic":true,"inherited":true},{"prop":"white-space","initial":"normal","basic":true,"inherited":true},{"prop":"widows","initial":"2","basic":true,"inherited":true},{"prop":"width","initial":"auto","basic":true},{"prop":"word-spacing","initial":"normal","basic":true,"inherited":true},{"prop":"z-index","initial":"auto","basic":true}]')}};var X={};function __nccwpck_require__(ee){var te=X[ee];if(te!==undefined){return te.exports}var re=X[ee]={exports:{}};var se=true;try{_[ee].call(re.exports,re,re.exports,__nccwpck_require__);se=false}finally{if(se)delete X[ee]}return re.exports}(()=>{__nccwpck_require__.o=(_,X)=>Object.prototype.hasOwnProperty.call(_,X)})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var ee=__nccwpck_require__(1097);module.exports=ee})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-preset-env/package.json b/cli/app/node_modules/next/dist/compiled/postcss-preset-env/package.json new file mode 100644 index 00000000000..64d7666c72d --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-preset-env/package.json @@ -0,0 +1 @@ +{"name":"postcss-preset-env","main":"index.cjs","author":"Jonathan Neal ","license":"CC0-1.0"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-scss/package.json b/cli/app/node_modules/next/dist/compiled/postcss-scss/package.json new file mode 100644 index 00000000000..bc1ac76f34e --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-scss/package.json @@ -0,0 +1 @@ +{"name":"postcss-scss","main":"scss-syntax.js","author":"Andrey Sitnik ","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/postcss-scss/scss-syntax.js b/cli/app/node_modules/next/dist/compiled/postcss-scss/scss-syntax.js new file mode 100644 index 00000000000..750fb9e6cee --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-scss/scss-syntax.js @@ -0,0 +1 @@ +(()=>{var e={375:(e,t,r)=>{const{Container:s}=r(977);class NestedDeclaration extends s{constructor(e){super(e);this.type="decl";this.isNested=true;if(!this.nodes)this.nodes=[]}}e.exports=NestedDeclaration},969:(e,t,r)=>{let{Input:s}=r(977);let i=r(199);e.exports=function scssParse(e,t){let r=new s(e,t);let n=new i(r);n.parse();return n.root}},199:(e,t,r)=>{let{Comment:s}=r(977);let i=r(46);let n=r(375);let l=r(381);class ScssParser extends i{createTokenizer(){this.tokenizer=l(this.input)}rule(e){let t=false;let r=0;let s="";for(let i of e){if(t){if(i[0]!=="comment"&&i[0]!=="{"){s+=i[1]}}else if(i[0]==="space"&&i[1].includes("\n")){break}else if(i[0]==="("){r+=1}else if(i[0]===")"){r-=1}else if(r===0&&i[0]===":"){t=true}}if(!t||s.trim()===""||/^[#:A-Za-z-]/.test(s)){super.rule(e)}else{e.pop();let t=new n;this.init(t,e[0][2]);let r;for(let t=e.length-1;t>=0;t--){if(e[t][0]!=="space"){r=e[t];break}}if(r[3]){let e=this.input.fromOffset(r[3]);t.source.end={offset:r[3],line:e.line,column:e.col}}else{let e=this.input.fromOffset(r[2]);t.source.end={offset:r[2],line:e.line,column:e.col}}while(e[0][0]!=="word"){t.raws.before+=e.shift()[1]}if(e[0][2]){let r=this.input.fromOffset(e[0][2]);t.source.start={offset:e[0][2],line:r.line,column:r.col}}t.prop="";while(e.length){let r=e[0][0];if(r===":"||r==="space"||r==="comment"){break}t.prop+=e.shift()[1]}t.raws.between="";let s;while(e.length){s=e.shift();if(s[0]===":"){t.raws.between+=s[1];break}else{t.raws.between+=s[1]}}if(t.prop[0]==="_"||t.prop[0]==="*"){t.raws.before+=t.prop[0];t.prop=t.prop.slice(1)}t.raws.between+=this.spacesAndCommentsFromStart(e);this.precheckMissedSemicolon(e);for(let r=e.length-1;r>0;r--){s=e[r];if(s[1]==="!important"){t.important=true;let s=this.stringFrom(e,r);s=this.spacesFromEnd(e)+s;if(s!==" !important"){t.raws.important=s}break}else if(s[1]==="important"){let s=e.slice(0);let i="";for(let e=r;e>0;e--){let t=s[e][0];if(i.trim().indexOf("!")===0&&t!=="space"){break}i=s.pop()[1]+i}if(i.trim().indexOf("!")===0){t.important=true;t.raws.important=i;e=s}}if(s[0]!=="space"&&s[0]!=="comment"){break}}this.raw(t,"value",e);if(t.value.includes(":")){this.checkMissedSemicolon(e)}this.current=t}}comment(e){if(e[4]==="inline"){let t=new s;this.init(t,e[2]);t.raws.inline=true;let r=this.input.fromOffset(e[3]);t.source.end={offset:e[3],line:r.line,column:r.col};let i=e[1].slice(2);if(/^\s*$/.test(i)){t.text="";t.raws.left=i;t.raws.right=""}else{let e=i.match(/^(\s*)([^]*\S)(\s*)$/);let r=e[2].replace(/(\*\/|\/\*)/g,"*//*");t.text=r;t.raws.left=e[1];t.raws.right=e[3];t.raws.text=e[2]}}else{super.comment(e)}}atrule(e){let t=e[1];let r=e;while(!this.tokenizer.endOfFile()){let e=this.tokenizer.nextToken();if(e[0]==="word"&&e[2]===r[3]+1){t+=e[1];r=e}else{this.tokenizer.back(e);break}}super.atrule(["at-word",t,e[2],r[3]])}raw(e,t,r){super.raw(e,t,r);if(e.raws[t]){let s=e.raws[t].raw;e.raws[t].raw=r.reduce(((e,t)=>{if(t[0]==="comment"&&t[4]==="inline"){let r=t[1].slice(2).replace(/(\*\/|\/\*)/g,"*//*");return e+"/*"+r+"*/"}else{return e+t[1]}}),"");if(s!==e.raws[t].raw){e.raws[t].scss=s}}}}e.exports=ScssParser},184:(e,t,r)=>{let s=r(534);class ScssStringifier extends s{comment(e){let t=this.raw(e,"left","commentLeft");let r=this.raw(e,"right","commentRight");if(e.raws.inline){let s=e.raws.text||e.text;this.builder("//"+t+s+r,e)}else{this.builder("/*"+t+e.text+r+"*/",e)}}decl(e,t){if(!e.isNested){super.decl(e,t)}else{let t=this.raw(e,"between","colon");let r=e.prop+t+this.rawValue(e,"value");if(e.important){r+=e.raws.important||" !important"}this.builder(r+"{",e,"start");let s;if(e.nodes&&e.nodes.length){this.body(e);s=this.raw(e,"after")}else{s=this.raw(e,"after","emptyBody")}if(s)this.builder(s);this.builder("}",e,"end")}}rawValue(e,t){let r=e[t];let s=e.raws[t];if(s&&s.value===r){return s.scss?s.scss:s.raw}else{return r}}}e.exports=ScssStringifier},760:(e,t,r)=>{let s=r(184);e.exports=function scssStringify(e,t){let r=new s(t);r.stringify(e)}},402:(e,t,r)=>{let s=r(760);let i=r(969);e.exports={parse:i,stringify:s}},381:e=>{"use strict";const t="'".charCodeAt(0);const r='"'.charCodeAt(0);const s="\\".charCodeAt(0);const i="/".charCodeAt(0);const n="\n".charCodeAt(0);const l=" ".charCodeAt(0);const a="\f".charCodeAt(0);const o="\t".charCodeAt(0);const f="\r".charCodeAt(0);const c="[".charCodeAt(0);const d="]".charCodeAt(0);const u="(".charCodeAt(0);const h=")".charCodeAt(0);const w="{".charCodeAt(0);const p="}".charCodeAt(0);const m=";".charCodeAt(0);const b="*".charCodeAt(0);const g=":".charCodeAt(0);const k="@".charCodeAt(0);const C=",".charCodeAt(0);const y="#".charCodeAt(0);const x=/[\t\n\f\r "#'()/;[\\\]{}]/g;const A=/[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g;const _=/.[\n"'(/\\]/;const S=/[\da-f]/i;const O=/[\n\f\r]/g;e.exports=function scssTokenize(e,v={}){let I=e.css.valueOf();let z=v.ignoreErrors;let B,D,q,F,R;let T,N,V,$;let E=I.length;let P=0;let U=[];let L=[];let M;function position(){return P}function unclosed(t){throw e.error("Unclosed "+t,P)}function endOfFile(){return L.length===0&&P>=E}function interpolation(){let e=1;let i=false;let n=false;while(e>0){D+=1;if(I.length<=D)unclosed("interpolation");B=I.charCodeAt(D);V=I.charCodeAt(D+1);if(i){if(!n&&B===i){i=false;n=false}else if(B===s){n=!n}else if(n){n=false}}else if(B===t||B===r){i=B}else if(B===p){e-=1}else if(B===y&&V===w){e+=1}}}function nextToken(e){if(L.length)return L.pop();if(P>=E)return;let v=e?e.ignoreUnclosed:false;B=I.charCodeAt(P);switch(B){case n:case l:case o:case f:case a:{D=P;do{D+=1;B=I.charCodeAt(D)}while(B===l||B===n||B===o||B===f||B===a);$=["space",I.slice(P,D)];P=D-1;break}case c:case d:case w:case p:case g:case m:case h:{let e=String.fromCharCode(B);$=[e,e,P];break}case C:{$=["word",",",P,P+1];break}case u:{N=U.length?U.pop()[1]:"";V=I.charCodeAt(P+1);if(N==="url"&&V!==t&&V!==r){M=1;T=false;D=P+1;while(D<=I.length-1){V=I.charCodeAt(D);if(V===s){T=!T}else if(V===u){M+=1}else if(V===h){M-=1;if(M===0)break}D+=1}F=I.slice(P,D+1);$=["brackets",F,P,D];P=D}else{D=I.indexOf(")",P+1);F=I.slice(P,D+1);if(D===-1||_.test(F)){$=["(","(",P]}else{$=["brackets",F,P,D];P=D}}break}case t:case r:{q=B;D=P;T=false;while(D{"use strict";const t={after:"\n",beforeClose:"\n",beforeComment:"\n",beforeDecl:"\n",beforeOpen:" ",beforeRule:"\n",colon:": ",commentLeft:" ",commentRight:" ",emptyBody:"",indent:" ",semicolon:false};function capitalize(e){return e[0].toUpperCase()+e.slice(1)}class Stringifier{constructor(e){this.builder=e}atrule(e,t){let r="@"+e.name;let s=e.params?this.rawValue(e,"params"):"";if(typeof e.raws.afterName!=="undefined"){r+=e.raws.afterName}else if(s){r+=" "}if(e.nodes){this.block(e,r+s)}else{let i=(e.raws.between||"")+(t?";":"");this.builder(r+s+i,e)}}beforeAfter(e,t){let r;if(e.type==="decl"){r=this.raw(e,null,"beforeDecl")}else if(e.type==="comment"){r=this.raw(e,null,"beforeComment")}else if(t==="before"){r=this.raw(e,null,"beforeRule")}else{r=this.raw(e,null,"beforeClose")}let s=e.parent;let i=0;while(s&&s.type!=="root"){i+=1;s=s.parent}if(r.includes("\n")){let t=this.raw(e,null,"indent");if(t.length){for(let e=0;e0){if(e.nodes[t].type!=="comment")break;t-=1}let r=this.raw(e,"semicolon");for(let s=0;s{i=e.raws[r];if(typeof i!=="undefined")return false}))}}if(typeof i==="undefined")i=t[s];l.rawCache[s]=i;return i}rawBeforeClose(e){let t;e.walk((e=>{if(e.nodes&&e.nodes.length>0){if(typeof e.raws.after!=="undefined"){t=e.raws.after;if(t.includes("\n")){t=t.replace(/[^\n]+$/,"")}return false}}}));if(t)t=t.replace(/\S/g,"");return t}rawBeforeComment(e,t){let r;e.walkComments((e=>{if(typeof e.raws.before!=="undefined"){r=e.raws.before;if(r.includes("\n")){r=r.replace(/[^\n]+$/,"")}return false}}));if(typeof r==="undefined"){r=this.raw(t,null,"beforeDecl")}else if(r){r=r.replace(/\S/g,"")}return r}rawBeforeDecl(e,t){let r;e.walkDecls((e=>{if(typeof e.raws.before!=="undefined"){r=e.raws.before;if(r.includes("\n")){r=r.replace(/[^\n]+$/,"")}return false}}));if(typeof r==="undefined"){r=this.raw(t,null,"beforeRule")}else if(r){r=r.replace(/\S/g,"")}return r}rawBeforeOpen(e){let t;e.walk((e=>{if(e.type!=="decl"){t=e.raws.between;if(typeof t!=="undefined")return false}}));return t}rawBeforeRule(e){let t;e.walk((r=>{if(r.nodes&&(r.parent!==e||e.first!==r)){if(typeof r.raws.before!=="undefined"){t=r.raws.before;if(t.includes("\n")){t=t.replace(/[^\n]+$/,"")}return false}}}));if(t)t=t.replace(/\S/g,"");return t}rawColon(e){let t;e.walkDecls((e=>{if(typeof e.raws.between!=="undefined"){t=e.raws.between.replace(/[^\s:]/g,"");return false}}));return t}rawEmptyBody(e){let t;e.walk((e=>{if(e.nodes&&e.nodes.length===0){t=e.raws.after;if(typeof t!=="undefined")return false}}));return t}rawIndent(e){if(e.raws.indent)return e.raws.indent;let t;e.walk((r=>{let s=r.parent;if(s&&s!==e&&s.parent&&s.parent===e){if(typeof r.raws.before!=="undefined"){let e=r.raws.before.split("\n");t=e[e.length-1];t=t.replace(/\S/g,"");return false}}}));return t}rawSemicolon(e){let t;e.walk((e=>{if(e.nodes&&e.nodes.length&&e.last.type==="decl"){t=e.raws.semicolon;if(typeof t!=="undefined")return false}}));return t}rawValue(e,t){let r=e[t];let s=e.raws[t];if(s&&s.value===r){return s.raw}return r}root(e){this.body(e);if(e.raws.after)this.builder(e.raws.after)}rule(e){this.block(e,this.rawValue(e,"selector"));if(e.raws.ownSemicolon){this.builder(e.raws.ownSemicolon,e,"end")}}stringify(e,t){if(!this[e.type]){throw new Error("Unknown AST node type "+e.type+". "+"Maybe you need to change PostCSS stringifier.")}this[e.type](e,t)}}e.exports=Stringifier;Stringifier.default=Stringifier},977:e=>{"use strict";e.exports=require("postcss")},46:e=>{"use strict";e.exports=require("postcss/lib/parser")}};var t={};function __nccwpck_require__(r){var s=t[r];if(s!==undefined){return s.exports}var i=t[r]={exports:{}};var n=true;try{e[r](i,i.exports,__nccwpck_require__);n=false}finally{if(n)delete t[r]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(402);module.exports=r})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/postcss-value-parser/index.js b/cli/app/node_modules/next/dist/compiled/postcss-value-parser/index.js new file mode 100644 index 00000000000..80d034e9ed2 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/postcss-value-parser/index.js @@ -0,0 +1 @@ +(()=>{var e={697:(e,r,t)=>{var a=t(257);var n=t(961);var o=t(256);function ValueParser(e){if(this instanceof ValueParser){this.nodes=a(e);return this}return new ValueParser(e)}ValueParser.prototype.toString=function(){return Array.isArray(this.nodes)?o(this.nodes):""};ValueParser.prototype.walk=function(e,r){n(this.nodes,e,r);return this};ValueParser.unit=t(68);ValueParser.walk=n;ValueParser.stringify=o;e.exports=ValueParser},257:e=>{var r="(".charCodeAt(0);var t=")".charCodeAt(0);var a="'".charCodeAt(0);var n='"'.charCodeAt(0);var o="\\".charCodeAt(0);var s="/".charCodeAt(0);var d=",".charCodeAt(0);var u=":".charCodeAt(0);var i="*".charCodeAt(0);var c="u".charCodeAt(0);var l="U".charCodeAt(0);var f="+".charCodeAt(0);var h=/^[a-f0-9?-]+$/i;e.exports=function(e){var v=[];var A=e;var p,C,x,y,g,I,_,w;var E=0;var b=A.charCodeAt(E);var k=A.length;var m=[{nodes:v}];var P=0;var V;var q="";var N="";var O="";while(E{function stringifyNode(e,r){var t=e.type;var a=e.value;var n;var o;if(r&&(o=r(e))!==undefined){return o}else if(t==="word"||t==="space"){return a}else if(t==="string"){n=e.quote||"";return n+a+(e.unclosed?"":n)}else if(t==="comment"){return"/*"+a+(e.unclosed?"":"*/")}else if(t==="div"){return(e.before||"")+a+(e.after||"")}else if(Array.isArray(e.nodes)){n=stringify(e.nodes,r);if(t!=="function"){return n}return a+"("+(e.before||"")+n+(e.after||"")+(e.unclosed?"":")")}return a}function stringify(e,r){var t,a;if(Array.isArray(e)){t="";for(a=e.length-1;~a;a-=1){t=stringifyNode(e[a],r)+t}return t}return stringifyNode(e,r)}e.exports=stringify},68:e=>{var r="-".charCodeAt(0);var t="+".charCodeAt(0);var a=".".charCodeAt(0);var n="e".charCodeAt(0);var o="E".charCodeAt(0);function likeNumber(e){var n=e.charCodeAt(0);var o;if(n===t||n===r){o=e.charCodeAt(1);if(o>=48&&o<=57){return true}var s=e.charCodeAt(2);if(o===a&&s>=48&&s<=57){return true}return false}if(n===a){o=e.charCodeAt(1);if(o>=48&&o<=57){return true}return false}if(n>=48&&n<=57){return true}return false}e.exports=function(e){var s=0;var d=e.length;var u;var i;var c;if(d===0||!likeNumber(e)){return false}u=e.charCodeAt(s);if(u===t||u===r){s++}while(s57){break}s+=1}u=e.charCodeAt(s);i=e.charCodeAt(s+1);if(u===a&&i>=48&&i<=57){s+=2;while(s57){break}s+=1}}u=e.charCodeAt(s);i=e.charCodeAt(s+1);c=e.charCodeAt(s+2);if((u===n||u===o)&&(i>=48&&i<=57||(i===t||i===r)&&c>=48&&c<=57)){s+=i===t||i===r?3:2;while(s57){break}s+=1}}return{number:e.slice(0,s),unit:e.slice(s)}}},961:e=>{e.exports=function walk(e,r,t){var a,n,o,s;for(a=0,n=e.length;a","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/process/browser.js b/cli/app/node_modules/next/dist/compiled/process/browser.js new file mode 100644 index 00000000000..243b9431699 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/process/browser.js @@ -0,0 +1 @@ +(function(){var e={229:function(e){var t=e.exports={};var r;var n;function defaultSetTimout(){throw new Error("setTimeout has not been defined")}function defaultClearTimeout(){throw new Error("clearTimeout has not been defined")}(function(){try{if(typeof setTimeout==="function"){r=setTimeout}else{r=defaultSetTimout}}catch(e){r=defaultSetTimout}try{if(typeof clearTimeout==="function"){n=clearTimeout}else{n=defaultClearTimeout}}catch(e){n=defaultClearTimeout}})();function runTimeout(e){if(r===setTimeout){return setTimeout(e,0)}if((r===defaultSetTimout||!r)&&setTimeout){r=setTimeout;return setTimeout(e,0)}try{return r(e,0)}catch(t){try{return r.call(null,e,0)}catch(t){return r.call(this,e,0)}}}function runClearTimeout(e){if(n===clearTimeout){return clearTimeout(e)}if((n===defaultClearTimeout||!n)&&clearTimeout){n=clearTimeout;return clearTimeout(e)}try{return n(e)}catch(t){try{return n.call(null,e)}catch(t){return n.call(this,e)}}}var i=[];var o=false;var u;var a=-1;function cleanUpNextTick(){if(!o||!u){return}o=false;if(u.length){i=u.concat(i)}else{a=-1}if(i.length){drainQueue()}}function drainQueue(){if(o){return}var e=runTimeout(cleanUpNextTick);o=true;var t=i.length;while(t){u=i;i=[];while(++a1){for(var r=1;r","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/punycode/package.json b/cli/app/node_modules/next/dist/compiled/punycode/package.json new file mode 100644 index 00000000000..cf52cbab85f --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/punycode/package.json @@ -0,0 +1 @@ +{"name":"punycode","main":"punycode.js","author":{"name":"Mathias Bynens","url":"https://mathiasbynens.be/"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/punycode/punycode.js b/cli/app/node_modules/next/dist/compiled/punycode/punycode.js new file mode 100644 index 00000000000..15cb4e2c4b4 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/punycode/punycode.js @@ -0,0 +1 @@ +(function(){"use strict";var t={619:function(t){const e=2147483647;const o=36;const n=1;const r=26;const c=38;const s=700;const i=72;const f=128;const u="-";const l=/^xn--/;const a=/[^\0-\x7E]/;const p=/[\x2E\u3002\uFF0E\uFF61]/g;const d={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"};const _=o-n;const h=Math.floor;const w=String.fromCharCode;function error(t){throw new RangeError(d[t])}function map(t,e){const o=[];let n=t.length;while(n--){o[n]=e(t[n])}return o}function mapDomain(t,e){const o=t.split("@");let n="";if(o.length>1){n=o[0]+"@";t=o[1]}t=t.replace(p,".");const r=t.split(".");const c=map(r,e).join(".");return n+c}function ucs2decode(t){const e=[];let o=0;const n=t.length;while(o=55296&&r<=56319&&oString.fromCodePoint(...t);const basicToDigit=function(t){if(t-48<10){return t-22}if(t-65<26){return t-65}if(t-97<26){return t-97}return o};const digitToBasic=function(t,e){return t+22+75*(t<26)-((e!=0)<<5)};const adapt=function(t,e,n){let i=0;t=n?h(t/s):t>>1;t+=h(t/e);for(;t>_*r>>1;i+=o){t=h(t/_)}return h(i+(_+1)*t/(t+c))};const decode=function(t){const c=[];const s=t.length;let l=0;let a=f;let p=i;let d=t.lastIndexOf(u);if(d<0){d=0}for(let e=0;e=128){error("not-basic")}c.push(t.charCodeAt(e))}for(let i=d>0?d+1:0;i=s){error("invalid-input")}const u=basicToDigit(t.charCodeAt(i++));if(u>=o||u>h((e-l)/c)){error("overflow")}l+=u*c;const a=f<=p?n:f>=p+r?r:f-p;if(uh(e/d)){error("overflow")}c*=d}const u=c.length+1;p=adapt(l-f,u,f==0);if(h(l/u)>e-a){error("overflow")}a+=h(l/u);l%=u;c.splice(l++,0,a)}return String.fromCodePoint(...c)};const encode=function(t){const c=[];t=ucs2decode(t);let s=t.length;let l=f;let a=0;let p=i;for(const e of t){if(e<128){c.push(w(e))}}let d=c.length;let _=d;if(d){c.push(u)}while(_=l&&eh((e-a)/i)){error("overflow")}a+=(s-l)*i;l=s;for(const s of t){if(se){error("overflow")}if(s==l){let t=a;for(let e=o;;e+=o){const s=e<=p?n:e>=p+r?r:e-p;if(t0&&c>u){c=u}for(var p=0;p=0){_=f.substr(0,s);l=f.substr(s+1)}else{_=f;l=""}y=decodeURIComponent(_);d=decodeURIComponent(l);if(!hasOwnProperty(a,y)){a[y]=d}else if(r(a[y])){a[y].push(d)}else{a[y]=[a[y],d]}}return a};var r=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"}},577:function(e){var stringifyPrimitive=function(e){switch(typeof e){case"string":return e;case"boolean":return e?"true":"false";case"number":return isFinite(e)?e:"";default:return""}};e.exports=function(e,t,o,a){t=t||"&";o=o||"=";if(e===null){e=undefined}if(typeof e==="object"){return map(n(e),(function(n){var a=encodeURIComponent(stringifyPrimitive(n))+o;if(r(e[n])){return map(e[n],(function(e){return a+encodeURIComponent(stringifyPrimitive(e))})).join(t)}else{return a+encodeURIComponent(stringifyPrimitive(e[n]))}})).join(t)}if(!a)return"";return encodeURIComponent(stringifyPrimitive(a))+o+encodeURIComponent(stringifyPrimitive(e))};var r=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};function map(e,r){if(e.map)return e.map(r);var n=[];for(var t=0;t"} diff --git a/cli/app/node_modules/next/dist/compiled/raw-body/index.js b/cli/app/node_modules/next/dist/compiled/raw-body/index.js new file mode 100644 index 00000000000..e519a71eb52 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/raw-body/index.js @@ -0,0 +1,51 @@ +(()=>{var __webpack_modules__={989:(module,__unused_webpack_exports,__nccwpck_require__)=>{ +/*! + * depd + * Copyright(c) 2014-2017 Douglas Christopher Wilson + * MIT Licensed + */ +var callSiteToString=__nccwpck_require__(477).callSiteToString;var eventListenerCount=__nccwpck_require__(477).eventListenerCount;var relative=__nccwpck_require__(17).relative;module.exports=depd;var basePath=process.cwd();function containsNamespace(e,t){var r=e.split(/[ ,]+/);var a=String(t).toLowerCase();for(var i=0;i";var r=e.getLineNumber();var a=e.getColumnNumber();if(e.isEval()){t=e.getEvalOrigin()+", "+t}var i=[t,r,a];i.callSite=e;i.name=e.getFunctionName();return i}function defaultMessage(e){var t=e.callSite;var r=e.name;if(!r){r=""}var a=t.getThis();var i=a&&t.getTypeName();if(i==="Object"){i=undefined}if(i==="Function"){i=a.name||i}return i&&t.getMethodName()?i+"."+r:r}function formatPlain(e,t,r){var a=(new Date).toUTCString();var i=a+" "+this._namespace+" deprecated "+e;if(this._traced){for(var o=0;o{"use strict"; +/*! + * depd + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */e.exports=callSiteToString;function callSiteFileLocation(e){var t;var r="";if(e.isNative()){r="native"}else if(e.isEval()){t=e.getScriptNameOrSourceURL();if(!t){r=e.getEvalOrigin()}}else{t=e.getFileName()}if(t){r+=t;var a=e.getLineNumber();if(a!=null){r+=":"+a;var i=e.getColumnNumber();if(i){r+=":"+i}}}return r||"unknown source"}function callSiteToString(e){var t=true;var r=callSiteFileLocation(e);var a=e.getFunctionName();var i=e.isConstructor();var o=!(e.isToplevel()||i);var c="";if(o){var n=e.getMethodName();var s=getConstructorName(e);if(a){if(s&&a.indexOf(s)!==0){c+=s+"."}c+=a;if(n&&a.lastIndexOf("."+n)!==a.length-n.length-1){c+=" [as "+n+"]"}}else{c+=s+"."+(n||"")}}else if(i){c+="new "+(a||"")}else if(a){c+=a}else{t=false;c+=r}if(t){c+=" ("+r+")"}return c}function getConstructorName(e){var t=e.receiver;return t.constructor&&t.constructor.name||null}},711:e=>{"use strict"; +/*! + * depd + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */e.exports=eventListenerCount;function eventListenerCount(e,t){return e.listeners(t).length}},477:(e,t,r)=>{"use strict"; +/*! + * depd + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */var a=r(361).EventEmitter;lazyProperty(e.exports,"callSiteToString",(function callSiteToString(){var e=Error.stackTraceLimit;var t={};var a=Error.prepareStackTrace;function prepareObjectStackTrace(e,t){return t}Error.prepareStackTrace=prepareObjectStackTrace;Error.stackTraceLimit=2;Error.captureStackTrace(t);var i=t.stack.slice();Error.prepareStackTrace=a;Error.stackTraceLimit=e;return i[0].toString?toString:r(634)}));lazyProperty(e.exports,"eventListenerCount",(function eventListenerCount(){return a.listenerCount||r(711)}));function lazyProperty(e,t,r){function get(){var a=r();Object.defineProperty(e,t,{configurable:true,enumerable:true,value:a});return a}Object.defineProperty(e,t,{configurable:true,enumerable:true,get:get})}function toString(e){return e.toString()}},880:(e,t,r)=>{"use strict"; +/*! + * http-errors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */var a=r(989)("http-errors");var i=r(103);var o=r(590);var c=r(842);var n=r(26);e.exports=createError;e.exports.HttpError=createHttpErrorConstructor();populateConstructorExports(e.exports,o.codes,e.exports.HttpError);function codeClass(e){return Number(String(e).charAt(0)+"00")}function createError(){var e;var t;var r=500;var i={};for(var c=0;c=600)){a("non-error status code; use only 4xx or 5xx status codes")}if(typeof r!=="number"||!o[r]&&(r<400||r>=600)){r=500}var s=createError[r]||createError[codeClass(r)];if(!e){e=s?new s(t):new Error(t||o[r]);Error.captureStackTrace(e,createError)}if(!s||!(e instanceof s)||e.status!==r){e.expose=r<500;e.status=e.statusCode=r}for(var f in i){if(f!=="status"&&f!=="statusCode"){e[f]=i[f]}}return e}function createHttpErrorConstructor(){function HttpError(){throw new TypeError("cannot construct abstract class")}c(HttpError,Error);return HttpError}function createClientErrorConstructor(e,t,r){var a=t.match(/Error$/)?t:t+"Error";function ClientError(e){var t=e!=null?e:o[r];var c=new Error(t);Error.captureStackTrace(c,ClientError);i(c,ClientError.prototype);Object.defineProperty(c,"message",{enumerable:true,configurable:true,value:t,writable:true});Object.defineProperty(c,"name",{enumerable:false,configurable:true,value:a,writable:true});return c}c(ClientError,e);nameFunc(ClientError,a);ClientError.prototype.status=r;ClientError.prototype.statusCode=r;ClientError.prototype.expose=true;return ClientError}function createServerErrorConstructor(e,t,r){var a=t.match(/Error$/)?t:t+"Error";function ServerError(e){var t=e!=null?e:o[r];var c=new Error(t);Error.captureStackTrace(c,ServerError);i(c,ServerError.prototype);Object.defineProperty(c,"message",{enumerable:true,configurable:true,value:t,writable:true});Object.defineProperty(c,"name",{enumerable:false,configurable:true,value:a,writable:true});return c}c(ServerError,e);nameFunc(ServerError,a);ServerError.prototype.status=r;ServerError.prototype.statusCode=r;ServerError.prototype.expose=false;return ServerError}function nameFunc(e,t){var r=Object.getOwnPropertyDescriptor(e,"name");if(r&&r.configurable){r.value=t;Object.defineProperty(e,"name",r)}}function populateConstructorExports(e,t,r){t.forEach((function forEachCode(t){var a;var i=n(o[t]);switch(codeClass(t)){case 400:a=createClientErrorConstructor(r,i,t);break;case 500:a=createServerErrorConstructor(r,i,t);break}if(a){e[t]=a;e[i]=a}}));e["I'mateapot"]=a.function(e.ImATeapot,'"I\'mateapot"; use "ImATeapot" instead')}},164:(e,t,r)=>{"use strict";var a=r(983).Buffer;t._dbcs=DBCSCodec;var i=-1,o=-2,c=-10,n=-1e3,s=new Array(256),f=-1;for(var d=0;d<256;d++)s[d]=i;function DBCSCodec(e,t){this.encodingName=e.encodingName;if(!e)throw new Error("DBCS codec is called without the data.");if(!e.table)throw new Error("Encoding '"+this.encodingName+"' has no data.");var r=e.table();this.decodeTables=[];this.decodeTables[0]=s.slice(0);this.decodeTableSeq=[];for(var a=0;a0;e>>=8)t.push(e&255);if(t.length==0)t.push(0);var r=this.decodeTables[0];for(var a=t.length-1;a>0;a--){var o=r[t[a]];if(o==i){r[t[a]]=n-this.decodeTables.length;this.decodeTables.push(r=s.slice(0))}else if(o<=n){r=this.decodeTables[n-o]}else throw new Error("Overwrite byte in "+this.encodingName+", addr: "+e.toString(16))}return r};DBCSCodec.prototype._addDecodeChunk=function(e){var t=parseInt(e[0],16);var r=this._getDecodeTrieNode(t);t=t&255;for(var a=1;a255)throw new Error("Incorrect chunk in "+this.encodingName+" at addr "+e[0]+": too long"+t)};DBCSCodec.prototype._getEncodeBucket=function(e){var t=e>>8;if(this.encodeTable[t]===undefined)this.encodeTable[t]=s.slice(0);return this.encodeTable[t]};DBCSCodec.prototype._setEncodeChar=function(e,t){var r=this._getEncodeBucket(e);var a=e&255;if(r[a]<=c)this.encodeTableSeq[c-r[a]][f]=t;else if(r[a]==i)r[a]=t};DBCSCodec.prototype._setEncodeSequence=function(e,t){var r=e[0];var a=this._getEncodeBucket(r);var o=r&255;var n;if(a[o]<=c){n=this.encodeTableSeq[c-a[o]]}else{n={};if(a[o]!==i)n[f]=a[o];a[o]=c-this.encodeTableSeq.length;this.encodeTableSeq.push(n)}for(var s=1;s=0)this._setEncodeChar(o,s);else if(o<=n)this._fillEncodeTable(n-o,s<<8,r);else if(o<=c)this._setEncodeSequence(this.decodeTableSeq[c-o],s)}};function DBCSEncoder(e,t){this.leadSurrogate=-1;this.seqObj=undefined;this.encodeTable=t.encodeTable;this.encodeTableSeq=t.encodeTableSeq;this.defaultCharSingleByte=t.defCharSB;this.gb18030=t.gb18030}DBCSEncoder.prototype.write=function(e){var t=a.alloc(e.length*(this.gb18030?4:3)),r=this.leadSurrogate,o=this.seqObj,n=-1,s=0,d=0;while(true){if(n===-1){if(s==e.length)break;var u=e.charCodeAt(s++)}else{var u=n;n=-1}if(55296<=u&&u<57344){if(u<56320){if(r===-1){r=u;continue}else{r=u;u=i}}else{if(r!==-1){u=65536+(r-55296)*1024+(u-56320);r=-1}else{u=i}}}else if(r!==-1){n=u;u=i;r=-1}var p=i;if(o!==undefined&&u!=i){var l=o[u];if(typeof l==="object"){o=l;continue}else if(typeof l=="number"){p=l}else if(l==undefined){l=o[f];if(l!==undefined){p=l;n=u}else{}}o=undefined}else if(u>=0){var h=this.encodeTable[u>>8];if(h!==undefined)p=h[u&255];if(p<=c){o=this.encodeTableSeq[c-p];continue}if(p==i&&this.gb18030){var b=findIdx(this.gb18030.uChars,u);if(b!=-1){var p=this.gb18030.gbChars[b]+(u-this.gb18030.uChars[b]);t[d++]=129+Math.floor(p/12600);p=p%12600;t[d++]=48+Math.floor(p/1260);p=p%1260;t[d++]=129+Math.floor(p/10);p=p%10;t[d++]=48+p;continue}}}if(p===i)p=this.defaultCharSingleByte;if(p<256){t[d++]=p}else if(p<65536){t[d++]=p>>8;t[d++]=p&255}else{t[d++]=p>>16;t[d++]=p>>8&255;t[d++]=p&255}}this.seqObj=o;this.leadSurrogate=r;return t.slice(0,d)};DBCSEncoder.prototype.end=function(){if(this.leadSurrogate===-1&&this.seqObj===undefined)return;var e=a.alloc(10),t=0;if(this.seqObj){var r=this.seqObj[f];if(r!==undefined){if(r<256){e[t++]=r}else{e[t++]=r>>8;e[t++]=r&255}}else{}this.seqObj=undefined}if(this.leadSurrogate!==-1){e[t++]=this.defaultCharSingleByte;this.leadSurrogate=-1}return e.slice(0,t)};DBCSEncoder.prototype.findIdx=findIdx;function DBCSDecoder(e,t){this.nodeIdx=0;this.prevBuf=a.alloc(0);this.decodeTables=t.decodeTables;this.decodeTableSeq=t.decodeTableSeq;this.defaultCharUnicode=t.defaultCharUnicode;this.gb18030=t.gb18030}DBCSDecoder.prototype.write=function(e){var t=a.alloc(e.length*2),r=this.nodeIdx,s=this.prevBuf,f=this.prevBuf.length,d=-this.prevBuf.length,u;if(f>0)s=a.concat([s,e.slice(0,10)]);for(var p=0,l=0;p=0?e[p]:s[p+f];var u=this.decodeTables[r][h];if(u>=0){}else if(u===i){p=d;u=this.defaultCharUnicode.charCodeAt(0)}else if(u===o){var b=d>=0?e.slice(d,p+1):s.slice(d+f,p+1+f);var v=(b[0]-129)*12600+(b[1]-48)*1260+(b[2]-129)*10+(b[3]-48);var g=findIdx(this.gb18030.gbChars,v);u=this.gb18030.uChars[g]+v-this.gb18030.gbChars[g]}else if(u<=n){r=n-u;continue}else if(u<=c){var y=this.decodeTableSeq[c-u];for(var m=0;m>8}u=y[y.length-1]}else throw new Error("iconv-lite internal error: invalid decoding table value "+u+" at "+r+"/"+h);if(u>65535){u-=65536;var w=55296+Math.floor(u/1024);t[l++]=w&255;t[l++]=w>>8;u=56320+u%1024}t[l++]=u&255;t[l++]=u>>8;r=0;d=p+1}this.nodeIdx=r;this.prevBuf=d>=0?e.slice(d):s.slice(d+f);return t.slice(0,l).toString("ucs2")};DBCSDecoder.prototype.end=function(){var e="";while(this.prevBuf.length>0){e+=this.defaultCharUnicode;var t=this.prevBuf.slice(1);this.prevBuf=a.alloc(0);this.nodeIdx=0;if(t.length>0)e+=this.write(t)}this.nodeIdx=0;return e};function findIdx(e,t){if(e[0]>t)return-1;var r=0,a=e.length;while(r{"use strict";e.exports={shiftjis:{type:"_dbcs",table:function(){return r(15)},encodeAdd:{"¥":92,"‾":126},encodeSkipVals:[{from:60736,to:63808}]},csshiftjis:"shiftjis",mskanji:"shiftjis",sjis:"shiftjis",windows31j:"shiftjis",ms31j:"shiftjis",xsjis:"shiftjis",windows932:"shiftjis",ms932:"shiftjis",932:"shiftjis",cp932:"shiftjis",eucjp:{type:"_dbcs",table:function(){return r(489)},encodeAdd:{"¥":92,"‾":126}},gb2312:"cp936",gb231280:"cp936",gb23121980:"cp936",csgb2312:"cp936",csiso58gb231280:"cp936",euccn:"cp936",windows936:"cp936",ms936:"cp936",936:"cp936",cp936:{type:"_dbcs",table:function(){return r(830)}},gbk:{type:"_dbcs",table:function(){return r(830).concat(r(636))}},xgbk:"gbk",isoir58:"gbk",gb18030:{type:"_dbcs",table:function(){return r(830).concat(r(636))},gb18030:function(){return r(838)},encodeSkipVals:[128],encodeAdd:{"€":41699}},chinese:"gb18030",windows949:"cp949",ms949:"cp949",949:"cp949",cp949:{type:"_dbcs",table:function(){return r(269)}},cseuckr:"cp949",csksc56011987:"cp949",euckr:"cp949",isoir149:"cp949",korean:"cp949",ksc56011987:"cp949",ksc56011989:"cp949",ksc5601:"cp949",windows950:"cp950",ms950:"cp950",950:"cp950",cp950:{type:"_dbcs",table:function(){return r(688)}},big5:"big5hkscs",big5hkscs:{type:"_dbcs",table:function(){return r(688).concat(r(630))},encodeSkipVals:[41676]},cnbig5:"big5hkscs",csbig5:"big5hkscs",xxbig5:"big5hkscs"}},516:(e,t,r)=>{"use strict";var a=[r(156),r(546),r(486),r(982),r(53),r(691),r(164),r(242)];for(var i=0;i{"use strict";var a=r(983).Buffer;e.exports={utf8:{type:"_internal",bomAware:true},cesu8:{type:"_internal",bomAware:true},unicode11utf8:"utf8",ucs2:{type:"_internal",bomAware:true},utf16le:"ucs2",binary:{type:"_internal"},base64:{type:"_internal"},hex:{type:"_internal"},_internal:InternalCodec};function InternalCodec(e,t){this.enc=e.encodingName;this.bomAware=e.bomAware;if(this.enc==="base64")this.encoder=InternalEncoderBase64;else if(this.enc==="cesu8"){this.enc="utf8";this.encoder=InternalEncoderCesu8;if(a.from("eda0bdedb2a9","hex").toString()!=="💩"){this.decoder=InternalDecoderCesu8;this.defaultCharUnicode=t.defaultCharUnicode}}}InternalCodec.prototype.encoder=InternalEncoder;InternalCodec.prototype.decoder=InternalDecoder;var i=r(576).StringDecoder;if(!i.prototype.end)i.prototype.end=function(){};function InternalDecoder(e,t){i.call(this,t.enc)}InternalDecoder.prototype=i.prototype;function InternalEncoder(e,t){this.enc=t.enc}InternalEncoder.prototype.write=function(e){return a.from(e,this.enc)};InternalEncoder.prototype.end=function(){};function InternalEncoderBase64(e,t){this.prevStr=""}InternalEncoderBase64.prototype.write=function(e){e=this.prevStr+e;var t=e.length-e.length%4;this.prevStr=e.slice(t);e=e.slice(0,t);return a.from(e,"base64")};InternalEncoderBase64.prototype.end=function(){return a.from(this.prevStr,"base64")};function InternalEncoderCesu8(e,t){}InternalEncoderCesu8.prototype.write=function(e){var t=a.alloc(e.length*3),r=0;for(var i=0;i>>6);t[r++]=128+(o&63)}else{t[r++]=224+(o>>>12);t[r++]=128+(o>>>6&63);t[r++]=128+(o&63)}}return t.slice(0,r)};InternalEncoderCesu8.prototype.end=function(){};function InternalDecoderCesu8(e,t){this.acc=0;this.contBytes=0;this.accBytes=0;this.defaultCharUnicode=t.defaultCharUnicode}InternalDecoderCesu8.prototype.write=function(e){var t=this.acc,r=this.contBytes,a=this.accBytes,i="";for(var o=0;o0){i+=this.defaultCharUnicode;r=0}if(c<128){i+=String.fromCharCode(c)}else if(c<224){t=c&31;r=1;a=1}else if(c<240){t=c&15;r=2;a=1}else{i+=this.defaultCharUnicode}}else{if(r>0){t=t<<6|c&63;r--;a++;if(r===0){if(a===2&&t<128&&t>0)i+=this.defaultCharUnicode;else if(a===3&&t<2048)i+=this.defaultCharUnicode;else i+=String.fromCharCode(t)}}else{i+=this.defaultCharUnicode}}}this.acc=t;this.contBytes=r;this.accBytes=a;return i};InternalDecoderCesu8.prototype.end=function(){var e=0;if(this.contBytes>0)e+=this.defaultCharUnicode;return e}},982:(e,t,r)=>{"use strict";var a=r(983).Buffer;t._sbcs=SBCSCodec;function SBCSCodec(e,t){if(!e)throw new Error("SBCS codec is called without the data.");if(!e.chars||e.chars.length!==128&&e.chars.length!==256)throw new Error("Encoding '"+e.type+"' has incorrect 'chars' (must be of len 128 or 256)");if(e.chars.length===128){var r="";for(var i=0;i<128;i++)r+=String.fromCharCode(i);e.chars=r+e.chars}this.decodeBuf=a.from(e.chars,"ucs2");var o=a.alloc(65536,t.defaultCharSingleByte.charCodeAt(0));for(var i=0;i{"use strict";e.exports={437:"cp437",737:"cp737",775:"cp775",850:"cp850",852:"cp852",855:"cp855",856:"cp856",857:"cp857",858:"cp858",860:"cp860",861:"cp861",862:"cp862",863:"cp863",864:"cp864",865:"cp865",866:"cp866",869:"cp869",874:"windows874",922:"cp922",1046:"cp1046",1124:"cp1124",1125:"cp1125",1129:"cp1129",1133:"cp1133",1161:"cp1161",1162:"cp1162",1163:"cp1163",1250:"windows1250",1251:"windows1251",1252:"windows1252",1253:"windows1253",1254:"windows1254",1255:"windows1255",1256:"windows1256",1257:"windows1257",1258:"windows1258",28591:"iso88591",28592:"iso88592",28593:"iso88593",28594:"iso88594",28595:"iso88595",28596:"iso88596",28597:"iso88597",28598:"iso88598",28599:"iso88599",28600:"iso885910",28601:"iso885911",28603:"iso885913",28604:"iso885914",28605:"iso885915",28606:"iso885916",windows874:{type:"_sbcs",chars:"€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},win874:"windows874",cp874:"windows874",windows1250:{type:"_sbcs",chars:"€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬­®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},win1250:"windows1250",cp1250:"windows1250",windows1251:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬­®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},win1251:"windows1251",cp1251:"windows1251",windows1252:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},win1252:"windows1252",cp1252:"windows1252",windows1253:{type:"_sbcs",chars:"€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬­®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},win1253:"windows1253",cp1253:"windows1253",windows1254:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},win1254:"windows1254",cp1254:"windows1254",windows1255:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹֺֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},win1255:"windows1255",cp1255:"windows1255",windows1256:{type:"_sbcs",chars:"€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œ‌‍ں ،¢£¤¥¦§¨©ھ«¬­®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûü‎‏ے"},win1256:"windows1256",cp1256:"windows1256",windows1257:{type:"_sbcs",chars:"€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬­®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙"},win1257:"windows1257",cp1257:"windows1257",windows1258:{type:"_sbcs",chars:"€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},win1258:"windows1258",cp1258:"windows1258",iso88591:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28591:"iso88591",iso88592:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ą˘Ł¤ĽŚ§¨ŠŞŤŹ­ŽŻ°ą˛ł´ľśˇ¸šşťź˝žżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙"},cp28592:"iso88592",iso88593:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ħ˘£¤�Ĥ§¨İŞĞĴ­�ݰħ²³´µĥ·¸ışğĵ½�żÀÁÂ�ÄĊĈÇÈÉÊËÌÍÎÏ�ÑÒÓÔĠÖ×ĜÙÚÛÜŬŜßàáâ�äċĉçèéêëìíîï�ñòóôġö÷ĝùúûüŭŝ˙"},cp28593:"iso88593",iso88594:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĸŖ¤Ĩϧ¨ŠĒĢŦ­Ž¯°ą˛ŗ´ĩšēģŧŊžŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎĪĐŅŌĶÔÕÖרŲÚÛÜŨŪßāáâãäåæįčéęëėíîīđņōķôõö÷øųúûüũū˙"},cp28594:"iso88594",iso88595:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂЃЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђѓєѕіїјљњћќ§ўџ"},cp28595:"iso88595",iso88596:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ���¤�������،­�������������؛���؟�ءآأؤإئابةتثجحخدذرزسشصضطظعغ�����ـفقكلمنهوىيًٌٍَُِّْ�������������"},cp28596:"iso88596",iso88597:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ‘’£€₯¦§¨©ͺ«¬­�―°±²³΄΅Ά·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�"},cp28597:"iso88597",iso88598:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �¢£¤¥¦§¨©×«¬­®¯°±²³´µ¶·¸¹÷»¼½¾��������������������������������‗אבגדהוזחטיךכלםמןנסעףפץצקרשת��‎‏�"},cp28598:"iso88598",iso88599:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ"},cp28599:"iso88599",iso885910:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄĒĢĪĨͧĻĐŠŦŽ­ŪŊ°ąēģīĩķ·ļđšŧž―ūŋĀÁÂÃÄÅÆĮČÉĘËĖÍÎÏÐŅŌÓÔÕÖŨØŲÚÛÜÝÞßāáâãäåæįčéęëėíîïðņōóôõöũøųúûüýþĸ"},cp28600:"iso885910",iso885911:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},cp28601:"iso885911",iso885913:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ”¢£¤„¦§Ø©Ŗ«¬­®Æ°±²³“µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž’"},cp28603:"iso885913",iso885914:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ Ḃḃ£ĊċḊ§Ẁ©ẂḋỲ­®ŸḞḟĠġṀṁ¶ṖẁṗẃṠỳẄẅṡÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŴÑÒÓÔÕÖṪØÙÚÛÜÝŶßàáâãäåæçèéêëìíîïŵñòóôõöṫøùúûüýŷÿ"},cp28604:"iso885914",iso885915:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥Š§š©ª«¬­®¯°±²³Žµ¶·ž¹º»ŒœŸ¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},cp28605:"iso885915",iso885916:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ĄąŁ€„Чš©Ș«Ź­źŻ°±ČłŽ”¶·žčș»ŒœŸżÀÁÂĂÄĆÆÇÈÉÊËÌÍÎÏĐŃÒÓÔŐÖŚŰÙÚÛÜĘȚßàáâăäćæçèéêëìíîïđńòóôőöśűùúûüęțÿ"},cp28606:"iso885916",cp437:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm437:"cp437",csibm437:"cp437",cp737:{type:"_sbcs",chars:"ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρσςτυφχψ░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀ωάέήϊίόύϋώΆΈΉΊΌΎΏ±≥≤ΪΫ÷≈°∙·√ⁿ²■ "},ibm737:"cp737",csibm737:"cp737",cp775:{type:"_sbcs",chars:"ĆüéāäģåćłēŖŗīŹÄÅÉæÆōöĢ¢ŚśÖÜø£Ø×¤ĀĪóŻżź”¦©®¬½¼Ł«»░▒▓│┤ĄČĘĖ╣║╗╝ĮŠ┐└┴┬├─┼ŲŪ╚╔╩╦╠═╬Žąčęėįšųūž┘┌█▄▌▐▀ÓßŌŃõÕµńĶķĻļņĒŅ’­±“¾¶§÷„°∙·¹³²■ "},ibm775:"cp775",csibm775:"cp775",cp850:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈıÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "},ibm850:"cp850",csibm850:"cp850",cp852:{type:"_sbcs",chars:"ÇüéâäůćçłëŐőîŹÄĆÉĹĺôöĽľŚśÖÜŤťŁ×čáíóúĄąŽžĘ꬟Ⱥ«»░▒▓│┤ÁÂĚŞ╣║╗╝Żż┐└┴┬├─┼Ăă╚╔╩╦╠═╬¤đĐĎËďŇÍÎě┘┌█▄ŢŮ▀ÓßÔŃńňŠšŔÚŕŰýÝţ´­˝˛ˇ˘§÷¸°¨˙űŘř■ "},ibm852:"cp852",csibm852:"cp852",cp855:{type:"_sbcs",chars:"ђЂѓЃёЁєЄѕЅіІїЇјЈљЉњЊћЋќЌўЎџЏюЮъЪаАбБцЦдДеЕфФгГ«»░▒▓│┤хХиИ╣║╗╝йЙ┐└┴┬├─┼кК╚╔╩╦╠═╬¤лЛмМнНоОп┘┌█▄Пя▀ЯрРсСтТуУжЖвВьЬ№­ыЫзЗшШэЭщЩчЧ§■ "},ibm855:"cp855",csibm855:"cp855",cp856:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת�£�×����������®¬½¼�«»░▒▓│┤���©╣║╗╝¢¥┐└┴┬├─┼��╚╔╩╦╠═╬¤���������┘┌█▄¦�▀������µ�������¯´­±‗¾¶§÷¸°¨·¹³²■ "},ibm856:"cp856",csibm856:"cp856",cp857:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîıÄÅÉæÆôöòûùİÖÜø£ØŞşáíóúñÑĞ𿮬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ºªÊËÈ�ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµ�×ÚÛÙìÿ¯´­±�¾¶§÷¸°¨·¹³²■ "},ibm857:"cp857",csibm857:"cp857",cp858:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø×ƒáíóúñѪº¿®¬½¼¡«»░▒▓│┤ÁÂÀ©╣║╗╝¢¥┐└┴┬├─┼ãÃ╚╔╩╦╠═╬¤ðÐÊËÈ€ÍÎÏ┘┌█▄¦Ì▀ÓßÔÒõÕµþÞÚÛÙýݯ´­±‗¾¶§÷¸°¨·¹³²■ "},ibm858:"cp858",csibm858:"cp858",cp860:{type:"_sbcs",chars:"ÇüéâãàÁçêÊèÍÔìÃÂÉÀÈôõòÚùÌÕÜ¢£Ù₧ÓáíóúñѪº¿Ò¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm860:"cp860",csibm860:"cp860",cp861:{type:"_sbcs",chars:"ÇüéâäàåçêëèÐðÞÄÅÉæÆôöþûÝýÖÜø£Ø₧ƒáíóúÁÍÓÚ¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm861:"cp861",csibm861:"cp861",cp862:{type:"_sbcs",chars:"אבגדהוזחטיךכלםמןנסעףפץצקרשת¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm862:"cp862",csibm862:"cp862",cp863:{type:"_sbcs",chars:"ÇüéâÂà¶çêëèïî‗À§ÉÈÊôËÏûù¤ÔÜ¢£ÙÛƒ¦´óú¨¸³¯Î⌐¬½¼¾«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm863:"cp863",csibm863:"cp863",cp864:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$٪&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~°·∙√▒─│┼┤┬├┴┐┌└┘β∞φ±½¼≈«»ﻷﻸ��ﻻﻼ� ­ﺂ£¤ﺄ��ﺎﺏﺕﺙ،ﺝﺡﺥ٠١٢٣٤٥٦٧٨٩ﻑ؛ﺱﺵﺹ؟¢ﺀﺁﺃﺅﻊﺋﺍﺑﺓﺗﺛﺟﺣﺧﺩﺫﺭﺯﺳﺷﺻﺿﻁﻅﻋﻏ¦¬÷×ﻉـﻓﻗﻛﻟﻣﻧﻫﻭﻯﻳﺽﻌﻎﻍﻡﹽّﻥﻩﻬﻰﻲﻐﻕﻵﻶﻝﻙﻱ■�"},ibm864:"cp864",csibm864:"cp864",cp865:{type:"_sbcs",chars:"ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜø£Ø₧ƒáíóúñѪº¿⌐¬½¼¡«¤░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ibm865:"cp865",csibm865:"cp865",cp866:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№¤■ "},ibm866:"cp866",csibm866:"cp866",cp869:{type:"_sbcs",chars:"������Ά�·¬¦‘’Έ―ΉΊΪΌ��ΎΫ©Ώ²³ά£έήίϊΐόύΑΒΓΔΕΖΗ½ΘΙ«»░▒▓│┤ΚΛΜΝ╣║╗╝ΞΟ┐└┴┬├─┼ΠΡ╚╔╩╦╠═╬ΣΤΥΦΧΨΩαβγ┘┌█▄δε▀ζηθικλμνξοπρσςτ΄­±υφχ§ψ΅°¨ωϋΰώ■ "},ibm869:"cp869",csibm869:"cp869",cp922:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®‾°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏŠÑÒÓÔÕÖרÙÚÛÜÝŽßàáâãäåæçèéêëìíîïšñòóôõö÷øùúûüýžÿ"},ibm922:"cp922",csibm922:"cp922",cp1046:{type:"_sbcs",chars:"ﺈ×÷ﹱˆ■│─┐┌└┘ﹹﹻﹽﹿﹷﺊﻰﻳﻲﻎﻏﻐﻶﻸﻺﻼ ¤ﺋﺑﺗﺛﺟﺣ،­ﺧﺳ٠١٢٣٤٥٦٧٨٩ﺷ؛ﺻﺿﻊ؟ﻋءآأؤإئابةتثجحخدذرزسشصضطﻇعغﻌﺂﺄﺎﻓـفقكلمنهوىيًٌٍَُِّْﻗﻛﻟﻵﻷﻹﻻﻣﻧﻬﻩ�"},ibm1046:"cp1046",csibm1046:"cp1046",cp1124:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ЁЂҐЄЅІЇЈЉЊЋЌ­ЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя№ёђґєѕіїјљњћќ§ўџ"},ibm1124:"cp1124",csibm1124:"cp1124",cp1125:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёҐґЄєІіЇї·√№¤■ "},ibm1125:"cp1125",csibm1125:"cp1125",cp1129:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1129:"cp1129",csibm1129:"cp1129",cp1133:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ກຂຄງຈສຊຍດຕຖທນບປຜຝພຟມຢຣລວຫອຮ���ຯະາຳິີຶືຸູຼັົຽ���ເແໂໃໄ່້໊໋໌ໍໆ�ໜໝ₭����������������໐໑໒໓໔໕໖໗໘໙��¢¬¦�"},ibm1133:"cp1133",csibm1133:"cp1133",cp1161:{type:"_sbcs",chars:"��������������������������������่กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู้๊๋€฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛¢¬¦ "},ibm1161:"cp1161",csibm1161:"cp1161",cp1162:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"},ibm1162:"cp1162",csibm1162:"cp1162",cp1163:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£€¥¦§œ©ª«¬­®¯°±²³Ÿµ¶·Œ¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ"},ibm1163:"cp1163",csibm1163:"cp1163",maccroatian:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®Š™´¨≠ŽØ∞±≤≥∆µ∂∑∏š∫ªºΩžø¿¡¬√ƒ≈ƫȅ ÀÃÕŒœĐ—“”‘’÷◊�©⁄¤‹›Æ»–·‚„‰ÂćÁčÈÍÎÏÌÓÔđÒÚÛÙıˆ˜¯πË˚¸Êæˇ"},maccyrillic:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},macgreek:{type:"_sbcs",chars:"Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦­ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�"},maciceland:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macroman:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macromania:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ĂŞ∞±≤≥¥µ∂∑∏π∫ªºΩăş¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›Ţţ‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},macthai:{type:"_sbcs",chars:"«»…“”�•‘’� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู\ufeff​–—฿เแโใไๅๆ็่้๊๋์ํ™๏๐๑๒๓๔๕๖๗๘๙®©����"},macturkish:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ"},macukraine:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°Ґ£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµґЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤"},koi8r:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ё╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡Ё╢╣╤╥╦╧╨╩╪╫╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8u:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґ╝╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪Ґ╬©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8ru:{type:"_sbcs",chars:"─│┌┐└┘├┤┬┴┼▀▄█▌▐░▒▓⌠■∙√≈≤≥ ⌡°²·÷═║╒ёє╔ії╗╘╙╚╛ґў╞╟╠╡ЁЄ╣ІЇ╦╧╨╩╪ҐЎ©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},koi8t:{type:"_sbcs",chars:"қғ‚Ғ„…†‡�‰ҳ‹ҲҷҶ�Қ‘’“”•–—�™�›�����ӯӮё¤ӣ¦§���«¬­®�°±²Ё�Ӣ¶·�№�»���©юабцдефгхийклмнопярстужвьызшэщчъЮАБЦДЕФГХИЙКЛМНОПЯРСТУЖВЬЫЗШЭЩЧЪ"},armscii8:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ �և։)(»«—.՝,-֊…՜՛՞ԱաԲբԳգԴդԵեԶզԷէԸըԹթԺժԻիԼլԽխԾծԿկՀհՁձՂղՃճՄմՅյՆնՇշՈոՉչՊպՋջՌռՍսՎվՏտՐրՑցՒւՓփՔքՕօՖֆ՚�"},rk1048:{type:"_sbcs",chars:"ЂЃ‚ѓ„…†‡€‰Љ‹ЊҚҺЏђ‘’“”•–—�™љ›њқһџ ҰұӘ¤Ө¦§Ё©Ғ«¬­®Ү°±Ііөµ¶·ё№ғ»әҢңүАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},tcvn:{type:"_sbcs",chars:"\0ÚỤỪỬỮ\b\t\n\v\f\rỨỰỲỶỸÝỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÀẢÃÁẠẶẬÈẺẼÉẸỆÌỈĨÍỊÒỎÕÓỌỘỜỞỠỚỢÙỦŨ ĂÂÊÔƠƯĐăâêôơưđẶ̀̀̉̃́àảãáạẲằẳẵắẴẮẦẨẪẤỀặầẩẫấậèỂẻẽéẹềểễếệìỉỄẾỒĩíịòỔỏõóọồổỗốộờởỡớợùỖủũúụừửữứựỳỷỹýỵỐ"},georgianacademy:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},georgianps:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿აბგდევზჱთიკლმნჲოპჟრსტჳუფქღყშჩცძწჭხჴჯჰჵæçèéêëìíîïðñòóôõö÷øùúûüýþÿ"},pt154:{type:"_sbcs",chars:"ҖҒӮғ„…ҶҮҲүҠӢҢҚҺҸҗ‘’“”•–—ҳҷҡӣңқһҹ ЎўЈӨҘҰ§Ё©Ә«¬ӯ®Ҝ°ұІіҙө¶·ё№ә»јҪҫҝАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя"},viscii:{type:"_sbcs",chars:"\0ẲẴẪ\b\t\n\v\f\rỶỸỴ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ẠẮẰẶẤẦẨẬẼẸẾỀỂỄỆỐỒỔỖỘỢỚỜỞỊỎỌỈỦŨỤỲÕắằặấầẩậẽẹếềểễệốồổỗỠƠộờởịỰỨỪỬơớƯÀÁÂÃẢĂẳẵÈÉÊẺÌÍĨỳĐứÒÓÔạỷừửÙÚỹỵÝỡưàáâãảăữẫèéêẻìíĩỉđựòóôõỏọụùúũủýợỮ"},iso646cn:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},iso646jp:{type:"_sbcs",chars:"\0\b\t\n\v\f\r !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[¥]^_`abcdefghijklmnopqrstuvwxyz{|}‾��������������������������������������������������������������������������������������������������������������������������������"},hproman8:{type:"_sbcs",chars:"€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ÀÂÈÊËÎÏ´ˋˆ¨˜ÙÛ₤¯Ýý°ÇçÑñ¡¿¤£¥§ƒ¢âêôûáéóúàèòùäëöüÅîØÆåíøæÄìÖÜÉïßÔÁÃãÐðÍÌÓÒÕõŠšÚŸÿÞþ·µ¶¾—¼½ªº«■»±�"},macintosh:{type:"_sbcs",chars:"ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ"},ascii:{type:"_sbcs",chars:"��������������������������������������������������������������������������������������������������������������������������������"},tis620:{type:"_sbcs",chars:"���������������������������������กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����"}}},53:e=>{"use strict";e.exports={10029:"maccenteuro",maccenteuro:{type:"_sbcs",chars:"ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ"},808:"cp808",ibm808:"cp808",cp808:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмноп░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀рстуфхцчшщъыьэюяЁёЄєЇїЎў°∙·√№€■ "},mik:{type:"_sbcs",chars:"АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя└┴┬├─┼╣║╚╔╩╦╠═╬┐░▒▓│┤№§╗╝┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ "},ascii8bit:"ascii",usascii:"ascii",ansix34:"ascii",ansix341968:"ascii",ansix341986:"ascii",csascii:"ascii",cp367:"ascii",ibm367:"ascii",isoir6:"ascii",iso646us:"ascii",iso646irv:"ascii",us:"ascii",latin1:"iso88591",latin2:"iso88592",latin3:"iso88593",latin4:"iso88594",latin5:"iso88599",latin6:"iso885910",latin7:"iso885913",latin8:"iso885914",latin9:"iso885915",latin10:"iso885916",csisolatin1:"iso88591",csisolatin2:"iso88592",csisolatin3:"iso88593",csisolatin4:"iso88594",csisolatincyrillic:"iso88595",csisolatinarabic:"iso88596",csisolatingreek:"iso88597",csisolatinhebrew:"iso88598",csisolatin5:"iso88599",csisolatin6:"iso885910",l1:"iso88591",l2:"iso88592",l3:"iso88593",l4:"iso88594",l5:"iso88599",l6:"iso885910",l7:"iso885913",l8:"iso885914",l9:"iso885915",l10:"iso885916",isoir14:"iso646jp",isoir57:"iso646cn",isoir100:"iso88591",isoir101:"iso88592",isoir109:"iso88593",isoir110:"iso88594",isoir144:"iso88595",isoir127:"iso88596",isoir126:"iso88597",isoir138:"iso88598",isoir148:"iso88599",isoir157:"iso885910",isoir166:"tis620",isoir179:"iso885913",isoir199:"iso885914",isoir203:"iso885915",isoir226:"iso885916",cp819:"iso88591",ibm819:"iso88591",cyrillic:"iso88595",arabic:"iso88596",arabic8:"iso88596",ecma114:"iso88596",asmo708:"iso88596",greek:"iso88597",greek8:"iso88597",ecma118:"iso88597",elot928:"iso88597",hebrew:"iso88598",hebrew8:"iso88598",turkish:"iso88599",turkish8:"iso88599",thai:"iso885911",thai8:"iso885911",celtic:"iso885914",celtic8:"iso885914",isoceltic:"iso885914",tis6200:"tis620",tis62025291:"tis620",tis62025330:"tis620",1e4:"macroman",10006:"macgreek",10007:"maccyrillic",10079:"maciceland",10081:"macturkish",cspc8codepage437:"cp437",cspc775baltic:"cp775",cspc850multilingual:"cp850",cspcp852:"cp852",cspc862latinhebrew:"cp862",cpgr:"cp869",msee:"cp1250",mscyrl:"cp1251",msansi:"cp1252",msgreek:"cp1253",msturk:"cp1254",mshebr:"cp1255",msarab:"cp1256",winbaltrim:"cp1257",cp20866:"koi8r",20866:"koi8r",ibm878:"koi8r",cskoi8r:"koi8r",cp21866:"koi8u",21866:"koi8u",ibm1168:"koi8u",strk10482002:"rk1048",tcvn5712:"tcvn",tcvn57121:"tcvn",gb198880:"iso646cn",cn:"iso646cn",csiso14jisc6220ro:"iso646jp",jisc62201969ro:"iso646jp",jp:"iso646jp",cshproman8:"hproman8",r8:"hproman8",roman8:"hproman8",xroman8:"hproman8",ibm1051:"hproman8",mac:"macintosh",csmacintosh:"macintosh"}},546:(e,t,r)=>{"use strict";var a=r(983).Buffer;t.utf16be=Utf16BECodec;function Utf16BECodec(){}Utf16BECodec.prototype.encoder=Utf16BEEncoder;Utf16BECodec.prototype.decoder=Utf16BEDecoder;Utf16BECodec.prototype.bomAware=true;function Utf16BEEncoder(){}Utf16BEEncoder.prototype.write=function(e){var t=a.from(e,"ucs2");for(var r=0;r=2){if(e[0]==254&&e[1]==255)r="utf-16be";else if(e[0]==255&&e[1]==254)r="utf-16le";else{var a=0,i=0,o=Math.min(e.length-e.length%2,64);for(var c=0;ca)r="utf-16be";else if(i{"use strict";var a=r(983).Buffer;t.utf7=Utf7Codec;t.unicode11utf7="utf7";function Utf7Codec(e,t){this.iconv=t}Utf7Codec.prototype.encoder=Utf7Encoder;Utf7Codec.prototype.decoder=Utf7Decoder;Utf7Codec.prototype.bomAware=true;var i=/[^A-Za-z0-9'\(\),-\.\/:\? \n\r\t]+/g;function Utf7Encoder(e,t){this.iconv=t.iconv}Utf7Encoder.prototype.write=function(e){return a.from(e.replace(i,function(e){return"+"+(e==="+"?"":this.iconv.encode(e,"utf16-be").toString("base64").replace(/=+$/,""))+"-"}.bind(this)))};Utf7Encoder.prototype.end=function(){};function Utf7Decoder(e,t){this.iconv=t.iconv;this.inBase64=false;this.base64Accum=""}var o=/[A-Za-z0-9\/+]/;var c=[];for(var n=0;n<256;n++)c[n]=o.test(String.fromCharCode(n));var s="+".charCodeAt(0),f="-".charCodeAt(0),d="&".charCodeAt(0);Utf7Decoder.prototype.write=function(e){var t="",r=0,i=this.inBase64,o=this.base64Accum;for(var n=0;n0)e=this.iconv.decode(a.from(this.base64Accum,"base64"),"utf16-be");this.inBase64=false;this.base64Accum="";return e};t.utf7imap=Utf7IMAPCodec;function Utf7IMAPCodec(e,t){this.iconv=t}Utf7IMAPCodec.prototype.encoder=Utf7IMAPEncoder;Utf7IMAPCodec.prototype.decoder=Utf7IMAPDecoder;Utf7IMAPCodec.prototype.bomAware=true;function Utf7IMAPEncoder(e,t){this.iconv=t.iconv;this.inBase64=false;this.base64Accum=a.alloc(6);this.base64AccumIdx=0}Utf7IMAPEncoder.prototype.write=function(e){var t=this.inBase64,r=this.base64Accum,i=this.base64AccumIdx,o=a.alloc(e.length*5+10),c=0;for(var n=0;n0){c+=o.write(r.slice(0,i).toString("base64").replace(/\//g,",").replace(/=+$/,""),c);i=0}o[c++]=f;t=false}if(!t){o[c++]=s;if(s===d)o[c++]=f}}else{if(!t){o[c++]=d;t=true}if(t){r[i++]=s>>8;r[i++]=s&255;if(i==r.length){c+=o.write(r.toString("base64").replace(/\//g,","),c);i=0}}}}this.inBase64=t;this.base64AccumIdx=i;return o.slice(0,c)};Utf7IMAPEncoder.prototype.end=function(){var e=a.alloc(10),t=0;if(this.inBase64){if(this.base64AccumIdx>0){t+=e.write(this.base64Accum.slice(0,this.base64AccumIdx).toString("base64").replace(/\//g,",").replace(/=+$/,""),t);this.base64AccumIdx=0}e[t++]=f;this.inBase64=false}return e.slice(0,t)};function Utf7IMAPDecoder(e,t){this.iconv=t.iconv;this.inBase64=false;this.base64Accum=""}var u=c.slice();u[",".charCodeAt(0)]=true;Utf7IMAPDecoder.prototype.write=function(e){var t="",r=0,i=this.inBase64,o=this.base64Accum;for(var c=0;c0)e=this.iconv.decode(a.from(this.base64Accum,"base64"),"utf16-be");this.inBase64=false;this.base64Accum="";return e}},658:(e,t)=>{"use strict";var r="\ufeff";t.PrependBOM=PrependBOMWrapper;function PrependBOMWrapper(e,t){this.encoder=e;this.addBOM=true}PrependBOMWrapper.prototype.write=function(e){if(this.addBOM){e=r+e;this.addBOM=false}return this.encoder.write(e)};PrependBOMWrapper.prototype.end=function(){return this.encoder.end()};t.StripBOM=StripBOMWrapper;function StripBOMWrapper(e,t){this.decoder=e;this.pass=false;this.options=t||{}}StripBOMWrapper.prototype.write=function(e){var t=this.decoder.write(e);if(this.pass||!t)return t;if(t[0]===r){t=t.slice(1);if(typeof this.options.stripBOM==="function")this.options.stripBOM()}this.pass=true;return t};StripBOMWrapper.prototype.end=function(){return this.decoder.end()}},396:(e,t,r)=>{"use strict";var a=r(300).Buffer;e.exports=function(e){var t=undefined;e.supportsNodeEncodingsExtension=!(a.from||new a(0)instanceof Uint8Array);e.extendNodeEncodings=function extendNodeEncodings(){if(t)return;t={};if(!e.supportsNodeEncodingsExtension){console.error("ACTION NEEDED: require('iconv-lite').extendNodeEncodings() is not supported in your version of Node");console.error("See more info at https://github.com/ashtuchkin/iconv-lite/wiki/Node-v4-compatibility");return}var i={hex:true,utf8:true,"utf-8":true,ascii:true,binary:true,base64:true,ucs2:true,"ucs-2":true,utf16le:true,"utf-16le":true};a.isNativeEncoding=function(e){return e&&i[e.toLowerCase()]};var o=r(300).SlowBuffer;t.SlowBufferToString=o.prototype.toString;o.prototype.toString=function(r,i,o){r=String(r||"utf8").toLowerCase();if(a.isNativeEncoding(r))return t.SlowBufferToString.call(this,r,i,o);if(typeof i=="undefined")i=0;if(typeof o=="undefined")o=this.length;return e.decode(this.slice(i,o),r)};t.SlowBufferWrite=o.prototype.write;o.prototype.write=function(r,i,o,c){if(isFinite(i)){if(!isFinite(o)){c=o;o=undefined}}else{var n=c;c=i;i=o;o=n}i=+i||0;var s=this.length-i;if(!o){o=s}else{o=+o;if(o>s){o=s}}c=String(c||"utf8").toLowerCase();if(a.isNativeEncoding(c))return t.SlowBufferWrite.call(this,r,i,o,c);if(r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var f=e.encode(r,c);if(f.lengthu){o=u}}if(r.length>0&&(o<0||i<0))throw new RangeError("attempt to write beyond buffer bounds");var p=e.encode(r,c);if(p.length{"use strict";var a=r(983).Buffer;var i=r(658),o=e.exports;o.encodings=null;o.defaultCharUnicode="�";o.defaultCharSingleByte="?";o.encode=function encode(e,t,r){e=""+(e||"");var i=o.getEncoder(t,r);var c=i.write(e);var n=i.end();return n&&n.length>0?a.concat([c,n]):c};o.decode=function decode(e,t,r){if(typeof e==="string"){if(!o.skipDecodeWarning){console.error("Iconv-lite warning: decode()-ing strings is deprecated. Refer to https://github.com/ashtuchkin/iconv-lite/wiki/Use-Buffers-when-decoding");o.skipDecodeWarning=true}e=a.from(""+(e||""),"binary")}var i=o.getDecoder(t,r);var c=i.write(e);var n=i.end();return n?c+n:c};o.encodingExists=function encodingExists(e){try{o.getCodec(e);return true}catch(e){return false}};o.toEncoding=o.encode;o.fromEncoding=o.decode;o._codecDataCache={};o.getCodec=function getCodec(e){if(!o.encodings)o.encodings=r(516);var t=o._canonicalizeEncoding(e);var a={};while(true){var i=o._codecDataCache[t];if(i)return i;var c=o.encodings[t];switch(typeof c){case"string":t=c;break;case"object":for(var n in c)a[n]=c[n];if(!a.encodingName)a.encodingName=t;t=c.type;break;case"function":if(!a.encodingName)a.encodingName=t;i=new c(a,o);o._codecDataCache[a.encodingName]=i;return i;default:throw new Error("Encoding not recognized: '"+e+"' (searched as: '"+t+"')")}}};o._canonicalizeEncoding=function(e){return(""+e).toLowerCase().replace(/:\d{4}$|[^0-9a-z]/g,"")};o.getEncoder=function getEncoder(e,t){var r=o.getCodec(e),a=new r.encoder(t,r);if(r.bomAware&&t&&t.addBOM)a=new i.PrependBOM(a,t);return a};o.getDecoder=function getDecoder(e,t){var r=o.getCodec(e),a=new r.decoder(t,r);if(r.bomAware&&!(t&&t.stripBOM===false))a=new i.StripBOM(a,t);return a};var c=typeof process!=="undefined"&&process.versions&&process.versions.node;if(c){var n=c.split(".").map(Number);if(n[0]>0||n[1]>=10){r(357)(o)}r(396)(o)}if(false){}},357:(e,t,r)=>{"use strict";var a=r(300).Buffer,i=r(781).Transform;e.exports=function(e){e.encodeStream=function encodeStream(t,r){return new IconvLiteEncoderStream(e.getEncoder(t,r),r)};e.decodeStream=function decodeStream(t,r){return new IconvLiteDecoderStream(e.getDecoder(t,r),r)};e.supportsStreams=true;e.IconvLiteEncoderStream=IconvLiteEncoderStream;e.IconvLiteDecoderStream=IconvLiteDecoderStream;e._collect=IconvLiteDecoderStream.prototype.collect};function IconvLiteEncoderStream(e,t){this.conv=e;t=t||{};t.decodeStrings=false;i.call(this,t)}IconvLiteEncoderStream.prototype=Object.create(i.prototype,{constructor:{value:IconvLiteEncoderStream}});IconvLiteEncoderStream.prototype._transform=function(e,t,r){if(typeof e!="string")return r(new Error("Iconv encoding stream needs strings as its input."));try{var a=this.conv.write(e);if(a&&a.length)this.push(a);r()}catch(e){r(e)}};IconvLiteEncoderStream.prototype._flush=function(e){try{var t=this.conv.end();if(t&&t.length)this.push(t);e()}catch(t){e(t)}};IconvLiteEncoderStream.prototype.collect=function(e){var t=[];this.on("error",e);this.on("data",(function(e){t.push(e)}));this.on("end",(function(){e(null,a.concat(t))}));return this};function IconvLiteDecoderStream(e,t){this.conv=e;t=t||{};t.encoding=this.encoding="utf8";i.call(this,t)}IconvLiteDecoderStream.prototype=Object.create(i.prototype,{constructor:{value:IconvLiteDecoderStream}});IconvLiteDecoderStream.prototype._transform=function(e,t,r){if(!a.isBuffer(e))return r(new Error("Iconv decoding stream needs buffers as its input."));try{var i=this.conv.write(e);if(i&&i.length)this.push(i,this.encoding);r()}catch(e){r(e)}};IconvLiteDecoderStream.prototype._flush=function(e){try{var t=this.conv.end();if(t&&t.length)this.push(t,this.encoding);e()}catch(t){e(t)}};IconvLiteDecoderStream.prototype.collect=function(e){var t="";this.on("error",e);this.on("data",(function(e){t+=e}));this.on("end",(function(){e(null,t)}));return this}},842:(e,t,r)=>{try{var a=r(837);if(typeof a.inherits!=="function")throw"";e.exports=a.inherits}catch(t){e.exports=r(782)}},782:e=>{if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},113:(e,t,r)=>{"use strict"; +/*! + * raw-body + * Copyright(c) 2013-2014 Jonathan Ong + * Copyright(c) 2014-2015 Douglas Christopher Wilson + * MIT Licensed + */var a=r(666);var i=r(880);var o=r(639);var c=r(582);e.exports=getRawBody;var n=/^Encoding not recognized: /;function getDecoder(e){if(!e)return null;try{return o.getDecoder(e)}catch(t){if(!n.test(t.message))throw t;throw i(415,"specified encoding unsupported",{encoding:e,type:"encoding.unsupported"})}}function getRawBody(e,t,r){var i=r;var o=t||{};if(t===true||typeof t==="string"){o={encoding:t}}if(typeof t==="function"){i=t;o={}}if(i!==undefined&&typeof i!=="function"){throw new TypeError("argument callback must be a function")}if(!i&&!global.Promise){throw new TypeError("argument callback is required")}var c=o.encoding!==true?o.encoding:"utf-8";var n=a.parse(o.limit);var s=o.length!=null&&!isNaN(o.length)?parseInt(o.length,10):null;if(i){return readStream(e,c,s,n,i)}return new Promise((function executor(t,r){readStream(e,c,s,n,(function onRead(e,a){if(e)return r(e);t(a)}))}))}function halt(e){c(e);if(typeof e.pause==="function"){e.pause()}}function readStream(e,t,r,a,o){var c=false;var n=true;if(a!==null&&r!==null&&r>a){return done(i(413,"request entity too large",{expected:r,length:r,limit:a,type:"entity.too.large"}))}var s=e._readableState;if(e._decoder||s&&(s.encoding||s.decoder)){return done(i(500,"stream encoding should not be set",{type:"stream.encoding.set"}))}var f=0;var d;try{d=getDecoder(t)}catch(e){return done(e)}var u=d?"":[];e.on("aborted",onAborted);e.on("close",cleanup);e.on("data",onData);e.on("end",onEnd);e.on("error",onEnd);n=false;function done(){var t=new Array(arguments.length);for(var r=0;ra){done(i(413,"request entity too large",{limit:a,received:f,type:"entity.too.large"}))}else if(d){u+=d.write(e)}else{u.push(e)}}function onEnd(e){if(c)return;if(e)return done(e);if(r!==null&&f!==r){done(i(400,"request size did not match content length",{expected:r,length:r,received:f,type:"request.size.invalid"}))}else{var t=d?u+(d.end()||""):Buffer.concat(u);done(null,t)}}function cleanup(){u=null;e.removeListener("aborted",onAborted);e.removeListener("data",onData);e.removeListener("end",onEnd);e.removeListener("error",onEnd);e.removeListener("close",cleanup)}}},983:(e,t,r)=>{"use strict";var a=r(300);var i=a.Buffer;var o={};var c;for(c in a){if(!a.hasOwnProperty(c))continue;if(c==="SlowBuffer"||c==="Buffer")continue;o[c]=a[c]}var n=o.Buffer={};for(c in i){if(!i.hasOwnProperty(c))continue;if(c==="allocUnsafe"||c==="allocUnsafeSlow")continue;n[c]=i[c]}o.Buffer.prototype=i.prototype;if(!n.from||n.from===Uint8Array.from){n.from=function(e,t,r){if(typeof e==="number"){throw new TypeError('The "value" argument must not be of type number. Received type '+typeof e)}if(e&&typeof e.length==="undefined"){throw new TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof e)}return i(e,t,r)}}if(!n.alloc){n.alloc=function(e,t,r){if(typeof e!=="number"){throw new TypeError('The "size" argument must be of type number. Received type '+typeof e)}if(e<0||e>=2*(1<<30)){throw new RangeError('The value "'+e+'" is invalid for option "size"')}var a=i(e);if(!t||t.length===0){a.fill(0)}else if(typeof r==="string"){a.fill(t,r)}else{a.fill(t)}return a}}if(!o.kStringMaxLength){try{o.kStringMaxLength=process.binding("buffer").kStringMaxLength}catch(e){}}if(!o.constants){o.constants={MAX_LENGTH:o.kMaxLength};if(o.kStringMaxLength){o.constants.MAX_STRING_LENGTH=o.kStringMaxLength}}e.exports=o},103:e=>{"use strict";e.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?setProtoOf:mixinProperties);function setProtoOf(e,t){e.__proto__=t;return e}function mixinProperties(e,t){for(var r in t){if(!e.hasOwnProperty(r)){e[r]=t[r]}}return e}},590:(e,t,r)=>{"use strict"; +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */var a=r(656);e.exports=status;status.STATUS_CODES=a;status.codes=populateStatusesMap(status,a);status.redirect={300:true,301:true,302:true,303:true,305:true,307:true,308:true};status.empty={204:true,205:true,304:true};status.retry={502:true,503:true,504:true};function populateStatusesMap(e,t){var r=[];Object.keys(t).forEach((function forEachCode(a){var i=t[a];var o=Number(a);e[o]=i;e[i]=o;e[i.toLowerCase()]=o;r.push(o)}));return r}function status(e){if(typeof e==="number"){if(!status[e])throw new Error("invalid status code: "+e);return e}if(typeof e!=="string"){throw new TypeError("code must be a number or string")}var t=parseInt(e,10);if(!isNaN(t)){if(!status[t])throw new Error("invalid status code: "+t);return t}t=status[e.toLowerCase()];if(!t)throw new Error('invalid status message: "'+e+'"');return t}},26:e=>{ +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */ +e.exports=toIdentifier;function toIdentifier(e){return e.split(" ").map((function(e){return e.slice(0,1).toUpperCase()+e.slice(1)})).join("").replace(/[^ _0-9a-z]/gi,"")}},582:e=>{"use strict"; +/*! + * unpipe + * Copyright(c) 2015 Douglas Christopher Wilson + * MIT Licensed + */e.exports=unpipe;function hasPipeDataListeners(e){var t=e.listeners("data");for(var r=0;r{"use strict";e.exports=require("buffer")},361:e=>{"use strict";e.exports=require("events")},666:e=>{"use strict";e.exports=require("next/dist/compiled/bytes")},17:e=>{"use strict";e.exports=require("path")},781:e=>{"use strict";e.exports=require("stream")},576:e=>{"use strict";e.exports=require("string_decoder")},837:e=>{"use strict";e.exports=require("util")},630:e=>{"use strict";e.exports=JSON.parse('[["8740","䏰䰲䘃䖦䕸𧉧䵷䖳𧲱䳢𧳅㮕䜶䝄䱇䱀𤊿𣘗𧍒𦺋𧃒䱗𪍑䝏䗚䲅𧱬䴇䪤䚡𦬣爥𥩔𡩣𣸆𣽡晍囻"],["8767","綕夝𨮹㷴霴𧯯寛𡵞媤㘥𩺰嫑宷峼杮薓𩥅瑡璝㡵𡵓𣚞𦀡㻬"],["87a1","𥣞㫵竼龗𤅡𨤍𣇪𠪊𣉞䌊蒄龖鐯䤰蘓墖靊鈘秐稲晠権袝瑌篅枂稬剏遆㓦珄𥶹瓆鿇垳䤯呌䄱𣚎堘穲𧭥讏䚮𦺈䆁𥶙箮𢒼鿈𢓁𢓉𢓌鿉蔄𣖻䂴鿊䓡𪷿拁灮鿋"],["8840","㇀",4,"𠄌㇅𠃑𠃍㇆㇇𠃋𡿨㇈𠃊㇉㇊㇋㇌𠄎㇍㇎ĀÁǍÀĒÉĚÈŌÓǑÒ࿿Ê̄Ế࿿Ê̌ỀÊāáǎàɑēéěèīíǐìōóǒòūúǔùǖǘǚ"],["88a1","ǜü࿿ê̄ế࿿ê̌ềêɡ⏚⏛"],["8940","𪎩𡅅"],["8943","攊"],["8946","丽滝鵎釟"],["894c","𧜵撑会伨侨兖兴农凤务动医华发变团声处备夲头学实実岚庆总斉柾栄桥济炼电纤纬纺织经统缆缷艺苏药视设询车轧轮"],["89a1","琑糼緍楆竉刧"],["89ab","醌碸酞肼"],["89b0","贋胶𠧧"],["89b5","肟黇䳍鷉鸌䰾𩷶𧀎鸊𪄳㗁"],["89c1","溚舾甙"],["89c5","䤑马骏龙禇𨑬𡷊𠗐𢫦两亁亀亇亿仫伷㑌侽㹈倃傈㑽㒓㒥円夅凛凼刅争剹劐匧㗇厩㕑厰㕓参吣㕭㕲㚁咓咣咴咹哐哯唘唣唨㖘唿㖥㖿嗗㗅"],["8a40","𧶄唥"],["8a43","𠱂𠴕𥄫喐𢳆㧬𠍁蹆𤶸𩓥䁓𨂾睺𢰸㨴䟕𨅝𦧲𤷪擝𠵼𠾴𠳕𡃴撍蹾𠺖𠰋𠽤𢲩𨉖𤓓"],["8a64","𠵆𩩍𨃩䟴𤺧𢳂骲㩧𩗴㿭㔆𥋇𩟔𧣈𢵄鵮頕"],["8a76","䏙𦂥撴哣𢵌𢯊𡁷㧻𡁯"],["8aa1","𦛚𦜖𧦠擪𥁒𠱃蹨𢆡𨭌𠜱"],["8aac","䠋𠆩㿺塳𢶍"],["8ab2","𤗈𠓼𦂗𠽌𠶖啹䂻䎺"],["8abb","䪴𢩦𡂝膪飵𠶜捹㧾𢝵跀嚡摼㹃"],["8ac9","𪘁𠸉𢫏𢳉"],["8ace","𡃈𣧂㦒㨆𨊛㕸𥹉𢃇噒𠼱𢲲𩜠㒼氽𤸻"],["8adf","𧕴𢺋𢈈𪙛𨳍𠹺𠰴𦠜羓𡃏𢠃𢤹㗻𥇣𠺌𠾍𠺪㾓𠼰𠵇𡅏𠹌"],["8af6","𠺫𠮩𠵈𡃀𡄽㿹𢚖搲𠾭"],["8b40","𣏴𧘹𢯎𠵾𠵿𢱑𢱕㨘𠺘𡃇𠼮𪘲𦭐𨳒𨶙𨳊閪哌苄喹"],["8b55","𩻃鰦骶𧝞𢷮煀腭胬尜𦕲脴㞗卟𨂽醶𠻺𠸏𠹷𠻻㗝𤷫㘉𠳖嚯𢞵𡃉𠸐𠹸𡁸𡅈𨈇𡑕𠹹𤹐𢶤婔𡀝𡀞𡃵𡃶垜𠸑"],["8ba1","𧚔𨋍𠾵𠹻𥅾㜃𠾶𡆀𥋘𪊽𤧚𡠺𤅷𨉼墙剨㘚𥜽箲孨䠀䬬鼧䧧鰟鮍𥭴𣄽嗻㗲嚉丨夂𡯁屮靑𠂆乛亻㔾尣彑忄㣺扌攵歺氵氺灬爫丬犭𤣩罒礻糹罓𦉪㓁"],["8bde","𦍋耂肀𦘒𦥑卝衤见𧢲讠贝钅镸长门𨸏韦页风飞饣𩠐鱼鸟黄歯龜丷𠂇阝户钢"],["8c40","倻淾𩱳龦㷉袏𤅎灷峵䬠𥇍㕙𥴰愢𨨲辧釶熑朙玺𣊁𪄇㲋𡦀䬐磤琂冮𨜏䀉橣𪊺䈣蘏𠩯稪𩥇𨫪靕灍匤𢁾鏴盙𨧣龧矝亣俰傼丯众龨吴綋墒壐𡶶庒庙忂𢜒斋"],["8ca1","𣏹椙橃𣱣泿"],["8ca7","爀𤔅玌㻛𤨓嬕璹讃𥲤𥚕窓篬糃繬苸薗龩袐龪躹龫迏蕟駠鈡龬𨶹𡐿䁱䊢娚"],["8cc9","顨杫䉶圽"],["8cce","藖𤥻芿𧄍䲁𦵴嵻𦬕𦾾龭龮宖龯曧繛湗秊㶈䓃𣉖𢞖䎚䔶"],["8ce6","峕𣬚諹屸㴒𣕑嵸龲煗䕘𤃬𡸣䱷㥸㑊𠆤𦱁諌侴𠈹妿腬顖𩣺弻"],["8d40","𠮟"],["8d42","𢇁𨥭䄂䚻𩁹㼇龳𪆵䃸㟖䛷𦱆䅼𨚲𧏿䕭㣔𥒚䕡䔛䶉䱻䵶䗪㿈𤬏㙡䓞䒽䇭崾嵈嵖㷼㠏嶤嶹㠠㠸幂庽弥徃㤈㤔㤿㥍惗愽峥㦉憷憹懏㦸戬抐拥挘㧸嚱"],["8da1","㨃揢揻搇摚㩋擀崕嘡龟㪗斆㪽旿晓㫲暒㬢朖㭂枤栀㭘桊梄㭲㭱㭻椉楃牜楤榟榅㮼槖㯝橥橴橱檂㯬檙㯲檫檵櫔櫶殁毁毪汵沪㳋洂洆洦涁㳯涤涱渕渘温溆𨧀溻滢滚齿滨滩漤漴㵆𣽁澁澾㵪㵵熷岙㶊瀬㶑灐灔灯灿炉𠌥䏁㗱𠻘"],["8e40","𣻗垾𦻓焾𥟠㙎榢𨯩孴穉𥣡𩓙穥穽𥦬窻窰竂竃燑𦒍䇊竚竝竪䇯咲𥰁笋筕笩𥌎𥳾箢筯莜𥮴𦱿篐萡箒箸𥴠㶭𥱥蒒篺簆簵𥳁籄粃𤢂粦晽𤕸糉糇糦籴糳糵糎"],["8ea1","繧䔝𦹄絝𦻖璍綉綫焵綳緒𤁗𦀩緤㴓緵𡟹緥𨍭縝𦄡𦅚繮纒䌫鑬縧罀罁罇礶𦋐駡羗𦍑羣𡙡𠁨䕜𣝦䔃𨌺翺𦒉者耈耝耨耯𪂇𦳃耻耼聡𢜔䦉𦘦𣷣𦛨朥肧𨩈脇脚墰𢛶汿𦒘𤾸擧𡒊舘𡡞橓𤩥𤪕䑺舩𠬍𦩒𣵾俹𡓽蓢荢𦬊𤦧𣔰𡝳𣷸芪椛芳䇛"],["8f40","蕋苐茚𠸖𡞴㛁𣅽𣕚艻苢茘𣺋𦶣𦬅𦮗𣗎㶿茝嗬莅䔋𦶥莬菁菓㑾𦻔橗蕚㒖𦹂𢻯葘𥯤葱㷓䓤檧葊𣲵祘蒨𦮖𦹷𦹃蓞萏莑䒠蒓蓤𥲑䉀𥳀䕃蔴嫲𦺙䔧蕳䔖枿蘖"],["8fa1","𨘥𨘻藁𧂈蘂𡖂𧃍䕫䕪蘨㙈𡢢号𧎚虾蝱𪃸蟮𢰧螱蟚蠏噡虬桖䘏衅衆𧗠𣶹𧗤衞袜䙛袴袵揁装睷𧜏覇覊覦覩覧覼𨨥觧𧤤𧪽誜瞓釾誐𧩙竩𧬺𣾏䜓𧬸煼謌謟𥐰𥕥謿譌譍誩𤩺讐讛誯𡛟䘕衏貛𧵔𧶏貫㜥𧵓賖𧶘𧶽贒贃𡤐賛灜贑𤳉㻐起"],["9040","趩𨀂𡀔𤦊㭼𨆼𧄌竧躭躶軃鋔輙輭𨍥𨐒辥錃𪊟𠩐辳䤪𨧞𨔽𣶻廸𣉢迹𪀔𨚼𨔁𢌥㦀𦻗逷𨔼𧪾遡𨕬𨘋邨𨜓郄𨛦邮都酧㫰醩釄粬𨤳𡺉鈎沟鉁鉢𥖹銹𨫆𣲛𨬌𥗛"],["90a1","𠴱錬鍫𨫡𨯫炏嫃𨫢𨫥䥥鉄𨯬𨰹𨯿鍳鑛躼閅閦鐦閠濶䊹𢙺𨛘𡉼𣸮䧟氜陻隖䅬隣𦻕懚隶磵𨫠隽双䦡𦲸𠉴𦐐𩂯𩃥𤫑𡤕𣌊霱虂霶䨏䔽䖅𤫩灵孁霛靜𩇕靗孊𩇫靟鐥僐𣂷𣂼鞉鞟鞱鞾韀韒韠𥑬韮琜𩐳響韵𩐝𧥺䫑頴頳顋顦㬎𧅵㵑𠘰𤅜"],["9140","𥜆飊颷飈飇䫿𦴧𡛓喰飡飦飬鍸餹𤨩䭲𩡗𩤅駵騌騻騐驘𥜥㛄𩂱𩯕髠髢𩬅髴䰎鬔鬭𨘀倴鬴𦦨㣃𣁽魐魀𩴾婅𡡣鮎𤉋鰂鯿鰌𩹨鷔𩾷𪆒𪆫𪃡𪄣𪇟鵾鶃𪄴鸎梈"],["91a1","鷄𢅛𪆓𪈠𡤻𪈳鴹𪂹𪊴麐麕麞麢䴴麪麯𤍤黁㭠㧥㴝伲㞾𨰫鼂鼈䮖鐤𦶢鼗鼖鼹嚟嚊齅馸𩂋韲葿齢齩竜龎爖䮾𤥵𤦻煷𤧸𤍈𤩑玞𨯚𡣺禟𨥾𨸶鍩鏳𨩄鋬鎁鏋𨥬𤒹爗㻫睲穃烐𤑳𤏸煾𡟯炣𡢾𣖙㻇𡢅𥐯𡟸㜢𡛻𡠹㛡𡝴𡣑𥽋㜣𡛀坛𤨥𡏾𡊨"],["9240","𡏆𡒶蔃𣚦蔃葕𤦔𧅥𣸱𥕜𣻻𧁒䓴𣛮𩦝𦼦柹㜳㰕㷧塬𡤢栐䁗𣜿𤃡𤂋𤄏𦰡哋嚞𦚱嚒𠿟𠮨𠸍鏆𨬓鎜仸儫㠙𤐶亼𠑥𠍿佋侊𥙑婨𠆫𠏋㦙𠌊𠐔㐵伩𠋀𨺳𠉵諚𠈌亘"],["92a1","働儍侢伃𤨎𣺊佂倮偬傁俌俥偘僼兙兛兝兞湶𣖕𣸹𣺿浲𡢄𣺉冨凃𠗠䓝𠒣𠒒𠒑赺𨪜𠜎剙劤𠡳勡鍮䙺熌𤎌𠰠𤦬𡃤槑𠸝瑹㻞璙琔瑖玘䮎𤪼𤂍叐㖄爏𤃉喴𠍅响𠯆圝鉝雴鍦埝垍坿㘾壋媙𨩆𡛺𡝯𡜐娬妸銏婾嫏娒𥥆𡧳𡡡𤊕㛵洅瑃娡𥺃"],["9340","媁𨯗𠐓鏠璌𡌃焅䥲鐈𨧻鎽㞠尞岞幞幈𡦖𡥼𣫮廍孏𡤃𡤄㜁𡢠㛝𡛾㛓脪𨩇𡶺𣑲𨦨弌弎𡤧𡞫婫𡜻孄蘔𧗽衠恾𢡠𢘫忛㺸𢖯𢖾𩂈𦽳懀𠀾𠁆𢘛憙憘恵𢲛𢴇𤛔𩅍"],["93a1","摱𤙥𢭪㨩𢬢𣑐𩣪𢹸挷𪑛撶挱揑𤧣𢵧护𢲡搻敫楲㯴𣂎𣊭𤦉𣊫唍𣋠𡣙𩐿曎𣊉𣆳㫠䆐𥖄𨬢𥖏𡛼𥕛𥐥磮𣄃𡠪𣈴㑤𣈏𣆂𤋉暎𦴤晫䮓昰𧡰𡷫晣𣋒𣋡昞𥡲㣑𣠺𣞼㮙𣞢𣏾瓐㮖枏𤘪梶栞㯄檾㡣𣟕𤒇樳橒櫉欅𡤒攑梘橌㯗橺歗𣿀𣲚鎠鋲𨯪𨫋"],["9440","銉𨀞𨧜鑧涥漋𤧬浧𣽿㶏渄𤀼娽渊塇洤硂焻𤌚𤉶烱牐犇犔𤞏𤜥兹𤪤𠗫瑺𣻸𣙟𤩊𤤗𥿡㼆㺱𤫟𨰣𣼵悧㻳瓌琼鎇琷䒟𦷪䕑疃㽣𤳙𤴆㽘畕癳𪗆㬙瑨𨫌𤦫𤦎㫻"],["94a1","㷍𤩎㻿𤧅𤣳釺圲鍂𨫣𡡤僟𥈡𥇧睸𣈲眎眏睻𤚗𣞁㩞𤣰琸璛㺿𤪺𤫇䃈𤪖𦆮錇𥖁砞碍碈磒珐祙𧝁𥛣䄎禛蒖禥樭𣻺稺秴䅮𡛦䄲鈵秱𠵌𤦌𠊙𣶺𡝮㖗啫㕰㚪𠇔𠰍竢婙𢛵𥪯𥪜娍𠉛磰娪𥯆竾䇹籝籭䈑𥮳𥺼𥺦糍𤧹𡞰粎籼粮檲緜縇緓罎𦉡"],["9540","𦅜𧭈綗𥺂䉪𦭵𠤖柖𠁎𣗏埄𦐒𦏸𤥢翝笧𠠬𥫩𥵃笌𥸎駦虅驣樜𣐿㧢𤧷𦖭騟𦖠蒀𧄧𦳑䓪脷䐂胆脉腂𦞴飃𦩂艢艥𦩑葓𦶧蘐𧈛媆䅿𡡀嬫𡢡嫤𡣘蚠蜨𣶏蠭𧐢娂"],["95a1","衮佅袇袿裦襥襍𥚃襔𧞅𧞄𨯵𨯙𨮜𨧹㺭蒣䛵䛏㟲訽訜𩑈彍鈫𤊄旔焩烄𡡅鵭貟賩𧷜妚矃姰䍮㛔踪躧𤰉輰轊䋴汘澻𢌡䢛潹溋𡟚鯩㚵𤤯邻邗啱䤆醻鐄𨩋䁢𨫼鐧𨰝𨰻蓥訫閙閧閗閖𨴴瑅㻂𤣿𤩂𤏪㻧𣈥随𨻧𨹦𨹥㻌𤧭𤩸𣿮琒瑫㻼靁𩂰"],["9640","桇䨝𩂓𥟟靝鍨𨦉𨰦𨬯𦎾銺嬑譩䤼珹𤈛鞛靱餸𠼦巁𨯅𤪲頟𩓚鋶𩗗釥䓀𨭐𤩧𨭤飜𨩅㼀鈪䤥萔餻饍𧬆㷽馛䭯馪驜𨭥𥣈檏騡嫾騯𩣱䮐𩥈馼䮽䮗鍽塲𡌂堢𤦸"],["96a1","𡓨硄𢜟𣶸棅㵽鑘㤧慐𢞁𢥫愇鱏鱓鱻鰵鰐魿鯏𩸭鮟𪇵𪃾鴡䲮𤄄鸘䲰鴌𪆴𪃭𪃳𩤯鶥蒽𦸒𦿟𦮂藼䔳𦶤𦺄𦷰萠藮𦸀𣟗𦁤秢𣖜𣙀䤭𤧞㵢鏛銾鍈𠊿碹鉷鑍俤㑀遤𥕝砽硔碶硋𡝗𣇉𤥁㚚佲濚濙瀞瀞吔𤆵垻壳垊鴖埗焴㒯𤆬燫𦱀𤾗嬨𡞵𨩉"],["9740","愌嫎娋䊼𤒈㜬䭻𨧼鎻鎸𡣖𠼝葲𦳀𡐓𤋺𢰦𤏁妔𣶷𦝁綨𦅛𦂤𤦹𤦋𨧺鋥珢㻩璴𨭣𡢟㻡𤪳櫘珳珻㻖𤨾𤪔𡟙𤩦𠎧𡐤𤧥瑈𤤖炥𤥶銄珦鍟𠓾錱𨫎𨨖鎆𨯧𥗕䤵𨪂煫"],["97a1","𤥃𠳿嚤𠘚𠯫𠲸唂秄𡟺緾𡛂𤩐𡡒䔮鐁㜊𨫀𤦭妰𡢿𡢃𧒄媡㛢𣵛㚰鉟婹𨪁𡡢鍴㳍𠪴䪖㦊僴㵩㵌𡎜煵䋻𨈘渏𩃤䓫浗𧹏灧沯㳖𣿭𣸭渂漌㵯𠏵畑㚼㓈䚀㻚䡱姄鉮䤾轁𨰜𦯀堒埈㛖𡑒烾𤍢𤩱𢿣𡊰𢎽梹楧𡎘𣓥𧯴𣛟𨪃𣟖𣏺𤲟樚𣚭𦲷萾䓟䓎"],["9840","𦴦𦵑𦲂𦿞漗𧄉茽𡜺菭𦲀𧁓𡟛妉媂𡞳婡婱𡤅𤇼㜭姯𡜼㛇熎鎐暚𤊥婮娫𤊓樫𣻹𧜶𤑛𤋊焝𤉙𨧡侰𦴨峂𤓎𧹍𤎽樌𤉖𡌄炦焳𤏩㶥泟勇𤩏繥姫崯㷳彜𤩝𡟟綤萦"],["98a1","咅𣫺𣌀𠈔坾𠣕𠘙㿥𡾞𪊶瀃𩅛嵰玏糓𨩙𩐠俈翧狍猐𧫴猸猹𥛶獁獈㺩𧬘遬燵𤣲珡臶㻊県㻑沢国琙琞琟㻢㻰㻴㻺瓓㼎㽓畂畭畲疍㽼痈痜㿀癍㿗癴㿜発𤽜熈嘣覀塩䀝睃䀹条䁅㗛瞘䁪䁯属瞾矋売砘点砜䂨砹硇硑硦葈𥔵礳栃礲䄃"],["9940","䄉禑禙辻稆込䅧窑䆲窼艹䇄竏竛䇏両筢筬筻簒簛䉠䉺类粜䊌粸䊔糭输烀𠳏総緔緐緽羮羴犟䎗耠耥笹耮耱联㷌垴炠肷胩䏭脌猪脎脒畠脔䐁㬹腖腙腚"],["99a1","䐓堺腼膄䐥膓䐭膥埯臁臤艔䒏芦艶苊苘苿䒰荗险榊萅烵葤惣蒈䔄蒾蓡蓸蔐蔸蕒䔻蕯蕰藠䕷虲蚒蚲蛯际螋䘆䘗袮裿褤襇覑𧥧訩訸誔誴豑賔賲贜䞘塟跃䟭仮踺嗘坔蹱嗵躰䠷軎転軤軭軲辷迁迊迌逳駄䢭飠鈓䤞鈨鉘鉫銱銮銿"],["9a40","鋣鋫鋳鋴鋽鍃鎄鎭䥅䥑麿鐗匁鐝鐭鐾䥪鑔鑹锭関䦧间阳䧥枠䨤靀䨵鞲韂噔䫤惨颹䬙飱塄餎餙冴餜餷饂饝饢䭰駅䮝騼鬏窃魩鮁鯝鯱鯴䱭鰠㝯𡯂鵉鰺"],["9aa1","黾噐鶓鶽鷀鷼银辶鹻麬麱麽黆铜黢黱黸竈齄𠂔𠊷𠎠椚铃妬𠓗塀铁㞹𠗕𠘕𠙶𡚺块煳𠫂𠫍𠮿呪吆𠯋咞𠯻𠰻𠱓𠱥𠱼惧𠲍噺𠲵𠳝𠳭𠵯𠶲𠷈楕鰯螥𠸄𠸎𠻗𠾐𠼭𠹳尠𠾼帋𡁜𡁏𡁶朞𡁻𡂈𡂖㙇𡂿𡃓𡄯𡄻卤蒭𡋣𡍵𡌶讁𡕷𡘙𡟃𡟇乸炻𡠭𡥪"],["9b40","𡨭𡩅𡰪𡱰𡲬𡻈拃𡻕𡼕熘桕𢁅槩㛈𢉼𢏗𢏺𢜪𢡱𢥏苽𢥧𢦓𢫕覥𢫨辠𢬎鞸𢬿顇骽𢱌"],["9b62","𢲈𢲷𥯨𢴈𢴒𢶷𢶕𢹂𢽴𢿌𣀳𣁦𣌟𣏞徱晈暿𧩹𣕧𣗳爁𤦺矗𣘚𣜖纇𠍆墵朎"],["9ba1","椘𣪧𧙗𥿢𣸑𣺹𧗾𢂚䣐䪸𤄙𨪚𤋮𤌍𤀻𤌴𤎖𤩅𠗊凒𠘑妟𡺨㮾𣳿𤐄𤓖垈𤙴㦛𤜯𨗨𩧉㝢𢇃譞𨭎駖𤠒𤣻𤨕爉𤫀𠱸奥𤺥𤾆𠝹軚𥀬劏圿煱𥊙𥐙𣽊𤪧喼𥑆𥑮𦭒釔㑳𥔿𧘲𥕞䜘𥕢𥕦𥟇𤤿𥡝偦㓻𣏌惞𥤃䝼𨥈𥪮𥮉𥰆𡶐垡煑澶𦄂𧰒遖𦆲𤾚譢𦐂𦑊"],["9c40","嵛𦯷輶𦒄𡤜諪𤧶𦒈𣿯𦔒䯀𦖿𦚵𢜛鑥𥟡憕娧晉侻嚹𤔡𦛼乪𤤴陖涏𦲽㘘襷𦞙𦡮𦐑𦡞營𦣇筂𩃀𠨑𦤦鄄𦤹穅鷰𦧺騦𦨭㙟𦑩𠀡禃𦨴𦭛崬𣔙菏𦮝䛐𦲤画补𦶮墶"],["9ca1","㜜𢖍𧁋𧇍㱔𧊀𧊅銁𢅺𧊋錰𧋦𤧐氹钟𧑐𠻸蠧裵𢤦𨑳𡞱溸𤨪𡠠㦤㚹尐秣䔿暶𩲭𩢤襃𧟌𧡘囖䃟𡘊㦡𣜯𨃨𡏅熭荦𧧝𩆨婧䲷𧂯𨦫𧧽𧨊𧬋𧵦𤅺筃祾𨀉澵𪋟樃𨌘厢𦸇鎿栶靝𨅯𨀣𦦵𡏭𣈯𨁈嶅𨰰𨂃圕頣𨥉嶫𤦈斾槕叒𤪥𣾁㰑朶𨂐𨃴𨄮𡾡𨅏"],["9d40","𨆉𨆯𨈚𨌆𨌯𨎊㗊𨑨𨚪䣺揦𨥖砈鉕𨦸䏲𨧧䏟𨧨𨭆𨯔姸𨰉輋𨿅𩃬筑𩄐𩄼㷷𩅞𤫊运犏嚋𩓧𩗩𩖰𩖸𩜲𩣑𩥉𩥪𩧃𩨨𩬎𩵚𩶛纟𩻸𩼣䲤镇𪊓熢𪋿䶑递𪗋䶜𠲜达嗁"],["9da1","辺𢒰边𤪓䔉繿潖檱仪㓤𨬬𧢝㜺躀𡟵𨀤𨭬𨮙𧨾𦚯㷫𧙕𣲷𥘵𥥖亚𥺁𦉘嚿𠹭踎孭𣺈𤲞揞拐𡟶𡡻攰嘭𥱊吚𥌑㷆𩶘䱽嘢嘞罉𥻘奵𣵀蝰东𠿪𠵉𣚺脗鵞贘瘻鱅癎瞹鍅吲腈苷嘥脲萘肽嗪祢噃吖𠺝㗎嘅嗱曱𨋢㘭甴嗰喺咗啲𠱁𠲖廐𥅈𠹶𢱢"],["9e40","𠺢麫絚嗞𡁵抝靭咔賍燶酶揼掹揾啩𢭃鱲𢺳冚㓟𠶧冧呍唞唓癦踭𦢊疱肶蠄螆裇膶萜𡃁䓬猄𤜆宐茋𦢓噻𢛴𧴯𤆣𧵳𦻐𧊶酰𡇙鈈𣳼𪚩𠺬𠻹牦𡲢䝎𤿂𧿹𠿫䃺"],["9ea1","鱝攟𢶠䣳𤟠𩵼𠿬𠸊恢𧖣𠿭"],["9ead","𦁈𡆇熣纎鵐业丄㕷嬍沲卧㚬㧜卽㚥𤘘墚𤭮舭呋垪𥪕𠥹"],["9ec5","㩒𢑥獴𩺬䴉鯭𣳾𩼰䱛𤾩𩖞𩿞葜𣶶𧊲𦞳𣜠挮紥𣻷𣸬㨪逈勌㹴㙺䗩𠒎癀嫰𠺶硺𧼮墧䂿噼鮋嵴癔𪐴麅䳡痹㟻愙𣃚𤏲"],["9ef5","噝𡊩垧𤥣𩸆刴𧂮㖭汊鵼"],["9f40","籖鬹埞𡝬屓擓𩓐𦌵𧅤蚭𠴨𦴢𤫢𠵱"],["9f4f","凾𡼏嶎霃𡷑麁遌笟鬂峑箣扨挵髿篏鬪籾鬮籂粆鰕篼鬉鼗鰛𤤾齚啳寃俽麘俲剠㸆勑坧偖妷帒韈鶫轜呩鞴饀鞺匬愰"],["9fa1","椬叚鰊鴂䰻陁榀傦畆𡝭駚剳"],["9fae","酙隁酜"],["9fb2","酑𨺗捿𦴣櫊嘑醎畺抅𠏼獏籰𥰡𣳽"],["9fc1","𤤙盖鮝个𠳔莾衂"],["9fc9","届槀僭坺刟巵从氱𠇲伹咜哚劚趂㗾弌㗳"],["9fdb","歒酼龥鮗頮颴骺麨麄煺笔"],["9fe7","毺蠘罸"],["9feb","嘠𪙊蹷齓"],["9ff0","跔蹏鸜踁抂𨍽踨蹵竓𤩷稾磘泪詧瘇"],["a040","𨩚鼦泎蟖痃𪊲硓咢贌狢獱謭猂瓱賫𤪻蘯徺袠䒷"],["a055","𡠻𦸅"],["a058","詾𢔛"],["a05b","惽癧髗鵄鍮鮏蟵"],["a063","蠏賷猬霡鮰㗖犲䰇籑饊𦅙慙䰄麖慽"],["a073","坟慯抦戹拎㩜懢厪𣏵捤栂㗒"],["a0a1","嵗𨯂迚𨸹"],["a0a6","僙𡵆礆匲阸𠼻䁥"],["a0ae","矾"],["a0b0","糂𥼚糚稭聦聣絍甅瓲覔舚朌聢𧒆聛瓰脃眤覉𦟌畓𦻑螩蟎臈螌詉貭譃眫瓸蓚㘵榲趦"],["a0d4","覩瑨涹蟁𤀑瓧㷛煶悤憜㳑煢恷"],["a0e2","罱𨬭牐惩䭾删㰘𣳇𥻗𧙖𥔱𡥄𡋾𩤃𦷜𧂭峁𦆭𨨏𣙷𠃮𦡆𤼎䕢嬟𦍌齐麦𦉫"],["a3c0","␀",31,"␡"],["c6a1","①",9,"⑴",9,"ⅰ",9,"丶丿亅亠冂冖冫勹匸卩厶夊宀巛⼳广廴彐彡攴无疒癶辵隶¨ˆヽヾゝゞ〃仝々〆〇ー[]✽ぁ",23],["c740","す",58,"ァアィイ"],["c7a1","ゥ",81,"А",5,"ЁЖ",4],["c840","Л",26,"ёж",25,"⇧↸↹㇏𠃌乚𠂊刂䒑"],["c8a1","龰冈龱𧘇"],["c8cd","¬¦'"㈱№℡゛゜⺀⺄⺆⺇⺈⺊⺌⺍⺕⺜⺝⺥⺧⺪⺬⺮⺶⺼⺾⻆⻊⻌⻍⻏⻖⻗⻞⻣"],["c8f5","ʃɐɛɔɵœøŋʊɪ"],["f9fe","■"],["fa40","𠕇鋛𠗟𣿅蕌䊵珯况㙉𤥂𨧤鍄𡧛苮𣳈砼杄拟𤤳𨦪𠊠𦮳𡌅侫𢓭倈𦴩𧪄𣘀𤪱𢔓倩𠍾徤𠎀𠍇滛𠐟偽儁㑺儎顬㝃萖𤦤𠒇兠𣎴兪𠯿𢃼𠋥𢔰𠖎𣈳𡦃宂蝽𠖳𣲙冲冸"],["faa1","鴴凉减凑㳜凓𤪦决凢卂凭菍椾𣜭彻刋刦刼劵剗劔効勅簕蕂勠蘍𦬓包𨫞啉滙𣾀𠥔𣿬匳卄𠯢泋𡜦栛珕恊㺪㣌𡛨燝䒢卭却𨚫卾卿𡖖𡘓矦厓𨪛厠厫厮玧𥝲㽙玜叁叅汉义埾叙㪫𠮏叠𣿫𢶣叶𠱷吓灹唫晗浛呭𦭓𠵴啝咏咤䞦𡜍𠻝㶴𠵍"],["fb40","𨦼𢚘啇䳭启琗喆喩嘅𡣗𤀺䕒𤐵暳𡂴嘷曍𣊊暤暭噍噏磱囱鞇叾圀囯园𨭦㘣𡉏坆𤆥汮炋坂㚱𦱾埦𡐖堃𡑔𤍣堦𤯵塜墪㕡壠壜𡈼壻寿坃𪅐𤉸鏓㖡够梦㛃湙"],["fba1","𡘾娤啓𡚒蔅姉𠵎𦲁𦴪𡟜姙𡟻𡞲𦶦浱𡠨𡛕姹𦹅媫婣㛦𤦩婷㜈媖瑥嫓𦾡𢕔㶅𡤑㜲𡚸広勐孶斈孼𧨎䀄䡝𠈄寕慠𡨴𥧌𠖥寳宝䴐尅𡭄尓珎尔𡲥𦬨屉䣝岅峩峯嶋𡷹𡸷崐崘嵆𡺤岺巗苼㠭𤤁𢁉𢅳芇㠶㯂帮檊幵幺𤒼𠳓厦亷廐厨𡝱帉廴𨒂"],["fc40","廹廻㢠廼栾鐛弍𠇁弢㫞䢮𡌺强𦢈𢏐彘𢑱彣鞽𦹮彲鍀𨨶徧嶶㵟𥉐𡽪𧃸𢙨釖𠊞𨨩怱暅𡡷㥣㷇㘹垐𢞴祱㹀悞悤悳𤦂𤦏𧩓璤僡媠慤萤慂慈𦻒憁凴𠙖憇宪𣾷"],["fca1","𢡟懓𨮝𩥝懐㤲𢦀𢣁怣慜攞掋𠄘担𡝰拕𢸍捬𤧟㨗搸揸𡎎𡟼撐澊𢸶頔𤂌𥜝擡擥鑻㩦携㩗敍漖𤨨𤨣斅敭敟𣁾斵𤥀䬷旑䃘𡠩无旣忟𣐀昘𣇷𣇸晄𣆤𣆥晋𠹵晧𥇦晳晴𡸽𣈱𨗴𣇈𥌓矅𢣷馤朂𤎜𤨡㬫槺𣟂杞杧杢𤇍𩃭柗䓩栢湐鈼栁𣏦𦶠桝"],["fd40","𣑯槡樋𨫟楳棃𣗍椁椀㴲㨁𣘼㮀枬楡𨩊䋼椶榘㮡𠏉荣傐槹𣙙𢄪橅𣜃檝㯳枱櫈𩆜㰍欝𠤣惞欵歴𢟍溵𣫛𠎵𡥘㝀吡𣭚毡𣻼毜氷𢒋𤣱𦭑汚舦汹𣶼䓅𣶽𤆤𤤌𤤀"],["fda1","𣳉㛥㳫𠴲鮃𣇹𢒑羏样𦴥𦶡𦷫涖浜湼漄𤥿𤂅𦹲蔳𦽴凇沜渝萮𨬡港𣸯瑓𣾂秌湏媑𣁋濸㜍澝𣸰滺𡒗𤀽䕕鏰潄潜㵎潴𩅰㴻澟𤅄濓𤂑𤅕𤀹𣿰𣾴𤄿凟𤅖𤅗𤅀𦇝灋灾炧炁烌烕烖烟䄄㷨熴熖𤉷焫煅媈煊煮岜𤍥煏鍢𤋁焬𤑚𤨧𤨢熺𨯨炽爎"],["fe40","鑂爕夑鑃爤鍁𥘅爮牀𤥴梽牕牗㹕𣁄栍漽犂猪猫𤠣𨠫䣭𨠄猨献珏玪𠰺𦨮珉瑉𤇢𡛧𤨤昣㛅𤦷𤦍𤧻珷琕椃𤨦琹𠗃㻗瑜𢢭瑠𨺲瑇珤瑶莹瑬㜰瑴鏱樬璂䥓𤪌"],["fea1","𤅟𤩹𨮏孆𨰃𡢞瓈𡦈甎瓩甞𨻙𡩋寗𨺬鎅畍畊畧畮𤾂㼄𤴓疎瑝疞疴瘂瘬癑癏癯癶𦏵皐臯㟸𦤑𦤎皡皥皷盌𦾟葢𥂝𥅽𡸜眞眦着撯𥈠睘𣊬瞯𨥤𨥨𡛁矴砉𡍶𤨒棊碯磇磓隥礮𥗠磗礴碱𧘌辸袄𨬫𦂃𢘜禆褀椂禀𥡗禝𧬹礼禩渪𧄦㺨秆𩄍秔"]]')},830:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127,"€"],["8140","丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪",5,"乲乴",9,"乿",6,"亇亊"],["8180","亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂",6,"伋伌伒",4,"伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾",4,"佄佅佇",5,"佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢"],["8240","侤侫侭侰",4,"侶",8,"俀俁係俆俇俈俉俋俌俍俒",4,"俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿",11],["8280","個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯",10,"倻倽倿偀偁偂偄偅偆偉偊偋偍偐",4,"偖偗偘偙偛偝",7,"偦",5,"偭",8,"偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎",20,"傤傦傪傫傭",4,"傳",6,"傼"],["8340","傽",17,"僐",5,"僗僘僙僛",10,"僨僩僪僫僯僰僱僲僴僶",4,"僼",9,"儈"],["8380","儉儊儌",5,"儓",13,"儢",28,"兂兇兊兌兎兏児兒兓兗兘兙兛兝",4,"兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦",4,"冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒",5],["8440","凘凙凚凜凞凟凢凣凥",5,"凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄",5,"剋剎剏剒剓剕剗剘"],["8480","剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳",9,"剾劀劃",4,"劉",6,"劑劒劔",6,"劜劤劥劦劧劮劯劰労",9,"勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務",5,"勠勡勢勣勥",10,"勱",7,"勻勼勽匁匂匃匄匇匉匊匋匌匎"],["8540","匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯",9,"匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏"],["8580","厐",4,"厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯",6,"厷厸厹厺厼厽厾叀參",4,"収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝",4,"呣呥呧呩",7,"呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡"],["8640","咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠",4,"哫哬哯哰哱哴",5,"哻哾唀唂唃唄唅唈唊",4,"唒唓唕",5,"唜唝唞唟唡唥唦"],["8680","唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋",4,"啑啒啓啔啗",4,"啝啞啟啠啢啣啨啩啫啯",5,"啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠",6,"喨",8,"喲喴営喸喺喼喿",4,"嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗",4,"嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸",4,"嗿嘂嘃嘄嘅"],["8740","嘆嘇嘊嘋嘍嘐",7,"嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀",11,"噏",4,"噕噖噚噛噝",4],["8780","噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽",7,"嚇",6,"嚐嚑嚒嚔",14,"嚤",10,"嚰",6,"嚸嚹嚺嚻嚽",12,"囋",8,"囕囖囘囙囜団囥",5,"囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國",6],["8840","園",9,"圝圞圠圡圢圤圥圦圧圫圱圲圴",4,"圼圽圿坁坃坄坅坆坈坉坋坒",4,"坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀"],["8880","垁垇垈垉垊垍",4,"垔",6,"垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹",8,"埄",6,"埌埍埐埑埓埖埗埛埜埞埡埢埣埥",7,"埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥",4,"堫",4,"報堲堳場堶",7],["8940","堾",5,"塅",6,"塎塏塐塒塓塕塖塗塙",4,"塟",5,"塦",4,"塭",16,"塿墂墄墆墇墈墊墋墌"],["8980","墍",4,"墔",4,"墛墜墝墠",7,"墪",17,"墽墾墿壀壂壃壄壆",10,"壒壓壔壖",13,"壥",5,"壭壯壱売壴壵壷壸壺",7,"夃夅夆夈",4,"夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻"],["8a40","夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛",4,"奡奣奤奦",12,"奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦"],["8a80","妧妬妭妰妱妳",5,"妺妼妽妿",6,"姇姈姉姌姍姎姏姕姖姙姛姞",4,"姤姦姧姩姪姫姭",11,"姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪",6,"娳娵娷",4,"娽娾娿婁",4,"婇婈婋",9,"婖婗婘婙婛",5],["8b40","婡婣婤婥婦婨婩婫",8,"婸婹婻婼婽婾媀",17,"媓",6,"媜",13,"媫媬"],["8b80","媭",4,"媴媶媷媹",4,"媿嫀嫃",5,"嫊嫋嫍",4,"嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬",4,"嫲",22,"嬊",11,"嬘",25,"嬳嬵嬶嬸",7,"孁",6],["8c40","孈",7,"孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏"],["8c80","寑寔",8,"寠寢寣實寧審",4,"寯寱",6,"寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧",6,"屰屲",6,"屻屼屽屾岀岃",4,"岉岊岋岎岏岒岓岕岝",4,"岤",4],["8d40","岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅",5,"峌",5,"峓",5,"峚",6,"峢峣峧峩峫峬峮峯峱",9,"峼",4],["8d80","崁崄崅崈",5,"崏",4,"崕崗崘崙崚崜崝崟",4,"崥崨崪崫崬崯",4,"崵",7,"崿",7,"嵈嵉嵍",10,"嵙嵚嵜嵞",10,"嵪嵭嵮嵰嵱嵲嵳嵵",12,"嶃",21,"嶚嶛嶜嶞嶟嶠"],["8e40","嶡",21,"嶸",12,"巆",6,"巎",12,"巜巟巠巣巤巪巬巭"],["8e80","巰巵巶巸",4,"巿帀帄帇帉帊帋帍帎帒帓帗帞",7,"帨",4,"帯帰帲",4,"帹帺帾帿幀幁幃幆",5,"幍",6,"幖",4,"幜幝幟幠幣",14,"幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨",4,"庮",4,"庴庺庻庼庽庿",6],["8f40","廆廇廈廋",5,"廔廕廗廘廙廚廜",11,"廩廫",8,"廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤"],["8f80","弨弫弬弮弰弲",6,"弻弽弾弿彁",14,"彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢",5,"復徫徬徯",5,"徶徸徹徺徻徾",4,"忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇"],["9040","怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰",4,"怶",4,"怽怾恀恄",6,"恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀"],["9080","悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽",7,"惇惈惉惌",4,"惒惓惔惖惗惙惛惞惡",4,"惪惱惲惵惷惸惻",4,"愂愃愄愅愇愊愋愌愐",4,"愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬",18,"慀",6],["9140","慇慉態慍慏慐慒慓慔慖",6,"慞慟慠慡慣慤慥慦慩",6,"慱慲慳慴慶慸",18,"憌憍憏",4,"憕"],["9180","憖",6,"憞",8,"憪憫憭",9,"憸",5,"憿懀懁懃",4,"應懌",4,"懓懕",16,"懧",13,"懶",8,"戀",5,"戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸",4,"扂扄扅扆扊"],["9240","扏扐払扖扗扙扚扜",6,"扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋",5,"抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁"],["9280","拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳",5,"挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖",7,"捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙",6,"採掤掦掫掯掱掲掵掶掹掻掽掿揀"],["9340","揁揂揃揅揇揈揊揋揌揑揓揔揕揗",6,"揟揢揤",4,"揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆",4,"損搎搑搒搕",5,"搝搟搢搣搤"],["9380","搥搧搨搩搫搮",5,"搵",4,"搻搼搾摀摂摃摉摋",6,"摓摕摖摗摙",4,"摟",7,"摨摪摫摬摮",9,"摻",6,"撃撆撈",8,"撓撔撗撘撚撛撜撝撟",4,"撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆",6,"擏擑擓擔擕擖擙據"],["9440","擛擜擝擟擠擡擣擥擧",24,"攁",7,"攊",7,"攓",4,"攙",8],["9480","攢攣攤攦",4,"攬攭攰攱攲攳攷攺攼攽敀",4,"敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數",14,"斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱",7,"斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘",7,"旡旣旤旪旫"],["9540","旲旳旴旵旸旹旻",4,"昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷",4,"昽昿晀時晄",6,"晍晎晐晑晘"],["9580","晙晛晜晝晞晠晢晣晥晧晩",4,"晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘",4,"暞",8,"暩",4,"暯",4,"暵暶暷暸暺暻暼暽暿",25,"曚曞",7,"曧曨曪",5,"曱曵曶書曺曻曽朁朂會"],["9640","朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠",5,"朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗",4,"杝杢杣杤杦杧杫杬杮東杴杶"],["9680","杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹",7,"柂柅",9,"柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵",7,"柾栁栂栃栄栆栍栐栒栔栕栘",4,"栞栟栠栢",6,"栫",6,"栴栵栶栺栻栿桇桋桍桏桒桖",5],["9740","桜桝桞桟桪桬",7,"桵桸",8,"梂梄梇",7,"梐梑梒梔梕梖梘",9,"梣梤梥梩梪梫梬梮梱梲梴梶梷梸"],["9780","梹",6,"棁棃",5,"棊棌棎棏棐棑棓棔棖棗棙棛",4,"棡棢棤",9,"棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆",4,"椌椏椑椓",11,"椡椢椣椥",7,"椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃",16,"楕楖楘楙楛楜楟"],["9840","楡楢楤楥楧楨楩楪楬業楯楰楲",4,"楺楻楽楾楿榁榃榅榊榋榌榎",5,"榖榗榙榚榝",9,"榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽"],["9880","榾榿槀槂",7,"構槍槏槑槒槓槕",5,"槜槝槞槡",11,"槮槯槰槱槳",9,"槾樀",9,"樋",11,"標",5,"樠樢",5,"権樫樬樭樮樰樲樳樴樶",6,"樿",4,"橅橆橈",7,"橑",6,"橚"],["9940","橜",4,"橢橣橤橦",10,"橲",6,"橺橻橽橾橿檁檂檃檅",8,"檏檒",4,"檘",7,"檡",5],["9980","檧檨檪檭",114,"欥欦欨",6],["9a40","欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍",11,"歚",7,"歨歩歫",13,"歺歽歾歿殀殅殈"],["9a80","殌殎殏殐殑殔殕殗殘殙殜",4,"殢",7,"殫",7,"殶殸",6,"毀毃毄毆",4,"毌毎毐毑毘毚毜",4,"毢",7,"毬毭毮毰毱毲毴毶毷毸毺毻毼毾",6,"氈",4,"氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋",4,"汑汒汓汖汘"],["9b40","汙汚汢汣汥汦汧汫",4,"汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘"],["9b80","泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟",5,"洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽",4,"涃涄涆涇涊涋涍涏涐涒涖",4,"涜涢涥涬涭涰涱涳涴涶涷涹",5,"淁淂淃淈淉淊"],["9c40","淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽",7,"渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵"],["9c80","渶渷渹渻",7,"湅",7,"湏湐湑湒湕湗湙湚湜湝湞湠",10,"湬湭湯",14,"満溁溂溄溇溈溊",4,"溑",6,"溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪",5],["9d40","滰滱滲滳滵滶滷滸滺",7,"漃漄漅漇漈漊",4,"漐漑漒漖",9,"漡漢漣漥漦漧漨漬漮漰漲漴漵漷",6,"漿潀潁潂"],["9d80","潃潄潅潈潉潊潌潎",9,"潙潚潛潝潟潠潡潣潤潥潧",5,"潯潰潱潳潵潶潷潹潻潽",6,"澅澆澇澊澋澏",12,"澝澞澟澠澢",4,"澨",10,"澴澵澷澸澺",5,"濁濃",5,"濊",6,"濓",10,"濟濢濣濤濥"],["9e40","濦",7,"濰",32,"瀒",7,"瀜",6,"瀤",6],["9e80","瀫",9,"瀶瀷瀸瀺",17,"灍灎灐",13,"灟",11,"灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞",12,"炰炲炴炵炶為炾炿烄烅烆烇烉烋",12,"烚"],["9f40","烜烝烞烠烡烢烣烥烪烮烰",6,"烸烺烻烼烾",10,"焋",4,"焑焒焔焗焛",10,"焧",7,"焲焳焴"],["9f80","焵焷",13,"煆煇煈煉煋煍煏",12,"煝煟",4,"煥煩",4,"煯煰煱煴煵煶煷煹煻煼煾",5,"熅",4,"熋熌熍熎熐熑熒熓熕熖熗熚",4,"熡",6,"熩熪熫熭",5,"熴熶熷熸熺",8,"燄",9,"燏",4],["a040","燖",9,"燡燢燣燤燦燨",5,"燯",9,"燺",11,"爇",19],["a080","爛爜爞",9,"爩爫爭爮爯爲爳爴爺爼爾牀",6,"牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅",4,"犌犎犐犑犓",11,"犠",11,"犮犱犲犳犵犺",6,"狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛"],["a1a1"," 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈",7,"〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓"],["a2a1","ⅰ",9],["a2b1","⒈",19,"⑴",19,"①",9],["a2e5","㈠",9],["a2f1","Ⅰ",11],["a3a1","!"#¥%",88," ̄"],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a6e0","︵︶︹︺︿﹀︽︾﹁﹂﹃﹄"],["a6ee","︻︼︷︸︱"],["a6f4","︳︴"],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a840","ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═",35,"▁",6],["a880","█",7,"▓▔▕▼▽◢◣◤◥☉⊕〒〝〞"],["a8a1","āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ"],["a8bd","ńň"],["a8c0","ɡ"],["a8c5","ㄅ",36],["a940","〡",8,"㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦"],["a959","℡㈱"],["a95c","‐"],["a960","ー゛゜ヽヾ〆ゝゞ﹉",9,"﹔﹕﹖﹗﹙",8],["a980","﹢",4,"﹨﹩﹪﹫"],["a996","〇"],["a9a4","─",75],["aa40","狜狝狟狢",5,"狪狫狵狶狹狽狾狿猀猂猄",5,"猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀",8],["aa80","獉獊獋獌獎獏獑獓獔獕獖獘",7,"獡",10,"獮獰獱"],["ab40","獲",11,"獿",4,"玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣",5,"玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃",4],["ab80","珋珌珎珒",6,"珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳",4],["ac40","珸",10,"琄琇琈琋琌琍琎琑",8,"琜",5,"琣琤琧琩琫琭琯琱琲琷",4,"琽琾琿瑀瑂",11],["ac80","瑎",6,"瑖瑘瑝瑠",12,"瑮瑯瑱",4,"瑸瑹瑺"],["ad40","瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑",10,"璝璟",7,"璪",15,"璻",12],["ad80","瓈",9,"瓓",8,"瓝瓟瓡瓥瓧",6,"瓰瓱瓲"],["ae40","瓳瓵瓸",6,"甀甁甂甃甅",7,"甎甐甒甔甕甖甗甛甝甞甠",4,"甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘"],["ae80","畝",7,"畧畨畩畫",6,"畳畵當畷畺",4,"疀疁疂疄疅疇"],["af40","疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦",4,"疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇"],["af80","瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄"],["b040","癅",6,"癎",5,"癕癗",4,"癝癟癠癡癢癤",6,"癬癭癮癰",7,"癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛"],["b080","皜",7,"皥",8,"皯皰皳皵",9,"盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥"],["b140","盄盇盉盋盌盓盕盙盚盜盝盞盠",4,"盦",7,"盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎",10,"眛眜眝眞眡眣眤眥眧眪眫"],["b180","眬眮眰",4,"眹眻眽眾眿睂睄睅睆睈",7,"睒",7,"睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳"],["b240","睝睞睟睠睤睧睩睪睭",11,"睺睻睼瞁瞂瞃瞆",5,"瞏瞐瞓",11,"瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶",4],["b280","瞼瞾矀",12,"矎",8,"矘矙矚矝",4,"矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖"],["b340","矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃",5,"砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚"],["b380","硛硜硞",11,"硯",7,"硸硹硺硻硽",6,"场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚"],["b440","碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨",7,"碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚",9],["b480","磤磥磦磧磩磪磫磭",4,"磳磵磶磸磹磻",5,"礂礃礄礆",6,"础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮"],["b540","礍",5,"礔",9,"礟",4,"礥",14,"礵",4,"礽礿祂祃祄祅祇祊",8,"祔祕祘祙祡祣"],["b580","祤祦祩祪祫祬祮祰",6,"祹祻",4,"禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠"],["b640","禓",6,"禛",11,"禨",10,"禴",4,"禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙",5,"秠秡秢秥秨秪"],["b680","秬秮秱",6,"秹秺秼秾秿稁稄稅稇稈稉稊稌稏",4,"稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二"],["b740","稝稟稡稢稤",14,"稴稵稶稸稺稾穀",5,"穇",9,"穒",4,"穘",16],["b780","穩",6,"穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服"],["b840","窣窤窧窩窪窫窮",4,"窴",10,"竀",10,"竌",9,"竗竘竚竛竜竝竡竢竤竧",5,"竮竰竱竲竳"],["b880","竴",4,"竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹"],["b940","笯笰笲笴笵笶笷笹笻笽笿",5,"筆筈筊筍筎筓筕筗筙筜筞筟筡筣",10,"筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆",6,"箎箏"],["b980","箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹",7,"篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈"],["ba40","篅篈築篊篋篍篎篏篐篒篔",4,"篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲",4,"篸篹篺篻篽篿",7,"簈簉簊簍簎簐",5,"簗簘簙"],["ba80","簚",4,"簠",5,"簨簩簫",12,"簹",5,"籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖"],["bb40","籃",9,"籎",36,"籵",5,"籾",9],["bb80","粈粊",6,"粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴",4,"粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕"],["bc40","粿糀糂糃糄糆糉糋糎",6,"糘糚糛糝糞糡",6,"糩",5,"糰",7,"糹糺糼",13,"紋",5],["bc80","紑",14,"紡紣紤紥紦紨紩紪紬紭紮細",6,"肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件"],["bd40","紷",54,"絯",7],["bd80","絸",32,"健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸"],["be40","継",12,"綧",6,"綯",42],["be80","線",32,"尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻"],["bf40","緻",62],["bf80","縺縼",4,"繂",4,"繈",21,"俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀"],["c040","繞",35,"纃",23,"纜纝纞"],["c080","纮纴纻纼绖绤绬绹缊缐缞缷缹缻",6,"罃罆",9,"罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐"],["c140","罖罙罛罜罝罞罠罣",4,"罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂",7,"羋羍羏",4,"羕",4,"羛羜羠羢羣羥羦羨",6,"羱"],["c180","羳",4,"羺羻羾翀翂翃翄翆翇翈翉翋翍翏",4,"翖翗翙",5,"翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿"],["c240","翤翧翨翪翫翬翭翯翲翴",6,"翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫",5,"耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗"],["c280","聙聛",13,"聫",5,"聲",11,"隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫"],["c340","聾肁肂肅肈肊肍",5,"肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇",4,"胏",6,"胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋"],["c380","脌脕脗脙脛脜脝脟",12,"脭脮脰脳脴脵脷脹",4,"脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸"],["c440","腀",5,"腇腉腍腎腏腒腖腗腘腛",4,"腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃",4,"膉膋膌膍膎膐膒",5,"膙膚膞",4,"膤膥"],["c480","膧膩膫",7,"膴",5,"膼膽膾膿臄臅臇臈臉臋臍",6,"摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁"],["c540","臔",14,"臤臥臦臨臩臫臮",4,"臵",5,"臽臿舃與",4,"舎舏舑舓舕",5,"舝舠舤舥舦舧舩舮舲舺舼舽舿"],["c580","艀艁艂艃艅艆艈艊艌艍艎艐",7,"艙艛艜艝艞艠",7,"艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗"],["c640","艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸"],["c680","苺苼",4,"茊茋茍茐茒茓茖茘茙茝",9,"茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐"],["c740","茾茿荁荂荄荅荈荊",4,"荓荕",4,"荝荢荰",6,"荹荺荾",6,"莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡",6,"莬莭莮"],["c780","莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠"],["c840","菮華菳",4,"菺菻菼菾菿萀萂萅萇萈萉萊萐萒",5,"萙萚萛萞",5,"萩",7,"萲",5,"萹萺萻萾",7,"葇葈葉"],["c880","葊",6,"葒",4,"葘葝葞葟葠葢葤",4,"葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁"],["c940","葽",4,"蒃蒄蒅蒆蒊蒍蒏",7,"蒘蒚蒛蒝蒞蒟蒠蒢",12,"蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗"],["c980","蓘",4,"蓞蓡蓢蓤蓧",4,"蓭蓮蓯蓱",10,"蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳"],["ca40","蔃",8,"蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢",8,"蔭",9,"蔾",4,"蕄蕅蕆蕇蕋",10],["ca80","蕗蕘蕚蕛蕜蕝蕟",4,"蕥蕦蕧蕩",8,"蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱"],["cb40","薂薃薆薈",6,"薐",10,"薝",6,"薥薦薧薩薫薬薭薱",5,"薸薺",6,"藂",6,"藊",4,"藑藒"],["cb80","藔藖",5,"藝",6,"藥藦藧藨藪",14,"恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔"],["cc40","藹藺藼藽藾蘀",4,"蘆",10,"蘒蘓蘔蘕蘗",15,"蘨蘪",13,"蘹蘺蘻蘽蘾蘿虀"],["cc80","虁",11,"虒虓處",4,"虛虜虝號虠虡虣",7,"獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃"],["cd40","虭虯虰虲",6,"蚃",6,"蚎",4,"蚔蚖",5,"蚞",4,"蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻",4,"蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜"],["cd80","蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威"],["ce40","蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀",6,"蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚",5,"蝡蝢蝦",7,"蝯蝱蝲蝳蝵"],["ce80","蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎",4,"螔螕螖螘",6,"螠",4,"巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺"],["cf40","螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁",4,"蟇蟈蟉蟌",4,"蟔",6,"蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯",9],["cf80","蟺蟻蟼蟽蟿蠀蠁蠂蠄",5,"蠋",7,"蠔蠗蠘蠙蠚蠜",4,"蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓"],["d040","蠤",13,"蠳",5,"蠺蠻蠽蠾蠿衁衂衃衆",5,"衎",5,"衕衖衘衚",6,"衦衧衪衭衯衱衳衴衵衶衸衹衺"],["d080","衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗",4,"袝",4,"袣袥",5,"小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄"],["d140","袬袮袯袰袲",4,"袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚",4,"裠裡裦裧裩",6,"裲裵裶裷裺裻製裿褀褁褃",5],["d180","褉褋",4,"褑褔",4,"褜",4,"褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶"],["d240","褸",8,"襂襃襅",24,"襠",5,"襧",19,"襼"],["d280","襽襾覀覂覄覅覇",26,"摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐"],["d340","覢",30,"觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴",6],["d380","觻",4,"訁",5,"計",21,"印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉"],["d440","訞",31,"訿",8,"詉",21],["d480","詟",25,"詺",6,"浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧"],["d540","誁",7,"誋",7,"誔",46],["d580","諃",32,"铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政"],["d640","諤",34,"謈",27],["d680","謤謥謧",30,"帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑"],["d740","譆",31,"譧",4,"譭",25],["d780","讇",24,"讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座"],["d840","谸",8,"豂豃豄豅豈豊豋豍",7,"豖豗豘豙豛",5,"豣",6,"豬",6,"豴豵豶豷豻",6,"貃貄貆貇"],["d880","貈貋貍",6,"貕貖貗貙",20,"亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝"],["d940","貮",62],["d980","賭",32,"佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼"],["da40","贎",14,"贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸",8,"趂趃趆趇趈趉趌",4,"趒趓趕",9,"趠趡"],["da80","趢趤",12,"趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺"],["db40","跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾",6,"踆踇踈踋踍踎踐踑踒踓踕",7,"踠踡踤",4,"踫踭踰踲踳踴踶踷踸踻踼踾"],["db80","踿蹃蹅蹆蹌",4,"蹓",5,"蹚",11,"蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝"],["dc40","蹳蹵蹷",4,"蹽蹾躀躂躃躄躆躈",6,"躑躒躓躕",6,"躝躟",11,"躭躮躰躱躳",6,"躻",7],["dc80","軃",10,"軏",21,"堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥"],["dd40","軥",62],["dd80","輤",32,"荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺"],["de40","轅",32,"轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆"],["de80","迉",4,"迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖"],["df40","這逜連逤逥逧",5,"逰",4,"逷逹逺逽逿遀遃遅遆遈",4,"過達違遖遙遚遜",5,"遤遦遧適遪遫遬遯",4,"遶",6,"遾邁"],["df80","還邅邆邇邉邊邌",4,"邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼"],["e040","郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅",19,"鄚鄛鄜"],["e080","鄝鄟鄠鄡鄤",10,"鄰鄲",6,"鄺",8,"酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼"],["e140","酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀",4,"醆醈醊醎醏醓",6,"醜",5,"醤",5,"醫醬醰醱醲醳醶醷醸醹醻"],["e180","醼",10,"釈釋釐釒",9,"針",8,"帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺"],["e240","釦",62],["e280","鈥",32,"狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧",5,"饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂"],["e340","鉆",45,"鉵",16],["e380","銆",7,"銏",24,"恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾"],["e440","銨",5,"銯",24,"鋉",31],["e480","鋩",32,"洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑"],["e540","錊",51,"錿",10],["e580","鍊",31,"鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣"],["e640","鍬",34,"鎐",27],["e680","鎬",29,"鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩"],["e740","鏎",7,"鏗",54],["e780","鐎",32,"纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡",6,"缪缫缬缭缯",4,"缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬"],["e840","鐯",14,"鐿",43,"鑬鑭鑮鑯"],["e880","鑰",20,"钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹"],["e940","锧锳锽镃镈镋镕镚镠镮镴镵長",7,"門",42],["e980","閫",32,"椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋"],["ea40","闌",27,"闬闿阇阓阘阛阞阠阣",6,"阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗"],["ea80","陘陙陚陜陝陞陠陣陥陦陫陭",4,"陳陸",12,"隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰"],["eb40","隌階隑隒隓隕隖隚際隝",9,"隨",7,"隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖",9,"雡",6,"雫"],["eb80","雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗",4,"霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻"],["ec40","霡",8,"霫霬霮霯霱霳",4,"霺霻霼霽霿",18,"靔靕靗靘靚靜靝靟靣靤靦靧靨靪",7],["ec80","靲靵靷",4,"靽",7,"鞆",4,"鞌鞎鞏鞐鞓鞕鞖鞗鞙",4,"臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐"],["ed40","鞞鞟鞡鞢鞤",6,"鞬鞮鞰鞱鞳鞵",46],["ed80","韤韥韨韮",4,"韴韷",23,"怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨"],["ee40","頏",62],["ee80","顎",32,"睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶",4,"钼钽钿铄铈",6,"铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪"],["ef40","顯",5,"颋颎颒颕颙颣風",37,"飏飐飔飖飗飛飜飝飠",4],["ef80","飥飦飩",30,"铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒",4,"锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤",8,"镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔"],["f040","餈",4,"餎餏餑",28,"餯",26],["f080","饊",9,"饖",12,"饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨",4,"鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦",6,"鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙"],["f140","馌馎馚",10,"馦馧馩",47],["f180","駙",32,"瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃"],["f240","駺",62],["f280","騹",32,"颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒"],["f340","驚",17,"驲骃骉骍骎骔骕骙骦骩",6,"骲骳骴骵骹骻骽骾骿髃髄髆",4,"髍髎髏髐髒體髕髖髗髙髚髛髜"],["f380","髝髞髠髢髣髤髥髧髨髩髪髬髮髰",8,"髺髼",6,"鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋"],["f440","鬇鬉",5,"鬐鬑鬒鬔",10,"鬠鬡鬢鬤",10,"鬰鬱鬳",7,"鬽鬾鬿魀魆魊魋魌魎魐魒魓魕",5],["f480","魛",32,"簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤"],["f540","魼",62],["f580","鮻",32,"酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜"],["f640","鯜",62],["f680","鰛",32,"觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅",5,"龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞",5,"鲥",4,"鲫鲭鲮鲰",7,"鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋"],["f740","鰼",62],["f780","鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾",4,"鳈鳉鳑鳒鳚鳛鳠鳡鳌",4,"鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄"],["f840","鳣",62],["f880","鴢",32],["f940","鵃",62],["f980","鶂",32],["fa40","鶣",62],["fa80","鷢",32],["fb40","鸃",27,"鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴",9,"麀"],["fb80","麁麃麄麅麆麉麊麌",5,"麔",8,"麞麠",5,"麧麨麩麪"],["fc40","麫",8,"麵麶麷麹麺麼麿",4,"黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰",8,"黺黽黿",6],["fc80","鼆",4,"鼌鼏鼑鼒鼔鼕鼖鼘鼚",5,"鼡鼣",8,"鼭鼮鼰鼱"],["fd40","鼲",4,"鼸鼺鼼鼿",4,"齅",10,"齒",38],["fd80","齹",5,"龁龂龍",11,"龜龝龞龡",4,"郎凉秊裏隣"],["fe40","兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩"]]')},269:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8141","갂갃갅갆갋",4,"갘갞갟갡갢갣갥",6,"갮갲갳갴"],["8161","갵갶갷갺갻갽갾갿걁",9,"걌걎",5,"걕"],["8181","걖걗걙걚걛걝",18,"걲걳걵걶걹걻",4,"겂겇겈겍겎겏겑겒겓겕",6,"겞겢",5,"겫겭겮겱",6,"겺겾겿곀곂곃곅곆곇곉곊곋곍",7,"곖곘",7,"곢곣곥곦곩곫곭곮곲곴곷",4,"곾곿괁괂괃괅괇",4,"괎괐괒괓"],["8241","괔괕괖괗괙괚괛괝괞괟괡",7,"괪괫괮",5],["8261","괶괷괹괺괻괽",6,"굆굈굊",5,"굑굒굓굕굖굗"],["8281","굙",7,"굢굤",7,"굮굯굱굲굷굸굹굺굾궀궃",4,"궊궋궍궎궏궑",10,"궞",5,"궥",17,"궸",7,"귂귃귅귆귇귉",6,"귒귔",7,"귝귞귟귡귢귣귥",18],["8341","귺귻귽귾긂",5,"긊긌긎",5,"긕",7],["8361","긝",18,"긲긳긵긶긹긻긼"],["8381","긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗",4,"깞깢깣깤깦깧깪깫깭깮깯깱",6,"깺깾",5,"꺆",5,"꺍",46,"꺿껁껂껃껅",6,"껎껒",5,"껚껛껝",8],["8441","껦껧껩껪껬껮",5,"껵껶껷껹껺껻껽",8],["8461","꼆꼉꼊꼋꼌꼎꼏꼑",18],["8481","꼤",7,"꼮꼯꼱꼳꼵",6,"꼾꽀꽄꽅꽆꽇꽊",5,"꽑",10,"꽞",5,"꽦",18,"꽺",5,"꾁꾂꾃꾅꾆꾇꾉",6,"꾒꾓꾔꾖",5,"꾝",26,"꾺꾻꾽꾾"],["8541","꾿꿁",5,"꿊꿌꿏",4,"꿕",6,"꿝",4],["8561","꿢",5,"꿪",5,"꿲꿳꿵꿶꿷꿹",6,"뀂뀃"],["8581","뀅",6,"뀍뀎뀏뀑뀒뀓뀕",6,"뀞",9,"뀩",26,"끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞",29,"끾끿낁낂낃낅",6,"낎낐낒",5,"낛낝낞낣낤"],["8641","낥낦낧낪낰낲낶낷낹낺낻낽",6,"냆냊",5,"냒"],["8661","냓냕냖냗냙",6,"냡냢냣냤냦",10],["8681","냱",22,"넊넍넎넏넑넔넕넖넗넚넞",4,"넦넧넩넪넫넭",6,"넶넺",5,"녂녃녅녆녇녉",6,"녒녓녖녗녙녚녛녝녞녟녡",22,"녺녻녽녾녿놁놃",4,"놊놌놎놏놐놑놕놖놗놙놚놛놝"],["8741","놞",9,"놩",15],["8761","놹",18,"뇍뇎뇏뇑뇒뇓뇕"],["8781","뇖",5,"뇞뇠",7,"뇪뇫뇭뇮뇯뇱",7,"뇺뇼뇾",5,"눆눇눉눊눍",6,"눖눘눚",5,"눡",18,"눵",6,"눽",26,"뉙뉚뉛뉝뉞뉟뉡",6,"뉪",4],["8841","뉯",4,"뉶",5,"뉽",6,"늆늇늈늊",4],["8861","늏늒늓늕늖늗늛",4,"늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷"],["8881","늸",15,"닊닋닍닎닏닑닓",4,"닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉",6,"댒댖",5,"댝",54,"덗덙덚덝덠덡덢덣"],["8941","덦덨덪덬덭덯덲덳덵덶덷덹",6,"뎂뎆",5,"뎍"],["8961","뎎뎏뎑뎒뎓뎕",10,"뎢",5,"뎩뎪뎫뎭"],["8981","뎮",21,"돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩",18,"돽",18,"됑",6,"됙됚됛됝됞됟됡",6,"됪됬",7,"됵",15],["8a41","둅",10,"둒둓둕둖둗둙",6,"둢둤둦"],["8a61","둧",4,"둭",18,"뒁뒂"],["8a81","뒃",4,"뒉",19,"뒞",5,"뒥뒦뒧뒩뒪뒫뒭",7,"뒶뒸뒺",5,"듁듂듃듅듆듇듉",6,"듑듒듓듔듖",5,"듞듟듡듢듥듧",4,"듮듰듲",5,"듹",26,"딖딗딙딚딝"],["8b41","딞",5,"딦딫",4,"딲딳딵딶딷딹",6,"땂땆"],["8b61","땇땈땉땊땎땏땑땒땓땕",6,"땞땢",8],["8b81","땫",52,"떢떣떥떦떧떩떬떭떮떯떲떶",4,"떾떿뗁뗂뗃뗅",6,"뗎뗒",5,"뗙",18,"뗭",18],["8c41","똀",15,"똒똓똕똖똗똙",4],["8c61","똞",6,"똦",5,"똭",6,"똵",5],["8c81","똻",12,"뙉",26,"뙥뙦뙧뙩",50,"뚞뚟뚡뚢뚣뚥",5,"뚭뚮뚯뚰뚲",16],["8d41","뛃",16,"뛕",8],["8d61","뛞",17,"뛱뛲뛳뛵뛶뛷뛹뛺"],["8d81","뛻",4,"뜂뜃뜄뜆",33,"뜪뜫뜭뜮뜱",6,"뜺뜼",7,"띅띆띇띉띊띋띍",6,"띖",9,"띡띢띣띥띦띧띩",6,"띲띴띶",5,"띾띿랁랂랃랅",6,"랎랓랔랕랚랛랝랞"],["8e41","랟랡",6,"랪랮",5,"랶랷랹",8],["8e61","럂",4,"럈럊",19],["8e81","럞",13,"럮럯럱럲럳럵",6,"럾렂",4,"렊렋렍렎렏렑",6,"렚렜렞",5,"렦렧렩렪렫렭",6,"렶렺",5,"롁롂롃롅",11,"롒롔",7,"롞롟롡롢롣롥",6,"롮롰롲",5,"롹롺롻롽",7],["8f41","뢅",7,"뢎",17],["8f61","뢠",7,"뢩",6,"뢱뢲뢳뢵뢶뢷뢹",4],["8f81","뢾뢿룂룄룆",5,"룍룎룏룑룒룓룕",7,"룞룠룢",5,"룪룫룭룮룯룱",6,"룺룼룾",5,"뤅",18,"뤙",6,"뤡",26,"뤾뤿륁륂륃륅",6,"륍륎륐륒",5],["9041","륚륛륝륞륟륡",6,"륪륬륮",5,"륶륷륹륺륻륽"],["9061","륾",5,"릆릈릋릌릏",15],["9081","릟",12,"릮릯릱릲릳릵",6,"릾맀맂",5,"맊맋맍맓",4,"맚맜맟맠맢맦맧맩맪맫맭",6,"맶맻",4,"먂",5,"먉",11,"먖",33,"먺먻먽먾먿멁멃멄멅멆"],["9141","멇멊멌멏멐멑멒멖멗멙멚멛멝",6,"멦멪",5],["9161","멲멳멵멶멷멹",9,"몆몈몉몊몋몍",5],["9181","몓",20,"몪몭몮몯몱몳",4,"몺몼몾",5,"뫅뫆뫇뫉",14,"뫚",33,"뫽뫾뫿묁묂묃묅",7,"묎묐묒",5,"묙묚묛묝묞묟묡",6],["9241","묨묪묬",7,"묷묹묺묿",4,"뭆뭈뭊뭋뭌뭎뭑뭒"],["9261","뭓뭕뭖뭗뭙",7,"뭢뭤",7,"뭭",4],["9281","뭲",21,"뮉뮊뮋뮍뮎뮏뮑",18,"뮥뮦뮧뮩뮪뮫뮭",6,"뮵뮶뮸",7,"믁믂믃믅믆믇믉",6,"믑믒믔",35,"믺믻믽믾밁"],["9341","밃",4,"밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵"],["9361","밶밷밹",6,"뱂뱆뱇뱈뱊뱋뱎뱏뱑",8],["9381","뱚뱛뱜뱞",37,"벆벇벉벊벍벏",4,"벖벘벛",4,"벢벣벥벦벩",6,"벲벶",5,"벾벿볁볂볃볅",7,"볎볒볓볔볖볗볙볚볛볝",22,"볷볹볺볻볽"],["9441","볾",5,"봆봈봊",5,"봑봒봓봕",8],["9461","봞",5,"봥",6,"봭",12],["9481","봺",5,"뵁",6,"뵊뵋뵍뵎뵏뵑",6,"뵚",9,"뵥뵦뵧뵩",22,"붂붃붅붆붋",4,"붒붔붖붗붘붛붝",6,"붥",10,"붱",6,"붹",24],["9541","뷒뷓뷖뷗뷙뷚뷛뷝",11,"뷪",5,"뷱"],["9561","뷲뷳뷵뷶뷷뷹",6,"븁븂븄븆",5,"븎븏븑븒븓"],["9581","븕",6,"븞븠",35,"빆빇빉빊빋빍빏",4,"빖빘빜빝빞빟빢빣빥빦빧빩빫",4,"빲빶",4,"빾빿뺁뺂뺃뺅",6,"뺎뺒",5,"뺚",13,"뺩",14],["9641","뺸",23,"뻒뻓"],["9661","뻕뻖뻙",6,"뻡뻢뻦",5,"뻭",8],["9681","뻶",10,"뼂",5,"뼊",13,"뼚뼞",33,"뽂뽃뽅뽆뽇뽉",6,"뽒뽓뽔뽖",44],["9741","뾃",16,"뾕",8],["9761","뾞",17,"뾱",7],["9781","뾹",11,"뿆",5,"뿎뿏뿑뿒뿓뿕",6,"뿝뿞뿠뿢",89,"쀽쀾쀿"],["9841","쁀",16,"쁒",5,"쁙쁚쁛"],["9861","쁝쁞쁟쁡",6,"쁪",15],["9881","쁺",21,"삒삓삕삖삗삙",6,"삢삤삦",5,"삮삱삲삷",4,"삾샂샃샄샆샇샊샋샍샎샏샑",6,"샚샞",5,"샦샧샩샪샫샭",6,"샶샸샺",5,"섁섂섃섅섆섇섉",6,"섑섒섓섔섖",5,"섡섢섥섨섩섪섫섮"],["9941","섲섳섴섵섷섺섻섽섾섿셁",6,"셊셎",5,"셖셗"],["9961","셙셚셛셝",6,"셦셪",5,"셱셲셳셵셶셷셹셺셻"],["9981","셼",8,"솆",5,"솏솑솒솓솕솗",4,"솞솠솢솣솤솦솧솪솫솭솮솯솱",11,"솾",5,"쇅쇆쇇쇉쇊쇋쇍",6,"쇕쇖쇙",6,"쇡쇢쇣쇥쇦쇧쇩",6,"쇲쇴",7,"쇾쇿숁숂숃숅",6,"숎숐숒",5,"숚숛숝숞숡숢숣"],["9a41","숤숥숦숧숪숬숮숰숳숵",16],["9a61","쉆쉇쉉",6,"쉒쉓쉕쉖쉗쉙",6,"쉡쉢쉣쉤쉦"],["9a81","쉧",4,"쉮쉯쉱쉲쉳쉵",6,"쉾슀슂",5,"슊",5,"슑",6,"슙슚슜슞",5,"슦슧슩슪슫슮",5,"슶슸슺",33,"싞싟싡싢싥",5,"싮싰싲싳싴싵싷싺싽싾싿쌁",6,"쌊쌋쌎쌏"],["9b41","쌐쌑쌒쌖쌗쌙쌚쌛쌝",6,"쌦쌧쌪",8],["9b61","쌳",17,"썆",7],["9b81","썎",25,"썪썫썭썮썯썱썳",4,"썺썻썾",5,"쎅쎆쎇쎉쎊쎋쎍",50,"쏁",22,"쏚"],["9c41","쏛쏝쏞쏡쏣",4,"쏪쏫쏬쏮",5,"쏶쏷쏹",5],["9c61","쏿",8,"쐉",6,"쐑",9],["9c81","쐛",8,"쐥",6,"쐭쐮쐯쐱쐲쐳쐵",6,"쐾",9,"쑉",26,"쑦쑧쑩쑪쑫쑭",6,"쑶쑷쑸쑺",5,"쒁",18,"쒕",6,"쒝",12],["9d41","쒪",13,"쒹쒺쒻쒽",8],["9d61","쓆",25],["9d81","쓠",8,"쓪",5,"쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂",9,"씍씎씏씑씒씓씕",6,"씝",10,"씪씫씭씮씯씱",6,"씺씼씾",5,"앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩",6,"앲앶",5,"앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔"],["9e41","얖얙얚얛얝얞얟얡",7,"얪",9,"얶"],["9e61","얷얺얿",4,"엋엍엏엒엓엕엖엗엙",6,"엢엤엦엧"],["9e81","엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑",6,"옚옝",6,"옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉",6,"왒왖",5,"왞왟왡",10,"왭왮왰왲",5,"왺왻왽왾왿욁",6,"욊욌욎",5,"욖욗욙욚욛욝",6,"욦"],["9f41","욨욪",5,"욲욳욵욶욷욻",4,"웂웄웆",5,"웎"],["9f61","웏웑웒웓웕",6,"웞웟웢",5,"웪웫웭웮웯웱웲"],["9f81","웳",4,"웺웻웼웾",5,"윆윇윉윊윋윍",6,"윖윘윚",5,"윢윣윥윦윧윩",6,"윲윴윶윸윹윺윻윾윿읁읂읃읅",4,"읋읎읐읙읚읛읝읞읟읡",6,"읩읪읬",7,"읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛",4,"잢잧",4,"잮잯잱잲잳잵잶잷"],["a041","잸잹잺잻잾쟂",5,"쟊쟋쟍쟏쟑",6,"쟙쟚쟛쟜"],["a061","쟞",5,"쟥쟦쟧쟩쟪쟫쟭",13],["a081","쟻",4,"젂젃젅젆젇젉젋",4,"젒젔젗",4,"젞젟젡젢젣젥",6,"젮젰젲",5,"젹젺젻젽젾젿졁",6,"졊졋졎",5,"졕",26,"졲졳졵졶졷졹졻",4,"좂좄좈좉좊좎",5,"좕",7,"좞좠좢좣좤"],["a141","좥좦좧좩",18,"좾좿죀죁"],["a161","죂죃죅죆죇죉죊죋죍",6,"죖죘죚",5,"죢죣죥"],["a181","죦",14,"죶",5,"죾죿줁줂줃줇",4,"줎 、。·‥…¨〃­―∥\∼‘’“”〔〕〈",9,"±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬"],["a241","줐줒",5,"줙",18],["a261","줭",6,"줵",18],["a281","쥈",7,"쥒쥓쥕쥖쥗쥙",6,"쥢쥤",7,"쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®"],["a341","쥱쥲쥳쥵",6,"쥽",10,"즊즋즍즎즏"],["a361","즑",6,"즚즜즞",16],["a381","즯",16,"짂짃짅짆짉짋",4,"짒짔짗짘짛!",58,"₩]",32," ̄"],["a441","짞짟짡짣짥짦짨짩짪짫짮짲",5,"짺짻짽짾짿쨁쨂쨃쨄"],["a461","쨅쨆쨇쨊쨎",5,"쨕쨖쨗쨙",12],["a481","쨦쨧쨨쨪",28,"ㄱ",93],["a541","쩇",4,"쩎쩏쩑쩒쩓쩕",6,"쩞쩢",5,"쩩쩪"],["a561","쩫",17,"쩾",5,"쪅쪆"],["a581","쪇",16,"쪙",14,"ⅰ",9],["a5b0","Ⅰ",9],["a5c1","Α",16,"Σ",6],["a5e1","α",16,"σ",6],["a641","쪨",19,"쪾쪿쫁쫂쫃쫅"],["a661","쫆",5,"쫎쫐쫒쫔쫕쫖쫗쫚",5,"쫡",6],["a681","쫨쫩쫪쫫쫭",6,"쫵",18,"쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃",7],["a741","쬋",4,"쬑쬒쬓쬕쬖쬗쬙",6,"쬢",7],["a761","쬪",22,"쭂쭃쭄"],["a781","쭅쭆쭇쭊쭋쭍쭎쭏쭑",6,"쭚쭛쭜쭞",5,"쭥",7,"㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙",9,"㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰",9,"㎀",4,"㎺",5,"㎐",4,"Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆"],["a841","쭭",10,"쭺",14],["a861","쮉",18,"쮝",6],["a881","쮤",19,"쮹",11,"ÆÐªĦ"],["a8a6","IJ"],["a8a8","ĿŁØŒºÞŦŊ"],["a8b1","㉠",27,"ⓐ",25,"①",14,"½⅓⅔¼¾⅛⅜⅝⅞"],["a941","쯅",14,"쯕",10],["a961","쯠쯡쯢쯣쯥쯦쯨쯪",18],["a981","쯽",14,"찎찏찑찒찓찕",6,"찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀",27,"⒜",25,"⑴",14,"¹²³⁴ⁿ₁₂₃₄"],["aa41","찥찦찪찫찭찯찱",6,"찺찿",4,"챆챇챉챊챋챍챎"],["aa61","챏",4,"챖챚",5,"챡챢챣챥챧챩",6,"챱챲"],["aa81","챳챴챶",29,"ぁ",82],["ab41","첔첕첖첗첚첛첝첞첟첡",6,"첪첮",5,"첶첷첹"],["ab61","첺첻첽",6,"쳆쳈쳊",5,"쳑쳒쳓쳕",5],["ab81","쳛",8,"쳥",6,"쳭쳮쳯쳱",12,"ァ",85],["ac41","쳾쳿촀촂",5,"촊촋촍촎촏촑",6,"촚촜촞촟촠"],["ac61","촡촢촣촥촦촧촩촪촫촭",11,"촺",4],["ac81","촿",28,"쵝쵞쵟А",5,"ЁЖ",25],["acd1","а",5,"ёж",25],["ad41","쵡쵢쵣쵥",6,"쵮쵰쵲",5,"쵹",7],["ad61","춁",6,"춉",10,"춖춗춙춚춛춝춞춟"],["ad81","춠춡춢춣춦춨춪",5,"춱",18,"췅"],["ae41","췆",5,"췍췎췏췑",16],["ae61","췢",5,"췩췪췫췭췮췯췱",6,"췺췼췾",4],["ae81","츃츅츆츇츉츊츋츍",6,"츕츖츗츘츚",5,"츢츣츥츦츧츩츪츫"],["af41","츬츭츮츯츲츴츶",19],["af61","칊",13,"칚칛칝칞칢",5,"칪칬"],["af81","칮",5,"칶칷칹칺칻칽",6,"캆캈캊",5,"캒캓캕캖캗캙"],["b041","캚",5,"캢캦",5,"캮",12],["b061","캻",5,"컂",19],["b081","컖",13,"컦컧컩컪컭",6,"컶컺",5,"가각간갇갈갉갊감",7,"같",4,"갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆"],["b141","켂켃켅켆켇켉",6,"켒켔켖",5,"켝켞켟켡켢켣"],["b161","켥",6,"켮켲",5,"켹",11],["b181","콅",14,"콖콗콙콚콛콝",6,"콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸"],["b241","콭콮콯콲콳콵콶콷콹",6,"쾁쾂쾃쾄쾆",5,"쾍"],["b261","쾎",18,"쾢",5,"쾩"],["b281","쾪",5,"쾱",18,"쿅",6,"깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙"],["b341","쿌",19,"쿢쿣쿥쿦쿧쿩"],["b361","쿪",5,"쿲쿴쿶",5,"쿽쿾쿿퀁퀂퀃퀅",5],["b381","퀋",5,"퀒",5,"퀙",19,"끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫",4,"낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝"],["b441","퀮",5,"퀶퀷퀹퀺퀻퀽",6,"큆큈큊",5],["b461","큑큒큓큕큖큗큙",6,"큡",10,"큮큯"],["b481","큱큲큳큵",6,"큾큿킀킂",18,"뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫",4,"닳담답닷",4,"닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥"],["b541","킕",14,"킦킧킩킪킫킭",5],["b561","킳킶킸킺",5,"탂탃탅탆탇탊",5,"탒탖",4],["b581","탛탞탟탡탢탣탥",6,"탮탲",5,"탹",11,"덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸"],["b641","턅",7,"턎",17],["b661","턠",15,"턲턳턵턶턷턹턻턼턽턾"],["b681","턿텂텆",5,"텎텏텑텒텓텕",6,"텞텠텢",5,"텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗"],["b741","텮",13,"텽",6,"톅톆톇톉톊"],["b761","톋",20,"톢톣톥톦톧"],["b781","톩",6,"톲톴톶톷톸톹톻톽톾톿퇁",14,"래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩"],["b841","퇐",7,"퇙",17],["b861","퇫",8,"퇵퇶퇷퇹",13],["b881","툈툊",5,"툑",24,"륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많",4,"맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼"],["b941","툪툫툮툯툱툲툳툵",6,"툾퉀퉂",5,"퉉퉊퉋퉌"],["b961","퉍",14,"퉝",6,"퉥퉦퉧퉨"],["b981","퉩",22,"튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바",4,"받",4,"밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗"],["ba41","튍튎튏튒튓튔튖",5,"튝튞튟튡튢튣튥",6,"튭"],["ba61","튮튯튰튲",5,"튺튻튽튾틁틃",4,"틊틌",5],["ba81","틒틓틕틖틗틙틚틛틝",6,"틦",9,"틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤"],["bb41","틻",4,"팂팄팆",5,"팏팑팒팓팕팗",4,"팞팢팣"],["bb61","팤팦팧팪팫팭팮팯팱",6,"팺팾",5,"퍆퍇퍈퍉"],["bb81","퍊",31,"빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤"],["bc41","퍪",17,"퍾퍿펁펂펃펅펆펇"],["bc61","펈펉펊펋펎펒",5,"펚펛펝펞펟펡",6,"펪펬펮"],["bc81","펯",4,"펵펶펷펹펺펻펽",6,"폆폇폊",5,"폑",5,"샥샨샬샴샵샷샹섀섄섈섐섕서",4,"섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭"],["bd41","폗폙",7,"폢폤",7,"폮폯폱폲폳폵폶폷"],["bd61","폸폹폺폻폾퐀퐂",5,"퐉",13],["bd81","퐗",5,"퐞",25,"숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰"],["be41","퐸",7,"푁푂푃푅",14],["be61","푔",7,"푝푞푟푡푢푣푥",7,"푮푰푱푲"],["be81","푳",4,"푺푻푽푾풁풃",4,"풊풌풎",5,"풕",8,"쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄",6,"엌엎"],["bf41","풞",10,"풪",14],["bf61","풹",18,"퓍퓎퓏퓑퓒퓓퓕"],["bf81","퓖",5,"퓝퓞퓠",7,"퓩퓪퓫퓭퓮퓯퓱",6,"퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염",5,"옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨"],["c041","퓾",5,"픅픆픇픉픊픋픍",6,"픖픘",5],["c061","픞",25],["c081","픸픹픺픻픾픿핁핂핃핅",6,"핎핐핒",5,"핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응",7,"읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊"],["c141","핤핦핧핪핬핮",5,"핶핷핹핺핻핽",6,"햆햊햋"],["c161","햌햍햎햏햑",19,"햦햧"],["c181","햨",31,"점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓"],["c241","헊헋헍헎헏헑헓",4,"헚헜헞",5,"헦헧헩헪헫헭헮"],["c261","헯",4,"헶헸헺",5,"혂혃혅혆혇혉",6,"혒"],["c281","혖",5,"혝혞혟혡혢혣혥",7,"혮",9,"혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻"],["c341","혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝",4],["c361","홢",4,"홨홪",5,"홲홳홵",11],["c381","횁횂횄횆",5,"횎횏횑횒횓횕",7,"횞횠횢",5,"횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층"],["c441","횫횭횮횯횱",7,"횺횼",7,"훆훇훉훊훋"],["c461","훍훎훏훐훒훓훕훖훘훚",5,"훡훢훣훥훦훧훩",4],["c481","훮훯훱훲훳훴훶",5,"훾훿휁휂휃휅",11,"휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼"],["c541","휕휖휗휚휛휝휞휟휡",6,"휪휬휮",5,"휶휷휹"],["c561","휺휻휽",6,"흅흆흈흊",5,"흒흓흕흚",4],["c581","흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵",6,"흾흿힀힂",5,"힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜"],["c641","힍힎힏힑",6,"힚힜힞",5],["c6a1","퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁"],["c7a1","퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠"],["c8a1","혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝"],["caa1","伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕"],["cba1","匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢"],["cca1","瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械"],["cda1","棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜"],["cea1","科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾"],["cfa1","區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴"],["d0a1","鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣"],["d1a1","朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩",5,"那樂",4,"諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉"],["d2a1","納臘蠟衲囊娘廊",4,"乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧",5,"駑魯",10,"濃籠聾膿農惱牢磊腦賂雷尿壘",7,"嫩訥杻紐勒",5,"能菱陵尼泥匿溺多茶"],["d3a1","丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃"],["d4a1","棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅"],["d5a1","蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣"],["d6a1","煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼"],["d7a1","遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬"],["d8a1","立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅"],["d9a1","蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文"],["daa1","汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑"],["dba1","發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖"],["dca1","碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦"],["dda1","孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥"],["dea1","脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索"],["dfa1","傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署"],["e0a1","胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬"],["e1a1","聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁"],["e2a1","戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧"],["e3a1","嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁"],["e4a1","沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額"],["e5a1","櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬"],["e6a1","旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒"],["e7a1","簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳"],["e8a1","烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療"],["e9a1","窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓"],["eaa1","運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜"],["eba1","濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼"],["eca1","議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄"],["eda1","立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長"],["eea1","障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱"],["efa1","煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖"],["f0a1","靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫"],["f1a1","踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只"],["f2a1","咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯"],["f3a1","鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策"],["f4a1","責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢"],["f5a1","椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃"],["f6a1","贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託"],["f7a1","鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑"],["f8a1","阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃"],["f9a1","品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航"],["faa1","行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型"],["fba1","形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵"],["fca1","禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆"],["fda1","爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰"]]')},688:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["a140"," ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚"],["a1a1","﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢",4,"~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/"],["a240","\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁",7,"▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭"],["a2a1","╮╰╯═╞╪╡◢◣◥◤╱╲╳0",9,"Ⅰ",9,"〡",8,"十卄卅A",25,"a",21],["a340","wxyzΑ",16,"Σ",6,"α",16,"σ",6,"ㄅ",10],["a3a1","ㄐ",25,"˙ˉˊˇˋ"],["a3e1","€"],["a440","一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才"],["a4a1","丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙"],["a540","世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外"],["a5a1","央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全"],["a640","共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年"],["a6a1","式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣"],["a740","作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍"],["a7a1","均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠"],["a840","杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒"],["a8a1","芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵"],["a940","咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居"],["a9a1","屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊"],["aa40","昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠"],["aaa1","炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附"],["ab40","陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品"],["aba1","哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷"],["ac40","拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗"],["aca1","活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄"],["ad40","耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥"],["ada1","迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪"],["ae40","哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙"],["aea1","恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓"],["af40","浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷"],["afa1","砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃"],["b040","虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡"],["b0a1","陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀"],["b140","娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽"],["b1a1","情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺"],["b240","毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶"],["b2a1","瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼"],["b340","莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途"],["b3a1","部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠"],["b440","婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍"],["b4a1","插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋"],["b540","溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘"],["b5a1","窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁"],["b640","詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑"],["b6a1","間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼"],["b740","媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業"],["b7a1","楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督"],["b840","睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫"],["b8a1","腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊"],["b940","辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴"],["b9a1","飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇"],["ba40","愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢"],["baa1","滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬"],["bb40","罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤"],["bba1","說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜"],["bc40","劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂"],["bca1","慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃"],["bd40","瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯"],["bda1","翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞"],["be40","輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉"],["bea1","鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡"],["bf40","濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊"],["bfa1","縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚"],["c040","錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇"],["c0a1","嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬"],["c140","瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪"],["c1a1","薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁"],["c240","駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘"],["c2a1","癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦"],["c340","鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸"],["c3a1","獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類"],["c440","願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼"],["c4a1","纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴"],["c540","護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬"],["c5a1","禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒"],["c640","讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲"],["c940","乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕"],["c9a1","氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋"],["ca40","汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘"],["caa1","吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇"],["cb40","杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓"],["cba1","芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢"],["cc40","坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋"],["cca1","怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲"],["cd40","泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺"],["cda1","矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏"],["ce40","哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛"],["cea1","峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺"],["cf40","柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂"],["cfa1","洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀"],["d040","穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪"],["d0a1","苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱"],["d140","唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧"],["d1a1","恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤"],["d240","毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸"],["d2a1","牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐"],["d340","笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢"],["d3a1","荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐"],["d440","酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅"],["d4a1","唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏"],["d540","崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟"],["d5a1","捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉"],["d640","淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏"],["d6a1","痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟"],["d740","耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷"],["d7a1","蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪"],["d840","釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷"],["d8a1","堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔"],["d940","惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒"],["d9a1","晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞"],["da40","湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖"],["daa1","琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥"],["db40","罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳"],["dba1","菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺"],["dc40","軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈"],["dca1","隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆"],["dd40","媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤"],["dda1","搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼"],["de40","毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓"],["dea1","煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓"],["df40","稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯"],["dfa1","腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤"],["e040","觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿"],["e0a1","遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠"],["e140","凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠"],["e1a1","寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉"],["e240","榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊"],["e2a1","漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓"],["e340","禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞"],["e3a1","耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻"],["e440","裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍"],["e4a1","銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘"],["e540","噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉"],["e5a1","憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒"],["e640","澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙"],["e6a1","獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟"],["e740","膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢"],["e7a1","蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧"],["e840","踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓"],["e8a1","銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮"],["e940","噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺"],["e9a1","憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸"],["ea40","澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙"],["eaa1","瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘"],["eb40","蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠"],["eba1","諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌"],["ec40","錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕"],["eca1","魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎"],["ed40","檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶"],["eda1","瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞"],["ee40","蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞"],["eea1","謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜"],["ef40","鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰"],["efa1","鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶"],["f040","璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒"],["f0a1","臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧"],["f140","蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪"],["f1a1","鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰"],["f240","徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛"],["f2a1","礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕"],["f340","譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦"],["f3a1","鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲"],["f440","嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩"],["f4a1","禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿"],["f540","鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛"],["f5a1","鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥"],["f640","蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺"],["f6a1","騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚"],["f740","糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊"],["f7a1","驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾"],["f840","讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏"],["f8a1","齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚"],["f940","纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊"],["f9a1","龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓"]]')},489:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",127],["8ea1","。",62],["a1a1"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇"],["a2a1","◆□■△▲▽▼※〒→←↑↓〓"],["a2ba","∈∋⊆⊇⊂⊃∪∩"],["a2ca","∧∨¬⇒⇔∀∃"],["a2dc","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["a2f2","ʼn♯♭♪†‡¶"],["a2fe","◯"],["a3b0","0",9],["a3c1","A",25],["a3e1","a",25],["a4a1","ぁ",82],["a5a1","ァ",85],["a6a1","Α",16,"Σ",6],["a6c1","α",16,"σ",6],["a7a1","А",5,"ЁЖ",25],["a7d1","а",5,"ёж",25],["a8a1","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["ada1","①",19,"Ⅰ",9],["adc0","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["addf","㍻〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["b0a1","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["b1a1","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応"],["b2a1","押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["b3a1","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱"],["b4a1","粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["b5a1","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京"],["b6a1","供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["b7a1","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲"],["b8a1","検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["b9a1","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込"],["baa1","此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["bba1","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時"],["bca1","次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["bda1","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償"],["bea1","勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["bfa1","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾"],["c0a1","澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["c1a1","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎"],["c2a1","臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["c3a1","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵"],["c4a1","帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["c5a1","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到"],["c6a1","董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["c7a1","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦"],["c8a1","函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["c9a1","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服"],["caa1","福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["cba1","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満"],["cca1","漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["cda1","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃"],["cea1","痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["cfa1","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["d0a1","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["d1a1","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨"],["d2a1","辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["d3a1","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉"],["d4a1","圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["d5a1","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓"],["d6a1","屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["d7a1","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚"],["d8a1","悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["d9a1","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼"],["daa1","據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["dba1","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍"],["dca1","棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["dda1","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾"],["dea1","沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["dfa1","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼"],["e0a1","燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e1a1","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰"],["e2a1","癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e3a1","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐"],["e4a1","筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e5a1","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺"],["e6a1","罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e7a1","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙"],["e8a1","茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e9a1","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙"],["eaa1","蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["eba1","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫"],["eca1","譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["eda1","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸"],["eea1","遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["efa1","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞"],["f0a1","陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["f1a1","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷"],["f2a1","髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["f3a1","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠"],["f4a1","堯槇遙瑤凜熙"],["f9a1","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德"],["faa1","忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["fba1","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚"],["fca1","釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["fcf1","ⅰ",9,"¬¦'""],["8fa2af","˘ˇ¸˙˝¯˛˚~΄΅"],["8fa2c2","¡¦¿"],["8fa2eb","ºª©®™¤№"],["8fa6e1","ΆΈΉΊΪ"],["8fa6e7","Ό"],["8fa6e9","ΎΫ"],["8fa6ec","Ώ"],["8fa6f1","άέήίϊΐόςύϋΰώ"],["8fa7c2","Ђ",10,"ЎЏ"],["8fa7f2","ђ",10,"ўџ"],["8fa9a1","ÆĐ"],["8fa9a4","Ħ"],["8fa9a6","IJ"],["8fa9a8","ŁĿ"],["8fa9ab","ŊØŒ"],["8fa9af","ŦÞ"],["8fa9c1","æđðħıijĸłŀʼnŋøœßŧþ"],["8faaa1","ÁÀÄÂĂǍĀĄÅÃĆĈČÇĊĎÉÈËÊĚĖĒĘ"],["8faaba","ĜĞĢĠĤÍÌÏÎǏİĪĮĨĴĶĹĽĻŃŇŅÑÓÒÖÔǑŐŌÕŔŘŖŚŜŠŞŤŢÚÙÜÛŬǓŰŪŲŮŨǗǛǙǕŴÝŸŶŹŽŻ"],["8faba1","áàäâăǎāąåãćĉčçċďéèëêěėēęǵĝğ"],["8fabbd","ġĥíìïîǐ"],["8fabc5","īįĩĵķĺľļńňņñóòöôǒőōõŕřŗśŝšşťţúùüûŭǔűūųůũǘǜǚǖŵýÿŷźžż"],["8fb0a1","丂丄丅丌丒丟丣两丨丫丮丯丰丵乀乁乄乇乑乚乜乣乨乩乴乵乹乿亍亖亗亝亯亹仃仐仚仛仠仡仢仨仯仱仳仵份仾仿伀伂伃伈伋伌伒伕伖众伙伮伱你伳伵伷伹伻伾佀佂佈佉佋佌佒佔佖佘佟佣佪佬佮佱佷佸佹佺佽佾侁侂侄"],["8fb1a1","侅侉侊侌侎侐侒侓侔侗侙侚侞侟侲侷侹侻侼侽侾俀俁俅俆俈俉俋俌俍俏俒俜俠俢俰俲俼俽俿倀倁倄倇倊倌倎倐倓倗倘倛倜倝倞倢倧倮倰倲倳倵偀偁偂偅偆偊偌偎偑偒偓偗偙偟偠偢偣偦偧偪偭偰偱倻傁傃傄傆傊傎傏傐"],["8fb2a1","傒傓傔傖傛傜傞",4,"傪傯傰傹傺傽僀僃僄僇僌僎僐僓僔僘僜僝僟僢僤僦僨僩僯僱僶僺僾儃儆儇儈儋儌儍儎僲儐儗儙儛儜儝儞儣儧儨儬儭儯儱儳儴儵儸儹兂兊兏兓兕兗兘兟兤兦兾冃冄冋冎冘冝冡冣冭冸冺冼冾冿凂"],["8fb3a1","凈减凑凒凓凕凘凞凢凥凮凲凳凴凷刁刂刅划刓刕刖刘刢刨刱刲刵刼剅剉剕剗剘剚剜剟剠剡剦剮剷剸剹劀劂劅劊劌劓劕劖劗劘劚劜劤劥劦劧劯劰劶劷劸劺劻劽勀勄勆勈勌勏勑勔勖勛勜勡勥勨勩勪勬勰勱勴勶勷匀匃匊匋"],["8fb4a1","匌匑匓匘匛匜匞匟匥匧匨匩匫匬匭匰匲匵匼匽匾卂卌卋卙卛卡卣卥卬卭卲卹卾厃厇厈厎厓厔厙厝厡厤厪厫厯厲厴厵厷厸厺厽叀叅叏叒叓叕叚叝叞叠另叧叵吂吓吚吡吧吨吪启吱吴吵呃呄呇呍呏呞呢呤呦呧呩呫呭呮呴呿"],["8fb5a1","咁咃咅咈咉咍咑咕咖咜咟咡咦咧咩咪咭咮咱咷咹咺咻咿哆哊响哎哠哪哬哯哶哼哾哿唀唁唅唈唉唌唍唎唕唪唫唲唵唶唻唼唽啁啇啉啊啍啐啑啘啚啛啞啠啡啤啦啿喁喂喆喈喎喏喑喒喓喔喗喣喤喭喲喿嗁嗃嗆嗉嗋嗌嗎嗑嗒"],["8fb6a1","嗓嗗嗘嗛嗞嗢嗩嗶嗿嘅嘈嘊嘍",5,"嘙嘬嘰嘳嘵嘷嘹嘻嘼嘽嘿噀噁噃噄噆噉噋噍噏噔噞噠噡噢噣噦噩噭噯噱噲噵嚄嚅嚈嚋嚌嚕嚙嚚嚝嚞嚟嚦嚧嚨嚩嚫嚬嚭嚱嚳嚷嚾囅囉囊囋囏囐囌囍囙囜囝囟囡囤",4,"囱囫园"],["8fb7a1","囶囷圁圂圇圊圌圑圕圚圛圝圠圢圣圤圥圩圪圬圮圯圳圴圽圾圿坅坆坌坍坒坢坥坧坨坫坭",4,"坳坴坵坷坹坺坻坼坾垁垃垌垔垗垙垚垜垝垞垟垡垕垧垨垩垬垸垽埇埈埌埏埕埝埞埤埦埧埩埭埰埵埶埸埽埾埿堃堄堈堉埡"],["8fb8a1","堌堍堛堞堟堠堦堧堭堲堹堿塉塌塍塏塐塕塟塡塤塧塨塸塼塿墀墁墇墈墉墊墌墍墏墐墔墖墝墠墡墢墦墩墱墲壄墼壂壈壍壎壐壒壔壖壚壝壡壢壩壳夅夆夋夌夒夓夔虁夝夡夣夤夨夯夰夳夵夶夿奃奆奒奓奙奛奝奞奟奡奣奫奭"],["8fb9a1","奯奲奵奶她奻奼妋妌妎妒妕妗妟妤妧妭妮妯妰妳妷妺妼姁姃姄姈姊姍姒姝姞姟姣姤姧姮姯姱姲姴姷娀娄娌娍娎娒娓娞娣娤娧娨娪娭娰婄婅婇婈婌婐婕婞婣婥婧婭婷婺婻婾媋媐媓媖媙媜媞媟媠媢媧媬媱媲媳媵媸媺媻媿"],["8fbaa1","嫄嫆嫈嫏嫚嫜嫠嫥嫪嫮嫵嫶嫽嬀嬁嬈嬗嬴嬙嬛嬝嬡嬥嬭嬸孁孋孌孒孖孞孨孮孯孼孽孾孿宁宄宆宊宎宐宑宓宔宖宨宩宬宭宯宱宲宷宺宼寀寁寍寏寖",4,"寠寯寱寴寽尌尗尞尟尣尦尩尫尬尮尰尲尵尶屙屚屜屢屣屧屨屩"],["8fbba1","屭屰屴屵屺屻屼屽岇岈岊岏岒岝岟岠岢岣岦岪岲岴岵岺峉峋峒峝峗峮峱峲峴崁崆崍崒崫崣崤崦崧崱崴崹崽崿嵂嵃嵆嵈嵕嵑嵙嵊嵟嵠嵡嵢嵤嵪嵭嵰嵹嵺嵾嵿嶁嶃嶈嶊嶒嶓嶔嶕嶙嶛嶟嶠嶧嶫嶰嶴嶸嶹巃巇巋巐巎巘巙巠巤"],["8fbca1","巩巸巹帀帇帍帒帔帕帘帟帠帮帨帲帵帾幋幐幉幑幖幘幛幜幞幨幪",4,"幰庀庋庎庢庤庥庨庪庬庱庳庽庾庿廆廌廋廎廑廒廔廕廜廞廥廫异弆弇弈弎弙弜弝弡弢弣弤弨弫弬弮弰弴弶弻弽弿彀彄彅彇彍彐彔彘彛彠彣彤彧"],["8fbda1","彯彲彴彵彸彺彽彾徉徍徏徖徜徝徢徧徫徤徬徯徰徱徸忄忇忈忉忋忐",4,"忞忡忢忨忩忪忬忭忮忯忲忳忶忺忼怇怊怍怓怔怗怘怚怟怤怭怳怵恀恇恈恉恌恑恔恖恗恝恡恧恱恾恿悂悆悈悊悎悑悓悕悘悝悞悢悤悥您悰悱悷"],["8fbea1","悻悾惂惄惈惉惊惋惎惏惔惕惙惛惝惞惢惥惲惵惸惼惽愂愇愊愌愐",4,"愖愗愙愜愞愢愪愫愰愱愵愶愷愹慁慅慆慉慞慠慬慲慸慻慼慿憀憁憃憄憋憍憒憓憗憘憜憝憟憠憥憨憪憭憸憹憼懀懁懂懎懏懕懜懝懞懟懡懢懧懩懥"],["8fbfa1","懬懭懯戁戃戄戇戓戕戜戠戢戣戧戩戫戹戽扂扃扄扆扌扐扑扒扔扖扚扜扤扭扯扳扺扽抍抎抏抐抦抨抳抶抷抺抾抿拄拎拕拖拚拪拲拴拼拽挃挄挊挋挍挐挓挖挘挩挪挭挵挶挹挼捁捂捃捄捆捊捋捎捒捓捔捘捛捥捦捬捭捱捴捵"],["8fc0a1","捸捼捽捿掂掄掇掊掐掔掕掙掚掞掤掦掭掮掯掽揁揅揈揎揑揓揔揕揜揠揥揪揬揲揳揵揸揹搉搊搐搒搔搘搞搠搢搤搥搩搪搯搰搵搽搿摋摏摑摒摓摔摚摛摜摝摟摠摡摣摭摳摴摻摽撅撇撏撐撑撘撙撛撝撟撡撣撦撨撬撳撽撾撿"],["8fc1a1","擄擉擊擋擌擎擐擑擕擗擤擥擩擪擭擰擵擷擻擿攁攄攈攉攊攏攓攔攖攙攛攞攟攢攦攩攮攱攺攼攽敃敇敉敐敒敔敟敠敧敫敺敽斁斅斊斒斕斘斝斠斣斦斮斲斳斴斿旂旈旉旎旐旔旖旘旟旰旲旴旵旹旾旿昀昄昈昉昍昑昒昕昖昝"],["8fc2a1","昞昡昢昣昤昦昩昪昫昬昮昰昱昳昹昷晀晅晆晊晌晑晎晗晘晙晛晜晠晡曻晪晫晬晾晳晵晿晷晸晹晻暀晼暋暌暍暐暒暙暚暛暜暟暠暤暭暱暲暵暻暿曀曂曃曈曌曎曏曔曛曟曨曫曬曮曺朅朇朎朓朙朜朠朢朳朾杅杇杈杌杔杕杝"],["8fc3a1","杦杬杮杴杶杻极构枎枏枑枓枖枘枙枛枰枱枲枵枻枼枽柹柀柂柃柅柈柉柒柗柙柜柡柦柰柲柶柷桒栔栙栝栟栨栧栬栭栯栰栱栳栻栿桄桅桊桌桕桗桘桛桫桮",4,"桵桹桺桻桼梂梄梆梈梖梘梚梜梡梣梥梩梪梮梲梻棅棈棌棏"],["8fc4a1","棐棑棓棖棙棜棝棥棨棪棫棬棭棰棱棵棶棻棼棽椆椉椊椐椑椓椖椗椱椳椵椸椻楂楅楉楎楗楛楣楤楥楦楨楩楬楰楱楲楺楻楿榀榍榒榖榘榡榥榦榨榫榭榯榷榸榺榼槅槈槑槖槗槢槥槮槯槱槳槵槾樀樁樃樏樑樕樚樝樠樤樨樰樲"],["8fc5a1","樴樷樻樾樿橅橆橉橊橎橐橑橒橕橖橛橤橧橪橱橳橾檁檃檆檇檉檋檑檛檝檞檟檥檫檯檰檱檴檽檾檿櫆櫉櫈櫌櫐櫔櫕櫖櫜櫝櫤櫧櫬櫰櫱櫲櫼櫽欂欃欆欇欉欏欐欑欗欛欞欤欨欫欬欯欵欶欻欿歆歊歍歒歖歘歝歠歧歫歮歰歵歽"],["8fc6a1","歾殂殅殗殛殟殠殢殣殨殩殬殭殮殰殸殹殽殾毃毄毉毌毖毚毡毣毦毧毮毱毷毹毿氂氄氅氉氍氎氐氒氙氟氦氧氨氬氮氳氵氶氺氻氿汊汋汍汏汒汔汙汛汜汫汭汯汴汶汸汹汻沅沆沇沉沔沕沗沘沜沟沰沲沴泂泆泍泏泐泑泒泔泖"],["8fc7a1","泚泜泠泧泩泫泬泮泲泴洄洇洊洎洏洑洓洚洦洧洨汧洮洯洱洹洼洿浗浞浟浡浥浧浯浰浼涂涇涑涒涔涖涗涘涪涬涴涷涹涽涿淄淈淊淎淏淖淛淝淟淠淢淥淩淯淰淴淶淼渀渄渞渢渧渲渶渹渻渼湄湅湈湉湋湏湑湒湓湔湗湜湝湞"],["8fc8a1","湢湣湨湳湻湽溍溓溙溠溧溭溮溱溳溻溿滀滁滃滇滈滊滍滎滏滫滭滮滹滻滽漄漈漊漌漍漖漘漚漛漦漩漪漯漰漳漶漻漼漭潏潑潒潓潗潙潚潝潞潡潢潨潬潽潾澃澇澈澋澌澍澐澒澓澔澖澚澟澠澥澦澧澨澮澯澰澵澶澼濅濇濈濊"],["8fc9a1","濚濞濨濩濰濵濹濼濽瀀瀅瀆瀇瀍瀗瀠瀣瀯瀴瀷瀹瀼灃灄灈灉灊灋灔灕灝灞灎灤灥灬灮灵灶灾炁炅炆炔",4,"炛炤炫炰炱炴炷烊烑烓烔烕烖烘烜烤烺焃",4,"焋焌焏焞焠焫焭焯焰焱焸煁煅煆煇煊煋煐煒煗煚煜煞煠"],["8fcaa1","煨煹熀熅熇熌熒熚熛熠熢熯熰熲熳熺熿燀燁燄燋燌燓燖燙燚燜燸燾爀爇爈爉爓爗爚爝爟爤爫爯爴爸爹牁牂牃牅牎牏牐牓牕牖牚牜牞牠牣牨牫牮牯牱牷牸牻牼牿犄犉犍犎犓犛犨犭犮犱犴犾狁狇狉狌狕狖狘狟狥狳狴狺狻"],["8fcba1","狾猂猄猅猇猋猍猒猓猘猙猞猢猤猧猨猬猱猲猵猺猻猽獃獍獐獒獖獘獝獞獟獠獦獧獩獫獬獮獯獱獷獹獼玀玁玃玅玆玎玐玓玕玗玘玜玞玟玠玢玥玦玪玫玭玵玷玹玼玽玿珅珆珉珋珌珏珒珓珖珙珝珡珣珦珧珩珴珵珷珹珺珻珽"],["8fcca1","珿琀琁琄琇琊琑琚琛琤琦琨",9,"琹瑀瑃瑄瑆瑇瑋瑍瑑瑒瑗瑝瑢瑦瑧瑨瑫瑭瑮瑱瑲璀璁璅璆璇璉璏璐璑璒璘璙璚璜璟璠璡璣璦璨璩璪璫璮璯璱璲璵璹璻璿瓈瓉瓌瓐瓓瓘瓚瓛瓞瓟瓤瓨瓪瓫瓯瓴瓺瓻瓼瓿甆"],["8fcda1","甒甖甗甠甡甤甧甩甪甯甶甹甽甾甿畀畃畇畈畎畐畒畗畞畟畡畯畱畹",5,"疁疅疐疒疓疕疙疜疢疤疴疺疿痀痁痄痆痌痎痏痗痜痟痠痡痤痧痬痮痯痱痹瘀瘂瘃瘄瘇瘈瘊瘌瘏瘒瘓瘕瘖瘙瘛瘜瘝瘞瘣瘥瘦瘩瘭瘲瘳瘵瘸瘹"],["8fcea1","瘺瘼癊癀癁癃癄癅癉癋癕癙癟癤癥癭癮癯癱癴皁皅皌皍皕皛皜皝皟皠皢",6,"皪皭皽盁盅盉盋盌盎盔盙盠盦盨盬盰盱盶盹盼眀眆眊眎眒眔眕眗眙眚眜眢眨眭眮眯眴眵眶眹眽眾睂睅睆睊睍睎睏睒睖睗睜睞睟睠睢"],["8fcfa1","睤睧睪睬睰睲睳睴睺睽瞀瞄瞌瞍瞔瞕瞖瞚瞟瞢瞧瞪瞮瞯瞱瞵瞾矃矉矑矒矕矙矞矟矠矤矦矪矬矰矱矴矸矻砅砆砉砍砎砑砝砡砢砣砭砮砰砵砷硃硄硇硈硌硎硒硜硞硠硡硣硤硨硪确硺硾碊碏碔碘碡碝碞碟碤碨碬碭碰碱碲碳"],["8fd0a1","碻碽碿磇磈磉磌磎磒磓磕磖磤磛磟磠磡磦磪磲磳礀磶磷磺磻磿礆礌礐礚礜礞礟礠礥礧礩礭礱礴礵礻礽礿祄祅祆祊祋祏祑祔祘祛祜祧祩祫祲祹祻祼祾禋禌禑禓禔禕禖禘禛禜禡禨禩禫禯禱禴禸离秂秄秇秈秊秏秔秖秚秝秞"],["8fd1a1","秠秢秥秪秫秭秱秸秼稂稃稇稉稊稌稑稕稛稞稡稧稫稭稯稰稴稵稸稹稺穄穅穇穈穌穕穖穙穜穝穟穠穥穧穪穭穵穸穾窀窂窅窆窊窋窐窑窔窞窠窣窬窳窵窹窻窼竆竉竌竎竑竛竨竩竫竬竱竴竻竽竾笇笔笟笣笧笩笪笫笭笮笯笰"],["8fd2a1","笱笴笽笿筀筁筇筎筕筠筤筦筩筪筭筯筲筳筷箄箉箎箐箑箖箛箞箠箥箬箯箰箲箵箶箺箻箼箽篂篅篈篊篔篖篗篙篚篛篨篪篲篴篵篸篹篺篼篾簁簂簃簄簆簉簋簌簎簏簙簛簠簥簦簨簬簱簳簴簶簹簺籆籊籕籑籒籓籙",5],["8fd3a1","籡籣籧籩籭籮籰籲籹籼籽粆粇粏粔粞粠粦粰粶粷粺粻粼粿糄糇糈糉糍糏糓糔糕糗糙糚糝糦糩糫糵紃紇紈紉紏紑紒紓紖紝紞紣紦紪紭紱紼紽紾絀絁絇絈絍絑絓絗絙絚絜絝絥絧絪絰絸絺絻絿綁綂綃綅綆綈綋綌綍綑綖綗綝"],["8fd4a1","綞綦綧綪綳綶綷綹緂",4,"緌緍緎緗緙縀緢緥緦緪緫緭緱緵緶緹緺縈縐縑縕縗縜縝縠縧縨縬縭縯縳縶縿繄繅繇繎繐繒繘繟繡繢繥繫繮繯繳繸繾纁纆纇纊纍纑纕纘纚纝纞缼缻缽缾缿罃罄罇罏罒罓罛罜罝罡罣罤罥罦罭"],["8fd5a1","罱罽罾罿羀羋羍羏羐羑羖羗羜羡羢羦羪羭羴羼羿翀翃翈翎翏翛翟翣翥翨翬翮翯翲翺翽翾翿耇耈耊耍耎耏耑耓耔耖耝耞耟耠耤耦耬耮耰耴耵耷耹耺耼耾聀聄聠聤聦聭聱聵肁肈肎肜肞肦肧肫肸肹胈胍胏胒胔胕胗胘胠胭胮"],["8fd6a1","胰胲胳胶胹胺胾脃脋脖脗脘脜脞脠脤脧脬脰脵脺脼腅腇腊腌腒腗腠腡腧腨腩腭腯腷膁膐膄膅膆膋膎膖膘膛膞膢膮膲膴膻臋臃臅臊臎臏臕臗臛臝臞臡臤臫臬臰臱臲臵臶臸臹臽臿舀舃舏舓舔舙舚舝舡舢舨舲舴舺艃艄艅艆"],["8fd7a1","艋艎艏艑艖艜艠艣艧艭艴艻艽艿芀芁芃芄芇芉芊芎芑芔芖芘芚芛芠芡芣芤芧芨芩芪芮芰芲芴芷芺芼芾芿苆苐苕苚苠苢苤苨苪苭苯苶苷苽苾茀茁茇茈茊茋荔茛茝茞茟茡茢茬茭茮茰茳茷茺茼茽荂荃荄荇荍荎荑荕荖荗荰荸"],["8fd8a1","荽荿莀莂莄莆莍莒莔莕莘莙莛莜莝莦莧莩莬莾莿菀菇菉菏菐菑菔菝荓菨菪菶菸菹菼萁萆萊萏萑萕萙莭萯萹葅葇葈葊葍葏葑葒葖葘葙葚葜葠葤葥葧葪葰葳葴葶葸葼葽蒁蒅蒒蒓蒕蒞蒦蒨蒩蒪蒯蒱蒴蒺蒽蒾蓀蓂蓇蓈蓌蓏蓓"],["8fd9a1","蓜蓧蓪蓯蓰蓱蓲蓷蔲蓺蓻蓽蔂蔃蔇蔌蔎蔐蔜蔞蔢蔣蔤蔥蔧蔪蔫蔯蔳蔴蔶蔿蕆蕏",4,"蕖蕙蕜",6,"蕤蕫蕯蕹蕺蕻蕽蕿薁薅薆薉薋薌薏薓薘薝薟薠薢薥薧薴薶薷薸薼薽薾薿藂藇藊藋藎薭藘藚藟藠藦藨藭藳藶藼"],["8fdaa1","藿蘀蘄蘅蘍蘎蘐蘑蘒蘘蘙蘛蘞蘡蘧蘩蘶蘸蘺蘼蘽虀虂虆虒虓虖虗虘虙虝虠",4,"虩虬虯虵虶虷虺蚍蚑蚖蚘蚚蚜蚡蚦蚧蚨蚭蚱蚳蚴蚵蚷蚸蚹蚿蛀蛁蛃蛅蛑蛒蛕蛗蛚蛜蛠蛣蛥蛧蚈蛺蛼蛽蜄蜅蜇蜋蜎蜏蜐蜓蜔蜙蜞蜟蜡蜣"],["8fdba1","蜨蜮蜯蜱蜲蜹蜺蜼蜽蜾蝀蝃蝅蝍蝘蝝蝡蝤蝥蝯蝱蝲蝻螃",6,"螋螌螐螓螕螗螘螙螞螠螣螧螬螭螮螱螵螾螿蟁蟈蟉蟊蟎蟕蟖蟙蟚蟜蟟蟢蟣蟤蟪蟫蟭蟱蟳蟸蟺蟿蠁蠃蠆蠉蠊蠋蠐蠙蠒蠓蠔蠘蠚蠛蠜蠞蠟蠨蠭蠮蠰蠲蠵"],["8fdca1","蠺蠼衁衃衅衈衉衊衋衎衑衕衖衘衚衜衟衠衤衩衱衹衻袀袘袚袛袜袟袠袨袪袺袽袾裀裊",4,"裑裒裓裛裞裧裯裰裱裵裷褁褆褍褎褏褕褖褘褙褚褜褠褦褧褨褰褱褲褵褹褺褾襀襂襅襆襉襏襒襗襚襛襜襡襢襣襫襮襰襳襵襺"],["8fdda1","襻襼襽覉覍覐覔覕覛覜覟覠覥覰覴覵覶覷覼觔",4,"觥觩觫觭觱觳觶觹觽觿訄訅訇訏訑訒訔訕訞訠訢訤訦訫訬訯訵訷訽訾詀詃詅詇詉詍詎詓詖詗詘詜詝詡詥詧詵詶詷詹詺詻詾詿誀誃誆誋誏誐誒誖誗誙誟誧誩誮誯誳"],["8fdea1","誶誷誻誾諃諆諈諉諊諑諓諔諕諗諝諟諬諰諴諵諶諼諿謅謆謋謑謜謞謟謊謭謰謷謼譂",4,"譈譒譓譔譙譍譞譣譭譶譸譹譼譾讁讄讅讋讍讏讔讕讜讞讟谸谹谽谾豅豇豉豋豏豑豓豔豗豘豛豝豙豣豤豦豨豩豭豳豵豶豻豾貆"],["8fdfa1","貇貋貐貒貓貙貛貜貤貹貺賅賆賉賋賏賖賕賙賝賡賨賬賯賰賲賵賷賸賾賿贁贃贉贒贗贛赥赩赬赮赿趂趄趈趍趐趑趕趞趟趠趦趫趬趯趲趵趷趹趻跀跅跆跇跈跊跎跑跔跕跗跙跤跥跧跬跰趼跱跲跴跽踁踄踅踆踋踑踔踖踠踡踢"],["8fe0a1","踣踦踧踱踳踶踷踸踹踽蹀蹁蹋蹍蹎蹏蹔蹛蹜蹝蹞蹡蹢蹩蹬蹭蹯蹰蹱蹹蹺蹻躂躃躉躐躒躕躚躛躝躞躢躧躩躭躮躳躵躺躻軀軁軃軄軇軏軑軔軜軨軮軰軱軷軹軺軭輀輂輇輈輏輐輖輗輘輞輠輡輣輥輧輨輬輭輮輴輵輶輷輺轀轁"],["8fe1a1","轃轇轏轑",4,"轘轝轞轥辝辠辡辤辥辦辵辶辸达迀迁迆迊迋迍运迒迓迕迠迣迤迨迮迱迵迶迻迾适逄逈逌逘逛逨逩逯逪逬逭逳逴逷逿遃遄遌遛遝遢遦遧遬遰遴遹邅邈邋邌邎邐邕邗邘邙邛邠邡邢邥邰邲邳邴邶邽郌邾郃"],["8fe2a1","郄郅郇郈郕郗郘郙郜郝郟郥郒郶郫郯郰郴郾郿鄀鄄鄅鄆鄈鄍鄐鄔鄖鄗鄘鄚鄜鄞鄠鄥鄢鄣鄧鄩鄮鄯鄱鄴鄶鄷鄹鄺鄼鄽酃酇酈酏酓酗酙酚酛酡酤酧酭酴酹酺酻醁醃醅醆醊醎醑醓醔醕醘醞醡醦醨醬醭醮醰醱醲醳醶醻醼醽醿"],["8fe3a1","釂釃釅釓釔釗釙釚釞釤釥釩釪釬",5,"釷釹釻釽鈀鈁鈄鈅鈆鈇鈉鈊鈌鈐鈒鈓鈖鈘鈜鈝鈣鈤鈥鈦鈨鈮鈯鈰鈳鈵鈶鈸鈹鈺鈼鈾鉀鉂鉃鉆鉇鉊鉍鉎鉏鉑鉘鉙鉜鉝鉠鉡鉥鉧鉨鉩鉮鉯鉰鉵",4,"鉻鉼鉽鉿銈銉銊銍銎銒銗"],["8fe4a1","銙銟銠銤銥銧銨銫銯銲銶銸銺銻銼銽銿",4,"鋅鋆鋇鋈鋋鋌鋍鋎鋐鋓鋕鋗鋘鋙鋜鋝鋟鋠鋡鋣鋥鋧鋨鋬鋮鋰鋹鋻鋿錀錂錈錍錑錔錕錜錝錞錟錡錤錥錧錩錪錳錴錶錷鍇鍈鍉鍐鍑鍒鍕鍗鍘鍚鍞鍤鍥鍧鍩鍪鍭鍯鍰鍱鍳鍴鍶"],["8fe5a1","鍺鍽鍿鎀鎁鎂鎈鎊鎋鎍鎏鎒鎕鎘鎛鎞鎡鎣鎤鎦鎨鎫鎴鎵鎶鎺鎩鏁鏄鏅鏆鏇鏉",4,"鏓鏙鏜鏞鏟鏢鏦鏧鏹鏷鏸鏺鏻鏽鐁鐂鐄鐈鐉鐍鐎鐏鐕鐖鐗鐟鐮鐯鐱鐲鐳鐴鐻鐿鐽鑃鑅鑈鑊鑌鑕鑙鑜鑟鑡鑣鑨鑫鑭鑮鑯鑱鑲钄钃镸镹"],["8fe6a1","镾閄閈閌閍閎閝閞閟閡閦閩閫閬閴閶閺閽閿闆闈闉闋闐闑闒闓闙闚闝闞闟闠闤闦阝阞阢阤阥阦阬阱阳阷阸阹阺阼阽陁陒陔陖陗陘陡陮陴陻陼陾陿隁隂隃隄隉隑隖隚隝隟隤隥隦隩隮隯隳隺雊雒嶲雘雚雝雞雟雩雯雱雺霂"],["8fe7a1","霃霅霉霚霛霝霡霢霣霨霱霳靁靃靊靎靏靕靗靘靚靛靣靧靪靮靳靶靷靸靻靽靿鞀鞉鞕鞖鞗鞙鞚鞞鞟鞢鞬鞮鞱鞲鞵鞶鞸鞹鞺鞼鞾鞿韁韄韅韇韉韊韌韍韎韐韑韔韗韘韙韝韞韠韛韡韤韯韱韴韷韸韺頇頊頙頍頎頔頖頜頞頠頣頦"],["8fe8a1","頫頮頯頰頲頳頵頥頾顄顇顊顑顒顓顖顗顙顚顢顣顥顦顪顬颫颭颮颰颴颷颸颺颻颿飂飅飈飌飡飣飥飦飧飪飳飶餂餇餈餑餕餖餗餚餛餜餟餢餦餧餫餱",4,"餹餺餻餼饀饁饆饇饈饍饎饔饘饙饛饜饞饟饠馛馝馟馦馰馱馲馵"],["8fe9a1","馹馺馽馿駃駉駓駔駙駚駜駞駧駪駫駬駰駴駵駹駽駾騂騃騄騋騌騐騑騖騞騠騢騣騤騧騭騮騳騵騶騸驇驁驄驊驋驌驎驑驔驖驝骪骬骮骯骲骴骵骶骹骻骾骿髁髃髆髈髎髐髒髕髖髗髛髜髠髤髥髧髩髬髲髳髵髹髺髽髿",4],["8feaa1","鬄鬅鬈鬉鬋鬌鬍鬎鬐鬒鬖鬙鬛鬜鬠鬦鬫鬭鬳鬴鬵鬷鬹鬺鬽魈魋魌魕魖魗魛魞魡魣魥魦魨魪",4,"魳魵魷魸魹魿鮀鮄鮅鮆鮇鮉鮊鮋鮍鮏鮐鮔鮚鮝鮞鮦鮧鮩鮬鮰鮱鮲鮷鮸鮻鮼鮾鮿鯁鯇鯈鯎鯐鯗鯘鯝鯟鯥鯧鯪鯫鯯鯳鯷鯸"],["8feba1","鯹鯺鯽鯿鰀鰂鰋鰏鰑鰖鰘鰙鰚鰜鰞鰢鰣鰦",4,"鰱鰵鰶鰷鰽鱁鱃鱄鱅鱉鱊鱎鱏鱐鱓鱔鱖鱘鱛鱝鱞鱟鱣鱩鱪鱜鱫鱨鱮鱰鱲鱵鱷鱻鳦鳲鳷鳹鴋鴂鴑鴗鴘鴜鴝鴞鴯鴰鴲鴳鴴鴺鴼鵅鴽鵂鵃鵇鵊鵓鵔鵟鵣鵢鵥鵩鵪鵫鵰鵶鵷鵻"],["8feca1","鵼鵾鶃鶄鶆鶊鶍鶎鶒鶓鶕鶖鶗鶘鶡鶪鶬鶮鶱鶵鶹鶼鶿鷃鷇鷉鷊鷔鷕鷖鷗鷚鷞鷟鷠鷥鷧鷩鷫鷮鷰鷳鷴鷾鸊鸂鸇鸎鸐鸑鸒鸕鸖鸙鸜鸝鹺鹻鹼麀麂麃麄麅麇麎麏麖麘麛麞麤麨麬麮麯麰麳麴麵黆黈黋黕黟黤黧黬黭黮黰黱黲黵"],["8feda1","黸黿鼂鼃鼉鼏鼐鼑鼒鼔鼖鼗鼙鼚鼛鼟鼢鼦鼪鼫鼯鼱鼲鼴鼷鼹鼺鼼鼽鼿齁齃",4,"齓齕齖齗齘齚齝齞齨齩齭",4,"齳齵齺齽龏龐龑龒龔龖龗龞龡龢龣龥"]]')},838:e=>{"use strict";e.exports=JSON.parse('{"uChars":[128,165,169,178,184,216,226,235,238,244,248,251,253,258,276,284,300,325,329,334,364,463,465,467,469,471,473,475,477,506,594,610,712,716,730,930,938,962,970,1026,1104,1106,8209,8215,8218,8222,8231,8241,8244,8246,8252,8365,8452,8454,8458,8471,8482,8556,8570,8596,8602,8713,8720,8722,8726,8731,8737,8740,8742,8748,8751,8760,8766,8777,8781,8787,8802,8808,8816,8854,8858,8870,8896,8979,9322,9372,9548,9588,9616,9622,9634,9652,9662,9672,9676,9680,9702,9735,9738,9793,9795,11906,11909,11913,11917,11928,11944,11947,11951,11956,11960,11964,11979,12284,12292,12312,12319,12330,12351,12436,12447,12535,12543,12586,12842,12850,12964,13200,13215,13218,13253,13263,13267,13270,13384,13428,13727,13839,13851,14617,14703,14801,14816,14964,15183,15471,15585,16471,16736,17208,17325,17330,17374,17623,17997,18018,18212,18218,18301,18318,18760,18811,18814,18820,18823,18844,18848,18872,19576,19620,19738,19887,40870,59244,59336,59367,59413,59417,59423,59431,59437,59443,59452,59460,59478,59493,63789,63866,63894,63976,63986,64016,64018,64021,64025,64034,64037,64042,65074,65093,65107,65112,65127,65132,65375,65510,65536],"gbChars":[0,36,38,45,50,81,89,95,96,100,103,104,105,109,126,133,148,172,175,179,208,306,307,308,309,310,311,312,313,341,428,443,544,545,558,741,742,749,750,805,819,820,7922,7924,7925,7927,7934,7943,7944,7945,7950,8062,8148,8149,8152,8164,8174,8236,8240,8262,8264,8374,8380,8381,8384,8388,8390,8392,8393,8394,8396,8401,8406,8416,8419,8424,8437,8439,8445,8482,8485,8496,8521,8603,8936,8946,9046,9050,9063,9066,9076,9092,9100,9108,9111,9113,9131,9162,9164,9218,9219,11329,11331,11334,11336,11346,11361,11363,11366,11370,11372,11375,11389,11682,11686,11687,11692,11694,11714,11716,11723,11725,11730,11736,11982,11989,12102,12336,12348,12350,12384,12393,12395,12397,12510,12553,12851,12962,12973,13738,13823,13919,13933,14080,14298,14585,14698,15583,15847,16318,16434,16438,16481,16729,17102,17122,17315,17320,17402,17418,17859,17909,17911,17915,17916,17936,17939,17961,18664,18703,18814,18962,19043,33469,33470,33471,33484,33485,33490,33497,33501,33505,33513,33520,33536,33550,37845,37921,37948,38029,38038,38064,38065,38066,38069,38075,38076,38078,39108,39109,39113,39114,39115,39116,39265,39394,189000]}')},636:e=>{"use strict";e.exports=JSON.parse('[["a140","",62],["a180","",32],["a240","",62],["a280","",32],["a2ab","",5],["a2e3","€"],["a2ef",""],["a2fd",""],["a340","",62],["a380","",31," "],["a440","",62],["a480","",32],["a4f4","",10],["a540","",62],["a580","",32],["a5f7","",7],["a640","",62],["a680","",32],["a6b9","",7],["a6d9","",6],["a6ec",""],["a6f3",""],["a6f6","",8],["a740","",62],["a780","",32],["a7c2","",14],["a7f2","",12],["a896","",10],["a8bc",""],["a8bf","ǹ"],["a8c1",""],["a8ea","",20],["a958",""],["a95b",""],["a95d",""],["a989","〾⿰",11],["a997","",12],["a9f0","",14],["aaa1","",93],["aba1","",93],["aca1","",93],["ada1","",93],["aea1","",93],["afa1","",93],["d7fa","",4],["f8a1","",93],["f9a1","",93],["faa1","",93],["fba1","",93],["fca1","",93],["fda1","",93],["fe50","⺁⺄㑳㑇⺈⺋㖞㘚㘎⺌⺗㥮㤘㧏㧟㩳㧐㭎㱮㳠⺧⺪䁖䅟⺮䌷⺳⺶⺷䎱䎬⺻䏝䓖䙡䙌"],["fe80","䜣䜩䝼䞍⻊䥇䥺䥽䦂䦃䦅䦆䦟䦛䦷䦶䲣䲟䲠䲡䱷䲢䴓",6,"䶮",93]]')},15:e=>{"use strict";e.exports=JSON.parse('[["0","\\u0000",128],["a1","。",62],["8140"," 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈",9,"+-±×"],["8180","÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓"],["81b8","∈∋⊆⊇⊂⊃∪∩"],["81c8","∧∨¬⇒⇔∀∃"],["81da","∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬"],["81f0","ʼn♯♭♪†‡¶"],["81fc","◯"],["824f","0",9],["8260","A",25],["8281","a",25],["829f","ぁ",82],["8340","ァ",62],["8380","ム",22],["839f","Α",16,"Σ",6],["83bf","α",16,"σ",6],["8440","А",5,"ЁЖ",25],["8470","а",5,"ёж",7],["8480","о",17],["849f","─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂"],["8740","①",19,"Ⅰ",9],["875f","㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡"],["877e","㍻"],["8780","〝〟№㏍℡㊤",4,"㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪"],["889f","亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭"],["8940","院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円"],["8980","園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改"],["8a40","魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫"],["8a80","橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄"],["8b40","機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救"],["8b80","朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈"],["8c40","掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨"],["8c80","劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向"],["8d40","后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降"],["8d80","項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷"],["8e40","察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止"],["8e80","死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周"],["8f40","宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳"],["8f80","準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾"],["9040","拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨"],["9080","逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線"],["9140","繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻"],["9180","操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只"],["9240","叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄"],["9280","逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓"],["9340","邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬"],["9380","凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入"],["9440","如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅"],["9480","楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美"],["9540","鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷"],["9580","斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋"],["9640","法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆"],["9680","摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒"],["9740","諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲"],["9780","沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯"],["9840","蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕"],["989f","弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲"],["9940","僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭"],["9980","凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨"],["9a40","咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸"],["9a80","噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩"],["9b40","奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀"],["9b80","它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏"],["9c40","廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠"],["9c80","怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛"],["9d40","戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫"],["9d80","捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼"],["9e40","曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎"],["9e80","梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣"],["9f40","檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯"],["9f80","麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌"],["e040","漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝"],["e080","烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱"],["e140","瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿"],["e180","痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬"],["e240","磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰"],["e280","窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆"],["e340","紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷"],["e380","縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋"],["e440","隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤"],["e480","艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈"],["e540","蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬"],["e580","蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞"],["e640","襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧"],["e680","諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊"],["e740","蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜"],["e780","轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮"],["e840","錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙"],["e880","閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰"],["e940","顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃"],["e980","騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈"],["ea40","鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯"],["ea80","黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙"],["ed40","纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏"],["ed80","塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱"],["ee40","犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙"],["ee80","蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"],["eeef","ⅰ",9,"¬¦'""],["f040","",62],["f080","",124],["f140","",62],["f180","",124],["f240","",62],["f280","",124],["f340","",62],["f380","",124],["f440","",62],["f480","",124],["f540","",62],["f580","",124],["f640","",62],["f680","",124],["f740","",62],["f780","",124],["f840","",62],["f880","",124],["f940",""],["fa40","ⅰ",9,"Ⅰ",9,"¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊"],["fa80","兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯"],["fb40","涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神"],["fb80","祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙"],["fc40","髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑"]]')},656:e=>{"use strict";e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","306":"(Unused)","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Unordered Collection","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var r=__webpack_module_cache__[e]={exports:{}};var a=true;try{__webpack_modules__[e](r,r.exports,__nccwpck_require__);a=false}finally{if(a)delete __webpack_module_cache__[e]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(113);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/raw-body/package.json b/cli/app/node_modules/next/dist/compiled/raw-body/package.json new file mode 100644 index 00000000000..438c4c76f79 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/raw-body/package.json @@ -0,0 +1 @@ +{"name":"raw-body","main":"index.js","author":"Jonathan Ong (http://jongleberry.com)","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js b/cli/app/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js new file mode 100644 index 00000000000..930755c59c8 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-is/cjs/react-is.development.js @@ -0,0 +1,133 @@ +/** + * @license React + * react-is.development.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +"production" !== process.env.NODE_ENV && + (function () { + function typeOf(object) { + if ("object" === typeof object && null !== object) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + switch (((object = object.type), object)) { + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: + case REACT_VIEW_TRANSITION_TYPE: + return object; + default: + switch (((object = object && object.$$typeof), object)) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + return object; + case REACT_CONSUMER_TYPE: + return object; + default: + return $$typeof; + } + } + case REACT_PORTAL_TYPE: + return $$typeof; + } + } + } + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); + exports.ContextConsumer = REACT_CONSUMER_TYPE; + exports.ContextProvider = REACT_CONTEXT_TYPE; + exports.Element = REACT_ELEMENT_TYPE; + exports.ForwardRef = REACT_FORWARD_REF_TYPE; + exports.Fragment = REACT_FRAGMENT_TYPE; + exports.Lazy = REACT_LAZY_TYPE; + exports.Memo = REACT_MEMO_TYPE; + exports.Portal = REACT_PORTAL_TYPE; + exports.Profiler = REACT_PROFILER_TYPE; + exports.StrictMode = REACT_STRICT_MODE_TYPE; + exports.Suspense = REACT_SUSPENSE_TYPE; + exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE; + exports.isContextConsumer = function (object) { + return typeOf(object) === REACT_CONSUMER_TYPE; + }; + exports.isContextProvider = function (object) { + return typeOf(object) === REACT_CONTEXT_TYPE; + }; + exports.isElement = function (object) { + return ( + "object" === typeof object && + null !== object && + object.$$typeof === REACT_ELEMENT_TYPE + ); + }; + exports.isForwardRef = function (object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; + }; + exports.isFragment = function (object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; + }; + exports.isLazy = function (object) { + return typeOf(object) === REACT_LAZY_TYPE; + }; + exports.isMemo = function (object) { + return typeOf(object) === REACT_MEMO_TYPE; + }; + exports.isPortal = function (object) { + return typeOf(object) === REACT_PORTAL_TYPE; + }; + exports.isProfiler = function (object) { + return typeOf(object) === REACT_PROFILER_TYPE; + }; + exports.isStrictMode = function (object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; + }; + exports.isSuspense = function (object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; + }; + exports.isSuspenseList = function (object) { + return typeOf(object) === REACT_SUSPENSE_LIST_TYPE; + }; + exports.isValidElementType = function (type) { + return "string" === typeof type || + "function" === typeof type || + type === REACT_FRAGMENT_TYPE || + type === REACT_PROFILER_TYPE || + type === REACT_STRICT_MODE_TYPE || + type === REACT_SUSPENSE_TYPE || + type === REACT_SUSPENSE_LIST_TYPE || + type === REACT_VIEW_TRANSITION_TYPE || + ("object" === typeof type && + null !== type && + (type.$$typeof === REACT_LAZY_TYPE || + type.$$typeof === REACT_MEMO_TYPE || + type.$$typeof === REACT_CONTEXT_TYPE || + type.$$typeof === REACT_CONSUMER_TYPE || + type.$$typeof === REACT_FORWARD_REF_TYPE || + type.$$typeof === REACT_CLIENT_REFERENCE || + void 0 !== type.getModuleId)) + ? !0 + : !1; + }; + exports.typeOf = typeOf; + })(); diff --git a/cli/app/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js b/cli/app/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js new file mode 100644 index 00000000000..409fd6c2ad5 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-is/cjs/react-is.production.js @@ -0,0 +1,130 @@ +/** + * @license React + * react-is.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); +function typeOf(object) { + if ("object" === typeof object && null !== object) { + var $$typeof = object.$$typeof; + switch ($$typeof) { + case REACT_ELEMENT_TYPE: + switch (((object = object.type), object)) { + case REACT_FRAGMENT_TYPE: + case REACT_PROFILER_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_SUSPENSE_TYPE: + case REACT_SUSPENSE_LIST_TYPE: + case REACT_VIEW_TRANSITION_TYPE: + return object; + default: + switch (((object = object && object.$$typeof), object)) { + case REACT_CONTEXT_TYPE: + case REACT_FORWARD_REF_TYPE: + case REACT_LAZY_TYPE: + case REACT_MEMO_TYPE: + return object; + case REACT_CONSUMER_TYPE: + return object; + default: + return $$typeof; + } + } + case REACT_PORTAL_TYPE: + return $$typeof; + } + } +} +exports.ContextConsumer = REACT_CONSUMER_TYPE; +exports.ContextProvider = REACT_CONTEXT_TYPE; +exports.Element = REACT_ELEMENT_TYPE; +exports.ForwardRef = REACT_FORWARD_REF_TYPE; +exports.Fragment = REACT_FRAGMENT_TYPE; +exports.Lazy = REACT_LAZY_TYPE; +exports.Memo = REACT_MEMO_TYPE; +exports.Portal = REACT_PORTAL_TYPE; +exports.Profiler = REACT_PROFILER_TYPE; +exports.StrictMode = REACT_STRICT_MODE_TYPE; +exports.Suspense = REACT_SUSPENSE_TYPE; +exports.SuspenseList = REACT_SUSPENSE_LIST_TYPE; +exports.isContextConsumer = function (object) { + return typeOf(object) === REACT_CONSUMER_TYPE; +}; +exports.isContextProvider = function (object) { + return typeOf(object) === REACT_CONTEXT_TYPE; +}; +exports.isElement = function (object) { + return ( + "object" === typeof object && + null !== object && + object.$$typeof === REACT_ELEMENT_TYPE + ); +}; +exports.isForwardRef = function (object) { + return typeOf(object) === REACT_FORWARD_REF_TYPE; +}; +exports.isFragment = function (object) { + return typeOf(object) === REACT_FRAGMENT_TYPE; +}; +exports.isLazy = function (object) { + return typeOf(object) === REACT_LAZY_TYPE; +}; +exports.isMemo = function (object) { + return typeOf(object) === REACT_MEMO_TYPE; +}; +exports.isPortal = function (object) { + return typeOf(object) === REACT_PORTAL_TYPE; +}; +exports.isProfiler = function (object) { + return typeOf(object) === REACT_PROFILER_TYPE; +}; +exports.isStrictMode = function (object) { + return typeOf(object) === REACT_STRICT_MODE_TYPE; +}; +exports.isSuspense = function (object) { + return typeOf(object) === REACT_SUSPENSE_TYPE; +}; +exports.isSuspenseList = function (object) { + return typeOf(object) === REACT_SUSPENSE_LIST_TYPE; +}; +exports.isValidElementType = function (type) { + return "string" === typeof type || + "function" === typeof type || + type === REACT_FRAGMENT_TYPE || + type === REACT_PROFILER_TYPE || + type === REACT_STRICT_MODE_TYPE || + type === REACT_SUSPENSE_TYPE || + type === REACT_SUSPENSE_LIST_TYPE || + type === REACT_VIEW_TRANSITION_TYPE || + ("object" === typeof type && + null !== type && + (type.$$typeof === REACT_LAZY_TYPE || + type.$$typeof === REACT_MEMO_TYPE || + type.$$typeof === REACT_CONTEXT_TYPE || + type.$$typeof === REACT_CONSUMER_TYPE || + type.$$typeof === REACT_FORWARD_REF_TYPE || + type.$$typeof === REACT_CLIENT_REFERENCE || + void 0 !== type.getModuleId)) + ? !0 + : !1; +}; +exports.typeOf = typeOf; diff --git a/cli/app/node_modules/next/dist/compiled/react-is/index.js b/cli/app/node_modules/next/dist/compiled/react-is/index.js new file mode 100644 index 00000000000..2cafe482766 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-is/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-is.production.js'); +} else { + module.exports = require('./cjs/react-is.development.js'); +} diff --git a/cli/app/node_modules/next/dist/compiled/react-is/package.json b/cli/app/node_modules/next/dist/compiled/react-is/package.json new file mode 100644 index 00000000000..ed5e2626f9f --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-is/package.json @@ -0,0 +1,26 @@ +{ + "name": "react-is", + "version": "19.3.0-canary-3f0b9e61-20260317", + "description": "Brand checking of React Elements.", + "main": "index.js", + "sideEffects": false, + "repository": { + "type": "git", + "url": "https://github.com/facebook/react.git", + "directory": "packages/react-is" + }, + "keywords": [ + "react" + ], + "license": "MIT", + "bugs": { + "url": "https://github.com/facebook/react/issues" + }, + "homepage": "https://react.dev/", + "files": [ + "LICENSE", + "README.md", + "index.js", + "cjs/" + ] +} \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/react-refresh/babel.js b/cli/app/node_modules/next/dist/compiled/react-refresh/babel.js new file mode 100644 index 00000000000..d222a0d3fd1 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-refresh/babel.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-refresh-babel.production.min.js'); +} else { + module.exports = require('./cjs/react-refresh-babel.development.js'); +} diff --git a/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-babel.development.js b/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-babel.development.js new file mode 100644 index 00000000000..96e365dee65 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-babel.development.js @@ -0,0 +1,842 @@ +/** + * @license React + * react-refresh-babel.development.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +if (process.env.NODE_ENV !== "production") { + (function() { +'use strict'; + +function ReactFreshBabelPlugin (babel) { + var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {}; + + if (typeof babel.env === 'function') { + // Only available in Babel 7. + var env = babel.env(); + + if (env !== 'development' && !opts.skipEnvCheck) { + throw new Error('React Refresh Babel transform should only be enabled in development environment. ' + 'Instead, the environment is: "' + env + '". If you want to override this check, pass {skipEnvCheck: true} as plugin options.'); + } + } + + var t = babel.types; + var refreshReg = t.identifier(opts.refreshReg || '$RefreshReg$'); + var refreshSig = t.identifier(opts.refreshSig || '$RefreshSig$'); + var registrationsByProgramPath = new Map(); + + function createRegistration(programPath, persistentID) { + var handle = programPath.scope.generateUidIdentifier('c'); + + if (!registrationsByProgramPath.has(programPath)) { + registrationsByProgramPath.set(programPath, []); + } + + var registrations = registrationsByProgramPath.get(programPath); + registrations.push({ + handle: handle, + persistentID: persistentID + }); + return handle; + } + + function isComponentishName(name) { + return typeof name === 'string' && name[0] >= 'A' && name[0] <= 'Z'; + } + + function findInnerComponents(inferredName, path, callback) { + var node = path.node; + + switch (node.type) { + case 'Identifier': + { + if (!isComponentishName(node.name)) { + return false; + } // export default hoc(Foo) + // const X = hoc(Foo) + + + callback(inferredName, node, null); + return true; + } + + case 'FunctionDeclaration': + { + // function Foo() {} + // export function Foo() {} + // export default function Foo() {} + callback(inferredName, node.id, null); + return true; + } + + case 'ArrowFunctionExpression': + { + if (node.body.type === 'ArrowFunctionExpression') { + return false; + } // let Foo = () => {} + // export default hoc1(hoc2(() => {})) + + + callback(inferredName, node, path); + return true; + } + + case 'FunctionExpression': + { + // let Foo = function() {} + // const Foo = hoc1(forwardRef(function renderFoo() {})) + // export default memo(function() {}) + callback(inferredName, node, path); + return true; + } + + case 'CallExpression': + { + var argsPath = path.get('arguments'); + + if (argsPath === undefined || argsPath.length === 0) { + return false; + } + + var calleePath = path.get('callee'); + + switch (calleePath.node.type) { + case 'MemberExpression': + case 'Identifier': + { + var calleeSource = calleePath.getSource(); + var firstArgPath = argsPath[0]; + var innerName = inferredName + '$' + calleeSource; + var foundInside = findInnerComponents(innerName, firstArgPath, callback); + + if (!foundInside) { + return false; + } // const Foo = hoc1(hoc2(() => {})) + // export default memo(React.forwardRef(function() {})) + + + callback(inferredName, node, path); + return true; + } + + default: + { + return false; + } + } + } + + case 'VariableDeclarator': + { + var init = node.init; + + if (init === null) { + return false; + } + + var name = node.id.name; + + if (!isComponentishName(name)) { + return false; + } + + switch (init.type) { + case 'ArrowFunctionExpression': + case 'FunctionExpression': + // Likely component definitions. + break; + + case 'CallExpression': + { + // Maybe a HOC. + // Try to determine if this is some form of import. + var callee = init.callee; + var calleeType = callee.type; + + if (calleeType === 'Import') { + return false; + } else if (calleeType === 'Identifier') { + if (callee.name.indexOf('require') === 0) { + return false; + } else if (callee.name.indexOf('import') === 0) { + return false; + } // Neither require nor import. Might be a HOC. + // Pass through. + + } + + break; + } + + case 'TaggedTemplateExpression': + // Maybe something like styled.div`...` + break; + + default: + return false; + } + + var initPath = path.get('init'); + + var _foundInside = findInnerComponents(inferredName, initPath, callback); + + if (_foundInside) { + return true; + } // See if this identifier is used in JSX. Then it's a component. + + + var binding = path.scope.getBinding(name); + + if (binding === undefined) { + return; + } + + var isLikelyUsedAsType = false; + var referencePaths = binding.referencePaths; + + for (var i = 0; i < referencePaths.length; i++) { + var ref = referencePaths[i]; + + if (ref.node && ref.node.type !== 'JSXIdentifier' && ref.node.type !== 'Identifier') { + continue; + } + + var refParent = ref.parent; + + if (refParent.type === 'JSXOpeningElement') { + isLikelyUsedAsType = true; + } else if (refParent.type === 'CallExpression') { + var _callee = refParent.callee; + var fnName = void 0; + + switch (_callee.type) { + case 'Identifier': + fnName = _callee.name; + break; + + case 'MemberExpression': + fnName = _callee.property.name; + break; + } + + switch (fnName) { + case 'createElement': + case 'jsx': + case 'jsxDEV': + case 'jsxs': + isLikelyUsedAsType = true; + break; + } + } + + if (isLikelyUsedAsType) { + // const X = ... + later + callback(inferredName, init, initPath); + return true; + } + } + } + } + + return false; + } + + function isBuiltinHook(hookName) { + switch (hookName) { + case 'useState': + case 'React.useState': + case 'useReducer': + case 'React.useReducer': + case 'useEffect': + case 'React.useEffect': + case 'useLayoutEffect': + case 'React.useLayoutEffect': + case 'useMemo': + case 'React.useMemo': + case 'useCallback': + case 'React.useCallback': + case 'useRef': + case 'React.useRef': + case 'useContext': + case 'React.useContext': + case 'useImperativeHandle': + case 'React.useImperativeHandle': + case 'useDebugValue': + case 'React.useDebugValue': + return true; + + default: + return false; + } + } + + function getHookCallsSignature(functionNode) { + var fnHookCalls = hookCalls.get(functionNode); + + if (fnHookCalls === undefined) { + return null; + } + + return { + key: fnHookCalls.map(function (call) { + return call.name + '{' + call.key + '}'; + }).join('\n'), + customHooks: fnHookCalls.filter(function (call) { + return !isBuiltinHook(call.name); + }).map(function (call) { + return t.cloneDeep(call.callee); + }) + }; + } + + var hasForceResetCommentByFile = new WeakMap(); // We let user do /* @refresh reset */ to reset state in the whole file. + + function hasForceResetComment(path) { + var file = path.hub.file; + var hasForceReset = hasForceResetCommentByFile.get(file); + + if (hasForceReset !== undefined) { + return hasForceReset; + } + + hasForceReset = false; + var comments = file.ast.comments; + + for (var i = 0; i < comments.length; i++) { + var cmt = comments[i]; + + if (cmt.value.indexOf('@refresh reset') !== -1) { + hasForceReset = true; + break; + } + } + + hasForceResetCommentByFile.set(file, hasForceReset); + return hasForceReset; + } + + function createArgumentsForSignature(node, signature, scope) { + var key = signature.key, + customHooks = signature.customHooks; + var forceReset = hasForceResetComment(scope.path); + var customHooksInScope = []; + customHooks.forEach(function (callee) { + // Check if a corresponding binding exists where we emit the signature. + var bindingName; + + switch (callee.type) { + case 'MemberExpression': + if (callee.object.type === 'Identifier') { + bindingName = callee.object.name; + } + + break; + + case 'Identifier': + bindingName = callee.name; + break; + } + + if (scope.hasBinding(bindingName)) { + customHooksInScope.push(callee); + } else { + // We don't have anything to put in the array because Hook is out of scope. + // Since it could potentially have been edited, remount the component. + forceReset = true; + } + }); + var finalKey = key; + + if (typeof require === 'function' && !opts.emitFullSignatures) { + // Prefer to hash when we can (e.g. outside of ASTExplorer). + // This makes it deterministically compact, even if there's + // e.g. a useState initializer with some code inside. + // We also need it for www that has transforms like cx() + // that don't understand if something is part of a string. + finalKey = require('crypto').createHash('sha1').update(key).digest('base64'); + } + + var args = [node, t.stringLiteral(finalKey)]; + + if (forceReset || customHooksInScope.length > 0) { + args.push(t.booleanLiteral(forceReset)); + } + + if (customHooksInScope.length > 0) { + args.push( // TODO: We could use an arrow here to be more compact. + // However, don't do it until AMA can run them natively. + t.functionExpression(null, [], t.blockStatement([t.returnStatement(t.arrayExpression(customHooksInScope))]))); + } + + return args; + } + + function findHOCCallPathsAbove(path) { + var calls = []; + + while (true) { + if (!path) { + return calls; + } + + var parentPath = path.parentPath; + + if (!parentPath) { + return calls; + } + + if ( // hoc(_c = function() { }) + parentPath.node.type === 'AssignmentExpression' && path.node === parentPath.node.right) { + // Ignore registrations. + path = parentPath; + continue; + } + + if ( // hoc1(hoc2(...)) + parentPath.node.type === 'CallExpression' && path.node !== parentPath.node.callee) { + calls.push(parentPath); + path = parentPath; + continue; + } + + return calls; // Stop at other types. + } + } + + var seenForRegistration = new WeakSet(); + var seenForSignature = new WeakSet(); + var seenForOutro = new WeakSet(); + var hookCalls = new WeakMap(); + var HookCallsVisitor = { + CallExpression: function (path) { + var node = path.node; + var callee = node.callee; // Note: this visitor MUST NOT mutate the tree in any way. + // It runs early in a separate traversal and should be very fast. + + var name = null; + + switch (callee.type) { + case 'Identifier': + name = callee.name; + break; + + case 'MemberExpression': + name = callee.property.name; + break; + } + + if (name === null || !/^use[A-Z]/.test(name)) { + return; + } + + var fnScope = path.scope.getFunctionParent(); + + if (fnScope === null) { + return; + } // This is a Hook call. Record it. + + + var fnNode = fnScope.block; + + if (!hookCalls.has(fnNode)) { + hookCalls.set(fnNode, []); + } + + var hookCallsForFn = hookCalls.get(fnNode); + var key = ''; + + if (path.parent.type === 'VariableDeclarator') { + // TODO: if there is no LHS, consider some other heuristic. + key = path.parentPath.get('id').getSource(); + } // Some built-in Hooks reset on edits to arguments. + + + var args = path.get('arguments'); + + if (name === 'useState' && args.length > 0) { + // useState second argument is initial state. + key += '(' + args[0].getSource() + ')'; + } else if (name === 'useReducer' && args.length > 1) { + // useReducer second argument is initial state. + key += '(' + args[1].getSource() + ')'; + } + + hookCallsForFn.push({ + callee: path.node.callee, + name: name, + key: key + }); + } + }; + return { + visitor: { + ExportDefaultDeclaration: function (path) { + var node = path.node; + var decl = node.declaration; + var declPath = path.get('declaration'); + + if (decl.type !== 'CallExpression') { + // For now, we only support possible HOC calls here. + // Named function declarations are handled in FunctionDeclaration. + // Anonymous direct exports like export default function() {} + // are currently ignored. + return; + } // Make sure we're not mutating the same tree twice. + // This can happen if another Babel plugin replaces parents. + + + if (seenForRegistration.has(node)) { + return; + } + + seenForRegistration.add(node); // Don't mutate the tree above this point. + // This code path handles nested cases like: + // export default memo(() => {}) + // In those cases it is more plausible people will omit names + // so they're worth handling despite possible false positives. + // More importantly, it handles the named case: + // export default memo(function Named() {}) + + var inferredName = '%default%'; + var programPath = path.parentPath; + findInnerComponents(inferredName, declPath, function (persistentID, targetExpr, targetPath) { + if (targetPath === null) { + // For case like: + // export default hoc(Foo) + // we don't want to wrap Foo inside the call. + // Instead we assume it's registered at definition. + return; + } + + var handle = createRegistration(programPath, persistentID); + targetPath.replaceWith(t.assignmentExpression('=', handle, targetExpr)); + }); + }, + FunctionDeclaration: { + enter: function (path) { + var node = path.node; + var programPath; + var insertAfterPath; + var modulePrefix = ''; + + switch (path.parent.type) { + case 'Program': + insertAfterPath = path; + programPath = path.parentPath; + break; + + case 'TSModuleBlock': + insertAfterPath = path; + programPath = insertAfterPath.parentPath.parentPath; + break; + + case 'ExportNamedDeclaration': + insertAfterPath = path.parentPath; + programPath = insertAfterPath.parentPath; + break; + + case 'ExportDefaultDeclaration': + insertAfterPath = path.parentPath; + programPath = insertAfterPath.parentPath; + break; + + default: + return; + } // These types can be nested in typescript namespace + // We need to find the export chain + // Or return if it stays local + + + if (path.parent.type === 'TSModuleBlock' || path.parent.type === 'ExportNamedDeclaration') { + while (programPath.type !== 'Program') { + if (programPath.type === 'TSModuleDeclaration') { + if (programPath.parentPath.type !== 'Program' && programPath.parentPath.type !== 'ExportNamedDeclaration') { + return; + } + + modulePrefix = programPath.node.id.name + '$' + modulePrefix; + } + + programPath = programPath.parentPath; + } + } + + var id = node.id; + + if (id === null) { + // We don't currently handle anonymous default exports. + return; + } + + var inferredName = id.name; + + if (!isComponentishName(inferredName)) { + return; + } // Make sure we're not mutating the same tree twice. + // This can happen if another Babel plugin replaces parents. + + + if (seenForRegistration.has(node)) { + return; + } + + seenForRegistration.add(node); // Don't mutate the tree above this point. + + var innerName = modulePrefix + inferredName; // export function Named() {} + // function Named() {} + + findInnerComponents(innerName, path, function (persistentID, targetExpr) { + var handle = createRegistration(programPath, persistentID); + insertAfterPath.insertAfter(t.expressionStatement(t.assignmentExpression('=', handle, targetExpr))); + }); + }, + exit: function (path) { + var node = path.node; + var id = node.id; + + if (id === null) { + return; + } + + var signature = getHookCallsSignature(node); + + if (signature === null) { + return; + } // Make sure we're not mutating the same tree twice. + // This can happen if another Babel plugin replaces parents. + + + if (seenForSignature.has(node)) { + return; + } + + seenForSignature.add(node); // Don't mutate the tree above this point. + + var sigCallID = path.scope.generateUidIdentifier('_s'); + path.scope.parent.push({ + id: sigCallID, + init: t.callExpression(refreshSig, []) + }); // The signature call is split in two parts. One part is called inside the function. + // This is used to signal when first render happens. + + path.get('body').unshiftContainer('body', t.expressionStatement(t.callExpression(sigCallID, []))); // The second call is around the function itself. + // This is used to associate a type with a signature. + // Unlike with $RefreshReg$, this needs to work for nested + // declarations too. So we need to search for a path where + // we can insert a statement rather than hard coding it. + + var insertAfterPath = null; + path.find(function (p) { + if (p.parentPath.isBlock()) { + insertAfterPath = p; + return true; + } + }); + + if (insertAfterPath === null) { + return; + } + + insertAfterPath.insertAfter(t.expressionStatement(t.callExpression(sigCallID, createArgumentsForSignature(id, signature, insertAfterPath.scope)))); + } + }, + 'ArrowFunctionExpression|FunctionExpression': { + exit: function (path) { + var node = path.node; + var signature = getHookCallsSignature(node); + + if (signature === null) { + return; + } // Make sure we're not mutating the same tree twice. + // This can happen if another Babel plugin replaces parents. + + + if (seenForSignature.has(node)) { + return; + } + + seenForSignature.add(node); // Don't mutate the tree above this point. + + var sigCallID = path.scope.generateUidIdentifier('_s'); + path.scope.parent.push({ + id: sigCallID, + init: t.callExpression(refreshSig, []) + }); // The signature call is split in two parts. One part is called inside the function. + // This is used to signal when first render happens. + + if (path.node.body.type !== 'BlockStatement') { + path.node.body = t.blockStatement([t.returnStatement(path.node.body)]); + } + + path.get('body').unshiftContainer('body', t.expressionStatement(t.callExpression(sigCallID, []))); // The second call is around the function itself. + // This is used to associate a type with a signature. + + if (path.parent.type === 'VariableDeclarator') { + var insertAfterPath = null; + path.find(function (p) { + if (p.parentPath.isBlock()) { + insertAfterPath = p; + return true; + } + }); + + if (insertAfterPath === null) { + return; + } // Special case when a function would get an inferred name: + // let Foo = () => {} + // let Foo = function() {} + // We'll add signature it on next line so that + // we don't mess up the inferred 'Foo' function name. + + + insertAfterPath.insertAfter(t.expressionStatement(t.callExpression(sigCallID, createArgumentsForSignature(path.parent.id, signature, insertAfterPath.scope)))); // Result: let Foo = () => {}; __signature(Foo, ...); + } else { + // let Foo = hoc(() => {}) + var paths = [path].concat(findHOCCallPathsAbove(path)); + paths.forEach(function (p) { + p.replaceWith(t.callExpression(sigCallID, createArgumentsForSignature(p.node, signature, p.scope))); + }); // Result: let Foo = __signature(hoc(__signature(() => {}, ...)), ...) + } + } + }, + VariableDeclaration: function (path) { + var node = path.node; + var programPath; + var insertAfterPath; + var modulePrefix = ''; + + switch (path.parent.type) { + case 'Program': + insertAfterPath = path; + programPath = path.parentPath; + break; + + case 'TSModuleBlock': + insertAfterPath = path; + programPath = insertAfterPath.parentPath.parentPath; + break; + + case 'ExportNamedDeclaration': + insertAfterPath = path.parentPath; + programPath = insertAfterPath.parentPath; + break; + + case 'ExportDefaultDeclaration': + insertAfterPath = path.parentPath; + programPath = insertAfterPath.parentPath; + break; + + default: + return; + } // These types can be nested in typescript namespace + // We need to find the export chain + // Or return if it stays local + + + if (path.parent.type === 'TSModuleBlock' || path.parent.type === 'ExportNamedDeclaration') { + while (programPath.type !== 'Program') { + if (programPath.type === 'TSModuleDeclaration') { + if (programPath.parentPath.type !== 'Program' && programPath.parentPath.type !== 'ExportNamedDeclaration') { + return; + } + + modulePrefix = programPath.node.id.name + '$' + modulePrefix; + } + + programPath = programPath.parentPath; + } + } // Make sure we're not mutating the same tree twice. + // This can happen if another Babel plugin replaces parents. + + + if (seenForRegistration.has(node)) { + return; + } + + seenForRegistration.add(node); // Don't mutate the tree above this point. + + var declPaths = path.get('declarations'); + + if (declPaths.length !== 1) { + return; + } + + var declPath = declPaths[0]; + var inferredName = declPath.node.id.name; + var innerName = modulePrefix + inferredName; + findInnerComponents(innerName, declPath, function (persistentID, targetExpr, targetPath) { + if (targetPath === null) { + // For case like: + // export const Something = hoc(Foo) + // we don't want to wrap Foo inside the call. + // Instead we assume it's registered at definition. + return; + } + + var handle = createRegistration(programPath, persistentID); + + if (targetPath.parent.type === 'VariableDeclarator') { + // Special case when a variable would get an inferred name: + // let Foo = () => {} + // let Foo = function() {} + // let Foo = styled.div``; + // We'll register it on next line so that + // we don't mess up the inferred 'Foo' function name. + // (eg: with @babel/plugin-transform-react-display-name or + // babel-plugin-styled-components) + insertAfterPath.insertAfter(t.expressionStatement(t.assignmentExpression('=', handle, declPath.node.id))); // Result: let Foo = () => {}; _c1 = Foo; + } else { + // let Foo = hoc(() => {}) + targetPath.replaceWith(t.assignmentExpression('=', handle, targetExpr)); // Result: let Foo = hoc(_c1 = () => {}) + } + }); + }, + Program: { + enter: function (path) { + // This is a separate early visitor because we need to collect Hook calls + // and "const [foo, setFoo] = ..." signatures before the destructuring + // transform mangles them. This extra traversal is not ideal for perf, + // but it's the best we can do until we stop transpiling destructuring. + path.traverse(HookCallsVisitor); + }, + exit: function (path) { + var registrations = registrationsByProgramPath.get(path); + + if (registrations === undefined) { + return; + } // Make sure we're not mutating the same tree twice. + // This can happen if another Babel plugin replaces parents. + + + var node = path.node; + + if (seenForOutro.has(node)) { + return; + } + + seenForOutro.add(node); // Don't mutate the tree above this point. + + registrationsByProgramPath.delete(path); + var declarators = []; + path.pushContainer('body', t.variableDeclaration('var', declarators)); + registrations.forEach(function (_ref) { + var handle = _ref.handle, + persistentID = _ref.persistentID; + path.pushContainer('body', t.expressionStatement(t.callExpression(refreshReg, [handle, t.stringLiteral(persistentID)]))); + declarators.push(t.variableDeclarator(handle)); + }); + } + } + } + }; +} + +module.exports = ReactFreshBabelPlugin; + })(); +} diff --git a/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-babel.production.min.js b/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-babel.production.min.js new file mode 100644 index 00000000000..26218eee0c1 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-babel.production.min.js @@ -0,0 +1,24 @@ +/** + * @license React + * react-refresh-babel.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict';module.exports=function(r){function t(a,b){var c=a.scope.generateUidIdentifier("c");l.has(a)||l.set(a,[]);l.get(a).push({handle:c,persistentID:b});return c}function u(a){return"string"===typeof a&&"A"<=a[0]&&"Z">=a[0]}function m(a,b,c){var d=b.node;switch(d.type){case "Identifier":if(!u(d.name))break;c(a,d,null);return!0;case "FunctionDeclaration":return c(a,d.id,null),!0;case "ArrowFunctionExpression":if("ArrowFunctionExpression"===d.body.type)break;c(a,d,b);return!0;case "FunctionExpression":return c(a, +d,b),!0;case "CallExpression":var e=b.get("arguments");if(void 0===e||0===e.length)break;var g=b.get("callee");switch(g.node.type){case "MemberExpression":case "Identifier":g=g.getSource();if(!m(a+"$"+g,e[0],c))return!1;c(a,d,b);return!0;default:return!1}case "VariableDeclarator":if(e=d.init,null!==e&&(g=d.id.name,u(g))){switch(e.type){case "ArrowFunctionExpression":case "FunctionExpression":break;case "CallExpression":d=e.callee;var f=d.type;if("Import"===f||"Identifier"===f&&(0===d.name.indexOf("require")|| +0===d.name.indexOf("import")))return!1;break;case "TaggedTemplateExpression":break;default:return!1}d=b.get("init");if(m(a,d,c))return!0;g=b.scope.getBinding(g);if(void 0===g)return;b=!1;g=g.referencePaths;for(f=0;f 2 && arguments[2] !== undefined ? arguments[2] : false; + var getCustomHooks = arguments.length > 3 ? arguments[3] : undefined; + + { + if (!allSignaturesByType.has(type)) { + allSignaturesByType.set(type, { + forceReset: forceReset, + ownKey: key, + fullKey: null, + getCustomHooks: getCustomHooks || function () { + return []; + } + }); + } // Visit inner types because we might not have signed them. + + + if (typeof type === 'object' && type !== null) { + switch (getProperty(type, '$$typeof')) { + case REACT_FORWARD_REF_TYPE: + setSignature(type.render, key, forceReset, getCustomHooks); + break; + + case REACT_MEMO_TYPE: + setSignature(type.type, key, forceReset, getCustomHooks); + break; + } + } + } +} // This is lazily called during first render for a type. +// It captures Hook list at that time so inline requires don't break comparisons. + +function collectCustomHooksForSignature(type) { + { + var signature = allSignaturesByType.get(type); + + if (signature !== undefined) { + computeFullKey(signature); + } + } +} +function getFamilyByID(id) { + { + return allFamiliesByID.get(id); + } +} +function getFamilyByType(type) { + { + return allFamiliesByType.get(type); + } +} +function findAffectedHostInstances(families) { + { + var affectedInstances = new Set(); + mountedRoots.forEach(function (root) { + var helpers = helpersByRoot.get(root); + + if (helpers === undefined) { + throw new Error('Could not find helpers for a root. This is a bug in React Refresh.'); + } + + var instancesForRoot = helpers.findHostInstancesForRefresh(root, families); + instancesForRoot.forEach(function (inst) { + affectedInstances.add(inst); + }); + }); + return affectedInstances; + } +} +function injectIntoGlobalHook(globalObject) { + { + // For React Native, the global hook will be set up by require('react-devtools-core'). + // That code will run before us. So we need to monkeypatch functions on existing hook. + // For React Web, the global hook will be set up by the extension. + // This will also run before us. + var hook = globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__; + + if (hook === undefined) { + // However, if there is no DevTools extension, we'll need to set up the global hook ourselves. + // Note that in this case it's important that renderer code runs *after* this method call. + // Otherwise, the renderer will think that there is no global hook, and won't do the injection. + var nextID = 0; + globalObject.__REACT_DEVTOOLS_GLOBAL_HOOK__ = hook = { + renderers: new Map(), + supportsFiber: true, + inject: function (injected) { + return nextID++; + }, + onScheduleFiberRoot: function (id, root, children) {}, + onCommitFiberRoot: function (id, root, maybePriorityLevel, didError) {}, + onCommitFiberUnmount: function () {} + }; + } + + if (hook.isDisabled) { + // This isn't a real property on the hook, but it can be set to opt out + // of DevTools integration and associated warnings and logs. + // Using console['warn'] to evade Babel and ESLint + console['warn']('Something has shimmed the React DevTools global hook (__REACT_DEVTOOLS_GLOBAL_HOOK__). ' + 'Fast Refresh is not compatible with this shim and will be disabled.'); + return; + } // Here, we just want to get a reference to scheduleRefresh. + + + var oldInject = hook.inject; + + hook.inject = function (injected) { + var id = oldInject.apply(this, arguments); + + if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') { + // This version supports React Refresh. + helpersByRendererID.set(id, injected); + } + + return id; + }; // Do the same for any already injected roots. + // This is useful if ReactDOM has already been initialized. + // https://github.com/facebook/react/issues/17626 + + + hook.renderers.forEach(function (injected, id) { + if (typeof injected.scheduleRefresh === 'function' && typeof injected.setRefreshHandler === 'function') { + // This version supports React Refresh. + helpersByRendererID.set(id, injected); + } + }); // We also want to track currently mounted roots. + + var oldOnCommitFiberRoot = hook.onCommitFiberRoot; + + var oldOnScheduleFiberRoot = hook.onScheduleFiberRoot || function () {}; + + hook.onScheduleFiberRoot = function (id, root, children) { + if (!isPerformingRefresh) { + // If it was intentionally scheduled, don't attempt to restore. + // This includes intentionally scheduled unmounts. + failedRoots.delete(root); + + if (rootElements !== null) { + rootElements.set(root, children); + } + } + + return oldOnScheduleFiberRoot.apply(this, arguments); + }; + + hook.onCommitFiberRoot = function (id, root, maybePriorityLevel, didError) { + var helpers = helpersByRendererID.get(id); + + if (helpers !== undefined) { + helpersByRoot.set(root, helpers); + var current = root.current; + var alternate = current.alternate; // We need to determine whether this root has just (un)mounted. + // This logic is copy-pasted from similar logic in the DevTools backend. + // If this breaks with some refactoring, you'll want to update DevTools too. + + if (alternate !== null) { + var wasMounted = alternate.memoizedState != null && alternate.memoizedState.element != null && mountedRoots.has(root); + var isMounted = current.memoizedState != null && current.memoizedState.element != null; + + if (!wasMounted && isMounted) { + // Mount a new root. + mountedRoots.add(root); + failedRoots.delete(root); + } else if (wasMounted && isMounted) ; else if (wasMounted && !isMounted) { + // Unmount an existing root. + mountedRoots.delete(root); + + if (didError) { + // We'll remount it on future edits. + failedRoots.add(root); + } else { + helpersByRoot.delete(root); + } + } else if (!wasMounted && !isMounted) { + if (didError) { + // We'll remount it on future edits. + failedRoots.add(root); + } + } + } else { + // Mount a new root. + mountedRoots.add(root); + } + } // Always call the decorated DevTools hook. + + + return oldOnCommitFiberRoot.apply(this, arguments); + }; + } +} +function hasUnrecoverableErrors() { + // TODO: delete this after removing dependency in RN. + return false; +} // Exposed for testing. + +function _getMountedRootCount() { + { + return mountedRoots.size; + } +} // This is a wrapper over more primitive functions for setting signature. +// Signatures let us decide whether the Hook order has changed on refresh. +// +// This function is intended to be used as a transform target, e.g.: +// var _s = createSignatureFunctionForTransform() +// +// function Hello() { +// const [foo, setFoo] = useState(0); +// const value = useCustomHook(); +// _s(); /* Call without arguments triggers collecting the custom Hook list. +// * This doesn't happen during the module evaluation because we +// * don't want to change the module order with inline requires. +// * Next calls are noops. */ +// return

Hi

; +// } +// +// /* Call with arguments attaches the signature to the type: */ +// _s( +// Hello, +// 'useState{[foo, setFoo]}(0)', +// () => [useCustomHook], /* Lazy to avoid triggering inline requires */ +// ); + +function createSignatureFunctionForTransform() { + { + var savedType; + var hasCustomHooks; + var didCollectHooks = false; + return function (type, key, forceReset, getCustomHooks) { + if (typeof key === 'string') { + // We're in the initial phase that associates signatures + // with the functions. Note this may be called multiple times + // in HOC chains like _s(hoc1(_s(hoc2(_s(actualFunction))))). + if (!savedType) { + // We're in the innermost call, so this is the actual type. + savedType = type; + hasCustomHooks = typeof getCustomHooks === 'function'; + } // Set the signature for all types (even wrappers!) in case + // they have no signatures of their own. This is to prevent + // problems like https://github.com/facebook/react/issues/20417. + + + if (type != null && (typeof type === 'function' || typeof type === 'object')) { + setSignature(type, key, forceReset, getCustomHooks); + } + + return type; + } else { + // We're in the _s() call without arguments, which means + // this is the time to collect custom Hook signatures. + // Only do this once. This path is hot and runs *inside* every render! + if (!didCollectHooks && hasCustomHooks) { + didCollectHooks = true; + collectCustomHooksForSignature(savedType); + } + } + }; + } +} +function isLikelyComponentType(type) { + { + switch (typeof type) { + case 'function': + { + // First, deal with classes. + if (type.prototype != null) { + if (type.prototype.isReactComponent) { + // React class. + return true; + } + + var ownNames = Object.getOwnPropertyNames(type.prototype); + + if (ownNames.length > 1 || ownNames[0] !== 'constructor') { + // This looks like a class. + return false; + } // eslint-disable-next-line no-proto + + + if (type.prototype.__proto__ !== Object.prototype) { + // It has a superclass. + return false; + } // Pass through. + // This looks like a regular function with empty prototype. + + } // For plain functions and arrows, use name as a heuristic. + + + var name = type.name || type.displayName; + return typeof name === 'string' && /^[A-Z]/.test(name); + } + + case 'object': + { + if (type != null) { + switch (getProperty(type, '$$typeof')) { + case REACT_FORWARD_REF_TYPE: + case REACT_MEMO_TYPE: + // Definitely React components. + return true; + + default: + return false; + } + } + + return false; + } + + default: + { + return false; + } + } + } +} + +exports._getMountedRootCount = _getMountedRootCount; +exports.collectCustomHooksForSignature = collectCustomHooksForSignature; +exports.createSignatureFunctionForTransform = createSignatureFunctionForTransform; +exports.findAffectedHostInstances = findAffectedHostInstances; +exports.getFamilyByID = getFamilyByID; +exports.getFamilyByType = getFamilyByType; +exports.hasUnrecoverableErrors = hasUnrecoverableErrors; +exports.injectIntoGlobalHook = injectIntoGlobalHook; +exports.isLikelyComponentType = isLikelyComponentType; +exports.performReactRefresh = performReactRefresh; +exports.register = register; +exports.setSignature = setSignature; + })(); +} diff --git a/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.production.min.js b/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.production.min.js new file mode 100644 index 00000000000..eb265399561 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.production.min.js @@ -0,0 +1,10 @@ +/** + * @license React + * react-refresh-runtime.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +'use strict';throw Error("React Refresh runtime should not be included in the production bundle."); diff --git a/cli/app/node_modules/next/dist/compiled/react-refresh/package.json b/cli/app/node_modules/next/dist/compiled/react-refresh/package.json new file mode 100644 index 00000000000..3037a6151ce --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-refresh/package.json @@ -0,0 +1,39 @@ +{ + "name": "react-refresh", + "description": "React is a JavaScript library for building user interfaces.", + "keywords": [ + "react" + ], + "version": "0.12.0", + "homepage": "https://reactjs.org/", + "bugs": "https://github.com/facebook/react/issues", + "license": "MIT", + "files": [ + "LICENSE", + "README.md", + "babel.js", + "runtime.js", + "cjs/", + "umd/" + ], + "main": "runtime.js", + "exports": { + ".": "./runtime.js", + "./runtime": "./runtime.js", + "./babel": "./babel.js", + "./package.json": "./package.json" + }, + "repository": { + "type": "git", + "url": "https://github.com/facebook/react.git", + "directory": "packages/react" + }, + "engines": { + "node": ">=0.10.0" + }, + "devDependencies": { + "react-16-8": "npm:react@16.8.0", + "react-dom-16-8": "npm:react-dom@16.8.0", + "scheduler-0-13": "npm:scheduler@0.13.0" + } +} \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/react-refresh/runtime.js b/cli/app/node_modules/next/dist/compiled/react-refresh/runtime.js new file mode 100644 index 00000000000..28e3b0ceeca --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/react-refresh/runtime.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-refresh-runtime.production.min.js'); +} else { + module.exports = require('./cjs/react-refresh-runtime.development.js'); +} diff --git a/cli/app/node_modules/next/dist/compiled/regenerator-runtime/package.json b/cli/app/node_modules/next/dist/compiled/regenerator-runtime/package.json new file mode 100644 index 00000000000..ebfd49a53e0 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/regenerator-runtime/package.json @@ -0,0 +1,19 @@ +{ + "name": "regenerator-runtime", + "author": "Ben Newman ", + "description": "Runtime for Regenerator-compiled generator and async functions.", + "version": "0.13.4", + "main": "runtime.js", + "keywords": [ + "regenerator", + "runtime", + "generator", + "async" + ], + "sideEffects": true, + "repository": { + "type": "git", + "url": "https://github.com/facebook/regenerator/tree/master/packages/regenerator-runtime" + }, + "license": "MIT" +} diff --git a/cli/app/node_modules/next/dist/compiled/regenerator-runtime/runtime.js b/cli/app/node_modules/next/dist/compiled/regenerator-runtime/runtime.js new file mode 100644 index 00000000000..224bf70e014 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/regenerator-runtime/runtime.js @@ -0,0 +1,729 @@ +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +var runtime = (function (exports) { + "use strict"; + + var Op = Object.prototype; + var hasOwn = Op.hasOwnProperty; + var undefined; // More compressible than void 0. + var $Symbol = typeof Symbol === "function" ? Symbol : {}; + var iteratorSymbol = $Symbol.iterator || "@@iterator"; + var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator"; + var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag"; + + function wrap(innerFn, outerFn, self, tryLocsList) { + // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator. + var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator; + var generator = Object.create(protoGenerator.prototype); + var context = new Context(tryLocsList || []); + + // The ._invoke method unifies the implementations of the .next, + // .throw, and .return methods. + generator._invoke = makeInvokeMethod(innerFn, self, context); + + return generator; + } + exports.wrap = wrap; + + // Try/catch helper to minimize deoptimizations. Returns a completion + // record like context.tryEntries[i].completion. This interface could + // have been (and was previously) designed to take a closure to be + // invoked without arguments, but in all the cases we care about we + // already have an existing method we want to call, so there's no need + // to create a new function object. We can even get away with assuming + // the method takes exactly one argument, since that happens to be true + // in every case, so we don't have to touch the arguments object. The + // only additional allocation required is the completion record, which + // has a stable shape and so hopefully should be cheap to allocate. + function tryCatch(fn, obj, arg) { + try { + return { type: "normal", arg: fn.call(obj, arg) }; + } catch (err) { + return { type: "throw", arg: err }; + } + } + + var GenStateSuspendedStart = "suspendedStart"; + var GenStateSuspendedYield = "suspendedYield"; + var GenStateExecuting = "executing"; + var GenStateCompleted = "completed"; + + // Returning this object from the innerFn has the same effect as + // breaking out of the dispatch switch statement. + var ContinueSentinel = {}; + + // Dummy constructor functions that we use as the .constructor and + // .constructor.prototype properties for functions that return Generator + // objects. For full spec compliance, you may wish to configure your + // minifier not to mangle the names of these two functions. + function Generator() {} + function GeneratorFunction() {} + function GeneratorFunctionPrototype() {} + + // This is a polyfill for %IteratorPrototype% for environments that + // don't natively support it. + var IteratorPrototype = {}; + IteratorPrototype[iteratorSymbol] = function () { + return this; + }; + + var getProto = Object.getPrototypeOf; + var NativeIteratorPrototype = getProto && getProto(getProto(values([]))); + if (NativeIteratorPrototype && + NativeIteratorPrototype !== Op && + hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) { + // This environment has a native %IteratorPrototype%; use it instead + // of the polyfill. + IteratorPrototype = NativeIteratorPrototype; + } + + var Gp = GeneratorFunctionPrototype.prototype = + Generator.prototype = Object.create(IteratorPrototype); + GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype; + GeneratorFunctionPrototype.constructor = GeneratorFunction; + GeneratorFunctionPrototype[toStringTagSymbol] = + GeneratorFunction.displayName = "GeneratorFunction"; + + // Helper for defining the .next, .throw, and .return methods of the + // Iterator interface in terms of a single ._invoke method. + function defineIteratorMethods(prototype) { + ["next", "throw", "return"].forEach(function(method) { + prototype[method] = function(arg) { + return this._invoke(method, arg); + }; + }); + } + + exports.isGeneratorFunction = function(genFun) { + var ctor = typeof genFun === "function" && genFun.constructor; + return ctor + ? ctor === GeneratorFunction || + // For the native GeneratorFunction constructor, the best we can + // do is to check its .name property. + (ctor.displayName || ctor.name) === "GeneratorFunction" + : false; + }; + + exports.mark = function(genFun) { + if (Object.setPrototypeOf) { + Object.setPrototypeOf(genFun, GeneratorFunctionPrototype); + } else { + genFun.__proto__ = GeneratorFunctionPrototype; + if (!(toStringTagSymbol in genFun)) { + genFun[toStringTagSymbol] = "GeneratorFunction"; + } + } + genFun.prototype = Object.create(Gp); + return genFun; + }; + + // Within the body of any async function, `await x` is transformed to + // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test + // `hasOwn.call(value, "__await")` to determine if the yielded value is + // meant to be awaited. + exports.awrap = function(arg) { + return { __await: arg }; + }; + + function AsyncIterator(generator, PromiseImpl) { + function invoke(method, arg, resolve, reject) { + var record = tryCatch(generator[method], generator, arg); + if (record.type === "throw") { + reject(record.arg); + } else { + var result = record.arg; + var value = result.value; + if (value && + typeof value === "object" && + hasOwn.call(value, "__await")) { + return PromiseImpl.resolve(value.__await).then(function(value) { + invoke("next", value, resolve, reject); + }, function(err) { + invoke("throw", err, resolve, reject); + }); + } + + return PromiseImpl.resolve(value).then(function(unwrapped) { + // When a yielded Promise is resolved, its final value becomes + // the .value of the Promise<{value,done}> result for the + // current iteration. + result.value = unwrapped; + resolve(result); + }, function(error) { + // If a rejected Promise was yielded, throw the rejection back + // into the async generator function so it can be handled there. + return invoke("throw", error, resolve, reject); + }); + } + } + + var previousPromise; + + function enqueue(method, arg) { + function callInvokeWithMethodAndArg() { + return new PromiseImpl(function(resolve, reject) { + invoke(method, arg, resolve, reject); + }); + } + + return previousPromise = + // If enqueue has been called before, then we want to wait until + // all previous Promises have been resolved before calling invoke, + // so that results are always delivered in the correct order. If + // enqueue has not been called before, then it is important to + // call invoke immediately, without waiting on a callback to fire, + // so that the async generator function has the opportunity to do + // any necessary setup in a predictable way. This predictability + // is why the Promise constructor synchronously invokes its + // executor callback, and why async functions synchronously + // execute code before the first await. Since we implement simple + // async functions in terms of async generators, it is especially + // important to get this right, even though it requires care. + previousPromise ? previousPromise.then( + callInvokeWithMethodAndArg, + // Avoid propagating failures to Promises returned by later + // invocations of the iterator. + callInvokeWithMethodAndArg + ) : callInvokeWithMethodAndArg(); + } + + // Define the unified helper method that is used to implement .next, + // .throw, and .return (see defineIteratorMethods). + this._invoke = enqueue; + } + + defineIteratorMethods(AsyncIterator.prototype); + AsyncIterator.prototype[asyncIteratorSymbol] = function () { + return this; + }; + exports.AsyncIterator = AsyncIterator; + + // Note that simple async functions are implemented on top of + // AsyncIterator objects; they just return a Promise for the value of + // the final result produced by the iterator. + exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) { + if (PromiseImpl === void 0) PromiseImpl = Promise; + + var iter = new AsyncIterator( + wrap(innerFn, outerFn, self, tryLocsList), + PromiseImpl + ); + + return exports.isGeneratorFunction(outerFn) + ? iter // If outerFn is a generator, return the full iterator. + : iter.next().then(function(result) { + return result.done ? result.value : iter.next(); + }); + }; + + function makeInvokeMethod(innerFn, self, context) { + var state = GenStateSuspendedStart; + + return function invoke(method, arg) { + if (state === GenStateExecuting) { + throw new Error("Generator is already running"); + } + + if (state === GenStateCompleted) { + if (method === "throw") { + throw arg; + } + + // Be forgiving, per 25.3.3.3.3 of the spec: + // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume + return doneResult(); + } + + context.method = method; + context.arg = arg; + + while (true) { + var delegate = context.delegate; + if (delegate) { + var delegateResult = maybeInvokeDelegate(delegate, context); + if (delegateResult) { + if (delegateResult === ContinueSentinel) continue; + return delegateResult; + } + } + + if (context.method === "next") { + // Setting context._sent for legacy support of Babel's + // function.sent implementation. + context.sent = context._sent = context.arg; + + } else if (context.method === "throw") { + if (state === GenStateSuspendedStart) { + state = GenStateCompleted; + throw context.arg; + } + + context.dispatchException(context.arg); + + } else if (context.method === "return") { + context.abrupt("return", context.arg); + } + + state = GenStateExecuting; + + var record = tryCatch(innerFn, self, context); + if (record.type === "normal") { + // If an exception is thrown from innerFn, we leave state === + // GenStateExecuting and loop back for another invocation. + state = context.done + ? GenStateCompleted + : GenStateSuspendedYield; + + if (record.arg === ContinueSentinel) { + continue; + } + + return { + value: record.arg, + done: context.done + }; + + } else if (record.type === "throw") { + state = GenStateCompleted; + // Dispatch the exception by looping back around to the + // context.dispatchException(context.arg) call above. + context.method = "throw"; + context.arg = record.arg; + } + } + }; + } + + // Call delegate.iterator[context.method](context.arg) and handle the + // result, either by returning a { value, done } result from the + // delegate iterator, or by modifying context.method and context.arg, + // setting context.delegate to null, and returning the ContinueSentinel. + function maybeInvokeDelegate(delegate, context) { + var method = delegate.iterator[context.method]; + if (method === undefined) { + // A .throw or .return when the delegate iterator has no .throw + // method always terminates the yield* loop. + context.delegate = null; + + if (context.method === "throw") { + // Note: ["return"] must be used for ES3 parsing compatibility. + if (delegate.iterator["return"]) { + // If the delegate iterator has a return method, give it a + // chance to clean up. + context.method = "return"; + context.arg = undefined; + maybeInvokeDelegate(delegate, context); + + if (context.method === "throw") { + // If maybeInvokeDelegate(context) changed context.method from + // "return" to "throw", let that override the TypeError below. + return ContinueSentinel; + } + } + + context.method = "throw"; + context.arg = new TypeError( + "The iterator does not provide a 'throw' method"); + } + + return ContinueSentinel; + } + + var record = tryCatch(method, delegate.iterator, context.arg); + + if (record.type === "throw") { + context.method = "throw"; + context.arg = record.arg; + context.delegate = null; + return ContinueSentinel; + } + + var info = record.arg; + + if (! info) { + context.method = "throw"; + context.arg = new TypeError("iterator result is not an object"); + context.delegate = null; + return ContinueSentinel; + } + + if (info.done) { + // Assign the result of the finished delegate to the temporary + // variable specified by delegate.resultName (see delegateYield). + context[delegate.resultName] = info.value; + + // Resume execution at the desired location (see delegateYield). + context.next = delegate.nextLoc; + + // If context.method was "throw" but the delegate handled the + // exception, let the outer generator proceed normally. If + // context.method was "next", forget context.arg since it has been + // "consumed" by the delegate iterator. If context.method was + // "return", allow the original .return call to continue in the + // outer generator. + if (context.method !== "return") { + context.method = "next"; + context.arg = undefined; + } + + } else { + // Re-yield the result returned by the delegate method. + return info; + } + + // The delegate iterator is finished, so forget it and continue with + // the outer generator. + context.delegate = null; + return ContinueSentinel; + } + + // Define Generator.prototype.{next,throw,return} in terms of the + // unified ._invoke helper method. + defineIteratorMethods(Gp); + + Gp[toStringTagSymbol] = "Generator"; + + // A Generator should always return itself as the iterator object when the + // @@iterator function is called on it. Some browsers' implementations of the + // iterator prototype chain incorrectly implement this, causing the Generator + // object to not be returned from this call. This ensures that doesn't happen. + // See https://github.com/facebook/regenerator/issues/274 for more details. + Gp[iteratorSymbol] = function() { + return this; + }; + + Gp.toString = function() { + return "[object Generator]"; + }; + + function pushTryEntry(locs) { + var entry = { tryLoc: locs[0] }; + + if (1 in locs) { + entry.catchLoc = locs[1]; + } + + if (2 in locs) { + entry.finallyLoc = locs[2]; + entry.afterLoc = locs[3]; + } + + this.tryEntries.push(entry); + } + + function resetTryEntry(entry) { + var record = entry.completion || {}; + record.type = "normal"; + delete record.arg; + entry.completion = record; + } + + function Context(tryLocsList) { + // The root entry object (effectively a try statement without a catch + // or a finally block) gives us a place to store values thrown from + // locations where there is no enclosing try statement. + this.tryEntries = [{ tryLoc: "root" }]; + tryLocsList.forEach(pushTryEntry, this); + this.reset(true); + } + + exports.keys = function(object) { + var keys = []; + for (var key in object) { + keys.push(key); + } + keys.reverse(); + + // Rather than returning an object with a next method, we keep + // things simple and return the next function itself. + return function next() { + while (keys.length) { + var key = keys.pop(); + if (key in object) { + next.value = key; + next.done = false; + return next; + } + } + + // To avoid creating an additional object, we just hang the .value + // and .done properties off the next function object itself. This + // also ensures that the minifier will not anonymize the function. + next.done = true; + return next; + }; + }; + + function values(iterable) { + if (iterable) { + var iteratorMethod = iterable[iteratorSymbol]; + if (iteratorMethod) { + return iteratorMethod.call(iterable); + } + + if (typeof iterable.next === "function") { + return iterable; + } + + if (!isNaN(iterable.length)) { + var i = -1, next = function next() { + while (++i < iterable.length) { + if (hasOwn.call(iterable, i)) { + next.value = iterable[i]; + next.done = false; + return next; + } + } + + next.value = undefined; + next.done = true; + + return next; + }; + + return next.next = next; + } + } + + // Return an iterator with no values. + return { next: doneResult }; + } + exports.values = values; + + function doneResult() { + return { value: undefined, done: true }; + } + + Context.prototype = { + constructor: Context, + + reset: function(skipTempReset) { + this.prev = 0; + this.next = 0; + // Resetting context._sent for legacy support of Babel's + // function.sent implementation. + this.sent = this._sent = undefined; + this.done = false; + this.delegate = null; + + this.method = "next"; + this.arg = undefined; + + this.tryEntries.forEach(resetTryEntry); + + if (!skipTempReset) { + for (var name in this) { + // Not sure about the optimal order of these conditions: + if (name.charAt(0) === "t" && + hasOwn.call(this, name) && + !isNaN(+name.slice(1))) { + this[name] = undefined; + } + } + } + }, + + stop: function() { + this.done = true; + + var rootEntry = this.tryEntries[0]; + var rootRecord = rootEntry.completion; + if (rootRecord.type === "throw") { + throw rootRecord.arg; + } + + return this.rval; + }, + + dispatchException: function(exception) { + if (this.done) { + throw exception; + } + + var context = this; + function handle(loc, caught) { + record.type = "throw"; + record.arg = exception; + context.next = loc; + + if (caught) { + // If the dispatched exception was caught by a catch block, + // then let that catch block handle the exception normally. + context.method = "next"; + context.arg = undefined; + } + + return !! caught; + } + + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + var record = entry.completion; + + if (entry.tryLoc === "root") { + // Exception thrown outside of any try block that could handle + // it, so set the completion value of the entire function to + // throw the exception. + return handle("end"); + } + + if (entry.tryLoc <= this.prev) { + var hasCatch = hasOwn.call(entry, "catchLoc"); + var hasFinally = hasOwn.call(entry, "finallyLoc"); + + if (hasCatch && hasFinally) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } else if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else if (hasCatch) { + if (this.prev < entry.catchLoc) { + return handle(entry.catchLoc, true); + } + + } else if (hasFinally) { + if (this.prev < entry.finallyLoc) { + return handle(entry.finallyLoc); + } + + } else { + throw new Error("try statement without catch or finally"); + } + } + } + }, + + abrupt: function(type, arg) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc <= this.prev && + hasOwn.call(entry, "finallyLoc") && + this.prev < entry.finallyLoc) { + var finallyEntry = entry; + break; + } + } + + if (finallyEntry && + (type === "break" || + type === "continue") && + finallyEntry.tryLoc <= arg && + arg <= finallyEntry.finallyLoc) { + // Ignore the finally entry if control is not jumping to a + // location outside the try/catch block. + finallyEntry = null; + } + + var record = finallyEntry ? finallyEntry.completion : {}; + record.type = type; + record.arg = arg; + + if (finallyEntry) { + this.method = "next"; + this.next = finallyEntry.finallyLoc; + return ContinueSentinel; + } + + return this.complete(record); + }, + + complete: function(record, afterLoc) { + if (record.type === "throw") { + throw record.arg; + } + + if (record.type === "break" || + record.type === "continue") { + this.next = record.arg; + } else if (record.type === "return") { + this.rval = this.arg = record.arg; + this.method = "return"; + this.next = "end"; + } else if (record.type === "normal" && afterLoc) { + this.next = afterLoc; + } + + return ContinueSentinel; + }, + + finish: function(finallyLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.finallyLoc === finallyLoc) { + this.complete(entry.completion, entry.afterLoc); + resetTryEntry(entry); + return ContinueSentinel; + } + } + }, + + "catch": function(tryLoc) { + for (var i = this.tryEntries.length - 1; i >= 0; --i) { + var entry = this.tryEntries[i]; + if (entry.tryLoc === tryLoc) { + var record = entry.completion; + if (record.type === "throw") { + var thrown = record.arg; + resetTryEntry(entry); + } + return thrown; + } + } + + // The context.catch method must only be called with a location + // argument that corresponds to a known catch block. + throw new Error("illegal catch attempt"); + }, + + delegateYield: function(iterable, resultName, nextLoc) { + this.delegate = { + iterator: values(iterable), + resultName: resultName, + nextLoc: nextLoc + }; + + if (this.method === "next") { + // Deliberately forget the last sent value so that we don't + // accidentally pass it on to the delegate. + this.arg = undefined; + } + + return ContinueSentinel; + } + }; + + // Regardless of whether this script is executing as a CommonJS module + // or not, return the runtime object so that we can declare the variable + // regeneratorRuntime in the outer scope, which allows this module to be + // injected easily by `bin/regenerator --include-runtime script.js`. + return exports; + +}( + // If this script is executing as a CommonJS module, use module.exports + // as the regeneratorRuntime namespace. Otherwise create a new empty + // object. Either way, the resulting object will be used to initialize + // the regeneratorRuntime variable at the top of this file. + typeof module === "object" ? module.exports : {} +)); + +try { + regeneratorRuntime = runtime; +} catch (accidentalStrictMode) { + // This module should not be running in strict mode, so the above + // assignment should always work unless something is misconfigured. Just + // in case runtime.js accidentally runs in strict mode, we can escape + // strict mode using a global Function call. This could conceivably fail + // if a Content Security Policy forbids using Function, but in that case + // the proper solution is to fix the accidental strict mode problem. If + // you've misconfigured your bundler to force strict mode and applied a + // CSP to forbid Function, and you're not willing to fix either of those + // problems, please detail your unique predicament in a GitHub issue. + Function("r", "regeneratorRuntime = r")(runtime); +} diff --git a/cli/app/node_modules/next/dist/compiled/safe-stable-stringify/index.js b/cli/app/node_modules/next/dist/compiled/safe-stable-stringify/index.js new file mode 100644 index 00000000000..1bdd42c4ca4 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/safe-stable-stringify/index.js @@ -0,0 +1 @@ +(function(){"use strict";var e={879:function(e,t){const{hasOwnProperty:n}=Object.prototype;const r=configure();r.configure=configure;r.stringify=r;r.default=r;t.stringify=r;t.configure=configure;e.exports=r;const i=/[\u0000-\u001f\u0022\u005c\ud800-\udfff]/;function strEscape(e){if(e.length<5e3&&!i.test(e)){return`"${e}"`}return JSON.stringify(e)}function sort(e,t){if(e.length>200||t){return e.sort(t)}for(let t=1;tn){e[r]=e[r-1];r--}e[r]=n}return e}const f=Object.getOwnPropertyDescriptor(Object.getPrototypeOf(Object.getPrototypeOf(new Int8Array)),Symbol.toStringTag).get;function isTypedArrayWithEntries(e){return f.call(e)!==undefined&&e.length!==0}function stringifyTypedArray(e,t,n){if(e.length= 1`)}}return r===undefined?Infinity:r}function getItemCount(e){if(e===1){return"1 item"}return`${e} items`}function getUniqueReplacerSet(e){const t=new Set;for(const n of e){if(typeof n==="string"||typeof n==="number"){t.add(String(n))}}return t}function getStrictOption(e){if(n.call(e,"strict")){const t=e.strict;if(typeof t!=="boolean"){throw new TypeError('The "strict" argument must be of type boolean')}if(t){return e=>{let t=`Object can not safely be stringified. Received type ${typeof e}`;if(typeof e!=="function")t+=` (${e.toString()})`;throw new Error(t)}}}}function configure(e){e={...e};const t=getStrictOption(e);if(t){if(e.bigint===undefined){e.bigint=false}if(!("circularValue"in e)){e.circularValue=Error}}const n=getCircularValueOption(e);const r=getBooleanOption(e,"bigint");const i=getDeterministicOption(e);const f=typeof i==="function"?i:undefined;const u=getPositiveIntegerOption(e,"maximumDepth");const o=getPositiveIntegerOption(e,"maximumBreadth");function stringifyFnReplacer(e,s,l,c,a,g){let p=s[e];if(typeof p==="object"&&p!==null&&typeof p.toJSON==="function"){p=p.toJSON(e)}p=c.call(s,e,p);switch(typeof p){case"string":return strEscape(p);case"object":{if(p===null){return"null"}if(l.indexOf(p)!==-1){return n}let e="";let t=",";const r=g;if(Array.isArray(p)){if(p.length===0){return"[]"}if(uo){const n=p.length-o-1;e+=`${t}"... ${getItemCount(n)} not stringified"`}if(a!==""){e+=`\n${r}`}l.pop();return`[${e}]`}let s=Object.keys(p);const y=s.length;if(y===0){return"{}"}if(uo){const n=y-o;e+=`${h}"...":${d}"${getItemCount(n)} not stringified"`;h=t}if(a!==""&&h.length>1){e=`\n${g}${e}\n${r}`}l.pop();return`{${e}}`}case"number":return isFinite(p)?String(p):t?t(p):"null";case"boolean":return p===true?"true":"false";case"undefined":return undefined;case"bigint":if(r){return String(p)}default:return t?t(p):undefined}}function stringifyArrayReplacer(e,i,f,s,l,c){if(typeof i==="object"&&i!==null&&typeof i.toJSON==="function"){i=i.toJSON(e)}switch(typeof i){case"string":return strEscape(i);case"object":{if(i===null){return"null"}if(f.indexOf(i)!==-1){return n}const e=c;let t="";let r=",";if(Array.isArray(i)){if(i.length===0){return"[]"}if(uo){const e=i.length-o-1;t+=`${r}"... ${getItemCount(e)} not stringified"`}if(l!==""){t+=`\n${e}`}f.pop();return`[${t}]`}f.push(i);let a="";if(l!==""){c+=l;r=`,\n${c}`;a=" "}let g="";for(const e of s){const n=stringifyArrayReplacer(e,i[e],f,s,l,c);if(n!==undefined){t+=`${g}${strEscape(e)}:${a}${n}`;g=r}}if(l!==""&&g.length>1){t=`\n${c}${t}\n${e}`}f.pop();return`{${t}}`}case"number":return isFinite(i)?String(i):t?t(i):"null";case"boolean":return i===true?"true":"false";case"undefined":return undefined;case"bigint":if(r){return String(i)}default:return t?t(i):undefined}}function stringifyIndent(e,s,l,c,a){switch(typeof s){case"string":return strEscape(s);case"object":{if(s===null){return"null"}if(typeof s.toJSON==="function"){s=s.toJSON(e);if(typeof s!=="object"){return stringifyIndent(e,s,l,c,a)}if(s===null){return"null"}}if(l.indexOf(s)!==-1){return n}const t=a;if(Array.isArray(s)){if(s.length===0){return"[]"}if(uo){const t=s.length-o-1;e+=`${n}"... ${getItemCount(t)} not stringified"`}e+=`\n${t}`;l.pop();return`[${e}]`}let r=Object.keys(s);const g=r.length;if(g===0){return"{}"}if(uo){const e=g-o;y+=`${d}"...": "${getItemCount(e)} not stringified"`;d=p}if(d!==""){y=`\n${a}${y}\n${t}`}l.pop();return`{${y}}`}case"number":return isFinite(s)?String(s):t?t(s):"null";case"boolean":return s===true?"true":"false";case"undefined":return undefined;case"bigint":if(r){return String(s)}default:return t?t(s):undefined}}function stringifySimple(e,s,l){switch(typeof s){case"string":return strEscape(s);case"object":{if(s===null){return"null"}if(typeof s.toJSON==="function"){s=s.toJSON(e);if(typeof s!=="object"){return stringifySimple(e,s,l)}if(s===null){return"null"}}if(l.indexOf(s)!==-1){return n}let t="";const r=s.length!==undefined;if(r&&Array.isArray(s)){if(s.length===0){return"[]"}if(uo){const e=s.length-o-1;t+=`,"... ${getItemCount(e)} not stringified"`}l.pop();return`[${t}]`}let c=Object.keys(s);const a=c.length;if(a===0){return"{}"}if(uo){const e=a-o;t+=`${g}"...":"${getItemCount(e)} not stringified"`}l.pop();return`{${t}}`}case"number":return isFinite(s)?String(s):t?t(s):"null";case"boolean":return s===true?"true":"false";case"undefined":return undefined;case"bigint":if(r){return String(s)}default:return t?t(s):undefined}}function stringify(e,t,n){if(arguments.length>1){let r="";if(typeof n==="number"){r=" ".repeat(Math.min(n,10))}else if(typeof n==="string"){r=n.slice(0,10)}if(t!=null){if(typeof t==="function"){return stringifyFnReplacer("",{"":e},[],t,r,"")}if(Array.isArray(t)){return stringifyArrayReplacer("",e,[],getUniqueReplacerSet(t),r,"")}}if(r.length!==0){return stringifyIndent("",e,[],r,"")}}return stringifySimple("",e,[])}return stringify}}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var i=t[n]={exports:{}};var f=true;try{e[n](i,i.exports,__nccwpck_require__);f=false}finally{if(f)delete t[n]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n=__nccwpck_require__(879);module.exports=n})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/safe-stable-stringify/package.json b/cli/app/node_modules/next/dist/compiled/safe-stable-stringify/package.json new file mode 100644 index 00000000000..ea5b015f661 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/safe-stable-stringify/package.json @@ -0,0 +1 @@ +{"name":"safe-stable-stringify","main":"index.js","author":"Ruben Bridgewater","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/sass-loader/cjs.js b/cli/app/node_modules/next/dist/compiled/sass-loader/cjs.js new file mode 100644 index 00000000000..4d4d915f59d --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/sass-loader/cjs.js @@ -0,0 +1 @@ +(function(){"use strict";var __webpack_modules__={143:function(e,t,s){const n=s(371);e.exports=n.default},371:function(e,t,s){Object.defineProperty(t,"__esModule",{value:true});t["default"]=void 0;var n=_interopRequireDefault(s(310));var o=_interopRequireDefault(s(17));var r=_interopRequireDefault(s(33));var a=s(159);function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}async function loader(e){const t=this.getOptions(r.default);const s=this.async();let i;try{i=(0,a.getSassImplementation)(this,t.implementation)}catch(e){s(e);return}const c=typeof t.sourceMap==="boolean"?t.sourceMap:this.sourceMap;const l=typeof i.compileStringAsync==="undefined"?"legacy":typeof t.api==="undefined"?"modern":t.api;const p=await(0,a.getSassOptions)(this,t,e,i,c,l);const u=typeof t.webpackImporter==="boolean"?t.webpackImporter:true;if(u){const e=l==="modern"||l==="modern-compiler";if(!e){const{includePaths:e}=p;p.importer.push((0,a.getWebpackImporter)(this,i,e))}else{p.importers.push((0,a.getModernWebpackImporter)(this,i,[]))}}let d;try{d=(0,a.getCompileFn)(this,i,l)}catch(e){s(e);return}let f;try{f=await d(p)}catch(e){if(e.span&&typeof e.span.url!=="undefined"){this.addDependency(n.default.fileURLToPath(e.span.url))}else if(typeof e.file!=="undefined"){this.addDependency(o.default.normalize(e.file))}s((0,a.errorFactory)(e));return}let m=f.sourceMap?f.sourceMap:f.map?JSON.parse(f.map):null;if(m&&c){m=(0,a.normalizeSourceMap)(m,this.rootContext)}if(typeof f.loadedUrls!=="undefined"){f.loadedUrls.filter((e=>e.protocol==="file:")).forEach((e=>{const t=n.default.fileURLToPath(e);if(o.default.isAbsolute(t)){this.addDependency(t)}}))}else if(typeof f.stats!=="undefined"&&typeof f.stats.includedFiles!=="undefined"){f.stats.includedFiles.forEach((e=>{const t=o.default.normalize(e);if(o.default.isAbsolute(t)){this.addDependency(t)}}))}s(null,f.css.toString(),m)}var i=t["default"]=loader},159:function(__unused_webpack_module,exports,__nccwpck_require__){Object.defineProperty(exports,"__esModule",{value:true});exports.errorFactory=errorFactory;exports.getCompileFn=getCompileFn;exports.getModernWebpackImporter=getModernWebpackImporter;exports.getSassImplementation=getSassImplementation;exports.getSassOptions=getSassOptions;exports.getWebpackImporter=getWebpackImporter;exports.getWebpackResolver=getWebpackResolver;exports.normalizeSourceMap=normalizeSourceMap;var _url=_interopRequireDefault(__nccwpck_require__(310));var _path=_interopRequireDefault(__nccwpck_require__(17));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function getDefaultSassImplementation(){let sassImplPkg="sass";try{eval("require").resolve("sass-embedded");sassImplPkg="sass-embedded"}catch(ignoreError){try{eval("require").resolve("sass")}catch(_ignoreError){try{eval("require").resolve("node-sass");sassImplPkg="node-sass"}catch(e){sassImplPkg="sass"}}}return __nccwpck_require__(438)}function getSassImplementation(e,t){let s=t;if(!s){s=getDefaultSassImplementation()}if(typeof s==="string"){s=require(s)}const{info:n}=s;if(!n){throw new Error("Unknown Sass implementation.")}const o=n.split("\t");if(o.length<2){throw new Error(`Unknown Sass implementation "${n}".`)}const[r]=o;if(r==="dart-sass"){return s}else if(r==="node-sass"){return s}else if(r==="sass-embedded"){return s}throw new Error(`Unknown Sass implementation "${r}".`)}function isProductionLikeMode(e){return e.mode==="production"||!e.mode}function proxyCustomImporters(e,t){return[].concat(e).map((e=>function proxyImporter(...s){const n={...this,webpackLoaderContext:t};return e.apply(n,s)}))}async function getSassOptions(e,t,s,n,o,r){const a=t.sassOptions?typeof t.sassOptions==="function"?t.sassOptions(e)||{}:t.sassOptions:{};const i={...a,data:t.additionalData?typeof t.additionalData==="function"?await t.additionalData(s,e):`${t.additionalData}\n${s}`:s};if(!i.logger){const s=t.warnRuleAsWarning!==false;const n=e.getLogger("sass-loader");const formatSpan=e=>`Warning on line ${e.start.line}, column ${e.start.column} of ${e.url||"-"}:${e.start.line}:${e.start.column}:\n`;const formatDebugSpan=e=>`[debug:${e.start.line}:${e.start.column}] `;i.logger={debug(e,t){let s="";if(t.span){s=formatDebugSpan(t.span)}s+=e;n.debug(s)},warn(t,o){let r="";if(o.deprecation){r+="Deprecation "}if(o.span){r+=formatSpan(o.span)}r+=t;if(o.span&&o.span.context){r+=`\n\n${o.span.start.line} | ${o.span.context}`}if(o.stack&&o.stack!=="null"){r+=`\n\n${o.stack}`}if(s){const t=new Error(r);t.name="SassWarning";t.stack=null;e.emitWarning(t)}else{n.warn(r)}}}}const c=r==="modern"||r==="modern-compiler";const{resourcePath:l}=e;if(c){i.url=_url.default.pathToFileURL(l);if(!i.style&&isProductionLikeMode(e)){i.style="compressed"}if(o){i.sourceMap=true;i.sourceMapIncludeSources=true}if(typeof i.syntax==="undefined"){const e=_path.default.extname(l);if(e&&e.toLowerCase()===".scss"){i.syntax="scss"}else if(e&&e.toLowerCase()===".sass"){i.syntax="indented"}else if(e&&e.toLowerCase()===".css"){i.syntax="css"}}i.loadPaths=[].concat((i.loadPaths?i.loadPaths.slice():[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);i.importers=i.importers?Array.isArray(i.importers)?i.importers.slice():[i.importers]:[]}else{i.file=l;if(!i.outputStyle&&isProductionLikeMode(e)){i.outputStyle="compressed"}if(o){i.sourceMap=true;i.outFile=_path.default.join(e.rootContext,"style.css.map");i.sourceMapContents=true;i.omitSourceMapUrl=true;i.sourceMapEmbed=false}const s=_path.default.extname(l);if(s&&s.toLowerCase()===".sass"&&typeof i.indentedSyntax==="undefined"){i.indentedSyntax=true}else{i.indentedSyntax=Boolean(i.indentedSyntax)}i.importer=i.importer?proxyCustomImporters(Array.isArray(i.importer)?i.importer.slice():[i.importer],e):[];if(t.webpackImporter===false&&i.importer.length===0){i.importer=undefined}i.includePaths=[].concat(process.cwd()).concat((i.includePaths?i.includePaths.slice():[]).map((e=>_path.default.isAbsolute(e)?e:_path.default.join(process.cwd(),e)))).concat(process.env.SASS_PATH?process.env.SASS_PATH.split(process.platform==="win32"?";":":"):[]);if(typeof i.charset==="undefined"){i.charset=true}}return i}const MODULE_REQUEST_REGEX=/^[^?]*~/;const IS_MODULE_IMPORT=/^~([^/]+|[^/]+\/|@[^/]+[/][^/]+|@[^/]+\/?|@[^/]+[/][^/]+\/)$/;const IS_PKG_SCHEME=/^pkg:/i;function getPossibleRequests(e,t=false,s=false){let n=e;if(t){if(MODULE_REQUEST_REGEX.test(e)){n=n.replace(MODULE_REQUEST_REGEX,"")}if(IS_PKG_SCHEME.test(e)){n=`${n.slice(4)}`;return[...new Set([n,e])]}if(IS_MODULE_IMPORT.test(e)||IS_PKG_SCHEME.test(e)){n=n[n.length-1]==="/"?n:`${n}/`;return[...new Set([n,e])]}}const o=_path.default.extname(n).toLowerCase();if(o===".css"){return s?[]:[e]}const r=_path.default.dirname(n);const a=r==="."?"":`${r}/`;const i=_path.default.basename(n);const c=_path.default.basename(n,o);return[...new Set([].concat(s?[`${a}_${c}.import${o}`,`${a}${c}.import${o}`]:[]).concat([`${a}_${i}`,`${a}${i}`]).concat(t?[e]:[]))]}function promiseResolve(e){return(t,s)=>new Promise(((n,o)=>{e(t,s,((e,t)=>{if(e){o(e)}else{n(t)}}))}))}async function startResolving(e){if(e.length===0){return Promise.reject()}const[{possibleRequests:t}]=e;if(t.length===0){return Promise.reject()}const[{resolve:s,context:n}]=e;try{return await s(n,t[0])}catch(s){const[,...n]=t;if(n.length===0){const[,...t]=e;return startResolving(t)}e[0].possibleRequests=n;return startResolving(e)}}const IS_SPECIAL_MODULE_IMPORT=/^~[^/]+$/;const IS_NATIVE_WIN32_PATH=/^[a-z]:[/\\]|^\\\\/i;function getWebpackResolver(e,t,s=[]){const n=t&&typeof t.compileStringAsync!=="undefined";const o=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const r=promiseResolve(e({alias:[],aliasFields:[],conditionNames:[],descriptionFiles:[],extensions:[".sass",".scss",".css"],exportsFields:[],mainFields:[],mainFiles:["_index.import","_index","index.import","index"],modules:[],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const a=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style","..."],mainFields:["sass","style","main","..."],mainFiles:["_index","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));const i=promiseResolve(e({dependencyType:"sass",conditionNames:["sass","style","..."],mainFields:["sass","style","main","..."],mainFiles:["_index.import","_index","index.import","index","..."],extensions:[".sass",".scss",".css"],restrictions:[/\.((sa|sc|c)ss)$/i],preferRelative:true}));return(e,t,c)=>{if(!n&&!_path.default.isAbsolute(e)){return Promise.reject()}const l=t;const p=l.slice(0,5).toLowerCase()==="file:";if(p){try{t=_url.default.fileURLToPath(l)}catch(e){t=t.slice(7)}}let u=[];const d=!IS_SPECIAL_MODULE_IMPORT.test(t)&&!IS_PKG_SCHEME.test(t)&&!p&&!l.startsWith("/")&&!IS_NATIVE_WIN32_PATH.test(l);if(s.length>0&&d){const a=getPossibleRequests(t,false,c);if(!n){u=u.concat({resolve:c?r:o,context:_path.default.dirname(e),possibleRequests:a})}u=u.concat(s.map((e=>({resolve:c?r:o,context:e,possibleRequests:a}))))}const f=getPossibleRequests(t,true,c);u=u.concat({resolve:c?i:a,context:_path.default.dirname(e),possibleRequests:f});return startResolving(u)}}const MATCH_CSS=/\.css$/i;function getModernWebpackImporter(e,t,s){const n=getWebpackResolver(e.getResolve,t,s);return{async canonicalize(t,s){const{fromImport:o}=s;const r=s.containingUrl?_url.default.fileURLToPath(s.containingUrl.toString()):e.resourcePath;let a;try{a=await n(r,t,o)}catch(e){return null}e.addDependency(_path.default.normalize(a));return _url.default.pathToFileURL(a)},async load(t){const s=_path.default.extname(t.pathname);let n;if(s&&s.toLowerCase()===".scss"){n="scss"}else if(s&&s.toLowerCase()===".sass"){n="indented"}else if(s&&s.toLowerCase()===".css"){n="css"}else{n="scss"}try{const s=await new Promise(((s,n)=>{const o=_url.default.fileURLToPath(t);e.fs.readFile(o,"utf8",((e,t)=>{if(e){n(e);return}s(t)}))}));return{contents:s,syntax:n,sourceMapUrl:t}}catch(e){return null}}}}function getWebpackImporter(e,t,s){const n=getWebpackResolver(e.getResolve,t,s);return function importer(t,s,o){const{fromImport:r}=this;n(s,t,typeof r==="undefined"?true:r).then((t=>{e.addDependency(_path.default.normalize(t));o({file:t.replace(MATCH_CSS,"")})})).catch((()=>{o({file:t})}))}}let nodeSassJobQueue=null;const sassModernCompilers=new WeakMap;function getCompileFn(e,t,s){if(typeof t.compileStringAsync!=="undefined"){if(s==="modern"){return e=>{const{data:s,...n}=e;return t.compileStringAsync(s,n)}}if(s==="modern-compiler"){return async s=>{const n=e._compiler;const{data:o,...r}=s;if(n){if(!sassModernCompilers.has(n)){const e=await t.initAsyncCompiler();if(!sassModernCompilers.has(n)){sassModernCompilers.set(n,e);n.hooks.shutdown.tap("sass-loader",(()=>{e.dispose()}))}else{e.dispose()}}return sassModernCompilers.get(n).compileStringAsync(o,r)}return t.compileStringAsync(o,r)}}return e=>new Promise(((s,n)=>{t.render(e,((e,t)=>{if(e){n(e);return}s(t)}))}))}if(s==="modern"||s==="modern-compiler"){throw new Error("Modern API is not supported for 'node-sass'")}if(nodeSassJobQueue===null){const e=Number(process.env.UV_THREADPOOL_SIZE||4);const s=__nccwpck_require__(175);nodeSassJobQueue=s.queue(t.render.bind(t),e-1)}return e=>new Promise(((t,s)=>{nodeSassJobQueue.push.bind(nodeSassJobQueue)(e,((e,n)=>{if(e){s(e);return}t(n)}))}))}const ABSOLUTE_SCHEME=/^[A-Za-z0-9+\-.]+:/;function getURLType(e){if(e[0]==="/"){if(e[1]==="/"){return"scheme-relative"}return"path-absolute"}if(IS_NATIVE_WIN32_PATH.test(e)){return"path-absolute"}return ABSOLUTE_SCHEME.test(e)?"absolute":"path-relative"}function normalizeSourceMap(e,t){const s=e;if(typeof s.file!=="undefined"){delete s.file}s.sourceRoot="";s.sources=s.sources.map((e=>{const s=getURLType(e);if(s==="absolute"&&/^file:/i.test(e)){return _url.default.fileURLToPath(e)}else if(s==="path-relative"){return _path.default.resolve(t,_path.default.normalize(e))}return e}));return s}function errorFactory(e){let t;if(e.formatted){t=e.formatted.replace(/^(.+)?Error: /,"")}else{t=(e.message||e.toString()).replace(/^(.+)?Error: /,"")}const s=new Error(t,{cause:e});s.name=e.name;s.stack=null;return s}},175:function(e){e.exports=require("next/dist/compiled/neo-async")},17:function(e){e.exports=require("path")},438:function(e){e.exports=require("sass")},310:function(e){e.exports=require("url")},33:function(e){e.exports=JSON.parse('{"title":"Sass Loader options","type":"object","properties":{"implementation":{"description":"The implementation of the sass to be used.","link":"https://github.com/webpack-contrib/sass-loader#implementation","anyOf":[{"type":"string"},{"type":"object"}]},"api":{"description":"Switch between old and modern API for `sass` (`Dart Sass`) and `Sass Embedded` implementations.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","enum":["legacy","modern","modern-compiler"]},"sassOptions":{"description":"Options for `node-sass` or `sass` (`Dart Sass`) implementation.","link":"https://github.com/webpack-contrib/sass-loader#sassoptions","anyOf":[{"type":"object","additionalProperties":true},{"instanceof":"Function"}]},"additionalData":{"description":"Prepends/Appends `Sass`/`SCSS` code before the actual entry file.","link":"https://github.com/webpack-contrib/sass-loader#additionaldata","anyOf":[{"type":"string"},{"instanceof":"Function"}]},"sourceMap":{"description":"Enables/Disables generation of source maps.","link":"https://github.com/webpack-contrib/sass-loader#sourcemap","type":"boolean"},"webpackImporter":{"description":"Enables/Disables default `webpack` importer.","link":"https://github.com/webpack-contrib/sass-loader#webpackimporter","type":"boolean"},"warnRuleAsWarning":{"description":"Treats the \'@warn\' rule as a webpack warning.","link":"https://github.com/webpack-contrib/sass-loader#warnruleaswarning","type":"boolean"}},"additionalProperties":false}')}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var n=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);n=false}finally{if(n)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(143);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/sass-loader/package.json b/cli/app/node_modules/next/dist/compiled/sass-loader/package.json new file mode 100644 index 00000000000..91526a6dccf --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/sass-loader/package.json @@ -0,0 +1 @@ +{"name":"sass-loader","main":"cjs.js","author":"J. Tangelder","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/schema-utils3/index.js b/cli/app/node_modules/next/dist/compiled/schema-utils3/index.js new file mode 100644 index 00000000000..46859394abd --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/schema-utils3/index.js @@ -0,0 +1,3 @@ +(()=>{var e={6544:(e,r,t)=>{"use strict";var a=t(9562);e.exports=defineKeywords;function defineKeywords(e,r){if(Array.isArray(r)){for(var t=0;t{"use strict";var a=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d:\d\d)?$/i;var s=/t|\s/i;var i={date:compareDate,time:compareTime,"date-time":compareDateTime};var o={type:"object",required:["$data"],properties:{$data:{type:"string",anyOf:[{format:"relative-json-pointer"},{format:"json-pointer"}]}},additionalProperties:false};e.exports=function(e){var r="format"+e;return function defFunc(a){defFunc.definition={type:"string",inline:t(6549),statements:true,errors:"full",dependencies:["format"],metaSchema:{anyOf:[{type:"string"},o]}};a.addKeyword(r,defFunc.definition);a.addKeyword("formatExclusive"+e,{dependencies:["format"+e],metaSchema:{anyOf:[{type:"boolean"},o]}});extendFormats(a);return a}};function extendFormats(e){var r=e._formats;for(var t in i){var a=r[t];if(typeof a!="object"||a instanceof RegExp||!a.validate)a=r[t]={validate:a};if(!a.compare)a.compare=i[t]}}function compareDate(e,r){if(!(e&&r))return;if(e>r)return 1;if(er)return 1;if(e{"use strict";e.exports={metaSchemaRef:metaSchemaRef};var r="http://json-schema.org/draft-07/schema";function metaSchemaRef(e){var t=e._opts.defaultMeta;if(typeof t=="string")return{$ref:t};if(e.getSchema(r))return{$ref:r};console.warn("meta schema not defined");return{}}},5095:e=>{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"object",macro:function(e,r){if(!e)return true;var t=Object.keys(r.properties);if(t.length==0)return true;return{required:t}},metaSchema:{type:"boolean"},dependencies:["properties"]};e.addKeyword("allRequired",defFunc.definition);return e}},3870:e=>{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"object",macro:function(e){if(e.length==0)return true;if(e.length==1)return{required:e};var r=e.map((function(e){return{required:[e]}}));return{anyOf:r}},metaSchema:{type:"array",items:{type:"string"}}};e.addKeyword("anyRequired",defFunc.definition);return e}},796:(e,r,t)=>{"use strict";var a=t(3990);e.exports=function defFunc(e){defFunc.definition={type:"object",macro:function(e){var r=[];for(var t in e)r.push(getSchema(t,e[t]));return{allOf:r}},metaSchema:{type:"object",propertyNames:{type:"string",format:"json-pointer"},additionalProperties:a.metaSchemaRef(e)}};e.addKeyword("deepProperties",defFunc.definition);return e};function getSchema(e,r){var t=e.split("/");var a={};var s=a;for(var i=1;i{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"object",inline:function(e,r,t){var a="";for(var s=0;s{"use strict";e.exports=function generate__formatLimit(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f;var c="data"+(i||"");var h="valid"+s;a+="var "+h+" = undefined;";if(e.opts.format===false){a+=" "+h+" = true; ";return a}var d=e.schema.format,p=e.opts.$data&&d.$data,m="";if(p){var g=e.util.getData(d.$data,i,e.dataPathArr),y="format"+s,P="compare"+s;a+=" var "+y+" = formats["+g+"] , "+P+" = "+y+" && "+y+".compare;"}else{var y=e.formats[d];if(!(y&&y.compare)){a+=" "+h+" = true; ";return a}var P="formats"+e.util.getProperty(d)+".compare"}var b=r=="formatMaximum",E="formatExclusive"+(b?"Maximum":"Minimum"),S=e.schema[E],w=e.opts.$data&&S&&S.$data,x=b?"<":">",$="result"+s;var _=e.opts.$data&&o&&o.$data,R;if(_){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";R="schema"+s}else{R=o}if(w){var F=e.util.getData(S.$data,i,e.dataPathArr),O="exclusive"+s,D="op"+s,j="' + "+D+" + '";a+=" var schemaExcl"+s+" = "+F+"; ";F="schemaExcl"+s;a+=" if (typeof "+F+" != 'boolean' && "+F+" !== undefined) { "+h+" = false; ";var f=E;var I=I||[];I.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_formatExclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ";if(e.opts.messages!==false){a+=" , message: '"+E+" should be boolean' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var k=a;a=I.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+k+"]); "}else{a+=" validate.errors = ["+k+"]; return false; "}}else{a+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } ";if(u){m+="}";a+=" else { "}if(_){a+=" if ("+R+" === undefined) "+h+" = true; else if (typeof "+R+" != 'string') "+h+" = false; else { ";m+="}"}if(p){a+=" if (!"+P+") "+h+" = true; else { ";m+="}"}a+=" var "+$+" = "+P+"("+c+", ";if(_){a+=""+R}else{a+=""+e.util.toQuotedString(o)}a+=" ); if ("+$+" === undefined) "+h+" = false; var "+O+" = "+F+" === true; if ("+h+" === undefined) { "+h+" = "+O+" ? "+$+" "+x+" 0 : "+$+" "+x+"= 0; } if (!"+h+") var op"+s+" = "+O+" ? '"+x+"' : '"+x+"=';"}else{var O=S===true,j=x;if(!O)j+="=";var D="'"+j+"'";if(_){a+=" if ("+R+" === undefined) "+h+" = true; else if (typeof "+R+" != 'string') "+h+" = false; else { ";m+="}"}if(p){a+=" if (!"+P+") "+h+" = true; else { ";m+="}"}a+=" var "+$+" = "+P+"("+c+", ";if(_){a+=""+R}else{a+=""+e.util.toQuotedString(o)}a+=" ); if ("+$+" === undefined) "+h+" = false; if ("+h+" === undefined) "+h+" = "+$+" "+x;if(!O){a+="="}a+=" 0;"}a+=""+m+"if (!"+h+") { ";var f=r;var I=I||[];I.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_formatLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+D+", limit: ";if(_){a+=""+R}else{a+=""+e.util.toQuotedString(o)}a+=" , exclusive: "+O+" } ";if(e.opts.messages!==false){a+=" , message: 'should be "+j+' "';if(_){a+="' + "+R+" + '"}else{a+=""+e.util.escapeQuotes(o)}a+="\"' "}if(e.opts.verbose){a+=" , schema: ";if(_){a+="validate.schema"+n}else{a+=""+e.util.toQuotedString(o)}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var k=a;a=I.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+k+"]); "}else{a+=" validate.errors = ["+k+"]; return false; "}}else{a+=" var err = "+k+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+="}";return a}},2600:e=>{"use strict";e.exports=function generate_patternRequired(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="key"+s,d="idx"+s,p="patternMatched"+s,m="dataProperties"+s,g="",y=e.opts.ownProperties;a+="var "+c+" = true;";if(y){a+=" var "+m+" = undefined;"}var P=o;if(P){var b,E=-1,S=P.length-1;while(E{"use strict";e.exports=function generate_switch(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="errs__"+s;var d=e.util.copy(e);var p="";d.level++;var m="valid"+d.level;var g="ifPassed"+e.level,y=d.baseId,P;a+="var "+g+";";var b=o;if(b){var E,S=-1,w=b.length-1;while(S0:e.util.schemaHasRules(E.if,e.RULES.all))){a+=" var "+h+" = errors; ";var x=e.compositeRule;e.compositeRule=d.compositeRule=true;d.createErrors=false;d.schema=E.if;d.schemaPath=n+"["+S+"].if";d.errSchemaPath=l+"/"+S+"/if";a+=" "+e.validate(d)+" ";d.baseId=y;d.createErrors=true;e.compositeRule=d.compositeRule=x;a+=" "+g+" = "+m+"; if ("+g+") { ";if(typeof E.then=="boolean"){if(E.then===false){var $=$||[];$.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"switch"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+S+" } ";if(e.opts.messages!==false){a+=" , message: 'should pass \"switch\" keyword validation' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var _=a;a=$.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+_+"]); "}else{a+=" validate.errors = ["+_+"]; return false; "}}else{a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}}a+=" var "+m+" = "+E.then+"; "}else{d.schema=E.then;d.schemaPath=n+"["+S+"].then";d.errSchemaPath=l+"/"+S+"/then";a+=" "+e.validate(d)+" ";d.baseId=y}a+=" } else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } } "}else{a+=" "+g+" = true; ";if(typeof E.then=="boolean"){if(E.then===false){var $=$||[];$.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"switch"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { caseIndex: "+S+" } ";if(e.opts.messages!==false){a+=" , message: 'should pass \"switch\" keyword validation' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var _=a;a=$.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+_+"]); "}else{a+=" validate.errors = ["+_+"]; return false; "}}else{a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}}a+=" var "+m+" = "+E.then+"; "}else{d.schema=E.then;d.schemaPath=n+"["+S+"].then";d.errSchemaPath=l+"/"+S+"/then";a+=" "+e.validate(d)+" ";d.baseId=y}}P=E.continue}}a+=""+p+"var "+c+" = "+m+";";return a}},9740:e=>{"use strict";var r={};var t={timestamp:function(){return Date.now()},datetime:function(){return(new Date).toISOString()},date:function(){return(new Date).toISOString().slice(0,10)},time:function(){return(new Date).toISOString().slice(11)},random:function(){return Math.random()},randomint:function(e){var r=e&&e.max||2;return function(){return Math.floor(Math.random()*r)}},seq:function(e){var t=e&&e.name||"";r[t]=r[t]||0;return function(){return r[t]++}}};e.exports=function defFunc(e){defFunc.definition={compile:function(e,r,t){var a={};for(var s in e){var i=e[s];var o=getDefault(typeof i=="string"?i:i.func);a[s]=o.length?o(i.args):o}return t.opts.useDefaults&&!t.compositeRule?assignDefaults:noop;function assignDefaults(r){for(var s in e){if(r[s]===undefined||t.opts.useDefaults=="empty"&&(r[s]===null||r[s]===""))r[s]=a[s]()}return true}function noop(){return true}},DEFAULTS:t,metaSchema:{type:"object",additionalProperties:{type:["string","object"],additionalProperties:false,required:["func","args"],properties:{func:{type:"string"},args:{type:"object"}}}}};e.addKeyword("dynamicDefaults",defFunc.definition);return e;function getDefault(e){var r=t[e];if(r)return r;throw new Error('invalid "dynamicDefaults" keyword property value: '+e)}}},4344:(e,r,t)=>{"use strict";e.exports=t(720)("Maximum")},5064:(e,r,t)=>{"use strict";e.exports=t(720)("Minimum")},9562:(e,r,t)=>{"use strict";e.exports={instanceof:t(3714),range:t(4751),regexp:t(3463),typeof:t(690),dynamicDefaults:t(9740),allRequired:t(5095),anyRequired:t(3870),oneRequired:t(7925),prohibited:t(4301),uniqueItemProperties:t(6893),deepProperties:t(796),deepRequired:t(1988),formatMinimum:t(5064),formatMaximum:t(4344),patternRequired:t(6363),switch:t(6369),select:t(2507),transform:t(3684)}},3714:e=>{"use strict";var r={Object:Object,Array:Array,Function:Function,Number:Number,String:String,Date:Date,RegExp:RegExp};e.exports=function defFunc(e){if(typeof Buffer!="undefined")r.Buffer=Buffer;if(typeof Promise!="undefined")r.Promise=Promise;defFunc.definition={compile:function(e){if(typeof e=="string"){var r=getConstructor(e);return function(e){return e instanceof r}}var t=e.map(getConstructor);return function(e){for(var r=0;r{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"object",macro:function(e){if(e.length==0)return true;if(e.length==1)return{required:e};var r=e.map((function(e){return{required:[e]}}));return{oneOf:r}},metaSchema:{type:"array",items:{type:"string"}}};e.addKeyword("oneRequired",defFunc.definition);return e}},6363:(e,r,t)=>{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"object",inline:t(2600),statements:true,errors:"full",metaSchema:{type:"array",items:{type:"string",format:"regex"},uniqueItems:true}};e.addKeyword("patternRequired",defFunc.definition);return e}},4301:e=>{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"object",macro:function(e){if(e.length==0)return true;if(e.length==1)return{not:{required:e}};var r=e.map((function(e){return{required:[e]}}));return{not:{anyOf:r}}},metaSchema:{type:"array",items:{type:"string"}}};e.addKeyword("prohibited",defFunc.definition);return e}},4751:e=>{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"number",macro:function(e,r){var t=e[0],a=e[1],s=r.exclusiveRange;validateRangeSchema(t,a,s);return s===true?{exclusiveMinimum:t,exclusiveMaximum:a}:{minimum:t,maximum:a}},metaSchema:{type:"array",minItems:2,maxItems:2,items:{type:"number"}}};e.addKeyword("range",defFunc.definition);e.addKeyword("exclusiveRange");return e;function validateRangeSchema(e,r,t){if(t!==undefined&&typeof t!="boolean")throw new Error("Invalid schema for exclusiveRange keyword, should be boolean");if(e>r||t&&e==r)throw new Error("There are no numbers in range")}}},3463:e=>{"use strict";e.exports=function defFunc(e){defFunc.definition={type:"string",inline:function(e,r,t){return getRegExp()+".test(data"+(e.dataLevel||"")+")";function getRegExp(){try{if(typeof t=="object")return new RegExp(t.pattern,t.flags);var e=t.match(/^\/(.*)\/([gimuy]*)$/);if(e)return new RegExp(e[1],e[2]);throw new Error("cannot parse string into RegExp")}catch(e){console.error("regular expression",t,"is invalid");throw e}}},metaSchema:{type:["string","object"],properties:{pattern:{type:"string"},flags:{type:"string"}},required:["pattern"],additionalProperties:false}};e.addKeyword("regexp",defFunc.definition);return e}},2507:(e,r,t)=>{"use strict";var a=t(3990);e.exports=function defFunc(e){if(!e._opts.$data){console.warn("keyword select requires $data option");return e}var r=a.metaSchemaRef(e);var t=[];defFunc.definition={validate:function v(e,r,t){if(t.selectCases===undefined)throw new Error('keyword "selectCases" is absent');var a=getCompiledSchemas(t,false);var s=a.cases[e];if(s===undefined)s=a.default;if(typeof s=="boolean")return s;var i=s(r);if(!i)v.errors=s.errors;return i},$data:true,metaSchema:{type:["string","number","boolean","null"]}};e.addKeyword("select",defFunc.definition);e.addKeyword("selectCases",{compile:function(e,r){var t=getCompiledSchemas(r);for(var a in e)t.cases[a]=compileOrBoolean(e[a]);return function(){return true}},valid:true,metaSchema:{type:"object",additionalProperties:r}});e.addKeyword("selectDefault",{compile:function(e,r){var t=getCompiledSchemas(r);t.default=compileOrBoolean(e);return function(){return true}},valid:true,metaSchema:r});return e;function getCompiledSchemas(e,r){var a;t.some((function(r){if(r.parentSchema===e){a=r;return true}}));if(!a&&r!==false){a={parentSchema:e,cases:{},default:true};t.push(a)}return a}function compileOrBoolean(r){return typeof r=="boolean"?r:e.compile(r)}}},6369:(e,r,t)=>{"use strict";var a=t(3990);e.exports=function defFunc(e){if(e.RULES.keywords.switch&&e.RULES.keywords.if)return;var r=a.metaSchemaRef(e);defFunc.definition={inline:t(8368),statements:true,errors:"full",metaSchema:{type:"array",items:{required:["then"],properties:{if:r,then:{anyOf:[{type:"boolean"},r]},continue:{type:"boolean"}},additionalProperties:false,dependencies:{continue:["if"]}}}};e.addKeyword("switch",defFunc.definition);return e}},3684:e=>{"use strict";e.exports=function defFunc(e){var r={trimLeft:function(e){return e.replace(/^[\s]+/,"")},trimRight:function(e){return e.replace(/[\s]+$/,"")},trim:function(e){return e.trim()},toLowerCase:function(e){return e.toLowerCase()},toUpperCase:function(e){return e.toUpperCase()},toEnumCase:function(e,r){return r.hash[makeHashTableKey(e)]||e}};defFunc.definition={type:"string",errors:false,modifying:true,valid:true,compile:function(e,t){var a;if(e.indexOf("toEnumCase")!==-1){a={hash:{}};if(!t.enum)throw new Error('Missing enum. To use `transform:["toEnumCase"]`, `enum:[...]` is required.');for(var s=t.enum.length;s--;s){var i=t.enum[s];if(typeof i!=="string")continue;var o=makeHashTableKey(i);if(a.hash[o])throw new Error('Invalid enum uniqueness. To use `transform:["toEnumCase"]`, all values must be unique when case insensitive.');a.hash[o]=i}}return function(t,s,i,o){if(!i)return;for(var n=0,l=e.length;n{"use strict";var r=["undefined","string","number","object","function","boolean","symbol"];e.exports=function defFunc(e){defFunc.definition={inline:function(e,r,t){var a="data"+(e.dataLevel||"");if(typeof t=="string")return"typeof "+a+' == "'+t+'"';t="validate.schema"+e.schemaPath+"."+r;return t+".indexOf(typeof "+a+") >= 0"},metaSchema:{anyOf:[{type:"string",enum:r},{type:"array",items:{type:"string",enum:r}}]}};e.addKeyword("typeof",defFunc.definition);return e}},6893:e=>{"use strict";var r=["number","integer","string","boolean","null"];e.exports=function defFunc(e){defFunc.definition={type:"array",compile:function(e,r,t){var a=t.util.equal;var s=getScalarKeys(e,r);return function(r){if(r.length>1){for(var t=0;t=0}))}},6474:(e,r,t)=>{"use strict";var a=t(9258),s=t(2603),i=t(7731),o=t(2961),n=t(6424),l=t(2015),u=t(9233),f=t(1966),c=t(8716);e.exports=Ajv;Ajv.prototype.validate=validate;Ajv.prototype.compile=compile;Ajv.prototype.addSchema=addSchema;Ajv.prototype.addMetaSchema=addMetaSchema;Ajv.prototype.validateSchema=validateSchema;Ajv.prototype.getSchema=getSchema;Ajv.prototype.removeSchema=removeSchema;Ajv.prototype.addFormat=addFormat;Ajv.prototype.errorsText=errorsText;Ajv.prototype._addSchema=_addSchema;Ajv.prototype._compile=_compile;Ajv.prototype.compileAsync=t(2694);var h=t(6765);Ajv.prototype.addKeyword=h.add;Ajv.prototype.getKeyword=h.get;Ajv.prototype.removeKeyword=h.remove;Ajv.prototype.validateKeyword=h.validate;var d=t(6343);Ajv.ValidationError=d.Validation;Ajv.MissingRefError=d.MissingRef;Ajv.$dataMetaSchema=f;var p="http://json-schema.org/draft-07/schema";var m=["removeAdditional","useDefaults","coerceTypes","strictDefaults"];var g=["/properties"];function Ajv(e){if(!(this instanceof Ajv))return new Ajv(e);e=this._opts=c.copy(e)||{};setLogger(this);this._schemas={};this._refs={};this._fragments={};this._formats=l(e.format);this._cache=e.cache||new i;this._loadingSchemas={};this._compilations=[];this.RULES=u();this._getId=chooseGetId(e);e.loopRequired=e.loopRequired||Infinity;if(e.errorDataPath=="property")e._errorDataPathProperty=true;if(e.serialize===undefined)e.serialize=n;this._metaOpts=getMetaSchemaOptions(this);if(e.formats)addInitialFormats(this);if(e.keywords)addInitialKeywords(this);addDefaultMetaSchema(this);if(typeof e.meta=="object")this.addMetaSchema(e.meta);if(e.nullable)this.addKeyword("nullable",{metaSchema:{type:"boolean"}});addInitialSchemas(this)}function validate(e,r){var t;if(typeof e=="string"){t=this.getSchema(e);if(!t)throw new Error('no schema with key or ref "'+e+'"')}else{var a=this._addSchema(e);t=a.validate||this._compile(a)}var s=t(r);if(t.$async!==true)this.errors=t.errors;return s}function compile(e,r){var t=this._addSchema(e,undefined,r);return t.validate||this._compile(t)}function addSchema(e,r,t,a){if(Array.isArray(e)){for(var i=0;i{"use strict";var r=e.exports=function Cache(){this._cache={}};r.prototype.put=function Cache_put(e,r){this._cache[e]=r};r.prototype.get=function Cache_get(e){return this._cache[e]};r.prototype.del=function Cache_del(e){delete this._cache[e]};r.prototype.clear=function Cache_clear(){this._cache={}}},2694:(e,r,t)=>{"use strict";var a=t(6343).MissingRef;e.exports=compileAsync;function compileAsync(e,r,t){var s=this;if(typeof this._opts.loadSchema!="function")throw new Error("options.loadSchema should be a function");if(typeof r=="function"){t=r;r=undefined}var i=loadMetaSchemaOf(e).then((function(){var t=s._addSchema(e,undefined,r);return t.validate||_compileAsync(t)}));if(t){i.then((function(e){t(null,e)}),t)}return i;function loadMetaSchemaOf(e){var r=e.$schema;return r&&!s.getSchema(r)?compileAsync.call(s,{$ref:r},true):Promise.resolve()}function _compileAsync(e){try{return s._compile(e)}catch(e){if(e instanceof a)return loadMissingSchema(e);throw e}function loadMissingSchema(t){var a=t.missingSchema;if(added(a))throw new Error("Schema "+a+" is loaded but "+t.missingRef+" cannot be resolved");var i=s._loadingSchemas[a];if(!i){i=s._loadingSchemas[a]=s._opts.loadSchema(a);i.then(removePromise,removePromise)}return i.then((function(e){if(!added(a)){return loadMetaSchemaOf(e).then((function(){if(!added(a))s.addSchema(e,a,undefined,r)}))}})).then((function(){return _compileAsync(e)}));function removePromise(){delete s._loadingSchemas[a]}function added(e){return s._refs[e]||s._schemas[e]}}}}},6343:(e,r,t)=>{"use strict";var a=t(2603);e.exports={Validation:errorSubclass(ValidationError),MissingRef:errorSubclass(MissingRefError)};function ValidationError(e){this.message="validation failed";this.errors=e;this.ajv=this.validation=true}MissingRefError.message=function(e,r){return"can't resolve reference "+r+" from id "+e};function MissingRefError(e,r,t){this.message=t||MissingRefError.message(e,r);this.missingRef=a.url(e,r);this.missingSchema=a.normalizeId(a.fullPath(this.missingRef))}function errorSubclass(e){e.prototype=Object.create(Error.prototype);e.prototype.constructor=e;return e}},2015:(e,r,t)=>{"use strict";var a=t(8716);var s=/^(\d\d\d\d)-(\d\d)-(\d\d)$/;var i=[0,31,28,31,30,31,30,31,31,30,31,30,31];var o=/^(\d\d):(\d\d):(\d\d)(\.\d+)?(z|[+-]\d\d(?::?\d\d)?)?$/i;var n=/^(?=.{1,253}\.?$)[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[-0-9a-z]{0,61}[0-9a-z])?)*\.?$/i;var l=/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'()*+,;=:@]|%[0-9a-f]{2})*)*)(?:\?(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;var u=/^(?:[a-z][a-z0-9+\-.]*:)?(?:\/?\/(?:(?:[a-z0-9\-._~!$&'()*+,;=:]|%[0-9a-f]{2})*@)?(?:\[(?:(?:(?:(?:[0-9a-f]{1,4}:){6}|::(?:[0-9a-f]{1,4}:){5}|(?:[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){4}|(?:(?:[0-9a-f]{1,4}:){0,1}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){3}|(?:(?:[0-9a-f]{1,4}:){0,2}[0-9a-f]{1,4})?::(?:[0-9a-f]{1,4}:){2}|(?:(?:[0-9a-f]{1,4}:){0,3}[0-9a-f]{1,4})?::[0-9a-f]{1,4}:|(?:(?:[0-9a-f]{1,4}:){0,4}[0-9a-f]{1,4})?::)(?:[0-9a-f]{1,4}:[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?))|(?:(?:[0-9a-f]{1,4}:){0,5}[0-9a-f]{1,4})?::[0-9a-f]{1,4}|(?:(?:[0-9a-f]{1,4}:){0,6}[0-9a-f]{1,4})?::)|[Vv][0-9a-f]+\.[a-z0-9\-._~!$&'()*+,;=:]+)\]|(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)|(?:[a-z0-9\-._~!$&'"()*+,;=]|%[0-9a-f]{2})*)(?::\d*)?(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*|\/(?:(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?|(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})+(?:\/(?:[a-z0-9\-._~!$&'"()*+,;=:@]|%[0-9a-f]{2})*)*)?(?:\?(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?(?:#(?:[a-z0-9\-._~!$&'"()*+,;=:@/?]|%[0-9a-f]{2})*)?$/i;var f=/^(?:(?:[^\x00-\x20"'<>%\\^`{|}]|%[0-9a-f]{2})|\{[+#./;?&=,!@|]?(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?(?:,(?:[a-z0-9_]|%[0-9a-f]{2})+(?::[1-9][0-9]{0,3}|\*)?)*\})*$/i;var c=/^(?:(?:http[s\u017F]?|ftp):\/\/)(?:(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+(?::(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?@)?(?:(?!10(?:\.[0-9]{1,3}){3})(?!127(?:\.[0-9]{1,3}){3})(?!169\.254(?:\.[0-9]{1,3}){2})(?!192\.168(?:\.[0-9]{1,3}){2})(?!172\.(?:1[6-9]|2[0-9]|3[01])(?:\.[0-9]{1,3}){2})(?:[1-9][0-9]?|1[0-9][0-9]|2[01][0-9]|22[0-3])(?:\.(?:1?[0-9]{1,2}|2[0-4][0-9]|25[0-5])){2}(?:\.(?:[1-9][0-9]?|1[0-9][0-9]|2[0-4][0-9]|25[0-4]))|(?:(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)(?:\.(?:(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+-)*(?:[0-9a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])+)*(?:\.(?:(?:[a-z\xA1-\uD7FF\uE000-\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]){2,})))(?::[0-9]{2,5})?(?:\/(?:[\0-\x08\x0E-\x1F!-\x9F\xA1-\u167F\u1681-\u1FFF\u200B-\u2027\u202A-\u202E\u2030-\u205E\u2060-\u2FFF\u3001-\uD7FF\uE000-\uFEFE\uFF00-\uFFFF]|[\uD800-\uDBFF][\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF])*)?$/i;var h=/^(?:urn:uuid:)?[0-9a-f]{8}-(?:[0-9a-f]{4}-){3}[0-9a-f]{12}$/i;var d=/^(?:\/(?:[^~/]|~0|~1)*)*$/;var p=/^#(?:\/(?:[a-z0-9_\-.!$&'()*+,;:=@]|%[0-9a-f]{2}|~0|~1)*)*$/i;var m=/^(?:0|[1-9][0-9]*)(?:#|(?:\/(?:[^~/]|~0|~1)*)*)$/;e.exports=formats;function formats(e){e=e=="full"?"full":"fast";return a.copy(formats[e])}formats.fast={date:/^\d\d\d\d-[0-1]\d-[0-3]\d$/,time:/^(?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)?$/i,"date-time":/^\d\d\d\d-[0-1]\d-[0-3]\d[t\s](?:[0-2]\d:[0-5]\d:[0-5]\d|23:59:60)(?:\.\d+)?(?:z|[+-]\d\d(?::?\d\d)?)$/i,uri:/^(?:[a-z][a-z0-9+\-.]*:)(?:\/?\/)?[^\s]*$/i,"uri-reference":/^(?:(?:[a-z][a-z0-9+\-.]*:)?\/?\/)?(?:[^\\\s#][^\s#]*)?(?:#[^\\\s]*)?$/i,"uri-template":f,url:c,email:/^[a-z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?(?:\.[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?)*$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:regex,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":m};formats.full={date:date,time:time,"date-time":date_time,uri:uri,"uri-reference":u,"uri-template":f,url:c,email:/^[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?$/i,hostname:n,ipv4:/^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/,ipv6:/^\s*(?:(?:(?:[0-9a-f]{1,4}:){7}(?:[0-9a-f]{1,4}|:))|(?:(?:[0-9a-f]{1,4}:){6}(?::[0-9a-f]{1,4}|(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){5}(?:(?:(?::[0-9a-f]{1,4}){1,2})|:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(?:(?:[0-9a-f]{1,4}:){4}(?:(?:(?::[0-9a-f]{1,4}){1,3})|(?:(?::[0-9a-f]{1,4})?:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){3}(?:(?:(?::[0-9a-f]{1,4}){1,4})|(?:(?::[0-9a-f]{1,4}){0,2}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){2}(?:(?:(?::[0-9a-f]{1,4}){1,5})|(?:(?::[0-9a-f]{1,4}){0,3}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?:(?:[0-9a-f]{1,4}:){1}(?:(?:(?::[0-9a-f]{1,4}){1,6})|(?:(?::[0-9a-f]{1,4}){0,4}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(?::(?:(?:(?::[0-9a-f]{1,4}){1,7})|(?:(?::[0-9a-f]{1,4}){0,5}:(?:(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(?:\.(?:25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(?:%.+)?\s*$/i,regex:regex,uuid:h,"json-pointer":d,"json-pointer-uri-fragment":p,"relative-json-pointer":m};function isLeapYear(e){return e%4===0&&(e%100!==0||e%400===0)}function date(e){var r=e.match(s);if(!r)return false;var t=+r[1];var a=+r[2];var o=+r[3];return a>=1&&a<=12&&o>=1&&o<=(a==2&&isLeapYear(t)?29:i[a])}function time(e,r){var t=e.match(o);if(!t)return false;var a=t[1];var s=t[2];var i=t[3];var n=t[5];return(a<=23&&s<=59&&i<=59||a==23&&s==59&&i==60)&&(!r||n)}var g=/t|\s/i;function date_time(e){var r=e.split(g);return r.length==2&&date(r[0])&&time(r[1],true)}var y=/\/|:/;function uri(e){return y.test(e)&&l.test(e)}var P=/[^\\]\\Z/;function regex(e){if(P.test(e))return false;try{new RegExp(e);return true}catch(e){return false}}},9258:(e,r,t)=>{"use strict";var a=t(2603),s=t(8716),i=t(6343),o=t(6424);var n=t(7003);var l=s.ucs2length;var u=t(1230);var f=i.Validation;e.exports=compile;function compile(e,r,t,c){var h=this,d=this._opts,p=[undefined],m={},g=[],y={},P=[],b={},E=[];r=r||{schema:e,refVal:p,refs:m};var S=checkCompiling.call(this,e,r,c);var w=this._compilations[S.index];if(S.compiling)return w.callValidate=callValidate;var x=this._formats;var $=this.RULES;try{var _=localCompile(e,r,t,c);w.validate=_;var R=w.callValidate;if(R){R.schema=_.schema;R.errors=null;R.refs=_.refs;R.refVal=_.refVal;R.root=_.root;R.$async=_.$async;if(d.sourceCode)R.source=_.source}return _}finally{endCompiling.call(this,e,r,c)}function callValidate(){var e=w.validate;var r=e.apply(this,arguments);callValidate.errors=e.errors;return r}function localCompile(e,t,o,c){var y=!t||t&&t.schema==e;if(t.schema!=r.schema)return compile.call(h,e,t,o,c);var b=e.$async===true;var S=n({isTop:true,schema:e,isRoot:y,baseId:c,root:t,schemaPath:"",errSchemaPath:"#",errorPath:'""',MissingRefError:i.MissingRef,RULES:$,validate:n,util:s,resolve:a,resolveRef:resolveRef,usePattern:usePattern,useDefault:useDefault,useCustomRule:useCustomRule,opts:d,formats:x,logger:h.logger,self:h});S=vars(p,refValCode)+vars(g,patternCode)+vars(P,defaultCode)+vars(E,customRuleCode)+S;if(d.processCode)S=d.processCode(S,e);var w;try{var _=new Function("self","RULES","formats","root","refVal","defaults","customRules","equal","ucs2length","ValidationError",S);w=_(h,$,x,r,p,P,E,u,l,f);p[0]=w}catch(e){h.logger.error("Error compiling schema, function code:",S);throw e}w.schema=e;w.errors=null;w.refs=m;w.refVal=p;w.root=y?w:t;if(b)w.$async=true;if(d.sourceCode===true){w.source={code:S,patterns:g,defaults:P}}return w}function resolveRef(e,s,i){s=a.url(e,s);var o=m[s];var n,l;if(o!==undefined){n=p[o];l="refVal["+o+"]";return resolvedRef(n,l)}if(!i&&r.refs){var u=r.refs[s];if(u!==undefined){n=r.refVal[u];l=addLocalRef(s,n);return resolvedRef(n,l)}}l=addLocalRef(s);var f=a.call(h,localCompile,r,s);if(f===undefined){var c=t&&t[s];if(c){f=a.inlineRef(c,d.inlineRefs)?c:compile.call(h,c,r,t,e)}}if(f===undefined){removeLocalRef(s)}else{replaceLocalRef(s,f);return resolvedRef(f,l)}}function addLocalRef(e,r){var t=p.length;p[t]=r;m[e]=t;return"refVal"+t}function removeLocalRef(e){delete m[e]}function replaceLocalRef(e,r){var t=m[e];p[t]=r}function resolvedRef(e,r){return typeof e=="object"||typeof e=="boolean"?{code:r,schema:e,inline:true}:{code:r,$async:e&&!!e.$async}}function usePattern(e){var r=y[e];if(r===undefined){r=y[e]=g.length;g[r]=e}return"pattern"+r}function useDefault(e){switch(typeof e){case"boolean":case"number":return""+e;case"string":return s.toQuotedString(e);case"object":if(e===null)return"null";var r=o(e);var t=b[r];if(t===undefined){t=b[r]=P.length;P[t]=e}return"default"+t}}function useCustomRule(e,r,t,a){if(h._opts.validateSchema!==false){var s=e.definition.dependencies;if(s&&!s.every((function(e){return Object.prototype.hasOwnProperty.call(t,e)})))throw new Error("parent schema must have all required keywords: "+s.join(","));var i=e.definition.validateSchema;if(i){var o=i(r);if(!o){var n="keyword schema is invalid: "+h.errorsText(i.errors);if(h._opts.validateSchema=="log")h.logger.error(n);else throw new Error(n)}}}var l=e.definition.compile,u=e.definition.inline,f=e.definition.macro;var c;if(l){c=l.call(h,r,t,a)}else if(f){c=f.call(h,r,t,a);if(d.validateSchema!==false)h.validateSchema(c,true)}else if(u){c=u.call(h,a,e.keyword,r,t)}else{c=e.definition.validate;if(!c)return}if(c===undefined)throw new Error('custom keyword "'+e.keyword+'"failed to compile');var p=E.length;E[p]=c;return{code:"customRule"+p,validate:c}}}function checkCompiling(e,r,t){var a=compIndex.call(this,e,r,t);if(a>=0)return{index:a,compiling:true};a=this._compilations.length;this._compilations[a]={schema:e,root:r,baseId:t};return{index:a,compiling:false}}function endCompiling(e,r,t){var a=compIndex.call(this,e,r,t);if(a>=0)this._compilations.splice(a,1)}function compIndex(e,r,t){for(var a=0;a{"use strict";var a=t(4856),s=t(1230),i=t(8716),o=t(2961),n=t(6042);e.exports=resolve;resolve.normalizeId=normalizeId;resolve.fullPath=getFullPath;resolve.url=resolveUrl;resolve.ids=resolveIds;resolve.inlineRef=inlineRef;resolve.schema=resolveSchema;function resolve(e,r,t){var a=this._refs[t];if(typeof a=="string"){if(this._refs[a])a=this._refs[a];else return resolve.call(this,e,r,a)}a=a||this._schemas[t];if(a instanceof o){return inlineRef(a.schema,this._opts.inlineRefs)?a.schema:a.validate||this._compile(a)}var s=resolveSchema.call(this,r,t);var i,n,l;if(s){i=s.schema;r=s.root;l=s.baseId}if(i instanceof o){n=i.validate||e.call(this,i.schema,r,undefined,l)}else if(i!==undefined){n=inlineRef(i,this._opts.inlineRefs)?i:e.call(this,i,r,undefined,l)}return n}function resolveSchema(e,r){var t=a.parse(r),s=_getFullPath(t),i=getFullPath(this._getId(e.schema));if(Object.keys(e.schema).length===0||s!==i){var n=normalizeId(s);var l=this._refs[n];if(typeof l=="string"){return resolveRecursive.call(this,e,l,t)}else if(l instanceof o){if(!l.validate)this._compile(l);e=l}else{l=this._schemas[n];if(l instanceof o){if(!l.validate)this._compile(l);if(n==normalizeId(r))return{schema:l,root:e,baseId:i};e=l}else{return}}if(!e.schema)return;i=getFullPath(this._getId(e.schema))}return getJsonPointer.call(this,t,i,e.schema,e)}function resolveRecursive(e,r,t){var a=resolveSchema.call(this,e,r);if(a){var s=a.schema;var i=a.baseId;e=a.root;var o=this._getId(s);if(o)i=resolveUrl(i,o);return getJsonPointer.call(this,t,i,s,e)}}var l=i.toHash(["properties","patternProperties","enum","dependencies","definitions"]);function getJsonPointer(e,r,t,a){e.fragment=e.fragment||"";if(e.fragment.slice(0,1)!="/")return;var s=e.fragment.split("/");for(var o=1;o{"use strict";var a=t(6964),s=t(8716).toHash;e.exports=function rules(){var e=[{type:"number",rules:[{maximum:["exclusiveMaximum"]},{minimum:["exclusiveMinimum"]},"multipleOf","format"]},{type:"string",rules:["maxLength","minLength","pattern","format"]},{type:"array",rules:["maxItems","minItems","items","contains","uniqueItems"]},{type:"object",rules:["maxProperties","minProperties","required","dependencies","propertyNames",{properties:["additionalProperties","patternProperties"]}]},{rules:["$ref","const","enum","not","anyOf","oneOf","allOf","if"]}];var r=["type","$comment"];var t=["$schema","$id","id","$data","$async","title","description","default","definitions","examples","readOnly","writeOnly","contentMediaType","contentEncoding","additionalItems","then","else"];var i=["number","integer","string","array","object","boolean","null"];e.all=s(r);e.types=s(i);e.forEach((function(t){t.rules=t.rules.map((function(t){var s;if(typeof t=="object"){var i=Object.keys(t)[0];s=t[i];t=i;s.forEach((function(t){r.push(t);e.all[t]=true}))}r.push(t);var o=e.all[t]={keyword:t,code:a[t],implements:s};return o}));e.all.$comment={keyword:"$comment",code:a.$comment};if(t.type)e.types[t.type]=t}));e.keywords=s(r.concat(t));e.custom={};return e}},2961:(e,r,t)=>{"use strict";var a=t(8716);e.exports=SchemaObject;function SchemaObject(e){a.copy(e,this)}},2:e=>{"use strict";e.exports=function ucs2length(e){var r=0,t=e.length,a=0,s;while(a=55296&&s<=56319&&a{"use strict";e.exports={copy:copy,checkDataType:checkDataType,checkDataTypes:checkDataTypes,coerceToTypes:coerceToTypes,toHash:toHash,getProperty:getProperty,escapeQuotes:escapeQuotes,equal:t(1230),ucs2length:t(2),varOccurences:varOccurences,varReplace:varReplace,schemaHasRules:schemaHasRules,schemaHasRulesExcept:schemaHasRulesExcept,schemaUnknownRules:schemaUnknownRules,toQuotedString:toQuotedString,getPathExpr:getPathExpr,getPath:getPath,getData:getData,unescapeFragment:unescapeFragment,unescapeJsonPointer:unescapeJsonPointer,escapeFragment:escapeFragment,escapeJsonPointer:escapeJsonPointer};function copy(e,r){r=r||{};for(var t in e)r[t]=e[t];return r}function checkDataType(e,r,t,a){var s=a?" !== ":" === ",i=a?" || ":" && ",o=a?"!":"",n=a?"":"!";switch(e){case"null":return r+s+"null";case"array":return o+"Array.isArray("+r+")";case"object":return"("+o+r+i+"typeof "+r+s+'"object"'+i+n+"Array.isArray("+r+"))";case"integer":return"(typeof "+r+s+'"number"'+i+n+"("+r+" % 1)"+i+r+s+r+(t?i+o+"isFinite("+r+")":"")+")";case"number":return"(typeof "+r+s+'"'+e+'"'+(t?i+o+"isFinite("+r+")":"")+")";default:return"typeof "+r+s+'"'+e+'"'}}function checkDataTypes(e,r,t){switch(e.length){case 1:return checkDataType(e[0],r,t,true);default:var a="";var s=toHash(e);if(s.array&&s.object){a=s.null?"(":"(!"+r+" || ";a+="typeof "+r+' !== "object")';delete s.null;delete s.array;delete s.object}if(s.number)delete s.integer;for(var i in s)a+=(a?" && ":"")+checkDataType(i,r,t,true);return a}}var a=toHash(["string","number","integer","boolean","null"]);function coerceToTypes(e,r){if(Array.isArray(r)){var t=[];for(var s=0;s=r)throw new Error("Cannot access property/index "+a+" levels up, current level is "+r);return t[r-a]}if(a>r)throw new Error("Cannot access data "+a+" levels up, current level is "+r);i="data"+(r-a||"");if(!s)return i}var u=i;var f=s.split("/");for(var c=0;c{"use strict";var r=["multipleOf","maximum","exclusiveMaximum","minimum","exclusiveMinimum","maxLength","minLength","pattern","additionalItems","maxItems","minItems","uniqueItems","maxProperties","minProperties","required","additionalProperties","enum","format","const"];e.exports=function(e,t){for(var a=0;a{"use strict";var a=t(7136);e.exports={$id:"https://github.com/ajv-validator/ajv/blob/master/lib/definition_schema.js",definitions:{simpleTypes:a.definitions.simpleTypes},type:"object",dependencies:{schema:["validate"],$data:["validate"],statements:["inline"],valid:{not:{required:["macro"]}}},properties:{type:a.properties.type,schema:{type:"boolean"},statements:{type:"boolean"},dependencies:{type:"array",items:{type:"string"}},metaSchema:{type:"object"},modifying:{type:"boolean"},valid:{type:"boolean"},$data:{type:"boolean"},async:{type:"boolean"},errors:{anyOf:[{type:"boolean"},{const:"full"}]}}}},4130:e=>{"use strict";e.exports=function generate__limit(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f;var c="data"+(i||"");var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}var p=r=="maximum",m=p?"exclusiveMaximum":"exclusiveMinimum",g=e.schema[m],y=e.opts.$data&&g&&g.$data,P=p?"<":">",b=p?">":"<",f=undefined;if(!(h||typeof o=="number"||o===undefined)){throw new Error(r+" must be number")}if(!(y||g===undefined||typeof g=="number"||typeof g=="boolean")){throw new Error(m+" must be number or boolean")}if(y){var E=e.util.getData(g.$data,i,e.dataPathArr),S="exclusive"+s,w="exclType"+s,x="exclIsNumber"+s,$="op"+s,_="' + "+$+" + '";a+=" var schemaExcl"+s+" = "+E+"; ";E="schemaExcl"+s;a+=" var "+S+"; var "+w+" = typeof "+E+"; if ("+w+" != 'boolean' && "+w+" != 'undefined' && "+w+" != 'number') { ";var f=m;var R=R||[];R.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_exclusiveLimit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ";if(e.opts.messages!==false){a+=" , message: '"+m+" should be boolean' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var F=a;a=R.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+F+"]); "}else{a+=" validate.errors = ["+F+"]; return false; "}}else{a+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } else if ( ";if(h){a+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "}a+=" "+w+" == 'number' ? ( ("+S+" = "+d+" === undefined || "+E+" "+P+"= "+d+") ? "+c+" "+b+"= "+E+" : "+c+" "+b+" "+d+" ) : ( ("+S+" = "+E+" === true) ? "+c+" "+b+"= "+d+" : "+c+" "+b+" "+d+" ) || "+c+" !== "+c+") { var op"+s+" = "+S+" ? '"+P+"' : '"+P+"='; ";if(o===undefined){f=m;l=e.errSchemaPath+"/"+m;d=E;h=y}}else{var x=typeof g=="number",_=P;if(x&&h){var $="'"+_+"'";a+=" if ( ";if(h){a+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "}a+=" ( "+d+" === undefined || "+g+" "+P+"= "+d+" ? "+c+" "+b+"= "+g+" : "+c+" "+b+" "+d+" ) || "+c+" !== "+c+") { "}else{if(x&&o===undefined){S=true;f=m;l=e.errSchemaPath+"/"+m;d=g;b+="="}else{if(x)d=Math[p?"min":"max"](g,o);if(g===(x?d:true)){S=true;f=m;l=e.errSchemaPath+"/"+m;b+="="}else{S=false;_+="="}}var $="'"+_+"'";a+=" if ( ";if(h){a+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "}a+=" "+c+" "+b+" "+d+" || "+c+" !== "+c+") { "}}f=f||r;var R=R||[];R.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_limit")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { comparison: "+$+", limit: "+d+", exclusive: "+S+" } ";if(e.opts.messages!==false){a+=" , message: 'should be "+_+" ";if(h){a+="' + "+d}else{a+=""+d+"'"}}if(e.opts.verbose){a+=" , schema: ";if(h){a+="validate.schema"+n}else{a+=""+o}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var F=a;a=R.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+F+"]); "}else{a+=" validate.errors = ["+F+"]; return false; "}}else{a+=" var err = "+F+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } ";if(u){a+=" else { "}return a}},3472:e=>{"use strict";e.exports=function generate__limitItems(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f;var c="data"+(i||"");var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}if(!(h||typeof o=="number")){throw new Error(r+" must be number")}var p=r=="maxItems"?">":"<";a+="if ( ";if(h){a+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "}a+=" "+c+".length "+p+" "+d+") { ";var f=r;var m=m||[];m.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_limitItems")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+d+" } ";if(e.opts.messages!==false){a+=" , message: 'should NOT have ";if(r=="maxItems"){a+="more"}else{a+="fewer"}a+=" than ";if(h){a+="' + "+d+" + '"}else{a+=""+o}a+=" items' "}if(e.opts.verbose){a+=" , schema: ";if(h){a+="validate.schema"+n}else{a+=""+o}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var g=a;a=m.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+g+"]); "}else{a+=" validate.errors = ["+g+"]; return false; "}}else{a+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+="} ";if(u){a+=" else { "}return a}},9018:e=>{"use strict";e.exports=function generate__limitLength(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f;var c="data"+(i||"");var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}if(!(h||typeof o=="number")){throw new Error(r+" must be number")}var p=r=="maxLength"?">":"<";a+="if ( ";if(h){a+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "}if(e.opts.unicode===false){a+=" "+c+".length "}else{a+=" ucs2length("+c+") "}a+=" "+p+" "+d+") { ";var f=r;var m=m||[];m.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_limitLength")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+d+" } ";if(e.opts.messages!==false){a+=" , message: 'should NOT be ";if(r=="maxLength"){a+="longer"}else{a+="shorter"}a+=" than ";if(h){a+="' + "+d+" + '"}else{a+=""+o}a+=" characters' "}if(e.opts.verbose){a+=" , schema: ";if(h){a+="validate.schema"+n}else{a+=""+o}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var g=a;a=m.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+g+"]); "}else{a+=" validate.errors = ["+g+"]; return false; "}}else{a+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+="} ";if(u){a+=" else { "}return a}},8740:e=>{"use strict";e.exports=function generate__limitProperties(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f;var c="data"+(i||"");var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}if(!(h||typeof o=="number")){throw new Error(r+" must be number")}var p=r=="maxProperties"?">":"<";a+="if ( ";if(h){a+=" ("+d+" !== undefined && typeof "+d+" != 'number') || "}a+=" Object.keys("+c+").length "+p+" "+d+") { ";var f=r;var m=m||[];m.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"_limitProperties")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+d+" } ";if(e.opts.messages!==false){a+=" , message: 'should NOT have ";if(r=="maxProperties"){a+="more"}else{a+="fewer"}a+=" than ";if(h){a+="' + "+d+" + '"}else{a+=""+o}a+=" properties' "}if(e.opts.verbose){a+=" , schema: ";if(h){a+="validate.schema"+n}else{a+=""+o}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var g=a;a=m.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+g+"]); "}else{a+=" validate.errors = ["+g+"]; return false; "}}else{a+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+="} ";if(u){a+=" else { "}return a}},4378:e=>{"use strict";e.exports=function generate_allOf(e,r,t){var a=" ";var s=e.schema[r];var i=e.schemaPath+e.util.getProperty(r);var o=e.errSchemaPath+"/"+r;var n=!e.opts.allErrors;var l=e.util.copy(e);var u="";l.level++;var f="valid"+l.level;var c=l.baseId,h=true;var d=s;if(d){var p,m=-1,g=d.length-1;while(m0||p===false:e.util.schemaHasRules(p,e.RULES.all)){h=false;l.schema=p;l.schemaPath=i+"["+m+"]";l.errSchemaPath=o+"/"+m;a+=" "+e.validate(l)+" ";l.baseId=c;if(n){a+=" if ("+f+") { ";u+="}"}}}}if(n){if(h){a+=" if (true) { "}else{a+=" "+u.slice(0,-1)+" "}}return a}},9278:e=>{"use strict";e.exports=function generate_anyOf(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="errs__"+s;var d=e.util.copy(e);var p="";d.level++;var m="valid"+d.level;var g=o.every((function(r){return e.opts.strictKeywords?typeof r=="object"&&Object.keys(r).length>0||r===false:e.util.schemaHasRules(r,e.RULES.all)}));if(g){var y=d.baseId;a+=" var "+h+" = errors; var "+c+" = false; ";var P=e.compositeRule;e.compositeRule=d.compositeRule=true;var b=o;if(b){var E,S=-1,w=b.length-1;while(S{"use strict";e.exports=function generate_comment(e,r,t){var a=" ";var s=e.schema[r];var i=e.errSchemaPath+"/"+r;var o=!e.opts.allErrors;var n=e.util.toQuotedString(s);if(e.opts.$comment===true){a+=" console.log("+n+");"}else if(typeof e.opts.$comment=="function"){a+=" self._opts.$comment("+n+", "+e.util.toQuotedString(i)+", validate.root.schema);"}return a}},5326:e=>{"use strict";e.exports=function generate_const(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}if(!h){a+=" var schema"+s+" = validate.schema"+n+";"}a+="var "+c+" = equal("+f+", schema"+s+"); if (!"+c+") { ";var p=p||[];p.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"const"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValue: schema"+s+" } ";if(e.opts.messages!==false){a+=" , message: 'should be equal to constant' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var m=a;a=p.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+m+"]); "}else{a+=" validate.errors = ["+m+"]; return false; "}}else{a+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" }";if(u){a+=" else { "}return a}},7922:e=>{"use strict";e.exports=function generate_contains(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="errs__"+s;var d=e.util.copy(e);var p="";d.level++;var m="valid"+d.level;var g="i"+s,y=d.dataLevel=e.dataLevel+1,P="data"+y,b=e.baseId,E=e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===false:e.util.schemaHasRules(o,e.RULES.all);a+="var "+h+" = errors;var "+c+";";if(E){var S=e.compositeRule;e.compositeRule=d.compositeRule=true;d.schema=o;d.schemaPath=n;d.errSchemaPath=l;a+=" var "+m+" = false; for (var "+g+" = 0; "+g+" < "+f+".length; "+g+"++) { ";d.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,true);var w=f+"["+g+"]";d.dataPathArr[y]=g;var x=e.validate(d);d.baseId=b;if(e.util.varOccurences(x,P)<2){a+=" "+e.util.varReplace(x,P,w)+" "}else{a+=" var "+P+" = "+w+"; "+x+" "}a+=" if ("+m+") break; } ";e.compositeRule=d.compositeRule=S;a+=" "+p+" if (!"+m+") {"}else{a+=" if ("+f+".length == 0) {"}var $=$||[];$.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"contains"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ";if(e.opts.messages!==false){a+=" , message: 'should contain a valid item' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var _=a;a=$.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+_+"]); "}else{a+=" validate.errors = ["+_+"]; return false; "}}else{a+=" var err = "+_+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } else { ";if(E){a+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } "}if(e.opts.allErrors){a+=" } "}return a}},8029:e=>{"use strict";e.exports=function generate_custom(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f;var c="data"+(i||"");var h="valid"+s;var d="errs__"+s;var p=e.opts.$data&&o&&o.$data,m;if(p){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";m="schema"+s}else{m=o}var g=this,y="definition"+s,P=g.definition,b="";var E,S,w,x,$;if(p&&P.$data){$="keywordValidate"+s;var _=P.validateSchema;a+=" var "+y+" = RULES.custom['"+r+"'].definition; var "+$+" = "+y+".validate;"}else{x=e.useCustomRule(g,o,e.schema,e);if(!x)return;m="validate.schema"+n;$=x.code;E=P.compile;S=P.inline;w=P.macro}var R=$+".errors",F="i"+s,O="ruleErr"+s,D=P.async;if(D&&!e.async)throw new Error("async keyword in sync schema");if(!(S||w)){a+=""+R+" = null;"}a+="var "+d+" = errors;var "+h+";";if(p&&P.$data){b+="}";a+=" if ("+m+" === undefined) { "+h+" = true; } else { ";if(_){b+="}";a+=" "+h+" = "+y+".validateSchema("+m+"); if ("+h+") { "}}if(S){if(P.statements){a+=" "+x.validate+" "}else{a+=" "+h+" = "+x.validate+"; "}}else if(w){var j=e.util.copy(e);var b="";j.level++;var I="valid"+j.level;j.schema=x.validate;j.schemaPath="";var k=e.compositeRule;e.compositeRule=j.compositeRule=true;var C=e.validate(j).replace(/validate\.schema/g,$);e.compositeRule=j.compositeRule=k;a+=" "+C}else{var A=A||[];A.push(a);a="";a+=" "+$+".call( ";if(e.opts.passContext){a+="this"}else{a+="self"}if(E||P.schema===false){a+=" , "+c+" "}else{a+=" , "+m+" , "+c+" , validate.schema"+e.schemaPath+" "}a+=" , (dataPath || '')";if(e.errorPath!='""'){a+=" + "+e.errorPath}var N=i?"data"+(i-1||""):"parentData",T=i?e.dataPathArr[i]:"parentDataProperty";a+=" , "+N+" , "+T+" , rootData ) ";var L=a;a=A.pop();if(P.errors===false){a+=" "+h+" = ";if(D){a+="await "}a+=""+L+"; "}else{if(D){R="customErrors"+s;a+=" var "+R+" = null; try { "+h+" = await "+L+"; } catch (e) { "+h+" = false; if (e instanceof ValidationError) "+R+" = e.errors; else throw e; } "}else{a+=" "+R+" = null; "+h+" = "+L+"; "}}}if(P.modifying){a+=" if ("+N+") "+c+" = "+N+"["+T+"];"}a+=""+b;if(P.valid){if(u){a+=" if (true) { "}}else{a+=" if ( ";if(P.valid===undefined){a+=" !";if(w){a+=""+I}else{a+=""+h}}else{a+=" "+!P.valid+" "}a+=") { ";f=g.keyword;var A=A||[];A.push(a);a="";var A=A||[];A.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(f||"custom")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { keyword: '"+g.keyword+"' } ";if(e.opts.messages!==false){a+=" , message: 'should pass \""+g.keyword+"\" keyword validation' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+c+" "}a+=" } "}else{a+=" {} "}var q=a;a=A.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+q+"]); "}else{a+=" validate.errors = ["+q+"]; return false; "}}else{a+=" var err = "+q+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}var z=a;a=A.pop();if(S){if(P.errors){if(P.errors!="full"){a+=" for (var "+F+"="+d+"; "+F+"{"use strict";e.exports=function generate_dependencies(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="errs__"+s;var h=e.util.copy(e);var d="";h.level++;var p="valid"+h.level;var m={},g={},y=e.opts.ownProperties;for(S in o){if(S=="__proto__")continue;var P=o[S];var b=Array.isArray(P)?g:m;b[S]=P}a+="var "+c+" = errors;";var E=e.errorPath;a+="var missing"+s+";";for(var S in g){b=g[S];if(b.length){a+=" if ( "+f+e.util.getProperty(S)+" !== undefined ";if(y){a+=" && Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(S)+"') "}if(u){a+=" && ( ";var w=b;if(w){var x,$=-1,_=w.length-1;while($<_){x=w[$+=1];if($){a+=" || "}var R=e.util.getProperty(x),F=f+R;a+=" ( ( "+F+" === undefined ";if(y){a+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(x)+"') "}a+=") && (missing"+s+" = "+e.util.toQuotedString(e.opts.jsonPointers?x:R)+") ) "}}a+=")) { ";var O="missing"+s,D="' + "+O+" + '";if(e.opts._errorDataPathProperty){e.errorPath=e.opts.jsonPointers?e.util.getPathExpr(E,O,true):E+" + "+O}var j=j||[];j.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"dependencies"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { property: '"+e.util.escapeQuotes(S)+"', missingProperty: '"+D+"', depsCount: "+b.length+", deps: '"+e.util.escapeQuotes(b.length==1?b[0]:b.join(", "))+"' } ";if(e.opts.messages!==false){a+=" , message: 'should have ";if(b.length==1){a+="property "+e.util.escapeQuotes(b[0])}else{a+="properties "+e.util.escapeQuotes(b.join(", "))}a+=" when property "+e.util.escapeQuotes(S)+" is present' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var I=a;a=j.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+I+"]); "}else{a+=" validate.errors = ["+I+"]; return false; "}}else{a+=" var err = "+I+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}}else{a+=" ) { ";var k=b;if(k){var x,C=-1,A=k.length-1;while(C0||P===false:e.util.schemaHasRules(P,e.RULES.all)){a+=" "+p+" = true; if ( "+f+e.util.getProperty(S)+" !== undefined ";if(y){a+=" && Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(S)+"') "}a+=") { ";h.schema=P;h.schemaPath=n+e.util.getProperty(S);h.errSchemaPath=l+"/"+e.util.escapeFragment(S);a+=" "+e.validate(h)+" ";h.baseId=N;a+=" } ";if(u){a+=" if ("+p+") { ";d+="}"}}}if(u){a+=" "+d+" if ("+c+" == errors) {"}return a}},2783:e=>{"use strict";e.exports=function generate_enum(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}var p="i"+s,m="schema"+s;if(!h){a+=" var "+m+" = validate.schema"+n+";"}a+="var "+c+";";if(h){a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"}a+=""+c+" = false;for (var "+p+"=0; "+p+"<"+m+".length; "+p+"++) if (equal("+f+", "+m+"["+p+"])) { "+c+" = true; break; }";if(h){a+=" } "}a+=" if (!"+c+") { ";var g=g||[];g.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"enum"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { allowedValues: schema"+s+" } ";if(e.opts.messages!==false){a+=" , message: 'should be equal to one of the allowed values' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var y=a;a=g.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+y+"]); "}else{a+=" validate.errors = ["+y+"]; return false; "}}else{a+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" }";if(u){a+=" else { "}return a}},9175:e=>{"use strict";e.exports=function generate_format(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");if(e.opts.format===false){if(u){a+=" if (true) { "}return a}var c=e.opts.$data&&o&&o.$data,h;if(c){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";h="schema"+s}else{h=o}var d=e.opts.unknownFormats,p=Array.isArray(d);if(c){var m="format"+s,g="isObject"+s,y="formatType"+s;a+=" var "+m+" = formats["+h+"]; var "+g+" = typeof "+m+" == 'object' && !("+m+" instanceof RegExp) && "+m+".validate; var "+y+" = "+g+" && "+m+".type || 'string'; if ("+g+") { ";if(e.async){a+=" var async"+s+" = "+m+".async; "}a+=" "+m+" = "+m+".validate; } if ( ";if(c){a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "}a+=" (";if(d!="ignore"){a+=" ("+h+" && !"+m+" ";if(p){a+=" && self._opts.unknownFormats.indexOf("+h+") == -1 "}a+=") || "}a+=" ("+m+" && "+y+" == '"+t+"' && !(typeof "+m+" == 'function' ? ";if(e.async){a+=" (async"+s+" ? await "+m+"("+f+") : "+m+"("+f+")) "}else{a+=" "+m+"("+f+") "}a+=" : "+m+".test("+f+"))))) {"}else{var m=e.formats[o];if(!m){if(d=="ignore"){e.logger.warn('unknown format "'+o+'" ignored in schema at path "'+e.errSchemaPath+'"');if(u){a+=" if (true) { "}return a}else if(p&&d.indexOf(o)>=0){if(u){a+=" if (true) { "}return a}else{throw new Error('unknown format "'+o+'" is used in schema at path "'+e.errSchemaPath+'"')}}var g=typeof m=="object"&&!(m instanceof RegExp)&&m.validate;var y=g&&m.type||"string";if(g){var P=m.async===true;m=m.validate}if(y!=t){if(u){a+=" if (true) { "}return a}if(P){if(!e.async)throw new Error("async format in sync schema");var b="formats"+e.util.getProperty(o)+".validate";a+=" if (!(await "+b+"("+f+"))) { "}else{a+=" if (! ";var b="formats"+e.util.getProperty(o);if(g)b+=".validate";if(typeof m=="function"){a+=" "+b+"("+f+") "}else{a+=" "+b+".test("+f+") "}a+=") { "}}var E=E||[];E.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"format"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { format: ";if(c){a+=""+h}else{a+=""+e.util.toQuotedString(o)}a+=" } ";if(e.opts.messages!==false){a+=" , message: 'should match format \"";if(c){a+="' + "+h+" + '"}else{a+=""+e.util.escapeQuotes(o)}a+="\"' "}if(e.opts.verbose){a+=" , schema: ";if(c){a+="validate.schema"+n}else{a+=""+e.util.toQuotedString(o)}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var S=a;a=E.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+S+"]); "}else{a+=" validate.errors = ["+S+"]; return false; "}}else{a+=" var err = "+S+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } ";if(u){a+=" else { "}return a}},5859:e=>{"use strict";e.exports=function generate_if(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="errs__"+s;var d=e.util.copy(e);d.level++;var p="valid"+d.level;var m=e.schema["then"],g=e.schema["else"],y=m!==undefined&&(e.opts.strictKeywords?typeof m=="object"&&Object.keys(m).length>0||m===false:e.util.schemaHasRules(m,e.RULES.all)),P=g!==undefined&&(e.opts.strictKeywords?typeof g=="object"&&Object.keys(g).length>0||g===false:e.util.schemaHasRules(g,e.RULES.all)),b=d.baseId;if(y||P){var E;d.createErrors=false;d.schema=o;d.schemaPath=n;d.errSchemaPath=l;a+=" var "+h+" = errors; var "+c+" = true; ";var S=e.compositeRule;e.compositeRule=d.compositeRule=true;a+=" "+e.validate(d)+" ";d.baseId=b;d.createErrors=true;a+=" errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; } ";e.compositeRule=d.compositeRule=S;if(y){a+=" if ("+p+") { ";d.schema=e.schema["then"];d.schemaPath=e.schemaPath+".then";d.errSchemaPath=e.errSchemaPath+"/then";a+=" "+e.validate(d)+" ";d.baseId=b;a+=" "+c+" = "+p+"; ";if(y&&P){E="ifClause"+s;a+=" var "+E+" = 'then'; "}else{E="'then'"}a+=" } ";if(P){a+=" else { "}}else{a+=" if (!"+p+") { "}if(P){d.schema=e.schema["else"];d.schemaPath=e.schemaPath+".else";d.errSchemaPath=e.errSchemaPath+"/else";a+=" "+e.validate(d)+" ";d.baseId=b;a+=" "+c+" = "+p+"; ";if(y&&P){E="ifClause"+s;a+=" var "+E+" = 'else'; "}else{E="'else'"}a+=" } "}a+=" if (!"+c+") { var err = ";if(e.createErrors!==false){a+=" { keyword: '"+"if"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { failingKeyword: "+E+" } ";if(e.opts.messages!==false){a+=" , message: 'should match \"' + "+E+" + '\" schema' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(vErrors); "}else{a+=" validate.errors = vErrors; return false; "}}a+=" } ";if(u){a+=" else { "}}else{if(u){a+=" if (true) { "}}return a}},6964:(e,r,t)=>{"use strict";e.exports={$ref:t(1473),allOf:t(4378),anyOf:t(9278),$comment:t(9263),const:t(5326),contains:t(7922),dependencies:t(2283),enum:t(2783),format:t(9175),if:t(5859),items:t(9187),maximum:t(4130),minimum:t(4130),maxItems:t(3472),minItems:t(3472),maxLength:t(9018),minLength:t(9018),maxProperties:t(8740),minProperties:t(8740),multipleOf:t(2644),not:t(4806),oneOf:t(1853),pattern:t(2944),properties:t(1615),propertyNames:t(6610),required:t(6172),uniqueItems:t(2370),validate:t(7003)}},9187:e=>{"use strict";e.exports=function generate_items(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="errs__"+s;var d=e.util.copy(e);var p="";d.level++;var m="valid"+d.level;var g="i"+s,y=d.dataLevel=e.dataLevel+1,P="data"+y,b=e.baseId;a+="var "+h+" = errors;var "+c+";";if(Array.isArray(o)){var E=e.schema.additionalItems;if(E===false){a+=" "+c+" = "+f+".length <= "+o.length+"; ";var S=l;l=e.errSchemaPath+"/additionalItems";a+=" if (!"+c+") { ";var w=w||[];w.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"additionalItems"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { limit: "+o.length+" } ";if(e.opts.messages!==false){a+=" , message: 'should NOT have more than "+o.length+" items' "}if(e.opts.verbose){a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var x=a;a=w.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+x+"]); "}else{a+=" validate.errors = ["+x+"]; return false; "}}else{a+=" var err = "+x+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } ";l=S;if(u){p+="}";a+=" else { "}}var $=o;if($){var _,R=-1,F=$.length-1;while(R0||_===false:e.util.schemaHasRules(_,e.RULES.all)){a+=" "+m+" = true; if ("+f+".length > "+R+") { ";var O=f+"["+R+"]";d.schema=_;d.schemaPath=n+"["+R+"]";d.errSchemaPath=l+"/"+R;d.errorPath=e.util.getPathExpr(e.errorPath,R,e.opts.jsonPointers,true);d.dataPathArr[y]=R;var D=e.validate(d);d.baseId=b;if(e.util.varOccurences(D,P)<2){a+=" "+e.util.varReplace(D,P,O)+" "}else{a+=" var "+P+" = "+O+"; "+D+" "}a+=" } ";if(u){a+=" if ("+m+") { ";p+="}"}}}}if(typeof E=="object"&&(e.opts.strictKeywords?typeof E=="object"&&Object.keys(E).length>0||E===false:e.util.schemaHasRules(E,e.RULES.all))){d.schema=E;d.schemaPath=e.schemaPath+".additionalItems";d.errSchemaPath=e.errSchemaPath+"/additionalItems";a+=" "+m+" = true; if ("+f+".length > "+o.length+") { for (var "+g+" = "+o.length+"; "+g+" < "+f+".length; "+g+"++) { ";d.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,true);var O=f+"["+g+"]";d.dataPathArr[y]=g;var D=e.validate(d);d.baseId=b;if(e.util.varOccurences(D,P)<2){a+=" "+e.util.varReplace(D,P,O)+" "}else{a+=" var "+P+" = "+O+"; "+D+" "}if(u){a+=" if (!"+m+") break; "}a+=" } } ";if(u){a+=" if ("+m+") { ";p+="}"}}}else if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===false:e.util.schemaHasRules(o,e.RULES.all)){d.schema=o;d.schemaPath=n;d.errSchemaPath=l;a+=" for (var "+g+" = "+0+"; "+g+" < "+f+".length; "+g+"++) { ";d.errorPath=e.util.getPathExpr(e.errorPath,g,e.opts.jsonPointers,true);var O=f+"["+g+"]";d.dataPathArr[y]=g;var D=e.validate(d);d.baseId=b;if(e.util.varOccurences(D,P)<2){a+=" "+e.util.varReplace(D,P,O)+" "}else{a+=" var "+P+" = "+O+"; "+D+" "}if(u){a+=" if (!"+m+") break; "}a+=" }"}if(u){a+=" "+p+" if ("+h+" == errors) {"}return a}},2644:e=>{"use strict";e.exports=function generate_multipleOf(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c=e.opts.$data&&o&&o.$data,h;if(c){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";h="schema"+s}else{h=o}if(!(c||typeof o=="number")){throw new Error(r+" must be number")}a+="var division"+s+";if (";if(c){a+=" "+h+" !== undefined && ( typeof "+h+" != 'number' || "}a+=" (division"+s+" = "+f+" / "+h+", ";if(e.opts.multipleOfPrecision){a+=" Math.abs(Math.round(division"+s+") - division"+s+") > 1e-"+e.opts.multipleOfPrecision+" "}else{a+=" division"+s+" !== parseInt(division"+s+") "}a+=" ) ";if(c){a+=" ) "}a+=" ) { ";var d=d||[];d.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"multipleOf"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { multipleOf: "+h+" } ";if(e.opts.messages!==false){a+=" , message: 'should be multiple of ";if(c){a+="' + "+h}else{a+=""+h+"'"}}if(e.opts.verbose){a+=" , schema: ";if(c){a+="validate.schema"+n}else{a+=""+o}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var p=a;a=d.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+p+"]); "}else{a+=" validate.errors = ["+p+"]; return false; "}}else{a+=" var err = "+p+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+="} ";if(u){a+=" else { "}return a}},4806:e=>{"use strict";e.exports=function generate_not(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="errs__"+s;var h=e.util.copy(e);h.level++;var d="valid"+h.level;if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===false:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o;h.schemaPath=n;h.errSchemaPath=l;a+=" var "+c+" = errors; ";var p=e.compositeRule;e.compositeRule=h.compositeRule=true;h.createErrors=false;var m;if(h.opts.allErrors){m=h.opts.allErrors;h.opts.allErrors=false}a+=" "+e.validate(h)+" ";h.createErrors=true;if(m)h.opts.allErrors=m;e.compositeRule=h.compositeRule=p;a+=" if ("+d+") { ";var g=g||[];g.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"not"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ";if(e.opts.messages!==false){a+=" , message: 'should NOT be valid' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var y=a;a=g.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+y+"]); "}else{a+=" validate.errors = ["+y+"]; return false; "}}else{a+=" var err = "+y+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } else { errors = "+c+"; if (vErrors !== null) { if ("+c+") vErrors.length = "+c+"; else vErrors = null; } ";if(e.opts.allErrors){a+=" } "}}else{a+=" var err = ";if(e.createErrors!==false){a+=" { keyword: '"+"not"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: {} ";if(e.opts.messages!==false){a+=" , message: 'should NOT be valid' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(u){a+=" if (false) { "}}return a}},1853:e=>{"use strict";e.exports=function generate_oneOf(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h="errs__"+s;var d=e.util.copy(e);var p="";d.level++;var m="valid"+d.level;var g=d.baseId,y="prevValid"+s,P="passingSchemas"+s;a+="var "+h+" = errors , "+y+" = false , "+c+" = false , "+P+" = null; ";var b=e.compositeRule;e.compositeRule=d.compositeRule=true;var E=o;if(E){var S,w=-1,x=E.length-1;while(w0||S===false:e.util.schemaHasRules(S,e.RULES.all)){d.schema=S;d.schemaPath=n+"["+w+"]";d.errSchemaPath=l+"/"+w;a+=" "+e.validate(d)+" ";d.baseId=g}else{a+=" var "+m+" = true; "}if(w){a+=" if ("+m+" && "+y+") { "+c+" = false; "+P+" = ["+P+", "+w+"]; } else { ";p+="}"}a+=" if ("+m+") { "+c+" = "+y+" = true; "+P+" = "+w+"; }"}}e.compositeRule=d.compositeRule=b;a+=""+p+"if (!"+c+") { var err = ";if(e.createErrors!==false){a+=" { keyword: '"+"oneOf"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { passingSchemas: "+P+" } ";if(e.opts.messages!==false){a+=" , message: 'should match exactly one schema in oneOf' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}a+="; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; ";if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(vErrors); "}else{a+=" validate.errors = vErrors; return false; "}}a+="} else { errors = "+h+"; if (vErrors !== null) { if ("+h+") vErrors.length = "+h+"; else vErrors = null; }";if(e.opts.allErrors){a+=" } "}return a}},2944:e=>{"use strict";e.exports=function generate_pattern(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c=e.opts.$data&&o&&o.$data,h;if(c){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";h="schema"+s}else{h=o}var d=c?"(new RegExp("+h+"))":e.usePattern(o);a+="if ( ";if(c){a+=" ("+h+" !== undefined && typeof "+h+" != 'string') || "}a+=" !"+d+".test("+f+") ) { ";var p=p||[];p.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"pattern"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { pattern: ";if(c){a+=""+h}else{a+=""+e.util.toQuotedString(o)}a+=" } ";if(e.opts.messages!==false){a+=" , message: 'should match pattern \"";if(c){a+="' + "+h+" + '"}else{a+=""+e.util.escapeQuotes(o)}a+="\"' "}if(e.opts.verbose){a+=" , schema: ";if(c){a+="validate.schema"+n}else{a+=""+e.util.toQuotedString(o)}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var m=a;a=p.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+m+"]); "}else{a+=" validate.errors = ["+m+"]; return false; "}}else{a+=" var err = "+m+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+="} ";if(u){a+=" else { "}return a}},1615:e=>{"use strict";e.exports=function generate_properties(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="errs__"+s;var h=e.util.copy(e);var d="";h.level++;var p="valid"+h.level;var m="key"+s,g="idx"+s,y=h.dataLevel=e.dataLevel+1,P="data"+y,b="dataProperties"+s;var E=Object.keys(o||{}).filter(notProto),S=e.schema.patternProperties||{},w=Object.keys(S).filter(notProto),x=e.schema.additionalProperties,$=E.length||w.length,_=x===false,R=typeof x=="object"&&Object.keys(x).length,F=e.opts.removeAdditional,O=_||R||F,D=e.opts.ownProperties,j=e.baseId;var I=e.schema.required;if(I&&!(e.opts.$data&&I.$data)&&I.length8){a+=" || validate.schema"+n+".hasOwnProperty("+m+") "}else{var C=E;if(C){var A,N=-1,T=C.length-1;while(N0||ee===false:e.util.schemaHasRules(ee,e.RULES.all)){var re=e.util.getProperty(A),B=f+re,te=G&&ee.default!==undefined;h.schema=ee;h.schemaPath=n+re;h.errSchemaPath=l+"/"+e.util.escapeFragment(A);h.errorPath=e.util.getPath(e.errorPath,A,e.opts.jsonPointers);h.dataPathArr[y]=e.util.toQuotedString(A);var Z=e.validate(h);h.baseId=j;if(e.util.varOccurences(Z,P)<2){Z=e.util.varReplace(Z,P,B);var ae=B}else{var ae=P;a+=" var "+P+" = "+B+"; "}if(te){a+=" "+Z+" "}else{if(k&&k[A]){a+=" if ( "+ae+" === undefined ";if(D){a+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(A)+"') "}a+=") { "+p+" = false; ";var U=e.errorPath,Q=l,se=e.util.escapeQuotes(A);if(e.opts._errorDataPathProperty){e.errorPath=e.util.getPath(U,A,e.opts.jsonPointers)}l=e.errSchemaPath+"/required";var K=K||[];K.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"required"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+se+"' } ";if(e.opts.messages!==false){a+=" , message: '";if(e.opts._errorDataPathProperty){a+="is a required property"}else{a+="should have required property \\'"+se+"\\'"}a+="' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var H=a;a=K.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+H+"]); "}else{a+=" validate.errors = ["+H+"]; return false; "}}else{a+=" var err = "+H+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}l=Q;e.errorPath=U;a+=" } else { "}else{if(u){a+=" if ( "+ae+" === undefined ";if(D){a+=" || ! Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(A)+"') "}a+=") { "+p+" = true; } else { "}else{a+=" if ("+ae+" !== undefined ";if(D){a+=" && Object.prototype.hasOwnProperty.call("+f+", '"+e.util.escapeQuotes(A)+"') "}a+=" ) { "}}a+=" "+Z+" } "}}if(u){a+=" if ("+p+") { ";d+="}"}}}}if(w.length){var ie=w;if(ie){var q,oe=-1,ne=ie.length-1;while(oe0||ee===false:e.util.schemaHasRules(ee,e.RULES.all)){h.schema=ee;h.schemaPath=e.schemaPath+".patternProperties"+e.util.getProperty(q);h.errSchemaPath=e.errSchemaPath+"/patternProperties/"+e.util.escapeFragment(q);if(D){a+=" "+b+" = "+b+" || Object.keys("+f+"); for (var "+g+"=0; "+g+"<"+b+".length; "+g+"++) { var "+m+" = "+b+"["+g+"]; "}else{a+=" for (var "+m+" in "+f+") { "}a+=" if ("+e.usePattern(q)+".test("+m+")) { ";h.errorPath=e.util.getPathExpr(e.errorPath,m,e.opts.jsonPointers);var B=f+"["+m+"]";h.dataPathArr[y]=m;var Z=e.validate(h);h.baseId=j;if(e.util.varOccurences(Z,P)<2){a+=" "+e.util.varReplace(Z,P,B)+" "}else{a+=" var "+P+" = "+B+"; "+Z+" "}if(u){a+=" if (!"+p+") break; "}a+=" } ";if(u){a+=" else "+p+" = true; "}a+=" } ";if(u){a+=" if ("+p+") { ";d+="}"}}}}}if(u){a+=" "+d+" if ("+c+" == errors) {"}return a}},6610:e=>{"use strict";e.exports=function generate_propertyNames(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="errs__"+s;var h=e.util.copy(e);var d="";h.level++;var p="valid"+h.level;a+="var "+c+" = errors;";if(e.opts.strictKeywords?typeof o=="object"&&Object.keys(o).length>0||o===false:e.util.schemaHasRules(o,e.RULES.all)){h.schema=o;h.schemaPath=n;h.errSchemaPath=l;var m="key"+s,g="idx"+s,y="i"+s,P="' + "+m+" + '",b=h.dataLevel=e.dataLevel+1,E="data"+b,S="dataProperties"+s,w=e.opts.ownProperties,x=e.baseId;if(w){a+=" var "+S+" = undefined; "}if(w){a+=" "+S+" = "+S+" || Object.keys("+f+"); for (var "+g+"=0; "+g+"<"+S+".length; "+g+"++) { var "+m+" = "+S+"["+g+"]; "}else{a+=" for (var "+m+" in "+f+") { "}a+=" var startErrs"+s+" = errors; ";var $=m;var _=e.compositeRule;e.compositeRule=h.compositeRule=true;var R=e.validate(h);h.baseId=x;if(e.util.varOccurences(R,E)<2){a+=" "+e.util.varReplace(R,E,$)+" "}else{a+=" var "+E+" = "+$+"; "+R+" "}e.compositeRule=h.compositeRule=_;a+=" if (!"+p+") { for (var "+y+"=startErrs"+s+"; "+y+"{"use strict";e.exports=function generate_ref(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.errSchemaPath+"/"+r;var l=!e.opts.allErrors;var u="data"+(i||"");var f="valid"+s;var c,h;if(o=="#"||o=="#/"){if(e.isRoot){c=e.async;h="validate"}else{c=e.root.schema.$async===true;h="root.refVal[0]"}}else{var d=e.resolveRef(e.baseId,o,e.isRoot);if(d===undefined){var p=e.MissingRefError.message(e.baseId,o);if(e.opts.missingRefs=="fail"){e.logger.error(p);var m=m||[];m.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"$ref"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(n)+" , params: { ref: '"+e.util.escapeQuotes(o)+"' } ";if(e.opts.messages!==false){a+=" , message: 'can\\'t resolve reference "+e.util.escapeQuotes(o)+"' "}if(e.opts.verbose){a+=" , schema: "+e.util.toQuotedString(o)+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+u+" "}a+=" } "}else{a+=" {} "}var g=a;a=m.pop();if(!e.compositeRule&&l){if(e.async){a+=" throw new ValidationError(["+g+"]); "}else{a+=" validate.errors = ["+g+"]; return false; "}}else{a+=" var err = "+g+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}if(l){a+=" if (false) { "}}else if(e.opts.missingRefs=="ignore"){e.logger.warn(p);if(l){a+=" if (true) { "}}else{throw new e.MissingRefError(e.baseId,o,p)}}else if(d.inline){var y=e.util.copy(e);y.level++;var P="valid"+y.level;y.schema=d.schema;y.schemaPath="";y.errSchemaPath=o;var b=e.validate(y).replace(/validate\.schema/g,d.code);a+=" "+b+" ";if(l){a+=" if ("+P+") { "}}else{c=d.$async===true||e.async&&d.$async!==false;h=d.code}}if(h){var m=m||[];m.push(a);a="";if(e.opts.passContext){a+=" "+h+".call(this, "}else{a+=" "+h+"( "}a+=" "+u+", (dataPath || '')";if(e.errorPath!='""'){a+=" + "+e.errorPath}var E=i?"data"+(i-1||""):"parentData",S=i?e.dataPathArr[i]:"parentDataProperty";a+=" , "+E+" , "+S+", rootData) ";var w=a;a=m.pop();if(c){if(!e.async)throw new Error("async schema referenced by sync schema");if(l){a+=" var "+f+"; "}a+=" try { await "+w+"; ";if(l){a+=" "+f+" = true; "}a+=" } catch (e) { if (!(e instanceof ValidationError)) throw e; if (vErrors === null) vErrors = e.errors; else vErrors = vErrors.concat(e.errors); errors = vErrors.length; ";if(l){a+=" "+f+" = false; "}a+=" } ";if(l){a+=" if ("+f+") { "}}else{a+=" if (!"+w+") { if (vErrors === null) vErrors = "+h+".errors; else vErrors = vErrors.concat("+h+".errors); errors = vErrors.length; } ";if(l){a+=" else { "}}}return a}},6172:e=>{"use strict";e.exports=function generate_required(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}var p="schema"+s;if(!h){if(o.length0||E===false:e.util.schemaHasRules(E,e.RULES.all)))){m[m.length]=y}}}}else{var m=o}}if(h||m.length){var S=e.errorPath,w=h||m.length>=e.opts.loopRequired,x=e.opts.ownProperties;if(u){a+=" var missing"+s+"; ";if(w){if(!h){a+=" var "+p+" = validate.schema"+n+"; "}var $="i"+s,_="schema"+s+"["+$+"]",R="' + "+_+" + '";if(e.opts._errorDataPathProperty){e.errorPath=e.util.getPathExpr(S,_,e.opts.jsonPointers)}a+=" var "+c+" = true; ";if(h){a+=" if (schema"+s+" === undefined) "+c+" = true; else if (!Array.isArray(schema"+s+")) "+c+" = false; else {"}a+=" for (var "+$+" = 0; "+$+" < "+p+".length; "+$+"++) { "+c+" = "+f+"["+p+"["+$+"]] !== undefined ";if(x){a+=" && Object.prototype.hasOwnProperty.call("+f+", "+p+"["+$+"]) "}a+="; if (!"+c+") break; } ";if(h){a+=" } "}a+=" if (!"+c+") { ";var F=F||[];F.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"required"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { missingProperty: '"+R+"' } ";if(e.opts.messages!==false){a+=" , message: '";if(e.opts._errorDataPathProperty){a+="is a required property"}else{a+="should have required property \\'"+R+"\\'"}a+="' "}if(e.opts.verbose){a+=" , schema: validate.schema"+n+" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var O=a;a=F.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+O+"]); "}else{a+=" validate.errors = ["+O+"]; return false; "}}else{a+=" var err = "+O+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } else { "}else{a+=" if ( ";var D=m;if(D){var j,$=-1,I=D.length-1;while(${"use strict";e.exports=function generate_uniqueItems(e,r,t){var a=" ";var s=e.level;var i=e.dataLevel;var o=e.schema[r];var n=e.schemaPath+e.util.getProperty(r);var l=e.errSchemaPath+"/"+r;var u=!e.opts.allErrors;var f="data"+(i||"");var c="valid"+s;var h=e.opts.$data&&o&&o.$data,d;if(h){a+=" var schema"+s+" = "+e.util.getData(o.$data,i,e.dataPathArr)+"; ";d="schema"+s}else{d=o}if((o||h)&&e.opts.uniqueItems!==false){if(h){a+=" var "+c+"; if ("+d+" === false || "+d+" === undefined) "+c+" = true; else if (typeof "+d+" != 'boolean') "+c+" = false; else { "}a+=" var i = "+f+".length , "+c+" = true , j; if (i > 1) { ";var p=e.schema.items&&e.schema.items.type,m=Array.isArray(p);if(!p||p=="object"||p=="array"||m&&(p.indexOf("object")>=0||p.indexOf("array")>=0)){a+=" outer: for (;i--;) { for (j = i; j--;) { if (equal("+f+"[i], "+f+"[j])) { "+c+" = false; break outer; } } } "}else{a+=" var itemIndices = {}, item; for (;i--;) { var item = "+f+"[i]; ";var g="checkDataType"+(m?"s":"");a+=" if ("+e.util[g](p,"item",e.opts.strictNumbers,true)+") continue; ";if(m){a+=" if (typeof item == 'string') item = '\"' + item; "}a+=" if (typeof itemIndices[item] == 'number') { "+c+" = false; j = itemIndices[item]; break; } itemIndices[item] = i; } "}a+=" } ";if(h){a+=" } "}a+=" if (!"+c+") { ";var y=y||[];y.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+"uniqueItems"+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(l)+" , params: { i: i, j: j } ";if(e.opts.messages!==false){a+=" , message: 'should NOT have duplicate items (items ## ' + j + ' and ' + i + ' are identical)' "}if(e.opts.verbose){a+=" , schema: ";if(h){a+="validate.schema"+n}else{a+=""+o}a+=" , parentSchema: validate.schema"+e.schemaPath+" , data: "+f+" "}a+=" } "}else{a+=" {} "}var P=a;a=y.pop();if(!e.compositeRule&&u){if(e.async){a+=" throw new ValidationError(["+P+"]); "}else{a+=" validate.errors = ["+P+"]; return false; "}}else{a+=" var err = "+P+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}a+=" } ";if(u){a+=" else { "}}else{if(u){a+=" if (true) { "}}return a}},7003:e=>{"use strict";e.exports=function generate_validate(e,r,t){var a="";var s=e.schema.$async===true,i=e.util.schemaHasRulesExcept(e.schema,e.RULES.all,"$ref"),o=e.self._getId(e.schema);if(e.opts.strictKeywords){var n=e.util.schemaUnknownRules(e.schema,e.RULES.keywords);if(n){var l="unknown keyword: "+n;if(e.opts.strictKeywords==="log")e.logger.warn(l);else throw new Error(l)}}if(e.isTop){a+=" var validate = ";if(s){e.async=true;a+="async "}a+="function(data, dataPath, parentData, parentDataProperty, rootData) { 'use strict'; ";if(o&&(e.opts.sourceCode||e.opts.processCode)){a+=" "+("/*# sourceURL="+o+" */")+" "}}if(typeof e.schema=="boolean"||!(i||e.schema.$ref)){var r="false schema";var u=e.level;var f=e.dataLevel;var c=e.schema[r];var h=e.schemaPath+e.util.getProperty(r);var d=e.errSchemaPath+"/"+r;var p=!e.opts.allErrors;var m;var g="data"+(f||"");var y="valid"+u;if(e.schema===false){if(e.isTop){p=true}else{a+=" var "+y+" = false; "}var P=P||[];P.push(a);a="";if(e.createErrors!==false){a+=" { keyword: '"+(m||"false schema")+"' , dataPath: (dataPath || '') + "+e.errorPath+" , schemaPath: "+e.util.toQuotedString(d)+" , params: {} ";if(e.opts.messages!==false){a+=" , message: 'boolean schema is false' "}if(e.opts.verbose){a+=" , schema: false , parentSchema: validate.schema"+e.schemaPath+" , data: "+g+" "}a+=" } "}else{a+=" {} "}var b=a;a=P.pop();if(!e.compositeRule&&p){if(e.async){a+=" throw new ValidationError(["+b+"]); "}else{a+=" validate.errors = ["+b+"]; return false; "}}else{a+=" var err = "+b+"; if (vErrors === null) vErrors = [err]; else vErrors.push(err); errors++; "}}else{if(e.isTop){if(s){a+=" return data; "}else{a+=" validate.errors = null; return true; "}}else{a+=" var "+y+" = true; "}}if(e.isTop){a+=" }; return validate; "}return a}if(e.isTop){var E=e.isTop,u=e.level=0,f=e.dataLevel=0,g="data";e.rootId=e.resolve.fullPath(e.self._getId(e.root.schema));e.baseId=e.baseId||e.rootId;delete e.isTop;e.dataPathArr=[""];if(e.schema.default!==undefined&&e.opts.useDefaults&&e.opts.strictDefaults){var S="default is ignored in the schema root";if(e.opts.strictDefaults==="log")e.logger.warn(S);else throw new Error(S)}a+=" var vErrors = null; ";a+=" var errors = 0; ";a+=" if (rootData === undefined) rootData = data; "}else{var u=e.level,f=e.dataLevel,g="data"+(f||"");if(o)e.baseId=e.resolve.url(e.baseId,o);if(s&&!e.async)throw new Error("async schema in sync schema");a+=" var errs_"+u+" = errors;"}var y="valid"+u,p=!e.opts.allErrors,w="",x="";var m;var $=e.schema.type,_=Array.isArray($);if($&&e.opts.nullable&&e.schema.nullable===true){if(_){if($.indexOf("null")==-1)$=$.concat("null")}else if($!="null"){$=[$,"null"];_=true}}if(_&&$.length==1){$=$[0];_=false}if(e.schema.$ref&&i){if(e.opts.extendRefs=="fail"){throw new Error('$ref: validation keywords used in schema at path "'+e.errSchemaPath+'" (see option extendRefs)')}else if(e.opts.extendRefs!==true){i=false;e.logger.warn('$ref: keywords ignored in schema at path "'+e.errSchemaPath+'"')}}if(e.schema.$comment&&e.opts.$comment){a+=" "+e.RULES.all.$comment.code(e,"$comment")}if($){if(e.opts.coerceTypes){var R=e.util.coerceToTypes(e.opts.coerceTypes,$)}var F=e.RULES.types[$];if(R||_||F===true||F&&!$shouldUseGroup(F)){var h=e.schemaPath+".type",d=e.errSchemaPath+"/type";var h=e.schemaPath+".type",d=e.errSchemaPath+"/type",O=_?"checkDataTypes":"checkDataType";a+=" if ("+e.util[O]($,g,e.opts.strictNumbers,true)+") { ";if(R){var D="dataType"+u,j="coerced"+u;a+=" var "+D+" = typeof "+g+"; var "+j+" = undefined; ";if(e.opts.coerceTypes=="array"){a+=" if ("+D+" == 'object' && Array.isArray("+g+") && "+g+".length == 1) { "+g+" = "+g+"[0]; "+D+" = typeof "+g+"; if ("+e.util.checkDataType(e.schema.type,g,e.opts.strictNumbers)+") "+j+" = "+g+"; } "}a+=" if ("+j+" !== undefined) ; ";var I=R;if(I){var k,C=-1,A=I.length-1;while(C{"use strict";var a=/^[a-z_$][a-z0-9_$-]*$/i;var s=t(8029);var i=t(6686);e.exports={add:addKeyword,get:getKeyword,remove:removeKeyword,validate:validateKeyword};function addKeyword(e,r){var t=this.RULES;if(t.keywords[e])throw new Error("Keyword "+e+" is already defined");if(!a.test(e))throw new Error("Keyword "+e+" is not a valid identifier");if(r){this.validateKeyword(r,true);var i=r.type;if(Array.isArray(i)){for(var o=0;o{"use strict";e.exports=function equal(e,r){if(e===r)return true;if(e&&r&&typeof e=="object"&&typeof r=="object"){if(e.constructor!==r.constructor)return false;var t,a,s;if(Array.isArray(e)){t=e.length;if(t!=r.length)return false;for(a=t;a--!==0;)if(!equal(e[a],r[a]))return false;return true}if(e.constructor===RegExp)return e.source===r.source&&e.flags===r.flags;if(e.valueOf!==Object.prototype.valueOf)return e.valueOf()===r.valueOf();if(e.toString!==Object.prototype.toString)return e.toString()===r.toString();s=Object.keys(e);t=s.length;if(t!==Object.keys(r).length)return false;for(a=t;a--!==0;)if(!Object.prototype.hasOwnProperty.call(r,s[a]))return false;for(a=t;a--!==0;){var i=s[a];if(!equal(e[i],r[i]))return false}return true}return e!==e&&r!==r}},6424:e=>{"use strict";e.exports=function(e,r){if(!r)r={};if(typeof r==="function")r={cmp:r};var t=typeof r.cycles==="boolean"?r.cycles:false;var a=r.cmp&&function(e){return function(r){return function(t,a){var s={key:t,value:r[t]};var i={key:a,value:r[a]};return e(s,i)}}}(r.cmp);var s=[];return function stringify(e){if(e&&e.toJSON&&typeof e.toJSON==="function"){e=e.toJSON()}if(e===undefined)return;if(typeof e=="number")return isFinite(e)?""+e:"null";if(typeof e!=="object")return JSON.stringify(e);var r,i;if(Array.isArray(e)){i="[";for(r=0;r{"use strict";var r=e.exports=function(e,r,t){if(typeof r=="function"){t=r;r={}}t=r.cb||t;var a=typeof t=="function"?t:t.pre||function(){};var s=t.post||function(){};_traverse(r,a,s,e,"",e)};r.keywords={additionalItems:true,items:true,contains:true,additionalProperties:true,propertyNames:true,not:true};r.arrayKeywords={items:true,allOf:true,anyOf:true,oneOf:true};r.propsKeywords={definitions:true,properties:true,patternProperties:true,dependencies:true};r.skipKeywords={default:true,enum:true,const:true,required:true,maximum:true,minimum:true,exclusiveMaximum:true,exclusiveMinimum:true,multipleOf:true,maxLength:true,minLength:true,pattern:true,format:true,maxItems:true,minItems:true,uniqueItems:true,maxProperties:true,minProperties:true};function _traverse(e,t,a,s,i,o,n,l,u,f){if(s&&typeof s=="object"&&!Array.isArray(s)){t(s,i,o,n,l,u,f);for(var c in s){var h=s[c];if(Array.isArray(h)){if(c in r.arrayKeywords){for(var d=0;d{"use strict";Object.defineProperty(r,"__esModule",{value:true});r["default"]=void 0;const{stringHints:a,numberHints:s}=t(7931);const i={type:1,not:1,oneOf:1,anyOf:1,if:1,enum:1,const:1,instanceof:1,required:2,pattern:2,patternRequired:2,format:2,formatMinimum:2,formatMaximum:2,minimum:2,exclusiveMinimum:2,maximum:2,exclusiveMaximum:2,multipleOf:2,uniqueItems:2,contains:2,minLength:2,maxLength:2,minItems:2,maxItems:2,minProperties:2,maxProperties:2,dependencies:2,propertyNames:2,additionalItems:2,additionalProperties:2,absolutePath:2};function filterMax(e,r){const t=e.reduce(((e,t)=>Math.max(e,r(t))),0);return e.filter((e=>r(e)===t))}function filterChildren(e){let r=e;r=filterMax(r,(e=>e.dataPath?e.dataPath.length:0));r=filterMax(r,(e=>i[e.keyword]||2));return r}function findAllChildren(e,r){let t=e.length-1;const predicate=r=>e[t].schemaPath.indexOf(r)!==0;while(t>-1&&!r.every(predicate)){if(e[t].keyword==="anyOf"||e[t].keyword==="oneOf"){const r=extractRefs(e[t]);const a=findAllChildren(e.slice(0,t),r.concat(e[t].schemaPath));t=a-1}else{t-=1}}return t+1}function extractRefs(e){const{schema:r}=e;if(!Array.isArray(r)){return[]}return r.map((({$ref:e})=>e)).filter((e=>e))}function groupChildrenByFirstChild(e){const r=[];let t=e.length-1;while(t>0){const a=e[t];if(a.keyword==="anyOf"||a.keyword==="oneOf"){const s=extractRefs(a);const i=findAllChildren(e.slice(0,t),s.concat(a.schemaPath));if(i!==t){r.push(Object.assign({},a,{children:e.slice(i,t)}));t=i}else{r.push(a)}}else{r.push(a)}t-=1}if(t===0){r.push(e[t])}return r.reverse()}function indent(e,r){return e.replace(/\n(?!$)/g,`\n${r}`)}function hasNotInSchema(e){return!!e.not}function findFirstTypedSchema(e){if(hasNotInSchema(e)){return findFirstTypedSchema(e.not)}return e}function canApplyNot(e){const r=findFirstTypedSchema(e);return likeNumber(r)||likeInteger(r)||likeString(r)||likeNull(r)||likeBoolean(r)}function isObject(e){return typeof e==="object"&&e!==null}function likeNumber(e){return e.type==="number"||typeof e.minimum!=="undefined"||typeof e.exclusiveMinimum!=="undefined"||typeof e.maximum!=="undefined"||typeof e.exclusiveMaximum!=="undefined"||typeof e.multipleOf!=="undefined"}function likeInteger(e){return e.type==="integer"||typeof e.minimum!=="undefined"||typeof e.exclusiveMinimum!=="undefined"||typeof e.maximum!=="undefined"||typeof e.exclusiveMaximum!=="undefined"||typeof e.multipleOf!=="undefined"}function likeString(e){return e.type==="string"||typeof e.minLength!=="undefined"||typeof e.maxLength!=="undefined"||typeof e.pattern!=="undefined"||typeof e.format!=="undefined"||typeof e.formatMinimum!=="undefined"||typeof e.formatMaximum!=="undefined"}function likeBoolean(e){return e.type==="boolean"}function likeArray(e){return e.type==="array"||typeof e.minItems==="number"||typeof e.maxItems==="number"||typeof e.uniqueItems!=="undefined"||typeof e.items!=="undefined"||typeof e.additionalItems!=="undefined"||typeof e.contains!=="undefined"}function likeObject(e){return e.type==="object"||typeof e.minProperties!=="undefined"||typeof e.maxProperties!=="undefined"||typeof e.required!=="undefined"||typeof e.properties!=="undefined"||typeof e.patternProperties!=="undefined"||typeof e.additionalProperties!=="undefined"||typeof e.dependencies!=="undefined"||typeof e.propertyNames!=="undefined"||typeof e.patternRequired!=="undefined"}function likeNull(e){return e.type==="null"}function getArticle(e){if(/^[aeiou]/i.test(e)){return"an"}return"a"}function getSchemaNonTypes(e){if(!e){return""}if(!e.type){if(likeNumber(e)||likeInteger(e)){return" | should be any non-number"}if(likeString(e)){return" | should be any non-string"}if(likeArray(e)){return" | should be any non-array"}if(likeObject(e)){return" | should be any non-object"}}return""}function formatHints(e){return e.length>0?`(${e.join(", ")})`:""}function getHints(e,r){if(likeNumber(e)||likeInteger(e)){return s(e,r)}else if(likeString(e)){return a(e,r)}return[]}class ValidationError extends Error{constructor(e,r,t={}){super();this.name="ValidationError";this.errors=e;this.schema=r;let a;let s;if(r.title&&(!t.name||!t.baseDataPath)){const e=r.title.match(/^(.+) (.+)$/);if(e){if(!t.name){[,a]=e}if(!t.baseDataPath){[,,s]=e}}}this.headerName=t.name||a||"Object";this.baseDataPath=t.baseDataPath||s||"configuration";this.postFormatter=t.postFormatter||null;const i=`Invalid ${this.baseDataPath} object. ${this.headerName} has been initialized using ${getArticle(this.baseDataPath)} ${this.baseDataPath} object that does not match the API schema.\n`;this.message=`${i}${this.formatValidationErrors(e)}`;Error.captureStackTrace(this,this.constructor)}getSchemaPart(e){const r=e.split("/");let t=this.schema;for(let e=1;e{if(!s){return this.formatSchema(r,a,t)}if(t.includes(r)){return"(recursive)"}return this.formatSchema(r,a,t.concat(e))};if(hasNotInSchema(e)&&!likeObject(e)){if(canApplyNot(e.not)){a=!r;return formatInnerSchema(e.not)}const t=!e.not.not;const s=r?"":"non ";a=!r;return t?s+formatInnerSchema(e.not):formatInnerSchema(e.not)}if(e.instanceof){const{instanceof:r}=e;const t=!Array.isArray(r)?[r]:r;return t.map((e=>e==="Function"?"function":e)).join(" | ")}if(e.enum){return e.enum.map((e=>JSON.stringify(e))).join(" | ")}if(typeof e.const!=="undefined"){return JSON.stringify(e.const)}if(e.oneOf){return e.oneOf.map((e=>formatInnerSchema(e,true))).join(" | ")}if(e.anyOf){return e.anyOf.map((e=>formatInnerSchema(e,true))).join(" | ")}if(e.allOf){return e.allOf.map((e=>formatInnerSchema(e,true))).join(" & ")}if(e.if){const{if:r,then:t,else:a}=e;return`${r?`if ${formatInnerSchema(r)}`:""}${t?` then ${formatInnerSchema(t)}`:""}${a?` else ${formatInnerSchema(a)}`:""}`}if(e.$ref){return formatInnerSchema(this.getSchemaPart(e.$ref),true)}if(likeNumber(e)||likeInteger(e)){const[t,...a]=getHints(e,r);const s=`${t}${a.length>0?` ${formatHints(a)}`:""}`;return r?s:a.length>0?`non-${t} | ${s}`:`non-${t}`}if(likeString(e)){const[t,...a]=getHints(e,r);const s=`${t}${a.length>0?` ${formatHints(a)}`:""}`;return r?s:s==="string"?"non-string":`non-string | ${s}`}if(likeBoolean(e)){return`${r?"":"non-"}boolean`}if(likeArray(e)){a=true;const r=[];if(typeof e.minItems==="number"){r.push(`should not have fewer than ${e.minItems} item${e.minItems>1?"s":""}`)}if(typeof e.maxItems==="number"){r.push(`should not have more than ${e.maxItems} item${e.maxItems>1?"s":""}`)}if(e.uniqueItems){r.push("should not have duplicate items")}const t=typeof e.additionalItems==="undefined"||Boolean(e.additionalItems);let s="";if(e.items){if(Array.isArray(e.items)&&e.items.length>0){s=`${e.items.map((e=>formatInnerSchema(e))).join(", ")}`;if(t){if(e.additionalItems&&isObject(e.additionalItems)&&Object.keys(e.additionalItems).length>0){r.push(`additional items should be ${formatInnerSchema(e.additionalItems)}`)}}}else if(e.items&&Object.keys(e.items).length>0){s=`${formatInnerSchema(e.items)}`}else{s="any"}}else{s="any"}if(e.contains&&Object.keys(e.contains).length>0){r.push(`should contains at least one ${this.formatSchema(e.contains)} item`)}return`[${s}${t?", ...":""}]${r.length>0?` (${r.join(", ")})`:""}`}if(likeObject(e)){a=true;const r=[];if(typeof e.minProperties==="number"){r.push(`should not have fewer than ${e.minProperties} ${e.minProperties>1?"properties":"property"}`)}if(typeof e.maxProperties==="number"){r.push(`should not have more than ${e.maxProperties} ${e.minProperties&&e.minProperties>1?"properties":"property"}`)}if(e.patternProperties&&Object.keys(e.patternProperties).length>0){const t=Object.keys(e.patternProperties);r.push(`additional property names should match pattern${t.length>1?"s":""} ${t.map((e=>JSON.stringify(e))).join(" | ")}`)}const t=e.properties?Object.keys(e.properties):[];const s=e.required?e.required:[];const i=[...new Set([].concat(s).concat(t))];const o=i.map((e=>{const r=s.includes(e);return`${e}${r?"":"?"}`})).concat(typeof e.additionalProperties==="undefined"||Boolean(e.additionalProperties)?e.additionalProperties&&isObject(e.additionalProperties)?[`: ${formatInnerSchema(e.additionalProperties)}`]:["…"]:[]).join(", ");const{dependencies:n,propertyNames:l,patternRequired:u}=e;if(n){Object.keys(n).forEach((e=>{const t=n[e];if(Array.isArray(t)){r.push(`should have ${t.length>1?"properties":"property"} ${t.map((e=>`'${e}'`)).join(", ")} when property '${e}' is present`)}else{r.push(`should be valid according to the schema ${formatInnerSchema(t)} when property '${e}' is present`)}}))}if(l&&Object.keys(l).length>0){r.push(`each property name should match format ${JSON.stringify(e.propertyNames.format)}`)}if(u&&u.length>0){r.push(`should have property matching pattern ${u.map((e=>JSON.stringify(e)))}`)}return`object {${o?` ${o} `:""}}${r.length>0?` (${r.join(", ")})`:""}`}if(likeNull(e)){return`${r?"":"non-"}null`}if(Array.isArray(e.type)){return`${e.type.join(" | ")}`}return JSON.stringify(e,null,2)}getSchemaPartText(e,r,t=false,a=true){if(!e){return""}if(Array.isArray(r)){for(let t=0;t ${e.description}`}return s}getSchemaPartDescription(e){if(!e){return""}while(e.$ref){e=this.getSchemaPart(e.$ref)}if(e.description){return`\n-> ${e.description}`}return""}formatValidationError(e){const{keyword:r,dataPath:t}=e;const a=`${this.baseDataPath}${t}`;switch(r){case"type":{const{parentSchema:r,params:t}=e;switch(t.type){case"number":return`${a} should be a ${this.getSchemaPartText(r,false,true)}`;case"integer":return`${a} should be a ${this.getSchemaPartText(r,false,true)}`;case"string":return`${a} should be a ${this.getSchemaPartText(r,false,true)}`;case"boolean":return`${a} should be a ${this.getSchemaPartText(r,false,true)}`;case"array":return`${a} should be an array:\n${this.getSchemaPartText(r)}`;case"object":return`${a} should be an object:\n${this.getSchemaPartText(r)}`;case"null":return`${a} should be a ${this.getSchemaPartText(r,false,true)}`;default:return`${a} should be:\n${this.getSchemaPartText(r)}`}}case"instanceof":{const{parentSchema:r}=e;return`${a} should be an instance of ${this.getSchemaPartText(r,false,true)}`}case"pattern":{const{params:r,parentSchema:t}=e;const{pattern:s}=r;return`${a} should match pattern ${JSON.stringify(s)}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"format":{const{params:r,parentSchema:t}=e;const{format:s}=r;return`${a} should match format ${JSON.stringify(s)}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"formatMinimum":case"formatMaximum":{const{params:r,parentSchema:t}=e;const{comparison:s,limit:i}=r;return`${a} should be ${s} ${JSON.stringify(i)}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"minimum":case"maximum":case"exclusiveMinimum":case"exclusiveMaximum":{const{parentSchema:r,params:t}=e;const{comparison:s,limit:i}=t;const[,...o]=getHints(r,true);if(o.length===0){o.push(`should be ${s} ${i}`)}return`${a} ${o.join(" ")}${getSchemaNonTypes(r)}.${this.getSchemaPartDescription(r)}`}case"multipleOf":{const{params:r,parentSchema:t}=e;const{multipleOf:s}=r;return`${a} should be multiple of ${s}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"patternRequired":{const{params:r,parentSchema:t}=e;const{missingPattern:s}=r;return`${a} should have property matching pattern ${JSON.stringify(s)}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"minLength":{const{params:r,parentSchema:t}=e;const{limit:s}=r;if(s===1){return`${a} should be an non-empty string${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}const i=s-1;return`${a} should be longer than ${i} character${i>1?"s":""}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"minItems":{const{params:r,parentSchema:t}=e;const{limit:s}=r;if(s===1){return`${a} should be an non-empty array${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}return`${a} should not have fewer than ${s} items${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"minProperties":{const{params:r,parentSchema:t}=e;const{limit:s}=r;if(s===1){return`${a} should be an non-empty object${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}return`${a} should not have fewer than ${s} properties${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"maxLength":{const{params:r,parentSchema:t}=e;const{limit:s}=r;const i=s+1;return`${a} should be shorter than ${i} character${i>1?"s":""}${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"maxItems":{const{params:r,parentSchema:t}=e;const{limit:s}=r;return`${a} should not have more than ${s} items${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"maxProperties":{const{params:r,parentSchema:t}=e;const{limit:s}=r;return`${a} should not have more than ${s} properties${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"uniqueItems":{const{params:r,parentSchema:t}=e;const{i:s}=r;return`${a} should not contain the item '${e.data[s]}' twice${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"additionalItems":{const{params:r,parentSchema:t}=e;const{limit:s}=r;return`${a} should not have more than ${s} items${getSchemaNonTypes(t)}. These items are valid:\n${this.getSchemaPartText(t)}`}case"contains":{const{parentSchema:r}=e;return`${a} should contains at least one ${this.getSchemaPartText(r,["contains"])} item${getSchemaNonTypes(r)}.`}case"required":{const{parentSchema:r,params:t}=e;const s=t.missingProperty.replace(/^\./,"");const i=r&&Boolean(r.properties&&r.properties[s]);return`${a} misses the property '${s}'${getSchemaNonTypes(r)}.${i?` Should be:\n${this.getSchemaPartText(r,["properties",s])}`:this.getSchemaPartDescription(r)}`}case"additionalProperties":{const{params:r,parentSchema:t}=e;const{additionalProperty:s}=r;return`${a} has an unknown property '${s}'${getSchemaNonTypes(t)}. These properties are valid:\n${this.getSchemaPartText(t)}`}case"dependencies":{const{params:r,parentSchema:t}=e;const{property:s,deps:i}=r;const o=i.split(",").map((e=>`'${e.trim()}'`)).join(", ");return`${a} should have properties ${o} when property '${s}' is present${getSchemaNonTypes(t)}.${this.getSchemaPartDescription(t)}`}case"propertyNames":{const{params:r,parentSchema:t,schema:s}=e;const{propertyName:i}=r;return`${a} property name '${i}' is invalid${getSchemaNonTypes(t)}. Property names should be match format ${JSON.stringify(s.format)}.${this.getSchemaPartDescription(t)}`}case"enum":{const{parentSchema:r}=e;if(r&&r.enum&&r.enum.length===1){return`${a} should be ${this.getSchemaPartText(r,false,true)}`}return`${a} should be one of these:\n${this.getSchemaPartText(r)}`}case"const":{const{parentSchema:r}=e;return`${a} should be equal to constant ${this.getSchemaPartText(r,false,true)}`}case"not":{const r=likeObject(e.parentSchema)?`\n${this.getSchemaPartText(e.parentSchema)}`:"";const t=this.getSchemaPartText(e.schema,false,false,false);if(canApplyNot(e.schema)){return`${a} should be any ${t}${r}.`}const{schema:s,parentSchema:i}=e;return`${a} should not be ${this.getSchemaPartText(s,false,true)}${i&&likeObject(i)?`\n${this.getSchemaPartText(i)}`:""}`}case"oneOf":case"anyOf":{const{parentSchema:r,children:t}=e;if(t&&t.length>0){if(e.schema.length===1){const e=t[t.length-1];const a=t.slice(0,t.length-1);return this.formatValidationError(Object.assign({},e,{children:a,parentSchema:Object.assign({},r,e.parentSchema)}))}let s=filterChildren(t);if(s.length===1){return this.formatValidationError(s[0])}s=groupChildrenByFirstChild(s);return`${a} should be one of these:\n${this.getSchemaPartText(r)}\nDetails:\n${s.map((e=>` * ${indent(this.formatValidationError(e)," ")}`)).join("\n")}`}return`${a} should be one of these:\n${this.getSchemaPartText(r)}`}case"if":{const{params:r,parentSchema:t}=e;const{failingKeyword:s}=r;return`${a} should match "${s}" schema:\n${this.getSchemaPartText(t,[s])}`}case"absolutePath":{const{message:r,parentSchema:t}=e;return`${a}: ${r}${this.getSchemaPartDescription(t)}`}default:{const{message:r,parentSchema:t}=e;const s=JSON.stringify(e,null,2);return`${a} ${r} (${s}).\n${this.getSchemaPartText(t,false)}`}}}formatValidationErrors(e){return e.map((e=>{let r=this.formatValidationError(e);if(this.postFormatter){r=this.postFormatter(r,e)}return` - ${indent(r," ")}`})).join("\n")}}var o=ValidationError;r["default"]=o},5534:(e,r,t)=>{"use strict";const{validate:a,ValidationError:s}=t(1110);e.exports={validate:a,ValidationError:s}},3314:(e,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:true});r["default"]=void 0;function errorMessage(e,r,t){return{dataPath:undefined,schemaPath:undefined,keyword:"absolutePath",params:{absolutePath:t},message:e,parentSchema:r}}function getErrorFor(e,r,t){const a=e?`The provided value ${JSON.stringify(t)} is not an absolute path!`:`A relative path is expected. However, the provided value ${JSON.stringify(t)} is an absolute path!`;return errorMessage(a,r,t)}function addAbsolutePathKeyword(e){e.addKeyword("absolutePath",{errors:true,type:"string",compile(e,r){const callback=t=>{let a=true;const s=t.includes("!");if(s){callback.errors=[errorMessage(`The provided value ${JSON.stringify(t)} contains exclamation mark (!) which is not allowed because it's reserved for loader syntax.`,r,t)];a=false}const i=e===/^(?:[A-Za-z]:(\\|\/)|\\\\|\/)/.test(t);if(!i){callback.errors=[getErrorFor(e,r,t)];a=false}return a};callback.errors=[];return callback}});return e}var t=addAbsolutePathKeyword;r["default"]=t},8275:e=>{"use strict";class Range{static getOperator(e,r){if(e==="left"){return r?">":">="}return r?"<":"<="}static formatRight(e,r,t){if(r===false){return Range.formatLeft(e,!r,!t)}return`should be ${Range.getOperator("right",t)} ${e}`}static formatLeft(e,r,t){if(r===false){return Range.formatRight(e,!r,!t)}return`should be ${Range.getOperator("left",t)} ${e}`}static formatRange(e,r,t,a,s){let i="should be";i+=` ${Range.getOperator(s?"left":"right",s?t:!t)} ${e} `;i+=s?"and":"or";i+=` ${Range.getOperator(s?"right":"left",s?a:!a)} ${r}`;return i}static getRangeValue(e,r){let t=r?Infinity:-Infinity;let a=-1;const s=r?([e])=>e<=t:([e])=>e>=t;for(let r=0;r-1){return e[a]}return[Infinity,true]}constructor(){this._left=[];this._right=[]}left(e,r=false){this._left.push([e,r])}right(e,r=false){this._right.push([e,r])}format(e=true){const[r,t]=Range.getRangeValue(this._left,e);const[a,s]=Range.getRangeValue(this._right,!e);if(!Number.isFinite(r)&&!Number.isFinite(a)){return""}const i=t?r+1:r;const o=s?a-1:a;if(i===o){return`should be ${e?"":"!"}= ${i}`}if(Number.isFinite(r)&&!Number.isFinite(a)){return Range.formatLeft(r,e,t)}if(!Number.isFinite(r)&&Number.isFinite(a)){return Range.formatRight(a,e,s)}return Range.formatRange(r,a,t,s,e)}}e.exports=Range},7931:(e,r,t)=>{"use strict";const a=t(8275);e.exports.stringHints=function stringHints(e,r){const t=[];let a="string";const s={...e};if(!r){const e=s.minLength;const r=s.formatMinimum;const t=s.formatExclusiveMaximum;s.minLength=s.maxLength;s.maxLength=e;s.formatMinimum=s.formatMaximum;s.formatMaximum=r;s.formatExclusiveMaximum=!s.formatExclusiveMinimum;s.formatExclusiveMinimum=!t}if(typeof s.minLength==="number"){if(s.minLength===1){a="non-empty string"}else{const e=Math.max(s.minLength-1,0);t.push(`should be longer than ${e} character${e>1?"s":""}`)}}if(typeof s.maxLength==="number"){if(s.maxLength===0){a="empty string"}else{const e=s.maxLength+1;t.push(`should be shorter than ${e} character${e>1?"s":""}`)}}if(s.pattern){t.push(`should${r?"":" not"} match pattern ${JSON.stringify(s.pattern)}`)}if(s.format){t.push(`should${r?"":" not"} match format ${JSON.stringify(s.format)}`)}if(s.formatMinimum){t.push(`should be ${s.formatExclusiveMinimum?">":">="} ${JSON.stringify(s.formatMinimum)}`)}if(s.formatMaximum){t.push(`should be ${s.formatExclusiveMaximum?"<":"<="} ${JSON.stringify(s.formatMaximum)}`)}return[a].concat(t)};e.exports.numberHints=function numberHints(e,r){const t=[e.type==="integer"?"integer":"number"];const s=new a;if(typeof e.minimum==="number"){s.left(e.minimum)}if(typeof e.exclusiveMinimum==="number"){s.left(e.exclusiveMinimum,true)}if(typeof e.maximum==="number"){s.right(e.maximum)}if(typeof e.exclusiveMaximum==="number"){s.right(e.exclusiveMaximum,true)}const i=s.format(r);if(i){t.push(i)}if(typeof e.multipleOf==="number"){t.push(`should${r?"":" not"} be multiple of ${e.multipleOf}`)}return t}},1110:(e,r,t)=>{"use strict";Object.defineProperty(r,"__esModule",{value:true});r.validate=validate;Object.defineProperty(r,"ValidationError",{enumerable:true,get:function(){return s.default}});var a=_interopRequireDefault(t(3314));var s=_interopRequireDefault(t(385));function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}const i=t(6474);const o=t(6544);const n=new i({allErrors:true,verbose:true,$data:true});o(n,["instanceof","formatMinimum","formatMaximum","patternRequired"]);(0,a.default)(n);function validate(e,r,t){let a=[];if(Array.isArray(r)){a=Array.from(r,(r=>validateObject(e,r)));a.forEach(((e,r)=>{const applyPrefix=e=>{e.dataPath=`[${r}]${e.dataPath}`;if(e.children){e.children.forEach(applyPrefix)}};e.forEach(applyPrefix)}));a=a.reduce(((e,r)=>{e.push(...r);return e}),[])}else{a=validateObject(e,r)}if(a.length>0){throw new s.default(a,e,t)}}function validateObject(e,r){const t=n.compile(e);const a=t(r);if(a)return[];return t.errors?filterErrors(t.errors):[]}function filterErrors(e){let r=[];for(const t of e){const{dataPath:e}=t;let a=[];r=r.filter((r=>{if(r.dataPath.includes(e)){if(r.children){a=a.concat(r.children.slice(0))}r.children=undefined;a.push(r);return false}return true}));if(a.length){t.children=a}r.push(t)}return r}},4856:function(e,r){ +/** @license URI.js v4.4.1 (c) 2011 Gary Court. License: http://github.com/garycourt/uri-js */ +(function(e,t){true?t(r):0})(this,(function(e){"use strict";function merge(){for(var e=arguments.length,r=Array(e),t=0;t1){r[0]=r[0].slice(0,-1);var a=r.length-1;for(var s=1;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"};var y=i-o;var P=Math.floor;var b=String.fromCharCode;function error$1(e){throw new RangeError(g[e])}function map(e,r){var t=[];var a=e.length;while(a--){t[a]=r(e[a])}return t}function mapDomain(e,r){var t=e.split("@");var a="";if(t.length>1){a=t[0]+"@";e=t[1]}e=e.replace(m,".");var s=e.split(".");var i=map(s,r).join(".");return a+i}function ucs2decode(e){var r=[];var t=0;var a=e.length;while(t=55296&&s<=56319&&t>1;e+=P(e/r);for(;e>y*n>>1;a+=i){e=P(e/y)}return P(a+(y+1)*e/(e+l))};var $=function decode(e){var r=[];var t=e.length;var a=0;var l=c;var u=f;var d=e.lastIndexOf(h);if(d<0){d=0}for(var p=0;p=128){error$1("not-basic")}r.push(e.charCodeAt(p))}for(var m=d>0?d+1:0;m=t){error$1("invalid-input")}var E=S(e.charCodeAt(m++));if(E>=i||E>P((s-a)/y)){error$1("overflow")}a+=E*y;var w=b<=u?o:b>=u+n?n:b-u;if(EP(s/$)){error$1("overflow")}y*=$}var _=r.length+1;u=x(a-g,_,g==0);if(P(a/_)>s-l){error$1("overflow")}l+=P(a/_);a%=_;r.splice(a++,0,l)}return String.fromCodePoint.apply(String,r)};var _=function encode(e){var r=[];e=ucs2decode(e);var t=e.length;var a=c;var l=0;var u=f;var d=true;var p=false;var m=undefined;try{for(var g=e[Symbol.iterator](),y;!(d=(y=g.next()).done);d=true){var E=y.value;if(E<128){r.push(b(E))}}}catch(e){p=true;m=e}finally{try{if(!d&&g.return){g.return()}}finally{if(p){throw m}}}var S=r.length;var $=S;if(S){r.push(h)}while($=a&&I<_){_=I}}}catch(e){F=true;O=e}finally{try{if(!R&&D.return){D.return()}}finally{if(F){throw O}}}var k=$+1;if(_-a>P((s-l)/k)){error$1("overflow")}l+=(_-a)*k;a=_;var C=true;var A=false;var N=undefined;try{for(var T=e[Symbol.iterator](),L;!(C=(L=T.next()).done);C=true){var q=L.value;if(qs){error$1("overflow")}if(q==a){var z=l;for(var M=i;;M+=i){var U=M<=u?o:M>=u+n?n:M-u;if(z>6|192).toString(16).toUpperCase()+"%"+(r&63|128).toString(16).toUpperCase();else t="%"+(r>>12|224).toString(16).toUpperCase()+"%"+(r>>6&63|128).toString(16).toUpperCase()+"%"+(r&63|128).toString(16).toUpperCase();return t}function pctDecChars(e){var r="";var t=0;var a=e.length;while(t=194&&s<224){if(a-t>=6){var i=parseInt(e.substr(t+4,2),16);r+=String.fromCharCode((s&31)<<6|i&63)}else{r+=e.substr(t,6)}t+=6}else if(s>=224){if(a-t>=9){var o=parseInt(e.substr(t+4,2),16);var n=parseInt(e.substr(t+7,2),16);r+=String.fromCharCode((s&15)<<12|(o&63)<<6|n&63)}else{r+=e.substr(t,9)}t+=9}else{r+=e.substr(t,3);t+=3}}return r}function _normalizeComponentEncoding(e,r){function decodeUnreserved(e){var t=pctDecChars(e);return!t.match(r.UNRESERVED)?e:t}if(e.scheme)e.scheme=String(e.scheme).replace(r.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(r.NOT_SCHEME,"");if(e.userinfo!==undefined)e.userinfo=String(e.userinfo).replace(r.PCT_ENCODED,decodeUnreserved).replace(r.NOT_USERINFO,pctEncChar).replace(r.PCT_ENCODED,toUpperCase);if(e.host!==undefined)e.host=String(e.host).replace(r.PCT_ENCODED,decodeUnreserved).toLowerCase().replace(r.NOT_HOST,pctEncChar).replace(r.PCT_ENCODED,toUpperCase);if(e.path!==undefined)e.path=String(e.path).replace(r.PCT_ENCODED,decodeUnreserved).replace(e.scheme?r.NOT_PATH:r.NOT_PATH_NOSCHEME,pctEncChar).replace(r.PCT_ENCODED,toUpperCase);if(e.query!==undefined)e.query=String(e.query).replace(r.PCT_ENCODED,decodeUnreserved).replace(r.NOT_QUERY,pctEncChar).replace(r.PCT_ENCODED,toUpperCase);if(e.fragment!==undefined)e.fragment=String(e.fragment).replace(r.PCT_ENCODED,decodeUnreserved).replace(r.NOT_FRAGMENT,pctEncChar).replace(r.PCT_ENCODED,toUpperCase);return e}function _stripLeadingZeros(e){return e.replace(/^0*(.*)/,"$1")||"0"}function _normalizeIPv4(e,r){var t=e.match(r.IPV4ADDRESS)||[];var s=a(t,2),i=s[1];if(i){return i.split(".").map(_stripLeadingZeros).join(".")}else{return e}}function _normalizeIPv6(e,r){var t=e.match(r.IPV6ADDRESS)||[];var s=a(t,3),i=s[1],o=s[2];if(i){var n=i.toLowerCase().split("::").reverse(),l=a(n,2),u=l[0],f=l[1];var c=f?f.split(":").map(_stripLeadingZeros):[];var h=u.split(":").map(_stripLeadingZeros);var d=r.IPV4ADDRESS.test(h[h.length-1]);var p=d?7:8;var m=h.length-p;var g=Array(p);for(var y=0;y1){var S=g.slice(0,b.index);var w=g.slice(b.index+b.length);E=S.join(":")+"::"+w.join(":")}else{E=g.join(":")}if(o){E+="%"+o}return E}else{return e}}var j=/^(?:([^:\/?#]+):)?(?:\/\/((?:([^\/?#@]*)@)?(\[[^\/?#\]]+\]|[^\/?#:]*)(?:\:(\d*))?))?([^?#]*)(?:\?([^#]*))?(?:#((?:.|\n|\r)*))?/i;var I="".match(/(){0}/)[1]===undefined;function parse(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var s={};var i=a.iri!==false?t:r;if(a.reference==="suffix")e=(a.scheme?a.scheme+":":"")+"//"+e;var o=e.match(j);if(o){if(I){s.scheme=o[1];s.userinfo=o[3];s.host=o[4];s.port=parseInt(o[5],10);s.path=o[6]||"";s.query=o[7];s.fragment=o[8];if(isNaN(s.port)){s.port=o[5]}}else{s.scheme=o[1]||undefined;s.userinfo=e.indexOf("@")!==-1?o[3]:undefined;s.host=e.indexOf("//")!==-1?o[4]:undefined;s.port=parseInt(o[5],10);s.path=o[6]||"";s.query=e.indexOf("?")!==-1?o[7]:undefined;s.fragment=e.indexOf("#")!==-1?o[8]:undefined;if(isNaN(s.port)){s.port=e.match(/\/\/(?:.|\n)*\:(?:\/|\?|\#|$)/)?o[4]:undefined}}if(s.host){s.host=_normalizeIPv6(_normalizeIPv4(s.host,i),i)}if(s.scheme===undefined&&s.userinfo===undefined&&s.host===undefined&&s.port===undefined&&!s.path&&s.query===undefined){s.reference="same-document"}else if(s.scheme===undefined){s.reference="relative"}else if(s.fragment===undefined){s.reference="absolute"}else{s.reference="uri"}if(a.reference&&a.reference!=="suffix"&&a.reference!==s.reference){s.error=s.error||"URI is not a "+a.reference+" reference."}var n=D[(a.scheme||s.scheme||"").toLowerCase()];if(!a.unicodeSupport&&(!n||!n.unicodeSupport)){if(s.host&&(a.domainHost||n&&n.domainHost)){try{s.host=O.toASCII(s.host.replace(i.PCT_ENCODED,pctDecChars).toLowerCase())}catch(e){s.error=s.error||"Host's domain name can not be converted to ASCII via punycode: "+e}}_normalizeComponentEncoding(s,r)}else{_normalizeComponentEncoding(s,i)}if(n&&n.parse){n.parse(s,a)}}else{s.error=s.error||"URI can not be parsed."}return s}function _recomposeAuthority(e,a){var s=a.iri!==false?t:r;var i=[];if(e.userinfo!==undefined){i.push(e.userinfo);i.push("@")}if(e.host!==undefined){i.push(_normalizeIPv6(_normalizeIPv4(String(e.host),s),s).replace(s.IPV6ADDRESS,(function(e,r,t){return"["+r+(t?"%25"+t:"")+"]"})))}if(typeof e.port==="number"||typeof e.port==="string"){i.push(":");i.push(String(e.port))}return i.length?i.join(""):undefined}var k=/^\.\.?\//;var C=/^\/\.(\/|$)/;var A=/^\/\.\.(\/|$)/;var N=/^\/?(?:.|\n)*?(?=\/|$)/;function removeDotSegments(e){var r=[];while(e.length){if(e.match(k)){e=e.replace(k,"")}else if(e.match(C)){e=e.replace(C,"/")}else if(e.match(A)){e=e.replace(A,"/");r.pop()}else if(e==="."||e===".."){e=""}else{var t=e.match(N);if(t){var a=t[0];e=e.slice(a.length);r.push(a)}else{throw new Error("Unexpected dot segment condition")}}}return r.join("")}function serialize(e){var a=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};var s=a.iri?t:r;var i=[];var o=D[(a.scheme||e.scheme||"").toLowerCase()];if(o&&o.serialize)o.serialize(e,a);if(e.host){if(s.IPV6ADDRESS.test(e.host)){}else if(a.domainHost||o&&o.domainHost){try{e.host=!a.iri?O.toASCII(e.host.replace(s.PCT_ENCODED,pctDecChars).toLowerCase()):O.toUnicode(e.host)}catch(r){e.error=e.error||"Host's domain name can not be converted to "+(!a.iri?"ASCII":"Unicode")+" via punycode: "+r}}}_normalizeComponentEncoding(e,s);if(a.reference!=="suffix"&&e.scheme){i.push(e.scheme);i.push(":")}var n=_recomposeAuthority(e,a);if(n!==undefined){if(a.reference!=="suffix"){i.push("//")}i.push(n);if(e.path&&e.path.charAt(0)!=="/"){i.push("/")}}if(e.path!==undefined){var l=e.path;if(!a.absolutePath&&(!o||!o.absolutePath)){l=removeDotSegments(l)}if(n===undefined){l=l.replace(/^\/\//,"/%2F")}i.push(l)}if(e.query!==undefined){i.push("?");i.push(e.query)}if(e.fragment!==undefined){i.push("#");i.push(e.fragment)}return i.join("")}function resolveComponents(e,r){var t=arguments.length>2&&arguments[2]!==undefined?arguments[2]:{};var a=arguments[3];var s={};if(!a){e=parse(serialize(e,t),t);r=parse(serialize(r,t),t)}t=t||{};if(!t.tolerant&&r.scheme){s.scheme=r.scheme;s.userinfo=r.userinfo;s.host=r.host;s.port=r.port;s.path=removeDotSegments(r.path||"");s.query=r.query}else{if(r.userinfo!==undefined||r.host!==undefined||r.port!==undefined){s.userinfo=r.userinfo;s.host=r.host;s.port=r.port;s.path=removeDotSegments(r.path||"");s.query=r.query}else{if(!r.path){s.path=e.path;if(r.query!==undefined){s.query=r.query}else{s.query=e.query}}else{if(r.path.charAt(0)==="/"){s.path=removeDotSegments(r.path)}else{if((e.userinfo!==undefined||e.host!==undefined||e.port!==undefined)&&!e.path){s.path="/"+r.path}else if(!e.path){s.path=r.path}else{s.path=e.path.slice(0,e.path.lastIndexOf("/")+1)+r.path}s.path=removeDotSegments(s.path)}s.query=r.query}s.userinfo=e.userinfo;s.host=e.host;s.port=e.port}s.scheme=e.scheme}s.fragment=r.fragment;return s}function resolve(e,r,t){var a=assign({scheme:"null"},t);return serialize(resolveComponents(parse(e,a),parse(r,a),a,true),a)}function normalize(e,r){if(typeof e==="string"){e=serialize(parse(e,r),r)}else if(typeOf(e)==="object"){e=parse(serialize(e,r),r)}return e}function equal(e,r,t){if(typeof e==="string"){e=serialize(parse(e,t),t)}else if(typeOf(e)==="object"){e=serialize(e,t)}if(typeof r==="string"){r=serialize(parse(r,t),t)}else if(typeOf(r)==="object"){r=serialize(r,t)}return e===r}function escapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?r.ESCAPE:t.ESCAPE,pctEncChar)}function unescapeComponent(e,a){return e&&e.toString().replace(!a||!a.iri?r.PCT_ENCODED:t.PCT_ENCODED,pctDecChars)}var T={scheme:"http",domainHost:true,parse:function parse(e,r){if(!e.host){e.error=e.error||"HTTP URIs must have a host."}return e},serialize:function serialize(e,r){var t=String(e.scheme).toLowerCase()==="https";if(e.port===(t?443:80)||e.port===""){e.port=undefined}if(!e.path){e.path="/"}return e}};var L={scheme:"https",domainHost:T.domainHost,parse:T.parse,serialize:T.serialize};function isSecure(e){return typeof e.secure==="boolean"?e.secure:String(e.scheme).toLowerCase()==="wss"}var q={scheme:"ws",domainHost:true,parse:function parse(e,r){var t=e;t.secure=isSecure(t);t.resourceName=(t.path||"/")+(t.query?"?"+t.query:"");t.path=undefined;t.query=undefined;return t},serialize:function serialize(e,r){if(e.port===(isSecure(e)?443:80)||e.port===""){e.port=undefined}if(typeof e.secure==="boolean"){e.scheme=e.secure?"wss":"ws";e.secure=undefined}if(e.resourceName){var t=e.resourceName.split("?"),s=a(t,2),i=s[0],o=s[1];e.path=i&&i!=="/"?i:undefined;e.query=o;e.resourceName=undefined}e.fragment=undefined;return e}};var z={scheme:"wss",domainHost:q.domainHost,parse:q.parse,serialize:q.serialize};var M={};var U=true;var V="[A-Za-z0-9\\-\\.\\_\\~"+(U?"\\xA0-\\u200D\\u2010-\\u2029\\u202F-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF":"")+"]";var Q="[0-9A-Fa-f]";var K=subexp(subexp("%[EFef]"+Q+"%"+Q+Q+"%"+Q+Q)+"|"+subexp("%[89A-Fa-f]"+Q+"%"+Q+Q)+"|"+subexp("%"+Q+Q));var H="[A-Za-z0-9\\!\\$\\%\\'\\*\\+\\-\\^\\_\\`\\{\\|\\}\\~]";var J="[\\!\\$\\%\\'\\(\\)\\*\\+\\,\\-\\.0-9\\<\\>A-Z\\x5E-\\x7E]";var B=merge(J,'[\\"\\\\]');var Z="[\\!\\$\\'\\(\\)\\*\\+\\,\\;\\:\\@]";var G=new RegExp(V,"g");var Y=new RegExp(K,"g");var W=new RegExp(merge("[^]",H,"[\\.]",'[\\"]',B),"g");var X=new RegExp(merge("[^]",V,Z),"g");var ee=X;function decodeUnreserved(e){var r=pctDecChars(e);return!r.match(G)?e:r}var re={scheme:"mailto",parse:function parse$$1(e,r){var t=e;var a=t.to=t.path?t.path.split(","):[];t.path=undefined;if(t.query){var s=false;var i={};var o=t.query.split("&");for(var n=0,l=o.length;n{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"https://raw.githubusercontent.com/ajv-validator/ajv/master/lib/refs/data.json#","description":"Meta-schema for $data reference (JSON Schema extension proposal)","type":"object","required":["$data"],"properties":{"$data":{"type":"string","anyOf":[{"format":"relative-json-pointer"},{"format":"json-pointer"}]}},"additionalProperties":false}')},7136:e=>{"use strict";e.exports=JSON.parse('{"$schema":"http://json-schema.org/draft-07/schema#","$id":"http://json-schema.org/draft-07/schema#","title":"Core schema meta-schema","definitions":{"schemaArray":{"type":"array","minItems":1,"items":{"$ref":"#"}},"nonNegativeInteger":{"type":"integer","minimum":0},"nonNegativeIntegerDefault0":{"allOf":[{"$ref":"#/definitions/nonNegativeInteger"},{"default":0}]},"simpleTypes":{"enum":["array","boolean","integer","null","number","object","string"]},"stringArray":{"type":"array","items":{"type":"string"},"uniqueItems":true,"default":[]}},"type":["object","boolean"],"properties":{"$id":{"type":"string","format":"uri-reference"},"$schema":{"type":"string","format":"uri"},"$ref":{"type":"string","format":"uri-reference"},"$comment":{"type":"string"},"title":{"type":"string"},"description":{"type":"string"},"default":true,"readOnly":{"type":"boolean","default":false},"examples":{"type":"array","items":true},"multipleOf":{"type":"number","exclusiveMinimum":0},"maximum":{"type":"number"},"exclusiveMaximum":{"type":"number"},"minimum":{"type":"number"},"exclusiveMinimum":{"type":"number"},"maxLength":{"$ref":"#/definitions/nonNegativeInteger"},"minLength":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"pattern":{"type":"string","format":"regex"},"additionalItems":{"$ref":"#"},"items":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/schemaArray"}],"default":true},"maxItems":{"$ref":"#/definitions/nonNegativeInteger"},"minItems":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"uniqueItems":{"type":"boolean","default":false},"contains":{"$ref":"#"},"maxProperties":{"$ref":"#/definitions/nonNegativeInteger"},"minProperties":{"$ref":"#/definitions/nonNegativeIntegerDefault0"},"required":{"$ref":"#/definitions/stringArray"},"additionalProperties":{"$ref":"#"},"definitions":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"properties":{"type":"object","additionalProperties":{"$ref":"#"},"default":{}},"patternProperties":{"type":"object","additionalProperties":{"$ref":"#"},"propertyNames":{"format":"regex"},"default":{}},"dependencies":{"type":"object","additionalProperties":{"anyOf":[{"$ref":"#"},{"$ref":"#/definitions/stringArray"}]}},"propertyNames":{"$ref":"#"},"const":true,"enum":{"type":"array","items":true,"minItems":1,"uniqueItems":true},"type":{"anyOf":[{"$ref":"#/definitions/simpleTypes"},{"type":"array","items":{"$ref":"#/definitions/simpleTypes"},"minItems":1,"uniqueItems":true}]},"format":{"type":"string"},"contentMediaType":{"type":"string"},"contentEncoding":{"type":"string"},"if":{"$ref":"#"},"then":{"$ref":"#"},"else":{"$ref":"#"},"allOf":{"$ref":"#/definitions/schemaArray"},"anyOf":{"$ref":"#/definitions/schemaArray"},"oneOf":{"$ref":"#/definitions/schemaArray"},"not":{"$ref":"#"}},"default":true}')}};var r={};function __nccwpck_require__(t){var a=r[t];if(a!==undefined){return a.exports}var s=r[t]={exports:{}};var i=true;try{e[t].call(s.exports,s,s.exports,__nccwpck_require__);i=false}finally{if(i)delete r[t]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(5534);module.exports=t})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/schema-utils3/package.json b/cli/app/node_modules/next/dist/compiled/schema-utils3/package.json new file mode 100644 index 00000000000..7e59cb8bf75 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/schema-utils3/package.json @@ -0,0 +1 @@ +{"name":"schema-utils","main":"index.js","author":"webpack Contrib (https://github.com/webpack-contrib)","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/semver/index.js b/cli/app/node_modules/next/dist/compiled/semver/index.js new file mode 100644 index 00000000000..b7f20178021 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/semver/index.js @@ -0,0 +1 @@ +(()=>{var e={842:(e,r,t)=>{const s=Symbol("SemVer ANY");class Comparator{static get ANY(){return s}constructor(e,r){if(!r||typeof r!=="object"){r={loose:!!r,includePrerelease:false}}if(e instanceof Comparator){if(e.loose===!!r.loose){return e}else{e=e.value}}a("comparator",e,r);this.options=r;this.loose=!!r.loose;this.parse(e);if(this.semver===s){this.value=""}else{this.value=this.operator+this.semver.version}a("comp",this)}parse(e){const r=this.options.loose?o[n.COMPARATORLOOSE]:o[n.COMPARATOR];const t=e.match(r);if(!t){throw new TypeError(`Invalid comparator: ${e}`)}this.operator=t[1]!==undefined?t[1]:"";if(this.operator==="="){this.operator=""}if(!t[2]){this.semver=s}else{this.semver=new l(t[2],this.options.loose)}}toString(){return this.value}test(e){a("Comparator.test",e,this.options.loose);if(this.semver===s||e===s){return true}if(typeof e==="string"){try{e=new l(e,this.options)}catch(e){return false}}return i(e,this.operator,this.semver,this.options)}intersects(e,r){if(!(e instanceof Comparator)){throw new TypeError("a Comparator is required")}if(!r||typeof r!=="object"){r={loose:!!r,includePrerelease:false}}if(this.operator===""){if(this.value===""){return true}return new c(e.value,r).test(this.value)}else if(e.operator===""){if(e.value===""){return true}return new c(this.value,r).test(e.semver)}const t=(this.operator===">="||this.operator===">")&&(e.operator===">="||e.operator===">");const s=(this.operator==="<="||this.operator==="<")&&(e.operator==="<="||e.operator==="<");const o=this.semver.version===e.semver.version;const n=(this.operator===">="||this.operator==="<=")&&(e.operator===">="||e.operator==="<=");const a=i(this.semver,"<",e.semver,r)&&(this.operator===">="||this.operator===">")&&(e.operator==="<="||e.operator==="<");const l=i(this.semver,">",e.semver,r)&&(this.operator==="<="||this.operator==="<")&&(e.operator===">="||e.operator===">");return t||s||o&&n||a||l}}e.exports=Comparator;const{re:o,t:n}=t(608);const i=t(96);const a=t(435);const l=t(834);const c=t(798)},798:(e,r,t)=>{class Range{constructor(e,r){if(!r||typeof r!=="object"){r={loose:!!r,includePrerelease:false}}if(e instanceof Range){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease){return e}else{return new Range(e.raw,r)}}if(e instanceof s){this.raw=e.value;this.set=[[e]];this.format();return this}this.options=r;this.loose=!!r.loose;this.includePrerelease=!!r.includePrerelease;this.raw=e;this.set=e.split(/\s*\|\|\s*/).map((e=>this.parseRange(e.trim()))).filter((e=>e.length));if(!this.set.length){throw new TypeError(`Invalid SemVer Range: ${e}`)}this.format()}format(){this.range=this.set.map((e=>e.join(" ").trim())).join("||").trim();return this.range}toString(){return this.range}parseRange(e){const r=this.options.loose;e=e.trim();const t=r?i[a.HYPHENRANGELOOSE]:i[a.HYPHENRANGE];e=e.replace(t,hyphenReplace(this.options.includePrerelease));o("hyphen replace",e);e=e.replace(i[a.COMPARATORTRIM],l);o("comparator trim",e,i[a.COMPARATORTRIM]);e=e.replace(i[a.TILDETRIM],c);e=e.replace(i[a.CARETTRIM],p);e=e.split(/\s+/).join(" ");const n=r?i[a.COMPARATORLOOSE]:i[a.COMPARATOR];return e.split(" ").map((e=>parseComparator(e,this.options))).join(" ").split(/\s+/).map((e=>replaceGTE0(e,this.options))).filter(this.options.loose?e=>!!e.match(n):()=>true).map((e=>new s(e,this.options)))}intersects(e,r){if(!(e instanceof Range)){throw new TypeError("a Range is required")}return this.set.some((t=>isSatisfiable(t,r)&&e.set.some((e=>isSatisfiable(e,r)&&t.every((t=>e.every((e=>t.intersects(e,r)))))))))}test(e){if(!e){return false}if(typeof e==="string"){try{e=new n(e,this.options)}catch(e){return false}}for(let r=0;r{let t=true;const s=e.slice();let o=s.pop();while(t&&s.length){t=s.every((e=>o.intersects(e,r)));o=s.pop()}return t};const parseComparator=(e,r)=>{o("comp",e,r);e=replaceCarets(e,r);o("caret",e);e=replaceTildes(e,r);o("tildes",e);e=replaceXRanges(e,r);o("xrange",e);e=replaceStars(e,r);o("stars",e);return e};const isX=e=>!e||e.toLowerCase()==="x"||e==="*";const replaceTildes=(e,r)=>e.trim().split(/\s+/).map((e=>replaceTilde(e,r))).join(" ");const replaceTilde=(e,r)=>{const t=r.loose?i[a.TILDELOOSE]:i[a.TILDE];return e.replace(t,((r,t,s,n,i)=>{o("tilde",e,r,t,s,n,i);let a;if(isX(t)){a=""}else if(isX(s)){a=`>=${t}.0.0 <${+t+1}.0.0-0`}else if(isX(n)){a=`>=${t}.${s}.0 <${t}.${+s+1}.0-0`}else if(i){o("replaceTilde pr",i);a=`>=${t}.${s}.${n}-${i} <${t}.${+s+1}.0-0`}else{a=`>=${t}.${s}.${n} <${t}.${+s+1}.0-0`}o("tilde return",a);return a}))};const replaceCarets=(e,r)=>e.trim().split(/\s+/).map((e=>replaceCaret(e,r))).join(" ");const replaceCaret=(e,r)=>{o("caret",e,r);const t=r.loose?i[a.CARETLOOSE]:i[a.CARET];const s=r.includePrerelease?"-0":"";return e.replace(t,((r,t,n,i,a)=>{o("caret",e,r,t,n,i,a);let l;if(isX(t)){l=""}else if(isX(n)){l=`>=${t}.0.0${s} <${+t+1}.0.0-0`}else if(isX(i)){if(t==="0"){l=`>=${t}.${n}.0${s} <${t}.${+n+1}.0-0`}else{l=`>=${t}.${n}.0${s} <${+t+1}.0.0-0`}}else if(a){o("replaceCaret pr",a);if(t==="0"){if(n==="0"){l=`>=${t}.${n}.${i}-${a} <${t}.${n}.${+i+1}-0`}else{l=`>=${t}.${n}.${i}-${a} <${t}.${+n+1}.0-0`}}else{l=`>=${t}.${n}.${i}-${a} <${+t+1}.0.0-0`}}else{o("no pr");if(t==="0"){if(n==="0"){l=`>=${t}.${n}.${i}${s} <${t}.${n}.${+i+1}-0`}else{l=`>=${t}.${n}.${i}${s} <${t}.${+n+1}.0-0`}}else{l=`>=${t}.${n}.${i} <${+t+1}.0.0-0`}}o("caret return",l);return l}))};const replaceXRanges=(e,r)=>{o("replaceXRanges",e,r);return e.split(/\s+/).map((e=>replaceXRange(e,r))).join(" ")};const replaceXRange=(e,r)=>{e=e.trim();const t=r.loose?i[a.XRANGELOOSE]:i[a.XRANGE];return e.replace(t,((t,s,n,i,a,l)=>{o("xRange",e,t,s,n,i,a,l);const c=isX(n);const p=c||isX(i);const E=p||isX(a);const f=E;if(s==="="&&f){s=""}l=r.includePrerelease?"-0":"";if(c){if(s===">"||s==="<"){t="<0.0.0-0"}else{t="*"}}else if(s&&f){if(p){i=0}a=0;if(s===">"){s=">=";if(p){n=+n+1;i=0;a=0}else{i=+i+1;a=0}}else if(s==="<="){s="<";if(p){n=+n+1}else{i=+i+1}}if(s==="<")l="-0";t=`${s+n}.${i}.${a}${l}`}else if(p){t=`>=${n}.0.0${l} <${+n+1}.0.0-0`}else if(E){t=`>=${n}.${i}.0${l} <${n}.${+i+1}.0-0`}o("xRange return",t);return t}))};const replaceStars=(e,r)=>{o("replaceStars",e,r);return e.trim().replace(i[a.STAR],"")};const replaceGTE0=(e,r)=>{o("replaceGTE0",e,r);return e.trim().replace(i[r.includePrerelease?a.GTE0PRE:a.GTE0],"")};const hyphenReplace=e=>(r,t,s,o,n,i,a,l,c,p,E,f,h)=>{if(isX(s)){t=""}else if(isX(o)){t=`>=${s}.0.0${e?"-0":""}`}else if(isX(n)){t=`>=${s}.${o}.0${e?"-0":""}`}else if(i){t=`>=${t}`}else{t=`>=${t}${e?"-0":""}`}if(isX(c)){l=""}else if(isX(p)){l=`<${+c+1}.0.0-0`}else if(isX(E)){l=`<${c}.${+p+1}.0-0`}else if(f){l=`<=${c}.${p}.${E}-${f}`}else if(e){l=`<${c}.${p}.${+E+1}-0`}else{l=`<=${l}`}return`${t} ${l}`.trim()};const testSet=(e,r,t)=>{for(let t=0;t0){const s=e[t].semver;if(s.major===r.major&&s.minor===r.minor&&s.patch===r.patch){return true}}}return false}return true}},834:(e,r,t)=>{const s=t(435);const{MAX_LENGTH:o,MAX_SAFE_INTEGER:n}=t(370);const{re:i,t:a}=t(608);const{compareIdentifiers:l}=t(154);class SemVer{constructor(e,r){if(!r||typeof r!=="object"){r={loose:!!r,includePrerelease:false}}if(e instanceof SemVer){if(e.loose===!!r.loose&&e.includePrerelease===!!r.includePrerelease){return e}else{e=e.version}}else if(typeof e!=="string"){throw new TypeError(`Invalid Version: ${e}`)}if(e.length>o){throw new TypeError(`version is longer than ${o} characters`)}s("SemVer",e,r);this.options=r;this.loose=!!r.loose;this.includePrerelease=!!r.includePrerelease;const t=e.trim().match(r.loose?i[a.LOOSE]:i[a.FULL]);if(!t){throw new TypeError(`Invalid Version: ${e}`)}this.raw=e;this.major=+t[1];this.minor=+t[2];this.patch=+t[3];if(this.major>n||this.major<0){throw new TypeError("Invalid major version")}if(this.minor>n||this.minor<0){throw new TypeError("Invalid minor version")}if(this.patch>n||this.patch<0){throw new TypeError("Invalid patch version")}if(!t[4]){this.prerelease=[]}else{this.prerelease=t[4].split(".").map((e=>{if(/^[0-9]+$/.test(e)){const r=+e;if(r>=0&&r=0){if(typeof this.prerelease[e]==="number"){this.prerelease[e]++;e=-2}}if(e===-1){this.prerelease.push(0)}}if(r){if(this.prerelease[0]===r){if(isNaN(this.prerelease[1])){this.prerelease=[r,0]}}else{this.prerelease=[r,0]}}break;default:throw new Error(`invalid increment argument: ${e}`)}this.format();this.raw=this.version;return this}}e.exports=SemVer},909:(e,r,t)=>{const s=t(815);const clean=(e,r)=>{const t=s(e.trim().replace(/^[=v]+/,""),r);return t?t.version:null};e.exports=clean},96:(e,r,t)=>{const s=t(83);const o=t(818);const n=t(850);const i=t(488);const a=t(957);const l=t(551);const cmp=(e,r,t,c)=>{switch(r){case"===":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;return e===t;case"!==":if(typeof e==="object")e=e.version;if(typeof t==="object")t=t.version;return e!==t;case"":case"=":case"==":return s(e,t,c);case"!=":return o(e,t,c);case">":return n(e,t,c);case">=":return i(e,t,c);case"<":return a(e,t,c);case"<=":return l(e,t,c);default:throw new TypeError(`Invalid operator: ${r}`)}};e.exports=cmp},778:(e,r,t)=>{const s=t(834);const o=t(815);const{re:n,t:i}=t(608);const coerce=(e,r)=>{if(e instanceof s){return e}if(typeof e==="number"){e=String(e)}if(typeof e!=="string"){return null}r=r||{};let t=null;if(!r.rtl){t=e.match(n[i.COERCE])}else{let r;while((r=n[i.COERCERTL].exec(e))&&(!t||t.index+t[0].length!==e.length)){if(!t||r.index+r[0].length!==t.index+t[0].length){t=r}n[i.COERCERTL].lastIndex=r.index+r[1].length+r[2].length}n[i.COERCERTL].lastIndex=-1}if(t===null)return null;return o(`${t[2]}.${t[3]||"0"}.${t[4]||"0"}`,r)};e.exports=coerce},406:(e,r,t)=>{const s=t(834);const compareBuild=(e,r,t)=>{const o=new s(e,t);const n=new s(r,t);return o.compare(n)||o.compareBuild(n)};e.exports=compareBuild},473:(e,r,t)=>{const s=t(756);const compareLoose=(e,r)=>s(e,r,true);e.exports=compareLoose},756:(e,r,t)=>{const s=t(834);const compare=(e,r,t)=>new s(e,t).compare(new s(r,t));e.exports=compare},843:(e,r,t)=>{const s=t(815);const o=t(83);const diff=(e,r)=>{if(o(e,r)){return null}else{const t=s(e);const o=s(r);const n=t.prerelease.length||o.prerelease.length;const i=n?"pre":"";const a=n?"prerelease":"";for(const e in t){if(e==="major"||e==="minor"||e==="patch"){if(t[e]!==o[e]){return i+e}}}return a}};e.exports=diff},83:(e,r,t)=>{const s=t(756);const eq=(e,r,t)=>s(e,r,t)===0;e.exports=eq},850:(e,r,t)=>{const s=t(756);const gt=(e,r,t)=>s(e,r,t)>0;e.exports=gt},488:(e,r,t)=>{const s=t(756);const gte=(e,r,t)=>s(e,r,t)>=0;e.exports=gte},77:(e,r,t)=>{const s=t(834);const inc=(e,r,t,o)=>{if(typeof t==="string"){o=t;t=undefined}try{return new s(e,t).inc(r,o).version}catch(e){return null}};e.exports=inc},957:(e,r,t)=>{const s=t(756);const lt=(e,r,t)=>s(e,r,t)<0;e.exports=lt},551:(e,r,t)=>{const s=t(756);const lte=(e,r,t)=>s(e,r,t)<=0;e.exports=lte},973:(e,r,t)=>{const s=t(834);const major=(e,r)=>new s(e,r).major;e.exports=major},70:(e,r,t)=>{const s=t(834);const minor=(e,r)=>new s(e,r).minor;e.exports=minor},818:(e,r,t)=>{const s=t(756);const neq=(e,r,t)=>s(e,r,t)!==0;e.exports=neq},815:(e,r,t)=>{const{MAX_LENGTH:s}=t(370);const{re:o,t:n}=t(608);const i=t(834);const parse=(e,r)=>{if(!r||typeof r!=="object"){r={loose:!!r,includePrerelease:false}}if(e instanceof i){return e}if(typeof e!=="string"){return null}if(e.length>s){return null}const t=r.loose?o[n.LOOSE]:o[n.FULL];if(!t.test(e)){return null}try{return new i(e,r)}catch(e){return null}};e.exports=parse},944:(e,r,t)=>{const s=t(834);const patch=(e,r)=>new s(e,r).patch;e.exports=patch},304:(e,r,t)=>{const s=t(815);const prerelease=(e,r)=>{const t=s(e,r);return t&&t.prerelease.length?t.prerelease:null};e.exports=prerelease},503:(e,r,t)=>{const s=t(756);const rcompare=(e,r,t)=>s(r,e,t);e.exports=rcompare},548:(e,r,t)=>{const s=t(406);const rsort=(e,r)=>e.sort(((e,t)=>s(t,e,r)));e.exports=rsort},177:(e,r,t)=>{const s=t(798);const satisfies=(e,r,t)=>{try{r=new s(r,t)}catch(e){return false}return r.test(e)};e.exports=satisfies},892:(e,r,t)=>{const s=t(406);const sort=(e,r)=>e.sort(((e,t)=>s(e,t,r)));e.exports=sort},49:(e,r,t)=>{const s=t(815);const valid=(e,r)=>{const t=s(e,r);return t?t.version:null};e.exports=valid},553:(e,r,t)=>{const s=t(608);e.exports={re:s.re,src:s.src,tokens:s.t,SEMVER_SPEC_VERSION:t(370).SEMVER_SPEC_VERSION,SemVer:t(834),compareIdentifiers:t(154).compareIdentifiers,rcompareIdentifiers:t(154).rcompareIdentifiers,parse:t(815),valid:t(49),clean:t(909),inc:t(77),diff:t(843),major:t(973),minor:t(70),patch:t(944),prerelease:t(304),compare:t(756),rcompare:t(503),compareLoose:t(473),compareBuild:t(406),sort:t(892),rsort:t(548),gt:t(850),lt:t(957),eq:t(83),neq:t(818),gte:t(488),lte:t(551),cmp:t(96),coerce:t(778),Comparator:t(842),Range:t(798),satisfies:t(177),toComparators:t(504),maxSatisfying:t(795),minSatisfying:t(530),minVersion:t(226),validRange:t(802),outside:t(878),gtr:t(114),ltr:t(848),intersects:t(134),simplifyRange:t(799),subset:t(654)}},370:e=>{const r="2.0.0";const t=256;const s=Number.MAX_SAFE_INTEGER||9007199254740991;const o=16;e.exports={SEMVER_SPEC_VERSION:r,MAX_LENGTH:t,MAX_SAFE_INTEGER:s,MAX_SAFE_COMPONENT_LENGTH:o}},435:e=>{const r=typeof process==="object"&&process.env&&process.env.NODE_DEBUG&&/\bsemver\b/i.test(process.env.NODE_DEBUG)?(...e)=>console.error("SEMVER",...e):()=>{};e.exports=r},154:e=>{const r=/^[0-9]+$/;const compareIdentifiers=(e,t)=>{const s=r.test(e);const o=r.test(t);if(s&&o){e=+e;t=+t}return e===t?0:s&&!o?-1:o&&!s?1:ecompareIdentifiers(r,e);e.exports={compareIdentifiers:compareIdentifiers,rcompareIdentifiers:rcompareIdentifiers}},608:(e,r,t)=>{const{MAX_SAFE_COMPONENT_LENGTH:s}=t(370);const o=t(435);r=e.exports={};const n=r.re=[];const i=r.src=[];const a=r.t={};let l=0;const createToken=(e,r,t)=>{const s=l++;o(s,r);a[e]=s;i[s]=r;n[s]=new RegExp(r,t?"g":undefined)};createToken("NUMERICIDENTIFIER","0|[1-9]\\d*");createToken("NUMERICIDENTIFIERLOOSE","[0-9]+");createToken("NONNUMERICIDENTIFIER","\\d*[a-zA-Z-][a-zA-Z0-9-]*");createToken("MAINVERSION",`(${i[a.NUMERICIDENTIFIER]})\\.`+`(${i[a.NUMERICIDENTIFIER]})\\.`+`(${i[a.NUMERICIDENTIFIER]})`);createToken("MAINVERSIONLOOSE",`(${i[a.NUMERICIDENTIFIERLOOSE]})\\.`+`(${i[a.NUMERICIDENTIFIERLOOSE]})\\.`+`(${i[a.NUMERICIDENTIFIERLOOSE]})`);createToken("PRERELEASEIDENTIFIER",`(?:${i[a.NUMERICIDENTIFIER]}|${i[a.NONNUMERICIDENTIFIER]})`);createToken("PRERELEASEIDENTIFIERLOOSE",`(?:${i[a.NUMERICIDENTIFIERLOOSE]}|${i[a.NONNUMERICIDENTIFIER]})`);createToken("PRERELEASE",`(?:-(${i[a.PRERELEASEIDENTIFIER]}(?:\\.${i[a.PRERELEASEIDENTIFIER]})*))`);createToken("PRERELEASELOOSE",`(?:-?(${i[a.PRERELEASEIDENTIFIERLOOSE]}(?:\\.${i[a.PRERELEASEIDENTIFIERLOOSE]})*))`);createToken("BUILDIDENTIFIER","[0-9A-Za-z-]+");createToken("BUILD",`(?:\\+(${i[a.BUILDIDENTIFIER]}(?:\\.${i[a.BUILDIDENTIFIER]})*))`);createToken("FULLPLAIN",`v?${i[a.MAINVERSION]}${i[a.PRERELEASE]}?${i[a.BUILD]}?`);createToken("FULL",`^${i[a.FULLPLAIN]}$`);createToken("LOOSEPLAIN",`[v=\\s]*${i[a.MAINVERSIONLOOSE]}${i[a.PRERELEASELOOSE]}?${i[a.BUILD]}?`);createToken("LOOSE",`^${i[a.LOOSEPLAIN]}$`);createToken("GTLT","((?:<|>)?=?)");createToken("XRANGEIDENTIFIERLOOSE",`${i[a.NUMERICIDENTIFIERLOOSE]}|x|X|\\*`);createToken("XRANGEIDENTIFIER",`${i[a.NUMERICIDENTIFIER]}|x|X|\\*`);createToken("XRANGEPLAIN",`[v=\\s]*(${i[a.XRANGEIDENTIFIER]})`+`(?:\\.(${i[a.XRANGEIDENTIFIER]})`+`(?:\\.(${i[a.XRANGEIDENTIFIER]})`+`(?:${i[a.PRERELEASE]})?${i[a.BUILD]}?`+`)?)?`);createToken("XRANGEPLAINLOOSE",`[v=\\s]*(${i[a.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${i[a.XRANGEIDENTIFIERLOOSE]})`+`(?:\\.(${i[a.XRANGEIDENTIFIERLOOSE]})`+`(?:${i[a.PRERELEASELOOSE]})?${i[a.BUILD]}?`+`)?)?`);createToken("XRANGE",`^${i[a.GTLT]}\\s*${i[a.XRANGEPLAIN]}$`);createToken("XRANGELOOSE",`^${i[a.GTLT]}\\s*${i[a.XRANGEPLAINLOOSE]}$`);createToken("COERCE",`${"(^|[^\\d])"+"(\\d{1,"}${s}})`+`(?:\\.(\\d{1,${s}}))?`+`(?:\\.(\\d{1,${s}}))?`+`(?:$|[^\\d])`);createToken("COERCERTL",i[a.COERCE],true);createToken("LONETILDE","(?:~>?)");createToken("TILDETRIM",`(\\s*)${i[a.LONETILDE]}\\s+`,true);r.tildeTrimReplace="$1~";createToken("TILDE",`^${i[a.LONETILDE]}${i[a.XRANGEPLAIN]}$`);createToken("TILDELOOSE",`^${i[a.LONETILDE]}${i[a.XRANGEPLAINLOOSE]}$`);createToken("LONECARET","(?:\\^)");createToken("CARETTRIM",`(\\s*)${i[a.LONECARET]}\\s+`,true);r.caretTrimReplace="$1^";createToken("CARET",`^${i[a.LONECARET]}${i[a.XRANGEPLAIN]}$`);createToken("CARETLOOSE",`^${i[a.LONECARET]}${i[a.XRANGEPLAINLOOSE]}$`);createToken("COMPARATORLOOSE",`^${i[a.GTLT]}\\s*(${i[a.LOOSEPLAIN]})$|^$`);createToken("COMPARATOR",`^${i[a.GTLT]}\\s*(${i[a.FULLPLAIN]})$|^$`);createToken("COMPARATORTRIM",`(\\s*)${i[a.GTLT]}\\s*(${i[a.LOOSEPLAIN]}|${i[a.XRANGEPLAIN]})`,true);r.comparatorTrimReplace="$1$2$3";createToken("HYPHENRANGE",`^\\s*(${i[a.XRANGEPLAIN]})`+`\\s+-\\s+`+`(${i[a.XRANGEPLAIN]})`+`\\s*$`);createToken("HYPHENRANGELOOSE",`^\\s*(${i[a.XRANGEPLAINLOOSE]})`+`\\s+-\\s+`+`(${i[a.XRANGEPLAINLOOSE]})`+`\\s*$`);createToken("STAR","(<|>)?=?\\s*\\*");createToken("GTE0","^\\s*>=\\s*0.0.0\\s*$");createToken("GTE0PRE","^\\s*>=\\s*0.0.0-0\\s*$")},114:(e,r,t)=>{const s=t(878);const gtr=(e,r,t)=>s(e,r,">",t);e.exports=gtr},134:(e,r,t)=>{const s=t(798);const intersects=(e,r,t)=>{e=new s(e,t);r=new s(r,t);return e.intersects(r)};e.exports=intersects},848:(e,r,t)=>{const s=t(878);const ltr=(e,r,t)=>s(e,r,"<",t);e.exports=ltr},795:(e,r,t)=>{const s=t(834);const o=t(798);const maxSatisfying=(e,r,t)=>{let n=null;let i=null;let a=null;try{a=new o(r,t)}catch(e){return null}e.forEach((e=>{if(a.test(e)){if(!n||i.compare(e)===-1){n=e;i=new s(n,t)}}}));return n};e.exports=maxSatisfying},530:(e,r,t)=>{const s=t(834);const o=t(798);const minSatisfying=(e,r,t)=>{let n=null;let i=null;let a=null;try{a=new o(r,t)}catch(e){return null}e.forEach((e=>{if(a.test(e)){if(!n||i.compare(e)===1){n=e;i=new s(n,t)}}}));return n};e.exports=minSatisfying},226:(e,r,t)=>{const s=t(834);const o=t(798);const n=t(850);const minVersion=(e,r)=>{e=new o(e,r);let t=new s("0.0.0");if(e.test(t)){return t}t=new s("0.0.0-0");if(e.test(t)){return t}t=null;for(let r=0;r{const r=new s(e.semver.version);switch(e.operator){case">":if(r.prerelease.length===0){r.patch++}else{r.prerelease.push(0)}r.raw=r.format();case"":case">=":if(!t||n(t,r)){t=r}break;case"<":case"<=":break;default:throw new Error(`Unexpected operation: ${e.operator}`)}}))}if(t&&e.test(t)){return t}return null};e.exports=minVersion},878:(e,r,t)=>{const s=t(834);const o=t(842);const{ANY:n}=o;const i=t(798);const a=t(177);const l=t(850);const c=t(957);const p=t(551);const E=t(488);const outside=(e,r,t,f)=>{e=new s(e,f);r=new i(r,f);let h,u,$,I,R;switch(t){case">":h=l;u=p;$=c;I=">";R=">=";break;case"<":h=c;u=E;$=l;I="<";R="<=";break;default:throw new TypeError('Must provide a hilo val of "<" or ">"')}if(a(e,r,f)){return false}for(let t=0;t{if(e.semver===n){e=new o(">=0.0.0")}i=i||e;a=a||e;if(h(e.semver,i.semver,f)){i=e}else if($(e.semver,a.semver,f)){a=e}}));if(i.operator===I||i.operator===R){return false}if((!a.operator||a.operator===I)&&u(e,a.semver)){return false}else if(a.operator===R&&$(e,a.semver)){return false}}return true};e.exports=outside},799:(e,r,t)=>{const s=t(177);const o=t(756);e.exports=(e,r,t)=>{const n=[];let i=null;let a=null;const l=e.sort(((e,r)=>o(e,r,t)));for(const e of l){const o=s(e,r,t);if(o){a=e;if(!i)i=e}else{if(a){n.push([i,a])}a=null;i=null}}if(i)n.push([i,null]);const c=[];for(const[e,r]of n){if(e===r)c.push(e);else if(!r&&e===l[0])c.push("*");else if(!r)c.push(`>=${e}`);else if(e===l[0])c.push(`<=${r}`);else c.push(`${e} - ${r}`)}const p=c.join(" || ");const E=typeof r.raw==="string"?r.raw:String(r);return p.length{const s=t(798);const{ANY:o}=t(842);const n=t(177);const i=t(756);const subset=(e,r,t)=>{e=new s(e,t);r=new s(r,t);let o=false;e:for(const s of e.set){for(const e of r.set){const r=simpleSubset(s,e,t);o=o||r!==null;if(r)continue e}if(o)return false}return true};const simpleSubset=(e,r,t)=>{if(e.length===1&&e[0].semver===o)return r.length===1&&r[0].semver===o;const s=new Set;let a,l;for(const r of e){if(r.operator===">"||r.operator===">=")a=higherGT(a,r,t);else if(r.operator==="<"||r.operator==="<=")l=lowerLT(l,r,t);else s.add(r.semver)}if(s.size>1)return null;let c;if(a&&l){c=i(a.semver,l.semver,t);if(c>0)return null;else if(c===0&&(a.operator!==">="||l.operator!=="<="))return null}for(const e of s){if(a&&!n(e,String(a),t))return null;if(l&&!n(e,String(l),t))return null;for(const s of r){if(!n(e,String(s),t))return false}return true}let p,E;let f,h;for(const e of r){h=h||e.operator===">"||e.operator===">=";f=f||e.operator==="<"||e.operator==="<=";if(a){if(e.operator===">"||e.operator===">="){p=higherGT(a,e,t);if(p===e)return false}else if(a.operator===">="&&!n(a.semver,String(e),t))return false}if(l){if(e.operator==="<"||e.operator==="<="){E=lowerLT(l,e,t);if(E===e)return false}else if(l.operator==="<="&&!n(l.semver,String(e),t))return false}if(!e.operator&&(l||a)&&c!==0)return false}if(a&&f&&!l&&c!==0)return false;if(l&&h&&!a&&c!==0)return false;return true};const higherGT=(e,r,t)=>{if(!e)return r;const s=i(e.semver,r.semver,t);return s>0?e:s<0?r:r.operator===">"&&e.operator===">="?r:e};const lowerLT=(e,r,t)=>{if(!e)return r;const s=i(e.semver,r.semver,t);return s<0?e:s>0?r:r.operator==="<"&&e.operator==="<="?r:e};e.exports=subset},504:(e,r,t)=>{const s=t(798);const toComparators=(e,r)=>new s(e,r).set.map((e=>e.map((e=>e.value)).join(" ").trim().split(" ")));e.exports=toComparators},802:(e,r,t)=>{const s=t(798);const validRange=(e,r)=>{try{return new s(e,r).range||"*"}catch(e){return null}};e.exports=validRange}};var r={};function __nccwpck_require__(t){var s=r[t];if(s!==undefined){return s.exports}var o=r[t]={exports:{}};var n=true;try{e[t](o,o.exports,__nccwpck_require__);n=false}finally{if(n)delete r[t]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t=__nccwpck_require__(553);module.exports=t})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/semver/package.json b/cli/app/node_modules/next/dist/compiled/semver/package.json new file mode 100644 index 00000000000..9c30e332556 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/semver/package.json @@ -0,0 +1 @@ +{"name":"semver","main":"index.js","license":"ISC"} diff --git a/cli/app/node_modules/next/dist/compiled/send/index.js b/cli/app/node_modules/next/dist/compiled/send/index.js new file mode 100644 index 00000000000..c44207848e8 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/send/index.js @@ -0,0 +1,70 @@ +(()=>{var e={186:(e,t,a)=>{ +/*! + * depd + * Copyright(c) 2014-2018 Douglas Christopher Wilson + * MIT Licensed + */ +var i=a(17).relative;e.exports=depd;var n=process.cwd();function containsNamespace(e,t){var a=e.split(/[ ,]+/);var i=String(t).toLowerCase();for(var n=0;n0}function isignored(e){if(process.noDeprecation){return true}var t=process.env.NO_DEPRECATION||"";return containsNamespace(t,e)}function istraced(e){if(process.traceDeprecation){return true}var t=process.env.TRACE_DEPRECATION||"";return containsNamespace(t,e)}function log(e,t){var a=eehaslisteners(process,"deprecation");if(!a&&this._ignored){return}var i;var n;var r;var o;var p=0;var s=false;var c=getStack();var l=this._file;if(t){o=t;r=callSiteLocation(c[1]);r.name=o.name;l=r[0]}else{p=2;o=callSiteLocation(c[p]);r=o}for(;p";var a=e.getLineNumber();var i=e.getColumnNumber();if(e.isEval()){t=e.getEvalOrigin()+", "+t}var n=[t,a,i];n.callSite=e;n.name=e.getFunctionName();return n}function defaultMessage(e){var t=e.callSite;var a=e.name;if(!a){a=""}var i=t.getThis();var n=i&&t.getTypeName();if(n==="Object"){n=undefined}if(n==="Function"){n=i.name||n}return n&&t.getMethodName()?n+"."+a:a}function formatPlain(e,t,a){var i=(new Date).toUTCString();var n=i+" "+this._namespace+" deprecated "+e;if(this._traced){for(var r=0;r{"use strict"; +/*! + * destroy + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2015-2022 Douglas Christopher Wilson + * MIT Licensed + */var i=a(361).EventEmitter;var n=a(147).ReadStream;var r=a(781);var o=a(796);e.exports=destroy;function destroy(e,t){if(isFsReadStream(e)){destroyReadStream(e)}else if(isZlibStream(e)){destroyZlibStream(e)}else if(hasDestroy(e)){e.destroy()}if(isEventEmitter(e)&&t){e.removeAllListeners("error");e.addListener("error",noop)}return e}function destroyReadStream(e){e.destroy();if(typeof e.close==="function"){e.on("open",onOpenClose)}}function closeZlibStream(e){if(e._hadError===true){var t=e._binding===null?"_binding":"_handle";e[t]={close:function(){this[t]=null}}}e.close()}function destroyZlibStream(e){if(typeof e.destroy==="function"){if(e._binding){e.destroy();if(e._processing){e._needDrain=true;e.once("drain",onDrainClearBinding)}else{e._binding.clear()}}else if(e._destroy&&e._destroy!==r.Transform.prototype._destroy){e.destroy()}else if(e._destroy&&typeof e.close==="function"){e.destroyed=true;e.close()}else{e.destroy()}}else if(typeof e.close==="function"){closeZlibStream(e)}}function hasDestroy(e){return e instanceof r&&typeof e.destroy==="function"}function isEventEmitter(e){return e instanceof i}function isFsReadStream(e){return e instanceof n}function isZlibStream(e){return e instanceof o.Gzip||e instanceof o.Gunzip||e instanceof o.Deflate||e instanceof o.DeflateRaw||e instanceof o.Inflate||e instanceof o.InflateRaw||e instanceof o.Unzip}function noop(){}function onDrainClearBinding(){this._binding.clear()}function onOpenClose(){if(typeof this.fd==="number"){this.close()}}},481:e=>{"use strict"; +/*! + * ee-first + * Copyright(c) 2014 Jonathan Ong + * MIT Licensed + */e.exports=first;function first(e,t){if(!Array.isArray(e))throw new TypeError("arg must be an array of [ee, events...] arrays");var a=[];for(var i=0;i{"use strict"; +/*! + * encodeurl + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */e.exports=encodeUrl;var t=/(?:[^\x21\x25\x26-\x3B\x3D\x3F-\x5B\x5D\x5F\x61-\x7A\x7E]|%(?:[^0-9A-Fa-f]|[0-9A-Fa-f][^0-9A-Fa-f]|$))+/g;var a=/(^|[^\uD800-\uDBFF])[\uDC00-\uDFFF]|[\uD800-\uDBFF]([^\uDC00-\uDFFF]|$)/g;var i="$1�$2";function encodeUrl(e){return String(e).replace(a,i).replace(t,encodeURI)}},354:e=>{"use strict"; +/*! + * escape-html + * Copyright(c) 2012-2013 TJ Holowaychuk + * Copyright(c) 2015 Andreas Lubbe + * Copyright(c) 2015 Tiancheng "Timothy" Gu + * MIT Licensed + */var t=/["'&<>]/;e.exports=escapeHtml;function escapeHtml(e){var a=""+e;var i=t.exec(a);if(!i){return a}var n;var r="";var o=0;var p=0;for(o=i.index;o{"use strict"; +/*! + * etag + * Copyright(c) 2014-2016 Douglas Christopher Wilson + * MIT Licensed + */e.exports=etag;var i=a(113);var n=a(147).Stats;var r=Object.prototype.toString;function entitytag(e){if(e.length===0){return'"0-2jmj7l5rSw0yVb/vlWAYkK/YBwk"'}var t=i.createHash("sha1").update(e,"utf8").digest("base64").substring(0,27);var a=typeof e==="string"?Buffer.byteLength(e,"utf8"):e.length;return'"'+a.toString(16)+"-"+t+'"'}function etag(e,t){if(e==null){throw new TypeError("argument entity is required")}var a=isstats(e);var i=t&&typeof t.weak==="boolean"?t.weak:a;if(!a&&typeof e!=="string"&&!Buffer.isBuffer(e)){throw new TypeError("argument entity must be string, Buffer, or fs.Stats")}var n=a?stattag(e):entitytag(e);return i?"W/"+n:n}function isstats(e){if(typeof n==="function"&&e instanceof n){return true}return e&&typeof e==="object"&&"ctime"in e&&r.call(e.ctime)==="[object Date]"&&"mtime"in e&&r.call(e.mtime)==="[object Date]"&&"ino"in e&&typeof e.ino==="number"&&"size"in e&&typeof e.size==="number"}function stattag(e){var t=e.mtime.getTime().toString(16);var a=e.size.toString(16);return'"'+a+"-"+t+'"'}},546:(e,t,a)=>{"use strict"; +/*! + * http-errors + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */var i=a(186)("http-errors");var n=a(832);var r=a(596);var o=a(842);var p=a(637);e.exports=createError;e.exports.HttpError=createHttpErrorConstructor();e.exports.isHttpError=createIsHttpErrorFunction(e.exports.HttpError);populateConstructorExports(e.exports,r.codes,e.exports.HttpError);function codeClass(e){return Number(String(e).charAt(0)+"00")}function createError(){var e;var t;var a=500;var n={};for(var o=0;o=600)){i("non-error status code; use only 4xx or 5xx status codes")}if(typeof a!=="number"||!r.message[a]&&(a<400||a>=600)){a=500}var c=createError[a]||createError[codeClass(a)];if(!e){e=c?new c(t):new Error(t||r.message[a]);Error.captureStackTrace(e,createError)}if(!c||!(e instanceof c)||e.status!==a){e.expose=a<500;e.status=e.statusCode=a}for(var l in n){if(l!=="status"&&l!=="statusCode"){e[l]=n[l]}}return e}function createHttpErrorConstructor(){function HttpError(){throw new TypeError("cannot construct abstract class")}o(HttpError,Error);return HttpError}function createClientErrorConstructor(e,t,a){var i=toClassName(t);function ClientError(e){var t=e!=null?e:r.message[a];var o=new Error(t);Error.captureStackTrace(o,ClientError);n(o,ClientError.prototype);Object.defineProperty(o,"message",{enumerable:true,configurable:true,value:t,writable:true});Object.defineProperty(o,"name",{enumerable:false,configurable:true,value:i,writable:true});return o}o(ClientError,e);nameFunc(ClientError,i);ClientError.prototype.status=a;ClientError.prototype.statusCode=a;ClientError.prototype.expose=true;return ClientError}function createIsHttpErrorFunction(e){return function isHttpError(t){if(!t||typeof t!=="object"){return false}if(t instanceof e){return true}return t instanceof Error&&typeof t.expose==="boolean"&&typeof t.statusCode==="number"&&t.status===t.statusCode}}function createServerErrorConstructor(e,t,a){var i=toClassName(t);function ServerError(e){var t=e!=null?e:r.message[a];var o=new Error(t);Error.captureStackTrace(o,ServerError);n(o,ServerError.prototype);Object.defineProperty(o,"message",{enumerable:true,configurable:true,value:t,writable:true});Object.defineProperty(o,"name",{enumerable:false,configurable:true,value:i,writable:true});return o}o(ServerError,e);nameFunc(ServerError,i);ServerError.prototype.status=a;ServerError.prototype.statusCode=a;ServerError.prototype.expose=false;return ServerError}function nameFunc(e,t){var a=Object.getOwnPropertyDescriptor(e,"name");if(a&&a.configurable){a.value=t;Object.defineProperty(e,"name",a)}}function populateConstructorExports(e,t,a){t.forEach((function forEachCode(t){var i;var n=p(r.message[t]);switch(codeClass(t)){case 400:i=createClientErrorConstructor(a,n,t);break;case 500:i=createServerErrorConstructor(a,n,t);break}if(i){e[t]=i;e[n]=i}}))}function toClassName(e){return e.substr(-5)!=="Error"?e+"Error":e}},842:(e,t,a)=>{try{var i=a(837);if(typeof i.inherits!=="function")throw"";e.exports=i.inherits}catch(t){e.exports=a(782)}},782:e=>{if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},396:(e,t,a)=>{var i=a(17);var n=a(147);function Mime(){this.types=Object.create(null);this.extensions=Object.create(null)}Mime.prototype.define=function(e){for(var t in e){var a=e[t];for(var i=0;i{var t=1e3;var a=t*60;var i=a*60;var n=i*24;var r=n*7;var o=n*365.25;e.exports=function(e,t){t=t||{};var a=typeof e;if(a==="string"&&e.length>0){return parse(e)}else if(a==="number"&&isFinite(e)){return t.long?fmtLong(e):fmtShort(e)}throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(e))};function parse(e){e=String(e);if(e.length>100){return}var p=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(e);if(!p){return}var s=parseFloat(p[1]);var c=(p[2]||"ms").toLowerCase();switch(c){case"years":case"year":case"yrs":case"yr":case"y":return s*o;case"weeks":case"week":case"w":return s*r;case"days":case"day":case"d":return s*n;case"hours":case"hour":case"hrs":case"hr":case"h":return s*i;case"minutes":case"minute":case"mins":case"min":case"m":return s*a;case"seconds":case"second":case"secs":case"sec":case"s":return s*t;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return s;default:return undefined}}function fmtShort(e){var r=Math.abs(e);if(r>=n){return Math.round(e/n)+"d"}if(r>=i){return Math.round(e/i)+"h"}if(r>=a){return Math.round(e/a)+"m"}if(r>=t){return Math.round(e/t)+"s"}return e+"ms"}function fmtLong(e){var r=Math.abs(e);if(r>=n){return plural(e,r,n,"day")}if(r>=i){return plural(e,r,i,"hour")}if(r>=a){return plural(e,r,a,"minute")}if(r>=t){return plural(e,r,t,"second")}return e+" ms"}function plural(e,t,a,i){var n=t>=a*1.5;return Math.round(e/a)+" "+i+(n?"s":"")}},71:(e,t,a)=>{"use strict"; +/*! + * on-finished + * Copyright(c) 2013 Jonathan Ong + * Copyright(c) 2014 Douglas Christopher Wilson + * MIT Licensed + */e.exports=onFinished;e.exports.isFinished=isFinished;var i=tryRequireAsyncHooks();var n=a(481);var r=typeof setImmediate==="function"?setImmediate:function(e){process.nextTick(e.bind.apply(e,arguments))};function onFinished(e,t){if(isFinished(e)!==false){r(t,null,e);return e}attachListener(e,wrap(t));return e}function isFinished(e){var t=e.socket;if(typeof e.finished==="boolean"){return Boolean(e.finished||t&&!t.writable)}if(typeof e.complete==="boolean"){return Boolean(e.upgrade||!t||!t.readable||e.complete&&!e.readable)}return undefined}function attachFinishedListener(e,t){var a;var i;var r=false;function onFinish(e){a.cancel();i.cancel();r=true;t(e)}a=i=n([[e,"end","finish"]],onFinish);function onSocket(t){e.removeListener("socket",onSocket);if(r)return;if(a!==i)return;i=n([[t,"error","close"]],onFinish)}if(e.socket){onSocket(e.socket);return}e.on("socket",onSocket);if(e.socket===undefined){patchAssignSocket(e,onSocket)}}function attachListener(e,t){var a=e.__onFinished;if(!a||!a.queue){a=e.__onFinished=createListener(e);attachFinishedListener(e,a)}a.queue.push(t)}function createListener(e){function listener(t){if(e.__onFinished===listener)e.__onFinished=null;if(!listener.queue)return;var a=listener.queue;listener.queue=null;for(var i=0;i{"use strict"; +/*! + * range-parser + * Copyright(c) 2012-2014 TJ Holowaychuk + * Copyright(c) 2015-2016 Douglas Christopher Wilson + * MIT Licensed + */e.exports=rangeParser;function rangeParser(e,t,a){if(typeof t!=="string"){throw new TypeError("argument str must be a string")}var i=t.indexOf("=");if(i===-1){return-2}var n=t.slice(i+1).split(",");var r=[];r.type=t.slice(0,i);for(var o=0;oe-1){c=e-1}if(isNaN(s)||isNaN(c)||s>c||s<0){continue}r.push({start:s,end:c})}if(r.length<1){return-1}return a&&a.combine?combineRanges(r):r}function combineRanges(e){var t=e.map(mapWithIndex).sort(sortByRangeStart);for(var a=0,i=1;ir.end+1){t[++a]=n}else if(n.end>r.end){r.end=n.end;r.index=Math.min(r.index,n.index)}}t.length=a+1;var o=t.sort(sortByRangeIndex).map(mapWithoutIndex);o.type=e.type;return o}function mapWithIndex(e,t){return{start:e.start,end:e.end,index:t}}function mapWithoutIndex(e){return{start:e.start,end:e.end}}function sortByRangeIndex(e,t){return e.index-t.index}function sortByRangeStart(e,t){return e.start-t.start}},228:(e,t,a)=>{"use strict"; +/*! + * send + * Copyright(c) 2012 TJ Holowaychuk + * Copyright(c) 2014-2022 Douglas Christopher Wilson + * MIT Licensed + */var i=a(546);var n=a(937)("send");var r=a(186)("send");var o=a(397);var p=a(927);var s=a(354);var c=a(516);var l=a(890);var d=a(147);var m=a(396);var u=a(958);var v=a(71);var f=a(953);var x=a(17);var g=a(596);var h=a(781);var b=a(837);var y=x.extname;var w=x.join;var k=x.normalize;var S=x.resolve;var j=x.sep;var _=/^ *bytes=/;var E=60*60*24*365*1e3;var C=/(?:^|[\\/])\.\.(?:[\\/]|$)/;e.exports=send;e.exports.mime=m;function send(e,t,a){return new SendStream(e,t,a)}function SendStream(e,t,a){h.call(this);var i=a||{};this.options=i;this.path=t;this.req=e;this._acceptRanges=i.acceptRanges!==undefined?Boolean(i.acceptRanges):true;this._cacheControl=i.cacheControl!==undefined?Boolean(i.cacheControl):true;this._etag=i.etag!==undefined?Boolean(i.etag):true;this._dotfiles=i.dotfiles!==undefined?i.dotfiles:"ignore";if(this._dotfiles!=="ignore"&&this._dotfiles!=="allow"&&this._dotfiles!=="deny"){throw new TypeError('dotfiles option must be "allow", "deny", or "ignore"')}this._hidden=Boolean(i.hidden);if(i.hidden!==undefined){r("hidden: use dotfiles: '"+(this._hidden?"allow":"ignore")+"' instead")}if(i.dotfiles===undefined){this._dotfiles=undefined}this._extensions=i.extensions!==undefined?normalizeList(i.extensions,"extensions option"):[];this._immutable=i.immutable!==undefined?Boolean(i.immutable):false;this._index=i.index!==undefined?normalizeList(i.index,"index option"):["index.html"];this._lastModified=i.lastModified!==undefined?Boolean(i.lastModified):true;this._maxage=i.maxAge||i.maxage;this._maxage=typeof this._maxage==="string"?u(this._maxage):Number(this._maxage);this._maxage=!isNaN(this._maxage)?Math.min(Math.max(0,this._maxage),E):0;this._root=i.root?S(i.root):null;if(!this._root&&i.from){this.from(i.from)}}b.inherits(SendStream,h);SendStream.prototype.etag=r.function((function etag(e){this._etag=Boolean(e);n("etag %s",this._etag);return this}),"send.etag: pass etag as option");SendStream.prototype.hidden=r.function((function hidden(e){this._hidden=Boolean(e);this._dotfiles=undefined;n("hidden %s",this._hidden);return this}),"send.hidden: use dotfiles option");SendStream.prototype.index=r.function((function index(e){var index=!e?[]:normalizeList(e,"paths argument");n("index %o",e);this._index=index;return this}),"send.index: pass index as option");SendStream.prototype.root=function root(e){this._root=S(String(e));n("root %s",this._root);return this};SendStream.prototype.from=r.function(SendStream.prototype.root,"send.from: pass root as option");SendStream.prototype.root=r.function(SendStream.prototype.root,"send.root: pass root as option");SendStream.prototype.maxage=r.function((function maxage(e){this._maxage=typeof e==="string"?u(e):Number(e);this._maxage=!isNaN(this._maxage)?Math.min(Math.max(0,this._maxage),E):0;n("max-age %d",this._maxage);return this}),"send.maxage: pass maxAge as option");SendStream.prototype.error=function error(e,t){if(hasListeners(this,"error")){return this.emit("error",createHttpError(e,t))}var a=this.res;var i=g.message[e]||String(e);var n=createHtmlDocument("Error",s(i));clearHeaders(a);if(t&&t.headers){setHeaders(a,t.headers)}a.statusCode=e;a.setHeader("Content-Type","text/html; charset=UTF-8");a.setHeader("Content-Length",Buffer.byteLength(n));a.setHeader("Content-Security-Policy","default-src 'none'");a.setHeader("X-Content-Type-Options","nosniff");a.end(n)};SendStream.prototype.hasTrailingSlash=function hasTrailingSlash(){return this.path[this.path.length-1]==="/"};SendStream.prototype.isConditionalGET=function isConditionalGET(){return this.req.headers["if-match"]||this.req.headers["if-unmodified-since"]||this.req.headers["if-none-match"]||this.req.headers["if-modified-since"]};SendStream.prototype.isPreconditionFailure=function isPreconditionFailure(){var e=this.req;var t=this.res;var a=e.headers["if-match"];if(a){var i=t.getHeader("ETag");return!i||a!=="*"&&parseTokenList(a).every((function(e){return e!==i&&e!=="W/"+i&&"W/"+e!==i}))}var n=parseHttpDate(e.headers["if-unmodified-since"]);if(!isNaN(n)){var r=parseHttpDate(t.getHeader("Last-Modified"));return isNaN(r)||r>n}return false};SendStream.prototype.removeContentHeaderFields=function removeContentHeaderFields(){var e=this.res;e.removeHeader("Content-Encoding");e.removeHeader("Content-Language");e.removeHeader("Content-Length");e.removeHeader("Content-Range");e.removeHeader("Content-Type")};SendStream.prototype.notModified=function notModified(){var e=this.res;n("not modified");this.removeContentHeaderFields();e.statusCode=304;e.end()};SendStream.prototype.headersAlreadySent=function headersAlreadySent(){var e=new Error("Can't set headers after they are sent.");n("headers already sent");this.error(500,e)};SendStream.prototype.isCachable=function isCachable(){var e=this.res.statusCode;return e>=200&&e<300||e===304};SendStream.prototype.onStatError=function onStatError(e){switch(e.code){case"ENAMETOOLONG":case"ENOENT":case"ENOTDIR":this.error(404,e);break;default:this.error(500,e);break}};SendStream.prototype.isFresh=function isFresh(){return l(this.req.headers,{etag:this.res.getHeader("ETag"),"last-modified":this.res.getHeader("Last-Modified")})};SendStream.prototype.isRangeFresh=function isRangeFresh(){var e=this.req.headers["if-range"];if(!e){return true}if(e.indexOf('"')!==-1){var t=this.res.getHeader("ETag");return Boolean(t&&e.indexOf(t)!==-1)}var a=this.res.getHeader("Last-Modified");return parseHttpDate(a)<=parseHttpDate(e)};SendStream.prototype.redirect=function redirect(e){var t=this.res;if(hasListeners(this,"directory")){this.emit("directory",t,e);return}if(this.hasTrailingSlash()){this.error(403);return}var a=p(collapseLeadingSlashes(this.path+"/"));var i=createHtmlDocument("Redirecting",'Redirecting to '+s(a)+"");t.statusCode=301;t.setHeader("Content-Type","text/html; charset=UTF-8");t.setHeader("Content-Length",Buffer.byteLength(i));t.setHeader("Content-Security-Policy","default-src 'none'");t.setHeader("X-Content-Type-Options","nosniff");t.setHeader("Location",a);t.end(i)};SendStream.prototype.pipe=function pipe(e){var t=this._root;this.res=e;var a=decode(this.path);if(a===-1){this.error(400);return e}if(~a.indexOf("\0")){this.error(400);return e}var i;if(t!==null){if(a){a=k("."+j+a)}if(C.test(a)){n('malicious path "%s"',a);this.error(403);return e}i=a.split(j);a=k(w(t,a))}else{if(C.test(a)){n('malicious path "%s"',a);this.error(403);return e}i=k(a).split(j);a=S(a)}if(containsDotFile(i)){var r=this._dotfiles;if(r===undefined){r=i[i.length-1][0]==="."?this._hidden?"allow":"ignore":"allow"}n('%s dotfile "%s"',r,a);switch(r){case"allow":break;case"deny":this.error(403);return e;case"ignore":default:this.error(404);return e}}if(this._index.length&&this.hasTrailingSlash()){this.sendIndex(a);return e}this.sendFile(a);return e};SendStream.prototype.send=function send(e,t){var a=t.size;var i=this.options;var r={};var o=this.res;var p=this.req;var s=p.headers.range;var c=i.start||0;if(headersSent(o)){this.headersAlreadySent();return}n('pipe "%s"',e);this.setHeader(e,t);this.type(e);if(this.isConditionalGET()){if(this.isPreconditionFailure()){this.error(412);return}if(this.isCachable()&&this.isFresh()){this.notModified();return}}a=Math.max(0,a-c);if(i.end!==undefined){var l=i.end-c+1;if(a>l)a=l}if(this._acceptRanges&&_.test(s)){s=f(a,s,{combine:true});if(!this.isRangeFresh()){n("range stale");s=-2}if(s===-1){n("range unsatisfiable");o.setHeader("Content-Range",contentRange("bytes",a));return this.error(416,{headers:{"Content-Range":o.getHeader("Content-Range")}})}if(s!==-2&&s.length===1){n("range %j",s);o.statusCode=206;o.setHeader("Content-Range",contentRange("bytes",a,s[0]));c+=s[0].start;a=s[0].end-s[0].start+1}}for(var d in i){r[d]=i[d]}r.start=c;r.end=Math.max(c,c+a-1);o.setHeader("Content-Length",a);if(p.method==="HEAD"){o.end();return}this.stream(e,r)};SendStream.prototype.sendFile=function sendFile(e){var t=0;var a=this;n('stat "%s"',e);d.stat(e,(function onstat(t,i){if(t&&t.code==="ENOENT"&&!y(e)&&e[e.length-1]!==j){return next(t)}if(t)return a.onStatError(t);if(i.isDirectory())return a.redirect(e);a.emit("file",e,i);a.send(e,i)}));function next(i){if(a._extensions.length<=t){return i?a.onStatError(i):a.error(404)}var r=e+"."+a._extensions[t++];n('stat "%s"',r);d.stat(r,(function(e,t){if(e)return next(e);if(t.isDirectory())return next();a.emit("file",r,t);a.send(r,t)}))}};SendStream.prototype.sendIndex=function sendIndex(e){var t=-1;var a=this;function next(i){if(++t>=a._index.length){if(i)return a.onStatError(i);return a.error(404)}var r=w(e,a._index[t]);n('stat "%s"',r);d.stat(r,(function(e,t){if(e)return next(e);if(t.isDirectory())return next();a.emit("file",r,t);a.send(r,t)}))}next()};SendStream.prototype.stream=function stream(e,t){var a=this;var i=this.res;var stream=d.createReadStream(e,t);this.emit("stream",stream);stream.pipe(i);function cleanup(){o(stream,true)}v(i,cleanup);stream.on("error",(function onerror(e){cleanup();a.onStatError(e)}));stream.on("end",(function onend(){a.emit("end")}))};SendStream.prototype.type=function type(e){var t=this.res;if(t.getHeader("Content-Type"))return;var type=m.lookup(e);if(!type){n("no content-type");return}var a=m.charsets.lookup(type);n("content-type %s",type);t.setHeader("Content-Type",type+(a?"; charset="+a:""))};SendStream.prototype.setHeader=function setHeader(e,t){var a=this.res;this.emit("headers",a,e,t);if(this._acceptRanges&&!a.getHeader("Accept-Ranges")){n("accept ranges");a.setHeader("Accept-Ranges","bytes")}if(this._cacheControl&&!a.getHeader("Cache-Control")){var i="public, max-age="+Math.floor(this._maxage/1e3);if(this._immutable){i+=", immutable"}n("cache-control %s",i);a.setHeader("Cache-Control",i)}if(this._lastModified&&!a.getHeader("Last-Modified")){var r=t.mtime.toUTCString();n("modified %s",r);a.setHeader("Last-Modified",r)}if(this._etag&&!a.getHeader("ETag")){var o=c(t);n("etag %s",o);a.setHeader("ETag",o)}};function clearHeaders(e){var t=getHeaderNames(e);for(var a=0;a1?"/"+e.substr(t):e}function containsDotFile(e){for(var t=0;t1&&a[0]==="."){return true}}return false}function contentRange(e,t,a){return e+" "+(a?a.start+"-"+a.end:"*")+"/"+t}function createHtmlDocument(e,t){return"\n"+'\n'+"\n"+'\n'+""+e+"\n"+"\n"+"\n"+"
"+t+"
\n"+"\n"+"\n"}function createHttpError(e,t){if(!t){return i(e)}return t instanceof Error?i(e,t,{expose:false}):i(e,t)}function decode(e){try{return decodeURIComponent(e)}catch(e){return-1}}function getHeaderNames(e){return typeof e.getHeaderNames!=="function"?Object.keys(e._headers||{}):e.getHeaderNames()}function hasListeners(e,t){var a=typeof e.listenerCount!=="function"?e.listeners(t).length:e.listenerCount(t);return a>0}function headersSent(e){return typeof e.headersSent!=="boolean"?Boolean(e._header):e.headersSent}function normalizeList(e,t){var a=[].concat(e||[]);for(var i=0;i{"use strict";e.exports=Object.setPrototypeOf||({__proto__:[]}instanceof Array?setProtoOf:mixinProperties);function setProtoOf(e,t){e.__proto__=t;return e}function mixinProperties(e,t){for(var a in t){if(!Object.prototype.hasOwnProperty.call(e,a)){e[a]=t[a]}}return e}},596:(e,t,a)=>{"use strict"; +/*! + * statuses + * Copyright(c) 2014 Jonathan Ong + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */var i=a(64);e.exports=status;status.message=i;status.code=createMessageToStatusCodeMap(i);status.codes=createStatusCodeList(i);status.redirect={300:true,301:true,302:true,303:true,305:true,307:true,308:true};status.empty={204:true,205:true,304:true};status.retry={502:true,503:true,504:true};function createMessageToStatusCodeMap(e){var t={};Object.keys(e).forEach((function forEachCode(a){var i=e[a];var n=Number(a);t[i.toLowerCase()]=n}));return t}function createStatusCodeList(e){return Object.keys(e).map((function mapCode(e){return Number(e)}))}function getStatusCode(e){var t=e.toLowerCase();if(!Object.prototype.hasOwnProperty.call(status.code,t)){throw new Error('invalid status message: "'+e+'"')}return status.code[t]}function getStatusMessage(e){if(!Object.prototype.hasOwnProperty.call(status.message,e)){throw new Error("invalid status code: "+e)}return status.message[e]}function status(e){if(typeof e==="number"){return getStatusMessage(e)}if(typeof e!=="string"){throw new TypeError("code must be a number or string")}var t=parseInt(e,10);if(!isNaN(t)){return getStatusMessage(t)}return getStatusCode(e)}},637:e=>{"use strict"; +/*! + * toidentifier + * Copyright(c) 2016 Douglas Christopher Wilson + * MIT Licensed + */e.exports=toIdentifier;function toIdentifier(e){return e.split(" ").map((function(e){return e.slice(0,1).toUpperCase()+e.slice(1)})).join("").replace(/[^ _0-9a-z]/gi,"")}},852:e=>{"use strict";e.exports=require("async_hooks")},113:e=>{"use strict";e.exports=require("crypto")},361:e=>{"use strict";e.exports=require("events")},147:e=>{"use strict";e.exports=require("fs")},937:e=>{"use strict";e.exports=require("next/dist/compiled/debug")},890:e=>{"use strict";e.exports=require("next/dist/compiled/fresh")},17:e=>{"use strict";e.exports=require("path")},781:e=>{"use strict";e.exports=require("stream")},837:e=>{"use strict";e.exports=require("util")},796:e=>{"use strict";e.exports=require("zlib")},598:e=>{"use strict";e.exports=JSON.parse('{"application/andrew-inset":["ez"],"application/applixware":["aw"],"application/atom+xml":["atom"],"application/atomcat+xml":["atomcat"],"application/atomsvc+xml":["atomsvc"],"application/bdoc":["bdoc"],"application/ccxml+xml":["ccxml"],"application/cdmi-capability":["cdmia"],"application/cdmi-container":["cdmic"],"application/cdmi-domain":["cdmid"],"application/cdmi-object":["cdmio"],"application/cdmi-queue":["cdmiq"],"application/cu-seeme":["cu"],"application/dash+xml":["mpd"],"application/davmount+xml":["davmount"],"application/docbook+xml":["dbk"],"application/dssc+der":["dssc"],"application/dssc+xml":["xdssc"],"application/ecmascript":["ecma"],"application/emma+xml":["emma"],"application/epub+zip":["epub"],"application/exi":["exi"],"application/font-tdpfr":["pfr"],"application/font-woff":[],"application/font-woff2":[],"application/geo+json":["geojson"],"application/gml+xml":["gml"],"application/gpx+xml":["gpx"],"application/gxf":["gxf"],"application/gzip":["gz"],"application/hyperstudio":["stk"],"application/inkml+xml":["ink","inkml"],"application/ipfix":["ipfix"],"application/java-archive":["jar","war","ear"],"application/java-serialized-object":["ser"],"application/java-vm":["class"],"application/javascript":["js","mjs"],"application/json":["json","map"],"application/json5":["json5"],"application/jsonml+json":["jsonml"],"application/ld+json":["jsonld"],"application/lost+xml":["lostxml"],"application/mac-binhex40":["hqx"],"application/mac-compactpro":["cpt"],"application/mads+xml":["mads"],"application/manifest+json":["webmanifest"],"application/marc":["mrc"],"application/marcxml+xml":["mrcx"],"application/mathematica":["ma","nb","mb"],"application/mathml+xml":["mathml"],"application/mbox":["mbox"],"application/mediaservercontrol+xml":["mscml"],"application/metalink+xml":["metalink"],"application/metalink4+xml":["meta4"],"application/mets+xml":["mets"],"application/mods+xml":["mods"],"application/mp21":["m21","mp21"],"application/mp4":["mp4s","m4p"],"application/msword":["doc","dot"],"application/mxf":["mxf"],"application/octet-stream":["bin","dms","lrf","mar","so","dist","distz","pkg","bpk","dump","elc","deploy","exe","dll","deb","dmg","iso","img","msi","msp","msm","buffer"],"application/oda":["oda"],"application/oebps-package+xml":["opf"],"application/ogg":["ogx"],"application/omdoc+xml":["omdoc"],"application/onenote":["onetoc","onetoc2","onetmp","onepkg"],"application/oxps":["oxps"],"application/patch-ops-error+xml":["xer"],"application/pdf":["pdf"],"application/pgp-encrypted":["pgp"],"application/pgp-signature":["asc","sig"],"application/pics-rules":["prf"],"application/pkcs10":["p10"],"application/pkcs7-mime":["p7m","p7c"],"application/pkcs7-signature":["p7s"],"application/pkcs8":["p8"],"application/pkix-attr-cert":["ac"],"application/pkix-cert":["cer"],"application/pkix-crl":["crl"],"application/pkix-pkipath":["pkipath"],"application/pkixcmp":["pki"],"application/pls+xml":["pls"],"application/postscript":["ai","eps","ps"],"application/prs.cww":["cww"],"application/pskc+xml":["pskcxml"],"application/raml+yaml":["raml"],"application/rdf+xml":["rdf"],"application/reginfo+xml":["rif"],"application/relax-ng-compact-syntax":["rnc"],"application/resource-lists+xml":["rl"],"application/resource-lists-diff+xml":["rld"],"application/rls-services+xml":["rs"],"application/rpki-ghostbusters":["gbr"],"application/rpki-manifest":["mft"],"application/rpki-roa":["roa"],"application/rsd+xml":["rsd"],"application/rss+xml":["rss"],"application/rtf":["rtf"],"application/sbml+xml":["sbml"],"application/scvp-cv-request":["scq"],"application/scvp-cv-response":["scs"],"application/scvp-vp-request":["spq"],"application/scvp-vp-response":["spp"],"application/sdp":["sdp"],"application/set-payment-initiation":["setpay"],"application/set-registration-initiation":["setreg"],"application/shf+xml":["shf"],"application/smil+xml":["smi","smil"],"application/sparql-query":["rq"],"application/sparql-results+xml":["srx"],"application/srgs":["gram"],"application/srgs+xml":["grxml"],"application/sru+xml":["sru"],"application/ssdl+xml":["ssdl"],"application/ssml+xml":["ssml"],"application/tei+xml":["tei","teicorpus"],"application/thraud+xml":["tfi"],"application/timestamped-data":["tsd"],"application/vnd.3gpp.pic-bw-large":["plb"],"application/vnd.3gpp.pic-bw-small":["psb"],"application/vnd.3gpp.pic-bw-var":["pvb"],"application/vnd.3gpp2.tcap":["tcap"],"application/vnd.3m.post-it-notes":["pwn"],"application/vnd.accpac.simply.aso":["aso"],"application/vnd.accpac.simply.imp":["imp"],"application/vnd.acucobol":["acu"],"application/vnd.acucorp":["atc","acutc"],"application/vnd.adobe.air-application-installer-package+zip":["air"],"application/vnd.adobe.formscentral.fcdt":["fcdt"],"application/vnd.adobe.fxp":["fxp","fxpl"],"application/vnd.adobe.xdp+xml":["xdp"],"application/vnd.adobe.xfdf":["xfdf"],"application/vnd.ahead.space":["ahead"],"application/vnd.airzip.filesecure.azf":["azf"],"application/vnd.airzip.filesecure.azs":["azs"],"application/vnd.amazon.ebook":["azw"],"application/vnd.americandynamics.acc":["acc"],"application/vnd.amiga.ami":["ami"],"application/vnd.android.package-archive":["apk"],"application/vnd.anser-web-certificate-issue-initiation":["cii"],"application/vnd.anser-web-funds-transfer-initiation":["fti"],"application/vnd.antix.game-component":["atx"],"application/vnd.apple.installer+xml":["mpkg"],"application/vnd.apple.mpegurl":["m3u8"],"application/vnd.apple.pkpass":["pkpass"],"application/vnd.aristanetworks.swi":["swi"],"application/vnd.astraea-software.iota":["iota"],"application/vnd.audiograph":["aep"],"application/vnd.blueice.multipass":["mpm"],"application/vnd.bmi":["bmi"],"application/vnd.businessobjects":["rep"],"application/vnd.chemdraw+xml":["cdxml"],"application/vnd.chipnuts.karaoke-mmd":["mmd"],"application/vnd.cinderella":["cdy"],"application/vnd.claymore":["cla"],"application/vnd.cloanto.rp9":["rp9"],"application/vnd.clonk.c4group":["c4g","c4d","c4f","c4p","c4u"],"application/vnd.cluetrust.cartomobile-config":["c11amc"],"application/vnd.cluetrust.cartomobile-config-pkg":["c11amz"],"application/vnd.commonspace":["csp"],"application/vnd.contact.cmsg":["cdbcmsg"],"application/vnd.cosmocaller":["cmc"],"application/vnd.crick.clicker":["clkx"],"application/vnd.crick.clicker.keyboard":["clkk"],"application/vnd.crick.clicker.palette":["clkp"],"application/vnd.crick.clicker.template":["clkt"],"application/vnd.crick.clicker.wordbank":["clkw"],"application/vnd.criticaltools.wbs+xml":["wbs"],"application/vnd.ctc-posml":["pml"],"application/vnd.cups-ppd":["ppd"],"application/vnd.curl.car":["car"],"application/vnd.curl.pcurl":["pcurl"],"application/vnd.dart":["dart"],"application/vnd.data-vision.rdz":["rdz"],"application/vnd.dece.data":["uvf","uvvf","uvd","uvvd"],"application/vnd.dece.ttml+xml":["uvt","uvvt"],"application/vnd.dece.unspecified":["uvx","uvvx"],"application/vnd.dece.zip":["uvz","uvvz"],"application/vnd.denovo.fcselayout-link":["fe_launch"],"application/vnd.dna":["dna"],"application/vnd.dolby.mlp":["mlp"],"application/vnd.dpgraph":["dpg"],"application/vnd.dreamfactory":["dfac"],"application/vnd.ds-keypoint":["kpxx"],"application/vnd.dvb.ait":["ait"],"application/vnd.dvb.service":["svc"],"application/vnd.dynageo":["geo"],"application/vnd.ecowin.chart":["mag"],"application/vnd.enliven":["nml"],"application/vnd.epson.esf":["esf"],"application/vnd.epson.msf":["msf"],"application/vnd.epson.quickanime":["qam"],"application/vnd.epson.salt":["slt"],"application/vnd.epson.ssf":["ssf"],"application/vnd.eszigno3+xml":["es3","et3"],"application/vnd.ezpix-album":["ez2"],"application/vnd.ezpix-package":["ez3"],"application/vnd.fdf":["fdf"],"application/vnd.fdsn.mseed":["mseed"],"application/vnd.fdsn.seed":["seed","dataless"],"application/vnd.flographit":["gph"],"application/vnd.fluxtime.clip":["ftc"],"application/vnd.framemaker":["fm","frame","maker","book"],"application/vnd.frogans.fnc":["fnc"],"application/vnd.frogans.ltf":["ltf"],"application/vnd.fsc.weblaunch":["fsc"],"application/vnd.fujitsu.oasys":["oas"],"application/vnd.fujitsu.oasys2":["oa2"],"application/vnd.fujitsu.oasys3":["oa3"],"application/vnd.fujitsu.oasysgp":["fg5"],"application/vnd.fujitsu.oasysprs":["bh2"],"application/vnd.fujixerox.ddd":["ddd"],"application/vnd.fujixerox.docuworks":["xdw"],"application/vnd.fujixerox.docuworks.binder":["xbd"],"application/vnd.fuzzysheet":["fzs"],"application/vnd.genomatix.tuxedo":["txd"],"application/vnd.geogebra.file":["ggb"],"application/vnd.geogebra.tool":["ggt"],"application/vnd.geometry-explorer":["gex","gre"],"application/vnd.geonext":["gxt"],"application/vnd.geoplan":["g2w"],"application/vnd.geospace":["g3w"],"application/vnd.gmx":["gmx"],"application/vnd.google-apps.document":["gdoc"],"application/vnd.google-apps.presentation":["gslides"],"application/vnd.google-apps.spreadsheet":["gsheet"],"application/vnd.google-earth.kml+xml":["kml"],"application/vnd.google-earth.kmz":["kmz"],"application/vnd.grafeq":["gqf","gqs"],"application/vnd.groove-account":["gac"],"application/vnd.groove-help":["ghf"],"application/vnd.groove-identity-message":["gim"],"application/vnd.groove-injector":["grv"],"application/vnd.groove-tool-message":["gtm"],"application/vnd.groove-tool-template":["tpl"],"application/vnd.groove-vcard":["vcg"],"application/vnd.hal+xml":["hal"],"application/vnd.handheld-entertainment+xml":["zmm"],"application/vnd.hbci":["hbci"],"application/vnd.hhe.lesson-player":["les"],"application/vnd.hp-hpgl":["hpgl"],"application/vnd.hp-hpid":["hpid"],"application/vnd.hp-hps":["hps"],"application/vnd.hp-jlyt":["jlt"],"application/vnd.hp-pcl":["pcl"],"application/vnd.hp-pclxl":["pclxl"],"application/vnd.hydrostatix.sof-data":["sfd-hdstx"],"application/vnd.ibm.minipay":["mpy"],"application/vnd.ibm.modcap":["afp","listafp","list3820"],"application/vnd.ibm.rights-management":["irm"],"application/vnd.ibm.secure-container":["sc"],"application/vnd.iccprofile":["icc","icm"],"application/vnd.igloader":["igl"],"application/vnd.immervision-ivp":["ivp"],"application/vnd.immervision-ivu":["ivu"],"application/vnd.insors.igm":["igm"],"application/vnd.intercon.formnet":["xpw","xpx"],"application/vnd.intergeo":["i2g"],"application/vnd.intu.qbo":["qbo"],"application/vnd.intu.qfx":["qfx"],"application/vnd.ipunplugged.rcprofile":["rcprofile"],"application/vnd.irepository.package+xml":["irp"],"application/vnd.is-xpr":["xpr"],"application/vnd.isac.fcs":["fcs"],"application/vnd.jam":["jam"],"application/vnd.jcp.javame.midlet-rms":["rms"],"application/vnd.jisp":["jisp"],"application/vnd.joost.joda-archive":["joda"],"application/vnd.kahootz":["ktz","ktr"],"application/vnd.kde.karbon":["karbon"],"application/vnd.kde.kchart":["chrt"],"application/vnd.kde.kformula":["kfo"],"application/vnd.kde.kivio":["flw"],"application/vnd.kde.kontour":["kon"],"application/vnd.kde.kpresenter":["kpr","kpt"],"application/vnd.kde.kspread":["ksp"],"application/vnd.kde.kword":["kwd","kwt"],"application/vnd.kenameaapp":["htke"],"application/vnd.kidspiration":["kia"],"application/vnd.kinar":["kne","knp"],"application/vnd.koan":["skp","skd","skt","skm"],"application/vnd.kodak-descriptor":["sse"],"application/vnd.las.las+xml":["lasxml"],"application/vnd.llamagraphics.life-balance.desktop":["lbd"],"application/vnd.llamagraphics.life-balance.exchange+xml":["lbe"],"application/vnd.lotus-1-2-3":["123"],"application/vnd.lotus-approach":["apr"],"application/vnd.lotus-freelance":["pre"],"application/vnd.lotus-notes":["nsf"],"application/vnd.lotus-organizer":["org"],"application/vnd.lotus-screencam":["scm"],"application/vnd.lotus-wordpro":["lwp"],"application/vnd.macports.portpkg":["portpkg"],"application/vnd.mcd":["mcd"],"application/vnd.medcalcdata":["mc1"],"application/vnd.mediastation.cdkey":["cdkey"],"application/vnd.mfer":["mwf"],"application/vnd.mfmp":["mfm"],"application/vnd.micrografx.flo":["flo"],"application/vnd.micrografx.igx":["igx"],"application/vnd.mif":["mif"],"application/vnd.mobius.daf":["daf"],"application/vnd.mobius.dis":["dis"],"application/vnd.mobius.mbk":["mbk"],"application/vnd.mobius.mqy":["mqy"],"application/vnd.mobius.msl":["msl"],"application/vnd.mobius.plc":["plc"],"application/vnd.mobius.txf":["txf"],"application/vnd.mophun.application":["mpn"],"application/vnd.mophun.certificate":["mpc"],"application/vnd.mozilla.xul+xml":["xul"],"application/vnd.ms-artgalry":["cil"],"application/vnd.ms-cab-compressed":["cab"],"application/vnd.ms-excel":["xls","xlm","xla","xlc","xlt","xlw"],"application/vnd.ms-excel.addin.macroenabled.12":["xlam"],"application/vnd.ms-excel.sheet.binary.macroenabled.12":["xlsb"],"application/vnd.ms-excel.sheet.macroenabled.12":["xlsm"],"application/vnd.ms-excel.template.macroenabled.12":["xltm"],"application/vnd.ms-fontobject":["eot"],"application/vnd.ms-htmlhelp":["chm"],"application/vnd.ms-ims":["ims"],"application/vnd.ms-lrm":["lrm"],"application/vnd.ms-officetheme":["thmx"],"application/vnd.ms-outlook":["msg"],"application/vnd.ms-pki.seccat":["cat"],"application/vnd.ms-pki.stl":["stl"],"application/vnd.ms-powerpoint":["ppt","pps","pot"],"application/vnd.ms-powerpoint.addin.macroenabled.12":["ppam"],"application/vnd.ms-powerpoint.presentation.macroenabled.12":["pptm"],"application/vnd.ms-powerpoint.slide.macroenabled.12":["sldm"],"application/vnd.ms-powerpoint.slideshow.macroenabled.12":["ppsm"],"application/vnd.ms-powerpoint.template.macroenabled.12":["potm"],"application/vnd.ms-project":["mpp","mpt"],"application/vnd.ms-word.document.macroenabled.12":["docm"],"application/vnd.ms-word.template.macroenabled.12":["dotm"],"application/vnd.ms-works":["wps","wks","wcm","wdb"],"application/vnd.ms-wpl":["wpl"],"application/vnd.ms-xpsdocument":["xps"],"application/vnd.mseq":["mseq"],"application/vnd.musician":["mus"],"application/vnd.muvee.style":["msty"],"application/vnd.mynfc":["taglet"],"application/vnd.neurolanguage.nlu":["nlu"],"application/vnd.nitf":["ntf","nitf"],"application/vnd.noblenet-directory":["nnd"],"application/vnd.noblenet-sealer":["nns"],"application/vnd.noblenet-web":["nnw"],"application/vnd.nokia.n-gage.data":["ngdat"],"application/vnd.nokia.n-gage.symbian.install":["n-gage"],"application/vnd.nokia.radio-preset":["rpst"],"application/vnd.nokia.radio-presets":["rpss"],"application/vnd.novadigm.edm":["edm"],"application/vnd.novadigm.edx":["edx"],"application/vnd.novadigm.ext":["ext"],"application/vnd.oasis.opendocument.chart":["odc"],"application/vnd.oasis.opendocument.chart-template":["otc"],"application/vnd.oasis.opendocument.database":["odb"],"application/vnd.oasis.opendocument.formula":["odf"],"application/vnd.oasis.opendocument.formula-template":["odft"],"application/vnd.oasis.opendocument.graphics":["odg"],"application/vnd.oasis.opendocument.graphics-template":["otg"],"application/vnd.oasis.opendocument.image":["odi"],"application/vnd.oasis.opendocument.image-template":["oti"],"application/vnd.oasis.opendocument.presentation":["odp"],"application/vnd.oasis.opendocument.presentation-template":["otp"],"application/vnd.oasis.opendocument.spreadsheet":["ods"],"application/vnd.oasis.opendocument.spreadsheet-template":["ots"],"application/vnd.oasis.opendocument.text":["odt"],"application/vnd.oasis.opendocument.text-master":["odm"],"application/vnd.oasis.opendocument.text-template":["ott"],"application/vnd.oasis.opendocument.text-web":["oth"],"application/vnd.olpc-sugar":["xo"],"application/vnd.oma.dd2+xml":["dd2"],"application/vnd.openofficeorg.extension":["oxt"],"application/vnd.openxmlformats-officedocument.presentationml.presentation":["pptx"],"application/vnd.openxmlformats-officedocument.presentationml.slide":["sldx"],"application/vnd.openxmlformats-officedocument.presentationml.slideshow":["ppsx"],"application/vnd.openxmlformats-officedocument.presentationml.template":["potx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet":["xlsx"],"application/vnd.openxmlformats-officedocument.spreadsheetml.template":["xltx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.document":["docx"],"application/vnd.openxmlformats-officedocument.wordprocessingml.template":["dotx"],"application/vnd.osgeo.mapguide.package":["mgp"],"application/vnd.osgi.dp":["dp"],"application/vnd.osgi.subsystem":["esa"],"application/vnd.palm":["pdb","pqa","oprc"],"application/vnd.pawaafile":["paw"],"application/vnd.pg.format":["str"],"application/vnd.pg.osasli":["ei6"],"application/vnd.picsel":["efif"],"application/vnd.pmi.widget":["wg"],"application/vnd.pocketlearn":["plf"],"application/vnd.powerbuilder6":["pbd"],"application/vnd.previewsystems.box":["box"],"application/vnd.proteus.magazine":["mgz"],"application/vnd.publishare-delta-tree":["qps"],"application/vnd.pvi.ptid1":["ptid"],"application/vnd.quark.quarkxpress":["qxd","qxt","qwd","qwt","qxl","qxb"],"application/vnd.realvnc.bed":["bed"],"application/vnd.recordare.musicxml":["mxl"],"application/vnd.recordare.musicxml+xml":["musicxml"],"application/vnd.rig.cryptonote":["cryptonote"],"application/vnd.rim.cod":["cod"],"application/vnd.rn-realmedia":["rm"],"application/vnd.rn-realmedia-vbr":["rmvb"],"application/vnd.route66.link66+xml":["link66"],"application/vnd.sailingtracker.track":["st"],"application/vnd.seemail":["see"],"application/vnd.sema":["sema"],"application/vnd.semd":["semd"],"application/vnd.semf":["semf"],"application/vnd.shana.informed.formdata":["ifm"],"application/vnd.shana.informed.formtemplate":["itp"],"application/vnd.shana.informed.interchange":["iif"],"application/vnd.shana.informed.package":["ipk"],"application/vnd.simtech-mindmapper":["twd","twds"],"application/vnd.smaf":["mmf"],"application/vnd.smart.teacher":["teacher"],"application/vnd.solent.sdkm+xml":["sdkm","sdkd"],"application/vnd.spotfire.dxp":["dxp"],"application/vnd.spotfire.sfs":["sfs"],"application/vnd.stardivision.calc":["sdc"],"application/vnd.stardivision.draw":["sda"],"application/vnd.stardivision.impress":["sdd"],"application/vnd.stardivision.math":["smf"],"application/vnd.stardivision.writer":["sdw","vor"],"application/vnd.stardivision.writer-global":["sgl"],"application/vnd.stepmania.package":["smzip"],"application/vnd.stepmania.stepchart":["sm"],"application/vnd.sun.wadl+xml":["wadl"],"application/vnd.sun.xml.calc":["sxc"],"application/vnd.sun.xml.calc.template":["stc"],"application/vnd.sun.xml.draw":["sxd"],"application/vnd.sun.xml.draw.template":["std"],"application/vnd.sun.xml.impress":["sxi"],"application/vnd.sun.xml.impress.template":["sti"],"application/vnd.sun.xml.math":["sxm"],"application/vnd.sun.xml.writer":["sxw"],"application/vnd.sun.xml.writer.global":["sxg"],"application/vnd.sun.xml.writer.template":["stw"],"application/vnd.sus-calendar":["sus","susp"],"application/vnd.svd":["svd"],"application/vnd.symbian.install":["sis","sisx"],"application/vnd.syncml+xml":["xsm"],"application/vnd.syncml.dm+wbxml":["bdm"],"application/vnd.syncml.dm+xml":["xdm"],"application/vnd.tao.intent-module-archive":["tao"],"application/vnd.tcpdump.pcap":["pcap","cap","dmp"],"application/vnd.tmobile-livetv":["tmo"],"application/vnd.trid.tpt":["tpt"],"application/vnd.triscape.mxs":["mxs"],"application/vnd.trueapp":["tra"],"application/vnd.ufdl":["ufd","ufdl"],"application/vnd.uiq.theme":["utz"],"application/vnd.umajin":["umj"],"application/vnd.unity":["unityweb"],"application/vnd.uoml+xml":["uoml"],"application/vnd.vcx":["vcx"],"application/vnd.visio":["vsd","vst","vss","vsw"],"application/vnd.visionary":["vis"],"application/vnd.vsf":["vsf"],"application/vnd.wap.wbxml":["wbxml"],"application/vnd.wap.wmlc":["wmlc"],"application/vnd.wap.wmlscriptc":["wmlsc"],"application/vnd.webturbo":["wtb"],"application/vnd.wolfram.player":["nbp"],"application/vnd.wordperfect":["wpd"],"application/vnd.wqd":["wqd"],"application/vnd.wt.stf":["stf"],"application/vnd.xara":["xar"],"application/vnd.xfdl":["xfdl"],"application/vnd.yamaha.hv-dic":["hvd"],"application/vnd.yamaha.hv-script":["hvs"],"application/vnd.yamaha.hv-voice":["hvp"],"application/vnd.yamaha.openscoreformat":["osf"],"application/vnd.yamaha.openscoreformat.osfpvg+xml":["osfpvg"],"application/vnd.yamaha.smaf-audio":["saf"],"application/vnd.yamaha.smaf-phrase":["spf"],"application/vnd.yellowriver-custom-menu":["cmp"],"application/vnd.zul":["zir","zirz"],"application/vnd.zzazz.deck+xml":["zaz"],"application/voicexml+xml":["vxml"],"application/wasm":["wasm"],"application/widget":["wgt"],"application/winhlp":["hlp"],"application/wsdl+xml":["wsdl"],"application/wspolicy+xml":["wspolicy"],"application/x-7z-compressed":["7z"],"application/x-abiword":["abw"],"application/x-ace-compressed":["ace"],"application/x-apple-diskimage":[],"application/x-arj":["arj"],"application/x-authorware-bin":["aab","x32","u32","vox"],"application/x-authorware-map":["aam"],"application/x-authorware-seg":["aas"],"application/x-bcpio":["bcpio"],"application/x-bdoc":[],"application/x-bittorrent":["torrent"],"application/x-blorb":["blb","blorb"],"application/x-bzip":["bz"],"application/x-bzip2":["bz2","boz"],"application/x-cbr":["cbr","cba","cbt","cbz","cb7"],"application/x-cdlink":["vcd"],"application/x-cfs-compressed":["cfs"],"application/x-chat":["chat"],"application/x-chess-pgn":["pgn"],"application/x-chrome-extension":["crx"],"application/x-cocoa":["cco"],"application/x-conference":["nsc"],"application/x-cpio":["cpio"],"application/x-csh":["csh"],"application/x-debian-package":["udeb"],"application/x-dgc-compressed":["dgc"],"application/x-director":["dir","dcr","dxr","cst","cct","cxt","w3d","fgd","swa"],"application/x-doom":["wad"],"application/x-dtbncx+xml":["ncx"],"application/x-dtbook+xml":["dtb"],"application/x-dtbresource+xml":["res"],"application/x-dvi":["dvi"],"application/x-envoy":["evy"],"application/x-eva":["eva"],"application/x-font-bdf":["bdf"],"application/x-font-ghostscript":["gsf"],"application/x-font-linux-psf":["psf"],"application/x-font-pcf":["pcf"],"application/x-font-snf":["snf"],"application/x-font-type1":["pfa","pfb","pfm","afm"],"application/x-freearc":["arc"],"application/x-futuresplash":["spl"],"application/x-gca-compressed":["gca"],"application/x-glulx":["ulx"],"application/x-gnumeric":["gnumeric"],"application/x-gramps-xml":["gramps"],"application/x-gtar":["gtar"],"application/x-hdf":["hdf"],"application/x-httpd-php":["php"],"application/x-install-instructions":["install"],"application/x-iso9660-image":[],"application/x-java-archive-diff":["jardiff"],"application/x-java-jnlp-file":["jnlp"],"application/x-latex":["latex"],"application/x-lua-bytecode":["luac"],"application/x-lzh-compressed":["lzh","lha"],"application/x-makeself":["run"],"application/x-mie":["mie"],"application/x-mobipocket-ebook":["prc","mobi"],"application/x-ms-application":["application"],"application/x-ms-shortcut":["lnk"],"application/x-ms-wmd":["wmd"],"application/x-ms-wmz":["wmz"],"application/x-ms-xbap":["xbap"],"application/x-msaccess":["mdb"],"application/x-msbinder":["obd"],"application/x-mscardfile":["crd"],"application/x-msclip":["clp"],"application/x-msdos-program":[],"application/x-msdownload":["com","bat"],"application/x-msmediaview":["mvb","m13","m14"],"application/x-msmetafile":["wmf","emf","emz"],"application/x-msmoney":["mny"],"application/x-mspublisher":["pub"],"application/x-msschedule":["scd"],"application/x-msterminal":["trm"],"application/x-mswrite":["wri"],"application/x-netcdf":["nc","cdf"],"application/x-ns-proxy-autoconfig":["pac"],"application/x-nzb":["nzb"],"application/x-perl":["pl","pm"],"application/x-pilot":[],"application/x-pkcs12":["p12","pfx"],"application/x-pkcs7-certificates":["p7b","spc"],"application/x-pkcs7-certreqresp":["p7r"],"application/x-rar-compressed":["rar"],"application/x-redhat-package-manager":["rpm"],"application/x-research-info-systems":["ris"],"application/x-sea":["sea"],"application/x-sh":["sh"],"application/x-shar":["shar"],"application/x-shockwave-flash":["swf"],"application/x-silverlight-app":["xap"],"application/x-sql":["sql"],"application/x-stuffit":["sit"],"application/x-stuffitx":["sitx"],"application/x-subrip":["srt"],"application/x-sv4cpio":["sv4cpio"],"application/x-sv4crc":["sv4crc"],"application/x-t3vm-image":["t3"],"application/x-tads":["gam"],"application/x-tar":["tar"],"application/x-tcl":["tcl","tk"],"application/x-tex":["tex"],"application/x-tex-tfm":["tfm"],"application/x-texinfo":["texinfo","texi"],"application/x-tgif":["obj"],"application/x-ustar":["ustar"],"application/x-virtualbox-hdd":["hdd"],"application/x-virtualbox-ova":["ova"],"application/x-virtualbox-ovf":["ovf"],"application/x-virtualbox-vbox":["vbox"],"application/x-virtualbox-vbox-extpack":["vbox-extpack"],"application/x-virtualbox-vdi":["vdi"],"application/x-virtualbox-vhd":["vhd"],"application/x-virtualbox-vmdk":["vmdk"],"application/x-wais-source":["src"],"application/x-web-app-manifest+json":["webapp"],"application/x-x509-ca-cert":["der","crt","pem"],"application/x-xfig":["fig"],"application/x-xliff+xml":["xlf"],"application/x-xpinstall":["xpi"],"application/x-xz":["xz"],"application/x-zmachine":["z1","z2","z3","z4","z5","z6","z7","z8"],"application/xaml+xml":["xaml"],"application/xcap-diff+xml":["xdf"],"application/xenc+xml":["xenc"],"application/xhtml+xml":["xhtml","xht"],"application/xml":["xml","xsl","xsd","rng"],"application/xml-dtd":["dtd"],"application/xop+xml":["xop"],"application/xproc+xml":["xpl"],"application/xslt+xml":["xslt"],"application/xspf+xml":["xspf"],"application/xv+xml":["mxml","xhvml","xvml","xvm"],"application/yang":["yang"],"application/yin+xml":["yin"],"application/zip":["zip"],"audio/3gpp":[],"audio/adpcm":["adp"],"audio/basic":["au","snd"],"audio/midi":["mid","midi","kar","rmi"],"audio/mp3":[],"audio/mp4":["m4a","mp4a"],"audio/mpeg":["mpga","mp2","mp2a","mp3","m2a","m3a"],"audio/ogg":["oga","ogg","spx"],"audio/s3m":["s3m"],"audio/silk":["sil"],"audio/vnd.dece.audio":["uva","uvva"],"audio/vnd.digital-winds":["eol"],"audio/vnd.dra":["dra"],"audio/vnd.dts":["dts"],"audio/vnd.dts.hd":["dtshd"],"audio/vnd.lucent.voice":["lvp"],"audio/vnd.ms-playready.media.pya":["pya"],"audio/vnd.nuera.ecelp4800":["ecelp4800"],"audio/vnd.nuera.ecelp7470":["ecelp7470"],"audio/vnd.nuera.ecelp9600":["ecelp9600"],"audio/vnd.rip":["rip"],"audio/wav":["wav"],"audio/wave":[],"audio/webm":["weba"],"audio/x-aac":["aac"],"audio/x-aiff":["aif","aiff","aifc"],"audio/x-caf":["caf"],"audio/x-flac":["flac"],"audio/x-m4a":[],"audio/x-matroska":["mka"],"audio/x-mpegurl":["m3u"],"audio/x-ms-wax":["wax"],"audio/x-ms-wma":["wma"],"audio/x-pn-realaudio":["ram","ra"],"audio/x-pn-realaudio-plugin":["rmp"],"audio/x-realaudio":[],"audio/x-wav":[],"audio/xm":["xm"],"chemical/x-cdx":["cdx"],"chemical/x-cif":["cif"],"chemical/x-cmdf":["cmdf"],"chemical/x-cml":["cml"],"chemical/x-csml":["csml"],"chemical/x-xyz":["xyz"],"font/collection":["ttc"],"font/otf":["otf"],"font/ttf":["ttf"],"font/woff":["woff"],"font/woff2":["woff2"],"image/apng":["apng"],"image/bmp":["bmp"],"image/cgm":["cgm"],"image/g3fax":["g3"],"image/gif":["gif"],"image/ief":["ief"],"image/jp2":["jp2","jpg2"],"image/jpeg":["jpeg","jpg","jpe"],"image/jpm":["jpm"],"image/jpx":["jpx","jpf"],"image/ktx":["ktx"],"image/png":["png"],"image/prs.btif":["btif"],"image/sgi":["sgi"],"image/svg+xml":["svg","svgz"],"image/tiff":["tiff","tif"],"image/vnd.adobe.photoshop":["psd"],"image/vnd.dece.graphic":["uvi","uvvi","uvg","uvvg"],"image/vnd.djvu":["djvu","djv"],"image/vnd.dvb.subtitle":[],"image/vnd.dwg":["dwg"],"image/vnd.dxf":["dxf"],"image/vnd.fastbidsheet":["fbs"],"image/vnd.fpx":["fpx"],"image/vnd.fst":["fst"],"image/vnd.fujixerox.edmics-mmr":["mmr"],"image/vnd.fujixerox.edmics-rlc":["rlc"],"image/vnd.ms-modi":["mdi"],"image/vnd.ms-photo":["wdp"],"image/vnd.net-fpx":["npx"],"image/vnd.wap.wbmp":["wbmp"],"image/vnd.xiff":["xif"],"image/webp":["webp"],"image/x-3ds":["3ds"],"image/x-cmu-raster":["ras"],"image/x-cmx":["cmx"],"image/x-freehand":["fh","fhc","fh4","fh5","fh7"],"image/x-icon":["ico"],"image/x-jng":["jng"],"image/x-mrsid-image":["sid"],"image/x-ms-bmp":[],"image/x-pcx":["pcx"],"image/x-pict":["pic","pct"],"image/x-portable-anymap":["pnm"],"image/x-portable-bitmap":["pbm"],"image/x-portable-graymap":["pgm"],"image/x-portable-pixmap":["ppm"],"image/x-rgb":["rgb"],"image/x-tga":["tga"],"image/x-xbitmap":["xbm"],"image/x-xpixmap":["xpm"],"image/x-xwindowdump":["xwd"],"message/rfc822":["eml","mime"],"model/gltf+json":["gltf"],"model/gltf-binary":["glb"],"model/iges":["igs","iges"],"model/mesh":["msh","mesh","silo"],"model/vnd.collada+xml":["dae"],"model/vnd.dwf":["dwf"],"model/vnd.gdl":["gdl"],"model/vnd.gtw":["gtw"],"model/vnd.mts":["mts"],"model/vnd.vtu":["vtu"],"model/vrml":["wrl","vrml"],"model/x3d+binary":["x3db","x3dbz"],"model/x3d+vrml":["x3dv","x3dvz"],"model/x3d+xml":["x3d","x3dz"],"text/cache-manifest":["appcache","manifest"],"text/calendar":["ics","ifb"],"text/coffeescript":["coffee","litcoffee"],"text/css":["css"],"text/csv":["csv"],"text/hjson":["hjson"],"text/html":["html","htm","shtml"],"text/jade":["jade"],"text/jsx":["jsx"],"text/less":["less"],"text/markdown":["markdown","md"],"text/mathml":["mml"],"text/n3":["n3"],"text/plain":["txt","text","conf","def","list","log","in","ini"],"text/prs.lines.tag":["dsc"],"text/richtext":["rtx"],"text/rtf":[],"text/sgml":["sgml","sgm"],"text/slim":["slim","slm"],"text/stylus":["stylus","styl"],"text/tab-separated-values":["tsv"],"text/troff":["t","tr","roff","man","me","ms"],"text/turtle":["ttl"],"text/uri-list":["uri","uris","urls"],"text/vcard":["vcard"],"text/vnd.curl":["curl"],"text/vnd.curl.dcurl":["dcurl"],"text/vnd.curl.mcurl":["mcurl"],"text/vnd.curl.scurl":["scurl"],"text/vnd.dvb.subtitle":["sub"],"text/vnd.fly":["fly"],"text/vnd.fmi.flexstor":["flx"],"text/vnd.graphviz":["gv"],"text/vnd.in3d.3dml":["3dml"],"text/vnd.in3d.spot":["spot"],"text/vnd.sun.j2me.app-descriptor":["jad"],"text/vnd.wap.wml":["wml"],"text/vnd.wap.wmlscript":["wmls"],"text/vtt":["vtt"],"text/x-asm":["s","asm"],"text/x-c":["c","cc","cxx","cpp","h","hh","dic"],"text/x-component":["htc"],"text/x-fortran":["f","for","f77","f90"],"text/x-handlebars-template":["hbs"],"text/x-java-source":["java"],"text/x-lua":["lua"],"text/x-markdown":["mkd"],"text/x-nfo":["nfo"],"text/x-opml":["opml"],"text/x-org":[],"text/x-pascal":["p","pas"],"text/x-processing":["pde"],"text/x-sass":["sass"],"text/x-scss":["scss"],"text/x-setext":["etx"],"text/x-sfv":["sfv"],"text/x-suse-ymp":["ymp"],"text/x-uuencode":["uu"],"text/x-vcalendar":["vcs"],"text/x-vcard":["vcf"],"text/xml":[],"text/yaml":["yaml","yml"],"video/3gpp":["3gp","3gpp"],"video/3gpp2":["3g2"],"video/h261":["h261"],"video/h263":["h263"],"video/h264":["h264"],"video/jpeg":["jpgv"],"video/jpm":["jpgm"],"video/mj2":["mj2","mjp2"],"video/mp2t":["ts"],"video/mp4":["mp4","mp4v","mpg4"],"video/mpeg":["mpeg","mpg","mpe","m1v","m2v"],"video/ogg":["ogv"],"video/quicktime":["qt","mov"],"video/vnd.dece.hd":["uvh","uvvh"],"video/vnd.dece.mobile":["uvm","uvvm"],"video/vnd.dece.pd":["uvp","uvvp"],"video/vnd.dece.sd":["uvs","uvvs"],"video/vnd.dece.video":["uvv","uvvv"],"video/vnd.dvb.file":["dvb"],"video/vnd.fvt":["fvt"],"video/vnd.mpegurl":["mxu","m4u"],"video/vnd.ms-playready.media.pyv":["pyv"],"video/vnd.uvvu.mp4":["uvu","uvvu"],"video/vnd.vivo":["viv"],"video/webm":["webm"],"video/x-f4v":["f4v"],"video/x-fli":["fli"],"video/x-flv":["flv"],"video/x-m4v":["m4v"],"video/x-matroska":["mkv","mk3d","mks"],"video/x-mng":["mng"],"video/x-ms-asf":["asf","asx"],"video/x-ms-vob":["vob"],"video/x-ms-wm":["wm"],"video/x-ms-wmv":["wmv"],"video/x-ms-wmx":["wmx"],"video/x-ms-wvx":["wvx"],"video/x-msvideo":["avi"],"video/x-sgi-movie":["movie"],"video/x-smv":["smv"],"x-conference/x-cooltalk":["ice"]}')},64:e=>{"use strict";e.exports=JSON.parse('{"100":"Continue","101":"Switching Protocols","102":"Processing","103":"Early Hints","200":"OK","201":"Created","202":"Accepted","203":"Non-Authoritative Information","204":"No Content","205":"Reset Content","206":"Partial Content","207":"Multi-Status","208":"Already Reported","226":"IM Used","300":"Multiple Choices","301":"Moved Permanently","302":"Found","303":"See Other","304":"Not Modified","305":"Use Proxy","307":"Temporary Redirect","308":"Permanent Redirect","400":"Bad Request","401":"Unauthorized","402":"Payment Required","403":"Forbidden","404":"Not Found","405":"Method Not Allowed","406":"Not Acceptable","407":"Proxy Authentication Required","408":"Request Timeout","409":"Conflict","410":"Gone","411":"Length Required","412":"Precondition Failed","413":"Payload Too Large","414":"URI Too Long","415":"Unsupported Media Type","416":"Range Not Satisfiable","417":"Expectation Failed","418":"I\'m a Teapot","421":"Misdirected Request","422":"Unprocessable Entity","423":"Locked","424":"Failed Dependency","425":"Too Early","426":"Upgrade Required","428":"Precondition Required","429":"Too Many Requests","431":"Request Header Fields Too Large","451":"Unavailable For Legal Reasons","500":"Internal Server Error","501":"Not Implemented","502":"Bad Gateway","503":"Service Unavailable","504":"Gateway Timeout","505":"HTTP Version Not Supported","506":"Variant Also Negotiates","507":"Insufficient Storage","508":"Loop Detected","509":"Bandwidth Limit Exceeded","510":"Not Extended","511":"Network Authentication Required"}')}};var t={};function __nccwpck_require__(a){var i=t[a];if(i!==undefined){return i.exports}var n=t[a]={exports:{}};var r=true;try{e[a](n,n.exports,__nccwpck_require__);r=false}finally{if(r)delete t[a]}return n.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var a=__nccwpck_require__(228);module.exports=a})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/send/package.json b/cli/app/node_modules/next/dist/compiled/send/package.json new file mode 100644 index 00000000000..649e82dff92 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/send/package.json @@ -0,0 +1 @@ +{"name":"send","main":"index.js","author":"TJ Holowaychuk ","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/setimmediate/package.json b/cli/app/node_modules/next/dist/compiled/setimmediate/package.json new file mode 100644 index 00000000000..71242d0ebed --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/setimmediate/package.json @@ -0,0 +1 @@ +{"name":"setimmediate","main":"setImmediate.js","author":"YuzuJS","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/setimmediate/setImmediate.js b/cli/app/node_modules/next/dist/compiled/setimmediate/setImmediate.js new file mode 100644 index 00000000000..19d04a3c7dc --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/setimmediate/setImmediate.js @@ -0,0 +1 @@ +(function(){var e={189:function(){(function(e,t){"use strict";if(e.setImmediate){return}var n=1;var a={};var s=false;var i=e.document;var r;function setImmediate(e){if(typeof e!=="function"){e=new Function(""+e)}var t=new Array(arguments.length-1);for(var s=0;s{if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var r=e;r.quote=function(e){return e.map((function(e){if(e&&typeof e==="object"){return e.op.replace(/(.)/g,"\\$1")}else if(/["\s]/.test(e)&&!/'/.test(e)){return"'"+e.replace(/(['\\])/g,"\\$1")+"'"}else if(/["'\s]/.test(e)){return'"'+e.replace(/(["\\$`!])/g,"\\$1")+'"'}else{return String(e).replace(/([A-Za-z]:)?([#!"$&'()*,:;<=>?@\[\\\]^`{|}])/g,"$1\\$2")}})).join(" ")};var t="(?:"+["\\|\\|","\\&\\&",";;","\\|\\&","\\<\\(",">>",">\\&","[&;()|<>]"].join("|")+")";var n="|&;()<> \\t";var i="(\\\\['\""+n+"]|[^\\s'\""+n+"])+";var a='"((\\\\"|[^"])*?)"';var f="'((\\\\'|[^'])*?)'";var s="";for(var u=0;u<4;u++){s+=(Math.pow(16,8)*Math.random()).toString(16)}r.parse=function(e,r,t){var n=parse(e,r,t);if(typeof r!=="function")return n;return n.reduce((function(e,r){if(typeof r==="object")return e.concat(r);var t=r.split(RegExp("("+s+".*?"+s+")","g"));if(t.length===1)return e.concat(t[0]);return e.concat(t.filter(Boolean).map((function(e){if(RegExp("^"+s).test(e)){return JSON.parse(e.split(s)[1])}else return e})))}),[])};function parse(e,r,n){var u=new RegExp(["("+t+")","("+i+"|"+a+"|"+f+")*"].join("|"),"g");var o=e.match(u).filter(Boolean);var l=false;if(!o)return[];if(!r)r={};if(!n)n={};return o.map((function(e,r){if(l){return}if(RegExp("^"+t+"$").test(e)){return{op:e}}var i="'";var a='"';var f="$";var s=n.escape||"\\";var u=false;var c=false;var p="";var v=false;for(var g=0,d=e.length;g","license":"BSD-3-Clause"} diff --git a/cli/app/node_modules/next/dist/compiled/source-map/source-map.js b/cli/app/node_modules/next/dist/compiled/source-map/source-map.js new file mode 100644 index 00000000000..61febd7a463 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/source-map/source-map.js @@ -0,0 +1 @@ +(()=>{var e={542:(e,r,n)=>{var t=n(749);var o=Object.prototype.hasOwnProperty;var i=typeof Map!=="undefined";function ArraySet(){this._array=[];this._set=i?new Map:Object.create(null)}ArraySet.fromArray=function ArraySet_fromArray(e,r){var n=new ArraySet;for(var t=0,o=e.length;t=0){return r}}else{var n=t.toSetString(e);if(o.call(this._set,n)){return this._set[n]}}throw new Error('"'+e+'" is not in the set.')};ArraySet.prototype.at=function ArraySet_at(e){if(e>=0&&e{var t=n(192);var o=5;var i=1<>1;return r?-n:n}r.encode=function base64VLQ_encode(e){var r="";var n;var i=toVLQSigned(e);do{n=i&a;i>>>=o;if(i>0){n|=u}r+=t.encode(n)}while(i>0);return r};r.decode=function base64VLQ_decode(e,r,n){var i=e.length;var s=0;var l=0;var c,p;do{if(r>=i){throw new Error("Expected more digits in base 64 VLQ value.")}p=t.decode(e.charCodeAt(r++));if(p===-1){throw new Error("Invalid base64 digit: "+e.charAt(r-1))}c=!!(p&u);p&=a;s=s+(p<{var n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split("");r.encode=function(e){if(0<=e&&e{r.GREATEST_LOWER_BOUND=1;r.LEAST_UPPER_BOUND=2;function recursiveSearch(e,n,t,o,i,a){var u=Math.floor((n-e)/2)+e;var s=i(t,o[u],true);if(s===0){return u}else if(s>0){if(n-u>1){return recursiveSearch(u,n,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return n1){return recursiveSearch(e,u,t,o,i,a)}if(a==r.LEAST_UPPER_BOUND){return u}else{return e<0?-1:e}}}r.search=function search(e,n,t,o){if(n.length===0){return-1}var i=recursiveSearch(-1,n.length,e,n,t,o||r.GREATEST_LOWER_BOUND);if(i<0){return-1}while(i-1>=0){if(t(n[i],n[i-1],true)!==0){break}--i}return i}},460:(e,r,n)=>{var t=n(749);function generatedPositionAfter(e,r){var n=e.generatedLine;var o=r.generatedLine;var i=e.generatedColumn;var a=r.generatedColumn;return o>n||o==n&&a>=i||t.compareByGeneratedPositionsInflated(e,r)<=0}function MappingList(){this._array=[];this._sorted=true;this._last={generatedLine:-1,generatedColumn:0}}MappingList.prototype.unsortedForEach=function MappingList_forEach(e,r){this._array.forEach(e,r)};MappingList.prototype.add=function MappingList_add(e){if(generatedPositionAfter(this._last,e)){this._last=e;this._array.push(e)}else{this._sorted=false;this._array.push(e)}};MappingList.prototype.toArray=function MappingList_toArray(){if(!this._sorted){this._array.sort(t.compareByGeneratedPositionsInflated);this._sorted=true}return this._array};r.H=MappingList},136:(e,r)=>{function swap(e,r,n){var t=e[r];e[r]=e[n];e[n]=t}function randomIntInRange(e,r){return Math.round(e+Math.random()*(r-e))}function doQuickSort(e,r,n,t){if(n{var t;var o=n(749);var i=n(968);var a=n(542).I;var u=n(447);var s=n(136).U;function SourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}return n.sections!=null?new IndexedSourceMapConsumer(n,r):new BasicSourceMapConsumer(n,r)}SourceMapConsumer.fromSourceMap=function(e,r){return BasicSourceMapConsumer.fromSourceMap(e,r)};SourceMapConsumer.prototype._version=3;SourceMapConsumer.prototype.__generatedMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_generatedMappings",{configurable:true,enumerable:true,get:function(){if(!this.__generatedMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__generatedMappings}});SourceMapConsumer.prototype.__originalMappings=null;Object.defineProperty(SourceMapConsumer.prototype,"_originalMappings",{configurable:true,enumerable:true,get:function(){if(!this.__originalMappings){this._parseMappings(this._mappings,this.sourceRoot)}return this.__originalMappings}});SourceMapConsumer.prototype._charIsMappingSeparator=function SourceMapConsumer_charIsMappingSeparator(e,r){var n=e.charAt(r);return n===";"||n===","};SourceMapConsumer.prototype._parseMappings=function SourceMapConsumer_parseMappings(e,r){throw new Error("Subclasses must implement _parseMappings")};SourceMapConsumer.GENERATED_ORDER=1;SourceMapConsumer.ORIGINAL_ORDER=2;SourceMapConsumer.GREATEST_LOWER_BOUND=1;SourceMapConsumer.LEAST_UPPER_BOUND=2;SourceMapConsumer.prototype.eachMapping=function SourceMapConsumer_eachMapping(e,r,n){var t=r||null;var i=n||SourceMapConsumer.GENERATED_ORDER;var a;switch(i){case SourceMapConsumer.GENERATED_ORDER:a=this._generatedMappings;break;case SourceMapConsumer.ORIGINAL_ORDER:a=this._originalMappings;break;default:throw new Error("Unknown order of iteration.")}var u=this.sourceRoot;a.map((function(e){var r=e.source===null?null:this._sources.at(e.source);r=o.computeSourceURL(u,r,this._sourceMapURL);return{source:r,generatedLine:e.generatedLine,generatedColumn:e.generatedColumn,originalLine:e.originalLine,originalColumn:e.originalColumn,name:e.name===null?null:this._names.at(e.name)}}),this).forEach(e,t)};SourceMapConsumer.prototype.allGeneratedPositionsFor=function SourceMapConsumer_allGeneratedPositionsFor(e){var r=o.getArg(e,"line");var n={source:o.getArg(e,"source"),originalLine:r,originalColumn:o.getArg(e,"column",0)};n.source=this._findSourceIndex(n.source);if(n.source<0){return[]}var t=[];var a=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,i.LEAST_UPPER_BOUND);if(a>=0){var u=this._originalMappings[a];if(e.column===undefined){var s=u.originalLine;while(u&&u.originalLine===s){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}else{var l=u.originalColumn;while(u&&u.originalLine===r&&u.originalColumn==l){t.push({line:o.getArg(u,"generatedLine",null),column:o.getArg(u,"generatedColumn",null),lastColumn:o.getArg(u,"lastGeneratedColumn",null)});u=this._originalMappings[++a]}}}return t};r.SourceMapConsumer=SourceMapConsumer;function BasicSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sources");var u=o.getArg(n,"names",[]);var s=o.getArg(n,"sourceRoot",null);var l=o.getArg(n,"sourcesContent",null);var c=o.getArg(n,"mappings");var p=o.getArg(n,"file",null);if(t!=this._version){throw new Error("Unsupported version: "+t)}if(s){s=o.normalize(s)}i=i.map(String).map(o.normalize).map((function(e){return s&&o.isAbsolute(s)&&o.isAbsolute(e)?o.relative(s,e):e}));this._names=a.fromArray(u.map(String),true);this._sources=a.fromArray(i,true);this._absoluteSources=this._sources.toArray().map((function(e){return o.computeSourceURL(s,e,r)}));this.sourceRoot=s;this.sourcesContent=l;this._mappings=c;this._sourceMapURL=r;this.file=p}BasicSourceMapConsumer.prototype=Object.create(SourceMapConsumer.prototype);BasicSourceMapConsumer.prototype.consumer=SourceMapConsumer;BasicSourceMapConsumer.prototype._findSourceIndex=function(e){var r=e;if(this.sourceRoot!=null){r=o.relative(this.sourceRoot,r)}if(this._sources.has(r)){return this._sources.indexOf(r)}var n;for(n=0;n1){_.source=l+S[1];l+=S[1];_.originalLine=i+S[2];i=_.originalLine;_.originalLine+=1;_.originalColumn=a+S[3];a=_.originalColumn;if(S.length>4){_.name=c+S[4];c+=S[4]}}m.push(_);if(typeof _.originalLine==="number"){d.push(_)}}}s(m,o.compareByGeneratedPositionsDeflated);this.__generatedMappings=m;s(d,o.compareByOriginalPositions);this.__originalMappings=d};BasicSourceMapConsumer.prototype._findMapping=function SourceMapConsumer_findMapping(e,r,n,t,o,a){if(e[n]<=0){throw new TypeError("Line must be greater than or equal to 1, got "+e[n])}if(e[t]<0){throw new TypeError("Column must be greater than or equal to 0, got "+e[t])}return i.search(e,r,o,a)};BasicSourceMapConsumer.prototype.computeColumnSpans=function SourceMapConsumer_computeColumnSpans(){for(var e=0;e=0){var t=this._generatedMappings[n];if(t.generatedLine===r.generatedLine){var i=o.getArg(t,"source",null);if(i!==null){i=this._sources.at(i);i=o.computeSourceURL(this.sourceRoot,i,this._sourceMapURL)}var a=o.getArg(t,"name",null);if(a!==null){a=this._names.at(a)}return{source:i,line:o.getArg(t,"originalLine",null),column:o.getArg(t,"originalColumn",null),name:a}}}return{source:null,line:null,column:null,name:null}};BasicSourceMapConsumer.prototype.hasContentsOfAllSources=function BasicSourceMapConsumer_hasContentsOfAllSources(){if(!this.sourcesContent){return false}return this.sourcesContent.length>=this._sources.size()&&!this.sourcesContent.some((function(e){return e==null}))};BasicSourceMapConsumer.prototype.sourceContentFor=function SourceMapConsumer_sourceContentFor(e,r){if(!this.sourcesContent){return null}var n=this._findSourceIndex(e);if(n>=0){return this.sourcesContent[n]}var t=e;if(this.sourceRoot!=null){t=o.relative(this.sourceRoot,t)}var i;if(this.sourceRoot!=null&&(i=o.urlParse(this.sourceRoot))){var a=t.replace(/^file:\/\//,"");if(i.scheme=="file"&&this._sources.has(a)){return this.sourcesContent[this._sources.indexOf(a)]}if((!i.path||i.path=="/")&&this._sources.has("/"+t)){return this.sourcesContent[this._sources.indexOf("/"+t)]}}if(r){return null}else{throw new Error('"'+t+'" is not in the SourceMap.')}};BasicSourceMapConsumer.prototype.generatedPositionFor=function SourceMapConsumer_generatedPositionFor(e){var r=o.getArg(e,"source");r=this._findSourceIndex(r);if(r<0){return{line:null,column:null,lastColumn:null}}var n={source:r,originalLine:o.getArg(e,"line"),originalColumn:o.getArg(e,"column")};var t=this._findMapping(n,this._originalMappings,"originalLine","originalColumn",o.compareByOriginalPositions,o.getArg(e,"bias",SourceMapConsumer.GREATEST_LOWER_BOUND));if(t>=0){var i=this._originalMappings[t];if(i.source===n.source){return{line:o.getArg(i,"generatedLine",null),column:o.getArg(i,"generatedColumn",null),lastColumn:o.getArg(i,"lastGeneratedColumn",null)}}}return{line:null,column:null,lastColumn:null}};t=BasicSourceMapConsumer;function IndexedSourceMapConsumer(e,r){var n=e;if(typeof e==="string"){n=o.parseSourceMapInput(e)}var t=o.getArg(n,"version");var i=o.getArg(n,"sections");if(t!=this._version){throw new Error("Unsupported version: "+t)}this._sources=new a;this._names=new a;var u={line:-1,column:0};this._sections=i.map((function(e){if(e.url){throw new Error("Support for url field in sections not implemented.")}var n=o.getArg(e,"offset");var t=o.getArg(n,"line");var i=o.getArg(n,"column");if(t{var t=n(447);var o=n(749);var i=n(542).I;var a=n(460).H;function SourceMapGenerator(e){if(!e){e={}}this._file=o.getArg(e,"file",null);this._sourceRoot=o.getArg(e,"sourceRoot",null);this._skipValidation=o.getArg(e,"skipValidation",false);this._sources=new i;this._names=new i;this._mappings=new a;this._sourcesContents=null}SourceMapGenerator.prototype._version=3;SourceMapGenerator.fromSourceMap=function SourceMapGenerator_fromSourceMap(e){var r=e.sourceRoot;var n=new SourceMapGenerator({file:e.file,sourceRoot:r});e.eachMapping((function(e){var t={generated:{line:e.generatedLine,column:e.generatedColumn}};if(e.source!=null){t.source=e.source;if(r!=null){t.source=o.relative(r,t.source)}t.original={line:e.originalLine,column:e.originalColumn};if(e.name!=null){t.name=e.name}}n.addMapping(t)}));e.sources.forEach((function(t){var i=t;if(r!==null){i=o.relative(r,t)}if(!n._sources.has(i)){n._sources.add(i)}var a=e.sourceContentFor(t);if(a!=null){n.setSourceContent(t,a)}}));return n};SourceMapGenerator.prototype.addMapping=function SourceMapGenerator_addMapping(e){var r=o.getArg(e,"generated");var n=o.getArg(e,"original",null);var t=o.getArg(e,"source",null);var i=o.getArg(e,"name",null);if(!this._skipValidation){this._validateMapping(r,n,t,i)}if(t!=null){t=String(t);if(!this._sources.has(t)){this._sources.add(t)}}if(i!=null){i=String(i);if(!this._names.has(i)){this._names.add(i)}}this._mappings.add({generatedLine:r.line,generatedColumn:r.column,originalLine:n!=null&&n.line,originalColumn:n!=null&&n.column,source:t,name:i})};SourceMapGenerator.prototype.setSourceContent=function SourceMapGenerator_setSourceContent(e,r){var n=e;if(this._sourceRoot!=null){n=o.relative(this._sourceRoot,n)}if(r!=null){if(!this._sourcesContents){this._sourcesContents=Object.create(null)}this._sourcesContents[o.toSetString(n)]=r}else if(this._sourcesContents){delete this._sourcesContents[o.toSetString(n)];if(Object.keys(this._sourcesContents).length===0){this._sourcesContents=null}}};SourceMapGenerator.prototype.applySourceMap=function SourceMapGenerator_applySourceMap(e,r,n){var t=r;if(r==null){if(e.file==null){throw new Error("SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, "+'or the source map\'s "file" property. Both were omitted.')}t=e.file}var a=this._sourceRoot;if(a!=null){t=o.relative(a,t)}var u=new i;var s=new i;this._mappings.unsortedForEach((function(r){if(r.source===t&&r.originalLine!=null){var i=e.originalPositionFor({line:r.originalLine,column:r.originalColumn});if(i.source!=null){r.source=i.source;if(n!=null){r.source=o.join(n,r.source)}if(a!=null){r.source=o.relative(a,r.source)}r.originalLine=i.line;r.originalColumn=i.column;if(i.name!=null){r.name=i.name}}}var l=r.source;if(l!=null&&!u.has(l)){u.add(l)}var c=r.name;if(c!=null&&!s.has(c)){s.add(c)}}),this);this._sources=u;this._names=s;e.sources.forEach((function(r){var t=e.sourceContentFor(r);if(t!=null){if(n!=null){r=o.join(n,r)}if(a!=null){r=o.relative(a,r)}this.setSourceContent(r,t)}}),this)};SourceMapGenerator.prototype._validateMapping=function SourceMapGenerator_validateMapping(e,r,n,t){if(r&&typeof r.line!=="number"&&typeof r.column!=="number"){throw new Error("original.line and original.column are not numbers -- you probably meant to omit "+"the original mapping entirely and only map the generated position. If so, pass "+"null for the original mapping instead of an object with empty or null values.")}if(e&&"line"in e&&"column"in e&&e.line>0&&e.column>=0&&!r&&!n&&!t){return}else if(e&&"line"in e&&"column"in e&&r&&"line"in r&&"column"in r&&e.line>0&&e.column>=0&&r.line>0&&r.column>=0&&n){return}else{throw new Error("Invalid mapping: "+JSON.stringify({generated:e,source:n,original:r,name:t}))}};SourceMapGenerator.prototype._serializeMappings=function SourceMapGenerator_serializeMappings(){var e=0;var r=1;var n=0;var i=0;var a=0;var u=0;var s="";var l;var c;var p;var g;var f=this._mappings.toArray();for(var h=0,d=f.length;h0){if(!o.compareByGeneratedPositionsInflated(c,f[h-1])){continue}l+=","}}l+=t.encode(c.generatedColumn-e);e=c.generatedColumn;if(c.source!=null){g=this._sources.indexOf(c.source);l+=t.encode(g-u);u=g;l+=t.encode(c.originalLine-1-i);i=c.originalLine-1;l+=t.encode(c.originalColumn-n);n=c.originalColumn;if(c.name!=null){p=this._names.indexOf(c.name);l+=t.encode(p-a);a=p}}s+=l}return s};SourceMapGenerator.prototype._generateSourcesContent=function SourceMapGenerator_generateSourcesContent(e,r){return e.map((function(e){if(!this._sourcesContents){return null}if(r!=null){e=o.relative(r,e)}var n=o.toSetString(e);return Object.prototype.hasOwnProperty.call(this._sourcesContents,n)?this._sourcesContents[n]:null}),this)};SourceMapGenerator.prototype.toJSON=function SourceMapGenerator_toJSON(){var e={version:this._version,sources:this._sources.toArray(),names:this._names.toArray(),mappings:this._serializeMappings()};if(this._file!=null){e.file=this._file}if(this._sourceRoot!=null){e.sourceRoot=this._sourceRoot}if(this._sourcesContents){e.sourcesContent=this._generateSourcesContent(e.sources,e.sourceRoot)}return e};SourceMapGenerator.prototype.toString=function SourceMapGenerator_toString(){return JSON.stringify(this.toJSON())};r.SourceMapGenerator=SourceMapGenerator},13:(e,r,n)=>{var t=n(231).SourceMapGenerator;var o=n(749);var i=/(\r?\n)/;var a=10;var u="$$$isSourceNode$$$";function SourceNode(e,r,n,t,o){this.children=[];this.sourceContents={};this.line=e==null?null:e;this.column=r==null?null:r;this.source=n==null?null:n;this.name=o==null?null:o;this[u]=true;if(t!=null)this.add(t)}SourceNode.fromStringWithSourceMap=function SourceNode_fromStringWithSourceMap(e,r,n){var t=new SourceNode;var a=e.split(i);var u=0;var shiftNextLine=function(){var e=getNextLine();var r=getNextLine()||"";return e+r;function getNextLine(){return u=0;r--){this.prepend(e[r])}}else if(e[u]||typeof e==="string"){this.children.unshift(e)}else{throw new TypeError("Expected a SourceNode, string, or an array of SourceNodes and strings. Got "+e)}return this};SourceNode.prototype.walk=function SourceNode_walk(e){var r;for(var n=0,t=this.children.length;n0){r=[];for(n=0;n{function getArg(e,r,n){if(r in e){return e[r]}else if(arguments.length===3){return n}else{throw new Error('"'+r+'" is a required argument.')}}r.getArg=getArg;var n=/^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/;var t=/^data:.+\,.+$/;function urlParse(e){var r=e.match(n);if(!r){return null}return{scheme:r[1],auth:r[2],host:r[3],port:r[4],path:r[5]}}r.urlParse=urlParse;function urlGenerate(e){var r="";if(e.scheme){r+=e.scheme+":"}r+="//";if(e.auth){r+=e.auth+"@"}if(e.host){r+=e.host}if(e.port){r+=":"+e.port}if(e.path){r+=e.path}return r}r.urlGenerate=urlGenerate;function normalize(e){var n=e;var t=urlParse(e);if(t){if(!t.path){return e}n=t.path}var o=r.isAbsolute(n);var i=n.split(/\/+/);for(var a,u=0,s=i.length-1;s>=0;s--){a=i[s];if(a==="."){i.splice(s,1)}else if(a===".."){u++}else if(u>0){if(a===""){i.splice(s+1,u);u=0}else{i.splice(s,2);u--}}}n=i.join("/");if(n===""){n=o?"/":"."}if(t){t.path=n;return urlGenerate(t)}return n}r.normalize=normalize;function join(e,r){if(e===""){e="."}if(r===""){r="."}var n=urlParse(r);var o=urlParse(e);if(o){e=o.path||"/"}if(n&&!n.scheme){if(o){n.scheme=o.scheme}return urlGenerate(n)}if(n||r.match(t)){return r}if(o&&!o.host&&!o.path){o.host=r;return urlGenerate(o)}var i=r.charAt(0)==="/"?r:normalize(e.replace(/\/+$/,"")+"/"+r);if(o){o.path=i;return urlGenerate(o)}return i}r.join=join;r.isAbsolute=function(e){return e.charAt(0)==="/"||n.test(e)};function relative(e,r){if(e===""){e="."}e=e.replace(/\/$/,"");var n=0;while(r.indexOf(e+"/")!==0){var t=e.lastIndexOf("/");if(t<0){return r}e=e.slice(0,t);if(e.match(/^([^\/]+:\/)?\/*$/)){return r}++n}return Array(n+1).join("../")+r.substr(e.length+1)}r.relative=relative;var o=function(){var e=Object.create(null);return!("__proto__"in e)}();function identity(e){return e}function toSetString(e){if(isProtoString(e)){return"$"+e}return e}r.toSetString=o?identity:toSetString;function fromSetString(e){if(isProtoString(e)){return e.slice(1)}return e}r.fromSetString=o?identity:fromSetString;function isProtoString(e){if(!e){return false}var r=e.length;if(r<9){return false}if(e.charCodeAt(r-1)!==95||e.charCodeAt(r-2)!==95||e.charCodeAt(r-3)!==111||e.charCodeAt(r-4)!==116||e.charCodeAt(r-5)!==111||e.charCodeAt(r-6)!==114||e.charCodeAt(r-7)!==112||e.charCodeAt(r-8)!==95||e.charCodeAt(r-9)!==95){return false}for(var n=r-10;n>=0;n--){if(e.charCodeAt(n)!==36){return false}}return true}function compareByOriginalPositions(e,r,n){var t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0||n){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0){return t}t=e.generatedLine-r.generatedLine;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByOriginalPositions=compareByOriginalPositions;function compareByGeneratedPositionsDeflated(e,r,n){var t=e.generatedLine-r.generatedLine;if(t!==0){return t}t=e.generatedColumn-r.generatedColumn;if(t!==0||n){return t}t=strcmp(e.source,r.source);if(t!==0){return t}t=e.originalLine-r.originalLine;if(t!==0){return t}t=e.originalColumn-r.originalColumn;if(t!==0){return t}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsDeflated=compareByGeneratedPositionsDeflated;function strcmp(e,r){if(e===r){return 0}if(e===null){return 1}if(r===null){return-1}if(e>r){return 1}return-1}function compareByGeneratedPositionsInflated(e,r){var n=e.generatedLine-r.generatedLine;if(n!==0){return n}n=e.generatedColumn-r.generatedColumn;if(n!==0){return n}n=strcmp(e.source,r.source);if(n!==0){return n}n=e.originalLine-r.originalLine;if(n!==0){return n}n=e.originalColumn-r.originalColumn;if(n!==0){return n}return strcmp(e.name,r.name)}r.compareByGeneratedPositionsInflated=compareByGeneratedPositionsInflated;function parseSourceMapInput(e){return JSON.parse(e.replace(/^\)]}'[^\n]*\n/,""))}r.parseSourceMapInput=parseSourceMapInput;function computeSourceURL(e,r,n){r=r||"";if(e){if(e[e.length-1]!=="/"&&r[0]!=="/"){e+="/"}r=e+r}if(n){var t=urlParse(n);if(!t){throw new Error("sourceMapURL could not be parsed")}if(t.path){var o=t.path.lastIndexOf("/");if(o>=0){t.path=t.path.substring(0,o+1)}}r=join(urlGenerate(t),r)}return normalize(r)}r.computeSourceURL=computeSourceURL}};var r={};function __nccwpck_require__(n){var t=r[n];if(t!==undefined){return t.exports}var o=r[n]={exports:{}};var i=true;try{e[n](o,o.exports,__nccwpck_require__);i=false}finally{if(i)delete r[n]}return o.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{var e=n;e.SourceMapGenerator=__nccwpck_require__(231).SourceMapGenerator;e.SourceMapConsumer=__nccwpck_require__(69).SourceMapConsumer;e.SourceNode=__nccwpck_require__(13).SourceNode})();module.exports=n})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/source-map08/package.json b/cli/app/node_modules/next/dist/compiled/source-map08/package.json new file mode 100644 index 00000000000..93855292bfb --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/source-map08/package.json @@ -0,0 +1 @@ +{"name":"source-map08","main":"source-map.js","author":"Nick Fitzgerald ","license":"BSD-3-Clause"} diff --git a/cli/app/node_modules/next/dist/compiled/source-map08/source-map.js b/cli/app/node_modules/next/dist/compiled/source-map08/source-map.js new file mode 100644 index 00000000000..29efcb47d71 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/source-map08/source-map.js @@ -0,0 +1,3002 @@ +/******/ (() => { // webpackBootstrap +/******/ var __webpack_modules__ = ({ + +/***/ 963: +/***/ ((__unused_webpack_module, exports) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +class ArraySet { + constructor() { + this._array = []; + this._set = new Map(); + } + + /** + * Static method for creating ArraySet instances from an existing array. + */ + static fromArray(aArray, aAllowDuplicates) { + const set = new ArraySet(); + for (let i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; + } + + /** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ + size() { + return this._set.size; + } + + /** + * Add the given string to this set. + * + * @param String aStr + */ + add(aStr, aAllowDuplicates) { + const isDuplicate = this.has(aStr); + const idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + this._set.set(aStr, idx); + } + } + + /** + * Is the given string a member of this set? + * + * @param String aStr + */ + has(aStr) { + return this._set.has(aStr); + } + + /** + * What is the index of the given string in the array? + * + * @param String aStr + */ + indexOf(aStr) { + const idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + throw new Error('"' + aStr + '" is not in the set.'); + } + + /** + * What is the element at the given index? + * + * @param Number aIdx + */ + at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error("No element indexed by " + aIdx); + } + + /** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ + toArray() { + return this._array.slice(); + } +} +exports.I = ArraySet; + + +/***/ }), + +/***/ 344: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +const base64 = __nccwpck_require__(209); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +const VLQ_BASE_SHIFT = 5; + +// binary: 100000 +const VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +const VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +const VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +// eslint-disable-next-line no-unused-vars +function fromVLQSigned(aValue) { + const isNegative = (aValue & 1) === 1; + const shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + let encoded = ""; + let digit; + + let vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + + +/***/ }), + +/***/ 209: +/***/ ((__unused_webpack_module, exports) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +const intToCharMap = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function(number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + + +/***/ }), + +/***/ 700: +/***/ ((__unused_webpack_module, exports) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + const mid = Math.floor((aHigh - aLow) / 2) + aLow; + const cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } + return mid; + } + + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } + return aLow < 0 ? -1 : aLow; +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + let index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; + + +/***/ }), + +/***/ 371: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +const util = __nccwpck_require__(354); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + const lineA = mappingA.generatedLine; + const lineB = mappingB.generatedLine; + const columnA = mappingA.generatedColumn; + const columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a negligible overhead in general + * case for a large speedup in case of mappings being added in order. + */ +class MappingList { + constructor() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; + } + + /** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ + unsortedForEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + } + + /** + * Add the given source mapping. + * + * @param Object aMapping + */ + add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } + } + + /** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ + toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; + } +} + +exports.H = MappingList; + + +/***/ }), + +/***/ 799: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; + + +// Note: This file is replaced with "read-wasm-browser.js" when this module is +// bundled with a packager that takes package.json#browser fields into account. + +const fs = __nccwpck_require__(147); +const path = __nccwpck_require__(17); + +module.exports = function readWasm() { + return new Promise((resolve, reject) => { + const wasmPath = __nccwpck_require__.ab + "mappings.wasm"; + fs.readFile(__nccwpck_require__.ab + "mappings.wasm", null, (error, data) => { + if (error) { + reject(error); + return; + } + + resolve(data.buffer); + }); + }); +}; + +module.exports.initialize = _ => { + console.debug("SourceMapConsumer.initialize is a no-op when running in node.js"); +}; + + +/***/ }), + +/***/ 886: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +var __webpack_unused_export__; +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +const util = __nccwpck_require__(354); +const binarySearch = __nccwpck_require__(700); +const ArraySet = (__nccwpck_require__(963)/* .ArraySet */ .I); +const base64VLQ = __nccwpck_require__(344); // eslint-disable-line no-unused-vars +const readWasm = __nccwpck_require__(799); +const wasm = __nccwpck_require__(776); + +const INTERNAL = Symbol("smcInternal"); + +class SourceMapConsumer { + constructor(aSourceMap, aSourceMapURL) { + // If the constructor was called by super(), just return Promise. + // Yes, this is a hack to retain the pre-existing API of the base-class + // constructor also being an async factory function. + if (aSourceMap == INTERNAL) { + return Promise.resolve(this); + } + + return _factory(aSourceMap, aSourceMapURL); + } + + static initialize(opts) { + readWasm.initialize(opts["lib/mappings.wasm"]); + } + + static fromSourceMap(aSourceMap, aSourceMapURL) { + return _factoryBSM(aSourceMap, aSourceMapURL); + } + + /** + * Construct a new `SourceMapConsumer` from `rawSourceMap` and `sourceMapUrl` + * (see the `SourceMapConsumer` constructor for details. Then, invoke the `async + * function f(SourceMapConsumer) -> T` with the newly constructed consumer, wait + * for `f` to complete, call `destroy` on the consumer, and return `f`'s return + * value. + * + * You must not use the consumer after `f` completes! + * + * By using `with`, you do not have to remember to manually call `destroy` on + * the consumer, since it will be called automatically once `f` completes. + * + * ```js + * const xSquared = await SourceMapConsumer.with( + * myRawSourceMap, + * null, + * async function (consumer) { + * // Use `consumer` inside here and don't worry about remembering + * // to call `destroy`. + * + * const x = await whatever(consumer); + * return x * x; + * } + * ); + * + * // You may not use that `consumer` anymore out here; it has + * // been destroyed. But you can use `xSquared`. + * console.log(xSquared); + * ``` + */ + static async with(rawSourceMap, sourceMapUrl, f) { + const consumer = await new SourceMapConsumer(rawSourceMap, sourceMapUrl); + try { + return await f(consumer); + } finally { + consumer.destroy(); + } + } + + /** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ + eachMapping(aCallback, aContext, aOrder) { + throw new Error("Subclasses must implement eachMapping"); + } + + /** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + allGeneratedPositionsFor(aArgs) { + throw new Error("Subclasses must implement allGeneratedPositionsFor"); + } + + destroy() { + throw new Error("Subclasses must implement destroy"); + } +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +class BasicSourceMapConsumer extends SourceMapConsumer { + constructor(aSourceMap, aSourceMapURL) { + return super(INTERNAL).then(that => { + let sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + const version = util.getArg(sourceMap, "version"); + const sources = util.getArg(sourceMap, "sources").map(String); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + const names = util.getArg(sourceMap, "names", []); + const sourceRoot = util.getArg(sourceMap, "sourceRoot", null); + const sourcesContent = util.getArg(sourceMap, "sourcesContent", null); + const mappings = util.getArg(sourceMap, "mappings"); + const file = util.getArg(sourceMap, "file", null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != that._version) { + throw new Error("Unsupported version: " + version); + } + + that._sourceLookupCache = new Map(); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + that._names = ArraySet.fromArray(names.map(String), true); + that._sources = ArraySet.fromArray(sources, true); + + that._absoluteSources = ArraySet.fromArray(that._sources.toArray().map(function(s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }), true); + + that.sourceRoot = sourceRoot; + that.sourcesContent = sourcesContent; + that._mappings = mappings; + that._sourceMapURL = aSourceMapURL; + that.file = file; + + that._computedColumnSpans = false; + that._mappingsPtr = 0; + that._wasm = null; + + return wasm().then(w => { + that._wasm = w; + return that; + }); + }); + } + + /** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ + _findSourceIndex(aSource) { + // In the most common usecases, we'll be constantly looking up the index for the same source + // files, so we cache the index lookup to avoid constantly recomputing the full URLs. + const cachedIndex = this._sourceLookupCache.get(aSource); + if (typeof cachedIndex === "number") { + return cachedIndex; + } + + // Treat the source as map-relative overall by default. + const sourceAsMapRelative = util.computeSourceURL(null, aSource, this._sourceMapURL); + if (this._absoluteSources.has(sourceAsMapRelative)) { + const index = this._absoluteSources.indexOf(sourceAsMapRelative); + this._sourceLookupCache.set(aSource, index); + return index; + } + + // Fall back to treating the source as sourceRoot-relative. + const sourceAsSourceRootRelative = util.computeSourceURL(this.sourceRoot, aSource, this._sourceMapURL); + if (this._absoluteSources.has(sourceAsSourceRootRelative)) { + const index = this._absoluteSources.indexOf(sourceAsSourceRootRelative); + this._sourceLookupCache.set(aSource, index); + return index; + } + + // To avoid this cache growing forever, we do not cache lookup misses. + return -1; + } + + /** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ + static fromSourceMap(aSourceMap, aSourceMapURL) { + return new BasicSourceMapConsumer(aSourceMap.toString()); + } + + get sources() { + return this._absoluteSources.toArray(); + } + + _getMappingsPtr() { + if (this._mappingsPtr === 0) { + this._parseMappings(); + } + + return this._mappingsPtr; + } + + /** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + _parseMappings() { + const aStr = this._mappings; + const size = aStr.length; + + const mappingsBufPtr = this._wasm.exports.allocate_mappings(size); + const mappingsBuf = new Uint8Array(this._wasm.exports.memory.buffer, mappingsBufPtr, size); + for (let i = 0; i < size; i++) { + mappingsBuf[i] = aStr.charCodeAt(i); + } + + const mappingsPtr = this._wasm.exports.parse_mappings(mappingsBufPtr); + + if (!mappingsPtr) { + const error = this._wasm.exports.get_last_error(); + let msg = `Error parsing mappings (code ${error}): `; + + // XXX: keep these error codes in sync with `fitzgen/source-map-mappings`. + switch (error) { + case 1: + msg += "the mappings contained a negative line, column, source index, or name index"; + break; + case 2: + msg += "the mappings contained a number larger than 2**32"; + break; + case 3: + msg += "reached EOF while in the middle of parsing a VLQ"; + break; + case 4: + msg += "invalid base 64 character while parsing a VLQ"; + break; + default: + msg += "unknown error code"; + break; + } + + throw new Error(msg); + } + + this._mappingsPtr = mappingsPtr; + } + + eachMapping(aCallback, aContext, aOrder) { + const context = aContext || null; + const order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + this._wasm.withMappingCallback( + mapping => { + if (mapping.source !== null) { + mapping.source = this._absoluteSources.at(mapping.source); + + if (mapping.name !== null) { + mapping.name = this._names.at(mapping.name); + } + } + if (this._computedColumnSpans && mapping.lastGeneratedColumn === null) { + mapping.lastGeneratedColumn = Infinity; + } + + aCallback.call(context, mapping); + }, + () => { + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + this._wasm.exports.by_generated_location(this._getMappingsPtr()); + break; + case SourceMapConsumer.ORIGINAL_ORDER: + this._wasm.exports.by_original_location(this._getMappingsPtr()); + break; + default: + throw new Error("Unknown order of iteration."); + } + } + ); + } + + allGeneratedPositionsFor(aArgs) { + let source = util.getArg(aArgs, "source"); + const originalLine = util.getArg(aArgs, "line"); + const originalColumn = aArgs.column || 0; + + source = this._findSourceIndex(source); + if (source < 0) { + return []; + } + + if (originalLine < 1) { + throw new Error("Line numbers must be >= 1"); + } + + if (originalColumn < 0) { + throw new Error("Column numbers must be >= 0"); + } + + const mappings = []; + + this._wasm.withMappingCallback( + m => { + let lastColumn = m.lastGeneratedColumn; + if (this._computedColumnSpans && lastColumn === null) { + lastColumn = Infinity; + } + mappings.push({ + line: m.generatedLine, + column: m.generatedColumn, + lastColumn, + }); + }, () => { + this._wasm.exports.all_generated_locations_for( + this._getMappingsPtr(), + source, + originalLine - 1, + "column" in aArgs, + originalColumn + ); + } + ); + + return mappings; + } + + destroy() { + if (this._mappingsPtr !== 0) { + this._wasm.exports.free_mappings(this._mappingsPtr); + this._mappingsPtr = 0; + } + } + + /** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ + computeColumnSpans() { + if (this._computedColumnSpans) { + return; + } + + this._wasm.exports.compute_column_spans(this._getMappingsPtr()); + this._computedColumnSpans = true; + } + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + originalPositionFor(aArgs) { + const needle = { + generatedLine: util.getArg(aArgs, "line"), + generatedColumn: util.getArg(aArgs, "column") + }; + + if (needle.generatedLine < 1) { + throw new Error("Line numbers must be >= 1"); + } + + if (needle.generatedColumn < 0) { + throw new Error("Column numbers must be >= 0"); + } + + let bias = util.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND); + if (bias == null) { + bias = SourceMapConsumer.GREATEST_LOWER_BOUND; + } + + let mapping; + this._wasm.withMappingCallback(m => mapping = m, () => { + this._wasm.exports.original_location_for( + this._getMappingsPtr(), + needle.generatedLine - 1, + needle.generatedColumn, + bias + ); + }); + + if (mapping) { + if (mapping.generatedLine === needle.generatedLine) { + let source = util.getArg(mapping, "source", null); + if (source !== null) { + source = this._absoluteSources.at(source); + } + + let name = util.getArg(mapping, "name", null); + if (name !== null) { + name = this._names.at(name); + } + + return { + source, + line: util.getArg(mapping, "originalLine", null), + column: util.getArg(mapping, "originalColumn", null), + name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + } + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function(sc) { return sc == null; }); + } + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + const index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + generatedPositionFor(aArgs) { + let source = util.getArg(aArgs, "source"); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + const needle = { + source, + originalLine: util.getArg(aArgs, "line"), + originalColumn: util.getArg(aArgs, "column") + }; + + if (needle.originalLine < 1) { + throw new Error("Line numbers must be >= 1"); + } + + if (needle.originalColumn < 0) { + throw new Error("Column numbers must be >= 0"); + } + + let bias = util.getArg(aArgs, "bias", SourceMapConsumer.GREATEST_LOWER_BOUND); + if (bias == null) { + bias = SourceMapConsumer.GREATEST_LOWER_BOUND; + } + + let mapping; + this._wasm.withMappingCallback(m => mapping = m, () => { + this._wasm.exports.generated_location_for( + this._getMappingsPtr(), + needle.source, + needle.originalLine - 1, + needle.originalColumn, + bias + ); + }); + + if (mapping) { + if (mapping.source === needle.source) { + let lastColumn = mapping.lastGeneratedColumn; + if (this._computedColumnSpans && lastColumn === null) { + lastColumn = Infinity; + } + return { + line: util.getArg(mapping, "generatedLine", null), + column: util.getArg(mapping, "generatedColumn", null), + lastColumn, + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + } +} + +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; +__webpack_unused_export__ = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +class IndexedSourceMapConsumer extends SourceMapConsumer { + constructor(aSourceMap, aSourceMapURL) { + return super(INTERNAL).then(that => { + let sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + const version = util.getArg(sourceMap, "version"); + const sections = util.getArg(sourceMap, "sections"); + + if (version != that._version) { + throw new Error("Unsupported version: " + version); + } + + let lastOffset = { + line: -1, + column: 0 + }; + return Promise.all(sections.map(s => { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error("Support for url field in sections not implemented."); + } + const offset = util.getArg(s, "offset"); + const offsetLine = util.getArg(offset, "line"); + const offsetColumn = util.getArg(offset, "column"); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error("Section offsets must be ordered and non-overlapping."); + } + lastOffset = offset; + + const cons = new SourceMapConsumer(util.getArg(s, "map"), aSourceMapURL); + return cons.then(consumer => { + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer + }; + }); + })).then(s => { + that._sections = s; + return that; + }); + }); + } + + /** + * The list of original sources. + */ + get sources() { + const sources = []; + for (let i = 0; i < this._sections.length; i++) { + for (let j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } + + /** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ + originalPositionFor(aArgs) { + const needle = { + generatedLine: util.getArg(aArgs, "line"), + generatedColumn: util.getArg(aArgs, "column") + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + const sectionIndex = binarySearch.search(needle, this._sections, + function(aNeedle, section) { + const cmp = aNeedle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (aNeedle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + const section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + } + + /** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ + hasContentsOfAllSources() { + return this._sections.every(function(s) { + return s.consumer.hasContentsOfAllSources(); + }); + } + + /** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ + sourceContentFor(aSource, nullOnMissing) { + for (let i = 0; i < this._sections.length; i++) { + const section = this._sections[i]; + + const content = section.consumer.sourceContentFor(aSource, true); + if (content) { + return content; + } + } + if (nullOnMissing) { + return null; + } + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + + _findSectionIndex(source) { + for (let i = 0; i < this._sections.length; i++) { + const { consumer } = this._sections[i]; + if (consumer._findSourceIndex(source) !== -1) { + return i; + } + } + return -1; + } + + /** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ + generatedPositionFor(aArgs) { + const index = this._findSectionIndex(util.getArg(aArgs, "source")); + const section = index >= 0 ? this._sections[index] : null; + const nextSection = + index >= 0 && index + 1 < this._sections.length + ? this._sections[index + 1] + : null; + + const generatedPosition = + section && section.consumer.generatedPositionFor(aArgs); + if (generatedPosition && generatedPosition.line !== null) { + const lineShift = section.generatedOffset.generatedLine - 1; + const columnShift = section.generatedOffset.generatedColumn - 1; + + if (generatedPosition.line === 1) { + generatedPosition.column += columnShift; + if (typeof generatedPosition.lastColumn === "number") { + generatedPosition.lastColumn += columnShift; + } + } + + if ( + generatedPosition.lastColumn === Infinity && + nextSection && + generatedPosition.line === nextSection.generatedOffset.generatedLine + ) { + generatedPosition.lastColumn = + nextSection.generatedOffset.generatedColumn - 2; + } + generatedPosition.line += lineShift; + + return generatedPosition; + } + + return { + line: null, + column: null, + lastColumn: null + }; + } + + allGeneratedPositionsFor(aArgs) { + const index = this._findSectionIndex(util.getArg(aArgs, "source")); + const section = index >= 0 ? this._sections[index] : null; + const nextSection = + index >= 0 && index + 1 < this._sections.length + ? this._sections[index + 1] + : null; + + if (!section) return []; + + return section.consumer.allGeneratedPositionsFor(aArgs).map( + generatedPosition => { + const lineShift = section.generatedOffset.generatedLine - 1; + const columnShift = section.generatedOffset.generatedColumn - 1; + + if (generatedPosition.line === 1) { + generatedPosition.column += columnShift; + if (typeof generatedPosition.lastColumn === "number") { + generatedPosition.lastColumn += columnShift; + } + } + + if ( + generatedPosition.lastColumn === Infinity && + nextSection && + generatedPosition.line === nextSection.generatedOffset.generatedLine + ) { + generatedPosition.lastColumn = + nextSection.generatedOffset.generatedColumn - 2; + } + generatedPosition.line += lineShift; + + return generatedPosition; + } + ); + } + + eachMapping(aCallback, aContext, aOrder) { + this._sections.forEach((section, index) => { + const nextSection = + index + 1 < this._sections.length + ? this._sections[index + 1] + : null; + const { generatedOffset } = section; + + const lineShift = generatedOffset.generatedLine - 1; + const columnShift = generatedOffset.generatedColumn - 1; + + section.consumer.eachMapping(function(mapping) { + if (mapping.generatedLine === 1) { + mapping.generatedColumn += columnShift; + + if (typeof mapping.lastGeneratedColumn === "number") { + mapping.lastGeneratedColumn += columnShift; + } + } + + if ( + mapping.lastGeneratedColumn === Infinity && + nextSection && + mapping.generatedLine === nextSection.generatedOffset.generatedLine + ) { + mapping.lastGeneratedColumn = + nextSection.generatedOffset.generatedColumn - 2; + } + mapping.generatedLine += lineShift; + + aCallback.call(this, mapping); + }, aContext, aOrder); + }); + } + + computeColumnSpans() { + for (let i = 0; i < this._sections.length; i++) { + this._sections[i].consumer.computeColumnSpans(); + } + } + + destroy() { + for (let i = 0; i < this._sections.length; i++) { + this._sections[i].consumer.destroy(); + } + } +} +__webpack_unused_export__ = IndexedSourceMapConsumer; + +/* + * Cheat to get around inter-twingled classes. `factory()` can be at the end + * where it has access to non-hoisted classes, but it gets hoisted itself. + */ +function _factory(aSourceMap, aSourceMapURL) { + let sourceMap = aSourceMap; + if (typeof aSourceMap === "string") { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + const consumer = sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); + return Promise.resolve(consumer); +} + +function _factoryBSM(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + + +/***/ }), + +/***/ 87: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +const base64VLQ = __nccwpck_require__(344); +const util = __nccwpck_require__(354); +const ArraySet = (__nccwpck_require__(963)/* .ArraySet */ .I); +const MappingList = (__nccwpck_require__(371)/* .MappingList */ .H); + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +class SourceMapGenerator { + constructor(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, "file", null); + this._sourceRoot = util.getArg(aArgs, "sourceRoot", null); + this._skipValidation = util.getArg(aArgs, "skipValidation", false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; + } + + /** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ + static fromSourceMap(aSourceMapConsumer) { + const sourceRoot = aSourceMapConsumer.sourceRoot; + const generator = new SourceMapGenerator({ + file: aSourceMapConsumer.file, + sourceRoot + }); + aSourceMapConsumer.eachMapping(function(mapping) { + const newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function(sourceFile) { + let sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + const content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + } + + /** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ + addMapping(aArgs) { + const generated = util.getArg(aArgs, "generated"); + const original = util.getArg(aArgs, "original", null); + let source = util.getArg(aArgs, "source", null); + let name = util.getArg(aArgs, "name", null); + + if (!this._skipValidation) { + this._validateMapping(generated, original, source, name); + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source, + name + }); + } + + /** + * Set the source content for a source file. + */ + setSourceContent(aSourceFile, aSourceContent) { + let source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + } + + /** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ + applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + let sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + "SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, " + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + const sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + const newSources = this._mappings.toArray().length > 0 + ? new ArraySet() + : this._sources; + const newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function(mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + const original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source); + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + const source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + const name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function(srcFile) { + const content = aSourceMapConsumer.sourceContentFor(srcFile); + if (content != null) { + if (aSourceMapPath != null) { + srcFile = util.join(aSourceMapPath, srcFile); + } + if (sourceRoot != null) { + srcFile = util.relative(sourceRoot, srcFile); + } + this.setSourceContent(srcFile, content); + } + }, this); + } + + /** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ + _validateMapping(aGenerated, aOriginal, aSource, aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== "number" && typeof aOriginal.column !== "number") { + throw new Error( + "original.line and original.column are not numbers -- you probably meant to omit " + + "the original mapping entirely and only map the generated position. If so, pass " + + "null for the original mapping instead of an object with empty or null values." + ); + } + + if (aGenerated && "line" in aGenerated && "column" in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + + } else if (aGenerated && "line" in aGenerated && "column" in aGenerated + && aOriginal && "line" in aOriginal && "column" in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + + } else { + throw new Error("Invalid mapping: " + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + })); + } + } + + /** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ + _serializeMappings() { + let previousGeneratedColumn = 0; + let previousGeneratedLine = 1; + let previousOriginalColumn = 0; + let previousOriginalLine = 0; + let previousName = 0; + let previousSource = 0; + let result = ""; + let next; + let mapping; + let nameIdx; + let sourceIdx; + + const mappings = this._mappings.toArray(); + for (let i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = ""; + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ";"; + previousGeneratedLine++; + } + } else if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ","; + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + } + + _generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function(source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + const key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + } + + /** + * Externalize the source map. + */ + toJSON() { + const map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + } + + /** + * Render the source map being generated to a string. + */ + toString() { + return JSON.stringify(this.toJSON()); + } +} + +SourceMapGenerator.prototype._version = 3; +exports.SourceMapGenerator = SourceMapGenerator; + + +/***/ }), + +/***/ 589: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +const SourceMapGenerator = (__nccwpck_require__(87).SourceMapGenerator); +const util = __nccwpck_require__(354); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +const REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +const NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +const isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +class SourceNode { + constructor(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); + } + + /** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ + static fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + const node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + const remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + let remainingLinesIndex = 0; + const shiftNextLine = function() { + const lineContents = getNextLine(); + // The last line of a file might not have a newline. + const newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + let lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + let lastMapping = null; + let nextLine; + + aSourceMapConsumer.eachMapping(function(mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + nextLine = remainingLines[remainingLinesIndex] || ""; + const code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + nextLine = remainingLines[remainingLinesIndex] || ""; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function(sourceFile) { + const content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + const source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + } + + /** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function(chunk) { + this.add(chunk); + }, this); + } else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + } + + /** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ + prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (let i = aChunk.length - 1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; + } + + /** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ + walk(aFn) { + let chunk; + for (let i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } else if (chunk !== "") { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } + + /** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ + join(aSep) { + let newChildren; + let i; + const len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len - 1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; + } + + /** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ + replaceRight(aPattern, aReplacement) { + const lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } else if (typeof lastChild === "string") { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } else { + this.children.push("".replace(aPattern, aReplacement)); + } + return this; + } + + /** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ + setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + } + + /** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ + walkSourceContents(aFn) { + for (let i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + const sources = Object.keys(this.sourceContents); + for (let i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + } + + /** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ + toString() { + let str = ""; + this.walk(function(chunk) { + str += chunk; + }); + return str; + } + + /** + * Returns the string representation of this source node along with a source + * map. + */ + toStringWithSourceMap(aArgs) { + const generated = { + code: "", + line: 1, + column: 0 + }; + const map = new SourceMapGenerator(aArgs); + let sourceMappingActive = false; + let lastOriginalSource = null; + let lastOriginalLine = null; + let lastOriginalColumn = null; + let lastOriginalName = null; + this.walk(function(chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if (lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (let idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function(sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map }; + } +} + +exports.SourceNode = SourceNode; + + +/***/ }), + +/***/ 869: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +"use strict"; +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + + +// Note: This file is overridden in the 'package.json#browser' field to +// substitute lib/url-browser.js instead. + +// Use the URL global for Node 10, and the 'url' module for Node 8. +module.exports = typeof URL === "function" ? URL : (__nccwpck_require__(310).URL); + + +/***/ }), + +/***/ 354: +/***/ ((__unused_webpack_module, exports, __nccwpck_require__) => { + +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +const URL = __nccwpck_require__(869); + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } + throw new Error('"' + aName + '" is a required argument.'); + +} +exports.getArg = getArg; + +const supportsNullProto = (function() { + const obj = Object.create(null); + return !("__proto__" in obj); +}()); + +function identity(s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return "$" + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + const length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + /* eslint-disable no-multi-spaces */ + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + /* eslint-enable no-multi-spaces */ + + for (let i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + let cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, "")); +} +exports.parseSourceMapInput = parseSourceMapInput; + +// We use 'http' as the base here because we want URLs processed relative +// to the safe base to be treated as "special" URLs during parsing using +// the WHATWG URL parsing. This ensures that backslash normalization +// applies to the path and such. +const PROTOCOL = "http:"; +const PROTOCOL_AND_HOST = `${PROTOCOL}//host`; + +/** + * Make it easy to create small utilities that tweak a URL's path. + */ +function createSafeHandler(cb) { + return input => { + const type = getURLType(input); + const base = buildSafeBase(input); + const url = new URL(input, base); + + cb(url); + + const result = url.toString(); + + if (type === "absolute") { + return result; + } else if (type === "scheme-relative") { + return result.slice(PROTOCOL.length); + } else if (type === "path-absolute") { + return result.slice(PROTOCOL_AND_HOST.length); + } + + // This assumes that the callback will only change + // the path, search and hash values. + return computeRelativeURL(base, result); + }; +} + +function withBase(url, base) { + return new URL(url, base).toString(); +} + +function buildUniqueSegment(prefix, str) { + let id = 0; + do { + const ident = prefix + (id++); + if (str.indexOf(ident) === -1) return ident; + } while (true); +} + +function buildSafeBase(str) { + const maxDotParts = str.split("..").length - 1; + + // If we used a segment that also existed in `str`, then we would be unable + // to compute relative paths. For example, if `segment` were just "a": + // + // const url = "../../a/" + // const base = buildSafeBase(url); // http://host/a/a/ + // const joined = "http://host/a/"; + // const result = relative(base, joined); + // + // Expected: "../../a/"; + // Actual: "a/" + // + const segment = buildUniqueSegment("p", str); + + let base = `${PROTOCOL_AND_HOST}/`; + for (let i = 0; i < maxDotParts; i++) { + base += `${segment}/`; + } + return base; +} + +const ABSOLUTE_SCHEME = /^[A-Za-z0-9\+\-\.]+:/; +function getURLType(url) { + if (url[0] === "/") { + if (url[1] === "/") return "scheme-relative"; + return "path-absolute"; + } + + return ABSOLUTE_SCHEME.test(url) ? "absolute" : "path-relative"; +} + +/** + * Given two URLs that are assumed to be on the same + * protocol/host/user/password build a relative URL from the + * path, params, and hash values. + * + * @param rootURL The root URL that the target will be relative to. + * @param targetURL The target that the relative URL points to. + * @return A rootURL-relative, normalized URL value. + */ +function computeRelativeURL(rootURL, targetURL) { + if (typeof rootURL === "string") rootURL = new URL(rootURL); + if (typeof targetURL === "string") targetURL = new URL(targetURL); + + const targetParts = targetURL.pathname.split("/"); + const rootParts = rootURL.pathname.split("/"); + + // If we've got a URL path ending with a "/", we remove it since we'd + // otherwise be relative to the wrong location. + if (rootParts.length > 0 && !rootParts[rootParts.length - 1]) { + rootParts.pop(); + } + + while ( + targetParts.length > 0 && + rootParts.length > 0 && + targetParts[0] === rootParts[0] + ) { + targetParts.shift(); + rootParts.shift(); + } + + const relativePath = rootParts + .map(() => "..") + .concat(targetParts) + .join("/"); + + return relativePath + targetURL.search + targetURL.hash; +} + +/** + * Given a URL, ensure that it is treated as a directory URL. + * + * @param url + * @return A normalized URL value. + */ +const ensureDirectory = createSafeHandler(url => { + url.pathname = url.pathname.replace(/\/?$/, "/"); +}); + +/** + * Given a URL, strip off any filename if one is present. + * + * @param url + * @return A normalized URL value. + */ +const trimFilename = createSafeHandler(url => { + url.href = new URL(".", url.toString()).toString(); +}); + +/** + * Normalize a given URL. + * * Convert backslashes. + * * Remove any ".." and "." segments. + * + * @param url + * @return A normalized URL value. + */ +const normalize = createSafeHandler(url => {}); +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * All returned URLs will be normalized. + * + * @param aRoot The root path or URL. Assumed to reference a directory. + * @param aPath The path or URL to be joined with the root. + * @return A joined and normalized URL value. + */ +function join(aRoot, aPath) { + const pathType = getURLType(aPath); + const rootType = getURLType(aRoot); + + aRoot = ensureDirectory(aRoot); + + if (pathType === "absolute") { + return withBase(aPath, undefined); + } + if (rootType === "absolute") { + return withBase(aPath, aRoot); + } + + if (pathType === "scheme-relative") { + return normalize(aPath); + } + if (rootType === "scheme-relative") { + return withBase(aPath, withBase(aRoot, PROTOCOL_AND_HOST)).slice(PROTOCOL.length); + } + + if (pathType === "path-absolute") { + return normalize(aPath); + } + if (rootType === "path-absolute") { + return withBase(aPath, withBase(aRoot, PROTOCOL_AND_HOST)).slice(PROTOCOL_AND_HOST.length); + } + + const base = buildSafeBase(aPath + aRoot); + const newPath = withBase(aPath, withBase(aRoot, base)); + return computeRelativeURL(base, newPath); +} +exports.join = join; + +/** + * Make a path relative to a URL or another path. If returning a + * relative URL is not possible, the original target will be returned. + * All returned URLs will be normalized. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + * @return A rootURL-relative (if possible), normalized URL value. + */ +function relative(rootURL, targetURL) { + const result = relativeIfPossible(rootURL, targetURL); + + return typeof result === "string" ? result : normalize(targetURL); +} +exports.relative = relative; + +function relativeIfPossible(rootURL, targetURL) { + const urlType = getURLType(rootURL); + if (urlType !== getURLType(targetURL)) { + return null; + } + + const base = buildSafeBase(rootURL + targetURL); + const root = new URL(rootURL, base); + const target = new URL(targetURL, base); + + try { + new URL("", target.toString()); + } catch (err) { + // Bail if the URL doesn't support things being relative to it, + // For example, data: and blob: URLs. + return null; + } + + if ( + target.protocol !== root.protocol || + target.user !== root.user || + target.password !== root.password || + target.hostname !== root.hostname || + target.port !== root.port + ) { + return null; + } + + return computeRelativeURL(root, target); +} + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + // The source map spec states that "sourceRoot" and "sources" entries are to be appended. While + // that is a little vague, implementations have generally interpreted that as joining the + // URLs with a `/` between then, assuming the "sourceRoot" doesn't already end with one. + // For example, + // + // sourceRoot: "some-dir", + // sources: ["/some-path.js"] + // + // and + // + // sourceRoot: "some-dir/", + // sources: ["/some-path.js"] + // + // must behave as "some-dir/some-path.js". + // + // With this library's the transition to a more URL-focused implementation, that behavior is + // preserved here. To acheive that, we trim the "/" from absolute-path when a sourceRoot value + // is present in order to make the sources entries behave as if they are relative to the + // "sourceRoot", as they would have if the two strings were simply concated. + if (sourceRoot && getURLType(sourceURL) === "path-absolute") { + sourceURL = sourceURL.replace(/^\//, ""); + } + + let url = normalize(sourceURL || ""); + + // Parsing URLs can be expensive, so we only perform these joins when needed. + if (sourceRoot) url = join(sourceRoot, url); + if (sourceMapURL) url = join(trimFilename(sourceMapURL), url); + return url; +} +exports.computeSourceURL = computeSourceURL; + + +/***/ }), + +/***/ 776: +/***/ ((module, __unused_webpack_exports, __nccwpck_require__) => { + +const readWasm = __nccwpck_require__(799); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.lastGeneratedColumn = null; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +let cachedWasm = null; + +module.exports = function wasm() { + if (cachedWasm) { + return cachedWasm; + } + + const callbackStack = []; + + cachedWasm = readWasm().then(buffer => { + return WebAssembly.instantiate(buffer, { + env: { + mapping_callback( + generatedLine, + generatedColumn, + + hasLastGeneratedColumn, + lastGeneratedColumn, + + hasOriginal, + source, + originalLine, + originalColumn, + + hasName, + name + ) { + const mapping = new Mapping(); + // JS uses 1-based line numbers, wasm uses 0-based. + mapping.generatedLine = generatedLine + 1; + mapping.generatedColumn = generatedColumn; + + if (hasLastGeneratedColumn) { + // JS uses inclusive last generated column, wasm uses exclusive. + mapping.lastGeneratedColumn = lastGeneratedColumn - 1; + } + + if (hasOriginal) { + mapping.source = source; + // JS uses 1-based line numbers, wasm uses 0-based. + mapping.originalLine = originalLine + 1; + mapping.originalColumn = originalColumn; + + if (hasName) { + mapping.name = name; + } + } + + callbackStack[callbackStack.length - 1](mapping); + }, + + start_all_generated_locations_for() { console.time("all_generated_locations_for"); }, + end_all_generated_locations_for() { console.timeEnd("all_generated_locations_for"); }, + + start_compute_column_spans() { console.time("compute_column_spans"); }, + end_compute_column_spans() { console.timeEnd("compute_column_spans"); }, + + start_generated_location_for() { console.time("generated_location_for"); }, + end_generated_location_for() { console.timeEnd("generated_location_for"); }, + + start_original_location_for() { console.time("original_location_for"); }, + end_original_location_for() { console.timeEnd("original_location_for"); }, + + start_parse_mappings() { console.time("parse_mappings"); }, + end_parse_mappings() { console.timeEnd("parse_mappings"); }, + + start_sort_by_generated_location() { console.time("sort_by_generated_location"); }, + end_sort_by_generated_location() { console.timeEnd("sort_by_generated_location"); }, + + start_sort_by_original_location() { console.time("sort_by_original_location"); }, + end_sort_by_original_location() { console.timeEnd("sort_by_original_location"); }, + } + }); + }).then(Wasm => { + return { + exports: Wasm.instance.exports, + withMappingCallback: (mappingCallback, f) => { + callbackStack.push(mappingCallback); + try { + f(); + } finally { + callbackStack.pop(); + } + } + }; + }).then(null, e => { + cachedWasm = null; + throw e; + }); + + return cachedWasm; +}; + + +/***/ }), + +/***/ 147: +/***/ ((module) => { + +"use strict"; +module.exports = require("fs"); + +/***/ }), + +/***/ 17: +/***/ ((module) => { + +"use strict"; +module.exports = require("path"); + +/***/ }), + +/***/ 310: +/***/ ((module) => { + +"use strict"; +module.exports = require("url"); + +/***/ }) + +/******/ }); +/************************************************************************/ +/******/ // The module cache +/******/ var __webpack_module_cache__ = {}; +/******/ +/******/ // The require function +/******/ function __nccwpck_require__(moduleId) { +/******/ // Check if module is in cache +/******/ var cachedModule = __webpack_module_cache__[moduleId]; +/******/ if (cachedModule !== undefined) { +/******/ return cachedModule.exports; +/******/ } +/******/ // Create a new module (and put it into the cache) +/******/ var module = __webpack_module_cache__[moduleId] = { +/******/ // no module.id needed +/******/ // no module.loaded needed +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ var threw = true; +/******/ try { +/******/ __webpack_modules__[moduleId](module, module.exports, __nccwpck_require__); +/******/ threw = false; +/******/ } finally { +/******/ if(threw) delete __webpack_module_cache__[moduleId]; +/******/ } +/******/ +/******/ // Return the exports of the module +/******/ return module.exports; +/******/ } +/******/ +/************************************************************************/ +/******/ /* webpack/runtime/compat */ +/******/ +/******/ if (typeof __nccwpck_require__ !== 'undefined') __nccwpck_require__.ab = __dirname + "/"; +/******/ +/************************************************************************/ +var __webpack_exports__ = {}; +// This entry need to be wrapped in an IIFE because it need to be isolated against other modules in the chunk. +(() => { +var exports = __webpack_exports__; +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = __nccwpck_require__(87).SourceMapGenerator; +exports.SourceMapConsumer = __nccwpck_require__(886).SourceMapConsumer; +exports.SourceNode = __nccwpck_require__(589).SourceNode; + +})(); + +module.exports = __webpack_exports__; +/******/ })() +; \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/stacktrace-parser/package.json b/cli/app/node_modules/next/dist/compiled/stacktrace-parser/package.json new file mode 100644 index 00000000000..1dafea10f6e --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/stacktrace-parser/package.json @@ -0,0 +1 @@ +{"name":"stacktrace-parser","main":"stack-trace-parser.cjs.js","author":"Georg Tavonius (http://jaz-lounge.com)","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js b/cli/app/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js new file mode 100644 index 00000000000..f3c22becafb --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js @@ -0,0 +1 @@ +(()=>{"use strict";if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};(()=>{var r=e;Object.defineProperty(r,"__esModule",{value:true});var n="";function parse(e){var r=e.split("\n");return r.reduce((function(e,r){var n=parseChrome(r)||parseWinjs(r)||parseGecko(r)||parseNode(r)||parseJSC(r);if(n){e.push(n)}return e}),[])}var a=/^\s*at (.*?) ?\(((?:file|https?|blob|chrome-extension|native|eval|webpack|webpack-internal|rsc|about|turbopack||\/|[a-z]:\\|\\\\).*?)(?::(\d+))?(?::(\d+))?\)?\s*$/i;var u=/\((\S*)(?::(\d+))(?::(\d+))\)/;function parseChrome(e){var r=a.exec(e);if(!r){return null}var l=r[2]&&r[2].indexOf("native")===0;var t=r[2]&&r[2].indexOf("eval")===0;var i=u.exec(r[2]);if(t&&i!=null){r[2]=i[1];r[3]=i[2];r[4]=i[3]}return{file:!l?r[2]:null,methodName:r[1]||n,arguments:l?[r[2]]:[],lineNumber:r[3]?+r[3]:null,column:r[4]?+r[4]:null}}var l=/^\s*at (?:((?:\[object object\])?.+) )?\(?((?:file|ms-appx|https?|webpack|webpack-internal|rsc|about|turbopack|blob):.*?):(\d+)(?::(\d+))?\)?\s*$/i;function parseWinjs(e){var r=l.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}var t=/^\s*(.*?)(?:\((.*?)\))?(?:^|@)((?:file|https?|blob|chrome|webpack|webpack-internal|rsc|about|turbopack|resource|\[native).*?|[^@]*bundle)(?::(\d+))?(?::(\d+))?\s*$/i;var i=/(\S+) line (\d+)(?: > eval line \d+)* > eval/i;function parseGecko(e){var r=t.exec(e);if(!r){return null}var a=r[3]&&r[3].indexOf(" > eval")>-1;var u=i.exec(r[3]);if(a&&u!=null){r[3]=u[1];r[4]=u[2];r[5]=null}return{file:r[3],methodName:r[1]||n,arguments:r[2]?r[2].split(","):[],lineNumber:r[4]?+r[4]:null,column:r[5]?+r[5]:null}}var o=/^\s*(?:([^@]*)(?:\((.*?)\))?@)?(\S.*?):(\d+)(?::(\d+))?\s*$/i;function parseJSC(e){var r=o.exec(e);if(!r){return null}return{file:r[3],methodName:r[1]||n,arguments:[],lineNumber:+r[4],column:r[5]?+r[5]:null}}var s=/^\s*at (?:((?:\[object object\])?[^\\/]+(?: \[as \S+\])?) )?\(?(.*?):(\d+)(?::(\d+))?\)?\s*$/i;function parseNode(e){var r=s.exec(e);if(!r){return null}return{file:r[2],methodName:r[1]||n,arguments:[],lineNumber:+r[3],column:r[4]?+r[4]:null}}r.parse=parse})();module.exports=e})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/stream-browserify/index.js b/cli/app/node_modules/next/dist/compiled/stream-browserify/index.js new file mode 100644 index 00000000000..ce93cfba1de --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/stream-browserify/index.js @@ -0,0 +1 @@ +(function(){var e={782:function(e){if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},646:function(e){"use strict";const t={};function createErrorType(e,r,n){if(!n){n=Error}function getMessage(e,t,n){if(typeof r==="string"){return r}else{return r(e,t,n)}}class NodeError extends n{constructor(e,t,r){super(getMessage(e,t,r))}}NodeError.prototype.name=n.name;NodeError.prototype.code=e;t[e]=NodeError}function oneOf(e,t){if(Array.isArray(e)){const r=e.length;e=e.map((e=>String(e)));if(r>2){return`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]}else if(r===2){return`one of ${t} ${e[0]} or ${e[1]}`}else{return`of ${t} ${e[0]}`}}else{return`of ${t} ${String(e)}`}}function startsWith(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function endsWith(e,t,r){if(r===undefined||r>e.length){r=e.length}return e.substring(r-t.length,r)===t}function includes(e,t,r){if(typeof r!=="number"){r=0}if(r+t.length>e.length){return false}else{return e.indexOf(t,r)!==-1}}createErrorType("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError);createErrorType("ERR_INVALID_ARG_TYPE",(function(e,t,r){let n;if(typeof t==="string"&&startsWith(t,"not ")){n="must not be";t=t.replace(/^not /,"")}else{n="must be"}let i;if(endsWith(e," argument")){i=`The ${e} ${n} ${oneOf(t,"type")}`}else{const r=includes(e,".")?"property":"argument";i=`The "${e}" ${r} ${n} ${oneOf(t,"type")}`}i+=`. Received type ${typeof r}`;return i}),TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"}));createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"}));createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");e.exports.q=t},403:function(e,t,r){"use strict";var n=Object.keys||function(e){var t=[];for(var r in e){t.push(r)}return t};e.exports=Duplex;var i=r(709);var a=r(337);r(782)(Duplex,i);{var o=n(a.prototype);for(var s=0;s0){if(typeof t!=="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==s.prototype){t=_uint8ArrayToBuffer(t)}if(n){if(a.endEmitted)R(e,new v);else addChunk(e,a,t,true)}else if(a.ended){R(e,new y)}else if(a.destroyed){return false}else{a.reading=false;if(a.decoder&&!r){t=a.decoder.write(t);if(a.objectMode||t.length!==0)addChunk(e,a,t,false);else maybeReadMore(e,a)}else{addChunk(e,a,t,false)}}}else if(!n){a.reading=false;maybeReadMore(e,a)}}return!a.ended&&(a.length=T){e=T}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,t){if(e<=0||t.length===0&&t.ended)return 0;if(t.objectMode)return 1;if(e!==e){if(t.flowing&&t.length)return t.buffer.head.data.length;else return t.length}if(e>t.highWaterMark)t.highWaterMark=computeNewHighWaterMark(e);if(e<=t.length)return e;if(!t.ended){t.needReadable=true;return 0}return t.length}Readable.prototype.read=function(e){u("read",e);e=parseInt(e,10);var t=this._readableState;var r=e;if(e!==0)t.emittedReadable=false;if(e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended)){u("read: emitReadable",t.length,t.ended);if(t.length===0&&t.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,t);if(e===0&&t.ended){if(t.length===0)endReadable(this);return null}var n=t.needReadable;u("need readable",n);if(t.length===0||t.length-e0)i=fromList(e,t);else i=null;if(i===null){t.needReadable=t.length<=t.highWaterMark;e=0}else{t.length-=e;t.awaitDrain=0}if(t.length===0){if(!t.ended)t.needReadable=true;if(r!==e&&t.ended)endReadable(this)}if(i!==null)this.emit("data",i);return i};function onEofChunk(e,t){u("onEofChunk");if(t.ended)return;if(t.decoder){var r=t.decoder.end();if(r&&r.length){t.buffer.push(r);t.length+=t.objectMode?1:r.length}}t.ended=true;if(t.sync){emitReadable(e)}else{t.needReadable=false;if(!t.emittedReadable){t.emittedReadable=true;emitReadable_(e)}}}function emitReadable(e){var t=e._readableState;u("emitReadable",t.needReadable,t.emittedReadable);t.needReadable=false;if(!t.emittedReadable){u("emitReadable",t.flowing);t.emittedReadable=true;process.nextTick(emitReadable_,e)}}function emitReadable_(e){var t=e._readableState;u("emitReadable_",t.destroyed,t.length,t.ended);if(!t.destroyed&&(t.length||t.ended)){e.emit("readable");t.emittedReadable=false}t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark;flow(e)}function maybeReadMore(e,t){if(!t.readingMore){t.readingMore=true;process.nextTick(maybeReadMore_,e,t)}}function maybeReadMore_(e,t){while(!t.reading&&!t.ended&&(t.length1&&indexOf(n.pipes,e)!==-1)&&!f){u("false write response, pause",n.awaitDrain);n.awaitDrain++}r.pause()}}function onerror(t){u("onerror",t);unpipe();e.removeListener("error",onerror);if(a(e,"error")===0)R(e,t)}prependListener(e,"error",onerror);function onclose(){e.removeListener("finish",onfinish);unpipe()}e.once("close",onclose);function onfinish(){u("onfinish");e.removeListener("close",onclose);unpipe()}e.once("finish",onfinish);function unpipe(){u("unpipe");r.unpipe(e)}e.emit("pipe",r);if(!n.flowing){u("pipe resume");r.resume()}return e};function pipeOnDrain(e){return function pipeOnDrainFunctionResult(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain);if(t.awaitDrain)t.awaitDrain--;if(t.awaitDrain===0&&a(e,"data")){t.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var t=this._readableState;var r={hasUnpiped:false};if(t.pipesCount===0)return this;if(t.pipesCount===1){if(e&&e!==t.pipes)return this;if(!e)e=t.pipes;t.pipes=null;t.pipesCount=0;t.flowing=false;if(e)e.emit("unpipe",this,r);return this}if(!e){var n=t.pipes;var i=t.pipesCount;t.pipes=null;t.pipesCount=0;t.flowing=false;for(var a=0;a0;if(n.flowing!==false)this.resume()}else if(e==="readable"){if(!n.endEmitted&&!n.readableListening){n.readableListening=n.needReadable=true;n.flowing=false;n.emittedReadable=false;u("on readable",n.length,n.reading);if(n.length){emitReadable(this)}else if(!n.reading){process.nextTick(nReadingNextTick,this)}}}return r};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);if(e==="readable"){process.nextTick(updateReadableListening,this)}return r};Readable.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);if(e==="readable"||e===undefined){process.nextTick(updateReadableListening,this)}return t};function updateReadableListening(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0;if(t.resumeScheduled&&!t.paused){t.flowing=true}else if(e.listenerCount("data")>0){e.resume()}}function nReadingNextTick(e){u("readable nexttick read 0");e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;if(!e.flowing){u("resume");e.flowing=!e.readableListening;resume(this,e)}e.paused=false;return this};function resume(e,t){if(!t.resumeScheduled){t.resumeScheduled=true;process.nextTick(resume_,e,t)}}function resume_(e,t){u("resume",t.reading);if(!t.reading){e.read(0)}t.resumeScheduled=false;e.emit("resume");flow(e);if(t.flowing&&!t.reading)e.read(0)}Readable.prototype.pause=function(){u("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){u("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(e){var t=e._readableState;u("flow",t.flowing);while(t.flowing&&e.read()!==null){}}Readable.prototype.wrap=function(e){var t=this;var r=this._readableState;var n=false;e.on("end",(function(){u("wrapped end");if(r.decoder&&!r.ended){var e=r.decoder.end();if(e&&e.length)t.push(e)}t.push(null)}));e.on("data",(function(i){u("wrapped data");if(r.decoder)i=r.decoder.write(i);if(r.objectMode&&(i===null||i===undefined))return;else if(!r.objectMode&&(!i||!i.length))return;var a=t.push(i);if(!a){n=true;e.pause()}}));for(var i in e){if(this[i]===undefined&&typeof e[i]==="function"){this[i]=function methodWrap(t){return function methodWrapReturnFunction(){return e[t].apply(e,arguments)}}(i)}}for(var a=0;a=t.length){if(t.decoder)r=t.buffer.join("");else if(t.buffer.length===1)r=t.buffer.first();else r=t.buffer.concat(t.length);t.buffer.clear()}else{r=t.buffer.consume(e,t.decoder)}return r}function endReadable(e){var t=e._readableState;u("endReadable",t.endEmitted);if(!t.endEmitted){t.ended=true;process.nextTick(endReadableNT,t,e)}}function endReadableNT(e,t){u("endReadableNT",e.endEmitted,e.length);if(!e.endEmitted&&e.length===0){e.endEmitted=true;t.readable=false;t.emit("end");if(e.autoDestroy){var r=t._writableState;if(!r||r.autoDestroy&&r.finished){t.destroy()}}}}if(typeof Symbol==="function"){Readable.from=function(e,t){if(S===undefined){S=r(727)}return S(Readable,e,t)}}function indexOf(e,t){for(var r=0,n=e.length;r-1))throw new v(e);this._writableState.defaultEncoding=e;return this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(e,t,r){if(!e.objectMode&&e.decodeStrings!==false&&typeof t==="string"){t=o.from(t,r)}return t}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(e,t,r,n,i,a){if(!r){var o=decodeChunk(t,n,i);if(n!==o){r=true;i="buffer";n=o}}var s=t.objectMode?1:n.length;t.length+=s;var f=t.length0)this.tail.next=t;else this.head=t;this.tail=t;++this.length}},{key:"unshift",value:function unshift(e){var t={data:e,next:this.head};if(this.length===0)this.tail=t;this.head=t;++this.length}},{key:"shift",value:function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0}},{key:"join",value:function join(e){if(this.length===0)return"";var t=this.head;var r=""+t.data;while(t=t.next){r+=e+t.data}return r}},{key:"concat",value:function concat(e){if(this.length===0)return i.alloc(0);var t=i.allocUnsafe(e>>>0);var r=this.head;var n=0;while(r){copyBuffer(r.data,t,n);n+=r.data.length;r=r.next}return t}},{key:"consume",value:function consume(e,t){var r;if(ei.length?i.length:e;if(a===i.length)n+=i;else n+=i.slice(0,e);e-=a;if(e===0){if(a===i.length){++r;if(t.next)this.head=t.next;else this.head=this.tail=null}else{this.head=t;t.data=i.slice(a)}break}++r}this.length-=r;return n}},{key:"_getBuffer",value:function _getBuffer(e){var t=i.allocUnsafe(e);var r=this.head;var n=1;r.data.copy(t);e-=r.data.length;while(r=r.next){var a=r.data;var o=e>a.length?a.length:e;a.copy(t,t.length-e,0,o);e-=o;if(e===0){if(o===a.length){++n;if(r.next)this.head=r.next;else this.head=this.tail=null}else{this.head=r;r.data=a.slice(o)}break}++n}this.length-=n;return t}},{key:s,value:function value(e,t){return o(this,_objectSpread({},t,{depth:0,customInspect:false}))}}]);return BufferList}()},25:function(e){"use strict";function destroy(e,t){var r=this;var n=this._readableState&&this._readableState.destroyed;var i=this._writableState&&this._writableState.destroyed;if(n||i){if(t){t(e)}else if(e){if(!this._writableState){process.nextTick(emitErrorNT,this,e)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,e)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(e||null,(function(e){if(!t&&e){if(!r._writableState){process.nextTick(emitErrorAndCloseNT,r,e)}else if(!r._writableState.errorEmitted){r._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,r,e)}else{process.nextTick(emitCloseNT,r)}}else if(t){process.nextTick(emitCloseNT,r);t(e)}else{process.nextTick(emitCloseNT,r)}}));return this}function emitErrorAndCloseNT(e,t){emitErrorNT(e,t);emitCloseNT(e)}function emitCloseNT(e){if(e._writableState&&!e._writableState.emitClose)return;if(e._readableState&&!e._readableState.emitClose)return;e.emit("close")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(e,t){e.emit("error",t)}function errorOrDestroy(e,t){var r=e._readableState;var n=e._writableState;if(r&&r.autoDestroy||n&&n.autoDestroy)e.destroy(t);else e.emit("error",t)}e.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}},698:function(e,t,r){"use strict";var n=r(646).q.ERR_STREAM_PREMATURE_CLOSE;function once(e){var t=false;return function(){if(t)return;t=true;for(var r=arguments.length,n=new Array(r),i=0;i0;return destroyer(e,a,s,(function(e){if(!i)i=e;if(e)o.forEach(call);if(a)return;o.forEach(call);n(i)}))}));return t.reduce(pipe)}e.exports=pipeline},776:function(e,t,r){"use strict";var n=r(646).q.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function getHighWaterMark(e,t,r,i){var a=highWaterMarkFrom(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=i?r:"highWaterMark";throw new n(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}e.exports={getHighWaterMark:getHighWaterMark}},678:function(e,t,r){e.exports=r(781)},55:function(e,t,r){var n=r(300);var i=n.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow){e.exports=n}else{copyProps(n,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return i(e,t,r)}SafeBuffer.prototype=Object.create(i.prototype);copyProps(i,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e==="number"){throw new TypeError("Argument must not be a number")}return i(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}var n=i(e);if(t!==undefined){if(typeof r==="string"){n.fill(t,r)}else{n.fill(t)}}else{n.fill(0)}return n};SafeBuffer.allocUnsafe=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return i(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return n.SlowBuffer(e)}},173:function(e,t,r){e.exports=Stream;var n=r(361).EventEmitter;var i=r(782);i(Stream,n);Stream.Readable=r(709);Stream.Writable=r(337);Stream.Duplex=r(403);Stream.Transform=r(170);Stream.PassThrough=r(889);Stream.finished=r(698);Stream.pipeline=r(442);Stream.Stream=Stream;function Stream(){n.call(this)}Stream.prototype.pipe=function(e,t){var r=this;function ondata(t){if(e.writable){if(false===e.write(t)&&r.pause){r.pause()}}}r.on("data",ondata);function ondrain(){if(r.readable&&r.resume){r.resume()}}e.on("drain",ondrain);if(!e._isStdio&&(!t||t.end!==false)){r.on("end",onend);r.on("close",onclose)}var i=false;function onend(){if(i)return;i=true;e.end()}function onclose(){if(i)return;i=true;if(typeof e.destroy==="function")e.destroy()}function onerror(e){cleanup();if(n.listenerCount(this,"error")===0){throw e}}r.on("error",onerror);e.on("error",onerror);function cleanup(){r.removeListener("data",ondata);e.removeListener("drain",ondrain);r.removeListener("end",onend);r.removeListener("close",onclose);r.removeListener("error",onerror);e.removeListener("error",onerror);r.removeListener("end",cleanup);r.removeListener("close",cleanup);e.removeListener("close",cleanup)}r.on("end",cleanup);r.on("close",cleanup);e.on("close",cleanup);e.emit("pipe",r);return e}},704:function(e,t,r){"use strict";var n=r(55).Buffer;var i=n.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var t;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase();t=true}}}function normalizeEncoding(e){var t=_normalizeEncoding(e);if(typeof t!=="string"&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}t.s=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var t;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;t=4;break;case"utf8":this.fillLast=utf8FillLast;t=4;break;case"base64":this.text=base64Text;this.end=base64End;t=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=n.allocUnsafe(t)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var t;var r;if(this.lastNeed){t=this.fillLast(e);if(t===undefined)return"";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var n=t.length-1;if(n=0){if(i>0)e.lastNeed=i-1;return i}if(--n=0){if(i>0)e.lastNeed=i-2;return i}if(--n=0){if(i>0){if(i===2)i=0;else e.lastNeed=i-3}return i}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,n);return e.toString("utf8",t,n)}function utf8End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+"�";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString("base64",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+this.lastChar.toString("base64",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},769:function(e){e.exports=deprecate;function deprecate(e,t){if(config("noDeprecation")){return e}var r=false;function deprecated(){if(!r){if(config("throwDeprecation")){throw new Error(t)}else if(config("traceDeprecation")){console.trace(t)}else{console.warn(t)}r=true}return e.apply(this,arguments)}return deprecated}function config(e){try{if(!global.localStorage)return false}catch(e){return false}var t=global.localStorage[e];if(null==t)return false;return String(t).toLowerCase()==="true"}},300:function(e){"use strict";e.exports=require("buffer")},361:function(e){"use strict";e.exports=require("events")},781:function(e){"use strict";e.exports=require("events").EventEmitter},837:function(e){"use strict";e.exports=require("util")}};var t={};function __nccwpck_require__(r){var n=t[r];if(n!==undefined){return n.exports}var i=t[r]={exports:{}};var a=true;try{e[r](i,i.exports,__nccwpck_require__);a=false}finally{if(a)delete t[r]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r=__nccwpck_require__(173);module.exports=r})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/stream-browserify/package.json b/cli/app/node_modules/next/dist/compiled/stream-browserify/package.json new file mode 100644 index 00000000000..91aad094b74 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/stream-browserify/package.json @@ -0,0 +1 @@ +{"name":"stream-browserify","main":"index.js","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/stream-http/index.js b/cli/app/node_modules/next/dist/compiled/stream-http/index.js new file mode 100644 index 00000000000..ad246108eaf --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/stream-http/index.js @@ -0,0 +1 @@ +(function(){var e={523:function(e){e.exports={100:"Continue",101:"Switching Protocols",102:"Processing",200:"OK",201:"Created",202:"Accepted",203:"Non-Authoritative Information",204:"No Content",205:"Reset Content",206:"Partial Content",207:"Multi-Status",208:"Already Reported",226:"IM Used",300:"Multiple Choices",301:"Moved Permanently",302:"Found",303:"See Other",304:"Not Modified",305:"Use Proxy",307:"Temporary Redirect",308:"Permanent Redirect",400:"Bad Request",401:"Unauthorized",402:"Payment Required",403:"Forbidden",404:"Not Found",405:"Method Not Allowed",406:"Not Acceptable",407:"Proxy Authentication Required",408:"Request Timeout",409:"Conflict",410:"Gone",411:"Length Required",412:"Precondition Failed",413:"Payload Too Large",414:"URI Too Long",415:"Unsupported Media Type",416:"Range Not Satisfiable",417:"Expectation Failed",418:"I'm a teapot",421:"Misdirected Request",422:"Unprocessable Entity",423:"Locked",424:"Failed Dependency",425:"Unordered Collection",426:"Upgrade Required",428:"Precondition Required",429:"Too Many Requests",431:"Request Header Fields Too Large",451:"Unavailable For Legal Reasons",500:"Internal Server Error",501:"Not Implemented",502:"Bad Gateway",503:"Service Unavailable",504:"Gateway Timeout",505:"HTTP Version Not Supported",506:"Variant Also Negotiates",507:"Insufficient Storage",508:"Loop Detected",509:"Bandwidth Limit Exceeded",510:"Not Extended",511:"Network Authentication Required"}},782:function(e){if(typeof Object.create==="function"){e.exports=function inherits(e,t){if(t){e.super_=t;e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:false,writable:true,configurable:true}})}}}else{e.exports=function inherits(e,t){if(t){e.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;e.prototype=new TempCtor;e.prototype.constructor=e}}}},646:function(e){"use strict";const t={};function createErrorType(e,r,n){if(!n){n=Error}function getMessage(e,t,n){if(typeof r==="string"){return r}else{return r(e,t,n)}}class NodeError extends n{constructor(e,t,r){super(getMessage(e,t,r))}}NodeError.prototype.name=n.name;NodeError.prototype.code=e;t[e]=NodeError}function oneOf(e,t){if(Array.isArray(e)){const r=e.length;e=e.map((e=>String(e)));if(r>2){return`one of ${t} ${e.slice(0,r-1).join(", ")}, or `+e[r-1]}else if(r===2){return`one of ${t} ${e[0]} or ${e[1]}`}else{return`of ${t} ${e[0]}`}}else{return`of ${t} ${String(e)}`}}function startsWith(e,t,r){return e.substr(!r||r<0?0:+r,t.length)===t}function endsWith(e,t,r){if(r===undefined||r>e.length){r=e.length}return e.substring(r-t.length,r)===t}function includes(e,t,r){if(typeof r!=="number"){r=0}if(r+t.length>e.length){return false}else{return e.indexOf(t,r)!==-1}}createErrorType("ERR_INVALID_OPT_VALUE",(function(e,t){return'The value "'+t+'" is invalid for option "'+e+'"'}),TypeError);createErrorType("ERR_INVALID_ARG_TYPE",(function(e,t,r){let n;if(typeof t==="string"&&startsWith(t,"not ")){n="must not be";t=t.replace(/^not /,"")}else{n="must be"}let i;if(endsWith(e," argument")){i=`The ${e} ${n} ${oneOf(t,"type")}`}else{const r=includes(e,".")?"property":"argument";i=`The "${e}" ${r} ${n} ${oneOf(t,"type")}`}i+=`. Received type ${typeof r}`;return i}),TypeError);createErrorType("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF");createErrorType("ERR_METHOD_NOT_IMPLEMENTED",(function(e){return"The "+e+" method is not implemented"}));createErrorType("ERR_STREAM_PREMATURE_CLOSE","Premature close");createErrorType("ERR_STREAM_DESTROYED",(function(e){return"Cannot call "+e+" after a stream was destroyed"}));createErrorType("ERR_MULTIPLE_CALLBACK","Callback called multiple times");createErrorType("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable");createErrorType("ERR_STREAM_WRITE_AFTER_END","write after end");createErrorType("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError);createErrorType("ERR_UNKNOWN_ENCODING",(function(e){return"Unknown encoding: "+e}),TypeError);createErrorType("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event");e.exports.q=t},403:function(e,t,r){"use strict";var n=Object.keys||function(e){var t=[];for(var r in e){t.push(r)}return t};e.exports=Duplex;var i=r(709);var a=r(337);r(782)(Duplex,i);{var o=n(a.prototype);for(var s=0;s0){if(typeof t!=="string"&&!a.objectMode&&Object.getPrototypeOf(t)!==s.prototype){t=_uint8ArrayToBuffer(t)}if(n){if(a.endEmitted)S(e,new v);else addChunk(e,a,t,true)}else if(a.ended){S(e,new g)}else if(a.destroyed){return false}else{a.reading=false;if(a.decoder&&!r){t=a.decoder.write(t);if(a.objectMode||t.length!==0)addChunk(e,a,t,false);else maybeReadMore(e,a)}else{addChunk(e,a,t,false)}}}else if(!n){a.reading=false;maybeReadMore(e,a)}}return!a.ended&&(a.length=T){e=T}else{e--;e|=e>>>1;e|=e>>>2;e|=e>>>4;e|=e>>>8;e|=e>>>16;e++}return e}function howMuchToRead(e,t){if(e<=0||t.length===0&&t.ended)return 0;if(t.objectMode)return 1;if(e!==e){if(t.flowing&&t.length)return t.buffer.head.data.length;else return t.length}if(e>t.highWaterMark)t.highWaterMark=computeNewHighWaterMark(e);if(e<=t.length)return e;if(!t.ended){t.needReadable=true;return 0}return t.length}Readable.prototype.read=function(e){u("read",e);e=parseInt(e,10);var t=this._readableState;var r=e;if(e!==0)t.emittedReadable=false;if(e===0&&t.needReadable&&((t.highWaterMark!==0?t.length>=t.highWaterMark:t.length>0)||t.ended)){u("read: emitReadable",t.length,t.ended);if(t.length===0&&t.ended)endReadable(this);else emitReadable(this);return null}e=howMuchToRead(e,t);if(e===0&&t.ended){if(t.length===0)endReadable(this);return null}var n=t.needReadable;u("need readable",n);if(t.length===0||t.length-e0)i=fromList(e,t);else i=null;if(i===null){t.needReadable=t.length<=t.highWaterMark;e=0}else{t.length-=e;t.awaitDrain=0}if(t.length===0){if(!t.ended)t.needReadable=true;if(r!==e&&t.ended)endReadable(this)}if(i!==null)this.emit("data",i);return i};function onEofChunk(e,t){u("onEofChunk");if(t.ended)return;if(t.decoder){var r=t.decoder.end();if(r&&r.length){t.buffer.push(r);t.length+=t.objectMode?1:r.length}}t.ended=true;if(t.sync){emitReadable(e)}else{t.needReadable=false;if(!t.emittedReadable){t.emittedReadable=true;emitReadable_(e)}}}function emitReadable(e){var t=e._readableState;u("emitReadable",t.needReadable,t.emittedReadable);t.needReadable=false;if(!t.emittedReadable){u("emitReadable",t.flowing);t.emittedReadable=true;process.nextTick(emitReadable_,e)}}function emitReadable_(e){var t=e._readableState;u("emitReadable_",t.destroyed,t.length,t.ended);if(!t.destroyed&&(t.length||t.ended)){e.emit("readable");t.emittedReadable=false}t.needReadable=!t.flowing&&!t.ended&&t.length<=t.highWaterMark;flow(e)}function maybeReadMore(e,t){if(!t.readingMore){t.readingMore=true;process.nextTick(maybeReadMore_,e,t)}}function maybeReadMore_(e,t){while(!t.reading&&!t.ended&&(t.length1&&indexOf(n.pipes,e)!==-1)&&!f){u("false write response, pause",n.awaitDrain);n.awaitDrain++}r.pause()}}function onerror(t){u("onerror",t);unpipe();e.removeListener("error",onerror);if(a(e,"error")===0)S(e,t)}prependListener(e,"error",onerror);function onclose(){e.removeListener("finish",onfinish);unpipe()}e.once("close",onclose);function onfinish(){u("onfinish");e.removeListener("close",onclose);unpipe()}e.once("finish",onfinish);function unpipe(){u("unpipe");r.unpipe(e)}e.emit("pipe",r);if(!n.flowing){u("pipe resume");r.resume()}return e};function pipeOnDrain(e){return function pipeOnDrainFunctionResult(){var t=e._readableState;u("pipeOnDrain",t.awaitDrain);if(t.awaitDrain)t.awaitDrain--;if(t.awaitDrain===0&&a(e,"data")){t.flowing=true;flow(e)}}}Readable.prototype.unpipe=function(e){var t=this._readableState;var r={hasUnpiped:false};if(t.pipesCount===0)return this;if(t.pipesCount===1){if(e&&e!==t.pipes)return this;if(!e)e=t.pipes;t.pipes=null;t.pipesCount=0;t.flowing=false;if(e)e.emit("unpipe",this,r);return this}if(!e){var n=t.pipes;var i=t.pipesCount;t.pipes=null;t.pipesCount=0;t.flowing=false;for(var a=0;a0;if(n.flowing!==false)this.resume()}else if(e==="readable"){if(!n.endEmitted&&!n.readableListening){n.readableListening=n.needReadable=true;n.flowing=false;n.emittedReadable=false;u("on readable",n.length,n.reading);if(n.length){emitReadable(this)}else if(!n.reading){process.nextTick(nReadingNextTick,this)}}}return r};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(e,t){var r=o.prototype.removeListener.call(this,e,t);if(e==="readable"){process.nextTick(updateReadableListening,this)}return r};Readable.prototype.removeAllListeners=function(e){var t=o.prototype.removeAllListeners.apply(this,arguments);if(e==="readable"||e===undefined){process.nextTick(updateReadableListening,this)}return t};function updateReadableListening(e){var t=e._readableState;t.readableListening=e.listenerCount("readable")>0;if(t.resumeScheduled&&!t.paused){t.flowing=true}else if(e.listenerCount("data")>0){e.resume()}}function nReadingNextTick(e){u("readable nexttick read 0");e.read(0)}Readable.prototype.resume=function(){var e=this._readableState;if(!e.flowing){u("resume");e.flowing=!e.readableListening;resume(this,e)}e.paused=false;return this};function resume(e,t){if(!t.resumeScheduled){t.resumeScheduled=true;process.nextTick(resume_,e,t)}}function resume_(e,t){u("resume",t.reading);if(!t.reading){e.read(0)}t.resumeScheduled=false;e.emit("resume");flow(e);if(t.flowing&&!t.reading)e.read(0)}Readable.prototype.pause=function(){u("call pause flowing=%j",this._readableState.flowing);if(this._readableState.flowing!==false){u("pause");this._readableState.flowing=false;this.emit("pause")}this._readableState.paused=true;return this};function flow(e){var t=e._readableState;u("flow",t.flowing);while(t.flowing&&e.read()!==null){}}Readable.prototype.wrap=function(e){var t=this;var r=this._readableState;var n=false;e.on("end",(function(){u("wrapped end");if(r.decoder&&!r.ended){var e=r.decoder.end();if(e&&e.length)t.push(e)}t.push(null)}));e.on("data",(function(i){u("wrapped data");if(r.decoder)i=r.decoder.write(i);if(r.objectMode&&(i===null||i===undefined))return;else if(!r.objectMode&&(!i||!i.length))return;var a=t.push(i);if(!a){n=true;e.pause()}}));for(var i in e){if(this[i]===undefined&&typeof e[i]==="function"){this[i]=function methodWrap(t){return function methodWrapReturnFunction(){return e[t].apply(e,arguments)}}(i)}}for(var a=0;a=t.length){if(t.decoder)r=t.buffer.join("");else if(t.buffer.length===1)r=t.buffer.first();else r=t.buffer.concat(t.length);t.buffer.clear()}else{r=t.buffer.consume(e,t.decoder)}return r}function endReadable(e){var t=e._readableState;u("endReadable",t.endEmitted);if(!t.endEmitted){t.ended=true;process.nextTick(endReadableNT,t,e)}}function endReadableNT(e,t){u("endReadableNT",e.endEmitted,e.length);if(!e.endEmitted&&e.length===0){e.endEmitted=true;t.readable=false;t.emit("end");if(e.autoDestroy){var r=t._writableState;if(!r||r.autoDestroy&&r.finished){t.destroy()}}}}if(typeof Symbol==="function"){Readable.from=function(e,t){if(R===undefined){R=r(727)}return R(Readable,e,t)}}function indexOf(e,t){for(var r=0,n=e.length;r-1))throw new v(e);this._writableState.defaultEncoding=e;return this};Object.defineProperty(Writable.prototype,"writableBuffer",{enumerable:false,get:function get(){return this._writableState&&this._writableState.getBuffer()}});function decodeChunk(e,t,r){if(!e.objectMode&&e.decodeStrings!==false&&typeof t==="string"){t=o.from(t,r)}return t}Object.defineProperty(Writable.prototype,"writableHighWaterMark",{enumerable:false,get:function get(){return this._writableState.highWaterMark}});function writeOrBuffer(e,t,r,n,i,a){if(!r){var o=decodeChunk(t,n,i);if(n!==o){r=true;i="buffer";n=o}}var s=t.objectMode?1:n.length;t.length+=s;var f=t.length0)this.tail.next=t;else this.head=t;this.tail=t;++this.length}},{key:"unshift",value:function unshift(e){var t={data:e,next:this.head};if(this.length===0)this.tail=t;this.head=t;++this.length}},{key:"shift",value:function shift(){if(this.length===0)return;var e=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;--this.length;return e}},{key:"clear",value:function clear(){this.head=this.tail=null;this.length=0}},{key:"join",value:function join(e){if(this.length===0)return"";var t=this.head;var r=""+t.data;while(t=t.next){r+=e+t.data}return r}},{key:"concat",value:function concat(e){if(this.length===0)return i.alloc(0);var t=i.allocUnsafe(e>>>0);var r=this.head;var n=0;while(r){copyBuffer(r.data,t,n);n+=r.data.length;r=r.next}return t}},{key:"consume",value:function consume(e,t){var r;if(ei.length?i.length:e;if(a===i.length)n+=i;else n+=i.slice(0,e);e-=a;if(e===0){if(a===i.length){++r;if(t.next)this.head=t.next;else this.head=this.tail=null}else{this.head=t;t.data=i.slice(a)}break}++r}this.length-=r;return n}},{key:"_getBuffer",value:function _getBuffer(e){var t=i.allocUnsafe(e);var r=this.head;var n=1;r.data.copy(t);e-=r.data.length;while(r=r.next){var a=r.data;var o=e>a.length?a.length:e;a.copy(t,t.length-e,0,o);e-=o;if(e===0){if(o===a.length){++n;if(r.next)this.head=r.next;else this.head=this.tail=null}else{this.head=r;r.data=a.slice(o)}break}++n}this.length-=n;return t}},{key:s,value:function value(e,t){return o(this,_objectSpread({},t,{depth:0,customInspect:false}))}}]);return BufferList}()},25:function(e){"use strict";function destroy(e,t){var r=this;var n=this._readableState&&this._readableState.destroyed;var i=this._writableState&&this._writableState.destroyed;if(n||i){if(t){t(e)}else if(e){if(!this._writableState){process.nextTick(emitErrorNT,this,e)}else if(!this._writableState.errorEmitted){this._writableState.errorEmitted=true;process.nextTick(emitErrorNT,this,e)}}return this}if(this._readableState){this._readableState.destroyed=true}if(this._writableState){this._writableState.destroyed=true}this._destroy(e||null,(function(e){if(!t&&e){if(!r._writableState){process.nextTick(emitErrorAndCloseNT,r,e)}else if(!r._writableState.errorEmitted){r._writableState.errorEmitted=true;process.nextTick(emitErrorAndCloseNT,r,e)}else{process.nextTick(emitCloseNT,r)}}else if(t){process.nextTick(emitCloseNT,r);t(e)}else{process.nextTick(emitCloseNT,r)}}));return this}function emitErrorAndCloseNT(e,t){emitErrorNT(e,t);emitCloseNT(e)}function emitCloseNT(e){if(e._writableState&&!e._writableState.emitClose)return;if(e._readableState&&!e._readableState.emitClose)return;e.emit("close")}function undestroy(){if(this._readableState){this._readableState.destroyed=false;this._readableState.reading=false;this._readableState.ended=false;this._readableState.endEmitted=false}if(this._writableState){this._writableState.destroyed=false;this._writableState.ended=false;this._writableState.ending=false;this._writableState.finalCalled=false;this._writableState.prefinished=false;this._writableState.finished=false;this._writableState.errorEmitted=false}}function emitErrorNT(e,t){e.emit("error",t)}function errorOrDestroy(e,t){var r=e._readableState;var n=e._writableState;if(r&&r.autoDestroy||n&&n.autoDestroy)e.destroy(t);else e.emit("error",t)}e.exports={destroy:destroy,undestroy:undestroy,errorOrDestroy:errorOrDestroy}},698:function(e,t,r){"use strict";var n=r(646).q.ERR_STREAM_PREMATURE_CLOSE;function once(e){var t=false;return function(){if(t)return;t=true;for(var r=arguments.length,n=new Array(r),i=0;i0;return destroyer(e,a,s,(function(e){if(!i)i=e;if(e)o.forEach(call);if(a)return;o.forEach(call);n(i)}))}));return t.reduce(pipe)}e.exports=pipeline},776:function(e,t,r){"use strict";var n=r(646).q.ERR_INVALID_OPT_VALUE;function highWaterMarkFrom(e,t,r){return e.highWaterMark!=null?e.highWaterMark:t?e[r]:null}function getHighWaterMark(e,t,r,i){var a=highWaterMarkFrom(t,i,r);if(a!=null){if(!(isFinite(a)&&Math.floor(a)===a)||a<0){var o=i?r:"highWaterMark";throw new n(o,a)}return Math.floor(a)}return e.objectMode?16:16*1024}e.exports={getHighWaterMark:getHighWaterMark}},678:function(e,t,r){e.exports=r(781)},726:function(e,t,r){var n=r(781);if(process.env.READABLE_STREAM==="disable"&&n){e.exports=n.Readable;Object.assign(e.exports,n);e.exports.Stream=n}else{t=e.exports=r(709);t.Stream=n||t;t.Readable=t;t.Writable=r(337);t.Duplex=r(403);t.Transform=r(170);t.PassThrough=r(889);t.finished=r(698);t.pipeline=r(442)}},55:function(e,t,r){var n=r(300);var i=n.Buffer;function copyProps(e,t){for(var r in e){t[r]=e[r]}}if(i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow){e.exports=n}else{copyProps(n,t);t.Buffer=SafeBuffer}function SafeBuffer(e,t,r){return i(e,t,r)}SafeBuffer.prototype=Object.create(i.prototype);copyProps(i,SafeBuffer);SafeBuffer.from=function(e,t,r){if(typeof e==="number"){throw new TypeError("Argument must not be a number")}return i(e,t,r)};SafeBuffer.alloc=function(e,t,r){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}var n=i(e);if(t!==undefined){if(typeof r==="string"){n.fill(t,r)}else{n.fill(t)}}else{n.fill(0)}return n};SafeBuffer.allocUnsafe=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return i(e)};SafeBuffer.allocUnsafeSlow=function(e){if(typeof e!=="number"){throw new TypeError("Argument must be a number")}return n.SlowBuffer(e)}},813:function(e,t,r){var n=r(450);var i=r(254);var a=r(911);var o=r(523);var s=r(310);var f=t;f.request=function(e,t){if(typeof e==="string")e=s.parse(e);else e=a(e);var r=global.location.protocol.search(/^https?:$/)===-1?"http:":"";var i=e.protocol||r;var o=e.hostname||e.host;var f=e.port;var l=e.path||"/";if(o&&o.indexOf(":")!==-1)o="["+o+"]";e.url=(o?i+"//"+o:"")+(f?":"+f:"")+l;e.method=(e.method||"GET").toUpperCase();e.headers=e.headers||{};var u=new n(e);if(t)u.on("response",t);return u};f.get=function get(e,t){var r=f.request(e,t);r.end();return r};f.ClientRequest=n;f.IncomingMessage=i.IncomingMessage;f.Agent=function(){};f.Agent.defaultMaxSockets=4;f.globalAgent=new f.Agent;f.STATUS_CODES=o;f.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},301:function(e,t){t.fetch=isFunction(global.fetch)&&isFunction(global.ReadableStream);t.writableStream=isFunction(global.WritableStream);t.abortController=isFunction(global.AbortController);var r;function getXHR(){if(r!==undefined)return r;if(global.XMLHttpRequest){r=new global.XMLHttpRequest;try{r.open("GET",global.XDomainRequest?"/":"https://example.com")}catch(e){r=null}}else{r=null}return r}function checkTypeSupport(e){var t=getXHR();if(!t)return false;try{t.responseType=e;return t.responseType===e}catch(e){}return false}t.arraybuffer=t.fetch||checkTypeSupport("arraybuffer");t.msstream=!t.fetch&&checkTypeSupport("ms-stream");t.mozchunkedarraybuffer=!t.fetch&&checkTypeSupport("moz-chunked-arraybuffer");t.overrideMimeType=t.fetch||(getXHR()?isFunction(getXHR().overrideMimeType):false);function isFunction(e){return typeof e==="function"}r=null},450:function(e,t,r){var n=r(301);var i=r(782);var a=r(254);var o=r(726);var s=a.IncomingMessage;var f=a.readyStates;function decideMode(e,t){if(n.fetch&&t){return"fetch"}else if(n.mozchunkedarraybuffer){return"moz-chunked-arraybuffer"}else if(n.msstream){return"ms-stream"}else if(n.arraybuffer&&e){return"arraybuffer"}else{return"text"}}var l=e.exports=function(e){var t=this;o.Writable.call(t);t._opts=e;t._body=[];t._headers={};if(e.auth)t.setHeader("Authorization","Basic "+Buffer.from(e.auth).toString("base64"));Object.keys(e.headers).forEach((function(r){t.setHeader(r,e.headers[r])}));var r;var i=true;if(e.mode==="disable-fetch"||"requestTimeout"in e&&!n.abortController){i=false;r=true}else if(e.mode==="prefer-streaming"){r=false}else if(e.mode==="allow-wrong-content-type"){r=!n.overrideMimeType}else if(!e.mode||e.mode==="default"||e.mode==="prefer-fast"){r=true}else{throw new Error("Invalid value for opts.mode")}t._mode=decideMode(r,i);t._fetchTimer=null;t.on("finish",(function(){t._onFinish()}))};i(l,o.Writable);l.prototype.setHeader=function(e,t){var r=this;var n=e.toLowerCase();if(u.indexOf(n)!==-1)return;r._headers[n]={name:e,value:t}};l.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];if(t)return t.value;return null};l.prototype.removeHeader=function(e){var t=this;delete t._headers[e.toLowerCase()]};l.prototype._onFinish=function(){var e=this;if(e._destroyed)return;var t=e._opts;var r=e._headers;var i=null;if(t.method!=="GET"&&t.method!=="HEAD"){i=new Blob(e._body,{type:(r["content-type"]||{}).value||""})}var a=[];Object.keys(r).forEach((function(e){var t=r[e].name;var n=r[e].value;if(Array.isArray(n)){n.forEach((function(e){a.push([t,e])}))}else{a.push([t,n])}}));if(e._mode==="fetch"){var o=null;if(n.abortController){var s=new AbortController;o=s.signal;e._fetchAbortController=s;if("requestTimeout"in t&&t.requestTimeout!==0){e._fetchTimer=global.setTimeout((function(){e.emit("requestTimeout");if(e._fetchAbortController)e._fetchAbortController.abort()}),t.requestTimeout)}}global.fetch(e._opts.url,{method:e._opts.method,headers:a,body:i||undefined,mode:"cors",credentials:t.withCredentials?"include":"same-origin",signal:o}).then((function(t){e._fetchResponse=t;e._connect()}),(function(t){global.clearTimeout(e._fetchTimer);if(!e._destroyed)e.emit("error",t)}))}else{var l=e._xhr=new global.XMLHttpRequest;try{l.open(e._opts.method,e._opts.url,true)}catch(t){process.nextTick((function(){e.emit("error",t)}));return}if("responseType"in l)l.responseType=e._mode;if("withCredentials"in l)l.withCredentials=!!t.withCredentials;if(e._mode==="text"&&"overrideMimeType"in l)l.overrideMimeType("text/plain; charset=x-user-defined");if("requestTimeout"in t){l.timeout=t.requestTimeout;l.ontimeout=function(){e.emit("requestTimeout")}}a.forEach((function(e){l.setRequestHeader(e[0],e[1])}));e._response=null;l.onreadystatechange=function(){switch(l.readyState){case f.LOADING:case f.DONE:e._onXHRProgress();break}};if(e._mode==="moz-chunked-arraybuffer"){l.onprogress=function(){e._onXHRProgress()}}l.onerror=function(){if(e._destroyed)return;e.emit("error",new Error("XHR error"))};try{l.send(i)}catch(t){process.nextTick((function(){e.emit("error",t)}));return}}};function statusValid(e){try{var t=e.status;return t!==null&&t!==0}catch(e){return false}}l.prototype._onXHRProgress=function(){var e=this;if(!statusValid(e._xhr)||e._destroyed)return;if(!e._response)e._connect();e._response._onXHRProgress()};l.prototype._connect=function(){var e=this;if(e._destroyed)return;e._response=new s(e._xhr,e._fetchResponse,e._mode,e._fetchTimer);e._response.on("error",(function(t){e.emit("error",t)}));e.emit("response",e._response)};l.prototype._write=function(e,t,r){var n=this;n._body.push(e);r()};l.prototype.abort=l.prototype.destroy=function(){var e=this;e._destroyed=true;global.clearTimeout(e._fetchTimer);if(e._response)e._response._destroyed=true;if(e._xhr)e._xhr.abort();else if(e._fetchAbortController)e._fetchAbortController.abort()};l.prototype.end=function(e,t,r){var n=this;if(typeof e==="function"){r=e;e=undefined}o.Writable.prototype.end.call(n,e,t,r)};l.prototype.flushHeaders=function(){};l.prototype.setTimeout=function(){};l.prototype.setNoDelay=function(){};l.prototype.setSocketKeepAlive=function(){};var u=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},254:function(e,t,r){var n=r(301);var i=r(782);var a=r(726);var o=t.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4};var s=t.IncomingMessage=function(e,t,r,i){var o=this;a.Readable.call(o);o._mode=r;o.headers={};o.rawHeaders=[];o.trailers={};o.rawTrailers=[];o.on("end",(function(){process.nextTick((function(){o.emit("close")}))}));if(r==="fetch"){o._fetchResponse=t;o.url=t.url;o.statusCode=t.status;o.statusMessage=t.statusText;t.headers.forEach((function(e,t){o.headers[t.toLowerCase()]=e;o.rawHeaders.push(t,e)}));if(n.writableStream){var s=new WritableStream({write:function(e){return new Promise((function(t,r){if(o._destroyed){r()}else if(o.push(Buffer.from(e))){t()}else{o._resumeFetch=t}}))},close:function(){global.clearTimeout(i);if(!o._destroyed)o.push(null)},abort:function(e){if(!o._destroyed)o.emit("error",e)}});try{t.body.pipeTo(s).catch((function(e){global.clearTimeout(i);if(!o._destroyed)o.emit("error",e)}));return}catch(e){}}var f=t.body.getReader();function read(){f.read().then((function(e){if(o._destroyed)return;if(e.done){global.clearTimeout(i);o.push(null);return}o.push(Buffer.from(e.value));read()})).catch((function(e){global.clearTimeout(i);if(!o._destroyed)o.emit("error",e)}))}read()}else{o._xhr=e;o._pos=0;o.url=e.responseURL;o.statusCode=e.status;o.statusMessage=e.statusText;var l=e.getAllResponseHeaders().split(/\r?\n/);l.forEach((function(e){var t=e.match(/^([^:]+):\s*(.*)/);if(t){var r=t[1].toLowerCase();if(r==="set-cookie"){if(o.headers[r]===undefined){o.headers[r]=[]}o.headers[r].push(t[2])}else if(o.headers[r]!==undefined){o.headers[r]+=", "+t[2]}else{o.headers[r]=t[2]}o.rawHeaders.push(t[1],t[2])}}));o._charset="x-user-defined";if(!n.overrideMimeType){var u=o.rawHeaders["mime-type"];if(u){var d=u.match(/;\s*charset=([^;])(;|$)/);if(d){o._charset=d[1].toLowerCase()}}if(!o._charset)o._charset="utf-8"}}};i(s,a.Readable);s.prototype._read=function(){var e=this;var t=e._resumeFetch;if(t){e._resumeFetch=null;t()}};s.prototype._onXHRProgress=function(){var e=this;var t=e._xhr;var r=null;switch(e._mode){case"text":r=t.responseText;if(r.length>e._pos){var n=r.substr(e._pos);if(e._charset==="x-user-defined"){var i=Buffer.alloc(n.length);for(var a=0;ae._pos){e.push(Buffer.from(new Uint8Array(s.result.slice(e._pos))));e._pos=s.result.byteLength}};s.onload=function(){e.push(null)};s.readAsArrayBuffer(r);break}if(e._xhr.readyState===o.DONE&&e._mode!=="ms-stream"){e.push(null)}}},704:function(e,t,r){"use strict";var n=r(55).Buffer;var i=n.isEncoding||function(e){e=""+e;switch(e&&e.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(e){if(!e)return"utf8";var t;while(true){switch(e){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return e;default:if(t)return;e=(""+e).toLowerCase();t=true}}}function normalizeEncoding(e){var t=_normalizeEncoding(e);if(typeof t!=="string"&&(n.isEncoding===i||!i(e)))throw new Error("Unknown encoding: "+e);return t||e}t.s=StringDecoder;function StringDecoder(e){this.encoding=normalizeEncoding(e);var t;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;t=4;break;case"utf8":this.fillLast=utf8FillLast;t=4;break;case"base64":this.text=base64Text;this.end=base64End;t=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=n.allocUnsafe(t)}StringDecoder.prototype.write=function(e){if(e.length===0)return"";var t;var r;if(this.lastNeed){t=this.fillLast(e);if(t===undefined)return"";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r>5===6)return 2;else if(e>>4===14)return 3;else if(e>>3===30)return 4;return e>>6===2?-1:-2}function utf8CheckIncomplete(e,t,r){var n=t.length-1;if(n=0){if(i>0)e.lastNeed=i-1;return i}if(--n=0){if(i>0)e.lastNeed=i-2;return i}if(--n=0){if(i>0){if(i===2)i=0;else e.lastNeed=i-3}return i}return 0}function utf8CheckExtraBytes(e,t,r){if((t[0]&192)!==128){e.lastNeed=0;return"�"}if(e.lastNeed>1&&t.length>1){if((t[1]&192)!==128){e.lastNeed=1;return"�"}if(e.lastNeed>2&&t.length>2){if((t[2]&192)!==128){e.lastNeed=2;return"�"}}}}function utf8FillLast(e){var t=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,e,t);if(r!==undefined)return r;if(this.lastNeed<=e.length){e.copy(this.lastChar,t,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}e.copy(this.lastChar,t,0,e.length);this.lastNeed-=e.length}function utf8Text(e,t){var r=utf8CheckIncomplete(this,e,t);if(!this.lastNeed)return e.toString("utf8",t);this.lastTotal=r;var n=e.length-(r-this.lastNeed);e.copy(this.lastChar,0,n);return e.toString("utf8",t,n)}function utf8End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+"�";return t}function utf16Text(e,t){if((e.length-t)%2===0){var r=e.toString("utf16le",t);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=e[e.length-1];return e.toString("utf16le",t,e.length-1)}function utf16End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return t+this.lastChar.toString("utf16le",0,r)}return t}function base64Text(e,t){var r=(e.length-t)%3;if(r===0)return e.toString("base64",t);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=e[e.length-1]}else{this.lastChar[0]=e[e.length-2];this.lastChar[1]=e[e.length-1]}return e.toString("base64",t,e.length-r)}function base64End(e){var t=e&&e.length?this.write(e):"";if(this.lastNeed)return t+this.lastChar.toString("base64",0,3-this.lastNeed);return t}function simpleWrite(e){return e.toString(this.encoding)}function simpleEnd(e){return e&&e.length?this.write(e):""}},769:function(e){e.exports=deprecate;function deprecate(e,t){if(config("noDeprecation")){return e}var r=false;function deprecated(){if(!r){if(config("throwDeprecation")){throw new Error(t)}else if(config("traceDeprecation")){console.trace(t)}else{console.warn(t)}r=true}return e.apply(this,arguments)}return deprecated}function config(e){try{if(!global.localStorage)return false}catch(e){return false}var t=global.localStorage[e];if(null==t)return false;return String(t).toLowerCase()==="true"}},911:function(e){e.exports=extend;var t=Object.prototype.hasOwnProperty;function extend(){var e={};for(var r=0;r{"use strict";var e={328:e=>{function hash(e){var r=5381,_=e.length;while(_){r=r*33^e.charCodeAt(--_)}return r>>>0}e.exports=hash}};var r={};function __nccwpck_require__(_){var a=r[_];if(a!==undefined){return a.exports}var t=r[_]={exports:{}};var i=true;try{e[_](t,t.exports,__nccwpck_require__);i=false}finally{if(i)delete r[_]}return t.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(328);module.exports=_})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/string-hash/package.json b/cli/app/node_modules/next/dist/compiled/string-hash/package.json new file mode 100644 index 00000000000..7b140e8b6f8 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/string-hash/package.json @@ -0,0 +1 @@ +{"name":"string-hash","main":"index.js","author":{"name":"The Dark Sky Company","email":"developer@darksky.net"},"license":"CC0-1.0"} diff --git a/cli/app/node_modules/next/dist/compiled/string_decoder/package.json b/cli/app/node_modules/next/dist/compiled/string_decoder/package.json new file mode 100644 index 00000000000..ebf96448a76 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/string_decoder/package.json @@ -0,0 +1 @@ +{"name":"string_decoder","main":"string_decoder.js","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/string_decoder/string_decoder.js b/cli/app/node_modules/next/dist/compiled/string_decoder/string_decoder.js new file mode 100644 index 00000000000..915302ebf82 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/string_decoder/string_decoder.js @@ -0,0 +1 @@ +(function(){var t={55:function(t,e,r){var n=r(300);var i=n.Buffer;function copyProps(t,e){for(var r in t){e[r]=t[r]}}if(i.from&&i.alloc&&i.allocUnsafe&&i.allocUnsafeSlow){t.exports=n}else{copyProps(n,e);e.Buffer=SafeBuffer}function SafeBuffer(t,e,r){return i(t,e,r)}SafeBuffer.prototype=Object.create(i.prototype);copyProps(i,SafeBuffer);SafeBuffer.from=function(t,e,r){if(typeof t==="number"){throw new TypeError("Argument must not be a number")}return i(t,e,r)};SafeBuffer.alloc=function(t,e,r){if(typeof t!=="number"){throw new TypeError("Argument must be a number")}var n=i(t);if(e!==undefined){if(typeof r==="string"){n.fill(e,r)}else{n.fill(e)}}else{n.fill(0)}return n};SafeBuffer.allocUnsafe=function(t){if(typeof t!=="number"){throw new TypeError("Argument must be a number")}return i(t)};SafeBuffer.allocUnsafeSlow=function(t){if(typeof t!=="number"){throw new TypeError("Argument must be a number")}return n.SlowBuffer(t)}},300:function(t){"use strict";t.exports=require("buffer")}};var e={};function __nccwpck_require__(r){var n=e[r];if(n!==undefined){return n.exports}var i=e[r]={exports:{}};var s=true;try{t[r](i,i.exports,__nccwpck_require__);s=false}finally{if(s)delete e[r]}return i.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var r={};!function(){"use strict";var t=r;var e=__nccwpck_require__(55).Buffer;var n=e.isEncoding||function(t){t=""+t;switch(t&&t.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return true;default:return false}};function _normalizeEncoding(t){if(!t)return"utf8";var e;while(true){switch(t){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return t;default:if(e)return;t=(""+t).toLowerCase();e=true}}}function normalizeEncoding(t){var r=_normalizeEncoding(t);if(typeof r!=="string"&&(e.isEncoding===n||!n(t)))throw new Error("Unknown encoding: "+t);return r||t}t.StringDecoder=StringDecoder;function StringDecoder(t){this.encoding=normalizeEncoding(t);var r;switch(this.encoding){case"utf16le":this.text=utf16Text;this.end=utf16End;r=4;break;case"utf8":this.fillLast=utf8FillLast;r=4;break;case"base64":this.text=base64Text;this.end=base64End;r=3;break;default:this.write=simpleWrite;this.end=simpleEnd;return}this.lastNeed=0;this.lastTotal=0;this.lastChar=e.allocUnsafe(r)}StringDecoder.prototype.write=function(t){if(t.length===0)return"";var e;var r;if(this.lastNeed){e=this.fillLast(t);if(e===undefined)return"";r=this.lastNeed;this.lastNeed=0}else{r=0}if(r>5===6)return 2;else if(t>>4===14)return 3;else if(t>>3===30)return 4;return t>>6===2?-1:-2}function utf8CheckIncomplete(t,e,r){var n=e.length-1;if(n=0){if(i>0)t.lastNeed=i-1;return i}if(--n=0){if(i>0)t.lastNeed=i-2;return i}if(--n=0){if(i>0){if(i===2)i=0;else t.lastNeed=i-3}return i}return 0}function utf8CheckExtraBytes(t,e,r){if((e[0]&192)!==128){t.lastNeed=0;return"�"}if(t.lastNeed>1&&e.length>1){if((e[1]&192)!==128){t.lastNeed=1;return"�"}if(t.lastNeed>2&&e.length>2){if((e[2]&192)!==128){t.lastNeed=2;return"�"}}}}function utf8FillLast(t){var e=this.lastTotal-this.lastNeed;var r=utf8CheckExtraBytes(this,t,e);if(r!==undefined)return r;if(this.lastNeed<=t.length){t.copy(this.lastChar,e,0,this.lastNeed);return this.lastChar.toString(this.encoding,0,this.lastTotal)}t.copy(this.lastChar,e,0,t.length);this.lastNeed-=t.length}function utf8Text(t,e){var r=utf8CheckIncomplete(this,t,e);if(!this.lastNeed)return t.toString("utf8",e);this.lastTotal=r;var n=t.length-(r-this.lastNeed);t.copy(this.lastChar,0,n);return t.toString("utf8",e,n)}function utf8End(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed)return e+"�";return e}function utf16Text(t,e){if((t.length-e)%2===0){var r=t.toString("utf16le",e);if(r){var n=r.charCodeAt(r.length-1);if(n>=55296&&n<=56319){this.lastNeed=2;this.lastTotal=4;this.lastChar[0]=t[t.length-2];this.lastChar[1]=t[t.length-1];return r.slice(0,-1)}}return r}this.lastNeed=1;this.lastTotal=2;this.lastChar[0]=t[t.length-1];return t.toString("utf16le",e,t.length-1)}function utf16End(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed){var r=this.lastTotal-this.lastNeed;return e+this.lastChar.toString("utf16le",0,r)}return e}function base64Text(t,e){var r=(t.length-e)%3;if(r===0)return t.toString("base64",e);this.lastNeed=3-r;this.lastTotal=3;if(r===1){this.lastChar[0]=t[t.length-1]}else{this.lastChar[0]=t[t.length-2];this.lastChar[1]=t[t.length-1]}return t.toString("base64",e,t.length-r)}function base64End(t){var e=t&&t.length?this.write(t):"";if(this.lastNeed)return e+this.lastChar.toString("base64",0,3-this.lastNeed);return e}function simpleWrite(t){return t.toString(this.encoding)}function simpleEnd(t){return t&&t.length?this.write(t):""}}();module.exports=r})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/strip-ansi/index.js b/cli/app/node_modules/next/dist/compiled/strip-ansi/index.js new file mode 100644 index 00000000000..b0b706b8d32 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/strip-ansi/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var e={511:e=>{e.exports=({onlyFirst:e=false}={})=>{const r=["[\\u001B\\u009B][[\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]+)*|[a-zA-Z\\d]+(?:;[-a-zA-Z\\d\\/#&.:=?%@~_]*)*)?\\u0007)","(?:(?:\\d{1,4}(?:;\\d{0,4})*)?[\\dA-PR-TZcf-ntqry=><~]))"].join("|");return new RegExp(r,e?undefined:"g")}},532:(e,r,_)=>{const t=_(511);e.exports=e=>typeof e==="string"?e.replace(t(),""):e}};var r={};function __nccwpck_require__(_){var t=r[_];if(t!==undefined){return t.exports}var a=r[_]={exports:{}};var n=true;try{e[_](a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete r[_]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var _=__nccwpck_require__(532);module.exports=_})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/strip-ansi/package.json b/cli/app/node_modules/next/dist/compiled/strip-ansi/package.json new file mode 100644 index 00000000000..c005a27e40f --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/strip-ansi/package.json @@ -0,0 +1 @@ +{"name":"strip-ansi","main":"index.js","author":{"name":"Sindre Sorhus","email":"sindresorhus@gmail.com","url":"sindresorhus.com"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/superstruct/index.cjs b/cli/app/node_modules/next/dist/compiled/superstruct/index.cjs new file mode 100644 index 00000000000..a173ca657db --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/superstruct/index.cjs @@ -0,0 +1 @@ +(()=>{var e={318:function(e,t){(function(e,n){true?n(t):0})(this,(function(e){"use strict";class StructError extends TypeError{constructor(e,t){let n;const{message:r,explanation:i,...c}=e;const{path:o}=e;const a=o.length===0?r:`At path: ${o.join(".")} -- ${r}`;super(i??a);if(i!=null)this.cause=a;Object.assign(this,c);this.name=this.constructor.name;this.failures=()=>n??(n=[e,...t()])}}function isIterable(e){return isObject(e)&&typeof e[Symbol.iterator]==="function"}function isObject(e){return typeof e==="object"&&e!=null}function isPlainObject(e){if(Object.prototype.toString.call(e)!=="[object Object]"){return false}const t=Object.getPrototypeOf(e);return t===null||t===Object.prototype}function print(e){if(typeof e==="symbol"){return e.toString()}return typeof e==="string"?JSON.stringify(e):`${e}`}function shiftIterator(e){const{done:t,value:n}=e.next();return t?undefined:n}function toFailure(e,t,n,r){if(e===true){return}else if(e===false){e={}}else if(typeof e==="string"){e={message:e}}const{path:i,branch:c}=t;const{type:o}=n;const{refinement:a,message:s=`Expected a value of type \`${o}\`${a?` with refinement \`${a}\``:""}, but received: \`${print(r)}\``}=e;return{value:r,type:o,refinement:a,key:i[i.length-1],path:i,branch:c,...e,message:s}}function*toFailures(e,t,n,r){if(!isIterable(e)){e=[e]}for(const i of e){const e=toFailure(i,t,n,r);if(e){yield e}}}function*run(e,t,n={}){const{path:r=[],branch:i=[e],coerce:c=false,mask:o=false}=n;const a={path:r,branch:i};if(c){e=t.coercer(e,a);if(o&&t.type!=="type"&&isObject(t.schema)&&isObject(e)&&!Array.isArray(e)){for(const n in e){if(t.schema[n]===undefined){delete e[n]}}}}let s="valid";for(const r of t.validator(e,a)){r.explanation=n.message;s="not_valid";yield[r,undefined]}for(let[u,f,l]of t.entries(e,a)){const t=run(f,l,{path:u===undefined?r:[...r,u],branch:u===undefined?i:[...i,f],coerce:c,mask:o,message:n.message});for(const n of t){if(n[0]){s=n[0].refinement!=null?"not_refined":"not_valid";yield[n[0],undefined]}else if(c){f=n[1];if(u===undefined){e=f}else if(e instanceof Map){e.set(u,f)}else if(e instanceof Set){e.add(f)}else if(isObject(e)){if(f!==undefined||u in e)e[u]=f}}}}if(s!=="not_valid"){for(const r of t.refiner(e,a)){r.explanation=n.message;s="not_refined";yield[r,undefined]}}if(s==="valid"){yield[undefined,e]}}class Struct{constructor(e){const{type:t,schema:n,validator:r,refiner:i,coercer:c=(e=>e),entries:o=function*(){}}=e;this.type=t;this.schema=n;this.entries=o;this.coercer=c;if(r){this.validator=(e,t)=>{const n=r(e,t);return toFailures(n,t,this,e)}}else{this.validator=()=>[]}if(i){this.refiner=(e,t)=>{const n=i(e,t);return toFailures(n,t,this,e)}}else{this.refiner=()=>[]}}assert(e,t){return assert(e,this,t)}create(e,t){return create(e,this,t)}is(e){return is(e,this)}mask(e,t){return mask(e,this,t)}validate(e,t={}){return validate(e,this,t)}}function assert(e,t,n){const r=validate(e,t,{message:n});if(r[0]){throw r[0]}}function create(e,t,n){const r=validate(e,t,{coerce:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function mask(e,t,n){const r=validate(e,t,{coerce:true,mask:true,message:n});if(r[0]){throw r[0]}else{return r[1]}}function is(e,t){const n=validate(e,t);return!n[0]}function validate(e,t,n={}){const r=run(e,t,n);const i=shiftIterator(r);if(i[0]){const e=new StructError(i[0],(function*(){for(const e of r){if(e[0]){yield e[0]}}}));return[e,undefined]}else{const e=i[1];return[undefined,e]}}function assign(...e){const t=e[0].type==="type";const n=e.map((e=>e.schema));const r=Object.assign({},...n);return t?type(r):object(r)}function define(e,t){return new Struct({type:e,schema:null,validator:t})}function deprecated(e,t){return new Struct({...e,refiner:(t,n)=>t===undefined||e.refiner(t,n),validator(n,r){if(n===undefined){return true}else{t(n,r);return e.validator(n,r)}}})}function dynamic(e){return new Struct({type:"dynamic",schema:null,*entries(t,n){const r=e(t,n);yield*r.entries(t,n)},validator(t,n){const r=e(t,n);return r.validator(t,n)},coercer(t,n){const r=e(t,n);return r.coercer(t,n)},refiner(t,n){const r=e(t,n);return r.refiner(t,n)}})}function lazy(e){let t;return new Struct({type:"lazy",schema:null,*entries(n,r){t??(t=e());yield*t.entries(n,r)},validator(n,r){t??(t=e());return t.validator(n,r)},coercer(n,r){t??(t=e());return t.coercer(n,r)},refiner(n,r){t??(t=e());return t.refiner(n,r)}})}function omit(e,t){const{schema:n}=e;const r={...n};for(const e of t){delete r[e]}switch(e.type){case"type":return type(r);default:return object(r)}}function partial(e){const t=e instanceof Struct?{...e.schema}:{...e};for(const e in t){t[e]=optional(t[e])}return object(t)}function pick(e,t){const{schema:n}=e;const r={};for(const e of t){r[e]=n[e]}return object(r)}function struct(e,t){console.warn("superstruct@0.11 - The `struct` helper has been renamed to `define`.");return define(e,t)}function any(){return define("any",(()=>true))}function array(e){return new Struct({type:"array",schema:e,*entries(t){if(e&&Array.isArray(t)){for(const[n,r]of t.entries()){yield[n,r,e]}}},coercer(e){return Array.isArray(e)?e.slice():e},validator(e){return Array.isArray(e)||`Expected an array value, but received: ${print(e)}`}})}function bigint(){return define("bigint",(e=>typeof e==="bigint"))}function boolean(){return define("boolean",(e=>typeof e==="boolean"))}function date(){return define("date",(e=>e instanceof Date&&!isNaN(e.getTime())||`Expected a valid \`Date\` object, but received: ${print(e)}`))}function enums(e){const t={};const n=e.map((e=>print(e))).join();for(const n of e){t[n]=n}return new Struct({type:"enums",schema:t,validator(t){return e.includes(t)||`Expected one of \`${n}\`, but received: ${print(t)}`}})}function func(){return define("func",(e=>typeof e==="function"||`Expected a function, but received: ${print(e)}`))}function instance(e){return define("instance",(t=>t instanceof e||`Expected a \`${e.name}\` instance, but received: ${print(t)}`))}function integer(){return define("integer",(e=>typeof e==="number"&&!isNaN(e)&&Number.isInteger(e)||`Expected an integer, but received: ${print(e)}`))}function intersection(e){return new Struct({type:"intersection",schema:null,*entries(t,n){for(const r of e){yield*r.entries(t,n)}},*validator(t,n){for(const r of e){yield*r.validator(t,n)}},*refiner(t,n){for(const r of e){yield*r.refiner(t,n)}}})}function literal(e){const t=print(e);const n=typeof e;return new Struct({type:"literal",schema:n==="string"||n==="number"||n==="boolean"?e:null,validator(n){return n===e||`Expected the literal \`${t}\`, but received: ${print(n)}`}})}function map(e,t){return new Struct({type:"map",schema:null,*entries(n){if(e&&t&&n instanceof Map){for(const[r,i]of n.entries()){yield[r,r,e];yield[r,i,t]}}},coercer(e){return e instanceof Map?new Map(e):e},validator(e){return e instanceof Map||`Expected a \`Map\` object, but received: ${print(e)}`}})}function never(){return define("never",(()=>false))}function nullable(e){return new Struct({...e,validator:(t,n)=>t===null||e.validator(t,n),refiner:(t,n)=>t===null||e.refiner(t,n)})}function number(){return define("number",(e=>typeof e==="number"&&!isNaN(e)||`Expected a number, but received: ${print(e)}`))}function object(e){const t=e?Object.keys(e):[];const n=never();return new Struct({type:"object",schema:e?e:null,*entries(r){if(e&&isObject(r)){const i=new Set(Object.keys(r));for(const n of t){i.delete(n);yield[n,r[n],e[n]]}for(const e of i){yield[e,r[e],n]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`},coercer(e){return isObject(e)?{...e}:e}})}function optional(e){return new Struct({...e,validator:(t,n)=>t===undefined||e.validator(t,n),refiner:(t,n)=>t===undefined||e.refiner(t,n)})}function record(e,t){return new Struct({type:"record",schema:null,*entries(n){if(isObject(n)){for(const r in n){const i=n[r];yield[r,r,e];yield[r,i,t]}}},validator(e){return isObject(e)||`Expected an object, but received: ${print(e)}`}})}function regexp(){return define("regexp",(e=>e instanceof RegExp))}function set(e){return new Struct({type:"set",schema:null,*entries(t){if(e&&t instanceof Set){for(const n of t){yield[n,n,e]}}},coercer(e){return e instanceof Set?new Set(e):e},validator(e){return e instanceof Set||`Expected a \`Set\` object, but received: ${print(e)}`}})}function string(){return define("string",(e=>typeof e==="string"||`Expected a string, but received: ${print(e)}`))}function tuple(e){const t=never();return new Struct({type:"tuple",schema:null,*entries(n){if(Array.isArray(n)){const r=Math.max(e.length,n.length);for(let i=0;ie.type)).join(" | ");return new Struct({type:"union",schema:null,coercer(t){for(const n of e){const[e,r]=n.validate(t,{coerce:true});if(!e){return r}}return t},validator(n,r){const i=[];for(const t of e){const[...e]=run(n,t,r);const[c]=e;if(!c[0]){return[]}else{for(const[t]of e){if(t){i.push(t)}}}}return[`Expected the value to satisfy a union of \`${t}\`, but received: ${print(n)}`,...i]}})}function unknown(){return define("unknown",(()=>true))}function coerce(e,t,n){return new Struct({...e,coercer:(r,i)=>is(r,t)?e.coercer(n(r,i),i):e.coercer(r,i)})}function defaulted(e,t,n={}){return coerce(e,unknown(),(e=>{const r=typeof t==="function"?t():t;if(e===undefined){return r}if(!n.strict&&isPlainObject(e)&&isPlainObject(r)){const t={...e};let n=false;for(const e in r){if(t[e]===undefined){t[e]=r[e];n=true}}if(n){return t}}return e}))}function trimmed(e){return coerce(e,string(),(e=>e.trim()))}function empty(e){return refine(e,"empty",(t=>{const n=getSize(t);return n===0||`Expected an empty ${e.type} but received one with a size of \`${n}\``}))}function getSize(e){if(e instanceof Map||e instanceof Set){return e.size}else{return e.length}}function max(e,t,n={}){const{exclusive:r}=n;return refine(e,"max",(n=>r?nr?n>t:n>=t||`Expected a ${e.type} greater than ${r?"":"or equal to "}${t} but received \`${n}\``))}function nonempty(e){return refine(e,"nonempty",(t=>{const n=getSize(t);return n>0||`Expected a nonempty ${e.type} but received an empty one`}))}function pattern(e,t){return refine(e,"pattern",(n=>t.test(n)||`Expected a ${e.type} matching \`/${t.source}/\` but received "${n}"`))}function size(e,t,n=t){const r=`Expected a ${e.type}`;const i=t===n?`of \`${t}\``:`between \`${t}\` and \`${n}\``;return refine(e,"size",(e=>{if(typeof e==="number"||e instanceof Date){return t<=e&&e<=n||`${r} ${i} but received \`${e}\``}else if(e instanceof Map||e instanceof Set){const{size:c}=e;return t<=c&&c<=n||`${r} with a size ${i} but received one with a size of \`${c}\``}else{const{length:c}=e;return t<=c&&c<=n||`${r} with a length ${i} but received one with a length of \`${c}\``}}))}function refine(e,t,n){return new Struct({...e,*refiner(r,i){yield*e.refiner(r,i);const c=n(r,i);const o=toFailures(c,i,e,r);for(const e of o){yield{...e,refinement:t}}}})}e.Struct=Struct;e.StructError=StructError;e.any=any;e.array=array;e.assert=assert;e.assign=assign;e.bigint=bigint;e.boolean=boolean;e.coerce=coerce;e.create=create;e.date=date;e.defaulted=defaulted;e.define=define;e.deprecated=deprecated;e.dynamic=dynamic;e.empty=empty;e.enums=enums;e.func=func;e.instance=instance;e.integer=integer;e.intersection=intersection;e.is=is;e.lazy=lazy;e.literal=literal;e.map=map;e.mask=mask;e.max=max;e.min=min;e.never=never;e.nonempty=nonempty;e.nullable=nullable;e.number=number;e.object=object;e.omit=omit;e.optional=optional;e.partial=partial;e.pattern=pattern;e.pick=pick;e.record=record;e.refine=refine;e.regexp=regexp;e.set=set;e.size=size;e.string=string;e.struct=struct;e.trimmed=trimmed;e.tuple=tuple;e.type=type;e.union=union;e.unknown=unknown;e.validate=validate}))}};if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var t={};e[318](0,t);module.exports=t})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/superstruct/package.json b/cli/app/node_modules/next/dist/compiled/superstruct/package.json new file mode 100644 index 00000000000..bee4891e3fc --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/superstruct/package.json @@ -0,0 +1 @@ +{"name":"superstruct","main":"index.cjs","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/tar/index.min.js b/cli/app/node_modules/next/dist/compiled/tar/index.min.js new file mode 100644 index 00000000000..451aa90a103 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/tar/index.min.js @@ -0,0 +1 @@ +(()=>{"use strict";var e={491:e=>{e.exports=require("assert")},300:e=>{e.exports=require("buffer")},361:e=>{e.exports=require("events")},147:e=>{e.exports=require("fs")},61:e=>{e.exports=require("node:assert")},5:e=>{e.exports=require("node:crypto")},673:e=>{e.exports=require("node:events")},561:e=>{e.exports=require("node:fs")},977:e=>{e.exports=require("node:fs/promises")},411:e=>{e.exports=require("node:path")},492:e=>{e.exports=require("node:stream")},915:e=>{e.exports=require("node:string_decoder")},17:e=>{e.exports=require("path")},796:e=>{e.exports=require("zlib")},590:(e,f,p)=>{var d=(e,f)=>()=>(f||e((f={exports:{}}).exports,f),f.exports);var m=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.Minipass=e.isWritable=e.isReadable=e.isStream=void 0;var m=typeof process=="object"&&process?process:{stdout:null,stderr:null},y=p(673),b=f(p(492)),v=p(915),bo=f=>!!f&&typeof f=="object"&&(f instanceof J||f instanceof b.default||(0,e.isReadable)(f)||(0,e.isWritable)(f));e.isStream=bo;var So=e=>!!e&&typeof e=="object"&&e instanceof y.EventEmitter&&typeof e.pipe=="function"&&e.pipe!==b.default.Writable.prototype.pipe;e.isReadable=So;var go=e=>!!e&&typeof e=="object"&&e instanceof y.EventEmitter&&typeof e.write=="function"&&typeof e.end=="function";e.isWritable=go;var _=Symbol("EOF"),w=Symbol("maybeEmitEnd"),g=Symbol("emittedEnd"),S=Symbol("emittingEnd"),O=Symbol("emittedError"),R=Symbol("closed"),k=Symbol("read"),P=Symbol("flush"),T=Symbol("flushChunk"),D=Symbol("encoding"),M=Symbol("decoder"),x=Symbol("flowing"),L=Symbol("paused"),A=Symbol("resume"),N=Symbol("buffer"),I=Symbol("pipes"),F=Symbol("bufferLength"),B=Symbol("bufferPush"),z=Symbol("bufferShift"),C=Symbol("objectMode"),j=Symbol("destroyed"),U=Symbol("error"),W=Symbol("emitData"),Z=Symbol("emitEnd"),H=Symbol("emitEnd2"),G=Symbol("async"),Y=Symbol("abort"),$=Symbol("aborted"),q=Symbol("signal"),V=Symbol("dataListeners"),K=Symbol("discarded"),pt=e=>Promise.resolve().then(e),Ro=e=>e(),Oo=e=>e==="end"||e==="finish"||e==="prefinish",vo=e=>e instanceof ArrayBuffer||!!e&&typeof e=="object"&&e.constructor&&e.constructor.name==="ArrayBuffer"&&e.byteLength>=0,To=e=>!Buffer.isBuffer(e)&&ArrayBuffer.isView(e),X=class{src;dest;opts;ondrain;constructor(e,f,p){this.src=e,this.dest=f,this.opts=p,this.ondrain=()=>e[A](),this.dest.on("drain",this.ondrain)}unpipe(){this.dest.removeListener("drain",this.ondrain)}proxyErrors(e){}end(){this.unpipe(),this.opts.end&&this.dest.end()}},Q=class extends X{unpipe(){this.src.removeListener("error",this.proxyErrors),super.unpipe()}constructor(e,f,p){super(e,f,p),this.proxyErrors=e=>this.dest.emit("error",e),e.on("error",this.proxyErrors)}},Do=e=>!!e.objectMode,Po=e=>!e.objectMode&&!!e.encoding&&e.encoding!=="buffer",J=class extends y.EventEmitter{[x]=!1;[L]=!1;[I]=[];[N]=[];[C];[D];[G];[M];[_]=!1;[g]=!1;[S]=!1;[R]=!1;[O]=null;[F]=0;[j]=!1;[q];[$]=!1;[V]=0;[K]=!1;writable=!0;readable=!0;constructor(...e){let f=e[0]||{};if(super(),f.objectMode&&typeof f.encoding=="string")throw new TypeError("Encoding and objectMode may not be used together");Do(f)?(this[C]=!0,this[D]=null):Po(f)?(this[D]=f.encoding,this[C]=!1):(this[C]=!1,this[D]=null),this[G]=!!f.async,this[M]=this[D]?new v.StringDecoder(this[D]):null,f&&f.debugExposeBuffer===!0&&Object.defineProperty(this,"buffer",{get:()=>this[N]}),f&&f.debugExposePipes===!0&&Object.defineProperty(this,"pipes",{get:()=>this[I]});let{signal:p}=f;p&&(this[q]=p,p.aborted?this[Y]():p.addEventListener("abort",(()=>this[Y]())))}get bufferLength(){return this[F]}get encoding(){return this[D]}set encoding(e){throw new Error("Encoding must be set at instantiation time")}setEncoding(e){throw new Error("Encoding must be set at instantiation time")}get objectMode(){return this[C]}set objectMode(e){throw new Error("objectMode must be set at instantiation time")}get async(){return this[G]}set async(e){this[G]=this[G]||!!e}[Y](){this[$]=!0,this.emit("abort",this[q]?.reason),this.destroy(this[q]?.reason)}get aborted(){return this[$]}set aborted(e){}write(e,f,p){if(this[$])return!1;if(this[_])throw new Error("write after end");if(this[j])return this.emit("error",Object.assign(new Error("Cannot call write after a stream was destroyed"),{code:"ERR_STREAM_DESTROYED"})),!0;typeof f=="function"&&(p=f,f="utf8"),f||(f="utf8");let m=this[G]?pt:Ro;if(!this[C]&&!Buffer.isBuffer(e)){if(To(e))e=Buffer.from(e.buffer,e.byteOffset,e.byteLength);else if(vo(e))e=Buffer.from(e);else if(typeof e!="string")throw new Error("Non-contiguous data written to non-objectMode stream")}return this[C]?(this[x]&&this[F]!==0&&this[P](!0),this[x]?this.emit("data",e):this[B](e),this[F]!==0&&this.emit("readable"),p&&m(p),this[x]):e.length?(typeof e=="string"&&!(f===this[D]&&!this[M]?.lastNeed)&&(e=Buffer.from(e,f)),Buffer.isBuffer(e)&&this[D]&&(e=this[M].write(e)),this[x]&&this[F]!==0&&this[P](!0),this[x]?this.emit("data",e):this[B](e),this[F]!==0&&this.emit("readable"),p&&m(p),this[x]):(this[F]!==0&&this.emit("readable"),p&&m(p),this[x])}read(e){if(this[j])return null;if(this[K]=!1,this[F]===0||e===0||e&&e>this[F])return this[w](),null;this[C]&&(e=null),this[N].length>1&&!this[C]&&(this[N]=[this[D]?this[N].join(""):Buffer.concat(this[N],this[F])]);let f=this[k](e||null,this[N][0]);return this[w](),f}[k](e,f){if(this[C])this[z]();else{let p=f;e===p.length||e===null?this[z]():typeof p=="string"?(this[N][0]=p.slice(e),f=p.slice(0,e),this[F]-=e):(this[N][0]=p.subarray(e),f=p.subarray(0,e),this[F]-=e)}return this.emit("data",f),!this[N].length&&!this[_]&&this.emit("drain"),f}end(e,f,p){return typeof e=="function"&&(p=e,e=void 0),typeof f=="function"&&(p=f,f="utf8"),e!==void 0&&this.write(e,f),p&&this.once("end",p),this[_]=!0,this.writable=!1,(this[x]||!this[L])&&this[w](),this}[A](){this[j]||(!this[V]&&!this[I].length&&(this[K]=!0),this[L]=!1,this[x]=!0,this.emit("resume"),this[N].length?this[P]():this[_]?this[w]():this.emit("drain"))}resume(){return this[A]()}pause(){this[x]=!1,this[L]=!0,this[K]=!1}get destroyed(){return this[j]}get flowing(){return this[x]}get paused(){return this[L]}[B](e){this[C]?this[F]+=1:this[F]+=e.length,this[N].push(e)}[z](){return this[C]?this[F]-=1:this[F]-=this[N][0].length,this[N].shift()}[P](e=!1){do{}while(this[T](this[z]())&&this[N].length);!e&&!this[N].length&&!this[_]&&this.emit("drain")}[T](e){return this.emit("data",e),this[x]}pipe(e,f){if(this[j])return e;this[K]=!1;let p=this[g];return f=f||{},e===m.stdout||e===m.stderr?f.end=!1:f.end=f.end!==!1,f.proxyErrors=!!f.proxyErrors,p?f.end&&e.end():(this[I].push(f.proxyErrors?new Q(this,e,f):new X(this,e,f)),this[G]?pt((()=>this[A]())):this[A]()),e}unpipe(e){let f=this[I].find((f=>f.dest===e));f&&(this[I].length===1?(this[x]&&this[V]===0&&(this[x]=!1),this[I]=[]):this[I].splice(this[I].indexOf(f),1),f.unpipe())}addListener(e,f){return this.on(e,f)}on(e,f){let p=super.on(e,f);if(e==="data")this[K]=!1,this[V]++,!this[I].length&&!this[x]&&this[A]();else if(e==="readable"&&this[F]!==0)super.emit("readable");else if(Oo(e)&&this[g])super.emit(e),this.removeAllListeners(e);else if(e==="error"&&this[O]){let e=f;this[G]?pt((()=>e.call(this,this[O]))):e.call(this,this[O])}return p}removeListener(e,f){return this.off(e,f)}off(e,f){let p=super.off(e,f);return e==="data"&&(this[V]=this.listeners("data").length,this[V]===0&&!this[K]&&!this[I].length&&(this[x]=!1)),p}removeAllListeners(e){let f=super.removeAllListeners(e);return(e==="data"||e===void 0)&&(this[V]=0,!this[K]&&!this[I].length&&(this[x]=!1)),f}get emittedEnd(){return this[g]}[w](){!this[S]&&!this[g]&&!this[j]&&this[N].length===0&&this[_]&&(this[S]=!0,this.emit("end"),this.emit("prefinish"),this.emit("finish"),this[R]&&this.emit("close"),this[S]=!1)}emit(e,...f){let p=f[0];if(e!=="error"&&e!=="close"&&e!==j&&this[j])return!1;if(e==="data")return!this[C]&&!p?!1:this[G]?(pt((()=>this[W](p))),!0):this[W](p);if(e==="end")return this[Z]();if(e==="close"){if(this[R]=!0,!this[g]&&!this[j])return!1;let e=super.emit("close");return this.removeAllListeners("close"),e}else if(e==="error"){this[O]=p,super.emit(U,p);let e=!this[q]||this.listeners("error").length?super.emit("error",p):!1;return this[w](),e}else if(e==="resume"){let e=super.emit("resume");return this[w](),e}else if(e==="finish"||e==="prefinish"){let f=super.emit(e);return this.removeAllListeners(e),f}let m=super.emit(e,...f);return this[w](),m}[W](e){for(let f of this[I])f.dest.write(e)===!1&&this.pause();let f=this[K]?!1:super.emit("data",e);return this[w](),f}[Z](){return this[g]?!1:(this[g]=!0,this.readable=!1,this[G]?(pt((()=>this[H]())),!0):this[H]())}[H](){if(this[M]){let e=this[M].end();if(e){for(let f of this[I])f.dest.write(e);this[K]||super.emit("data",e)}}for(let e of this[I])e.end();let e=super.emit("end");return this.removeAllListeners("end"),e}async collect(){let e=Object.assign([],{dataLength:0});this[C]||(e.dataLength=0);let f=this.promise();return this.on("data",(f=>{e.push(f),this[C]||(e.dataLength+=f.length)})),await f,e}async concat(){if(this[C])throw new Error("cannot concat in objectMode");let e=await this.collect();return this[D]?e.join(""):Buffer.concat(e,e.dataLength)}async promise(){return new Promise(((e,f)=>{this.on(j,(()=>f(new Error("stream destroyed")))),this.on("error",(e=>f(e))),this.on("end",(()=>e()))}))}[Symbol.asyncIterator](){this[K]=!1;let e=!1,t=async()=>(this.pause(),e=!0,{value:void 0,done:!0});return{next:()=>{if(e)return t();let f=this.read();if(f!==null)return Promise.resolve({done:!1,value:f});if(this[_])return t();let p,m,a=e=>{this.off("data",h),this.off("end",l),this.off(j,u),t(),m(e)},h=e=>{this.off("error",a),this.off("end",l),this.off(j,u),this.pause(),p({value:e,done:!!this[_]})},l=()=>{this.off("error",a),this.off("data",h),this.off(j,u),t(),p({done:!0,value:void 0})},u=()=>a(new Error("stream destroyed"));return new Promise(((e,f)=>{m=f,p=e,this.once(j,u),this.once("error",a),this.once("end",l),this.once("data",h)}))},throw:t,return:t,[Symbol.asyncIterator](){return this},[Symbol.asyncDispose]:async()=>{}}}[Symbol.iterator](){this[K]=!1;let e=!1,t=()=>(this.pause(),this.off(U,t),this.off(j,t),this.off("end",t),e=!0,{done:!0,value:void 0}),i=()=>{if(e)return t();let f=this.read();return f===null?t():{done:!1,value:f}};return this.once("end",t),this.once(U,t),this.once(j,t),{next:i,throw:t,return:t,[Symbol.iterator](){return this},[Symbol.dispose]:()=>{}}}destroy(e){if(this[j])return e?this.emit("error",e):this.emit(j),this;this[j]=!0,this[K]=!0,this[N].length=0,this[F]=0;let f=this;return typeof f.close=="function"&&!this[R]&&f.close(),e?this.emit("error",e):this.emit(j),this}static get isStream(){return e.isStream}};e.Minipass=J}));var y=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.WriteStreamSync=e.WriteStream=e.ReadStreamSync=e.ReadStream=void 0;var y=f(p(361)),b=f(p(147)),v=m(),_=b.default.writev,w=Symbol("_autoClose"),g=Symbol("_close"),S=Symbol("_ended"),O=Symbol("_fd"),R=Symbol("_finished"),k=Symbol("_flags"),P=Symbol("_flush"),T=Symbol("_handleChunk"),D=Symbol("_makeBuf"),M=Symbol("_mode"),x=Symbol("_needDrain"),L=Symbol("_onerror"),A=Symbol("_onopen"),N=Symbol("_onread"),I=Symbol("_onwrite"),F=Symbol("_open"),B=Symbol("_path"),z=Symbol("_pos"),C=Symbol("_queue"),j=Symbol("_read"),U=Symbol("_readSize"),W=Symbol("_reading"),Z=Symbol("_remain"),H=Symbol("_size"),G=Symbol("_write"),Y=Symbol("_writing"),$=Symbol("_defaultFlag"),q=Symbol("_errored"),V=class extends v.Minipass{[q]=!1;[O];[B];[U];[W]=!1;[H];[Z];[w];constructor(e,f){if(f=f||{},super(f),this.readable=!0,this.writable=!1,typeof e!="string")throw new TypeError("path must be a string");this[q]=!1,this[O]=typeof f.fd=="number"?f.fd:void 0,this[B]=e,this[U]=f.readSize||16*1024*1024,this[W]=!1,this[H]=typeof f.size=="number"?f.size:1/0,this[Z]=this[H],this[w]=typeof f.autoClose=="boolean"?f.autoClose:!0,typeof this[O]=="number"?this[j]():this[F]()}get fd(){return this[O]}get path(){return this[B]}write(){throw new TypeError("this is a readable stream")}end(){throw new TypeError("this is a readable stream")}[F](){b.default.open(this[B],"r",((e,f)=>this[A](e,f)))}[A](e,f){e?this[L](e):(this[O]=f,this.emit("open",f),this[j]())}[D](){return Buffer.allocUnsafe(Math.min(this[U],this[Z]))}[j](){if(!this[W]){this[W]=!0;let e=this[D]();if(e.length===0)return process.nextTick((()=>this[N](null,0,e)));b.default.read(this[O],e,0,e.length,null,((e,f,p)=>this[N](e,f,p)))}}[N](e,f,p){this[W]=!1,e?this[L](e):this[T](f,p)&&this[j]()}[g](){if(this[w]&&typeof this[O]=="number"){let e=this[O];this[O]=void 0,b.default.close(e,(e=>e?this.emit("error",e):this.emit("close")))}}[L](e){this[W]=!0,this[g](),this.emit("error",e)}[T](e,f){let p=!1;return this[Z]-=e,e>0&&(p=super.write(ethis[A](e,f)))}[A](e,f){this[$]&&this[k]==="r+"&&e&&e.code==="ENOENT"?(this[k]="w",this[F]()):e?this[L](e):(this[O]=f,this.emit("open",f),this[Y]||this[P]())}end(e,f){return e&&this.write(e,f),this[S]=!0,!this[Y]&&!this[C].length&&typeof this[O]=="number"&&this[I](null,0),this}write(e,f){return typeof e=="string"&&(e=Buffer.from(e,f)),this[S]?(this.emit("error",new Error("write() after end()")),!1):this[O]===void 0||this[Y]||this[C].length?(this[C].push(e),this[x]=!0,!1):(this[Y]=!0,this[G](e),!0)}[G](e){b.default.write(this[O],e,0,e.length,this[z],((e,f)=>this[I](e,f)))}[I](e,f){e?this[L](e):(this[z]!==void 0&&typeof f=="number"&&(this[z]+=f),this[C].length?this[P]():(this[Y]=!1,this[S]&&!this[R]?(this[R]=!0,this[g](),this.emit("finish")):this[x]&&(this[x]=!1,this.emit("drain"))))}[P](){if(this[C].length===0)this[S]&&this[I](null,0);else if(this[C].length===1)this[G](this[C].pop());else{let e=this[C];this[C]=[],_(this[O],e,this[z],((e,f)=>this[I](e,f)))}}[g](){if(this[w]&&typeof this[O]=="number"){let e=this[O];this[O]=void 0,b.default.close(e,(e=>e?this.emit("error",e):this.emit("close")))}}};e.WriteStream=X;var Q=class extends X{[F](){let e;if(this[$]&&this[k]==="r+")try{e=b.default.openSync(this[B],this[k],this[M])}catch(e){if(e?.code==="ENOENT")return this[k]="w",this[F]();throw e}else e=b.default.openSync(this[B],this[k],this[M]);this[A](null,e)}[g](){if(this[w]&&typeof this[O]=="number"){let e=this[O];this[O]=void 0,b.default.closeSync(e),this.emit("close")}}[G](e){let f=!0;try{this[I](null,b.default.writeSync(this[O],e,0,e.length,this[z])),f=!1}finally{if(f)try{this[g]()}catch{}}}};e.WriteStreamSync=Q}));var b=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.dealias=e.isNoFile=e.isFile=e.isAsync=e.isSync=e.isAsyncNoFile=e.isSyncNoFile=e.isAsyncFile=e.isSyncFile=void 0;var f=new Map([["C","cwd"],["f","file"],["z","gzip"],["P","preservePaths"],["U","unlink"],["strip-components","strip"],["stripComponents","strip"],["keep-newer","newer"],["keepNewer","newer"],["keep-newer-files","newer"],["keepNewerFiles","newer"],["k","keep"],["keep-existing","keep"],["keepExisting","keep"],["m","noMtime"],["no-mtime","noMtime"],["p","preserveOwner"],["L","follow"],["h","follow"],["onentry","onReadEntry"]]),Io=e=>!!e.sync&&!!e.file;e.isSyncFile=Io;var Co=e=>!e.sync&&!!e.file;e.isAsyncFile=Co;var Fo=e=>!!e.sync&&!e.file;e.isSyncNoFile=Fo;var Bo=e=>!e.sync&&!e.file;e.isAsyncNoFile=Bo;var zo=e=>!!e.sync;e.isSync=zo;var ko=e=>!e.sync;e.isAsync=ko;var jo=e=>!!e.file;e.isFile=jo;var xo=e=>!e.file;e.isNoFile=xo;var Uo=e=>{let p=f.get(e);return p||e},qo=(e={})=>{if(!e)return{};let f={};for(let[p,m]of Object.entries(e)){let e=Uo(p);f[e]=m}return f.chmod===void 0&&f.noChmod===!1&&(f.chmod=!0),delete f.noChmod,f};e.dealias=qo}));var v=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.makeCommand=void 0;var f=b(),Wo=(e,p,m,y,b)=>Object.assign(((v=[],_,w)=>{Array.isArray(v)&&(_=v,v={}),typeof _=="function"&&(w=_,_=void 0),_?_=Array.from(_):_=[];let g=(0,f.dealias)(v);if(b?.(g,_),(0,f.isSyncFile)(g)){if(typeof w=="function")throw new TypeError("callback not supported for sync tar functions");return e(g,_)}else if((0,f.isAsyncFile)(g)){let e=p(g,_),f=w||void 0;return f?e.then((()=>f()),f):e}else if((0,f.isSyncNoFile)(g)){if(typeof w=="function")throw new TypeError("callback not supported for sync tar functions");return m(g,_)}else if((0,f.isAsyncNoFile)(g)){if(typeof w=="function")throw new TypeError("callback only supported with file option");return y(g,_)}else throw new Error("impossible options??")}),{syncFile:e,asyncFile:p,syncNoFile:m,asyncNoFile:y,validate:b});e.makeCommand=Wo}));var _=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.constants=void 0;var m=f(p(796)),y=m.default.constants||{ZLIB_VERNUM:4736};e.constants=Object.freeze(Object.assign(Object.create(null),{Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_VERSION_ERROR:-6,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,DEFLATE:1,INFLATE:2,GZIP:3,GUNZIP:4,DEFLATERAW:5,INFLATERAW:6,UNZIP:7,BROTLI_DECODE:8,BROTLI_ENCODE:9,Z_MIN_WINDOWBITS:8,Z_MAX_WINDOWBITS:15,Z_DEFAULT_WINDOWBITS:15,Z_MIN_CHUNK:64,Z_MAX_CHUNK:1/0,Z_DEFAULT_CHUNK:16384,Z_MIN_MEMLEVEL:1,Z_MAX_MEMLEVEL:9,Z_DEFAULT_MEMLEVEL:8,Z_MIN_LEVEL:-1,Z_MAX_LEVEL:9,Z_DEFAULT_LEVEL:-1,BROTLI_OPERATION_PROCESS:0,BROTLI_OPERATION_FLUSH:1,BROTLI_OPERATION_FINISH:2,BROTLI_OPERATION_EMIT_METADATA:3,BROTLI_MODE_GENERIC:0,BROTLI_MODE_TEXT:1,BROTLI_MODE_FONT:2,BROTLI_DEFAULT_MODE:0,BROTLI_MIN_QUALITY:0,BROTLI_MAX_QUALITY:11,BROTLI_DEFAULT_QUALITY:11,BROTLI_MIN_WINDOW_BITS:10,BROTLI_MAX_WINDOW_BITS:24,BROTLI_LARGE_MAX_WINDOW_BITS:30,BROTLI_DEFAULT_WINDOW:22,BROTLI_MIN_INPUT_BLOCK_BITS:16,BROTLI_MAX_INPUT_BLOCK_BITS:24,BROTLI_PARAM_MODE:0,BROTLI_PARAM_QUALITY:1,BROTLI_PARAM_LGWIN:2,BROTLI_PARAM_LGBLOCK:3,BROTLI_PARAM_DISABLE_LITERAL_CONTEXT_MODELING:4,BROTLI_PARAM_SIZE_HINT:5,BROTLI_PARAM_LARGE_WINDOW:6,BROTLI_PARAM_NPOSTFIX:7,BROTLI_PARAM_NDIRECT:8,BROTLI_DECODER_RESULT_ERROR:0,BROTLI_DECODER_RESULT_SUCCESS:1,BROTLI_DECODER_RESULT_NEEDS_MORE_INPUT:2,BROTLI_DECODER_RESULT_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_PARAM_DISABLE_RING_BUFFER_REALLOCATION:0,BROTLI_DECODER_PARAM_LARGE_WINDOW:1,BROTLI_DECODER_NO_ERROR:0,BROTLI_DECODER_SUCCESS:1,BROTLI_DECODER_NEEDS_MORE_INPUT:2,BROTLI_DECODER_NEEDS_MORE_OUTPUT:3,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_NIBBLE:-1,BROTLI_DECODER_ERROR_FORMAT_RESERVED:-2,BROTLI_DECODER_ERROR_FORMAT_EXUBERANT_META_NIBBLE:-3,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_ALPHABET:-4,BROTLI_DECODER_ERROR_FORMAT_SIMPLE_HUFFMAN_SAME:-5,BROTLI_DECODER_ERROR_FORMAT_CL_SPACE:-6,BROTLI_DECODER_ERROR_FORMAT_HUFFMAN_SPACE:-7,BROTLI_DECODER_ERROR_FORMAT_CONTEXT_MAP_REPEAT:-8,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_1:-9,BROTLI_DECODER_ERROR_FORMAT_BLOCK_LENGTH_2:-10,BROTLI_DECODER_ERROR_FORMAT_TRANSFORM:-11,BROTLI_DECODER_ERROR_FORMAT_DICTIONARY:-12,BROTLI_DECODER_ERROR_FORMAT_WINDOW_BITS:-13,BROTLI_DECODER_ERROR_FORMAT_PADDING_1:-14,BROTLI_DECODER_ERROR_FORMAT_PADDING_2:-15,BROTLI_DECODER_ERROR_FORMAT_DISTANCE:-16,BROTLI_DECODER_ERROR_DICTIONARY_NOT_SET:-19,BROTLI_DECODER_ERROR_INVALID_ARGUMENTS:-20,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MODES:-21,BROTLI_DECODER_ERROR_ALLOC_TREE_GROUPS:-22,BROTLI_DECODER_ERROR_ALLOC_CONTEXT_MAP:-25,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_1:-26,BROTLI_DECODER_ERROR_ALLOC_RING_BUFFER_2:-27,BROTLI_DECODER_ERROR_ALLOC_BLOCK_TYPE_TREES:-30,BROTLI_DECODER_ERROR_UNREACHABLE:-31},y))}));var w=d((e=>{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),y=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),b=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var m=s(e),b=0;be,D=T?.writable===!0||T?.set!==void 0?e=>{g.Buffer.concat=e?ea:P}:e=>{},M=Symbol("_superWrite"),x=class extends Error{code;errno;constructor(e,f){super("zlib: "+e.message,{cause:e}),this.code=e.code,this.errno=e.errno,this.code||(this.code="ZLIB_ERROR"),this.message="zlib: "+e.message,Error.captureStackTrace(this,f??this.constructor)}get name(){return"ZlibError"}};e.ZlibError=x;var L=Symbol("flushFlag"),A=class extends S.Minipass{#e=!1;#t=!1;#i;#r;#s;#n;#o;get sawError(){return this.#e}get handle(){return this.#n}get flushFlag(){return this.#i}constructor(e,f){if(!e||typeof e!="object")throw new TypeError("invalid options for ZlibBase constructor");if(super(e),this.#i=e.flush??0,this.#r=e.finishFlush??0,this.#s=e.fullFlushFlag??0,typeof O[f]!="function")throw new TypeError("Compression method not supported: "+f);try{this.#n=new O[f](e)}catch(e){throw new x(e,this.constructor)}this.#o=e=>{this.#e||(this.#e=!0,this.close(),this.emit("error",e))},this.#n?.on("error",(e=>this.#o(new x(e)))),this.once("end",(()=>this.close))}close(){this.#n&&(this.#n.close(),this.#n=void 0,this.emit("close"))}reset(){if(!this.#e)return(0,w.default)(this.#n,"zlib binding closed"),this.#n.reset?.()}flush(e){this.ended||(typeof e!="number"&&(e=this.#s),this.write(Object.assign(g.Buffer.alloc(0),{[L]:e})))}end(e,f,p){return typeof e=="function"&&(p=e,f=void 0,e=void 0),typeof f=="function"&&(p=f,f=void 0),e&&(f?this.write(e,f):this.write(e)),this.flush(this.#r),this.#t=!0,super.end(p)}get ended(){return this.#t}[M](e){return super.write(e)}write(e,f,p){if(typeof f=="function"&&(p=f,f="utf8"),typeof e=="string"&&(e=g.Buffer.from(e,f)),this.#e)return;(0,w.default)(this.#n,"zlib binding closed");let m=this.#n._handle,y=m.close;m.close=()=>{};let b=this.#n.close;this.#n.close=()=>{},D(!0);let v;try{let f=typeof e[L]=="number"?e[L]:this.#i;v=this.#n._processChunk(e,f),D(!1)}catch(e){D(!1),this.#o(new x(e,this.write))}finally{this.#n&&(this.#n._handle=m,m.close=y,this.#n.close=b,this.#n.removeAllListeners("error"))}this.#n&&this.#n.on("error",(e=>this.#o(new x(e,this.write))));let _;if(v)if(Array.isArray(v)&&v.length>0){let e=v[0];_=this[M](g.Buffer.from(e));for(let e=1;e{typeof e=="function"&&(f=e,e=this.flushFlag),this.flush(e),f?.()};try{this.handle.params(e,f)}finally{this.handle.flush=p}this.handle&&(this.#e=e,this.#t=f)}}}};e.Zlib=N;var I=class extends N{constructor(e){super(e,"Deflate")}};e.Deflate=I;var F=class extends N{constructor(e){super(e,"Inflate")}};e.Inflate=F;var B=class extends N{#e;constructor(e){super(e,"Gzip"),this.#e=e&&!!e.portable}[M](e){return this.#e?(this.#e=!1,e[9]=255,super[M](e)):super[M](e)}};e.Gzip=B;var z=class extends N{constructor(e){super(e,"Gunzip")}};e.Gunzip=z;var C=class extends N{constructor(e){super(e,"DeflateRaw")}};e.DeflateRaw=C;var j=class extends N{constructor(e){super(e,"InflateRaw")}};e.InflateRaw=j;var U=class extends N{constructor(e){super(e,"Unzip")}};e.Unzip=U;var W=class extends A{constructor(e,f){e=e||{},e.flush=e.flush||R.constants.BROTLI_OPERATION_PROCESS,e.finishFlush=e.finishFlush||R.constants.BROTLI_OPERATION_FINISH,e.fullFlushFlag=R.constants.BROTLI_OPERATION_FLUSH,super(e,f)}},Z=class extends W{constructor(e){super(e,"BrotliCompress")}};e.BrotliCompress=Z;var H=class extends W{constructor(e){super(e,"BrotliDecompress")}};e.BrotliDecompress=H;var G=class extends A{constructor(e,f){e=e||{},e.flush=e.flush||R.constants.ZSTD_e_continue,e.finishFlush=e.finishFlush||R.constants.ZSTD_e_end,e.fullFlushFlag=R.constants.ZSTD_e_flush,super(e,f)}},Y=class extends G{constructor(e){super(e,"ZstdCompress")}};e.ZstdCompress=Y;var $=class extends G{constructor(e){super(e,"ZstdDecompress")}};e.ZstdDecompress=$}));var g=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.parse=e.encode=void 0;var ta=(e,f)=>{if(Number.isSafeInteger(e))e<0?sa(e,f):ia(e,f);else throw Error("cannot encode number outside of javascript safe integer range");return f};e.encode=ta;var ia=(e,f)=>{f[0]=128;for(var p=f.length;p>1;p--)f[p-1]=e&255,e=Math.floor(e/256)},sa=(e,f)=>{f[0]=255;var p=!1;e=e*-1;for(var m=f.length;m>1;m--){var y=e&255;e=Math.floor(e/256),p?f[m-1]=Hr(y):y===0?f[m-1]=0:(p=!0,f[m-1]=Zr(y))}},ra=e=>{let f=e[0],p=f===128?oa(e.subarray(1,e.length)):f===255?na(e):null;if(p===null)throw Error("invalid base256 encoding");if(!Number.isSafeInteger(p))throw Error("parsed number outside of javascript safe integer range");return p};e.parse=ra;var na=e=>{for(var f=e.length,p=0,m=!1,y=f-1;y>-1;y--){var b=Number(e[y]),v;m?v=Hr(b):b===0?v=b:(m=!0,v=Zr(b)),v!==0&&(p-=v*Math.pow(256,f-y-1))}return p},oa=e=>{for(var f=e.length,p=0,m=f-1;m>-1;m--){var y=Number(e[m]);y!==0&&(p+=y*Math.pow(256,f-m-1))}return p},Hr=e=>(255^e)&255,Zr=e=>(255^e)+1&255}));var S=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.code=e.name=e.isName=e.isCode=void 0;var aa=f=>e.name.has(f);e.isCode=aa;var ha=f=>e.code.has(f);e.isName=ha;e.name=new Map([["0","File"],["","OldFile"],["1","Link"],["2","SymbolicLink"],["3","CharacterDevice"],["4","BlockDevice"],["5","Directory"],["6","FIFO"],["7","ContiguousFile"],["g","GlobalExtendedHeader"],["x","ExtendedHeader"],["A","SolarisACL"],["D","GNUDumpDir"],["I","Inode"],["K","NextFileHasLongLinkpath"],["L","NextFileHasLongPath"],["M","ContinuationFile"],["N","OldGnuLongPath"],["S","SparseFile"],["V","TapeVolumeHeader"],["X","OldExtendedHeader"]]);e.code=new Map(Array.from(e.name).map((e=>[e[1],e[0]])))}));var O=d((e=>{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),m=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),y=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var y=s(e),b=0;b=f+512))throw new Error("need 512 bytes for header");this.path=p?.path??Ce(e,f,100),this.mode=p?.mode??m?.mode??be(e,f+100,8),this.uid=p?.uid??m?.uid??be(e,f+108,8),this.gid=p?.gid??m?.gid??be(e,f+116,8),this.size=p?.size??m?.size??be(e,f+124,12),this.mtime=p?.mtime??m?.mtime??Ds(e,f+136,12),this.cksum=be(e,f+148,12),m&&this.#t(m,!0),p&&this.#t(p);let y=Ce(e,f+156,1);if(_.isCode(y)&&(this.#e=y||"0"),this.#e==="0"&&this.path.slice(-1)==="/"&&(this.#e="5"),this.#e==="5"&&(this.size=0),this.linkpath=Ce(e,f+157,100),e.subarray(f+257,f+265).toString()==="ustar\x0000")if(this.uname=p?.uname??m?.uname??Ce(e,f+265,32),this.gname=p?.gname??m?.gname??Ce(e,f+297,32),this.devmaj=p?.devmaj??m?.devmaj??be(e,f+329,8)??0,this.devmin=p?.devmin??m?.devmin??be(e,f+337,8)??0,e[f+475]!==0){let p=Ce(e,f+345,155);this.path=p+"/"+this.path}else{let y=Ce(e,f+345,130);y&&(this.path=y+"/"+this.path),this.atime=p?.atime??m?.atime??Ds(e,f+476,12),this.ctime=p?.ctime??m?.ctime??Ds(e,f+488,12)}let b=256;for(let p=f;p!(p==null||e==="path"&&f||e==="linkpath"&&f||e==="global")))))}encode(e,f=0){if(e||(e=this.block=Buffer.alloc(512)),this.#e==="Unsupported"&&(this.#e="0"),!(e.length>=f+512))throw new Error("need 512 bytes for header");let p=this.ctime||this.atime?130:155,m=ca(this.path||"",p),y=m[0],b=m[1];this.needPax=!!m[2],this.needPax=Fe(e,f,100,y)||this.needPax,this.needPax=Se(e,f+100,8,this.mode)||this.needPax,this.needPax=Se(e,f+108,8,this.uid)||this.needPax,this.needPax=Se(e,f+116,8,this.gid)||this.needPax,this.needPax=Se(e,f+124,12,this.size)||this.needPax,this.needPax=Ps(e,f+136,12,this.mtime)||this.needPax,e[f+156]=this.#e.charCodeAt(0),this.needPax=Fe(e,f+157,100,this.linkpath)||this.needPax,e.write("ustar\x0000",f+257,8),this.needPax=Fe(e,f+265,32,this.uname)||this.needPax,this.needPax=Fe(e,f+297,32,this.gname)||this.needPax,this.needPax=Se(e,f+329,8,this.devmaj)||this.needPax,this.needPax=Se(e,f+337,8,this.devmin)||this.needPax,this.needPax=Fe(e,f+345,p,b)||this.needPax,e[f+475]!==0?this.needPax=Fe(e,f+345,155,b)||this.needPax:(this.needPax=Fe(e,f+345,130,b)||this.needPax,this.needPax=Ps(e,f+476,12,this.atime)||this.needPax,this.needPax=Ps(e,f+488,12,this.ctime)||this.needPax);let v=256;for(let p=f;p{let p=e,m="",y,v=b.posix.parse(e).root||".";if(Buffer.byteLength(p)<100)y=[p,m,!1];else{m=b.posix.dirname(p),p=b.posix.basename(p);do{Buffer.byteLength(p)<=100&&Buffer.byteLength(m)<=f?y=[p,m,!1]:Buffer.byteLength(p)>100&&Buffer.byteLength(m)<=f?y=[p.slice(0,99),m,!0]:(p=b.posix.join(b.posix.basename(m),p),m=b.posix.dirname(m))}while(m!==v&&y===void 0);y||(y=[e.slice(0,99),"",!0])}return y},Ce=(e,f,p)=>e.subarray(f,f+p).toString("utf8").replace(/\0.*/,""),Ds=(e,f,p)=>fa(be(e,f,p)),fa=e=>e===void 0?void 0:new Date(e*1e3),be=(e,f,p)=>Number(e[f])&128?v.parse(e.subarray(f,f+p)):ma(e,f,p),da=e=>isNaN(e)?void 0:e,ma=(e,f,p)=>da(parseInt(e.subarray(f,f+p).toString("utf8").replace(/\0.*$/,"").trim(),8)),O={12:8589934591,8:2097151},Se=(e,f,p,m)=>m===void 0?!1:m>O[p]||m<0?(v.encode(m,e.subarray(f,f+p)),!0):(_a(e,f,p,m),!1),_a=(e,f,p,m)=>e.write(wa(m,p),f,p,"ascii"),wa=(e,f)=>ya(Math.floor(e).toString(8),f),ya=(e,f)=>(e.length===f-1?e:new Array(f-e.length-1).join("0")+e+" ")+"\0",Ps=(e,f,p,m)=>m===void 0?!1:Se(e,f,p,m.getTime()/1e3),R=new Array(156).join("\0"),Fe=(e,f,p,m)=>m===void 0?!1:(e.write(m+R,f,p,"utf8"),m.length!==Buffer.byteLength(m)||m.length>p)}));var R=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.Pax=void 0;var f=p(411),m=O(),y=class s{atime;mtime;ctime;charset;comment;gid;uid;gname;uname;linkpath;dev;ino;nlink;path;size;mode;global;constructor(e,f=!1){this.atime=e.atime,this.charset=e.charset,this.comment=e.comment,this.ctime=e.ctime,this.dev=e.dev,this.gid=e.gid,this.global=f,this.gname=e.gname,this.ino=e.ino,this.linkpath=e.linkpath,this.mtime=e.mtime,this.nlink=e.nlink,this.path=e.path,this.size=e.size,this.uid=e.uid,this.uname=e.uname}encode(){let e=this.encodeBody();if(e==="")return Buffer.allocUnsafe(0);let p=Buffer.byteLength(e),y=512*Math.ceil(1+p/512),b=Buffer.allocUnsafe(y);for(let e=0;e<512;e++)b[e]=0;new m.Header({path:("PaxHeader/"+(0,f.basename)(this.path??"")).slice(0,99),mode:this.mode||420,uid:this.uid,gid:this.gid,size:p,mtime:this.mtime,type:this.global?"GlobalExtendedHeader":"ExtendedHeader",linkpath:"",uname:this.uname||"",gname:this.gname||"",devmaj:0,devmin:0,atime:this.atime,ctime:this.ctime}).encode(b),b.write(e,512,p,"utf8");for(let e=p+512;e=Math.pow(10,b)&&(b+=1),b+y+m}static parse(e,f,p=!1){return new s(ga(Ra(e),f),p)}};e.Pax=y;var ga=(e,f)=>f?Object.assign({},f,e):e,Ra=e=>e.replace(/\n$/,"").split(`\n`).reduce(Oa,Object.create(null)),Oa=(e,f)=>{let p=parseInt(f,10);if(p!==Buffer.byteLength(f)+1)return e;f=f.slice((p+" ").length);let m=f.split("="),y=m.shift();if(!y)return e;let b=y.replace(/^SCHILY\.(dev|ino|nlink)/,"$1"),v=m.join("=");return e[b]=/^([A-Z]+\.)?([mac]|birth|creation)time$/.test(b)?new Date(Number(v)*1e3):/^[0-9]+$/.test(v)?+v:v,e}}));var k=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.normalizeWindowsPath=void 0;var f=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform;e.normalizeWindowsPath=f!=="win32"?e=>e:e=>e&&e.replace(/\\/g,"/")}));var P=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.ReadEntry=void 0;var f=m(),p=k(),y=class extends f.Minipass{extended;globalExtended;header;startBlockSize;blockRemain;remain;type;meta=!1;ignore=!1;path;mode;uid;gid;uname;gname;size=0;mtime;atime;ctime;linkpath;dev;ino;nlink;invalid=!1;absolute;unsupported=!1;constructor(e,f,m){switch(super({}),this.pause(),this.extended=f,this.globalExtended=m,this.header=e,this.remain=e.size??0,this.startBlockSize=512*Math.ceil(this.remain/512),this.blockRemain=this.startBlockSize,this.type=e.type,this.type){case"File":case"OldFile":case"Link":case"SymbolicLink":case"CharacterDevice":case"BlockDevice":case"Directory":case"FIFO":case"ContiguousFile":case"GNUDumpDir":break;case"NextFileHasLongLinkpath":case"NextFileHasLongPath":case"OldGnuLongPath":case"GlobalExtendedHeader":case"ExtendedHeader":case"OldExtendedHeader":this.meta=!0;break;default:this.ignore=!0}if(!e.path)throw new Error("no path provided for tar.ReadEntry");this.path=(0,p.normalizeWindowsPath)(e.path),this.mode=e.mode,this.mode&&(this.mode=this.mode&4095),this.uid=e.uid,this.gid=e.gid,this.uname=e.uname,this.gname=e.gname,this.size=this.remain,this.mtime=e.mtime,this.atime=e.atime,this.ctime=e.ctime,this.linkpath=e.linkpath?(0,p.normalizeWindowsPath)(e.linkpath):void 0,this.uname=e.uname,this.gname=e.gname,f&&this.#e(f),m&&this.#e(m,!0)}write(e){let f=e.length;if(f>this.blockRemain)throw new Error("writing more to entry than is appropriate");let p=this.remain,m=this.blockRemain;return this.remain=Math.max(0,p-f),this.blockRemain=Math.max(0,m-f),this.ignore?!0:p>=f?super.write(e):super.write(e.subarray(0,p))}#e(e,f=!1){e.path&&(e.path=(0,p.normalizeWindowsPath)(e.path)),e.linkpath&&(e.linkpath=(0,p.normalizeWindowsPath)(e.linkpath)),Object.assign(this,Object.fromEntries(Object.entries(e).filter((([e,p])=>!(p==null||e==="path"&&f)))))}};e.ReadEntry=y}));var T=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.warnMethod=void 0;var Da=(e,f,p,m={})=>{e.file&&(m.file=e.file),e.cwd&&(m.cwd=e.cwd),m.code=p instanceof Error&&p.code||f,m.tarCode=f,!e.strict&&m.recoverable!==!1?(p instanceof Error&&(m=Object.assign(p,m),p=p.message),e.emit("warn",f,p,m)):p instanceof Error?e.emit("error",Object.assign(p,m)):e.emit("error",Object.assign(new Error(`${f}: ${p}`),m))};e.warnMethod=Da}));var D=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.Parser=void 0;var f=p(361),m=w(),y=O(),b=R(),v=P(),_=T(),g=1024*1024,S=Buffer.from([31,139]),k=Buffer.from([40,181,47,253]),D=Math.max(S.length,k.length),M=Symbol("state"),x=Symbol("writeEntry"),L=Symbol("readEntry"),A=Symbol("nextEntry"),N=Symbol("processEntry"),I=Symbol("extendedHeader"),F=Symbol("globalExtendedHeader"),B=Symbol("meta"),z=Symbol("emitMeta"),C=Symbol("buffer"),j=Symbol("queue"),U=Symbol("ended"),W=Symbol("emittedEnd"),Z=Symbol("emit"),H=Symbol("unzip"),G=Symbol("consumeChunk"),Y=Symbol("consumeChunkSub"),$=Symbol("consumeBody"),q=Symbol("consumeMeta"),V=Symbol("consumeHeader"),K=Symbol("consuming"),X=Symbol("bufferConcat"),Q=Symbol("maybeEnd"),J=Symbol("writing"),ee=Symbol("aborted"),te=Symbol("onDone"),ie=Symbol("sawValidEntry"),re=Symbol("sawNullBlock"),se=Symbol("sawEOF"),ne=Symbol("closeStream"),Ia=()=>!0,oe=class extends f.EventEmitter{file;strict;maxMetaEntrySize;filter;brotli;zstd;writable=!0;readable=!1;[j]=[];[C];[L];[x];[M]="begin";[B]="";[I];[F];[U]=!1;[H];[ee]=!1;[ie];[re]=!1;[se]=!1;[J]=!1;[K]=!1;[W]=!1;constructor(e={}){super(),this.file=e.file||"",this.on(te,(()=>{(this[M]==="begin"||this[ie]===!1)&&this.warn("TAR_BAD_ARCHIVE","Unrecognized archive format")})),e.ondone?this.on(te,e.ondone):this.on(te,(()=>{this.emit("prefinish"),this.emit("finish"),this.emit("end")})),this.strict=!!e.strict,this.maxMetaEntrySize=e.maxMetaEntrySize||g,this.filter=typeof e.filter=="function"?e.filter:Ia;let f=e.file&&(e.file.endsWith(".tar.br")||e.file.endsWith(".tbr"));this.brotli=!(e.gzip||e.zstd)&&e.brotli!==void 0?e.brotli:f?void 0:!1;let p=e.file&&(e.file.endsWith(".tar.zst")||e.file.endsWith(".tzst"));this.zstd=!(e.gzip||e.brotli)&&e.zstd!==void 0?e.zstd:p?!0:void 0,this.on("end",(()=>this[ne]())),typeof e.onwarn=="function"&&this.on("warn",e.onwarn),typeof e.onReadEntry=="function"&&this.on("entry",e.onReadEntry)}warn(e,f,p={}){(0,_.warnMethod)(this,e,f,p)}[V](e,f){this[ie]===void 0&&(this[ie]=!1);let p;try{p=new y.Header(e,f,this[I],this[F])}catch(e){return this.warn("TAR_ENTRY_INVALID",e)}if(p.nullBlock)this[re]?(this[se]=!0,this[M]==="begin"&&(this[M]="header"),this[Z]("eof")):(this[re]=!0,this[Z]("nullBlock"));else if(this[re]=!1,!p.cksumValid)this.warn("TAR_ENTRY_INVALID","checksum failure",{header:p});else if(!p.path)this.warn("TAR_ENTRY_INVALID","path is required",{header:p});else{let e=p.type;if(/^(Symbolic)?Link$/.test(e)&&!p.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath required",{header:p});else if(!/^(Symbolic)?Link$/.test(e)&&!/^(Global)?ExtendedHeader$/.test(e)&&p.linkpath)this.warn("TAR_ENTRY_INVALID","linkpath forbidden",{header:p});else{let e=this[x]=new v.ReadEntry(p,this[I],this[F]);if(!this[ie])if(e.remain){let o=()=>{e.invalid||(this[ie]=!0)};e.on("end",o)}else this[ie]=!0;e.meta?e.size>this.maxMetaEntrySize?(e.ignore=!0,this[Z]("ignoredEntry",e),this[M]="ignore",e.resume()):e.size>0&&(this[B]="",e.on("data",(e=>this[B]+=e)),this[M]="meta"):(this[I]=void 0,e.ignore=e.ignore||!this.filter(e.path,e),e.ignore?(this[Z]("ignoredEntry",e),this[M]=e.remain?"ignore":"header",e.resume()):(e.remain?this[M]="body":(this[M]="header",e.end()),this[L]?this[j].push(e):(this[j].push(e),this[A]())))}}}[ne](){queueMicrotask((()=>this.emit("close")))}[N](e){let f=!0;if(!e)this[L]=void 0,f=!1;else if(Array.isArray(e)){let[f,...p]=e;this.emit(f,...p)}else this[L]=e,this.emit("entry",e),e.emittedEnd||(e.on("end",(()=>this[A]())),f=!1);return f}[A](){do{}while(this[N](this[j].shift()));if(!this[j].length){let e=this[L];!e||e.flowing||e.size===e.remain?this[J]||this.emit("drain"):e.once("drain",(()=>this.emit("drain")))}}[$](e,f){let p=this[x];if(!p)throw new Error("attempt to consume body without entry??");let m=p.blockRemain??0,y=m>=e.length&&f===0?e:e.subarray(f,f+m);return p.write(y),p.blockRemain||(this[M]="header",this[x]=void 0,p.end()),y.length}[q](e,f){let p=this[x],m=this[$](e,f);return!this[x]&&p&&this[z](p),m}[Z](e,f,p){!this[j].length&&!this[L]?this.emit(e,f,p):this[j].push([e,f,p])}[z](e){switch(this[Z]("meta",this[B]),e.type){case"ExtendedHeader":case"OldExtendedHeader":this[I]=b.Pax.parse(this[B],this[I],!1);break;case"GlobalExtendedHeader":this[F]=b.Pax.parse(this[B],this[F],!0);break;case"NextFileHasLongPath":case"OldGnuLongPath":{let e=this[I]??Object.create(null);this[I]=e,e.path=this[B].replace(/\0.*/,"");break}case"NextFileHasLongLinkpath":{let e=this[I]||Object.create(null);this[I]=e,e.linkpath=this[B].replace(/\0.*/,"");break}default:throw new Error("unknown meta: "+e.type)}}abort(e){this[ee]=!0,this.emit("abort",e),this.warn("TAR_ABORT",e,{recoverable:!1})}write(e,f,p){if(typeof f=="function"&&(p=f,f=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof f=="string"?f:"utf8")),this[ee])return p?.(),!1;if((this[H]===void 0||this.brotli===void 0&&this[H]===!1)&&e){if(this[C]&&(e=Buffer.concat([this[C],e]),this[C]=void 0),e.lengththis[G](e))),this[H].on("error",(e=>this.abort(e))),this[H].on("end",(()=>{this[U]=!0,this[G]()})),this[J]=!0;let b=!!this[H][y?"end":"write"](e);return this[J]=!1,p?.(),b}}this[J]=!0,this[H]?this[H].write(e):this[G](e),this[J]=!1;let b=this[j].length?!1:this[L]?this[L].flowing:!0;return!b&&!this[j].length&&this[L]?.once("drain",(()=>this.emit("drain"))),p?.(),b}[X](e){e&&!this[ee]&&(this[C]=this[C]?Buffer.concat([this[C],e]):e)}[Q](){if(this[U]&&!this[W]&&!this[ee]&&!this[K]){this[W]=!0;let e=this[x];if(e&&e.blockRemain){let f=this[C]?this[C].length:0;this.warn("TAR_BAD_ARCHIVE",`Truncated input (needed ${e.blockRemain} more bytes, only ${f} available)`,{entry:e}),this[C]&&e.write(this[C]),e.end()}this[Z](te)}}[G](e){if(this[K]&&e)this[X](e);else if(!e&&!this[C])this[Q]();else if(e){if(this[K]=!0,this[C]){this[X](e);let f=this[C];this[C]=void 0,this[Y](f)}else this[Y](e);for(;this[C]&&this[C]?.length>=512&&!this[ee]&&!this[se];){let e=this[C];this[C]=void 0,this[Y](e)}this[K]=!1}(!this[C]||this[U])&&this[Q]()}[Y](e){let f=0,p=e.length;for(;f+512<=p&&!this[ee]&&!this[se];)switch(this[M]){case"begin":case"header":this[V](e,f),f+=512;break;case"ignore":case"body":f+=this[$](e,f);break;case"meta":f+=this[q](e,f);break;default:throw new Error("invalid state: "+this[M])}f{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.stripTrailingSlashes=void 0;var Ca=e=>{let f=e.length-1,p=-1;for(;f>-1&&e.charAt(f)==="/";)p=f,f--;return p===-1?e:e.slice(0,p)};e.stripTrailingSlashes=Ca}));var x=d((e=>{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),m=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),b=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var y=s(e),b=0;b{let f=e.onReadEntry;e.onReadEntry=f?e=>{f(e),e.resume()}:e=>e.resume()},qa=(e,f)=>{let p=new Map(f.map((e=>[(0,k.stripTrailingSlashes)(e),!0]))),m=e.filter,r=(e,f="")=>{let m=f||(0,S.parse)(e).root||".",y;if(e===m)y=!1;else{let f=p.get(e);f!==void 0?y=f:y=r((0,S.dirname)(e),m)}return p.set(e,y),y};e.filter=m?(e,f)=>m(e,f)&&r((0,k.stripTrailingSlashes)(e)):e=>r((0,k.stripTrailingSlashes)(e))};e.filesFilter=qa;var Wa=e=>{let f=new R.Parser(e),p=e.file,m;try{m=g.default.openSync(p,"r");let y=g.default.fstatSync(m),b=e.maxReadSize||16*1024*1024;if(y.size{let p=new R.Parser(e),m=e.maxReadSize||16*1024*1024,y=e.file;return new Promise(((e,f)=>{p.on("error",f),p.on("end",e),g.default.stat(y,((e,b)=>{if(e)f(e);else{let e=new w.ReadStream(y,{readSize:m,size:b.size});e.on("error",f),e.pipe(p)}}))}))};e.list=(0,O.makeCommand)(Wa,Ha,(e=>new R.Parser(e)),(e=>new R.Parser(e)),((f,p)=>{p?.length&&(0,e.filesFilter)(f,p),f.noResume||Ua(f)}))}));var L=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.modeFix=void 0;var Za=(e,f,p)=>(e&=4095,p&&(e=(e|384)&-19),f&&(e&256&&(e|=64),e&32&&(e|=8),e&4&&(e|=1)),e);e.modeFix=Za}));var A=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.stripAbsolutePath=void 0;var f=p(411),{isAbsolute:m,parse:y}=f.win32,Ka=e=>{let f="",p=y(e);for(;m(e)||p.root;){let m=e.charAt(0)==="/"&&e.slice(0,4)!=="//?/"?"/":p.root;e=e.slice(m.length),f+=m,p=y(e)}return[f,e]};e.stripAbsolutePath=Ka}));var N=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.decode=e.encode=void 0;var f=["|","<",">","?",":"],p=f.map((e=>String.fromCharCode(61440+e.charCodeAt(0)))),m=new Map(f.map(((e,f)=>[e,p[f]]))),y=new Map(p.map(((e,p)=>[e,f[p]]))),Xa=e=>f.reduce(((e,f)=>e.split(f).join(m.get(f))),e);e.encode=Xa;var Qa=e=>p.reduce(((e,f)=>e.split(f).join(y.get(f))),e);e.decode=Qa}));var I=d((e=>{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),y=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),v=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var m=s(e),b=0;bf?(e=(0,x.normalizeWindowsPath)(e).replace(/^\.(\/|$)/,""),(0,z.stripTrailingSlashes)(f)+"/"+e):(0,x.normalizeWindowsPath)(e),U=16*1024*1024,W=Symbol("process"),Z=Symbol("file"),H=Symbol("directory"),G=Symbol("symlink"),Y=Symbol("hardlink"),$=Symbol("header"),q=Symbol("read"),V=Symbol("lstat"),K=Symbol("onlstat"),X=Symbol("onread"),Q=Symbol("onreadlink"),J=Symbol("openfile"),ee=Symbol("onopenfile"),te=Symbol("close"),ie=Symbol("mode"),re=Symbol("awaitDrain"),se=Symbol("ondrain"),ne=Symbol("prefix"),oe=class extends g.Minipass{path;portable;myuid=process.getuid&&process.getuid()||0;myuser=process.env.USER||"";maxReadSize;linkCache;statCache;preservePaths;cwd;strict;mtime;noPax;noMtime;prefix;fd;blockLen=0;blockRemain=0;buf;pos=0;remain=0;length=0;offset=0;win32;absolute;header;type;linkpath;stat;onWriteEntry;#e=!1;constructor(e,f={}){let p=(0,I.dealias)(f);super(),this.path=(0,x.normalizeWindowsPath)(e),this.portable=!!p.portable,this.maxReadSize=p.maxReadSize||U,this.linkCache=p.linkCache||new Map,this.statCache=p.statCache||new Map,this.preservePaths=!!p.preservePaths,this.cwd=(0,x.normalizeWindowsPath)(p.cwd||process.cwd()),this.strict=!!p.strict,this.noPax=!!p.noPax,this.noMtime=!!p.noMtime,this.mtime=p.mtime,this.prefix=p.prefix?(0,x.normalizeWindowsPath)(p.prefix):void 0,this.onWriteEntry=p.onWriteEntry,typeof p.onwarn=="function"&&this.on("warn",p.onwarn);let m=!1;if(!this.preservePaths){let[e,f]=(0,B.stripAbsolutePath)(this.path);e&&typeof f=="string"&&(this.path=f,m=e)}this.win32=!!p.win32||process.platform==="win32",this.win32&&(this.path=j.decode(this.path.replace(/\\/g,"/")),e=e.replace(/\\/g,"/")),this.absolute=(0,x.normalizeWindowsPath)(p.absolute||S.default.resolve(this.cwd,e)),this.path===""&&(this.path="./"),m&&this.warn("TAR_ENTRY_INFO",`stripping ${m} from absolute path`,{entry:this,path:m+this.path});let y=this.statCache.get(this.absolute);y?this[K](y):this[V]()}warn(e,f,p={}){return(0,C.warnMethod)(this,e,f,p)}emit(e,...f){return e==="error"&&(this.#e=!0),super.emit(e,...f)}[V](){w.default.lstat(this.absolute,((e,f)=>{if(e)return this.emit("error",e);this[K](f)}))}[K](e){this.statCache.set(this.absolute,e),this.stat=e,e.isFile()||(e.size=0),this.type=nh(e),this.emit("stat",e),this[W]()}[W](){switch(this.type){case"File":return this[Z]();case"Directory":return this[H]();case"SymbolicLink":return this[G]();default:return this.end()}}[ie](e){return(0,D.modeFix)(e,this.type==="Directory",this.portable)}[ne](e){return En(e,this.prefix)}[$](){if(!this.stat)throw new Error("cannot write header before stat");this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.onWriteEntry?.(this),this.header=new P.Header({path:this[ne](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[ne](this.linkpath):this.linkpath,mode:this[ie](this.stat.mode),uid:this.portable?void 0:this.stat.uid,gid:this.portable?void 0:this.stat.gid,size:this.stat.size,mtime:this.noMtime?void 0:this.mtime||this.stat.mtime,type:this.type==="Unsupported"?void 0:this.type,uname:this.portable?void 0:this.stat.uid===this.myuid?this.myuser:"",atime:this.portable?void 0:this.stat.atime,ctime:this.portable?void 0:this.stat.ctime}),this.header.encode()&&!this.noPax&&super.write(new F.Pax({atime:this.portable?void 0:this.header.atime,ctime:this.portable?void 0:this.header.ctime,gid:this.portable?void 0:this.header.gid,mtime:this.noMtime?void 0:this.mtime||this.header.mtime,path:this[ne](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[ne](this.linkpath):this.linkpath,size:this.header.size,uid:this.portable?void 0:this.header.uid,uname:this.portable?void 0:this.header.uname,dev:this.portable?void 0:this.stat.dev,ino:this.portable?void 0:this.stat.ino,nlink:this.portable?void 0:this.stat.nlink}).encode());let e=this.header?.block;if(!e)throw new Error("failed to encode header");super.write(e)}[H](){if(!this.stat)throw new Error("cannot create directory entry without stat");this.path.slice(-1)!=="/"&&(this.path+="/"),this.stat.size=0,this[$](),this.end()}[G](){w.default.readlink(this.absolute,((e,f)=>{if(e)return this.emit("error",e);this[Q](f)}))}[Q](e){this.linkpath=(0,x.normalizeWindowsPath)(e),this[$](),this.end()}[Y](e){if(!this.stat)throw new Error("cannot create link entry without stat");this.type="Link",this.linkpath=(0,x.normalizeWindowsPath)(S.default.relative(this.cwd,e)),this.stat.size=0,this[$](),this.end()}[Z](){if(!this.stat)throw new Error("cannot create file entry without stat");if(this.stat.nlink>1){let e=`${this.stat.dev}:${this.stat.ino}`,f=this.linkCache.get(e);if(f?.indexOf(this.cwd)===0)return this[Y](f);this.linkCache.set(e,this.absolute)}if(this[$](),this.stat.size===0)return this.end();this[J]()}[J](){w.default.open(this.absolute,"r",((e,f)=>{if(e)return this.emit("error",e);this[ee](f)}))}[ee](e){if(this.fd=e,this.#e)return this[te]();if(!this.stat)throw new Error("should stat before calling onopenfile");this.blockLen=512*Math.ceil(this.stat.size/512),this.blockRemain=this.blockLen;let f=Math.min(this.blockLen,this.maxReadSize);this.buf=Buffer.allocUnsafe(f),this.offset=0,this.pos=0,this.remain=this.stat.size,this.length=this.buf.length,this[q]()}[q](){let{fd:e,buf:f,offset:p,length:m,pos:y}=this;if(e===void 0||f===void 0)throw new Error("cannot read file without first opening");w.default.read(e,f,p,m,y,((e,f)=>{if(e)return this[te]((()=>this.emit("error",e)));this[X](f)}))}[te](e=(()=>{})){this.fd!==void 0&&w.default.close(this.fd,e)}[X](e){if(e<=0&&this.remain>0){let e=Object.assign(new Error("encountered unexpected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[te]((()=>this.emit("error",e)))}if(e>this.remain){let e=Object.assign(new Error("did not encounter expected EOF"),{path:this.absolute,syscall:"read",code:"EOF"});return this[te]((()=>this.emit("error",e)))}if(!this.buf)throw new Error("should have created buffer prior to reading");if(e===this.remain)for(let f=e;fthis[se]()))}[re](e){this.once("drain",e)}write(e,f,p){if(typeof f=="function"&&(p=f,f=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof f=="string"?f:"utf8")),this.blockRemaine?this.emit("error",e):this.end()));if(!this.buf)throw new Error("buffer lost somehow in ONDRAIN");this.offset>=this.length&&(this.buf=Buffer.allocUnsafe(Math.min(this.blockRemain,this.buf.length)),this.offset=0),this.length=this.buf.length-this.offset,this[q]()}};e.WriteEntry=oe;var ae=class extends oe{sync=!0;[V](){this[K](w.default.lstatSync(this.absolute))}[G](){this[Q](w.default.readlinkSync(this.absolute))}[J](){this[ee](w.default.openSync(this.absolute,"r"))}[q](){let e=!0;try{let{fd:f,buf:p,offset:m,length:y,pos:b}=this;if(f===void 0||p===void 0)throw new Error("fd and buf must be set in READ method");let v=w.default.readSync(f,p,m,y,b);this[X](v),e=!1}finally{if(e)try{this[te]((()=>{}))}catch{}}}[re](e){e()}[te](e=(()=>{})){this.fd!==void 0&&w.default.closeSync(this.fd),e()}};e.WriteEntrySync=ae;var he=class extends g.Minipass{blockLen=0;blockRemain=0;buf=0;pos=0;remain=0;length=0;preservePaths;portable;strict;noPax;noMtime;readEntry;type;prefix;path;mode;uid;gid;uname;gname;header;mtime;atime;ctime;linkpath;size;onWriteEntry;warn(e,f,p={}){return(0,C.warnMethod)(this,e,f,p)}constructor(e,f={}){let p=(0,I.dealias)(f);super(),this.preservePaths=!!p.preservePaths,this.portable=!!p.portable,this.strict=!!p.strict,this.noPax=!!p.noPax,this.noMtime=!!p.noMtime,this.onWriteEntry=p.onWriteEntry,this.readEntry=e;let{type:m}=e;if(m==="Unsupported")throw new Error("writing entry that should be ignored");this.type=m,this.type==="Directory"&&this.portable&&(this.noMtime=!0),this.prefix=p.prefix,this.path=(0,x.normalizeWindowsPath)(e.path),this.mode=e.mode!==void 0?this[ie](e.mode):void 0,this.uid=this.portable?void 0:e.uid,this.gid=this.portable?void 0:e.gid,this.uname=this.portable?void 0:e.uname,this.gname=this.portable?void 0:e.gname,this.size=e.size,this.mtime=this.noMtime?void 0:p.mtime||e.mtime,this.atime=this.portable?void 0:e.atime,this.ctime=this.portable?void 0:e.ctime,this.linkpath=e.linkpath!==void 0?(0,x.normalizeWindowsPath)(e.linkpath):void 0,typeof p.onwarn=="function"&&this.on("warn",p.onwarn);let y=!1;if(!this.preservePaths){let[e,f]=(0,B.stripAbsolutePath)(this.path);e&&typeof f=="string"&&(this.path=f,y=e)}this.remain=e.size,this.blockRemain=e.startBlockSize,this.onWriteEntry?.(this),this.header=new P.Header({path:this[ne](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[ne](this.linkpath):this.linkpath,mode:this.mode,uid:this.portable?void 0:this.uid,gid:this.portable?void 0:this.gid,size:this.size,mtime:this.noMtime?void 0:this.mtime,type:this.type,uname:this.portable?void 0:this.uname,atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime}),y&&this.warn("TAR_ENTRY_INFO",`stripping ${y} from absolute path`,{entry:this,path:y+this.path}),this.header.encode()&&!this.noPax&&super.write(new F.Pax({atime:this.portable?void 0:this.atime,ctime:this.portable?void 0:this.ctime,gid:this.portable?void 0:this.gid,mtime:this.noMtime?void 0:this.mtime,path:this[ne](this.path),linkpath:this.type==="Link"&&this.linkpath!==void 0?this[ne](this.linkpath):this.linkpath,size:this.size,uid:this.portable?void 0:this.uid,uname:this.portable?void 0:this.uname,dev:this.portable?void 0:this.readEntry.dev,ino:this.portable?void 0:this.readEntry.ino,nlink:this.portable?void 0:this.readEntry.nlink}).encode());let b=this.header?.block;if(!b)throw new Error("failed to encode header");super.write(b),e.pipe(this)}[ne](e){return En(e,this.prefix)}[ie](e){return(0,D.modeFix)(e,this.type==="Directory",this.portable)}write(e,f,p){typeof f=="function"&&(p=f,f=void 0),typeof e=="string"&&(e=Buffer.from(e,typeof f=="string"?f:"utf8"));let m=e.length;if(m>this.blockRemain)throw new Error("writing more to entry than is appropriate");return this.blockRemain-=m,super.write(e,p)}end(e,f,p){return this.blockRemain&&super.write(Buffer.alloc(this.blockRemain)),typeof e=="function"&&(p=e,f=void 0,e=void 0),typeof f=="function"&&(p=f,f=void 0),typeof e=="string"&&(e=Buffer.from(e,f??"utf8")),p&&this.once("finish",p),e?super.end(e,p):super.end(p),this}};e.WriteEntryTar=he;var nh=e=>e.isFile()?"File":e.isDirectory()?"Directory":e.isSymbolicLink()?"SymbolicLink":"Unsupported"}));var F=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.Node=e.Yallist=void 0;var f=class s{tail;head;length=0;static create(e=[]){return new s(e)}constructor(e=[]){for(let f of e)this.push(f)}*[Symbol.iterator](){for(let e=this.head;e;e=e.next)yield e.value}removeNode(e){if(e.list!==this)throw new Error("removing node which does not belong to this list");let f=e.next,p=e.prev;return f&&(f.prev=p),p&&(p.next=f),e===this.head&&(this.head=f),e===this.tail&&(this.tail=p),this.length--,e.next=void 0,e.prev=void 0,e.list=void 0,f}unshiftNode(e){if(e===this.head)return;e.list&&e.list.removeNode(e);let f=this.head;e.list=this,e.next=f,f&&(f.prev=e),this.head=e,this.tail||(this.tail=e),this.length++}pushNode(e){if(e===this.tail)return;e.list&&e.list.removeNode(e);let f=this.tail;e.list=this,e.prev=f,f&&(f.next=e),this.tail=e,this.head||(this.head=e),this.length++}push(...e){for(let f=0,p=e.length;f1)p=f;else if(this.head)m=this.head.next,p=this.head.value;else throw new TypeError("Reduce of empty list with no initial value");for(var y=0;m;y++)p=e(p,m.value,y),m=m.next;return p}reduceReverse(e,f){let p,m=this.tail;if(arguments.length>1)p=f;else if(this.tail)m=this.tail.prev,p=this.tail.value;else throw new TypeError("Reduce of empty list with no initial value");for(let f=this.length-1;m;f--)p=e(p,m.value,f),m=m.prev;return p}toArray(){let e=new Array(this.length);for(let f=0,p=this.head;p;f++)e[f]=p.value,p=p.next;return e}toArrayReverse(){let e=new Array(this.length);for(let f=0,p=this.tail;p;f++)e[f]=p.value,p=p.prev;return e}slice(e=0,f=this.length){f<0&&(f+=this.length),e<0&&(e+=this.length);let p=new s;if(fthis.length&&(f=this.length);let m=this.head,y=0;for(y=0;m&&ythis.length&&(f=this.length);let m=this.length,y=this.tail;for(;y&&m>f;m--)y=y.prev;for(;y&&m>e;m--,y=y.prev)p.push(y.value);return p}splice(e,f=0,...p){e>this.length&&(e=this.length-1),e<0&&(e=this.length+e);let m=this.head;for(let f=0;m&&f{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),y=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),b=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var m=s(e),b=0;b1)throw new TypeError("gzip, brotli, zstd are mutually exclusive");if(e.gzip&&(typeof e.gzip!="object"&&(e.gzip={}),this.portable&&(e.gzip.portable=!0),this.zip=new R.Gzip(e.gzip)),e.brotli&&(typeof e.brotli!="object"&&(e.brotli={}),this.zip=new R.BrotliCompress(e.brotli)),e.zstd&&(typeof e.zstd!="object"&&(e.zstd={}),this.zip=new R.ZstdCompress(e.zstd)),!this.zip)throw new Error("impossible");let f=this.zip;f.on("data",(e=>super.write(e))),f.on("end",(()=>super.end())),f.on("drain",(()=>this[ee]())),this.on("resume",(()=>f.resume()))}else this.on("drain",this[ee]);this.noDirRecurse=!!e.noDirRecurse,this.follow=!!e.follow,this.noMtime=!!e.noMtime,e.mtime&&(this.mtime=e.mtime),this.filter=typeof e.filter=="function"?e.filter:()=>!0,this[B]=new D.Yallist,this[W]=0,this.jobs=Number(e.jobs)||4,this[j]=!1,this[N]=!1}[J](e){return super.write(e)}add(e){return this.write(e),this}end(e,f,p){return typeof e=="function"&&(p=e,e=void 0),typeof f=="function"&&(p=f,f=void 0),e&&this.add(e),this[N]=!0,this[C](),p&&p(),this}write(e){if(this[N])throw new Error("write after end");return e instanceof M.ReadEntry?this[G](e):this[H](e),this.flowing}[G](e){let f=(0,ie.normalizeWindowsPath)(te.default.resolve(this.cwd,e.path));if(!this.filter(e.path,e))e.resume();else{let p=new S(e.path,f);p.entry=new g.WriteEntryTar(e,this[X](p)),p.entry.on("end",(()=>this[Z](p))),this[W]+=1,this[B].push(p)}this[C]()}[H](e){let f=(0,ie.normalizeWindowsPath)(te.default.resolve(this.cwd,e));this[B].push(new S(e,f)),this[C]()}[Y](e){e.pending=!0,this[W]+=1;let f=this.follow?"stat":"lstat";_.default[f](e.absolute,((f,p)=>{e.pending=!1,this[W]-=1,f?this.emit("error",f):this[A](e,p)}))}[A](e,f){this.statCache.set(e.absolute,f),e.stat=f,this.filter(e.path,f)?f.isFile()&&f.nlink>1&&e===this[z]&&!this.linkCache.get(`${f.dev}:${f.ino}`)&&!this.sync&&this[U](e):e.ignore=!0,this[C]()}[$](e){e.pending=!0,this[W]+=1,_.default.readdir(e.absolute,((f,p)=>{if(e.pending=!1,this[W]-=1,f)return this.emit("error",f);this[q](e,p)}))}[q](e,f){this.readdirCache.set(e.absolute,f),e.readdir=f,this[C]()}[C](){if(!this[j]){this[j]=!0;for(let e=this[B].head;e&&this[W]this.warn(e,f,p),noPax:this.noPax,cwd:this.cwd,absolute:e.absolute,preservePaths:this.preservePaths,maxReadSize:this.maxReadSize,strict:this.strict,portable:this.portable,linkCache:this.linkCache,statCache:this.statCache,noMtime:this.noMtime,mtime:this.mtime,prefix:this.prefix,onWriteEntry:this.onWriteEntry}}[K](e){this[W]+=1;try{return new this[Q](e.path,this[X](e)).on("end",(()=>this[Z](e))).on("error",(e=>this.emit("error",e)))}catch(e){this.emit("error",e)}}[ee](){this[z]&&this[z].entry&&this[z].entry.resume()}[V](e){e.piped=!0,e.readdir&&e.readdir.forEach((f=>{let p=e.path,m=p==="./"?"":p.replace(/\/*$/,"/");this[H](m+f)}));let f=e.entry,p=this.zip;if(!f)throw new Error("cannot pipe without source");p?f.on("data",(e=>{p.write(e)||f.pause()})):f.on("data",(e=>{super.write(e)||f.pause()}))}pause(){return this.zip&&this.zip.pause(),super.pause()}warn(e,f,p={}){(0,x.warnMethod)(this,e,f,p)}};e.Pack=re;var se=class extends re{sync=!0;constructor(e){super(e),this[Q]=g.WriteEntrySync}pause(){}resume(){}[Y](e){let f=this.follow?"statSync":"lstatSync";this[A](e,_.default[f](e.absolute))}[$](e){this[q](e,_.default.readdirSync(e.absolute))}[V](e){let f=e.entry,p=this.zip;if(e.readdir&&e.readdir.forEach((f=>{let p=e.path,m=p==="./"?"":p.replace(/\/*$/,"/");this[H](m+f)})),!f)throw new Error("Cannot pipe without source");p?f.on("data",(e=>{p.write(e)})):f.on("data",(e=>{super[J](e)}))}};e.PackSync=se}));var z=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.create=void 0;var m=y(),b=f(p(411)),_=x(),w=v(),g=B(),yh=(e,f)=>{let p=new g.PackSync(e),y=new m.WriteStreamSync(e.file,{mode:e.mode||438});p.pipe(y),Mn(p,f)},Eh=(e,f)=>{let p=new g.Pack(e),y=new m.WriteStream(e.file,{mode:e.mode||438});p.pipe(y);let b=new Promise(((e,f)=>{y.on("error",f),y.on("close",e),p.on("error",f)}));return Ln(p,f),b},Mn=(e,f)=>{f.forEach((f=>{f.charAt(0)==="@"?(0,_.list)({file:b.default.resolve(e.cwd,f.slice(1)),sync:!0,noResume:!0,onReadEntry:f=>e.add(f)}):e.add(f)})),e.end()},Ln=async(e,f)=>{for(let p=0;p{e.add(f)}}):e.add(m)}e.end()},bh=(e,f)=>{let p=new g.PackSync(e);return Mn(p,f),p},Sh=(e,f)=>{let p=new g.Pack(e);return Ln(p,f),p};e.create=(0,w.makeCommand)(yh,Eh,bh,Sh,((e,f)=>{if(!f?.length)throw new TypeError("no paths specified to add to archive")}))}));var C=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.getWriteFlag=void 0;var m=f(p(147)),y=process.env.__FAKE_PLATFORM__||process.platform,b=y==="win32",{O_CREAT:v,O_TRUNC:_,O_WRONLY:w}=m.default.constants,g=Number(process.env.__FAKE_FS_O_FILENAME__)||m.default.constants.UV_FS_O_FILEMAP||0,S=b&&!!g,O=512*1024,R=g|_|v|w;e.getWriteFlag=S?e=>e"w"}));var j=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.chownrSync=e.chownr=void 0;var m=f(p(561)),y=f(p(411)),dr=(e,f,p)=>{try{return m.default.lchownSync(e,f,p)}catch(e){if(e?.code!=="ENOENT")throw e}},Ci=(e,f,p,y)=>{m.default.lchown(e,f,p,(e=>{y(e&&e?.code!=="ENOENT"?e:null)}))},Lh=(f,p,m,b,v)=>{if(p.isDirectory())(0,e.chownr)(y.default.resolve(f,p.name),m,b,(e=>{if(e)return v(e);let _=y.default.resolve(f,p.name);Ci(_,m,b,v)}));else{let e=y.default.resolve(f,p.name);Ci(e,m,b,v)}},Ah=(e,f,p,y)=>{m.default.readdir(e,{withFileTypes:!0},((m,b)=>{if(m){if(m.code==="ENOENT")return y();if(m.code!=="ENOTDIR"&&m.code!=="ENOTSUP")return y(m)}if(m||!b.length)return Ci(e,f,p,y);let v=b.length,_=null,h=m=>{if(!_){if(m)return y(_=m);if(--v===0)return Ci(e,f,p,y)}};for(let m of b)Lh(e,m,f,p,h)}))};e.chownr=Ah;var Ih=(f,p,m,b)=>{p.isDirectory()&&(0,e.chownrSync)(y.default.resolve(f,p.name),m,b),dr(y.default.resolve(f,p.name),m,b)},Ch=(e,f,p)=>{let y;try{y=m.default.readdirSync(e,{withFileTypes:!0})}catch(m){let y=m;if(y?.code==="ENOENT")return;if(y?.code==="ENOTDIR"||y?.code==="ENOTSUP")return dr(e,f,p);throw y}for(let m of y)Ih(e,m,f,p);return dr(e,f,p)};e.chownrSync=Ch}));var U=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.CwdError=void 0;var f=class extends Error{path;code;syscall="chdir";constructor(e,f){super(`${f}: Cannot cd into '${e}'`),this.path=e,this.code=f}get name(){return"CwdError"}};e.CwdError=f}));var W=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.SymlinkError=void 0;var f=class extends Error{path;symlink;syscall="symlink";code="TAR_SYMLINK_ERROR";constructor(e,f){super("TAR_SYMLINK_ERROR: Cannot extract through symbolic link"),this.symlink=e,this.path=f}get name(){return"SymlinkError"}};e.SymlinkError=f}));var Z=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.mkdirSync=e.mkdir=void 0;var m=j(),y=f(p(561)),b=f(p(977)),v=f(p(411)),_=U(),w=k(),g=W(),Bh=(e,f)=>{y.default.stat(e,((p,m)=>{(p||!m.isDirectory())&&(p=new _.CwdError(e,p?.code||"ENOTDIR")),f(p)}))},zh=(e,f,p)=>{e=(0,w.normalizeWindowsPath)(e);let _=f.umask??18,g=f.mode|448,S=(g&_)!==0,O=f.uid,R=f.gid,k=typeof O=="number"&&typeof R=="number"&&(O!==f.processUid||R!==f.processGid),P=f.preserve,T=f.unlink,D=(0,w.normalizeWindowsPath)(f.cwd),E=(f,b)=>{f?p(f):b&&k?(0,m.chownr)(b,O,R,(e=>E(e))):S?y.default.chmod(e,g,p):p()};if(e===D)return Bh(e,E);if(P)return b.default.mkdir(e,{mode:g,recursive:!0}).then((e=>E(null,e??void 0)),E);let M=(0,w.normalizeWindowsPath)(v.default.relative(D,e)).split("/");wr(D,M,g,T,D,void 0,E)};e.mkdir=zh;var wr=(e,f,p,m,b,_,g)=>{if(!f.length)return g(null,_);let S=f.shift(),O=(0,w.normalizeWindowsPath)(v.default.resolve(e+"/"+S));y.default.mkdir(O,p,Un(O,f,p,m,b,_,g))},Un=(e,f,p,m,b,v,_)=>S=>{S?y.default.lstat(e,((O,R)=>{if(O)O.path=O.path&&(0,w.normalizeWindowsPath)(O.path),_(O);else if(R.isDirectory())wr(e,f,p,m,b,v,_);else if(m)y.default.unlink(e,(w=>{if(w)return _(w);y.default.mkdir(e,p,Un(e,f,p,m,b,v,_))}));else{if(R.isSymbolicLink())return _(new g.SymlinkError(e,e+"/"+f.join("/")));_(S)}})):(v=v||e,wr(e,f,p,m,b,v,_))},kh=e=>{let f=!1,p;try{f=y.default.statSync(e).isDirectory()}catch(e){p=e?.code}finally{if(!f)throw new _.CwdError(e,p??"ENOTDIR")}},jh=(e,f)=>{e=(0,w.normalizeWindowsPath)(e);let p=f.umask??18,b=f.mode|448,_=(b&p)!==0,S=f.uid,O=f.gid,R=typeof S=="number"&&typeof O=="number"&&(S!==f.processUid||O!==f.processGid),k=f.preserve,P=f.unlink,T=(0,w.normalizeWindowsPath)(f.cwd),c=f=>{f&&R&&(0,m.chownrSync)(f,S,O),_&&y.default.chmodSync(e,b)};if(e===T)return kh(T),c();if(k)return c(y.default.mkdirSync(e,{mode:b,recursive:!0})??void 0);let D=(0,w.normalizeWindowsPath)(v.default.relative(T,e)).split("/"),M;for(let e=D.shift(),f=T;e&&(f+="/"+e);e=D.shift()){f=(0,w.normalizeWindowsPath)(v.default.resolve(f));try{y.default.mkdirSync(f,b),M=M||f}catch{let e=y.default.lstatSync(f);if(e.isDirectory())continue;if(P){y.default.unlinkSync(f),y.default.mkdirSync(f,b),M=M||f;continue}else if(e.isSymbolicLink())return new g.SymlinkError(f,f+"/"+D.join("/"))}}return c(M)};e.mkdirSync=jh}));var H=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.normalizeUnicode=void 0;var f=Object.create(null),p=1e4,m=new Set,xh=e=>{m.has(e)?m.delete(e):f[e]=e.normalize("NFD").toLocaleLowerCase("en").toLocaleUpperCase("en"),m.add(e);let y=f[e],b=m.size-p;if(b>p/10){for(let e of m)if(m.delete(e),delete f[e],--b<=0)break}return y};e.normalizeUnicode=xh}));var G=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.PathReservations=void 0;var f=p(411),m=H(),y=M(),b=process.env.TESTING_TAR_FAKE_PLATFORM||process.platform,v=b==="win32",Zh=e=>e.split("/").slice(0,-1).reduce(((e,p)=>{let m=e[e.length-1];return m!==void 0&&(p=(0,f.join)(m,p)),e.push(p||"/"),e}),[]),_=class{#e=new Map;#t=new Map;#i=new Set;reserve(e,p){e=v?["win32 parallelization disabled"]:e.map((e=>(0,y.stripTrailingSlashes)((0,f.join)((0,m.normalizeUnicode)(e)))));let b=new Set(e.map((e=>Zh(e))).reduce(((e,f)=>e.concat(f))));this.#t.set(p,{dirs:b,paths:e});for(let f of e){let e=this.#e.get(f);e?e.push(p):this.#e.set(f,[p])}for(let e of b){let f=this.#e.get(e);if(!f)this.#e.set(e,[new Set([p])]);else{let e=f[f.length-1];e instanceof Set?e.add(p):f.push(new Set([p]))}}return this.#s(p)}#r(e){let f=this.#t.get(e);if(!f)throw new Error("function does not have any path reservations");return{paths:f.paths.map((e=>this.#e.get(e))),dirs:[...f.dirs].map((e=>this.#e.get(e)))}}check(e){let{paths:f,dirs:p}=this.#r(e);return f.every((f=>f&&f[0]===e))&&p.every((f=>f&&f[0]instanceof Set&&f[0].has(e)))}#s(e){return this.#i.has(e)||!this.check(e)?!1:(this.#i.add(e),e((()=>this.#n(e))),!0)}#n(e){if(!this.#i.has(e))return!1;let f=this.#t.get(e);if(!f)throw new Error("invalid reservation");let{paths:p,dirs:m}=f,y=new Set;for(let f of p){let p=this.#e.get(f);if(!p||p?.[0]!==e)continue;let m=p[1];if(!m){this.#e.delete(f);continue}if(p.shift(),typeof m=="function")y.add(m);else for(let e of m)y.add(e)}for(let f of m){let p=this.#e.get(f),m=p?.[0];if(!(!p||!(m instanceof Set)))if(m.size===1&&p.length===1){this.#e.delete(f);continue}else if(m.size===1){p.shift();let e=p[0];typeof e=="function"&&y.add(e)}else m.delete(e)}return this.#i.delete(e),y.forEach((e=>this.#s(e))),!0}};e.PathReservations=_}));var Y=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.umask=void 0;var Gh=()=>process.umask();e.umask=Gh}));var $=d((e=>{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),m=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),b=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var y=s(e),b=0;b{if(!ye)return S.default.unlink(e,f);let p=e+".DELETE."+(0,g.randomBytes)(16).toString("hex");S.default.rename(e,p,(e=>{if(e)return f(e);S.default.unlink(p,f)}))},rl=e=>{if(!ye)return S.default.unlinkSync(e);let f=e+".DELETE."+(0,g.randomBytes)(16).toString("hex");S.default.renameSync(e,f),S.default.unlinkSync(f)},io=(e,f,p)=>e!==void 0&&e===e>>>0?e:f!==void 0&&f===f>>>0?f:p,_e=class extends M.Parser{[he]=!1;[pe]=!1;[ne]=0;reservations=new I.PathReservations;transform;writable=!0;readable=!1;uid;gid;setOwner;preserveOwner;processGid;processUid;maxDepth;forceChown;win32;newer;keep;noMtime;preservePaths;unlink;cwd;strip;processUmask;umask;dmode;fmode;chmod;constructor(e={}){if(e.ondone=()=>{this[he]=!0,this[le]()},super(e),this.transform=e.transform,this.chmod=!!e.chmod,typeof e.uid=="number"||typeof e.gid=="number"){if(typeof e.uid!="number"||typeof e.gid!="number")throw new TypeError("cannot set owner without number uid and gid");if(e.preserveOwner)throw new TypeError("cannot preserve owner in archive and also set owner explicitly");this.uid=e.uid,this.gid=e.gid,this.setOwner=!0}else this.uid=void 0,this.gid=void 0,this.setOwner=!1;e.preserveOwner===void 0&&typeof e.uid!="number"?this.preserveOwner=!!(process.getuid&&process.getuid()===0):this.preserveOwner=!!e.preserveOwner,this.processUid=(this.preserveOwner||this.setOwner)&&process.getuid?process.getuid():void 0,this.processGid=(this.preserveOwner||this.setOwner)&&process.getgid?process.getgid():void 0,this.maxDepth=typeof e.maxDepth=="number"?e.maxDepth:ve,this.forceChown=e.forceChown===!0,this.win32=!!e.win32||ye,this.newer=!!e.newer,this.keep=!!e.keep,this.noMtime=!!e.noMtime,this.preservePaths=!!e.preservePaths,this.unlink=!!e.unlink,this.cwd=(0,T.normalizeWindowsPath)(O.default.resolve(e.cwd||process.cwd())),this.strip=Number(e.strip)||0,this.processUmask=this.chmod?typeof e.processUmask=="number"?e.processUmask:(0,B.umask)():0,this.umask=typeof e.umask=="number"?e.umask:this.processUmask,this.dmode=e.dmode||511&~this.umask,this.fmode=e.fmode||438&~this.umask,this.on("entry",(e=>this[z](e)))}warn(e,f,p={}){return(e==="TAR_BAD_ARCHIVE"||e==="TAR_ABORT")&&(p.recoverable=!1),super.warn(e,f,p)}[le](){this[he]&&this[ne]===0&&(this.emit("prefinish"),this.emit("finish"),this.emit("end"))}[ie](e,f){let p=e[f],{type:m}=e;if(!p||this.preservePaths)return!0;let[y,b]=(0,x.stripAbsolutePath)(p),v=b.replace(/\\/g,"/").split("/");if(v.includes("..")||ye&&/^[a-z]:\.\.$/i.test(v[0]??"")){if(f==="path"||m==="Link")return this.warn("TAR_ENTRY_ERROR",`${f} contains '..'`,{entry:e,[f]:p}),!1;{let m=O.default.posix.dirname(e.path),y=O.default.posix.normalize(O.default.posix.join(m,v.join("/")));if(y.startsWith("../")||y==="..")return this.warn("TAR_ENTRY_ERROR",`${f} escapes extraction directory`,{entry:e,[f]:p}),!1}}return y&&(e[f]=String(b),this.warn("TAR_ENTRY_INFO",`stripping ${y} from absolute ${f}`,{entry:e,[f]:p})),!0}[te](e){let f=(0,T.normalizeWindowsPath)(e.path),p=f.split("/");if(this.strip){if(p.length=this.strip)e.linkpath=f.slice(this.strip).join("/");else return!1}p.splice(0,this.strip),e.path=p.join("/")}if(isFinite(this.maxDepth)&&p.length>this.maxDepth)return this.warn("TAR_ENTRY_ERROR","path excessively deep",{entry:e,path:f,depth:p.length,maxDepth:this.maxDepth}),!1;if(!this[ie](e,"path")||!this[ie](e,"linkpath"))return!1;if(O.default.isAbsolute(e.path)?e.absolute=(0,T.normalizeWindowsPath)(O.default.resolve(e.path)):e.absolute=(0,T.normalizeWindowsPath)(O.default.resolve(this.cwd,e.path)),!this.preservePaths&&typeof e.absolute=="string"&&e.absolute.indexOf(this.cwd+"/")!==0&&e.absolute!==this.cwd)return this.warn("TAR_ENTRY_ERROR","path escaped extraction target",{entry:e,path:(0,T.normalizeWindowsPath)(e.path),resolvedPath:e.absolute,cwd:this.cwd}),!1;if(e.absolute===this.cwd&&e.type!=="Directory"&&e.type!=="GNUDumpDir")return!1;if(this.win32){let{root:f}=O.default.win32.parse(String(e.absolute));e.absolute=f+L.encode(String(e.absolute).slice(f.length));let{root:p}=O.default.win32.parse(e.path);e.path=p+L.encode(e.path.slice(p.length))}return!0}[z](e){if(!this[te](e))return e.resume();switch(w.default.equal(typeof e.absolute,"string"),e.type){case"Directory":case"GNUDumpDir":e.mode&&(e.mode=e.mode|448);case"File":case"OldFile":case"ContiguousFile":case"Link":case"SymbolicLink":return this[j](e);default:return this[ee](e)}}[se](e,f){e.name==="CwdError"?this.emit("error",e):(this.warn("TAR_ENTRY_ERROR",e,{entry:f}),this[ae](),f.resume())}[re](e,f,p){(0,P.mkdir)((0,T.normalizeWindowsPath)(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:f},p)}[ue](e){return this.forceChown||this.preserveOwner&&(typeof e.uid=="number"&&e.uid!==this.processUid||typeof e.gid=="number"&&e.gid!==this.processGid)||typeof this.uid=="number"&&this.uid!==this.processUid||typeof this.gid=="number"&&this.gid!==this.processGid}[ce](e){return io(this.uid,e.uid,this.processUid)}[fe](e){return io(this.gid,e.gid,this.processGid)}[q](e,f){let p=typeof e.mode=="number"?e.mode&4095:this.fmode,m=new _.WriteStream(String(e.absolute),{flags:(0,R.getWriteFlag)(e.size),mode:p,autoClose:!1});m.on("error",(p=>{m.fd&&S.default.close(m.fd,(()=>{})),m.write=()=>!0,this[se](p,e),f()}));let y=1,o=p=>{if(p){m.fd&&S.default.close(m.fd,(()=>{})),this[se](p,e),f();return}--y===0&&m.fd!==void 0&&S.default.close(m.fd,(p=>{p?this[se](p,e):this[ae](),f()}))};m.on("finish",(()=>{let f=String(e.absolute),p=m.fd;if(typeof p=="number"&&e.mtime&&!this.noMtime){y++;let m=e.atime||new Date,b=e.mtime;S.default.futimes(p,m,b,(e=>e?S.default.utimes(f,m,b,(f=>o(f&&e))):o()))}if(typeof p=="number"&&this[ue](e)){y++;let m=this[ce](e),b=this[fe](e);typeof m=="number"&&typeof b=="number"&&S.default.fchown(p,m,b,(e=>e?S.default.chown(f,m,b,(f=>o(f&&e))):o()))}o()}));let b=this.transform&&this.transform(e)||e;b!==e&&(b.on("error",(p=>{this[se](p,e),f()})),e.pipe(b)),b.pipe(m)}[V](e,f){let p=typeof e.mode=="number"?e.mode&4095:this.dmode;this[re](String(e.absolute),p,(p=>{if(p){this[se](p,e),f();return}let m=1,o=()=>{--m===0&&(f(),this[ae](),e.resume())};e.mtime&&!this.noMtime&&(m++,S.default.utimes(String(e.absolute),e.atime||new Date,e.mtime,o)),this[ue](e)&&(m++,S.default.chown(String(e.absolute),Number(this[ce](e)),Number(this[fe](e)),o)),o()}))}[ee](e){e.unsupported=!0,this.warn("TAR_ENTRY_UNSUPPORTED",`unsupported entry type: ${e.type}`,{entry:e}),e.resume()}[X](e,f){let p=(0,T.normalizeWindowsPath)(O.default.relative(this.cwd,O.default.resolve(O.default.dirname(String(e.absolute)),String(e.linkpath)))).split("/");this[J](e,this.cwd,p,(()=>this[K](e,String(e.linkpath),"symlink",f)),(p=>{this[se](p,e),f()}))}[Q](e,f){let p=(0,T.normalizeWindowsPath)(O.default.resolve(this.cwd,String(e.linkpath))),m=(0,T.normalizeWindowsPath)(String(e.linkpath)).split("/");this[J](e,this.cwd,m,(()=>this[K](e,p,"link",f)),(p=>{this[se](p,e),f()}))}[J](e,f,p,m,y){let b=p.shift();if(this.preservePaths||b===void 0)return m();let v=O.default.resolve(f,b);S.default.lstat(v,((f,b)=>{if(f)return m();if(b?.isSymbolicLink())return y(new F.SymlinkError(v,O.default.resolve(v,p.join("/"))));this[J](e,v,p,m,y)}))}[oe](){this[ne]++}[ae](){this[ne]--,this[le]()}[de](e){this[ae](),e.resume()}[H](e,f){return e.type==="File"&&!this.unlink&&f.isFile()&&f.nlink<=1&&!ye}[j](e){this[oe]();let f=[e.path];e.linkpath&&f.push(e.linkpath),this.reservations.reserve(f,(f=>this[U](e,f)))}[U](e,f){let i=e=>{f(e)},r=()=>{this[re](this.cwd,this.dmode,(f=>{if(f){this[se](f,e),i();return}this[pe]=!0,n()}))},n=()=>{if(e.absolute!==this.cwd){let f=(0,T.normalizeWindowsPath)(O.default.dirname(String(e.absolute)));if(f!==this.cwd)return this[re](f,this.dmode,(f=>{if(f){this[se](f,e),i();return}o()}))}o()},o=()=>{S.default.lstat(String(e.absolute),((f,p)=>{if(p&&(this.keep||this.newer&&p.mtime>(e.mtime??p.mtime))){this[de](e),i();return}if(f||this[H](e,p))return this[$](null,e,i);if(p.isDirectory()){if(e.type==="Directory"){let f=this.chmod&&e.mode&&(p.mode&4095)!==e.mode,u=f=>this[$](f??null,e,i);return f?S.default.chmod(String(e.absolute),Number(e.mode),u):u()}if(e.absolute!==this.cwd)return S.default.rmdir(String(e.absolute),(f=>this[$](f??null,e,i)))}if(e.absolute===this.cwd)return this[$](null,e,i);sl(String(e.absolute),(f=>this[$](f??null,e,i)))}))};this[pe]?n():r()}[$](e,f,p){if(e){this[se](e,f),p();return}switch(f.type){case"File":case"OldFile":case"ContiguousFile":return this[q](f,p);case"Link":return this[Q](f,p);case"SymbolicLink":return this[X](f,p);case"Directory":case"GNUDumpDir":return this[V](f,p)}}[K](e,f,p,m){S.default[p](f,String(e.absolute),(f=>{f?this[se](f,e):(this[ae](),e.resume()),m()}))}};e.Unpack=_e;var Nt=e=>{try{return[null,e()]}catch(e){return[e,null]}},we=class extends _e{sync=!0;[$](e,f){return super[$](e,f,(()=>{}))}[j](e){if(!this[pe]){let f=this[re](this.cwd,this.dmode);if(f)return this[se](f,e);this[pe]=!0}if(e.absolute!==this.cwd){let f=(0,T.normalizeWindowsPath)(O.default.dirname(String(e.absolute)));if(f!==this.cwd){let p=this[re](f,this.dmode);if(p)return this[se](p,e)}}let[f,p]=Nt((()=>S.default.lstatSync(String(e.absolute))));if(p&&(this.keep||this.newer&&p.mtime>(e.mtime??p.mtime)))return this[de](e);if(f||this[H](e,p))return this[$](null,e);if(p.isDirectory()){if(e.type==="Directory"){let f=this.chmod&&e.mode&&(p.mode&4095)!==e.mode,[m]=f?Nt((()=>{S.default.chmodSync(String(e.absolute),Number(e.mode))})):[];return this[$](m,e)}let[f]=Nt((()=>S.default.rmdirSync(String(e.absolute))));this[$](f,e)}let[m]=e.absolute===this.cwd?[]:Nt((()=>rl(String(e.absolute))));this[$](m,e)}[q](e,f){let p=typeof e.mode=="number"?e.mode&4095:this.fmode,r=p=>{let y;try{S.default.closeSync(m)}catch(e){y=e}(p||y)&&this[se](p||y,e),f()},m;try{m=S.default.openSync(String(e.absolute),(0,R.getWriteFlag)(e.size),p)}catch(e){return r(e)}let y=this.transform&&this.transform(e)||e;y!==e&&(y.on("error",(f=>this[se](f,e))),e.pipe(y)),y.on("data",(e=>{try{S.default.writeSync(m,e,0,e.length)}catch(e){r(e)}})),y.on("end",(()=>{let f=null;if(e.mtime&&!this.noMtime){let p=e.atime||new Date,y=e.mtime;try{S.default.futimesSync(m,p,y)}catch(m){try{S.default.utimesSync(String(e.absolute),p,y)}catch{f=m}}}if(this[ue](e)){let p=this[ce](e),y=this[fe](e);try{S.default.fchownSync(m,Number(p),Number(y))}catch(m){try{S.default.chownSync(String(e.absolute),Number(p),Number(y))}catch{f=f||m}}}r(f)}))}[V](e,f){let p=typeof e.mode=="number"?e.mode&4095:this.dmode,m=this[re](String(e.absolute),p);if(m){this[se](m,e),f();return}if(e.mtime&&!this.noMtime)try{S.default.utimesSync(String(e.absolute),e.atime||new Date,e.mtime)}catch{}if(this[ue](e))try{S.default.chownSync(String(e.absolute),Number(this[ce](e)),Number(this[fe](e)))}catch{}f(),e.resume()}[re](e,f){try{return(0,P.mkdirSync)((0,T.normalizeWindowsPath)(e),{uid:this.uid,gid:this.gid,processUid:this.processUid,processGid:this.processGid,umask:this.processUmask,preserve:this.preservePaths,unlink:this.unlink,cwd:this.cwd,mode:f})}catch(e){return e}}[J](e,f,p,m,y){if(this.preservePaths||!p.length)return m();let b=f;for(let e of p){b=O.default.resolve(b,e);let[v,_]=Nt((()=>S.default.lstatSync(b)));if(v)return m();if(_.isSymbolicLink())return y(new F.SymlinkError(b,O.default.resolve(f,p.join("/"))))}m()}[K](e,f,p,m){let y=`${p}Sync`;try{S.default[y](f,String(e.absolute)),m(),e.resume()}catch(f){return this[se](f,e)}}};e.UnpackSync=we}));var q=d((e=>{"use strict";var f=e&&e.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),m=e&&e.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),b=e&&e.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var p={};if(e!=null)for(var y=s(e),b=0;b{let f=new R.UnpackSync(e),p=e.file,m=g.default.statSync(p),y=e.maxReadSize||16*1024*1024;new w.ReadStreamSync(p,{readSize:y,size:m.size}).pipe(f)},fl=(e,f)=>{let p=new R.Unpack(e),m=e.maxReadSize||16*1024*1024,y=e.file;return new Promise(((e,f)=>{p.on("error",f),p.on("close",e),g.default.stat(y,((e,b)=>{if(e)f(e);else{let e=new w.ReadStream(y,{readSize:m,size:b.size});e.on("error",f),e.pipe(p)}}))}))};e.extract=(0,O.makeCommand)(cl,fl,(e=>new R.UnpackSync(e)),(e=>new R.Unpack(e)),((e,f)=>{f?.length&&(0,S.filesFilter)(e,f)}))}));var V=d((e=>{"use strict";var f=e&&e.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0});e.replace=void 0;var m=y(),_=f(p(561)),w=f(p(411)),g=O(),S=x(),R=v(),k=b(),P=B(),pl=(e,f)=>{let p=new P.PackSync(e),m=!0,y,b;try{try{y=_.default.openSync(e.file,"r+")}catch(f){if(f?.code==="ENOENT")y=_.default.openSync(e.file,"w+");else throw f}let v=_.default.fstatSync(y),w=Buffer.alloc(512);e:for(b=0;bv.size)break;b+=p,e.mtimeCache&&f.mtime&&e.mtimeCache.set(String(f.path),f.mtime)}m=!1,_l(e,p,b,y,f)}finally{if(m)try{_.default.closeSync(y)}catch{}}},_l=(e,f,p,y,b)=>{let v=new m.WriteStreamSync(e.file,{fd:y,start:p});f.pipe(v),yl(f,b)},wl=(e,f)=>{f=Array.from(f);let p=new P.Pack(e),i=(f,p,m)=>{let h=(e,p)=>{e?_.default.close(f,(f=>m(e))):m(null,p)},y=0;if(p===0)return h(null,0);let b=0,v=Buffer.alloc(512),E=(m,w)=>{if(m||typeof w>"u")return h(m);if(b+=w,b<512&&w)return _.default.read(f,v,b,v.length-b,y+b,E);if(y===0&&v[0]===31&&v[1]===139)return h(new Error("cannot append to compressed archives"));if(b<512)return h(null,y);let S=new g.Header(v);if(!S.cksumValid)return h(null,y);let O=512*Math.ceil((S.size??0)/512);if(y+O+512>p||(y+=O+512,y>=p))return h(null,y);e.mtimeCache&&S.mtime&&e.mtimeCache.set(String(S.path),S.mtime),b=0,_.default.read(f,v,0,512,y,E)};_.default.read(f,v,0,512,y,E)};return new Promise(((y,b)=>{p.on("error",b);let v="r+",h=(w,g)=>{if(w&&w.code==="ENOENT"&&v==="r+")return v="w+",_.default.open(e.file,v,h);if(w||!g)return b(w);_.default.fstat(g,((v,w)=>{if(v)return _.default.close(g,(()=>b(v)));i(g,w.size,((v,_)=>{if(v)return b(v);let w=new m.WriteStream(e.file,{fd:g,start:_});p.pipe(w),w.on("error",b),w.on("close",y),El(p,f)}))}))};_.default.open(e.file,v,h)}))},yl=(e,f)=>{f.forEach((f=>{f.charAt(0)==="@"?(0,S.list)({file:w.default.resolve(e.cwd,f.slice(1)),sync:!0,noResume:!0,onReadEntry:f=>e.add(f)}):e.add(f)})),e.end()},El=async(e,f)=>{for(let p=0;pe.add(f)}):e.add(m)}e.end()};e.replace=(0,R.makeCommand)(pl,wl,(()=>{throw new TypeError("file is required")}),(()=>{throw new TypeError("file is required")}),((e,f)=>{if(!(0,k.isFile)(e))throw new TypeError("file is required");if(e.gzip||e.brotli||e.zstd||e.file.endsWith(".br")||e.file.endsWith(".tbr"))throw new TypeError("cannot append to compressed archives");if(!f?.length)throw new TypeError("no paths specified to add/replace")}))}));var K=d((e=>{"use strict";Object.defineProperty(e,"__esModule",{value:!0});e.update=void 0;var f=v(),p=V();e.update=(0,f.makeCommand)(p.replace.syncFile,p.replace.asyncFile,p.replace.syncNoFile,p.replace.asyncNoFile,((e,f=[])=>{p.replace.validate?.(e,f),Sl(e)}));var Sl=e=>{let f=e.filter;e.mtimeCache||(e.mtimeCache=new Map),e.filter=f?(p,m)=>f(p,m)&&!((e.mtimeCache?.get(p)??m.mtime??0)>(m.mtime??0)):(f,p)=>!((e.mtimeCache?.get(f)??p.mtime??0)>(p.mtime??0))}}));var X=f&&f.__createBinding||(Object.create?function(e,f,p,m){m===void 0&&(m=p);var y=Object.getOwnPropertyDescriptor(f,p);(!y||("get"in y?!f.__esModule:y.writable||y.configurable))&&(y={enumerable:!0,get:function(){return f[p]}}),Object.defineProperty(e,m,y)}:function(e,f,p,m){m===void 0&&(m=p),e[m]=f[p]}),Q=f&&f.__setModuleDefault||(Object.create?function(e,f){Object.defineProperty(e,"default",{enumerable:!0,value:f})}:function(e,f){e.default=f}),J=f&&f.__exportStar||function(e,f){for(var p in e)p!=="default"&&!Object.prototype.hasOwnProperty.call(f,p)&&X(f,e,p)},ee=f&&f.__importStar||function(){var s=function(e){return s=Object.getOwnPropertyNames||function(e){var f=[];for(var p in e)Object.prototype.hasOwnProperty.call(e,p)&&(f[f.length]=p);return f},s(e)};return function(e){if(e&&e.__esModule)return e;var f={};if(e!=null)for(var p=s(e),m=0;m{var r={286:r=>{r.exports=function(r,e){if(!e)e={};var n=e.hsep===undefined?" ":e.hsep;var t=e.align||[];var a=e.stringLength||function(r){return String(r).length};var i=reduce(r,(function(r,e){forEach(e,(function(e,n){var t=dotindex(e);if(!r[n]||t>r[n])r[n]=t}));return r}),[]);var u=map(r,(function(r){return map(r,(function(r,e){var n=String(r);if(t[e]==="."){var u=dotindex(n);var f=i[e]+(/\./.test(n)?1:2)-(a(n)-u);return n+Array(f).join(" ")}else return n}))}));var f=reduce(u,(function(r,e){forEach(e,(function(e,n){var t=a(e);if(!r[n]||t>r[n])r[n]=t}));return r}),[]);return map(u,(function(r){return map(r,(function(r,e){var n=f[e]-a(r)||0;var i=Array(Math.max(n+1,1)).join(" ");if(t[e]==="r"||t[e]==="."){return i+r}if(t[e]==="c"){return Array(Math.ceil(n/2+1)).join(" ")+r+Array(Math.floor(n/2+1)).join(" ")}return r+i})).join(n).replace(/\s+$/,"")})).join("\n")};function dotindex(r){var e=/\.[^.]*$/.exec(r);return e?e.index+1:r.length}function reduce(r,e,n){if(r.reduce)return r.reduce(e,n);var t=0;var a=arguments.length>=3?n:r[t++];for(;t=0){e._idleTimeoutId=setTimeout((function onTimeout(){if(e._onTimeout)e._onTimeout()}),t)}};i(505);t.setImmediate=typeof self!=="undefined"&&self.setImmediate||typeof global!=="undefined"&&global.setImmediate||this&&this.setImmediate;t.clearImmediate=typeof self!=="undefined"&&self.clearImmediate||typeof global!=="undefined"&&global.clearImmediate||this&&this.clearImmediate},505:function(e){"use strict";e.exports=require("next/dist/compiled/setimmediate")}};var t={};function __nccwpck_require__(i){var o=t[i];if(o!==undefined){return o.exports}var n=t[i]={exports:{}};var r=true;try{e[i].call(n.exports,n,n.exports,__nccwpck_require__);r=false}finally{if(r)delete t[i]}return n.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i=__nccwpck_require__(845);module.exports=i})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/timers-browserify/package.json b/cli/app/node_modules/next/dist/compiled/timers-browserify/package.json new file mode 100644 index 00000000000..345929ad834 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/timers-browserify/package.json @@ -0,0 +1 @@ +{"name":"timers-browserify","main":"main.js","author":"J. Ryan Stinnett (https://convolv.es/)","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/tty-browserify/index.js b/cli/app/node_modules/next/dist/compiled/tty-browserify/index.js new file mode 100644 index 00000000000..4ccd6173f12 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/tty-browserify/index.js @@ -0,0 +1 @@ +(function(){if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var e={};!function(){var t=e;t.isatty=function(){return false};function ReadStream(){throw new Error("tty.ReadStream is not implemented")}t.ReadStream=ReadStream;function WriteStream(){throw new Error("tty.WriteStream is not implemented")}t.WriteStream=WriteStream}();module.exports=e})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/tty-browserify/package.json b/cli/app/node_modules/next/dist/compiled/tty-browserify/package.json new file mode 100644 index 00000000000..784c994c611 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/tty-browserify/package.json @@ -0,0 +1 @@ +{"name":"tty-browserify","main":"index.js","author":{"name":"James Halliday","email":"mail@substack.net","url":"http://substack.net"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/unistore/package.json b/cli/app/node_modules/next/dist/compiled/unistore/package.json new file mode 100644 index 00000000000..06308734a3e --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/unistore/package.json @@ -0,0 +1 @@ +{"name":"unistore","main":"unistore.js","author":"Jason Miller ","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/unistore/unistore.js b/cli/app/node_modules/next/dist/compiled/unistore/unistore.js new file mode 100644 index 00000000000..8a9aad36131 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/unistore/unistore.js @@ -0,0 +1 @@ +(()=>{var t={882:t=>{function n(t,i){for(var _ in i)t[_]=i[_];return t}t.exports=function(t){var i=[];function u(t){for(var _=[],a=0;a-1){return o(e)}return e}},9042:function(r,t,e){"use strict";var n=e(3143);var o=e(446);var i=e(7152);var a=e(9905);r.exports=function callBind(r){var t=i(arguments);var e=r.length-(arguments.length-1);return n(t,1+(e>0?e:0),true)};if(o){o(r.exports,"apply",{value:a})}else{r.exports.apply=a}},819:function(r,t,e){"use strict";var n=e(446);var o=e(5182);var i=e(8202);var a=e(3990);r.exports=function defineDataProperty(r,t,e){if(!r||typeof r!=="object"&&typeof r!=="function"){throw new i("`obj` must be an object or a function`")}if(typeof t!=="string"&&typeof t!=="symbol"){throw new i("`property` must be a string or a symbol`")}if(arguments.length>3&&typeof arguments[3]!=="boolean"&&arguments[3]!==null){throw new i("`nonEnumerable`, if provided, must be a boolean or null")}if(arguments.length>4&&typeof arguments[4]!=="boolean"&&arguments[4]!==null){throw new i("`nonWritable`, if provided, must be a boolean or null")}if(arguments.length>5&&typeof arguments[5]!=="boolean"&&arguments[5]!==null){throw new i("`nonConfigurable`, if provided, must be a boolean or null")}if(arguments.length>6&&typeof arguments[6]!=="boolean"){throw new i("`loose`, if provided, must be a boolean")}var f=arguments.length>3?arguments[3]:null;var u=arguments.length>4?arguments[4]:null;var s=arguments.length>5?arguments[5]:null;var c=arguments.length>6?arguments[6]:false;var p=!!a&&a(r,t);if(n){n(r,t,{configurable:s===null&&p?p.configurable:!s,enumerable:f===null&&p?p.enumerable:!f,value:e,writable:u===null&&p?p.writable:!u})}else if(c||!f&&!u&&!s){r[t]=e}else{throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}}},6211:function(r,t,e){"use strict";var n=e(7152);var o=e(3990);var i;try{i=[].__proto__===Array.prototype}catch(r){if(!r||typeof r!=="object"||!("code"in r)||r.code!=="ERR_PROTO_ACCESS"){throw r}}var a=!!i&&o&&o(Object.prototype,"__proto__");var f=Object;var u=f.getPrototypeOf;r.exports=a&&typeof a.get==="function"?n([a.get]):typeof u==="function"?function getDunder(r){return u(r==null?r:f(r))}:false},446:function(r){"use strict";var t=Object.defineProperty||false;if(t){try{t({},"a",{value:1})}catch(r){t=false}}r.exports=t},7181:function(r){"use strict";r.exports=EvalError},1545:function(r){"use strict";r.exports=Error},22:function(r){"use strict";r.exports=RangeError},2803:function(r){"use strict";r.exports=ReferenceError},5182:function(r){"use strict";r.exports=SyntaxError},8202:function(r){"use strict";r.exports=TypeError},3284:function(r){"use strict";r.exports=URIError},2811:function(r){"use strict";r.exports=Object},6144:function(r){var t=Object.prototype.hasOwnProperty;var e=Object.prototype.toString;r.exports=function forEach(r,n,o){if(e.call(n)!=="[object Function]"){throw new TypeError("iterator must be a function")}var i=r.length;if(i===+i){for(var a=0;a1&&typeof t!=="boolean"){throw new c('"allowMissing" argument must be a boolean')}if(C(/^%?[^%]*%?$/,r)===null){throw new s("`%` may not be present anywhere but at the beginning and end of the intrinsic name")}var e=$(r);var o=e.length>0?e[0]:"";var i=J("%"+o+"%",t);var a=i.name;var f=i.value;var u=false;var p=i.alias;if(p){o=p[0];N(e,R([0,1],p))}for(var y=1,l=true;y=e.length){var d=S(f,g);l=!!d;if(l&&"get"in d&&!("originalValue"in d.get)){f=d.get}else{f=f[g]}}else{l=D(f,g);f=f[g]}if(l&&!u){k[a]=f}}}return f}},7823:function(r,t,e){"use strict";var n=e(2811);r.exports=n.getPrototypeOf||null},7904:function(r){"use strict";r.exports=typeof Reflect!=="undefined"&&Reflect.getPrototypeOf||null},699:function(r,t,e){"use strict";var n=e(7904);var o=e(7823);var i=e(6211);r.exports=n?function getProto(r){return n(r)}:o?function getProto(r){if(!r||typeof r!=="object"&&typeof r!=="function"){throw new TypeError("getProto: not an object")}return o(r)}:i?function getProto(r){return i(r)}:null},4596:function(r){"use strict";r.exports=Object.getOwnPropertyDescriptor},3990:function(r,t,e){"use strict";var n=e(4596);if(n){try{n([],"length")}catch(r){n=null}}r.exports=n},7122:function(r,t,e){"use strict";var n=e(446);var o=function hasPropertyDescriptors(){return!!n};o.hasArrayLengthDefineBug=function hasArrayLengthDefineBug(){if(!n){return null}try{return n([],"length",{value:1}).length!==1}catch(r){return true}};r.exports=o},9942:function(r,t,e){"use strict";var n=typeof Symbol!=="undefined"&&Symbol;var o=e(3773);r.exports=function hasNativeSymbols(){if(typeof n!=="function"){return false}if(typeof Symbol!=="function"){return false}if(typeof n("foo")!=="symbol"){return false}if(typeof Symbol("bar")!=="symbol"){return false}return o()}},3773:function(r){"use strict";r.exports=function hasSymbols(){if(typeof Symbol!=="function"||typeof Object.getOwnPropertySymbols!=="function"){return false}if(typeof Symbol.iterator==="symbol"){return true}var r={};var t=Symbol("test");var e=Object(t);if(typeof t==="string"){return false}if(Object.prototype.toString.call(t)!=="[object Symbol]"){return false}if(Object.prototype.toString.call(e)!=="[object Symbol]"){return false}var n=42;r[t]=n;for(t in r){return false}if(typeof Object.keys==="function"&&Object.keys(r).length!==0){return false}if(typeof Object.getOwnPropertyNames==="function"&&Object.getOwnPropertyNames(r).length!==0){return false}var o=Object.getOwnPropertySymbols(r);if(o.length!==1||o[0]!==t){return false}if(!Object.prototype.propertyIsEnumerable.call(r,t)){return false}if(typeof Object.getOwnPropertyDescriptor==="function"){var i=Object.getOwnPropertyDescriptor(r,t);if(i.value!==n||i.enumerable!==true){return false}}return true}},4871:function(r,t,e){"use strict";var n=typeof Symbol!=="undefined"&&Symbol;var o=e(5960);r.exports=function hasNativeSymbols(){if(typeof n!=="function"){return false}if(typeof Symbol!=="function"){return false}if(typeof n("foo")!=="symbol"){return false}if(typeof Symbol("bar")!=="symbol"){return false}return o()}},5960:function(r){"use strict";r.exports=function hasSymbols(){if(typeof Symbol!=="function"||typeof Object.getOwnPropertySymbols!=="function"){return false}if(typeof Symbol.iterator==="symbol"){return true}var r={};var t=Symbol("test");var e=Object(t);if(typeof t==="string"){return false}if(Object.prototype.toString.call(t)!=="[object Symbol]"){return false}if(Object.prototype.toString.call(e)!=="[object Symbol]"){return false}var n=42;r[t]=n;for(var o in r){return false}if(typeof Object.keys==="function"&&Object.keys(r).length!==0){return false}if(typeof Object.getOwnPropertyNames==="function"&&Object.getOwnPropertyNames(r).length!==0){return false}var i=Object.getOwnPropertySymbols(r);if(i.length!==1||i[0]!==t){return false}if(!Object.prototype.propertyIsEnumerable.call(r,t)){return false}if(typeof Object.getOwnPropertyDescriptor==="function"){var a=Object.getOwnPropertyDescriptor(r,t);if(a.value!==n||a.enumerable!==true){return false}}return true}},3270:function(r,t,e){"use strict";var n=Function.prototype.call;var o=Object.prototype.hasOwnProperty;var i=e(1212);r.exports=i.call(n,o)},3782:function(r){if(typeof Object.create==="function"){r.exports=function inherits(r,t){if(t){r.super_=t;r.prototype=Object.create(t.prototype,{constructor:{value:r,enumerable:false,writable:true,configurable:true}})}}}else{r.exports=function inherits(r,t){if(t){r.super_=t;var TempCtor=function(){};TempCtor.prototype=t.prototype;r.prototype=new TempCtor;r.prototype.constructor=r}}}},5157:function(r){"use strict";var t=typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol";var e=Object.prototype.toString;var n=function isArguments(r){if(t&&r&&typeof r==="object"&&Symbol.toStringTag in r){return false}return e.call(r)==="[object Arguments]"};var o=function isArguments(r){if(n(r)){return true}return r!==null&&typeof r==="object"&&typeof r.length==="number"&&r.length>=0&&e.call(r)!=="[object Array]"&&e.call(r.callee)==="[object Function]"};var i=function(){return n(arguments)}();n.isLegacyArguments=o;r.exports=i?n:o},3391:function(r){"use strict";var t=Object.prototype.toString;var e=Function.prototype.toString;var n=/^\s*(?:function)?\*/;var o=typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol";var i=Object.getPrototypeOf;var getGeneratorFunc=function(){if(!o){return false}try{return Function("return function*() {}")()}catch(r){}};var a=getGeneratorFunc();var f=a?i(a):{};r.exports=function isGeneratorFunction(r){if(typeof r!=="function"){return false}if(n.test(e.call(r))){return true}if(!o){var a=t.call(r);return a==="[object GeneratorFunction]"}return i(r)===f}},994:function(r,t,e){"use strict";var n=e(6144);var o=e(1349);var i=e(516);var a=i("Object.prototype.toString");var f=e(9942)();var u=f&&typeof Symbol.toStringTag==="symbol";var s=o();var c=i("Array.prototype.indexOf",true)||function indexOf(r,t){for(var e=0;e-1}if(!l){return false}return v(r)}},7173:function(r){"use strict";r.exports=Math.abs},847:function(r){"use strict";r.exports=Math.floor},219:function(r){"use strict";r.exports=Number.isNaN||function isNaN(r){return r!==r}},2916:function(r){"use strict";r.exports=Math.max},9882:function(r){"use strict";r.exports=Math.min},3291:function(r){"use strict";r.exports=Math.pow},553:function(r){"use strict";r.exports=Math.round},8629:function(r,t,e){"use strict";var n=e(219);r.exports=function sign(r){if(n(r)||r===0){return r}return r<0?-1:+1}},3143:function(r,t,e){"use strict";var n=e(3197);var o=e(819);var i=e(7122)();var a=e(3990);var f=e(8202);var u=n("%Math.floor%");r.exports=function setFunctionLength(r,t){if(typeof r!=="function"){throw new f("`fn` is not a function")}if(typeof t!=="number"||t<0||t>4294967295||u(t)!==t){throw new f("`length` must be a positive 32-bit integer")}var e=arguments.length>2&&!!arguments[2];var n=true;var s=true;if("length"in r&&a){var c=a(r,"length");if(c&&!c.configurable){n=false}if(c&&!c.writable){s=false}}if(n||s||!e){if(i){o(r,"length",t,true,true)}else{o(r,"length",t)}}return r}},2369:function(r){r.exports=function isBuffer(r){return r instanceof Buffer}},5584:function(r,t,e){"use strict";var n=e(5157);var o=e(3391);var i=e(1490);var a=e(994);function uncurryThis(r){return r.call.bind(r)}var f=typeof BigInt!=="undefined";var u=typeof Symbol!=="undefined";var s=uncurryThis(Object.prototype.toString);var c=uncurryThis(Number.prototype.valueOf);var p=uncurryThis(String.prototype.valueOf);var y=uncurryThis(Boolean.prototype.valueOf);if(f){var l=uncurryThis(BigInt.prototype.valueOf)}if(u){var g=uncurryThis(Symbol.prototype.valueOf)}function checkBoxedPrimitive(r,t){if(typeof r!=="object"){return false}try{t(r);return true}catch(r){return false}}t.isArgumentsObject=n;t.isGeneratorFunction=o;t.isTypedArray=a;function isPromise(r){return typeof Promise!=="undefined"&&r instanceof Promise||r!==null&&typeof r==="object"&&typeof r.then==="function"&&typeof r.catch==="function"}t.isPromise=isPromise;function isArrayBufferView(r){if(typeof ArrayBuffer!=="undefined"&&ArrayBuffer.isView){return ArrayBuffer.isView(r)}return a(r)||isDataView(r)}t.isArrayBufferView=isArrayBufferView;function isUint8Array(r){return i(r)==="Uint8Array"}t.isUint8Array=isUint8Array;function isUint8ClampedArray(r){return i(r)==="Uint8ClampedArray"}t.isUint8ClampedArray=isUint8ClampedArray;function isUint16Array(r){return i(r)==="Uint16Array"}t.isUint16Array=isUint16Array;function isUint32Array(r){return i(r)==="Uint32Array"}t.isUint32Array=isUint32Array;function isInt8Array(r){return i(r)==="Int8Array"}t.isInt8Array=isInt8Array;function isInt16Array(r){return i(r)==="Int16Array"}t.isInt16Array=isInt16Array;function isInt32Array(r){return i(r)==="Int32Array"}t.isInt32Array=isInt32Array;function isFloat32Array(r){return i(r)==="Float32Array"}t.isFloat32Array=isFloat32Array;function isFloat64Array(r){return i(r)==="Float64Array"}t.isFloat64Array=isFloat64Array;function isBigInt64Array(r){return i(r)==="BigInt64Array"}t.isBigInt64Array=isBigInt64Array;function isBigUint64Array(r){return i(r)==="BigUint64Array"}t.isBigUint64Array=isBigUint64Array;function isMapToString(r){return s(r)==="[object Map]"}isMapToString.working=typeof Map!=="undefined"&&isMapToString(new Map);function isMap(r){if(typeof Map==="undefined"){return false}return isMapToString.working?isMapToString(r):r instanceof Map}t.isMap=isMap;function isSetToString(r){return s(r)==="[object Set]"}isSetToString.working=typeof Set!=="undefined"&&isSetToString(new Set);function isSet(r){if(typeof Set==="undefined"){return false}return isSetToString.working?isSetToString(r):r instanceof Set}t.isSet=isSet;function isWeakMapToString(r){return s(r)==="[object WeakMap]"}isWeakMapToString.working=typeof WeakMap!=="undefined"&&isWeakMapToString(new WeakMap);function isWeakMap(r){if(typeof WeakMap==="undefined"){return false}return isWeakMapToString.working?isWeakMapToString(r):r instanceof WeakMap}t.isWeakMap=isWeakMap;function isWeakSetToString(r){return s(r)==="[object WeakSet]"}isWeakSetToString.working=typeof WeakSet!=="undefined"&&isWeakSetToString(new WeakSet);function isWeakSet(r){return isWeakSetToString(r)}t.isWeakSet=isWeakSet;function isArrayBufferToString(r){return s(r)==="[object ArrayBuffer]"}isArrayBufferToString.working=typeof ArrayBuffer!=="undefined"&&isArrayBufferToString(new ArrayBuffer);function isArrayBuffer(r){if(typeof ArrayBuffer==="undefined"){return false}return isArrayBufferToString.working?isArrayBufferToString(r):r instanceof ArrayBuffer}t.isArrayBuffer=isArrayBuffer;function isDataViewToString(r){return s(r)==="[object DataView]"}isDataViewToString.working=typeof ArrayBuffer!=="undefined"&&typeof DataView!=="undefined"&&isDataViewToString(new DataView(new ArrayBuffer(1),0,1));function isDataView(r){if(typeof DataView==="undefined"){return false}return isDataViewToString.working?isDataViewToString(r):r instanceof DataView}t.isDataView=isDataView;var v=typeof SharedArrayBuffer!=="undefined"?SharedArrayBuffer:undefined;function isSharedArrayBufferToString(r){return s(r)==="[object SharedArrayBuffer]"}function isSharedArrayBuffer(r){if(typeof v==="undefined"){return false}if(typeof isSharedArrayBufferToString.working==="undefined"){isSharedArrayBufferToString.working=isSharedArrayBufferToString(new v)}return isSharedArrayBufferToString.working?isSharedArrayBufferToString(r):r instanceof v}t.isSharedArrayBuffer=isSharedArrayBuffer;function isAsyncFunction(r){return s(r)==="[object AsyncFunction]"}t.isAsyncFunction=isAsyncFunction;function isMapIterator(r){return s(r)==="[object Map Iterator]"}t.isMapIterator=isMapIterator;function isSetIterator(r){return s(r)==="[object Set Iterator]"}t.isSetIterator=isSetIterator;function isGeneratorObject(r){return s(r)==="[object Generator]"}t.isGeneratorObject=isGeneratorObject;function isWebAssemblyCompiledModule(r){return s(r)==="[object WebAssembly.Module]"}t.isWebAssemblyCompiledModule=isWebAssemblyCompiledModule;function isNumberObject(r){return checkBoxedPrimitive(r,c)}t.isNumberObject=isNumberObject;function isStringObject(r){return checkBoxedPrimitive(r,p)}t.isStringObject=isStringObject;function isBooleanObject(r){return checkBoxedPrimitive(r,y)}t.isBooleanObject=isBooleanObject;function isBigIntObject(r){return f&&checkBoxedPrimitive(r,l)}t.isBigIntObject=isBigIntObject;function isSymbolObject(r){return u&&checkBoxedPrimitive(r,g)}t.isSymbolObject=isSymbolObject;function isBoxedPrimitive(r){return isNumberObject(r)||isStringObject(r)||isBooleanObject(r)||isBigIntObject(r)||isSymbolObject(r)}t.isBoxedPrimitive=isBoxedPrimitive;function isAnyArrayBuffer(r){return typeof Uint8Array!=="undefined"&&(isArrayBuffer(r)||isSharedArrayBuffer(r))}t.isAnyArrayBuffer=isAnyArrayBuffer;["isProxy","isExternal","isModuleNamespaceObject"].forEach((function(r){Object.defineProperty(t,r,{enumerable:false,value:function(){throw new Error(r+" is not supported in userland")}})}))},8177:function(r,t,e){var n=Object.getOwnPropertyDescriptors||function getOwnPropertyDescriptors(r){var t=Object.keys(r);var e={};for(var n=0;n=i)return r;switch(r){case"%s":return String(n[e++]);case"%d":return Number(n[e++]);case"%j":try{return JSON.stringify(n[e++])}catch(r){return"[Circular]"}default:return r}}));for(var f=n[e];e=3)n.depth=arguments[2];if(arguments.length>=4)n.colors=arguments[3];if(isBoolean(e)){n.showHidden=e}else if(e){t._extend(n,e)}if(isUndefined(n.showHidden))n.showHidden=false;if(isUndefined(n.depth))n.depth=2;if(isUndefined(n.colors))n.colors=false;if(isUndefined(n.customInspect))n.customInspect=true;if(n.colors)n.stylize=stylizeWithColor;return formatValue(n,r,n.depth)}t.inspect=inspect;inspect.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]};inspect.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"};function stylizeWithColor(r,t){var e=inspect.styles[t];if(e){return"["+inspect.colors[e][0]+"m"+r+"["+inspect.colors[e][1]+"m"}else{return r}}function stylizeNoColor(r,t){return r}function arrayToHash(r){var t={};r.forEach((function(r,e){t[r]=true}));return t}function formatValue(r,e,n){if(r.customInspect&&e&&isFunction(e.inspect)&&e.inspect!==t.inspect&&!(e.constructor&&e.constructor.prototype===e)){var o=e.inspect(n,r);if(!isString(o)){o=formatValue(r,o,n)}return o}var i=formatPrimitive(r,e);if(i){return i}var a=Object.keys(e);var f=arrayToHash(a);if(r.showHidden){a=Object.getOwnPropertyNames(e)}if(isError(e)&&(a.indexOf("message")>=0||a.indexOf("description")>=0)){return formatError(e)}if(a.length===0){if(isFunction(e)){var u=e.name?": "+e.name:"";return r.stylize("[Function"+u+"]","special")}if(isRegExp(e)){return r.stylize(RegExp.prototype.toString.call(e),"regexp")}if(isDate(e)){return r.stylize(Date.prototype.toString.call(e),"date")}if(isError(e)){return formatError(e)}}var s="",c=false,p=["{","}"];if(isArray(e)){c=true;p=["[","]"]}if(isFunction(e)){var y=e.name?": "+e.name:"";s=" [Function"+y+"]"}if(isRegExp(e)){s=" "+RegExp.prototype.toString.call(e)}if(isDate(e)){s=" "+Date.prototype.toUTCString.call(e)}if(isError(e)){s=" "+formatError(e)}if(a.length===0&&(!c||e.length==0)){return p[0]+s+p[1]}if(n<0){if(isRegExp(e)){return r.stylize(RegExp.prototype.toString.call(e),"regexp")}else{return r.stylize("[Object]","special")}}r.seen.push(e);var l;if(c){l=formatArray(r,e,n,f,a)}else{l=a.map((function(t){return formatProperty(r,e,n,f,t,c)}))}r.seen.pop();return reduceToSingleString(l,s,p)}function formatPrimitive(r,t){if(isUndefined(t))return r.stylize("undefined","undefined");if(isString(t)){var e="'"+JSON.stringify(t).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return r.stylize(e,"string")}if(isNumber(t))return r.stylize(""+t,"number");if(isBoolean(t))return r.stylize(""+t,"boolean");if(isNull(t))return r.stylize("null","null")}function formatError(r){return"["+Error.prototype.toString.call(r)+"]"}function formatArray(r,t,e,n,o){var i=[];for(var a=0,f=t.length;a-1){if(i){f=f.split("\n").map((function(r){return" "+r})).join("\n").substr(2)}else{f="\n"+f.split("\n").map((function(r){return" "+r})).join("\n")}}}else{f=r.stylize("[Circular]","special")}}if(isUndefined(a)){if(i&&o.match(/^\d+$/)){return f}a=JSON.stringify(""+o);if(a.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)){a=a.substr(1,a.length-2);a=r.stylize(a,"name")}else{a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'");a=r.stylize(a,"string")}}return a+": "+f}function reduceToSingleString(r,t,e){var n=0;var o=r.reduce((function(r,t){n++;if(t.indexOf("\n")>=0)n++;return r+t.replace(/\u001b\[\d\d?m/g,"").length+1}),0);if(o>60){return e[0]+(t===""?"":t+"\n ")+" "+r.join(",\n ")+" "+e[1]}return e[0]+t+" "+r.join(", ")+" "+e[1]}t.types=e(5584);function isArray(r){return Array.isArray(r)}t.isArray=isArray;function isBoolean(r){return typeof r==="boolean"}t.isBoolean=isBoolean;function isNull(r){return r===null}t.isNull=isNull;function isNullOrUndefined(r){return r==null}t.isNullOrUndefined=isNullOrUndefined;function isNumber(r){return typeof r==="number"}t.isNumber=isNumber;function isString(r){return typeof r==="string"}t.isString=isString;function isSymbol(r){return typeof r==="symbol"}t.isSymbol=isSymbol;function isUndefined(r){return r===void 0}t.isUndefined=isUndefined;function isRegExp(r){return isObject(r)&&objectToString(r)==="[object RegExp]"}t.isRegExp=isRegExp;t.types.isRegExp=isRegExp;function isObject(r){return typeof r==="object"&&r!==null}t.isObject=isObject;function isDate(r){return isObject(r)&&objectToString(r)==="[object Date]"}t.isDate=isDate;t.types.isDate=isDate;function isError(r){return isObject(r)&&(objectToString(r)==="[object Error]"||r instanceof Error)}t.isError=isError;t.types.isNativeError=isError;function isFunction(r){return typeof r==="function"}t.isFunction=isFunction;function isPrimitive(r){return r===null||typeof r==="boolean"||typeof r==="number"||typeof r==="string"||typeof r==="symbol"||typeof r==="undefined"}t.isPrimitive=isPrimitive;t.isBuffer=e(2369);function objectToString(r){return Object.prototype.toString.call(r)}function pad(r){return r<10?"0"+r.toString(10):r.toString(10)}var u=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function timestamp(){var r=new Date;var t=[pad(r.getHours()),pad(r.getMinutes()),pad(r.getSeconds())].join(":");return[r.getDate(),u[r.getMonth()],t].join(" ")}t.log=function(){console.log("%s - %s",timestamp(),t.format.apply(t,arguments))};t.inherits=e(3782);t._extend=function(r,t){if(!t||!isObject(t))return r;var e=Object.keys(t);var n=e.length;while(n--){r[e[n]]=t[e[n]]}return r};function hasOwnProperty(r,t){return Object.prototype.hasOwnProperty.call(r,t)}var s=typeof Symbol!=="undefined"?Symbol("util.promisify.custom"):undefined;t.promisify=function promisify(r){if(typeof r!=="function")throw new TypeError('The "original" argument must be of type Function');if(s&&r[s]){var t=r[s];if(typeof t!=="function"){throw new TypeError('The "util.promisify.custom" argument must be of type Function')}Object.defineProperty(t,s,{value:t,enumerable:false,writable:false,configurable:true});return t}function t(){var t,e;var n=new Promise((function(r,n){t=r;e=n}));var o=[];for(var i=0;i{var e={660:e=>{e.exports=function(e,t){if(typeof e!=="string"){throw new TypeError("Expected a string")}var i=String(e);var s="";var r=t?!!t.extended:false;var n=t?!!t.globstar:false;var c=false;var a=t&&typeof t.flags==="string"?t.flags:"";var o;for(var h=0,f=i.length;h1&&(l==="/"||l===undefined)&&(d==="/"||d===undefined);if(p){s+="((?:[^/]*(?:/|$))*)";h++}else{s+="([^/]*)"}}break;default:s+=o}}if(!a||!~a.indexOf("g")){s="^"+s+"$"}return new RegExp(s,a)}},567:e=>{"use strict";e.exports=clone;var t=Object.getPrototypeOf||function(e){return e.__proto__};function clone(e){if(e===null||typeof e!=="object")return e;if(e instanceof Object)var i={__proto__:t(e)};else var i=Object.create(null);Object.getOwnPropertyNames(e).forEach((function(t){Object.defineProperty(i,t,Object.getOwnPropertyDescriptor(e,t))}));return i}},450:(e,t,i)=>{var s=i(147);var r=i(164);var n=i(873);var c=i(567);var a=i(837);var o;var h;if(typeof Symbol==="function"&&typeof Symbol.for==="function"){o=Symbol.for("graceful-fs.queue");h=Symbol.for("graceful-fs.previous")}else{o="___graceful-fs.queue";h="___graceful-fs.previous"}function noop(){}function publishQueue(e,t){Object.defineProperty(e,o,{get:function(){return t}})}var f=noop;if(a.debuglog)f=a.debuglog("gfs4");else if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||""))f=function(){var e=a.format.apply(a,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: ");console.error(e)};if(!s[o]){var l=global[o]||[];publishQueue(s,l);s.close=function(e){function close(t,i){return e.call(s,t,(function(e){if(!e){resetQueue()}if(typeof i==="function")i.apply(this,arguments)}))}Object.defineProperty(close,h,{value:e});return close}(s.close);s.closeSync=function(e){function closeSync(t){e.apply(s,arguments);resetQueue()}Object.defineProperty(closeSync,h,{value:e});return closeSync}(s.closeSync);if(/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")){process.on("exit",(function(){f(s[o]);i(491).equal(s[o].length,0)}))}}if(!global[o]){publishQueue(global,s[o])}e.exports=patch(c(s));if(process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!s.__patched){e.exports=patch(s);s.__patched=true}function patch(e){r(e);e.gracefulify=patch;e.createReadStream=createReadStream;e.createWriteStream=createWriteStream;var t=e.readFile;e.readFile=readFile;function readFile(e,i,s){if(typeof i==="function")s=i,i=null;return go$readFile(e,i,s);function go$readFile(e,i,s,r){return t(e,i,(function(t){if(t&&(t.code==="EMFILE"||t.code==="ENFILE"))enqueue([go$readFile,[e,i,s],t,r||Date.now(),Date.now()]);else{if(typeof s==="function")s.apply(this,arguments)}}))}}var i=e.writeFile;e.writeFile=writeFile;function writeFile(e,t,s,r){if(typeof s==="function")r=s,s=null;return go$writeFile(e,t,s,r);function go$writeFile(e,t,s,r,n){return i(e,t,s,(function(i){if(i&&(i.code==="EMFILE"||i.code==="ENFILE"))enqueue([go$writeFile,[e,t,s,r],i,n||Date.now(),Date.now()]);else{if(typeof r==="function")r.apply(this,arguments)}}))}}var s=e.appendFile;if(s)e.appendFile=appendFile;function appendFile(e,t,i,r){if(typeof i==="function")r=i,i=null;return go$appendFile(e,t,i,r);function go$appendFile(e,t,i,r,n){return s(e,t,i,(function(s){if(s&&(s.code==="EMFILE"||s.code==="ENFILE"))enqueue([go$appendFile,[e,t,i,r],s,n||Date.now(),Date.now()]);else{if(typeof r==="function")r.apply(this,arguments)}}))}}var c=e.copyFile;if(c)e.copyFile=copyFile;function copyFile(e,t,i,s){if(typeof i==="function"){s=i;i=0}return go$copyFile(e,t,i,s);function go$copyFile(e,t,i,s,r){return c(e,t,i,(function(n){if(n&&(n.code==="EMFILE"||n.code==="ENFILE"))enqueue([go$copyFile,[e,t,i,s],n,r||Date.now(),Date.now()]);else{if(typeof s==="function")s.apply(this,arguments)}}))}}var a=e.readdir;e.readdir=readdir;var o=/^v[0-5]\./;function readdir(e,t,i){if(typeof t==="function")i=t,t=null;var s=o.test(process.version)?function go$readdir(e,t,i,s){return a(e,fs$readdirCallback(e,t,i,s))}:function go$readdir(e,t,i,s){return a(e,t,fs$readdirCallback(e,t,i,s))};return s(e,t,i);function fs$readdirCallback(e,t,i,r){return function(n,c){if(n&&(n.code==="EMFILE"||n.code==="ENFILE"))enqueue([s,[e,t,i],n,r||Date.now(),Date.now()]);else{if(c&&c.sort)c.sort();if(typeof i==="function")i.call(this,n,c)}}}}if(process.version.substr(0,4)==="v0.8"){var h=n(e);ReadStream=h.ReadStream;WriteStream=h.WriteStream}var f=e.ReadStream;if(f){ReadStream.prototype=Object.create(f.prototype);ReadStream.prototype.open=ReadStream$open}var l=e.WriteStream;if(l){WriteStream.prototype=Object.create(l.prototype);WriteStream.prototype.open=WriteStream$open}Object.defineProperty(e,"ReadStream",{get:function(){return ReadStream},set:function(e){ReadStream=e},enumerable:true,configurable:true});Object.defineProperty(e,"WriteStream",{get:function(){return WriteStream},set:function(e){WriteStream=e},enumerable:true,configurable:true});var u=ReadStream;Object.defineProperty(e,"FileReadStream",{get:function(){return u},set:function(e){u=e},enumerable:true,configurable:true});var d=WriteStream;Object.defineProperty(e,"FileWriteStream",{get:function(){return d},set:function(e){d=e},enumerable:true,configurable:true});function ReadStream(e,t){if(this instanceof ReadStream)return f.apply(this,arguments),this;else return ReadStream.apply(Object.create(ReadStream.prototype),arguments)}function ReadStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,i){if(t){if(e.autoClose)e.destroy();e.emit("error",t)}else{e.fd=i;e.emit("open",i);e.read()}}))}function WriteStream(e,t){if(this instanceof WriteStream)return l.apply(this,arguments),this;else return WriteStream.apply(Object.create(WriteStream.prototype),arguments)}function WriteStream$open(){var e=this;open(e.path,e.flags,e.mode,(function(t,i){if(t){e.destroy();e.emit("error",t)}else{e.fd=i;e.emit("open",i)}}))}function createReadStream(t,i){return new e.ReadStream(t,i)}function createWriteStream(t,i){return new e.WriteStream(t,i)}var p=e.open;e.open=open;function open(e,t,i,s){if(typeof i==="function")s=i,i=null;return go$open(e,t,i,s);function go$open(e,t,i,s,r){return p(e,t,i,(function(n,c){if(n&&(n.code==="EMFILE"||n.code==="ENFILE"))enqueue([go$open,[e,t,i,s],n,r||Date.now(),Date.now()]);else{if(typeof s==="function")s.apply(this,arguments)}}))}}return e}function enqueue(e){f("ENQUEUE",e[0].name,e[1]);s[o].push(e);retry()}var u;function resetQueue(){var e=Date.now();for(var t=0;t2){s[o][t][3]=e;s[o][t][4]=e}}retry()}function retry(){clearTimeout(u);u=undefined;if(s[o].length===0)return;var e=s[o].shift();var t=e[0];var i=e[1];var r=e[2];var n=e[3];var c=e[4];if(n===undefined){f("RETRY",t.name,i);t.apply(null,i)}else if(Date.now()-n>=6e4){f("TIMEOUT",t.name,i);var a=i.pop();if(typeof a==="function")a.call(null,r)}else{var h=Date.now()-c;var l=Math.max(c-n,1);var d=Math.min(l*1.2,100);if(h>=d){f("RETRY",t.name,i);t.apply(null,i.concat([n]))}else{s[o].push(e)}}if(u===undefined){u=setTimeout(retry,0)}}},873:(e,t,i)=>{var s=i(781).Stream;e.exports=legacy;function legacy(e){return{ReadStream:ReadStream,WriteStream:WriteStream};function ReadStream(t,i){if(!(this instanceof ReadStream))return new ReadStream(t,i);s.call(this);var r=this;this.path=t;this.fd=null;this.readable=true;this.paused=false;this.flags="r";this.mode=438;this.bufferSize=64*1024;i=i||{};var n=Object.keys(i);for(var c=0,a=n.length;cthis.end){throw new Error("start must be <= end")}this.pos=this.start}if(this.fd!==null){process.nextTick((function(){r._read()}));return}e.open(this.path,this.flags,this.mode,(function(e,t){if(e){r.emit("error",e);r.readable=false;return}r.fd=t;r.emit("open",t);r._read()}))}function WriteStream(t,i){if(!(this instanceof WriteStream))return new WriteStream(t,i);s.call(this);this.path=t;this.fd=null;this.writable=true;this.flags="w";this.encoding="binary";this.mode=438;this.bytesWritten=0;i=i||{};var r=Object.keys(i);for(var n=0,c=r.length;n= zero")}this.pos=this.start}this.busy=false;this._queue=[];if(this.fd===null){this._open=e.open;this._queue.push([this._open,this.path,this.flags,this.mode,undefined]);this.flush()}}}},164:(e,t,i)=>{var s=i(57);var r=process.cwd;var n=null;var c=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){if(!n)n=r.call(process);return n};try{process.cwd()}catch(e){}if(typeof process.chdir==="function"){var a=process.chdir;process.chdir=function(e){n=null;a.call(process,e)};if(Object.setPrototypeOf)Object.setPrototypeOf(process.chdir,a)}e.exports=patch;function patch(e){if(s.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)){patchLchmod(e)}if(!e.lutimes){patchLutimes(e)}e.chown=chownFix(e.chown);e.fchown=chownFix(e.fchown);e.lchown=chownFix(e.lchown);e.chmod=chmodFix(e.chmod);e.fchmod=chmodFix(e.fchmod);e.lchmod=chmodFix(e.lchmod);e.chownSync=chownFixSync(e.chownSync);e.fchownSync=chownFixSync(e.fchownSync);e.lchownSync=chownFixSync(e.lchownSync);e.chmodSync=chmodFixSync(e.chmodSync);e.fchmodSync=chmodFixSync(e.fchmodSync);e.lchmodSync=chmodFixSync(e.lchmodSync);e.stat=statFix(e.stat);e.fstat=statFix(e.fstat);e.lstat=statFix(e.lstat);e.statSync=statFixSync(e.statSync);e.fstatSync=statFixSync(e.fstatSync);e.lstatSync=statFixSync(e.lstatSync);if(e.chmod&&!e.lchmod){e.lchmod=function(e,t,i){if(i)process.nextTick(i)};e.lchmodSync=function(){}}if(e.chown&&!e.lchown){e.lchown=function(e,t,i,s){if(s)process.nextTick(s)};e.lchownSync=function(){}}if(c==="win32"){e.rename=typeof e.rename!=="function"?e.rename:function(t){function rename(i,s,r){var n=Date.now();var c=0;t(i,s,(function CB(a){if(a&&(a.code==="EACCES"||a.code==="EPERM"||a.code==="EBUSY")&&Date.now()-n<6e4){setTimeout((function(){e.stat(s,(function(e,n){if(e&&e.code==="ENOENT")t(i,s,CB);else r(a)}))}),c);if(c<100)c+=10;return}if(r)r(a)}))}if(Object.setPrototypeOf)Object.setPrototypeOf(rename,t);return rename}(e.rename)}e.read=typeof e.read!=="function"?e.read:function(t){function read(i,s,r,n,c,a){var o;if(a&&typeof a==="function"){var h=0;o=function(f,l,u){if(f&&f.code==="EAGAIN"&&h<10){h++;return t.call(e,i,s,r,n,c,o)}a.apply(this,arguments)}}return t.call(e,i,s,r,n,c,o)}if(Object.setPrototypeOf)Object.setPrototypeOf(read,t);return read}(e.read);e.readSync=typeof e.readSync!=="function"?e.readSync:function(t){return function(i,s,r,n,c){var a=0;while(true){try{return t.call(e,i,s,r,n,c)}catch(e){if(e.code==="EAGAIN"&&a<10){a++;continue}throw e}}}}(e.readSync);function patchLchmod(e){e.lchmod=function(t,i,r){e.open(t,s.O_WRONLY|s.O_SYMLINK,i,(function(t,s){if(t){if(r)r(t);return}e.fchmod(s,i,(function(t){e.close(s,(function(e){if(r)r(t||e)}))}))}))};e.lchmodSync=function(t,i){var r=e.openSync(t,s.O_WRONLY|s.O_SYMLINK,i);var n=true;var c;try{c=e.fchmodSync(r,i);n=false}finally{if(n){try{e.closeSync(r)}catch(e){}}else{e.closeSync(r)}}return c}}function patchLutimes(e){if(s.hasOwnProperty("O_SYMLINK")&&e.futimes){e.lutimes=function(t,i,r,n){e.open(t,s.O_SYMLINK,(function(t,s){if(t){if(n)n(t);return}e.futimes(s,i,r,(function(t){e.close(s,(function(e){if(n)n(t||e)}))}))}))};e.lutimesSync=function(t,i,r){var n=e.openSync(t,s.O_SYMLINK);var c;var a=true;try{c=e.futimesSync(n,i,r);a=false}finally{if(a){try{e.closeSync(n)}catch(e){}}else{e.closeSync(n)}}return c}}else if(e.futimes){e.lutimes=function(e,t,i,s){if(s)process.nextTick(s)};e.lutimesSync=function(){}}}function chmodFix(t){if(!t)return t;return function(i,s,r){return t.call(e,i,s,(function(e){if(chownErOk(e))e=null;if(r)r.apply(this,arguments)}))}}function chmodFixSync(t){if(!t)return t;return function(i,s){try{return t.call(e,i,s)}catch(e){if(!chownErOk(e))throw e}}}function chownFix(t){if(!t)return t;return function(i,s,r,n){return t.call(e,i,s,r,(function(e){if(chownErOk(e))e=null;if(n)n.apply(this,arguments)}))}}function chownFixSync(t){if(!t)return t;return function(i,s,r){try{return t.call(e,i,s,r)}catch(e){if(!chownErOk(e))throw e}}}function statFix(t){if(!t)return t;return function(i,s,r){if(typeof s==="function"){r=s;s=null}function callback(e,t){if(t){if(t.uid<0)t.uid+=4294967296;if(t.gid<0)t.gid+=4294967296}if(r)r.apply(this,arguments)}return s?t.call(e,i,s,callback):t.call(e,i,callback)}}function statFixSync(t){if(!t)return t;return function(i,s){var r=s?t.call(e,i,s):t.call(e,i);if(r){if(r.uid<0)r.uid+=4294967296;if(r.gid<0)r.gid+=4294967296}return r}}function chownErOk(e){if(!e)return true;if(e.code==="ENOSYS")return true;var t=!process.getuid||process.getuid()!==0;if(t){if(e.code==="EINVAL"||e.code==="EPERM")return true}return false}}},377:(e,t,i)=>{"use strict";const s=i(361).EventEmitter;const r=i(450);const n=i(17);const c=i(384);const a=Object.freeze({});let o=2e3;const h=i(37).platform()==="darwin";const f=process.env.WATCHPACK_POLLING;const l=`${+f}`===f?+f:!!f&&f!=="false";function withoutCase(e){return e.toLowerCase()}function needCalls(e,t){return function(){if(--e===0){return t()}}}class Watcher extends s{constructor(e,t,i){super();this.directoryWatcher=e;this.path=t;this.startTime=i&&+i}checkStartTime(e,t){const i=this.startTime;if(typeof i!=="number")return!t;return i<=e}close(){this.emit("closed")}}class DirectoryWatcher extends s{constructor(e,t,i){super();if(l){i.poll=l}this.watcherManager=e;this.options=i;this.path=t;this.files=new Map;this.filesWithoutCase=new Map;this.directories=new Map;this.lastWatchEvent=0;this.initialScan=true;this.ignored=i.ignored||(()=>false);this.nestedWatching=false;this.polledWatching=typeof i.poll==="number"?i.poll:i.poll?5007:false;this.timeout=undefined;this.initialScanRemoved=new Set;this.initialScanFinished=undefined;this.watchers=new Map;this.parentWatcher=null;this.refs=0;this._activeEvents=new Map;this.closed=false;this.scanning=false;this.scanAgain=false;this.scanAgainInitial=false;this.createWatcher();this.doScan(true)}createWatcher(){try{if(this.polledWatching){this.watcher={close:()=>{if(this.timeout){clearTimeout(this.timeout);this.timeout=undefined}}}}else{if(h){this.watchInParentDirectory()}this.watcher=c.watch(this.path);this.watcher.on("change",this.onWatchEvent.bind(this));this.watcher.on("error",this.onWatcherError.bind(this))}}catch(e){this.onWatcherError(e)}}forEachWatcher(e,t){const i=this.watchers.get(withoutCase(e));if(i!==undefined){for(const e of i){t(e)}}}setMissing(e,t,i){if(this.initialScan){this.initialScanRemoved.add(e)}const s=this.directories.get(e);if(s){if(this.nestedWatching)s.close();this.directories.delete(e);this.forEachWatcher(e,(e=>e.emit("remove",i)));if(!t){this.forEachWatcher(this.path,(s=>s.emit("change",e,null,i,t)))}}const r=this.files.get(e);if(r){this.files.delete(e);const s=withoutCase(e);const r=this.filesWithoutCase.get(s)-1;if(r<=0){this.filesWithoutCase.delete(s);this.forEachWatcher(e,(e=>e.emit("remove",i)))}else{this.filesWithoutCase.set(s,r)}if(!t){this.forEachWatcher(this.path,(s=>s.emit("change",e,null,i,t)))}}}setFileTime(e,t,i,s,r){const n=Date.now();if(this.ignored(e))return;const c=this.files.get(e);let a,h;if(i){a=Math.min(n,t)+o;h=o}else{a=n;h=0;if(c&&c.timestamp===t&&t+o{if(!i||e.checkStartTime(a,i)){e.emit("change",t,r)}}))}else if(!i){this.forEachWatcher(e,(e=>e.emit("change",t,r)))}this.forEachWatcher(this.path,(t=>{if(!i||t.checkStartTime(a,i)){t.emit("change",e,a,r,i)}}))}setDirectory(e,t,i,s){if(this.ignored(e))return;if(e===this.path){if(!i){this.forEachWatcher(this.path,(r=>r.emit("change",e,t,s,i)))}}else{const r=this.directories.get(e);if(!r){const r=Date.now();if(this.nestedWatching){this.createNestedWatcher(e)}else{this.directories.set(e,true)}let n;if(i){n=Math.min(r,t)+o}else{n=r}this.forEachWatcher(e,(e=>{if(!i||e.checkStartTime(n,false)){e.emit("change",t,s)}}));this.forEachWatcher(this.path,(t=>{if(!i||t.checkStartTime(n,i)){t.emit("change",e,n,s,i)}}))}}}createNestedWatcher(e){const t=this.watcherManager.watchDirectory(e,1);t.on("change",((e,t,i,s)=>{this.forEachWatcher(this.path,(r=>{if(!s||r.checkStartTime(t,s)){r.emit("change",e,t,i,s)}}))}));this.directories.set(e,t)}setNestedWatching(e){if(this.nestedWatching!==!!e){this.nestedWatching=!!e;if(this.nestedWatching){for(const e of this.directories.keys()){this.createNestedWatcher(e)}}else{for(const[e,t]of this.directories){t.close();this.directories.set(e,true)}}}}watch(e,t){const i=withoutCase(e);let s=this.watchers.get(i);if(s===undefined){s=new Set;this.watchers.set(i,s)}this.refs++;const r=new Watcher(this,e,t);r.on("closed",(()=>{if(--this.refs<=0){this.close();return}s.delete(r);if(s.size===0){this.watchers.delete(i);if(this.path===e)this.setNestedWatching(false)}}));s.add(r);let n;if(e===this.path){this.setNestedWatching(true);n=this.lastWatchEvent;for(const e of this.files.values()){fixupEntryAccuracy(e);n=Math.max(n,e.safeTime)}}else{const t=this.files.get(e);if(t){fixupEntryAccuracy(t);n=t.safeTime}else{n=0}}if(n){if(n>=t){process.nextTick((()=>{if(this.closed)return;if(e===this.path){r.emit("change",e,n,"watch (outdated on attach)",true)}else{r.emit("change",n,"watch (outdated on attach)",true)}}))}}else if(this.initialScan){if(this.initialScanRemoved.has(e)){process.nextTick((()=>{if(this.closed)return;r.emit("remove")}))}}else if(!this.directories.has(e)&&r.checkStartTime(this.initialScanFinished,false)){process.nextTick((()=>{if(this.closed)return;r.emit("initial-missing","watch (missing on attach)")}))}return r}onWatchEvent(e,t){if(this.closed)return;if(!t){this.doScan(false);return}const i=n.join(this.path,t);if(this.ignored(i))return;if(this._activeEvents.get(t)===undefined){this._activeEvents.set(t,false);const checkStats=()=>{if(this.closed)return;this._activeEvents.set(t,false);r.lstat(i,((s,c)=>{if(this.closed)return;if(this._activeEvents.get(t)===true){process.nextTick(checkStats);return}this._activeEvents.delete(t);if(s){if(s.code!=="ENOENT"&&s.code!=="EPERM"&&s.code!=="EBUSY"){this.onStatsError(s)}else{if(t===n.basename(this.path)){if(!r.existsSync(this.path)){this.onDirectoryRemoved("stat failed")}}}}this.lastWatchEvent=Date.now();if(!c){this.setMissing(i,false,e)}else if(c.isDirectory()){this.setDirectory(i,+c.birthtime||1,false,e)}else if(c.isFile()||c.isSymbolicLink()){if(c.mtime){ensureFsAccuracy(c.mtime)}this.setFileTime(i,+c.mtime||+c.ctime||1,false,false,e)}}))};process.nextTick(checkStats)}else{this._activeEvents.set(t,true)}}onWatcherError(e){if(this.closed)return;if(e){if(e.code!=="EPERM"&&e.code!=="ENOENT"){console.error("Watchpack Error (watcher): "+e)}this.onDirectoryRemoved("watch error")}}onStatsError(e){if(e){console.error("Watchpack Error (stats): "+e)}}onScanError(e){if(e){console.error("Watchpack Error (initial scan): "+e)}this.onScanFinished()}onScanFinished(){if(this.polledWatching){this.timeout=setTimeout((()=>{if(this.closed)return;this.doScan(false)}),this.polledWatching)}}onDirectoryRemoved(e){if(this.watcher){this.watcher.close();this.watcher=null}this.watchInParentDirectory();const t=`directory-removed (${e})`;for(const e of this.directories.keys()){this.setMissing(e,null,t)}for(const e of this.files.keys()){this.setMissing(e,null,t)}}watchInParentDirectory(){if(!this.parentWatcher){const e=n.dirname(this.path);if(n.dirname(e)===e)return;this.parentWatcher=this.watcherManager.watchFile(this.path,1);this.parentWatcher.on("change",((e,t)=>{if(this.closed)return;if((!h||this.polledWatching)&&this.parentWatcher){this.parentWatcher.close();this.parentWatcher=null}if(!this.watcher){this.createWatcher();this.doScan(false);this.forEachWatcher(this.path,(i=>i.emit("change",this.path,e,t,false)))}}));this.parentWatcher.on("remove",(()=>{this.onDirectoryRemoved("parent directory removed")}))}}doScan(e){if(this.scanning){if(this.scanAgain){if(!e)this.scanAgainInitial=false}else{this.scanAgain=true;this.scanAgainInitial=e}return}this.scanning=true;if(this.timeout){clearTimeout(this.timeout);this.timeout=undefined}process.nextTick((()=>{if(this.closed)return;r.readdir(this.path,((t,i)=>{if(this.closed)return;if(t){if(t.code==="ENOENT"||t.code==="EPERM"){this.onDirectoryRemoved("scan readdir failed")}else{this.onScanError(t)}this.initialScan=false;this.initialScanFinished=Date.now();if(e){for(const e of this.watchers.values()){for(const t of e){if(t.checkStartTime(this.initialScanFinished,false)){t.emit("initial-missing","scan (parent directory missing in initial scan)")}}}}if(this.scanAgain){this.scanAgain=false;this.doScan(this.scanAgainInitial)}else{this.scanning=false}return}const s=new Set(i.map((e=>n.join(this.path,e.normalize("NFC")))));for(const t of this.files.keys()){if(!s.has(t)){this.setMissing(t,e,"scan (missing)")}}for(const t of this.directories.keys()){if(!s.has(t)){this.setMissing(t,e,"scan (missing)")}}if(this.scanAgain){this.scanAgain=false;this.doScan(e);return}const c=needCalls(s.size+1,(()=>{if(this.closed)return;this.initialScan=false;this.initialScanRemoved=null;this.initialScanFinished=Date.now();if(e){const e=new Map(this.watchers);e.delete(withoutCase(this.path));for(const t of s){e.delete(withoutCase(t))}for(const t of e.values()){for(const e of t){if(e.checkStartTime(this.initialScanFinished,false)){e.emit("initial-missing","scan (missing in initial scan)")}}}}if(this.scanAgain){this.scanAgain=false;this.doScan(this.scanAgainInitial)}else{this.scanning=false;this.onScanFinished()}}));for(const t of s){r.lstat(t,((i,s)=>{if(this.closed)return;if(i){if(i.code==="ENOENT"||i.code==="EPERM"||i.code==="EACCES"||i.code==="EBUSY"){this.setMissing(t,e,"scan ("+i.code+")")}else{this.onScanError(i)}c();return}if(s.isFile()||s.isSymbolicLink()){if(s.mtime){ensureFsAccuracy(s.mtime)}this.setFileTime(t,+s.mtime||+s.ctime||1,e,true,"scan (file)")}else if(s.isDirectory()){if(!e||!this.directories.has(t))this.setDirectory(t,+s.birthtime||1,e,"scan (dir)")}c()}))}c()}))}))}getTimes(){const e=Object.create(null);let t=this.lastWatchEvent;for(const[i,s]of this.files){fixupEntryAccuracy(s);t=Math.max(t,s.safeTime);e[i]=Math.max(s.safeTime,s.timestamp)}if(this.nestedWatching){for(const i of this.directories.values()){const s=i.directoryWatcher.getTimes();for(const i of Object.keys(s)){const r=s[i];t=Math.max(t,r);e[i]=r}}e[this.path]=t}if(!this.initialScan){for(const t of this.watchers.values()){for(const i of t){const t=i.path;if(!Object.prototype.hasOwnProperty.call(e,t)){e[t]=null}}}}return e}collectTimeInfoEntries(e,t){let i=this.lastWatchEvent;for(const[t,s]of this.files){fixupEntryAccuracy(s);i=Math.max(i,s.safeTime);e.set(t,s)}if(this.nestedWatching){for(const s of this.directories.values()){i=Math.max(i,s.directoryWatcher.collectTimeInfoEntries(e,t))}e.set(this.path,a);t.set(this.path,{safeTime:i})}else{for(const i of this.directories.keys()){e.set(i,a);if(!t.has(i))t.set(i,a)}e.set(this.path,a);t.set(this.path,a)}if(!this.initialScan){for(const t of this.watchers.values()){for(const i of t){const t=i.path;if(!e.has(t)){e.set(t,null)}}}}return i}close(){this.closed=true;this.initialScan=false;if(this.watcher){this.watcher.close();this.watcher=null}if(this.nestedWatching){for(const e of this.directories.values()){e.close()}this.directories.clear()}if(this.parentWatcher){this.parentWatcher.close();this.parentWatcher=null}this.emit("closed")}}e.exports=DirectoryWatcher;e.exports.EXISTANCE_ONLY_TIME_ENTRY=a;function fixupEntryAccuracy(e){if(e.accuracy>o){e.safeTime=e.safeTime-e.accuracy+o;e.accuracy=o}}function ensureFsAccuracy(e){if(!e)return;if(o>1&&e%1!==0)o=1;else if(o>10&&e%10!==0)o=10;else if(o>100&&e%100!==0)o=100;else if(o>1e3&&e%1e3!==0)o=1e3}},73:(e,t,i)=>{"use strict";const s=i(147);const r=i(17);const n=new Set(["EINVAL","ENOENT"]);if(process.platform==="win32")n.add("UNKNOWN");class LinkResolver{constructor(){this.cache=new Map}resolve(e){const t=this.cache.get(e);if(t!==undefined){return t}const i=r.dirname(e);if(i===e){const t=Object.freeze([e]);this.cache.set(e,t);return t}const c=this.resolve(i);let a=e;if(c[0]!==i){const t=r.basename(e);a=r.resolve(c[0],t)}try{const t=s.readlinkSync(a);const i=r.resolve(c[0],t);const n=this.resolve(i);let o;if(n.length>1&&c.length>1){const e=new Set(n);e.add(a);for(let t=1;t1){o=c.slice();o[0]=n[0];o.push(a);Object.freeze(o)}else if(n.length>1){o=n.slice();o.push(a);Object.freeze(o)}else{o=Object.freeze([n[0],a])}this.cache.set(e,o);return o}catch(t){if(!n.has(t.code)){throw t}const i=c.slice();i[0]=a;Object.freeze(i);this.cache.set(e,i);return i}}}e.exports=LinkResolver},653:(e,t,i)=>{"use strict";const s=i(17);const r=i(377);class WatcherManager{constructor(e){this.options=e;this.directoryWatchers=new Map}getDirectoryWatcher(e){const t=this.directoryWatchers.get(e);if(t===undefined){const t=new r(this,e,this.options);this.directoryWatchers.set(e,t);t.on("closed",(()=>{this.directoryWatchers.delete(e)}));return t}return t}watchFile(e,t){const i=s.dirname(e);if(i===e)return null;return this.getDirectoryWatcher(i).watch(e,t)}watchDirectory(e,t){return this.getDirectoryWatcher(e).watch(e,t)}}const n=new WeakMap;e.exports=e=>{const t=n.get(e);if(t!==undefined)return t;const i=new WatcherManager(e);n.set(e,i);return i};e.exports.WatcherManager=WatcherManager},535:(e,t,i)=>{"use strict";const s=i(17);e.exports=(e,t)=>{const i=new Map;for(const[t,s]of e){i.set(t,{filePath:t,parent:undefined,children:undefined,entries:1,active:true,value:s})}let r=i.size;for(const e of i.values()){const t=s.dirname(e.filePath);if(t!==e.filePath){let s=i.get(t);if(s===undefined){s={filePath:t,parent:undefined,children:[e],entries:e.entries,active:false,value:undefined};i.set(t,s);e.parent=s}else{e.parent=s;if(s.children===undefined){s.children=[e]}else{s.children.push(e)}do{s.entries+=e.entries;s=s.parent}while(s)}}}while(r>t){const e=r-t;let s=undefined;let n=Infinity;for(const r of i.values()){if(r.entries<=1||!r.children||!r.parent)continue;if(r.children.length===0)continue;if(r.children.length===1&&!r.value)continue;const i=r.entries-1>=e?r.entries-1-e:e-r.entries+1+t*.3;if(i{"use strict";const s=i(147);const r=i(17);const{EventEmitter:n}=i(361);const c=i(535);const a=i(37).platform()==="darwin";const o=i(37).platform()==="win32";const h=a||o;const f=+process.env.WATCHPACK_WATCHER_LIMIT||(a?2e3:1e4);const l=!!process.env.WATCHPACK_RECURSIVE_WATCHER_LOGGING;let u=false;let d=0;const p=new Map;const m=new Map;const g=new Map;const y=new Map;class DirectWatcher{constructor(e){this.filePath=e;this.watchers=new Set;this.watcher=undefined;try{const t=s.watch(e);this.watcher=t;t.on("change",((e,t)=>{for(const i of this.watchers){i.emit("change",e,t)}}));t.on("error",(e=>{for(const t of this.watchers){t.emit("error",e)}}))}catch(e){process.nextTick((()=>{for(const t of this.watchers){t.emit("error",e)}}))}d++}add(e){y.set(e,this);this.watchers.add(e)}remove(e){this.watchers.delete(e);if(this.watchers.size===0){g.delete(this.filePath);d--;if(this.watcher)this.watcher.close()}}getWatchers(){return this.watchers}}class RecursiveWatcher{constructor(e){this.rootPath=e;this.mapWatcherToPath=new Map;this.mapPathToWatchers=new Map;this.watcher=undefined;try{const t=s.watch(e,{recursive:true});this.watcher=t;t.on("change",((e,t)=>{if(!t){if(l){process.stderr.write(`[watchpack] dispatch ${e} event in recursive watcher (${this.rootPath}) to all watchers\n`)}for(const t of this.mapWatcherToPath.keys()){t.emit("change",e)}}else{const i=r.dirname(t);const s=this.mapPathToWatchers.get(i);if(l){process.stderr.write(`[watchpack] dispatch ${e} event in recursive watcher (${this.rootPath}) for '${t}' to ${s?s.size:0} watchers\n`)}if(s===undefined)return;for(const i of s){i.emit("change",e,r.basename(t))}}}));t.on("error",(e=>{for(const t of this.mapWatcherToPath.keys()){t.emit("error",e)}}))}catch(e){process.nextTick((()=>{for(const t of this.mapWatcherToPath.keys()){t.emit("error",e)}}))}d++;if(l){process.stderr.write(`[watchpack] created recursive watcher at ${e}\n`)}}add(e,t){y.set(t,this);const i=e.slice(this.rootPath.length+1)||".";this.mapWatcherToPath.set(t,i);const s=this.mapPathToWatchers.get(i);if(s===undefined){const e=new Set;e.add(t);this.mapPathToWatchers.set(i,e)}else{s.add(t)}}remove(e){const t=this.mapWatcherToPath.get(e);if(!t)return;this.mapWatcherToPath.delete(e);const i=this.mapPathToWatchers.get(t);i.delete(e);if(i.size===0){this.mapPathToWatchers.delete(t)}if(this.mapWatcherToPath.size===0){m.delete(this.rootPath);d--;if(this.watcher)this.watcher.close();if(l){process.stderr.write(`[watchpack] closed recursive watcher at ${this.rootPath}\n`)}}}getWatchers(){return this.mapWatcherToPath}}class Watcher extends n{close(){if(p.has(this)){p.delete(this);return}const e=y.get(this);e.remove(this);y.delete(this)}}const createDirectWatcher=e=>{const t=g.get(e);if(t!==undefined)return t;const i=new DirectWatcher(e);g.set(e,i);return i};const createRecursiveWatcher=e=>{const t=m.get(e);if(t!==undefined)return t;const i=new RecursiveWatcher(e);m.set(e,i);return i};const execute=()=>{const e=new Map;const addWatcher=(t,i)=>{const s=e.get(i);if(s===undefined){e.set(i,t)}else if(Array.isArray(s)){s.push(t)}else{e.set(i,[s,t])}};for(const[e,t]of p){addWatcher(e,t)}p.clear();if(!h||f-d>=e.size){for(const[t,i]of e){const e=createDirectWatcher(t);if(Array.isArray(i)){for(const t of i)e.add(t)}else{e.add(i)}}return}for(const e of m.values()){for(const[t,i]of e.getWatchers()){addWatcher(t,r.join(e.rootPath,i))}}for(const e of g.values()){for(const t of e.getWatchers()){addWatcher(t,e.filePath)}}const t=c(e,f*.9);for(const[e,i]of t){if(i.size===1){for(const[e,t]of i){const i=createDirectWatcher(t);const s=y.get(e);if(s===i)continue;i.add(e);if(s!==undefined)s.remove(e)}}else{const t=new Set(i.values());if(t.size>1){const t=createRecursiveWatcher(e);for(const[e,s]of i){const i=y.get(e);if(i===t)continue;t.add(s,e);if(i!==undefined)i.remove(e)}}else{for(const e of t){const t=createDirectWatcher(e);for(const e of i.keys()){const i=y.get(e);if(i===t)continue;t.add(e);if(i!==undefined)i.remove(e)}}}}}};t.watch=e=>{const t=new Watcher;const i=g.get(e);if(i!==undefined){i.add(t);return t}let s=e;for(;;){const i=m.get(s);if(i!==undefined){i.add(e,t);return t}const n=r.dirname(s);if(n===s)break;s=n}p.set(t,e);if(!u)execute();return t};t.batch=e=>{u=true;try{e()}finally{u=false;execute()}};t.getNumberOfWatchers=()=>d},747:(e,t,i)=>{"use strict";const s=i(653);const r=i(73);const n=i(361).EventEmitter;const c=i(660);const a=i(384);const o=[];const h={};function addWatchersToSet(e,t){for(const i of e){const e=i.watcher;if(!t.has(e.directoryWatcher)){t.add(e.directoryWatcher)}}}const stringToRegexp=e=>{const t=c(e,{globstar:true,extended:true}).source;const i=t.slice(0,t.length-1)+"(?:$|\\/)";return i};const ignoredToFunction=e=>{if(Array.isArray(e)){const t=new RegExp(e.map((e=>stringToRegexp(e))).join("|"));return e=>t.test(e.replace(/\\/g,"/"))}else if(typeof e==="string"){const t=new RegExp(stringToRegexp(e));return e=>t.test(e.replace(/\\/g,"/"))}else if(e instanceof RegExp){return t=>e.test(t.replace(/\\/g,"/"))}else if(e instanceof Function){return e}else if(e){throw new Error(`Invalid option for 'ignored': ${e}`)}else{return()=>false}};const normalizeOptions=e=>({followSymlinks:!!e.followSymlinks,ignored:ignoredToFunction(e.ignored),poll:e.poll});const f=new WeakMap;const cachedNormalizeOptions=e=>{const t=f.get(e);if(t!==undefined)return t;const i=normalizeOptions(e);f.set(e,i);return i};class WatchpackFileWatcher{constructor(e,t,i){this.files=Array.isArray(i)?i:[i];this.watcher=t;t.on("initial-missing",(t=>{for(const i of this.files){if(!e._missing.has(i))e._onRemove(i,i,t)}}));t.on("change",((t,i)=>{for(const s of this.files){e._onChange(s,t,s,i)}}));t.on("remove",(t=>{for(const i of this.files){e._onRemove(i,i,t)}}))}update(e){if(!Array.isArray(e)){if(this.files.length!==1){this.files=[e]}else if(this.files[0]!==e){this.files[0]=e}}else{this.files=e}}close(){this.watcher.close()}}class WatchpackDirectoryWatcher{constructor(e,t,i){this.directories=Array.isArray(i)?i:[i];this.watcher=t;t.on("initial-missing",(t=>{for(const i of this.directories){e._onRemove(i,i,t)}}));t.on("change",((t,i,s)=>{for(const r of this.directories){e._onChange(r,i,t,s)}}));t.on("remove",(t=>{for(const i of this.directories){e._onRemove(i,i,t)}}))}update(e){if(!Array.isArray(e)){if(this.directories.length!==1){this.directories=[e]}else if(this.directories[0]!==e){this.directories[0]=e}}else{this.directories=e}}close(){this.watcher.close()}}class Watchpack extends n{constructor(e){super();if(!e)e=h;this.options=e;this.aggregateTimeout=typeof e.aggregateTimeout==="number"?e.aggregateTimeout:200;this.watcherOptions=cachedNormalizeOptions(e);this.watcherManager=s(this.watcherOptions);this.fileWatchers=new Map;this.directoryWatchers=new Map;this._missing=new Set;this.startTime=undefined;this.paused=false;this.aggregatedChanges=new Set;this.aggregatedRemovals=new Set;this.aggregateTimer=undefined;this._onTimeout=this._onTimeout.bind(this)}watch(e,t,i){let s,n,c,h;if(!t){({files:s=o,directories:n=o,missing:c=o,startTime:h}=e)}else{s=e;n=t;c=o;h=i}this.paused=false;const f=this.fileWatchers;const l=this.directoryWatchers;const u=this.watcherOptions.ignored;const filter=e=>!u(e);const addToMap=(e,t,i)=>{const s=e.get(t);if(s===undefined){e.set(t,i)}else if(Array.isArray(s)){s.push(i)}else{e.set(t,[s,i])}};const d=new Map;const p=new Map;const m=new Set;if(this.watcherOptions.followSymlinks){const e=new r;for(const t of s){if(filter(t)){for(const i of e.resolve(t)){if(t===i||filter(i)){addToMap(d,i,t)}}}}for(const t of c){if(filter(t)){for(const i of e.resolve(t)){if(t===i||filter(i)){m.add(t);addToMap(d,i,t)}}}}for(const t of n){if(filter(t)){let i=true;for(const s of e.resolve(t)){if(filter(s)){addToMap(i?p:d,s,t)}i=false}}}}else{for(const e of s){if(filter(e)){addToMap(d,e,e)}}for(const e of c){if(filter(e)){m.add(e);addToMap(d,e,e)}}for(const e of n){if(filter(e)){addToMap(p,e,e)}}}for(const[e,t]of f){const i=d.get(e);if(i===undefined){t.close();f.delete(e)}else{t.update(i);d.delete(e)}}for(const[e,t]of l){const i=p.get(e);if(i===undefined){t.close();l.delete(e)}else{t.update(i);p.delete(e)}}a.batch((()=>{for(const[e,t]of d){const i=this.watcherManager.watchFile(e,h);if(i){f.set(e,new WatchpackFileWatcher(this,i,t))}}for(const[e,t]of p){const i=this.watcherManager.watchDirectory(e,h);if(i){l.set(e,new WatchpackDirectoryWatcher(this,i,t))}}}));this._missing=m;this.startTime=h}close(){this.paused=true;if(this.aggregateTimer)clearTimeout(this.aggregateTimer);for(const e of this.fileWatchers.values())e.close();for(const e of this.directoryWatchers.values())e.close();this.fileWatchers.clear();this.directoryWatchers.clear()}pause(){this.paused=true;if(this.aggregateTimer)clearTimeout(this.aggregateTimer)}getTimes(){const e=new Set;addWatchersToSet(this.fileWatchers.values(),e);addWatchersToSet(this.directoryWatchers.values(),e);const t=Object.create(null);for(const i of e){const e=i.getTimes();for(const i of Object.keys(e))t[i]=e[i]}return t}getTimeInfoEntries(){const e=new Map;this.collectTimeInfoEntries(e,e);return e}collectTimeInfoEntries(e,t){const i=new Set;addWatchersToSet(this.fileWatchers.values(),i);addWatchersToSet(this.directoryWatchers.values(),i);const s={value:0};for(const r of i){r.collectTimeInfoEntries(e,t,s)}}getAggregated(){if(this.aggregateTimer){clearTimeout(this.aggregateTimer);this.aggregateTimer=undefined}const e=this.aggregatedChanges;const t=this.aggregatedRemovals;this.aggregatedChanges=new Set;this.aggregatedRemovals=new Set;return{changes:e,removals:t}}_onChange(e,t,i,s){i=i||e;if(!this.paused){this.emit("change",i,t,s);if(this.aggregateTimer)clearTimeout(this.aggregateTimer);this.aggregateTimer=setTimeout(this._onTimeout,this.aggregateTimeout)}this.aggregatedRemovals.delete(e);this.aggregatedChanges.add(e)}_onRemove(e,t,i){t=t||e;if(!this.paused){this.emit("remove",t,i);if(this.aggregateTimer)clearTimeout(this.aggregateTimer);this.aggregateTimer=setTimeout(this._onTimeout,this.aggregateTimeout)}this.aggregatedChanges.delete(e);this.aggregatedRemovals.add(e)}_onTimeout(){this.aggregateTimer=undefined;const e=this.aggregatedChanges;const t=this.aggregatedRemovals;this.aggregatedChanges=new Set;this.aggregatedRemovals=new Set;this.emit("aggregated",e,t)}}e.exports=Watchpack},491:e=>{"use strict";e.exports=require("assert")},57:e=>{"use strict";e.exports=require("constants")},361:e=>{"use strict";e.exports=require("events")},147:e=>{"use strict";e.exports=require("fs")},37:e=>{"use strict";e.exports=require("os")},17:e=>{"use strict";e.exports=require("path")},781:e=>{"use strict";e.exports=require("stream")},837:e=>{"use strict";e.exports=require("util")}};var t={};function __nccwpck_require__(i){var s=t[i];if(s!==undefined){return s.exports}var r=t[i]={exports:{}};var n=true;try{e[i](r,r.exports,__nccwpck_require__);n=false}finally{if(n)delete t[i]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var i=__nccwpck_require__(747);module.exports=i})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/webpack-sources3/index.js b/cli/app/node_modules/next/dist/compiled/webpack-sources3/index.js new file mode 100644 index 00000000000..c36eaac50b0 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/webpack-sources3/index.js @@ -0,0 +1 @@ +(function(){var e={374:function(e,t,n){"use strict";const s=n(734);const r=n(342);const i=n(818);const u=n(879);const mapToBufferedMap=e=>{if(typeof e!=="object"||!e)return e;const t=Object.assign({},e);if(e.mappings){t.mappings=Buffer.from(e.mappings,"utf-8")}if(e.sourcesContent){t.sourcesContent=e.sourcesContent.map((e=>e&&Buffer.from(e,"utf-8")))}return t};const bufferedMapToMap=e=>{if(typeof e!=="object"||!e)return e;const t=Object.assign({},e);if(e.mappings){t.mappings=e.mappings.toString("utf-8")}if(e.sourcesContent){t.sourcesContent=e.sourcesContent.map((e=>e&&e.toString("utf-8")))}return t};class CachedSource extends s{constructor(e,t){super();this._source=e;this._cachedSourceType=t?t.source:undefined;this._cachedSource=undefined;this._cachedBuffer=t?t.buffer:undefined;this._cachedSize=t?t.size:undefined;this._cachedMaps=t?t.maps:new Map;this._cachedHashUpdate=t?t.hash:undefined}getCachedData(){const e=new Map;for(const t of this._cachedMaps){let n=t[1];if(n.bufferedMap===undefined){n.bufferedMap=mapToBufferedMap(this._getMapFromCacheEntry(n))}e.set(t[0],{map:undefined,bufferedMap:n.bufferedMap})}if(this._cachedSource){this.buffer()}return{buffer:this._cachedBuffer,source:this._cachedSourceType!==undefined?this._cachedSourceType:typeof this._cachedSource==="string"?true:Buffer.isBuffer(this._cachedSource)?false:undefined,size:this._cachedSize,maps:e,hash:this._cachedHashUpdate}}originalLazy(){return this._source}original(){if(typeof this._source==="function")this._source=this._source();return this._source}source(){const e=this._getCachedSource();if(e!==undefined)return e;return this._cachedSource=this.original().source()}_getMapFromCacheEntry(e){if(e.map!==undefined){return e.map}else if(e.bufferedMap!==undefined){return e.map=bufferedMapToMap(e.bufferedMap)}}_getCachedSource(){if(this._cachedSource!==undefined)return this._cachedSource;if(this._cachedBuffer&&this._cachedSourceType!==undefined){return this._cachedSource=this._cachedSourceType?this._cachedBuffer.toString("utf-8"):this._cachedBuffer}}buffer(){if(this._cachedBuffer!==undefined)return this._cachedBuffer;if(this._cachedSource!==undefined){if(Buffer.isBuffer(this._cachedSource)){return this._cachedBuffer=this._cachedSource}return this._cachedBuffer=Buffer.from(this._cachedSource,"utf-8")}if(typeof this.original().buffer==="function"){return this._cachedBuffer=this.original().buffer()}const e=this.source();if(Buffer.isBuffer(e)){return this._cachedBuffer=e}return this._cachedBuffer=Buffer.from(e,"utf-8")}size(){if(this._cachedSize!==undefined)return this._cachedSize;if(this._cachedBuffer!==undefined){return this._cachedSize=this._cachedBuffer.length}const e=this._getCachedSource();if(e!==undefined){return this._cachedSize=Buffer.byteLength(e)}return this._cachedSize=this.original().size()}sourceAndMap(e){const t=e?JSON.stringify(e):"{}";const n=this._cachedMaps.get(t);if(n!==undefined){const e=this._getMapFromCacheEntry(n);return{source:this.source(),map:e}}let s=this._getCachedSource();let r;if(s!==undefined){r=this.original().map(e)}else{const t=this.original().sourceAndMap(e);s=t.source;r=t.map;this._cachedSource=s}this._cachedMaps.set(t,{map:r,bufferedMap:undefined});return{source:s,map:r}}streamChunks(e,t,n,s){const f=e?JSON.stringify(e):"{}";if(this._cachedMaps.has(f)&&(this._cachedBuffer!==undefined||this._cachedSource!==undefined)){const{source:u,map:f}=this.sourceAndMap(e);if(f){return r(u,f,t,n,s,!!(e&&e.finalSource),true)}else{return i(u,t,n,s,!!(e&&e.finalSource))}}const{result:o,source:c,map:a}=u(this.original(),e,t,n,s);this._cachedSource=c;this._cachedMaps.set(f,{map:a,bufferedMap:undefined});return o}map(e){const t=e?JSON.stringify(e):"{}";const n=this._cachedMaps.get(t);if(n!==undefined){return this._getMapFromCacheEntry(n)}const s=this.original().map(e);this._cachedMaps.set(t,{map:s,bufferedMap:undefined});return s}updateHash(e){if(this._cachedHashUpdate!==undefined){for(const t of this._cachedHashUpdate)e.update(t);return}const t=[];let n=undefined;const s={update:e=>{if(typeof e==="string"&&e.length<10240){if(n===undefined){n=e}else{n+=e;if(n.length>102400){t.push(Buffer.from(n));n=undefined}}}else{if(n!==undefined){t.push(Buffer.from(n));n=undefined}t.push(e)}}};this.original().updateHash(s);if(n!==undefined){t.push(Buffer.from(n))}for(const n of t)e.update(n);this._cachedHashUpdate=t}}e.exports=CachedSource},773:function(e,t,n){"use strict";const s=n(734);class CompatSource extends s{static from(e){return e instanceof s?e:new CompatSource(e)}constructor(e){super();this._sourceLike=e}source(){return this._sourceLike.source()}buffer(){if(typeof this._sourceLike.buffer==="function"){return this._sourceLike.buffer()}return super.buffer()}size(){if(typeof this._sourceLike.size==="function"){return this._sourceLike.size()}return super.size()}map(e){if(typeof this._sourceLike.map==="function"){return this._sourceLike.map(e)}return super.map(e)}sourceAndMap(e){if(typeof this._sourceLike.sourceAndMap==="function"){return this._sourceLike.sourceAndMap(e)}return super.sourceAndMap(e)}updateHash(e){if(typeof this._sourceLike.updateHash==="function"){return this._sourceLike.updateHash(e)}if(typeof this._sourceLike.map==="function"){throw new Error("A Source-like object with a 'map' method must also provide an 'updateHash' method")}e.update(this.buffer())}}e.exports=CompatSource},640:function(e,t,n){"use strict";const s=n(734);const r=n(804);const i=n(771);const{getMap:u,getSourceAndMap:f}=n(633);const o=new WeakSet;class ConcatSource extends s{constructor(){super();this._children=[];for(let e=0;e{const _=n+r;const S=n===1?s+u:s;if(h){if(n!==1||s!==0){t(undefined,r+1,u,-1,-1,-1,-1)}h=false}const m=i<0||i>=d.length?-1:d[i];const A=l<0||l>=p.length?-1:p[l];g=m<0?0:n;if(c){if(e!==undefined)a+=e;if(m>=0){t(undefined,_,S,m,f,o,A)}}else{if(m<0){t(e,_,S,-1,-1,-1,-1)}else{t(e,_,S,m,f,o,A)}}}),((e,t,s)=>{let r=f.get(t);if(r===undefined){f.set(t,r=f.size);n(r,t,s)}d[e]=r}),((e,t)=>{let n=o.get(t);if(n===undefined){o.set(t,n=o.size);s(n,t)}p[e]=n}));if(m!==undefined)a+=m;if(h){if(_!==1||S!==0){t(undefined,r+1,u,-1,-1,-1,-1);h=false}}if(_>1){u=S}else{u+=S}h=h||c&&g===_;r+=_-1}return{generatedLine:r+1,generatedColumn:u,source:c?a:undefined}}updateHash(e){if(!this._isOptimized)this._optimize();e.update("ConcatSource");for(const t of this._children){t.updateHash(e)}}_optimize(){const e=[];let t=undefined;let n=undefined;const addStringToRawSources=e=>{if(n===undefined){n=e}else if(Array.isArray(n)){n.push(e)}else{n=[typeof n==="string"?n:n.source(),e]}};const addSourceToRawSources=e=>{if(n===undefined){n=e}else if(Array.isArray(n)){n.push(e.source())}else{n=[typeof n==="string"?n:n.source(),e.source()]}};const mergeRawSources=()=>{if(Array.isArray(n)){const t=new r(n.join(""));o.add(t);e.push(t)}else if(typeof n==="string"){const t=new r(n);o.add(t);e.push(t)}else{e.push(n)}};for(const s of this._children){if(typeof s==="string"){if(t===undefined){t=s}else{t+=s}}else{if(t!==undefined){addStringToRawSources(t);t=undefined}if(o.has(s)){addSourceToRawSources(s)}else{if(n!==undefined){mergeRawSources();n=undefined}e.push(s)}}}if(t!==undefined){addStringToRawSources(t)}if(n!==undefined){mergeRawSources()}this._children=e;this._isOptimized=true}}e.exports=ConcatSource},827:function(e,t,n){"use strict";const{getMap:s,getSourceAndMap:r}=n(633);const i=n(494);const u=n(265);const f=n(734);const o=n(721);class OriginalSource extends f{constructor(e,t){super();const n=Buffer.isBuffer(e);this._value=n?undefined:e;this._valueAsBuffer=n?e:undefined;this._name=t}getName(){return this._name}source(){if(this._value===undefined){this._value=this._valueAsBuffer.toString("utf-8")}return this._value}buffer(){if(this._valueAsBuffer===undefined){this._valueAsBuffer=Buffer.from(this._value,"utf-8")}return this._valueAsBuffer}map(e){return s(this,e)}sourceAndMap(e){return r(this,e)}streamChunks(e,t,n,s){if(this._value===undefined){this._value=this._valueAsBuffer.toString("utf-8")}n(0,this._name,this._value);const r=!!(e&&e.finalSource);if(!e||e.columns!==false){const e=o(this._value);let n=1;let s=0;if(e!==null){for(const i of e){const e=i.endsWith("\n");if(e&&i.length===1){if(!r)t(i,n,s,-1,-1,-1,-1)}else{const e=r?undefined:i;t(e,n,s,0,n,s,-1)}if(e){n++;s=0}else{s+=i.length}}}return{generatedLine:n,generatedColumn:s,source:r?this._value:undefined}}else if(r){const e=u(this._value);const{generatedLine:n,generatedColumn:s}=e;if(s===0){for(let e=1;e{if(s!==0){s+=u}else if(e!==undefined){if(f||i<0){e=r+e}else if(u>0){t(r,n,s,-1,-1,-1,-1);s+=u}}else if(!f){s+=u}t(e,n,s,i,o,c,a)}),n,s);return{generatedLine:c,generatedColumn:a===0?0:u+a,source:h!==undefined?r+h.replace(o,"\n"+r):undefined}}updateHash(e){e.update("PrefixSource");this._source.updateHash(e);e.update(this._prefix)}}e.exports=PrefixSource},804:function(e,t,n){"use strict";const s=n(818);const{internString:r,isDualStringBufferCachingEnabled:i}=n(854);const u=n(734);class RawSource extends u{constructor(e,t=false){super();const n=Buffer.isBuffer(e);if(!n&&typeof e!=="string"){throw new TypeError("argument 'value' must be either string or Buffer")}this._valueIsBuffer=!t&&n;const s=typeof e==="string"?r(e):undefined;this._value=t&&n?undefined:typeof e==="string"?s:e;this._valueAsBuffer=n?e:undefined;this._valueAsString=n?undefined:s}isBuffer(){return this._valueIsBuffer}source(){if(this._value===undefined){const e=this._valueAsBuffer.toString("utf-8");if(i()){this._value=r(e)}return e}return this._value}buffer(){if(this._valueAsBuffer===undefined){const e=Buffer.from(this._value,"utf-8");if(i()){this._valueAsBuffer=e}return e}return this._valueAsBuffer}map(e){return null}streamChunks(e,t,n,u){let f=this._valueAsString;if(f===undefined){const e=this.source();f=typeof e==="string"?e:e.toString("utf-8");if(i()){this._valueAsString=r(f)}}return s(f,t,n,u,!!(e&&e.finalSource))}updateHash(e){e.update("RawSource");e.update(this.buffer())}}e.exports=RawSource},98:function(e,t,n){"use strict";const{getMap:s,getSourceAndMap:r}=n(633);const i=n(771);const u=n(734);const f=n(494);const o=typeof process==="object"&&process.versions&&typeof process.versions.v8==="string"&&!/^[0-6]\./.test(process.versions.v8);const c=536870912;class Replacement{constructor(e,t,n,s){this.start=e;this.end=t;this.content=n;this.name=s;if(!o){this.index=-1}}}class ReplaceSource extends u{constructor(e,t){super();this._source=e;this._name=t;this._replacements=[];this._isSorted=true}getName(){return this._name}getReplacements(){this._sortReplacements();return this._replacements}replace(e,t,n,s){if(typeof n!=="string")throw new Error("insertion must be a string, but is a "+typeof n);this._replacements.push(new Replacement(e,t,n,s));this._isSorted=false}insert(e,t,n){if(typeof t!=="string")throw new Error("insertion must be a string, but is a "+typeof t+": "+t);this._replacements.push(new Replacement(e,e-1,t,n));this._isSorted=false}source(){if(this._replacements.length===0){return this._source.source()}let e=this._source.source();let t=0;const n=[];this._sortReplacements();for(const s of this._replacements){const r=Math.floor(s.start);const i=Math.floor(s.end+1);if(te.index=t));this._replacements.sort((function(e,t){const n=e.start-t.start;if(n!==0)return n;const s=e.end-t.end;if(s!==0)return s;return e.index-t.index}))}this._isSorted=true}streamChunks(e,t,n,s){this._sortReplacements();const r=this._replacements;let u=0;let o=0;let a=-1;let h=o{let r=e{let B=0;let C=u+e.length;if(a>u){if(a>=C){const t=n+l;if(e.endsWith("\n")){l--;if(p===t){d+=i}}else if(p===t){d-=e.length}else{d=-e.length;p=t}u=C;return}B=a-u;if(checkOriginalContent(g,m,A,e.slice(0,B))){A+=B}u+=B;const t=n+l;if(p===t){d-=B}else{d=-B;p=t}i+=B}if(hu){const n=h-u;const s=e.slice(B,B+n);t(s,b,i+(b===p?d:0),g,m,A,M<0||M>=S.length?-1:S[M]);i+=n;B+=n;u=h;if(checkOriginalContent(g,m,A,s)){A+=s.length}}const{content:v,name:y}=r[o];let O=f(v);let w=M;if(g>=0&&y){let e=_.get(y);if(e===undefined){e=_.size;_.set(y,e);s(e,y)}w=e}for(let e=0;e0){if(a>=C){let t=n+l;if(e.endsWith("\n")){l--;if(p===t){d+=i}}else if(p===t){d-=e.length-B}else{d=B-e.length;p=t}u=C;return}const t=n+l;if(checkOriginalContent(g,m,A,e.slice(B,B+x))){A+=x}B+=x;u+=x;if(p===t){d-=x}else{d=-x;p=t}i+=x}}while(h{while(g.length{let n=_.get(t);if(n===undefined){n=_.size;_.set(t,n);s(n,t)}S[e]=n}));let M="";for(;o{const t=e&&e.columns===false;return t?createLinesOnlyMappingsSerializer():createFullMappingsSerializer()};const createFullMappingsSerializer=()=>{let e=1;let s=0;let r=0;let i=1;let u=0;let f=0;let o=false;let c=false;let a=true;return(h,l,d,p,g,_)=>{if(o&&e===h){if(d===r&&p===i&&g===u&&!c&&_<0){return""}}else{if(d<0){return""}}let S;if(e{const s=e>>>31&1;const r=e>>31;const i=e+r^r;let u=i<<1|s;for(;;){const e=u&31;u>>=5;if(u===0){S+=t[e];break}else{S+=t[e|n]}}};writeValue(l-s);s=l;if(d>=0){o=true;if(d===r){S+="A"}else{writeValue(d-r);r=d}writeValue(p-i);i=p;if(g===u){S+="A"}else{writeValue(g-u);u=g}if(_>=0){writeValue(_-f);f=_;c=true}else{c=false}}else{o=false}return S}};const createLinesOnlyMappingsSerializer=()=>{let e=0;let s=1;let r=0;let i=1;return(u,f,o,c,a,h)=>{if(o<0){return""}if(e===u){return""}let l;const writeValue=e=>{const s=e>>>31&1;const r=e>>31;const i=e+r^r;let u=i<<1|s;for(;;){const e=u&31;u>>=5;if(u===0){l+=t[e];break}else{l+=t[e|n]}}};e=u;if(u===s+1){s=u;if(o===r){r=o;if(c===i+1){i=c;return";AACA"}else{l=";AA";writeValue(c-i);i=c;return l+"A"}}else{l=";A";writeValue(o-r);r=o;writeValue(c-i);i=c;return l+"A"}}else{l=";".repeat(u-s);s=u;if(o===r){r=o;if(c===i+1){i=c;return l+"AACA"}else{l+="AA";writeValue(c-i);i=c;return l+"A"}}else{l+="A";writeValue(o-r);r=o;writeValue(c-i);i=c;return l+"A"}}}};e.exports=createMappingsSerializer},633:function(e,t,n){"use strict";const s=n(932);t.getSourceAndMap=(e,t)=>{let n="";let r="";let i=[];let u=[];let f=[];const o=s(t);const{source:c}=e.streamChunks(Object.assign({},t,{finalSource:true}),((e,t,s,i,u,f,c)=>{if(e!==undefined)n+=e;r+=o(t,s,i,u,f,c)}),((e,t,n)=>{while(i.length{while(f.length0?{version:3,file:"x",mappings:r,sources:i,sourcesContent:u.length>0?u:undefined,names:f}:null}};t.getMap=(e,t)=>{let n="";let r=[];let i=[];let u=[];const f=s(t);e.streamChunks(Object.assign({},t,{source:false,finalSource:true}),((e,t,s,r,i,u,o)=>{n+=f(t,s,r,i,u,o)}),((e,t,n)=>{while(r.length{while(u.length0?{version:3,file:"x",mappings:n,sources:r,sourcesContent:i.length>0?i:undefined,names:u}:null}},265:function(e){"use strict";const t="\n".charCodeAt(0);const getGeneratedSourceInfo=e=>{if(e===undefined){return{}}const n=e.lastIndexOf("\n");if(n===-1){return{generatedLine:1,generatedColumn:e.length,source:e}}let s=2;for(let r=0;r{if(t<0)return null;const{sourceRoot:n,sources:s}=e;const r=s[t];if(!n)return r;if(n.endsWith("/"))return n+r;return n+"/"+r};e.exports=getSource},945:function(e){"use strict";const t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";const n=32;const s=64;const r=s|1;const i=s|2;const u=31;const f=new Uint8Array("z".charCodeAt(0)+1);{f.fill(i);for(let e=0;e{const i=new Uint32Array([0,0,1,0,0]);let c=0;let a=0;let h=0;let l=1;let d=-1;for(let p=0;po)continue;const _=f[g];if((_&s)!==0){if(i[0]>d){if(c===1){t(l,i[0],-1,-1,-1,-1)}else if(c===4){t(l,i[0],i[1],i[2],i[3],-1)}else if(c===5){t(l,i[0],i[1],i[2],i[3],i[4])}d=i[0]}c=0;if(_===r){l++;i[0]=0;d=-1}}else if((_&n)===0){a|=_<>1):a>>1;i[c++]+=e;h=0;a=0}else{a|=(_&u)<{const t=[];const n=e.length;let s=0;for(;s{const t=e.length;if(t===0)return null;const n=[];let s=0;for(;s=t)break e;n=e.charCodeAt(s)}while(n===59||n===32||n===123||n===125||n===13||n===9){if(++s>=t)break e;n=e.charCodeAt(s)}if(n===10){s++}}n.push(e.slice(r,s))}return n};e.exports=splitIntoPotentialTokens},879:function(e,t,n){"use strict";const s=n(932);const r=n(771);const streamAndGetSourceAndMap=(e,t,n,i,u)=>{let f="";let o="";let c=[];let a=[];let h=[];const l=s(Object.assign({},t,{columns:true}));const d=!!(t&&t.finalSource);const{generatedLine:p,generatedColumn:g,source:_}=r(e,t,((e,t,s,r,i,u,c)=>{if(e!==undefined)f+=e;o+=l(t,s,r,i,u,c);return n(d?undefined:e,t,s,r,i,u,c)}),((e,t,n)=>{while(c.length{while(h.length0?{version:3,file:"x",mappings:o,sources:c,sourcesContent:a.length>0?a:undefined,names:h}:null}};e.exports=streamAndGetSourceAndMap},771:function(e,t,n){"use strict";const s=n(818);const r=n(342);e.exports=(e,t,n,i,u)=>{if(typeof e.streamChunks==="function"){return e.streamChunks(t,n,i,u)}else{const f=e.sourceAndMap(t);if(f.map){return r(f.source,f.map,n,i,u,!!(t&&t.finalSource),!!(t&&t.columns!==false))}else{return s(f.source,n,i,u,!!(t&&t.finalSource))}}}},109:function(e,t,n){"use strict";const s=n(342);const r=n(494);const streamChunksOfCombinedSourceMap=(e,t,n,i,u,f,o,c,a,h,l)=>{let d=new Map;let p=new Map;const g=[];const _=[];const S=[];let m=-2;const A=[];const M=[];const B=[];const C=[];const b=[];const v=[];const y=[];const findInnerMapping=(e,t)=>{if(e>y.length)return-1;const{mappingsData:n}=y[e-1];let s=0;let r=n.length/5;while(s>1;if(n[e*5]<=t){s=e+1}else{r=e}}if(s===0)return-1;return s-1};return s(e,t,((t,s,u,h,l,O,w)=>{if(h===m){const m=findInnerMapping(l,O);if(m!==-1){const{chunks:e,mappingsData:n}=y[l-1];const i=m*5;const f=n[i+1];const h=n[i+2];let g=n[i+3];let x=n[i+4];if(f>=0){const l=e[m];const y=n[i];const z=O-y;if(z>0){let e=f=0){L=x=0){let e=C[f];if(e===undefined){const t=B[f];e=t?r(t):null;C[f]=e}if(e!==null){const t=S[w];const n=h<=e.length?e[h-1].slice(g,g+t.length):"";if(t===n){L=w<_.length?_[w]:-2;if(L===-2){const e=S[w];if(e){let t=p.get(e);if(t===undefined){p.set(e,t=p.size);a(t,e)}L=t}else{L=-1}_[w]=L}}}}o(t,s,u,k,h,g,L);return}}if(f){o(t,s,u,-1,-1,-1,-1);return}else{if(g[h]===-2){let t=d.get(n);if(t===undefined){d.set(e,t=d.size);c(t,n,i)}g[h]=t}}}const x=h<0||h>=g.length?-1:g[h];if(x<0){o(t,s,u,-1,-1,-1,-1)}else{let e=-1;if(w>=0&&w<_.length){e=_[w];if(e===-2){const t=S[w];let n=p.get(t);if(n===undefined){p.set(t,n=p.size);a(n,t)}e=n;_[w]=e}}o(t,s,u,x,l,O,e)}}),((e,t,r)=>{if(t===n){m=e;if(i!==undefined)r=i;else i=r;g[e]=-2;s(r,u,((e,t,n,s,r,i,u)=>{while(y.length{B[e]=n;C[e]=undefined;A[e]=-2;M[e]=[t,n]}),((e,t)=>{b[e]=-2;v[e]=t}),false,l)}else{let n=d.get(t);if(n===undefined){d.set(t,n=d.size);c(n,t,r)}g[e]=n}}),((e,t)=>{_[e]=-2;S[e]=t}),h,l)};e.exports=streamChunksOfCombinedSourceMap},818:function(e,t,n){"use strict";const s=n(265);const r=n(494);const streamChunksOfRawSource=(e,t,n,s)=>{let i=1;const u=r(e);let f;for(f of u){t(f,i,0,-1,-1,-1,-1);i++}return u.length===0||f.endsWith("\n")?{generatedLine:u.length+1,generatedColumn:0}:{generatedLine:u.length,generatedColumn:f.length}};e.exports=(e,t,n,r,i)=>i?s(e):streamChunksOfRawSource(e,t,n,r)},342:function(e,t,n){"use strict";const s=n(265);const r=n(43);const i=n(945);const u=n(494);const streamChunksOfSourceMapFull=(e,t,n,s,f)=>{const o=u(e);if(o.length===0){return{generatedLine:1,generatedColumn:0}}const{sources:c,sourcesContent:a,names:h,mappings:l}=t;for(let e=0;e{if(A&&S<=o.length){let s;const r=S;const i=m;const u=o[S-1];if(e!==S){s=u.slice(m);S++;m=0}else{s=u.slice(m,t);m=t}if(s){n(s,r,i,M,B,C,b)}A=false}if(e>S&&m>0){if(S<=o.length){const e=o[S-1].slice(m);n(e,S,m,-1,-1,-1,-1)}S++;m=0}while(e>S){if(S<=o.length){n(o[S-1],S,0,-1,-1,-1,-1)}S++}if(t>m){if(S<=o.length){const e=o[S-1].slice(m,t);n(e,S,m,-1,-1,-1,-1)}m=t}if(s>=0&&(e{const o=u(e);if(o.length===0){return{generatedLine:1,generatedColumn:0}}const{sources:c,sourcesContent:a,mappings:h}=t;for(let e=0;e{if(s<0||eo.length){return}while(e>l){if(l<=o.length){n(o[l-1],l,0,-1,-1,-1,-1)}l++}if(e<=o.length){n(o[e-1],e,0,s,r,i,-1);l++}};i(h,onMapping);for(;l<=o.length;l++){n(o[l-1],l,0,-1,-1,-1,-1)}const d=o[o.length-1];const p=d.endsWith("\n");const g=p?o.length+1:o.length;const _=p?0:d.length;return{generatedLine:g,generatedColumn:_}};const streamChunksOfSourceMapFinal=(e,t,n,u,f)=>{const o=s(e);const{generatedLine:c,generatedColumn:a}=o;if(c===1&&a===0)return o;const{sources:h,sourcesContent:l,names:d,mappings:p}=t;for(let e=0;e{if(e>=c&&(t>=a||e>c)){return}if(s>=0){n(undefined,e,t,s,r,i,u);g=e}else if(g===e){n(undefined,e,t,-1,-1,-1,-1);g=0}};i(p,onMapping);return o};const streamChunksOfSourceMapLinesFinal=(e,t,n,u,f)=>{const o=s(e);const{generatedLine:c,generatedColumn:a}=o;if(c===1&&a===0){return{generatedLine:1,generatedColumn:0}}const{sources:h,sourcesContent:l,mappings:d}=t;for(let e=0;e{if(s>=0&&g<=e&&e<=p){n(undefined,e,0,s,r,i,-1);g=e+1}};i(d,onMapping);return o};e.exports=(e,t,n,s,r,i,u)=>{if(u){return i?streamChunksOfSourceMapFinal(e,t,n,s,r):streamChunksOfSourceMapFull(e,t,n,s,r)}else{return i?streamChunksOfSourceMapLinesFinal(e,t,n,s,r):streamChunksOfSourceMapLinesFull(e,t,n,s,r)}}},854:function(e){"use strict";let t=true;function isDualStringBufferCachingEnabled(){return t}function enableDualStringBufferCaching(){t=true}function disableDualStringBufferCaching(){t=false}const n=new Map;function internString(e){if(!isStringInterningEnabled()||!e||e.length<128||typeof e!=="string"){return e}let t=n.get(e);if(t===undefined){t=e;n.set(e,t)}return t}let s=0;function isStringInterningEnabled(){return s>0}function enterStringInterningRange(){s++}function exitStringInterningRange(){if(--s<=0){n.clear();s=0}}e.exports={disableDualStringBufferCaching:disableDualStringBufferCaching,enableDualStringBufferCaching:enableDualStringBufferCaching,internString:internString,isDualStringBufferCachingEnabled:isDualStringBufferCachingEnabled,enterStringInterningRange:enterStringInterningRange,exitStringInterningRange:exitStringInterningRange}},449:function(e,t,n){const defineExport=(e,n)=>{let s;Object.defineProperty(t,e,{get:()=>{if(n!==undefined){s=n();n=undefined}return s},configurable:true})};defineExport("Source",(()=>n(734)));defineExport("RawSource",(()=>n(804)));defineExport("OriginalSource",(()=>n(827)));defineExport("SourceMapSource",(()=>n(662)));defineExport("CachedSource",(()=>n(374)));defineExport("ConcatSource",(()=>n(640)));defineExport("ReplaceSource",(()=>n(98)));defineExport("PrefixSource",(()=>n(335)));defineExport("SizeOnlySource",(()=>n(205)));defineExport("CompatSource",(()=>n(773)));defineExport("stringBufferUtils",(()=>n(854)))}};var t={};function __nccwpck_require__(n){var s=t[n];if(s!==undefined){return s.exports}var r=t[n]={exports:{}};var i=true;try{e[n](r,r.exports,__nccwpck_require__);i=false}finally{if(i)delete t[n]}return r.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n=__nccwpck_require__(449);module.exports=n})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/webpack-sources3/package.json b/cli/app/node_modules/next/dist/compiled/webpack-sources3/package.json new file mode 100644 index 00000000000..acd3193c9f7 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/webpack-sources3/package.json @@ -0,0 +1 @@ +{"name":"webpack-sources","main":"index.js","author":"Tobias Koppers @sokra","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/ws/index.js b/cli/app/node_modules/next/dist/compiled/ws/index.js new file mode 100644 index 00000000000..1ccdf5f68d7 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/ws/index.js @@ -0,0 +1 @@ +(()=>{var __webpack_modules__={28:(e,t,s)=>{"use strict";const r=s(335);r.createWebSocketStream=s(551);r.Server=s(597);r.Receiver=s(157);r.Sender=s(769);r.WebSocket=r;r.WebSocketServer=r.Server;e.exports=r},214:(e,t,s)=>{"use strict";const{EMPTY_BUFFER:r}=s(217);function concat(e,t){if(e.length===0)return r;if(e.length===1)return e[0];const s=Buffer.allocUnsafe(t);let n=0;for(let t=0;t{"use strict";e.exports={BINARY_TYPES:["nodebuffer","arraybuffer","fragments"],EMPTY_BUFFER:Buffer.alloc(0),GUID:"258EAFA5-E914-47DA-95CA-C5AB0DC85B11",kForOnEventAttribute:Symbol("kIsForOnEventAttribute"),kListener:Symbol("kListener"),kStatusCode:Symbol("status-code"),kWebSocket:Symbol("websocket"),NOOP:()=>{}}},874:(e,t,s)=>{"use strict";const{kForOnEventAttribute:r,kListener:n}=s(217);const i=Symbol("kCode");const o=Symbol("kData");const a=Symbol("kError");const c=Symbol("kMessage");const l=Symbol("kReason");const f=Symbol("kTarget");const h=Symbol("kType");const d=Symbol("kWasClean");class Event{constructor(e){this[f]=null;this[h]=e}get target(){return this[f]}get type(){return this[h]}}Object.defineProperty(Event.prototype,"target",{enumerable:true});Object.defineProperty(Event.prototype,"type",{enumerable:true});class CloseEvent extends Event{constructor(e,t={}){super(e);this[i]=t.code===undefined?0:t.code;this[l]=t.reason===undefined?"":t.reason;this[d]=t.wasClean===undefined?false:t.wasClean}get code(){return this[i]}get reason(){return this[l]}get wasClean(){return this[d]}}Object.defineProperty(CloseEvent.prototype,"code",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"reason",{enumerable:true});Object.defineProperty(CloseEvent.prototype,"wasClean",{enumerable:true});class ErrorEvent extends Event{constructor(e,t={}){super(e);this[a]=t.error===undefined?null:t.error;this[c]=t.message===undefined?"":t.message}get error(){return this[a]}get message(){return this[c]}}Object.defineProperty(ErrorEvent.prototype,"error",{enumerable:true});Object.defineProperty(ErrorEvent.prototype,"message",{enumerable:true});class MessageEvent extends Event{constructor(e,t={}){super(e);this[o]=t.data===undefined?null:t.data}get data(){return this[o]}}Object.defineProperty(MessageEvent.prototype,"data",{enumerable:true});const u={addEventListener(e,t,s={}){let i;if(e==="message"){i=function onMessage(e,s){const r=new MessageEvent("message",{data:s?e:e.toString()});r[f]=this;t.call(this,r)}}else if(e==="close"){i=function onClose(e,s){const r=new CloseEvent("close",{code:e,reason:s.toString(),wasClean:this._closeFrameReceived&&this._closeFrameSent});r[f]=this;t.call(this,r)}}else if(e==="error"){i=function onError(e){const s=new ErrorEvent("error",{error:e,message:e.message});s[f]=this;t.call(this,s)}}else if(e==="open"){i=function onOpen(){const e=new Event("open");e[f]=this;t.call(this,e)}}else{return}i[r]=!!s[r];i[n]=t;if(s.once){this.once(e,i)}else{this.on(e,i)}},removeEventListener(e,t){for(const s of this.listeners(e)){if(s[n]===t&&!s[r]){this.removeListener(e,s);break}}}};e.exports={CloseEvent:CloseEvent,ErrorEvent:ErrorEvent,Event:Event,EventTarget:u,MessageEvent:MessageEvent}},725:(e,t,s)=>{"use strict";const{tokenChars:r}=s(848);function push(e,t,s){if(e[t]===undefined)e[t]=[s];else e[t].push(s)}function parse(e){const t=Object.create(null);let s=Object.create(null);let n=false;let i=false;let o=false;let a;let c;let l=-1;let f=-1;let h=-1;let d=0;for(;d{let s=e[t];if(!Array.isArray(s))s=[s];return s.map((e=>[t].concat(Object.keys(e).map((t=>{let s=e[t];if(!Array.isArray(s))s=[s];return s.map((e=>e===true?t:`${t}=${e}`)).join("; ")}))).join("; "))).join(", ")})).join(", ")}e.exports={format:format,parse:parse}},462:e=>{"use strict";const t=Symbol("kDone");const s=Symbol("kRun");class Limiter{constructor(e){this[t]=()=>{this.pending--;this[s]()};this.concurrency=e||Infinity;this.jobs=[];this.pending=0}add(e){this.jobs.push(e);this[s]()}[s](){if(this.pending===this.concurrency)return;if(this.jobs.length){const e=this.jobs.shift();this.pending++;e(this[t])}}}e.exports=Limiter},290:(e,t,s)=>{"use strict";const r=s(796);const n=s(214);const i=s(462);const{kStatusCode:o}=s(217);const a=Buffer.from([0,0,255,255]);const c=Symbol("permessage-deflate");const l=Symbol("total-length");const f=Symbol("callback");const h=Symbol("buffers");const d=Symbol("error");let u;class PerMessageDeflate{constructor(e,t,s){this._maxPayload=s|0;this._options=e||{};this._threshold=this._options.threshold!==undefined?this._options.threshold:1024;this._isServer=!!t;this._deflate=null;this._inflate=null;this.params=null;if(!u){const e=this._options.concurrencyLimit!==undefined?this._options.concurrencyLimit:10;u=new i(e)}}static get extensionName(){return"permessage-deflate"}offer(){const e={};if(this._options.serverNoContextTakeover){e.server_no_context_takeover=true}if(this._options.clientNoContextTakeover){e.client_no_context_takeover=true}if(this._options.serverMaxWindowBits){e.server_max_window_bits=this._options.serverMaxWindowBits}if(this._options.clientMaxWindowBits){e.client_max_window_bits=this._options.clientMaxWindowBits}else if(this._options.clientMaxWindowBits==null){e.client_max_window_bits=true}return e}accept(e){e=this.normalizeParams(e);this.params=this._isServer?this.acceptAsServer(e):this.acceptAsClient(e);return this.params}cleanup(){if(this._inflate){this._inflate.close();this._inflate=null}if(this._deflate){const e=this._deflate[f];this._deflate.close();this._deflate=null;if(e){e(new Error("The deflate stream was closed while data was being processed"))}}}acceptAsServer(e){const t=this._options;const s=e.find((e=>{if(t.serverNoContextTakeover===false&&e.server_no_context_takeover||e.server_max_window_bits&&(t.serverMaxWindowBits===false||typeof t.serverMaxWindowBits==="number"&&t.serverMaxWindowBits>e.server_max_window_bits)||typeof t.clientMaxWindowBits==="number"&&!e.client_max_window_bits){return false}return true}));if(!s){throw new Error("None of the extension offers can be accepted")}if(t.serverNoContextTakeover){s.server_no_context_takeover=true}if(t.clientNoContextTakeover){s.client_no_context_takeover=true}if(typeof t.serverMaxWindowBits==="number"){s.server_max_window_bits=t.serverMaxWindowBits}if(typeof t.clientMaxWindowBits==="number"){s.client_max_window_bits=t.clientMaxWindowBits}else if(s.client_max_window_bits===true||t.clientMaxWindowBits===false){delete s.client_max_window_bits}return s}acceptAsClient(e){const t=e[0];if(this._options.clientNoContextTakeover===false&&t.client_no_context_takeover){throw new Error('Unexpected parameter "client_no_context_takeover"')}if(!t.client_max_window_bits){if(typeof this._options.clientMaxWindowBits==="number"){t.client_max_window_bits=this._options.clientMaxWindowBits}}else if(this._options.clientMaxWindowBits===false||typeof this._options.clientMaxWindowBits==="number"&&t.client_max_window_bits>this._options.clientMaxWindowBits){throw new Error('Unexpected or invalid parameter "client_max_window_bits"')}return t}normalizeParams(e){e.forEach((e=>{Object.keys(e).forEach((t=>{let s=e[t];if(s.length>1){throw new Error(`Parameter "${t}" must have only a single value`)}s=s[0];if(t==="client_max_window_bits"){if(s!==true){const e=+s;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}s=e}else if(!this._isServer){throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}}else if(t==="server_max_window_bits"){const e=+s;if(!Number.isInteger(e)||e<8||e>15){throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}s=e}else if(t==="client_no_context_takeover"||t==="server_no_context_takeover"){if(s!==true){throw new TypeError(`Invalid value for parameter "${t}": ${s}`)}}else{throw new Error(`Unknown parameter "${t}"`)}e[t]=s}))}));return e}decompress(e,t,s){u.add((r=>{this._decompress(e,t,((e,t)=>{r();s(e,t)}))}))}compress(e,t,s){u.add((r=>{this._compress(e,t,((e,t)=>{r();s(e,t)}))}))}_decompress(e,t,s){const i=this._isServer?"client":"server";if(!this._inflate){const e=`${i}_max_window_bits`;const t=typeof this.params[e]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[e];this._inflate=r.createInflateRaw({...this._options.zlibInflateOptions,windowBits:t});this._inflate[c]=this;this._inflate[l]=0;this._inflate[h]=[];this._inflate.on("error",inflateOnError);this._inflate.on("data",inflateOnData)}this._inflate[f]=s;this._inflate.write(e);if(t)this._inflate.write(a);this._inflate.flush((()=>{const e=this._inflate[d];if(e){this._inflate.close();this._inflate=null;s(e);return}const r=n.concat(this._inflate[h],this._inflate[l]);if(this._inflate._readableState.endEmitted){this._inflate.close();this._inflate=null}else{this._inflate[l]=0;this._inflate[h]=[];if(t&&this.params[`${i}_no_context_takeover`]){this._inflate.reset()}}s(null,r)}))}_compress(e,t,s){const i=this._isServer?"server":"client";if(!this._deflate){const e=`${i}_max_window_bits`;const t=typeof this.params[e]!=="number"?r.Z_DEFAULT_WINDOWBITS:this.params[e];this._deflate=r.createDeflateRaw({...this._options.zlibDeflateOptions,windowBits:t});this._deflate[l]=0;this._deflate[h]=[];this._deflate.on("data",deflateOnData)}this._deflate[f]=s;this._deflate.write(e);this._deflate.flush(r.Z_SYNC_FLUSH,(()=>{if(!this._deflate){return}let e=n.concat(this._deflate[h],this._deflate[l]);if(t)e=e.slice(0,e.length-4);this._deflate[f]=null;this._deflate[l]=0;this._deflate[h]=[];if(t&&this.params[`${i}_no_context_takeover`]){this._deflate.reset()}s(null,e)}))}}e.exports=PerMessageDeflate;function deflateOnData(e){this[h].push(e);this[l]+=e.length}function inflateOnData(e){this[l]+=e.length;if(this[c]._maxPayload<1||this[l]<=this[c]._maxPayload){this[h].push(e);return}this[d]=new RangeError("Max payload size exceeded");this[d].code="WS_ERR_UNSUPPORTED_MESSAGE_LENGTH";this[d][o]=1009;this.removeListener("data",inflateOnData);this.reset()}function inflateOnError(e){this[c]._inflate=null;e[o]=1007;this[f](e)}},157:(e,t,s)=>{"use strict";const{Writable:r}=s(781);const n=s(290);const{BINARY_TYPES:i,EMPTY_BUFFER:o,kStatusCode:a,kWebSocket:c}=s(217);const{concat:l,toArrayBuffer:f,unmask:h}=s(214);const{isValidStatusCode:d,isValidUTF8:u}=s(848);const _=0;const p=1;const m=2;const b=3;const y=4;const S=5;class Receiver extends r{constructor(e={}){super();this._binaryType=e.binaryType||i[0];this._extensions=e.extensions||{};this._isServer=!!e.isServer;this._maxPayload=e.maxPayload|0;this._skipUTF8Validation=!!e.skipUTF8Validation;this[c]=undefined;this._bufferedBytes=0;this._buffers=[];this._compressed=false;this._payloadLength=0;this._mask=undefined;this._fragmented=0;this._masked=false;this._fin=false;this._opcode=0;this._totalPayloadLength=0;this._messageLength=0;this._fragments=[];this._state=_;this._loop=false}_write(e,t,s){if(this._opcode===8&&this._state==_)return s();this._bufferedBytes+=e.length;this._buffers.push(e);this.startLoop(s)}consume(e){this._bufferedBytes-=e;if(e===this._buffers[0].length)return this._buffers.shift();if(e=s.length){t.set(this._buffers.shift(),r)}else{t.set(new Uint8Array(s.buffer,s.byteOffset,e),r);this._buffers[0]=s.slice(e)}e-=s.length}while(e>0);return t}startLoop(e){let t;this._loop=true;do{switch(this._state){case _:t=this.getInfo();break;case p:t=this.getPayloadLength16();break;case m:t=this.getPayloadLength64();break;case b:this.getMask();break;case y:t=this.getData(e);break;default:this._loop=false;return}}while(this._loop);e(t)}getInfo(){if(this._bufferedBytes<2){this._loop=false;return}const e=this.consume(2);if((e[0]&48)!==0){this._loop=false;return error(RangeError,"RSV2 and RSV3 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_2_3")}const t=(e[0]&64)===64;if(t&&!this._extensions[n.extensionName]){this._loop=false;return error(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1")}this._fin=(e[0]&128)===128;this._opcode=e[0]&15;this._payloadLength=e[1]&127;if(this._opcode===0){if(t){this._loop=false;return error(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1")}if(!this._fragmented){this._loop=false;return error(RangeError,"invalid opcode 0",true,1002,"WS_ERR_INVALID_OPCODE")}this._opcode=this._fragmented}else if(this._opcode===1||this._opcode===2){if(this._fragmented){this._loop=false;return error(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE")}this._compressed=t}else if(this._opcode>7&&this._opcode<11){if(!this._fin){this._loop=false;return error(RangeError,"FIN must be set",true,1002,"WS_ERR_EXPECTED_FIN")}if(t){this._loop=false;return error(RangeError,"RSV1 must be clear",true,1002,"WS_ERR_UNEXPECTED_RSV_1")}if(this._payloadLength>125){this._loop=false;return error(RangeError,`invalid payload length ${this._payloadLength}`,true,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}}else{this._loop=false;return error(RangeError,`invalid opcode ${this._opcode}`,true,1002,"WS_ERR_INVALID_OPCODE")}if(!this._fin&&!this._fragmented)this._fragmented=this._opcode;this._masked=(e[1]&128)===128;if(this._isServer){if(!this._masked){this._loop=false;return error(RangeError,"MASK must be set",true,1002,"WS_ERR_EXPECTED_MASK")}}else if(this._masked){this._loop=false;return error(RangeError,"MASK must be clear",true,1002,"WS_ERR_UNEXPECTED_MASK")}if(this._payloadLength===126)this._state=p;else if(this._payloadLength===127)this._state=m;else return this.haveLength()}getPayloadLength16(){if(this._bufferedBytes<2){this._loop=false;return}this._payloadLength=this.consume(2).readUInt16BE(0);return this.haveLength()}getPayloadLength64(){if(this._bufferedBytes<8){this._loop=false;return}const e=this.consume(8);const t=e.readUInt32BE(0);if(t>Math.pow(2,53-32)-1){this._loop=false;return error(RangeError,"Unsupported WebSocket frame: payload length > 2^53 - 1",false,1009,"WS_ERR_UNSUPPORTED_DATA_PAYLOAD_LENGTH")}this._payloadLength=t*Math.pow(2,32)+e.readUInt32BE(4);return this.haveLength()}haveLength(){if(this._payloadLength&&this._opcode<8){this._totalPayloadLength+=this._payloadLength;if(this._totalPayloadLength>this._maxPayload&&this._maxPayload>0){this._loop=false;return error(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH")}}if(this._masked)this._state=b;else this._state=y}getMask(){if(this._bufferedBytes<4){this._loop=false;return}this._mask=this.consume(4);this._state=y}getData(e){let t=o;if(this._payloadLength){if(this._bufferedBytes7)return this.controlMessage(t);if(this._compressed){this._state=S;this.decompress(t,e);return}if(t.length){this._messageLength=this._totalPayloadLength;this._fragments.push(t)}return this.dataMessage()}decompress(e,t){const s=this._extensions[n.extensionName];s.decompress(e,this._fin,((e,s)=>{if(e)return t(e);if(s.length){this._messageLength+=s.length;if(this._messageLength>this._maxPayload&&this._maxPayload>0){return t(error(RangeError,"Max payload size exceeded",false,1009,"WS_ERR_UNSUPPORTED_MESSAGE_LENGTH"))}this._fragments.push(s)}const r=this.dataMessage();if(r)return t(r);this.startLoop(t)}))}dataMessage(){if(this._fin){const e=this._messageLength;const t=this._fragments;this._totalPayloadLength=0;this._messageLength=0;this._fragmented=0;this._fragments=[];if(this._opcode===2){let s;if(this._binaryType==="nodebuffer"){s=l(t,e)}else if(this._binaryType==="arraybuffer"){s=f(l(t,e))}else{s=t}this.emit("message",s,true)}else{const s=l(t,e);if(!this._skipUTF8Validation&&!u(s)){this._loop=false;return error(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8")}this.emit("message",s,false)}}this._state=_}controlMessage(e){if(this._opcode===8){this._loop=false;if(e.length===0){this.emit("conclude",1005,o);this.end()}else if(e.length===1){return error(RangeError,"invalid payload length 1",true,1002,"WS_ERR_INVALID_CONTROL_PAYLOAD_LENGTH")}else{const t=e.readUInt16BE(0);if(!d(t)){return error(RangeError,`invalid status code ${t}`,true,1002,"WS_ERR_INVALID_CLOSE_CODE")}const s=e.slice(2);if(!this._skipUTF8Validation&&!u(s)){return error(Error,"invalid UTF-8 sequence",true,1007,"WS_ERR_INVALID_UTF8")}this.emit("conclude",t,s);this.end()}}else if(this._opcode===9){this.emit("ping",e)}else{this.emit("pong",e)}this._state=_}}e.exports=Receiver;function error(e,t,s,r,n){const i=new e(s?`Invalid WebSocket frame: ${t}`:t);Error.captureStackTrace(i,error);i.code=n;i[a]=r;return i}},769:(e,t,s)=>{"use strict";const r=s(808);const n=s(404);const{randomFillSync:i}=s(113);const o=s(290);const{EMPTY_BUFFER:a}=s(217);const{isValidStatusCode:c}=s(848);const{mask:l,toBuffer:f}=s(214);const h=Buffer.alloc(4);class Sender{constructor(e,t){this._extensions=t||{};this._socket=e;this._firstFragment=true;this._compress=false;this._bufferedBytes=0;this._deflating=false;this._queue=[]}static frame(e,t){const s=t.mask&&t.readOnly;let r=t.mask?6:2;let n=e.length;if(e.length>=65536){r+=8;n=127}else if(e.length>125){r+=2;n=126}const o=Buffer.allocUnsafe(s?e.length+r:r);o[0]=t.fin?t.opcode|128:t.opcode;if(t.rsv1)o[0]|=64;o[1]=n;if(n===126){o.writeUInt16BE(e.length,2)}else if(n===127){o.writeUInt32BE(0,2);o.writeUInt32BE(e.length,6)}if(!t.mask)return[o,e];i(h,0,4);o[1]|=128;o[r-4]=h[0];o[r-3]=h[1];o[r-2]=h[2];o[r-1]=h[3];if(s){l(e,h,o,r,e.length);return[o]}l(e,h,e,0,e.length);return[o,e]}close(e,t,s,r){let n;if(e===undefined){n=a}else if(typeof e!=="number"||!c(e)){throw new TypeError("First argument must be a valid error code number")}else if(t===undefined||!t.length){n=Buffer.allocUnsafe(2);n.writeUInt16BE(e,0)}else{const s=Buffer.byteLength(t);if(s>123){throw new RangeError("The message must not be greater than 123 bytes")}n=Buffer.allocUnsafe(2+s);n.writeUInt16BE(e,0);if(typeof t==="string"){n.write(t,2)}else{n.set(t,2)}}if(this._deflating){this.enqueue([this.doClose,n,s,r])}else{this.doClose(n,s,r)}}doClose(e,t,s){this.sendFrame(Sender.frame(e,{fin:true,rsv1:false,opcode:8,mask:t,readOnly:false}),s)}ping(e,t,s){const r=f(e);if(r.length>125){throw new RangeError("The data size must not be greater than 125 bytes")}if(this._deflating){this.enqueue([this.doPing,r,t,f.readOnly,s])}else{this.doPing(r,t,f.readOnly,s)}}doPing(e,t,s,r){this.sendFrame(Sender.frame(e,{fin:true,rsv1:false,opcode:9,mask:t,readOnly:s}),r)}pong(e,t,s){const r=f(e);if(r.length>125){throw new RangeError("The data size must not be greater than 125 bytes")}if(this._deflating){this.enqueue([this.doPong,r,t,f.readOnly,s])}else{this.doPong(r,t,f.readOnly,s)}}doPong(e,t,s,r){this.sendFrame(Sender.frame(e,{fin:true,rsv1:false,opcode:10,mask:t,readOnly:s}),r)}send(e,t,s){const r=f(e);const n=this._extensions[o.extensionName];let i=t.binary?2:1;let a=t.compress;if(this._firstFragment){this._firstFragment=false;if(a&&n&&n.params[n._isServer?"server_no_context_takeover":"client_no_context_takeover"]){a=r.length>=n._threshold}this._compress=a}else{a=false;i=0}if(t.fin)this._firstFragment=true;if(n){const e={fin:t.fin,rsv1:a,opcode:i,mask:t.mask,readOnly:f.readOnly};if(this._deflating){this.enqueue([this.dispatch,r,this._compress,e,s])}else{this.dispatch(r,this._compress,e,s)}}else{this.sendFrame(Sender.frame(r,{fin:t.fin,rsv1:false,opcode:i,mask:t.mask,readOnly:f.readOnly}),s)}}dispatch(e,t,s,r){if(!t){this.sendFrame(Sender.frame(e,s),r);return}const n=this._extensions[o.extensionName];this._bufferedBytes+=e.length;this._deflating=true;n.compress(e,s.fin,((t,n)=>{if(this._socket.destroyed){const e=new Error("The socket was closed while data was being compressed");if(typeof r==="function")r(e);for(let t=0;t{"use strict";const{Duplex:r}=s(781);function emitClose(e){e.emit("close")}function duplexOnEnd(){if(!this.destroyed&&this._writableState.finished){this.destroy()}}function duplexOnError(e){this.removeListener("error",duplexOnError);this.destroy();if(this.listenerCount("error")===0){this.emit("error",e)}}function createWebSocketStream(e,t){let s=true;let n=true;function receiverOnDrain(){if(s)e._socket.resume()}if(e.readyState===e.CONNECTING){e.once("open",(function open(){e._receiver.removeAllListeners("drain");e._receiver.on("drain",receiverOnDrain)}))}else{e._receiver.removeAllListeners("drain");e._receiver.on("drain",receiverOnDrain)}const i=new r({...t,autoDestroy:false,emitClose:false,objectMode:false,writableObjectMode:false});e.on("message",(function message(t,r){const n=!r&&i._readableState.objectMode?t.toString():t;if(!i.push(n)){s=false;e._socket.pause()}}));e.once("error",(function error(e){if(i.destroyed)return;n=false;i.destroy(e)}));e.once("close",(function close(){if(i.destroyed)return;i.push(null)}));i._destroy=function(t,s){if(e.readyState===e.CLOSED){s(t);process.nextTick(emitClose,i);return}let r=false;e.once("error",(function error(e){r=true;s(e)}));e.once("close",(function close(){if(!r)s(t);process.nextTick(emitClose,i)}));if(n)e.terminate()};i._final=function(t){if(e.readyState===e.CONNECTING){e.once("open",(function open(){i._final(t)}));return}if(e._socket===null)return;if(e._socket._writableState.finished){t();if(i._readableState.endEmitted)i.destroy()}else{e._socket.once("finish",(function finish(){t()}));e.close()}};i._read=function(){if(e.readyState===e.OPEN&&!s){s=true;if(!e._receiver._writableState.needDrain)e._socket.resume()}};i._write=function(t,s,r){if(e.readyState===e.CONNECTING){e.once("open",(function open(){i._write(t,s,r)}));return}e.send(t,r)};i.on("end",duplexOnEnd);i.on("error",duplexOnError);return i}e.exports=createWebSocketStream},955:(e,t,s)=>{"use strict";const{tokenChars:r}=s(848);function parse(e){const t=new Set;let s=-1;let n=-1;let i=0;for(i;i{"use strict";const r=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,1,1,1,0,0,1,1,0,1,1,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,0];function isValidStatusCode(e){return e>=1e3&&e<=1014&&e!==1004&&e!==1005&&e!==1006||e>=3e3&&e<=4999}function _isValidUTF8(e){const t=e.length;let s=0;while(s=t||(e[s+1]&192)!==128||(e[s+2]&192)!==128||e[s]===224&&(e[s+1]&224)===128||e[s]===237&&(e[s+1]&224)===160){return false}s+=3}else if((e[s]&248)===240){if(s+3>=t||(e[s+1]&192)!==128||(e[s+2]&192)!==128||(e[s+3]&192)!==128||e[s]===240&&(e[s+1]&240)===128||e[s]===244&&e[s+1]>143||e[s]>244){return false}s+=4}else{return false}}return true}try{const t=s(12);e.exports={isValidStatusCode:isValidStatusCode,isValidUTF8(e){return e.length<150?_isValidUTF8(e):t(e)},tokenChars:r}}catch(t){e.exports={isValidStatusCode:isValidStatusCode,isValidUTF8:_isValidUTF8,tokenChars:r}}},597:(e,t,s)=>{"use strict";const r=s(361);const n=s(685);const i=s(687);const o=s(808);const a=s(404);const{createHash:c}=s(113);const l=s(725);const f=s(290);const h=s(955);const d=s(335);const{GUID:u,kWebSocket:_}=s(217);const p=/^[+/0-9A-Za-z]{22}==$/;const m=0;const b=1;const y=2;class WebSocketServer extends r{constructor(e,t){super();e={maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:false,handleProtocols:null,clientTracking:true,verifyClient:null,noServer:false,backlog:null,server:null,host:null,path:null,port:null,...e};if(e.port==null&&!e.server&&!e.noServer||e.port!=null&&(e.server||e.noServer)||e.server&&e.noServer){throw new TypeError('One and only one of the "port", "server", or "noServer" options '+"must be specified")}if(e.port!=null){this._server=n.createServer(((e,t)=>{const s=n.STATUS_CODES[426];t.writeHead(426,{"Content-Length":s.length,"Content-Type":"text/plain"});t.end(s)}));this._server.listen(e.port,e.host,e.backlog,t)}else if(e.server){this._server=e.server}if(this._server){const e=this.emit.bind(this,"connection");this._removeListeners=addListeners(this._server,{listening:this.emit.bind(this,"listening"),error:this.emit.bind(this,"error"),upgrade:(t,s,r)=>{this.handleUpgrade(t,s,r,e)}})}if(e.perMessageDeflate===true)e.perMessageDeflate={};if(e.clientTracking){this.clients=new Set;this._shouldEmitClose=false}this.options=e;this._state=m}address(){if(this.options.noServer){throw new Error('The server is operating in "noServer" mode')}if(!this._server)return null;return this._server.address()}close(e){if(this._state===y){if(e){this.once("close",(()=>{e(new Error("The server is not running"))}))}process.nextTick(emitClose,this);return}if(e)this.once("close",e);if(this._state===b)return;this._state=b;if(this.options.noServer||this.options.server){if(this._server){this._removeListeners();this._removeListeners=this._server=null}if(this.clients){if(!this.clients.size){process.nextTick(emitClose,this)}else{this._shouldEmitClose=true}}else{process.nextTick(emitClose,this)}}else{const e=this._server;this._removeListeners();this._removeListeners=this._server=null;e.close((()=>{emitClose(this)}))}}shouldHandle(e){if(this.options.path){const t=e.url.indexOf("?");const s=t!==-1?e.url.slice(0,t):e.url;if(s!==this.options.path)return false}return true}handleUpgrade(e,t,s,r){t.on("error",socketOnError);const n=e.headers["sec-websocket-key"]!==undefined?e.headers["sec-websocket-key"]:false;const i=+e.headers["sec-websocket-version"];if(e.method!=="GET"||e.headers.upgrade.toLowerCase()!=="websocket"||!n||!p.test(n)||i!==8&&i!==13||!this.shouldHandle(e)){return abortHandshake(t,400)}const o=e.headers["sec-websocket-protocol"];let a=new Set;if(o!==undefined){try{a=h.parse(o)}catch(e){return abortHandshake(t,400)}}const c=e.headers["sec-websocket-extensions"];const d={};if(this.options.perMessageDeflate&&c!==undefined){const e=new f(this.options.perMessageDeflate,true,this.options.maxPayload);try{const t=l.parse(c);if(t[f.extensionName]){e.accept(t[f.extensionName]);d[f.extensionName]=e}}catch(e){return abortHandshake(t,400)}}if(this.options.verifyClient){const o={origin:e.headers[`${i===8?"sec-websocket-origin":"origin"}`],secure:!!(e.socket.authorized||e.socket.encrypted),req:e};if(this.options.verifyClient.length===2){this.options.verifyClient(o,((i,o,c,l)=>{if(!i){return abortHandshake(t,o||401,c,l)}this.completeUpgrade(d,n,a,e,t,s,r)}));return}if(!this.options.verifyClient(o))return abortHandshake(t,401)}this.completeUpgrade(d,n,a,e,t,s,r)}completeUpgrade(e,t,s,r,n,i,o){if(!n.readable||!n.writable)return n.destroy();if(n[_]){throw new Error("server.handleUpgrade() was called more than once with the same "+"socket, possibly due to a misconfiguration")}if(this._state>m)return abortHandshake(n,503);const a=c("sha1").update(t+u).digest("base64");const h=["HTTP/1.1 101 Switching Protocols","Upgrade: websocket","Connection: Upgrade",`Sec-WebSocket-Accept: ${a}`];const p=new d(null);if(s.size){const e=this.options.handleProtocols?this.options.handleProtocols(s,r):s.values().next().value;if(e){h.push(`Sec-WebSocket-Protocol: ${e}`);p._protocol=e}}if(e[f.extensionName]){const t=e[f.extensionName].params;const s=l.format({[f.extensionName]:[t]});h.push(`Sec-WebSocket-Extensions: ${s}`);p._extensions=e}this.emit("headers",h,r);n.write(h.concat("\r\n").join("\r\n"));n.removeListener("error",socketOnError);p.setSocket(n,i,{maxPayload:this.options.maxPayload,skipUTF8Validation:this.options.skipUTF8Validation});if(this.clients){this.clients.add(p);p.on("close",(()=>{this.clients.delete(p);if(this._shouldEmitClose&&!this.clients.size){process.nextTick(emitClose,this)}}))}o(p,r)}}e.exports=WebSocketServer;function addListeners(e,t){for(const s of Object.keys(t))e.on(s,t[s]);return function removeListeners(){for(const s of Object.keys(t)){e.removeListener(s,t[s])}}}function emitClose(e){e._state=y;e.emit("close")}function socketOnError(){this.destroy()}function abortHandshake(e,t,s,r){if(e.writable){s=s||n.STATUS_CODES[t];r={Connection:"close","Content-Type":"text/html","Content-Length":Buffer.byteLength(s),...r};e.write(`HTTP/1.1 ${t} ${n.STATUS_CODES[t]}\r\n`+Object.keys(r).map((e=>`${e}: ${r[e]}`)).join("\r\n")+"\r\n\r\n"+s)}e.removeListener("error",socketOnError);e.destroy()}},335:(e,t,s)=>{"use strict";const r=s(361);const n=s(687);const i=s(685);const o=s(808);const a=s(404);const{randomBytes:c,createHash:l}=s(113);const{Readable:f}=s(781);const{URL:h}=s(310);const d=s(290);const u=s(157);const _=s(769);const{BINARY_TYPES:p,EMPTY_BUFFER:m,GUID:b,kForOnEventAttribute:y,kListener:S,kStatusCode:g,kWebSocket:k,NOOP:v}=s(217);const{EventTarget:{addEventListener:E,removeEventListener:w}}=s(874);const{format:x,parse:O}=s(725);const{toBuffer:C}=s(214);const T=["CONNECTING","OPEN","CLOSING","CLOSED"];const N=/^[!#$%&'*+\-.0-9A-Z^_`|a-z~]+$/;const L=[8,13];const P=30*1e3;class WebSocket extends r{constructor(e,t,s){super();this._binaryType=p[0];this._closeCode=1006;this._closeFrameReceived=false;this._closeFrameSent=false;this._closeMessage=m;this._closeTimer=null;this._extensions={};this._protocol="";this._readyState=WebSocket.CONNECTING;this._receiver=null;this._sender=null;this._socket=null;if(e!==null){this._bufferedAmount=0;this._isServer=false;this._redirects=0;if(t===undefined){t=[]}else if(!Array.isArray(t)){if(typeof t==="object"&&t!==null){s=t;t=[]}else{t=[t]}}initAsClient(this,e,t,s)}else{this._isServer=true}}get binaryType(){return this._binaryType}set binaryType(e){if(!p.includes(e))return;this._binaryType=e;if(this._receiver)this._receiver._binaryType=e}get bufferedAmount(){if(!this._socket)return this._bufferedAmount;return this._socket._writableState.length+this._sender._bufferedBytes}get extensions(){return Object.keys(this._extensions).join()}get onclose(){return null}get onerror(){return null}get onopen(){return null}get onmessage(){return null}get protocol(){return this._protocol}get readyState(){return this._readyState}get url(){return this._url}setSocket(e,t,s){const r=new u({binaryType:this.binaryType,extensions:this._extensions,isServer:this._isServer,maxPayload:s.maxPayload,skipUTF8Validation:s.skipUTF8Validation});this._sender=new _(e,this._extensions);this._receiver=r;this._socket=e;r[k]=this;e[k]=this;r.on("conclude",receiverOnConclude);r.on("drain",receiverOnDrain);r.on("error",receiverOnError);r.on("message",receiverOnMessage);r.on("ping",receiverOnPing);r.on("pong",receiverOnPong);e.setTimeout(0);e.setNoDelay();if(t.length>0)e.unshift(t);e.on("close",socketOnClose);e.on("data",socketOnData);e.on("end",socketOnEnd);e.on("error",socketOnError);this._readyState=WebSocket.OPEN;this.emit("open")}emitClose(){if(!this._socket){this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage);return}if(this._extensions[d.extensionName]){this._extensions[d.extensionName].cleanup()}this._receiver.removeAllListeners();this._readyState=WebSocket.CLOSED;this.emit("close",this._closeCode,this._closeMessage)}close(e,t){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";return abortHandshake(this,this._req,e)}if(this.readyState===WebSocket.CLOSING){if(this._closeFrameSent&&(this._closeFrameReceived||this._receiver._writableState.errorEmitted)){this._socket.end()}return}this._readyState=WebSocket.CLOSING;this._sender.close(e,t,!this._isServer,(e=>{if(e)return;this._closeFrameSent=true;if(this._closeFrameReceived||this._receiver._writableState.errorEmitted){this._socket.end()}}));this._closeTimer=setTimeout(this._socket.destroy.bind(this._socket),P)}ping(e,t,s){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){s=e;e=t=undefined}else if(typeof t==="function"){s=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,s);return}if(t===undefined)t=!this._isServer;this._sender.ping(e||m,t,s)}pong(e,t,s){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof e==="function"){s=e;e=t=undefined}else if(typeof t==="function"){s=t;t=undefined}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,s);return}if(t===undefined)t=!this._isServer;this._sender.pong(e||m,t,s)}send(e,t,s){if(this.readyState===WebSocket.CONNECTING){throw new Error("WebSocket is not open: readyState 0 (CONNECTING)")}if(typeof t==="function"){s=t;t={}}if(typeof e==="number")e=e.toString();if(this.readyState!==WebSocket.OPEN){sendAfterClose(this,e,s);return}const r={binary:typeof e!=="string",mask:!this._isServer,compress:true,fin:true,...t};if(!this._extensions[d.extensionName]){r.compress=false}this._sender.send(e||m,r,s)}terminate(){if(this.readyState===WebSocket.CLOSED)return;if(this.readyState===WebSocket.CONNECTING){const e="WebSocket was closed before the connection was established";return abortHandshake(this,this._req,e)}if(this._socket){this._readyState=WebSocket.CLOSING;this._socket.destroy()}}}Object.defineProperty(WebSocket,"CONNECTING",{enumerable:true,value:T.indexOf("CONNECTING")});Object.defineProperty(WebSocket.prototype,"CONNECTING",{enumerable:true,value:T.indexOf("CONNECTING")});Object.defineProperty(WebSocket,"OPEN",{enumerable:true,value:T.indexOf("OPEN")});Object.defineProperty(WebSocket.prototype,"OPEN",{enumerable:true,value:T.indexOf("OPEN")});Object.defineProperty(WebSocket,"CLOSING",{enumerable:true,value:T.indexOf("CLOSING")});Object.defineProperty(WebSocket.prototype,"CLOSING",{enumerable:true,value:T.indexOf("CLOSING")});Object.defineProperty(WebSocket,"CLOSED",{enumerable:true,value:T.indexOf("CLOSED")});Object.defineProperty(WebSocket.prototype,"CLOSED",{enumerable:true,value:T.indexOf("CLOSED")});["binaryType","bufferedAmount","extensions","protocol","readyState","url"].forEach((e=>{Object.defineProperty(WebSocket.prototype,e,{enumerable:true})}));["open","error","close","message"].forEach((e=>{Object.defineProperty(WebSocket.prototype,`on${e}`,{enumerable:true,get(){for(const t of this.listeners(e)){if(t[y])return t[S]}return null},set(t){for(const t of this.listeners(e)){if(t[y]){this.removeListener(e,t);break}}if(typeof t!=="function")return;this.addEventListener(e,t,{[y]:true})}})}));WebSocket.prototype.addEventListener=E;WebSocket.prototype.removeEventListener=w;e.exports=WebSocket;function initAsClient(e,t,s,r){const o={protocolVersion:L[1],maxPayload:100*1024*1024,skipUTF8Validation:false,perMessageDeflate:true,followRedirects:false,maxRedirects:10,...r,createConnection:undefined,socketPath:undefined,hostname:undefined,protocol:undefined,timeout:undefined,method:undefined,host:undefined,path:undefined,port:undefined};if(!L.includes(o.protocolVersion)){throw new RangeError(`Unsupported protocol version: ${o.protocolVersion} `+`(supported versions: ${L.join(", ")})`)}let a;if(t instanceof h){a=t;e._url=t.href}else{try{a=new h(t)}catch(e){throw new SyntaxError(`Invalid URL: ${t}`)}e._url=t}const f=a.protocol==="wss:";const u=a.protocol==="ws+unix:";if(a.protocol!=="ws:"&&!f&&!u){throw new SyntaxError('The URL\'s protocol must be one of "ws:", "wss:", or "ws+unix:"')}if(u&&!a.pathname){throw new SyntaxError("The URL's pathname is empty")}if(a.hash){throw new SyntaxError("The URL contains a fragment identifier")}const _=f?443:80;const p=c(16).toString("base64");const m=f?n.get:i.get;const y=new Set;let S;o.createConnection=f?tlsConnect:netConnect;o.defaultPort=o.defaultPort||_;o.port=a.port||_;o.host=a.hostname.startsWith("[")?a.hostname.slice(1,-1):a.hostname;o.headers={"Sec-WebSocket-Version":o.protocolVersion,"Sec-WebSocket-Key":p,Connection:"Upgrade",Upgrade:"websocket",...o.headers};o.path=a.pathname+a.search;o.timeout=o.handshakeTimeout;if(o.perMessageDeflate){S=new d(o.perMessageDeflate!==true?o.perMessageDeflate:{},false,o.maxPayload);o.headers["Sec-WebSocket-Extensions"]=x({[d.extensionName]:S.offer()})}if(s.length){for(const e of s){if(typeof e!=="string"||!N.test(e)||y.has(e)){throw new SyntaxError("An invalid or duplicated subprotocol was specified")}y.add(e)}o.headers["Sec-WebSocket-Protocol"]=s.join(",")}if(o.origin){if(o.protocolVersion<13){o.headers["Sec-WebSocket-Origin"]=o.origin}else{o.headers.Origin=o.origin}}if(a.username||a.password){o.auth=`${a.username}:${a.password}`}if(u){const e=o.path.split(":");o.socketPath=e[0];o.path=e[1]}let g=e._req=m(o);if(o.timeout){g.on("timeout",(()=>{abortHandshake(e,g,"Opening handshake has timed out")}))}g.on("error",(t=>{if(g===null||g.aborted)return;g=e._req=null;e._readyState=WebSocket.CLOSING;e.emit("error",t);e.emitClose()}));g.on("response",(n=>{const i=n.headers.location;const a=n.statusCode;if(i&&o.followRedirects&&a>=300&&a<400){if(++e._redirects>o.maxRedirects){abortHandshake(e,g,"Maximum redirects exceeded");return}g.abort();const n=new h(i,t);initAsClient(e,n,s,r)}else if(!e.emit("unexpected-response",g,n)){abortHandshake(e,g,`Unexpected server response: ${n.statusCode}`)}}));g.on("upgrade",((t,s,r)=>{e.emit("upgrade",t);if(e.readyState!==WebSocket.CONNECTING)return;g=e._req=null;const n=l("sha1").update(p+b).digest("base64");if(t.headers["sec-websocket-accept"]!==n){abortHandshake(e,s,"Invalid Sec-WebSocket-Accept header");return}const i=t.headers["sec-websocket-protocol"];let a;if(i!==undefined){if(!y.size){a="Server sent a subprotocol but none was requested"}else if(!y.has(i)){a="Server sent an invalid subprotocol"}}else if(y.size){a="Server sent no subprotocol"}if(a){abortHandshake(e,s,a);return}if(i)e._protocol=i;const c=t.headers["sec-websocket-extensions"];if(c!==undefined){if(!S){const t="Server sent a Sec-WebSocket-Extensions header but no extension "+"was requested";abortHandshake(e,s,t);return}let t;try{t=O(c)}catch(t){const r="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,s,r);return}const r=Object.keys(t);if(r.length!==1||r[0]!==d.extensionName){const t="Server indicated an extension that was not requested";abortHandshake(e,s,t);return}try{S.accept(t[d.extensionName])}catch(t){const r="Invalid Sec-WebSocket-Extensions header";abortHandshake(e,s,r);return}e._extensions[d.extensionName]=S}e.setSocket(s,r,{maxPayload:o.maxPayload,skipUTF8Validation:o.skipUTF8Validation})}))}function netConnect(e){e.path=e.socketPath;return o.connect(e)}function tlsConnect(e){e.path=undefined;if(!e.servername&&e.servername!==""){e.servername=o.isIP(e.host)?"":e.host}return a.connect(e)}function abortHandshake(e,t,s){e._readyState=WebSocket.CLOSING;const r=new Error(s);Error.captureStackTrace(r,abortHandshake);if(t.setHeader){t.abort();if(t.socket&&!t.socket.destroyed){t.socket.destroy()}t.once("abort",e.emitClose.bind(e));e.emit("error",r)}else{t.destroy(r);t.once("error",e.emit.bind(e,"error"));t.once("close",e.emitClose.bind(e))}}function sendAfterClose(e,t,s){if(t){const s=C(t).length;if(e._socket)e._sender._bufferedBytes+=s;else e._bufferedAmount+=s}if(s){const t=new Error(`WebSocket is not open: readyState ${e.readyState} `+`(${T[e.readyState]})`);s(t)}}function receiverOnConclude(e,t){const s=this[k];s._closeFrameReceived=true;s._closeMessage=t;s._closeCode=e;if(s._socket[k]===undefined)return;s._socket.removeListener("data",socketOnData);process.nextTick(resume,s._socket);if(e===1005)s.close();else s.close(e,t)}function receiverOnDrain(){this[k]._socket.resume()}function receiverOnError(e){const t=this[k];if(t._socket[k]!==undefined){t._socket.removeListener("data",socketOnData);process.nextTick(resume,t._socket);t.close(e[g])}t.emit("error",e)}function receiverOnFinish(){this[k].emitClose()}function receiverOnMessage(e,t){this[k].emit("message",e,t)}function receiverOnPing(e){const t=this[k];t.pong(e,!t._isServer,v);t.emit("ping",e)}function receiverOnPong(e){this[k].emit("pong",e)}function resume(e){e.resume()}function socketOnClose(){const e=this[k];this.removeListener("close",socketOnClose);this.removeListener("data",socketOnData);this.removeListener("end",socketOnEnd);e._readyState=WebSocket.CLOSING;let t;if(!this._readableState.endEmitted&&!e._closeFrameReceived&&!e._receiver._writableState.errorEmitted&&(t=e._socket.read())!==null){e._receiver.write(t)}e._receiver.end();this[k]=undefined;clearTimeout(e._closeTimer);if(e._receiver._writableState.finished||e._receiver._writableState.errorEmitted){e.emitClose()}else{e._receiver.on("error",receiverOnFinish);e._receiver.on("finish",receiverOnFinish)}}function socketOnData(e){if(!this[k]._receiver.write(e)){this.pause()}}function socketOnEnd(){const e=this[k];e._readyState=WebSocket.CLOSING;e._receiver.end();this.end()}function socketOnError(){const e=this[k];this.removeListener("error",socketOnError);this.on("error",v);if(e){e._readyState=WebSocket.CLOSING;this.destroy()}}},605:module=>{module.exports=eval("require")("bufferutil")},12:module=>{module.exports=eval("require")("utf-8-validate")},113:e=>{"use strict";e.exports=require("crypto")},361:e=>{"use strict";e.exports=require("events")},685:e=>{"use strict";e.exports=require("http")},687:e=>{"use strict";e.exports=require("https")},808:e=>{"use strict";e.exports=require("net")},781:e=>{"use strict";e.exports=require("stream")},404:e=>{"use strict";e.exports=require("tls")},310:e=>{"use strict";e.exports=require("url")},796:e=>{"use strict";e.exports=require("zlib")}};var __webpack_module_cache__={};function __nccwpck_require__(e){var t=__webpack_module_cache__[e];if(t!==undefined){return t.exports}var s=__webpack_module_cache__[e]={exports:{}};var r=true;try{__webpack_modules__[e](s,s.exports,__nccwpck_require__);r=false}finally{if(r)delete __webpack_module_cache__[e]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var __webpack_exports__=__nccwpck_require__(28);module.exports=__webpack_exports__})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/ws/package.json b/cli/app/node_modules/next/dist/compiled/ws/package.json new file mode 100644 index 00000000000..4098296a540 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/ws/package.json @@ -0,0 +1 @@ +{"name":"ws","main":"index.js","author":"Einar Otto Stangvik (http://2x.io)","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/zod-validation-error/index.js b/cli/app/node_modules/next/dist/compiled/zod-validation-error/index.js new file mode 100644 index 00000000000..24b076f6fd6 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/zod-validation-error/index.js @@ -0,0 +1 @@ +(()=>{"use strict";var r={452:(r,e,o)=>{var t=Object.create;var s=Object.defineProperty;var n=Object.getOwnPropertyDescriptor;var i=Object.getOwnPropertyNames;var a=Object.getPrototypeOf;var u=Object.prototype.hasOwnProperty;var __export=(r,e)=>{for(var o in e)s(r,o,{get:e[o],enumerable:true})};var __copyProps=(r,e,o,t)=>{if(e&&typeof e==="object"||typeof e==="function"){for(let a of i(e))if(!u.call(r,a)&&a!==o)s(r,a,{get:()=>e[a],enumerable:!(t=n(e,a))||t.enumerable})}return r};var __toESM=(r,e,o)=>(o=r!=null?t(a(r)):{},__copyProps(e||!r||!r.__esModule?s(o,"default",{value:r,enumerable:true}):o,r));var __toCommonJS=r=>__copyProps(s({},"__esModule",{value:true}),r);var d={};__export(d,{ValidationError:()=>c,createMessageBuilder:()=>createMessageBuilder,errorMap:()=>errorMap,fromError:()=>fromError,fromZodError:()=>fromZodError,fromZodIssue:()=>fromZodIssue,isValidationError:()=>isValidationError,isValidationErrorLike:()=>isValidationErrorLike,isZodErrorLike:()=>isZodErrorLike,toValidationError:()=>toValidationError});r.exports=__toCommonJS(d);function isZodErrorLike(r){return r instanceof Error&&r.name==="ZodError"&&"issues"in r&&Array.isArray(r.issues)}var c=class extends Error{name;details;constructor(r,e){super(r,e);this.name="ZodValidationError";this.details=getIssuesFromErrorOptions(e)}toString(){return this.message}};function getIssuesFromErrorOptions(r){if(r){const e=r.cause;if(isZodErrorLike(e)){return e.issues}}return[]}function isValidationError(r){return r instanceof c}function isValidationErrorLike(r){return r instanceof Error&&r.name==="ZodValidationError"}var f=__toESM(o(788));var p=__toESM(o(788));function isNonEmptyArray(r){return r.length!==0}var l=/[$_\p{ID_Start}][$\u200c\u200d\p{ID_Continue}]*/u;function joinPath(r){if(r.length===1){return r[0].toString()}return r.reduce(((r,e)=>{if(typeof e==="number"){return r+"["+e.toString()+"]"}if(e.includes('"')){return r+'["'+escapeQuotes(e)+'"]'}if(!l.test(e)){return r+'["'+e+'"]'}const o=r.length===0?"":".";return r+o+e}),"")}function escapeQuotes(r){return r.replace(/"/g,'\\"')}var m="; ";var g=99;var E="Validation error";var _=": ";var v=", or ";function createMessageBuilder(r={}){const{issueSeparator:e=m,unionSeparator:o=v,prefixSeparator:t=_,prefix:s=E,includePath:n=true,maxIssuesInMessage:i=g}=r;return r=>{const a=r.slice(0,i).map((r=>getMessageFromZodIssue({issue:r,issueSeparator:e,unionSeparator:o,includePath:n}))).join(e);return prefixMessage(a,s,t)}}function getMessageFromZodIssue(r){const{issue:e,issueSeparator:o,unionSeparator:t,includePath:s}=r;if(e.code===p.ZodIssueCode.invalid_union){return e.unionErrors.reduce(((r,e)=>{const n=e.issues.map((r=>getMessageFromZodIssue({issue:r,issueSeparator:o,unionSeparator:t,includePath:s}))).join(o);if(!r.includes(n)){r.push(n)}return r}),[]).join(t)}if(e.code===p.ZodIssueCode.invalid_arguments){return[e.message,...e.argumentsError.issues.map((r=>getMessageFromZodIssue({issue:r,issueSeparator:o,unionSeparator:t,includePath:s})))].join(o)}if(e.code===p.ZodIssueCode.invalid_return_type){return[e.message,...e.returnTypeError.issues.map((r=>getMessageFromZodIssue({issue:r,issueSeparator:o,unionSeparator:t,includePath:s})))].join(o)}if(s&&isNonEmptyArray(e.path)){if(e.path.length===1){const r=e.path[0];if(typeof r==="number"){return`${e.message} at index ${r}`}}return`${e.message} at "${joinPath(e.path)}"`}return e.message}function prefixMessage(r,e,o){if(e!==null){if(r.length>0){return[e,r].join(o)}return e}if(r.length>0){return r}return E}function fromZodIssue(r,e={}){const o=createMessageBuilderFromOptions(e);const t=o([r]);return new c(t,{cause:new f.ZodError([r])})}function createMessageBuilderFromOptions(r){if("messageBuilder"in r){return r.messageBuilder}return createMessageBuilder(r)}var errorMap=(r,e)=>{const o=fromZodIssue({...r,message:r.message??e.defaultError});return{message:o.message}};function fromZodError(r,e={}){if(!isZodErrorLike(r)){throw new TypeError(`Invalid zodError param; expected instance of ZodError. Did you mean to use the "${fromError.name}" method instead?`)}return fromZodErrorWithoutRuntimeCheck(r,e)}function fromZodErrorWithoutRuntimeCheck(r,e={}){const o=r.errors;let t;if(isNonEmptyArray(o)){const r=createMessageBuilderFromOptions2(e);t=r(o)}else{t=r.message}return new c(t,{cause:r})}function createMessageBuilderFromOptions2(r){if("messageBuilder"in r){return r.messageBuilder}return createMessageBuilder(r)}var toValidationError=(r={})=>e=>{if(isZodErrorLike(e)){return fromZodErrorWithoutRuntimeCheck(e,r)}if(e instanceof Error){return new c(e.message,{cause:e})}return new c("Unknown error")};function fromError(r,e={}){return toValidationError(e)(r)}0&&0},788:r=>{r.exports=require("next/dist/compiled/zod")}};var e={};function __nccwpck_require__(o){var t=e[o];if(t!==undefined){return t.exports}var s=e[o]={exports:{}};var n=true;try{r[o](s,s.exports,__nccwpck_require__);n=false}finally{if(n)delete e[o]}return s.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var o=__nccwpck_require__(452);module.exports=o})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/zod-validation-error/package.json b/cli/app/node_modules/next/dist/compiled/zod-validation-error/package.json new file mode 100644 index 00000000000..1a00bdc170a --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/zod-validation-error/package.json @@ -0,0 +1 @@ +{"name":"zod-validation-error","main":"index.js","author":{"name":"Dimitrios C. Michalakos","email":"dimitris@jmike.gr","url":"https://github.com/jmike"},"license":"MIT"} diff --git a/cli/app/node_modules/next/dist/compiled/zod/index.cjs b/cli/app/node_modules/next/dist/compiled/zod/index.cjs new file mode 100644 index 00000000000..4ea1d2406f6 --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/zod/index.cjs @@ -0,0 +1 @@ +(()=>{"use strict";var e={629:function(e,t,s){var r=this&&this.__createBinding||(Object.create?function(e,t,s,r){if(r===undefined)r=s;var a=Object.getOwnPropertyDescriptor(t,s);if(!a||("get"in a?!t.__esModule:a.writable||a.configurable)){a={enumerable:true,get:function(){return t[s]}}}Object.defineProperty(e,r,a)}:function(e,t,s,r){if(r===undefined)r=s;e[r]=t[s]});var a=this&&this.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:true,value:t})}:function(e,t){e["default"]=t});var n=this&&this.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var s in e)if(s!=="default"&&Object.prototype.hasOwnProperty.call(e,s))r(t,e,s);a(t,e);return t};var i=this&&this.__exportStar||function(e,t){for(var s in e)if(s!=="default"&&!Object.prototype.hasOwnProperty.call(t,s))r(t,e,s)};Object.defineProperty(t,"__esModule",{value:true});t.z=void 0;const o=n(s(923));t.z=o;i(s(923),t);t["default"]=o},348:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t.ZodError=t.quotelessJson=t.ZodIssueCode=void 0;const r=s(709);t.ZodIssueCode=r.util.arrayToEnum(["invalid_type","invalid_literal","custom","invalid_union","invalid_union_discriminator","invalid_enum_value","unrecognized_keys","invalid_arguments","invalid_return_type","invalid_date","invalid_string","too_small","too_big","invalid_intersection_types","not_multiple_of","not_finite"]);const quotelessJson=e=>{const t=JSON.stringify(e,null,2);return t.replace(/"([^"]+)":/g,"$1:")};t.quotelessJson=quotelessJson;class ZodError extends Error{get errors(){return this.issues}constructor(e){super();this.issues=[];this.addIssue=e=>{this.issues=[...this.issues,e]};this.addIssues=(e=[])=>{this.issues=[...this.issues,...e]};const t=new.target.prototype;if(Object.setPrototypeOf){Object.setPrototypeOf(this,t)}else{this.__proto__=t}this.name="ZodError";this.issues=e}format(e){const t=e||function(e){return e.message};const s={_errors:[]};const processError=e=>{for(const r of e.issues){if(r.code==="invalid_union"){r.unionErrors.map(processError)}else if(r.code==="invalid_return_type"){processError(r.returnTypeError)}else if(r.code==="invalid_arguments"){processError(r.argumentsError)}else if(r.path.length===0){s._errors.push(t(r))}else{let e=s;let a=0;while(ae.message)){const t={};const s=[];for(const r of this.issues){if(r.path.length>0){const s=r.path[0];t[s]=t[s]||[];t[s].push(e(r))}else{s.push(e(r))}}return{formErrors:s,fieldErrors:t}}get formErrors(){return this.flatten()}}t.ZodError=ZodError;ZodError.create=e=>{const t=new ZodError(e);return t}},61:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.defaultErrorMap=void 0;t.setErrorMap=setErrorMap;t.getErrorMap=getErrorMap;const a=r(s(871));t.defaultErrorMap=a.default;let n=a.default;function setErrorMap(e){n=e}function getErrorMap(){return n}},923:function(e,t,s){var r=this&&this.__createBinding||(Object.create?function(e,t,s,r){if(r===undefined)r=s;var a=Object.getOwnPropertyDescriptor(t,s);if(!a||("get"in a?!t.__esModule:a.writable||a.configurable)){a={enumerable:true,get:function(){return t[s]}}}Object.defineProperty(e,r,a)}:function(e,t,s,r){if(r===undefined)r=s;e[r]=t[s]});var a=this&&this.__exportStar||function(e,t){for(var s in e)if(s!=="default"&&!Object.prototype.hasOwnProperty.call(t,s))r(t,e,s)};Object.defineProperty(t,"__esModule",{value:true});a(s(61),t);a(s(818),t);a(s(515),t);a(s(709),t);a(s(155),t);a(s(348),t)},538:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.errorUtil=void 0;var s;(function(e){e.errToObj=e=>typeof e==="string"?{message:e}:e||{};e.toString=e=>typeof e==="string"?e:e?.message})(s||(t.errorUtil=s={}))},818:function(e,t,s){var r=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:true});t.isAsync=t.isValid=t.isDirty=t.isAborted=t.OK=t.DIRTY=t.INVALID=t.ParseStatus=t.EMPTY_PATH=t.makeIssue=void 0;t.addIssueToContext=addIssueToContext;const a=s(61);const n=r(s(871));const makeIssue=e=>{const{data:t,path:s,errorMaps:r,issueData:a}=e;const n=[...s,...a.path||[]];const i={...a,path:n};if(a.message!==undefined){return{...a,path:n,message:a.message}}let o="";const d=r.filter((e=>!!e)).slice().reverse();for(const e of d){o=e(i,{data:t,defaultError:o}).message}return{...a,path:n,message:o}};t.makeIssue=makeIssue;t.EMPTY_PATH=[];function addIssueToContext(e,s){const r=(0,a.getErrorMap)();const i=(0,t.makeIssue)({issueData:s,data:e.data,path:e.path,errorMaps:[e.common.contextualErrorMap,e.schemaErrorMap,r,r===n.default?undefined:n.default].filter((e=>!!e))});e.common.issues.push(i)}class ParseStatus{constructor(){this.value="valid"}dirty(){if(this.value==="valid")this.value="dirty"}abort(){if(this.value!=="aborted")this.value="aborted"}static mergeArray(e,s){const r=[];for(const a of s){if(a.status==="aborted")return t.INVALID;if(a.status==="dirty")e.dirty();r.push(a.value)}return{status:e.value,value:r}}static async mergeObjectAsync(e,t){const s=[];for(const e of t){const t=await e.key;const r=await e.value;s.push({key:t,value:r})}return ParseStatus.mergeObjectSync(e,s)}static mergeObjectSync(e,s){const r={};for(const a of s){const{key:s,value:n}=a;if(s.status==="aborted")return t.INVALID;if(n.status==="aborted")return t.INVALID;if(s.status==="dirty")e.dirty();if(n.status==="dirty")e.dirty();if(s.value!=="__proto__"&&(typeof n.value!=="undefined"||a.alwaysSet)){r[s.value]=n.value}}return{status:e.value,value:r}}}t.ParseStatus=ParseStatus;t.INVALID=Object.freeze({status:"aborted"});const DIRTY=e=>({status:"dirty",value:e});t.DIRTY=DIRTY;const OK=e=>({status:"valid",value:e});t.OK=OK;const isAborted=e=>e.status==="aborted";t.isAborted=isAborted;const isDirty=e=>e.status==="dirty";t.isDirty=isDirty;const isValid=e=>e.status==="valid";t.isValid=isValid;const isAsync=e=>typeof Promise!=="undefined"&&e instanceof Promise;t.isAsync=isAsync},515:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true})},709:(e,t)=>{Object.defineProperty(t,"__esModule",{value:true});t.getParsedType=t.ZodParsedType=t.objectUtil=t.util=void 0;var s;(function(e){e.assertEqual=e=>{};function assertIs(e){}e.assertIs=assertIs;function assertNever(e){throw new Error}e.assertNever=assertNever;e.arrayToEnum=e=>{const t={};for(const s of e){t[s]=s}return t};e.getValidEnumValues=t=>{const s=e.objectKeys(t).filter((e=>typeof t[t[e]]!=="number"));const r={};for(const e of s){r[e]=t[e]}return e.objectValues(r)};e.objectValues=t=>e.objectKeys(t).map((function(e){return t[e]}));e.objectKeys=typeof Object.keys==="function"?e=>Object.keys(e):e=>{const t=[];for(const s in e){if(Object.prototype.hasOwnProperty.call(e,s)){t.push(s)}}return t};e.find=(e,t)=>{for(const s of e){if(t(s))return s}return undefined};e.isInteger=typeof Number.isInteger==="function"?e=>Number.isInteger(e):e=>typeof e==="number"&&Number.isFinite(e)&&Math.floor(e)===e;function joinValues(e,t=" | "){return e.map((e=>typeof e==="string"?`'${e}'`:e)).join(t)}e.joinValues=joinValues;e.jsonStringifyReplacer=(e,t)=>{if(typeof t==="bigint"){return t.toString()}return t}})(s||(t.util=s={}));var r;(function(e){e.mergeShapes=(e,t)=>({...e,...t})})(r||(t.objectUtil=r={}));t.ZodParsedType=s.arrayToEnum(["string","nan","number","integer","float","boolean","date","bigint","symbol","function","undefined","null","array","object","unknown","promise","void","never","map","set"]);const getParsedType=e=>{const s=typeof e;switch(s){case"undefined":return t.ZodParsedType.undefined;case"string":return t.ZodParsedType.string;case"number":return Number.isNaN(e)?t.ZodParsedType.nan:t.ZodParsedType.number;case"boolean":return t.ZodParsedType.boolean;case"function":return t.ZodParsedType.function;case"bigint":return t.ZodParsedType.bigint;case"symbol":return t.ZodParsedType.symbol;case"object":if(Array.isArray(e)){return t.ZodParsedType.array}if(e===null){return t.ZodParsedType.null}if(e.then&&typeof e.then==="function"&&e.catch&&typeof e.catch==="function"){return t.ZodParsedType.promise}if(typeof Map!=="undefined"&&e instanceof Map){return t.ZodParsedType.map}if(typeof Set!=="undefined"&&e instanceof Set){return t.ZodParsedType.set}if(typeof Date!=="undefined"&&e instanceof Date){return t.ZodParsedType.date}return t.ZodParsedType.object;default:return t.ZodParsedType.unknown}};t.getParsedType=getParsedType},871:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});const r=s(348);const a=s(709);const errorMap=(e,t)=>{let s;switch(e.code){case r.ZodIssueCode.invalid_type:if(e.received===a.ZodParsedType.undefined){s="Required"}else{s=`Expected ${e.expected}, received ${e.received}`}break;case r.ZodIssueCode.invalid_literal:s=`Invalid literal value, expected ${JSON.stringify(e.expected,a.util.jsonStringifyReplacer)}`;break;case r.ZodIssueCode.unrecognized_keys:s=`Unrecognized key(s) in object: ${a.util.joinValues(e.keys,", ")}`;break;case r.ZodIssueCode.invalid_union:s=`Invalid input`;break;case r.ZodIssueCode.invalid_union_discriminator:s=`Invalid discriminator value. Expected ${a.util.joinValues(e.options)}`;break;case r.ZodIssueCode.invalid_enum_value:s=`Invalid enum value. Expected ${a.util.joinValues(e.options)}, received '${e.received}'`;break;case r.ZodIssueCode.invalid_arguments:s=`Invalid function arguments`;break;case r.ZodIssueCode.invalid_return_type:s=`Invalid function return type`;break;case r.ZodIssueCode.invalid_date:s=`Invalid date`;break;case r.ZodIssueCode.invalid_string:if(typeof e.validation==="object"){if("includes"in e.validation){s=`Invalid input: must include "${e.validation.includes}"`;if(typeof e.validation.position==="number"){s=`${s} at one or more positions greater than or equal to ${e.validation.position}`}}else if("startsWith"in e.validation){s=`Invalid input: must start with "${e.validation.startsWith}"`}else if("endsWith"in e.validation){s=`Invalid input: must end with "${e.validation.endsWith}"`}else{a.util.assertNever(e.validation)}}else if(e.validation!=="regex"){s=`Invalid ${e.validation}`}else{s="Invalid"}break;case r.ZodIssueCode.too_small:if(e.type==="array")s=`Array must contain ${e.exact?"exactly":e.inclusive?`at least`:`more than`} ${e.minimum} element(s)`;else if(e.type==="string")s=`String must contain ${e.exact?"exactly":e.inclusive?`at least`:`over`} ${e.minimum} character(s)`;else if(e.type==="number")s=`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`;else if(e.type==="bigint")s=`Number must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${e.minimum}`;else if(e.type==="date")s=`Date must be ${e.exact?`exactly equal to `:e.inclusive?`greater than or equal to `:`greater than `}${new Date(Number(e.minimum))}`;else s="Invalid input";break;case r.ZodIssueCode.too_big:if(e.type==="array")s=`Array must contain ${e.exact?`exactly`:e.inclusive?`at most`:`less than`} ${e.maximum} element(s)`;else if(e.type==="string")s=`String must contain ${e.exact?`exactly`:e.inclusive?`at most`:`under`} ${e.maximum} character(s)`;else if(e.type==="number")s=`Number must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`;else if(e.type==="bigint")s=`BigInt must be ${e.exact?`exactly`:e.inclusive?`less than or equal to`:`less than`} ${e.maximum}`;else if(e.type==="date")s=`Date must be ${e.exact?`exactly`:e.inclusive?`smaller than or equal to`:`smaller than`} ${new Date(Number(e.maximum))}`;else s="Invalid input";break;case r.ZodIssueCode.custom:s=`Invalid input`;break;case r.ZodIssueCode.invalid_intersection_types:s=`Intersection results could not be merged`;break;case r.ZodIssueCode.not_multiple_of:s=`Number must be a multiple of ${e.multipleOf}`;break;case r.ZodIssueCode.not_finite:s="Number must be finite";break;default:s=t.defaultError;a.util.assertNever(e)}return{message:s}};t["default"]=errorMap},155:(e,t,s)=>{Object.defineProperty(t,"__esModule",{value:true});t.discriminatedUnion=t.date=t.boolean=t.bigint=t.array=t.any=t.coerce=t.ZodFirstPartyTypeKind=t.late=t.ZodSchema=t.Schema=t.ZodReadonly=t.ZodPipeline=t.ZodBranded=t.BRAND=t.ZodNaN=t.ZodCatch=t.ZodDefault=t.ZodNullable=t.ZodOptional=t.ZodTransformer=t.ZodEffects=t.ZodPromise=t.ZodNativeEnum=t.ZodEnum=t.ZodLiteral=t.ZodLazy=t.ZodFunction=t.ZodSet=t.ZodMap=t.ZodRecord=t.ZodTuple=t.ZodIntersection=t.ZodDiscriminatedUnion=t.ZodUnion=t.ZodObject=t.ZodArray=t.ZodVoid=t.ZodNever=t.ZodUnknown=t.ZodAny=t.ZodNull=t.ZodUndefined=t.ZodSymbol=t.ZodDate=t.ZodBoolean=t.ZodBigInt=t.ZodNumber=t.ZodString=t.ZodType=void 0;t.NEVER=t["void"]=t.unknown=t.union=t.undefined=t.tuple=t.transformer=t.symbol=t.string=t.strictObject=t.set=t.record=t.promise=t.preprocess=t.pipeline=t.ostring=t.optional=t.onumber=t.oboolean=t.object=t.number=t.nullable=t["null"]=t.never=t.nativeEnum=t.nan=t.map=t.literal=t.lazy=t.intersection=t["instanceof"]=t["function"]=t["enum"]=t.effect=void 0;t.datetimeRegex=datetimeRegex;t.custom=custom;const r=s(348);const a=s(61);const n=s(538);const i=s(818);const o=s(709);class ParseInputLazyPath{constructor(e,t,s,r){this._cachedPath=[];this.parent=e;this.data=t;this._path=s;this._key=r}get path(){if(!this._cachedPath.length){if(Array.isArray(this._key)){this._cachedPath.push(...this._path,...this._key)}else{this._cachedPath.push(...this._path,this._key)}}return this._cachedPath}}const handleResult=(e,t)=>{if((0,i.isValid)(t)){return{success:true,data:t.value}}else{if(!e.common.issues.length){throw new Error("Validation failed but no issues detected.")}return{success:false,get error(){if(this._error)return this._error;const t=new r.ZodError(e.common.issues);this._error=t;return this._error}}}};function processCreateParams(e){if(!e)return{};const{errorMap:t,invalid_type_error:s,required_error:r,description:a}=e;if(t&&(s||r)){throw new Error(`Can't use "invalid_type_error" or "required_error" in conjunction with custom error map.`)}if(t)return{errorMap:t,description:a};const customMap=(t,a)=>{const{message:n}=e;if(t.code==="invalid_enum_value"){return{message:n??a.defaultError}}if(typeof a.data==="undefined"){return{message:n??r??a.defaultError}}if(t.code!=="invalid_type")return{message:a.defaultError};return{message:n??s??a.defaultError}};return{errorMap:customMap,description:a}}class ZodType{get description(){return this._def.description}_getType(e){return(0,o.getParsedType)(e.data)}_getOrReturnCtx(e,t){return t||{common:e.parent.common,data:e.data,parsedType:(0,o.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}_processInputParams(e){return{status:new i.ParseStatus,ctx:{common:e.parent.common,data:e.data,parsedType:(0,o.getParsedType)(e.data),schemaErrorMap:this._def.errorMap,path:e.path,parent:e.parent}}}_parseSync(e){const t=this._parse(e);if((0,i.isAsync)(t)){throw new Error("Synchronous parse encountered promise.")}return t}_parseAsync(e){const t=this._parse(e);return Promise.resolve(t)}parse(e,t){const s=this.safeParse(e,t);if(s.success)return s.data;throw s.error}safeParse(e,t){const s={common:{issues:[],async:t?.async??false,contextualErrorMap:t?.errorMap},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,o.getParsedType)(e)};const r=this._parseSync({data:e,path:s.path,parent:s});return handleResult(s,r)}"~validate"(e){const t={common:{issues:[],async:!!this["~standard"].async},path:[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,o.getParsedType)(e)};if(!this["~standard"].async){try{const s=this._parseSync({data:e,path:[],parent:t});return(0,i.isValid)(s)?{value:s.value}:{issues:t.common.issues}}catch(e){if(e?.message?.toLowerCase()?.includes("encountered")){this["~standard"].async=true}t.common={issues:[],async:true}}}return this._parseAsync({data:e,path:[],parent:t}).then((e=>(0,i.isValid)(e)?{value:e.value}:{issues:t.common.issues}))}async parseAsync(e,t){const s=await this.safeParseAsync(e,t);if(s.success)return s.data;throw s.error}async safeParseAsync(e,t){const s={common:{issues:[],contextualErrorMap:t?.errorMap,async:true},path:t?.path||[],schemaErrorMap:this._def.errorMap,parent:null,data:e,parsedType:(0,o.getParsedType)(e)};const r=this._parse({data:e,path:s.path,parent:s});const a=await((0,i.isAsync)(r)?r:Promise.resolve(r));return handleResult(s,a)}refine(e,t){const getIssueProperties=e=>{if(typeof t==="string"||typeof t==="undefined"){return{message:t}}else if(typeof t==="function"){return t(e)}else{return t}};return this._refinement(((t,s)=>{const a=e(t);const setError=()=>s.addIssue({code:r.ZodIssueCode.custom,...getIssueProperties(t)});if(typeof Promise!=="undefined"&&a instanceof Promise){return a.then((e=>{if(!e){setError();return false}else{return true}}))}if(!a){setError();return false}else{return true}}))}refinement(e,t){return this._refinement(((s,r)=>{if(!e(s)){r.addIssue(typeof t==="function"?t(s,r):t);return false}else{return true}}))}_refinement(e){return new ZodEffects({schema:this,typeName:k.ZodEffects,effect:{type:"refinement",refinement:e}})}superRefine(e){return this._refinement(e)}constructor(e){this.spa=this.safeParseAsync;this._def=e;this.parse=this.parse.bind(this);this.safeParse=this.safeParse.bind(this);this.parseAsync=this.parseAsync.bind(this);this.safeParseAsync=this.safeParseAsync.bind(this);this.spa=this.spa.bind(this);this.refine=this.refine.bind(this);this.refinement=this.refinement.bind(this);this.superRefine=this.superRefine.bind(this);this.optional=this.optional.bind(this);this.nullable=this.nullable.bind(this);this.nullish=this.nullish.bind(this);this.array=this.array.bind(this);this.promise=this.promise.bind(this);this.or=this.or.bind(this);this.and=this.and.bind(this);this.transform=this.transform.bind(this);this.brand=this.brand.bind(this);this.default=this.default.bind(this);this.catch=this.catch.bind(this);this.describe=this.describe.bind(this);this.pipe=this.pipe.bind(this);this.readonly=this.readonly.bind(this);this.isNullable=this.isNullable.bind(this);this.isOptional=this.isOptional.bind(this);this["~standard"]={version:1,vendor:"zod",validate:e=>this["~validate"](e)}}optional(){return ZodOptional.create(this,this._def)}nullable(){return ZodNullable.create(this,this._def)}nullish(){return this.nullable().optional()}array(){return ZodArray.create(this)}promise(){return ZodPromise.create(this,this._def)}or(e){return ZodUnion.create([this,e],this._def)}and(e){return ZodIntersection.create(this,e,this._def)}transform(e){return new ZodEffects({...processCreateParams(this._def),schema:this,typeName:k.ZodEffects,effect:{type:"transform",transform:e}})}default(e){const t=typeof e==="function"?e:()=>e;return new ZodDefault({...processCreateParams(this._def),innerType:this,defaultValue:t,typeName:k.ZodDefault})}brand(){return new ZodBranded({typeName:k.ZodBranded,type:this,...processCreateParams(this._def)})}catch(e){const t=typeof e==="function"?e:()=>e;return new ZodCatch({...processCreateParams(this._def),innerType:this,catchValue:t,typeName:k.ZodCatch})}describe(e){const t=this.constructor;return new t({...this._def,description:e})}pipe(e){return ZodPipeline.create(this,e)}readonly(){return ZodReadonly.create(this)}isOptional(){return this.safeParse(undefined).success}isNullable(){return this.safeParse(null).success}}t.ZodType=ZodType;t.Schema=ZodType;t.ZodSchema=ZodType;const d=/^c[^\s-]{8,}$/i;const u=/^[0-9a-z]+$/;const c=/^[0-9A-HJKMNP-TV-Z]{26}$/i;const l=/^[0-9a-fA-F]{8}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{4}\b-[0-9a-fA-F]{12}$/i;const p=/^[a-z0-9_-]{21}$/i;const f=/^[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+\.[A-Za-z0-9-_]*$/;const h=/^[-+]?P(?!$)(?:(?:[-+]?\d+Y)|(?:[-+]?\d+[.,]\d+Y$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:(?:[-+]?\d+W)|(?:[-+]?\d+[.,]\d+W$))?(?:(?:[-+]?\d+D)|(?:[-+]?\d+[.,]\d+D$))?(?:T(?=[\d+-])(?:(?:[-+]?\d+H)|(?:[-+]?\d+[.,]\d+H$))?(?:(?:[-+]?\d+M)|(?:[-+]?\d+[.,]\d+M$))?(?:[-+]?\d+(?:[.,]\d+)?S)?)??$/;const m=/^(?!\.)(?!.*\.\.)([A-Z0-9_'+\-\.]*)[A-Z0-9_+-]@([A-Z0-9][A-Z0-9\-]*\.)+[A-Z]{2,}$/i;const y=`^(\\p{Extended_Pictographic}|\\p{Emoji_Component})+$`;let Z;const _=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])$/;const g=/^(?:(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9][0-9]|[1-9][0-9]|[0-9])\/(3[0-2]|[12]?[0-9])$/;const v=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))$/;const I=/^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2}|([0-9a-fA-F]{1,4}:){1,4}(:[0-9a-fA-F]{1,4}){1,3}|([0-9a-fA-F]{1,4}:){1,3}(:[0-9a-fA-F]{1,4}){1,4}|([0-9a-fA-F]{1,4}:){1,2}(:[0-9a-fA-F]{1,4}){1,5}|[0-9a-fA-F]{1,4}:((:[0-9a-fA-F]{1,4}){1,6})|:((:[0-9a-fA-F]{1,4}){1,7}|:)|fe80:(:[0-9a-fA-F]{0,4}){0,4}%[0-9a-zA-Z]{1,}|::(ffff(:0{1,4}){0,1}:){0,1}((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])|([0-9a-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9])\.){3,3}(25[0-5]|(2[0-4]|1{0,1}[0-9]){0,1}[0-9]))\/(12[0-8]|1[01][0-9]|[1-9]?[0-9])$/;const T=/^([0-9a-zA-Z+/]{4})*(([0-9a-zA-Z+/]{2}==)|([0-9a-zA-Z+/]{3}=))?$/;const b=/^([0-9a-zA-Z-_]{4})*(([0-9a-zA-Z-_]{2}(==)?)|([0-9a-zA-Z-_]{3}(=)?))?$/;const x=`((\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-((0[13578]|1[02])-(0[1-9]|[12]\\d|3[01])|(0[469]|11)-(0[1-9]|[12]\\d|30)|(02)-(0[1-9]|1\\d|2[0-8])))`;const C=new RegExp(`^${x}$`);function timeRegexSource(e){let t=`[0-5]\\d`;if(e.precision){t=`${t}\\.\\d{${e.precision}}`}else if(e.precision==null){t=`${t}(\\.\\d+)?`}const s=e.precision?"+":"?";return`([01]\\d|2[0-3]):[0-5]\\d(:${t})${s}`}function timeRegex(e){return new RegExp(`^${timeRegexSource(e)}$`)}function datetimeRegex(e){let t=`${x}T${timeRegexSource(e)}`;const s=[];s.push(e.local?`Z?`:`Z`);if(e.offset)s.push(`([+-]\\d{2}:?\\d{2})`);t=`${t}(${s.join("|")})`;return new RegExp(`^${t}$`)}function isValidIP(e,t){if((t==="v4"||!t)&&_.test(e)){return true}if((t==="v6"||!t)&&v.test(e)){return true}return false}function isValidJWT(e,t){if(!f.test(e))return false;try{const[s]=e.split(".");if(!s)return false;const r=s.replace(/-/g,"+").replace(/_/g,"/").padEnd(s.length+(4-s.length%4)%4,"=");const a=JSON.parse(atob(r));if(typeof a!=="object"||a===null)return false;if("typ"in a&&a?.typ!=="JWT")return false;if(!a.alg)return false;if(t&&a.alg!==t)return false;return true}catch{return false}}function isValidCidr(e,t){if((t==="v4"||!t)&&g.test(e)){return true}if((t==="v6"||!t)&&I.test(e)){return true}return false}class ZodString extends ZodType{_parse(e){if(this._def.coerce){e.data=String(e.data)}const t=this._getType(e);if(t!==o.ZodParsedType.string){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.string,received:t.parsedType});return i.INVALID}const s=new i.ParseStatus;let a=undefined;for(const t of this._def.checks){if(t.kind==="min"){if(e.data.lengtht.value){a=this._getOrReturnCtx(e,a);(0,i.addIssueToContext)(a,{code:r.ZodIssueCode.too_big,maximum:t.value,type:"string",inclusive:true,exact:false,message:t.message});s.dirty()}}else if(t.kind==="length"){const n=e.data.length>t.value;const o=e.data.lengthe.test(t)),{validation:t,code:r.ZodIssueCode.invalid_string,...n.errorUtil.errToObj(s)})}_addCheck(e){return new ZodString({...this._def,checks:[...this._def.checks,e]})}email(e){return this._addCheck({kind:"email",...n.errorUtil.errToObj(e)})}url(e){return this._addCheck({kind:"url",...n.errorUtil.errToObj(e)})}emoji(e){return this._addCheck({kind:"emoji",...n.errorUtil.errToObj(e)})}uuid(e){return this._addCheck({kind:"uuid",...n.errorUtil.errToObj(e)})}nanoid(e){return this._addCheck({kind:"nanoid",...n.errorUtil.errToObj(e)})}cuid(e){return this._addCheck({kind:"cuid",...n.errorUtil.errToObj(e)})}cuid2(e){return this._addCheck({kind:"cuid2",...n.errorUtil.errToObj(e)})}ulid(e){return this._addCheck({kind:"ulid",...n.errorUtil.errToObj(e)})}base64(e){return this._addCheck({kind:"base64",...n.errorUtil.errToObj(e)})}base64url(e){return this._addCheck({kind:"base64url",...n.errorUtil.errToObj(e)})}jwt(e){return this._addCheck({kind:"jwt",...n.errorUtil.errToObj(e)})}ip(e){return this._addCheck({kind:"ip",...n.errorUtil.errToObj(e)})}cidr(e){return this._addCheck({kind:"cidr",...n.errorUtil.errToObj(e)})}datetime(e){if(typeof e==="string"){return this._addCheck({kind:"datetime",precision:null,offset:false,local:false,message:e})}return this._addCheck({kind:"datetime",precision:typeof e?.precision==="undefined"?null:e?.precision,offset:e?.offset??false,local:e?.local??false,...n.errorUtil.errToObj(e?.message)})}date(e){return this._addCheck({kind:"date",message:e})}time(e){if(typeof e==="string"){return this._addCheck({kind:"time",precision:null,message:e})}return this._addCheck({kind:"time",precision:typeof e?.precision==="undefined"?null:e?.precision,...n.errorUtil.errToObj(e?.message)})}duration(e){return this._addCheck({kind:"duration",...n.errorUtil.errToObj(e)})}regex(e,t){return this._addCheck({kind:"regex",regex:e,...n.errorUtil.errToObj(t)})}includes(e,t){return this._addCheck({kind:"includes",value:e,position:t?.position,...n.errorUtil.errToObj(t?.message)})}startsWith(e,t){return this._addCheck({kind:"startsWith",value:e,...n.errorUtil.errToObj(t)})}endsWith(e,t){return this._addCheck({kind:"endsWith",value:e,...n.errorUtil.errToObj(t)})}min(e,t){return this._addCheck({kind:"min",value:e,...n.errorUtil.errToObj(t)})}max(e,t){return this._addCheck({kind:"max",value:e,...n.errorUtil.errToObj(t)})}length(e,t){return this._addCheck({kind:"length",value:e,...n.errorUtil.errToObj(t)})}nonempty(e){return this.min(1,n.errorUtil.errToObj(e))}trim(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"trim"}]})}toLowerCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toLowerCase"}]})}toUpperCase(){return new ZodString({...this._def,checks:[...this._def.checks,{kind:"toUpperCase"}]})}get isDatetime(){return!!this._def.checks.find((e=>e.kind==="datetime"))}get isDate(){return!!this._def.checks.find((e=>e.kind==="date"))}get isTime(){return!!this._def.checks.find((e=>e.kind==="time"))}get isDuration(){return!!this._def.checks.find((e=>e.kind==="duration"))}get isEmail(){return!!this._def.checks.find((e=>e.kind==="email"))}get isURL(){return!!this._def.checks.find((e=>e.kind==="url"))}get isEmoji(){return!!this._def.checks.find((e=>e.kind==="emoji"))}get isUUID(){return!!this._def.checks.find((e=>e.kind==="uuid"))}get isNANOID(){return!!this._def.checks.find((e=>e.kind==="nanoid"))}get isCUID(){return!!this._def.checks.find((e=>e.kind==="cuid"))}get isCUID2(){return!!this._def.checks.find((e=>e.kind==="cuid2"))}get isULID(){return!!this._def.checks.find((e=>e.kind==="ulid"))}get isIP(){return!!this._def.checks.find((e=>e.kind==="ip"))}get isCIDR(){return!!this._def.checks.find((e=>e.kind==="cidr"))}get isBase64(){return!!this._def.checks.find((e=>e.kind==="base64"))}get isBase64url(){return!!this._def.checks.find((e=>e.kind==="base64url"))}get minLength(){let e=null;for(const t of this._def.checks){if(t.kind==="min"){if(e===null||t.value>e)e=t.value}}return e}get maxLength(){let e=null;for(const t of this._def.checks){if(t.kind==="max"){if(e===null||t.valuenew ZodString({checks:[],typeName:k.ZodString,coerce:e?.coerce??false,...processCreateParams(e)});function floatSafeRemainder(e,t){const s=(e.toString().split(".")[1]||"").length;const r=(t.toString().split(".")[1]||"").length;const a=s>r?s:r;const n=Number.parseInt(e.toFixed(a).replace(".",""));const i=Number.parseInt(t.toFixed(a).replace(".",""));return n%i/10**a}class ZodNumber extends ZodType{constructor(){super(...arguments);this.min=this.gte;this.max=this.lte;this.step=this.multipleOf}_parse(e){if(this._def.coerce){e.data=Number(e.data)}const t=this._getType(e);if(t!==o.ZodParsedType.number){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.number,received:t.parsedType});return i.INVALID}let s=undefined;const a=new i.ParseStatus;for(const t of this._def.checks){if(t.kind==="int"){if(!o.util.isInteger(e.data)){s=this._getOrReturnCtx(e,s);(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.invalid_type,expected:"integer",received:"float",message:t.message});a.dirty()}}else if(t.kind==="min"){const n=t.inclusive?e.datat.value:e.data>=t.value;if(n){s=this._getOrReturnCtx(e,s);(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.too_big,maximum:t.value,type:"number",inclusive:t.inclusive,exact:false,message:t.message});a.dirty()}}else if(t.kind==="multipleOf"){if(floatSafeRemainder(e.data,t.value)!==0){s=this._getOrReturnCtx(e,s);(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.not_multiple_of,multipleOf:t.value,message:t.message});a.dirty()}}else if(t.kind==="finite"){if(!Number.isFinite(e.data)){s=this._getOrReturnCtx(e,s);(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.not_finite,message:t.message});a.dirty()}}else{o.util.assertNever(t)}}return{status:a.value,value:e.data}}gte(e,t){return this.setLimit("min",e,true,n.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,false,n.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,true,n.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,false,n.errorUtil.toString(t))}setLimit(e,t,s,r){return new ZodNumber({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:n.errorUtil.toString(r)}]})}_addCheck(e){return new ZodNumber({...this._def,checks:[...this._def.checks,e]})}int(e){return this._addCheck({kind:"int",message:n.errorUtil.toString(e)})}positive(e){return this._addCheck({kind:"min",value:0,inclusive:false,message:n.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:0,inclusive:false,message:n.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:0,inclusive:true,message:n.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:0,inclusive:true,message:n.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:n.errorUtil.toString(t)})}finite(e){return this._addCheck({kind:"finite",message:n.errorUtil.toString(e)})}safe(e){return this._addCheck({kind:"min",inclusive:true,value:Number.MIN_SAFE_INTEGER,message:n.errorUtil.toString(e)})._addCheck({kind:"max",inclusive:true,value:Number.MAX_SAFE_INTEGER,message:n.errorUtil.toString(e)})}get minValue(){let e=null;for(const t of this._def.checks){if(t.kind==="min"){if(e===null||t.value>e)e=t.value}}return e}get maxValue(){let e=null;for(const t of this._def.checks){if(t.kind==="max"){if(e===null||t.valuee.kind==="int"||e.kind==="multipleOf"&&o.util.isInteger(e.value)))}get isFinite(){let e=null;let t=null;for(const s of this._def.checks){if(s.kind==="finite"||s.kind==="int"||s.kind==="multipleOf"){return true}else if(s.kind==="min"){if(t===null||s.value>t)t=s.value}else if(s.kind==="max"){if(e===null||s.valuenew ZodNumber({checks:[],typeName:k.ZodNumber,coerce:e?.coerce||false,...processCreateParams(e)});class ZodBigInt extends ZodType{constructor(){super(...arguments);this.min=this.gte;this.max=this.lte}_parse(e){if(this._def.coerce){try{e.data=BigInt(e.data)}catch{return this._getInvalidInput(e)}}const t=this._getType(e);if(t!==o.ZodParsedType.bigint){return this._getInvalidInput(e)}let s=undefined;const a=new i.ParseStatus;for(const t of this._def.checks){if(t.kind==="min"){const n=t.inclusive?e.datat.value:e.data>=t.value;if(n){s=this._getOrReturnCtx(e,s);(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.too_big,type:"bigint",maximum:t.value,inclusive:t.inclusive,message:t.message});a.dirty()}}else if(t.kind==="multipleOf"){if(e.data%t.value!==BigInt(0)){s=this._getOrReturnCtx(e,s);(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.not_multiple_of,multipleOf:t.value,message:t.message});a.dirty()}}else{o.util.assertNever(t)}}return{status:a.value,value:e.data}}_getInvalidInput(e){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.bigint,received:t.parsedType});return i.INVALID}gte(e,t){return this.setLimit("min",e,true,n.errorUtil.toString(t))}gt(e,t){return this.setLimit("min",e,false,n.errorUtil.toString(t))}lte(e,t){return this.setLimit("max",e,true,n.errorUtil.toString(t))}lt(e,t){return this.setLimit("max",e,false,n.errorUtil.toString(t))}setLimit(e,t,s,r){return new ZodBigInt({...this._def,checks:[...this._def.checks,{kind:e,value:t,inclusive:s,message:n.errorUtil.toString(r)}]})}_addCheck(e){return new ZodBigInt({...this._def,checks:[...this._def.checks,e]})}positive(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:false,message:n.errorUtil.toString(e)})}negative(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:false,message:n.errorUtil.toString(e)})}nonpositive(e){return this._addCheck({kind:"max",value:BigInt(0),inclusive:true,message:n.errorUtil.toString(e)})}nonnegative(e){return this._addCheck({kind:"min",value:BigInt(0),inclusive:true,message:n.errorUtil.toString(e)})}multipleOf(e,t){return this._addCheck({kind:"multipleOf",value:e,message:n.errorUtil.toString(t)})}get minValue(){let e=null;for(const t of this._def.checks){if(t.kind==="min"){if(e===null||t.value>e)e=t.value}}return e}get maxValue(){let e=null;for(const t of this._def.checks){if(t.kind==="max"){if(e===null||t.valuenew ZodBigInt({checks:[],typeName:k.ZodBigInt,coerce:e?.coerce??false,...processCreateParams(e)});class ZodBoolean extends ZodType{_parse(e){if(this._def.coerce){e.data=Boolean(e.data)}const t=this._getType(e);if(t!==o.ZodParsedType.boolean){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.boolean,received:t.parsedType});return i.INVALID}return(0,i.OK)(e.data)}}t.ZodBoolean=ZodBoolean;ZodBoolean.create=e=>new ZodBoolean({typeName:k.ZodBoolean,coerce:e?.coerce||false,...processCreateParams(e)});class ZodDate extends ZodType{_parse(e){if(this._def.coerce){e.data=new Date(e.data)}const t=this._getType(e);if(t!==o.ZodParsedType.date){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.date,received:t.parsedType});return i.INVALID}if(Number.isNaN(e.data.getTime())){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_date});return i.INVALID}const s=new i.ParseStatus;let a=undefined;for(const t of this._def.checks){if(t.kind==="min"){if(e.data.getTime()t.value){a=this._getOrReturnCtx(e,a);(0,i.addIssueToContext)(a,{code:r.ZodIssueCode.too_big,message:t.message,inclusive:true,exact:false,maximum:t.value,type:"date"});s.dirty()}}else{o.util.assertNever(t)}}return{status:s.value,value:new Date(e.data.getTime())}}_addCheck(e){return new ZodDate({...this._def,checks:[...this._def.checks,e]})}min(e,t){return this._addCheck({kind:"min",value:e.getTime(),message:n.errorUtil.toString(t)})}max(e,t){return this._addCheck({kind:"max",value:e.getTime(),message:n.errorUtil.toString(t)})}get minDate(){let e=null;for(const t of this._def.checks){if(t.kind==="min"){if(e===null||t.value>e)e=t.value}}return e!=null?new Date(e):null}get maxDate(){let e=null;for(const t of this._def.checks){if(t.kind==="max"){if(e===null||t.valuenew ZodDate({checks:[],coerce:e?.coerce||false,typeName:k.ZodDate,...processCreateParams(e)});class ZodSymbol extends ZodType{_parse(e){const t=this._getType(e);if(t!==o.ZodParsedType.symbol){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.symbol,received:t.parsedType});return i.INVALID}return(0,i.OK)(e.data)}}t.ZodSymbol=ZodSymbol;ZodSymbol.create=e=>new ZodSymbol({typeName:k.ZodSymbol,...processCreateParams(e)});class ZodUndefined extends ZodType{_parse(e){const t=this._getType(e);if(t!==o.ZodParsedType.undefined){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.undefined,received:t.parsedType});return i.INVALID}return(0,i.OK)(e.data)}}t.ZodUndefined=ZodUndefined;ZodUndefined.create=e=>new ZodUndefined({typeName:k.ZodUndefined,...processCreateParams(e)});class ZodNull extends ZodType{_parse(e){const t=this._getType(e);if(t!==o.ZodParsedType.null){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.null,received:t.parsedType});return i.INVALID}return(0,i.OK)(e.data)}}t.ZodNull=ZodNull;ZodNull.create=e=>new ZodNull({typeName:k.ZodNull,...processCreateParams(e)});class ZodAny extends ZodType{constructor(){super(...arguments);this._any=true}_parse(e){return(0,i.OK)(e.data)}}t.ZodAny=ZodAny;ZodAny.create=e=>new ZodAny({typeName:k.ZodAny,...processCreateParams(e)});class ZodUnknown extends ZodType{constructor(){super(...arguments);this._unknown=true}_parse(e){return(0,i.OK)(e.data)}}t.ZodUnknown=ZodUnknown;ZodUnknown.create=e=>new ZodUnknown({typeName:k.ZodUnknown,...processCreateParams(e)});class ZodNever extends ZodType{_parse(e){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.never,received:t.parsedType});return i.INVALID}}t.ZodNever=ZodNever;ZodNever.create=e=>new ZodNever({typeName:k.ZodNever,...processCreateParams(e)});class ZodVoid extends ZodType{_parse(e){const t=this._getType(e);if(t!==o.ZodParsedType.undefined){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.void,received:t.parsedType});return i.INVALID}return(0,i.OK)(e.data)}}t.ZodVoid=ZodVoid;ZodVoid.create=e=>new ZodVoid({typeName:k.ZodVoid,...processCreateParams(e)});class ZodArray extends ZodType{_parse(e){const{ctx:t,status:s}=this._processInputParams(e);const a=this._def;if(t.parsedType!==o.ZodParsedType.array){(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.array,received:t.parsedType});return i.INVALID}if(a.exactLength!==null){const e=t.data.length>a.exactLength.value;const n=t.data.lengtha.maxLength.value){(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.too_big,maximum:a.maxLength.value,type:"array",inclusive:true,exact:false,message:a.maxLength.message});s.dirty()}}if(t.common.async){return Promise.all([...t.data].map(((e,s)=>a.type._parseAsync(new ParseInputLazyPath(t,e,t.path,s))))).then((e=>i.ParseStatus.mergeArray(s,e)))}const n=[...t.data].map(((e,s)=>a.type._parseSync(new ParseInputLazyPath(t,e,t.path,s))));return i.ParseStatus.mergeArray(s,n)}get element(){return this._def.type}min(e,t){return new ZodArray({...this._def,minLength:{value:e,message:n.errorUtil.toString(t)}})}max(e,t){return new ZodArray({...this._def,maxLength:{value:e,message:n.errorUtil.toString(t)}})}length(e,t){return new ZodArray({...this._def,exactLength:{value:e,message:n.errorUtil.toString(t)}})}nonempty(e){return this.min(1,e)}}t.ZodArray=ZodArray;ZodArray.create=(e,t)=>new ZodArray({type:e,minLength:null,maxLength:null,exactLength:null,typeName:k.ZodArray,...processCreateParams(t)});function deepPartialify(e){if(e instanceof ZodObject){const t={};for(const s in e.shape){const r=e.shape[s];t[s]=ZodOptional.create(deepPartialify(r))}return new ZodObject({...e._def,shape:()=>t})}else if(e instanceof ZodArray){return new ZodArray({...e._def,type:deepPartialify(e.element)})}else if(e instanceof ZodOptional){return ZodOptional.create(deepPartialify(e.unwrap()))}else if(e instanceof ZodNullable){return ZodNullable.create(deepPartialify(e.unwrap()))}else if(e instanceof ZodTuple){return ZodTuple.create(e.items.map((e=>deepPartialify(e))))}else{return e}}class ZodObject extends ZodType{constructor(){super(...arguments);this._cached=null;this.nonstrict=this.passthrough;this.augment=this.extend}_getCached(){if(this._cached!==null)return this._cached;const e=this._def.shape();const t=o.util.objectKeys(e);this._cached={shape:e,keys:t};return this._cached}_parse(e){const t=this._getType(e);if(t!==o.ZodParsedType.object){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.object,received:t.parsedType});return i.INVALID}const{status:s,ctx:a}=this._processInputParams(e);const{shape:n,keys:d}=this._getCached();const u=[];if(!(this._def.catchall instanceof ZodNever&&this._def.unknownKeys==="strip")){for(const e in a.data){if(!d.includes(e)){u.push(e)}}}const c=[];for(const e of d){const t=n[e];const s=a.data[e];c.push({key:{status:"valid",value:e},value:t._parse(new ParseInputLazyPath(a,s,a.path,e)),alwaysSet:e in a.data})}if(this._def.catchall instanceof ZodNever){const e=this._def.unknownKeys;if(e==="passthrough"){for(const e of u){c.push({key:{status:"valid",value:e},value:{status:"valid",value:a.data[e]}})}}else if(e==="strict"){if(u.length>0){(0,i.addIssueToContext)(a,{code:r.ZodIssueCode.unrecognized_keys,keys:u});s.dirty()}}else if(e==="strip"){}else{throw new Error(`Internal ZodObject error: invalid unknownKeys value.`)}}else{const e=this._def.catchall;for(const t of u){const s=a.data[t];c.push({key:{status:"valid",value:t},value:e._parse(new ParseInputLazyPath(a,s,a.path,t)),alwaysSet:t in a.data})}}if(a.common.async){return Promise.resolve().then((async()=>{const e=[];for(const t of c){const s=await t.key;const r=await t.value;e.push({key:s,value:r,alwaysSet:t.alwaysSet})}return e})).then((e=>i.ParseStatus.mergeObjectSync(s,e)))}else{return i.ParseStatus.mergeObjectSync(s,c)}}get shape(){return this._def.shape()}strict(e){n.errorUtil.errToObj;return new ZodObject({...this._def,unknownKeys:"strict",...e!==undefined?{errorMap:(t,s)=>{const r=this._def.errorMap?.(t,s).message??s.defaultError;if(t.code==="unrecognized_keys")return{message:n.errorUtil.errToObj(e).message??r};return{message:r}}}:{}})}strip(){return new ZodObject({...this._def,unknownKeys:"strip"})}passthrough(){return new ZodObject({...this._def,unknownKeys:"passthrough"})}extend(e){return new ZodObject({...this._def,shape:()=>({...this._def.shape(),...e})})}merge(e){const t=new ZodObject({unknownKeys:e._def.unknownKeys,catchall:e._def.catchall,shape:()=>({...this._def.shape(),...e._def.shape()}),typeName:k.ZodObject});return t}setKey(e,t){return this.augment({[e]:t})}catchall(e){return new ZodObject({...this._def,catchall:e})}pick(e){const t={};for(const s of o.util.objectKeys(e)){if(e[s]&&this.shape[s]){t[s]=this.shape[s]}}return new ZodObject({...this._def,shape:()=>t})}omit(e){const t={};for(const s of o.util.objectKeys(this.shape)){if(!e[s]){t[s]=this.shape[s]}}return new ZodObject({...this._def,shape:()=>t})}deepPartial(){return deepPartialify(this)}partial(e){const t={};for(const s of o.util.objectKeys(this.shape)){const r=this.shape[s];if(e&&!e[s]){t[s]=r}else{t[s]=r.optional()}}return new ZodObject({...this._def,shape:()=>t})}required(e){const t={};for(const s of o.util.objectKeys(this.shape)){if(e&&!e[s]){t[s]=this.shape[s]}else{const e=this.shape[s];let r=e;while(r instanceof ZodOptional){r=r._def.innerType}t[s]=r}}return new ZodObject({...this._def,shape:()=>t})}keyof(){return createZodEnum(o.util.objectKeys(this.shape))}}t.ZodObject=ZodObject;ZodObject.create=(e,t)=>new ZodObject({shape:()=>e,unknownKeys:"strip",catchall:ZodNever.create(),typeName:k.ZodObject,...processCreateParams(t)});ZodObject.strictCreate=(e,t)=>new ZodObject({shape:()=>e,unknownKeys:"strict",catchall:ZodNever.create(),typeName:k.ZodObject,...processCreateParams(t)});ZodObject.lazycreate=(e,t)=>new ZodObject({shape:e,unknownKeys:"strip",catchall:ZodNever.create(),typeName:k.ZodObject,...processCreateParams(t)});class ZodUnion extends ZodType{_parse(e){const{ctx:t}=this._processInputParams(e);const s=this._def.options;function handleResults(e){for(const t of e){if(t.result.status==="valid"){return t.result}}for(const s of e){if(s.result.status==="dirty"){t.common.issues.push(...s.ctx.common.issues);return s.result}}const s=e.map((e=>new r.ZodError(e.ctx.common.issues)));(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_union,unionErrors:s});return i.INVALID}if(t.common.async){return Promise.all(s.map((async e=>{const s={...t,common:{...t.common,issues:[]},parent:null};return{result:await e._parseAsync({data:t.data,path:t.path,parent:s}),ctx:s}}))).then(handleResults)}else{let e=undefined;const a=[];for(const r of s){const s={...t,common:{...t.common,issues:[]},parent:null};const n=r._parseSync({data:t.data,path:t.path,parent:s});if(n.status==="valid"){return n}else if(n.status==="dirty"&&!e){e={result:n,ctx:s}}if(s.common.issues.length){a.push(s.common.issues)}}if(e){t.common.issues.push(...e.ctx.common.issues);return e.result}const n=a.map((e=>new r.ZodError(e)));(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_union,unionErrors:n});return i.INVALID}}get options(){return this._def.options}}t.ZodUnion=ZodUnion;ZodUnion.create=(e,t)=>new ZodUnion({options:e,typeName:k.ZodUnion,...processCreateParams(t)});const getDiscriminator=e=>{if(e instanceof ZodLazy){return getDiscriminator(e.schema)}else if(e instanceof ZodEffects){return getDiscriminator(e.innerType())}else if(e instanceof ZodLiteral){return[e.value]}else if(e instanceof ZodEnum){return e.options}else if(e instanceof ZodNativeEnum){return o.util.objectValues(e.enum)}else if(e instanceof ZodDefault){return getDiscriminator(e._def.innerType)}else if(e instanceof ZodUndefined){return[undefined]}else if(e instanceof ZodNull){return[null]}else if(e instanceof ZodOptional){return[undefined,...getDiscriminator(e.unwrap())]}else if(e instanceof ZodNullable){return[null,...getDiscriminator(e.unwrap())]}else if(e instanceof ZodBranded){return getDiscriminator(e.unwrap())}else if(e instanceof ZodReadonly){return getDiscriminator(e.unwrap())}else if(e instanceof ZodCatch){return getDiscriminator(e._def.innerType)}else{return[]}};class ZodDiscriminatedUnion extends ZodType{_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==o.ZodParsedType.object){(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.object,received:t.parsedType});return i.INVALID}const s=this.discriminator;const a=t.data[s];const n=this.optionsMap.get(a);if(!n){(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_union_discriminator,options:Array.from(this.optionsMap.keys()),path:[s]});return i.INVALID}if(t.common.async){return n._parseAsync({data:t.data,path:t.path,parent:t})}else{return n._parseSync({data:t.data,path:t.path,parent:t})}}get discriminator(){return this._def.discriminator}get options(){return this._def.options}get optionsMap(){return this._def.optionsMap}static create(e,t,s){const r=new Map;for(const s of t){const t=getDiscriminator(s.shape[e]);if(!t.length){throw new Error(`A discriminator value for key \`${e}\` could not be extracted from all schema options`)}for(const a of t){if(r.has(a)){throw new Error(`Discriminator property ${String(e)} has duplicate value ${String(a)}`)}r.set(a,s)}}return new ZodDiscriminatedUnion({typeName:k.ZodDiscriminatedUnion,discriminator:e,options:t,optionsMap:r,...processCreateParams(s)})}}t.ZodDiscriminatedUnion=ZodDiscriminatedUnion;function mergeValues(e,t){const s=(0,o.getParsedType)(e);const r=(0,o.getParsedType)(t);if(e===t){return{valid:true,data:e}}else if(s===o.ZodParsedType.object&&r===o.ZodParsedType.object){const s=o.util.objectKeys(t);const r=o.util.objectKeys(e).filter((e=>s.indexOf(e)!==-1));const a={...e,...t};for(const s of r){const r=mergeValues(e[s],t[s]);if(!r.valid){return{valid:false}}a[s]=r.data}return{valid:true,data:a}}else if(s===o.ZodParsedType.array&&r===o.ZodParsedType.array){if(e.length!==t.length){return{valid:false}}const s=[];for(let r=0;r{if((0,i.isAborted)(e)||(0,i.isAborted)(a)){return i.INVALID}const n=mergeValues(e.value,a.value);if(!n.valid){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.invalid_intersection_types});return i.INVALID}if((0,i.isDirty)(e)||(0,i.isDirty)(a)){t.dirty()}return{status:t.value,value:n.data}};if(s.common.async){return Promise.all([this._def.left._parseAsync({data:s.data,path:s.path,parent:s}),this._def.right._parseAsync({data:s.data,path:s.path,parent:s})]).then((([e,t])=>handleParsed(e,t)))}else{return handleParsed(this._def.left._parseSync({data:s.data,path:s.path,parent:s}),this._def.right._parseSync({data:s.data,path:s.path,parent:s}))}}}t.ZodIntersection=ZodIntersection;ZodIntersection.create=(e,t,s)=>new ZodIntersection({left:e,right:t,typeName:k.ZodIntersection,...processCreateParams(s)});class ZodTuple extends ZodType{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==o.ZodParsedType.array){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.array,received:s.parsedType});return i.INVALID}if(s.data.lengththis._def.items.length){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.too_big,maximum:this._def.items.length,inclusive:true,exact:false,type:"array"});t.dirty()}const n=[...s.data].map(((e,t)=>{const r=this._def.items[t]||this._def.rest;if(!r)return null;return r._parse(new ParseInputLazyPath(s,e,s.path,t))})).filter((e=>!!e));if(s.common.async){return Promise.all(n).then((e=>i.ParseStatus.mergeArray(t,e)))}else{return i.ParseStatus.mergeArray(t,n)}}get items(){return this._def.items}rest(e){return new ZodTuple({...this._def,rest:e})}}t.ZodTuple=ZodTuple;ZodTuple.create=(e,t)=>{if(!Array.isArray(e)){throw new Error("You must pass an array of schemas to z.tuple([ ... ])")}return new ZodTuple({items:e,typeName:k.ZodTuple,rest:null,...processCreateParams(t)})};class ZodRecord extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==o.ZodParsedType.object){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.object,received:s.parsedType});return i.INVALID}const a=[];const n=this._def.keyType;const d=this._def.valueType;for(const e in s.data){a.push({key:n._parse(new ParseInputLazyPath(s,e,s.path,e)),value:d._parse(new ParseInputLazyPath(s,s.data[e],s.path,e)),alwaysSet:e in s.data})}if(s.common.async){return i.ParseStatus.mergeObjectAsync(t,a)}else{return i.ParseStatus.mergeObjectSync(t,a)}}get element(){return this._def.valueType}static create(e,t,s){if(t instanceof ZodType){return new ZodRecord({keyType:e,valueType:t,typeName:k.ZodRecord,...processCreateParams(s)})}return new ZodRecord({keyType:ZodString.create(),valueType:e,typeName:k.ZodRecord,...processCreateParams(t)})}}t.ZodRecord=ZodRecord;class ZodMap extends ZodType{get keySchema(){return this._def.keyType}get valueSchema(){return this._def.valueType}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==o.ZodParsedType.map){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.map,received:s.parsedType});return i.INVALID}const a=this._def.keyType;const n=this._def.valueType;const d=[...s.data.entries()].map((([e,t],r)=>({key:a._parse(new ParseInputLazyPath(s,e,s.path,[r,"key"])),value:n._parse(new ParseInputLazyPath(s,t,s.path,[r,"value"]))})));if(s.common.async){const e=new Map;return Promise.resolve().then((async()=>{for(const s of d){const r=await s.key;const a=await s.value;if(r.status==="aborted"||a.status==="aborted"){return i.INVALID}if(r.status==="dirty"||a.status==="dirty"){t.dirty()}e.set(r.value,a.value)}return{status:t.value,value:e}}))}else{const e=new Map;for(const s of d){const r=s.key;const a=s.value;if(r.status==="aborted"||a.status==="aborted"){return i.INVALID}if(r.status==="dirty"||a.status==="dirty"){t.dirty()}e.set(r.value,a.value)}return{status:t.value,value:e}}}}t.ZodMap=ZodMap;ZodMap.create=(e,t,s)=>new ZodMap({valueType:t,keyType:e,typeName:k.ZodMap,...processCreateParams(s)});class ZodSet extends ZodType{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.parsedType!==o.ZodParsedType.set){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.set,received:s.parsedType});return i.INVALID}const a=this._def;if(a.minSize!==null){if(s.data.sizea.maxSize.value){(0,i.addIssueToContext)(s,{code:r.ZodIssueCode.too_big,maximum:a.maxSize.value,type:"set",inclusive:true,exact:false,message:a.maxSize.message});t.dirty()}}const n=this._def.valueType;function finalizeSet(e){const s=new Set;for(const r of e){if(r.status==="aborted")return i.INVALID;if(r.status==="dirty")t.dirty();s.add(r.value)}return{status:t.value,value:s}}const d=[...s.data.values()].map(((e,t)=>n._parse(new ParseInputLazyPath(s,e,s.path,t))));if(s.common.async){return Promise.all(d).then((e=>finalizeSet(e)))}else{return finalizeSet(d)}}min(e,t){return new ZodSet({...this._def,minSize:{value:e,message:n.errorUtil.toString(t)}})}max(e,t){return new ZodSet({...this._def,maxSize:{value:e,message:n.errorUtil.toString(t)}})}size(e,t){return this.min(e,t).max(e,t)}nonempty(e){return this.min(1,e)}}t.ZodSet=ZodSet;ZodSet.create=(e,t)=>new ZodSet({valueType:e,minSize:null,maxSize:null,typeName:k.ZodSet,...processCreateParams(t)});class ZodFunction extends ZodType{constructor(){super(...arguments);this.validate=this.implement}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==o.ZodParsedType.function){(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.function,received:t.parsedType});return i.INVALID}function makeArgsIssue(e,s){return(0,i.makeIssue)({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,a.getErrorMap)(),a.defaultErrorMap].filter((e=>!!e)),issueData:{code:r.ZodIssueCode.invalid_arguments,argumentsError:s}})}function makeReturnsIssue(e,s){return(0,i.makeIssue)({data:e,path:t.path,errorMaps:[t.common.contextualErrorMap,t.schemaErrorMap,(0,a.getErrorMap)(),a.defaultErrorMap].filter((e=>!!e)),issueData:{code:r.ZodIssueCode.invalid_return_type,returnTypeError:s}})}const s={errorMap:t.common.contextualErrorMap};const n=t.data;if(this._def.returns instanceof ZodPromise){const e=this;return(0,i.OK)((async function(...t){const a=new r.ZodError([]);const i=await e._def.args.parseAsync(t,s).catch((e=>{a.addIssue(makeArgsIssue(t,e));throw a}));const o=await Reflect.apply(n,this,i);const d=await e._def.returns._def.type.parseAsync(o,s).catch((e=>{a.addIssue(makeReturnsIssue(o,e));throw a}));return d}))}else{const e=this;return(0,i.OK)((function(...t){const a=e._def.args.safeParse(t,s);if(!a.success){throw new r.ZodError([makeArgsIssue(t,a.error)])}const i=Reflect.apply(n,this,a.data);const o=e._def.returns.safeParse(i,s);if(!o.success){throw new r.ZodError([makeReturnsIssue(i,o.error)])}return o.data}))}}parameters(){return this._def.args}returnType(){return this._def.returns}args(...e){return new ZodFunction({...this._def,args:ZodTuple.create(e).rest(ZodUnknown.create())})}returns(e){return new ZodFunction({...this._def,returns:e})}implement(e){const t=this.parse(e);return t}strictImplement(e){const t=this.parse(e);return t}static create(e,t,s){return new ZodFunction({args:e?e:ZodTuple.create([]).rest(ZodUnknown.create()),returns:t||ZodUnknown.create(),typeName:k.ZodFunction,...processCreateParams(s)})}}t.ZodFunction=ZodFunction;class ZodLazy extends ZodType{get schema(){return this._def.getter()}_parse(e){const{ctx:t}=this._processInputParams(e);const s=this._def.getter();return s._parse({data:t.data,path:t.path,parent:t})}}t.ZodLazy=ZodLazy;ZodLazy.create=(e,t)=>new ZodLazy({getter:e,typeName:k.ZodLazy,...processCreateParams(t)});class ZodLiteral extends ZodType{_parse(e){if(e.data!==this._def.value){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{received:t.data,code:r.ZodIssueCode.invalid_literal,expected:this._def.value});return i.INVALID}return{status:"valid",value:e.data}}get value(){return this._def.value}}t.ZodLiteral=ZodLiteral;ZodLiteral.create=(e,t)=>new ZodLiteral({value:e,typeName:k.ZodLiteral,...processCreateParams(t)});function createZodEnum(e,t){return new ZodEnum({values:e,typeName:k.ZodEnum,...processCreateParams(t)})}class ZodEnum extends ZodType{_parse(e){if(typeof e.data!=="string"){const t=this._getOrReturnCtx(e);const s=this._def.values;(0,i.addIssueToContext)(t,{expected:o.util.joinValues(s),received:t.parsedType,code:r.ZodIssueCode.invalid_type});return i.INVALID}if(!this._cache){this._cache=new Set(this._def.values)}if(!this._cache.has(e.data)){const t=this._getOrReturnCtx(e);const s=this._def.values;(0,i.addIssueToContext)(t,{received:t.data,code:r.ZodIssueCode.invalid_enum_value,options:s});return i.INVALID}return(0,i.OK)(e.data)}get options(){return this._def.values}get enum(){const e={};for(const t of this._def.values){e[t]=t}return e}get Values(){const e={};for(const t of this._def.values){e[t]=t}return e}get Enum(){const e={};for(const t of this._def.values){e[t]=t}return e}extract(e,t=this._def){return ZodEnum.create(e,{...this._def,...t})}exclude(e,t=this._def){return ZodEnum.create(this.options.filter((t=>!e.includes(t))),{...this._def,...t})}}t.ZodEnum=ZodEnum;ZodEnum.create=createZodEnum;class ZodNativeEnum extends ZodType{_parse(e){const t=o.util.getValidEnumValues(this._def.values);const s=this._getOrReturnCtx(e);if(s.parsedType!==o.ZodParsedType.string&&s.parsedType!==o.ZodParsedType.number){const e=o.util.objectValues(t);(0,i.addIssueToContext)(s,{expected:o.util.joinValues(e),received:s.parsedType,code:r.ZodIssueCode.invalid_type});return i.INVALID}if(!this._cache){this._cache=new Set(o.util.getValidEnumValues(this._def.values))}if(!this._cache.has(e.data)){const e=o.util.objectValues(t);(0,i.addIssueToContext)(s,{received:s.data,code:r.ZodIssueCode.invalid_enum_value,options:e});return i.INVALID}return(0,i.OK)(e.data)}get enum(){return this._def.values}}t.ZodNativeEnum=ZodNativeEnum;ZodNativeEnum.create=(e,t)=>new ZodNativeEnum({values:e,typeName:k.ZodNativeEnum,...processCreateParams(t)});class ZodPromise extends ZodType{unwrap(){return this._def.type}_parse(e){const{ctx:t}=this._processInputParams(e);if(t.parsedType!==o.ZodParsedType.promise&&t.common.async===false){(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.promise,received:t.parsedType});return i.INVALID}const s=t.parsedType===o.ZodParsedType.promise?t.data:Promise.resolve(t.data);return(0,i.OK)(s.then((e=>this._def.type.parseAsync(e,{path:t.path,errorMap:t.common.contextualErrorMap}))))}}t.ZodPromise=ZodPromise;ZodPromise.create=(e,t)=>new ZodPromise({type:e,typeName:k.ZodPromise,...processCreateParams(t)});class ZodEffects extends ZodType{innerType(){return this._def.schema}sourceType(){return this._def.schema._def.typeName===k.ZodEffects?this._def.schema.sourceType():this._def.schema}_parse(e){const{status:t,ctx:s}=this._processInputParams(e);const r=this._def.effect||null;const a={addIssue:e=>{(0,i.addIssueToContext)(s,e);if(e.fatal){t.abort()}else{t.dirty()}},get path(){return s.path}};a.addIssue=a.addIssue.bind(a);if(r.type==="preprocess"){const e=r.transform(s.data,a);if(s.common.async){return Promise.resolve(e).then((async e=>{if(t.value==="aborted")return i.INVALID;const r=await this._def.schema._parseAsync({data:e,path:s.path,parent:s});if(r.status==="aborted")return i.INVALID;if(r.status==="dirty")return(0,i.DIRTY)(r.value);if(t.value==="dirty")return(0,i.DIRTY)(r.value);return r}))}else{if(t.value==="aborted")return i.INVALID;const r=this._def.schema._parseSync({data:e,path:s.path,parent:s});if(r.status==="aborted")return i.INVALID;if(r.status==="dirty")return(0,i.DIRTY)(r.value);if(t.value==="dirty")return(0,i.DIRTY)(r.value);return r}}if(r.type==="refinement"){const executeRefinement=e=>{const t=r.refinement(e,a);if(s.common.async){return Promise.resolve(t)}if(t instanceof Promise){throw new Error("Async refinement encountered during synchronous parse operation. Use .parseAsync instead.")}return e};if(s.common.async===false){const e=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(e.status==="aborted")return i.INVALID;if(e.status==="dirty")t.dirty();executeRefinement(e.value);return{status:t.value,value:e.value}}else{return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then((e=>{if(e.status==="aborted")return i.INVALID;if(e.status==="dirty")t.dirty();return executeRefinement(e.value).then((()=>({status:t.value,value:e.value})))}))}}if(r.type==="transform"){if(s.common.async===false){const e=this._def.schema._parseSync({data:s.data,path:s.path,parent:s});if(!(0,i.isValid)(e))return i.INVALID;const n=r.transform(e.value,a);if(n instanceof Promise){throw new Error(`Asynchronous transform encountered during synchronous parse operation. Use .parseAsync instead.`)}return{status:t.value,value:n}}else{return this._def.schema._parseAsync({data:s.data,path:s.path,parent:s}).then((e=>{if(!(0,i.isValid)(e))return i.INVALID;return Promise.resolve(r.transform(e.value,a)).then((e=>({status:t.value,value:e})))}))}}o.util.assertNever(r)}}t.ZodEffects=ZodEffects;t.ZodTransformer=ZodEffects;ZodEffects.create=(e,t,s)=>new ZodEffects({schema:e,typeName:k.ZodEffects,effect:t,...processCreateParams(s)});ZodEffects.createWithPreprocess=(e,t,s)=>new ZodEffects({schema:t,effect:{type:"preprocess",transform:e},typeName:k.ZodEffects,...processCreateParams(s)});class ZodOptional extends ZodType{_parse(e){const t=this._getType(e);if(t===o.ZodParsedType.undefined){return(0,i.OK)(undefined)}return this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}t.ZodOptional=ZodOptional;ZodOptional.create=(e,t)=>new ZodOptional({innerType:e,typeName:k.ZodOptional,...processCreateParams(t)});class ZodNullable extends ZodType{_parse(e){const t=this._getType(e);if(t===o.ZodParsedType.null){return(0,i.OK)(null)}return this._def.innerType._parse(e)}unwrap(){return this._def.innerType}}t.ZodNullable=ZodNullable;ZodNullable.create=(e,t)=>new ZodNullable({innerType:e,typeName:k.ZodNullable,...processCreateParams(t)});class ZodDefault extends ZodType{_parse(e){const{ctx:t}=this._processInputParams(e);let s=t.data;if(t.parsedType===o.ZodParsedType.undefined){s=this._def.defaultValue()}return this._def.innerType._parse({data:s,path:t.path,parent:t})}removeDefault(){return this._def.innerType}}t.ZodDefault=ZodDefault;ZodDefault.create=(e,t)=>new ZodDefault({innerType:e,typeName:k.ZodDefault,defaultValue:typeof t.default==="function"?t.default:()=>t.default,...processCreateParams(t)});class ZodCatch extends ZodType{_parse(e){const{ctx:t}=this._processInputParams(e);const s={...t,common:{...t.common,issues:[]}};const a=this._def.innerType._parse({data:s.data,path:s.path,parent:{...s}});if((0,i.isAsync)(a)){return a.then((e=>({status:"valid",value:e.status==="valid"?e.value:this._def.catchValue({get error(){return new r.ZodError(s.common.issues)},input:s.data})})))}else{return{status:"valid",value:a.status==="valid"?a.value:this._def.catchValue({get error(){return new r.ZodError(s.common.issues)},input:s.data})}}}removeCatch(){return this._def.innerType}}t.ZodCatch=ZodCatch;ZodCatch.create=(e,t)=>new ZodCatch({innerType:e,typeName:k.ZodCatch,catchValue:typeof t.catch==="function"?t.catch:()=>t.catch,...processCreateParams(t)});class ZodNaN extends ZodType{_parse(e){const t=this._getType(e);if(t!==o.ZodParsedType.nan){const t=this._getOrReturnCtx(e);(0,i.addIssueToContext)(t,{code:r.ZodIssueCode.invalid_type,expected:o.ZodParsedType.nan,received:t.parsedType});return i.INVALID}return{status:"valid",value:e.data}}}t.ZodNaN=ZodNaN;ZodNaN.create=e=>new ZodNaN({typeName:k.ZodNaN,...processCreateParams(e)});t.BRAND=Symbol("zod_brand");class ZodBranded extends ZodType{_parse(e){const{ctx:t}=this._processInputParams(e);const s=t.data;return this._def.type._parse({data:s,path:t.path,parent:t})}unwrap(){return this._def.type}}t.ZodBranded=ZodBranded;class ZodPipeline extends ZodType{_parse(e){const{status:t,ctx:s}=this._processInputParams(e);if(s.common.async){const handleAsync=async()=>{const e=await this._def.in._parseAsync({data:s.data,path:s.path,parent:s});if(e.status==="aborted")return i.INVALID;if(e.status==="dirty"){t.dirty();return(0,i.DIRTY)(e.value)}else{return this._def.out._parseAsync({data:e.value,path:s.path,parent:s})}};return handleAsync()}else{const e=this._def.in._parseSync({data:s.data,path:s.path,parent:s});if(e.status==="aborted")return i.INVALID;if(e.status==="dirty"){t.dirty();return{status:"dirty",value:e.value}}else{return this._def.out._parseSync({data:e.value,path:s.path,parent:s})}}}static create(e,t){return new ZodPipeline({in:e,out:t,typeName:k.ZodPipeline})}}t.ZodPipeline=ZodPipeline;class ZodReadonly extends ZodType{_parse(e){const t=this._def.innerType._parse(e);const freeze=e=>{if((0,i.isValid)(e)){e.value=Object.freeze(e.value)}return e};return(0,i.isAsync)(t)?t.then((e=>freeze(e))):freeze(t)}unwrap(){return this._def.innerType}}t.ZodReadonly=ZodReadonly;ZodReadonly.create=(e,t)=>new ZodReadonly({innerType:e,typeName:k.ZodReadonly,...processCreateParams(t)});function cleanParams(e,t){const s=typeof e==="function"?e(t):typeof e==="string"?{message:e}:e;const r=typeof s==="string"?{message:s}:s;return r}function custom(e,t={},s){if(e)return ZodAny.create().superRefine(((r,a)=>{const n=e(r);if(n instanceof Promise){return n.then((e=>{if(!e){const e=cleanParams(t,r);const n=e.fatal??s??true;a.addIssue({code:"custom",...e,fatal:n})}}))}if(!n){const e=cleanParams(t,r);const n=e.fatal??s??true;a.addIssue({code:"custom",...e,fatal:n})}return}));return ZodAny.create()}t.late={object:ZodObject.lazycreate};var k;(function(e){e["ZodString"]="ZodString";e["ZodNumber"]="ZodNumber";e["ZodNaN"]="ZodNaN";e["ZodBigInt"]="ZodBigInt";e["ZodBoolean"]="ZodBoolean";e["ZodDate"]="ZodDate";e["ZodSymbol"]="ZodSymbol";e["ZodUndefined"]="ZodUndefined";e["ZodNull"]="ZodNull";e["ZodAny"]="ZodAny";e["ZodUnknown"]="ZodUnknown";e["ZodNever"]="ZodNever";e["ZodVoid"]="ZodVoid";e["ZodArray"]="ZodArray";e["ZodObject"]="ZodObject";e["ZodUnion"]="ZodUnion";e["ZodDiscriminatedUnion"]="ZodDiscriminatedUnion";e["ZodIntersection"]="ZodIntersection";e["ZodTuple"]="ZodTuple";e["ZodRecord"]="ZodRecord";e["ZodMap"]="ZodMap";e["ZodSet"]="ZodSet";e["ZodFunction"]="ZodFunction";e["ZodLazy"]="ZodLazy";e["ZodLiteral"]="ZodLiteral";e["ZodEnum"]="ZodEnum";e["ZodEffects"]="ZodEffects";e["ZodNativeEnum"]="ZodNativeEnum";e["ZodOptional"]="ZodOptional";e["ZodNullable"]="ZodNullable";e["ZodDefault"]="ZodDefault";e["ZodCatch"]="ZodCatch";e["ZodPromise"]="ZodPromise";e["ZodBranded"]="ZodBranded";e["ZodPipeline"]="ZodPipeline";e["ZodReadonly"]="ZodReadonly"})(k||(t.ZodFirstPartyTypeKind=k={}));class Class{constructor(...e){}}const instanceOfType=(e,t={message:`Input not instance of ${e.name}`})=>custom((t=>t instanceof e),t);t["instanceof"]=instanceOfType;const P=ZodString.create;t.string=P;const w=ZodNumber.create;t.number=w;const N=ZodNaN.create;t.nan=N;const O=ZodBigInt.create;t.bigint=O;const A=ZodBoolean.create;t.boolean=A;const S=ZodDate.create;t.date=S;const j=ZodSymbol.create;t.symbol=j;const E=ZodUndefined.create;t.undefined=E;const D=ZodNull.create;t["null"]=D;const L=ZodAny.create;t.any=L;const U=ZodUnknown.create;t.unknown=U;const R=ZodNever.create;t.never=R;const V=ZodVoid.create;t["void"]=V;const M=ZodArray.create;t.array=M;const $=ZodObject.create;t.object=$;const z=ZodObject.strictCreate;t.strictObject=z;const F=ZodUnion.create;t.union=F;const B=ZodDiscriminatedUnion.create;t.discriminatedUnion=B;const K=ZodIntersection.create;t.intersection=K;const q=ZodTuple.create;t.tuple=q;const W=ZodRecord.create;t.record=W;const Y=ZodMap.create;t.map=Y;const J=ZodSet.create;t.set=J;const H=ZodFunction.create;t["function"]=H;const G=ZodLazy.create;t.lazy=G;const X=ZodLiteral.create;t.literal=X;const Q=ZodEnum.create;t["enum"]=Q;const ee=ZodNativeEnum.create;t.nativeEnum=ee;const te=ZodPromise.create;t.promise=te;const se=ZodEffects.create;t.effect=se;t.transformer=se;const re=ZodOptional.create;t.optional=re;const ae=ZodNullable.create;t.nullable=ae;const ne=ZodEffects.createWithPreprocess;t.preprocess=ne;const ie=ZodPipeline.create;t.pipeline=ie;const ostring=()=>P().optional();t.ostring=ostring;const onumber=()=>w().optional();t.onumber=onumber;const oboolean=()=>A().optional();t.oboolean=oboolean;t.coerce={string:e=>ZodString.create({...e,coerce:true}),number:e=>ZodNumber.create({...e,coerce:true}),boolean:e=>ZodBoolean.create({...e,coerce:true}),bigint:e=>ZodBigInt.create({...e,coerce:true}),date:e=>ZodDate.create({...e,coerce:true})};t.NEVER=i.INVALID}};var t={};function __nccwpck_require__(s){var r=t[s];if(r!==undefined){return r.exports}var a=t[s]={exports:{}};var n=true;try{e[s].call(a.exports,a,a.exports,__nccwpck_require__);n=false}finally{if(n)delete t[s]}return a.exports}if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var s=__nccwpck_require__(629);module.exports=s})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/compiled/zod/package.json b/cli/app/node_modules/next/dist/compiled/zod/package.json new file mode 100644 index 00000000000..02d25cd7f7c --- /dev/null +++ b/cli/app/node_modules/next/dist/compiled/zod/package.json @@ -0,0 +1 @@ +{"name":"zod","main":"index.cjs","author":"Colin McDonnell ","license":"MIT"} diff --git a/cli/app/node_modules/next/dist/experimental/testmode/context.js b/cli/app/node_modules/next/dist/experimental/testmode/context.js new file mode 100644 index 00000000000..1ce3204dc2f --- /dev/null +++ b/cli/app/node_modules/next/dist/experimental/testmode/context.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getTestReqInfo: null, + withRequest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getTestReqInfo: function() { + return getTestReqInfo; + }, + withRequest: function() { + return withRequest; + } +}); +const _nodeasync_hooks = require("node:async_hooks"); +const testStorage = new _nodeasync_hooks.AsyncLocalStorage(); +function extractTestInfoFromRequest(req, reader) { + const proxyPortHeader = reader.header(req, 'next-test-proxy-port'); + if (!proxyPortHeader) { + return undefined; + } + const url = reader.url(req); + const proxyPort = Number(proxyPortHeader); + const testData = reader.header(req, 'next-test-data') || ''; + return { + url, + proxyPort, + testData + }; +} +function withRequest(req, reader, fn) { + const testReqInfo = extractTestInfoFromRequest(req, reader); + if (!testReqInfo) { + return fn(); + } + return testStorage.run(testReqInfo, fn); +} +function getTestReqInfo(req, reader) { + const testReqInfo = testStorage.getStore(); + if (testReqInfo) { + return testReqInfo; + } + if (req && reader) { + return extractTestInfoFromRequest(req, reader); + } + return undefined; +} + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/experimental/testmode/fetch.js b/cli/app/node_modules/next/dist/experimental/testmode/fetch.js new file mode 100644 index 00000000000..71b25d5fb74 --- /dev/null +++ b/cli/app/node_modules/next/dist/experimental/testmode/fetch.js @@ -0,0 +1,142 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handleFetch: null, + interceptFetch: null, + reader: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handleFetch: function() { + return handleFetch; + }, + interceptFetch: function() { + return interceptFetch; + }, + reader: function() { + return reader; + } +}); +const _context = require("./context"); +const reader = { + url (req) { + return req.url; + }, + header (req, name) { + return req.headers.get(name); + } +}; +function getTestStack() { + let stack = (new Error().stack ?? '').split('\n'); + // Skip the first line and find first non-empty line. + for(let i = 1; i < stack.length; i++){ + if (stack[i].length > 0) { + stack = stack.slice(i); + break; + } + } + // Filter out franmework lines. + stack = stack.filter((f)=>!f.includes('/next/dist/')); + // At most 5 lines. + stack = stack.slice(0, 5); + // Cleanup some internal info and trim. + stack = stack.map((s)=>s.replace('webpack-internal:///(rsc)/', '').trim()); + return stack.join(' '); +} +async function buildProxyRequest(testData, request) { + const { url, method, headers, body, cache, credentials, integrity, mode, redirect, referrer, referrerPolicy } = request; + return { + testData, + api: 'fetch', + request: { + url, + method, + headers: [ + ...Array.from(headers), + [ + 'next-test-stack', + getTestStack() + ] + ], + body: body ? Buffer.from(await request.arrayBuffer()).toString('base64') : null, + cache, + credentials, + integrity, + mode, + redirect, + referrer, + referrerPolicy + } + }; +} +function buildResponse(proxyResponse) { + const { status, headers, body } = proxyResponse.response; + return new Response(body ? Buffer.from(body, 'base64') : null, { + status, + headers: new Headers(headers) + }); +} +async function handleFetch(originalFetch, request) { + const testInfo = (0, _context.getTestReqInfo)(request, reader); + if (!testInfo) { + // Passthrough non-test requests. + return originalFetch(request); + } + const { testData, proxyPort } = testInfo; + const proxyRequest = await buildProxyRequest(testData, request); + const resp = await originalFetch(`http://localhost:${proxyPort}`, { + method: 'POST', + body: JSON.stringify(proxyRequest), + next: { + // @ts-ignore + internal: true + } + }); + if (!resp.ok) { + throw Object.defineProperty(new Error(`Proxy request failed: ${resp.status}`), "__NEXT_ERROR_CODE", { + value: "E146", + enumerable: false, + configurable: true + }); + } + const proxyResponse = await resp.json(); + const { api } = proxyResponse; + switch(api){ + case 'continue': + return originalFetch(request); + case 'abort': + case 'unhandled': + throw Object.defineProperty(new Error(`Proxy request aborted [${request.method} ${request.url}]`), "__NEXT_ERROR_CODE", { + value: "E145", + enumerable: false, + configurable: true + }); + case 'fetch': + return buildResponse(proxyResponse); + default: + return api; + } +} +function interceptFetch(originalFetch) { + global.fetch = function testFetch(input, init) { + var _init_next; + // Passthrough internal requests. + // @ts-ignore + if (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) { + return originalFetch(input, init); + } + return handleFetch(originalFetch, new Request(input, init)); + }; + return ()=>{ + global.fetch = originalFetch; + }; +} + +//# sourceMappingURL=fetch.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/experimental/testmode/httpget.js b/cli/app/node_modules/next/dist/experimental/testmode/httpget.js new file mode 100644 index 00000000000..18a0dabfe43 --- /dev/null +++ b/cli/app/node_modules/next/dist/experimental/testmode/httpget.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "interceptHttpGet", { + enumerable: true, + get: function() { + return interceptHttpGet; + } +}); +const _ClientRequest = require("next/dist/compiled/@mswjs/interceptors/ClientRequest"); +const _fetch = require("./fetch"); +function interceptHttpGet(originalFetch) { + const clientRequestInterceptor = new _ClientRequest.ClientRequestInterceptor(); + clientRequestInterceptor.on('request', async ({ request })=>{ + const response = await (0, _fetch.handleFetch)(originalFetch, request); + request.respondWith(response); + }); + clientRequestInterceptor.apply(); + // Cleanup. + return ()=>{ + clientRequestInterceptor.dispose(); + }; +} + +//# sourceMappingURL=httpget.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/experimental/testmode/server-edge.js b/cli/app/node_modules/next/dist/experimental/testmode/server-edge.js new file mode 100644 index 00000000000..31a97c662e9 --- /dev/null +++ b/cli/app/node_modules/next/dist/experimental/testmode/server-edge.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + interceptTestApis: null, + wrapRequestHandler: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + interceptTestApis: function() { + return interceptTestApis; + }, + wrapRequestHandler: function() { + return wrapRequestHandler; + } +}); +const _context = require("./context"); +const _fetch = require("./fetch"); +function interceptTestApis() { + return (0, _fetch.interceptFetch)(global.fetch); +} +function wrapRequestHandler(handler) { + return (req, fn)=>(0, _context.withRequest)(req, _fetch.reader, ()=>handler(req, fn)); +} + +//# sourceMappingURL=server-edge.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/experimental/testmode/server.js b/cli/app/node_modules/next/dist/experimental/testmode/server.js new file mode 100644 index 00000000000..104fc39da56 --- /dev/null +++ b/cli/app/node_modules/next/dist/experimental/testmode/server.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + interceptTestApis: null, + wrapRequestHandlerNode: null, + wrapRequestHandlerWorker: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + interceptTestApis: function() { + return interceptTestApis; + }, + wrapRequestHandlerNode: function() { + return wrapRequestHandlerNode; + }, + wrapRequestHandlerWorker: function() { + return wrapRequestHandlerWorker; + } +}); +const _context = require("./context"); +const _fetch = require("./fetch"); +const _httpget = require("./httpget"); +const reader = { + url (req) { + return req.url ?? ''; + }, + header (req, name) { + const h = req.headers[name]; + if (h === undefined || h === null) { + return null; + } + if (typeof h === 'string') { + return h; + } + return h[0] ?? null; + } +}; +function interceptTestApis() { + const originalFetch = global.fetch; + const restoreFetch = (0, _fetch.interceptFetch)(originalFetch); + const restoreHttpGet = (0, _httpget.interceptHttpGet)(originalFetch); + // Cleanup. + return ()=>{ + restoreFetch(); + restoreHttpGet(); + }; +} +function wrapRequestHandlerWorker(handler) { + return (req, res)=>(0, _context.withRequest)(req, reader, ()=>handler(req, res)); +} +function wrapRequestHandlerNode(handler) { + return (req, res, parsedUrl)=>(0, _context.withRequest)(req, reader, ()=>handler(req, res, parsedUrl)); +} + +//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/export/helpers/create-incremental-cache.js b/cli/app/node_modules/next/dist/export/helpers/create-incremental-cache.js new file mode 100644 index 00000000000..360cec54a83 --- /dev/null +++ b/cli/app/node_modules/next/dist/export/helpers/create-incremental-cache.js @@ -0,0 +1,61 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createIncrementalCache", { + enumerable: true, + get: function() { + return createIncrementalCache; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _incrementalcache = require("../../server/lib/incremental-cache"); +const _ciinfo = require("../../server/ci-info"); +const _nodefsmethods = require("../../server/lib/node-fs-methods"); +const _interopdefault = require("../../lib/interop-default"); +const _formatdynamicimportpath = require("../../lib/format-dynamic-import-path"); +const _handlers = require("../../server/use-cache/handlers"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function createIncrementalCache({ cacheHandler, cacheMaxMemorySize, fetchCacheKeyPrefix, distDir, dir, flushToDisk, cacheHandlers, requestHeaders }) { + // Custom cache handler overrides. + let CacheHandler; + if (cacheHandler) { + CacheHandler = (0, _interopdefault.interopDefault)(await import((0, _formatdynamicimportpath.formatDynamicImportPath)(dir, cacheHandler)).then((mod)=>mod.default || mod)); + } + if (cacheHandlers && (0, _handlers.initializeCacheHandlers)(cacheMaxMemorySize)) { + for (const [kind, handler] of Object.entries(cacheHandlers)){ + if (!handler) continue; + (0, _handlers.setCacheHandler)(kind, (0, _interopdefault.interopDefault)(await import((0, _formatdynamicimportpath.formatDynamicImportPath)(dir, handler)).then((mod)=>mod.default || mod))); + } + } + const incrementalCache = new _incrementalcache.IncrementalCache({ + dev: false, + requestHeaders: requestHeaders || {}, + flushToDisk, + maxMemoryCacheSize: cacheMaxMemorySize, + fetchCacheKeyPrefix, + getPrerenderManifest: ()=>({ + version: 4, + routes: {}, + dynamicRoutes: {}, + preview: { + previewModeEncryptionKey: '', + previewModeId: '', + previewModeSigningKey: '' + }, + notFoundRoutes: [] + }), + fs: _nodefsmethods.nodeFs, + serverDistDir: _path.default.join(distDir, 'server'), + CurCacheHandler: CacheHandler, + minimalMode: _ciinfo.hasNextSupport + }); + globalThis.__incrementalCache = incrementalCache; + return incrementalCache; +} + +//# sourceMappingURL=create-incremental-cache.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/export/utils.js b/cli/app/node_modules/next/dist/export/utils.js new file mode 100644 index 00000000000..d1f2ab93e13 --- /dev/null +++ b/cli/app/node_modules/next/dist/export/utils.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "hasCustomExportOutput", { + enumerable: true, + get: function() { + return hasCustomExportOutput; + } +}); +function hasCustomExportOutput(config) { + // In the past, a user had to run "next build" to generate + // ".next" (or whatever the distDir) followed by "next export" + // to generate "out" (or whatever the outDir). However, when + // "output: export" is configured, "next build" does both steps. + // So the user-configured distDir is actually the outDir. + // We'll do some custom logic when meeting this condition. + // e.g. + // Will set config.distDir to .next to make sure the manifests + // are still reading from temporary .next directory. + return config.output === 'export' && config.distDir !== '.next'; +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/batcher.js b/cli/app/node_modules/next/dist/lib/batcher.js new file mode 100644 index 00000000000..3850c8a2813 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/batcher.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "Batcher", { + enumerable: true, + get: function() { + return Batcher; + } +}); +const _detachedpromise = require("./detached-promise"); +class Batcher { + constructor(cacheKeyFn, /** + * A function that will be called to schedule the wrapped function to be + * executed. This defaults to a function that will execute the function + * immediately. + */ schedulerFn = (fn)=>fn()){ + this.cacheKeyFn = cacheKeyFn; + this.schedulerFn = schedulerFn; + this.pending = new Map(); + } + static create(options) { + return new Batcher(options == null ? void 0 : options.cacheKeyFn, options == null ? void 0 : options.schedulerFn); + } + /** + * Wraps a function in a promise that will be resolved or rejected only once + * for a given key. This will allow multiple calls to the function to be + * made, but only one will be executed at a time. The result of the first + * call will be returned to all callers. + * + * @param key the key to use for the cache + * @param fn the function to wrap + * @returns a promise that resolves to the result of the function + */ async batch(key, fn) { + const cacheKey = this.cacheKeyFn ? await this.cacheKeyFn(key) : key; + if (cacheKey === null) { + return fn({ + resolve: (value)=>Promise.resolve(value), + key + }); + } + const pending = this.pending.get(cacheKey); + if (pending) return pending; + const { promise, resolve, reject } = new _detachedpromise.DetachedPromise(); + this.pending.set(cacheKey, promise); + this.schedulerFn(async ()=>{ + try { + const result = await fn({ + resolve, + key + }); + // Resolving a promise multiple times is a no-op, so we can safely + // resolve all pending promises with the same result. + resolve(result); + } catch (err) { + reject(err); + } finally{ + this.pending.delete(cacheKey); + } + }); + return promise; + } +} + +//# sourceMappingURL=batcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/build-custom-route.js b/cli/app/node_modules/next/dist/lib/build-custom-route.js new file mode 100644 index 00000000000..b236676be61 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/build-custom-route.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "buildCustomRoute", { + enumerable: true, + get: function() { + return buildCustomRoute; + } +}); +const _pathtoregexp = require("next/dist/compiled/path-to-regexp"); +const _loadcustomroutes = require("./load-custom-routes"); +const _redirectstatus = require("./redirect-status"); +function buildCustomRoute(type, route, restrictedRedirectPaths) { + const compiled = (0, _pathtoregexp.pathToRegexp)(route.source, [], { + strict: true, + sensitive: false, + delimiter: '/' + }); + // If this is an internal rewrite and it already provides a regex, use it + // otherwise, normalize the source to a regex. + let regex; + if (!route.internal || type !== 'rewrite' || !('regex' in route) || typeof route.regex !== 'string') { + let source = compiled.source; + if (!route.internal) { + source = (0, _redirectstatus.modifyRouteRegex)(source, type === 'redirect' ? restrictedRedirectPaths : undefined); + } + regex = (0, _loadcustomroutes.normalizeRouteRegex)(source); + } else { + regex = route.regex; + } + if (type !== 'redirect') { + return { + ...route, + regex + }; + } + return { + ...route, + statusCode: (0, _redirectstatus.getRedirectStatus)(route), + permanent: undefined, + regex + }; +} + +//# sourceMappingURL=build-custom-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/bundler.js b/cli/app/node_modules/next/dist/lib/bundler.js new file mode 100644 index 00000000000..45e51ca874f --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/bundler.js @@ -0,0 +1,97 @@ +/// Utilties for configuring the bundler to use. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + Bundler: null, + finalizeBundlerFromConfig: null, + parseBundlerArgs: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Bundler: function() { + return Bundler; + }, + finalizeBundlerFromConfig: function() { + return finalizeBundlerFromConfig; + }, + parseBundlerArgs: function() { + return parseBundlerArgs; + } +}); +var Bundler = /*#__PURE__*/ function(Bundler) { + Bundler[Bundler["Turbopack"] = 0] = "Turbopack"; + Bundler[Bundler["Webpack"] = 1] = "Webpack"; + Bundler[Bundler["Rspack"] = 2] = "Rspack"; + return Bundler; +}({}); +function parseBundlerArgs(options) { + const bundlerFlags = new Map(); + const setBundlerFlag = (bundler, flag)=>{ + bundlerFlags.set(bundler, (bundlerFlags.get(bundler) ?? []).concat(flag)); + }; + // What turbo flag was set? We allow multiple to be set, which is silly but not ambiguous, just pick the most relevant one. + if (options.turbopack) { + setBundlerFlag(0, '--turbopack'); + } + if (options.turbo) { + setBundlerFlag(0, '--turbo'); + } else if (process.env.TURBOPACK) { + // We don't really want to support this but it is trivial and not really confusing. + // If we don't support it and someone sets it, we would have inconsistent behavior + // since some parts of next would read the return value of this function and other + // parts will read the env variable. + setBundlerFlag(0, `TURBOPACK=${process.env.TURBOPACK}`); + } else if (process.env.IS_TURBOPACK_TEST) { + setBundlerFlag(0, `IS_TURBOPACK_TEST=${process.env.IS_TURBOPACK_TEST}`); + } + if (options.webpack) { + setBundlerFlag(1, '--webpack'); + } + if (process.env.IS_WEBPACK_TEST) { + setBundlerFlag(1, `IS_WEBPACK_TEST=${process.env.IS_WEBPACK_TEST}`); + } + // Mostly this is set via the NextConfig but it can also be set via the command line which is + // common for testing. + if (process.env.NEXT_RSPACK) { + setBundlerFlag(2, `NEXT_RSPACK=${process.env.NEXT_RSPACK}`); + } + if (process.env.NEXT_TEST_USE_RSPACK) { + setBundlerFlag(2, `NEXT_TEST_USE_RSPACK=${process.env.NEXT_TEST_USE_RSPACK}`); + } + if (bundlerFlags.size > 1) { + console.error(`Multiple bundler flags set: ${Array.from(bundlerFlags.values()).flat().join(', ')}. + +Edit your command or your package.json script to configure only one bundler.`); + process.exit(1); + } + // The default is turbopack when nothing is configured. + if (bundlerFlags.size === 0) { + process.env.TURBOPACK = 'auto'; + return 0; + } + if (bundlerFlags.has(0)) { + // Only conditionally assign to the environment variable, preserving already set values. + // If it was set to 'auto' because no flag was set and this function is called a second time we + // would upgrade to '1' but we don't really want that. + process.env.TURBOPACK ??= '1'; + return 0; + } + // Otherwise it is one of rspack or webpack. At this point there must be exactly one key in the map. + return bundlerFlags.keys().next().value; +} +function finalizeBundlerFromConfig(fromOptions) { + // Reading the next config can set NEXT_RSPACK environment variables. + if (process.env.NEXT_RSPACK) { + return 2; + } + return fromOptions; +} + +//# sourceMappingURL=bundler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/client-and-server-references.js b/cli/app/node_modules/next/dist/lib/client-and-server-references.js new file mode 100644 index 00000000000..2545cc0a02e --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/client-and-server-references.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getUseCacheFunctionInfo: null, + isClientReference: null, + isServerReference: null, + isUseCacheFunction: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getUseCacheFunctionInfo: function() { + return getUseCacheFunctionInfo; + }, + isClientReference: function() { + return isClientReference; + }, + isServerReference: function() { + return isServerReference; + }, + isUseCacheFunction: function() { + return isUseCacheFunction; + } +}); +const _serverreferenceinfo = require("../shared/lib/server-reference-info"); +function isServerReference(value) { + return value.$$typeof === Symbol.for('react.server.reference'); +} +function isUseCacheFunction(value) { + if (!isServerReference(value)) { + return false; + } + const { type } = (0, _serverreferenceinfo.extractInfoFromServerReferenceId)(value.$$id); + return type === 'use-cache'; +} +function getUseCacheFunctionInfo(value) { + if (!isServerReference(value)) { + return null; + } + const info = (0, _serverreferenceinfo.extractInfoFromServerReferenceId)(value.$$id); + return info.type === 'use-cache' ? info : null; +} +function isClientReference(mod) { + const defaultExport = (mod == null ? void 0 : mod.default) || mod; + return (defaultExport == null ? void 0 : defaultExport.$$typeof) === Symbol.for('react.client.reference'); +} + +//# sourceMappingURL=client-and-server-references.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/coalesced-function.js b/cli/app/node_modules/next/dist/lib/coalesced-function.js new file mode 100644 index 00000000000..aa70314ff38 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/coalesced-function.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "withCoalescedInvoke", { + enumerable: true, + get: function() { + return withCoalescedInvoke; + } +}); +const globalInvokeCache = new Map(); +function withCoalescedInvoke(func) { + return async function(key, args) { + const entry = globalInvokeCache.get(key); + if (entry) { + return entry.then((res)=>({ + isOrigin: false, + value: res.value + })); + } + async function __wrapper() { + return await func.apply(undefined, args); + } + const future = __wrapper().then((res)=>{ + globalInvokeCache.delete(key); + return { + isOrigin: true, + value: res + }; + }).catch((err)=>{ + globalInvokeCache.delete(key); + return Promise.reject(err); + }); + globalInvokeCache.set(key, future); + return future; + }; +} + +//# sourceMappingURL=coalesced-function.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/compile-error.js b/cli/app/node_modules/next/dist/lib/compile-error.js new file mode 100644 index 00000000000..63b1acd1e86 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/compile-error.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CompileError", { + enumerable: true, + get: function() { + return CompileError; + } +}); +class CompileError extends Error { +} + +//# sourceMappingURL=compile-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/constants.js b/cli/app/node_modules/next/dist/lib/constants.js new file mode 100644 index 00000000000..888d53368fd --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/constants.js @@ -0,0 +1,420 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ACTION_SUFFIX: null, + APP_DIR_ALIAS: null, + CACHE_ONE_YEAR_SECONDS: null, + DOT_NEXT_ALIAS: null, + ESLINT_DEFAULT_DIRS: null, + GSP_NO_RETURNED_VALUE: null, + GSSP_COMPONENT_MEMBER_ERROR: null, + GSSP_NO_RETURNED_VALUE: null, + HTML_CONTENT_TYPE_HEADER: null, + INFINITE_CACHE: null, + INSTRUMENTATION_HOOK_FILENAME: null, + JSON_CONTENT_TYPE_HEADER: null, + MATCHED_PATH_HEADER: null, + MIDDLEWARE_FILENAME: null, + MIDDLEWARE_LOCATION_REGEXP: null, + NEXT_BODY_SUFFIX: null, + NEXT_CACHE_IMPLICIT_TAG_ID: null, + NEXT_CACHE_REVALIDATED_TAGS_HEADER: null, + NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: null, + NEXT_CACHE_ROOT_PARAM_TAG_ID: null, + NEXT_CACHE_SOFT_TAG_MAX_LENGTH: null, + NEXT_CACHE_TAGS_HEADER: null, + NEXT_CACHE_TAG_MAX_ITEMS: null, + NEXT_CACHE_TAG_MAX_LENGTH: null, + NEXT_DATA_SUFFIX: null, + NEXT_INTERCEPTION_MARKER_PREFIX: null, + NEXT_META_SUFFIX: null, + NEXT_NAV_DEPLOYMENT_ID_HEADER: null, + NEXT_QUERY_PARAM_PREFIX: null, + NEXT_RESUME_HEADER: null, + NEXT_RESUME_STATE_LENGTH_HEADER: null, + NON_STANDARD_NODE_ENV: null, + PAGES_DIR_ALIAS: null, + PRERENDER_REVALIDATE_HEADER: null, + PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: null, + PROXY_FILENAME: null, + PROXY_LOCATION_REGEXP: null, + PUBLIC_DIR_MIDDLEWARE_CONFLICT: null, + ROOT_DIR_ALIAS: null, + RSC_ACTION_CLIENT_WRAPPER_ALIAS: null, + RSC_ACTION_ENCRYPTION_ALIAS: null, + RSC_ACTION_PROXY_ALIAS: null, + RSC_ACTION_VALIDATE_ALIAS: null, + RSC_CACHE_WRAPPER_ALIAS: null, + RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: null, + RSC_MOD_REF_PROXY_ALIAS: null, + RSC_SEGMENTS_DIR_SUFFIX: null, + RSC_SEGMENT_SUFFIX: null, + RSC_SUFFIX: null, + SERVER_PROPS_EXPORT_ERROR: null, + SERVER_PROPS_GET_INIT_PROPS_CONFLICT: null, + SERVER_PROPS_SSG_CONFLICT: null, + SERVER_RUNTIME: null, + SSG_FALLBACK_EXPORT_ERROR: null, + SSG_GET_INITIAL_PROPS_CONFLICT: null, + STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: null, + TEXT_PLAIN_CONTENT_TYPE_HEADER: null, + UNSTABLE_REVALIDATE_RENAME_ERROR: null, + WEBPACK_LAYERS: null, + WEBPACK_RESOURCE_QUERIES: null, + WEB_SOCKET_MAX_RECONNECTIONS: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ACTION_SUFFIX: function() { + return ACTION_SUFFIX; + }, + APP_DIR_ALIAS: function() { + return APP_DIR_ALIAS; + }, + CACHE_ONE_YEAR_SECONDS: function() { + return CACHE_ONE_YEAR_SECONDS; + }, + DOT_NEXT_ALIAS: function() { + return DOT_NEXT_ALIAS; + }, + ESLINT_DEFAULT_DIRS: function() { + return ESLINT_DEFAULT_DIRS; + }, + GSP_NO_RETURNED_VALUE: function() { + return GSP_NO_RETURNED_VALUE; + }, + GSSP_COMPONENT_MEMBER_ERROR: function() { + return GSSP_COMPONENT_MEMBER_ERROR; + }, + GSSP_NO_RETURNED_VALUE: function() { + return GSSP_NO_RETURNED_VALUE; + }, + HTML_CONTENT_TYPE_HEADER: function() { + return HTML_CONTENT_TYPE_HEADER; + }, + INFINITE_CACHE: function() { + return INFINITE_CACHE; + }, + INSTRUMENTATION_HOOK_FILENAME: function() { + return INSTRUMENTATION_HOOK_FILENAME; + }, + JSON_CONTENT_TYPE_HEADER: function() { + return JSON_CONTENT_TYPE_HEADER; + }, + MATCHED_PATH_HEADER: function() { + return MATCHED_PATH_HEADER; + }, + MIDDLEWARE_FILENAME: function() { + return MIDDLEWARE_FILENAME; + }, + MIDDLEWARE_LOCATION_REGEXP: function() { + return MIDDLEWARE_LOCATION_REGEXP; + }, + NEXT_BODY_SUFFIX: function() { + return NEXT_BODY_SUFFIX; + }, + NEXT_CACHE_IMPLICIT_TAG_ID: function() { + return NEXT_CACHE_IMPLICIT_TAG_ID; + }, + NEXT_CACHE_REVALIDATED_TAGS_HEADER: function() { + return NEXT_CACHE_REVALIDATED_TAGS_HEADER; + }, + NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER: function() { + return NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER; + }, + NEXT_CACHE_ROOT_PARAM_TAG_ID: function() { + return NEXT_CACHE_ROOT_PARAM_TAG_ID; + }, + NEXT_CACHE_SOFT_TAG_MAX_LENGTH: function() { + return NEXT_CACHE_SOFT_TAG_MAX_LENGTH; + }, + NEXT_CACHE_TAGS_HEADER: function() { + return NEXT_CACHE_TAGS_HEADER; + }, + NEXT_CACHE_TAG_MAX_ITEMS: function() { + return NEXT_CACHE_TAG_MAX_ITEMS; + }, + NEXT_CACHE_TAG_MAX_LENGTH: function() { + return NEXT_CACHE_TAG_MAX_LENGTH; + }, + NEXT_DATA_SUFFIX: function() { + return NEXT_DATA_SUFFIX; + }, + NEXT_INTERCEPTION_MARKER_PREFIX: function() { + return NEXT_INTERCEPTION_MARKER_PREFIX; + }, + NEXT_META_SUFFIX: function() { + return NEXT_META_SUFFIX; + }, + NEXT_NAV_DEPLOYMENT_ID_HEADER: function() { + return NEXT_NAV_DEPLOYMENT_ID_HEADER; + }, + NEXT_QUERY_PARAM_PREFIX: function() { + return NEXT_QUERY_PARAM_PREFIX; + }, + NEXT_RESUME_HEADER: function() { + return NEXT_RESUME_HEADER; + }, + NEXT_RESUME_STATE_LENGTH_HEADER: function() { + return NEXT_RESUME_STATE_LENGTH_HEADER; + }, + NON_STANDARD_NODE_ENV: function() { + return NON_STANDARD_NODE_ENV; + }, + PAGES_DIR_ALIAS: function() { + return PAGES_DIR_ALIAS; + }, + PRERENDER_REVALIDATE_HEADER: function() { + return PRERENDER_REVALIDATE_HEADER; + }, + PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER: function() { + return PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER; + }, + PROXY_FILENAME: function() { + return PROXY_FILENAME; + }, + PROXY_LOCATION_REGEXP: function() { + return PROXY_LOCATION_REGEXP; + }, + PUBLIC_DIR_MIDDLEWARE_CONFLICT: function() { + return PUBLIC_DIR_MIDDLEWARE_CONFLICT; + }, + ROOT_DIR_ALIAS: function() { + return ROOT_DIR_ALIAS; + }, + RSC_ACTION_CLIENT_WRAPPER_ALIAS: function() { + return RSC_ACTION_CLIENT_WRAPPER_ALIAS; + }, + RSC_ACTION_ENCRYPTION_ALIAS: function() { + return RSC_ACTION_ENCRYPTION_ALIAS; + }, + RSC_ACTION_PROXY_ALIAS: function() { + return RSC_ACTION_PROXY_ALIAS; + }, + RSC_ACTION_VALIDATE_ALIAS: function() { + return RSC_ACTION_VALIDATE_ALIAS; + }, + RSC_CACHE_WRAPPER_ALIAS: function() { + return RSC_CACHE_WRAPPER_ALIAS; + }, + RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS: function() { + return RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS; + }, + RSC_MOD_REF_PROXY_ALIAS: function() { + return RSC_MOD_REF_PROXY_ALIAS; + }, + RSC_SEGMENTS_DIR_SUFFIX: function() { + return RSC_SEGMENTS_DIR_SUFFIX; + }, + RSC_SEGMENT_SUFFIX: function() { + return RSC_SEGMENT_SUFFIX; + }, + RSC_SUFFIX: function() { + return RSC_SUFFIX; + }, + SERVER_PROPS_EXPORT_ERROR: function() { + return SERVER_PROPS_EXPORT_ERROR; + }, + SERVER_PROPS_GET_INIT_PROPS_CONFLICT: function() { + return SERVER_PROPS_GET_INIT_PROPS_CONFLICT; + }, + SERVER_PROPS_SSG_CONFLICT: function() { + return SERVER_PROPS_SSG_CONFLICT; + }, + SERVER_RUNTIME: function() { + return SERVER_RUNTIME; + }, + SSG_FALLBACK_EXPORT_ERROR: function() { + return SSG_FALLBACK_EXPORT_ERROR; + }, + SSG_GET_INITIAL_PROPS_CONFLICT: function() { + return SSG_GET_INITIAL_PROPS_CONFLICT; + }, + STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR: function() { + return STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR; + }, + TEXT_PLAIN_CONTENT_TYPE_HEADER: function() { + return TEXT_PLAIN_CONTENT_TYPE_HEADER; + }, + UNSTABLE_REVALIDATE_RENAME_ERROR: function() { + return UNSTABLE_REVALIDATE_RENAME_ERROR; + }, + WEBPACK_LAYERS: function() { + return WEBPACK_LAYERS; + }, + WEBPACK_RESOURCE_QUERIES: function() { + return WEBPACK_RESOURCE_QUERIES; + }, + WEB_SOCKET_MAX_RECONNECTIONS: function() { + return WEB_SOCKET_MAX_RECONNECTIONS; + } +}); +const TEXT_PLAIN_CONTENT_TYPE_HEADER = 'text/plain'; +const HTML_CONTENT_TYPE_HEADER = 'text/html; charset=utf-8'; +const JSON_CONTENT_TYPE_HEADER = 'application/json; charset=utf-8'; +const NEXT_QUERY_PARAM_PREFIX = 'nxtP'; +const NEXT_INTERCEPTION_MARKER_PREFIX = 'nxtI'; +const MATCHED_PATH_HEADER = 'x-matched-path'; +const PRERENDER_REVALIDATE_HEADER = 'x-prerender-revalidate'; +const PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER = 'x-prerender-revalidate-if-generated'; +const RSC_SEGMENTS_DIR_SUFFIX = '.segments'; +const RSC_SEGMENT_SUFFIX = '.segment.rsc'; +const RSC_SUFFIX = '.rsc'; +const ACTION_SUFFIX = '.action'; +const NEXT_DATA_SUFFIX = '.json'; +const NEXT_META_SUFFIX = '.meta'; +const NEXT_BODY_SUFFIX = '.body'; +const NEXT_NAV_DEPLOYMENT_ID_HEADER = 'x-nextjs-deployment-id'; +const NEXT_CACHE_TAGS_HEADER = 'x-next-cache-tags'; +const NEXT_CACHE_REVALIDATED_TAGS_HEADER = 'x-next-revalidated-tags'; +const NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER = 'x-next-revalidate-tag-token'; +const NEXT_RESUME_HEADER = 'next-resume'; +const NEXT_RESUME_STATE_LENGTH_HEADER = 'x-next-resume-state-length'; +const NEXT_CACHE_TAG_MAX_ITEMS = 128; +const NEXT_CACHE_TAG_MAX_LENGTH = 256; +const NEXT_CACHE_SOFT_TAG_MAX_LENGTH = 1024; +const NEXT_CACHE_IMPLICIT_TAG_ID = '_N_T_'; +const NEXT_CACHE_ROOT_PARAM_TAG_ID = '_N_RP_'; +const CACHE_ONE_YEAR_SECONDS = 31536000; +const INFINITE_CACHE = 0xfffffffe; +const MIDDLEWARE_FILENAME = 'middleware'; +const MIDDLEWARE_LOCATION_REGEXP = `(?:src/)?${MIDDLEWARE_FILENAME}`; +const PROXY_FILENAME = 'proxy'; +const PROXY_LOCATION_REGEXP = `(?:src/)?${PROXY_FILENAME}`; +const INSTRUMENTATION_HOOK_FILENAME = 'instrumentation'; +const PAGES_DIR_ALIAS = 'private-next-pages'; +const DOT_NEXT_ALIAS = 'private-dot-next'; +const ROOT_DIR_ALIAS = 'private-next-root-dir'; +const APP_DIR_ALIAS = 'private-next-app-dir'; +const RSC_MOD_REF_PROXY_ALIAS = 'private-next-rsc-mod-ref-proxy'; +const RSC_ACTION_VALIDATE_ALIAS = 'private-next-rsc-action-validate'; +const RSC_ACTION_PROXY_ALIAS = 'private-next-rsc-server-reference'; +const RSC_CACHE_WRAPPER_ALIAS = 'private-next-rsc-cache-wrapper'; +const RSC_DYNAMIC_IMPORT_WRAPPER_ALIAS = 'private-next-rsc-track-dynamic-import'; +const RSC_ACTION_ENCRYPTION_ALIAS = 'private-next-rsc-action-encryption'; +const RSC_ACTION_CLIENT_WRAPPER_ALIAS = 'private-next-rsc-action-client-wrapper'; +const PUBLIC_DIR_MIDDLEWARE_CONFLICT = `You can not have a '_next' folder inside of your public folder. This conflicts with the internal '/_next' route. https://nextjs.org/docs/messages/public-next-folder-conflict`; +const SSG_GET_INITIAL_PROPS_CONFLICT = `You can not use getInitialProps with getStaticProps. To use SSG, please remove your getInitialProps`; +const SERVER_PROPS_GET_INIT_PROPS_CONFLICT = `You can not use getInitialProps with getServerSideProps. Please remove getInitialProps.`; +const SERVER_PROPS_SSG_CONFLICT = `You can not use getStaticProps or getStaticPaths with getServerSideProps. To use SSG, please remove getServerSideProps`; +const STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR = `can not have getInitialProps/getServerSideProps, https://nextjs.org/docs/messages/404-get-initial-props`; +const SERVER_PROPS_EXPORT_ERROR = `pages with \`getServerSideProps\` can not be exported. See more info here: https://nextjs.org/docs/messages/gssp-export`; +const GSP_NO_RETURNED_VALUE = 'Your `getStaticProps` function did not return an object. Did you forget to add a `return`?'; +const GSSP_NO_RETURNED_VALUE = 'Your `getServerSideProps` function did not return an object. Did you forget to add a `return`?'; +const UNSTABLE_REVALIDATE_RENAME_ERROR = 'The `unstable_revalidate` property is available for general use.\n' + 'Please use `revalidate` instead.'; +const GSSP_COMPONENT_MEMBER_ERROR = `can not be attached to a page's component and must be exported from the page. See more info here: https://nextjs.org/docs/messages/gssp-component-member`; +const NON_STANDARD_NODE_ENV = `You are using a non-standard "NODE_ENV" value in your environment. This creates inconsistencies in the project and is strongly advised against. Read more: https://nextjs.org/docs/messages/non-standard-node-env`; +const SSG_FALLBACK_EXPORT_ERROR = `Pages with \`fallback\` enabled in \`getStaticPaths\` can not be exported. See more info here: https://nextjs.org/docs/messages/ssg-fallback-true-export`; +const ESLINT_DEFAULT_DIRS = [ + 'app', + 'pages', + 'components', + 'lib', + 'src' +]; +const SERVER_RUNTIME = { + edge: 'edge', + experimentalEdge: 'experimental-edge', + nodejs: 'nodejs' +}; +const WEB_SOCKET_MAX_RECONNECTIONS = 12; +/** + * The names of the webpack layers. These layers are the primitives for the + * webpack chunks. + */ const WEBPACK_LAYERS_NAMES = { + /** + * The layer for the shared code between the client and server bundles. + */ shared: 'shared', + /** + * The layer for server-only runtime and picking up `react-server` export conditions. + * Including app router RSC pages and app router custom routes and metadata routes. + */ reactServerComponents: 'rsc', + /** + * Server Side Rendering layer for app (ssr). + */ serverSideRendering: 'ssr', + /** + * The browser client bundle layer for actions. + */ actionBrowser: 'action-browser', + /** + * The Node.js bundle layer for the API routes. + */ apiNode: 'api-node', + /** + * The Edge Lite bundle layer for the API routes. + */ apiEdge: 'api-edge', + /** + * The layer for the middleware code. + */ middleware: 'middleware', + /** + * The layer for the instrumentation hooks. + */ instrument: 'instrument', + /** + * The layer for assets on the edge. + */ edgeAsset: 'edge-asset', + /** + * The browser client bundle layer for App directory. + */ appPagesBrowser: 'app-pages-browser', + /** + * The browser client bundle layer for Pages directory. + */ pagesDirBrowser: 'pages-dir-browser', + /** + * The Edge Lite bundle layer for Pages directory. + */ pagesDirEdge: 'pages-dir-edge', + /** + * The Node.js bundle layer for Pages directory. + */ pagesDirNode: 'pages-dir-node' +}; +const WEBPACK_LAYERS = { + ...WEBPACK_LAYERS_NAMES, + GROUP: { + builtinReact: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser + ], + serverOnly: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser, + WEBPACK_LAYERS_NAMES.instrument, + WEBPACK_LAYERS_NAMES.middleware + ], + neutralTarget: [ + // pages api + WEBPACK_LAYERS_NAMES.apiNode, + WEBPACK_LAYERS_NAMES.apiEdge + ], + clientOnly: [ + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser + ], + bundled: [ + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.actionBrowser, + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser, + WEBPACK_LAYERS_NAMES.shared, + WEBPACK_LAYERS_NAMES.instrument, + WEBPACK_LAYERS_NAMES.middleware + ], + appPages: [ + // app router pages and layouts + WEBPACK_LAYERS_NAMES.reactServerComponents, + WEBPACK_LAYERS_NAMES.serverSideRendering, + WEBPACK_LAYERS_NAMES.appPagesBrowser, + WEBPACK_LAYERS_NAMES.actionBrowser + ] + } +}; +const WEBPACK_RESOURCE_QUERIES = { + edgeSSREntry: '__next_edge_ssr_entry__', + metadata: '__next_metadata__', + metadataRoute: '__next_metadata_route__', + metadataImageMeta: '__next_metadata_image_meta__' +}; + +//# sourceMappingURL=constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/create-client-router-filter.js b/cli/app/node_modules/next/dist/lib/create-client-router-filter.js new file mode 100644 index 00000000000..65c6cd16ab1 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/create-client-router-filter.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createClientRouterFilter", { + enumerable: true, + get: function() { + return createClientRouterFilter; + } +}); +const _bloomfilter = require("../shared/lib/bloom-filter"); +const _utils = require("../shared/lib/router/utils"); +const _removetrailingslash = require("../shared/lib/router/utils/remove-trailing-slash"); +const _trytoparsepath = require("./try-to-parse-path"); +const _interceptionroutes = require("../shared/lib/router/utils/interception-routes"); +function createClientRouterFilter(paths, redirects, allowedErrorRate) { + const staticPaths = new Set(); + const dynamicPaths = new Set(); + for (let path of paths){ + if ((0, _utils.isDynamicRoute)(path)) { + if ((0, _interceptionroutes.isInterceptionRouteAppPath)(path)) { + path = (0, _interceptionroutes.extractInterceptionRouteInformation)(path).interceptedRoute; + } + let subPath = ''; + const pathParts = path.split('/'); + // start at 1 since we split on '/' and the path starts + // with this so the first entry is an empty string + for(let i = 1; i < pathParts.length; i++){ + const curPart = pathParts[i]; + if (curPart.startsWith('[')) { + break; + } + subPath = `${subPath}/${curPart}`; + } + if (subPath) { + dynamicPaths.add(subPath); + } + } else { + staticPaths.add(path); + } + } + for (const redirect of redirects){ + const { source } = redirect; + const path = (0, _removetrailingslash.removeTrailingSlash)(source); + let tokens = []; + try { + tokens = (0, _trytoparsepath.tryToParsePath)(source).tokens || []; + } catch {} + if (tokens.every((token)=>typeof token === 'string')) { + // only include static redirects initially + staticPaths.add(path); + } + } + const staticFilter = _bloomfilter.BloomFilter.from([ + ...staticPaths + ], allowedErrorRate); + const dynamicFilter = _bloomfilter.BloomFilter.from([ + ...dynamicPaths + ], allowedErrorRate); + const data = { + staticFilter: staticFilter.export(), + dynamicFilter: dynamicFilter.export() + }; + return data; +} + +//# sourceMappingURL=create-client-router-filter.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/default-transpiled-packages.json b/cli/app/node_modules/next/dist/lib/default-transpiled-packages.json new file mode 100644 index 00000000000..aca6e6df9a4 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/default-transpiled-packages.json @@ -0,0 +1 @@ +["geist"] diff --git a/cli/app/node_modules/next/dist/lib/detached-promise.js b/cli/app/node_modules/next/dist/lib/detached-promise.js new file mode 100644 index 00000000000..6a7ce088a93 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/detached-promise.js @@ -0,0 +1,32 @@ +/** + * A `Promise.withResolvers` implementation that exposes the `resolve` and + * `reject` functions on a `Promise`. + * + * @see https://tc39.es/proposal-promise-with-resolvers/ + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DetachedPromise", { + enumerable: true, + get: function() { + return DetachedPromise; + } +}); +class DetachedPromise { + constructor(){ + let resolve; + let reject; + // Create the promise and assign the resolvers to the object. + this.promise = new Promise((res, rej)=>{ + resolve = res; + reject = rej; + }); + // We know that resolvers is defined because the Promise constructor runs + // synchronously. + this.resolve = resolve; + this.reject = reject; + } +} + +//# sourceMappingURL=detached-promise.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/detect-typo.js b/cli/app/node_modules/next/dist/lib/detect-typo.js new file mode 100644 index 00000000000..135f4813570 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/detect-typo.js @@ -0,0 +1,51 @@ +// the minimum number of operations required to convert string a to string b. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "detectTypo", { + enumerable: true, + get: function() { + return detectTypo; + } +}); +function minDistance(a, b, threshold) { + const m = a.length; + const n = b.length; + if (m < n) { + return minDistance(b, a, threshold); + } + if (n === 0) { + return m; + } + let previousRow = Array.from({ + length: n + 1 + }, (_, i)=>i); + for(let i = 0; i < m; i++){ + const s1 = a[i]; + let currentRow = [ + i + 1 + ]; + for(let j = 0; j < n; j++){ + const s2 = b[j]; + const insertions = previousRow[j + 1] + 1; + const deletions = currentRow[j] + 1; + const substitutions = previousRow[j] + Number(s1 !== s2); + currentRow.push(Math.min(insertions, deletions, substitutions)); + } + previousRow = currentRow; + } + return previousRow[previousRow.length - 1]; +} +function detectTypo(input, options, threshold = 2) { + const potentialTypos = options.map((o)=>({ + option: o, + distance: minDistance(o, input, threshold) + })).filter(({ distance })=>distance <= threshold && distance > 0).sort((a, b)=>a.distance - b.distance); + if (potentialTypos.length) { + return potentialTypos[0].option; + } + return null; +} + +//# sourceMappingURL=detect-typo.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/download-swc.js b/cli/app/node_modules/next/dist/lib/download-swc.js new file mode 100644 index 00000000000..319b1b15284 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/download-swc.js @@ -0,0 +1,183 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + downloadNativeNextSwc: null, + downloadWasmSwc: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + downloadNativeNextSwc: function() { + return downloadNativeNextSwc; + }, + downloadWasmSwc: function() { + return downloadWasmSwc; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _tar = require("next/dist/compiled/tar"); +const _getregistry = require("./helpers/get-registry"); +const _getcachedirectory = require("./helpers/get-cache-directory"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const { WritableStream } = require('node:stream/web'); +const MAX_VERSIONS_TO_CACHE = 8; +async function extractBinary(outputDirectory, pkgName, tarFileName) { + const cacheDirectory = (0, _getcachedirectory.getCacheDirectory)('next-swc', process.env['NEXT_SWC_PATH']); + const extractFromTar = ()=>(0, _tar.x)({ + file: _path.default.join(cacheDirectory, tarFileName), + cwd: outputDirectory, + strip: 1 + }); + if (!_fs.default.existsSync(_path.default.join(cacheDirectory, tarFileName))) { + _log.info(`Downloading swc package ${pkgName}... to ${cacheDirectory}`); + await _fs.default.promises.mkdir(cacheDirectory, { + recursive: true + }); + const tempFile = _path.default.join(cacheDirectory, `${tarFileName}.temp-${Date.now()}`); + const registry = (0, _getregistry.getRegistry)(); + const downloadUrl = `${registry}${pkgName}/-/${tarFileName}`; + await fetch(downloadUrl).then((res)=>{ + const { ok, body } = res; + if (!ok || !body) { + _log.error(`Failed to download swc package from ${downloadUrl}`); + } + if (!ok) { + throw Object.defineProperty(new Error(`request failed with status ${res.status}`), "__NEXT_ERROR_CODE", { + value: "E109", + enumerable: false, + configurable: true + }); + } + if (!body) { + throw Object.defineProperty(new Error('request failed with empty body'), "__NEXT_ERROR_CODE", { + value: "E143", + enumerable: false, + configurable: true + }); + } + const cacheWriteStream = _fs.default.createWriteStream(tempFile); + return body.pipeTo(new WritableStream({ + write (chunk) { + return new Promise((resolve, reject)=>cacheWriteStream.write(chunk, (error)=>{ + if (error) { + reject(error); + return; + } + resolve(); + })); + }, + close () { + return new Promise((resolve, reject)=>cacheWriteStream.close((error)=>{ + if (error) { + reject(error); + return; + } + resolve(); + })); + } + })); + }); + await _fs.default.promises.access(tempFile) // ensure the temp file existed + ; + await _fs.default.promises.rename(tempFile, _path.default.join(cacheDirectory, tarFileName)); + } else { + _log.info(`Using cached swc package ${pkgName}...`); + } + await extractFromTar(); + const cacheFiles = await _fs.default.promises.readdir(cacheDirectory); + if (cacheFiles.length > MAX_VERSIONS_TO_CACHE) { + cacheFiles.sort((a, b)=>{ + if (a.length < b.length) return -1; + return a.localeCompare(b); + }); + // prune oldest versions in cache + for(let i = 0; i++; i < cacheFiles.length - MAX_VERSIONS_TO_CACHE){ + await _fs.default.promises.unlink(_path.default.join(cacheDirectory, cacheFiles[i])).catch(()=>{}); + } + } +} +async function downloadNativeNextSwc(version, bindingsDirectory, triplesABI) { + for (const triple of triplesABI){ + const pkgName = `@next/swc-${triple}`; + const tarFileName = `${pkgName.substring(6)}-${version}.tgz`; + const outputDirectory = _path.default.join(bindingsDirectory, pkgName); + if (_fs.default.existsSync(outputDirectory)) { + // if the package is already downloaded a different + // failure occurred than not being present + return; + } + await _fs.default.promises.mkdir(outputDirectory, { + recursive: true + }); + await extractBinary(outputDirectory, pkgName, tarFileName); + } +} +async function downloadWasmSwc(version, wasmDirectory, variant = 'nodejs') { + const pkgName = `@next/swc-wasm-${variant}`; + const tarFileName = `${pkgName.substring(6)}-${version}.tgz`; + const outputDirectory = _path.default.join(wasmDirectory, pkgName); + if (_fs.default.existsSync(outputDirectory)) { + // if the package is already downloaded a different + // failure occurred than not being present + return; + } + await _fs.default.promises.mkdir(outputDirectory, { + recursive: true + }); + await extractBinary(outputDirectory, pkgName, tarFileName); +} + +//# sourceMappingURL=download-swc.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/error-telemetry-utils.js b/cli/app/node_modules/next/dist/lib/error-telemetry-utils.js new file mode 100644 index 00000000000..5828927d509 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/error-telemetry-utils.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createDigestWithErrorCode: null, + extractNextErrorCode: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createDigestWithErrorCode: function() { + return createDigestWithErrorCode; + }, + extractNextErrorCode: function() { + return extractNextErrorCode; + } +}); +const ERROR_CODE_DELIMITER = '@'; +const createDigestWithErrorCode = (thrownValue, originalDigest)=>{ + if (typeof thrownValue === 'object' && thrownValue !== null && '__NEXT_ERROR_CODE' in thrownValue) { + return `${originalDigest}${ERROR_CODE_DELIMITER}${thrownValue.__NEXT_ERROR_CODE}`; + } + return originalDigest; +}; +const extractNextErrorCode = (error)=>{ + if (typeof error === 'object' && error !== null && '__NEXT_ERROR_CODE' in error && typeof error.__NEXT_ERROR_CODE === 'string') { + return error.__NEXT_ERROR_CODE; + } + if (typeof error === 'object' && error !== null && 'digest' in error && typeof error.digest === 'string') { + const segments = error.digest.split(ERROR_CODE_DELIMITER); + const errorCode = segments.find((segment)=>segment.startsWith('E')); + return errorCode; + } + return undefined; +}; + +//# sourceMappingURL=error-telemetry-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/fallback.js b/cli/app/node_modules/next/dist/lib/fallback.js new file mode 100644 index 00000000000..4f7730b3c1f --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/fallback.js @@ -0,0 +1,100 @@ +/** + * Describes the different fallback modes that a given page can have. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + FallbackMode: null, + fallbackModeToFallbackField: null, + parseFallbackField: null, + parseStaticPathsResult: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + FallbackMode: function() { + return FallbackMode; + }, + fallbackModeToFallbackField: function() { + return fallbackModeToFallbackField; + }, + parseFallbackField: function() { + return parseFallbackField; + }, + parseStaticPathsResult: function() { + return parseStaticPathsResult; + } +}); +var FallbackMode = /*#__PURE__*/ function(FallbackMode) { + /** + * A BLOCKING_STATIC_RENDER fallback will block the request until the page is + * generated. No fallback page will be rendered, and users will have to wait + * to render the page. + */ FallbackMode["BLOCKING_STATIC_RENDER"] = "BLOCKING_STATIC_RENDER"; + /** + * When set to PRERENDER, a fallback page will be sent to users in place of + * forcing them to wait for the page to be generated. This allows the user to + * see a rendered page earlier. + */ FallbackMode["PRERENDER"] = "PRERENDER"; + /** + * When set to NOT_FOUND, pages that are not already prerendered will result + * in a not found response. + */ FallbackMode["NOT_FOUND"] = "NOT_FOUND"; + return FallbackMode; +}({}); +function parseFallbackField(fallbackField) { + if (typeof fallbackField === 'string') { + return "PRERENDER"; + } else if (fallbackField === null) { + return "BLOCKING_STATIC_RENDER"; + } else if (fallbackField === false) { + return "NOT_FOUND"; + } else if (fallbackField === undefined) { + return undefined; + } else { + throw Object.defineProperty(new Error(`Invalid fallback option: ${fallbackField}. Fallback option must be a string, null, undefined, or false.`), "__NEXT_ERROR_CODE", { + value: "E285", + enumerable: false, + configurable: true + }); + } +} +function fallbackModeToFallbackField(fallback, page) { + switch(fallback){ + case "BLOCKING_STATIC_RENDER": + return null; + case "NOT_FOUND": + return false; + case "PRERENDER": + if (!page) { + throw Object.defineProperty(new Error(`Invariant: expected a page to be provided when fallback mode is "${fallback}"`), "__NEXT_ERROR_CODE", { + value: "E422", + enumerable: false, + configurable: true + }); + } + return page; + default: + throw Object.defineProperty(new Error(`Invalid fallback mode: ${fallback}`), "__NEXT_ERROR_CODE", { + value: "E254", + enumerable: false, + configurable: true + }); + } +} +function parseStaticPathsResult(result) { + if (result === true) { + return "PRERENDER"; + } else if (result === 'blocking') { + return "BLOCKING_STATIC_RENDER"; + } else { + return "NOT_FOUND"; + } +} + +//# sourceMappingURL=fallback.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/fatal-error.js b/cli/app/node_modules/next/dist/lib/fatal-error.js new file mode 100644 index 00000000000..574944ee8a9 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/fatal-error.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "FatalError", { + enumerable: true, + get: function() { + return FatalError; + } +}); +class FatalError extends Error { +} + +//# sourceMappingURL=fatal-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/file-exists.js b/cli/app/node_modules/next/dist/lib/file-exists.js new file mode 100644 index 00000000000..183eb896ef8 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/file-exists.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + FileType: null, + fileExists: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + FileType: function() { + return FileType; + }, + fileExists: function() { + return fileExists; + } +}); +const _fs = require("fs"); +const _iserror = /*#__PURE__*/ _interop_require_default(require("./is-error")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +var FileType = /*#__PURE__*/ function(FileType) { + FileType["File"] = "file"; + FileType["Directory"] = "directory"; + return FileType; +}({}); +async function fileExists(fileName, type) { + try { + if (type === "file") { + const stats = await _fs.promises.stat(fileName); + return stats.isFile(); + } else if (type === "directory") { + const stats = await _fs.promises.stat(fileName); + return stats.isDirectory(); + } + return (0, _fs.existsSync)(fileName); + } catch (err) { + if ((0, _iserror.default)(err) && (err.code === 'ENOENT' || err.code === 'ENAMETOOLONG')) { + return false; + } + throw err; + } +} + +//# sourceMappingURL=file-exists.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/find-config.js b/cli/app/node_modules/next/dist/lib/find-config.js new file mode 100644 index 00000000000..82b080a2a69 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/find-config.js @@ -0,0 +1,102 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + findConfig: null, + findConfigPath: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + findConfig: function() { + return findConfig; + }, + findConfigPath: function() { + return findConfigPath; + } +}); +const _findup = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/find-up")); +const _promises = require("fs/promises"); +const _json5 = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/json5")); +const _url = require("url"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function findConfigPath(dir, key) { + // If we didn't find the configuration in `package.json`, we should look for + // known filenames. + return (0, _findup.default)([ + `.${key}rc.json`, + `${key}.config.json`, + `.${key}rc.js`, + `${key}.config.js`, + `${key}.config.mjs`, + `${key}.config.cjs` + ], { + cwd: dir + }); +} +async function findConfig(directory, key, _returnFile) { + // `package.json` configuration always wins. Let's check that first. + const packageJsonPath = await (0, _findup.default)('package.json', { + cwd: directory + }); + let isESM = false; + if (packageJsonPath) { + try { + const packageJsonStr = await (0, _promises.readFile)(packageJsonPath, 'utf8'); + const packageJson = JSON.parse(packageJsonStr); + if (typeof packageJson !== 'object') { + throw new Error() // Stop processing and continue + ; + } + if (packageJson.type === 'module') { + isESM = true; + } + if (packageJson[key] != null && typeof packageJson[key] === 'object') { + return packageJson[key]; + } + } catch { + // Ignore error and continue + } + } + const filePath = await findConfigPath(directory, key); + const esmImport = (path)=>{ + // Skip mapping to absolute url with pathToFileURL on windows if it's jest + // https://github.com/nodejs/node/issues/31710#issuecomment-587345749 + if (process.platform === 'win32' && !process.env.JEST_WORKER_ID) { + // on windows import("C:\\path\\to\\file") is not valid, so we need to + // use file:// URLs + return import((0, _url.pathToFileURL)(path).toString()); + } else { + return import(path); + } + }; + if (filePath) { + if (filePath.endsWith('.js')) { + if (isESM) { + return (await esmImport(filePath)).default; + } else { + return require(filePath); + } + } else if (filePath.endsWith('.mjs')) { + return (await esmImport(filePath)).default; + } else if (filePath.endsWith('.cjs')) { + return require(filePath); + } + // We load JSON contents with JSON5 to allow users to comment in their + // configuration file. This pattern was popularized by TypeScript. + const fileContents = await (0, _promises.readFile)(filePath, 'utf8'); + return _json5.default.parse(fileContents); + } + return null; +} + +//# sourceMappingURL=find-config.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/find-pages-dir.js b/cli/app/node_modules/next/dist/lib/find-pages-dir.js new file mode 100644 index 00000000000..1445f34653d --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/find-pages-dir.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + findDir: null, + findPagesDir: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + findDir: function() { + return findDir; + }, + findPagesDir: function() { + return findPagesDir; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function findDir(dir, name) { + // prioritize ./${name} over ./src/${name} + let curDir = _path.default.join(dir, name); + if (_fs.default.existsSync(curDir)) return curDir; + curDir = _path.default.join(dir, 'src', name); + if (_fs.default.existsSync(curDir)) return curDir; + return null; +} +function findPagesDir(dir) { + const pagesDir = findDir(dir, 'pages') || undefined; + const appDir = findDir(dir, 'app') || undefined; + if (appDir == null && pagesDir == null) { + throw Object.defineProperty(new Error("> Couldn't find any `pages` or `app` directory. Please create one under the project root"), "__NEXT_ERROR_CODE", { + value: "E144", + enumerable: false, + configurable: true + }); + } + if (pagesDir && appDir) { + const pagesParent = _path.default.dirname(pagesDir); + const appParent = _path.default.dirname(appDir); + if (pagesParent !== appParent) { + throw Object.defineProperty(new Error('> `pages` and `app` directories should be under the same folder'), "__NEXT_ERROR_CODE", { + value: "E801", + enumerable: false, + configurable: true + }); + } + } + return { + pagesDir, + appDir + }; +} + +//# sourceMappingURL=find-pages-dir.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/find-root.js b/cli/app/node_modules/next/dist/lib/find-root.js new file mode 100644 index 00000000000..00f0d6bcc68 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/find-root.js @@ -0,0 +1,126 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + findRootDirAndLockFiles: null, + warnDuplicatedLockFiles: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + findRootDirAndLockFiles: function() { + return findRootDirAndLockFiles; + }, + warnDuplicatedLockFiles: function() { + return warnDuplicatedLockFiles; + } +}); +const _path = require("path"); +const _findup = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/find-up")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function findWorkRoot(cwd) { + // Find-up evaluates the list of files at each level. + // For pnpm-workspace.yaml we first want to look up before searching for lockfiles as those can be included in the application directory by accident. + const pnpmWorkspaceFile = _findup.default.sync('pnpm-workspace.yaml', { + cwd + }); + if (pnpmWorkspaceFile) { + return pnpmWorkspaceFile; + } + return _findup.default.sync([ + 'pnpm-lock.yaml', + 'package-lock.json', + 'yarn.lock', + 'bun.lock', + 'bun.lockb' + ], { + cwd + }); +} +function findRootDirAndLockFiles(cwd) { + const lockFile = findWorkRoot(cwd); + if (!lockFile) return { + lockFiles: [], + rootDir: cwd + }; + const lockFiles = [ + lockFile + ]; + while(true){ + const lastLockFile = lockFiles[lockFiles.length - 1]; + const currentDir = (0, _path.dirname)(lastLockFile); + const parentDir = (0, _path.dirname)(currentDir); + // dirname('/')==='/' so if we happen to reach the FS root (as might happen in a container we need to quit to avoid looping forever + if (parentDir === currentDir) break; + const newLockFile = findWorkRoot(parentDir); + if (!newLockFile) break; + lockFiles.push(newLockFile); + } + return { + lockFiles, + rootDir: (0, _path.dirname)(lockFiles[lockFiles.length - 1]) + }; +} +function warnDuplicatedLockFiles(lockFiles) { + if (lockFiles.length > 1) { + const additionalLockFiles = lockFiles.slice(0, -1).map((str)=>`\n * ${str}`).join(''); + if (process.env.TURBOPACK) { + _log.warnOnce(`Warning: Next.js inferred your workspace root, but it may not be correct.\n` + ` We detected multiple lockfiles and selected the directory of ${lockFiles[lockFiles.length - 1]} as the root directory.\n` + ` To silence this warning, set \`turbopack.root\` in your Next.js config, or consider ` + `removing one of the lockfiles if it's not needed.\n` + ` See https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack#root-directory for more information.\n` + ` Detected additional lockfiles: ${additionalLockFiles}\n`); + } else { + _log.warnOnce(`Warning: Next.js inferred your workspace root, but it may not be correct.\n` + ` We detected multiple lockfiles and selected the directory of ${lockFiles[lockFiles.length - 1]} as the root directory.\n` + ` To silence this warning, set \`outputFileTracingRoot\` in your Next.js config, or consider ` + `removing one of the lockfiles if it's not needed.\n` + ` See https://nextjs.org/docs/app/api-reference/config/next-config-js/output#caveats for more information.\n` + ` Detected additional lockfiles: ${additionalLockFiles}\n`); + } + } +} + +//# sourceMappingURL=find-root.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/format-dynamic-import-path.js b/cli/app/node_modules/next/dist/lib/format-dynamic-import-path.js new file mode 100644 index 00000000000..337ac23f87a --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/format-dynamic-import-path.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "formatDynamicImportPath", { + enumerable: true, + get: function() { + return formatDynamicImportPath; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _url = require("url"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const formatDynamicImportPath = (dir, filePath)=>{ + const absoluteFilePath = _path.default.isAbsolute(filePath) ? filePath : _path.default.join(dir, filePath); + const formattedFilePath = (0, _url.pathToFileURL)(absoluteFilePath).toString(); + return formattedFilePath; +}; + +//# sourceMappingURL=format-dynamic-import-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/format-server-error.js b/cli/app/node_modules/next/dist/lib/format-server-error.js new file mode 100644 index 00000000000..7e2c8e40abb --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/format-server-error.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + formatServerError: null, + getStackWithoutErrorMessage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + formatServerError: function() { + return formatServerError; + }, + getStackWithoutErrorMessage: function() { + return getStackWithoutErrorMessage; + } +}); +const invalidServerComponentReactHooks = [ + 'useDeferredValue', + 'useEffect', + 'useEffectEvent', + 'useImperativeHandle', + 'useInsertionEffect', + 'useLayoutEffect', + 'useReducer', + 'useRef', + 'useState', + 'useSyncExternalStore', + 'useTransition', + 'experimental_useOptimistic', + 'useOptimistic' +]; +function setMessage(error, message) { + error.message = message; + if (error.stack) { + const lines = error.stack.split('\n'); + lines[0] = message; + error.stack = lines.join('\n'); + } +} +function getStackWithoutErrorMessage(error) { + const stack = error.stack; + if (!stack) return ''; + return stack.replace(/^[^\n]*\n/, ''); +} +function formatServerError(error) { + if (typeof (error == null ? void 0 : error.message) !== 'string') return; + if (error.message.includes('Class extends value undefined is not a constructor or null')) { + const addedMessage = 'This might be caused by a React Class Component being rendered in a Server Component, React Class Components only works in Client Components. Read more: https://nextjs.org/docs/messages/class-component-in-server-component'; + // If this error instance already has the message, don't add it again + if (error.message.includes(addedMessage)) return; + setMessage(error, `${error.message} + +${addedMessage}`); + return; + } + if (error.message.includes('createContext is not a function')) { + setMessage(error, 'createContext only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/context-in-server-component'); + return; + } + for (const clientHook of invalidServerComponentReactHooks){ + const regex = new RegExp(`\\b${clientHook}\\b.*is not a function`); + if (regex.test(error.message)) { + setMessage(error, `${clientHook} only works in Client Components. Add the "use client" directive at the top of the file to use it. Read more: https://nextjs.org/docs/messages/react-client-hook-in-server-component`); + return; + } + } +} + +//# sourceMappingURL=format-server-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/framework/boundary-components.js b/cli/app/node_modules/next/dist/lib/framework/boundary-components.js new file mode 100644 index 00000000000..c465a9652ae --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/framework/boundary-components.js @@ -0,0 +1,62 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + MetadataBoundary: null, + OutletBoundary: null, + RootLayoutBoundary: null, + ViewportBoundary: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + MetadataBoundary: function() { + return MetadataBoundary; + }, + OutletBoundary: function() { + return OutletBoundary; + }, + RootLayoutBoundary: function() { + return RootLayoutBoundary; + }, + ViewportBoundary: function() { + return ViewportBoundary; + } +}); +const _boundaryconstants = require("./boundary-constants"); +// We use a namespace object to allow us to recover the name of the function +// at runtime even when production bundling/minification is used. +const NameSpace = { + [_boundaryconstants.METADATA_BOUNDARY_NAME]: function({ children }) { + return children; + }, + [_boundaryconstants.VIEWPORT_BOUNDARY_NAME]: function({ children }) { + return children; + }, + [_boundaryconstants.OUTLET_BOUNDARY_NAME]: function({ children }) { + return children; + }, + [_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME]: function({ children }) { + return children; + } +}; +const MetadataBoundary = // We use slice(0) to trick the bundler into not inlining/minifying the function +// so it retains the name inferred from the namespace object +NameSpace[_boundaryconstants.METADATA_BOUNDARY_NAME.slice(0)]; +const ViewportBoundary = // We use slice(0) to trick the bundler into not inlining/minifying the function +// so it retains the name inferred from the namespace object +NameSpace[_boundaryconstants.VIEWPORT_BOUNDARY_NAME.slice(0)]; +const OutletBoundary = // We use slice(0) to trick the bundler into not inlining/minifying the function +// so it retains the name inferred from the namespace object +NameSpace[_boundaryconstants.OUTLET_BOUNDARY_NAME.slice(0)]; +const RootLayoutBoundary = // We use slice(0) to trick the bundler into not inlining/minifying the function +// so it retains the name inferred from the namespace object +NameSpace[_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME.slice(0)]; + +//# sourceMappingURL=boundary-components.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/framework/boundary-constants.js b/cli/app/node_modules/next/dist/lib/framework/boundary-constants.js new file mode 100644 index 00000000000..6e9680612ba --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/framework/boundary-constants.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + METADATA_BOUNDARY_NAME: null, + OUTLET_BOUNDARY_NAME: null, + ROOT_LAYOUT_BOUNDARY_NAME: null, + VIEWPORT_BOUNDARY_NAME: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + METADATA_BOUNDARY_NAME: function() { + return METADATA_BOUNDARY_NAME; + }, + OUTLET_BOUNDARY_NAME: function() { + return OUTLET_BOUNDARY_NAME; + }, + ROOT_LAYOUT_BOUNDARY_NAME: function() { + return ROOT_LAYOUT_BOUNDARY_NAME; + }, + VIEWPORT_BOUNDARY_NAME: function() { + return VIEWPORT_BOUNDARY_NAME; + } +}); +const METADATA_BOUNDARY_NAME = '__next_metadata_boundary__'; +const VIEWPORT_BOUNDARY_NAME = '__next_viewport_boundary__'; +const OUTLET_BOUNDARY_NAME = '__next_outlet_boundary__'; +const ROOT_LAYOUT_BOUNDARY_NAME = '__next_root_layout_boundary__'; + +//# sourceMappingURL=boundary-constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/fs/rename.js b/cli/app/node_modules/next/dist/lib/fs/rename.js new file mode 100644 index 00000000000..ba9f169898a --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/fs/rename.js @@ -0,0 +1,87 @@ +/* +MIT License + +Copyright (c) 2015 - present Microsoft Corporation + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. + */ // This file is based on https://github.com/microsoft/vscode/blob/f860fcf11022f10a992440fd54c6e45674e39617/src/vs/base/node/pfs.ts +// See the LICENSE at the top of the file +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "renameSync", { + enumerable: true, + get: function() { + return renameSync; + } +}); +const _nodefs = require("node:fs"); +function renameSync(source, target, windowsRetryTimeout = 60000 /* matches graceful-fs */ ) { + if (source === target) { + return; // simulate node.js behaviour here and do a no-op if paths match + } + if (process.platform === 'win32' && typeof windowsRetryTimeout === 'number') { + // On Windows, a rename can fail when either source or target + // is locked by AV software. We do leverage graceful-fs to iron + // out these issues, however in case the target file exists, + // graceful-fs will immediately return without retry for fs.rename(). + renameSyncWithRetry(source, target, Date.now(), windowsRetryTimeout); + } else { + (0, _nodefs.renameSync)(source, target); + } +} +function renameSyncWithRetry(source, target, startTime, retryTimeout, attempt = 0) { + try { + return (0, _nodefs.renameSync)(source, target); + } catch (error) { + if (error.code !== 'EACCES' && error.code !== 'EPERM' && error.code !== 'EBUSY') { + throw error // only for errors we think are temporary + ; + } + if (Date.now() - startTime >= retryTimeout) { + console.error(`Node.js fs rename failed after ${attempt} retries with error: ${error}`); + throw error // give up after configurable timeout + ; + } + if (attempt > 100) { + console.error(`Node.js fs rename failed after ${attempt} retries with error ${error}`); + throw error; + } + if (attempt === 0) { + let abortRetry = false; + try { + const statTarget = (0, _nodefs.statSync)(target); + if (!statTarget.isFile()) { + abortRetry = true // if target is not a file, EPERM error may be raised and we should not attempt to retry + ; + } + } catch (e) { + // Ignore + } + if (abortRetry) { + throw error; + } + } + // Attempt again + return renameSyncWithRetry(source, target, startTime, retryTimeout, attempt + 1); + } +} + +//# sourceMappingURL=rename.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/fs/write-atomic.js b/cli/app/node_modules/next/dist/lib/fs/write-atomic.js new file mode 100644 index 00000000000..aa2469783a4 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/fs/write-atomic.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "writeFileAtomic", { + enumerable: true, + get: function() { + return writeFileAtomic; + } +}); +const _fs = require("fs"); +const _rename = require("./rename"); +function writeFileAtomic(filePath, content) { + const tempPath = filePath + '.tmp.' + Math.random().toString(36).slice(2); + try { + (0, _fs.writeFileSync)(tempPath, content, 'utf-8'); + (0, _rename.renameSync)(tempPath, filePath); + } catch (e) { + try { + (0, _fs.unlinkSync)(tempPath); + } catch { + // ignore + } + throw e; + } +} + +//# sourceMappingURL=write-atomic.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/generate-interception-routes-rewrites.js b/cli/app/node_modules/next/dist/lib/generate-interception-routes-rewrites.js new file mode 100644 index 00000000000..8e91148112f --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/generate-interception-routes-rewrites.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "generateInterceptionRoutesRewrites", { + enumerable: true, + get: function() { + return generateInterceptionRoutesRewrites; + } +}); +const _approuterheaders = require("../client/components/app-router-headers"); +const _interceptionroutes = require("../shared/lib/router/utils/interception-routes"); +const _routeregex = require("../shared/lib/router/utils/route-regex"); +function generateInterceptionRoutesRewrites(appPaths, basePath = '') { + const rewrites = []; + for (const appPath of appPaths){ + if ((0, _interceptionroutes.isInterceptionRouteAppPath)(appPath)) { + const { interceptingRoute, interceptedRoute } = (0, _interceptionroutes.extractInterceptionRouteInformation)(appPath); + const destination = (0, _routeregex.getNamedRouteRegex)(basePath + appPath, { + prefixRouteKeys: true + }); + const header = (0, _routeregex.getNamedRouteRegex)(interceptingRoute, { + prefixRouteKeys: true, + reference: destination.reference + }); + const source = (0, _routeregex.getNamedRouteRegex)(basePath + interceptedRoute, { + prefixRouteKeys: true, + reference: header.reference + }); + const headerRegex = header.namedRegex// Strip ^ and $ anchors since matchHas() will add them automatically + .replace(/^\^/, '').replace(/\$$/, '')// Replace matching the `/` with matching any route segment. + .replace(/^\/\(\?:\/\)\?$/, '/.*')// Replace the optional trailing with slash capture group with one that + // will match any descendants. + .replace(/\(\?:\/\)\?$/, '(?:/.*)?'); + rewrites.push({ + source: source.pathToRegexpPattern, + destination: destination.pathToRegexpPattern, + has: [ + { + type: 'header', + key: _approuterheaders.NEXT_URL, + value: headerRegex + } + ], + regex: source.namedRegex + }); + } + } + return rewrites; +} + +//# sourceMappingURL=generate-interception-routes-rewrites.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/get-network-host.js b/cli/app/node_modules/next/dist/lib/get-network-host.js new file mode 100644 index 00000000000..091e2920492 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/get-network-host.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getNetworkHost", { + enumerable: true, + get: function() { + return getNetworkHost; + } +}); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getNetworkHosts(family) { + const interfaces = _os.default.networkInterfaces(); + const hosts = []; + Object.keys(interfaces).forEach((key)=>{ + var _interfaces_key; + (_interfaces_key = interfaces[key]) == null ? void 0 : _interfaces_key.filter((networkInterface)=>{ + switch(networkInterface.family){ + case 'IPv6': + return family === 'IPv6' && networkInterface.scopeid === 0 && networkInterface.address !== '::1'; + case 'IPv4': + return family === 'IPv4' && networkInterface.address !== '127.0.0.1'; + default: + return false; + } + }).forEach((networkInterface)=>{ + if (networkInterface.address) { + hosts.push(networkInterface.address); + } + }); + }); + return hosts; +} +function getNetworkHost(family) { + const hosts = getNetworkHosts(family); + return hosts[0] ?? null; +} + +//# sourceMappingURL=get-network-host.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/get-project-dir.js b/cli/app/node_modules/next/dist/lib/get-project-dir.js new file mode 100644 index 00000000000..a2064c09cd1 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/get-project-dir.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getProjectDir", { + enumerable: true, + get: function() { + return getProjectDir; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _log = require("../build/output/log"); +const _detecttypo = require("./detect-typo"); +const _realpath = require("./realpath"); +const _utils = require("../server/lib/utils"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getProjectDir(dir, exitOnEnoent = true) { + const resolvedDir = _path.default.resolve(dir || '.'); + try { + const realDir = (0, _realpath.realpathSync)(resolvedDir); + if (resolvedDir !== realDir && resolvedDir.toLowerCase() === realDir.toLowerCase()) { + (0, _log.warn)(`Invalid casing detected for project dir, received ${resolvedDir} actual path ${realDir}, see more info here https://nextjs.org/docs/messages/invalid-project-dir-casing`); + } + return realDir; + } catch (err) { + if (err.code === 'ENOENT' && exitOnEnoent) { + if (typeof dir === 'string') { + const detectedTypo = (0, _detecttypo.detectTypo)(dir, [ + 'build', + 'dev', + 'info', + 'lint', + 'start', + 'telemetry', + 'experimental-test' + ]); + if (detectedTypo) { + return (0, _utils.printAndExit)(`"next ${dir}" does not exist. Did you mean "next ${detectedTypo}"?`); + } + } + return (0, _utils.printAndExit)(`Invalid project directory provided, no such directory: ${resolvedDir}`); + } + throw err; + } +} + +//# sourceMappingURL=get-project-dir.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/has-necessary-dependencies.js b/cli/app/node_modules/next/dist/lib/has-necessary-dependencies.js new file mode 100644 index 00000000000..6f4a69329ea --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/has-necessary-dependencies.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "hasNecessaryDependencies", { + enumerable: true, + get: function() { + return hasNecessaryDependencies; + } +}); +const _fs = require("fs"); +const _resolvefrom = require("./resolve-from"); +const _path = require("path"); +function hasNecessaryDependencies(baseDir, requiredPackages) { + let resolutions = new Map(); + const missingPackages = []; + for (const p of requiredPackages){ + try { + const pkgPath = (0, _fs.realpathSync)((0, _resolvefrom.resolveFrom)(baseDir, `${p.pkg}/package.json`)); + const pkgDir = (0, _path.dirname)(pkgPath); + resolutions.set((0, _path.join)(p.pkg, 'package.json'), pkgPath); + if (p.exportsRestrict) { + const fileNameToVerify = (0, _path.relative)(p.pkg, p.file); + if (fileNameToVerify) { + const fileToVerify = (0, _path.join)(pkgDir, fileNameToVerify); + if ((0, _fs.existsSync)(fileToVerify)) { + resolutions.set(p.pkg, fileToVerify); + } else { + missingPackages.push(p); + continue; + } + } else { + resolutions.set(p.pkg, pkgPath); + } + } else { + resolutions.set(p.pkg, (0, _resolvefrom.resolveFrom)(baseDir, p.file)); + } + } catch (_) { + missingPackages.push(p); + continue; + } + } + return { + resolved: resolutions, + missing: missingPackages + }; +} + +//# sourceMappingURL=has-necessary-dependencies.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/helpers/get-cache-directory.js b/cli/app/node_modules/next/dist/lib/helpers/get-cache-directory.js new file mode 100644 index 00000000000..94499f56a99 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/helpers/get-cache-directory.js @@ -0,0 +1,66 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getCacheDirectory", { + enumerable: true, + get: function() { + return getCacheDirectory; + } +}); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getCacheDirectory(fileDirectory, envPath) { + let result; + if (envPath) { + result = envPath; + } else { + let systemCacheDirectory; + if (process.platform === 'linux') { + systemCacheDirectory = process.env.XDG_CACHE_HOME || _path.default.join(_os.default.homedir(), '.cache'); + } else if (process.platform === 'darwin') { + systemCacheDirectory = _path.default.join(_os.default.homedir(), 'Library', 'Caches'); + } else if (process.platform === 'win32') { + systemCacheDirectory = process.env.LOCALAPPDATA || _path.default.join(_os.default.homedir(), 'AppData', 'Local'); + } else { + /// Attempt to use generic tmp location for un-handled platform + if (!systemCacheDirectory) { + for (const dir of [ + _path.default.join(_os.default.homedir(), '.cache'), + _path.default.join(_os.default.tmpdir()) + ]){ + if (_fs.default.existsSync(dir)) { + systemCacheDirectory = dir; + break; + } + } + } + if (!systemCacheDirectory) { + console.error(Object.defineProperty(new Error('Unsupported platform: ' + process.platform), "__NEXT_ERROR_CODE", { + value: "E141", + enumerable: false, + configurable: true + })); + process.exit(0); + } + } + result = _path.default.join(systemCacheDirectory, fileDirectory); + } + if (!_path.default.isAbsolute(result)) { + // It is important to resolve to the absolute path: + // - for unzipping to work correctly; + // - so that registry directory matches between installation and execution. + // INIT_CWD points to the root of `npm/yarn install` and is probably what + // the user meant when typing the relative path. + result = _path.default.resolve(process.env['INIT_CWD'] || process.cwd(), result); + } + return result; +} + +//# sourceMappingURL=get-cache-directory.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/helpers/get-online.js b/cli/app/node_modules/next/dist/lib/helpers/get-online.js new file mode 100644 index 00000000000..225ceb52a1d --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/helpers/get-online.js @@ -0,0 +1,50 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getOnline", { + enumerable: true, + get: function() { + return getOnline; + } +}); +const _child_process = require("child_process"); +const _promises = /*#__PURE__*/ _interop_require_default(require("dns/promises")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getProxy() { + if (process.env.https_proxy) { + return process.env.https_proxy; + } + try { + const httpsProxy = (0, _child_process.execSync)('npm config get https-proxy', { + encoding: 'utf8' + }).trim(); + return httpsProxy !== 'null' ? httpsProxy : undefined; + } catch (e) { + return; + } +} +async function getOnline() { + try { + await _promises.default.lookup('registry.yarnpkg.com'); + return true; + } catch { + const proxy = getProxy(); + if (!proxy) { + return false; + } + try { + const { hostname } = new URL(proxy); + await _promises.default.lookup(hostname); + return true; + } catch { + return false; + } + } +} + +//# sourceMappingURL=get-online.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/helpers/get-pkg-manager.js b/cli/app/node_modules/next/dist/lib/helpers/get-pkg-manager.js new file mode 100644 index 00000000000..758ec04062c --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/helpers/get-pkg-manager.js @@ -0,0 +1,63 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getPkgManager", { + enumerable: true, + get: function() { + return getPkgManager; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _child_process = require("child_process"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getPkgManager(baseDir) { + try { + for (const { lockFile, packageManager } of [ + { + lockFile: 'yarn.lock', + packageManager: 'yarn' + }, + { + lockFile: 'pnpm-lock.yaml', + packageManager: 'pnpm' + }, + { + lockFile: 'package-lock.json', + packageManager: 'npm' + } + ]){ + if (_fs.default.existsSync(_path.default.join(baseDir, lockFile))) { + return packageManager; + } + } + const userAgent = process.env.npm_config_user_agent; + if (userAgent) { + if (userAgent.startsWith('yarn')) { + return 'yarn'; + } else if (userAgent.startsWith('pnpm')) { + return 'pnpm'; + } + } + try { + (0, _child_process.execSync)('yarn --version', { + stdio: 'ignore' + }); + return 'yarn'; + } catch { + (0, _child_process.execSync)('pnpm --version', { + stdio: 'ignore' + }); + return 'pnpm'; + } + } catch { + return 'npm'; + } +} + +//# sourceMappingURL=get-pkg-manager.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/helpers/get-registry.js b/cli/app/node_modules/next/dist/lib/helpers/get-registry.js new file mode 100644 index 00000000000..f73bf73a222 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/helpers/get-registry.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRegistry", { + enumerable: true, + get: function() { + return getRegistry; + } +}); +const _child_process = require("child_process"); +const _getpkgmanager = require("./get-pkg-manager"); +const _utils = require("../../server/lib/utils"); +function getRegistry(baseDir = process.cwd()) { + const pkgManager = (0, _getpkgmanager.getPkgManager)(baseDir); + // Since `npm config` command fails in npm workspace to prevent workspace config conflicts, + // add `--no-workspaces` flag to run under the context of the root project only. + // Safe for non-workspace projects as it's equivalent to default `--workspaces=false`. + // x-ref: https://github.com/vercel/next.js/issues/47121#issuecomment-1499044345 + // x-ref: https://github.com/npm/statusboard/issues/371#issue-920669998 + const resolvedFlags = pkgManager === 'npm' ? '--no-workspaces' : ''; + let registry = `https://registry.npmjs.org/`; + try { + const output = (0, _child_process.execSync)(`${pkgManager} config get registry ${resolvedFlags}`, { + env: { + ...process.env, + NODE_OPTIONS: (0, _utils.getFormattedNodeOptionsWithoutInspect)() + } + }).toString().trim(); + if (output.startsWith('http')) { + registry = output.endsWith('/') ? output : `${output}/`; + } + } catch (err) { + throw Object.defineProperty(new Error(`Failed to get registry from "${pkgManager}".`, { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E508", + enumerable: false, + configurable: true + }); + } + return registry; +} + +//# sourceMappingURL=get-registry.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/helpers/install.js b/cli/app/node_modules/next/dist/lib/helpers/install.js new file mode 100644 index 00000000000..c96f48f30df --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/helpers/install.js @@ -0,0 +1,83 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "install", { + enumerable: true, + get: function() { + return install; + } +}); +const _picocolors = require("../picocolors"); +const _crossspawn = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/cross-spawn")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function install(root, dependencies, { packageManager, isOnline, devDependencies }) { + let args = []; + if (dependencies.length > 0) { + if (packageManager === 'yarn') { + args = [ + 'add', + '--exact' + ]; + if (devDependencies) args.push('--dev'); + } else if (packageManager === 'pnpm') { + args = [ + 'add', + '--save-exact' + ]; + args.push(devDependencies ? '--save-dev' : '--save-prod'); + } else { + // npm + args = [ + 'install', + '--save-exact' + ]; + args.push(devDependencies ? '--save-dev' : '--save'); + } + args.push(...dependencies); + } else { + args = [ + 'install' + ] // npm, pnpm, and yarn all support `install` + ; + if (!isOnline) { + args.push('--offline'); + console.log((0, _picocolors.yellow)('You appear to be offline.')); + if (packageManager !== 'npm') { + console.log((0, _picocolors.yellow)(`Falling back to the local ${packageManager} cache.`)); + } + console.log(); + } + } + return new Promise((resolve, reject)=>{ + /** + * Spawn the installation process. + */ const child = (0, _crossspawn.default)(packageManager, args, { + cwd: root, + stdio: 'inherit', + env: { + ...process.env, + ADBLOCK: '1', + // we set NODE_ENV to development as pnpm skips dev + // dependencies when production + NODE_ENV: 'development', + DISABLE_OPENCOLLECTIVE: '1' + } + }); + child.on('close', (code)=>{ + if (code !== 0) { + reject({ + command: `${packageManager} ${args.join(' ')}` + }); + return; + } + resolve(); + }); + }); +} + +//# sourceMappingURL=install.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/install-dependencies.js b/cli/app/node_modules/next/dist/lib/install-dependencies.js new file mode 100644 index 00000000000..b93d5ea34d4 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/install-dependencies.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "installDependencies", { + enumerable: true, + get: function() { + return installDependencies; + } +}); +const _picocolors = require("./picocolors"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _getpkgmanager = require("./helpers/get-pkg-manager"); +const _install = require("./helpers/install"); +const _getonline = require("./helpers/get-online"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function installDependencies(baseDir, deps, dev = false) { + const packageManager = (0, _getpkgmanager.getPkgManager)(baseDir); + const isOnline = await (0, _getonline.getOnline)(); + if (deps.length) { + console.log(); + console.log(`Installing ${dev ? 'devDependencies' : 'dependencies'} (${packageManager}):`); + for (const dep of deps){ + console.log(`- ${(0, _picocolors.cyan)(dep.pkg)}`); + } + console.log(); + await (0, _install.install)(_path.default.resolve(baseDir), deps.map((dep)=>dep.pkg), { + devDependencies: dev, + isOnline, + packageManager + }); + console.log(); + } +} + +//# sourceMappingURL=install-dependencies.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/interop-default.js b/cli/app/node_modules/next/dist/lib/interop-default.js new file mode 100644 index 00000000000..4e3c7acf472 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/interop-default.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "interopDefault", { + enumerable: true, + get: function() { + return interopDefault; + } +}); +function interopDefault(mod) { + // @ts-ignore + return mod.default || mod; +} + +//# sourceMappingURL=interop-default.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-api-route.js b/cli/app/node_modules/next/dist/lib/is-api-route.js new file mode 100644 index 00000000000..50adf8aa135 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-api-route.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isAPIRoute", { + enumerable: true, + get: function() { + return isAPIRoute; + } +}); +function isAPIRoute(value) { + return value === '/api' || Boolean(value == null ? void 0 : value.startsWith('/api/')); +} + +//# sourceMappingURL=is-api-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-app-page-route.js b/cli/app/node_modules/next/dist/lib/is-app-page-route.js new file mode 100644 index 00000000000..e866d349fb3 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-app-page-route.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isAppPageRoute", { + enumerable: true, + get: function() { + return isAppPageRoute; + } +}); +function isAppPageRoute(route) { + return route.endsWith('/page'); +} + +//# sourceMappingURL=is-app-page-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-app-route-route.js b/cli/app/node_modules/next/dist/lib/is-app-route-route.js new file mode 100644 index 00000000000..7c901addf61 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-app-route-route.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isAppRouteRoute", { + enumerable: true, + get: function() { + return isAppRouteRoute; + } +}); +function isAppRouteRoute(route) { + return route.endsWith('/route'); +} + +//# sourceMappingURL=is-app-route-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-edge-runtime.js b/cli/app/node_modules/next/dist/lib/is-edge-runtime.js new file mode 100644 index 00000000000..ea85e136c67 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-edge-runtime.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isEdgeRuntime", { + enumerable: true, + get: function() { + return isEdgeRuntime; + } +}); +const _constants = require("./constants"); +function isEdgeRuntime(value) { + return value === _constants.SERVER_RUNTIME.experimentalEdge || value === _constants.SERVER_RUNTIME.edge; +} + +//# sourceMappingURL=is-edge-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-error.js b/cli/app/node_modules/next/dist/lib/is-error.js new file mode 100644 index 00000000000..3107f65de58 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-error.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + default: null, + getProperError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + /** + * Checks whether the given value is a NextError. + * This can be used to print a more detailed error message with properties like `code` & `digest`. + */ default: function() { + return isError; + }, + getProperError: function() { + return getProperError; + } +}); +const _isplainobject = require("../shared/lib/is-plain-object"); +/** + * This is a safe stringify function that handles circular references. + * We're using a simpler version here to avoid introducing + * the dependency `safe-stable-stringify` into production bundle. + * + * This helper is used both in development and production. + */ function safeStringifyLite(obj) { + const seen = new WeakSet(); + return JSON.stringify(obj, (_key, value)=>{ + // If value is an object and already seen, replace with "[Circular]" + if (typeof value === 'object' && value !== null) { + if (seen.has(value)) { + return '[Circular]'; + } + seen.add(value); + } + return value; + }); +} +function isError(err) { + return typeof err === 'object' && err !== null && 'name' in err && 'message' in err; +} +function getProperError(err) { + if (isError(err)) { + return err; + } + if (process.env.NODE_ENV === 'development') { + // provide better error for case where `throw undefined` + // is called in development + if (typeof err === 'undefined') { + return Object.defineProperty(new Error('An undefined error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), "__NEXT_ERROR_CODE", { + value: "E98", + enumerable: false, + configurable: true + }); + } + if (err === null) { + return Object.defineProperty(new Error('A null error was thrown, ' + 'see here for more info: https://nextjs.org/docs/messages/threw-undefined'), "__NEXT_ERROR_CODE", { + value: "E336", + enumerable: false, + configurable: true + }); + } + } + return Object.defineProperty(new Error((0, _isplainobject.isPlainObject)(err) ? safeStringifyLite(err) : err + ''), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); +} + +//# sourceMappingURL=is-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-interception-route-rewrite.js b/cli/app/node_modules/next/dist/lib/is-interception-route-rewrite.js new file mode 100644 index 00000000000..e2217c12c05 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-interception-route-rewrite.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isInterceptionRouteRewrite", { + enumerable: true, + get: function() { + return isInterceptionRouteRewrite; + } +}); +const _approuterheaders = require("../client/components/app-router-headers"); +function isInterceptionRouteRewrite(route) { + var _route_has_, _route_has; + // When we generate interception rewrites in the above implementation, we always do so with only a single `has` condition. + return ((_route_has = route.has) == null ? void 0 : (_route_has_ = _route_has[0]) == null ? void 0 : _route_has_.key) === _approuterheaders.NEXT_URL; +} + +//# sourceMappingURL=is-interception-route-rewrite.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-internal-component.js b/cli/app/node_modules/next/dist/lib/is-internal-component.js new file mode 100644 index 00000000000..b0413f3cdb2 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-internal-component.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isInternalComponent: null, + isNonRoutePagesPage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isInternalComponent: function() { + return isInternalComponent; + }, + isNonRoutePagesPage: function() { + return isNonRoutePagesPage; + } +}); +function isInternalComponent(pathname) { + switch(pathname){ + case 'next/dist/pages/_app': + case 'next/dist/pages/_document': + return true; + default: + return false; + } +} +function isNonRoutePagesPage(pathname) { + return pathname === '/_app' || pathname === '/_document'; +} + +//# sourceMappingURL=is-internal-component.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/is-serializable-props.js b/cli/app/node_modules/next/dist/lib/is-serializable-props.js new file mode 100644 index 00000000000..f2cff69dcf4 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/is-serializable-props.js @@ -0,0 +1,106 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + SerializableError: null, + isSerializableProps: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + SerializableError: function() { + return SerializableError; + }, + isSerializableProps: function() { + return isSerializableProps; + } +}); +const _isplainobject = require("../shared/lib/is-plain-object"); +const regexpPlainIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/; +class SerializableError extends Error { + constructor(page, method, path, message){ + super(path ? `Error serializing \`${path}\` returned from \`${method}\` in "${page}".\nReason: ${message}` : `Error serializing props returned from \`${method}\` in "${page}".\nReason: ${message}`); + } +} +function isSerializableProps(page, method, input) { + if (!(0, _isplainobject.isPlainObject)(input)) { + throw Object.defineProperty(new SerializableError(page, method, '', `Props must be returned as a plain object from ${method}: \`{ props: { ... } }\` (received: \`${(0, _isplainobject.getObjectClassLabel)(input)}\`).`), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + function visit(visited, value, path) { + if (visited.has(value)) { + throw Object.defineProperty(new SerializableError(page, method, path, `Circular references cannot be expressed in JSON (references: \`${visited.get(value) || '(self)'}\`).`), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + visited.set(value, path); + } + function isSerializable(refs, value, path) { + const type = typeof value; + if (// `null` can be serialized, but not `undefined`. + value === null || // n.b. `bigint`, `function`, `symbol`, and `undefined` cannot be + // serialized. + // + // `object` is special-cased below, as it may represent `null`, an Array, + // a plain object, a class, et al. + type === 'boolean' || type === 'number' || type === 'string') { + return true; + } + if (type === 'undefined') { + throw Object.defineProperty(new SerializableError(page, method, path, '`undefined` cannot be serialized as JSON. Please use `null` or omit this value.'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if ((0, _isplainobject.isPlainObject)(value)) { + visit(refs, value, path); + if (Object.entries(value).every(([key, nestedValue])=>{ + const nextPath = regexpPlainIdentifier.test(key) ? `${path}.${key}` : `${path}[${JSON.stringify(key)}]`; + const newRefs = new Map(refs); + return isSerializable(newRefs, key, nextPath) && isSerializable(newRefs, nestedValue, nextPath); + })) { + return true; + } + throw Object.defineProperty(new SerializableError(page, method, path, `invariant: Unknown error encountered in Object.`), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (Array.isArray(value)) { + visit(refs, value, path); + if (value.every((nestedValue, index)=>{ + const newRefs = new Map(refs); + return isSerializable(newRefs, nestedValue, `${path}[${index}]`); + })) { + return true; + } + throw Object.defineProperty(new SerializableError(page, method, path, `invariant: Unknown error encountered in Array.`), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + // None of these can be expressed as JSON: + // const type: "bigint" | "symbol" | "object" | "function" + throw Object.defineProperty(new SerializableError(page, method, path, '`' + type + '`' + (type === 'object' ? ` ("${Object.prototype.toString.call(value)}")` : '') + ' cannot be serialized as JSON. Please only return JSON serializable data types.'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + return isSerializable(new Map(), input, ''); +} + +//# sourceMappingURL=is-serializable-props.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/known-edge-safe-packages.json b/cli/app/node_modules/next/dist/lib/known-edge-safe-packages.json new file mode 100644 index 00000000000..be767c48edc --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/known-edge-safe-packages.json @@ -0,0 +1 @@ +["function-bind"] diff --git a/cli/app/node_modules/next/dist/lib/load-custom-routes.js b/cli/app/node_modules/next/dist/lib/load-custom-routes.js new file mode 100644 index 00000000000..6f29316fe25 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/load-custom-routes.js @@ -0,0 +1,594 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + checkCustomRoutes: null, + default: null, + normalizeRouteRegex: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + checkCustomRoutes: function() { + return checkCustomRoutes; + }, + default: function() { + return loadCustomRoutes; + }, + normalizeRouteRegex: function() { + return normalizeRouteRegex; + } +}); +const _picocolors = require("./picocolors"); +const _escaperegexp = require("../shared/lib/escape-regexp"); +const _trytoparsepath = require("./try-to-parse-path"); +const _redirectstatus = require("./redirect-status"); +const _url = require("./url"); +const _constants = require("./constants"); +const allowedHasTypes = new Set([ + 'header', + 'cookie', + 'query', + 'host' +]); +const namedGroupsRegex = /\(\?<([a-zA-Z][a-zA-Z0-9]*)>/g; +function normalizeRouteRegex(regex) { + // clean up un-necessary escaping from regex.source which turns / into \\/ + return regex.replace(/\\\//g, '/'); +} +function checkRedirect(route) { + const invalidParts = []; + let hadInvalidStatus = false; + if (route.statusCode && !_redirectstatus.allowedStatusCodes.has(route['statusCode'])) { + hadInvalidStatus = true; + invalidParts.push(`\`statusCode\` is not undefined or valid statusCode`); + } + if (typeof route.permanent !== 'boolean' && !route['statusCode']) { + invalidParts.push(`\`permanent\` is not set to \`true\` or \`false\``); + } + return { + invalidParts, + hadInvalidStatus + }; +} +function checkHeader(route) { + const invalidParts = []; + if (!Array.isArray(route.headers)) { + invalidParts.push('`headers` field must be an array'); + } else if (route.headers.length === 0) { + invalidParts.push('`headers` field cannot be empty'); + } else { + for (const header of route.headers){ + if (!header || typeof header !== 'object') { + invalidParts.push("`headers` items must be object with { key: '', value: '' }"); + break; + } + if (typeof header.key !== 'string') { + invalidParts.push('`key` in header item must be string'); + break; + } + if (typeof header.value !== 'string') { + invalidParts.push('`value` in header item must be string'); + break; + } + } + } + return invalidParts; +} +function checkCustomRoutes(routes, type) { + if (!Array.isArray(routes)) { + console.error(`Error: ${type}s must return an array, received ${typeof routes}.\n` + `See here for more info: https://nextjs.org/docs/messages/routes-must-be-array`); + process.exit(1); + } + let numInvalidRoutes = 0; + let hadInvalidStatus = false; + let hadInvalidHas = false; + let hadInvalidMissing = false; + const allowedKeys = new Set([ + 'source', + 'locale', + 'has', + 'missing' + ]); + if (type === 'rewrite') { + allowedKeys.add('basePath'); + allowedKeys.add('destination'); + } + if (type === 'redirect') { + allowedKeys.add('basePath'); + allowedKeys.add('statusCode'); + allowedKeys.add('permanent'); + allowedKeys.add('destination'); + } + if (type === 'header') { + allowedKeys.add('basePath'); + allowedKeys.add('headers'); + } + for (const route of routes){ + if (!route || typeof route !== 'object') { + console.error(`The route ${JSON.stringify(route)} is not a valid object with \`source\`${type !== 'middleware' ? ` and \`${type === 'header' ? 'headers' : 'destination'}\`` : ''}`); + numInvalidRoutes++; + continue; + } + if (type === 'rewrite' && route.basePath === false && !(route.destination.startsWith('http://') || route.destination.startsWith('https://'))) { + console.error(`The route ${route.source} rewrites urls outside of the basePath. Please use a destination that starts with \`http://\` or \`https://\` https://nextjs.org/docs/messages/invalid-external-rewrite`); + numInvalidRoutes++; + continue; + } + const keys = Object.keys(route); + const invalidKeys = keys.filter((key)=>!allowedKeys.has(key)); + const invalidParts = []; + if ('basePath' in route && typeof route.basePath !== 'undefined' && route.basePath !== false) { + invalidParts.push('`basePath` must be undefined or false'); + } + if (typeof route.locale !== 'undefined' && route.locale !== false) { + invalidParts.push('`locale` must be undefined or false'); + } + const checkInvalidHasMissing = (items, fieldName)=>{ + let hadInvalidItem = false; + if (typeof items !== 'undefined' && !Array.isArray(items)) { + invalidParts.push(`\`${fieldName}\` must be undefined or valid has object`); + hadInvalidItem = true; + } else if (items) { + const invalidHasItems = []; + for (const hasItem of items){ + let invalidHasParts = []; + if (!allowedHasTypes.has(hasItem.type)) { + invalidHasParts.push(`invalid type "${hasItem.type}"`); + } + if (typeof hasItem.key !== 'string' && hasItem.type !== 'host') { + invalidHasParts.push(`invalid key "${hasItem.key}"`); + } + if (typeof hasItem.value !== 'undefined' && typeof hasItem.value !== 'string') { + invalidHasParts.push(`invalid value "${hasItem.value}"`); + } + if (typeof hasItem.value === 'undefined' && hasItem.type === 'host') { + invalidHasParts.push(`value is required for "host" type`); + } + if (invalidHasParts.length > 0) { + invalidHasItems.push(`${invalidHasParts.join(', ')} for ${JSON.stringify(hasItem)}`); + } + } + if (invalidHasItems.length > 0) { + hadInvalidItem = true; + const itemStr = `item${invalidHasItems.length === 1 ? '' : 's'}`; + console.error(`Invalid \`${fieldName}\` ${itemStr}:\n` + invalidHasItems.join('\n')); + console.error(); + invalidParts.push(`invalid \`${fieldName}\` ${itemStr} found`); + } + } + return hadInvalidItem; + }; + if (checkInvalidHasMissing(route.has, 'has')) { + hadInvalidHas = true; + } + if (checkInvalidHasMissing(route.missing, 'missing')) { + hadInvalidMissing = true; + } + if (!route.source) { + invalidParts.push('`source` is missing'); + } else if (typeof route.source !== 'string') { + invalidParts.push('`source` is not a string'); + } else if (!route.source.startsWith('/')) { + invalidParts.push('`source` does not start with /'); + } + if (type === 'header') { + invalidParts.push(...checkHeader(route)); + } else if (type !== 'middleware') { + let _route = route; + if (!_route.destination) { + invalidParts.push('`destination` is missing'); + } else if (typeof _route.destination !== 'string') { + invalidParts.push('`destination` is not a string'); + } else if (type === 'rewrite' && !_route.destination.match(/^(\/|https:\/\/|http:\/\/)/)) { + invalidParts.push('`destination` does not start with `/`, `http://`, or `https://`'); + } + } + if (type === 'redirect') { + const result = checkRedirect(route); + hadInvalidStatus = hadInvalidStatus || result.hadInvalidStatus; + invalidParts.push(...result.invalidParts); + } + let sourceTokens; + if (typeof route.source === 'string' && route.source.startsWith('/')) { + // only show parse error if we didn't already show error + // for not being a string + const { tokens, error, regexStr } = (0, _trytoparsepath.tryToParsePath)(route.source); + if (error) { + invalidParts.push('`source` parse failed'); + } + if (regexStr && regexStr.length > 4096) { + invalidParts.push('`source` exceeds max built length of 4096'); + } + sourceTokens = tokens; + } + const hasSegments = new Set(); + if (route.has) { + for (const hasItem of route.has){ + if (!hasItem.value && hasItem.key) { + hasSegments.add(hasItem.key); + } + if (hasItem.value) { + for (const match of hasItem.value.matchAll(namedGroupsRegex)){ + if (match[1]) { + hasSegments.add(match[1]); + } + } + if (hasItem.type === 'host') { + hasSegments.add('host'); + } + } + } + } + // make sure no unnamed patterns are attempted to be used in the + // destination as this can cause confusion and is not allowed + if (typeof route.destination === 'string') { + if (route.destination.startsWith('/') && Array.isArray(sourceTokens)) { + const unnamedInDest = new Set(); + for (const token of sourceTokens){ + if (typeof token === 'object' && typeof token.name === 'number') { + const unnamedIndex = new RegExp(`:${token.name}(?!\\d)`); + if (route.destination.match(unnamedIndex)) { + unnamedInDest.add(`:${token.name}`); + } + } + } + if (unnamedInDest.size > 0) { + invalidParts.push(`\`destination\` has unnamed params ${[ + ...unnamedInDest + ].join(', ')}`); + } else { + const { tokens: destTokens, regexStr: destRegexStr, error: destinationParseFailed } = (0, _trytoparsepath.tryToParsePath)(route.destination, { + handleUrl: true + }); + if (destRegexStr && destRegexStr.length > 4096) { + invalidParts.push('`destination` exceeds max built length of 4096'); + } + if (destinationParseFailed) { + invalidParts.push('`destination` parse failed'); + } else { + const sourceSegments = new Set(sourceTokens.map((item)=>typeof item === 'object' && item.name).filter(Boolean)); + const invalidDestSegments = new Set(); + for (const token of destTokens){ + if (typeof token === 'object' && !sourceSegments.has(token.name) && !hasSegments.has(token.name)) { + invalidDestSegments.add(token.name); + } + } + if (invalidDestSegments.size) { + invalidParts.push(`\`destination\` has segments not in \`source\` or \`has\` (${[ + ...invalidDestSegments + ].join(', ')})`); + } + } + } + } + } + const hasInvalidKeys = invalidKeys.length > 0; + const hasInvalidParts = invalidParts.length > 0; + if (hasInvalidKeys || hasInvalidParts) { + console.error(`${invalidParts.join(', ')}${invalidKeys.length ? (hasInvalidParts ? ',' : '') + ` invalid field${invalidKeys.length === 1 ? '' : 's'}: ` + invalidKeys.join(',') : ''} for route ${JSON.stringify(route)}`); + console.error(); + numInvalidRoutes++; + } + } + if (numInvalidRoutes > 0) { + if (hadInvalidStatus) { + console.error(`\nValid redirect statusCode values are ${[ + ..._redirectstatus.allowedStatusCodes + ].join(', ')}`); + } + if (hadInvalidHas) { + console.error(`\nValid \`has\` object shape is ${JSON.stringify({ + type: [ + ...allowedHasTypes + ].join(', '), + key: 'the key to check for', + value: 'undefined or a value string to match against' + }, null, 2)}`); + } + if (hadInvalidMissing) { + console.error(`\nValid \`missing\` object shape is ${JSON.stringify({ + type: [ + ...allowedHasTypes + ].join(', '), + key: 'the key to check for', + value: 'undefined or a value string to match against' + }, null, 2)}`); + } + console.error(); + console.error(`Error: Invalid ${type}${numInvalidRoutes === 1 ? '' : 's'} found`); + process.exit(1); + } +} +function processRoutes(routes, config, type) { + const _routes = routes; + const newRoutes = []; + const defaultLocales = []; + if (config.i18n && type === 'redirect') { + var _config_i18n; + for (const item of ((_config_i18n = config.i18n) == null ? void 0 : _config_i18n.domains) || []){ + defaultLocales.push({ + locale: item.defaultLocale, + base: `http${item.http ? '' : 's'}://${item.domain}` + }); + } + defaultLocales.push({ + locale: config.i18n.defaultLocale, + base: '' + }); + } + for (const r of _routes){ + var _r_destination; + const srcBasePath = config.basePath && r.basePath !== false ? config.basePath : ''; + const isExternal = !((_r_destination = r.destination) == null ? void 0 : _r_destination.startsWith('/')); + const destBasePath = srcBasePath && !isExternal ? srcBasePath : ''; + if (config.i18n && r.locale !== false) { + var _r_destination1; + if (!isExternal) { + defaultLocales.forEach((item)=>{ + let destination; + if (r.destination) { + destination = item.base ? `${item.base}${destBasePath}${r.destination}` : `${destBasePath}${r.destination}`; + } + newRoutes.push({ + ...r, + destination, + source: `${srcBasePath}/${item.locale}${r.source === '/' && !config.trailingSlash ? '' : r.source}` + }); + }); + } + r.source = `/:nextInternalLocale(${config.i18n.locales.map((locale)=>(0, _escaperegexp.escapeStringRegexp)(locale)).join('|')})${r.source === '/' && !config.trailingSlash ? '' : r.source}`; + if (r.destination && ((_r_destination1 = r.destination) == null ? void 0 : _r_destination1.startsWith('/'))) { + r.destination = `/:nextInternalLocale${r.destination === '/' && !config.trailingSlash ? '' : r.destination}`; + } + } + r.source = `${srcBasePath}${r.source === '/' && srcBasePath ? '' : r.source}`; + if (r.destination) { + r.destination = `${destBasePath}${r.destination === '/' && destBasePath ? '' : r.destination}`; + } + newRoutes.push(r); + } + return newRoutes; +} +async function loadRedirects(config) { + if (typeof config.redirects !== 'function') { + return []; + } + let redirects = await config.redirects(); + // check before we process the routes and after to ensure + // they are still valid + checkCustomRoutes(redirects, 'redirect'); + // save original redirects before transforms + if (Array.isArray(redirects)) { + config._originalRedirects = redirects.map((r)=>({ + ...r + })); + } + redirects = processRoutes(redirects, config, 'redirect'); + checkCustomRoutes(redirects, 'redirect'); + return redirects; +} +async function loadRewrites(config) { + // If assetPrefix is set, add a rewrite for `/${assetPrefix}/_next/*` + // requests so that they are handled in any of dev, start, or deploy + // automatically without the user having to configure this. + // If the assetPrefix is an absolute URL, we still consider the path for automatic rewrite. + // but hostname routing must be handled by the user + let maybeAssetPrefixRewrite = []; + if (config.assetPrefix) { + let prefix = config.assetPrefix; + if ((0, _url.isFullStringUrl)(config.assetPrefix) && URL.canParse(config.assetPrefix)) { + prefix = new URL(config.assetPrefix).pathname; + } + if (prefix && prefix !== '/') { + const assetPrefix = prefix.startsWith('/') ? prefix : `/${prefix}`; + const basePath = config.basePath || ''; + // If these are the same, then this would result in an infinite rewrite. + if (assetPrefix !== basePath) { + maybeAssetPrefixRewrite.push({ + source: `${assetPrefix}/_next/:path+`, + destination: `${basePath}/_next/:path+` + }); + } + } + } + if (typeof config.rewrites !== 'function') { + return { + beforeFiles: [ + ...maybeAssetPrefixRewrite + ], + afterFiles: [], + fallback: [] + }; + } + const _rewrites = await config.rewrites(); + let beforeFiles = []; + let afterFiles = []; + let fallback = []; + if (!Array.isArray(_rewrites) && typeof _rewrites === 'object' && Object.keys(_rewrites).every((key)=>key === 'beforeFiles' || key === 'afterFiles' || key === 'fallback')) { + beforeFiles = _rewrites.beforeFiles || []; + afterFiles = _rewrites.afterFiles || []; + fallback = _rewrites.fallback || []; + } else { + afterFiles = _rewrites; + } + // check before we process the routes and after to ensure + // they are still valid + checkCustomRoutes(beforeFiles, 'rewrite'); + checkCustomRoutes(afterFiles, 'rewrite'); + checkCustomRoutes(fallback, 'rewrite'); + // save original rewrites before transforms + config._originalRewrites = { + beforeFiles: beforeFiles.map((r)=>({ + ...r + })), + afterFiles: afterFiles.map((r)=>({ + ...r + })), + fallback: fallback.map((r)=>({ + ...r + })) + }; + beforeFiles = [ + ...maybeAssetPrefixRewrite, + ...processRoutes(beforeFiles, config, 'rewrite') + ]; + afterFiles = processRoutes(afterFiles, config, 'rewrite'); + fallback = processRoutes(fallback, config, 'rewrite'); + checkCustomRoutes(beforeFiles, 'rewrite'); + checkCustomRoutes(afterFiles, 'rewrite'); + checkCustomRoutes(fallback, 'rewrite'); + return { + beforeFiles, + afterFiles, + fallback + }; +} +async function loadHeaders(config) { + if (typeof config.headers !== 'function') { + return []; + } + let headers = await config.headers(); + // check before we process the routes and after to ensure + // they are still valid + checkCustomRoutes(headers, 'header'); + headers = processRoutes(headers, config, 'header'); + checkCustomRoutes(headers, 'header'); + return headers; +} +async function loadCustomRoutes(config) { + const [headers, rewrites, redirects] = await Promise.all([ + loadHeaders(config), + loadRewrites(config), + loadRedirects(config) + ]); + const onMatchHeaders = []; + const totalRewrites = rewrites.beforeFiles.length + rewrites.afterFiles.length + rewrites.fallback.length; + const totalRoutes = headers.length + redirects.length + totalRewrites; + if (totalRoutes > 1000) { + console.warn((0, _picocolors.bold)((0, _picocolors.yellow)(`Warning: `)) + `total number of custom routes exceeds 1000, this can reduce performance. Route counts:\n` + `headers: ${headers.length}\n` + `rewrites: ${totalRewrites}\n` + `redirects: ${redirects.length}\n` + `See more info: https://nextjs.org/docs/messages/max-custom-routes-reached`); + } + const cacheControlSources = []; + for (const headerRoute of headers){ + if (!headerRoute.source.startsWith('/_next/')) { + continue; + } + for (const header of headerRoute.headers){ + if (header.key.toLowerCase() === 'cache-control') { + cacheControlSources.push(headerRoute.source); + break; + } + } + } + if (cacheControlSources.length > 0) { + console.warn((0, _picocolors.bold)((0, _picocolors.yellow)(`Warning: `)) + `Custom Cache-Control headers detected for the following routes:\n` + cacheControlSources.map((source)=>` - ${source}`).join('\n') + `\n\nSetting a custom Cache-Control header can break Next.js development behavior.`); + } + if (config.deploymentId) { + var _config_experimental; + if ((_config_experimental = config.experimental) == null ? void 0 : _config_experimental.useSkewCookie) { + headers.unshift({ + source: '/:path*', + headers: [ + { + key: 'Set-Cookie', + value: `__vdpl=${config.deploymentId}; Path=/; HttpOnly` + } + ] + }); + } + onMatchHeaders.push({ + source: '/:path*', + has: [ + { + type: 'header', + key: 'rsc', + value: '1' + } + ], + headers: [ + { + key: _constants.NEXT_NAV_DEPLOYMENT_ID_HEADER, + value: config.deploymentId + } + ] + }, { + source: '/_next/data/(.*)', + headers: [ + { + key: _constants.NEXT_NAV_DEPLOYMENT_ID_HEADER, + value: config.deploymentId + } + ] + }); + } + if (!config.skipTrailingSlashRedirect) { + if (config.trailingSlash) { + redirects.unshift({ + source: '/:file((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/]+\\.\\w+)/', + destination: '/:file', + permanent: true, + locale: config.i18n ? false : undefined, + internal: true, + priority: true, + // don't run this redirect for _next/data requests + missing: [ + { + type: 'header', + key: 'x-nextjs-data' + } + ] + }, { + source: '/:notfile((?!\\.well-known(?:/.*)?)(?:[^/]+/)*[^/\\.]+)', + destination: '/:notfile/', + permanent: true, + locale: config.i18n ? false : undefined, + internal: true, + priority: true + }); + if (config.basePath) { + redirects.unshift({ + source: config.basePath, + destination: config.basePath + '/', + permanent: true, + basePath: false, + locale: config.i18n ? false : undefined, + internal: true, + priority: true + }); + } + } else { + redirects.unshift({ + source: '/:path+/', + destination: '/:path+', + permanent: true, + locale: config.i18n ? false : undefined, + internal: true, + priority: true + }); + if (config.basePath) { + redirects.unshift({ + source: config.basePath + '/', + destination: config.basePath, + permanent: true, + basePath: false, + locale: config.i18n ? false : undefined, + internal: true, + priority: true + }); + } + } + } + return { + headers, + onMatchHeaders, + rewrites, + redirects + }; +} + +//# sourceMappingURL=load-custom-routes.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/memory/trace.js b/cli/app/node_modules/next/dist/lib/memory/trace.js new file mode 100644 index 00000000000..1ec36a71f16 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/memory/trace.js @@ -0,0 +1,109 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getAllMemoryUsageSpans: null, + startPeriodicMemoryUsageTracing: null, + stopPeriodicMemoryUsageTracing: null, + traceMemoryUsage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getAllMemoryUsageSpans: function() { + return getAllMemoryUsageSpans; + }, + startPeriodicMemoryUsageTracing: function() { + return startPeriodicMemoryUsageTracing; + }, + stopPeriodicMemoryUsageTracing: function() { + return stopPeriodicMemoryUsageTracing; + }, + traceMemoryUsage: function() { + return traceMemoryUsage; + } +}); +const _v8 = /*#__PURE__*/ _interop_require_default(require("v8")); +const _log = require("../../build/output/log"); +const _trace = require("../../trace"); +const _picocolors = require("../picocolors"); +const _path = require("path"); +const _shared = require("../../trace/shared"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const HEAP_SNAPSHOT_THRESHOLD_PERCENT = 70; +let alreadyGeneratedHeapSnapshot = false; +const TRACE_MEMORY_USAGE_TIMER_MS = 20000; +let traceMemoryUsageTimer; +const allMemoryUsage = []; +function startPeriodicMemoryUsageTracing() { + traceMemoryUsageTimer = setTimeout(()=>{ + traceMemoryUsage('periodic memory snapshot'); + startPeriodicMemoryUsageTracing(); + }, TRACE_MEMORY_USAGE_TIMER_MS); +} +function stopPeriodicMemoryUsageTracing() { + if (traceMemoryUsageTimer) { + clearTimeout(traceMemoryUsageTimer); + } +} +function getAllMemoryUsageSpans() { + return allMemoryUsage; +} +function traceMemoryUsage(description, parentSpan) { + const memoryUsage = process.memoryUsage(); + const v8HeapStatistics = _v8.default.getHeapStatistics(); + const heapUsed = v8HeapStatistics.used_heap_size; + const heapMax = v8HeapStatistics.heap_size_limit; + const tracedMemoryUsage = { + 'memory.rss': memoryUsage.rss, + 'memory.heapUsed': heapUsed, + 'memory.heapTotal': memoryUsage.heapTotal, + 'memory.heapMax': heapMax + }; + allMemoryUsage.push(tracedMemoryUsage); + const tracedMemoryUsageAsStrings = Object.fromEntries(Object.entries(tracedMemoryUsage).map(([key, value])=>[ + key, + String(value) + ])); + if (parentSpan) { + parentSpan.traceChild('memory-usage', tracedMemoryUsageAsStrings); + } else { + (0, _trace.trace)('memory-usage', undefined, tracedMemoryUsageAsStrings); + } + if (process.env.EXPERIMENTAL_DEBUG_MEMORY_USAGE) { + const percentageHeapUsed = 100 * heapUsed / heapMax; + (0, _log.info)(''); + (0, _log.info)('***************************************'); + (0, _log.info)(`Memory usage report at "${description}":`); + (0, _log.info)(` - RSS: ${(memoryUsage.rss / 1024 / 1024).toFixed(2)} MB`); + (0, _log.info)(` - Heap Used: ${(heapUsed / 1024 / 1024).toFixed(2)} MB`); + (0, _log.info)(` - Heap Total Allocated: ${(memoryUsage.heapTotal / 1024 / 1024).toFixed(2)} MB`); + (0, _log.info)(` - Heap Max: ${(heapMax / 1024 / 1024).toFixed(2)} MB`); + (0, _log.info)(` - Percentage Heap Used: ${percentageHeapUsed.toFixed(2)}%`); + (0, _log.info)('***************************************'); + (0, _log.info)(''); + if (percentageHeapUsed > HEAP_SNAPSHOT_THRESHOLD_PERCENT) { + const distDir = _shared.traceGlobals.get('distDir'); + const heapFilename = (0, _path.join)(distDir, `${description.replace(' ', '-')}.heapsnapshot`); + (0, _log.warn)((0, _picocolors.bold)(`Heap usage is close to the limit. ${percentageHeapUsed.toFixed(2)}% of heap has been used.`)); + if (!alreadyGeneratedHeapSnapshot) { + (0, _log.warn)((0, _picocolors.bold)(`Saving heap snapshot to ${heapFilename}. ${(0, _picocolors.italic)('Note: this will take some time.')}`)); + _v8.default.writeHeapSnapshot(heapFilename); + alreadyGeneratedHeapSnapshot = true; + } else { + (0, _log.warn)('Skipping heap snapshot generation since heap snapshot has already been generated.'); + } + } + } +} + +//# sourceMappingURL=trace.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/metadata/get-metadata-route.js b/cli/app/node_modules/next/dist/lib/metadata/get-metadata-route.js new file mode 100644 index 00000000000..c8a2df2526b --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/metadata/get-metadata-route.js @@ -0,0 +1,123 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + fillMetadataSegment: null, + normalizeMetadataPageToRoute: null, + normalizeMetadataRoute: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + fillMetadataSegment: function() { + return fillMetadataSegment; + }, + normalizeMetadataPageToRoute: function() { + return normalizeMetadataPageToRoute; + }, + normalizeMetadataRoute: function() { + return normalizeMetadataRoute; + } +}); +const _ismetadataroute = require("./is-metadata-route"); +const _path = /*#__PURE__*/ _interop_require_default(require("../../shared/lib/isomorphic/path")); +const _serverutils = require("../../server/server-utils"); +const _routeregex = require("../../shared/lib/router/utils/route-regex"); +const _hash = require("../../shared/lib/hash"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); +const _segment = require("../../shared/lib/segment"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/* + * If there's special convention like (...) or @ in the page path, + * Give it a unique hash suffix to avoid conflicts + * + * e.g. + * /opengraph-image -> /opengraph-image + * /(post)/opengraph-image.tsx -> /opengraph-image-[0-9a-z]{6} + * + * Sitemap is an exception, it should not have a suffix. + * Each sitemap contains all the urls of sub routes, we don't have the case of duplicates `/(group)/sitemap.[ext]` and `/sitemap.[ext]` since they should be the same. + * Hence we always normalize the urls for sitemap and do not append hash suffix, and ensure user-land only contains one sitemap per pathname. + * + * /sitemap -> /sitemap + * /(post)/sitemap -> /sitemap + */ function getMetadataRouteSuffix(page) { + // Remove the last segment and get the parent pathname + // e.g. /parent/a/b/c -> /parent/a/b + // e.g. /parent/opengraph-image -> /parent + const parentPathname = _path.default.dirname(page); + // Only apply suffix to metadata routes except for sitemaps + if (page.endsWith('/sitemap') || page.endsWith('/sitemap.xml')) { + return ''; + } + // Calculate the hash suffix based on the parent path + let suffix = ''; + // Check if there's any special characters in the parent pathname. + const segments = parentPathname.split('/'); + if (segments.some((seg)=>(0, _segment.isGroupSegment)(seg) || (0, _segment.isParallelRouteSegment)(seg))) { + // Hash the parent path to get a unique suffix + suffix = (0, _hash.djb2Hash)(parentPathname).toString(36).slice(0, 6); + } + return suffix; +} +function fillMetadataSegment(segment, params, lastSegment, isStatic) { + const pathname = (0, _apppaths.normalizeAppPath)(segment); + const routeRegex = (0, _routeregex.getNamedRouteRegex)(pathname, { + prefixRouteKeys: false + }); + // For static metadata files, fill all dynamic segments with "-" placeholder + const routeParams = isStatic ? Object.keys(routeRegex.groups).reduce((acc, key)=>{ + const { repeat } = routeRegex.groups[key]; + // Use array for catch-all segments, string for regular segments + acc[key] = repeat ? [ + '-' + ] : '-'; + return acc; + }, {}) : params; + const route = (0, _serverutils.interpolateDynamicPath)(pathname, routeParams, routeRegex); + const { name, ext } = _path.default.parse(lastSegment); + const pagePath = _path.default.posix.join(segment, name); + const suffix = getMetadataRouteSuffix(pagePath); + const routeSuffix = suffix ? `-${suffix}` : ''; + return (0, _normalizepathsep.normalizePathSep)(_path.default.join(route, `${name}${routeSuffix}${ext}`)); +} +function normalizeMetadataRoute(page) { + if (!(0, _ismetadataroute.isMetadataPage)(page)) { + return page; + } + let route = page; + let suffix = ''; + if (page === '/robots') { + route += '.txt'; + } else if (page === '/manifest') { + route += '.webmanifest'; + } else { + suffix = getMetadataRouteSuffix(page); + } + // Support both / and custom routes //route.ts. + // If it's a metadata file route, we need to append /[id]/route to the page. + if (!route.endsWith('/route')) { + const { dir, name: baseName, ext } = _path.default.parse(route); + route = _path.default.posix.join(dir, `${baseName}${suffix ? `-${suffix}` : ''}${ext}`, 'route'); + } + return route; +} +function normalizeMetadataPageToRoute(page, isDynamic) { + const isRoute = page.endsWith('/route'); + const routePagePath = isRoute ? page.slice(0, -'/route'.length) : page; + const metadataRouteExtension = routePagePath.endsWith('/sitemap') ? '.xml' : ''; + const mapped = isDynamic ? `${routePagePath}/[__metadata_id__]` : `${routePagePath}${metadataRouteExtension}`; + return mapped + (isRoute ? '/route' : ''); +} + +//# sourceMappingURL=get-metadata-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/metadata/is-metadata-route.js b/cli/app/node_modules/next/dist/lib/metadata/is-metadata-route.js new file mode 100644 index 00000000000..a481dd1b0df --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/metadata/is-metadata-route.js @@ -0,0 +1,221 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DEFAULT_METADATA_ROUTE_EXTENSIONS: null, + STATIC_METADATA_IMAGES: null, + getExtensionRegexString: null, + isMetadataPage: null, + isMetadataRoute: null, + isMetadataRouteFile: null, + isStaticMetadataFile: null, + isStaticMetadataRoute: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DEFAULT_METADATA_ROUTE_EXTENSIONS: function() { + return DEFAULT_METADATA_ROUTE_EXTENSIONS; + }, + STATIC_METADATA_IMAGES: function() { + return STATIC_METADATA_IMAGES; + }, + getExtensionRegexString: function() { + return getExtensionRegexString; + }, + isMetadataPage: function() { + return isMetadataPage; + }, + isMetadataRoute: function() { + return isMetadataRoute; + }, + isMetadataRouteFile: function() { + return isMetadataRouteFile; + }, + isStaticMetadataFile: function() { + return isStaticMetadataFile; + }, + isStaticMetadataRoute: function() { + return isStaticMetadataRoute; + } +}); +const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _isapprouteroute = require("../is-app-route-route"); +const STATIC_METADATA_IMAGES = { + icon: { + filename: 'icon', + extensions: [ + 'ico', + 'jpg', + 'jpeg', + 'png', + 'svg' + ] + }, + apple: { + filename: 'apple-icon', + extensions: [ + 'jpg', + 'jpeg', + 'png' + ] + }, + favicon: { + filename: 'favicon', + extensions: [ + 'ico' + ] + }, + openGraph: { + filename: 'opengraph-image', + extensions: [ + 'jpg', + 'jpeg', + 'png', + 'gif' + ] + }, + twitter: { + filename: 'twitter-image', + extensions: [ + 'jpg', + 'jpeg', + 'png', + 'gif' + ] + } +}; +const DEFAULT_METADATA_ROUTE_EXTENSIONS = [ + 'js', + 'jsx', + 'ts', + 'tsx' +]; +const getExtensionRegexString = (staticExtensions, dynamicExtensions)=>{ + let result; + // If there's no possible multi dynamic routes, will not match any []. files + if (!dynamicExtensions || dynamicExtensions.length === 0) { + result = `(\\.(?:${staticExtensions.join('|')}))`; + } else { + result = `(?:\\.(${staticExtensions.join('|')})|(\\.(${dynamicExtensions.join('|')})))`; + } + return result; +}; +function isStaticMetadataFile(appDirRelativePath) { + return isMetadataRouteFile(appDirRelativePath, [], true); +} +// Pre-compiled static regexes for common cases +const FAVICON_REGEX = /^[\\/]favicon\.ico$/; +const ROBOTS_TXT_REGEX = /^[\\/]robots\.txt$/; +const MANIFEST_JSON_REGEX = /^[\\/]manifest\.json$/; +const MANIFEST_WEBMANIFEST_REGEX = /^[\\/]manifest\.webmanifest$/; +const SITEMAP_XML_REGEX = /[\\/]sitemap\.xml$/; +// Cache for compiled regex patterns based on parameters +const compiledRegexCache = new Map(); +// Fast path checks for common metadata files +function fastPathCheck(normalizedPath) { + // Check favicon.ico first (most common) + if (FAVICON_REGEX.test(normalizedPath)) return true; + // Check other common static files + if (ROBOTS_TXT_REGEX.test(normalizedPath)) return true; + if (MANIFEST_JSON_REGEX.test(normalizedPath)) return true; + if (MANIFEST_WEBMANIFEST_REGEX.test(normalizedPath)) return true; + if (SITEMAP_XML_REGEX.test(normalizedPath)) return true; + // Quick negative check - if it doesn't contain any metadata keywords, skip + if (!normalizedPath.includes('robots') && !normalizedPath.includes('manifest') && !normalizedPath.includes('sitemap') && !normalizedPath.includes('icon') && !normalizedPath.includes('apple-icon') && !normalizedPath.includes('opengraph-image') && !normalizedPath.includes('twitter-image') && !normalizedPath.includes('favicon')) { + return false; + } + return null // Continue with full regex matching + ; +} +function getCompiledRegexes(pageExtensions, strictlyMatchExtensions) { + // Create cache key + const cacheKey = `${pageExtensions.join(',')}|${strictlyMatchExtensions}`; + const cached = compiledRegexCache.get(cacheKey); + if (cached) { + return cached; + } + // Pre-compute common strings + const trailingMatcher = strictlyMatchExtensions ? '$' : '?$'; + const variantsMatcher = '\\d?'; + const groupSuffix = strictlyMatchExtensions ? '' : '(-\\w{6})?'; + const suffixMatcher = variantsMatcher + groupSuffix; + // Pre-compute extension arrays to avoid repeated concatenation + const robotsExts = pageExtensions.length > 0 ? [ + ...pageExtensions, + 'txt' + ] : [ + 'txt' + ]; + const manifestExts = pageExtensions.length > 0 ? [ + ...pageExtensions, + 'webmanifest', + 'json' + ] : [ + 'webmanifest', + 'json' + ]; + const regexes = [ + new RegExp(`^[\\\\/]robots${getExtensionRegexString(robotsExts, null)}${trailingMatcher}`), + new RegExp(`^[\\\\/]manifest${getExtensionRegexString(manifestExts, null)}${trailingMatcher}`), + // FAVICON_REGEX removed - already handled in fastPathCheck + new RegExp(`[\\\\/]sitemap${getExtensionRegexString([ + 'xml' + ], pageExtensions)}${trailingMatcher}`), + new RegExp(`[\\\\/]icon${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.icon.extensions, pageExtensions)}${trailingMatcher}`), + new RegExp(`[\\\\/]apple-icon${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.apple.extensions, pageExtensions)}${trailingMatcher}`), + new RegExp(`[\\\\/]opengraph-image${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.openGraph.extensions, pageExtensions)}${trailingMatcher}`), + new RegExp(`[\\\\/]twitter-image${suffixMatcher}${getExtensionRegexString(STATIC_METADATA_IMAGES.twitter.extensions, pageExtensions)}${trailingMatcher}`) + ]; + compiledRegexCache.set(cacheKey, regexes); + return regexes; +} +function isMetadataRouteFile(appDirRelativePath, pageExtensions, strictlyMatchExtensions) { + // Early exit for empty or obviously non-metadata paths + if (!appDirRelativePath || appDirRelativePath.length < 2) { + return false; + } + const normalizedPath = (0, _normalizepathsep.normalizePathSep)(appDirRelativePath); + // Fast path check for common cases + const fastResult = fastPathCheck(normalizedPath); + if (fastResult !== null) { + return fastResult; + } + // Get compiled regexes from cache + const regexes = getCompiledRegexes(pageExtensions, strictlyMatchExtensions); + // Use for loop instead of .some() for better performance + for(let i = 0; i < regexes.length; i++){ + if (regexes[i].test(normalizedPath)) { + return true; + } + } + return false; +} +function isStaticMetadataRoute(route) { + // extract ext with regex + const pathname = route.replace(/\/route$/, ''); + const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(pathname, [], true) && // These routes can either be built by static or dynamic entrypoints, + // so we assume they're dynamic + pathname !== '/robots.txt' && pathname !== '/manifest.webmanifest' && !pathname.endsWith('/sitemap.xml'); + return matched; +} +function isMetadataPage(page) { + const matched = !(0, _isapprouteroute.isAppRouteRoute)(page) && isMetadataRouteFile(page, [], false); + return matched; +} +function isMetadataRoute(route) { + let page = (0, _apppaths.normalizeAppPath)(route).replace(/^\/?app\//, '')// Remove the dynamic route id + .replace('/[__metadata_id__]', '')// Remove the /route suffix + .replace(/\/route$/, ''); + if (page[0] !== '/') page = '/' + page; + const matched = (0, _isapprouteroute.isAppRouteRoute)(route) && isMetadataRouteFile(page, [], false); + return matched; +} + +//# sourceMappingURL=is-metadata-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/metadata/metadata-context.js b/cli/app/node_modules/next/dist/lib/metadata/metadata-context.js new file mode 100644 index 00000000000..70271e74b5a --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/metadata/metadata-context.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createMetadataContext", { + enumerable: true, + get: function() { + return createMetadataContext; + } +}); +function createMetadataContext(renderOpts) { + return { + trailingSlash: renderOpts.trailingSlash, + isStaticMetadataRouteFile: false + }; +} + +//# sourceMappingURL=metadata-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/multi-file-writer.js b/cli/app/node_modules/next/dist/lib/multi-file-writer.js new file mode 100644 index 00000000000..c92cbcb8943 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/multi-file-writer.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MultiFileWriter", { + enumerable: true, + get: function() { + return MultiFileWriter; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("../shared/lib/isomorphic/path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class MultiFileWriter { + constructor(/** + * The file system methods to use. + */ fs){ + this.fs = fs; + this.tasks = []; + } + /** + * Finds or creates a task for a directory. + * + * @param directory - The directory to find or create a task for. + * @returns The task for the directory. + */ findOrCreateTask(directory) { + // See if this directory already has a task to create it. + for (const task of this.tasks){ + if (task[0] === directory) { + return task; + } + } + const promise = this.fs.mkdir(directory); + // Attach a catch handler so that it doesn't throw an unhandled promise + // rejection warning. + promise.catch(()=>{}); + // Otherwise, create a new task for this directory. + const task = [ + directory, + promise, + [] + ]; + this.tasks.push(task); + return task; + } + /** + * Appends a file to the writer to be written after its containing directory + * is created. The file writer should be awaited after all the files have been + * appended. Any async operation that occurs between appending and awaiting + * may cause an unhandled promise rejection warning and potentially crash the + * process. + * + * @param filePath - The path to the file to write. + * @param data - The data to write to the file. + */ append(filePath, data) { + // Find or create a task for the directory that contains the file. + const task = this.findOrCreateTask(_path.default.dirname(filePath)); + const promise = task[1].then(()=>this.fs.writeFile(filePath, data)); + // Attach a catch handler so that it doesn't throw an unhandled promise + // rejection warning. + promise.catch(()=>{}); + // Add the file write to the task AFTER the directory promise has resolved. + task[2].push(promise); + } + /** + * Returns a promise that resolves when all the files have been written. + */ wait() { + return Promise.all(this.tasks.flatMap((task)=>task[2])); + } +} + +//# sourceMappingURL=multi-file-writer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/needs-experimental-react.js b/cli/app/node_modules/next/dist/lib/needs-experimental-react.js new file mode 100644 index 00000000000..3e259b58ea9 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/needs-experimental-react.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "needsExperimentalReact", { + enumerable: true, + get: function() { + return needsExperimentalReact; + } +}); +function needsExperimentalReact(config) { + const { taint, transitionIndicator, gestureTransition } = config.experimental || {}; + return Boolean(taint || transitionIndicator || gestureTransition); +} + +//# sourceMappingURL=needs-experimental-react.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/non-nullable.js b/cli/app/node_modules/next/dist/lib/non-nullable.js new file mode 100644 index 00000000000..30b607bdaa0 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/non-nullable.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "nonNullable", { + enumerable: true, + get: function() { + return nonNullable; + } +}); +function nonNullable(value) { + return value !== null && value !== undefined; +} + +//# sourceMappingURL=non-nullable.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/normalize-path.js b/cli/app/node_modules/next/dist/lib/normalize-path.js new file mode 100644 index 00000000000..1d52799e3cc --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/normalize-path.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizePath", { + enumerable: true, + get: function() { + return normalizePath; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function normalizePath(file) { + return _path.default.sep === '\\' ? file.replace(/\\/g, '/') : file; +} + +//# sourceMappingURL=normalize-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/oxford-comma-list.js b/cli/app/node_modules/next/dist/lib/oxford-comma-list.js new file mode 100644 index 00000000000..f11033dbb00 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/oxford-comma-list.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getOxfordCommaList", { + enumerable: true, + get: function() { + return getOxfordCommaList; + } +}); +function getOxfordCommaList(items) { + return items.map((v, index, { length })=>(index > 0 ? index === length - 1 ? length > 2 ? ', and ' : ' and ' : ', ' : '') + v).join(''); +} + +//# sourceMappingURL=oxford-comma-list.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/page-types.js b/cli/app/node_modules/next/dist/lib/page-types.js new file mode 100644 index 00000000000..a182598ad84 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/page-types.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PAGE_TYPES", { + enumerable: true, + get: function() { + return PAGE_TYPES; + } +}); +var PAGE_TYPES = /*#__PURE__*/ function(PAGE_TYPES) { + PAGE_TYPES["PAGES"] = "pages"; + PAGE_TYPES["ROOT"] = "root"; + PAGE_TYPES["APP"] = "app"; + return PAGE_TYPES; +}({}); + +//# sourceMappingURL=page-types.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js b/cli/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js new file mode 100644 index 00000000000..76357cdd3c5 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/patch-incorrect-lockfile.js @@ -0,0 +1,185 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "patchIncorrectLockfile", { + enumerable: true, + get: function() { + return patchIncorrectLockfile; + } +}); +const _fs = require("fs"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _findup = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/find-up")); +const _packagejson = require("next/package.json"); +const _ciinfo = require("../server/ci-info"); +const _getregistry = require("./helpers/get-registry"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +let registry; +async function fetchPkgInfo(pkg) { + if (!registry) registry = (0, _getregistry.getRegistry)(); + const res = await fetch(`${registry}${pkg}`); + if (!res.ok) { + throw Object.defineProperty(new Error(`Failed to fetch registry info for ${pkg}, got status ${res.status}`), "__NEXT_ERROR_CODE", { + value: "E172", + enumerable: false, + configurable: true + }); + } + const data = await res.json(); + const versionData = data.versions["16.2.1"]; + return { + os: versionData.os, + cpu: versionData.cpu, + engines: versionData.engines, + tarball: versionData.dist.tarball, + integrity: versionData.dist.integrity + }; +} +async function patchIncorrectLockfile(dir) { + if (process.env.NEXT_IGNORE_INCORRECT_LOCKFILE) { + return; + } + const lockfilePath = await (0, _findup.default)('package-lock.json', { + cwd: dir + }); + if (!lockfilePath) { + // if no lockfile present there is no action to take + return; + } + const content = await _fs.promises.readFile(lockfilePath, 'utf8'); + // maintain current line ending + const endingNewline = content.endsWith('\r\n') ? '\r\n' : content.endsWith('\n') ? '\n' : ''; + const lockfileParsed = JSON.parse(content); + const lockfileVersion = parseInt(lockfileParsed == null ? void 0 : lockfileParsed.lockfileVersion, 10); + const expectedSwcPkgs = Object.keys(_packagejson.optionalDependencies || {}).filter((pkg)=>pkg.startsWith('@next/swc-')); + const patchDependency = (pkg, pkgData)=>{ + lockfileParsed.dependencies[pkg] = { + version: "16.2.1", + resolved: pkgData.tarball, + integrity: pkgData.integrity, + optional: true + }; + }; + const patchPackage = (pkg, pkgData)=>{ + lockfileParsed.packages[pkg] = { + version: "16.2.1", + resolved: pkgData.tarball, + integrity: pkgData.integrity, + cpu: pkgData.cpu, + optional: true, + os: pkgData.os, + engines: pkgData.engines + }; + }; + try { + const supportedVersions = [ + 1, + 2, + 3 + ]; + if (!supportedVersions.includes(lockfileVersion)) { + // bail on unsupported version + return; + } + // v1 only uses dependencies + // v2 uses dependencies and packages + // v3 only uses packages + const shouldPatchDependencies = lockfileVersion === 1 || lockfileVersion === 2; + const shouldPatchPackages = lockfileVersion === 2 || lockfileVersion === 3; + if (shouldPatchDependencies && !lockfileParsed.dependencies || shouldPatchPackages && !lockfileParsed.packages) { + // invalid lockfile so bail + return; + } + const missingSwcPkgs = []; + let pkgPrefix; + if (shouldPatchPackages) { + pkgPrefix = ''; + for (const pkg of Object.keys(lockfileParsed.packages)){ + if (pkg.endsWith('node_modules/next')) { + pkgPrefix = pkg.substring(0, pkg.length - 4); + } + } + if (!pkgPrefix) { + // unable to locate the next package so bail + return; + } + } + for (const pkg of expectedSwcPkgs){ + if (shouldPatchDependencies && !lockfileParsed.dependencies[pkg] || shouldPatchPackages && !lockfileParsed.packages[`${pkgPrefix}${pkg}`]) { + missingSwcPkgs.push(pkg); + } + } + if (missingSwcPkgs.length === 0) { + return; + } + _log.warn(`Found lockfile missing swc dependencies,`, _ciinfo.isCI ? 'run next locally to automatically patch' : 'patching...'); + if (_ciinfo.isCI) { + // no point in updating in CI as the user can't save the patch + return; + } + const pkgsData = await Promise.all(missingSwcPkgs.map((pkg)=>fetchPkgInfo(pkg))); + for(let i = 0; i < pkgsData.length; i++){ + const pkg = missingSwcPkgs[i]; + const pkgData = pkgsData[i]; + if (shouldPatchDependencies) { + patchDependency(pkg, pkgData); + } + if (shouldPatchPackages) { + patchPackage(`${pkgPrefix}${pkg}`, pkgData); + } + } + await _fs.promises.writeFile(lockfilePath, JSON.stringify(lockfileParsed, null, 2) + endingNewline); + _log.warn('Lockfile was successfully patched, please run "npm install" to ensure @next/swc dependencies are downloaded'); + } catch (err) { + _log.error(`Failed to patch lockfile, please try uninstalling and reinstalling next in this workspace`); + console.error(err); + } +} + +//# sourceMappingURL=patch-incorrect-lockfile.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/pick.js b/cli/app/node_modules/next/dist/lib/pick.js new file mode 100644 index 00000000000..1b083071437 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/pick.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "pick", { + enumerable: true, + get: function() { + return pick; + } +}); +function pick(obj, keys) { + const newObj = {}; + for (const key of keys){ + newObj[key] = obj[key]; + } + return newObj; +} + +//# sourceMappingURL=pick.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/picocolors.js b/cli/app/node_modules/next/dist/lib/picocolors.js new file mode 100644 index 00000000000..40ffa705d7b --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/picocolors.js @@ -0,0 +1,177 @@ +// ISC License +// Copyright (c) 2021 Alexey Raspopov, Kostiantyn Denysov, Anton Verinov +// Permission to use, copy, modify, and/or distribute this software for any +// purpose with or without fee is hereby granted, provided that the above +// copyright notice and this permission notice appear in all copies. +// THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +// WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +// MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +// ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +// WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +// ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +// OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. +// +// https://github.com/alexeyraspopov/picocolors/blob/b6261487e7b81aaab2440e397a356732cad9e342/picocolors.js#L1 +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + bgBlack: null, + bgBlue: null, + bgCyan: null, + bgGreen: null, + bgMagenta: null, + bgRed: null, + bgWhite: null, + bgYellow: null, + black: null, + blue: null, + bold: null, + cyan: null, + dim: null, + gray: null, + green: null, + hidden: null, + inverse: null, + italic: null, + magenta: null, + purple: null, + red: null, + reset: null, + strikethrough: null, + underline: null, + white: null, + yellow: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + bgBlack: function() { + return bgBlack; + }, + bgBlue: function() { + return bgBlue; + }, + bgCyan: function() { + return bgCyan; + }, + bgGreen: function() { + return bgGreen; + }, + bgMagenta: function() { + return bgMagenta; + }, + bgRed: function() { + return bgRed; + }, + bgWhite: function() { + return bgWhite; + }, + bgYellow: function() { + return bgYellow; + }, + black: function() { + return black; + }, + blue: function() { + return blue; + }, + bold: function() { + return bold; + }, + cyan: function() { + return cyan; + }, + dim: function() { + return dim; + }, + gray: function() { + return gray; + }, + green: function() { + return green; + }, + hidden: function() { + return hidden; + }, + inverse: function() { + return inverse; + }, + italic: function() { + return italic; + }, + magenta: function() { + return magenta; + }, + purple: function() { + return purple; + }, + red: function() { + return red; + }, + reset: function() { + return reset; + }, + strikethrough: function() { + return strikethrough; + }, + underline: function() { + return underline; + }, + white: function() { + return white; + }, + yellow: function() { + return yellow; + } +}); +var _globalThis; +const { env, stdout } = ((_globalThis = globalThis) == null ? void 0 : _globalThis.process) ?? {}; +const enabled = env && !env.NO_COLOR && (env.FORCE_COLOR || (stdout == null ? void 0 : stdout.isTTY) && !env.CI && env.TERM !== 'dumb'); +const replaceClose = (str, close, replace, index)=>{ + const start = str.substring(0, index) + replace; + const end = str.substring(index + close.length); + const nextIndex = end.indexOf(close); + return ~nextIndex ? start + replaceClose(end, close, replace, nextIndex) : start + end; +}; +const formatter = (open, close, replace = open)=>{ + if (!enabled) return String; + return (input)=>{ + const string = '' + input; + const index = string.indexOf(close, open.length); + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close; + }; +}; +const reset = enabled ? (s)=>`\x1b[0m${s}\x1b[0m` : String; +const bold = formatter('\x1b[1m', '\x1b[22m', '\x1b[22m\x1b[1m'); +const dim = formatter('\x1b[2m', '\x1b[22m', '\x1b[22m\x1b[2m'); +const italic = formatter('\x1b[3m', '\x1b[23m'); +const underline = formatter('\x1b[4m', '\x1b[24m'); +const inverse = formatter('\x1b[7m', '\x1b[27m'); +const hidden = formatter('\x1b[8m', '\x1b[28m'); +const strikethrough = formatter('\x1b[9m', '\x1b[29m'); +const black = formatter('\x1b[30m', '\x1b[39m'); +const red = formatter('\x1b[31m', '\x1b[39m'); +const green = formatter('\x1b[32m', '\x1b[39m'); +const yellow = formatter('\x1b[33m', '\x1b[39m'); +const blue = formatter('\x1b[34m', '\x1b[39m'); +const magenta = formatter('\x1b[35m', '\x1b[39m'); +const purple = formatter('\x1b[38;2;173;127;168m', '\x1b[39m'); +const cyan = formatter('\x1b[36m', '\x1b[39m'); +const white = formatter('\x1b[37m', '\x1b[39m'); +const gray = formatter('\x1b[90m', '\x1b[39m'); +const bgBlack = formatter('\x1b[40m', '\x1b[49m'); +const bgRed = formatter('\x1b[41m', '\x1b[49m'); +const bgGreen = formatter('\x1b[42m', '\x1b[49m'); +const bgYellow = formatter('\x1b[43m', '\x1b[49m'); +const bgBlue = formatter('\x1b[44m', '\x1b[49m'); +const bgMagenta = formatter('\x1b[45m', '\x1b[49m'); +const bgCyan = formatter('\x1b[46m', '\x1b[49m'); +const bgWhite = formatter('\x1b[47m', '\x1b[49m'); + +//# sourceMappingURL=picocolors.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/realpath.js b/cli/app/node_modules/next/dist/lib/realpath.js new file mode 100644 index 00000000000..7068767318d --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/realpath.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "realpathSync", { + enumerable: true, + get: function() { + return realpathSync; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const isWindows = process.platform === 'win32'; +const realpathSync = isWindows ? _fs.default.realpathSync : _fs.default.realpathSync.native; + +//# sourceMappingURL=realpath.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/recursive-delete.js b/cli/app/node_modules/next/dist/lib/recursive-delete.js new file mode 100644 index 00000000000..164341ff005 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/recursive-delete.js @@ -0,0 +1,137 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + calcBackoffMs: null, + recursiveDeleteSyncWithAsyncRetries: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + calcBackoffMs: function() { + return calcBackoffMs; + }, + recursiveDeleteSyncWithAsyncRetries: function() { + return recursiveDeleteSyncWithAsyncRetries; + } +}); +const _nodefs = /*#__PURE__*/ _interop_require_wildcard(require("node:fs")); +const _nodepath = require("node:path"); +const _iserror = /*#__PURE__*/ _interop_require_default(require("./is-error")); +const _wait = require("./wait"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// We use an exponential backoff. See the unit test for example values. +// +// - Node's `fs` module uses a linear backoff, starting with 100ms. +// - Rust tries 64 times with only a `thread::yield_now` in between. +// +// We want something more aggressive, as `recursiveDelete` is in the critical +// path of `next dev` and `next build` startup. +const INITIAL_RETRY_MS = 8; +const MAX_RETRY_MS = 64; +const MAX_RETRIES = 6; +function calcBackoffMs(attempt) { + return Math.min(INITIAL_RETRY_MS * Math.pow(2, attempt), MAX_RETRY_MS); +} +function unlinkPath(p, isDir = false, attempt = 0) { + try { + if (isDir) { + _nodefs.rmdirSync(p); + } else { + _nodefs.unlinkSync(p); + } + } catch (e) { + const code = (0, _iserror.default)(e) && e.code; + if ((code === 'EBUSY' || code === 'ENOTEMPTY' || code === 'EPERM' || code === 'EMFILE') && attempt < MAX_RETRIES) { + // retrying is unlikely to succeed on POSIX platforms, but Windows can + // fail due to temporarily-open files + return (async ()=>{ + await (0, _wait.wait)(calcBackoffMs(attempt)); + return unlinkPath(p, isDir, attempt + 1); + })(); + } + if (code === 'ENOENT') { + return; + } + throw e; + } +} +async function recursiveDeleteSyncWithAsyncRetries(/** Directory to delete the contents of */ dir, /** Exclude based on relative file path */ exclude, /** Relative path to the directory being deleted, used for exclude */ previousPath = '') { + let result; + try { + result = _nodefs.readdirSync(dir, { + withFileTypes: true + }); + } catch (e) { + if ((0, _iserror.default)(e) && e.code === 'ENOENT') { + return; + } + throw e; + } + await Promise.all(result.map(async (part)=>{ + const absolutePath = (0, _nodepath.join)(dir, part.name); + const pp = (0, _nodepath.join)(previousPath, part.name); + const isNotExcluded = !exclude || !exclude.test(pp); + if (isNotExcluded) { + // Note: readdir does not follow symbolic links, that's good: we want to + // delete the links and not the destination. + let isDirectory = part.isDirectory(); + if (isDirectory) { + await recursiveDeleteSyncWithAsyncRetries(absolutePath, exclude, pp); + } + return unlinkPath(absolutePath, isDirectory); + } + })); +} + +//# sourceMappingURL=recursive-delete.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/recursive-readdir.js b/cli/app/node_modules/next/dist/lib/recursive-readdir.js new file mode 100644 index 00000000000..570e184254e --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/recursive-readdir.js @@ -0,0 +1,124 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "recursiveReadDir", { + enumerable: true, + get: function() { + return recursiveReadDir; + } +}); +const _promises = /*#__PURE__*/ _interop_require_default(require("fs/promises")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function recursiveReadDir(rootDirectory, options = {}) { + // Grab our options. + const { pathnameFilter, ignoreFilter, ignorePartFilter, sortPathnames = true, relativePathnames = true } = options; + // The list of pathnames to return. + const pathnames = []; + /** + * Coerces the pathname to be relative if requested. + */ const coerce = relativePathnames ? (pathname)=>pathname.replace(rootDirectory, '') : (pathname)=>pathname; + // The queue of directories to scan. + let directories = [ + rootDirectory + ]; + while(directories.length > 0){ + // Load all the files in each directory at the same time. + const results = await Promise.all(directories.map(async (directory)=>{ + const result = { + directories: [], + pathnames: [], + links: [] + }; + try { + const dir = await _promises.default.readdir(directory, { + withFileTypes: true + }); + for (const file of dir){ + // If enabled, ignore the file if it matches the ignore filter. + if (ignorePartFilter && ignorePartFilter(file.name)) { + continue; + } + // Handle each file. + const absolutePathname = _path.default.join(directory, file.name); + // If enabled, ignore the file if it matches the ignore filter. + if (ignoreFilter && ignoreFilter(absolutePathname)) { + continue; + } + // If the file is a directory, then add it to the list of directories, + // they'll be scanned on a later pass. + if (file.isDirectory()) { + result.directories.push(absolutePathname); + } else if (file.isSymbolicLink()) { + result.links.push(absolutePathname); + } else if (!pathnameFilter || pathnameFilter(absolutePathname)) { + result.pathnames.push(coerce(absolutePathname)); + } + } + } catch (err) { + // This can only happen when the underlying directory was removed. If + // anything other than this error occurs, re-throw it. + // if (err.code !== 'ENOENT') throw err + if (err.code !== 'ENOENT' || directory === rootDirectory) throw err; + // The error occurred, so abandon reading this directory. + return null; + } + return result; + })); + // Empty the directories, we'll fill it later if some of the files are + // directories. + directories = []; + // Keep track of any symbolic links we find, we'll resolve them later. + const links = []; + // For each result of directory scans... + for (const result of results){ + // If the directory was removed, then skip it. + if (!result) continue; + // Add any directories to the list of directories to scan. + directories.push(...result.directories); + // Add any symbolic links to the list of symbolic links to resolve. + links.push(...result.links); + // Add any file pathnames to the list of pathnames. + pathnames.push(...result.pathnames); + } + // Resolve all the symbolic links we found if any. + if (links.length > 0) { + const resolved = await Promise.all(links.map(async (absolutePathname)=>{ + try { + return await _promises.default.stat(absolutePathname); + } catch (err) { + // This can only happen when the underlying link was removed. If + // anything other than this error occurs, re-throw it. + if (err.code !== 'ENOENT') throw err; + // The error occurred, so abandon reading this directory. + return null; + } + })); + for(let i = 0; i < links.length; i++){ + const stats = resolved[i]; + // If the link was removed, then skip it. + if (!stats) continue; + // We would have already ignored the file if it matched the ignore + // filter, so we don't need to check it again. + const absolutePathname = links[i]; + if (stats.isDirectory()) { + directories.push(absolutePathname); + } else if (!pathnameFilter || pathnameFilter(absolutePathname)) { + pathnames.push(coerce(absolutePathname)); + } + } + } + } + // Sort the pathnames in place if requested. + if (sortPathnames) { + pathnames.sort(); + } + return pathnames; +} + +//# sourceMappingURL=recursive-readdir.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/redirect-status.js b/cli/app/node_modules/next/dist/lib/redirect-status.js new file mode 100644 index 00000000000..802b9b3d54e --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/redirect-status.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + allowedStatusCodes: null, + getRedirectStatus: null, + modifyRouteRegex: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + allowedStatusCodes: function() { + return allowedStatusCodes; + }, + getRedirectStatus: function() { + return getRedirectStatus; + }, + modifyRouteRegex: function() { + return modifyRouteRegex; + } +}); +const _redirectstatuscode = require("../client/components/redirect-status-code"); +const allowedStatusCodes = new Set([ + 301, + 302, + 303, + 307, + 308 +]); +function getRedirectStatus(route) { + return route.statusCode || (route.permanent ? _redirectstatuscode.RedirectStatusCode.PermanentRedirect : _redirectstatuscode.RedirectStatusCode.TemporaryRedirect); +} +function modifyRouteRegex(regex, restrictedPaths) { + if (restrictedPaths) { + regex = regex.replace(/\^/, `^(?!${restrictedPaths.map((path)=>path.replace(/\//g, '\\/')).join('|')})`); + } + regex = regex.replace(/\$$/, '(?:\\/)?$'); + return regex; +} + +//# sourceMappingURL=redirect-status.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/resolve-from.js b/cli/app/node_modules/next/dist/lib/resolve-from.js new file mode 100644 index 00000000000..f45b6a61dca --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/resolve-from.js @@ -0,0 +1,65 @@ +// source: https://github.com/sindresorhus/resolve-from +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "resolveFrom", { + enumerable: true, + get: function() { + return resolveFrom; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _iserror = /*#__PURE__*/ _interop_require_default(require("./is-error")); +const _realpath = require("./realpath"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const Module = require('module'); +const resolveFrom = (fromDirectory, moduleId, silent)=>{ + if (typeof fromDirectory !== 'string') { + throw Object.defineProperty(new TypeError(`Expected \`fromDir\` to be of type \`string\`, got \`${typeof fromDirectory}\``), "__NEXT_ERROR_CODE", { + value: "E537", + enumerable: false, + configurable: true + }); + } + if (typeof moduleId !== 'string') { + throw Object.defineProperty(new TypeError(`Expected \`moduleId\` to be of type \`string\`, got \`${typeof moduleId}\``), "__NEXT_ERROR_CODE", { + value: "E565", + enumerable: false, + configurable: true + }); + } + try { + fromDirectory = (0, _realpath.realpathSync)(fromDirectory); + } catch (error) { + if ((0, _iserror.default)(error) && error.code === 'ENOENT') { + fromDirectory = _path.default.resolve(fromDirectory); + } else if (silent) { + return; + } else { + throw error; + } + } + const fromFile = _path.default.join(fromDirectory, 'noop.js'); + const resolveFileName = ()=>// @ts-expect-error + Module._resolveFilename(moduleId, { + id: fromFile, + filename: fromFile, + paths: // @ts-expect-error + Module._nodeModulePaths(fromDirectory) + }); + if (silent) { + try { + return resolveFileName(); + } catch (error) { + return; + } + } + return resolveFileName(); +}; + +//# sourceMappingURL=resolve-from.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/route-pattern-normalizer.js b/cli/app/node_modules/next/dist/lib/route-pattern-normalizer.js new file mode 100644 index 00000000000..4c5fa07fa3c --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/route-pattern-normalizer.js @@ -0,0 +1,107 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PARAM_SEPARATOR: null, + hasAdjacentParameterIssues: null, + normalizeAdjacentParameters: null, + normalizeTokensForRegexp: null, + stripNormalizedSeparators: null, + stripParameterSeparators: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PARAM_SEPARATOR: function() { + return PARAM_SEPARATOR; + }, + hasAdjacentParameterIssues: function() { + return hasAdjacentParameterIssues; + }, + normalizeAdjacentParameters: function() { + return normalizeAdjacentParameters; + }, + normalizeTokensForRegexp: function() { + return normalizeTokensForRegexp; + }, + stripNormalizedSeparators: function() { + return stripNormalizedSeparators; + }, + stripParameterSeparators: function() { + return stripParameterSeparators; + } +}); +const PARAM_SEPARATOR = '_NEXTSEP_'; +function hasAdjacentParameterIssues(route) { + if (typeof route !== 'string') return false; + // Check for interception route markers followed immediately by parameters + // Pattern: /(.):param, /(..):param, /(...):param, /(.)(.):param etc. + // These patterns cause "Must have text between two parameters" errors + if (/\/\(\.{1,3}\):[^/\s]+/.test(route)) { + return true; + } + // Check for basic adjacent parameters without separators + // Pattern: :param1:param2 (but not :param* or other URL patterns) + if (/:[a-zA-Z_][a-zA-Z0-9_]*:[a-zA-Z_][a-zA-Z0-9_]*/.test(route)) { + return true; + } + return false; +} +function normalizeAdjacentParameters(route) { + let normalized = route; + // Handle interception route patterns: (.):param -> (.)_NEXTSEP_:param + normalized = normalized.replace(/(\([^)]*\)):([^/\s]+)/g, `$1${PARAM_SEPARATOR}:$2`); + // Handle other adjacent parameter patterns: :param1:param2 -> :param1_NEXTSEP_:param2 + normalized = normalized.replace(/:([^:/\s)]+)(?=:)/g, `:$1${PARAM_SEPARATOR}`); + return normalized; +} +function normalizeTokensForRegexp(tokens) { + return tokens.map((token)=>{ + // Token union type: Token = string | TokenObject + // Literal path segments are strings, parameters/wildcards are objects + if (typeof token === 'object' && token !== null && // Not all token objects have 'modifier' property (e.g., simple text tokens) + 'modifier' in token && // Only repeating modifiers (* or +) cause the validation error + // Other modifiers like '?' (optional) are fine + (token.modifier === '*' || token.modifier === '+') && // Token objects can have different shapes depending on route pattern + 'prefix' in token && 'suffix' in token && // Both prefix and suffix must be empty strings + // This is what causes the validation error in path-to-regexp + token.prefix === '' && token.suffix === '') { + // Add minimal prefix to satisfy path-to-regexp validation + // We use '/' as it's the most common path delimiter and won't break route matching + // The prefix gets used in regex generation but doesn't affect parameter extraction + return { + ...token, + prefix: '/' + }; + } + return token; + }); +} +function stripNormalizedSeparators(pathname) { + // Remove separator after interception route markers + // Pattern: (.)_NEXTSEP_ -> (.), (..)_NEXTSEP_ -> (..), etc. + // The separator appears after the closing paren of interception markers + return pathname.replace(new RegExp(`\\)${PARAM_SEPARATOR}`, 'g'), ')'); +} +function stripParameterSeparators(params) { + const cleaned = {}; + for (const [key, value] of Object.entries(params)){ + if (typeof value === 'string') { + // Remove the separator if it appears at the start of parameter values + cleaned[key] = value.replace(new RegExp(`^${PARAM_SEPARATOR}`), ''); + } else if (Array.isArray(value)) { + // Handle array parameters (from repeated route segments) + cleaned[key] = value.map((item)=>typeof item === 'string' ? item.replace(new RegExp(`^${PARAM_SEPARATOR}`), '') : item); + } else { + cleaned[key] = value; + } + } + return cleaned; +} + +//# sourceMappingURL=route-pattern-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/scheduler.js b/cli/app/node_modules/next/dist/lib/scheduler.js new file mode 100644 index 00000000000..6a9be0c31f9 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/scheduler.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + atLeastOneTask: null, + scheduleImmediate: null, + scheduleOnNextTick: null, + waitAtLeastOneReactRenderTask: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + atLeastOneTask: function() { + return atLeastOneTask; + }, + scheduleImmediate: function() { + return scheduleImmediate; + }, + scheduleOnNextTick: function() { + return scheduleOnNextTick; + }, + waitAtLeastOneReactRenderTask: function() { + return waitAtLeastOneReactRenderTask; + } +}); +const scheduleOnNextTick = (cb)=>{ + // We use Promise.resolve().then() here so that the operation is scheduled at + // the end of the promise job queue, we then add it to the next process tick + // to ensure it's evaluated afterwards. + // + // This was inspired by the implementation of the DataLoader interface: https://github.com/graphql/dataloader/blob/d336bd15282664e0be4b4a657cb796f09bafbc6b/src/index.js#L213-L255 + // + Promise.resolve().then(()=>{ + if (process.env.NEXT_RUNTIME === 'edge') { + setTimeout(cb, 0); + } else { + process.nextTick(cb); + } + }); +}; +const scheduleImmediate = (cb)=>{ + if (process.env.NEXT_RUNTIME === 'edge') { + setTimeout(cb, 0); + } else { + setImmediate(cb); + } +}; +function atLeastOneTask() { + return new Promise((resolve)=>scheduleImmediate(resolve)); +} +function waitAtLeastOneReactRenderTask() { + if (process.env.NEXT_RUNTIME === 'edge') { + return new Promise((r)=>setTimeout(r, 0)); + } else { + return new Promise((r)=>setImmediate(r)); + } +} + +//# sourceMappingURL=scheduler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/semver-noop.js b/cli/app/node_modules/next/dist/lib/semver-noop.js new file mode 100644 index 00000000000..720199e52f5 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/semver-noop.js @@ -0,0 +1,18 @@ +// DO NOT MODIFY THIS FILE DIRECTLY +// It's for aliasing the `semver` package to be a noop for the `jsonwebtoken` package. +// We're trying to minimize the size of the worker bundle. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "satisfies", { + enumerable: true, + get: function() { + return satisfies; + } +}); +function satisfies() { + return true; +} + +//# sourceMappingURL=semver-noop.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/static-env.js b/cli/app/node_modules/next/dist/lib/static-env.js new file mode 100644 index 00000000000..d13b8b3a2ec --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/static-env.js @@ -0,0 +1,92 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getNextConfigEnv: null, + getNextPublicEnvironmentVariables: null, + getStaticEnv: null, + populateStaticEnv: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getNextConfigEnv: function() { + return getNextConfigEnv; + }, + getNextPublicEnvironmentVariables: function() { + return getNextPublicEnvironmentVariables; + }, + getStaticEnv: function() { + return getStaticEnv; + }, + populateStaticEnv: function() { + return populateStaticEnv; + } +}); +function errorIfEnvConflicted(config, key) { + const isPrivateKey = /^(?:NODE_.+)|^(?:__.+)$/i.test(key); + const hasNextRuntimeKey = key === 'NEXT_RUNTIME'; + if (isPrivateKey || hasNextRuntimeKey) { + throw Object.defineProperty(new Error(`The key "${key}" under "env" in ${config.configFileName || 'config'} is not allowed. https://nextjs.org/docs/messages/env-key-not-allowed`), "__NEXT_ERROR_CODE", { + value: "E967", + enumerable: false, + configurable: true + }); + } +} +function getNextPublicEnvironmentVariables() { + const defineEnv = []; + for(const key in process.env){ + if (key.startsWith('NEXT_PUBLIC_')) { + const value = process.env[key]; + if (value != null) { + defineEnv.push([ + `process.env.${key}`, + value + ]); + } + } + } + defineEnv.sort((a, b)=>a[0].localeCompare(b[0])); + return Object.fromEntries(defineEnv); +} +function getNextConfigEnv(config) { + // Refactored code below to use for-of + const defineEnv = {}; + const env = config.env; + for(const key in env){ + const value = env[key]; + if (value != null) { + errorIfEnvConflicted(config, key); + defineEnv[`process.env.${key}`] = value; + } + } + return defineEnv; +} +function getStaticEnv(config, deploymentId) { + const staticEnv = { + ...getNextPublicEnvironmentVariables(), + ...getNextConfigEnv(config), + 'process.env.NEXT_DEPLOYMENT_ID': deploymentId + }; + return staticEnv; +} +function populateStaticEnv(config, deploymentId) { + // since inlining comes after static generation we need + // to ensure this value is assigned to process env so it + // can still be accessed + const staticEnv = getStaticEnv(config, deploymentId); + for(const key in staticEnv){ + const innerKey = key.split('.').pop() || ''; + if (!process.env[innerKey]) { + process.env[innerKey] = staticEnv[key] || ''; + } + } +} + +//# sourceMappingURL=static-env.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/try-to-parse-path.js b/cli/app/node_modules/next/dist/lib/try-to-parse-path.js new file mode 100644 index 00000000000..eb860773311 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/try-to-parse-path.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "tryToParsePath", { + enumerable: true, + get: function() { + return tryToParsePath; + } +}); +const _pathtoregexp = require("next/dist/compiled/path-to-regexp"); +const _iserror = /*#__PURE__*/ _interop_require_default(require("./is-error")); +const _routepatternnormalizer = require("./route-pattern-normalizer"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/** + * If there is an error show our error link but still show original error or + * a formatted one if we can + */ function reportError({ route, parsedPath }, err) { + let errMatches; + if ((0, _iserror.default)(err) && (errMatches = err.message.match(/at (\d{0,})/))) { + const position = parseInt(errMatches[1], 10); + console.error(`\nError parsing \`${route}\` ` + `https://nextjs.org/docs/messages/invalid-route-source\n` + `Reason: ${err.message}\n\n` + ` ${parsedPath}\n` + ` ${new Array(position).fill(' ').join('')}^\n`); + } else { + console.error(`\nError parsing ${route} https://nextjs.org/docs/messages/invalid-route-source`, err); + } +} +/** + * Safe wrapper around tokensToRegexp that handles path-to-regexp 6.3.0+ validation errors. + */ function safeTokensToRegexp(tokens) { + try { + return (0, _pathtoregexp.tokensToRegexp)(tokens); + } catch (error) { + if ((0, _iserror.default)(error)) { + // Try to normalize tokens with repeating modifiers but no prefix/suffix + const normalizedTokens = (0, _routepatternnormalizer.normalizeTokensForRegexp)(tokens); + return (0, _pathtoregexp.tokensToRegexp)(normalizedTokens); + } + throw error; + } +} +function tryToParsePath(route, options) { + const result = { + route, + parsedPath: route + }; + try { + if (options == null ? void 0 : options.handleUrl) { + const parsed = new URL(route, 'http://n'); + result.parsedPath = `${parsed.pathname}${parsed.hash || ''}`; + } + result.tokens = (0, _pathtoregexp.parse)(result.parsedPath); + // Use safe wrapper instead of proactive detection + if (result.tokens) { + result.regexStr = safeTokensToRegexp(result.tokens).source; + } + } catch (err) { + reportError(result, err); + result.error = err; + } + return result; +} + +//# sourceMappingURL=try-to-parse-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/turbopack-warning.js b/cli/app/node_modules/next/dist/lib/turbopack-warning.js new file mode 100644 index 00000000000..77afa86cc06 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/turbopack-warning.js @@ -0,0 +1,185 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "validateTurboNextConfig", { + enumerable: true, + get: function() { + return validateTurboNextConfig; + } +}); +const _config = /*#__PURE__*/ _interop_require_default(require("../server/config")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const unsupportedTurbopackNextConfigOptions = [ + // Left to be implemented (priority) + // 'experimental.clientRouterFilter', + // 'experimental.optimizePackageImports', + // 'compiler.emotion', + // 'compiler.reactRemoveProperties', + // 'compiler.relay', + // 'compiler.removeConsole', + // 'compiler.styledComponents', + 'experimental.fetchCacheKeyPrefix', + // Left to be implemented + // 'excludeDefaultMomentLocales', + // 'experimental.optimizeServerReact', + 'experimental.clientRouterFilterAllowedRate', + // 'experimental.serverMinification', + // 'experimental.serverSourceMaps', + 'experimental.allowedRevalidateHeaderKeys', + 'experimental.extensionAlias', + 'experimental.fallbackNodePolyfills', + 'experimental.swcTraceProfiling', + // Left to be implemented (Might not be needed for Turbopack) + 'experimental.craCompat', + 'experimental.disablePostcssPresetEnv', + 'experimental.esmExternals', + // This is used to force swc-loader to run regardless of finding Babel. + 'experimental.forceSwcTransforms', + 'experimental.fullySpecified', + 'experimental.urlImports', + 'experimental.slowModuleDetection' +]; +async function validateTurboNextConfig({ dir, configPhase }) { + const { defaultConfig } = require('../server/config-shared'); + const { cyan, red, underline } = require('../lib/picocolors'); + const { interopDefault } = require('../lib/interop-default'); + let unsupportedParts = ''; + let hasWebpackConfig = false; + let hasTurboConfig = false; + const unsupportedConfig = []; + let rawNextConfig = {}; + try { + rawNextConfig = interopDefault(await (0, _config.default)(configPhase, dir, { + rawConfig: true + })); + if (typeof rawNextConfig === 'function') { + rawNextConfig = rawNextConfig(configPhase, { + defaultConfig + }); + } + hasWebpackConfig = Boolean(rawNextConfig.webpack); + hasTurboConfig = Boolean(rawNextConfig.turbopack); + const flattenKeys = (obj, prefix = '')=>{ + let keys = []; + for(const key in obj){ + const value = obj == null ? void 0 : obj[key]; + if (typeof value === 'undefined') { + continue; + } + const pre = prefix.length ? `${prefix}.` : ''; + if (typeof value === 'object' && !Array.isArray(value) && value !== null) { + keys = keys.concat(flattenKeys(value, pre + key)); + } else { + keys.push(pre + key); + } + } + return keys; + }; + const getDeepValue = (obj, keys)=>{ + if (typeof keys === 'string') { + keys = keys.split('.'); + } + if (keys.length === 1) { + return obj == null ? void 0 : obj[keys == null ? void 0 : keys[0]]; + } + return getDeepValue(obj == null ? void 0 : obj[keys == null ? void 0 : keys[0]], keys.slice(1)); + }; + const customKeys = flattenKeys(rawNextConfig); + for (const key of customKeys){ + if (key.startsWith('experimental.turbo')) { + hasTurboConfig = true; + } + const isUnsupported = unsupportedTurbopackNextConfigOptions.some((unsupportedKey)=>// Either the key matches (or is a more specific subkey) of + // unsupportedKey, or the key is the path to a specific subkey. + // | key | unsupportedKey | + // |---------|----------------| + // | foo | foo | + // | foo.bar | foo | + // | foo | foo.bar | + key.startsWith(unsupportedKey) || unsupportedKey.startsWith(`${key}.`)) && getDeepValue(rawNextConfig, key) !== getDeepValue(defaultConfig, key); + if (isUnsupported) { + unsupportedConfig.push(key); + } + } + } catch (e) { + _log.error('Unexpected error occurred while checking config', e); + } + // If the build was defaulted to Turbopack, we want to warn about possibly ignored webpack + // configuration. Otherwise the user explicitly picked turbopack and thus we expect that + // they have configured it correctly. + if (process.env.TURBOPACK === 'auto' && hasWebpackConfig && !hasTurboConfig) { + const configFile = rawNextConfig.configFileName ?? 'your Next config file'; + _log.error(`ERROR: This build is using Turbopack, with a \`webpack\` config and no \`turbopack\` config. + This may be a mistake. + + As of Next.js 16 Turbopack is enabled by default and + custom webpack configurations may need to be migrated to Turbopack. + + NOTE: your \`webpack\` config may have been added by a configuration plugin. + + To configure Turbopack, see https://nextjs.org/docs/app/api-reference/next-config-js/turbopack + + TIP: Many applications work fine under Turbopack with no configuration, + if that is the case for you, you can silence this error by passing the + \`--turbopack\` or \`--webpack\` flag explicitly or simply setting an + empty turbopack config in ${configFile} (e.g. \`turbopack: {}\`).`); + process.exit(1); + } + if (unsupportedConfig.length) { + unsupportedParts += `\n\n- Unsupported Next.js configuration option(s) (${cyan('next.config.js')})\n Turbopack will ignore the following configuration options:\n${unsupportedConfig.map((name)=>` - ${red(name)}\n`).join('')}`; + } + if (unsupportedParts) { + _log.error(`You are using configuration and/or tools that are not yet\nsupported by Next.js with Turbopack:\n${unsupportedParts}\n`); + _log.warn('Learn more about how to configure Turbopack with Next.js:\n' + underline('https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopack')); + } + return rawNextConfig; +} + +//# sourceMappingURL=turbopack-warning.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/diagnosticFormatter.js b/cli/app/node_modules/next/dist/lib/typescript/diagnosticFormatter.js new file mode 100644 index 00000000000..764d8d12617 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/diagnosticFormatter.js @@ -0,0 +1,243 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getFormattedDiagnostic", { + enumerable: true, + get: function() { + return getFormattedDiagnostic; + } +}); +const _codeframe = require("../../shared/lib/errors/code-frame"); +const _picocolors = require("../picocolors"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getFormattedLinkDiagnosticMessageText(diagnostic) { + const message = diagnostic.messageText; + if (typeof message === 'string' && diagnostic.code === 2322) { + const match = message.match(/Type '"(.+)"' is not assignable to type 'RouteImpl<.+> \| UrlObject'\./) || message.match(/Type '"(.+)"' is not assignable to type 'UrlObject \| RouteImpl<.+>'\./); + if (match) { + const [, href] = match; + return `"${(0, _picocolors.bold)(href)}" is not an existing route. If it is intentional, please type it explicitly with \`as Route\`.`; + } else if (message === "Type 'string' is not assignable to type 'UrlObject'.") { + var _diagnostic_relatedInformation_, _diagnostic_relatedInformation; + const relatedMessage = (_diagnostic_relatedInformation = diagnostic.relatedInformation) == null ? void 0 : (_diagnostic_relatedInformation_ = _diagnostic_relatedInformation[0]) == null ? void 0 : _diagnostic_relatedInformation_.messageText; + if (typeof relatedMessage === 'string' && relatedMessage.match(/The expected type comes from property 'href' which is declared here on type 'IntrinsicAttributes & /)) { + return `Invalid \`href\` property of \`Link\`: the route does not exist. If it is intentional, please type it explicitly with \`as Route\`.`; + } + } + } else if (typeof message === 'string' && diagnostic.code === 2820) { + const match = message.match(/Type '"(.+)"' is not assignable to type 'RouteImpl<.+> \| UrlObject'\. Did you mean '"(.+)"'?/) || message.match(/Type '"(.+)"' is not assignable to type 'UrlObject \| RouteImpl<.+>'\. Did you mean '"(.+)"'?/); + if (match) { + const [, href, suggestion] = match; + return `"${(0, _picocolors.bold)(href)}" is not an existing route. Did you mean "${(0, _picocolors.bold)(suggestion)}" instead? If it is intentional, please type it explicitly with \`as Route\`.`; + } + } +} +function getFormattedLayoutAndPageDiagnosticMessageText(relativeSourceFilepath, diagnostic) { + const message = typeof diagnostic.messageText === 'string' ? diagnostic : diagnostic.messageText; + const messageText = message.messageText; + if (typeof messageText === 'string') { + const type = /page\.[^.]+$/.test(relativeSourceFilepath) ? 'Page' : /route\.[^.]+$/.test(relativeSourceFilepath) ? 'Route' : 'Layout'; + // Reference of error codes: + // https://github.com/Microsoft/TypeScript/blob/main/src/compiler/diagnosticMessages.json + switch(message.code){ + case 2344: + const filepathAndType = messageText.match(/typeof import\("(.+)"\)/); + if (filepathAndType) { + let main = `${type} "${(0, _picocolors.bold)(relativeSourceFilepath)}" does not match the required types of a Next.js ${type}.`; + function processNext(indent, next) { + if (!next) return; + for (const item of next){ + switch(item.code){ + case 2200: + const mismatchedField = item.messageText.match(/The types of '(.+)'/); + if (mismatchedField) { + main += '\n' + ' '.repeat(indent * 2); + main += `"${(0, _picocolors.bold)(mismatchedField[1])}" has the wrong type:`; + } + break; + case 2322: + const types = item.messageText.match(/Type '(.+)' is not assignable to type '(.+)'./); + if (types) { + main += '\n' + ' '.repeat(indent * 2); + if (types[2] === 'PageComponent' || types[2] === 'LayoutComponent') { + main += `The exported ${type} component isn't correctly typed.`; + } else { + main += `Expected "${(0, _picocolors.bold)(types[2].replace('"__invalid_negative_number__"', 'number (>= 0)'))}", got "${(0, _picocolors.bold)(types[1])}".`; + } + } + break; + case 2326: + const invalidConfig = item.messageText.match(/Types of property '(.+)' are incompatible\./); + main += '\n' + ' '.repeat(indent * 2); + main += `Invalid configuration${invalidConfig ? ` "${(0, _picocolors.bold)(invalidConfig[1])}"` : ''}:`; + break; + case 2530: + const invalidField = item.messageText.match(/Property '(.+)' is incompatible with index signature/); + if (invalidField) { + main += '\n' + ' '.repeat(indent * 2); + main += `"${(0, _picocolors.bold)(invalidField[1])}" is not a valid ${type} export field.`; + } + return; + case 2739: + const invalidProp = item.messageText.match(/Type '(.+)' is missing the following properties from type '(.+)'/); + if (invalidProp) { + if (invalidProp[1] === 'LayoutProps' || invalidProp[1] === 'PageProps') { + main += '\n' + ' '.repeat(indent * 2); + main += `Prop "${invalidProp[2]}" is incompatible with the ${type}.`; + } + } + break; + case 2559: + const invalid = item.messageText.match(/Type '(.+)' has/); + if (invalid) { + main += '\n' + ' '.repeat(indent * 2); + main += `Type "${(0, _picocolors.bold)(invalid[1])}" isn't allowed.`; + } + break; + case 2741: + const incompatPageProp = item.messageText.match(/Property '(.+)' is missing in type 'PageProps'/); + if (incompatPageProp) { + main += '\n' + ' '.repeat(indent * 2); + main += `Prop "${(0, _picocolors.bold)(incompatPageProp[1])}" will never be passed. Remove it from the component's props.`; + } else { + const extraLayoutProp = item.messageText.match(/Property '(.+)' is missing in type 'LayoutProps' but required in type '(.+)'/); + if (extraLayoutProp) { + main += '\n' + ' '.repeat(indent * 2); + main += `Prop "${(0, _picocolors.bold)(extraLayoutProp[1])}" is not valid for this Layout, remove it to fix.`; + } + } + break; + default: + } + processNext(indent + 1, item.next); + } + } + if ('next' in message) processNext(1, message.next); + return main; + } + const invalidExportFnArg = messageText.match(/Type 'OmitWithTag<(.+), .+, "(.+)">' does not satisfy the constraint/); + if (invalidExportFnArg) { + const main = `${type} "${(0, _picocolors.bold)(relativeSourceFilepath)}" has an invalid "${(0, _picocolors.bold)(invalidExportFnArg[2])}" export:\n Type "${(0, _picocolors.bold)(invalidExportFnArg[1])}" is not valid.`; + return main; + } + function processNextItems(indent, next) { + if (!next) return ''; + let result = ''; + for (const item of next){ + switch(item.code){ + case 2322: + const types = item.messageText.match(/Type '(.+)' is not assignable to type '(.+)'./); + if (types) { + result += '\n' + ' '.repeat(indent * 2); + result += `Expected "${(0, _picocolors.bold)(types[2])}", got "${(0, _picocolors.bold)(types[1])}".`; + } + break; + default: + } + result += processNextItems(indent + 1, item.next); + } + return result; + } + const invalidParamFn = messageText.match(/Type '{ __tag__: (.+); __param_position__: "(.*)"; __param_type__: (.+); }' does not satisfy/); + if (invalidParamFn) { + let main = `${type} "${(0, _picocolors.bold)(relativeSourceFilepath)}" has an invalid ${invalidParamFn[1]} export:\n Type "${(0, _picocolors.bold)(invalidParamFn[3])}" is not a valid type for the function's ${invalidParamFn[2]} argument.`; + if ('next' in message) main += processNextItems(1, message.next); + return main; + } + const invalidExportFnReturn = messageText.match(/Type '{ __tag__: "(.+)"; __return_type__: (.+); }' does not satisfy/); + if (invalidExportFnReturn) { + let main = `${type} "${(0, _picocolors.bold)(relativeSourceFilepath)}" has an invalid export:\n "${(0, _picocolors.bold)(invalidExportFnReturn[2])}" is not a valid ${invalidExportFnReturn[1]} return type:`; + if ('next' in message) main += processNextItems(1, message.next); + return main; + } + break; + case 2345: + const filepathAndInvalidExport = messageText.match(/'typeof import\("(.+)"\)'.+Impossible<"(.+)">/); + if (filepathAndInvalidExport) { + const main = `${type} "${(0, _picocolors.bold)(relativeSourceFilepath)}" exports an invalid "${(0, _picocolors.bold)(filepathAndInvalidExport[2])}" field. ${type} should only export a default React component and configuration options. Learn more: https://nextjs.org/docs/messages/invalid-segment-export`; + return main; + } + break; + case 2559: + const invalid = messageText.match(/Type '(.+)' has no properties in common with type '(.+)'/); + if (invalid) { + const main = `${type} "${(0, _picocolors.bold)(relativeSourceFilepath)}" contains an invalid type "${(0, _picocolors.bold)(invalid[1])}" as ${invalid[2]}.`; + return main; + } + break; + default: + } + } +} +function getAppEntrySourceFilePath(baseDir, diagnostic) { + var _diagnostic_file_text_trim_match, _diagnostic_file; + const sourceFilepath = ((_diagnostic_file = diagnostic.file) == null ? void 0 : (_diagnostic_file_text_trim_match = _diagnostic_file.text.trim().match(/^\/\/ File: (.+)\n/)) == null ? void 0 : _diagnostic_file_text_trim_match[1]) || ''; + return _path.default.relative(baseDir, sourceFilepath); +} +function getFormattedDiagnostic(ts, baseDir, distDir, diagnostic, isAppDirEnabled) { + var _diagnostic_file; + // If the error comes from .next/types/, we handle it specially. + const isLayoutOrPageError = isAppDirEnabled && ((_diagnostic_file = diagnostic.file) == null ? void 0 : _diagnostic_file.fileName.startsWith(_path.default.join(baseDir, distDir, 'types'))); + let message = ''; + const appPath = isLayoutOrPageError ? getAppEntrySourceFilePath(baseDir, diagnostic) : null; + const linkReason = getFormattedLinkDiagnosticMessageText(diagnostic); + const appReason = !linkReason && isLayoutOrPageError && appPath ? getFormattedLayoutAndPageDiagnosticMessageText(appPath, diagnostic) : null; + const reason = linkReason || appReason || ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'); + const category = diagnostic.category; + switch(category){ + // Warning + case ts.DiagnosticCategory.Warning: + { + message += (0, _picocolors.yellow)((0, _picocolors.bold)('Type warning')) + ': '; + break; + } + // Error + case ts.DiagnosticCategory.Error: + { + message += (0, _picocolors.red)((0, _picocolors.bold)('Type error')) + ': '; + break; + } + // 2 = Suggestion, 3 = Message + case ts.DiagnosticCategory.Suggestion: + case ts.DiagnosticCategory.Message: + message += (0, _picocolors.cyan)((0, _picocolors.bold)(category === 2 ? 'Suggestion' : 'Info')) + ': '; + break; + default: + { + category; + } + } + message += reason + '\n'; + if (!isLayoutOrPageError && diagnostic.file) { + const pos = diagnostic.file.getLineAndCharacterOfPosition(diagnostic.start); + const line = pos.line + 1; + const character = pos.character + 1; + let fileName = _path.default.posix.normalize(_path.default.relative(baseDir, diagnostic.file.fileName).replace(/\\/g, '/')); + if (!fileName.startsWith('.')) { + fileName = './' + fileName; + } + message = (0, _picocolors.cyan)(fileName) + ':' + (0, _picocolors.yellow)(line.toString()) + ':' + (0, _picocolors.yellow)(character.toString()) + '\n' + message; + const codeFrame = (0, _codeframe.codeFrameColumns)(diagnostic.file.getFullText(diagnostic.file.getSourceFile()), { + start: { + line: line, + column: character + } + }, { + color: true + }); + if (codeFrame) { + message += '\n' + codeFrame; + } + } else if (isLayoutOrPageError && appPath) { + message = (0, _picocolors.cyan)(appPath) + '\n' + message; + } + return message; +} + +//# sourceMappingURL=diagnosticFormatter.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js b/cli/app/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js new file mode 100644 index 00000000000..3a423b8fab5 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/getTypeScriptConfiguration.js @@ -0,0 +1,73 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getTypeScriptConfiguration", { + enumerable: true, + get: function() { + return getTypeScriptConfiguration; + } +}); +const _picocolors = require("../picocolors"); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _fatalerror = require("../fatal-error"); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../is-error")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function getTypeScriptConfiguration(typescript, tsConfigPath, metaOnly) { + try { + var _result_errors; + const formatDiagnosticsHost = { + getCanonicalFileName: (fileName)=>fileName, + getCurrentDirectory: typescript.sys.getCurrentDirectory, + getNewLine: ()=>_os.default.EOL + }; + const { config, error } = typescript.readConfigFile(tsConfigPath, typescript.sys.readFile); + if (error) { + throw Object.defineProperty(new _fatalerror.FatalError(typescript.formatDiagnostic(error, formatDiagnosticsHost)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + let configToParse = config; + const result = typescript.parseJsonConfigFileContent(configToParse, // When only interested in meta info, + // avoid enumerating all files (for performance reasons) + metaOnly ? { + ...typescript.sys, + readDirectory (_path, extensions, _excludes, _includes, _depth) { + return [ + extensions ? `file${extensions[0]}` : `file.ts` + ]; + } + } : typescript.sys, _path.default.dirname(tsConfigPath)); + if (result.errors) { + result.errors = result.errors.filter(({ code })=>// No inputs were found in config file + code !== 18003); + } + if ((_result_errors = result.errors) == null ? void 0 : _result_errors.length) { + throw Object.defineProperty(new _fatalerror.FatalError(typescript.formatDiagnostic(result.errors[0], formatDiagnosticsHost)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + return result; + } catch (err) { + if ((0, _iserror.default)(err) && err.name === 'SyntaxError') { + const reason = '\n' + (err.message ?? ''); + throw Object.defineProperty(new _fatalerror.FatalError((0, _picocolors.bold)('Could not parse' + (0, _picocolors.cyan)('tsconfig.json') + '.' + ' Please make sure it contains syntactically correct JSON.') + reason), "__NEXT_ERROR_CODE", { + value: "E1023", + enumerable: false, + configurable: true + }); + } + throw err; + } +} + +//# sourceMappingURL=getTypeScriptConfiguration.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js b/cli/app/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js new file mode 100644 index 00000000000..41fdc83381d --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/getTypeScriptIntent.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getTypeScriptIntent", { + enumerable: true, + get: function() { + return getTypeScriptIntent; + } +}); +const _fs = require("fs"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _recursivereaddir = require("../recursive-readdir"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function getTypeScriptIntent(baseDir, intentDirs, tsconfigPath) { + const resolvedTsConfigPath = _path.default.join(baseDir, tsconfigPath); + // The integration turns on if we find a `tsconfig.json` in the user's + // project. + const hasTypeScriptConfiguration = (0, _fs.existsSync)(resolvedTsConfigPath); + if (hasTypeScriptConfiguration) { + const content = (0, _fs.readFileSync)(resolvedTsConfigPath, { + encoding: 'utf8' + }).trim(); + return { + firstTimeSetup: content === '' || content === '{}' + }; + } + // Next.js also offers a friendly setup mode that bootstraps a TypeScript + // project for the user when we detect TypeScript files. So, we need to check + // the `pages/` directory for a TypeScript file. + // Checking all directories is too slow, so this is a happy medium. + const tsFilesRegex = /.*\.(ts|tsx)$/; + const excludedRegex = /(node_modules|.*\.d\.ts$)/; + for (const dir of intentDirs){ + const typescriptFiles = await (0, _recursivereaddir.recursiveReadDir)(dir, { + pathnameFilter: (name)=>tsFilesRegex.test(name), + ignoreFilter: (name)=>excludedRegex.test(name) + }); + if (typescriptFiles.length) { + return { + firstTimeSetup: true + }; + } + } + return false; +} + +//# sourceMappingURL=getTypeScriptIntent.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/missingDependencyError.js b/cli/app/node_modules/next/dist/lib/typescript/missingDependencyError.js new file mode 100644 index 00000000000..ee3e87859dd --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/missingDependencyError.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "missingDepsError", { + enumerable: true, + get: function() { + return missingDepsError; + } +}); +const _picocolors = require("../picocolors"); +const _oxfordcommalist = require("../oxford-comma-list"); +const _fatalerror = require("../fatal-error"); +const _getpkgmanager = require("../helpers/get-pkg-manager"); +function missingDepsError(dir, missingPackages) { + const packagesHuman = (0, _oxfordcommalist.getOxfordCommaList)(missingPackages.map((p)=>p.pkg)); + const packagesCli = missingPackages.map((p)=>p.pkg).join(' '); + const packageManager = (0, _getpkgmanager.getPkgManager)(dir); + const removalMsg = '\n\n' + (0, _picocolors.bold)('If you are not trying to use TypeScript, please remove the ' + (0, _picocolors.cyan)('tsconfig.json') + ' file from your package root (and any TypeScript files in your app and pages directories).'); + throw Object.defineProperty(new _fatalerror.FatalError((0, _picocolors.bold)((0, _picocolors.red)(`It looks like you're trying to use TypeScript but do not have the required package(s) installed.`)) + '\n\n' + (0, _picocolors.bold)(`Please install ${(0, _picocolors.bold)(packagesHuman)} by running:`) + '\n\n' + `\t${(0, _picocolors.bold)((0, _picocolors.cyan)((packageManager === 'yarn' ? 'yarn add --dev' : packageManager === 'pnpm' ? 'pnpm install --save-dev' : 'npm install --save-dev') + ' ' + packagesCli))}` + removalMsg + '\n'), "__NEXT_ERROR_CODE", { + value: "E552", + enumerable: false, + configurable: true + }); +} + +//# sourceMappingURL=missingDependencyError.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/runTypeCheck.js b/cli/app/node_modules/next/dist/lib/typescript/runTypeCheck.js new file mode 100644 index 00000000000..c890de0db28 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/runTypeCheck.js @@ -0,0 +1,149 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "runTypeCheck", { + enumerable: true, + get: function() { + return runTypeCheck; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _diagnosticFormatter = require("./diagnosticFormatter"); +const _getTypeScriptConfiguration = require("./getTypeScriptConfiguration"); +const _writeConfigurationDefaults = require("./writeConfigurationDefaults"); +const _typepaths = require("./type-paths"); +const _compileerror = require("../compile-error"); +const _log = require("../../build/output/log"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/** + * Check if a file path matches any of the debug build paths. + * Both filePath and debugPaths are resolved file paths from glob. + */ function fileMatchesDebugPaths(filePath, debugPaths) { + return debugPaths.includes(filePath); +} +async function runTypeCheck(typescript, baseDir, distDir, tsConfigPath, cacheDir, isAppDirEnabled, dirs, debugBuildPaths) { + const effectiveConfiguration = await (0, _getTypeScriptConfiguration.getTypeScriptConfiguration)(typescript, tsConfigPath); + // tsconfig includes both .next/types and .next/dev/types to avoid config churn + // between dev/build modes. During build, we filter out .next/dev/types files to + // prevent stale dev types from causing errors when routes have been deleted since + // the last dev session. + let fileNames = effectiveConfiguration.fileNames; + // Get the dev types path to filter (null if not applicable) + const devTypesDir = (0, _typepaths.getDevTypesPath)(baseDir, distDir); + if (devTypesDir) { + fileNames = fileNames.filter((fileName)=>!fileName.startsWith(devTypesDir)); + } + // Apply debug build paths filter if specified + if (dirs && debugBuildPaths) { + const { app: appDir, pages: pagesDir } = dirs; + const { app: debugAppPaths, pages: debugPagePaths } = debugBuildPaths; + fileNames = fileNames.filter((fileName)=>{ + // Check if file is in app directory + if (appDir && fileName.startsWith(appDir + _path.default.sep)) { + // If debugAppPaths is undefined, include all app files + if (debugAppPaths === undefined) { + return true; + } + // If debugAppPaths is empty array, exclude all app files + if (debugAppPaths.length === 0) { + return false; + } + // Check if file matches any of the debug paths + const relativeToApp = fileName.slice(appDir.length); + return fileMatchesDebugPaths(relativeToApp, debugAppPaths); + } + // Check if file is in pages directory + if (pagesDir && fileName.startsWith(pagesDir + _path.default.sep)) { + // If debugPagePaths is undefined, include all pages files + if (debugPagePaths === undefined) { + return true; + } + // If debugPagePaths is empty array, exclude all pages files + if (debugPagePaths.length === 0) { + return false; + } + // Check if file matches any of the debug paths + const relativeToPages = fileName.slice(pagesDir.length); + return fileMatchesDebugPaths(relativeToPages, debugPagePaths); + } + // Keep files outside app/pages directories (shared code, etc.) + return true; + }); + } + if (fileNames.length < 1) { + return { + hasWarnings: false, + inputFilesCount: 0, + totalFilesCount: 0, + incremental: false + }; + } + const requiredConfig = (0, _writeConfigurationDefaults.getRequiredConfiguration)(typescript); + const options = { + ...requiredConfig, + ...effectiveConfiguration.options, + declarationMap: false, + emitDeclarationOnly: false, + noEmit: true + }; + let program; + let incremental = false; + if ((options.incremental || options.composite) && cacheDir) { + if (options.composite) { + (0, _log.warn)('TypeScript project references are not fully supported. Attempting to build in incremental mode.'); + } + incremental = true; + program = typescript.createIncrementalProgram({ + rootNames: fileNames, + options: { + ...options, + composite: false, + incremental: true, + tsBuildInfoFile: _path.default.join(cacheDir, '.tsbuildinfo') + } + }); + } else { + program = typescript.createProgram(fileNames, options); + } + const result = program.emit(); + const ignoreRegex = [ + // matches **/__(tests|mocks)__/** + /[\\/]__(?:tests|mocks)__[\\/]/, + // matches **/*.(spec|test).* + /(?<=[\\/.])(?:spec|test)\.[^\\/]+$/ + ]; + const regexIgnoredFile = new RegExp(ignoreRegex.map((r)=>r.source).join('|')); + const allDiagnostics = typescript.getPreEmitDiagnostics(program).concat(result.diagnostics).filter((d)=>!(d.file && regexIgnoredFile.test(d.file.fileName))); + const firstError = allDiagnostics.find((d)=>d.category === typescript.DiagnosticCategory.Error && Boolean(d.file)) ?? allDiagnostics.find((d)=>d.category === typescript.DiagnosticCategory.Error); + // In test mode, we want to check all diagnostics, not just the first one. + if (process.env.__NEXT_TEST_MODE) { + if (firstError) { + const allErrors = allDiagnostics.filter((d)=>d.category === typescript.DiagnosticCategory.Error).map((d)=>'[Test Mode] ' + (0, _diagnosticFormatter.getFormattedDiagnostic)(typescript, baseDir, distDir, d, isAppDirEnabled)); + console.error('\n\n===== TS errors =====\n\n' + allErrors.join('\n\n') + '\n\n===== TS errors =====\n\n'); + // Make sure all stdout is flushed before we exit. + await new Promise((resolve)=>setTimeout(resolve, 100)); + } + } + if (firstError) { + throw Object.defineProperty(new _compileerror.CompileError((0, _diagnosticFormatter.getFormattedDiagnostic)(typescript, baseDir, distDir, firstError, isAppDirEnabled)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + const warnings = allDiagnostics.filter((d)=>d.category === typescript.DiagnosticCategory.Warning).map((d)=>(0, _diagnosticFormatter.getFormattedDiagnostic)(typescript, baseDir, distDir, d, isAppDirEnabled)); + return { + hasWarnings: true, + warnings, + inputFilesCount: fileNames.length, + totalFilesCount: program.getSourceFiles().length, + incremental + }; +} + +//# sourceMappingURL=runTypeCheck.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/type-paths.js b/cli/app/node_modules/next/dist/lib/typescript/type-paths.js new file mode 100644 index 00000000000..38ad3534250 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/type-paths.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getDevTypesPath: null, + getTypeDefinitionGlobPatterns: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getDevTypesPath: function() { + return getDevTypesPath; + }, + getTypeDefinitionGlobPatterns: function() { + return getTypeDefinitionGlobPatterns; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getTypeDefinitionGlobPatterns(distDir) { + const distDirPosix = _path.default.win32.sep === _path.default.sep ? distDir.replaceAll(_path.default.win32.sep, _path.default.posix.sep) : distDir; + const typeGlobPatterns = [ + `${distDirPosix}/types/**/*.ts` + ]; + // Include both .next/types and .next/dev/types to avoid tsconfig churn when switching + // between dev/build modes + typeGlobPatterns.push(process.env.NODE_ENV === 'development' ? `${distDirPosix.replace(/\/dev$/, '')}/types/**/*.ts` : `${distDirPosix}/dev/types/**/*.ts`); + // Sort for consistent order + typeGlobPatterns.sort((a, b)=>a.length - b.length); + return typeGlobPatterns; +} +function getDevTypesPath(baseDir, distDir) { + const isDev = process.env.NODE_ENV === 'development'; + if (isDev) { + // In dev mode, dev types are the main types, so no need to filter + return null; + } + // In build mode, dev types are at "{baseDir}/{distDir}/dev/types" and should be filtered + return _path.default.join(baseDir, distDir, 'dev', 'types'); +} + +//# sourceMappingURL=type-paths.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js b/cli/app/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js new file mode 100644 index 00000000000..afc8e5d3072 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/writeAppTypeDeclarations.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "writeAppTypeDeclarations", { + enumerable: true, + get: function() { + return writeAppTypeDeclarations; + } +}); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _fs = require("fs"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function writeAppTypeDeclarations({ baseDir, distDir, imageImportsEnabled, hasPagesDir, hasAppDir, strictRouteTypes, typedRoutes }) { + // Reference `next` types + const appTypeDeclarations = _path.default.join(baseDir, 'next-env.d.ts'); + // Defaults EOL to system default + let eol = _os.default.EOL; + let currentContent; + try { + currentContent = await _fs.promises.readFile(appTypeDeclarations, 'utf8'); + // If file already exists then preserve its line ending + const lf = currentContent.indexOf('\n', /* skip first so we can lf - 1 */ 1); + if (lf !== -1) { + if (currentContent[lf - 1] === '\r') { + eol = '\r\n'; + } else { + eol = '\n'; + } + } + } catch {} + /** + * "Triple-slash directives" used to create typings files for Next.js projects + * using Typescript . + * + * @see https://www.typescriptlang.org/docs/handbook/triple-slash-directives.html + */ const lines = [ + // Include the core Next.js typings. + '/// ' + ]; + if (imageImportsEnabled) { + lines.push('/// '); + } + if (hasAppDir && hasPagesDir) { + lines.push('/// '); + } + const routeTypesPath = _path.default.posix.join(distDir.replaceAll(_path.default.win32.sep, _path.default.posix.sep), 'types/routes.d.ts'); + // Use ESM import instead of triple-slash reference for better ESLint compatibility + lines.push(`import "./${routeTypesPath}";`); + if (strictRouteTypes) { + const cacheLifePath = _path.default.posix.join(distDir.replaceAll(_path.default.win32.sep, _path.default.posix.sep), 'types/cache-life.d.ts'); + lines.push(`import "./${cacheLifePath}";`); + const routeValidatorPath = _path.default.posix.join(distDir.replaceAll(_path.default.win32.sep, _path.default.posix.sep), 'types/validator.ts'); + lines.push(`import "./${routeValidatorPath}";`); + if (typedRoutes === true) { + const linkTypesPath = _path.default.posix.join(distDir.replaceAll(_path.default.win32.sep, _path.default.posix.sep), 'types/link.d.ts'); + lines.push(`import "./${linkTypesPath}";`); + } + } + // Push the notice in. + lines.push('', '// NOTE: This file should not be edited', `// see https://nextjs.org/docs/${hasAppDir ? 'app' : 'pages'}/api-reference/config/typescript for more information.`); + const content = lines.join(eol) + eol; + // Avoids an un-necessary write on read-only fs + if (currentContent === content) { + return; + } + await _fs.promises.writeFile(appTypeDeclarations, content); +} + +//# sourceMappingURL=writeAppTypeDeclarations.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js b/cli/app/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js new file mode 100644 index 00000000000..0b6f5809fa0 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/typescript/writeConfigurationDefaults.js @@ -0,0 +1,391 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getRequiredConfiguration: null, + writeConfigurationDefaults: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getRequiredConfiguration: function() { + return getRequiredConfiguration; + }, + writeConfigurationDefaults: function() { + return writeConfigurationDefaults; + } +}); +const _fs = require("fs"); +const _picocolors = require("../picocolors"); +const _commentjson = /*#__PURE__*/ _interop_require_wildcard(require("next/dist/compiled/comment-json")); +const _semver = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/semver")); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _typepaths = require("./type-paths"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function getDesiredCompilerOptions(typescriptVersion, userTsConfig) { + var _userTsConfig_compilerOptions_module, _userTsConfig_compilerOptions, _userTsConfig_compilerOptions1; + // ModuleKind + const moduleKindESNext = 'esnext'; + const moduleKindES2020 = 'es2020'; + const moduleKindPreserve = 'preserve'; + const moduleKindNodeNext = 'nodenext'; + const moduleKindNode16 = 'node16'; + const moduleKindCommonJS = 'commonjs'; + const moduleKindAMD = 'amd'; + // ModuleResolutionKind + const moduleResolutionKindBundler = 'bundler'; + const moduleResolutionKindNode10 = 'node10'; + const moduleResolutionKindNode12 = 'node12'; + const moduleResolutionKindNodeJs = 'node'; + // Jsx + const jsxEmitReactJSX = 'react-jsx'; + return { + target: { + suggested: 'ES2017', + reason: 'For top-level `await`. Note: Next.js only polyfills for the esmodules target.' + }, + // These are suggested values and will be set when not present in the + // tsconfig.json + lib: { + suggested: [ + 'dom', + 'dom.iterable', + 'esnext' + ] + }, + allowJs: { + suggested: true + }, + skipLibCheck: { + suggested: true + }, + strict: { + suggested: false + }, + noEmit: { + suggested: true + }, + incremental: { + suggested: true + }, + // These values are required and cannot be changed by the user + // Keep this in sync with the webpack config + // 'parsedValue' matches the output value from ts.parseJsonConfigFileContent() + module: { + parsedValue: moduleKindESNext, + // All of these values work: + parsedValues: [ + _semver.default.gte(typescriptVersion, '5.4.0') && moduleKindPreserve, + moduleKindES2020, + moduleKindESNext, + moduleKindCommonJS, + moduleKindAMD, + moduleKindNodeNext, + moduleKindNode16 + ], + value: 'esnext', + reason: 'for dynamic import() support' + }, + // TODO: Semver check not needed once Next.js repo uses 5.4. + ..._semver.default.gte(typescriptVersion, '5.4.0') && (userTsConfig == null ? void 0 : (_userTsConfig_compilerOptions = userTsConfig.compilerOptions) == null ? void 0 : (_userTsConfig_compilerOptions_module = _userTsConfig_compilerOptions.module) == null ? void 0 : _userTsConfig_compilerOptions_module.toLowerCase()) === moduleKindPreserve ? { + } : { + esModuleInterop: { + value: true, + reason: 'requirement for SWC / babel' + }, + moduleResolution: { + // In TypeScript 5.0, `NodeJs` has renamed to `Node10` + parsedValue: moduleResolutionKindBundler, + // All of these values work: + parsedValues: [ + moduleResolutionKindNode10, + moduleResolutionKindNodeJs, + // only newer TypeScript versions have this field, it + // will be filtered for new versions of TypeScript + moduleResolutionKindNode12, + moduleKindNode16, + moduleKindNodeNext, + moduleResolutionKindBundler + ].filter((val)=>typeof val !== 'undefined'), + value: 'node', + reason: 'to match webpack resolution' + }, + resolveJsonModule: { + value: true, + reason: 'to match webpack resolution' + } + }, + ...(userTsConfig == null ? void 0 : (_userTsConfig_compilerOptions1 = userTsConfig.compilerOptions) == null ? void 0 : _userTsConfig_compilerOptions1.verbatimModuleSyntax) === true ? undefined : { + isolatedModules: { + value: true, + reason: 'requirement for SWC / Babel' + } + }, + jsx: { + parsedValue: jsxEmitReactJSX, + value: 'react-jsx', + reason: 'next.js uses the React automatic runtime' + } + }; +} +function getRequiredConfiguration(typescript) { + const res = {}; + const typescriptVersion = typescript.version; + const desiredCompilerOptions = getDesiredCompilerOptions(typescriptVersion); + for (const optionKey of Object.keys(desiredCompilerOptions)){ + const ev = desiredCompilerOptions[optionKey]; + if (!('value' in ev)) { + continue; + } + const value = ev.parsedValue ?? ev.value; + // Convert string values back to TypeScript enum values + if (optionKey === 'module' && typeof value === 'string') { + const moduleMap = { + esnext: typescript.ModuleKind.ESNext, + es2020: typescript.ModuleKind.ES2020, + ...typescript.ModuleKind.Preserve !== undefined ? { + preserve: typescript.ModuleKind.Preserve + } : {}, + nodenext: typescript.ModuleKind.NodeNext, + node16: typescript.ModuleKind.Node16, + commonjs: typescript.ModuleKind.CommonJS, + amd: typescript.ModuleKind.AMD + }; + res[optionKey] = moduleMap[value.toLowerCase()] ?? value; + } else if (optionKey === 'moduleResolution' && typeof value === 'string') { + const moduleResolutionMap = { + bundler: typescript.ModuleResolutionKind.Bundler, + node10: typescript.ModuleResolutionKind.Node10, + node12: typescript.ModuleResolutionKind.Node12, + node: typescript.ModuleResolutionKind.NodeJs + }; + res[optionKey] = moduleResolutionMap[value.toLowerCase()] ?? value; + } else if (optionKey === 'jsx' && typeof value === 'string') { + const jsxMap = { + 'react-jsx': typescript.JsxEmit.ReactJSX + }; + res[optionKey] = jsxMap[value.toLowerCase()] ?? value; + } else { + res[optionKey] = value; + } + } + return res; +} +const localDevTestFilesExcludeAction = 'NEXT_PRIVATE_LOCAL_DEV_TEST_FILES_EXCLUDE'; +async function writeConfigurationDefaults(typescriptVersion, tsConfigPath, isFirstTimeSetup, hasAppDir, distDir, hasPagesDir, strictRouteTypes) { + var _userTsConfig_compilerOptions; + if (isFirstTimeSetup) { + (0, _fs.writeFileSync)(tsConfigPath, '{}' + _os.default.EOL); + } + const userTsConfigContent = (0, _fs.readFileSync)(tsConfigPath, 'utf8'); + const userTsConfig = _commentjson.parse(userTsConfigContent); + // Bail automatic setup when the user has extended or referenced another config + if ('extends' in userTsConfig || 'references' in userTsConfig) { + return; + } + if ((userTsConfig == null ? void 0 : userTsConfig.compilerOptions) == null) { + userTsConfig.compilerOptions = {}; + isFirstTimeSetup = true; + } + const desiredCompilerOptions = getDesiredCompilerOptions(typescriptVersion, userTsConfig); + const suggestedActions = []; + const requiredActions = []; + for(const optionKey in desiredCompilerOptions){ + const check = desiredCompilerOptions[optionKey]; + if ('suggested' in check) { + if (!(optionKey in (userTsConfig == null ? void 0 : userTsConfig.compilerOptions))) { + userTsConfig.compilerOptions[optionKey] = check.suggested; + suggestedActions.push((0, _picocolors.cyan)(optionKey) + ' was set to ' + (0, _picocolors.bold)(check.suggested) + (check.reason ? ` (${check.reason})` : '')); + } + } else if ('value' in check) { + var _userTsConfig_compilerOptions1; + let existingValue = userTsConfig == null ? void 0 : (_userTsConfig_compilerOptions1 = userTsConfig.compilerOptions) == null ? void 0 : _userTsConfig_compilerOptions1[optionKey]; + if (typeof existingValue === 'string') { + existingValue = existingValue.toLowerCase(); + } + const shouldWriteRequiredValue = ()=>{ + // Check if the option has multiple allowed values + if (check.parsedValues) { + return !check.parsedValues.includes(existingValue); + } + // Check if the option has a single parsed value + if (check.parsedValue) { + return check.parsedValue !== existingValue; + } + // Fall back to direct value comparison + return check.value !== existingValue; + }; + if (shouldWriteRequiredValue()) { + if (!userTsConfig.compilerOptions) { + userTsConfig.compilerOptions = {}; + } + userTsConfig.compilerOptions[optionKey] = check.value; + requiredActions.push((0, _picocolors.cyan)(optionKey) + ' was set to ' + (0, _picocolors.bold)(check.value) + ` (${check.reason})`); + } + } else { + const _ = check; + } + } + // Get type definition glob patterns using shared utility to ensure consistency + // with other TypeScript infrastructure (e.g., runTypeCheck.ts) + const nextTypes = (0, _typepaths.getTypeDefinitionGlobPatterns)(distDir); + if (!('include' in userTsConfig)) { + const defaultInclude = hasAppDir && !strictRouteTypes ? [ + 'next-env.d.ts', + ...nextTypes, + '**/*.mts', + '**/*.ts', + '**/*.tsx' + ] : [ + 'next-env.d.ts', + '**/*.mts', + '**/*.ts', + '**/*.tsx' + ]; + userTsConfig.include = defaultInclude; + suggestedActions.push((0, _picocolors.cyan)('include') + ' was set to [' + (0, _picocolors.bold)(defaultInclude.map((type)=>`'${type}'`).join(', ')) + ']'); + } else if (hasAppDir && !strictRouteTypes) { + const missingFromResolved = []; + for (const type of nextTypes){ + if (!userTsConfig.include.includes(type)) { + missingFromResolved.push(type); + } + } + if (missingFromResolved.length > 0) { + if (!Array.isArray(userTsConfig.include)) { + userTsConfig.include = []; + } + missingFromResolved.forEach((item)=>{ + userTsConfig.include.push(item); + suggestedActions.push((0, _picocolors.cyan)('include') + ' was updated to add ' + (0, _picocolors.bold)(`'${item}'`)); + }); + } + } + // Enable the Next.js typescript plugin. + if (hasAppDir) { + var _userTsConfig_compilerOptions2; + // Check if the config or the resolved config has the plugin already. + const plugins = [ + ...Array.isArray(userTsConfig == null ? void 0 : userTsConfig.plugins) ? userTsConfig.plugins : [], + ...userTsConfig.compilerOptions && Array.isArray(userTsConfig.compilerOptions.plugins) ? userTsConfig.compilerOptions.plugins : [] + ]; + const hasNextPlugin = plugins.some(({ name })=>name === 'next'); + // If the TS config extends on another config, we can't add the `plugin` field + // because that will override the parent config's plugins. + // Instead we have to show a message to the user to add the plugin manually. + if (!userTsConfig.compilerOptions || plugins.length && !hasNextPlugin && 'extends' in userTsConfig && (!userTsConfig.compilerOptions || !userTsConfig.compilerOptions.plugins)) { + _log.info(`\nYour ${(0, _picocolors.bold)('tsconfig.json')} extends another configuration, which means we cannot add the Next.js TypeScript plugin automatically. To improve your development experience, we recommend adding the Next.js plugin (\`${(0, _picocolors.cyan)('"plugins": [{ "name": "next" }]')}\`) manually to your TypeScript configuration. Learn more: https://nextjs.org/docs/app/api-reference/config/typescript#the-typescript-plugin\n`); + } else if (!hasNextPlugin) { + if (!('plugins' in userTsConfig.compilerOptions)) { + userTsConfig.compilerOptions.plugins = []; + } + userTsConfig.compilerOptions.plugins.push({ + name: 'next' + }); + suggestedActions.push((0, _picocolors.cyan)('plugins') + ' was updated to add ' + (0, _picocolors.bold)(`{ name: 'next' }`)); + } + // If `strict` is set to `false` and `strictNullChecks` is set to `false`, + // then set `strictNullChecks` to `true`. + if (hasPagesDir && hasAppDir && !(userTsConfig == null ? void 0 : (_userTsConfig_compilerOptions2 = userTsConfig.compilerOptions) == null ? void 0 : _userTsConfig_compilerOptions2.strict) && !('strictNullChecks' in (userTsConfig == null ? void 0 : userTsConfig.compilerOptions))) { + userTsConfig.compilerOptions.strictNullChecks = true; + suggestedActions.push((0, _picocolors.cyan)('strictNullChecks') + ' was set to ' + (0, _picocolors.bold)(`true`)); + } + } + if (!('exclude' in userTsConfig)) { + userTsConfig.exclude = [ + 'node_modules' + ]; + suggestedActions.push((0, _picocolors.cyan)('exclude') + ' was set to ' + (0, _picocolors.bold)(`['node_modules']`)); + } + // During local development inside Next.js repo, exclude the test files coverage by the local tsconfig + if (process.env.NEXT_PRIVATE_LOCAL_DEV && userTsConfig.exclude) { + const tsGlob = '**/*.test.ts'; + const tsxGlob = '**/*.test.tsx'; + let hasUpdates = false; + if (!userTsConfig.exclude.includes(tsGlob)) { + userTsConfig.exclude.push(tsGlob); + hasUpdates = true; + } + if (!userTsConfig.exclude.includes(tsxGlob)) { + userTsConfig.exclude.push(tsxGlob); + hasUpdates = true; + } + if (hasUpdates) { + requiredActions.push(localDevTestFilesExcludeAction); + } + } + if (suggestedActions.length < 1 && requiredActions.length < 1) { + return; + } + (0, _fs.writeFileSync)(tsConfigPath, _commentjson.stringify(userTsConfig, null, 2) + _os.default.EOL); + _log.info(''); + if (isFirstTimeSetup) { + _log.info(`We detected TypeScript in your project and created a ${(0, _picocolors.cyan)('tsconfig.json')} file for you.`); + return; + } + _log.info(`We detected TypeScript in your project and reconfigured your ${(0, _picocolors.cyan)('tsconfig.json')} file for you.${((_userTsConfig_compilerOptions = userTsConfig.compilerOptions) == null ? void 0 : _userTsConfig_compilerOptions.strict) ? '' : ` Strict-mode is set to ${(0, _picocolors.cyan)('false')} by default.`}`); + if (suggestedActions.length) { + _log.info(`The following suggested values were added to your ${(0, _picocolors.cyan)('tsconfig.json')}. These values ${(0, _picocolors.cyan)('can be changed')} to fit your project's needs:\n`); + suggestedActions.forEach((action)=>_log.info(`\t- ${action}`)); + _log.info(''); + } + const requiredActionsToBeLogged = process.env.NEXT_PRIVATE_LOCAL_DEV ? requiredActions.filter((action)=>action !== localDevTestFilesExcludeAction) : requiredActions; + if (requiredActionsToBeLogged.length) { + _log.info(`The following ${(0, _picocolors.white)('mandatory changes')} were made to your ${(0, _picocolors.cyan)('tsconfig.json')}:\n`); + requiredActionsToBeLogged.forEach((action)=>_log.info(`\t- ${action}`)); + _log.info(''); + } +} + +//# sourceMappingURL=writeConfigurationDefaults.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/url.js b/cli/app/node_modules/next/dist/lib/url.js new file mode 100644 index 00000000000..73d5f3dc34e --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/url.js @@ -0,0 +1,75 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isFullStringUrl: null, + parseReqUrl: null, + parseUrl: null, + stripNextRscUnionQuery: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isFullStringUrl: function() { + return isFullStringUrl; + }, + parseReqUrl: function() { + return parseReqUrl; + }, + parseUrl: function() { + return parseUrl; + }, + stripNextRscUnionQuery: function() { + return stripNextRscUnionQuery; + } +}); +const _approuterheaders = require("../client/components/app-router-headers"); +const DUMMY_ORIGIN = 'http://n'; +function isFullStringUrl(url) { + return /https?:\/\//.test(url); +} +function parseUrl(url) { + let parsed = undefined; + try { + parsed = new URL(url, DUMMY_ORIGIN); + } catch {} + return parsed; +} +function parseReqUrl(url) { + const parsedUrl = parseUrl(url); + if (!parsedUrl) { + return; + } + const query = {}; + for (const key of parsedUrl.searchParams.keys()){ + const values = parsedUrl.searchParams.getAll(key); + query[key] = values.length > 1 ? values : values[0]; + } + const legacyUrl = { + query, + hash: parsedUrl.hash, + search: parsedUrl.search, + path: parsedUrl.pathname, + pathname: parsedUrl.pathname, + href: `${parsedUrl.pathname}${parsedUrl.search}${parsedUrl.hash}`, + host: '', + hostname: '', + auth: '', + protocol: '', + slashes: null, + port: '' + }; + return legacyUrl; +} +function stripNextRscUnionQuery(relativeUrl) { + const urlInstance = new URL(relativeUrl, DUMMY_ORIGIN); + urlInstance.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY); + return urlInstance.pathname + urlInstance.search; +} + +//# sourceMappingURL=url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/verify-partytown-setup.js b/cli/app/node_modules/next/dist/lib/verify-partytown-setup.js new file mode 100644 index 00000000000..9903c38b15d --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/verify-partytown-setup.js @@ -0,0 +1,115 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "verifyPartytownSetup", { + enumerable: true, + get: function() { + return verifyPartytownSetup; + } +}); +const _fs = require("fs"); +const _picocolors = require("./picocolors"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _hasnecessarydependencies = require("./has-necessary-dependencies"); +const _fileexists = require("./file-exists"); +const _fatalerror = require("./fatal-error"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _getpkgmanager = require("./helpers/get-pkg-manager"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +async function missingDependencyError(dir) { + const packageManager = (0, _getpkgmanager.getPkgManager)(dir); + throw Object.defineProperty(new _fatalerror.FatalError((0, _picocolors.bold)((0, _picocolors.red)("It looks like you're trying to use Partytown with next/script but do not have the required package(s) installed.")) + '\n\n' + (0, _picocolors.bold)(`Please install Partytown by running:`) + '\n\n' + `\t${(0, _picocolors.bold)((0, _picocolors.cyan)((packageManager === 'yarn' ? 'yarn add --dev' : packageManager === 'pnpm' ? 'pnpm install --save-dev' : 'npm install --save-dev') + ' @builder.io/partytown'))}` + '\n\n' + (0, _picocolors.bold)(`If you are not trying to use Partytown, please disable the experimental ${(0, _picocolors.cyan)('"nextScriptWorkers"')} flag in next.config.js.`) + '\n'), "__NEXT_ERROR_CODE", { + value: "E552", + enumerable: false, + configurable: true + }); +} +async function copyPartytownStaticFiles(deps, staticDir) { + const partytownLibDir = _path.default.join(staticDir, '~partytown'); + const hasPartytownLibDir = await (0, _fileexists.fileExists)(partytownLibDir, _fileexists.FileType.Directory); + if (hasPartytownLibDir) { + await _fs.promises.rm(partytownLibDir, { + recursive: true, + force: true + }); + } + const { copyLibFiles } = await Promise.resolve(require(_path.default.join(deps.resolved.get('@builder.io/partytown'), '../utils'))); + await copyLibFiles(partytownLibDir); +} +async function verifyPartytownSetup(dir, targetDir) { + try { + var _partytownDeps_missing; + const partytownDeps = (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, [ + { + file: '@builder.io/partytown', + pkg: '@builder.io/partytown', + exportsRestrict: false + } + ]); + if (((_partytownDeps_missing = partytownDeps.missing) == null ? void 0 : _partytownDeps_missing.length) > 0) { + await missingDependencyError(dir); + } else { + try { + await copyPartytownStaticFiles(partytownDeps, targetDir); + } catch (err) { + _log.warn(`Partytown library files could not be copied to the static directory. Please ensure that ${(0, _picocolors.bold)((0, _picocolors.cyan)('@builder.io/partytown'))} is installed as a dependency.`); + } + } + } catch (err) { + // Don't show a stack trace when there is an error due to missing dependencies + if (err instanceof _fatalerror.FatalError) { + console.error(err.message); + // Throw to allow finally blocks to run (e.g., telemetry flush) + throw err; + } + throw err; + } +} + +//# sourceMappingURL=verify-partytown-setup.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/verify-typescript-setup.js b/cli/app/node_modules/next/dist/lib/verify-typescript-setup.js new file mode 100644 index 00000000000..caa1e6ad592 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/verify-typescript-setup.js @@ -0,0 +1,228 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "verifyAndRunTypeScript", { + enumerable: true, + get: function() { + return verifyAndRunTypeScript; + } +}); +const _picocolors = require("./picocolors"); +const _path = /*#__PURE__*/ _interop_require_wildcard(require("path")); +const _hasnecessarydependencies = require("./has-necessary-dependencies"); +const _semver = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/semver")); +const _compileerror = require("./compile-error"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _getTypeScriptIntent = require("./typescript/getTypeScriptIntent"); +const _writeAppTypeDeclarations = require("./typescript/writeAppTypeDeclarations"); +const _writeConfigurationDefaults = require("./typescript/writeConfigurationDefaults"); +const _installdependencies = require("./install-dependencies"); +const _ciinfo = require("../server/ci-info"); +const _missingDependencyError = require("./typescript/missingDependencyError"); +const _resolvefrom = require("./resolve-from"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const typescriptPackage = { + file: 'typescript/lib/typescript.js', + pkg: 'typescript', + exportsRestrict: true +}; +const requiredPackages = [ + typescriptPackage, + { + file: '@types/react/index.d.ts', + pkg: '@types/react', + exportsRestrict: true + }, + { + file: '@types/node/index.d.ts', + pkg: '@types/node', + exportsRestrict: true + } +]; +/** + * Check if @typescript/native-preview is installed as an alternative TypeScript compiler. + * This is a Go-based native TypeScript compiler that can be used instead of the standard + * TypeScript package for faster compilation. + */ function hasNativeTypeScriptPreview(dir) { + try { + (0, _resolvefrom.resolveFrom)(dir, '@typescript/native-preview/package.json'); + return true; + } catch { + return false; + } +} +async function verifyAndRunTypeScript({ dir, distDir, cacheDir, strictRouteTypes, tsconfigPath, shouldRunTypeCheck, typedRoutes, disableStaticImages, hasAppDir, hasPagesDir, appDir, pagesDir, debugBuildPaths }) { + const tsConfigFileName = tsconfigPath || 'tsconfig.json'; + const resolvedTsConfigPath = _path.default.join(dir, tsConfigFileName); + // Construct intentDirs from appDir and pagesDir for getTypeScriptIntent + const intentDirs = [ + pagesDir, + appDir + ].filter(Boolean); + try { + var _deps_missing, _deps_missing1; + // Check if the project uses TypeScript: + const intent = await (0, _getTypeScriptIntent.getTypeScriptIntent)(dir, intentDirs, tsConfigFileName); + if (!intent) { + return { + version: null + }; + } + // Check if @typescript/native-preview is installed as an alternative + const hasNativePreview = hasNativeTypeScriptPreview(dir); + // Ensure TypeScript and necessary `@types/*` are installed: + let deps = (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, requiredPackages); + // If @typescript/native-preview is installed and only the typescript package is missing, + // we can skip auto-installing typescript since the native preview provides TS compilation. + // However, we still need @types/react and @types/node for type checking. + if (hasNativePreview && ((_deps_missing = deps.missing) == null ? void 0 : _deps_missing.length) > 0) { + const missingWithoutTypescript = deps.missing.filter((dep)=>dep.pkg !== 'typescript'); + const onlyTypescriptMissing = deps.missing.length === 1 && deps.missing[0].pkg === 'typescript'; + if (onlyTypescriptMissing) { + // @typescript/native-preview is installed and only typescript is missing + // Skip installation and return early - the project can use the native preview + _log.info(`Detected ${(0, _picocolors.bold)('@typescript/native-preview')} as TypeScript compiler. ` + `Some Next.js TypeScript features (like type checking during build) require the standard ${(0, _picocolors.bold)('typescript')} package.`); + // Still write type declarations since they don't require the typescript package + await (0, _writeAppTypeDeclarations.writeAppTypeDeclarations)({ + baseDir: dir, + distDir, + imageImportsEnabled: !disableStaticImages, + hasPagesDir, + hasAppDir, + strictRouteTypes, + typedRoutes + }); + return { + version: null + }; + } + // If there are other missing deps besides typescript, only install those + if (missingWithoutTypescript.length > 0 && missingWithoutTypescript.length < deps.missing.length) { + deps.missing = missingWithoutTypescript; + } + } + if (((_deps_missing1 = deps.missing) == null ? void 0 : _deps_missing1.length) > 0) { + if (_ciinfo.isCI) { + // we don't attempt auto install in CI to avoid side-effects + // and instead log the error for installing needed packages + (0, _missingDependencyError.missingDepsError)(dir, deps.missing); + } + console.log((0, _picocolors.bold)((0, _picocolors.yellow)(`It looks like you're trying to use TypeScript but do not have the required package(s) installed.`)) + '\n' + 'Installing dependencies' + '\n\n' + (0, _picocolors.bold)('If you are not trying to use TypeScript, please remove the ' + (0, _picocolors.cyan)('tsconfig.json') + ' file from your package root (and any TypeScript files in your app and pages directories).') + '\n'); + await (0, _installdependencies.installDependencies)(dir, deps.missing, true).catch((err)=>{ + if (err && typeof err === 'object' && 'command' in err) { + console.error(`Failed to install required TypeScript dependencies, please install them manually to continue:\n` + err.command + '\n'); + } + throw err; + }); + deps = (0, _hasnecessarydependencies.hasNecessaryDependencies)(dir, requiredPackages); + } + // Load TypeScript after we're sure it exists: + const tsPackageJsonPath = deps.resolved.get((0, _path.join)('typescript', 'package.json')); + const typescriptPackageJson = require(tsPackageJsonPath); + const typescriptVersion = typescriptPackageJson.version; + if (_semver.default.lt(typescriptVersion, '5.1.0')) { + _log.warn(`Minimum recommended TypeScript version is v5.1.0, older versions can potentially be incompatible with Next.js. Detected: ${typescriptVersion}`); + } + // Reconfigure (or create) the user's `tsconfig.json` for them: + await (0, _writeConfigurationDefaults.writeConfigurationDefaults)(typescriptVersion, resolvedTsConfigPath, intent.firstTimeSetup, hasAppDir, distDir, hasPagesDir, strictRouteTypes); + // Write out the necessary `next-env.d.ts` file to correctly register + // Next.js' types: + await (0, _writeAppTypeDeclarations.writeAppTypeDeclarations)({ + baseDir: dir, + distDir, + imageImportsEnabled: !disableStaticImages, + hasPagesDir, + hasAppDir, + strictRouteTypes, + typedRoutes + }); + let result; + if (shouldRunTypeCheck) { + const { runTypeCheck } = require('./typescript/runTypeCheck'); + // Install native bindings so that code frame rendering works in the worker + const { installBindings } = require('../build/swc/install-bindings'); + await installBindings(); + const tsPath = deps.resolved.get('typescript'); + const typescript = await Promise.resolve(require(tsPath)); + // Verify the project passes type-checking before we go to webpack phase: + result = await runTypeCheck(typescript, dir, distDir, resolvedTsConfigPath, cacheDir, hasAppDir, { + app: appDir, + pages: pagesDir + }, debugBuildPaths); + } + return { + result, + version: typescriptVersion + }; + } catch (err) { + // These are special errors that should not show a stack trace: + if (err instanceof _compileerror.CompileError) { + console.error((0, _picocolors.red)('Failed to type check.\n')); + console.error(err.message); + process.exit(1); + } + /** + * verifyAndRunTypeScript can be either invoked directly in the main thread (during next dev / next lint) + * or run in a worker (during next build). In the latter case, we need to print the error message, as the + * parent process will only receive an `Jest worker encountered 1 child process exceptions, exceeding retry limit`. + */ // we are in a worker, print the error message and exit the process + if (process.env.IS_NEXT_WORKER) { + if (err instanceof Error) { + console.error(err.message); + } else { + console.error(err); + } + process.exit(1); + } + // we are in the main thread, throw the error and it will be handled by the caller + throw err; + } +} + +//# sourceMappingURL=verify-typescript-setup.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/wait.js b/cli/app/node_modules/next/dist/lib/wait.js new file mode 100644 index 00000000000..b620eefc75b --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/wait.js @@ -0,0 +1,19 @@ +/** + * Wait for a given number of milliseconds and then resolve. + * + * @param ms the number of milliseconds to wait + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "wait", { + enumerable: true, + get: function() { + return wait; + } +}); +async function wait(ms) { + return new Promise((resolve)=>setTimeout(resolve, ms)); +} + +//# sourceMappingURL=wait.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/lib/with-promise-cache.js b/cli/app/node_modules/next/dist/lib/with-promise-cache.js new file mode 100644 index 00000000000..3ff892fa031 --- /dev/null +++ b/cli/app/node_modules/next/dist/lib/with-promise-cache.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "withPromiseCache", { + enumerable: true, + get: function() { + return withPromiseCache; + } +}); +function withPromiseCache(cache, fn, getKey) { + return (...values)=>{ + const key = getKey ? getKey(...values) : values[0]; + let p = cache.get(key); + if (!p) { + p = fn(...values); + p.catch(()=>cache.remove(key)); + cache.set(key, p); + } + return p; + }; +} + +//# sourceMappingURL=with-promise-cache.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/attach-nodejs-debugger-middleware.js b/cli/app/node_modules/next/dist/next-devtools/server/attach-nodejs-debugger-middleware.js new file mode 100644 index 00000000000..316d6e4cd95 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/attach-nodejs-debugger-middleware.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getAttachNodejsDebuggerMiddleware", { + enumerable: true, + get: function() { + return getAttachNodejsDebuggerMiddleware; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _middlewareresponse = require("./middleware-response"); +const _inspector = /*#__PURE__*/ _interop_require_wildcard._(require("inspector")); +function getAttachNodejsDebuggerMiddleware() { + return async function(req, res, next) { + const { pathname } = new URL(`http://n${req.url}`); + if (pathname !== '/__nextjs_attach-nodejs-inspector') { + return next(); + } + try { + const isInspecting = _inspector.url() !== undefined; + const debugPort = process.debugPort; + if (!isInspecting) { + // Node.js will already log that the inspector is listening. + _inspector.open(debugPort); + } + const inspectorURLRaw = _inspector.url(); + if (inspectorURLRaw === undefined) { + // could not open, possibly because already in use. + return _middlewareresponse.middlewareResponse.badRequest(res, `Failed to open port "${debugPort}". Address may be already in use.`); + } + const inspectorURL = new URL(inspectorURLRaw); + const debugInfoListResponse = await fetch(`http://${inspectorURL.host}/json/list`); + const debugInfoList = await debugInfoListResponse.json(); + if (!Array.isArray(debugInfoList) || debugInfoList.length === 0) { + throw Object.defineProperty(new Error('No debug targets found'), "__NEXT_ERROR_CODE", { + value: "E927", + enumerable: false, + configurable: true + }); + } + return _middlewareresponse.middlewareResponse.json(res, debugInfoList[0].devtoolsFrontendUrl); + } catch (error) { + return _middlewareresponse.middlewareResponse.internalServerError(res); + } + }; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=attach-nodejs-debugger-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/dev-indicator-middleware.js b/cli/app/node_modules/next/dist/next-devtools/server/dev-indicator-middleware.js new file mode 100644 index 00000000000..b1ac892d974 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/dev-indicator-middleware.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getDisableDevIndicatorMiddleware", { + enumerable: true, + get: function() { + return getDisableDevIndicatorMiddleware; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _middlewareresponse = require("./middleware-response"); +const _log = /*#__PURE__*/ _interop_require_wildcard._(require("../../build/output/log")); +const _devindicatorserverstate = require("../../server/dev/dev-indicator-server-state"); +const DISABLE_DEV_INDICATOR_PREFIX = '/__nextjs_disable_dev_indicator'; +const COOLDOWN_TIME_MS = process.env.__NEXT_DEV_INDICATOR_COOLDOWN_MS ? parseInt(process.env.__NEXT_DEV_INDICATOR_COOLDOWN_MS) : 1000 * 60 * 60 * 24; +function getDisableDevIndicatorMiddleware() { + return async function disableDevIndicatorMiddleware(req, res, next) { + try { + const { pathname } = new URL(`http://n${req.url}`); + if (!pathname.startsWith(DISABLE_DEV_INDICATOR_PREFIX)) { + return next(); + } + if (req.method !== 'POST') { + return _middlewareresponse.middlewareResponse.methodNotAllowed(res); + } + _devindicatorserverstate.devIndicatorServerState.disabledUntil = Date.now() + COOLDOWN_TIME_MS; + return _middlewareresponse.middlewareResponse.noContent(res); + } catch (err) { + _log.error('Failed to disable the dev indicator:', err instanceof Error ? err.message : err); + return _middlewareresponse.middlewareResponse.internalServerError(res); + } + }; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=dev-indicator-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/devtools-config-middleware.js b/cli/app/node_modules/next/dist/next-devtools/server/devtools-config-middleware.js new file mode 100644 index 00000000000..41d75649b77 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/devtools-config-middleware.js @@ -0,0 +1,82 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + devToolsConfigMiddleware: null, + getDevToolsConfig: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + devToolsConfigMiddleware: function() { + return devToolsConfigMiddleware; + }, + getDevToolsConfig: function() { + return getDevToolsConfig; + } +}); +const _fs = require("fs"); +const _promises = require("fs/promises"); +const _path = require("path"); +const _middlewareresponse = require("./middleware-response"); +const _devtoolsconfigschema = require("../shared/devtools-config-schema"); +const _deepmerge = require("../shared/deepmerge"); +const DEVTOOLS_CONFIG_FILENAME = 'next-devtools-config.json'; +const DEVTOOLS_CONFIG_MIDDLEWARE_ENDPOINT = '/__nextjs_devtools_config'; +function devToolsConfigMiddleware({ distDir, sendUpdateSignal }) { + const configPath = (0, _path.join)(distDir, 'cache', DEVTOOLS_CONFIG_FILENAME); + return async function devToolsConfigMiddlewareHandler(req, res, next) { + const { pathname } = new URL(`http://n${req.url}`); + if (pathname !== DEVTOOLS_CONFIG_MIDDLEWARE_ENDPOINT) { + return next(); + } + if (req.method !== 'POST') { + return _middlewareresponse.middlewareResponse.methodNotAllowed(res); + } + const currentConfig = await getDevToolsConfig(distDir); + const chunks = []; + for await (const chunk of req){ + chunks.push(Buffer.from(chunk)); + } + let body = Buffer.concat(chunks).toString('utf8'); + try { + body = JSON.parse(body); + } catch (error) { + console.error('[Next.js DevTools] Invalid config body passed:', error); + return _middlewareresponse.middlewareResponse.badRequest(res); + } + const validation = _devtoolsconfigschema.devToolsConfigSchema.safeParse(body); + if (!validation.success) { + console.error('[Next.js DevTools] Invalid config passed:', validation.error.message); + return _middlewareresponse.middlewareResponse.badRequest(res); + } + const newConfig = (0, _deepmerge.deepMerge)(currentConfig, validation.data); + await (0, _promises.writeFile)(configPath, JSON.stringify(newConfig, null, 2)); + sendUpdateSignal(newConfig); + return _middlewareresponse.middlewareResponse.noContent(res); + }; +} +async function getDevToolsConfig(distDir) { + const configPath = (0, _path.join)(distDir, 'cache', DEVTOOLS_CONFIG_FILENAME); + if (!(0, _fs.existsSync)(configPath)) { + await (0, _promises.mkdir)((0, _path.dirname)(configPath), { + recursive: true + }); + await (0, _promises.writeFile)(configPath, JSON.stringify({})); + return {}; + } + return JSON.parse(await (0, _promises.readFile)(configPath, 'utf8')); +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=devtools-config-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/font/get-dev-overlay-font-middleware.js b/cli/app/node_modules/next/dist/next-devtools/server/font/get-dev-overlay-font-middleware.js new file mode 100644 index 00000000000..d9b672eb1fa --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/font/get-dev-overlay-font-middleware.js @@ -0,0 +1,71 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getDevOverlayFontMiddleware", { + enumerable: true, + get: function() { + return getDevOverlayFontMiddleware; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _path = /*#__PURE__*/ _interop_require_default._(require("path")); +const _promises = /*#__PURE__*/ _interop_require_wildcard._(require("fs/promises")); +const _fs = require("fs"); +const _log = /*#__PURE__*/ _interop_require_wildcard._(require("../../../build/output/log")); +const _middlewareresponse = require("../middleware-response"); +const FONT_PREFIX = '/__nextjs_font/'; +const VALID_FONTS = [ + 'geist-latin-ext.woff2', + 'geist-mono-latin-ext.woff2', + 'geist-latin.woff2', + 'geist-mono-latin.woff2' +]; +const FONT_HEADERS = { + 'Content-Type': 'font/woff2', + 'Cache-Control': 'public, max-age=31536000, immutable' +}; +function getDevOverlayFontMiddleware() { + return async function devOverlayFontMiddleware(req, res, next) { + try { + const { pathname } = new URL(`http://n${req.url}`); + if (!pathname.startsWith(FONT_PREFIX)) { + return next(); + } + const fontFile = pathname.replace(FONT_PREFIX, ''); + if (!VALID_FONTS.includes(fontFile)) { + return _middlewareresponse.middlewareResponse.notFound(res); + } + const fontPath = _path.default.resolve(__dirname, fontFile); + const fileExists = await checkFileExists(fontPath); + if (!fileExists) { + return _middlewareresponse.middlewareResponse.notFound(res); + } + const fontData = await _promises.readFile(fontPath); + Object.entries(FONT_HEADERS).forEach(([key, value])=>{ + res.setHeader(key, value); + }); + res.end(fontData); + } catch (err) { + _log.error('Failed to serve font:', err instanceof Error ? err.message : err); + return _middlewareresponse.middlewareResponse.internalServerError(res); + } + }; +} +async function checkFileExists(filePath) { + try { + await _promises.access(filePath, _fs.constants.F_OK); + return true; + } catch { + return false; + } +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=get-dev-overlay-font-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/get-next-error-feedback-middleware.js b/cli/app/node_modules/next/dist/next-devtools/server/get-next-error-feedback-middleware.js new file mode 100644 index 00000000000..d901317d384 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/get-next-error-feedback-middleware.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getNextErrorFeedbackMiddleware", { + enumerable: true, + get: function() { + return getNextErrorFeedbackMiddleware; + } +}); +const _errorfeedback = require("../../telemetry/events/error-feedback"); +const _middlewareresponse = require("./middleware-response"); +function getNextErrorFeedbackMiddleware(telemetry) { + return async function(req, res, next) { + const { pathname, searchParams } = new URL(`http://n${req.url}`); + if (pathname !== '/__nextjs_error_feedback') { + return next(); + } + try { + const errorCode = searchParams.get('errorCode'); + const wasHelpful = searchParams.get('wasHelpful'); + if (!errorCode || !wasHelpful) { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + await telemetry.record((0, _errorfeedback.eventErrorFeedback)({ + errorCode, + wasHelpful: wasHelpful === 'true' + })); + return _middlewareresponse.middlewareResponse.noContent(res); + } catch (error) { + return _middlewareresponse.middlewareResponse.internalServerError(res); + } + }; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=get-next-error-feedback-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/launch-editor.js b/cli/app/node_modules/next/dist/next-devtools/server/launch-editor.js new file mode 100644 index 00000000000..f02e964938d --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/launch-editor.js @@ -0,0 +1,469 @@ +/** + * MIT License + * + * Copyright (c) 2015-present, Facebook, Inc. + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + escapeApplescriptStringFragment: null, + launchEditor: null, + openFileInEditor: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + escapeApplescriptStringFragment: function() { + return escapeApplescriptStringFragment; + }, + launchEditor: function() { + return launchEditor; + }, + openFileInEditor: function() { + return openFileInEditor; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _picocolors = require("../../lib/picocolors"); +const _child_process = /*#__PURE__*/ _interop_require_default._(require("child_process")); +const _fs = /*#__PURE__*/ _interop_require_default._(require("fs")); +const _promises = /*#__PURE__*/ _interop_require_default._(require("fs/promises")); +const _os = /*#__PURE__*/ _interop_require_default._(require("os")); +const _path = /*#__PURE__*/ _interop_require_default._(require("path")); +const _url = require("url"); +const _shellquote = /*#__PURE__*/ _interop_require_default._(require("next/dist/compiled/shell-quote")); +function isTerminalEditor(editor) { + switch(editor){ + case 'vi': + case 'vim': + case 'nvim': + case 'emacs': + case 'nano': + { + return true; + } + default: + {} + } + return false; +} +// Map from full process name to binary that starts the process +// We can't just re-use full process name, because it will spawn a new instance +// of the app every time +const COMMON_EDITORS_MACOS = { + '/Applications/Atom.app/Contents/MacOS/Atom': 'atom', + '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta': '/Applications/Atom Beta.app/Contents/MacOS/Atom Beta', + '/Applications/Brackets.app/Contents/MacOS/Brackets': 'brackets', + '/Applications/Sublime Text.app/Contents/MacOS/Sublime Text': '/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl', + '/Applications/Sublime Text Dev.app/Contents/MacOS/Sublime Text': '/Applications/Sublime Text Dev.app/Contents/SharedSupport/bin/subl', + '/Applications/Sublime Text 2.app/Contents/MacOS/Sublime Text 2': '/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl', + '/Applications/Visual Studio Code.app/Contents/MacOS/Electron': '/Applications/Visual Studio Code.app/Contents/Resources/app/bin/code', + '/Applications/Visual Studio Code - Insiders.app/Contents/MacOS/Electron': '/Applications/Visual Studio Code - Insiders.app/Contents/Resources/app/bin/code', + '/Applications/VSCodium.app/Contents/MacOS/Electron': '/Applications/VSCodium.app/Contents/Resources/app/bin/code', + '/Applications/AppCode.app/Contents/MacOS/appcode': '/Applications/AppCode.app/Contents/MacOS/appcode', + '/Applications/CLion.app/Contents/MacOS/clion': '/Applications/CLion.app/Contents/MacOS/clion', + '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea': '/Applications/IntelliJ IDEA.app/Contents/MacOS/idea', + '/Applications/PhpStorm.app/Contents/MacOS/phpstorm': '/Applications/PhpStorm.app/Contents/MacOS/phpstorm', + '/Applications/PyCharm.app/Contents/MacOS/pycharm': '/Applications/PyCharm.app/Contents/MacOS/pycharm', + '/Applications/PyCharm CE.app/Contents/MacOS/pycharm': '/Applications/PyCharm CE.app/Contents/MacOS/pycharm', + '/Applications/RubyMine.app/Contents/MacOS/rubymine': '/Applications/RubyMine.app/Contents/MacOS/rubymine', + '/Applications/WebStorm.app/Contents/MacOS/webstorm': '/Applications/WebStorm.app/Contents/MacOS/webstorm', + '/Applications/MacVim.app/Contents/MacOS/MacVim': 'mvim', + '/Applications/GoLand.app/Contents/MacOS/goland': '/Applications/GoLand.app/Contents/MacOS/goland', + '/Applications/Rider.app/Contents/MacOS/rider': '/Applications/Rider.app/Contents/MacOS/rider', + '/Applications/Cursor.app/Contents/MacOS/Cursor': '/Applications/Cursor.app/Contents/MacOS/Cursor' +}; +const COMMON_EDITORS_LINUX = { + atom: 'atom', + Brackets: 'brackets', + code: 'code', + 'code-insiders': 'code-insiders', + vscodium: 'vscodium', + emacs: 'emacs', + gvim: 'gvim', + 'idea.sh': 'idea', + 'phpstorm.sh': 'phpstorm', + 'pycharm.sh': 'pycharm', + 'rubymine.sh': 'rubymine', + sublime_text: 'sublime_text', + vim: 'vim', + nvim: 'nvim', + 'webstorm.sh': 'webstorm', + 'goland.sh': 'goland', + 'rider.sh': 'rider' +}; +const COMMON_EDITORS_WIN = [ + 'Brackets.exe', + 'Code.exe', + 'Code - Insiders.exe', + 'VSCodium.exe', + 'atom.exe', + 'sublime_text.exe', + 'notepad++.exe', + 'clion.exe', + 'clion64.exe', + 'idea.exe', + 'idea64.exe', + 'phpstorm.exe', + 'phpstorm64.exe', + 'pycharm.exe', + 'pycharm64.exe', + 'rubymine.exe', + 'rubymine64.exe', + 'webstorm.exe', + 'webstorm64.exe', + 'goland.exe', + 'goland64.exe', + 'rider.exe', + 'rider64.exe' +]; +// Transpiled version of: /^([A-Za-z]:[/\\])?[\p{L}0-9/.\-_\\]+$/u +// Non-transpiled version requires support for Unicode property regex. Allows +// alphanumeric characters, periods, dashes, slashes, and underscores. +const WINDOWS_FILE_NAME_ACCESS_LIST = /^([A-Za-z]:[/\\])?(?:[\x2D-9A-Z\\_a-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0560-\u0588\u05D0-\u05EA\u05EF-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1878\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1C90-\u1CBA\u1CBD-\u1CBF\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312F\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEF\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7B9\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA8FE\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF40\uDF42-\uDF49\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE35\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2\uDD00-\uDD23\uDF00-\uDF1C\uDF27\uDF30-\uDF45]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD44\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF1A]|\uD806[\uDC00-\uDC2B\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDE9D\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46\uDD60-\uDD65\uDD67\uDD68\uDD6A-\uDD89\uDD98\uDEE0-\uDEF2]|\uD808[\uDC00-\uDF99]|\uD809[\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDE40-\uDE7F\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFF1]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D])+$/; +function getArgumentsForLineNumber(editor, fileName, line1, column1) { + const editorBasename = _path.default.basename(editor).replace(/\.(exe|cmd|bat)$/i, ''); + switch(editorBasename){ + case 'atom': + case 'Atom': + case 'Atom Beta': + case 'subl': + case 'sublime': + case 'sublime_text': + { + return [ + fileName + ':' + line1 + ':' + column1 + ]; + } + case 'wstorm': + case 'charm': + { + return [ + fileName + ':' + line1 + ]; + } + case 'notepad++': + { + return [ + '-n' + line1, + '-c' + column1, + fileName + ]; + } + case 'vim': + case 'nvim': + case 'mvim': + case 'joe': + case 'gvim': + { + return [ + '+' + line1, + fileName + ]; + } + case 'emacs': + case 'emacsclient': + { + return [ + '+' + line1 + ':' + column1, + fileName + ]; + } + case 'rmate': + case 'mate': + case 'mine': + { + return [ + '--line', + line1.toString(), + fileName + ]; + } + case 'code': + case 'Code': + case 'Cursor': + case 'code-insiders': + case 'Code - Insiders': + case 'vscodium': + case 'VSCodium': + { + return [ + '-g', + fileName + ':' + line1 + ':' + column1 + ]; + } + case 'appcode': + case 'clion': + case 'clion64': + case 'idea': + case 'idea64': + case 'phpstorm': + case 'phpstorm64': + case 'pycharm': + case 'pycharm64': + case 'rubymine': + case 'rubymine64': + case 'webstorm': + case 'webstorm64': + case 'goland': + case 'goland64': + case 'rider': + case 'rider64': + { + return [ + '--line', + line1.toString(), + fileName + ]; + } + default: + { + // For all others, drop the lineNumber until we have + // a mapping above, since providing the lineNumber incorrectly + // can result in errors or confusing behavior. + return [ + fileName + ]; + } + } +} +function guessEditor() { + // Explicit config always wins + if (process.env.REACT_EDITOR) { + return _shellquote.default.parse(process.env.REACT_EDITOR); + } + // We can find out which editor is currently running by: + // `ps x` on macOS and Linux + // `Get-Process` on Windows + try { + if (process.platform === 'darwin') { + const output = _child_process.default.execSync('ps x').toString(); + const processNames = Object.keys(COMMON_EDITORS_MACOS); + for(let i = 0; i < processNames.length; i++){ + const processName = processNames[i]; + if (output.indexOf(processName) !== -1) { + return [ + COMMON_EDITORS_MACOS[processName] + ]; + } + } + } else if (process.platform === 'win32') { + // Some processes need elevated rights to get its executable path. + // Just filter them out upfront. This also saves 10-20ms on the command. + const output = _child_process.default.execSync('wmic process where "executablepath is not null" get executablepath').toString(); + const runningProcesses = output.split('\r\n'); + for(let i = 0; i < runningProcesses.length; i++){ + const processPath = runningProcesses[i].trim(); + const processName = _path.default.basename(processPath); + if (COMMON_EDITORS_WIN.indexOf(processName) !== -1) { + return [ + processPath + ]; + } + } + } else if (process.platform === 'linux') { + // --no-heading No header line + // x List all processes owned by you + // -o comm Need only names column + const output = _child_process.default.execSync('ps x --no-heading -o comm --sort=comm').toString(); + const processNames = Object.keys(COMMON_EDITORS_LINUX); + for(let i = 0; i < processNames.length; i++){ + const processName = processNames[i]; + if (output.indexOf(processName) !== -1) { + return [ + COMMON_EDITORS_LINUX[processName] + ]; + } + } + } + } catch (error) { + // Ignore... + } + // Last resort, use old skool env vars + if (process.env.VISUAL) { + return [ + process.env.VISUAL + ]; + } else if (process.env.EDITOR) { + return [ + process.env.EDITOR + ]; + } + return []; +} +function printInstructions(fileName, errorMessage) { + console.log(); + console.log((0, _picocolors.red)('Could not open ' + _path.default.basename(fileName) + ' in the editor.')); + if (errorMessage) { + if (errorMessage[errorMessage.length - 1] !== '.') { + errorMessage += '.'; + } + console.log((0, _picocolors.red)('The editor process exited with an error: ' + errorMessage)); + } + console.log(); + console.log('To set up the editor integration, add something like ' + (0, _picocolors.cyan)('REACT_EDITOR=atom') + ' to the ' + (0, _picocolors.green)('.env.local') + ' file in your project folder ' + 'and restart the development server.'); + console.log(); +} +function escapeApplescriptStringFragment(input) { + // The only two special characters in a quoted applescript string are + // backslash and double quote. Both are escaped with a preceeding backslash. + // + // Some whitespace characters (like newlines) can be escaped (as `\n`), but + // aren't required to be escaped (so we're not bothering to do that). + // + // https://developer.apple.com/library/archive/documentation/AppleScript/Conceptual/AppleScriptLangGuide/reference/ASLR_classes.html#//apple_ref/doc/uid/TP40000983-CH1g-BBCIAHJF:~:text=Special%20String%20Characters + return input.replaceAll(/[\\"]/g, (original)=>`\\${original}`); +} +function launchEditor(fileName, line1, column1) { + if (!_fs.default.existsSync(fileName)) { + return; + } + // Sanitize lineNumber to prevent malicious use on win32 + // via: https://github.com/nodejs/node/blob/c3bb4b1aa5e907d489619fb43d233c3336bfc03d/lib/child_process.js#L333 + // and it should be a positive integer + if (!(Number.isInteger(line1) && line1 > 0)) { + return; + } + // colNumber is optional, but should be a positive integer too + // default is 1 + if (!(Number.isInteger(column1) && column1 > 0)) { + column1 = 1; + } + let [editor, ...args] = guessEditor(); + if (!editor) { + printInstructions(fileName, null); + return; + } + if (editor.toLowerCase() === 'none') { + return; + } + if (process.platform === 'linux' && fileName.startsWith('/mnt/') && /Microsoft/i.test(_os.default.release())) { + // Assume WSL / "Bash on Ubuntu on Windows" is being used, and + // that the file exists on the Windows file system. + // `os.release()` is "4.4.0-43-Microsoft" in the current release + // build of WSL, see: https://github.com/Microsoft/BashOnWindows/issues/423#issuecomment-221627364 + // When a Windows editor is specified, interop functionality can + // handle the path translation, but only if a relative path is used. + fileName = _path.default.relative('', fileName); + } + // cmd.exe on Windows is vulnerable to RCE attacks given a file name of the + // form "C:\Users\myusername\Downloads\& curl 172.21.93.52". Use an access list + // to validate user-provided file names. This doesn't cover the entire range + // of valid file names but should cover almost all of them in practice. + if (process.platform === 'win32' && !WINDOWS_FILE_NAME_ACCESS_LIST.test(fileName.trim())) { + console.log(); + console.log((0, _picocolors.red)('Could not open ' + _path.default.basename(fileName) + ' in the editor.')); + console.log(); + console.log('When running on Windows, file names are checked against an access list ' + 'to protect against remote code execution attacks. File names may ' + 'consist only of alphanumeric characters (all languages), periods, ' + 'dashes, slashes, and underscores.'); + console.log(); + return; + } + if (line1) { + args = args.concat(getArgumentsForLineNumber(editor, fileName, line1, column1)); + } else { + args.push(fileName); + } + let p = undefined; + if (process.platform === 'win32') { + // On Windows, launch the editor in a shell because spawn can only + // launch .exe files. + p = _child_process.default.spawn('cmd.exe', [ + '/C', + editor + ].concat(args), { + stdio: 'inherit', + detached: true + }); + } else if (isTerminalEditor(editor)) { + if (process.platform === 'darwin') { + const escapedScript = escapeApplescriptStringFragment(_shellquote.default.quote([ + editor, + ...args + ])); + p = _child_process.default.spawn('osascript', [ + '-e', + `tell application "Terminal" to do script "${escapedScript}"` + ], { + stdio: 'ignore' + }); + } else { + printInstructions(fileName, 'Terminal editors can only be used on macOS.'); + } + } else { + p = _child_process.default.spawn(editor, args, { + stdio: 'inherit' + }); + } + if (p) { + p.on('exit', function(errorCode) { + if (errorCode) { + printInstructions(fileName, '(code ' + errorCode + ')'); + } + }); + p.on('error', function(error) { + printInstructions(fileName, error.message); + }); + } +} +async function openFileInEditor(file, line1, column1, nextRootDirectory) { + let filePath; + if (file.startsWith('file://')) { + try { + filePath = (0, _url.fileURLToPath)(file); + } catch (error) { + return { + found: false, + error + }; + } + } else if (_path.default.isAbsolute(file)) { + filePath = file; + } else { + filePath = _path.default.join(nextRootDirectory, file); + } + const result = { + found: false, + error: null + }; + const existed = await _promises.default.access(filePath, _fs.default.constants.F_OK).then(()=>true, ()=>false); + if (existed) { + try { + launchEditor(filePath, line1, column1); + result.found = true; + } catch (err) { + result.error = err; + } + } + return result; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=launch-editor.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/middleware-response.js b/cli/app/node_modules/next/dist/next-devtools/server/middleware-response.js new file mode 100644 index 00000000000..78be2296c2f --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/middleware-response.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "middlewareResponse", { + enumerable: true, + get: function() { + return middlewareResponse; + } +}); +const _util = require("util"); +const middlewareResponse = { + noContent (res) { + res.statusCode = 204; + res.end('No Content'); + }, + badRequest (res, reason) { + res.statusCode = 400; + if (reason !== undefined) { + res.setHeader('Content-Type', 'text/plain'); + res.end(reason); + } else { + res.end(); + } + }, + notFound (res) { + res.statusCode = 404; + res.end('Not Found'); + }, + methodNotAllowed (res) { + res.statusCode = 405; + res.end('Method Not Allowed'); + }, + internalServerError (res, error) { + res.statusCode = 500; + res.setHeader('Content-Type', 'text/plain'); + res.end(error !== undefined ? (0, _util.inspect)(error, { + colors: false + }) : 'Internal Server Error'); + }, + json (res, data) { + res.setHeader('Content-Type', 'application/json').end(Buffer.from(JSON.stringify(data))); + }, + jsonString (res, data) { + res.setHeader('Content-Type', 'application/json').end(Buffer.from(data)); + } +}; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=middleware-response.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/restart-dev-server-middleware.js b/cli/app/node_modules/next/dist/next-devtools/server/restart-dev-server-middleware.js new file mode 100644 index 00000000000..1f82519e361 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/restart-dev-server-middleware.js @@ -0,0 +1,78 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRestartDevServerMiddleware", { + enumerable: true, + get: function() { + return getRestartDevServerMiddleware; + } +}); +const _utils = require("../../server/lib/utils"); +const _middlewareresponse = require("./middleware-response"); +const _cacheinvalidation = require("../../build/webpack/cache-invalidation"); +const EVENT_DEV_OVERLAY_RESTART_SERVER = 'DEV_OVERLAY_RESTART_SERVER'; +function getRestartDevServerMiddleware({ telemetry, turbopackProject, webpackCacheDirectories }) { + /** + * Some random value between 1 and Number.MAX_SAFE_INTEGER (inclusive). The same value is returned + * on every call to `__nextjs_server_status` until the server is restarted. + * + * Can be used to determine if two server status responses are from the same process or a + * different (restarted) process. + */ const executionId = Math.floor(Math.random() * Number.MAX_SAFE_INTEGER) + 1; + async function handleRestartRequest(req, res, searchParams) { + if (req.method !== 'POST') { + return _middlewareresponse.middlewareResponse.methodNotAllowed(res); + } + const shouldInvalidateFileSystemCache = searchParams.has('invalidateFileSystemCache'); + if (shouldInvalidateFileSystemCache) { + if (webpackCacheDirectories != null) { + await Promise.all(Array.from(webpackCacheDirectories).map(_cacheinvalidation.invalidateFileSystemCache)); + } + if (turbopackProject != null) { + await turbopackProject.invalidateFileSystemCache(); + } + } + telemetry.record({ + eventName: EVENT_DEV_OVERLAY_RESTART_SERVER, + payload: { + invalidateFileSystemCache: shouldInvalidateFileSystemCache + } + }); + // TODO: Use flushDetached + await telemetry.flush(); + // do this async to try to give the response a chance to send + // it's not really important if it doesn't though + setTimeout(()=>{ + process.exit(_utils.RESTART_EXIT_CODE); + }, 0); + return _middlewareresponse.middlewareResponse.noContent(res); + } + async function handleServerStatus(req, res) { + if (req.method !== 'GET') { + return _middlewareresponse.middlewareResponse.methodNotAllowed(res); + } + return _middlewareresponse.middlewareResponse.json(res, { + executionId + }); + } + return async function(req, res, next) { + const { pathname, searchParams } = new URL(`http://n${req.url}`); + switch(pathname){ + case '/__nextjs_restart_dev': + return await handleRestartRequest(req, res, searchParams); + case '/__nextjs_server_status': + return await handleServerStatus(req, res); + default: + return next(); + } + }; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=restart-dev-server-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/server/shared.js b/cli/app/node_modules/next/dist/next-devtools/server/shared.js new file mode 100644 index 00000000000..60509d4bba9 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/server/shared.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getOriginalCodeFrame: null, + ignoreListAnonymousStackFramesIfSandwiched: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getOriginalCodeFrame: function() { + return getOriginalCodeFrame; + }, + ignoreListAnonymousStackFramesIfSandwiched: function() { + return ignoreListAnonymousStackFramesIfSandwiched; + } +}); +const _codeframe = require("../../shared/lib/errors/code-frame"); +const _sourcemaps = require("../../server/lib/source-maps"); +function ignoreListAnonymousStackFramesIfSandwiched(responses) { + (0, _sourcemaps.ignoreListAnonymousStackFramesIfSandwiched)(responses, (response)=>{ + return response.status === 'fulfilled' && response.value.originalStackFrame !== null && response.value.originalStackFrame.file === ''; + }, (response)=>{ + return response.status === 'fulfilled' && response.value.originalStackFrame !== null && response.value.originalStackFrame.ignored === true; + }, (response)=>{ + return response.status === 'fulfilled' && response.value.originalStackFrame !== null ? response.value.originalStackFrame.methodName : ''; + }, (response)=>{ + ; + response.value.originalStackFrame.ignored = true; + }); +} +function getOriginalCodeFrame(frame, source, colors = process.stdout.isTTY) { + if (!source || frame.line1 == null) { + return null; + } + return (0, _codeframe.codeFrameColumns)(source, { + start: { + line: frame.line1, + column: frame.column1 ?? undefined + } + }, { + color: colors + }) ?? null; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/console-error.js b/cli/app/node_modules/next/dist/next-devtools/shared/console-error.js new file mode 100644 index 00000000000..eccf3e4bafd --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/console-error.js @@ -0,0 +1,47 @@ +// To distinguish from React error.digest, we use a different symbol here to determine if the error is from console.error or unhandled promise rejection. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createConsoleError: null, + isConsoleError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createConsoleError: function() { + return createConsoleError; + }, + isConsoleError: function() { + return isConsoleError; + } +}); +const digestSym = Symbol.for('next.console.error.digest'); +function createConsoleError(message, environmentName) { + const error = typeof message === 'string' ? Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }) : message; + error[digestSym] = 'NEXT_CONSOLE_ERROR'; + if (environmentName && !error.environmentName) { + error.environmentName = environmentName; + } + return error; +} +const isConsoleError = (error)=>{ + return error && error[digestSym] === 'NEXT_CONSOLE_ERROR'; +}; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=console-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/deepmerge.js b/cli/app/node_modules/next/dist/next-devtools/shared/deepmerge.js new file mode 100644 index 00000000000..2a387c0fc51 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/deepmerge.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "deepMerge", { + enumerable: true, + get: function() { + return deepMerge; + } +}); +function deepMerge(target, source) { + if (!source || typeof source !== 'object' || Array.isArray(source)) { + return source; + } + if (!target || typeof target !== 'object' || Array.isArray(target)) { + return source; + } + const result = { + ...target + }; + for(const key in source){ + const sourceValue = source[key]; + const targetValue = target[key]; + if (sourceValue !== undefined) { + if (sourceValue && typeof sourceValue === 'object' && !Array.isArray(sourceValue) && targetValue && typeof targetValue === 'object' && !Array.isArray(targetValue)) { + result[key] = deepMerge(targetValue, sourceValue); + } else { + result[key] = sourceValue; + } + } + } + return result; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=deepmerge.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/devtools-config-schema.js b/cli/app/node_modules/next/dist/next-devtools/shared/devtools-config-schema.js new file mode 100644 index 00000000000..bd9745b49d8 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/devtools-config-schema.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "devToolsConfigSchema", { + enumerable: true, + get: function() { + return devToolsConfigSchema; + } +}); +const _zod = require("next/dist/compiled/zod"); +const devToolsConfigSchema = _zod.z.object({ + theme: _zod.z.enum([ + 'light', + 'dark', + 'system' + ]).optional(), + disableDevIndicator: _zod.z.boolean().optional(), + devToolsPosition: _zod.z.enum([ + 'top-left', + 'top-right', + 'bottom-left', + 'bottom-right' + ]).optional(), + devToolsPanelPosition: _zod.z.record(_zod.z.string(), _zod.z.enum([ + 'top-left', + 'top-right', + 'bottom-left', + 'bottom-right' + ])).optional(), + devToolsPanelSize: _zod.z.record(_zod.z.string(), _zod.z.object({ + width: _zod.z.number(), + height: _zod.z.number() + })).optional(), + scale: _zod.z.number().optional(), + hideShortcut: _zod.z.string().nullable().optional() +}); + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=devtools-config-schema.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/forward-logs-shared.js b/cli/app/node_modules/next/dist/next-devtools/shared/forward-logs-shared.js new file mode 100644 index 00000000000..b0abd6a9d3d --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/forward-logs-shared.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + UNDEFINED_MARKER: null, + patchConsoleMethod: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + UNDEFINED_MARKER: function() { + return UNDEFINED_MARKER; + }, + patchConsoleMethod: function() { + return patchConsoleMethod; + } +}); +const UNDEFINED_MARKER = '__next_tagged_undefined'; +function patchConsoleMethod(methodName, wrapper) { + const descriptor = Object.getOwnPropertyDescriptor(console, methodName); + if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') { + const originalMethod = descriptor.value; + const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name'); + const wrapperMethod = function(...args) { + wrapper(methodName, ...args); + originalMethod.apply(this, args); + }; + if (originalName) { + Object.defineProperty(wrapperMethod, 'name', originalName); + } + Object.defineProperty(console, methodName, { + value: wrapperMethod + }); + return ()=>{ + Object.defineProperty(console, methodName, { + value: originalMethod, + writable: descriptor.writable, + configurable: descriptor.configurable + }); + }; + } + return ()=>{}; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=forward-logs-shared.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js b/cli/app/node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js new file mode 100644 index 00000000000..e2edcb665a1 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/react-18-hydration-error.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getHydrationWarningType: null, + isHydrationError: null, + isHydrationWarning: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getHydrationWarningType: function() { + return getHydrationWarningType; + }, + isHydrationError: function() { + return isHydrationError; + }, + isHydrationWarning: function() { + return isHydrationWarning; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _iserror = /*#__PURE__*/ _interop_require_default._(require("../../lib/is-error")); +function isHydrationError(error) { + return (0, _iserror.default)(error) && (error.message === 'Hydration failed because the initial UI does not match what was rendered on the server.' || error.message === 'Text content does not match server-rendered HTML.'); +} +function isHydrationWarning(message) { + return isHtmlTagsWarning(message) || isTextInTagsMismatchWarning(message) || isTextWarning(message); +} +// https://github.com/facebook/react/blob/main/packages/react-dom/src/__tests__/ReactDOMHydrationDiff-test.js used as a reference +const htmlTagsWarnings = new Set([ + 'Warning: Expected server HTML to contain a matching <%s> in <%s>.%s', + 'Warning: Did not expect server HTML to contain a <%s> in <%s>.%s' +]); +const textAndTagsMismatchWarnings = new Set([ + 'Warning: Expected server HTML to contain a matching text node for "%s" in <%s>.%s', + 'Warning: Did not expect server HTML to contain the text node "%s" in <%s>.%s' +]); +const textWarnings = new Set([ + 'Warning: Text content did not match. Server: "%s" Client: "%s"%s' +]); +const getHydrationWarningType = (message)=>{ + if (typeof message !== 'string') { + // TODO: Doesn't make sense to treat no message as a hydration error message. + // We should bail out somewhere earlier. + return 'text'; + } + const normalizedMessage = message.startsWith('Warning: ') ? message : `Warning: ${message}`; + if (isHtmlTagsWarning(normalizedMessage)) return 'tag'; + if (isTextInTagsMismatchWarning(normalizedMessage)) return 'text-in-tag'; + return 'text'; +}; +const isHtmlTagsWarning = (message)=>typeof message === 'string' && htmlTagsWarnings.has(message); +const isTextInTagsMismatchWarning = (msg)=>typeof msg === 'string' && textAndTagsMismatchWarnings.has(msg); +const isTextWarning = (msg)=>typeof msg === 'string' && textWarnings.has(msg); + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=react-18-hydration-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js b/cli/app/node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js new file mode 100644 index 00000000000..85de4bac21f --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/react-19-hydration-error.js @@ -0,0 +1,95 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NEXTJS_HYDRATION_ERROR_LINK: null, + REACT_HYDRATION_ERROR_LINK: null, + getHydrationErrorStackInfo: null, + isErrorMessageWithComponentStackDiff: null, + isHydrationError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NEXTJS_HYDRATION_ERROR_LINK: function() { + return NEXTJS_HYDRATION_ERROR_LINK; + }, + REACT_HYDRATION_ERROR_LINK: function() { + return REACT_HYDRATION_ERROR_LINK; + }, + getHydrationErrorStackInfo: function() { + return getHydrationErrorStackInfo; + }, + isErrorMessageWithComponentStackDiff: function() { + return isErrorMessageWithComponentStackDiff; + }, + isHydrationError: function() { + return isHydrationError; + } +}); +const REACT_HYDRATION_ERROR_LINK = 'https://react.dev/link/hydration-mismatch'; +const NEXTJS_HYDRATION_ERROR_LINK = 'https://nextjs.org/docs/messages/react-hydration-error'; +/** + * Only React 19+ contains component stack diff in the error message + */ const errorMessagesWithComponentStackDiff = [ + /^In HTML, (.+?) cannot be a child of <(.+?)>\.(.*)\nThis will cause a hydration error\.(.*)/, + /^In HTML, (.+?) cannot be a descendant of <(.+?)>\.\nThis will cause a hydration error\.(.*)/, + /^In HTML, text nodes cannot be a child of <(.+?)>\.\nThis will cause a hydration error\./, + /^In HTML, whitespace text nodes cannot be a child of <(.+?)>\. Make sure you don't have any extra whitespace between tags on each line of your source code\.\nThis will cause a hydration error\./ +]; +function isHydrationError(error) { + return isErrorMessageWithComponentStackDiff(error.message) || /Hydration failed because the server rendered (text|HTML) didn't match the client\./.test(error.message) || /A tree hydrated but some attributes of the server rendered HTML didn't match the client properties./.test(error.message); +} +function isErrorMessageWithComponentStackDiff(msg) { + return errorMessagesWithComponentStackDiff.some((regex)=>regex.test(msg)); +} +function getHydrationErrorStackInfo(error) { + const errorMessage = error.message; + if (isErrorMessageWithComponentStackDiff(errorMessage)) { + const [message, diffLog = ''] = errorMessage.split('\n\n'); + const diff = diffLog.trim(); + return { + message: diff === '' ? errorMessage.trim() : message.trim(), + diff, + notes: null + }; + } + const [message, maybeComponentStackDiff] = errorMessage.split(`${REACT_HYDRATION_ERROR_LINK}`); + const trimmedMessage = message.trim(); + // React built-in hydration diff starts with a newline + if (maybeComponentStackDiff !== undefined && maybeComponentStackDiff.length > 1) { + const diffs = []; + maybeComponentStackDiff.split('\n').forEach((line)=>{ + if (line.trim() === '') return; + if (!line.trim().startsWith('at ')) { + diffs.push(line); + } + }); + const [displayedMessage, ...notes] = trimmedMessage.split('\n\n'); + return { + message: displayedMessage, + diff: diffs.join('\n'), + notes: notes.join('\n\n') || null + }; + } else { + const [displayedMessage, ...notes] = trimmedMessage.split('\n\n'); + return { + message: displayedMessage, + diff: null, + notes: notes.join('\n\n') + }; + } +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=react-19-hydration-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/shared/webpack-module-path.js b/cli/app/node_modules/next/dist/next-devtools/shared/webpack-module-path.js new file mode 100644 index 00000000000..feb17382a79 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/shared/webpack-module-path.js @@ -0,0 +1,47 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + formatStackFrameFile: null, + isWebpackInternalResource: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + formatStackFrameFile: function() { + return formatStackFrameFile; + }, + isWebpackInternalResource: function() { + return isWebpackInternalResource; + } +}); +const replacementRegExes = [ + /^webpack-internal:\/\/\/(\([\w-]+\)\/)?/, + /^(webpack:\/\/\/|webpack:\/\/(_N_E\/)?)(\([\w-]+\)\/)?/ +]; +function isWebpackInternalResource(file) { + for (const regex of replacementRegExes){ + if (regex.test(file)) return true; + file = file.replace(regex, ''); + } + return false; +} +function formatStackFrameFile(file) { + for (const regex of replacementRegExes){ + file = file.replace(regex, ''); + } + return file; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=webpack-module-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js new file mode 100644 index 00000000000..19224bb5761 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/app-dev-overlay-error-boundary.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppDevOverlayErrorBoundary", { + enumerable: true, + get: function() { + return AppDevOverlayErrorBoundary; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _jsxruntime = require("react/jsx-runtime"); +const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); +const _nextdevtools = require("next/dist/compiled/next-devtools"); +const _runtimeerrorhandler = require("../../../client/dev/runtime-error-handler"); +const _errorboundary = require("../../../client/components/error-boundary"); +const _globalerror = /*#__PURE__*/ _interop_require_default._(require("../../../client/components/builtin/global-error")); +const _segmentexplorernode = require("./segment-explorer-node"); +const _approutercontextsharedruntime = require("../../../shared/lib/app-router-context.shared-runtime"); +function ErroredHtml({ globalError: [GlobalError, globalErrorStyles], error, reset, unstable_retry }) { + if (!error) { + return /*#__PURE__*/ (0, _jsxruntime.jsxs)("html", { + children: [ + /*#__PURE__*/ (0, _jsxruntime.jsx)("head", {}), + /*#__PURE__*/ (0, _jsxruntime.jsx)("body", {}) + ] + }); + } + return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_errorboundary.ErrorBoundary, { + errorComponent: _globalerror.default, + children: [ + globalErrorStyles, + /*#__PURE__*/ (0, _jsxruntime.jsx)(GlobalError, { + error: error, + reset: reset, + unstable_retry: unstable_retry + }) + ] + }); +} +class AppDevOverlayErrorBoundary extends _react.PureComponent { + static{ + this.contextType = _approutercontextsharedruntime.AppRouterContext; + } + static getDerivedStateFromError(error) { + _runtimeerrorhandler.RuntimeErrorHandler.hadRuntimeError = true; + return { + reactError: error + }; + } + componentDidCatch(err) { + if (process.env.NODE_ENV === 'development' && err.message === _segmentexplorernode.SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE) { + return; + } + _nextdevtools.dispatcher.openErrorOverlay(); + } + render() { + const { children, globalError } = this.props; + const { reactError } = this.state; + const fallback = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErroredHtml, { + globalError: globalError, + error: reactError, + reset: this.reset, + unstable_retry: this.unstable_retry + }); + return reactError !== null ? fallback : children; + } + constructor(...args){ + super(...args), this.state = { + reactError: null + }, this.unstable_retry = ()=>{ + (0, _react.startTransition)(()=>{ + this.context?.refresh(); + this.reset(); + }); + }, this.reset = ()=>{ + this.setState({ + reactError: null + }); + }; + } +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=app-dev-overlay-error-boundary.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js new file mode 100644 index 00000000000..6fd02c9597d --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/replay-ssr-only-errors.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ReplaySsrOnlyErrors", { + enumerable: true, + get: function() { + return ReplaySsrOnlyErrors; + } +}); +const _react = require("react"); +const _useerrorhandler = require("./use-error-handler"); +const _isnextroutererror = require("../../../../client/components/is-next-router-error"); +const _constants = require("../../../../shared/lib/errors/constants"); +function readSsrError() { + if (typeof document === 'undefined') { + return null; + } + const ssrErrorTemplateTag = document.querySelector('template[data-next-error-message]'); + if (ssrErrorTemplateTag) { + const message = ssrErrorTemplateTag.getAttribute('data-next-error-message'); + const stack = ssrErrorTemplateTag.getAttribute('data-next-error-stack'); + const digest = ssrErrorTemplateTag.getAttribute('data-next-error-digest'); + const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + if (digest) { + ; + error.digest = digest; + } + // Skip Next.js SSR'd internal errors that which will be handled by the error boundaries. + if ((0, _isnextroutererror.isNextRouterError)(error)) { + return null; + } + error.stack = stack || ''; + return error; + } + return null; +} +function ReplaySsrOnlyErrors({ onBlockingError }) { + if (process.env.NODE_ENV !== 'production') { + // Need to read during render. The attributes will be gone after commit. + const ssrError = readSsrError(); + // eslint-disable-next-line react-hooks/rules-of-hooks + (0, _react.useEffect)(()=>{ + if (ssrError !== null) { + // TODO(veil): Include original Owner Stack (NDX-905) + // TODO(veil): Mark as recoverable error + // TODO(veil): console.error + (0, _useerrorhandler.handleClientError)(ssrError); + // If it's missing root tags, we can't recover, make it blocking. + if (ssrError.digest === _constants.MISSING_ROOT_TAGS_ERROR) { + onBlockingError(); + } + } + }, [ + ssrError, + onBlockingError + ]); + } + return null; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=replay-ssr-only-errors.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js new file mode 100644 index 00000000000..276da242423 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/stitched-error.js @@ -0,0 +1,76 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + coerceError: null, + decorateDevError: null, + getOwnerStack: null, + setOwnerStack: null, + setOwnerStackIfAvailable: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + coerceError: function() { + return coerceError; + }, + decorateDevError: function() { + return decorateDevError; + }, + getOwnerStack: function() { + return getOwnerStack; + }, + setOwnerStack: function() { + return setOwnerStack; + }, + setOwnerStackIfAvailable: function() { + return setOwnerStackIfAvailable; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const _iserror = /*#__PURE__*/ _interop_require_default._(require("../../../../lib/is-error")); +const ownerStacks = new WeakMap(); +function getOwnerStack(error) { + return ownerStacks.get(error); +} +function setOwnerStack(error, stack) { + ownerStacks.set(error, stack); +} +function coerceError(value) { + return (0, _iserror.default)(value) ? value : Object.defineProperty(new Error('' + value), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); +} +function setOwnerStackIfAvailable(error) { + // React 18 and prod does not have `captureOwnerStack` + if ('captureOwnerStack' in _react.default) { + const ownerStack = _react.default.captureOwnerStack(); + // Only set if we captured a valid owner stack, or if none exists yet. + // This prevents overwriting a valid owner stack captured earlier + // (e.g., in onRecoverableError) with null captured later. + if (ownerStack || !ownerStacks.has(error)) { + setOwnerStack(error, ownerStack); + } + } +} +function decorateDevError(thrownValue) { + const error = coerceError(thrownValue); + setOwnerStackIfAvailable(error); + return error; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=stitched-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js new file mode 100644 index 00000000000..3b18e1be52e --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/errors/use-error-handler.js @@ -0,0 +1,139 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handleClientError: null, + handleConsoleError: null, + handleGlobalErrors: null, + useErrorHandler: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handleClientError: function() { + return handleClientError; + }, + handleConsoleError: function() { + return handleConsoleError; + }, + handleGlobalErrors: function() { + return handleGlobalErrors; + }, + useErrorHandler: function() { + return useErrorHandler; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = require("react"); +const _isnextroutererror = require("../../../../client/components/is-next-router-error"); +const _console = require("../../../../client/lib/console"); +const _iserror = /*#__PURE__*/ _interop_require_default._(require("../../../../lib/is-error")); +const _consoleerror = require("../../../shared/console-error"); +const _stitchederror = require("./stitched-error"); +const _forwardlogs = require("../forward-logs"); +const queueMicroTask = globalThis.queueMicrotask || ((cb)=>Promise.resolve().then(cb)); +const errorQueue = []; +const errorHandlers = []; +const rejectionQueue = []; +const rejectionHandlers = []; +function handleConsoleError(originError, consoleErrorArgs) { + let error; + const { environmentName } = (0, _console.parseConsoleArgs)(consoleErrorArgs); + if ((0, _iserror.default)(originError)) { + error = (0, _consoleerror.createConsoleError)(originError, environmentName); + } else { + error = (0, _consoleerror.createConsoleError)((0, _console.formatConsoleArgs)(consoleErrorArgs), environmentName); + } + (0, _stitchederror.setOwnerStackIfAvailable)(error); + errorQueue.push(error); + for (const handler of errorHandlers){ + // Delayed the error being passed to React Dev Overlay, + // avoid the state being synchronously updated in the component. + queueMicroTask(()=>{ + handler(error); + }); + } +} +function handleClientError(error) { + errorQueue.push(error); + for (const handler of errorHandlers){ + // Delayed the error being passed to React Dev Overlay, + // avoid the state being synchronously updated in the component. + queueMicroTask(()=>{ + handler(error); + }); + } +} +function useErrorHandler(handleOnUnhandledError, handleOnUnhandledRejection) { + (0, _react.useEffect)(()=>{ + // Handle queued errors. + errorQueue.forEach(handleOnUnhandledError); + rejectionQueue.forEach(handleOnUnhandledRejection); + // Listen to new errors. + errorHandlers.push(handleOnUnhandledError); + rejectionHandlers.push(handleOnUnhandledRejection); + return ()=>{ + // Remove listeners. + errorHandlers.splice(errorHandlers.indexOf(handleOnUnhandledError), 1); + rejectionHandlers.splice(rejectionHandlers.indexOf(handleOnUnhandledRejection), 1); + // Reset error queues. + errorQueue.splice(0, errorQueue.length); + rejectionQueue.splice(0, rejectionQueue.length); + }; + }, [ + handleOnUnhandledError, + handleOnUnhandledRejection + ]); +} +function onUnhandledError(event) { + const thrownValue = event.error; + if ((0, _isnextroutererror.isNextRouterError)(thrownValue)) { + event.preventDefault(); + return false; + } + // When there's an error property present, we log the error to error overlay. + // Otherwise we don't do anything as it's not logging in the console either. + if (thrownValue) { + const error = (0, _stitchederror.coerceError)(thrownValue); + (0, _stitchederror.setOwnerStackIfAvailable)(error); + handleClientError(error); + (0, _forwardlogs.forwardUnhandledError)(error); + } +} +function onUnhandledRejection(ev) { + const reason = ev?.reason; + if ((0, _isnextroutererror.isNextRouterError)(reason)) { + ev.preventDefault(); + return; + } + const error = (0, _stitchederror.coerceError)(reason); + (0, _stitchederror.setOwnerStackIfAvailable)(error); + rejectionQueue.push(error); + for (const handler of rejectionHandlers){ + handler(error); + } + (0, _forwardlogs.logUnhandledRejection)(reason); +} +function handleGlobalErrors() { + if (typeof window !== 'undefined') { + try { + // Increase the number of stack frames on the client + Error.stackTraceLimit = 50; + } catch {} + window.addEventListener('error', onUnhandledError); + window.addEventListener('unhandledrejection', onUnhandledRejection); + } +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=use-error-handler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/forward-logs-utils.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/forward-logs-utils.js new file mode 100644 index 00000000000..d45debe4d72 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/forward-logs-utils.js @@ -0,0 +1,95 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + logStringify: null, + preLogSerializationClone: null, + safeStringifyWithDepth: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + logStringify: function() { + return logStringify; + }, + preLogSerializationClone: function() { + return preLogSerializationClone; + }, + safeStringifyWithDepth: function() { + return safeStringifyWithDepth; + } +}); +const _safestablestringify = require("next/dist/compiled/safe-stable-stringify"); +const _terminalloggingconfig = require("./terminal-logging-config"); +const _forwardlogsshared = require("../../shared/forward-logs-shared"); +const terminalLoggingConfig = (0, _terminalloggingconfig.getTerminalLoggingConfig)(); +const PROMISE_MARKER = 'Promise {}'; +const UNAVAILABLE_MARKER = '[Unable to view]'; +const maximumDepth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.depthLimit ? terminalLoggingConfig.depthLimit : 5; +const maximumBreadth = typeof terminalLoggingConfig === 'object' && terminalLoggingConfig.edgeLimit ? terminalLoggingConfig.edgeLimit : 100; +const safeStringifyWithDepth = (0, _safestablestringify.configure)({ + maximumDepth, + maximumBreadth +}); +function preLogSerializationClone(value, seen = new WeakMap()) { + if (value === undefined) return _forwardlogsshared.UNDEFINED_MARKER; + if (value === null || typeof value !== 'object') return value; + if (seen.has(value)) return seen.get(value); + try { + Object.keys(value); + } catch { + return UNAVAILABLE_MARKER; + } + try { + if (typeof value.then === 'function') return PROMISE_MARKER; + } catch { + return UNAVAILABLE_MARKER; + } + if (Array.isArray(value)) { + const out = []; + seen.set(value, out); + for (const item of value){ + try { + out.push(preLogSerializationClone(item, seen)); + } catch { + out.push(UNAVAILABLE_MARKER); + } + } + return out; + } + const proto = Object.getPrototypeOf(value); + if (proto === Object.prototype || proto === null) { + const out = {}; + seen.set(value, out); + for (const key of Object.keys(value)){ + try { + out[key] = preLogSerializationClone(value[key], seen); + } catch { + out[key] = UNAVAILABLE_MARKER; + } + } + return out; + } + return Object.prototype.toString.call(value); +} +const logStringify = (data)=>{ + try { + const result = safeStringifyWithDepth(data); + return result ?? `"${UNAVAILABLE_MARKER}"`; + } catch { + return `"${UNAVAILABLE_MARKER}"`; + } +}; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=forward-logs-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js new file mode 100644 index 00000000000..40a5ca82007 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/forward-logs.js @@ -0,0 +1,510 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + forwardErrorLog: null, + forwardUnhandledError: null, + initializeDebugLogForwarding: null, + logQueue: null, + logUnhandledRejection: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + forwardErrorLog: function() { + return forwardErrorLog; + }, + forwardUnhandledError: function() { + return forwardUnhandledError; + }, + initializeDebugLogForwarding: function() { + return initializeDebugLogForwarding; + }, + logQueue: function() { + return logQueue; + }, + logUnhandledRejection: function() { + return logUnhandledRejection; + } +}); +const _errorsource = require("../../../shared/lib/error-source"); +const _terminalloggingconfig = require("./terminal-logging-config"); +const _forwardlogsshared = require("../../shared/forward-logs-shared"); +const _forwardlogsutils = require("./forward-logs-utils"); +const _stitchederror = require("./errors/stitched-error"); +// Client-side file logger for browser logs +class ClientFileLogger { + formatTimestamp() { + const now = new Date(); + const hours = now.getHours().toString().padStart(2, '0'); + const minutes = now.getMinutes().toString().padStart(2, '0'); + const seconds = now.getSeconds().toString().padStart(2, '0'); + const milliseconds = now.getMilliseconds().toString().padStart(3, '0'); + return `${hours}:${minutes}:${seconds}.${milliseconds}`; + } + log(level, args) { + if (isReactServerReplayedLog(args)) { + return; + } + // Format the args into a message string + const message = args.map((arg)=>{ + if (typeof arg === 'string') return arg; + if (typeof arg === 'number' || typeof arg === 'boolean') return String(arg); + if (arg === null) return 'null'; + if (arg === undefined) return 'undefined'; + // Handle DOM nodes - only log the tag name to avoid React proxied elements + if (arg instanceof Element) { + return `<${arg.tagName.toLowerCase()}>`; + } + return (0, _forwardlogsutils.safeStringifyWithDepth)(arg); + }).join(' '); + const logEntry = { + timestamp: this.formatTimestamp(), + level: level.toUpperCase(), + message + }; + this.logEntries.push(logEntry); + // Schedule flush when new log is added + scheduleLogFlush(); + } + getLogs() { + return [ + ...this.logEntries + ]; + } + clear() { + this.logEntries = []; + } + constructor(){ + this.logEntries = []; + } +} +const clientFileLogger = new ClientFileLogger(); +// Set up flush-based sending of client file logs +let logFlushTimeout = null; +let heartbeatInterval = null; +const scheduleLogFlush = ()=>{ + if (logFlushTimeout) { + clearTimeout(logFlushTimeout); + } + logFlushTimeout = setTimeout(()=>{ + sendClientFileLogs(); + logFlushTimeout = null; + }, 100) // Send after 100ms (much faster with debouncing) + ; +}; +const cancelLogFlush = ()=>{ + if (logFlushTimeout) { + clearTimeout(logFlushTimeout); + logFlushTimeout = null; + } +}; +const startHeartbeat = ()=>{ + if (heartbeatInterval) return; + heartbeatInterval = setInterval(()=>{ + if (logQueue.socket && logQueue.socket.readyState === WebSocket.OPEN) { + try { + // Send a ping to keep the connection alive + logQueue.socket.send(JSON.stringify({ + event: 'ping' + })); + } catch (error) { + // Connection might be closed, stop heartbeat + stopHeartbeat(); + } + } else { + stopHeartbeat(); + } + }, 5000) // Send ping every 5 seconds + ; +}; +const stopHeartbeat = ()=>{ + if (heartbeatInterval) { + clearInterval(heartbeatInterval); + heartbeatInterval = null; + } +}; +const isTerminalLoggingEnabled = (0, _terminalloggingconfig.getIsTerminalLoggingEnabled)(); +const methods = [ + 'log', + 'info', + 'warn', + 'debug', + 'table', + 'assert', + 'dir', + 'dirxml', + 'group', + 'groupCollapsed', + 'groupEnd', + 'trace' +]; +const afterThisFrame = (cb)=>{ + let timeout; + const rafId = requestAnimationFrame(()=>{ + timeout = setTimeout(()=>{ + cb(); + }); + }); + return ()=>{ + cancelAnimationFrame(rafId); + clearTimeout(timeout); + }; +}; +let isPatched = false; +const serializeEntries = (entries)=>entries.map((clientEntry)=>{ + switch(clientEntry.kind){ + case 'any-logged-error': + case 'console': + { + return { + ...clientEntry, + args: clientEntry.args.map(stringifyUserArg) + }; + } + case 'formatted-error': + { + return clientEntry; + } + default: + { + return null; + } + } + }); +// Function to send client file logs to server +const sendClientFileLogs = ()=>{ + if (!logQueue.socket || logQueue.socket.readyState !== WebSocket.OPEN) { + return; + } + const logs = clientFileLogger.getLogs(); + if (logs.length === 0) { + return; + } + try { + const payload = JSON.stringify({ + event: 'client-file-logs', + logs: logs + }); + logQueue.socket.send(payload); + } catch (error) { + console.error(error); + } finally{ + // Clear logs regardless of send success to prevent memory leaks + clientFileLogger.clear(); + } +}; +const logQueue = { + entries: [], + flushScheduled: false, + cancelFlush: null, + socket: null, + sourceType: undefined, + router: null, + scheduleLogSend: (entry)=>{ + logQueue.entries.push(entry); + if (logQueue.flushScheduled) { + return; + } + // safe to deref and use in setTimeout closure since we cancel on new socket + const socket = logQueue.socket; + if (!socket) { + return; + } + // we probably dont need this + logQueue.flushScheduled = true; + // non blocking log flush, runs at most once per frame + logQueue.cancelFlush = afterThisFrame(()=>{ + logQueue.flushScheduled = false; + // just incase + try { + const payload = JSON.stringify({ + event: 'browser-logs', + entries: serializeEntries(logQueue.entries), + router: logQueue.router, + // needed for source mapping, we just assign the sourceType from the last error for the whole batch + sourceType: logQueue.sourceType + }); + socket.send(payload); + logQueue.entries = []; + logQueue.sourceType = undefined; + // Also send client file logs + sendClientFileLogs(); + } catch { + // error (make sure u don't infinite loop) + /* noop */ } + }); + }, + onSocketReady: (socket)=>{ + // When MCP or terminal logging is enabled, we enable the socket connection, + // otherwise it will not proceed. + if (!isTerminalLoggingEnabled && !process.env.__NEXT_MCP_SERVER) { + return; + } + if (socket.readyState !== WebSocket.OPEN) { + // invariant + return; + } + // incase an existing timeout was going to run with a stale socket + logQueue.cancelFlush?.(); + logQueue.socket = socket; + // Add socket event listeners to track connection state + socket.addEventListener('close', ()=>{ + cancelLogFlush(); + stopHeartbeat(); + }); + // Only send terminal logs if enabled + if (isTerminalLoggingEnabled) { + try { + const payload = JSON.stringify({ + event: 'browser-logs', + entries: serializeEntries(logQueue.entries), + router: logQueue.router, + sourceType: logQueue.sourceType + }); + socket.send(payload); + logQueue.entries = []; + logQueue.sourceType = undefined; + } catch { + /** noop just incase */ } + } + // Always send client file logs when socket is ready + sendClientFileLogs(); + // Start heartbeat to keep connection alive + startHeartbeat(); + } +}; +const stringifyUserArg = (arg)=>{ + if (arg.kind !== 'arg') { + return arg; + } + return { + ...arg, + data: (0, _forwardlogsutils.logStringify)(arg.data) + }; +}; +const createErrorArg = (error)=>{ + return { + kind: 'formatted-error-arg', + prefix: error.message ? `${error.name}: ${error.message}` : `${error.name}`, + stack: getErrorStackWithOwnerStack(error) + }; +}; +const createLogEntry = (level, args)=>{ + // Always log to client file logger with args (formatting done inside log method) + clientFileLogger.log(level, args); + // Only forward to terminal if enabled + if (!isTerminalLoggingEnabled) { + return; + } + // do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers + // error capture stack trace maybe + const stack = getErrorStack(new Error()); + const stackLines = stack?.split('\n'); + const cleanStack = stackLines?.slice(3).join('\n') // this is probably ignored anyways + ; + const entry = { + kind: 'console', + consoleMethodStack: cleanStack ?? null, + method: level, + args: args.map((arg)=>{ + if (arg instanceof Error) { + return createErrorArg(arg); + } + return { + kind: 'arg', + data: (0, _forwardlogsutils.preLogSerializationClone)(arg) + }; + }) + }; + logQueue.scheduleLogSend(entry); +}; +const forwardErrorLog = (args)=>{ + // Skip React server replayed logs - they were already logged on the server + if (isReactServerReplayedLog(args)) { + return; + } + // Always log to client file logger with args (formatting done inside log method) + clientFileLogger.log('error', args); + // Only forward to terminal if enabled + if (!isTerminalLoggingEnabled) { + return; + } + const errorObjects = args.filter((arg)=>arg instanceof Error); + const first = errorObjects.at(0); + if (first) { + const source = (0, _errorsource.getErrorSource)(first); + if (source) { + logQueue.sourceType = source; + } + } + /** + * browser shows stack regardless of type of data passed to console.error, so we should do the same + * + * do not abstract this, it implicitly relies on which functions call it. forcing the inlined implementation makes you think about callers + */ const stack = getErrorStack(new Error()); + const stackLines = stack?.split('\n'); + const cleanStack = stackLines?.slice(3).join('\n'); + const entry = { + kind: 'any-logged-error', + method: 'error', + consoleErrorStack: cleanStack ?? '', + args: args.map((arg)=>{ + if (arg instanceof Error) { + return createErrorArg(arg); + } + return { + kind: 'arg', + data: (0, _forwardlogsutils.preLogSerializationClone)(arg) + }; + }) + }; + logQueue.scheduleLogSend(entry); +}; +const createUncaughtErrorEntry = (errorName, errorMessage, fullStack)=>{ + const entry = { + kind: 'formatted-error', + prefix: `Uncaught ${errorName}: ${errorMessage}`, + stack: fullStack, + method: 'error' + }; + logQueue.scheduleLogSend(entry); +}; +const getErrorStack = (error)=>{ + return error.stack || ''; +}; +// Get error stack with owner stack appended for source mapping on the server +const getErrorStackWithOwnerStack = (error)=>{ + const errorStack = getErrorStack(error); + const ownerStack = (0, _stitchederror.getOwnerStack)(error); + return ownerStack ? `${errorStack}\n${ownerStack}` : errorStack; +}; +function logUnhandledRejection(reason) { + // Always log to client file logger + const message = reason instanceof Error ? `${reason.name}: ${reason.message}` : JSON.stringify(reason); + clientFileLogger.log('error', [ + `unhandledRejection: ${message}` + ]); + // Only forward to terminal if enabled + if (!isTerminalLoggingEnabled) { + return; + } + if (reason instanceof Error) { + createUnhandledRejectionErrorEntry(reason, getErrorStackWithOwnerStack(reason)); + return; + } + createUnhandledRejectionNonErrorEntry(reason); +} +const createUnhandledRejectionErrorEntry = (error, fullStack)=>{ + const source = (0, _errorsource.getErrorSource)(error); + if (source) { + logQueue.sourceType = source; + } + const entry = { + kind: 'formatted-error', + prefix: `⨯ unhandledRejection: ${error.name}: ${error.message}`, + stack: fullStack, + method: 'error' + }; + logQueue.scheduleLogSend(entry); +}; +const createUnhandledRejectionNonErrorEntry = (reason)=>{ + const entry = { + kind: 'any-logged-error', + // we can't access the stack since the event is dispatched async and creating an inline error would be meaningless + consoleErrorStack: '', + method: 'error', + args: [ + { + kind: 'arg', + data: `⨯ unhandledRejection:`, + isRejectionMessage: true + }, + { + kind: 'arg', + data: (0, _forwardlogsutils.preLogSerializationClone)(reason) + } + ] + }; + logQueue.scheduleLogSend(entry); +}; +const isHMR = (args)=>{ + const firstArg = args[0]; + if (typeof firstArg !== 'string') { + return false; + } + if (firstArg.startsWith('[Fast Refresh]')) { + return true; + } + if (firstArg.startsWith('[HMR]')) { + return true; + } + return false; +}; +/** + * Matches the format of logs arguments React replayed from the RSC. + */ const isReactServerReplayedLog = (args)=>{ + if (args.length < 3) { + return false; + } + const [format, styles, label] = args; + if (typeof format !== 'string' || typeof styles !== 'string' || typeof label !== 'string') { + return false; + } + return format.startsWith('%c%s%c') && styles.includes('background:'); +}; +function forwardUnhandledError(error) { + // Always log to client file logger + clientFileLogger.log('error', [ + `uncaughtError: ${error.name}: ${error.message}` + ]); + // Only forward to terminal if enabled + if (!isTerminalLoggingEnabled) { + return; + } + createUncaughtErrorEntry(error.name, error.message, getErrorStackWithOwnerStack(error)); +} +const initializeDebugLogForwarding = (router)=>{ + // probably don't need this + if (isPatched) { + return; + } + // TODO(rob): why does this break rendering on server, important to know incase the same bug appears in browser + if (typeof window === 'undefined') { + return; + } + // better to be safe than sorry + try { + methods.forEach((method)=>(0, _forwardlogsshared.patchConsoleMethod)(method, (_, ...args)=>{ + if (isHMR(args)) { + return; + } + if (isReactServerReplayedLog(args)) { + return; + } + createLogEntry(method, args); + })); + } catch {} + logQueue.router = router; + isPatched = true; + // Cleanup on page unload + window.addEventListener('beforeunload', ()=>{ + cancelLogFlush(); + stopHeartbeat(); + // Send any remaining logs before page unloads + sendClientFileLogs(); + }); +}; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=forward-logs.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js new file mode 100644 index 00000000000..530ef2f36b8 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js @@ -0,0 +1,159 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE: null, + SegmentBoundaryTriggerNode: null, + SegmentStateProvider: null, + SegmentViewNode: null, + SegmentViewStateNode: null, + useSegmentState: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE: function() { + return SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE; + }, + SegmentBoundaryTriggerNode: function() { + return SegmentBoundaryTriggerNode; + }, + SegmentStateProvider: function() { + return SegmentStateProvider; + }, + SegmentViewNode: function() { + return SegmentViewNode; + }, + SegmentViewStateNode: function() { + return SegmentViewStateNode; + }, + useSegmentState: function() { + return useSegmentState; + } +}); +const _jsxruntime = require("react/jsx-runtime"); +const _react = require("react"); +const _nextdevtools = require("next/dist/compiled/next-devtools"); +const _approutercontextsharedruntime = require("../../../shared/lib/app-router-context.shared-runtime"); +const _notfound = require("../../../client/components/not-found"); +const SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE = 'NEXT_DEVTOOLS_SIMULATED_ERROR'; +function SegmentTrieNode({ type, pagePath }) { + const { boundaryType, setBoundaryType } = useSegmentState(); + const nodeState = (0, _react.useMemo)(()=>{ + return { + type, + pagePath, + boundaryType, + setBoundaryType + }; + }, [ + type, + pagePath, + boundaryType, + setBoundaryType + ]); + // Use `useLayoutEffect` to ensure the state is updated during suspense. + // `useEffect` won't work as the state is preserved during suspense. + (0, _react.useLayoutEffect)(()=>{ + _nextdevtools.dispatcher.segmentExplorerNodeAdd(nodeState); + return ()=>{ + _nextdevtools.dispatcher.segmentExplorerNodeRemove(nodeState); + }; + }, [ + nodeState + ]); + return null; +} +function NotFoundSegmentNode() { + (0, _notfound.notFound)(); +} +function ErrorSegmentNode() { + throw Object.defineProperty(new Error(SEGMENT_EXPLORER_SIMULATED_ERROR_MESSAGE), "__NEXT_ERROR_CODE", { + value: "E716", + enumerable: false, + configurable: true + }); +} +const forever = new Promise(()=>{}); +function LoadingSegmentNode() { + (0, _react.use)(forever); + return null; +} +function SegmentViewStateNode({ page }) { + const { tree } = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext); + (0, _react.useLayoutEffect)(()=>{ + _nextdevtools.dispatcher.segmentExplorerUpdateRouteState(page, tree); + return ()=>{ + _nextdevtools.dispatcher.segmentExplorerUpdateRouteState('', null); + }; + }, [ + page, + tree + ]); + return null; +} +function SegmentBoundaryTriggerNode() { + const { boundaryType } = useSegmentState(); + let segmentNode = null; + if (boundaryType === 'loading') { + segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingSegmentNode, {}); + } else if (boundaryType === 'not-found') { + segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(NotFoundSegmentNode, {}); + } else if (boundaryType === 'error') { + segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorSegmentNode, {}); + } + return segmentNode; +} +function SegmentViewNode({ type, pagePath, children }) { + const segmentNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentTrieNode, { + type: type, + pagePath: pagePath + }, type); + return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { + children: [ + segmentNode, + children + ] + }); +} +const SegmentStateContext = /*#__PURE__*/ (0, _react.createContext)({ + boundaryType: null, + setBoundaryType: ()=>{} +}); +function SegmentStateProvider({ children }) { + const [boundaryType, setBoundaryType] = (0, _react.useState)(null); + const [errorBoundaryKey, setErrorBoundaryKey] = (0, _react.useState)(0); + const reloadBoundary = (0, _react.useCallback)(()=>setErrorBoundaryKey((prev)=>prev + 1), []); + const setBoundaryTypeAndReload = (0, _react.useCallback)((type)=>{ + if (type === null) { + reloadBoundary(); + } + setBoundaryType(type); + }, [ + reloadBoundary + ]); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentStateContext.Provider, { + value: { + boundaryType, + setBoundaryType: setBoundaryTypeAndReload + }, + children: children + }, errorBoundaryKey); +} +function useSegmentState() { + return (0, _react.useContext)(SegmentStateContext); +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=segment-explorer-node.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js b/cli/app/node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js new file mode 100644 index 00000000000..9cd5cb88222 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/app/terminal-logging-config.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getIsTerminalLoggingEnabled: null, + getTerminalLoggingConfig: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getIsTerminalLoggingEnabled: function() { + return getIsTerminalLoggingEnabled; + }, + getTerminalLoggingConfig: function() { + return getTerminalLoggingConfig; + } +}); +function getTerminalLoggingConfig() { + try { + return JSON.parse(process.env.__NEXT_BROWSER_DEBUG_INFO_IN_TERMINAL || 'false'); + } catch { + return false; + } +} +function getIsTerminalLoggingEnabled() { + const config = getTerminalLoggingConfig(); + return Boolean(config); +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=terminal-logging-config.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js b/cli/app/node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js new file mode 100644 index 00000000000..f24acd92cbb --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/pages/hydration-error-state.js @@ -0,0 +1,161 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + attachHydrationErrorState: null, + getSquashedHydrationErrorDetails: null, + storeHydrationErrorStateFromConsoleArgs: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + attachHydrationErrorState: function() { + return attachHydrationErrorState; + }, + getSquashedHydrationErrorDetails: function() { + return getSquashedHydrationErrorDetails; + }, + storeHydrationErrorStateFromConsoleArgs: function() { + return storeHydrationErrorStateFromConsoleArgs; + } +}); +const _react18hydrationerror = require("../../shared/react-18-hydration-error"); +const _react19hydrationerror = require("../../shared/react-19-hydration-error"); +// We only need this for React 18 or hydration console errors in React 19. +// Once we surface console.error in the dev overlay in pages router, we should only +// use this for React 18. +let hydrationErrorState = {}; +const squashedHydrationErrorDetails = new WeakMap(); +function getSquashedHydrationErrorDetails(error) { + return squashedHydrationErrorDetails.has(error) ? squashedHydrationErrorDetails.get(error) : null; +} +function attachHydrationErrorState(error) { + if (!(0, _react18hydrationerror.isHydrationError)(error) && !(0, _react19hydrationerror.isHydrationError)(error)) { + return; + } + let parsedHydrationErrorState = {}; + // If there's any extra information in the error message to display, + // append it to the error message details property + if (hydrationErrorState.warning) { + // The patched console.error found hydration errors logged by React + // Append the logged warning to the error message + parsedHydrationErrorState = { + // It contains the warning, component stack, server and client tag names + ...hydrationErrorState + }; + // Consume the cached hydration diff. + // This is only required for now when we still squashed the hydration diff log into hydration error. + // Once the all error is logged to dev overlay in order, this will go away. + if (hydrationErrorState.reactOutputComponentDiff) { + parsedHydrationErrorState.reactOutputComponentDiff = hydrationErrorState.reactOutputComponentDiff; + } + squashedHydrationErrorDetails.set(error, parsedHydrationErrorState); + } +} +function storeHydrationErrorStateFromConsoleArgs(...args) { + let [message, firstContent, secondContent, ...rest] = args; + if ((0, _react18hydrationerror.isHydrationWarning)(message)) { + // Some hydration warnings has 4 arguments, some has 3, fallback to the last argument + // when the 3rd argument is not the component stack but an empty string + // For some warnings, there's only 1 argument for template. + // The second argument is the diff or component stack. + if (args.length === 3) { + secondContent = ''; + } + const warning = message.replace(/Warning: /, '').replace('%s', firstContent).replace('%s', secondContent)// remove the last %s from the message + .replace(/%s/g, ''); + const lastArg = (rest[rest.length - 1] || '').trim(); + hydrationErrorState.reactOutputComponentDiff = generateHydrationDiffReact18(message, firstContent, secondContent, lastArg); + hydrationErrorState.warning = warning; + } else if ((0, _react19hydrationerror.isErrorMessageWithComponentStackDiff)(message)) { + // Some hydration warnings has 4 arguments, some has 3, fallback to the last argument + // when the 3rd argument is not the component stack but an empty string + // For some warnings, there's only 1 argument for template. + // The second argument is the diff or component stack. + if (args.length === 3) { + secondContent = ''; + } + const warning = message.replace('%s', firstContent).replace('%s', secondContent)// remove the last %s from the message + .replace(/%s/g, ''); + const lastArg = (args[args.length - 1] || '').trim(); + hydrationErrorState.reactOutputComponentDiff = lastArg; + hydrationErrorState.warning = warning; + } +} +/* + * Some hydration errors in React 18 does not have the diff in the error message. + * Instead it has the error stack trace which is component stack that we can leverage. + * Will parse the diff from the error stack trace + * e.g. + * Warning: Expected server HTML to contain a matching
in

. + * at div + * at p + * at div + * at div + * at Page + * output: + * + *

+ *

+ * >

+ * + */ function generateHydrationDiffReact18(message, firstContent, secondContent, lastArg) { + const componentStack = lastArg; + let firstIndex = -1; + let secondIndex = -1; + const hydrationWarningType = (0, _react18hydrationerror.getHydrationWarningType)(message); + // at div\n at Foo\n at Bar (....)\n -> [div, Foo] + const components = componentStack.split('\n')// .reverse() + .map((line, index)=>{ + // `at ()` -> `at ()` + line = line.trim(); + // extract `at ` to `<>` + // e.g. ` at Foo` -> `` + const [, component, location] = /at (\w+)( \((.*)\))?/.exec(line) || []; + // If there's no location then it's user-land stack frame + if (!location) { + if (component === firstContent && firstIndex === -1) { + firstIndex = index; + } else if (component === secondContent && secondIndex === -1) { + secondIndex = index; + } + } + return location ? '' : component; + }).filter(Boolean).reverse(); + let diff = ''; + for(let i = 0; i < components.length; i++){ + const component = components[i]; + const matchFirstContent = hydrationWarningType === 'tag' && i === components.length - firstIndex - 1; + const matchSecondContent = hydrationWarningType === 'tag' && i === components.length - secondIndex - 1; + if (matchFirstContent || matchSecondContent) { + const spaces = ' '.repeat(Math.max(i * 2 - 2, 0) + 2); + diff += `> ${spaces}<${component}>\n`; + } else { + const spaces = ' '.repeat(i * 2 + 2); + diff += `${spaces}<${component}>\n`; + } + } + if (hydrationWarningType === 'text') { + const spaces = ' '.repeat(components.length * 2); + diff += `+ ${spaces}"${firstContent}"\n`; + diff += `- ${spaces}"${secondContent}"\n`; + } else if (hydrationWarningType === 'text-in-tag') { + const spaces = ' '.repeat(components.length * 2); + diff += `> ${spaces}<${secondContent}>\n`; + diff += `> ${spaces}"${firstContent}"\n`; + } + return diff; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=hydration-error-state.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js b/cli/app/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js new file mode 100644 index 00000000000..416f9fd7d09 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-error-boundary.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PagesDevOverlayErrorBoundary", { + enumerable: true, + get: function() { + return PagesDevOverlayErrorBoundary; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +class PagesDevOverlayErrorBoundary extends _react.default.PureComponent { + static getDerivedStateFromError(error) { + return { + error + }; + } + // Explicit type is needed to avoid the generated `.d.ts` having a wide return type that could be specific to the `@types/react` version. + render() { + // The component has to be unmounted or else it would continue to error + return this.state.error ? null : this.props.children; + } + constructor(...args){ + super(...args), this.state = { + error: null + }; + } +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=pages-dev-overlay-error-boundary.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js b/cli/app/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js new file mode 100644 index 00000000000..edbe0b76350 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/pages/pages-dev-overlay-setup.js @@ -0,0 +1,112 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PagesDevOverlayBridge: null, + register: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PagesDevOverlayBridge: function() { + return PagesDevOverlayBridge; + }, + register: function() { + return register; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _jsxruntime = require("react/jsx-runtime"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const _nextdevtools = require("next/dist/compiled/next-devtools"); +const _hydrationerrorstate = require("./hydration-error-state"); +const _router = require("../../../client/router"); +const _stitchederror = require("../app/errors/stitched-error"); +const _onrecoverableerror = require("../../../client/react-client-callbacks/on-recoverable-error"); +const _pagesdevoverlayerrorboundary = require("./pages-dev-overlay-error-boundary"); +const _forwardlogs = require("../app/forward-logs"); +const usePagesDevOverlayBridge = ()=>{ + _react.default.useInsertionEffect(()=>{ + // NDT uses a different React instance so it's not technically a state update + // scheduled from useInsertionEffect. + (0, _nextdevtools.renderPagesDevOverlay)(_stitchederror.getOwnerStack, _hydrationerrorstate.getSquashedHydrationErrorDetails, _onrecoverableerror.isRecoverableError); + }, []); + _react.default.useEffect(()=>{ + const { handleStaticIndicator } = require('../../../client/dev/hot-reloader/pages/hot-reloader-pages'); + _router.Router.events.on('routeChangeComplete', handleStaticIndicator); + return function() { + _router.Router.events.off('routeChangeComplete', handleStaticIndicator); + }; + }, []); +}; +function PagesDevOverlayBridge({ children }) { + usePagesDevOverlayBridge(); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(_pagesdevoverlayerrorboundary.PagesDevOverlayErrorBoundary, { + children: children + }); +} +let isRegistered = false; +function handleError(error) { + if (!error || !(error instanceof Error) || typeof error.stack !== 'string') { + // A non-error was thrown, we don't have anything to show. :-( + return; + } + (0, _hydrationerrorstate.attachHydrationErrorState)(error); + // Skip ModuleBuildError and ModuleNotFoundError, as it will be sent through onBuildError callback. + // This is to avoid same error as different type showing up on client to cause flashing. + if (error.name !== 'ModuleBuildError' && error.name !== 'ModuleNotFoundError') { + _nextdevtools.dispatcher.onUnhandledError(error); + } +} +let origConsoleError = console.error; +function nextJsHandleConsoleError(...args) { + // See https://github.com/facebook/react/blob/d50323eb845c5fde0d720cae888bf35dedd05506/packages/react-reconciler/src/ReactFiberErrorLogger.js#L78 + const maybeError = process.env.NODE_ENV !== 'production' ? args[1] : args[0]; + (0, _hydrationerrorstate.storeHydrationErrorStateFromConsoleArgs)(...args); + // TODO: Surfaces non-errors logged via `console.error`. + handleError(maybeError); + (0, _forwardlogs.forwardErrorLog)(args); + origConsoleError.apply(window.console, args); +} +function onUnhandledError(event) { + const error = event?.error; + handleError(error); + if (error) { + (0, _forwardlogs.forwardUnhandledError)(error); + } +} +function onUnhandledRejection(ev) { + const reason = ev?.reason; + if (!reason || !(reason instanceof Error) || typeof reason.stack !== 'string') { + // A non-error was thrown, we don't have anything to show. :-( + return; + } + _nextdevtools.dispatcher.onUnhandledRejection(reason); + (0, _forwardlogs.logUnhandledRejection)(reason); +} +function register() { + if (isRegistered) { + return; + } + isRegistered = true; + try { + Error.stackTraceLimit = 50; + } catch {} + (0, _forwardlogs.initializeDebugLogForwarding)('pages'); + window.addEventListener('error', onUnhandledError); + window.addEventListener('unhandledrejection', onUnhandledRejection); + window.console.error = nextJsHandleConsoleError; +} + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=pages-dev-overlay-setup.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js b/cli/app/node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js new file mode 100644 index 00000000000..02b389f81a9 --- /dev/null +++ b/cli/app/node_modules/next/dist/next-devtools/userspace/use-app-dev-rendering-indicator.js @@ -0,0 +1,34 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "useAppDevRenderingIndicator", { + enumerable: true, + get: function() { + return useAppDevRenderingIndicator; + } +}); +const _react = require("react"); +const _nextdevtools = require("next/dist/compiled/next-devtools"); +const useAppDevRenderingIndicator = ()=>{ + const [isPending, startTransition] = (0, _react.useTransition)(); + (0, _react.useEffect)(()=>{ + if (isPending) { + _nextdevtools.dispatcher.renderingIndicatorShow(); + } else { + _nextdevtools.dispatcher.renderingIndicatorHide(); + } + }, [ + isPending + ]); + return startTransition; +}; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=use-app-dev-rendering-indicator.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/ReactDOMServerPages.js b/cli/app/node_modules/next/dist/server/ReactDOMServerPages.js new file mode 100644 index 00000000000..362aacef31e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/ReactDOMServerPages.js @@ -0,0 +1,16 @@ +"use strict"; +let ReactDOMServer; +try { + // TODO: Use Node.js build unless we're in an Edge runtime. + ReactDOMServer = require('react-dom/server.edge'); +} catch (error) { + if (error.code !== 'MODULE_NOT_FOUND' && error.code !== 'ERR_PACKAGE_PATH_NOT_EXPORTED') { + throw error; + } + // In React versions without react-dom/server.edge, the browser build works in Node.js. + // The Node.js build does not support renderToReadableStream. + ReactDOMServer = require('react-dom/server.browser'); +} +module.exports = ReactDOMServer; + +//# sourceMappingURL=ReactDOMServerPages.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/accept-header.js b/cli/app/node_modules/next/dist/server/accept-header.js new file mode 100644 index 00000000000..0b23fa3ff81 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/accept-header.js @@ -0,0 +1,132 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "acceptLanguage", { + enumerable: true, + get: function() { + return acceptLanguage; + } +}); +function parse(raw, preferences, options) { + const lowers = new Map(); + const header = raw.replace(/[ \t]/g, ''); + if (preferences) { + let pos = 0; + for (const preference of preferences){ + const lower = preference.toLowerCase(); + lowers.set(lower, { + orig: preference, + pos: pos++ + }); + if (options.prefixMatch) { + const parts = lower.split('-'); + while(parts.pop(), parts.length > 0){ + const joined = parts.join('-'); + if (!lowers.has(joined)) { + lowers.set(joined, { + orig: preference, + pos: pos++ + }); + } + } + } + } + } + const parts = header.split(','); + const selections = []; + const map = new Set(); + for(let i = 0; i < parts.length; ++i){ + const part = parts[i]; + if (!part) { + continue; + } + const params = part.split(';'); + if (params.length > 2) { + throw Object.defineProperty(new Error(`Invalid ${options.type} header`), "__NEXT_ERROR_CODE", { + value: "E77", + enumerable: false, + configurable: true + }); + } + let token = params[0].toLowerCase(); + if (!token) { + throw Object.defineProperty(new Error(`Invalid ${options.type} header`), "__NEXT_ERROR_CODE", { + value: "E77", + enumerable: false, + configurable: true + }); + } + const selection = { + token, + pos: i, + q: 1 + }; + if (preferences && lowers.has(token)) { + selection.pref = lowers.get(token).pos; + } + map.add(selection.token); + if (params.length === 2) { + const q = params[1]; + const [key, value] = q.split('='); + if (!value || key !== 'q' && key !== 'Q') { + throw Object.defineProperty(new Error(`Invalid ${options.type} header`), "__NEXT_ERROR_CODE", { + value: "E77", + enumerable: false, + configurable: true + }); + } + const score = parseFloat(value); + if (score === 0) { + continue; + } + if (Number.isFinite(score) && score <= 1 && score >= 0.001) { + selection.q = score; + } + } + selections.push(selection); + } + selections.sort((a, b)=>{ + if (b.q !== a.q) { + return b.q - a.q; + } + if (b.pref !== a.pref) { + if (a.pref === undefined) { + return 1; + } + if (b.pref === undefined) { + return -1; + } + return a.pref - b.pref; + } + return a.pos - b.pos; + }); + const values = selections.map((selection)=>selection.token); + if (!preferences || !preferences.length) { + return values; + } + const preferred = []; + for (const selection of values){ + if (selection === '*') { + for (const [preference, value] of lowers){ + if (!map.has(preference)) { + preferred.push(value.orig); + } + } + } else { + const lower = selection.toLowerCase(); + if (lowers.has(lower)) { + preferred.push(lowers.get(lower).orig); + } + } + } + return preferred; +} +function acceptLanguage(header = '', preferences) { + return parse(header, preferences, { + type: 'accept-language', + prefixMatch: true + })[0] || ''; +} + +//# sourceMappingURL=accept-header.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/after/after-context.js b/cli/app/node_modules/next/dist/server/after/after-context.js new file mode 100644 index 00000000000..8b045e13f58 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/after/after-context.js @@ -0,0 +1,140 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AfterContext", { + enumerable: true, + get: function() { + return AfterContext; + } +}); +const _pqueue = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/p-queue")); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _isthenable = require("../../shared/lib/is-thenable"); +const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); +const _revalidationutils = require("../revalidation-utils"); +const _asynclocalstorage = require("../app-render/async-local-storage"); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const _aftertaskasyncstorageexternal = require("../app-render/after-task-async-storage.external"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class AfterContext { + constructor({ waitUntil, onClose, onTaskError }){ + this.workUnitStores = new Set(); + this.waitUntil = waitUntil; + this.onClose = onClose; + this.onTaskError = onTaskError; + this.callbackQueue = new _pqueue.default(); + this.callbackQueue.pause(); + } + after(task) { + if ((0, _isthenable.isThenable)(task)) { + if (!this.waitUntil) { + errorWaitUntilNotAvailable(); + } + this.waitUntil(task.catch((error)=>this.reportTaskError('promise', error))); + } else if (typeof task === 'function') { + // TODO(after): implement tracing + this.addCallback(task); + } else { + throw Object.defineProperty(new Error('`after()`: Argument must be a promise or a function'), "__NEXT_ERROR_CODE", { + value: "E50", + enumerable: false, + configurable: true + }); + } + } + addCallback(callback) { + // if something is wrong, throw synchronously, bubbling up to the `after` callsite. + if (!this.waitUntil) { + errorWaitUntilNotAvailable(); + } + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + this.workUnitStores.add(workUnitStore); + } + const afterTaskStore = _aftertaskasyncstorageexternal.afterTaskAsyncStorage.getStore(); + // This is used for checking if request APIs can be called inside `after`. + // Note that we need to check the phase in which the *topmost* `after` was called (which should be "action"), + // not the current phase (which might be "after" if we're in a nested after). + // Otherwise, we might allow `after(() => headers())`, but not `after(() => after(() => headers()))`. + const rootTaskSpawnPhase = afterTaskStore ? afterTaskStore.rootTaskSpawnPhase // nested after + : workUnitStore == null ? void 0 : workUnitStore.phase // topmost after + ; + // this should only happen once. + if (!this.runCallbacksOnClosePromise) { + this.runCallbacksOnClosePromise = this.runCallbacksOnClose(); + this.waitUntil(this.runCallbacksOnClosePromise); + } + // Bind the callback to the current execution context (i.e. preserve all currently available ALS-es). + // We do this because we want all of these to be equivalent in every regard except timing: + // after(() => x()) + // after(x()) + // await x() + const wrappedCallback = (0, _asynclocalstorage.bindSnapshot)(// WARNING: Don't make this a named function. It must be anonymous. + // See: https://github.com/facebook/react/pull/34911 + async ()=>{ + try { + await _aftertaskasyncstorageexternal.afterTaskAsyncStorage.run({ + rootTaskSpawnPhase + }, ()=>callback()); + } catch (error) { + this.reportTaskError('function', error); + } + }); + this.callbackQueue.add(wrappedCallback); + } + async runCallbacksOnClose() { + await new Promise((resolve)=>this.onClose(resolve)); + return this.runCallbacks(); + } + async runCallbacks() { + if (this.callbackQueue.size === 0) return; + for (const workUnitStore of this.workUnitStores){ + workUnitStore.phase = 'after'; + } + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (!workStore) { + throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in AfterContext.runCallbacks'), "__NEXT_ERROR_CODE", { + value: "E547", + enumerable: false, + configurable: true + }); + } + return (0, _revalidationutils.withExecuteRevalidates)(workStore, ()=>{ + this.callbackQueue.start(); + return this.callbackQueue.onIdle(); + }); + } + reportTaskError(taskKind, error) { + // TODO(after): this is fine for now, but will need better intergration with our error reporting. + // TODO(after): should we log this if we have a onTaskError callback? + console.error(taskKind === 'promise' ? `A promise passed to \`after()\` rejected:` : `An error occurred in a function passed to \`after()\`:`, error); + if (this.onTaskError) { + // this is very defensive, but we really don't want anything to blow up in an error handler + try { + this.onTaskError == null ? void 0 : this.onTaskError.call(this, error); + } catch (handlerError) { + console.error(Object.defineProperty(new _invarianterror.InvariantError('`onTaskError` threw while handling an error thrown from an `after` task', { + cause: handlerError + }), "__NEXT_ERROR_CODE", { + value: "E569", + enumerable: false, + configurable: true + })); + } + } + } +} +function errorWaitUntilNotAvailable() { + throw Object.defineProperty(new Error('`after()` will not work correctly, because `waitUntil` is not available in the current environment.'), "__NEXT_ERROR_CODE", { + value: "E91", + enumerable: false, + configurable: true + }); +} + +//# sourceMappingURL=after-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/after/awaiter.js b/cli/app/node_modules/next/dist/server/after/awaiter.js new file mode 100644 index 00000000000..5523cf5326a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/after/awaiter.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AwaiterMulti: null, + AwaiterOnce: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AwaiterMulti: function() { + return AwaiterMulti; + }, + AwaiterOnce: function() { + return AwaiterOnce; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +class AwaiterMulti { + constructor({ onError } = {}){ + this.promises = new Set(); + this.waitUntil = (promise)=>{ + // if a promise settles before we await it, we should drop it -- + // storing them indefinitely could result in a memory leak. + const cleanup = ()=>{ + this.promises.delete(promise); + }; + promise.then(cleanup, (err)=>{ + cleanup(); + this.onError(err); + }); + this.promises.add(promise); + }; + this.onError = onError ?? console.error; + } + async awaiting() { + while(this.promises.size > 0){ + const promises = Array.from(this.promises); + this.promises.clear(); + await Promise.allSettled(promises); + } + } +} +class AwaiterOnce { + constructor(options = {}){ + this.done = false; + this.waitUntil = (promise)=>{ + if (this.done) { + throw Object.defineProperty(new _invarianterror.InvariantError('Cannot call waitUntil() on an AwaiterOnce that was already awaited'), "__NEXT_ERROR_CODE", { + value: "E563", + enumerable: false, + configurable: true + }); + } + return this.awaiter.waitUntil(promise); + }; + this.awaiter = new AwaiterMulti(options); + } + async awaiting() { + if (!this.pending) { + this.pending = this.awaiter.awaiting().finally(()=>{ + this.done = true; + }); + } + return this.pending; + } +} + +//# sourceMappingURL=awaiter.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/after/builtin-request-context.js b/cli/app/node_modules/next/dist/server/after/builtin-request-context.js new file mode 100644 index 00000000000..c9706a574e4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/after/builtin-request-context.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createLocalRequestContext: null, + getBuiltinRequestContext: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createLocalRequestContext: function() { + return createLocalRequestContext; + }, + getBuiltinRequestContext: function() { + return getBuiltinRequestContext; + } +}); +const _asynclocalstorage = require("../app-render/async-local-storage"); +function getBuiltinRequestContext() { + const _globalThis = globalThis; + const ctx = _globalThis[NEXT_REQUEST_CONTEXT_SYMBOL]; + return ctx == null ? void 0 : ctx.get(); +} +const NEXT_REQUEST_CONTEXT_SYMBOL = Symbol.for('@next/request-context'); +function createLocalRequestContext() { + const storage = (0, _asynclocalstorage.createAsyncLocalStorage)(); + return { + get: ()=>storage.getStore(), + run: (value, callback)=>storage.run(value, callback) + }; +} + +//# sourceMappingURL=builtin-request-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/after/run-with-after.js b/cli/app/node_modules/next/dist/server/after/run-with-after.js new file mode 100644 index 00000000000..bfd1e00ae8e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/after/run-with-after.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AfterRunner", { + enumerable: true, + get: function() { + return AfterRunner; + } +}); +const _detachedpromise = require("../../lib/detached-promise"); +const _webonclose = require("../web/web-on-close"); +const _awaiter = require("./awaiter"); +class AfterRunner { + async executeAfter() { + this.closeController.dispatchClose(); + await this.awaiter.awaiting(); + // if we got an error while running the callbacks, + // thenthis is a noop, because the promise is already rejected + this.finishedWithoutErrors.resolve(); + return this.finishedWithoutErrors.promise; + } + constructor(){ + this.awaiter = new _awaiter.AwaiterOnce(); + this.closeController = new _webonclose.CloseController(); + this.finishedWithoutErrors = new _detachedpromise.DetachedPromise(); + this.context = { + waitUntil: this.awaiter.waitUntil.bind(this.awaiter), + onClose: this.closeController.onClose.bind(this.closeController), + onTaskError: (error)=>this.finishedWithoutErrors.reject(error) + }; + } +} + +//# sourceMappingURL=run-with-after.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/api-utils/get-cookie-parser.js b/cli/app/node_modules/next/dist/server/api-utils/get-cookie-parser.js new file mode 100644 index 00000000000..9997837bfa9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/api-utils/get-cookie-parser.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getCookieParser", { + enumerable: true, + get: function() { + return getCookieParser; + } +}); +function getCookieParser(headers) { + return function parseCookie() { + const { cookie } = headers; + if (!cookie) { + return {}; + } + const { parse: parseCookieFn } = require('next/dist/compiled/cookie'); + return parseCookieFn(Array.isArray(cookie) ? cookie.join('; ') : cookie); + }; +} + +//# sourceMappingURL=get-cookie-parser.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/api-utils/index.js b/cli/app/node_modules/next/dist/server/api-utils/index.js new file mode 100644 index 00000000000..6d38e7d73c7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/api-utils/index.js @@ -0,0 +1,201 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ApiError: null, + COOKIE_NAME_PRERENDER_BYPASS: null, + COOKIE_NAME_PRERENDER_DATA: null, + RESPONSE_LIMIT_DEFAULT: null, + SYMBOL_CLEARED_COOKIES: null, + SYMBOL_PREVIEW_DATA: null, + checkIsOnDemandRevalidate: null, + clearPreviewData: null, + redirect: null, + sendError: null, + sendStatusCode: null, + setLazyProp: null, + wrapApiHandler: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ApiError: function() { + return ApiError; + }, + COOKIE_NAME_PRERENDER_BYPASS: function() { + return COOKIE_NAME_PRERENDER_BYPASS; + }, + COOKIE_NAME_PRERENDER_DATA: function() { + return COOKIE_NAME_PRERENDER_DATA; + }, + RESPONSE_LIMIT_DEFAULT: function() { + return RESPONSE_LIMIT_DEFAULT; + }, + SYMBOL_CLEARED_COOKIES: function() { + return SYMBOL_CLEARED_COOKIES; + }, + SYMBOL_PREVIEW_DATA: function() { + return SYMBOL_PREVIEW_DATA; + }, + checkIsOnDemandRevalidate: function() { + return checkIsOnDemandRevalidate; + }, + clearPreviewData: function() { + return clearPreviewData; + }, + redirect: function() { + return redirect; + }, + sendError: function() { + return sendError; + }, + sendStatusCode: function() { + return sendStatusCode; + }, + setLazyProp: function() { + return setLazyProp; + }, + wrapApiHandler: function() { + return wrapApiHandler; + } +}); +const _headers = require("../web/spec-extension/adapters/headers"); +const _constants = require("../../lib/constants"); +const _tracer = require("../lib/trace/tracer"); +const _constants1 = require("../lib/trace/constants"); +function wrapApiHandler(page, handler) { + return (...args)=>{ + (0, _tracer.getTracer)().setRootSpanAttribute('next.route', page); + // Call API route method + return (0, _tracer.getTracer)().trace(_constants1.NodeSpan.runHandler, { + spanName: `executing api route (pages) ${page}` + }, ()=>handler(...args)); + }; +} +function sendStatusCode(res, statusCode) { + res.statusCode = statusCode; + return res; +} +function redirect(res, statusOrUrl, url) { + if (typeof statusOrUrl === 'string') { + url = statusOrUrl; + statusOrUrl = 307; + } + if (typeof statusOrUrl !== 'number' || typeof url !== 'string') { + throw Object.defineProperty(new Error(`Invalid redirect arguments. Please use a single argument URL, e.g. res.redirect('/destination') or use a status code and URL, e.g. res.redirect(307, '/destination').`), "__NEXT_ERROR_CODE", { + value: "E389", + enumerable: false, + configurable: true + }); + } + res.writeHead(statusOrUrl, { + Location: url + }); + res.write(url); + res.end(); + return res; +} +function checkIsOnDemandRevalidate(req, previewProps) { + const headers = _headers.HeadersAdapter.from(req.headers); + const previewModeId = headers.get(_constants.PRERENDER_REVALIDATE_HEADER); + const isOnDemandRevalidate = previewModeId === previewProps.previewModeId; + const revalidateOnlyGenerated = headers.has(_constants.PRERENDER_REVALIDATE_ONLY_GENERATED_HEADER); + return { + isOnDemandRevalidate, + revalidateOnlyGenerated + }; +} +const COOKIE_NAME_PRERENDER_BYPASS = `__prerender_bypass`; +const COOKIE_NAME_PRERENDER_DATA = `__next_preview_data`; +const RESPONSE_LIMIT_DEFAULT = 4 * 1024 * 1024; +const SYMBOL_PREVIEW_DATA = Symbol(COOKIE_NAME_PRERENDER_DATA); +const SYMBOL_CLEARED_COOKIES = Symbol(COOKIE_NAME_PRERENDER_BYPASS); +function clearPreviewData(res, options = {}) { + if (SYMBOL_CLEARED_COOKIES in res) { + return res; + } + const { serialize } = require('next/dist/compiled/cookie'); + const previous = res.getHeader('Set-Cookie'); + res.setHeader(`Set-Cookie`, [ + ...typeof previous === 'string' ? [ + previous + ] : Array.isArray(previous) ? previous : [], + serialize(COOKIE_NAME_PRERENDER_BYPASS, '', { + // To delete a cookie, set `expires` to a date in the past: + // https://tools.ietf.org/html/rfc6265#section-4.1.1 + // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted. + expires: new Date(0), + httpOnly: true, + sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax', + secure: process.env.NODE_ENV !== 'development', + path: '/', + ...options.path !== undefined ? { + path: options.path + } : undefined + }), + serialize(COOKIE_NAME_PRERENDER_DATA, '', { + // To delete a cookie, set `expires` to a date in the past: + // https://tools.ietf.org/html/rfc6265#section-4.1.1 + // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted. + expires: new Date(0), + httpOnly: true, + sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax', + secure: process.env.NODE_ENV !== 'development', + path: '/', + ...options.path !== undefined ? { + path: options.path + } : undefined + }) + ]); + Object.defineProperty(res, SYMBOL_CLEARED_COOKIES, { + value: true, + enumerable: false + }); + return res; +} +class ApiError extends Error { + constructor(statusCode, message){ + super(message); + this.statusCode = statusCode; + } +} +function sendError(res, statusCode, message) { + res.statusCode = statusCode; + res.statusMessage = message; + res.end(message); +} +function setLazyProp({ req }, prop, getter) { + const opts = { + configurable: true, + enumerable: true + }; + const optsReset = { + ...opts, + writable: true + }; + Object.defineProperty(req, prop, { + ...opts, + get: ()=>{ + const value = getter(); + // we set the property on the object to avoid recalculating it + Object.defineProperty(req, prop, { + ...optsReset, + value + }); + return value; + }, + set: (value)=>{ + Object.defineProperty(req, prop, { + ...optsReset, + value + }); + } + }); +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/api-utils/node/parse-body.js b/cli/app/node_modules/next/dist/server/api-utils/node/parse-body.js new file mode 100644 index 00000000000..1c820bc98fc --- /dev/null +++ b/cli/app/node_modules/next/dist/server/api-utils/node/parse-body.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseBody", { + enumerable: true, + get: function() { + return parseBody; + } +}); +const _contenttype = require("next/dist/compiled/content-type"); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../../../lib/is-error")); +const _index = require("../index"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/** + * Parse `JSON` and handles invalid `JSON` strings + * @param str `JSON` string + */ function parseJson(str) { + if (str.length === 0) { + // special-case empty json body, as it's a common client-side mistake + return {}; + } + try { + return JSON.parse(str); + } catch (e) { + throw Object.defineProperty(new _index.ApiError(400, 'Invalid JSON'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } +} +async function parseBody(req, limit) { + let contentType; + try { + contentType = (0, _contenttype.parse)(req.headers['content-type'] || 'text/plain'); + } catch { + contentType = (0, _contenttype.parse)('text/plain'); + } + const { type, parameters } = contentType; + const encoding = parameters.charset || 'utf-8'; + let buffer; + try { + const getRawBody = require('next/dist/compiled/raw-body'); + buffer = await getRawBody(req, { + encoding, + limit + }); + } catch (e) { + if ((0, _iserror.default)(e) && e.type === 'entity.too.large') { + throw Object.defineProperty(new _index.ApiError(413, `Body exceeded ${limit} limit`), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } else { + throw Object.defineProperty(new _index.ApiError(400, 'Invalid body'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + } + const body = buffer.toString(); + if (type === 'application/json' || type === 'application/ld+json') { + return parseJson(body); + } else if (type === 'application/x-www-form-urlencoded') { + const qs = require('querystring'); + return qs.decode(body); + } else { + return body; + } +} + +//# sourceMappingURL=parse-body.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js b/cli/app/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js new file mode 100644 index 00000000000..62bcd3da781 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/api-utils/node/try-get-preview-data.js @@ -0,0 +1,86 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "tryGetPreviewData", { + enumerable: true, + get: function() { + return tryGetPreviewData; + } +}); +const _ = require("../."); +const _index = require("../index"); +const _cookies = require("../../web/spec-extension/cookies"); +const _headers = require("../../web/spec-extension/adapters/headers"); +function tryGetPreviewData(req, res, options, multiZoneDraftMode) { + var _cookies_get, _cookies_get1; + // if an On-Demand revalidation is being done preview mode + // is disabled + if (options && (0, _.checkIsOnDemandRevalidate)(req, options).isOnDemandRevalidate) { + return false; + } + // Read cached preview data if present + // TODO: use request metadata instead of a symbol + if (_index.SYMBOL_PREVIEW_DATA in req) { + return req[_index.SYMBOL_PREVIEW_DATA]; + } + const headers = _headers.HeadersAdapter.from(req.headers); + const cookies = new _cookies.RequestCookies(headers); + const previewModeId = (_cookies_get = cookies.get(_index.COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value; + const tokenPreviewData = (_cookies_get1 = cookies.get(_index.COOKIE_NAME_PRERENDER_DATA)) == null ? void 0 : _cookies_get1.value; + // Case: preview mode cookie set but data cookie is not set + if (previewModeId && !tokenPreviewData && previewModeId === options.previewModeId) { + // This is "Draft Mode" which doesn't use + // previewData, so we return an empty object + // for backwards compat with "Preview Mode". + const data = {}; + Object.defineProperty(req, _index.SYMBOL_PREVIEW_DATA, { + value: data, + enumerable: false + }); + return data; + } + // Case: neither cookie is set. + if (!previewModeId && !tokenPreviewData) { + return false; + } + // Case: one cookie is set, but not the other. + if (!previewModeId || !tokenPreviewData) { + if (!multiZoneDraftMode) { + (0, _index.clearPreviewData)(res); + } + return false; + } + // Case: preview session is for an old build. + if (previewModeId !== options.previewModeId) { + if (!multiZoneDraftMode) { + (0, _index.clearPreviewData)(res); + } + return false; + } + let encryptedPreviewData; + try { + const jsonwebtoken = require('next/dist/compiled/jsonwebtoken'); + encryptedPreviewData = jsonwebtoken.verify(tokenPreviewData, options.previewModeSigningKey); + } catch { + // TODO: warn + (0, _index.clearPreviewData)(res); + return false; + } + const { decryptWithSecret } = require('../../crypto-utils'); + const decryptedPreviewData = decryptWithSecret(Buffer.from(options.previewModeEncryptionKey), encryptedPreviewData.data); + try { + // TODO: strict runtime type checking + const data = JSON.parse(decryptedPreviewData); + // Cache lookup + Object.defineProperty(req, _index.SYMBOL_PREVIEW_DATA, { + value: data, + enumerable: false + }); + return data; + } catch { + return false; + } +} + +//# sourceMappingURL=try-get-preview-data.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/action-async-storage-instance.js b/cli/app/node_modules/next/dist/server/app-render/action-async-storage-instance.js new file mode 100644 index 00000000000..a9d8f6809dc --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/action-async-storage-instance.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "actionAsyncStorageInstance", { + enumerable: true, + get: function() { + return actionAsyncStorageInstance; + } +}); +const _asynclocalstorage = require("./async-local-storage"); +const actionAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)(); + +//# sourceMappingURL=action-async-storage-instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/action-async-storage.external.js b/cli/app/node_modules/next/dist/server/app-render/action-async-storage.external.js new file mode 100644 index 00000000000..9b19aedce41 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/action-async-storage.external.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "actionAsyncStorage", { + enumerable: true, + get: function() { + return _actionasyncstorageinstance.actionAsyncStorageInstance; + } +}); +const _actionasyncstorageinstance = require("./action-async-storage-instance"); + +//# sourceMappingURL=action-async-storage.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/action-handler.js b/cli/app/node_modules/next/dist/server/app-render/action-handler.js new file mode 100644 index 00000000000..6bae297fe25 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/action-handler.js @@ -0,0 +1,1020 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handleAction: null, + parseHostHeader: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handleAction: function() { + return handleAction; + }, + parseHostHeader: function() { + return parseHostHeader; + } +}); +const _approuterheaders = require("../../client/components/app-router-headers"); +const _httpaccessfallback = require("../../client/components/http-access-fallback/http-access-fallback"); +const _redirect = require("../../client/components/redirect"); +const _redirecterror = require("../../client/components/redirect-error"); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("../render-result")); +const _flightrenderresult = require("./flight-render-result"); +const _utils = require("../lib/server-ipc/utils"); +const _requestcookies = require("../web/spec-extension/adapters/request-cookies"); +const _constants = require("../../lib/constants"); +const _serveractionrequestmeta = require("../lib/server-action-request-meta"); +const _csrfprotection = require("./csrf-protection"); +const _log = require("../../build/output/log"); +const _cookies = require("../web/spec-extension/cookies"); +const _headers = require("../web/spec-extension/adapters/headers"); +const _utils1 = require("../web/utils"); +const _manifestssingleton = require("./manifests-singleton"); +const _helpers = require("../base-http/helpers"); +const _segmentexplorerpath = require("./segment-explorer-path"); +const _serverreferenceinfo = require("../../shared/lib/server-reference-info"); +const _redirectstatuscode = require("../../client/components/redirect-status-code"); +const _requeststore = require("../async-storage/request-store"); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _revalidationutils = require("../revalidation-utils"); +const _requestmeta = require("../request-meta"); +const _setcachebustingsearchparam = require("../../client/components/router-reducer/set-cache-busting-search-param"); +const _actionrevalidationkind = require("../../shared/lib/action-revalidation-kind"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const INLINE_ACTION_PREFIX = '$$RSC_SERVER_ACTION_'; +/** + * Checks if the app has any server actions defined in any runtime. + */ function hasServerActions() { + const serverActionsManifest = (0, _manifestssingleton.getServerActionsManifest)(); + return Object.keys(serverActionsManifest.node).length > 0 || Object.keys(serverActionsManifest.edge).length > 0; +} +function nodeHeadersToRecord(headers) { + const record = {}; + for (const [key, value] of Object.entries(headers)){ + if (value !== undefined) { + record[key] = Array.isArray(value) ? value.join(', ') : `${value}`; + } + } + return record; +} +function getForwardedHeaders(req, res) { + // Get request headers and cookies + const requestHeaders = req.headers; + const requestCookies = new _cookies.RequestCookies(_headers.HeadersAdapter.from(requestHeaders)); + // Get response headers and cookies + const responseHeaders = res.getHeaders(); + const responseCookies = new _cookies.ResponseCookies((0, _utils1.fromNodeOutgoingHttpHeaders)(responseHeaders)); + // Merge request and response headers + const mergedHeaders = (0, _utils.filterReqHeaders)({ + ...nodeHeadersToRecord(requestHeaders), + ...nodeHeadersToRecord(responseHeaders) + }, _utils.actionsForbiddenHeaders); + // Merge cookies into requestCookies, so responseCookies always take precedence + // and overwrite/delete those from requestCookies. + responseCookies.getAll().forEach((cookie)=>{ + if (typeof cookie.value === 'undefined') { + requestCookies.delete(cookie.name); + } else { + requestCookies.set(cookie); + } + }); + // Update the 'cookie' header with the merged cookies + mergedHeaders['cookie'] = requestCookies.toString(); + // Remove headers that should not be forwarded + delete mergedHeaders['transfer-encoding']; + return new Headers(mergedHeaders); +} +function addRevalidationHeader(res, { workStore, requestStore }) { + var _workStore_pendingRevalidatedTags; + // If a tag was revalidated, the client router needs to invalidate all the + // client router cache as they may be stale. And if a path was revalidated, the + // client needs to invalidate all subtrees below that path. + // TODO: Currently we don't send the specific tags or paths to the client, + // we just send a flag indicating that all the static data on the client + // should be invalidated. In the future, this will likely be a Bloom filter + // or bitmask of some kind. + // TODO-APP: Currently the prefetch cache doesn't have subtree information, + // so we need to invalidate the entire cache if a path was revalidated. + // TODO-APP: Currently paths are treated as tags, so the second element of the tuple + // is always empty. + // Only count tags without a profile (updateTag) as requiring client cache invalidation + // Tags with a profile (revalidateTag) use stale-while-revalidate and shouldn't + // trigger immediate client-side cache invalidation + const isTagRevalidated = ((_workStore_pendingRevalidatedTags = workStore.pendingRevalidatedTags) == null ? void 0 : _workStore_pendingRevalidatedTags.some((item)=>item.profile === undefined)) ? 1 : 0; + const isCookieRevalidated = (0, _requestcookies.getModifiedCookieValues)(requestStore.mutableCookies).length ? 1 : 0; + // First check if a tag, cookie, or path was revalidated. + if (isTagRevalidated || isCookieRevalidated) { + res.setHeader(_approuterheaders.NEXT_ACTION_REVALIDATED_HEADER, JSON.stringify(_actionrevalidationkind.ActionDidRevalidateStaticAndDynamic)); + } else if (// Check for refresh() actions. This will invalidate only the dynamic data. + workStore.pathWasRevalidated !== undefined && workStore.pathWasRevalidated !== _actionrevalidationkind.ActionDidNotRevalidate) { + res.setHeader(_approuterheaders.NEXT_ACTION_REVALIDATED_HEADER, JSON.stringify(workStore.pathWasRevalidated)); + } +} +/** + * Forwards a server action request to a separate worker. Used when the requested action is not available in the current worker. + */ async function createForwardedActionResponse(req, res, host, workerPathname, basePath) { + var _getRequestMeta; + if (!host) { + throw Object.defineProperty(new Error('Invariant: Missing `host` header from a forwarded Server Actions request.'), "__NEXT_ERROR_CODE", { + value: "E226", + enumerable: false, + configurable: true + }); + } + const forwardedHeaders = getForwardedHeaders(req, res); + // indicate that this action request was forwarded from another worker + // we use this to skip rendering the flight tree so that we don't update the UI + // with the response from the forwarded worker + forwardedHeaders.set('x-action-forwarded', '1'); + const proto = ((_getRequestMeta = (0, _requestmeta.getRequestMeta)(req, 'initProtocol')) == null ? void 0 : _getRequestMeta.replace(/:+$/, '')) || 'https'; + // For standalone or the serverful mode, use the internal origin directly + // other than the host headers from the request. + const origin = process.env.__NEXT_PRIVATE_ORIGIN || `${proto}://${host.value}`; + const fetchUrl = new URL(`${origin}${basePath}${workerPathname}`); + try { + var _response_headers_get; + let body; + if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME === 'edge' && (0, _helpers.isWebNextRequest)(req)) { + if (!req.body) { + throw Object.defineProperty(new Error('Invariant: missing request body.'), "__NEXT_ERROR_CODE", { + value: "E333", + enumerable: false, + configurable: true + }); + } + body = req.body; + } else if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextRequest)(req)) { + body = req.stream(); + } else { + throw Object.defineProperty(new Error('Invariant: Unknown request type.'), "__NEXT_ERROR_CODE", { + value: "E114", + enumerable: false, + configurable: true + }); + } + // Forward the request to the new worker + const response = await fetch(fetchUrl, { + method: 'POST', + body, + duplex: 'half', + headers: forwardedHeaders, + redirect: 'manual', + next: { + // @ts-ignore + internal: 1 + } + }); + if ((_response_headers_get = response.headers.get('content-type')) == null ? void 0 : _response_headers_get.startsWith(_approuterheaders.RSC_CONTENT_TYPE_HEADER)) { + // copy the headers from the redirect response to the response we're sending + for (const [key, value] of response.headers){ + if (!_utils.actionsForbiddenHeaders.includes(key)) { + res.setHeader(key, value); + } + } + return new _flightrenderresult.FlightRenderResult(response.body); + } else { + var // Since we aren't consuming the response body, we cancel it to avoid memory leaks + _response_body; + (_response_body = response.body) == null ? void 0 : _response_body.cancel(); + } + } catch (err) { + // we couldn't stream the forwarded response, so we'll just return an empty response + console.error(`failed to forward action response`, err); + } + return _renderresult.default.fromStatic('{}', _constants.JSON_CONTENT_TYPE_HEADER); +} +/** + * Returns the parsed redirect URL if we deem that it is hosted by us. + * + * We handle both relative and absolute redirect URLs. + * + * In case the redirect URL is not relative to the application we return `null`. + */ function getAppRelativeRedirectUrl(basePath, host, redirectUrl, currentPathname) { + if (redirectUrl.startsWith('/')) { + // Absolute path - just add basePath + return new URL(`${basePath}${redirectUrl}`, 'http://n'); + } else if (redirectUrl.startsWith('.')) { + // Relative path - resolve relative to current pathname + let base = currentPathname || '/'; + // Ensure the base path ends with a slash so relative resolution works correctly + // e.g., "./subpage" from "/subdir" should resolve to "/subdir/subpage" + // not "/subpage" + if (!base.endsWith('/')) { + base = base + '/'; + } + const resolved = new URL(redirectUrl, `http://n${base}`); + // Include basePath in the final URL + return new URL(`${basePath}${resolved.pathname}${resolved.search}${resolved.hash}`, 'http://n'); + } + const parsedRedirectUrl = new URL(redirectUrl); + if ((host == null ? void 0 : host.value) !== parsedRedirectUrl.host) { + return null; + } + // At this point the hosts are the same, just confirm we + // are routing to a path underneath the `basePath` + return parsedRedirectUrl.pathname.startsWith(basePath) ? parsedRedirectUrl : null; +} +async function createRedirectRenderResult(req, res, originalHost, redirectUrl, redirectType, basePath, workStore, currentPathname) { + res.setHeader('x-action-redirect', `${redirectUrl};${redirectType}`); + // If we're redirecting to another route of this Next.js application, we'll + // try to stream the response from the other worker path. When that works, + // we can save an extra roundtrip and avoid a full page reload. + // When the redirect URL starts with a `/` or is to the same host, under the + // `basePath` we treat it as an app-relative redirect; + const appRelativeRedirectUrl = getAppRelativeRedirectUrl(basePath, originalHost, redirectUrl, currentPathname); + if (appRelativeRedirectUrl) { + var _getRequestMeta; + if (!originalHost) { + throw Object.defineProperty(new Error('Invariant: Missing `host` header from a forwarded Server Actions request.'), "__NEXT_ERROR_CODE", { + value: "E226", + enumerable: false, + configurable: true + }); + } + const forwardedHeaders = getForwardedHeaders(req, res); + forwardedHeaders.set(_approuterheaders.RSC_HEADER, '1'); + const proto = ((_getRequestMeta = (0, _requestmeta.getRequestMeta)(req, 'initProtocol')) == null ? void 0 : _getRequestMeta.replace(/:+$/, '')) || 'https'; + // For standalone or the serverful mode, use the internal origin directly + // other than the host headers from the request. + const origin = process.env.__NEXT_PRIVATE_ORIGIN || `${proto}://${originalHost.value}`; + const fetchUrl = new URL(`${origin}${appRelativeRedirectUrl.pathname}${appRelativeRedirectUrl.search}`); + if (workStore.pendingRevalidatedTags) { + var _workStore_incrementalCache_prerenderManifest_preview, _workStore_incrementalCache_prerenderManifest, _workStore_incrementalCache; + forwardedHeaders.set(_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER, workStore.pendingRevalidatedTags.map((item)=>item.tag).join(',')); + forwardedHeaders.set(_constants.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER, ((_workStore_incrementalCache = workStore.incrementalCache) == null ? void 0 : (_workStore_incrementalCache_prerenderManifest = _workStore_incrementalCache.prerenderManifest) == null ? void 0 : (_workStore_incrementalCache_prerenderManifest_preview = _workStore_incrementalCache_prerenderManifest.preview) == null ? void 0 : _workStore_incrementalCache_prerenderManifest_preview.previewModeId) || ''); + } + // Ensures that when the path was revalidated we don't return a partial response on redirects + forwardedHeaders.delete(_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER); + // When an action follows a redirect, it's no longer handling an action: it's just a normal RSC request + // to the requested URL. We should remove the `next-action` header so that it's not treated as an action + forwardedHeaders.delete(_approuterheaders.ACTION_HEADER); + try { + var _response_headers_get; + (0, _setcachebustingsearchparam.setCacheBustingSearchParam)(fetchUrl, { + [_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER]: forwardedHeaders.get(_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER) ? '1' : undefined, + [_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]: forwardedHeaders.get(_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER) ?? undefined, + [_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]: forwardedHeaders.get(_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER) ?? undefined, + [_approuterheaders.NEXT_URL]: forwardedHeaders.get(_approuterheaders.NEXT_URL) ?? undefined + }); + const response = await fetch(fetchUrl, { + method: 'GET', + headers: forwardedHeaders, + next: { + // @ts-ignore + internal: 1 + } + }); + if ((_response_headers_get = response.headers.get('content-type')) == null ? void 0 : _response_headers_get.startsWith(_approuterheaders.RSC_CONTENT_TYPE_HEADER)) { + // copy the headers from the redirect response to the response we're sending + for (const [key, value] of response.headers){ + if (!_utils.actionsForbiddenHeaders.includes(key)) { + res.setHeader(key, value); + } + } + return new _flightrenderresult.FlightRenderResult(response.body); + } else { + var // Since we aren't consuming the response body, we cancel it to avoid memory leaks + _response_body; + (_response_body = response.body) == null ? void 0 : _response_body.cancel(); + } + } catch (err) { + // we couldn't stream the redirect response, so we'll just do a normal redirect + console.error(`failed to get redirect response`, err); + } + } + return _renderresult.default.EMPTY; +} +/** + * Ensures the value of the header can't create long logs. + */ function limitUntrustedHeaderValueForLogs(value) { + return value.length > 100 ? value.slice(0, 100) + '...' : value; +} +function parseHostHeader(headers, originDomain) { + var _forwardedHostHeader_split_, _forwardedHostHeader_split; + const forwardedHostHeader = headers['x-forwarded-host']; + const forwardedHostHeaderValue = forwardedHostHeader && Array.isArray(forwardedHostHeader) ? forwardedHostHeader[0] : forwardedHostHeader == null ? void 0 : (_forwardedHostHeader_split = forwardedHostHeader.split(',')) == null ? void 0 : (_forwardedHostHeader_split_ = _forwardedHostHeader_split[0]) == null ? void 0 : _forwardedHostHeader_split_.trim(); + const hostHeader = headers['host']; + if (originDomain) { + return forwardedHostHeaderValue === originDomain ? { + type: "x-forwarded-host", + value: forwardedHostHeaderValue + } : hostHeader === originDomain ? { + type: "host", + value: hostHeader + } : undefined; + } + return forwardedHostHeaderValue ? { + type: "x-forwarded-host", + value: forwardedHostHeaderValue + } : hostHeader ? { + type: "host", + value: hostHeader + } : undefined; +} +async function handleAction({ req, res, ComponentMod, generateFlight, workStore, requestStore, serverActions, ctx, metadata }) { + const contentType = req.headers['content-type']; + const { page } = ctx.renderOpts; + const serverModuleMap = (0, _manifestssingleton.getServerModuleMap)(); + const { actionId, isMultipartAction, isFetchAction, isURLEncodedAction, isPossibleServerAction } = (0, _serveractionrequestmeta.getServerActionRequestMetadata)(req); + const handleUnrecognizedFetchAction = (err)=>{ + // If the deployment doesn't have skew protection, this is expected to occasionally happen, + // so we use a warning instead of an error. + console.warn(err); + // Return an empty response with a header that the client router will interpret. + // We don't need to waste time encoding a flight response, and using a blank body + header + // means that unrecognized actions can also be handled at the infra level + // (i.e. without needing to invoke a lambda) + res.setHeader(_approuterheaders.NEXT_ACTION_NOT_FOUND_HEADER, '1'); + res.setHeader('content-type', 'text/plain'); + res.statusCode = 404; + return { + type: 'done', + result: _renderresult.default.fromStatic('Server action not found.', 'text/plain') + }; + }; + // If it can't be a Server Action, skip handling. + // Note that this can be a false positive -- any multipart/urlencoded POST can get us here, + // But won't know if it's an MPA action or not until we call `decodeAction` below. + if (!isPossibleServerAction) { + return null; + } + // We don't currently support URL encoded actions, so we bail out early. + // Depending on if it's a fetch action or an MPA, we return a different response. + if (isURLEncodedAction) { + if (isFetchAction) { + return { + type: 'not-found' + }; + } else { + // This is an MPA action, so we return null + return null; + } + } + // If the app has no server actions at all, we can 404 early. + if (!hasServerActions()) { + return handleUnrecognizedFetchAction(getActionNotFoundError(actionId)); + } + if (workStore.isStaticGeneration) { + throw Object.defineProperty(new Error("Invariant: server actions can't be handled during static rendering"), "__NEXT_ERROR_CODE", { + value: "E359", + enumerable: false, + configurable: true + }); + } + let temporaryReferences; + // When running actions the default is no-store, you can still `cache: 'force-cache'` + workStore.fetchCache = 'default-no-store'; + const originHeader = req.headers['origin']; + const originHost = typeof originHeader === 'string' ? // However, these contexts can still send along credentials like cookies, + // so we need to check if they're allowed cross-origin requests. + originHeader === 'null' ? 'null' : new URL(originHeader).host : undefined; + const host = parseHostHeader(req.headers); + let warning = undefined; + function warnBadServerActionRequest() { + if (warning) { + (0, _log.warn)(warning); + } + } + // This is to prevent CSRF attacks. If `x-forwarded-host` is set, we need to + // ensure that the request is coming from the same host. + if (!originHost) { + // This is a handcrafted request without an origin or a request from an unsafe browser. + // We'll let this through but log a warning. + // We can't guard against unsafe browsers and handcrafted requests can't contain + // user credentials that haven't been shared willingly. + warning = 'Missing `origin` header from a forwarded Server Actions request.'; + } else if (!host || originHost !== host.value) { + // If the customer sets a list of allowed origins, we'll allow the request. + // These are considered safe but might be different from forwarded host set + // by the infra (i.e. reverse proxies). + if ((0, _csrfprotection.isCsrfOriginAllowed)(originHost, serverActions == null ? void 0 : serverActions.allowedOrigins)) { + // Ignore it + } else { + if (host) { + // This seems to be an CSRF attack. We should not proceed the action. + console.error(`\`${host.type}\` header with value \`${limitUntrustedHeaderValueForLogs(host.value)}\` does not match \`origin\` header with value \`${limitUntrustedHeaderValueForLogs(originHost)}\` from a forwarded Server Actions request. Aborting the action.`); + } else { + // This is an attack. We should not proceed the action. + console.error(`\`x-forwarded-host\` or \`host\` headers are not provided. One of these is needed to compare the \`origin\` header from a forwarded Server Actions request. Aborting the action.`); + } + const error = Object.defineProperty(new Error('Invalid Server Actions request.'), "__NEXT_ERROR_CODE", { + value: "E80", + enumerable: false, + configurable: true + }); + if (isFetchAction) { + res.statusCode = 500; + metadata.statusCode = 500; + const promise = Promise.reject(error); + try { + // we need to await the promise to trigger the rejection early + // so that it's already handled by the time we call + // the RSC runtime. Otherwise, it will throw an unhandled + // promise rejection error in the renderer. + await promise; + } catch { + // swallow error, it's gonna be handled on the client + } + return { + type: 'done', + result: await generateFlight(req, ctx, requestStore, { + actionResult: promise, + // We didn't execute an action, so no revalidations could have + // occurred. We can skip rendering the page. + skipPageRendering: true, + temporaryReferences + }) + }; + } + throw error; + } + } + // ensure we avoid caching server actions unexpectedly + res.setHeader('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate'); + const { actionAsyncStorage } = ComponentMod; + const actionWasForwarded = Boolean(req.headers['x-action-forwarded']); + if (actionId) { + const forwardedWorker = (0, _manifestssingleton.selectWorkerForForwarding)(actionId, page); + // If forwardedWorker is truthy, it means there isn't a worker for the action + // in the current handler, so we forward the request to a worker that has the action. + if (forwardedWorker) { + return { + type: 'done', + result: await createForwardedActionResponse(req, res, host, forwardedWorker, ctx.renderOpts.basePath) + }; + } + } + try { + return await actionAsyncStorage.run({ + isAction: true + }, async ()=>{ + // We only use these for fetch actions -- MPA actions handle them inside `decodeAction`. + let actionModId; + let boundActionArguments = []; + if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME === 'edge' && (0, _helpers.isWebNextRequest)(req)) { + if (!req.body) { + throw Object.defineProperty(new Error('invariant: Missing request body.'), "__NEXT_ERROR_CODE", { + value: "E364", + enumerable: false, + configurable: true + }); + } + // TODO: add body limit + // Use react-server-dom-webpack/server + const { createTemporaryReferenceSet, decodeReply, decodeAction, decodeFormState } = ComponentMod; + temporaryReferences = createTemporaryReferenceSet(); + if (isMultipartAction) { + // TODO-APP: Add streaming support + const formData = await req.request.formData(); + if (isFetchAction) { + // A fetch action with a multipart body. + try { + actionModId = getActionModIdOrError(actionId, serverModuleMap); + } catch (err) { + return handleUnrecognizedFetchAction(err); + } + boundActionArguments = await decodeReply(formData, serverModuleMap, { + temporaryReferences + }); + } else { + // Multipart POST, but not a fetch action. + // Potentially an MPA action, we have to try decoding it to check. + if (areAllActionIdsValid(formData, serverModuleMap) === false) { + // TODO: This can be from skew or manipulated input. We should handle this case + // more gracefully but this preserves the prior behavior where decodeAction would throw instead. + throw Object.defineProperty(new Error(`Failed to find Server Action. This request might be from an older or newer deployment.\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action`), "__NEXT_ERROR_CODE", { + value: "E975", + enumerable: false, + configurable: true + }); + } + const action = await decodeAction(formData, serverModuleMap); + if (typeof action === 'function') { + // an MPA action. + // Only warn if it's a server action, otherwise skip for other post requests + warnBadServerActionRequest(); + const { actionResult } = await executeActionAndPrepareForRender(action, [], workStore, requestStore, actionWasForwarded); + const formState = await decodeFormState(actionResult, formData, serverModuleMap); + // Skip the fetch path. + // We need to render a full HTML version of the page for the response, we'll handle that in app-render. + return { + type: 'done', + result: undefined, + formState + }; + } else { + // We couldn't decode an action, so this POST request turned out not to be a server action request. + return null; + } + } + } else { + // POST with non-multipart body. + // If it's not multipart AND not a fetch action, + // then it can't be an action request. + if (!isFetchAction) { + return null; + } + try { + actionModId = getActionModIdOrError(actionId, serverModuleMap); + } catch (err) { + return handleUnrecognizedFetchAction(err); + } + // A fetch action with a non-multipart body. + // In practice, this happens if `encodeReply` returned a string instead of FormData, + // which can happen for very simple JSON-like values that don't need multiple flight rows. + const chunks = []; + const reader = req.body.getReader(); + while(true){ + const { done, value } = await reader.read(); + if (done) { + break; + } + chunks.push(value); + } + const actionData = Buffer.concat(chunks).toString('utf-8'); + boundActionArguments = await decodeReply(actionData, serverModuleMap, { + temporaryReferences + }); + } + } else if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextRequest)(req)) { + // Use react-server-dom-webpack/server.node which supports streaming + const { createTemporaryReferenceSet, decodeReply, decodeReplyFromBusboy, decodeAction, decodeFormState } = require(`./react-server.node`); + temporaryReferences = createTemporaryReferenceSet(); + const { PassThrough, Readable, Transform } = require('node:stream'); + const { pipeline } = require('node:stream/promises'); + // If actionBody was stashed in request meta (from parsing the postponed + // state prefix in minimal mode), use it instead of req.body + const actionBodyFromMeta = (0, _requestmeta.getRequestMeta)(req, 'actionBody'); + const body = actionBodyFromMeta ? Readable.from(actionBodyFromMeta) : req.body; + const defaultBodySizeLimit = '1 MB'; + const bodySizeLimit = (serverActions == null ? void 0 : serverActions.bodySizeLimit) ?? defaultBodySizeLimit; + const bodySizeLimitBytes = bodySizeLimit !== defaultBodySizeLimit ? require('next/dist/compiled/bytes').parse(bodySizeLimit) : 1024 * 1024 // 1 MB + ; + let size = 0; + const sizeLimitTransform = new Transform({ + transform (chunk, encoding, callback) { + size += Buffer.byteLength(chunk, encoding); + if (size > bodySizeLimitBytes) { + const { ApiError } = require('../api-utils'); + callback(Object.defineProperty(new ApiError(413, `Body exceeded ${bodySizeLimit} limit.\n` + `To configure the body size limit for Server Actions, see: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit`), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })); + return; + } + callback(null, chunk); + } + }); + if (isMultipartAction) { + if (isFetchAction) { + // A fetch action with a multipart body. + try { + actionModId = getActionModIdOrError(actionId, serverModuleMap); + } catch (err) { + return handleUnrecognizedFetchAction(err); + } + const busboy = require('next/dist/compiled/busboy')({ + defParamCharset: 'utf8', + headers: req.headers, + limits: { + fieldSize: bodySizeLimitBytes + } + }); + const abortController = new AbortController(); + try { + ; + [, boundActionArguments] = await Promise.all([ + pipeline(body, sizeLimitTransform, busboy, { + signal: abortController.signal + }), + decodeReplyFromBusboy(busboy, serverModuleMap, { + temporaryReferences + }) + ]); + } catch (err) { + abortController.abort(); + throw err; + } + } else { + // Multipart POST, but not a fetch action. + // Potentially an MPA action, we have to try decoding it to check. + const sizeLimitedBody = new PassThrough(); + // React doesn't yet publish a busboy version of decodeAction + // so we polyfill the parsing of FormData. + const fakeRequest = new Request('http://localhost', { + method: 'POST', + // @ts-expect-error + headers: { + 'Content-Type': contentType + }, + body: Readable.toWeb(sizeLimitedBody), + duplex: 'half' + }); + let formData; + const abortController = new AbortController(); + try { + ; + [, formData] = await Promise.all([ + pipeline(body, sizeLimitTransform, sizeLimitedBody, { + signal: abortController.signal + }), + fakeRequest.formData() + ]); + } catch (err) { + abortController.abort(); + throw err; + } + if (areAllActionIdsValid(formData, serverModuleMap) === false) { + // TODO: This can be from skew or manipulated input. We should handle this case + // more gracefully but this preserves the prior behavior where decodeAction would throw instead. + throw Object.defineProperty(new Error(`Failed to find Server Action. This request might be from an older or newer deployment.\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action`), "__NEXT_ERROR_CODE", { + value: "E975", + enumerable: false, + configurable: true + }); + } + // TODO: Refactor so it is harder to accidentally decode an action before you have validated that the + // action referred to is available. + const action = await decodeAction(formData, serverModuleMap); + if (typeof action === 'function') { + // an MPA action. + // Only warn if it's a server action, otherwise skip for other post requests + warnBadServerActionRequest(); + const { actionResult } = await executeActionAndPrepareForRender(action, [], workStore, requestStore, actionWasForwarded); + const formState = await decodeFormState(actionResult, formData, serverModuleMap); + // Skip the fetch path. + // We need to render a full HTML version of the page for the response, we'll handle that in app-render. + return { + type: 'done', + result: undefined, + formState + }; + } else { + // We couldn't decode an action, so this POST request turned out not to be a server action request. + return null; + } + } + } else { + // POST with non-multipart body. + // If it's not multipart AND not a fetch action, + // then it can't be an action request. + if (!isFetchAction) { + return null; + } + try { + actionModId = getActionModIdOrError(actionId, serverModuleMap); + } catch (err) { + return handleUnrecognizedFetchAction(err); + } + // A fetch action with a non-multipart body. + // In practice, this happens if `encodeReply` returned a string instead of FormData, + // which can happen for very simple JSON-like values that don't need multiple flight rows. + const sizeLimitedBody = new PassThrough(); + const chunks = []; + await Promise.all([ + pipeline(body, sizeLimitTransform, sizeLimitedBody), + (async ()=>{ + for await (const chunk of sizeLimitedBody){ + chunks.push(Buffer.from(chunk)); + } + })() + ]); + const actionData = Buffer.concat(chunks).toString('utf-8'); + boundActionArguments = await decodeReply(actionData, serverModuleMap, { + temporaryReferences + }); + } + } else { + throw Object.defineProperty(new Error('Invariant: Unknown request type.'), "__NEXT_ERROR_CODE", { + value: "E114", + enumerable: false, + configurable: true + }); + } + // actions.js + // app/page.js + // action worker1 + // appRender1 + // app/foo/page.js + // action worker2 + // appRender + // / -> fire action -> POST / -> appRender1 -> modId for the action file + // /foo -> fire action -> POST /foo -> appRender2 -> modId for the action file + const actionMod = await ComponentMod.__next_app__.require(actionModId); + const actionHandler = actionMod[// `actionId` must exist if we got here, as otherwise we would have thrown an error above + actionId]; + // Log server action call in development when enabled + let logInfo = null; + const { type: actionType } = (0, _serverreferenceinfo.extractInfoFromServerReferenceId)(actionId); + if (process.env.NODE_ENV === 'development' && ctx.renderOpts.logServerFunctions && // TODO: For now, skip logging for 'use cache' Server Functions as the + // output needs more work, or a different approach entirely. + actionType !== 'use-cache') { + var _serverActionsManifest_runtime; + const serverActionsManifest = (0, _manifestssingleton.getServerActionsManifest)(); + const runtime = process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'; + const actionInfo = (_serverActionsManifest_runtime = serverActionsManifest[runtime]) == null ? void 0 : _serverActionsManifest_runtime[actionId]; + if (actionInfo) { + var _actionInfo_exportedName; + const isInlineAction = (_actionInfo_exportedName = actionInfo.exportedName) == null ? void 0 : _actionInfo_exportedName.startsWith(INLINE_ACTION_PREFIX); + const projectDir = ctx.renderOpts.dir || (process.env.NEXT_RUNTIME === 'edge' ? '' : process.cwd()); + const location = (0, _segmentexplorerpath.normalizeFilePath)(projectDir, actionInfo.filename); + // Format function name for display + let functionName; + if (isInlineAction) { + functionName = ''; + } else if (actionInfo.exportedName === 'default') { + functionName = 'default'; + } else { + functionName = actionInfo.exportedName || ''; + } + logInfo = { + functionName, + args: boundActionArguments, + location + }; + } + } + const startTime = performance.now(); + const { actionResult, skipPageRendering } = await executeActionAndPrepareForRender(actionHandler, boundActionArguments, workStore, requestStore, actionWasForwarded).finally(()=>{ + addRevalidationHeader(res, { + workStore, + requestStore + }); + if (logInfo) { + // Store server action log info to be logged after the request log + const duration = Math.round(performance.now() - startTime); + (0, _requestmeta.addRequestMeta)(req, 'devServerActionLog', { + functionName: logInfo.functionName, + args: logInfo.args, + location: logInfo.location, + duration + }); + } + }); + // For form actions, we need to continue rendering the page. + if (isFetchAction) { + // If we skip page rendering, we need to ensure pending revalidates + // are awaited before closing the response. Otherwise, this will be + // done after rendering the page. + const maybeRevalidatesPromise = skipPageRendering ? (0, _revalidationutils.executeRevalidates)(workStore) : false; + return { + type: 'done', + result: await generateFlight(req, ctx, requestStore, { + actionResult: Promise.resolve(actionResult), + skipPageRendering, + temporaryReferences, + waitUntil: maybeRevalidatesPromise === false ? undefined : maybeRevalidatesPromise + }) + }; + } else { + // TODO: this shouldn't be reachable, because all non-fetch codepaths return early. + // this will be handled in a follow-up refactor PR. + return null; + } + }); + } catch (err) { + if ((0, _redirecterror.isRedirectError)(err)) { + const redirectUrl = (0, _redirect.getURLFromRedirectError)(err); + const redirectType = (0, _redirect.getRedirectTypeFromError)(err); + // if it's a fetch action, we'll set the status code for logging/debugging purposes + // but we won't set a Location header, as the redirect will be handled by the client router + res.statusCode = _redirectstatuscode.RedirectStatusCode.SeeOther; + metadata.statusCode = _redirectstatuscode.RedirectStatusCode.SeeOther; + if (isFetchAction) { + return { + type: 'done', + result: await createRedirectRenderResult(req, res, host, redirectUrl, redirectType, ctx.renderOpts.basePath, workStore, requestStore.url.pathname) + }; + } + // For an MPA action, the redirect doesn't need a body, just a Location header. + res.setHeader('Location', redirectUrl); + return { + type: 'done', + result: _renderresult.default.EMPTY + }; + } else if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(err)) { + res.statusCode = (0, _httpaccessfallback.getAccessFallbackHTTPStatus)(err); + metadata.statusCode = res.statusCode; + if (isFetchAction) { + const promise = Promise.reject(err); + try { + // we need to await the promise to trigger the rejection early + // so that it's already handled by the time we call + // the RSC runtime. Otherwise, it will throw an unhandled + // promise rejection error in the renderer. + await promise; + } catch { + // swallow error, it's gonna be handled on the client + } + return { + type: 'done', + result: await generateFlight(req, ctx, requestStore, { + skipPageRendering: false, + actionResult: promise, + temporaryReferences + }) + }; + } + // For an MPA action, we need to render a HTML response. We'll handle that in app-render. + return { + type: 'not-found' + }; + } + // An error that didn't come from `redirect()` or `notFound()`, likely thrown from user code + // (but it could also be a bug in our code!) + if (isFetchAction) { + // TODO: consider checking if the error is an `ApiError` and change status code + // so that we can respond with a 413 to requests that break the body size limit + // (but if we do that, we also need to make sure that whatever handles the non-fetch error path below does the same) + res.statusCode = 500; + metadata.statusCode = 500; + const promise = Promise.reject(err); + try { + // we need to await the promise to trigger the rejection early + // so that it's already handled by the time we call + // the RSC runtime. Otherwise, it will throw an unhandled + // promise rejection error in the renderer. + await promise; + } catch { + // swallow error, it's gonna be handled on the client + } + return { + type: 'done', + result: await generateFlight(req, ctx, requestStore, { + actionResult: promise, + // If the page was not revalidated, or if the action was forwarded + // from another worker, we can skip rendering the page. + skipPageRendering: workStore.pathWasRevalidated === undefined || workStore.pathWasRevalidated === _actionrevalidationkind.ActionDidNotRevalidate || actionWasForwarded, + temporaryReferences + }) + }; + } + // For an MPA action, we need to render a HTML response. We'll rethrow the error and let it be handled above. + throw err; + } +} +/** + * Limit on the number of arguments passed to a server action. This prevents + * stack overflow during `action.apply()` from malicious requests. + */ const SERVER_ACTION_ARGS_LIMIT = 1000; +async function executeActionAndPrepareForRender(action, args, workStore, requestStore, actionWasForwarded) { + requestStore.phase = 'action'; + let skipPageRendering = actionWasForwarded; + if (args.length > SERVER_ACTION_ARGS_LIMIT) { + throw Object.defineProperty(new Error(`Server Action arguments list is too long (${args.length}). Maximum allowed is ${SERVER_ACTION_ARGS_LIMIT}.`), "__NEXT_ERROR_CODE", { + value: "E986", + enumerable: false, + configurable: true + }); + } + try { + const actionResult = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, ()=>action.apply(null, args)); + // If the page was not revalidated, or if the action was forwarded from + // another worker, we can skip rendering the page. + skipPageRendering ||= workStore.pathWasRevalidated === undefined || workStore.pathWasRevalidated === _actionrevalidationkind.ActionDidNotRevalidate; + return { + actionResult, + skipPageRendering + }; + } finally{ + if (!skipPageRendering) { + requestStore.phase = 'render'; + // When we switch to the render phase, cookies() will return + // `workUnitStore.cookies` instead of + // `workUnitStore.userspaceMutableCookies`. We want the render to see any + // cookie writes that we performed during the action, so we need to update + // the immutable cookies to reflect the changes. + (0, _requeststore.synchronizeMutableCookies)(requestStore); + // The server action might have toggled draft mode, so we need to reflect + // that in the work store to be up-to-date for subsequent rendering. + workStore.isDraftMode = requestStore.draftMode.isEnabled; + // If the action called revalidateTag/revalidatePath, then that might + // affect data used by the subsequent render, so we need to make sure all + // revalidations are applied before that. + await (0, _revalidationutils.executeRevalidates)(workStore); + } + } +} +/** + * Attempts to find the module ID for the action from the module map. When this fails, it could be a deployment skew where + * the action came from a different deployment. It could also simply be an invalid POST request that is not a server action. + * In either case, we'll throw an error to be handled by the caller. + */ function getActionModIdOrError(actionId, serverModuleMap) { + var _serverModuleMap_actionId; + // if we're missing the action ID header, we can't do any further processing + if (!actionId) { + throw Object.defineProperty(new _invarianterror.InvariantError("Missing 'next-action' header."), "__NEXT_ERROR_CODE", { + value: "E664", + enumerable: false, + configurable: true + }); + } + const actionModId = (_serverModuleMap_actionId = serverModuleMap[actionId]) == null ? void 0 : _serverModuleMap_actionId.id; + if (!actionModId) { + throw getActionNotFoundError(actionId); + } + return actionModId; +} +function getActionNotFoundError(actionId) { + return Object.defineProperty(new Error(`Failed to find Server Action${actionId ? ` "${actionId}"` : ''}. This request might be from an older or newer deployment.\nRead more: https://nextjs.org/docs/messages/failed-to-find-server-action`), "__NEXT_ERROR_CODE", { + value: "E974", + enumerable: false, + configurable: true + }); +} +const $ACTION_ = '$ACTION_'; +const $ACTION_REF_ = '$ACTION_REF_'; +const $ACTION_ID_ = '$ACTION_ID_'; +const ACTION_ID_EXPECTED_LENGTH = 42; +/** + * This function mirrors logic inside React's decodeAction and should be kept in sync with that. + * It pre-parses the FormData to ensure that any action IDs referred to are actual action IDs for + * this Next.js application. + */ function areAllActionIdsValid(mpaFormData, serverModuleMap) { + let hasAtLeastOneAction = false; + // Before we attempt to decode the payload for a possible MPA action, assert that all + // action IDs are valid IDs. If not we should disregard the payload + for (let key of mpaFormData.keys()){ + if (!key.startsWith($ACTION_)) { + continue; + } + if (key.startsWith($ACTION_ID_)) { + // No Bound args case + if (isInvalidActionIdFieldName(key, serverModuleMap)) { + return false; + } + hasAtLeastOneAction = true; + } else if (key.startsWith($ACTION_REF_)) { + // Bound args case + const actionDescriptorField = $ACTION_ + key.slice($ACTION_REF_.length) + ':0'; + const actionFields = mpaFormData.getAll(actionDescriptorField); + if (actionFields.length !== 1) { + return false; + } + const actionField = actionFields[0]; + if (typeof actionField !== 'string') { + return false; + } + if (isInvalidStringActionDescriptor(actionField, serverModuleMap)) { + return false; + } + hasAtLeastOneAction = true; + } + } + return hasAtLeastOneAction; +} +const ACTION_DESCRIPTOR_ID_PREFIX = '{"id":"'; +function isInvalidStringActionDescriptor(actionDescriptor, serverModuleMap) { + if (actionDescriptor.startsWith(ACTION_DESCRIPTOR_ID_PREFIX) === false) { + return true; + } + const from = ACTION_DESCRIPTOR_ID_PREFIX.length; + const to = from + ACTION_ID_EXPECTED_LENGTH; + // We expect actionDescriptor to be '{"id":"",...}' + const actionId = actionDescriptor.slice(from, to); + if (actionId.length !== ACTION_ID_EXPECTED_LENGTH || actionDescriptor[to] !== '"') { + return true; + } + const entry = serverModuleMap[actionId]; + if (entry == null) { + return true; + } + return false; +} +function isInvalidActionIdFieldName(actionIdFieldName, serverModuleMap) { + // The field name must always start with $ACTION_ID_ but since it is + // the id is extracted from the key of the field we have already validated + // this before entering this function + if (actionIdFieldName.length !== $ACTION_ID_.length + ACTION_ID_EXPECTED_LENGTH) { + // this field name has too few or too many characters + return true; + } + const actionId = actionIdFieldName.slice($ACTION_ID_.length); + const entry = serverModuleMap[actionId]; + if (entry == null) { + return true; + } + return false; +} + +//# sourceMappingURL=action-handler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js b/cli/app/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js new file mode 100644 index 00000000000..bc1c11a5d31 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/after-task-async-storage-instance.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "afterTaskAsyncStorageInstance", { + enumerable: true, + get: function() { + return afterTaskAsyncStorageInstance; + } +}); +const _asynclocalstorage = require("./async-local-storage"); +const afterTaskAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)(); + +//# sourceMappingURL=after-task-async-storage-instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/after-task-async-storage.external.js b/cli/app/node_modules/next/dist/server/app-render/after-task-async-storage.external.js new file mode 100644 index 00000000000..f3ba64ef5b7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/after-task-async-storage.external.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "afterTaskAsyncStorage", { + enumerable: true, + get: function() { + return _aftertaskasyncstorageinstance.afterTaskAsyncStorageInstance; + } +}); +const _aftertaskasyncstorageinstance = require("./after-task-async-storage-instance"); + +//# sourceMappingURL=after-task-async-storage.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/app-render-prerender-utils.js b/cli/app/node_modules/next/dist/server/app-render/app-render-prerender-utils.js new file mode 100644 index 00000000000..20dba38d4e6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/app-render-prerender-utils.js @@ -0,0 +1,167 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ReactServerPrerenderResult: null, + ReactServerResult: null, + createReactServerPrerenderResult: null, + createReactServerPrerenderResultFromRender: null, + processPrelude: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ReactServerPrerenderResult: function() { + return ReactServerPrerenderResult; + }, + ReactServerResult: function() { + return ReactServerResult; + }, + createReactServerPrerenderResult: function() { + return createReactServerPrerenderResult; + }, + createReactServerPrerenderResultFromRender: function() { + return createReactServerPrerenderResultFromRender; + }, + processPrelude: function() { + return processPrelude; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +class ReactServerResult { + constructor(stream){ + this._stream = stream; + } + tee() { + if (this._stream === null) { + throw Object.defineProperty(new Error('Cannot tee a ReactServerResult that has already been consumed'), "__NEXT_ERROR_CODE", { + value: "E106", + enumerable: false, + configurable: true + }); + } + const tee = this._stream.tee(); + this._stream = tee[0]; + return tee[1]; + } + consume() { + if (this._stream === null) { + throw Object.defineProperty(new Error('Cannot consume a ReactServerResult that has already been consumed'), "__NEXT_ERROR_CODE", { + value: "E470", + enumerable: false, + configurable: true + }); + } + const stream = this._stream; + this._stream = null; + return stream; + } +} +async function createReactServerPrerenderResult(underlying) { + const chunks = []; + const { prelude } = await underlying; + const reader = prelude.getReader(); + while(true){ + const { done, value } = await reader.read(); + if (done) { + return new ReactServerPrerenderResult(chunks); + } else { + chunks.push(value); + } + } +} +async function createReactServerPrerenderResultFromRender(underlying) { + const chunks = []; + const reader = underlying.getReader(); + while(true){ + const { done, value } = await reader.read(); + if (done) { + break; + } else { + chunks.push(value); + } + } + return new ReactServerPrerenderResult(chunks); +} +class ReactServerPrerenderResult { + assertChunks(expression) { + if (this._chunks === null) { + throw Object.defineProperty(new _invarianterror.InvariantError(`Cannot \`${expression}\` on a ReactServerPrerenderResult that has already been consumed.`), "__NEXT_ERROR_CODE", { + value: "E593", + enumerable: false, + configurable: true + }); + } + return this._chunks; + } + consumeChunks(expression) { + const chunks = this.assertChunks(expression); + this.consume(); + return chunks; + } + consume() { + this._chunks = null; + } + constructor(chunks){ + this._chunks = chunks; + } + asUnclosingStream() { + const chunks = this.assertChunks('asUnclosingStream()'); + return createUnclosingStream(chunks); + } + consumeAsUnclosingStream() { + const chunks = this.consumeChunks('consumeAsUnclosingStream()'); + return createUnclosingStream(chunks); + } + asStream() { + const chunks = this.assertChunks('asStream()'); + return createClosingStream(chunks); + } + consumeAsStream() { + const chunks = this.consumeChunks('consumeAsStream()'); + return createClosingStream(chunks); + } +} +function createUnclosingStream(chunks) { + let i = 0; + return new ReadableStream({ + async pull (controller) { + if (i < chunks.length) { + controller.enqueue(chunks[i++]); + } + // we intentionally keep the stream open. The consumer will clear + // out chunks once finished and the remaining memory will be GC'd + // when this object goes out of scope + } + }); +} +function createClosingStream(chunks) { + let i = 0; + return new ReadableStream({ + async pull (controller) { + if (i < chunks.length) { + controller.enqueue(chunks[i++]); + } else { + controller.close(); + } + } + }); +} +async function processPrelude(unprocessedPrelude) { + const [prelude, peek] = unprocessedPrelude.tee(); + const reader = peek.getReader(); + const firstResult = await reader.read(); + reader.cancel(); + const preludeIsEmpty = firstResult.done === true; + return { + prelude, + preludeIsEmpty + }; +} + +//# sourceMappingURL=app-render-prerender-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/app-render-render-utils.js b/cli/app/node_modules/next/dist/server/app-render/app-render-render-utils.js new file mode 100644 index 00000000000..4586bbd05e6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/app-render-render-utils.js @@ -0,0 +1,76 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "runInSequentialTasks", { + enumerable: true, + get: function() { + return runInSequentialTasks; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _apprenderscheduling = require("./app-render-scheduling"); +const _fastsetimmediateexternal = require("../node-environment-extensions/fast-set-immediate.external"); +const _isthenable = require("../../shared/lib/is-thenable"); +function noop() {} +function runInSequentialTasks(first, ...rest) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('`runInSequentialTasks` should not be called in edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E1054", + enumerable: false, + configurable: true + }); + } else { + return new Promise((resolve, reject)=>{ + const scheduleTimeout = (0, _apprenderscheduling.createAtomicTimerGroup)(); + const ids = []; + let result; + ids.push(scheduleTimeout(()=>{ + try { + (0, _fastsetimmediateexternal.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(); + result = first(); + // If the first function returns a thenable, suppress unhandled + // rejections. A later task in the sequence (e.g. an abort) may + // cause the promise to reject, and we don't want that to surface + // as an unhandled rejection — the caller will observe the + // rejection when they await the returned promise. + if ((0, _isthenable.isThenable)(result)) { + result.then(noop, noop); + } + } catch (err) { + for(let i = 1; i < ids.length; i++){ + clearTimeout(ids[i]); + } + reject(err); + } + })); + for(let i = 0; i < rest.length; i++){ + const fn = rest[i]; + let index = ids.length; + ids.push(scheduleTimeout(()=>{ + try { + (0, _fastsetimmediateexternal.DANGEROUSLY_runPendingImmediatesAfterCurrentTask)(); + fn(); + } catch (err) { + // clear remaining timeouts + while(++index < ids.length){ + clearTimeout(ids[index]); + } + reject(err); + } + })); + } + // We wait a task before resolving + ids.push(scheduleTimeout(()=>{ + try { + (0, _fastsetimmediateexternal.expectNoPendingImmediates)(); + resolve(result); + } catch (err) { + reject(err); + } + })); + }); + } +} + +//# sourceMappingURL=app-render-render-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/app-render-scheduling.js b/cli/app/node_modules/next/dist/server/app-render/app-render-scheduling.js new file mode 100644 index 00000000000..debb86d4bc5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/app-render-scheduling.js @@ -0,0 +1,188 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createAtomicTimerGroup", { + enumerable: true, + get: function() { + return createAtomicTimerGroup; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _fastsetimmediateexternal = require("../node-environment-extensions/fast-set-immediate.external"); +/* +========================== +| Background | +========================== + +Node.js does not guarantee that two timers scheduled back to back will run +on the same iteration of the event loop: + +```ts +setTimeout(one, 0) +setTimeout(two, 0) +``` + +Internally, each timer is assigned a `_idleStart` property that holds +an internal libuv timestamp in millisecond resolution. +This will be used to determine if the timer is already "expired" and should be executed. +However, even in sync code, it's possible for two timers to get different `_idleStart` values. +This can cause one of the timers to be executed, and the other to be delayed until the next timer phase. + +The delaying happens [here](https://github.com/nodejs/node/blob/c208ffc66bb9418ff026c4e3fa82e5b4387bd147/lib/internal/timers.js#L556-L564). +and can be debugged by running node with `NODE_DEBUG=timer`. + +The easiest way to observe it is to run this program in a loop until it exits with status 1: + +``` +// test.js + +let immediateRan = false +const t1 = setTimeout(() => { + console.log('timeout 1') + setImmediate(() => { + console.log('immediate 1') + immediateRan = true + }) +}) + +const t2 = setTimeout(() => { + console.log('timeout 2') + if (immediateRan) { + console.log('immediate ran before the second timeout!') + console.log( + `t1._idleStart: ${t1._idleStart}, t2_idleStart: ${t2._idleStart}` + ); + process.exit(1) + } +}) +``` + +```bash +#!/usr/bin/env bash + +i=1; +while true; do + output="$(NODE_DEBUG=timer node test.js 2>&1)"; + if [ "$?" -eq 1 ]; then + echo "failed after $i iterations"; + echo "$output"; + break; + fi; + i=$((i+1)); +done +``` + +If `t2` is deferred to the next iteration of the event loop, +then the immediate scheduled from inside `t1` will run first. +When this occurs, `_idleStart` is reliably different between `t1` and `t2`. + +========================== +| Solution | +========================== + +We can guarantee that multiple timers (with the same delay, usually `0`) +run together without any delays by making sure that their `_idleStart`s are the same, +because that's what's used to determine if a timer should be deferred or not. +Luckily, this property is currently exposed to userland and mutable, +so we can patch it. + +Another related trick we could potentially apply is making +a timer immediately be considered expired by doing `timer._idleStart -= 2`. +(the value must be more than `1`, the delay that actually gets set for `setTimeout(cb, 0)`). +This makes node view this timer as "a 1ms timer scheduled 2ms ago", +meaning that it should definitely run in the next timer phase. +However, I'm not confident we know all the side effects of doing this, +so for now, simply ensuring coordination is enough. +*/ let shouldAttemptPatching = true; +function warnAboutTimers() { + console.warn("Next.js cannot guarantee that Cache Components will run as expected due to the current runtime's implementation of `setTimeout()`.\nPlease report a github issue here: https://github.com/vercel/next.js/issues/new/"); +} +function createAtomicTimerGroup(delayMs = 0) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('createAtomicTimerGroup cannot be called in the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E934", + enumerable: false, + configurable: true + }); + } else { + let isFirstCallback = true; + let firstTimerIdleStart = null; + let didFirstTimerRun = false; + // As a sanity check, we schedule an immediate from the first timeout + // to check if the execution was interrupted (i.e. if it ran between the timeouts). + // Note that we're deliberately bypassing the "fast setImmediate" patch here -- + // otherwise, this check would always fail, because the immediate + // would always run before the second timeout. + let didImmediateRun = false; + function runFirstCallback(callback) { + didFirstTimerRun = true; + if (shouldAttemptPatching) { + (0, _fastsetimmediateexternal.unpatchedSetImmediate)(()=>{ + didImmediateRun = true; + }); + } + return callback(); + } + function runSubsequentCallback(callback) { + if (shouldAttemptPatching) { + if (didImmediateRun) { + // If the immediate managed to run between the timers, then we're not + // able to provide the guarantees that we're supposed to + shouldAttemptPatching = false; + warnAboutTimers(); + } + } + return callback(); + } + return function scheduleTimeout(callback) { + if (didFirstTimerRun) { + throw Object.defineProperty(new _invarianterror.InvariantError('Cannot schedule more timers into a group that already executed'), "__NEXT_ERROR_CODE", { + value: "E935", + enumerable: false, + configurable: true + }); + } + const timer = setTimeout(isFirstCallback ? runFirstCallback : runSubsequentCallback, delayMs, callback); + isFirstCallback = false; + if (!shouldAttemptPatching) { + // We already tried patching some timers, and it didn't work. + // No point trying again. + return timer; + } + // NodeJS timers have a `_idleStart` property, but it doesn't exist e.g. in Bun. + // If it's not present, we'll warn and try to continue. + try { + if ('_idleStart' in timer && typeof timer._idleStart === 'number') { + // If this is the first timer that was scheduled, save its `_idleStart`. + // We'll copy it onto subsequent timers to guarantee that they'll all be + // considered expired in the same iteration of the event loop + // and thus will all be executed in the same timer phase. + if (firstTimerIdleStart === null) { + firstTimerIdleStart = timer._idleStart; + } else { + timer._idleStart = firstTimerIdleStart; + } + } else { + shouldAttemptPatching = false; + warnAboutTimers(); + } + } catch (err) { + // This should never fail in current Node, but it might start failing in the future. + // We might be okay even without tweaking the timers, so warn and try to continue. + console.error(Object.defineProperty(new _invarianterror.InvariantError('An unexpected error occurred while adjusting `_idleStart` on an atomic timer', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E933", + enumerable: false, + configurable: true + })); + shouldAttemptPatching = false; + warnAboutTimers(); + } + return timer; + }; + } +} + +//# sourceMappingURL=app-render-scheduling.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/app-render.js b/cli/app/node_modules/next/dist/server/app-render/app-render.js new file mode 100644 index 00000000000..465c05b954c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/app-render.js @@ -0,0 +1,4469 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "renderToHTMLOrFlight", { + enumerable: true, + get: function() { + return renderToHTMLOrFlight; + } +}); +const _jsxruntime = require("react/jsx-runtime"); +const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); +const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("../render-result")); +const _streamops = require("./stream-ops"); +const _internalutils = require("../internal-utils"); +const _approuterheaders = require("../../client/components/app-router-headers"); +const _metadatacontext = require("../../lib/metadata/metadata-context"); +const _requeststore = require("../async-storage/request-store"); +const _workstore = require("../async-storage/work-store"); +const _httpaccessfallback = require("../../client/components/http-access-fallback/http-access-fallback"); +const _redirect = require("../../client/components/redirect"); +const _redirecterror = require("../../client/components/redirect-error"); +const _implicittags = require("../lib/implicit-tags"); +const _constants = require("../lib/trace/constants"); +const _tracer = require("../lib/trace/tracer"); +const _flightrenderresult = require("./flight-render-result"); +const _createerrorhandler = require("./create-error-handler"); +const _getshortdynamicparamtype = require("./get-short-dynamic-param-type"); +const _getsegmentparam = require("../../shared/lib/router/utils/get-segment-param"); +const _getscriptnoncefromheader = require("./get-script-nonce-from-header"); +const _parseandvalidateflightrouterstate = require("./parse-and-validate-flight-router-state"); +const _createflightrouterstatefromloadertree = require("./create-flight-router-state-from-loader-tree"); +const _actionhandler = require("./action-handler"); +const _bailouttocsr = require("../../shared/lib/lazy-dynamic/bailout-to-csr"); +const _log = require("../../build/output/log"); +const _requestcookies = require("../web/spec-extension/adapters/request-cookies"); +const _serverinsertedhtml = require("./server-inserted-html"); +const _requiredscripts = require("./required-scripts"); +const _addpathprefix = require("../../shared/lib/router/utils/add-path-prefix"); +const _makegetserverinsertedhtml = require("./make-get-server-inserted-html"); +const _walktreewithflightrouterstate = require("./walk-tree-with-flight-router-state"); +const _createcomponenttree = require("./create-component-tree"); +const _getassetquerystring = require("./get-asset-query-string"); +const _manifestssingleton = require("./manifests-singleton"); +const _postponedstate = require("./postponed-state"); +const _hooksservercontext = require("../../client/components/hooks-server-context"); +const _useflightresponse = require("./use-flight-response"); +const _staticgenerationbailout = require("../../client/components/static-generation-bailout"); +const _formatservererror = require("../../lib/format-server-error"); +const _errortelemetryutils = require("../../lib/error-telemetry-utils"); +const _dynamicrendering = require("./dynamic-rendering"); +const _clientcomponentrendererlogger = require("../client-component-renderer-logger"); +const _helpers = require("../base-http/helpers"); +const _parserelativeurl = require("../../shared/lib/router/utils/parse-relative-url"); +const _approuter = /*#__PURE__*/ _interop_require_default(require("../../client/components/app-router")); +const _serveractionrequestmeta = require("../lib/server-action-request-meta"); +const _createinitialrouterstate = require("../../client/components/router-reducer/create-initial-router-state"); +const _approuterinstance = require("../../client/components/app-router-instance"); +const _utils = require("../instrumentation/utils"); +const _segment = require("../../shared/lib/segment"); +const _fallbackparams = require("../request/fallback-params"); +const _apprenderprerenderutils = require("./app-render-prerender-utils"); +const _prospectiverenderutils = require("./prospective-render-utils"); +const _apprenderrenderutils = require("./app-render-render-utils"); +const _scheduler = require("../../lib/scheduler"); +const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); +const _consoleasyncstorageexternal = require("./console-async-storage.external"); +const _cachesignal = require("./cache-signal"); +const _varyparams = require("./vary-params"); +const _utils1 = require("../lib/trace/utils"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _staletime = require("./stale-time"); +const _constants1 = require("../../lib/constants"); +const _createcomponentstylesandscripts = require("./create-component-styles-and-scripts"); +const _parseloadertree = require("../../shared/lib/router/utils/parse-loader-tree"); +const _resumedatacache = require("../resume-data-cache/resume-data-cache"); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../../lib/is-error")); +const _createserverinsertedmetadata = require("./metadata-insertion/create-server-inserted-metadata"); +const _serverutils = require("../server-utils"); +const _revalidationutils = require("../revalidation-utils"); +const _trackmoduleloadingexternal = require("./module-loading/track-module-loading.external"); +const _reactlargeshellerror = require("./react-large-shell-error"); +const _segmentexplorerpath = require("./segment-explorer-path"); +const _requestmeta = require("../request-meta"); +const _getdynamicparam = require("../../shared/lib/router/utils/get-dynamic-param"); +const _imageconfigcontextsharedruntime = require("../../shared/lib/image-config-context.shared-runtime"); +const _imageconfig = require("../../shared/lib/image-config"); +const _stagedrendering = require("./staged-rendering"); +const _instantconfig = require("./instant-validation/instant-config"); +const _warnonce = require("../../shared/lib/utils/warn-once"); +const _debugchannelserver = require("./debug-channel-server"); +const _streamutils = require("./instant-validation/stream-utils"); +const _boundarytracking = require("./instant-validation/boundary-tracking"); +const _cookies = require("../web/spec-extension/cookies"); +const _instantvalidationerror = require("./instant-validation/instant-validation-error"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function maybeAppendBuildIdToRSCPayload(ctx, payload) { + if (!ctx.sharedContext.deploymentId) { + // When using the build id, we need to initialize the id on initial page load, so a build id + // header wouldn't be enough. + payload.b = ctx.sharedContext.buildId; + } + return payload; +} +const flightDataPathHeadKey = 'h'; +const getFlightViewportKey = (requestId)=>requestId + 'v'; +const getFlightMetadataKey = (requestId)=>requestId + 'm'; +const filterStackFrame = process.env.NODE_ENV !== 'production' ? require('../lib/source-maps').filterStackFrameDEV : undefined; +function parseRequestHeaders(headers, options) { + // runtime prefetch requests are *not* treated as prefetch requests + // (TODO: this is confusing, we should refactor this to express this better) + const isPrefetchRequest = headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] === '1'; + const isRuntimePrefetchRequest = headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] === '2'; + const isHmrRefresh = headers[_approuterheaders.NEXT_HMR_REFRESH_HEADER] !== undefined; + const isRSCRequest = headers[_approuterheaders.RSC_HEADER] !== undefined; + const shouldProvideFlightRouterState = isRSCRequest && (!isPrefetchRequest || !options.isRoutePPREnabled); + const flightRouterState = shouldProvideFlightRouterState ? (0, _parseandvalidateflightrouterstate.parseAndValidateFlightRouterState)(headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER]) : undefined; + // Checks if this is a prefetch of the Route Tree by the Segment Cache + const isRouteTreePrefetchRequest = headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] === '/_tree'; + const csp = headers['content-security-policy'] || headers['content-security-policy-report-only']; + const nonce = typeof csp === 'string' ? (0, _getscriptnoncefromheader.getScriptNonceFromHeader)(csp) : undefined; + const previouslyRevalidatedTags = (0, _serverutils.getPreviouslyRevalidatedTags)(headers, options.previewModeId); + let requestId; + let htmlRequestId; + if (process.env.__NEXT_DEV_SERVER) { + // The request IDs are only used for the dev server to send debug + // information to the matching client (identified by the HTML request ID + // that was sent to the client with the HTML document) for the current + // request (identified by the request ID, as defined by the client). + requestId = typeof headers[_approuterheaders.NEXT_REQUEST_ID_HEADER] === 'string' ? headers[_approuterheaders.NEXT_REQUEST_ID_HEADER] : undefined; + htmlRequestId = typeof headers[_approuterheaders.NEXT_HTML_REQUEST_ID_HEADER] === 'string' ? headers[_approuterheaders.NEXT_HTML_REQUEST_ID_HEADER] : undefined; + } + return { + flightRouterState, + isPrefetchRequest, + isRuntimePrefetchRequest, + isRouteTreePrefetchRequest, + isHmrRefresh, + isRSCRequest, + nonce, + previouslyRevalidatedTags, + requestId, + htmlRequestId + }; +} +/** + * Walks the loader tree to find the minimum `unstable_dynamicStaleTime` exported by + * any page module. Returns null if no page exports the config. + * + * This only reads static exports from page modules — it does not render any + * server components, so it's cheap to call. + * + * TODO: Move this to the prefetch hints file so we don't have to walk the + * tree on every render. + */ async function getDynamicStaleTime(tree) { + const { page, parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + let result = null; + // Only pages (not layouts) can export unstable_dynamicStaleTime. + if (typeof page !== 'undefined') { + const pageMod = await page[0](); + if (pageMod && typeof pageMod.unstable_dynamicStaleTime === 'number') { + const value = pageMod.unstable_dynamicStaleTime; + result = result !== null ? Math.min(result, value) : value; + } + } + const childPromises = []; + for(const parallelRouteKey in parallelRoutes){ + childPromises.push(getDynamicStaleTime(parallelRoutes[parallelRouteKey])); + } + const childResults = await Promise.all(childPromises); + for (const childResult of childResults){ + if (childResult !== null) { + result = result !== null ? Math.min(result, childResult) : childResult; + } + } + return result; +} +function createNotFoundLoaderTree(loaderTree) { + const components = loaderTree[2]; + const hasGlobalNotFound = !!components['global-not-found']; + const notFoundTreeComponents = hasGlobalNotFound ? { + layout: components['global-not-found'], + page: [ + ()=>null, + 'next/dist/client/components/builtin/empty-stub' + ] + } : { + page: components['not-found'] + }; + return [ + '', + { + children: [ + _segment.PAGE_SEGMENT_KEY, + {}, + notFoundTreeComponents, + null + ] + }, + // Always include global-error so that getGlobalErrorStyles can access it. + // When global-not-found is present, use full components. + // Otherwise, only include global-error module. + hasGlobalNotFound ? components : { + 'global-error': components['global-error'] + }, + null + ]; +} +/** + * Returns a function that parses the dynamic segment and return the associated value. + */ function makeGetDynamicParamFromSegment(interpolatedParams, fallbackRouteParams, optimisticRouting) { + return function getDynamicParamFromSegment(loaderTree) { + const [segment, , , staticSiblings] = loaderTree; + const segmentParam = (0, _getsegmentparam.getSegmentParam)(segment); + if (!segmentParam) { + return null; + } + const segmentKey = segmentParam.paramName; + const dynamicParamType = _getshortdynamicparamtype.dynamicParamTypes[segmentParam.paramType]; + // Static siblings are only included when optimistic routing is enabled + const siblings = optimisticRouting ? staticSiblings : null; + return (0, _getdynamicparam.getDynamicParam)(interpolatedParams, segmentKey, dynamicParamType, fallbackRouteParams, siblings); + }; +} +function NonIndex({ createElement, pagePath, statusCode, isPossibleServerAction }) { + const is404Page = pagePath === '/404'; + const isInvalidStatusCode = typeof statusCode === 'number' && statusCode > 400; + // Only render noindex for page request, skip for server actions + // TODO: is this correct if `isPossibleServerAction` is a false positive? + if (!isPossibleServerAction && (is404Page || isInvalidStatusCode)) { + return createElement('meta', { + name: 'robots', + content: 'noindex' + }); + } + return null; +} +/** + * This is used by server actions & client-side navigations to generate RSC data from a client-side request. + * This function is only called on "dynamic" requests (ie, there wasn't already a static response). + * It uses request headers (namely `next-router-state-tree`) to determine where to start rendering. + */ async function generateDynamicRSCPayload(ctx, options) { + // Flight data that is going to be passed to the browser. + // Currently a single item array but in the future multiple patches might be combined in a single request. + // We initialize `flightData` to an empty string because the client router knows how to tolerate + // it (treating it as an MPA navigation). The only time this function wouldn't generate flight data + // is for server actions, if the server action handler instructs this function to skip it. When the server + // action reducer sees a falsy value, it'll simply resolve the action with no data. + let flightData = ''; + const { componentMod: { routeModule: { userland: { loaderTree } }, createElement, createMetadataComponents, Fragment }, query, requestId, flightRouterState, workStore, url } = ctx; + const serveStreamingMetadata = !!ctx.renderOpts.serveStreamingMetadata; + if (!(options == null ? void 0 : options.skipPageRendering)) { + var _ctx_renderOpts_prefetchHints; + const preloadCallbacks = []; + // If we're performing instant validation, we need to render the whole tree, + // without skipping shared layouts. + const needsFullTree = process.env.__NEXT_DEV_SERVER && ctx.renderOpts.cacheComponents && !(options == null ? void 0 : options.actionResult) && // Only for navigations + await (0, _instantconfig.anySegmentNeedsInstantValidationInDev)(loaderTree); + const metadataIsRuntimePrefetchable = await (0, _instantconfig.anySegmentHasRuntimePrefetchEnabled)(loaderTree); + const { Viewport, Metadata, MetadataOutlet } = createMetadataComponents({ + tree: loaderTree, + parsedQuery: query, + pathname: url.pathname, + metadataContext: (0, _metadatacontext.createMetadataContext)(ctx.renderOpts), + interpolatedParams: ctx.interpolatedParams, + serveStreamingMetadata, + isRuntimePrefetchable: metadataIsRuntimePrefetchable + }); + const rscHead = createElement(Fragment, { + key: flightDataPathHeadKey + }, createElement(NonIndex, { + createElement, + pagePath: ctx.pagePath, + statusCode: ctx.res.statusCode, + isPossibleServerAction: ctx.isPossibleServerAction + }), createElement(Viewport, { + key: getFlightViewportKey(requestId) + }), createElement(Metadata, { + key: getFlightMetadataKey(requestId) + })); + flightData = (needsFullTree ? await (0, _walktreewithflightrouterstate.createFullTreeFlightDataForNavigation)({ + ctx, + loaderTree, + rscHead, + injectedCSS: new Set(), + injectedJS: new Set(), + injectedFontPreloadTags: new Set(), + preloadCallbacks, + MetadataOutlet + }) : await (0, _walktreewithflightrouterstate.walkTreeWithFlightRouterState)({ + ctx, + loaderTreeToFilter: loaderTree, + parentParams: {}, + flightRouterState, + rscHead, + injectedCSS: new Set(), + injectedJS: new Set(), + injectedFontPreloadTags: new Set(), + rootLayoutIncluded: false, + preloadCallbacks, + MetadataOutlet, + hintTree: ((_ctx_renderOpts_prefetchHints = ctx.renderOpts.prefetchHints) == null ? void 0 : _ctx_renderOpts_prefetchHints[ctx.pagePath]) ?? null + })).map((path)=>path.slice(1)) // remove the '' (root) segment + ; + } + // In dev, the Vary header may not reliably reflect whether a route can + // be intercepted, because interception routes are compiled on demand. + // Default to true so the client doesn't cache a stale Fallback entry. + const varyHeader = ctx.res.getHeader('vary'); + const couldBeIntercepted = !!process.env.__NEXT_DEV_SERVER || typeof varyHeader === 'string' && varyHeader.includes(_approuterheaders.NEXT_URL); + // If we have an action result, then this is a server action response. + // We can rely on this because `ActionResult` will always be a promise, even if + // the result is falsey. + if (options == null ? void 0 : options.actionResult) { + return maybeAppendBuildIdToRSCPayload(ctx, { + a: options.actionResult, + f: flightData, + q: getRenderedSearch(query), + i: !!couldBeIntercepted + }); + } + // Otherwise, it's a regular RSC response. + const baseResponse = maybeAppendBuildIdToRSCPayload(ctx, { + f: flightData, + q: getRenderedSearch(query), + i: !!couldBeIntercepted, + S: workStore.isStaticGeneration, + h: (0, _varyparams.getMetadataVaryParamsThenable)() + }); + if ((options == null ? void 0 : options.staleTimeIterable) !== undefined) { + baseResponse.s = options.staleTimeIterable; + } + if ((options == null ? void 0 : options.staticStageByteLengthPromise) !== undefined) { + baseResponse.l = options.staticStageByteLengthPromise; + } + if ((options == null ? void 0 : options.runtimePrefetchStream) !== undefined) { + baseResponse.p = options.runtimePrefetchStream; + } + // Include the per-page dynamic stale time from unstable_dynamicStaleTime, but only + // for dynamic renders (not prerenders/static generation). The client treats + // its presence as authoritative. + // TODO: Move this to the prefetch hints file so we don't have to walk the + // tree on every render. + if (!workStore.isStaticGeneration) { + const dynamicStaleTime = await getDynamicStaleTime(ctx.componentMod.routeModule.userland.loaderTree); + if (dynamicStaleTime !== null) { + baseResponse.d = dynamicStaleTime; + } + } + return baseResponse; +} +function createErrorContext(ctx, renderSource) { + return { + routerKind: 'App Router', + routePath: ctx.pagePath, + // TODO: is this correct if `isPossibleServerAction` is a false positive? + routeType: ctx.isPossibleServerAction ? 'action' : 'render', + renderSource, + revalidateReason: (0, _utils.getRevalidateReason)(ctx.workStore) + }; +} +/** + * Produces a RenderResult containing the Flight data for the given request. See + * `generateDynamicRSCPayload` for information on the contents of the render result. + */ async function generateDynamicFlightRenderResult(req, ctx, requestStore, options) { + const { htmlRequestId, renderOpts, requestId, workStore } = ctx; + const { onInstrumentationRequestError, setReactDebugChannel, isBuildTimePrerendering = false } = renderOpts; + function onFlightDataRenderError(err, silenceLog) { + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'react-server-components-payload'), silenceLog); + } + const onError = (0, _createerrorhandler.createReactServerErrorHandler)(process.env.NODE_ENV === 'development', isBuildTimePrerendering, workStore.reactServerErrorsByDigest, onFlightDataRenderError); + const debugChannel = setReactDebugChannel && (0, _debugchannelserver.createDebugChannel)(); + if (debugChannel) { + setReactDebugChannel(debugChannel.clientSide, htmlRequestId, requestId); + } + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + // For app dir, use the bundled version of Flight server renderer (renderToReadableStream) + // which contains the subset React. + const rscPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, generateDynamicRSCPayload, ctx, options); + const flightStream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ctx.componentMod, rscPayload, clientModules, { + onError, + temporaryReferences: options == null ? void 0 : options.temporaryReferences, + filterStackFrame, + debugChannel: debugChannel == null ? void 0 : debugChannel.serverSide + }); + return new _flightrenderresult.FlightRenderResult(flightStream, { + fetchMetrics: workStore.fetchMetrics + }, options == null ? void 0 : options.waitUntil); +} +/** + * Production-only staged dynamic flight render for cache components. Uses + * staged rendering to separate static (RDC-backed) from runtime/dynamic + * content. + */ async function generateStagedDynamicFlightRenderResult(req, ctx, requestStore) { + const { componentMod, workStore, renderOpts } = ctx; + const { renderToReadableStream, routeModule } = componentMod; + const { loaderTree } = routeModule.userland; + const { onInstrumentationRequestError, experimental } = renderOpts; + function onFlightDataRenderError(err, silenceLog) { + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'react-server-components-payload'), silenceLog); + } + const onError = (0, _createerrorhandler.createReactServerErrorHandler)(false, false, workStore.reactServerErrorsByDigest, onFlightDataRenderError); + const selectStaleTime = (0, _staletime.createSelectStaleTime)(experimental); + const staleTimeIterable = new _staletime.StaleTimeIterable(); + // TODO(cached-navs): this assumes that we checked during build that there's no sync IO. + // but it can happen e.g. after a revalidation or conditionally for a param that wasn't prerendered. + // we should change this to track sync IO, log an error and advance to dynamic. + const shouldTrackSyncIO = false; + const stageController = new _stagedrendering.StagedRenderingController(null, null, shouldTrackSyncIO); + // Initialize stale time tracking on the request store. + requestStore.stale = _constants1.INFINITE_CACHE; + requestStore.stagedRendering = stageController; + requestStore.asyncApiPromises = createAsyncApiPromises(stageController, requestStore.cookies, requestStore.mutableCookies, requestStore.headers); + (0, _staletime.trackStaleTime)(requestStore, staleTimeIterable, selectStaleTime); + // Deferred promise for the static stage byte length. Flight serializes the + // resolved value into the stream so the client knows where the static + // prefix ends. + let resolveStaticStageByteLength; + const staticStageByteLengthPromise = new Promise((resolve)=>{ + resolveStaticStageByteLength = resolve; + }); + // Check if this route has opted into runtime prefetching via + // unstable_instant. If so, we piggyback on the dynamic render to fill caches + // and then spawn a final runtime prerender whose result stream is embedded in + // the RSC payload. This is gated on the explicit opt-in because it adds extra + // server processing, increases the response payload size, and the runtime + // prefetch output should have been validated first. + const hasRuntimePrefetch = await (0, _instantconfig.anySegmentHasRuntimePrefetchEnabled)(loaderTree); + let runtimePrefetchStream; + if (hasRuntimePrefetch) { + // Create a mutable cache that gets filled during the dynamic render. + const prerenderResumeDataCache = (0, _resumedatacache.createPrerenderResumeDataCache)(); + requestStore.prerenderResumeDataCache = prerenderResumeDataCache; + const cacheSignal = new _cachesignal.CacheSignal(); + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + requestStore.cacheSignal = cacheSignal; + // Create a deferred stream for the runtime prefetch result. Its readable + // side goes into the RSC payload (Flight serializes it lazily). The + // writable side receives the runtime prerender result once the dynamic + // render has filled all caches. + const runtimePrefetchTransform = new TransformStream(); + runtimePrefetchStream = runtimePrefetchTransform.readable; + // Wait for the dynamic render to fill caches, then run the final runtime + // prerender (fire-and-forget — does not block the response). + void cacheSignal.cacheReady().then(()=>spawnRuntimePrefetchWithFilledCaches(runtimePrefetchTransform.writable, ctx, prerenderResumeDataCache, requestStore, onError)); + } + const rscPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, generateDynamicRSCPayload, ctx, { + staleTimeIterable, + staticStageByteLengthPromise, + runtimePrefetchStream + }); + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + const flightReadableStream = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + stageController.advanceStage(_stagedrendering.RenderStage.Static); + const stream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, renderToReadableStream, rscPayload, clientModules, { + onError, + filterStackFrame + }); + const [dynamicStream, staticStream] = stream.tee(); + countStaticStageBytes(staticStream, stageController).then(resolveStaticStageByteLength); + return dynamicStream; + }, ()=>{ + // This is a separate task that doesn't advance a stage. It forces + // draining the microtask queue so that the stale time iterable is closed + // before we advance to the dynamic stage. + void (0, _staletime.finishStaleTimeTracking)(staleTimeIterable); + }, ()=>{ + stageController.advanceStage(_stagedrendering.RenderStage.Dynamic); + }); + return new _flightrenderresult.FlightRenderResult(flightReadableStream, { + fetchMetrics: workStore.fetchMetrics + }); +} +/** + * Runs a final runtime prerender using the provided (already filled) cache and + * pipes its output into the provided writable stream. The caller is responsible + * for waiting until caches are warm before calling this function. + */ async function spawnRuntimePrefetchWithFilledCaches(writable, ctx, prerenderResumeDataCache, requestStore, onError) { + try { + const { componentMod, getDynamicParamFromSegment } = ctx; + const { loaderTree } = componentMod.routeModule.userland; + const rootParams = (0, _createcomponenttree.getRootParams)(loaderTree, getDynamicParamFromSegment); + const staleTimeIterable = new _staletime.StaleTimeIterable(); + const { result } = await finalRuntimeServerPrerender(ctx, generateDynamicRSCPayload.bind(null, ctx, { + staleTimeIterable + }), prerenderResumeDataCache, null, rootParams, requestStore.headers, requestStore.cookies, requestStore.draftMode, onError, staleTimeIterable); + await result.prelude.pipeTo(writable); + } catch { + // Runtime prerender failed. Close the stream gracefully — the navigation + // still works, we just won't get cached runtime data. + try { + await writable.close(); + } catch { + // Writable may already be closed/errored. + } + } +} +async function stagedRenderToReadableStreamWithoutCachesInDev(ctx, requestStore, getPayload, options) { + // We're rendering while bypassing caches, + // so we have no hope of showing a useful runtime stage. + // But we still want things like `params` to show up in devtools correctly, + // which relies on mechanisms we've set up for staged rendering, + // so we do a 2-task version (Static -> Dynamic) instead. + // We aren't filling caches so we don't need to abort this render, it'll + // stream in a single pass + const stageController = new _stagedrendering.StagedRenderingController(null, null, false // do not track sync IO (we don't have reliable stages) + ); + const environmentName = ()=>{ + const currentStage = stageController.currentStage; + switch(currentStage){ + case _stagedrendering.RenderStage.Before: + case _stagedrendering.RenderStage.EarlyStatic: + case _stagedrendering.RenderStage.Static: + return 'Prerender'; + case _stagedrendering.RenderStage.EarlyRuntime: + case _stagedrendering.RenderStage.Runtime: + case _stagedrendering.RenderStage.Dynamic: + case _stagedrendering.RenderStage.Abandoned: + return 'Server'; + default: + currentStage; + throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${currentStage}`), "__NEXT_ERROR_CODE", { + value: "E881", + enumerable: false, + configurable: true + }); + } + }; + requestStore.stagedRendering = stageController; + requestStore.asyncApiPromises = createAsyncApiPromises(stageController, requestStore.cookies, requestStore.mutableCookies, requestStore.headers); + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + const rscPayload = await getPayload(requestStore); + return await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + stageController.advanceStage(_stagedrendering.RenderStage.Static); + return _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ctx.componentMod, rscPayload, clientModules, { + ...options, + environmentName + }); + }, ()=>{ + stageController.advanceStage(_stagedrendering.RenderStage.Dynamic); + }); +} +/** + * Fork of `generateDynamicFlightRenderResult` that renders using `renderWithRestartOnCacheMissInDev` + * to ensure correct separation of environments Prerender/Server (for use in Cache Components) + */ async function generateDynamicFlightRenderResultWithStagesInDev(req, ctx, initialRequestStore, createRequestStore, fallbackParams) { + const { htmlRequestId, renderOpts, requestId, workStore, componentMod: { createElement, routeModule: { userland: { loaderTree } } }, url } = ctx; + const { onInstrumentationRequestError, setReactDebugChannel, setCacheStatus, isBuildTimePrerendering = false } = renderOpts; + function onFlightDataRenderError(err, silenceLog) { + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'react-server-components-payload'), silenceLog); + } + const onError = (0, _createerrorhandler.createReactServerErrorHandler)(process.env.NODE_ENV === 'development', isBuildTimePrerendering, workStore.reactServerErrorsByDigest, onFlightDataRenderError); + // We validate RSC requests for HMR refreshes and client navigations when + // instant configs exist, since we render all the layouts necessary to perform + // the validation in those cases. + const shouldValidate = !isBypassingCachesInDev(initialRequestStore) && (initialRequestStore.isHmrRefresh === true || await (0, _instantconfig.anySegmentNeedsInstantValidationInDev)(loaderTree)); + const getPayload = async (requestStore)=>{ + const payload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, generateDynamicRSCPayload, ctx, undefined); + if (isBypassingCachesInDev(requestStore)) { + // Mark the RSC payload to indicate that caches were bypassed in dev. + // This lets the client know not to cache anything based on this render. + payload._bypassCachesInDev = createElement(WarnForBypassCachesInDev, { + route: workStore.route + }); + } else if (shouldValidate) { + // If this payload will be used for validation, it needs to contain the + // canonical URL. Without it we'd get an error. + payload.c = prepareInitialCanonicalUrl(url); + } + return payload; + }; + let debugChannel; + let stream; + if (// We only do this flow if we can safely recreate the store from scratch + // (which is not the case for renders after an action) + createRequestStore && // We only do this flow if we're not bypassing caches in dev using + // "disable cache" in devtools or a hard refresh (cache-control: "no-store") + !isBypassingCachesInDev(initialRequestStore)) { + // Before we kick off the render, we set the cache status back to it's initial state + // in case a previous render bypassed the cache. + if (setCacheStatus) { + setCacheStatus('ready', htmlRequestId); + } + const { stream: serverStream, accumulatedChunksPromise, syncInterruptReason, startTime, staticStageEndTime, runtimeStageEndTime, debugChannel: returnedDebugChannel, requestStore: finalRequestStore } = await renderWithRestartOnCacheMissInDev(ctx, initialRequestStore, createRequestStore, getPayload, onError); + if (shouldValidate) { + let validationDebugChannelClient = undefined; + if (returnedDebugChannel) { + const [t1, t2] = returnedDebugChannel.clientSide.readable.tee(); + returnedDebugChannel.clientSide.readable = t1; + validationDebugChannelClient = nodeStreamFromReadableStream(t2); + } + _consoleasyncstorageexternal.consoleAsyncStorage.run({ + dim: true + }, spawnStaticShellValidationInDev, accumulatedChunksPromise, syncInterruptReason, startTime, staticStageEndTime, runtimeStageEndTime, ctx, finalRequestStore, fallbackParams, validationDebugChannelClient); + } else { + logValidationSkipped(ctx); + } + debugChannel = returnedDebugChannel; + stream = serverStream; + } else { + // We're either bypassing caches or we can't restart the render. + // Do a dynamic render, but with (basic) environment labels. + // Set cache status to bypass when specifically bypassing caches in dev + if (setCacheStatus) { + setCacheStatus('bypass', htmlRequestId); + } + debugChannel = setReactDebugChannel && (0, _debugchannelserver.createDebugChannel)(); + stream = await stagedRenderToReadableStreamWithoutCachesInDev(ctx, initialRequestStore, getPayload, { + onError: onError, + filterStackFrame, + debugChannel: debugChannel == null ? void 0 : debugChannel.serverSide + }); + } + if (debugChannel && setReactDebugChannel) { + setReactDebugChannel(debugChannel.clientSide, htmlRequestId, requestId); + } + return new _flightrenderresult.FlightRenderResult(stream, { + fetchMetrics: workStore.fetchMetrics + }); +} +async function generateRuntimePrefetchResult(req, ctx, requestStore) { + const { workStore, renderOpts } = ctx; + const { isBuildTimePrerendering = false, onInstrumentationRequestError } = renderOpts; + function onFlightDataRenderError(err, silenceLog) { + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, // TODO(runtime-ppr): should we use a different value? + createErrorContext(ctx, 'react-server-components-payload'), silenceLog); + } + const onError = (0, _createerrorhandler.createReactServerErrorHandler)(false, isBuildTimePrerendering, workStore.reactServerErrorsByDigest, onFlightDataRenderError); + const metadata = {}; + const staleTimeIterable = new _staletime.StaleTimeIterable(); + const { componentMod: { routeModule: { userland: { loaderTree } } }, getDynamicParamFromSegment } = ctx; + const rootParams = (0, _createcomponenttree.getRootParams)(loaderTree, getDynamicParamFromSegment); + // We need to share caches between the prospective prerender and the final prerender, + // but we're not going to persist this anywhere. + const prerenderResumeDataCache = (0, _resumedatacache.createPrerenderResumeDataCache)(); + // We're not resuming an existing render. + const renderResumeDataCache = null; + await prospectiveRuntimeServerPrerender(ctx, generateDynamicRSCPayload.bind(null, ctx), prerenderResumeDataCache, renderResumeDataCache, rootParams, requestStore.headers, requestStore.cookies, requestStore.draftMode); + const response = await finalRuntimeServerPrerender(ctx, generateDynamicRSCPayload.bind(null, ctx, { + staleTimeIterable + }), prerenderResumeDataCache, renderResumeDataCache, rootParams, requestStore.headers, requestStore.cookies, requestStore.draftMode, onError, staleTimeIterable); + applyMetadataFromPrerenderResult(response, metadata, workStore); + metadata.fetchMetrics = ctx.workStore.fetchMetrics; + return new _flightrenderresult.FlightRenderResult(response.result.prelude, metadata); +} +async function prospectiveRuntimeServerPrerender(ctx, getPayload, prerenderResumeDataCache, renderResumeDataCache, rootParams, headers, cookies, draftMode) { + const { implicitTags, renderOpts, workStore } = ctx; + const { ComponentMod } = renderOpts; + // Prerender controller represents the lifetime of the prerender. + // It will be aborted when a Task is complete or a synchronously aborting + // API is called. Notably during cache-filling renders this does not actually + // terminate the render itself which will continue until all caches are filled + const initialServerPrerenderController = new AbortController(); + // This controller represents the lifetime of the React render call. Notably + // during the cache-filling render it is different from the prerender controller + // because we don't want to end the react render until all caches are filled. + const initialServerRenderController = new AbortController(); + // The cacheSignal helps us track whether caches are still filling or we are ready + // to cut the render off. + const cacheSignal = new _cachesignal.CacheSignal(); + const initialServerPrerenderStore = { + type: 'prerender-runtime', + phase: 'render', + rootParams, + implicitTags, + renderSignal: initialServerRenderController.signal, + controller: initialServerPrerenderController, + // During the initial prerender we need to track all cache reads to ensure + // we render long enough to fill every cache it is possible to visit during + // the final prerender. + cacheSignal, + // We only need to track dynamic accesses during the final prerender. + dynamicTracking: null, + // Runtime prefetches are never cached server-side, only client-side, + // so we set `expire` and `revalidate` to their minimum values just in case. + revalidate: 1, + expire: 0, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + renderResumeDataCache, + prerenderResumeDataCache, + hmrRefreshHash: undefined, + // We don't track vary params during initial prerender, only the final one + varyParamsAccumulator: null, + // No stage sequencing needed for prospective renders. + stagedRendering: null, + // These are not present in regular prerenders, but allowed in a runtime prerender. + headers, + cookies, + draftMode + }; + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + // We're not going to use the result of this render because the only time it could be used + // is if it completes in a microtask and that's likely very rare for any non-trivial app + const initialServerPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(initialServerPrerenderStore, getPayload); + const prerenderOptions = { + filterStackFrame, + onError: (err)=>{ + const digest = (0, _createerrorhandler.getDigestForWellKnownError)(err); + if (digest) { + return digest; + } + if (initialServerPrerenderController.signal.aborted) { + // The render aborted before this error was handled which indicates + // the error is caused by unfinished components within the render + return; + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + }, + // We don't want to stop rendering until the cacheSignal is complete so we pass + // a different signal to this render call than is used by dynamic APIs to signify + // transitioning out of the prerender environment + signal: initialServerRenderController.signal + }; + const pendingInitialServerResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(initialServerPrerenderStore, (0, _streamops.getServerPrerender)(ComponentMod), initialServerPayload, clientModules, prerenderOptions); + // Wait for all caches to be finished filling and for async imports to resolve + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + await cacheSignal.cacheReady(); + initialServerRenderController.abort(); + initialServerPrerenderController.abort(); + // We don't need to continue the prerender process if we already + // detected invalid dynamic usage in the initial prerender phase. + if (workStore.invalidDynamicUsageError) { + throw workStore.invalidDynamicUsageError; + } + try { + return await (0, _apprenderprerenderutils.createReactServerPrerenderResult)(pendingInitialServerResult); + } catch (err) { + if (initialServerRenderController.signal.aborted || initialServerPrerenderController.signal.aborted) { + // These are expected errors that might error the prerender. we ignore them. + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + // We don't normally log these errors because we are going to retry anyway but + // it can be useful for debugging Next.js itself to get visibility here when needed + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + return null; + } +} +/** + * Prepends a single ASCII byte to the stream indicating whether the response + * is partial (contains dynamic holes): '~' (0x7e) for partial, '#' (0x23) + * for complete. + */ function prependIsPartialByte(stream, isPartial) { + const byte = new Uint8Array([ + isPartial ? 0x7e : 0x23 + ]); + return stream.pipeThrough(new TransformStream({ + start (controller) { + controller.enqueue(byte); + } + })); +} +async function finalRuntimeServerPrerender(ctx, getPayload, prerenderResumeDataCache, renderResumeDataCache, rootParams, headers, cookies, draftMode, onError, staleTimeIterable) { + const { implicitTags, renderOpts } = ctx; + const { ComponentMod, experimental, isDebugDynamicAccesses } = renderOpts; + const selectStaleTime = (0, _staletime.createSelectStaleTime)(experimental); + let serverIsDynamic = false; + const finalServerController = new AbortController(); + const serverDynamicTracking = (0, _dynamicrendering.createDynamicTrackingState)(isDebugDynamicAccesses); + const finalStageController = new _stagedrendering.StagedRenderingController(finalServerController.signal, null, true // track sync IO + ); + const varyParamsAccumulator = (0, _varyparams.createResponseVaryParamsAccumulator)(); + const finalServerPrerenderStore = { + type: 'prerender-runtime', + phase: 'render', + rootParams, + implicitTags, + renderSignal: finalServerController.signal, + controller: finalServerController, + // All caches we could read must already be filled so no tracking is necessary + cacheSignal: null, + dynamicTracking: serverDynamicTracking, + // Runtime prefetches are never cached server-side, only client-side, + // so we set `expire` and `revalidate` to their minimum values just in case. + revalidate: 1, + expire: 0, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + varyParamsAccumulator, + // Used to separate the stages in the 5-task pipeline. + stagedRendering: finalStageController, + // These are not present in regular prerenders, but allowed in a runtime prerender. + headers, + cookies, + draftMode + }; + (0, _staletime.trackStaleTime)(finalServerPrerenderStore, staleTimeIterable, selectStaleTime); + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + const finalRSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(finalServerPrerenderStore, getPayload); + let prerenderIsPending = true; + const result = await (0, _apprenderrenderutils.runInSequentialTasks)(async ()=>{ + // EarlyStatic stage: render begins. + // Runtime-prefetchable segments render immediately. + // Non-prefetchable segments are gated until the Static stage. + finalStageController.advanceStage(_stagedrendering.RenderStage.EarlyStatic); + const prerenderResult = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(finalServerPrerenderStore, (0, _streamops.getServerPrerender)(ComponentMod), finalRSCPayload, clientModules, { + filterStackFrame, + onError, + signal: finalServerController.signal + }); + prerenderIsPending = false; + return prerenderResult; + }, ()=>{ + // Advance to Static stage: resolve promise holding back + // non-prefetchable segments so they can begin rendering. + finalStageController.advanceStage(_stagedrendering.RenderStage.Static); + }, ()=>{ + // Advance to EarlyRuntime stage: resolve cookies/headers for + // runtime-prefetchable segments. Sync IO is checked here. + finalStageController.advanceStage(_stagedrendering.RenderStage.EarlyRuntime); + }, ()=>{ + // Advance to Runtime stage: resolve cookies/headers for + // non-prefetchable segments. Sync IO is allowed here. + finalStageController.advanceStage(_stagedrendering.RenderStage.Runtime); + }, ()=>{ + Promise.all([ + (0, _staletime.finishStaleTimeTracking)(staleTimeIterable), + (0, _varyparams.finishAccumulatingVaryParams)(varyParamsAccumulator) + ]).then(()=>{ + // Abort. This runs as a microtask after Flight has flushed the + // staleTime and varyParams closing chunks, but before the next + // macrotask resolves the overall result. + if (finalServerController.signal.aborted) { + // If the server controller is already aborted we must have called + // something that required aborting the prerender synchronously such + // as with new Date() + serverIsDynamic = true; + return; + } + if (prerenderIsPending) { + // If prerenderIsPending then we have blocked for longer than a Task + // and we assume there is something unfinished. + serverIsDynamic = true; + } + finalServerController.abort(); + }); + }); + result.prelude = prependIsPartialByte(result.prelude, serverIsDynamic); + return { + result, + // TODO(runtime-ppr): do we need to produce a digest map here? + // digestErrorsMap: ..., + dynamicAccess: serverDynamicTracking, + isPartial: serverIsDynamic, + collectedRevalidate: finalServerPrerenderStore.revalidate, + collectedExpire: finalServerPrerenderStore.expire, + collectedStale: staleTimeIterable.currentValue, + collectedTags: finalServerPrerenderStore.tags + }; +} +/** + * Crawlers will inadvertently think the canonicalUrl in the RSC payload should be crawled + * when our intention is to just seed the router state with the current URL. + * This function splits up the pathname so that we can later join it on + * when we're ready to consume the path. + */ function prepareInitialCanonicalUrl(url) { + return (url.pathname + url.search).split('/'); +} +function getRenderedSearch(query) { + // Inlined implementation of querystring.encode, which is not available in + // the Edge runtime. + const pairs = []; + for(const key in query){ + const value = query[key]; + if (value == null) continue; + if (Array.isArray(value)) { + for (const v of value){ + pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(v))}`); + } + } else { + pairs.push(`${encodeURIComponent(key)}=${encodeURIComponent(String(value))}`); + } + } + // The result should match the format of a web URL's `search` property, since + // this is the format that's stored in the App Router state. + // TODO: We're a bit inconsistent about this. The x-nextjs-rewritten-query + // header omits the leading question mark. Should refactor to always do + // that instead. + if (pairs.length === 0) { + // If the search string is empty, return an empty string. + return ''; + } + // Prepend '?' to the search params string. + return '?' + pairs.join('&'); +} +// This is the data necessary to render when no SSR errors are encountered +async function getRSCPayload(tree, ctx, options) { + var _ctx_renderOpts_prefetchHints; + const { is404, staleTimeIterable, staticStageByteLengthPromise, runtimePrefetchStream } = options; + const injectedCSS = new Set(); + const injectedJS = new Set(); + const injectedFontPreloadTags = new Set(); + let missingSlots; + // We only track missing parallel slots in development + if (process.env.__NEXT_DEV_SERVER) { + missingSlots = new Set(); + } + const { getDynamicParamFromSegment, query, appUsingSizeAdjustment, componentMod: { createMetadataComponents, createElement, Fragment }, url, workStore } = ctx; + const hints = ((_ctx_renderOpts_prefetchHints = ctx.renderOpts.prefetchHints) == null ? void 0 : _ctx_renderOpts_prefetchHints[ctx.pagePath]) ?? null; + const initialTree = await (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(tree, hints, getDynamicParamFromSegment, query); + const serveStreamingMetadata = !!ctx.renderOpts.serveStreamingMetadata; + const hasGlobalNotFound = !!tree[2]['global-not-found']; + const metadataIsRuntimePrefetchable = await (0, _instantconfig.anySegmentHasRuntimePrefetchEnabled)(tree); + const { Viewport, Metadata, MetadataOutlet } = createMetadataComponents({ + tree, + // When it's using global-not-found, metadata errorType is undefined, which will retrieve the + // metadata from the page. + // When it's using not-found, metadata errorType is 'not-found', which will retrieve the + // metadata from the not-found.js boundary. + // TODO: remove this condition and keep it undefined when global-not-found is stabilized. + errorType: is404 && !hasGlobalNotFound ? 'not-found' : undefined, + parsedQuery: query, + pathname: url.pathname, + metadataContext: (0, _metadatacontext.createMetadataContext)(ctx.renderOpts), + interpolatedParams: ctx.interpolatedParams, + serveStreamingMetadata, + isRuntimePrefetchable: metadataIsRuntimePrefetchable + }); + const preloadCallbacks = []; + const seedData = await (0, _createcomponenttree.createComponentTree)({ + ctx, + loaderTree: tree, + parentParams: {}, + parentOptionalCatchAllParamName: null, + parentRuntimePrefetchable: false, + injectedCSS, + injectedJS, + injectedFontPreloadTags, + rootLayoutIncluded: false, + missingSlots, + preloadCallbacks, + authInterrupts: ctx.renderOpts.experimental.authInterrupts, + MetadataOutlet + }); + // When the `vary` response header is present with `Next-URL`, that means there's a chance + // it could respond differently if there's an interception route. We provide this information + // to `AppRouter` so that it can properly seed the prefetch cache with a prefix, if needed. + // In dev, the Vary header may not reliably reflect whether a route can + // be intercepted, because interception routes are compiled on demand. + // Default to true so the client doesn't cache a stale Fallback entry. + const varyHeader = ctx.res.getHeader('vary'); + const couldBeIntercepted = !!process.env.__NEXT_DEV_SERVER || typeof varyHeader === 'string' && varyHeader.includes(_approuterheaders.NEXT_URL); + const initialHead = createElement(Fragment, { + key: flightDataPathHeadKey + }, createElement(NonIndex, { + createElement, + pagePath: ctx.pagePath, + statusCode: ctx.res.statusCode, + isPossibleServerAction: ctx.isPossibleServerAction + }), createElement(Viewport, null), createElement(Metadata, null), appUsingSizeAdjustment ? createElement('meta', { + name: 'next-size-adjust', + content: '' + }) : null); + const { GlobalError, styles: globalErrorStyles } = await getGlobalErrorStyles(tree, ctx); + // Assume the head we're rendering contains only partial data if PPR is + // enabled and this is a statically generated response. This is used by the + // client Segment Cache after a prefetch to determine if it can skip the + // second request to fill in the dynamic data. + // + // See similar comment in create-component-tree.tsx for more context. + const isPossiblyPartialHead = workStore.isStaticGeneration && ctx.renderOpts.experimental.isRoutePPREnabled === true; + return maybeAppendBuildIdToRSCPayload(ctx, { + // See the comment above the `Preloads` component (below) for why this is part of the payload + P: createElement(Preloads, { + preloadCallbacks: preloadCallbacks + }), + c: prepareInitialCanonicalUrl(url), + q: getRenderedSearch(query), + i: !!couldBeIntercepted, + f: [ + [ + initialTree, + seedData, + initialHead, + isPossiblyPartialHead + ] + ], + m: missingSlots, + G: [ + GlobalError, + globalErrorStyles + ], + // Tells the client whether this route supports per-segment prefetching. + // With Cache Components, all routes support it. Without it, only fully + // static pages do, because their per-segment prefetch responses are + // generated during static generation (build or ISR). + S: workStore.isStaticGeneration || ctx.renderOpts.cacheComponents, + h: (0, _varyparams.getMetadataVaryParamsThenable)(), + s: staleTimeIterable, + l: staticStageByteLengthPromise, + p: runtimePrefetchStream, + // Include the per-page dynamic stale time from unstable_dynamicStaleTime, but + // only for dynamic renders. The client treats its presence as + // authoritative. + // TODO: Move this to the prefetch hints file so we don't have to walk + // the tree on every render. + d: !workStore.isStaticGeneration ? await getDynamicStaleTime(tree) ?? undefined : undefined + }); +} +/** + * Preload calls (such as `ReactDOM.preloadStyle` and `ReactDOM.preloadFont`) need to be called during rendering + * in order to create the appropriate preload tags in the DOM, otherwise they're a no-op. Since we invoke + * renderToReadableStream with a function that returns component props rather than a component itself, we use + * this component to "render " the preload calls. + */ function Preloads({ preloadCallbacks }) { + preloadCallbacks.forEach((preloadFn)=>preloadFn()); + return null; +} +// This is the data necessary to render when an error state is triggered +async function getErrorRSCPayload(tree, ctx, ssrError, errorType) { + var _ctx_renderOpts_prefetchHints; + const { getDynamicParamFromSegment, query, componentMod: { createMetadataComponents, createElement, Fragment }, url, workStore } = ctx; + const serveStreamingMetadata = !!ctx.renderOpts.serveStreamingMetadata; + const metadataIsRuntimePrefetchable = await (0, _instantconfig.anySegmentHasRuntimePrefetchEnabled)(tree); + const { Viewport, Metadata } = createMetadataComponents({ + tree, + parsedQuery: query, + pathname: url.pathname, + metadataContext: (0, _metadatacontext.createMetadataContext)(ctx.renderOpts), + errorType, + interpolatedParams: ctx.interpolatedParams, + serveStreamingMetadata: serveStreamingMetadata, + isRuntimePrefetchable: metadataIsRuntimePrefetchable + }); + const initialHead = createElement(Fragment, { + key: flightDataPathHeadKey + }, createElement(NonIndex, { + createElement, + pagePath: ctx.pagePath, + statusCode: ctx.res.statusCode, + isPossibleServerAction: ctx.isPossibleServerAction + }), createElement(Viewport, null), process.env.__NEXT_DEV_SERVER && createElement('meta', { + name: 'next-error', + content: 'not-found' + }), createElement(Metadata, null)); + const errorHints = ((_ctx_renderOpts_prefetchHints = ctx.renderOpts.prefetchHints) == null ? void 0 : _ctx_renderOpts_prefetchHints[ctx.pagePath]) ?? null; + const initialTree = await (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(tree, errorHints, getDynamicParamFromSegment, query); + let err = undefined; + if (ssrError) { + err = (0, _iserror.default)(ssrError) ? ssrError : Object.defineProperty(new Error(ssrError + ''), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + // For metadata notFound error there's no global not found boundary on top + // so we create a not found page with AppRouter + const seedData = [ + createElement('html', { + id: '__next_error__' + }, createElement('head', null), createElement('body', null, process.env.__NEXT_DEV_SERVER && err ? createElement('template', { + 'data-next-error-message': err.message, + 'data-next-error-digest': 'digest' in err ? err.digest : '', + 'data-next-error-stack': err.stack + }) : null)), + {}, + null, + false, + null + ]; + const { GlobalError, styles: globalErrorStyles } = await getGlobalErrorStyles(tree, ctx); + const isPossiblyPartialHead = workStore.isStaticGeneration && ctx.renderOpts.experimental.isRoutePPREnabled === true; + return maybeAppendBuildIdToRSCPayload(ctx, { + c: prepareInitialCanonicalUrl(url), + q: getRenderedSearch(query), + m: undefined, + i: false, + f: [ + [ + initialTree, + seedData, + initialHead, + isPossiblyPartialHead + ] + ], + G: [ + GlobalError, + globalErrorStyles + ], + // Tells the client whether this route supports per-segment prefetching. + // With Cache Components, all routes support it. Without it, only fully + // static pages do, because their per-segment prefetch responses are + // generated during static generation (build or ISR). + S: workStore.isStaticGeneration || ctx.renderOpts.cacheComponents, + h: (0, _varyparams.getMetadataVaryParamsThenable)() + }); +} +// This component must run in an SSR context. It will render the RSC root component +function App({ reactServerStream, reactDebugStream, debugEndTime, preinitScripts, ServerInsertedHTMLProvider, nonce, images }) { + preinitScripts(); + const response = _react.use((0, _useflightresponse.getFlightStream)(reactServerStream, reactDebugStream, debugEndTime, nonce)); + const initialState = (0, _createinitialrouterstate.createInitialRouterState)({ + // This is not used during hydration, so we don't have to pass a + // real timestamp. + navigatedAt: -1, + initialRSCPayload: response, + // location is not initialized in the SSR render + // it's set to window.location during hydration + location: null + }); + const actionQueue = (0, _approuterinstance.createMutableActionQueue)(initialState, null); + const { HeadManagerContext } = require('../../shared/lib/head-manager-context.shared-runtime'); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(HeadManagerContext.Provider, { + value: { + appDir: true, + nonce + }, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_imageconfigcontextsharedruntime.ImageConfigContext.Provider, { + value: images ?? _imageconfig.imageConfigDefault, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ServerInsertedHTMLProvider, { + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approuter.default, { + actionQueue: actionQueue, + globalErrorState: response.G + }) + }) + }) + }); +/* eslint-enable @next/internal/no-ambiguous-jsx -- React Client */ } +// @TODO our error stream should be probably just use the same root component. But it was previously +// different I don't want to figure out if that is meaningful at this time so just keeping the behavior +// consistent for now. +function ErrorApp({ reactServerStream, preinitScripts, ServerInsertedHTMLProvider, nonce, images }) { + /* eslint-disable @next/internal/no-ambiguous-jsx -- React Client */ preinitScripts(); + const response = _react.use((0, _useflightresponse.getFlightStream)(reactServerStream, undefined, undefined, nonce)); + const initialState = (0, _createinitialrouterstate.createInitialRouterState)({ + // This is not used during hydration, so we don't have to pass a + // real timestamp. + navigatedAt: -1, + initialRSCPayload: response, + // location is not initialized in the SSR render + // it's set to window.location during hydration + location: null + }); + const actionQueue = (0, _approuterinstance.createMutableActionQueue)(initialState, null); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(_imageconfigcontextsharedruntime.ImageConfigContext.Provider, { + value: images ?? _imageconfig.imageConfigDefault, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ServerInsertedHTMLProvider, { + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_approuter.default, { + actionQueue: actionQueue, + globalErrorState: response.G + }) + }) + }); +/* eslint-enable @next/internal/no-ambiguous-jsx -- React Client */ } +async function renderToHTMLOrFlightImpl(req, res, url, pagePath, query, renderOpts, workStore, parsedRequestHeaders, postponedState, serverComponentsHmrCache, sharedContext, interpolatedParams, fallbackRouteParams) { + const isNotFoundPath = pagePath === '/404'; + if (isNotFoundPath) { + res.statusCode = 404; + } + // A unique request timestamp used by development to ensure that it's + // consistent and won't change during this request. This is important to + // avoid that resources can be deduped by React Float if the same resource is + // rendered or preloaded multiple times: ``. + const requestTimestamp = Date.now(); + const { ComponentMod, nextFontManifest, serverActions, assetPrefix = '', enableTainting, cacheComponents, setIsrStatus } = renderOpts; + const { cachedNavigations } = renderOpts.experimental; + // We need to expose the bundled `require` API globally for + // react-server-dom-webpack. This is a hack until we find a better way. + if (ComponentMod.__next_app__) { + const instrumented = (0, _clientcomponentrendererlogger.wrapClientComponentLoader)(ComponentMod); + // When we are prerendering if there is a cacheSignal for tracking + // cache reads we track calls to `loadChunk` and `require`. This allows us + // to treat chunk/module loading with similar semantics as cache reads to avoid + // module loading from causing a prerender to abort too early. + const shouldTrackModuleLoading = ()=>{ + if (!cacheComponents) { + return false; + } + if (process.env.__NEXT_DEV_SERVER) { + return true; + } + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (!workUnitStore) { + return false; + } + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + case 'cache': + case 'private-cache': + return true; + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'unstable-cache': + case 'generate-static-params': + return false; + default: + workUnitStore; + } + }; + const __next_require__ = (...args)=>{ + const exportsOrPromise = instrumented.require(...args); + if (shouldTrackModuleLoading()) { + // requiring an async module returns a promise. + (0, _trackmoduleloadingexternal.trackPendingImport)(exportsOrPromise); + } + return exportsOrPromise; + }; + // @ts-expect-error + globalThis.__next_require__ = __next_require__; + const __next_chunk_load__ = (...args)=>{ + const loadingChunk = instrumented.loadChunk(...args); + if (shouldTrackModuleLoading()) { + (0, _trackmoduleloadingexternal.trackPendingChunkLoad)(loadingChunk); + } + return loadingChunk; + }; + // @ts-expect-error + globalThis.__next_chunk_load__ = __next_chunk_load__; + } + if (process.env.__NEXT_DEV_SERVER && setIsrStatus && !cacheComponents) { + // Reset the ISR status at start of request. + const { pathname } = new URL(req.url || '/', 'http://n'); + setIsrStatus(pathname, // Only pages using the Node runtime can use ISR, Edge is always dynamic. + process.env.NEXT_RUNTIME === 'edge' ? false : undefined); + } + if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextRequest)(req)) { + res.onClose(()=>{ + // We stop tracking fetch metrics when the response closes, since we + // report them at that time. + workStore.shouldTrackFetchMetrics = false; + }); + req.originalRequest.on('end', ()=>{ + if ('performance' in globalThis) { + const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)({ + reset: true + }); + if (metrics) { + (0, _tracer.getTracer)().startSpan(_constants.NextNodeServerSpan.clientComponentLoading, { + startTime: metrics.clientComponentLoadStart, + attributes: { + 'next.clientComponentLoadCount': metrics.clientComponentLoadCount, + 'next.span_type': _constants.NextNodeServerSpan.clientComponentLoading + } + }).end(metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes); + } + } + }); + } + const metadata = { + statusCode: isNotFoundPath ? 404 : undefined + }; + const appUsingSizeAdjustment = !!(nextFontManifest == null ? void 0 : nextFontManifest.appUsingSizeAdjust); + ComponentMod.patchFetch(); + // Pull out the hooks/references from the component. + const { routeModule: { userland: { loaderTree } }, taintObjectReference } = ComponentMod; + if (enableTainting) { + taintObjectReference('Do not pass process.env to Client Components since it will leak sensitive data', process.env); + } + workStore.fetchMetrics = []; + metadata.fetchMetrics = workStore.fetchMetrics; + // don't modify original query object + query = { + ...query + }; + (0, _internalutils.stripInternalQueries)(query); + const { isStaticGeneration } = workStore; + let requestId; + let htmlRequestId; + const { flightRouterState, isPrefetchRequest, isRuntimePrefetchRequest, isRSCRequest, isHmrRefresh, nonce } = parsedRequestHeaders; + if (parsedRequestHeaders.requestId) { + // If the client has provided a request ID (in development mode), we use it. + requestId = parsedRequestHeaders.requestId; + } else { + // Otherwise we generate a new request ID. + if (isStaticGeneration) { + requestId = Buffer.from(await crypto.subtle.digest('SHA-1', Buffer.from(req.url))).toString('hex'); + } else if (process.env.NEXT_RUNTIME === 'edge') { + requestId = crypto.randomUUID(); + } else { + requestId = require('next/dist/compiled/nanoid').nanoid(); + } + } + // If the client has provided an HTML request ID, we use it to associate the + // request with the HTML document from which it originated, which is used to + // send debug information to the associated WebSocket client. Otherwise, this + // is the request for the HTML document, so we use the request ID also as the + // HTML request ID. + htmlRequestId = parsedRequestHeaders.htmlRequestId || requestId; + const getDynamicParamFromSegment = makeGetDynamicParamFromSegment(interpolatedParams, fallbackRouteParams, renderOpts.experimental.optimisticRouting); + const isPossibleActionRequest = (0, _serveractionrequestmeta.getIsPossibleServerAction)(req); + // For implicit tags, we use the resolved pathname which has dynamic params + // interpolated, is decoded, and has trailing slash removed. + const resolvedPathname = (0, _requestmeta.getRequestMeta)(req, 'resolvedPathname'); + if (!resolvedPathname) { + throw Object.defineProperty(new _invarianterror.InvariantError('resolvedPathname must be set in request metadata'), "__NEXT_ERROR_CODE", { + value: "E981", + enumerable: false, + configurable: true + }); + } + const implicitTags = await (0, _implicittags.getImplicitTags)(workStore.page, resolvedPathname, fallbackRouteParams); + const ctx = { + componentMod: ComponentMod, + url, + renderOpts, + workStore, + parsedRequestHeaders, + getDynamicParamFromSegment, + interpolatedParams, + query, + isPrefetch: isPrefetchRequest, + isPossibleServerAction: isPossibleActionRequest, + requestTimestamp, + appUsingSizeAdjustment, + flightRouterState, + requestId, + htmlRequestId, + pagePath, + assetPrefix, + isNotFoundPath, + nonce, + res, + sharedContext, + implicitTags + }; + (0, _tracer.getTracer)().setRootSpanAttribute('next.route', pagePath); + if (isStaticGeneration) { + // We're either building or revalidating. In either case we need to + // prerender our page rather than render it. + const prerenderToStreamWithTracing = (0, _tracer.getTracer)().wrap(_constants.AppRenderSpan.getBodyResult, { + spanName: `prerender route (app) ${pagePath}`, + attributes: { + 'next.route': pagePath + } + }, prerenderToStream); + const response = await prerenderToStreamWithTracing(req, res, ctx, metadata, loaderTree, fallbackRouteParams); + // If we're debugging partial prerendering, print all the dynamic API accesses + // that occurred during the render. + // @TODO move into renderToStream function + if (response.dynamicAccess && (0, _dynamicrendering.accessedDynamicData)(response.dynamicAccess) && renderOpts.isDebugDynamicAccesses) { + (0, _log.warn)('The following dynamic usage was detected:'); + for (const access of (0, _dynamicrendering.formatDynamicAPIAccesses)(response.dynamicAccess)){ + (0, _log.warn)(access); + } + } + // If we encountered any unexpected errors during build we fail the + // prerendering phase and the build. + if (workStore.invalidDynamicUsageError) { + (0, _dynamicrendering.logDisallowedDynamicError)(workStore, workStore.invalidDynamicUsageError); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + if (response.digestErrorsMap.size) { + const buildFailingError = response.digestErrorsMap.values().next().value; + if (buildFailingError) throw buildFailingError; + } + // Pick first userland SSR error, which is also not a RSC error. + if (response.ssrErrors.length) { + const buildFailingError = response.ssrErrors.find((err)=>(0, _createerrorhandler.isUserLandError)(err)); + if (buildFailingError) throw buildFailingError; + } + const options = { + metadata, + contentType: _constants1.HTML_CONTENT_TYPE_HEADER + }; + // If we have pending revalidates, wait until they are all resolved. + const maybeRevalidatesPromise = (0, _revalidationutils.executeRevalidates)(workStore); + if (maybeRevalidatesPromise !== false) { + const revalidatesPromise = maybeRevalidatesPromise.finally(()=>{ + if (process.env.NEXT_PRIVATE_DEBUG_CACHE) { + console.log('pending revalidates promise finished for:', url.href); + } + }); + if (renderOpts.waitUntil) { + renderOpts.waitUntil(revalidatesPromise); + } else { + options.waitUntil = revalidatesPromise; + } + } + applyMetadataFromPrerenderResult(response, metadata, workStore); + if (response.renderResumeDataCache) { + metadata.renderResumeDataCache = response.renderResumeDataCache; + } + const streamString = await (0, _streamops.streamToString)(response.stream); + const result = new _renderresult.default(streamString, options); + // Run build-time instant validation if the page has instant configs + // TODO(instant-validation-build): This is not a great place to wire this in. + if (workStore.cacheComponentsEnabled && workStore.isBuildTimePrerendering && renderOpts.runInstantValidation && await (0, _instantconfig.anySegmentNeedsInstantValidationInBuild)(loaderTree)) { + // Throws StaticGenBailoutError if validation failed. + await validateInstantConfigsInBuild(ctx, response.renderResumeDataCache ?? null); + } + return result; + } else { + // We're rendering dynamically + const renderResumeDataCache = renderOpts.renderResumeDataCache ?? (postponedState == null ? void 0 : postponedState.renderResumeDataCache) ?? null; + const rootParams = (0, _createcomponenttree.getRootParams)(loaderTree, ctx.getDynamicParamFromSegment); + const fallbackParams = (0, _requestmeta.getRequestMeta)(req, 'fallbackParams') || null; + const createRequestStore = _requeststore.createRequestStoreForRender.bind(null, req, res, url, rootParams, implicitTags, renderOpts.onUpdateCookies, renderOpts.previewProps, isHmrRefresh, serverComponentsHmrCache, renderResumeDataCache, fallbackParams); + const requestStore = createRequestStore(); + if (process.env.__NEXT_DEV_SERVER && setIsrStatus && !cacheComponents && // Only pages using the Node runtime can use ISR, so we only need to + // update the status for those. + // The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextRequest)(req)) { + req.originalRequest.on('end', ()=>{ + const { pathname } = new URL(req.url || '/', 'http://n'); + const isStatic = !requestStore.usedDynamic && !workStore.forceDynamic; + setIsrStatus(pathname, isStatic); + }); + } + if (isRSCRequest) { + if (isRuntimePrefetchRequest) { + return generateRuntimePrefetchResult(req, ctx, requestStore); + } else { + if (process.env.__NEXT_DEV_SERVER && process.env.NEXT_RUNTIME !== 'edge' && cacheComponents) { + return generateDynamicFlightRenderResultWithStagesInDev(req, ctx, requestStore, createRequestStore, fallbackParams); + } else if (cacheComponents && cachedNavigations) { + return generateStagedDynamicFlightRenderResult(req, ctx, requestStore); + } else { + return generateDynamicFlightRenderResult(req, ctx, requestStore); + } + } + } + let didExecuteServerAction = false; + let formState = null; + if (isPossibleActionRequest) { + // For action requests, we handle them differently with a special render result. + const actionRequestResult = await (0, _actionhandler.handleAction)({ + req, + res, + ComponentMod, + generateFlight: generateDynamicFlightRenderResult, + workStore, + requestStore, + serverActions, + ctx, + metadata + }); + if (actionRequestResult) { + if (actionRequestResult.type === 'not-found') { + const notFoundLoaderTree = createNotFoundLoaderTree(loaderTree); + res.statusCode = 404; + metadata.statusCode = 404; + const stream = await renderToStream(requestStore, req, res, ctx, notFoundLoaderTree, formState, postponedState, metadata, undefined, fallbackParams); + return new _renderresult.default(stream, { + metadata, + contentType: _constants1.HTML_CONTENT_TYPE_HEADER + }); + } else if (actionRequestResult.type === 'done') { + if (actionRequestResult.result) { + actionRequestResult.result.assignMetadata(metadata); + return actionRequestResult.result; + } else if (actionRequestResult.formState) { + formState = actionRequestResult.formState; + } + } + } + didExecuteServerAction = true; + } + const options = { + metadata, + contentType: _constants1.HTML_CONTENT_TYPE_HEADER + }; + const stream = await renderToStream(// NOTE: in Cache Components (dev), if the render is restarted, it will use a different requestStore + // than the one that we're passing in here. + requestStore, req, res, ctx, loaderTree, formState, postponedState, metadata, // If we're rendering HTML after an action, we don't want restartable-render behavior + // because the result should be dynamic, like it is in prod. + // Also, the request store might have been mutated by the action (e.g. enabling draftMode) + // and we currently we don't copy changes over when creating a new store, + // so the restarted render wouldn't be correct. + didExecuteServerAction ? undefined : createRequestStore, fallbackParams); + // Invalid dynamic usages should only error the request in development. + // In production, it's better to produce a result. + // (the dynamic error will still be thrown inside the component tree, but it's catchable by error boundaries) + if (workStore.invalidDynamicUsageError && process.env.__NEXT_DEV_SERVER) { + throw workStore.invalidDynamicUsageError; + } + // If we have pending revalidates, wait until they are all resolved. + const maybeRevalidatesPromise = (0, _revalidationutils.executeRevalidates)(workStore); + if (maybeRevalidatesPromise !== false) { + const revalidatesPromise = maybeRevalidatesPromise.finally(()=>{ + if (process.env.NEXT_PRIVATE_DEBUG_CACHE) { + console.log('pending revalidates promise finished for:', url.href); + } + }); + if (renderOpts.waitUntil) { + renderOpts.waitUntil(revalidatesPromise); + } else { + options.waitUntil = revalidatesPromise; + } + } + // Create the new render result for the response. + return new _renderresult.default(stream, options); + } +} +const renderToHTMLOrFlight = (req, res, pagePath, query, fallbackRouteParams, renderOpts, serverComponentsHmrCache, sharedContext)=>{ + var _renderOpts_previewProps; + if (!req.url) { + throw Object.defineProperty(new Error('Invalid URL'), "__NEXT_ERROR_CODE", { + value: "E182", + enumerable: false, + configurable: true + }); + } + const url = (0, _parserelativeurl.parseRelativeUrl)(req.url, undefined, false); + // We read these values from the request object as, in certain cases, + // base-server will strip them to opt into different rendering behavior. + const parsedRequestHeaders = parseRequestHeaders(req.headers, { + isRoutePPREnabled: renderOpts.experimental.isRoutePPREnabled === true, + previewModeId: (_renderOpts_previewProps = renderOpts.previewProps) == null ? void 0 : _renderOpts_previewProps.previewModeId + }); + const { isPrefetchRequest, previouslyRevalidatedTags, nonce } = parsedRequestHeaders; + let interpolatedParams; + let postponedState = null; + // If provided, the postpone state should be parsed so it can be provided to + // React. + if (typeof renderOpts.postponed === 'string') { + if (fallbackRouteParams) { + throw Object.defineProperty(new _invarianterror.InvariantError('postponed state should not be provided when fallback params are provided'), "__NEXT_ERROR_CODE", { + value: "E592", + enumerable: false, + configurable: true + }); + } + interpolatedParams = (0, _getdynamicparam.interpolateParallelRouteParams)(renderOpts.ComponentMod.routeModule.userland.loaderTree, renderOpts.params ?? {}, pagePath, fallbackRouteParams); + postponedState = (0, _postponedstate.parsePostponedState)(renderOpts.postponed, interpolatedParams, renderOpts.experimental.maxPostponedStateSizeBytes); + } else { + interpolatedParams = (0, _getdynamicparam.interpolateParallelRouteParams)(renderOpts.ComponentMod.routeModule.userland.loaderTree, renderOpts.params ?? {}, pagePath, fallbackRouteParams); + } + if ((postponedState == null ? void 0 : postponedState.renderResumeDataCache) && renderOpts.renderResumeDataCache) { + throw Object.defineProperty(new _invarianterror.InvariantError('postponed state and dev warmup immutable resume data cache should not be provided together'), "__NEXT_ERROR_CODE", { + value: "E589", + enumerable: false, + configurable: true + }); + } + const workStore = (0, _workstore.createWorkStore)({ + page: renderOpts.routeModule.definition.page, + renderOpts, + // @TODO move to workUnitStore of type Request + isPrefetchRequest, + buildId: sharedContext.buildId, + previouslyRevalidatedTags, + nonce + }); + return _workasyncstorageexternal.workAsyncStorage.run(workStore, // The function to run + renderToHTMLOrFlightImpl, // all of it's args + req, res, url, pagePath, query, renderOpts, workStore, parsedRequestHeaders, postponedState, serverComponentsHmrCache, sharedContext, interpolatedParams, fallbackRouteParams); +}; +function applyMetadataFromPrerenderResult(response, metadata, workStore) { + if (response.collectedTags) { + metadata.fetchTags = response.collectedTags.join(','); + } + // Let the client router know how long to keep the cached entry around. + const staleHeader = String(response.collectedStale); + metadata.headers ??= {}; + metadata.headers[_approuterheaders.NEXT_ROUTER_STALE_TIME_HEADER] = staleHeader; + // If force static is specifically set to false, we should not revalidate + // the page. + if (workStore.forceStatic === false || response.collectedRevalidate === 0) { + metadata.cacheControl = { + revalidate: 0, + expire: undefined + }; + } else { + // Copy the cache control value onto the render result metadata. + metadata.cacheControl = { + revalidate: response.collectedRevalidate >= _constants1.INFINITE_CACHE ? false : response.collectedRevalidate, + expire: response.collectedExpire >= _constants1.INFINITE_CACHE ? undefined : response.collectedExpire + }; + } + // provide bailout info for debugging + if (metadata.cacheControl.revalidate === 0) { + metadata.staticBailoutInfo = { + description: workStore.dynamicUsageDescription, + stack: workStore.dynamicUsageStack + }; + } +} +async function renderToStream(requestStore, req, res, ctx, tree, formState, postponedState, metadata, createRequestStore, fallbackParams) { + /* eslint-disable @next/internal/no-ambiguous-jsx -- React Client */ const { assetPrefix, htmlRequestId, nonce, pagePath, renderOpts, requestId, workStore } = ctx; + const { basePath, buildManifest, ComponentMod: { createElement }, crossOrigin, experimental, isBuildTimePrerendering = false, onInstrumentationRequestError, page, reactMaxHeadersLength, setReactDebugChannel, shouldWaitOnAllReady, subresourceIntegrityManifest, supportsDynamicResponse, cacheComponents } = renderOpts; + const { cachedNavigations } = renderOpts.experimental; + const { ServerInsertedHTMLProvider, renderServerInsertedHTML } = (0, _serverinsertedhtml.createServerInsertedHTML)(); + const getServerInsertedMetadata = (0, _createserverinsertedmetadata.createServerInsertedMetadata)(nonce); + const tracingMetadata = (0, _utils1.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), experimental.clientTraceMetadata); + const polyfills = buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>({ + src: `${assetPrefix}/_next/${polyfill}${(0, _getassetquerystring.getAssetQueryString)(ctx, false)}`, + integrity: subresourceIntegrityManifest == null ? void 0 : subresourceIntegrityManifest[polyfill], + crossOrigin, + noModule: true, + nonce + })); + const [preinitScripts, bootstrapScript] = (0, _requiredscripts.getRequiredScripts)(buildManifest, // Why is assetPrefix optional on renderOpts? + // @TODO make it default empty string on renderOpts and get rid of it from ctx + assetPrefix, crossOrigin, subresourceIntegrityManifest, (0, _getassetquerystring.getAssetQueryString)(ctx, true), nonce, page); + // In development mode, set the request ID as a global variable, before the + // bootstrap script is executed, which depends on it during hydration. + // For MPA navigations (page reload, direct URL entry), the request ID + // header is not present, so we generate a random one. + const bootstrapScriptContent = process.env.__NEXT_DEV_SERVER ? `self.__next_r=${JSON.stringify(requestId ?? crypto.randomUUID())}` : undefined; + // Create the "render route (app)" span manually so we can keep it open during streaming. + // This is necessary because errors inside Suspense boundaries are reported asynchronously + // during stream consumption, after a typical wrapped function would have ended the span. + // Note: We pass the full span name as the first argument since startSpan uses it directly. + const renderSpan = (0, _tracer.getTracer)().startSpan(`render route (app) ${pagePath}`, { + attributes: { + 'next.span_name': `render route (app) ${pagePath}`, + 'next.span_type': _constants.AppRenderSpan.getBodyResult, + 'next.route': pagePath + } + }); + // Helper to end the span with error status (used when throwing from catch blocks) + const endSpanWithError = (err)=>{ + if (!renderSpan.isRecording()) return; + if (err instanceof Error) { + renderSpan.recordException(err); + renderSpan.setAttribute('error.type', err.name); + } + renderSpan.setStatus({ + code: _tracer.SpanStatusCode.ERROR, + message: err instanceof Error ? err.message : undefined + }); + renderSpan.end(); + }; + // Run the rest of the function within the span's context so child spans + // (like "build component tree", "generateMetadata") are properly parented. + return (0, _tracer.getTracer)().withSpan(renderSpan, async ()=>{ + const { reactServerErrorsByDigest } = workStore; + function onHTMLRenderRSCError(err, silenceLog) { + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'react-server-components'), silenceLog); + } + const serverComponentsErrorHandler = (0, _createerrorhandler.createReactServerErrorHandler)(process.env.NODE_ENV === 'development', isBuildTimePrerendering, reactServerErrorsByDigest, onHTMLRenderRSCError, renderSpan); + function onHTMLRenderSSRError(err) { + // We don't need to silence logs here. onHTMLRenderSSRError won't be called + // at all if the error was logged before in the RSC error handler. + const silenceLog = false; + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'server-rendering'), silenceLog); + } + const allCapturedErrors = []; + const htmlRendererErrorHandler = (0, _createerrorhandler.createHTMLErrorHandler)(process.env.NODE_ENV === 'development', isBuildTimePrerendering, reactServerErrorsByDigest, allCapturedErrors, onHTMLRenderSSRError, renderSpan); + let reactServerResult = null; + let reactDebugStream; + const setHeader = res.setHeader.bind(res); + const appendHeader = res.appendHeader.bind(res); + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + try { + if (process.env.__NEXT_DEV_SERVER && // Edge routes never prerender so we don't have a Prerender environment for anything in edge runtime + process.env.NEXT_RUNTIME !== 'edge' && // We only have a Prerender environment for projects opted into cacheComponents + cacheComponents) { + let debugChannel; + // eslint-disable-next-line @typescript-eslint/no-shadow + const getPayload = async (requestStore)=>{ + const payload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404 + }); + if (isBypassingCachesInDev(requestStore)) { + // Mark the RSC payload to indicate that caches were bypassed in dev. + // This lets the client know not to cache anything based on this render. + if (renderOpts.setCacheStatus) { + // we know this is available when cacheComponents is enabled, but typeguard to be safe + renderOpts.setCacheStatus('bypass', htmlRequestId); + } + payload._bypassCachesInDev = createElement(WarnForBypassCachesInDev, { + route: workStore.route + }); + } + return payload; + }; + if (// We only do this flow if we can safely recreate the store from scratch + // (which is not the case for renders after an action) + createRequestStore && // We only do this flow if we're not bypassing caches in dev using + // "disable cache" in devtools or a hard refresh (cache-control: "no-store") + !isBypassingCachesInDev(requestStore)) { + const { stream: serverStream, accumulatedChunksPromise, syncInterruptReason, startTime, staticStageEndTime, runtimeStageEndTime, debugChannel: returnedDebugChannel, requestStore: finalRequestStore } = await renderWithRestartOnCacheMissInDev(ctx, requestStore, createRequestStore, getPayload, serverComponentsErrorHandler); + let validationDebugChannelClient = undefined; + if (returnedDebugChannel) { + const [t1, t2] = returnedDebugChannel.clientSide.readable.tee(); + returnedDebugChannel.clientSide.readable = t1; + validationDebugChannelClient = nodeStreamFromReadableStream(t2); + } + _consoleasyncstorageexternal.consoleAsyncStorage.run({ + dim: true + }, spawnStaticShellValidationInDev, accumulatedChunksPromise, syncInterruptReason, startTime, staticStageEndTime, runtimeStageEndTime, ctx, finalRequestStore, fallbackParams, validationDebugChannelClient); + reactServerResult = new _apprenderprerenderutils.ReactServerResult(serverStream); + requestStore = finalRequestStore; + debugChannel = returnedDebugChannel; + } else { + logValidationSkipped(ctx); + // We're either bypassing caches or we can't restart the render. + // Do a dynamic render, but with (basic) environment labels. + debugChannel = setReactDebugChannel && (0, _debugchannelserver.createDebugChannel)(); + const serverStream = await stagedRenderToReadableStreamWithoutCachesInDev(ctx, requestStore, getPayload, { + onError: serverComponentsErrorHandler, + filterStackFrame, + debugChannel: debugChannel == null ? void 0 : debugChannel.serverSide + }); + reactServerResult = new _apprenderprerenderutils.ReactServerResult(serverStream); + } + if (debugChannel && setReactDebugChannel) { + const [readableSsr, readableBrowser] = debugChannel.clientSide.readable.tee(); + reactDebugStream = readableSsr; + setReactDebugChannel({ + readable: readableBrowser + }, htmlRequestId, requestId); + } + } else if (cacheComponents && cachedNavigations) { + // Production Cache Components + Cached Navigations: use staged + // rendering so the RSC payload includes the static stage byte length + // (`l` field), enabling the client to cache the static subset during + // hydration. + const { renderToReadableStream } = ctx.componentMod; + const selectStaleTime = (0, _staletime.createSelectStaleTime)(experimental); + const staleTimeIterable = new _staletime.StaleTimeIterable(); + // TODO(cached-navs): this assumes that we checked during build that there's no sync IO. + // but it can happen e.g. after a revalidation or conditionally for a param that wasn't prerendered. + // we should change this to track sync IO, log an error and advance to dynamic. + const shouldTrackSyncIO = false; + const stageController = new _stagedrendering.StagedRenderingController(null, null, shouldTrackSyncIO); + requestStore.stale = _constants1.INFINITE_CACHE; + requestStore.stagedRendering = stageController; + (0, _staletime.trackStaleTime)(requestStore, staleTimeIterable, selectStaleTime); + let resolveStaticStageByteLength; + const staticStageByteLengthPromise = new Promise((resolve)=>{ + resolveStaticStageByteLength = resolve; + }); + // If the route has runtime prefetching enabled, spawn a runtime + // prerender after the resume render fills caches. The result is + // embedded in the initial RSC payload so the client can cache + // runtime-prefetchable content during hydration. + const hasRuntimePrefetch = await (0, _instantconfig.anySegmentHasRuntimePrefetchEnabled)(tree); + let runtimePrefetchStream; + if (hasRuntimePrefetch) { + const prerenderResumeDataCache = (0, _resumedatacache.createPrerenderResumeDataCache)(); + requestStore.prerenderResumeDataCache = prerenderResumeDataCache; + const cacheSignal = new _cachesignal.CacheSignal(); + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + requestStore.cacheSignal = cacheSignal; + const runtimePrefetchTransform = new TransformStream(); + runtimePrefetchStream = runtimePrefetchTransform.readable; + void cacheSignal.cacheReady().then(()=>spawnRuntimePrefetchWithFilledCaches(runtimePrefetchTransform.writable, ctx, prerenderResumeDataCache, requestStore, serverComponentsErrorHandler)); + } + const RSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404, + staleTimeIterable, + staticStageByteLengthPromise, + runtimePrefetchStream + }); + const flightStream = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + stageController.advanceStage(_stagedrendering.RenderStage.Static); + const stream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, renderToReadableStream, RSCPayload, clientModules, { + onError: serverComponentsErrorHandler, + filterStackFrame + }); + const [dynamicStream, staticStream] = stream.tee(); + countStaticStageBytes(staticStream, stageController).then(resolveStaticStageByteLength); + return dynamicStream; + }, ()=>{ + // This is a separate task that doesn't advance a stage. It forces + // draining the microtask queue so that the stale time iterable is + // closed before we advance to the dynamic stage. + void (0, _staletime.finishStaleTimeTracking)(staleTimeIterable); + }, ()=>{ + stageController.advanceStage(_stagedrendering.RenderStage.Dynamic); + }); + reactServerResult = new _apprenderprerenderutils.ReactServerResult(flightStream); + } else { + // This is a dynamic render. We don't do dynamic tracking because we're not prerendering + const RSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404 + }); + const debugChannel = setReactDebugChannel && (0, _debugchannelserver.createDebugChannel)(); + if (debugChannel) { + const [readableSsr, readableBrowser] = debugChannel.clientSide.readable.tee(); + reactDebugStream = readableSsr; + setReactDebugChannel({ + readable: readableBrowser + }, htmlRequestId, requestId); + } + reactServerResult = new _apprenderprerenderutils.ReactServerResult(_workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ctx.componentMod, RSCPayload, clientModules, { + filterStackFrame, + onError: serverComponentsErrorHandler, + debugChannel: debugChannel == null ? void 0 : debugChannel.serverSide + })); + } + // React doesn't start rendering synchronously but we want the RSC render to have a chance to start + // before we begin SSR rendering because we want to capture any available preload headers so we tick + // one task before continuing + await (0, _scheduler.waitAtLeastOneReactRenderTask)(); + // If provided, the postpone state should be parsed as JSON so it can be + // provided to React. + if (typeof renderOpts.postponed === 'string') { + if ((postponedState == null ? void 0 : postponedState.type) === _postponedstate.DynamicState.DATA) { + // We have a complete HTML Document in the prerender but we need to + // still include the new server component render because it was not included + // in the static prelude. + const inlinedDataStream = (0, _streamops.createInlinedDataStream)(reactServerResult.tee(), nonce, formState); + // End the span since there's no async rendering in this path + if (renderSpan.isRecording()) renderSpan.end(); + return (0, _streamops.chainStreams)(inlinedDataStream, (0, _streamops.createDocumentClosingStream)()); + } else if (postponedState) { + // We assume we have dynamic HTML requiring a resume render to complete + const { postponed, preludeState } = (0, _postponedstate.getPostponedFromState)(postponedState); + const resumeAppElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: reactServerResult.tee(), + reactDebugStream: reactDebugStream, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }); + const getServerInsertedHTML = (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: allCapturedErrors, + basePath, + tracingMetadata: tracingMetadata + }); + const { stream: htmlStream, allReady } = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.resumeToFizzStream, resumeAppElement, postponed, { + onError: htmlRendererErrorHandler, + nonce + }); + // End the render span only after React completed rendering (including anything inside Suspense boundaries) + allReady.finally(()=>{ + if (renderSpan.isRecording()) renderSpan.end(); + }); + return await (0, _streamops.continueDynamicHTMLResume)(htmlStream, { + delayDataUntilFirstHtmlChunk: preludeState === _postponedstate.DynamicHTMLPreludeState.Empty, + inlinedDataStream: (0, _streamops.createInlinedDataStream)(reactServerResult.consume(), nonce, formState), + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }); + } + } + // This is a regular dynamic render + const getServerInsertedHTML = (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: allCapturedErrors, + basePath, + tracingMetadata: tracingMetadata + }); + const generateStaticHTML = supportsDynamicResponse !== true || !!shouldWaitOnAllReady; + const appElement = /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: reactServerResult.tee(), + reactDebugStream: reactDebugStream, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }); + const fizzOptions = { + onError: htmlRendererErrorHandler, + nonce, + onHeaders: (headers)=>{ + headers.forEach((value, key)=>{ + appendHeader(key, value); + }); + }, + maxHeadersLength: reactMaxHeadersLength, + bootstrapScriptContent, + bootstrapScripts: [ + bootstrapScript + ], + formState + }; + const { stream: htmlStream, allReady } = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFizzStream, appElement, fizzOptions); + // End the render span only after React completed rendering (including anything inside Suspense boundaries) + allReady.finally(()=>{ + if (renderSpan.isRecording()) renderSpan.end(); + }); + return await (0, _streamops.continueFizzStream)(htmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(reactServerResult.consume(), nonce, formState), + isStaticGeneration: generateStaticHTML, + allReady, + deploymentId: ctx.sharedContext.deploymentId, + getServerInsertedHTML, + getServerInsertedMetadata, + validateRootLayout: !!process.env.__NEXT_DEV_SERVER + }); + } catch (err) { + if ((0, _staticgenerationbailout.isStaticGenBailoutError)(err) || typeof err === 'object' && err !== null && 'message' in err && typeof err.message === 'string' && err.message.includes('https://nextjs.org/docs/advanced-features/static-html-export')) { + // Ensure that "next dev" prints the red error overlay + endSpanWithError(err); + throw err; + } + // If a bailout made it to this point, it means it wasn't wrapped inside + // a suspense boundary. + const shouldBailoutToCSR = (0, _bailouttocsr.isBailoutToCSRError)(err); + if (shouldBailoutToCSR) { + const stack = (0, _formatservererror.getStackWithoutErrorMessage)(err); + (0, _log.error)(`${err.reason} should be wrapped in a suspense boundary at page "${pagePath}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout\n${stack}`); + endSpanWithError(err); + throw err; + } + let errorType; + if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(err)) { + res.statusCode = (0, _httpaccessfallback.getAccessFallbackHTTPStatus)(err); + metadata.statusCode = res.statusCode; + errorType = (0, _httpaccessfallback.getAccessFallbackErrorTypeByStatus)(res.statusCode); + } else if ((0, _redirecterror.isRedirectError)(err)) { + errorType = 'redirect'; + res.statusCode = (0, _redirect.getRedirectStatusCodeFromError)(err); + metadata.statusCode = res.statusCode; + const redirectUrl = (0, _addpathprefix.addPathPrefix)((0, _redirect.getURLFromRedirectError)(err), basePath); + // If there were mutable cookies set, we need to set them on the + // response. + const headers = new Headers(); + if ((0, _requestcookies.appendMutableCookies)(headers, requestStore.mutableCookies)) { + setHeader('set-cookie', Array.from(headers.values())); + } + setHeader('location', redirectUrl); + } else if (!shouldBailoutToCSR) { + res.statusCode = 500; + metadata.statusCode = res.statusCode; + } + const [errorPreinitScripts, errorBootstrapScript] = (0, _requiredscripts.getRequiredScripts)(buildManifest, assetPrefix, crossOrigin, subresourceIntegrityManifest, (0, _getassetquerystring.getAssetQueryString)(ctx, false), nonce, '/_not-found/page'); + let errorRSCPayload; + let errorServerStream; + try { + errorRSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, getErrorRSCPayload, tree, ctx, reactServerErrorsByDigest.has(err.digest) ? null : err, errorType); + errorServerStream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ctx.componentMod, errorRSCPayload, clientModules, { + filterStackFrame, + onError: serverComponentsErrorHandler + }); + if (reactServerResult === null) { + // We errored when we did not have an RSC stream to read from. This is not just a render + // error, we need to throw early + endSpanWithError(err); + throw err; + } + } catch (setupErr) { + endSpanWithError(setupErr); + throw setupErr; + } + try { + const generateStaticHTML = supportsDynamicResponse !== true || !!shouldWaitOnAllReady; + const { stream: errorHtmlStream, allReady: errorAllReady } = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFizzStream, /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorApp, { + reactServerStream: errorServerStream, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + preinitScripts: errorPreinitScripts, + nonce: nonce, + images: ctx.renderOpts.images + }), { + nonce, + bootstrapScriptContent, + bootstrapScripts: [ + errorBootstrapScript + ], + formState + }); + // End the render span only after React completed rendering (including anything inside Suspense boundaries) + errorAllReady.finally(()=>{ + if (renderSpan.isRecording()) renderSpan.end(); + }); + return await (0, _streamops.continueFizzStream)(errorHtmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(// This is intentionally using the readable datastream from the + // main render rather than the flight data from the error page + // render + reactServerResult.consume(), nonce, formState), + isStaticGeneration: generateStaticHTML, + deploymentId: ctx.sharedContext.deploymentId, + getServerInsertedHTML: (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: [], + basePath, + tracingMetadata: tracingMetadata + }), + getServerInsertedMetadata, + validateRootLayout: !!process.env.__NEXT_DEV_SERVER + }); + } catch (finalErr) { + if (process.env.__NEXT_DEV_SERVER && (0, _httpaccessfallback.isHTTPAccessFallbackError)(finalErr)) { + const { bailOnRootNotFound } = require('../../client/components/dev-root-http-access-fallback-boundary'); + bailOnRootNotFound(); + } + endSpanWithError(finalErr); + throw finalErr; + } + } + }); +/* eslint-enable @next/internal/no-ambiguous-jsx */ } +async function renderWithRestartOnCacheMissInDev(ctx, initialRequestStore, createRequestStore, getPayload, onError) { + const { htmlRequestId, renderOpts } = ctx; + const { ComponentMod, setCacheStatus, setReactDebugChannel } = renderOpts; + let startTime = -Infinity; + // If the render is restarted, we'll recreate a fresh request store + let requestStore = initialRequestStore; + const environmentName = ()=>{ + const currentStage = requestStore.stagedRendering.currentStage; + switch(currentStage){ + case _stagedrendering.RenderStage.Before: + case _stagedrendering.RenderStage.EarlyStatic: + case _stagedrendering.RenderStage.Static: + return 'Prerender'; + case _stagedrendering.RenderStage.EarlyRuntime: + return 'Prefetch'; + case _stagedrendering.RenderStage.Runtime: + return 'Prefetchable'; + case _stagedrendering.RenderStage.Dynamic: + case _stagedrendering.RenderStage.Abandoned: + return 'Server'; + default: + currentStage; + throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${currentStage}`), "__NEXT_ERROR_CODE", { + value: "E881", + enumerable: false, + configurable: true + }); + } + }; + //=============================================== + // Initial render + //=============================================== + // Try to render the page and see if there's any cache misses. + // If there are, wait for caches to finish and restart the render. + // This render might end up being used as a prospective render (if there's cache misses), + // so we need to set it up for filling caches. + const cacheSignal = new _cachesignal.CacheSignal(); + // If we encounter async modules that delay rendering, we'll also need to restart. + // TODO(restart-on-cache-miss): technically, we only need to wait for pending *server* modules here, + // but `trackPendingModules` doesn't distinguish between client and server. + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + const prerenderResumeDataCache = (0, _resumedatacache.createPrerenderResumeDataCache)(); + const initialReactController = new AbortController(); + const initialDataController = new AbortController() // Controls hanging promises we create + ; + const initialAbandonController = new AbortController() // Controls whether this render is abandoned + ; + const initialStageController = new _stagedrendering.StagedRenderingController(initialDataController.signal, initialAbandonController, true // track sync IO + ); + requestStore.prerenderResumeDataCache = prerenderResumeDataCache; + // `getRenderResumeDataCache` will fall back to using `prerenderResumeDataCache` as `renderResumeDataCache`, + // so not having a resume data cache won't break any expectations in case we don't need to restart. + requestStore.renderResumeDataCache = null; + requestStore.stagedRendering = initialStageController; + requestStore.asyncApiPromises = createAsyncApiPromises(initialStageController, requestStore.cookies, requestStore.mutableCookies, requestStore.headers); + requestStore.cacheSignal = cacheSignal; + let debugChannel = setReactDebugChannel && (0, _debugchannelserver.createDebugChannel)(); + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + // Note: The stage controller starts out in the `Before` stage, + // where sync IO does not cause aborts, so it's okay if it happens before render. + const initialRscPayload = await getPayload(requestStore); + const initialStreamResult = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + initialStageController.advanceStage(_stagedrendering.RenderStage.EarlyStatic); + startTime = performance.now() + performance.timeOrigin; + const streamPair = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ComponentMod, initialRscPayload, clientModules, { + onError, + environmentName, + startTime, + filterStackFrame, + debugChannel: debugChannel == null ? void 0 : debugChannel.serverSide, + signal: initialReactController.signal + }).tee(); + // If we abort the render, we want to reject the stage-dependent promises as well. + // Note that we want to install this listener after the render is started + // so that it runs after react is finished running its abort code. + initialReactController.signal.addEventListener('abort', ()=>{ + const { reason } = initialReactController.signal; + initialDataController.abort(reason); + }, { + once: true + }); + const stream = streamPair[0]; + const accumulatedChunksPromise = accumulateStreamChunks(streamPair[1], initialStageController, initialDataController.signal); + initialDataController.signal.addEventListener('abort', ()=>{ + accumulatedChunksPromise.catch(()=>{}); + stream.cancel(); + }, { + once: true + }); + return { + stream, + accumulatedChunksPromise + }; + }, ()=>{ + if (initialAbandonController.signal.aborted === true) { + return; + } else if (cacheSignal.hasPendingReads()) { + initialAbandonController.abort(); + } else { + initialStageController.advanceStage(_stagedrendering.RenderStage.Static); + } + }, ()=>{ + if (initialAbandonController.signal.aborted === true) { + return; + } else if (cacheSignal.hasPendingReads()) { + initialAbandonController.abort(); + } else { + initialStageController.advanceStage(_stagedrendering.RenderStage.EarlyRuntime); + } + }, ()=>{ + if (initialAbandonController.signal.aborted === true) { + return; + } else if (cacheSignal.hasPendingReads()) { + initialAbandonController.abort(); + } else { + initialStageController.advanceStage(_stagedrendering.RenderStage.Runtime); + } + }, ()=>{ + if (initialAbandonController.signal.aborted === true) { + return; + } else if (cacheSignal.hasPendingReads()) { + initialAbandonController.abort(); + } else { + initialStageController.advanceStage(_stagedrendering.RenderStage.Dynamic); + } + }); + if (initialStageController.currentStage !== _stagedrendering.RenderStage.Abandoned) { + // No cache misses. We can use the result as-is. + return { + stream: initialStreamResult.stream, + accumulatedChunksPromise: initialStreamResult.accumulatedChunksPromise, + syncInterruptReason: initialStageController.getSyncInterruptReason(), + startTime, + staticStageEndTime: initialStageController.getStaticStageEndTime(), + runtimeStageEndTime: initialStageController.getRuntimeStageEndTime(), + debugChannel, + requestStore + }; + } + if (process.env.__NEXT_DEV_SERVER && setCacheStatus) { + setCacheStatus('filling', htmlRequestId); + } + // Cache miss. We will use the initial render to fill caches, and discard its result. + // Then, we can render again with warm caches. + // TODO(restart-on-cache-miss): + // This might end up waiting for more caches than strictly necessary, + // because we can't abort the render yet, and we'll let runtime/dynamic APIs resolve. + // Ideally we'd only wait for caches that are needed in the static stage. + // This will be optimized in the future by not allowing runtime/dynamic APIs to resolve. + await cacheSignal.cacheReady(); + initialReactController.abort(); + //=============================================== + // Final render (restarted) + //=============================================== + // The initial render acted as a prospective render to warm the caches. + requestStore = createRequestStore(); + // We are going to render this pass all the way through because we've already + // filled any caches so we won't be aborting this time. + const abortSignal = null; + const finalStageController = new _stagedrendering.StagedRenderingController(abortSignal, null, true // track sync IO + ); + // We've filled the caches, so now we can render as usual, + // without any cache-filling mechanics. + requestStore.prerenderResumeDataCache = null; + requestStore.renderResumeDataCache = (0, _resumedatacache.createRenderResumeDataCache)(prerenderResumeDataCache); + requestStore.stagedRendering = finalStageController; + requestStore.cacheSignal = null; + requestStore.asyncApiPromises = createAsyncApiPromises(finalStageController, requestStore.cookies, requestStore.mutableCookies, requestStore.headers); + // The initial render already wrote to its debug channel. + // We're not using it, so we need to create a new one. + debugChannel = setReactDebugChannel && (0, _debugchannelserver.createDebugChannel)(); + // Note: The stage controller starts out in the `Before` stage, + // where sync IO does not cause aborts, so it's okay if it happens before render. + const finalRscPayload = await getPayload(requestStore); + const finalStreamResult = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + finalStageController.advanceStage(_stagedrendering.RenderStage.EarlyStatic); + startTime = performance.now() + performance.timeOrigin; + const streamPair = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ComponentMod, finalRscPayload, clientModules, { + onError, + environmentName, + startTime, + filterStackFrame, + debugChannel: debugChannel == null ? void 0 : debugChannel.serverSide + }).tee(); + return { + stream: streamPair[0], + accumulatedChunksPromise: accumulateStreamChunks(streamPair[1], finalStageController, null) + }; + }, ()=>{ + // Static stage + finalStageController.advanceStage(_stagedrendering.RenderStage.Static); + }, ()=>{ + // EarlyRuntime stage + finalStageController.advanceStage(_stagedrendering.RenderStage.EarlyRuntime); + }, ()=>{ + // Runtime stage + finalStageController.advanceStage(_stagedrendering.RenderStage.Runtime); + }, ()=>{ + // Dynamic stage + finalStageController.advanceStage(_stagedrendering.RenderStage.Dynamic); + }); + if (process.env.__NEXT_DEV_SERVER && setCacheStatus) { + setCacheStatus('filled', htmlRequestId); + } + return { + stream: finalStreamResult.stream, + accumulatedChunksPromise: finalStreamResult.accumulatedChunksPromise, + syncInterruptReason: finalStageController.getSyncInterruptReason(), + startTime, + staticStageEndTime: finalStageController.getStaticStageEndTime(), + runtimeStageEndTime: finalStageController.getRuntimeStageEndTime(), + debugChannel, + requestStore + }; +} +async function accumulateStreamChunks(stream, stageController, signal) { + const staticChunks = []; + const runtimeChunks = []; + const dynamicChunks = []; + const reader = stream.getReader(); + let cancelled = false; + function cancel() { + if (!cancelled) { + cancelled = true; + reader.cancel(); + } + } + if (signal) { + signal.addEventListener('abort', cancel, { + once: true + }); + } + try { + while(!cancelled){ + const { done, value } = await reader.read(); + if (done) { + cancel(); + break; + } + switch(stageController.currentStage){ + case _stagedrendering.RenderStage.Before: + throw Object.defineProperty(new _invarianterror.InvariantError('Unexpected stream chunk while in Before stage'), "__NEXT_ERROR_CODE", { + value: "E942", + enumerable: false, + configurable: true + }); + case _stagedrendering.RenderStage.EarlyStatic: + case _stagedrendering.RenderStage.Static: + staticChunks.push(value); + // fall through + case _stagedrendering.RenderStage.EarlyRuntime: + case _stagedrendering.RenderStage.Runtime: + runtimeChunks.push(value); + // fall through + case _stagedrendering.RenderStage.Dynamic: + dynamicChunks.push(value); + break; + case _stagedrendering.RenderStage.Abandoned: + break; + default: + stageController.currentStage; + break; + } + } + } catch (err) { + // When we cancel the reader we may reject the read. + // Only swallow errors caused by our intentional cancel(); + // re-throw unexpected errors to avoid silently returning partial data. + if (!cancelled) { + throw err; + } + } + return { + staticChunks, + runtimeChunks, + dynamicChunks + }; +} +async function countStaticStageBytes(stream, stageController) { + let byteLength = 0; + const reader = stream.getReader(); + stageController.onStage(_stagedrendering.RenderStage.EarlyRuntime, ()=>{ + reader.cancel(); + }); + while(true){ + const { done, value } = await reader.read(); + if (done) { + break; + } + if (stageController.currentStage <= _stagedrendering.RenderStage.Static) { + byteLength += value.byteLength; + } else { + reader.cancel(); + break; + } + } + return byteLength; +} +function createAsyncApiPromises(stagedRendering, cookies, mutableCookies, headers) { + return { + // Runtime APIs (for prefetch segments) + cookies: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.Runtime, 'cookies', cookies), + earlyCookies: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.EarlyRuntime, 'cookies', cookies), + mutableCookies: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.Runtime, 'cookies', mutableCookies), + earlyMutableCookies: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.EarlyRuntime, 'cookies', mutableCookies), + headers: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.Runtime, 'headers', headers), + earlyHeaders: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.EarlyRuntime, 'headers', headers), + // These are not used directly, but we chain other `params`/`searchParams` promises off of them. + sharedParamsParent: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.Runtime, undefined, ''), + earlySharedParamsParent: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.EarlyRuntime, undefined, ''), + sharedSearchParamsParent: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.Runtime, undefined, ''), + earlySharedSearchParamsParent: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.EarlyRuntime, undefined, ''), + connection: stagedRendering.delayUntilStage(_stagedrendering.RenderStage.Dynamic, 'connection', undefined) + }; +} +/** + * Logs the given messages, and sends the error instances to the browser as an + * RSC stream, where they can be deserialized and logged (or otherwise presented + * in the devtools), while leveraging React's capabilities to not only + * source-map the stack frames (via findSourceMapURL), but also create virtual + * server modules that allow users to inspect the server source code in the + * browser. + */ async function logMessagesAndSendErrorsToBrowser(messages, ctx) { + const { htmlRequestId, renderOpts } = ctx; + const { sendErrorsToBrowser } = renderOpts; + const errors = []; + for (const message of messages){ + // Log the error to the CLI. Prevent the logs from being dimmed, which we + // apply for other logs during the spawned validation. + _consoleasyncstorageexternal.consoleAsyncStorage.exit(()=>{ + console.error(message); + }); + // Error instances are also sent to the browser. We're currently using a + // non-Error message only in debug build mode as a message that is only + // meant for the CLI. FIXME: This is a bit spooky action at a distance. We + // should maybe have a more explicit way of determining which messages + // should be sent to the browser. Regardless, only real errors with a proper + // stack make sense to be "replayed" in the browser. + if (message instanceof Error) { + errors.push(message); + } + } + if (errors.length > 0) { + if (!sendErrorsToBrowser) { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected `sendErrorsToBrowser` to be defined in renderOpts.'), "__NEXT_ERROR_CODE", { + value: "E947", + enumerable: false, + configurable: true + }); + } + // Build a Map of error → error code for errors that have one. + // React doesn't revive __NEXT_ERROR_CODE during RSC deserialization, so we + // send it as a side-channel Map. RSC preserves object identity, so the + // deserialized Map keys will reference the same Error objects. + const errorCodes = new Map(); + for (const err of errors){ + const code = (0, _errortelemetryutils.extractNextErrorCode)(err); + if (code !== undefined) { + errorCodes.set(err, code); + } + } + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + const errorsFlightStream = (0, _streamops.renderToFlightStream)(ctx.componentMod, { + errors, + errorCodes + }, clientModules, { + filterStackFrame + }); + sendErrorsToBrowser(errorsFlightStream, htmlRequestId); + } +} +function logValidationSkipped(ctx) { + if (process.env.__NEXT_TEST_MODE && process.env.NEXT_TEST_LOG_VALIDATION) { + const requestId = ctx.requestId; + const url = ctx.url.href; + console.log('' + JSON.stringify({ + type: 'validation_start', + requestId, + url + }) + ''); + console.log('' + JSON.stringify({ + type: 'validation_end', + requestId, + url + }) + ''); + } +} +async function spawnStaticShellValidationInDev(...args) { + if (process.env.__NEXT_TEST_MODE && process.env.NEXT_TEST_LOG_VALIDATION) { + const ctx = args[5]; + const requestId = ctx.requestId; + const url = ctx.url.href; + console.log('' + JSON.stringify({ + type: 'validation_start', + requestId, + url + }) + ''); + try { + return await spawnStaticShellValidationInDevImpl(...args); + } finally{ + console.log('' + JSON.stringify({ + type: 'validation_end', + requestId, + url + }) + ''); + } + } else { + return await spawnStaticShellValidationInDevImpl(...args); + } +} +/** + * This function is a fork of prerenderToStream cacheComponents branch. + * While it doesn't return a stream we want it to have identical + * prerender semantics to prerenderToStream and should update it + * in conjunction with any changes to that function. + */ async function spawnStaticShellValidationInDevImpl(accumulatedChunksPromise, syncInterruptReason, startTime, staticStageEndTime, runtimeStageEndTime, ctx, requestStore, fallbackRouteParams, debugChannelClient) { + const debug = process.env.NEXT_PRIVATE_DEBUG_VALIDATION === '1' ? console.log : undefined; + const { componentMod: ComponentMod, getDynamicParamFromSegment, renderOpts, workStore } = ctx; + const loaderTree = ComponentMod.routeModule.userland.loaderTree; + const allowEmptyStaticShell = (renderOpts.allowEmptyStaticShell ?? false) || await (0, _instantconfig.isPageAllowedToBlock)(loaderTree); + const rootParams = (0, _createcomponenttree.getRootParams)(loaderTree, getDynamicParamFromSegment); + const hmrRefreshHash = (0, _workunitasyncstorageexternal.getHmrRefreshHash)(requestStore); + // We don't need to continue the prerender process if we already + // detected invalid dynamic usage in the initial prerender phase. + const { invalidDynamicUsageError } = workStore; + if (invalidDynamicUsageError) { + return logMessagesAndSendErrorsToBrowser([ + invalidDynamicUsageError + ], ctx); + } + if (syncInterruptReason) { + return logMessagesAndSendErrorsToBrowser([ + syncInterruptReason + ], ctx); + } + let debugChunks = null; + if (debugChannelClient) { + debugChunks = []; + debugChannelClient.on('data', (c)=>{ + debugChunks.push(c); + }); + } + const accumulatedChunks = await accumulatedChunksPromise; + const { staticChunks, runtimeChunks, dynamicChunks } = accumulatedChunks; + const needsInstantValidation = await (0, _instantconfig.anySegmentNeedsInstantValidationInDev)(loaderTree); + // `samples` from instant config are only used during build + const validationSamples = null; + const validationSampleTracking = null; + // First we warmup SSR with the runtime chunks. This ensures that when we do + // the full prerender pass with dynamic tracking module loading won't + // interrupt the prerender and can properly observe the entire content + await warmupClientModulesForStagedValidation(// if we're going to be validating prefetches, we'll be rendering some segments in the dynamic stage. + // otherwise, for static shell validation, we only need to warm up to the runtime stage. + // we also need to use a different store type, because instant validation allows more APIs to resolve. + needsInstantValidation ? 'validation-client' : 'prerender-client', needsInstantValidation ? dynamicChunks : runtimeChunks, dynamicChunks, rootParams, fallbackRouteParams, allowEmptyStaticShell, ctx, validationSamples, validationSampleTracking); + debug == null ? void 0 : debug(`Starting static shell validation...`); + const runtimeResult = await validateStagedShell(runtimeChunks, dynamicChunks, debugChunks, runtimeStageEndTime, rootParams, fallbackRouteParams, allowEmptyStaticShell, ctx, hmrRefreshHash, _dynamicrendering.trackDynamicHoleInRuntimeShell); + if (runtimeResult.length > 0) { + debug == null ? void 0 : debug(`❌ Failed - ${runtimeResult.length} errors from runtime stage`); + // We have something to report from the runtime validation + // We can skip the rest + return logMessagesAndSendErrorsToBrowser(runtimeResult, ctx); + } + const staticResult = await validateStagedShell(staticChunks, dynamicChunks, debugChunks, staticStageEndTime, rootParams, fallbackRouteParams, allowEmptyStaticShell, ctx, hmrRefreshHash, _dynamicrendering.trackDynamicHoleInStaticShell); + if (staticResult.length > 0) { + debug == null ? void 0 : debug(`❌ Failed - ${staticResult.length} errors from static stage`); + // We have something to report from the static validation + // We can skip the rest + return logMessagesAndSendErrorsToBrowser(staticResult, ctx); + } + debug == null ? void 0 : debug(`✅ Passed`); + if (needsInstantValidation) { + const instantConfigsResult = await validateInstantConfigs(accumulatedChunks, debugChunks, startTime, rootParams, fallbackRouteParams, ctx, hmrRefreshHash, validationSamples); + if (instantConfigsResult.length > 0) { + return logMessagesAndSendErrorsToBrowser(instantConfigsResult, ctx); + } + } +} +async function warmupClientModulesForStagedValidation(storeType, partialServerChunks, allServerChunks, rootParams, fallbackRouteParams, allowEmptyStaticShell, ctx, validationSamples, validationSampleTracking) { + const { implicitTags, nonce, workStore } = ctx; + // Warmup SSR + const initialClientPrerenderController = new AbortController(); + const initialClientReactController = new AbortController(); + const initialClientRenderController = new AbortController(); + const preinitScripts = ()=>{}; + const { ServerInsertedHTMLProvider } = (0, _serverinsertedhtml.createServerInsertedHTML)(); + let initialClientPrerenderStore; + if (storeType === 'prerender-client') { + const store = { + type: 'prerender-client', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + renderSignal: initialClientRenderController.signal, + controller: initialClientPrerenderController, + // For HTML Generation the only cache tracked activity + // is module loading, which has it's own cache signal + cacheSignal: null, + dynamicTracking: null, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + // TODO should this be removed from client stores? + prerenderResumeDataCache: null, + renderResumeDataCache: null, + hmrRefreshHash: undefined, + // Client prerenders don't track server param access + varyParamsAccumulator: null + }; + initialClientPrerenderStore = store; + } else { + const store = { + type: 'validation-client', + phase: 'render', + rootParams, + implicitTags, + renderSignal: initialClientRenderController.signal, + controller: initialClientPrerenderController, + // For HTML Generation the only cache tracked activity + // is module loading, which has it's own cache signal + cacheSignal: null, + dynamicTracking: null, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + // TODO should this be removed from client stores? + prerenderResumeDataCache: null, + renderResumeDataCache: null, + hmrRefreshHash: undefined, + // Client prerenders don't track server param access + varyParamsAccumulator: null, + // We're not rendering any validation boundaries yet. + boundaryState: null, + validationSamples, + validationSampleTracking, + fallbackRouteParams + }; + initialClientPrerenderStore = store; + } + // TODO: maybe conditionally switch between runtime chunks and all chunks? + // but warming too much should always be fine, just not always necessary + const serverStream = (0, _streamutils.createNodeStreamWithLateRelease)(partialServerChunks, allServerChunks, initialClientReactController.signal); + const pendingInitialClientResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(initialClientPrerenderStore, _streamops.getClientPrerender, // eslint-disable-next-line @next/internal/no-ambiguous-jsx -- React Client + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: serverStream, + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + signal: initialClientReactController.signal, + onError: (err)=>{ + const digest = (0, _createerrorhandler.getDigestForWellKnownError)(err); + if (digest) { + return digest; + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(err)) { + // TODO: Aggregate + console.error(err); + return undefined; + } + if (initialClientReactController.signal.aborted) { + // These are expected errors that might error the prerender. we ignore them. + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + // We don't normally log these errors because we are going to retry anyway but + // it can be useful for debugging Next.js itself to get visibility here when needed + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + } + }); + // The listener to abort our own render controller must be added after React + // has added its listener, to ensure that pending I/O is not + // aborted/rejected too early. + initialClientReactController.signal.addEventListener('abort', ()=>{ + initialClientRenderController.abort(); + }, { + once: true + }); + pendingInitialClientResult.catch((err)=>{ + if (initialClientReactController.signal.aborted || (0, _dynamicrendering.isPrerenderInterruptedError)(err)) { + // These are expected errors that might error the prerender. we ignore them. + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + // We don't normally log these errors because we are going to retry anyway but + // it can be useful for debugging Next.js itself to get visibility here when needed + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + }); + // This is mostly needed for dynamic `import()`s in client components. + // Promises passed to client were already awaited above (assuming that they came from cached functions) + const cacheSignal = new _cachesignal.CacheSignal(); + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + await cacheSignal.cacheReady(); + initialClientReactController.abort(); +} +async function validateStagedShell(stageChunks, allServerChunks, debugChunks, debugEndTime, rootParams, fallbackRouteParams, allowEmptyStaticShell, ctx, hmrRefreshHash, trackDynamicHole) { + const { implicitTags, nonce, workStore } = ctx; + const clientDynamicTracking = (0, _dynamicrendering.createDynamicTrackingState)(false //isDebugDynamicAccesses + ); + const clientReactController = new AbortController(); + const clientRenderController = new AbortController(); + const preinitScripts = ()=>{}; + const { ServerInsertedHTMLProvider } = (0, _serverinsertedhtml.createServerInsertedHTML)(); + const finalClientPrerenderStore = { + type: 'prerender-client', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + renderSignal: clientRenderController.signal, + controller: clientReactController, + // No APIs require a cacheSignal through the workUnitStore during the HTML prerender + cacheSignal: null, + dynamicTracking: clientDynamicTracking, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + // TODO should this be removed from client stores? + prerenderResumeDataCache: null, + renderResumeDataCache: null, + hmrRefreshHash, + // Client prerenders don't track server param access + varyParamsAccumulator: null + }; + const dynamicValidation = (0, _dynamicrendering.createDynamicValidationState)(); + const serverStream = (0, _streamutils.createNodeStreamWithLateRelease)(stageChunks, allServerChunks, clientReactController.signal); + const debugChannelClient = debugChunks ? (0, _streamutils.createNodeStreamWithLateRelease)(debugChunks, debugChunks, clientReactController.signal) : undefined; + try { + let { prelude: unprocessedPrelude } = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + const pendingFinalClientResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(finalClientPrerenderStore, _streamops.getClientPrerender, // eslint-disable-next-line @next/internal/no-ambiguous-jsx -- React Client + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: serverStream, + reactDebugStream: debugChannelClient, + debugEndTime: debugEndTime, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + signal: clientReactController.signal, + onError: (err, errorInfo)=>{ + if ((0, _dynamicrendering.isPrerenderInterruptedError)(err) || clientReactController.signal.aborted) { + const componentStack = errorInfo.componentStack; + if (typeof componentStack === 'string') { + trackDynamicHole(workStore, componentStack, dynamicValidation, clientDynamicTracking); + } + return; + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(err)) { + // TODO: Aggregate + console.error(err); + return undefined; + } + return (0, _createerrorhandler.getDigestForWellKnownError)(err); + } + }); + // The listener to abort our own render controller must be added after + // React has added its listener, to ensure that pending I/O is not + // aborted/rejected too early. + clientReactController.signal.addEventListener('abort', ()=>{ + clientRenderController.abort(); + }, { + once: true + }); + return pendingFinalClientResult; + }, ()=>{ + clientReactController.abort(); + }); + const { preludeIsEmpty } = await (0, _streamops.processPrelude)(unprocessedPrelude); + return (0, _dynamicrendering.getStaticShellDisallowedDynamicReasons)(workStore, preludeIsEmpty ? _dynamicrendering.PreludeState.Empty : _dynamicrendering.PreludeState.Full, dynamicValidation, // TODO(instant-validation): if allowEmptyStaticShell is true (likely due to blocking configs), + // we should probably just skip this altogether + allowEmptyStaticShell); + } catch (thrownValue) { + // Even if the root errors we still want to report any cache components errors + // that were discovered before the root errored. + let errors = (0, _dynamicrendering.getStaticShellDisallowedDynamicReasons)(workStore, _dynamicrendering.PreludeState.Errored, dynamicValidation, // TODO(instant-validation): if allowEmptyStaticShell is true (likely due to blocking configs), + // we should probably just skip this altogether + allowEmptyStaticShell); + if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + errors.unshift('During dynamic validation the root of the page errored. The next logged error is the thrown value. It may be a duplicate of errors reported during the normal development mode render.', thrownValue); + } + return errors; + } +} +/** + * Validates instant configs by iterating URL depths from deepest to + * shallowest. At each depth, builds a combined payload where segments + * above the boundary use Dynamic stage (already mounted) and segments + * below use Static/Runtime stage (being prefetched). If the new subtree + * contains any `unstable_instant` configs, the payload is rendered to + * detect dynamic holes without Suspense. + */ async function validateInstantConfigs(accumulatedChunks, debugChunks, startTime, rootParams, fallbackRouteParams, ctx, hmrRefreshHash, validationSamples) { + const debug = process.env.NEXT_PRIVATE_DEBUG_VALIDATION === '1' ? console.log : undefined; + const { createCombinedPayloadAtDepth, createCombinedPayloadStream, collectStagedSegmentData, discoverValidationDepths } = ctx.componentMod.InstantValidation(); + const { createValidationSampleTracking } = require('./instant-validation/instant-samples'); + debug == null ? void 0 : debug('\nStarting depth-based instant validation...'); + const loaderTree = ctx.componentMod.routeModule.userland.loaderTree; + // Only affects a debug environment name label, not functional behavior. + const hasRuntimePrefetch = true; + const clientReferenceManifest = (0, _manifestssingleton.getClientReferenceManifest)(); + const { cache, payload: initialRscPayload, stageEndTimes } = await collectStagedSegmentData({ + [_stagedrendering.RenderStage.Static]: accumulatedChunks.staticChunks, + [_stagedrendering.RenderStage.Runtime]: accumulatedChunks.runtimeChunks, + [_stagedrendering.RenderStage.Dynamic]: accumulatedChunks.dynamicChunks + }, debugChunks, startTime, hasRuntimePrefetch, clientReferenceManifest); + const { implicitTags, nonce, workStore } = ctx; + const isDebugChannelEnabled = !!ctx.renderOpts.setReactDebugChannel; + /** + * Build and validate a combined payload at the given URL depth. + * + * Returns null if no instant config exists at this depth. + * Returns an empty array if validation passed. + * Returns a non-empty array of errors if validation failed. + * + * When the initial validation uses static segments and finds errors, + * automatically retries with runtime stages to discriminate between + * runtime and dynamic errors, returning the more specific result. + */ async function validateAtDepth(depth, groupDepthForValidation) { + return validateAtDepthImpl(depth, groupDepthForValidation, null); + } + async function validateAtDepthImpl(depth, groupDepthForValidation, previousBoundaryState) { + const extraChunksController = new AbortController(); + const boundaryState = (0, _boundarytracking.createValidationBoundaryTracking)(); + let useRuntimeStageForPartialSegments = false; + if (previousBoundaryState) { + // We're doing a followup render to better discriminate error types + useRuntimeStageForPartialSegments = true; + for (const id of previousBoundaryState.expectedIds){ + boundaryState.expectedIds.add(id); + } + } + const payloadResult = await createCombinedPayloadAtDepth(initialRscPayload, cache, loaderTree, ctx.getDynamicParamFromSegment, ctx.query, depth, groupDepthForValidation, extraChunksController.signal, boundaryState, clientReferenceManifest, stageEndTimes, useRuntimeStageForPartialSegments); + if (payloadResult === null) { + return null; + } + const reactController = new AbortController(); + const renderController = new AbortController(); + const preinitScripts = ()=>{}; + const { ServerInsertedHTMLProvider } = (0, _serverinsertedhtml.createServerInsertedHTML)(); + const { stream: serverStream, debugStream } = await createCombinedPayloadStream(payloadResult.payload, extraChunksController, reactController.signal, clientReferenceManifest, startTime, isDebugChannelEnabled); + const instantValidationState = (0, _dynamicrendering.createInstantValidationState)(payloadResult.createInstantStack); + const validationSampleTracking = validationSamples !== null ? createValidationSampleTracking() : null; + const clientDynamicTracking = (0, _dynamicrendering.createDynamicTrackingState)(false); + const prerenderStore = { + type: 'validation-client', + phase: 'render', + rootParams, + implicitTags, + renderSignal: renderController.signal, + controller: reactController, + cacheSignal: null, + dynamicTracking: clientDynamicTracking, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache: null, + renderResumeDataCache: null, + hmrRefreshHash, + varyParamsAccumulator: null, + boundaryState, + fallbackRouteParams, + validationSamples, + validationSampleTracking + }; + let errors; + try { + const { prelude: unprocessedPrelude } = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + const pendingResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderStore, _streamops.getClientPrerender, // eslint-disable-next-line @next/internal/no-ambiguous-jsx -- React Client + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: serverStream, + reactDebugStream: debugStream ?? undefined, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + signal: reactController.signal, + onError: (err, errorInfo)=>{ + if ((0, _dynamicrendering.isPrerenderInterruptedError)(err) || reactController.signal.aborted) { + const componentStack = errorInfo.componentStack; + if (typeof componentStack === 'string') { + (0, _dynamicrendering.trackDynamicHoleInNavigation)(workStore, componentStack, instantValidationState, clientDynamicTracking, payloadResult.hasAmbiguousErrors ? _dynamicrendering.DynamicHoleKind.Runtime : _dynamicrendering.DynamicHoleKind.Dynamic, boundaryState); + } + return; + } else if (!reactController.signal.aborted) { + const componentStack = errorInfo.componentStack; + if (typeof componentStack === 'string') { + let errorForDisplay = err; + if (process.env.NODE_ENV === 'production') { + // In production (i.e. build validation), Flight omits everything except the digest + // when serializing errors, which makes them very unfriendly for debugging. + // Map the deserialized errors back to their original error object to make it more useful. + if (err && typeof err === 'object' && 'digest' in err && typeof err.digest === 'string') { + const serverError = workStore.reactServerErrorsByDigest.get(err.digest); + if (serverError !== undefined) { + errorForDisplay = serverError; + } + } + } + (0, _dynamicrendering.trackThrownErrorInNavigation)(workStore, instantValidationState, errorForDisplay, componentStack); + } + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(err)) { + console.error(err); + return undefined; + } + return (0, _createerrorhandler.getDigestForWellKnownError)(err); + } + }); + reactController.signal.addEventListener('abort', ()=>{ + renderController.abort(); + }, { + once: true + }); + return pendingResult; + }, ()=>{ + reactController.abort(); + }); + const { preludeIsEmpty } = await (0, _streamops.processPrelude)(unprocessedPrelude); + errors = (0, _dynamicrendering.getNavigationDisallowedDynamicReasons)(workStore, preludeIsEmpty ? _dynamicrendering.PreludeState.Empty : _dynamicrendering.PreludeState.Full, instantValidationState, validationSampleTracking, boundaryState); + } catch (thrownValue) { + errors = (0, _dynamicrendering.getNavigationDisallowedDynamicReasons)(workStore, _dynamicrendering.PreludeState.Errored, instantValidationState, validationSampleTracking, boundaryState); + } + // This prerender did not produce any errors + if (errors.length === 0) { + return []; + } + if (previousBoundaryState === null && payloadResult.hasAmbiguousErrors) { + // This is the first validation attempt. we prepared a payload where dynamic holes might be runtime data dependencies + // or dynamic data dependencies. We do a followup validation using a payload with only Runtime segments to discriminate + const dynamicOnlyErrors = await validateAtDepthImpl(depth, groupDepthForValidation, boundaryState); + if (dynamicOnlyErrors !== null && dynamicOnlyErrors.length > 0) { + // The dynamic errors only validation found errors to report so we favor those + return dynamicOnlyErrors; + } + } + // If we didn't return some other errors at this point the only thing to return is this validation's errors + return errors; + } + // Discover validation depth bounds from the LoaderTree. The array + // length is the max URL depth; each entry is the max group depth + // (route group segments) between that URL depth and the next. + const groupDepthsByUrlDepth = discoverValidationDepths(loaderTree); + const maxDepth = groupDepthsByUrlDepth.length; + for(let depth = maxDepth - 1; depth >= 0; depth--){ + const maxGroupDepth = groupDepthsByUrlDepth[depth]; + for(let currentGroupDepth = maxGroupDepth; currentGroupDepth >= 0; currentGroupDepth--){ + debug == null ? void 0 : debug(`Trying depth ${depth}` + (currentGroupDepth > 0 ? ` + groupDepth ${currentGroupDepth}...` : '...')); + const errors = await validateAtDepth(depth, currentGroupDepth); + if (errors === null) { + debug == null ? void 0 : debug(` No config at depth ${depth}+${currentGroupDepth}, skipping.`); + continue; + } + if (errors.length > 0) { + debug == null ? void 0 : debug(` Depth ${depth}+${currentGroupDepth}: ❌ Failed (${errors.length} errors)`); + return errors; + } + debug == null ? void 0 : debug(` Depth ${depth}+${currentGroupDepth}: ✅ Passed`); + } + } + debug == null ? void 0 : debug(`✅ All depths passed`); + return []; +} +/** + * Two-pass render for build-time instant validation. + * The flow is similar to `renderWithRestartOnCacheMissInDev`: pass 1 warms caches, + * pass 2 renders with warm caches. If pass 1 has no cache misses, + * its result is returned directly. + * + * Differences from `renderWithRestartOnCacheMissInDev`: + * - both renders are abortable: if we know that we can't use a stream, we can just + * throw it away, we don't have to render a complete result. + * - We don't need to tee the stream, we only care about accumulating chunks. + */ async function renderWithRestartOnCacheMissInValidation(ctx, initialRequestStore, createRequestStore, getPayload, createOnError, prefilledDataCache) { + const { componentMod: ComponentMod } = ctx; + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + let startTime = -Infinity; + let requestStore = initialRequestStore; + //=============================================== + // Initial render (prospective — may warm caches) + //=============================================== + const cacheSignal = new _cachesignal.CacheSignal(); + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + // The prerender we rean before the validation probably already filled some caches, + // so we want to save work and re-use them. + const prerenderResumeDataCache = prefilledDataCache ? (0, _resumedatacache.createPrerenderResumeDataCache)(prefilledDataCache) : (0, _resumedatacache.createPrerenderResumeDataCache)(); + const initialReactController = new AbortController(); + const initialDataController = new AbortController(); + const initialAbandonController = new AbortController(); + const initialStageController = new _stagedrendering.StagedRenderingController(initialDataController.signal, initialAbandonController, true // track sync IO + ); + requestStore.prerenderResumeDataCache = prerenderResumeDataCache; + requestStore.renderResumeDataCache = null; + requestStore.stagedRendering = initialStageController; + requestStore.cacheSignal = cacheSignal; + requestStore.asyncApiPromises = createAsyncApiPromises(initialStageController, requestStore.cookies, requestStore.mutableCookies, requestStore.headers); + // We don't set `requestStore.controller and requestStore.renderSignal here. + // Right now, we only abort for sync IO, and in the first render, that's just a restart + // (after waiting for caches) + requestStore.controller = undefined; + requestStore.renderSignal = undefined; + const initialRscPayload = await getPayload(requestStore); + const advanceStageIfNoCacheMiss = (stage)=>{ + if (initialAbandonController.signal.aborted === true) { + return; + } else if (cacheSignal.hasPendingReads()) { + initialAbandonController.abort(); + } else { + initialStageController.advanceStage(stage); + } + }; + const initialResult = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + initialStageController.advanceStage(_stagedrendering.RenderStage.EarlyStatic); + startTime = performance.now() + performance.timeOrigin; + const stream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ComponentMod, initialRscPayload, clientModules, { + onError: createOnError(initialReactController.signal, false), + startTime, + filterStackFrame, + signal: initialReactController.signal + }); + initialReactController.signal.addEventListener('abort', ()=>{ + const { reason } = initialReactController.signal; + initialDataController.abort(reason); + }, { + once: true + }); + const accumulatedChunksPromise = accumulateStreamChunks(stream, initialStageController, initialDataController.signal); + accumulatedChunksPromise.catch(()=>{}); + return { + accumulatedChunksPromise + }; + }, ()=>{ + advanceStageIfNoCacheMiss(_stagedrendering.RenderStage.Static); + }, ()=>{ + advanceStageIfNoCacheMiss(_stagedrendering.RenderStage.EarlyRuntime); + }, ()=>{ + advanceStageIfNoCacheMiss(_stagedrendering.RenderStage.Runtime); + }, ()=>{ + advanceStageIfNoCacheMiss(_stagedrendering.RenderStage.Dynamic); + }); + if (initialStageController.currentStage !== _stagedrendering.RenderStage.Abandoned) { + // No cache misses. Use the result as-is. + return { + accumulatedChunksPromise: initialResult.accumulatedChunksPromise, + startTime, + stageController: initialStageController, + requestStore + }; + } + // Cache miss. Wait for caches to fill, then re-render with warm caches. + await cacheSignal.cacheReady(); + initialReactController.abort(); + //=============================================== + // Final render (restarted, with warm caches) + //=============================================== + requestStore = createRequestStore(); + // Unlike dev, where we're re-using the render that'll be visible in the browser, + // we *can* abort the validation render. + const finalReactController = new AbortController(); + const finalDataController = new AbortController(); + const finalStageController = new _stagedrendering.StagedRenderingController(finalDataController.signal, null, true // track sync IO + ); + requestStore.prerenderResumeDataCache = null; + requestStore.renderResumeDataCache = (0, _resumedatacache.createRenderResumeDataCache)(prerenderResumeDataCache); + requestStore.stagedRendering = finalStageController; + requestStore.cacheSignal = null; + requestStore.asyncApiPromises = createAsyncApiPromises(finalStageController, requestStore.cookies, requestStore.mutableCookies, requestStore.headers); + // Right now, we only abort for sync IO. + // If sync IO occurs in a place where it's not allowed, then we have to fail validation, + // and we can abort the render immediately, without waiting for anything else.. + requestStore.controller = finalReactController; + requestStore.renderSignal = finalDataController.signal; + const finalRscPayload = await getPayload(requestStore); + const finalResult = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + finalStageController.advanceStage(_stagedrendering.RenderStage.EarlyStatic); + startTime = performance.now() + performance.timeOrigin; + const stream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, _streamops.renderToFlightStream, ComponentMod, finalRscPayload, clientModules, { + onError: createOnError(finalReactController.signal, true), + startTime, + filterStackFrame, + signal: finalReactController.signal + }); + finalReactController.signal.addEventListener('abort', ()=>{ + finalDataController.abort(finalReactController.signal.reason); + }, { + once: true + }); + const accumulatedChunksPromise = accumulateStreamChunks(stream, finalStageController, null); + accumulatedChunksPromise.catch(()=>{}); + return { + accumulatedChunksPromise + }; + }, ()=>{ + finalStageController.advanceStage(_stagedrendering.RenderStage.Static); + }, ()=>{ + finalStageController.advanceStage(_stagedrendering.RenderStage.EarlyRuntime); + }, ()=>{ + finalStageController.advanceStage(_stagedrendering.RenderStage.Runtime); + }, ()=>{ + finalStageController.advanceStage(_stagedrendering.RenderStage.Dynamic); + }); + return { + accumulatedChunksPromise: finalResult.accumulatedChunksPromise, + startTime, + stageController: finalStageController, + requestStore + }; +} +async function validateInstantConfigsInBuild(ctx, prefilledDataCache) { + const run = async ()=>{ + let success; + try { + // The validation renders are separate renders, and use a separate WorkStore. + // However, we defensively exit the existing workStore to avoid relying on something from there + // before we shadow it. + success = await _workasyncstorageexternal.workAsyncStorage.exit(async ()=>validateInstantConfigsInBuildImpl(ctx, prefilledDataCache)); + } catch (err) { + console.error(Object.defineProperty(new _invarianterror.InvariantError('An unexpected error occcured during instant validation', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E1097", + enumerable: false, + configurable: true + })); + success = false; + } + if (!success) { + console.error('Stopping prerender due to instant validation errors.'); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + }; + if (process.env.__NEXT_TEST_MODE && process.env.NEXT_TEST_LOG_VALIDATION) { + // In tests, we use these markers to extract the relevant portion of the CLI logs. + // We want consistent ordering of these messages and other console.error calls, + // so we use console.error here as well. Using console.log leads to non-deterministic + // log order, likely stdout/stderr can interleave in non-deterministic ways. + const requestId = Date.now(); + const route = ctx.workStore.route; + console.error('' + JSON.stringify({ + type: 'validation_start', + requestId, + url: route + }) + ''); + try { + return await run(); + } finally{ + console.error('' + JSON.stringify({ + type: 'validation_end', + requestId, + url: route + }) + ''); + } + } else { + return await run(); + } +} +/** + * Runs instant validation at build time using the `samples` from `unstable_instant`. + * + * For each sample, this creates a staged RSC render with a synthetic `RequestStore` + * populated from sample data, then feeds the accumulated chunks to + * `validateInstantConfigs` which handles the actual validation. + */ async function validateInstantConfigsInBuildImpl(ctx, prefilledDataCache) { + const debug = process.env.NEXT_PRIVATE_DEBUG_VALIDATION === '1' ? console.log : undefined; + const { workStore: outerWorkStore } = ctx; + const route = outerWorkStore.route; + const loaderTree = ctx.componentMod.routeModule.userland.loaderTree; + let samples = await (0, _instantconfig.resolveInstantConfigSamplesForPage)(loaderTree); + if (!samples || samples.length === 0) { + // No samples defined; use a single empty sample to still run validation + samples = [ + {} + ]; + } + debug == null ? void 0 : debug('Resolved samples:', samples); + const allPossibleFallbackRouteParams = (0, _fallbackparams.getFallbackRouteParams)(route, ctx.componentMod.routeModule); + for(let sampleIndex = 0; sampleIndex < samples.length; sampleIndex++){ + const sample = samples[sampleIndex]; + debug == null ? void 0 : debug(`Validating sample (${sampleIndex + 1}/${samples.length}):`, sample); + let errors; + try { + errors = await _consoleasyncstorageexternal.consoleAsyncStorage.run({ + dim: true + }, ()=>validateInstantConfigInBuildWithSample(ctx, sample, allPossibleFallbackRouteParams, prefilledDataCache)); + } catch (err) { + if ((0, _instantvalidationerror.isInstantValidationError)(err)) { + errors = [ + err + ]; + } else { + throw err; + } + } + if (errors.length > 0) { + debug == null ? void 0 : debug(`❌ Sample failed validation (${errors.length} errors)`); + const sampleDesc = samples.length > 1 ? ` (sample ${sampleIndex + 1} of ${samples.length})` : ''; + for (const err of errors){ + console.error(err); + } + console.error(`Build-time instant validation failed for route "${route}"${sampleDesc}.`); + return false; + } else { + debug == null ? void 0 : debug('✅ Sample validated successfully'); + } + } + return true; +} +async function validateInstantConfigInBuildWithSample(outerCtx, sample, allPossibleFallbackRouteParams, prefilledDataCache) { + // The flow for build mirrors what we do when validating in dev. + // We have to perform a full dynamic render to get the RSC chunks for each stage. + // In order to do that, we have to set up a mock AppRenderContext, workStore, and requestStore + // based on the `sample` we're using. + const { workStore: outerWorkStore } = outerCtx; + const loaderTree = outerCtx.componentMod.routeModule.userland.loaderTree; + const route = outerWorkStore.route; + const { createCookiesFromSample, createHeadersFromSample, createDraftModeForValidation, createRelativeURLFromSamples, createValidationSampleTracking } = require('./instant-validation/instant-samples'); + // TODO(instant-validation-build): it feels like this should happen higher up + // and go through existing URL parsing/generation logic? + const sampleUrl = createRelativeURLFromSamples(route, sample.params, sample.searchParams); + const sampleParams = sample.params ?? {}; + let fallbackRouteParams = null; + if (allPossibleFallbackRouteParams) { + const fallbackRouteParamsMut = new Map(); + for (const [paramKey, value] of allPossibleFallbackRouteParams){ + if (!(paramKey in sampleParams)) { + fallbackRouteParamsMut.set(paramKey, value); + } + } + fallbackRouteParams = fallbackRouteParamsMut; + } + const getDynamicParamFromSegment = makeGetDynamicParamFromSegment(sampleParams, fallbackRouteParams, false); + const sampleRootParams = (0, _createcomponenttree.getRootParams)(loaderTree, getDynamicParamFromSegment); + let sampleUrlWithoutQuery; + let sampleQuery; + ({ query: sampleQuery, ...sampleUrlWithoutQuery } = sampleUrl); + const { AfterContext } = require('../after/after-context'); + // NOTE: Matching the field order in `createWorkStore` to avoid deopting. + const workStore = { + isStaticGeneration: false, + page: outerWorkStore.page, + route: outerWorkStore.route, + incrementalCache: outerWorkStore.incrementalCache, + cacheLifeProfiles: outerWorkStore.cacheLifeProfiles, + isBuildTimePrerendering: false, + fetchCache: outerWorkStore.fetchCache, + isOnDemandRevalidate: false, + isDraftMode: false, + isPrefetchRequest: false, + buildId: outerWorkStore.buildId, + reactLoadableManifest: outerWorkStore.reactLoadableManifest, + assetPrefix: outerWorkStore.assetPrefix, + nonce: outerWorkStore.nonce, + // Never run `after()` for this validation render. by definition, `after` can't affect the rendered output. + afterContext: new AfterContext({ + waitUntil (promise) { + promise.catch(()=>{}); + }, + onClose () {}, + onTaskError () {} + }), + cacheComponentsEnabled: outerWorkStore.cacheComponentsEnabled, + previouslyRevalidatedTags: [], + refreshTagsByCacheKind: new Map(), + runInCleanSnapshot: outerWorkStore.runInCleanSnapshot, + shouldTrackFetchMetrics: false, + reactServerErrorsByDigest: new Map() + }; + return _workasyncstorageexternal.workAsyncStorage.run(workStore, async ()=>{ + // NOTE: match field order in renderToHTMLOrFlightImpl to avoid deopts + const validationCtx = { + componentMod: outerCtx.componentMod, + url: sampleUrlWithoutQuery, + renderOpts: outerCtx.renderOpts, + workStore, + parsedRequestHeaders: outerCtx.parsedRequestHeaders, + getDynamicParamFromSegment, + interpolatedParams: sampleParams, + query: sampleQuery, + isPrefetch: false, + isPossibleServerAction: false, + requestTimestamp: outerCtx.requestTimestamp, + appUsingSizeAdjustment: outerCtx.appUsingSizeAdjustment, + flightRouterState: undefined, + requestId: outerCtx.requestId, + htmlRequestId: outerCtx.htmlRequestId, + pagePath: outerCtx.pagePath, + assetPrefix: outerCtx.assetPrefix, + isNotFoundPath: outerCtx.isNotFoundPath, + nonce: outerCtx.nonce, + res: outerCtx.res, + sharedContext: outerCtx.sharedContext, + implicitTags: outerCtx.implicitTags + }; + const validationSamples = { + params: sample.params, + searchParams: sample.searchParams + }; + const createRequestStore = ()=>{ + // Create exhaustive request data from sample + const sampleCookies = createCookiesFromSample(sample.cookies, route); + // We don't have to bother initializing these, pages can't access them anyway, + // we just need them because RequestStore requires them. + const unusedMutableCookies = new _cookies.ResponseCookies(new Headers()); + // Create headers. + const sampleHeaders = createHeadersFromSample(sample.headers, sample.cookies, route); + const draftMode = createDraftModeForValidation(); + return { + type: 'request', + phase: 'render', + implicitTags: outerCtx.implicitTags, + url: { + pathname: sampleUrl.pathname, + search: sampleUrl.search + }, + headers: sampleHeaders, + cookies: sampleCookies, + mutableCookies: unusedMutableCookies, + userspaceMutableCookies: unusedMutableCookies, + draftMode, + rootParams: sampleRootParams, + validationSamples, + validationSampleTracking: createValidationSampleTracking(), + // These will be set when rendering + renderResumeDataCache: null, + prerenderResumeDataCache: null, + stagedRendering: null, + asyncApiPromises: undefined + }; + }; + // Track server errors. If one of them surfaces during the client render + // in the deserialized form (with no message/stack) we'll use this to map it + // back to the original. + const onServerError = (0, _createerrorhandler.createReactServerErrorHandler)(true, true, workStore.reactServerErrorsByDigest, ()=>{} // Don't report anything here. If needed, it will be reported in the client render. + ); + const { accumulatedChunksPromise, startTime, stageController, requestStore: finalServerStore } = await renderWithRestartOnCacheMissInValidation(validationCtx, createRequestStore(), createRequestStore, (requestStore)=>_workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, getRSCPayload, loaderTree, validationCtx, { + is404: false + }), (signal)=>function onError(err) { + const digest = (0, _createerrorhandler.getDigestForWellKnownError)(err); + if (digest) { + return digest; + } + if (signal.aborted) { + return; + } + return onServerError(err); + }, prefilledDataCache); + const accumulatedChunks = await accumulatedChunksPromise; + const debugChunks = null // TODO(instant-validation-build): support debugChannel + ; + // Missing sample errors take priority over everything else, + // because they prevent us from rendering everything we need to validate. + const serverValidationSampleTracking = finalServerStore.validationSampleTracking; + if (serverValidationSampleTracking.missingSampleErrors.length > 0) { + return serverValidationSampleTracking.missingSampleErrors; + } + // We also error for sync IO. This runs after the prerender, + // so if we get sync IO errors here, they're likely from the runtime stage -- + // the prerender probably discovered sync IO in the static stage + if (stageController.currentStage === _stagedrendering.RenderStage.Abandoned && stageController.syncInterruptReason) { + return [ + stageController.syncInterruptReason + ]; + } + const allowEmptyStaticShell = (validationCtx.renderOpts.allowEmptyStaticShell ?? false) || await (0, _instantconfig.isPageAllowedToBlock)(loaderTree); + // Now we the chunks of a fully rendered page, just like in dev. + // We can use them to validate all the navigations required by `instant` configs. + // Note that we're not performing static shell validation here -- that happens + // implicitly as part of the static prerender. + // The static prerender has warmed some client modules already, + // but we'll be reaching Runtime/Dynamic stages and thus rendering more content, + // so we need to warm again. + // TODO(instant-validation-build): This might warm too much, possibly hitting errors on code that didn't expect + // to run at build time. For example, we generally don't need to render leaf segments (e.g. __PAGE__) in + // the Dynamic stage, they're Runtime at best. + const warmupValidationSamplesTracking = createValidationSampleTracking(); + await warmupClientModulesForStagedValidation('validation-client', accumulatedChunks.dynamicChunks, accumulatedChunks.dynamicChunks, sampleRootParams, fallbackRouteParams, allowEmptyStaticShell, validationCtx, validationSamples, warmupValidationSamplesTracking); + if (warmupValidationSamplesTracking.missingSampleErrors.length > 0) { + return warmupValidationSamplesTracking.missingSampleErrors; + } + return await validateInstantConfigs(accumulatedChunks, debugChunks, startTime, sampleRootParams, fallbackRouteParams, validationCtx, undefined, validationSamples); + }); +} +/** + * Determines whether we should generate static flight data. + */ function shouldGenerateStaticFlightData(workStore) { + const { isStaticGeneration } = workStore; + if (!isStaticGeneration) return false; + return true; +} +async function prerenderToStream(req, res, ctx, metadata, tree, fallbackRouteParams) { + // When prerendering formState is always null. We still include it + // because some shared APIs expect a formState value and this is slightly + // more explicit than making it an optional function argument + const formState = null; + const { assetPrefix, getDynamicParamFromSegment, implicitTags, nonce, pagePath, renderOpts, workStore } = ctx; + const { basePath, buildManifest, ComponentMod, crossOrigin, experimental, isDebugDynamicAccesses, isBuildTimePrerendering = false, onInstrumentationRequestError, page, reactMaxHeadersLength, subresourceIntegrityManifest, cacheComponents } = renderOpts; + const { cachedNavigations } = renderOpts.experimental; + const allowEmptyStaticShell = (renderOpts.allowEmptyStaticShell ?? false) || await (0, _instantconfig.isPageAllowedToBlock)(tree); + const rootParams = (0, _createcomponenttree.getRootParams)(tree, getDynamicParamFromSegment); + const { ServerInsertedHTMLProvider, renderServerInsertedHTML } = (0, _serverinsertedhtml.createServerInsertedHTML)(); + const getServerInsertedMetadata = (0, _createserverinsertedmetadata.createServerInsertedMetadata)(nonce); + const tracingMetadata = (0, _utils1.getTracedMetadata)((0, _tracer.getTracer)().getTracePropagationData(), experimental.clientTraceMetadata); + const polyfills = buildManifest.polyfillFiles.filter((polyfill)=>polyfill.endsWith('.js') && !polyfill.endsWith('.module.js')).map((polyfill)=>({ + src: `${assetPrefix}/_next/${polyfill}${(0, _getassetquerystring.getAssetQueryString)(ctx, false)}`, + integrity: subresourceIntegrityManifest == null ? void 0 : subresourceIntegrityManifest[polyfill], + crossOrigin, + noModule: true, + nonce + })); + const [preinitScripts, bootstrapScript] = (0, _requiredscripts.getRequiredScripts)(buildManifest, // Why is assetPrefix optional on renderOpts? + // @TODO make it default empty string on renderOpts and get rid of it from ctx + assetPrefix, crossOrigin, subresourceIntegrityManifest, (0, _getassetquerystring.getAssetQueryString)(ctx, true), nonce, page); + const { reactServerErrorsByDigest } = workStore; + // We don't report errors during prerendering through our instrumentation hooks + const reportErrors = !experimental.isRoutePPREnabled; + function onHTMLRenderRSCError(err, silenceLog) { + if (reportErrors) { + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'react-server-components'), silenceLog); + } + } + const serverComponentsErrorHandler = (0, _createerrorhandler.createReactServerErrorHandler)(process.env.NODE_ENV === 'development', isBuildTimePrerendering, reactServerErrorsByDigest, onHTMLRenderRSCError); + function onHTMLRenderSSRError(err) { + if (reportErrors) { + // We don't need to silence logs here. onHTMLRenderSSRError won't be + // called at all if the error was logged before in the RSC error handler. + const silenceLog = false; + return onInstrumentationRequestError == null ? void 0 : onInstrumentationRequestError(err, req, createErrorContext(ctx, 'server-rendering'), silenceLog); + } + } + const allCapturedErrors = []; + const htmlRendererErrorHandler = (0, _createerrorhandler.createHTMLErrorHandler)(process.env.NODE_ENV === 'development', isBuildTimePrerendering, reactServerErrorsByDigest, allCapturedErrors, onHTMLRenderSSRError); + let reactServerPrerenderResult = null; + const setMetadataHeader = (name)=>{ + metadata.headers ??= {}; + metadata.headers[name] = res.getHeader(name); + }; + const setHeader = (name, value)=>{ + res.setHeader(name, value); + setMetadataHeader(name); + return res; + }; + const appendHeader = (name, value)=>{ + if (Array.isArray(value)) { + value.forEach((item)=>{ + res.appendHeader(name, item); + }); + } else { + res.appendHeader(name, value); + } + setMetadataHeader(name); + }; + const selectStaleTime = (0, _staletime.createSelectStaleTime)(experimental); + const { clientModules } = (0, _manifestssingleton.getClientReferenceManifest)(); + let prerenderStore = null; + try { + if (cacheComponents) { + /** + * cacheComponents with PPR + * + * The general approach is to render the RSC stream first allowing any cache reads to resolve. + * Once we have settled all cache reads we restart the render and abort after a single Task. + * + * Unlike with the non PPR case we can't synchronously abort the render when a dynamic API is used + * during the initial render because we need to ensure all caches can be filled as part of the initial Task + * and a synchronous abort might prevent us from filling all caches. + * + * Once the render is complete we allow the SSR render to finish and use a combination of the postponed state + * and the reactServerIsDynamic value to determine how to treat the resulting render + */ // The prerender controller represents the lifetime of the prerender. It + // will be aborted when a task is complete or a synchronously aborting API + // is called. Notably, during prospective prerenders, this does not + // actually terminate the prerender itself, which will continue until all + // caches are filled. + const initialServerPrerenderController = new AbortController(); + // This controller is used to abort the React prerender. + const initialServerReactController = new AbortController(); + // This controller represents the lifetime of the React prerender. Its + // signal can be used for any I/O operation to abort the I/O and/or to + // reject, when prerendering aborts. This includes our own hanging + // promises for accessing request data, and for fetch calls. It might be + // replaced in the future by React.cacheSignal(). It's aborted after the + // React controller, so that no pending I/O can register abort listeners + // that are called before React's abort listener is called. This ensures + // that pending I/O is not rejected too early when aborting the prerender. + // Notably, during the prospective prerender, it is different from the + // prerender controller because we don't want to end the React prerender + // until all caches are filled. + const initialServerRenderController = new AbortController(); + // The cacheSignal helps us track whether caches are still filling or we are ready + // to cut the render off. + const cacheSignal = new _cachesignal.CacheSignal(); + // Always start with a fresh prerender RDC so warmup can fill misses, + // even when we have a prefilled render RDC to seed from. + const prerenderResumeDataCache = (0, _resumedatacache.createPrerenderResumeDataCache)(); + let renderResumeDataCache = renderOpts.renderResumeDataCache ?? null; + const initialServerPayloadPrerenderStore = { + type: 'prerender', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + // While this render signal isn't going to be used to abort a React render while getting the RSC payload + // various request data APIs bind to this controller to reject after completion. + renderSignal: initialServerRenderController.signal, + // When we generate the RSC payload we might abort this controller due to sync IO + // but we don't actually care about sync IO in this phase so we use a throw away controller + // that isn't connected to anything + controller: new AbortController(), + // During the initial prerender we need to track all cache reads to ensure + // we render long enough to fill every cache it is possible to visit during + // the final prerender. + cacheSignal, + dynamicTracking: null, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + // We don't track vary params during initial prerender, only the final one + varyParamsAccumulator: null + }; + // We're not going to use the result of this render because the only time it could be used + // is if it completes in a microtask and that's likely very rare for any non-trivial app + const initialServerPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(initialServerPayloadPrerenderStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404 + }); + const initialServerPrerenderStore = prerenderStore = { + type: 'prerender', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + renderSignal: initialServerRenderController.signal, + controller: initialServerPrerenderController, + // During the initial prerender we need to track all cache reads to ensure + // we render long enough to fill every cache it is possible to visit during + // the final prerender. + cacheSignal, + dynamicTracking: null, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + // We don't track vary params during initial prerender, only the final one + varyParamsAccumulator: null + }; + const initialPrerenderOptions = { + filterStackFrame, + onError: (err)=>{ + const digest = (0, _createerrorhandler.getDigestForWellKnownError)(err); + if (digest) { + return digest; + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(err)) { + // TODO: Aggregate + console.error(err); + return undefined; + } + if (initialServerPrerenderController.signal.aborted) { + // The render aborted before this error was handled which indicates + // the error is caused by unfinished components within the render + return; + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + }, + // We don't want to stop rendering until the cacheSignal is complete so we pass + // a different signal to this render call than is used by dynamic APIs to signify + // transitioning out of the prerender environment + signal: initialServerReactController.signal + }; + const pendingInitialServerResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(initialServerPrerenderStore, (0, _streamops.getServerPrerender)(ComponentMod), initialServerPayload, clientModules, initialPrerenderOptions); + // The listener to abort our own render controller must be added after + // React has added its listener, to ensure that pending I/O is not + // aborted/rejected too early. + initialServerReactController.signal.addEventListener('abort', ()=>{ + initialServerRenderController.abort(); + initialServerPrerenderController.abort(); + }, { + once: true + }); + // Wait for all caches to be finished filling and for async imports to resolve + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + await cacheSignal.cacheReady(); + initialServerReactController.abort(); + // We don't need to continue the prerender process if we already + // detected invalid dynamic usage in the initial prerender phase. + if (workStore.invalidDynamicUsageError) { + (0, _dynamicrendering.logDisallowedDynamicError)(workStore, workStore.invalidDynamicUsageError); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + let initialServerResult; + try { + initialServerResult = await (0, _apprenderprerenderutils.createReactServerPrerenderResult)(pendingInitialServerResult); + } catch (err) { + if (initialServerReactController.signal.aborted || initialServerPrerenderController.signal.aborted) { + // These are expected errors that might error the prerender. we ignore them. + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + // We don't normally log these errors because we are going to retry anyway but + // it can be useful for debugging Next.js itself to get visibility here when needed + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + } + if (initialServerResult) { + const initialClientPrerenderController = new AbortController(); + const initialClientReactController = new AbortController(); + const initialClientRenderController = new AbortController(); + const initialClientPrerenderStore = { + type: 'prerender-client', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + renderSignal: initialClientRenderController.signal, + controller: initialClientPrerenderController, + // For HTML Generation the only cache tracked activity + // is module loading, which has it's own cache signal + cacheSignal: null, + dynamicTracking: null, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + // Client prerenders don't track server param access + varyParamsAccumulator: null + }; + const pendingInitialClientResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(initialClientPrerenderStore, _streamops.getClientPrerender, // eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: initialServerResult.asUnclosingStream(), + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + signal: initialClientReactController.signal, + onError: (err)=>{ + const digest = (0, _createerrorhandler.getDigestForWellKnownError)(err); + if (digest) { + return digest; + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(err)) { + // TODO: Aggregate + console.error(err); + return undefined; + } + if (initialClientReactController.signal.aborted) { + // These are expected errors that might error the prerender. we ignore them. + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + // We don't normally log these errors because we are going to retry anyway but + // it can be useful for debugging Next.js itself to get visibility here when needed + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + }, + bootstrapScripts: [ + bootstrapScript + ] + }); + // The listener to abort our own render controller must be added after + // React has added its listener, to ensure that pending I/O is not + // aborted/rejected too early. + initialClientReactController.signal.addEventListener('abort', ()=>{ + initialClientRenderController.abort(); + }, { + once: true + }); + pendingInitialClientResult.catch((err)=>{ + if (initialClientReactController.signal.aborted || (0, _dynamicrendering.isPrerenderInterruptedError)(err)) { + // These are expected errors that might error the prerender. we ignore them. + } else if (process.env.NEXT_DEBUG_BUILD || process.env.__NEXT_VERBOSE_LOGGING) { + // We don't normally log these errors because we are going to retry anyway but + // it can be useful for debugging Next.js itself to get visibility here when needed + (0, _prospectiverenderutils.printDebugThrownValueForProspectiveRender)(err, workStore.route, _prospectiverenderutils.Phase.ProspectiveRender); + } + }); + // This is mostly needed for dynamic `import()`s in client components. + // Promises passed to client were already awaited above (assuming that they came from cached functions) + (0, _trackmoduleloadingexternal.trackPendingModules)(cacheSignal); + await cacheSignal.cacheReady(); + initialClientReactController.abort(); + } + if (renderOpts.renderResumeDataCache) { + // Swap to the warmed cache so the final render uses entries produced during warmup. + renderResumeDataCache = (0, _resumedatacache.createRenderResumeDataCache)(prerenderResumeDataCache); + } + const finalServerReactController = new AbortController(); + const finalServerRenderController = new AbortController(); + const varyParamsAccumulator = (0, _varyparams.createResponseVaryParamsAccumulator)(); + const finalServerPayloadPrerenderStore = { + type: 'prerender', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + // While this render signal isn't going to be used to abort a React render while getting the RSC payload + // various request data APIs bind to this controller to reject after completion. + renderSignal: finalServerRenderController.signal, + // When we generate the RSC payload we might abort this controller due to sync IO + // but we don't actually care about sync IO in this phase so we use a throw away controller + // that isn't connected to anything + controller: new AbortController(), + // All caches we could read must already be filled so no tracking is necessary + cacheSignal: null, + dynamicTracking: null, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + varyParamsAccumulator + }; + const finalAttemptRSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(finalServerPayloadPrerenderStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404 + }); + let staleTimeIterable; + if (cachedNavigations) { + staleTimeIterable = new _staletime.StaleTimeIterable(); + finalAttemptRSCPayload.s = staleTimeIterable; + } + const serverDynamicTracking = (0, _dynamicrendering.createDynamicTrackingState)(isDebugDynamicAccesses); + let serverIsDynamic = false; + const finalServerPrerenderStore = prerenderStore = { + type: 'prerender', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + renderSignal: finalServerRenderController.signal, + controller: finalServerReactController, + // All caches we could read must already be filled so no tracking is necessary + cacheSignal: null, + dynamicTracking: serverDynamicTracking, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + varyParamsAccumulator + }; + if (staleTimeIterable !== undefined) { + (0, _staletime.trackStaleTime)(finalServerPrerenderStore, staleTimeIterable, selectStaleTime); + } + let prerenderIsPending = true; + const finalRSCPrerenderOptions = { + filterStackFrame, + onError: (err)=>{ + return serverComponentsErrorHandler(err); + }, + signal: finalServerReactController.signal + }; + const finalRSCAbortCallback = async ()=>{ + // Now that the prerendering is complete, we know the final stale + // time and vary params. Close the stale time iterable and resolve + // the vary params thenable so Flight can serialize their values + // into the stream. The timing here is important: both were + // included in the Flight payload, but they can only be serialized + // at the very end, after all the components have finished. + // + // We resolve these directly here instead of reading from the work + // unit store because this callback runs in a separate task (via + // setTimeout) and may not have access to the async storage context. + const pendingFinishes = [ + (0, _varyparams.finishAccumulatingVaryParams)(varyParamsAccumulator) + ]; + if (staleTimeIterable !== undefined) { + pendingFinishes.push((0, _staletime.finishStaleTimeTracking)(staleTimeIterable)); + } + await Promise.all(pendingFinishes); + if (finalServerReactController.signal.aborted) { + // If the server controller is already aborted we must have called something + // that required aborting the prerender synchronously such as with new Date() + serverIsDynamic = true; + return; + } + if (prerenderIsPending) { + // If prerenderIsPending then we have blocked for longer than a Task and we assume + // there is something unfinished. + serverIsDynamic = true; + } + finalServerReactController.abort(); + }; + const finalRSCPrerenderFn = async ()=>{ + const pendingPrerenderResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(// The store to scope + finalServerPrerenderStore, // The function to run + (0, _streamops.getServerPrerender)(ComponentMod), // ... the arguments for the function to run + finalAttemptRSCPayload, clientModules, finalRSCPrerenderOptions); + // The listener to abort our own render controller must be added + // after React has added its listener, to ensure that pending I/O + // is not aborted/rejected too early. + finalServerReactController.signal.addEventListener('abort', ()=>{ + finalServerRenderController.abort(); + }, { + once: true + }); + const prerenderResult = await pendingPrerenderResult; + prerenderIsPending = false; + return prerenderResult; + }; + const reactServerResult = reactServerPrerenderResult = await (0, _apprenderprerenderutils.createReactServerPrerenderResult)((0, _apprenderrenderutils.runInSequentialTasks)(finalRSCPrerenderFn, finalRSCAbortCallback)); + const clientDynamicTracking = (0, _dynamicrendering.createDynamicTrackingState)(isDebugDynamicAccesses); + const finalClientReactController = new AbortController(); + const finalClientRenderController = new AbortController(); + const finalClientPrerenderStore = { + type: 'prerender-client', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + renderSignal: finalClientRenderController.signal, + controller: finalClientReactController, + // No APIs require a cacheSignal through the workUnitStore during the HTML prerender + cacheSignal: null, + dynamicTracking: clientDynamicTracking, + allowEmptyStaticShell, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache, + renderResumeDataCache, + hmrRefreshHash: undefined, + // Client prerenders don't track server param access + varyParamsAccumulator: null + }; + let dynamicValidation = (0, _dynamicrendering.createDynamicValidationState)(); + const finalClientOnHeaders = (0, _streamops.createOnHeadersCallback)(appendHeader); + let { prelude: unprocessedPrelude, postponed } = await (0, _apprenderrenderutils.runInSequentialTasks)(()=>{ + const pendingFinalClientResult = _workunitasyncstorageexternal.workUnitAsyncStorage.run(finalClientPrerenderStore, _streamops.getClientPrerender, // eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: reactServerResult.asUnclosingStream(), + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + signal: finalClientReactController.signal, + onError: (err, errorInfo)=>{ + if ((0, _dynamicrendering.isPrerenderInterruptedError)(err) || finalClientReactController.signal.aborted) { + const componentStack = errorInfo.componentStack; + if (typeof componentStack === 'string') { + (0, _dynamicrendering.trackAllowedDynamicAccess)(workStore, componentStack, dynamicValidation, clientDynamicTracking); + } + return; + } + return htmlRendererErrorHandler(err, errorInfo); + }, + onHeaders: finalClientOnHeaders, + maxHeadersLength: reactMaxHeadersLength, + bootstrapScripts: [ + bootstrapScript + ] + }); + // The listener to abort our own render controller must be added + // after React has added its listener, to ensure that pending I/O is + // not aborted/rejected too early. + finalClientReactController.signal.addEventListener('abort', ()=>{ + finalClientRenderController.abort(); + }, { + once: true + }); + return pendingFinalClientResult; + }, ()=>{ + finalClientReactController.abort(); + }); + const { prelude, preludeIsEmpty } = await (0, _streamops.processPrelude)(unprocessedPrelude); + // If we've disabled throwing on empty static shell, then we don't need to + // track any dynamic access that occurs above the suspense boundary because + // we'll do so in the route shell. + if (!allowEmptyStaticShell) { + (0, _dynamicrendering.throwIfDisallowedDynamic)(workStore, preludeIsEmpty ? _dynamicrendering.PreludeState.Empty : _dynamicrendering.PreludeState.Full, dynamicValidation, serverDynamicTracking); + } + const getServerInsertedHTML = (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: allCapturedErrors, + basePath, + tracingMetadata: tracingMetadata + }); + metadata.flightData = await (0, _streamops.streamToBuffer)(cachedNavigations ? prependIsPartialByte(reactServerResult.asStream(), serverIsDynamic) : reactServerResult.asStream()); + // collectSegmentData needs the raw flight data without the marker byte. + const flightData = cachedNavigations ? metadata.flightData.subarray(1) : metadata.flightData; + await collectSegmentData(flightData, finalServerPrerenderStore, ComponentMod, renderOpts, ctx.pagePath, metadata); + if (serverIsDynamic) { + // Dynamic case + // We will always need to perform a "resume" render of some kind when this route is accessed + // because the RSC data itself is dynamic. We determine if there are any HTML holes or not + // but generally this is a "partial" prerender in that there will be a per-request compute + // concatenated to the static shell. + if (postponed != null) { + // Dynamic HTML case + metadata.postponed = await (0, _postponedstate.getDynamicHTMLPostponedState)(postponed, preludeIsEmpty ? _postponedstate.DynamicHTMLPreludeState.Empty : _postponedstate.DynamicHTMLPreludeState.Full, fallbackRouteParams, prerenderResumeDataCache, cacheComponents); + } else { + // Dynamic Data case + metadata.postponed = await (0, _postponedstate.getDynamicDataPostponedState)(prerenderResumeDataCache, cacheComponents); + } + reactServerResult.consume(); + const continueDynamicPrerenderOpts = { + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }; + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: await (0, _streamops.continueDynamicPrerender)(prelude, continueDynamicPrerenderOpts), + dynamicAccess: (0, _dynamicrendering.consumeDynamicAccess)(serverDynamicTracking, clientDynamicTracking), + // TODO: Should this include the SSR pass? + collectedRevalidate: finalServerPrerenderStore.revalidate, + collectedExpire: finalServerPrerenderStore.expire, + collectedStale: selectStaleTime(finalServerPrerenderStore.stale), + collectedTags: finalServerPrerenderStore.tags, + renderResumeDataCache: (0, _resumedatacache.createRenderResumeDataCache)(prerenderResumeDataCache) + }; + } else { + // Static case + // We will not perform resumption per request. The result can be served statically to the requestor + // and if there was anything dynamic it will only be rendered in the browser. + if (workStore.forceDynamic) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E598", + enumerable: false, + configurable: true + }); + } + let htmlStream = prelude; + if (postponed != null) { + // We postponed but nothing dynamic was used. We resume the render now and immediately abort it + // so we can set all the postponed boundaries to client render mode before we store the HTML response + const foreverStream = (0, _streamops.createPendingStream)(); + const resumePrelude = await (0, _streamops.resumeAndAbort)(// eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: foreverStream, + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: ()=>{}, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), JSON.parse(JSON.stringify(postponed)), { + signal: (0, _dynamicrendering.createRenderInBrowserAbortSignal)(), + onError: htmlRendererErrorHandler, + nonce + }); + // First we write everything from the prerender, then we write everything from the aborted resume render + htmlStream = (0, _streamops.chainStreams)(prelude, resumePrelude); + } + let finalStream; + const hasFallbackRouteParams = fallbackRouteParams && fallbackRouteParams.size > 0; + if (hasFallbackRouteParams) { + // This is a "static fallback" prerender: although the page didn't + // access any runtime params in a Server Component, it may have + // accessed a runtime param in a client segment. + // + // TODO: If there were no client segments, we can use the fully static + // path instead. + // + // Rather than use a dynamic server resume to fill in the params, + // we can rely on the client to parse the params from the URL and use + // that to hydrate the page. + // + // Send an empty InitialRSCPayload to the server component renderer + // The data will be fetched by the client instead. + // TODO: In the future, rather than defer the entire hydration payload + // to be fetched by the client, we should only defer the client + // segments, since those are the only ones whose data is not complete. + const emptyReactServerResult = await (0, _apprenderprerenderutils.createReactServerPrerenderResultFromRender)((0, _streamops.renderToFlightStream)(ComponentMod, [], clientModules, { + filterStackFrame, + onError: serverComponentsErrorHandler + })); + finalStream = await (0, _streamops.continueStaticFallbackPrerender)(htmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(emptyReactServerResult.consumeAsStream(), nonce, formState), + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }); + } else { + // Normal static prerender case, no fallback param handling needed + finalStream = await (0, _streamops.continueStaticPrerender)(htmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(reactServerResult.consumeAsStream(), nonce, formState), + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }); + } + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: finalStream, + dynamicAccess: (0, _dynamicrendering.consumeDynamicAccess)(serverDynamicTracking, clientDynamicTracking), + // TODO: Should this include the SSR pass? + collectedRevalidate: finalServerPrerenderStore.revalidate, + collectedExpire: finalServerPrerenderStore.expire, + collectedStale: selectStaleTime(finalServerPrerenderStore.stale), + collectedTags: finalServerPrerenderStore.tags, + renderResumeDataCache: (0, _resumedatacache.createRenderResumeDataCache)(prerenderResumeDataCache) + }; + } + } else if (experimental.isRoutePPREnabled) { + // We're statically generating with PPR and need to do dynamic tracking + let dynamicTracking = (0, _dynamicrendering.createDynamicTrackingState)(isDebugDynamicAccesses); + const prerenderResumeDataCache = (0, _resumedatacache.createPrerenderResumeDataCache)(); + const reactServerPrerenderStore = prerenderStore = { + type: 'prerender-ppr', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + dynamicTracking, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache + }; + const RSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(reactServerPrerenderStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404 + }); + let reactServerResult; + reactServerResult = reactServerPrerenderResult = await (0, _apprenderprerenderutils.createReactServerPrerenderResultFromRender)(_workunitasyncstorageexternal.workUnitAsyncStorage.run(reactServerPrerenderStore, _streamops.renderToFlightStream, ComponentMod, RSCPayload, clientModules, { + filterStackFrame, + onError: serverComponentsErrorHandler + })); + const ssrPrerenderStore = { + type: 'prerender-ppr', + phase: 'render', + rootParams, + fallbackRouteParams, + implicitTags, + dynamicTracking, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ], + prerenderResumeDataCache + }; + const pprOnHeaders = (0, _streamops.createOnHeadersCallback)(appendHeader); + const { prelude: unprocessedPrelude, postponed } = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(ssrPrerenderStore, _streamops.getClientPrerender, // eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: reactServerResult.asUnclosingStream(), + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + onError: htmlRendererErrorHandler, + onHeaders: pprOnHeaders, + maxHeadersLength: reactMaxHeadersLength, + bootstrapScripts: [ + bootstrapScript + ] + }); + const getServerInsertedHTML = (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: allCapturedErrors, + basePath, + tracingMetadata: tracingMetadata + }); + // After awaiting here we've waited for the entire RSC render to complete. Crucially this means + // that when we detect whether we've used dynamic APIs below we know we'll have picked up even + // parts of the React Server render that might not be used in the SSR render. + const flightData = await (0, _streamops.streamToBuffer)(reactServerResult.asStream()); + if (shouldGenerateStaticFlightData(workStore)) { + metadata.flightData = flightData; + await collectSegmentData(flightData, ssrPrerenderStore, ComponentMod, renderOpts, ctx.pagePath, metadata); + } + const { prelude, preludeIsEmpty } = await (0, _streamops.processPrelude)(unprocessedPrelude); + /** + * When prerendering there are three outcomes to consider + * + * Dynamic HTML: The prerender has dynamic holes (caused by using Next.js Dynamic Rendering APIs) + * We will need to resume this result when requests are handled and we don't include + * any server inserted HTML or inlined flight data in the static HTML + * + * Dynamic Data: The prerender has no dynamic holes but dynamic APIs were used. We will not + * resume this render when requests are handled but we will generate new inlined + * flight data since it is dynamic and differences may end up reconciling on the client + * + * Static: The prerender has no dynamic holes and no dynamic APIs were used. We statically encode + * all server inserted HTML and flight data + */ // First we check if we have any dynamic holes in our HTML prerender + if ((0, _dynamicrendering.accessedDynamicData)(dynamicTracking.dynamicAccesses)) { + if (postponed != null) { + // Dynamic HTML case. + metadata.postponed = await (0, _postponedstate.getDynamicHTMLPostponedState)(postponed, preludeIsEmpty ? _postponedstate.DynamicHTMLPreludeState.Empty : _postponedstate.DynamicHTMLPreludeState.Full, fallbackRouteParams, prerenderResumeDataCache, cacheComponents); + } else { + // Dynamic Data case. + metadata.postponed = await (0, _postponedstate.getDynamicDataPostponedState)(prerenderResumeDataCache, cacheComponents); + } + // Regardless of whether this is the Dynamic HTML or Dynamic Data case we need to ensure we include + // server inserted html in the static response because the html that is part of the prerender may depend on it + // It is possible in the set of stream transforms for Dynamic HTML vs Dynamic Data may differ but currently both states + // require the same set so we unify the code path here + reactServerResult.consume(); + const pprDynamicOpts = { + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }; + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: await (0, _streamops.continueDynamicPrerender)(prelude, pprDynamicOpts), + dynamicAccess: dynamicTracking.dynamicAccesses, + // TODO: Should this include the SSR pass? + collectedRevalidate: reactServerPrerenderStore.revalidate, + collectedExpire: reactServerPrerenderStore.expire, + collectedStale: selectStaleTime(reactServerPrerenderStore.stale), + collectedTags: reactServerPrerenderStore.tags + }; + } else if (fallbackRouteParams && fallbackRouteParams.size > 0) { + // Rendering the fallback case. + metadata.postponed = await (0, _postponedstate.getDynamicDataPostponedState)(prerenderResumeDataCache, cacheComponents); + const pprFallbackDynamicOpts = { + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }; + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: await (0, _streamops.continueDynamicPrerender)(prelude, pprFallbackDynamicOpts), + dynamicAccess: dynamicTracking.dynamicAccesses, + // TODO: Should this include the SSR pass? + collectedRevalidate: reactServerPrerenderStore.revalidate, + collectedExpire: reactServerPrerenderStore.expire, + collectedStale: selectStaleTime(reactServerPrerenderStore.stale), + collectedTags: reactServerPrerenderStore.tags + }; + } else { + // Static case + // We still have not used any dynamic APIs. At this point we can produce an entirely static prerender response + if (workStore.forceDynamic) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError('Invariant: a Page with `dynamic = "force-dynamic"` did not trigger the dynamic pathway. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E598", + enumerable: false, + configurable: true + }); + } + let htmlStream = prelude; + if (postponed != null) { + // We postponed but nothing dynamic was used. We resume the render now and immediately abort it + // so we can set all the postponed boundaries to client render mode before we store the HTML response + const foreverStream = (0, _streamops.createPendingStream)(); + const resumePrelude = await (0, _streamops.resumeAndAbort)(// eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: foreverStream, + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: ()=>{}, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), JSON.parse(JSON.stringify(postponed)), { + signal: (0, _dynamicrendering.createRenderInBrowserAbortSignal)(), + onError: htmlRendererErrorHandler, + nonce + }); + // First we write everything from the prerender, then we write everything from the aborted resume render + htmlStream = (0, _streamops.chainStreams)(prelude, resumePrelude); + } + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: await (0, _streamops.continueStaticPrerender)(htmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(reactServerResult.consumeAsStream(), nonce, formState), + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }), + dynamicAccess: dynamicTracking.dynamicAccesses, + // TODO: Should this include the SSR pass? + collectedRevalidate: reactServerPrerenderStore.revalidate, + collectedExpire: reactServerPrerenderStore.expire, + collectedStale: selectStaleTime(reactServerPrerenderStore.stale), + collectedTags: reactServerPrerenderStore.tags + }; + } + } else { + const prerenderLegacyStore = prerenderStore = { + type: 'prerender-legacy', + phase: 'render', + rootParams, + implicitTags, + revalidate: _constants1.INFINITE_CACHE, + expire: _constants1.INFINITE_CACHE, + stale: _constants1.INFINITE_CACHE, + tags: [ + ...implicitTags.tags + ] + }; + // This is a regular static generation. We don't do dynamic tracking because we rely on + // the old-school dynamic error handling to bail out of static generation + const RSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderLegacyStore, getRSCPayload, tree, ctx, { + is404: res.statusCode === 404 + }); + let reactServerResult; + reactServerResult = reactServerPrerenderResult = await (0, _apprenderprerenderutils.createReactServerPrerenderResultFromRender)(_workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderLegacyStore, _streamops.renderToFlightStream, ComponentMod, RSCPayload, clientModules, { + filterStackFrame, + onError: serverComponentsErrorHandler + })); + const { stream: htmlStream } = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderLegacyStore, _streamops.renderToFizzStream, // eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + reactServerStream: reactServerResult.asUnclosingStream(), + reactDebugStream: undefined, + debugEndTime: undefined, + preinitScripts: preinitScripts, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + nonce: nonce, + images: ctx.renderOpts.images + }), { + onError: htmlRendererErrorHandler, + nonce, + bootstrapScripts: [ + bootstrapScript + ] + }); + if (shouldGenerateStaticFlightData(workStore)) { + const flightData = await (0, _streamops.streamToBuffer)(reactServerResult.asStream()); + metadata.flightData = flightData; + await collectSegmentData(flightData, prerenderLegacyStore, ComponentMod, renderOpts, ctx.pagePath, metadata); + } + const getServerInsertedHTML = (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: allCapturedErrors, + basePath, + tracingMetadata: tracingMetadata + }); + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: await (0, _streamops.continueFizzStream)(htmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(reactServerResult.consumeAsStream(), nonce, formState), + isStaticGeneration: true, + getServerInsertedHTML, + getServerInsertedMetadata, + deploymentId: ctx.sharedContext.deploymentId + }), + // TODO: Should this include the SSR pass? + collectedRevalidate: prerenderLegacyStore.revalidate, + collectedExpire: prerenderLegacyStore.expire, + collectedStale: selectStaleTime(prerenderLegacyStore.stale), + collectedTags: prerenderLegacyStore.tags + }; + } + } catch (err) { + if ((0, _staticgenerationbailout.isStaticGenBailoutError)(err) || typeof err === 'object' && err !== null && 'message' in err && typeof err.message === 'string' && err.message.includes('https://nextjs.org/docs/advanced-features/static-html-export')) { + // Ensure that "next dev" prints the red error overlay + throw err; + } + // If this is a static generation error, we need to throw it so that it + // can be handled by the caller if we're in static generation mode. + if ((0, _hooksservercontext.isDynamicServerError)(err)) { + throw err; + } + // If a bailout made it to this point, it means it wasn't wrapped inside + // a suspense boundary. + const shouldBailoutToCSR = (0, _bailouttocsr.isBailoutToCSRError)(err); + if (shouldBailoutToCSR) { + const stack = (0, _formatservererror.getStackWithoutErrorMessage)(err); + (0, _log.error)(`${err.reason} should be wrapped in a suspense boundary at page "${pagePath}". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout\n${stack}`); + throw err; + } + // If we errored when we did not have an RSC stream to read from. This is + // not just a render error, we need to throw early. + if (reactServerPrerenderResult === null) { + throw err; + } + let errorType; + if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(err)) { + res.statusCode = (0, _httpaccessfallback.getAccessFallbackHTTPStatus)(err); + metadata.statusCode = res.statusCode; + errorType = (0, _httpaccessfallback.getAccessFallbackErrorTypeByStatus)(res.statusCode); + } else if ((0, _redirecterror.isRedirectError)(err)) { + errorType = 'redirect'; + res.statusCode = (0, _redirect.getRedirectStatusCodeFromError)(err); + metadata.statusCode = res.statusCode; + const redirectUrl = (0, _addpathprefix.addPathPrefix)((0, _redirect.getURLFromRedirectError)(err), basePath); + setHeader('location', redirectUrl); + } else if (!shouldBailoutToCSR) { + res.statusCode = 500; + metadata.statusCode = res.statusCode; + } + const [errorPreinitScripts, errorBootstrapScript] = (0, _requiredscripts.getRequiredScripts)(buildManifest, assetPrefix, crossOrigin, subresourceIntegrityManifest, (0, _getassetquerystring.getAssetQueryString)(ctx, false), nonce, '/_not-found/page'); + const prerenderLegacyStore = prerenderStore = { + type: 'prerender-legacy', + phase: 'render', + rootParams, + implicitTags: implicitTags, + revalidate: typeof (prerenderStore == null ? void 0 : prerenderStore.revalidate) !== 'undefined' ? prerenderStore.revalidate : _constants1.INFINITE_CACHE, + expire: typeof (prerenderStore == null ? void 0 : prerenderStore.expire) !== 'undefined' ? prerenderStore.expire : _constants1.INFINITE_CACHE, + stale: typeof (prerenderStore == null ? void 0 : prerenderStore.stale) !== 'undefined' ? prerenderStore.stale : _constants1.INFINITE_CACHE, + tags: [ + ...(prerenderStore == null ? void 0 : prerenderStore.tags) || implicitTags.tags + ] + }; + const errorRSCPayload = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderLegacyStore, getErrorRSCPayload, tree, ctx, reactServerErrorsByDigest.has(err.digest) ? undefined : err, errorType); + const errorServerStream = _workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderLegacyStore, _streamops.renderToFlightStream, ComponentMod, errorRSCPayload, clientModules, { + filterStackFrame, + onError: serverComponentsErrorHandler + }); + try { + const { stream: errorHtmlStream } = await _workunitasyncstorageexternal.workUnitAsyncStorage.run(prerenderLegacyStore, _streamops.renderToFizzStream, // eslint-disable-next-line @next/internal/no-ambiguous-jsx + /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorApp, { + reactServerStream: errorServerStream, + ServerInsertedHTMLProvider: ServerInsertedHTMLProvider, + preinitScripts: errorPreinitScripts, + nonce: nonce, + images: ctx.renderOpts.images + }), { + nonce, + bootstrapScripts: [ + errorBootstrapScript + ], + formState + }); + if (shouldGenerateStaticFlightData(workStore)) { + const flightData = await (0, _streamops.streamToBuffer)(reactServerPrerenderResult.asStream()); + metadata.flightData = flightData; + await collectSegmentData(flightData, prerenderLegacyStore, ComponentMod, renderOpts, ctx.pagePath, metadata); + } + // This is intentionally using the readable datastream from the main + // render rather than the flight data from the error page render + const flightStream = reactServerPrerenderResult.consumeAsStream(); + return { + digestErrorsMap: reactServerErrorsByDigest, + ssrErrors: allCapturedErrors, + stream: await (0, _streamops.continueFizzStream)(errorHtmlStream, { + inlinedDataStream: (0, _streamops.createInlinedDataStream)(flightStream, nonce, formState), + isStaticGeneration: true, + getServerInsertedHTML: (0, _makegetserverinsertedhtml.makeGetServerInsertedHTML)({ + polyfills, + renderServerInsertedHTML, + serverCapturedErrors: [], + basePath, + tracingMetadata: tracingMetadata + }), + getServerInsertedMetadata, + validateRootLayout: !!process.env.__NEXT_DEV_SERVER, + deploymentId: ctx.sharedContext.deploymentId + }), + dynamicAccess: null, + collectedRevalidate: prerenderStore !== null ? prerenderStore.revalidate : _constants1.INFINITE_CACHE, + collectedExpire: prerenderStore !== null ? prerenderStore.expire : _constants1.INFINITE_CACHE, + collectedStale: selectStaleTime(prerenderStore !== null ? prerenderStore.stale : _constants1.INFINITE_CACHE), + collectedTags: prerenderStore !== null ? prerenderStore.tags : null + }; + } catch (finalErr) { + if (process.env.__NEXT_DEV_SERVER && (0, _httpaccessfallback.isHTTPAccessFallbackError)(finalErr)) { + const { bailOnRootNotFound } = require('../../client/components/dev-root-http-access-fallback-boundary'); + bailOnRootNotFound(); + } + throw finalErr; + } + } +} +const getGlobalErrorStyles = async (tree, ctx)=>{ + const globalErrorModule = (0, _parseloadertree.parseLoaderTree)(tree).modules['global-error']; + if (!globalErrorModule) { + throw Object.defineProperty(new Error('Invariant: global-error module is required but not found in loader tree'), "__NEXT_ERROR_CODE", { + value: "E983", + enumerable: false, + configurable: true + }); + } + const { componentMod: { createElement } } = ctx; + // Get the GlobalError component and styles from the loader tree + const [GlobalErrorComponent, styles] = await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: globalErrorModule[1], + getComponent: globalErrorModule[0], + injectedCSS: new Set(), + injectedJS: new Set() + }); + let globalErrorStyles = styles; + if (process.env.__NEXT_DEV_SERVER) { + const dir = (process.env.NEXT_RUNTIME === 'edge' ? process.env.__NEXT_EDGE_PROJECT_DIR : ctx.renderOpts.dir) || ''; + const globalErrorModulePath = (0, _segmentexplorerpath.normalizeConventionFilePath)(dir, globalErrorModule[1]); + if (globalErrorModulePath) { + const SegmentViewNode = ctx.componentMod.SegmentViewNode; + globalErrorStyles = // This will be rendered next to GlobalError component under ErrorBoundary, + // it requires a key to avoid React warning about duplicate keys. + createElement(SegmentViewNode, { + key: 'ge-svn', + type: 'global-error', + pagePath: globalErrorModulePath + }, globalErrorStyles); + } + } + return { + GlobalError: GlobalErrorComponent, + styles: globalErrorStyles + }; +}; +async function collectSegmentData(fullPageDataBuffer, prerenderStore, ComponentMod, renderOpts, pagePath, metadata) { + // Per-segment prefetch data + // + // All of the segments for a page are generated simultaneously, including + // during revalidations. This is to ensure consistency, because it's + // possible for a mismatch between a layout and page segment can cause the + // client to error during rendering. We want to preserve the ability of the + // client to recover from such a mismatch by re-requesting all the segments + // to get a consistent view of the page. + // + // For performance, we reuse the Flight output that was created when + // generating the initial page HTML. The Flight stream for the whole page is + // decomposed into a separate stream per segment. + const { clientModules, edgeRscModuleMapping, rscModuleMapping } = (0, _manifestssingleton.getClientReferenceManifest)(); + // Manifest passed to the Flight client for reading the full-page Flight + // stream. Based off similar code in use-cache-wrapper.ts. + const isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge'; + const serverConsumerManifest = { + // moduleLoading must be null because we don't want to trigger preloads of ClientReferences + // to be added to the consumer. Instead, we'll wait for any ClientReference to be emitted + // which themselves will handle the preloading. + moduleLoading: null, + moduleMap: isEdgeRuntime ? edgeRscModuleMapping : rscModuleMapping, + serverModuleMap: (0, _manifestssingleton.getServerModuleMap)() + }; + const selectStaleTime = (0, _staletime.createSelectStaleTime)(renderOpts.experimental); + const staleTime = selectStaleTime(prerenderStore.stale); + // Resolve prefetch hints. At runtime (next start / ISR), the precomputed + // hints are already loaded from the prefetch-hints.json manifest. During + // build, compute them by measuring segment gzip sizes and write them to + // metadata so the build pipeline can persist them to the manifest. + let hints; + const prefetchInlining = renderOpts.experimental.prefetchInlining; + if (!prefetchInlining) { + hints = null; + } else if (renderOpts.isBuildTimePrerendering) { + // Build time: compute fresh hints and store in metadata for the manifest. + hints = await ComponentMod.collectPrefetchHints(fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, prefetchInlining.maxSize, prefetchInlining.maxBundleSize); + metadata.prefetchHints = hints; + } else { + var _renderOpts_prefetchHints; + // Runtime: use hints from the manifest. Never compute fresh hints + // during ISR/revalidation. + hints = ((_renderOpts_prefetchHints = renderOpts.prefetchHints) == null ? void 0 : _renderOpts_prefetchHints[pagePath]) ?? null; + } + // Pass the resolved hints so collectSegmentData can union them into + // the TreePrefetch. During the initial build the FlightRouterState in + // the buffer doesn't have inlining hints yet (they were just computed + // above), so we need to merge them in here. At runtime/ISR the hints + // are already embedded in the FlightRouterState, so this is null. + metadata.segmentData = await ComponentMod.collectSegmentData(renderOpts.cacheComponents, fullPageDataBuffer, staleTime, clientModules, serverConsumerManifest, Boolean(renderOpts.experimental.prefetchInlining), hints); +} +function isBypassingCachesInDev(requestStore) { + return !!process.env.__NEXT_DEV_SERVER && requestStore.headers.get('cache-control') === 'no-cache'; +} +function WarnForBypassCachesInDev({ route }) { + (0, _warnonce.warnOnce)(`Route ${route} is rendering with server caches disabled. For this navigation, Component Metadata in React DevTools will not accurately reflect what is statically prerenderable and runtime prefetchable. See more info here: https://nextjs.org/docs/messages/cache-bypass-in-dev`); + return null; +} +function nodeStreamFromReadableStream(stream) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('nodeStreamFromReadableStream cannot be used in the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E944", + enumerable: false, + configurable: true + }); + } else { + const reader = stream.getReader(); + const { Readable } = require('node:stream'); + return new Readable({ + read () { + reader.read().then(({ done, value })=>{ + if (done) { + this.push(null); + } else { + this.push(value); + } + }).catch((err)=>this.destroy(err)); + } + }); + } +} + +//# sourceMappingURL=app-render.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/async-local-storage.js b/cli/app/node_modules/next/dist/server/app-render/async-local-storage.js new file mode 100644 index 00000000000..c069df71db0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/async-local-storage.js @@ -0,0 +1,76 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + bindSnapshot: null, + createAsyncLocalStorage: null, + createSnapshot: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + bindSnapshot: function() { + return bindSnapshot; + }, + createAsyncLocalStorage: function() { + return createAsyncLocalStorage; + }, + createSnapshot: function() { + return createSnapshot; + } +}); +const sharedAsyncLocalStorageNotAvailableError = Object.defineProperty(new Error('Invariant: AsyncLocalStorage accessed in runtime where it is not available'), "__NEXT_ERROR_CODE", { + value: "E504", + enumerable: false, + configurable: true +}); +class FakeAsyncLocalStorage { + disable() { + throw sharedAsyncLocalStorageNotAvailableError; + } + getStore() { + // This fake implementation of AsyncLocalStorage always returns `undefined`. + return undefined; + } + run() { + throw sharedAsyncLocalStorageNotAvailableError; + } + exit() { + throw sharedAsyncLocalStorageNotAvailableError; + } + enterWith() { + throw sharedAsyncLocalStorageNotAvailableError; + } + static bind(fn) { + return fn; + } +} +const maybeGlobalAsyncLocalStorage = typeof globalThis !== 'undefined' && globalThis.AsyncLocalStorage; +function createAsyncLocalStorage() { + if (maybeGlobalAsyncLocalStorage) { + return new maybeGlobalAsyncLocalStorage(); + } + return new FakeAsyncLocalStorage(); +} +function bindSnapshot(// WARNING: Don't pass a named function to this argument! See: https://github.com/facebook/react/pull/34911 +fn) { + if (maybeGlobalAsyncLocalStorage) { + return maybeGlobalAsyncLocalStorage.bind(fn); + } + return FakeAsyncLocalStorage.bind(fn); +} +function createSnapshot() { + if (maybeGlobalAsyncLocalStorage) { + return maybeGlobalAsyncLocalStorage.snapshot(); + } + return function(fn, ...args) { + return fn(...args); + }; +} + +//# sourceMappingURL=async-local-storage.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/cache-signal.js b/cli/app/node_modules/next/dist/server/app-render/cache-signal.js new file mode 100644 index 00000000000..2c453189a38 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/cache-signal.js @@ -0,0 +1,181 @@ +/** + * This class is used to detect when all cache reads for a given render are settled. + * We do this to allow for cache warming the prerender without having to continue rendering + * the remainder of the page. This feature is really only useful when the cacheComponents flag is on + * and should only be used in codepaths gated with this feature. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CacheSignal", { + enumerable: true, + get: function() { + return CacheSignal; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +class CacheSignal { + constructor(){ + this.count = 0; + this.earlyListeners = []; + this.listeners = []; + this.tickPending = false; + this.pendingTimeoutCleanup = null; + this.subscribedSignals = null; + this.invokeListenersIfNoPendingReads = ()=>{ + this.pendingTimeoutCleanup = null; + if (this.count === 0) { + for(let i = 0; i < this.listeners.length; i++){ + this.listeners[i](); + } + this.listeners.length = 0; + } + }; + if (process.env.NEXT_RUNTIME === 'edge') { + // we rely on `process.nextTick`, which is not supported in edge + throw Object.defineProperty(new _invarianterror.InvariantError('CacheSignal cannot be used in the edge runtime, because `cacheComponents` does not support it.'), "__NEXT_ERROR_CODE", { + value: "E728", + enumerable: false, + configurable: true + }); + } + } + noMorePendingCaches() { + if (!this.tickPending) { + this.tickPending = true; + queueMicrotask(()=>process.nextTick(()=>{ + this.tickPending = false; + if (this.count === 0) { + for(let i = 0; i < this.earlyListeners.length; i++){ + this.earlyListeners[i](); + } + this.earlyListeners.length = 0; + } + })); + } + // After a cache resolves, React will schedule new rendering work: + // - in a microtask (when prerendering) + // - in setImmediate (when rendering) + // To cover both of these, we have to make sure that we let immediates execute at least once after each cache resolved. + // We don't know when the pending timeout was scheduled (and if it's about to resolve), + // so by scheduling a new one, we can be sure that we'll go around the event loop at least once. + if (this.pendingTimeoutCleanup) { + // We cancel the timeout in beginRead, so this shouldn't ever be active here, + // but we still cancel it defensively. + this.pendingTimeoutCleanup(); + } + this.pendingTimeoutCleanup = scheduleImmediateAndTimeoutWithCleanup(this.invokeListenersIfNoPendingReads); + } + /** + * This promise waits until there are no more in progress cache reads but no later. + * This allows for adding more cache reads after to delay cacheReady. + */ inputReady() { + return new Promise((resolve)=>{ + this.earlyListeners.push(resolve); + if (this.count === 0) { + this.noMorePendingCaches(); + } + }); + } + /** + * If there are inflight cache reads this Promise can resolve in a microtask however + * if there are no inflight cache reads then we wait at least one task to allow initial + * cache reads to be initiated. + */ cacheReady() { + return new Promise((resolve)=>{ + this.listeners.push(resolve); + if (this.count === 0) { + this.noMorePendingCaches(); + } + }); + } + beginRead() { + this.count++; + // There's a new pending cache, so if there's a `noMorePendingCaches` timeout running, + // we should cancel it. + if (this.pendingTimeoutCleanup) { + this.pendingTimeoutCleanup(); + this.pendingTimeoutCleanup = null; + } + if (this.subscribedSignals !== null) { + for (const subscriber of this.subscribedSignals){ + subscriber.beginRead(); + } + } + } + endRead() { + if (this.count === 0) { + throw Object.defineProperty(new _invarianterror.InvariantError('CacheSignal got more endRead() calls than beginRead() calls'), "__NEXT_ERROR_CODE", { + value: "E678", + enumerable: false, + configurable: true + }); + } + // If this is the last read we need to wait a task before we can claim the cache is settled. + // The cache read will likely ping a Server Component which can read from the cache again and this + // will play out in a microtask so we need to only resolve pending listeners if we're still at 0 + // after at least one task. + // We only want one task scheduled at a time so when we hit count 1 we don't decrement the counter immediately. + // If intervening reads happen before the scheduled task runs they will never observe count 1 preventing reentrency + this.count--; + if (this.count === 0) { + this.noMorePendingCaches(); + } + if (this.subscribedSignals !== null) { + for (const subscriber of this.subscribedSignals){ + subscriber.endRead(); + } + } + } + hasPendingReads() { + return this.count > 0; + } + trackRead(promise) { + this.beginRead(); + // `promise.finally()` still rejects, so don't use it here to avoid unhandled rejections + const onFinally = this.endRead.bind(this); + promise.then(onFinally, onFinally); + return promise; + } + subscribeToReads(subscriber) { + if (subscriber === this) { + throw Object.defineProperty(new _invarianterror.InvariantError('A CacheSignal cannot subscribe to itself'), "__NEXT_ERROR_CODE", { + value: "E679", + enumerable: false, + configurable: true + }); + } + if (this.subscribedSignals === null) { + this.subscribedSignals = new Set(); + } + this.subscribedSignals.add(subscriber); + // we'll notify the subscriber of each endRead() on this signal, + // so we need to give it a corresponding beginRead() for each read we have in flight now. + for(let i = 0; i < this.count; i++){ + subscriber.beginRead(); + } + return this.unsubscribeFromReads.bind(this, subscriber); + } + unsubscribeFromReads(subscriber) { + if (!this.subscribedSignals) { + return; + } + this.subscribedSignals.delete(subscriber); + // we don't need to set the set back to `null` if it's empty -- + // if other signals are subscribing to this one, it'll likely get more subscriptions later, + // so we'd have to allocate a fresh set again when that happens. + } +} +function scheduleImmediateAndTimeoutWithCleanup(cb) { + // If we decide to clean up the timeout, we want to remove + // either the immediate or the timeout, whichever is still pending. + let clearPending; + const immediate = setImmediate(()=>{ + const timeout = setTimeout(cb, 0); + clearPending = clearTimeout.bind(null, timeout); + }); + clearPending = clearImmediate.bind(null, immediate); + return ()=>clearPending(); +} + +//# sourceMappingURL=cache-signal.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/console-async-storage-instance.js b/cli/app/node_modules/next/dist/server/app-render/console-async-storage-instance.js new file mode 100644 index 00000000000..08cf1faafac --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/console-async-storage-instance.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "consoleAsyncStorageInstance", { + enumerable: true, + get: function() { + return consoleAsyncStorageInstance; + } +}); +const _asynclocalstorage = require("./async-local-storage"); +const consoleAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)(); + +//# sourceMappingURL=console-async-storage-instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/console-async-storage.external.js b/cli/app/node_modules/next/dist/server/app-render/console-async-storage.external.js new file mode 100644 index 00000000000..585c5297d25 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/console-async-storage.external.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "consoleAsyncStorage", { + enumerable: true, + get: function() { + return _consoleasyncstorageinstance.consoleAsyncStorageInstance; + } +}); +const _consoleasyncstorageinstance = require("./console-async-storage-instance"); + +//# sourceMappingURL=console-async-storage.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js b/cli/app/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js new file mode 100644 index 00000000000..ccfd371ca00 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/create-component-styles-and-scripts.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createComponentStylesAndScripts", { + enumerable: true, + get: function() { + return createComponentStylesAndScripts; + } +}); +const _interopdefault = require("./interop-default"); +const _getcssinlinedlinktags = require("./get-css-inlined-link-tags"); +const _getassetquerystring = require("./get-asset-query-string"); +const _encodeuripath = require("../../shared/lib/encode-uri-path"); +const _rendercssresource = require("./render-css-resource"); +async function createComponentStylesAndScripts({ filePath, getComponent, injectedCSS, injectedJS, ctx }) { + const { componentMod: { createElement } } = ctx; + const { styles: entryCssFiles, scripts: jsHrefs } = (0, _getcssinlinedlinktags.getLinkAndScriptTags)(filePath, injectedCSS, injectedJS); + const styles = (0, _rendercssresource.renderCssResource)(entryCssFiles, ctx); + const scripts = jsHrefs ? jsHrefs.map((href, index)=>createElement('script', { + src: `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(href)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`, + async: true, + key: `script-${index}` + })) : null; + const Comp = (0, _interopdefault.interopDefault)(await getComponent()); + return [ + Comp, + styles, + scripts + ]; +} + +//# sourceMappingURL=create-component-styles-and-scripts.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/create-component-tree.js b/cli/app/node_modules/next/dist/server/app-render/create-component-tree.js new file mode 100644 index 00000000000..53feae028ed --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/create-component-tree.js @@ -0,0 +1,840 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createComponentTree: null, + getRootParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createComponentTree: function() { + return createComponentTree; + }, + getRootParams: function() { + return getRootParams; + } +}); +const _clientandserverreferences = require("../../lib/client-and-server-references"); +const _appdirmodule = require("../lib/app-dir-module"); +const _interopdefault = require("./interop-default"); +const _parseloadertree = require("../../shared/lib/router/utils/parse-loader-tree"); +const _createcomponentstylesandscripts = require("./create-component-styles-and-scripts"); +const _getlayerassets = require("./get-layer-assets"); +const _hasloadingcomponentintree = require("./has-loading-component-in-tree"); +const _patchfetch = require("../lib/patch-fetch"); +const _default = require("../../client/components/builtin/default"); +const _tracer = require("../lib/trace/tracer"); +const _constants = require("../lib/trace/constants"); +const _staticgenerationbailout = require("../../client/components/static-generation-bailout"); +const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); +const _varyparams = require("./vary-params"); +const _segment = require("../../shared/lib/segment"); +const _segmentexplorerpath = require("./segment-explorer-path"); +const _stagedrendering = require("./staged-rendering"); +function createComponentTree(props) { + return (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.createComponentTree, { + spanName: 'build component tree' + }, ()=>createComponentTreeInternal(props, true)); +} +function errorMissingDefaultExport(pagePath, convention) { + const normalizedPagePath = pagePath === '/' ? '' : pagePath; + throw Object.defineProperty(new Error(`The default export is not a React Component in "${normalizedPagePath}/${convention}"`), "__NEXT_ERROR_CODE", { + value: "E45", + enumerable: false, + configurable: true + }); +} +const cacheNodeKey = 'c'; +async function createComponentTreeInternal({ loaderTree: tree, parentParams, parentOptionalCatchAllParamName, parentRuntimePrefetchable, rootLayoutIncluded, injectedCSS, injectedJS, injectedFontPreloadTags, ctx, missingSlots, preloadCallbacks, authInterrupts, MetadataOutlet }, isRoot) { + const { renderOpts: { nextConfigOutput, experimental, cacheComponents }, workStore, componentMod: { createElement, Fragment, SegmentViewNode, HTTPAccessFallbackBoundary, LayoutRouter, RenderFromTemplateContext, ClientPageRoot, ClientSegmentRoot, createServerSearchParamsForServerPage, createPrerenderSearchParamsForClientPage, createServerParamsForServerSegment, createPrerenderParamsForClientSegment, serverHooks: { DynamicServerError }, Postpone }, pagePath, getDynamicParamFromSegment, isPrefetch, query } = ctx; + const { page, conventionPath, segment, modules, parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + const { layout, template, error, loading, 'not-found': notFound, forbidden, unauthorized } = modules; + const injectedCSSWithCurrentLayout = new Set(injectedCSS); + const injectedJSWithCurrentLayout = new Set(injectedJS); + const injectedFontPreloadTagsWithCurrentLayout = new Set(injectedFontPreloadTags); + const layerAssets = (0, _getlayerassets.getLayerAssets)({ + preloadCallbacks, + ctx, + layoutOrPagePath: conventionPath, + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout, + injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout + }); + const [Template, templateStyles, templateScripts] = template ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: template[1], + getComponent: template[0], + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout + }) : [ + Fragment + ]; + const [ErrorComponent, errorStyles, errorScripts] = error ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: error[1], + getComponent: error[0], + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout + }) : []; + const [Loading, loadingStyles, loadingScripts] = loading ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: loading[1], + getComponent: loading[0], + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout + }) : []; + const isLayout = typeof layout !== 'undefined'; + const isPage = typeof page !== 'undefined'; + const { mod: layoutOrPageMod, modType } = await (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.getLayoutOrPageModule, { + hideSpan: !(isLayout || isPage), + spanName: 'resolve segment modules', + attributes: { + 'next.segment': segment + } + }, ()=>(0, _appdirmodule.getLayoutOrPageModule)(tree)); + /** + * Checks if the current segment is a root layout. + */ const rootLayoutAtThisLevel = isLayout && !rootLayoutIncluded; + /** + * Checks if the current segment or any level above it has a root layout. + */ const rootLayoutIncludedAtThisLevelOrAbove = rootLayoutIncluded || rootLayoutAtThisLevel; + const [NotFound, notFoundStyles] = notFound ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: notFound[1], + getComponent: notFound[0], + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout + }) : []; + const instantConfig = layoutOrPageMod ? layoutOrPageMod.unstable_instant : undefined; + const hasRuntimePrefetch = instantConfig && typeof instantConfig === 'object' ? instantConfig.prefetch === 'runtime' : false; + const isRuntimePrefetchable = hasRuntimePrefetch || parentRuntimePrefetchable; + const [Forbidden, forbiddenStyles] = authInterrupts && forbidden ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: forbidden[1], + getComponent: forbidden[0], + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout + }) : []; + const [Unauthorized, unauthorizedStyles] = authInterrupts && unauthorized ? await (0, _createcomponentstylesandscripts.createComponentStylesAndScripts)({ + ctx, + filePath: unauthorized[1], + getComponent: unauthorized[0], + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout + }) : []; + let dynamic = layoutOrPageMod == null ? void 0 : layoutOrPageMod.dynamic; + if (nextConfigOutput === 'export') { + if (!dynamic || dynamic === 'auto') { + dynamic = 'error'; + } else if (dynamic === 'force-dynamic') { + // force-dynamic is always incompatible with 'export'. We must interrupt the build + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Page with \`dynamic = "force-dynamic"\` couldn't be exported. \`output: "export"\` requires all pages be renderable statically because there is no runtime server to dynamically render routes in this output format. Learn more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports`), "__NEXT_ERROR_CODE", { + value: "E527", + enumerable: false, + configurable: true + }); + } + } + if (typeof dynamic === 'string') { + // the nested most config wins so we only force-static + // if it's configured above any parent that configured + // otherwise + if (dynamic === 'error') { + workStore.dynamicShouldError = true; + } else if (dynamic === 'force-dynamic') { + workStore.forceDynamic = true; + // TODO: (PPR) remove this bailout once PPR is the default + if (workStore.isStaticGeneration && !experimental.isRoutePPREnabled) { + // If the postpone API isn't available, we can't postpone the render and + // therefore we can't use the dynamic API. + const err = Object.defineProperty(new DynamicServerError(`Page with \`dynamic = "force-dynamic"\` won't be rendered statically.`), "__NEXT_ERROR_CODE", { + value: "E585", + enumerable: false, + configurable: true + }); + workStore.dynamicUsageDescription = err.message; + workStore.dynamicUsageStack = err.stack; + throw err; + } + } else { + workStore.dynamicShouldError = false; + workStore.forceStatic = dynamic === 'force-static'; + } + } + if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.fetchCache) === 'string') { + workStore.fetchCache = layoutOrPageMod == null ? void 0 : layoutOrPageMod.fetchCache; + } + if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate) !== 'undefined') { + (0, _patchfetch.validateRevalidate)(layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate, workStore.route); + } + if (typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.revalidate) === 'number') { + const defaultRevalidate = layoutOrPageMod.revalidate; + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + case 'prerender-legacy': + case 'prerender-ppr': + if (workUnitStore.revalidate > defaultRevalidate) { + workUnitStore.revalidate = defaultRevalidate; + } + break; + case 'request': + break; + // createComponentTree is not called for these stores: + case 'cache': + case 'private-cache': + case 'prerender-client': + case 'validation-client': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + if (!workStore.forceStatic && workStore.isStaticGeneration && defaultRevalidate === 0 && // If the postpone API isn't available, we can't postpone the render and + // therefore we can't use the dynamic API. + !experimental.isRoutePPREnabled) { + const dynamicUsageDescription = `revalidate: 0 configured ${segment}`; + workStore.dynamicUsageDescription = dynamicUsageDescription; + throw Object.defineProperty(new DynamicServerError(dynamicUsageDescription), "__NEXT_ERROR_CODE", { + value: "E1005", + enumerable: false, + configurable: true + }); + } + } + // Read unstable_dynamicStaleTime from page modules (not layouts) and track it on + // the store's stale field. This affects the segment cache stale time via + // the StaleTimeIterable. + if (isPage && typeof (layoutOrPageMod == null ? void 0 : layoutOrPageMod.unstable_dynamicStaleTime) === 'number') { + const pageStaleTime = layoutOrPageMod.unstable_dynamicStaleTime; + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + case 'prerender-legacy': + case 'prerender-ppr': + if (workUnitStore.stale > pageStaleTime) { + workUnitStore.stale = pageStaleTime; + } + break; + case 'request': + if (workUnitStore.stale === undefined || workUnitStore.stale > pageStaleTime) { + workUnitStore.stale = pageStaleTime; + } + break; + // createComponentTree is not called for these stores: + case 'cache': + case 'private-cache': + case 'prerender-client': + case 'validation-client': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + } + const isStaticGeneration = workStore.isStaticGeneration; + // Assume the segment we're rendering contains only partial data if PPR is + // enabled and this is a statically generated response. This is used by the + // client Segment Cache after a prefetch to determine if it can skip the + // second request to fill in the dynamic data. + // + // It's OK for this to be `true` when the data is actually fully static, but + // it's not OK for this to be `false` when the data possibly contains holes. + // Although the value here is overly pessimistic, for prefetches, it will be + // replaced by a more specific value when the data is later processed into + // per-segment responses (see collect-segment-data.tsx) + // + // For dynamic requests, this must always be `false` because dynamic responses + // are never partial. + const isPossiblyPartialResponse = isStaticGeneration && experimental.isRoutePPREnabled === true; + const LayoutOrPage = layoutOrPageMod ? (0, _interopdefault.interopDefault)(layoutOrPageMod) : undefined; + /** + * The React Component to render. + */ let MaybeComponent = LayoutOrPage; + if (process.env.NODE_ENV === 'development' || isStaticGeneration) { + const { isValidElementType } = require('next/dist/compiled/react-is'); + if (typeof MaybeComponent !== 'undefined' && !isValidElementType(MaybeComponent)) { + errorMissingDefaultExport(pagePath, modType ?? 'page'); + } + if (typeof ErrorComponent !== 'undefined' && !isValidElementType(ErrorComponent)) { + errorMissingDefaultExport(pagePath, 'error'); + } + if (typeof Loading !== 'undefined' && !isValidElementType(Loading)) { + errorMissingDefaultExport(pagePath, 'loading'); + } + if (typeof NotFound !== 'undefined' && !isValidElementType(NotFound)) { + errorMissingDefaultExport(pagePath, 'not-found'); + } + if (typeof Forbidden !== 'undefined' && !isValidElementType(Forbidden)) { + errorMissingDefaultExport(pagePath, 'forbidden'); + } + if (typeof Unauthorized !== 'undefined' && !isValidElementType(Unauthorized)) { + errorMissingDefaultExport(pagePath, 'unauthorized'); + } + } + // Handle dynamic segment params. + const segmentParam = getDynamicParamFromSegment(tree); + // Create object holding the parent params and current params + let currentParams = parentParams; + if (segmentParam && segmentParam.value !== null) { + currentParams = { + ...parentParams, + [segmentParam.param]: segmentParam.value + }; + } + // Track optional catch-all params with no value (e.g., [[...slug]] at /). + // These params won't exist as properties on the params object, so vary + // params tracking needs to use a Proxy to detect access. We propagate this + // through the tree so that child segments (like __PAGE__) also know about + // the missing param. In practice, this only gets passed down one level — + // from the optional catch-all layout segment to the page segment — so it's + // always very close to the leaf of the tree. + const optionalCatchAllParamName = (segmentParam == null ? void 0 : segmentParam.type) === 'oc' && segmentParam.value === null ? segmentParam.param : parentOptionalCatchAllParamName; + // Resolve the segment param + const isSegmentViewEnabled = !!process.env.__NEXT_DEV_SERVER; + const dir = (process.env.NEXT_RUNTIME === 'edge' ? process.env.__NEXT_EDGE_PROJECT_DIR : ctx.renderOpts.dir) || ''; + const [notFoundElement, notFoundFilePath] = await createBoundaryConventionElement({ + ctx, + conventionName: 'not-found', + Component: NotFound, + styles: notFoundStyles, + tree + }); + const [forbiddenElement] = await createBoundaryConventionElement({ + ctx, + conventionName: 'forbidden', + Component: Forbidden, + styles: forbiddenStyles, + tree + }); + const [unauthorizedElement] = await createBoundaryConventionElement({ + ctx, + conventionName: 'unauthorized', + Component: Unauthorized, + styles: unauthorizedStyles, + tree + }); + // TODO: Combine this `map` traversal with the loop below that turns the array + // into an object. + const parallelRouteMap = await Promise.all(Object.keys(parallelRoutes).map(async (parallelRouteKey)=>{ + const isChildrenRouteKey = parallelRouteKey === 'children'; + const parallelRoute = parallelRoutes[parallelRouteKey]; + const notFoundComponent = isChildrenRouteKey ? notFoundElement : undefined; + const forbiddenComponent = isChildrenRouteKey ? forbiddenElement : undefined; + const unauthorizedComponent = isChildrenRouteKey ? unauthorizedElement : undefined; + // if we're prefetching and that there's a Loading component, we bail out + // otherwise we keep rendering for the prefetch. + // We also want to bail out if there's no Loading component in the tree. + let childCacheNodeSeedData = null; + if (// Before PPR, the way instant navigations work in Next.js is we + // prefetch everything up to the first route segment that defines a + // loading.tsx boundary. (We do the same if there's no loading + // boundary in the entire tree, because we don't want to prefetch too + // much) The rest of the tree is deferred until the actual navigation. + // It does not take into account whether the data is dynamic — even if + // the tree is completely static, it will still defer everything + // inside the loading boundary. + // + // This behavior predates PPR and is only relevant if the + // PPR flag is not enabled. + isPrefetch && (Loading || !(0, _hasloadingcomponentintree.hasLoadingComponentInTree)(parallelRoute)) && // The approach with PPR is different — loading.tsx behaves like a + // regular Suspense boundary and has no special behavior. + // + // With PPR, we prefetch as deeply as possible, and only defer when + // dynamic data is accessed. If so, we only defer the nearest parent + // Suspense boundary of the dynamic data access, regardless of whether + // the boundary is defined by loading.tsx or a normal + // component in userspace. + // + // NOTE: In practice this usually means we'll end up prefetching more + // than we were before PPR, which may or may not be considered a + // performance regression by some apps. The plan is to address this + // before General Availability of PPR by introducing granular + // per-segment fetching, so we can reuse as much of the tree as + // possible during both prefetches and dynamic navigations. But during + // the beta period, we should be clear about this trade off in our + // communications. + !experimental.isRoutePPREnabled) { + // Don't prefetch this child. This will trigger a lazy fetch by the + // client router. + } else { + // Create the child component + if (process.env.NODE_ENV === 'development' && missingSlots) { + var _parsedTree_conventionPath; + // When we detect the default fallback (which triggers a 404), we collect the missing slots + // to provide more helpful debug information during development mode. + const parsedTree = (0, _parseloadertree.parseLoaderTree)(parallelRoute); + if ((_parsedTree_conventionPath = parsedTree.conventionPath) == null ? void 0 : _parsedTree_conventionPath.endsWith(_default.PARALLEL_ROUTE_DEFAULT_PATH)) { + missingSlots.add(parallelRouteKey); + } + } + const seedData = await createComponentTreeInternal({ + loaderTree: parallelRoute, + parentParams: currentParams, + parentOptionalCatchAllParamName: optionalCatchAllParamName, + parentRuntimePrefetchable: isRuntimePrefetchable, + rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove, + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout, + injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout, + ctx, + missingSlots, + preloadCallbacks, + authInterrupts, + // `StreamingMetadataOutlet` is used to conditionally throw. In the case of parallel routes we will have more than one page + // but we only want to throw on the first one. + MetadataOutlet: isChildrenRouteKey ? MetadataOutlet : null + }, false); + childCacheNodeSeedData = seedData; + } + const templateNode = createElement(Template, null, createElement(RenderFromTemplateContext, null)); + const templateFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'template'); + const errorFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'error'); + const loadingFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'loading'); + const globalErrorFilePath = isRoot ? (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'global-error') : undefined; + const wrappedErrorStyles = isSegmentViewEnabled && errorFilePath ? createElement(SegmentViewNode, { + type: 'error', + pagePath: errorFilePath + }, errorStyles) : errorStyles; + // Add a suffix to avoid conflict with the segment view node representing rendered file. + // existence: not-found.tsx@boundary + // rendered: not-found.tsx + const fileNameSuffix = _segmentexplorerpath.BOUNDARY_SUFFIX; + const segmentViewBoundaries = isSegmentViewEnabled ? createElement(Fragment, null, notFoundFilePath && createElement(SegmentViewNode, { + type: `${_segmentexplorerpath.BOUNDARY_PREFIX}not-found`, + pagePath: notFoundFilePath + fileNameSuffix + }), loadingFilePath && createElement(SegmentViewNode, { + type: `${_segmentexplorerpath.BOUNDARY_PREFIX}loading`, + pagePath: loadingFilePath + fileNameSuffix + }), errorFilePath && createElement(SegmentViewNode, { + type: `${_segmentexplorerpath.BOUNDARY_PREFIX}error`, + pagePath: errorFilePath + fileNameSuffix + }), globalErrorFilePath && createElement(SegmentViewNode, { + type: `${_segmentexplorerpath.BOUNDARY_PREFIX}global-error`, + pagePath: (0, _segmentexplorerpath.isNextjsBuiltinFilePath)(globalErrorFilePath) ? `${_segmentexplorerpath.BUILTIN_PREFIX}global-error.js${fileNameSuffix}` : globalErrorFilePath + })) : null; + return [ + parallelRouteKey, + createElement(LayoutRouter, { + parallelRouterKey: parallelRouteKey, + error: ErrorComponent, + errorStyles: wrappedErrorStyles, + errorScripts: errorScripts, + template: isSegmentViewEnabled && templateFilePath ? createElement(SegmentViewNode, { + type: 'template', + pagePath: templateFilePath + }, templateNode) : templateNode, + templateStyles: templateStyles, + templateScripts: templateScripts, + notFound: notFoundComponent, + forbidden: forbiddenComponent, + unauthorized: unauthorizedComponent, + ...isSegmentViewEnabled && { + segmentViewBoundaries + } + }), + childCacheNodeSeedData + ]; + })); + // Convert the parallel route map into an object after all promises have been resolved. + let parallelRouteProps = {}; + let parallelRouteCacheNodeSeedData = {}; + for (const parallelRoute of parallelRouteMap){ + const [parallelRouteKey, parallelRouteProp, flightData] = parallelRoute; + parallelRouteProps[parallelRouteKey] = parallelRouteProp; + parallelRouteCacheNodeSeedData[parallelRouteKey] = flightData; + } + let loadingElement = Loading ? createElement(Loading, { + key: 'l' + }) : null; + const loadingFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'loading'); + if (isSegmentViewEnabled && loadingElement) { + if (loadingFilePath) { + loadingElement = createElement(SegmentViewNode, { + key: cacheNodeKey + '-loading', + type: 'loading', + pagePath: loadingFilePath + }, loadingElement); + } + } + const loadingData = loadingElement ? [ + loadingElement, + loadingStyles, + loadingScripts + ] : null; + // When the segment does not have a layout or page we still have to add the layout router to ensure the path holds the loading component + if (!MaybeComponent) { + return createSeedData(ctx, createElement(Fragment, { + key: cacheNodeKey + }, layerAssets, parallelRouteProps.children), parallelRouteCacheNodeSeedData, loadingData, isPossiblyPartialResponse, isRuntimePrefetchable, // No user-provided component, so no params will be accessed. Use the + // pre-resolved empty tracker. + _varyparams.emptyVaryParamsAccumulator); + } + const Component = MaybeComponent; + // If force-dynamic is used and the current render supports postponing, we + // replace it with a node that will postpone the render. This ensures that the + // postpone is invoked during the react render phase and not during the next + // render phase. + // @TODO this does not actually do what it seems like it would or should do. The idea is that + // if we are rendering in a force-dynamic mode and we can postpone we should only make the segments + // that ask for force-dynamic to be dynamic, allowing other segments to still prerender. However + // because this comes after the children traversal and the static generation store is mutated every segment + // along the parent path of a force-dynamic segment will hit this condition effectively making the entire + // render force-dynamic. We should refactor this function so that we can correctly track which segments + // need to be dynamic + if (workStore.isStaticGeneration && workStore.forceDynamic && experimental.isRoutePPREnabled) { + return createSeedData(ctx, createElement(Fragment, { + key: cacheNodeKey + }, createElement(Postpone, { + reason: 'dynamic = "force-dynamic" was used', + route: workStore.route + }), layerAssets), parallelRouteCacheNodeSeedData, loadingData, true, isRuntimePrefetchable, // force-dynamic postpones without rendering the component, so no params + // are accessed. The vary params are empty. + _varyparams.emptyVaryParamsAccumulator); + } + const isClientComponent = (0, _clientandserverreferences.isClientReference)(layoutOrPageMod); + const varyParamsAccumulator = isClientComponent && cacheComponents ? // from the server, so they have an empty vary params set. + _varyparams.emptyVaryParamsAccumulator : (0, _varyparams.createVaryParamsAccumulator)(); + if (process.env.NODE_ENV === 'development' && 'params' in parallelRouteProps) { + // @TODO consider making this an error and running the check in build as well + console.error(`"params" is a reserved prop in Layouts and Pages and cannot be used as the name of a parallel route in ${segment}`); + } + if (isPage) { + const PageComponent = Component; + // Assign searchParams to props if this is a page + let pageElement; + if (isClientComponent) { + if (cacheComponents) { + // Params are omitted when Cache Components is enabled + pageElement = createElement(ClientPageRoot, { + Component: PageComponent, + serverProvidedParams: null + }); + } else if (isStaticGeneration) { + const promiseOfParams = createPrerenderParamsForClientSegment(currentParams); + const promiseOfSearchParams = createPrerenderSearchParamsForClientPage(); + pageElement = createElement(ClientPageRoot, { + Component: PageComponent, + serverProvidedParams: { + searchParams: query, + params: currentParams, + promises: [ + promiseOfSearchParams, + promiseOfParams + ] + } + }); + } else { + pageElement = createElement(ClientPageRoot, { + Component: PageComponent, + serverProvidedParams: { + searchParams: query, + params: currentParams, + promises: null + } + }); + } + } else { + // If we are passing params to a server component Page we need to track + // their usage in case the current render mode tracks dynamic API usage. + const params = createServerParamsForServerSegment(currentParams, optionalCatchAllParamName, varyParamsAccumulator, isRuntimePrefetchable); + // If we are passing searchParams to a server component Page we need to + // track their usage in case the current render mode tracks dynamic API + // usage. + let searchParams = createServerSearchParamsForServerPage(query, varyParamsAccumulator, isRuntimePrefetchable); + if ((0, _clientandserverreferences.isUseCacheFunction)(PageComponent)) { + const UseCachePageComponent = PageComponent; + pageElement = createElement(UseCachePageComponent, { + params: params, + searchParams: searchParams, + $$isPage: true + }); + } else { + pageElement = createElement(PageComponent, { + params: params, + searchParams: searchParams + }); + } + } + const isDefaultSegment = segment === _segment.DEFAULT_SEGMENT_KEY; + const pageFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'page') ?? (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'defaultPage'); + const segmentType = isDefaultSegment ? 'default' : 'page'; + const wrappedPageElement = isSegmentViewEnabled && pageFilePath ? createElement(SegmentViewNode, { + key: cacheNodeKey + '-' + segmentType, + type: segmentType, + pagePath: pageFilePath + }, pageElement) : pageElement; + return createSeedData(ctx, createElement(Fragment, { + key: cacheNodeKey + }, wrappedPageElement, layerAssets, MetadataOutlet ? createElement(MetadataOutlet, null) : null), parallelRouteCacheNodeSeedData, loadingData, isPossiblyPartialResponse, isRuntimePrefetchable, varyParamsAccumulator); + } else { + const SegmentComponent = Component; + const isRootLayoutWithChildrenSlotAndAtLeastOneMoreSlot = rootLayoutAtThisLevel && 'children' in parallelRoutes && Object.keys(parallelRoutes).length > 1; + let segmentNode; + if (isClientComponent) { + let clientSegment; + if (cacheComponents) { + // Params are omitted when Cache Components is enabled + clientSegment = createElement(ClientSegmentRoot, { + Component: SegmentComponent, + slots: parallelRouteProps, + serverProvidedParams: null + }); + } else if (isStaticGeneration) { + const promiseOfParams = createPrerenderParamsForClientSegment(currentParams); + clientSegment = createElement(ClientSegmentRoot, { + Component: SegmentComponent, + slots: parallelRouteProps, + serverProvidedParams: { + params: currentParams, + promises: [ + promiseOfParams + ] + } + }); + } else { + clientSegment = createElement(ClientSegmentRoot, { + Component: SegmentComponent, + slots: parallelRouteProps, + serverProvidedParams: { + params: currentParams, + promises: null + } + }); + } + if (isRootLayoutWithChildrenSlotAndAtLeastOneMoreSlot) { + let notfoundClientSegment; + let forbiddenClientSegment; + let unauthorizedClientSegment; + // TODO-APP: This is a hack to support unmatched parallel routes, which will throw `notFound()`. + // This ensures that a `HTTPAccessFallbackBoundary` is available for when that happens, + // but it's not ideal, as it needlessly invokes the `NotFound` component and renders the `RootLayout` twice. + // We should instead look into handling the fallback behavior differently in development mode so that it doesn't + // rely on the `NotFound` behavior. + notfoundClientSegment = createErrorBoundaryClientSegmentRoot({ + ctx, + ErrorBoundaryComponent: NotFound, + errorElement: notFoundElement, + ClientSegmentRoot, + layerAssets, + SegmentComponent, + currentParams + }); + forbiddenClientSegment = createErrorBoundaryClientSegmentRoot({ + ctx, + ErrorBoundaryComponent: Forbidden, + errorElement: forbiddenElement, + ClientSegmentRoot, + layerAssets, + SegmentComponent, + currentParams + }); + unauthorizedClientSegment = createErrorBoundaryClientSegmentRoot({ + ctx, + ErrorBoundaryComponent: Unauthorized, + errorElement: unauthorizedElement, + ClientSegmentRoot, + layerAssets, + SegmentComponent, + currentParams + }); + if (notfoundClientSegment || forbiddenClientSegment || unauthorizedClientSegment) { + segmentNode = createElement(HTTPAccessFallbackBoundary, { + key: cacheNodeKey, + notFound: notfoundClientSegment, + forbidden: forbiddenClientSegment, + unauthorized: unauthorizedClientSegment + }, layerAssets, clientSegment); + } else { + segmentNode = createElement(Fragment, { + key: cacheNodeKey + }, layerAssets, clientSegment); + } + } else { + segmentNode = createElement(Fragment, { + key: cacheNodeKey + }, layerAssets, clientSegment); + } + } else { + const params = createServerParamsForServerSegment(currentParams, optionalCatchAllParamName, varyParamsAccumulator, isRuntimePrefetchable); + let serverSegment; + if ((0, _clientandserverreferences.isUseCacheFunction)(SegmentComponent)) { + const UseCacheLayoutComponent = SegmentComponent; + serverSegment = createElement(UseCacheLayoutComponent, { + ...parallelRouteProps, + params: params, + $$isLayout: true + }, // Force static children here so that they're validated. + // See https://github.com/facebook/react/pull/34846 + parallelRouteProps.children); + } else { + serverSegment = createElement(SegmentComponent, { + ...parallelRouteProps, + params: params + }, // Force static children here so that they're validated. + // See https://github.com/facebook/react/pull/34846 + parallelRouteProps.children); + } + if (isRootLayoutWithChildrenSlotAndAtLeastOneMoreSlot) { + // TODO-APP: This is a hack to support unmatched parallel routes, which will throw `notFound()`. + // This ensures that a `HTTPAccessFallbackBoundary` is available for when that happens, + // but it's not ideal, as it needlessly invokes the `NotFound` component and renders the `RootLayout` twice. + // We should instead look into handling the fallback behavior differently in development mode so that it doesn't + // rely on the `NotFound` behavior. + segmentNode = createElement(HTTPAccessFallbackBoundary, { + key: cacheNodeKey, + notFound: notFoundElement ? createElement(Fragment, null, layerAssets, createElement(SegmentComponent, { + params: params + }, notFoundStyles, notFoundElement)) : undefined + }, layerAssets, serverSegment); + } else { + segmentNode = createElement(Fragment, { + key: cacheNodeKey + }, layerAssets, serverSegment); + } + } + const layoutFilePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, 'layout'); + const wrappedSegmentNode = isSegmentViewEnabled && layoutFilePath ? createElement(SegmentViewNode, { + key: 'layout', + type: 'layout', + pagePath: layoutFilePath + }, segmentNode) : segmentNode; + // For layouts we just render the component + return createSeedData(ctx, wrappedSegmentNode, parallelRouteCacheNodeSeedData, loadingData, isPossiblyPartialResponse, isRuntimePrefetchable, varyParamsAccumulator); + } +} +function createErrorBoundaryClientSegmentRoot({ ctx, ErrorBoundaryComponent, errorElement, ClientSegmentRoot, layerAssets, SegmentComponent, currentParams }) { + const { componentMod: { createElement, Fragment } } = ctx; + if (ErrorBoundaryComponent) { + const notFoundParallelRouteProps = { + children: errorElement + }; + return createElement(Fragment, null, layerAssets, createElement(ClientSegmentRoot, { + Component: SegmentComponent, + slots: notFoundParallelRouteProps, + params: currentParams + })); + } + return null; +} +function getRootParams(loaderTree, getDynamicParamFromSegment) { + return getRootParamsImpl({}, loaderTree, getDynamicParamFromSegment); +} +function getRootParamsImpl(parentParams, loaderTree, getDynamicParamFromSegment) { + const { modules: { layout }, parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(loaderTree); + const segmentParam = getDynamicParamFromSegment(loaderTree); + let currentParams = parentParams; + if (segmentParam && segmentParam.value !== null) { + currentParams = { + ...parentParams, + [segmentParam.param]: segmentParam.value + }; + } + const isRootLayout = typeof layout !== 'undefined'; + if (isRootLayout) { + return currentParams; + } else if (!parallelRoutes.children) { + // This should really be an error but there are bugs in Turbopack that cause + // the _not-found LoaderTree to not have any layouts. For rootParams sake + // this is somewhat irrelevant when you are not customizing the 404 page. + // If you are customizing 404 + // TODO update rootParams to make all params optional if `/app/not-found.tsx` is defined + return currentParams; + } else { + return getRootParamsImpl(currentParams, // We stop looking for root params as soon as we hit the first layout + // and it is not possible to use parallel route children above the root layout + // so every parallelRoutes object that this function can visit will necessarily + // have a single `children` prop and no others. + parallelRoutes.children, getDynamicParamFromSegment); + } +} +async function createBoundaryConventionElement({ ctx, conventionName, Component, styles, tree }) { + const { componentMod: { createElement, Fragment } } = ctx; + const isSegmentViewEnabled = !!process.env.__NEXT_DEV_SERVER; + const dir = (process.env.NEXT_RUNTIME === 'edge' ? process.env.__NEXT_EDGE_PROJECT_DIR : ctx.renderOpts.dir) || ''; + const { SegmentViewNode } = ctx.componentMod; + const element = Component ? createElement(Fragment, null, createElement(Component, null), styles) : undefined; + const pagePath = (0, _segmentexplorerpath.getConventionPathByType)(tree, dir, conventionName); + const wrappedElement = isSegmentViewEnabled && element ? createElement(SegmentViewNode, { + key: cacheNodeKey + '-' + conventionName, + type: conventionName, + // TODO: Discovered when moving to `createElement`. + // `SegmentViewNode` doesn't support undefined `pagePath` + pagePath: pagePath + }, element) : element; + return [ + wrappedElement, + pagePath + ]; +} +function createSeedData(ctx, rsc, parallelRoutes, loading, isPossiblyPartialResponse, isRuntimePrefetchable, varyParamsAccumulator) { + const createElement = ctx.componentMod.createElement; + // When this segment is NOT runtime-prefetchable, delay it until the Static + // stage by wrapping the node in a promise. This allows runtime-prefetchable + // segments (the lower tree) to render first during EarlyStatic, so their + // runtime data resolves in EarlyRuntime where sync IO can be checked. + // React will suspend on the thenable and resume when the stage advances. + if (!isRuntimePrefetchable) { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + let stagedRendering; + switch(workUnitStore.type){ + case 'request': + case 'prerender-runtime': + stagedRendering = workUnitStore.stagedRendering; + if (stagedRendering) { + const deferredRsc = rsc; + rsc = stagedRendering.waitForStage(_stagedrendering.RenderStage.Static).then(()=>deferredRsc); + } + break; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + } + if (loading !== null) { + // If a loading.tsx boundary is present, wrap the component data in an + // additional context provider to pass the loading data to the next + // set of children. + // NOTE: The reason this is a separate wrapper from LayoutRouter is because + // not all segments render a LayoutRouter component, e.g. the root segment. + const LoadingBoundaryProvider = ctx.componentMod.LoadingBoundaryProvider; + rsc = createElement(LoadingBoundaryProvider, { + loading: loading, + children: rsc + }); + } + return [ + rsc, + parallelRoutes, + null, + isPossiblyPartialResponse, + varyParamsAccumulator ? (0, _varyparams.getVaryParamsThenable)(varyParamsAccumulator) : null + ]; +} + +//# sourceMappingURL=create-component-tree.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/create-error-handler.js b/cli/app/node_modules/next/dist/server/app-render/create-error-handler.js new file mode 100644 index 00000000000..cfe112f1de8 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/create-error-handler.js @@ -0,0 +1,189 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createHTMLErrorHandler: null, + createReactServerErrorHandler: null, + getDigestForWellKnownError: null, + isUserLandError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createHTMLErrorHandler: function() { + return createHTMLErrorHandler; + }, + createReactServerErrorHandler: function() { + return createReactServerErrorHandler; + }, + getDigestForWellKnownError: function() { + return getDigestForWellKnownError; + }, + isUserLandError: function() { + return isUserLandError; + } +}); +const _stringhash = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/string-hash")); +const _formatservererror = require("../../lib/format-server-error"); +const _tracer = require("../lib/trace/tracer"); +const _pipereadable = require("../pipe-readable"); +const _bailouttocsr = require("../../shared/lib/lazy-dynamic/bailout-to-csr"); +const _hooksservercontext = require("../../client/components/hooks-server-context"); +const _isnextroutererror = require("../../client/components/is-next-router-error"); +const _dynamicrendering = require("./dynamic-rendering"); +const _iserror = require("../../lib/is-error"); +const _errortelemetryutils = require("../../lib/error-telemetry-utils"); +const _reactlargeshellerror = require("./react-large-shell-error"); +const _instantvalidationerror = require("./instant-validation/instant-validation-error"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getDigestForWellKnownError(error) { + // If we're bailing out to CSR, we don't need to log the error. + if ((0, _bailouttocsr.isBailoutToCSRError)(error)) return error.digest; + // If this is a navigation error, we don't need to log the error. + if ((0, _isnextroutererror.isNextRouterError)(error)) return error.digest; + // If this error occurs, we know that we should be stopping the static + // render. This is only thrown in static generation when PPR is not enabled, + // which causes the whole page to be marked as dynamic. We don't need to + // tell the user about this error, as it's not actionable. + if ((0, _hooksservercontext.isDynamicServerError)(error)) return error.digest; + // If this is a prerender interrupted error, we don't need to log the error. + if ((0, _dynamicrendering.isPrerenderInterruptedError)(error)) return error.digest; + if ((0, _instantvalidationerror.isInstantValidationError)(error)) return error.digest; + return undefined; +} +function createReactServerErrorHandler(shouldFormatError, isBuildTimePrerendering, reactServerErrors, onReactServerRenderError, spanToRecordOn) { + return (thrownValue)=>{ + var _err_message; + if (typeof thrownValue === 'string') { + // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited. + return (0, _stringhash.default)(thrownValue).toString(); + } + // If the response was closed, we don't need to log the error. + if ((0, _pipereadable.isAbortError)(thrownValue)) return; + const digest = getDigestForWellKnownError(thrownValue); + if (digest) { + return digest; + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) { + // TODO: Aggregate + console.error(thrownValue); + return undefined; + } + let err = (0, _iserror.getProperError)(thrownValue); + let silenceLog = false; + // If the error already has a digest, respect the original digest, + // so it won't get re-generated into another new error. + if (err.digest) { + if (process.env.NODE_ENV === 'production' && reactServerErrors.has(err.digest)) { + // This error is likely an obfuscated error from another react-server + // environment (e.g. 'use cache'). We recover the original error here + // for reporting purposes. + err = reactServerErrors.get(err.digest); + // We don't log it again though, as it was already logged in the + // original environment. + silenceLog = true; + } else { + // Either we're in development (where we want to keep the transported + // error with environmentName), or the error is not in reactServerErrors + // but has a digest from other means. Keep the error as-is. + } + } else { + err.digest = (0, _errortelemetryutils.createDigestWithErrorCode)(err, // TODO-APP: look at using webcrypto instead. Requires a promise to be awaited. + (0, _stringhash.default)(err.message + (err.stack || '')).toString()); + } + // @TODO by putting this here and not at the top it is possible that + // we don't error the build in places we actually expect to + if (!reactServerErrors.has(err.digest)) { + reactServerErrors.set(err.digest, err); + } + // Format server errors in development to add more helpful error messages + if (shouldFormatError) { + (0, _formatservererror.formatServerError)(err); + } + // Don't log the suppressed error during export + if (!(isBuildTimePrerendering && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) { + // Record exception on the provided span if available, otherwise try active span. + const span = spanToRecordOn ?? (0, _tracer.getTracer)().getActiveScopeSpan(); + if (span) { + span.recordException(err); + span.setAttribute('error.type', err.name); + span.setStatus({ + code: _tracer.SpanStatusCode.ERROR, + message: err.message + }); + } + onReactServerRenderError(err, silenceLog); + } + return err.digest; + }; +} +function createHTMLErrorHandler(shouldFormatError, isBuildTimePrerendering, reactServerErrors, allCapturedErrors, onHTMLRenderSSRError, spanToRecordOn) { + return (thrownValue, errorInfo)=>{ + var _err_message; + if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) { + // TODO: Aggregate + console.error(thrownValue); + return undefined; + } + let isSSRError = true; + allCapturedErrors.push(thrownValue); + // If the response was closed, we don't need to log the error. + if ((0, _pipereadable.isAbortError)(thrownValue)) return; + const digest = getDigestForWellKnownError(thrownValue); + if (digest) { + return digest; + } + const err = (0, _iserror.getProperError)(thrownValue); + // If the error already has a digest, respect the original digest, + // so it won't get re-generated into another new error. + if (err.digest) { + if (reactServerErrors.has(err.digest)) { + // This error is likely an obfuscated error from react-server. + // We recover the original error here. + thrownValue = reactServerErrors.get(err.digest); + isSSRError = false; + } else { + // The error is not from react-server but has a digest + // from other means so we don't need to produce a new one + } + } else { + err.digest = (0, _errortelemetryutils.createDigestWithErrorCode)(err, (0, _stringhash.default)(err.message + ((errorInfo == null ? void 0 : errorInfo.componentStack) || err.stack || '')).toString()); + } + // Format server errors in development to add more helpful error messages + if (shouldFormatError) { + (0, _formatservererror.formatServerError)(err); + } + // Don't log the suppressed error during export + if (!(isBuildTimePrerendering && (err == null ? void 0 : (_err_message = err.message) == null ? void 0 : _err_message.includes('The specific message is omitted in production builds to avoid leaking sensitive details.')))) { + // HTML errors contain RSC errors as well, filter them out before reporting + if (isSSRError) { + // Record exception on the provided span if available, otherwise try active span. + const span = spanToRecordOn ?? (0, _tracer.getTracer)().getActiveScopeSpan(); + if (span) { + span.recordException(err); + span.setAttribute('error.type', err.name); + span.setStatus({ + code: _tracer.SpanStatusCode.ERROR, + message: err.message + }); + } + onHTMLRenderSSRError(err, errorInfo); + } + } + return err.digest; + }; +} +function isUserLandError(err) { + return !(0, _pipereadable.isAbortError)(err) && !(0, _bailouttocsr.isBailoutToCSRError)(err) && !(0, _isnextroutererror.isNextRouterError)(err); +} + +//# sourceMappingURL=create-error-handler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js b/cli/app/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js new file mode 100644 index 00000000000..c3e53280812 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/create-flight-router-state-from-loader-tree.js @@ -0,0 +1,102 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createFlightRouterStateFromLoaderTree: null, + createRouteTreePrefetch: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createFlightRouterStateFromLoaderTree: function() { + return createFlightRouterStateFromLoaderTree; + }, + createRouteTreePrefetch: function() { + return createRouteTreePrefetch; + } +}); +const _approutertypes = require("../../shared/lib/app-router-types"); +const _segment = require("../../shared/lib/segment"); +async function createFlightRouterStateFromLoaderTreeImpl(loaderTree, hintTree, getDynamicParamFromSegment, searchParams, didFindRootLayout) { + const [segment, parallelRoutes, { layout, loading, page }] = loaderTree; + const dynamicParam = getDynamicParamFromSegment(loaderTree); + const treeSegment = dynamicParam ? dynamicParam.treeSegment : segment; + const segmentTree = [ + (0, _segment.addSearchParamsIfPageSegment)(treeSegment, searchParams), + {} + ]; + // Load the layout or page module to check for unstable_instant config + const mod = layout ? await layout[0]() : page ? await page[0]() : undefined; + const instantConfig = mod ? mod.unstable_instant : undefined; + let prefetchHints = 0; + // Union in the precomputed build-time hints (e.g. segment inlining + // decisions) if available. When hints are not available (e.g. dev mode or + // if prefetch-hints.json was not generated), we fall through and still + // compute the other hints below. In the future this should be a build + // error, but for now we gracefully degrade. + // + // TODO: Move more of the hints computation (IsRootLayout, instant config, + // loading boundary detection) into the build-time measurement step in + // collectPrefetchHints, so this function only needs to union the + // precomputed bitmask rather than re-derive hints on every render. + if (hintTree !== null) { + prefetchHints |= hintTree.hints; + } + // Mark the first segment that has a layout as the "root" layout + if (!didFindRootLayout && typeof layout !== 'undefined') { + didFindRootLayout = true; + prefetchHints |= _approutertypes.PrefetchHint.IsRootLayout; + } + if (instantConfig && typeof instantConfig === 'object') { + prefetchHints |= _approutertypes.PrefetchHint.SubtreeHasInstant; + if (instantConfig.prefetch === 'runtime') { + prefetchHints |= _approutertypes.PrefetchHint.HasRuntimePrefetch; + } + } + // Check if this segment has a loading boundary + if (loading) { + prefetchHints |= _approutertypes.PrefetchHint.SegmentHasLoadingBoundary; + } + const children = {}; + for(const parallelRouteKey in parallelRoutes){ + var _hintTree_slots; + // Look up the child hint node by parallel route key, traversing the + // hint tree in parallel with the loader tree. + const childHintNode = (hintTree == null ? void 0 : (_hintTree_slots = hintTree.slots) == null ? void 0 : _hintTree_slots[parallelRouteKey]) ?? null; + const child = await createFlightRouterStateFromLoaderTreeImpl(parallelRoutes[parallelRouteKey], childHintNode, getDynamicParamFromSegment, searchParams, didFindRootLayout); + // Propagate subtree flags from children + if (child[4] !== undefined) { + prefetchHints |= child[4] & (_approutertypes.PrefetchHint.SubtreeHasInstant | _approutertypes.PrefetchHint.SubtreeHasLoadingBoundary); + // If a child has a loading boundary (either directly or in its subtree), + // propagate that as SubtreeHasLoadingBoundary to this segment. + if (child[4] & (_approutertypes.PrefetchHint.SegmentHasLoadingBoundary | _approutertypes.PrefetchHint.SubtreeHasLoadingBoundary)) { + prefetchHints |= _approutertypes.PrefetchHint.SubtreeHasLoadingBoundary; + } + } + children[parallelRouteKey] = child; + } + segmentTree[1] = children; + if (prefetchHints !== 0) { + segmentTree[4] = prefetchHints; + } + return segmentTree; +} +async function createFlightRouterStateFromLoaderTree(loaderTree, hintTree, getDynamicParamFromSegment, searchParams) { + const didFindRootLayout = false; + return createFlightRouterStateFromLoaderTreeImpl(loaderTree, hintTree, getDynamicParamFromSegment, searchParams, didFindRootLayout); +} +async function createRouteTreePrefetch(loaderTree, hintTree, getDynamicParamFromSegment) { + // Search params should not be added to page segment's cache key during a + // route tree prefetch request, because they do not affect the structure of + // the route. The client cache has its own logic to handle search params. + const searchParams = {}; + const didFindRootLayout = false; + return createFlightRouterStateFromLoaderTreeImpl(loaderTree, hintTree, getDynamicParamFromSegment, searchParams, didFindRootLayout); +} + +//# sourceMappingURL=create-flight-router-state-from-loader-tree.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/csrf-protection.js b/cli/app/node_modules/next/dist/server/app-render/csrf-protection.js new file mode 100644 index 00000000000..91d000c2072 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/csrf-protection.js @@ -0,0 +1,86 @@ +// micromatch is only available at node runtime, so it cannot be used here since the code path that calls this function +// can be run from edge. This is a simple implementation that safely achieves the required functionality. +// the goal is to match the functionality for remotePatterns as defined here - +// https://nextjs.org/docs/app/api-reference/components/image#remotepatterns +// TODO - retrofit micromatch to work in edge and use that instead +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isCsrfOriginAllowed", { + enumerable: true, + get: function() { + return isCsrfOriginAllowed; + } +}); +function matchWildcardDomain(domain, pattern) { + // DNS names are case-insensitive per RFC 1035 + // Use ASCII-only toLowerCase to avoid unicode issues + const normalizedDomain = domain.replace(/[A-Z]/g, (c)=>c.toLowerCase()); + const normalizedPattern = pattern.replace(/[A-Z]/g, (c)=>c.toLowerCase()); + const domainParts = normalizedDomain.split('.'); + const patternParts = normalizedPattern.split('.'); + if (patternParts.length < 1) { + // pattern is empty and therefore invalid to match against + return false; + } + if (domainParts.length < patternParts.length) { + // domain has too few segments and thus cannot match + return false; + } + // Prevent wildcards from matching entire domains (e.g. '**' or '*.com') + // This ensures wildcards can only match subdomains, not the main domain + if (patternParts.length === 1 && (patternParts[0] === '*' || patternParts[0] === '**')) { + return false; + } + while(patternParts.length){ + const patternPart = patternParts.pop(); + const domainPart = domainParts.pop(); + switch(patternPart){ + case '': + { + // invalid pattern. pattern segments must be non empty + return false; + } + case '*': + { + // wildcard matches anything so we continue if the domain part is non-empty + if (domainPart) { + continue; + } else { + return false; + } + } + case '**': + { + // if this is not the last item in the pattern the pattern is invalid + if (patternParts.length > 0) { + return false; + } + // recursive wildcard matches anything so we terminate here if the domain part is non empty + return domainPart !== undefined; + } + case undefined: + default: + { + if (domainPart !== patternPart) { + return false; + } + } + } + } + // We exhausted the pattern. If we also exhausted the domain we have a match + return domainParts.length === 0; +} +const isCsrfOriginAllowed = (originDomain, allowedOrigins = [])=>{ + // DNS names are case-insensitive per RFC 1035 + // Use ASCII-only toLowerCase to avoid unicode issues + const normalizedOrigin = originDomain.replace(/[A-Z]/g, (c)=>c.toLowerCase()); + return allowedOrigins.some((allowedOrigin)=>{ + if (!allowedOrigin) return false; + const normalizedAllowed = allowedOrigin.replace(/[A-Z]/g, (c)=>c.toLowerCase()); + return normalizedAllowed === normalizedOrigin || matchWildcardDomain(originDomain, allowedOrigin); + }); +}; + +//# sourceMappingURL=csrf-protection.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/debug-channel-server.js b/cli/app/node_modules/next/dist/server/app-render/debug-channel-server.js new file mode 100644 index 00000000000..8e1776020e2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/debug-channel-server.js @@ -0,0 +1,30 @@ +/** + * Compile-time switcher for debug channel operations. + * + * Simple re-export from the web implementation. + * A future change will add a conditional branch for node streams. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createDebugChannel: null, + toNodeDebugChannel: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createDebugChannel: function() { + return _debugchannelserverweb.createDebugChannel; + }, + toNodeDebugChannel: function() { + return _debugchannelserverweb.toNodeDebugChannel; + } +}); +const _debugchannelserverweb = require("./debug-channel-server.web"); + +//# sourceMappingURL=debug-channel-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/debug-channel-server.web.js b/cli/app/node_modules/next/dist/server/app-render/debug-channel-server.web.js new file mode 100644 index 00000000000..d50ae7a73c4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/debug-channel-server.web.js @@ -0,0 +1,71 @@ +/** + * Web debug channel implementation. + * Loaded by debug-channel-server.ts. + */ // Types defined inline for now; will move to debug-channel-server.node.ts later. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createDebugChannel: null, + createWebDebugChannel: null, + toNodeDebugChannel: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createDebugChannel: function() { + return createDebugChannel; + }, + createWebDebugChannel: function() { + return createWebDebugChannel; + }, + toNodeDebugChannel: function() { + return toNodeDebugChannel; + } +}); +function createDebugChannel() { + if (process.env.NODE_ENV === 'production') { + return undefined; + } + return createWebDebugChannel(); +} +function createWebDebugChannel() { + let readableController; + const clientSideReadable = new ReadableStream({ + start (controller) { + readableController = controller; + } + }); + return { + serverSide: { + writable: new WritableStream({ + write (chunk) { + readableController == null ? void 0 : readableController.enqueue(chunk); + }, + close () { + readableController == null ? void 0 : readableController.close(); + }, + abort (err) { + readableController == null ? void 0 : readableController.error(err); + } + }) + }, + clientSide: { + readable: clientSideReadable + } + }; +} +function toNodeDebugChannel(_webDebugChannel) { + throw Object.defineProperty(new Error('toNodeDebugChannel cannot be used in edge/web runtime, this is a bug in the Next.js codebase'), "__NEXT_ERROR_CODE", { + value: "E1071", + enumerable: false, + configurable: true + }); +} + +//# sourceMappingURL=debug-channel-server.web.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js b/cli/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js new file mode 100644 index 00000000000..03facf62485 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage-instance.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "dynamicAccessAsyncStorageInstance", { + enumerable: true, + get: function() { + return dynamicAccessAsyncStorageInstance; + } +}); +const _asynclocalstorage = require("./async-local-storage"); +const dynamicAccessAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)(); + +//# sourceMappingURL=dynamic-access-async-storage-instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js b/cli/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js new file mode 100644 index 00000000000..5ab075f499a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/dynamic-access-async-storage.external.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "dynamicAccessAsyncStorage", { + enumerable: true, + get: function() { + return _dynamicaccessasyncstorageinstance.dynamicAccessAsyncStorageInstance; + } +}); +const _dynamicaccessasyncstorageinstance = require("./dynamic-access-async-storage-instance"); + +//# sourceMappingURL=dynamic-access-async-storage.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/dynamic-rendering.js b/cli/app/node_modules/next/dist/server/app-render/dynamic-rendering.js new file mode 100644 index 00000000000..1cd8f1a26ac --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/dynamic-rendering.js @@ -0,0 +1,1144 @@ +/** + * The functions provided by this module are used to communicate certain properties + * about the currently running code so that Next.js can make decisions on how to handle + * the current execution in different rendering modes such as pre-rendering, resuming, and SSR. + * + * Today Next.js treats all code as potentially static. Certain APIs may only make sense when dynamically rendering. + * Traditionally this meant deopting the entire render to dynamic however with PPR we can now deopt parts + * of a React tree as dynamic while still keeping other parts static. There are really two different kinds of + * Dynamic indications. + * + * The first is simply an intention to be dynamic. unstable_noStore is an example of this where + * the currently executing code simply declares that the current scope is dynamic but if you use it + * inside unstable_cache it can still be cached. This type of indication can be removed if we ever + * make the default dynamic to begin with because the only way you would ever be static is inside + * a cache scope which this indication does not affect. + * + * The second is an indication that a dynamic data source was read. This is a stronger form of dynamic + * because it means that it is inappropriate to cache this at all. using a dynamic data source inside + * unstable_cache should error. If you want to use some dynamic data inside unstable_cache you should + * read that data outside the cache and pass it in as an argument to the cached function. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DynamicHoleKind: null, + Postpone: null, + PreludeState: null, + abortAndThrowOnSynchronousRequestDataAccess: null, + abortOnSynchronousPlatformIOAccess: null, + accessedDynamicData: null, + annotateDynamicAccess: null, + consumeDynamicAccess: null, + createDynamicTrackingState: null, + createDynamicValidationState: null, + createHangingInputAbortSignal: null, + createInstantValidationState: null, + createRenderInBrowserAbortSignal: null, + formatDynamicAPIAccesses: null, + getFirstDynamicReason: null, + getNavigationDisallowedDynamicReasons: null, + getStaticShellDisallowedDynamicReasons: null, + isDynamicPostpone: null, + isPrerenderInterruptedError: null, + logDisallowedDynamicError: null, + markCurrentScopeAsDynamic: null, + postponeWithTracking: null, + throwIfDisallowedDynamic: null, + throwToInterruptStaticGeneration: null, + trackAllowedDynamicAccess: null, + trackDynamicDataInDynamicRender: null, + trackDynamicHoleInNavigation: null, + trackDynamicHoleInRuntimeShell: null, + trackDynamicHoleInStaticShell: null, + trackThrownErrorInNavigation: null, + useDynamicRouteParams: null, + useDynamicSearchParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DynamicHoleKind: function() { + return DynamicHoleKind; + }, + Postpone: function() { + return Postpone; + }, + PreludeState: function() { + return PreludeState; + }, + abortAndThrowOnSynchronousRequestDataAccess: function() { + return abortAndThrowOnSynchronousRequestDataAccess; + }, + abortOnSynchronousPlatformIOAccess: function() { + return abortOnSynchronousPlatformIOAccess; + }, + accessedDynamicData: function() { + return accessedDynamicData; + }, + annotateDynamicAccess: function() { + return annotateDynamicAccess; + }, + consumeDynamicAccess: function() { + return consumeDynamicAccess; + }, + createDynamicTrackingState: function() { + return createDynamicTrackingState; + }, + createDynamicValidationState: function() { + return createDynamicValidationState; + }, + createHangingInputAbortSignal: function() { + return createHangingInputAbortSignal; + }, + createInstantValidationState: function() { + return createInstantValidationState; + }, + createRenderInBrowserAbortSignal: function() { + return createRenderInBrowserAbortSignal; + }, + formatDynamicAPIAccesses: function() { + return formatDynamicAPIAccesses; + }, + getFirstDynamicReason: function() { + return getFirstDynamicReason; + }, + getNavigationDisallowedDynamicReasons: function() { + return getNavigationDisallowedDynamicReasons; + }, + getStaticShellDisallowedDynamicReasons: function() { + return getStaticShellDisallowedDynamicReasons; + }, + isDynamicPostpone: function() { + return isDynamicPostpone; + }, + isPrerenderInterruptedError: function() { + return isPrerenderInterruptedError; + }, + logDisallowedDynamicError: function() { + return logDisallowedDynamicError; + }, + markCurrentScopeAsDynamic: function() { + return markCurrentScopeAsDynamic; + }, + postponeWithTracking: function() { + return postponeWithTracking; + }, + throwIfDisallowedDynamic: function() { + return throwIfDisallowedDynamic; + }, + throwToInterruptStaticGeneration: function() { + return throwToInterruptStaticGeneration; + }, + trackAllowedDynamicAccess: function() { + return trackAllowedDynamicAccess; + }, + trackDynamicDataInDynamicRender: function() { + return trackDynamicDataInDynamicRender; + }, + trackDynamicHoleInNavigation: function() { + return trackDynamicHoleInNavigation; + }, + trackDynamicHoleInRuntimeShell: function() { + return trackDynamicHoleInRuntimeShell; + }, + trackDynamicHoleInStaticShell: function() { + return trackDynamicHoleInStaticShell; + }, + trackThrownErrorInNavigation: function() { + return trackThrownErrorInNavigation; + }, + useDynamicRouteParams: function() { + return useDynamicRouteParams; + }, + useDynamicSearchParams: function() { + return useDynamicSearchParams; + } +}); +const _react = /*#__PURE__*/ _interop_require_default(require("react")); +const _hooksservercontext = require("../../client/components/hooks-server-context"); +const _staticgenerationbailout = require("../../client/components/static-generation-bailout"); +const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); +const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); +const _dynamicrenderingutils = require("../dynamic-rendering-utils"); +const _boundaryconstants = require("../../lib/framework/boundary-constants"); +const _scheduler = require("../../lib/scheduler"); +const _bailouttocsr = require("../../shared/lib/lazy-dynamic/bailout-to-csr"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _boundaryconstants1 = require("./instant-validation/boundary-constants"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const hasPostpone = typeof _react.default.unstable_postpone === 'function'; +function createDynamicTrackingState(isDebugDynamicAccesses) { + return { + isDebugDynamicAccesses, + dynamicAccesses: [], + syncDynamicErrorWithStack: null + }; +} +function createDynamicValidationState() { + return { + hasSuspenseAboveBody: false, + hasDynamicMetadata: false, + dynamicMetadata: null, + hasDynamicViewport: false, + hasAllowedDynamic: false, + dynamicErrors: [] + }; +} +function getFirstDynamicReason(trackingState) { + var _trackingState_dynamicAccesses_; + return (_trackingState_dynamicAccesses_ = trackingState.dynamicAccesses[0]) == null ? void 0 : _trackingState_dynamicAccesses_.expression; +} +function markCurrentScopeAsDynamic(store, workUnitStore, expression) { + if (workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'unstable-cache': + // Inside cache scopes, marking a scope as dynamic has no effect, + // because the outer cache scope creates a cache boundary. This is + // subtly different from reading a dynamic data source, which is + // forbidden inside a cache scope. + return; + case 'private-cache': + // A private cache scope is already dynamic by definition. + return; + case 'prerender-legacy': + case 'prerender-ppr': + case 'request': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + // If we're forcing dynamic rendering or we're forcing static rendering, we + // don't need to do anything here because the entire page is already dynamic + // or it's static and it should not throw or postpone here. + if (store.forceDynamic || store.forceStatic) return; + if (store.dynamicShouldError) { + throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \`dynamic = "error"\` couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), "__NEXT_ERROR_CODE", { + value: "E553", + enumerable: false, + configurable: true + }); + } + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender-ppr': + return postponeWithTracking(store.route, expression, workUnitStore.dynamicTracking); + case 'prerender-legacy': + workUnitStore.revalidate = 0; + // We aren't prerendering, but we are generating a static page. We need + // to bail out of static generation. + const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used ${expression}. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E550", + enumerable: false, + configurable: true + }); + store.dynamicUsageDescription = expression; + store.dynamicUsageStack = err.stack; + throw err; + case 'request': + if (process.env.NODE_ENV !== 'production') { + workUnitStore.usedDynamic = true; + } + break; + case 'generate-static-params': + break; + default: + workUnitStore; + } + } +} +function throwToInterruptStaticGeneration(expression, store, prerenderStore) { + // We aren't prerendering but we are generating a static page. We need to bail out of static generation + const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \`${expression}\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), "__NEXT_ERROR_CODE", { + value: "E558", + enumerable: false, + configurable: true + }); + prerenderStore.revalidate = 0; + store.dynamicUsageDescription = expression; + store.dynamicUsageStack = err.stack; + throw err; +} +function trackDynamicDataInDynamicRender(workUnitStore) { + switch(workUnitStore.type){ + case 'cache': + case 'unstable-cache': + // Inside cache scopes, marking a scope as dynamic has no effect, + // because the outer cache scope creates a cache boundary. This is + // subtly different from reading a dynamic data source, which is + // forbidden inside a cache scope. + return; + case 'private-cache': + // A private cache scope is already dynamic by definition. + return; + case 'prerender': + case 'prerender-runtime': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender-client': + case 'validation-client': + case 'generate-static-params': + break; + case 'request': + if (process.env.NODE_ENV !== 'production') { + workUnitStore.usedDynamic = true; + } + break; + default: + workUnitStore; + } +} +function abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore) { + const reason = `Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`; + const error = createPrerenderInterruptedError(reason); + prerenderStore.controller.abort(error); + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + // When we aren't debugging, we don't need to create another error for the + // stack trace. + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } +} +function abortOnSynchronousPlatformIOAccess(route, expression, errorWithStack, prerenderStore) { + const dynamicTracking = prerenderStore.dynamicTracking; + abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore); + // It is important that we set this tracking value after aborting. Aborts are executed + // synchronously except for the case where you abort during render itself. By setting this + // value late we can use it to determine if any of the aborted tasks are the task that + // called the sync IO expression in the first place. + if (dynamicTracking) { + if (dynamicTracking.syncDynamicErrorWithStack === null) { + dynamicTracking.syncDynamicErrorWithStack = errorWithStack; + } + } +} +function abortAndThrowOnSynchronousRequestDataAccess(route, expression, errorWithStack, prerenderStore) { + const prerenderSignal = prerenderStore.controller.signal; + if (prerenderSignal.aborted === false) { + // TODO it would be better to move this aborted check into the callsite so we can avoid making + // the error object when it isn't relevant to the aborting of the prerender however + // since we need the throw semantics regardless of whether we abort it is easier to land + // this way. See how this was handled with `abortOnSynchronousPlatformIOAccess` for a closer + // to ideal implementation + abortOnSynchronousDynamicDataAccess(route, expression, prerenderStore); + // It is important that we set this tracking value after aborting. Aborts are executed + // synchronously except for the case where you abort during render itself. By setting this + // value late we can use it to determine if any of the aborted tasks are the task that + // called the sync IO expression in the first place. + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + if (dynamicTracking.syncDynamicErrorWithStack === null) { + dynamicTracking.syncDynamicErrorWithStack = errorWithStack; + } + } + } + throw createPrerenderInterruptedError(`Route ${route} needs to bail out of prerendering at this point because it used ${expression}.`); +} +function Postpone({ reason, route }) { + const prerenderStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + const dynamicTracking = prerenderStore && prerenderStore.type === 'prerender-ppr' ? prerenderStore.dynamicTracking : null; + postponeWithTracking(route, reason, dynamicTracking); +} +function postponeWithTracking(route, expression, dynamicTracking) { + assertPostpone(); + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + // When we aren't debugging, we don't need to create another error for the + // stack trace. + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } + _react.default.unstable_postpone(createPostponeReason(route, expression)); +} +function createPostponeReason(route, expression) { + return `Route ${route} needs to bail out of prerendering at this point because it used ${expression}. ` + `React throws this special object to indicate where. It should not be caught by ` + `your own try/catch. Learn more: https://nextjs.org/docs/messages/ppr-caught-error`; +} +function isDynamicPostpone(err) { + if (typeof err === 'object' && err !== null && typeof err.message === 'string') { + return isDynamicPostponeReason(err.message); + } + return false; +} +function isDynamicPostponeReason(reason) { + return reason.includes('needs to bail out of prerendering at this point because it used') && reason.includes('Learn more: https://nextjs.org/docs/messages/ppr-caught-error'); +} +if (isDynamicPostponeReason(createPostponeReason('%%%', '^^^')) === false) { + throw Object.defineProperty(new Error('Invariant: isDynamicPostpone misidentified a postpone reason. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E296", + enumerable: false, + configurable: true + }); +} +const NEXT_PRERENDER_INTERRUPTED = 'NEXT_PRERENDER_INTERRUPTED'; +function createPrerenderInterruptedError(message) { + const error = Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + error.digest = NEXT_PRERENDER_INTERRUPTED; + return error; +} +function isPrerenderInterruptedError(error) { + return typeof error === 'object' && error !== null && error.digest === NEXT_PRERENDER_INTERRUPTED && 'name' in error && 'message' in error && error instanceof Error; +} +function accessedDynamicData(dynamicAccesses) { + return dynamicAccesses.length > 0; +} +function consumeDynamicAccess(serverDynamic, clientDynamic) { + // We mutate because we only call this once we are no longer writing + // to the dynamicTrackingState and it's more efficient than creating a new + // array. + serverDynamic.dynamicAccesses.push(...clientDynamic.dynamicAccesses); + return serverDynamic.dynamicAccesses; +} +function formatDynamicAPIAccesses(dynamicAccesses) { + return dynamicAccesses.filter((access)=>typeof access.stack === 'string' && access.stack.length > 0).map(({ expression, stack })=>{ + stack = stack.split('\n')// Remove the "Error: " prefix from the first line of the stack trace as + // well as the first 4 lines of the stack trace which is the distance + // from the user code and the `new Error().stack` call. + .slice(4).filter((line)=>{ + // Exclude Next.js internals from the stack trace. + if (line.includes('node_modules/next/')) { + return false; + } + // Exclude anonymous functions from the stack trace. + if (line.includes(' ()')) { + return false; + } + // Exclude Node.js internals from the stack trace. + if (line.includes(' (node:')) { + return false; + } + return true; + }).join('\n'); + return `Dynamic API Usage Debug - ${expression}:\n${stack}`; + }); +} +function assertPostpone() { + if (!hasPostpone) { + throw Object.defineProperty(new Error(`Invariant: React.unstable_postpone is not defined. This suggests the wrong version of React was loaded. This is a bug in Next.js`), "__NEXT_ERROR_CODE", { + value: "E224", + enumerable: false, + configurable: true + }); + } +} +function createRenderInBrowserAbortSignal() { + const controller = new AbortController(); + controller.abort(Object.defineProperty(new _bailouttocsr.BailoutToCSRError('Render in Browser'), "__NEXT_ERROR_CODE", { + value: "E721", + enumerable: false, + configurable: true + })); + return controller.signal; +} +function createHangingInputAbortSignal(workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + const controller = new AbortController(); + if (workUnitStore.cacheSignal) { + // If we have a cacheSignal it means we're in a prospective render. If + // the input we're waiting on is coming from another cache, we do want + // to wait for it so that we can resolve this cache entry too. + workUnitStore.cacheSignal.inputReady().then(()=>{ + controller.abort(); + }); + } else { + // Otherwise we're in the final render and we should already have all + // our caches filled. + // If the prerender uses stages, we have wait until the runtime stage, + // at which point all runtime inputs will be resolved. + // (otherwise, a runtime prerender might consider `cookies()` hanging + // even though they'd resolve in the next task.) + // + // We might still be waiting on some microtasks so we + // wait one tick before giving up. When we give up, we still want to + // render the content of this cache as deeply as we can so that we can + // suspend as deeply as possible in the tree or not at all if we don't + // end up waiting for the input. + if (// eslint-disable-next-line no-restricted-syntax -- We are discriminating between two different refined types and don't need an addition exhaustive switch here + workUnitStore.type === 'prerender-runtime' && workUnitStore.stagedRendering) { + const { stagedRendering } = workUnitStore; + stagedRendering.waitForStage((0, _dynamicrenderingutils.getRuntimeStage)(stagedRendering)).then(()=>(0, _scheduler.scheduleOnNextTick)(()=>controller.abort())); + } else { + (0, _scheduler.scheduleOnNextTick)(()=>controller.abort()); + } + } + return controller.signal; + case 'prerender-client': + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + return undefined; + default: + workUnitStore; + } +} +function annotateDynamicAccess(expression, prerenderStore) { + const dynamicTracking = prerenderStore.dynamicTracking; + if (dynamicTracking) { + dynamicTracking.dynamicAccesses.push({ + stack: dynamicTracking.isDebugDynamicAccesses ? new Error().stack : undefined, + expression + }); + } +} +function useDynamicRouteParams(expression) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore && workUnitStore) { + switch(workUnitStore.type){ + case 'prerender-client': + case 'prerender': + { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + // We are in a prerender with cacheComponents semantics. We are going to + // hang here and never resolve. This will cause the currently + // rendering component to effectively be a dynamic hole. + _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression)); + } + break; + } + case 'prerender-ppr': + { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + return postponeWithTracking(workStore.route, expression, workUnitStore.dynamicTracking); + } + break; + } + case 'validation-client': + { + break; + } + case 'prerender-runtime': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called during a runtime prerender. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E771", + enumerable: false, + configurable: true + }); + case 'cache': + case 'private-cache': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E745", + enumerable: false, + configurable: true + }); + case 'generate-static-params': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E1130", + enumerable: false, + configurable: true + }); + case 'prerender-legacy': + case 'request': + case 'unstable-cache': + break; + default: + workUnitStore; + } + } +} +function useDynamicSearchParams(expression) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (!workStore) { + // We assume pages router context and just return + return; + } + if (!workUnitStore) { + (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(expression); + } + switch(workUnitStore.type){ + case 'validation-client': + // During instant validation we try to behave as close to client as possible, + // so this shouldn't hang during SSR. + return; + case 'prerender-client': + { + _react.default.use((0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, expression)); + break; + } + case 'prerender-legacy': + case 'prerender-ppr': + { + if (workStore.forceStatic) { + return; + } + throw Object.defineProperty(new _bailouttocsr.BailoutToCSRError(expression), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + case 'prerender': + case 'prerender-runtime': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called from a Server Component. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E795", + enumerable: false, + configurable: true + }); + case 'cache': + case 'unstable-cache': + case 'private-cache': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called inside a cache scope. Next.js should be preventing ${expression} from being included in server components statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E745", + enumerable: false, + configurable: true + }); + case 'generate-static-params': + throw Object.defineProperty(new _invarianterror.InvariantError(`\`${expression}\` was called in \`generateStaticParams\`. Next.js should be preventing ${expression} from being included in server component files statically, but did not in this case.`), "__NEXT_ERROR_CODE", { + value: "E1130", + enumerable: false, + configurable: true + }); + case 'request': + return; + default: + workUnitStore; + } +} +const hasSuspenseRegex = /\n\s+at Suspense \(\)/; +// Common implicit body tags that React will treat as body when placed directly in html +const bodyAndImplicitTags = 'body|div|main|section|article|aside|header|footer|nav|form|p|span|h1|h2|h3|h4|h5|h6'; +// Detects when RootLayoutBoundary (our framework marker component) appears +// after Suspense in the component stack, indicating the root layout is wrapped +// within a Suspense boundary. Ensures no body/html/implicit-body components are in between. +// +// Example matches: +// at Suspense () +// at __next_root_layout_boundary__ () +// +// Or with other components in between (but not body/html/implicit-body): +// at Suspense () +// at SomeComponent () +// at __next_root_layout_boundary__ () +const hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex = new RegExp(`\\n\\s+at Suspense \\(\\)(?:(?!\\n\\s+at (?:${bodyAndImplicitTags}) \\(\\))[\\s\\S])*?\\n\\s+at ${_boundaryconstants.ROOT_LAYOUT_BOUNDARY_NAME} \\([^\\n]*\\)`); +const hasMetadataRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.METADATA_BOUNDARY_NAME}[\\n\\s]`); +const hasViewportRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.VIEWPORT_BOUNDARY_NAME}[\\n\\s]`); +const hasOutletRegex = new RegExp(`\\n\\s+at ${_boundaryconstants.OUTLET_BOUNDARY_NAME}[\\n\\s]`); +const hasInstantValidationBoundaryRegex = new RegExp(`\\n\\s+at ${_boundaryconstants1.INSTANT_VALIDATION_BOUNDARY_NAME}[\\n\\s]`); +function trackAllowedDynamicAccess(workStore, componentStack, dynamicValidation, clientDynamic) { + if (hasOutletRegex.test(componentStack)) { + // We don't need to track that this is dynamic. It is only so when something else is also dynamic. + return; + } else if (hasMetadataRegex.test(componentStack)) { + dynamicValidation.hasDynamicMetadata = true; + return; + } else if (hasViewportRegex.test(componentStack)) { + dynamicValidation.hasDynamicViewport = true; + return; + } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) { + // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule. + // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense + // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering. + dynamicValidation.hasAllowedDynamic = true; + dynamicValidation.hasSuspenseAboveBody = true; + return; + } else if (hasSuspenseRegex.test(componentStack)) { + // this error had a Suspense boundary above it so we don't need to report it as a source + // of disallowed + dynamicValidation.hasAllowedDynamic = true; + return; + } else if (clientDynamic.syncDynamicErrorWithStack) { + // This task was the task that called the sync error. + dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack); + return; + } else { + const message = `Route "${workStore.route}": Uncached data was accessed outside of ` + '. This delays the entire page from rendering, resulting in a ' + 'slow user experience. Learn more: ' + 'https://nextjs.org/docs/messages/blocking-route'; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1079", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicErrors.push(error); + return; + } +} +var DynamicHoleKind = /*#__PURE__*/ function(DynamicHoleKind) { + /** We know that this hole is caused by runtime data. */ DynamicHoleKind[DynamicHoleKind["Runtime"] = 1] = "Runtime"; + /** We know that this hole is caused by dynamic data. */ DynamicHoleKind[DynamicHoleKind["Dynamic"] = 2] = "Dynamic"; + return DynamicHoleKind; +}({}); +function createInstantValidationState(createInstantStack) { + return { + hasDynamicMetadata: false, + hasAllowedClientDynamicAboveBoundary: false, + dynamicMetadata: null, + hasDynamicViewport: false, + hasAllowedDynamic: false, + dynamicErrors: [], + validationPreventingErrors: [], + thrownErrorsOutsideBoundary: [], + createInstantStack + }; +} +function trackDynamicHoleInNavigation(workStore, componentStack, dynamicValidation, clientDynamic, kind, boundaryState) { + if (hasOutletRegex.test(componentStack)) { + // We don't need to track that this is dynamic. It is only so when something else is also dynamic. + return; + } + if (hasMetadataRegex.test(componentStack)) { + const usageDescription = kind === 1 ? `Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments.` : `Uncached data or \`connection()\` was accessed inside \`generateMetadata\`.`; + const message = `Route "${workStore.route}": ${usageDescription} Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1076", + enumerable: false, + configurable: true + }), componentStack, dynamicValidation.createInstantStack); + dynamicValidation.dynamicMetadata = error; + return; + } + if (hasViewportRegex.test(componentStack)) { + const usageDescription = kind === 1 ? `Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`.` : `Uncached data or \`connection()\` was accessed inside \`generateViewport\`.`; + const message = `Route "${workStore.route}": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1086", + enumerable: false, + configurable: true + }), componentStack, dynamicValidation.createInstantStack); + dynamicValidation.dynamicErrors.push(error); + return; + } + const boundaryLocation = hasInstantValidationBoundaryRegex.exec(componentStack); + if (!boundaryLocation) { + // We don't see the validation boundary in the component stack, + // so this hole must be coming from a shared parent. + // Shared parents are fully resolved and don't have RSC holes, + // but they can still suspend in a client component during SSR. + // If we managed to render all the validation boundaries, that means + // that the client holes aren't blocking validation and we can disregard them. + // Note that we don't even care whether they have suspense or not. + if (boundaryState.expectedIds.size === boundaryState.renderedIds.size) { + dynamicValidation.hasAllowedClientDynamicAboveBoundary = true; + dynamicValidation.hasAllowedDynamic = true // Holes outside the boundary contribute to allowing dynamic metadata + ; + return; + } else { + // TODO(instant-validation) TODO(NAR-787) + // If shared parents blocked us from validating, we should only log + // the errors from the innermost (segments), i.e. omit layouts whose + // slots managed to render (because clearly they didn't block validation) + const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because a Client Component in a parent segment prevented the page from rendering.`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1082", + enumerable: false, + configurable: true + }), componentStack, dynamicValidation.createInstantStack); + dynamicValidation.validationPreventingErrors.push(error); + return; + } + } else { + // The hole originates inside the validation boundary. + // + // Check if we have a Suspense above the hole, but below the validation boundary. + // If we do, then this dynamic usage wouldn't block a navigation to this subtree. + // Conversely, if the nearest suspense is above the validation boundary, then this subtree would block. + // + // Note that in the component stack, children come before parents. + // + // Valid: + // ... + // at Suspense + // ... + // at __next_prefetch_validation_boundary__ + // + // Invalid: + // ... + // at __next_prefetch_validation_boundary__ + // ... + // at Suspense + // + const suspenseLocation = hasSuspenseRegex.exec(componentStack); + if (suspenseLocation) { + if (suspenseLocation.index < boundaryLocation.index) { + dynamicValidation.hasAllowedDynamic = true; + return; + } else { + // invalid - fallthrough + } + } + } + if (clientDynamic.syncDynamicErrorWithStack) { + // This task was the task that called the sync error. + const syncError = clientDynamic.syncDynamicErrorWithStack; + if (dynamicValidation.createInstantStack !== null && syncError.cause === undefined) { + syncError.cause = dynamicValidation.createInstantStack(); + } + dynamicValidation.dynamicErrors.push(syncError); + return; + } + const usageDescription = kind === 1 ? `Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`.` : `Uncached data or \`connection()\` was accessed outside of \`\`.`; + const message = `Route "${workStore.route}": ${usageDescription} This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1078", + enumerable: false, + configurable: true + }), componentStack, dynamicValidation.createInstantStack); + dynamicValidation.dynamicErrors.push(error); + return; +} +function trackThrownErrorInNavigation(workStore, dynamicValidation, thrownValue, componentStack) { + const boundaryLocation = hasInstantValidationBoundaryRegex.exec(componentStack); + if (!boundaryLocation) { + // There's no validation boundary on the component stack. + // This error may have blocked a boundary from rendering. + // Wrap the error to provide component context. + // This helps for errors from node_modules which would otherwise + // have no useful stack information due to ignore-listing, + // e.g. next/dynamic with `ssr: false`. + const error = addErrorContext(Object.defineProperty(new Error('An error occurred while attempting to validate instant UI. This error may be preventing the validation from completing.', { + cause: thrownValue + }), "__NEXT_ERROR_CODE", { + value: "E1118", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.thrownErrorsOutsideBoundary.push(error); + } else { + // There's validation boundary on the component stack, + // so we know this error didn't block a validation boundary from rendering. + // However, this error might be hiding be hiding dynamic content that would + // cause validation to fail. + const suspenseLocation = hasSuspenseRegex.exec(componentStack); + if (suspenseLocation) { + if (suspenseLocation.index < boundaryLocation.index) { + // There's a Suspense below the validation boundary but above this error's location. + // This subtree can't fail instant validation because any potential + // dynamic holes would be guarded by the Suspense anyway, + // so we can allow this. + return; + } else { + // invalid - fallthrough + } + } + const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because an error prevented the target segment from rendering.`; + const error = addErrorContext(Object.defineProperty(new Error(message, { + cause: thrownValue + }), "__NEXT_ERROR_CODE", { + value: "E1112", + enumerable: false, + configurable: true + }), componentStack, null // TODO(instant-validation-build): conflicting use of cause + ); + dynamicValidation.validationPreventingErrors.push(error); + } +} +function trackDynamicHoleInRuntimeShell(workStore, componentStack, dynamicValidation, clientDynamic) { + if (hasOutletRegex.test(componentStack)) { + // We don't need to track that this is dynamic. It is only so when something else is also dynamic. + return; + } else if (hasMetadataRegex.test(componentStack)) { + const message = `Route "${workStore.route}": Uncached data or \`connection()\` was accessed inside \`generateMetadata\`. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1080", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicMetadata = error; + return; + } else if (hasViewportRegex.test(componentStack)) { + // TODO(instant-validation): If the page only has holes caused by runtime data, + // we won't find out if there's a suspense-above-body and error for dynamic viewport + // even if there is in fact a suspense-above-body + const message = `Route "${workStore.route}": Uncached data or \`connection()\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1077", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicErrors.push(error); + return; + } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) { + // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule. + // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense + // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering. + dynamicValidation.hasAllowedDynamic = true; + dynamicValidation.hasSuspenseAboveBody = true; + return; + } else if (hasSuspenseRegex.test(componentStack)) { + // this error had a Suspense boundary above it so we don't need to report it as a source + // of disallowed + dynamicValidation.hasAllowedDynamic = true; + return; + } else if (clientDynamic.syncDynamicErrorWithStack) { + // This task was the task that called the sync error. + dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack); + return; + } + const message = `Route "${workStore.route}": Uncached data or \`connection()\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1084", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicErrors.push(error); + return; +} +function trackDynamicHoleInStaticShell(workStore, componentStack, dynamicValidation, clientDynamic) { + if (hasOutletRegex.test(componentStack)) { + // We don't need to track that this is dynamic. It is only so when something else is also dynamic. + return; + } else if (hasMetadataRegex.test(componentStack)) { + const message = `Route "${workStore.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateMetadata\` or you have file-based metadata such as icons that depend on dynamic params segments. Except for this instance, the page would have been entirely prerenderable which may have been the intended behavior. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1085", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicMetadata = error; + return; + } else if (hasViewportRegex.test(componentStack)) { + const message = `Route "${workStore.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed inside \`generateViewport\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1081", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicErrors.push(error); + return; + } else if (hasSuspenseBeforeRootLayoutWithoutBodyOrImplicitBodyRegex.test(componentStack)) { + // For Suspense within body, the prelude wouldn't be empty so it wouldn't violate the empty static shells rule. + // But if you have Suspense above body, the prelude is empty but we allow that because having Suspense + // is an explicit signal from the user that they acknowledge the empty shell and want dynamic rendering. + dynamicValidation.hasAllowedDynamic = true; + dynamicValidation.hasSuspenseAboveBody = true; + return; + } else if (hasSuspenseRegex.test(componentStack)) { + // this error had a Suspense boundary above it so we don't need to report it as a source + // of disallowed + dynamicValidation.hasAllowedDynamic = true; + return; + } else if (clientDynamic.syncDynamicErrorWithStack) { + // This task was the task that called the sync error. + dynamicValidation.dynamicErrors.push(clientDynamic.syncDynamicErrorWithStack); + return; + } else { + const message = `Route "${workStore.route}": Runtime data such as \`cookies()\`, \`headers()\`, \`params\`, or \`searchParams\` was accessed outside of \`\`. This delays the entire page from rendering, resulting in a slow user experience. Learn more: https://nextjs.org/docs/messages/blocking-route`; + const error = addErrorContext(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1083", + enumerable: false, + configurable: true + }), componentStack, null); + dynamicValidation.dynamicErrors.push(error); + return; + } +} +/** + * In dev mode, we prefer using the owner stack, otherwise the provided + * component stack is used. + * + * Accepts an already-created Error so the SWC error-code plugin can see the + * `new Error(...)` call at each call site and auto-assign error codes. + */ function addErrorContext(error, componentStack, createInstantStack) { + const ownerStack = process.env.NODE_ENV !== 'production' && _react.default.captureOwnerStack ? _react.default.captureOwnerStack() : null; + if (createInstantStack !== null) { + error.cause = createInstantStack(); + } + // TODO go back to owner stack here if available. This is temporarily using componentStack to get the right + // + error.stack = error.name + ': ' + error.message + (ownerStack || componentStack); + return error; +} +var PreludeState = /*#__PURE__*/ function(PreludeState) { + PreludeState[PreludeState["Full"] = 0] = "Full"; + PreludeState[PreludeState["Empty"] = 1] = "Empty"; + PreludeState[PreludeState["Errored"] = 2] = "Errored"; + return PreludeState; +}({}); +function logDisallowedDynamicError(workStore, error) { + console.error(error); + if (process.env.NODE_ENV !== 'development') { + console.error(`To get a more detailed stack trace and pinpoint the issue, try one of the following: + - Start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error. + - Rerun the production build with \`next build --debug-prerender\` to generate better stack traces.`); + } else if (!process.env.__NEXT_DEV_SERVER) { + console.error(`To debug the issue, start the app in development mode by running \`next dev\`, then open "${workStore.route}" in your browser to investigate the error.`); + } +} +function throwIfDisallowedDynamic(workStore, prelude, dynamicValidation, serverDynamic) { + if (serverDynamic.syncDynamicErrorWithStack) { + logDisallowedDynamicError(workStore, serverDynamic.syncDynamicErrorWithStack); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + if (prelude !== 0) { + if (dynamicValidation.hasSuspenseAboveBody) { + // This route has opted into allowing fully dynamic rendering + // by including a Suspense boundary above the body. In this case + // a lack of a shell is not considered disallowed so we simply return + return; + } + // We didn't have any sync bailouts but there may be user code which + // blocked the root. We would have captured these during the prerender + // and can log them here and then terminate the build/validating render + const dynamicErrors = dynamicValidation.dynamicErrors; + if (dynamicErrors.length > 0) { + for(let i = 0; i < dynamicErrors.length; i++){ + logDisallowedDynamicError(workStore, dynamicErrors[i]); + } + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + // If we got this far then the only other thing that could be blocking + // the root is dynamic Viewport. If this is dynamic then + // you need to opt into that by adding a Suspense boundary above the body + // to indicate your are ok with fully dynamic rendering. + if (dynamicValidation.hasDynamicViewport) { + console.error(`Route "${workStore.route}" has a \`generateViewport\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) without explicitly allowing fully dynamic rendering. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-viewport`); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + if (prelude === 1) { + // If we ever get this far then we messed up the tracking of invalid dynamic. + // We still adhere to the constraint that you must produce a shell but invite the + // user to report this as a bug in Next.js. + console.error(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason. This is a bug in Next.js.`); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + } else { + if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.hasDynamicMetadata) { + console.error(`Route "${workStore.route}" has a \`generateMetadata\` that depends on Request data (\`cookies()\`, etc...) or uncached external data (\`fetch(...)\`, etc...) when the rest of the route does not. See more info here: https://nextjs.org/docs/messages/next-prerender-dynamic-metadata`); + throw new _staticgenerationbailout.StaticGenBailoutError(); + } + } +} +function getStaticShellDisallowedDynamicReasons(workStore, prelude, dynamicValidation, configAllowsBlocking) { + if (configAllowsBlocking || dynamicValidation.hasSuspenseAboveBody) { + // This route has opted into allowing fully dynamic rendering + // by including a Suspense boundary above the body. In this case + // a lack of a shell is not considered disallowed so we simply return + return []; + } + if (prelude !== 0) { + // We didn't have any sync bailouts but there may be user code which + // blocked the root. We would have captured these during the prerender + // and can log them here and then terminate the build/validating render + const dynamicErrors = dynamicValidation.dynamicErrors; + if (dynamicErrors.length > 0) { + return dynamicErrors; + } + if (prelude === 1) { + // If we ever get this far then we messed up the tracking of invalid dynamic. + // We still adhere to the constraint that you must produce a shell but invite the + // user to report this as a bug in Next.js. + return [ + Object.defineProperty(new _invarianterror.InvariantError(`Route "${workStore.route}" did not produce a static shell and Next.js was unable to determine a reason.`), "__NEXT_ERROR_CODE", { + value: "E936", + enumerable: false, + configurable: true + }) + ]; + } + } else { + // We have a prelude but we might still have dynamic metadata without any other dynamic access + if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.dynamicErrors.length === 0 && dynamicValidation.dynamicMetadata) { + return [ + dynamicValidation.dynamicMetadata + ]; + } + } + // We had a non-empty prelude and there are no dynamic holes + return []; +} +function getNavigationDisallowedDynamicReasons(workStore, prelude, dynamicValidation, validationSampleTracking, boundaryState) { + // If we have errors related to missing samples, those should take precedence over everything else. + if (validationSampleTracking) { + const { missingSampleErrors } = validationSampleTracking; + if (missingSampleErrors.length > 0) { + return missingSampleErrors; + } + } + const { validationPreventingErrors } = dynamicValidation; + if (validationPreventingErrors.length > 0) { + return validationPreventingErrors; + } + if (boundaryState.renderedIds.size < boundaryState.expectedIds.size) { + const { thrownErrorsOutsideBoundary, createInstantStack } = dynamicValidation; + if (thrownErrorsOutsideBoundary.length === 0) { + const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering for an unknown reason.`; + const error = createInstantStack !== null ? createInstantStack() : new Error(); + error.name = 'Error'; + error.message = message; + return [ + error + ]; + } else if (thrownErrorsOutsideBoundary.length === 1) { + const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to the following error.`; + const error = createInstantStack !== null ? createInstantStack() : new Error(); + error.name = 'Error'; + error.message = message; + return [ + error, + thrownErrorsOutsideBoundary[0] + ]; + } else { + const message = `Route "${workStore.route}": Could not validate \`unstable_instant\` because the target segment was prevented from rendering, likely due to one of the following errors.`; + const error = createInstantStack !== null ? createInstantStack() : new Error(); + error.name = 'Error'; + error.message = message; + return [ + error, + ...thrownErrorsOutsideBoundary + ]; + } + } + // NOTE: We don't care about Suspense above body here, + // we're only concerned with the validation boundary + if (prelude !== 0) { + const dynamicErrors = dynamicValidation.dynamicErrors; + if (dynamicErrors.length > 0) { + return dynamicErrors; + } + if (prelude === 1) { + // If a client component suspended prevented us from rendering a shell + // but didn't block validation, we don't require a prelude. + if (dynamicValidation.hasAllowedClientDynamicAboveBoundary) { + return []; + } + // If we ever get this far then we messed up the tracking of invalid dynamic. + return [ + Object.defineProperty(new _invarianterror.InvariantError(`Route "${workStore.route}" failed to render during instant validation and Next.js was unable to determine a reason.`), "__NEXT_ERROR_CODE", { + value: "E1055", + enumerable: false, + configurable: true + }) + ]; + } + } else { + const dynamicErrors = dynamicValidation.dynamicErrors; + if (dynamicErrors.length > 0) { + return dynamicErrors; + } + if (dynamicValidation.hasAllowedDynamic === false && dynamicValidation.dynamicMetadata) { + return [ + dynamicValidation.dynamicMetadata + ]; + } + } + // We had a non-empty prelude and there are no dynamic holes + return []; +} + +//# sourceMappingURL=dynamic-rendering.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/encryption-utils-server.js b/cli/app/node_modules/next/dist/server/app-render/encryption-utils-server.js new file mode 100644 index 00000000000..2e83a7a9e83 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/encryption-utils-server.js @@ -0,0 +1,114 @@ +// This file should never be bundled into application's runtime code and should +// stay in the Next.js server. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "generateEncryptionKeyBase64", { + enumerable: true, + get: function() { + return generateEncryptionKeyBase64; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _cachedir = require("../cache-dir"); +const _encryptionutils = require("./encryption-utils"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +// Keep the key in memory as it should never change during the lifetime of the server in +// both development and production. +let __next_encryption_key_generation_promise = null; +const CONFIG_FILE = '.rscinfo'; +const ENCRYPTION_KEY = 'encryption.key'; +const ENCRYPTION_EXPIRE_AT = 'encryption.expire_at'; +const EXPIRATION = 1000 * 60 * 60 * 24 * 14 // 14 days +; +async function writeCache(distDir, configValue) { + const cacheBaseDir = (0, _cachedir.getStorageDirectory)(distDir); + if (!cacheBaseDir) return; + const configPath = _path.default.join(cacheBaseDir, CONFIG_FILE); + if (!_fs.default.existsSync(cacheBaseDir)) { + await _fs.default.promises.mkdir(cacheBaseDir, { + recursive: true + }); + } + await _fs.default.promises.writeFile(configPath, JSON.stringify({ + [ENCRYPTION_KEY]: configValue, + [ENCRYPTION_EXPIRE_AT]: Date.now() + EXPIRATION + })); +} +// This utility is used to get a key for the cache directory. If the +// key is not present, it will generate a new one and store it in the +// cache directory inside dist. +// The key will also expire after a certain amount of time. Once it +// expires, a new one will be generated. +// During the lifetime of the server, it will be reused and never refreshed. +async function loadOrGenerateKey(distDir, isBuild, generateKey) { + const cacheBaseDir = (0, _cachedir.getStorageDirectory)(distDir); + if (!cacheBaseDir) { + // There's no persistent storage available. We generate a new key. + // This also covers development time. + return await generateKey(); + } + const configPath = _path.default.join(cacheBaseDir, CONFIG_FILE); + async function hasCachedKey() { + if (!_fs.default.existsSync(configPath)) return false; + try { + const config = JSON.parse(await _fs.default.promises.readFile(configPath, 'utf8')); + if (!config) return false; + if (typeof config[ENCRYPTION_KEY] !== 'string' || typeof config[ENCRYPTION_EXPIRE_AT] !== 'number') { + return false; + } + // For build time, we need to rotate the key if it's expired. Otherwise + // (next start) we have to keep the key as it is so the runtime key matches + // the build time key. + if (isBuild && config[ENCRYPTION_EXPIRE_AT] < Date.now()) { + return false; + } + const cachedKey = config[ENCRYPTION_KEY]; + // If encryption key is provided via env, and it's not same as valid cache, + // we should not use the cached key and respect the env key. + if (cachedKey && process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY && cachedKey !== process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY) { + return false; + } + return cachedKey; + } catch { + // Broken config file. We should generate a new key and overwrite it. + return false; + } + } + const maybeValidKey = await hasCachedKey(); + if (typeof maybeValidKey === 'string') { + return maybeValidKey; + } + const key = await generateKey(); + await writeCache(distDir, key); + return key; +} +async function generateEncryptionKeyBase64({ isBuild, distDir }) { + // This avoids it being generated multiple times in parallel. + if (!__next_encryption_key_generation_promise) { + __next_encryption_key_generation_promise = loadOrGenerateKey(distDir, isBuild, async ()=>{ + const providedKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY; + if (providedKey) { + return providedKey; + } + const key = await crypto.subtle.generateKey({ + name: 'AES-GCM', + length: 256 + }, true, [ + 'encrypt', + 'decrypt' + ]); + const exported = await crypto.subtle.exportKey('raw', key); + return btoa((0, _encryptionutils.arrayBufferToString)(exported)); + }); + } + return __next_encryption_key_generation_promise; +} + +//# sourceMappingURL=encryption-utils-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/encryption-utils.js b/cli/app/node_modules/next/dist/server/app-render/encryption-utils.js new file mode 100644 index 00000000000..322825e930c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/encryption-utils.js @@ -0,0 +1,93 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + arrayBufferToString: null, + decrypt: null, + encrypt: null, + getActionEncryptionKey: null, + stringToUint8Array: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + arrayBufferToString: function() { + return arrayBufferToString; + }, + decrypt: function() { + return decrypt; + }, + encrypt: function() { + return encrypt; + }, + getActionEncryptionKey: function() { + return getActionEncryptionKey; + }, + stringToUint8Array: function() { + return stringToUint8Array; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _manifestssingleton = require("./manifests-singleton"); +let __next_loaded_action_key; +function arrayBufferToString(buffer) { + const bytes = new Uint8Array(buffer); + const len = bytes.byteLength; + // @anonrig: V8 has a limit of 65535 arguments in a function. + // For len < 65535, this is faster. + // https://github.com/vercel/next.js/pull/56377#pullrequestreview-1656181623 + if (len < 65535) { + return String.fromCharCode.apply(null, bytes); + } + let binary = ''; + for(let i = 0; i < len; i++){ + binary += String.fromCharCode(bytes[i]); + } + return binary; +} +function stringToUint8Array(binary) { + const len = binary.length; + const arr = new Uint8Array(len); + for(let i = 0; i < len; i++){ + arr[i] = binary.charCodeAt(i); + } + return arr; +} +function encrypt(key, iv, data) { + return crypto.subtle.encrypt({ + name: 'AES-GCM', + iv + }, key, data); +} +function decrypt(key, iv, data) { + return crypto.subtle.decrypt({ + name: 'AES-GCM', + iv + }, key, data); +} +async function getActionEncryptionKey() { + if (__next_loaded_action_key) { + return __next_loaded_action_key; + } + const serverActionsManifest = (0, _manifestssingleton.getServerActionsManifest)(); + const rawKey = process.env.NEXT_SERVER_ACTIONS_ENCRYPTION_KEY || serverActionsManifest.encryptionKey; + if (rawKey === undefined) { + throw Object.defineProperty(new _invarianterror.InvariantError('Missing encryption key for Server Actions'), "__NEXT_ERROR_CODE", { + value: "E571", + enumerable: false, + configurable: true + }); + } + __next_loaded_action_key = await crypto.subtle.importKey('raw', stringToUint8Array(atob(rawKey)), 'AES-GCM', true, [ + 'encrypt', + 'decrypt' + ]); + return __next_loaded_action_key; +} + +//# sourceMappingURL=encryption-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/flight-render-result.js b/cli/app/node_modules/next/dist/server/app-render/flight-render-result.js new file mode 100644 index 00000000000..32d8d75a52c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/flight-render-result.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "FlightRenderResult", { + enumerable: true, + get: function() { + return FlightRenderResult; + } +}); +const _approuterheaders = require("../../client/components/app-router-headers"); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("../render-result")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class FlightRenderResult extends _renderresult.default { + constructor(response, metadata = {}, waitUntil){ + super(response, { + contentType: _approuterheaders.RSC_CONTENT_TYPE_HEADER, + metadata, + waitUntil + }); + } +} + +//# sourceMappingURL=flight-render-result.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/get-asset-query-string.js b/cli/app/node_modules/next/dist/server/app-render/get-asset-query-string.js new file mode 100644 index 00000000000..e5cc920e70e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/get-asset-query-string.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getAssetQueryString", { + enumerable: true, + get: function() { + return getAssetQueryString; + } +}); +const isDev = process.env.NODE_ENV === 'development'; +const isTurbopack = !!process.env.TURBOPACK; +function getAssetQueryString(ctx, addTimestamp) { + let qs = ''; + // In development we add the request timestamp to allow react to + // reload assets when a new RSC response is received. + // Turbopack handles HMR of assets itself and react doesn't need to reload them + // so this approach is not needed for Turbopack. + const shouldAddVersion = isDev && !isTurbopack && addTimestamp; + if (shouldAddVersion) { + qs += `?v=${ctx.requestTimestamp}`; + } + if (ctx.sharedContext.clientAssetToken) { + qs += `${shouldAddVersion ? '&' : '?'}dpl=${ctx.sharedContext.clientAssetToken}`; + } + return qs; +} + +//# sourceMappingURL=get-asset-query-string.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js b/cli/app/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js new file mode 100644 index 00000000000..c206e2bf838 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/get-css-inlined-link-tags.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getLinkAndScriptTags", { + enumerable: true, + get: function() { + return getLinkAndScriptTags; + } +}); +const _manifestssingleton = require("./manifests-singleton"); +function getLinkAndScriptTags(filePath, injectedCSS, injectedScripts, collectNewImports) { + const filePathWithoutExt = filePath.replace(/\.[^.]+$/, ''); + const cssChunks = new Set(); + const jsChunks = new Set(); + const { entryCSSFiles, entryJSFiles } = (0, _manifestssingleton.getClientReferenceManifest)(); + const cssFiles = entryCSSFiles[filePathWithoutExt]; + const jsFiles = entryJSFiles == null ? void 0 : entryJSFiles[filePathWithoutExt]; + if (cssFiles) { + for (const css of cssFiles){ + if (!injectedCSS.has(css.path)) { + if (collectNewImports) { + injectedCSS.add(css.path); + } + cssChunks.add(css); + } + } + } + if (jsFiles) { + for (const file of jsFiles){ + if (!injectedScripts.has(file)) { + if (collectNewImports) { + injectedScripts.add(file); + } + jsChunks.add(file); + } + } + } + return { + styles: [ + ...cssChunks + ], + scripts: [ + ...jsChunks + ] + }; +} + +//# sourceMappingURL=get-css-inlined-link-tags.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/get-layer-assets.js b/cli/app/node_modules/next/dist/server/app-render/get-layer-assets.js new file mode 100644 index 00000000000..b21ae048e19 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/get-layer-assets.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getLayerAssets", { + enumerable: true, + get: function() { + return getLayerAssets; + } +}); +const _getcssinlinedlinktags = require("./get-css-inlined-link-tags"); +const _getpreloadablefonts = require("./get-preloadable-fonts"); +const _getassetquerystring = require("./get-asset-query-string"); +const _encodeuripath = require("../../shared/lib/encode-uri-path"); +const _rendercssresource = require("./render-css-resource"); +function getLayerAssets({ ctx, layoutOrPagePath, injectedCSS: injectedCSSWithCurrentLayout, injectedJS: injectedJSWithCurrentLayout, injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout, preloadCallbacks }) { + const { componentMod: { createElement } } = ctx; + const { styles: styleTags, scripts: scriptTags } = layoutOrPagePath ? (0, _getcssinlinedlinktags.getLinkAndScriptTags)(layoutOrPagePath, injectedCSSWithCurrentLayout, injectedJSWithCurrentLayout, true) : { + styles: [], + scripts: [] + }; + const preloadedFontFiles = layoutOrPagePath ? (0, _getpreloadablefonts.getPreloadableFonts)(ctx.renderOpts.nextFontManifest, layoutOrPagePath, injectedFontPreloadTagsWithCurrentLayout) : null; + if (preloadedFontFiles) { + if (preloadedFontFiles.length) { + for(let i = 0; i < preloadedFontFiles.length; i++){ + const fontFilename = preloadedFontFiles[i]; + const ext = /\.(woff|woff2|eot|ttf|otf)$/.exec(fontFilename)[1]; + const type = `font/${ext}`; + const href = `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(fontFilename)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`; + preloadCallbacks.push(()=>{ + ctx.componentMod.preloadFont(href, type, ctx.renderOpts.crossOrigin, ctx.nonce); + }); + } + } else { + try { + let url = new URL(ctx.assetPrefix); + preloadCallbacks.push(()=>{ + ctx.componentMod.preconnect(url.origin, 'anonymous', ctx.nonce); + }); + } catch (error) { + // assetPrefix must not be a fully qualified domain name. We assume + // we should preconnect to same origin instead + preloadCallbacks.push(()=>{ + ctx.componentMod.preconnect('/', 'anonymous', ctx.nonce); + }); + } + } + } + const styles = (0, _rendercssresource.renderCssResource)(styleTags, ctx, preloadCallbacks); + const scripts = scriptTags ? scriptTags.map((href, index)=>{ + const fullSrc = `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(href)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`; + return createElement('script', { + src: fullSrc, + async: true, + key: `script-${index}`, + nonce: ctx.nonce + }); + }) : []; + return styles.length || scripts.length ? [ + ...styles, + ...scripts + ] : null; +} + +//# sourceMappingURL=get-layer-assets.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/get-preloadable-fonts.js b/cli/app/node_modules/next/dist/server/app-render/get-preloadable-fonts.js new file mode 100644 index 00000000000..f4f5b9d2e2b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/get-preloadable-fonts.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getPreloadableFonts", { + enumerable: true, + get: function() { + return getPreloadableFonts; + } +}); +function getPreloadableFonts(nextFontManifest, filePath, injectedFontPreloadTags) { + if (!nextFontManifest || !filePath) { + return null; + } + const filepathWithoutExtension = filePath.replace(/\.[^.]+$/, ''); + const fontFiles = new Set(); + let foundFontUsage = false; + const preloadedFontFiles = nextFontManifest.app[filepathWithoutExtension]; + if (preloadedFontFiles) { + foundFontUsage = true; + for (const fontFile of preloadedFontFiles){ + if (!injectedFontPreloadTags.has(fontFile)) { + fontFiles.add(fontFile); + injectedFontPreloadTags.add(fontFile); + } + } + } + if (fontFiles.size) { + return [ + ...fontFiles + ].sort(); + } else if (foundFontUsage && injectedFontPreloadTags.size === 0) { + return []; + } else { + return null; + } +} + +//# sourceMappingURL=get-preloadable-fonts.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js b/cli/app/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js new file mode 100644 index 00000000000..a3113c79038 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/get-script-nonce-from-header.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getScriptNonceFromHeader", { + enumerable: true, + get: function() { + return getScriptNonceFromHeader; + } +}); +const _htmlescape = require("../htmlescape"); +function getScriptNonceFromHeader(cspHeaderValue) { + var _directive_split_slice_map_find; + const directives = cspHeaderValue// Directives are split by ';'. + .split(';').map((directive)=>directive.trim()); + // First try to find the directive for the 'script-src', otherwise try to + // fallback to the 'default-src'. + const directive = directives.find((dir)=>dir.startsWith('script-src')) || directives.find((dir)=>dir.startsWith('default-src')); + // If no directive could be found, then we're done. + if (!directive) { + return; + } + // Extract the nonce from the directive + const nonce = (_directive_split_slice_map_find = directive.split(' ')// Remove the 'strict-src'/'default-src' string, this can't be the nonce. + .slice(1).map((source)=>source.trim())// Find the first source with the 'nonce-' prefix. + .find((source)=>source.startsWith("'nonce-") && source.length > 8 && source.endsWith("'"))) == null ? void 0 : _directive_split_slice_map_find.slice(7, -1); + // If we could't find the nonce, then we're done. + if (!nonce) { + return; + } + // Don't accept the nonce value if it contains HTML escape characters. + // Technically, the spec requires a base64'd value, but this is just an + // extra layer. + if (_htmlescape.ESCAPE_REGEX.test(nonce)) { + throw Object.defineProperty(new Error('Nonce value from Content-Security-Policy contained HTML escape characters.\nLearn more: https://nextjs.org/docs/messages/nonce-contained-invalid-characters'), "__NEXT_ERROR_CODE", { + value: "E440", + enumerable: false, + configurable: true + }); + } + return nonce; +} + +//# sourceMappingURL=get-script-nonce-from-header.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js b/cli/app/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js new file mode 100644 index 00000000000..c41c642166b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/get-short-dynamic-param-type.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "dynamicParamTypes", { + enumerable: true, + get: function() { + return dynamicParamTypes; + } +}); +const dynamicParamTypes = { + catchall: 'c', + 'catchall-intercepted-(..)(..)': 'ci(..)(..)', + 'catchall-intercepted-(.)': 'ci(.)', + 'catchall-intercepted-(..)': 'ci(..)', + 'catchall-intercepted-(...)': 'ci(...)', + 'optional-catchall': 'oc', + dynamic: 'd', + 'dynamic-intercepted-(..)(..)': 'di(..)(..)', + 'dynamic-intercepted-(.)': 'di(.)', + 'dynamic-intercepted-(..)': 'di(..)', + 'dynamic-intercepted-(...)': 'di(...)' +}; + +//# sourceMappingURL=get-short-dynamic-param-type.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js b/cli/app/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js new file mode 100644 index 00000000000..a465dc745ac --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/has-loading-component-in-tree.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "hasLoadingComponentInTree", { + enumerable: true, + get: function() { + return hasLoadingComponentInTree; + } +}); +function hasLoadingComponentInTree(tree) { + const [, parallelRoutes, { loading }] = tree; + if (loading) { + return true; + } + return Object.values(parallelRoutes).some((parallelRoute)=>hasLoadingComponentInTree(parallelRoute)); +} + +//# sourceMappingURL=has-loading-component-in-tree.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js new file mode 100644 index 00000000000..fd063ab6850 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/boundary-constants.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "INSTANT_VALIDATION_BOUNDARY_NAME", { + enumerable: true, + get: function() { + return INSTANT_VALIDATION_BOUNDARY_NAME; + } +}); +const INSTANT_VALIDATION_BOUNDARY_NAME = '__next_instant_validation_boundary__'; + +//# sourceMappingURL=boundary-constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js new file mode 100644 index 00000000000..8a19da5edf9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/boundary-tracking.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createValidationBoundaryTracking", { + enumerable: true, + get: function() { + return createValidationBoundaryTracking; + } +}); +function createValidationBoundaryTracking() { + return { + expectedIds: new Set(), + renderedIds: new Set() + }; +} + +//# sourceMappingURL=boundary-tracking.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-config.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-config.js new file mode 100644 index 00000000000..7852499b316 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-config.js @@ -0,0 +1,181 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + anySegmentHasRuntimePrefetchEnabled: null, + anySegmentNeedsInstantValidationInBuild: null, + anySegmentNeedsInstantValidationInDev: null, + findSegmentsWithInstantConfig: null, + isPageAllowedToBlock: null, + resolveInstantConfigSamplesForPage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + anySegmentHasRuntimePrefetchEnabled: function() { + return anySegmentHasRuntimePrefetchEnabled; + }, + anySegmentNeedsInstantValidationInBuild: function() { + return anySegmentNeedsInstantValidationInBuild; + }, + anySegmentNeedsInstantValidationInDev: function() { + return anySegmentNeedsInstantValidationInDev; + }, + findSegmentsWithInstantConfig: function() { + return findSegmentsWithInstantConfig; + }, + isPageAllowedToBlock: function() { + return isPageAllowedToBlock; + }, + resolveInstantConfigSamplesForPage: function() { + return resolveInstantConfigSamplesForPage; + } +}); +const _appdirmodule = require("../../lib/app-dir-module"); +const _parseloadertree = require("../../../shared/lib/router/utils/parse-loader-tree"); +const _workasyncstorageexternal = require("../work-async-storage.external"); +async function anySegmentHasRuntimePrefetchEnabled(tree) { + const { mod: layoutOrPageMod } = await (0, _appdirmodule.getLayoutOrPageModule)(tree); + // TODO(restart-on-cache-miss): Does this work correctly for client page/layout modules? + const instantConfig = layoutOrPageMod ? layoutOrPageMod.unstable_instant : undefined; + const hasRuntimePrefetch = instantConfig && typeof instantConfig === 'object' ? instantConfig.prefetch === 'runtime' : false; + if (hasRuntimePrefetch) { + return true; + } + const { parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + for(const parallelRouteKey in parallelRoutes){ + const parallelRoute = parallelRoutes[parallelRouteKey]; + const hasChildRuntimePrefetch = await anySegmentHasRuntimePrefetchEnabled(parallelRoute); + if (hasChildRuntimePrefetch) { + return true; + } + } + return false; +} +async function isPageAllowedToBlock(tree) { + const { mod: layoutOrPageMod } = await (0, _appdirmodule.getLayoutOrPageModule)(tree); + // TODO(restart-on-cache-miss): Does this work correctly for client page/layout modules? + const instantConfig = layoutOrPageMod ? layoutOrPageMod.unstable_instant : undefined; + // If we encounter a non-false instant config before a instant=false, + // the page isn't allowed to block. The config expresses a requirement for + // instant UI, so we should make sure that a static shell exists. + // (even if it'd use runtime prefetching for client navs) + if (instantConfig !== undefined) { + if (typeof instantConfig === 'object') { + return false; + } else if (instantConfig === false) { + return true; + } + } + const { parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + for(const parallelRouteKey in parallelRoutes){ + const parallelRoute = parallelRoutes[parallelRouteKey]; + const subtreeIsBlocking = await isPageAllowedToBlock(parallelRoute); + if (subtreeIsBlocking) { + return true; + } + } + return false; +} +/** + * Checks if any segments in the loader tree have `instant` configs that need validating. + * NOTE: Client navigations call this multiple times, so we cache it. + * */ // Shared helper (not exported, not cached — called by the cached wrappers) +async function anySegmentNeedsInstantValidation(rootTree, mode) { + const segments = await findSegmentsWithInstantConfig(rootTree); + // Check if there's any configs with `prefetch: 'static'` or `mode: 'instant'`. + // (If there's only `false`, there's no need to run validation). + // If any segment has `unstable_disableValidation`, we skip validation for the whole tree. + let needsValidation = false; + for (const { config } of segments){ + if (typeof config === 'object') { + if (config.unstable_disableValidation === true || mode === 'dev' && config.unstable_disableDevValidation === true || mode === 'build' && config.unstable_disableBuildValidation === true) { + return false; + } + // do not short-circuit, some other segment might still have `unstable_disableValidation` + needsValidation = true; + } + } + return needsValidation; +} +const anySegmentNeedsInstantValidationInDev = cacheScopedToWorkStore(async (rootTree)=>anySegmentNeedsInstantValidation(rootTree, 'dev')); +const anySegmentNeedsInstantValidationInBuild = cacheScopedToWorkStore(async (rootTree)=>anySegmentNeedsInstantValidation(rootTree, 'build')); +const findSegmentsWithInstantConfig = cacheScopedToWorkStore(async (rootTree)=>{ + const results = []; + async function visit(tree, path) { + const { mod: layoutOrPageMod } = await (0, _appdirmodule.getLayoutOrPageModule)(tree); + // TODO(restart-on-cache-miss): Does this work correctly for client page/layout modules? + const instantConfig = layoutOrPageMod ? layoutOrPageMod.unstable_instant : undefined; + if (instantConfig !== undefined) { + results.push({ + path, + config: instantConfig + }); + } + const { parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + for(const parallelRouteKey in parallelRoutes){ + const childTree = parallelRoutes[parallelRouteKey]; + await visit(childTree, [ + ...path, + parallelRouteKey + ]); + } + } + await visit(rootTree, []); + return results; +}); +const resolveInstantConfigSamplesForPage = async (tree)=>{ + const { mod: layoutOrPageMod } = await (0, _appdirmodule.getLayoutOrPageModule)(tree); + const instantConfig = layoutOrPageMod ? layoutOrPageMod.unstable_instant : undefined; + let samples = null; + if (instantConfig !== undefined && typeof instantConfig === 'object' && instantConfig.samples) { + samples = instantConfig.samples; + } + // The samples from inner segments override samples from outer segments, + // i.e. a page overrides the samples from a layout. + // We do not perform any merging logic. + const { parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + for(const parallelRouteKey in parallelRoutes){ + if (parallelRouteKey !== 'children') { + continue; + } + const childTree = parallelRoutes[parallelRouteKey]; + const childSamples = await resolveInstantConfigSamplesForPage(childTree); + if (childSamples !== null) { + samples = childSamples; + } + } + return samples; +}; +/** + * A simple cache wrapper for 1-argument functions. + * The cache will live as long as the current WorkStore, + * i.e. it's scoped to a single request. + */ function cacheScopedToWorkStore(func) { + const resultsPerWorkStore = new WeakMap(); + return (arg)=>{ + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (!workStore) { + // No caching. + return func(arg); + } + let results = resultsPerWorkStore.get(workStore); + if (results && results.has(arg)) { + return results.get(arg); + } + const result = func(arg); + if (!results) { + results = new WeakMap(); + resultsPerWorkStore.set(workStore, results); + } + results.set(arg, result); + return result; + }; +} + +//# sourceMappingURL=instant-config.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js new file mode 100644 index 00000000000..f8bc6215f6d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples-client.js @@ -0,0 +1,128 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + expectCompleteParamsInClientValidation: null, + instrumentParamsForClientValidation: null, + instrumentSearchParamsForClientValidation: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + expectCompleteParamsInClientValidation: function() { + return expectCompleteParamsInClientValidation; + }, + instrumentParamsForClientValidation: function() { + return instrumentParamsForClientValidation; + }, + instrumentSearchParamsForClientValidation: function() { + return instrumentSearchParamsForClientValidation; + } +}); +const _workunitasyncstorageexternal = require("../work-unit-async-storage.external"); +const _workasyncstorageexternal = require("../work-async-storage.external"); +const _instantsamples = require("./instant-samples"); +const _instantvalidationerror = require("./instant-validation-error"); +function instrumentParamsForClientValidation(underlyingParams) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore && workUnitStore) { + switch(workUnitStore.type){ + case 'validation-client': + { + if (workUnitStore.validationSamples) { + const declaredKeys = new Set(Object.keys(workUnitStore.validationSamples.params ?? {})); + return (0, _instantsamples.createExhaustiveParamsProxy)(underlyingParams, declaredKeys, workStore.route); + } + break; + } + case 'prerender-runtime': + case 'prerender-client': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender': + case 'cache': + case 'request': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return underlyingParams; +} +function expectCompleteParamsInClientValidation(expression) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore && workUnitStore) { + switch(workUnitStore.type){ + case 'validation-client': + { + if (workUnitStore.validationSamples) { + const fallbackParams = workUnitStore.fallbackRouteParams; + if (fallbackParams && fallbackParams.size > 0) { + const missingParams = Array.from(fallbackParams.keys()); + (0, _instantsamples.trackMissingSampleErrorAndThrow)(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${workStore.route}" called ${expression} but param${missingParams.length > 1 ? 's' : ''} ${missingParams.map((p)=>`"${p}"`).join(', ')} ${missingParams.length > 1 ? 'are' : 'is'} not defined in the \`samples\` of \`unstable_instant\`. ` + `${expression} requires all route params to be provided.`), "__NEXT_ERROR_CODE", { + value: "E1109", + enumerable: false, + configurable: true + })); + } + } + break; + } + case 'prerender-runtime': + case 'prerender-client': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender': + case 'cache': + case 'request': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } +} +function instrumentSearchParamsForClientValidation(underlyingSearchParams) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workStore && workUnitStore) { + switch(workUnitStore.type){ + case 'validation-client': + { + if (workUnitStore.validationSamples) { + const declaredKeys = new Set(Object.keys(workUnitStore.validationSamples.searchParams ?? {})); + return (0, _instantsamples.createExhaustiveURLSearchParamsProxy)(underlyingSearchParams, declaredKeys, workStore.route); + } + break; + } + case 'prerender-runtime': + case 'prerender-client': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender': + case 'cache': + case 'request': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return underlyingSearchParams; +} + +//# sourceMappingURL=instant-samples-client.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js new file mode 100644 index 00000000000..b248a96dc28 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-samples.js @@ -0,0 +1,432 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + assertRootParamInSamples: null, + createCookiesFromSample: null, + createDraftModeForValidation: null, + createExhaustiveParamsProxy: null, + createExhaustiveSearchParamsProxy: null, + createExhaustiveURLSearchParamsProxy: null, + createHeadersFromSample: null, + createRelativeURLFromSamples: null, + createValidationSampleTracking: null, + trackMissingSampleError: null, + trackMissingSampleErrorAndThrow: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + assertRootParamInSamples: function() { + return assertRootParamInSamples; + }, + createCookiesFromSample: function() { + return createCookiesFromSample; + }, + createDraftModeForValidation: function() { + return createDraftModeForValidation; + }, + createExhaustiveParamsProxy: function() { + return createExhaustiveParamsProxy; + }, + createExhaustiveSearchParamsProxy: function() { + return createExhaustiveSearchParamsProxy; + }, + createExhaustiveURLSearchParamsProxy: function() { + return createExhaustiveURLSearchParamsProxy; + }, + createHeadersFromSample: function() { + return createHeadersFromSample; + }, + createRelativeURLFromSamples: function() { + return createRelativeURLFromSamples; + }, + createValidationSampleTracking: function() { + return createValidationSampleTracking; + }, + trackMissingSampleError: function() { + return trackMissingSampleError; + }, + trackMissingSampleErrorAndThrow: function() { + return trackMissingSampleErrorAndThrow; + } +}); +const _cookies = require("../../web/spec-extension/cookies"); +const _requestcookies = require("../../web/spec-extension/adapters/request-cookies"); +const _headers = require("../../web/spec-extension/adapters/headers"); +const _getsegmentparam = require("../../../shared/lib/router/utils/get-segment-param"); +const _parserelativeurl = require("../../../shared/lib/router/utils/parse-relative-url"); +const _invarianterror = require("../../../shared/lib/invariant-error"); +const _instantvalidationerror = require("./instant-validation-error"); +const _workunitasyncstorageexternal = require("../work-unit-async-storage.external"); +const _reflectutils = require("../../../shared/lib/utils/reflect-utils"); +function createValidationSampleTracking() { + return { + missingSampleErrors: [] + }; +} +function getExpectedSampleTracking() { + let validationSampleTracking = null; + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'request': + case 'validation-client': + // TODO(instant-validation-build): do we need any special handling for caches? + validationSampleTracking = workUnitStore.validationSampleTracking ?? null; + break; + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'prerender-legacy': + case 'prerender-ppr': + case 'prerender-client': + case 'prerender': + case 'prerender-runtime': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + if (!validationSampleTracking) { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected to have a workUnitStore that provides validationSampleTracking'), "__NEXT_ERROR_CODE", { + value: "E1110", + enumerable: false, + configurable: true + }); + } + return validationSampleTracking; +} +function trackMissingSampleError(error) { + const validationSampleTracking = getExpectedSampleTracking(); + validationSampleTracking.missingSampleErrors.push(error); +} +function trackMissingSampleErrorAndThrow(error) { + // TODO(instant-validation-build): this should abort the render + trackMissingSampleError(error); + throw error; +} +function createCookiesFromSample(sampleCookies, route) { + const declaredNames = new Set(); + const cookies = new _cookies.RequestCookies(new Headers()); + if (sampleCookies) { + for (const cookie of sampleCookies){ + declaredNames.add(cookie.name); + if (cookie.value !== null) { + cookies.set(cookie.name, cookie.value); + } + } + } + const sealed = _requestcookies.RequestCookiesAdapter.seal(cookies); + return new Proxy(sealed, { + get (target, prop, receiver) { + if (prop === 'has') { + const originalMethod = Reflect.get(target, prop, receiver); + const wrappedMethod = function(name) { + if (!declaredNames.has(name)) { + trackMissingSampleErrorAndThrow(createMissingCookieSampleError(route, name)); + } + return originalMethod.call(target, name); + }; + return wrappedMethod; + } + if (prop === 'get') { + const originalMethod = Reflect.get(target, prop, receiver); + const wrappedMethod = function(nameOrCookie) { + let name; + if (typeof nameOrCookie === 'string') { + name = nameOrCookie; + } else if (nameOrCookie && typeof nameOrCookie === 'object' && typeof nameOrCookie.name === 'string') { + name = nameOrCookie.name; + } else { + // This is an invalid input. Pass it through to the original method so it can error. + return originalMethod.call(target, nameOrCookie); + } + if (!declaredNames.has(name)) { + trackMissingSampleErrorAndThrow(createMissingCookieSampleError(route, name)); + } + return originalMethod.call(target, name); + }; + return wrappedMethod; + } + // TODO(instant-validation-build): what should getAll do? + // Maybe we should only allow it if there's an array (possibly empty?) + return Reflect.get(target, prop, receiver); + } + }); +} +function createMissingCookieSampleError(route, name) { + return Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed cookie "${name}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`cookies\` array, ` + `or \`{ name: "${name}", value: null }\` if it should be absent.`), "__NEXT_ERROR_CODE", { + value: "E1115", + enumerable: false, + configurable: true + }); +} +function createHeadersFromSample(rawSampleHeaders, sampleCookies, route) { + // If we have cookie samples, add a `cookie` header to match. + // Accessing it will be implicitly allowed by the proxy -- + // if the user defined some cookies, accessing the "cookie" header is also fine. + const sampleHeaders = rawSampleHeaders ? [ + ...rawSampleHeaders + ] : []; + if (sampleHeaders.find(([name])=>name.toLowerCase() === 'cookie')) { + throw Object.defineProperty(new _instantvalidationerror.InstantValidationError('Invalid sample: Defining cookies via a "cookie" header is not supported. Use `cookies: [{ name: ..., value: ... }]` instead.'), "__NEXT_ERROR_CODE", { + value: "E1111", + enumerable: false, + configurable: true + }); + } + if (sampleCookies) { + const cookieHeaderValue = sampleCookies.toString(); + sampleHeaders.push([ + 'cookie', + // if the `cookies` samples were empty, or they were all `null`, then we have no cookies, + // and the header isn't present, but should remains readable, so we set it to null. + cookieHeaderValue !== '' ? cookieHeaderValue : null + ]); + } + const declaredNames = new Set(); + const headersInit = {}; + for (const [name, value] of sampleHeaders){ + declaredNames.add(name.toLowerCase()); + if (value !== null) { + headersInit[name.toLowerCase()] = value; + } + } + const sealed = _headers.HeadersAdapter.seal(_headers.HeadersAdapter.from(headersInit)); + return new Proxy(sealed, { + get (target, prop, receiver) { + if (prop === 'get' || prop === 'has') { + const originalMethod = Reflect.get(target, prop, receiver); + const patchedMethod = function(rawName) { + const name = rawName.toLowerCase(); + if (!declaredNames.has(name)) { + trackMissingSampleErrorAndThrow(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed header "${name}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`headers\` array, ` + `or \`["${name}", null]\` if it should be absent.`), "__NEXT_ERROR_CODE", { + value: "E1116", + enumerable: false, + configurable: true + })); + } + // typescript can't reconcile a union of functions with a union of return types, + // so we have to cast the original return type away + return originalMethod.call(target, name); + }; + return patchedMethod; + } + return Reflect.get(target, prop, receiver); + } + }); +} +function createDraftModeForValidation() { + // Create a minimal DraftModeProvider-compatible object + // that always reports draft mode as disabled. + // + // private properties that can't be set from outside the class. + return { + get isEnabled () { + return false; + }, + enable () { + throw Object.defineProperty(new Error('Draft mode cannot be enabled during build-time instant validation.'), "__NEXT_ERROR_CODE", { + value: "E1092", + enumerable: false, + configurable: true + }); + }, + disable () { + throw Object.defineProperty(new Error('Draft mode cannot be disabled during build-time instant validation.'), "__NEXT_ERROR_CODE", { + value: "E1094", + enumerable: false, + configurable: true + }); + } + }; +} +function createExhaustiveParamsProxy(underlyingParams, declaredParamNames, route) { + return new Proxy(underlyingParams, { + get (target, prop, receiver) { + if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop) && // Only error when accessing a param that is part of the route but wasn't provided. + // accessing properties that aren't expected to be a valid param value is fine. + prop in underlyingParams && !declaredParamNames.has(prop)) { + trackMissingSampleErrorAndThrow(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed param "${prop}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`params\` object.`), "__NEXT_ERROR_CODE", { + value: "E1095", + enumerable: false, + configurable: true + })); + } + return Reflect.get(target, prop, receiver); + } + }); +} +function createExhaustiveSearchParamsProxy(searchParams, declaredSearchParamNames, route) { + return new Proxy(searchParams, { + get (target, prop, receiver) { + if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop) && !declaredSearchParamNames.has(prop)) { + trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, prop)); + } + return Reflect.get(target, prop, receiver); + }, + has (target, prop) { + if (typeof prop === 'string' && !_reflectutils.wellKnownProperties.has(prop) && !declaredSearchParamNames.has(prop)) { + trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, prop)); + } + return Reflect.has(target, prop); + } + }); +} +function createExhaustiveURLSearchParamsProxy(searchParams, declaredSearchParamNames, route) { + return new Proxy(searchParams, { + get (target, prop, receiver) { + // Intercept method calls that access specific param names + if (prop === 'get' || prop === 'getAll' || prop === 'has') { + const originalMathod = Reflect.get(target, prop, receiver); + return (name)=>{ + if (typeof name === 'string' && !declaredSearchParamNames.has(name)) { + trackMissingSampleErrorAndThrow(createMissingSearchParamSampleError(route, name)); + } + return originalMathod.call(target, name); + }; + } + const value = Reflect.get(target, prop, receiver); + // Prevent `TypeError: Value of "this" must be of type URLSearchParams` for methods + if (typeof value === 'function' && !Object.hasOwn(target, prop)) { + return value.bind(target); + } + return value; + } + }); +} +function createMissingSearchParamSampleError(route, name) { + return Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed searchParam "${name}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`searchParams\` object, ` + `or \`{ "${name}": null }\` if it should be absent.`), "__NEXT_ERROR_CODE", { + value: "E1098", + enumerable: false, + configurable: true + }); +} +function createRelativeURLFromSamples(route, sampleParams, sampleSearchParams) { + // Build searchParams query object and URL search string from sample + const pathname = createPathnameFromRouteAndSampleParams(route, sampleParams ?? {}); + let search = ''; + if (sampleSearchParams) { + const qs = createURLSearchParamsFromSample(sampleSearchParams).toString(); + if (qs) { + search = '?' + qs; + } + } + return (0, _parserelativeurl.parseRelativeUrl)(pathname + search, undefined, true); +} +function createURLSearchParamsFromSample(sampleSearchParams) { + const result = new URLSearchParams(); + if (sampleSearchParams) { + for (const [key, value] of Object.entries(sampleSearchParams)){ + if (value === null || value === undefined) continue; + if (Array.isArray(value)) { + for (const v of value){ + result.append(key, v); + } + } else { + result.set(key, value); + } + } + } + return result; +} +/** + * Substitute sample params into `workStore.route` to create a plausible pathname. + * TODO(instant-validation-build): this logic is somewhat hacky and likely incomplete, + * but it should be good enough for some initial testing. + */ function createPathnameFromRouteAndSampleParams(route, params) { + let interpolatedSegments = []; + const rawSegments = route.split('/'); + for (const rawSegment of rawSegments){ + const param = (0, _getsegmentparam.getSegmentParam)(rawSegment); + if (param) { + switch(param.paramType){ + case 'catchall': + case 'optional-catchall': + { + let paramValue = params[param.paramName]; + if (paramValue === undefined) { + // The value for the param was not provided. `usePathname` will detect this and throw + // before this can surface to userspace. Use `[...NAME]` as a placeholder for the param value + // in case it pops up somewhere unexpectedly. + paramValue = [ + rawSegment + ]; + } else if (!Array.isArray(paramValue)) { + // NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow` + throw Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Expected sample param value for segment '${rawSegment}' to be an array of strings, got ${typeof paramValue}`), "__NEXT_ERROR_CODE", { + value: "E1104", + enumerable: false, + configurable: true + }); + } + interpolatedSegments.push(...paramValue.map((v)=>encodeURIComponent(v))); + break; + } + case 'dynamic': + { + let paramValue = params[param.paramName]; + if (paramValue === undefined) { + // The value for the param was not provided. `usePathname` will detect this and throw + // before this can surface to userspace. Use `[NAME]` as a placeholder for the param value + // in case it pops up somewhere unexpectedly. + paramValue = rawSegment; + } else if (typeof paramValue !== 'string') { + // NOTE: this happens outside of render, so we don't need `trackMissingSampleErrorAndThrow` + throw Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Expected sample param value for segment '${rawSegment}' to be a string, got ${typeof paramValue}`), "__NEXT_ERROR_CODE", { + value: "E1108", + enumerable: false, + configurable: true + }); + } + interpolatedSegments.push(encodeURIComponent(paramValue)); + break; + } + case 'catchall-intercepted-(..)(..)': + case 'catchall-intercepted-(.)': + case 'catchall-intercepted-(..)': + case 'catchall-intercepted-(...)': + case 'dynamic-intercepted-(..)(..)': + case 'dynamic-intercepted-(.)': + case 'dynamic-intercepted-(..)': + case 'dynamic-intercepted-(...)': + { + // TODO(instant-validation-build): i don't know how these are supposed to work, or if we can even get them here + throw Object.defineProperty(new _invarianterror.InvariantError('Not implemented: Validation of interception routes'), "__NEXT_ERROR_CODE", { + value: "E1106", + enumerable: false, + configurable: true + }); + } + default: + { + param.paramType; + } + } + } else { + interpolatedSegments.push(rawSegment); + } + } + return interpolatedSegments.join('/'); +} +function assertRootParamInSamples(workStore, sampleParams, paramName) { + if (sampleParams && paramName in sampleParams) { + // The param is defined in the samples. + } else { + const route = workStore.route; + trackMissingSampleErrorAndThrow(Object.defineProperty(new _instantvalidationerror.InstantValidationError(`Route "${route}" accessed root param "${paramName}" which is not defined in the \`samples\` ` + `of \`unstable_instant\`. Add it to the sample's \`params\` object.`), "__NEXT_ERROR_CODE", { + value: "E1114", + enumerable: false, + configurable: true + })); + } +} + +//# sourceMappingURL=instant-samples.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js new file mode 100644 index 00000000000..ef43261fa98 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/instant-validation-error.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + InstantValidationError: null, + isInstantValidationError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + InstantValidationError: function() { + return InstantValidationError; + }, + isInstantValidationError: function() { + return isInstantValidationError; + } +}); +const INSTANT_VALIDATION_ERROR_DIGEST = 'INSTANT_VALIDATION_ERROR'; +function isInstantValidationError(err) { + return !!(err && typeof err === 'object' && err instanceof Error && err.digest === INSTANT_VALIDATION_ERROR_DIGEST); +} +class InstantValidationError extends Error { + constructor(...args){ + super(...args), this.digest = INSTANT_VALIDATION_ERROR_DIGEST; + } +} + +//# sourceMappingURL=instant-validation-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js b/cli/app/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js new file mode 100644 index 00000000000..bcc753063fd --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/instant-validation/stream-utils.js @@ -0,0 +1,96 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createNodeStreamFromChunks: null, + createNodeStreamWithLateRelease: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createNodeStreamFromChunks: function() { + return createNodeStreamFromChunks; + }, + createNodeStreamWithLateRelease: function() { + return createNodeStreamWithLateRelease; + } +}); +const _invarianterror = require("../../../shared/lib/invariant-error"); +function createNodeStreamWithLateRelease(partialChunks, allChunks, releaseSignal) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('createNodeStreamWithLateRelease cannot be used in the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E993", + enumerable: false, + configurable: true + }); + } else { + const { Readable } = require('node:stream'); + let nextIndex = 0; + const readable = new Readable({ + read () { + while(nextIndex < partialChunks.length){ + this.push(partialChunks[nextIndex]); + nextIndex++; + } + } + }); + releaseSignal.addEventListener('abort', ()=>{ + // Flush any remaining chunks from the original set + while(nextIndex < partialChunks.length){ + readable.push(partialChunks[nextIndex]); + nextIndex++; + } + // Flush all chunks since we're now aborted and can't schedule + // any new work but these chunks might unblock debugInfo + while(nextIndex < allChunks.length){ + readable.push(allChunks[nextIndex]); + nextIndex++; + } + setImmediate(()=>{ + readable.push(null); + }); + }, { + once: true + }); + return readable; + } +} +function createNodeStreamFromChunks(chunks, signal) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('createNodeStreamFromChunks cannot be used in the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E945", + enumerable: false, + configurable: true + }); + } else { + const { Readable } = require('node:stream'); + // If there's a signal, delay closing until it fires + if (signal) { + signal.addEventListener('abort', ()=>{ + readable.push(null); + }, { + once: true + }); + } + let nextIndex = 0; + const readable = new Readable({ + read () { + while(nextIndex < chunks.length){ + this.push(chunks[nextIndex]); + nextIndex++; + } + if (!signal) { + this.push(null); + } + } + }); + return readable; + } +} + +//# sourceMappingURL=stream-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/interop-default.js b/cli/app/node_modules/next/dist/server/app-render/interop-default.js new file mode 100644 index 00000000000..0170363f3c0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/interop-default.js @@ -0,0 +1,17 @@ +/** + * Interop between "export default" and "module.exports". + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "interopDefault", { + enumerable: true, + get: function() { + return interopDefault; + } +}); +function interopDefault(mod) { + return mod.default || mod; +} + +//# sourceMappingURL=interop-default.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js b/cli/app/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js new file mode 100644 index 00000000000..ce42284fb51 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/make-get-server-inserted-html.js @@ -0,0 +1,92 @@ +/* eslint-disable @next/internal/no-ambiguous-jsx -- whole module is used in React Client */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "makeGetServerInsertedHTML", { + enumerable: true, + get: function() { + return makeGetServerInsertedHTML; + } +}); +const _jsxruntime = require("react/jsx-runtime"); +const _react = /*#__PURE__*/ _interop_require_default(require("react")); +const _httpaccessfallback = require("../../client/components/http-access-fallback/http-access-fallback"); +const _redirect = require("../../client/components/redirect"); +const _redirecterror = require("../../client/components/redirect-error"); +const _server = require("react-dom/server"); +const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper"); +const _redirectstatuscode = require("../../client/components/redirect-status-code"); +const _addpathprefix = require("../../shared/lib/router/utils/add-path-prefix"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function makeGetServerInsertedHTML({ polyfills, renderServerInsertedHTML, serverCapturedErrors, tracingMetadata, basePath }) { + let flushedErrorMetaTagsUntilIndex = 0; + // These only need to be rendered once, they'll be set to empty arrays once flushed. + let polyfillTags = polyfills.map((polyfill)=>{ + return /*#__PURE__*/ (0, _jsxruntime.jsx)("script", { + ...polyfill + }, polyfill.src); + }); + let traceMetaTags = (tracingMetadata || []).map(({ key, value }, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { + name: key, + content: value + }, `next-trace-data-${index}`)); + return async function getServerInsertedHTML() { + // Loop through all the errors that have been captured but not yet + // flushed. + const errorMetaTags = []; + while(flushedErrorMetaTagsUntilIndex < serverCapturedErrors.length){ + const error = serverCapturedErrors[flushedErrorMetaTagsUntilIndex]; + flushedErrorMetaTagsUntilIndex++; + if ((0, _httpaccessfallback.isHTTPAccessFallbackError)(error)) { + errorMetaTags.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { + name: "robots", + content: "noindex" + }, error.digest), process.env.NODE_ENV === 'development' ? /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { + name: "next-error", + content: "not-found" + }, "next-error") : null); + } else if ((0, _redirecterror.isRedirectError)(error)) { + const redirectUrl = (0, _addpathprefix.addPathPrefix)((0, _redirect.getURLFromRedirectError)(error), basePath); + const statusCode = (0, _redirect.getRedirectStatusCodeFromError)(error); + const isPermanent = statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect ? true : false; + if (redirectUrl) { + errorMetaTags.push(/*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { + id: "__next-page-redirect", + httpEquiv: "refresh", + content: `${isPermanent ? 0 : 1};url=${redirectUrl}` + }, error.digest)); + } + } + } + const serverInsertedHTML = renderServerInsertedHTML(); + // Skip React rendering if we know the content is empty. + if (polyfillTags.length === 0 && traceMetaTags.length === 0 && errorMetaTags.length === 0 && Array.isArray(serverInsertedHTML) && serverInsertedHTML.length === 0) { + return ''; + } + const stream = await (0, _server.renderToReadableStream)(/*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { + children: [ + polyfillTags, + serverInsertedHTML, + traceMetaTags, + errorMetaTags + ] + }), { + // Larger chunk because this isn't sent over the network. + // Let's set it to 1MB. + progressiveChunkSize: 1024 * 1024 + }); + // The polyfills and trace metadata have been flushed, so they don't need to be rendered again + polyfillTags = []; + traceMetaTags = []; + // There's no need to wait for the stream to be ready + // e.g. calling `await stream.allReady` because `streamToString` will + // wait and decode the stream progressively with better parallelism. + return (0, _nodewebstreamshelper.streamToString)(stream); + }; +} + +//# sourceMappingURL=make-get-server-inserted-html.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/manifests-singleton.js b/cli/app/node_modules/next/dist/server/app-render/manifests-singleton.js new file mode 100644 index 00000000000..e2c3be15130 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/manifests-singleton.js @@ -0,0 +1,264 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getClientReferenceManifest: null, + getServerActionsManifest: null, + getServerModuleMap: null, + selectWorkerForForwarding: null, + setManifestsSingleton: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getClientReferenceManifest: function() { + return getClientReferenceManifest; + }, + getServerActionsManifest: function() { + return getServerActionsManifest; + }, + getServerModuleMap: function() { + return getServerModuleMap; + }, + selectWorkerForForwarding: function() { + return selectWorkerForForwarding; + }, + setManifestsSingleton: function() { + return setManifestsSingleton; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _pathhasprefix = require("../../shared/lib/router/utils/path-has-prefix"); +const _removepathprefix = require("../../shared/lib/router/utils/remove-path-prefix"); +const _workasyncstorageexternal = require("./work-async-storage.external"); +// This is a global singleton that is, among other things, also used to +// encode/decode bound args of server function closures. This can't be using a +// AsyncLocalStorage as it might happen at the module level. +const MANIFESTS_SINGLETON = Symbol.for('next.server.manifests'); +const globalThisWithManifests = globalThis; +function createProxiedClientReferenceManifest(clientReferenceManifestsPerRoute) { + const createMappingProxy = (prop)=>{ + return new Proxy({}, { + get (_, id) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (workStore) { + const currentManifest = clientReferenceManifestsPerRoute.get(workStore.route); + if (currentManifest == null ? void 0 : currentManifest[prop][id]) { + return currentManifest[prop][id]; + } + // In development, we also check all other manifests to see if the + // module exists there. This is to support a scenario where React's + // I/O tracking (dev-only) creates a connection from one page to + // another through an emitted async I/O node that references client + // components from the other page, e.g. in owner props. + // TODO: Maybe we need to add a `debugBundlerConfig` option to React + // to avoid this workaround. The current workaround has the + // disadvantage that one might accidentally or intentionally share + // client references across pages (e.g. by storing them in a global + // variable), which would then only be caught in production. + if (process.env.NODE_ENV !== 'production') { + for (const [route, manifest] of clientReferenceManifestsPerRoute){ + if (route === workStore.route) { + continue; + } + const entry = manifest[prop][id]; + if (entry !== undefined) { + return entry; + } + } + } + } else { + // If there's no work store defined, we can assume that a client + // reference manifest is needed during module evaluation, e.g. to + // create a server function using a higher-order function. This + // might also use client components which need to be serialized by + // Flight, and therefore client references need to be resolvable. In + // that case we search all page manifests to find the module. + for (const manifest of clientReferenceManifestsPerRoute.values()){ + const entry = manifest[prop][id]; + if (entry !== undefined) { + return entry; + } + } + } + return undefined; + } + }); + }; + const mappingProxies = new Map(); + return new Proxy({}, { + get (_, prop) { + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + switch(prop){ + case 'moduleLoading': + case 'entryCSSFiles': + case 'entryJSFiles': + { + if (!workStore) { + throw Object.defineProperty(new _invarianterror.InvariantError(`Cannot access "${prop}" without a work store.`), "__NEXT_ERROR_CODE", { + value: "E952", + enumerable: false, + configurable: true + }); + } + const currentManifest = clientReferenceManifestsPerRoute.get(workStore.route); + if (!currentManifest) { + throw Object.defineProperty(new _invarianterror.InvariantError(`The client reference manifest for route "${workStore.route}" does not exist.`), "__NEXT_ERROR_CODE", { + value: "E951", + enumerable: false, + configurable: true + }); + } + return currentManifest[prop]; + } + case 'clientModules': + case 'rscModuleMapping': + case 'edgeRscModuleMapping': + case 'ssrModuleMapping': + case 'edgeSSRModuleMapping': + { + let proxy = mappingProxies.get(prop); + if (!proxy) { + proxy = createMappingProxy(prop); + mappingProxies.set(prop, proxy); + } + return proxy; + } + default: + { + throw Object.defineProperty(new _invarianterror.InvariantError(`This is a proxied client reference manifest. The property "${String(prop)}" is not handled.`), "__NEXT_ERROR_CODE", { + value: "E953", + enumerable: false, + configurable: true + }); + } + } + } + }); +} +/** + * This function creates a Flight-acceptable server module map proxy from our + * Server Reference Manifest similar to our client module map. This is because + * our manifest contains a lot of internal Next.js data that are relevant to the + * runtime, workers, etc. that React doesn't need to know. + */ function createServerModuleMap() { + return new Proxy({}, { + get: (_, id)=>{ + var _getServerActionsManifest__id, _getServerActionsManifest_; + const workers = (_getServerActionsManifest_ = getServerActionsManifest()[process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node']) == null ? void 0 : (_getServerActionsManifest__id = _getServerActionsManifest_[id]) == null ? void 0 : _getServerActionsManifest__id.workers; + if (!workers) { + return undefined; + } + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + let workerEntry; + if (workStore) { + workerEntry = workers[normalizeWorkerPageName(workStore.page)]; + } else { + // If there's no work store defined, we can assume that a server + // module map is needed during module evaluation, e.g. to create a + // server action using a higher-order function. Therefore it should be + // safe to return any entry from the manifest that matches the action + // ID. They all refer to the same module ID, which must also exist in + // the current page bundle. TODO: This is currently not guaranteed in + // Turbopack, and needs to be fixed. + workerEntry = Object.values(workers).at(0); + } + if (!workerEntry) { + return undefined; + } + const { moduleId, async } = workerEntry; + return { + id: moduleId, + name: id, + chunks: [], + async + }; + } + }); +} +/** + * The flight entry loader keys actions by bundlePath. bundlePath corresponds + * with the relative path (including 'app') to the page entrypoint. + */ function normalizeWorkerPageName(pageName) { + if ((0, _pathhasprefix.pathHasPrefix)(pageName, 'app')) { + return pageName; + } + return 'app' + pageName; +} +/** + * Converts a bundlePath (relative path to the entrypoint) to a routable page + * name. + */ function denormalizeWorkerPageName(bundlePath) { + return (0, _apppaths.normalizeAppPath)((0, _removepathprefix.removePathPrefix)(bundlePath, 'app')); +} +function selectWorkerForForwarding(actionId, pageName) { + var _serverActionsManifest__actionId; + const serverActionsManifest = getServerActionsManifest(); + const workers = (_serverActionsManifest__actionId = serverActionsManifest[process.env.NEXT_RUNTIME === 'edge' ? 'edge' : 'node'][actionId]) == null ? void 0 : _serverActionsManifest__actionId.workers; + // There are no workers to handle this action, nothing to forward to. + if (!workers) { + return; + } + // If there is an entry for the current page, we don't need to forward. + if (workers[normalizeWorkerPageName(pageName)]) { + return; + } + // Otherwise, grab the first worker that has a handler for this action id. + return denormalizeWorkerPageName(Object.keys(workers)[0]); +} +function setManifestsSingleton({ page, clientReferenceManifest, serverActionsManifest: rawServerActionsManifest }) { + const existingSingleton = globalThisWithManifests[MANIFESTS_SINGLETON]; + const serverActionsManifest = { + encryptionKey: rawServerActionsManifest.encryptionKey, + // Use null-prototypes for the action objects to prevent prototype pollution + // from affecting action ID lookups. + node: Object.assign(Object.create(null), rawServerActionsManifest.node), + edge: Object.assign(Object.create(null), rawServerActionsManifest.edge) + }; + if (existingSingleton) { + existingSingleton.clientReferenceManifestsPerRoute.set((0, _apppaths.normalizeAppPath)(page), clientReferenceManifest); + existingSingleton.serverActionsManifest = serverActionsManifest; + } else { + const clientReferenceManifestsPerRoute = new Map([ + [ + (0, _apppaths.normalizeAppPath)(page), + clientReferenceManifest + ] + ]); + const proxiedClientReferenceManifest = createProxiedClientReferenceManifest(clientReferenceManifestsPerRoute); + globalThisWithManifests[MANIFESTS_SINGLETON] = { + clientReferenceManifestsPerRoute, + proxiedClientReferenceManifest, + serverActionsManifest, + serverModuleMap: createServerModuleMap() + }; + } +} +function getManifestsSingleton() { + const manifestSingleton = globalThisWithManifests[MANIFESTS_SINGLETON]; + if (!manifestSingleton) { + throw Object.defineProperty(new _invarianterror.InvariantError('The manifests singleton was not initialized.'), "__NEXT_ERROR_CODE", { + value: "E950", + enumerable: false, + configurable: true + }); + } + return manifestSingleton; +} +function getClientReferenceManifest() { + return getManifestsSingleton().proxiedClientReferenceManifest; +} +function getServerActionsManifest() { + return getManifestsSingleton().serverActionsManifest; +} +function getServerModuleMap() { + return getManifestsSingleton().serverModuleMap; +} + +//# sourceMappingURL=manifests-singleton.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js b/cli/app/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js new file mode 100644 index 00000000000..737f30e30fc --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/metadata-insertion/create-server-inserted-metadata.js @@ -0,0 +1,28 @@ +/** + * For chromium based browsers (Chrome, Edge, etc.) and Safari, + * icons need to stay under to be picked up by the browser. + * + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createServerInsertedMetadata", { + enumerable: true, + get: function() { + return createServerInsertedMetadata; + } +}); +const REINSERT_ICON_SCRIPT = `\ +document.querySelectorAll('body link[rel="icon"], body link[rel="apple-touch-icon"]').forEach(el => document.head.appendChild(el))`; +function createServerInsertedMetadata(nonce) { + let inserted = false; + return async function getServerInsertedMetadata() { + if (inserted) { + return ''; + } + inserted = true; + return ``; + }; +} + +//# sourceMappingURL=create-server-inserted-metadata.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js b/cli/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js new file mode 100644 index 00000000000..0106589495d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.external.js @@ -0,0 +1,32 @@ +// NOTE: this is marked as shared/external because it's stateful +// and the state needs to be shared between app-render (which waits for pending imports) +// and helpers used in transformed page code (which register pending imports) +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + trackPendingChunkLoad: null, + trackPendingImport: null, + trackPendingModules: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + trackPendingChunkLoad: function() { + return _trackmoduleloadinginstance.trackPendingChunkLoad; + }, + trackPendingImport: function() { + return _trackmoduleloadinginstance.trackPendingImport; + }, + trackPendingModules: function() { + return _trackmoduleloadinginstance.trackPendingModules; + } +}); +const _trackmoduleloadinginstance = require("./track-module-loading.instance"); + +//# sourceMappingURL=track-module-loading.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js b/cli/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js new file mode 100644 index 00000000000..09e2ef994b4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/module-loading/track-module-loading.instance.js @@ -0,0 +1,66 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + trackPendingChunkLoad: null, + trackPendingImport: null, + trackPendingModules: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + trackPendingChunkLoad: function() { + return trackPendingChunkLoad; + }, + trackPendingImport: function() { + return trackPendingImport; + }, + trackPendingModules: function() { + return trackPendingModules; + } +}); +const _cachesignal = require("../cache-signal"); +const _isthenable = require("../../../shared/lib/is-thenable"); +/** + * Tracks all in-flight async imports and chunk loads. + * Initialized lazily, because we don't want this to error in case it gets pulled into an edge runtime module. + */ let _moduleLoadingSignal; +function getModuleLoadingSignal() { + if (!_moduleLoadingSignal) { + _moduleLoadingSignal = new _cachesignal.CacheSignal(); + } + return _moduleLoadingSignal; +} +function trackPendingChunkLoad(promise) { + const moduleLoadingSignal = getModuleLoadingSignal(); + moduleLoadingSignal.trackRead(promise); +} +function trackPendingImport(exportsOrPromise) { + const moduleLoadingSignal = getModuleLoadingSignal(); + // requiring an async module returns a promise. + // if it's sync, there's nothing to track. + if ((0, _isthenable.isThenable)(exportsOrPromise)) { + // A client reference proxy might look like a promise, but we can only call `.then()` on it, not e.g. `.finally()`. + // Turn it into a real promise to avoid issues elsewhere. + const promise = Promise.resolve(exportsOrPromise); + moduleLoadingSignal.trackRead(promise); + } +} +function trackPendingModules(cacheSignal) { + const moduleLoadingSignal = getModuleLoadingSignal(); + // We can't just use `cacheSignal.trackRead(moduleLoadingSignal.cacheReady())`, + // because we might start and finish multiple batches of module loads while waiting for caches, + // and `moduleLoadingSignal.cacheReady()` would resolve after the first batch. + // Instead, we'll keep notifying `cacheSignal` of each import/chunk-load. + const unsubscribe = moduleLoadingSignal.subscribeToReads(cacheSignal); + // Later, when `cacheSignal` is no longer waiting for any caches (or imports that we've notified it of), + // we can unsubscribe it. + cacheSignal.cacheReady().then(unsubscribe); +} + +//# sourceMappingURL=track-module-loading.instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js b/cli/app/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js new file mode 100644 index 00000000000..2f0b64c4631 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/parse-and-validate-flight-router-state.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseAndValidateFlightRouterState", { + enumerable: true, + get: function() { + return parseAndValidateFlightRouterState; + } +}); +const _types = require("./types"); +const _superstruct = require("next/dist/compiled/superstruct"); +function parseAndValidateFlightRouterState(stateHeader) { + if (typeof stateHeader === 'undefined') { + return undefined; + } + if (Array.isArray(stateHeader)) { + throw Object.defineProperty(new Error('Multiple router state headers were sent. This is not allowed.'), "__NEXT_ERROR_CODE", { + value: "E418", + enumerable: false, + configurable: true + }); + } + // We limit the size of the router state header to ~40kb. This is to prevent + // a malicious user from sending a very large header and slowing down the + // resolving of the router state. + // This is around 2,000 nested or parallel route segment states: + // '{"children":["",{}]}'.length === 20. + if (stateHeader.length > 20 * 2000) { + throw Object.defineProperty(new Error('The router state header was too large.'), "__NEXT_ERROR_CODE", { + value: "E142", + enumerable: false, + configurable: true + }); + } + try { + const state = JSON.parse(decodeURIComponent(stateHeader)); + (0, _superstruct.assert)(state, _types.flightRouterStateSchema); + return state; + } catch { + throw Object.defineProperty(new Error('The router state header was sent but could not be parsed.'), "__NEXT_ERROR_CODE", { + value: "E10", + enumerable: false, + configurable: true + }); + } +} + +//# sourceMappingURL=parse-and-validate-flight-router-state.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/postponed-state.js b/cli/app/node_modules/next/dist/server/app-render/postponed-state.js new file mode 100644 index 00000000000..9b0ebdccb90 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/postponed-state.js @@ -0,0 +1,157 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DynamicHTMLPreludeState: null, + DynamicState: null, + getDynamicDataPostponedState: null, + getDynamicHTMLPostponedState: null, + getPostponedFromState: null, + parsePostponedState: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DynamicHTMLPreludeState: function() { + return DynamicHTMLPreludeState; + }, + DynamicState: function() { + return DynamicState; + }, + getDynamicDataPostponedState: function() { + return getDynamicDataPostponedState; + }, + getDynamicHTMLPostponedState: function() { + return getDynamicHTMLPostponedState; + }, + getPostponedFromState: function() { + return getPostponedFromState; + }, + parsePostponedState: function() { + return parsePostponedState; + } +}); +const _getdynamicparam = require("../../shared/lib/router/utils/get-dynamic-param"); +const _resumedatacache = require("../resume-data-cache/resume-data-cache"); +var DynamicState = /*#__PURE__*/ function(DynamicState) { + /** + * The dynamic access occurred during the RSC render phase. + */ DynamicState[DynamicState["DATA"] = 1] = "DATA"; + /** + * The dynamic access occurred during the HTML shell render phase. + */ DynamicState[DynamicState["HTML"] = 2] = "HTML"; + return DynamicState; +}({}); +var DynamicHTMLPreludeState = /*#__PURE__*/ function(DynamicHTMLPreludeState) { + DynamicHTMLPreludeState[DynamicHTMLPreludeState["Empty"] = 0] = "Empty"; + DynamicHTMLPreludeState[DynamicHTMLPreludeState["Full"] = 1] = "Full"; + return DynamicHTMLPreludeState; +}({}); +async function getDynamicHTMLPostponedState(postponed, preludeState, fallbackRouteParams, resumeDataCache, isCacheComponentsEnabled) { + const data = [ + preludeState, + postponed + ]; + const dataString = JSON.stringify(data); + // If there are no fallback route params, we can just serialize the postponed + // state as is. + if (!fallbackRouteParams || fallbackRouteParams.size === 0) { + // Serialized as `:` + return `${dataString.length}:${dataString}${await (0, _resumedatacache.stringifyResumeDataCache)((0, _resumedatacache.createRenderResumeDataCache)(resumeDataCache), isCacheComponentsEnabled)}`; + } + const replacements = Array.from(fallbackRouteParams.entries()); + const replacementsString = JSON.stringify(replacements); + // Serialized as `` + const postponedString = `${replacementsString.length}${replacementsString}${dataString}`; + // Serialized as `:` + return `${postponedString.length}:${postponedString}${await (0, _resumedatacache.stringifyResumeDataCache)(resumeDataCache, isCacheComponentsEnabled)}`; +} +async function getDynamicDataPostponedState(resumeDataCache, isCacheComponentsEnabled) { + return `4:null${await (0, _resumedatacache.stringifyResumeDataCache)((0, _resumedatacache.createRenderResumeDataCache)(resumeDataCache), isCacheComponentsEnabled)}`; +} +function parsePostponedState(state, interpolatedParams, maxPostponedStateSizeBytes) { + try { + var _state_match; + const postponedStringLengthMatch = (_state_match = state.match(/^([0-9]*):/)) == null ? void 0 : _state_match[1]; + if (!postponedStringLengthMatch) { + throw Object.defineProperty(new Error(`Invariant: invalid postponed state ${state}`), "__NEXT_ERROR_CODE", { + value: "E314", + enumerable: false, + configurable: true + }); + } + const postponedStringLength = parseInt(postponedStringLengthMatch); + // We add a `:` to the end of the length as the first character of the + // postponed string is the length of the replacement entries. + const postponedString = state.slice(postponedStringLengthMatch.length + 1, postponedStringLengthMatch.length + postponedStringLength + 1); + const renderResumeDataCache = (0, _resumedatacache.createRenderResumeDataCache)(state.slice(postponedStringLengthMatch.length + postponedStringLength + 1), maxPostponedStateSizeBytes); + try { + if (postponedString === 'null') { + return { + type: 1, + renderResumeDataCache + }; + } + if (/^[0-9]/.test(postponedString)) { + var _postponedString_match; + const match = (_postponedString_match = postponedString.match(/^([0-9]*)/)) == null ? void 0 : _postponedString_match[1]; + if (!match) { + throw Object.defineProperty(new Error(`Invariant: invalid postponed state ${JSON.stringify(postponedString)}`), "__NEXT_ERROR_CODE", { + value: "E314", + enumerable: false, + configurable: true + }); + } + // This is the length of the replacements entries. + const length = parseInt(match); + const replacements = JSON.parse(postponedString.slice(match.length, // We then go to the end of the string. + match.length + length)); + let postponed = postponedString.slice(match.length + length); + for (const [segmentKey, [searchValue, dynamicParamType]] of replacements){ + const { treeSegment: [, // This is the same value that'll be used in the postponed state + // as it's part of the tree data. That's why we use it as the + // replacement value. + value] } = (0, _getdynamicparam.getDynamicParam)(interpolatedParams, segmentKey, dynamicParamType, null, null // staticSiblings not needed for postponed state + ); + postponed = postponed.replaceAll(searchValue, value); + } + return { + type: 2, + data: JSON.parse(postponed), + renderResumeDataCache + }; + } + return { + type: 2, + data: JSON.parse(postponedString), + renderResumeDataCache + }; + } catch (err) { + console.error('Failed to parse postponed state', err); + return { + type: 1, + renderResumeDataCache + }; + } + } catch (err) { + console.error('Failed to parse postponed state', err); + return { + type: 1, + renderResumeDataCache: (0, _resumedatacache.createPrerenderResumeDataCache)() + }; + } +} +function getPostponedFromState(state) { + const [preludeState, postponed] = state.data; + return { + preludeState, + postponed + }; +} + +//# sourceMappingURL=postponed-state.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/prospective-render-utils.js b/cli/app/node_modules/next/dist/server/app-render/prospective-render-utils.js new file mode 100644 index 00000000000..2cd9eefc8cb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/prospective-render-utils.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + Phase: null, + printDebugThrownValueForProspectiveRender: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Phase: function() { + return Phase; + }, + printDebugThrownValueForProspectiveRender: function() { + return printDebugThrownValueForProspectiveRender; + } +}); +const _createerrorhandler = require("./create-error-handler"); +const _reactlargeshellerror = require("./react-large-shell-error"); +var Phase = /*#__PURE__*/ function(Phase) { + Phase["ProspectiveRender"] = "the prospective render"; + Phase["SegmentCollection"] = "segment collection"; + Phase["InstantValidation"] = "instant validation"; + return Phase; +}({}); +function printDebugThrownValueForProspectiveRender(thrownValue, route, phase) { + // We don't need to print well-known Next.js errors. + if ((0, _createerrorhandler.getDigestForWellKnownError)(thrownValue)) { + return; + } + if ((0, _reactlargeshellerror.isReactLargeShellError)(thrownValue)) { + // TODO: Aggregate + console.error(thrownValue); + return undefined; + } + let message; + if (typeof thrownValue === 'object' && thrownValue !== null && typeof thrownValue.message === 'string') { + message = thrownValue.message; + if (typeof thrownValue.stack === 'string') { + const originalErrorStack = thrownValue.stack; + const stackStart = originalErrorStack.indexOf('\n'); + if (stackStart > -1) { + const error = Object.defineProperty(new Error(`Route ${route} errored during ${phase}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. + +Original Error: ${message}`), "__NEXT_ERROR_CODE", { + value: "E949", + enumerable: false, + configurable: true + }); + error.stack = 'Error: ' + error.message + originalErrorStack.slice(stackStart); + console.error(error); + return; + } + } + } else if (typeof thrownValue === 'string') { + message = thrownValue; + } + if (message) { + console.error(`Route ${route} errored during ${phase}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. No stack was provided. + +Original Message: ${message}`); + return; + } + console.error(`Route ${route} errored during ${phase}. These errors are normally ignored and may not prevent the route from prerendering but are logged here because build debugging is enabled. The thrown value is logged just following this message`); + console.error(thrownValue); + return; +} + +//# sourceMappingURL=prospective-render-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/react-large-shell-error.js b/cli/app/node_modules/next/dist/server/app-render/react-large-shell-error.js new file mode 100644 index 00000000000..4b2a3a1b567 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/react-large-shell-error.js @@ -0,0 +1,17 @@ +// TODO: isWellKnownError -> isNextInternalError +// isReactLargeShellError -> isWarning +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isReactLargeShellError", { + enumerable: true, + get: function() { + return isReactLargeShellError; + } +}); +function isReactLargeShellError(error) { + return typeof error === 'object' && error !== null && 'message' in error && typeof error.message === 'string' && error.message.startsWith('This rendered a large document (>'); +} + +//# sourceMappingURL=react-large-shell-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/react-server.node.js b/cli/app/node_modules/next/dist/server/app-render/react-server.node.js new file mode 100644 index 00000000000..25b3fa573b7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/react-server.node.js @@ -0,0 +1,39 @@ +// This file should be opted into the react-server layer +// eslint-disable-next-line import/no-extraneous-dependencies +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createTemporaryReferenceSet: null, + decodeAction: null, + decodeFormState: null, + decodeReply: null, + decodeReplyFromBusboy: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createTemporaryReferenceSet: function() { + return _servernode.createTemporaryReferenceSet; + }, + decodeAction: function() { + return _servernode.decodeAction; + }, + decodeFormState: function() { + return _servernode.decodeFormState; + }, + decodeReply: function() { + return _servernode.decodeReply; + }, + decodeReplyFromBusboy: function() { + return _servernode.decodeReplyFromBusboy; + } +}); +const _servernode = require("react-server-dom-webpack/server.node"); + +//# sourceMappingURL=react-server.node.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/render-css-resource.js b/cli/app/node_modules/next/dist/server/app-render/render-css-resource.js new file mode 100644 index 00000000000..53323df08c0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/render-css-resource.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "renderCssResource", { + enumerable: true, + get: function() { + return renderCssResource; + } +}); +const _encodeuripath = require("../../shared/lib/encode-uri-path"); +const _getassetquerystring = require("./get-asset-query-string"); +function renderCssResource(entryCssFiles, ctx, preloadCallbacks) { + const { componentMod: { createElement } } = ctx; + return entryCssFiles.map((entryCssFile, index)=>{ + // `Precedence` is an opt-in signal for React to handle resource + // loading and deduplication, etc. It's also used as the key to sort + // resources so they will be injected in the correct order. + // During HMR, it's critical to use different `precedence` values + // for different stylesheets, so their order will be kept. + // https://github.com/facebook/react/pull/25060 + const precedence = process.env.NODE_ENV === 'development' ? 'next_' + entryCssFile.path : 'next'; + // In dev, Safari and Firefox will cache the resource during HMR: + // - https://github.com/vercel/next.js/issues/5860 + // - https://bugs.webkit.org/show_bug.cgi?id=187726 + // Because of this, we add a `?v=` query to bypass the cache during + // development. We need to also make sure that the number is always + // increasing. + const fullHref = `${ctx.assetPrefix}/_next/${(0, _encodeuripath.encodeURIPath)(entryCssFile.path)}${(0, _getassetquerystring.getAssetQueryString)(ctx, true)}`; + if (entryCssFile.inlined && !ctx.parsedRequestHeaders.isRSCRequest) { + return createElement('style', { + key: index, + nonce: ctx.nonce, + precedence: precedence, + href: fullHref + }, entryCssFile.content); + } + preloadCallbacks == null ? void 0 : preloadCallbacks.push(()=>{ + ctx.componentMod.preloadStyle(fullHref, ctx.renderOpts.crossOrigin, ctx.nonce); + }); + return createElement('link', { + key: index, + rel: 'stylesheet', + href: fullHref, + precedence: precedence, + crossOrigin: ctx.renderOpts.crossOrigin, + nonce: ctx.nonce + }); + }); +} + +//# sourceMappingURL=render-css-resource.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/required-scripts.js b/cli/app/node_modules/next/dist/server/app-render/required-scripts.js new file mode 100644 index 00000000000..bcd19ccf854 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/required-scripts.js @@ -0,0 +1,76 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRequiredScripts", { + enumerable: true, + get: function() { + return getRequiredScripts; + } +}); +const _encodeuripath = require("../../shared/lib/encode-uri-path"); +const _reactdom = /*#__PURE__*/ _interop_require_default(require("react-dom")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getRequiredScripts(buildManifest, assetPrefix, crossOrigin, SRIManifest, qs, nonce, pagePath) { + var _buildManifest_rootMainFilesTree; + let preinitScripts; + let preinitScriptCommands = []; + const bootstrapScript = { + src: '', + crossOrigin + }; + const files = (((_buildManifest_rootMainFilesTree = buildManifest.rootMainFilesTree) == null ? void 0 : _buildManifest_rootMainFilesTree[pagePath]) || buildManifest.rootMainFiles).map(_encodeuripath.encodeURIPath); + if (files.length === 0) { + throw Object.defineProperty(new Error('Invariant: missing bootstrap script. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E459", + enumerable: false, + configurable: true + }); + } + if (SRIManifest) { + bootstrapScript.src = `${assetPrefix}/_next/` + files[0] + qs; + bootstrapScript.integrity = SRIManifest[files[0]]; + for(let i = 1; i < files.length; i++){ + const src = `${assetPrefix}/_next/` + files[i] + qs; + const integrity = SRIManifest[files[i]]; + preinitScriptCommands.push(src, integrity); + } + preinitScripts = ()=>{ + // preinitScriptCommands is a double indexed array of src/integrity pairs + for(let i = 0; i < preinitScriptCommands.length; i += 2){ + _reactdom.default.preinit(preinitScriptCommands[i], { + as: 'script', + integrity: preinitScriptCommands[i + 1], + crossOrigin, + nonce + }); + } + }; + } else { + bootstrapScript.src = `${assetPrefix}/_next/` + files[0] + qs; + for(let i = 1; i < files.length; i++){ + const src = `${assetPrefix}/_next/` + files[i] + qs; + preinitScriptCommands.push(src); + } + preinitScripts = ()=>{ + // preinitScriptCommands is a singled indexed array of src values + for(let i = 0; i < preinitScriptCommands.length; i++){ + _reactdom.default.preinit(preinitScriptCommands[i], { + as: 'script', + nonce, + crossOrigin + }); + } + }; + } + return [ + preinitScripts, + bootstrapScript + ]; +} + +//# sourceMappingURL=required-scripts.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/segment-explorer-path.js b/cli/app/node_modules/next/dist/server/app-render/segment-explorer-path.js new file mode 100644 index 00000000000..4496e2badd7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/segment-explorer-path.js @@ -0,0 +1,128 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + BOUNDARY_PREFIX: null, + BOUNDARY_SUFFIX: null, + BUILTIN_PREFIX: null, + getBoundaryOriginFileType: null, + getConventionPathByType: null, + isBoundaryFile: null, + isBuiltinBoundaryFile: null, + isNextjsBuiltinFilePath: null, + normalizeBoundaryFilename: null, + normalizeConventionFilePath: null, + normalizeFilePath: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + BOUNDARY_PREFIX: function() { + return BOUNDARY_PREFIX; + }, + BOUNDARY_SUFFIX: function() { + return BOUNDARY_SUFFIX; + }, + BUILTIN_PREFIX: function() { + return BUILTIN_PREFIX; + }, + getBoundaryOriginFileType: function() { + return getBoundaryOriginFileType; + }, + getConventionPathByType: function() { + return getConventionPathByType; + }, + isBoundaryFile: function() { + return isBoundaryFile; + }, + isBuiltinBoundaryFile: function() { + return isBuiltinBoundaryFile; + }, + isNextjsBuiltinFilePath: function() { + return isNextjsBuiltinFilePath; + }, + normalizeBoundaryFilename: function() { + return normalizeBoundaryFilename; + }, + normalizeConventionFilePath: function() { + return normalizeConventionFilePath; + }, + normalizeFilePath: function() { + return normalizeFilePath; + } +}); +const BUILTIN_PREFIX = '__next_builtin__'; +const nextInternalPrefixRegex = /^(.*[\\/])?next[\\/]dist[\\/]client[\\/]components[\\/]builtin[\\/]/; +function normalizeFilePath(projectDir, filePath) { + // Turbopack project path is formed as: "/". + // When project root is not the working directory, we can extract the relative project root path. + // This is mostly used for running Next.js inside a monorepo. + const cwd = process.env.NEXT_RUNTIME === 'edge' ? '' : process.cwd(); + const relativeProjectRoot = projectDir.replace(cwd, '').replace(/^[\\/]/, ''); + let relativePath = (filePath || '')// remove turbopack [project] prefix + .replace(/^\[project\][\\/]?/, '')// remove the project root from the path (absolute) + .replace(projectDir, '')// remove cwd prefix (absolute) + .replace(cwd, '')// normalize path separators and remove leading slash + .replace(/\\/g, '/').replace(/^\//, ''); + // remove relative project path prefix (e.g., "test/e2e/app-dir/actions/") + if (relativeProjectRoot && relativePath.startsWith(relativeProjectRoot)) { + relativePath = relativePath.slice(relativeProjectRoot.length).replace(/^\//, ''); + } + // Handle case where filename is relative to a parent of projectDir + // (e.g., in tests where filename is "test/tmp/next-test-XXX/app/page.js" + // but projectDir is the test temp directory) + if (relativePath.includes('/')) { + const projectDirName = projectDir.split(/[\\/]/).pop() || ''; + if (projectDirName) { + const projectDirWithSlash = projectDirName + '/'; + const idx = relativePath.indexOf(projectDirWithSlash); + if (idx >= 0) { + relativePath = relativePath.slice(idx + projectDirWithSlash.length); + } + } + } + return relativePath; +} +function normalizeConventionFilePath(projectDir, conventionPath) { + let relativePath = normalizeFilePath(projectDir, conventionPath)// remove /(src/)?app/ dir prefix + .replace(/^(src\/)?app\//, ''); + // If it's internal file only keep the filename, strip nextjs internal prefix + if (nextInternalPrefixRegex.test(relativePath)) { + relativePath = relativePath.replace(nextInternalPrefixRegex, ''); + // Add a special prefix to let segment explorer know it's a built-in component + relativePath = `${BUILTIN_PREFIX}${relativePath}`; + } + return relativePath; +} +const isNextjsBuiltinFilePath = (filePath)=>{ + return nextInternalPrefixRegex.test(filePath); +}; +const BOUNDARY_SUFFIX = '@boundary'; +function normalizeBoundaryFilename(filename) { + return filename.replace(new RegExp(`^${BUILTIN_PREFIX}`), '').replace(new RegExp(`${BOUNDARY_SUFFIX}$`), ''); +} +const BOUNDARY_PREFIX = 'boundary:'; +function isBoundaryFile(fileType) { + return fileType.startsWith(BOUNDARY_PREFIX); +} +function isBuiltinBoundaryFile(fileType) { + return fileType.startsWith(BUILTIN_PREFIX); +} +function getBoundaryOriginFileType(fileType) { + return fileType.replace(BOUNDARY_PREFIX, ''); +} +function getConventionPathByType(tree, dir, conventionType) { + const modules = tree[2]; + const conventionPath = modules[conventionType] ? modules[conventionType][1] : undefined; + if (conventionPath) { + return normalizeConventionFilePath(dir, conventionPath); + } + return undefined; +} + +//# sourceMappingURL=segment-explorer-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/server-inserted-html.js b/cli/app/node_modules/next/dist/server/app-render/server-inserted-html.js new file mode 100644 index 00000000000..60af1e0274e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/server-inserted-html.js @@ -0,0 +1,77 @@ +/* eslint-disable @next/internal/no-ambiguous-jsx -- whole module is used in React Client */ // Provider for the `useServerInsertedHTML` API to register callbacks to insert +// elements into the HTML stream. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createServerInsertedHTML", { + enumerable: true, + get: function() { + return createServerInsertedHTML; + } +}); +const _jsxruntime = require("react/jsx-runtime"); +const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); +const _serverinsertedhtmlsharedruntime = require("../../shared/lib/server-inserted-html.shared-runtime"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function createServerInsertedHTML() { + const serverInsertedHTMLCallbacks = []; + const addInsertedHtml = (handler)=>{ + serverInsertedHTMLCallbacks.push(handler); + }; + return { + ServerInsertedHTMLProvider ({ children }) { + return /*#__PURE__*/ (0, _jsxruntime.jsx)(_serverinsertedhtmlsharedruntime.ServerInsertedHTMLContext.Provider, { + value: addInsertedHtml, + children: children + }); + }, + renderServerInsertedHTML () { + return serverInsertedHTMLCallbacks.map((callback, index)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Fragment, { + children: callback() + }, '__next_server_inserted__' + index)); + } + }; +} + +//# sourceMappingURL=server-inserted-html.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/staged-rendering.js b/cli/app/node_modules/next/dist/server/app-render/staged-rendering.js new file mode 100644 index 00000000000..562756074ba --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/staged-rendering.js @@ -0,0 +1,343 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + RenderStage: null, + StagedRenderingController: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + RenderStage: function() { + return RenderStage; + }, + StagedRenderingController: function() { + return StagedRenderingController; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _promisewithresolvers = require("../../shared/lib/promise-with-resolvers"); +var RenderStage = /*#__PURE__*/ function(RenderStage) { + RenderStage[RenderStage["Before"] = 1] = "Before"; + RenderStage[RenderStage["EarlyStatic"] = 2] = "EarlyStatic"; + RenderStage[RenderStage["Static"] = 3] = "Static"; + RenderStage[RenderStage["EarlyRuntime"] = 4] = "EarlyRuntime"; + RenderStage[RenderStage["Runtime"] = 5] = "Runtime"; + RenderStage[RenderStage["Dynamic"] = 6] = "Dynamic"; + RenderStage[RenderStage["Abandoned"] = 7] = "Abandoned"; + return RenderStage; +}({}); +class StagedRenderingController { + constructor(abortSignal, abandonController, shouldTrackSyncIO){ + this.abortSignal = abortSignal; + this.abandonController = abandonController; + this.shouldTrackSyncIO = shouldTrackSyncIO; + this.currentStage = 1; + this.syncInterruptReason = null; + this.staticStageEndTime = Infinity; + this.runtimeStageEndTime = Infinity; + this.staticStageListeners = []; + this.earlyRuntimeStageListeners = []; + this.runtimeStageListeners = []; + this.dynamicStageListeners = []; + this.staticStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)(); + this.earlyRuntimeStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)(); + this.runtimeStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)(); + this.dynamicStagePromise = (0, _promisewithresolvers.createPromiseWithResolvers)(); + if (abortSignal) { + abortSignal.addEventListener('abort', ()=>{ + // Reject all stage promises that haven't already been resolved. + // If a promise was already resolved via advanceStage, the reject + // is a no-op. The ignoreReject handler suppresses unhandled + // rejection warnings for promises that no one is awaiting. + const { reason } = abortSignal; + this.staticStagePromise.promise.catch(ignoreReject); + this.staticStagePromise.reject(reason); + this.earlyRuntimeStagePromise.promise.catch(ignoreReject); + this.earlyRuntimeStagePromise.reject(reason); + this.runtimeStagePromise.promise.catch(ignoreReject); + this.runtimeStagePromise.reject(reason); + this.dynamicStagePromise.promise.catch(ignoreReject); + this.dynamicStagePromise.reject(reason); + }, { + once: true + }); + } + if (abandonController) { + abandonController.signal.addEventListener('abort', ()=>{ + this.abandonRender(); + }, { + once: true + }); + } + } + onStage(stage, callback) { + if (this.currentStage >= stage) { + callback(); + } else if (stage === 3) { + this.staticStageListeners.push(callback); + } else if (stage === 4) { + this.earlyRuntimeStageListeners.push(callback); + } else if (stage === 5) { + this.runtimeStageListeners.push(callback); + } else if (stage === 6) { + this.dynamicStageListeners.push(callback); + } else { + // This should never happen + throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", { + value: "E881", + enumerable: false, + configurable: true + }); + } + } + shouldTrackSyncInterrupt() { + if (!this.shouldTrackSyncIO) { + return false; + } + switch(this.currentStage){ + case 1: + // If we haven't started the render yet, it can't be interrupted. + return false; + case 2: + case 3: + return true; + case 4: + // EarlyRuntime is for runtime-prefetchable segments. Sync IO + // should error because it would abort a runtime prefetch. + return true; + case 5: + // Runtime is for non-prefetchable segments. Sync IO is fine there + // because in practice this segment will never be runtime prefetched + return false; + case 6: + case 7: + return false; + default: + return false; + } + } + syncInterruptCurrentStageWithReason(reason) { + if (this.currentStage === 1) { + return; + } + // If the render has already been abandoned, there's nothing to interrupt. + if (this.currentStage === 7) { + return; + } + // If Sync IO occurs during an abandonable render, we trigger the abandon. + // The abandon listener will call abandonRender which advances through + // stages to let caches fill before marking as Abandoned. + if (this.abandonController) { + this.abandonController.abort(); + return; + } + if (this.abortSignal) { + // If this is an abortable render, we capture the interruption reason and stop advancing. + // We don't release any more promises. + // The caller is expected to abort the signal. + this.syncInterruptReason = reason; + this.currentStage = 7; + return; + } + // If we're in a non-abandonable & non-abortable render, + // we need to advance to the Dynamic stage and capture the interruption reason. + // (in dev, this will be the restarted render) + switch(this.currentStage){ + case 2: + case 3: + case 4: + { + // EarlyRuntime is for runtime-prefetchable segments. Sync IO here + // means the prefetch would be aborted too early. + this.syncInterruptReason = reason; + this.advanceStage(6); + return; + } + case 5: + { + // canSyncInterrupt returns false for Runtime, so we should + // never get here. Defensive no-op. + return; + } + case 6: + default: + } + } + getSyncInterruptReason() { + return this.syncInterruptReason; + } + getStaticStageEndTime() { + return this.staticStageEndTime; + } + getRuntimeStageEndTime() { + return this.runtimeStageEndTime; + } + abandonRender() { + // In staged rendering, only the initial render is abandonable. + // We can abandon the initial render if + // 1. We notice a cache miss, and need to wait for caches to fill + // 2. A sync IO error occurs, and the render should be interrupted + // (this might be a lazy intitialization of a module, + // so we still want to restart in this case and see if it still occurs) + // In either case, we'll be doing another render after this one, + // so we only want to unblock the next stage, not Dynamic, because + // unblocking the dynamic stage would likely lead to wasted (uncached) IO. + const { currentStage } = this; + switch(currentStage){ + case 2: + { + this.resolveStaticStage(); + } + // intentional fallthrough + case 3: + { + this.resolveEarlyRuntimeStage(); + } + // intentional fallthrough + case 4: + { + this.resolveRuntimeStage(); + } + // intentional fallthrough + case 5: + { + this.currentStage = 7; + return; + } + case 6: + case 1: + case 7: + break; + default: + { + currentStage; + } + } + } + advanceStage(stage) { + // If we're already at the target stage or beyond, do nothing. + // (this can happen e.g. if sync IO advanced us to the dynamic stage) + if (stage <= this.currentStage) { + return; + } + let currentStage = this.currentStage; + this.currentStage = stage; + if (currentStage < 3 && stage >= 3) { + this.resolveStaticStage(); + } + if (currentStage < 4 && stage >= 4) { + this.resolveEarlyRuntimeStage(); + } + if (currentStage < 5 && stage >= 5) { + this.staticStageEndTime = performance.now() + performance.timeOrigin; + this.resolveRuntimeStage(); + } + if (currentStage < 6 && stage >= 6) { + this.runtimeStageEndTime = performance.now() + performance.timeOrigin; + this.resolveDynamicStage(); + return; + } + } + /** Fire the `onStage` listeners for the static stage and unblock any promises waiting for it. */ resolveStaticStage() { + const staticListeners = this.staticStageListeners; + for(let i = 0; i < staticListeners.length; i++){ + staticListeners[i](); + } + staticListeners.length = 0; + this.staticStagePromise.resolve(); + } + /** Fire the `onStage` listeners for the early runtime stage and unblock any promises waiting for it. */ resolveEarlyRuntimeStage() { + const earlyRuntimeListeners = this.earlyRuntimeStageListeners; + for(let i = 0; i < earlyRuntimeListeners.length; i++){ + earlyRuntimeListeners[i](); + } + earlyRuntimeListeners.length = 0; + this.earlyRuntimeStagePromise.resolve(); + } + /** Fire the `onStage` listeners for the runtime stage and unblock any promises waiting for it. */ resolveRuntimeStage() { + const runtimeListeners = this.runtimeStageListeners; + for(let i = 0; i < runtimeListeners.length; i++){ + runtimeListeners[i](); + } + runtimeListeners.length = 0; + this.runtimeStagePromise.resolve(); + } + /** Fire the `onStage` listeners for the dynamic stage and unblock any promises waiting for it. */ resolveDynamicStage() { + const dynamicListeners = this.dynamicStageListeners; + for(let i = 0; i < dynamicListeners.length; i++){ + dynamicListeners[i](); + } + dynamicListeners.length = 0; + this.dynamicStagePromise.resolve(); + } + getStagePromise(stage) { + switch(stage){ + case 3: + { + return this.staticStagePromise.promise; + } + case 4: + { + return this.earlyRuntimeStagePromise.promise; + } + case 5: + { + return this.runtimeStagePromise.promise; + } + case 6: + { + return this.dynamicStagePromise.promise; + } + default: + { + stage; + throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid render stage: ${stage}`), "__NEXT_ERROR_CODE", { + value: "E881", + enumerable: false, + configurable: true + }); + } + } + } + waitForStage(stage) { + return this.getStagePromise(stage); + } + delayUntilStage(stage, displayName, resolvedValue) { + const ioTriggerPromise = this.getStagePromise(stage); + const promise = makeDevtoolsIOPromiseFromIOTrigger(ioTriggerPromise, displayName, resolvedValue); + // Analogously to `makeHangingPromise`, we might reject this promise if the signal is invoked. + // (e.g. in the case where we don't want want the render to proceed to the dynamic stage and abort it). + // We shouldn't consider this an unhandled rejection, so we attach a noop catch handler here to suppress this warning. + if (this.abortSignal) { + promise.catch(ignoreReject); + } + return promise; + } +} +function ignoreReject() {} +// TODO(restart-on-cache-miss): the layering of `delayUntilStage`, +// `makeDevtoolsIOPromiseFromIOTrigger` and and `makeDevtoolsIOAwarePromise` +// is confusing, we should clean it up. +function makeDevtoolsIOPromiseFromIOTrigger(ioTrigger, displayName, resolvedValue) { + // If we create a `new Promise` and give it a displayName + // (with no userspace code above us in the stack) + // React Devtools will use it as the IO cause when determining "suspended by". + // In particular, it should shadow any inner IO that resolved/rejected the promise + // (in case of staged rendering, this will be the `setTimeout` that triggers the relevant stage) + const promise = new Promise((resolve, reject)=>{ + ioTrigger.then(resolve.bind(null, resolvedValue), reject); + }); + if (displayName !== undefined) { + // @ts-expect-error + promise.displayName = displayName; + } + return promise; +} + +//# sourceMappingURL=staged-rendering.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/stale-time.js b/cli/app/node_modules/next/dist/server/app-render/stale-time.js new file mode 100644 index 00000000000..dd757732419 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/stale-time.js @@ -0,0 +1,111 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + StaleTimeIterable: null, + createSelectStaleTime: null, + finishStaleTimeTracking: null, + trackStaleTime: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + StaleTimeIterable: function() { + return StaleTimeIterable; + }, + createSelectStaleTime: function() { + return createSelectStaleTime; + }, + finishStaleTimeTracking: function() { + return finishStaleTimeTracking; + }, + trackStaleTime: function() { + return trackStaleTime; + } +}); +const _constants = require("../../lib/constants"); +class StaleTimeIterable { + update(value) { + if (this._done) return; + this.currentValue = value; + if (this._resolve) { + this._resolve({ + value, + done: false + }); + this._resolve = null; + } else { + this._buffer.push(value); + } + } + close() { + if (this._done) return; + this._done = true; + if (this._resolve) { + this._resolve({ + value: undefined, + done: true + }); + this._resolve = null; + } + } + [Symbol.asyncIterator]() { + return { + next: ()=>{ + if (this._buffer.length > 0) { + return Promise.resolve({ + value: this._buffer.shift(), + done: false + }); + } + if (this._done) { + return Promise.resolve({ + value: undefined, + done: true + }); + } + return new Promise((resolve)=>{ + this._resolve = resolve; + }); + } + }; + } + constructor(){ + this._resolve = null; + this._done = false; + this._buffer = []; + /** The last value passed to `update()`. */ this.currentValue = 0; + } +} +function createSelectStaleTime(experimental) { + return (stale)=>{ + var _experimental_staleTimes; + return stale === _constants.INFINITE_CACHE && typeof ((_experimental_staleTimes = experimental.staleTimes) == null ? void 0 : _experimental_staleTimes.static) === 'number' ? experimental.staleTimes.static : stale; + }; +} +function trackStaleTime(store, iterable, selectStaleTime) { + let _stale = store.stale; + iterable.update(selectStaleTime(_stale)); + Object.defineProperty(store, 'stale', { + get: ()=>_stale, + set: (value)=>{ + _stale = value; + iterable.update(selectStaleTime(value)); + }, + configurable: true, + enumerable: true + }); +} +async function finishStaleTimeTracking(iterable) { + iterable.close(); + await Promise.resolve(); + await Promise.resolve(); + await Promise.resolve(); +} + +//# sourceMappingURL=stale-time.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/stream-ops.js b/cli/app/node_modules/next/dist/server/app-render/stream-ops.js new file mode 100644 index 00000000000..cb461a6f744 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/stream-ops.js @@ -0,0 +1,106 @@ +/** + * Compile-time switcher for stream operations. + * + * PR2: Simple re-export from the web implementation. + * A future change will add a conditional branch for node streams. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + chainStreams: null, + continueDynamicHTMLResume: null, + continueDynamicPrerender: null, + continueFizzStream: null, + continueStaticFallbackPrerender: null, + continueStaticPrerender: null, + createDocumentClosingStream: null, + createInlinedDataStream: null, + createOnHeadersCallback: null, + createPendingStream: null, + getClientPrerender: null, + getServerPrerender: null, + nodeReadableToWeb: null, + pipeRuntimePrefetchTransform: null, + processPrelude: null, + renderToFizzStream: null, + renderToFlightStream: null, + resumeAndAbort: null, + resumeToFizzStream: null, + streamToBuffer: null, + streamToString: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + chainStreams: function() { + return _streamopsweb.chainStreams; + }, + continueDynamicHTMLResume: function() { + return _streamopsweb.continueDynamicHTMLResume; + }, + continueDynamicPrerender: function() { + return _streamopsweb.continueDynamicPrerender; + }, + continueFizzStream: function() { + return _streamopsweb.continueFizzStream; + }, + continueStaticFallbackPrerender: function() { + return _streamopsweb.continueStaticFallbackPrerender; + }, + continueStaticPrerender: function() { + return _streamopsweb.continueStaticPrerender; + }, + createDocumentClosingStream: function() { + return _streamopsweb.createDocumentClosingStream; + }, + createInlinedDataStream: function() { + return _streamopsweb.createInlinedDataStream; + }, + createOnHeadersCallback: function() { + return _streamopsweb.createOnHeadersCallback; + }, + createPendingStream: function() { + return _streamopsweb.createPendingStream; + }, + getClientPrerender: function() { + return _streamopsweb.getClientPrerender; + }, + getServerPrerender: function() { + return _streamopsweb.getServerPrerender; + }, + nodeReadableToWeb: function() { + return _streamopsweb.nodeReadableToWeb; + }, + pipeRuntimePrefetchTransform: function() { + return _streamopsweb.pipeRuntimePrefetchTransform; + }, + processPrelude: function() { + return _streamopsweb.processPrelude; + }, + renderToFizzStream: function() { + return _streamopsweb.renderToFizzStream; + }, + renderToFlightStream: function() { + return _streamopsweb.renderToFlightStream; + }, + resumeAndAbort: function() { + return _streamopsweb.resumeAndAbort; + }, + resumeToFizzStream: function() { + return _streamopsweb.resumeToFizzStream; + }, + streamToBuffer: function() { + return _streamopsweb.streamToBuffer; + }, + streamToString: function() { + return _streamopsweb.streamToString; + } +}); +const _streamopsweb = require("./stream-ops.web"); + +//# sourceMappingURL=stream-ops.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/stream-ops.web.js b/cli/app/node_modules/next/dist/server/app-render/stream-ops.web.js new file mode 100644 index 00000000000..de01fc8d95e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/stream-ops.web.js @@ -0,0 +1,163 @@ +/** + * Web stream operations for the rendering pipeline. + * Loaded by stream-ops.ts (re-export in this PR, conditional switcher later). + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + chainStreams: null, + continueDynamicHTMLResume: null, + continueDynamicPrerender: null, + continueFizzStream: null, + continueStaticFallbackPrerender: null, + continueStaticPrerender: null, + createDocumentClosingStream: null, + createInlinedDataStream: null, + createOnHeadersCallback: null, + createPendingStream: null, + getClientPrerender: null, + getServerPrerender: null, + nodeReadableToWeb: null, + pipeRuntimePrefetchTransform: null, + processPrelude: null, + renderToFizzStream: null, + renderToFlightStream: null, + resumeAndAbort: null, + resumeToFizzStream: null, + streamToBuffer: null, + streamToString: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + chainStreams: function() { + return _nodewebstreamshelper.chainStreams; + }, + continueDynamicHTMLResume: function() { + return _nodewebstreamshelper.continueDynamicHTMLResume; + }, + continueDynamicPrerender: function() { + return _nodewebstreamshelper.continueDynamicPrerender; + }, + continueFizzStream: function() { + return continueFizzStream; + }, + continueStaticFallbackPrerender: function() { + return _nodewebstreamshelper.continueStaticFallbackPrerender; + }, + continueStaticPrerender: function() { + return _nodewebstreamshelper.continueStaticPrerender; + }, + createDocumentClosingStream: function() { + return _nodewebstreamshelper.createDocumentClosingStream; + }, + createInlinedDataStream: function() { + return createInlinedDataStream; + }, + createOnHeadersCallback: function() { + return createOnHeadersCallback; + }, + createPendingStream: function() { + return createPendingStream; + }, + getClientPrerender: function() { + return getClientPrerender; + }, + getServerPrerender: function() { + return getServerPrerender; + }, + nodeReadableToWeb: function() { + return nodeReadableToWeb; + }, + pipeRuntimePrefetchTransform: function() { + return pipeRuntimePrefetchTransform; + }, + processPrelude: function() { + return _apprenderprerenderutils.processPrelude; + }, + renderToFizzStream: function() { + return renderToFizzStream; + }, + renderToFlightStream: function() { + return renderToFlightStream; + }, + resumeAndAbort: function() { + return resumeAndAbort; + }, + resumeToFizzStream: function() { + return resumeToFizzStream; + }, + streamToBuffer: function() { + return _nodewebstreamshelper.streamToBuffer; + }, + streamToString: function() { + return streamToString; + } +}); +const _server = require("react-dom/server"); +const _static = require("react-dom/static"); +const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper"); +const _useflightresponse = require("./use-flight-response"); +const _apprenderprerenderutils = require("./app-render-prerender-utils"); +function continueFizzStream(renderStream, opts) { + return (0, _nodewebstreamshelper.continueFizzStream)(renderStream, opts); +} +const nodeReadableToWeb = undefined; +function createInlinedDataStream(source, nonce, formState) { + return (0, _useflightresponse.createInlinedDataReadableStream)(source, nonce, formState); +} +function createPendingStream() { + return new ReadableStream(); +} +function createOnHeadersCallback(appendHeader) { + return (headers)=>{ + headers.forEach((value, key)=>{ + appendHeader(key, value); + }); + }; +} +async function resumeAndAbort(element, postponed, opts) { + return (0, _server.resume)(element, postponed, opts); +} +function renderToFlightStream(ComponentMod, payload, clientModules, opts) { + return ComponentMod.renderToReadableStream(payload, clientModules, opts); +} +async function streamToString(stream) { + return (0, _nodewebstreamshelper.streamToString)(stream); +} +async function renderToFizzStream(element, streamOptions) { + const stream = await (0, _nodewebstreamshelper.renderToInitialFizzStream)({ + ReactDOMServer: { + renderToReadableStream: _server.renderToReadableStream + }, + element, + streamOptions + }); + return { + stream, + allReady: stream.allReady, + abort: undefined + }; +} +async function resumeToFizzStream(element, postponedState, streamOptions) { + const stream = await (0, _server.resume)(element, postponedState, streamOptions); + return { + stream, + allReady: stream.allReady, + abort: undefined + }; +} +function getServerPrerender(ComponentMod) { + return ComponentMod.prerender; +} +const getClientPrerender = _static.prerender; +function pipeRuntimePrefetchTransform(stream, sentinel, isPartial, staleTime) { + return stream.pipeThrough((0, _nodewebstreamshelper.createRuntimePrefetchTransformStream)(sentinel, isPartial, staleTime)); +} + +//# sourceMappingURL=stream-ops.web.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/strip-flight-headers.js b/cli/app/node_modules/next/dist/server/app-render/strip-flight-headers.js new file mode 100644 index 00000000000..eae6ad7e5b9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/strip-flight-headers.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "stripFlightHeaders", { + enumerable: true, + get: function() { + return stripFlightHeaders; + } +}); +const _approuterheaders = require("../../client/components/app-router-headers"); +function stripFlightHeaders(headers) { + for (const header of _approuterheaders.FLIGHT_HEADERS){ + delete headers[header]; + } +} + +//# sourceMappingURL=strip-flight-headers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/types.js b/cli/app/node_modules/next/dist/server/app-render/types.js new file mode 100644 index 00000000000..468d3b45213 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/types.js @@ -0,0 +1,65 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "flightRouterStateSchema", { + enumerable: true, + get: function() { + return flightRouterStateSchema; + } +}); +const _superstruct = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/superstruct")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const dynamicParamTypesSchema = _superstruct.default.enums([ + 'c', + 'ci(..)(..)', + 'ci(.)', + 'ci(..)', + 'ci(...)', + 'oc', + 'd', + 'di(..)(..)', + 'di(.)', + 'di(..)', + 'di(...)' +]); +const segmentSchema = _superstruct.default.union([ + _superstruct.default.string(), + _superstruct.default.tuple([ + // Param name + _superstruct.default.string(), + // Param cache key (almost the same as the value, but arrays are + // concatenated into strings) + // TODO: We should change this to just be the value. Currently we convert + // it back to a value when passing to useParams. It only needs to be + // a string when converted to a a cache key, but that doesn't mean we + // need to store it as that representation. + _superstruct.default.string(), + // Dynamic param type + dynamicParamTypesSchema, + // Static siblings at the same URL level. Used by the client router to + // determine if a prefetch can be reused when navigating to a static + // sibling of a dynamic route. null means siblings are unknown. + _superstruct.default.nullable(_superstruct.default.array(_superstruct.default.string())) + ]) +]); +const flightRouterStateSchema = _superstruct.default.tuple([ + segmentSchema, + _superstruct.default.record(_superstruct.default.string(), _superstruct.default.lazy(()=>flightRouterStateSchema)), + _superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.tuple([ + _superstruct.default.string(), + _superstruct.default.string() + ]))), + _superstruct.default.optional(_superstruct.default.nullable(_superstruct.default.union([ + _superstruct.default.literal('refetch'), + _superstruct.default.literal('inside-shared-layout'), + _superstruct.default.literal('metadata-only') + ]))), + _superstruct.default.optional(_superstruct.default.number()) +]); + +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/use-flight-response.js b/cli/app/node_modules/next/dist/server/app-render/use-flight-response.js new file mode 100644 index 00000000000..7fbe01e4630 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/use-flight-response.js @@ -0,0 +1,214 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createInlinedDataReadableStream: null, + getFlightStream: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createInlinedDataReadableStream: function() { + return createInlinedDataReadableStream; + }, + getFlightStream: function() { + return getFlightStream; + } +}); +const _htmlescape = require("../htmlescape"); +const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _manifestssingleton = require("./manifests-singleton"); +const isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge'; +const INLINE_FLIGHT_PAYLOAD_BOOTSTRAP = 0; +const INLINE_FLIGHT_PAYLOAD_DATA = 1; +const INLINE_FLIGHT_PAYLOAD_FORM_STATE = 2; +const INLINE_FLIGHT_PAYLOAD_BINARY = 3; +const flightResponses = new WeakMap(); +const encoder = new TextEncoder(); +const findSourceMapURL = process.env.NODE_ENV !== 'production' ? require('../lib/source-maps').findSourceMapURLDEV : undefined; +function getFlightStream(flightStream, debugStream, debugEndTime, nonce) { + const response = flightResponses.get(flightStream); + if (response) { + return response; + } + const { moduleLoading, edgeSSRModuleMapping, ssrModuleMapping } = (0, _manifestssingleton.getClientReferenceManifest)(); + let newResponse; + if (flightStream instanceof ReadableStream) { + // The types of flightStream and debugStream should match. + if (debugStream && !(debugStream instanceof ReadableStream)) { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected debug stream to be a ReadableStream'), "__NEXT_ERROR_CODE", { + value: "E939", + enumerable: false, + configurable: true + }); + } + // react-server-dom-webpack/client.edge must not be hoisted for require cache clearing to work correctly + const { createFromReadableStream } = // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-webpack/client'); + newResponse = createFromReadableStream(flightStream, { + findSourceMapURL, + serverConsumerManifest: { + moduleLoading, + moduleMap: isEdgeRuntime ? edgeSSRModuleMapping : ssrModuleMapping, + serverModuleMap: null + }, + nonce, + debugChannel: debugStream ? { + readable: debugStream + } : undefined, + endTime: debugEndTime + }); + } else { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('getFlightStream should always receive a ReadableStream when using the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E943", + enumerable: false, + configurable: true + }); + } else { + const { Readable } = require('node:stream'); + // The types of flightStream and debugStream should match. + if (debugStream && !(debugStream instanceof Readable)) { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected debug stream to be a Readable'), "__NEXT_ERROR_CODE", { + value: "E940", + enumerable: false, + configurable: true + }); + } + // react-server-dom-webpack/client.edge must not be hoisted for require cache clearing to work correctly + const { createFromNodeStream } = // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-webpack/client'); + newResponse = createFromNodeStream(flightStream, { + moduleLoading, + moduleMap: isEdgeRuntime ? edgeSSRModuleMapping : ssrModuleMapping, + serverModuleMap: null + }, { + findSourceMapURL, + nonce, + debugChannel: debugStream, + endTime: debugEndTime + }); + } + } + // Edge pages are never prerendered so they necessarily cannot have a workUnitStore type + // that requires the nextTick behavior. This is why it is safe to access a node only API here + if (process.env.NEXT_RUNTIME !== 'edge') { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (!workUnitStore) { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected workUnitAsyncStorage to have a store.'), "__NEXT_ERROR_CODE", { + value: "E696", + enumerable: false, + configurable: true + }); + } + switch(workUnitStore.type){ + case 'prerender-client': + case 'validation-client': + const responseOnNextTick = new Promise((resolve)=>{ + process.nextTick(()=>{ + resolve(newResponse); + }); + }); + flightResponses.set(flightStream, responseOnNextTick); + return responseOnNextTick; + case 'prerender': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + flightResponses.set(flightStream, newResponse); + return newResponse; +} +function createInlinedDataReadableStream(flightStream, nonce, formState) { + const startScriptTag = nonce ? ``)); +} +function writeFlightDataInstruction(controller, scriptStart, chunk) { + let htmlInlinedData; + if (typeof chunk === 'string') { + htmlInlinedData = (0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([ + INLINE_FLIGHT_PAYLOAD_DATA, + chunk + ])); + } else { + // The chunk cannot be embedded as a UTF-8 string in the script tag. + // Instead let's inline it in base64. + // Credits to Devon Govett (devongovett) for the technique. + // https://github.com/devongovett/rsc-html-stream + const base64 = typeof Buffer !== 'undefined' ? Buffer.from(chunk.buffer, chunk.byteOffset, chunk.byteLength).toString('base64') : btoa(String.fromCodePoint(...chunk)); + htmlInlinedData = (0, _htmlescape.htmlEscapeJsonString)(JSON.stringify([ + INLINE_FLIGHT_PAYLOAD_BINARY, + base64 + ])); + } + controller.enqueue(encoder.encode(`${scriptStart}self.__next_f.push(${htmlInlinedData})`)); +} + +//# sourceMappingURL=use-flight-response.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/vary-params.js b/cli/app/node_modules/next/dist/server/app-render/vary-params.js new file mode 100644 index 00000000000..efca1927dc7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/vary-params.js @@ -0,0 +1,336 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + accumulateRootVaryParam: null, + accumulateVaryParam: null, + createResponseVaryParamsAccumulator: null, + createVaryParamsAccumulator: null, + createVaryingParams: null, + createVaryingSearchParams: null, + emptyVaryParamsAccumulator: null, + finishAccumulatingVaryParams: null, + getMetadataVaryParamsAccumulator: null, + getMetadataVaryParamsThenable: null, + getRootParamsVaryParamsAccumulator: null, + getVaryParamsThenable: null, + getViewportVaryParamsAccumulator: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + accumulateRootVaryParam: function() { + return accumulateRootVaryParam; + }, + accumulateVaryParam: function() { + return accumulateVaryParam; + }, + createResponseVaryParamsAccumulator: function() { + return createResponseVaryParamsAccumulator; + }, + createVaryParamsAccumulator: function() { + return createVaryParamsAccumulator; + }, + createVaryingParams: function() { + return createVaryingParams; + }, + createVaryingSearchParams: function() { + return createVaryingSearchParams; + }, + emptyVaryParamsAccumulator: function() { + return emptyVaryParamsAccumulator; + }, + finishAccumulatingVaryParams: function() { + return finishAccumulatingVaryParams; + }, + getMetadataVaryParamsAccumulator: function() { + return getMetadataVaryParamsAccumulator; + }, + getMetadataVaryParamsThenable: function() { + return getMetadataVaryParamsThenable; + }, + getRootParamsVaryParamsAccumulator: function() { + return getRootParamsVaryParamsAccumulator; + }, + getVaryParamsThenable: function() { + return getVaryParamsThenable; + }, + getViewportVaryParamsAccumulator: function() { + return getViewportVaryParamsAccumulator; + } +}); +const _workunitasyncstorageexternal = require("./work-unit-async-storage.external"); +function createSegmentVaryParamsAccumulator() { + const accumulator = { + varyParams: new Set(), + status: 'pending', + value: new Set(), + then (onfulfilled) { + if (onfulfilled) { + if (accumulator.status === 'pending') { + accumulator.resolvers.push(onfulfilled); + } else { + onfulfilled(accumulator.value); + } + } + }, + resolvers: [] + }; + return accumulator; +} +/** + * A singleton accumulator that's already resolved to an empty Set. Use this for + * segments where we know upfront that no params will be accessed, such as + * client components or segments without user code. + * + * Benefits: + * - No need to accumulate or resolve later + * - Resilient: resolves correctly even if other tracking fails + * - Memory efficient: reuses the same object + */ const emptySet = new Set(); +const emptyVaryParamsAccumulator = { + varyParams: emptySet, + status: 'fulfilled', + value: emptySet, + then (onfulfilled) { + if (onfulfilled) { + onfulfilled(emptySet); + } + }, + resolvers: [] +}; +function createResponseVaryParamsAccumulator() { + // Create the head and rootParams accumulators as top-level fields. + // Segment accumulators are added to the segments set as they are created. + const head = createSegmentVaryParamsAccumulator(); + const rootParams = createSegmentVaryParamsAccumulator(); + const segments = new Set(); + return { + head, + rootParams, + segments + }; +} +function createVaryParamsAccumulator() { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + { + const responseAccumulator = workUnitStore.varyParamsAccumulator; + if (responseAccumulator !== null) { + const accumulator = createSegmentVaryParamsAccumulator(); + responseAccumulator.segments.add(accumulator); + return accumulator; + } + return null; + } + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'prerender-client': + case 'validation-client': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return null; +} +function getMetadataVaryParamsAccumulator() { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + { + const responseAccumulator = workUnitStore.varyParamsAccumulator; + if (responseAccumulator !== null) { + return responseAccumulator.head; + } + return null; + } + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'prerender-client': + case 'validation-client': + case 'unstable-cache': + case 'generate-static-params': + return null; + default: + workUnitStore; + } + } + return null; +} +function getVaryParamsThenable(accumulator) { + return accumulator; +} +function getMetadataVaryParamsThenable() { + const accumulator = getMetadataVaryParamsAccumulator(); + if (accumulator !== null) { + return getVaryParamsThenable(accumulator); + } + return null; +} +const getViewportVaryParamsAccumulator = getMetadataVaryParamsAccumulator; +function getRootParamsVaryParamsAccumulator() { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + { + const responseAccumulator = workUnitStore.varyParamsAccumulator; + if (responseAccumulator !== null) { + return responseAccumulator.rootParams; + } + return null; + } + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'prerender-client': + case 'validation-client': + case 'unstable-cache': + case 'generate-static-params': + return null; + default: + workUnitStore; + } + } + return null; +} +function accumulateVaryParam(accumulator, paramName) { + accumulator.varyParams.add(paramName); +} +function accumulateRootVaryParam(paramName) { + const rootParamsAccumulator = getRootParamsVaryParamsAccumulator(); + if (rootParamsAccumulator !== null) { + accumulateVaryParam(rootParamsAccumulator, paramName); + } +} +function createVaryingParams(accumulator, originalParamsObject, optionalCatchAllParamName) { + if (optionalCatchAllParamName !== null) { + // When there's an optional catch-all param with no value (e.g., + // [[...slug]] at /), the param doesn't exist as a property on the params + // object. Use a Proxy to track all param access — both existing params + // and the missing optional param — including enumeration patterns like + // Object.keys(), spread, for...in, and `in` checks. + return new Proxy(originalParamsObject, { + get (target, prop, receiver) { + if (typeof prop === 'string') { + if (prop === optionalCatchAllParamName || Object.prototype.hasOwnProperty.call(target, prop)) { + accumulateVaryParam(accumulator, prop); + } + } + return Reflect.get(target, prop, receiver); + }, + has (target, prop) { + if (prop === optionalCatchAllParamName) { + accumulateVaryParam(accumulator, optionalCatchAllParamName); + } + return Reflect.has(target, prop); + }, + ownKeys (target) { + // Enumerating the params object means the user's code may depend on + // which params are present, so conservatively track the optional + // param as accessed. + accumulateVaryParam(accumulator, optionalCatchAllParamName); + return Reflect.ownKeys(target); + } + }); + } + // When there's no optional catch-all, all params exist as properties on the + // object, so we can use defineProperty getters instead of a Proxy. This is + // faster because the engine can optimize property access on regular objects + // more aggressively than Proxy trap calls. + const underlyingParamsWithVarying = {}; + for(const paramName in originalParamsObject){ + Object.defineProperty(underlyingParamsWithVarying, paramName, { + get () { + accumulateVaryParam(accumulator, paramName); + return originalParamsObject[paramName]; + }, + enumerable: true + }); + } + return underlyingParamsWithVarying; +} +function createVaryingSearchParams(accumulator, originalSearchParamsObject) { + const underlyingSearchParamsWithVarying = {}; + for(const searchParamName in originalSearchParamsObject){ + Object.defineProperty(underlyingSearchParamsWithVarying, searchParamName, { + get () { + // TODO: Unlike path params, we don't vary track each search param + // individually. The entire search string is treated as a single param. + // This may change in the future. + accumulateVaryParam(accumulator, '?'); + return originalSearchParamsObject[searchParamName]; + }, + enumerable: true + }); + } + return underlyingSearchParamsWithVarying; +} +async function finishAccumulatingVaryParams(responseAccumulator) { + const rootVaryParams = responseAccumulator.rootParams.varyParams; + // Resolve head + finishSegmentAccumulator(responseAccumulator.head, rootVaryParams); + // Resolve each segment + for (const segmentAccumulator of responseAccumulator.segments){ + finishSegmentAccumulator(segmentAccumulator, rootVaryParams); + } + // Now that the thenables are resolved, Flight should be able to flush the + // vary params into the response stream. This work gets scheduled internally + // by Flight using a microtask as soon as we notify the thenable listeners. + // + // We need to ensure that Flight's pending queues are emptied before this + // function returns; the caller will abort the prerender immediately after. + // We can't use a macrotask, because that would allow dynamic IO to sneak + // into the response. So we use microtasks instead. + // + // The exact number of awaits here isn't important (indeed, one seems to be + // sufficient, at the time of writing), as long as we wait enough ticks for + // Flight to finish writing the response. + // + // Anything that remains in Flight's internal queue after these awaits must + // be actual dynamic IO, not caused by pending vary params tasks. In other + // words, failing to do this would cause us to treat a fully static prerender + // as if it were partially dynamic. + await Promise.resolve(); + await Promise.resolve(); + await Promise.resolve(); +} +function finishSegmentAccumulator(accumulator, rootVaryParams) { + if (accumulator.status !== 'pending') { + return; + } + const merged = new Set(accumulator.varyParams); + for (const param of rootVaryParams){ + merged.add(param); + } + accumulator.value = merged; + accumulator.status = 'fulfilled'; + for (const resolver of accumulator.resolvers){ + resolver(merged); + } + accumulator.resolvers = []; +} + +//# sourceMappingURL=vary-params.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js b/cli/app/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js new file mode 100644 index 00000000000..38174070b06 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/walk-tree-with-flight-router-state.js @@ -0,0 +1,232 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createFullTreeFlightDataForNavigation: null, + walkTreeWithFlightRouterState: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createFullTreeFlightDataForNavigation: function() { + return createFullTreeFlightDataForNavigation; + }, + walkTreeWithFlightRouterState: function() { + return walkTreeWithFlightRouterState; + } +}); +const _matchsegments = require("../../client/components/match-segments"); +const _getcssinlinedlinktags = require("./get-css-inlined-link-tags"); +const _getpreloadablefonts = require("./get-preloadable-fonts"); +const _createflightrouterstatefromloadertree = require("./create-flight-router-state-from-loader-tree"); +const _hasloadingcomponentintree = require("./has-loading-component-in-tree"); +const _segment = require("../../shared/lib/segment"); +const _createcomponenttree = require("./create-component-tree"); +const _getsegmentparam = require("../../shared/lib/router/utils/get-segment-param"); +async function walkTreeWithFlightRouterState({ loaderTreeToFilter, parentParams, flightRouterState, parentIsInsideSharedLayout, rscHead, injectedCSS, injectedJS, injectedFontPreloadTags, rootLayoutIncluded, ctx, preloadCallbacks, MetadataOutlet, hintTree }) { + const { renderOpts: { nextFontManifest, experimental }, query, isPrefetch, getDynamicParamFromSegment, parsedRequestHeaders } = ctx; + const [segment, parallelRoutes, modules] = loaderTreeToFilter; + const parallelRoutesKeys = Object.keys(parallelRoutes); + const { layout } = modules; + const isLayout = typeof layout !== 'undefined'; + /** + * Checks if the current segment is a root layout. + */ const rootLayoutAtThisLevel = isLayout && !rootLayoutIncluded; + /** + * Checks if the current segment or any level above it has a root layout. + */ const rootLayoutIncludedAtThisLevelOrAbove = rootLayoutIncluded || rootLayoutAtThisLevel; + // Because this function walks to a deeper point in the tree to start rendering we have to track the dynamic parameters up to the point where rendering starts + const segmentParam = getDynamicParamFromSegment(loaderTreeToFilter); + const currentParams = // Handle null case where dynamic param is optional + segmentParam && segmentParam.value !== null ? { + ...parentParams, + [segmentParam.param]: segmentParam.value + } : parentParams; + const actualSegment = (0, _segment.addSearchParamsIfPageSegment)(segmentParam ? segmentParam.treeSegment : segment, query); + /** + * Decide if the current segment is where rendering has to start. + */ const renderComponentsOnThisLevel = // No further router state available + !flightRouterState || // Segment in router state does not match current segment + !(0, _matchsegments.matchSegment)(actualSegment, flightRouterState[0]) || // Explicit refresh + flightRouterState[3] === 'refetch'; + // Pre-PPR, the `loading` component signals to the router how deep to render the component tree + // to ensure prefetches are quick and inexpensive. If there's no `loading` component anywhere in the tree being rendered, + // the prefetch will be short-circuited to avoid requesting a potentially very expensive subtree. If there's a `loading` + // somewhere in the tree, we'll recursively render the component tree up until we encounter that loading component, and then stop. + // Check if we're inside the "new" part of the navigation — inside the + // shared layout. In the case of a prefetch, this can be true even if the + // segment matches, because the client might send a matching segment to + // indicate that it already has the data in its cache. But in order to find + // the correct loading boundary, we still need to track where the shared + // layout begins. + // + // TODO: We should rethink the protocol for dynamic requests. It might not + // make sense for the client to send a FlightRouterState, since that type is + // overloaded with other concerns. + const isInsideSharedLayout = renderComponentsOnThisLevel || parentIsInsideSharedLayout || flightRouterState[3] === 'inside-shared-layout'; + if (isInsideSharedLayout && !experimental.isRoutePPREnabled && // If PPR is disabled, and this is a request for the route tree, then we + // never render any components. Only send the router state. + (parsedRequestHeaders.isRouteTreePrefetchRequest || // Otherwise, check for the presence of a `loading` component. + isPrefetch && !Boolean(modules.loading) && !(0, _hasloadingcomponentintree.hasLoadingComponentInTree)(loaderTreeToFilter))) { + // Send only the router state. + // TODO: Even for a dynamic route, we should cache these responses, + // because they do not contain any render data (neither segment data nor + // the head). They can be made even more cacheable once we move the route + // params into a separate data structure. + const overriddenSegment = flightRouterState && // TODO: Why does canSegmentBeOverridden exist? Why don't we always just + // use `actualSegment`? Is it to avoid overwriting some state that's + // tracked by the client? Dig deeper to see if we can simplify this. + canSegmentBeOverridden(actualSegment, flightRouterState[0]) ? flightRouterState[0] : actualSegment; + const routerState = parsedRequestHeaders.isRouteTreePrefetchRequest ? await (0, _createflightrouterstatefromloadertree.createRouteTreePrefetch)(loaderTreeToFilter, hintTree, getDynamicParamFromSegment) : await (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(loaderTreeToFilter, hintTree, getDynamicParamFromSegment, query); + return [ + [ + overriddenSegment, + routerState, + null, + [ + null, + null + ], + true + ] + ]; + } + // Similar to the previous branch. This flag is sent by the client to request + // only the metadata for a page. No segment data. + if (flightRouterState && flightRouterState[3] === 'metadata-only') { + const overriddenSegment = flightRouterState && canSegmentBeOverridden(actualSegment, flightRouterState[0]) ? flightRouterState[0] : actualSegment; + const routerState = parsedRequestHeaders.isRouteTreePrefetchRequest ? await (0, _createflightrouterstatefromloadertree.createRouteTreePrefetch)(loaderTreeToFilter, hintTree, getDynamicParamFromSegment) : await (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(loaderTreeToFilter, hintTree, getDynamicParamFromSegment, query); + return [ + [ + overriddenSegment, + routerState, + null, + rscHead, + false + ] + ]; + } + if (renderComponentsOnThisLevel) { + const overriddenSegment = flightRouterState && // TODO: Why does canSegmentBeOverridden exist? Why don't we always just + // use `actualSegment`? Is it to avoid overwriting some state that's + // tracked by the client? Dig deeper to see if we can simplify this. + canSegmentBeOverridden(actualSegment, flightRouterState[0]) ? flightRouterState[0] : actualSegment; + const routerState = await (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(// Create router state using the slice of the loaderTree + loaderTreeToFilter, hintTree, getDynamicParamFromSegment, query); + // Create component tree using the slice of the loaderTree + const seedData = await (0, _createcomponenttree.createComponentTree)(// This ensures flightRouterPath is valid and filters down the tree + { + ctx, + loaderTree: loaderTreeToFilter, + parentParams: currentParams, + parentOptionalCatchAllParamName: null, + parentRuntimePrefetchable: false, + injectedCSS, + injectedJS, + injectedFontPreloadTags, + // This is intentionally not "rootLayoutIncludedAtThisLevelOrAbove" as createComponentTree starts at the current level and does a check for "rootLayoutAtThisLevel" too. + rootLayoutIncluded, + preloadCallbacks, + authInterrupts: experimental.authInterrupts, + MetadataOutlet + }); + return [ + [ + overriddenSegment, + routerState, + seedData, + rscHead, + false + ] + ]; + } + // If we are not rendering on this level we need to check if the current + // segment has a layout. If so, we need to track all the used CSS to make + // the result consistent. + const layoutPath = layout == null ? void 0 : layout[1]; + const injectedCSSWithCurrentLayout = new Set(injectedCSS); + const injectedJSWithCurrentLayout = new Set(injectedJS); + const injectedFontPreloadTagsWithCurrentLayout = new Set(injectedFontPreloadTags); + if (layoutPath) { + (0, _getcssinlinedlinktags.getLinkAndScriptTags)(layoutPath, injectedCSSWithCurrentLayout, injectedJSWithCurrentLayout, true); + (0, _getpreloadablefonts.getPreloadableFonts)(nextFontManifest, layoutPath, injectedFontPreloadTagsWithCurrentLayout); + } + const paths = []; + // Walk through all parallel routes. + for (const parallelRouteKey of parallelRoutesKeys){ + var _hintTree_slots; + const parallelRoute = parallelRoutes[parallelRouteKey]; + const subPaths = await walkTreeWithFlightRouterState({ + ctx, + loaderTreeToFilter: parallelRoute, + parentParams: currentParams, + flightRouterState: flightRouterState && flightRouterState[1][parallelRouteKey], + parentIsInsideSharedLayout: isInsideSharedLayout, + rscHead, + injectedCSS: injectedCSSWithCurrentLayout, + injectedJS: injectedJSWithCurrentLayout, + injectedFontPreloadTags: injectedFontPreloadTagsWithCurrentLayout, + rootLayoutIncluded: rootLayoutIncludedAtThisLevelOrAbove, + preloadCallbacks, + MetadataOutlet, + hintTree: (hintTree == null ? void 0 : (_hintTree_slots = hintTree.slots) == null ? void 0 : _hintTree_slots[parallelRouteKey]) ?? null + }); + for (const subPath of subPaths){ + paths.push([ + actualSegment, + parallelRouteKey, + ...subPath + ]); + } + } + return paths; +} +async function createFullTreeFlightDataForNavigation({ loaderTree, rscHead, injectedCSS, injectedJS, injectedFontPreloadTags, ctx, preloadCallbacks, MetadataOutlet }) { + var _ctx_renderOpts_prefetchHints; + const { renderOpts: { experimental }, query, getDynamicParamFromSegment, pagePath } = ctx; + const hintTreeForInitialRender = ((_ctx_renderOpts_prefetchHints = ctx.renderOpts.prefetchHints) == null ? void 0 : _ctx_renderOpts_prefetchHints[pagePath]) ?? null; + const routerState = await (0, _createflightrouterstatefromloadertree.createFlightRouterStateFromLoaderTree)(loaderTree, hintTreeForInitialRender, getDynamicParamFromSegment, query); + const rootSegment = routerState[0]; + const seedData = await (0, _createcomponenttree.createComponentTree)({ + ctx, + loaderTree, + parentParams: {}, + parentOptionalCatchAllParamName: null, + parentRuntimePrefetchable: false, + injectedCSS, + injectedJS, + injectedFontPreloadTags, + rootLayoutIncluded: false, + preloadCallbacks, + authInterrupts: experimental.authInterrupts, + MetadataOutlet + }); + return [ + [ + // TODO: app-render slices this Segment off. + // why is that valid, and why are we including it in the first place? + rootSegment, + routerState, + seedData, + rscHead, + false + ] + ]; +} +/* + * This function is used to determine if an existing segment can be overridden + * by the incoming segment. + */ const canSegmentBeOverridden = (existingSegment, segment)=>{ + var _getSegmentParam; + if (Array.isArray(existingSegment) || !Array.isArray(segment)) { + return false; + } + return ((_getSegmentParam = (0, _getsegmentparam.getSegmentParam)(existingSegment)) == null ? void 0 : _getSegmentParam.paramName) === segment[0]; +}; + +//# sourceMappingURL=walk-tree-with-flight-router-state.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/work-async-storage-instance.js b/cli/app/node_modules/next/dist/server/app-render/work-async-storage-instance.js new file mode 100644 index 00000000000..1ea9c61d574 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/work-async-storage-instance.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "workAsyncStorageInstance", { + enumerable: true, + get: function() { + return workAsyncStorageInstance; + } +}); +const _asynclocalstorage = require("./async-local-storage"); +const workAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)(); + +//# sourceMappingURL=work-async-storage-instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/work-async-storage.external.js b/cli/app/node_modules/next/dist/server/app-render/work-async-storage.external.js new file mode 100644 index 00000000000..7ad983b033d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/work-async-storage.external.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "workAsyncStorage", { + enumerable: true, + get: function() { + return _workasyncstorageinstance.workAsyncStorageInstance; + } +}); +const _workasyncstorageinstance = require("./work-async-storage-instance"); + +//# sourceMappingURL=work-async-storage.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js b/cli/app/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js new file mode 100644 index 00000000000..5fff687b961 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/work-unit-async-storage-instance.js @@ -0,0 +1,14 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "workUnitAsyncStorageInstance", { + enumerable: true, + get: function() { + return workUnitAsyncStorageInstance; + } +}); +const _asynclocalstorage = require("./async-local-storage"); +const workUnitAsyncStorageInstance = (0, _asynclocalstorage.createAsyncLocalStorage)(); + +//# sourceMappingURL=work-unit-async-storage-instance.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js b/cli/app/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js new file mode 100644 index 00000000000..5ea6678ecf2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/app-render/work-unit-async-storage.external.js @@ -0,0 +1,280 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getCacheSignal: null, + getDraftModeProviderForCacheScope: null, + getHmrRefreshHash: null, + getPrerenderResumeDataCache: null, + getRenderResumeDataCache: null, + getServerComponentsHmrCache: null, + getStagedRenderingController: null, + isHmrRefresh: null, + isInEarlyRenderStage: null, + throwForMissingRequestStore: null, + throwInvariantForMissingStore: null, + workUnitAsyncStorage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getCacheSignal: function() { + return getCacheSignal; + }, + getDraftModeProviderForCacheScope: function() { + return getDraftModeProviderForCacheScope; + }, + getHmrRefreshHash: function() { + return getHmrRefreshHash; + }, + getPrerenderResumeDataCache: function() { + return getPrerenderResumeDataCache; + }, + getRenderResumeDataCache: function() { + return getRenderResumeDataCache; + }, + getServerComponentsHmrCache: function() { + return getServerComponentsHmrCache; + }, + getStagedRenderingController: function() { + return getStagedRenderingController; + }, + isHmrRefresh: function() { + return isHmrRefresh; + }, + isInEarlyRenderStage: function() { + return isInEarlyRenderStage; + }, + throwForMissingRequestStore: function() { + return throwForMissingRequestStore; + }, + throwInvariantForMissingStore: function() { + return throwInvariantForMissingStore; + }, + workUnitAsyncStorage: function() { + return _workunitasyncstorageinstance.workUnitAsyncStorageInstance; + } +}); +const _workunitasyncstorageinstance = require("./work-unit-async-storage-instance"); +const _approuterheaders = require("../../client/components/app-router-headers"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _stagedrendering = require("./staged-rendering"); +function isInEarlyRenderStage(requestStore) { + const stagedRendering = requestStore.stagedRendering; + if (stagedRendering) { + return stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyStatic || stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyRuntime; + } + return false; +} +function throwForMissingRequestStore(callingExpression) { + throw Object.defineProperty(new Error(`\`${callingExpression}\` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context`), "__NEXT_ERROR_CODE", { + value: "E251", + enumerable: false, + configurable: true + }); +} +function throwInvariantForMissingStore() { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected workUnitAsyncStorage to have a store.'), "__NEXT_ERROR_CODE", { + value: "E696", + enumerable: false, + configurable: true + }); +} +function getPrerenderResumeDataCache(workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + case 'prerender-ppr': + return workUnitStore.prerenderResumeDataCache; + case 'prerender-client': + case 'validation-client': + // TODO eliminate fetch caching in client scope and stop exposing this data + // cache during SSR. + return workUnitStore.prerenderResumeDataCache; + case 'request': + { + // In dev, we might fill caches even during a dynamic request. + if (workUnitStore.prerenderResumeDataCache) { + return workUnitStore.prerenderResumeDataCache; + } + // fallthrough + } + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + return null; + default: + return workUnitStore; + } +} +function getRenderResumeDataCache(workUnitStore) { + switch(workUnitStore.type){ + case 'request': + case 'prerender': + case 'prerender-runtime': + case 'prerender-client': + case 'validation-client': + if (workUnitStore.renderResumeDataCache) { + // If we are in a prerender, we might have a render resume data cache + // that is used to read from prefilled caches. + return workUnitStore.renderResumeDataCache; + } + // fallthrough + case 'prerender-ppr': + // Otherwise we return the mutable resume data cache here as an immutable + // version of the cache as it can also be used for reading. + return workUnitStore.prerenderResumeDataCache ?? null; + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'prerender-legacy': + case 'generate-static-params': + return null; + default: + return workUnitStore; + } +} +function getHmrRefreshHash(workUnitStore) { + if (process.env.__NEXT_DEV_SERVER) { + switch(workUnitStore.type){ + case 'cache': + case 'private-cache': + case 'prerender': + case 'prerender-runtime': + return workUnitStore.hmrRefreshHash; + case 'request': + var _workUnitStore_cookies_get; + return (_workUnitStore_cookies_get = workUnitStore.cookies.get(_approuterheaders.NEXT_HMR_REFRESH_HASH_COOKIE)) == null ? void 0 : _workUnitStore_cookies_get.value; + case 'prerender-client': + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return undefined; +} +function isHmrRefresh(workUnitStore) { + if (process.env.__NEXT_DEV_SERVER) { + switch(workUnitStore.type){ + case 'cache': + case 'private-cache': + case 'request': + return workUnitStore.isHmrRefresh ?? false; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return false; +} +function getServerComponentsHmrCache(workUnitStore) { + if (process.env.__NEXT_DEV_SERVER) { + switch(workUnitStore.type){ + case 'cache': + case 'private-cache': + case 'request': + return workUnitStore.serverComponentsHmrCache; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return undefined; +} +function getDraftModeProviderForCacheScope(workStore, workUnitStore) { + if (workStore.isDraftMode) { + switch(workUnitStore.type){ + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'prerender-runtime': + case 'request': + return workUnitStore.draftMode; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + return undefined; +} +function getStagedRenderingController(workUnitStore) { + switch(workUnitStore.type){ + case 'request': + case 'prerender-runtime': + return workUnitStore.stagedRendering ?? null; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + return null; + default: + return workUnitStore; + } +} +function getCacheSignal(workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + return workUnitStore.cacheSignal; + case 'request': + { + // In dev, we might fill caches even during a dynamic request. + if (workUnitStore.cacheSignal) { + return workUnitStore.cacheSignal; + } + // fallthrough + } + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + return null; + default: + return workUnitStore; + } +} + +//# sourceMappingURL=work-unit-async-storage.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/async-storage/draft-mode-provider.js b/cli/app/node_modules/next/dist/server/async-storage/draft-mode-provider.js new file mode 100644 index 00000000000..cd282c7e22a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/async-storage/draft-mode-provider.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DraftModeProvider", { + enumerable: true, + get: function() { + return DraftModeProvider; + } +}); +const _apiutils = require("../api-utils"); +class DraftModeProvider { + constructor(previewProps, req, cookies, mutableCookies){ + var _cookies_get; + // The logic for draftMode() is very similar to tryGetPreviewData() + // but Draft Mode does not have any data associated with it. + const isOnDemandRevalidate = previewProps && (0, _apiutils.checkIsOnDemandRevalidate)(req, previewProps).isOnDemandRevalidate; + const cookieValue = (_cookies_get = cookies.get(_apiutils.COOKIE_NAME_PRERENDER_BYPASS)) == null ? void 0 : _cookies_get.value; + this._isEnabled = Boolean(!isOnDemandRevalidate && cookieValue && previewProps && (cookieValue === previewProps.previewModeId || // In dev mode, the cookie can be actual hash value preview id but the preview props can still be `development-id`. + process.env.NODE_ENV !== 'production' && previewProps.previewModeId === 'development-id')); + this._previewModeId = previewProps == null ? void 0 : previewProps.previewModeId; + this._mutableCookies = mutableCookies; + } + get isEnabled() { + return this._isEnabled; + } + enable() { + if (!this._previewModeId) { + throw Object.defineProperty(new Error('Invariant: previewProps missing previewModeId this should never happen'), "__NEXT_ERROR_CODE", { + value: "E93", + enumerable: false, + configurable: true + }); + } + this._mutableCookies.set({ + name: _apiutils.COOKIE_NAME_PRERENDER_BYPASS, + value: this._previewModeId, + httpOnly: true, + sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax', + secure: process.env.NODE_ENV !== 'development', + path: '/' + }); + this._isEnabled = true; + } + disable() { + // To delete a cookie, set `expires` to a date in the past: + // https://tools.ietf.org/html/rfc6265#section-4.1.1 + // `Max-Age: 0` is not valid, thus ignored, and the cookie is persisted. + this._mutableCookies.set({ + name: _apiutils.COOKIE_NAME_PRERENDER_BYPASS, + value: '', + httpOnly: true, + sameSite: process.env.NODE_ENV !== 'development' ? 'none' : 'lax', + secure: process.env.NODE_ENV !== 'development', + path: '/', + expires: new Date(0) + }); + this._isEnabled = false; + } +} + +//# sourceMappingURL=draft-mode-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/async-storage/request-store.js b/cli/app/node_modules/next/dist/server/async-storage/request-store.js new file mode 100644 index 00000000000..0b23cbf6ed9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/async-storage/request-store.js @@ -0,0 +1,144 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createRequestStoreForAPI: null, + createRequestStoreForRender: null, + synchronizeMutableCookies: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createRequestStoreForAPI: function() { + return createRequestStoreForAPI; + }, + createRequestStoreForRender: function() { + return createRequestStoreForRender; + }, + synchronizeMutableCookies: function() { + return synchronizeMutableCookies; + } +}); +const _approuterheaders = require("../../client/components/app-router-headers"); +const _headers = require("../web/spec-extension/adapters/headers"); +const _requestcookies = require("../web/spec-extension/adapters/request-cookies"); +const _cookies = require("../web/spec-extension/cookies"); +const _draftmodeprovider = require("./draft-mode-provider"); +const _utils = require("../web/utils"); +function getHeaders(headers) { + const cleaned = _headers.HeadersAdapter.from(headers); + for (const header of _approuterheaders.FLIGHT_HEADERS){ + cleaned.delete(header); + } + return _headers.HeadersAdapter.seal(cleaned); +} +function getMutableCookies(headers, onUpdateCookies) { + const cookies = new _cookies.RequestCookies(_headers.HeadersAdapter.from(headers)); + return _requestcookies.MutableRequestCookiesAdapter.wrap(cookies, onUpdateCookies); +} +/** + * If middleware set cookies in this request (indicated by `x-middleware-set-cookie`), + * then merge those into the existing cookie object, so that when `cookies()` is accessed + * it's able to read the newly set cookies. + */ function mergeMiddlewareCookies(req, existingCookies) { + if ('x-middleware-set-cookie' in req.headers && typeof req.headers['x-middleware-set-cookie'] === 'string') { + const setCookieValue = req.headers['x-middleware-set-cookie']; + const responseHeaders = new Headers(); + for (const cookie of (0, _utils.splitCookiesString)(setCookieValue)){ + responseHeaders.append('set-cookie', cookie); + } + const responseCookies = new _cookies.ResponseCookies(responseHeaders); + // Transfer cookies from ResponseCookies to RequestCookies + for (const cookie of responseCookies.getAll()){ + existingCookies.set(cookie); + } + } +} +function createRequestStoreForRender(req, res, url, rootParams, implicitTags, onUpdateCookies, previewProps, isHmrRefresh, serverComponentsHmrCache, renderResumeDataCache, fallbackParams) { + return createRequestStoreImpl(// Pages start in render phase by default + 'render', req, res, url, rootParams, implicitTags, onUpdateCookies, renderResumeDataCache, previewProps, isHmrRefresh, serverComponentsHmrCache, fallbackParams); +} +function createRequestStoreForAPI(req, url, implicitTags, onUpdateCookies, previewProps) { + return createRequestStoreImpl(// API routes start in action phase by default + 'action', req, undefined, url, {}, implicitTags, onUpdateCookies, null, previewProps, false, undefined, null); +} +function createRequestStoreImpl(phase, req, res, url, rootParams, implicitTags, onUpdateCookies, renderResumeDataCache, previewProps, isHmrRefresh, serverComponentsHmrCache, fallbackParams) { + function defaultOnUpdateCookies(cookies) { + if (res) { + res.setHeader('Set-Cookie', cookies); + } + } + const cache = {}; + return { + type: 'request', + phase, + implicitTags, + // Rather than just using the whole `url` here, we pull the parts we want + // to ensure we don't use parts of the URL that we shouldn't. This also + // lets us avoid requiring an empty string for `search` in the type. + url: { + pathname: url.pathname, + search: url.search ?? '' + }, + rootParams, + get headers () { + if (!cache.headers) { + // Seal the headers object that'll freeze out any methods that could + // mutate the underlying data. + cache.headers = getHeaders(req.headers); + } + return cache.headers; + }, + get cookies () { + if (!cache.cookies) { + // if middleware is setting cookie(s), then include those in + // the initial cached cookies so they can be read in render + const requestCookies = new _cookies.RequestCookies(_headers.HeadersAdapter.from(req.headers)); + mergeMiddlewareCookies(req, requestCookies); + // Seal the cookies object that'll freeze out any methods that could + // mutate the underlying data. + cache.cookies = _requestcookies.RequestCookiesAdapter.seal(requestCookies); + } + return cache.cookies; + }, + set cookies (value){ + cache.cookies = value; + }, + get mutableCookies () { + if (!cache.mutableCookies) { + const mutableCookies = getMutableCookies(req.headers, onUpdateCookies || (res ? defaultOnUpdateCookies : undefined)); + mergeMiddlewareCookies(req, mutableCookies); + cache.mutableCookies = mutableCookies; + } + return cache.mutableCookies; + }, + get userspaceMutableCookies () { + if (!cache.userspaceMutableCookies) { + const userspaceMutableCookies = (0, _requestcookies.createCookiesWithMutableAccessCheck)(this); + cache.userspaceMutableCookies = userspaceMutableCookies; + } + return cache.userspaceMutableCookies; + }, + get draftMode () { + if (!cache.draftMode) { + cache.draftMode = new _draftmodeprovider.DraftModeProvider(previewProps, req, this.cookies, this.mutableCookies); + } + return cache.draftMode; + }, + renderResumeDataCache: renderResumeDataCache ?? null, + isHmrRefresh, + serverComponentsHmrCache: serverComponentsHmrCache || globalThis.__serverComponentsHmrCache, + fallbackParams + }; +} +function synchronizeMutableCookies(store) { + // TODO: does this need to update headers as well? + store.cookies = _requestcookies.RequestCookiesAdapter.seal((0, _requestcookies.responseCookiesToRequestCookies)(store.mutableCookies)); +} + +//# sourceMappingURL=request-store.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/async-storage/work-store.js b/cli/app/node_modules/next/dist/server/async-storage/work-store.js new file mode 100644 index 00000000000..eecaf5b30da --- /dev/null +++ b/cli/app/node_modules/next/dist/server/async-storage/work-store.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createWorkStore", { + enumerable: true, + get: function() { + return createWorkStore; + } +}); +const _aftercontext = require("../after/after-context"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _lazyresult = require("../lib/lazy-result"); +const _handlers = require("../use-cache/handlers"); +const _asynclocalstorage = require("../app-render/async-local-storage"); +function createWorkStore({ page, renderOpts, isPrefetchRequest, buildId, previouslyRevalidatedTags, nonce }) { + /** + * Rules of Static & Dynamic HTML: + * + * 1.) We must generate static HTML unless the caller explicitly opts + * in to dynamic HTML support. + * + * 2.) If dynamic HTML support is requested, we must honor that request + * or throw an error. It is the sole responsibility of the caller to + * ensure they aren't e.g. requesting dynamic HTML for a static page. + * + * 3.) If the request is in draft mode, we must generate dynamic HTML. + * + * 4.) If the request is a server action, we must generate dynamic HTML. + * + * These rules help ensure that other existing features like request caching, + * coalescing, and ISR continue working as intended. + */ const isStaticGeneration = !renderOpts.shouldWaitOnAllReady && !renderOpts.supportsDynamicResponse && !renderOpts.isDraftMode && !renderOpts.isPossibleServerAction; + const shouldTrackFetchMetrics = !!process.env.__NEXT_DEV_SERVER || // The only times we want to track fetch metrics outside of development is + // when we are performing a static generation and we either are in debug + // mode, or tracking fetch metrics was specifically opted into. + isStaticGeneration && (!!process.env.NEXT_DEBUG_BUILD || process.env.NEXT_SSG_FETCH_METRICS === '1'); + const store = { + isStaticGeneration, + page, + route: (0, _apppaths.normalizeAppPath)(page), + incrementalCache: // we fallback to a global incremental cache for edge-runtime locally + // so that it can access the fs cache without mocks + renderOpts.incrementalCache || globalThis.__incrementalCache, + cacheLifeProfiles: renderOpts.cacheLifeProfiles, + isBuildTimePrerendering: renderOpts.isBuildTimePrerendering, + fetchCache: renderOpts.fetchCache, + isOnDemandRevalidate: renderOpts.isOnDemandRevalidate, + isDraftMode: renderOpts.isDraftMode, + isPrefetchRequest, + buildId, + reactLoadableManifest: (renderOpts == null ? void 0 : renderOpts.reactLoadableManifest) || {}, + assetPrefix: (renderOpts == null ? void 0 : renderOpts.assetPrefix) || '', + nonce, + afterContext: createAfterContext(renderOpts), + cacheComponentsEnabled: renderOpts.cacheComponents, + previouslyRevalidatedTags, + refreshTagsByCacheKind: createRefreshTagsByCacheKind(), + runInCleanSnapshot: (0, _asynclocalstorage.createSnapshot)(), + shouldTrackFetchMetrics, + reactServerErrorsByDigest: new Map() + }; + // TODO: remove this when we resolve accessing the store outside the execution context + renderOpts.store = store; + return store; +} +function createAfterContext(renderOpts) { + const { waitUntil, onClose, onAfterTaskError } = renderOpts; + return new _aftercontext.AfterContext({ + waitUntil, + onClose, + onTaskError: onAfterTaskError + }); +} +/** + * Creates a map with lazy results that refresh tags for the respective cache + * kind when they're awaited for the first time. + */ function createRefreshTagsByCacheKind() { + const refreshTagsByCacheKind = new Map(); + const cacheHandlers = (0, _handlers.getCacheHandlerEntries)(); + if (cacheHandlers) { + for (const [kind, cacheHandler] of cacheHandlers){ + if ('refreshTags' in cacheHandler) { + refreshTagsByCacheKind.set(kind, (0, _lazyresult.createLazyResult)(async ()=>cacheHandler.refreshTags())); + } + } + } + return refreshTagsByCacheKind; +} + +//# sourceMappingURL=work-store.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/base-http/helpers.js b/cli/app/node_modules/next/dist/server/base-http/helpers.js new file mode 100644 index 00000000000..87f4ae5a673 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/base-http/helpers.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isNodeNextRequest: null, + isNodeNextResponse: null, + isWebNextRequest: null, + isWebNextResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isNodeNextRequest: function() { + return isNodeNextRequest; + }, + isNodeNextResponse: function() { + return isNodeNextResponse; + }, + isWebNextRequest: function() { + return isWebNextRequest; + }, + isWebNextResponse: function() { + return isWebNextResponse; + } +}); +const isWebNextRequest = (req)=>process.env.NEXT_RUNTIME === 'edge'; +const isWebNextResponse = (res)=>process.env.NEXT_RUNTIME === 'edge'; +const isNodeNextRequest = (req)=>process.env.NEXT_RUNTIME !== 'edge'; +const isNodeNextResponse = (res)=>process.env.NEXT_RUNTIME !== 'edge'; + +//# sourceMappingURL=helpers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/base-http/index.js b/cli/app/node_modules/next/dist/server/base-http/index.js new file mode 100644 index 00000000000..73db7968e8d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/base-http/index.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + BaseNextRequest: null, + BaseNextResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + BaseNextRequest: function() { + return BaseNextRequest; + }, + BaseNextResponse: function() { + return BaseNextResponse; + } +}); +const _redirectstatuscode = require("../../client/components/redirect-status-code"); +const _getcookieparser = require("../api-utils/get-cookie-parser"); +class BaseNextRequest { + constructor(method, url, body){ + this.method = method; + this.url = url; + this.body = body; + } + // Utils implemented using the abstract methods above + get cookies() { + if (this._cookies) return this._cookies; + return this._cookies = (0, _getcookieparser.getCookieParser)(this.headers)(); + } +} +class BaseNextResponse { + constructor(destination){ + this.destination = destination; + } + // Utils implemented using the abstract methods above + redirect(destination, statusCode) { + this.setHeader('Location', destination); + this.statusCode = statusCode; + // Since IE11 doesn't support the 308 header add backwards + // compatibility using refresh header + if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) { + this.setHeader('Refresh', `0;url=${destination}`); + } + return this; + } +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/base-http/node.js b/cli/app/node_modules/next/dist/server/base-http/node.js new file mode 100644 index 00000000000..9aa867ff593 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/base-http/node.js @@ -0,0 +1,147 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NodeNextRequest: null, + NodeNextResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NodeNextRequest: function() { + return NodeNextRequest; + }, + NodeNextResponse: function() { + return NodeNextResponse; + } +}); +const _apiutils = require("../api-utils"); +const _requestmeta = require("../request-meta"); +const _index = require("./index"); +let prop; +class NodeNextRequest extends _index.BaseNextRequest { + static #_ = prop = _NEXT_REQUEST_META = _requestmeta.NEXT_REQUEST_META; + constructor(_req){ + var _this__req; + super(_req.method.toUpperCase(), _req.url, _req), this._req = _req, this.headers = this._req.headers, this.fetchMetrics = (_this__req = this._req) == null ? void 0 : _this__req.fetchMetrics, this[_NEXT_REQUEST_META] = this._req[_requestmeta.NEXT_REQUEST_META] || {}, this.streaming = false; + } + get originalRequest() { + // Need to mimic these changes to the original req object for places where we use it: + // render.tsx, api/ssg requests + this._req[_requestmeta.NEXT_REQUEST_META] = this[_requestmeta.NEXT_REQUEST_META]; + this._req.url = this.url; + this._req.cookies = this.cookies; + return this._req; + } + set originalRequest(value) { + this._req = value; + } + /** + * Returns the request body as a Web Readable Stream. The body here can only + * be read once as the body will start flowing as soon as the data handler + * is attached. + * + * @internal + */ stream() { + if (this.streaming) { + throw Object.defineProperty(new Error('Invariant: NodeNextRequest.stream() can only be called once'), "__NEXT_ERROR_CODE", { + value: "E467", + enumerable: false, + configurable: true + }); + } + this.streaming = true; + return new ReadableStream({ + start: (controller)=>{ + this._req.on('data', (chunk)=>{ + controller.enqueue(new Uint8Array(chunk)); + }); + this._req.on('end', ()=>{ + controller.close(); + }); + this._req.on('error', (err)=>{ + controller.error(err); + }); + } + }); + } +} +class NodeNextResponse extends _index.BaseNextResponse { + get originalResponse() { + if (_apiutils.SYMBOL_CLEARED_COOKIES in this) { + this._res[_apiutils.SYMBOL_CLEARED_COOKIES] = this[_apiutils.SYMBOL_CLEARED_COOKIES]; + } + return this._res; + } + constructor(_res){ + super(_res), this._res = _res, this.textBody = undefined; + } + get sent() { + return this._res.finished || this._res.headersSent; + } + get statusCode() { + return this._res.statusCode; + } + set statusCode(value) { + this._res.statusCode = value; + } + get statusMessage() { + return this._res.statusMessage; + } + set statusMessage(value) { + this._res.statusMessage = value; + } + setHeader(name, value) { + this._res.setHeader(name, value); + return this; + } + removeHeader(name) { + this._res.removeHeader(name); + return this; + } + getHeaderValues(name) { + const values = this._res.getHeader(name); + if (values === undefined) return undefined; + return (Array.isArray(values) ? values : [ + values + ]).map((value)=>value.toString()); + } + hasHeader(name) { + return this._res.hasHeader(name); + } + getHeader(name) { + const values = this.getHeaderValues(name); + return Array.isArray(values) ? values.join(',') : undefined; + } + getHeaders() { + return this._res.getHeaders(); + } + appendHeader(name, value) { + const currentValues = this.getHeaderValues(name) ?? []; + if (!currentValues.includes(value)) { + this._res.setHeader(name, [ + ...currentValues, + value + ]); + } + return this; + } + body(value) { + this.textBody = value; + return this; + } + send() { + this._res.end(this.textBody); + } + onClose(callback) { + this.originalResponse.on('close', callback); + } +} +var _NEXT_REQUEST_META; + +//# sourceMappingURL=node.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/base-server.js b/cli/app/node_modules/next/dist/server/base-server.js new file mode 100644 index 00000000000..68357fb4e5e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/base-server.js @@ -0,0 +1,1874 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + WrappedBuildError: null, + default: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + WrappedBuildError: function() { + return WrappedBuildError; + }, + default: function() { + return Server; + } +}); +const _configshared = require("./config-shared"); +const _utils = require("../shared/lib/utils"); +const _path = /*#__PURE__*/ _interop_require_wildcard(require("path")); +const _url = require("url"); +const _formathostname = require("./lib/format-hostname"); +const _constants = require("../shared/lib/constants"); +const _utils1 = require("../shared/lib/router/utils"); +const _utils2 = require("./utils"); +const _isbot = require("../shared/lib/router/utils/is-bot"); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("./render-result")); +const _removetrailingslash = require("../shared/lib/router/utils/remove-trailing-slash"); +const _denormalizepagepath = require("../shared/lib/page-path/denormalize-page-path"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _serverutils = require("./server-utils"); +const _iserror = /*#__PURE__*/ _interop_require_wildcard(require("../lib/is-error")); +const _requestmeta = require("./request-meta"); +const _removepathprefix = require("../shared/lib/router/utils/remove-path-prefix"); +const _apppaths = require("../shared/lib/router/utils/app-paths"); +const _gethostname = require("../shared/lib/get-hostname"); +const _parseurl = require("../shared/lib/router/utils/parse-url"); +const _getnextpathnameinfo = require("../shared/lib/router/utils/get-next-pathname-info"); +const _approuterheaders = require("../client/components/app-router-headers"); +const _localeroutenormalizer = require("./normalizers/locale-route-normalizer"); +const _defaultroutematchermanager = require("./route-matcher-managers/default-route-matcher-manager"); +const _apppageroutematcherprovider = require("./route-matcher-providers/app-page-route-matcher-provider"); +const _approuteroutematcherprovider = require("./route-matcher-providers/app-route-route-matcher-provider"); +const _pagesapiroutematcherprovider = require("./route-matcher-providers/pages-api-route-matcher-provider"); +const _pagesroutematcherprovider = require("./route-matcher-providers/pages-route-matcher-provider"); +const _servermanifestloader = require("./route-matcher-providers/helpers/manifest-loaders/server-manifest-loader"); +const _tracer = require("./lib/trace/tracer"); +const _constants1 = require("./lib/trace/constants"); +const _i18nprovider = require("./lib/i18n-provider"); +const _sendresponse = require("./send-response"); +const _utils3 = require("./web/utils"); +const _constants2 = require("../lib/constants"); +const _normalizelocalepath = require("../shared/lib/i18n/normalize-locale-path"); +const _matchnextdatapathname = require("./lib/match-next-data-pathname"); +const _getroutefromassetpath = /*#__PURE__*/ _interop_require_default(require("../shared/lib/router/utils/get-route-from-asset-path")); +const _rsc = require("./normalizers/request/rsc"); +const _stripflightheaders = require("./app-render/strip-flight-headers"); +const _checks = require("./route-modules/checks"); +const _nextdata = require("./normalizers/request/next-data"); +const _serveractionrequestmeta = require("./lib/server-action-request-meta"); +const _interceptionroutes = require("../shared/lib/router/utils/interception-routes"); +const _toroute = require("./lib/to-route"); +const _helpers = require("./base-http/helpers"); +const _patchsetheader = require("./lib/patch-set-header"); +const _ppr = require("./lib/experimental/ppr"); +const _builtinrequestcontext = require("./after/builtin-request-context"); +const _adapter = require("./web/adapter"); +const _fallback = require("../lib/fallback"); +const _segmentprefixrsc = require("./normalizers/request/segment-prefix-rsc"); +const _streamingmetadata = require("./lib/streaming-metadata"); +const _decodequerypathparameter = require("./lib/decode-query-path-parameter"); +const _nofallbackerrorexternal = require("../shared/lib/no-fallback-error.external"); +const _fixmojibake = require("./lib/fix-mojibake"); +const _cachebustingsearchparam = require("../shared/lib/router/utils/cache-busting-search-param"); +const _setcachebustingsearchparam = require("../client/components/router-reducer/set-cache-busting-search-param"); +const _fallbackparams = require("./request/fallback-params"); +const _routekind = require("./route-kind"); +const _postponedrequestbody = require("./lib/postponed-request-body"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +class WrappedBuildError extends Error { + constructor(innerError){ + super(); + this.innerError = innerError; + } +} +class Server { + getServerComponentsHmrCache() { + return this.nextConfig.experimental.serverComponentsHmrCache ? globalThis.__serverComponentsHmrCache : undefined; + } + /** + * This is used to persist cache scopes across + * prefetch -> full route requests for cache components + * it's only fully used in dev + */ constructor(options){ + var _this_nextConfig_i18n, _this_nextConfig_i18n1; + this.handleRSCRequest = (req, _res, parsedUrl)=>{ + var _this_normalizers_segmentPrefetchRSC, _this_normalizers_rsc; + if (!parsedUrl.pathname) return false; + if ((_this_normalizers_segmentPrefetchRSC = this.normalizers.segmentPrefetchRSC) == null ? void 0 : _this_normalizers_segmentPrefetchRSC.match(parsedUrl.pathname)) { + const result = this.normalizers.segmentPrefetchRSC.extract(parsedUrl.pathname); + if (!result) return false; + const { originalPathname, segmentPath } = result; + parsedUrl.pathname = originalPathname; + // Mark the request as a router prefetch request. + req.headers[_approuterheaders.RSC_HEADER] = '1'; + req.headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] = '1'; + req.headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] = segmentPath; + (0, _requestmeta.addRequestMeta)(req, 'isRSCRequest', true); + (0, _requestmeta.addRequestMeta)(req, 'isPrefetchRSCRequest', true); + (0, _requestmeta.addRequestMeta)(req, 'segmentPrefetchRSCRequest', segmentPath); + } else if ((_this_normalizers_rsc = this.normalizers.rsc) == null ? void 0 : _this_normalizers_rsc.match(parsedUrl.pathname)) { + parsedUrl.pathname = this.normalizers.rsc.normalize(parsedUrl.pathname, true); + // Mark the request as a RSC request. + req.headers[_approuterheaders.RSC_HEADER] = '1'; + (0, _requestmeta.addRequestMeta)(req, 'isRSCRequest', true); + } else if (req.headers['x-now-route-matches']) { + // If we didn't match, return with the flight headers stripped. If in + // minimal mode we didn't match based on the path, this can't be a RSC + // request. This is because Vercel only sends this header during + // revalidation requests and we want the cache to instead depend on the + // request path for flight information. + (0, _stripflightheaders.stripFlightHeaders)(req.headers); + return false; + } else if (req.headers[_approuterheaders.RSC_HEADER] === '1') { + (0, _requestmeta.addRequestMeta)(req, 'isRSCRequest', true); + if (req.headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] === '1') { + (0, _requestmeta.addRequestMeta)(req, 'isPrefetchRSCRequest', true); + const segmentPrefetchRSCRequest = req.headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER]; + if (typeof segmentPrefetchRSCRequest === 'string') { + (0, _requestmeta.addRequestMeta)(req, 'segmentPrefetchRSCRequest', segmentPrefetchRSCRequest); + } + } + } else { + // Otherwise just return without doing anything. + return false; + } + if (req.url) { + const parsed = (0, _parseurl.parseUrl)(req.url); + parsed.pathname = parsedUrl.pathname; + req.url = (0, _url.format)(parsed); + } + return false; + }; + this.handleNextDataRequest = async (req, res, parsedUrl)=>{ + const middleware = await this.getMiddleware(); + const params = (0, _matchnextdatapathname.matchNextDataPathname)(parsedUrl.pathname); + // ignore for non-next data URLs + if (!params || !params.path) { + return false; + } + if (params.path[0] !== this.buildId) { + // Ignore if its a middleware request when we aren't on edge. + if ((0, _requestmeta.getRequestMeta)(req, 'middlewareInvoke')) { + return false; + } + // Make sure to 404 if the buildId isn't correct + await this.render404(req, res, parsedUrl); + return true; + } + // remove buildId from URL + params.path.shift(); + const lastParam = params.path[params.path.length - 1]; + // show 404 if it doesn't end with .json + if (typeof lastParam !== 'string' || !lastParam.endsWith('.json')) { + await this.render404(req, res, parsedUrl); + return true; + } + // re-create page's pathname + let pathname = `/${params.path.join('/')}`; + pathname = (0, _getroutefromassetpath.default)(pathname, '.json'); + // ensure trailing slash is normalized per config + if (middleware) { + if (this.nextConfig.trailingSlash && !pathname.endsWith('/')) { + pathname += '/'; + } + if (!this.nextConfig.trailingSlash && pathname.length > 1 && pathname.endsWith('/')) { + pathname = pathname.substring(0, pathname.length - 1); + } + } + if (this.i18nProvider) { + var _req_headers_host; + // Remove the port from the hostname if present. + const hostname = req == null ? void 0 : (_req_headers_host = req.headers.host) == null ? void 0 : _req_headers_host.split(':', 1)[0].toLowerCase(); + const domainLocale = this.i18nProvider.detectDomainLocale(hostname); + const defaultLocale = (domainLocale == null ? void 0 : domainLocale.defaultLocale) ?? this.i18nProvider.config.defaultLocale; + const localePathResult = this.i18nProvider.analyze(pathname); + // If the locale is detected from the path, we need to remove it + // from the pathname. + if (localePathResult.detectedLocale) { + pathname = localePathResult.pathname; + } + // Update the query with the detected locale and default locale. + (0, _requestmeta.addRequestMeta)(req, 'locale', localePathResult.detectedLocale); + (0, _requestmeta.addRequestMeta)(req, 'defaultLocale', defaultLocale); + // If the locale is not detected from the path, we need to mark that + // it was not inferred from default. + if (!localePathResult.detectedLocale) { + (0, _requestmeta.removeRequestMeta)(req, 'localeInferredFromDefault'); + } + // If no locale was detected and we don't have middleware, we need + // to render a 404 page. + if (!localePathResult.detectedLocale && !middleware) { + (0, _requestmeta.addRequestMeta)(req, 'locale', defaultLocale); + await this.render404(req, res, parsedUrl); + return true; + } + } + parsedUrl.pathname = pathname; + (0, _requestmeta.addRequestMeta)(req, 'isNextDataReq', true); + return false; + }; + this.handleNextImageRequest = ()=>false; + this.handleCatchallRenderRequest = ()=>false; + this.handleCatchallMiddlewareRequest = ()=>false; + /** + * Normalizes a pathname without attaching any metadata from any matched + * normalizer. + * + * @param pathname the pathname to normalize + * @returns the normalized pathname + */ this.normalize = (pathname)=>{ + const normalizers = []; + if (this.normalizers.data) { + normalizers.push(this.normalizers.data); + } + // We have to put the segment prefetch normalizer before the RSC normalizer + // because the RSC normalizer will match the prefetch RSC routes too. + if (this.normalizers.segmentPrefetchRSC) { + normalizers.push(this.normalizers.segmentPrefetchRSC); + } + if (this.normalizers.rsc) { + normalizers.push(this.normalizers.rsc); + } + for (const normalizer of normalizers){ + if (!normalizer.match(pathname)) continue; + return normalizer.normalize(pathname, true); + } + return pathname; + }; + this.normalizeAndAttachMetadata = async (req, res, url)=>{ + let finished = await this.handleNextImageRequest(req, res, url); + if (finished) return true; + if (this.enabledDirectories.pages) { + finished = await this.handleNextDataRequest(req, res, url); + if (finished) return true; + } + return false; + }; + this.prepared = false; + this.preparedPromise = null; + this.customErrorNo404Warn = (0, _utils.execOnce)(()=>{ + _log.warn(`You have added a custom /_error page without a custom /404 page. This prevents the 404 page from being auto statically optimized.\nSee here for info: https://nextjs.org/docs/messages/custom-error-no-custom-404`); + }); + const { dir = '.', quiet = false, conf, dev = false, minimalMode = false, hostname, port, experimentalTestProxy } = options; + this.dev = dev; + this.experimentalTestProxy = experimentalTestProxy; + this.serverOptions = options; + this.dir = _path.resolve(/* turbopackIgnore: true */ dir); + this.quiet = quiet; + this.loadEnvConfig({ + dev, + forceReload: false + }); + // TODO: should conf be normalized to prevent missing + // values from causing issues as this can be user provided + this.nextConfig = conf; + if (this.nextConfig.experimental.runtimeServerDeploymentId) { + if (!process.env.NEXT_DEPLOYMENT_ID) { + throw Object.defineProperty(new Error('process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled'), "__NEXT_ERROR_CODE", { + value: "E970", + enumerable: false, + configurable: true + }); + } + this.deploymentId = process.env.NEXT_DEPLOYMENT_ID; + } else { + let id = this.nextConfig.experimental.useSkewCookie ? '' : this.nextConfig.deploymentId || ''; + this.deploymentId = id; + process.env.NEXT_DEPLOYMENT_ID = id; + } + ; + globalThis.NEXT_CLIENT_ASSET_SUFFIX = this.nextConfig.experimental.immutableAssetToken || this.deploymentId ? `?dpl=${this.nextConfig.experimental.immutableAssetToken || this.deploymentId}` : ''; + this.hostname = hostname; + if (this.hostname) { + // we format the hostname so that it can be fetched + this.fetchHostname = (0, _formathostname.formatHostname)(this.hostname); + } + this.port = port; + this.distDir = _path.join(/* turbopackIgnore: true */ this.dir, this.nextConfig.distDir); + this.publicDir = this.getPublicDir(); + this.hasStaticDir = !minimalMode && this.getHasStaticDir(); + this.i18nProvider = ((_this_nextConfig_i18n = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n.locales) ? new _i18nprovider.I18NProvider(this.nextConfig.i18n) : undefined; + // Configure the locale normalizer, it's used for routes inside `pages/`. + this.localeNormalizer = this.i18nProvider ? new _localeroutenormalizer.LocaleRouteNormalizer(this.i18nProvider) : undefined; + const { assetPrefix, generateEtags } = this.nextConfig; + this.buildId = this.getBuildId(); + // this is a hack to avoid Webpack knowing this is equal to this.minimalMode + // because we replace this.minimalMode to true in production bundles. + const minimalModeKey = 'minimalMode'; + this[minimalModeKey] = minimalMode || !!process.env.NEXT_PRIVATE_MINIMAL_MODE; + this.enabledDirectories = this.getEnabledDirectories(dev); + this.isAppPPREnabled = this.enabledDirectories.app && (0, _ppr.checkIsAppPPREnabled)(this.nextConfig.experimental.ppr); + this.normalizers = { + // We should normalize the pathname from the RSC prefix only in minimal + // mode as otherwise that route is not exposed external to the server as + // we instead only rely on the headers. + rsc: this.enabledDirectories.app && this.minimalMode ? new _rsc.RSCPathnameNormalizer() : undefined, + segmentPrefetchRSC: this.minimalMode ? new _segmentprefixrsc.SegmentPrefixRSCPathnameNormalizer() : undefined, + data: this.enabledDirectories.pages ? new _nextdata.NextDataPathnameNormalizer(this.buildId) : undefined + }; + this.nextFontManifest = this.getNextFontManifest(); + this.renderOpts = { + dir: this.dir, + supportsDynamicResponse: true, + trailingSlash: this.nextConfig.trailingSlash, + poweredByHeader: this.nextConfig.poweredByHeader, + generateEtags, + previewProps: this.getPrerenderManifest().preview, + basePath: this.nextConfig.basePath, + images: this.nextConfig.images, + optimizeCss: this.nextConfig.experimental.optimizeCss, + nextConfigOutput: this.nextConfig.output, + nextScriptWorkers: this.nextConfig.experimental.nextScriptWorkers, + disableOptimizedLoading: this.nextConfig.experimental.disableOptimizedLoading, + domainLocales: (_this_nextConfig_i18n1 = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n1.domains, + distDir: this.distDir, + serverComponents: this.enabledDirectories.app, + cacheLifeProfiles: this.nextConfig.cacheLife, + enableTainting: this.nextConfig.experimental.taint, + crossOrigin: this.nextConfig.crossOrigin ? this.nextConfig.crossOrigin : undefined, + largePageDataBytes: this.nextConfig.experimental.largePageDataBytes, + isExperimentalCompile: this.nextConfig.experimental.isExperimentalCompile, + // `htmlLimitedBots` is passed to server as serialized config in string format + htmlLimitedBots: this.nextConfig.htmlLimitedBots, + cacheComponents: this.nextConfig.cacheComponents ?? false, + experimental: { + expireTime: this.nextConfig.expireTime, + staleTimes: this.nextConfig.experimental.staleTimes, + clientTraceMetadata: this.nextConfig.experimental.clientTraceMetadata, + clientParamParsingOrigins: this.nextConfig.experimental.clientParamParsingOrigins, + dynamicOnHover: this.nextConfig.experimental.dynamicOnHover ?? false, + optimisticRouting: this.nextConfig.experimental.optimisticRouting ?? false, + inlineCss: this.nextConfig.experimental.inlineCss ?? false, + prefetchInlining: this.nextConfig.experimental.prefetchInlining ?? false, + authInterrupts: !!this.nextConfig.experimental.authInterrupts, + cachedNavigations: this.nextConfig.experimental.cachedNavigations ?? false, + maxPostponedStateSizeBytes: (0, _configshared.parseMaxPostponedStateSize)(this.nextConfig.experimental.maxPostponedStateSize) + }, + onInstrumentationRequestError: this.instrumentationOnRequestError.bind(this), + prefetchHints: {}, + reactMaxHeadersLength: this.nextConfig.reactMaxHeadersLength, + logServerFunctions: typeof this.nextConfig.logging === 'object' && Boolean(this.nextConfig.logging.serverFunctions) + }; + this.pagesManifest = this.getPagesManifest(); + this.appPathsManifest = this.getAppPathsManifest(); + this.appPathRoutes = this.getAppPathRoutes(); + this.interceptionRoutePatterns = this.getinterceptionRoutePatterns(); + // Configure the routes. + this.matchers = this.getRouteMatchers(); + // Start route compilation. We don't wait for the routes to finish loading + // because we use the `waitTillReady` promise below in `handleRequest` to + // wait. Also we can't `await` in the constructor. + void this.matchers.reload(); + this.setAssetPrefix(assetPrefix); + } + reloadMatchers() { + return this.matchers.reload(); + } + getRouteMatchers() { + // Create a new manifest loader that get's the manifests from the server. + const manifestLoader = new _servermanifestloader.ServerManifestLoader((name)=>{ + switch(name){ + case _constants.PAGES_MANIFEST: + return this.getPagesManifest() ?? null; + case _constants.APP_PATHS_MANIFEST: + return this.getAppPathsManifest() ?? null; + default: + return null; + } + }); + // Configure the matchers and handlers. + const matchers = new _defaultroutematchermanager.DefaultRouteMatcherManager(); + // Match pages under `pages/`. + matchers.push(new _pagesroutematcherprovider.PagesRouteMatcherProvider(this.distDir, manifestLoader, this.i18nProvider)); + // Match api routes under `pages/api/`. + matchers.push(new _pagesapiroutematcherprovider.PagesAPIRouteMatcherProvider(this.distDir, manifestLoader, this.i18nProvider)); + // If the app directory is enabled, then add the app matchers and handlers. + if (this.enabledDirectories.app) { + // Match app pages under `app/`. + matchers.push(new _apppageroutematcherprovider.AppPageRouteMatcherProvider(this.distDir, manifestLoader)); + matchers.push(new _approuteroutematcherprovider.AppRouteRouteMatcherProvider(this.distDir, manifestLoader)); + } + return matchers; + } + async instrumentationOnRequestError(...args) { + const [err, req, ctx] = args; + if (this.instrumentation) { + try { + await (this.instrumentation.onRequestError == null ? void 0 : this.instrumentation.onRequestError.call(this.instrumentation, err, { + path: req.url || '', + method: req.method || 'GET', + // Normalize middleware headers and other server request headers + headers: req instanceof _adapter.NextRequestHint ? Object.fromEntries(req.headers.entries()) : req.headers + }, ctx)); + } catch (handlerErr) { + // Log the soft error and continue, since errors can thrown from react stream handler + console.error('Error in instrumentation.onRequestError:', handlerErr); + } + } + } + logError(err) { + if (this.quiet) return; + _log.error(err); + } + async handleRequest(req, res, parsedUrl) { + await this.prepare(); + const method = req.method.toUpperCase(); + const tracer = (0, _tracer.getTracer)(); + return tracer.withPropagatedContext(req.headers, ()=>{ + // Capture the parent span before creating the handleRequest span. + // When deployed with an adapter, the platform's runtime may create its + // own OTEL HTTP server span before Next.js runs. We propagate http.route + // to this parent span so APM tools (e.g. Datadog) can derive the + // resource name correctly. + const parentSpan = tracer.getActiveScopeSpan(); + return tracer.trace(_constants1.BaseServerSpan.handleRequest, { + spanName: `${method}`, + kind: _tracer.SpanKind.SERVER, + attributes: { + 'http.method': method, + 'http.target': req.url + } + }, async (span)=>this.handleRequestImpl(req, res, parsedUrl).finally(()=>{ + if (!span) return; + const isRSCRequest = (0, _requestmeta.getRequestMeta)(req, 'isRSCRequest') ?? false; + span.setAttributes({ + 'http.status_code': res.statusCode, + 'next.rsc': isRSCRequest + }); + if (res.statusCode && res.statusCode >= 500) { + // For 5xx status codes: SHOULD be set to 'Error' span status. + // x-ref: https://opentelemetry.io/docs/specs/semconv/http/http-spans/#status + span.setStatus({ + code: _tracer.SpanStatusCode.ERROR + }); + // For span status 'Error', SHOULD set 'error.type' attribute. + span.setAttribute('error.type', res.statusCode.toString()); + } + const rootSpanAttributes = tracer.getRootSpanAttributes(); + // We were unable to get attributes, probably OTEL is not enabled + if (!rootSpanAttributes) return; + if (rootSpanAttributes.get('next.span_type') !== _constants1.BaseServerSpan.handleRequest) { + console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); + return; + } + const route = rootSpanAttributes.get('next.route'); + if (route) { + const name = isRSCRequest ? `RSC ${method} ${route}` : `${method} ${route}`; + span.setAttributes({ + 'next.route': route, + 'http.route': route, + 'next.span_name': name + }); + span.updateName(name); + // Propagate http.route to the parent span if one exists and + // is different from the handleRequest span. This ensures APM + // tools that read attributes from the outermost span (e.g. + // a platform-created HTTP span) can derive the resource name. + if (parentSpan && parentSpan !== span) { + parentSpan.setAttribute('http.route', route); + } + } else { + span.updateName(isRSCRequest ? `RSC ${method}` : `${method}`); + } + })); + }); + } + async handleRequestImpl(req, res, parsedUrl) { + try { + var _originalRequest_socket, _originalRequest_socket1, _this_i18nProvider, _this_nextConfig_i18n; + // Wait for the matchers to be ready. + await this.matchers.waitTillReady(); + // ensure cookies set in middleware are merged and + // not overridden by API routes/getServerSideProps + (0, _patchsetheader.patchSetHeaderWithCookieSupport)(req, (0, _helpers.isNodeNextResponse)(res) ? res.originalResponse : res); + const urlParts = (req.url || '').split('?', 1); + const urlNoQuery = urlParts[0]; + // this normalizes repeated slashes in the path e.g. hello//world -> + // hello/world or backslashes to forward slashes, this does not + // handle trailing slash as that is handled the same as a next.config.js + // redirect + if (urlNoQuery == null ? void 0 : urlNoQuery.match(/(\\|\/\/)/)) { + const cleanUrl = (0, _utils.normalizeRepeatedSlashes)(req.url); + res.redirect(cleanUrl, 308).body(cleanUrl).send(); + return; + } + // Parse url if parsedUrl not provided + if (!parsedUrl || typeof parsedUrl !== 'object') { + if (!req.url) { + throw Object.defineProperty(new Error('Invariant: url can not be undefined'), "__NEXT_ERROR_CODE", { + value: "E123", + enumerable: false, + configurable: true + }); + } + parsedUrl = (0, _parseurl.parseUrl)(req.url); + } + if (!parsedUrl.pathname) { + throw Object.defineProperty(new Error("Invariant: pathname can't be empty"), "__NEXT_ERROR_CODE", { + value: "E412", + enumerable: false, + configurable: true + }); + } + // Parse the querystring ourselves if the user doesn't handle querystring parsing + if (typeof parsedUrl.query === 'string') { + parsedUrl.query = Object.fromEntries(new URLSearchParams(parsedUrl.query)); + } + // Update the `x-forwarded-*` headers. + const { originalRequest = null } = (0, _helpers.isNodeNextRequest)(req) ? req : {}; + const xForwardedProto = originalRequest == null ? void 0 : originalRequest.headers['x-forwarded-proto']; + const isHttps = xForwardedProto ? xForwardedProto === 'https' : !!(originalRequest == null ? void 0 : (_originalRequest_socket = originalRequest.socket) == null ? void 0 : _originalRequest_socket.encrypted); + req.headers['x-forwarded-host'] ??= req.headers['host'] ?? this.hostname; + req.headers['x-forwarded-port'] ??= this.port ? this.port.toString() : isHttps ? '443' : '80'; + req.headers['x-forwarded-proto'] ??= isHttps ? 'https' : 'http'; + req.headers['x-forwarded-for'] ??= originalRequest == null ? void 0 : (_originalRequest_socket1 = originalRequest.socket) == null ? void 0 : _originalRequest_socket1.remoteAddress; + // This should be done before any normalization of the pathname happens as + // it captures the initial URL. + this.attachRequestMeta(req, parsedUrl); + let finished = await this.handleRSCRequest(req, res, parsedUrl); + if (finished) return; + const domainLocale = (_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.detectDomainLocale((0, _gethostname.getHostname)(parsedUrl, req.headers)); + const defaultLocale = (domainLocale == null ? void 0 : domainLocale.defaultLocale) || ((_this_nextConfig_i18n = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n.defaultLocale); + (0, _requestmeta.addRequestMeta)(req, 'defaultLocale', defaultLocale); + const url = (0, _parseurl.parseUrl)(req.url.replace(/^\/+/, '/')); + const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(url.pathname, { + nextConfig: this.nextConfig, + i18nProvider: this.i18nProvider + }); + url.pathname = pathnameInfo.pathname; + if (pathnameInfo.basePath) { + req.url = (0, _removepathprefix.removePathPrefix)(req.url, this.nextConfig.basePath); + } + const useMatchedPathHeader = this.minimalMode && typeof req.headers[_constants2.MATCHED_PATH_HEADER] === 'string'; + // TODO: merge handling with invokePath + if (useMatchedPathHeader) { + try { + var _this_normalizers_data, _this_i18nProvider1, _this_getRoutesManifest; + if (this.enabledDirectories.app) { + // ensure /index path is normalized for prerender + // in minimal mode + if (req.url.match(/^\/index($|\?)/)) { + req.url = req.url.replace(/^\/index/, '/'); + } + parsedUrl.pathname = parsedUrl.pathname === '/index' ? '/' : parsedUrl.pathname; + } + // x-matched-path is the source of truth, it tells what page + // should be rendered because we don't process rewrites in minimalMode + let { pathname: matchedPath } = new URL((0, _fixmojibake.fixMojibake)(req.headers[_constants2.MATCHED_PATH_HEADER]), 'http://localhost'); + let { pathname: urlPathname } = new URL(req.url, 'http://localhost'); + // For ISR the URL is normalized to the prerenderPath so if + // it's a data request the URL path will be the data URL, + // basePath is already stripped by this point + if ((_this_normalizers_data = this.normalizers.data) == null ? void 0 : _this_normalizers_data.match(urlPathname)) { + (0, _requestmeta.addRequestMeta)(req, 'isNextDataReq', true); + } + // It's important to execute the following block even it the request + // matches a pages data route from above. + if (this.isAppPPREnabled && this.minimalMode && req.headers[_constants2.NEXT_RESUME_HEADER] === '1' && req.method === 'POST') { + const { maxPostponedStateSize, maxPostponedStateSizeBytes } = (0, _postponedrequestbody.getMaxPostponedStateSize)(this.nextConfig.experimental.maxPostponedStateSize); + // Decode the postponed state from the request body, it will come as + // an array of buffers, so collect them and then concat them to form + // the string. + const body = await (0, _postponedrequestbody.readBodyWithSizeLimit)(req.body, maxPostponedStateSizeBytes); + if (body === null) { + res.statusCode = 413; + res.body((0, _postponedrequestbody.getPostponedStateExceededErrorMessage)(maxPostponedStateSize)).send(); + return; + } + const postponed = body.toString('utf8'); + (0, _requestmeta.addRequestMeta)(req, 'postponed', postponed); + } + // If the request is a next data request and it has a postponed state, + // we should error, as it represents an unprocessable request. + if ((0, _requestmeta.getRequestMeta)(req, 'isNextDataReq') && (0, _requestmeta.getRequestMeta)(req, 'postponed')) { + // The server understood that this is a PPR resume request, as the + // headers were included to correctly indicate a resume request, but + // because the request URL indicates that this should render a next + // data route (a pages router route), this represents an + // unprocessable request. + res.statusCode = 422; + res.send(); + return; + } + matchedPath = this.normalize(matchedPath); + const normalizedUrlPath = this.stripNextDataPath(urlPathname); + matchedPath = (0, _denormalizepagepath.denormalizePagePath)(matchedPath); + // Perform locale detection and normalization. + const localeAnalysisResult = (_this_i18nProvider1 = this.i18nProvider) == null ? void 0 : _this_i18nProvider1.analyze(matchedPath, { + defaultLocale + }); + // The locale result will be defined even if the locale was not + // detected for the request because it will be inferred from the + // default locale. + if (localeAnalysisResult) { + (0, _requestmeta.addRequestMeta)(req, 'locale', localeAnalysisResult.detectedLocale); + // If the detected locale was inferred from the default locale, we + // need to modify the metadata on the request to indicate that. + if (localeAnalysisResult.inferredFromDefault) { + (0, _requestmeta.addRequestMeta)(req, 'localeInferredFromDefault', true); + } else { + (0, _requestmeta.removeRequestMeta)(req, 'localeInferredFromDefault'); + } + } + let srcPathname = matchedPath; + let pageIsDynamic = (0, _utils1.isDynamicRoute)(srcPathname); + let paramsResult = { + params: false, + hasValidParams: false + }; + const match = await this.matchers.match(srcPathname, { + i18n: localeAnalysisResult + }); + if (!pageIsDynamic && match) { + // Update the source pathname to the matched page's pathname. + srcPathname = match.definition.pathname; + // The page is dynamic if the params are defined. We know at this + // stage that the matched path is not a static page if the params + // were parsed from the matched path header. + if (typeof match.params !== 'undefined') { + pageIsDynamic = true; + paramsResult.params = match.params; + paramsResult.hasValidParams = true; + } + } + // The rest of this function can't handle i18n properly, so ensure we + // restore the pathname with the locale information stripped from it + // now that we're done matching if we're using i18n. + if (localeAnalysisResult) { + matchedPath = localeAnalysisResult.pathname; + } + const utils = (0, _serverutils.getServerUtils)({ + pageIsDynamic, + page: srcPathname, + i18n: this.nextConfig.i18n, + basePath: this.nextConfig.basePath, + rewrites: ((_this_getRoutesManifest = this.getRoutesManifest()) == null ? void 0 : _this_getRoutesManifest.rewrites) || { + beforeFiles: [], + afterFiles: [], + fallback: [] + }, + caseSensitive: !!this.nextConfig.experimental.caseSensitiveRoutes + }); + // Ensure parsedUrl.pathname includes locale before processing + // rewrites or they won't match correctly. + if (defaultLocale && !pathnameInfo.locale) { + parsedUrl.pathname = `/${defaultLocale}${parsedUrl.pathname}`; + } + // Store a copy of `parsedUrl.query` before calling handleRewrites. + // Since `handleRewrites` might add new queries to `parsedUrl.query`. + const originQueryParams = { + ...parsedUrl.query + }; + const pathnameBeforeRewrite = parsedUrl.pathname; + const { rewriteParams, rewrittenParsedUrl } = utils.handleRewrites(req, parsedUrl); + const rewriteParamKeys = Object.keys(rewriteParams); + // Create a copy of the query params to avoid mutating the original + // object. This prevents any overlapping query params that have the + // same normalized key from causing issues. + const rewrittenQueryParams = { + ...rewrittenParsedUrl.query + }; + const didRewrite = pathnameBeforeRewrite !== rewrittenParsedUrl.pathname; + if (didRewrite && rewrittenParsedUrl.pathname) { + (0, _requestmeta.addRequestMeta)(req, 'rewrittenPathname', rewrittenParsedUrl.pathname); + } + const routeParamKeys = new Set(); + for (const [key, value] of Object.entries(parsedUrl.query)){ + const normalizedKey = (0, _utils3.normalizeNextQueryParam)(key); + if (!normalizedKey) continue; + // Remove the prefixed key from the query params because we want + // to consume it for the dynamic route matcher. + delete parsedUrl.query[key]; + routeParamKeys.add(normalizedKey); + if (typeof value === 'undefined') continue; + rewrittenQueryParams[normalizedKey] = Array.isArray(value) ? value.map((v)=>(0, _decodequerypathparameter.decodeQueryPathParameter)(v)) : (0, _decodequerypathparameter.decodeQueryPathParameter)(value); + } + // interpolate dynamic params and normalize URL if needed + if (pageIsDynamic) { + let params = {}; + // If we don't already have valid params, try to parse them from + // the query params. + if (!paramsResult.hasValidParams) { + paramsResult = utils.normalizeDynamicRouteParams(rewrittenQueryParams, false); + } + // for prerendered ISR paths we attempt parsing the route + // params from the URL directly as route-matches may not + // contain the correct values due to the filesystem path + // matching before the dynamic route has been matched + if (!paramsResult.hasValidParams && !(0, _utils1.isDynamicRoute)(normalizedUrlPath)) { + let matcherParams = utils.dynamicRouteMatcher == null ? void 0 : utils.dynamicRouteMatcher.call(utils, normalizedUrlPath); + if (matcherParams) { + utils.normalizeDynamicRouteParams(matcherParams, false); + Object.assign(paramsResult.params, matcherParams); + paramsResult.hasValidParams = true; + } + } + // if an action request is bypassing a prerender and we + // don't have the params in the URL since it was prerendered + // and matched during handle: 'filesystem' rather than dynamic route + // resolving we need to parse the params from the matched-path. + // Note: this is similar to above case but from match-path instead + // of from the request URL since a rewrite could cause that to not + // match the src pathname + if (// we can have a collision with /index and a top-level /[slug] + matchedPath !== '/index' && !paramsResult.hasValidParams && !(0, _utils1.isDynamicRoute)(matchedPath)) { + let matcherParams = utils.dynamicRouteMatcher == null ? void 0 : utils.dynamicRouteMatcher.call(utils, matchedPath); + if (matcherParams) { + const curParamsResult = utils.normalizeDynamicRouteParams(matcherParams, false); + if (curParamsResult.hasValidParams) { + Object.assign(params, matcherParams); + paramsResult = curParamsResult; + } + } + } + if (paramsResult.hasValidParams) { + params = paramsResult.params; + } + const routeMatchesHeader = req.headers['x-now-route-matches']; + if (typeof routeMatchesHeader === 'string' && routeMatchesHeader && (0, _utils1.isDynamicRoute)(matchedPath) && !paramsResult.hasValidParams) { + const routeMatches = utils.getParamsFromRouteMatches(routeMatchesHeader); + if (routeMatches) { + paramsResult = utils.normalizeDynamicRouteParams(routeMatches, true); + if (paramsResult.hasValidParams) { + params = paramsResult.params; + } + } + } + // Try to parse the params from the query if we couldn't parse them + // from the route matches but ignore missing optional params. + if (!paramsResult.hasValidParams) { + paramsResult = utils.normalizeDynamicRouteParams(rewrittenQueryParams, true); + if (paramsResult.hasValidParams) { + params = paramsResult.params; + } + } + // If the pathname being requested is the same as the source + // pathname, and we don't have valid params, we want to use the + // default route matches. + if (utils.defaultRouteMatches && normalizedUrlPath === srcPathname && !paramsResult.hasValidParams) { + params = utils.defaultRouteMatches; + // If the route matches header is an empty string, we want to + // render a fallback shell. This is because we know this came from + // a prerender (it has the header) but it's values were filtered + // out (because the allowQuery was empty). If it was undefined + // then we know that the request is hitting the lambda directly. + if (routeMatchesHeader === '') { + (0, _requestmeta.addRequestMeta)(req, 'renderFallbackShell', true); + } + } + if (params) { + matchedPath = utils.interpolateDynamicPath(srcPathname, params); + req.url = utils.interpolateDynamicPath(req.url, params); + // If the request is for a segment prefetch, we need to update the + // segment prefetch request path to include the interpolated + // params. + let segmentPrefetchRSCRequest = (0, _requestmeta.getRequestMeta)(req, 'segmentPrefetchRSCRequest'); + if (segmentPrefetchRSCRequest && (0, _utils1.isDynamicRoute)(segmentPrefetchRSCRequest, false)) { + segmentPrefetchRSCRequest = utils.interpolateDynamicPath(segmentPrefetchRSCRequest, params); + req.headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] = segmentPrefetchRSCRequest; + (0, _requestmeta.addRequestMeta)(req, 'segmentPrefetchRSCRequest', segmentPrefetchRSCRequest); + } + } + } + if (pageIsDynamic || didRewrite) { + var _utils_defaultRouteRegex; + utils.normalizeCdnUrl(req, [ + ...rewriteParamKeys, + ...Object.keys(((_utils_defaultRouteRegex = utils.defaultRouteRegex) == null ? void 0 : _utils_defaultRouteRegex.groups) || {}) + ]); + } + // Remove the route `params` keys from `parsedUrl.query` if they are + // not in the original query params. + // If it's used in both route `params` and query `searchParams`, it should be kept. + for (const key of routeParamKeys){ + if (!(key in originQueryParams)) { + delete parsedUrl.query[key]; + } + } + parsedUrl.pathname = matchedPath; + url.pathname = parsedUrl.pathname; + // For Pages Router routes, use the normalized queryParams from + // handleRewrites to ensure catch-all routes get proper array values. + // App Router routes should not include rewrite query params as they + // affect RSC payload. + if ((match == null ? void 0 : match.definition.kind) === _routekind.RouteKind.PAGES || (match == null ? void 0 : match.definition.kind) === _routekind.RouteKind.PAGES_API) { + parsedUrl.query = rewrittenQueryParams; + } + finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl); + if (finished) return; + } catch (err) { + if (err instanceof _utils.DecodeError || err instanceof _utils.NormalizeError) { + res.statusCode = 400; + return this.renderError(null, req, res, '/_error', {}); + } + throw err; + } + } + (0, _requestmeta.addRequestMeta)(req, 'isLocaleDomain', Boolean(domainLocale)); + if (pathnameInfo.locale) { + req.url = (0, _url.format)(url); + (0, _requestmeta.addRequestMeta)(req, 'didStripLocale', true); + } + // If we aren't in minimal mode or there is no locale in the query + // string, add the locale to the query string. + if (!this.minimalMode || !(0, _requestmeta.getRequestMeta)(req, 'locale')) { + // If the locale is in the pathname, add it to the query string. + if (pathnameInfo.locale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', pathnameInfo.locale); + } else if (defaultLocale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', defaultLocale); + (0, _requestmeta.addRequestMeta)(req, 'localeInferredFromDefault', true); + } + } + // set incremental cache to request meta so it can + // be passed down for edge functions and the fetch disk + // cache can be leveraged locally + if (!this.serverOptions.webServerConfig && !(0, _requestmeta.getRequestMeta)(req, 'incrementalCache')) { + const incrementalCache = await this.getIncrementalCache({ + requestHeaders: Object.assign({}, req.headers) + }); + incrementalCache.resetRequestCache(); + (0, _requestmeta.addRequestMeta)(req, 'incrementalCache', incrementalCache); + globalThis.__incrementalCache = incrementalCache; + } + // set server components HMR cache to request meta so it can be passed + // down for edge functions + if (!(0, _requestmeta.getRequestMeta)(req, 'serverComponentsHmrCache')) { + (0, _requestmeta.addRequestMeta)(req, 'serverComponentsHmrCache', this.getServerComponentsHmrCache()); + } + // when invokePath is specified we can short short circuit resolving + // we only honor this header if we are inside of a render worker to + // prevent external users coercing the routing path + const invokePath = (0, _requestmeta.getRequestMeta)(req, 'invokePath'); + const useInvokePath = !useMatchedPathHeader && invokePath; + if (useInvokePath) { + var _this_nextConfig_i18n1; + const invokeStatus = (0, _requestmeta.getRequestMeta)(req, 'invokeStatus'); + if (invokeStatus) { + const invokeQuery = (0, _requestmeta.getRequestMeta)(req, 'invokeQuery'); + if (invokeQuery) { + Object.assign(parsedUrl.query, invokeQuery); + } + res.statusCode = invokeStatus; + let err = (0, _requestmeta.getRequestMeta)(req, 'invokeError') || null; + return this.renderError(err, req, res, '/_error', parsedUrl.query); + } + const parsedMatchedPath = new URL(invokePath || '/', 'http://n'); + const invokePathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(parsedMatchedPath.pathname, { + nextConfig: this.nextConfig, + parseData: false + }); + if (invokePathnameInfo.locale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', invokePathnameInfo.locale); + } + if (parsedUrl.pathname !== parsedMatchedPath.pathname) { + parsedUrl.pathname = parsedMatchedPath.pathname; + (0, _requestmeta.addRequestMeta)(req, 'rewrittenPathname', invokePathnameInfo.pathname); + } + const normalizeResult = (0, _normalizelocalepath.normalizeLocalePath)((0, _removepathprefix.removePathPrefix)(parsedUrl.pathname, this.nextConfig.basePath || ''), (_this_nextConfig_i18n1 = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n1.locales); + if (normalizeResult.detectedLocale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', normalizeResult.detectedLocale); + } + parsedUrl.pathname = normalizeResult.pathname; + for (const key of Object.keys(parsedUrl.query)){ + delete parsedUrl.query[key]; + } + const invokeQuery = (0, _requestmeta.getRequestMeta)(req, 'invokeQuery'); + if (invokeQuery) { + Object.assign(parsedUrl.query, invokeQuery); + } + finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl); + if (finished) return; + await this.handleCatchallRenderRequest(req, res, parsedUrl); + return; + } + if ((0, _requestmeta.getRequestMeta)(req, 'middlewareInvoke')) { + finished = await this.normalizeAndAttachMetadata(req, res, parsedUrl); + if (finished) return; + finished = await this.handleCatchallMiddlewareRequest(req, res, parsedUrl); + if (finished) return; + const err = new Error(); + err.result = { + response: new Response(null, { + headers: { + 'x-middleware-next': '1' + } + }) + }; + err.bubble = true; + throw err; + } + // This wasn't a request via the matched path or the invoke path, so + // prepare for a legacy run by removing the base path. + // ensure we strip the basePath when not using an invoke header + if (!useMatchedPathHeader && pathnameInfo.basePath) { + parsedUrl.pathname = (0, _removepathprefix.removePathPrefix)(parsedUrl.pathname, pathnameInfo.basePath); + } + res.statusCode = 200; + return await this.run(req, res, parsedUrl); + } catch (err) { + if (err instanceof _nofallbackerrorexternal.NoFallbackError) { + throw err; + } + if (err && typeof err === 'object' && err.code === 'ERR_INVALID_URL' || err instanceof _utils.DecodeError || err instanceof _utils.NormalizeError) { + res.statusCode = 400; + return this.renderError(null, req, res, '/_error', {}); + } + if (this.minimalMode || this.dev || (0, _tracer.isBubbledError)(err) && err.bubble) { + throw err; + } + this.logError((0, _iserror.getProperError)(err)); + res.statusCode = 500; + res.body('Internal Server Error').send(); + } + } + /** + * @internal - this method is internal to Next.js and should not be used directly by end-users + */ getRequestHandlerWithMetadata(meta) { + const handler = this.getRequestHandler(); + return (req, res, parsedUrl)=>{ + (0, _requestmeta.setRequestMeta)(req, meta); + return handler(req, res, parsedUrl); + }; + } + getRequestHandler() { + return this.handleRequest.bind(this); + } + setAssetPrefix(prefix) { + this.nextConfig.assetPrefix = prefix ? prefix.replace(/\/$/, '') : ''; + } + /** + * Runs async initialization of server. + * It is idempotent, won't fire underlying initialization more than once. + */ async prepare() { + if (this.prepared) return; + // Get instrumentation module + if (!this.instrumentation) { + this.instrumentation = await this.loadInstrumentationModule(); + } + if (this.preparedPromise === null) { + this.preparedPromise = this.prepareImpl().then(()=>{ + this.prepared = true; + this.preparedPromise = null; + }); + } + return this.preparedPromise; + } + async prepareImpl() {} + async loadInstrumentationModule() {} + async close() {} + getAppPathRoutes() { + const appPathRoutes = {}; + Object.keys(this.appPathsManifest || {}).forEach((entry)=>{ + const normalizedPath = (0, _apppaths.normalizeAppPath)(entry); + if (!appPathRoutes[normalizedPath]) { + appPathRoutes[normalizedPath] = []; + } + appPathRoutes[normalizedPath].push(entry); + }); + return appPathRoutes; + } + async run(req, res, parsedUrl) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.run, async ()=>this.runImpl(req, res, parsedUrl)); + } + async runImpl(req, res, parsedUrl) { + await this.handleCatchallRenderRequest(req, res, parsedUrl); + } + async pipe(fn, partialContext) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.pipe, async ()=>this.pipeImpl(fn, partialContext)); + } + async pipeImpl(fn, partialContext) { + const ua = partialContext.req.headers['user-agent'] || ''; + const ctx = { + ...partialContext, + renderOpts: { + ...this.renderOpts, + // `renderOpts.botType` is accumulated in `this.renderImpl()` + supportsDynamicResponse: !this.renderOpts.botType, + serveStreamingMetadata: (0, _streamingmetadata.shouldServeStreamingMetadata)(ua, this.nextConfig.htmlLimitedBots) + } + }; + const payload = await fn(ctx); + if (payload === null) { + return; + } + const { req, res } = ctx; + const originalStatus = res.statusCode; + const { body } = payload; + let { cacheControl } = payload; + if (!res.sent) { + const { generateEtags, poweredByHeader } = this.renderOpts; + // In dev, we should not cache pages for any reason. + if (this.dev) { + res.setHeader('Cache-Control', 'no-cache, must-revalidate'); + cacheControl = undefined; + } + if (cacheControl && cacheControl.expire === undefined) { + cacheControl.expire = this.nextConfig.expireTime; + } + await this.sendRenderResult(req, res, { + result: body, + generateEtags, + poweredByHeader, + cacheControl + }); + res.statusCode = originalStatus; + } + } + async getStaticHTML(fn, partialContext) { + const ctx = { + ...partialContext, + renderOpts: { + ...this.renderOpts, + supportsDynamicResponse: false + } + }; + const payload = await fn(ctx); + if (payload === null) { + return null; + } + return payload.body.toUnchunkedString(); + } + async render(req, res, pathname, query = {}, parsedUrl, internalRender = false) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.render, async ()=>this.renderImpl(req, res, pathname, query, parsedUrl, internalRender)); + } + getWaitUntil() { + const builtinRequestContext = (0, _builtinrequestcontext.getBuiltinRequestContext)(); + if (builtinRequestContext) { + // the platform provided a request context. + // use the `waitUntil` from there, whether actually present or not -- + // if not present, `after` will error. + // NOTE: if we're in an edge runtime sandbox, this context will be used to forward the outer waitUntil. + return builtinRequestContext.waitUntil; + } + if (this.minimalMode) { + // we're built for a serverless environment, and `waitUntil` is not available, + // but using a noop would likely lead to incorrect behavior, + // because we have no way of keeping the invocation alive. + // return nothing, and `after` will error if used. + // + // NOTE: for edge functions, `NextWebServer` always runs in minimal mode. + // + // NOTE: if we're in an edge runtime sandbox, waitUntil will be passed in using "@next/request-context", + // so we won't get here. + return undefined; + } + return this.getInternalWaitUntil(); + } + getInternalWaitUntil() { + return undefined; + } + async renderImpl(req, res, pathname, query = {}, parsedUrl, internalRender = false) { + var _req_url; + if (!pathname.startsWith('/')) { + console.warn(`Cannot render page with path "${pathname}", did you mean "/${pathname}"?. See more info here: https://nextjs.org/docs/messages/render-no-starting-slash`); + } + if (this.serverOptions.customServer && pathname === '/index' && !await this.hasPage('/index')) { + // maintain backwards compatibility for custom server + // (see custom-server integration tests) + pathname = '/'; + } + const ua = req.headers['user-agent'] || ''; + this.renderOpts.botType = (0, _isbot.getBotType)(ua); + // we allow custom servers to call render for all URLs + // so check if we need to serve a static _next file or not. + // we don't modify the URL for _next/data request but still + // call render so we special case this to prevent an infinite loop + if (!internalRender && !this.minimalMode && !(0, _requestmeta.getRequestMeta)(req, 'isNextDataReq') && (((_req_url = req.url) == null ? void 0 : _req_url.match(/^\/_next\//)) || this.hasStaticDir && req.url.match(/^\/static\//))) { + return this.handleRequest(req, res, parsedUrl); + } + if ((0, _utils2.isBlockedPage)(pathname)) { + return this.render404(req, res, parsedUrl); + } + return this.pipe((ctx)=>this.renderToResponse(ctx), { + req, + res, + pathname, + query + }); + } + async getStaticPaths({ pathname }) { + var _this_getPrerenderManifest_dynamicRoutes_pathname; + // Read whether or not fallback should exist from the manifest. + const fallbackField = (_this_getPrerenderManifest_dynamicRoutes_pathname = this.getPrerenderManifest().dynamicRoutes[pathname]) == null ? void 0 : _this_getPrerenderManifest_dynamicRoutes_pathname.fallback; + return { + // `staticPaths` is intentionally set to `undefined` as it should've + // been caught when checking disk data. + staticPaths: undefined, + fallbackMode: (0, _fallback.parseFallbackField)(fallbackField) + }; + } + async renderToResponseWithComponents(requestContext, findComponentsResult) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.renderToResponseWithComponents, async ()=>this.renderToResponseWithComponentsImpl(requestContext, findComponentsResult)); + } + pathCouldBeIntercepted(resolvedPathname) { + return (0, _interceptionroutes.isInterceptionRouteAppPath)(resolvedPathname) || this.interceptionRoutePatterns.some((regexp)=>{ + return regexp.test(resolvedPathname); + }); + } + setVaryHeader(req, res, isAppPath, resolvedPathname) { + const baseVaryHeader = `${_approuterheaders.RSC_HEADER}, ${_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER}, ${_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER}, ${_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER}`; + const isRSCRequest = (0, _requestmeta.getRequestMeta)(req, 'isRSCRequest') ?? false; + let addedNextUrlToVary = false; + if (isAppPath && this.pathCouldBeIntercepted(resolvedPathname)) { + // Interception route responses can vary based on the `Next-URL` header. + // We use the Vary header to signal this behavior to the client to properly cache the response. + res.appendHeader('vary', `${baseVaryHeader}, ${_approuterheaders.NEXT_URL}`); + addedNextUrlToVary = true; + } else if (isAppPath || isRSCRequest) { + // We don't need to include `Next-URL` in the Vary header for non-interception routes since it won't affect the response. + // We also set this header for pages to avoid caching issues when navigating between pages and app. + res.appendHeader('vary', baseVaryHeader); + } + if (!addedNextUrlToVary) { + // Remove `Next-URL` from the request headers we determined it wasn't necessary to include in the Vary header. + // This is to avoid any dependency on the `Next-URL` header being present when preparing the response. + delete req.headers[_approuterheaders.NEXT_URL]; + } + } + async renderToResponseWithComponentsImpl({ req, res, pathname, renderOpts: opts }, { components, query }) { + var _this; + if (pathname === _constants.UNDERSCORE_NOT_FOUND_ROUTE) { + pathname = '/404'; + } + const isErrorPathname = pathname === '/_error'; + const is404Page = pathname === '/404' || isErrorPathname && res.statusCode === 404; + const is500Page = pathname === '/500' || isErrorPathname && res.statusCode === 500; + const isAppPath = components.isAppPath === true; + const hasServerProps = !!components.getServerSideProps; + const isPossibleServerAction = (0, _serveractionrequestmeta.getIsPossibleServerAction)(req); + let isSSG = !!components.getStaticProps; + // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later + const isRSCRequest = (0, _requestmeta.getRequestMeta)(req, 'isRSCRequest') ?? false; + // Not all CDNs respect the Vary header when caching. We must assume that + // only the URL is used to vary the responses. The Next client computes a + // hash of the header values and sends it as a search param. Before + // responding to a request, we must verify that the hash matches the + // expected value. Neglecting to do this properly can lead to cache + // poisoning attacks on certain CDNs. + if (!this.minimalMode && this.nextConfig.experimental.validateRSCRequestHeaders && isRSCRequest && // In the event that we're serving a NoFallbackError, the headers will + // already be stripped so this comparison will always fail, resulting in + // a redirect loop. + !is404Page) { + const headers = req.headers; + const prefetchHeaderValue = headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER]; + const routerPrefetch = prefetchHeaderValue !== undefined ? prefetchHeaderValue === '1' || prefetchHeaderValue === '2' ? prefetchHeaderValue : undefined : // so we don't expect the header to be stripped by an intermediate layer. + // This should only happen for static prefetches, so we only handle those here. + (0, _requestmeta.getRequestMeta)(req, 'isPrefetchRSCRequest') ? '1' : undefined; + const segmentPrefetchRSCRequest = headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] || (0, _requestmeta.getRequestMeta)(req, 'segmentPrefetchRSCRequest'); + const expectedHash = (0, _cachebustingsearchparam.computeCacheBustingSearchParam)(routerPrefetch, segmentPrefetchRSCRequest, headers[_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER], headers[_approuterheaders.NEXT_URL]); + const actualHash = (0, _requestmeta.getRequestMeta)(req, 'cacheBustingSearchParam') ?? new URL(req.url || '', 'http://localhost').searchParams.get(_approuterheaders.NEXT_RSC_UNION_QUERY); + if (expectedHash !== actualHash) { + // The hash sent by the client does not match the expected value. + // Redirect to the URL with the correct cache-busting search param. + // This prevents cache poisoning attacks on CDNs that don't respect Vary headers. + // Note: When no headers are present, expectedHash is empty string and client + // must send `_rsc` param, otherwise actualHash is null and hash check fails. + const url = new URL(req.url || '', 'http://localhost'); + (0, _setcachebustingsearchparam.setCacheBustingSearchParamWithHash)(url, expectedHash); + res.statusCode = 307; + res.setHeader('location', `${url.pathname}${url.search}`); + res.body('').send(); + return null; + } + } + // Compute the iSSG cache key. We use the rewritten pathname since + // pages with fallback: false are allowed to be rewritten to + // and we need to look up the path by the rewritten path + let urlPathname = (0, _parseurl.parseUrl)(req.url || '').pathname || '/'; + let resolvedUrlPathname = (0, _requestmeta.getRequestMeta)(req, 'rewrittenPathname') || urlPathname; + this.setVaryHeader(req, res, isAppPath, resolvedUrlPathname); + let staticPaths; + let hasFallback = false; + const prerenderManifest = this.getPrerenderManifest(); + if (hasFallback || (staticPaths == null ? void 0 : staticPaths.includes(resolvedUrlPathname)) || // this signals revalidation in deploy environments + // TODO: make this more generic + req.headers['x-now-route-matches']) { + isSSG = true; + } else if (!this.dev) { + isSSG ||= !!prerenderManifest.routes[(0, _toroute.toRoute)(pathname)]; + } + // Toggle whether or not this is a Data request + const isNextDataRequest = !!((0, _requestmeta.getRequestMeta)(req, 'isNextDataReq') || req.headers['x-nextjs-data'] && this.serverOptions.webServerConfig) && (isSSG || hasServerProps); + // when we are handling a middleware prefetch and it doesn't + // resolve to a static data route we bail early to avoid + // unexpected SSR invocations + if (!isSSG && req.headers['x-middleware-prefetch'] && !(is404Page || pathname === '/_error')) { + res.setHeader(_constants2.MATCHED_PATH_HEADER, pathname); + res.setHeader('x-middleware-skip', '1'); + res.setHeader('cache-control', 'private, no-cache, no-store, max-age=0, must-revalidate'); + res.body('{}').send(); + return null; + } + // normalize req.url for SSG paths as it is not exposed + // to getStaticProps and the asPath should not expose /_next/data + if (isSSG && this.minimalMode && req.headers[_constants2.MATCHED_PATH_HEADER] && req.url.startsWith('/_next/data')) { + req.url = this.stripNextDataPath(req.url); + } + const locale = (0, _requestmeta.getRequestMeta)(req, 'locale'); + if (!!req.headers['x-nextjs-data'] && (!res.statusCode || res.statusCode === 200)) { + res.setHeader('x-nextjs-matched-path', `${locale ? `/${locale}` : ''}${pathname}`); + } + let routeModule; + if (components.routeModule) { + routeModule = components.routeModule; + } + /** + * If the route being rendered is an app page, and the ppr feature has been + * enabled, then the given route _could_ support PPR. + */ const couldSupportPPR = this.isAppPPREnabled && typeof routeModule !== 'undefined' && (0, _checks.isAppPageRouteModule)(routeModule); + // When enabled, this will allow the use of the `?__nextppronly` query to + // enable debugging of the static shell. + const hasDebugStaticShellQuery = process.env.__NEXT_EXPERIMENTAL_STATIC_SHELL_DEBUGGING === '1' && typeof query.__nextppronly !== 'undefined' && couldSupportPPR; + // Whether the testing API is exposed (dev mode or explicit flag) + const exposeTestingApi = this.dev === true || this.nextConfig.experimental.exposeTestingApiInProductionBuild === true; + // Check for the instant test cookie for MPA navigations (page reload, full + // page load) in the Instant Navigation Testing API. Only applies to + // document requests (no RSC header) - RSC requests should proceed normally + // even during a locked scope, with blocking happening on the client side. + const hasInstantTestCookie = exposeTestingApi && req.headers[_approuterheaders.RSC_HEADER] === undefined && typeof req.headers.cookie === 'string' && req.headers.cookie.includes(_approuterheaders.NEXT_INSTANT_TEST_COOKIE + '=') && couldSupportPPR; + // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the + // prerender manifest and this is an app page. + const isRoutePPREnabled = couldSupportPPR && (((_this = prerenderManifest.routes[pathname] ?? prerenderManifest.dynamicRoutes[pathname]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR + // enabled or not, but that would require plumbing the appConfig through + // to the server during development. We assume that the page supports it + // but only during development or when the testing API is exposed. + (hasDebugStaticShellQuery || hasInstantTestCookie) && (exposeTestingApi || this.experimentalTestProxy === true)); + // If we're in minimal mode, then try to get the postponed information from + // the request metadata. If available, use it for resuming the postponed + // render. + const minimalPostponed = isRoutePPREnabled ? (0, _requestmeta.getRequestMeta)(req, 'postponed') : undefined; + // we need to ensure the status code if /404 is visited directly + if (is404Page && !isNextDataRequest && !isRSCRequest) { + res.statusCode = 404; + } + // ensure correct status is set when visiting a status page + // directly e.g. /500 + if (_constants.STATIC_STATUS_PAGES.includes(pathname)) { + res.statusCode = parseInt(pathname.slice(1), 10); + } + if (// Server actions can use non-GET/HEAD methods. + !isPossibleServerAction && // Resume can use non-GET/HEAD methods. + !minimalPostponed && !is404Page && !is500Page && pathname !== '/_error' && req.method !== 'HEAD' && req.method !== 'GET' && (typeof components.Component === 'string' || isSSG)) { + res.statusCode = 405; + res.setHeader('Allow', [ + 'GET', + 'HEAD' + ]); + res.body('Method Not Allowed').send(); + return null; + } + // handle static page + if (typeof components.Component === 'string') { + return { + body: _renderresult.default.fromStatic(components.Component, _constants2.HTML_CONTENT_TYPE_HEADER) + }; + } + if (opts.supportsDynamicResponse === true) { + var _components_Document; + const ua = req.headers['user-agent'] || ''; + const isBotRequest = (0, _isbot.isBot)(ua); + const isSupportedDocument = typeof ((_components_Document = components.Document) == null ? void 0 : _components_Document.getInitialProps) !== 'function' || // The built-in `Document` component also supports dynamic HTML for concurrent mode. + _constants.NEXT_BUILTIN_DOCUMENT in components.Document; + // Disable dynamic HTML in cases that we know it won't be generated, + // so that we can continue generating a cache key when possible. + // TODO-APP: should the first render for a dynamic app path + // be static so we can collect revalidate and populate the + // cache if there are no dynamic data requirements + opts.supportsDynamicResponse = !isSSG && !isBotRequest && isSupportedDocument; + } + // In development, we always want to generate dynamic HTML. + if (!isNextDataRequest && isAppPath && this.dev) { + opts.supportsDynamicResponse = true; + } + if (isSSG && this.minimalMode && req.headers[_constants2.MATCHED_PATH_HEADER]) { + // the url value is already correct when the matched-path header is set + resolvedUrlPathname = urlPathname; + } + urlPathname = (0, _removetrailingslash.removeTrailingSlash)(urlPathname); + resolvedUrlPathname = (0, _removetrailingslash.removeTrailingSlash)(resolvedUrlPathname); + if (this.localeNormalizer) { + resolvedUrlPathname = this.localeNormalizer.normalize(resolvedUrlPathname); + } + // remove /_next/data prefix from urlPathname so it matches + // for direct page visit and /_next/data visit + if (isNextDataRequest) { + resolvedUrlPathname = this.stripNextDataPath(resolvedUrlPathname); + urlPathname = this.stripNextDataPath(urlPathname); + } + // use existing incrementalCache instance if available + const incrementalCache = await this.getIncrementalCache({ + requestHeaders: Object.assign({}, req.headers) + }); + // TODO: investigate, this is not safe across multiple concurrent requests + incrementalCache.resetRequestCache(); + if ((routeModule == null ? void 0 : routeModule.isDev) && (0, _utils1.isDynamicRoute)(pathname) && (components.getStaticPaths || isAppPath)) { + var _pathsResults_staticPaths; + let getStaticPathsStart; + if (this.dev) { + getStaticPathsStart = process.hrtime.bigint(); + } + const pathsResults = await this.getStaticPaths({ + pathname, + urlPathname, + requestHeaders: req.headers, + page: components.page, + isAppPath + }); + if (this.dev && getStaticPathsStart && ((_pathsResults_staticPaths = pathsResults.staticPaths) == null ? void 0 : _pathsResults_staticPaths.length)) { + (0, _requestmeta.addRequestMeta)(req, 'devGenerateStaticParamsDuration', process.hrtime.bigint() - getStaticPathsStart); + } + if (isAppPath && this.nextConfig.cacheComponents) { + var _pathsResults_prerenderedRoutes; + if ((_pathsResults_prerenderedRoutes = pathsResults.prerenderedRoutes) == null ? void 0 : _pathsResults_prerenderedRoutes.length) { + let smallestFallbackRouteParams = null; + for (const route of pathsResults.prerenderedRoutes){ + const fallbackRouteParams = route.fallbackRouteParams; + if (!fallbackRouteParams || fallbackRouteParams.length === 0) { + // There are no fallback route params so we don't need to continue + smallestFallbackRouteParams = null; + break; + } + if (smallestFallbackRouteParams === null || fallbackRouteParams.length < smallestFallbackRouteParams.length) { + smallestFallbackRouteParams = fallbackRouteParams; + } + } + if (smallestFallbackRouteParams) { + (0, _requestmeta.addRequestMeta)(req, 'fallbackParams', (0, _fallbackparams.createOpaqueFallbackRouteParams)(smallestFallbackRouteParams)); + } + } + } + } + // An OPTIONS request to a page handler is invalid. + if (req.method === 'OPTIONS' && !is404Page && (!routeModule || !(0, _checks.isAppRouteRouteModule)(routeModule))) { + await (0, _sendresponse.sendResponse)(req, res, new Response(null, { + status: 400 + })); + return null; + } + const request = (0, _helpers.isNodeNextRequest)(req) ? req.originalRequest : req; + const response = (0, _helpers.isNodeNextResponse)(res) ? res.originalResponse : res; + const parsedInitUrl = (0, _parseurl.parseUrl)((0, _requestmeta.getRequestMeta)(req, 'initURL') || req.url); + let initPathname = parsedInitUrl.pathname || '/'; + for (const normalizer of [ + this.normalizers.segmentPrefetchRSC, + this.normalizers.rsc + ]){ + if (normalizer == null ? void 0 : normalizer.match(initPathname)) { + initPathname = normalizer.normalize(initPathname); + } + } + // On minimal mode, the request url of dynamic route can be a + // literal dynamic route ('/[slug]') instead of actual URL, so overwriting to initPathname + // will transform back the resolved url to the dynamic route pathname. + if (!(this.minimalMode && isErrorPathname)) { + request.url = `${initPathname}${parsedInitUrl.search || ''}`; + } + // propagate the request context for dev + (0, _requestmeta.setRequestMeta)(request, (0, _requestmeta.getRequestMeta)(req)); + (0, _requestmeta.addRequestMeta)(request, 'distDir', this.distDir); + (0, _requestmeta.addRequestMeta)(request, 'query', query); + (0, _requestmeta.addRequestMeta)(request, 'params', opts.params); + (0, _requestmeta.addRequestMeta)(request, 'minimalMode', this.minimalMode); + if (opts.err) { + (0, _requestmeta.addRequestMeta)(request, 'invokeError', opts.err); + } + const maybeDevRequest = // we need to capture fetch metrics when they are set + // and can't wait for handler to resolve as the fetch + // metrics are logged on response close which happens + // before handler resolves + process.env.NODE_ENV === 'development' ? new Proxy(request, { + get (target, prop) { + if (typeof target[prop] === 'function') { + return target[prop].bind(target); + } + return target[prop]; + }, + set (target, prop, value) { + if (prop === 'fetchMetrics') { + ; + req.fetchMetrics = value; + } + target[prop] = value; + return true; + } + }) : request; + // @ts-expect-error This isn't entirely correct, but the ServerRequest type param seems overly + // generic anyway. + let handlerReq = maybeDevRequest; + // @ts-expect-error This isn't entirely correct, but the ServerResponse type param seems overly + // generic anyway. + let handlerRes = response; + await components.ComponentMod.handler(handlerReq, handlerRes, { + waitUntil: this.getWaitUntil() + }); + // response is handled fully in handler + return null; + } + stripNextDataPath(filePath, stripLocale = true) { + if (filePath.includes(this.buildId)) { + const splitPath = filePath.substring(filePath.indexOf(this.buildId) + this.buildId.length); + filePath = (0, _denormalizepagepath.denormalizePagePath)(splitPath.replace(/\.json$/, '')); + } + if (this.localeNormalizer && stripLocale) { + return this.localeNormalizer.normalize(filePath); + } + return filePath; + } + // map the route to the actual bundle name + getOriginalAppPaths(route) { + if (this.enabledDirectories.app) { + var _this_appPathRoutes; + const originalAppPath = (_this_appPathRoutes = this.appPathRoutes) == null ? void 0 : _this_appPathRoutes[route]; + if (!originalAppPath) { + return null; + } + return originalAppPath; + } + return null; + } + async renderPageComponent(ctx, bubbleNoFallback) { + var _this_nextConfig_experimental_sri; + const { query, pathname } = ctx; + const appPaths = this.getOriginalAppPaths(pathname); + const isAppPath = Array.isArray(appPaths); + let page = pathname; + if (isAppPath) { + // the last item in the array is the root page, if there are parallel routes + page = appPaths[appPaths.length - 1]; + } + const result = await this.findPageComponents({ + locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'), + page, + query, + params: ctx.renderOpts.params || {}, + isAppPath, + sriEnabled: !!((_this_nextConfig_experimental_sri = this.nextConfig.experimental.sri) == null ? void 0 : _this_nextConfig_experimental_sri.algorithm), + appPaths, + // Ensuring for loading page component routes is done via the matcher. + shouldEnsure: false + }); + if (result) { + (0, _tracer.getTracer)().setRootSpanAttribute('next.route', pathname); + try { + return await this.renderToResponseWithComponents(ctx, result); + } catch (err) { + const isNoFallbackError = err instanceof _nofallbackerrorexternal.NoFallbackError; + if (!isNoFallbackError || isNoFallbackError && bubbleNoFallback) { + throw err; + } + } + } + return false; + } + async renderToResponse(ctx) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.renderToResponse, { + spanName: `rendering page`, + attributes: { + 'next.route': ctx.pathname + } + }, async ()=>{ + return this.renderToResponseImpl(ctx); + }); + } + async renderToResponseImpl(ctx) { + var _this_i18nProvider; + const { req, res, query, pathname } = ctx; + let page = pathname; + const bubbleNoFallback = (0, _requestmeta.getRequestMeta)(ctx.req, 'bubbleNoFallback') ?? false; + if (!this.minimalMode && this.nextConfig.experimental.validateRSCRequestHeaders) { + (0, _requestmeta.addRequestMeta)(ctx.req, 'cacheBustingSearchParam', query[_approuterheaders.NEXT_RSC_UNION_QUERY]); + } + delete query[_approuterheaders.NEXT_RSC_UNION_QUERY]; + const options = { + i18n: (_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.fromRequest(req, pathname) + }; + const existingMatch = (0, _requestmeta.getRequestMeta)(ctx.req, 'match'); + let fastPath = true; + // when a specific invoke-output is meant to be matched + // ensure a prior dynamic route/page doesn't take priority + const invokeOutput = (0, _requestmeta.getRequestMeta)(ctx.req, 'invokeOutput'); + if (!this.minimalMode && typeof invokeOutput === 'string' && (0, _utils1.isDynamicRoute)(invokeOutput || '') && invokeOutput !== (existingMatch == null ? void 0 : existingMatch.definition.pathname) || (// Parallel routes are matched in `existingMatch` but since currently + // there can be multiple matches it's not guaranteed to be the right match + // therefor we need to opt-out of the fast path for parallel routes. + existingMatch == null ? void 0 : existingMatch.definition.page.includes('/@'))) { + fastPath = false; + } + try { + for await (const match of fastPath && existingMatch ? [ + existingMatch + ] : this.matchers.matchAll(pathname, options)){ + if (!this.minimalMode && typeof invokeOutput === 'string' && (0, _utils1.isDynamicRoute)(invokeOutput || '') && invokeOutput !== match.definition.pathname) { + continue; + } + const result = await this.renderPageComponent({ + ...ctx, + pathname: match.definition.pathname, + renderOpts: { + ...ctx.renderOpts, + params: match.params + } + }, bubbleNoFallback); + if (result !== false) return result; + } + // currently edge functions aren't receiving the x-matched-path + // header so we need to fallback to matching the current page + // when we weren't able to match via dynamic route to handle + // the rewrite case + // @ts-expect-error extended in child class web-server + if (this.serverOptions.webServerConfig) { + // @ts-expect-error extended in child class web-server + ctx.pathname = this.serverOptions.webServerConfig.page; + const result = await this.renderPageComponent(ctx, bubbleNoFallback); + if (result !== false) return result; + } + } catch (error) { + const err = (0, _iserror.getProperError)(error); + if (error instanceof _utils.MissingStaticPage) { + console.error('Invariant: failed to load static page', JSON.stringify({ + page, + url: ctx.req.url, + matchedPath: ctx.req.headers[_constants2.MATCHED_PATH_HEADER], + initUrl: (0, _requestmeta.getRequestMeta)(ctx.req, 'initURL'), + didRewrite: !!(0, _requestmeta.getRequestMeta)(ctx.req, 'rewrittenPathname'), + rewrittenPathname: (0, _requestmeta.getRequestMeta)(ctx.req, 'rewrittenPathname') + }, null, 2)); + throw err; + } + if (err instanceof _nofallbackerrorexternal.NoFallbackError && bubbleNoFallback) { + throw err; + } + if (err instanceof _utils.DecodeError || err instanceof _utils.NormalizeError) { + res.statusCode = 400; + return await this.renderErrorToResponse(ctx, err); + } + res.statusCode = 500; + // if pages/500 is present we still need to trigger + // /_error `getInitialProps` to allow reporting error + if (await this.hasPage('/500')) { + (0, _requestmeta.addRequestMeta)(ctx.req, 'customErrorRender', true); + await this.renderErrorToResponse(ctx, err); + (0, _requestmeta.removeRequestMeta)(ctx.req, 'customErrorRender'); + } + const isWrappedError = err instanceof WrappedBuildError; + if (!isWrappedError) { + if (this.minimalMode || this.dev) { + if ((0, _iserror.default)(err)) err.page = page; + throw err; + } + this.logError((0, _iserror.getProperError)(err)); + } + const response = await this.renderErrorToResponse(ctx, isWrappedError ? err.innerError : err); + return response; + } + const middleware = await this.getMiddleware(); + if (middleware && !!ctx.req.headers['x-nextjs-data'] && (!res.statusCode || res.statusCode === 200 || res.statusCode === 404)) { + const locale = (0, _requestmeta.getRequestMeta)(req, 'locale'); + res.setHeader('x-nextjs-matched-path', `${locale ? `/${locale}` : ''}${pathname}`); + res.statusCode = 200; + res.setHeader('Content-Type', _constants2.JSON_CONTENT_TYPE_HEADER); + res.body('{}'); + res.send(); + return null; + } + res.statusCode = 404; + return this.renderErrorToResponse(ctx, null); + } + async renderToHTML(req, res, pathname, query = {}) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.renderToHTML, async ()=>{ + return this.renderToHTMLImpl(req, res, pathname, query); + }); + } + async renderToHTMLImpl(req, res, pathname, query = {}) { + return this.getStaticHTML((ctx)=>this.renderToResponse(ctx), { + req, + res, + pathname, + query + }); + } + async renderError(err, req, res, pathname, query = {}, setHeaders = true) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.renderError, async ()=>{ + return this.renderErrorImpl(err, req, res, pathname, query, setHeaders); + }); + } + async renderErrorImpl(err, req, res, pathname, query = {}, setHeaders = true) { + if (setHeaders) { + res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate'); + } + return this.pipe(async (ctx)=>{ + const response = await this.renderErrorToResponse(ctx, err); + if (this.minimalMode && res.statusCode === 500) { + throw err; + } + return response; + }, { + req, + res, + pathname, + query + }); + } + async renderErrorToResponse(ctx, err) { + return (0, _tracer.getTracer)().trace(_constants1.BaseServerSpan.renderErrorToResponse, async ()=>{ + return this.renderErrorToResponseImpl(ctx, err); + }); + } + async renderErrorToResponseImpl(ctx, err) { + // Short-circuit favicon.ico in development to avoid compiling 404 page when the app has no favicon.ico. + // Since favicon.ico is automatically requested by the browser. + if (this.dev && ctx.pathname === '/favicon.ico') { + return { + body: _renderresult.default.EMPTY + }; + } + const { res, query } = ctx; + try { + let result = null; + const is404 = res.statusCode === 404; + let using404Page = false; + const hasAppDir = this.enabledDirectories.app; + if (is404) { + if (hasAppDir) { + // Use the not-found entry in app directory + result = await this.findPageComponents({ + locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'), + page: _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY, + query, + params: {}, + isAppPath: true, + shouldEnsure: true, + url: ctx.req.url + }); + using404Page = result !== null; + } + if (!result && await this.hasPage('/404')) { + result = await this.findPageComponents({ + locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'), + page: '/404', + query, + params: {}, + isAppPath: false, + // Ensuring can't be done here because you never "match" a 404 route. + shouldEnsure: true, + url: ctx.req.url + }); + using404Page = result !== null; + } + } + let statusPage = `/${res.statusCode}`; + if (!(0, _requestmeta.getRequestMeta)(ctx.req, 'customErrorRender') && !result && _constants.STATIC_STATUS_PAGES.includes(statusPage)) { + // skip ensuring /500 in dev mode as it isn't used and the + // dev overlay is used instead + if (statusPage !== '/500' || !this.dev) { + if (!result && hasAppDir) { + // Otherwise if app router present, load app router built-in 500 page + result = await this.findPageComponents({ + locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'), + page: statusPage, + query, + params: {}, + isAppPath: true, + // Ensuring can't be done here because you never "match" a 500 + // route. + shouldEnsure: true, + url: ctx.req.url + }); + } + // If the above App Router result is empty, fallback to pages router 500 page + result = await this.findPageComponents({ + locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'), + page: statusPage, + query, + params: {}, + isAppPath: false, + // Ensuring can't be done here because you never "match" a 500 + // route. + shouldEnsure: true, + url: ctx.req.url + }); + } + } + if (!result) { + result = await this.findPageComponents({ + locale: (0, _requestmeta.getRequestMeta)(ctx.req, 'locale'), + page: '/_error', + query, + params: {}, + isAppPath: false, + // Ensuring can't be done here because you never "match" an error + // route. + shouldEnsure: true, + url: ctx.req.url + }); + statusPage = '/_error'; + } + if (process.env.NODE_ENV !== 'production' && !using404Page && await this.hasPage('/_error') && !await this.hasPage('/404')) { + this.customErrorNo404Warn(); + } + if (!result) { + // this can occur when a project directory has been moved/deleted + // which is handled in the parent process in development + if (this.dev) { + return { + // wait for dev-server to restart before refreshing + body: _renderresult.default.fromStatic(` +
missing required error components, refreshing...
+ `, _constants2.HTML_CONTENT_TYPE_HEADER) + }; + } + throw new WrappedBuildError(Object.defineProperty(new Error('missing required error components'), "__NEXT_ERROR_CODE", { + value: "E60", + enumerable: false, + configurable: true + })); + } + // If the page has a route module, use it for the new match. If it doesn't + // have a route module, remove the match. + if (result.components.routeModule) { + (0, _requestmeta.addRequestMeta)(ctx.req, 'match', { + definition: result.components.routeModule.definition, + params: undefined + }); + } else { + (0, _requestmeta.removeRequestMeta)(ctx.req, 'match'); + } + try { + return await this.renderToResponseWithComponents({ + ...ctx, + pathname: statusPage, + renderOpts: { + ...ctx.renderOpts, + err + } + }, result); + } catch (maybeFallbackError) { + if (maybeFallbackError instanceof _nofallbackerrorexternal.NoFallbackError) { + throw Object.defineProperty(new Error('invariant: failed to render error page'), "__NEXT_ERROR_CODE", { + value: "E55", + enumerable: false, + configurable: true + }); + } + throw maybeFallbackError; + } + } catch (error) { + const renderToHtmlError = (0, _iserror.getProperError)(error); + const isWrappedError = renderToHtmlError instanceof WrappedBuildError; + if (!isWrappedError) { + this.logError(renderToHtmlError); + } + res.statusCode = 500; + const fallbackComponents = await this.getFallbackErrorComponents(ctx.req.url); + if (fallbackComponents) { + // There was an error, so use it's definition from the route module + // to add the match to the request. + (0, _requestmeta.addRequestMeta)(ctx.req, 'match', { + definition: fallbackComponents.routeModule.definition, + params: undefined + }); + return this.renderToResponseWithComponents({ + ...ctx, + pathname: '/_error', + renderOpts: { + ...ctx.renderOpts, + // We render `renderToHtmlError` here because `err` is + // already captured in the stacktrace. + err: isWrappedError ? renderToHtmlError.innerError : renderToHtmlError + } + }, { + query, + components: fallbackComponents + }); + } + return { + body: _renderresult.default.fromStatic('Internal Server Error', 'text/plain') + }; + } + } + async renderErrorToHTML(err, req, res, pathname, query = {}) { + return this.getStaticHTML((ctx)=>this.renderErrorToResponse(ctx, err), { + req, + res, + pathname, + query + }); + } + async render404(req, res, parsedUrl, setHeaders = true) { + const { pathname, query } = parsedUrl ? parsedUrl : (0, _parseurl.parseUrl)(req.url); + // Ensure the locales are provided on the request meta. + if (this.nextConfig.i18n) { + if (!(0, _requestmeta.getRequestMeta)(req, 'locale')) { + (0, _requestmeta.addRequestMeta)(req, 'locale', this.nextConfig.i18n.defaultLocale); + } + (0, _requestmeta.addRequestMeta)(req, 'defaultLocale', this.nextConfig.i18n.defaultLocale); + } + res.statusCode = 404; + return this.renderError(null, req, res, pathname, query, setHeaders); + } +} + +//# sourceMappingURL=base-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/body-streams.js b/cli/app/node_modules/next/dist/server/body-streams.js new file mode 100644 index 00000000000..2d6d5fb501a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/body-streams.js @@ -0,0 +1,114 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getCloneableBody: null, + requestToBodyStream: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getCloneableBody: function() { + return getCloneableBody; + }, + requestToBodyStream: function() { + return requestToBodyStream; + } +}); +const _stream = require("stream"); +const _bytes = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/bytes")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const DEFAULT_BODY_CLONE_SIZE_LIMIT = 10 * 1024 * 1024 // 10MB +; +function requestToBodyStream(context, KUint8Array, stream) { + return new context.ReadableStream({ + start: async (controller)=>{ + for await (const chunk of stream){ + controller.enqueue(new KUint8Array(chunk)); + } + controller.close(); + } + }); +} +function replaceRequestBody(base, stream) { + for(const key in stream){ + let v = stream[key]; + if (typeof v === 'function') { + v = v.bind(base); + } + base[key] = v; + } + return base; +} +function getCloneableBody(readable, sizeLimit) { + let buffered = null; + const endPromise = new Promise((resolve, reject)=>{ + readable.on('end', resolve); + readable.on('error', reject); + }).catch((error)=>{ + return { + error + }; + }); + return { + /** + * Replaces the original request body if necessary. + * This is done because once we read the body from the original request, + * we can't read it again. + */ async finalize () { + if (buffered) { + const res = await endPromise; + if (res && typeof res === 'object' && res.error) { + throw res.error; + } + replaceRequestBody(readable, buffered); + buffered = readable; + } + }, + /** + * Clones the body stream + * to pass into a middleware + */ cloneBodyStream () { + const input = buffered ?? readable; + const p1 = new _stream.PassThrough(); + const p2 = new _stream.PassThrough(); + let bytesRead = 0; + const bodySizeLimit = sizeLimit ?? DEFAULT_BODY_CLONE_SIZE_LIMIT; + let limitExceeded = false; + input.on('data', (chunk)=>{ + if (limitExceeded) return; + bytesRead += chunk.length; + if (bytesRead > bodySizeLimit) { + limitExceeded = true; + const urlInfo = readable.url ? ` for ${readable.url}` : ''; + console.warn(// TODO(jiwon): Update this document link + `Request body exceeded ${_bytes.default.format(bodySizeLimit)}${urlInfo}. Only the first ${_bytes.default.format(bodySizeLimit)} will be available unless configured. See https://nextjs.org/docs/app/api-reference/config/next-config-js/middlewareClientMaxBodySize for more details.`); + p1.push(null); + p2.push(null); + return; + } + p1.push(chunk); + p2.push(chunk); + }); + input.on('end', ()=>{ + if (!limitExceeded) { + p1.push(null); + p2.push(null); + } + }); + buffered = p2; + return p1; + } + }; +} + +//# sourceMappingURL=body-streams.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/cache-dir.js b/cli/app/node_modules/next/dist/server/cache-dir.js new file mode 100644 index 00000000000..e182bfd42cd --- /dev/null +++ b/cli/app/node_modules/next/dist/server/cache-dir.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getStorageDirectory", { + enumerable: true, + get: function() { + return getStorageDirectory; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _isdocker = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/is-docker")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getStorageDirectory(distDir) { + const isLikelyEphemeral = (0, _isdocker.default)(); + if (isLikelyEphemeral) { + return undefined; + } + return _path.default.join(distDir, 'cache'); +} + +//# sourceMappingURL=cache-dir.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/capsize-font-metrics.json b/cli/app/node_modules/next/dist/server/capsize-font-metrics.json new file mode 100644 index 00000000000..7d1c5691b4c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/capsize-font-metrics.json @@ -0,0 +1,181516 @@ +{ + "aBeeZee": { + "familyName": "ABeeZee", + "fullName": "ABeeZee Regular", + "postscriptName": "ABeeZee-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "ABeeZee", + "fullName": "ABeeZee Regular", + "postscriptName": "ABeeZee-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "ABeeZee", + "fullName": "ABeeZee Italic", + "postscriptName": "ABeeZee-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "aDLaMDisplay": { + "familyName": "ADLaM Display", + "fullName": "ADLaM Display Regular", + "postscriptName": "ADLaMDisplay-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 2140, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 991, + "subsets": { + "latin": { + "xWidthAvg": 991 + }, + "thai": { + "xWidthAvg": 1370 + } + }, + "variants": { + "regular": { + "familyName": "ADLaM Display", + "fullName": "ADLaM Display Regular", + "postscriptName": "ADLaMDisplay-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 2140, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 991, + "subsets": { + "latin": { + "xWidthAvg": 991 + }, + "thai": { + "xWidthAvg": 1370 + } + } + } + } + }, + "aROneSans": { + "familyName": "AR One Sans", + "fullName": "AR One Sans Regular", + "postscriptName": "AROneSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1060, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "AR One Sans", + "fullName": "AR One Sans Medium", + "postscriptName": "AROneSans-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1060, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "AR One Sans", + "fullName": "AR One Sans SemiBold", + "postscriptName": "AROneSans-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1060, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "AR One Sans", + "fullName": "AR One Sans Bold", + "postscriptName": "AROneSans-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1060, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "AR One Sans", + "fullName": "AR One Sans Regular", + "postscriptName": "AROneSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1060, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "abel": { + "familyName": "Abel", + "fullName": "Abel Regular", + "postscriptName": "Abel-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2006, + "descent": -604, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1044, + "xWidthAvg": 783, + "subsets": { + "latin": { + "xWidthAvg": 783 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "Abel", + "fullName": "Abel Regular", + "postscriptName": "Abel-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2006, + "descent": -604, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1044, + "xWidthAvg": 783, + "subsets": { + "latin": { + "xWidthAvg": 783 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "abhayaLibre": { + "familyName": "Abhaya Libre", + "fullName": "Abhaya Libre Regular", + "postscriptName": "AbhayaLibre-Regular", + "category": "serif", + "ascent": 860, + "descent": -348, + "lineGap": 0, + "unitsPerEm": 1024, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 631 + } + }, + "variants": { + "500": { + "familyName": "Abhaya Libre", + "fullName": "Abhaya Libre Medium", + "postscriptName": "AbhayaLibre-Medium", + "category": "serif", + "ascent": 860, + "descent": -348, + "lineGap": 0, + "unitsPerEm": 1024, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "600": { + "familyName": "Abhaya Libre", + "fullName": "Abhaya Libre SemiBold", + "postscriptName": "AbhayaLibre-SemiBold", + "category": "serif", + "ascent": 860, + "descent": -348, + "lineGap": 0, + "unitsPerEm": 1024, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "700": { + "familyName": "Abhaya Libre", + "fullName": "Abhaya Libre Bold", + "postscriptName": "AbhayaLibre-Bold", + "category": "serif", + "ascent": 860, + "descent": -348, + "lineGap": 0, + "unitsPerEm": 1024, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "800": { + "familyName": "Abhaya Libre", + "fullName": "Abhaya Libre ExtraBold", + "postscriptName": "AbhayaLibre-ExtraBold", + "category": "serif", + "ascent": 860, + "descent": -348, + "lineGap": 0, + "unitsPerEm": 1024, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "regular": { + "familyName": "Abhaya Libre", + "fullName": "Abhaya Libre Regular", + "postscriptName": "AbhayaLibre-Regular", + "category": "serif", + "ascent": 860, + "descent": -348, + "lineGap": 0, + "unitsPerEm": 1024, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 631 + } + } + } + } + }, + "aboreto": { + "familyName": "Aboreto", + "fullName": "Aboreto Regular", + "postscriptName": "Aboreto-Regular", + "category": "display", + "capHeight": 700, + "ascent": 930, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 585, + "subsets": { + "latin": { + "xWidthAvg": 585 + }, + "thai": { + "xWidthAvg": 530 + } + }, + "variants": { + "regular": { + "familyName": "Aboreto", + "fullName": "Aboreto Regular", + "postscriptName": "Aboreto-Regular", + "category": "display", + "capHeight": 700, + "ascent": 930, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 585, + "subsets": { + "latin": { + "xWidthAvg": 585 + }, + "thai": { + "xWidthAvg": 530 + } + } + } + } + }, + "abrilFatface": { + "familyName": "Abril Fatface", + "fullName": "Abril Fatface", + "postscriptName": "AbrilFatface-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1058, + "descent": -291, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Abril Fatface", + "fullName": "Abril Fatface", + "postscriptName": "AbrilFatface-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1058, + "descent": -291, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "abyssinicaSIL": { + "familyName": "Abyssinica SIL", + "fullName": "Abyssinica SIL", + "postscriptName": "AbyssinicaSIL-Regular", + "category": "serif", + "capHeight": 1108, + "ascent": 2034, + "descent": -682, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 973, + "subsets": { + "latin": { + "xWidthAvg": 973 + }, + "thai": { + "xWidthAvg": 1400 + } + }, + "variants": { + "regular": { + "familyName": "Abyssinica SIL", + "fullName": "Abyssinica SIL", + "postscriptName": "AbyssinicaSIL-Regular", + "category": "serif", + "capHeight": 1108, + "ascent": 2034, + "descent": -682, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 973, + "subsets": { + "latin": { + "xWidthAvg": 973 + }, + "thai": { + "xWidthAvg": 1400 + } + } + } + } + }, + "aclonica": { + "familyName": "Aclonica", + "fullName": "Aclonica Regular", + "postscriptName": "Aclonica-Regular", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 1687, + "descent": -533, + "lineGap": 101, + "unitsPerEm": 2048, + "xHeight": 1155, + "xWidthAvg": 1132, + "subsets": { + "latin": { + "xWidthAvg": 1132 + }, + "thai": { + "xWidthAvg": 580 + } + }, + "variants": { + "regular": { + "familyName": "Aclonica", + "fullName": "Aclonica Regular", + "postscriptName": "Aclonica-Regular", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 1687, + "descent": -533, + "lineGap": 101, + "unitsPerEm": 2048, + "xHeight": 1155, + "xWidthAvg": 1132, + "subsets": { + "latin": { + "xWidthAvg": 1132 + }, + "thai": { + "xWidthAvg": 580 + } + } + } + } + }, + "acme": { + "familyName": "Acme", + "fullName": "Acme Regular", + "postscriptName": "Acme-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 959, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 107, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 154 + } + }, + "variants": { + "regular": { + "familyName": "Acme", + "fullName": "Acme Regular", + "postscriptName": "Acme-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 959, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 107, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 154 + } + } + } + } + }, + "actor": { + "familyName": "Actor", + "fullName": "Actor Regular", + "postscriptName": "Actor-Regular", + "category": "sans-serif", + "capHeight": 682, + "ascent": 941, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 360 + } + }, + "variants": { + "regular": { + "familyName": "Actor", + "fullName": "Actor Regular", + "postscriptName": "Actor-Regular", + "category": "sans-serif", + "capHeight": 682, + "ascent": 941, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 360 + } + } + } + } + }, + "adamina": { + "familyName": "Adamina", + "fullName": "Adamina Regular", + "postscriptName": "Adamina-Regular", + "category": "serif", + "capHeight": 796, + "ascent": 1072, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Adamina", + "fullName": "Adamina Regular", + "postscriptName": "Adamina-Regular", + "category": "serif", + "capHeight": 796, + "ascent": 1072, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "adventPro": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Regular", + "postscriptName": "AdventPro-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Thin", + "postscriptName": "AdventPro-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Advent Pro", + "fullName": "Advent Pro ExtraLight", + "postscriptName": "AdventPro-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 359, + "subsets": { + "latin": { + "xWidthAvg": 359 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Light", + "postscriptName": "AdventPro-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Medium", + "postscriptName": "AdventPro-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Advent Pro", + "fullName": "Advent Pro SemiBold", + "postscriptName": "AdventPro-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Bold", + "postscriptName": "AdventPro-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Advent Pro", + "fullName": "Advent Pro ExtraBold", + "postscriptName": "AdventPro-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Black", + "postscriptName": "AdventPro-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Regular", + "postscriptName": "AdventPro-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Italic", + "postscriptName": "AdventPro-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Black Italic", + "postscriptName": "AdventPro-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro ExtraBold Italic", + "postscriptName": "AdventPro-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Bold Italic", + "postscriptName": "AdventPro-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro SemiBold Italic", + "postscriptName": "AdventPro-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Medium Italic", + "postscriptName": "AdventPro-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Light Italic", + "postscriptName": "AdventPro-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro ExtraLight Italic", + "postscriptName": "AdventPro-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Advent Pro", + "fullName": "Advent Pro Thin Italic", + "postscriptName": "AdventPro-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 964, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "afacad": { + "familyName": "Afacad", + "fullName": "Afacad Regular", + "postscriptName": "Afacad-Regular", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 574, + "subsets": { + "latin": { + "xWidthAvg": 574 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "500": { + "familyName": "Afacad", + "fullName": "Afacad Medium", + "postscriptName": "Afacad-Medium", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 572, + "subsets": { + "latin": { + "xWidthAvg": 572 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600": { + "familyName": "Afacad", + "fullName": "Afacad SemiBold", + "postscriptName": "Afacad-SemiBold", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700": { + "familyName": "Afacad", + "fullName": "Afacad Bold", + "postscriptName": "Afacad-Bold", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 569, + "subsets": { + "latin": { + "xWidthAvg": 569 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "regular": { + "familyName": "Afacad", + "fullName": "Afacad Regular", + "postscriptName": "Afacad-Regular", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 574, + "subsets": { + "latin": { + "xWidthAvg": 574 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "italic": { + "familyName": "Afacad", + "fullName": "Afacad Italic", + "postscriptName": "Afacad-Italic", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 574, + "subsets": { + "latin": { + "xWidthAvg": 574 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700italic": { + "familyName": "Afacad", + "fullName": "Afacad Bold Italic", + "postscriptName": "Afacad-BoldItalic", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 569, + "subsets": { + "latin": { + "xWidthAvg": 569 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600italic": { + "familyName": "Afacad", + "fullName": "Afacad SemiBold Italic", + "postscriptName": "Afacad-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "500italic": { + "familyName": "Afacad", + "fullName": "Afacad Medium Italic", + "postscriptName": "Afacad-MediumItalic", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 572, + "subsets": { + "latin": { + "xWidthAvg": 572 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "afacadFlux": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Regular", + "postscriptName": "AfacadFlux-Regular", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 574, + "subsets": { + "latin": { + "xWidthAvg": 574 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "100": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Thin", + "postscriptName": "AfacadFlux-Thin", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 570, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "200": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux ExtraLight", + "postscriptName": "AfacadFlux-ExtraLight", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 578, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "300": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Light", + "postscriptName": "AfacadFlux-Light", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 585, + "xWidthAvg": 566, + "subsets": { + "latin": { + "xWidthAvg": 566 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "500": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Medium", + "postscriptName": "AfacadFlux-Medium", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 572, + "subsets": { + "latin": { + "xWidthAvg": 572 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux SemiBold", + "postscriptName": "AfacadFlux-SemiBold", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Bold", + "postscriptName": "AfacadFlux-Bold", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 569, + "subsets": { + "latin": { + "xWidthAvg": 569 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "800": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux ExtraBold", + "postscriptName": "AfacadFlux-ExtraBold", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 615, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "900": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Black", + "postscriptName": "AfacadFlux-Black", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 623, + "xWidthAvg": 586, + "subsets": { + "latin": { + "xWidthAvg": 586 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "regular": { + "familyName": "Afacad Flux", + "fullName": "Afacad Flux Regular", + "postscriptName": "AfacadFlux-Regular", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1440, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1440, + "xHeight": 600, + "xWidthAvg": 574, + "subsets": { + "latin": { + "xWidthAvg": 574 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "agbalumo": { + "familyName": "Agbalumo", + "fullName": "Agbalumo Regular", + "postscriptName": "Agbalumo-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1200, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 799 + } + }, + "variants": { + "regular": { + "familyName": "Agbalumo", + "fullName": "Agbalumo Regular", + "postscriptName": "Agbalumo-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1200, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 799 + } + } + } + } + }, + "agdasima": { + "familyName": "Agdasima", + "fullName": "Agdasima Regular", + "postscriptName": "Agdasima-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2015, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 649, + "subsets": { + "latin": { + "xWidthAvg": 649 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "700": { + "familyName": "Agdasima", + "fullName": "Agdasima Bold", + "postscriptName": "Agdasima-Bold", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2042, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 702, + "subsets": { + "latin": { + "xWidthAvg": 702 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Agdasima", + "fullName": "Agdasima Regular", + "postscriptName": "Agdasima-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2015, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 649, + "subsets": { + "latin": { + "xWidthAvg": 649 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "aguafinaScript": { + "familyName": "Aguafina Script", + "fullName": "Aguafina Script Regular", + "postscriptName": "AguafinaScript-Regular", + "category": "handwriting", + "capHeight": 780, + "ascent": 966, + "descent": -581, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 356, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 180 + } + }, + "variants": { + "regular": { + "familyName": "Aguafina Script", + "fullName": "Aguafina Script Regular", + "postscriptName": "AguafinaScript-Regular", + "category": "handwriting", + "capHeight": 780, + "ascent": 966, + "descent": -581, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 356, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "akatab": { + "familyName": "Akatab", + "fullName": "Akatab", + "postscriptName": "Akatab-Regular", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 914, + "subsets": { + "latin": { + "xWidthAvg": 914 + }, + "thai": { + "xWidthAvg": 922 + } + }, + "variants": { + "500": { + "familyName": "Akatab", + "fullName": "Akatab Medium", + "postscriptName": "Akatab-Medium", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 925, + "subsets": { + "latin": { + "xWidthAvg": 925 + }, + "thai": { + "xWidthAvg": 922 + } + } + }, + "600": { + "familyName": "Akatab", + "fullName": "Akatab SemiBold", + "postscriptName": "Akatab-SemiBold", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 933, + "subsets": { + "latin": { + "xWidthAvg": 933 + }, + "thai": { + "xWidthAvg": 922 + } + } + }, + "700": { + "familyName": "Akatab", + "fullName": "Akatab Bold", + "postscriptName": "Akatab-Bold", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 942, + "subsets": { + "latin": { + "xWidthAvg": 942 + }, + "thai": { + "xWidthAvg": 922 + } + } + }, + "800": { + "familyName": "Akatab", + "fullName": "Akatab ExtraBold", + "postscriptName": "Akatab-ExtraBold", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 955, + "subsets": { + "latin": { + "xWidthAvg": 955 + }, + "thai": { + "xWidthAvg": 922 + } + } + }, + "900": { + "familyName": "Akatab", + "fullName": "Akatab Black", + "postscriptName": "Akatab-Black", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 922 + } + } + }, + "regular": { + "familyName": "Akatab", + "fullName": "Akatab", + "postscriptName": "Akatab-Regular", + "category": "sans-serif", + "capHeight": 1393, + "ascent": 2093, + "descent": -711, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 914, + "subsets": { + "latin": { + "xWidthAvg": 914 + }, + "thai": { + "xWidthAvg": 922 + } + } + } + } + }, + "akayaKanadaka": { + "familyName": "Akaya Kanadaka", + "fullName": "Akaya Kanadaka Regular", + "postscriptName": "AkayaKanadaka-Regular", + "category": "display", + "capHeight": 634, + "ascent": 920, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 396, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 543 + } + }, + "variants": { + "regular": { + "familyName": "Akaya Kanadaka", + "fullName": "Akaya Kanadaka Regular", + "postscriptName": "AkayaKanadaka-Regular", + "category": "display", + "capHeight": 634, + "ascent": 920, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 396, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 543 + } + } + } + } + }, + "akayaTelivigala": { + "familyName": "Akaya Telivigala", + "fullName": "Akaya Telivigala Regular", + "postscriptName": "AkayaTelivigala-Regular", + "category": "display", + "capHeight": 613, + "ascent": 920, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 543 + } + }, + "variants": { + "regular": { + "familyName": "Akaya Telivigala", + "fullName": "Akaya Telivigala Regular", + "postscriptName": "AkayaTelivigala-Regular", + "category": "display", + "capHeight": 613, + "ascent": 920, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 543 + } + } + } + } + }, + "akronim": { + "familyName": "Akronim", + "fullName": "Akronim Regular", + "postscriptName": "Akronim-Regular", + "category": "display", + "capHeight": 730, + "ascent": 785, + "descent": -314, + "lineGap": 43, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 333, + "subsets": { + "latin": { + "xWidthAvg": 333 + }, + "thai": { + "xWidthAvg": 342 + } + }, + "variants": { + "regular": { + "familyName": "Akronim", + "fullName": "Akronim Regular", + "postscriptName": "Akronim-Regular", + "category": "display", + "capHeight": 730, + "ascent": 785, + "descent": -314, + "lineGap": 43, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 333, + "subsets": { + "latin": { + "xWidthAvg": 333 + }, + "thai": { + "xWidthAvg": 342 + } + } + } + } + }, + "akshar": { + "familyName": "Akshar", + "fullName": "Akshar Regular", + "postscriptName": "Akshar-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 990, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 848 + } + }, + "variants": { + "300": { + "familyName": "Akshar", + "fullName": "Akshar Light", + "postscriptName": "Akshar-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 990, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 357, + "subsets": { + "latin": { + "xWidthAvg": 357 + }, + "thai": { + "xWidthAvg": 800 + } + } + }, + "500": { + "familyName": "Akshar", + "fullName": "Akshar Medium", + "postscriptName": "Akshar-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 990, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 895 + } + } + }, + "600": { + "familyName": "Akshar", + "fullName": "Akshar SemiBold", + "postscriptName": "Akshar-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 990, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 943 + } + } + }, + "700": { + "familyName": "Akshar", + "fullName": "Akshar Bold", + "postscriptName": "Akshar-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 990, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 990 + } + } + }, + "regular": { + "familyName": "Akshar", + "fullName": "Akshar Regular", + "postscriptName": "Akshar-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 990, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 848 + } + } + } + } + }, + "aladin": { + "familyName": "Aladin", + "fullName": "Aladin Regular", + "postscriptName": "Aladin-Regular", + "category": "display", + "capHeight": 387, + "ascent": 905, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 337, + "xWidthAvg": 334, + "subsets": { + "latin": { + "xWidthAvg": 334 + }, + "thai": { + "xWidthAvg": 180 + } + }, + "variants": { + "regular": { + "familyName": "Aladin", + "fullName": "Aladin Regular", + "postscriptName": "Aladin-Regular", + "category": "display", + "capHeight": 387, + "ascent": 905, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 337, + "xWidthAvg": 334, + "subsets": { + "latin": { + "xWidthAvg": 334 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "alata": { + "familyName": "Alata", + "fullName": "Alata Regular", + "postscriptName": "Alata-Regular", + "category": "sans-serif", + "capHeight": 735, + "ascent": 1100, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 864 + } + }, + "variants": { + "regular": { + "familyName": "Alata", + "fullName": "Alata Regular", + "postscriptName": "Alata-Regular", + "category": "sans-serif", + "capHeight": 735, + "ascent": 1100, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 864 + } + } + } + } + }, + "alatsi": { + "familyName": "Alatsi", + "fullName": "Alatsi Regular", + "postscriptName": "Alatsi-Regular", + "category": "sans-serif", + "capHeight": 1394, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 996, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 1728 + } + }, + "variants": { + "regular": { + "familyName": "Alatsi", + "fullName": "Alatsi Regular", + "postscriptName": "Alatsi-Regular", + "category": "sans-serif", + "capHeight": 1394, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 996, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 1728 + } + } + } + } + }, + "albertSans": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Regular", + "postscriptName": "AlbertSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 660 + } + }, + "variants": { + "100": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Thin", + "postscriptName": "AlbertSans-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 678 + } + } + }, + "200": { + "familyName": "Albert Sans", + "fullName": "Albert Sans ExtraLight", + "postscriptName": "AlbertSans-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 673 + } + } + }, + "300": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Light", + "postscriptName": "AlbertSans-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "500": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Medium", + "postscriptName": "AlbertSans-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 650 + } + } + }, + "600": { + "familyName": "Albert Sans", + "fullName": "Albert Sans SemiBold", + "postscriptName": "AlbertSans-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 639 + } + } + }, + "700": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Bold", + "postscriptName": "AlbertSans-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 629 + } + } + }, + "800": { + "familyName": "Albert Sans", + "fullName": "Albert Sans ExtraBold", + "postscriptName": "AlbertSans-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 618 + } + } + }, + "900": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Black", + "postscriptName": "AlbertSans-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 606 + } + } + }, + "regular": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Regular", + "postscriptName": "AlbertSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Italic", + "postscriptName": "AlbertSans-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "900italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Black Italic", + "postscriptName": "AlbertSans-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 606 + } + } + }, + "800italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans ExtraBold Italic", + "postscriptName": "AlbertSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 618 + } + } + }, + "700italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Bold Italic", + "postscriptName": "AlbertSans-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 629 + } + } + }, + "600italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans SemiBold Italic", + "postscriptName": "AlbertSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 639 + } + } + }, + "500italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Medium Italic", + "postscriptName": "AlbertSans-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 650 + } + } + }, + "300italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Light Italic", + "postscriptName": "AlbertSans-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "200italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans ExtraLight Italic", + "postscriptName": "AlbertSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 673 + } + } + }, + "100italic": { + "familyName": "Albert Sans", + "fullName": "Albert Sans Thin Italic", + "postscriptName": "AlbertSans-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 678 + } + } + } + } + }, + "aldrich": { + "familyName": "Aldrich", + "fullName": "Aldrich Regular", + "postscriptName": "Aldrich-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1475, + "descent": -430, + "lineGap": 98, + "unitsPerEm": 2048, + "xHeight": 1065, + "xWidthAvg": 1060, + "subsets": { + "latin": { + "xWidthAvg": 1060 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Aldrich", + "fullName": "Aldrich Regular", + "postscriptName": "Aldrich-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1475, + "descent": -430, + "lineGap": 98, + "unitsPerEm": 2048, + "xHeight": 1065, + "xWidthAvg": 1060, + "subsets": { + "latin": { + "xWidthAvg": 1060 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "alef": { + "familyName": "Alef", + "fullName": "Alef Regular", + "postscriptName": "Alef-Regular", + "category": "sans-serif", + "capHeight": 1438, + "ascent": 2067, + "descent": -722, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "700": { + "familyName": "Alef", + "fullName": "Alef Bold", + "postscriptName": "Alef-Bold", + "category": "sans-serif", + "capHeight": 1438, + "ascent": 2067, + "descent": -722, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 1020, + "subsets": { + "latin": { + "xWidthAvg": 1020 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "regular": { + "familyName": "Alef", + "fullName": "Alef Regular", + "postscriptName": "Alef-Regular", + "category": "sans-serif", + "capHeight": 1438, + "ascent": 2067, + "descent": -722, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "alegreya": { + "familyName": "Alegreya", + "fullName": "Alegreya Regular", + "postscriptName": "Alegreya-Regular", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 641 + } + }, + "variants": { + "500": { + "familyName": "Alegreya", + "fullName": "Alegreya Medium", + "postscriptName": "Alegreya-Medium", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "600": { + "familyName": "Alegreya", + "fullName": "Alegreya SemiBold", + "postscriptName": "Alegreya-SemiBold", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "700": { + "familyName": "Alegreya", + "fullName": "Alegreya Bold", + "postscriptName": "Alegreya-Bold", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "800": { + "familyName": "Alegreya", + "fullName": "Alegreya ExtraBold", + "postscriptName": "Alegreya-ExtraBold", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "900": { + "familyName": "Alegreya", + "fullName": "Alegreya Black", + "postscriptName": "Alegreya-Black", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "regular": { + "familyName": "Alegreya", + "fullName": "Alegreya Regular", + "postscriptName": "Alegreya-Regular", + "category": "serif", + "capHeight": 637, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "italic": { + "familyName": "Alegreya", + "fullName": "Alegreya Italic", + "postscriptName": "Alegreya-Italic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "900italic": { + "familyName": "Alegreya", + "fullName": "Alegreya Black Italic", + "postscriptName": "Alegreya-BlackItalic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "800italic": { + "familyName": "Alegreya", + "fullName": "Alegreya ExtraBold Italic", + "postscriptName": "Alegreya-ExtraBoldItalic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "700italic": { + "familyName": "Alegreya", + "fullName": "Alegreya Bold Italic", + "postscriptName": "Alegreya-BoldItalic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "600italic": { + "familyName": "Alegreya", + "fullName": "Alegreya SemiBold Italic", + "postscriptName": "Alegreya-SemiBoldItalic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "500italic": { + "familyName": "Alegreya", + "fullName": "Alegreya Medium Italic", + "postscriptName": "Alegreya-MediumItalic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 641 + } + } + } + } + }, + "alegreyaSC": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Regular", + "postscriptName": "AlegreyaSC-Regular", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 641 + } + }, + "variants": { + "500": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Medium", + "postscriptName": "AlegreyaSC-Medium", + "category": "serif", + "capHeight": 638, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "700": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Bold", + "postscriptName": "AlegreyaSC-Bold", + "category": "serif", + "capHeight": 641, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 461, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "800": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC ExtraBold", + "postscriptName": "AlegreyaSC-ExtraBold", + "category": "serif", + "capHeight": 644, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "900": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Black", + "postscriptName": "AlegreyaSC-Black", + "category": "serif", + "capHeight": 647, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "regular": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Regular", + "postscriptName": "AlegreyaSC-Regular", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "italic": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Italic", + "postscriptName": "AlegreyaSC-Italic", + "category": "serif", + "capHeight": 636, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "900italic": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Black Italic", + "postscriptName": "AlegreyaSC-BlackItalic", + "category": "serif", + "capHeight": 647, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "800italic": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC ExtraBold Italic", + "postscriptName": "AlegreyaSC-ExtraBoldItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "700italic": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Bold Italic", + "postscriptName": "AlegreyaSC-BoldItalic", + "category": "serif", + "capHeight": 641, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 461, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "500italic": { + "familyName": "Alegreya SC", + "fullName": "Alegreya SC Medium Italic", + "postscriptName": "AlegreyaSC-MediumItalic", + "category": "serif", + "capHeight": 638, + "ascent": 1016, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 641 + } + } + } + } + }, + "alegreyaSans": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Regular", + "postscriptName": "AlegreyaSans-Regular", + "category": "sans-serif", + "capHeight": 641, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 165 + } + }, + "variants": { + "100": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Thin", + "postscriptName": "AlegreyaSans-Thin", + "category": "sans-serif", + "capHeight": 637, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 180 + } + } + }, + "300": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Light", + "postscriptName": "AlegreyaSans-Light", + "category": "sans-serif", + "capHeight": 639, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 172 + } + } + }, + "500": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Medium", + "postscriptName": "AlegreyaSans-Medium", + "category": "sans-serif", + "capHeight": 642, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 461, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 160 + } + } + }, + "700": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Bold", + "postscriptName": "AlegreyaSans-Bold", + "category": "sans-serif", + "capHeight": 644, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 151 + } + } + }, + "800": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans ExtraBold", + "postscriptName": "AlegreyaSans-ExtraBold", + "category": "sans-serif", + "capHeight": 645, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 145 + } + } + }, + "900": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Black", + "postscriptName": "AlegreyaSans-Black", + "category": "sans-serif", + "capHeight": 647, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 135 + } + } + }, + "regular": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Regular", + "postscriptName": "AlegreyaSans-Regular", + "category": "sans-serif", + "capHeight": 641, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 165 + } + } + }, + "italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Italic", + "postscriptName": "AlegreyaSans-Italic", + "category": "sans-serif", + "capHeight": 640, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 167 + } + } + }, + "900italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Black Italic", + "postscriptName": "AlegreyaSans-BlackItalic", + "category": "sans-serif", + "capHeight": 647, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 135 + } + } + }, + "800italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans ExtraBold Italic", + "postscriptName": "AlegreyaSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 645, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 146 + } + } + }, + "700italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Bold Italic", + "postscriptName": "AlegreyaSans-BoldItalic", + "category": "sans-serif", + "capHeight": 643, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 464, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 152 + } + } + }, + "500italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Medium Italic", + "postscriptName": "AlegreyaSans-MediumItalic", + "category": "sans-serif", + "capHeight": 642, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 359, + "subsets": { + "latin": { + "xWidthAvg": 359 + }, + "thai": { + "xWidthAvg": 161 + } + } + }, + "300italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Light Italic", + "postscriptName": "AlegreyaSans-LightItalic", + "category": "sans-serif", + "capHeight": 639, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 347, + "subsets": { + "latin": { + "xWidthAvg": 347 + }, + "thai": { + "xWidthAvg": 173 + } + } + }, + "100italic": { + "familyName": "Alegreya Sans", + "fullName": "Alegreya Sans Thin Italic", + "postscriptName": "AlegreyaSans-ThinItalic", + "category": "sans-serif", + "capHeight": 637, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 340, + "subsets": { + "latin": { + "xWidthAvg": 340 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "alegreyaSansSC": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Regular", + "postscriptName": "AlegreyaSansSC-Regular", + "category": "sans-serif", + "capHeight": 641, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 165 + } + }, + "variants": { + "100": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Thin", + "postscriptName": "AlegreyaSansSC-Thin", + "category": "sans-serif", + "capHeight": 637, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 180 + } + } + }, + "300": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Light", + "postscriptName": "AlegreyaSansSC-Light", + "category": "sans-serif", + "capHeight": 639, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 172 + } + } + }, + "500": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Medium", + "postscriptName": "AlegreyaSansSC-Medium", + "category": "sans-serif", + "capHeight": 642, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 461, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 160 + } + } + }, + "700": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Bold", + "postscriptName": "AlegreyaSansSC-Bold", + "category": "sans-serif", + "capHeight": 644, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 151 + } + } + }, + "800": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC ExtraBold", + "postscriptName": "AlegreyaSansSC-ExtraBold", + "category": "sans-serif", + "capHeight": 645, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 145 + } + } + }, + "900": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Black", + "postscriptName": "AlegreyaSansSC-Black", + "category": "sans-serif", + "capHeight": 647, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 135 + } + } + }, + "regular": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Regular", + "postscriptName": "AlegreyaSansSC-Regular", + "category": "sans-serif", + "capHeight": 641, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 165 + } + } + }, + "italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Italic", + "postscriptName": "AlegreyaSansSC-Italic", + "category": "sans-serif", + "capHeight": 640, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 167 + } + } + }, + "900italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Black Italic", + "postscriptName": "AlegreyaSansSC-BlackItalic", + "category": "sans-serif", + "capHeight": 647, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 135 + } + } + }, + "800italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC ExtraBold Italic", + "postscriptName": "AlegreyaSansSC-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 645, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 146 + } + } + }, + "700italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Bold Italic", + "postscriptName": "AlegreyaSansSC-BoldItalic", + "category": "sans-serif", + "capHeight": 643, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 464, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 152 + } + } + }, + "500italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Medium Italic", + "postscriptName": "AlegreyaSansSC-MediumItalic", + "category": "sans-serif", + "capHeight": 642, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 161 + } + } + }, + "300italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Light Italic", + "postscriptName": "AlegreyaSansSC-LightItalic", + "category": "sans-serif", + "capHeight": 639, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 173 + } + } + }, + "100italic": { + "familyName": "Alegreya Sans SC", + "fullName": "Alegreya Sans SC Thin Italic", + "postscriptName": "AlegreyaSansSC-ThinItalic", + "category": "sans-serif", + "capHeight": 637, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "aleo": { + "familyName": "Aleo", + "fullName": "Aleo Regular", + "postscriptName": "Aleo-Regular", + "category": "serif", + "capHeight": 737, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 553 + } + }, + "variants": { + "100": { + "familyName": "Aleo", + "fullName": "Aleo Thin", + "postscriptName": "Aleo-Thin", + "category": "serif", + "capHeight": 700, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "200": { + "familyName": "Aleo", + "fullName": "Aleo ExtraLight", + "postscriptName": "Aleo-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 539 + } + } + }, + "300": { + "familyName": "Aleo", + "fullName": "Aleo Light", + "postscriptName": "Aleo-Light", + "category": "serif", + "capHeight": 719, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 542 + } + } + }, + "500": { + "familyName": "Aleo", + "fullName": "Aleo Medium", + "postscriptName": "Aleo-Medium", + "category": "serif", + "capHeight": 739, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "600": { + "familyName": "Aleo", + "fullName": "Aleo SemiBold", + "postscriptName": "Aleo-SemiBold", + "category": "serif", + "capHeight": 741, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "700": { + "familyName": "Aleo", + "fullName": "Aleo Bold", + "postscriptName": "Aleo-Bold", + "category": "serif", + "capHeight": 744, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 558 + } + } + }, + "800": { + "familyName": "Aleo", + "fullName": "Aleo ExtraBold", + "postscriptName": "Aleo-ExtraBold", + "category": "serif", + "capHeight": 747, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "900": { + "familyName": "Aleo", + "fullName": "Aleo Black", + "postscriptName": "Aleo-Black", + "category": "serif", + "capHeight": 749, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "regular": { + "familyName": "Aleo", + "fullName": "Aleo Regular", + "postscriptName": "Aleo-Regular", + "category": "serif", + "capHeight": 737, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "italic": { + "familyName": "Aleo", + "fullName": "Aleo Italic", + "postscriptName": "Aleo-Italic", + "category": "serif", + "capHeight": 737, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "900italic": { + "familyName": "Aleo", + "fullName": "Aleo Black Italic", + "postscriptName": "Aleo-BlackItalic", + "category": "serif", + "capHeight": 749, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "800italic": { + "familyName": "Aleo", + "fullName": "Aleo ExtraBold Italic", + "postscriptName": "Aleo-ExtraBoldItalic", + "category": "serif", + "capHeight": 747, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "700italic": { + "familyName": "Aleo", + "fullName": "Aleo Bold Italic", + "postscriptName": "Aleo-BoldItalic", + "category": "serif", + "capHeight": 744, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 558 + } + } + }, + "600italic": { + "familyName": "Aleo", + "fullName": "Aleo SemiBold Italic", + "postscriptName": "Aleo-SemiBoldItalic", + "category": "serif", + "capHeight": 741, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "500italic": { + "familyName": "Aleo", + "fullName": "Aleo Medium Italic", + "postscriptName": "Aleo-MediumItalic", + "category": "serif", + "capHeight": 739, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "300italic": { + "familyName": "Aleo", + "fullName": "Aleo Light Italic", + "postscriptName": "Aleo-LightItalic", + "category": "serif", + "capHeight": 719, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 542 + } + } + }, + "200italic": { + "familyName": "Aleo", + "fullName": "Aleo ExtraLight Italic", + "postscriptName": "Aleo-ExtraLightItalic", + "category": "serif", + "capHeight": 714, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 539 + } + } + }, + "100italic": { + "familyName": "Aleo", + "fullName": "Aleo Thin Italic", + "postscriptName": "Aleo-ThinItalic", + "category": "serif", + "capHeight": 700, + "ascent": 905, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 531 + } + } + } + } + }, + "alexBrush": { + "familyName": "Alex Brush", + "fullName": "Alex Brush Regular", + "postscriptName": "AlexBrush-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 825, + "descent": -425, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 499 + } + }, + "variants": { + "regular": { + "familyName": "Alex Brush", + "fullName": "Alex Brush Regular", + "postscriptName": "AlexBrush-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 825, + "descent": -425, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 499 + } + } + } + } + }, + "alexandria": { + "familyName": "Alexandria", + "fullName": "Alexandria Regular", + "postscriptName": "Alexandria-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 587 + } + }, + "variants": { + "100": { + "familyName": "Alexandria", + "fullName": "Alexandria Thin", + "postscriptName": "Alexandria-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "200": { + "familyName": "Alexandria", + "fullName": "Alexandria ExtraLight", + "postscriptName": "Alexandria-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "300": { + "familyName": "Alexandria", + "fullName": "Alexandria Light", + "postscriptName": "Alexandria-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "500": { + "familyName": "Alexandria", + "fullName": "Alexandria Medium", + "postscriptName": "Alexandria-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "600": { + "familyName": "Alexandria", + "fullName": "Alexandria SemiBold", + "postscriptName": "Alexandria-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "700": { + "familyName": "Alexandria", + "fullName": "Alexandria Bold", + "postscriptName": "Alexandria-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "800": { + "familyName": "Alexandria", + "fullName": "Alexandria ExtraBold", + "postscriptName": "Alexandria-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "900": { + "familyName": "Alexandria", + "fullName": "Alexandria Black", + "postscriptName": "Alexandria-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "regular": { + "familyName": "Alexandria", + "fullName": "Alexandria Regular", + "postscriptName": "Alexandria-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 587 + } + } + } + } + }, + "alfaSlabOne": { + "familyName": "Alfa Slab One", + "fullName": "Alfa Slab One Regular", + "postscriptName": "AlfaSlabOne-Regular", + "category": "display", + "capHeight": 778, + "ascent": 1036, + "descent": -333, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 730 + } + }, + "variants": { + "regular": { + "familyName": "Alfa Slab One", + "fullName": "Alfa Slab One Regular", + "postscriptName": "AlfaSlabOne-Regular", + "category": "display", + "capHeight": 778, + "ascent": 1036, + "descent": -333, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 730 + } + } + } + } + }, + "alice": { + "familyName": "Alice", + "fullName": "Alice Regular", + "postscriptName": "Alice-Regular", + "category": "serif", + "capHeight": 631, + "ascent": 909, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 453, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 502 + } + }, + "variants": { + "regular": { + "familyName": "Alice", + "fullName": "Alice Regular", + "postscriptName": "Alice-Regular", + "category": "serif", + "capHeight": 631, + "ascent": 909, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 453, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 502 + } + } + } + } + }, + "alike": { + "familyName": "Alike", + "fullName": "Alike Regular", + "postscriptName": "Alike-Regular", + "category": "serif", + "capHeight": 705, + "ascent": 984, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 965 + } + }, + "variants": { + "regular": { + "familyName": "Alike", + "fullName": "Alike Regular", + "postscriptName": "Alike-Regular", + "category": "serif", + "capHeight": 705, + "ascent": 984, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 965 + } + } + } + } + }, + "alikeAngular": { + "familyName": "Alike Angular", + "fullName": "Alike Angular Regular", + "postscriptName": "AlikeAngular-Regular", + "category": "serif", + "capHeight": 705, + "ascent": 984, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 965 + } + }, + "variants": { + "regular": { + "familyName": "Alike Angular", + "fullName": "Alike Angular Regular", + "postscriptName": "AlikeAngular-Regular", + "category": "serif", + "capHeight": 705, + "ascent": 984, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 965 + } + } + } + } + }, + "alkalami": { + "familyName": "Alkalami", + "fullName": "Alkalami", + "postscriptName": "Alkalami-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1035, + "descent": -857, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1033 + } + }, + "variants": { + "regular": { + "familyName": "Alkalami", + "fullName": "Alkalami", + "postscriptName": "Alkalami-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1035, + "descent": -857, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1033 + } + } + } + } + }, + "alkatra": { + "familyName": "Alkatra", + "fullName": "Alkatra Regular", + "postscriptName": "Alkatra-Regular", + "category": "display", + "capHeight": 680, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Alkatra", + "fullName": "Alkatra Medium", + "postscriptName": "Alkatra-Medium", + "category": "display", + "capHeight": 680, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Alkatra", + "fullName": "Alkatra SemiBold", + "postscriptName": "Alkatra-SemiBold", + "category": "display", + "capHeight": 680, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Alkatra", + "fullName": "Alkatra Bold", + "postscriptName": "Alkatra-Bold", + "category": "display", + "capHeight": 680, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Alkatra", + "fullName": "Alkatra Regular", + "postscriptName": "Alkatra-Regular", + "category": "display", + "capHeight": 680, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "allan": { + "familyName": "Allan", + "fullName": "Allan Regular", + "postscriptName": "Allan-Regular", + "category": "display", + "capHeight": 1483, + "ascent": 1928, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 638, + "subsets": { + "latin": { + "xWidthAvg": 638 + }, + "thai": { + "xWidthAvg": 1495 + } + }, + "variants": { + "700": { + "familyName": "Allan", + "fullName": "Allan Bold", + "postscriptName": "Allan-Bold", + "category": "display", + "ascent": 1836, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 688, + "subsets": { + "latin": { + "xWidthAvg": 688 + }, + "thai": { + "xWidthAvg": 1460 + } + } + }, + "regular": { + "familyName": "Allan", + "fullName": "Allan Regular", + "postscriptName": "Allan-Regular", + "category": "display", + "capHeight": 1483, + "ascent": 1928, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 638, + "subsets": { + "latin": { + "xWidthAvg": 638 + }, + "thai": { + "xWidthAvg": 1495 + } + } + } + } + }, + "allerta": { + "familyName": "Allerta", + "fullName": "Allerta Regular", + "postscriptName": "Allerta-Regular", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1057, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 564, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 274 + } + }, + "variants": { + "regular": { + "familyName": "Allerta", + "fullName": "Allerta Regular", + "postscriptName": "Allerta-Regular", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1057, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 564, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 274 + } + } + } + } + }, + "allertaStencil": { + "familyName": "Allerta Stencil", + "fullName": "Allerta Stencil Regular", + "postscriptName": "AllertaStencil-Regular", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1057, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 564, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 274 + } + }, + "variants": { + "regular": { + "familyName": "Allerta Stencil", + "fullName": "Allerta Stencil Regular", + "postscriptName": "AllertaStencil-Regular", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1057, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 564, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 274 + } + } + } + } + }, + "allison": { + "familyName": "Allison", + "fullName": "Allison Regular", + "postscriptName": "Allison-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 890, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 246, + "subsets": { + "latin": { + "xWidthAvg": 246 + }, + "thai": { + "xWidthAvg": 568 + } + }, + "variants": { + "regular": { + "familyName": "Allison", + "fullName": "Allison Regular", + "postscriptName": "Allison-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 890, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 246, + "subsets": { + "latin": { + "xWidthAvg": 246 + }, + "thai": { + "xWidthAvg": 568 + } + } + } + } + }, + "allura": { + "familyName": "Allura", + "fullName": "Allura Regular", + "postscriptName": "Allura-Regular", + "category": "handwriting", + "capHeight": 590, + "ascent": 800, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 295, + "xWidthAvg": 338, + "subsets": { + "latin": { + "xWidthAvg": 338 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Allura", + "fullName": "Allura Regular", + "postscriptName": "Allura-Regular", + "category": "handwriting", + "capHeight": 590, + "ascent": 800, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 295, + "xWidthAvg": 338, + "subsets": { + "latin": { + "xWidthAvg": 338 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "almarai": { + "familyName": "Almarai", + "fullName": "Almarai", + "postscriptName": "Almarai-Regular", + "category": "sans-serif", + "capHeight": 716, + "ascent": 905, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 184 + } + }, + "variants": { + "300": { + "familyName": "Almarai", + "fullName": "Almarai Light", + "postscriptName": "Almarai-Light", + "category": "sans-serif", + "capHeight": 716, + "ascent": 905, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 184 + } + } + }, + "700": { + "familyName": "Almarai", + "fullName": "Almarai Bold", + "postscriptName": "Almarai-Bold", + "category": "sans-serif", + "capHeight": 716, + "ascent": 905, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 184 + } + } + }, + "800": { + "familyName": "Almarai", + "fullName": "Almarai Extrabold", + "postscriptName": "Almarai-ExtraBold", + "category": "sans-serif", + "capHeight": 716, + "ascent": 905, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 184 + } + } + }, + "regular": { + "familyName": "Almarai", + "fullName": "Almarai", + "postscriptName": "Almarai-Regular", + "category": "sans-serif", + "capHeight": 716, + "ascent": 905, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 184 + } + } + } + } + }, + "almendra": { + "familyName": "Almendra", + "fullName": "Almendra Regular", + "postscriptName": "Almendra-Regular", + "category": "serif", + "capHeight": 666, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 180 + } + }, + "variants": { + "700": { + "familyName": "Almendra", + "fullName": "Almendra Bold", + "postscriptName": "Almendra-Bold", + "category": "serif", + "capHeight": 666, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 180 + } + } + }, + "regular": { + "familyName": "Almendra", + "fullName": "Almendra Regular", + "postscriptName": "Almendra-Regular", + "category": "serif", + "capHeight": 666, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 180 + } + } + }, + "italic": { + "familyName": "Almendra", + "fullName": "Almendra Italic", + "postscriptName": "Almendra-Italic", + "category": "serif", + "capHeight": 675, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 180 + } + } + }, + "700italic": { + "familyName": "Almendra", + "fullName": "Almendra Bold Italic", + "postscriptName": "Almendra-BoldItalic", + "category": "serif", + "capHeight": 679, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "almendraDisplay": { + "familyName": "Almendra Display", + "fullName": "Almendra Display Regular", + "postscriptName": "AlmendraDisplay-Regular", + "category": "display", + "capHeight": 666, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 180 + } + }, + "variants": { + "regular": { + "familyName": "Almendra Display", + "fullName": "Almendra Display Regular", + "postscriptName": "AlmendraDisplay-Regular", + "category": "display", + "capHeight": 666, + "ascent": 951, + "descent": -345, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "almendraSC": { + "familyName": "Almendra SC", + "fullName": "Almendra SC Regular", + "postscriptName": "AlmendraSC-Regular", + "category": "serif", + "capHeight": 271, + "ascent": 939, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 193, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 180 + } + }, + "variants": { + "regular": { + "familyName": "Almendra SC", + "fullName": "Almendra SC Regular", + "postscriptName": "AlmendraSC-Regular", + "category": "serif", + "capHeight": 271, + "ascent": 939, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 193, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "alumniSans": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Regular", + "postscriptName": "AlumniSans-Regular", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 300, + "subsets": { + "latin": { + "xWidthAvg": 300 + }, + "thai": { + "xWidthAvg": 437 + } + }, + "variants": { + "100": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Thin", + "postscriptName": "AlumniSans-Thin", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 290, + "subsets": { + "latin": { + "xWidthAvg": 290 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "200": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans ExtraLight", + "postscriptName": "AlumniSans-ExtraLight", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "300": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Light", + "postscriptName": "AlumniSans-Light", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "500": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Medium", + "postscriptName": "AlumniSans-Medium", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "600": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans SemiBold", + "postscriptName": "AlumniSans-SemiBold", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "700": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Bold", + "postscriptName": "AlumniSans-Bold", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 314, + "subsets": { + "latin": { + "xWidthAvg": 314 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "800": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans ExtraBold", + "postscriptName": "AlumniSans-ExtraBold", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "900": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Black", + "postscriptName": "AlumniSans-Black", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 325, + "subsets": { + "latin": { + "xWidthAvg": 325 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "regular": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Regular", + "postscriptName": "AlumniSans-Regular", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 300, + "subsets": { + "latin": { + "xWidthAvg": 300 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Italic", + "postscriptName": "AlumniSans-Italic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 301, + "subsets": { + "latin": { + "xWidthAvg": 301 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "900italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Black Italic", + "postscriptName": "AlumniSans-BlackItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "800italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans ExtraBold Italic", + "postscriptName": "AlumniSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 322, + "subsets": { + "latin": { + "xWidthAvg": 322 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "700italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Bold Italic", + "postscriptName": "AlumniSans-BoldItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 316, + "subsets": { + "latin": { + "xWidthAvg": 316 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "600italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans SemiBold Italic", + "postscriptName": "AlumniSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 310, + "subsets": { + "latin": { + "xWidthAvg": 310 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "500italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Medium Italic", + "postscriptName": "AlumniSans-MediumItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "300italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Light Italic", + "postscriptName": "AlumniSans-LightItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 297, + "subsets": { + "latin": { + "xWidthAvg": 297 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "200italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans ExtraLight Italic", + "postscriptName": "AlumniSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 294, + "subsets": { + "latin": { + "xWidthAvg": 294 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "100italic": { + "familyName": "Alumni Sans", + "fullName": "Alumni Sans Thin Italic", + "postscriptName": "AlumniSans-ThinItalic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 291, + "subsets": { + "latin": { + "xWidthAvg": 291 + }, + "thai": { + "xWidthAvg": 437 + } + } + } + } + }, + "alumniSansCollegiateOne": { + "familyName": "Alumni Sans Collegiate One", + "fullName": "Alumni Sans Collegiate One Regular", + "postscriptName": "AlumniSansCollegiateOne-Regular", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 538 + } + }, + "variants": { + "regular": { + "familyName": "Alumni Sans Collegiate One", + "fullName": "Alumni Sans Collegiate One Regular", + "postscriptName": "AlumniSansCollegiateOne-Regular", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 538 + } + } + }, + "italic": { + "familyName": "Alumni Sans Collegiate One", + "fullName": "Alumni Sans Collegiate One Italic", + "postscriptName": "AlumniSansCollegiateOne-Italic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 538 + } + } + } + } + }, + "alumniSansInlineOne": { + "familyName": "Alumni Sans Inline One", + "fullName": "Alumni Sans Inline One Regular", + "postscriptName": "AlumniSansInlineOne-Regular", + "category": "display", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 324, + "subsets": { + "latin": { + "xWidthAvg": 324 + }, + "thai": { + "xWidthAvg": 538 + } + }, + "variants": { + "regular": { + "familyName": "Alumni Sans Inline One", + "fullName": "Alumni Sans Inline One Regular", + "postscriptName": "AlumniSansInlineOne-Regular", + "category": "display", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 324, + "subsets": { + "latin": { + "xWidthAvg": 324 + }, + "thai": { + "xWidthAvg": 538 + } + } + }, + "italic": { + "familyName": "Alumni Sans Inline One", + "fullName": "Alumni Sans Inline One Italic", + "postscriptName": "AlumniSansInlineOne-Italic", + "category": "display", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 324, + "subsets": { + "latin": { + "xWidthAvg": 324 + }, + "thai": { + "xWidthAvg": 538 + } + } + } + } + }, + "alumniSansPinstripe": { + "familyName": "Alumni Sans Pinstripe", + "fullName": "Alumni Sans Pinstripe Regular", + "postscriptName": "AlumniSansPinstripe-Regular", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 289, + "subsets": { + "latin": { + "xWidthAvg": 289 + }, + "thai": { + "xWidthAvg": 538 + } + }, + "variants": { + "regular": { + "familyName": "Alumni Sans Pinstripe", + "fullName": "Alumni Sans Pinstripe Regular", + "postscriptName": "AlumniSansPinstripe-Regular", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 289, + "subsets": { + "latin": { + "xWidthAvg": 289 + }, + "thai": { + "xWidthAvg": 538 + } + } + }, + "italic": { + "familyName": "Alumni Sans Pinstripe", + "fullName": "Alumni Sans Pinstripe Italic", + "postscriptName": "AlumniSansPinstripe-Italic", + "category": "sans-serif", + "capHeight": 591, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 291, + "subsets": { + "latin": { + "xWidthAvg": 291 + }, + "thai": { + "xWidthAvg": 538 + } + } + } + } + }, + "amarante": { + "familyName": "Amarante", + "fullName": "Amarante Regular", + "postscriptName": "Amarante-Regular", + "category": "display", + "capHeight": 1530, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1010, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1364 + } + }, + "variants": { + "regular": { + "familyName": "Amarante", + "fullName": "Amarante Regular", + "postscriptName": "Amarante-Regular", + "category": "display", + "capHeight": 1530, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1010, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1364 + } + } + } + } + }, + "amaranth": { + "familyName": "Amaranth", + "fullName": "Amaranth Regular", + "postscriptName": "Amaranth-Regular", + "category": "sans-serif", + "capHeight": 677, + "ascent": 976, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 273 + } + }, + "variants": { + "700": { + "familyName": "Amaranth", + "fullName": "Amaranth Bold", + "postscriptName": "Amaranth-Bold", + "category": "sans-serif", + "capHeight": 677, + "ascent": 976, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 273 + } + } + }, + "regular": { + "familyName": "Amaranth", + "fullName": "Amaranth Regular", + "postscriptName": "Amaranth-Regular", + "category": "sans-serif", + "capHeight": 677, + "ascent": 976, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 273 + } + } + }, + "italic": { + "familyName": "Amaranth", + "fullName": "Amaranth Italic", + "postscriptName": "Amaranth-Italic", + "category": "sans-serif", + "capHeight": 677, + "ascent": 976, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 265 + } + } + }, + "700italic": { + "familyName": "Amaranth", + "fullName": "Amaranth Bold Italic", + "postscriptName": "Amaranth-BoldItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 953, + "descent": -258, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 265 + } + } + } + } + }, + "amaticSC": { + "familyName": "Amatic SC", + "fullName": "Amatic SC Regular", + "postscriptName": "AmaticSC-Regular", + "category": "handwriting", + "capHeight": 754, + "ascent": 1016, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 659, + "xWidthAvg": 287, + "subsets": { + "latin": { + "xWidthAvg": 287 + }, + "thai": { + "xWidthAvg": 365 + } + }, + "variants": { + "700": { + "familyName": "Amatic SC", + "fullName": "Amatic SC Bold", + "postscriptName": "AmaticSC-Bold", + "category": "handwriting", + "capHeight": 758, + "ascent": 1016, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 667, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 365 + } + } + }, + "regular": { + "familyName": "Amatic SC", + "fullName": "Amatic SC Regular", + "postscriptName": "AmaticSC-Regular", + "category": "handwriting", + "capHeight": 754, + "ascent": 1016, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 659, + "xWidthAvg": 287, + "subsets": { + "latin": { + "xWidthAvg": 287 + }, + "thai": { + "xWidthAvg": 365 + } + } + } + } + }, + "amethysta": { + "familyName": "Amethysta", + "fullName": "Amethysta Regular", + "postscriptName": "Amethysta-Regular", + "category": "serif", + "capHeight": 1475, + "ascent": 2022, + "descent": -563, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1004, + "subsets": { + "latin": { + "xWidthAvg": 1004 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Amethysta", + "fullName": "Amethysta Regular", + "postscriptName": "Amethysta-Regular", + "category": "serif", + "capHeight": 1475, + "ascent": 2022, + "descent": -563, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1004, + "subsets": { + "latin": { + "xWidthAvg": 1004 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "amiko": { + "familyName": "Amiko", + "fullName": "Amiko Regular", + "postscriptName": "Amiko-Regular", + "category": "sans-serif", + "capHeight": 696, + "ascent": 928, + "descent": -406, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 770 + } + }, + "variants": { + "600": { + "familyName": "Amiko", + "fullName": "Amiko SemiBold", + "postscriptName": "Amiko-SemiBold", + "category": "sans-serif", + "capHeight": 696, + "ascent": 928, + "descent": -406, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 770 + } + } + }, + "700": { + "familyName": "Amiko", + "fullName": "Amiko Bold", + "postscriptName": "Amiko-Bold", + "category": "sans-serif", + "capHeight": 696, + "ascent": 928, + "descent": -406, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 770 + } + } + }, + "regular": { + "familyName": "Amiko", + "fullName": "Amiko Regular", + "postscriptName": "Amiko-Regular", + "category": "sans-serif", + "capHeight": 696, + "ascent": 928, + "descent": -406, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 770 + } + } + } + } + }, + "amiri": { + "familyName": "Amiri", + "fullName": "Amiri Regular", + "postscriptName": "Amiri-Regular", + "category": "serif", + "capHeight": 646, + "ascent": 1124, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "700": { + "familyName": "Amiri", + "fullName": "Amiri Bold", + "postscriptName": "Amiri-Bold", + "category": "serif", + "capHeight": 646, + "ascent": 1124, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "regular": { + "familyName": "Amiri", + "fullName": "Amiri Regular", + "postscriptName": "Amiri-Regular", + "category": "serif", + "capHeight": 646, + "ascent": 1124, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "italic": { + "familyName": "Amiri", + "fullName": "Amiri Italic", + "postscriptName": "Amiri-Italic", + "category": "serif", + "capHeight": 646, + "ascent": 1124, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "700italic": { + "familyName": "Amiri", + "fullName": "Amiri Bold Italic", + "postscriptName": "Amiri-BoldItalic", + "category": "serif", + "capHeight": 646, + "ascent": 1124, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "amiriQuran": { + "familyName": "Amiri Quran", + "fullName": "Amiri Quran Regular", + "postscriptName": "AmiriQuran-Regular", + "category": "serif", + "capHeight": 646, + "ascent": 1815, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "regular": { + "familyName": "Amiri Quran", + "fullName": "Amiri Quran Regular", + "postscriptName": "AmiriQuran-Regular", + "category": "serif", + "capHeight": 646, + "ascent": 1815, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "amita": { + "familyName": "Amita", + "fullName": "Amita Regular", + "postscriptName": "Amita-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 1292, + "descent": -650, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 215 + } + }, + "variants": { + "700": { + "familyName": "Amita", + "fullName": "Amita Bold", + "postscriptName": "Amita-Bold", + "category": "handwriting", + "capHeight": 720, + "ascent": 1292, + "descent": -650, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 215 + } + } + }, + "regular": { + "familyName": "Amita", + "fullName": "Amita Regular", + "postscriptName": "Amita-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 1292, + "descent": -650, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 215 + } + } + } + } + }, + "anaheim": { + "familyName": "Anaheim", + "fullName": "Anaheim Regular", + "postscriptName": "Anaheim-Regular", + "category": "sans-serif", + "capHeight": 1284, + "ascent": 1968, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 985, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 1055 + } + }, + "variants": { + "500": { + "familyName": "Anaheim", + "fullName": "Anaheim Medium", + "postscriptName": "Anaheim-Medium", + "category": "sans-serif", + "capHeight": 1284, + "ascent": 1968, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1035 + } + } + }, + "600": { + "familyName": "Anaheim", + "fullName": "Anaheim SemiBold", + "postscriptName": "Anaheim-SemiBold", + "category": "sans-serif", + "capHeight": 1284, + "ascent": 1968, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 995, + "xWidthAvg": 887, + "subsets": { + "latin": { + "xWidthAvg": 887 + }, + "thai": { + "xWidthAvg": 1014 + } + } + }, + "700": { + "familyName": "Anaheim", + "fullName": "Anaheim Bold", + "postscriptName": "Anaheim-Bold", + "category": "sans-serif", + "capHeight": 1284, + "ascent": 1968, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1005, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 973 + } + } + }, + "800": { + "familyName": "Anaheim", + "fullName": "Anaheim ExtraBold", + "postscriptName": "Anaheim-ExtraBold", + "category": "sans-serif", + "capHeight": 1284, + "ascent": 1968, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1015, + "xWidthAvg": 975, + "subsets": { + "latin": { + "xWidthAvg": 975 + }, + "thai": { + "xWidthAvg": 933 + } + } + }, + "regular": { + "familyName": "Anaheim", + "fullName": "Anaheim Regular", + "postscriptName": "Anaheim-Regular", + "category": "sans-serif", + "capHeight": 1284, + "ascent": 1968, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 985, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 1055 + } + } + } + } + }, + "andadaPro": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Regular", + "postscriptName": "AndadaPro-Regular", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 634 + } + }, + "variants": { + "500": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Medium", + "postscriptName": "AndadaPro-Medium", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "600": { + "familyName": "Andada Pro", + "fullName": "Andada Pro SemiBold", + "postscriptName": "AndadaPro-SemiBold", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 630 + } + } + }, + "700": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Bold", + "postscriptName": "AndadaPro-Bold", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "800": { + "familyName": "Andada Pro", + "fullName": "Andada Pro ExtraBold", + "postscriptName": "AndadaPro-ExtraBold", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 626 + } + } + }, + "regular": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Regular", + "postscriptName": "AndadaPro-Regular", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 634 + } + } + }, + "italic": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Italic", + "postscriptName": "AndadaPro-Italic", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 623 + } + } + }, + "800italic": { + "familyName": "Andada Pro", + "fullName": "Andada Pro ExtraBold Italic", + "postscriptName": "AndadaPro-ExtraBoldItalic", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 619 + } + } + }, + "700italic": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Bold Italic", + "postscriptName": "AndadaPro-BoldItalic", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "600italic": { + "familyName": "Andada Pro", + "fullName": "Andada Pro SemiBold Italic", + "postscriptName": "AndadaPro-SemiBoldItalic", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 621 + } + } + }, + "500italic": { + "familyName": "Andada Pro", + "fullName": "Andada Pro Medium Italic", + "postscriptName": "AndadaPro-MediumItalic", + "category": "serif", + "capHeight": 705, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 622 + } + } + } + } + }, + "andika": { + "familyName": "Andika", + "fullName": "Andika", + "postscriptName": "Andika", + "category": "sans-serif", + "capHeight": 1485, + "ascent": 2500, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 958, + "subsets": { + "latin": { + "xWidthAvg": 958 + }, + "thai": { + "xWidthAvg": 1400 + } + }, + "variants": { + "700": { + "familyName": "Andika", + "fullName": "Andika Bold", + "postscriptName": "Andika-Bold", + "category": "sans-serif", + "capHeight": 1485, + "ascent": 2500, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 1006, + "subsets": { + "latin": { + "xWidthAvg": 1006 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "regular": { + "familyName": "Andika", + "fullName": "Andika", + "postscriptName": "Andika", + "category": "sans-serif", + "capHeight": 1485, + "ascent": 2500, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 958, + "subsets": { + "latin": { + "xWidthAvg": 958 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "italic": { + "familyName": "Andika", + "fullName": "Andika Italic", + "postscriptName": "Andika-Italic", + "category": "sans-serif", + "capHeight": 1485, + "ascent": 2500, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 946, + "subsets": { + "latin": { + "xWidthAvg": 946 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "700italic": { + "familyName": "Andika", + "fullName": "Andika Bold Italic", + "postscriptName": "Andika-BoldItalic", + "category": "sans-serif", + "capHeight": 1485, + "ascent": 2500, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1400 + } + } + } + } + }, + "anekBangla": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla Regular", + "postscriptName": "AnekBangla-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 829, + "subsets": { + "latin": { + "xWidthAvg": 829 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla Thin", + "postscriptName": "AnekBangla-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 797, + "subsets": { + "latin": { + "xWidthAvg": 797 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla ExtraLight", + "postscriptName": "AnekBangla-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 807, + "subsets": { + "latin": { + "xWidthAvg": 807 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla Light", + "postscriptName": "AnekBangla-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 818, + "subsets": { + "latin": { + "xWidthAvg": 818 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla Medium", + "postscriptName": "AnekBangla-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 837, + "subsets": { + "latin": { + "xWidthAvg": 837 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla SemiBold", + "postscriptName": "AnekBangla-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla Bold", + "postscriptName": "AnekBangla-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla ExtraBold", + "postscriptName": "AnekBangla-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Bangla", + "fullName": "Anek Bangla Regular", + "postscriptName": "AnekBangla-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2500, + "descent": -1232, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 829, + "subsets": { + "latin": { + "xWidthAvg": 829 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekDevanagari": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari Regular", + "postscriptName": "AnekDevanagari-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 839, + "subsets": { + "latin": { + "xWidthAvg": 839 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari Thin", + "postscriptName": "AnekDevanagari-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 804, + "subsets": { + "latin": { + "xWidthAvg": 804 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari ExtraLight", + "postscriptName": "AnekDevanagari-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 816, + "subsets": { + "latin": { + "xWidthAvg": 816 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari Light", + "postscriptName": "AnekDevanagari-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari Medium", + "postscriptName": "AnekDevanagari-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari SemiBold", + "postscriptName": "AnekDevanagari-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 869, + "subsets": { + "latin": { + "xWidthAvg": 869 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari Bold", + "postscriptName": "AnekDevanagari-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 886, + "subsets": { + "latin": { + "xWidthAvg": 886 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari ExtraBold", + "postscriptName": "AnekDevanagari-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Devanagari", + "fullName": "Anek Devanagari Regular", + "postscriptName": "AnekDevanagari-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2026, + "descent": -1385, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 839, + "subsets": { + "latin": { + "xWidthAvg": 839 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekGujarati": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati Regular", + "postscriptName": "AnekGujarati-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati Thin", + "postscriptName": "AnekGujarati-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 802, + "subsets": { + "latin": { + "xWidthAvg": 802 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati ExtraLight", + "postscriptName": "AnekGujarati-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati Light", + "postscriptName": "AnekGujarati-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 825, + "subsets": { + "latin": { + "xWidthAvg": 825 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati Medium", + "postscriptName": "AnekGujarati-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati SemiBold", + "postscriptName": "AnekGujarati-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 866, + "subsets": { + "latin": { + "xWidthAvg": 866 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati Bold", + "postscriptName": "AnekGujarati-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 882, + "subsets": { + "latin": { + "xWidthAvg": 882 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati ExtraBold", + "postscriptName": "AnekGujarati-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Gujarati", + "fullName": "Anek Gujarati Regular", + "postscriptName": "AnekGujarati-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1975, + "descent": -1064, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekGurmukhi": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi Regular", + "postscriptName": "AnekGurmukhi-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 859, + "subsets": { + "latin": { + "xWidthAvg": 859 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi Thin", + "postscriptName": "AnekGurmukhi-Thin", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 825, + "subsets": { + "latin": { + "xWidthAvg": 825 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi ExtraLight", + "postscriptName": "AnekGurmukhi-ExtraLight", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 837, + "subsets": { + "latin": { + "xWidthAvg": 837 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi Light", + "postscriptName": "AnekGurmukhi-Light", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi Medium", + "postscriptName": "AnekGurmukhi-Medium", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi SemiBold", + "postscriptName": "AnekGurmukhi-SemiBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi Bold", + "postscriptName": "AnekGurmukhi-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 905, + "subsets": { + "latin": { + "xWidthAvg": 905 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi ExtraBold", + "postscriptName": "AnekGurmukhi-ExtraBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Gurmukhi", + "fullName": "Anek Gurmukhi Regular", + "postscriptName": "AnekGurmukhi-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 494, + "xWidthAvg": 859, + "subsets": { + "latin": { + "xWidthAvg": 859 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekKannada": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada Regular", + "postscriptName": "AnekKannada-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada Thin", + "postscriptName": "AnekKannada-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 812, + "subsets": { + "latin": { + "xWidthAvg": 812 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada ExtraLight", + "postscriptName": "AnekKannada-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 824, + "subsets": { + "latin": { + "xWidthAvg": 824 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada Light", + "postscriptName": "AnekKannada-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada Medium", + "postscriptName": "AnekKannada-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada SemiBold", + "postscriptName": "AnekKannada-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 878, + "subsets": { + "latin": { + "xWidthAvg": 878 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada Bold", + "postscriptName": "AnekKannada-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada ExtraBold", + "postscriptName": "AnekKannada-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 912, + "subsets": { + "latin": { + "xWidthAvg": 912 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Kannada", + "fullName": "Anek Kannada Regular", + "postscriptName": "AnekKannada-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2030, + "descent": -1310, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekLatin": { + "familyName": "Anek Latin", + "fullName": "Anek Latin Regular", + "postscriptName": "AnekLatin-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Latin", + "fullName": "Anek Latin Thin", + "postscriptName": "AnekLatin-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 806, + "subsets": { + "latin": { + "xWidthAvg": 806 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Latin", + "fullName": "Anek Latin ExtraLight", + "postscriptName": "AnekLatin-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 817, + "subsets": { + "latin": { + "xWidthAvg": 817 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Latin", + "fullName": "Anek Latin Light", + "postscriptName": "AnekLatin-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Latin", + "fullName": "Anek Latin Medium", + "postscriptName": "AnekLatin-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 847, + "subsets": { + "latin": { + "xWidthAvg": 847 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Latin", + "fullName": "Anek Latin SemiBold", + "postscriptName": "AnekLatin-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Latin", + "fullName": "Anek Latin Bold", + "postscriptName": "AnekLatin-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 885, + "subsets": { + "latin": { + "xWidthAvg": 885 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Latin", + "fullName": "Anek Latin ExtraBold", + "postscriptName": "AnekLatin-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 901, + "subsets": { + "latin": { + "xWidthAvg": 901 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Latin", + "fullName": "Anek Latin Regular", + "postscriptName": "AnekLatin-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekMalayalam": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam Regular", + "postscriptName": "AnekMalayalam-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 847, + "subsets": { + "latin": { + "xWidthAvg": 847 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam Thin", + "postscriptName": "AnekMalayalam-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 810, + "subsets": { + "latin": { + "xWidthAvg": 810 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam ExtraLight", + "postscriptName": "AnekMalayalam-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 823, + "subsets": { + "latin": { + "xWidthAvg": 823 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam Light", + "postscriptName": "AnekMalayalam-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 835, + "subsets": { + "latin": { + "xWidthAvg": 835 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam Medium", + "postscriptName": "AnekMalayalam-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam SemiBold", + "postscriptName": "AnekMalayalam-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 879, + "subsets": { + "latin": { + "xWidthAvg": 879 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam Bold", + "postscriptName": "AnekMalayalam-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam ExtraBold", + "postscriptName": "AnekMalayalam-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 914, + "subsets": { + "latin": { + "xWidthAvg": 914 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Malayalam", + "fullName": "Anek Malayalam Regular", + "postscriptName": "AnekMalayalam-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 2035, + "descent": -830, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 847, + "subsets": { + "latin": { + "xWidthAvg": 847 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekOdia": { + "familyName": "Anek Odia", + "fullName": "Anek Odia Regular", + "postscriptName": "AnekOdia-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Odia", + "fullName": "Anek Odia Thin", + "postscriptName": "AnekOdia-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 806, + "subsets": { + "latin": { + "xWidthAvg": 806 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Odia", + "fullName": "Anek Odia ExtraLight", + "postscriptName": "AnekOdia-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 817, + "subsets": { + "latin": { + "xWidthAvg": 817 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Odia", + "fullName": "Anek Odia Light", + "postscriptName": "AnekOdia-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Odia", + "fullName": "Anek Odia Medium", + "postscriptName": "AnekOdia-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 847, + "subsets": { + "latin": { + "xWidthAvg": 847 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Odia", + "fullName": "Anek Odia SemiBold", + "postscriptName": "AnekOdia-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Odia", + "fullName": "Anek Odia Bold", + "postscriptName": "AnekOdia-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 885, + "subsets": { + "latin": { + "xWidthAvg": 885 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Odia", + "fullName": "Anek Odia ExtraBold", + "postscriptName": "AnekOdia-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 901, + "subsets": { + "latin": { + "xWidthAvg": 901 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Odia", + "fullName": "Anek Odia Regular", + "postscriptName": "AnekOdia-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1960, + "descent": -1400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekTamil": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil Regular", + "postscriptName": "AnekTamil-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 859, + "subsets": { + "latin": { + "xWidthAvg": 859 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil Thin", + "postscriptName": "AnekTamil-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 825, + "subsets": { + "latin": { + "xWidthAvg": 825 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil ExtraLight", + "postscriptName": "AnekTamil-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 837, + "subsets": { + "latin": { + "xWidthAvg": 837 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil Light", + "postscriptName": "AnekTamil-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil Medium", + "postscriptName": "AnekTamil-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil SemiBold", + "postscriptName": "AnekTamil-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil Bold", + "postscriptName": "AnekTamil-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 905, + "subsets": { + "latin": { + "xWidthAvg": 905 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil ExtraBold", + "postscriptName": "AnekTamil-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Tamil", + "fullName": "Anek Tamil Regular", + "postscriptName": "AnekTamil-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1963, + "descent": -853, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 859, + "subsets": { + "latin": { + "xWidthAvg": 859 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "anekTelugu": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu Regular", + "postscriptName": "AnekTelugu-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 1160 + } + }, + "variants": { + "100": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu Thin", + "postscriptName": "AnekTelugu-Thin", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 807, + "subsets": { + "latin": { + "xWidthAvg": 807 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "200": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu ExtraLight", + "postscriptName": "AnekTelugu-ExtraLight", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 820, + "subsets": { + "latin": { + "xWidthAvg": 820 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "300": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu Light", + "postscriptName": "AnekTelugu-Light", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 833, + "subsets": { + "latin": { + "xWidthAvg": 833 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "500": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu Medium", + "postscriptName": "AnekTelugu-Medium", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "600": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu SemiBold", + "postscriptName": "AnekTelugu-SemiBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 877, + "subsets": { + "latin": { + "xWidthAvg": 877 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "700": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu Bold", + "postscriptName": "AnekTelugu-Bold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "800": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu ExtraBold", + "postscriptName": "AnekTelugu-ExtraBold", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1160 + } + } + }, + "regular": { + "familyName": "Anek Telugu", + "fullName": "Anek Telugu Regular", + "postscriptName": "AnekTelugu-Regular", + "category": "sans-serif", + "capHeight": 1278, + "ascent": 1800, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 978, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 1160 + } + } + } + } + }, + "angkor": { + "familyName": "Angkor", + "fullName": "Angkor Regular", + "postscriptName": "Angkor-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1180, + "subsets": { + "latin": { + "xWidthAvg": 1180 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Angkor", + "fullName": "Angkor Regular", + "postscriptName": "Angkor-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1180, + "subsets": { + "latin": { + "xWidthAvg": 1180 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "annapurnaSIL": { + "familyName": "Annapurna SIL", + "fullName": "Annapurna SIL", + "postscriptName": "AnnapurnaSIL-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1939, + "descent": -984, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 922 + } + }, + "variants": { + "700": { + "familyName": "Annapurna SIL", + "fullName": "Annapurna SIL Bold", + "postscriptName": "AnnapurnaSIL-Bold", + "category": "serif", + "capHeight": 1434, + "ascent": 1939, + "descent": -984, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 903, + "subsets": { + "latin": { + "xWidthAvg": 903 + }, + "thai": { + "xWidthAvg": 1260 + } + } + }, + "regular": { + "familyName": "Annapurna SIL", + "fullName": "Annapurna SIL", + "postscriptName": "AnnapurnaSIL-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1939, + "descent": -984, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 922 + } + } + } + } + }, + "annieUseYourTelescope": { + "familyName": "Annie Use Your Telescope", + "fullName": "Annie Use Your Telescope Regular", + "postscriptName": "AnnieUseYourTelescope-Regular", + "category": "handwriting", + "capHeight": 730, + "ascent": 1049, + "descent": -419, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 427, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 384 + } + }, + "variants": { + "regular": { + "familyName": "Annie Use Your Telescope", + "fullName": "Annie Use Your Telescope Regular", + "postscriptName": "AnnieUseYourTelescope-Regular", + "category": "handwriting", + "capHeight": 730, + "ascent": 1049, + "descent": -419, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 427, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 384 + } + } + } + } + }, + "anonymousPro": { + "familyName": "Anonymous Pro", + "fullName": "Anonymous Pro Regular", + "postscriptName": "AnonymousPro-Regular", + "category": "monospace", + "capHeight": 1305, + "ascent": 1675, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 932, + "xWidthAvg": 1118, + "subsets": { + "latin": { + "xWidthAvg": 1118 + }, + "thai": { + "xWidthAvg": 1118 + } + }, + "variants": { + "700": { + "familyName": "Anonymous Pro", + "fullName": "Anonymous Pro Bold", + "postscriptName": "AnonymousPro-Bold", + "category": "monospace", + "capHeight": 1305, + "ascent": 1675, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 932, + "xWidthAvg": 1118, + "subsets": { + "latin": { + "xWidthAvg": 1118 + }, + "thai": { + "xWidthAvg": 1118 + } + } + }, + "regular": { + "familyName": "Anonymous Pro", + "fullName": "Anonymous Pro Regular", + "postscriptName": "AnonymousPro-Regular", + "category": "monospace", + "capHeight": 1305, + "ascent": 1675, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 932, + "xWidthAvg": 1118, + "subsets": { + "latin": { + "xWidthAvg": 1118 + }, + "thai": { + "xWidthAvg": 1118 + } + } + }, + "italic": { + "familyName": "Anonymous Pro", + "fullName": "Anonymous Pro Italic", + "postscriptName": "AnonymousPro-Italic", + "category": "monospace", + "capHeight": 1305, + "ascent": 1675, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 932, + "xWidthAvg": 1118, + "subsets": { + "latin": { + "xWidthAvg": 1118 + }, + "thai": { + "xWidthAvg": 1118 + } + } + }, + "700italic": { + "familyName": "Anonymous Pro", + "fullName": "Anonymous Pro Bold Italic", + "postscriptName": "AnonymousPro-BoldItalic", + "category": "monospace", + "capHeight": 1305, + "ascent": 1675, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 932, + "xWidthAvg": 1118, + "subsets": { + "latin": { + "xWidthAvg": 1118 + }, + "thai": { + "xWidthAvg": 1118 + } + } + } + } + }, + "anta": { + "familyName": "Anta", + "fullName": "Anta Regular", + "postscriptName": "Anta-Regular", + "category": "sans-serif", + "capHeight": 1422, + "ascent": 1966, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1049, + "xWidthAvg": 970, + "subsets": { + "latin": { + "xWidthAvg": 970 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Anta", + "fullName": "Anta Regular", + "postscriptName": "Anta-Regular", + "category": "sans-serif", + "capHeight": 1422, + "ascent": 1966, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1049, + "xWidthAvg": 970, + "subsets": { + "latin": { + "xWidthAvg": 970 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "antic": { + "familyName": "Antic", + "fullName": "Antic Regular", + "postscriptName": "Antic-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 299 + } + }, + "variants": { + "regular": { + "familyName": "Antic", + "fullName": "Antic Regular", + "postscriptName": "Antic-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 299 + } + } + } + } + }, + "anticDidone": { + "familyName": "Antic Didone", + "fullName": "Antic Didone Regular", + "postscriptName": "AnticDidone-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 299 + } + }, + "variants": { + "regular": { + "familyName": "Antic Didone", + "fullName": "Antic Didone Regular", + "postscriptName": "AnticDidone-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 299 + } + } + } + } + }, + "anticSlab": { + "familyName": "Antic Slab", + "fullName": "Antic Slab Regular", + "postscriptName": "AnticSlab-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 299 + } + }, + "variants": { + "regular": { + "familyName": "Antic Slab", + "fullName": "Antic Slab Regular", + "postscriptName": "AnticSlab-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 299 + } + } + } + } + }, + "anton": { + "familyName": "Anton", + "fullName": "Anton Regular", + "postscriptName": "Anton-Regular", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2409, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1022 + } + }, + "variants": { + "regular": { + "familyName": "Anton", + "fullName": "Anton Regular", + "postscriptName": "Anton-Regular", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2409, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1022 + } + } + } + } + }, + "antonSC": { + "familyName": "Anton SC", + "fullName": "Anton SC Regular", + "postscriptName": "AntonSC-Regular", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2409, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1022 + } + }, + "variants": { + "regular": { + "familyName": "Anton SC", + "fullName": "Anton SC Regular", + "postscriptName": "AntonSC-Regular", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2409, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1022 + } + } + } + } + }, + "antonio": { + "familyName": "Antonio", + "fullName": "Antonio Regular", + "postscriptName": "Antonio-Regular", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 765, + "subsets": { + "latin": { + "xWidthAvg": 765 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Antonio", + "fullName": "Antonio Thin", + "postscriptName": "Antonio-Thin", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 716, + "subsets": { + "latin": { + "xWidthAvg": 716 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "200": { + "familyName": "Antonio", + "fullName": "Antonio ExtraLight", + "postscriptName": "Antonio-ExtraLight", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 730, + "subsets": { + "latin": { + "xWidthAvg": 730 + }, + "thai": { + "xWidthAvg": 1117 + } + } + }, + "300": { + "familyName": "Antonio", + "fullName": "Antonio Light", + "postscriptName": "Antonio-Light", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 744, + "subsets": { + "latin": { + "xWidthAvg": 744 + }, + "thai": { + "xWidthAvg": 1081 + } + } + }, + "500": { + "familyName": "Antonio", + "fullName": "Antonio Medium", + "postscriptName": "Antonio-Medium", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 771, + "subsets": { + "latin": { + "xWidthAvg": 771 + }, + "thai": { + "xWidthAvg": 1030 + } + } + }, + "600": { + "familyName": "Antonio", + "fullName": "Antonio SemiBold", + "postscriptName": "Antonio-SemiBold", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 776, + "subsets": { + "latin": { + "xWidthAvg": 776 + }, + "thai": { + "xWidthAvg": 1037 + } + } + }, + "700": { + "familyName": "Antonio", + "fullName": "Antonio Bold", + "postscriptName": "Antonio-Bold", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 791, + "subsets": { + "latin": { + "xWidthAvg": 791 + }, + "thai": { + "xWidthAvg": 1054 + } + } + }, + "regular": { + "familyName": "Antonio", + "fullName": "Antonio Regular", + "postscriptName": "Antonio-Regular", + "category": "sans-serif", + "capHeight": 1760, + "ascent": 2365, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1500, + "xWidthAvg": 765, + "subsets": { + "latin": { + "xWidthAvg": 765 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "anuphan": { + "familyName": "Anuphan", + "fullName": "Anuphan Regular", + "postscriptName": "Anuphan-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 546 + } + }, + "variants": { + "100": { + "familyName": "Anuphan", + "fullName": "Anuphan Thin", + "postscriptName": "Anuphan-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 519 + } + } + }, + "200": { + "familyName": "Anuphan", + "fullName": "Anuphan ExtraLight", + "postscriptName": "Anuphan-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 567, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "300": { + "familyName": "Anuphan", + "fullName": "Anuphan Light", + "postscriptName": "Anuphan-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 569, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "500": { + "familyName": "Anuphan", + "fullName": "Anuphan Medium", + "postscriptName": "Anuphan-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 557 + } + } + }, + "600": { + "familyName": "Anuphan", + "fullName": "Anuphan SemiBold", + "postscriptName": "Anuphan-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 573, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "700": { + "familyName": "Anuphan", + "fullName": "Anuphan Bold", + "postscriptName": "Anuphan-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 578 + } + } + }, + "regular": { + "familyName": "Anuphan", + "fullName": "Anuphan Regular", + "postscriptName": "Anuphan-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 546 + } + } + } + } + }, + "anybody": { + "familyName": "Anybody", + "fullName": "Anybody Regular", + "postscriptName": "Anybody-Regular", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 591 + } + }, + "variants": { + "100": { + "familyName": "Anybody", + "fullName": "Anybody Thin", + "postscriptName": "Anybody-Thin", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 829, + "subsets": { + "latin": { + "xWidthAvg": 829 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "200": { + "familyName": "Anybody", + "fullName": "Anybody ExtraLight", + "postscriptName": "Anybody-ExtraLight", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 881, + "subsets": { + "latin": { + "xWidthAvg": 881 + }, + "thai": { + "xWidthAvg": 604 + } + } + }, + "300": { + "familyName": "Anybody", + "fullName": "Anybody Light", + "postscriptName": "Anybody-Light", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "500": { + "familyName": "Anybody", + "fullName": "Anybody Medium", + "postscriptName": "Anybody-Medium", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1017, + "subsets": { + "latin": { + "xWidthAvg": 1017 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "600": { + "familyName": "Anybody", + "fullName": "Anybody SemiBold", + "postscriptName": "Anybody-SemiBold", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1051, + "subsets": { + "latin": { + "xWidthAvg": 1051 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "700": { + "familyName": "Anybody", + "fullName": "Anybody Bold", + "postscriptName": "Anybody-Bold", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1098, + "subsets": { + "latin": { + "xWidthAvg": 1098 + }, + "thai": { + "xWidthAvg": 577 + } + } + }, + "800": { + "familyName": "Anybody", + "fullName": "Anybody ExtraBold", + "postscriptName": "Anybody-ExtraBold", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "900": { + "familyName": "Anybody", + "fullName": "Anybody Black", + "postscriptName": "Anybody-Black", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1197, + "subsets": { + "latin": { + "xWidthAvg": 1197 + }, + "thai": { + "xWidthAvg": 565 + } + } + }, + "regular": { + "familyName": "Anybody", + "fullName": "Anybody Regular", + "postscriptName": "Anybody-Regular", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "italic": { + "familyName": "Anybody", + "fullName": "Anybody Italic", + "postscriptName": "Anybody-Italic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 982, + "subsets": { + "latin": { + "xWidthAvg": 982 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "900italic": { + "familyName": "Anybody", + "fullName": "Anybody Black Italic", + "postscriptName": "Anybody-BlackItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1197, + "subsets": { + "latin": { + "xWidthAvg": 1197 + }, + "thai": { + "xWidthAvg": 565 + } + } + }, + "800italic": { + "familyName": "Anybody", + "fullName": "Anybody ExtraBold Italic", + "postscriptName": "Anybody-ExtraBoldItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "700italic": { + "familyName": "Anybody", + "fullName": "Anybody Bold Italic", + "postscriptName": "Anybody-BoldItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1098, + "subsets": { + "latin": { + "xWidthAvg": 1098 + }, + "thai": { + "xWidthAvg": 577 + } + } + }, + "600italic": { + "familyName": "Anybody", + "fullName": "Anybody SemiBold Italic", + "postscriptName": "Anybody-SemiBoldItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1050, + "subsets": { + "latin": { + "xWidthAvg": 1050 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "500italic": { + "familyName": "Anybody", + "fullName": "Anybody Medium Italic", + "postscriptName": "Anybody-MediumItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 1017, + "subsets": { + "latin": { + "xWidthAvg": 1017 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "300italic": { + "familyName": "Anybody", + "fullName": "Anybody Light Italic", + "postscriptName": "Anybody-LightItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "200italic": { + "familyName": "Anybody", + "fullName": "Anybody ExtraLight Italic", + "postscriptName": "Anybody-ExtraLightItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 881, + "subsets": { + "latin": { + "xWidthAvg": 881 + }, + "thai": { + "xWidthAvg": 604 + } + } + }, + "100italic": { + "familyName": "Anybody", + "fullName": "Anybody Thin Italic", + "postscriptName": "Anybody-ThinItalic", + "category": "display", + "capHeight": 1350, + "ascent": 1590, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1186, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 610 + } + } + } + } + }, + "aoboshiOne": { + "familyName": "Aoboshi One", + "fullName": "Aoboshi One Regular", + "postscriptName": "AoboshiOne-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Aoboshi One", + "fullName": "Aoboshi One Regular", + "postscriptName": "AoboshiOne-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "appleSystem": { + "familyName": "-apple-system", + "fullName": "System Font", + "postscriptName": ".SFNS-Regular", + "category": "sans-serif", + "capHeight": 1443, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "-apple-system", + "fullName": "System Font", + "postscriptName": ".SFNS-Regular", + "category": "sans-serif", + "capHeight": 1443, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "italic": { + "familyName": "-apple-system", + "fullName": "System Font Regular Italic", + "postscriptName": ".SFNS-RegularItalic", + "category": "sans-serif", + "capHeight": 1443, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "arapey": { + "familyName": "Arapey", + "fullName": "Arapey Regular", + "postscriptName": "Arapey-Regular", + "category": "serif", + "capHeight": 639, + "ascent": 868, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Arapey", + "fullName": "Arapey Regular", + "postscriptName": "Arapey-Regular", + "category": "serif", + "capHeight": 639, + "ascent": 868, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 250 + } + } + }, + "italic": { + "familyName": "Arapey", + "fullName": "Arapey Italic", + "postscriptName": "Arapey-Italic", + "category": "serif", + "capHeight": 639, + "ascent": 868, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 432, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "arbutus": { + "familyName": "Arbutus", + "fullName": "Arbutus Regular", + "postscriptName": "Arbutus-Regular", + "category": "serif", + "capHeight": 103, + "ascent": 2010, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 234, + "xWidthAvg": 1302, + "subsets": { + "latin": { + "xWidthAvg": 1302 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Arbutus", + "fullName": "Arbutus Regular", + "postscriptName": "Arbutus-Regular", + "category": "serif", + "capHeight": 103, + "ascent": 2010, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 234, + "xWidthAvg": 1302, + "subsets": { + "latin": { + "xWidthAvg": 1302 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "arbutusSlab": { + "familyName": "Arbutus Slab", + "fullName": "Arbutus Slab Regular", + "postscriptName": "ArbutusSlab-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2010, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1014, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 2037 + } + }, + "variants": { + "regular": { + "familyName": "Arbutus Slab", + "fullName": "Arbutus Slab Regular", + "postscriptName": "ArbutusSlab-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2010, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1014, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 2037 + } + } + } + } + }, + "architectsDaughter": { + "familyName": "Architects Daughter", + "fullName": "Architects Daughter Regular", + "postscriptName": "ArchitectsDaughter-Regular", + "category": "handwriting", + "capHeight": 675, + "ascent": 1010, + "descent": -413, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 439, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 692 + } + }, + "variants": { + "regular": { + "familyName": "Architects Daughter", + "fullName": "Architects Daughter Regular", + "postscriptName": "ArchitectsDaughter-Regular", + "category": "handwriting", + "capHeight": 675, + "ascent": 1010, + "descent": -413, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 439, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 692 + } + } + } + } + }, + "archivo": { + "familyName": "Archivo", + "fullName": "Archivo Regular", + "postscriptName": "Archivo-Regular", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 672 + } + }, + "variants": { + "100": { + "familyName": "Archivo", + "fullName": "Archivo Thin", + "postscriptName": "Archivo-Thin", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "200": { + "familyName": "Archivo", + "fullName": "Archivo ExtraLight", + "postscriptName": "Archivo-ExtraLight", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 690 + } + } + }, + "300": { + "familyName": "Archivo", + "fullName": "Archivo Light", + "postscriptName": "Archivo-Light", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 682 + } + } + }, + "500": { + "familyName": "Archivo", + "fullName": "Archivo Medium", + "postscriptName": "Archivo-Medium", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "600": { + "familyName": "Archivo", + "fullName": "Archivo SemiBold", + "postscriptName": "Archivo-SemiBold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "700": { + "familyName": "Archivo", + "fullName": "Archivo Bold", + "postscriptName": "Archivo-Bold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 651 + } + } + }, + "800": { + "familyName": "Archivo", + "fullName": "Archivo ExtraBold", + "postscriptName": "Archivo-ExtraBold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 650 + } + } + }, + "900": { + "familyName": "Archivo", + "fullName": "Archivo Black", + "postscriptName": "Archivo-Black", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "regular": { + "familyName": "Archivo", + "fullName": "Archivo Regular", + "postscriptName": "Archivo-Regular", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 672 + } + } + }, + "italic": { + "familyName": "Archivo", + "fullName": "Archivo Italic", + "postscriptName": "Archivo-Italic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 672 + } + } + }, + "900italic": { + "familyName": "Archivo", + "fullName": "Archivo Black Italic", + "postscriptName": "Archivo-BlackItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "800italic": { + "familyName": "Archivo", + "fullName": "Archivo ExtraBold Italic", + "postscriptName": "Archivo-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 650 + } + } + }, + "700italic": { + "familyName": "Archivo", + "fullName": "Archivo Bold Italic", + "postscriptName": "Archivo-BoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 651 + } + } + }, + "600italic": { + "familyName": "Archivo", + "fullName": "Archivo SemiBold Italic", + "postscriptName": "Archivo-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "500italic": { + "familyName": "Archivo", + "fullName": "Archivo Medium Italic", + "postscriptName": "Archivo-MediumItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "300italic": { + "familyName": "Archivo", + "fullName": "Archivo Light Italic", + "postscriptName": "Archivo-LightItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 682 + } + } + }, + "200italic": { + "familyName": "Archivo", + "fullName": "Archivo ExtraLight Italic", + "postscriptName": "Archivo-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 690 + } + } + }, + "100italic": { + "familyName": "Archivo", + "fullName": "Archivo Thin Italic", + "postscriptName": "Archivo-ThinItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 696 + } + } + } + } + }, + "archivoBlack": { + "familyName": "Archivo Black", + "fullName": "Archivo Black Regular", + "postscriptName": "ArchivoBlack-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 553, + "subsets": { + "latin": { + "xWidthAvg": 553 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "Archivo Black", + "fullName": "Archivo Black Regular", + "postscriptName": "ArchivoBlack-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 878, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 553, + "subsets": { + "latin": { + "xWidthAvg": 553 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "archivoNarrow": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Regular", + "postscriptName": "ArchivoNarrow-Regular", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Medium", + "postscriptName": "ArchivoNarrow-Medium", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow SemiBold", + "postscriptName": "ArchivoNarrow-SemiBold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Bold", + "postscriptName": "ArchivoNarrow-Bold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Regular", + "postscriptName": "ArchivoNarrow-Regular", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Italic", + "postscriptName": "ArchivoNarrow-Italic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Bold Italic", + "postscriptName": "ArchivoNarrow-BoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow SemiBold Italic", + "postscriptName": "ArchivoNarrow-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Archivo Narrow", + "fullName": "Archivo Narrow Medium Italic", + "postscriptName": "ArchivoNarrow-MediumItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 1035, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "areYouSerious": { + "familyName": "Are You Serious", + "fullName": "Are You Serious Regular", + "postscriptName": "AreYouSerious-Regular", + "category": "handwriting", + "capHeight": 660, + "ascent": 880, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 449 + } + }, + "variants": { + "regular": { + "familyName": "Are You Serious", + "fullName": "Are You Serious Regular", + "postscriptName": "AreYouSerious-Regular", + "category": "handwriting", + "capHeight": 660, + "ascent": 880, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 449 + } + } + } + } + }, + "arefRuqaa": { + "familyName": "Aref Ruqaa", + "fullName": "Aref Ruqaa Regular", + "postscriptName": "ArefRuqaa-Regular", + "category": "serif", + "capHeight": 683, + "ascent": 1221, + "descent": -244, + "lineGap": 98, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Aref Ruqaa", + "fullName": "Aref Ruqaa Bold", + "postscriptName": "ArefRuqaa-Bold", + "category": "serif", + "capHeight": 692, + "ascent": 1221, + "descent": -244, + "lineGap": 98, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Aref Ruqaa", + "fullName": "Aref Ruqaa Regular", + "postscriptName": "ArefRuqaa-Regular", + "category": "serif", + "capHeight": 683, + "ascent": 1221, + "descent": -244, + "lineGap": 98, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "arefRuqaaInk": { + "familyName": "Aref Ruqaa Ink", + "fullName": "Aref Ruqaa Ink Regular", + "postscriptName": "ArefRuqaaInk-Regular", + "category": "serif", + "capHeight": 683, + "ascent": 1221, + "descent": -244, + "lineGap": 98, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Aref Ruqaa Ink", + "fullName": "Aref Ruqaa Ink Bold", + "postscriptName": "ArefRuqaaInk-Bold", + "category": "serif", + "capHeight": 692, + "ascent": 1221, + "descent": -244, + "lineGap": 98, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Aref Ruqaa Ink", + "fullName": "Aref Ruqaa Ink Regular", + "postscriptName": "ArefRuqaaInk-Regular", + "category": "serif", + "capHeight": 683, + "ascent": 1221, + "descent": -244, + "lineGap": 98, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "arial": { + "familyName": "Arial", + "fullName": "Arial", + "postscriptName": "ArialMT", + "category": "sans-serif", + "capHeight": 1467, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "700": { + "familyName": "Arial", + "fullName": "Arial Bold", + "postscriptName": "Arial-BoldMT", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "regular": { + "familyName": "Arial", + "fullName": "Arial", + "postscriptName": "ArialMT", + "category": "sans-serif", + "capHeight": 1467, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "italic": { + "familyName": "Arial", + "fullName": "Arial Italic", + "postscriptName": "Arial-ItalicMT", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "700italic": { + "familyName": "Arial", + "fullName": "Arial Bold Italic", + "postscriptName": "Arial-BoldItalicMT", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "arima": { + "familyName": "Arima", + "fullName": "Arima Regular", + "postscriptName": "Arima-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Arima", + "fullName": "Arima Thin", + "postscriptName": "Arima-Thin", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Arima", + "fullName": "Arima ExtraLight", + "postscriptName": "Arima-ExtraLight", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Arima", + "fullName": "Arima Light", + "postscriptName": "Arima-Light", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Arima", + "fullName": "Arima Medium", + "postscriptName": "Arima-Medium", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Arima", + "fullName": "Arima SemiBold", + "postscriptName": "Arima-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Arima", + "fullName": "Arima Bold", + "postscriptName": "Arima-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Arima", + "fullName": "Arima Regular", + "postscriptName": "Arima-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1073, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "arimo": { + "familyName": "Arimo", + "fullName": "Arimo Regular", + "postscriptName": "Arimo-Regular", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "500": { + "familyName": "Arimo", + "fullName": "Arimo Medium", + "postscriptName": "Arimo-Medium", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "600": { + "familyName": "Arimo", + "fullName": "Arimo SemiBold", + "postscriptName": "Arimo-SemiBold", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "700": { + "familyName": "Arimo", + "fullName": "Arimo Bold", + "postscriptName": "Arimo-Bold", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "regular": { + "familyName": "Arimo", + "fullName": "Arimo Regular", + "postscriptName": "Arimo-Regular", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "italic": { + "familyName": "Arimo", + "fullName": "Arimo Italic", + "postscriptName": "Arimo-Italic", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "700italic": { + "familyName": "Arimo", + "fullName": "Arimo Bold Italic", + "postscriptName": "Arimo-BoldItalic", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "600italic": { + "familyName": "Arimo", + "fullName": "Arimo SemiBold Italic", + "postscriptName": "Arimo-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "500italic": { + "familyName": "Arimo", + "fullName": "Arimo Medium Italic", + "postscriptName": "Arimo-MediumItalic", + "category": "sans-serif", + "capHeight": 1409, + "ascent": 1854, + "descent": -434, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "arizonia": { + "familyName": "Arizonia", + "fullName": "Arizonia Regular", + "postscriptName": "Arizonia-Regular", + "category": "handwriting", + "capHeight": 660, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 437 + } + }, + "variants": { + "regular": { + "familyName": "Arizonia", + "fullName": "Arizonia Regular", + "postscriptName": "Arizonia-Regular", + "category": "handwriting", + "capHeight": 660, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 437 + } + } + } + } + }, + "armata": { + "familyName": "Armata", + "fullName": "Armata Regular", + "postscriptName": "Armata-Regular", + "category": "sans-serif", + "capHeight": 1530, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1190, + "xWidthAvg": 1079, + "subsets": { + "latin": { + "xWidthAvg": 1079 + }, + "thai": { + "xWidthAvg": 1534 + } + }, + "variants": { + "regular": { + "familyName": "Armata", + "fullName": "Armata Regular", + "postscriptName": "Armata-Regular", + "category": "sans-serif", + "capHeight": 1530, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1190, + "xWidthAvg": 1079, + "subsets": { + "latin": { + "xWidthAvg": 1079 + }, + "thai": { + "xWidthAvg": 1534 + } + } + } + } + }, + "arsenal": { + "familyName": "Arsenal", + "fullName": "Arsenal Regular", + "postscriptName": "Arsenal-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 632 + } + }, + "variants": { + "700": { + "familyName": "Arsenal", + "fullName": "Arsenal Bold", + "postscriptName": "Arsenal-Bold", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "regular": { + "familyName": "Arsenal", + "fullName": "Arsenal Regular", + "postscriptName": "Arsenal-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "italic": { + "familyName": "Arsenal", + "fullName": "Arsenal Italic", + "postscriptName": "Arsenal-Italic", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "700italic": { + "familyName": "Arsenal", + "fullName": "Arsenal Bold Italic", + "postscriptName": "Arsenal-BoldItalic", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 619 + } + } + } + } + }, + "arsenalSC": { + "familyName": "Arsenal SC", + "fullName": "Arsenal SC Regular", + "postscriptName": "ArsenalSC-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 632 + } + }, + "variants": { + "700": { + "familyName": "Arsenal SC", + "fullName": "Arsenal SC Bold", + "postscriptName": "ArsenalSC-Bold", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "regular": { + "familyName": "Arsenal SC", + "fullName": "Arsenal SC Regular", + "postscriptName": "ArsenalSC-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "italic": { + "familyName": "Arsenal SC", + "fullName": "Arsenal SC Italic", + "postscriptName": "ArsenalSC-Italic", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "700italic": { + "familyName": "Arsenal SC", + "fullName": "Arsenal SC Bold Italic", + "postscriptName": "ArsenalSC-BoldItalic", + "category": "sans-serif", + "capHeight": 650, + "ascent": 1000, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 619 + } + } + } + } + }, + "artifika": { + "familyName": "Artifika", + "fullName": "Artifika Regular", + "postscriptName": "Artifika-Regular", + "category": "serif", + "capHeight": 1433, + "ascent": 1984, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1045, + "xWidthAvg": 1075, + "subsets": { + "latin": { + "xWidthAvg": 1075 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Artifika", + "fullName": "Artifika Regular", + "postscriptName": "Artifika-Regular", + "category": "serif", + "capHeight": 1433, + "ascent": 1984, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1045, + "xWidthAvg": 1075, + "subsets": { + "latin": { + "xWidthAvg": 1075 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "arvo": { + "familyName": "Arvo", + "fullName": "Arvo", + "postscriptName": "Arvo", + "category": "serif", + "capHeight": 1516, + "ascent": 1968, + "descent": -506, + "lineGap": 55, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1000, + "subsets": { + "latin": { + "xWidthAvg": 1000 + }, + "thai": { + "xWidthAvg": 1141 + } + }, + "variants": { + "700": { + "familyName": "Arvo", + "fullName": "Arvo Bold", + "postscriptName": "Arvo-Bold", + "category": "serif", + "capHeight": 1516, + "ascent": 1968, + "descent": -506, + "lineGap": 55, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 1141 + } + } + }, + "regular": { + "familyName": "Arvo", + "fullName": "Arvo", + "postscriptName": "Arvo", + "category": "serif", + "capHeight": 1516, + "ascent": 1968, + "descent": -506, + "lineGap": 55, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1000, + "subsets": { + "latin": { + "xWidthAvg": 1000 + }, + "thai": { + "xWidthAvg": 1141 + } + } + }, + "italic": { + "familyName": "Arvo", + "fullName": "Arvo-Italic", + "postscriptName": "Arvo-Italic", + "category": "serif", + "capHeight": 1516, + "ascent": 1968, + "descent": -506, + "lineGap": 55, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1033, + "subsets": { + "latin": { + "xWidthAvg": 1033 + }, + "thai": { + "xWidthAvg": 1223 + } + } + }, + "700italic": { + "familyName": "Arvo", + "fullName": "Arvo Bold Italic", + "postscriptName": "Arvo-BoldItalic", + "category": "serif", + "capHeight": 1516, + "ascent": 1968, + "descent": -506, + "lineGap": 55, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1072, + "subsets": { + "latin": { + "xWidthAvg": 1072 + }, + "thai": { + "xWidthAvg": 1305 + } + } + } + } + }, + "arya": { + "familyName": "Arya", + "fullName": "Arya Regular", + "postscriptName": "Arya-Regular", + "category": "sans-serif", + "capHeight": 579, + "ascent": 1265, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 392, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 385 + } + }, + "variants": { + "700": { + "familyName": "Arya", + "fullName": "Arya Bold", + "postscriptName": "Arya-Bold", + "category": "sans-serif", + "capHeight": 579, + "ascent": 1265, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 392, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 493 + } + } + }, + "regular": { + "familyName": "Arya", + "fullName": "Arya Regular", + "postscriptName": "Arya-Regular", + "category": "sans-serif", + "capHeight": 579, + "ascent": 1265, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 392, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 385 + } + } + } + } + }, + "asap": { + "familyName": "Asap", + "fullName": "Asap Regular", + "postscriptName": "Asap-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + }, + "variants": { + "100": { + "familyName": "Asap", + "fullName": "Asap Thin", + "postscriptName": "Asap-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "200": { + "familyName": "Asap", + "fullName": "Asap ExtraLight", + "postscriptName": "Asap-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "300": { + "familyName": "Asap", + "fullName": "Asap Light", + "postscriptName": "Asap-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "500": { + "familyName": "Asap", + "fullName": "Asap Medium", + "postscriptName": "Asap-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "600": { + "familyName": "Asap", + "fullName": "Asap SemiBold", + "postscriptName": "Asap-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "700": { + "familyName": "Asap", + "fullName": "Asap Bold", + "postscriptName": "Asap-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "800": { + "familyName": "Asap", + "fullName": "Asap ExtraBold", + "postscriptName": "Asap-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "900": { + "familyName": "Asap", + "fullName": "Asap Black", + "postscriptName": "Asap-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "regular": { + "familyName": "Asap", + "fullName": "Asap Regular", + "postscriptName": "Asap-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "italic": { + "familyName": "Asap", + "fullName": "Asap Italic", + "postscriptName": "Asap-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "900italic": { + "familyName": "Asap", + "fullName": "Asap Black Italic", + "postscriptName": "Asap-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "800italic": { + "familyName": "Asap", + "fullName": "Asap ExtraBold Italic", + "postscriptName": "Asap-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "700italic": { + "familyName": "Asap", + "fullName": "Asap Bold Italic", + "postscriptName": "Asap-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "600italic": { + "familyName": "Asap", + "fullName": "Asap SemiBold Italic", + "postscriptName": "Asap-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "500italic": { + "familyName": "Asap", + "fullName": "Asap Medium Italic", + "postscriptName": "Asap-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "300italic": { + "familyName": "Asap", + "fullName": "Asap Light Italic", + "postscriptName": "Asap-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "200italic": { + "familyName": "Asap", + "fullName": "Asap ExtraLight Italic", + "postscriptName": "Asap-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "100italic": { + "familyName": "Asap", + "fullName": "Asap Thin Italic", + "postscriptName": "Asap-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 545 + } + } + } + } + }, + "asapCondensed": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Regular", + "postscriptName": "AsapCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + }, + "variants": { + "200": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed ExtraLight", + "postscriptName": "AsapCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "300": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Light", + "postscriptName": "AsapCondensed-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "500": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Medium", + "postscriptName": "AsapCondensed-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "600": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed SemiBold", + "postscriptName": "AsapCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "700": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Bold", + "postscriptName": "AsapCondensed-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "800": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed ExtraBold", + "postscriptName": "AsapCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "900": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Black", + "postscriptName": "AsapCondensed-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "regular": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Regular", + "postscriptName": "AsapCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Italic", + "postscriptName": "AsapCondensed-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "900italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Black Italic", + "postscriptName": "AsapCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "800italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed ExtraBold Italic", + "postscriptName": "AsapCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "700italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Bold Italic", + "postscriptName": "AsapCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "600italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed SemiBold Italic", + "postscriptName": "AsapCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "500italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Medium Italic", + "postscriptName": "AsapCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "300italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed Light Italic", + "postscriptName": "AsapCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "200italic": { + "familyName": "Asap Condensed", + "fullName": "Asap Condensed ExtraLight Italic", + "postscriptName": "AsapCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 934, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 545 + } + } + } + } + }, + "asar": { + "familyName": "Asar", + "fullName": "Asar Regular", + "postscriptName": "Asar-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 1196, + "descent": -557, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 864 + } + }, + "variants": { + "regular": { + "familyName": "Asar", + "fullName": "Asar Regular", + "postscriptName": "Asar-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 1196, + "descent": -557, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 864 + } + } + } + } + }, + "asset": { + "familyName": "Asset", + "fullName": "Asset Regular", + "postscriptName": "Asset-Regular", + "category": "display", + "capHeight": 1291, + "ascent": 1971, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1047, + "xWidthAvg": 2298, + "subsets": { + "latin": { + "xWidthAvg": 2298 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Asset", + "fullName": "Asset Regular", + "postscriptName": "Asset-Regular", + "category": "display", + "capHeight": 1291, + "ascent": 1971, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1047, + "xWidthAvg": 2298, + "subsets": { + "latin": { + "xWidthAvg": 2298 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "assistant": { + "familyName": "Assistant", + "fullName": "Assistant Regular", + "postscriptName": "Assistant-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 648 + } + }, + "variants": { + "200": { + "familyName": "Assistant", + "fullName": "Assistant ExtraLight", + "postscriptName": "Assistant-ExtraLight", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 624 + } + } + }, + "300": { + "familyName": "Assistant", + "fullName": "Assistant Light", + "postscriptName": "Assistant-Light", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "500": { + "familyName": "Assistant", + "fullName": "Assistant Medium", + "postscriptName": "Assistant-Medium", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "600": { + "familyName": "Assistant", + "fullName": "Assistant SemiBold", + "postscriptName": "Assistant-SemiBold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "700": { + "familyName": "Assistant", + "fullName": "Assistant Bold", + "postscriptName": "Assistant-Bold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "800": { + "familyName": "Assistant", + "fullName": "Assistant ExtraBold", + "postscriptName": "Assistant-ExtraBold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 704 + } + } + }, + "regular": { + "familyName": "Assistant", + "fullName": "Assistant Regular", + "postscriptName": "Assistant-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1021, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 648 + } + } + } + } + }, + "astloch": { + "familyName": "Astloch", + "fullName": "Astloch Regular", + "postscriptName": "Astloch-Regular", + "category": "display", + "capHeight": 1567, + "ascent": 1948, + "descent": -526, + "lineGap": 53, + "unitsPerEm": 2048, + "xHeight": 1200, + "xWidthAvg": 704, + "subsets": { + "latin": { + "xWidthAvg": 704 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Astloch", + "fullName": "Astloch Bold", + "postscriptName": "Astloch-Bold", + "category": "display", + "capHeight": 1568, + "ascent": 1948, + "descent": -526, + "lineGap": 53, + "unitsPerEm": 2048, + "xHeight": 1200, + "xWidthAvg": 730, + "subsets": { + "latin": { + "xWidthAvg": 730 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Astloch", + "fullName": "Astloch Regular", + "postscriptName": "Astloch-Regular", + "category": "display", + "capHeight": 1567, + "ascent": 1948, + "descent": -526, + "lineGap": 53, + "unitsPerEm": 2048, + "xHeight": 1200, + "xWidthAvg": 704, + "subsets": { + "latin": { + "xWidthAvg": 704 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "asul": { + "familyName": "Asul", + "fullName": "Asul Regular", + "postscriptName": "Asul-Regular", + "category": "sans-serif", + "capHeight": 703, + "ascent": 949, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 225 + } + }, + "variants": { + "700": { + "familyName": "Asul", + "fullName": "Asul Bold", + "postscriptName": "Asul-Bold", + "category": "sans-serif", + "capHeight": 703, + "ascent": 949, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 245 + } + } + }, + "regular": { + "familyName": "Asul", + "fullName": "Asul Regular", + "postscriptName": "Asul-Regular", + "category": "sans-serif", + "capHeight": 703, + "ascent": 949, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 225 + } + } + } + } + }, + "athiti": { + "familyName": "Athiti", + "fullName": "Athiti-Regular", + "postscriptName": "Athiti-Regular", + "category": "sans-serif", + "capHeight": 614, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 505 + } + }, + "variants": { + "200": { + "familyName": "Athiti", + "fullName": "Athiti-ExtraLight", + "postscriptName": "Athiti-ExtraLight", + "category": "sans-serif", + "capHeight": 610, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 464, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "300": { + "familyName": "Athiti", + "fullName": "Athiti-Light", + "postscriptName": "Athiti-Light", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 499 + } + } + }, + "500": { + "familyName": "Athiti", + "fullName": "Athiti-Medium", + "postscriptName": "Athiti-Medium", + "category": "sans-serif", + "capHeight": 616, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "600": { + "familyName": "Athiti", + "fullName": "Athiti-SemiBold", + "postscriptName": "Athiti-SemiBold", + "category": "sans-serif", + "capHeight": 618, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "700": { + "familyName": "Athiti", + "fullName": "Athiti Bold", + "postscriptName": "Athiti-Bold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 561 + } + } + }, + "regular": { + "familyName": "Athiti", + "fullName": "Athiti-Regular", + "postscriptName": "Athiti-Regular", + "category": "sans-serif", + "capHeight": 614, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 505 + } + } + } + } + }, + "atkinsonHyperlegible": { + "familyName": "Atkinson Hyperlegible", + "fullName": "Atkinson Hyperlegible Regular", + "postscriptName": "AtkinsonHyperlegible-Regular", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "700": { + "familyName": "Atkinson Hyperlegible", + "fullName": "Atkinson Hyperlegible Bold", + "postscriptName": "AtkinsonHyperlegible-Bold", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Atkinson Hyperlegible", + "fullName": "Atkinson Hyperlegible Regular", + "postscriptName": "AtkinsonHyperlegible-Regular", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "italic": { + "familyName": "Atkinson Hyperlegible", + "fullName": "Atkinson Hyperlegible Italic", + "postscriptName": "AtkinsonHyperlegible-Italic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700italic": { + "familyName": "Atkinson Hyperlegible", + "fullName": "Atkinson Hyperlegible Bold Italic", + "postscriptName": "AtkinsonHyperlegible-BoldItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 676 + } + } + } + } + }, + "atma": { + "familyName": "Atma", + "fullName": "Atma Regular", + "postscriptName": "Atma-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1101, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "300": { + "familyName": "Atma", + "fullName": "Atma Light", + "postscriptName": "Atma-Light", + "category": "display", + "capHeight": 750, + "ascent": 1101, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "500": { + "familyName": "Atma", + "fullName": "Atma Medium", + "postscriptName": "Atma-Medium", + "category": "display", + "capHeight": 750, + "ascent": 1101, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "600": { + "familyName": "Atma", + "fullName": "Atma SemiBold", + "postscriptName": "Atma-SemiBold", + "category": "display", + "capHeight": 750, + "ascent": 1101, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "700": { + "familyName": "Atma", + "fullName": "Atma Bold", + "postscriptName": "Atma-Bold", + "category": "display", + "capHeight": 750, + "ascent": 1101, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "regular": { + "familyName": "Atma", + "fullName": "Atma Regular", + "postscriptName": "Atma-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1101, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "atomicAge": { + "familyName": "Atomic Age", + "fullName": "Atomic Age Regular", + "postscriptName": "AtomicAge-Regular", + "category": "display", + "capHeight": 1516, + "ascent": 2091, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1047, + "xWidthAvg": 1083, + "subsets": { + "latin": { + "xWidthAvg": 1083 + }, + "thai": { + "xWidthAvg": 2027 + } + }, + "variants": { + "regular": { + "familyName": "Atomic Age", + "fullName": "Atomic Age Regular", + "postscriptName": "AtomicAge-Regular", + "category": "display", + "capHeight": 1516, + "ascent": 2091, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1047, + "xWidthAvg": 1083, + "subsets": { + "latin": { + "xWidthAvg": 1083 + }, + "thai": { + "xWidthAvg": 2027 + } + } + } + } + }, + "aubrey": { + "familyName": "Aubrey", + "fullName": "Aubrey Regular", + "postscriptName": "Aubrey-Regular", + "category": "display", + "capHeight": 616, + "ascent": 830, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 529 + } + }, + "variants": { + "regular": { + "familyName": "Aubrey", + "fullName": "Aubrey Regular", + "postscriptName": "Aubrey-Regular", + "category": "display", + "capHeight": 616, + "ascent": 830, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 529 + } + } + } + } + }, + "audiowide": { + "familyName": "Audiowide", + "fullName": "Audiowide Regular", + "postscriptName": "Audiowide-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 2027, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1083, + "xWidthAvg": 1157, + "subsets": { + "latin": { + "xWidthAvg": 1157 + }, + "thai": { + "xWidthAvg": 666 + } + }, + "variants": { + "regular": { + "familyName": "Audiowide", + "fullName": "Audiowide Regular", + "postscriptName": "Audiowide-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 2027, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1083, + "xWidthAvg": 1157, + "subsets": { + "latin": { + "xWidthAvg": 1157 + }, + "thai": { + "xWidthAvg": 666 + } + } + } + } + }, + "autourOne": { + "familyName": "Autour One", + "fullName": "Autour One Regular", + "postscriptName": "AutourOne-Regular", + "category": "display", + "capHeight": 1561, + "ascent": 2010, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1190, + "xWidthAvg": 1251, + "subsets": { + "latin": { + "xWidthAvg": 1251 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Autour One", + "fullName": "Autour One Regular", + "postscriptName": "AutourOne-Regular", + "category": "display", + "capHeight": 1561, + "ascent": 2010, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1190, + "xWidthAvg": 1251, + "subsets": { + "latin": { + "xWidthAvg": 1251 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "average": { + "familyName": "Average", + "fullName": "Average Regular", + "postscriptName": "Average-Regular", + "category": "serif", + "capHeight": 691, + "ascent": 953, + "descent": -263, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 595 + } + }, + "variants": { + "regular": { + "familyName": "Average", + "fullName": "Average Regular", + "postscriptName": "Average-Regular", + "category": "serif", + "capHeight": 691, + "ascent": 953, + "descent": -263, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 595 + } + } + } + } + }, + "averageSans": { + "familyName": "Average Sans", + "fullName": "Average Sans Regular", + "postscriptName": "AverageSans-Regular", + "category": "sans-serif", + "capHeight": 691, + "ascent": 1027, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Average Sans", + "fullName": "Average Sans Regular", + "postscriptName": "AverageSans-Regular", + "category": "sans-serif", + "capHeight": 691, + "ascent": 1027, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "averiaGruesaLibre": { + "familyName": "Averia Gruesa Libre", + "fullName": "Averia Gruesa Libre Regular", + "postscriptName": "AveriaGruesaLibre-Regular", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1152 + } + }, + "variants": { + "regular": { + "familyName": "Averia Gruesa Libre", + "fullName": "Averia Gruesa Libre Regular", + "postscriptName": "AveriaGruesaLibre-Regular", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1152 + } + } + } + } + }, + "averiaLibre": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Regular", + "postscriptName": "AveriaLibre-Regular", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 1152 + } + }, + "variants": { + "300": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Light", + "postscriptName": "AveriaLibre-Light", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 910, + "subsets": { + "latin": { + "xWidthAvg": 910 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Bold", + "postscriptName": "AveriaLibre-Bold", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 952, + "subsets": { + "latin": { + "xWidthAvg": 952 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "regular": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Regular", + "postscriptName": "AveriaLibre-Regular", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "italic": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Italic", + "postscriptName": "AveriaLibre-Italic", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 890, + "subsets": { + "latin": { + "xWidthAvg": 890 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700italic": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Bold Italic", + "postscriptName": "AveriaLibre-BoldItalic", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "300italic": { + "familyName": "Averia Libre", + "fullName": "Averia Libre Light Italic", + "postscriptName": "AveriaLibre-LightItalic", + "category": "display", + "ascent": 1952, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 1152 + } + } + } + } + }, + "averiaSansLibre": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Regular", + "postscriptName": "AveriaSansLibre-Regular", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1152 + } + }, + "variants": { + "300": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Light", + "postscriptName": "AveriaSansLibre-Light", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 891, + "subsets": { + "latin": { + "xWidthAvg": 891 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Bold", + "postscriptName": "AveriaSansLibre-Bold", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "regular": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Regular", + "postscriptName": "AveriaSansLibre-Regular", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "italic": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Italic", + "postscriptName": "AveriaSansLibre-Italic", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700italic": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Bold Italic", + "postscriptName": "AveriaSansLibre-BoldItalic", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 911, + "subsets": { + "latin": { + "xWidthAvg": 911 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "300italic": { + "familyName": "Averia Sans Libre", + "fullName": "Averia Sans Libre Light Italic", + "postscriptName": "AveriaSansLibre-LightItalic", + "category": "display", + "ascent": 2035, + "descent": -499, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 887, + "subsets": { + "latin": { + "xWidthAvg": 887 + }, + "thai": { + "xWidthAvg": 1152 + } + } + } + } + }, + "averiaSerifLibre": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Regular", + "postscriptName": "AveriaSerifLibre-Regular", + "category": "display", + "ascent": 1828, + "descent": -465, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1152 + } + }, + "variants": { + "300": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Light", + "postscriptName": "AveriaSerifLibre-Light", + "category": "display", + "ascent": 1823, + "descent": -465, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Bold", + "postscriptName": "AveriaSerifLibre-Bold", + "category": "display", + "ascent": 1833, + "descent": -466, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 975, + "subsets": { + "latin": { + "xWidthAvg": 975 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "regular": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Regular", + "postscriptName": "AveriaSerifLibre-Regular", + "category": "display", + "ascent": 1828, + "descent": -465, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "italic": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Italic", + "postscriptName": "AveriaSerifLibre-Italic", + "category": "display", + "ascent": 1862, + "descent": -484, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700italic": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Bold Italic", + "postscriptName": "AveriaSerifLibre-BoldItalic", + "category": "display", + "ascent": 1861, + "descent": -475, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 916, + "subsets": { + "latin": { + "xWidthAvg": 916 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "300italic": { + "familyName": "Averia Serif Libre", + "fullName": "Averia Serif Libre Light Italic", + "postscriptName": "AveriaSerifLibre-LightItalic", + "category": "display", + "ascent": 1868, + "descent": -486, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 861, + "subsets": { + "latin": { + "xWidthAvg": 861 + }, + "thai": { + "xWidthAvg": 1152 + } + } + } + } + }, + "azeretMono": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Regular", + "postscriptName": "AzeretMono-Regular", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + }, + "variants": { + "100": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Thin", + "postscriptName": "AzeretMono-Thin", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "200": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono ExtraLight", + "postscriptName": "AzeretMono-ExtraLight", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "300": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Light", + "postscriptName": "AzeretMono-Light", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "500": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Medium", + "postscriptName": "AzeretMono-Medium", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "600": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono SemiBold", + "postscriptName": "AzeretMono-SemiBold", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "700": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Bold", + "postscriptName": "AzeretMono-Bold", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "800": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono ExtraBold", + "postscriptName": "AzeretMono-ExtraBold", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "900": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Black", + "postscriptName": "AzeretMono-Black", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "regular": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Regular", + "postscriptName": "AzeretMono-Regular", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Italic", + "postscriptName": "AzeretMono-Italic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "900italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Black Italic", + "postscriptName": "AzeretMono-BlackItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "800italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono ExtraBold Italic", + "postscriptName": "AzeretMono-ExtraBoldItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "700italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Bold Italic", + "postscriptName": "AzeretMono-BoldItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "600italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono SemiBold Italic", + "postscriptName": "AzeretMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "500italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Medium Italic", + "postscriptName": "AzeretMono-MediumItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "300italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Light Italic", + "postscriptName": "AzeretMono-LightItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "200italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono ExtraLight Italic", + "postscriptName": "AzeretMono-ExtraLightItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "100italic": { + "familyName": "Azeret Mono", + "fullName": "Azeret Mono Thin Italic", + "postscriptName": "AzeretMono-ThinItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 937, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1300 + } + } + } + } + }, + "b612": { + "familyName": "B612", + "fullName": "B612 Regular", + "postscriptName": "B612-Regular", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 977, + "subsets": { + "latin": { + "xWidthAvg": 977 + }, + "thai": { + "xWidthAvg": 1300 + } + }, + "variants": { + "700": { + "familyName": "B612", + "fullName": "B612 Bold", + "postscriptName": "B612-Bold", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 977, + "subsets": { + "latin": { + "xWidthAvg": 977 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "regular": { + "familyName": "B612", + "fullName": "B612 Regular", + "postscriptName": "B612-Regular", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 977, + "subsets": { + "latin": { + "xWidthAvg": 977 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "italic": { + "familyName": "B612", + "fullName": "B612 Italic", + "postscriptName": "B612-Italic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "700italic": { + "familyName": "B612", + "fullName": "B612 Bold Italic", + "postscriptName": "B612-BoldItalic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 1300 + } + } + } + } + }, + "b612Mono": { + "familyName": "B612 Mono", + "fullName": "B612 Mono Regular", + "postscriptName": "B612Mono-Regular", + "category": "monospace", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1300, + "subsets": { + "latin": { + "xWidthAvg": 1300 + }, + "thai": { + "xWidthAvg": 1300 + } + }, + "variants": { + "700": { + "familyName": "B612 Mono", + "fullName": "B612 Mono Bold", + "postscriptName": "B612Mono-Bold", + "category": "monospace", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1300, + "subsets": { + "latin": { + "xWidthAvg": 1300 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "regular": { + "familyName": "B612 Mono", + "fullName": "B612 Mono Regular", + "postscriptName": "B612Mono-Regular", + "category": "monospace", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1300, + "subsets": { + "latin": { + "xWidthAvg": 1300 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "italic": { + "familyName": "B612 Mono", + "fullName": "B612 Mono Italic", + "postscriptName": "B612Mono-Italic", + "category": "monospace", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1300, + "subsets": { + "latin": { + "xWidthAvg": 1300 + }, + "thai": { + "xWidthAvg": 1300 + } + } + }, + "700italic": { + "familyName": "B612 Mono", + "fullName": "B612 Mono Bold Italic", + "postscriptName": "B612Mono-BoldItalic", + "category": "monospace", + "capHeight": 1500, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1300, + "subsets": { + "latin": { + "xWidthAvg": 1300 + }, + "thai": { + "xWidthAvg": 1300 + } + } + } + } + }, + "bIZUDGothic": { + "familyName": "BIZ UDGothic", + "fullName": "BIZ UDGothic", + "postscriptName": "BIZUDGothic-Regular", + "category": "sans-serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "BIZ UDGothic", + "fullName": "BIZ UDGothic Bold", + "postscriptName": "BIZUDGothic-Bold", + "category": "sans-serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "BIZ UDGothic", + "fullName": "BIZ UDGothic", + "postscriptName": "BIZUDGothic-Regular", + "category": "sans-serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "bIZUDMincho": { + "familyName": "BIZ UDMincho", + "fullName": "BIZ UDMincho", + "postscriptName": "BIZUDMincho-Regular", + "category": "serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "BIZ UDMincho", + "fullName": "BIZ UDMincho Bold", + "postscriptName": "BIZUDMincho-Bold", + "category": "serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "BIZ UDMincho", + "fullName": "BIZ UDMincho", + "postscriptName": "BIZUDMincho-Regular", + "category": "serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "bIZUDPGothic": { + "familyName": "BIZ UDPGothic", + "fullName": "BIZ UDPGothic", + "postscriptName": "BIZUDPGothic-Regular", + "category": "sans-serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "BIZ UDPGothic", + "fullName": "BIZ UDPGothic Bold", + "postscriptName": "BIZUDPGothic-Bold", + "category": "sans-serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1178, + "subsets": { + "latin": { + "xWidthAvg": 1178 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "BIZ UDPGothic", + "fullName": "BIZ UDPGothic", + "postscriptName": "BIZUDPGothic-Regular", + "category": "sans-serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "bIZUDPMincho": { + "familyName": "BIZ UDPMincho", + "fullName": "BIZ UDPMincho", + "postscriptName": "BIZUDPMincho-Regular", + "category": "serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "BIZ UDPMincho", + "fullName": "BIZ UDPMincho Bold", + "postscriptName": "BIZUDPMincho-Bold", + "category": "serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1223, + "subsets": { + "latin": { + "xWidthAvg": 1223 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "BIZ UDPMincho", + "fullName": "BIZ UDPMincho", + "postscriptName": "BIZUDPMincho-Regular", + "category": "serif", + "capHeight": 1567, + "ascent": 1802, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1108, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "babylonica": { + "familyName": "Babylonica", + "fullName": "Babylonica Regular", + "postscriptName": "Babylonica-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 875, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 281, + "subsets": { + "latin": { + "xWidthAvg": 281 + }, + "thai": { + "xWidthAvg": 437 + } + }, + "variants": { + "regular": { + "familyName": "Babylonica", + "fullName": "Babylonica Regular", + "postscriptName": "Babylonica-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 875, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 281, + "subsets": { + "latin": { + "xWidthAvg": 281 + }, + "thai": { + "xWidthAvg": 437 + } + } + } + } + }, + "bacasimeAntique": { + "familyName": "Bacasime Antique", + "fullName": "Bacasime Antique Regular", + "postscriptName": "BacasimeAntique-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1536, + "descent": -512, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 819, + "subsets": { + "latin": { + "xWidthAvg": 819 + }, + "thai": { + "xWidthAvg": 682 + } + }, + "variants": { + "regular": { + "familyName": "Bacasime Antique", + "fullName": "Bacasime Antique Regular", + "postscriptName": "BacasimeAntique-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1536, + "descent": -512, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 819, + "subsets": { + "latin": { + "xWidthAvg": 819 + }, + "thai": { + "xWidthAvg": 682 + } + } + } + } + }, + "badScript": { + "familyName": "Bad Script", + "fullName": "Bad Script Regular", + "postscriptName": "BadScript-Regular", + "category": "handwriting", + "capHeight": 1966, + "ascent": 2710, + "descent": -1327, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1034, + "xWidthAvg": 787, + "subsets": { + "latin": { + "xWidthAvg": 787 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Bad Script", + "fullName": "Bad Script Regular", + "postscriptName": "BadScript-Regular", + "category": "handwriting", + "capHeight": 1966, + "ascent": 2710, + "descent": -1327, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1034, + "xWidthAvg": 787, + "subsets": { + "latin": { + "xWidthAvg": 787 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "bagelFatOne": { + "familyName": "Bagel Fat One", + "fullName": "Bagel Fat One Regular", + "postscriptName": "BagelFatOne-Regular", + "category": "display", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 450 + } + }, + "variants": { + "regular": { + "familyName": "Bagel Fat One", + "fullName": "Bagel Fat One Regular", + "postscriptName": "BagelFatOne-Regular", + "category": "display", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 450 + } + } + } + } + }, + "bahiana": { + "familyName": "Bahiana", + "fullName": "Bahiana Regular", + "postscriptName": "Bahiana-Regular", + "category": "display", + "capHeight": 710, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 283, + "subsets": { + "latin": { + "xWidthAvg": 283 + }, + "thai": { + "xWidthAvg": 339 + } + }, + "variants": { + "regular": { + "familyName": "Bahiana", + "fullName": "Bahiana Regular", + "postscriptName": "Bahiana-Regular", + "category": "display", + "capHeight": 710, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 283, + "subsets": { + "latin": { + "xWidthAvg": 283 + }, + "thai": { + "xWidthAvg": 339 + } + } + } + } + }, + "bahianita": { + "familyName": "Bahianita", + "fullName": "Bahianita Regular", + "postscriptName": "Bahianita-Regular", + "category": "display", + "capHeight": 710, + "ascent": 962, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 244, + "subsets": { + "latin": { + "xWidthAvg": 244 + }, + "thai": { + "xWidthAvg": 339 + } + }, + "variants": { + "regular": { + "familyName": "Bahianita", + "fullName": "Bahianita Regular", + "postscriptName": "Bahianita-Regular", + "category": "display", + "capHeight": 710, + "ascent": 962, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 244, + "subsets": { + "latin": { + "xWidthAvg": 244 + }, + "thai": { + "xWidthAvg": 339 + } + } + } + } + }, + "baiJamjuree": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Regular", + "postscriptName": "BaiJamjuree-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 569 + } + }, + "variants": { + "200": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree ExtraLight", + "postscriptName": "BaiJamjuree-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 557 + } + } + }, + "300": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Light", + "postscriptName": "BaiJamjuree-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "500": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Medium", + "postscriptName": "BaiJamjuree-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "600": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree SemiBold", + "postscriptName": "BaiJamjuree-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "700": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Bold", + "postscriptName": "BaiJamjuree-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "regular": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Regular", + "postscriptName": "BaiJamjuree-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "italic": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Italic", + "postscriptName": "BaiJamjuree-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "700italic": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Bold Italic", + "postscriptName": "BaiJamjuree-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "600italic": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree SemiBold Italic", + "postscriptName": "BaiJamjuree-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "500italic": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Medium Italic", + "postscriptName": "BaiJamjuree-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "300italic": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree Light Italic", + "postscriptName": "BaiJamjuree-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "200italic": { + "familyName": "Bai Jamjuree", + "fullName": "Bai Jamjuree ExtraLight Italic", + "postscriptName": "BaiJamjuree-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 557 + } + } + } + } + }, + "bakbakOne": { + "familyName": "Bakbak One", + "fullName": "Bakbak One Regular", + "postscriptName": "BakbakOne-Regular", + "category": "display", + "capHeight": 607, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 660 + } + }, + "variants": { + "regular": { + "familyName": "Bakbak One", + "fullName": "Bakbak One Regular", + "postscriptName": "BakbakOne-Regular", + "category": "display", + "capHeight": 607, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 660 + } + } + } + } + }, + "ballet": { + "familyName": "Ballet", + "fullName": "Ballet 16pt Regular", + "postscriptName": "Ballet16pt-Regular", + "category": "handwriting", + "capHeight": 1209, + "ascent": 1130, + "descent": -770, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 339, + "xWidthAvg": 323, + "subsets": { + "latin": { + "xWidthAvg": 323 + }, + "thai": { + "xWidthAvg": 358 + } + }, + "variants": { + "regular": { + "familyName": "Ballet", + "fullName": "Ballet 16pt Regular", + "postscriptName": "Ballet16pt-Regular", + "category": "handwriting", + "capHeight": 1209, + "ascent": 1130, + "descent": -770, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 339, + "xWidthAvg": 323, + "subsets": { + "latin": { + "xWidthAvg": 323 + }, + "thai": { + "xWidthAvg": 358 + } + } + } + } + }, + "baloo2": { + "familyName": "Baloo 2", + "fullName": "Baloo 2 Regular", + "postscriptName": "Baloo2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -524, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo 2", + "fullName": "Baloo 2 Medium", + "postscriptName": "Baloo2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -524, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "600": { + "familyName": "Baloo 2", + "fullName": "Baloo 2 SemiBold", + "postscriptName": "Baloo2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -524, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "700": { + "familyName": "Baloo 2", + "fullName": "Baloo 2 Bold", + "postscriptName": "Baloo2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -524, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 675 + } + } + }, + "800": { + "familyName": "Baloo 2", + "fullName": "Baloo 2 ExtraBold", + "postscriptName": "Baloo2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -524, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo 2", + "fullName": "Baloo 2 Regular", + "postscriptName": "Baloo2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -524, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooBhai2": { + "familyName": "Baloo Bhai 2", + "fullName": "Baloo Bhai 2 Regular", + "postscriptName": "BalooBhai2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Bhai 2", + "fullName": "Baloo Bhai 2 Medium", + "postscriptName": "BalooBhai2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "600": { + "familyName": "Baloo Bhai 2", + "fullName": "Baloo Bhai 2 SemiBold", + "postscriptName": "BalooBhai2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 665 + } + } + }, + "700": { + "familyName": "Baloo Bhai 2", + "fullName": "Baloo Bhai 2 Bold", + "postscriptName": "BalooBhai2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 676 + } + } + }, + "800": { + "familyName": "Baloo Bhai 2", + "fullName": "Baloo Bhai 2 ExtraBold", + "postscriptName": "BalooBhai2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Bhai 2", + "fullName": "Baloo Bhai 2 Regular", + "postscriptName": "BalooBhai2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooBhaijaan2": { + "familyName": "Baloo Bhaijaan 2", + "fullName": "Baloo Bhaijaan 2 Regular", + "postscriptName": "BalooBhaijaan2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1080, + "descent": -632, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Bhaijaan 2", + "fullName": "Baloo Bhaijaan 2 Medium", + "postscriptName": "BalooBhaijaan2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1080, + "descent": -632, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "600": { + "familyName": "Baloo Bhaijaan 2", + "fullName": "Baloo Bhaijaan 2 SemiBold", + "postscriptName": "BalooBhaijaan2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1080, + "descent": -632, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "700": { + "familyName": "Baloo Bhaijaan 2", + "fullName": "Baloo Bhaijaan 2 Bold", + "postscriptName": "BalooBhaijaan2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1080, + "descent": -632, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 675 + } + } + }, + "800": { + "familyName": "Baloo Bhaijaan 2", + "fullName": "Baloo Bhaijaan 2 ExtraBold", + "postscriptName": "BalooBhaijaan2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1080, + "descent": -632, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Bhaijaan 2", + "fullName": "Baloo Bhaijaan 2 Regular", + "postscriptName": "BalooBhaijaan2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1080, + "descent": -632, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooBhaina2": { + "familyName": "Baloo Bhaina 2", + "fullName": "Baloo Bhaina 2 Regular", + "postscriptName": "BalooBhaina2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1185, + "descent": -827, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 644 + } + }, + "variants": { + "500": { + "familyName": "Baloo Bhaina 2", + "fullName": "Baloo Bhaina 2 Medium", + "postscriptName": "BalooBhaina2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1185, + "descent": -827, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "600": { + "familyName": "Baloo Bhaina 2", + "fullName": "Baloo Bhaina 2 SemiBold", + "postscriptName": "BalooBhaina2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1185, + "descent": -827, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "700": { + "familyName": "Baloo Bhaina 2", + "fullName": "Baloo Bhaina 2 Bold", + "postscriptName": "BalooBhaina2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1185, + "descent": -827, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 672 + } + } + }, + "800": { + "familyName": "Baloo Bhaina 2", + "fullName": "Baloo Bhaina 2 ExtraBold", + "postscriptName": "BalooBhaina2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1185, + "descent": -827, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Bhaina 2", + "fullName": "Baloo Bhaina 2 Regular", + "postscriptName": "BalooBhaina2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1185, + "descent": -827, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 644 + } + } + } + } + }, + "balooChettan2": { + "familyName": "Baloo Chettan 2", + "fullName": "Baloo Chettan 2 Regular", + "postscriptName": "BalooChettan2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Chettan 2", + "fullName": "Baloo Chettan 2 Medium", + "postscriptName": "BalooChettan2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "600": { + "familyName": "Baloo Chettan 2", + "fullName": "Baloo Chettan 2 SemiBold", + "postscriptName": "BalooChettan2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "700": { + "familyName": "Baloo Chettan 2", + "fullName": "Baloo Chettan 2 Bold", + "postscriptName": "BalooChettan2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 675 + } + } + }, + "800": { + "familyName": "Baloo Chettan 2", + "fullName": "Baloo Chettan 2 ExtraBold", + "postscriptName": "BalooChettan2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Chettan 2", + "fullName": "Baloo Chettan 2 Regular", + "postscriptName": "BalooChettan2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooDa2": { + "familyName": "Baloo Da 2", + "fullName": "Baloo Da 2 Regular", + "postscriptName": "BalooDa2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Da 2", + "fullName": "Baloo Da 2 Medium", + "postscriptName": "BalooDa2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "600": { + "familyName": "Baloo Da 2", + "fullName": "Baloo Da 2 SemiBold", + "postscriptName": "BalooDa2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "700": { + "familyName": "Baloo Da 2", + "fullName": "Baloo Da 2 Bold", + "postscriptName": "BalooDa2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 674 + } + } + }, + "800": { + "familyName": "Baloo Da 2", + "fullName": "Baloo Da 2 ExtraBold", + "postscriptName": "BalooDa2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Da 2", + "fullName": "Baloo Da 2 Regular", + "postscriptName": "BalooDa2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1095, + "descent": -589, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooPaaji2": { + "familyName": "Baloo Paaji 2", + "fullName": "Baloo Paaji 2 Regular", + "postscriptName": "BalooPaaji2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1157, + "descent": -614, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Paaji 2", + "fullName": "Baloo Paaji 2 Medium", + "postscriptName": "BalooPaaji2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1157, + "descent": -614, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "600": { + "familyName": "Baloo Paaji 2", + "fullName": "Baloo Paaji 2 SemiBold", + "postscriptName": "BalooPaaji2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1157, + "descent": -614, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "700": { + "familyName": "Baloo Paaji 2", + "fullName": "Baloo Paaji 2 Bold", + "postscriptName": "BalooPaaji2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1157, + "descent": -614, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 675 + } + } + }, + "800": { + "familyName": "Baloo Paaji 2", + "fullName": "Baloo Paaji 2 ExtraBold", + "postscriptName": "BalooPaaji2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1157, + "descent": -614, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Paaji 2", + "fullName": "Baloo Paaji 2 Regular", + "postscriptName": "BalooPaaji2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1157, + "descent": -614, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooTamma2": { + "familyName": "Baloo Tamma 2", + "fullName": "Baloo Tamma 2 Regular", + "postscriptName": "BalooTamma2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -673, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 644 + } + }, + "variants": { + "500": { + "familyName": "Baloo Tamma 2", + "fullName": "Baloo Tamma 2 Medium", + "postscriptName": "BalooTamma2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -673, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "600": { + "familyName": "Baloo Tamma 2", + "fullName": "Baloo Tamma 2 SemiBold", + "postscriptName": "BalooTamma2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -673, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "700": { + "familyName": "Baloo Tamma 2", + "fullName": "Baloo Tamma 2 Bold", + "postscriptName": "BalooTamma2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -673, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 670 + } + } + }, + "800": { + "familyName": "Baloo Tamma 2", + "fullName": "Baloo Tamma 2 ExtraBold", + "postscriptName": "BalooTamma2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -673, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Tamma 2", + "fullName": "Baloo Tamma 2 Regular", + "postscriptName": "BalooTamma2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -673, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 644 + } + } + } + } + }, + "balooTammudu2": { + "familyName": "Baloo Tammudu 2", + "fullName": "Baloo Tammudu 2 Regular", + "postscriptName": "BalooTammudu2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1177, + "descent": -1119, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Tammudu 2", + "fullName": "Baloo Tammudu 2 Medium", + "postscriptName": "BalooTammudu2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1177, + "descent": -1119, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 653 + } + } + }, + "600": { + "familyName": "Baloo Tammudu 2", + "fullName": "Baloo Tammudu 2 SemiBold", + "postscriptName": "BalooTammudu2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1177, + "descent": -1119, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 661 + } + } + }, + "700": { + "familyName": "Baloo Tammudu 2", + "fullName": "Baloo Tammudu 2 Bold", + "postscriptName": "BalooTammudu2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1177, + "descent": -1119, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 671 + } + } + }, + "800": { + "familyName": "Baloo Tammudu 2", + "fullName": "Baloo Tammudu 2 ExtraBold", + "postscriptName": "BalooTammudu2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1177, + "descent": -1119, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Tammudu 2", + "fullName": "Baloo Tammudu 2 Regular", + "postscriptName": "BalooTammudu2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1177, + "descent": -1119, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balooThambi2": { + "familyName": "Baloo Thambi 2", + "fullName": "Baloo Thambi 2 Regular", + "postscriptName": "BalooThambi2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + }, + "variants": { + "500": { + "familyName": "Baloo Thambi 2", + "fullName": "Baloo Thambi 2 Medium", + "postscriptName": "BalooThambi2-Medium", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "600": { + "familyName": "Baloo Thambi 2", + "fullName": "Baloo Thambi 2 SemiBold", + "postscriptName": "BalooThambi2-SemiBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 665 + } + } + }, + "700": { + "familyName": "Baloo Thambi 2", + "fullName": "Baloo Thambi 2 Bold", + "postscriptName": "BalooThambi2-Bold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 674 + } + } + }, + "800": { + "familyName": "Baloo Thambi 2", + "fullName": "Baloo Thambi 2 ExtraBold", + "postscriptName": "BalooThambi2-ExtraBold", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "regular": { + "familyName": "Baloo Thambi 2", + "fullName": "Baloo Thambi 2 Regular", + "postscriptName": "BalooThambi2-Regular", + "category": "display", + "capHeight": 602, + "ascent": 1078, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "balsamiqSans": { + "familyName": "Balsamiq Sans", + "fullName": "Balsamiq Sans Regular", + "postscriptName": "BalsamiqSans-Regular", + "category": "display", + "capHeight": 715, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 465 + } + }, + "variants": { + "700": { + "familyName": "Balsamiq Sans", + "fullName": "Balsamiq Sans Bold", + "postscriptName": "BalsamiqSans-Bold", + "category": "display", + "capHeight": 715, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 415 + } + } + }, + "regular": { + "familyName": "Balsamiq Sans", + "fullName": "Balsamiq Sans Regular", + "postscriptName": "BalsamiqSans-Regular", + "category": "display", + "capHeight": 715, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 465 + } + } + }, + "italic": { + "familyName": "Balsamiq Sans", + "fullName": "Balsamiq Sans Italic", + "postscriptName": "BalsamiqSans-Italic", + "category": "display", + "capHeight": 715, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 465 + } + } + }, + "700italic": { + "familyName": "Balsamiq Sans", + "fullName": "Balsamiq Sans Bold Italic", + "postscriptName": "BalsamiqSans-BoldItalic", + "category": "display", + "capHeight": 715, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "balthazar": { + "familyName": "Balthazar", + "fullName": "Balthazar Regular", + "postscriptName": "Balthazar-Regular", + "category": "serif", + "capHeight": 605, + "ascent": 796, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Balthazar", + "fullName": "Balthazar Regular", + "postscriptName": "Balthazar-Regular", + "category": "serif", + "capHeight": 605, + "ascent": 796, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "bangers": { + "familyName": "Bangers", + "fullName": "Bangers Regular", + "postscriptName": "Bangers-Regular", + "category": "display", + "capHeight": 721, + "ascent": 883, + "descent": -181, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 721, + "xWidthAvg": 367, + "subsets": { + "latin": { + "xWidthAvg": 367 + }, + "thai": { + "xWidthAvg": 664 + } + }, + "variants": { + "regular": { + "familyName": "Bangers", + "fullName": "Bangers Regular", + "postscriptName": "Bangers-Regular", + "category": "display", + "capHeight": 721, + "ascent": 883, + "descent": -181, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 721, + "xWidthAvg": 367, + "subsets": { + "latin": { + "xWidthAvg": 367 + }, + "thai": { + "xWidthAvg": 664 + } + } + } + } + }, + "barlow": { + "familyName": "Barlow", + "fullName": "Barlow Regular", + "postscriptName": "Barlow-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 419 + } + }, + "variants": { + "100": { + "familyName": "Barlow", + "fullName": "Barlow Thin", + "postscriptName": "Barlow-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 386 + } + } + }, + "200": { + "familyName": "Barlow", + "fullName": "Barlow ExtraLight", + "postscriptName": "Barlow-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 393 + } + } + }, + "300": { + "familyName": "Barlow", + "fullName": "Barlow Light", + "postscriptName": "Barlow-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 404 + } + } + }, + "500": { + "familyName": "Barlow", + "fullName": "Barlow Medium", + "postscriptName": "Barlow-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 438 + } + } + }, + "600": { + "familyName": "Barlow", + "fullName": "Barlow SemiBold", + "postscriptName": "Barlow-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "700": { + "familyName": "Barlow", + "fullName": "Barlow Bold", + "postscriptName": "Barlow-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 474 + } + } + }, + "800": { + "familyName": "Barlow", + "fullName": "Barlow ExtraBold", + "postscriptName": "Barlow-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "900": { + "familyName": "Barlow", + "fullName": "Barlow Black", + "postscriptName": "Barlow-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 511 + } + } + }, + "regular": { + "familyName": "Barlow", + "fullName": "Barlow Regular", + "postscriptName": "Barlow-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 419 + } + } + }, + "italic": { + "familyName": "Barlow", + "fullName": "Barlow Italic", + "postscriptName": "Barlow-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 406 + } + } + }, + "900italic": { + "familyName": "Barlow", + "fullName": "Barlow Black Italic", + "postscriptName": "Barlow-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "800italic": { + "familyName": "Barlow", + "fullName": "Barlow ExtraBold Italic", + "postscriptName": "Barlow-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 479 + } + } + }, + "700italic": { + "familyName": "Barlow", + "fullName": "Barlow Bold Italic", + "postscriptName": "Barlow-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 460 + } + } + }, + "600italic": { + "familyName": "Barlow", + "fullName": "Barlow SemiBold Italic", + "postscriptName": "Barlow-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 441 + } + } + }, + "500italic": { + "familyName": "Barlow", + "fullName": "Barlow Medium Italic", + "postscriptName": "Barlow-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 425 + } + } + }, + "300italic": { + "familyName": "Barlow", + "fullName": "Barlow Light Italic", + "postscriptName": "Barlow-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 392 + } + } + }, + "200italic": { + "familyName": "Barlow", + "fullName": "Barlow ExtraLight Italic", + "postscriptName": "Barlow-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "100italic": { + "familyName": "Barlow", + "fullName": "Barlow Thin Italic", + "postscriptName": "Barlow-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 375 + } + } + } + } + }, + "barlowCondensed": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Regular", + "postscriptName": "BarlowCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 341 + } + }, + "variants": { + "100": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Thin", + "postscriptName": "BarlowCondensed-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 304 + } + } + }, + "200": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed ExtraLight", + "postscriptName": "BarlowCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 312 + } + } + }, + "300": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Light", + "postscriptName": "BarlowCondensed-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 335, + "subsets": { + "latin": { + "xWidthAvg": 335 + }, + "thai": { + "xWidthAvg": 325 + } + } + }, + "500": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Medium", + "postscriptName": "BarlowCondensed-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 349, + "subsets": { + "latin": { + "xWidthAvg": 349 + }, + "thai": { + "xWidthAvg": 363 + } + } + }, + "600": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed SemiBold", + "postscriptName": "BarlowCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 381 + } + } + }, + "700": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Bold", + "postscriptName": "BarlowCondensed-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 404 + } + } + }, + "800": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed ExtraBold", + "postscriptName": "BarlowCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 426 + } + } + }, + "900": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Black", + "postscriptName": "BarlowCondensed-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 446 + } + } + }, + "regular": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Regular", + "postscriptName": "BarlowCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 341 + } + } + }, + "italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Italic", + "postscriptName": "BarlowCondensed-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 331, + "subsets": { + "latin": { + "xWidthAvg": 331 + }, + "thai": { + "xWidthAvg": 331 + } + } + }, + "900italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Black Italic", + "postscriptName": "BarlowCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 433 + } + } + }, + "800italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed ExtraBold Italic", + "postscriptName": "BarlowCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 413 + } + } + }, + "700italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Bold Italic", + "postscriptName": "BarlowCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 392 + } + } + }, + "600italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed SemiBold Italic", + "postscriptName": "BarlowCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 346, + "subsets": { + "latin": { + "xWidthAvg": 346 + }, + "thai": { + "xWidthAvg": 370 + } + } + }, + "500italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Medium Italic", + "postscriptName": "BarlowCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 353 + } + } + }, + "300italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Light Italic", + "postscriptName": "BarlowCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 326, + "subsets": { + "latin": { + "xWidthAvg": 326 + }, + "thai": { + "xWidthAvg": 315 + } + } + }, + "200italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed ExtraLight Italic", + "postscriptName": "BarlowCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 321, + "subsets": { + "latin": { + "xWidthAvg": 321 + }, + "thai": { + "xWidthAvg": 303 + } + } + }, + "100italic": { + "familyName": "Barlow Condensed", + "fullName": "Barlow Condensed Thin Italic", + "postscriptName": "BarlowCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 318, + "subsets": { + "latin": { + "xWidthAvg": 318 + }, + "thai": { + "xWidthAvg": 295 + } + } + } + } + }, + "barlowSemiCondensed": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Regular", + "postscriptName": "BarlowSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 380 + } + }, + "variants": { + "100": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Thin", + "postscriptName": "BarlowSemiCondensed-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 345 + } + } + }, + "200": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed ExtraLight", + "postscriptName": "BarlowSemiCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 353 + } + } + }, + "300": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Light", + "postscriptName": "BarlowSemiCondensed-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 365 + } + } + }, + "500": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Medium", + "postscriptName": "BarlowSemiCondensed-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 401 + } + } + }, + "600": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed SemiBold", + "postscriptName": "BarlowSemiCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 418 + } + } + }, + "700": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Bold", + "postscriptName": "BarlowSemiCondensed-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 439 + } + } + }, + "800": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed ExtraBold", + "postscriptName": "BarlowSemiCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 460 + } + } + }, + "900": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Black", + "postscriptName": "BarlowSemiCondensed-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 479 + } + } + }, + "regular": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Regular", + "postscriptName": "BarlowSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 380 + } + } + }, + "italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Italic", + "postscriptName": "BarlowSemiCondensed-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 368 + } + } + }, + "900italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Black Italic", + "postscriptName": "BarlowSemiCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "800italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed ExtraBold Italic", + "postscriptName": "BarlowSemiCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 446 + } + } + }, + "700italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Bold Italic", + "postscriptName": "BarlowSemiCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 426 + } + } + }, + "600italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed SemiBold Italic", + "postscriptName": "BarlowSemiCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 405 + } + } + }, + "500italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Medium Italic", + "postscriptName": "BarlowSemiCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 389 + } + } + }, + "300italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Light Italic", + "postscriptName": "BarlowSemiCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 354 + } + } + }, + "200italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed ExtraLight Italic", + "postscriptName": "BarlowSemiCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 342 + } + } + }, + "100italic": { + "familyName": "Barlow Semi Condensed", + "fullName": "Barlow Semi Condensed Thin Italic", + "postscriptName": "BarlowSemiCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 335 + } + } + } + } + }, + "barriecito": { + "familyName": "Barriecito", + "fullName": "Barriecito Regular", + "postscriptName": "Barriecito-Regular", + "category": "display", + "capHeight": 710, + "ascent": 962, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Barriecito", + "fullName": "Barriecito Regular", + "postscriptName": "Barriecito-Regular", + "category": "display", + "capHeight": 710, + "ascent": 962, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "barrio": { + "familyName": "Barrio", + "fullName": "Barrio Regular", + "postscriptName": "Barrio-Regular", + "category": "display", + "capHeight": 710, + "ascent": 880, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Barrio", + "fullName": "Barrio Regular", + "postscriptName": "Barrio-Regular", + "category": "display", + "capHeight": 710, + "ascent": 880, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "basic": { + "familyName": "Basic", + "fullName": "Basic Regular", + "postscriptName": "Basic-Regular", + "category": "sans-serif", + "capHeight": 1358, + "ascent": 2066, + "descent": -511, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1022, + "xWidthAvg": 885, + "subsets": { + "latin": { + "xWidthAvg": 885 + }, + "thai": { + "xWidthAvg": 1530 + } + }, + "variants": { + "regular": { + "familyName": "Basic", + "fullName": "Basic Regular", + "postscriptName": "Basic-Regular", + "category": "sans-serif", + "capHeight": 1358, + "ascent": 2066, + "descent": -511, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1022, + "xWidthAvg": 885, + "subsets": { + "latin": { + "xWidthAvg": 885 + }, + "thai": { + "xWidthAvg": 1530 + } + } + } + } + }, + "baskervville": { + "familyName": "Baskervville", + "fullName": "Baskervville Regular", + "postscriptName": "Baskervville-Regular", + "category": "serif", + "capHeight": 710, + "ascent": 998, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 870 + } + }, + "variants": { + "regular": { + "familyName": "Baskervville", + "fullName": "Baskervville Regular", + "postscriptName": "Baskervville-Regular", + "category": "serif", + "capHeight": 710, + "ascent": 998, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 870 + } + } + }, + "italic": { + "familyName": "Baskervville", + "fullName": "Baskervville Italic", + "postscriptName": "Baskervville-Italic", + "category": "serif", + "capHeight": 710, + "ascent": 998, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 870 + } + } + } + } + }, + "baskervvilleSC": { + "familyName": "Baskervville SC", + "fullName": "Baskervville SC Regular", + "postscriptName": "BaskervvilleSC-Regular", + "category": "serif", + "capHeight": 710, + "ascent": 998, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 870 + } + }, + "variants": { + "regular": { + "familyName": "Baskervville SC", + "fullName": "Baskervville SC Regular", + "postscriptName": "BaskervvilleSC-Regular", + "category": "serif", + "capHeight": 710, + "ascent": 998, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 870 + } + } + } + } + }, + "battambang": { + "familyName": "Battambang", + "fullName": "Battambang Regular", + "postscriptName": "Battambang-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Battambang", + "fullName": "Battambang Thin", + "postscriptName": "Battambang-Thin", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Battambang", + "fullName": "Battambang Light", + "postscriptName": "Battambang-Light", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Battambang", + "fullName": "Battambang Bold", + "postscriptName": "Battambang-Bold", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1014, + "subsets": { + "latin": { + "xWidthAvg": 1014 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Battambang", + "fullName": "Battambang Black", + "postscriptName": "Battambang-Black", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Battambang", + "fullName": "Battambang Regular", + "postscriptName": "Battambang-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "baumans": { + "familyName": "Baumans", + "fullName": "Baumans Regular", + "postscriptName": "Baumans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 942, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Baumans", + "fullName": "Baumans Regular", + "postscriptName": "Baumans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 942, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "bayon": { + "familyName": "Bayon", + "fullName": "Bayon Regular", + "postscriptName": "Bayon-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Bayon", + "fullName": "Bayon Regular", + "postscriptName": "Bayon-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "beVietnamPro": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Regular", + "postscriptName": "BeVietnamPro-Regular", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Thin", + "postscriptName": "BeVietnamPro-Thin", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro ExtraLight", + "postscriptName": "BeVietnamPro-ExtraLight", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Light", + "postscriptName": "BeVietnamPro-Light", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Medium", + "postscriptName": "BeVietnamPro-Medium", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro SemiBold", + "postscriptName": "BeVietnamPro-SemiBold", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Bold", + "postscriptName": "BeVietnamPro-Bold", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro ExtraBold", + "postscriptName": "BeVietnamPro-ExtraBold", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Black", + "postscriptName": "BeVietnamPro-Black", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Regular", + "postscriptName": "BeVietnamPro-Regular", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Italic", + "postscriptName": "BeVietnamPro-Italic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Black Italic", + "postscriptName": "BeVietnamPro-BlackItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro ExtraBold Italic", + "postscriptName": "BeVietnamPro-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Bold Italic", + "postscriptName": "BeVietnamPro-BoldItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro SemiBold Italic", + "postscriptName": "BeVietnamPro-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Medium Italic", + "postscriptName": "BeVietnamPro-MediumItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Light Italic", + "postscriptName": "BeVietnamPro-LightItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro ExtraLight Italic", + "postscriptName": "BeVietnamPro-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Be Vietnam Pro", + "fullName": "Be Vietnam Pro Thin Italic", + "postscriptName": "BeVietnamPro-ThinItalic", + "category": "sans-serif", + "capHeight": 740, + "ascent": 1000, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "beauRivage": { + "familyName": "Beau Rivage", + "fullName": "Beau Rivage Regular", + "postscriptName": "BeauRivage-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 940, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 288, + "subsets": { + "latin": { + "xWidthAvg": 288 + }, + "thai": { + "xWidthAvg": 437 + } + }, + "variants": { + "regular": { + "familyName": "Beau Rivage", + "fullName": "Beau Rivage Regular", + "postscriptName": "BeauRivage-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 940, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 288, + "subsets": { + "latin": { + "xWidthAvg": 288 + }, + "thai": { + "xWidthAvg": 437 + } + } + } + } + }, + "bebasNeue": { + "familyName": "Bebas Neue", + "fullName": "Bebas Neue Regular", + "postscriptName": "BebasNeue-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 738 + } + }, + "variants": { + "regular": { + "familyName": "Bebas Neue", + "fullName": "Bebas Neue Regular", + "postscriptName": "BebasNeue-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 738 + } + } + } + } + }, + "beiruti": { + "familyName": "Beiruti", + "fullName": "Beiruti Regular", + "postscriptName": "Beiruti-Regular", + "category": "sans-serif", + "capHeight": 605, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 493 + } + }, + "variants": { + "200": { + "familyName": "Beiruti", + "fullName": "Beiruti ExtraLight", + "postscriptName": "Beiruti-ExtraLight", + "category": "sans-serif", + "capHeight": 604, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 381, + "xWidthAvg": 333, + "subsets": { + "latin": { + "xWidthAvg": 333 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "300": { + "familyName": "Beiruti", + "fullName": "Beiruti Light", + "postscriptName": "Beiruti-Light", + "category": "sans-serif", + "capHeight": 605, + "ascent": 875, + "descent": -325, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 338, + "subsets": { + "latin": { + "xWidthAvg": 338 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "500": { + "familyName": "Beiruti", + "fullName": "Beiruti Medium", + "postscriptName": "Beiruti-Medium", + "category": "sans-serif", + "capHeight": 605, + "ascent": 890, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 394, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "600": { + "familyName": "Beiruti", + "fullName": "Beiruti SemiBold", + "postscriptName": "Beiruti-SemiBold", + "category": "sans-serif", + "capHeight": 606, + "ascent": 880, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 398, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "700": { + "familyName": "Beiruti", + "fullName": "Beiruti Bold", + "postscriptName": "Beiruti-Bold", + "category": "sans-serif", + "capHeight": 606, + "ascent": 870, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 403, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 485 + } + } + }, + "800": { + "familyName": "Beiruti", + "fullName": "Beiruti ExtraBold", + "postscriptName": "Beiruti-ExtraBold", + "category": "sans-serif", + "capHeight": 607, + "ascent": 860, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 407, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 483 + } + } + }, + "900": { + "familyName": "Beiruti", + "fullName": "Beiruti Black", + "postscriptName": "Beiruti-Black", + "category": "sans-serif", + "capHeight": 607, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 411, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 480 + } + } + }, + "regular": { + "familyName": "Beiruti", + "fullName": "Beiruti Regular", + "postscriptName": "Beiruti-Regular", + "category": "sans-serif", + "capHeight": 605, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 493 + } + } + } + } + }, + "belanosima": { + "familyName": "Belanosima", + "fullName": "Belanosima Regular", + "postscriptName": "Belanosima-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1835, + "descent": -416, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 851, + "subsets": { + "latin": { + "xWidthAvg": 851 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "600": { + "familyName": "Belanosima", + "fullName": "Belanosima SemiBold", + "postscriptName": "Belanosima-SemiBold", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1893, + "descent": -419, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 917, + "subsets": { + "latin": { + "xWidthAvg": 917 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Belanosima", + "fullName": "Belanosima Bold", + "postscriptName": "Belanosima-Bold", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1857, + "descent": -678, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Belanosima", + "fullName": "Belanosima Regular", + "postscriptName": "Belanosima-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1835, + "descent": -416, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 851, + "subsets": { + "latin": { + "xWidthAvg": 851 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "belgrano": { + "familyName": "Belgrano", + "fullName": "Belgrano Regular", + "postscriptName": "Belgrano-Regular", + "category": "serif", + "capHeight": 706, + "ascent": 990, + "descent": -278, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 259 + } + }, + "variants": { + "regular": { + "familyName": "Belgrano", + "fullName": "Belgrano Regular", + "postscriptName": "Belgrano-Regular", + "category": "serif", + "capHeight": 706, + "ascent": 990, + "descent": -278, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 259 + } + } + } + } + }, + "bellefair": { + "familyName": "Bellefair", + "fullName": "Bellefair Regular", + "postscriptName": "Bellefair-Regular", + "category": "serif", + "capHeight": 688, + "ascent": 869, + "descent": -277, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 364, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 536 + } + }, + "variants": { + "regular": { + "familyName": "Bellefair", + "fullName": "Bellefair Regular", + "postscriptName": "Bellefair-Regular", + "category": "serif", + "capHeight": 688, + "ascent": 869, + "descent": -277, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 364, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 536 + } + } + } + } + }, + "belleza": { + "familyName": "Belleza", + "fullName": "Belleza Regular", + "postscriptName": "Belleza-Regular", + "category": "sans-serif", + "capHeight": 662, + "ascent": 928, + "descent": -224, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Belleza", + "fullName": "Belleza Regular", + "postscriptName": "Belleza-Regular", + "category": "sans-serif", + "capHeight": 662, + "ascent": 928, + "descent": -224, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "bellota": { + "familyName": "Bellota", + "fullName": "Bellota Regular", + "postscriptName": "Bellota-Regular", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Bellota", + "fullName": "Bellota Light", + "postscriptName": "Bellota-Light", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Bellota", + "fullName": "Bellota Bold", + "postscriptName": "Bellota-Bold", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Bellota", + "fullName": "Bellota Regular", + "postscriptName": "Bellota-Regular", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Bellota", + "fullName": "Bellota Italic", + "postscriptName": "Bellota-Italic", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "700italic": { + "familyName": "Bellota", + "fullName": "Bellota Bold Italic", + "postscriptName": "Bellota-BoldItalic", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "300italic": { + "familyName": "Bellota", + "fullName": "Bellota Light Italic", + "postscriptName": "Bellota-LightItalic", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 582 + } + } + } + } + }, + "bellotaText": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Regular", + "postscriptName": "BellotaText-Regular", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Light", + "postscriptName": "BellotaText-Light", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Bold", + "postscriptName": "BellotaText-Bold", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Regular", + "postscriptName": "BellotaText-Regular", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Italic", + "postscriptName": "BellotaText-Italic", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "700italic": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Bold Italic", + "postscriptName": "BellotaText-BoldItalic", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "300italic": { + "familyName": "Bellota Text", + "fullName": "Bellota Text Light Italic", + "postscriptName": "BellotaText-LightItalic", + "category": "display", + "capHeight": 684, + "ascent": 968, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 582 + } + } + } + } + }, + "benchNine": { + "familyName": "BenchNine", + "fullName": "BenchNine Regular", + "postscriptName": "BenchNine-Regular", + "category": "sans-serif", + "capHeight": 1438, + "ascent": 2020, + "descent": -720, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1006, + "xWidthAvg": 582, + "subsets": { + "latin": { + "xWidthAvg": 582 + }, + "thai": { + "xWidthAvg": 349 + } + }, + "variants": { + "300": { + "familyName": "BenchNine", + "fullName": "BenchNine Light", + "postscriptName": "BenchNine-Light", + "category": "sans-serif", + "capHeight": 1438, + "ascent": 2020, + "descent": -720, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1006, + "xWidthAvg": 549, + "subsets": { + "latin": { + "xWidthAvg": 549 + }, + "thai": { + "xWidthAvg": 349 + } + } + }, + "700": { + "familyName": "BenchNine", + "fullName": "BenchNine Bold", + "postscriptName": "BenchNine-Bold", + "category": "sans-serif", + "ascent": 2020, + "descent": -720, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 595, + "subsets": { + "latin": { + "xWidthAvg": 595 + }, + "thai": { + "xWidthAvg": 349 + } + } + }, + "regular": { + "familyName": "BenchNine", + "fullName": "BenchNine Regular", + "postscriptName": "BenchNine-Regular", + "category": "sans-serif", + "capHeight": 1438, + "ascent": 2020, + "descent": -720, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1006, + "xWidthAvg": 582, + "subsets": { + "latin": { + "xWidthAvg": 582 + }, + "thai": { + "xWidthAvg": 349 + } + } + } + } + }, + "benne": { + "familyName": "Benne", + "fullName": "Benne Regular", + "postscriptName": "Benne-Regular", + "category": "serif", + "capHeight": 655, + "ascent": 630, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 404, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "regular": { + "familyName": "Benne", + "fullName": "Benne Regular", + "postscriptName": "Benne-Regular", + "category": "serif", + "capHeight": 655, + "ascent": 630, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 404, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "bentham": { + "familyName": "Bentham", + "fullName": "Bentham Regular", + "postscriptName": "Bentham-Regular", + "category": "serif", + "ascent": 879, + "descent": -260, + "lineGap": 92, + "unitsPerEm": 1024, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 372 + } + }, + "variants": { + "regular": { + "familyName": "Bentham", + "fullName": "Bentham Regular", + "postscriptName": "Bentham-Regular", + "category": "serif", + "ascent": 879, + "descent": -260, + "lineGap": 92, + "unitsPerEm": 1024, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 372 + } + } + } + } + }, + "berkshireSwash": { + "familyName": "Berkshire Swash", + "fullName": "Berkshire Swash Regular", + "postscriptName": "BerkshireSwash-Regular", + "category": "handwriting", + "capHeight": 1858, + "ascent": 2007, + "descent": -537, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1038, + "xWidthAvg": 870, + "subsets": { + "latin": { + "xWidthAvg": 870 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Berkshire Swash", + "fullName": "Berkshire Swash Regular", + "postscriptName": "BerkshireSwash-Regular", + "category": "handwriting", + "capHeight": 1858, + "ascent": 2007, + "descent": -537, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1038, + "xWidthAvg": 870, + "subsets": { + "latin": { + "xWidthAvg": 870 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "besley": { + "familyName": "Besley", + "fullName": "Besley Regular", + "postscriptName": "Besley-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Besley", + "fullName": "Besley Medium", + "postscriptName": "Besley-Medium", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1032, + "subsets": { + "latin": { + "xWidthAvg": 1032 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Besley", + "fullName": "Besley SemiBold", + "postscriptName": "Besley-SemiBold", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1060, + "subsets": { + "latin": { + "xWidthAvg": 1060 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Besley", + "fullName": "Besley Bold", + "postscriptName": "Besley-Bold", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Besley", + "fullName": "Besley ExtraBold", + "postscriptName": "Besley-ExtraBold", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1138, + "subsets": { + "latin": { + "xWidthAvg": 1138 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Besley", + "fullName": "Besley Black", + "postscriptName": "Besley-Black", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1186, + "subsets": { + "latin": { + "xWidthAvg": 1186 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Besley", + "fullName": "Besley Regular", + "postscriptName": "Besley-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "italic": { + "familyName": "Besley", + "fullName": "Besley Italic", + "postscriptName": "Besley-Italic", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 996, + "subsets": { + "latin": { + "xWidthAvg": 996 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900italic": { + "familyName": "Besley", + "fullName": "Besley Black Italic", + "postscriptName": "Besley-BlackItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1233, + "subsets": { + "latin": { + "xWidthAvg": 1233 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800italic": { + "familyName": "Besley", + "fullName": "Besley ExtraBold Italic", + "postscriptName": "Besley-ExtraBoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1169, + "subsets": { + "latin": { + "xWidthAvg": 1169 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700italic": { + "familyName": "Besley", + "fullName": "Besley Bold Italic", + "postscriptName": "Besley-BoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1114, + "subsets": { + "latin": { + "xWidthAvg": 1114 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600italic": { + "familyName": "Besley", + "fullName": "Besley SemiBold Italic", + "postscriptName": "Besley-SemiBoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1067, + "subsets": { + "latin": { + "xWidthAvg": 1067 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500italic": { + "familyName": "Besley", + "fullName": "Besley Medium Italic", + "postscriptName": "Besley-MediumItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2500, + "descent": -850, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1029, + "subsets": { + "latin": { + "xWidthAvg": 1029 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "bethEllen": { + "familyName": "Beth Ellen", + "fullName": "Beth Ellen Regular", + "postscriptName": "BethEllen-Regular", + "category": "handwriting", + "capHeight": 2248, + "ascent": 3250, + "descent": -1190, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1208, + "xWidthAvg": 1105, + "subsets": { + "latin": { + "xWidthAvg": 1105 + }, + "thai": { + "xWidthAvg": 863 + } + }, + "variants": { + "regular": { + "familyName": "Beth Ellen", + "fullName": "Beth Ellen Regular", + "postscriptName": "BethEllen-Regular", + "category": "handwriting", + "capHeight": 2248, + "ascent": 3250, + "descent": -1190, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1208, + "xWidthAvg": 1105, + "subsets": { + "latin": { + "xWidthAvg": 1105 + }, + "thai": { + "xWidthAvg": 863 + } + } + } + } + }, + "bevan": { + "familyName": "Bevan", + "fullName": "Bevan Regular", + "postscriptName": "Bevan-Regular", + "category": "serif", + "capHeight": 1592, + "ascent": 2366, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1072, + "xWidthAvg": 1151, + "subsets": { + "latin": { + "xWidthAvg": 1151 + }, + "thai": { + "xWidthAvg": 954 + } + }, + "variants": { + "regular": { + "familyName": "Bevan", + "fullName": "Bevan Regular", + "postscriptName": "Bevan-Regular", + "category": "serif", + "capHeight": 1592, + "ascent": 2366, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1072, + "xWidthAvg": 1151, + "subsets": { + "latin": { + "xWidthAvg": 1151 + }, + "thai": { + "xWidthAvg": 954 + } + } + }, + "italic": { + "familyName": "Bevan", + "fullName": "Bevan Italic", + "postscriptName": "Bevan-Italic", + "category": "serif", + "capHeight": 1592, + "ascent": 2366, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1072, + "xWidthAvg": 1161, + "subsets": { + "latin": { + "xWidthAvg": 1161 + }, + "thai": { + "xWidthAvg": 962 + } + } + } + } + }, + "bhuTukaExpandedOne": { + "familyName": "BhuTuka Expanded One", + "fullName": "BhuTuka Expanded One Regular", + "postscriptName": "BhuTukaExpandedOne-Regular", + "category": "serif", + "capHeight": 520, + "ascent": 826, + "descent": -182, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 357, + "xWidthAvg": 690, + "subsets": { + "latin": { + "xWidthAvg": 690 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "BhuTuka Expanded One", + "fullName": "BhuTuka Expanded One Regular", + "postscriptName": "BhuTukaExpandedOne-Regular", + "category": "serif", + "capHeight": 520, + "ascent": 826, + "descent": -182, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 357, + "xWidthAvg": 690, + "subsets": { + "latin": { + "xWidthAvg": 690 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "bigShouldersDisplay": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Regular", + "postscriptName": "BigShouldersDisplay-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 598, + "subsets": { + "latin": { + "xWidthAvg": 598 + }, + "thai": { + "xWidthAvg": 1056 + } + }, + "variants": { + "100": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Thin", + "postscriptName": "BigShouldersDisplay-Thin", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 814 + } + } + }, + "200": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display ExtraLight", + "postscriptName": "BigShouldersDisplay-ExtraLight", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 869 + } + } + }, + "300": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Light", + "postscriptName": "BigShouldersDisplay-Light", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 947 + } + } + }, + "500": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Medium", + "postscriptName": "BigShouldersDisplay-Medium", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 624, + "subsets": { + "latin": { + "xWidthAvg": 624 + }, + "thai": { + "xWidthAvg": 1111 + } + } + }, + "600": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display SemiBold", + "postscriptName": "BigShouldersDisplay-SemiBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 649, + "subsets": { + "latin": { + "xWidthAvg": 649 + }, + "thai": { + "xWidthAvg": 1164 + } + } + }, + "700": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Bold", + "postscriptName": "BigShouldersDisplay-Bold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 699, + "subsets": { + "latin": { + "xWidthAvg": 699 + }, + "thai": { + "xWidthAvg": 1272 + } + } + }, + "800": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display ExtraBold", + "postscriptName": "BigShouldersDisplay-ExtraBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 750, + "subsets": { + "latin": { + "xWidthAvg": 750 + }, + "thai": { + "xWidthAvg": 1381 + } + } + }, + "900": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Black", + "postscriptName": "BigShouldersDisplay-Black", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 800, + "subsets": { + "latin": { + "xWidthAvg": 800 + }, + "thai": { + "xWidthAvg": 1490 + } + } + }, + "regular": { + "familyName": "Big Shoulders Display", + "fullName": "Big Shoulders Display Regular", + "postscriptName": "BigShouldersDisplay-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 598, + "subsets": { + "latin": { + "xWidthAvg": 598 + }, + "thai": { + "xWidthAvg": 1056 + } + } + } + } + }, + "bigShouldersInlineDisplay": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Regular", + "postscriptName": "BigShouldersInlineDisplay-Regular", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1205, + "subsets": { + "latin": { + "xWidthAvg": 1205 + }, + "thai": { + "xWidthAvg": 2111 + } + }, + "variants": { + "100": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Thin", + "postscriptName": "BigShouldersInlineDisplay-Thin", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 962, + "subsets": { + "latin": { + "xWidthAvg": 962 + }, + "thai": { + "xWidthAvg": 1628 + } + } + }, + "200": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display ExtraLight", + "postscriptName": "BigShouldersInlineDisplay-ExtraLight", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1019, + "subsets": { + "latin": { + "xWidthAvg": 1019 + }, + "thai": { + "xWidthAvg": 1738 + } + } + }, + "300": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Light", + "postscriptName": "BigShouldersInlineDisplay-Light", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1100, + "subsets": { + "latin": { + "xWidthAvg": 1100 + }, + "thai": { + "xWidthAvg": 1895 + } + } + }, + "500": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Medium", + "postscriptName": "BigShouldersInlineDisplay-Medium", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1257, + "subsets": { + "latin": { + "xWidthAvg": 1257 + }, + "thai": { + "xWidthAvg": 2221 + } + } + }, + "600": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display SemiBold", + "postscriptName": "BigShouldersInlineDisplay-SemiBold", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1307, + "subsets": { + "latin": { + "xWidthAvg": 1307 + }, + "thai": { + "xWidthAvg": 2329 + } + } + }, + "700": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Bold", + "postscriptName": "BigShouldersInlineDisplay-Bold", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1409, + "subsets": { + "latin": { + "xWidthAvg": 1409 + }, + "thai": { + "xWidthAvg": 2545 + } + } + }, + "800": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display ExtraBold", + "postscriptName": "BigShouldersInlineDisplay-ExtraBold", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1512, + "subsets": { + "latin": { + "xWidthAvg": 1512 + }, + "thai": { + "xWidthAvg": 2762 + } + } + }, + "900": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Black", + "postscriptName": "BigShouldersInlineDisplay-Black", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1615, + "subsets": { + "latin": { + "xWidthAvg": 1615 + }, + "thai": { + "xWidthAvg": 2980 + } + } + }, + "regular": { + "familyName": "Big Shoulders Inline Display", + "fullName": "Big Shoulders Inline Display Regular", + "postscriptName": "BigShouldersInlineDisplay-Regular", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1205, + "subsets": { + "latin": { + "xWidthAvg": 1205 + }, + "thai": { + "xWidthAvg": 2111 + } + } + } + } + }, + "bigShouldersInlineText": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Regular", + "postscriptName": "BigShouldersInlineText-Regular", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1333, + "subsets": { + "latin": { + "xWidthAvg": 1333 + }, + "thai": { + "xWidthAvg": 2584 + } + }, + "variants": { + "100": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Thin", + "postscriptName": "BigShouldersInlineText-Thin", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1151, + "subsets": { + "latin": { + "xWidthAvg": 1151 + }, + "thai": { + "xWidthAvg": 2188 + } + } + }, + "200": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text ExtraLight", + "postscriptName": "BigShouldersInlineText-ExtraLight", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1191, + "subsets": { + "latin": { + "xWidthAvg": 1191 + }, + "thai": { + "xWidthAvg": 2278 + } + } + }, + "300": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Light", + "postscriptName": "BigShouldersInlineText-Light", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1248, + "subsets": { + "latin": { + "xWidthAvg": 1248 + }, + "thai": { + "xWidthAvg": 2406 + } + } + }, + "500": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Medium", + "postscriptName": "BigShouldersInlineText-Medium", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1379, + "subsets": { + "latin": { + "xWidthAvg": 1379 + }, + "thai": { + "xWidthAvg": 2675 + } + } + }, + "600": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text SemiBold", + "postscriptName": "BigShouldersInlineText-SemiBold", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1423, + "subsets": { + "latin": { + "xWidthAvg": 1423 + }, + "thai": { + "xWidthAvg": 2763 + } + } + }, + "700": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Bold", + "postscriptName": "BigShouldersInlineText-Bold", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1512, + "subsets": { + "latin": { + "xWidthAvg": 1512 + }, + "thai": { + "xWidthAvg": 2941 + } + } + }, + "800": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text ExtraBold", + "postscriptName": "BigShouldersInlineText-ExtraBold", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1601, + "subsets": { + "latin": { + "xWidthAvg": 1601 + }, + "thai": { + "xWidthAvg": 3121 + } + } + }, + "900": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Black", + "postscriptName": "BigShouldersInlineText-Black", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1691, + "subsets": { + "latin": { + "xWidthAvg": 1691 + }, + "thai": { + "xWidthAvg": 3300 + } + } + }, + "regular": { + "familyName": "Big Shoulders Inline Text", + "fullName": "Big Shoulders Inline Text Regular", + "postscriptName": "BigShouldersInlineText-Regular", + "category": "display", + "capHeight": 3200, + "ascent": 3936, + "descent": -852, + "lineGap": 0, + "unitsPerEm": 4000, + "xHeight": 2400, + "xWidthAvg": 1333, + "subsets": { + "latin": { + "xWidthAvg": 1333 + }, + "thai": { + "xWidthAvg": 2584 + } + } + } + } + }, + "bigShouldersStencilDisplay": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Regular", + "postscriptName": "BigShouldersStencilDisplay-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 599, + "subsets": { + "latin": { + "xWidthAvg": 599 + }, + "thai": { + "xWidthAvg": 1056 + } + }, + "variants": { + "100": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Thin", + "postscriptName": "BigShouldersStencilDisplay-Thin", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 814 + } + } + }, + "200": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display ExtraLight", + "postscriptName": "BigShouldersStencilDisplay-ExtraLight", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 869 + } + } + }, + "300": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Light", + "postscriptName": "BigShouldersStencilDisplay-Light", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 947 + } + } + }, + "500": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Medium", + "postscriptName": "BigShouldersStencilDisplay-Medium", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 625, + "subsets": { + "latin": { + "xWidthAvg": 625 + }, + "thai": { + "xWidthAvg": 1111 + } + } + }, + "600": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display SemiBold", + "postscriptName": "BigShouldersStencilDisplay-SemiBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 650, + "subsets": { + "latin": { + "xWidthAvg": 650 + }, + "thai": { + "xWidthAvg": 1164 + } + } + }, + "700": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Bold", + "postscriptName": "BigShouldersStencilDisplay-Bold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 699, + "subsets": { + "latin": { + "xWidthAvg": 699 + }, + "thai": { + "xWidthAvg": 1272 + } + } + }, + "800": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display ExtraBold", + "postscriptName": "BigShouldersStencilDisplay-ExtraBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 750, + "subsets": { + "latin": { + "xWidthAvg": 750 + }, + "thai": { + "xWidthAvg": 1381 + } + } + }, + "900": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Black", + "postscriptName": "BigShouldersStencilDisplay-Black", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 800, + "subsets": { + "latin": { + "xWidthAvg": 800 + }, + "thai": { + "xWidthAvg": 1490 + } + } + }, + "regular": { + "familyName": "Big Shoulders Stencil Display", + "fullName": "Big Shoulders Stencil Display Regular", + "postscriptName": "BigShouldersStencilDisplay-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 599, + "subsets": { + "latin": { + "xWidthAvg": 599 + }, + "thai": { + "xWidthAvg": 1056 + } + } + } + } + }, + "bigShouldersStencilText": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Regular", + "postscriptName": "BigShouldersStencilText-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 666, + "subsets": { + "latin": { + "xWidthAvg": 666 + }, + "thai": { + "xWidthAvg": 1298 + } + }, + "variants": { + "100": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Thin", + "postscriptName": "BigShouldersStencilText-Thin", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 573, + "subsets": { + "latin": { + "xWidthAvg": 573 + }, + "thai": { + "xWidthAvg": 1094 + } + } + }, + "200": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text ExtraLight", + "postscriptName": "BigShouldersStencilText-ExtraLight", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 593, + "subsets": { + "latin": { + "xWidthAvg": 593 + }, + "thai": { + "xWidthAvg": 1139 + } + } + }, + "300": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Light", + "postscriptName": "BigShouldersStencilText-Light", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 623, + "subsets": { + "latin": { + "xWidthAvg": 623 + }, + "thai": { + "xWidthAvg": 1203 + } + } + }, + "500": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Medium", + "postscriptName": "BigShouldersStencilText-Medium", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 689, + "subsets": { + "latin": { + "xWidthAvg": 689 + }, + "thai": { + "xWidthAvg": 1347 + } + } + }, + "600": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text SemiBold", + "postscriptName": "BigShouldersStencilText-SemiBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 711, + "subsets": { + "latin": { + "xWidthAvg": 711 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "700": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Bold", + "postscriptName": "BigShouldersStencilText-Bold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1493 + } + } + }, + "800": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text ExtraBold", + "postscriptName": "BigShouldersStencilText-ExtraBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 800, + "subsets": { + "latin": { + "xWidthAvg": 800 + }, + "thai": { + "xWidthAvg": 1592 + } + } + }, + "900": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Black", + "postscriptName": "BigShouldersStencilText-Black", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 1690 + } + } + }, + "regular": { + "familyName": "Big Shoulders Stencil Text", + "fullName": "Big Shoulders Stencil Text Regular", + "postscriptName": "BigShouldersStencilText-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 666, + "subsets": { + "latin": { + "xWidthAvg": 666 + }, + "thai": { + "xWidthAvg": 1298 + } + } + } + } + }, + "bigShouldersText": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Regular", + "postscriptName": "BigShouldersText-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 664, + "subsets": { + "latin": { + "xWidthAvg": 664 + }, + "thai": { + "xWidthAvg": 1292 + } + }, + "variants": { + "100": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Thin", + "postscriptName": "BigShouldersText-Thin", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 1094 + } + } + }, + "200": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text ExtraLight", + "postscriptName": "BigShouldersText-ExtraLight", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 591, + "subsets": { + "latin": { + "xWidthAvg": 591 + }, + "thai": { + "xWidthAvg": 1139 + } + } + }, + "300": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Light", + "postscriptName": "BigShouldersText-Light", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 621, + "subsets": { + "latin": { + "xWidthAvg": 621 + }, + "thai": { + "xWidthAvg": 1203 + } + } + }, + "500": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Medium", + "postscriptName": "BigShouldersText-Medium", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 687, + "subsets": { + "latin": { + "xWidthAvg": 687 + }, + "thai": { + "xWidthAvg": 1337 + } + } + }, + "600": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text SemiBold", + "postscriptName": "BigShouldersText-SemiBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 709, + "subsets": { + "latin": { + "xWidthAvg": 709 + }, + "thai": { + "xWidthAvg": 1382 + } + } + }, + "700": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Bold", + "postscriptName": "BigShouldersText-Bold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 753, + "subsets": { + "latin": { + "xWidthAvg": 753 + }, + "thai": { + "xWidthAvg": 1471 + } + } + }, + "800": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text ExtraBold", + "postscriptName": "BigShouldersText-ExtraBold", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 797, + "subsets": { + "latin": { + "xWidthAvg": 797 + }, + "thai": { + "xWidthAvg": 1560 + } + } + }, + "900": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Black", + "postscriptName": "BigShouldersText-Black", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 1650 + } + } + }, + "regular": { + "familyName": "Big Shoulders Text", + "fullName": "Big Shoulders Text Regular", + "postscriptName": "BigShouldersText-Regular", + "category": "display", + "capHeight": 1600, + "ascent": 1968, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1200, + "xWidthAvg": 664, + "subsets": { + "latin": { + "xWidthAvg": 664 + }, + "thai": { + "xWidthAvg": 1292 + } + } + } + } + }, + "bigelowRules": { + "familyName": "Bigelow Rules", + "fullName": "Bigelow Rules Regular", + "postscriptName": "BigelowRules-Regular", + "category": "display", + "capHeight": 1528, + "ascent": 1857, + "descent": -516, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1227, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 410 + } + }, + "variants": { + "regular": { + "familyName": "Bigelow Rules", + "fullName": "Bigelow Rules Regular", + "postscriptName": "BigelowRules-Regular", + "category": "display", + "capHeight": 1528, + "ascent": 1857, + "descent": -516, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1227, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 410 + } + } + } + } + }, + "bigshotOne": { + "familyName": "Bigshot One", + "fullName": "Bigshot One Regular", + "postscriptName": "BigshotOne-Regular", + "category": "display", + "capHeight": 615, + "ascent": 869, + "descent": -179, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 449, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 160 + } + }, + "variants": { + "regular": { + "familyName": "Bigshot One", + "fullName": "Bigshot One Regular", + "postscriptName": "BigshotOne-Regular", + "category": "display", + "capHeight": 615, + "ascent": 869, + "descent": -179, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 449, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 160 + } + } + } + } + }, + "bilbo": { + "familyName": "Bilbo", + "fullName": "Bilbo Regular", + "postscriptName": "Bilbo-Regular", + "category": "handwriting", + "capHeight": 650, + "ascent": 850, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 280, + "subsets": { + "latin": { + "xWidthAvg": 280 + }, + "thai": { + "xWidthAvg": 349 + } + }, + "variants": { + "regular": { + "familyName": "Bilbo", + "fullName": "Bilbo Regular", + "postscriptName": "Bilbo-Regular", + "category": "handwriting", + "capHeight": 650, + "ascent": 850, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 280, + "subsets": { + "latin": { + "xWidthAvg": 280 + }, + "thai": { + "xWidthAvg": 349 + } + } + } + } + }, + "bilboSwashCaps": { + "familyName": "Bilbo Swash Caps", + "fullName": "Bilbo Swash Caps Regular", + "postscriptName": "BilboSwashCaps-Regular", + "category": "handwriting", + "capHeight": 542, + "ascent": 850, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 327, + "xWidthAvg": 289, + "subsets": { + "latin": { + "xWidthAvg": 289 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Bilbo Swash Caps", + "fullName": "Bilbo Swash Caps Regular", + "postscriptName": "BilboSwashCaps-Regular", + "category": "handwriting", + "capHeight": 542, + "ascent": 850, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 327, + "xWidthAvg": 289, + "subsets": { + "latin": { + "xWidthAvg": 289 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "bioRhyme": { + "familyName": "BioRhyme", + "fullName": "BioRhyme Regular", + "postscriptName": "BioRhyme-Regular", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 827 + } + }, + "variants": { + "200": { + "familyName": "BioRhyme", + "fullName": "BioRhyme ExtraLight", + "postscriptName": "BioRhyme-ExtraLight", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 723 + } + } + }, + "300": { + "familyName": "BioRhyme", + "fullName": "BioRhyme Light", + "postscriptName": "BioRhyme-Light", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 758 + } + } + }, + "500": { + "familyName": "BioRhyme", + "fullName": "BioRhyme Medium", + "postscriptName": "BioRhyme-Medium", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 833 + } + } + }, + "600": { + "familyName": "BioRhyme", + "fullName": "BioRhyme SemiBold", + "postscriptName": "BioRhyme-SemiBold", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 539, + "subsets": { + "latin": { + "xWidthAvg": 539 + }, + "thai": { + "xWidthAvg": 833 + } + } + }, + "700": { + "familyName": "BioRhyme", + "fullName": "BioRhyme Bold", + "postscriptName": "BioRhyme-Bold", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 833 + } + } + }, + "800": { + "familyName": "BioRhyme", + "fullName": "BioRhyme ExtraBold", + "postscriptName": "BioRhyme-ExtraBold", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 544, + "subsets": { + "latin": { + "xWidthAvg": 544 + }, + "thai": { + "xWidthAvg": 833 + } + } + }, + "regular": { + "familyName": "BioRhyme", + "fullName": "BioRhyme Regular", + "postscriptName": "BioRhyme-Regular", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 827 + } + } + } + } + }, + "bioRhymeExpanded": { + "familyName": "BioRhyme Expanded", + "fullName": "BioRhymeExpanded-Regular", + "postscriptName": "BioRhymeExpanded-Regular", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 543 + } + }, + "variants": { + "200": { + "familyName": "BioRhyme Expanded", + "fullName": "BioRhymeExpanded-ExtraLight", + "postscriptName": "BioRhymeExpanded-ExtraLight", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 554 + } + } + }, + "300": { + "familyName": "BioRhyme Expanded", + "fullName": "BioRhymeExpanded-Light", + "postscriptName": "BioRhymeExpanded-Light", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "700": { + "familyName": "BioRhyme Expanded", + "fullName": "BioRhyme Expanded Bold", + "postscriptName": "BioRhymeExpanded-Bold", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 539 + } + } + }, + "800": { + "familyName": "BioRhyme Expanded", + "fullName": "BioRhymeExpanded-ExtraBold", + "postscriptName": "BioRhymeExpanded-ExtraBold", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 896, + "subsets": { + "latin": { + "xWidthAvg": 896 + }, + "thai": { + "xWidthAvg": 534 + } + } + }, + "regular": { + "familyName": "BioRhyme Expanded", + "fullName": "BioRhymeExpanded-Regular", + "postscriptName": "BioRhymeExpanded-Regular", + "category": "serif", + "capHeight": 686, + "ascent": 1127, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 471, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 543 + } + } + } + } + }, + "birthstone": { + "familyName": "Birthstone", + "fullName": "Birthstone Regular", + "postscriptName": "Birthstone-Regular", + "category": "handwriting", + "capHeight": 880, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 282, + "subsets": { + "latin": { + "xWidthAvg": 282 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Birthstone", + "fullName": "Birthstone Regular", + "postscriptName": "Birthstone-Regular", + "category": "handwriting", + "capHeight": 880, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 282, + "subsets": { + "latin": { + "xWidthAvg": 282 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "birthstoneBounce": { + "familyName": "Birthstone Bounce", + "fullName": "Birthstone Bounce Regular", + "postscriptName": "BirthstoneBounce-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 329, + "subsets": { + "latin": { + "xWidthAvg": 329 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "500": { + "familyName": "Birthstone Bounce", + "fullName": "Birthstone Bounce Medium", + "postscriptName": "BirthstoneBounce-Medium", + "category": "handwriting", + "capHeight": 700, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 329, + "subsets": { + "latin": { + "xWidthAvg": 329 + }, + "thai": { + "xWidthAvg": 484 + } + } + }, + "regular": { + "familyName": "Birthstone Bounce", + "fullName": "Birthstone Bounce Regular", + "postscriptName": "BirthstoneBounce-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 329, + "subsets": { + "latin": { + "xWidthAvg": 329 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "biryani": { + "familyName": "Biryani", + "fullName": "Biryani Regular", + "postscriptName": "Biryani-Regular", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 563, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "200": { + "familyName": "Biryani", + "fullName": "Biryani ExtraLight", + "postscriptName": "Biryani-ExtraLight", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Biryani", + "fullName": "Biryani Light", + "postscriptName": "Biryani-Light", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Biryani", + "fullName": "Biryani SemiBold", + "postscriptName": "Biryani-SemiBold", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Biryani", + "fullName": "Biryani Bold", + "postscriptName": "Biryani-Bold", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Biryani", + "fullName": "Biryani ExtraBold", + "postscriptName": "Biryani-ExtraBold", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 588, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Biryani", + "fullName": "Biryani Black", + "postscriptName": "Biryani-Black", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 597, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Biryani", + "fullName": "Biryani Regular", + "postscriptName": "Biryani-Regular", + "category": "sans-serif", + "capHeight": 758, + "ascent": 1109, + "descent": -656, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 563, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "bitter": { + "familyName": "Bitter", + "fullName": "Bitter Regular", + "postscriptName": "Bitter-Regular", + "category": "serif", + "capHeight": 698, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Bitter", + "fullName": "Bitter Thin", + "postscriptName": "Bitter-Thin", + "category": "serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Bitter", + "fullName": "Bitter ExtraLight", + "postscriptName": "Bitter-ExtraLight", + "category": "serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Bitter", + "fullName": "Bitter Light", + "postscriptName": "Bitter-Light", + "category": "serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Bitter", + "fullName": "Bitter Medium", + "postscriptName": "Bitter-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Bitter", + "fullName": "Bitter SemiBold", + "postscriptName": "Bitter-SemiBold", + "category": "serif", + "capHeight": 702, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Bitter", + "fullName": "Bitter Bold", + "postscriptName": "Bitter-Bold", + "category": "serif", + "capHeight": 704, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Bitter", + "fullName": "Bitter ExtraBold", + "postscriptName": "Bitter-ExtraBold", + "category": "serif", + "capHeight": 707, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Bitter", + "fullName": "Bitter Black", + "postscriptName": "Bitter-Black", + "category": "serif", + "capHeight": 710, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Bitter", + "fullName": "Bitter Regular", + "postscriptName": "Bitter-Regular", + "category": "serif", + "capHeight": 698, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Bitter", + "fullName": "Bitter Italic", + "postscriptName": "Bitter-Italic", + "category": "serif", + "capHeight": 698, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "900italic": { + "familyName": "Bitter", + "fullName": "Bitter Black Italic", + "postscriptName": "Bitter-BlackItalic", + "category": "serif", + "capHeight": 710, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "800italic": { + "familyName": "Bitter", + "fullName": "Bitter ExtraBold Italic", + "postscriptName": "Bitter-ExtraBoldItalic", + "category": "serif", + "capHeight": 707, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "700italic": { + "familyName": "Bitter", + "fullName": "Bitter Bold Italic", + "postscriptName": "Bitter-BoldItalic", + "category": "serif", + "capHeight": 704, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "600italic": { + "familyName": "Bitter", + "fullName": "Bitter SemiBold Italic", + "postscriptName": "Bitter-SemiBoldItalic", + "category": "serif", + "capHeight": 702, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "500italic": { + "familyName": "Bitter", + "fullName": "Bitter Medium Italic", + "postscriptName": "Bitter-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "300italic": { + "familyName": "Bitter", + "fullName": "Bitter Light Italic", + "postscriptName": "Bitter-LightItalic", + "category": "serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "200italic": { + "familyName": "Bitter", + "fullName": "Bitter ExtraLight Italic", + "postscriptName": "Bitter-ExtraLightItalic", + "category": "serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "100italic": { + "familyName": "Bitter", + "fullName": "Bitter Thin Italic", + "postscriptName": "Bitter-ThinItalic", + "category": "serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 456 + } + } + } + } + }, + "blackAndWhitePicture": { + "familyName": "Black And White Picture", + "fullName": "Black And White Picture Regular", + "postscriptName": "BlackAndWhitePicture-Regular", + "category": "display", + "capHeight": 648, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 442, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 864 + } + }, + "variants": { + "regular": { + "familyName": "Black And White Picture", + "fullName": "Black And White Picture Regular", + "postscriptName": "BlackAndWhitePicture-Regular", + "category": "display", + "capHeight": 648, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 442, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 864 + } + } + } + } + }, + "blackHanSans": { + "familyName": "Black Han Sans", + "fullName": "Black Han Sans Regular", + "postscriptName": "BlackHanSans-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Black Han Sans", + "fullName": "Black Han Sans Regular", + "postscriptName": "BlackHanSans-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "blackOpsOne": { + "familyName": "Black Ops One", + "fullName": "Black Ops One Regular", + "postscriptName": "BlackOpsOne-Regular", + "category": "display", + "capHeight": 1327, + "ascent": 1871, + "descent": -689, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 1125, + "subsets": { + "latin": { + "xWidthAvg": 1125 + }, + "thai": { + "xWidthAvg": 1837 + } + }, + "variants": { + "regular": { + "familyName": "Black Ops One", + "fullName": "Black Ops One Regular", + "postscriptName": "BlackOpsOne-Regular", + "category": "display", + "capHeight": 1327, + "ascent": 1871, + "descent": -689, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 1125, + "subsets": { + "latin": { + "xWidthAvg": 1125 + }, + "thai": { + "xWidthAvg": 1837 + } + } + } + } + }, + "blaka": { + "familyName": "Blaka", + "fullName": "Blaka Regular", + "postscriptName": "Blaka-Regular", + "category": "display", + "capHeight": 666, + "ascent": 932, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Blaka", + "fullName": "Blaka Regular", + "postscriptName": "Blaka-Regular", + "category": "display", + "capHeight": 666, + "ascent": 932, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "blakaHollow": { + "familyName": "Blaka Hollow", + "fullName": "Blaka Hollow Regular", + "postscriptName": "BlakaHollow-Regular", + "category": "display", + "capHeight": 666, + "ascent": 932, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Blaka Hollow", + "fullName": "Blaka Hollow Regular", + "postscriptName": "BlakaHollow-Regular", + "category": "display", + "capHeight": 666, + "ascent": 932, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "blakaInk": { + "familyName": "Blaka Ink", + "fullName": "Blaka Ink Regular", + "postscriptName": "BlakaInk-Regular", + "category": "display", + "capHeight": 666, + "ascent": 932, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Blaka Ink", + "fullName": "Blaka Ink Regular", + "postscriptName": "BlakaInk-Regular", + "category": "display", + "capHeight": 666, + "ascent": 932, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "blinkMacSystemFont": { + "familyName": "BlinkMacSystemFont", + "fullName": "System Font", + "postscriptName": ".SFNS-Regular", + "category": "sans-serif", + "capHeight": 1443, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "BlinkMacSystemFont", + "fullName": "System Font", + "postscriptName": ".SFNS-Regular", + "category": "sans-serif", + "capHeight": 1443, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "italic": { + "familyName": "BlinkMacSystemFont", + "fullName": "System Font Regular Italic", + "postscriptName": ".SFNS-RegularItalic", + "category": "sans-serif", + "capHeight": 1443, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1040, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "blinker": { + "familyName": "Blinker", + "fullName": "Blinker", + "postscriptName": "Blinker-Regular", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 382 + } + }, + "variants": { + "100": { + "familyName": "Blinker", + "fullName": "Blinker Thin", + "postscriptName": "Blinker-Thin", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "200": { + "familyName": "Blinker", + "fullName": "Blinker ExtraLight", + "postscriptName": "Blinker-ExtraLight", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "300": { + "familyName": "Blinker", + "fullName": "Blinker ExtraLight", + "postscriptName": "Blinker-ExtraLight", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "600": { + "familyName": "Blinker", + "fullName": "Blinker SemiBold", + "postscriptName": "Blinker-SemiBold", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "700": { + "familyName": "Blinker", + "fullName": "Blinker Bold", + "postscriptName": "Blinker-Bold", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "800": { + "familyName": "Blinker", + "fullName": "Blinker ExtraBold", + "postscriptName": "Blinker-ExtraBold", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "900": { + "familyName": "Blinker", + "fullName": "Blinker Black", + "postscriptName": "Blinker-Black", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 382 + } + } + }, + "regular": { + "familyName": "Blinker", + "fullName": "Blinker", + "postscriptName": "Blinker-Regular", + "category": "sans-serif", + "capHeight": 627, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 382 + } + } + } + } + }, + "bodoniModa": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Regular", + "postscriptName": "BodoniModa-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1200 + } + }, + "variants": { + "500": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Medium", + "postscriptName": "BodoniModa-Medium", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda SemiBold", + "postscriptName": "BodoniModa-SemiBold", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 959, + "subsets": { + "latin": { + "xWidthAvg": 959 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Bold", + "postscriptName": "BodoniModa-Bold", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "800": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda ExtraBold", + "postscriptName": "BodoniModa-ExtraBold", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "900": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Black", + "postscriptName": "BodoniModa-Black", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 1031, + "subsets": { + "latin": { + "xWidthAvg": 1031 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "regular": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Regular", + "postscriptName": "BodoniModa-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "italic": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Italic", + "postscriptName": "BodoniModa-Italic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "900italic": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Black Italic", + "postscriptName": "BodoniModa-BlackItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "800italic": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda ExtraBold Italic", + "postscriptName": "BodoniModa-ExtraBoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700italic": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Bold Italic", + "postscriptName": "BodoniModa-BoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600italic": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda SemiBold Italic", + "postscriptName": "BodoniModa-SemiBoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 906, + "subsets": { + "latin": { + "xWidthAvg": 906 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "500italic": { + "familyName": "Bodoni Moda", + "fullName": "Bodoni Moda Medium Italic", + "postscriptName": "BodoniModa-MediumItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1200 + } + } + } + } + }, + "bodoniModaSC": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Regular", + "postscriptName": "BodoniModaSC-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1200 + } + }, + "variants": { + "500": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Medium", + "postscriptName": "BodoniModaSC-Medium", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC SemiBold", + "postscriptName": "BodoniModaSC-SemiBold", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 959, + "subsets": { + "latin": { + "xWidthAvg": 959 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Bold", + "postscriptName": "BodoniModaSC-Bold", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "800": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC ExtraBold", + "postscriptName": "BodoniModaSC-ExtraBold", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "900": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Black", + "postscriptName": "BodoniModaSC-Black", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 1031, + "subsets": { + "latin": { + "xWidthAvg": 1031 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "regular": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Regular", + "postscriptName": "BodoniModaSC-Regular", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "italic": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Italic", + "postscriptName": "BodoniModaSC-Italic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "900italic": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Black Italic", + "postscriptName": "BodoniModaSC-BlackItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "800italic": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC ExtraBold Italic", + "postscriptName": "BodoniModaSC-ExtraBoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700italic": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Bold Italic", + "postscriptName": "BodoniModaSC-BoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600italic": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC SemiBold Italic", + "postscriptName": "BodoniModaSC-SemiBoldItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 906, + "subsets": { + "latin": { + "xWidthAvg": 906 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "500italic": { + "familyName": "Bodoni Moda SC", + "fullName": "Bodoni Moda SC Medium Italic", + "postscriptName": "BodoniModaSC-MediumItalic", + "category": "serif", + "capHeight": 1500, + "ascent": 2250, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 920, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1200 + } + } + } + } + }, + "bokor": { + "familyName": "Bokor", + "fullName": "Bokor Regular", + "postscriptName": "Bokor-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 741, + "subsets": { + "latin": { + "xWidthAvg": 741 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Bokor", + "fullName": "Bokor Regular", + "postscriptName": "Bokor-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 741, + "subsets": { + "latin": { + "xWidthAvg": 741 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "bonaNova": { + "familyName": "Bona Nova", + "fullName": "Bona Nova Regular", + "postscriptName": "BonaNova-Regular", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 830 + } + }, + "variants": { + "700": { + "familyName": "Bona Nova", + "fullName": "Bona Nova Bold", + "postscriptName": "BonaNova-Bold", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 826 + } + } + }, + "regular": { + "familyName": "Bona Nova", + "fullName": "Bona Nova Regular", + "postscriptName": "BonaNova-Regular", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 830 + } + } + }, + "italic": { + "familyName": "Bona Nova", + "fullName": "Bona Nova Italic", + "postscriptName": "BonaNova-Italic", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 800 + } + } + } + } + }, + "bonaNovaSC": { + "familyName": "Bona Nova SC", + "fullName": "Bona Nova SC Regular", + "postscriptName": "BonaNovaSC-Regular", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 830 + } + }, + "variants": { + "700": { + "familyName": "Bona Nova SC", + "fullName": "Bona Nova SC Bold", + "postscriptName": "BonaNovaSC-Bold", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 826 + } + } + }, + "regular": { + "familyName": "Bona Nova SC", + "fullName": "Bona Nova SC Regular", + "postscriptName": "BonaNovaSC-Regular", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 830 + } + } + }, + "italic": { + "familyName": "Bona Nova SC", + "fullName": "Bona Nova SC Italic", + "postscriptName": "BonaNovaSC-Italic", + "category": "serif", + "capHeight": 665, + "ascent": 932, + "descent": -268, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 800 + } + } + } + } + }, + "bonbon": { + "familyName": "Bonbon", + "fullName": "Bonbon Regular", + "postscriptName": "Bonbon-Regular", + "category": "handwriting", + "capHeight": 644, + "ascent": 845, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1210 + } + }, + "variants": { + "regular": { + "familyName": "Bonbon", + "fullName": "Bonbon Regular", + "postscriptName": "Bonbon-Regular", + "category": "handwriting", + "capHeight": 644, + "ascent": 845, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1210 + } + } + } + } + }, + "bonheurRoyale": { + "familyName": "Bonheur Royale", + "fullName": "Bonheur Royale Regular", + "postscriptName": "BonheurRoyale-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 780, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 285, + "subsets": { + "latin": { + "xWidthAvg": 285 + }, + "thai": { + "xWidthAvg": 455 + } + }, + "variants": { + "regular": { + "familyName": "Bonheur Royale", + "fullName": "Bonheur Royale Regular", + "postscriptName": "BonheurRoyale-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 780, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 285, + "subsets": { + "latin": { + "xWidthAvg": 285 + }, + "thai": { + "xWidthAvg": 455 + } + } + } + } + }, + "boogaloo": { + "familyName": "Boogaloo", + "fullName": "Boogaloo Regular", + "postscriptName": "Boogaloo-Regular", + "category": "display", + "capHeight": 469, + "ascent": 943, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 338, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Boogaloo", + "fullName": "Boogaloo Regular", + "postscriptName": "Boogaloo-Regular", + "category": "display", + "capHeight": 469, + "ascent": 943, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 338, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "borel": { + "familyName": "Borel", + "fullName": "Borel Regular", + "postscriptName": "Borel-Regular", + "category": "handwriting", + "capHeight": 722, + "ascent": 986, + "descent": -1014, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 908 + } + }, + "variants": { + "regular": { + "familyName": "Borel", + "fullName": "Borel Regular", + "postscriptName": "Borel-Regular", + "category": "handwriting", + "capHeight": 722, + "ascent": 986, + "descent": -1014, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 908 + } + } + } + } + }, + "bowlbyOne": { + "familyName": "Bowlby One", + "fullName": "Bowlby One Regular", + "postscriptName": "BowlbyOne-Regular", + "category": "display", + "capHeight": 1520, + "ascent": 2276, + "descent": -932, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1196, + "xWidthAvg": 1268, + "subsets": { + "latin": { + "xWidthAvg": 1268 + }, + "thai": { + "xWidthAvg": 732 + } + }, + "variants": { + "regular": { + "familyName": "Bowlby One", + "fullName": "Bowlby One Regular", + "postscriptName": "BowlbyOne-Regular", + "category": "display", + "capHeight": 1520, + "ascent": 2276, + "descent": -932, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1196, + "xWidthAvg": 1268, + "subsets": { + "latin": { + "xWidthAvg": 1268 + }, + "thai": { + "xWidthAvg": 732 + } + } + } + } + }, + "bowlbyOneSC": { + "familyName": "Bowlby One SC", + "fullName": "Bowlby One SC Regular", + "postscriptName": "BowlbyOneSC-Regular", + "category": "display", + "capHeight": 1520, + "ascent": 2248, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1392, + "xWidthAvg": 1214, + "subsets": { + "latin": { + "xWidthAvg": 1214 + }, + "thai": { + "xWidthAvg": 732 + } + }, + "variants": { + "regular": { + "familyName": "Bowlby One SC", + "fullName": "Bowlby One SC Regular", + "postscriptName": "BowlbyOneSC-Regular", + "category": "display", + "capHeight": 1520, + "ascent": 2248, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1392, + "xWidthAvg": 1214, + "subsets": { + "latin": { + "xWidthAvg": 1214 + }, + "thai": { + "xWidthAvg": 732 + } + } + } + } + }, + "braahOne": { + "familyName": "Braah One", + "fullName": "Braah One Regular", + "postscriptName": "BraahOne-Regular", + "category": "sans-serif", + "capHeight": 636, + "ascent": 1018, + "descent": -382, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 684 + } + }, + "variants": { + "regular": { + "familyName": "Braah One", + "fullName": "Braah One Regular", + "postscriptName": "BraahOne-Regular", + "category": "sans-serif", + "capHeight": 636, + "ascent": 1018, + "descent": -382, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 684 + } + } + } + } + }, + "brawler": { + "familyName": "Brawler", + "fullName": "Brawler Regular", + "postscriptName": "Brawler-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 965 + } + }, + "variants": { + "700": { + "familyName": "Brawler", + "fullName": "Brawler Bold", + "postscriptName": "Brawler-Bold", + "category": "serif", + "capHeight": 710, + "ascent": 971, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "regular": { + "familyName": "Brawler", + "fullName": "Brawler Regular", + "postscriptName": "Brawler-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 965 + } + } + } + } + }, + "breeSerif": { + "familyName": "Bree Serif", + "fullName": "Bree Serif Regular", + "postscriptName": "BreeSerif-Regular", + "category": "serif", + "capHeight": 665, + "ascent": 1077, + "descent": -281, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Bree Serif", + "fullName": "Bree Serif Regular", + "postscriptName": "BreeSerif-Regular", + "category": "serif", + "capHeight": 665, + "ascent": 1077, + "descent": -281, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "bricolageGrotesque": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque Regular", + "postscriptName": "BricolageGrotesque-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 656 + } + }, + "variants": { + "200": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque ExtraLight", + "postscriptName": "BricolageGrotesque-ExtraLight", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "300": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque Light", + "postscriptName": "BricolageGrotesque-Light", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "500": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque Medium", + "postscriptName": "BricolageGrotesque-Medium", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "600": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque SemiBold", + "postscriptName": "BricolageGrotesque-SemiBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "700": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque Bold", + "postscriptName": "BricolageGrotesque-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "800": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque ExtraBold", + "postscriptName": "BricolageGrotesque-ExtraBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "regular": { + "familyName": "Bricolage Grotesque", + "fullName": "Bricolage Grotesque Regular", + "postscriptName": "BricolageGrotesque-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 656 + } + } + } + } + }, + "brunoAce": { + "familyName": "Bruno Ace", + "fullName": "Bruno Ace Regular", + "postscriptName": "BrunoAce-Regular", + "category": "display", + "capHeight": 700, + "ascent": 953, + "descent": -253, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Bruno Ace", + "fullName": "Bruno Ace Regular", + "postscriptName": "BrunoAce-Regular", + "category": "display", + "capHeight": 700, + "ascent": 953, + "descent": -253, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "brunoAceSC": { + "familyName": "Bruno Ace SC", + "fullName": "Bruno Ace SC Regular", + "postscriptName": "BrunoAceSC-Regular", + "category": "display", + "capHeight": 700, + "ascent": 953, + "descent": -253, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 634, + "subsets": { + "latin": { + "xWidthAvg": 634 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Bruno Ace SC", + "fullName": "Bruno Ace SC Regular", + "postscriptName": "BrunoAceSC-Regular", + "category": "display", + "capHeight": 700, + "ascent": 953, + "descent": -253, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 634, + "subsets": { + "latin": { + "xWidthAvg": 634 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "brushScript": { + "familyName": "Brush Script", + "fullName": "Brush Script MT Italic", + "postscriptName": "BrushScriptMT", + "category": "handwriting", + "capHeight": 1230, + "ascent": 1820, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 709, + "xWidthAvg": 683, + "subsets": { + "latin": { + "xWidthAvg": 683 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Brush Script", + "fullName": "Brush Script MT Italic", + "postscriptName": "BrushScriptMT", + "category": "handwriting", + "capHeight": 1230, + "ascent": 1820, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 709, + "xWidthAvg": 683, + "subsets": { + "latin": { + "xWidthAvg": 683 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "brygada1918": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Regular", + "postscriptName": "Brygada1918-Regular", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Medium", + "postscriptName": "Brygada1918-Medium", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 SemiBold", + "postscriptName": "Brygada1918-SemiBold", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Bold", + "postscriptName": "Brygada1918-Bold", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Regular", + "postscriptName": "Brygada1918-Regular", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Italic", + "postscriptName": "Brygada1918-Italic", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Bold Italic", + "postscriptName": "Brygada1918-BoldItalic", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 SemiBold Italic", + "postscriptName": "Brygada1918-SemiBoldItalic", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Brygada 1918", + "fullName": "Brygada 1918 Medium Italic", + "postscriptName": "Brygada1918-MediumItalic", + "category": "serif", + "capHeight": 670, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "bubblegumSans": { + "familyName": "Bubblegum Sans", + "fullName": "Bubblegum Sans Regular", + "postscriptName": "BubblegumSans-Regular", + "category": "display", + "capHeight": 470, + "ascent": 852, + "descent": -311, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Bubblegum Sans", + "fullName": "Bubblegum Sans Regular", + "postscriptName": "BubblegumSans-Regular", + "category": "display", + "capHeight": 470, + "ascent": 852, + "descent": -311, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "bubblerOne": { + "familyName": "Bubbler One", + "fullName": "Bubbler One Regular", + "postscriptName": "BubblerOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 900, + "descent": -263, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 510 + } + }, + "variants": { + "regular": { + "familyName": "Bubbler One", + "fullName": "Bubbler One Regular", + "postscriptName": "BubblerOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 900, + "descent": -263, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 510 + } + } + } + } + }, + "buda": { + "familyName": "Buda", + "fullName": "Buda Light", + "postscriptName": "Buda-Light", + "category": "display", + "ascent": 1836, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 793, + "subsets": { + "latin": { + "xWidthAvg": 793 + }, + "thai": { + "xWidthAvg": 594 + } + }, + "variants": { + "300": { + "familyName": "Buda", + "fullName": "Buda Light", + "postscriptName": "Buda-Light", + "category": "display", + "ascent": 1836, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 793, + "subsets": { + "latin": { + "xWidthAvg": 793 + }, + "thai": { + "xWidthAvg": 594 + } + } + } + } + }, + "buenard": { + "familyName": "Buenard", + "fullName": "Buenard Regular", + "postscriptName": "Buenard-Regular", + "category": "serif", + "capHeight": 178, + "ascent": 1031, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 95, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 218 + } + }, + "variants": { + "700": { + "familyName": "Buenard", + "fullName": "Buenard Bold", + "postscriptName": "Buenard-Bold", + "category": "serif", + "capHeight": 153, + "ascent": 1031, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 146, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 218 + } + } + }, + "regular": { + "familyName": "Buenard", + "fullName": "Buenard Regular", + "postscriptName": "Buenard-Regular", + "category": "serif", + "capHeight": 178, + "ascent": 1031, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 95, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 218 + } + } + } + } + }, + "bungee": { + "familyName": "Bungee", + "fullName": "Bungee Regular", + "postscriptName": "Bungee-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Bungee", + "fullName": "Bungee Regular", + "postscriptName": "Bungee-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "bungeeHairline": { + "familyName": "Bungee Hairline", + "fullName": "Bungee Hairline Regular", + "postscriptName": "BungeeHairline-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Bungee Hairline", + "fullName": "Bungee Hairline Regular", + "postscriptName": "BungeeHairline-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "bungeeInline": { + "familyName": "Bungee Inline", + "fullName": "Bungee Inline Regular", + "postscriptName": "BungeeInline-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Bungee Inline", + "fullName": "Bungee Inline Regular", + "postscriptName": "BungeeInline-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "bungeeOutline": { + "familyName": "Bungee Outline", + "fullName": "Bungee Outline Regular", + "postscriptName": "BungeeOutline-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Bungee Outline", + "fullName": "Bungee Outline Regular", + "postscriptName": "BungeeOutline-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "bungeeShade": { + "familyName": "Bungee Shade", + "fullName": "Bungee Shade Regular", + "postscriptName": "BungeeShade-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 718, + "subsets": { + "latin": { + "xWidthAvg": 718 + }, + "thai": { + "xWidthAvg": 1100 + } + }, + "variants": { + "regular": { + "familyName": "Bungee Shade", + "fullName": "Bungee Shade Regular", + "postscriptName": "BungeeShade-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 718, + "subsets": { + "latin": { + "xWidthAvg": 718 + }, + "thai": { + "xWidthAvg": 1100 + } + } + } + } + }, + "bungeeSpice": { + "familyName": "Bungee Spice", + "fullName": "Bungee Spice Regular", + "postscriptName": "BungeeSpice-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Bungee Spice", + "fullName": "Bungee Spice Regular", + "postscriptName": "BungeeSpice-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "bungeeTint": { + "familyName": "Bungee Tint", + "fullName": "Bungee Tint Regular", + "postscriptName": "BungeeTint-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Bungee Tint", + "fullName": "Bungee Tint Regular", + "postscriptName": "BungeeTint-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "butcherman": { + "familyName": "Butcherman", + "fullName": "Butcherman Regular", + "postscriptName": "Butcherman-Regular", + "category": "display", + "capHeight": 1509, + "ascent": 2600, + "descent": -1363, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1521, + "xWidthAvg": 1044, + "subsets": { + "latin": { + "xWidthAvg": 1044 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Butcherman", + "fullName": "Butcherman Regular", + "postscriptName": "Butcherman-Regular", + "category": "display", + "capHeight": 1509, + "ascent": 2600, + "descent": -1363, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1521, + "xWidthAvg": 1044, + "subsets": { + "latin": { + "xWidthAvg": 1044 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "butterflyKids": { + "familyName": "Butterfly Kids", + "fullName": "Butterfly Kids Regular", + "postscriptName": "ButterflyKids-Regular", + "category": "handwriting", + "capHeight": 802, + "ascent": 917, + "descent": -304, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 338, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 246 + } + }, + "variants": { + "regular": { + "familyName": "Butterfly Kids", + "fullName": "Butterfly Kids Regular", + "postscriptName": "ButterflyKids-Regular", + "category": "handwriting", + "capHeight": 802, + "ascent": 917, + "descent": -304, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 338, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 246 + } + } + } + } + }, + "cabin": { + "familyName": "Cabin", + "fullName": "Cabin Regular", + "postscriptName": "Cabin-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 1206 + } + }, + "variants": { + "500": { + "familyName": "Cabin", + "fullName": "Cabin Medium", + "postscriptName": "Cabin-Medium", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 852, + "subsets": { + "latin": { + "xWidthAvg": 852 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "600": { + "familyName": "Cabin", + "fullName": "Cabin SemiBold", + "postscriptName": "Cabin-SemiBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 856, + "subsets": { + "latin": { + "xWidthAvg": 856 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "700": { + "familyName": "Cabin", + "fullName": "Cabin Bold", + "postscriptName": "Cabin-Bold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "regular": { + "familyName": "Cabin", + "fullName": "Cabin Regular", + "postscriptName": "Cabin-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "italic": { + "familyName": "Cabin", + "fullName": "Cabin Italic", + "postscriptName": "Cabin-Italic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 794, + "subsets": { + "latin": { + "xWidthAvg": 794 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "700italic": { + "familyName": "Cabin", + "fullName": "Cabin Bold Italic", + "postscriptName": "Cabin-BoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "600italic": { + "familyName": "Cabin", + "fullName": "Cabin SemiBold Italic", + "postscriptName": "Cabin-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 1206 + } + } + }, + "500italic": { + "familyName": "Cabin", + "fullName": "Cabin Medium Italic", + "postscriptName": "Cabin-MediumItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1930, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 820, + "subsets": { + "latin": { + "xWidthAvg": 820 + }, + "thai": { + "xWidthAvg": 1206 + } + } + } + } + }, + "cabinCondensed": { + "familyName": "Cabin Condensed", + "fullName": "Cabin Condensed Regular", + "postscriptName": "CabinCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 965, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 603 + } + }, + "variants": { + "500": { + "familyName": "Cabin Condensed", + "fullName": "Cabin Condensed Medium", + "postscriptName": "CabinCondensed-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 965, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "600": { + "familyName": "Cabin Condensed", + "fullName": "Cabin Condensed SemiBold", + "postscriptName": "CabinCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 965, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "700": { + "familyName": "Cabin Condensed", + "fullName": "Cabin Condensed Bold", + "postscriptName": "CabinCondensed-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 965, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "regular": { + "familyName": "Cabin Condensed", + "fullName": "Cabin Condensed Regular", + "postscriptName": "CabinCondensed-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 965, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 603 + } + } + } + } + }, + "cabinSketch": { + "familyName": "Cabin Sketch", + "fullName": "Cabin Sketch Regular", + "postscriptName": "CabinSketch-Regular", + "category": "display", + "capHeight": 652, + "ascent": 873, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 216 + } + }, + "variants": { + "700": { + "familyName": "Cabin Sketch", + "fullName": "Cabin Sketch Bold", + "postscriptName": "CabinSketch-Bold", + "category": "display", + "capHeight": 652, + "ascent": 873, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 216 + } + } + }, + "regular": { + "familyName": "Cabin Sketch", + "fullName": "Cabin Sketch Regular", + "postscriptName": "CabinSketch-Regular", + "category": "display", + "capHeight": 652, + "ascent": 873, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 216 + } + } + } + } + }, + "cactusClassicalSerif": { + "familyName": "Cactus Classical Serif", + "fullName": "Cactus Classical Serif Regular", + "postscriptName": "CactusClassicalSerif-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 995, + "descent": -229, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Cactus Classical Serif", + "fullName": "Cactus Classical Serif Regular", + "postscriptName": "CactusClassicalSerif-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 995, + "descent": -229, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "caesarDressing": { + "familyName": "Caesar Dressing", + "fullName": "Caesar Dressing", + "postscriptName": "CaesarDressing", + "category": "display", + "capHeight": 773, + "ascent": 1017, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 772, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 358 + } + }, + "variants": { + "regular": { + "familyName": "Caesar Dressing", + "fullName": "Caesar Dressing", + "postscriptName": "CaesarDressing", + "category": "display", + "capHeight": 773, + "ascent": 1017, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 772, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 358 + } + } + } + } + }, + "cagliostro": { + "familyName": "Cagliostro", + "fullName": "Cagliostro Regular", + "postscriptName": "Cagliostro-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 998, + "descent": -355, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 444, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Cagliostro", + "fullName": "Cagliostro Regular", + "postscriptName": "Cagliostro-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 998, + "descent": -355, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 444, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "cairo": { + "familyName": "Cairo", + "fullName": "Cairo Regular", + "postscriptName": "Cairo-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 235 + } + }, + "variants": { + "200": { + "familyName": "Cairo", + "fullName": "Cairo ExtraLight", + "postscriptName": "Cairo-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "300": { + "familyName": "Cairo", + "fullName": "Cairo Light", + "postscriptName": "Cairo-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "500": { + "familyName": "Cairo", + "fullName": "Cairo Medium", + "postscriptName": "Cairo-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "600": { + "familyName": "Cairo", + "fullName": "Cairo SemiBold", + "postscriptName": "Cairo-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "700": { + "familyName": "Cairo", + "fullName": "Cairo Bold", + "postscriptName": "Cairo-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "800": { + "familyName": "Cairo", + "fullName": "Cairo ExtraBold", + "postscriptName": "Cairo-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "900": { + "familyName": "Cairo", + "fullName": "Cairo Black", + "postscriptName": "Cairo-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "regular": { + "familyName": "Cairo", + "fullName": "Cairo Regular", + "postscriptName": "Cairo-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 235 + } + } + } + } + }, + "cairoPlay": { + "familyName": "Cairo Play", + "fullName": "Cairo Play Regular", + "postscriptName": "CairoPlay-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 235 + } + }, + "variants": { + "200": { + "familyName": "Cairo Play", + "fullName": "Cairo Play ExtraLight", + "postscriptName": "CairoPlay-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "300": { + "familyName": "Cairo Play", + "fullName": "Cairo Play Light", + "postscriptName": "CairoPlay-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "500": { + "familyName": "Cairo Play", + "fullName": "Cairo Play Medium", + "postscriptName": "CairoPlay-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "600": { + "familyName": "Cairo Play", + "fullName": "Cairo Play SemiBold", + "postscriptName": "CairoPlay-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "700": { + "familyName": "Cairo Play", + "fullName": "Cairo Play Bold", + "postscriptName": "CairoPlay-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "800": { + "familyName": "Cairo Play", + "fullName": "Cairo Play ExtraBold", + "postscriptName": "CairoPlay-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "900": { + "familyName": "Cairo Play", + "fullName": "Cairo Play Black", + "postscriptName": "CairoPlay-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "regular": { + "familyName": "Cairo Play", + "fullName": "Cairo Play Regular", + "postscriptName": "CairoPlay-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1303, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 235 + } + } + } + } + }, + "caladea": { + "familyName": "Caladea", + "fullName": "Caladea Regular", + "postscriptName": "Caladea-Regular", + "category": "serif", + "capHeight": 667, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 617 + } + }, + "variants": { + "700": { + "familyName": "Caladea", + "fullName": "Caladea Bold", + "postscriptName": "Caladea-Bold", + "category": "serif", + "capHeight": 667, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 617 + } + } + }, + "regular": { + "familyName": "Caladea", + "fullName": "Caladea Regular", + "postscriptName": "Caladea-Regular", + "category": "serif", + "capHeight": 667, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 617 + } + } + }, + "italic": { + "familyName": "Caladea", + "fullName": "Caladea Italic", + "postscriptName": "Caladea-Italic", + "category": "serif", + "capHeight": 667, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 683 + } + } + }, + "700italic": { + "familyName": "Caladea", + "fullName": "Caladea Bold Italic", + "postscriptName": "Caladea-BoldItalic", + "category": "serif", + "capHeight": 667, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 685 + } + } + } + } + }, + "calistoga": { + "familyName": "Calistoga", + "fullName": "Calistoga Regular", + "postscriptName": "Calistoga-Regular", + "category": "display", + "capHeight": 698, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1182 + } + }, + "variants": { + "regular": { + "familyName": "Calistoga", + "fullName": "Calistoga Regular", + "postscriptName": "Calistoga-Regular", + "category": "display", + "capHeight": 698, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1182 + } + } + } + } + }, + "calligraffitti": { + "familyName": "Calligraffitti", + "fullName": "Calligraffitti Regular", + "postscriptName": "Calligraffitti-Regular", + "category": "handwriting", + "capHeight": 841, + "ascent": 986, + "descent": -607, + "lineGap": 14, + "unitsPerEm": 1024, + "xHeight": 819, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 297 + } + }, + "variants": { + "regular": { + "familyName": "Calligraffitti", + "fullName": "Calligraffitti Regular", + "postscriptName": "Calligraffitti-Regular", + "category": "handwriting", + "capHeight": 841, + "ascent": 986, + "descent": -607, + "lineGap": 14, + "unitsPerEm": 1024, + "xHeight": 819, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 297 + } + } + } + } + }, + "cambay": { + "familyName": "Cambay", + "fullName": "Cambay Regular", + "postscriptName": "Cambay-Regular", + "category": "sans-serif", + "capHeight": 550, + "ascent": 800, + "descent": -503, + "lineGap": 0, + "unitsPerEm": 800, + "xHeight": 384, + "xWidthAvg": 352, + "subsets": { + "latin": { + "xWidthAvg": 352 + }, + "thai": { + "xWidthAvg": 407 + } + }, + "variants": { + "700": { + "familyName": "Cambay", + "fullName": "Cambay Bold", + "postscriptName": "Cambay-Bold", + "category": "sans-serif", + "capHeight": 550, + "ascent": 800, + "descent": -503, + "lineGap": 0, + "unitsPerEm": 800, + "xHeight": 384, + "xWidthAvg": 367, + "subsets": { + "latin": { + "xWidthAvg": 367 + }, + "thai": { + "xWidthAvg": 407 + } + } + }, + "regular": { + "familyName": "Cambay", + "fullName": "Cambay Regular", + "postscriptName": "Cambay-Regular", + "category": "sans-serif", + "capHeight": 550, + "ascent": 800, + "descent": -503, + "lineGap": 0, + "unitsPerEm": 800, + "xHeight": 384, + "xWidthAvg": 352, + "subsets": { + "latin": { + "xWidthAvg": 352 + }, + "thai": { + "xWidthAvg": 407 + } + } + }, + "italic": { + "familyName": "Cambay", + "fullName": "Cambay Italic", + "postscriptName": "Cambay-Italic", + "category": "sans-serif", + "capHeight": 550, + "ascent": 800, + "descent": -503, + "lineGap": 0, + "unitsPerEm": 800, + "xHeight": 384, + "xWidthAvg": 352, + "subsets": { + "latin": { + "xWidthAvg": 352 + }, + "thai": { + "xWidthAvg": 407 + } + } + }, + "700italic": { + "familyName": "Cambay", + "fullName": "Cambay Bold Italic", + "postscriptName": "Cambay-BoldItalic", + "category": "sans-serif", + "capHeight": 550, + "ascent": 800, + "descent": -503, + "lineGap": 0, + "unitsPerEm": 800, + "xHeight": 384, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 496 + } + } + } + } + }, + "cambo": { + "familyName": "Cambo", + "fullName": "Cambo", + "postscriptName": "Cambo-Regular", + "category": "serif", + "capHeight": 676, + "ascent": 879, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 253 + } + }, + "variants": { + "regular": { + "familyName": "Cambo", + "fullName": "Cambo", + "postscriptName": "Cambo-Regular", + "category": "serif", + "capHeight": 676, + "ascent": 879, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 253 + } + } + } + } + }, + "candal": { + "familyName": "Candal", + "fullName": "Candal", + "postscriptName": "Candal", + "category": "sans-serif", + "capHeight": 1414, + "ascent": 2226, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1079, + "xWidthAvg": 1190, + "subsets": { + "latin": { + "xWidthAvg": 1190 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Candal", + "fullName": "Candal", + "postscriptName": "Candal", + "category": "sans-serif", + "capHeight": 1414, + "ascent": 2226, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1079, + "xWidthAvg": 1190, + "subsets": { + "latin": { + "xWidthAvg": 1190 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "cantarell": { + "familyName": "Cantarell", + "fullName": "Cantarell Regular", + "postscriptName": "Cantarell-Regular", + "category": "sans-serif", + "ascent": 2240, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 957, + "subsets": { + "latin": { + "xWidthAvg": 957 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "700": { + "familyName": "Cantarell", + "fullName": "Cantarell Bold", + "postscriptName": "Cantarell-Bold", + "category": "sans-serif", + "ascent": 2240, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 1084, + "subsets": { + "latin": { + "xWidthAvg": 1084 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "regular": { + "familyName": "Cantarell", + "fullName": "Cantarell Regular", + "postscriptName": "Cantarell-Regular", + "category": "sans-serif", + "ascent": 2240, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 957, + "subsets": { + "latin": { + "xWidthAvg": 957 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "italic": { + "familyName": "Cantarell", + "fullName": "Cantarell Italic", + "postscriptName": "Cantarell-Italic", + "category": "sans-serif", + "ascent": 2240, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 948, + "subsets": { + "latin": { + "xWidthAvg": 948 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "700italic": { + "familyName": "Cantarell", + "fullName": "Cantarell Bold Italic", + "postscriptName": "Cantarell-BoldItalic", + "category": "sans-serif", + "ascent": 2240, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 1073, + "subsets": { + "latin": { + "xWidthAvg": 1073 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "cantataOne": { + "familyName": "Cantata One", + "fullName": "CantataOne-Regular", + "postscriptName": "CantataOne-Regular", + "category": "serif", + "capHeight": 1530, + "ascent": 2040, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 1075, + "subsets": { + "latin": { + "xWidthAvg": 1075 + }, + "thai": { + "xWidthAvg": 1530 + } + }, + "variants": { + "regular": { + "familyName": "Cantata One", + "fullName": "CantataOne-Regular", + "postscriptName": "CantataOne-Regular", + "category": "serif", + "capHeight": 1530, + "ascent": 2040, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 1075, + "subsets": { + "latin": { + "xWidthAvg": 1075 + }, + "thai": { + "xWidthAvg": 1530 + } + } + } + } + }, + "cantoraOne": { + "familyName": "Cantora One", + "fullName": "Cantora One Regular", + "postscriptName": "CantoraOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 647 + } + }, + "variants": { + "regular": { + "familyName": "Cantora One", + "fullName": "Cantora One Regular", + "postscriptName": "CantoraOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 647 + } + } + } + } + }, + "caprasimo": { + "familyName": "Caprasimo", + "fullName": "Caprasimo Regular", + "postscriptName": "Caprasimo-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 1880, + "descent": -469, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1053, + "subsets": { + "latin": { + "xWidthAvg": 1053 + }, + "thai": { + "xWidthAvg": 671 + } + }, + "variants": { + "regular": { + "familyName": "Caprasimo", + "fullName": "Caprasimo Regular", + "postscriptName": "Caprasimo-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 1880, + "descent": -469, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1053, + "subsets": { + "latin": { + "xWidthAvg": 1053 + }, + "thai": { + "xWidthAvg": 671 + } + } + } + } + }, + "capriola": { + "familyName": "Capriola", + "fullName": "Capriola Regular", + "postscriptName": "Capriola-Regular", + "category": "sans-serif", + "capHeight": 1533, + "ascent": 1992, + "descent": -568, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1128, + "xWidthAvg": 1043, + "subsets": { + "latin": { + "xWidthAvg": 1043 + }, + "thai": { + "xWidthAvg": 1703 + } + }, + "variants": { + "regular": { + "familyName": "Capriola", + "fullName": "Capriola Regular", + "postscriptName": "Capriola-Regular", + "category": "sans-serif", + "capHeight": 1533, + "ascent": 1992, + "descent": -568, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1128, + "xWidthAvg": 1043, + "subsets": { + "latin": { + "xWidthAvg": 1043 + }, + "thai": { + "xWidthAvg": 1703 + } + } + } + } + }, + "caramel": { + "familyName": "Caramel", + "fullName": "Caramel Regular", + "postscriptName": "Caramel-Regular", + "category": "handwriting", + "capHeight": 650, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 270, + "xWidthAvg": 261, + "subsets": { + "latin": { + "xWidthAvg": 261 + }, + "thai": { + "xWidthAvg": 429 + } + }, + "variants": { + "regular": { + "familyName": "Caramel", + "fullName": "Caramel Regular", + "postscriptName": "Caramel-Regular", + "category": "handwriting", + "capHeight": 650, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 270, + "xWidthAvg": 261, + "subsets": { + "latin": { + "xWidthAvg": 261 + }, + "thai": { + "xWidthAvg": 429 + } + } + } + } + }, + "carattere": { + "familyName": "Carattere", + "fullName": "Carattere Regular", + "postscriptName": "Carattere-Regular", + "category": "handwriting", + "capHeight": 690, + "ascent": 800, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 302, + "subsets": { + "latin": { + "xWidthAvg": 302 + }, + "thai": { + "xWidthAvg": 511 + } + }, + "variants": { + "regular": { + "familyName": "Carattere", + "fullName": "Carattere Regular", + "postscriptName": "Carattere-Regular", + "category": "handwriting", + "capHeight": 690, + "ascent": 800, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 302, + "subsets": { + "latin": { + "xWidthAvg": 302 + }, + "thai": { + "xWidthAvg": 511 + } + } + } + } + }, + "cardo": { + "familyName": "Cardo", + "fullName": "Cardo", + "postscriptName": "Cardo-Regular", + "category": "serif", + "capHeight": 1410, + "ascent": 2028, + "descent": -745, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 900, + "xWidthAvg": 875, + "subsets": { + "latin": { + "xWidthAvg": 875 + }, + "thai": { + "xWidthAvg": 1078 + } + }, + "variants": { + "700": { + "familyName": "Cardo", + "fullName": "Cardo Bold", + "postscriptName": "Cardo-Bold", + "category": "serif", + "capHeight": 1410, + "ascent": 2028, + "descent": -745, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 920, + "xWidthAvg": 951, + "subsets": { + "latin": { + "xWidthAvg": 951 + }, + "thai": { + "xWidthAvg": 1078 + } + } + }, + "regular": { + "familyName": "Cardo", + "fullName": "Cardo", + "postscriptName": "Cardo-Regular", + "category": "serif", + "capHeight": 1410, + "ascent": 2028, + "descent": -745, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 900, + "xWidthAvg": 875, + "subsets": { + "latin": { + "xWidthAvg": 875 + }, + "thai": { + "xWidthAvg": 1078 + } + } + }, + "italic": { + "familyName": "Cardo", + "fullName": "Cardo Italic", + "postscriptName": "Cardo-Italic", + "category": "serif", + "capHeight": 1410, + "ascent": 2028, + "descent": -745, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 900, + "xWidthAvg": 808, + "subsets": { + "latin": { + "xWidthAvg": 808 + }, + "thai": { + "xWidthAvg": 1078 + } + } + } + } + }, + "carlito": { + "familyName": "Carlito", + "fullName": "Carlito Regular", + "postscriptName": "Carlito-Regular", + "category": "sans-serif", + "capHeight": 1314, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 978, + "xWidthAvg": 840, + "subsets": { + "latin": { + "xWidthAvg": 840 + }, + "thai": { + "xWidthAvg": 1038 + } + }, + "variants": { + "700": { + "familyName": "Carlito", + "fullName": "Carlito Bold", + "postscriptName": "Carlito-Bold", + "category": "sans-serif", + "capHeight": 1328, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 993, + "xWidthAvg": 859, + "subsets": { + "latin": { + "xWidthAvg": 859 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "regular": { + "familyName": "Carlito", + "fullName": "Carlito Regular", + "postscriptName": "Carlito-Regular", + "category": "sans-serif", + "capHeight": 1314, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 978, + "xWidthAvg": 840, + "subsets": { + "latin": { + "xWidthAvg": 840 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "italic": { + "familyName": "Carlito", + "fullName": "Carlito Italic", + "postscriptName": "Carlito-Italic", + "category": "sans-serif", + "capHeight": 1314, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 835, + "subsets": { + "latin": { + "xWidthAvg": 835 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "700italic": { + "familyName": "Carlito", + "fullName": "Carlito Bold Italic", + "postscriptName": "Carlito-BoldItalic", + "category": "sans-serif", + "capHeight": 1328, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 993, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1038 + } + } + } + } + }, + "carme": { + "familyName": "Carme", + "fullName": "Carme Regular", + "postscriptName": "Carme", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1946, + "descent": -513, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 946, + "subsets": { + "latin": { + "xWidthAvg": 946 + }, + "thai": { + "xWidthAvg": 819 + } + }, + "variants": { + "regular": { + "familyName": "Carme", + "fullName": "Carme Regular", + "postscriptName": "Carme", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1946, + "descent": -513, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 946, + "subsets": { + "latin": { + "xWidthAvg": 946 + }, + "thai": { + "xWidthAvg": 819 + } + } + } + } + }, + "carroisGothic": { + "familyName": "Carrois Gothic", + "fullName": "Carrois Gothic Regular", + "postscriptName": "CarroisGothic-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 922, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 548 + } + }, + "variants": { + "regular": { + "familyName": "Carrois Gothic", + "fullName": "Carrois Gothic Regular", + "postscriptName": "CarroisGothic-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 922, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 548 + } + } + } + } + }, + "carroisGothicSC": { + "familyName": "Carrois Gothic SC", + "fullName": "Carrois Gothic SC Regular", + "postscriptName": "CarroisGothicSC-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 922, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 548 + } + }, + "variants": { + "regular": { + "familyName": "Carrois Gothic SC", + "fullName": "Carrois Gothic SC Regular", + "postscriptName": "CarroisGothicSC-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 922, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 548 + } + } + } + } + }, + "carterOne": { + "familyName": "Carter One", + "fullName": "Carter One", + "postscriptName": "CarterOne", + "category": "display", + "capHeight": 1481, + "ascent": 2264, + "descent": -890, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 473, + "xWidthAvg": 1005, + "subsets": { + "latin": { + "xWidthAvg": 1005 + }, + "thai": { + "xWidthAvg": 590 + } + }, + "variants": { + "regular": { + "familyName": "Carter One", + "fullName": "Carter One", + "postscriptName": "CarterOne", + "category": "display", + "capHeight": 1481, + "ascent": 2264, + "descent": -890, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 473, + "xWidthAvg": 1005, + "subsets": { + "latin": { + "xWidthAvg": 1005 + }, + "thai": { + "xWidthAvg": 590 + } + } + } + } + }, + "castoro": { + "familyName": "Castoro", + "fullName": "Castoro Regular", + "postscriptName": "Castoro-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Castoro", + "fullName": "Castoro Regular", + "postscriptName": "Castoro-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Castoro", + "fullName": "Castoro Italic", + "postscriptName": "Castoro-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "castoroTitling": { + "familyName": "Castoro Titling", + "fullName": "Castoro Titling Regular", + "postscriptName": "CastoroTitling-Regular", + "category": "display", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Castoro Titling", + "fullName": "Castoro Titling Regular", + "postscriptName": "CastoroTitling-Regular", + "category": "display", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "catamaran": { + "familyName": "Catamaran", + "fullName": "Catamaran Regular", + "postscriptName": "Catamaran-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 658 + } + }, + "variants": { + "100": { + "familyName": "Catamaran", + "fullName": "Catamaran Thin", + "postscriptName": "Catamaran-Thin", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "200": { + "familyName": "Catamaran", + "fullName": "Catamaran ExtraLight", + "postscriptName": "Catamaran-ExtraLight", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "300": { + "familyName": "Catamaran", + "fullName": "Catamaran Light", + "postscriptName": "Catamaran-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "500": { + "familyName": "Catamaran", + "fullName": "Catamaran Medium", + "postscriptName": "Catamaran-Medium", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 671 + } + } + }, + "600": { + "familyName": "Catamaran", + "fullName": "Catamaran SemiBold", + "postscriptName": "Catamaran-SemiBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "700": { + "familyName": "Catamaran", + "fullName": "Catamaran Bold", + "postscriptName": "Catamaran-Bold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 698 + } + } + }, + "800": { + "familyName": "Catamaran", + "fullName": "Catamaran ExtraBold", + "postscriptName": "Catamaran-ExtraBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "900": { + "familyName": "Catamaran", + "fullName": "Catamaran Black", + "postscriptName": "Catamaran-Black", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "regular": { + "familyName": "Catamaran", + "fullName": "Catamaran Regular", + "postscriptName": "Catamaran-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1100, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 658 + } + } + } + } + }, + "caudex": { + "familyName": "Caudex", + "fullName": "Caudex", + "postscriptName": "Caudex", + "category": "serif", + "ascent": 2034, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 772 + } + }, + "variants": { + "700": { + "familyName": "Caudex", + "fullName": "Caudex Bold", + "postscriptName": "Caudex-Bold", + "category": "serif", + "ascent": 2034, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 772 + } + } + }, + "regular": { + "familyName": "Caudex", + "fullName": "Caudex", + "postscriptName": "Caudex", + "category": "serif", + "ascent": 2034, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 772 + } + } + }, + "italic": { + "familyName": "Caudex", + "fullName": "Caudex Italic", + "postscriptName": "Caudex-Italic", + "category": "serif", + "ascent": 2034, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 933, + "subsets": { + "latin": { + "xWidthAvg": 933 + }, + "thai": { + "xWidthAvg": 772 + } + } + }, + "700italic": { + "familyName": "Caudex", + "fullName": "Caudex Bold Italic", + "postscriptName": "Caudex-BoldItalic", + "category": "serif", + "ascent": 2034, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 933, + "subsets": { + "latin": { + "xWidthAvg": 933 + }, + "thai": { + "xWidthAvg": 772 + } + } + } + } + }, + "caveat": { + "familyName": "Caveat", + "fullName": "Caveat Regular", + "postscriptName": "Caveat-Regular", + "category": "handwriting", + "capHeight": 610, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 603 + } + }, + "variants": { + "500": { + "familyName": "Caveat", + "fullName": "Caveat Medium", + "postscriptName": "Caveat-Medium", + "category": "handwriting", + "capHeight": 610, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "600": { + "familyName": "Caveat", + "fullName": "Caveat SemiBold", + "postscriptName": "Caveat-SemiBold", + "category": "handwriting", + "capHeight": 610, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 347, + "subsets": { + "latin": { + "xWidthAvg": 347 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "700": { + "familyName": "Caveat", + "fullName": "Caveat Bold", + "postscriptName": "Caveat-Bold", + "category": "handwriting", + "capHeight": 610, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 349, + "subsets": { + "latin": { + "xWidthAvg": 349 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "regular": { + "familyName": "Caveat", + "fullName": "Caveat Regular", + "postscriptName": "Caveat-Regular", + "category": "handwriting", + "capHeight": 610, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 603 + } + } + } + } + }, + "caveatBrush": { + "familyName": "Caveat Brush", + "fullName": "Caveat Brush", + "postscriptName": "CaveatBrush-Regular", + "category": "handwriting", + "capHeight": 660, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 835 + } + }, + "variants": { + "regular": { + "familyName": "Caveat Brush", + "fullName": "Caveat Brush", + "postscriptName": "CaveatBrush-Regular", + "category": "handwriting", + "capHeight": 660, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 835 + } + } + } + } + }, + "cedarvilleCursive": { + "familyName": "Cedarville Cursive", + "fullName": "Cedarville Cursive", + "postscriptName": "Cedarville-Cursive", + "category": "handwriting", + "capHeight": 775, + "ascent": 1279, + "descent": -663, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 400, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 461 + } + }, + "variants": { + "regular": { + "familyName": "Cedarville Cursive", + "fullName": "Cedarville Cursive", + "postscriptName": "Cedarville-Cursive", + "category": "handwriting", + "capHeight": 775, + "ascent": 1279, + "descent": -663, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 400, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 461 + } + } + } + } + }, + "cevicheOne": { + "familyName": "Ceviche One", + "fullName": "Ceviche One", + "postscriptName": "CevicheOne-Regular", + "category": "display", + "capHeight": 425, + "ascent": 806, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 451, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 294 + } + }, + "variants": { + "regular": { + "familyName": "Ceviche One", + "fullName": "Ceviche One", + "postscriptName": "CevicheOne-Regular", + "category": "display", + "capHeight": 425, + "ascent": 806, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 451, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 294 + } + } + } + } + }, + "chakraPetch": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Regular", + "postscriptName": "ChakraPetch-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 558 + } + }, + "variants": { + "300": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Light", + "postscriptName": "ChakraPetch-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "500": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Medium", + "postscriptName": "ChakraPetch-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "600": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch SemiBold", + "postscriptName": "ChakraPetch-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 575 + } + } + }, + "700": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Bold", + "postscriptName": "ChakraPetch-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Regular", + "postscriptName": "ChakraPetch-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 558 + } + } + }, + "italic": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Italic", + "postscriptName": "ChakraPetch-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 558 + } + } + }, + "700italic": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Bold Italic", + "postscriptName": "ChakraPetch-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600italic": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch SemiBold Italic", + "postscriptName": "ChakraPetch-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 575 + } + } + }, + "500italic": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Medium Italic", + "postscriptName": "ChakraPetch-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "300italic": { + "familyName": "Chakra Petch", + "fullName": "Chakra Petch Light Italic", + "postscriptName": "ChakraPetch-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 550 + } + } + } + } + }, + "changa": { + "familyName": "Changa", + "fullName": "Changa Regular", + "postscriptName": "Changa-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "200": { + "familyName": "Changa", + "fullName": "Changa ExtraLight", + "postscriptName": "Changa-ExtraLight", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Changa", + "fullName": "Changa Light", + "postscriptName": "Changa-Light", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Changa", + "fullName": "Changa Medium", + "postscriptName": "Changa-Medium", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Changa", + "fullName": "Changa SemiBold", + "postscriptName": "Changa-SemiBold", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Changa", + "fullName": "Changa Bold", + "postscriptName": "Changa-Bold", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Changa", + "fullName": "Changa ExtraBold", + "postscriptName": "Changa-ExtraBold", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Changa", + "fullName": "Changa Regular", + "postscriptName": "Changa-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 1227, + "descent": -613, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "changaOne": { + "familyName": "Changa One", + "fullName": "Changa One", + "postscriptName": "ChangaOne", + "category": "display", + "capHeight": 625, + "ascent": 882, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 150 + } + }, + "variants": { + "regular": { + "familyName": "Changa One", + "fullName": "Changa One", + "postscriptName": "ChangaOne", + "category": "display", + "capHeight": 625, + "ascent": 882, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 150 + } + } + }, + "italic": { + "familyName": "Changa One", + "fullName": "Changa One Italic", + "postscriptName": "ChangaOne-Italic", + "category": "display", + "capHeight": 625, + "ascent": 882, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 150 + } + } + } + } + }, + "chango": { + "familyName": "Chango", + "fullName": "Chango Regular", + "postscriptName": "Chango-Regular", + "category": "display", + "capHeight": 700, + "ascent": 995, + "descent": -216, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 686, + "subsets": { + "latin": { + "xWidthAvg": 686 + }, + "thai": { + "xWidthAvg": 679 + } + }, + "variants": { + "regular": { + "familyName": "Chango", + "fullName": "Chango Regular", + "postscriptName": "Chango-Regular", + "category": "display", + "capHeight": 700, + "ascent": 995, + "descent": -216, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 686, + "subsets": { + "latin": { + "xWidthAvg": 686 + }, + "thai": { + "xWidthAvg": 679 + } + } + } + } + }, + "charisSIL": { + "familyName": "Charis SIL", + "fullName": "Charis SIL", + "postscriptName": "CharisSIL", + "category": "serif", + "capHeight": 1374, + "ascent": 2450, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1400 + } + }, + "variants": { + "700": { + "familyName": "Charis SIL", + "fullName": "Charis SIL Bold", + "postscriptName": "CharisSIL-Bold", + "category": "serif", + "capHeight": 1374, + "ascent": 2450, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 993, + "subsets": { + "latin": { + "xWidthAvg": 993 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "regular": { + "familyName": "Charis SIL", + "fullName": "Charis SIL", + "postscriptName": "CharisSIL", + "category": "serif", + "capHeight": 1374, + "ascent": 2450, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "italic": { + "familyName": "Charis SIL", + "fullName": "Charis SIL Italic", + "postscriptName": "CharisSIL-Italic", + "category": "serif", + "capHeight": 1374, + "ascent": 2450, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 865, + "subsets": { + "latin": { + "xWidthAvg": 865 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "700italic": { + "familyName": "Charis SIL", + "fullName": "Charis SIL Bold Italic", + "postscriptName": "CharisSIL-BoldItalic", + "category": "serif", + "capHeight": 1374, + "ascent": 2450, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 942, + "subsets": { + "latin": { + "xWidthAvg": 942 + }, + "thai": { + "xWidthAvg": 1400 + } + } + } + } + }, + "charm": { + "familyName": "Charm", + "fullName": "Charm Regular", + "postscriptName": "Charm-Regular", + "category": "handwriting", + "capHeight": 684, + "ascent": 1115, + "descent": -434, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 468 + } + }, + "variants": { + "700": { + "familyName": "Charm", + "fullName": "Charm Bold", + "postscriptName": "Charm-Bold", + "category": "handwriting", + "capHeight": 684, + "ascent": 1115, + "descent": -434, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 482 + } + } + }, + "regular": { + "familyName": "Charm", + "fullName": "Charm Regular", + "postscriptName": "Charm-Regular", + "category": "handwriting", + "capHeight": 684, + "ascent": 1115, + "descent": -434, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 468 + } + } + } + } + }, + "charmonman": { + "familyName": "Charmonman", + "fullName": "Charmonman Regular", + "postscriptName": "Charmonman-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1200, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 433 + } + }, + "variants": { + "700": { + "familyName": "Charmonman", + "fullName": "Charmonman Bold", + "postscriptName": "Charmonman-Bold", + "category": "handwriting", + "capHeight": 700, + "ascent": 1200, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 466 + } + } + }, + "regular": { + "familyName": "Charmonman", + "fullName": "Charmonman Regular", + "postscriptName": "Charmonman-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1200, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 433 + } + } + } + } + }, + "chathura": { + "familyName": "Chathura", + "fullName": "Chathura Regular", + "postscriptName": "Chathura-Regular", + "category": "sans-serif", + "capHeight": 404, + "ascent": 1020, + "descent": -602, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 294, + "xWidthAvg": 220, + "subsets": { + "latin": { + "xWidthAvg": 220 + }, + "thai": { + "xWidthAvg": 800 + } + }, + "variants": { + "100": { + "familyName": "Chathura", + "fullName": "Chathura Thin", + "postscriptName": "Chathura-Thin", + "category": "sans-serif", + "capHeight": 404, + "ascent": 1020, + "descent": -602, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 294, + "xWidthAvg": 219, + "subsets": { + "latin": { + "xWidthAvg": 219 + }, + "thai": { + "xWidthAvg": 800 + } + } + }, + "300": { + "familyName": "Chathura", + "fullName": "Chathura Light", + "postscriptName": "Chathura-Light", + "category": "sans-serif", + "capHeight": 404, + "ascent": 1020, + "descent": -602, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 294, + "xWidthAvg": 220, + "subsets": { + "latin": { + "xWidthAvg": 220 + }, + "thai": { + "xWidthAvg": 800 + } + } + }, + "700": { + "familyName": "Chathura", + "fullName": "Chathura Bold", + "postscriptName": "Chathura-Bold", + "category": "sans-serif", + "capHeight": 404, + "ascent": 1020, + "descent": -602, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 294, + "xWidthAvg": 220, + "subsets": { + "latin": { + "xWidthAvg": 220 + }, + "thai": { + "xWidthAvg": 800 + } + } + }, + "800": { + "familyName": "Chathura", + "fullName": "Chathura ExtraBold", + "postscriptName": "Chathura-ExtraBold", + "category": "sans-serif", + "capHeight": 404, + "ascent": 1020, + "descent": -602, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 294, + "xWidthAvg": 220, + "subsets": { + "latin": { + "xWidthAvg": 220 + }, + "thai": { + "xWidthAvg": 800 + } + } + }, + "regular": { + "familyName": "Chathura", + "fullName": "Chathura Regular", + "postscriptName": "Chathura-Regular", + "category": "sans-serif", + "capHeight": 404, + "ascent": 1020, + "descent": -602, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 294, + "xWidthAvg": 220, + "subsets": { + "latin": { + "xWidthAvg": 220 + }, + "thai": { + "xWidthAvg": 800 + } + } + } + } + }, + "chauPhilomeneOne": { + "familyName": "Chau Philomene One", + "fullName": "Chau Philomene One Regular", + "postscriptName": "ChauPhilomeneOne-Regular", + "category": "sans-serif", + "capHeight": 752, + "ascent": 1033, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 266 + } + }, + "variants": { + "regular": { + "familyName": "Chau Philomene One", + "fullName": "Chau Philomene One Regular", + "postscriptName": "ChauPhilomeneOne-Regular", + "category": "sans-serif", + "capHeight": 752, + "ascent": 1033, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 266 + } + } + }, + "italic": { + "familyName": "Chau Philomene One", + "fullName": "Chau Philomene One Italic", + "postscriptName": "ChauPhilomeneOne-Italic", + "category": "sans-serif", + "capHeight": 752, + "ascent": 1033, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 266 + } + } + } + } + }, + "chelaOne": { + "familyName": "Chela One", + "fullName": "Chela One", + "postscriptName": "ChelaOne-Regular", + "category": "display", + "capHeight": 721, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 224 + } + }, + "variants": { + "regular": { + "familyName": "Chela One", + "fullName": "Chela One", + "postscriptName": "ChelaOne-Regular", + "category": "display", + "capHeight": 721, + "ascent": 942, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 224 + } + } + } + } + }, + "chelseaMarket": { + "familyName": "Chelsea Market", + "fullName": "Chelsea Market", + "postscriptName": "ChelseaMarket-Regular", + "category": "display", + "capHeight": 796, + "ascent": 1029, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 608, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 420 + } + }, + "variants": { + "regular": { + "familyName": "Chelsea Market", + "fullName": "Chelsea Market", + "postscriptName": "ChelseaMarket-Regular", + "category": "display", + "capHeight": 796, + "ascent": 1029, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 608, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 420 + } + } + } + } + }, + "chenla": { + "familyName": "Chenla", + "fullName": "Chenla", + "postscriptName": "Chenla", + "category": "display", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "regular": { + "familyName": "Chenla", + "fullName": "Chenla", + "postscriptName": "Chenla", + "category": "display", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "cherish": { + "familyName": "Cherish", + "fullName": "Cherish Regular", + "postscriptName": "Cherish-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 850, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 330, + "xWidthAvg": 256, + "subsets": { + "latin": { + "xWidthAvg": 256 + }, + "thai": { + "xWidthAvg": 370 + } + }, + "variants": { + "regular": { + "familyName": "Cherish", + "fullName": "Cherish Regular", + "postscriptName": "Cherish-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 850, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 330, + "xWidthAvg": 256, + "subsets": { + "latin": { + "xWidthAvg": 256 + }, + "thai": { + "xWidthAvg": 370 + } + } + } + } + }, + "cherryBombOne": { + "familyName": "Cherry Bomb One", + "fullName": "Cherry Bomb One Regular", + "postscriptName": "CherryBombOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Cherry Bomb One", + "fullName": "Cherry Bomb One Regular", + "postscriptName": "CherryBombOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "cherryCreamSoda": { + "familyName": "Cherry Cream Soda", + "fullName": "Cherry Cream Soda Regular", + "postscriptName": "CherryCreamSoda-Regular", + "category": "display", + "capHeight": 741, + "ascent": 1006, + "descent": -247, + "lineGap": 29, + "unitsPerEm": 1024, + "xHeight": 502, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 358 + } + }, + "variants": { + "regular": { + "familyName": "Cherry Cream Soda", + "fullName": "Cherry Cream Soda Regular", + "postscriptName": "CherryCreamSoda-Regular", + "category": "display", + "capHeight": 741, + "ascent": 1006, + "descent": -247, + "lineGap": 29, + "unitsPerEm": 1024, + "xHeight": 502, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 358 + } + } + } + } + }, + "cherrySwash": { + "familyName": "Cherry Swash", + "fullName": "Cherry Swash", + "postscriptName": "CherrySwash-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 310 + } + }, + "variants": { + "700": { + "familyName": "Cherry Swash", + "fullName": "Cherry Swash Bold", + "postscriptName": "CherrySwash-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 310 + } + } + }, + "regular": { + "familyName": "Cherry Swash", + "fullName": "Cherry Swash", + "postscriptName": "CherrySwash-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 310 + } + } + } + } + }, + "chewy": { + "familyName": "Chewy", + "fullName": "Chewy Regular", + "postscriptName": "Chewy-Regular", + "category": "display", + "capHeight": 768, + "ascent": 1003, + "descent": -310, + "lineGap": 25, + "unitsPerEm": 1024, + "xHeight": 577, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Chewy", + "fullName": "Chewy Regular", + "postscriptName": "Chewy-Regular", + "category": "display", + "capHeight": 768, + "ascent": 1003, + "descent": -310, + "lineGap": 25, + "unitsPerEm": 1024, + "xHeight": 577, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "chicle": { + "familyName": "Chicle", + "fullName": "Chicle Regular", + "postscriptName": "Chicle-Regular", + "category": "display", + "capHeight": 513, + "ascent": 915, + "descent": -294, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 277, + "xWidthAvg": 336, + "subsets": { + "latin": { + "xWidthAvg": 336 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Chicle", + "fullName": "Chicle Regular", + "postscriptName": "Chicle-Regular", + "category": "display", + "capHeight": 513, + "ascent": 915, + "descent": -294, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 277, + "xWidthAvg": 336, + "subsets": { + "latin": { + "xWidthAvg": 336 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "chilanka": { + "familyName": "Chilanka", + "fullName": "Chilanka Regular", + "postscriptName": "Chilanka-Regular", + "category": "handwriting", + "capHeight": 1448, + "ascent": 1500, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 999, + "xWidthAvg": 948, + "subsets": { + "latin": { + "xWidthAvg": 948 + }, + "thai": { + "xWidthAvg": 692 + } + }, + "variants": { + "regular": { + "familyName": "Chilanka", + "fullName": "Chilanka Regular", + "postscriptName": "Chilanka-Regular", + "category": "handwriting", + "capHeight": 1448, + "ascent": 1500, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 999, + "xWidthAvg": 948, + "subsets": { + "latin": { + "xWidthAvg": 948 + }, + "thai": { + "xWidthAvg": 692 + } + } + } + } + }, + "chivo": { + "familyName": "Chivo", + "fullName": "Chivo Regular", + "postscriptName": "Chivo-Regular", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Chivo", + "fullName": "Chivo Thin", + "postscriptName": "Chivo-Thin", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Chivo", + "fullName": "Chivo ExtraLight", + "postscriptName": "Chivo-ExtraLight", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Chivo", + "fullName": "Chivo Light", + "postscriptName": "Chivo-Light", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Chivo", + "fullName": "Chivo Medium", + "postscriptName": "Chivo-Medium", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Chivo", + "fullName": "Chivo SemiBold", + "postscriptName": "Chivo-SemiBold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Chivo", + "fullName": "Chivo Bold", + "postscriptName": "Chivo-Bold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Chivo", + "fullName": "Chivo ExtraBold", + "postscriptName": "Chivo-ExtraBold", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Chivo", + "fullName": "Chivo Black", + "postscriptName": "Chivo-Black", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Chivo", + "fullName": "Chivo Regular", + "postscriptName": "Chivo-Regular", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Chivo", + "fullName": "Chivo Italic", + "postscriptName": "Chivo-Italic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Chivo", + "fullName": "Chivo Black Italic", + "postscriptName": "Chivo-BlackItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Chivo", + "fullName": "Chivo ExtraBold Italic", + "postscriptName": "Chivo-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Chivo", + "fullName": "Chivo Bold Italic", + "postscriptName": "Chivo-BoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Chivo", + "fullName": "Chivo SemiBold Italic", + "postscriptName": "Chivo-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Chivo", + "fullName": "Chivo Medium Italic", + "postscriptName": "Chivo-MediumItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Chivo", + "fullName": "Chivo Light Italic", + "postscriptName": "Chivo-LightItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Chivo", + "fullName": "Chivo ExtraLight Italic", + "postscriptName": "Chivo-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Chivo", + "fullName": "Chivo Thin Italic", + "postscriptName": "Chivo-ThinItalic", + "category": "sans-serif", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "chivoMono": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Regular", + "postscriptName": "ChivoMono-Regular", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Thin", + "postscriptName": "ChivoMono-Thin", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono ExtraLight", + "postscriptName": "ChivoMono-ExtraLight", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Light", + "postscriptName": "ChivoMono-Light", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Medium", + "postscriptName": "ChivoMono-Medium", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono SemiBold", + "postscriptName": "ChivoMono-SemiBold", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Bold", + "postscriptName": "ChivoMono-Bold", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono ExtraBold", + "postscriptName": "ChivoMono-ExtraBold", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Black", + "postscriptName": "ChivoMono-Black", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Regular", + "postscriptName": "ChivoMono-Regular", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Italic", + "postscriptName": "ChivoMono-Italic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Black Italic", + "postscriptName": "ChivoMono-BlackItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono ExtraBold Italic", + "postscriptName": "ChivoMono-ExtraBoldItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Bold Italic", + "postscriptName": "ChivoMono-BoldItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono SemiBold Italic", + "postscriptName": "ChivoMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Medium Italic", + "postscriptName": "ChivoMono-MediumItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Light Italic", + "postscriptName": "ChivoMono-LightItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono ExtraLight Italic", + "postscriptName": "ChivoMono-ExtraLightItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "Chivo Mono", + "fullName": "Chivo Mono Thin Italic", + "postscriptName": "ChivoMono-ThinItalic", + "category": "monospace", + "capHeight": 686, + "ascent": 940, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "chocolateClassicalSans": { + "familyName": "Chocolate Classical Sans", + "fullName": "Chocolate Classical Sans Regular", + "postscriptName": "ChocolateClassicalSans-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Chocolate Classical Sans", + "fullName": "Chocolate Classical Sans Regular", + "postscriptName": "ChocolateClassicalSans-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "chokokutai": { + "familyName": "Chokokutai", + "fullName": "Chokokutai Regular", + "postscriptName": "Chokokutai-Regular", + "category": "display", + "capHeight": 774, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Chokokutai", + "fullName": "Chokokutai Regular", + "postscriptName": "Chokokutai-Regular", + "category": "display", + "capHeight": 774, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "chonburi": { + "familyName": "Chonburi", + "fullName": "Chonburi", + "postscriptName": "Chonburi-Regular", + "category": "display", + "capHeight": 714, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 684 + } + }, + "variants": { + "regular": { + "familyName": "Chonburi", + "fullName": "Chonburi", + "postscriptName": "Chonburi-Regular", + "category": "display", + "capHeight": 714, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 684 + } + } + } + } + }, + "cinzel": { + "familyName": "Cinzel", + "fullName": "Cinzel Regular", + "postscriptName": "Cinzel-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Cinzel", + "fullName": "Cinzel Medium", + "postscriptName": "Cinzel-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Cinzel", + "fullName": "Cinzel SemiBold", + "postscriptName": "Cinzel-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 563, + "subsets": { + "latin": { + "xWidthAvg": 563 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Cinzel", + "fullName": "Cinzel Bold", + "postscriptName": "Cinzel-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 567, + "subsets": { + "latin": { + "xWidthAvg": 567 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Cinzel", + "fullName": "Cinzel ExtraBold", + "postscriptName": "Cinzel-ExtraBold", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 571, + "subsets": { + "latin": { + "xWidthAvg": 571 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Cinzel", + "fullName": "Cinzel Black", + "postscriptName": "Cinzel-Black", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 574, + "subsets": { + "latin": { + "xWidthAvg": 574 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Cinzel", + "fullName": "Cinzel Regular", + "postscriptName": "Cinzel-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "cinzelDecorative": { + "familyName": "Cinzel Decorative", + "fullName": "Cinzel Decorative Regular", + "postscriptName": "CinzelDecorative-Regular", + "category": "display", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 714, + "xWidthAvg": 589, + "subsets": { + "latin": { + "xWidthAvg": 589 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "700": { + "familyName": "Cinzel Decorative", + "fullName": "Cinzel Decorative Bold", + "postscriptName": "CinzelDecorative-Bold", + "category": "display", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 714, + "xWidthAvg": 626, + "subsets": { + "latin": { + "xWidthAvg": 626 + }, + "thai": { + "xWidthAvg": 250 + } + } + }, + "900": { + "familyName": "Cinzel Decorative", + "fullName": "Cinzel Decorative Black", + "postscriptName": "CinzelDecorative-Black", + "category": "display", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 714, + "xWidthAvg": 651, + "subsets": { + "latin": { + "xWidthAvg": 651 + }, + "thai": { + "xWidthAvg": 250 + } + } + }, + "regular": { + "familyName": "Cinzel Decorative", + "fullName": "Cinzel Decorative Regular", + "postscriptName": "CinzelDecorative-Regular", + "category": "display", + "capHeight": 700, + "ascent": 976, + "descent": -372, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 714, + "xWidthAvg": 589, + "subsets": { + "latin": { + "xWidthAvg": 589 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "clickerScript": { + "familyName": "Clicker Script", + "fullName": "Clicker Script", + "postscriptName": "ClickerScript-Regular", + "category": "handwriting", + "capHeight": 1358, + "ascent": 1898, + "descent": -807, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 621, + "xWidthAvg": 643, + "subsets": { + "latin": { + "xWidthAvg": 643 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Clicker Script", + "fullName": "Clicker Script", + "postscriptName": "ClickerScript-Regular", + "category": "handwriting", + "capHeight": 1358, + "ascent": 1898, + "descent": -807, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 621, + "xWidthAvg": 643, + "subsets": { + "latin": { + "xWidthAvg": 643 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "climateCrisis": { + "familyName": "Climate Crisis", + "fullName": "Climate Crisis Regular", + "postscriptName": "ClimateCrisis-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1070, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 705, + "subsets": { + "latin": { + "xWidthAvg": 705 + }, + "thai": { + "xWidthAvg": 791 + } + }, + "variants": { + "regular": { + "familyName": "Climate Crisis", + "fullName": "Climate Crisis Regular", + "postscriptName": "ClimateCrisis-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1070, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 705, + "subsets": { + "latin": { + "xWidthAvg": 705 + }, + "thai": { + "xWidthAvg": 791 + } + } + } + } + }, + "coda": { + "familyName": "Coda", + "fullName": "Coda Regular", + "postscriptName": "Coda-Regular", + "category": "display", + "ascent": 2124, + "descent": -784, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 907, + "subsets": { + "latin": { + "xWidthAvg": 907 + }, + "thai": { + "xWidthAvg": 467 + } + }, + "variants": { + "800": { + "familyName": "Coda", + "fullName": "Coda ExtraBold", + "postscriptName": "Coda-ExtraBold", + "category": "display", + "ascent": 2124, + "descent": -784, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 1160, + "subsets": { + "latin": { + "xWidthAvg": 1160 + }, + "thai": { + "xWidthAvg": 226 + } + } + }, + "regular": { + "familyName": "Coda", + "fullName": "Coda Regular", + "postscriptName": "Coda-Regular", + "category": "display", + "ascent": 2124, + "descent": -784, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 907, + "subsets": { + "latin": { + "xWidthAvg": 907 + }, + "thai": { + "xWidthAvg": 467 + } + } + } + } + }, + "codystar": { + "familyName": "Codystar", + "fullName": "Codystar", + "postscriptName": "Codystar", + "category": "display", + "capHeight": 761, + "ascent": 953, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 753, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 399 + } + }, + "variants": { + "300": { + "familyName": "Codystar", + "fullName": "Codystar Light", + "postscriptName": "Codystar-Light", + "category": "display", + "capHeight": 757, + "ascent": 953, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 748, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 399 + } + } + }, + "regular": { + "familyName": "Codystar", + "fullName": "Codystar", + "postscriptName": "Codystar", + "category": "display", + "capHeight": 761, + "ascent": 953, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 753, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 399 + } + } + } + } + }, + "coiny": { + "familyName": "Coiny", + "fullName": "Coiny Regular", + "postscriptName": "Coiny-Regular", + "category": "display", + "ascent": 750, + "descent": 250, + "lineGap": 600, + "unitsPerEm": 1000, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1074 + } + }, + "variants": { + "regular": { + "familyName": "Coiny", + "fullName": "Coiny Regular", + "postscriptName": "Coiny-Regular", + "category": "display", + "ascent": 750, + "descent": 250, + "lineGap": 600, + "unitsPerEm": 1000, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1074 + } + } + } + } + }, + "combo": { + "familyName": "Combo", + "fullName": "Combo", + "postscriptName": "Combo-Regular", + "category": "display", + "capHeight": 670, + "ascent": 907, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Combo", + "fullName": "Combo", + "postscriptName": "Combo-Regular", + "category": "display", + "capHeight": 670, + "ascent": 907, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "comfortaa": { + "familyName": "Comfortaa", + "fullName": "Comfortaa Regular", + "postscriptName": "Comfortaa-Regular", + "category": "display", + "capHeight": 781, + "ascent": 881, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 625 + } + }, + "variants": { + "300": { + "familyName": "Comfortaa", + "fullName": "Comfortaa Light", + "postscriptName": "Comfortaa-Light", + "category": "display", + "capHeight": 781, + "ascent": 881, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "500": { + "familyName": "Comfortaa", + "fullName": "Comfortaa Medium", + "postscriptName": "Comfortaa-Medium", + "category": "display", + "capHeight": 781, + "ascent": 881, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "600": { + "familyName": "Comfortaa", + "fullName": "Comfortaa SemiBold", + "postscriptName": "Comfortaa-SemiBold", + "category": "display", + "capHeight": 781, + "ascent": 881, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "700": { + "familyName": "Comfortaa", + "fullName": "Comfortaa Bold", + "postscriptName": "Comfortaa-Bold", + "category": "display", + "capHeight": 781, + "ascent": 881, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "regular": { + "familyName": "Comfortaa", + "fullName": "Comfortaa Regular", + "postscriptName": "Comfortaa-Regular", + "category": "display", + "capHeight": 781, + "ascent": 881, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 625 + } + } + } + } + }, + "comforter": { + "familyName": "Comforter", + "fullName": "Comforter Regular", + "postscriptName": "Comforter-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 930, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 523 + } + }, + "variants": { + "regular": { + "familyName": "Comforter", + "fullName": "Comforter Regular", + "postscriptName": "Comforter-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 930, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 523 + } + } + } + } + }, + "comforterBrush": { + "familyName": "Comforter Brush", + "fullName": "Comforter Brush Regular", + "postscriptName": "ComforterBrush-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 930, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 295, + "subsets": { + "latin": { + "xWidthAvg": 295 + }, + "thai": { + "xWidthAvg": 523 + } + }, + "variants": { + "regular": { + "familyName": "Comforter Brush", + "fullName": "Comforter Brush Regular", + "postscriptName": "ComforterBrush-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 930, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 295, + "subsets": { + "latin": { + "xWidthAvg": 295 + }, + "thai": { + "xWidthAvg": 523 + } + } + } + } + }, + "comicNeue": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Regular", + "postscriptName": "ComicNeue-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 504 + } + }, + "variants": { + "300": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Light", + "postscriptName": "ComicNeue-Light", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 497 + } + } + }, + "700": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Bold", + "postscriptName": "ComicNeue-Bold", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 526 + } + } + }, + "regular": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Regular", + "postscriptName": "ComicNeue-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 504 + } + } + }, + "italic": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Italic", + "postscriptName": "ComicNeue-Italic", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "700italic": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Bold Italic", + "postscriptName": "ComicNeue-BoldItalic", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 526 + } + } + }, + "300italic": { + "familyName": "Comic Neue", + "fullName": "Comic Neue Light Italic", + "postscriptName": "ComicNeue-LightItalic", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 608 + } + } + } + } + }, + "comingSoon": { + "familyName": "Coming Soon", + "fullName": "Coming Soon Regular", + "postscriptName": "ComingSoon-Regular", + "category": "handwriting", + "capHeight": 763, + "ascent": 1053, + "descent": -498, + "lineGap": 21, + "unitsPerEm": 1024, + "xHeight": 569, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 340 + } + }, + "variants": { + "regular": { + "familyName": "Coming Soon", + "fullName": "Coming Soon Regular", + "postscriptName": "ComingSoon-Regular", + "category": "handwriting", + "capHeight": 763, + "ascent": 1053, + "descent": -498, + "lineGap": 21, + "unitsPerEm": 1024, + "xHeight": 569, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 340 + } + } + } + } + }, + "comme": { + "familyName": "Comme", + "fullName": "Comme Regular", + "postscriptName": "Comme-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 967, + "subsets": { + "latin": { + "xWidthAvg": 967 + }, + "thai": { + "xWidthAvg": 1312 + } + }, + "variants": { + "100": { + "familyName": "Comme", + "fullName": "Comme Thin", + "postscriptName": "Comme-Thin", + "category": "sans-serif", + "capHeight": 1455, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 930, + "subsets": { + "latin": { + "xWidthAvg": 930 + }, + "thai": { + "xWidthAvg": 1116 + } + } + }, + "200": { + "familyName": "Comme", + "fullName": "Comme ExtraLight", + "postscriptName": "Comme-ExtraLight", + "category": "sans-serif", + "capHeight": 1455, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1181 + } + } + }, + "300": { + "familyName": "Comme", + "fullName": "Comme Light", + "postscriptName": "Comme-Light", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 955, + "subsets": { + "latin": { + "xWidthAvg": 955 + }, + "thai": { + "xWidthAvg": 1247 + } + } + }, + "500": { + "familyName": "Comme", + "fullName": "Comme Medium", + "postscriptName": "Comme-Medium", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 986, + "subsets": { + "latin": { + "xWidthAvg": 986 + }, + "thai": { + "xWidthAvg": 1374 + } + } + }, + "600": { + "familyName": "Comme", + "fullName": "Comme SemiBold", + "postscriptName": "Comme-SemiBold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1004, + "subsets": { + "latin": { + "xWidthAvg": 1004 + }, + "thai": { + "xWidthAvg": 1437 + } + } + }, + "700": { + "familyName": "Comme", + "fullName": "Comme Bold", + "postscriptName": "Comme-Bold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1023, + "subsets": { + "latin": { + "xWidthAvg": 1023 + }, + "thai": { + "xWidthAvg": 1499 + } + } + }, + "800": { + "familyName": "Comme", + "fullName": "Comme ExtraBold", + "postscriptName": "Comme-ExtraBold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1041, + "subsets": { + "latin": { + "xWidthAvg": 1041 + }, + "thai": { + "xWidthAvg": 1562 + } + } + }, + "900": { + "familyName": "Comme", + "fullName": "Comme Black", + "postscriptName": "Comme-Black", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1060, + "subsets": { + "latin": { + "xWidthAvg": 1060 + }, + "thai": { + "xWidthAvg": 1624 + } + } + }, + "regular": { + "familyName": "Comme", + "fullName": "Comme Regular", + "postscriptName": "Comme-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1957, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 967, + "subsets": { + "latin": { + "xWidthAvg": 967 + }, + "thai": { + "xWidthAvg": 1312 + } + } + } + } + }, + "commissioner": { + "familyName": "Commissioner", + "fullName": "Commissioner Regular", + "postscriptName": "Commissioner-Regular", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 992, + "xWidthAvg": 901, + "subsets": { + "latin": { + "xWidthAvg": 901 + }, + "thai": { + "xWidthAvg": 1254 + } + }, + "variants": { + "100": { + "familyName": "Commissioner", + "fullName": "Commissioner Thin", + "postscriptName": "Commissioner-Thin", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 988, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1270 + } + } + }, + "200": { + "familyName": "Commissioner", + "fullName": "Commissioner ExtraLight", + "postscriptName": "Commissioner-ExtraLight", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 989, + "xWidthAvg": 892, + "subsets": { + "latin": { + "xWidthAvg": 892 + }, + "thai": { + "xWidthAvg": 1265 + } + } + }, + "300": { + "familyName": "Commissioner", + "fullName": "Commissioner Light", + "postscriptName": "Commissioner-Light", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 991, + "xWidthAvg": 896, + "subsets": { + "latin": { + "xWidthAvg": 896 + }, + "thai": { + "xWidthAvg": 1259 + } + } + }, + "500": { + "familyName": "Commissioner", + "fullName": "Commissioner Medium", + "postscriptName": "Commissioner-Medium", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 994, + "xWidthAvg": 907, + "subsets": { + "latin": { + "xWidthAvg": 907 + }, + "thai": { + "xWidthAvg": 1246 + } + } + }, + "600": { + "familyName": "Commissioner", + "fullName": "Commissioner SemiBold", + "postscriptName": "Commissioner-SemiBold", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 996, + "xWidthAvg": 912, + "subsets": { + "latin": { + "xWidthAvg": 912 + }, + "thai": { + "xWidthAvg": 1240 + } + } + }, + "700": { + "familyName": "Commissioner", + "fullName": "Commissioner Bold", + "postscriptName": "Commissioner-Bold", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 998, + "xWidthAvg": 917, + "subsets": { + "latin": { + "xWidthAvg": 917 + }, + "thai": { + "xWidthAvg": 1233 + } + } + }, + "800": { + "familyName": "Commissioner", + "fullName": "Commissioner ExtraBold", + "postscriptName": "Commissioner-ExtraBold", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1001, + "xWidthAvg": 925, + "subsets": { + "latin": { + "xWidthAvg": 925 + }, + "thai": { + "xWidthAvg": 1221 + } + } + }, + "900": { + "familyName": "Commissioner", + "fullName": "Commissioner Black", + "postscriptName": "Commissioner-Black", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1004, + "xWidthAvg": 933, + "subsets": { + "latin": { + "xWidthAvg": 933 + }, + "thai": { + "xWidthAvg": 1210 + } + } + }, + "regular": { + "familyName": "Commissioner", + "fullName": "Commissioner Regular", + "postscriptName": "Commissioner-Regular", + "category": "sans-serif", + "capHeight": 1426, + "ascent": 2034, + "descent": -412, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 992, + "xWidthAvg": 901, + "subsets": { + "latin": { + "xWidthAvg": 901 + }, + "thai": { + "xWidthAvg": 1254 + } + } + } + } + }, + "concertOne": { + "familyName": "Concert One", + "fullName": "Concert One", + "postscriptName": "ConcertOne-Regular", + "category": "display", + "capHeight": 1400, + "ascent": 2005, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1004, + "xWidthAvg": 927, + "subsets": { + "latin": { + "xWidthAvg": 927 + }, + "thai": { + "xWidthAvg": 1304 + } + }, + "variants": { + "regular": { + "familyName": "Concert One", + "fullName": "Concert One", + "postscriptName": "ConcertOne-Regular", + "category": "display", + "capHeight": 1400, + "ascent": 2005, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1004, + "xWidthAvg": 927, + "subsets": { + "latin": { + "xWidthAvg": 927 + }, + "thai": { + "xWidthAvg": 1304 + } + } + } + } + }, + "condiment": { + "familyName": "Condiment", + "fullName": "Condiment", + "postscriptName": "Condiment-Regular", + "category": "handwriting", + "capHeight": 327, + "ascent": 882, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 317, + "xWidthAvg": 347, + "subsets": { + "latin": { + "xWidthAvg": 347 + }, + "thai": { + "xWidthAvg": 180 + } + }, + "variants": { + "regular": { + "familyName": "Condiment", + "fullName": "Condiment", + "postscriptName": "Condiment-Regular", + "category": "handwriting", + "capHeight": 327, + "ascent": 882, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 317, + "xWidthAvg": 347, + "subsets": { + "latin": { + "xWidthAvg": 347 + }, + "thai": { + "xWidthAvg": 180 + } + } + } + } + }, + "content": { + "familyName": "Content", + "fullName": "Content", + "postscriptName": "Content", + "category": "display", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "700": { + "familyName": "Content", + "fullName": "Content Bold", + "postscriptName": "Content-Bold", + "category": "display", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "regular": { + "familyName": "Content", + "fullName": "Content", + "postscriptName": "Content", + "category": "display", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "contrailOne": { + "familyName": "Contrail One", + "fullName": "Contrail One", + "postscriptName": "ContrailOne-Regular", + "category": "display", + "capHeight": 421, + "ascent": 1939, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 255, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 420 + } + }, + "variants": { + "regular": { + "familyName": "Contrail One", + "fullName": "Contrail One", + "postscriptName": "ContrailOne-Regular", + "category": "display", + "capHeight": 421, + "ascent": 1939, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 255, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 420 + } + } + } + } + }, + "convergence": { + "familyName": "Convergence", + "fullName": "Convergence-Regular", + "postscriptName": "Convergence-Regular", + "category": "sans-serif", + "capHeight": 727, + "ascent": 943, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Convergence", + "fullName": "Convergence-Regular", + "postscriptName": "Convergence-Regular", + "category": "sans-serif", + "capHeight": 727, + "ascent": 943, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "cookie": { + "familyName": "Cookie", + "fullName": "Cookie-Regular", + "postscriptName": "Cookie-Regular", + "category": "handwriting", + "capHeight": 312, + "ascent": 789, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 115, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 355 + } + }, + "variants": { + "regular": { + "familyName": "Cookie", + "fullName": "Cookie-Regular", + "postscriptName": "Cookie-Regular", + "category": "handwriting", + "capHeight": 312, + "ascent": 789, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 115, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 355 + } + } + } + } + }, + "copse": { + "familyName": "Copse", + "fullName": "Copse", + "postscriptName": "Copse", + "category": "serif", + "capHeight": 1505, + "ascent": 1991, + "descent": -483, + "lineGap": 57, + "unitsPerEm": 2048, + "xHeight": 1001, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 1333 + } + }, + "variants": { + "regular": { + "familyName": "Copse", + "fullName": "Copse", + "postscriptName": "Copse", + "category": "serif", + "capHeight": 1505, + "ascent": 1991, + "descent": -483, + "lineGap": 57, + "unitsPerEm": 2048, + "xHeight": 1001, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 1333 + } + } + } + } + }, + "corben": { + "familyName": "Corben", + "fullName": "Corben", + "postscriptName": "Corben-Regular", + "category": "display", + "capHeight": 1404, + "ascent": 2826, + "descent": -969, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "700": { + "familyName": "Corben", + "fullName": "Corben Bold", + "postscriptName": "Corben-Bold", + "category": "display", + "capHeight": 1593, + "ascent": 2826, + "descent": -969, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1296, + "xWidthAvg": 1336, + "subsets": { + "latin": { + "xWidthAvg": 1336 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "regular": { + "familyName": "Corben", + "fullName": "Corben", + "postscriptName": "Corben-Regular", + "category": "display", + "capHeight": 1404, + "ascent": 2826, + "descent": -969, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "corinthia": { + "familyName": "Corinthia", + "fullName": "Corinthia Regular", + "postscriptName": "Corinthia-Regular", + "category": "handwriting", + "capHeight": 535, + "ascent": 760, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 240, + "xWidthAvg": 255, + "subsets": { + "latin": { + "xWidthAvg": 255 + }, + "thai": { + "xWidthAvg": 531 + } + }, + "variants": { + "700": { + "familyName": "Corinthia", + "fullName": "Corinthia Bold", + "postscriptName": "Corinthia-Bold", + "category": "handwriting", + "capHeight": 545, + "ascent": 760, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 246, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "regular": { + "familyName": "Corinthia", + "fullName": "Corinthia Regular", + "postscriptName": "Corinthia-Regular", + "category": "handwriting", + "capHeight": 535, + "ascent": 760, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 240, + "xWidthAvg": 255, + "subsets": { + "latin": { + "xWidthAvg": 255 + }, + "thai": { + "xWidthAvg": 531 + } + } + } + } + }, + "cormorant": { + "familyName": "Cormorant", + "fullName": "Cormorant Regular", + "postscriptName": "Cormorant-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "300": { + "familyName": "Cormorant", + "fullName": "Cormorant Light", + "postscriptName": "Cormorant-Light", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "500": { + "familyName": "Cormorant", + "fullName": "Cormorant Medium", + "postscriptName": "Cormorant-Medium", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Cormorant", + "fullName": "Cormorant SemiBold", + "postscriptName": "Cormorant-SemiBold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "700": { + "familyName": "Cormorant", + "fullName": "Cormorant Bold", + "postscriptName": "Cormorant-Bold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "regular": { + "familyName": "Cormorant", + "fullName": "Cormorant Regular", + "postscriptName": "Cormorant-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "italic": { + "familyName": "Cormorant", + "fullName": "Cormorant Italic", + "postscriptName": "Cormorant-Italic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "700italic": { + "familyName": "Cormorant", + "fullName": "Cormorant Bold Italic", + "postscriptName": "Cormorant-BoldItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "600italic": { + "familyName": "Cormorant", + "fullName": "Cormorant SemiBold Italic", + "postscriptName": "Cormorant-SemiBoldItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "500italic": { + "familyName": "Cormorant", + "fullName": "Cormorant Medium Italic", + "postscriptName": "Cormorant-MediumItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 359, + "subsets": { + "latin": { + "xWidthAvg": 359 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "300italic": { + "familyName": "Cormorant", + "fullName": "Cormorant Light Italic", + "postscriptName": "Cormorant-LightItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 450 + } + } + } + } + }, + "cormorantGaramond": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Regular", + "postscriptName": "CormorantGaramond-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "300": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Light", + "postscriptName": "CormorantGaramond-Light", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "500": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Medium", + "postscriptName": "CormorantGaramond-Medium", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond SemiBold", + "postscriptName": "CormorantGaramond-SemiBold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "700": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Bold", + "postscriptName": "CormorantGaramond-Bold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "regular": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Regular", + "postscriptName": "CormorantGaramond-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "italic": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Italic", + "postscriptName": "CormorantGaramond-Italic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "700italic": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Bold Italic", + "postscriptName": "CormorantGaramond-BoldItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "600italic": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond SemiBold Italic", + "postscriptName": "CormorantGaramond-SemiBoldItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "500italic": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Medium Italic", + "postscriptName": "CormorantGaramond-MediumItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 359, + "subsets": { + "latin": { + "xWidthAvg": 359 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "300italic": { + "familyName": "Cormorant Garamond", + "fullName": "Cormorant Garamond Light Italic", + "postscriptName": "CormorantGaramond-LightItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 450 + } + } + } + } + }, + "cormorantInfant": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Regular", + "postscriptName": "CormorantInfant-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "300": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Light", + "postscriptName": "CormorantInfant-Light", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "500": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Medium", + "postscriptName": "CormorantInfant-Medium", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant SemiBold", + "postscriptName": "CormorantInfant-SemiBold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "700": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Bold", + "postscriptName": "CormorantInfant-Bold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "regular": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Regular", + "postscriptName": "CormorantInfant-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "italic": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Italic", + "postscriptName": "CormorantInfant-Italic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 357, + "subsets": { + "latin": { + "xWidthAvg": 357 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "700italic": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Bold Italic", + "postscriptName": "CormorantInfant-BoldItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "600italic": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant SemiBold Italic", + "postscriptName": "CormorantInfant-SemiBoldItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "500italic": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Medium Italic", + "postscriptName": "CormorantInfant-MediumItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 450 + } + } + }, + "300italic": { + "familyName": "Cormorant Infant", + "fullName": "Cormorant Infant Light Italic", + "postscriptName": "CormorantInfant-LightItalic", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 450 + } + } + } + } + }, + "cormorantSC": { + "familyName": "Cormorant SC", + "fullName": "Cormorant SC Regular", + "postscriptName": "CormorantSC-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "300": { + "familyName": "Cormorant SC", + "fullName": "Cormorant SC Light", + "postscriptName": "CormorantSC-Light", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "500": { + "familyName": "Cormorant SC", + "fullName": "Cormorant SC Medium", + "postscriptName": "CormorantSC-Medium", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Cormorant SC", + "fullName": "Cormorant SC SemiBold", + "postscriptName": "CormorantSC-SemiBold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "700": { + "familyName": "Cormorant SC", + "fullName": "Cormorant SC Bold", + "postscriptName": "CormorantSC-Bold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "regular": { + "familyName": "Cormorant SC", + "fullName": "Cormorant SC Regular", + "postscriptName": "CormorantSC-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 501 + } + } + } + } + }, + "cormorantUnicase": { + "familyName": "Cormorant Unicase", + "fullName": "Cormorant Unicase Regular", + "postscriptName": "CormorantUnicase-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "300": { + "familyName": "Cormorant Unicase", + "fullName": "Cormorant Unicase Light", + "postscriptName": "CormorantUnicase-Light", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "500": { + "familyName": "Cormorant Unicase", + "fullName": "Cormorant Unicase Medium", + "postscriptName": "CormorantUnicase-Medium", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Cormorant Unicase", + "fullName": "Cormorant Unicase SemiBold", + "postscriptName": "CormorantUnicase-SemiBold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "700": { + "familyName": "Cormorant Unicase", + "fullName": "Cormorant Unicase Bold", + "postscriptName": "CormorantUnicase-Bold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "regular": { + "familyName": "Cormorant Unicase", + "fullName": "Cormorant Unicase Regular", + "postscriptName": "CormorantUnicase-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 501 + } + } + } + } + }, + "cormorantUpright": { + "familyName": "Cormorant Upright", + "fullName": "Cormorant Upright Regular", + "postscriptName": "CormorantUpright-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "300": { + "familyName": "Cormorant Upright", + "fullName": "Cormorant Upright Light", + "postscriptName": "CormorantUpright-Light", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "500": { + "familyName": "Cormorant Upright", + "fullName": "Cormorant Upright Medium", + "postscriptName": "CormorantUpright-Medium", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Cormorant Upright", + "fullName": "Cormorant Upright SemiBold", + "postscriptName": "CormorantUpright-SemiBold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "700": { + "familyName": "Cormorant Upright", + "fullName": "Cormorant Upright Bold", + "postscriptName": "CormorantUpright-Bold", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "regular": { + "familyName": "Cormorant Upright", + "fullName": "Cormorant Upright Regular", + "postscriptName": "CormorantUpright-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 924, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 501 + } + } + } + } + }, + "courgette": { + "familyName": "Courgette", + "fullName": "Courgette Regular", + "postscriptName": "Courgette-Regular", + "category": "handwriting", + "capHeight": 301, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 112, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 1837 + } + }, + "variants": { + "regular": { + "familyName": "Courgette", + "fullName": "Courgette Regular", + "postscriptName": "Courgette-Regular", + "category": "handwriting", + "capHeight": 301, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 112, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 1837 + } + } + } + } + }, + "courierNew": { + "familyName": "Courier New", + "fullName": "Courier New", + "postscriptName": "CourierNewPSMT", + "category": "monospace", + "capHeight": 1170, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 866, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + }, + "variants": { + "700": { + "familyName": "Courier New", + "fullName": "Courier New Bold", + "postscriptName": "CourierNewPS-BoldMT", + "category": "monospace", + "capHeight": 1212, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 908, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "regular": { + "familyName": "Courier New", + "fullName": "Courier New", + "postscriptName": "CourierNewPSMT", + "category": "monospace", + "capHeight": 1170, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 866, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "italic": { + "familyName": "Courier New", + "fullName": "Courier New Italic", + "postscriptName": "CourierNewPS-ItalicMT", + "category": "monospace", + "capHeight": 1170, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 866, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "700italic": { + "familyName": "Courier New", + "fullName": "Courier New Bold Italic", + "postscriptName": "CourierNewPS-BoldItalicMT", + "category": "monospace", + "capHeight": 1212, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 908, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + } + } + }, + "courierPrime": { + "familyName": "Courier Prime", + "fullName": "Courier Prime Regular", + "postscriptName": "CourierPrime-Regular", + "category": "monospace", + "capHeight": 1187, + "ascent": 1600, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 924, + "xWidthAvg": 1228, + "subsets": { + "latin": { + "xWidthAvg": 1228 + }, + "thai": { + "xWidthAvg": 1228 + } + }, + "variants": { + "700": { + "familyName": "Courier Prime", + "fullName": "Courier Prime Bold", + "postscriptName": "CourierPrime-Bold", + "category": "monospace", + "capHeight": 1187, + "ascent": 1600, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 924, + "xWidthAvg": 1228, + "subsets": { + "latin": { + "xWidthAvg": 1228 + }, + "thai": { + "xWidthAvg": 1228 + } + } + }, + "regular": { + "familyName": "Courier Prime", + "fullName": "Courier Prime Regular", + "postscriptName": "CourierPrime-Regular", + "category": "monospace", + "capHeight": 1187, + "ascent": 1600, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 924, + "xWidthAvg": 1228, + "subsets": { + "latin": { + "xWidthAvg": 1228 + }, + "thai": { + "xWidthAvg": 1228 + } + } + }, + "italic": { + "familyName": "Courier Prime", + "fullName": "Courier Prime Italic", + "postscriptName": "CourierPrime-Italic", + "category": "monospace", + "capHeight": 1187, + "ascent": 1600, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 924, + "xWidthAvg": 1228, + "subsets": { + "latin": { + "xWidthAvg": 1228 + }, + "thai": { + "xWidthAvg": 1228 + } + } + }, + "700italic": { + "familyName": "Courier Prime", + "fullName": "Courier Prime Bold Italic", + "postscriptName": "CourierPrime-BoldItalic", + "category": "monospace", + "capHeight": 1187, + "ascent": 1600, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 924, + "xWidthAvg": 1228, + "subsets": { + "latin": { + "xWidthAvg": 1228 + }, + "thai": { + "xWidthAvg": 1228 + } + } + } + } + }, + "cousine": { + "familyName": "Cousine", + "fullName": "Cousine Regular", + "postscriptName": "Cousine-Regular", + "category": "monospace", + "capHeight": 1349, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + }, + "variants": { + "700": { + "familyName": "Cousine", + "fullName": "Cousine Bold", + "postscriptName": "Cousine-Bold", + "category": "monospace", + "capHeight": 1349, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "regular": { + "familyName": "Cousine", + "fullName": "Cousine Regular", + "postscriptName": "Cousine-Regular", + "category": "monospace", + "capHeight": 1349, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "italic": { + "familyName": "Cousine", + "fullName": "Cousine Italic", + "postscriptName": "Cousine-Italic", + "category": "monospace", + "capHeight": 1349, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "700italic": { + "familyName": "Cousine", + "fullName": "Cousine Bold Italic", + "postscriptName": "Cousine-BoldItalic", + "category": "monospace", + "capHeight": 1349, + "ascent": 1705, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + } + } + }, + "coustard": { + "familyName": "Coustard", + "fullName": "Coustard Regular", + "postscriptName": "Coustard-Regular", + "category": "serif", + "capHeight": 346, + "ascent": 2095, + "descent": -781, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1095, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "900": { + "familyName": "Coustard", + "fullName": "Coustard Black", + "postscriptName": "Coustard-Black", + "category": "serif", + "capHeight": 173, + "ascent": 2095, + "descent": -781, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 235, + "xWidthAvg": 1164, + "subsets": { + "latin": { + "xWidthAvg": 1164 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "regular": { + "familyName": "Coustard", + "fullName": "Coustard Regular", + "postscriptName": "Coustard-Regular", + "category": "serif", + "capHeight": 346, + "ascent": 2095, + "descent": -781, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1095, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "coveredByYourGrace": { + "familyName": "Covered By Your Grace", + "fullName": "Covered By Your Grace", + "postscriptName": "CoveredByYourGrace", + "category": "handwriting", + "capHeight": 795, + "ascent": 995, + "descent": -384, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 500, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 410 + } + }, + "variants": { + "regular": { + "familyName": "Covered By Your Grace", + "fullName": "Covered By Your Grace", + "postscriptName": "CoveredByYourGrace", + "category": "handwriting", + "capHeight": 795, + "ascent": 995, + "descent": -384, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 500, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 410 + } + } + } + } + }, + "craftyGirls": { + "familyName": "Crafty Girls", + "fullName": "Crafty Girls Regular", + "postscriptName": "CraftyGirls-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1001, + "descent": -461, + "lineGap": 21, + "unitsPerEm": 1024, + "xHeight": 548, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 389 + } + }, + "variants": { + "regular": { + "familyName": "Crafty Girls", + "fullName": "Crafty Girls Regular", + "postscriptName": "CraftyGirls-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1001, + "descent": -461, + "lineGap": 21, + "unitsPerEm": 1024, + "xHeight": 548, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 389 + } + } + } + } + }, + "creepster": { + "familyName": "Creepster", + "fullName": "Creepster", + "postscriptName": "Creepster-Regular", + "category": "display", + "capHeight": 751, + "ascent": 974, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 751, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 241 + } + }, + "variants": { + "regular": { + "familyName": "Creepster", + "fullName": "Creepster", + "postscriptName": "Creepster-Regular", + "category": "display", + "capHeight": 751, + "ascent": 974, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 751, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 241 + } + } + } + } + }, + "creteRound": { + "familyName": "Crete Round", + "fullName": "Crete Round", + "postscriptName": "CreteRound-Regular", + "category": "serif", + "capHeight": 679, + "ascent": 990, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Crete Round", + "fullName": "Crete Round", + "postscriptName": "CreteRound-Regular", + "category": "serif", + "capHeight": 679, + "ascent": 990, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Crete Round", + "fullName": "Crete Round Italic", + "postscriptName": "CreteRound-Italic", + "category": "serif", + "capHeight": 679, + "ascent": 990, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "crimsonPro": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Regular", + "postscriptName": "CrimsonPro-Regular", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "200": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro ExtraLight", + "postscriptName": "CrimsonPro-ExtraLight", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "300": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Light", + "postscriptName": "CrimsonPro-Light", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "500": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Medium", + "postscriptName": "CrimsonPro-Medium", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "600": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro SemiBold", + "postscriptName": "CrimsonPro-SemiBold", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Bold", + "postscriptName": "CrimsonPro-Bold", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "800": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro ExtraBold", + "postscriptName": "CrimsonPro-ExtraBold", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "900": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Black", + "postscriptName": "CrimsonPro-Black", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "regular": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Regular", + "postscriptName": "CrimsonPro-Regular", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Italic", + "postscriptName": "CrimsonPro-Italic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "900italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Black Italic", + "postscriptName": "CrimsonPro-BlackItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "800italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro ExtraBold Italic", + "postscriptName": "CrimsonPro-ExtraBoldItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Bold Italic", + "postscriptName": "CrimsonPro-BoldItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "600italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro SemiBold Italic", + "postscriptName": "CrimsonPro-SemiBoldItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "500italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Medium Italic", + "postscriptName": "CrimsonPro-MediumItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "300italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro Light Italic", + "postscriptName": "CrimsonPro-LightItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "200italic": { + "familyName": "Crimson Pro", + "fullName": "Crimson Pro ExtraLight Italic", + "postscriptName": "CrimsonPro-ExtraLightItalic", + "category": "serif", + "capHeight": 587, + "ascent": 918, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "crimsonText": { + "familyName": "Crimson Text", + "fullName": "Crimson Text Regular", + "postscriptName": "CrimsonText-Regular", + "category": "serif", + "capHeight": 656, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 374 + } + }, + "variants": { + "600": { + "familyName": "Crimson Text", + "fullName": "Crimson Text SemiBold", + "postscriptName": "CrimsonText-SemiBold", + "category": "serif", + "capHeight": 656, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "700": { + "familyName": "Crimson Text", + "fullName": "Crimson Text Bold", + "postscriptName": "CrimsonText-Bold", + "category": "serif", + "capHeight": 656, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "regular": { + "familyName": "Crimson Text", + "fullName": "Crimson Text Regular", + "postscriptName": "CrimsonText-Regular", + "category": "serif", + "capHeight": 656, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "italic": { + "familyName": "Crimson Text", + "fullName": "Crimson Text Italic", + "postscriptName": "CrimsonText-Italic", + "category": "serif", + "capHeight": 658, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "700italic": { + "familyName": "Crimson Text", + "fullName": "Crimson Text Bold Italic", + "postscriptName": "CrimsonText-BoldItalic", + "category": "serif", + "capHeight": 658, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "600italic": { + "familyName": "Crimson Text", + "fullName": "Crimson Text SemiBold Italic", + "postscriptName": "CrimsonText-SemiBoldItalic", + "category": "serif", + "capHeight": 658, + "ascent": 972, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 430, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 374 + } + } + } + } + }, + "croissantOne": { + "familyName": "Croissant One", + "fullName": "Croissant One", + "postscriptName": "CroissantOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1071, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 546, + "subsets": { + "latin": { + "xWidthAvg": 546 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Croissant One", + "fullName": "Croissant One", + "postscriptName": "CroissantOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1071, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 546, + "subsets": { + "latin": { + "xWidthAvg": 546 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "crushed": { + "familyName": "Crushed", + "fullName": "Crushed Regular", + "postscriptName": "Crushed-Regular", + "category": "display", + "capHeight": 1374, + "ascent": 1820, + "descent": -483, + "lineGap": 51, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Crushed", + "fullName": "Crushed Regular", + "postscriptName": "Crushed-Regular", + "category": "display", + "capHeight": 1374, + "ascent": 1820, + "descent": -483, + "lineGap": 51, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "cuprum": { + "familyName": "Cuprum", + "fullName": "Cuprum Regular", + "postscriptName": "Cuprum-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Cuprum", + "fullName": "Cuprum Medium", + "postscriptName": "Cuprum-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Cuprum", + "fullName": "Cuprum SemiBold", + "postscriptName": "Cuprum-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Cuprum", + "fullName": "Cuprum Bold", + "postscriptName": "Cuprum-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Cuprum", + "fullName": "Cuprum Regular", + "postscriptName": "Cuprum-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Cuprum", + "fullName": "Cuprum Italic", + "postscriptName": "Cuprum-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Cuprum", + "fullName": "Cuprum Bold Italic", + "postscriptName": "Cuprum-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Cuprum", + "fullName": "Cuprum SemiBold Italic", + "postscriptName": "Cuprum-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Cuprum", + "fullName": "Cuprum Medium Italic", + "postscriptName": "Cuprum-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "cuteFont": { + "familyName": "Cute Font", + "fullName": "Cute Font Regular", + "postscriptName": "CuteFont-Regular", + "category": "display", + "capHeight": 429, + "ascent": 710, + "descent": -290, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 312, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 428 + } + }, + "variants": { + "regular": { + "familyName": "Cute Font", + "fullName": "Cute Font Regular", + "postscriptName": "CuteFont-Regular", + "category": "display", + "capHeight": 429, + "ascent": 710, + "descent": -290, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 312, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 428 + } + } + } + } + }, + "cutive": { + "familyName": "Cutive", + "fullName": "Cutive Regular", + "postscriptName": "Cutive-Regular", + "category": "serif", + "capHeight": 1714, + "ascent": 1580, + "descent": -666, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1160, + "xWidthAvg": 1173, + "subsets": { + "latin": { + "xWidthAvg": 1173 + }, + "thai": { + "xWidthAvg": 1674 + } + }, + "variants": { + "regular": { + "familyName": "Cutive", + "fullName": "Cutive Regular", + "postscriptName": "Cutive-Regular", + "category": "serif", + "capHeight": 1714, + "ascent": 1580, + "descent": -666, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1160, + "xWidthAvg": 1173, + "subsets": { + "latin": { + "xWidthAvg": 1173 + }, + "thai": { + "xWidthAvg": 1674 + } + } + } + } + }, + "cutiveMono": { + "familyName": "Cutive Mono", + "fullName": "Cutive Mono Regular", + "postscriptName": "CutiveMono-Regular", + "category": "monospace", + "capHeight": 1171, + "ascent": 1697, + "descent": -558, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 774, + "xWidthAvg": 1240, + "subsets": { + "latin": { + "xWidthAvg": 1240 + }, + "thai": { + "xWidthAvg": 1240 + } + }, + "variants": { + "regular": { + "familyName": "Cutive Mono", + "fullName": "Cutive Mono Regular", + "postscriptName": "CutiveMono-Regular", + "category": "monospace", + "capHeight": 1171, + "ascent": 1697, + "descent": -558, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 774, + "xWidthAvg": 1240, + "subsets": { + "latin": { + "xWidthAvg": 1240 + }, + "thai": { + "xWidthAvg": 1240 + } + } + } + } + }, + "dMMono": { + "familyName": "DM Mono", + "fullName": "DM Mono Regular", + "postscriptName": "DMMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "DM Mono", + "fullName": "DM Mono Light", + "postscriptName": "DMMono-Light", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "DM Mono", + "fullName": "DM Mono Medium", + "postscriptName": "DMMono-Medium", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "DM Mono", + "fullName": "DM Mono Regular", + "postscriptName": "DMMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "DM Mono", + "fullName": "DM Mono Italic", + "postscriptName": "DMMono-Italic", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "DM Mono", + "fullName": "DM Mono Medium Italic", + "postscriptName": "DMMono-MediumItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "DM Mono", + "fullName": "DM Mono Light Italic", + "postscriptName": "DMMono-LightItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "dMSans": { + "familyName": "DM Sans", + "fullName": "DM Sans Regular", + "postscriptName": "DMSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 551 + } + }, + "variants": { + "100": { + "familyName": "DM Sans", + "fullName": "DM Sans Thin", + "postscriptName": "DMSans-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 554 + } + } + }, + "200": { + "familyName": "DM Sans", + "fullName": "DM Sans ExtraLight", + "postscriptName": "DMSans-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "300": { + "familyName": "DM Sans", + "fullName": "DM Sans Light", + "postscriptName": "DMSans-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 557 + } + } + }, + "500": { + "familyName": "DM Sans", + "fullName": "DM Sans Medium", + "postscriptName": "DMSans-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 547 + } + } + }, + "600": { + "familyName": "DM Sans", + "fullName": "DM Sans SemiBold", + "postscriptName": "DMSans-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 542 + } + } + }, + "700": { + "familyName": "DM Sans", + "fullName": "DM Sans Bold", + "postscriptName": "DMSans-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 538 + } + } + }, + "800": { + "familyName": "DM Sans", + "fullName": "DM Sans ExtraBold", + "postscriptName": "DMSans-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "900": { + "familyName": "DM Sans", + "fullName": "DM Sans Black", + "postscriptName": "DMSans-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 535 + } + } + }, + "regular": { + "familyName": "DM Sans", + "fullName": "DM Sans Regular", + "postscriptName": "DMSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 551 + } + } + }, + "italic": { + "familyName": "DM Sans", + "fullName": "DM Sans Italic", + "postscriptName": "DMSans-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 551 + } + } + }, + "900italic": { + "familyName": "DM Sans", + "fullName": "DM Sans Black Italic", + "postscriptName": "DMSans-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 535 + } + } + }, + "800italic": { + "familyName": "DM Sans", + "fullName": "DM Sans ExtraBold Italic", + "postscriptName": "DMSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 538 + } + } + }, + "700italic": { + "familyName": "DM Sans", + "fullName": "DM Sans Bold Italic", + "postscriptName": "DMSans-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 539 + } + } + }, + "600italic": { + "familyName": "DM Sans", + "fullName": "DM Sans SemiBold Italic", + "postscriptName": "DMSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 542 + } + } + }, + "500italic": { + "familyName": "DM Sans", + "fullName": "DM Sans Medium Italic", + "postscriptName": "DMSans-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 547 + } + } + }, + "300italic": { + "familyName": "DM Sans", + "fullName": "DM Sans Light Italic", + "postscriptName": "DMSans-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 557 + } + } + }, + "200italic": { + "familyName": "DM Sans", + "fullName": "DM Sans ExtraLight Italic", + "postscriptName": "DMSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 557 + } + } + }, + "100italic": { + "familyName": "DM Sans", + "fullName": "DM Sans Thin Italic", + "postscriptName": "DMSans-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 556 + } + } + } + } + }, + "dMSerifDisplay": { + "familyName": "DM Serif Display", + "fullName": "DM Serif Display Regular", + "postscriptName": "DMSerifDisplay-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "regular": { + "familyName": "DM Serif Display", + "fullName": "DM Serif Display Regular", + "postscriptName": "DMSerifDisplay-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "italic": { + "familyName": "DM Serif Display", + "fullName": "DM Serif Display Italic", + "postscriptName": "DMSerifDisplay-Italic", + "category": "serif", + "capHeight": 660, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 640 + } + } + } + } + }, + "dMSerifText": { + "familyName": "DM Serif Text", + "fullName": "DM Serif Text Regular", + "postscriptName": "DMSerifText-Regular", + "category": "serif", + "capHeight": 661, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "regular": { + "familyName": "DM Serif Text", + "fullName": "DM Serif Text Regular", + "postscriptName": "DMSerifText-Regular", + "category": "serif", + "capHeight": 661, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "italic": { + "familyName": "DM Serif Text", + "fullName": "DM Serif Text Italic", + "postscriptName": "DMSerifText-Italic", + "category": "serif", + "capHeight": 661, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 640 + } + } + } + } + }, + "daiBannaSIL": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL", + "postscriptName": "DaiBannaSIL-Regular", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 809, + "subsets": { + "latin": { + "xWidthAvg": 809 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "300": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Light", + "postscriptName": "DaiBannaSIL-Light", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 790, + "subsets": { + "latin": { + "xWidthAvg": 790 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "500": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Medium", + "postscriptName": "DaiBannaSIL-Medium", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 824, + "subsets": { + "latin": { + "xWidthAvg": 824 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL SemiBold", + "postscriptName": "DaiBannaSIL-SemiBold", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 839, + "subsets": { + "latin": { + "xWidthAvg": 839 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Bold", + "postscriptName": "DaiBannaSIL-Bold", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL", + "postscriptName": "DaiBannaSIL-Regular", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 809, + "subsets": { + "latin": { + "xWidthAvg": 809 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "italic": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Italic", + "postscriptName": "DaiBannaSIL-Italic", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 740, + "subsets": { + "latin": { + "xWidthAvg": 740 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700italic": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Bold Italic", + "postscriptName": "DaiBannaSIL-BoldItalic", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 800, + "subsets": { + "latin": { + "xWidthAvg": 800 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600italic": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL SemiBold Italic", + "postscriptName": "DaiBannaSIL-SemiBoldItalic", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 774, + "subsets": { + "latin": { + "xWidthAvg": 774 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "500italic": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Medium Italic", + "postscriptName": "DaiBannaSIL-MediumItalic", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300italic": { + "familyName": "Dai Banna SIL", + "fullName": "Dai Banna SIL Light Italic", + "postscriptName": "DaiBannaSIL-LightItalic", + "category": "serif", + "capHeight": 1355, + "ascent": 1685, + "descent": -638, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 906, + "xWidthAvg": 720, + "subsets": { + "latin": { + "xWidthAvg": 720 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "damion": { + "familyName": "Damion", + "fullName": "Damion Regular", + "postscriptName": "Damion-Regular", + "category": "handwriting", + "capHeight": 1440, + "ascent": 2068, + "descent": -746, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 720, + "xWidthAvg": 758, + "subsets": { + "latin": { + "xWidthAvg": 758 + }, + "thai": { + "xWidthAvg": 1452 + } + }, + "variants": { + "regular": { + "familyName": "Damion", + "fullName": "Damion Regular", + "postscriptName": "Damion-Regular", + "category": "handwriting", + "capHeight": 1440, + "ascent": 2068, + "descent": -746, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 720, + "xWidthAvg": 758, + "subsets": { + "latin": { + "xWidthAvg": 758 + }, + "thai": { + "xWidthAvg": 1452 + } + } + } + } + }, + "dancingScript": { + "familyName": "Dancing Script", + "fullName": "Dancing Script Regular", + "postscriptName": "DancingScript-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 332, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 428 + } + }, + "variants": { + "500": { + "familyName": "Dancing Script", + "fullName": "Dancing Script Medium", + "postscriptName": "DancingScript-Medium", + "category": "handwriting", + "capHeight": 720, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 332, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 428 + } + } + }, + "600": { + "familyName": "Dancing Script", + "fullName": "Dancing Script SemiBold", + "postscriptName": "DancingScript-SemiBold", + "category": "handwriting", + "capHeight": 720, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 332, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 428 + } + } + }, + "700": { + "familyName": "Dancing Script", + "fullName": "Dancing Script Bold", + "postscriptName": "DancingScript-Bold", + "category": "handwriting", + "capHeight": 720, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 332, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 428 + } + } + }, + "regular": { + "familyName": "Dancing Script", + "fullName": "Dancing Script Regular", + "postscriptName": "DancingScript-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 332, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 428 + } + } + } + } + }, + "danfo": { + "familyName": "Danfo", + "fullName": "Danfo Regular", + "postscriptName": "Danfo-Regular", + "category": "serif", + "capHeight": 716, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Danfo", + "fullName": "Danfo Regular", + "postscriptName": "Danfo-Regular", + "category": "serif", + "capHeight": 716, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "dangrek": { + "familyName": "Dangrek", + "fullName": "Dangrek Regular", + "postscriptName": "Dangrek-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 882, + "subsets": { + "latin": { + "xWidthAvg": 882 + }, + "thai": { + "xWidthAvg": 1304 + } + }, + "variants": { + "regular": { + "familyName": "Dangrek", + "fullName": "Dangrek Regular", + "postscriptName": "Dangrek-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 882, + "subsets": { + "latin": { + "xWidthAvg": 882 + }, + "thai": { + "xWidthAvg": 1304 + } + } + } + } + }, + "darkerGrotesque": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque Regular", + "postscriptName": "DarkerGrotesque-Regular", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 406, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 541 + } + }, + "variants": { + "300": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque Light", + "postscriptName": "DarkerGrotesque-Light", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 404, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 530 + } + } + }, + "500": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque Medium", + "postscriptName": "DarkerGrotesque-Medium", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 407, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 552 + } + } + }, + "600": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque SemiBold", + "postscriptName": "DarkerGrotesque-SemiBold", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 409, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "700": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque Bold", + "postscriptName": "DarkerGrotesque-Bold", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 411, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 574 + } + } + }, + "800": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque ExtraBold", + "postscriptName": "DarkerGrotesque-ExtraBold", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 412, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 585 + } + } + }, + "900": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque Black", + "postscriptName": "DarkerGrotesque-Black", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "regular": { + "familyName": "Darker Grotesque", + "fullName": "Darker Grotesque Regular", + "postscriptName": "DarkerGrotesque-Regular", + "category": "sans-serif", + "capHeight": 563, + "ascent": 1060, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 406, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 541 + } + } + } + } + }, + "darumadropOne": { + "familyName": "Darumadrop One", + "fullName": "Darumadrop One Regular", + "postscriptName": "DarumadropOne-Regular", + "category": "display", + "capHeight": 590, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 435, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 797 + } + }, + "variants": { + "regular": { + "familyName": "Darumadrop One", + "fullName": "Darumadrop One Regular", + "postscriptName": "DarumadropOne-Regular", + "category": "display", + "capHeight": 590, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 435, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 797 + } + } + } + } + }, + "davidLibre": { + "familyName": "David Libre", + "fullName": "David Libre Regular", + "postscriptName": "DavidLibre-Regular", + "category": "serif", + "capHeight": 1360, + "ascent": 1599, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 989, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 1318 + } + }, + "variants": { + "500": { + "familyName": "David Libre", + "fullName": "David Libre Medium", + "postscriptName": "DavidLibre-Medium", + "category": "serif", + "capHeight": 1362, + "ascent": 1599, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 989, + "xWidthAvg": 880, + "subsets": { + "latin": { + "xWidthAvg": 880 + }, + "thai": { + "xWidthAvg": 1314 + } + } + }, + "700": { + "familyName": "David Libre", + "fullName": "David Libre Bold", + "postscriptName": "DavidLibre-Bold", + "category": "serif", + "capHeight": 1362, + "ascent": 1599, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 989, + "xWidthAvg": 896, + "subsets": { + "latin": { + "xWidthAvg": 896 + }, + "thai": { + "xWidthAvg": 1330 + } + } + }, + "regular": { + "familyName": "David Libre", + "fullName": "David Libre Regular", + "postscriptName": "DavidLibre-Regular", + "category": "serif", + "capHeight": 1360, + "ascent": 1599, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 989, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 1318 + } + } + } + } + }, + "dawningOfANewDay": { + "familyName": "Dawning of a New Day", + "fullName": "Dawning of a New Day", + "postscriptName": "DawningofaNewDay", + "category": "handwriting", + "capHeight": 818, + "ascent": 1151, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 218, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 633 + } + }, + "variants": { + "regular": { + "familyName": "Dawning of a New Day", + "fullName": "Dawning of a New Day", + "postscriptName": "DawningofaNewDay", + "category": "handwriting", + "capHeight": 818, + "ascent": 1151, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 218, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 633 + } + } + } + } + }, + "daysOne": { + "familyName": "Days One", + "fullName": "Days One", + "postscriptName": "DaysOne-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2040, + "descent": -567, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1128, + "subsets": { + "latin": { + "xWidthAvg": 1128 + }, + "thai": { + "xWidthAvg": 717 + } + }, + "variants": { + "regular": { + "familyName": "Days One", + "fullName": "Days One", + "postscriptName": "DaysOne-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2040, + "descent": -567, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1128, + "subsets": { + "latin": { + "xWidthAvg": 1128 + }, + "thai": { + "xWidthAvg": 717 + } + } + } + } + }, + "dekko": { + "familyName": "Dekko", + "fullName": "Dekko", + "postscriptName": "Dekko", + "category": "handwriting", + "capHeight": 1340, + "ascent": 2231, + "descent": -1112, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 995, + "xWidthAvg": 823, + "subsets": { + "latin": { + "xWidthAvg": 823 + }, + "thai": { + "xWidthAvg": 1518 + } + }, + "variants": { + "regular": { + "familyName": "Dekko", + "fullName": "Dekko", + "postscriptName": "Dekko", + "category": "handwriting", + "capHeight": 1340, + "ascent": 2231, + "descent": -1112, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 995, + "xWidthAvg": 823, + "subsets": { + "latin": { + "xWidthAvg": 823 + }, + "thai": { + "xWidthAvg": 1518 + } + } + } + } + }, + "delaGothicOne": { + "familyName": "Dela Gothic One", + "fullName": "Dela Gothic One Regular", + "postscriptName": "DelaGothicOne-Regular", + "category": "display", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 586, + "subsets": { + "latin": { + "xWidthAvg": 586 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Dela Gothic One", + "fullName": "Dela Gothic One Regular", + "postscriptName": "DelaGothicOne-Regular", + "category": "display", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 586, + "subsets": { + "latin": { + "xWidthAvg": 586 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "deliciousHandrawn": { + "familyName": "Delicious Handrawn", + "fullName": "Delicious Handrawn Regular", + "postscriptName": "DeliciousHandrawn-Regular", + "category": "handwriting", + "capHeight": 850, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 333, + "subsets": { + "latin": { + "xWidthAvg": 333 + }, + "thai": { + "xWidthAvg": 560 + } + }, + "variants": { + "regular": { + "familyName": "Delicious Handrawn", + "fullName": "Delicious Handrawn Regular", + "postscriptName": "DeliciousHandrawn-Regular", + "category": "handwriting", + "capHeight": 850, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 333, + "subsets": { + "latin": { + "xWidthAvg": 333 + }, + "thai": { + "xWidthAvg": 560 + } + } + } + } + }, + "delius": { + "familyName": "Delius", + "fullName": "Delius-Regular", + "postscriptName": "Delius-Regular", + "category": "handwriting", + "capHeight": 195, + "ascent": 986, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 85, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Delius", + "fullName": "Delius-Regular", + "postscriptName": "Delius-Regular", + "category": "handwriting", + "capHeight": 195, + "ascent": 986, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 85, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "deliusSwashCaps": { + "familyName": "Delius Swash Caps", + "fullName": "Delius Swash Caps", + "postscriptName": "DeliusSwashCaps-Regular", + "category": "handwriting", + "capHeight": 282, + "ascent": 986, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 113, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 238 + } + }, + "variants": { + "regular": { + "familyName": "Delius Swash Caps", + "fullName": "Delius Swash Caps", + "postscriptName": "DeliusSwashCaps-Regular", + "category": "handwriting", + "capHeight": 282, + "ascent": 986, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 113, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 238 + } + } + } + } + }, + "deliusUnicase": { + "familyName": "Delius Unicase", + "fullName": "Delius Unicase", + "postscriptName": "DeliusUnicase-Regular", + "category": "handwriting", + "capHeight": 195, + "ascent": 1016, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 634, + "subsets": { + "latin": { + "xWidthAvg": 634 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "700": { + "familyName": "Delius Unicase", + "fullName": "Delius Unicase Bold", + "postscriptName": "DeliusUnicase-Bold", + "category": "handwriting", + "capHeight": 195, + "ascent": 1031, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 637, + "subsets": { + "latin": { + "xWidthAvg": 637 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Delius Unicase", + "fullName": "Delius Unicase", + "postscriptName": "DeliusUnicase-Regular", + "category": "handwriting", + "capHeight": 195, + "ascent": 1016, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 634, + "subsets": { + "latin": { + "xWidthAvg": 634 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "dellaRespira": { + "familyName": "Della Respira", + "fullName": "Della Respira", + "postscriptName": "DellaRespira-Regular", + "category": "serif", + "ascent": 2196, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Della Respira", + "fullName": "Della Respira", + "postscriptName": "DellaRespira-Regular", + "category": "serif", + "ascent": 2196, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "denkOne": { + "familyName": "Denk One", + "fullName": "Denk One Regular", + "postscriptName": "DenkOne-Regular", + "category": "sans-serif", + "capHeight": 1690, + "ascent": 2118, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1202, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 1770 + } + }, + "variants": { + "regular": { + "familyName": "Denk One", + "fullName": "Denk One Regular", + "postscriptName": "DenkOne-Regular", + "category": "sans-serif", + "capHeight": 1690, + "ascent": 2118, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1202, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 1770 + } + } + } + } + }, + "devonshire": { + "familyName": "Devonshire", + "fullName": "Devonshire-Regular", + "postscriptName": "Devonshire-Regular", + "category": "handwriting", + "capHeight": 664, + "ascent": 981, + "descent": -433, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 405, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Devonshire", + "fullName": "Devonshire-Regular", + "postscriptName": "Devonshire-Regular", + "category": "handwriting", + "capHeight": 664, + "ascent": 981, + "descent": -433, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 405, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "dhurjati": { + "familyName": "Dhurjati", + "fullName": "Dhurjati", + "postscriptName": "Dhurjati", + "category": "sans-serif", + "capHeight": 419, + "ascent": 1101, + "descent": -509, + "lineGap": 0, + "unitsPerEm": 870, + "xHeight": 314, + "xWidthAvg": 325, + "subsets": { + "latin": { + "xWidthAvg": 325 + }, + "thai": { + "xWidthAvg": 319 + } + }, + "variants": { + "regular": { + "familyName": "Dhurjati", + "fullName": "Dhurjati", + "postscriptName": "Dhurjati", + "category": "sans-serif", + "capHeight": 419, + "ascent": 1101, + "descent": -509, + "lineGap": 0, + "unitsPerEm": 870, + "xHeight": 314, + "xWidthAvg": 325, + "subsets": { + "latin": { + "xWidthAvg": 325 + }, + "thai": { + "xWidthAvg": 319 + } + } + } + } + }, + "didactGothic": { + "familyName": "Didact Gothic", + "fullName": "Didact Gothic Regular", + "postscriptName": "DidactGothic-Regular", + "category": "sans-serif", + "capHeight": 682, + "ascent": 1046, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Didact Gothic", + "fullName": "Didact Gothic Regular", + "postscriptName": "DidactGothic-Regular", + "category": "sans-serif", + "capHeight": 682, + "ascent": 1046, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "diphylleia": { + "familyName": "Diphylleia", + "fullName": "Diphylleia Regular", + "postscriptName": "Diphylleia-Regular", + "category": "serif", + "capHeight": 674, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 854 + } + }, + "variants": { + "regular": { + "familyName": "Diphylleia", + "fullName": "Diphylleia Regular", + "postscriptName": "Diphylleia-Regular", + "category": "serif", + "capHeight": 674, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 854 + } + } + } + } + }, + "diplomata": { + "familyName": "Diplomata", + "fullName": "Diplomata Regular", + "postscriptName": "Diplomata-Regular", + "category": "display", + "capHeight": 650, + "ascent": 930, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 965, + "subsets": { + "latin": { + "xWidthAvg": 965 + }, + "thai": { + "xWidthAvg": 1415 + } + }, + "variants": { + "regular": { + "familyName": "Diplomata", + "fullName": "Diplomata Regular", + "postscriptName": "Diplomata-Regular", + "category": "display", + "capHeight": 650, + "ascent": 930, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 965, + "subsets": { + "latin": { + "xWidthAvg": 965 + }, + "thai": { + "xWidthAvg": 1415 + } + } + } + } + }, + "diplomataSC": { + "familyName": "Diplomata SC", + "fullName": "Diplomata SC Regular", + "postscriptName": "DiplomataSC-Regular", + "category": "display", + "capHeight": 650, + "ascent": 930, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 1050, + "subsets": { + "latin": { + "xWidthAvg": 1050 + }, + "thai": { + "xWidthAvg": 1415 + } + }, + "variants": { + "regular": { + "familyName": "Diplomata SC", + "fullName": "Diplomata SC Regular", + "postscriptName": "DiplomataSC-Regular", + "category": "display", + "capHeight": 650, + "ascent": 930, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 1050, + "subsets": { + "latin": { + "xWidthAvg": 1050 + }, + "thai": { + "xWidthAvg": 1415 + } + } + } + } + }, + "doHyeon": { + "familyName": "Do Hyeon", + "fullName": "Do Hyeon Regular", + "postscriptName": "DoHyeon-Regular", + "category": "sans-serif", + "capHeight": 851, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 636, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 736 + } + }, + "variants": { + "regular": { + "familyName": "Do Hyeon", + "fullName": "Do Hyeon Regular", + "postscriptName": "DoHyeon-Regular", + "category": "sans-serif", + "capHeight": 851, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 636, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 736 + } + } + } + } + }, + "dokdo": { + "familyName": "Dokdo", + "fullName": "Dokdo Regular", + "postscriptName": "Dokdo-Regular", + "category": "display", + "capHeight": 475, + "ascent": 696, + "descent": -304, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 272, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 690 + } + }, + "variants": { + "regular": { + "familyName": "Dokdo", + "fullName": "Dokdo Regular", + "postscriptName": "Dokdo-Regular", + "category": "display", + "capHeight": 475, + "ascent": 696, + "descent": -304, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 272, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 690 + } + } + } + } + }, + "domine": { + "familyName": "Domine", + "fullName": "Domine Regular", + "postscriptName": "Domine-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 900, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "500": { + "familyName": "Domine", + "fullName": "Domine Medium", + "postscriptName": "Domine-Medium", + "category": "serif", + "capHeight": 720, + "ascent": 900, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600": { + "familyName": "Domine", + "fullName": "Domine SemiBold", + "postscriptName": "Domine-SemiBold", + "category": "serif", + "capHeight": 720, + "ascent": 900, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "700": { + "familyName": "Domine", + "fullName": "Domine Bold", + "postscriptName": "Domine-Bold", + "category": "serif", + "capHeight": 720, + "ascent": 900, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "regular": { + "familyName": "Domine", + "fullName": "Domine Regular", + "postscriptName": "Domine-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 900, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 640 + } + } + } + } + }, + "donegalOne": { + "familyName": "Donegal One", + "fullName": "Donegal One", + "postscriptName": "DonegalOne-Regular", + "category": "serif", + "capHeight": 1530, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1020, + "xWidthAvg": 1023, + "subsets": { + "latin": { + "xWidthAvg": 1023 + }, + "thai": { + "xWidthAvg": 675 + } + }, + "variants": { + "regular": { + "familyName": "Donegal One", + "fullName": "Donegal One", + "postscriptName": "DonegalOne-Regular", + "category": "serif", + "capHeight": 1530, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1020, + "xWidthAvg": 1023, + "subsets": { + "latin": { + "xWidthAvg": 1023 + }, + "thai": { + "xWidthAvg": 675 + } + } + } + } + }, + "dongle": { + "familyName": "Dongle", + "fullName": "Dongle Regular", + "postscriptName": "Dongle-Regular", + "category": "sans-serif", + "capHeight": 395, + "ascent": 850, + "descent": -598, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Dongle", + "fullName": "Dongle Light", + "postscriptName": "Dongle-Light", + "category": "sans-serif", + "capHeight": 395, + "ascent": 850, + "descent": -598, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 275, + "xWidthAvg": 290, + "subsets": { + "latin": { + "xWidthAvg": 290 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Dongle", + "fullName": "Dongle Bold", + "postscriptName": "Dongle-Bold", + "category": "sans-serif", + "capHeight": 400, + "ascent": 850, + "descent": -598, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 285, + "xWidthAvg": 301, + "subsets": { + "latin": { + "xWidthAvg": 301 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Dongle", + "fullName": "Dongle Regular", + "postscriptName": "Dongle-Regular", + "category": "sans-serif", + "capHeight": 395, + "ascent": 850, + "descent": -598, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 280, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "doppioOne": { + "familyName": "Doppio One", + "fullName": "Doppio One Regular", + "postscriptName": "DoppioOne-Regular", + "category": "sans-serif", + "capHeight": 1427, + "ascent": 2060, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 967, + "subsets": { + "latin": { + "xWidthAvg": 967 + }, + "thai": { + "xWidthAvg": 1092 + } + }, + "variants": { + "regular": { + "familyName": "Doppio One", + "fullName": "Doppio One Regular", + "postscriptName": "DoppioOne-Regular", + "category": "sans-serif", + "capHeight": 1427, + "ascent": 2060, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 967, + "subsets": { + "latin": { + "xWidthAvg": 967 + }, + "thai": { + "xWidthAvg": 1092 + } + } + } + } + }, + "dorsa": { + "familyName": "Dorsa", + "fullName": "Dorsa", + "postscriptName": "Dorsa-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 857, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 165, + "subsets": { + "latin": { + "xWidthAvg": 165 + }, + "thai": { + "xWidthAvg": 100 + } + }, + "variants": { + "regular": { + "familyName": "Dorsa", + "fullName": "Dorsa", + "postscriptName": "Dorsa-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 857, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 165, + "subsets": { + "latin": { + "xWidthAvg": 165 + }, + "thai": { + "xWidthAvg": 100 + } + } + } + } + }, + "dosis": { + "familyName": "Dosis", + "fullName": "Dosis Regular", + "postscriptName": "Dosis-Regular", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 340 + } + }, + "variants": { + "200": { + "familyName": "Dosis", + "fullName": "Dosis ExtraLight", + "postscriptName": "Dosis-ExtraLight", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 317 + } + } + }, + "300": { + "familyName": "Dosis", + "fullName": "Dosis Light", + "postscriptName": "Dosis-Light", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 328 + } + } + }, + "500": { + "familyName": "Dosis", + "fullName": "Dosis Medium", + "postscriptName": "Dosis-Medium", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 353 + } + } + }, + "600": { + "familyName": "Dosis", + "fullName": "Dosis SemiBold", + "postscriptName": "Dosis-SemiBold", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 370 + } + } + }, + "700": { + "familyName": "Dosis", + "fullName": "Dosis Bold", + "postscriptName": "Dosis-Bold", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 388 + } + } + }, + "800": { + "familyName": "Dosis", + "fullName": "Dosis ExtraBold", + "postscriptName": "Dosis-ExtraBold", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 408 + } + } + }, + "regular": { + "familyName": "Dosis", + "fullName": "Dosis Regular", + "postscriptName": "Dosis-Regular", + "category": "sans-serif", + "capHeight": 731, + "ascent": 1027, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 340 + } + } + } + } + }, + "dotGothic16": { + "familyName": "DotGothic16", + "fullName": "DotGothic16 Regular", + "postscriptName": "DotGothic16-Regular", + "category": "sans-serif", + "capHeight": 787, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "DotGothic16", + "fullName": "DotGothic16 Regular", + "postscriptName": "DotGothic16-Regular", + "category": "sans-serif", + "capHeight": 787, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "doto": { + "familyName": "Doto", + "fullName": "Doto Regular", + "postscriptName": "Doto-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Doto", + "fullName": "Doto Thin", + "postscriptName": "Doto-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Doto", + "fullName": "Doto ExtraLight", + "postscriptName": "Doto-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Doto", + "fullName": "Doto Light", + "postscriptName": "Doto-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Doto", + "fullName": "Doto Medium", + "postscriptName": "Doto-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Doto", + "fullName": "Doto SemiBold", + "postscriptName": "Doto-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Doto", + "fullName": "Doto Bold", + "postscriptName": "Doto-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Doto", + "fullName": "Doto ExtraBold", + "postscriptName": "Doto-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Doto", + "fullName": "Doto Black", + "postscriptName": "Doto-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Doto", + "fullName": "Doto Regular", + "postscriptName": "Doto-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "drSugiyama": { + "familyName": "Dr Sugiyama", + "fullName": "Dr Sugiyama Regular", + "postscriptName": "DrSugiyama-Regular", + "category": "handwriting", + "capHeight": 710, + "ascent": 1009, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 235, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 234 + } + }, + "variants": { + "regular": { + "familyName": "Dr Sugiyama", + "fullName": "Dr Sugiyama Regular", + "postscriptName": "DrSugiyama-Regular", + "category": "handwriting", + "capHeight": 710, + "ascent": 1009, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 235, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 234 + } + } + } + } + }, + "duruSans": { + "familyName": "Duru Sans", + "fullName": "Duru Sans Regular", + "postscriptName": "DuruSans-Regular", + "category": "sans-serif", + "capHeight": 1554, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1157, + "xWidthAvg": 1066, + "subsets": { + "latin": { + "xWidthAvg": 1066 + }, + "thai": { + "xWidthAvg": 1634 + } + }, + "variants": { + "regular": { + "familyName": "Duru Sans", + "fullName": "Duru Sans Regular", + "postscriptName": "DuruSans-Regular", + "category": "sans-serif", + "capHeight": 1554, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1157, + "xWidthAvg": 1066, + "subsets": { + "latin": { + "xWidthAvg": 1066 + }, + "thai": { + "xWidthAvg": 1634 + } + } + } + } + }, + "dynaPuff": { + "familyName": "DynaPuff", + "fullName": "DynaPuff Regular", + "postscriptName": "DynaPuff-Regular", + "category": "display", + "capHeight": 730, + "ascent": 965, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "DynaPuff", + "fullName": "DynaPuff Medium", + "postscriptName": "DynaPuff-Medium", + "category": "display", + "capHeight": 730, + "ascent": 965, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "600": { + "familyName": "DynaPuff", + "fullName": "DynaPuff SemiBold", + "postscriptName": "DynaPuff-SemiBold", + "category": "display", + "capHeight": 730, + "ascent": 965, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 615 + } + } + }, + "700": { + "familyName": "DynaPuff", + "fullName": "DynaPuff Bold", + "postscriptName": "DynaPuff-Bold", + "category": "display", + "capHeight": 730, + "ascent": 965, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "regular": { + "familyName": "DynaPuff", + "fullName": "DynaPuff Regular", + "postscriptName": "DynaPuff-Regular", + "category": "display", + "capHeight": 730, + "ascent": 965, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "dynalight": { + "familyName": "Dynalight", + "fullName": "Dynalight", + "postscriptName": "Dynalight-Regular", + "category": "display", + "capHeight": 1441, + "ascent": 1840, + "descent": -645, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 723, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 490 + } + }, + "variants": { + "regular": { + "familyName": "Dynalight", + "fullName": "Dynalight", + "postscriptName": "Dynalight-Regular", + "category": "display", + "capHeight": 1441, + "ascent": 1840, + "descent": -645, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 723, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 490 + } + } + } + } + }, + "eBGaramond": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Regular", + "postscriptName": "EBGaramond-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Medium", + "postscriptName": "EBGaramond-Medium", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 505 + } + } + }, + "600": { + "familyName": "EB Garamond", + "fullName": "EB Garamond SemiBold", + "postscriptName": "EBGaramond-SemiBold", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "700": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Bold", + "postscriptName": "EBGaramond-Bold", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 513 + } + } + }, + "800": { + "familyName": "EB Garamond", + "fullName": "EB Garamond ExtraBold", + "postscriptName": "EBGaramond-ExtraBold", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 516 + } + } + }, + "regular": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Regular", + "postscriptName": "EBGaramond-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Italic", + "postscriptName": "EBGaramond-Italic", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "EB Garamond", + "fullName": "EB Garamond ExtraBold Italic", + "postscriptName": "EBGaramond-ExtraBoldItalic", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 516 + } + } + }, + "700italic": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Bold Italic", + "postscriptName": "EBGaramond-BoldItalic", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 513 + } + } + }, + "600italic": { + "familyName": "EB Garamond", + "fullName": "EB Garamond SemiBold Italic", + "postscriptName": "EBGaramond-SemiBoldItalic", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "500italic": { + "familyName": "EB Garamond", + "fullName": "EB Garamond Medium Italic", + "postscriptName": "EBGaramond-MediumItalic", + "category": "serif", + "capHeight": 650, + "ascent": 1007, + "descent": -298, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 505 + } + } + } + } + }, + "eagleLake": { + "familyName": "Eagle Lake", + "fullName": "Eagle Lake", + "postscriptName": "EagleLake-Regular", + "category": "handwriting", + "capHeight": 1518, + "ascent": 2420, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1094, + "xWidthAvg": 1170, + "subsets": { + "latin": { + "xWidthAvg": 1170 + }, + "thai": { + "xWidthAvg": 610 + } + }, + "variants": { + "regular": { + "familyName": "Eagle Lake", + "fullName": "Eagle Lake", + "postscriptName": "EagleLake-Regular", + "category": "handwriting", + "capHeight": 1518, + "ascent": 2420, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1094, + "xWidthAvg": 1170, + "subsets": { + "latin": { + "xWidthAvg": 1170 + }, + "thai": { + "xWidthAvg": 610 + } + } + } + } + }, + "eastSeaDokdo": { + "familyName": "East Sea Dokdo", + "fullName": "East Sea Dokdo Regular", + "postscriptName": "EastSeaDokdo-Regular", + "category": "handwriting", + "capHeight": 418, + "ascent": 706, + "descent": -294, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 239, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "East Sea Dokdo", + "fullName": "East Sea Dokdo Regular", + "postscriptName": "EastSeaDokdo-Regular", + "category": "handwriting", + "capHeight": 418, + "ascent": 706, + "descent": -294, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 239, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "eater": { + "familyName": "Eater", + "fullName": "Eater", + "postscriptName": "Eater-Regular", + "category": "display", + "capHeight": 1729, + "ascent": 2898, + "descent": -919, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1706, + "xWidthAvg": 1251, + "subsets": { + "latin": { + "xWidthAvg": 1251 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Eater", + "fullName": "Eater", + "postscriptName": "Eater-Regular", + "category": "display", + "capHeight": 1729, + "ascent": 2898, + "descent": -919, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1706, + "xWidthAvg": 1251, + "subsets": { + "latin": { + "xWidthAvg": 1251 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "economica": { + "familyName": "Economica", + "fullName": "Economica", + "postscriptName": "Economica-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 949, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 190 + } + }, + "variants": { + "700": { + "familyName": "Economica", + "fullName": "Economica Bold", + "postscriptName": "Economica-Bold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 949, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 190 + } + } + }, + "regular": { + "familyName": "Economica", + "fullName": "Economica", + "postscriptName": "Economica-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 949, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 190 + } + } + }, + "italic": { + "familyName": "Economica", + "fullName": "Economica Italic", + "postscriptName": "Economica-Italic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 949, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 190 + } + } + }, + "700italic": { + "familyName": "Economica", + "fullName": "Economica Bold Italic", + "postscriptName": "Economica-BoldItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 949, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 310, + "subsets": { + "latin": { + "xWidthAvg": 310 + }, + "thai": { + "xWidthAvg": 190 + } + } + } + } + }, + "eczar": { + "familyName": "Eczar", + "fullName": "Eczar Regular", + "postscriptName": "Eczar-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 1143, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "500": { + "familyName": "Eczar", + "fullName": "Eczar Medium", + "postscriptName": "Eczar-Medium", + "category": "serif", + "capHeight": 650, + "ascent": 1143, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "600": { + "familyName": "Eczar", + "fullName": "Eczar SemiBold", + "postscriptName": "Eczar-SemiBold", + "category": "serif", + "capHeight": 650, + "ascent": 1143, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700": { + "familyName": "Eczar", + "fullName": "Eczar Bold", + "postscriptName": "Eczar-Bold", + "category": "serif", + "capHeight": 650, + "ascent": 1143, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "800": { + "familyName": "Eczar", + "fullName": "Eczar ExtraBold", + "postscriptName": "Eczar-ExtraBold", + "category": "serif", + "capHeight": 650, + "ascent": 1143, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "regular": { + "familyName": "Eczar", + "fullName": "Eczar Regular", + "postscriptName": "Eczar-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 1143, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "eduAUVICWANTDots": { + "familyName": "Edu AU VIC WA NT Dots", + "fullName": "Edu AU VIC WA NT Dots Regular", + "postscriptName": "EduAUVICWANTDots-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1245 + } + }, + "variants": { + "500": { + "familyName": "Edu AU VIC WA NT Dots", + "fullName": "Edu AU VIC WA NT Dots Medium", + "postscriptName": "EduAUVICWANTDots-Medium", + "category": "handwriting", + "capHeight": 1841, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 1027, + "subsets": { + "latin": { + "xWidthAvg": 1027 + }, + "thai": { + "xWidthAvg": 1307 + } + } + }, + "600": { + "familyName": "Edu AU VIC WA NT Dots", + "fullName": "Edu AU VIC WA NT Dots SemiBold", + "postscriptName": "EduAUVICWANTDots-SemiBold", + "category": "handwriting", + "capHeight": 1837, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 1058, + "subsets": { + "latin": { + "xWidthAvg": 1058 + }, + "thai": { + "xWidthAvg": 1351 + } + } + }, + "700": { + "familyName": "Edu AU VIC WA NT Dots", + "fullName": "Edu AU VIC WA NT Dots Bold", + "postscriptName": "EduAUVICWANTDots-Bold", + "category": "handwriting", + "capHeight": 1835, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 1077, + "subsets": { + "latin": { + "xWidthAvg": 1077 + }, + "thai": { + "xWidthAvg": 1378 + } + } + }, + "regular": { + "familyName": "Edu AU VIC WA NT Dots", + "fullName": "Edu AU VIC WA NT Dots Regular", + "postscriptName": "EduAUVICWANTDots-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1245 + } + } + } + } + }, + "eduAUVICWANTGuides": { + "familyName": "Edu AU VIC WA NT Guides", + "fullName": "Edu AU VIC WA NT Guides Regular", + "postscriptName": "EduAUVICWANTGuides-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1245 + } + }, + "variants": { + "500": { + "familyName": "Edu AU VIC WA NT Guides", + "fullName": "Edu AU VIC WA NT Guides Medium", + "postscriptName": "EduAUVICWANTGuides-Medium", + "category": "handwriting", + "capHeight": 1841, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 874, + "subsets": { + "latin": { + "xWidthAvg": 874 + }, + "thai": { + "xWidthAvg": 1307 + } + } + }, + "600": { + "familyName": "Edu AU VIC WA NT Guides", + "fullName": "Edu AU VIC WA NT Guides SemiBold", + "postscriptName": "EduAUVICWANTGuides-SemiBold", + "category": "handwriting", + "capHeight": 1837, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 1351 + } + } + }, + "700": { + "familyName": "Edu AU VIC WA NT Guides", + "fullName": "Edu AU VIC WA NT Guides Bold", + "postscriptName": "EduAUVICWANTGuides-Bold", + "category": "handwriting", + "capHeight": 1835, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 1378 + } + } + }, + "regular": { + "familyName": "Edu AU VIC WA NT Guides", + "fullName": "Edu AU VIC WA NT Guides Regular", + "postscriptName": "EduAUVICWANTGuides-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1245 + } + } + } + } + }, + "eduAUVICWANTHand": { + "familyName": "Edu AU VIC WA NT Hand", + "fullName": "Edu AU VIC WA NT Hand Regular", + "postscriptName": "EduAUVICWANTHand-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1245 + } + }, + "variants": { + "500": { + "familyName": "Edu AU VIC WA NT Hand", + "fullName": "Edu AU VIC WA NT Hand Medium", + "postscriptName": "EduAUVICWANTHand-Medium", + "category": "handwriting", + "capHeight": 1841, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 874, + "subsets": { + "latin": { + "xWidthAvg": 874 + }, + "thai": { + "xWidthAvg": 1307 + } + } + }, + "600": { + "familyName": "Edu AU VIC WA NT Hand", + "fullName": "Edu AU VIC WA NT Hand SemiBold", + "postscriptName": "EduAUVICWANTHand-SemiBold", + "category": "handwriting", + "capHeight": 1837, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 1351 + } + } + }, + "700": { + "familyName": "Edu AU VIC WA NT Hand", + "fullName": "Edu AU VIC WA NT Hand Bold", + "postscriptName": "EduAUVICWANTHand-Bold", + "category": "handwriting", + "capHeight": 1835, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 916, + "subsets": { + "latin": { + "xWidthAvg": 916 + }, + "thai": { + "xWidthAvg": 1378 + } + } + }, + "regular": { + "familyName": "Edu AU VIC WA NT Hand", + "fullName": "Edu AU VIC WA NT Hand Regular", + "postscriptName": "EduAUVICWANTHand-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1245 + } + } + } + } + }, + "eduAUVICWANTPre": { + "familyName": "Edu AU VIC WA NT Pre", + "fullName": "Edu AU VIC WA NT Pre Regular", + "postscriptName": "EduAUVICWANTPre-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1245 + } + }, + "variants": { + "500": { + "familyName": "Edu AU VIC WA NT Pre", + "fullName": "Edu AU VIC WA NT Pre Medium", + "postscriptName": "EduAUVICWANTPre-Medium", + "category": "handwriting", + "capHeight": 1841, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 874, + "subsets": { + "latin": { + "xWidthAvg": 874 + }, + "thai": { + "xWidthAvg": 1307 + } + } + }, + "600": { + "familyName": "Edu AU VIC WA NT Pre", + "fullName": "Edu AU VIC WA NT Pre SemiBold", + "postscriptName": "EduAUVICWANTPre-SemiBold", + "category": "handwriting", + "capHeight": 1837, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 1351 + } + } + }, + "700": { + "familyName": "Edu AU VIC WA NT Pre", + "fullName": "Edu AU VIC WA NT Pre Bold", + "postscriptName": "EduAUVICWANTPre-Bold", + "category": "handwriting", + "capHeight": 1835, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 1378 + } + } + }, + "regular": { + "familyName": "Edu AU VIC WA NT Pre", + "fullName": "Edu AU VIC WA NT Pre Regular", + "postscriptName": "EduAUVICWANTPre-Regular", + "category": "handwriting", + "capHeight": 1847, + "ascent": 2576, + "descent": -903, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 838, + "subsets": { + "latin": { + "xWidthAvg": 838 + }, + "thai": { + "xWidthAvg": 1245 + } + } + } + } + }, + "eduNSWACTFoundation": { + "familyName": "Edu NSW ACT Foundation", + "fullName": "Edu NSW ACT Foundation Regular", + "postscriptName": "EduNSWACTFoundation-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 684 + } + }, + "variants": { + "500": { + "familyName": "Edu NSW ACT Foundation", + "fullName": "Edu NSW ACT Foundation Medium", + "postscriptName": "EduNSWACTFoundation-Medium", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 709 + } + } + }, + "600": { + "familyName": "Edu NSW ACT Foundation", + "fullName": "Edu NSW ACT Foundation SemiBold", + "postscriptName": "EduNSWACTFoundation-SemiBold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 739 + } + } + }, + "700": { + "familyName": "Edu NSW ACT Foundation", + "fullName": "Edu NSW ACT Foundation Bold", + "postscriptName": "EduNSWACTFoundation-Bold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 759 + } + } + }, + "regular": { + "familyName": "Edu NSW ACT Foundation", + "fullName": "Edu NSW ACT Foundation Regular", + "postscriptName": "EduNSWACTFoundation-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 684 + } + } + } + } + }, + "eduQLDBeginner": { + "familyName": "Edu QLD Beginner", + "fullName": "Edu QLD Beginner Regular", + "postscriptName": "EduQLDBeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 743 + } + }, + "variants": { + "500": { + "familyName": "Edu QLD Beginner", + "fullName": "Edu QLD Beginner Medium", + "postscriptName": "EduQLDBeginner-Medium", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 771 + } + } + }, + "600": { + "familyName": "Edu QLD Beginner", + "fullName": "Edu QLD Beginner SemiBold", + "postscriptName": "EduQLDBeginner-SemiBold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 805 + } + } + }, + "700": { + "familyName": "Edu QLD Beginner", + "fullName": "Edu QLD Beginner Bold", + "postscriptName": "EduQLDBeginner-Bold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 828 + } + } + }, + "regular": { + "familyName": "Edu QLD Beginner", + "fullName": "Edu QLD Beginner Regular", + "postscriptName": "EduQLDBeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 743 + } + } + } + } + }, + "eduSABeginner": { + "familyName": "Edu SA Beginner", + "fullName": "Edu SA Beginner Regular", + "postscriptName": "EduSABeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 684 + } + }, + "variants": { + "500": { + "familyName": "Edu SA Beginner", + "fullName": "Edu SA Beginner Medium", + "postscriptName": "EduSABeginner-Medium", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 698 + } + } + }, + "600": { + "familyName": "Edu SA Beginner", + "fullName": "Edu SA Beginner SemiBold", + "postscriptName": "EduSABeginner-SemiBold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 715 + } + } + }, + "700": { + "familyName": "Edu SA Beginner", + "fullName": "Edu SA Beginner Bold", + "postscriptName": "EduSABeginner-Bold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 726 + } + } + }, + "regular": { + "familyName": "Edu SA Beginner", + "fullName": "Edu SA Beginner Regular", + "postscriptName": "EduSABeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 684 + } + } + } + } + }, + "eduTASBeginner": { + "familyName": "Edu TAS Beginner", + "fullName": "Edu TAS Beginner Regular", + "postscriptName": "EduTASBeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 674 + } + }, + "variants": { + "500": { + "familyName": "Edu TAS Beginner", + "fullName": "Edu TAS Beginner Medium", + "postscriptName": "EduTASBeginner-Medium", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 704 + } + } + }, + "600": { + "familyName": "Edu TAS Beginner", + "fullName": "Edu TAS Beginner SemiBold", + "postscriptName": "EduTASBeginner-SemiBold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 739 + } + } + }, + "700": { + "familyName": "Edu TAS Beginner", + "fullName": "Edu TAS Beginner Bold", + "postscriptName": "EduTASBeginner-Bold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 763 + } + } + }, + "regular": { + "familyName": "Edu TAS Beginner", + "fullName": "Edu TAS Beginner Regular", + "postscriptName": "EduTASBeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 674 + } + } + } + } + }, + "eduVICWANTBeginner": { + "familyName": "Edu VIC WA NT Beginner", + "fullName": "Edu VIC WA NT Beginner Regular", + "postscriptName": "EduVICWANTBeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 743 + } + }, + "variants": { + "500": { + "familyName": "Edu VIC WA NT Beginner", + "fullName": "Edu VIC WA NT Beginner Medium", + "postscriptName": "EduVICWANTBeginner-Medium", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 771 + } + } + }, + "600": { + "familyName": "Edu VIC WA NT Beginner", + "fullName": "Edu VIC WA NT Beginner SemiBold", + "postscriptName": "EduVICWANTBeginner-SemiBold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 805 + } + } + }, + "700": { + "familyName": "Edu VIC WA NT Beginner", + "fullName": "Edu VIC WA NT Beginner Bold", + "postscriptName": "EduVICWANTBeginner-Bold", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 828 + } + } + }, + "regular": { + "familyName": "Edu VIC WA NT Beginner", + "fullName": "Edu VIC WA NT Beginner Regular", + "postscriptName": "EduVICWANTBeginner-Regular", + "category": "handwriting", + "capHeight": 772, + "ascent": 1016, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 743 + } + } + } + } + }, + "elMessiri": { + "familyName": "El Messiri", + "fullName": "El Messiri Regular", + "postscriptName": "ElMessiri-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1019, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "El Messiri", + "fullName": "El Messiri Medium", + "postscriptName": "ElMessiri-Medium", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1019, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "El Messiri", + "fullName": "El Messiri SemiBold", + "postscriptName": "ElMessiri-SemiBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1019, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "El Messiri", + "fullName": "El Messiri Bold", + "postscriptName": "ElMessiri-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1019, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "El Messiri", + "fullName": "El Messiri Regular", + "postscriptName": "ElMessiri-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1019, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "electrolize": { + "familyName": "Electrolize", + "fullName": "Electrolize", + "postscriptName": "Electrolize-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 911, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 1210 + } + }, + "variants": { + "regular": { + "familyName": "Electrolize", + "fullName": "Electrolize", + "postscriptName": "Electrolize-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 911, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 1210 + } + } + } + } + }, + "elsie": { + "familyName": "Elsie", + "fullName": "Elsie Regular", + "postscriptName": "Elsie-Regular", + "category": "display", + "capHeight": 650, + "ascent": 878, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "900": { + "familyName": "Elsie", + "fullName": "Elsie Black", + "postscriptName": "Elsie-Black", + "category": "display", + "capHeight": 700, + "ascent": 878, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 200 + } + } + }, + "regular": { + "familyName": "Elsie", + "fullName": "Elsie Regular", + "postscriptName": "Elsie-Regular", + "category": "display", + "capHeight": 650, + "ascent": 878, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "elsieSwashCaps": { + "familyName": "Elsie Swash Caps", + "fullName": "Elsie Swash Caps Regular", + "postscriptName": "ElsieSwashCaps-Regular", + "category": "display", + "capHeight": 650, + "ascent": 878, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "900": { + "familyName": "Elsie Swash Caps", + "fullName": "Elsie Swash Caps Black", + "postscriptName": "ElsieSwashCaps-Black", + "category": "display", + "capHeight": 700, + "ascent": 878, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 200 + } + } + }, + "regular": { + "familyName": "Elsie Swash Caps", + "fullName": "Elsie Swash Caps Regular", + "postscriptName": "ElsieSwashCaps-Regular", + "category": "display", + "capHeight": 650, + "ascent": 878, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "emblemaOne": { + "familyName": "Emblema One", + "fullName": "Emblema One", + "postscriptName": "EmblemaOne-Regular", + "category": "display", + "capHeight": 1361, + "ascent": 1898, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1002, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 511 + } + }, + "variants": { + "regular": { + "familyName": "Emblema One", + "fullName": "Emblema One", + "postscriptName": "EmblemaOne-Regular", + "category": "display", + "capHeight": 1361, + "ascent": 1898, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1002, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 511 + } + } + } + } + }, + "emilysCandy": { + "familyName": "Emilys Candy", + "fullName": "Emilys Candy", + "postscriptName": "EmilysCandy-Regular", + "category": "display", + "capHeight": 762, + "ascent": 996, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 529, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 307 + } + }, + "variants": { + "regular": { + "familyName": "Emilys Candy", + "fullName": "Emilys Candy", + "postscriptName": "EmilysCandy-Regular", + "category": "display", + "capHeight": 762, + "ascent": 996, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 529, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 307 + } + } + } + } + }, + "encodeSans": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Regular", + "postscriptName": "EncodeSans-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 884, + "subsets": { + "latin": { + "xWidthAvg": 884 + }, + "thai": { + "xWidthAvg": 1214 + } + }, + "variants": { + "100": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Thin", + "postscriptName": "EncodeSans-Thin", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 839, + "subsets": { + "latin": { + "xWidthAvg": 839 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "200": { + "familyName": "Encode Sans", + "fullName": "Encode Sans ExtraLight", + "postscriptName": "EncodeSans-ExtraLight", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "300": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Light", + "postscriptName": "EncodeSans-Light", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "500": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Medium", + "postscriptName": "EncodeSans-Medium", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "600": { + "familyName": "Encode Sans", + "fullName": "Encode Sans SemiBold", + "postscriptName": "EncodeSans-SemiBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "700": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Bold", + "postscriptName": "EncodeSans-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 963, + "subsets": { + "latin": { + "xWidthAvg": 963 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "800": { + "familyName": "Encode Sans", + "fullName": "Encode Sans ExtraBold", + "postscriptName": "EncodeSans-ExtraBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 991, + "subsets": { + "latin": { + "xWidthAvg": 991 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "900": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Black", + "postscriptName": "EncodeSans-Black", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1015, + "subsets": { + "latin": { + "xWidthAvg": 1015 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "regular": { + "familyName": "Encode Sans", + "fullName": "Encode Sans Regular", + "postscriptName": "EncodeSans-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 884, + "subsets": { + "latin": { + "xWidthAvg": 884 + }, + "thai": { + "xWidthAvg": 1214 + } + } + } + } + }, + "encodeSansCondensed": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Regular", + "postscriptName": "EncodeSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 762, + "subsets": { + "latin": { + "xWidthAvg": 762 + }, + "thai": { + "xWidthAvg": 1028 + } + }, + "variants": { + "100": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Thin", + "postscriptName": "EncodeSansCondensed-Thin", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 722, + "subsets": { + "latin": { + "xWidthAvg": 722 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "200": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed ExtraLight", + "postscriptName": "EncodeSansCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1081, + "xWidthAvg": 732, + "subsets": { + "latin": { + "xWidthAvg": 732 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "300": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Light", + "postscriptName": "EncodeSansCondensed-Light", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1083, + "xWidthAvg": 745, + "subsets": { + "latin": { + "xWidthAvg": 745 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "500": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Medium", + "postscriptName": "EncodeSansCondensed-Medium", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1088, + "xWidthAvg": 781, + "subsets": { + "latin": { + "xWidthAvg": 781 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "600": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed SemiBold", + "postscriptName": "EncodeSansCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 804, + "subsets": { + "latin": { + "xWidthAvg": 804 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "700": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Bold", + "postscriptName": "EncodeSansCondensed-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1094, + "xWidthAvg": 828, + "subsets": { + "latin": { + "xWidthAvg": 828 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "800": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed ExtraBold", + "postscriptName": "EncodeSansCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1097, + "xWidthAvg": 851, + "subsets": { + "latin": { + "xWidthAvg": 851 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "900": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Black", + "postscriptName": "EncodeSansCondensed-Black", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 872, + "subsets": { + "latin": { + "xWidthAvg": 872 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "regular": { + "familyName": "Encode Sans Condensed", + "fullName": "Encode Sans Condensed Regular", + "postscriptName": "EncodeSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 762, + "subsets": { + "latin": { + "xWidthAvg": 762 + }, + "thai": { + "xWidthAvg": 1028 + } + } + } + } + }, + "encodeSansExpanded": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Regular", + "postscriptName": "EncodeSansExpanded-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1028 + } + }, + "variants": { + "100": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Thin", + "postscriptName": "EncodeSansExpanded-Thin", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 955, + "subsets": { + "latin": { + "xWidthAvg": 955 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "200": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded ExtraLight", + "postscriptName": "EncodeSansExpanded-ExtraLight", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1081, + "xWidthAvg": 966, + "subsets": { + "latin": { + "xWidthAvg": 966 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "300": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Light", + "postscriptName": "EncodeSansExpanded-Light", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1083, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "500": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Medium", + "postscriptName": "EncodeSansExpanded-Medium", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1088, + "xWidthAvg": 1034, + "subsets": { + "latin": { + "xWidthAvg": 1034 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "600": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded SemiBold", + "postscriptName": "EncodeSansExpanded-SemiBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1065, + "subsets": { + "latin": { + "xWidthAvg": 1065 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "700": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Bold", + "postscriptName": "EncodeSansExpanded-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1094, + "xWidthAvg": 1098, + "subsets": { + "latin": { + "xWidthAvg": 1098 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "800": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded ExtraBold", + "postscriptName": "EncodeSansExpanded-ExtraBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1097, + "xWidthAvg": 1130, + "subsets": { + "latin": { + "xWidthAvg": 1130 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "900": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Black", + "postscriptName": "EncodeSansExpanded-Black", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1159, + "subsets": { + "latin": { + "xWidthAvg": 1159 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "regular": { + "familyName": "Encode Sans Expanded", + "fullName": "Encode Sans Expanded Regular", + "postscriptName": "EncodeSansExpanded-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1028 + } + } + } + } + }, + "encodeSansSC": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Regular", + "postscriptName": "EncodeSansSC-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1214 + } + }, + "variants": { + "100": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Thin", + "postscriptName": "EncodeSansSC-Thin", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 955, + "subsets": { + "latin": { + "xWidthAvg": 955 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "200": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC ExtraLight", + "postscriptName": "EncodeSansSC-ExtraLight", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 966, + "subsets": { + "latin": { + "xWidthAvg": 966 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "300": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Light", + "postscriptName": "EncodeSansSC-Light", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "500": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Medium", + "postscriptName": "EncodeSansSC-Medium", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1026, + "subsets": { + "latin": { + "xWidthAvg": 1026 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "600": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC SemiBold", + "postscriptName": "EncodeSansSC-SemiBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1053, + "subsets": { + "latin": { + "xWidthAvg": 1053 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "700": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Bold", + "postscriptName": "EncodeSansSC-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1081, + "subsets": { + "latin": { + "xWidthAvg": 1081 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "800": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC ExtraBold", + "postscriptName": "EncodeSansSC-ExtraBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1110, + "subsets": { + "latin": { + "xWidthAvg": 1110 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "900": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Black", + "postscriptName": "EncodeSansSC-Black", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1135, + "subsets": { + "latin": { + "xWidthAvg": 1135 + }, + "thai": { + "xWidthAvg": 1214 + } + } + }, + "regular": { + "familyName": "Encode Sans SC", + "fullName": "Encode Sans SC Regular", + "postscriptName": "EncodeSansSC-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1214 + } + } + } + } + }, + "encodeSansSemiCondensed": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Regular", + "postscriptName": "EncodeSansSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 824, + "subsets": { + "latin": { + "xWidthAvg": 824 + }, + "thai": { + "xWidthAvg": 1028 + } + }, + "variants": { + "100": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Thin", + "postscriptName": "EncodeSansSemiCondensed-Thin", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 781, + "subsets": { + "latin": { + "xWidthAvg": 781 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "200": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed ExtraLight", + "postscriptName": "EncodeSansSemiCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1081, + "xWidthAvg": 790, + "subsets": { + "latin": { + "xWidthAvg": 790 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "300": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Light", + "postscriptName": "EncodeSansSemiCondensed-Light", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1083, + "xWidthAvg": 805, + "subsets": { + "latin": { + "xWidthAvg": 805 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "500": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Medium", + "postscriptName": "EncodeSansSemiCondensed-Medium", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1088, + "xWidthAvg": 846, + "subsets": { + "latin": { + "xWidthAvg": 846 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "600": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed SemiBold", + "postscriptName": "EncodeSansSemiCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 869, + "subsets": { + "latin": { + "xWidthAvg": 869 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "700": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Bold", + "postscriptName": "EncodeSansSemiCondensed-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1094, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "800": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed ExtraBold", + "postscriptName": "EncodeSansSemiCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1097, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "900": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Black", + "postscriptName": "EncodeSansSemiCondensed-Black", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "regular": { + "familyName": "Encode Sans Semi Condensed", + "fullName": "Encode Sans Semi Condensed Regular", + "postscriptName": "EncodeSansSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 824, + "subsets": { + "latin": { + "xWidthAvg": 824 + }, + "thai": { + "xWidthAvg": 1028 + } + } + } + } + }, + "encodeSansSemiExpanded": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Regular", + "postscriptName": "EncodeSansSemiExpanded-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1028 + } + }, + "variants": { + "100": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Thin", + "postscriptName": "EncodeSansSemiExpanded-Thin", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "200": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded ExtraLight", + "postscriptName": "EncodeSansSemiExpanded-ExtraLight", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1081, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "300": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Light", + "postscriptName": "EncodeSansSemiExpanded-Light", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1083, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "500": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Medium", + "postscriptName": "EncodeSansSemiExpanded-Medium", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1088, + "xWidthAvg": 971, + "subsets": { + "latin": { + "xWidthAvg": 971 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "600": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded SemiBold", + "postscriptName": "EncodeSansSemiExpanded-SemiBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1000, + "subsets": { + "latin": { + "xWidthAvg": 1000 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "700": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Bold", + "postscriptName": "EncodeSansSemiExpanded-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1094, + "xWidthAvg": 1032, + "subsets": { + "latin": { + "xWidthAvg": 1032 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "800": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded ExtraBold", + "postscriptName": "EncodeSansSemiExpanded-ExtraBold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1097, + "xWidthAvg": 1060, + "subsets": { + "latin": { + "xWidthAvg": 1060 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "900": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Black", + "postscriptName": "EncodeSansSemiExpanded-Black", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1087, + "subsets": { + "latin": { + "xWidthAvg": 1087 + }, + "thai": { + "xWidthAvg": 1028 + } + } + }, + "regular": { + "familyName": "Encode Sans Semi Expanded", + "fullName": "Encode Sans Semi Expanded Regular", + "postscriptName": "EncodeSansSemiExpanded-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 2060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1085, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1028 + } + } + } + } + }, + "engagement": { + "familyName": "Engagement", + "fullName": "Engagement", + "postscriptName": "Engagement-Regular", + "category": "handwriting", + "capHeight": 1500, + "ascent": 1843, + "descent": -684, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 653, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Engagement", + "fullName": "Engagement", + "postscriptName": "Engagement-Regular", + "category": "handwriting", + "capHeight": 1500, + "ascent": 1843, + "descent": -684, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 653, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "englebert": { + "familyName": "Englebert", + "fullName": "Englebert", + "postscriptName": "Englebert-Regular", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 954, + "descent": -311, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1077, + "xWidthAvg": 780, + "subsets": { + "latin": { + "xWidthAvg": 780 + }, + "thai": { + "xWidthAvg": 471 + } + }, + "variants": { + "regular": { + "familyName": "Englebert", + "fullName": "Englebert", + "postscriptName": "Englebert-Regular", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 954, + "descent": -311, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1077, + "xWidthAvg": 780, + "subsets": { + "latin": { + "xWidthAvg": 780 + }, + "thai": { + "xWidthAvg": 471 + } + } + } + } + }, + "enriqueta": { + "familyName": "Enriqueta", + "fullName": "Enriqueta Regular", + "postscriptName": "Enriqueta-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 1077, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 620 + } + }, + "variants": { + "500": { + "familyName": "Enriqueta", + "fullName": "Enriqueta Medium", + "postscriptName": "Enriqueta-Medium", + "category": "serif", + "capHeight": 720, + "ascent": 1077, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "600": { + "familyName": "Enriqueta", + "fullName": "Enriqueta SemiBold", + "postscriptName": "Enriqueta-SemiBold", + "category": "serif", + "capHeight": 720, + "ascent": 1077, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "700": { + "familyName": "Enriqueta", + "fullName": "Enriqueta Bold", + "postscriptName": "Enriqueta-Bold", + "category": "serif", + "capHeight": 720, + "ascent": 1077, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "regular": { + "familyName": "Enriqueta", + "fullName": "Enriqueta Regular", + "postscriptName": "Enriqueta-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 1077, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 620 + } + } + } + } + }, + "ephesis": { + "familyName": "Ephesis", + "fullName": "Ephesis Regular", + "postscriptName": "Ephesis-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 538 + } + }, + "variants": { + "regular": { + "familyName": "Ephesis", + "fullName": "Ephesis Regular", + "postscriptName": "Ephesis-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 538 + } + } + } + } + }, + "epilogue": { + "familyName": "Epilogue", + "fullName": "Epilogue Regular", + "postscriptName": "Epilogue-Regular", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 990, + "subsets": { + "latin": { + "xWidthAvg": 990 + }, + "thai": { + "xWidthAvg": 669 + } + }, + "variants": { + "100": { + "familyName": "Epilogue", + "fullName": "Epilogue Thin", + "postscriptName": "Epilogue-Thin", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 951, + "subsets": { + "latin": { + "xWidthAvg": 951 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "200": { + "familyName": "Epilogue", + "fullName": "Epilogue ExtraLight", + "postscriptName": "Epilogue-ExtraLight", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "300": { + "familyName": "Epilogue", + "fullName": "Epilogue Light", + "postscriptName": "Epilogue-Light", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 977, + "subsets": { + "latin": { + "xWidthAvg": 977 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "500": { + "familyName": "Epilogue", + "fullName": "Epilogue Medium", + "postscriptName": "Epilogue-Medium", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1005, + "subsets": { + "latin": { + "xWidthAvg": 1005 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "600": { + "familyName": "Epilogue", + "fullName": "Epilogue SemiBold", + "postscriptName": "Epilogue-SemiBold", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1019, + "subsets": { + "latin": { + "xWidthAvg": 1019 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "700": { + "familyName": "Epilogue", + "fullName": "Epilogue Bold", + "postscriptName": "Epilogue-Bold", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1034, + "subsets": { + "latin": { + "xWidthAvg": 1034 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "800": { + "familyName": "Epilogue", + "fullName": "Epilogue ExtraBold", + "postscriptName": "Epilogue-ExtraBold", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1049, + "subsets": { + "latin": { + "xWidthAvg": 1049 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "900": { + "familyName": "Epilogue", + "fullName": "Epilogue Black", + "postscriptName": "Epilogue-Black", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1064, + "subsets": { + "latin": { + "xWidthAvg": 1064 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "regular": { + "familyName": "Epilogue", + "fullName": "Epilogue Regular", + "postscriptName": "Epilogue-Regular", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 990, + "subsets": { + "latin": { + "xWidthAvg": 990 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "italic": { + "familyName": "Epilogue", + "fullName": "Epilogue Italic", + "postscriptName": "Epilogue-Italic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "900italic": { + "familyName": "Epilogue", + "fullName": "Epilogue Black Italic", + "postscriptName": "Epilogue-BlackItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1072, + "subsets": { + "latin": { + "xWidthAvg": 1072 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "800italic": { + "familyName": "Epilogue", + "fullName": "Epilogue ExtraBold Italic", + "postscriptName": "Epilogue-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1057, + "subsets": { + "latin": { + "xWidthAvg": 1057 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "700italic": { + "familyName": "Epilogue", + "fullName": "Epilogue Bold Italic", + "postscriptName": "Epilogue-BoldItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1041, + "subsets": { + "latin": { + "xWidthAvg": 1041 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "600italic": { + "familyName": "Epilogue", + "fullName": "Epilogue SemiBold Italic", + "postscriptName": "Epilogue-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1026, + "subsets": { + "latin": { + "xWidthAvg": 1026 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "500italic": { + "familyName": "Epilogue", + "fullName": "Epilogue Medium Italic", + "postscriptName": "Epilogue-MediumItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "300italic": { + "familyName": "Epilogue", + "fullName": "Epilogue Light Italic", + "postscriptName": "Epilogue-LightItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "200italic": { + "familyName": "Epilogue", + "fullName": "Epilogue ExtraLight Italic", + "postscriptName": "Epilogue-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 972, + "subsets": { + "latin": { + "xWidthAvg": 972 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "100italic": { + "familyName": "Epilogue", + "fullName": "Epilogue Thin Italic", + "postscriptName": "Epilogue-ThinItalic", + "category": "sans-serif", + "capHeight": 1475, + "ascent": 1580, + "descent": -470, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 669 + } + } + } + } + }, + "ericaOne": { + "familyName": "Erica One", + "fullName": "Erica One", + "postscriptName": "EricaOne-Regular", + "category": "display", + "capHeight": 691, + "ascent": 1153, + "descent": -339, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 591, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 243 + } + }, + "variants": { + "regular": { + "familyName": "Erica One", + "fullName": "Erica One", + "postscriptName": "EricaOne-Regular", + "category": "display", + "capHeight": 691, + "ascent": 1153, + "descent": -339, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 591, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 243 + } + } + } + } + }, + "esteban": { + "familyName": "Esteban", + "fullName": "Esteban", + "postscriptName": "Esteban", + "category": "serif", + "capHeight": 137, + "ascent": 984, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 127, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 270 + } + }, + "variants": { + "regular": { + "familyName": "Esteban", + "fullName": "Esteban", + "postscriptName": "Esteban", + "category": "serif", + "capHeight": 137, + "ascent": 984, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 127, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 270 + } + } + } + } + }, + "estonia": { + "familyName": "Estonia", + "fullName": "Estonia Regular", + "postscriptName": "Estonia-Regular", + "category": "handwriting", + "capHeight": 447, + "ascent": 900, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 261, + "xWidthAvg": 241, + "subsets": { + "latin": { + "xWidthAvg": 241 + }, + "thai": { + "xWidthAvg": 391 + } + }, + "variants": { + "regular": { + "familyName": "Estonia", + "fullName": "Estonia Regular", + "postscriptName": "Estonia-Regular", + "category": "handwriting", + "capHeight": 447, + "ascent": 900, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 261, + "xWidthAvg": 241, + "subsets": { + "latin": { + "xWidthAvg": 241 + }, + "thai": { + "xWidthAvg": 391 + } + } + } + } + }, + "euphoriaScript": { + "familyName": "Euphoria Script", + "fullName": "Euphoria Script", + "postscriptName": "EuphoriaScript-Regular", + "category": "handwriting", + "capHeight": 274, + "ascent": 1014, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 1250, + "xHeight": 344, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 187 + } + }, + "variants": { + "regular": { + "familyName": "Euphoria Script", + "fullName": "Euphoria Script", + "postscriptName": "EuphoriaScript-Regular", + "category": "handwriting", + "capHeight": 274, + "ascent": 1014, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 1250, + "xHeight": 344, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 187 + } + } + } + } + }, + "ewert": { + "familyName": "Ewert", + "fullName": "Ewert", + "postscriptName": "Ewert-Regular", + "category": "display", + "capHeight": 700, + "ascent": 944, + "descent": -299, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 399 + } + }, + "variants": { + "regular": { + "familyName": "Ewert", + "fullName": "Ewert", + "postscriptName": "Ewert-Regular", + "category": "display", + "capHeight": 700, + "ascent": 944, + "descent": -299, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 399 + } + } + } + } + }, + "exo": { + "familyName": "Exo", + "fullName": "Exo Regular", + "postscriptName": "Exo-Regular", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 654 + } + }, + "variants": { + "100": { + "familyName": "Exo", + "fullName": "Exo Thin", + "postscriptName": "Exo-Thin", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 651 + } + } + }, + "200": { + "familyName": "Exo", + "fullName": "Exo ExtraLight", + "postscriptName": "Exo-ExtraLight", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "300": { + "familyName": "Exo", + "fullName": "Exo Light", + "postscriptName": "Exo-Light", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 653 + } + } + }, + "500": { + "familyName": "Exo", + "fullName": "Exo Medium", + "postscriptName": "Exo-Medium", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "600": { + "familyName": "Exo", + "fullName": "Exo SemiBold", + "postscriptName": "Exo-SemiBold", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "700": { + "familyName": "Exo", + "fullName": "Exo Bold", + "postscriptName": "Exo-Bold", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "800": { + "familyName": "Exo", + "fullName": "Exo ExtraBold", + "postscriptName": "Exo-ExtraBold", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "900": { + "familyName": "Exo", + "fullName": "Exo Black", + "postscriptName": "Exo-Black", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "regular": { + "familyName": "Exo", + "fullName": "Exo Regular", + "postscriptName": "Exo-Regular", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "italic": { + "familyName": "Exo", + "fullName": "Exo Italic", + "postscriptName": "Exo-Italic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "900italic": { + "familyName": "Exo", + "fullName": "Exo Black Italic", + "postscriptName": "Exo-BlackItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "800italic": { + "familyName": "Exo", + "fullName": "Exo ExtraBold Italic", + "postscriptName": "Exo-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "700italic": { + "familyName": "Exo", + "fullName": "Exo Bold Italic", + "postscriptName": "Exo-BoldItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "600italic": { + "familyName": "Exo", + "fullName": "Exo SemiBold Italic", + "postscriptName": "Exo-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "500italic": { + "familyName": "Exo", + "fullName": "Exo Medium Italic", + "postscriptName": "Exo-MediumItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "300italic": { + "familyName": "Exo", + "fullName": "Exo Light Italic", + "postscriptName": "Exo-LightItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 653 + } + } + }, + "200italic": { + "familyName": "Exo", + "fullName": "Exo ExtraLight Italic", + "postscriptName": "Exo-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "100italic": { + "familyName": "Exo", + "fullName": "Exo Thin Italic", + "postscriptName": "Exo-ThinItalic", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1002, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 651 + } + } + } + } + }, + "exo2": { + "familyName": "Exo 2", + "fullName": "Exo 2 Regular", + "postscriptName": "Exo2-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 624 + } + }, + "variants": { + "100": { + "familyName": "Exo 2", + "fullName": "Exo 2 Thin", + "postscriptName": "Exo2-Thin", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "200": { + "familyName": "Exo 2", + "fullName": "Exo 2 ExtraLight", + "postscriptName": "Exo2-ExtraLight", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "300": { + "familyName": "Exo 2", + "fullName": "Exo 2 Light", + "postscriptName": "Exo2-Light", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 635 + } + } + }, + "500": { + "familyName": "Exo 2", + "fullName": "Exo 2 Medium", + "postscriptName": "Exo2-Medium", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 618 + } + } + }, + "600": { + "familyName": "Exo 2", + "fullName": "Exo 2 SemiBold", + "postscriptName": "Exo2-SemiBold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 604 + } + } + }, + "700": { + "familyName": "Exo 2", + "fullName": "Exo 2 Bold", + "postscriptName": "Exo2-Bold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "800": { + "familyName": "Exo 2", + "fullName": "Exo 2 ExtraBold", + "postscriptName": "Exo2-ExtraBold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 571 + } + } + }, + "900": { + "familyName": "Exo 2", + "fullName": "Exo 2 Black", + "postscriptName": "Exo2-Black", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "regular": { + "familyName": "Exo 2", + "fullName": "Exo 2 Regular", + "postscriptName": "Exo2-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 624 + } + } + }, + "italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 Italic", + "postscriptName": "Exo2-Italic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 624 + } + } + }, + "900italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 Black Italic", + "postscriptName": "Exo2-BlackItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "800italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 ExtraBold Italic", + "postscriptName": "Exo2-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 571 + } + } + }, + "700italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 Bold Italic", + "postscriptName": "Exo2-BoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "600italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 SemiBold Italic", + "postscriptName": "Exo2-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 604 + } + } + }, + "500italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 Medium Italic", + "postscriptName": "Exo2-MediumItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 618 + } + } + }, + "300italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 Light Italic", + "postscriptName": "Exo2-LightItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 635 + } + } + }, + "200italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 ExtraLight Italic", + "postscriptName": "Exo2-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "100italic": { + "familyName": "Exo 2", + "fullName": "Exo 2 Thin Italic", + "postscriptName": "Exo2-ThinItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 999, + "descent": -201, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 656 + } + } + } + } + }, + "expletusSans": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Regular", + "postscriptName": "ExpletusSans-Regular", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1524 + } + }, + "variants": { + "500": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Medium", + "postscriptName": "ExpletusSans-Medium", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1518 + } + } + }, + "600": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans SemiBold", + "postscriptName": "ExpletusSans-SemiBold", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1510 + } + } + }, + "700": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Bold", + "postscriptName": "ExpletusSans-Bold", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 957, + "subsets": { + "latin": { + "xWidthAvg": 957 + }, + "thai": { + "xWidthAvg": 1502 + } + } + }, + "regular": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Regular", + "postscriptName": "ExpletusSans-Regular", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1524 + } + } + }, + "italic": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Italic", + "postscriptName": "ExpletusSans-Italic", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1524 + } + } + }, + "700italic": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Bold Italic", + "postscriptName": "ExpletusSans-BoldItalic", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 967, + "subsets": { + "latin": { + "xWidthAvg": 967 + }, + "thai": { + "xWidthAvg": 1502 + } + } + }, + "600italic": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans SemiBold Italic", + "postscriptName": "ExpletusSans-SemiBoldItalic", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 952, + "subsets": { + "latin": { + "xWidthAvg": 952 + }, + "thai": { + "xWidthAvg": 1510 + } + } + }, + "500italic": { + "familyName": "Expletus Sans", + "fullName": "Expletus Sans Medium Italic", + "postscriptName": "ExpletusSans-MediumItalic", + "category": "display", + "capHeight": 1454, + "ascent": 2066, + "descent": -612, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 939, + "subsets": { + "latin": { + "xWidthAvg": 939 + }, + "thai": { + "xWidthAvg": 1518 + } + } + } + } + }, + "explora": { + "familyName": "Explora", + "fullName": "Explora Regular", + "postscriptName": "Explora-Regular", + "category": "handwriting", + "capHeight": 542, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 325, + "xWidthAvg": 242, + "subsets": { + "latin": { + "xWidthAvg": 242 + }, + "thai": { + "xWidthAvg": 429 + } + }, + "variants": { + "regular": { + "familyName": "Explora", + "fullName": "Explora Regular", + "postscriptName": "Explora-Regular", + "category": "handwriting", + "capHeight": 542, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 325, + "xWidthAvg": 242, + "subsets": { + "latin": { + "xWidthAvg": 242 + }, + "thai": { + "xWidthAvg": 429 + } + } + } + } + }, + "facultyGlyphic": { + "familyName": "Faculty Glyphic", + "fullName": "Faculty Glyphic Regular", + "postscriptName": "FacultyGlyphic-Regular", + "category": "sans-serif", + "capHeight": 775, + "ascent": 1037, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 493 + } + }, + "variants": { + "regular": { + "familyName": "Faculty Glyphic", + "fullName": "Faculty Glyphic Regular", + "postscriptName": "FacultyGlyphic-Regular", + "category": "sans-serif", + "capHeight": 775, + "ascent": 1037, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 493 + } + } + } + } + }, + "fahkwang": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Regular", + "postscriptName": "Fahkwang-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 650 + } + }, + "variants": { + "200": { + "familyName": "Fahkwang", + "fullName": "Fahkwang ExtraLight", + "postscriptName": "Fahkwang-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "300": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Light", + "postscriptName": "Fahkwang-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "500": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Medium", + "postscriptName": "Fahkwang-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "600": { + "familyName": "Fahkwang", + "fullName": "Fahkwang SemiBold", + "postscriptName": "Fahkwang-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "700": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Bold", + "postscriptName": "Fahkwang-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "regular": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Regular", + "postscriptName": "Fahkwang-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 650 + } + } + }, + "italic": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Italic", + "postscriptName": "Fahkwang-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 650 + } + } + }, + "700italic": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Bold Italic", + "postscriptName": "Fahkwang-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "600italic": { + "familyName": "Fahkwang", + "fullName": "Fahkwang SemiBold Italic", + "postscriptName": "Fahkwang-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "500italic": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Medium Italic", + "postscriptName": "Fahkwang-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "300italic": { + "familyName": "Fahkwang", + "fullName": "Fahkwang Light Italic", + "postscriptName": "Fahkwang-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "200italic": { + "familyName": "Fahkwang", + "fullName": "Fahkwang ExtraLight Italic", + "postscriptName": "Fahkwang-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1008, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 641 + } + } + } + } + }, + "familjenGrotesk": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Regular", + "postscriptName": "FamiljenGrotesk-Regular", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "500": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Medium", + "postscriptName": "FamiljenGrotesk-Medium", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk SemiBold", + "postscriptName": "FamiljenGrotesk-SemiBold", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Bold", + "postscriptName": "FamiljenGrotesk-Bold", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "regular": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Regular", + "postscriptName": "FamiljenGrotesk-Regular", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "italic": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Italic", + "postscriptName": "FamiljenGrotesk-Italic", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700italic": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Bold Italic", + "postscriptName": "FamiljenGrotesk-BoldItalic", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600italic": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk SemiBold Italic", + "postscriptName": "FamiljenGrotesk-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "500italic": { + "familyName": "Familjen Grotesk", + "fullName": "Familjen Grotesk Medium Italic", + "postscriptName": "FamiljenGrotesk-MediumItalic", + "category": "sans-serif", + "capHeight": 780, + "ascent": 1230, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "fanwoodText": { + "familyName": "Fanwood Text", + "fullName": "Fanwood Text", + "postscriptName": "FanwoodText-Regular", + "category": "serif", + "capHeight": 1282, + "ascent": 3761, + "descent": -1609, + "lineGap": 0, + "unitsPerEm": 4096, + "xHeight": 1606, + "xWidthAvg": 1572, + "subsets": { + "latin": { + "xWidthAvg": 1572 + }, + "thai": { + "xWidthAvg": 1497 + } + }, + "variants": { + "regular": { + "familyName": "Fanwood Text", + "fullName": "Fanwood Text", + "postscriptName": "FanwoodText-Regular", + "category": "serif", + "capHeight": 1282, + "ascent": 3761, + "descent": -1609, + "lineGap": 0, + "unitsPerEm": 4096, + "xHeight": 1606, + "xWidthAvg": 1572, + "subsets": { + "latin": { + "xWidthAvg": 1572 + }, + "thai": { + "xWidthAvg": 1497 + } + } + }, + "italic": { + "familyName": "Fanwood Text", + "fullName": "Fanwood Text Italic", + "postscriptName": "FanwoodText-Italic", + "category": "serif", + "capHeight": 1172, + "ascent": 3761, + "descent": -1609, + "lineGap": 0, + "unitsPerEm": 4096, + "xHeight": 1261, + "xWidthAvg": 1546, + "subsets": { + "latin": { + "xWidthAvg": 1546 + }, + "thai": { + "xWidthAvg": 1497 + } + } + } + } + }, + "farro": { + "familyName": "Farro", + "fullName": "Farro Regular", + "postscriptName": "Farro-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1106 + } + }, + "variants": { + "300": { + "familyName": "Farro", + "fullName": "Farro Light", + "postscriptName": "Farro-Light", + "category": "sans-serif", + "capHeight": 750, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 1129 + } + } + }, + "500": { + "familyName": "Farro", + "fullName": "Farro Medium", + "postscriptName": "Farro-Medium", + "category": "sans-serif", + "capHeight": 750, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 1081 + } + } + }, + "700": { + "familyName": "Farro", + "fullName": "Farro Bold", + "postscriptName": "Farro-Bold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 1059 + } + } + }, + "regular": { + "familyName": "Farro", + "fullName": "Farro Regular", + "postscriptName": "Farro-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1106 + } + } + } + } + }, + "farsan": { + "familyName": "Farsan", + "fullName": "Farsan Regular", + "postscriptName": "Farsan-Regular", + "category": "display", + "capHeight": 664, + "ascent": 711, + "descent": -289, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 312, + "subsets": { + "latin": { + "xWidthAvg": 312 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Farsan", + "fullName": "Farsan Regular", + "postscriptName": "Farsan-Regular", + "category": "display", + "capHeight": 664, + "ascent": 711, + "descent": -289, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 312, + "subsets": { + "latin": { + "xWidthAvg": 312 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "fascinate": { + "familyName": "Fascinate", + "fullName": "Fascinate", + "postscriptName": "Fascinate-Regular", + "category": "display", + "capHeight": 1436, + "ascent": 2125, + "descent": -591, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1116, + "subsets": { + "latin": { + "xWidthAvg": 1116 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Fascinate", + "fullName": "Fascinate", + "postscriptName": "Fascinate-Regular", + "category": "display", + "capHeight": 1436, + "ascent": 2125, + "descent": -591, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1116, + "subsets": { + "latin": { + "xWidthAvg": 1116 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "fascinateInline": { + "familyName": "Fascinate Inline", + "fullName": "Fascinate Inline", + "postscriptName": "FascinateInline-Regular", + "category": "display", + "capHeight": 1436, + "ascent": 2125, + "descent": -591, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1116, + "subsets": { + "latin": { + "xWidthAvg": 1116 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Fascinate Inline", + "fullName": "Fascinate Inline", + "postscriptName": "FascinateInline-Regular", + "category": "display", + "capHeight": 1436, + "ascent": 2125, + "descent": -591, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1116, + "subsets": { + "latin": { + "xWidthAvg": 1116 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "fasterOne": { + "familyName": "Faster One", + "fullName": "Faster One Regular", + "postscriptName": "FasterOne-Regular", + "category": "display", + "capHeight": 625, + "ascent": 898, + "descent": -165, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 150 + } + }, + "variants": { + "regular": { + "familyName": "Faster One", + "fullName": "Faster One Regular", + "postscriptName": "FasterOne-Regular", + "category": "display", + "capHeight": 625, + "ascent": 898, + "descent": -165, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 613, + "subsets": { + "latin": { + "xWidthAvg": 613 + }, + "thai": { + "xWidthAvg": 150 + } + } + } + } + }, + "fasthand": { + "familyName": "Fasthand", + "fullName": "Fasthand Regular", + "postscriptName": "Fasthand-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Fasthand", + "fullName": "Fasthand Regular", + "postscriptName": "Fasthand-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "faunaOne": { + "familyName": "Fauna One", + "fullName": "Fauna One Regular", + "postscriptName": "FaunaOne-Regular", + "category": "serif", + "capHeight": 730, + "ascent": 987, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 283 + } + }, + "variants": { + "regular": { + "familyName": "Fauna One", + "fullName": "Fauna One Regular", + "postscriptName": "FaunaOne-Regular", + "category": "serif", + "capHeight": 730, + "ascent": 987, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 283 + } + } + } + } + }, + "faustina": { + "familyName": "Faustina", + "fullName": "Faustina Regular", + "postscriptName": "Faustina-Regular", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 700 + } + }, + "variants": { + "300": { + "familyName": "Faustina", + "fullName": "Faustina Light", + "postscriptName": "Faustina-Light", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500": { + "familyName": "Faustina", + "fullName": "Faustina Medium", + "postscriptName": "Faustina-Medium", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600": { + "familyName": "Faustina", + "fullName": "Faustina SemiBold", + "postscriptName": "Faustina-SemiBold", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700": { + "familyName": "Faustina", + "fullName": "Faustina Bold", + "postscriptName": "Faustina-Bold", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800": { + "familyName": "Faustina", + "fullName": "Faustina ExtraBold", + "postscriptName": "Faustina-ExtraBold", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "regular": { + "familyName": "Faustina", + "fullName": "Faustina Regular", + "postscriptName": "Faustina-Regular", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "italic": { + "familyName": "Faustina", + "fullName": "Faustina Italic", + "postscriptName": "Faustina-Italic", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800italic": { + "familyName": "Faustina", + "fullName": "Faustina ExtraBold Italic", + "postscriptName": "Faustina-ExtraBoldItalic", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700italic": { + "familyName": "Faustina", + "fullName": "Faustina Bold Italic", + "postscriptName": "Faustina-BoldItalic", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600italic": { + "familyName": "Faustina", + "fullName": "Faustina SemiBold Italic", + "postscriptName": "Faustina-SemiBoldItalic", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500italic": { + "familyName": "Faustina", + "fullName": "Faustina Medium Italic", + "postscriptName": "Faustina-MediumItalic", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "300italic": { + "familyName": "Faustina", + "fullName": "Faustina Light Italic", + "postscriptName": "Faustina-LightItalic", + "category": "serif", + "capHeight": 648, + "ascent": 1043, + "descent": -217, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 700 + } + } + } + } + }, + "federant": { + "familyName": "Federant", + "fullName": "Federant", + "postscriptName": "Federant-Regular", + "category": "display", + "capHeight": 714, + "ascent": 942, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 529 + } + }, + "variants": { + "regular": { + "familyName": "Federant", + "fullName": "Federant", + "postscriptName": "Federant-Regular", + "category": "display", + "capHeight": 714, + "ascent": 942, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 529 + } + } + } + } + }, + "federo": { + "familyName": "Federo", + "fullName": "Federo", + "postscriptName": "Federo-Regular", + "category": "sans-serif", + "capHeight": 1487, + "ascent": 1883, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 942, + "xWidthAvg": 831, + "subsets": { + "latin": { + "xWidthAvg": 831 + }, + "thai": { + "xWidthAvg": 1083 + } + }, + "variants": { + "regular": { + "familyName": "Federo", + "fullName": "Federo", + "postscriptName": "Federo-Regular", + "category": "sans-serif", + "capHeight": 1487, + "ascent": 1883, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 942, + "xWidthAvg": 831, + "subsets": { + "latin": { + "xWidthAvg": 831 + }, + "thai": { + "xWidthAvg": 1083 + } + } + } + } + }, + "felipa": { + "familyName": "Felipa", + "fullName": "Felipa", + "postscriptName": "Felipa-Regular", + "category": "handwriting", + "capHeight": 752, + "ascent": 966, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 346, + "subsets": { + "latin": { + "xWidthAvg": 346 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Felipa", + "fullName": "Felipa", + "postscriptName": "Felipa-Regular", + "category": "handwriting", + "capHeight": 752, + "ascent": 966, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 346, + "subsets": { + "latin": { + "xWidthAvg": 346 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "fenix": { + "familyName": "Fenix", + "fullName": "Fenix", + "postscriptName": "Fenix", + "category": "serif", + "capHeight": 650, + "ascent": 879, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 568 + } + }, + "variants": { + "regular": { + "familyName": "Fenix", + "fullName": "Fenix", + "postscriptName": "Fenix", + "category": "serif", + "capHeight": 650, + "ascent": 879, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 568 + } + } + } + } + }, + "festive": { + "familyName": "Festive", + "fullName": "Festive Regular", + "postscriptName": "Festive-Regular", + "category": "handwriting", + "capHeight": 800, + "ascent": 1100, + "descent": -590, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 495 + } + }, + "variants": { + "regular": { + "familyName": "Festive", + "fullName": "Festive Regular", + "postscriptName": "Festive-Regular", + "category": "handwriting", + "capHeight": 800, + "ascent": 1100, + "descent": -590, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 495 + } + } + } + } + }, + "figtree": { + "familyName": "Figtree", + "fullName": "Figtree Regular", + "postscriptName": "Figtree-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 708 + } + }, + "variants": { + "300": { + "familyName": "Figtree", + "fullName": "Figtree Light", + "postscriptName": "Figtree-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "500": { + "familyName": "Figtree", + "fullName": "Figtree Medium", + "postscriptName": "Figtree-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "600": { + "familyName": "Figtree", + "fullName": "Figtree SemiBold", + "postscriptName": "Figtree-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "700": { + "familyName": "Figtree", + "fullName": "Figtree Bold", + "postscriptName": "Figtree-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "800": { + "familyName": "Figtree", + "fullName": "Figtree ExtraBold", + "postscriptName": "Figtree-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "900": { + "familyName": "Figtree", + "fullName": "Figtree Black", + "postscriptName": "Figtree-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "regular": { + "familyName": "Figtree", + "fullName": "Figtree Regular", + "postscriptName": "Figtree-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "italic": { + "familyName": "Figtree", + "fullName": "Figtree Italic", + "postscriptName": "Figtree-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "900italic": { + "familyName": "Figtree", + "fullName": "Figtree Black Italic", + "postscriptName": "Figtree-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "800italic": { + "familyName": "Figtree", + "fullName": "Figtree ExtraBold Italic", + "postscriptName": "Figtree-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "700italic": { + "familyName": "Figtree", + "fullName": "Figtree Bold Italic", + "postscriptName": "Figtree-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "600italic": { + "familyName": "Figtree", + "fullName": "Figtree SemiBold Italic", + "postscriptName": "Figtree-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "500italic": { + "familyName": "Figtree", + "fullName": "Figtree Medium Italic", + "postscriptName": "Figtree-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "300italic": { + "familyName": "Figtree", + "fullName": "Figtree Light Italic", + "postscriptName": "Figtree-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 708 + } + } + } + } + }, + "fingerPaint": { + "familyName": "Finger Paint", + "fullName": "Finger Paint Regular", + "postscriptName": "FingerPaint-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1097, + "descent": -377, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Finger Paint", + "fullName": "Finger Paint Regular", + "postscriptName": "FingerPaint-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1097, + "descent": -377, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "finlandica": { + "familyName": "Finlandica", + "fullName": "Finlandica Regular", + "postscriptName": "Finlandica-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Finlandica", + "fullName": "Finlandica Medium", + "postscriptName": "Finlandica-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Finlandica", + "fullName": "Finlandica SemiBold", + "postscriptName": "Finlandica-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Finlandica", + "fullName": "Finlandica Bold", + "postscriptName": "Finlandica-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Finlandica", + "fullName": "Finlandica Regular", + "postscriptName": "Finlandica-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Finlandica", + "fullName": "Finlandica Italic", + "postscriptName": "Finlandica-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Finlandica", + "fullName": "Finlandica Bold Italic", + "postscriptName": "Finlandica-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Finlandica", + "fullName": "Finlandica SemiBold Italic", + "postscriptName": "Finlandica-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Finlandica", + "fullName": "Finlandica Medium Italic", + "postscriptName": "Finlandica-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "firaCode": { + "familyName": "Fira Code", + "fullName": "Fira Code Regular", + "postscriptName": "FiraCode-Regular", + "category": "monospace", + "capHeight": 1377, + "ascent": 1980, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1053, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + }, + "variants": { + "300": { + "familyName": "Fira Code", + "fullName": "Fira Code Light", + "postscriptName": "FiraCode-Light", + "category": "monospace", + "capHeight": 1374, + "ascent": 1980, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1050, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "500": { + "familyName": "Fira Code", + "fullName": "Fira Code Medium", + "postscriptName": "FiraCode-Medium", + "category": "monospace", + "capHeight": 1380, + "ascent": 1980, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1056, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600": { + "familyName": "Fira Code", + "fullName": "Fira Code SemiBold", + "postscriptName": "FiraCode-SemiBold", + "category": "monospace", + "capHeight": 1383, + "ascent": 1980, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1059, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700": { + "familyName": "Fira Code", + "fullName": "Fira Code Bold", + "postscriptName": "FiraCode-Bold", + "category": "monospace", + "capHeight": 1386, + "ascent": 1980, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1062, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "regular": { + "familyName": "Fira Code", + "fullName": "Fira Code Regular", + "postscriptName": "FiraCode-Regular", + "category": "monospace", + "capHeight": 1377, + "ascent": 1980, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1053, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + } + } + }, + "firaMono": { + "familyName": "Fira Mono", + "fullName": "Fira Mono Regular", + "postscriptName": "FiraMono-Regular", + "category": "monospace", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Fira Mono", + "fullName": "Fira Mono Medium", + "postscriptName": "FiraMono-Medium", + "category": "monospace", + "capHeight": 690, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Fira Mono", + "fullName": "Fira Mono Bold", + "postscriptName": "FiraMono-Bold", + "category": "monospace", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Fira Mono", + "fullName": "Fira Mono Regular", + "postscriptName": "FiraMono-Regular", + "category": "monospace", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "firaSans": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Regular", + "postscriptName": "FiraSans-Regular", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 666 + } + }, + "variants": { + "100": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Thin", + "postscriptName": "FiraSans-Thin", + "category": "sans-serif", + "capHeight": 681, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "200": { + "familyName": "Fira Sans", + "fullName": "Fira Sans ExtraLight", + "postscriptName": "FiraSans-ExtraLight", + "category": "sans-serif", + "capHeight": 684, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "300": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Light", + "postscriptName": "FiraSans-Light", + "category": "sans-serif", + "capHeight": 685, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "500": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Medium", + "postscriptName": "FiraSans-Medium", + "category": "sans-serif", + "capHeight": 691, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "600": { + "familyName": "Fira Sans", + "fullName": "Fira Sans SemiBold", + "postscriptName": "FiraSans-SemiBold", + "category": "sans-serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "700": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Bold", + "postscriptName": "FiraSans-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "800": { + "familyName": "Fira Sans", + "fullName": "Fira Sans ExtraBold", + "postscriptName": "FiraSans-ExtraBold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "900": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Black", + "postscriptName": "FiraSans-Black", + "category": "sans-serif", + "capHeight": 696, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "regular": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Regular", + "postscriptName": "FiraSans-Regular", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Italic", + "postscriptName": "FiraSans-Italic", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "900italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Black Italic", + "postscriptName": "FiraSans-BlackItalic", + "category": "sans-serif", + "capHeight": 696, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "800italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans ExtraBold Italic", + "postscriptName": "FiraSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "700italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Bold Italic", + "postscriptName": "FiraSans-BoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "600italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans SemiBold Italic", + "postscriptName": "FiraSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "500italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Medium Italic", + "postscriptName": "FiraSans-MediumItalic", + "category": "sans-serif", + "capHeight": 691, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "300italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Light Italic", + "postscriptName": "FiraSans-LightItalic", + "category": "sans-serif", + "capHeight": 685, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "200italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans ExtraLight Italic", + "postscriptName": "FiraSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 684, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "100italic": { + "familyName": "Fira Sans", + "fullName": "Fira Sans Thin Italic", + "postscriptName": "FiraSans-ThinItalic", + "category": "sans-serif", + "capHeight": 681, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 666 + } + } + } + } + }, + "firaSansCondensed": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Regular", + "postscriptName": "FiraSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 666 + } + }, + "variants": { + "100": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Thin", + "postscriptName": "FiraSansCondensed-Thin", + "category": "sans-serif", + "capHeight": 681, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "200": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed ExtraLight", + "postscriptName": "FiraSansCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 684, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "300": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Light", + "postscriptName": "FiraSansCondensed-Light", + "category": "sans-serif", + "capHeight": 685, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "500": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Medium", + "postscriptName": "FiraSansCondensed-Medium", + "category": "sans-serif", + "capHeight": 691, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "600": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed SemiBold", + "postscriptName": "FiraSansCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "700": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Bold", + "postscriptName": "FiraSansCondensed-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "800": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed ExtraBold", + "postscriptName": "FiraSansCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "900": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Black", + "postscriptName": "FiraSansCondensed-Black", + "category": "sans-serif", + "capHeight": 696, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "regular": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Regular", + "postscriptName": "FiraSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Italic", + "postscriptName": "FiraSansCondensed-Italic", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "900italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Black Italic", + "postscriptName": "FiraSansCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 696, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "800italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed ExtraBold Italic", + "postscriptName": "FiraSansCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 694, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "700italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Bold Italic", + "postscriptName": "FiraSansCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "600italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed SemiBold Italic", + "postscriptName": "FiraSansCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "500italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Medium Italic", + "postscriptName": "FiraSansCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 691, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "300italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Light Italic", + "postscriptName": "FiraSansCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 685, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "200italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed ExtraLight Italic", + "postscriptName": "FiraSansCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 684, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "100italic": { + "familyName": "Fira Sans Condensed", + "fullName": "Fira Sans Condensed Thin Italic", + "postscriptName": "FiraSansCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 681, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 666 + } + } + } + } + }, + "firaSansExtraCondensed": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Regular", + "postscriptName": "FiraSansExtraCondensed-Regular", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 666 + } + }, + "variants": { + "100": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Thin", + "postscriptName": "FiraSansExtraCondensed-Thin", + "category": "sans-serif", + "capHeight": 681, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "200": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed ExtraLight", + "postscriptName": "FiraSansExtraCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 684, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "300": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Light", + "postscriptName": "FiraSansExtraCondensed-Light", + "category": "sans-serif", + "capHeight": 685, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "500": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Medium", + "postscriptName": "FiraSansExtraCondensed-Medium", + "category": "sans-serif", + "capHeight": 691, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "600": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed SemiBold", + "postscriptName": "FiraSansExtraCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "700": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Bold", + "postscriptName": "FiraSansExtraCondensed-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "800": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed ExtraBold", + "postscriptName": "FiraSansExtraCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "900": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Black", + "postscriptName": "FiraSansExtraCondensed-Black", + "category": "sans-serif", + "capHeight": 696, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "regular": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Regular", + "postscriptName": "FiraSansExtraCondensed-Regular", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Italic", + "postscriptName": "FiraSansExtraCondensed-Italic", + "category": "sans-serif", + "capHeight": 689, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "900italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Black Italic", + "postscriptName": "FiraSansExtraCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 696, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 654 + } + } + }, + "800italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed ExtraBold Italic", + "postscriptName": "FiraSansExtraCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 695, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "700italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Bold Italic", + "postscriptName": "FiraSansExtraCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "600italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed SemiBold Italic", + "postscriptName": "FiraSansExtraCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 692, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "500italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Medium Italic", + "postscriptName": "FiraSansExtraCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 691, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "300italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Light Italic", + "postscriptName": "FiraSansExtraCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 685, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "200italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed ExtraLight Italic", + "postscriptName": "FiraSansExtraCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 684, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 664 + } + } + }, + "100italic": { + "familyName": "Fira Sans Extra Condensed", + "fullName": "Fira Sans Extra Condensed Thin Italic", + "postscriptName": "FiraSansExtraCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 681, + "ascent": 935, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 666 + } + } + } + } + }, + "fjallaOne": { + "familyName": "Fjalla One", + "fullName": "Fjalla One Regular", + "postscriptName": "FjallaOne-Regular", + "category": "sans-serif", + "capHeight": 1708, + "ascent": 2066, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1377, + "xWidthAvg": 798, + "subsets": { + "latin": { + "xWidthAvg": 798 + }, + "thai": { + "xWidthAvg": 1316 + } + }, + "variants": { + "regular": { + "familyName": "Fjalla One", + "fullName": "Fjalla One Regular", + "postscriptName": "FjallaOne-Regular", + "category": "sans-serif", + "capHeight": 1708, + "ascent": 2066, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1377, + "xWidthAvg": 798, + "subsets": { + "latin": { + "xWidthAvg": 798 + }, + "thai": { + "xWidthAvg": 1316 + } + } + } + } + }, + "fjordOne": { + "familyName": "Fjord One", + "fullName": "Fjord One", + "postscriptName": "Fjord-One", + "category": "serif", + "capHeight": 1448, + "ascent": 1940, + "descent": -620, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 919, + "subsets": { + "latin": { + "xWidthAvg": 919 + }, + "thai": { + "xWidthAvg": 1583 + } + }, + "variants": { + "regular": { + "familyName": "Fjord One", + "fullName": "Fjord One", + "postscriptName": "Fjord-One", + "category": "serif", + "capHeight": 1448, + "ascent": 1940, + "descent": -620, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 919, + "subsets": { + "latin": { + "xWidthAvg": 919 + }, + "thai": { + "xWidthAvg": 1583 + } + } + } + } + }, + "flamenco": { + "familyName": "Flamenco", + "fullName": "Flamenco Regular", + "postscriptName": "Flamenco-Regular", + "category": "display", + "capHeight": 608, + "ascent": 800, + "descent": -231, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 385, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "300": { + "familyName": "Flamenco", + "fullName": "Flamenco Light", + "postscriptName": "Flamenco-Light", + "category": "display", + "capHeight": 608, + "ascent": 801, + "descent": -231, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 379, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 230 + } + } + }, + "regular": { + "familyName": "Flamenco", + "fullName": "Flamenco Regular", + "postscriptName": "Flamenco-Regular", + "category": "display", + "capHeight": 608, + "ascent": 800, + "descent": -231, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 385, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "flavors": { + "familyName": "Flavors", + "fullName": "Flavors Regular", + "postscriptName": "Flavors-Regular", + "category": "display", + "capHeight": 801, + "ascent": 1015, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 845, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 287 + } + }, + "variants": { + "regular": { + "familyName": "Flavors", + "fullName": "Flavors Regular", + "postscriptName": "Flavors-Regular", + "category": "display", + "capHeight": 801, + "ascent": 1015, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 845, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 287 + } + } + } + } + }, + "fleurDeLeah": { + "familyName": "Fleur De Leah", + "fullName": "Fleur De Leah Regular", + "postscriptName": "FleurDeLeah-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 920, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 324, + "xWidthAvg": 317, + "subsets": { + "latin": { + "xWidthAvg": 317 + }, + "thai": { + "xWidthAvg": 429 + } + }, + "variants": { + "regular": { + "familyName": "Fleur De Leah", + "fullName": "Fleur De Leah Regular", + "postscriptName": "FleurDeLeah-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 920, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 324, + "xWidthAvg": 317, + "subsets": { + "latin": { + "xWidthAvg": 317 + }, + "thai": { + "xWidthAvg": 429 + } + } + } + } + }, + "flowBlock": { + "familyName": "Flow Block", + "fullName": "Flow Block Regular", + "postscriptName": "FlowBlock-Regular", + "category": "display", + "capHeight": 640, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 572 + } + }, + "variants": { + "regular": { + "familyName": "Flow Block", + "fullName": "Flow Block Regular", + "postscriptName": "FlowBlock-Regular", + "category": "display", + "capHeight": 640, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 572 + } + } + } + } + }, + "flowCircular": { + "familyName": "Flow Circular", + "fullName": "Flow Circular Regular", + "postscriptName": "FlowCircular-Regular", + "category": "display", + "capHeight": 640, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 562 + } + }, + "variants": { + "regular": { + "familyName": "Flow Circular", + "fullName": "Flow Circular Regular", + "postscriptName": "FlowCircular-Regular", + "category": "display", + "capHeight": 640, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 562 + } + } + } + } + }, + "flowRounded": { + "familyName": "Flow Rounded", + "fullName": "Flow Rounded Regular", + "postscriptName": "FlowRounded-Regular", + "category": "display", + "capHeight": 640, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 572 + } + }, + "variants": { + "regular": { + "familyName": "Flow Rounded", + "fullName": "Flow Rounded Regular", + "postscriptName": "FlowRounded-Regular", + "category": "display", + "capHeight": 640, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 572 + } + } + } + } + }, + "foldit": { + "familyName": "Foldit", + "fullName": "Foldit Regular", + "postscriptName": "Foldit-Regular", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 862 + } + }, + "variants": { + "100": { + "familyName": "Foldit", + "fullName": "Foldit Thin", + "postscriptName": "Foldit-Thin", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 176, + "subsets": { + "latin": { + "xWidthAvg": 176 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "200": { + "familyName": "Foldit", + "fullName": "Foldit ExtraLight", + "postscriptName": "Foldit-ExtraLight", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 202, + "subsets": { + "latin": { + "xWidthAvg": 202 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "300": { + "familyName": "Foldit", + "fullName": "Foldit Light", + "postscriptName": "Foldit-Light", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 252, + "subsets": { + "latin": { + "xWidthAvg": 252 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "500": { + "familyName": "Foldit", + "fullName": "Foldit Medium", + "postscriptName": "Foldit-Medium", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "600": { + "familyName": "Foldit", + "fullName": "Foldit SemiBold", + "postscriptName": "Foldit-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "700": { + "familyName": "Foldit", + "fullName": "Foldit Bold", + "postscriptName": "Foldit-Bold", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "800": { + "familyName": "Foldit", + "fullName": "Foldit ExtraBold", + "postscriptName": "Foldit-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 622, + "subsets": { + "latin": { + "xWidthAvg": 622 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "900": { + "familyName": "Foldit", + "fullName": "Foldit Black", + "postscriptName": "Foldit-Black", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 716, + "subsets": { + "latin": { + "xWidthAvg": 716 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "regular": { + "familyName": "Foldit", + "fullName": "Foldit Regular", + "postscriptName": "Foldit-Regular", + "category": "display", + "capHeight": 700, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 862 + } + } + } + } + }, + "fondamento": { + "familyName": "Fondamento", + "fullName": "Fondamento Regular", + "postscriptName": "Fondamento-Regular", + "category": "handwriting", + "capHeight": 1439, + "ascent": 2060, + "descent": -774, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 953, + "xWidthAvg": 883, + "subsets": { + "latin": { + "xWidthAvg": 883 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Fondamento", + "fullName": "Fondamento Regular", + "postscriptName": "Fondamento-Regular", + "category": "handwriting", + "capHeight": 1439, + "ascent": 2060, + "descent": -774, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 953, + "xWidthAvg": 883, + "subsets": { + "latin": { + "xWidthAvg": 883 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Fondamento", + "fullName": "Fondamento-Italic", + "postscriptName": "Fondamento-Italic", + "category": "handwriting", + "capHeight": 1439, + "ascent": 2060, + "descent": -774, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 953, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "fontdinerSwanky": { + "familyName": "Fontdiner Swanky", + "fullName": "Fontdiner Swanky Regular", + "postscriptName": "FontdinerSwanky-Regular", + "category": "display", + "capHeight": 805, + "ascent": 1047, + "descent": -510, + "lineGap": 20, + "unitsPerEm": 1024, + "xHeight": 579, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 328 + } + }, + "variants": { + "regular": { + "familyName": "Fontdiner Swanky", + "fullName": "Fontdiner Swanky Regular", + "postscriptName": "FontdinerSwanky-Regular", + "category": "display", + "capHeight": 805, + "ascent": 1047, + "descent": -510, + "lineGap": 20, + "unitsPerEm": 1024, + "xHeight": 579, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 328 + } + } + } + } + }, + "forum": { + "familyName": "Forum", + "fullName": "Forum", + "postscriptName": "Forum", + "category": "display", + "capHeight": 660, + "ascent": 856, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 260 + } + }, + "variants": { + "regular": { + "familyName": "Forum", + "fullName": "Forum", + "postscriptName": "Forum", + "category": "display", + "capHeight": 660, + "ascent": 856, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 260 + } + } + } + } + }, + "fragmentMono": { + "familyName": "Fragment Mono", + "fullName": "Fragment Mono Regular", + "postscriptName": "FragmentMono-Regular", + "category": "monospace", + "capHeight": 699, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 618 + } + }, + "variants": { + "regular": { + "familyName": "Fragment Mono", + "fullName": "Fragment Mono Regular", + "postscriptName": "FragmentMono-Regular", + "category": "monospace", + "capHeight": 699, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 618 + } + } + }, + "italic": { + "familyName": "Fragment Mono", + "fullName": "Fragment Mono Italic", + "postscriptName": "FragmentMono-Italic", + "category": "monospace", + "capHeight": 699, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 618 + } + } + } + } + }, + "francoisOne": { + "familyName": "Francois One", + "fullName": "Francois One Regular", + "postscriptName": "FrancoisOne-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1089, + "descent": -329, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 563, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Francois One", + "fullName": "Francois One Regular", + "postscriptName": "FrancoisOne-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1089, + "descent": -329, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 563, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "frankRuhlLibre": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre Regular", + "postscriptName": "FrankRuhlLibre-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 778 + } + }, + "variants": { + "300": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre Light", + "postscriptName": "FrankRuhlLibre-Light", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 778 + } + } + }, + "500": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre Medium", + "postscriptName": "FrankRuhlLibre-Medium", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 778 + } + } + }, + "600": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre SemiBold", + "postscriptName": "FrankRuhlLibre-SemiBold", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 778 + } + } + }, + "700": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre Bold", + "postscriptName": "FrankRuhlLibre-Bold", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 778 + } + } + }, + "800": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre ExtraBold", + "postscriptName": "FrankRuhlLibre-ExtraBold", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 778 + } + } + }, + "900": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre Black", + "postscriptName": "FrankRuhlLibre-Black", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 778 + } + } + }, + "regular": { + "familyName": "Frank Ruhl Libre", + "fullName": "Frank Ruhl Libre Regular", + "postscriptName": "FrankRuhlLibre-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 957, + "descent": -334, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 778 + } + } + } + } + }, + "fraunces": { + "familyName": "Fraunces", + "fullName": "Fraunces Regular", + "postscriptName": "Fraunces-Regular", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 938, + "subsets": { + "latin": { + "xWidthAvg": 938 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Fraunces", + "fullName": "Fraunces Thin", + "postscriptName": "Fraunces-Thin", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Fraunces", + "fullName": "Fraunces ExtraLight", + "postscriptName": "Fraunces-ExtraLight", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 891, + "subsets": { + "latin": { + "xWidthAvg": 891 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Fraunces", + "fullName": "Fraunces Light", + "postscriptName": "Fraunces-Light", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 907, + "subsets": { + "latin": { + "xWidthAvg": 907 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Fraunces", + "fullName": "Fraunces Medium", + "postscriptName": "Fraunces-Medium", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Fraunces", + "fullName": "Fraunces SemiBold", + "postscriptName": "Fraunces-SemiBold", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Fraunces", + "fullName": "Fraunces Bold", + "postscriptName": "Fraunces-Bold", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 1000, + "subsets": { + "latin": { + "xWidthAvg": 1000 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Fraunces", + "fullName": "Fraunces ExtraBold", + "postscriptName": "Fraunces-ExtraBold", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 1016, + "subsets": { + "latin": { + "xWidthAvg": 1016 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Fraunces", + "fullName": "Fraunces Black", + "postscriptName": "Fraunces-Black", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 1032, + "subsets": { + "latin": { + "xWidthAvg": 1032 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Fraunces", + "fullName": "Fraunces Regular", + "postscriptName": "Fraunces-Regular", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 938, + "subsets": { + "latin": { + "xWidthAvg": 938 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "italic": { + "familyName": "Fraunces", + "fullName": "Fraunces Italic", + "postscriptName": "Fraunces-Italic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 896, + "subsets": { + "latin": { + "xWidthAvg": 896 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900italic": { + "familyName": "Fraunces", + "fullName": "Fraunces Black Italic", + "postscriptName": "Fraunces-BlackItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 1019, + "subsets": { + "latin": { + "xWidthAvg": 1019 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800italic": { + "familyName": "Fraunces", + "fullName": "Fraunces ExtraBold Italic", + "postscriptName": "Fraunces-ExtraBoldItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700italic": { + "familyName": "Fraunces", + "fullName": "Fraunces Bold Italic", + "postscriptName": "Fraunces-BoldItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600italic": { + "familyName": "Fraunces", + "fullName": "Fraunces SemiBold Italic", + "postscriptName": "Fraunces-SemiBoldItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 937, + "subsets": { + "latin": { + "xWidthAvg": 937 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500italic": { + "familyName": "Fraunces", + "fullName": "Fraunces Medium Italic", + "postscriptName": "Fraunces-MediumItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 917, + "subsets": { + "latin": { + "xWidthAvg": 917 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300italic": { + "familyName": "Fraunces", + "fullName": "Fraunces Light Italic", + "postscriptName": "Fraunces-LightItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200italic": { + "familyName": "Fraunces", + "fullName": "Fraunces ExtraLight Italic", + "postscriptName": "Fraunces-ExtraLightItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 835, + "subsets": { + "latin": { + "xWidthAvg": 835 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "100italic": { + "familyName": "Fraunces", + "fullName": "Fraunces Thin Italic", + "postscriptName": "Fraunces-ThinItalic", + "category": "serif", + "capHeight": 1400, + "ascent": 1956, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 814, + "subsets": { + "latin": { + "xWidthAvg": 814 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "freckleFace": { + "familyName": "Freckle Face", + "fullName": "Freckle Face", + "postscriptName": "FreckleFace-Regular", + "category": "display", + "capHeight": 1563, + "ascent": 1946, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1147, + "xWidthAvg": 871, + "subsets": { + "latin": { + "xWidthAvg": 871 + }, + "thai": { + "xWidthAvg": 471 + } + }, + "variants": { + "regular": { + "familyName": "Freckle Face", + "fullName": "Freckle Face", + "postscriptName": "FreckleFace-Regular", + "category": "display", + "capHeight": 1563, + "ascent": 1946, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1147, + "xWidthAvg": 871, + "subsets": { + "latin": { + "xWidthAvg": 871 + }, + "thai": { + "xWidthAvg": 471 + } + } + } + } + }, + "frederickaTheGreat": { + "familyName": "Fredericka the Great", + "fullName": "Fredericka the Great", + "postscriptName": "FrederickatheGreat-Regular", + "category": "display", + "capHeight": 772, + "ascent": 1001, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 519, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 372 + } + }, + "variants": { + "regular": { + "familyName": "Fredericka the Great", + "fullName": "Fredericka the Great", + "postscriptName": "FrederickatheGreat-Regular", + "category": "display", + "capHeight": 772, + "ascent": 1001, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 519, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 372 + } + } + } + } + }, + "fredoka": { + "familyName": "Fredoka", + "fullName": "Fredoka Regular", + "postscriptName": "Fredoka-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 974, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 543 + } + }, + "variants": { + "300": { + "familyName": "Fredoka", + "fullName": "Fredoka Light", + "postscriptName": "Fredoka-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 974, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 543 + } + } + }, + "500": { + "familyName": "Fredoka", + "fullName": "Fredoka Medium", + "postscriptName": "Fredoka-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 974, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 543 + } + } + }, + "600": { + "familyName": "Fredoka", + "fullName": "Fredoka SemiBold", + "postscriptName": "Fredoka-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 974, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 543 + } + } + }, + "700": { + "familyName": "Fredoka", + "fullName": "Fredoka Bold", + "postscriptName": "Fredoka-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 974, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 543 + } + } + }, + "regular": { + "familyName": "Fredoka", + "fullName": "Fredoka Regular", + "postscriptName": "Fredoka-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 974, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 543 + } + } + } + } + }, + "freehand": { + "familyName": "Freehand", + "fullName": "Freehand Regular", + "postscriptName": "Freehand-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Freehand", + "fullName": "Freehand Regular", + "postscriptName": "Freehand-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "freeman": { + "familyName": "Freeman", + "fullName": "Freeman Regular", + "postscriptName": "Freeman-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1050, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 564, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 648 + } + }, + "variants": { + "regular": { + "familyName": "Freeman", + "fullName": "Freeman Regular", + "postscriptName": "Freeman-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1050, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 564, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 648 + } + } + } + } + }, + "fresca": { + "familyName": "Fresca", + "fullName": "Fresca-Regular", + "postscriptName": "Fresca-Regular", + "category": "sans-serif", + "capHeight": 648, + "ascent": 869, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 546 + } + }, + "variants": { + "regular": { + "familyName": "Fresca", + "fullName": "Fresca-Regular", + "postscriptName": "Fresca-Regular", + "category": "sans-serif", + "capHeight": 648, + "ascent": 869, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 546 + } + } + } + } + }, + "frijole": { + "familyName": "Frijole", + "fullName": "Frijole", + "postscriptName": "Frijole", + "category": "display", + "capHeight": 788, + "ascent": 1075, + "descent": -337, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 712, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 502 + } + }, + "variants": { + "regular": { + "familyName": "Frijole", + "fullName": "Frijole", + "postscriptName": "Frijole", + "category": "display", + "capHeight": 788, + "ascent": 1075, + "descent": -337, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 712, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 502 + } + } + } + } + }, + "fruktur": { + "familyName": "Fruktur", + "fullName": "Fruktur Regular", + "postscriptName": "Fruktur-Regular", + "category": "display", + "capHeight": 1529, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1182, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1703 + } + }, + "variants": { + "regular": { + "familyName": "Fruktur", + "fullName": "Fruktur Regular", + "postscriptName": "Fruktur-Regular", + "category": "display", + "capHeight": 1529, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1182, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1703 + } + } + }, + "italic": { + "familyName": "Fruktur", + "fullName": "Fruktur Italic", + "postscriptName": "Fruktur-Italic", + "category": "display", + "capHeight": 1529, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1182, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 1703 + } + } + } + } + }, + "fugazOne": { + "familyName": "Fugaz One", + "fullName": "Fugaz One", + "postscriptName": "FugazOne-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1046, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 597 + } + }, + "variants": { + "regular": { + "familyName": "Fugaz One", + "fullName": "Fugaz One", + "postscriptName": "FugazOne-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1046, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 597 + } + } + } + } + }, + "fuggles": { + "familyName": "Fuggles", + "fullName": "Fuggles Regular", + "postscriptName": "Fuggles-Regular", + "category": "handwriting", + "capHeight": 667, + "ascent": 850, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 234, + "subsets": { + "latin": { + "xWidthAvg": 234 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Fuggles", + "fullName": "Fuggles Regular", + "postscriptName": "Fuggles-Regular", + "category": "handwriting", + "capHeight": 667, + "ascent": 850, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 234, + "subsets": { + "latin": { + "xWidthAvg": 234 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "funnelDisplay": { + "familyName": "Funnel Display", + "fullName": "Funnel Display Regular", + "postscriptName": "FunnelDisplay-Regular", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "300": { + "familyName": "Funnel Display", + "fullName": "Funnel Display Light", + "postscriptName": "FunnelDisplay-Light", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 565, + "subsets": { + "latin": { + "xWidthAvg": 565 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "500": { + "familyName": "Funnel Display", + "fullName": "Funnel Display Medium", + "postscriptName": "FunnelDisplay-Medium", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 577, + "subsets": { + "latin": { + "xWidthAvg": 577 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600": { + "familyName": "Funnel Display", + "fullName": "Funnel Display SemiBold", + "postscriptName": "FunnelDisplay-SemiBold", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700": { + "familyName": "Funnel Display", + "fullName": "Funnel Display Bold", + "postscriptName": "FunnelDisplay-Bold", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 585, + "subsets": { + "latin": { + "xWidthAvg": 585 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "800": { + "familyName": "Funnel Display", + "fullName": "Funnel Display ExtraBold", + "postscriptName": "FunnelDisplay-ExtraBold", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 589, + "subsets": { + "latin": { + "xWidthAvg": 589 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "regular": { + "familyName": "Funnel Display", + "fullName": "Funnel Display Regular", + "postscriptName": "FunnelDisplay-Regular", + "category": "display", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "funnelSans": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Regular", + "postscriptName": "FunnelSans-Regular", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "300": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Light", + "postscriptName": "FunnelSans-Light", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "500": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Medium", + "postscriptName": "FunnelSans-Medium", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans SemiBold", + "postscriptName": "FunnelSans-SemiBold", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Bold", + "postscriptName": "FunnelSans-Bold", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 551, + "subsets": { + "latin": { + "xWidthAvg": 551 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "800": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans ExtraBold", + "postscriptName": "FunnelSans-ExtraBold", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "regular": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Regular", + "postscriptName": "FunnelSans-Regular", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "italic": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Italic", + "postscriptName": "FunnelSans-Italic", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "800italic": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans ExtraBold Italic", + "postscriptName": "FunnelSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700italic": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Bold Italic", + "postscriptName": "FunnelSans-BoldItalic", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 551, + "subsets": { + "latin": { + "xWidthAvg": 551 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "600italic": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans SemiBold Italic", + "postscriptName": "FunnelSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "500italic": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Medium Italic", + "postscriptName": "FunnelSans-MediumItalic", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "300italic": { + "familyName": "Funnel Sans", + "fullName": "Funnel Sans Light Italic", + "postscriptName": "FunnelSans-LightItalic", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1200, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1200, + "xHeight": 600, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "fustat": { + "familyName": "Fustat", + "fullName": "Fustat Regular", + "postscriptName": "Fustat-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 660 + } + }, + "variants": { + "200": { + "familyName": "Fustat", + "fullName": "Fustat ExtraLight", + "postscriptName": "Fustat-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "300": { + "familyName": "Fustat", + "fullName": "Fustat Light", + "postscriptName": "Fustat-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 678 + } + } + }, + "500": { + "familyName": "Fustat", + "fullName": "Fustat Medium", + "postscriptName": "Fustat-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "600": { + "familyName": "Fustat", + "fullName": "Fustat SemiBold", + "postscriptName": "Fustat-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "700": { + "familyName": "Fustat", + "fullName": "Fustat Bold", + "postscriptName": "Fustat-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 647 + } + } + }, + "800": { + "familyName": "Fustat", + "fullName": "Fustat ExtraBold", + "postscriptName": "Fustat-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "regular": { + "familyName": "Fustat", + "fullName": "Fustat Regular", + "postscriptName": "Fustat-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 660 + } + } + } + } + }, + "fuzzyBubbles": { + "familyName": "Fuzzy Bubbles", + "fullName": "Fuzzy Bubbles Regular", + "postscriptName": "FuzzyBubbles-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "700": { + "familyName": "Fuzzy Bubbles", + "fullName": "Fuzzy Bubbles Bold", + "postscriptName": "FuzzyBubbles-Bold", + "category": "handwriting", + "capHeight": 680, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "regular": { + "familyName": "Fuzzy Bubbles", + "fullName": "Fuzzy Bubbles Regular", + "postscriptName": "FuzzyBubbles-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "gFSDidot": { + "familyName": "GFS Didot", + "fullName": "GFS Didot Regular", + "postscriptName": "GFSDidot-Regular", + "category": "serif", + "capHeight": 689, + "ascent": 947, + "descent": -277, + "lineGap": 25, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 499 + } + }, + "variants": { + "regular": { + "familyName": "GFS Didot", + "fullName": "GFS Didot Regular", + "postscriptName": "GFSDidot-Regular", + "category": "serif", + "capHeight": 689, + "ascent": 947, + "descent": -277, + "lineGap": 25, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 499 + } + } + } + } + }, + "gFSNeohellenic": { + "familyName": "GFS Neohellenic", + "fullName": "GFS Neohellenic Regular", + "postscriptName": "GFSNeohellenic-Regular", + "category": "sans-serif", + "capHeight": 623, + "ascent": 873, + "descent": -245, + "lineGap": 24, + "unitsPerEm": 1000, + "xHeight": 387, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "GFS Neohellenic", + "fullName": "GFS Neohellenic Bold", + "postscriptName": "GFSNeohellenic-Bold", + "category": "sans-serif", + "capHeight": 623, + "ascent": 871, + "descent": -264, + "lineGap": 22, + "unitsPerEm": 1000, + "xHeight": 388, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 398 + } + } + }, + "regular": { + "familyName": "GFS Neohellenic", + "fullName": "GFS Neohellenic Regular", + "postscriptName": "GFSNeohellenic-Regular", + "category": "sans-serif", + "capHeight": 623, + "ascent": 873, + "descent": -245, + "lineGap": 24, + "unitsPerEm": 1000, + "xHeight": 387, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "GFS Neohellenic", + "fullName": "GFS Neohellenic Italic", + "postscriptName": "GFSNeohellenic-Italic", + "category": "sans-serif", + "capHeight": 623, + "ascent": 877, + "descent": -242, + "lineGap": 24, + "unitsPerEm": 1000, + "xHeight": 388, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "GFS Neohellenic", + "fullName": "GFS Neohellenic Bold Italic", + "postscriptName": "GFSNeohellenic-BoldItalic", + "category": "sans-serif", + "capHeight": 625, + "ascent": 872, + "descent": -264, + "lineGap": 23, + "unitsPerEm": 1000, + "xHeight": 388, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "gaMaamli": { + "familyName": "Ga Maamli", + "fullName": "Ga Maamli Regular", + "postscriptName": "GaMaamli-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 812 + } + }, + "variants": { + "regular": { + "familyName": "Ga Maamli", + "fullName": "Ga Maamli Regular", + "postscriptName": "GaMaamli-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 812 + } + } + } + } + }, + "gabarito": { + "familyName": "Gabarito", + "fullName": "Gabarito Regular", + "postscriptName": "Gabarito-Regular", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 834 + } + }, + "variants": { + "500": { + "familyName": "Gabarito", + "fullName": "Gabarito Medium", + "postscriptName": "Gabarito-Medium", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 834 + } + } + }, + "600": { + "familyName": "Gabarito", + "fullName": "Gabarito SemiBold", + "postscriptName": "Gabarito-SemiBold", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 834 + } + } + }, + "700": { + "familyName": "Gabarito", + "fullName": "Gabarito Bold", + "postscriptName": "Gabarito-Bold", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 834 + } + } + }, + "800": { + "familyName": "Gabarito", + "fullName": "Gabarito ExtraBold", + "postscriptName": "Gabarito-ExtraBold", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 834 + } + } + }, + "900": { + "familyName": "Gabarito", + "fullName": "Gabarito Black", + "postscriptName": "Gabarito-Black", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 834 + } + } + }, + "regular": { + "familyName": "Gabarito", + "fullName": "Gabarito Regular", + "postscriptName": "Gabarito-Regular", + "category": "display", + "capHeight": 681, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 834 + } + } + } + } + }, + "gabriela": { + "familyName": "Gabriela", + "fullName": "Gabriela Regular", + "postscriptName": "Gabriela-Regular", + "category": "serif", + "capHeight": 718, + "ascent": 986, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "regular": { + "familyName": "Gabriela", + "fullName": "Gabriela Regular", + "postscriptName": "Gabriela-Regular", + "category": "serif", + "capHeight": 718, + "ascent": 986, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "gaegu": { + "familyName": "Gaegu", + "fullName": "Gaegu Regular", + "postscriptName": "Gaegu-Regular", + "category": "handwriting", + "capHeight": 525, + "ascent": 760, + "descent": -240, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 340, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "300": { + "familyName": "Gaegu", + "fullName": "Gaegu Light", + "postscriptName": "Gaegu-Light", + "category": "handwriting", + "capHeight": 525, + "ascent": 760, + "descent": -240, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "700": { + "familyName": "Gaegu", + "fullName": "Gaegu Bold", + "postscriptName": "Gaegu-Bold", + "category": "handwriting", + "capHeight": 525, + "ascent": 760, + "descent": -240, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 340, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 720 + } + } + }, + "regular": { + "familyName": "Gaegu", + "fullName": "Gaegu Regular", + "postscriptName": "Gaegu-Regular", + "category": "handwriting", + "capHeight": 525, + "ascent": 760, + "descent": -240, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 340, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "gafata": { + "familyName": "Gafata", + "fullName": "Gafata", + "postscriptName": "Gafata-Regular", + "category": "sans-serif", + "capHeight": 648, + "ascent": 921, + "descent": -202, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Gafata", + "fullName": "Gafata", + "postscriptName": "Gafata-Regular", + "category": "sans-serif", + "capHeight": 648, + "ascent": 921, + "descent": -202, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "gajrajOne": { + "familyName": "Gajraj One", + "fullName": "Gajraj One Regular", + "postscriptName": "GajrajOne-Regular", + "category": "display", + "capHeight": 665, + "ascent": 1065, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 565, + "subsets": { + "latin": { + "xWidthAvg": 565 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Gajraj One", + "fullName": "Gajraj One Regular", + "postscriptName": "GajrajOne-Regular", + "category": "display", + "capHeight": 665, + "ascent": 1065, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 565, + "subsets": { + "latin": { + "xWidthAvg": 565 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "galada": { + "familyName": "Galada", + "fullName": "Galada Regular", + "postscriptName": "Galada-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1035, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 385 + } + }, + "variants": { + "regular": { + "familyName": "Galada", + "fullName": "Galada Regular", + "postscriptName": "Galada-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1035, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 385 + } + } + } + } + }, + "galdeano": { + "familyName": "Galdeano", + "fullName": "Galdeano Regular", + "postscriptName": "Galdeano-Regular", + "category": "sans-serif", + "capHeight": 605, + "ascent": 820, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 166, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Galdeano", + "fullName": "Galdeano Regular", + "postscriptName": "Galdeano-Regular", + "category": "sans-serif", + "capHeight": 605, + "ascent": 820, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 166, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "galindo": { + "familyName": "Galindo", + "fullName": "Galindo", + "postscriptName": "Galindo-Regular", + "category": "display", + "capHeight": 1505, + "ascent": 2014, + "descent": -883, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1085, + "subsets": { + "latin": { + "xWidthAvg": 1085 + }, + "thai": { + "xWidthAvg": 614 + } + }, + "variants": { + "regular": { + "familyName": "Galindo", + "fullName": "Galindo", + "postscriptName": "Galindo-Regular", + "category": "display", + "capHeight": 1505, + "ascent": 2014, + "descent": -883, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1085, + "subsets": { + "latin": { + "xWidthAvg": 1085 + }, + "thai": { + "xWidthAvg": 614 + } + } + } + } + }, + "gamjaFlower": { + "familyName": "Gamja Flower", + "fullName": "Gamja Flower Regular", + "postscriptName": "GamjaFlower-Regular", + "category": "handwriting", + "capHeight": 526, + "ascent": 800, + "descent": -224, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 311, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Gamja Flower", + "fullName": "Gamja Flower Regular", + "postscriptName": "GamjaFlower-Regular", + "category": "handwriting", + "capHeight": 526, + "ascent": 800, + "descent": -224, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 311, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "gantari": { + "familyName": "Gantari", + "fullName": "Gantari Regular", + "postscriptName": "Gantari-Regular", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 496 + } + }, + "variants": { + "100": { + "familyName": "Gantari", + "fullName": "Gantari Thin", + "postscriptName": "Gantari-Thin", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "200": { + "familyName": "Gantari", + "fullName": "Gantari ExtraLight", + "postscriptName": "Gantari-ExtraLight", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "300": { + "familyName": "Gantari", + "fullName": "Gantari Light", + "postscriptName": "Gantari-Light", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "500": { + "familyName": "Gantari", + "fullName": "Gantari Medium", + "postscriptName": "Gantari-Medium", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "600": { + "familyName": "Gantari", + "fullName": "Gantari SemiBold", + "postscriptName": "Gantari-SemiBold", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "700": { + "familyName": "Gantari", + "fullName": "Gantari Bold", + "postscriptName": "Gantari-Bold", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "800": { + "familyName": "Gantari", + "fullName": "Gantari ExtraBold", + "postscriptName": "Gantari-ExtraBold", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "900": { + "familyName": "Gantari", + "fullName": "Gantari Black", + "postscriptName": "Gantari-Black", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "regular": { + "familyName": "Gantari", + "fullName": "Gantari Regular", + "postscriptName": "Gantari-Regular", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "italic": { + "familyName": "Gantari", + "fullName": "Gantari Italic", + "postscriptName": "Gantari-Italic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "900italic": { + "familyName": "Gantari", + "fullName": "Gantari Black Italic", + "postscriptName": "Gantari-BlackItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "800italic": { + "familyName": "Gantari", + "fullName": "Gantari ExtraBold Italic", + "postscriptName": "Gantari-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "700italic": { + "familyName": "Gantari", + "fullName": "Gantari Bold Italic", + "postscriptName": "Gantari-BoldItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "600italic": { + "familyName": "Gantari", + "fullName": "Gantari SemiBold Italic", + "postscriptName": "Gantari-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "500italic": { + "familyName": "Gantari", + "fullName": "Gantari Medium Italic", + "postscriptName": "Gantari-MediumItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "300italic": { + "familyName": "Gantari", + "fullName": "Gantari Light Italic", + "postscriptName": "Gantari-LightItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "200italic": { + "familyName": "Gantari", + "fullName": "Gantari ExtraLight Italic", + "postscriptName": "Gantari-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "100italic": { + "familyName": "Gantari", + "fullName": "Gantari Thin Italic", + "postscriptName": "Gantari-ThinItalic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 496 + } + } + } + } + }, + "gasoekOne": { + "familyName": "Gasoek One", + "fullName": "Gasoek One Regular", + "postscriptName": "GasoekOne-Regular", + "category": "sans-serif", + "capHeight": 770, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Gasoek One", + "fullName": "Gasoek One Regular", + "postscriptName": "GasoekOne-Regular", + "category": "sans-serif", + "capHeight": 770, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 620, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "gayathri": { + "familyName": "Gayathri", + "fullName": "Gayathri Regular", + "postscriptName": "Gayathri-Regular", + "category": "sans-serif", + "capHeight": 1385, + "ascent": 1500, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 692 + } + }, + "variants": { + "100": { + "familyName": "Gayathri", + "fullName": "Gayathri Thin", + "postscriptName": "Gayathri-Thin", + "category": "sans-serif", + "capHeight": 1385, + "ascent": 1500, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 867, + "subsets": { + "latin": { + "xWidthAvg": 867 + }, + "thai": { + "xWidthAvg": 692 + } + } + }, + "700": { + "familyName": "Gayathri", + "fullName": "Gayathri Bold", + "postscriptName": "Gayathri-Bold", + "category": "sans-serif", + "capHeight": 1385, + "ascent": 1500, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 692 + } + } + }, + "regular": { + "familyName": "Gayathri", + "fullName": "Gayathri Regular", + "postscriptName": "Gayathri-Regular", + "category": "sans-serif", + "capHeight": 1385, + "ascent": 1500, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 692 + } + } + } + } + }, + "geist": { + "familyName": "Geist", + "fullName": "Geist Regular", + "postscriptName": "Geist-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Geist", + "fullName": "Geist Thin", + "postscriptName": "Geist-Thin", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "200": { + "familyName": "Geist", + "fullName": "Geist ExtraLight", + "postscriptName": "Geist-ExtraLight", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "300": { + "familyName": "Geist", + "fullName": "Geist Light", + "postscriptName": "Geist-Light", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 602 + } + } + }, + "500": { + "familyName": "Geist", + "fullName": "Geist Medium", + "postscriptName": "Geist-Medium", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Geist", + "fullName": "Geist SemiBold", + "postscriptName": "Geist-SemiBold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Geist", + "fullName": "Geist Bold", + "postscriptName": "Geist-Bold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Geist", + "fullName": "Geist ExtraBold", + "postscriptName": "Geist-ExtraBold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Geist", + "fullName": "Geist Black", + "postscriptName": "Geist-Black", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Geist", + "fullName": "Geist Regular", + "postscriptName": "Geist-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "geistMono": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Regular", + "postscriptName": "GeistMono-Regular", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Thin", + "postscriptName": "GeistMono-Thin", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Geist Mono", + "fullName": "Geist Mono ExtraLight", + "postscriptName": "GeistMono-ExtraLight", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Light", + "postscriptName": "GeistMono-Light", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Medium", + "postscriptName": "GeistMono-Medium", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Geist Mono", + "fullName": "Geist Mono SemiBold", + "postscriptName": "GeistMono-SemiBold", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Bold", + "postscriptName": "GeistMono-Bold", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Geist Mono", + "fullName": "Geist Mono ExtraBold", + "postscriptName": "GeistMono-ExtraBold", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Black", + "postscriptName": "GeistMono-Black", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Geist Mono", + "fullName": "Geist Mono Regular", + "postscriptName": "GeistMono-Regular", + "category": "monospace", + "capHeight": 710, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "gelasio": { + "familyName": "Gelasio", + "fullName": "Gelasio Regular", + "postscriptName": "Gelasio-Regular", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "500": { + "familyName": "Gelasio", + "fullName": "Gelasio Medium", + "postscriptName": "Gelasio-Medium", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 988, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "600": { + "familyName": "Gelasio", + "fullName": "Gelasio SemiBold", + "postscriptName": "Gelasio-SemiBold", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 992, + "xWidthAvg": 1017, + "subsets": { + "latin": { + "xWidthAvg": 1017 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "700": { + "familyName": "Gelasio", + "fullName": "Gelasio Bold", + "postscriptName": "Gelasio-Bold", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 994, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "Gelasio", + "fullName": "Gelasio Regular", + "postscriptName": "Gelasio-Regular", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "italic": { + "familyName": "Gelasio", + "fullName": "Gelasio Italic", + "postscriptName": "Gelasio-Italic", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "700italic": { + "familyName": "Gelasio", + "fullName": "Gelasio Bold Italic", + "postscriptName": "Gelasio-BoldItalic", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 994, + "xWidthAvg": 1082, + "subsets": { + "latin": { + "xWidthAvg": 1082 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "600italic": { + "familyName": "Gelasio", + "fullName": "Gelasio SemiBold Italic", + "postscriptName": "Gelasio-SemiBoldItalic", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 992, + "xWidthAvg": 1036, + "subsets": { + "latin": { + "xWidthAvg": 1036 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "500italic": { + "familyName": "Gelasio", + "fullName": "Gelasio Medium Italic", + "postscriptName": "Gelasio-MediumItalic", + "category": "serif", + "capHeight": 1419, + "ascent": 1900, + "descent": -700, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 988, + "xWidthAvg": 959, + "subsets": { + "latin": { + "xWidthAvg": 959 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "gemunuLibre": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre Regular", + "postscriptName": "GemunuLibre-Regular", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 631 + } + }, + "variants": { + "200": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre ExtraLight", + "postscriptName": "GemunuLibre-ExtraLight", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "300": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre Light", + "postscriptName": "GemunuLibre-Light", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "500": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre Medium", + "postscriptName": "GemunuLibre-Medium", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "600": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre SemiBold", + "postscriptName": "GemunuLibre-SemiBold", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "700": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre Bold", + "postscriptName": "GemunuLibre-Bold", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "800": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre ExtraBold", + "postscriptName": "GemunuLibre-ExtraBold", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "regular": { + "familyName": "Gemunu Libre", + "fullName": "Gemunu Libre Regular", + "postscriptName": "GemunuLibre-Regular", + "category": "sans-serif", + "capHeight": 0, + "ascent": 884, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 631 + } + } + } + } + }, + "genos": { + "familyName": "Genos", + "fullName": "Genos Regular", + "postscriptName": "Genos-Regular", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Genos", + "fullName": "Genos Thin", + "postscriptName": "Genos-Thin", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Genos", + "fullName": "Genos ExtraLight", + "postscriptName": "Genos-ExtraLight", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Genos", + "fullName": "Genos Light", + "postscriptName": "Genos-Light", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Genos", + "fullName": "Genos Medium", + "postscriptName": "Genos-Medium", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Genos", + "fullName": "Genos SemiBold", + "postscriptName": "Genos-SemiBold", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Genos", + "fullName": "Genos Bold", + "postscriptName": "Genos-Bold", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Genos", + "fullName": "Genos ExtraBold", + "postscriptName": "Genos-ExtraBold", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Genos", + "fullName": "Genos Black", + "postscriptName": "Genos-Black", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Genos", + "fullName": "Genos Regular", + "postscriptName": "Genos-Regular", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Genos", + "fullName": "Genos Italic", + "postscriptName": "Genos-Italic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 275 + } + } + }, + "900italic": { + "familyName": "Genos", + "fullName": "Genos Black Italic", + "postscriptName": "Genos-BlackItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 363 + } + } + }, + "800italic": { + "familyName": "Genos", + "fullName": "Genos ExtraBold Italic", + "postscriptName": "Genos-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 345 + } + } + }, + "700italic": { + "familyName": "Genos", + "fullName": "Genos Bold Italic", + "postscriptName": "Genos-BoldItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 326 + } + } + }, + "600italic": { + "familyName": "Genos", + "fullName": "Genos SemiBold Italic", + "postscriptName": "Genos-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 308 + } + } + }, + "500italic": { + "familyName": "Genos", + "fullName": "Genos Medium Italic", + "postscriptName": "Genos-MediumItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "300italic": { + "familyName": "Genos", + "fullName": "Genos Light Italic", + "postscriptName": "Genos-LightItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 261 + } + } + }, + "200italic": { + "familyName": "Genos", + "fullName": "Genos ExtraLight Italic", + "postscriptName": "Genos-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 250 + } + } + }, + "100italic": { + "familyName": "Genos", + "fullName": "Genos Thin Italic", + "postscriptName": "Genos-ThinItalic", + "category": "sans-serif", + "capHeight": 460, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 244 + } + } + } + } + }, + "gentiumBookPlus": { + "familyName": "Gentium Book Plus", + "fullName": "Gentium Book Plus", + "postscriptName": "GentiumBookPlus", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1400 + } + }, + "variants": { + "700": { + "familyName": "Gentium Book Plus", + "fullName": "Gentium Book Plus Bold", + "postscriptName": "GentiumBookPlus-Bold", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "regular": { + "familyName": "Gentium Book Plus", + "fullName": "Gentium Book Plus", + "postscriptName": "GentiumBookPlus", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "italic": { + "familyName": "Gentium Book Plus", + "fullName": "Gentium Book Plus Italic", + "postscriptName": "GentiumBookPlus-Italic", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 778, + "subsets": { + "latin": { + "xWidthAvg": 778 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "700italic": { + "familyName": "Gentium Book Plus", + "fullName": "Gentium Book Plus Bold Italic", + "postscriptName": "GentiumBookPlus-BoldItalic", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 1400 + } + } + } + } + }, + "gentiumPlus": { + "familyName": "Gentium Plus", + "fullName": "Gentium Plus", + "postscriptName": "GentiumPlus", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 846, + "subsets": { + "latin": { + "xWidthAvg": 846 + }, + "thai": { + "xWidthAvg": 1400 + } + }, + "variants": { + "700": { + "familyName": "Gentium Plus", + "fullName": "Gentium Plus Bold", + "postscriptName": "GentiumPlus-Bold", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "regular": { + "familyName": "Gentium Plus", + "fullName": "Gentium Plus", + "postscriptName": "GentiumPlus", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 846, + "subsets": { + "latin": { + "xWidthAvg": 846 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "italic": { + "familyName": "Gentium Plus", + "fullName": "Gentium Plus Italic", + "postscriptName": "GentiumPlus-Italic", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 759, + "subsets": { + "latin": { + "xWidthAvg": 759 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "700italic": { + "familyName": "Gentium Plus", + "fullName": "Gentium Plus Bold Italic", + "postscriptName": "GentiumPlus-BoldItalic", + "category": "serif", + "capHeight": 1260, + "ascent": 2250, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 817, + "subsets": { + "latin": { + "xWidthAvg": 817 + }, + "thai": { + "xWidthAvg": 1400 + } + } + } + } + }, + "geo": { + "familyName": "Geo", + "fullName": "Geo", + "postscriptName": "Geo-Regular", + "category": "sans-serif", + "capHeight": 573, + "ascent": 821, + "descent": -225, + "lineGap": 92, + "unitsPerEm": 1024, + "xHeight": 451, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Geo", + "fullName": "Geo", + "postscriptName": "Geo-Regular", + "category": "sans-serif", + "capHeight": 573, + "ascent": 821, + "descent": -225, + "lineGap": 92, + "unitsPerEm": 1024, + "xHeight": 451, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "italic": { + "familyName": "Geo", + "fullName": "Geo Oblique", + "postscriptName": "Geo-Oblique", + "category": "sans-serif", + "capHeight": 573, + "ascent": 821, + "descent": -225, + "lineGap": 92, + "unitsPerEm": 1024, + "xHeight": 451, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "geologica": { + "familyName": "Geologica", + "fullName": "Geologica Roman Regular", + "postscriptName": "GeologicaRoman-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 990, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 1278 + } + }, + "variants": { + "100": { + "familyName": "Geologica", + "fullName": "Geologica Roman Thin", + "postscriptName": "GeologicaRoman-Thin", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 960, + "xWidthAvg": 922, + "subsets": { + "latin": { + "xWidthAvg": 922 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "200": { + "familyName": "Geologica", + "fullName": "Geologica Roman ExtraLight", + "postscriptName": "GeologicaRoman-ExtraLight", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 970, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 1247 + } + } + }, + "300": { + "familyName": "Geologica", + "fullName": "Geologica Roman Light", + "postscriptName": "GeologicaRoman-Light", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 950, + "subsets": { + "latin": { + "xWidthAvg": 950 + }, + "thai": { + "xWidthAvg": 1263 + } + } + }, + "500": { + "familyName": "Geologica", + "fullName": "Geologica Roman Medium", + "postscriptName": "GeologicaRoman-Medium", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1293 + } + } + }, + "600": { + "familyName": "Geologica", + "fullName": "Geologica Roman SemiBold", + "postscriptName": "GeologicaRoman-SemiBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1010, + "xWidthAvg": 992, + "subsets": { + "latin": { + "xWidthAvg": 992 + }, + "thai": { + "xWidthAvg": 1308 + } + } + }, + "700": { + "familyName": "Geologica", + "fullName": "Geologica Roman Bold", + "postscriptName": "GeologicaRoman-Bold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1020, + "xWidthAvg": 1006, + "subsets": { + "latin": { + "xWidthAvg": 1006 + }, + "thai": { + "xWidthAvg": 1324 + } + } + }, + "800": { + "familyName": "Geologica", + "fullName": "Geologica Roman ExtraBold", + "postscriptName": "GeologicaRoman-ExtraBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1030, + "xWidthAvg": 1020, + "subsets": { + "latin": { + "xWidthAvg": 1020 + }, + "thai": { + "xWidthAvg": 1339 + } + } + }, + "900": { + "familyName": "Geologica", + "fullName": "Geologica Roman Black", + "postscriptName": "GeologicaRoman-Black", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1040, + "xWidthAvg": 1034, + "subsets": { + "latin": { + "xWidthAvg": 1034 + }, + "thai": { + "xWidthAvg": 1354 + } + } + }, + "regular": { + "familyName": "Geologica", + "fullName": "Geologica Roman Regular", + "postscriptName": "GeologicaRoman-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1950, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 990, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 1278 + } + } + } + } + }, + "georama": { + "familyName": "Georama", + "fullName": "Georama Regular", + "postscriptName": "Georama-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Georama", + "fullName": "Georama Thin", + "postscriptName": "Georama-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Georama", + "fullName": "Georama ExtraLight", + "postscriptName": "Georama-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Georama", + "fullName": "Georama Light", + "postscriptName": "Georama-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Georama", + "fullName": "Georama Medium", + "postscriptName": "Georama-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Georama", + "fullName": "Georama SemiBold", + "postscriptName": "Georama-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Georama", + "fullName": "Georama Bold", + "postscriptName": "Georama-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Georama", + "fullName": "Georama ExtraBold", + "postscriptName": "Georama-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Georama", + "fullName": "Georama Black", + "postscriptName": "Georama-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Georama", + "fullName": "Georama Regular", + "postscriptName": "Georama-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Georama", + "fullName": "Georama Italic", + "postscriptName": "Georama-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "900italic": { + "familyName": "Georama", + "fullName": "Georama Black Italic", + "postscriptName": "Georama-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "800italic": { + "familyName": "Georama", + "fullName": "Georama ExtraBold Italic", + "postscriptName": "Georama-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "700italic": { + "familyName": "Georama", + "fullName": "Georama Bold Italic", + "postscriptName": "Georama-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "600italic": { + "familyName": "Georama", + "fullName": "Georama SemiBold Italic", + "postscriptName": "Georama-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "500italic": { + "familyName": "Georama", + "fullName": "Georama Medium Italic", + "postscriptName": "Georama-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "300italic": { + "familyName": "Georama", + "fullName": "Georama Light Italic", + "postscriptName": "Georama-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "200italic": { + "familyName": "Georama", + "fullName": "Georama ExtraLight Italic", + "postscriptName": "Georama-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "100italic": { + "familyName": "Georama", + "fullName": "Georama Thin Italic", + "postscriptName": "Georama-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 611 + } + } + } + } + }, + "georgia": { + "familyName": "Georgia", + "fullName": "Georgia", + "postscriptName": "Georgia", + "category": "serif", + "capHeight": 1419, + "ascent": 1878, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "Georgia", + "fullName": "Georgia Bold", + "postscriptName": "Georgia-Bold", + "category": "serif", + "capHeight": 1419, + "ascent": 1878, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 992, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "Georgia", + "fullName": "Georgia", + "postscriptName": "Georgia", + "category": "serif", + "capHeight": 1419, + "ascent": 1878, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "italic": { + "familyName": "Georgia", + "fullName": "Georgia Italic", + "postscriptName": "Georgia-Italic", + "category": "serif", + "capHeight": 1419, + "ascent": 1878, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1009, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "700italic": { + "familyName": "Georgia", + "fullName": "Georgia Bold Italic", + "postscriptName": "Georgia-BoldItalic", + "category": "serif", + "capHeight": 1419, + "ascent": 1878, + "descent": -449, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1015, + "xWidthAvg": 1082, + "subsets": { + "latin": { + "xWidthAvg": 1082 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "geostar": { + "familyName": "Geostar", + "fullName": "Geostar", + "postscriptName": "Geostar-Regular", + "category": "display", + "capHeight": 695, + "ascent": 922, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 469, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Geostar", + "fullName": "Geostar", + "postscriptName": "Geostar-Regular", + "category": "display", + "capHeight": 695, + "ascent": 922, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 469, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "geostarFill": { + "familyName": "Geostar Fill", + "fullName": "Geostar Fill", + "postscriptName": "GeostarFill-Regular", + "category": "display", + "capHeight": 695, + "ascent": 922, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 469, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Geostar Fill", + "fullName": "Geostar Fill", + "postscriptName": "GeostarFill-Regular", + "category": "display", + "capHeight": 695, + "ascent": 922, + "descent": -226, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 469, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "germaniaOne": { + "familyName": "Germania One", + "fullName": "Germania One", + "postscriptName": "GermaniaOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 911, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Germania One", + "fullName": "Germania One", + "postscriptName": "GermaniaOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 911, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "gideonRoman": { + "familyName": "Gideon Roman", + "fullName": "Gideon Roman Regular", + "postscriptName": "GideonRoman-Regular", + "category": "display", + "capHeight": 660, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 568 + } + }, + "variants": { + "regular": { + "familyName": "Gideon Roman", + "fullName": "Gideon Roman Regular", + "postscriptName": "GideonRoman-Regular", + "category": "display", + "capHeight": 660, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 568 + } + } + } + } + }, + "gidugu": { + "familyName": "Gidugu", + "fullName": "Gidugu", + "postscriptName": "Gidugu", + "category": "sans-serif", + "ascent": 1294, + "descent": -790, + "lineGap": 0, + "unitsPerEm": 1124, + "xWidthAvg": 323, + "subsets": { + "latin": { + "xWidthAvg": 323 + }, + "thai": { + "xWidthAvg": 387 + } + }, + "variants": { + "regular": { + "familyName": "Gidugu", + "fullName": "Gidugu", + "postscriptName": "Gidugu", + "category": "sans-serif", + "ascent": 1294, + "descent": -790, + "lineGap": 0, + "unitsPerEm": 1124, + "xWidthAvg": 323, + "subsets": { + "latin": { + "xWidthAvg": 323 + }, + "thai": { + "xWidthAvg": 387 + } + } + } + } + }, + "gildaDisplay": { + "familyName": "Gilda Display", + "fullName": "Gilda Display Regular", + "postscriptName": "GildaDisplay-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 892, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Gilda Display", + "fullName": "Gilda Display Regular", + "postscriptName": "GildaDisplay-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 892, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "girassol": { + "familyName": "Girassol", + "fullName": "Girassol Regular", + "postscriptName": "Girassol-Regular", + "category": "display", + "capHeight": 750, + "ascent": 944, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 572 + } + }, + "variants": { + "regular": { + "familyName": "Girassol", + "fullName": "Girassol Regular", + "postscriptName": "Girassol-Regular", + "category": "display", + "capHeight": 750, + "ascent": 944, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 572 + } + } + } + } + }, + "giveYouGlory": { + "familyName": "Give You Glory", + "fullName": "Give You Glory", + "postscriptName": "GiveYouGlory", + "category": "handwriting", + "capHeight": 747, + "ascent": 1020, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 551, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Give You Glory", + "fullName": "Give You Glory", + "postscriptName": "GiveYouGlory", + "category": "handwriting", + "capHeight": 747, + "ascent": 1020, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 551, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "glassAntiqua": { + "familyName": "Glass Antiqua", + "fullName": "Glass Antiqua", + "postscriptName": "GlassAntiqua-Regular", + "category": "display", + "capHeight": 638, + "ascent": 835, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Glass Antiqua", + "fullName": "Glass Antiqua", + "postscriptName": "GlassAntiqua-Regular", + "category": "display", + "capHeight": 638, + "ascent": 835, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "glegoo": { + "familyName": "Glegoo", + "fullName": "Glegoo", + "postscriptName": "Glegoo-Regular", + "category": "serif", + "ascent": 1267, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 1040 + } + }, + "variants": { + "700": { + "familyName": "Glegoo", + "fullName": "Glegoo Bold", + "postscriptName": "Glegoo-Bold", + "category": "serif", + "ascent": 1267, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 1040 + } + } + }, + "regular": { + "familyName": "Glegoo", + "fullName": "Glegoo", + "postscriptName": "Glegoo-Regular", + "category": "serif", + "ascent": 1267, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 1040 + } + } + } + } + }, + "gloock": { + "familyName": "Gloock", + "fullName": "Gloock Regular", + "postscriptName": "Gloock-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 975, + "descent": -225, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 565 + } + }, + "variants": { + "regular": { + "familyName": "Gloock", + "fullName": "Gloock Regular", + "postscriptName": "Gloock-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 975, + "descent": -225, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 565 + } + } + } + } + }, + "gloriaHallelujah": { + "familyName": "Gloria Hallelujah", + "fullName": "Gloria Hallelujah", + "postscriptName": "GloriaHallelujah", + "category": "handwriting", + "capHeight": 904, + "ascent": 1439, + "descent": -591, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 580, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 461 + } + }, + "variants": { + "regular": { + "familyName": "Gloria Hallelujah", + "fullName": "Gloria Hallelujah", + "postscriptName": "GloriaHallelujah", + "category": "handwriting", + "capHeight": 904, + "ascent": 1439, + "descent": -591, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 580, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 461 + } + } + } + } + }, + "glory": { + "familyName": "Glory", + "fullName": "Glory Regular", + "postscriptName": "Glory-Regular", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Glory", + "fullName": "Glory Thin", + "postscriptName": "Glory-Thin", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Glory", + "fullName": "Glory ExtraLight", + "postscriptName": "Glory-ExtraLight", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Glory", + "fullName": "Glory Light", + "postscriptName": "Glory-Light", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Glory", + "fullName": "Glory Medium", + "postscriptName": "Glory-Medium", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Glory", + "fullName": "Glory SemiBold", + "postscriptName": "Glory-SemiBold", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Glory", + "fullName": "Glory Bold", + "postscriptName": "Glory-Bold", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Glory", + "fullName": "Glory ExtraBold", + "postscriptName": "Glory-ExtraBold", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Glory", + "fullName": "Glory Regular", + "postscriptName": "Glory-Regular", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Glory", + "fullName": "Glory Italic", + "postscriptName": "Glory-Italic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "800italic": { + "familyName": "Glory", + "fullName": "Glory ExtraBold Italic", + "postscriptName": "Glory-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "700italic": { + "familyName": "Glory", + "fullName": "Glory Bold Italic", + "postscriptName": "Glory-BoldItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "600italic": { + "familyName": "Glory", + "fullName": "Glory SemiBold Italic", + "postscriptName": "Glory-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "500italic": { + "familyName": "Glory", + "fullName": "Glory Medium Italic", + "postscriptName": "Glory-MediumItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "300italic": { + "familyName": "Glory", + "fullName": "Glory Light Italic", + "postscriptName": "Glory-LightItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "200italic": { + "familyName": "Glory", + "fullName": "Glory ExtraLight Italic", + "postscriptName": "Glory-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "100italic": { + "familyName": "Glory", + "fullName": "Glory Thin Italic", + "postscriptName": "Glory-ThinItalic", + "category": "sans-serif", + "capHeight": 672, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 560 + } + } + } + } + }, + "gluten": { + "familyName": "Gluten", + "fullName": "Gluten Regular", + "postscriptName": "Gluten-Regular", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1017, + "subsets": { + "latin": { + "xWidthAvg": 1017 + }, + "thai": { + "xWidthAvg": 610 + } + }, + "variants": { + "100": { + "familyName": "Gluten", + "fullName": "Gluten Thin", + "postscriptName": "Gluten-Thin", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 893, + "subsets": { + "latin": { + "xWidthAvg": 893 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "200": { + "familyName": "Gluten", + "fullName": "Gluten ExtraLight", + "postscriptName": "Gluten-ExtraLight", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "300": { + "familyName": "Gluten", + "fullName": "Gluten Light", + "postscriptName": "Gluten-Light", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 976, + "subsets": { + "latin": { + "xWidthAvg": 976 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "500": { + "familyName": "Gluten", + "fullName": "Gluten Medium", + "postscriptName": "Gluten-Medium", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1059, + "subsets": { + "latin": { + "xWidthAvg": 1059 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "600": { + "familyName": "Gluten", + "fullName": "Gluten SemiBold", + "postscriptName": "Gluten-SemiBold", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1100, + "subsets": { + "latin": { + "xWidthAvg": 1100 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "700": { + "familyName": "Gluten", + "fullName": "Gluten Bold", + "postscriptName": "Gluten-Bold", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1142, + "subsets": { + "latin": { + "xWidthAvg": 1142 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "800": { + "familyName": "Gluten", + "fullName": "Gluten ExtraBold", + "postscriptName": "Gluten-ExtraBold", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1183, + "subsets": { + "latin": { + "xWidthAvg": 1183 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "900": { + "familyName": "Gluten", + "fullName": "Gluten Black", + "postscriptName": "Gluten-Black", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1225, + "subsets": { + "latin": { + "xWidthAvg": 1225 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "regular": { + "familyName": "Gluten", + "fullName": "Gluten Regular", + "postscriptName": "Gluten-Regular", + "category": "display", + "capHeight": 1167, + "ascent": 1290, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 833, + "xWidthAvg": 1017, + "subsets": { + "latin": { + "xWidthAvg": 1017 + }, + "thai": { + "xWidthAvg": 610 + } + } + } + } + }, + "goblinOne": { + "familyName": "Goblin One", + "fullName": "Goblin One", + "postscriptName": "GoblinOne", + "category": "display", + "capHeight": 1434, + "ascent": 1920, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1107, + "xWidthAvg": 1524, + "subsets": { + "latin": { + "xWidthAvg": 1524 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Goblin One", + "fullName": "Goblin One", + "postscriptName": "GoblinOne", + "category": "display", + "capHeight": 1434, + "ascent": 1920, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1107, + "xWidthAvg": 1524, + "subsets": { + "latin": { + "xWidthAvg": 1524 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "gochiHand": { + "familyName": "Gochi Hand", + "fullName": "Gochi Hand", + "postscriptName": "GochiHand-Regular", + "category": "handwriting", + "capHeight": 975, + "ascent": 1579, + "descent": -835, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 765, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 485 + } + }, + "variants": { + "regular": { + "familyName": "Gochi Hand", + "fullName": "Gochi Hand", + "postscriptName": "GochiHand-Regular", + "category": "handwriting", + "capHeight": 975, + "ascent": 1579, + "descent": -835, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 765, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 485 + } + } + } + } + }, + "goldman": { + "familyName": "Goldman", + "fullName": "Goldman Regular", + "postscriptName": "Goldman-Regular", + "category": "display", + "capHeight": 588, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 576 + } + }, + "variants": { + "700": { + "familyName": "Goldman", + "fullName": "Goldman Bold", + "postscriptName": "Goldman-Bold", + "category": "display", + "capHeight": 588, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "regular": { + "familyName": "Goldman", + "fullName": "Goldman Regular", + "postscriptName": "Goldman-Regular", + "category": "display", + "capHeight": 588, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 576 + } + } + } + } + }, + "golosText": { + "familyName": "Golos Text", + "fullName": "Golos Text Regular", + "postscriptName": "GolosText-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Golos Text", + "fullName": "Golos Text Medium", + "postscriptName": "GolosText-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Golos Text", + "fullName": "Golos Text SemiBold", + "postscriptName": "GolosText-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Golos Text", + "fullName": "Golos Text Bold", + "postscriptName": "GolosText-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Golos Text", + "fullName": "Golos Text ExtraBold", + "postscriptName": "GolosText-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Golos Text", + "fullName": "Golos Text Black", + "postscriptName": "GolosText-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Golos Text", + "fullName": "Golos Text Regular", + "postscriptName": "GolosText-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "gorditas": { + "familyName": "Gorditas", + "fullName": "Gorditas", + "postscriptName": "Gorditas-Regular", + "category": "display", + "capHeight": 380, + "ascent": 954, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 274, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 203 + } + }, + "variants": { + "700": { + "familyName": "Gorditas", + "fullName": "Gorditas Bold", + "postscriptName": "Gorditas-Bold", + "category": "display", + "capHeight": 700, + "ascent": 954, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 195 + } + } + }, + "regular": { + "familyName": "Gorditas", + "fullName": "Gorditas", + "postscriptName": "Gorditas-Regular", + "category": "display", + "capHeight": 380, + "ascent": 954, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 274, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 203 + } + } + } + } + }, + "gothicA1": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Regular", + "postscriptName": "GothicA1-Regular", + "category": "sans-serif", + "capHeight": 749, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 538, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 374 + } + }, + "variants": { + "100": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Thin", + "postscriptName": "GothicA1-Thin", + "category": "sans-serif", + "capHeight": 707, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "200": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 ExtraLight", + "postscriptName": "GothicA1-ExtraLight", + "category": "sans-serif", + "capHeight": 721, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 513, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "300": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Light", + "postscriptName": "GothicA1-Light", + "category": "sans-serif", + "capHeight": 735, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 525, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "500": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Medium", + "postscriptName": "GothicA1-Medium", + "category": "sans-serif", + "capHeight": 763, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 551, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "600": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 SemiBold", + "postscriptName": "GothicA1-SemiBold", + "category": "sans-serif", + "capHeight": 777, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 564, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "700": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Bold", + "postscriptName": "GothicA1-Bold", + "category": "sans-serif", + "capHeight": 791, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 577, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "800": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 ExtraBold", + "postscriptName": "GothicA1-ExtraBold", + "category": "sans-serif", + "capHeight": 791, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 577, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "900": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Black", + "postscriptName": "GothicA1-Black", + "category": "sans-serif", + "capHeight": 819, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 602, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 374 + } + } + }, + "regular": { + "familyName": "Gothic A1", + "fullName": "Gothic A1 Regular", + "postscriptName": "GothicA1-Regular", + "category": "sans-serif", + "capHeight": 749, + "ascent": 817, + "descent": -207, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 538, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 374 + } + } + } + } + }, + "gotu": { + "familyName": "Gotu", + "fullName": "Gotu", + "postscriptName": "Gotu-Regular", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1115, + "descent": -545, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 813 + } + }, + "variants": { + "regular": { + "familyName": "Gotu", + "fullName": "Gotu", + "postscriptName": "Gotu-Regular", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1115, + "descent": -545, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 813 + } + } + } + } + }, + "goudyBookletter1911": { + "familyName": "Goudy Bookletter 1911", + "fullName": "Goudy Bookletter 1911", + "postscriptName": "GoudyBookletter1911", + "category": "serif", + "capHeight": 691, + "ascent": 983, + "descent": -318, + "lineGap": 92, + "unitsPerEm": 1024, + "xHeight": 458, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Goudy Bookletter 1911", + "fullName": "Goudy Bookletter 1911", + "postscriptName": "GoudyBookletter1911", + "category": "serif", + "capHeight": 691, + "ascent": 983, + "descent": -318, + "lineGap": 92, + "unitsPerEm": 1024, + "xHeight": 458, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "gowunBatang": { + "familyName": "Gowun Batang", + "fullName": "Gowun Batang Regular", + "postscriptName": "GowunBatang-Regular", + "category": "serif", + "capHeight": 775, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 900 + } + }, + "variants": { + "700": { + "familyName": "Gowun Batang", + "fullName": "Gowun Batang Bold", + "postscriptName": "GowunBatang-Bold", + "category": "serif", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 900 + } + } + }, + "regular": { + "familyName": "Gowun Batang", + "fullName": "Gowun Batang Regular", + "postscriptName": "GowunBatang-Regular", + "category": "serif", + "capHeight": 775, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 900 + } + } + } + } + }, + "gowunDodum": { + "familyName": "Gowun Dodum", + "fullName": "Gowun Dodum Regular", + "postscriptName": "GowunDodum-Regular", + "category": "sans-serif", + "capHeight": 775, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 900 + } + }, + "variants": { + "regular": { + "familyName": "Gowun Dodum", + "fullName": "Gowun Dodum Regular", + "postscriptName": "GowunDodum-Regular", + "category": "sans-serif", + "capHeight": 775, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 900 + } + } + } + } + }, + "graduate": { + "familyName": "Graduate", + "fullName": "Graduate", + "postscriptName": "Graduate-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 953, + "descent": -186, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 650, + "xWidthAvg": 594, + "subsets": { + "latin": { + "xWidthAvg": 594 + }, + "thai": { + "xWidthAvg": 350 + } + }, + "variants": { + "regular": { + "familyName": "Graduate", + "fullName": "Graduate", + "postscriptName": "Graduate-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 953, + "descent": -186, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 650, + "xWidthAvg": 594, + "subsets": { + "latin": { + "xWidthAvg": 594 + }, + "thai": { + "xWidthAvg": 350 + } + } + } + } + }, + "grandHotel": { + "familyName": "Grand Hotel", + "fullName": "Grand Hotel", + "postscriptName": "GrandHotel-Regular", + "category": "handwriting", + "capHeight": 1434, + "ascent": 1938, + "descent": -844, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 803, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Grand Hotel", + "fullName": "Grand Hotel", + "postscriptName": "GrandHotel-Regular", + "category": "handwriting", + "capHeight": 1434, + "ascent": 1938, + "descent": -844, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 803, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "grandifloraOne": { + "familyName": "Grandiflora One", + "fullName": "Grandiflora One Regular", + "postscriptName": "GrandifloraOne-Regular", + "category": "serif", + "capHeight": 687, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 407, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 960 + } + }, + "variants": { + "regular": { + "familyName": "Grandiflora One", + "fullName": "Grandiflora One Regular", + "postscriptName": "GrandifloraOne-Regular", + "category": "serif", + "capHeight": 687, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 407, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 960 + } + } + } + } + }, + "grandstander": { + "familyName": "Grandstander", + "fullName": "Grandstander Regular", + "postscriptName": "Grandstander-Regular", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 662 + } + }, + "variants": { + "100": { + "familyName": "Grandstander", + "fullName": "Grandstander Thin", + "postscriptName": "Grandstander-Thin", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 993, + "subsets": { + "latin": { + "xWidthAvg": 993 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "200": { + "familyName": "Grandstander", + "fullName": "Grandstander ExtraLight", + "postscriptName": "Grandstander-ExtraLight", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "300": { + "familyName": "Grandstander", + "fullName": "Grandstander Light", + "postscriptName": "Grandstander-Light", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "500": { + "familyName": "Grandstander", + "fullName": "Grandstander Medium", + "postscriptName": "Grandstander-Medium", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "600": { + "familyName": "Grandstander", + "fullName": "Grandstander SemiBold", + "postscriptName": "Grandstander-SemiBold", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 996, + "subsets": { + "latin": { + "xWidthAvg": 996 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "700": { + "familyName": "Grandstander", + "fullName": "Grandstander Bold", + "postscriptName": "Grandstander-Bold", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 996, + "subsets": { + "latin": { + "xWidthAvg": 996 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "800": { + "familyName": "Grandstander", + "fullName": "Grandstander ExtraBold", + "postscriptName": "Grandstander-ExtraBold", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 997, + "subsets": { + "latin": { + "xWidthAvg": 997 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "900": { + "familyName": "Grandstander", + "fullName": "Grandstander Black", + "postscriptName": "Grandstander-Black", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 997, + "subsets": { + "latin": { + "xWidthAvg": 997 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "regular": { + "familyName": "Grandstander", + "fullName": "Grandstander Regular", + "postscriptName": "Grandstander-Regular", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "italic": { + "familyName": "Grandstander", + "fullName": "Grandstander Italic", + "postscriptName": "Grandstander-Italic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "900italic": { + "familyName": "Grandstander", + "fullName": "Grandstander Black Italic", + "postscriptName": "Grandstander-BlackItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 997, + "subsets": { + "latin": { + "xWidthAvg": 997 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "800italic": { + "familyName": "Grandstander", + "fullName": "Grandstander ExtraBold Italic", + "postscriptName": "Grandstander-ExtraBoldItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 997, + "subsets": { + "latin": { + "xWidthAvg": 997 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "700italic": { + "familyName": "Grandstander", + "fullName": "Grandstander Bold Italic", + "postscriptName": "Grandstander-BoldItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 996, + "subsets": { + "latin": { + "xWidthAvg": 996 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "600italic": { + "familyName": "Grandstander", + "fullName": "Grandstander SemiBold Italic", + "postscriptName": "Grandstander-SemiBoldItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 996, + "subsets": { + "latin": { + "xWidthAvg": 996 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "500italic": { + "familyName": "Grandstander", + "fullName": "Grandstander Medium Italic", + "postscriptName": "Grandstander-MediumItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "300italic": { + "familyName": "Grandstander", + "fullName": "Grandstander Light Italic", + "postscriptName": "Grandstander-LightItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "200italic": { + "familyName": "Grandstander", + "fullName": "Grandstander ExtraLight Italic", + "postscriptName": "Grandstander-ExtraLightItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 993, + "subsets": { + "latin": { + "xWidthAvg": 993 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "100italic": { + "familyName": "Grandstander", + "fullName": "Grandstander Thin Italic", + "postscriptName": "Grandstander-ThinItalic", + "category": "display", + "capHeight": 1291, + "ascent": 1465, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1063, + "xWidthAvg": 993, + "subsets": { + "latin": { + "xWidthAvg": 993 + }, + "thai": { + "xWidthAvg": 662 + } + } + } + } + }, + "grapeNuts": { + "familyName": "Grape Nuts", + "fullName": "Grape Nuts Regular", + "postscriptName": "GrapeNuts-Regular", + "category": "handwriting", + "capHeight": 590, + "ascent": 900, + "descent": -325, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 365, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 499 + } + }, + "variants": { + "regular": { + "familyName": "Grape Nuts", + "fullName": "Grape Nuts Regular", + "postscriptName": "GrapeNuts-Regular", + "category": "handwriting", + "capHeight": 590, + "ascent": 900, + "descent": -325, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 365, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 499 + } + } + } + } + }, + "gravitasOne": { + "familyName": "Gravitas One", + "fullName": "Gravitas One", + "postscriptName": "GravitasOne", + "category": "display", + "capHeight": 1417, + "ascent": 1937, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1113, + "xWidthAvg": 1480, + "subsets": { + "latin": { + "xWidthAvg": 1480 + }, + "thai": { + "xWidthAvg": 756 + } + }, + "variants": { + "regular": { + "familyName": "Gravitas One", + "fullName": "Gravitas One", + "postscriptName": "GravitasOne", + "category": "display", + "capHeight": 1417, + "ascent": 1937, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1113, + "xWidthAvg": 1480, + "subsets": { + "latin": { + "xWidthAvg": 1480 + }, + "thai": { + "xWidthAvg": 756 + } + } + } + } + }, + "greatVibes": { + "familyName": "Great Vibes", + "fullName": "Great Vibes Regular", + "postscriptName": "GreatVibes-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 851, + "descent": -401, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 328, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 526 + } + }, + "variants": { + "regular": { + "familyName": "Great Vibes", + "fullName": "Great Vibes Regular", + "postscriptName": "GreatVibes-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 851, + "descent": -401, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 328, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 526 + } + } + } + } + }, + "grechenFuemen": { + "familyName": "Grechen Fuemen", + "fullName": "Grechen Fuemen Regular", + "postscriptName": "GrechenFuemen-Regular", + "category": "handwriting", + "capHeight": 580, + "ascent": 900, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 317, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 349 + } + }, + "variants": { + "regular": { + "familyName": "Grechen Fuemen", + "fullName": "Grechen Fuemen Regular", + "postscriptName": "GrechenFuemen-Regular", + "category": "handwriting", + "capHeight": 580, + "ascent": 900, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 317, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 349 + } + } + } + } + }, + "grenze": { + "familyName": "Grenze", + "fullName": "Grenze Regular", + "postscriptName": "Grenze-Regular", + "category": "serif", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "100": { + "familyName": "Grenze", + "fullName": "Grenze Thin", + "postscriptName": "Grenze-Thin", + "category": "serif", + "capHeight": 591, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "200": { + "familyName": "Grenze", + "fullName": "Grenze ExtraLight", + "postscriptName": "Grenze-ExtraLight", + "category": "serif", + "capHeight": 594, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 442, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "300": { + "familyName": "Grenze", + "fullName": "Grenze Light", + "postscriptName": "Grenze-Light", + "category": "serif", + "capHeight": 599, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 445, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "500": { + "familyName": "Grenze", + "fullName": "Grenze Medium", + "postscriptName": "Grenze-Medium", + "category": "serif", + "capHeight": 604, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600": { + "familyName": "Grenze", + "fullName": "Grenze SemiBold", + "postscriptName": "Grenze-SemiBold", + "category": "serif", + "capHeight": 606, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 453, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700": { + "familyName": "Grenze", + "fullName": "Grenze Bold", + "postscriptName": "Grenze-Bold", + "category": "serif", + "capHeight": 608, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800": { + "familyName": "Grenze", + "fullName": "Grenze ExtraBold", + "postscriptName": "Grenze-ExtraBold", + "category": "serif", + "capHeight": 610, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Grenze", + "fullName": "Grenze Black", + "postscriptName": "Grenze-Black", + "category": "serif", + "capHeight": 612, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Grenze", + "fullName": "Grenze Regular", + "postscriptName": "Grenze-Regular", + "category": "serif", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "italic": { + "familyName": "Grenze", + "fullName": "Grenze Italic", + "postscriptName": "Grenze-Italic", + "category": "serif", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "900italic": { + "familyName": "Grenze", + "fullName": "Grenze Black Italic", + "postscriptName": "Grenze-BlackItalic", + "category": "serif", + "capHeight": 613, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800italic": { + "familyName": "Grenze", + "fullName": "Grenze ExtraBold Italic", + "postscriptName": "Grenze-ExtraBoldItalic", + "category": "serif", + "capHeight": 611, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700italic": { + "familyName": "Grenze", + "fullName": "Grenze Bold Italic", + "postscriptName": "Grenze-BoldItalic", + "category": "serif", + "capHeight": 609, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600italic": { + "familyName": "Grenze", + "fullName": "Grenze SemiBold Italic", + "postscriptName": "Grenze-SemiBoldItalic", + "category": "serif", + "capHeight": 607, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 453, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "500italic": { + "familyName": "Grenze", + "fullName": "Grenze Medium Italic", + "postscriptName": "Grenze-MediumItalic", + "category": "serif", + "capHeight": 605, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "300italic": { + "familyName": "Grenze", + "fullName": "Grenze Light Italic", + "postscriptName": "Grenze-LightItalic", + "category": "serif", + "capHeight": 599, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 445, + "xWidthAvg": 340, + "subsets": { + "latin": { + "xWidthAvg": 340 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "200italic": { + "familyName": "Grenze", + "fullName": "Grenze ExtraLight Italic", + "postscriptName": "Grenze-ExtraLightItalic", + "category": "serif", + "capHeight": 594, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 442, + "xWidthAvg": 336, + "subsets": { + "latin": { + "xWidthAvg": 336 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "100italic": { + "familyName": "Grenze", + "fullName": "Grenze Thin Italic", + "postscriptName": "Grenze-ThinItalic", + "category": "serif", + "capHeight": 591, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 332, + "subsets": { + "latin": { + "xWidthAvg": 332 + }, + "thai": { + "xWidthAvg": 528 + } + } + } + } + }, + "grenzeGotisch": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Regular", + "postscriptName": "GrenzeGotisch-Regular", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "100": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Thin", + "postscriptName": "GrenzeGotisch-Thin", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 335, + "subsets": { + "latin": { + "xWidthAvg": 335 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "200": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch ExtraLight", + "postscriptName": "GrenzeGotisch-ExtraLight", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "300": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Light", + "postscriptName": "GrenzeGotisch-Light", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "500": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Medium", + "postscriptName": "GrenzeGotisch-Medium", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch SemiBold", + "postscriptName": "GrenzeGotisch-SemiBold", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Bold", + "postscriptName": "GrenzeGotisch-Bold", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch ExtraBold", + "postscriptName": "GrenzeGotisch-ExtraBold", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Black", + "postscriptName": "GrenzeGotisch-Black", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Grenze Gotisch", + "fullName": "Grenze Gotisch Regular", + "postscriptName": "GrenzeGotisch-Regular", + "category": "display", + "capHeight": 603, + "ascent": 1100, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 527 + } + } + } + } + }, + "greyQo": { + "familyName": "Grey Qo", + "fullName": "Grey Qo Regular", + "postscriptName": "GreyQo-Regular", + "category": "handwriting", + "capHeight": 540, + "ascent": 900, + "descent": -360, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 265, + "xWidthAvg": 257, + "subsets": { + "latin": { + "xWidthAvg": 257 + }, + "thai": { + "xWidthAvg": 370 + } + }, + "variants": { + "regular": { + "familyName": "Grey Qo", + "fullName": "Grey Qo Regular", + "postscriptName": "GreyQo-Regular", + "category": "handwriting", + "capHeight": 540, + "ascent": 900, + "descent": -360, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 265, + "xWidthAvg": 257, + "subsets": { + "latin": { + "xWidthAvg": 257 + }, + "thai": { + "xWidthAvg": 370 + } + } + } + } + }, + "griffy": { + "familyName": "Griffy", + "fullName": "Griffy", + "postscriptName": "Griffy-Regular", + "category": "display", + "capHeight": 0, + "ascent": 984, + "descent": -399, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 0, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 358 + } + }, + "variants": { + "regular": { + "familyName": "Griffy", + "fullName": "Griffy", + "postscriptName": "Griffy-Regular", + "category": "display", + "capHeight": 0, + "ascent": 984, + "descent": -399, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 0, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 358 + } + } + } + } + }, + "gruppo": { + "familyName": "Gruppo", + "fullName": "Gruppo Regular", + "postscriptName": "Gruppo-Regular", + "category": "sans-serif", + "capHeight": 1114, + "ascent": 1639, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 766, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1311 + } + }, + "variants": { + "regular": { + "familyName": "Gruppo", + "fullName": "Gruppo Regular", + "postscriptName": "Gruppo-Regular", + "category": "sans-serif", + "capHeight": 1114, + "ascent": 1639, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 766, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1311 + } + } + } + } + }, + "gudea": { + "familyName": "Gudea", + "fullName": "Gudea", + "postscriptName": "Gudea", + "category": "sans-serif", + "capHeight": 700, + "ascent": 972, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 211 + } + }, + "variants": { + "700": { + "familyName": "Gudea", + "fullName": "Gudea Bold", + "postscriptName": "Gudea-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 972, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 211 + } + } + }, + "regular": { + "familyName": "Gudea", + "fullName": "Gudea", + "postscriptName": "Gudea", + "category": "sans-serif", + "capHeight": 700, + "ascent": 972, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 211 + } + } + }, + "italic": { + "familyName": "Gudea", + "fullName": "Gudea Italic", + "postscriptName": "Gudea-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 972, + "descent": -264, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 190 + } + } + } + } + }, + "gugi": { + "familyName": "Gugi", + "fullName": "Gugi Regular", + "postscriptName": "Gugi-Regular", + "category": "display", + "capHeight": 794, + "ascent": 858, + "descent": -142, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 602, + "xWidthAvg": 588, + "subsets": { + "latin": { + "xWidthAvg": 588 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Gugi", + "fullName": "Gugi Regular", + "postscriptName": "Gugi-Regular", + "category": "display", + "capHeight": 794, + "ascent": 858, + "descent": -142, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 602, + "xWidthAvg": 588, + "subsets": { + "latin": { + "xWidthAvg": 588 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "gulzar": { + "familyName": "Gulzar", + "fullName": "Gulzar Regular", + "postscriptName": "Gulzar-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 545 + } + }, + "variants": { + "regular": { + "familyName": "Gulzar", + "fullName": "Gulzar Regular", + "postscriptName": "Gulzar-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 545 + } + } + } + } + }, + "gupter": { + "familyName": "Gupter", + "fullName": "Gupter Regular", + "postscriptName": "Gupter-Regular", + "category": "serif", + "capHeight": 622, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 957 + } + }, + "variants": { + "500": { + "familyName": "Gupter", + "fullName": "Gupter Medium", + "postscriptName": "Gupter-Medium", + "category": "serif", + "capHeight": 622, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 957 + } + } + }, + "700": { + "familyName": "Gupter", + "fullName": "Gupter Bold", + "postscriptName": "Gupter-Bold", + "category": "serif", + "capHeight": 622, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 957 + } + } + }, + "regular": { + "familyName": "Gupter", + "fullName": "Gupter Regular", + "postscriptName": "Gupter-Regular", + "category": "serif", + "capHeight": 622, + "ascent": 900, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 957 + } + } + } + } + }, + "gurajada": { + "familyName": "Gurajada", + "fullName": "Gurajada", + "postscriptName": "Gurajada", + "category": "serif", + "capHeight": 482, + "ascent": 1294, + "descent": -810, + "lineGap": 0, + "unitsPerEm": 1070, + "xHeight": 358, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 888 + } + }, + "variants": { + "regular": { + "familyName": "Gurajada", + "fullName": "Gurajada", + "postscriptName": "Gurajada", + "category": "serif", + "capHeight": 482, + "ascent": 1294, + "descent": -810, + "lineGap": 0, + "unitsPerEm": 1070, + "xHeight": 358, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 888 + } + } + } + } + }, + "gwendolyn": { + "familyName": "Gwendolyn", + "fullName": "Gwendolyn Regular", + "postscriptName": "Gwendolyn-Regular", + "category": "handwriting", + "capHeight": 618, + "ascent": 880, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 290, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "700": { + "familyName": "Gwendolyn", + "fullName": "Gwendolyn Bold", + "postscriptName": "Gwendolyn-Bold", + "category": "handwriting", + "capHeight": 618, + "ascent": 880, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 290, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 484 + } + } + }, + "regular": { + "familyName": "Gwendolyn", + "fullName": "Gwendolyn Regular", + "postscriptName": "Gwendolyn-Regular", + "category": "handwriting", + "capHeight": 618, + "ascent": 880, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 290, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "habibi": { + "familyName": "Habibi", + "fullName": "Habibi", + "postscriptName": "Habibi-Regular", + "category": "serif", + "capHeight": 1508, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 989, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 659 + } + }, + "variants": { + "regular": { + "familyName": "Habibi", + "fullName": "Habibi", + "postscriptName": "Habibi-Regular", + "category": "serif", + "capHeight": 1508, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 989, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 659 + } + } + } + } + }, + "hachiMaruPop": { + "familyName": "Hachi Maru Pop", + "fullName": "Hachi Maru Pop Regular", + "postscriptName": "HachiMaruPop-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 660, + "subsets": { + "latin": { + "xWidthAvg": 660 + }, + "thai": { + "xWidthAvg": 659 + } + }, + "variants": { + "regular": { + "familyName": "Hachi Maru Pop", + "fullName": "Hachi Maru Pop Regular", + "postscriptName": "HachiMaruPop-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 660, + "subsets": { + "latin": { + "xWidthAvg": 660 + }, + "thai": { + "xWidthAvg": 659 + } + } + } + } + }, + "hahmlet": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Regular", + "postscriptName": "Hahmlet-Regular", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 843 + } + }, + "variants": { + "100": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Thin", + "postscriptName": "Hahmlet-Thin", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "200": { + "familyName": "Hahmlet", + "fullName": "Hahmlet ExtraLight", + "postscriptName": "Hahmlet-ExtraLight", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "300": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Light", + "postscriptName": "Hahmlet-Light", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "500": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Medium", + "postscriptName": "Hahmlet-Medium", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "600": { + "familyName": "Hahmlet", + "fullName": "Hahmlet SemiBold", + "postscriptName": "Hahmlet-SemiBold", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "700": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Bold", + "postscriptName": "Hahmlet-Bold", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "800": { + "familyName": "Hahmlet", + "fullName": "Hahmlet ExtraBold", + "postscriptName": "Hahmlet-ExtraBold", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "900": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Black", + "postscriptName": "Hahmlet-Black", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 843 + } + } + }, + "regular": { + "familyName": "Hahmlet", + "fullName": "Hahmlet Regular", + "postscriptName": "Hahmlet-Regular", + "category": "serif", + "capHeight": 742, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 843 + } + } + } + } + }, + "halant": { + "familyName": "Halant", + "fullName": "Halant Regular", + "postscriptName": "Halant-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1089, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 550 + } + }, + "variants": { + "300": { + "familyName": "Halant", + "fullName": "Halant Light", + "postscriptName": "Halant-Light", + "category": "serif", + "capHeight": 651, + "ascent": 1089, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "500": { + "familyName": "Halant", + "fullName": "Halant Medium", + "postscriptName": "Halant-Medium", + "category": "serif", + "capHeight": 675, + "ascent": 1089, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "600": { + "familyName": "Halant", + "fullName": "Halant SemiBold", + "postscriptName": "Halant-SemiBold", + "category": "serif", + "capHeight": 675, + "ascent": 1089, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "700": { + "familyName": "Halant", + "fullName": "Halant Bold", + "postscriptName": "Halant-Bold", + "category": "serif", + "capHeight": 695, + "ascent": 1089, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "regular": { + "familyName": "Halant", + "fullName": "Halant Regular", + "postscriptName": "Halant-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1089, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 550 + } + } + } + } + }, + "hammersmithOne": { + "familyName": "Hammersmith One", + "fullName": "Hammersmith One Regular", + "postscriptName": "HammersmithOne-Regular", + "category": "sans-serif", + "capHeight": 1330, + "ascent": 1844, + "descent": -716, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1045, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Hammersmith One", + "fullName": "Hammersmith One Regular", + "postscriptName": "HammersmithOne-Regular", + "category": "sans-serif", + "capHeight": 1330, + "ascent": 1844, + "descent": -716, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1045, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "hanalei": { + "familyName": "Hanalei", + "fullName": "Hanalei", + "postscriptName": "Hanalei-Regular", + "category": "display", + "capHeight": 0, + "ascent": 2124, + "descent": -541, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 410 + } + }, + "variants": { + "regular": { + "familyName": "Hanalei", + "fullName": "Hanalei", + "postscriptName": "Hanalei-Regular", + "category": "display", + "capHeight": 0, + "ascent": 2124, + "descent": -541, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 410 + } + } + } + } + }, + "hanaleiFill": { + "familyName": "Hanalei Fill", + "fullName": "Hanalei Fill", + "postscriptName": "HanaleiFill-Regular", + "category": "display", + "capHeight": 0, + "ascent": 2124, + "descent": -541, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 410 + } + }, + "variants": { + "regular": { + "familyName": "Hanalei Fill", + "fullName": "Hanalei Fill", + "postscriptName": "HanaleiFill-Regular", + "category": "display", + "capHeight": 0, + "ascent": 2124, + "descent": -541, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 410 + } + } + } + } + }, + "handjet": { + "familyName": "Handjet", + "fullName": "Handjet Regular", + "postscriptName": "Handjet-Regular", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + }, + "variants": { + "100": { + "familyName": "Handjet", + "fullName": "Handjet Thin", + "postscriptName": "Handjet-Thin", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "200": { + "familyName": "Handjet", + "fullName": "Handjet ExtraLight", + "postscriptName": "Handjet-ExtraLight", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "300": { + "familyName": "Handjet", + "fullName": "Handjet Light", + "postscriptName": "Handjet-Light", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "500": { + "familyName": "Handjet", + "fullName": "Handjet Medium", + "postscriptName": "Handjet-Medium", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "600": { + "familyName": "Handjet", + "fullName": "Handjet SemiBold", + "postscriptName": "Handjet-SemiBold", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "700": { + "familyName": "Handjet", + "fullName": "Handjet Bold", + "postscriptName": "Handjet-Bold", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "800": { + "familyName": "Handjet", + "fullName": "Handjet ExtraBold", + "postscriptName": "Handjet-ExtraBold", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "900": { + "familyName": "Handjet", + "fullName": "Handjet Black", + "postscriptName": "Handjet-Black", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + }, + "regular": { + "familyName": "Handjet", + "fullName": "Handjet Regular", + "postscriptName": "Handjet-Regular", + "category": "display", + "capHeight": 5280, + "ascent": 7200, + "descent": -1920, + "lineGap": 0, + "unitsPerEm": 8160, + "xHeight": 3840, + "xWidthAvg": 2704, + "subsets": { + "latin": { + "xWidthAvg": 2704 + }, + "thai": { + "xWidthAvg": 3360 + } + } + } + } + }, + "handlee": { + "familyName": "Handlee", + "fullName": "Handlee Regular", + "postscriptName": "Handlee-Regular", + "category": "handwriting", + "capHeight": 438, + "ascent": 934, + "descent": -401, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 331, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Handlee", + "fullName": "Handlee Regular", + "postscriptName": "Handlee-Regular", + "category": "handwriting", + "capHeight": 438, + "ascent": 934, + "descent": -401, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 331, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "hankenGrotesk": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Regular", + "postscriptName": "HankenGrotesk-Regular", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 509 + } + }, + "variants": { + "100": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Thin", + "postscriptName": "HankenGrotesk-Thin", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 513 + } + } + }, + "200": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk ExtraLight", + "postscriptName": "HankenGrotesk-ExtraLight", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "300": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Light", + "postscriptName": "HankenGrotesk-Light", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 510 + } + } + }, + "500": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Medium", + "postscriptName": "HankenGrotesk-Medium", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 508 + } + } + }, + "600": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk SemiBold", + "postscriptName": "HankenGrotesk-SemiBold", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 507 + } + } + }, + "700": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Bold", + "postscriptName": "HankenGrotesk-Bold", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 506 + } + } + }, + "800": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk ExtraBold", + "postscriptName": "HankenGrotesk-ExtraBold", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 505 + } + } + }, + "900": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Black", + "postscriptName": "HankenGrotesk-Black", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 504 + } + } + }, + "regular": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Regular", + "postscriptName": "HankenGrotesk-Regular", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Italic", + "postscriptName": "HankenGrotesk-Italic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "900italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Black Italic", + "postscriptName": "HankenGrotesk-BlackItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 504 + } + } + }, + "800italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk ExtraBold Italic", + "postscriptName": "HankenGrotesk-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 505 + } + } + }, + "700italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Bold Italic", + "postscriptName": "HankenGrotesk-BoldItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 506 + } + } + }, + "600italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk SemiBold Italic", + "postscriptName": "HankenGrotesk-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 507 + } + } + }, + "500italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Medium Italic", + "postscriptName": "HankenGrotesk-MediumItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 508 + } + } + }, + "300italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Light Italic", + "postscriptName": "HankenGrotesk-LightItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 510 + } + } + }, + "200italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk ExtraLight Italic", + "postscriptName": "HankenGrotesk-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "100italic": { + "familyName": "Hanken Grotesk", + "fullName": "Hanken Grotesk Thin Italic", + "postscriptName": "HankenGrotesk-ThinItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1000, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 513 + } + } + } + } + }, + "hanuman": { + "familyName": "Hanuman", + "fullName": "Hanuman Regular", + "postscriptName": "Hanuman-Regular", + "category": "serif", + "capHeight": 1462, + "ascent": 2000, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Hanuman", + "fullName": "Hanuman Thin", + "postscriptName": "Hanuman-Thin", + "category": "serif", + "capHeight": 1462, + "ascent": 2000, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Hanuman", + "fullName": "Hanuman Light", + "postscriptName": "Hanuman-Light", + "category": "serif", + "capHeight": 1462, + "ascent": 2000, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Hanuman", + "fullName": "Hanuman Bold", + "postscriptName": "Hanuman-Bold", + "category": "serif", + "capHeight": 1462, + "ascent": 2000, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1014, + "subsets": { + "latin": { + "xWidthAvg": 1014 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Hanuman", + "fullName": "Hanuman Black", + "postscriptName": "Hanuman-Black", + "category": "serif", + "capHeight": 1462, + "ascent": 2000, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Hanuman", + "fullName": "Hanuman Regular", + "postscriptName": "Hanuman-Regular", + "category": "serif", + "capHeight": 1462, + "ascent": 2000, + "descent": -1000, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "happyMonkey": { + "familyName": "Happy Monkey", + "fullName": "Happy Monkey", + "postscriptName": "HappyMonkey-Regular", + "category": "display", + "capHeight": 699, + "ascent": 950, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 241 + } + }, + "variants": { + "regular": { + "familyName": "Happy Monkey", + "fullName": "Happy Monkey", + "postscriptName": "HappyMonkey-Regular", + "category": "display", + "capHeight": 699, + "ascent": 950, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 241 + } + } + } + } + }, + "harmattan": { + "familyName": "Harmattan", + "fullName": "Harmattan", + "postscriptName": "Harmattan-Regular", + "category": "sans-serif", + "capHeight": 1111, + "ascent": 2166, + "descent": -1323, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 778, + "xWidthAvg": 722, + "subsets": { + "latin": { + "xWidthAvg": 722 + }, + "thai": { + "xWidthAvg": 1690 + } + }, + "variants": { + "500": { + "familyName": "Harmattan", + "fullName": "Harmattan Medium", + "postscriptName": "Harmattan-Medium", + "category": "sans-serif", + "capHeight": 1111, + "ascent": 2166, + "descent": -1323, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 778, + "xWidthAvg": 734, + "subsets": { + "latin": { + "xWidthAvg": 734 + }, + "thai": { + "xWidthAvg": 1690 + } + } + }, + "600": { + "familyName": "Harmattan", + "fullName": "Harmattan SemiBold", + "postscriptName": "Harmattan-SemiBold", + "category": "sans-serif", + "capHeight": 1111, + "ascent": 2166, + "descent": -1323, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 778, + "xWidthAvg": 746, + "subsets": { + "latin": { + "xWidthAvg": 746 + }, + "thai": { + "xWidthAvg": 1690 + } + } + }, + "700": { + "familyName": "Harmattan", + "fullName": "Harmattan Bold", + "postscriptName": "Harmattan-Bold", + "category": "sans-serif", + "capHeight": 1111, + "ascent": 2166, + "descent": -1323, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 778, + "xWidthAvg": 758, + "subsets": { + "latin": { + "xWidthAvg": 758 + }, + "thai": { + "xWidthAvg": 1690 + } + } + }, + "regular": { + "familyName": "Harmattan", + "fullName": "Harmattan", + "postscriptName": "Harmattan-Regular", + "category": "sans-serif", + "capHeight": 1111, + "ascent": 2166, + "descent": -1323, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 778, + "xWidthAvg": 722, + "subsets": { + "latin": { + "xWidthAvg": 722 + }, + "thai": { + "xWidthAvg": 1690 + } + } + } + } + }, + "headlandOne": { + "familyName": "Headland One", + "fullName": "HeadlandOne-Regular", + "postscriptName": "HeadlandOne-Regular", + "category": "serif", + "capHeight": 1530, + "ascent": 2043, + "descent": -522, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1189, + "xWidthAvg": 1100, + "subsets": { + "latin": { + "xWidthAvg": 1100 + }, + "thai": { + "xWidthAvg": 2351 + } + }, + "variants": { + "regular": { + "familyName": "Headland One", + "fullName": "HeadlandOne-Regular", + "postscriptName": "HeadlandOne-Regular", + "category": "serif", + "capHeight": 1530, + "ascent": 2043, + "descent": -522, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1189, + "xWidthAvg": 1100, + "subsets": { + "latin": { + "xWidthAvg": 1100 + }, + "thai": { + "xWidthAvg": 2351 + } + } + } + } + }, + "hedvigLettersSans": { + "familyName": "Hedvig Letters Sans", + "fullName": "Hedvig Letters Sans Regular", + "postscriptName": "HedvigLettersSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 597 + } + }, + "variants": { + "regular": { + "familyName": "Hedvig Letters Sans", + "fullName": "Hedvig Letters Sans Regular", + "postscriptName": "HedvigLettersSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 597 + } + } + } + } + }, + "hedvigLettersSerif": { + "familyName": "Hedvig Letters Serif", + "fullName": "Hedvig Letters Serif 24pt Regular", + "postscriptName": "HedvigLettersSerif24pt-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 587 + } + }, + "variants": { + "regular": { + "familyName": "Hedvig Letters Serif", + "fullName": "Hedvig Letters Serif 24pt Regular", + "postscriptName": "HedvigLettersSerif24pt-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 587 + } + } + } + } + }, + "heebo": { + "familyName": "Heebo", + "fullName": "Heebo Regular", + "postscriptName": "Heebo-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 912, + "subsets": { + "latin": { + "xWidthAvg": 912 + }, + "thai": { + "xWidthAvg": 1300 + } + }, + "variants": { + "100": { + "familyName": "Heebo", + "fullName": "Heebo Thin", + "postscriptName": "Heebo-Thin", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 880, + "subsets": { + "latin": { + "xWidthAvg": 880 + }, + "thai": { + "xWidthAvg": 1215 + } + } + }, + "200": { + "familyName": "Heebo", + "fullName": "Heebo ExtraLight", + "postscriptName": "Heebo-ExtraLight", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 891, + "subsets": { + "latin": { + "xWidthAvg": 891 + }, + "thai": { + "xWidthAvg": 1243 + } + } + }, + "300": { + "familyName": "Heebo", + "fullName": "Heebo Light", + "postscriptName": "Heebo-Light", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 1269 + } + } + }, + "500": { + "familyName": "Heebo", + "fullName": "Heebo Medium", + "postscriptName": "Heebo-Medium", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 917, + "subsets": { + "latin": { + "xWidthAvg": 917 + }, + "thai": { + "xWidthAvg": 1346 + } + } + }, + "600": { + "familyName": "Heebo", + "fullName": "Heebo SemiBold", + "postscriptName": "Heebo-SemiBold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 922, + "subsets": { + "latin": { + "xWidthAvg": 922 + }, + "thai": { + "xWidthAvg": 1401 + } + } + }, + "700": { + "familyName": "Heebo", + "fullName": "Heebo Bold", + "postscriptName": "Heebo-Bold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 927, + "subsets": { + "latin": { + "xWidthAvg": 927 + }, + "thai": { + "xWidthAvg": 1452 + } + } + }, + "800": { + "familyName": "Heebo", + "fullName": "Heebo ExtraBold", + "postscriptName": "Heebo-ExtraBold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1502 + } + } + }, + "900": { + "familyName": "Heebo", + "fullName": "Heebo Black", + "postscriptName": "Heebo-Black", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 937, + "subsets": { + "latin": { + "xWidthAvg": 937 + }, + "thai": { + "xWidthAvg": 1553 + } + } + }, + "regular": { + "familyName": "Heebo", + "fullName": "Heebo Regular", + "postscriptName": "Heebo-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -862, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 912, + "subsets": { + "latin": { + "xWidthAvg": 912 + }, + "thai": { + "xWidthAvg": 1300 + } + } + } + } + }, + "helvetica": { + "familyName": "Helvetica", + "fullName": "Helvetica", + "postscriptName": "Helvetica", + "category": "sans-serif", + "capHeight": 1469, + "ascent": 1577, + "descent": -471, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1298 + } + }, + "variants": { + "300": { + "familyName": "Helvetica", + "fullName": "Helvetica Light", + "postscriptName": "Helvetica-Light", + "category": "sans-serif", + "capHeight": 718, + "ascent": 770, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Helvetica", + "fullName": "Helvetica Bold", + "postscriptName": "Helvetica-Bold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 1577, + "descent": -471, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1090, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1479 + } + } + }, + "regular": { + "familyName": "Helvetica", + "fullName": "Helvetica", + "postscriptName": "Helvetica", + "category": "sans-serif", + "capHeight": 1469, + "ascent": 1577, + "descent": -471, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1298 + } + } + }, + "italic": { + "familyName": "Helvetica", + "fullName": "Helvetica Oblique", + "postscriptName": "Helvetica-Oblique", + "category": "sans-serif", + "capHeight": 1469, + "ascent": 1577, + "descent": -471, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1298 + } + } + }, + "700italic": { + "familyName": "Helvetica", + "fullName": "Helvetica Bold Oblique", + "postscriptName": "Helvetica-BoldOblique", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 1577, + "descent": -471, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1105, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 1479 + } + } + }, + "300italic": { + "familyName": "Helvetica", + "fullName": "Helvetica Light Oblique", + "postscriptName": "Helvetica-LightOblique", + "category": "sans-serif", + "capHeight": 718, + "ascent": 770, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 648 + } + } + } + } + }, + "helveticaNeue": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue", + "postscriptName": "HelveticaNeue", + "category": "sans-serif", + "capHeight": 714, + "ascent": 952, + "descent": -213, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "100": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue UltraLight", + "postscriptName": "HelveticaNeue-UltraLight", + "category": "sans-serif", + "ascent": 931, + "descent": -213, + "lineGap": 27, + "unitsPerEm": 1000, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "200": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Thin", + "postscriptName": "HelveticaNeue-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 967, + "descent": -213, + "lineGap": 29, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "300": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Light", + "postscriptName": "HelveticaNeue-Light", + "category": "sans-serif", + "ascent": 967, + "descent": -213, + "lineGap": 29, + "unitsPerEm": 1000, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "500": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Medium", + "postscriptName": "HelveticaNeue-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 975, + "descent": -217, + "lineGap": 29, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "700": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Bold", + "postscriptName": "HelveticaNeue-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 975, + "descent": -217, + "lineGap": 29, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "regular": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue", + "postscriptName": "HelveticaNeue", + "category": "sans-serif", + "capHeight": 714, + "ascent": 952, + "descent": -213, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "italic": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Italic", + "postscriptName": "HelveticaNeue-Italic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 957, + "descent": -213, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "700italic": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Bold Italic", + "postscriptName": "HelveticaNeue-BoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 975, + "descent": -217, + "lineGap": 29, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "500italic": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Medium Italic", + "postscriptName": "HelveticaNeue-MediumItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 975, + "descent": -217, + "lineGap": 29, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "300italic": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Light Italic", + "postscriptName": "HelveticaNeue-LightItalic", + "category": "sans-serif", + "ascent": 951, + "descent": -213, + "lineGap": 28, + "unitsPerEm": 1000, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "200italic": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue Thin Italic", + "postscriptName": "HelveticaNeue-ThinItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 967, + "descent": -213, + "lineGap": 29, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "100italic": { + "familyName": "Helvetica Neue", + "fullName": "Helvetica Neue UltraLight Italic", + "postscriptName": "HelveticaNeue-UltraLightItalic", + "category": "sans-serif", + "ascent": 931, + "descent": -213, + "lineGap": 27, + "unitsPerEm": 1000, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "hennyPenny": { + "familyName": "Henny Penny", + "fullName": "Henny Penny", + "postscriptName": "HennyPenny-Regular", + "category": "display", + "capHeight": 1794, + "ascent": 2324, + "descent": -1305, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1264, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 553 + } + }, + "variants": { + "regular": { + "familyName": "Henny Penny", + "fullName": "Henny Penny", + "postscriptName": "HennyPenny-Regular", + "category": "display", + "capHeight": 1794, + "ascent": 2324, + "descent": -1305, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1264, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 553 + } + } + } + } + }, + "heptaSlab": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Regular", + "postscriptName": "HeptaSlab-Regular", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1102, + "subsets": { + "latin": { + "xWidthAvg": 1102 + }, + "thai": { + "xWidthAvg": 1714 + } + }, + "variants": { + "100": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Thin", + "postscriptName": "HeptaSlab-Thin", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1091, + "subsets": { + "latin": { + "xWidthAvg": 1091 + }, + "thai": { + "xWidthAvg": 1719 + } + } + }, + "200": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab ExtraLight", + "postscriptName": "HeptaSlab-ExtraLight", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 1714 + } + } + }, + "300": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Light", + "postscriptName": "HeptaSlab-Light", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1098, + "subsets": { + "latin": { + "xWidthAvg": 1098 + }, + "thai": { + "xWidthAvg": 1714 + } + } + }, + "500": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Medium", + "postscriptName": "HeptaSlab-Medium", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1105, + "subsets": { + "latin": { + "xWidthAvg": 1105 + }, + "thai": { + "xWidthAvg": 1696 + } + } + }, + "600": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab SemiBold", + "postscriptName": "HeptaSlab-SemiBold", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1123, + "subsets": { + "latin": { + "xWidthAvg": 1123 + }, + "thai": { + "xWidthAvg": 1711 + } + } + }, + "700": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Bold", + "postscriptName": "HeptaSlab-Bold", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1145, + "subsets": { + "latin": { + "xWidthAvg": 1145 + }, + "thai": { + "xWidthAvg": 1714 + } + } + }, + "800": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab ExtraBold", + "postscriptName": "HeptaSlab-ExtraBold", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1180, + "subsets": { + "latin": { + "xWidthAvg": 1180 + }, + "thai": { + "xWidthAvg": 1714 + } + } + }, + "900": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Black", + "postscriptName": "HeptaSlab-Black", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1218, + "subsets": { + "latin": { + "xWidthAvg": 1218 + }, + "thai": { + "xWidthAvg": 2054 + } + } + }, + "regular": { + "familyName": "Hepta Slab", + "fullName": "Hepta Slab Regular", + "postscriptName": "HeptaSlab-Regular", + "category": "serif", + "capHeight": 1504, + "ascent": 1976, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1052, + "xWidthAvg": 1102, + "subsets": { + "latin": { + "xWidthAvg": 1102 + }, + "thai": { + "xWidthAvg": 1714 + } + } + } + } + }, + "herrVonMuellerhoff": { + "familyName": "Herr Von Muellerhoff", + "fullName": "Herr Von Muellerhoff Regular", + "postscriptName": "HerrVonMuellerhoff-Regular", + "category": "handwriting", + "capHeight": 644, + "ascent": 925, + "descent": -497, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 269, + "xWidthAvg": 260, + "subsets": { + "latin": { + "xWidthAvg": 260 + }, + "thai": { + "xWidthAvg": 220 + } + }, + "variants": { + "regular": { + "familyName": "Herr Von Muellerhoff", + "fullName": "Herr Von Muellerhoff Regular", + "postscriptName": "HerrVonMuellerhoff-Regular", + "category": "handwriting", + "capHeight": 644, + "ascent": 925, + "descent": -497, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 269, + "xWidthAvg": 260, + "subsets": { + "latin": { + "xWidthAvg": 260 + }, + "thai": { + "xWidthAvg": 220 + } + } + } + } + }, + "hiMelody": { + "familyName": "Hi Melody", + "fullName": "Hi Melody Regular", + "postscriptName": "HiMelody-Regular", + "category": "handwriting", + "capHeight": 512, + "ascent": 679, + "descent": -345, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 321, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Hi Melody", + "fullName": "Hi Melody Regular", + "postscriptName": "HiMelody-Regular", + "category": "handwriting", + "capHeight": 512, + "ascent": 679, + "descent": -345, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 321, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "hinaMincho": { + "familyName": "Hina Mincho", + "fullName": "Hina Mincho Regular", + "postscriptName": "HinaMincho-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 380, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Hina Mincho", + "fullName": "Hina Mincho Regular", + "postscriptName": "HinaMincho-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 380, + "xWidthAvg": 375, + "subsets": { + "latin": { + "xWidthAvg": 375 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "hind": { + "familyName": "Hind", + "fullName": "Hind Regular", + "postscriptName": "Hind-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1055, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "300": { + "familyName": "Hind", + "fullName": "Hind Light", + "postscriptName": "Hind-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1055, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Hind", + "fullName": "Hind Medium", + "postscriptName": "Hind-Medium", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1055, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "600": { + "familyName": "Hind", + "fullName": "Hind SemiBold", + "postscriptName": "Hind-SemiBold", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1055, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "700": { + "familyName": "Hind", + "fullName": "Hind Bold", + "postscriptName": "Hind-Bold", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1055, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Hind", + "fullName": "Hind Regular", + "postscriptName": "Hind-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1055, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "hindGuntur": { + "familyName": "Hind Guntur", + "fullName": "Hind Guntur Regular", + "postscriptName": "HindGuntur-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1115, + "descent": -773, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "300": { + "familyName": "Hind Guntur", + "fullName": "Hind Guntur Light", + "postscriptName": "HindGuntur-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1115, + "descent": -773, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Hind Guntur", + "fullName": "Hind Guntur Medium", + "postscriptName": "HindGuntur-Medium", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1115, + "descent": -773, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "600": { + "familyName": "Hind Guntur", + "fullName": "Hind Guntur SemiBold", + "postscriptName": "HindGuntur-SemiBold", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1115, + "descent": -773, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "700": { + "familyName": "Hind Guntur", + "fullName": "Hind Guntur Bold", + "postscriptName": "HindGuntur-Bold", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1115, + "descent": -773, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Hind Guntur", + "fullName": "Hind Guntur Regular", + "postscriptName": "HindGuntur-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1115, + "descent": -773, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "hindMadurai": { + "familyName": "Hind Madurai", + "fullName": "Hind Madurai Regular", + "postscriptName": "HindMadurai-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 982, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "300": { + "familyName": "Hind Madurai", + "fullName": "Hind Madurai Light", + "postscriptName": "HindMadurai-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 982, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Hind Madurai", + "fullName": "Hind Madurai Medium", + "postscriptName": "HindMadurai-Medium", + "category": "sans-serif", + "capHeight": 679, + "ascent": 982, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "600": { + "familyName": "Hind Madurai", + "fullName": "Hind Madurai SemiBold", + "postscriptName": "HindMadurai-SemiBold", + "category": "sans-serif", + "capHeight": 679, + "ascent": 982, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "700": { + "familyName": "Hind Madurai", + "fullName": "Hind Madurai Bold", + "postscriptName": "HindMadurai-Bold", + "category": "sans-serif", + "capHeight": 678, + "ascent": 982, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Hind Madurai", + "fullName": "Hind Madurai Regular", + "postscriptName": "HindMadurai-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 982, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "hindSiliguri": { + "familyName": "Hind Siliguri", + "fullName": "Hind Siliguri Regular", + "postscriptName": "HindSiliguri-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1116, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "300": { + "familyName": "Hind Siliguri", + "fullName": "Hind Siliguri Light", + "postscriptName": "HindSiliguri-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1116, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Hind Siliguri", + "fullName": "Hind Siliguri Medium", + "postscriptName": "HindSiliguri-Medium", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1116, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "600": { + "familyName": "Hind Siliguri", + "fullName": "Hind Siliguri SemiBold", + "postscriptName": "HindSiliguri-SemiBold", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1116, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "700": { + "familyName": "Hind Siliguri", + "fullName": "Hind Siliguri Bold", + "postscriptName": "HindSiliguri-Bold", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1116, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Hind Siliguri", + "fullName": "Hind Siliguri Regular", + "postscriptName": "HindSiliguri-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1116, + "descent": -501, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "hindVadodara": { + "familyName": "Hind Vadodara", + "fullName": "Hind Vadodara Regular", + "postscriptName": "HindVadodara-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1125, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "300": { + "familyName": "Hind Vadodara", + "fullName": "Hind Vadodara Light", + "postscriptName": "HindVadodara-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1125, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Hind Vadodara", + "fullName": "Hind Vadodara Medium", + "postscriptName": "HindVadodara-Medium", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1125, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "600": { + "familyName": "Hind Vadodara", + "fullName": "Hind Vadodara SemiBold", + "postscriptName": "HindVadodara-SemiBold", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1125, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "700": { + "familyName": "Hind Vadodara", + "fullName": "Hind Vadodara Bold", + "postscriptName": "HindVadodara-Bold", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1125, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Hind Vadodara", + "fullName": "Hind Vadodara Regular", + "postscriptName": "HindVadodara-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1125, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "holtwoodOneSC": { + "familyName": "Holtwood One SC", + "fullName": "Holtwood One SC Regular", + "postscriptName": "HoltwoodOneSC-Regular", + "category": "serif", + "capHeight": 1536, + "ascent": 2457, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1408, + "xWidthAvg": 1426, + "subsets": { + "latin": { + "xWidthAvg": 1426 + }, + "thai": { + "xWidthAvg": 709 + } + }, + "variants": { + "regular": { + "familyName": "Holtwood One SC", + "fullName": "Holtwood One SC Regular", + "postscriptName": "HoltwoodOneSC-Regular", + "category": "serif", + "capHeight": 1536, + "ascent": 2457, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1408, + "xWidthAvg": 1426, + "subsets": { + "latin": { + "xWidthAvg": 1426 + }, + "thai": { + "xWidthAvg": 709 + } + } + } + } + }, + "homemadeApple": { + "familyName": "Homemade Apple", + "fullName": "Homemade Apple Regular", + "postscriptName": "HomemadeApple-Regular", + "category": "handwriting", + "capHeight": 1022, + "ascent": 1327, + "descent": -866, + "lineGap": 18, + "unitsPerEm": 1024, + "xHeight": 600, + "xWidthAvg": 567, + "subsets": { + "latin": { + "xWidthAvg": 567 + }, + "thai": { + "xWidthAvg": 358 + } + }, + "variants": { + "regular": { + "familyName": "Homemade Apple", + "fullName": "Homemade Apple Regular", + "postscriptName": "HomemadeApple-Regular", + "category": "handwriting", + "capHeight": 1022, + "ascent": 1327, + "descent": -866, + "lineGap": 18, + "unitsPerEm": 1024, + "xHeight": 600, + "xWidthAvg": 567, + "subsets": { + "latin": { + "xWidthAvg": 567 + }, + "thai": { + "xWidthAvg": 358 + } + } + } + } + }, + "homenaje": { + "familyName": "Homenaje", + "fullName": "Homenaje Regular", + "postscriptName": "Homenaje-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 892, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "regular": { + "familyName": "Homenaje", + "fullName": "Homenaje Regular", + "postscriptName": "Homenaje-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 892, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "honk": { + "familyName": "Honk", + "fullName": "Honk Regular", + "postscriptName": "Honk-Regular", + "category": "display", + "capHeight": 1200, + "ascent": 1800, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 970, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 870 + } + }, + "variants": { + "regular": { + "familyName": "Honk", + "fullName": "Honk Regular", + "postscriptName": "Honk-Regular", + "category": "display", + "capHeight": 1200, + "ascent": 1800, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 970, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 870 + } + } + } + } + }, + "hostGrotesk": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Regular", + "postscriptName": "HostGrotesk-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "300": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Light", + "postscriptName": "HostGrotesk-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "500": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Medium", + "postscriptName": "HostGrotesk-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk SemiBold", + "postscriptName": "HostGrotesk-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "700": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Bold", + "postscriptName": "HostGrotesk-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "800": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk ExtraBold", + "postscriptName": "HostGrotesk-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "regular": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Regular", + "postscriptName": "HostGrotesk-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "italic": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Italic", + "postscriptName": "HostGrotesk-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "800italic": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk ExtraBold Italic", + "postscriptName": "HostGrotesk-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "700italic": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Bold Italic", + "postscriptName": "HostGrotesk-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600italic": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk SemiBold Italic", + "postscriptName": "HostGrotesk-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "500italic": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Medium Italic", + "postscriptName": "HostGrotesk-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "300italic": { + "familyName": "Host Grotesk", + "fullName": "Host Grotesk Light Italic", + "postscriptName": "HostGrotesk-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1015, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + } + } + }, + "hubballi": { + "familyName": "Hubballi", + "fullName": "Hubballi Regular", + "postscriptName": "Hubballi-Regular", + "category": "sans-serif", + "capHeight": 535, + "ascent": 765, + "descent": -191, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 392, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 756 + } + }, + "variants": { + "regular": { + "familyName": "Hubballi", + "fullName": "Hubballi Regular", + "postscriptName": "Hubballi-Regular", + "category": "sans-serif", + "capHeight": 535, + "ascent": 765, + "descent": -191, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 392, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 756 + } + } + } + } + }, + "hubotSans": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Regular", + "postscriptName": "HubotSans-Regular", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 865 + } + }, + "variants": { + "200": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans ExtraLight", + "postscriptName": "HubotSans-ExtraLight", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "300": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Light", + "postscriptName": "HubotSans-Light", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "500": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Medium", + "postscriptName": "HubotSans-Medium", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "600": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans SemiBold", + "postscriptName": "HubotSans-SemiBold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "700": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Bold", + "postscriptName": "HubotSans-Bold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "800": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans ExtraBold", + "postscriptName": "HubotSans-ExtraBold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "900": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Black", + "postscriptName": "HubotSans-Black", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "regular": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Regular", + "postscriptName": "HubotSans-Regular", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Italic", + "postscriptName": "HubotSans-Italic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 881 + } + } + }, + "900italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Black Italic", + "postscriptName": "HubotSans-BlackItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 882 + } + } + }, + "800italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans ExtraBold Italic", + "postscriptName": "HubotSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 882 + } + } + }, + "700italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Bold Italic", + "postscriptName": "HubotSans-BoldItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 882 + } + } + }, + "600italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans SemiBold Italic", + "postscriptName": "HubotSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 882 + } + } + }, + "500italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Medium Italic", + "postscriptName": "HubotSans-MediumItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 881 + } + } + }, + "300italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans Light Italic", + "postscriptName": "HubotSans-LightItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 882 + } + } + }, + "200italic": { + "familyName": "Hubot Sans", + "fullName": "Hubot Sans ExtraLight Italic", + "postscriptName": "HubotSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 882 + } + } + } + } + }, + "hurricane": { + "familyName": "Hurricane", + "fullName": "Hurricane Regular", + "postscriptName": "Hurricane-Regular", + "category": "handwriting", + "capHeight": 610, + "ascent": 950, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 326, + "xWidthAvg": 287, + "subsets": { + "latin": { + "xWidthAvg": 287 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Hurricane", + "fullName": "Hurricane Regular", + "postscriptName": "Hurricane-Regular", + "category": "handwriting", + "capHeight": 610, + "ascent": 950, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 326, + "xWidthAvg": 287, + "subsets": { + "latin": { + "xWidthAvg": 287 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "iBMPlexMono": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Regular", + "postscriptName": "IBMPlexMono-Regular", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Thin", + "postscriptName": "IBMPlexMono-Thin", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono ExtraLight", + "postscriptName": "IBMPlexMono-ExtraLight", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Light", + "postscriptName": "IBMPlexMono-Light", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Medium", + "postscriptName": "IBMPlexMono-Medium", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono SemiBold", + "postscriptName": "IBMPlexMono-SemiBold", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Bold", + "postscriptName": "IBMPlexMono-Bold", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Regular", + "postscriptName": "IBMPlexMono-Regular", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Italic", + "postscriptName": "IBMPlexMono-Italic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Bold Italic", + "postscriptName": "IBMPlexMono-BoldItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono SemiBold Italic", + "postscriptName": "IBMPlexMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Medium Italic", + "postscriptName": "IBMPlexMono-MediumItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Light Italic", + "postscriptName": "IBMPlexMono-LightItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono ExtraLight Italic", + "postscriptName": "IBMPlexMono-ExtraLightItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "IBM Plex Mono", + "fullName": "IBM Plex Mono Thin Italic", + "postscriptName": "IBMPlexMono-ThinItalic", + "category": "monospace", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "iBMPlexSans": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Regular", + "postscriptName": "IBMPlexSans-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Thin", + "postscriptName": "IBMPlexSans-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "200": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans ExtraLight", + "postscriptName": "IBMPlexSans-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "300": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Light", + "postscriptName": "IBMPlexSans-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "500": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Medium", + "postscriptName": "IBMPlexSans-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "600": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans SemiBold", + "postscriptName": "IBMPlexSans-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "700": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Bold", + "postscriptName": "IBMPlexSans-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Regular", + "postscriptName": "IBMPlexSans-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Italic", + "postscriptName": "IBMPlexSans-Italic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "700italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Bold Italic", + "postscriptName": "IBMPlexSans-BoldItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "600italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans SemiBold Italic", + "postscriptName": "IBMPlexSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "500italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Medium Italic", + "postscriptName": "IBMPlexSans-MediumItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "300italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Light Italic", + "postscriptName": "IBMPlexSans-LightItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "200italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans ExtraLight Italic", + "postscriptName": "IBMPlexSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "100italic": { + "familyName": "IBM Plex Sans", + "fullName": "IBM Plex Sans Thin Italic", + "postscriptName": "IBMPlexSans-ThinItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 472 + } + } + } + } + }, + "iBMPlexSansArabic": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic Regular", + "postscriptName": "IBMPlexSansArabic-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic Thin", + "postscriptName": "IBMPlexSansArabic-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "200": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic ExtraLight", + "postscriptName": "IBMPlexSansArabic-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "300": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic Light", + "postscriptName": "IBMPlexSansArabic-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "500": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic Medium", + "postscriptName": "IBMPlexSansArabic-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "600": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic SemiBold", + "postscriptName": "IBMPlexSansArabic-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "700": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic Bold", + "postscriptName": "IBMPlexSansArabic-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans Arabic", + "fullName": "IBM Plex Sans Arabic Regular", + "postscriptName": "IBMPlexSansArabic-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + } + } + } + }, + "iBMPlexSansCondensed": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Regular", + "postscriptName": "IBMPlexSansCond-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 424 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Thin", + "postscriptName": "IBMPlexSansCond-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "200": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed ExtraLight", + "postscriptName": "IBMPlexSansCond-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "300": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Light", + "postscriptName": "IBMPlexSansCond-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "500": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Medium", + "postscriptName": "IBMPlexSansCond-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "600": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed SemiBold", + "postscriptName": "IBMPlexSansCond-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "700": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Bold", + "postscriptName": "IBMPlexSansCond-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Regular", + "postscriptName": "IBMPlexSansCond-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Italic", + "postscriptName": "IBMPlexSansCond-Italic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "700italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Bold Italic", + "postscriptName": "IBMPlexSansCond-BoldItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "600italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed SemiBold Italic", + "postscriptName": "IBMPlexSansCond-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "500italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Medium Italic", + "postscriptName": "IBMPlexSansCond-MediumItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "300italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Light Italic", + "postscriptName": "IBMPlexSansCond-LightItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "200italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed ExtraLight Italic", + "postscriptName": "IBMPlexSansCond-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "100italic": { + "familyName": "IBM Plex Sans Condensed", + "fullName": "IBM Plex Sans Condensed Thin Italic", + "postscriptName": "IBMPlexSansCond-ThinItalic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 424 + } + } + } + } + }, + "iBMPlexSansDevanagari": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari Regular", + "postscriptName": "IBMPlexSansDevanagari-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari Thin", + "postscriptName": "IBMPlexSansDevanagari-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "200": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari ExtraLight", + "postscriptName": "IBMPlexSansDevanagari-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "300": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari Light", + "postscriptName": "IBMPlexSansDevanagari-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "500": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari Medium", + "postscriptName": "IBMPlexSansDevanagari-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "600": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari SemiBold", + "postscriptName": "IBMPlexSansDevanagari-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "700": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari Bold", + "postscriptName": "IBMPlexSansDevanagari-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans Devanagari", + "fullName": "IBM Plex Sans Devanagari Regular", + "postscriptName": "IBMPlexSansDevanagari-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1070, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + } + } + } + }, + "iBMPlexSansHebrew": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew Regular", + "postscriptName": "IBMPlexSansHebrew-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew Thin", + "postscriptName": "IBMPlexSansHebrew-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "200": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew ExtraLight", + "postscriptName": "IBMPlexSansHebrew-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "300": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew Light", + "postscriptName": "IBMPlexSansHebrew-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "500": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew Medium", + "postscriptName": "IBMPlexSansHebrew-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "600": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew SemiBold", + "postscriptName": "IBMPlexSansHebrew-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "700": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew Bold", + "postscriptName": "IBMPlexSansHebrew-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans Hebrew", + "fullName": "IBM Plex Sans Hebrew Regular", + "postscriptName": "IBMPlexSansHebrew-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + } + } + } + }, + "iBMPlexSansJP": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP Regular", + "postscriptName": "IBMPlexSansJP-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP Thin", + "postscriptName": "IBMPlexSansJP-Thin", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP ExtraLight", + "postscriptName": "IBMPlexSansJP-ExtraLight", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP Light", + "postscriptName": "IBMPlexSansJP-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP Medium", + "postscriptName": "IBMPlexSansJP-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP SemiBold", + "postscriptName": "IBMPlexSansJP-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP Bold", + "postscriptName": "IBMPlexSansJP-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans JP", + "fullName": "IBM Plex Sans JP Regular", + "postscriptName": "IBMPlexSansJP-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1060, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "iBMPlexSansKR": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR Regular", + "postscriptName": "IBMPlexSansKR-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR Thin", + "postscriptName": "IBMPlexSansKR-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "200": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR ExtraLight", + "postscriptName": "IBMPlexSansKR-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "300": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR Light", + "postscriptName": "IBMPlexSansKR-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "500": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR Medium", + "postscriptName": "IBMPlexSansKR-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "600": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR SemiBold", + "postscriptName": "IBMPlexSansKR-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "700": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR Bold", + "postscriptName": "IBMPlexSansKR-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 472 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans KR", + "fullName": "IBM Plex Sans KR Regular", + "postscriptName": "IBMPlexSansKR-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1085, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 472 + } + } + } + } + }, + "iBMPlexSansThai": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai Regular", + "postscriptName": "IBMPlexSansThai-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 561 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai Thin", + "postscriptName": "IBMPlexSansThai-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "200": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai ExtraLight", + "postscriptName": "IBMPlexSansThai-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "300": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai Light", + "postscriptName": "IBMPlexSansThai-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "500": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai Medium", + "postscriptName": "IBMPlexSansThai-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "600": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai SemiBold", + "postscriptName": "IBMPlexSansThai-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 573 + } + } + }, + "700": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai Bold", + "postscriptName": "IBMPlexSansThai-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans Thai", + "fullName": "IBM Plex Sans Thai Regular", + "postscriptName": "IBMPlexSansThai-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 561 + } + } + } + } + }, + "iBMPlexSansThaiLooped": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped Regular", + "postscriptName": "IBMPlexSansThaiLooped-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 609 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped Thin", + "postscriptName": "IBMPlexSansThaiLooped-Thin", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 585 + } + } + }, + "200": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped ExtraLight", + "postscriptName": "IBMPlexSansThaiLooped-ExtraLight", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "300": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped Light", + "postscriptName": "IBMPlexSansThaiLooped-Light", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "500": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped Medium", + "postscriptName": "IBMPlexSansThaiLooped-Medium", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 619 + } + } + }, + "600": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped SemiBold", + "postscriptName": "IBMPlexSansThaiLooped-SemiBold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 626 + } + } + }, + "700": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped Bold", + "postscriptName": "IBMPlexSansThaiLooped-Bold", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 634 + } + } + }, + "regular": { + "familyName": "IBM Plex Sans Thai Looped", + "fullName": "IBM Plex Sans Thai Looped Regular", + "postscriptName": "IBMPlexSansThaiLooped-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1116, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 609 + } + } + } + } + }, + "iBMPlexSerif": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Regular", + "postscriptName": "IBMPlexSerif-Regular", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "100": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Thin", + "postscriptName": "IBMPlexSerif-Thin", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "200": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif ExtraLight", + "postscriptName": "IBMPlexSerif-ExtraLight", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "300": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Light", + "postscriptName": "IBMPlexSerif-Light", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "500": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Medium", + "postscriptName": "IBMPlexSerif-Medium", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "600": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif SemiBold", + "postscriptName": "IBMPlexSerif-SemiBold", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "700": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Bold", + "postscriptName": "IBMPlexSerif-Bold", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "regular": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Regular", + "postscriptName": "IBMPlexSerif-Regular", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Italic", + "postscriptName": "IBMPlexSerif-Italic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "700italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Bold Italic", + "postscriptName": "IBMPlexSerif-BoldItalic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "600italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif SemiBold Italic", + "postscriptName": "IBMPlexSerif-SemiBoldItalic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "500italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Medium Italic", + "postscriptName": "IBMPlexSerif-MediumItalic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "300italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Light Italic", + "postscriptName": "IBMPlexSerif-LightItalic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "200italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif ExtraLight Italic", + "postscriptName": "IBMPlexSerif-ExtraLightItalic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 424 + } + } + }, + "100italic": { + "familyName": "IBM Plex Serif", + "fullName": "IBM Plex Serif Thin Italic", + "postscriptName": "IBMPlexSerif-ThinItalic", + "category": "serif", + "capHeight": 698, + "ascent": 1025, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 424 + } + } + } + } + }, + "iMFellDWPica": { + "familyName": "IM Fell DW Pica", + "fullName": "IM FELL DW Pica Roman", + "postscriptName": "IM_FELL_DW_Pica_Roman", + "category": "serif", + "capHeight": 1438, + "ascent": 1868, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 903, + "xWidthAvg": 815, + "subsets": { + "latin": { + "xWidthAvg": 815 + }, + "thai": { + "xWidthAvg": 1358 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell DW Pica", + "fullName": "IM FELL DW Pica Roman", + "postscriptName": "IM_FELL_DW_Pica_Roman", + "category": "serif", + "capHeight": 1438, + "ascent": 1868, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 903, + "xWidthAvg": 815, + "subsets": { + "latin": { + "xWidthAvg": 815 + }, + "thai": { + "xWidthAvg": 1358 + } + } + }, + "italic": { + "familyName": "IM Fell DW Pica", + "fullName": "IM FELL DW Pica Italic", + "postscriptName": "IM_FELL_DW_Pica_Italic", + "category": "serif", + "capHeight": 1443, + "ascent": 1868, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 971, + "xWidthAvg": 767, + "subsets": { + "latin": { + "xWidthAvg": 767 + }, + "thai": { + "xWidthAvg": 1358 + } + } + } + } + }, + "iMFellDWPicaSC": { + "familyName": "IM Fell DW Pica SC", + "fullName": "IM FELL DW Pica SC", + "postscriptName": "IM_FELL_DW_Pica_SC", + "category": "serif", + "capHeight": 1438, + "ascent": 1868, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 903, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 1386 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell DW Pica SC", + "fullName": "IM FELL DW Pica SC", + "postscriptName": "IM_FELL_DW_Pica_SC", + "category": "serif", + "capHeight": 1438, + "ascent": 1868, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 903, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 1386 + } + } + } + } + }, + "iMFellDoublePica": { + "familyName": "IM Fell Double Pica", + "fullName": "IM FELL Double Pica Roman ", + "postscriptName": "IM_FELL_Double_Pica_Roman", + "category": "serif", + "capHeight": 1509, + "ascent": 1924, + "descent": -643, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 926, + "xWidthAvg": 810, + "subsets": { + "latin": { + "xWidthAvg": 810 + }, + "thai": { + "xWidthAvg": 1307 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell Double Pica", + "fullName": "IM FELL Double Pica Roman ", + "postscriptName": "IM_FELL_Double_Pica_Roman", + "category": "serif", + "capHeight": 1509, + "ascent": 1924, + "descent": -643, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 926, + "xWidthAvg": 810, + "subsets": { + "latin": { + "xWidthAvg": 810 + }, + "thai": { + "xWidthAvg": 1307 + } + } + }, + "italic": { + "familyName": "IM Fell Double Pica", + "fullName": "IM FELL Double Pica Italic", + "postscriptName": "IM_FELL_Double_Pica_Italic", + "category": "serif", + "capHeight": 1494, + "ascent": 1924, + "descent": -643, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 917, + "xWidthAvg": 741, + "subsets": { + "latin": { + "xWidthAvg": 741 + }, + "thai": { + "xWidthAvg": 1346 + } + } + } + } + }, + "iMFellDoublePicaSC": { + "familyName": "IM Fell Double Pica SC", + "fullName": "IM FELL Double Pica SC", + "postscriptName": "IM_FELL_Double_Pica_SC", + "category": "serif", + "capHeight": 1509, + "ascent": 1924, + "descent": -643, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 946, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1335 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell Double Pica SC", + "fullName": "IM FELL Double Pica SC", + "postscriptName": "IM_FELL_Double_Pica_SC", + "category": "serif", + "capHeight": 1509, + "ascent": 1924, + "descent": -643, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 946, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1335 + } + } + } + } + }, + "iMFellEnglish": { + "familyName": "IM Fell English", + "fullName": "IM FELL English Roman", + "postscriptName": "IM_FELL_English_Roman", + "category": "serif", + "capHeight": 1417, + "ascent": 1854, + "descent": -744, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 962, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1358 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell English", + "fullName": "IM FELL English Roman", + "postscriptName": "IM_FELL_English_Roman", + "category": "serif", + "capHeight": 1417, + "ascent": 1854, + "descent": -744, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 962, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1358 + } + } + }, + "italic": { + "familyName": "IM Fell English", + "fullName": "IM FELL English Italic", + "postscriptName": "IM_FELL_English_Italic", + "category": "serif", + "capHeight": 1431, + "ascent": 1854, + "descent": -744, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 912, + "xWidthAvg": 740, + "subsets": { + "latin": { + "xWidthAvg": 740 + }, + "thai": { + "xWidthAvg": 1350 + } + } + } + } + }, + "iMFellEnglishSC": { + "familyName": "IM Fell English SC", + "fullName": "IM FELL English SC", + "postscriptName": "IM_FELL_English_SC", + "category": "serif", + "capHeight": 1417, + "ascent": 1854, + "descent": -744, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 901, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 1368 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell English SC", + "fullName": "IM FELL English SC", + "postscriptName": "IM_FELL_English_SC", + "category": "serif", + "capHeight": 1417, + "ascent": 1854, + "descent": -744, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 901, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 1368 + } + } + } + } + }, + "iMFellFrenchCanon": { + "familyName": "IM Fell French Canon", + "fullName": "IM FELL French Canon Roman", + "postscriptName": "IM_FELL_French_Canon_Roman", + "category": "serif", + "capHeight": 1465, + "ascent": 1868, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 981, + "xWidthAvg": 879, + "subsets": { + "latin": { + "xWidthAvg": 879 + }, + "thai": { + "xWidthAvg": 1346 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell French Canon", + "fullName": "IM FELL French Canon Roman", + "postscriptName": "IM_FELL_French_Canon_Roman", + "category": "serif", + "capHeight": 1465, + "ascent": 1868, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 981, + "xWidthAvg": 879, + "subsets": { + "latin": { + "xWidthAvg": 879 + }, + "thai": { + "xWidthAvg": 1346 + } + } + }, + "italic": { + "familyName": "IM Fell French Canon", + "fullName": "IM FELL French Canon Italic", + "postscriptName": "IM_FELL_French_Canon_Italic", + "category": "serif", + "capHeight": 1477, + "ascent": 1868, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 826, + "subsets": { + "latin": { + "xWidthAvg": 826 + }, + "thai": { + "xWidthAvg": 1346 + } + } + } + } + }, + "iMFellFrenchCanonSC": { + "familyName": "IM Fell French Canon SC", + "fullName": "IM FELL French Canon SC", + "postscriptName": "IM_FELL_French_Canon_SC", + "category": "serif", + "capHeight": 1465, + "ascent": 1868, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 984, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1374 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell French Canon SC", + "fullName": "IM FELL French Canon SC", + "postscriptName": "IM_FELL_French_Canon_SC", + "category": "serif", + "capHeight": 1465, + "ascent": 1868, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 984, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1374 + } + } + } + } + }, + "iMFellGreatPrimer": { + "familyName": "IM Fell Great Primer", + "fullName": "IM FELL Great Primer Roman", + "postscriptName": "IM_FELL_Great_Primer_Roman", + "category": "serif", + "capHeight": 1488, + "ascent": 1942, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 962, + "xWidthAvg": 837, + "subsets": { + "latin": { + "xWidthAvg": 837 + }, + "thai": { + "xWidthAvg": 1352 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell Great Primer", + "fullName": "IM FELL Great Primer Roman", + "postscriptName": "IM_FELL_Great_Primer_Roman", + "category": "serif", + "capHeight": 1488, + "ascent": 1942, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 962, + "xWidthAvg": 837, + "subsets": { + "latin": { + "xWidthAvg": 837 + }, + "thai": { + "xWidthAvg": 1352 + } + } + }, + "italic": { + "familyName": "IM Fell Great Primer", + "fullName": "IM FELL Great Primer Italic", + "postscriptName": "IM_FELL_Great_Primer_Italic", + "category": "serif", + "capHeight": 878, + "ascent": 1942, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 561, + "xWidthAvg": 802, + "subsets": { + "latin": { + "xWidthAvg": 802 + }, + "thai": { + "xWidthAvg": 1346 + } + } + } + } + }, + "iMFellGreatPrimerSC": { + "familyName": "IM Fell Great Primer SC", + "fullName": "IM FELL Great Primer SC", + "postscriptName": "IM_FELL_Great_Primer_SC", + "category": "serif", + "capHeight": 1488, + "ascent": 1942, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 957, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1380 + } + }, + "variants": { + "regular": { + "familyName": "IM Fell Great Primer SC", + "fullName": "IM FELL Great Primer SC", + "postscriptName": "IM_FELL_Great_Primer_SC", + "category": "serif", + "capHeight": 1488, + "ascent": 1942, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 957, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1380 + } + } + } + } + }, + "ibarraRealNova": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Regular", + "postscriptName": "IbarraRealNova-Regular", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 773 + } + }, + "variants": { + "500": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Medium", + "postscriptName": "IbarraRealNova-Medium", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "600": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova SemiBold", + "postscriptName": "IbarraRealNova-SemiBold", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "700": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Bold", + "postscriptName": "IbarraRealNova-Bold", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "regular": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Regular", + "postscriptName": "IbarraRealNova-Regular", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "italic": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Italic", + "postscriptName": "IbarraRealNova-Italic", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "700italic": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Bold Italic", + "postscriptName": "IbarraRealNova-BoldItalic", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "600italic": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova SemiBold Italic", + "postscriptName": "IbarraRealNova-SemiBoldItalic", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 773 + } + } + }, + "500italic": { + "familyName": "Ibarra Real Nova", + "fullName": "Ibarra Real Nova Medium Italic", + "postscriptName": "IbarraRealNova-MediumItalic", + "category": "serif", + "capHeight": 673, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 773 + } + } + } + } + }, + "iceberg": { + "familyName": "Iceberg", + "fullName": "Iceberg", + "postscriptName": "Iceberg-Regular", + "category": "display", + "capHeight": 691, + "ascent": 936, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 965 + } + }, + "variants": { + "regular": { + "familyName": "Iceberg", + "fullName": "Iceberg", + "postscriptName": "Iceberg-Regular", + "category": "display", + "capHeight": 691, + "ascent": 936, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 965 + } + } + } + } + }, + "iceland": { + "familyName": "Iceland", + "fullName": "Iceland", + "postscriptName": "Iceland-Regular", + "category": "display", + "capHeight": 490, + "ascent": 750, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Iceland", + "fullName": "Iceland", + "postscriptName": "Iceland-Regular", + "category": "display", + "capHeight": 490, + "ascent": 750, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "imbue": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Regular", + "postscriptName": "Imbue10pt-Regular", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 587 + } + }, + "variants": { + "100": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Thin", + "postscriptName": "Imbue10pt-Thin", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 573 + } + } + }, + "200": { + "familyName": "Imbue", + "fullName": "Imbue 10pt ExtraLight", + "postscriptName": "Imbue10pt-ExtraLight", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 578 + } + } + }, + "300": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Light", + "postscriptName": "Imbue10pt-Light", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "500": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Medium", + "postscriptName": "Imbue10pt-Medium", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 614, + "subsets": { + "latin": { + "xWidthAvg": 614 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "600": { + "familyName": "Imbue", + "fullName": "Imbue 10pt SemiBold", + "postscriptName": "Imbue10pt-SemiBold", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 647, + "subsets": { + "latin": { + "xWidthAvg": 647 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "700": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Bold", + "postscriptName": "Imbue10pt-Bold", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 681, + "subsets": { + "latin": { + "xWidthAvg": 681 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Imbue", + "fullName": "Imbue 10pt ExtraBold", + "postscriptName": "Imbue10pt-ExtraBold", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 714, + "subsets": { + "latin": { + "xWidthAvg": 714 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "900": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Black", + "postscriptName": "Imbue10pt-Black", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 748, + "subsets": { + "latin": { + "xWidthAvg": 748 + }, + "thai": { + "xWidthAvg": 609 + } + } + }, + "regular": { + "familyName": "Imbue", + "fullName": "Imbue 10pt Regular", + "postscriptName": "Imbue10pt-Regular", + "category": "serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1046, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 587 + } + } + } + } + }, + "imperialScript": { + "familyName": "Imperial Script", + "fullName": "Imperial Script Regular", + "postscriptName": "ImperialScript-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 880, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 325, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 494 + } + }, + "variants": { + "regular": { + "familyName": "Imperial Script", + "fullName": "Imperial Script Regular", + "postscriptName": "ImperialScript-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 880, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 325, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "imprima": { + "familyName": "Imprima", + "fullName": "Imprima Regular", + "postscriptName": "Imprima-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 919, + "descent": -239, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 602 + } + }, + "variants": { + "regular": { + "familyName": "Imprima", + "fullName": "Imprima Regular", + "postscriptName": "Imprima-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 919, + "descent": -239, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 602 + } + } + } + } + }, + "inclusiveSans": { + "familyName": "Inclusive Sans", + "fullName": "Inclusive Sans Regular", + "postscriptName": "InclusiveSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 648 + } + }, + "variants": { + "regular": { + "familyName": "Inclusive Sans", + "fullName": "Inclusive Sans Regular", + "postscriptName": "InclusiveSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "italic": { + "familyName": "Inclusive Sans", + "fullName": "Inclusive Sans Italic", + "postscriptName": "InclusiveSans-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 648 + } + } + } + } + }, + "inconsolata": { + "familyName": "Inconsolata", + "fullName": "Inconsolata Regular", + "postscriptName": "Inconsolata-Regular", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Inconsolata", + "fullName": "Inconsolata ExtraLight", + "postscriptName": "Inconsolata-ExtraLight", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Inconsolata", + "fullName": "Inconsolata Light", + "postscriptName": "Inconsolata-Light", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Inconsolata", + "fullName": "Inconsolata Medium", + "postscriptName": "Inconsolata-Medium", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Inconsolata", + "fullName": "Inconsolata SemiBold", + "postscriptName": "Inconsolata-SemiBold", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Inconsolata", + "fullName": "Inconsolata Bold", + "postscriptName": "Inconsolata-Bold", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Inconsolata", + "fullName": "Inconsolata ExtraBold", + "postscriptName": "Inconsolata-ExtraBold", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Inconsolata", + "fullName": "Inconsolata Black", + "postscriptName": "Inconsolata-Black", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Inconsolata", + "fullName": "Inconsolata Regular", + "postscriptName": "Inconsolata-Regular", + "category": "monospace", + "capHeight": 623, + "ascent": 859, + "descent": -190, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "inder": { + "familyName": "Inder", + "fullName": "Inder", + "postscriptName": "Inder-Regular", + "category": "sans-serif", + "capHeight": 1392, + "ascent": 2040, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1032, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 682 + } + }, + "variants": { + "regular": { + "familyName": "Inder", + "fullName": "Inder", + "postscriptName": "Inder-Regular", + "category": "sans-serif", + "capHeight": 1392, + "ascent": 2040, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1032, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 682 + } + } + } + } + }, + "indieFlower": { + "familyName": "Indie Flower", + "fullName": "Indie Flower", + "postscriptName": "IndieFlower", + "category": "handwriting", + "capHeight": 587, + "ascent": 994, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 374, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 384 + } + }, + "variants": { + "regular": { + "familyName": "Indie Flower", + "fullName": "Indie Flower", + "postscriptName": "IndieFlower", + "category": "handwriting", + "capHeight": 587, + "ascent": 994, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 374, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 384 + } + } + } + } + }, + "ingridDarling": { + "familyName": "Ingrid Darling", + "fullName": "Ingrid Darling Regular", + "postscriptName": "IngridDarling-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 860, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 255, + "subsets": { + "latin": { + "xWidthAvg": 255 + }, + "thai": { + "xWidthAvg": 474 + } + }, + "variants": { + "regular": { + "familyName": "Ingrid Darling", + "fullName": "Ingrid Darling Regular", + "postscriptName": "IngridDarling-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 860, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 255, + "subsets": { + "latin": { + "xWidthAvg": 255 + }, + "thai": { + "xWidthAvg": 474 + } + } + } + } + }, + "inika": { + "familyName": "Inika", + "fullName": "Inika", + "postscriptName": "Inika", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -297, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 279 + } + }, + "variants": { + "700": { + "familyName": "Inika", + "fullName": "Inika Bold", + "postscriptName": "Inika-Bold", + "category": "serif", + "capHeight": 701, + "ascent": 1006, + "descent": -297, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Inika", + "fullName": "Inika", + "postscriptName": "Inika", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -297, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 279 + } + } + } + } + }, + "inknutAntiqua": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua Regular", + "postscriptName": "InknutAntiqua-Regular", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 1396 + } + }, + "variants": { + "300": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua Light", + "postscriptName": "InknutAntiqua-Light", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "500": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua Medium", + "postscriptName": "InknutAntiqua-Medium", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "600": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua SemiBold", + "postscriptName": "InknutAntiqua-SemiBold", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 566, + "subsets": { + "latin": { + "xWidthAvg": 566 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "700": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua Bold", + "postscriptName": "InknutAntiqua-Bold", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "800": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua ExtraBold", + "postscriptName": "InknutAntiqua-ExtraBold", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 586, + "subsets": { + "latin": { + "xWidthAvg": 586 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "900": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua Black", + "postscriptName": "InknutAntiqua-Black", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 593, + "subsets": { + "latin": { + "xWidthAvg": 593 + }, + "thai": { + "xWidthAvg": 1396 + } + } + }, + "regular": { + "familyName": "Inknut Antiqua", + "fullName": "Inknut Antiqua Regular", + "postscriptName": "InknutAntiqua-Regular", + "category": "serif", + "capHeight": 786, + "ascent": 1703, + "descent": -876, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 1396 + } + } + } + } + }, + "inriaSans": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Regular", + "postscriptName": "InriaSans-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 684 + } + }, + "variants": { + "300": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Light", + "postscriptName": "InriaSans-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 716 + } + } + }, + "700": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Bold", + "postscriptName": "InriaSans-Bold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "regular": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Regular", + "postscriptName": "InriaSans-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "italic": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Italic", + "postscriptName": "InriaSans-Italic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "700italic": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Bold Italic", + "postscriptName": "InriaSans-BoldItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "300italic": { + "familyName": "Inria Sans", + "fullName": "Inria Sans Light Italic", + "postscriptName": "InriaSans-LightItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 716 + } + } + } + } + }, + "inriaSerif": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Regular", + "postscriptName": "InriaSerif-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 657 + } + }, + "variants": { + "300": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Light", + "postscriptName": "InriaSerif-Light", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "700": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Bold", + "postscriptName": "InriaSerif-Bold", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "regular": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Regular", + "postscriptName": "InriaSerif-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "italic": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Italic", + "postscriptName": "InriaSerif-Italic", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 657 + } + } + }, + "700italic": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Bold Italic", + "postscriptName": "InriaSerif-BoldItalic", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "300italic": { + "familyName": "Inria Serif", + "fullName": "Inria Serif Light Italic", + "postscriptName": "InriaSerif-LightItalic", + "category": "serif", + "capHeight": 680, + "ascent": 976, + "descent": -223, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 658 + } + } + } + } + }, + "inspiration": { + "familyName": "Inspiration", + "fullName": "Inspiration Regular", + "postscriptName": "Inspiration-Regular", + "category": "handwriting", + "capHeight": 680, + "ascent": 870, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 340, + "xWidthAvg": 252, + "subsets": { + "latin": { + "xWidthAvg": 252 + }, + "thai": { + "xWidthAvg": 558 + } + }, + "variants": { + "regular": { + "familyName": "Inspiration", + "fullName": "Inspiration Regular", + "postscriptName": "Inspiration-Regular", + "category": "handwriting", + "capHeight": 680, + "ascent": 870, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 340, + "xWidthAvg": 252, + "subsets": { + "latin": { + "xWidthAvg": 252 + }, + "thai": { + "xWidthAvg": 558 + } + } + } + } + }, + "instrumentSans": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Regular", + "postscriptName": "InstrumentSans-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 676 + } + }, + "variants": { + "500": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Medium", + "postscriptName": "InstrumentSans-Medium", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 671 + } + } + }, + "600": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans SemiBold", + "postscriptName": "InstrumentSans-SemiBold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 665 + } + } + }, + "700": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Bold", + "postscriptName": "InstrumentSans-Bold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "regular": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Regular", + "postscriptName": "InstrumentSans-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 676 + } + } + }, + "italic": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Italic", + "postscriptName": "InstrumentSans-Italic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 676 + } + } + }, + "700italic": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Bold Italic", + "postscriptName": "InstrumentSans-BoldItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 660 + } + } + }, + "600italic": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans SemiBold Italic", + "postscriptName": "InstrumentSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 665 + } + } + }, + "500italic": { + "familyName": "Instrument Sans", + "fullName": "Instrument Sans Medium Italic", + "postscriptName": "InstrumentSans-MediumItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 970, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 671 + } + } + } + } + }, + "instrumentSerif": { + "familyName": "Instrument Serif", + "fullName": "Instrument Serif Regular", + "postscriptName": "InstrumentSerif-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 990, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 602 + } + }, + "variants": { + "regular": { + "familyName": "Instrument Serif", + "fullName": "Instrument Serif Regular", + "postscriptName": "InstrumentSerif-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 990, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 341, + "subsets": { + "latin": { + "xWidthAvg": 341 + }, + "thai": { + "xWidthAvg": 602 + } + } + }, + "italic": { + "familyName": "Instrument Serif", + "fullName": "Instrument Serif Italic", + "postscriptName": "InstrumentSerif-Italic", + "category": "serif", + "capHeight": 720, + "ascent": 990, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 359, + "subsets": { + "latin": { + "xWidthAvg": 359 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "inter": { + "familyName": "Inter", + "fullName": "Inter Regular", + "postscriptName": "Inter-Regular", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1344 + } + }, + "variants": { + "100": { + "familyName": "Inter", + "fullName": "Inter Thin", + "postscriptName": "Inter-Thin", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 925, + "subsets": { + "latin": { + "xWidthAvg": 925 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "200": { + "familyName": "Inter", + "fullName": "Inter ExtraLight", + "postscriptName": "Inter-ExtraLight", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 942, + "subsets": { + "latin": { + "xWidthAvg": 942 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "300": { + "familyName": "Inter", + "fullName": "Inter Light", + "postscriptName": "Inter-Light", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "500": { + "familyName": "Inter", + "fullName": "Inter Medium", + "postscriptName": "Inter-Medium", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 988, + "subsets": { + "latin": { + "xWidthAvg": 988 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "600": { + "familyName": "Inter", + "fullName": "Inter SemiBold", + "postscriptName": "Inter-SemiBold", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "700": { + "familyName": "Inter", + "fullName": "Inter Bold", + "postscriptName": "Inter-Bold", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1008, + "subsets": { + "latin": { + "xWidthAvg": 1008 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "800": { + "familyName": "Inter", + "fullName": "Inter ExtraBold", + "postscriptName": "Inter-ExtraBold", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1021, + "subsets": { + "latin": { + "xWidthAvg": 1021 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "900": { + "familyName": "Inter", + "fullName": "Inter Black", + "postscriptName": "Inter-Black", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1035, + "subsets": { + "latin": { + "xWidthAvg": 1035 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "regular": { + "familyName": "Inter", + "fullName": "Inter Regular", + "postscriptName": "Inter-Regular", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "italic": { + "familyName": "Inter", + "fullName": "Inter Italic", + "postscriptName": "Inter-Italic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "900italic": { + "familyName": "Inter", + "fullName": "Inter Black Italic", + "postscriptName": "Inter-BlackItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1041, + "subsets": { + "latin": { + "xWidthAvg": 1041 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "800italic": { + "familyName": "Inter", + "fullName": "Inter ExtraBold Italic", + "postscriptName": "Inter-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1027, + "subsets": { + "latin": { + "xWidthAvg": 1027 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "700italic": { + "familyName": "Inter", + "fullName": "Inter Bold Italic", + "postscriptName": "Inter-BoldItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1015, + "subsets": { + "latin": { + "xWidthAvg": 1015 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "600italic": { + "familyName": "Inter", + "fullName": "Inter SemiBold Italic", + "postscriptName": "Inter-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 1005, + "subsets": { + "latin": { + "xWidthAvg": 1005 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "500italic": { + "familyName": "Inter", + "fullName": "Inter Medium Italic", + "postscriptName": "Inter-MediumItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "300italic": { + "familyName": "Inter", + "fullName": "Inter Light Italic", + "postscriptName": "Inter-LightItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 965, + "subsets": { + "latin": { + "xWidthAvg": 965 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "200italic": { + "familyName": "Inter", + "fullName": "Inter ExtraLight Italic", + "postscriptName": "Inter-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 947, + "subsets": { + "latin": { + "xWidthAvg": 947 + }, + "thai": { + "xWidthAvg": 1344 + } + } + }, + "100italic": { + "familyName": "Inter", + "fullName": "Inter Thin Italic", + "postscriptName": "Inter-ThinItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1344 + } + } + } + } + }, + "interTight": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Regular", + "postscriptName": "InterTight-Regular", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 880, + "subsets": { + "latin": { + "xWidthAvg": 880 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Thin", + "postscriptName": "InterTight-Thin", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 937, + "subsets": { + "latin": { + "xWidthAvg": 937 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "200": { + "familyName": "Inter Tight", + "fullName": "Inter Tight ExtraLight", + "postscriptName": "InterTight-ExtraLight", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Light", + "postscriptName": "InterTight-Light", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "500": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Medium", + "postscriptName": "InterTight-Medium", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600": { + "familyName": "Inter Tight", + "fullName": "Inter Tight SemiBold", + "postscriptName": "InterTight-SemiBold", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Bold", + "postscriptName": "InterTight-Bold", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "800": { + "familyName": "Inter Tight", + "fullName": "Inter Tight ExtraBold", + "postscriptName": "InterTight-ExtraBold", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 965, + "subsets": { + "latin": { + "xWidthAvg": 965 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Black", + "postscriptName": "InterTight-Black", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 986, + "subsets": { + "latin": { + "xWidthAvg": 986 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Regular", + "postscriptName": "InterTight-Regular", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 880, + "subsets": { + "latin": { + "xWidthAvg": 880 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Italic", + "postscriptName": "InterTight-Italic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 881, + "subsets": { + "latin": { + "xWidthAvg": 881 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Black Italic", + "postscriptName": "InterTight-BlackItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 986, + "subsets": { + "latin": { + "xWidthAvg": 986 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "800italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight ExtraBold Italic", + "postscriptName": "InterTight-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 965, + "subsets": { + "latin": { + "xWidthAvg": 965 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Bold Italic", + "postscriptName": "InterTight-BoldItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight SemiBold Italic", + "postscriptName": "InterTight-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "500italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Medium Italic", + "postscriptName": "InterTight-MediumItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Light Italic", + "postscriptName": "InterTight-LightItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "200italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight ExtraLight Italic", + "postscriptName": "InterTight-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "100italic": { + "familyName": "Inter Tight", + "fullName": "Inter Tight Thin Italic", + "postscriptName": "InterTight-ThinItalic", + "category": "sans-serif", + "capHeight": 1490, + "ascent": 1984, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 937, + "subsets": { + "latin": { + "xWidthAvg": 937 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "irishGrover": { + "familyName": "Irish Grover", + "fullName": "Irish Grover Regular", + "postscriptName": "IrishGrover-Regular", + "category": "display", + "capHeight": 731, + "ascent": 965, + "descent": -246, + "lineGap": 27, + "unitsPerEm": 1024, + "xHeight": 573, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 328 + } + }, + "variants": { + "regular": { + "familyName": "Irish Grover", + "fullName": "Irish Grover Regular", + "postscriptName": "IrishGrover-Regular", + "category": "display", + "capHeight": 731, + "ascent": 965, + "descent": -246, + "lineGap": 27, + "unitsPerEm": 1024, + "xHeight": 573, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 328 + } + } + } + } + }, + "islandMoments": { + "familyName": "Island Moments", + "fullName": "Island Moments Regular", + "postscriptName": "IslandMoments-Regular", + "category": "handwriting", + "capHeight": 480, + "ascent": 750, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 270, + "xWidthAvg": 288, + "subsets": { + "latin": { + "xWidthAvg": 288 + }, + "thai": { + "xWidthAvg": 494 + } + }, + "variants": { + "regular": { + "familyName": "Island Moments", + "fullName": "Island Moments Regular", + "postscriptName": "IslandMoments-Regular", + "category": "handwriting", + "capHeight": 480, + "ascent": 750, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 270, + "xWidthAvg": 288, + "subsets": { + "latin": { + "xWidthAvg": 288 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "istokWeb": { + "familyName": "Istok Web", + "fullName": "Istok Web Regular", + "postscriptName": "IstokWeb-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2061, + "descent": -887, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1240 + } + }, + "variants": { + "700": { + "familyName": "Istok Web", + "fullName": "Istok Web Bold", + "postscriptName": "IstokWeb-Bold", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2061, + "descent": -887, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 1260 + } + } + }, + "regular": { + "familyName": "Istok Web", + "fullName": "Istok Web Regular", + "postscriptName": "IstokWeb-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2061, + "descent": -887, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1240 + } + } + }, + "italic": { + "familyName": "Istok Web", + "fullName": "Istok Web Italic", + "postscriptName": "IstokWeb-Italic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2061, + "descent": -887, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 930, + "subsets": { + "latin": { + "xWidthAvg": 930 + }, + "thai": { + "xWidthAvg": 1240 + } + } + }, + "700italic": { + "familyName": "Istok Web", + "fullName": "Istok Web Bold Italic", + "postscriptName": "IstokWeb-BoldItalic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2061, + "descent": -887, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 930, + "subsets": { + "latin": { + "xWidthAvg": 930 + }, + "thai": { + "xWidthAvg": 1240 + } + } + } + } + }, + "italiana": { + "familyName": "Italiana", + "fullName": "Italiana", + "postscriptName": "Italiana-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 928, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Italiana", + "fullName": "Italiana", + "postscriptName": "Italiana-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 928, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "italianno": { + "familyName": "Italianno", + "fullName": "Italianno Regular", + "postscriptName": "Italianno-Regular", + "category": "handwriting", + "capHeight": 577, + "ascent": 800, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 273, + "xWidthAvg": 266, + "subsets": { + "latin": { + "xWidthAvg": 266 + }, + "thai": { + "xWidthAvg": 398 + } + }, + "variants": { + "regular": { + "familyName": "Italianno", + "fullName": "Italianno Regular", + "postscriptName": "Italianno-Regular", + "category": "handwriting", + "capHeight": 577, + "ascent": 800, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 273, + "xWidthAvg": 266, + "subsets": { + "latin": { + "xWidthAvg": 266 + }, + "thai": { + "xWidthAvg": 398 + } + } + } + } + }, + "itim": { + "familyName": "Itim", + "fullName": "Itim", + "postscriptName": "Itim-Regular", + "category": "handwriting", + "capHeight": 635, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 534 + } + }, + "variants": { + "regular": { + "familyName": "Itim", + "fullName": "Itim", + "postscriptName": "Itim-Regular", + "category": "handwriting", + "capHeight": 635, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 534 + } + } + } + } + }, + "jacquard12": { + "familyName": "Jacquard 12", + "fullName": "Jacquard 12 Regular", + "postscriptName": "Jacquard12-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1260, + "xHeight": 480, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 540 + } + }, + "variants": { + "regular": { + "familyName": "Jacquard 12", + "fullName": "Jacquard 12 Regular", + "postscriptName": "Jacquard12-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1260, + "xHeight": 480, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 540 + } + } + } + } + }, + "jacquard12Charted": { + "familyName": "Jacquard 12 Charted", + "fullName": "Jacquard 12 Charted Regular", + "postscriptName": "Jacquard12Charted-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1260, + "xHeight": 480, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Jacquard 12 Charted", + "fullName": "Jacquard 12 Charted Regular", + "postscriptName": "Jacquard12Charted-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1260, + "xHeight": 480, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "jacquard24": { + "familyName": "Jacquard 24", + "fullName": "Jacquard 24 Regular", + "postscriptName": "Jacquard24-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1020, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1290, + "xHeight": 510, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 330 + } + }, + "variants": { + "regular": { + "familyName": "Jacquard 24", + "fullName": "Jacquard 24 Regular", + "postscriptName": "Jacquard24-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1020, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1290, + "xHeight": 510, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 330 + } + } + } + } + }, + "jacquard24Charted": { + "familyName": "Jacquard 24 Charted", + "fullName": "Jacquard 24 Charted Regular", + "postscriptName": "Jacquard24Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1020, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1290, + "xHeight": 510, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 330 + } + }, + "variants": { + "regular": { + "familyName": "Jacquard 24 Charted", + "fullName": "Jacquard 24 Charted Regular", + "postscriptName": "Jacquard24Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1020, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1290, + "xHeight": 510, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 330 + } + } + } + } + }, + "jacquardaBastarda9": { + "familyName": "Jacquarda Bastarda 9", + "fullName": "Jacquarda Bastarda 9 Regular", + "postscriptName": "JacquardaBastarda9-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1045, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 480, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 560 + } + }, + "variants": { + "regular": { + "familyName": "Jacquarda Bastarda 9", + "fullName": "Jacquarda Bastarda 9 Regular", + "postscriptName": "JacquardaBastarda9-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1045, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 480, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 560 + } + } + } + } + }, + "jacquardaBastarda9Charted": { + "familyName": "Jacquarda Bastarda 9 Charted", + "fullName": "Jacquarda Bastarda 9 Charted Regular", + "postscriptName": "JacquardaBastarda9Charted-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1045, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 480, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Jacquarda Bastarda 9 Charted", + "fullName": "Jacquarda Bastarda 9 Charted Regular", + "postscriptName": "JacquardaBastarda9Charted-Regular", + "category": "display", + "capHeight": 720, + "ascent": 1045, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 480, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "jacquesFrancois": { + "familyName": "Jacques Francois", + "fullName": "Jacques Francois", + "postscriptName": "JacquesFrancois-Regular", + "category": "serif", + "capHeight": 1464, + "ascent": 2095, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 879, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Jacques Francois", + "fullName": "Jacques Francois", + "postscriptName": "JacquesFrancois-Regular", + "category": "serif", + "capHeight": 1464, + "ascent": 2095, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 879, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "jacquesFrancoisShadow": { + "familyName": "Jacques Francois Shadow", + "fullName": "Jacques Francois Shadow", + "postscriptName": "JacquesFrancoisShadow-Regular", + "category": "display", + "capHeight": 1513, + "ascent": 2095, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 1039, + "subsets": { + "latin": { + "xWidthAvg": 1039 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Jacques Francois Shadow", + "fullName": "Jacques Francois Shadow", + "postscriptName": "JacquesFrancoisShadow-Regular", + "category": "display", + "capHeight": 1513, + "ascent": 2095, + "descent": -606, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 1039, + "subsets": { + "latin": { + "xWidthAvg": 1039 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "jaini": { + "familyName": "Jaini", + "fullName": "Jaini Regular", + "postscriptName": "Jaini-Regular", + "category": "display", + "capHeight": 639, + "ascent": 1048, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 535 + } + }, + "variants": { + "regular": { + "familyName": "Jaini", + "fullName": "Jaini Regular", + "postscriptName": "Jaini-Regular", + "category": "display", + "capHeight": 639, + "ascent": 1048, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 535 + } + } + } + } + }, + "jainiPurva": { + "familyName": "Jaini Purva", + "fullName": "Jaini Purva Regular", + "postscriptName": "JainiPurva-Regular", + "category": "display", + "capHeight": 639, + "ascent": 1048, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 535 + } + }, + "variants": { + "regular": { + "familyName": "Jaini Purva", + "fullName": "Jaini Purva Regular", + "postscriptName": "JainiPurva-Regular", + "category": "display", + "capHeight": 639, + "ascent": 1048, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 342, + "subsets": { + "latin": { + "xWidthAvg": 342 + }, + "thai": { + "xWidthAvg": 535 + } + } + } + } + }, + "jaldi": { + "familyName": "Jaldi", + "fullName": "Jaldi", + "postscriptName": "Jaldi-Regular", + "category": "sans-serif", + "capHeight": 1243, + "ascent": 2350, + "descent": -1111, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 786, + "subsets": { + "latin": { + "xWidthAvg": 786 + }, + "thai": { + "xWidthAvg": 914 + } + }, + "variants": { + "700": { + "familyName": "Jaldi", + "fullName": "Jaldi Bold", + "postscriptName": "Jaldi-Bold", + "category": "sans-serif", + "capHeight": 1243, + "ascent": 2350, + "descent": -1111, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 786, + "subsets": { + "latin": { + "xWidthAvg": 786 + }, + "thai": { + "xWidthAvg": 914 + } + } + }, + "regular": { + "familyName": "Jaldi", + "fullName": "Jaldi", + "postscriptName": "Jaldi-Regular", + "category": "sans-serif", + "capHeight": 1243, + "ascent": 2350, + "descent": -1111, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 786, + "subsets": { + "latin": { + "xWidthAvg": 786 + }, + "thai": { + "xWidthAvg": 914 + } + } + } + } + }, + "jaro": { + "familyName": "Jaro", + "fullName": "Jaro Regular", + "postscriptName": "Jaro-Regular", + "category": "sans-serif", + "capHeight": 1333, + "ascent": 2000, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 809, + "subsets": { + "latin": { + "xWidthAvg": 809 + }, + "thai": { + "xWidthAvg": 1057 + } + }, + "variants": { + "regular": { + "familyName": "Jaro", + "fullName": "Jaro Regular", + "postscriptName": "Jaro-Regular", + "category": "sans-serif", + "capHeight": 1333, + "ascent": 2000, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 809, + "subsets": { + "latin": { + "xWidthAvg": 809 + }, + "thai": { + "xWidthAvg": 1057 + } + } + } + } + }, + "jersey10": { + "familyName": "Jersey 10", + "fullName": "Jersey 10 Regular", + "postscriptName": "Jersey10-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1125, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1400, + "xHeight": 600, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 10", + "fullName": "Jersey 10 Regular", + "postscriptName": "Jersey10-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1125, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1400, + "xHeight": 600, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "jersey10Charted": { + "familyName": "Jersey 10 Charted", + "fullName": "Jersey 10 Charted Regular", + "postscriptName": "Jersey10Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1125, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1400, + "xHeight": 600, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 10 Charted", + "fullName": "Jersey 10 Charted Regular", + "postscriptName": "Jersey10Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1125, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1400, + "xHeight": 600, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "jersey15": { + "familyName": "Jersey 15", + "fullName": "Jersey 15 Regular", + "postscriptName": "Jersey15-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1050, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1350, + "xHeight": 550, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 15", + "fullName": "Jersey 15 Regular", + "postscriptName": "Jersey15-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1050, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1350, + "xHeight": 550, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "jersey15Charted": { + "familyName": "Jersey 15 Charted", + "fullName": "Jersey 15 Charted Regular", + "postscriptName": "Jersey15Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1050, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1350, + "xHeight": 550, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 15 Charted", + "fullName": "Jersey 15 Charted Regular", + "postscriptName": "Jersey15Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1050, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1350, + "xHeight": 550, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "jersey20": { + "familyName": "Jersey 20", + "fullName": "Jersey 20 Regular", + "postscriptName": "Jersey20-Regular", + "category": "display", + "capHeight": 760, + "ascent": 1026, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1292, + "xHeight": 570, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 20", + "fullName": "Jersey 20 Regular", + "postscriptName": "Jersey20-Regular", + "category": "display", + "capHeight": 760, + "ascent": 1026, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1292, + "xHeight": 570, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "jersey20Charted": { + "familyName": "Jersey 20 Charted", + "fullName": "Jersey 20 Charted Regular", + "postscriptName": "Jersey20Charted-Regular", + "category": "display", + "capHeight": 760, + "ascent": 1026, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1292, + "xHeight": 570, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 20 Charted", + "fullName": "Jersey 20 Charted Regular", + "postscriptName": "Jersey20Charted-Regular", + "category": "display", + "capHeight": 760, + "ascent": 1026, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1292, + "xHeight": 570, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "jersey25": { + "familyName": "Jersey 25", + "fullName": "Jersey 25 Regular", + "postscriptName": "Jersey25-Regular", + "category": "display", + "capHeight": 750, + "ascent": 988, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1230, + "xHeight": 570, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 25", + "fullName": "Jersey 25 Regular", + "postscriptName": "Jersey25-Regular", + "category": "display", + "capHeight": 750, + "ascent": 988, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1230, + "xHeight": 570, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "jersey25Charted": { + "familyName": "Jersey 25 Charted", + "fullName": "Jersey 25 Charted Regular", + "postscriptName": "Jersey25Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 988, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1230, + "xHeight": 570, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Jersey 25 Charted", + "fullName": "Jersey 25 Charted Regular", + "postscriptName": "Jersey25Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 988, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1230, + "xHeight": 570, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "jetBrainsMono": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Regular", + "postscriptName": "JetBrainsMono-Regular", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Thin", + "postscriptName": "JetBrainsMono-Thin", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono ExtraLight", + "postscriptName": "JetBrainsMono-ExtraLight", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Light", + "postscriptName": "JetBrainsMono-Light", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Medium", + "postscriptName": "JetBrainsMono-Medium", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono SemiBold", + "postscriptName": "JetBrainsMono-SemiBold", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Bold", + "postscriptName": "JetBrainsMono-Bold", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono ExtraBold", + "postscriptName": "JetBrainsMono-ExtraBold", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Regular", + "postscriptName": "JetBrainsMono-Regular", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Italic", + "postscriptName": "JetBrainsMono-Italic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono ExtraBold Italic", + "postscriptName": "JetBrainsMono-ExtraBoldItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Bold Italic", + "postscriptName": "JetBrainsMono-BoldItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono SemiBold Italic", + "postscriptName": "JetBrainsMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Medium Italic", + "postscriptName": "JetBrainsMono-MediumItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Light Italic", + "postscriptName": "JetBrainsMono-LightItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono ExtraLight Italic", + "postscriptName": "JetBrainsMono-ExtraLightItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "JetBrains Mono", + "fullName": "JetBrains Mono Thin Italic", + "postscriptName": "JetBrainsMono-ThinItalic", + "category": "monospace", + "capHeight": 730, + "ascent": 1020, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "jimNightshade": { + "familyName": "Jim Nightshade", + "fullName": "Jim Nightshade", + "postscriptName": "JimNightshade-Regular", + "category": "handwriting", + "capHeight": 1234, + "ascent": 1852, + "descent": -1050, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 623, + "subsets": { + "latin": { + "xWidthAvg": 623 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Jim Nightshade", + "fullName": "Jim Nightshade", + "postscriptName": "JimNightshade-Regular", + "category": "handwriting", + "capHeight": 1234, + "ascent": 1852, + "descent": -1050, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 930, + "xWidthAvg": 623, + "subsets": { + "latin": { + "xWidthAvg": 623 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "joan": { + "familyName": "Joan", + "fullName": "Joan Regular", + "postscriptName": "Joan-Regular", + "category": "serif", + "capHeight": 707, + "ascent": 1000, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 742 + } + }, + "variants": { + "regular": { + "familyName": "Joan", + "fullName": "Joan Regular", + "postscriptName": "Joan-Regular", + "category": "serif", + "capHeight": 707, + "ascent": 1000, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 742 + } + } + } + } + }, + "jockeyOne": { + "familyName": "Jockey One", + "fullName": "Jockey One", + "postscriptName": "JockeyOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1079, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Jockey One", + "fullName": "Jockey One", + "postscriptName": "JockeyOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1079, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "jollyLodger": { + "familyName": "Jolly Lodger", + "fullName": "Jolly Lodger", + "postscriptName": "JollyLodger", + "category": "display", + "capHeight": 757, + "ascent": 988, + "descent": -257, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 642, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 195 + } + }, + "variants": { + "regular": { + "familyName": "Jolly Lodger", + "fullName": "Jolly Lodger", + "postscriptName": "JollyLodger", + "category": "display", + "capHeight": 757, + "ascent": 988, + "descent": -257, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 642, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 195 + } + } + } + } + }, + "jomhuria": { + "familyName": "Jomhuria", + "fullName": "Jomhuria", + "postscriptName": "Jomhuria-Regular", + "category": "display", + "capHeight": 1172, + "ascent": 1840, + "descent": -1160, + "lineGap": 0, + "unitsPerEm": 3000, + "xHeight": 850, + "xWidthAvg": 739, + "subsets": { + "latin": { + "xWidthAvg": 739 + }, + "thai": { + "xWidthAvg": 1100 + } + }, + "variants": { + "regular": { + "familyName": "Jomhuria", + "fullName": "Jomhuria", + "postscriptName": "Jomhuria-Regular", + "category": "display", + "capHeight": 1172, + "ascent": 1840, + "descent": -1160, + "lineGap": 0, + "unitsPerEm": 3000, + "xHeight": 850, + "xWidthAvg": 739, + "subsets": { + "latin": { + "xWidthAvg": 739 + }, + "thai": { + "xWidthAvg": 1100 + } + } + } + } + }, + "jomolhari": { + "familyName": "Jomolhari", + "fullName": "Jomolhari Regular", + "postscriptName": "Jomolhari-Regular", + "category": "serif", + "capHeight": 756, + "ascent": 1248, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 360, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 720 + } + }, + "variants": { + "regular": { + "familyName": "Jomolhari", + "fullName": "Jomolhari Regular", + "postscriptName": "Jomolhari-Regular", + "category": "serif", + "capHeight": 756, + "ascent": 1248, + "descent": -392, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 360, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 720 + } + } + } + } + }, + "josefinSans": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Regular", + "postscriptName": "JosefinSans-Regular", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "100": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Thin", + "postscriptName": "JosefinSans-Thin", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "200": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans ExtraLight", + "postscriptName": "JosefinSans-ExtraLight", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "300": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Light", + "postscriptName": "JosefinSans-Light", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "500": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Medium", + "postscriptName": "JosefinSans-Medium", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "600": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans SemiBold", + "postscriptName": "JosefinSans-SemiBold", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "700": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Bold", + "postscriptName": "JosefinSans-Bold", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "regular": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Regular", + "postscriptName": "JosefinSans-Regular", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Italic", + "postscriptName": "JosefinSans-Italic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "700italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Bold Italic", + "postscriptName": "JosefinSans-BoldItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "600italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans SemiBold Italic", + "postscriptName": "JosefinSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "500italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Medium Italic", + "postscriptName": "JosefinSans-MediumItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "300italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Light Italic", + "postscriptName": "JosefinSans-LightItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "200italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans ExtraLight Italic", + "postscriptName": "JosefinSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "100italic": { + "familyName": "Josefin Sans", + "fullName": "Josefin Sans Thin Italic", + "postscriptName": "JosefinSans-ThinItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 378, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "josefinSlab": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Regular", + "postscriptName": "JosefinSlab-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "100": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Thin", + "postscriptName": "JosefinSlab-Thin", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "200": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab ExtraLight", + "postscriptName": "JosefinSlab-ExtraLight", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "300": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Light", + "postscriptName": "JosefinSlab-Light", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "500": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Medium", + "postscriptName": "JosefinSlab-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "600": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab SemiBold", + "postscriptName": "JosefinSlab-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "700": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Bold", + "postscriptName": "JosefinSlab-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "regular": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Regular", + "postscriptName": "JosefinSlab-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Italic", + "postscriptName": "JosefinSlab-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "700italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Bold Italic", + "postscriptName": "JosefinSlab-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "600italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab SemiBold Italic", + "postscriptName": "JosefinSlab-SemiBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "500italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Medium Italic", + "postscriptName": "JosefinSlab-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "300italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Light Italic", + "postscriptName": "JosefinSlab-LightItalic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "200italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab ExtraLight Italic", + "postscriptName": "JosefinSlab-ExtraLightItalic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 300 + } + } + }, + "100italic": { + "familyName": "Josefin Slab", + "fullName": "Josefin Slab Thin Italic", + "postscriptName": "JosefinSlab-ThinItalic", + "category": "serif", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "jost": { + "familyName": "Jost", + "fullName": "Jost Regular", + "postscriptName": "Jost-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Jost", + "fullName": "Jost Thin", + "postscriptName": "Jost-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Jost", + "fullName": "Jost ExtraLight", + "postscriptName": "Jost-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Jost", + "fullName": "Jost Light", + "postscriptName": "Jost-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Jost", + "fullName": "Jost Medium", + "postscriptName": "Jost-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Jost", + "fullName": "Jost SemiBold", + "postscriptName": "Jost-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Jost", + "fullName": "Jost Bold", + "postscriptName": "Jost-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Jost", + "fullName": "Jost ExtraBold", + "postscriptName": "Jost-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Jost", + "fullName": "Jost Black", + "postscriptName": "Jost-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Jost", + "fullName": "Jost Regular", + "postscriptName": "Jost-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Jost", + "fullName": "Jost Italic", + "postscriptName": "Jost-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Jost", + "fullName": "Jost Black Italic", + "postscriptName": "Jost-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Jost", + "fullName": "Jost ExtraBold Italic", + "postscriptName": "Jost-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Jost", + "fullName": "Jost Bold Italic", + "postscriptName": "Jost-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Jost", + "fullName": "Jost SemiBold Italic", + "postscriptName": "Jost-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Jost", + "fullName": "Jost Medium Italic", + "postscriptName": "Jost-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Jost", + "fullName": "Jost Light Italic", + "postscriptName": "Jost-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Jost", + "fullName": "Jost ExtraLight Italic", + "postscriptName": "Jost-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Jost", + "fullName": "Jost Thin Italic", + "postscriptName": "Jost-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "jotiOne": { + "familyName": "Joti One", + "fullName": "Joti One Regular", + "postscriptName": "JotiOne-Regular", + "category": "display", + "capHeight": 650, + "ascent": 1003, + "descent": -331, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 729 + } + }, + "variants": { + "regular": { + "familyName": "Joti One", + "fullName": "Joti One Regular", + "postscriptName": "JotiOne-Regular", + "category": "display", + "capHeight": 650, + "ascent": 1003, + "descent": -331, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 729 + } + } + } + } + }, + "jua": { + "familyName": "Jua", + "fullName": "Jua Regular", + "postscriptName": "Jua-Regular", + "category": "sans-serif", + "capHeight": 711, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 432, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 719 + } + }, + "variants": { + "regular": { + "familyName": "Jua", + "fullName": "Jua Regular", + "postscriptName": "Jua-Regular", + "category": "sans-serif", + "capHeight": 711, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 432, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 719 + } + } + } + } + }, + "judson": { + "familyName": "Judson", + "fullName": "Judson Regular", + "postscriptName": "Judson-Regular", + "category": "serif", + "capHeight": 585, + "ascent": 902, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Judson", + "fullName": "Judson Bold", + "postscriptName": "Judson-Bold", + "category": "serif", + "capHeight": 585, + "ascent": 908, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "regular": { + "familyName": "Judson", + "fullName": "Judson Regular", + "postscriptName": "Judson-Regular", + "category": "serif", + "capHeight": 585, + "ascent": 902, + "descent": -248, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Judson", + "fullName": "Judson Italic", + "postscriptName": "Judson-Italic", + "category": "serif", + "capHeight": 585, + "ascent": 902, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "julee": { + "familyName": "Julee", + "fullName": "Julee Regular", + "postscriptName": "Julee-Regular", + "category": "handwriting", + "capHeight": 206, + "ascent": 894, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 153, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 535 + } + }, + "variants": { + "regular": { + "familyName": "Julee", + "fullName": "Julee Regular", + "postscriptName": "Julee-Regular", + "category": "handwriting", + "capHeight": 206, + "ascent": 894, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 153, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 535 + } + } + } + } + }, + "juliusSansOne": { + "familyName": "Julius Sans One", + "fullName": "Julius Sans One", + "postscriptName": "JuliusSansOne-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 863, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 649, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 260 + } + }, + "variants": { + "regular": { + "familyName": "Julius Sans One", + "fullName": "Julius Sans One", + "postscriptName": "JuliusSansOne-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 863, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 649, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 260 + } + } + } + } + }, + "junge": { + "familyName": "Junge", + "fullName": "Junge", + "postscriptName": "Junge-Regular", + "category": "serif", + "capHeight": 1444, + "ascent": 1901, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1010, + "xWidthAvg": 961, + "subsets": { + "latin": { + "xWidthAvg": 961 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Junge", + "fullName": "Junge", + "postscriptName": "Junge-Regular", + "category": "serif", + "capHeight": 1444, + "ascent": 1901, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1010, + "xWidthAvg": 961, + "subsets": { + "latin": { + "xWidthAvg": 961 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "jura": { + "familyName": "Jura", + "fullName": "Jura Regular", + "postscriptName": "Jura-Regular", + "category": "sans-serif", + "capHeight": 1266, + "ascent": 1930, + "descent": -436, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 922, + "xWidthAvg": 951, + "subsets": { + "latin": { + "xWidthAvg": 951 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "Jura", + "fullName": "Jura Light", + "postscriptName": "Jura-Light", + "category": "sans-serif", + "capHeight": 1266, + "ascent": 1930, + "descent": -436, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 922, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Jura", + "fullName": "Jura Medium", + "postscriptName": "Jura-Medium", + "category": "sans-serif", + "capHeight": 1266, + "ascent": 1930, + "descent": -436, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 922, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Jura", + "fullName": "Jura SemiBold", + "postscriptName": "Jura-SemiBold", + "category": "sans-serif", + "capHeight": 1266, + "ascent": 1930, + "descent": -436, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 922, + "xWidthAvg": 1018, + "subsets": { + "latin": { + "xWidthAvg": 1018 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Jura", + "fullName": "Jura Bold", + "postscriptName": "Jura-Bold", + "category": "sans-serif", + "capHeight": 1266, + "ascent": 1930, + "descent": -436, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 922, + "xWidthAvg": 1051, + "subsets": { + "latin": { + "xWidthAvg": 1051 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Jura", + "fullName": "Jura Regular", + "postscriptName": "Jura-Regular", + "category": "sans-serif", + "capHeight": 1266, + "ascent": 1930, + "descent": -436, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 922, + "xWidthAvg": 951, + "subsets": { + "latin": { + "xWidthAvg": 951 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "justAnotherHand": { + "familyName": "Just Another Hand", + "fullName": "Just Another Hand Regular", + "postscriptName": "JustAnotherHand-Regular", + "category": "handwriting", + "capHeight": 1436, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 880, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Just Another Hand", + "fullName": "Just Another Hand Regular", + "postscriptName": "JustAnotherHand-Regular", + "category": "handwriting", + "capHeight": 1436, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 880, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "justMeAgainDownHere": { + "familyName": "Just Me Again Down Here", + "fullName": "Just Me Again Down Here", + "postscriptName": "JustMeAgainDownHere", + "category": "handwriting", + "capHeight": 600, + "ascent": 1069, + "descent": -429, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 289, + "xWidthAvg": 315, + "subsets": { + "latin": { + "xWidthAvg": 315 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "regular": { + "familyName": "Just Me Again Down Here", + "fullName": "Just Me Again Down Here", + "postscriptName": "JustMeAgainDownHere", + "category": "handwriting", + "capHeight": 600, + "ascent": 1069, + "descent": -429, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 289, + "xWidthAvg": 315, + "subsets": { + "latin": { + "xWidthAvg": 315 + }, + "thai": { + "xWidthAvg": 640 + } + } + } + } + }, + "k2D": { + "familyName": "K2D", + "fullName": "K2D Regular", + "postscriptName": "K2D-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 569 + } + }, + "variants": { + "100": { + "familyName": "K2D", + "fullName": "K2D Thin", + "postscriptName": "K2D-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "200": { + "familyName": "K2D", + "fullName": "K2D ExtraLight", + "postscriptName": "K2D-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "300": { + "familyName": "K2D", + "fullName": "K2D Light", + "postscriptName": "K2D-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 565 + } + } + }, + "500": { + "familyName": "K2D", + "fullName": "K2D Medium", + "postscriptName": "K2D-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 575 + } + } + }, + "600": { + "familyName": "K2D", + "fullName": "K2D SemiBold", + "postscriptName": "K2D-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 581 + } + } + }, + "700": { + "familyName": "K2D", + "fullName": "K2D Bold", + "postscriptName": "K2D-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "800": { + "familyName": "K2D", + "fullName": "K2D ExtraBold", + "postscriptName": "K2D-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 592 + } + } + }, + "regular": { + "familyName": "K2D", + "fullName": "K2D Regular", + "postscriptName": "K2D-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "italic": { + "familyName": "K2D", + "fullName": "K2D Italic", + "postscriptName": "K2D-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "800italic": { + "familyName": "K2D", + "fullName": "K2D ExtraBold Italic", + "postscriptName": "K2D-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 592 + } + } + }, + "700italic": { + "familyName": "K2D", + "fullName": "K2D Bold Italic", + "postscriptName": "K2D-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "600italic": { + "familyName": "K2D", + "fullName": "K2D SemiBold Italic", + "postscriptName": "K2D-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 581 + } + } + }, + "500italic": { + "familyName": "K2D", + "fullName": "K2D Medium Italic", + "postscriptName": "K2D-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 575 + } + } + }, + "300italic": { + "familyName": "K2D", + "fullName": "K2D Light Italic", + "postscriptName": "K2D-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 565 + } + } + }, + "200italic": { + "familyName": "K2D", + "fullName": "K2D ExtraLight Italic", + "postscriptName": "K2D-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "100italic": { + "familyName": "K2D", + "fullName": "K2D Thin Italic", + "postscriptName": "K2D-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1048, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 556 + } + } + } + } + }, + "kablammo": { + "familyName": "Kablammo", + "fullName": "Kablammo Regular", + "postscriptName": "Kablammo-Regular", + "category": "display", + "capHeight": 1400, + "ascent": 2078, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1252 + } + }, + "variants": { + "regular": { + "familyName": "Kablammo", + "fullName": "Kablammo Regular", + "postscriptName": "Kablammo-Regular", + "category": "display", + "capHeight": 1400, + "ascent": 2078, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1100, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1252 + } + } + } + } + }, + "kadwa": { + "familyName": "Kadwa", + "fullName": "Kadwa", + "postscriptName": "Kadwa-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 2691, + "descent": -1421, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 992, + "subsets": { + "latin": { + "xWidthAvg": 992 + }, + "thai": { + "xWidthAvg": 1228 + } + }, + "variants": { + "700": { + "familyName": "Kadwa", + "fullName": "Kadwa Bold", + "postscriptName": "Kadwa-Bold", + "category": "serif", + "capHeight": 1444, + "ascent": 2691, + "descent": -1421, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1106, + "xWidthAvg": 1040, + "subsets": { + "latin": { + "xWidthAvg": 1040 + }, + "thai": { + "xWidthAvg": 1228 + } + } + }, + "regular": { + "familyName": "Kadwa", + "fullName": "Kadwa", + "postscriptName": "Kadwa-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 2691, + "descent": -1421, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 992, + "subsets": { + "latin": { + "xWidthAvg": 992 + }, + "thai": { + "xWidthAvg": 1228 + } + } + } + } + }, + "kaiseiDecol": { + "familyName": "Kaisei Decol", + "fullName": "Kaisei Decol Regular", + "postscriptName": "KaiseiDecol-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Kaisei Decol", + "fullName": "Kaisei Decol Medium", + "postscriptName": "KaiseiDecol-Medium", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Kaisei Decol", + "fullName": "Kaisei Decol Bold", + "postscriptName": "KaiseiDecol-Bold", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Kaisei Decol", + "fullName": "Kaisei Decol Regular", + "postscriptName": "KaiseiDecol-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "kaiseiHarunoUmi": { + "familyName": "Kaisei HarunoUmi", + "fullName": "Kaisei HarunoUmi Regular", + "postscriptName": "KaiseiHarunoUmi-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Kaisei HarunoUmi", + "fullName": "Kaisei HarunoUmi Medium", + "postscriptName": "KaiseiHarunoUmi-Medium", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Kaisei HarunoUmi", + "fullName": "Kaisei HarunoUmi Bold", + "postscriptName": "KaiseiHarunoUmi-Bold", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Kaisei HarunoUmi", + "fullName": "Kaisei HarunoUmi Regular", + "postscriptName": "KaiseiHarunoUmi-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "kaiseiOpti": { + "familyName": "Kaisei Opti", + "fullName": "Kaisei Opti Regular", + "postscriptName": "KaiseiOpti-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Kaisei Opti", + "fullName": "Kaisei Opti Medium", + "postscriptName": "KaiseiOpti-Medium", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Kaisei Opti", + "fullName": "Kaisei Opti Bold", + "postscriptName": "KaiseiOpti-Bold", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Kaisei Opti", + "fullName": "Kaisei Opti Regular", + "postscriptName": "KaiseiOpti-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "kaiseiTokumin": { + "familyName": "Kaisei Tokumin", + "fullName": "Kaisei Tokumin Regular", + "postscriptName": "KaiseiTokumin-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Kaisei Tokumin", + "fullName": "Kaisei Tokumin Medium", + "postscriptName": "KaiseiTokumin-Medium", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Kaisei Tokumin", + "fullName": "Kaisei Tokumin Bold", + "postscriptName": "KaiseiTokumin-Bold", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Kaisei Tokumin", + "fullName": "Kaisei Tokumin ExtraBold", + "postscriptName": "KaiseiTokumin-ExtraBold", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Kaisei Tokumin", + "fullName": "Kaisei Tokumin Regular", + "postscriptName": "KaiseiTokumin-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "kalam": { + "familyName": "Kalam", + "fullName": "Kalam", + "postscriptName": "Kalam-Regular", + "category": "handwriting", + "capHeight": 739, + "ascent": 1063, + "descent": -531, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 752 + } + }, + "variants": { + "300": { + "familyName": "Kalam", + "fullName": "Kalam Light", + "postscriptName": "Kalam-Light", + "category": "handwriting", + "capHeight": 727, + "ascent": 1063, + "descent": -531, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "700": { + "familyName": "Kalam", + "fullName": "Kalam Bold", + "postscriptName": "Kalam-Bold", + "category": "handwriting", + "capHeight": 760, + "ascent": 1063, + "descent": -531, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Kalam", + "fullName": "Kalam", + "postscriptName": "Kalam-Regular", + "category": "handwriting", + "capHeight": 739, + "ascent": 1063, + "descent": -531, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 752 + } + } + } + } + }, + "kalnia": { + "familyName": "Kalnia", + "fullName": "Kalnia Regular", + "postscriptName": "Kalnia-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 540 + } + }, + "variants": { + "100": { + "familyName": "Kalnia", + "fullName": "Kalnia Thin", + "postscriptName": "Kalnia-Thin", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "200": { + "familyName": "Kalnia", + "fullName": "Kalnia ExtraLight", + "postscriptName": "Kalnia-ExtraLight", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "300": { + "familyName": "Kalnia", + "fullName": "Kalnia Light", + "postscriptName": "Kalnia-Light", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "500": { + "familyName": "Kalnia", + "fullName": "Kalnia Medium", + "postscriptName": "Kalnia-Medium", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "600": { + "familyName": "Kalnia", + "fullName": "Kalnia SemiBold", + "postscriptName": "Kalnia-SemiBold", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "700": { + "familyName": "Kalnia", + "fullName": "Kalnia Bold", + "postscriptName": "Kalnia-Bold", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "regular": { + "familyName": "Kalnia", + "fullName": "Kalnia Regular", + "postscriptName": "Kalnia-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 540 + } + } + } + } + }, + "kalniaGlaze": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze Regular", + "postscriptName": "KalniaGlaze-Regular", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 540 + } + }, + "variants": { + "100": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze Thin", + "postscriptName": "KalniaGlaze-Thin", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "200": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze ExtraLight", + "postscriptName": "KalniaGlaze-ExtraLight", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "300": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze Light", + "postscriptName": "KalniaGlaze-Light", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "500": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze Medium", + "postscriptName": "KalniaGlaze-Medium", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "600": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze SemiBold", + "postscriptName": "KalniaGlaze-SemiBold", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "700": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze Bold", + "postscriptName": "KalniaGlaze-Bold", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "regular": { + "familyName": "Kalnia Glaze", + "fullName": "Kalnia Glaze Regular", + "postscriptName": "KalniaGlaze-Regular", + "category": "display", + "capHeight": 708, + "ascent": 1045, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 540 + } + } + } + } + }, + "kameron": { + "familyName": "Kameron", + "fullName": "Kameron Regular", + "postscriptName": "Kameron-Regular", + "category": "serif", + "capHeight": 1290, + "ascent": 1823, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 895, + "xWidthAvg": 914, + "subsets": { + "latin": { + "xWidthAvg": 914 + }, + "thai": { + "xWidthAvg": 1297 + } + }, + "variants": { + "500": { + "familyName": "Kameron", + "fullName": "Kameron Medium", + "postscriptName": "Kameron-Medium", + "category": "serif", + "capHeight": 1296, + "ascent": 1823, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 899, + "xWidthAvg": 953, + "subsets": { + "latin": { + "xWidthAvg": 953 + }, + "thai": { + "xWidthAvg": 1330 + } + } + }, + "600": { + "familyName": "Kameron", + "fullName": "Kameron SemiBold", + "postscriptName": "Kameron-SemiBold", + "category": "serif", + "capHeight": 1302, + "ascent": 1823, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 904, + "xWidthAvg": 992, + "subsets": { + "latin": { + "xWidthAvg": 992 + }, + "thai": { + "xWidthAvg": 1364 + } + } + }, + "700": { + "familyName": "Kameron", + "fullName": "Kameron Bold", + "postscriptName": "Kameron-Bold", + "category": "serif", + "capHeight": 1308, + "ascent": 1823, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 908, + "xWidthAvg": 1031, + "subsets": { + "latin": { + "xWidthAvg": 1031 + }, + "thai": { + "xWidthAvg": 1397 + } + } + }, + "regular": { + "familyName": "Kameron", + "fullName": "Kameron Regular", + "postscriptName": "Kameron-Regular", + "category": "serif", + "capHeight": 1290, + "ascent": 1823, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 895, + "xWidthAvg": 914, + "subsets": { + "latin": { + "xWidthAvg": 914 + }, + "thai": { + "xWidthAvg": 1297 + } + } + } + } + }, + "kanit": { + "familyName": "Kanit", + "fullName": "Kanit Regular", + "postscriptName": "Kanit-Regular", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 550 + } + }, + "variants": { + "100": { + "familyName": "Kanit", + "fullName": "Kanit Thin", + "postscriptName": "Kanit-Thin", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "200": { + "familyName": "Kanit", + "fullName": "Kanit ExtraLight", + "postscriptName": "Kanit-ExtraLight", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 536 + } + } + }, + "300": { + "familyName": "Kanit", + "fullName": "Kanit Light", + "postscriptName": "Kanit-Light", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 544 + } + } + }, + "500": { + "familyName": "Kanit", + "fullName": "Kanit Medium", + "postscriptName": "Kanit-Medium", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "600": { + "familyName": "Kanit", + "fullName": "Kanit SemiBold", + "postscriptName": "Kanit-SemiBold", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "700": { + "familyName": "Kanit", + "fullName": "Kanit Bold", + "postscriptName": "Kanit-Bold", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "800": { + "familyName": "Kanit", + "fullName": "Kanit ExtraBold", + "postscriptName": "Kanit-ExtraBold", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 577 + } + } + }, + "900": { + "familyName": "Kanit", + "fullName": "Kanit Black", + "postscriptName": "Kanit-Black", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "regular": { + "familyName": "Kanit", + "fullName": "Kanit Regular", + "postscriptName": "Kanit-Regular", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 550 + } + } + }, + "italic": { + "familyName": "Kanit", + "fullName": "Kanit Italic", + "postscriptName": "Kanit-Italic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 549 + } + } + }, + "900italic": { + "familyName": "Kanit", + "fullName": "Kanit Black Italic", + "postscriptName": "Kanit-BlackItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800italic": { + "familyName": "Kanit", + "fullName": "Kanit ExtraBold Italic", + "postscriptName": "Kanit-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "700italic": { + "familyName": "Kanit", + "fullName": "Kanit Bold Italic", + "postscriptName": "Kanit-BoldItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "600italic": { + "familyName": "Kanit", + "fullName": "Kanit SemiBold Italic", + "postscriptName": "Kanit-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "500italic": { + "familyName": "Kanit", + "fullName": "Kanit Medium Italic", + "postscriptName": "Kanit-MediumItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "300italic": { + "familyName": "Kanit", + "fullName": "Kanit Light Italic", + "postscriptName": "Kanit-LightItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "200italic": { + "familyName": "Kanit", + "fullName": "Kanit ExtraLight Italic", + "postscriptName": "Kanit-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 536 + } + } + }, + "100italic": { + "familyName": "Kanit", + "fullName": "Kanit Thin Italic", + "postscriptName": "Kanit-ThinItalic", + "category": "sans-serif", + "capHeight": 644, + "ascent": 1100, + "descent": -395, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 525 + } + } + } + } + }, + "kantumruyPro": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Regular", + "postscriptName": "KantumruyPro-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Thin", + "postscriptName": "KantumruyPro-Thin", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro ExtraLight", + "postscriptName": "KantumruyPro-ExtraLight", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Light", + "postscriptName": "KantumruyPro-Light", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Medium", + "postscriptName": "KantumruyPro-Medium", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro SemiBold", + "postscriptName": "KantumruyPro-SemiBold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Bold", + "postscriptName": "KantumruyPro-Bold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Regular", + "postscriptName": "KantumruyPro-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Italic", + "postscriptName": "KantumruyPro-Italic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Bold Italic", + "postscriptName": "KantumruyPro-BoldItalic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro SemiBold Italic", + "postscriptName": "KantumruyPro-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Medium Italic", + "postscriptName": "KantumruyPro-MediumItalic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Light Italic", + "postscriptName": "KantumruyPro-LightItalic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro ExtraLight Italic", + "postscriptName": "KantumruyPro-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Kantumruy Pro", + "fullName": "Kantumruy Pro Thin Italic", + "postscriptName": "KantumruyPro-ThinItalic", + "category": "sans-serif", + "capHeight": 750, + "ascent": 920, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "karantina": { + "familyName": "Karantina", + "fullName": "Karantina Regular", + "postscriptName": "Karantina-Regular", + "category": "display", + "capHeight": 700, + "ascent": 859, + "descent": -153, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 257, + "subsets": { + "latin": { + "xWidthAvg": 257 + }, + "thai": { + "xWidthAvg": 435 + } + }, + "variants": { + "300": { + "familyName": "Karantina", + "fullName": "Karantina Light", + "postscriptName": "Karantina-Light", + "category": "display", + "capHeight": 700, + "ascent": 859, + "descent": -153, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 223, + "subsets": { + "latin": { + "xWidthAvg": 223 + }, + "thai": { + "xWidthAvg": 381 + } + } + }, + "700": { + "familyName": "Karantina", + "fullName": "Karantina Bold", + "postscriptName": "Karantina-Bold", + "category": "display", + "capHeight": 700, + "ascent": 859, + "descent": -153, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 318, + "subsets": { + "latin": { + "xWidthAvg": 318 + }, + "thai": { + "xWidthAvg": 435 + } + } + }, + "regular": { + "familyName": "Karantina", + "fullName": "Karantina Regular", + "postscriptName": "Karantina-Regular", + "category": "display", + "capHeight": 700, + "ascent": 859, + "descent": -153, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 257, + "subsets": { + "latin": { + "xWidthAvg": 257 + }, + "thai": { + "xWidthAvg": 435 + } + } + } + } + }, + "karla": { + "familyName": "Karla", + "fullName": "Karla Regular", + "postscriptName": "Karla-Regular", + "category": "sans-serif", + "capHeight": 1256, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 956, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1031 + } + }, + "variants": { + "200": { + "familyName": "Karla", + "fullName": "Karla ExtraLight", + "postscriptName": "Karla-ExtraLight", + "category": "sans-serif", + "capHeight": 1213, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 940, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "300": { + "familyName": "Karla", + "fullName": "Karla Light", + "postscriptName": "Karla-Light", + "category": "sans-serif", + "capHeight": 1235, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 948, + "xWidthAvg": 891, + "subsets": { + "latin": { + "xWidthAvg": 891 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "500": { + "familyName": "Karla", + "fullName": "Karla Medium", + "postscriptName": "Karla-Medium", + "category": "sans-serif", + "capHeight": 1274, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 963, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "600": { + "familyName": "Karla", + "fullName": "Karla SemiBold", + "postscriptName": "Karla-SemiBold", + "category": "sans-serif", + "capHeight": 1286, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 968, + "xWidthAvg": 945, + "subsets": { + "latin": { + "xWidthAvg": 945 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "700": { + "familyName": "Karla", + "fullName": "Karla Bold", + "postscriptName": "Karla-Bold", + "category": "sans-serif", + "capHeight": 1298, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 972, + "xWidthAvg": 957, + "subsets": { + "latin": { + "xWidthAvg": 957 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "800": { + "familyName": "Karla", + "fullName": "Karla ExtraBold", + "postscriptName": "Karla-ExtraBold", + "category": "sans-serif", + "capHeight": 1342, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 989, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "regular": { + "familyName": "Karla", + "fullName": "Karla Regular", + "postscriptName": "Karla-Regular", + "category": "sans-serif", + "capHeight": 1256, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 956, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "italic": { + "familyName": "Karla", + "fullName": "Karla Italic", + "postscriptName": "Karla-Italic", + "category": "sans-serif", + "capHeight": 1258, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 956, + "xWidthAvg": 826, + "subsets": { + "latin": { + "xWidthAvg": 826 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "800italic": { + "familyName": "Karla", + "fullName": "Karla ExtraBold Italic", + "postscriptName": "Karla-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 991, + "xWidthAvg": 909, + "subsets": { + "latin": { + "xWidthAvg": 909 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "700italic": { + "familyName": "Karla", + "fullName": "Karla Bold Italic", + "postscriptName": "Karla-BoldItalic", + "category": "sans-serif", + "capHeight": 1298, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 972, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "600italic": { + "familyName": "Karla", + "fullName": "Karla SemiBold Italic", + "postscriptName": "Karla-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1288, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 968, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "500italic": { + "familyName": "Karla", + "fullName": "Karla Medium Italic", + "postscriptName": "Karla-MediumItalic", + "category": "sans-serif", + "capHeight": 1277, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 964, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "300italic": { + "familyName": "Karla", + "fullName": "Karla Light Italic", + "postscriptName": "Karla-LightItalic", + "category": "sans-serif", + "capHeight": 1237, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 948, + "xWidthAvg": 806, + "subsets": { + "latin": { + "xWidthAvg": 806 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "200italic": { + "familyName": "Karla", + "fullName": "Karla ExtraLight Italic", + "postscriptName": "Karla-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1215, + "ascent": 1834, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 939, + "xWidthAvg": 785, + "subsets": { + "latin": { + "xWidthAvg": 785 + }, + "thai": { + "xWidthAvg": 1031 + } + } + } + } + }, + "karlaTamilInclined": { + "familyName": "Karla Tamil Inclined", + "fullName": "Karla Tamil Inclined", + "postscriptName": "KarlaTamilInclined-Regular", + "category": "sans-serif", + "capHeight": 717, + "ascent": 796, + "descent": -345, + "lineGap": 17, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 495 + } + }, + "variants": { + "700": { + "familyName": "Karla Tamil Inclined", + "fullName": "Karla Tamil Inclined Bold", + "postscriptName": "KarlaTamilInclined-Bold", + "category": "sans-serif", + "capHeight": 717, + "ascent": 796, + "descent": -345, + "lineGap": 17, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "regular": { + "familyName": "Karla Tamil Inclined", + "fullName": "Karla Tamil Inclined", + "postscriptName": "KarlaTamilInclined-Regular", + "category": "sans-serif", + "capHeight": 717, + "ascent": 796, + "descent": -345, + "lineGap": 17, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 495 + } + } + } + } + }, + "karlaTamilUpright": { + "familyName": "Karla Tamil Upright", + "fullName": "Karla Tamil Upright", + "postscriptName": "KarlaTamilUpright-Regular", + "category": "sans-serif", + "capHeight": 727, + "ascent": 750, + "descent": -250, + "lineGap": 9, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 545 + } + }, + "variants": { + "700": { + "familyName": "Karla Tamil Upright", + "fullName": "Karla Tamil Upright Bold", + "postscriptName": "KarlaTamilUpright-Bold", + "category": "sans-serif", + "capHeight": 741, + "ascent": 750, + "descent": -250, + "lineGap": 9, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 574 + } + } + }, + "regular": { + "familyName": "Karla Tamil Upright", + "fullName": "Karla Tamil Upright", + "postscriptName": "KarlaTamilUpright-Regular", + "category": "sans-serif", + "capHeight": 727, + "ascent": 750, + "descent": -250, + "lineGap": 9, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 545 + } + } + } + } + }, + "karma": { + "familyName": "Karma", + "fullName": "Karma Regular", + "postscriptName": "Karma-Regular", + "category": "serif", + "capHeight": 677, + "ascent": 945, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "300": { + "familyName": "Karma", + "fullName": "Karma Light", + "postscriptName": "Karma-Light", + "category": "serif", + "capHeight": 675, + "ascent": 945, + "descent": -474, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "500": { + "familyName": "Karma", + "fullName": "Karma Medium", + "postscriptName": "Karma-Medium", + "category": "serif", + "capHeight": 679, + "ascent": 945, + "descent": -548, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "600": { + "familyName": "Karma", + "fullName": "Karma SemiBold", + "postscriptName": "Karma-SemiBold", + "category": "serif", + "capHeight": 682, + "ascent": 950, + "descent": -594, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "700": { + "familyName": "Karma", + "fullName": "Karma Bold", + "postscriptName": "Karma-Bold", + "category": "serif", + "capHeight": 685, + "ascent": 982, + "descent": -646, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "regular": { + "familyName": "Karma", + "fullName": "Karma Regular", + "postscriptName": "Karma-Regular", + "category": "serif", + "capHeight": 677, + "ascent": 945, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "katibeh": { + "familyName": "Katibeh", + "fullName": "Katibeh Regular", + "postscriptName": "Katibeh-Regular", + "category": "display", + "capHeight": 700, + "ascent": 490, + "descent": -510, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 321, + "subsets": { + "latin": { + "xWidthAvg": 321 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "regular": { + "familyName": "Katibeh", + "fullName": "Katibeh Regular", + "postscriptName": "Katibeh-Regular", + "category": "display", + "capHeight": 700, + "ascent": 490, + "descent": -510, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 321, + "subsets": { + "latin": { + "xWidthAvg": 321 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "kaushanScript": { + "familyName": "Kaushan Script", + "fullName": "Kaushan Script", + "postscriptName": "KaushanScript-Regular", + "category": "handwriting", + "capHeight": 714, + "ascent": 1084, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 444 + } + }, + "variants": { + "regular": { + "familyName": "Kaushan Script", + "fullName": "Kaushan Script", + "postscriptName": "KaushanScript-Regular", + "category": "handwriting", + "capHeight": 714, + "ascent": 1084, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 444 + } + } + } + } + }, + "kavivanar": { + "familyName": "Kavivanar", + "fullName": "Kavivanar Regular", + "postscriptName": "Kavivanar-Regular", + "category": "handwriting", + "ascent": 1065, + "descent": -417, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 347 + } + }, + "variants": { + "regular": { + "familyName": "Kavivanar", + "fullName": "Kavivanar Regular", + "postscriptName": "Kavivanar-Regular", + "category": "handwriting", + "ascent": 1065, + "descent": -417, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 347 + } + } + } + } + }, + "kavoon": { + "familyName": "Kavoon", + "fullName": "Kavoon", + "postscriptName": "Kavoon-Regular", + "category": "display", + "capHeight": 1530, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1185, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1872 + } + }, + "variants": { + "regular": { + "familyName": "Kavoon", + "fullName": "Kavoon", + "postscriptName": "Kavoon-Regular", + "category": "display", + "capHeight": 1530, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1185, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1872 + } + } + } + } + }, + "kayPhoDu": { + "familyName": "Kay Pho Du", + "fullName": "Kay Pho Du", + "postscriptName": "KayPhoDu-Regular", + "category": "serif", + "capHeight": 1563, + "ascent": 1944, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 945, + "subsets": { + "latin": { + "xWidthAvg": 945 + }, + "thai": { + "xWidthAvg": 1966 + } + }, + "variants": { + "500": { + "familyName": "Kay Pho Du", + "fullName": "Kay Pho Du Medium", + "postscriptName": "KayPhoDu-Medium", + "category": "serif", + "capHeight": 1563, + "ascent": 1944, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 947, + "subsets": { + "latin": { + "xWidthAvg": 947 + }, + "thai": { + "xWidthAvg": 1955 + } + } + }, + "600": { + "familyName": "Kay Pho Du", + "fullName": "Kay Pho Du SemiBold", + "postscriptName": "KayPhoDu-SemiBold", + "category": "serif", + "capHeight": 1563, + "ascent": 1944, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 948, + "subsets": { + "latin": { + "xWidthAvg": 948 + }, + "thai": { + "xWidthAvg": 1944 + } + } + }, + "700": { + "familyName": "Kay Pho Du", + "fullName": "Kay Pho Du Bold", + "postscriptName": "KayPhoDu-Bold", + "category": "serif", + "capHeight": 1563, + "ascent": 1944, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 950, + "subsets": { + "latin": { + "xWidthAvg": 950 + }, + "thai": { + "xWidthAvg": 1933 + } + } + }, + "regular": { + "familyName": "Kay Pho Du", + "fullName": "Kay Pho Du", + "postscriptName": "KayPhoDu-Regular", + "category": "serif", + "capHeight": 1563, + "ascent": 1944, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1050, + "xWidthAvg": 945, + "subsets": { + "latin": { + "xWidthAvg": 945 + }, + "thai": { + "xWidthAvg": 1966 + } + } + } + } + }, + "kdamThmorPro": { + "familyName": "Kdam Thmor Pro", + "fullName": "Kdam Thmor Pro Regular", + "postscriptName": "KdamThmorPro-Regular", + "category": "sans-serif", + "capHeight": 793, + "ascent": 1146, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 612, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Kdam Thmor Pro", + "fullName": "Kdam Thmor Pro Regular", + "postscriptName": "KdamThmorPro-Regular", + "category": "sans-serif", + "capHeight": 793, + "ascent": 1146, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 612, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "keaniaOne": { + "familyName": "Keania One", + "fullName": "Keania One", + "postscriptName": "KeaniaOne-Regular", + "category": "display", + "capHeight": 723, + "ascent": 989, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Keania One", + "fullName": "Keania One", + "postscriptName": "KeaniaOne-Regular", + "category": "display", + "capHeight": 723, + "ascent": 989, + "descent": -228, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "kellySlab": { + "familyName": "Kelly Slab", + "fullName": "Kelly Slab", + "postscriptName": "KellySlab-Regular", + "category": "display", + "capHeight": 750, + "ascent": 962, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Kelly Slab", + "fullName": "Kelly Slab", + "postscriptName": "KellySlab-Regular", + "category": "display", + "capHeight": 750, + "ascent": 962, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "kenia": { + "familyName": "Kenia", + "fullName": "Kenia", + "postscriptName": "Kenia-Regular", + "category": "display", + "capHeight": 727, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 194 + } + }, + "variants": { + "regular": { + "familyName": "Kenia", + "fullName": "Kenia", + "postscriptName": "Kenia-Regular", + "category": "display", + "capHeight": 727, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 194 + } + } + } + } + }, + "khand": { + "familyName": "Khand", + "fullName": "Khand Regular", + "postscriptName": "Khand-Regular", + "category": "sans-serif", + "capHeight": 672, + "ascent": 1050, + "descent": -479, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 569, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "300": { + "familyName": "Khand", + "fullName": "Khand Light", + "postscriptName": "Khand-Light", + "category": "sans-serif", + "capHeight": 666, + "ascent": 1050, + "descent": -479, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 563, + "xWidthAvg": 346, + "subsets": { + "latin": { + "xWidthAvg": 346 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Khand", + "fullName": "Khand Medium", + "postscriptName": "Khand-Medium", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1050, + "descent": -479, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "600": { + "familyName": "Khand", + "fullName": "Khand SemiBold", + "postscriptName": "Khand-SemiBold", + "category": "sans-serif", + "capHeight": 685, + "ascent": 1050, + "descent": -479, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "700": { + "familyName": "Khand", + "fullName": "Khand Bold", + "postscriptName": "Khand-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -479, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 590, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "regular": { + "familyName": "Khand", + "fullName": "Khand Regular", + "postscriptName": "Khand-Regular", + "category": "sans-serif", + "capHeight": 672, + "ascent": 1050, + "descent": -479, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 569, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "khmer": { + "familyName": "Khmer", + "fullName": "Khmer", + "postscriptName": "Khmer", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2300, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1761, + "subsets": { + "latin": { + "xWidthAvg": 1761 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "Khmer", + "fullName": "Khmer", + "postscriptName": "Khmer", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2300, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1761, + "subsets": { + "latin": { + "xWidthAvg": 1761 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "khula": { + "familyName": "Khula", + "fullName": "Khula Regular", + "postscriptName": "Khula-Regular", + "category": "sans-serif", + "capHeight": 1316, + "ascent": 1978, + "descent": -1198, + "lineGap": 0, + "unitsPerEm": 1978, + "xHeight": 986, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1040 + } + }, + "variants": { + "300": { + "familyName": "Khula", + "fullName": "Khula Light", + "postscriptName": "Khula-Light", + "category": "sans-serif", + "capHeight": 1316, + "ascent": 1978, + "descent": -1198, + "lineGap": 0, + "unitsPerEm": 1978, + "xHeight": 978, + "xWidthAvg": 841, + "subsets": { + "latin": { + "xWidthAvg": 841 + }, + "thai": { + "xWidthAvg": 1009 + } + } + }, + "600": { + "familyName": "Khula", + "fullName": "Khula SemiBold", + "postscriptName": "Khula-SemiBold", + "category": "sans-serif", + "capHeight": 1316, + "ascent": 1978, + "descent": -1198, + "lineGap": 0, + "unitsPerEm": 1978, + "xHeight": 995, + "xWidthAvg": 904, + "subsets": { + "latin": { + "xWidthAvg": 904 + }, + "thai": { + "xWidthAvg": 1067 + } + } + }, + "700": { + "familyName": "Khula", + "fullName": "Khula Bold", + "postscriptName": "Khula-Bold", + "category": "sans-serif", + "capHeight": 1316, + "ascent": 1978, + "descent": -1198, + "lineGap": 0, + "unitsPerEm": 1978, + "xHeight": 1006, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 1104 + } + } + }, + "800": { + "familyName": "Khula", + "fullName": "Khula ExtraBold", + "postscriptName": "Khula-ExtraBold", + "category": "sans-serif", + "capHeight": 1316, + "ascent": 1978, + "descent": -1198, + "lineGap": 0, + "unitsPerEm": 1978, + "xHeight": 1020, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1133 + } + } + }, + "regular": { + "familyName": "Khula", + "fullName": "Khula Regular", + "postscriptName": "Khula-Regular", + "category": "sans-serif", + "capHeight": 1316, + "ascent": 1978, + "descent": -1198, + "lineGap": 0, + "unitsPerEm": 1978, + "xHeight": 986, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1040 + } + } + } + } + }, + "kings": { + "familyName": "Kings", + "fullName": "Kings Regular", + "postscriptName": "Kings-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 950, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "regular": { + "familyName": "Kings", + "fullName": "Kings Regular", + "postscriptName": "Kings-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 950, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "kirangHaerang": { + "familyName": "Kirang Haerang", + "fullName": "Kirang Haerang Regular", + "postscriptName": "KirangHaerang-Regular", + "category": "display", + "capHeight": 558, + "ascent": 750, + "descent": -250, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 337, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 603 + } + }, + "variants": { + "regular": { + "familyName": "Kirang Haerang", + "fullName": "Kirang Haerang Regular", + "postscriptName": "KirangHaerang-Regular", + "category": "display", + "capHeight": 558, + "ascent": 750, + "descent": -250, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 337, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 603 + } + } + } + } + }, + "kiteOne": { + "familyName": "Kite One", + "fullName": "Kite One Regular", + "postscriptName": "KiteOne-Regular", + "category": "sans-serif", + "capHeight": 860, + "ascent": 1094, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 705 + } + }, + "variants": { + "regular": { + "familyName": "Kite One", + "fullName": "Kite One Regular", + "postscriptName": "KiteOne-Regular", + "category": "sans-serif", + "capHeight": 860, + "ascent": 1094, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 705 + } + } + } + } + }, + "kiwiMaru": { + "familyName": "Kiwi Maru", + "fullName": "Kiwi Maru Regular", + "postscriptName": "KiwiMaru-Regular", + "category": "serif", + "capHeight": 727, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "Kiwi Maru", + "fullName": "Kiwi Maru Light", + "postscriptName": "KiwiMaru-Light", + "category": "serif", + "capHeight": 720, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Kiwi Maru", + "fullName": "Kiwi Maru Medium", + "postscriptName": "KiwiMaru-Medium", + "category": "serif", + "capHeight": 731, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Kiwi Maru", + "fullName": "Kiwi Maru Regular", + "postscriptName": "KiwiMaru-Regular", + "category": "serif", + "capHeight": 727, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "kleeOne": { + "familyName": "Klee One", + "fullName": "Klee One Regular", + "postscriptName": "KleeOne-Regular", + "category": "handwriting", + "capHeight": 695, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "600": { + "familyName": "Klee One", + "fullName": "Klee One SemiBold", + "postscriptName": "KleeOne-SemiBold", + "category": "handwriting", + "capHeight": 695, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Klee One", + "fullName": "Klee One Regular", + "postscriptName": "KleeOne-Regular", + "category": "handwriting", + "capHeight": 695, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "knewave": { + "familyName": "Knewave", + "fullName": "Knewave", + "postscriptName": "Knewave-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1169, + "descent": -385, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 312 + } + }, + "variants": { + "regular": { + "familyName": "Knewave", + "fullName": "Knewave", + "postscriptName": "Knewave-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1169, + "descent": -385, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 312 + } + } + } + } + }, + "koHo": { + "familyName": "KoHo", + "fullName": "KoHo Regular", + "postscriptName": "KoHo-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 556 + } + }, + "variants": { + "200": { + "familyName": "KoHo", + "fullName": "KoHo ExtraLight", + "postscriptName": "KoHo-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 535 + } + } + }, + "300": { + "familyName": "KoHo", + "fullName": "KoHo Light", + "postscriptName": "KoHo-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 546 + } + } + }, + "500": { + "familyName": "KoHo", + "fullName": "KoHo Medium", + "postscriptName": "KoHo-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "600": { + "familyName": "KoHo", + "fullName": "KoHo SemiBold", + "postscriptName": "KoHo-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "700": { + "familyName": "KoHo", + "fullName": "KoHo Bold", + "postscriptName": "KoHo-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "regular": { + "familyName": "KoHo", + "fullName": "KoHo Regular", + "postscriptName": "KoHo-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "italic": { + "familyName": "KoHo", + "fullName": "KoHo Italic", + "postscriptName": "KoHo-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "700italic": { + "familyName": "KoHo", + "fullName": "KoHo Bold Italic", + "postscriptName": "KoHo-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "600italic": { + "familyName": "KoHo", + "fullName": "KoHo SemiBold Italic", + "postscriptName": "KoHo-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "500italic": { + "familyName": "KoHo", + "fullName": "KoHo Medium Italic", + "postscriptName": "KoHo-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "300italic": { + "familyName": "KoHo", + "fullName": "KoHo Light Italic", + "postscriptName": "KoHo-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 546 + } + } + }, + "200italic": { + "familyName": "KoHo", + "fullName": "KoHo ExtraLight Italic", + "postscriptName": "KoHo-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1045, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 535 + } + } + } + } + }, + "kodchasan": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Regular", + "postscriptName": "Kodchasan-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 628 + } + }, + "variants": { + "200": { + "familyName": "Kodchasan", + "fullName": "Kodchasan ExtraLight", + "postscriptName": "Kodchasan-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 622 + } + } + }, + "300": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Light", + "postscriptName": "Kodchasan-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "500": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Medium", + "postscriptName": "Kodchasan-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "600": { + "familyName": "Kodchasan", + "fullName": "Kodchasan SemiBold", + "postscriptName": "Kodchasan-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "700": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Bold", + "postscriptName": "Kodchasan-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "regular": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Regular", + "postscriptName": "Kodchasan-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "italic": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Italic", + "postscriptName": "Kodchasan-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "700italic": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Bold Italic", + "postscriptName": "Kodchasan-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600italic": { + "familyName": "Kodchasan", + "fullName": "Kodchasan SemiBold Italic", + "postscriptName": "Kodchasan-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "500italic": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Medium Italic", + "postscriptName": "Kodchasan-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "300italic": { + "familyName": "Kodchasan", + "fullName": "Kodchasan Light Italic", + "postscriptName": "Kodchasan-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "200italic": { + "familyName": "Kodchasan", + "fullName": "Kodchasan ExtraLight Italic", + "postscriptName": "Kodchasan-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1024, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 621 + } + } + } + } + }, + "kodeMono": { + "familyName": "Kode Mono", + "fullName": "Kode Mono Regular", + "postscriptName": "KodeMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 980, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Kode Mono", + "fullName": "Kode Mono Medium", + "postscriptName": "KodeMono-Medium", + "category": "monospace", + "capHeight": 700, + "ascent": 980, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Kode Mono", + "fullName": "Kode Mono SemiBold", + "postscriptName": "KodeMono-SemiBold", + "category": "monospace", + "capHeight": 700, + "ascent": 980, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Kode Mono", + "fullName": "Kode Mono Bold", + "postscriptName": "KodeMono-Bold", + "category": "monospace", + "capHeight": 700, + "ascent": 980, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Kode Mono", + "fullName": "Kode Mono Regular", + "postscriptName": "KodeMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 980, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "kohSantepheap": { + "familyName": "Koh Santepheap", + "fullName": "Koh Santepheap Regular", + "postscriptName": "KohSantepheap-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 2050, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 986, + "subsets": { + "latin": { + "xWidthAvg": 986 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Koh Santepheap", + "fullName": "Koh Santepheap Thin", + "postscriptName": "KohSantepheap-Thin", + "category": "serif", + "capHeight": 700, + "ascent": 2050, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Koh Santepheap", + "fullName": "Koh Santepheap Light", + "postscriptName": "KohSantepheap-Light", + "category": "serif", + "capHeight": 700, + "ascent": 2050, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 950, + "subsets": { + "latin": { + "xWidthAvg": 950 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Koh Santepheap", + "fullName": "Koh Santepheap Bold", + "postscriptName": "KohSantepheap-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 2050, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 1047, + "subsets": { + "latin": { + "xWidthAvg": 1047 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Koh Santepheap", + "fullName": "Koh Santepheap Black", + "postscriptName": "KohSantepheap-Black", + "category": "serif", + "capHeight": 700, + "ascent": 2050, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 1092, + "subsets": { + "latin": { + "xWidthAvg": 1092 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Koh Santepheap", + "fullName": "Koh Santepheap Regular", + "postscriptName": "KohSantepheap-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 2050, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 986, + "subsets": { + "latin": { + "xWidthAvg": 986 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "kolkerBrush": { + "familyName": "Kolker Brush", + "fullName": "Kolker Brush Regular", + "postscriptName": "KolkerBrush-Regular", + "category": "handwriting", + "capHeight": 480, + "ascent": 750, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 205, + "xWidthAvg": 226, + "subsets": { + "latin": { + "xWidthAvg": 226 + }, + "thai": { + "xWidthAvg": 558 + } + }, + "variants": { + "regular": { + "familyName": "Kolker Brush", + "fullName": "Kolker Brush Regular", + "postscriptName": "KolkerBrush-Regular", + "category": "handwriting", + "capHeight": 480, + "ascent": 750, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 205, + "xWidthAvg": 226, + "subsets": { + "latin": { + "xWidthAvg": 226 + }, + "thai": { + "xWidthAvg": 558 + } + } + } + } + }, + "konkhmerSleokchher": { + "familyName": "Konkhmer Sleokchher", + "fullName": "Konkhmer Sleokchher Regular", + "postscriptName": "KonkhmerSleokchher-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1012, + "subsets": { + "latin": { + "xWidthAvg": 1012 + }, + "thai": { + "xWidthAvg": 1344 + } + }, + "variants": { + "regular": { + "familyName": "Konkhmer Sleokchher", + "fullName": "Konkhmer Sleokchher Regular", + "postscriptName": "KonkhmerSleokchher-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1012, + "subsets": { + "latin": { + "xWidthAvg": 1012 + }, + "thai": { + "xWidthAvg": 1344 + } + } + } + } + }, + "kosugi": { + "familyName": "Kosugi", + "fullName": "Kosugi Regular", + "postscriptName": "Kosugi-Regular", + "category": "sans-serif", + "capHeight": 774, + "ascent": 901, + "descent": -123, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 539, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Kosugi", + "fullName": "Kosugi Regular", + "postscriptName": "Kosugi-Regular", + "category": "sans-serif", + "capHeight": 774, + "ascent": 901, + "descent": -123, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 539, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "kosugiMaru": { + "familyName": "Kosugi Maru", + "fullName": "Kosugi Maru Regular", + "postscriptName": "KosugiMaru-Regular", + "category": "sans-serif", + "capHeight": 781, + "ascent": 901, + "descent": -123, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 546, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Kosugi Maru", + "fullName": "Kosugi Maru Regular", + "postscriptName": "KosugiMaru-Regular", + "category": "sans-serif", + "capHeight": 781, + "ascent": 901, + "descent": -123, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 546, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "kottaOne": { + "familyName": "Kotta One", + "fullName": "Kotta One", + "postscriptName": "KottaOne-Regular", + "category": "serif", + "capHeight": 212, + "ascent": 915, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 76, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Kotta One", + "fullName": "Kotta One", + "postscriptName": "KottaOne-Regular", + "category": "serif", + "capHeight": 212, + "ascent": 915, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 76, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "koulen": { + "familyName": "Koulen", + "fullName": "Koulen Regular", + "postscriptName": "Koulen-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Koulen", + "fullName": "Koulen Regular", + "postscriptName": "Koulen-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "kranky": { + "familyName": "Kranky", + "fullName": "Kranky Regular", + "postscriptName": "Kranky-Regular", + "category": "display", + "capHeight": 777, + "ascent": 977, + "descent": -294, + "lineGap": 28, + "unitsPerEm": 1024, + "xHeight": 432, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 287 + } + }, + "variants": { + "regular": { + "familyName": "Kranky", + "fullName": "Kranky Regular", + "postscriptName": "Kranky-Regular", + "category": "display", + "capHeight": 777, + "ascent": 977, + "descent": -294, + "lineGap": 28, + "unitsPerEm": 1024, + "xHeight": 432, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 287 + } + } + } + } + }, + "kreon": { + "familyName": "Kreon", + "fullName": "Kreon Regular", + "postscriptName": "Kreon-Regular", + "category": "serif", + "capHeight": 691, + "ascent": 974, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 632 + } + }, + "variants": { + "300": { + "familyName": "Kreon", + "fullName": "Kreon Light", + "postscriptName": "Kreon-Light", + "category": "serif", + "capHeight": 691, + "ascent": 974, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "500": { + "familyName": "Kreon", + "fullName": "Kreon Medium", + "postscriptName": "Kreon-Medium", + "category": "serif", + "capHeight": 691, + "ascent": 974, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "600": { + "familyName": "Kreon", + "fullName": "Kreon SemiBold", + "postscriptName": "Kreon-SemiBold", + "category": "serif", + "capHeight": 691, + "ascent": 974, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "700": { + "familyName": "Kreon", + "fullName": "Kreon Bold", + "postscriptName": "Kreon-Bold", + "category": "serif", + "capHeight": 691, + "ascent": 974, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "regular": { + "familyName": "Kreon", + "fullName": "Kreon Regular", + "postscriptName": "Kreon-Regular", + "category": "serif", + "capHeight": 691, + "ascent": 974, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 632 + } + } + } + } + }, + "kristi": { + "familyName": "Kristi", + "fullName": "Kristi Regular", + "postscriptName": "Kristi-Regular", + "category": "handwriting", + "ascent": 1836, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Kristi", + "fullName": "Kristi Regular", + "postscriptName": "Kristi-Regular", + "category": "handwriting", + "ascent": 1836, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "kronaOne": { + "familyName": "Krona One", + "fullName": "Krona One", + "postscriptName": "KronaOne-Regular", + "category": "sans-serif", + "capHeight": 1563, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1180, + "xWidthAvg": 1350, + "subsets": { + "latin": { + "xWidthAvg": 1350 + }, + "thai": { + "xWidthAvg": 519 + } + }, + "variants": { + "regular": { + "familyName": "Krona One", + "fullName": "Krona One", + "postscriptName": "KronaOne-Regular", + "category": "sans-serif", + "capHeight": 1563, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1180, + "xWidthAvg": 1350, + "subsets": { + "latin": { + "xWidthAvg": 1350 + }, + "thai": { + "xWidthAvg": 519 + } + } + } + } + }, + "krub": { + "familyName": "Krub", + "fullName": "Krub Regular", + "postscriptName": "Krub-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 569 + } + }, + "variants": { + "200": { + "familyName": "Krub", + "fullName": "Krub ExtraLight", + "postscriptName": "Krub-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 566 + } + } + }, + "300": { + "familyName": "Krub", + "fullName": "Krub Light", + "postscriptName": "Krub-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "500": { + "familyName": "Krub", + "fullName": "Krub Medium", + "postscriptName": "Krub-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "600": { + "familyName": "Krub", + "fullName": "Krub SemiBold", + "postscriptName": "Krub-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "700": { + "familyName": "Krub", + "fullName": "Krub Bold", + "postscriptName": "Krub-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Krub", + "fullName": "Krub Regular", + "postscriptName": "Krub-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "italic": { + "familyName": "Krub", + "fullName": "Krub Italic", + "postscriptName": "Krub-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "700italic": { + "familyName": "Krub", + "fullName": "Krub Bold Italic", + "postscriptName": "Krub-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Krub", + "fullName": "Krub SemiBold Italic", + "postscriptName": "Krub-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "500italic": { + "familyName": "Krub", + "fullName": "Krub Medium Italic", + "postscriptName": "Krub-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "300italic": { + "familyName": "Krub", + "fullName": "Krub Light Italic", + "postscriptName": "Krub-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "200italic": { + "familyName": "Krub", + "fullName": "Krub ExtraLight Italic", + "postscriptName": "Krub-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1007, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 566 + } + } + } + } + }, + "kufam": { + "familyName": "Kufam", + "fullName": "Kufam Regular", + "postscriptName": "Kufam-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 856 + } + }, + "variants": { + "500": { + "familyName": "Kufam", + "fullName": "Kufam Medium", + "postscriptName": "Kufam-Medium", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "600": { + "familyName": "Kufam", + "fullName": "Kufam SemiBold", + "postscriptName": "Kufam-SemiBold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "700": { + "familyName": "Kufam", + "fullName": "Kufam Bold", + "postscriptName": "Kufam-Bold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "800": { + "familyName": "Kufam", + "fullName": "Kufam ExtraBold", + "postscriptName": "Kufam-ExtraBold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "900": { + "familyName": "Kufam", + "fullName": "Kufam Black", + "postscriptName": "Kufam-Black", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "regular": { + "familyName": "Kufam", + "fullName": "Kufam Regular", + "postscriptName": "Kufam-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "italic": { + "familyName": "Kufam", + "fullName": "Kufam Italic", + "postscriptName": "Kufam-Italic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "900italic": { + "familyName": "Kufam", + "fullName": "Kufam Black Italic", + "postscriptName": "Kufam-BlackItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "800italic": { + "familyName": "Kufam", + "fullName": "Kufam ExtraBold Italic", + "postscriptName": "Kufam-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "700italic": { + "familyName": "Kufam", + "fullName": "Kufam Bold Italic", + "postscriptName": "Kufam-BoldItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "600italic": { + "familyName": "Kufam", + "fullName": "Kufam SemiBold Italic", + "postscriptName": "Kufam-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 856 + } + } + }, + "500italic": { + "familyName": "Kufam", + "fullName": "Kufam Medium Italic", + "postscriptName": "Kufam-MediumItalic", + "category": "sans-serif", + "capHeight": 720, + "ascent": 900, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 856 + } + } + } + } + }, + "kulimPark": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Regular", + "postscriptName": "KulimPark-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 579 + } + }, + "variants": { + "200": { + "familyName": "Kulim Park", + "fullName": "Kulim Park ExtraLight", + "postscriptName": "KulimPark-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "300": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Light", + "postscriptName": "KulimPark-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "600": { + "familyName": "Kulim Park", + "fullName": "Kulim Park SemiBold", + "postscriptName": "KulimPark-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "700": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Bold", + "postscriptName": "KulimPark-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "regular": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Regular", + "postscriptName": "KulimPark-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "italic": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Italic", + "postscriptName": "KulimPark-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 593 + } + } + }, + "700italic": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Bold Italic", + "postscriptName": "KulimPark-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 593 + } + } + }, + "600italic": { + "familyName": "Kulim Park", + "fullName": "Kulim Park SemiBold Italic", + "postscriptName": "KulimPark-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 593 + } + } + }, + "300italic": { + "familyName": "Kulim Park", + "fullName": "Kulim Park Light Italic", + "postscriptName": "KulimPark-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 593 + } + } + }, + "200italic": { + "familyName": "Kulim Park", + "fullName": "Kulim Park ExtraLight Italic", + "postscriptName": "KulimPark-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 931, + "descent": -204, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 593 + } + } + } + } + }, + "kumarOne": { + "familyName": "Kumar One", + "fullName": "Kumar One", + "postscriptName": "KumarOne-Regular", + "category": "display", + "capHeight": 800, + "ascent": 1137, + "descent": -642, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 595, + "subsets": { + "latin": { + "xWidthAvg": 595 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "Kumar One", + "fullName": "Kumar One", + "postscriptName": "KumarOne-Regular", + "category": "display", + "capHeight": 800, + "ascent": 1137, + "descent": -642, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 595, + "subsets": { + "latin": { + "xWidthAvg": 595 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "kumarOneOutline": { + "familyName": "Kumar One Outline", + "fullName": "Kumar One Outline", + "postscriptName": "KumarOneOutline-Regular", + "category": "display", + "capHeight": 800, + "ascent": 1137, + "descent": -642, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 595, + "subsets": { + "latin": { + "xWidthAvg": 595 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "Kumar One Outline", + "fullName": "Kumar One Outline", + "postscriptName": "KumarOneOutline-Regular", + "category": "display", + "capHeight": 800, + "ascent": 1137, + "descent": -642, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 595, + "subsets": { + "latin": { + "xWidthAvg": 595 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "kumbhSans": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Regular", + "postscriptName": "KumbhSans-Regular", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1250 + } + }, + "variants": { + "100": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Thin", + "postscriptName": "KumbhSans-Thin", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 946, + "subsets": { + "latin": { + "xWidthAvg": 946 + }, + "thai": { + "xWidthAvg": 1310 + } + } + }, + "200": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans ExtraLight", + "postscriptName": "KumbhSans-ExtraLight", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 1290 + } + } + }, + "300": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Light", + "postscriptName": "KumbhSans-Light", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 951, + "subsets": { + "latin": { + "xWidthAvg": 951 + }, + "thai": { + "xWidthAvg": 1270 + } + } + }, + "500": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Medium", + "postscriptName": "KumbhSans-Medium", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 959, + "subsets": { + "latin": { + "xWidthAvg": 959 + }, + "thai": { + "xWidthAvg": 1224 + } + } + }, + "600": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans SemiBold", + "postscriptName": "KumbhSans-SemiBold", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 1198 + } + } + }, + "700": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Bold", + "postscriptName": "KumbhSans-Bold", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1172 + } + } + }, + "800": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans ExtraBold", + "postscriptName": "KumbhSans-ExtraBold", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 974, + "subsets": { + "latin": { + "xWidthAvg": 974 + }, + "thai": { + "xWidthAvg": 1146 + } + } + }, + "900": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Black", + "postscriptName": "KumbhSans-Black", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 979, + "subsets": { + "latin": { + "xWidthAvg": 979 + }, + "thai": { + "xWidthAvg": 1120 + } + } + }, + "regular": { + "familyName": "Kumbh Sans", + "fullName": "Kumbh Sans Regular", + "postscriptName": "KumbhSans-Regular", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 2020, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1250 + } + } + } + } + }, + "kurale": { + "familyName": "Kurale", + "fullName": "Kurale Regular", + "postscriptName": "Kurale-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 1095, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 1040 + } + }, + "variants": { + "regular": { + "familyName": "Kurale", + "fullName": "Kurale Regular", + "postscriptName": "Kurale-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 1095, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 1040 + } + } + } + } + }, + "lXGWWenKaiMonoTC": { + "familyName": "LXGW WenKai Mono TC", + "fullName": "LXGW WenKai Mono TC Regular", + "postscriptName": "LXGWWenKaiMonoTC-Regular", + "category": "monospace", + "capHeight": 695, + "ascent": 928, + "descent": -241, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "LXGW WenKai Mono TC", + "fullName": "LXGW WenKai Mono TC Light", + "postscriptName": "LXGWWenKaiMonoTC-Light", + "category": "monospace", + "capHeight": 695, + "ascent": 928, + "descent": -241, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "LXGW WenKai Mono TC", + "fullName": "LXGW WenKai Mono TC Bold", + "postscriptName": "LXGWWenKaiMonoTC-Bold", + "category": "monospace", + "capHeight": 695, + "ascent": 928, + "descent": -241, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "LXGW WenKai Mono TC", + "fullName": "LXGW WenKai Mono TC Regular", + "postscriptName": "LXGWWenKaiMonoTC-Regular", + "category": "monospace", + "capHeight": 695, + "ascent": 928, + "descent": -241, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "lXGWWenKaiTC": { + "familyName": "LXGW WenKai TC", + "fullName": "LXGW WenKai TC Regular", + "postscriptName": "LXGWWenKaiTC-Regular", + "category": "handwriting", + "capHeight": 695, + "ascent": 1032, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "LXGW WenKai TC", + "fullName": "LXGW WenKai TC Light", + "postscriptName": "LXGWWenKaiTC-Light", + "category": "handwriting", + "capHeight": 695, + "ascent": 1032, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "LXGW WenKai TC", + "fullName": "LXGW WenKai TC Bold", + "postscriptName": "LXGWWenKaiTC-Bold", + "category": "handwriting", + "capHeight": 695, + "ascent": 1032, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "LXGW WenKai TC", + "fullName": "LXGW WenKai TC Regular", + "postscriptName": "LXGWWenKaiTC-Regular", + "category": "handwriting", + "capHeight": 695, + "ascent": 1032, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "laBelleAurore": { + "familyName": "La Belle Aurore", + "fullName": "La Belle Aurore", + "postscriptName": "LaBelleAurore", + "category": "handwriting", + "capHeight": 688, + "ascent": 1103, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 377, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "La Belle Aurore", + "fullName": "La Belle Aurore", + "postscriptName": "LaBelleAurore", + "category": "handwriting", + "capHeight": 688, + "ascent": 1103, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 377, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "labrada": { + "familyName": "Labrada", + "fullName": "Labrada Regular", + "postscriptName": "Labrada-Regular", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 352 + } + }, + "variants": { + "100": { + "familyName": "Labrada", + "fullName": "Labrada Thin", + "postscriptName": "Labrada-Thin", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "200": { + "familyName": "Labrada", + "fullName": "Labrada ExtraLight", + "postscriptName": "Labrada-ExtraLight", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "300": { + "familyName": "Labrada", + "fullName": "Labrada Light", + "postscriptName": "Labrada-Light", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "500": { + "familyName": "Labrada", + "fullName": "Labrada Medium", + "postscriptName": "Labrada-Medium", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "600": { + "familyName": "Labrada", + "fullName": "Labrada SemiBold", + "postscriptName": "Labrada-SemiBold", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "700": { + "familyName": "Labrada", + "fullName": "Labrada Bold", + "postscriptName": "Labrada-Bold", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "800": { + "familyName": "Labrada", + "fullName": "Labrada ExtraBold", + "postscriptName": "Labrada-ExtraBold", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "900": { + "familyName": "Labrada", + "fullName": "Labrada Black", + "postscriptName": "Labrada-Black", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "regular": { + "familyName": "Labrada", + "fullName": "Labrada Regular", + "postscriptName": "Labrada-Regular", + "category": "serif", + "capHeight": 640, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "italic": { + "familyName": "Labrada", + "fullName": "Labrada Italic", + "postscriptName": "Labrada-Italic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 384, + "subsets": { + "latin": { + "xWidthAvg": 384 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "900italic": { + "familyName": "Labrada", + "fullName": "Labrada Black Italic", + "postscriptName": "Labrada-BlackItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "800italic": { + "familyName": "Labrada", + "fullName": "Labrada ExtraBold Italic", + "postscriptName": "Labrada-ExtraBoldItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "700italic": { + "familyName": "Labrada", + "fullName": "Labrada Bold Italic", + "postscriptName": "Labrada-BoldItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "600italic": { + "familyName": "Labrada", + "fullName": "Labrada SemiBold Italic", + "postscriptName": "Labrada-SemiBoldItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "500italic": { + "familyName": "Labrada", + "fullName": "Labrada Medium Italic", + "postscriptName": "Labrada-MediumItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "300italic": { + "familyName": "Labrada", + "fullName": "Labrada Light Italic", + "postscriptName": "Labrada-LightItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 374, + "subsets": { + "latin": { + "xWidthAvg": 374 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "200italic": { + "familyName": "Labrada", + "fullName": "Labrada ExtraLight Italic", + "postscriptName": "Labrada-ExtraLightItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 367, + "subsets": { + "latin": { + "xWidthAvg": 367 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "100italic": { + "familyName": "Labrada", + "fullName": "Labrada Thin Italic", + "postscriptName": "Labrada-ThinItalic", + "category": "serif", + "capHeight": 652, + "ascent": 1145, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 313 + } + } + } + } + }, + "lacquer": { + "familyName": "Lacquer", + "fullName": "Lacquer Regular", + "postscriptName": "Lacquer-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Lacquer", + "fullName": "Lacquer Regular", + "postscriptName": "Lacquer-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "laila": { + "familyName": "Laila", + "fullName": "Laila Regular", + "postscriptName": "Laila-Regular", + "category": "sans-serif", + "capHeight": 717, + "ascent": 1098, + "descent": -452, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "300": { + "familyName": "Laila", + "fullName": "Laila Light", + "postscriptName": "Laila-Light", + "category": "sans-serif", + "capHeight": 712, + "ascent": 1098, + "descent": -452, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "500": { + "familyName": "Laila", + "fullName": "Laila Medium", + "postscriptName": "Laila-Medium", + "category": "sans-serif", + "capHeight": 723, + "ascent": 1098, + "descent": -452, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "600": { + "familyName": "Laila", + "fullName": "Laila SemiBold", + "postscriptName": "Laila-SemiBold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1098, + "descent": -452, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "700": { + "familyName": "Laila", + "fullName": "Laila Bold", + "postscriptName": "Laila-Bold", + "category": "sans-serif", + "capHeight": 736, + "ascent": 1098, + "descent": -452, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "regular": { + "familyName": "Laila", + "fullName": "Laila Regular", + "postscriptName": "Laila-Regular", + "category": "sans-serif", + "capHeight": 717, + "ascent": 1098, + "descent": -452, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "lakkiReddy": { + "familyName": "Lakki Reddy", + "fullName": "Lakki Reddy", + "postscriptName": "LakkiReddy", + "category": "handwriting", + "capHeight": 718, + "ascent": 938, + "descent": -765, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 529, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 374 + } + }, + "variants": { + "regular": { + "familyName": "Lakki Reddy", + "fullName": "Lakki Reddy", + "postscriptName": "LakkiReddy", + "category": "handwriting", + "capHeight": 718, + "ascent": 938, + "descent": -765, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 529, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 374 + } + } + } + } + }, + "lalezar": { + "familyName": "Lalezar", + "fullName": "Lalezar-Regular", + "postscriptName": "Lalezar-Regular", + "category": "display", + "capHeight": 570, + "ascent": 979, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 186, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 590 + } + }, + "variants": { + "regular": { + "familyName": "Lalezar", + "fullName": "Lalezar-Regular", + "postscriptName": "Lalezar-Regular", + "category": "display", + "capHeight": 570, + "ascent": 979, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 186, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 590 + } + } + } + } + }, + "lancelot": { + "familyName": "Lancelot", + "fullName": "Lancelot", + "postscriptName": "Lancelot", + "category": "display", + "capHeight": 1190, + "ascent": 1595, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 804, + "xWidthAvg": 732, + "subsets": { + "latin": { + "xWidthAvg": 732 + }, + "thai": { + "xWidthAvg": 388 + } + }, + "variants": { + "regular": { + "familyName": "Lancelot", + "fullName": "Lancelot", + "postscriptName": "Lancelot", + "category": "display", + "capHeight": 1190, + "ascent": 1595, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 804, + "xWidthAvg": 732, + "subsets": { + "latin": { + "xWidthAvg": 732 + }, + "thai": { + "xWidthAvg": 388 + } + } + } + } + }, + "langar": { + "familyName": "Langar", + "fullName": "Langar Regular", + "postscriptName": "Langar-Regular", + "category": "display", + "capHeight": 700, + "ascent": 739, + "descent": -200, + "lineGap": 455, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Langar", + "fullName": "Langar Regular", + "postscriptName": "Langar-Regular", + "category": "display", + "capHeight": 700, + "ascent": 739, + "descent": -200, + "lineGap": 455, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "lateef": { + "familyName": "Lateef", + "fullName": "Lateef", + "postscriptName": "Lateef-Regular", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 671, + "subsets": { + "latin": { + "xWidthAvg": 671 + }, + "thai": { + "xWidthAvg": 1135 + } + }, + "variants": { + "200": { + "familyName": "Lateef", + "fullName": "Lateef ExtraLight", + "postscriptName": "Lateef-ExtraLight", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 640, + "subsets": { + "latin": { + "xWidthAvg": 640 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "300": { + "familyName": "Lateef", + "fullName": "Lateef Light", + "postscriptName": "Lateef-Light", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 656, + "subsets": { + "latin": { + "xWidthAvg": 656 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "500": { + "familyName": "Lateef", + "fullName": "Lateef Medium", + "postscriptName": "Lateef-Medium", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 683, + "subsets": { + "latin": { + "xWidthAvg": 683 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "600": { + "familyName": "Lateef", + "fullName": "Lateef SemiBold", + "postscriptName": "Lateef-SemiBold", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 694, + "subsets": { + "latin": { + "xWidthAvg": 694 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "700": { + "familyName": "Lateef", + "fullName": "Lateef Bold", + "postscriptName": "Lateef-Bold", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 706, + "subsets": { + "latin": { + "xWidthAvg": 706 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "800": { + "familyName": "Lateef", + "fullName": "Lateef ExtraBold", + "postscriptName": "Lateef-ExtraBold", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 717, + "subsets": { + "latin": { + "xWidthAvg": 717 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "regular": { + "familyName": "Lateef", + "fullName": "Lateef", + "postscriptName": "Lateef-Regular", + "category": "serif", + "capHeight": 1022, + "ascent": 1937, + "descent": -1024, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 690, + "xWidthAvg": 671, + "subsets": { + "latin": { + "xWidthAvg": 671 + }, + "thai": { + "xWidthAvg": 1135 + } + } + } + } + }, + "lato": { + "familyName": "Lato", + "fullName": "Lato Regular", + "postscriptName": "Lato-Regular", + "category": "sans-serif", + "capHeight": 1433, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1013, + "xWidthAvg": 871, + "subsets": { + "latin": { + "xWidthAvg": 871 + }, + "thai": { + "xWidthAvg": 1063 + } + }, + "variants": { + "100": { + "familyName": "Lato", + "fullName": "Lato-Hairline", + "postscriptName": "Lato-Hairline", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 827, + "subsets": { + "latin": { + "xWidthAvg": 827 + }, + "thai": { + "xWidthAvg": 993 + } + } + }, + "300": { + "familyName": "Lato", + "fullName": "Lato-Light", + "postscriptName": "Lato-Light", + "category": "sans-serif", + "capHeight": 1415, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 847, + "subsets": { + "latin": { + "xWidthAvg": 847 + }, + "thai": { + "xWidthAvg": 1025 + } + } + }, + "700": { + "familyName": "Lato", + "fullName": "Lato Bold", + "postscriptName": "Lato-Bold", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1026, + "xWidthAvg": 891, + "subsets": { + "latin": { + "xWidthAvg": 891 + }, + "thai": { + "xWidthAvg": 1094 + } + } + }, + "900": { + "familyName": "Lato", + "fullName": "Lato Black", + "postscriptName": "Lato-Black", + "category": "sans-serif", + "capHeight": 1457, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1037, + "xWidthAvg": 909, + "subsets": { + "latin": { + "xWidthAvg": 909 + }, + "thai": { + "xWidthAvg": 1123 + } + } + }, + "regular": { + "familyName": "Lato", + "fullName": "Lato Regular", + "postscriptName": "Lato-Regular", + "category": "sans-serif", + "capHeight": 1433, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1013, + "xWidthAvg": 871, + "subsets": { + "latin": { + "xWidthAvg": 871 + }, + "thai": { + "xWidthAvg": 1063 + } + } + }, + "italic": { + "familyName": "Lato", + "fullName": "Lato Italic", + "postscriptName": "Lato-Italic", + "category": "sans-serif", + "capHeight": 1433, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1013, + "xWidthAvg": 812, + "subsets": { + "latin": { + "xWidthAvg": 812 + }, + "thai": { + "xWidthAvg": 1063 + } + } + }, + "900italic": { + "familyName": "Lato", + "fullName": "Lato Black Italic", + "postscriptName": "Lato-BlackItalic", + "category": "sans-serif", + "capHeight": 1457, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1037, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1123 + } + } + }, + "700italic": { + "familyName": "Lato", + "fullName": "Lato Bold Italic", + "postscriptName": "Lato-BoldItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1026, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 1094 + } + } + }, + "300italic": { + "familyName": "Lato", + "fullName": "Lato-LightItalic", + "postscriptName": "Lato-LightItalic", + "category": "sans-serif", + "capHeight": 1415, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 995, + "xWidthAvg": 790, + "subsets": { + "latin": { + "xWidthAvg": 790 + }, + "thai": { + "xWidthAvg": 1025 + } + } + }, + "100italic": { + "familyName": "Lato", + "fullName": "Lato-HairlineItalic", + "postscriptName": "Lato-HairlineItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1974, + "descent": -426, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 771, + "subsets": { + "latin": { + "xWidthAvg": 771 + }, + "thai": { + "xWidthAvg": 993 + } + } + } + } + }, + "lavishlyYours": { + "familyName": "Lavishly Yours", + "fullName": "Lavishly Yours Regular", + "postscriptName": "LavishlyYours-Regular", + "category": "handwriting", + "capHeight": 780, + "ascent": 1100, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 244, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 676 + } + }, + "variants": { + "regular": { + "familyName": "Lavishly Yours", + "fullName": "Lavishly Yours Regular", + "postscriptName": "LavishlyYours-Regular", + "category": "handwriting", + "capHeight": 780, + "ascent": 1100, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 244, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 676 + } + } + } + } + }, + "leagueGothic": { + "familyName": "League Gothic", + "fullName": "League Gothic Regular", + "postscriptName": "LeagueGothic-Regular", + "category": "sans-serif", + "capHeight": 1470, + "ascent": 1935, + "descent": -465, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1094, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 747 + } + }, + "variants": { + "regular": { + "familyName": "League Gothic", + "fullName": "League Gothic Regular", + "postscriptName": "LeagueGothic-Regular", + "category": "sans-serif", + "capHeight": 1470, + "ascent": 1935, + "descent": -465, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1094, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 747 + } + } + } + } + }, + "leagueScript": { + "familyName": "League Script", + "fullName": "League Script", + "postscriptName": "LeagueScript", + "category": "handwriting", + "capHeight": 936, + "ascent": 1100, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 1536, + "xHeight": 542, + "xWidthAvg": 683, + "subsets": { + "latin": { + "xWidthAvg": 683 + }, + "thai": { + "xWidthAvg": 412 + } + }, + "variants": { + "regular": { + "familyName": "League Script", + "fullName": "League Script", + "postscriptName": "LeagueScript", + "category": "handwriting", + "capHeight": 936, + "ascent": 1100, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 1536, + "xHeight": 542, + "xWidthAvg": 683, + "subsets": { + "latin": { + "xWidthAvg": 683 + }, + "thai": { + "xWidthAvg": 412 + } + } + } + } + }, + "leagueSpartan": { + "familyName": "League Spartan", + "fullName": "League Spartan Regular", + "postscriptName": "LeagueSpartan-Regular", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 827, + "subsets": { + "latin": { + "xWidthAvg": 827 + }, + "thai": { + "xWidthAvg": 757 + } + }, + "variants": { + "100": { + "familyName": "League Spartan", + "fullName": "League Spartan Thin", + "postscriptName": "LeagueSpartan-Thin", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 778, + "subsets": { + "latin": { + "xWidthAvg": 778 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "200": { + "familyName": "League Spartan", + "fullName": "League Spartan ExtraLight", + "postscriptName": "LeagueSpartan-ExtraLight", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 787, + "subsets": { + "latin": { + "xWidthAvg": 787 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "300": { + "familyName": "League Spartan", + "fullName": "League Spartan Light", + "postscriptName": "LeagueSpartan-Light", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 801, + "subsets": { + "latin": { + "xWidthAvg": 801 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "500": { + "familyName": "League Spartan", + "fullName": "League Spartan Medium", + "postscriptName": "LeagueSpartan-Medium", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "600": { + "familyName": "League Spartan", + "fullName": "League Spartan SemiBold", + "postscriptName": "LeagueSpartan-SemiBold", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "700": { + "familyName": "League Spartan", + "fullName": "League Spartan Bold", + "postscriptName": "LeagueSpartan-Bold", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 886, + "subsets": { + "latin": { + "xWidthAvg": 886 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "800": { + "familyName": "League Spartan", + "fullName": "League Spartan ExtraBold", + "postscriptName": "LeagueSpartan-ExtraBold", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "900": { + "familyName": "League Spartan", + "fullName": "League Spartan Black", + "postscriptName": "LeagueSpartan-Black", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 926, + "subsets": { + "latin": { + "xWidthAvg": 926 + }, + "thai": { + "xWidthAvg": 757 + } + } + }, + "regular": { + "familyName": "League Spartan", + "fullName": "League Spartan Regular", + "postscriptName": "LeagueSpartan-Regular", + "category": "sans-serif", + "capHeight": 1320, + "ascent": 1400, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 821, + "xWidthAvg": 827, + "subsets": { + "latin": { + "xWidthAvg": 827 + }, + "thai": { + "xWidthAvg": 757 + } + } + } + } + }, + "leckerliOne": { + "familyName": "Leckerli One", + "fullName": "Leckerli One", + "postscriptName": "LeckerliOne-Regular", + "category": "handwriting", + "capHeight": 521, + "ascent": 1032, + "descent": -313, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Leckerli One", + "fullName": "Leckerli One", + "postscriptName": "LeckerliOne-Regular", + "category": "handwriting", + "capHeight": 521, + "ascent": 1032, + "descent": -313, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "ledger": { + "familyName": "Ledger", + "fullName": "Ledger", + "postscriptName": "Ledger-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 1062, + "descent": -329, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Ledger", + "fullName": "Ledger", + "postscriptName": "Ledger-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 1062, + "descent": -329, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "lekton": { + "familyName": "Lekton", + "fullName": "Lekton", + "postscriptName": "Lekton-Regular", + "category": "monospace", + "capHeight": 655, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Lekton", + "fullName": "Lekton-Bold", + "postscriptName": "Lekton-Bold", + "category": "monospace", + "capHeight": 655, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Lekton", + "fullName": "Lekton", + "postscriptName": "Lekton-Regular", + "category": "monospace", + "capHeight": 655, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Lekton", + "fullName": "Lekton-Italic", + "postscriptName": "Lekton-Italic", + "category": "monospace", + "capHeight": 655, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "lemon": { + "familyName": "Lemon", + "fullName": "Lemon Regular", + "postscriptName": "Lemon-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1019, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 589, + "subsets": { + "latin": { + "xWidthAvg": 589 + }, + "thai": { + "xWidthAvg": 839 + } + }, + "variants": { + "regular": { + "familyName": "Lemon", + "fullName": "Lemon Regular", + "postscriptName": "Lemon-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1019, + "descent": -287, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 589, + "subsets": { + "latin": { + "xWidthAvg": 589 + }, + "thai": { + "xWidthAvg": 839 + } + } + } + } + }, + "lemonada": { + "familyName": "Lemonada", + "fullName": "Lemonada Regular", + "postscriptName": "Lemonada-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1345, + "descent": -653, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 581, + "subsets": { + "latin": { + "xWidthAvg": 581 + }, + "thai": { + "xWidthAvg": 633 + } + }, + "variants": { + "300": { + "familyName": "Lemonada", + "fullName": "Lemonada Light", + "postscriptName": "Lemonada-Light", + "category": "display", + "capHeight": 710, + "ascent": 1345, + "descent": -653, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 579, + "subsets": { + "latin": { + "xWidthAvg": 579 + }, + "thai": { + "xWidthAvg": 633 + } + } + }, + "500": { + "familyName": "Lemonada", + "fullName": "Lemonada Medium", + "postscriptName": "Lemonada-Medium", + "category": "display", + "capHeight": 710, + "ascent": 1345, + "descent": -653, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 584, + "subsets": { + "latin": { + "xWidthAvg": 584 + }, + "thai": { + "xWidthAvg": 633 + } + } + }, + "600": { + "familyName": "Lemonada", + "fullName": "Lemonada SemiBold", + "postscriptName": "Lemonada-SemiBold", + "category": "display", + "capHeight": 710, + "ascent": 1345, + "descent": -653, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 587, + "subsets": { + "latin": { + "xWidthAvg": 587 + }, + "thai": { + "xWidthAvg": 633 + } + } + }, + "700": { + "familyName": "Lemonada", + "fullName": "Lemonada Bold", + "postscriptName": "Lemonada-Bold", + "category": "display", + "capHeight": 710, + "ascent": 1345, + "descent": -653, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 591, + "subsets": { + "latin": { + "xWidthAvg": 591 + }, + "thai": { + "xWidthAvg": 633 + } + } + }, + "regular": { + "familyName": "Lemonada", + "fullName": "Lemonada Regular", + "postscriptName": "Lemonada-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1345, + "descent": -653, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 581, + "subsets": { + "latin": { + "xWidthAvg": 581 + }, + "thai": { + "xWidthAvg": 633 + } + } + } + } + }, + "lexend": { + "familyName": "Lexend", + "fullName": "Lexend Regular", + "postscriptName": "Lexend-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend", + "fullName": "Lexend Thin", + "postscriptName": "Lexend-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend", + "fullName": "Lexend ExtraLight", + "postscriptName": "Lexend-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend", + "fullName": "Lexend Light", + "postscriptName": "Lexend-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend", + "fullName": "Lexend Medium", + "postscriptName": "Lexend-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend", + "fullName": "Lexend SemiBold", + "postscriptName": "Lexend-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend", + "fullName": "Lexend Bold", + "postscriptName": "Lexend-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend", + "fullName": "Lexend ExtraBold", + "postscriptName": "Lexend-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend", + "fullName": "Lexend Black", + "postscriptName": "Lexend-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend", + "fullName": "Lexend Regular", + "postscriptName": "Lexend-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendDeca": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Regular", + "postscriptName": "LexendDeca-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Thin", + "postscriptName": "LexendDeca-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca ExtraLight", + "postscriptName": "LexendDeca-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Light", + "postscriptName": "LexendDeca-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Medium", + "postscriptName": "LexendDeca-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca SemiBold", + "postscriptName": "LexendDeca-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Bold", + "postscriptName": "LexendDeca-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca ExtraBold", + "postscriptName": "LexendDeca-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Black", + "postscriptName": "LexendDeca-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Deca", + "fullName": "Lexend Deca Regular", + "postscriptName": "LexendDeca-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendExa": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Regular", + "postscriptName": "LexendExa-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 619, + "subsets": { + "latin": { + "xWidthAvg": 619 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Thin", + "postscriptName": "LexendExa-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 582, + "subsets": { + "latin": { + "xWidthAvg": 582 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa ExtraLight", + "postscriptName": "LexendExa-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 591, + "subsets": { + "latin": { + "xWidthAvg": 591 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Light", + "postscriptName": "LexendExa-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 604, + "subsets": { + "latin": { + "xWidthAvg": 604 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Medium", + "postscriptName": "LexendExa-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa SemiBold", + "postscriptName": "LexendExa-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 639, + "subsets": { + "latin": { + "xWidthAvg": 639 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Bold", + "postscriptName": "LexendExa-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 648, + "subsets": { + "latin": { + "xWidthAvg": 648 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa ExtraBold", + "postscriptName": "LexendExa-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 662, + "subsets": { + "latin": { + "xWidthAvg": 662 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Black", + "postscriptName": "LexendExa-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 670, + "subsets": { + "latin": { + "xWidthAvg": 670 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Exa", + "fullName": "Lexend Exa Regular", + "postscriptName": "LexendExa-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 619, + "subsets": { + "latin": { + "xWidthAvg": 619 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendGiga": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Regular", + "postscriptName": "LexendGiga-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 670, + "subsets": { + "latin": { + "xWidthAvg": 670 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Thin", + "postscriptName": "LexendGiga-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 633, + "subsets": { + "latin": { + "xWidthAvg": 633 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga ExtraLight", + "postscriptName": "LexendGiga-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 643, + "subsets": { + "latin": { + "xWidthAvg": 643 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Light", + "postscriptName": "LexendGiga-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 656, + "subsets": { + "latin": { + "xWidthAvg": 656 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Medium", + "postscriptName": "LexendGiga-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 681, + "subsets": { + "latin": { + "xWidthAvg": 681 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga SemiBold", + "postscriptName": "LexendGiga-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 690, + "subsets": { + "latin": { + "xWidthAvg": 690 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Bold", + "postscriptName": "LexendGiga-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga ExtraBold", + "postscriptName": "LexendGiga-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 713, + "subsets": { + "latin": { + "xWidthAvg": 713 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Black", + "postscriptName": "LexendGiga-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 722, + "subsets": { + "latin": { + "xWidthAvg": 722 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Giga", + "fullName": "Lexend Giga Regular", + "postscriptName": "LexendGiga-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 670, + "subsets": { + "latin": { + "xWidthAvg": 670 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendMega": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Regular", + "postscriptName": "LexendMega-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 696, + "subsets": { + "latin": { + "xWidthAvg": 696 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Thin", + "postscriptName": "LexendMega-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 659, + "subsets": { + "latin": { + "xWidthAvg": 659 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega ExtraLight", + "postscriptName": "LexendMega-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 668, + "subsets": { + "latin": { + "xWidthAvg": 668 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Light", + "postscriptName": "LexendMega-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 682, + "subsets": { + "latin": { + "xWidthAvg": 682 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Medium", + "postscriptName": "LexendMega-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 706, + "subsets": { + "latin": { + "xWidthAvg": 706 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega SemiBold", + "postscriptName": "LexendMega-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 716, + "subsets": { + "latin": { + "xWidthAvg": 716 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Bold", + "postscriptName": "LexendMega-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 726, + "subsets": { + "latin": { + "xWidthAvg": 726 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega ExtraBold", + "postscriptName": "LexendMega-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 739, + "subsets": { + "latin": { + "xWidthAvg": 739 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Black", + "postscriptName": "LexendMega-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 748, + "subsets": { + "latin": { + "xWidthAvg": 748 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Mega", + "fullName": "Lexend Mega Regular", + "postscriptName": "LexendMega-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 696, + "subsets": { + "latin": { + "xWidthAvg": 696 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendPeta": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Regular", + "postscriptName": "LexendPeta-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 722, + "subsets": { + "latin": { + "xWidthAvg": 722 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Thin", + "postscriptName": "LexendPeta-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 685, + "subsets": { + "latin": { + "xWidthAvg": 685 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta ExtraLight", + "postscriptName": "LexendPeta-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 694, + "subsets": { + "latin": { + "xWidthAvg": 694 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Light", + "postscriptName": "LexendPeta-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 707, + "subsets": { + "latin": { + "xWidthAvg": 707 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Medium", + "postscriptName": "LexendPeta-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 732, + "subsets": { + "latin": { + "xWidthAvg": 732 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta SemiBold", + "postscriptName": "LexendPeta-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 742, + "subsets": { + "latin": { + "xWidthAvg": 742 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Bold", + "postscriptName": "LexendPeta-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 751, + "subsets": { + "latin": { + "xWidthAvg": 751 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta ExtraBold", + "postscriptName": "LexendPeta-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 765, + "subsets": { + "latin": { + "xWidthAvg": 765 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Black", + "postscriptName": "LexendPeta-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 773, + "subsets": { + "latin": { + "xWidthAvg": 773 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Peta", + "fullName": "Lexend Peta Regular", + "postscriptName": "LexendPeta-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 722, + "subsets": { + "latin": { + "xWidthAvg": 722 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendTera": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Regular", + "postscriptName": "LexendTera-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 747, + "subsets": { + "latin": { + "xWidthAvg": 747 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Thin", + "postscriptName": "LexendTera-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 710, + "subsets": { + "latin": { + "xWidthAvg": 710 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera ExtraLight", + "postscriptName": "LexendTera-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 720, + "subsets": { + "latin": { + "xWidthAvg": 720 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Light", + "postscriptName": "LexendTera-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 733, + "subsets": { + "latin": { + "xWidthAvg": 733 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Medium", + "postscriptName": "LexendTera-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 758, + "subsets": { + "latin": { + "xWidthAvg": 758 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera SemiBold", + "postscriptName": "LexendTera-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 768, + "subsets": { + "latin": { + "xWidthAvg": 768 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Bold", + "postscriptName": "LexendTera-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 777, + "subsets": { + "latin": { + "xWidthAvg": 777 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera ExtraBold", + "postscriptName": "LexendTera-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 791, + "subsets": { + "latin": { + "xWidthAvg": 791 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Black", + "postscriptName": "LexendTera-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 799, + "subsets": { + "latin": { + "xWidthAvg": 799 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Tera", + "fullName": "Lexend Tera Regular", + "postscriptName": "LexendTera-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 747, + "subsets": { + "latin": { + "xWidthAvg": 747 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "lexendZetta": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Regular", + "postscriptName": "LexendZetta-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 812, + "subsets": { + "latin": { + "xWidthAvg": 812 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "100": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Thin", + "postscriptName": "LexendZetta-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 774, + "subsets": { + "latin": { + "xWidthAvg": 774 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "200": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta ExtraLight", + "postscriptName": "LexendZetta-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 784, + "subsets": { + "latin": { + "xWidthAvg": 784 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Light", + "postscriptName": "LexendZetta-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 797, + "subsets": { + "latin": { + "xWidthAvg": 797 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Medium", + "postscriptName": "LexendZetta-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 822, + "subsets": { + "latin": { + "xWidthAvg": 822 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta SemiBold", + "postscriptName": "LexendZetta-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Bold", + "postscriptName": "LexendZetta-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 841, + "subsets": { + "latin": { + "xWidthAvg": 841 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "800": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta ExtraBold", + "postscriptName": "LexendZetta-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "900": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Black", + "postscriptName": "LexendZetta-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Lexend Zetta", + "fullName": "Lexend Zetta Regular", + "postscriptName": "LexendZetta-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 812, + "subsets": { + "latin": { + "xWidthAvg": 812 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "libreBarcode128": { + "familyName": "Libre Barcode 128", + "fullName": "Libre Barcode 128 Regular", + "postscriptName": "LibreBarcode128-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode 128", + "fullName": "Libre Barcode 128 Regular", + "postscriptName": "LibreBarcode128-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "libreBarcode128Text": { + "familyName": "Libre Barcode 128 Text", + "fullName": "Libre Barcode 128 Text Regular", + "postscriptName": "LibreBarcode128Text-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode 128 Text", + "fullName": "Libre Barcode 128 Text Regular", + "postscriptName": "LibreBarcode128Text-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "libreBarcode39": { + "familyName": "Libre Barcode 39", + "fullName": "Libre Barcode 39 Regular", + "postscriptName": "LibreBarcode39-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode 39", + "fullName": "Libre Barcode 39 Regular", + "postscriptName": "LibreBarcode39-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "libreBarcode39Extended": { + "familyName": "Libre Barcode 39 Extended", + "fullName": "Libre Barcode 39 Extended Regular", + "postscriptName": "LibreBarcode39Extended-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode 39 Extended", + "fullName": "Libre Barcode 39 Extended Regular", + "postscriptName": "LibreBarcode39Extended-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "libreBarcode39ExtendedText": { + "familyName": "Libre Barcode 39 Extended Text", + "fullName": "Libre Barcode 39 Extended Text Regular", + "postscriptName": "LibreBarcode39ExtendedText-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode 39 Extended Text", + "fullName": "Libre Barcode 39 Extended Text Regular", + "postscriptName": "LibreBarcode39ExtendedText-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "libreBarcode39Text": { + "familyName": "Libre Barcode 39 Text", + "fullName": "Libre Barcode 39 Text Regular", + "postscriptName": "LibreBarcode39Text-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode 39 Text", + "fullName": "Libre Barcode 39 Text Regular", + "postscriptName": "LibreBarcode39Text-Regular", + "category": "display", + "capHeight": 590, + "ascent": 600, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "libreBarcodeEAN13Text": { + "familyName": "Libre Barcode EAN13 Text", + "fullName": "Libre Barcode EAN13 Text Regular", + "postscriptName": "LibreBarcodeEAN13Text-Regular", + "category": "display", + "capHeight": 840, + "ascent": 840, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 420, + "xWidthAvg": 123, + "subsets": { + "latin": { + "xWidthAvg": 123 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Libre Barcode EAN13 Text", + "fullName": "Libre Barcode EAN13 Text Regular", + "postscriptName": "LibreBarcodeEAN13Text-Regular", + "category": "display", + "capHeight": 840, + "ascent": 840, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 420, + "xWidthAvg": 123, + "subsets": { + "latin": { + "xWidthAvg": 123 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "libreBaskerville": { + "familyName": "Libre Baskerville", + "fullName": "Libre Baskerville", + "postscriptName": "LibreBaskerville-Regular", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 756 + } + }, + "variants": { + "700": { + "familyName": "Libre Baskerville", + "fullName": "Libre Baskerville Bold", + "postscriptName": "LibreBaskerville-Bold", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Libre Baskerville", + "fullName": "Libre Baskerville", + "postscriptName": "LibreBaskerville-Regular", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "italic": { + "familyName": "Libre Baskerville", + "fullName": "Libre Baskerville Italic", + "postscriptName": "LibreBaskerville-Italic", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 756 + } + } + } + } + }, + "libreBodoni": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Regular", + "postscriptName": "LibreBodoni-Regular", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 809 + } + }, + "variants": { + "500": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Medium", + "postscriptName": "LibreBodoni-Medium", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 809 + } + } + }, + "600": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni SemiBold", + "postscriptName": "LibreBodoni-SemiBold", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 809 + } + } + }, + "700": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Bold", + "postscriptName": "LibreBodoni-Bold", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 809 + } + } + }, + "regular": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Regular", + "postscriptName": "LibreBodoni-Regular", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 809 + } + } + }, + "italic": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Italic", + "postscriptName": "LibreBodoni-Italic", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 809 + } + } + }, + "700italic": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Bold Italic", + "postscriptName": "LibreBodoni-BoldItalic", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 829 + } + } + }, + "600italic": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni SemiBold Italic", + "postscriptName": "LibreBodoni-SemiBoldItalic", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 822 + } + } + }, + "500italic": { + "familyName": "Libre Bodoni", + "fullName": "Libre Bodoni Medium Italic", + "postscriptName": "LibreBodoni-MediumItalic", + "category": "serif", + "capHeight": 754, + "ascent": 924, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 819 + } + } + } + } + }, + "libreCaslonDisplay": { + "familyName": "Libre Caslon Display", + "fullName": "Libre Caslon Display Regular", + "postscriptName": "LibreCaslonDisplay-Regular", + "category": "serif", + "capHeight": 690, + "ascent": 970, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 374, + "subsets": { + "latin": { + "xWidthAvg": 374 + }, + "thai": { + "xWidthAvg": 160 + } + }, + "variants": { + "regular": { + "familyName": "Libre Caslon Display", + "fullName": "Libre Caslon Display Regular", + "postscriptName": "LibreCaslonDisplay-Regular", + "category": "serif", + "capHeight": 690, + "ascent": 970, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 374, + "subsets": { + "latin": { + "xWidthAvg": 374 + }, + "thai": { + "xWidthAvg": 160 + } + } + } + } + }, + "libreCaslonText": { + "familyName": "Libre Caslon Text", + "fullName": "Libre Caslon Text Regular", + "postscriptName": "LibreCaslonText-Regular", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 625 + } + }, + "variants": { + "700": { + "familyName": "Libre Caslon Text", + "fullName": "Libre Caslon Text Bold", + "postscriptName": "LibreCaslonText-Bold", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "regular": { + "familyName": "Libre Caslon Text", + "fullName": "Libre Caslon Text Regular", + "postscriptName": "LibreCaslonText-Regular", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "italic": { + "familyName": "Libre Caslon Text", + "fullName": "Libre Caslon Text Italic", + "postscriptName": "LibreCaslonText-Italic", + "category": "serif", + "capHeight": 770, + "ascent": 970, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "libreFranklin": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Regular", + "postscriptName": "LibreFranklin-Regular", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 702 + } + }, + "variants": { + "100": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Thin", + "postscriptName": "LibreFranklin-Thin", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 736 + } + } + }, + "200": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin ExtraLight", + "postscriptName": "LibreFranklin-ExtraLight", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 728 + } + } + }, + "300": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Light", + "postscriptName": "LibreFranklin-Light", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 716 + } + } + }, + "500": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Medium", + "postscriptName": "LibreFranklin-Medium", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 685 + } + } + }, + "600": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin SemiBold", + "postscriptName": "LibreFranklin-SemiBold", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "700": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Bold", + "postscriptName": "LibreFranklin-Bold", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "800": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin ExtraBold", + "postscriptName": "LibreFranklin-ExtraBold", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 629 + } + } + }, + "900": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Black", + "postscriptName": "LibreFranklin-Black", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "regular": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Regular", + "postscriptName": "LibreFranklin-Regular", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 702 + } + } + }, + "italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Italic", + "postscriptName": "LibreFranklin-Italic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 702 + } + } + }, + "900italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Black Italic", + "postscriptName": "LibreFranklin-BlackItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "800italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin ExtraBold Italic", + "postscriptName": "LibreFranklin-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 629 + } + } + }, + "700italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Bold Italic", + "postscriptName": "LibreFranklin-BoldItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "600italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin SemiBold Italic", + "postscriptName": "LibreFranklin-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "500italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Medium Italic", + "postscriptName": "LibreFranklin-MediumItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 685 + } + } + }, + "300italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Light Italic", + "postscriptName": "LibreFranklin-LightItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 716 + } + } + }, + "200italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin ExtraLight Italic", + "postscriptName": "LibreFranklin-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 728 + } + } + }, + "100italic": { + "familyName": "Libre Franklin", + "fullName": "Libre Franklin Thin Italic", + "postscriptName": "LibreFranklin-ThinItalic", + "category": "sans-serif", + "capHeight": 742, + "ascent": 966, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 736 + } + } + } + } + }, + "licorice": { + "familyName": "Licorice", + "fullName": "Licorice Regular", + "postscriptName": "Licorice-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 850, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 286, + "subsets": { + "latin": { + "xWidthAvg": 286 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "regular": { + "familyName": "Licorice", + "fullName": "Licorice Regular", + "postscriptName": "Licorice-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 850, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 286, + "subsets": { + "latin": { + "xWidthAvg": 286 + }, + "thai": { + "xWidthAvg": 501 + } + } + } + } + }, + "lifeSavers": { + "familyName": "Life Savers", + "fullName": "Life Savers Regular", + "postscriptName": "LifeSavers-Regular", + "category": "display", + "capHeight": 821, + "ascent": 972, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 670 + } + }, + "variants": { + "700": { + "familyName": "Life Savers", + "fullName": "Life Savers Bold", + "postscriptName": "LifeSavers-Bold", + "category": "display", + "capHeight": 821, + "ascent": 972, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 670 + } + } + }, + "800": { + "familyName": "Life Savers", + "fullName": "Life Savers ExtraBold", + "postscriptName": "LifeSavers-ExtraBold", + "category": "display", + "capHeight": 821, + "ascent": 972, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 670 + } + } + }, + "regular": { + "familyName": "Life Savers", + "fullName": "Life Savers Regular", + "postscriptName": "LifeSavers-Regular", + "category": "display", + "capHeight": 821, + "ascent": 972, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 436, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 670 + } + } + } + } + }, + "lilitaOne": { + "familyName": "Lilita One", + "fullName": "Lilita One", + "postscriptName": "LilitaOne", + "category": "display", + "capHeight": 704, + "ascent": 923, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 199 + } + }, + "variants": { + "regular": { + "familyName": "Lilita One", + "fullName": "Lilita One", + "postscriptName": "LilitaOne", + "category": "display", + "capHeight": 704, + "ascent": 923, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 199 + } + } + } + } + }, + "lilyScriptOne": { + "familyName": "Lily Script One", + "fullName": "Lily Script One", + "postscriptName": "LilyScriptOne-Regular", + "category": "display", + "capHeight": 762, + "ascent": 1017, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 762, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Lily Script One", + "fullName": "Lily Script One", + "postscriptName": "LilyScriptOne-Regular", + "category": "display", + "capHeight": 762, + "ascent": 1017, + "descent": -359, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 762, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "limelight": { + "familyName": "Limelight", + "fullName": "Limelight Regular", + "postscriptName": "Limelight-Regular", + "category": "display", + "capHeight": 1415, + "ascent": 1864, + "descent": -629, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1068, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 411 + } + }, + "variants": { + "regular": { + "familyName": "Limelight", + "fullName": "Limelight Regular", + "postscriptName": "Limelight-Regular", + "category": "display", + "capHeight": 1415, + "ascent": 1864, + "descent": -629, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1068, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 411 + } + } + } + } + }, + "lindenHill": { + "familyName": "Linden Hill", + "fullName": "Linden Hill Regular", + "postscriptName": "LindenHill-Regular", + "category": "serif", + "capHeight": 2732, + "ascent": 3633, + "descent": -1888, + "lineGap": 0, + "unitsPerEm": 4096, + "xHeight": 1606, + "xWidthAvg": 1548, + "subsets": { + "latin": { + "xWidthAvg": 1548 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "Linden Hill", + "fullName": "Linden Hill Regular", + "postscriptName": "LindenHill-Regular", + "category": "serif", + "capHeight": 2732, + "ascent": 3633, + "descent": -1888, + "lineGap": 0, + "unitsPerEm": 4096, + "xHeight": 1606, + "xWidthAvg": 1548, + "subsets": { + "latin": { + "xWidthAvg": 1548 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "italic": { + "familyName": "Linden Hill", + "fullName": "Linden Hill Italic", + "postscriptName": "LindenHill-Italic", + "category": "serif", + "capHeight": 2732, + "ascent": 3633, + "descent": -1888, + "lineGap": 0, + "unitsPerEm": 4096, + "xHeight": 1688, + "xWidthAvg": 1342, + "subsets": { + "latin": { + "xWidthAvg": 1342 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "linefont": { + "familyName": "Linefont", + "fullName": "Linefont Regular", + "postscriptName": "Linefont-Regular", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + }, + "variants": { + "100": { + "familyName": "Linefont", + "fullName": "Linefont Thin", + "postscriptName": "Linefont-Thin", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "200": { + "familyName": "Linefont", + "fullName": "Linefont ExtraLight", + "postscriptName": "Linefont-ExtraLight", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "300": { + "familyName": "Linefont", + "fullName": "Linefont Light", + "postscriptName": "Linefont-Light", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "500": { + "familyName": "Linefont", + "fullName": "Linefont Medium", + "postscriptName": "Linefont-Medium", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "600": { + "familyName": "Linefont", + "fullName": "Linefont SemiBold", + "postscriptName": "Linefont-SemiBold", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "700": { + "familyName": "Linefont", + "fullName": "Linefont Bold", + "postscriptName": "Linefont-Bold", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "800": { + "familyName": "Linefont", + "fullName": "Linefont ExtraBold", + "postscriptName": "Linefont-ExtraBold", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "900": { + "familyName": "Linefont", + "fullName": "Linefont Black", + "postscriptName": "Linefont-Black", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + }, + "regular": { + "familyName": "Linefont", + "fullName": "Linefont Regular", + "postscriptName": "Linefont-Regular", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + } + } + }, + "lisuBosa": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa", + "postscriptName": "LisuBosa-Regular", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa ExtraLight", + "postscriptName": "LisuBosa-ExtraLight", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Light", + "postscriptName": "LisuBosa-Light", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Medium", + "postscriptName": "LisuBosa-Medium", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa SemiBold", + "postscriptName": "LisuBosa-SemiBold", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Bold", + "postscriptName": "LisuBosa-Bold", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa ExtraBold", + "postscriptName": "LisuBosa-ExtraBold", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Black", + "postscriptName": "LisuBosa-Black", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa", + "postscriptName": "LisuBosa-Regular", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Italic", + "postscriptName": "LisuBosa-Italic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Black Italic", + "postscriptName": "LisuBosa-BlackItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa ExtraBold Italic", + "postscriptName": "LisuBosa-ExtraBoldItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Bold Italic", + "postscriptName": "LisuBosa-BoldItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa SemiBold Italic", + "postscriptName": "LisuBosa-SemiBoldItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Medium Italic", + "postscriptName": "LisuBosa-MediumItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa Light Italic", + "postscriptName": "LisuBosa-LightItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200italic": { + "familyName": "Lisu Bosa", + "fullName": "Lisu Bosa ExtraLight Italic", + "postscriptName": "LisuBosa-ExtraLightItalic", + "category": "serif", + "capHeight": 530, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "literata": { + "familyName": "Literata", + "fullName": "Literata Regular", + "postscriptName": "Literata-Regular", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Literata", + "fullName": "Literata ExtraLight", + "postscriptName": "Literata-ExtraLight", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Literata", + "fullName": "Literata Light", + "postscriptName": "Literata-Light", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Literata", + "fullName": "Literata Medium", + "postscriptName": "Literata-Medium", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Literata", + "fullName": "Literata SemiBold", + "postscriptName": "Literata-SemiBold", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Literata", + "fullName": "Literata Bold", + "postscriptName": "Literata-Bold", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Literata", + "fullName": "Literata ExtraBold", + "postscriptName": "Literata-ExtraBold", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Literata", + "fullName": "Literata Black", + "postscriptName": "Literata-Black", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Literata", + "fullName": "Literata Regular", + "postscriptName": "Literata-Regular", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Literata", + "fullName": "Literata Italic", + "postscriptName": "Literata-Italic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 489 + } + } + }, + "900italic": { + "familyName": "Literata", + "fullName": "Literata Black Italic", + "postscriptName": "Literata-BlackItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Literata", + "fullName": "Literata ExtraBold Italic", + "postscriptName": "Literata-ExtraBoldItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "700italic": { + "familyName": "Literata", + "fullName": "Literata Bold Italic", + "postscriptName": "Literata-BoldItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "600italic": { + "familyName": "Literata", + "fullName": "Literata SemiBold Italic", + "postscriptName": "Literata-SemiBoldItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 492 + } + } + }, + "500italic": { + "familyName": "Literata", + "fullName": "Literata Medium Italic", + "postscriptName": "Literata-MediumItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 491 + } + } + }, + "300italic": { + "familyName": "Literata", + "fullName": "Literata Light Italic", + "postscriptName": "Literata-LightItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 495 + } + } + }, + "200italic": { + "familyName": "Literata", + "fullName": "Literata ExtraLight Italic", + "postscriptName": "Literata-ExtraLightItalic", + "category": "serif", + "capHeight": 701, + "ascent": 1177, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "liuJianMaoCao": { + "familyName": "Liu Jian Mao Cao", + "fullName": "Liu Jian Mao Cao Regular", + "postscriptName": "LiuJianMaoCao-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 415 + } + }, + "variants": { + "regular": { + "familyName": "Liu Jian Mao Cao", + "fullName": "Liu Jian Mao Cao Regular", + "postscriptName": "LiuJianMaoCao-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 415 + } + } + } + } + }, + "livvic": { + "familyName": "Livvic", + "fullName": "Livvic Regular", + "postscriptName": "Livvic-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 290 + } + }, + "variants": { + "100": { + "familyName": "Livvic", + "fullName": "Livvic Thin", + "postscriptName": "Livvic-Thin", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "200": { + "familyName": "Livvic", + "fullName": "Livvic ExtraLight", + "postscriptName": "Livvic-ExtraLight", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "300": { + "familyName": "Livvic", + "fullName": "Livvic Light", + "postscriptName": "Livvic-Light", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "500": { + "familyName": "Livvic", + "fullName": "Livvic Medium", + "postscriptName": "Livvic-Medium", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "600": { + "familyName": "Livvic", + "fullName": "Livvic SemiBold", + "postscriptName": "Livvic-SemiBold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "700": { + "familyName": "Livvic", + "fullName": "Livvic Bold", + "postscriptName": "Livvic-Bold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "900": { + "familyName": "Livvic", + "fullName": "Livvic Black", + "postscriptName": "Livvic-Black", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "regular": { + "familyName": "Livvic", + "fullName": "Livvic Regular", + "postscriptName": "Livvic-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "italic": { + "familyName": "Livvic", + "fullName": "Livvic Italic", + "postscriptName": "Livvic-Italic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "900italic": { + "familyName": "Livvic", + "fullName": "Livvic Black Italic", + "postscriptName": "Livvic-BlackItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "700italic": { + "familyName": "Livvic", + "fullName": "Livvic Bold Italic", + "postscriptName": "Livvic-BoldItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "600italic": { + "familyName": "Livvic", + "fullName": "Livvic SemiBold Italic", + "postscriptName": "Livvic-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "500italic": { + "familyName": "Livvic", + "fullName": "Livvic Medium Italic", + "postscriptName": "Livvic-MediumItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "300italic": { + "familyName": "Livvic", + "fullName": "Livvic Light Italic", + "postscriptName": "Livvic-LightItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "200italic": { + "familyName": "Livvic", + "fullName": "Livvic ExtraLight Italic", + "postscriptName": "Livvic-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 290 + } + } + }, + "100italic": { + "familyName": "Livvic", + "fullName": "Livvic Thin Italic", + "postscriptName": "Livvic-ThinItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 290 + } + } + } + } + }, + "lobster": { + "familyName": "Lobster", + "fullName": "Lobster Regular", + "postscriptName": "Lobster-Regular", + "category": "display", + "capHeight": 748, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 810 + } + }, + "variants": { + "regular": { + "familyName": "Lobster", + "fullName": "Lobster Regular", + "postscriptName": "Lobster-Regular", + "category": "display", + "capHeight": 748, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 810 + } + } + } + } + }, + "lobsterTwo": { + "familyName": "Lobster Two", + "fullName": "Lobster Two", + "postscriptName": "LobsterTwo", + "category": "display", + "capHeight": 754, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 385 + } + }, + "variants": { + "700": { + "familyName": "Lobster Two", + "fullName": "Lobster Two Bold", + "postscriptName": "LobsterTwo-Bold", + "category": "display", + "capHeight": 752, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 385 + } + } + }, + "regular": { + "familyName": "Lobster Two", + "fullName": "Lobster Two", + "postscriptName": "LobsterTwo", + "category": "display", + "capHeight": 754, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 385 + } + } + }, + "italic": { + "familyName": "Lobster Two", + "fullName": "Lobster Two Italic", + "postscriptName": "LobsterTwo-Italic", + "category": "display", + "capHeight": 754, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 385 + } + } + }, + "700italic": { + "familyName": "Lobster Two", + "fullName": "Lobster Two Bold Italic", + "postscriptName": "LobsterTwo-BoldItalic", + "category": "display", + "capHeight": 752, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 385 + } + } + } + } + }, + "londrinaOutline": { + "familyName": "Londrina Outline", + "fullName": "Londrina Outline Regular", + "postscriptName": "LondrinaOutline-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + }, + "variants": { + "regular": { + "familyName": "Londrina Outline", + "fullName": "Londrina Outline Regular", + "postscriptName": "LondrinaOutline-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + } + } + } + }, + "londrinaShadow": { + "familyName": "Londrina Shadow", + "fullName": "Londrina Shadow Regular", + "postscriptName": "LondrinaShadow-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + }, + "variants": { + "regular": { + "familyName": "Londrina Shadow", + "fullName": "Londrina Shadow Regular", + "postscriptName": "LondrinaShadow-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + } + } + } + }, + "londrinaSketch": { + "familyName": "Londrina Sketch", + "fullName": "Londrina Sketch Regular", + "postscriptName": "LondrinaSketch-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + }, + "variants": { + "regular": { + "familyName": "Londrina Sketch", + "fullName": "Londrina Sketch Regular", + "postscriptName": "LondrinaSketch-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + } + } + } + }, + "londrinaSolid": { + "familyName": "Londrina Solid", + "fullName": "Londrina Solid Regular", + "postscriptName": "LondrinaSolid-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + }, + "variants": { + "100": { + "familyName": "Londrina Solid", + "fullName": "Londrina Solid Thin", + "postscriptName": "LondrinaSolid-Thin", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 238 + } + } + }, + "300": { + "familyName": "Londrina Solid", + "fullName": "Londrina Solid Light", + "postscriptName": "LondrinaSolid-Light", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 238 + } + } + }, + "900": { + "familyName": "Londrina Solid", + "fullName": "Londrina Solid Black", + "postscriptName": "LondrinaSolid-Black", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + } + }, + "regular": { + "familyName": "Londrina Solid", + "fullName": "Londrina Solid Regular", + "postscriptName": "LondrinaSolid-Regular", + "category": "display", + "capHeight": 722, + "ascent": 945, + "descent": -238, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 238 + } + } + } + } + }, + "longCang": { + "familyName": "Long Cang", + "fullName": "Long Cang Regular", + "postscriptName": "LongCang-Regular", + "category": "handwriting", + "capHeight": 684, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Long Cang", + "fullName": "Long Cang Regular", + "postscriptName": "LongCang-Regular", + "category": "handwriting", + "capHeight": 684, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "lora": { + "familyName": "Lora", + "fullName": "Lora Regular", + "postscriptName": "Lora-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 529 + } + }, + "variants": { + "500": { + "familyName": "Lora", + "fullName": "Lora Medium", + "postscriptName": "Lora-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "600": { + "familyName": "Lora", + "fullName": "Lora SemiBold", + "postscriptName": "Lora-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "700": { + "familyName": "Lora", + "fullName": "Lora Bold", + "postscriptName": "Lora-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "regular": { + "familyName": "Lora", + "fullName": "Lora Regular", + "postscriptName": "Lora-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "italic": { + "familyName": "Lora", + "fullName": "Lora Italic", + "postscriptName": "Lora-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "700italic": { + "familyName": "Lora", + "fullName": "Lora Bold Italic", + "postscriptName": "Lora-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 542 + } + } + }, + "600italic": { + "familyName": "Lora", + "fullName": "Lora SemiBold Italic", + "postscriptName": "Lora-SemiBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "500italic": { + "familyName": "Lora", + "fullName": "Lora Medium Italic", + "postscriptName": "Lora-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1006, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 516 + } + } + } + } + }, + "loveLight": { + "familyName": "Love Light", + "fullName": "Love Light Regular", + "postscriptName": "LoveLight-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 499 + } + }, + "variants": { + "regular": { + "familyName": "Love Light", + "fullName": "Love Light Regular", + "postscriptName": "LoveLight-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 296, + "subsets": { + "latin": { + "xWidthAvg": 296 + }, + "thai": { + "xWidthAvg": 499 + } + } + } + } + }, + "loveYaLikeASister": { + "familyName": "Love Ya Like A Sister", + "fullName": "Love Ya Like A Sister Regular", + "postscriptName": "LoveYaLikeASister-Regular", + "category": "display", + "capHeight": 674, + "ascent": 942, + "descent": -333, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 510, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 319 + } + }, + "variants": { + "regular": { + "familyName": "Love Ya Like A Sister", + "fullName": "Love Ya Like A Sister Regular", + "postscriptName": "LoveYaLikeASister-Regular", + "category": "display", + "capHeight": 674, + "ascent": 942, + "descent": -333, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 510, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 319 + } + } + } + } + }, + "lovedByTheKing": { + "familyName": "Loved by the King", + "fullName": "Loved by the King", + "postscriptName": "LovedbytheKing", + "category": "handwriting", + "capHeight": 1774, + "ascent": 2398, + "descent": -1137, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1111, + "xWidthAvg": 657, + "subsets": { + "latin": { + "xWidthAvg": 657 + }, + "thai": { + "xWidthAvg": 1434 + } + }, + "variants": { + "regular": { + "familyName": "Loved by the King", + "fullName": "Loved by the King", + "postscriptName": "LovedbytheKing", + "category": "handwriting", + "capHeight": 1774, + "ascent": 2398, + "descent": -1137, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1111, + "xWidthAvg": 657, + "subsets": { + "latin": { + "xWidthAvg": 657 + }, + "thai": { + "xWidthAvg": 1434 + } + } + } + } + }, + "loversQuarrel": { + "familyName": "Lovers Quarrel", + "fullName": "Lovers Quarrel Regular", + "postscriptName": "LoversQuarrel-Regular", + "category": "handwriting", + "capHeight": 609, + "ascent": 726, + "descent": -401, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 274, + "xWidthAvg": 236, + "subsets": { + "latin": { + "xWidthAvg": 236 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Lovers Quarrel", + "fullName": "Lovers Quarrel Regular", + "postscriptName": "LoversQuarrel-Regular", + "category": "handwriting", + "capHeight": 609, + "ascent": 726, + "descent": -401, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 274, + "xWidthAvg": 236, + "subsets": { + "latin": { + "xWidthAvg": 236 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "lucidaGrande": { + "familyName": "Lucida Grande", + "fullName": "Lucida Grande", + "postscriptName": "LucidaGrande", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1086, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "700": { + "familyName": "Lucida Grande", + "fullName": "Lucida Grande Bold", + "postscriptName": "LucidaGrande-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1071, + "subsets": { + "latin": { + "xWidthAvg": 1071 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "regular": { + "familyName": "Lucida Grande", + "fullName": "Lucida Grande", + "postscriptName": "LucidaGrande", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1086, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "luckiestGuy": { + "familyName": "Luckiest Guy", + "fullName": "Luckiest Guy Regular", + "postscriptName": "LuckiestGuy-Regular", + "category": "display", + "capHeight": 1424, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1400, + "xWidthAvg": 1040, + "subsets": { + "latin": { + "xWidthAvg": 1040 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Luckiest Guy", + "fullName": "Luckiest Guy Regular", + "postscriptName": "LuckiestGuy-Regular", + "category": "display", + "capHeight": 1424, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1400, + "xWidthAvg": 1040, + "subsets": { + "latin": { + "xWidthAvg": 1040 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "lugrasimo": { + "familyName": "Lugrasimo", + "fullName": "Lugrasimo Regular", + "postscriptName": "Lugrasimo-Regular", + "category": "handwriting", + "capHeight": 1434, + "ascent": 2122, + "descent": -666, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1105, + "subsets": { + "latin": { + "xWidthAvg": 1105 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Lugrasimo", + "fullName": "Lugrasimo Regular", + "postscriptName": "Lugrasimo-Regular", + "category": "handwriting", + "capHeight": 1434, + "ascent": 2122, + "descent": -666, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1105, + "subsets": { + "latin": { + "xWidthAvg": 1105 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "lumanosimo": { + "familyName": "Lumanosimo", + "fullName": "Lumanosimo Regular", + "postscriptName": "Lumanosimo-Regular", + "category": "handwriting", + "capHeight": 1434, + "ascent": 2098, + "descent": -727, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1173, + "subsets": { + "latin": { + "xWidthAvg": 1173 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Lumanosimo", + "fullName": "Lumanosimo Regular", + "postscriptName": "Lumanosimo-Regular", + "category": "handwriting", + "capHeight": 1434, + "ascent": 2098, + "descent": -727, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1173, + "subsets": { + "latin": { + "xWidthAvg": 1173 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "lunasima": { + "familyName": "Lunasima", + "fullName": "Lunasima Regular", + "postscriptName": "Lunasima-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1086, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "700": { + "familyName": "Lunasima", + "fullName": "Lunasima Bold", + "postscriptName": "Lunasima-Bold", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1071, + "subsets": { + "latin": { + "xWidthAvg": 1071 + }, + "thai": { + "xWidthAvg": 1536 + } + } + }, + "regular": { + "familyName": "Lunasima", + "fullName": "Lunasima Regular", + "postscriptName": "Lunasima-Regular", + "category": "sans-serif", + "capHeight": 1480, + "ascent": 1980, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1086, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "lusitana": { + "familyName": "Lusitana", + "fullName": "Lusitana", + "postscriptName": "Lusitana", + "category": "serif", + "capHeight": 714, + "ascent": 956, + "descent": -341, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 139, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 198 + } + }, + "variants": { + "700": { + "familyName": "Lusitana", + "fullName": "Lusitana Bold", + "postscriptName": "Lusitana-Bold", + "category": "serif", + "capHeight": 713, + "ascent": 956, + "descent": -341, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 163, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 198 + } + } + }, + "regular": { + "familyName": "Lusitana", + "fullName": "Lusitana", + "postscriptName": "Lusitana", + "category": "serif", + "capHeight": 714, + "ascent": 956, + "descent": -341, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 139, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 198 + } + } + } + } + }, + "lustria": { + "familyName": "Lustria", + "fullName": "Lustria", + "postscriptName": "Lustria-Regular", + "category": "serif", + "capHeight": 704, + "ascent": 955, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Lustria", + "fullName": "Lustria", + "postscriptName": "Lustria-Regular", + "category": "serif", + "capHeight": 704, + "ascent": 955, + "descent": -327, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "luxuriousRoman": { + "familyName": "Luxurious Roman", + "fullName": "Luxurious Roman Regular", + "postscriptName": "LuxuriousRoman-Regular", + "category": "display", + "capHeight": 665, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 568 + } + }, + "variants": { + "regular": { + "familyName": "Luxurious Roman", + "fullName": "Luxurious Roman Regular", + "postscriptName": "LuxuriousRoman-Regular", + "category": "display", + "capHeight": 665, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 568 + } + } + } + } + }, + "luxuriousScript": { + "familyName": "Luxurious Script", + "fullName": "Luxurious Script Regular", + "postscriptName": "LuxuriousScript-Regular", + "category": "handwriting", + "capHeight": 565, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 330, + "xWidthAvg": 254, + "subsets": { + "latin": { + "xWidthAvg": 254 + }, + "thai": { + "xWidthAvg": 494 + } + }, + "variants": { + "regular": { + "familyName": "Luxurious Script", + "fullName": "Luxurious Script Regular", + "postscriptName": "LuxuriousScript-Regular", + "category": "handwriting", + "capHeight": 565, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 330, + "xWidthAvg": 254, + "subsets": { + "latin": { + "xWidthAvg": 254 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "mPLUS1": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Regular", + "postscriptName": "MPLUS1-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Thin", + "postscriptName": "MPLUS1-Thin", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 ExtraLight", + "postscriptName": "MPLUS1-ExtraLight", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Light", + "postscriptName": "MPLUS1-Light", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Medium", + "postscriptName": "MPLUS1-Medium", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 SemiBold", + "postscriptName": "MPLUS1-SemiBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Bold", + "postscriptName": "MPLUS1-Bold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 ExtraBold", + "postscriptName": "MPLUS1-ExtraBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Black", + "postscriptName": "MPLUS1-Black", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "M PLUS 1", + "fullName": "M PLUS 1 Regular", + "postscriptName": "MPLUS1-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mPLUS1Code": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code Regular", + "postscriptName": "MPLUS1Code-Regular", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code Thin", + "postscriptName": "MPLUS1Code-Thin", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code ExtraLight", + "postscriptName": "MPLUS1Code-ExtraLight", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code Light", + "postscriptName": "MPLUS1Code-Light", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code Medium", + "postscriptName": "MPLUS1Code-Medium", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code SemiBold", + "postscriptName": "MPLUS1Code-SemiBold", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code Bold", + "postscriptName": "MPLUS1Code-Bold", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "M PLUS 1 Code", + "fullName": "M PLUS 1 Code Regular", + "postscriptName": "MPLUS1Code-Regular", + "category": "monospace", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mPLUS1p": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Regular", + "postscriptName": "MPLUS1p-Regular", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "100": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Thin", + "postscriptName": "MPLUS1p-Thin", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "300": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Light", + "postscriptName": "MPLUS1p-Light", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "500": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Medium", + "postscriptName": "MPLUS1p-Medium", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "700": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Bold", + "postscriptName": "MPLUS1p-Bold", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "800": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p ExtraBold", + "postscriptName": "MPLUS1p-ExtraBold", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "900": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Black", + "postscriptName": "MPLUS1p-Black", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 543, + "subsets": { + "latin": { + "xWidthAvg": 543 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "regular": { + "familyName": "M PLUS 1p", + "fullName": "M PLUS 1p Regular", + "postscriptName": "MPLUS1p-Regular", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "mPLUS2": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Regular", + "postscriptName": "MPLUS2-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Thin", + "postscriptName": "MPLUS2-Thin", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 ExtraLight", + "postscriptName": "MPLUS2-ExtraLight", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Light", + "postscriptName": "MPLUS2-Light", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Medium", + "postscriptName": "MPLUS2-Medium", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 SemiBold", + "postscriptName": "MPLUS2-SemiBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Bold", + "postscriptName": "MPLUS2-Bold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 ExtraBold", + "postscriptName": "MPLUS2-ExtraBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Black", + "postscriptName": "MPLUS2-Black", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "M PLUS 2", + "fullName": "M PLUS 2 Regular", + "postscriptName": "MPLUS2-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mPLUSCodeLatin": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin Regular", + "postscriptName": "MPLUSCodeLatin-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin Thin", + "postscriptName": "MPLUSCodeLatin-Thin", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin ExtraLight", + "postscriptName": "MPLUSCodeLatin-ExtraLight", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin Light", + "postscriptName": "MPLUSCodeLatin-Light", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin Medium", + "postscriptName": "MPLUSCodeLatin-Medium", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin SemiBold", + "postscriptName": "MPLUSCodeLatin-SemiBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin Bold", + "postscriptName": "MPLUSCodeLatin-Bold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "M PLUS Code Latin", + "fullName": "M PLUS Code Latin Regular", + "postscriptName": "MPLUSCodeLatin-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1000, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mPLUSRounded1c": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c", + "postscriptName": "RoundedMplus1c-Regular", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "100": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c Thin", + "postscriptName": "RoundedMplus1c-Thin", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "300": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c Light", + "postscriptName": "RoundedMplus1c-Light", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "500": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c Medium", + "postscriptName": "RoundedMplus1c-Medium", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "700": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c Bold", + "postscriptName": "RoundedMplus1c-Bold", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "800": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c ExtraBold", + "postscriptName": "RoundedMplus1c-ExtraBold", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "900": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c Black", + "postscriptName": "RoundedMplus1c-Black", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "regular": { + "familyName": "M PLUS Rounded 1c", + "fullName": "Rounded Mplus 1c", + "postscriptName": "RoundedMplus1c-Regular", + "category": "sans-serif", + "ascent": 1075, + "descent": -320, + "lineGap": 90, + "unitsPerEm": 1000, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "maShanZheng": { + "familyName": "Ma Shan Zheng", + "fullName": "Ma Shan Zheng Regular", + "postscriptName": "MaShanZheng-Regular", + "category": "handwriting", + "capHeight": 760, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Ma Shan Zheng", + "fullName": "Ma Shan Zheng Regular", + "postscriptName": "MaShanZheng-Regular", + "category": "handwriting", + "capHeight": 760, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "macondo": { + "familyName": "Macondo", + "fullName": "Macondo", + "postscriptName": "Macondo-Regular", + "category": "display", + "capHeight": 53, + "ascent": 888, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 24, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Macondo", + "fullName": "Macondo", + "postscriptName": "Macondo-Regular", + "category": "display", + "capHeight": 53, + "ascent": 888, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 24, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "macondoSwashCaps": { + "familyName": "Macondo Swash Caps", + "fullName": "Macondo Swash Caps", + "postscriptName": "MacondoSwashCaps-Regular", + "category": "display", + "capHeight": 696, + "ascent": 888, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 24, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Macondo Swash Caps", + "fullName": "Macondo Swash Caps", + "postscriptName": "MacondoSwashCaps-Regular", + "category": "display", + "capHeight": 696, + "ascent": 888, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 24, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "mada": { + "familyName": "Mada", + "fullName": "Mada Regular", + "postscriptName": "Mada-Regular", + "category": "sans-serif", + "capHeight": 656, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 653 + } + }, + "variants": { + "200": { + "familyName": "Mada", + "fullName": "Mada ExtraLight", + "postscriptName": "Mada-ExtraLight", + "category": "sans-serif", + "capHeight": 660, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 624 + } + } + }, + "300": { + "familyName": "Mada", + "fullName": "Mada Light", + "postscriptName": "Mada-Light", + "category": "sans-serif", + "capHeight": 659, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "500": { + "familyName": "Mada", + "fullName": "Mada Medium", + "postscriptName": "Mada-Medium", + "category": "sans-serif", + "capHeight": 655, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "600": { + "familyName": "Mada", + "fullName": "Mada SemiBold", + "postscriptName": "Mada-SemiBold", + "category": "sans-serif", + "capHeight": 654, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 672 + } + } + }, + "700": { + "familyName": "Mada", + "fullName": "Mada Bold", + "postscriptName": "Mada-Bold", + "category": "sans-serif", + "capHeight": 652, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 690 + } + } + }, + "800": { + "familyName": "Mada", + "fullName": "Mada ExtraBold", + "postscriptName": "Mada-ExtraBold", + "category": "sans-serif", + "capHeight": 651, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "900": { + "familyName": "Mada", + "fullName": "Mada Black", + "postscriptName": "Mada-Black", + "category": "sans-serif", + "capHeight": 650, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 704 + } + } + }, + "regular": { + "familyName": "Mada", + "fullName": "Mada Regular", + "postscriptName": "Mada-Regular", + "category": "sans-serif", + "capHeight": 656, + "ascent": 950, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 653 + } + } + } + } + }, + "madimiOne": { + "familyName": "Madimi One", + "fullName": "Madimi One Regular", + "postscriptName": "MadimiOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1010, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 658 + } + }, + "variants": { + "regular": { + "familyName": "Madimi One", + "fullName": "Madimi One Regular", + "postscriptName": "MadimiOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1010, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 658 + } + } + } + } + }, + "magra": { + "familyName": "Magra", + "fullName": "Magra", + "postscriptName": "Magra", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 637 + } + }, + "variants": { + "700": { + "familyName": "Magra", + "fullName": "Magra Bold", + "postscriptName": "Magra-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 637 + } + } + }, + "regular": { + "familyName": "Magra", + "fullName": "Magra", + "postscriptName": "Magra", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 637 + } + } + } + } + }, + "maidenOrange": { + "familyName": "Maiden Orange", + "fullName": "Maiden Orange Regular", + "postscriptName": "MaidenOrange-Regular", + "category": "serif", + "capHeight": 1406, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1056, + "xWidthAvg": 670, + "subsets": { + "latin": { + "xWidthAvg": 670 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Maiden Orange", + "fullName": "Maiden Orange Regular", + "postscriptName": "MaidenOrange-Regular", + "category": "serif", + "capHeight": 1406, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1056, + "xWidthAvg": 670, + "subsets": { + "latin": { + "xWidthAvg": 670 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "maitree": { + "familyName": "Maitree", + "fullName": "Maitree", + "postscriptName": "Maitree", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 558 + } + }, + "variants": { + "200": { + "familyName": "Maitree", + "fullName": "Maitree-ExtraLight", + "postscriptName": "Maitree-ExtraLight", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 542 + } + } + }, + "300": { + "familyName": "Maitree", + "fullName": "Maitree-Light", + "postscriptName": "Maitree-Light", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 552 + } + } + }, + "500": { + "familyName": "Maitree", + "fullName": "Maitree-Medium", + "postscriptName": "Maitree-Medium", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "600": { + "familyName": "Maitree", + "fullName": "Maitree-SemiBold", + "postscriptName": "Maitree-SemiBold", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 575 + } + } + }, + "700": { + "familyName": "Maitree", + "fullName": "Maitree Bold", + "postscriptName": "Maitree-Bold", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "regular": { + "familyName": "Maitree", + "fullName": "Maitree", + "postscriptName": "Maitree", + "category": "serif", + "capHeight": 695, + "ascent": 1150, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 558 + } + } + } + } + }, + "majorMonoDisplay": { + "familyName": "Major Mono Display", + "fullName": "Major Mono Display Regular", + "postscriptName": "MajorMonoDisplay-Regular", + "category": "monospace", + "capHeight": 696, + "ascent": 900, + "descent": -100, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 696, + "xWidthAvg": 740, + "subsets": { + "latin": { + "xWidthAvg": 740 + }, + "thai": { + "xWidthAvg": 740 + } + }, + "variants": { + "regular": { + "familyName": "Major Mono Display", + "fullName": "Major Mono Display Regular", + "postscriptName": "MajorMonoDisplay-Regular", + "category": "monospace", + "capHeight": 696, + "ascent": 900, + "descent": -100, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 696, + "xWidthAvg": 740, + "subsets": { + "latin": { + "xWidthAvg": 740 + }, + "thai": { + "xWidthAvg": 740 + } + } + } + } + }, + "mako": { + "familyName": "Mako", + "fullName": "Mako Regular", + "postscriptName": "Mako-Regular", + "category": "sans-serif", + "capHeight": 1437, + "ascent": 2141, + "descent": -538, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1031, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1402 + } + }, + "variants": { + "regular": { + "familyName": "Mako", + "fullName": "Mako Regular", + "postscriptName": "Mako-Regular", + "category": "sans-serif", + "capHeight": 1437, + "ascent": 2141, + "descent": -538, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1031, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1402 + } + } + } + } + }, + "mali": { + "familyName": "Mali", + "fullName": "Mali Regular", + "postscriptName": "Mali-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 641 + } + }, + "variants": { + "200": { + "familyName": "Mali", + "fullName": "Mali ExtraLight", + "postscriptName": "Mali-ExtraLight", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "300": { + "familyName": "Mali", + "fullName": "Mali Light", + "postscriptName": "Mali-Light", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 635 + } + } + }, + "500": { + "familyName": "Mali", + "fullName": "Mali Medium", + "postscriptName": "Mali-Medium", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 648 + } + } + }, + "600": { + "familyName": "Mali", + "fullName": "Mali SemiBold", + "postscriptName": "Mali-SemiBold", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "700": { + "familyName": "Mali", + "fullName": "Mali Bold", + "postscriptName": "Mali-Bold", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "regular": { + "familyName": "Mali", + "fullName": "Mali Regular", + "postscriptName": "Mali-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "italic": { + "familyName": "Mali", + "fullName": "Mali Italic", + "postscriptName": "Mali-Italic", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "700italic": { + "familyName": "Mali", + "fullName": "Mali Bold Italic", + "postscriptName": "Mali-BoldItalic", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 661 + } + } + }, + "600italic": { + "familyName": "Mali", + "fullName": "Mali SemiBold Italic", + "postscriptName": "Mali-SemiBoldItalic", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "500italic": { + "familyName": "Mali", + "fullName": "Mali Medium Italic", + "postscriptName": "Mali-MediumItalic", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 649 + } + } + }, + "300italic": { + "familyName": "Mali", + "fullName": "Mali Light Italic", + "postscriptName": "Mali-LightItalic", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "200italic": { + "familyName": "Mali", + "fullName": "Mali ExtraLight Italic", + "postscriptName": "Mali-ExtraLightItalic", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 628 + } + } + } + } + }, + "mallanna": { + "familyName": "Mallanna", + "fullName": "Mallanna", + "postscriptName": "Mallanna", + "category": "sans-serif", + "capHeight": 546, + "ascent": 1105, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 870, + "xHeight": 379, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 319 + } + }, + "variants": { + "regular": { + "familyName": "Mallanna", + "fullName": "Mallanna", + "postscriptName": "Mallanna", + "category": "sans-serif", + "capHeight": 546, + "ascent": 1105, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 870, + "xHeight": 379, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 319 + } + } + } + } + }, + "maname": { + "familyName": "Maname", + "fullName": "Maname Regular", + "postscriptName": "Maname-Regular", + "category": "serif", + "capHeight": 578, + "ascent": 1200, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Maname", + "fullName": "Maname Regular", + "postscriptName": "Maname-Regular", + "category": "serif", + "capHeight": 578, + "ascent": 1200, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "mandali": { + "familyName": "Mandali", + "fullName": "Mandali", + "postscriptName": "Mandali", + "category": "sans-serif", + "capHeight": 550, + "ascent": 1087, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 790, + "xHeight": 382, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 287 + } + }, + "variants": { + "regular": { + "familyName": "Mandali", + "fullName": "Mandali", + "postscriptName": "Mandali", + "category": "sans-serif", + "capHeight": 550, + "ascent": 1087, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 790, + "xHeight": 382, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 287 + } + } + } + } + }, + "manjari": { + "familyName": "Manjari", + "fullName": "Manjari Regular", + "postscriptName": "Manjari-Regular", + "category": "sans-serif", + "capHeight": 1385, + "ascent": 1500, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 761 + } + }, + "variants": { + "100": { + "familyName": "Manjari", + "fullName": "Manjari Thin", + "postscriptName": "Manjari-Thin", + "category": "sans-serif", + "capHeight": 1360, + "ascent": 1400, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 692 + } + } + }, + "700": { + "familyName": "Manjari", + "fullName": "Manjari Bold", + "postscriptName": "Manjari-Bold", + "category": "sans-serif", + "capHeight": 1432, + "ascent": 1500, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1072, + "xWidthAvg": 944, + "subsets": { + "latin": { + "xWidthAvg": 944 + }, + "thai": { + "xWidthAvg": 771 + } + } + }, + "regular": { + "familyName": "Manjari", + "fullName": "Manjari Regular", + "postscriptName": "Manjari-Regular", + "category": "sans-serif", + "capHeight": 1385, + "ascent": 1500, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 761 + } + } + } + } + }, + "manrope": { + "familyName": "Manrope", + "fullName": "Manrope Regular", + "postscriptName": "Manrope-Regular", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 1480 + } + }, + "variants": { + "200": { + "familyName": "Manrope", + "fullName": "Manrope ExtraLight", + "postscriptName": "Manrope-ExtraLight", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 887, + "subsets": { + "latin": { + "xWidthAvg": 887 + }, + "thai": { + "xWidthAvg": 1480 + } + } + }, + "300": { + "familyName": "Manrope", + "fullName": "Manrope Light", + "postscriptName": "Manrope-Light", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 904, + "subsets": { + "latin": { + "xWidthAvg": 904 + }, + "thai": { + "xWidthAvg": 1480 + } + } + }, + "500": { + "familyName": "Manrope", + "fullName": "Manrope Medium", + "postscriptName": "Manrope-Medium", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 937, + "subsets": { + "latin": { + "xWidthAvg": 937 + }, + "thai": { + "xWidthAvg": 1480 + } + } + }, + "600": { + "familyName": "Manrope", + "fullName": "Manrope SemiBold", + "postscriptName": "Manrope-SemiBold", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1480 + } + } + }, + "700": { + "familyName": "Manrope", + "fullName": "Manrope Bold", + "postscriptName": "Manrope-Bold", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 971, + "subsets": { + "latin": { + "xWidthAvg": 971 + }, + "thai": { + "xWidthAvg": 1480 + } + } + }, + "800": { + "familyName": "Manrope", + "fullName": "Manrope ExtraBold", + "postscriptName": "Manrope-ExtraBold", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 988, + "subsets": { + "latin": { + "xWidthAvg": 988 + }, + "thai": { + "xWidthAvg": 1480 + } + } + }, + "regular": { + "familyName": "Manrope", + "fullName": "Manrope Regular", + "postscriptName": "Manrope-Regular", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2132, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 1480 + } + } + } + } + }, + "mansalva": { + "familyName": "Mansalva", + "fullName": "Mansalva Regular", + "postscriptName": "Mansalva-Regular", + "category": "handwriting", + "capHeight": 702, + "ascent": 1112, + "descent": -466, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 384, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 619 + } + }, + "variants": { + "regular": { + "familyName": "Mansalva", + "fullName": "Mansalva Regular", + "postscriptName": "Mansalva-Regular", + "category": "handwriting", + "capHeight": 702, + "ascent": 1112, + "descent": -466, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 384, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 619 + } + } + } + } + }, + "manuale": { + "familyName": "Manuale", + "fullName": "Manuale Regular", + "postscriptName": "Manuale-Regular", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 700 + } + }, + "variants": { + "300": { + "familyName": "Manuale", + "fullName": "Manuale Light", + "postscriptName": "Manuale-Light", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500": { + "familyName": "Manuale", + "fullName": "Manuale Medium", + "postscriptName": "Manuale-Medium", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600": { + "familyName": "Manuale", + "fullName": "Manuale SemiBold", + "postscriptName": "Manuale-SemiBold", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700": { + "familyName": "Manuale", + "fullName": "Manuale Bold", + "postscriptName": "Manuale-Bold", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800": { + "familyName": "Manuale", + "fullName": "Manuale ExtraBold", + "postscriptName": "Manuale-ExtraBold", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "regular": { + "familyName": "Manuale", + "fullName": "Manuale Regular", + "postscriptName": "Manuale-Regular", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "italic": { + "familyName": "Manuale", + "fullName": "Manuale Italic", + "postscriptName": "Manuale-Italic", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800italic": { + "familyName": "Manuale", + "fullName": "Manuale ExtraBold Italic", + "postscriptName": "Manuale-ExtraBoldItalic", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700italic": { + "familyName": "Manuale", + "fullName": "Manuale Bold Italic", + "postscriptName": "Manuale-BoldItalic", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600italic": { + "familyName": "Manuale", + "fullName": "Manuale SemiBold Italic", + "postscriptName": "Manuale-SemiBoldItalic", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500italic": { + "familyName": "Manuale", + "fullName": "Manuale Medium Italic", + "postscriptName": "Manuale-MediumItalic", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "300italic": { + "familyName": "Manuale", + "fullName": "Manuale Light Italic", + "postscriptName": "Manuale-LightItalic", + "category": "serif", + "capHeight": 611, + "ascent": 980, + "descent": -236, + "lineGap": 221, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 700 + } + } + } + } + }, + "marcellus": { + "familyName": "Marcellus", + "fullName": "Marcellus", + "postscriptName": "Marcellus-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1995, + "descent": -573, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Marcellus", + "fullName": "Marcellus", + "postscriptName": "Marcellus-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1995, + "descent": -573, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 936, + "subsets": { + "latin": { + "xWidthAvg": 936 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "marcellusSC": { + "familyName": "Marcellus SC", + "fullName": "Marcellus SC", + "postscriptName": "MarcellusSC-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1995, + "descent": -573, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1075, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Marcellus SC", + "fullName": "Marcellus SC", + "postscriptName": "MarcellusSC-Regular", + "category": "serif", + "capHeight": 1434, + "ascent": 1995, + "descent": -573, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1075, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "marckScript": { + "familyName": "Marck Script", + "fullName": "Marck Script", + "postscriptName": "MarckScript-Regular", + "category": "handwriting", + "capHeight": 638, + "ascent": 864, + "descent": -385, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 263, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 480 + } + }, + "variants": { + "regular": { + "familyName": "Marck Script", + "fullName": "Marck Script", + "postscriptName": "MarckScript-Regular", + "category": "handwriting", + "capHeight": 638, + "ascent": 864, + "descent": -385, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 263, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 480 + } + } + } + } + }, + "margarine": { + "familyName": "Margarine", + "fullName": "Margarine", + "postscriptName": "Margarine-Regular", + "category": "display", + "capHeight": 0, + "ascent": 2075, + "descent": -678, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Margarine", + "fullName": "Margarine", + "postscriptName": "Margarine-Regular", + "category": "display", + "capHeight": 0, + "ascent": 2075, + "descent": -678, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "marhey": { + "familyName": "Marhey", + "fullName": "Marhey Regular", + "postscriptName": "Marhey-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1100, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "300": { + "familyName": "Marhey", + "fullName": "Marhey Light", + "postscriptName": "Marhey-Light", + "category": "display", + "capHeight": 750, + "ascent": 1100, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Marhey", + "fullName": "Marhey Medium", + "postscriptName": "Marhey-Medium", + "category": "display", + "capHeight": 750, + "ascent": 1100, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Marhey", + "fullName": "Marhey SemiBold", + "postscriptName": "Marhey-SemiBold", + "category": "display", + "capHeight": 750, + "ascent": 1100, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Marhey", + "fullName": "Marhey Bold", + "postscriptName": "Marhey-Bold", + "category": "display", + "capHeight": 750, + "ascent": 1100, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Marhey", + "fullName": "Marhey Regular", + "postscriptName": "Marhey-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1100, + "descent": -640, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "markaziText": { + "familyName": "Markazi Text", + "fullName": "Markazi Text Regular", + "postscriptName": "MarkaziText-Regular", + "category": "serif", + "capHeight": 990, + "ascent": 1718, + "descent": -740, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 746, + "xWidthAvg": 687, + "subsets": { + "latin": { + "xWidthAvg": 687 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "500": { + "familyName": "Markazi Text", + "fullName": "Markazi Text Medium", + "postscriptName": "MarkaziText-Medium", + "category": "serif", + "capHeight": 990, + "ascent": 1718, + "descent": -740, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 746, + "xWidthAvg": 693, + "subsets": { + "latin": { + "xWidthAvg": 693 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600": { + "familyName": "Markazi Text", + "fullName": "Markazi Text SemiBold", + "postscriptName": "MarkaziText-SemiBold", + "category": "serif", + "capHeight": 990, + "ascent": 1718, + "descent": -740, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 746, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Markazi Text", + "fullName": "Markazi Text Bold", + "postscriptName": "MarkaziText-Bold", + "category": "serif", + "capHeight": 990, + "ascent": 1718, + "descent": -740, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 746, + "xWidthAvg": 705, + "subsets": { + "latin": { + "xWidthAvg": 705 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Markazi Text", + "fullName": "Markazi Text Regular", + "postscriptName": "MarkaziText-Regular", + "category": "serif", + "capHeight": 990, + "ascent": 1718, + "descent": -740, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 746, + "xWidthAvg": 687, + "subsets": { + "latin": { + "xWidthAvg": 687 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "markoOne": { + "familyName": "Marko One", + "fullName": "Marko One", + "postscriptName": "MarkoOne-Regular", + "category": "serif", + "capHeight": 1475, + "ascent": 2019, + "descent": -727, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 713, + "xWidthAvg": 1084, + "subsets": { + "latin": { + "xWidthAvg": 1084 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Marko One", + "fullName": "Marko One", + "postscriptName": "MarkoOne-Regular", + "category": "serif", + "capHeight": 1475, + "ascent": 2019, + "descent": -727, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 713, + "xWidthAvg": 1084, + "subsets": { + "latin": { + "xWidthAvg": 1084 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "marmelad": { + "familyName": "Marmelad", + "fullName": "Marmelad Regular", + "postscriptName": "Marmelad-Regular", + "category": "sans-serif", + "capHeight": 709, + "ascent": 972, + "descent": -221, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1210 + } + }, + "variants": { + "regular": { + "familyName": "Marmelad", + "fullName": "Marmelad Regular", + "postscriptName": "Marmelad-Regular", + "category": "sans-serif", + "capHeight": 709, + "ascent": 972, + "descent": -221, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1210 + } + } + } + } + }, + "martel": { + "familyName": "Martel", + "fullName": "Martel", + "postscriptName": "Martel-Regular", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 595 + } + }, + "variants": { + "200": { + "familyName": "Martel", + "fullName": "Martel UltraLight", + "postscriptName": "Martel-UltraLight", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "300": { + "familyName": "Martel", + "fullName": "Martel Light", + "postscriptName": "Martel-Light", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "600": { + "familyName": "Martel", + "fullName": "Martel DemiBold", + "postscriptName": "Martel-DemiBold", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Martel", + "fullName": "Martel Bold", + "postscriptName": "Martel-Bold", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "800": { + "familyName": "Martel", + "fullName": "Martel ExtraBold", + "postscriptName": "Martel-ExtraBold", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "900": { + "familyName": "Martel", + "fullName": "Martel Heavy", + "postscriptName": "Martel-Heavy", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "regular": { + "familyName": "Martel", + "fullName": "Martel", + "postscriptName": "Martel-Regular", + "category": "serif", + "capHeight": 758, + "ascent": 1125, + "descent": -562, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 595 + } + } + } + } + }, + "martelSans": { + "familyName": "Martel Sans", + "fullName": "Martel Sans Regular", + "postscriptName": "MartelSans-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 460 + } + }, + "variants": { + "200": { + "familyName": "Martel Sans", + "fullName": "Martel Sans ExtraLight", + "postscriptName": "MartelSans-ExtraLight", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 431 + } + } + }, + "300": { + "familyName": "Martel Sans", + "fullName": "Martel Sans Light", + "postscriptName": "MartelSans-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 448 + } + } + }, + "600": { + "familyName": "Martel Sans", + "fullName": "Martel Sans SemiBold", + "postscriptName": "MartelSans-SemiBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 478 + } + } + }, + "700": { + "familyName": "Martel Sans", + "fullName": "Martel Sans Bold", + "postscriptName": "MartelSans-Bold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 495 + } + } + }, + "800": { + "familyName": "Martel Sans", + "fullName": "Martel Sans ExtraBold", + "postscriptName": "MartelSans-ExtraBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 513 + } + } + }, + "900": { + "familyName": "Martel Sans", + "fullName": "Martel Sans Black", + "postscriptName": "MartelSans-Black", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 568, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 530 + } + } + }, + "regular": { + "familyName": "Martel Sans", + "fullName": "Martel Sans Regular", + "postscriptName": "MartelSans-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1150, + "descent": -674, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 460 + } + } + } + } + }, + "martianMono": { + "familyName": "Martian Mono", + "fullName": "Martian Mono Regular", + "postscriptName": "MartianMono-Regular", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + }, + "variants": { + "100": { + "familyName": "Martian Mono", + "fullName": "Martian Mono Thin", + "postscriptName": "MartianMono-Thin", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "200": { + "familyName": "Martian Mono", + "fullName": "Martian Mono ExtraLight", + "postscriptName": "MartianMono-ExtraLight", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "300": { + "familyName": "Martian Mono", + "fullName": "Martian Mono Light", + "postscriptName": "MartianMono-Light", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500": { + "familyName": "Martian Mono", + "fullName": "Martian Mono Medium", + "postscriptName": "MartianMono-Medium", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600": { + "familyName": "Martian Mono", + "fullName": "Martian Mono SemiBold", + "postscriptName": "MartianMono-SemiBold", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700": { + "familyName": "Martian Mono", + "fullName": "Martian Mono Bold", + "postscriptName": "MartianMono-Bold", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800": { + "familyName": "Martian Mono", + "fullName": "Martian Mono ExtraBold", + "postscriptName": "MartianMono-ExtraBold", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "regular": { + "familyName": "Martian Mono", + "fullName": "Martian Mono Regular", + "postscriptName": "MartianMono-Regular", + "category": "monospace", + "capHeight": 800, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 700, + "subsets": { + "latin": { + "xWidthAvg": 700 + }, + "thai": { + "xWidthAvg": 700 + } + } + } + } + }, + "marvel": { + "familyName": "Marvel", + "fullName": "Marvel", + "postscriptName": "Marvel-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 951, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Marvel", + "fullName": "Marvel Bold", + "postscriptName": "Marvel-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 951, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 344, + "subsets": { + "latin": { + "xWidthAvg": 344 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Marvel", + "fullName": "Marvel", + "postscriptName": "Marvel-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 951, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 343, + "subsets": { + "latin": { + "xWidthAvg": 343 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Marvel", + "fullName": "Marvel Italic", + "postscriptName": "Marvel-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 951, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Marvel", + "fullName": "Marvel Bold Italic", + "postscriptName": "Marvel-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 951, + "descent": -259, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mate": { + "familyName": "Mate", + "fullName": "Mate Regular", + "postscriptName": "Mate-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 958, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Mate", + "fullName": "Mate Regular", + "postscriptName": "Mate-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 958, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 0 + } + } + }, + "italic": { + "familyName": "Mate", + "fullName": "Mate Italic", + "postscriptName": "Mate-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 958, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 235 + } + } + } + } + }, + "mateSC": { + "familyName": "Mate SC", + "fullName": "Mate SC Regular", + "postscriptName": "MateSC-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 958, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 235 + } + }, + "variants": { + "regular": { + "familyName": "Mate SC", + "fullName": "Mate SC Regular", + "postscriptName": "MateSC-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 958, + "descent": -262, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 235 + } + } + } + } + }, + "matemasie": { + "familyName": "Matemasie", + "fullName": "Matemasie Regular", + "postscriptName": "Matemasie-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1250, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 791 + } + }, + "variants": { + "regular": { + "familyName": "Matemasie", + "fullName": "Matemasie Regular", + "postscriptName": "Matemasie-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1250, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 791 + } + } + } + } + }, + "materialIcons": { + "familyName": "Material Icons", + "fullName": "Material Icons", + "postscriptName": "MaterialIcons-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Material Icons", + "fullName": "Material Icons", + "postscriptName": "MaterialIcons-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "materialIconsOutlined": { + "familyName": "Material Icons Outlined", + "fullName": "Material Icons Outlined Regular", + "postscriptName": "MaterialIconsOutlined-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Material Icons Outlined", + "fullName": "Material Icons Outlined Regular", + "postscriptName": "MaterialIconsOutlined-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "materialIconsRound": { + "familyName": "Material Icons Round", + "fullName": "Material Icons Round Regular", + "postscriptName": "MaterialIconsRound-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Material Icons Round", + "fullName": "Material Icons Round Regular", + "postscriptName": "MaterialIconsRound-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "materialIconsSharp": { + "familyName": "Material Icons Sharp", + "fullName": "Material Icons Sharp Regular", + "postscriptName": "MaterialIconsSharp-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Material Icons Sharp", + "fullName": "Material Icons Sharp Regular", + "postscriptName": "MaterialIconsSharp-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "materialIconsTwoTone": { + "familyName": "Material Icons Two Tone", + "fullName": "Material Icons Two Tone Regular", + "postscriptName": "MaterialIconsTwoTone-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Material Icons Two Tone", + "fullName": "Material Icons Two Tone Regular", + "postscriptName": "MaterialIconsTwoTone-Regular", + "category": "monospace", + "capHeight": 0, + "ascent": 512, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 512, + "xHeight": 0, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "materialSymbolsOutlined": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined Regular", + "postscriptName": "MaterialSymbolsOutlined-Regular", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + }, + "variants": { + "100": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined Thin", + "postscriptName": "MaterialSymbolsOutlined-Thin", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "200": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined ExtraLight", + "postscriptName": "MaterialSymbolsOutlined-ExtraLight", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "300": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined Light", + "postscriptName": "MaterialSymbolsOutlined-Light", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "500": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined Medium", + "postscriptName": "MaterialSymbolsOutlined-Medium", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "600": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined SemiBold", + "postscriptName": "MaterialSymbolsOutlined-SemiBold", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "700": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined Bold", + "postscriptName": "MaterialSymbolsOutlined-Bold", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "regular": { + "familyName": "Material Symbols Outlined", + "fullName": "Material Symbols Outlined Regular", + "postscriptName": "MaterialSymbolsOutlined-Regular", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + } + } + }, + "materialSymbolsRounded": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded Regular", + "postscriptName": "MaterialSymbolsRounded-Regular", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + }, + "variants": { + "100": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded Thin", + "postscriptName": "MaterialSymbolsRounded-Thin", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "200": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded ExtraLight", + "postscriptName": "MaterialSymbolsRounded-ExtraLight", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "300": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded Light", + "postscriptName": "MaterialSymbolsRounded-Light", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "500": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded Medium", + "postscriptName": "MaterialSymbolsRounded-Medium", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "600": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded SemiBold", + "postscriptName": "MaterialSymbolsRounded-SemiBold", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "700": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded Bold", + "postscriptName": "MaterialSymbolsRounded-Bold", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "regular": { + "familyName": "Material Symbols Rounded", + "fullName": "Material Symbols Rounded Regular", + "postscriptName": "MaterialSymbolsRounded-Regular", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + } + } + }, + "materialSymbolsSharp": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp Regular", + "postscriptName": "MaterialSymbolsSharp-Regular", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + }, + "variants": { + "100": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp Thin", + "postscriptName": "MaterialSymbolsSharp-Thin", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "200": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp ExtraLight", + "postscriptName": "MaterialSymbolsSharp-ExtraLight", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "300": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp Light", + "postscriptName": "MaterialSymbolsSharp-Light", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "500": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp Medium", + "postscriptName": "MaterialSymbolsSharp-Medium", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "600": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp SemiBold", + "postscriptName": "MaterialSymbolsSharp-SemiBold", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "700": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp Bold", + "postscriptName": "MaterialSymbolsSharp-Bold", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "regular": { + "familyName": "Material Symbols Sharp", + "fullName": "Material Symbols Sharp Regular", + "postscriptName": "MaterialSymbolsSharp-Regular", + "category": "monospace", + "capHeight": 960, + "ascent": 1056, + "descent": -96, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 960, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 960 + } + } + } + } + }, + "mavenPro": { + "familyName": "Maven Pro", + "fullName": "Maven Pro Regular", + "postscriptName": "MavenPro-Regular", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Maven Pro", + "fullName": "Maven Pro Medium", + "postscriptName": "MavenPro-Medium", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Maven Pro", + "fullName": "Maven Pro SemiBold", + "postscriptName": "MavenPro-SemiBold", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Maven Pro", + "fullName": "Maven Pro Bold", + "postscriptName": "MavenPro-Bold", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Maven Pro", + "fullName": "Maven Pro ExtraBold", + "postscriptName": "MavenPro-ExtraBold", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Maven Pro", + "fullName": "Maven Pro Black", + "postscriptName": "MavenPro-Black", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Maven Pro", + "fullName": "Maven Pro Regular", + "postscriptName": "MavenPro-Regular", + "category": "sans-serif", + "capHeight": 667, + "ascent": 965, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mcLaren": { + "familyName": "McLaren", + "fullName": "McLaren", + "postscriptName": "McLaren-Regular", + "category": "display", + "capHeight": 1445, + "ascent": 2216, + "descent": -722, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1042, + "xWidthAvg": 1042, + "subsets": { + "latin": { + "xWidthAvg": 1042 + }, + "thai": { + "xWidthAvg": 537 + } + }, + "variants": { + "regular": { + "familyName": "McLaren", + "fullName": "McLaren", + "postscriptName": "McLaren-Regular", + "category": "display", + "capHeight": 1445, + "ascent": 2216, + "descent": -722, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1042, + "xWidthAvg": 1042, + "subsets": { + "latin": { + "xWidthAvg": 1042 + }, + "thai": { + "xWidthAvg": 537 + } + } + } + } + }, + "meaCulpa": { + "familyName": "Mea Culpa", + "fullName": "Mea Culpa Regular", + "postscriptName": "MeaCulpa-Regular", + "category": "handwriting", + "capHeight": 800, + "ascent": 1000, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 363 + } + }, + "variants": { + "regular": { + "familyName": "Mea Culpa", + "fullName": "Mea Culpa Regular", + "postscriptName": "MeaCulpa-Regular", + "category": "handwriting", + "capHeight": 800, + "ascent": 1000, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 363 + } + } + } + } + }, + "meddon": { + "familyName": "Meddon", + "fullName": "Meddon", + "postscriptName": "Meddon", + "category": "handwriting", + "capHeight": 2177, + "ascent": 2860, + "descent": -1457, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 756, + "xWidthAvg": 1250, + "subsets": { + "latin": { + "xWidthAvg": 1250 + }, + "thai": { + "xWidthAvg": 1124 + } + }, + "variants": { + "regular": { + "familyName": "Meddon", + "fullName": "Meddon", + "postscriptName": "Meddon", + "category": "handwriting", + "capHeight": 2177, + "ascent": 2860, + "descent": -1457, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 756, + "xWidthAvg": 1250, + "subsets": { + "latin": { + "xWidthAvg": 1250 + }, + "thai": { + "xWidthAvg": 1124 + } + } + } + } + }, + "medievalSharp": { + "familyName": "MedievalSharp", + "fullName": "MedievalSharp", + "postscriptName": "MedievalSharp", + "category": "display", + "capHeight": 201, + "ascent": 1771, + "descent": -543, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 224, + "xWidthAvg": 947, + "subsets": { + "latin": { + "xWidthAvg": 947 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "MedievalSharp", + "fullName": "MedievalSharp", + "postscriptName": "MedievalSharp", + "category": "display", + "capHeight": 201, + "ascent": 1771, + "descent": -543, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 224, + "xWidthAvg": 947, + "subsets": { + "latin": { + "xWidthAvg": 947 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "medulaOne": { + "familyName": "Medula One", + "fullName": "Medula One", + "postscriptName": "MedulaOne-Regular", + "category": "display", + "capHeight": 650, + "ascent": 846, + "descent": -162, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 255, + "subsets": { + "latin": { + "xWidthAvg": 255 + }, + "thai": { + "xWidthAvg": 120 + } + }, + "variants": { + "regular": { + "familyName": "Medula One", + "fullName": "Medula One", + "postscriptName": "MedulaOne-Regular", + "category": "display", + "capHeight": 650, + "ascent": 846, + "descent": -162, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 255, + "subsets": { + "latin": { + "xWidthAvg": 255 + }, + "thai": { + "xWidthAvg": 120 + } + } + } + } + }, + "meeraInimai": { + "familyName": "Meera Inimai", + "fullName": "MeeraInimai-Regular", + "postscriptName": "MeeraInimai-Regular", + "category": "sans-serif", + "capHeight": 1460, + "ascent": 1986, + "descent": -1200, + "lineGap": 184, + "unitsPerEm": 2048, + "xHeight": 1056, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 1122 + } + }, + "variants": { + "regular": { + "familyName": "Meera Inimai", + "fullName": "MeeraInimai-Regular", + "postscriptName": "MeeraInimai-Regular", + "category": "sans-serif", + "capHeight": 1460, + "ascent": 1986, + "descent": -1200, + "lineGap": 184, + "unitsPerEm": 2048, + "xHeight": 1056, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 1122 + } + } + } + } + }, + "megrim": { + "familyName": "Megrim", + "fullName": "Megrim", + "postscriptName": "Megrim", + "category": "display", + "capHeight": 700, + "ascent": 880, + "descent": -200, + "lineGap": 90, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Megrim", + "fullName": "Megrim", + "postscriptName": "Megrim", + "category": "display", + "capHeight": 700, + "ascent": 880, + "descent": -200, + "lineGap": 90, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "meieScript": { + "familyName": "Meie Script", + "fullName": "Meie Script", + "postscriptName": "MeieScript-Regular", + "category": "handwriting", + "capHeight": 862, + "ascent": 1814, + "descent": -780, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 354, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 614 + } + }, + "variants": { + "regular": { + "familyName": "Meie Script", + "fullName": "Meie Script", + "postscriptName": "MeieScript-Regular", + "category": "handwriting", + "capHeight": 862, + "ascent": 1814, + "descent": -780, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 354, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 614 + } + } + } + } + }, + "meowScript": { + "familyName": "Meow Script", + "fullName": "Meow Script Regular", + "postscriptName": "MeowScript-Regular", + "category": "handwriting", + "capHeight": 560, + "ascent": 830, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 323, + "subsets": { + "latin": { + "xWidthAvg": 323 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Meow Script", + "fullName": "Meow Script Regular", + "postscriptName": "MeowScript-Regular", + "category": "handwriting", + "capHeight": 560, + "ascent": 830, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 320, + "xWidthAvg": 323, + "subsets": { + "latin": { + "xWidthAvg": 323 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "merienda": { + "familyName": "Merienda", + "fullName": "Merienda Regular", + "postscriptName": "Merienda-Regular", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 708 + } + }, + "variants": { + "300": { + "familyName": "Merienda", + "fullName": "Merienda Light", + "postscriptName": "Merienda-Light", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 686 + } + } + }, + "500": { + "familyName": "Merienda", + "fullName": "Merienda Medium", + "postscriptName": "Merienda-Medium", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 726 + } + } + }, + "600": { + "familyName": "Merienda", + "fullName": "Merienda SemiBold", + "postscriptName": "Merienda-SemiBold", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "700": { + "familyName": "Merienda", + "fullName": "Merienda Bold", + "postscriptName": "Merienda-Bold", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 768 + } + } + }, + "800": { + "familyName": "Merienda", + "fullName": "Merienda ExtraBold", + "postscriptName": "Merienda-ExtraBold", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 794 + } + } + }, + "900": { + "familyName": "Merienda", + "fullName": "Merienda Black", + "postscriptName": "Merienda-Black", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 808 + } + } + }, + "regular": { + "familyName": "Merienda", + "fullName": "Merienda Regular", + "postscriptName": "Merienda-Regular", + "category": "handwriting", + "capHeight": 847, + "ascent": 1102, + "descent": -342, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 599, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 708 + } + } + } + } + }, + "merriweather": { + "familyName": "Merriweather", + "fullName": "Merriweather Regular", + "postscriptName": "Merriweather-Regular", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 864 + } + }, + "variants": { + "300": { + "familyName": "Merriweather", + "fullName": "Merriweather Light", + "postscriptName": "Merriweather-Light", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 864 + } + } + }, + "700": { + "familyName": "Merriweather", + "fullName": "Merriweather Bold", + "postscriptName": "Merriweather-Bold", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 864 + } + } + }, + "900": { + "familyName": "Merriweather", + "fullName": "Merriweather Black", + "postscriptName": "Merriweather-Black", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 864 + } + } + }, + "regular": { + "familyName": "Merriweather", + "fullName": "Merriweather Regular", + "postscriptName": "Merriweather-Regular", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 864 + } + } + }, + "italic": { + "familyName": "Merriweather", + "fullName": "Merriweather Italic", + "postscriptName": "Merriweather-Italic", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 906 + } + } + }, + "900italic": { + "familyName": "Merriweather", + "fullName": "Merriweather Black Italic", + "postscriptName": "Merriweather-BlackItalic", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 914 + } + } + }, + "700italic": { + "familyName": "Merriweather", + "fullName": "Merriweather Bold Italic", + "postscriptName": "Merriweather-BoldItalic", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 910 + } + } + }, + "300italic": { + "familyName": "Merriweather", + "fullName": "Merriweather Light Italic", + "postscriptName": "Merriweather-LightItalic", + "category": "serif", + "capHeight": 743, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 902 + } + } + } + } + }, + "merriweatherSans": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Regular", + "postscriptName": "MerriweatherSans-Regular", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 1830 + } + }, + "variants": { + "300": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Light", + "postscriptName": "MerriweatherSans-Light", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 1828 + } + } + }, + "500": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Medium", + "postscriptName": "MerriweatherSans-Medium", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 961, + "subsets": { + "latin": { + "xWidthAvg": 961 + }, + "thai": { + "xWidthAvg": 1831 + } + } + }, + "600": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans SemiBold", + "postscriptName": "MerriweatherSans-SemiBold", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 973, + "subsets": { + "latin": { + "xWidthAvg": 973 + }, + "thai": { + "xWidthAvg": 1832 + } + } + }, + "700": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Bold", + "postscriptName": "MerriweatherSans-Bold", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 985, + "subsets": { + "latin": { + "xWidthAvg": 985 + }, + "thai": { + "xWidthAvg": 1832 + } + } + }, + "800": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans ExtraBold", + "postscriptName": "MerriweatherSans-ExtraBold", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 1834 + } + } + }, + "regular": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Regular", + "postscriptName": "MerriweatherSans-Regular", + "category": "sans-serif", + "capHeight": 1486, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 949, + "subsets": { + "latin": { + "xWidthAvg": 949 + }, + "thai": { + "xWidthAvg": 1830 + } + } + }, + "italic": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Italic", + "postscriptName": "MerriweatherSans-Italic", + "category": "sans-serif", + "capHeight": 1494, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 893, + "subsets": { + "latin": { + "xWidthAvg": 893 + }, + "thai": { + "xWidthAvg": 1828 + } + } + }, + "800italic": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans ExtraBold Italic", + "postscriptName": "MerriweatherSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1494, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 958, + "subsets": { + "latin": { + "xWidthAvg": 958 + }, + "thai": { + "xWidthAvg": 1828 + } + } + }, + "700italic": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Bold Italic", + "postscriptName": "MerriweatherSans-BoldItalic", + "category": "sans-serif", + "capHeight": 1494, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 1828 + } + } + }, + "600italic": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans SemiBold Italic", + "postscriptName": "MerriweatherSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1494, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1828 + } + } + }, + "500italic": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Medium Italic", + "postscriptName": "MerriweatherSans-MediumItalic", + "category": "sans-serif", + "capHeight": 1494, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 907, + "subsets": { + "latin": { + "xWidthAvg": 907 + }, + "thai": { + "xWidthAvg": 1828 + } + } + }, + "300italic": { + "familyName": "Merriweather Sans", + "fullName": "Merriweather Sans Light Italic", + "postscriptName": "MerriweatherSans-LightItalic", + "category": "sans-serif", + "capHeight": 1494, + "ascent": 1968, + "descent": -546, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1114, + "xWidthAvg": 875, + "subsets": { + "latin": { + "xWidthAvg": 875 + }, + "thai": { + "xWidthAvg": 1802 + } + } + } + } + }, + "metal": { + "familyName": "Metal", + "fullName": "Metal Regular", + "postscriptName": "Metal-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2600, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 746, + "subsets": { + "latin": { + "xWidthAvg": 746 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Metal", + "fullName": "Metal Regular", + "postscriptName": "Metal-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2600, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 746, + "subsets": { + "latin": { + "xWidthAvg": 746 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "metalMania": { + "familyName": "Metal Mania", + "fullName": "Metal Mania", + "postscriptName": "MetalMania-Regular", + "category": "display", + "capHeight": 820, + "ascent": 965, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 620, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 326 + } + }, + "variants": { + "regular": { + "familyName": "Metal Mania", + "fullName": "Metal Mania", + "postscriptName": "MetalMania-Regular", + "category": "display", + "capHeight": 820, + "ascent": 965, + "descent": -303, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 620, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 326 + } + } + } + } + }, + "metamorphous": { + "familyName": "Metamorphous", + "fullName": "Metamorphous", + "postscriptName": "Metamorphous", + "category": "display", + "capHeight": 1530, + "ascent": 1972, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1208, + "xWidthAvg": 1140, + "subsets": { + "latin": { + "xWidthAvg": 1140 + }, + "thai": { + "xWidthAvg": 1770 + } + }, + "variants": { + "regular": { + "familyName": "Metamorphous", + "fullName": "Metamorphous", + "postscriptName": "Metamorphous", + "category": "display", + "capHeight": 1530, + "ascent": 1972, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1208, + "xWidthAvg": 1140, + "subsets": { + "latin": { + "xWidthAvg": 1140 + }, + "thai": { + "xWidthAvg": 1770 + } + } + } + } + }, + "metrophobic": { + "familyName": "Metrophobic", + "fullName": "Metrophobic Regular", + "postscriptName": "Metrophobic-Regular", + "category": "sans-serif", + "capHeight": 1441, + "ascent": 2065, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1011, + "xWidthAvg": 945, + "subsets": { + "latin": { + "xWidthAvg": 945 + }, + "thai": { + "xWidthAvg": 1154 + } + }, + "variants": { + "regular": { + "familyName": "Metrophobic", + "fullName": "Metrophobic Regular", + "postscriptName": "Metrophobic-Regular", + "category": "sans-serif", + "capHeight": 1441, + "ascent": 2065, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1011, + "xWidthAvg": 945, + "subsets": { + "latin": { + "xWidthAvg": 945 + }, + "thai": { + "xWidthAvg": 1154 + } + } + } + } + }, + "michroma": { + "familyName": "Michroma", + "fullName": "Michroma Regular", + "postscriptName": "Michroma-Regular", + "category": "sans-serif", + "capHeight": 1536, + "ascent": 2368, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1152, + "xWidthAvg": 1293, + "subsets": { + "latin": { + "xWidthAvg": 1293 + }, + "thai": { + "xWidthAvg": 1792 + } + }, + "variants": { + "regular": { + "familyName": "Michroma", + "fullName": "Michroma Regular", + "postscriptName": "Michroma-Regular", + "category": "sans-serif", + "capHeight": 1536, + "ascent": 2368, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1152, + "xWidthAvg": 1293, + "subsets": { + "latin": { + "xWidthAvg": 1293 + }, + "thai": { + "xWidthAvg": 1792 + } + } + } + } + }, + "micro5": { + "familyName": "Micro 5", + "fullName": "Micro 5 Regular", + "postscriptName": "Micro5-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1190, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1650, + "xHeight": 600, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "Micro 5", + "fullName": "Micro 5 Regular", + "postscriptName": "Micro5-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1190, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1650, + "xHeight": 600, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "micro5Charted": { + "familyName": "Micro 5 Charted", + "fullName": "Micro 5 Charted Regular", + "postscriptName": "Micro5Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1190, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1650, + "xHeight": 600, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "Micro 5 Charted", + "fullName": "Micro 5 Charted Regular", + "postscriptName": "Micro5Charted-Regular", + "category": "display", + "capHeight": 750, + "ascent": 1190, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1650, + "xHeight": 600, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "milonga": { + "familyName": "Milonga", + "fullName": "Milonga", + "postscriptName": "Milonga-Regular", + "category": "display", + "capHeight": 809, + "ascent": 990, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 712 + } + }, + "variants": { + "regular": { + "familyName": "Milonga", + "fullName": "Milonga", + "postscriptName": "Milonga-Regular", + "category": "display", + "capHeight": 809, + "ascent": 990, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 712 + } + } + } + } + }, + "miltonian": { + "familyName": "Miltonian", + "fullName": "Miltonian", + "postscriptName": "Miltonian-Regular", + "category": "display", + "capHeight": 689, + "ascent": 918, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Miltonian", + "fullName": "Miltonian", + "postscriptName": "Miltonian-Regular", + "category": "display", + "capHeight": 689, + "ascent": 918, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "miltonianTattoo": { + "familyName": "Miltonian Tattoo", + "fullName": "Miltonian Tattoo", + "postscriptName": "MiltonianTattoo-Regular", + "category": "display", + "capHeight": 689, + "ascent": 918, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Miltonian Tattoo", + "fullName": "Miltonian Tattoo", + "postscriptName": "MiltonianTattoo-Regular", + "category": "display", + "capHeight": 689, + "ascent": 918, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "mina": { + "familyName": "Mina", + "fullName": "Mina", + "postscriptName": "Mina-Regular", + "category": "sans-serif", + "ascent": 1075, + "descent": -515, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "700": { + "familyName": "Mina", + "fullName": "Mina Bold", + "postscriptName": "Mina-Bold", + "category": "sans-serif", + "ascent": 1075, + "descent": -515, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "regular": { + "familyName": "Mina", + "fullName": "Mina", + "postscriptName": "Mina-Regular", + "category": "sans-serif", + "ascent": 1075, + "descent": -515, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "mingzat": { + "familyName": "Mingzat", + "fullName": "Mingzat", + "postscriptName": "Mingzat-Regular", + "category": "sans-serif", + "capHeight": 1100, + "ascent": 1427, + "descent": -670, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 705, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 760 + } + }, + "variants": { + "regular": { + "familyName": "Mingzat", + "fullName": "Mingzat", + "postscriptName": "Mingzat-Regular", + "category": "sans-serif", + "capHeight": 1100, + "ascent": 1427, + "descent": -670, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 705, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 760 + } + } + } + } + }, + "miniver": { + "familyName": "Miniver", + "fullName": "Miniver", + "postscriptName": "Miniver", + "category": "display", + "capHeight": 782, + "ascent": 1019, + "descent": -474, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 501, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 338 + } + }, + "variants": { + "regular": { + "familyName": "Miniver", + "fullName": "Miniver", + "postscriptName": "Miniver", + "category": "display", + "capHeight": 782, + "ascent": 1019, + "descent": -474, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 501, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 338 + } + } + } + } + }, + "miriamLibre": { + "familyName": "Miriam Libre", + "fullName": "Miriam Libre Regular", + "postscriptName": "MiriamLibre-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 969, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Miriam Libre", + "fullName": "Miriam Libre Medium", + "postscriptName": "MiriamLibre-Medium", + "category": "sans-serif", + "capHeight": 695, + "ascent": 969, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Miriam Libre", + "fullName": "Miriam Libre SemiBold", + "postscriptName": "MiriamLibre-SemiBold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 969, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Miriam Libre", + "fullName": "Miriam Libre Bold", + "postscriptName": "MiriamLibre-Bold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 969, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Miriam Libre", + "fullName": "Miriam Libre Regular", + "postscriptName": "MiriamLibre-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 969, + "descent": -344, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mirza": { + "familyName": "Mirza", + "fullName": "Mirza Regular", + "postscriptName": "Mirza-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 547, + "descent": -453, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "500": { + "familyName": "Mirza", + "fullName": "Mirza Medium", + "postscriptName": "Mirza-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 547, + "descent": -453, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "600": { + "familyName": "Mirza", + "fullName": "Mirza SemiBold", + "postscriptName": "Mirza-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 547, + "descent": -453, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "700": { + "familyName": "Mirza", + "fullName": "Mirza Bold", + "postscriptName": "Mirza-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 547, + "descent": -453, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 364 + } + } + }, + "regular": { + "familyName": "Mirza", + "fullName": "Mirza Regular", + "postscriptName": "Mirza-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 547, + "descent": -453, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "missFajardose": { + "familyName": "Miss Fajardose", + "fullName": "Miss Fajardose Regular", + "postscriptName": "MissFajardose-Regular", + "category": "handwriting", + "capHeight": 658, + "ascent": 859, + "descent": -389, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 158, + "xWidthAvg": 217, + "subsets": { + "latin": { + "xWidthAvg": 217 + }, + "thai": { + "xWidthAvg": 130 + } + }, + "variants": { + "regular": { + "familyName": "Miss Fajardose", + "fullName": "Miss Fajardose Regular", + "postscriptName": "MissFajardose-Regular", + "category": "handwriting", + "capHeight": 658, + "ascent": 859, + "descent": -389, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 158, + "xWidthAvg": 217, + "subsets": { + "latin": { + "xWidthAvg": 217 + }, + "thai": { + "xWidthAvg": 130 + } + } + } + } + }, + "mitr": { + "familyName": "Mitr", + "fullName": "Mitr Regular", + "postscriptName": "Mitr-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 560 + } + }, + "variants": { + "200": { + "familyName": "Mitr", + "fullName": "Mitr ExtraLight", + "postscriptName": "Mitr-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 549 + } + } + }, + "300": { + "familyName": "Mitr", + "fullName": "Mitr Light", + "postscriptName": "Mitr-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 554 + } + } + }, + "500": { + "familyName": "Mitr", + "fullName": "Mitr Medium", + "postscriptName": "Mitr-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "600": { + "familyName": "Mitr", + "fullName": "Mitr SemiBold", + "postscriptName": "Mitr-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 574 + } + } + }, + "700": { + "familyName": "Mitr", + "fullName": "Mitr Bold", + "postscriptName": "Mitr-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "regular": { + "familyName": "Mitr", + "fullName": "Mitr Regular", + "postscriptName": "Mitr-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1150, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 560 + } + } + } + } + }, + "mochiyPopOne": { + "familyName": "Mochiy Pop One", + "fullName": "Mochiy Pop One Regular", + "postscriptName": "MochiyPopOne-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Mochiy Pop One", + "fullName": "Mochiy Pop One Regular", + "postscriptName": "MochiyPopOne-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "mochiyPopPOne": { + "familyName": "Mochiy Pop P One", + "fullName": "Mochiy Pop P One Regular", + "postscriptName": "MochiyPopPOne-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Mochiy Pop P One", + "fullName": "Mochiy Pop P One Regular", + "postscriptName": "MochiyPopPOne-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "modak": { + "familyName": "Modak", + "fullName": "Modak", + "postscriptName": "Modak", + "category": "display", + "capHeight": 1290, + "ascent": 2035, + "descent": -1049, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1099, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1278 + } + }, + "variants": { + "regular": { + "familyName": "Modak", + "fullName": "Modak", + "postscriptName": "Modak", + "category": "display", + "capHeight": 1290, + "ascent": 2035, + "descent": -1049, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1099, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1278 + } + } + } + } + }, + "modernAntiqua": { + "familyName": "Modern Antiqua", + "fullName": "Modern Antiqua Regular", + "postscriptName": "ModernAntiqua-Regular", + "category": "display", + "capHeight": 1511, + "ascent": 1815, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1089, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Modern Antiqua", + "fullName": "Modern Antiqua Regular", + "postscriptName": "ModernAntiqua-Regular", + "category": "display", + "capHeight": 1511, + "ascent": 1815, + "descent": -508, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1089, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "moderustic": { + "familyName": "Moderustic", + "fullName": "Moderustic Regular", + "postscriptName": "Moderustic-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + }, + "variants": { + "300": { + "familyName": "Moderustic", + "fullName": "Moderustic Light", + "postscriptName": "Moderustic-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + } + }, + "500": { + "familyName": "Moderustic", + "fullName": "Moderustic Medium", + "postscriptName": "Moderustic-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + } + }, + "600": { + "familyName": "Moderustic", + "fullName": "Moderustic SemiBold", + "postscriptName": "Moderustic-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + } + }, + "700": { + "familyName": "Moderustic", + "fullName": "Moderustic Bold", + "postscriptName": "Moderustic-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + } + }, + "800": { + "familyName": "Moderustic", + "fullName": "Moderustic ExtraBold", + "postscriptName": "Moderustic-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + } + }, + "regular": { + "familyName": "Moderustic", + "fullName": "Moderustic Regular", + "postscriptName": "Moderustic-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 755 + } + } + } + } + }, + "mogra": { + "familyName": "Mogra", + "fullName": "Mogra Regular", + "postscriptName": "Mogra-Regular", + "category": "display", + "capHeight": 705, + "ascent": 750, + "descent": -250, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 565, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 650 + } + }, + "variants": { + "regular": { + "familyName": "Mogra", + "fullName": "Mogra Regular", + "postscriptName": "Mogra-Regular", + "category": "display", + "capHeight": 705, + "ascent": 750, + "descent": -250, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 565, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 650 + } + } + } + } + }, + "mohave": { + "familyName": "Mohave", + "fullName": "Mohave Regular", + "postscriptName": "Mohave-Regular", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1017 + } + }, + "variants": { + "300": { + "familyName": "Mohave", + "fullName": "Mohave Light", + "postscriptName": "Mohave-Light", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 753, + "subsets": { + "latin": { + "xWidthAvg": 753 + }, + "thai": { + "xWidthAvg": 1036 + } + } + }, + "500": { + "familyName": "Mohave", + "fullName": "Mohave Medium", + "postscriptName": "Mohave-Medium", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 998 + } + } + }, + "600": { + "familyName": "Mohave", + "fullName": "Mohave SemiBold", + "postscriptName": "Mohave-SemiBold", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 760, + "subsets": { + "latin": { + "xWidthAvg": 760 + }, + "thai": { + "xWidthAvg": 979 + } + } + }, + "700": { + "familyName": "Mohave", + "fullName": "Mohave Bold", + "postscriptName": "Mohave-Bold", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 762, + "subsets": { + "latin": { + "xWidthAvg": 762 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "regular": { + "familyName": "Mohave", + "fullName": "Mohave Regular", + "postscriptName": "Mohave-Regular", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1017 + } + } + }, + "italic": { + "familyName": "Mohave", + "fullName": "Mohave Italic", + "postscriptName": "Mohave-Italic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 758, + "subsets": { + "latin": { + "xWidthAvg": 758 + }, + "thai": { + "xWidthAvg": 1018 + } + } + }, + "700italic": { + "familyName": "Mohave", + "fullName": "Mohave Bold Italic", + "postscriptName": "Mohave-BoldItalic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 766, + "subsets": { + "latin": { + "xWidthAvg": 766 + }, + "thai": { + "xWidthAvg": 962 + } + } + }, + "600italic": { + "familyName": "Mohave", + "fullName": "Mohave SemiBold Italic", + "postscriptName": "Mohave-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 763, + "subsets": { + "latin": { + "xWidthAvg": 763 + }, + "thai": { + "xWidthAvg": 981 + } + } + }, + "500italic": { + "familyName": "Mohave", + "fullName": "Mohave Medium Italic", + "postscriptName": "Mohave-MediumItalic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 760, + "subsets": { + "latin": { + "xWidthAvg": 760 + }, + "thai": { + "xWidthAvg": 999 + } + } + }, + "300italic": { + "familyName": "Mohave", + "fullName": "Mohave Light Italic", + "postscriptName": "Mohave-LightItalic", + "category": "sans-serif", + "capHeight": 1500, + "ascent": 1980, + "descent": -806, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1036 + } + } + } + } + }, + "moiraiOne": { + "familyName": "Moirai One", + "fullName": "Moirai One Regular", + "postscriptName": "MoiraiOne-Regular", + "category": "display", + "capHeight": 778, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Moirai One", + "fullName": "Moirai One Regular", + "postscriptName": "MoiraiOne-Regular", + "category": "display", + "capHeight": 778, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "molengo": { + "familyName": "Molengo", + "fullName": "Molengo", + "postscriptName": "Molengo-Regular", + "category": "sans-serif", + "capHeight": 1391, + "ascent": 1928, + "descent": -522, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 938, + "xWidthAvg": 861, + "subsets": { + "latin": { + "xWidthAvg": 861 + }, + "thai": { + "xWidthAvg": 886 + } + }, + "variants": { + "regular": { + "familyName": "Molengo", + "fullName": "Molengo", + "postscriptName": "Molengo-Regular", + "category": "sans-serif", + "capHeight": 1391, + "ascent": 1928, + "descent": -522, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 938, + "xWidthAvg": 861, + "subsets": { + "latin": { + "xWidthAvg": 861 + }, + "thai": { + "xWidthAvg": 886 + } + } + } + } + }, + "molle": { + "familyName": "Molle", + "fullName": "Molle", + "postscriptName": "Molle-Regular", + "category": "handwriting", + "capHeight": 1588, + "ascent": 1852, + "descent": -701, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 910, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "italic": { + "familyName": "Molle", + "fullName": "Molle", + "postscriptName": "Molle-Regular", + "category": "handwriting", + "capHeight": 1588, + "ascent": 1852, + "descent": -701, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 910, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "monaSans": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Regular", + "postscriptName": "MonaSans-Regular", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 866 + } + }, + "variants": { + "200": { + "familyName": "Mona Sans", + "fullName": "Mona Sans ExtraLight", + "postscriptName": "MonaSans-ExtraLight", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "300": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Light", + "postscriptName": "MonaSans-Light", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 521, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "500": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Medium", + "postscriptName": "MonaSans-Medium", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "600": { + "familyName": "Mona Sans", + "fullName": "Mona Sans SemiBold", + "postscriptName": "MonaSans-SemiBold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "700": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Bold", + "postscriptName": "MonaSans-Bold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "800": { + "familyName": "Mona Sans", + "fullName": "Mona Sans ExtraBold", + "postscriptName": "MonaSans-ExtraBold", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "900": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Black", + "postscriptName": "MonaSans-Black", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "regular": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Regular", + "postscriptName": "MonaSans-Regular", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 866 + } + } + }, + "italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Italic", + "postscriptName": "MonaSans-Italic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 885 + } + } + }, + "900italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Black Italic", + "postscriptName": "MonaSans-BlackItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 886 + } + } + }, + "800italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans ExtraBold Italic", + "postscriptName": "MonaSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 886 + } + } + }, + "700italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Bold Italic", + "postscriptName": "MonaSans-BoldItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 886 + } + } + }, + "600italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans SemiBold Italic", + "postscriptName": "MonaSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 886 + } + } + }, + "500italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Medium Italic", + "postscriptName": "MonaSans-MediumItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 529, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 885 + } + } + }, + "300italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans Light Italic", + "postscriptName": "MonaSans-LightItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 521, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 885 + } + } + }, + "200italic": { + "familyName": "Mona Sans", + "fullName": "Mona Sans ExtraLight Italic", + "postscriptName": "MonaSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1090, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 885 + } + } + } + } + }, + "monda": { + "familyName": "Monda", + "fullName": "Monda Regular", + "postscriptName": "Monda-Regular", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 2461, + "descent": -875, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 979, + "subsets": { + "latin": { + "xWidthAvg": 979 + }, + "thai": { + "xWidthAvg": 724 + } + }, + "variants": { + "500": { + "familyName": "Monda", + "fullName": "Monda Medium", + "postscriptName": "Monda-Medium", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 2461, + "descent": -875, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1065, + "xWidthAvg": 983, + "subsets": { + "latin": { + "xWidthAvg": 983 + }, + "thai": { + "xWidthAvg": 732 + } + } + }, + "600": { + "familyName": "Monda", + "fullName": "Monda SemiBold", + "postscriptName": "Monda-SemiBold", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 2461, + "descent": -875, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1069, + "xWidthAvg": 986, + "subsets": { + "latin": { + "xWidthAvg": 986 + }, + "thai": { + "xWidthAvg": 740 + } + } + }, + "700": { + "familyName": "Monda", + "fullName": "Monda Bold", + "postscriptName": "Monda-Bold", + "category": "sans-serif", + "capHeight": 1476, + "ascent": 2461, + "descent": -875, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1074, + "xWidthAvg": 989, + "subsets": { + "latin": { + "xWidthAvg": 989 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "regular": { + "familyName": "Monda", + "fullName": "Monda Regular", + "postscriptName": "Monda-Regular", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 2461, + "descent": -875, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 979, + "subsets": { + "latin": { + "xWidthAvg": 979 + }, + "thai": { + "xWidthAvg": 724 + } + } + } + } + }, + "monofett": { + "familyName": "Monofett", + "fullName": "Monofett Regular", + "postscriptName": "Monofett-Regular", + "category": "monospace", + "capHeight": 1370, + "ascent": 2001, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1370, + "xWidthAvg": 1038, + "subsets": { + "latin": { + "xWidthAvg": 1038 + }, + "thai": { + "xWidthAvg": 1184 + } + }, + "variants": { + "regular": { + "familyName": "Monofett", + "fullName": "Monofett Regular", + "postscriptName": "Monofett-Regular", + "category": "monospace", + "capHeight": 1370, + "ascent": 2001, + "descent": -315, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1370, + "xWidthAvg": 1038, + "subsets": { + "latin": { + "xWidthAvg": 1038 + }, + "thai": { + "xWidthAvg": 1184 + } + } + } + } + }, + "monomaniacOne": { + "familyName": "Monomaniac One", + "fullName": "Monomaniac One Regular", + "postscriptName": "MonomaniacOne-Regular", + "category": "sans-serif", + "capHeight": 676, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 758 + } + }, + "variants": { + "regular": { + "familyName": "Monomaniac One", + "fullName": "Monomaniac One Regular", + "postscriptName": "MonomaniacOne-Regular", + "category": "sans-serif", + "capHeight": 676, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 758 + } + } + } + } + }, + "monoton": { + "familyName": "Monoton", + "fullName": "Monoton", + "postscriptName": "Monoton-Regular", + "category": "display", + "capHeight": 1656, + "ascent": 2366, + "descent": -822, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1440, + "xWidthAvg": 1273, + "subsets": { + "latin": { + "xWidthAvg": 1273 + }, + "thai": { + "xWidthAvg": 222 + } + }, + "variants": { + "regular": { + "familyName": "Monoton", + "fullName": "Monoton", + "postscriptName": "Monoton-Regular", + "category": "display", + "capHeight": 1656, + "ascent": 2366, + "descent": -822, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1440, + "xWidthAvg": 1273, + "subsets": { + "latin": { + "xWidthAvg": 1273 + }, + "thai": { + "xWidthAvg": 222 + } + } + } + } + }, + "monsieurLaDoulaise": { + "familyName": "Monsieur La Doulaise", + "fullName": "Monsieur La Doulaise Regular", + "postscriptName": "MonsieurLaDoulaise-Regular", + "category": "handwriting", + "capHeight": 729, + "ascent": 1048, + "descent": -513, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 164, + "xWidthAvg": 307, + "subsets": { + "latin": { + "xWidthAvg": 307 + }, + "thai": { + "xWidthAvg": 150 + } + }, + "variants": { + "regular": { + "familyName": "Monsieur La Doulaise", + "fullName": "Monsieur La Doulaise Regular", + "postscriptName": "MonsieurLaDoulaise-Regular", + "category": "handwriting", + "capHeight": 729, + "ascent": 1048, + "descent": -513, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 164, + "xWidthAvg": 307, + "subsets": { + "latin": { + "xWidthAvg": 307 + }, + "thai": { + "xWidthAvg": 150 + } + } + } + } + }, + "montaga": { + "familyName": "Montaga", + "fullName": "Montaga", + "postscriptName": "Montaga-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 978, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 248 + } + }, + "variants": { + "regular": { + "familyName": "Montaga", + "fullName": "Montaga", + "postscriptName": "Montaga-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 978, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 466, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 248 + } + } + } + } + }, + "montaguSlab": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt Regular", + "postscriptName": "MontaguSlab144pt-Regular", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt Thin", + "postscriptName": "MontaguSlab144pt-Thin", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt ExtraLight", + "postscriptName": "MontaguSlab144pt-ExtraLight", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt Light", + "postscriptName": "MontaguSlab144pt-Light", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt Medium", + "postscriptName": "MontaguSlab144pt-Medium", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt SemiBold", + "postscriptName": "MontaguSlab144pt-SemiBold", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt Bold", + "postscriptName": "MontaguSlab144pt-Bold", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Montagu Slab", + "fullName": "Montagu Slab 144pt Regular", + "postscriptName": "MontaguSlab144pt-Regular", + "category": "serif", + "capHeight": 682, + "ascent": 982, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "monteCarlo": { + "familyName": "MonteCarlo", + "fullName": "MonteCarlo Regular", + "postscriptName": "MonteCarlo-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 1200, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 315, + "xWidthAvg": 297, + "subsets": { + "latin": { + "xWidthAvg": 297 + }, + "thai": { + "xWidthAvg": 175 + } + }, + "variants": { + "regular": { + "familyName": "MonteCarlo", + "fullName": "MonteCarlo Regular", + "postscriptName": "MonteCarlo-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 1200, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 315, + "xWidthAvg": 297, + "subsets": { + "latin": { + "xWidthAvg": 297 + }, + "thai": { + "xWidthAvg": 175 + } + } + } + } + }, + "montez": { + "familyName": "Montez", + "fullName": "Montez Regular", + "postscriptName": "Montez-Regular", + "category": "handwriting", + "capHeight": 1456, + "ascent": 1831, + "descent": -848, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 766, + "xWidthAvg": 668, + "subsets": { + "latin": { + "xWidthAvg": 668 + }, + "thai": { + "xWidthAvg": 480 + } + }, + "variants": { + "regular": { + "familyName": "Montez", + "fullName": "Montez Regular", + "postscriptName": "Montez-Regular", + "category": "handwriting", + "capHeight": 1456, + "ascent": 1831, + "descent": -848, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 766, + "xWidthAvg": 668, + "subsets": { + "latin": { + "xWidthAvg": 668 + }, + "thai": { + "xWidthAvg": 480 + } + } + } + } + }, + "montserrat": { + "familyName": "Montserrat", + "fullName": "Montserrat Regular", + "postscriptName": "Montserrat-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 587 + } + }, + "variants": { + "100": { + "familyName": "Montserrat", + "fullName": "Montserrat Thin", + "postscriptName": "Montserrat-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "200": { + "familyName": "Montserrat", + "fullName": "Montserrat ExtraLight", + "postscriptName": "Montserrat-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "300": { + "familyName": "Montserrat", + "fullName": "Montserrat Light", + "postscriptName": "Montserrat-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "500": { + "familyName": "Montserrat", + "fullName": "Montserrat Medium", + "postscriptName": "Montserrat-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "600": { + "familyName": "Montserrat", + "fullName": "Montserrat SemiBold", + "postscriptName": "Montserrat-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "700": { + "familyName": "Montserrat", + "fullName": "Montserrat Bold", + "postscriptName": "Montserrat-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "800": { + "familyName": "Montserrat", + "fullName": "Montserrat ExtraBold", + "postscriptName": "Montserrat-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "900": { + "familyName": "Montserrat", + "fullName": "Montserrat Black", + "postscriptName": "Montserrat-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 551, + "subsets": { + "latin": { + "xWidthAvg": 551 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "regular": { + "familyName": "Montserrat", + "fullName": "Montserrat Regular", + "postscriptName": "Montserrat-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "italic": { + "familyName": "Montserrat", + "fullName": "Montserrat Italic", + "postscriptName": "Montserrat-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "900italic": { + "familyName": "Montserrat", + "fullName": "Montserrat Black Italic", + "postscriptName": "Montserrat-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "800italic": { + "familyName": "Montserrat", + "fullName": "Montserrat ExtraBold Italic", + "postscriptName": "Montserrat-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 544, + "subsets": { + "latin": { + "xWidthAvg": 544 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "700italic": { + "familyName": "Montserrat", + "fullName": "Montserrat Bold Italic", + "postscriptName": "Montserrat-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "600italic": { + "familyName": "Montserrat", + "fullName": "Montserrat SemiBold Italic", + "postscriptName": "Montserrat-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "500italic": { + "familyName": "Montserrat", + "fullName": "Montserrat Medium Italic", + "postscriptName": "Montserrat-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "300italic": { + "familyName": "Montserrat", + "fullName": "Montserrat Light Italic", + "postscriptName": "Montserrat-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "200italic": { + "familyName": "Montserrat", + "fullName": "Montserrat ExtraLight Italic", + "postscriptName": "Montserrat-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "100italic": { + "familyName": "Montserrat", + "fullName": "Montserrat Thin Italic", + "postscriptName": "Montserrat-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 587 + } + } + } + } + }, + "montserratAlternates": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Regular", + "postscriptName": "MontserratAlternates-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 587 + } + }, + "variants": { + "100": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Thin", + "postscriptName": "MontserratAlternates-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "200": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates ExtraLight", + "postscriptName": "MontserratAlternates-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "300": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Light", + "postscriptName": "MontserratAlternates-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "500": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Medium", + "postscriptName": "MontserratAlternates-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "600": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates SemiBold", + "postscriptName": "MontserratAlternates-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "700": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Bold", + "postscriptName": "MontserratAlternates-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "800": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates ExtraBold", + "postscriptName": "MontserratAlternates-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "900": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Black", + "postscriptName": "MontserratAlternates-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 557, + "subsets": { + "latin": { + "xWidthAvg": 557 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "regular": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Regular", + "postscriptName": "MontserratAlternates-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Italic", + "postscriptName": "MontserratAlternates-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "900italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Black Italic", + "postscriptName": "MontserratAlternates-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "800italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates ExtraBold Italic", + "postscriptName": "MontserratAlternates-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 552, + "subsets": { + "latin": { + "xWidthAvg": 552 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "700italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Bold Italic", + "postscriptName": "MontserratAlternates-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 542, + "subsets": { + "latin": { + "xWidthAvg": 542 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "600italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates SemiBold Italic", + "postscriptName": "MontserratAlternates-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "500italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Medium Italic", + "postscriptName": "MontserratAlternates-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "300italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Light Italic", + "postscriptName": "MontserratAlternates-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "200italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates ExtraLight Italic", + "postscriptName": "MontserratAlternates-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "100italic": { + "familyName": "Montserrat Alternates", + "fullName": "Montserrat Alternates Thin Italic", + "postscriptName": "MontserratAlternates-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 587 + } + } + } + } + }, + "montserratSubrayada": { + "familyName": "Montserrat Subrayada", + "fullName": "MontserratSubrayada-Regular", + "postscriptName": "MontserratSubrayada-Regular", + "category": "sans-serif", + "capHeight": 699, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 699, + "xWidthAvg": 615, + "subsets": { + "latin": { + "xWidthAvg": 615 + }, + "thai": { + "xWidthAvg": 274 + } + }, + "variants": { + "700": { + "familyName": "Montserrat Subrayada", + "fullName": "MontserratSubrayada-Bold", + "postscriptName": "MontserratSubrayada-Bold", + "category": "sans-serif", + "capHeight": 699, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 699, + "xWidthAvg": 612, + "subsets": { + "latin": { + "xWidthAvg": 612 + }, + "thai": { + "xWidthAvg": 264 + } + } + }, + "regular": { + "familyName": "Montserrat Subrayada", + "fullName": "MontserratSubrayada-Regular", + "postscriptName": "MontserratSubrayada-Regular", + "category": "sans-serif", + "capHeight": 699, + "ascent": 968, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 699, + "xWidthAvg": 615, + "subsets": { + "latin": { + "xWidthAvg": 615 + }, + "thai": { + "xWidthAvg": 274 + } + } + } + } + }, + "mooLahLah": { + "familyName": "Moo Lah Lah", + "fullName": "Moo Lah Lah Regular", + "postscriptName": "MooLahLah-Regular", + "category": "display", + "capHeight": 650, + "ascent": 920, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 565, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Moo Lah Lah", + "fullName": "Moo Lah Lah Regular", + "postscriptName": "MooLahLah-Regular", + "category": "display", + "capHeight": 650, + "ascent": 920, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 565, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mooli": { + "familyName": "Mooli", + "fullName": "Mooli Regular", + "postscriptName": "Mooli-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1928, + "descent": -472, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1026, + "xWidthAvg": 970, + "subsets": { + "latin": { + "xWidthAvg": 970 + }, + "thai": { + "xWidthAvg": 1431 + } + }, + "variants": { + "regular": { + "familyName": "Mooli", + "fullName": "Mooli Regular", + "postscriptName": "Mooli-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1928, + "descent": -472, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1026, + "xWidthAvg": 970, + "subsets": { + "latin": { + "xWidthAvg": 970 + }, + "thai": { + "xWidthAvg": 1431 + } + } + } + } + }, + "moonDance": { + "familyName": "Moon Dance", + "fullName": "Moon Dance Regular", + "postscriptName": "MoonDance-Regular", + "category": "handwriting", + "capHeight": 605, + "ascent": 970, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 306, + "subsets": { + "latin": { + "xWidthAvg": 306 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Moon Dance", + "fullName": "Moon Dance Regular", + "postscriptName": "MoonDance-Regular", + "category": "handwriting", + "capHeight": 605, + "ascent": 970, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 306, + "subsets": { + "latin": { + "xWidthAvg": 306 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "moul": { + "familyName": "Moul", + "fullName": "Moul Regular", + "postscriptName": "Moul-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1180, + "subsets": { + "latin": { + "xWidthAvg": 1180 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Moul", + "fullName": "Moul Regular", + "postscriptName": "Moul-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1180, + "subsets": { + "latin": { + "xWidthAvg": 1180 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "moulpali": { + "familyName": "Moulpali", + "fullName": "Moulpali Regular", + "postscriptName": "Moulpali-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2900, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 827, + "subsets": { + "latin": { + "xWidthAvg": 827 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Moulpali", + "fullName": "Moulpali Regular", + "postscriptName": "Moulpali-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2900, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 827, + "subsets": { + "latin": { + "xWidthAvg": 827 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "mountainsOfChristmas": { + "familyName": "Mountains of Christmas", + "fullName": "Mountains of Christmas Regular", + "postscriptName": "MountainsofChristmas-Regular", + "category": "display", + "capHeight": 743, + "ascent": 1066, + "descent": -354, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 515, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 307 + } + }, + "variants": { + "700": { + "familyName": "Mountains of Christmas", + "fullName": "Mountains of Christmas Bold", + "postscriptName": "MountainsofChristmas-Bold", + "category": "display", + "capHeight": 744, + "ascent": 1066, + "descent": -354, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 559, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 317 + } + } + }, + "regular": { + "familyName": "Mountains of Christmas", + "fullName": "Mountains of Christmas Regular", + "postscriptName": "MountainsofChristmas-Regular", + "category": "display", + "capHeight": 743, + "ascent": 1066, + "descent": -354, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 515, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 307 + } + } + } + } + }, + "mouseMemoirs": { + "familyName": "Mouse Memoirs", + "fullName": "Mouse Memoirs", + "postscriptName": "MouseMemoirs-Regular", + "category": "sans-serif", + "capHeight": 1448, + "ascent": 1917, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1044, + "xWidthAvg": 596, + "subsets": { + "latin": { + "xWidthAvg": 596 + }, + "thai": { + "xWidthAvg": 338 + } + }, + "variants": { + "regular": { + "familyName": "Mouse Memoirs", + "fullName": "Mouse Memoirs", + "postscriptName": "MouseMemoirs-Regular", + "category": "sans-serif", + "capHeight": 1448, + "ascent": 1917, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1044, + "xWidthAvg": 596, + "subsets": { + "latin": { + "xWidthAvg": 596 + }, + "thai": { + "xWidthAvg": 338 + } + } + } + } + }, + "mrBedfort": { + "familyName": "Mr Bedfort", + "fullName": "Mr Bedfort", + "postscriptName": "MrBedfort-Regular", + "category": "handwriting", + "capHeight": 770, + "ascent": 1015, + "descent": -661, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 245, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Mr Bedfort", + "fullName": "Mr Bedfort", + "postscriptName": "MrBedfort-Regular", + "category": "handwriting", + "capHeight": 770, + "ascent": 1015, + "descent": -661, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 245, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "mrDafoe": { + "familyName": "Mr Dafoe", + "fullName": "Mr Dafoe Regular", + "postscriptName": "MrDafoe-Regular", + "category": "handwriting", + "capHeight": 622, + "ascent": 981, + "descent": -416, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 313, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Mr Dafoe", + "fullName": "Mr Dafoe Regular", + "postscriptName": "MrDafoe-Regular", + "category": "handwriting", + "capHeight": 622, + "ascent": 981, + "descent": -416, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 313, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "mrDeHaviland": { + "familyName": "Mr De Haviland", + "fullName": "Mr De Haviland Regular", + "postscriptName": "MrDeHaviland-Regular", + "category": "handwriting", + "capHeight": 557, + "ascent": 875, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 217, + "xWidthAvg": 254, + "subsets": { + "latin": { + "xWidthAvg": 254 + }, + "thai": { + "xWidthAvg": 175 + } + }, + "variants": { + "regular": { + "familyName": "Mr De Haviland", + "fullName": "Mr De Haviland Regular", + "postscriptName": "MrDeHaviland-Regular", + "category": "handwriting", + "capHeight": 557, + "ascent": 875, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 217, + "xWidthAvg": 254, + "subsets": { + "latin": { + "xWidthAvg": 254 + }, + "thai": { + "xWidthAvg": 175 + } + } + } + } + }, + "mrsSaintDelafield": { + "familyName": "Mrs Saint Delafield", + "fullName": "Mrs Saint Delafield", + "postscriptName": "MrsSaintDelafield-Regular", + "category": "handwriting", + "capHeight": 708, + "ascent": 906, + "descent": -619, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 224, + "xWidthAvg": 275, + "subsets": { + "latin": { + "xWidthAvg": 275 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Mrs Saint Delafield", + "fullName": "Mrs Saint Delafield", + "postscriptName": "MrsSaintDelafield-Regular", + "category": "handwriting", + "capHeight": 708, + "ascent": 906, + "descent": -619, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 224, + "xWidthAvg": 275, + "subsets": { + "latin": { + "xWidthAvg": 275 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "mrsSheppards": { + "familyName": "Mrs Sheppards", + "fullName": "Mrs Sheppards Regular", + "postscriptName": "MrsSheppards-Regular", + "category": "handwriting", + "capHeight": 662, + "ascent": 959, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 285, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Mrs Sheppards", + "fullName": "Mrs Sheppards Regular", + "postscriptName": "MrsSheppards-Regular", + "category": "handwriting", + "capHeight": 662, + "ascent": 959, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 285, + "xWidthAvg": 356, + "subsets": { + "latin": { + "xWidthAvg": 356 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "msMadi": { + "familyName": "Ms Madi", + "fullName": "Ms Madi Regular", + "postscriptName": "MsMadi-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 900, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 335, + "xWidthAvg": 321, + "subsets": { + "latin": { + "xWidthAvg": 321 + }, + "thai": { + "xWidthAvg": 474 + } + }, + "variants": { + "regular": { + "familyName": "Ms Madi", + "fullName": "Ms Madi Regular", + "postscriptName": "MsMadi-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 900, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 335, + "xWidthAvg": 321, + "subsets": { + "latin": { + "xWidthAvg": 321 + }, + "thai": { + "xWidthAvg": 474 + } + } + } + } + }, + "mukta": { + "familyName": "Mukta", + "fullName": "Mukta Regular", + "postscriptName": "Mukta-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Mukta", + "fullName": "Mukta ExtraLight", + "postscriptName": "Mukta-ExtraLight", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 480 + } + } + }, + "300": { + "familyName": "Mukta", + "fullName": "Mukta Light", + "postscriptName": "Mukta-Light", + "category": "sans-serif", + "capHeight": 629, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "500": { + "familyName": "Mukta", + "fullName": "Mukta Medium", + "postscriptName": "Mukta-Medium", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 506 + } + } + }, + "600": { + "familyName": "Mukta", + "fullName": "Mukta SemiBold", + "postscriptName": "Mukta-SemiBold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700": { + "familyName": "Mukta", + "fullName": "Mukta Bold", + "postscriptName": "Mukta-Bold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "800": { + "familyName": "Mukta", + "fullName": "Mukta ExtraBold", + "postscriptName": "Mukta-ExtraBold", + "category": "sans-serif", + "capHeight": 631, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "regular": { + "familyName": "Mukta", + "fullName": "Mukta Regular", + "postscriptName": "Mukta-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "muktaMahee": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee Regular", + "postscriptName": "MuktaMahee-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee ExtraLight", + "postscriptName": "MuktaMahee-ExtraLight", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 480 + } + } + }, + "300": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee Light", + "postscriptName": "MuktaMahee-Light", + "category": "sans-serif", + "capHeight": 629, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "500": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee Medium", + "postscriptName": "MuktaMahee-Medium", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 506 + } + } + }, + "600": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee SemiBold", + "postscriptName": "MuktaMahee-SemiBold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee Bold", + "postscriptName": "MuktaMahee-Bold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "800": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee ExtraBold", + "postscriptName": "MuktaMahee-ExtraBold", + "category": "sans-serif", + "capHeight": 631, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "regular": { + "familyName": "Mukta Mahee", + "fullName": "Mukta Mahee Regular", + "postscriptName": "MuktaMahee-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "muktaMalar": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar Regular", + "postscriptName": "MuktaMalar-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar ExtraLight", + "postscriptName": "MuktaMalar-ExtraLight", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "300": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar Light", + "postscriptName": "MuktaMalar-Light", + "category": "sans-serif", + "capHeight": 629, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "500": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar Medium", + "postscriptName": "MuktaMalar-Medium", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 506 + } + } + }, + "600": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar SemiBold", + "postscriptName": "MuktaMalar-SemiBold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar Bold", + "postscriptName": "MuktaMalar-Bold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "800": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar ExtraBold", + "postscriptName": "MuktaMalar-ExtraBold", + "category": "sans-serif", + "capHeight": 631, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "regular": { + "familyName": "Mukta Malar", + "fullName": "Mukta Malar Regular", + "postscriptName": "MuktaMalar-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "muktaVaani": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani Regular", + "postscriptName": "MuktaVaani-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani ExtraLight", + "postscriptName": "MuktaVaani-ExtraLight", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 480 + } + } + }, + "300": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani Light", + "postscriptName": "MuktaVaani-Light", + "category": "sans-serif", + "capHeight": 629, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "500": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani Medium", + "postscriptName": "MuktaVaani-Medium", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 506 + } + } + }, + "600": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani SemiBold", + "postscriptName": "MuktaVaani-SemiBold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani Bold", + "postscriptName": "MuktaVaani-Bold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "800": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani ExtraBold", + "postscriptName": "MuktaVaani-ExtraBold", + "category": "sans-serif", + "capHeight": 631, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "regular": { + "familyName": "Mukta Vaani", + "fullName": "Mukta Vaani Regular", + "postscriptName": "MuktaVaani-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1130, + "descent": -532, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mulish": { + "familyName": "Mulish", + "fullName": "Mulish Regular", + "postscriptName": "Mulish-Regular", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Mulish", + "fullName": "Mulish ExtraLight", + "postscriptName": "Mulish-ExtraLight", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Mulish", + "fullName": "Mulish Light", + "postscriptName": "Mulish-Light", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Mulish", + "fullName": "Mulish Medium", + "postscriptName": "Mulish-Medium", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Mulish", + "fullName": "Mulish SemiBold", + "postscriptName": "Mulish-SemiBold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Mulish", + "fullName": "Mulish Bold", + "postscriptName": "Mulish-Bold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Mulish", + "fullName": "Mulish ExtraBold", + "postscriptName": "Mulish-ExtraBold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Mulish", + "fullName": "Mulish Black", + "postscriptName": "Mulish-Black", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Mulish", + "fullName": "Mulish Regular", + "postscriptName": "Mulish-Regular", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Mulish", + "fullName": "Mulish Italic", + "postscriptName": "Mulish-Italic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Mulish", + "fullName": "Mulish Black Italic", + "postscriptName": "Mulish-BlackItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Mulish", + "fullName": "Mulish ExtraBold Italic", + "postscriptName": "Mulish-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Mulish", + "fullName": "Mulish Bold Italic", + "postscriptName": "Mulish-BoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Mulish", + "fullName": "Mulish SemiBold Italic", + "postscriptName": "Mulish-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Mulish", + "fullName": "Mulish Medium Italic", + "postscriptName": "Mulish-MediumItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Mulish", + "fullName": "Mulish Light Italic", + "postscriptName": "Mulish-LightItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Mulish", + "fullName": "Mulish ExtraLight Italic", + "postscriptName": "Mulish-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1005, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "murecho": { + "familyName": "Murecho", + "fullName": "Murecho Regular", + "postscriptName": "Murecho-Regular", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 344 + } + }, + "variants": { + "100": { + "familyName": "Murecho", + "fullName": "Murecho Thin", + "postscriptName": "Murecho-Thin", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 340 + } + } + }, + "200": { + "familyName": "Murecho", + "fullName": "Murecho ExtraLight", + "postscriptName": "Murecho-ExtraLight", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 341 + } + } + }, + "300": { + "familyName": "Murecho", + "fullName": "Murecho Light", + "postscriptName": "Murecho-Light", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 343 + } + } + }, + "500": { + "familyName": "Murecho", + "fullName": "Murecho Medium", + "postscriptName": "Murecho-Medium", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 346 + } + } + }, + "600": { + "familyName": "Murecho", + "fullName": "Murecho SemiBold", + "postscriptName": "Murecho-SemiBold", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 347 + } + } + }, + "700": { + "familyName": "Murecho", + "fullName": "Murecho Bold", + "postscriptName": "Murecho-Bold", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 348 + } + } + }, + "800": { + "familyName": "Murecho", + "fullName": "Murecho ExtraBold", + "postscriptName": "Murecho-ExtraBold", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 349 + } + } + }, + "900": { + "familyName": "Murecho", + "fullName": "Murecho Black", + "postscriptName": "Murecho-Black", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 350 + } + } + }, + "regular": { + "familyName": "Murecho", + "fullName": "Murecho Regular", + "postscriptName": "Murecho-Regular", + "category": "sans-serif", + "capHeight": 728, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 344 + } + } + } + } + }, + "museoModerno": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Regular", + "postscriptName": "MuseoModerno-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Thin", + "postscriptName": "MuseoModerno-Thin", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno ExtraLight", + "postscriptName": "MuseoModerno-ExtraLight", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Light", + "postscriptName": "MuseoModerno-Light", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Medium", + "postscriptName": "MuseoModerno-Medium", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno SemiBold", + "postscriptName": "MuseoModerno-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Bold", + "postscriptName": "MuseoModerno-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno ExtraBold", + "postscriptName": "MuseoModerno-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Black", + "postscriptName": "MuseoModerno-Black", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Regular", + "postscriptName": "MuseoModerno-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Italic", + "postscriptName": "MuseoModerno-Italic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Black Italic", + "postscriptName": "MuseoModerno-BlackItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno ExtraBold Italic", + "postscriptName": "MuseoModerno-ExtraBoldItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Bold Italic", + "postscriptName": "MuseoModerno-BoldItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno SemiBold Italic", + "postscriptName": "MuseoModerno-SemiBoldItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Medium Italic", + "postscriptName": "MuseoModerno-MediumItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Light Italic", + "postscriptName": "MuseoModerno-LightItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno ExtraLight Italic", + "postscriptName": "MuseoModerno-ExtraLightItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "MuseoModerno", + "fullName": "MuseoModerno Thin Italic", + "postscriptName": "MuseoModerno-ThinItalic", + "category": "display", + "capHeight": 700, + "ascent": 1145, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "mySoul": { + "familyName": "My Soul", + "fullName": "My Soul Regular", + "postscriptName": "MySoul-Regular", + "category": "handwriting", + "capHeight": 760, + "ascent": 975, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 437 + } + }, + "variants": { + "regular": { + "familyName": "My Soul", + "fullName": "My Soul Regular", + "postscriptName": "MySoul-Regular", + "category": "handwriting", + "capHeight": 760, + "ascent": 975, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 437 + } + } + } + } + }, + "mynerve": { + "familyName": "Mynerve", + "fullName": "Mynerve Regular", + "postscriptName": "Mynerve-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 930, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 559 + } + }, + "variants": { + "regular": { + "familyName": "Mynerve", + "fullName": "Mynerve Regular", + "postscriptName": "Mynerve-Regular", + "category": "handwriting", + "capHeight": 670, + "ascent": 930, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 559 + } + } + } + } + }, + "mysteryQuest": { + "familyName": "Mystery Quest", + "fullName": "Mystery Quest", + "postscriptName": "MysteryQuest", + "category": "display", + "capHeight": 769, + "ascent": 989, + "descent": -409, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 626, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 307 + } + }, + "variants": { + "regular": { + "familyName": "Mystery Quest", + "fullName": "Mystery Quest", + "postscriptName": "MysteryQuest", + "category": "display", + "capHeight": 769, + "ascent": 989, + "descent": -409, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 626, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 307 + } + } + } + } + }, + "nTR": { + "familyName": "NTR", + "fullName": "NTR", + "postscriptName": "NTR", + "category": "sans-serif", + "capHeight": 572, + "ascent": 1294, + "descent": -877, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 422, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 891 + } + }, + "variants": { + "regular": { + "familyName": "NTR", + "fullName": "NTR", + "postscriptName": "NTR", + "category": "sans-serif", + "capHeight": 572, + "ascent": 1294, + "descent": -877, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 422, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 891 + } + } + } + } + }, + "nabla": { + "familyName": "Nabla", + "fullName": "Nabla Regular", + "postscriptName": "Nabla-Regular", + "category": "display", + "capHeight": 600, + "ascent": 1263, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 606 + } + }, + "variants": { + "regular": { + "familyName": "Nabla", + "fullName": "Nabla Regular", + "postscriptName": "Nabla-Regular", + "category": "display", + "capHeight": 600, + "ascent": 1263, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 606 + } + } + } + } + }, + "namdhinggo": { + "familyName": "Namdhinggo", + "fullName": "Namdhinggo", + "postscriptName": "Namdhinggo-Regular", + "category": "serif", + "capHeight": 1150, + "ascent": 1600, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 851, + "subsets": { + "latin": { + "xWidthAvg": 851 + }, + "thai": { + "xWidthAvg": 960 + } + }, + "variants": { + "500": { + "familyName": "Namdhinggo", + "fullName": "Namdhinggo Medium", + "postscriptName": "Namdhinggo-Medium", + "category": "serif", + "capHeight": 1150, + "ascent": 1600, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "600": { + "familyName": "Namdhinggo", + "fullName": "Namdhinggo SemiBold", + "postscriptName": "Namdhinggo-SemiBold", + "category": "serif", + "capHeight": 1150, + "ascent": 1600, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "700": { + "familyName": "Namdhinggo", + "fullName": "Namdhinggo Bold", + "postscriptName": "Namdhinggo-Bold", + "category": "serif", + "capHeight": 1150, + "ascent": 1600, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 894, + "subsets": { + "latin": { + "xWidthAvg": 894 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "800": { + "familyName": "Namdhinggo", + "fullName": "Namdhinggo ExtraBold", + "postscriptName": "Namdhinggo-ExtraBold", + "category": "serif", + "capHeight": 1150, + "ascent": 1600, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 901, + "subsets": { + "latin": { + "xWidthAvg": 901 + }, + "thai": { + "xWidthAvg": 960 + } + } + }, + "regular": { + "familyName": "Namdhinggo", + "fullName": "Namdhinggo", + "postscriptName": "Namdhinggo-Regular", + "category": "serif", + "capHeight": 1150, + "ascent": 1600, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 500, + "xWidthAvg": 851, + "subsets": { + "latin": { + "xWidthAvg": 851 + }, + "thai": { + "xWidthAvg": 960 + } + } + } + } + }, + "nanumBrushScript": { + "familyName": "Nanum Brush Script", + "fullName": "Nanum Brush Script", + "postscriptName": "NanumBrush", + "category": "handwriting", + "capHeight": 460, + "ascent": 630, + "descent": -370, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 940 + } + }, + "variants": { + "regular": { + "familyName": "Nanum Brush Script", + "fullName": "Nanum Brush Script", + "postscriptName": "NanumBrush", + "category": "handwriting", + "capHeight": 460, + "ascent": 630, + "descent": -370, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 940 + } + } + } + } + }, + "nanumGothic": { + "familyName": "Nanum Gothic", + "fullName": "NanumGothic", + "postscriptName": "NanumGothic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 940 + } + }, + "variants": { + "700": { + "familyName": "Nanum Gothic", + "fullName": "NanumGothicBold", + "postscriptName": "NanumGothicBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 940 + } + } + }, + "800": { + "familyName": "Nanum Gothic", + "fullName": "NanumGothicExtraBold", + "postscriptName": "NanumGothicExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 940 + } + } + }, + "regular": { + "familyName": "Nanum Gothic", + "fullName": "NanumGothic", + "postscriptName": "NanumGothic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 940 + } + } + } + } + }, + "nanumGothicCoding": { + "familyName": "Nanum Gothic Coding", + "fullName": "NanumGothicCoding", + "postscriptName": "NanumGothicCoding", + "category": "handwriting", + "capHeight": 699, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Nanum Gothic Coding", + "fullName": "NanumGothicCoding-Bold", + "postscriptName": "NanumGothicCoding-Bold", + "category": "handwriting", + "capHeight": 704, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Nanum Gothic Coding", + "fullName": "NanumGothicCoding", + "postscriptName": "NanumGothicCoding", + "category": "handwriting", + "capHeight": 699, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "nanumMyeongjo": { + "familyName": "Nanum Myeongjo", + "fullName": "NanumMyeongjo", + "postscriptName": "NanumMyeongjo", + "category": "serif", + "capHeight": 755, + "ascent": 942, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 480, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "700": { + "familyName": "Nanum Myeongjo", + "fullName": "NanumMyeongjoBold", + "postscriptName": "NanumMyeongjoBold", + "category": "serif", + "capHeight": 758, + "ascent": 942, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 486, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "800": { + "familyName": "Nanum Myeongjo", + "fullName": "NanumMyeongjoExtraBold", + "postscriptName": "NanumMyeongjoExtraBold", + "category": "serif", + "capHeight": 758, + "ascent": 942, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 486, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Nanum Myeongjo", + "fullName": "NanumMyeongjo", + "postscriptName": "NanumMyeongjo", + "category": "serif", + "capHeight": 755, + "ascent": 942, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 480, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "nanumPenScript": { + "familyName": "Nanum Pen Script", + "fullName": "Nanum Pen", + "postscriptName": "NanumPen", + "category": "handwriting", + "capHeight": 674, + "ascent": 920, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 940 + } + }, + "variants": { + "regular": { + "familyName": "Nanum Pen Script", + "fullName": "Nanum Pen", + "postscriptName": "NanumPen", + "category": "handwriting", + "capHeight": 674, + "ascent": 920, + "descent": -230, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 940 + } + } + } + } + }, + "narnoor": { + "familyName": "Narnoor", + "fullName": "Narnoor", + "postscriptName": "Narnoor-Regular", + "category": "serif", + "capHeight": 735, + "ascent": 1314, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 509 + } + }, + "variants": { + "500": { + "familyName": "Narnoor", + "fullName": "Narnoor Medium", + "postscriptName": "Narnoor-Medium", + "category": "serif", + "capHeight": 735, + "ascent": 1314, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "600": { + "familyName": "Narnoor", + "fullName": "Narnoor SemiBold", + "postscriptName": "Narnoor-SemiBold", + "category": "serif", + "capHeight": 735, + "ascent": 1314, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "700": { + "familyName": "Narnoor", + "fullName": "Narnoor Bold", + "postscriptName": "Narnoor-Bold", + "category": "serif", + "capHeight": 735, + "ascent": 1314, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "800": { + "familyName": "Narnoor", + "fullName": "Narnoor ExtraBold", + "postscriptName": "Narnoor-ExtraBold", + "category": "serif", + "capHeight": 735, + "ascent": 1314, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "regular": { + "familyName": "Narnoor", + "fullName": "Narnoor", + "postscriptName": "Narnoor-Regular", + "category": "serif", + "capHeight": 735, + "ascent": 1314, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 509 + } + } + } + } + }, + "neonderthaw": { + "familyName": "Neonderthaw", + "fullName": "Neonderthaw Regular", + "postscriptName": "Neonderthaw-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 1050, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 505 + } + }, + "variants": { + "regular": { + "familyName": "Neonderthaw", + "fullName": "Neonderthaw Regular", + "postscriptName": "Neonderthaw-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 1050, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 505 + } + } + } + } + }, + "nerkoOne": { + "familyName": "Nerko One", + "fullName": "Nerko One Regular", + "postscriptName": "NerkoOne-Regular", + "category": "handwriting", + "capHeight": 586, + "ascent": 894, + "descent": -317, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 481 + } + }, + "variants": { + "regular": { + "familyName": "Nerko One", + "fullName": "Nerko One Regular", + "postscriptName": "NerkoOne-Regular", + "category": "handwriting", + "capHeight": 586, + "ascent": 894, + "descent": -317, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 426, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 481 + } + } + } + } + }, + "neucha": { + "familyName": "Neucha", + "fullName": "Neucha", + "postscriptName": "Neucha", + "category": "handwriting", + "capHeight": 720, + "ascent": 787, + "descent": -292, + "lineGap": 49, + "unitsPerEm": 1024, + "xHeight": 523, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Neucha", + "fullName": "Neucha", + "postscriptName": "Neucha", + "category": "handwriting", + "capHeight": 720, + "ascent": 787, + "descent": -292, + "lineGap": 49, + "unitsPerEm": 1024, + "xHeight": 523, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "neuton": { + "familyName": "Neuton", + "fullName": "Neuton Regular", + "postscriptName": "Neuton-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "200": { + "familyName": "Neuton", + "fullName": "Neuton ExtraLight", + "postscriptName": "Neuton-ExtraLight", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 741, + "subsets": { + "latin": { + "xWidthAvg": 741 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Neuton", + "fullName": "Neuton Light", + "postscriptName": "Neuton-Light", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 754, + "subsets": { + "latin": { + "xWidthAvg": 754 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Neuton", + "fullName": "Neuton Bold", + "postscriptName": "Neuton-Bold", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 866, + "subsets": { + "latin": { + "xWidthAvg": 866 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "800": { + "familyName": "Neuton", + "fullName": "Neuton ExtraBold", + "postscriptName": "Neuton-ExtraBold", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 827, + "subsets": { + "latin": { + "xWidthAvg": 827 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Neuton", + "fullName": "Neuton Regular", + "postscriptName": "Neuton-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 757, + "subsets": { + "latin": { + "xWidthAvg": 757 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "italic": { + "familyName": "Neuton", + "fullName": "Neuton Italic", + "postscriptName": "Neuton-Italic", + "category": "serif", + "capHeight": 0, + "ascent": 2106, + "descent": -485, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 703, + "subsets": { + "latin": { + "xWidthAvg": 703 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "newAmsterdam": { + "familyName": "New Amsterdam", + "fullName": "New Amsterdam Regular", + "postscriptName": "NewAmsterdam-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 649, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 488 + } + }, + "variants": { + "regular": { + "familyName": "New Amsterdam", + "fullName": "New Amsterdam Regular", + "postscriptName": "NewAmsterdam-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 649, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 488 + } + } + } + } + }, + "newRocker": { + "familyName": "New Rocker", + "fullName": "New Rocker", + "postscriptName": "NewRocker-Regular", + "category": "display", + "capHeight": 733, + "ascent": 946, + "descent": -283, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 752 + } + }, + "variants": { + "regular": { + "familyName": "New Rocker", + "fullName": "New Rocker", + "postscriptName": "NewRocker-Regular", + "category": "display", + "capHeight": 733, + "ascent": 946, + "descent": -283, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 752 + } + } + } + } + }, + "newTegomin": { + "familyName": "New Tegomin", + "fullName": "New Tegomin Regular", + "postscriptName": "NewTegomin-Regular", + "category": "serif", + "capHeight": 635, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "New Tegomin", + "fullName": "New Tegomin Regular", + "postscriptName": "NewTegomin-Regular", + "category": "serif", + "capHeight": 635, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "newsCycle": { + "familyName": "News Cycle", + "fullName": "News Cycle", + "postscriptName": "NewsCycle", + "category": "sans-serif", + "ascent": 2574, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 795, + "subsets": { + "latin": { + "xWidthAvg": 795 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "700": { + "familyName": "News Cycle", + "fullName": "News Cycle Bold", + "postscriptName": "NewsCycle-Bold", + "category": "sans-serif", + "ascent": 2574, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 807, + "subsets": { + "latin": { + "xWidthAvg": 807 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "regular": { + "familyName": "News Cycle", + "fullName": "News Cycle", + "postscriptName": "NewsCycle", + "category": "sans-serif", + "ascent": 2574, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 795, + "subsets": { + "latin": { + "xWidthAvg": 795 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "newsreader": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Regular", + "postscriptName": "Newsreader16pt-Regular", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt ExtraLight", + "postscriptName": "Newsreader16pt-ExtraLight", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 821, + "subsets": { + "latin": { + "xWidthAvg": 821 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Light", + "postscriptName": "Newsreader16pt-Light", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 834, + "subsets": { + "latin": { + "xWidthAvg": 834 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Medium", + "postscriptName": "Newsreader16pt-Medium", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 877, + "subsets": { + "latin": { + "xWidthAvg": 877 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt SemiBold", + "postscriptName": "Newsreader16pt-SemiBold", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Bold", + "postscriptName": "Newsreader16pt-Bold", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt ExtraBold", + "postscriptName": "Newsreader16pt-ExtraBold", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 959, + "subsets": { + "latin": { + "xWidthAvg": 959 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Regular", + "postscriptName": "Newsreader16pt-Regular", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Italic", + "postscriptName": "Newsreader16pt-Italic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 804, + "subsets": { + "latin": { + "xWidthAvg": 804 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt ExtraBold Italic", + "postscriptName": "Newsreader16pt-ExtraBoldItalic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 966, + "subsets": { + "latin": { + "xWidthAvg": 966 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Bold Italic", + "postscriptName": "Newsreader16pt-BoldItalic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 909, + "subsets": { + "latin": { + "xWidthAvg": 909 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt SemiBold Italic", + "postscriptName": "Newsreader16pt-SemiBoldItalic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Medium Italic", + "postscriptName": "Newsreader16pt-MediumItalic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 837, + "subsets": { + "latin": { + "xWidthAvg": 837 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt Light Italic", + "postscriptName": "Newsreader16pt-LightItalic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 777, + "subsets": { + "latin": { + "xWidthAvg": 777 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200italic": { + "familyName": "Newsreader", + "fullName": "Newsreader 16pt ExtraLight Italic", + "postscriptName": "Newsreader16pt-ExtraLightItalic", + "category": "serif", + "capHeight": 1340, + "ascent": 1470, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 852, + "xWidthAvg": 761, + "subsets": { + "latin": { + "xWidthAvg": 761 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "niconne": { + "familyName": "Niconne", + "fullName": "Niconne", + "postscriptName": "Niconne-Regular", + "category": "handwriting", + "capHeight": 1442, + "ascent": 1898, + "descent": -585, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 218, + "xWidthAvg": 699, + "subsets": { + "latin": { + "xWidthAvg": 699 + }, + "thai": { + "xWidthAvg": 457 + } + }, + "variants": { + "regular": { + "familyName": "Niconne", + "fullName": "Niconne", + "postscriptName": "Niconne-Regular", + "category": "handwriting", + "capHeight": 1442, + "ascent": 1898, + "descent": -585, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 218, + "xWidthAvg": 699, + "subsets": { + "latin": { + "xWidthAvg": 699 + }, + "thai": { + "xWidthAvg": 457 + } + } + } + } + }, + "niramit": { + "familyName": "Niramit", + "fullName": "Niramit Regular", + "postscriptName": "Niramit-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 590 + } + }, + "variants": { + "200": { + "familyName": "Niramit", + "fullName": "Niramit ExtraLight", + "postscriptName": "Niramit-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 581 + } + } + }, + "300": { + "familyName": "Niramit", + "fullName": "Niramit Light", + "postscriptName": "Niramit-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "500": { + "familyName": "Niramit", + "fullName": "Niramit Medium", + "postscriptName": "Niramit-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "600": { + "familyName": "Niramit", + "fullName": "Niramit SemiBold", + "postscriptName": "Niramit-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Niramit", + "fullName": "Niramit Bold", + "postscriptName": "Niramit-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 604 + } + } + }, + "regular": { + "familyName": "Niramit", + "fullName": "Niramit Regular", + "postscriptName": "Niramit-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "italic": { + "familyName": "Niramit", + "fullName": "Niramit Italic", + "postscriptName": "Niramit-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "700italic": { + "familyName": "Niramit", + "fullName": "Niramit Bold Italic", + "postscriptName": "Niramit-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 604 + } + } + }, + "600italic": { + "familyName": "Niramit", + "fullName": "Niramit SemiBold Italic", + "postscriptName": "Niramit-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Niramit", + "fullName": "Niramit Medium Italic", + "postscriptName": "Niramit-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "300italic": { + "familyName": "Niramit", + "fullName": "Niramit Light Italic", + "postscriptName": "Niramit-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "200italic": { + "familyName": "Niramit", + "fullName": "Niramit ExtraLight Italic", + "postscriptName": "Niramit-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1105, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 581 + } + } + } + } + }, + "nixieOne": { + "familyName": "Nixie One", + "fullName": "Nixie One", + "postscriptName": "NixieOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 926, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Nixie One", + "fullName": "Nixie One", + "postscriptName": "NixieOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 926, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "nobile": { + "familyName": "Nobile", + "fullName": "Nobile", + "postscriptName": "Nobile-Regular", + "category": "sans-serif", + "capHeight": 1579, + "ascent": 1731, + "descent": -578, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1169, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "500": { + "familyName": "Nobile", + "fullName": "Nobile Medium", + "postscriptName": "Nobile-Medium", + "category": "sans-serif", + "capHeight": 1602, + "ascent": 1731, + "descent": -578, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1180, + "xWidthAvg": 1029, + "subsets": { + "latin": { + "xWidthAvg": 1029 + }, + "thai": { + "xWidthAvg": 759 + } + } + }, + "700": { + "familyName": "Nobile", + "fullName": "Nobile Bold", + "postscriptName": "Nobile-Bold", + "category": "sans-serif", + "capHeight": 1629, + "ascent": 1731, + "descent": -578, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1194, + "xWidthAvg": 1081, + "subsets": { + "latin": { + "xWidthAvg": 1081 + }, + "thai": { + "xWidthAvg": 772 + } + } + }, + "regular": { + "familyName": "Nobile", + "fullName": "Nobile", + "postscriptName": "Nobile-Regular", + "category": "sans-serif", + "capHeight": 1579, + "ascent": 1731, + "descent": -578, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1169, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "italic": { + "familyName": "Nobile", + "fullName": "Nobile Italic", + "postscriptName": "Nobile-Italic", + "category": "sans-serif", + "capHeight": 1572, + "ascent": 2301, + "descent": -530, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1146, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 747 + } + } + }, + "700italic": { + "familyName": "Nobile", + "fullName": "Nobile Bold Italic", + "postscriptName": "Nobile-BoldItalic", + "category": "sans-serif", + "capHeight": 1603, + "ascent": 2301, + "descent": -530, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1126, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 761 + } + } + }, + "500italic": { + "familyName": "Nobile", + "fullName": "Nobile Medium Italic", + "postscriptName": "Nobile-MediumItalic", + "category": "sans-serif", + "capHeight": 1582, + "ascent": 2301, + "descent": -530, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 1140, + "xWidthAvg": 911, + "subsets": { + "latin": { + "xWidthAvg": 911 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "nokora": { + "familyName": "Nokora", + "fullName": "Nokora Regular", + "postscriptName": "Nokora-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 1907, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 970, + "subsets": { + "latin": { + "xWidthAvg": 970 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Nokora", + "fullName": "Nokora Thin", + "postscriptName": "Nokora-Thin", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 1907, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Nokora", + "fullName": "Nokora Light", + "postscriptName": "Nokora-Light", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 1907, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Nokora", + "fullName": "Nokora Bold", + "postscriptName": "Nokora-Bold", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 1907, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1032, + "subsets": { + "latin": { + "xWidthAvg": 1032 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Nokora", + "fullName": "Nokora Black", + "postscriptName": "Nokora-Black", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 1907, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1066, + "subsets": { + "latin": { + "xWidthAvg": 1066 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Nokora", + "fullName": "Nokora Regular", + "postscriptName": "Nokora-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 1907, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 970, + "subsets": { + "latin": { + "xWidthAvg": 970 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "norican": { + "familyName": "Norican", + "fullName": "Norican Regular", + "postscriptName": "Norican-Regular", + "category": "handwriting", + "capHeight": 1518, + "ascent": 2095, + "descent": -791, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 810, + "xWidthAvg": 734, + "subsets": { + "latin": { + "xWidthAvg": 734 + }, + "thai": { + "xWidthAvg": 1406 + } + }, + "variants": { + "regular": { + "familyName": "Norican", + "fullName": "Norican Regular", + "postscriptName": "Norican-Regular", + "category": "handwriting", + "capHeight": 1518, + "ascent": 2095, + "descent": -791, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 810, + "xWidthAvg": 734, + "subsets": { + "latin": { + "xWidthAvg": 734 + }, + "thai": { + "xWidthAvg": 1406 + } + } + } + } + }, + "nosifer": { + "familyName": "Nosifer", + "fullName": "Nosifer", + "postscriptName": "Nosifer-Regular", + "category": "display", + "capHeight": 854, + "ascent": 2236, + "descent": -1328, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 925, + "xWidthAvg": 1586, + "subsets": { + "latin": { + "xWidthAvg": 1586 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Nosifer", + "fullName": "Nosifer", + "postscriptName": "Nosifer-Regular", + "category": "display", + "capHeight": 854, + "ascent": 2236, + "descent": -1328, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 925, + "xWidthAvg": 1586, + "subsets": { + "latin": { + "xWidthAvg": 1586 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "notable": { + "familyName": "Notable", + "fullName": "Notable Regular", + "postscriptName": "Notable-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1143, + "descent": -157, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 356, + "xWidthAvg": 750, + "subsets": { + "latin": { + "xWidthAvg": 750 + }, + "thai": { + "xWidthAvg": 463 + } + }, + "variants": { + "regular": { + "familyName": "Notable", + "fullName": "Notable Regular", + "postscriptName": "Notable-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1143, + "descent": -157, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 356, + "xWidthAvg": 750, + "subsets": { + "latin": { + "xWidthAvg": 750 + }, + "thai": { + "xWidthAvg": 463 + } + } + } + } + }, + "nothingYouCouldDo": { + "familyName": "Nothing You Could Do", + "fullName": "Nothing You Could Do", + "postscriptName": "NothingYouCouldDo", + "category": "handwriting", + "capHeight": 758, + "ascent": 959, + "descent": -407, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 462, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 410 + } + }, + "variants": { + "regular": { + "familyName": "Nothing You Could Do", + "fullName": "Nothing You Could Do", + "postscriptName": "NothingYouCouldDo", + "category": "handwriting", + "capHeight": 758, + "ascent": 959, + "descent": -407, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 462, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 410 + } + } + } + } + }, + "noticiaText": { + "familyName": "Noticia Text", + "fullName": "Noticia Text", + "postscriptName": "NoticiaText-Regular", + "category": "serif", + "capHeight": 1353, + "ascent": 2202, + "descent": -593, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 1601 + } + }, + "variants": { + "700": { + "familyName": "Noticia Text", + "fullName": "Noticia Text Bold", + "postscriptName": "NoticiaText-Bold", + "category": "serif", + "capHeight": 1353, + "ascent": 2202, + "descent": -593, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1501 + } + } + }, + "regular": { + "familyName": "Noticia Text", + "fullName": "Noticia Text", + "postscriptName": "NoticiaText-Regular", + "category": "serif", + "capHeight": 1353, + "ascent": 2202, + "descent": -593, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 964, + "subsets": { + "latin": { + "xWidthAvg": 964 + }, + "thai": { + "xWidthAvg": 1601 + } + } + }, + "italic": { + "familyName": "Noticia Text", + "fullName": "Noticia Text Italic", + "postscriptName": "NoticiaText-Italic", + "category": "serif", + "capHeight": 1353, + "ascent": 2202, + "descent": -593, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 942, + "subsets": { + "latin": { + "xWidthAvg": 942 + }, + "thai": { + "xWidthAvg": 1601 + } + } + }, + "700italic": { + "familyName": "Noticia Text", + "fullName": "Noticia Text Bold Italic", + "postscriptName": "NoticiaText-BoldItalic", + "category": "serif", + "capHeight": 1353, + "ascent": 2202, + "descent": -593, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1085, + "xWidthAvg": 1006, + "subsets": { + "latin": { + "xWidthAvg": 1006 + }, + "thai": { + "xWidthAvg": 1501 + } + } + } + } + }, + "notoColorEmoji": { + "familyName": "Noto Color Emoji", + "fullName": "Noto Color Emoji", + "postscriptName": "NotoColorEmoji", + "category": "sans-serif", + "capHeight": 717, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 512, + "xWidthAvg": 1275, + "subsets": { + "latin": { + "xWidthAvg": 1275 + }, + "thai": { + "xWidthAvg": 1275 + } + }, + "variants": { + "regular": { + "familyName": "Noto Color Emoji", + "fullName": "Noto Color Emoji", + "postscriptName": "NotoColorEmoji", + "category": "sans-serif", + "capHeight": 717, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 512, + "xWidthAvg": 1275, + "subsets": { + "latin": { + "xWidthAvg": 1275 + }, + "thai": { + "xWidthAvg": 1275 + } + } + } + } + }, + "notoEmoji": { + "familyName": "Noto Emoji", + "fullName": "Noto Emoji Regular", + "postscriptName": "NotoEmoji-Regular", + "category": "sans-serif", + "capHeight": 1900, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "Noto Emoji", + "fullName": "Noto Emoji Light", + "postscriptName": "NotoEmoji-Light", + "category": "sans-serif", + "capHeight": 1900, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Emoji", + "fullName": "Noto Emoji Medium", + "postscriptName": "NotoEmoji-Medium", + "category": "sans-serif", + "capHeight": 1900, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Emoji", + "fullName": "Noto Emoji SemiBold", + "postscriptName": "NotoEmoji-SemiBold", + "category": "sans-serif", + "capHeight": 1900, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Emoji", + "fullName": "Noto Emoji Bold", + "postscriptName": "NotoEmoji-Bold", + "category": "sans-serif", + "capHeight": 1900, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Emoji", + "fullName": "Noto Emoji Regular", + "postscriptName": "NotoEmoji-Regular", + "category": "sans-serif", + "capHeight": 1900, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoKufiArabic": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Regular", + "postscriptName": "NotoKufiArabic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Thin", + "postscriptName": "NotoKufiArabic-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic ExtraLight", + "postscriptName": "NotoKufiArabic-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Light", + "postscriptName": "NotoKufiArabic-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Medium", + "postscriptName": "NotoKufiArabic-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic SemiBold", + "postscriptName": "NotoKufiArabic-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Bold", + "postscriptName": "NotoKufiArabic-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic ExtraBold", + "postscriptName": "NotoKufiArabic-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Black", + "postscriptName": "NotoKufiArabic-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Kufi Arabic", + "fullName": "Noto Kufi Arabic Regular", + "postscriptName": "NotoKufiArabic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1282, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoMusic": { + "familyName": "Noto Music", + "fullName": "Noto Music Regular", + "postscriptName": "NotoMusic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1389, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Music", + "fullName": "Noto Music Regular", + "postscriptName": "NotoMusic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1389, + "descent": -398, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoNaskhArabic": { + "familyName": "Noto Naskh Arabic", + "fullName": "Noto Naskh Arabic Regular", + "postscriptName": "NotoNaskhArabic-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 646 + } + }, + "variants": { + "500": { + "familyName": "Noto Naskh Arabic", + "fullName": "Noto Naskh Arabic Medium", + "postscriptName": "NotoNaskhArabic-Medium", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 646 + } + } + }, + "600": { + "familyName": "Noto Naskh Arabic", + "fullName": "Noto Naskh Arabic SemiBold", + "postscriptName": "NotoNaskhArabic-SemiBold", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 646 + } + } + }, + "700": { + "familyName": "Noto Naskh Arabic", + "fullName": "Noto Naskh Arabic Bold", + "postscriptName": "NotoNaskhArabic-Bold", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 646 + } + } + }, + "regular": { + "familyName": "Noto Naskh Arabic", + "fullName": "Noto Naskh Arabic Regular", + "postscriptName": "NotoNaskhArabic-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 646 + } + } + } + } + }, + "notoNastaliqUrdu": { + "familyName": "Noto Nastaliq Urdu", + "fullName": "Noto Nastaliq Urdu Regular", + "postscriptName": "NotoNastaliqUrdu-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1904, + "descent": -596, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 900 + } + }, + "variants": { + "500": { + "familyName": "Noto Nastaliq Urdu", + "fullName": "Noto Nastaliq Urdu Medium", + "postscriptName": "NotoNastaliqUrdu-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1904, + "descent": -596, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 900 + } + } + }, + "600": { + "familyName": "Noto Nastaliq Urdu", + "fullName": "Noto Nastaliq Urdu SemiBold", + "postscriptName": "NotoNastaliqUrdu-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1904, + "descent": -596, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 900 + } + } + }, + "700": { + "familyName": "Noto Nastaliq Urdu", + "fullName": "Noto Nastaliq Urdu Bold", + "postscriptName": "NotoNastaliqUrdu-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1904, + "descent": -596, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 900 + } + } + }, + "regular": { + "familyName": "Noto Nastaliq Urdu", + "fullName": "Noto Nastaliq Urdu Regular", + "postscriptName": "NotoNastaliqUrdu-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1904, + "descent": -596, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 900 + } + } + } + } + }, + "notoRashiHebrew": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Regular", + "postscriptName": "NotoRashiHebrew-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Thin", + "postscriptName": "NotoRashiHebrew-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew ExtraLight", + "postscriptName": "NotoRashiHebrew-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Light", + "postscriptName": "NotoRashiHebrew-Light", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Medium", + "postscriptName": "NotoRashiHebrew-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew SemiBold", + "postscriptName": "NotoRashiHebrew-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Bold", + "postscriptName": "NotoRashiHebrew-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew ExtraBold", + "postscriptName": "NotoRashiHebrew-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Black", + "postscriptName": "NotoRashiHebrew-Black", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Noto Rashi Hebrew", + "fullName": "Noto Rashi Hebrew Regular", + "postscriptName": "NotoRashiHebrew-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSans": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Regular", + "postscriptName": "NotoSans-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Thin", + "postscriptName": "NotoSans-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans", + "fullName": "Noto Sans ExtraLight", + "postscriptName": "NotoSans-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Light", + "postscriptName": "NotoSans-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Medium", + "postscriptName": "NotoSans-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "600": { + "familyName": "Noto Sans", + "fullName": "Noto Sans SemiBold", + "postscriptName": "NotoSans-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 593 + } + } + }, + "700": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Bold", + "postscriptName": "NotoSans-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "800": { + "familyName": "Noto Sans", + "fullName": "Noto Sans ExtraBold", + "postscriptName": "NotoSans-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "900": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Black", + "postscriptName": "NotoSans-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "regular": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Regular", + "postscriptName": "NotoSans-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Italic", + "postscriptName": "NotoSans-Italic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Black Italic", + "postscriptName": "NotoSans-BlackItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans ExtraBold Italic", + "postscriptName": "NotoSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Bold Italic", + "postscriptName": "NotoSans-BoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans SemiBold Italic", + "postscriptName": "NotoSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Medium Italic", + "postscriptName": "NotoSans-MediumItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Light Italic", + "postscriptName": "NotoSans-LightItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans ExtraLight Italic", + "postscriptName": "NotoSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "Noto Sans", + "fullName": "Noto Sans Thin Italic", + "postscriptName": "NotoSans-ThinItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansAdlam": { + "familyName": "Noto Sans Adlam", + "fullName": "Noto Sans Adlam Regular", + "postscriptName": "NotoSansAdlam-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 574 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Adlam", + "fullName": "Noto Sans Adlam Medium", + "postscriptName": "NotoSansAdlam-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "600": { + "familyName": "Noto Sans Adlam", + "fullName": "Noto Sans Adlam SemiBold", + "postscriptName": "NotoSansAdlam-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "700": { + "familyName": "Noto Sans Adlam", + "fullName": "Noto Sans Adlam Bold", + "postscriptName": "NotoSansAdlam-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Adlam", + "fullName": "Noto Sans Adlam Regular", + "postscriptName": "NotoSansAdlam-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 574 + } + } + } + } + }, + "notoSansAdlamUnjoined": { + "familyName": "Noto Sans Adlam Unjoined", + "fullName": "Noto Sans Adlam Unjoined Regular", + "postscriptName": "NotoSansAdlamUnjoined-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 574 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Adlam Unjoined", + "fullName": "Noto Sans Adlam Unjoined Medium", + "postscriptName": "NotoSansAdlamUnjoined-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "600": { + "familyName": "Noto Sans Adlam Unjoined", + "fullName": "Noto Sans Adlam Unjoined SemiBold", + "postscriptName": "NotoSansAdlamUnjoined-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "700": { + "familyName": "Noto Sans Adlam Unjoined", + "fullName": "Noto Sans Adlam Unjoined Bold", + "postscriptName": "NotoSansAdlamUnjoined-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 585, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Adlam Unjoined", + "fullName": "Noto Sans Adlam Unjoined Regular", + "postscriptName": "NotoSansAdlamUnjoined-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 574 + } + } + } + } + }, + "notoSansAnatolianHieroglyphs": { + "familyName": "Noto Sans Anatolian Hieroglyphs", + "fullName": "Noto Sans Anatolian Hieroglyphs Regular", + "postscriptName": "NotoSansAnatolianHieroglyphs-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1153, + "descent": -253, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Anatolian Hieroglyphs", + "fullName": "Noto Sans Anatolian Hieroglyphs Regular", + "postscriptName": "NotoSansAnatolianHieroglyphs-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1153, + "descent": -253, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansArabic": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Regular", + "postscriptName": "NotoSansArabic-Regular", + "category": "sans-serif", + "capHeight": 416, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 374, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Thin", + "postscriptName": "NotoSansArabic-Thin", + "category": "sans-serif", + "capHeight": 356, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 325, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic ExtraLight", + "postscriptName": "NotoSansArabic-ExtraLight", + "category": "sans-serif", + "capHeight": 368, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 335, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Light", + "postscriptName": "NotoSansArabic-Light", + "category": "sans-serif", + "capHeight": 386, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Medium", + "postscriptName": "NotoSansArabic-Medium", + "category": "sans-serif", + "capHeight": 441, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 393, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic SemiBold", + "postscriptName": "NotoSansArabic-SemiBold", + "category": "sans-serif", + "capHeight": 468, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 415, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Bold", + "postscriptName": "NotoSansArabic-Bold", + "category": "sans-serif", + "capHeight": 500, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 542, + "subsets": { + "latin": { + "xWidthAvg": 542 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic ExtraBold", + "postscriptName": "NotoSansArabic-ExtraBold", + "category": "sans-serif", + "capHeight": 523, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 542, + "subsets": { + "latin": { + "xWidthAvg": 542 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Black", + "postscriptName": "NotoSansArabic-Black", + "category": "sans-serif", + "capHeight": 550, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 542, + "subsets": { + "latin": { + "xWidthAvg": 542 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Arabic", + "fullName": "Noto Sans Arabic Regular", + "postscriptName": "NotoSansArabic-Regular", + "category": "sans-serif", + "capHeight": 416, + "ascent": 1374, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 374, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansArmenian": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Regular", + "postscriptName": "NotoSansArmenian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Thin", + "postscriptName": "NotoSansArmenian-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian ExtraLight", + "postscriptName": "NotoSansArmenian-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Light", + "postscriptName": "NotoSansArmenian-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Medium", + "postscriptName": "NotoSansArmenian-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian SemiBold", + "postscriptName": "NotoSansArmenian-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Bold", + "postscriptName": "NotoSansArmenian-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian ExtraBold", + "postscriptName": "NotoSansArmenian-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "900": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Black", + "postscriptName": "NotoSansArmenian-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 564 + } + } + }, + "regular": { + "familyName": "Noto Sans Armenian", + "fullName": "Noto Sans Armenian Regular", + "postscriptName": "NotoSansArmenian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansAvestan": { + "familyName": "Noto Sans Avestan", + "fullName": "Noto Sans Avestan Regular", + "postscriptName": "NotoSansAvestan-Regular", + "category": "sans-serif", + "capHeight": 652, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Avestan", + "fullName": "Noto Sans Avestan Regular", + "postscriptName": "NotoSansAvestan-Regular", + "category": "sans-serif", + "capHeight": 652, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBalinese": { + "familyName": "Noto Sans Balinese", + "fullName": "Noto Sans Balinese Regular", + "postscriptName": "NotoSansBalinese-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1363, + "descent": -838, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Balinese", + "fullName": "Noto Sans Balinese Medium", + "postscriptName": "NotoSansBalinese-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1363, + "descent": -838, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Balinese", + "fullName": "Noto Sans Balinese SemiBold", + "postscriptName": "NotoSansBalinese-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1363, + "descent": -838, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Balinese", + "fullName": "Noto Sans Balinese Bold", + "postscriptName": "NotoSansBalinese-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1363, + "descent": -838, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Balinese", + "fullName": "Noto Sans Balinese Regular", + "postscriptName": "NotoSansBalinese-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1363, + "descent": -838, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBamum": { + "familyName": "Noto Sans Bamum", + "fullName": "Noto Sans Bamum Regular", + "postscriptName": "NotoSansBamum-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Bamum", + "fullName": "Noto Sans Bamum Medium", + "postscriptName": "NotoSansBamum-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Bamum", + "fullName": "Noto Sans Bamum SemiBold", + "postscriptName": "NotoSansBamum-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Bamum", + "fullName": "Noto Sans Bamum Bold", + "postscriptName": "NotoSansBamum-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Bamum", + "fullName": "Noto Sans Bamum Regular", + "postscriptName": "NotoSansBamum-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBassaVah": { + "familyName": "Noto Sans Bassa Vah", + "fullName": "Noto Sans Bassa Vah Regular", + "postscriptName": "NotoSansBassaVah-Regular", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Bassa Vah", + "fullName": "Noto Sans Bassa Vah Medium", + "postscriptName": "NotoSansBassaVah-Medium", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Bassa Vah", + "fullName": "Noto Sans Bassa Vah SemiBold", + "postscriptName": "NotoSansBassaVah-SemiBold", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Bassa Vah", + "fullName": "Noto Sans Bassa Vah Bold", + "postscriptName": "NotoSansBassaVah-Bold", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Bassa Vah", + "fullName": "Noto Sans Bassa Vah Regular", + "postscriptName": "NotoSansBassaVah-Regular", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBatak": { + "familyName": "Noto Sans Batak", + "fullName": "Noto Sans Batak Regular", + "postscriptName": "NotoSansBatak-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Batak", + "fullName": "Noto Sans Batak Regular", + "postscriptName": "NotoSansBatak-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansBengali": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Regular", + "postscriptName": "NotoSansBengali-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Thin", + "postscriptName": "NotoSansBengali-Thin", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali ExtraLight", + "postscriptName": "NotoSansBengali-ExtraLight", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Light", + "postscriptName": "NotoSansBengali-Light", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Medium", + "postscriptName": "NotoSansBengali-Medium", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali SemiBold", + "postscriptName": "NotoSansBengali-SemiBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Bold", + "postscriptName": "NotoSansBengali-Bold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali ExtraBold", + "postscriptName": "NotoSansBengali-ExtraBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Black", + "postscriptName": "NotoSansBengali-Black", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Bengali", + "fullName": "Noto Sans Bengali Regular", + "postscriptName": "NotoSansBengali-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 917, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBhaiksuki": { + "familyName": "Noto Sans Bhaiksuki", + "fullName": "Noto Sans Bhaiksuki Regular", + "postscriptName": "NotoSansBhaiksuki-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 960, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Bhaiksuki", + "fullName": "Noto Sans Bhaiksuki Regular", + "postscriptName": "NotoSansBhaiksuki-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 960, + "descent": -460, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBrahmi": { + "familyName": "Noto Sans Brahmi", + "fullName": "Noto Sans Brahmi Regular", + "postscriptName": "NotoSansBrahmi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -306, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Brahmi", + "fullName": "Noto Sans Brahmi Regular", + "postscriptName": "NotoSansBrahmi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -306, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBuginese": { + "familyName": "Noto Sans Buginese", + "fullName": "Noto Sans Buginese Regular", + "postscriptName": "NotoSansBuginese-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Buginese", + "fullName": "Noto Sans Buginese Regular", + "postscriptName": "NotoSansBuginese-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansBuhid": { + "familyName": "Noto Sans Buhid", + "fullName": "Noto Sans Buhid Regular", + "postscriptName": "NotoSansBuhid-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Buhid", + "fullName": "Noto Sans Buhid Regular", + "postscriptName": "NotoSansBuhid-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCanadianAboriginal": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Regular", + "postscriptName": "NotoSansCanadianAboriginal-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Thin", + "postscriptName": "NotoSansCanadianAboriginal-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal ExtraLight", + "postscriptName": "NotoSansCanadianAboriginal-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Light", + "postscriptName": "NotoSansCanadianAboriginal-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Medium", + "postscriptName": "NotoSansCanadianAboriginal-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal SemiBold", + "postscriptName": "NotoSansCanadianAboriginal-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Bold", + "postscriptName": "NotoSansCanadianAboriginal-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal ExtraBold", + "postscriptName": "NotoSansCanadianAboriginal-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Black", + "postscriptName": "NotoSansCanadianAboriginal-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Canadian Aboriginal", + "fullName": "Noto Sans Canadian Aboriginal Regular", + "postscriptName": "NotoSansCanadianAboriginal-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCarian": { + "familyName": "Noto Sans Carian", + "fullName": "Noto Sans Carian Regular", + "postscriptName": "NotoSansCarian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Carian", + "fullName": "Noto Sans Carian Regular", + "postscriptName": "NotoSansCarian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansCaucasianAlbanian": { + "familyName": "Noto Sans Caucasian Albanian", + "fullName": "Noto Sans Caucasian Albanian Regular", + "postscriptName": "NotoSansCaucasianAlbanian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 976, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Caucasian Albanian", + "fullName": "Noto Sans Caucasian Albanian Regular", + "postscriptName": "NotoSansCaucasianAlbanian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 976, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansChakma": { + "familyName": "Noto Sans Chakma", + "fullName": "Noto Sans Chakma Regular", + "postscriptName": "NotoSansChakma-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1140, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Chakma", + "fullName": "Noto Sans Chakma Regular", + "postscriptName": "NotoSansChakma-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1140, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCham": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Regular", + "postscriptName": "NotoSansCham-Regular", + "category": "sans-serif", + "capHeight": 594, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Thin", + "postscriptName": "NotoSansCham-Thin", + "category": "sans-serif", + "capHeight": 556, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham ExtraLight", + "postscriptName": "NotoSansCham-ExtraLight", + "category": "sans-serif", + "capHeight": 564, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Light", + "postscriptName": "NotoSansCham-Light", + "category": "sans-serif", + "capHeight": 575, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Medium", + "postscriptName": "NotoSansCham-Medium", + "category": "sans-serif", + "capHeight": 605, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham SemiBold", + "postscriptName": "NotoSansCham-SemiBold", + "category": "sans-serif", + "capHeight": 616, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Bold", + "postscriptName": "NotoSansCham-Bold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham ExtraBold", + "postscriptName": "NotoSansCham-ExtraBold", + "category": "sans-serif", + "capHeight": 641, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Black", + "postscriptName": "NotoSansCham-Black", + "category": "sans-serif", + "capHeight": 653, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Cham", + "fullName": "Noto Sans Cham Regular", + "postscriptName": "NotoSansCham-Regular", + "category": "sans-serif", + "capHeight": 594, + "ascent": 1117, + "descent": -351, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCherokee": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Regular", + "postscriptName": "NotoSansCherokee-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Thin", + "postscriptName": "NotoSansCherokee-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee ExtraLight", + "postscriptName": "NotoSansCherokee-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Light", + "postscriptName": "NotoSansCherokee-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Medium", + "postscriptName": "NotoSansCherokee-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee SemiBold", + "postscriptName": "NotoSansCherokee-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Bold", + "postscriptName": "NotoSansCherokee-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee ExtraBold", + "postscriptName": "NotoSansCherokee-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Black", + "postscriptName": "NotoSansCherokee-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Cherokee", + "fullName": "Noto Sans Cherokee Regular", + "postscriptName": "NotoSansCherokee-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 535, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansChorasmian": { + "familyName": "Noto Sans Chorasmian", + "fullName": "Noto Sans Chorasmian Regular", + "postscriptName": "NotoSansChorasmian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Chorasmian", + "fullName": "Noto Sans Chorasmian Regular", + "postscriptName": "NotoSansChorasmian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCoptic": { + "familyName": "Noto Sans Coptic", + "fullName": "Noto Sans Coptic Regular", + "postscriptName": "NotoSansCoptic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Coptic", + "fullName": "Noto Sans Coptic Regular", + "postscriptName": "NotoSansCoptic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCuneiform": { + "familyName": "Noto Sans Cuneiform", + "fullName": "Noto Sans Cuneiform Regular", + "postscriptName": "NotoSansCuneiform-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1596, + "descent": -690, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Cuneiform", + "fullName": "Noto Sans Cuneiform Regular", + "postscriptName": "NotoSansCuneiform-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1596, + "descent": -690, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCypriot": { + "familyName": "Noto Sans Cypriot", + "fullName": "Noto Sans Cypriot Regular", + "postscriptName": "NotoSansCypriot-Regular", + "category": "sans-serif", + "capHeight": 736, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Cypriot", + "fullName": "Noto Sans Cypriot Regular", + "postscriptName": "NotoSansCypriot-Regular", + "category": "sans-serif", + "capHeight": 736, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansCyproMinoan": { + "familyName": "Noto Sans Cypro Minoan", + "fullName": "Noto Sans Cypro Minoan Regular", + "postscriptName": "NotoSansCyproMinoan-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Cypro Minoan", + "fullName": "Noto Sans Cypro Minoan Regular", + "postscriptName": "NotoSansCyproMinoan-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansDeseret": { + "familyName": "Noto Sans Deseret", + "fullName": "Noto Sans Deseret Regular", + "postscriptName": "NotoSansDeseret-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Deseret", + "fullName": "Noto Sans Deseret Regular", + "postscriptName": "NotoSansDeseret-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansDevanagari": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Regular", + "postscriptName": "NotoSansDevanagari-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Thin", + "postscriptName": "NotoSansDevanagari-Thin", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari ExtraLight", + "postscriptName": "NotoSansDevanagari-ExtraLight", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Light", + "postscriptName": "NotoSansDevanagari-Light", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Medium", + "postscriptName": "NotoSansDevanagari-Medium", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari SemiBold", + "postscriptName": "NotoSansDevanagari-SemiBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Bold", + "postscriptName": "NotoSansDevanagari-Bold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari ExtraBold", + "postscriptName": "NotoSansDevanagari-ExtraBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Black", + "postscriptName": "NotoSansDevanagari-Black", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Devanagari", + "fullName": "Noto Sans Devanagari Regular", + "postscriptName": "NotoSansDevanagari-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansDisplay": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Regular", + "postscriptName": "NotoSansDisplay-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 563 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Thin", + "postscriptName": "NotoSansDisplay-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "200": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display ExtraLight", + "postscriptName": "NotoSansDisplay-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "300": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Light", + "postscriptName": "NotoSansDisplay-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "500": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Medium", + "postscriptName": "NotoSansDisplay-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 561 + } + } + }, + "600": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display SemiBold", + "postscriptName": "NotoSansDisplay-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 558 + } + } + }, + "700": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Bold", + "postscriptName": "NotoSansDisplay-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "800": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display ExtraBold", + "postscriptName": "NotoSansDisplay-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 547 + } + } + }, + "900": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Black", + "postscriptName": "NotoSansDisplay-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "regular": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Regular", + "postscriptName": "NotoSansDisplay-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 563 + } + } + }, + "italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Italic", + "postscriptName": "NotoSansDisplay-Italic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "900italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Black Italic", + "postscriptName": "NotoSansDisplay-BlackItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "800italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display ExtraBold Italic", + "postscriptName": "NotoSansDisplay-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "700italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Bold Italic", + "postscriptName": "NotoSansDisplay-BoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "600italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display SemiBold Italic", + "postscriptName": "NotoSansDisplay-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "500italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Medium Italic", + "postscriptName": "NotoSansDisplay-MediumItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "300italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Light Italic", + "postscriptName": "NotoSansDisplay-LightItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "200italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display ExtraLight Italic", + "postscriptName": "NotoSansDisplay-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "100italic": { + "familyName": "Noto Sans Display", + "fullName": "Noto Sans Display Thin Italic", + "postscriptName": "NotoSansDisplay-ThinItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 570 + } + } + } + } + }, + "notoSansDuployan": { + "familyName": "Noto Sans Duployan", + "fullName": "Noto Sans Duployan Regular", + "postscriptName": "NotoSansDuployan-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 601 + } + }, + "variants": { + "700": { + "familyName": "Noto Sans Duployan", + "fullName": "Noto Sans Duployan Bold", + "postscriptName": "NotoSansDuployan-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 601 + } + } + }, + "regular": { + "familyName": "Noto Sans Duployan", + "fullName": "Noto Sans Duployan Regular", + "postscriptName": "NotoSansDuployan-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 601 + } + } + } + } + }, + "notoSansEgyptianHieroglyphs": { + "familyName": "Noto Sans Egyptian Hieroglyphs", + "fullName": "Noto Sans Egyptian Hieroglyphs Regular", + "postscriptName": "NotoSansEgyptianHieroglyphs-Regular", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1324, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Egyptian Hieroglyphs", + "fullName": "Noto Sans Egyptian Hieroglyphs Regular", + "postscriptName": "NotoSansEgyptianHieroglyphs-Regular", + "category": "sans-serif", + "capHeight": 900, + "ascent": 1324, + "descent": -326, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansElbasan": { + "familyName": "Noto Sans Elbasan", + "fullName": "Noto Sans Elbasan Regular", + "postscriptName": "NotoSansElbasan-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 847, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Elbasan", + "fullName": "Noto Sans Elbasan Regular", + "postscriptName": "NotoSansElbasan-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 847, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansElymaic": { + "familyName": "Noto Sans Elymaic", + "fullName": "Noto Sans Elymaic Regular", + "postscriptName": "NotoSansElymaic-Regular", + "category": "sans-serif", + "capHeight": 570, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Elymaic", + "fullName": "Noto Sans Elymaic Regular", + "postscriptName": "NotoSansElymaic-Regular", + "category": "sans-serif", + "capHeight": 570, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansEthiopic": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Regular", + "postscriptName": "NotoSansEthiopic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Thin", + "postscriptName": "NotoSansEthiopic-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic ExtraLight", + "postscriptName": "NotoSansEthiopic-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Light", + "postscriptName": "NotoSansEthiopic-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Medium", + "postscriptName": "NotoSansEthiopic-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic SemiBold", + "postscriptName": "NotoSansEthiopic-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Bold", + "postscriptName": "NotoSansEthiopic-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic ExtraBold", + "postscriptName": "NotoSansEthiopic-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Black", + "postscriptName": "NotoSansEthiopic-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Ethiopic", + "fullName": "Noto Sans Ethiopic Regular", + "postscriptName": "NotoSansEthiopic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansGeorgian": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Regular", + "postscriptName": "NotoSansGeorgian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Thin", + "postscriptName": "NotoSansGeorgian-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian ExtraLight", + "postscriptName": "NotoSansGeorgian-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Light", + "postscriptName": "NotoSansGeorgian-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Medium", + "postscriptName": "NotoSansGeorgian-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian SemiBold", + "postscriptName": "NotoSansGeorgian-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Bold", + "postscriptName": "NotoSansGeorgian-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian ExtraBold", + "postscriptName": "NotoSansGeorgian-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Black", + "postscriptName": "NotoSansGeorgian-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Georgian", + "fullName": "Noto Sans Georgian Regular", + "postscriptName": "NotoSansGeorgian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansGlagolitic": { + "familyName": "Noto Sans Glagolitic", + "fullName": "Noto Sans Glagolitic Regular", + "postscriptName": "NotoSansGlagolitic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Glagolitic", + "fullName": "Noto Sans Glagolitic Regular", + "postscriptName": "NotoSansGlagolitic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansGothic": { + "familyName": "Noto Sans Gothic", + "fullName": "Noto Sans Gothic Regular", + "postscriptName": "NotoSansGothic-Regular", + "category": "sans-serif", + "capHeight": 646, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Gothic", + "fullName": "Noto Sans Gothic Regular", + "postscriptName": "NotoSansGothic-Regular", + "category": "sans-serif", + "capHeight": 646, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansGrantha": { + "familyName": "Noto Sans Grantha", + "fullName": "Noto Sans Grantha Regular", + "postscriptName": "NotoSansGrantha-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1290, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Grantha", + "fullName": "Noto Sans Grantha Regular", + "postscriptName": "NotoSansGrantha-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1290, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansGujarati": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Regular", + "postscriptName": "NotoSansGujarati-Regular", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Thin", + "postscriptName": "NotoSansGujarati-Thin", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati ExtraLight", + "postscriptName": "NotoSansGujarati-ExtraLight", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Light", + "postscriptName": "NotoSansGujarati-Light", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Medium", + "postscriptName": "NotoSansGujarati-Medium", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati SemiBold", + "postscriptName": "NotoSansGujarati-SemiBold", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Bold", + "postscriptName": "NotoSansGujarati-Bold", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati ExtraBold", + "postscriptName": "NotoSansGujarati-ExtraBold", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Black", + "postscriptName": "NotoSansGujarati-Black", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Gujarati", + "fullName": "Noto Sans Gujarati Regular", + "postscriptName": "NotoSansGujarati-Regular", + "category": "sans-serif", + "capHeight": 592, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansGunjalaGondi": { + "familyName": "Noto Sans Gunjala Gondi", + "fullName": "Noto Sans Gunjala Gondi Regular", + "postscriptName": "NotoSansGunjalaGondi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1014, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 4556 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Gunjala Gondi", + "fullName": "Noto Sans Gunjala Gondi Medium", + "postscriptName": "NotoSansGunjalaGondi-Medium", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1014, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 4556 + } + } + }, + "600": { + "familyName": "Noto Sans Gunjala Gondi", + "fullName": "Noto Sans Gunjala Gondi SemiBold", + "postscriptName": "NotoSansGunjalaGondi-SemiBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1014, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 4556 + } + } + }, + "700": { + "familyName": "Noto Sans Gunjala Gondi", + "fullName": "Noto Sans Gunjala Gondi Bold", + "postscriptName": "NotoSansGunjalaGondi-Bold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1014, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 4556 + } + } + }, + "regular": { + "familyName": "Noto Sans Gunjala Gondi", + "fullName": "Noto Sans Gunjala Gondi Regular", + "postscriptName": "NotoSansGunjalaGondi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1014, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 4556 + } + } + } + } + }, + "notoSansGurmukhi": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Regular", + "postscriptName": "NotoSansGurmukhi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Thin", + "postscriptName": "NotoSansGurmukhi-Thin", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi ExtraLight", + "postscriptName": "NotoSansGurmukhi-ExtraLight", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Light", + "postscriptName": "NotoSansGurmukhi-Light", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Medium", + "postscriptName": "NotoSansGurmukhi-Medium", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi SemiBold", + "postscriptName": "NotoSansGurmukhi-SemiBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Bold", + "postscriptName": "NotoSansGurmukhi-Bold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi ExtraBold", + "postscriptName": "NotoSansGurmukhi-ExtraBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Black", + "postscriptName": "NotoSansGurmukhi-Black", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Gurmukhi", + "fullName": "Noto Sans Gurmukhi Regular", + "postscriptName": "NotoSansGurmukhi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 896, + "descent": -408, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansHK": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Regular", + "postscriptName": "NotoSansHK-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Thin", + "postscriptName": "NotoSansHK-Thin", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK ExtraLight", + "postscriptName": "NotoSansHK-ExtraLight", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Light", + "postscriptName": "NotoSansHK-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Medium", + "postscriptName": "NotoSansHK-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK SemiBold", + "postscriptName": "NotoSansHK-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Bold", + "postscriptName": "NotoSansHK-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK ExtraBold", + "postscriptName": "NotoSansHK-ExtraBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Black", + "postscriptName": "NotoSansHK-Black", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Sans HK", + "fullName": "Noto Sans HK Regular", + "postscriptName": "NotoSansHK-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSansHanifiRohingya": { + "familyName": "Noto Sans Hanifi Rohingya", + "fullName": "Noto Sans Hanifi Rohingya Regular", + "postscriptName": "NotoSansHanifiRohingya-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Hanifi Rohingya", + "fullName": "Noto Sans Hanifi Rohingya Medium", + "postscriptName": "NotoSansHanifiRohingya-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Hanifi Rohingya", + "fullName": "Noto Sans Hanifi Rohingya SemiBold", + "postscriptName": "NotoSansHanifiRohingya-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Hanifi Rohingya", + "fullName": "Noto Sans Hanifi Rohingya Bold", + "postscriptName": "NotoSansHanifiRohingya-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Hanifi Rohingya", + "fullName": "Noto Sans Hanifi Rohingya Regular", + "postscriptName": "NotoSansHanifiRohingya-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansHanunoo": { + "familyName": "Noto Sans Hanunoo", + "fullName": "Noto Sans Hanunoo Regular", + "postscriptName": "NotoSansHanunoo-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Hanunoo", + "fullName": "Noto Sans Hanunoo Regular", + "postscriptName": "NotoSansHanunoo-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansHatran": { + "familyName": "Noto Sans Hatran", + "fullName": "Noto Sans Hatran Regular", + "postscriptName": "NotoSansHatran-Regular", + "category": "sans-serif", + "capHeight": 763, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Hatran", + "fullName": "Noto Sans Hatran Regular", + "postscriptName": "NotoSansHatran-Regular", + "category": "sans-serif", + "capHeight": 763, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansHebrew": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Regular", + "postscriptName": "NotoSansHebrew-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Thin", + "postscriptName": "NotoSansHebrew-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew ExtraLight", + "postscriptName": "NotoSansHebrew-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Light", + "postscriptName": "NotoSansHebrew-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Medium", + "postscriptName": "NotoSansHebrew-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew SemiBold", + "postscriptName": "NotoSansHebrew-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Bold", + "postscriptName": "NotoSansHebrew-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew ExtraBold", + "postscriptName": "NotoSansHebrew-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Black", + "postscriptName": "NotoSansHebrew-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Noto Sans Hebrew", + "fullName": "Noto Sans Hebrew Regular", + "postscriptName": "NotoSansHebrew-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansImperialAramaic": { + "familyName": "Noto Sans Imperial Aramaic", + "fullName": "Noto Sans Imperial Aramaic Regular", + "postscriptName": "NotoSansImperialAramaic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Imperial Aramaic", + "fullName": "Noto Sans Imperial Aramaic Regular", + "postscriptName": "NotoSansImperialAramaic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansIndicSiyaqNumbers": { + "familyName": "Noto Sans Indic Siyaq Numbers", + "fullName": "Noto Sans Indic Siyaq Numbers Regular", + "postscriptName": "NotoSansIndicSiyaqNumbers-Regular", + "category": "sans-serif", + "capHeight": 964, + "ascent": 1215, + "descent": -347, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Indic Siyaq Numbers", + "fullName": "Noto Sans Indic Siyaq Numbers Regular", + "postscriptName": "NotoSansIndicSiyaqNumbers-Regular", + "category": "sans-serif", + "capHeight": 964, + "ascent": 1215, + "descent": -347, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansInscriptionalPahlavi": { + "familyName": "Noto Sans Inscriptional Pahlavi", + "fullName": "Noto Sans Inscriptional Pahlavi Regular", + "postscriptName": "NotoSansInscriptionalPahlavi-Regular", + "category": "sans-serif", + "capHeight": 760, + "ascent": 1069, + "descent": -352, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Inscriptional Pahlavi", + "fullName": "Noto Sans Inscriptional Pahlavi Regular", + "postscriptName": "NotoSansInscriptionalPahlavi-Regular", + "category": "sans-serif", + "capHeight": 760, + "ascent": 1069, + "descent": -352, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansInscriptionalParthian": { + "familyName": "Noto Sans Inscriptional Parthian", + "fullName": "Noto Sans Inscriptional Parthian Regular", + "postscriptName": "NotoSansInscriptionalParthian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Inscriptional Parthian", + "fullName": "Noto Sans Inscriptional Parthian Regular", + "postscriptName": "NotoSansInscriptionalParthian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansJP": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Regular", + "postscriptName": "NotoSansJP-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Thin", + "postscriptName": "NotoSansJP-Thin", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP ExtraLight", + "postscriptName": "NotoSansJP-ExtraLight", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Light", + "postscriptName": "NotoSansJP-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Medium", + "postscriptName": "NotoSansJP-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP SemiBold", + "postscriptName": "NotoSansJP-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Bold", + "postscriptName": "NotoSansJP-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP ExtraBold", + "postscriptName": "NotoSansJP-ExtraBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Black", + "postscriptName": "NotoSansJP-Black", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Sans JP", + "fullName": "Noto Sans JP Regular", + "postscriptName": "NotoSansJP-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSansJavanese": { + "familyName": "Noto Sans Javanese", + "fullName": "Noto Sans Javanese Regular", + "postscriptName": "NotoSansJavanese-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1120, + "descent": -916, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Javanese", + "fullName": "Noto Sans Javanese Medium", + "postscriptName": "NotoSansJavanese-Medium", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1120, + "descent": -916, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Javanese", + "fullName": "Noto Sans Javanese SemiBold", + "postscriptName": "NotoSansJavanese-SemiBold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1120, + "descent": -916, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Javanese", + "fullName": "Noto Sans Javanese Bold", + "postscriptName": "NotoSansJavanese-Bold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1120, + "descent": -916, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Javanese", + "fullName": "Noto Sans Javanese Regular", + "postscriptName": "NotoSansJavanese-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 1120, + "descent": -916, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansKR": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Regular", + "postscriptName": "NotoSansKR-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Thin", + "postscriptName": "NotoSansKR-Thin", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR ExtraLight", + "postscriptName": "NotoSansKR-ExtraLight", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Light", + "postscriptName": "NotoSansKR-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Medium", + "postscriptName": "NotoSansKR-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR SemiBold", + "postscriptName": "NotoSansKR-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Bold", + "postscriptName": "NotoSansKR-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR ExtraBold", + "postscriptName": "NotoSansKR-ExtraBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Black", + "postscriptName": "NotoSansKR-Black", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Sans KR", + "fullName": "Noto Sans KR Regular", + "postscriptName": "NotoSansKR-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSansKaithi": { + "familyName": "Noto Sans Kaithi", + "fullName": "Noto Sans Kaithi Regular", + "postscriptName": "NotoSansKaithi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1077, + "descent": -425, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Kaithi", + "fullName": "Noto Sans Kaithi Regular", + "postscriptName": "NotoSansKaithi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1077, + "descent": -425, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansKannada": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Regular", + "postscriptName": "NotoSansKannada-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 599 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Thin", + "postscriptName": "NotoSansKannada-Thin", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "200": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada ExtraLight", + "postscriptName": "NotoSansKannada-ExtraLight", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "300": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Light", + "postscriptName": "NotoSansKannada-Light", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "500": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Medium", + "postscriptName": "NotoSansKannada-Medium", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "600": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada SemiBold", + "postscriptName": "NotoSansKannada-SemiBold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 552, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "700": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Bold", + "postscriptName": "NotoSansKannada-Bold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 552, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "800": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada ExtraBold", + "postscriptName": "NotoSansKannada-ExtraBold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 562, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "900": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Black", + "postscriptName": "NotoSansKannada-Black", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 574, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "regular": { + "familyName": "Noto Sans Kannada", + "fullName": "Noto Sans Kannada Regular", + "postscriptName": "NotoSansKannada-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 809, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 599 + } + } + } + } + }, + "notoSansKawi": { + "familyName": "Noto Sans Kawi", + "fullName": "Noto Sans Kawi Regular", + "postscriptName": "NotoSansKawi-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1100, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Kawi", + "fullName": "Noto Sans Kawi Medium", + "postscriptName": "NotoSansKawi-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1100, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Noto Sans Kawi", + "fullName": "Noto Sans Kawi SemiBold", + "postscriptName": "NotoSansKawi-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1100, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Noto Sans Kawi", + "fullName": "Noto Sans Kawi Bold", + "postscriptName": "NotoSansKawi-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1100, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Noto Sans Kawi", + "fullName": "Noto Sans Kawi Regular", + "postscriptName": "NotoSansKawi-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1100, + "descent": -900, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansKayahLi": { + "familyName": "Noto Sans Kayah Li", + "fullName": "Noto Sans Kayah Li Regular", + "postscriptName": "NotoSansKayahLi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Kayah Li", + "fullName": "Noto Sans Kayah Li Medium", + "postscriptName": "NotoSansKayahLi-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Kayah Li", + "fullName": "Noto Sans Kayah Li SemiBold", + "postscriptName": "NotoSansKayahLi-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Kayah Li", + "fullName": "Noto Sans Kayah Li Bold", + "postscriptName": "NotoSansKayahLi-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Kayah Li", + "fullName": "Noto Sans Kayah Li Regular", + "postscriptName": "NotoSansKayahLi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansKharoshthi": { + "familyName": "Noto Sans Kharoshthi", + "fullName": "Noto Sans Kharoshthi Regular", + "postscriptName": "NotoSansKharoshthi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Kharoshthi", + "fullName": "Noto Sans Kharoshthi Regular", + "postscriptName": "NotoSansKharoshthi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -301, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansKhmer": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Regular", + "postscriptName": "NotoSansKhmer-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 634 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Thin", + "postscriptName": "NotoSansKhmer-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "200": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer ExtraLight", + "postscriptName": "NotoSansKhmer-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 616 + } + } + }, + "300": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Light", + "postscriptName": "NotoSansKhmer-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 623 + } + } + }, + "500": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Medium", + "postscriptName": "NotoSansKhmer-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 644 + } + } + }, + "600": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer SemiBold", + "postscriptName": "NotoSansKhmer-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 655 + } + } + }, + "700": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Bold", + "postscriptName": "NotoSansKhmer-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 668 + } + } + }, + "800": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer ExtraBold", + "postscriptName": "NotoSansKhmer-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 677 + } + } + }, + "900": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Black", + "postscriptName": "NotoSansKhmer-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 689 + } + } + }, + "regular": { + "familyName": "Noto Sans Khmer", + "fullName": "Noto Sans Khmer Regular", + "postscriptName": "NotoSansKhmer-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 634 + } + } + } + } + }, + "notoSansKhojki": { + "familyName": "Noto Sans Khojki", + "fullName": "Noto Sans Khojki Regular", + "postscriptName": "NotoSansKhojki-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Khojki", + "fullName": "Noto Sans Khojki Regular", + "postscriptName": "NotoSansKhojki-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansKhudawadi": { + "familyName": "Noto Sans Khudawadi", + "fullName": "Noto Sans Khudawadi Regular", + "postscriptName": "NotoSansKhudawadi-Regular", + "category": "sans-serif", + "capHeight": 620, + "ascent": 944, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Khudawadi", + "fullName": "Noto Sans Khudawadi Regular", + "postscriptName": "NotoSansKhudawadi-Regular", + "category": "sans-serif", + "capHeight": 620, + "ascent": 944, + "descent": -373, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansLao": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Regular", + "postscriptName": "NotoSansLao-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 503 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Thin", + "postscriptName": "NotoSansLao-Thin", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "200": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao ExtraLight", + "postscriptName": "NotoSansLao-ExtraLight", + "category": "sans-serif", + "capHeight": 739, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "300": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Light", + "postscriptName": "NotoSansLao-Light", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "500": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Medium", + "postscriptName": "NotoSansLao-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "600": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao SemiBold", + "postscriptName": "NotoSansLao-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "700": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Bold", + "postscriptName": "NotoSansLao-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "800": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao ExtraBold", + "postscriptName": "NotoSansLao-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "900": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Black", + "postscriptName": "NotoSansLao-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "regular": { + "familyName": "Noto Sans Lao", + "fullName": "Noto Sans Lao Regular", + "postscriptName": "NotoSansLao-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1183, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 503 + } + } + } + } + }, + "notoSansLaoLooped": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Regular", + "postscriptName": "NotoSansLaoLooped-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Thin", + "postscriptName": "NotoSansLaoLooped-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped ExtraLight", + "postscriptName": "NotoSansLaoLooped-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Light", + "postscriptName": "NotoSansLaoLooped-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Medium", + "postscriptName": "NotoSansLaoLooped-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "600": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped SemiBold", + "postscriptName": "NotoSansLaoLooped-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 593 + } + } + }, + "700": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Bold", + "postscriptName": "NotoSansLaoLooped-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "800": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped ExtraBold", + "postscriptName": "NotoSansLaoLooped-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "900": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Black", + "postscriptName": "NotoSansLaoLooped-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "regular": { + "familyName": "Noto Sans Lao Looped", + "fullName": "Noto Sans Lao Looped Regular", + "postscriptName": "NotoSansLaoLooped-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansLepcha": { + "familyName": "Noto Sans Lepcha", + "fullName": "Noto Sans Lepcha Regular", + "postscriptName": "NotoSansLepcha-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Lepcha", + "fullName": "Noto Sans Lepcha Regular", + "postscriptName": "NotoSansLepcha-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansLimbu": { + "familyName": "Noto Sans Limbu", + "fullName": "Noto Sans Limbu Regular", + "postscriptName": "NotoSansLimbu-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Limbu", + "fullName": "Noto Sans Limbu Regular", + "postscriptName": "NotoSansLimbu-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansLinearA": { + "familyName": "Noto Sans Linear A", + "fullName": "Noto Sans Linear A Regular", + "postscriptName": "NotoSansLinearA-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 661 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Linear A", + "fullName": "Noto Sans Linear A Regular", + "postscriptName": "NotoSansLinearA-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 661 + } + } + } + } + }, + "notoSansLinearB": { + "familyName": "Noto Sans Linear B", + "fullName": "Noto Sans Linear B Regular", + "postscriptName": "NotoSansLinearB-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Linear B", + "fullName": "Noto Sans Linear B Regular", + "postscriptName": "NotoSansLinearB-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansLisu": { + "familyName": "Noto Sans Lisu", + "fullName": "Noto Sans Lisu Regular", + "postscriptName": "NotoSansLisu-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Lisu", + "fullName": "Noto Sans Lisu Medium", + "postscriptName": "NotoSansLisu-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Lisu", + "fullName": "Noto Sans Lisu SemiBold", + "postscriptName": "NotoSansLisu-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Lisu", + "fullName": "Noto Sans Lisu Bold", + "postscriptName": "NotoSansLisu-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Lisu", + "fullName": "Noto Sans Lisu Regular", + "postscriptName": "NotoSansLisu-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansLycian": { + "familyName": "Noto Sans Lycian", + "fullName": "Noto Sans Lycian Regular", + "postscriptName": "NotoSansLycian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Lycian", + "fullName": "Noto Sans Lycian Regular", + "postscriptName": "NotoSansLycian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansLydian": { + "familyName": "Noto Sans Lydian", + "fullName": "Noto Sans Lydian Regular", + "postscriptName": "NotoSansLydian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Lydian", + "fullName": "Noto Sans Lydian Regular", + "postscriptName": "NotoSansLydian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansMahajani": { + "familyName": "Noto Sans Mahajani", + "fullName": "Noto Sans Mahajani Regular", + "postscriptName": "NotoSansMahajani-Regular", + "category": "sans-serif", + "capHeight": 600, + "ascent": 757, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Mahajani", + "fullName": "Noto Sans Mahajani Regular", + "postscriptName": "NotoSansMahajani-Regular", + "category": "sans-serif", + "capHeight": 600, + "ascent": 757, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMalayalam": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Regular", + "postscriptName": "NotoSansMalayalam-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Thin", + "postscriptName": "NotoSansMalayalam-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam ExtraLight", + "postscriptName": "NotoSansMalayalam-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Light", + "postscriptName": "NotoSansMalayalam-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Medium", + "postscriptName": "NotoSansMalayalam-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam SemiBold", + "postscriptName": "NotoSansMalayalam-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Bold", + "postscriptName": "NotoSansMalayalam-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam ExtraBold", + "postscriptName": "NotoSansMalayalam-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Black", + "postscriptName": "NotoSansMalayalam-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Malayalam", + "fullName": "Noto Sans Malayalam Regular", + "postscriptName": "NotoSansMalayalam-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMandaic": { + "familyName": "Noto Sans Mandaic", + "fullName": "Noto Sans Mandaic Regular", + "postscriptName": "NotoSansMandaic-Regular", + "category": "sans-serif", + "capHeight": 694, + "ascent": 724, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Mandaic", + "fullName": "Noto Sans Mandaic Regular", + "postscriptName": "NotoSansMandaic-Regular", + "category": "sans-serif", + "capHeight": 694, + "ascent": 724, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansManichaean": { + "familyName": "Noto Sans Manichaean", + "fullName": "Noto Sans Manichaean Regular", + "postscriptName": "NotoSansManichaean-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 790, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 439, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Manichaean", + "fullName": "Noto Sans Manichaean Regular", + "postscriptName": "NotoSansManichaean-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 790, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 439, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMarchen": { + "familyName": "Noto Sans Marchen", + "fullName": "Noto Sans Marchen Regular", + "postscriptName": "NotoSansMarchen-Regular", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1107, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Marchen", + "fullName": "Noto Sans Marchen Regular", + "postscriptName": "NotoSansMarchen-Regular", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1107, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMasaramGondi": { + "familyName": "Noto Sans Masaram Gondi", + "fullName": "Noto Sans Masaram Gondi Regular", + "postscriptName": "NotoSansMasaramGondi-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 357, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Masaram Gondi", + "fullName": "Noto Sans Masaram Gondi Regular", + "postscriptName": "NotoSansMasaramGondi-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 357, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMath": { + "familyName": "Noto Sans Math", + "fullName": "Noto Sans Math Regular", + "postscriptName": "NotoSansMath-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Math", + "fullName": "Noto Sans Math Regular", + "postscriptName": "NotoSansMath-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMayanNumerals": { + "familyName": "Noto Sans Mayan Numerals", + "fullName": "Noto Sans Mayan Numerals Regular", + "postscriptName": "NotoSansMayanNumerals-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Mayan Numerals", + "fullName": "Noto Sans Mayan Numerals Regular", + "postscriptName": "NotoSansMayanNumerals-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMedefaidrin": { + "familyName": "Noto Sans Medefaidrin", + "fullName": "Noto Sans Medefaidrin Regular", + "postscriptName": "NotoSansMedefaidrin-Regular", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 490 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Medefaidrin", + "fullName": "Noto Sans Medefaidrin Medium", + "postscriptName": "NotoSansMedefaidrin-Medium", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "600": { + "familyName": "Noto Sans Medefaidrin", + "fullName": "Noto Sans Medefaidrin SemiBold", + "postscriptName": "NotoSansMedefaidrin-SemiBold", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "700": { + "familyName": "Noto Sans Medefaidrin", + "fullName": "Noto Sans Medefaidrin Bold", + "postscriptName": "NotoSansMedefaidrin-Bold", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 503 + } + } + }, + "regular": { + "familyName": "Noto Sans Medefaidrin", + "fullName": "Noto Sans Medefaidrin Regular", + "postscriptName": "NotoSansMedefaidrin-Regular", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 490 + } + } + } + } + }, + "notoSansMeeteiMayek": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Regular", + "postscriptName": "NotoSansMeeteiMayek-Regular", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Thin", + "postscriptName": "NotoSansMeeteiMayek-Thin", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek ExtraLight", + "postscriptName": "NotoSansMeeteiMayek-ExtraLight", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Light", + "postscriptName": "NotoSansMeeteiMayek-Light", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Medium", + "postscriptName": "NotoSansMeeteiMayek-Medium", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek SemiBold", + "postscriptName": "NotoSansMeeteiMayek-SemiBold", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Bold", + "postscriptName": "NotoSansMeeteiMayek-Bold", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek ExtraBold", + "postscriptName": "NotoSansMeeteiMayek-ExtraBold", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Black", + "postscriptName": "NotoSansMeeteiMayek-Black", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Meetei Mayek", + "fullName": "Noto Sans Meetei Mayek Regular", + "postscriptName": "NotoSansMeeteiMayek-Regular", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMendeKikakui": { + "familyName": "Noto Sans Mende Kikakui", + "fullName": "Noto Sans Mende Kikakui Regular", + "postscriptName": "NotoSansMendeKikakui-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1030, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Mende Kikakui", + "fullName": "Noto Sans Mende Kikakui Regular", + "postscriptName": "NotoSansMendeKikakui-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1030, + "descent": -237, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMeroitic": { + "familyName": "Noto Sans Meroitic", + "fullName": "Noto Sans Meroitic Regular", + "postscriptName": "NotoSansMeroitic-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 928, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Meroitic", + "fullName": "Noto Sans Meroitic Regular", + "postscriptName": "NotoSansMeroitic-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 928, + "descent": -415, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMiao": { + "familyName": "Noto Sans Miao", + "fullName": "Noto Sans Miao Regular", + "postscriptName": "NotoSansMiao-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1142, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 341, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Miao", + "fullName": "Noto Sans Miao Regular", + "postscriptName": "NotoSansMiao-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1142, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 341, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansModi": { + "familyName": "Noto Sans Modi", + "fullName": "Noto Sans Modi Regular", + "postscriptName": "NotoSansModi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 891, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Modi", + "fullName": "Noto Sans Modi Regular", + "postscriptName": "NotoSansModi-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 891, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMongolian": { + "familyName": "Noto Sans Mongolian", + "fullName": "Noto Sans Mongolian Regular", + "postscriptName": "NotoSansMongolian-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1457, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Mongolian", + "fullName": "Noto Sans Mongolian Regular", + "postscriptName": "NotoSansMongolian-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1457, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMono": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Regular", + "postscriptName": "NotoSansMono-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Thin", + "postscriptName": "NotoSansMono-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono ExtraLight", + "postscriptName": "NotoSansMono-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Light", + "postscriptName": "NotoSansMono-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Medium", + "postscriptName": "NotoSansMono-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono SemiBold", + "postscriptName": "NotoSansMono-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Bold", + "postscriptName": "NotoSansMono-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono ExtraBold", + "postscriptName": "NotoSansMono-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Black", + "postscriptName": "NotoSansMono-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Mono", + "fullName": "Noto Sans Mono Regular", + "postscriptName": "NotoSansMono-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMro": { + "familyName": "Noto Sans Mro", + "fullName": "Noto Sans Mro Regular", + "postscriptName": "NotoSansMro-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Mro", + "fullName": "Noto Sans Mro Regular", + "postscriptName": "NotoSansMro-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMultani": { + "familyName": "Noto Sans Multani", + "fullName": "Noto Sans Multani Regular", + "postscriptName": "NotoSansMultani-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Multani", + "fullName": "Noto Sans Multani Regular", + "postscriptName": "NotoSansMultani-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansMyanmar": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Regular", + "postscriptName": "NotoSansMyanmar-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Thin", + "postscriptName": "NotoSansMyanmar-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar ExtraLight", + "postscriptName": "NotoSansMyanmar-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Light", + "postscriptName": "NotoSansMyanmar-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Medium", + "postscriptName": "NotoSansMyanmar-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar SemiBold", + "postscriptName": "NotoSansMyanmar-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Bold", + "postscriptName": "NotoSansMyanmar-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar ExtraBold", + "postscriptName": "NotoSansMyanmar-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Black", + "postscriptName": "NotoSansMyanmar-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Myanmar", + "fullName": "Noto Sans Myanmar Regular", + "postscriptName": "NotoSansMyanmar-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1324, + "descent": -860, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNKo": { + "familyName": "Noto Sans NKo", + "fullName": "Noto Sans NKo Regular", + "postscriptName": "NotoSansNKo-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans NKo", + "fullName": "Noto Sans NKo Regular", + "postscriptName": "NotoSansNKo-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNKoUnjoined": { + "familyName": "Noto Sans NKo Unjoined", + "fullName": "Noto Sans NKo Unjoined Regular", + "postscriptName": "NotoSansNKoUnjoined-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans NKo Unjoined", + "fullName": "Noto Sans NKo Unjoined Medium", + "postscriptName": "NotoSansNKoUnjoined-Medium", + "category": "sans-serif", + "capHeight": 719, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans NKo Unjoined", + "fullName": "Noto Sans NKo Unjoined SemiBold", + "postscriptName": "NotoSansNKoUnjoined-SemiBold", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans NKo Unjoined", + "fullName": "Noto Sans NKo Unjoined Bold", + "postscriptName": "NotoSansNKoUnjoined-Bold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans NKo Unjoined", + "fullName": "Noto Sans NKo Unjoined Regular", + "postscriptName": "NotoSansNKoUnjoined-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNabataean": { + "familyName": "Noto Sans Nabataean", + "fullName": "Noto Sans Nabataean Regular", + "postscriptName": "NotoSansNabataean-Regular", + "category": "sans-serif", + "capHeight": 640, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Nabataean", + "fullName": "Noto Sans Nabataean Regular", + "postscriptName": "NotoSansNabataean-Regular", + "category": "sans-serif", + "capHeight": 640, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNagMundari": { + "familyName": "Noto Sans Nag Mundari", + "fullName": "Noto Sans Nag Mundari Regular", + "postscriptName": "NotoSansNagMundari-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Nag Mundari", + "fullName": "Noto Sans Nag Mundari Medium", + "postscriptName": "NotoSansNagMundari-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Noto Sans Nag Mundari", + "fullName": "Noto Sans Nag Mundari SemiBold", + "postscriptName": "NotoSansNagMundari-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Noto Sans Nag Mundari", + "fullName": "Noto Sans Nag Mundari Bold", + "postscriptName": "NotoSansNagMundari-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Noto Sans Nag Mundari", + "fullName": "Noto Sans Nag Mundari Regular", + "postscriptName": "NotoSansNagMundari-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansNandinagari": { + "familyName": "Noto Sans Nandinagari", + "fullName": "Noto Sans Nandinagari Regular", + "postscriptName": "NotoSansNandinagari-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 900, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Nandinagari", + "fullName": "Noto Sans Nandinagari Regular", + "postscriptName": "NotoSansNandinagari-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 900, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNewTaiLue": { + "familyName": "Noto Sans New Tai Lue", + "fullName": "Noto Sans New Tai Lue Regular", + "postscriptName": "NotoSansNewTaiLue-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans New Tai Lue", + "fullName": "Noto Sans New Tai Lue Medium", + "postscriptName": "NotoSansNewTaiLue-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans New Tai Lue", + "fullName": "Noto Sans New Tai Lue SemiBold", + "postscriptName": "NotoSansNewTaiLue-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans New Tai Lue", + "fullName": "Noto Sans New Tai Lue Bold", + "postscriptName": "NotoSansNewTaiLue-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans New Tai Lue", + "fullName": "Noto Sans New Tai Lue Regular", + "postscriptName": "NotoSansNewTaiLue-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNewa": { + "familyName": "Noto Sans Newa", + "fullName": "Noto Sans Newa Regular", + "postscriptName": "NotoSansNewa-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1036, + "descent": -396, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Newa", + "fullName": "Noto Sans Newa Regular", + "postscriptName": "NotoSansNewa-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1036, + "descent": -396, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansNushu": { + "familyName": "Noto Sans Nushu", + "fullName": "Noto Sans Nushu Regular", + "postscriptName": "NotoSansNushu-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Nushu", + "fullName": "Noto Sans Nushu Regular", + "postscriptName": "NotoSansNushu-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -321, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOgham": { + "familyName": "Noto Sans Ogham", + "fullName": "Noto Sans Ogham Regular", + "postscriptName": "NotoSansOgham-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Ogham", + "fullName": "Noto Sans Ogham Regular", + "postscriptName": "NotoSansOgham-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOlChiki": { + "familyName": "Noto Sans Ol Chiki", + "fullName": "Noto Sans Ol Chiki Regular", + "postscriptName": "NotoSansOlChiki-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Ol Chiki", + "fullName": "Noto Sans Ol Chiki Medium", + "postscriptName": "NotoSansOlChiki-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Ol Chiki", + "fullName": "Noto Sans Ol Chiki SemiBold", + "postscriptName": "NotoSansOlChiki-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Ol Chiki", + "fullName": "Noto Sans Ol Chiki Bold", + "postscriptName": "NotoSansOlChiki-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Ol Chiki", + "fullName": "Noto Sans Ol Chiki Regular", + "postscriptName": "NotoSansOlChiki-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldHungarian": { + "familyName": "Noto Sans Old Hungarian", + "fullName": "Noto Sans Old Hungarian Regular", + "postscriptName": "NotoSansOldHungarian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 859, + "descent": -177, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old Hungarian", + "fullName": "Noto Sans Old Hungarian Regular", + "postscriptName": "NotoSansOldHungarian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 859, + "descent": -177, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 600, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldItalic": { + "familyName": "Noto Sans Old Italic", + "fullName": "Noto Sans Old Italic Regular", + "postscriptName": "NotoSansOldItalic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old Italic", + "fullName": "Noto Sans Old Italic Regular", + "postscriptName": "NotoSansOldItalic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldNorthArabian": { + "familyName": "Noto Sans Old North Arabian", + "fullName": "Noto Sans Old North Arabian Regular", + "postscriptName": "NotoSansOldNorthArabian-Regular", + "category": "sans-serif", + "capHeight": 665, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old North Arabian", + "fullName": "Noto Sans Old North Arabian Regular", + "postscriptName": "NotoSansOldNorthArabian-Regular", + "category": "sans-serif", + "capHeight": 665, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldPermic": { + "familyName": "Noto Sans Old Permic", + "fullName": "Noto Sans Old Permic Regular", + "postscriptName": "NotoSansOldPermic-Regular", + "category": "sans-serif", + "capHeight": 638, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old Permic", + "fullName": "Noto Sans Old Permic Regular", + "postscriptName": "NotoSansOldPermic-Regular", + "category": "sans-serif", + "capHeight": 638, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldPersian": { + "familyName": "Noto Sans Old Persian", + "fullName": "Noto Sans Old Persian Regular", + "postscriptName": "NotoSansOldPersian-Regular", + "category": "sans-serif", + "capHeight": 724, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old Persian", + "fullName": "Noto Sans Old Persian Regular", + "postscriptName": "NotoSansOldPersian-Regular", + "category": "sans-serif", + "capHeight": 724, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldSogdian": { + "familyName": "Noto Sans Old Sogdian", + "fullName": "Noto Sans Old Sogdian Regular", + "postscriptName": "NotoSansOldSogdian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old Sogdian", + "fullName": "Noto Sans Old Sogdian Regular", + "postscriptName": "NotoSansOldSogdian-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOldSouthArabian": { + "familyName": "Noto Sans Old South Arabian", + "fullName": "Noto Sans Old South Arabian Regular", + "postscriptName": "NotoSansOldSouthArabian-Regular", + "category": "sans-serif", + "capHeight": 859, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old South Arabian", + "fullName": "Noto Sans Old South Arabian Regular", + "postscriptName": "NotoSansOldSouthArabian-Regular", + "category": "sans-serif", + "capHeight": 859, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansOldTurkic": { + "familyName": "Noto Sans Old Turkic", + "fullName": "Noto Sans Old Turkic Regular", + "postscriptName": "NotoSansOldTurkic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Old Turkic", + "fullName": "Noto Sans Old Turkic Regular", + "postscriptName": "NotoSansOldTurkic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOriya": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Regular", + "postscriptName": "NotoSansOriya-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 1229 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Thin", + "postscriptName": "NotoSansOriya-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "200": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya ExtraLight", + "postscriptName": "NotoSansOriya-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "300": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Light", + "postscriptName": "NotoSansOriya-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "500": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Medium", + "postscriptName": "NotoSansOriya-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "600": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya SemiBold", + "postscriptName": "NotoSansOriya-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "700": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Bold", + "postscriptName": "NotoSansOriya-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "800": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya ExtraBold", + "postscriptName": "NotoSansOriya-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "900": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Black", + "postscriptName": "NotoSansOriya-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "regular": { + "familyName": "Noto Sans Oriya", + "fullName": "Noto Sans Oriya Regular", + "postscriptName": "NotoSansOriya-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 658, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 1229 + } + } + } + } + }, + "notoSansOsage": { + "familyName": "Noto Sans Osage", + "fullName": "Noto Sans Osage Regular", + "postscriptName": "NotoSansOsage-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Osage", + "fullName": "Noto Sans Osage Regular", + "postscriptName": "NotoSansOsage-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansOsmanya": { + "familyName": "Noto Sans Osmanya", + "fullName": "Noto Sans Osmanya Regular", + "postscriptName": "NotoSansOsmanya-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Osmanya", + "fullName": "Noto Sans Osmanya Regular", + "postscriptName": "NotoSansOsmanya-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansPahawhHmong": { + "familyName": "Noto Sans Pahawh Hmong", + "fullName": "Noto Sans Pahawh Hmong Regular", + "postscriptName": "NotoSansPahawhHmong-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Pahawh Hmong", + "fullName": "Noto Sans Pahawh Hmong Regular", + "postscriptName": "NotoSansPahawhHmong-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansPalmyrene": { + "familyName": "Noto Sans Palmyrene", + "fullName": "Noto Sans Palmyrene Regular", + "postscriptName": "NotoSansPalmyrene-Regular", + "category": "sans-serif", + "capHeight": 778, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 640, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Palmyrene", + "fullName": "Noto Sans Palmyrene Regular", + "postscriptName": "NotoSansPalmyrene-Regular", + "category": "sans-serif", + "capHeight": 778, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 640, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansPauCinHau": { + "familyName": "Noto Sans Pau Cin Hau", + "fullName": "Noto Sans Pau Cin Hau Regular", + "postscriptName": "NotoSansPauCinHau-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Pau Cin Hau", + "fullName": "Noto Sans Pau Cin Hau Regular", + "postscriptName": "NotoSansPauCinHau-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansPhagsPa": { + "familyName": "Noto Sans Phags Pa", + "fullName": "Noto Sans PhagsPa Regular", + "postscriptName": "NotoSansPhagsPa-Regular", + "category": "sans-serif", + "capHeight": 670, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Phags Pa", + "fullName": "Noto Sans PhagsPa Regular", + "postscriptName": "NotoSansPhagsPa-Regular", + "category": "sans-serif", + "capHeight": 670, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansPhoenician": { + "familyName": "Noto Sans Phoenician", + "fullName": "Noto Sans Phoenician Regular", + "postscriptName": "NotoSansPhoenician-Regular", + "category": "sans-serif", + "capHeight": 719, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Phoenician", + "fullName": "Noto Sans Phoenician Regular", + "postscriptName": "NotoSansPhoenician-Regular", + "category": "sans-serif", + "capHeight": 719, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansPsalterPahlavi": { + "familyName": "Noto Sans Psalter Pahlavi", + "fullName": "Noto Sans Psalter Pahlavi Regular", + "postscriptName": "NotoSansPsalterPahlavi-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 737, + "descent": -554, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 469, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Psalter Pahlavi", + "fullName": "Noto Sans Psalter Pahlavi Regular", + "postscriptName": "NotoSansPsalterPahlavi-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 737, + "descent": -554, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 469, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansRejang": { + "familyName": "Noto Sans Rejang", + "fullName": "Noto Sans Rejang Regular", + "postscriptName": "NotoSansRejang-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Rejang", + "fullName": "Noto Sans Rejang Regular", + "postscriptName": "NotoSansRejang-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansRunic": { + "familyName": "Noto Sans Runic", + "fullName": "Noto Sans Runic Regular", + "postscriptName": "NotoSansRunic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Runic", + "fullName": "Noto Sans Runic Regular", + "postscriptName": "NotoSansRunic-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSC": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Regular", + "postscriptName": "NotoSansSC-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Thin", + "postscriptName": "NotoSansSC-Thin", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC ExtraLight", + "postscriptName": "NotoSansSC-ExtraLight", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Light", + "postscriptName": "NotoSansSC-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Medium", + "postscriptName": "NotoSansSC-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC SemiBold", + "postscriptName": "NotoSansSC-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Bold", + "postscriptName": "NotoSansSC-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC ExtraBold", + "postscriptName": "NotoSansSC-ExtraBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Black", + "postscriptName": "NotoSansSC-Black", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Sans SC", + "fullName": "Noto Sans SC Regular", + "postscriptName": "NotoSansSC-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSansSamaritan": { + "familyName": "Noto Sans Samaritan", + "fullName": "Noto Sans Samaritan Regular", + "postscriptName": "NotoSansSamaritan-Regular", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Samaritan", + "fullName": "Noto Sans Samaritan Regular", + "postscriptName": "NotoSansSamaritan-Regular", + "category": "sans-serif", + "capHeight": 659, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansSaurashtra": { + "familyName": "Noto Sans Saurashtra", + "fullName": "Noto Sans Saurashtra Regular", + "postscriptName": "NotoSansSaurashtra-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Saurashtra", + "fullName": "Noto Sans Saurashtra Regular", + "postscriptName": "NotoSansSaurashtra-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSharada": { + "familyName": "Noto Sans Sharada", + "fullName": "Noto Sans Sharada Regular", + "postscriptName": "NotoSansSharada-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 925, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Sharada", + "fullName": "Noto Sans Sharada Regular", + "postscriptName": "NotoSansSharada-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 925, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansShavian": { + "familyName": "Noto Sans Shavian", + "fullName": "Noto Sans Shavian Regular", + "postscriptName": "NotoSansShavian-Regular", + "category": "sans-serif", + "capHeight": 771, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Shavian", + "fullName": "Noto Sans Shavian Regular", + "postscriptName": "NotoSansShavian-Regular", + "category": "sans-serif", + "capHeight": 771, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansSiddham": { + "familyName": "Noto Sans Siddham", + "fullName": "Noto Sans Siddham Regular", + "postscriptName": "NotoSansSiddham-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1000, + "descent": -1030, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 683, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Siddham", + "fullName": "Noto Sans Siddham Regular", + "postscriptName": "NotoSansSiddham-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1000, + "descent": -1030, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 683, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSignWriting": { + "familyName": "Noto Sans SignWriting", + "fullName": "Noto Sans SignWriting Regular", + "postscriptName": "NotoSansSignWriting-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 802, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 588, + "subsets": { + "latin": { + "xWidthAvg": 588 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans SignWriting", + "fullName": "Noto Sans SignWriting Regular", + "postscriptName": "NotoSansSignWriting-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 802, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 588, + "subsets": { + "latin": { + "xWidthAvg": 588 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSansSinhala": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Regular", + "postscriptName": "NotoSansSinhala-Regular", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Thin", + "postscriptName": "NotoSansSinhala-Thin", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala ExtraLight", + "postscriptName": "NotoSansSinhala-ExtraLight", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Light", + "postscriptName": "NotoSansSinhala-Light", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Medium", + "postscriptName": "NotoSansSinhala-Medium", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala SemiBold", + "postscriptName": "NotoSansSinhala-SemiBold", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Bold", + "postscriptName": "NotoSansSinhala-Bold", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala ExtraBold", + "postscriptName": "NotoSansSinhala-ExtraBold", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 549, + "subsets": { + "latin": { + "xWidthAvg": 549 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Black", + "postscriptName": "NotoSansSinhala-Black", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Sinhala", + "fullName": "Noto Sans Sinhala Regular", + "postscriptName": "NotoSansSinhala-Regular", + "category": "sans-serif", + "capHeight": 612, + "ascent": 1011, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSogdian": { + "familyName": "Noto Sans Sogdian", + "fullName": "Noto Sans Sogdian Regular", + "postscriptName": "NotoSansSogdian-Regular", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -313, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 382, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Sogdian", + "fullName": "Noto Sans Sogdian Regular", + "postscriptName": "NotoSansSogdian-Regular", + "category": "sans-serif", + "capHeight": 674, + "ascent": 1069, + "descent": -313, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 382, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSoraSompeng": { + "familyName": "Noto Sans Sora Sompeng", + "fullName": "Noto Sans Sora Sompeng Regular", + "postscriptName": "NotoSansSoraSompeng-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Sora Sompeng", + "fullName": "Noto Sans Sora Sompeng Medium", + "postscriptName": "NotoSansSoraSompeng-Medium", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Sora Sompeng", + "fullName": "Noto Sans Sora Sompeng SemiBold", + "postscriptName": "NotoSansSoraSompeng-SemiBold", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Sora Sompeng", + "fullName": "Noto Sans Sora Sompeng Bold", + "postscriptName": "NotoSansSoraSompeng-Bold", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Sora Sompeng", + "fullName": "Noto Sans Sora Sompeng Regular", + "postscriptName": "NotoSansSoraSompeng-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 433, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSoyombo": { + "familyName": "Noto Sans Soyombo", + "fullName": "Noto Sans Soyombo Regular", + "postscriptName": "NotoSansSoyombo-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1239, + "descent": -357, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Soyombo", + "fullName": "Noto Sans Soyombo Regular", + "postscriptName": "NotoSansSoyombo-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1239, + "descent": -357, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSundanese": { + "familyName": "Noto Sans Sundanese", + "fullName": "Noto Sans Sundanese Regular", + "postscriptName": "NotoSansSundanese-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -368, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Sundanese", + "fullName": "Noto Sans Sundanese Medium", + "postscriptName": "NotoSansSundanese-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -368, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Sundanese", + "fullName": "Noto Sans Sundanese SemiBold", + "postscriptName": "NotoSansSundanese-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -368, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Sundanese", + "fullName": "Noto Sans Sundanese Bold", + "postscriptName": "NotoSansSundanese-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -368, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Sundanese", + "fullName": "Noto Sans Sundanese Regular", + "postscriptName": "NotoSansSundanese-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -368, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSylotiNagri": { + "familyName": "Noto Sans Syloti Nagri", + "fullName": "Noto Sans Syloti Nagri Regular", + "postscriptName": "NotoSansSylotiNagri-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Syloti Nagri", + "fullName": "Noto Sans Syloti Nagri Regular", + "postscriptName": "NotoSansSylotiNagri-Regular", + "category": "sans-serif", + "capHeight": 679, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSymbols": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Regular", + "postscriptName": "NotoSansSymbols-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Thin", + "postscriptName": "NotoSansSymbols-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols ExtraLight", + "postscriptName": "NotoSansSymbols-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Light", + "postscriptName": "NotoSansSymbols-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Medium", + "postscriptName": "NotoSansSymbols-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols SemiBold", + "postscriptName": "NotoSansSymbols-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Bold", + "postscriptName": "NotoSansSymbols-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols ExtraBold", + "postscriptName": "NotoSansSymbols-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Black", + "postscriptName": "NotoSansSymbols-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Symbols", + "fullName": "Noto Sans Symbols Regular", + "postscriptName": "NotoSansSymbols-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1480, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSymbols2": { + "familyName": "Noto Sans Symbols 2", + "fullName": "Noto Sans Symbols 2 Regular", + "postscriptName": "NotoSansSymbols2-Regular", + "category": "sans-serif", + "capHeight": 945, + "ascent": 1069, + "descent": -630, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Symbols 2", + "fullName": "Noto Sans Symbols 2 Regular", + "postscriptName": "NotoSansSymbols2-Regular", + "category": "sans-serif", + "capHeight": 945, + "ascent": 1069, + "descent": -630, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSyriac": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Regular", + "postscriptName": "NotoSansSyriac-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Thin", + "postscriptName": "NotoSansSyriac-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac ExtraLight", + "postscriptName": "NotoSansSyriac-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Light", + "postscriptName": "NotoSansSyriac-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Medium", + "postscriptName": "NotoSansSyriac-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac SemiBold", + "postscriptName": "NotoSansSyriac-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Bold", + "postscriptName": "NotoSansSyriac-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac ExtraBold", + "postscriptName": "NotoSansSyriac-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Black", + "postscriptName": "NotoSansSyriac-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Syriac", + "fullName": "Noto Sans Syriac Regular", + "postscriptName": "NotoSansSyriac-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansSyriacEastern": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Regular", + "postscriptName": "NotoSansSyriacEastern-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Thin", + "postscriptName": "NotoSansSyriacEastern-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern ExtraLight", + "postscriptName": "NotoSansSyriacEastern-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Light", + "postscriptName": "NotoSansSyriacEastern-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Medium", + "postscriptName": "NotoSansSyriacEastern-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern SemiBold", + "postscriptName": "NotoSansSyriacEastern-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Bold", + "postscriptName": "NotoSansSyriacEastern-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern ExtraBold", + "postscriptName": "NotoSansSyriacEastern-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Black", + "postscriptName": "NotoSansSyriacEastern-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Syriac Eastern", + "fullName": "Noto Sans Syriac Eastern Regular", + "postscriptName": "NotoSansSyriacEastern-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 926, + "descent": -486, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTC": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Regular", + "postscriptName": "NotoSansTC-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Thin", + "postscriptName": "NotoSansTC-Thin", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC ExtraLight", + "postscriptName": "NotoSansTC-ExtraLight", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Light", + "postscriptName": "NotoSansTC-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Medium", + "postscriptName": "NotoSansTC-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC SemiBold", + "postscriptName": "NotoSansTC-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Bold", + "postscriptName": "NotoSansTC-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC ExtraBold", + "postscriptName": "NotoSansTC-ExtraBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Black", + "postscriptName": "NotoSansTC-Black", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Sans TC", + "fullName": "Noto Sans TC Regular", + "postscriptName": "NotoSansTC-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSansTagalog": { + "familyName": "Noto Sans Tagalog", + "fullName": "Noto Sans Tagalog Regular", + "postscriptName": "NotoSansTagalog-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tagalog", + "fullName": "Noto Sans Tagalog Regular", + "postscriptName": "NotoSansTagalog-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTagbanwa": { + "familyName": "Noto Sans Tagbanwa", + "fullName": "Noto Sans Tagbanwa Regular", + "postscriptName": "NotoSansTagbanwa-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tagbanwa", + "fullName": "Noto Sans Tagbanwa Regular", + "postscriptName": "NotoSansTagbanwa-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTaiLe": { + "familyName": "Noto Sans Tai Le", + "fullName": "Noto Sans Tai Le Regular", + "postscriptName": "NotoSansTaiLe-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tai Le", + "fullName": "Noto Sans Tai Le Regular", + "postscriptName": "NotoSansTaiLe-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTaiTham": { + "familyName": "Noto Sans Tai Tham", + "fullName": "Noto Sans Tai Tham Regular", + "postscriptName": "NotoSansTaiTham-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1069, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 619 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Tai Tham", + "fullName": "Noto Sans Tai Tham Medium", + "postscriptName": "NotoSansTaiTham-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1069, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 619 + } + } + }, + "600": { + "familyName": "Noto Sans Tai Tham", + "fullName": "Noto Sans Tai Tham SemiBold", + "postscriptName": "NotoSansTaiTham-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1069, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 619 + } + } + }, + "700": { + "familyName": "Noto Sans Tai Tham", + "fullName": "Noto Sans Tai Tham Bold", + "postscriptName": "NotoSansTaiTham-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1069, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 619 + } + } + }, + "regular": { + "familyName": "Noto Sans Tai Tham", + "fullName": "Noto Sans Tai Tham Regular", + "postscriptName": "NotoSansTaiTham-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1069, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 619 + } + } + } + } + }, + "notoSansTaiViet": { + "familyName": "Noto Sans Tai Viet", + "fullName": "Noto Sans Tai Viet Regular", + "postscriptName": "NotoSansTaiViet-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tai Viet", + "fullName": "Noto Sans Tai Viet Regular", + "postscriptName": "NotoSansTaiViet-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTakri": { + "familyName": "Noto Sans Takri", + "fullName": "Noto Sans Takri Regular", + "postscriptName": "NotoSansTakri-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 955, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Takri", + "fullName": "Noto Sans Takri Regular", + "postscriptName": "NotoSansTakri-Regular", + "category": "sans-serif", + "capHeight": 625, + "ascent": 955, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTamil": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Regular", + "postscriptName": "NotoSansTamil-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Thin", + "postscriptName": "NotoSansTamil-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil ExtraLight", + "postscriptName": "NotoSansTamil-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Light", + "postscriptName": "NotoSansTamil-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Medium", + "postscriptName": "NotoSansTamil-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil SemiBold", + "postscriptName": "NotoSansTamil-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Bold", + "postscriptName": "NotoSansTamil-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil ExtraBold", + "postscriptName": "NotoSansTamil-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Black", + "postscriptName": "NotoSansTamil-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Tamil", + "fullName": "Noto Sans Tamil Regular", + "postscriptName": "NotoSansTamil-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTamilSupplement": { + "familyName": "Noto Sans Tamil Supplement", + "fullName": "Noto Sans Tamil Supplement Regular", + "postscriptName": "NotoSansTamilSupplement-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tamil Supplement", + "fullName": "Noto Sans Tamil Supplement Regular", + "postscriptName": "NotoSansTamilSupplement-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 870, + "descent": -370, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTangsa": { + "familyName": "Noto Sans Tangsa", + "fullName": "Noto Sans Tangsa Regular", + "postscriptName": "NotoSansTangsa-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Tangsa", + "fullName": "Noto Sans Tangsa Medium", + "postscriptName": "NotoSansTangsa-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "600": { + "familyName": "Noto Sans Tangsa", + "fullName": "Noto Sans Tangsa SemiBold", + "postscriptName": "NotoSansTangsa-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "700": { + "familyName": "Noto Sans Tangsa", + "fullName": "Noto Sans Tangsa Bold", + "postscriptName": "NotoSansTangsa-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 617 + } + } + }, + "regular": { + "familyName": "Noto Sans Tangsa", + "fullName": "Noto Sans Tangsa Regular", + "postscriptName": "NotoSansTangsa-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTelugu": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Regular", + "postscriptName": "NotoSansTelugu-Regular", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Thin", + "postscriptName": "NotoSansTelugu-Thin", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu ExtraLight", + "postscriptName": "NotoSansTelugu-ExtraLight", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Light", + "postscriptName": "NotoSansTelugu-Light", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Medium", + "postscriptName": "NotoSansTelugu-Medium", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu SemiBold", + "postscriptName": "NotoSansTelugu-SemiBold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Bold", + "postscriptName": "NotoSansTelugu-Bold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu ExtraBold", + "postscriptName": "NotoSansTelugu-ExtraBold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Black", + "postscriptName": "NotoSansTelugu-Black", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Telugu", + "fullName": "Noto Sans Telugu Regular", + "postscriptName": "NotoSansTelugu-Regular", + "category": "sans-serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansThaana": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Regular", + "postscriptName": "NotoSansThaana-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Thin", + "postscriptName": "NotoSansThaana-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana ExtraLight", + "postscriptName": "NotoSansThaana-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Light", + "postscriptName": "NotoSansThaana-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Medium", + "postscriptName": "NotoSansThaana-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana SemiBold", + "postscriptName": "NotoSansThaana-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Bold", + "postscriptName": "NotoSansThaana-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana ExtraBold", + "postscriptName": "NotoSansThaana-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Black", + "postscriptName": "NotoSansThaana-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Sans Thaana", + "fullName": "Noto Sans Thaana Regular", + "postscriptName": "NotoSansThaana-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansThai": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Regular", + "postscriptName": "NotoSansThai-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 536 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Thin", + "postscriptName": "NotoSansThai-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 523 + } + } + }, + "200": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai ExtraLight", + "postscriptName": "NotoSansThai-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 526 + } + } + }, + "300": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Light", + "postscriptName": "NotoSansThai-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 530 + } + } + }, + "500": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Medium", + "postscriptName": "NotoSansThai-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "600": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai SemiBold", + "postscriptName": "NotoSansThai-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "700": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Bold", + "postscriptName": "NotoSansThai-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "800": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai ExtraBold", + "postscriptName": "NotoSansThai-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "900": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Black", + "postscriptName": "NotoSansThai-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "regular": { + "familyName": "Noto Sans Thai", + "fullName": "Noto Sans Thai Regular", + "postscriptName": "NotoSansThai-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1061, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 536 + } + } + } + } + }, + "notoSansThaiLooped": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Regular", + "postscriptName": "NotoSansThaiLooped-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 573 + } + }, + "variants": { + "100": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Thin", + "postscriptName": "NotoSansThaiLooped-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 528, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 533 + } + } + }, + "200": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped ExtraLight", + "postscriptName": "NotoSansThaiLooped-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 541 + } + } + }, + "300": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Light", + "postscriptName": "NotoSansThaiLooped-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "500": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Medium", + "postscriptName": "NotoSansThaiLooped-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 581 + } + } + }, + "600": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped SemiBold", + "postscriptName": "NotoSansThaiLooped-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 592 + } + } + }, + "700": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Bold", + "postscriptName": "NotoSansThaiLooped-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "800": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped ExtraBold", + "postscriptName": "NotoSansThaiLooped-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 549, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "900": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Black", + "postscriptName": "NotoSansThaiLooped-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 553, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 622 + } + } + }, + "regular": { + "familyName": "Noto Sans Thai Looped", + "fullName": "Noto Sans Thai Looped Regular", + "postscriptName": "NotoSansThaiLooped-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1250, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 573 + } + } + } + } + }, + "notoSansTifinagh": { + "familyName": "Noto Sans Tifinagh", + "fullName": "Noto Sans Tifinagh Regular", + "postscriptName": "NotoSansTifinagh-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tifinagh", + "fullName": "Noto Sans Tifinagh Regular", + "postscriptName": "NotoSansTifinagh-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansTirhuta": { + "familyName": "Noto Sans Tirhuta", + "fullName": "Noto Sans Tirhuta Regular", + "postscriptName": "NotoSansTirhuta-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1026, + "descent": -519, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Tirhuta", + "fullName": "Noto Sans Tirhuta Regular", + "postscriptName": "NotoSansTirhuta-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1026, + "descent": -519, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansUgaritic": { + "familyName": "Noto Sans Ugaritic", + "fullName": "Noto Sans Ugaritic Regular", + "postscriptName": "NotoSansUgaritic-Regular", + "category": "sans-serif", + "capHeight": 723, + "ascent": 743, + "descent": -381, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Ugaritic", + "fullName": "Noto Sans Ugaritic Regular", + "postscriptName": "NotoSansUgaritic-Regular", + "category": "sans-serif", + "capHeight": 723, + "ascent": 743, + "descent": -381, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansVai": { + "familyName": "Noto Sans Vai", + "fullName": "Noto Sans Vai Regular", + "postscriptName": "NotoSansVai-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Vai", + "fullName": "Noto Sans Vai Regular", + "postscriptName": "NotoSansVai-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansVithkuqi": { + "familyName": "Noto Sans Vithkuqi", + "fullName": "Noto Sans Vithkuqi Regular", + "postscriptName": "NotoSansVithkuqi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Sans Vithkuqi", + "fullName": "Noto Sans Vithkuqi Medium", + "postscriptName": "NotoSansVithkuqi-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 594 + } + } + }, + "600": { + "familyName": "Noto Sans Vithkuqi", + "fullName": "Noto Sans Vithkuqi SemiBold", + "postscriptName": "NotoSansVithkuqi-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 588 + } + } + }, + "700": { + "familyName": "Noto Sans Vithkuqi", + "fullName": "Noto Sans Vithkuqi Bold", + "postscriptName": "NotoSansVithkuqi-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "regular": { + "familyName": "Noto Sans Vithkuqi", + "fullName": "Noto Sans Vithkuqi Regular", + "postscriptName": "NotoSansVithkuqi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansWancho": { + "familyName": "Noto Sans Wancho", + "fullName": "Noto Sans Wancho Regular", + "postscriptName": "NotoSansWancho-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1096, + "descent": -161, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Wancho", + "fullName": "Noto Sans Wancho Regular", + "postscriptName": "NotoSansWancho-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1096, + "descent": -161, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSansWarangCiti": { + "familyName": "Noto Sans Warang Citi", + "fullName": "Noto Sans Warang Citi Regular", + "postscriptName": "NotoSansWarangCiti-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1042, + "descent": -100, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Warang Citi", + "fullName": "Noto Sans Warang Citi Regular", + "postscriptName": "NotoSansWarangCiti-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1042, + "descent": -100, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSansYi": { + "familyName": "Noto Sans Yi", + "fullName": "Noto Sans Yi Regular", + "postscriptName": "NotoSansYi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 439 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Yi", + "fullName": "Noto Sans Yi Regular", + "postscriptName": "NotoSansYi-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 439 + } + } + } + } + }, + "notoSansZanabazarSquare": { + "familyName": "Noto Sans Zanabazar Square", + "fullName": "Noto Sans Zanabazar Square Regular", + "postscriptName": "NotoSansZanabazarSquare-Regular", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1621, + "descent": -821, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Sans Zanabazar Square", + "fullName": "Noto Sans Zanabazar Square Regular", + "postscriptName": "NotoSansZanabazarSquare-Regular", + "category": "sans-serif", + "capHeight": 678, + "ascent": 1621, + "descent": -821, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerif": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Regular", + "postscriptName": "NotoSerif-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Thin", + "postscriptName": "NotoSerif-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif", + "fullName": "Noto Serif ExtraLight", + "postscriptName": "NotoSerif-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Light", + "postscriptName": "NotoSerif-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Medium", + "postscriptName": "NotoSerif-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "600": { + "familyName": "Noto Serif", + "fullName": "Noto Serif SemiBold", + "postscriptName": "NotoSerif-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "700": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Bold", + "postscriptName": "NotoSerif-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "800": { + "familyName": "Noto Serif", + "fullName": "Noto Serif ExtraBold", + "postscriptName": "NotoSerif-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 592 + } + } + }, + "900": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Black", + "postscriptName": "NotoSerif-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Regular", + "postscriptName": "NotoSerif-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Italic", + "postscriptName": "NotoSerif-Italic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Black Italic", + "postscriptName": "NotoSerif-BlackItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 552, + "subsets": { + "latin": { + "xWidthAvg": 552 + }, + "thai": { + "xWidthAvg": 426 + } + } + }, + "800italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif ExtraBold Italic", + "postscriptName": "NotoSerif-ExtraBoldItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 459 + } + } + }, + "700italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Bold Italic", + "postscriptName": "NotoSerif-BoldItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif SemiBold Italic", + "postscriptName": "NotoSerif-SemiBoldItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 538 + } + } + }, + "500italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Medium Italic", + "postscriptName": "NotoSerif-MediumItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "300italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Light Italic", + "postscriptName": "NotoSerif-LightItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "200italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif ExtraLight Italic", + "postscriptName": "NotoSerif-ExtraLightItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 701 + } + } + }, + "100italic": { + "familyName": "Noto Serif", + "fullName": "Noto Serif Thin Italic", + "postscriptName": "NotoSerif-ThinItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 728 + } + } + } + } + }, + "notoSerifAhom": { + "familyName": "Noto Serif Ahom", + "fullName": "Noto Serif Ahom Regular", + "postscriptName": "NotoSerifAhom-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 980, + "descent": -675, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Ahom", + "fullName": "Noto Serif Ahom Regular", + "postscriptName": "NotoSerifAhom-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 980, + "descent": -675, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifArmenian": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Regular", + "postscriptName": "NotoSerifArmenian-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 554 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Thin", + "postscriptName": "NotoSerifArmenian-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "200": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian ExtraLight", + "postscriptName": "NotoSerifArmenian-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "300": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Light", + "postscriptName": "NotoSerifArmenian-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "500": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Medium", + "postscriptName": "NotoSerifArmenian-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "600": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian SemiBold", + "postscriptName": "NotoSerifArmenian-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "700": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Bold", + "postscriptName": "NotoSerifArmenian-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian ExtraBold", + "postscriptName": "NotoSerifArmenian-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 616 + } + } + }, + "900": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Black", + "postscriptName": "NotoSerifArmenian-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 629 + } + } + }, + "regular": { + "familyName": "Noto Serif Armenian", + "fullName": "Noto Serif Armenian Regular", + "postscriptName": "NotoSerifArmenian-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 554 + } + } + } + } + }, + "notoSerifBalinese": { + "familyName": "Noto Serif Balinese", + "fullName": "Noto Serif Balinese Regular", + "postscriptName": "NotoSerifBalinese-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -726, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Balinese", + "fullName": "Noto Serif Balinese Regular", + "postscriptName": "NotoSerifBalinese-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -726, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifBengali": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Regular", + "postscriptName": "NotoSerifBengali-Regular", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Thin", + "postscriptName": "NotoSerifBengali-Thin", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali ExtraLight", + "postscriptName": "NotoSerifBengali-ExtraLight", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Light", + "postscriptName": "NotoSerifBengali-Light", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Medium", + "postscriptName": "NotoSerifBengali-Medium", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali SemiBold", + "postscriptName": "NotoSerifBengali-SemiBold", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Bold", + "postscriptName": "NotoSerifBengali-Bold", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali ExtraBold", + "postscriptName": "NotoSerifBengali-ExtraBold", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Black", + "postscriptName": "NotoSerifBengali-Black", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Bengali", + "fullName": "Noto Serif Bengali Regular", + "postscriptName": "NotoSerifBengali-Regular", + "category": "serif", + "capHeight": 622, + "ascent": 1092, + "descent": -502, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifDevanagari": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Regular", + "postscriptName": "NotoSerifDevanagari-Regular", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 623, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 596 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Thin", + "postscriptName": "NotoSerifDevanagari-Thin", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "200": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari ExtraLight", + "postscriptName": "NotoSerifDevanagari-ExtraLight", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "300": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Light", + "postscriptName": "NotoSerifDevanagari-Light", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 623, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "500": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Medium", + "postscriptName": "NotoSerifDevanagari-Medium", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 624, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "600": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari SemiBold", + "postscriptName": "NotoSerifDevanagari-SemiBold", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 624, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "700": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Bold", + "postscriptName": "NotoSerifDevanagari-Bold", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 625, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "800": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari ExtraBold", + "postscriptName": "NotoSerifDevanagari-ExtraBold", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 626, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "900": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Black", + "postscriptName": "NotoSerifDevanagari-Black", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 627, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "regular": { + "familyName": "Noto Serif Devanagari", + "fullName": "Noto Serif Devanagari Regular", + "postscriptName": "NotoSerifDevanagari-Regular", + "category": "serif", + "capHeight": 715, + "ascent": 930, + "descent": -625, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 623, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 596 + } + } + } + } + }, + "notoSerifDisplay": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Regular", + "postscriptName": "NotoSerifDisplay-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Thin", + "postscriptName": "NotoSerifDisplay-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display ExtraLight", + "postscriptName": "NotoSerifDisplay-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Light", + "postscriptName": "NotoSerifDisplay-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Medium", + "postscriptName": "NotoSerifDisplay-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display SemiBold", + "postscriptName": "NotoSerifDisplay-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Bold", + "postscriptName": "NotoSerifDisplay-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display ExtraBold", + "postscriptName": "NotoSerifDisplay-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Black", + "postscriptName": "NotoSerifDisplay-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Regular", + "postscriptName": "NotoSerifDisplay-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Italic", + "postscriptName": "NotoSerifDisplay-Italic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Black Italic", + "postscriptName": "NotoSerifDisplay-BlackItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 544, + "subsets": { + "latin": { + "xWidthAvg": 544 + }, + "thai": { + "xWidthAvg": 426 + } + } + }, + "800italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display ExtraBold Italic", + "postscriptName": "NotoSerifDisplay-ExtraBoldItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 459 + } + } + }, + "700italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Bold Italic", + "postscriptName": "NotoSerifDisplay-BoldItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 499 + } + } + }, + "600italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display SemiBold Italic", + "postscriptName": "NotoSerifDisplay-SemiBoldItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "500italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Medium Italic", + "postscriptName": "NotoSerifDisplay-MediumItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "300italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Light Italic", + "postscriptName": "NotoSerifDisplay-LightItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 658 + } + } + }, + "200italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display ExtraLight Italic", + "postscriptName": "NotoSerifDisplay-ExtraLightItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 701 + } + } + }, + "100italic": { + "familyName": "Noto Serif Display", + "fullName": "Noto Serif Display Thin Italic", + "postscriptName": "NotoSerifDisplay-ThinItalic", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 728 + } + } + } + } + }, + "notoSerifDogra": { + "familyName": "Noto Serif Dogra", + "fullName": "Noto Serif Dogra Regular", + "postscriptName": "NotoSerifDogra-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 1130, + "descent": -364, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Dogra", + "fullName": "Noto Serif Dogra Regular", + "postscriptName": "NotoSerifDogra-Regular", + "category": "serif", + "capHeight": 625, + "ascent": 1130, + "descent": -364, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifEthiopic": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Regular", + "postscriptName": "NotoSerifEthiopic-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Thin", + "postscriptName": "NotoSerifEthiopic-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic ExtraLight", + "postscriptName": "NotoSerifEthiopic-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Light", + "postscriptName": "NotoSerifEthiopic-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Medium", + "postscriptName": "NotoSerifEthiopic-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic SemiBold", + "postscriptName": "NotoSerifEthiopic-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Bold", + "postscriptName": "NotoSerifEthiopic-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic ExtraBold", + "postscriptName": "NotoSerifEthiopic-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Black", + "postscriptName": "NotoSerifEthiopic-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Ethiopic", + "fullName": "Noto Serif Ethiopic Regular", + "postscriptName": "NotoSerifEthiopic-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifGeorgian": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Regular", + "postscriptName": "NotoSerifGeorgian-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 554 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Thin", + "postscriptName": "NotoSerifGeorgian-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "200": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian ExtraLight", + "postscriptName": "NotoSerifGeorgian-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "300": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Light", + "postscriptName": "NotoSerifGeorgian-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 554 + } + } + }, + "500": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Medium", + "postscriptName": "NotoSerifGeorgian-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "600": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian SemiBold", + "postscriptName": "NotoSerifGeorgian-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "700": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Bold", + "postscriptName": "NotoSerifGeorgian-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian ExtraBold", + "postscriptName": "NotoSerifGeorgian-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 616 + } + } + }, + "900": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Black", + "postscriptName": "NotoSerifGeorgian-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 629 + } + } + }, + "regular": { + "familyName": "Noto Serif Georgian", + "fullName": "Noto Serif Georgian Regular", + "postscriptName": "NotoSerifGeorgian-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 554 + } + } + } + } + }, + "notoSerifGrantha": { + "familyName": "Noto Serif Grantha", + "fullName": "Noto Serif Grantha Regular", + "postscriptName": "NotoSerifGrantha-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1290, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Grantha", + "fullName": "Noto Serif Grantha Regular", + "postscriptName": "NotoSerifGrantha-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1290, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifGujarati": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Regular", + "postscriptName": "NotoSerifGujarati-Regular", + "category": "serif", + "capHeight": 592, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Thin", + "postscriptName": "NotoSerifGujarati-Thin", + "category": "serif", + "capHeight": 592, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati ExtraLight", + "postscriptName": "NotoSerifGujarati-ExtraLight", + "category": "serif", + "capHeight": 592, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Light", + "postscriptName": "NotoSerifGujarati-Light", + "category": "serif", + "capHeight": 592, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Medium", + "postscriptName": "NotoSerifGujarati-Medium", + "category": "serif", + "capHeight": 595, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati SemiBold", + "postscriptName": "NotoSerifGujarati-SemiBold", + "category": "serif", + "capHeight": 598, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Bold", + "postscriptName": "NotoSerifGujarati-Bold", + "category": "serif", + "capHeight": 602, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati ExtraBold", + "postscriptName": "NotoSerifGujarati-ExtraBold", + "category": "serif", + "capHeight": 602, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Black", + "postscriptName": "NotoSerifGujarati-Black", + "category": "serif", + "capHeight": 602, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Gujarati", + "fullName": "Noto Serif Gujarati Regular", + "postscriptName": "NotoSerifGujarati-Regular", + "category": "serif", + "capHeight": 592, + "ascent": 997, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifGurmukhi": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Regular", + "postscriptName": "NotoSerifGurmukhi-Regular", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Thin", + "postscriptName": "NotoSerifGurmukhi-Thin", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi ExtraLight", + "postscriptName": "NotoSerifGurmukhi-ExtraLight", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Light", + "postscriptName": "NotoSerifGurmukhi-Light", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Medium", + "postscriptName": "NotoSerifGurmukhi-Medium", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi SemiBold", + "postscriptName": "NotoSerifGurmukhi-SemiBold", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Bold", + "postscriptName": "NotoSerifGurmukhi-Bold", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi ExtraBold", + "postscriptName": "NotoSerifGurmukhi-ExtraBold", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Black", + "postscriptName": "NotoSerifGurmukhi-Black", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Gurmukhi", + "fullName": "Noto Serif Gurmukhi Regular", + "postscriptName": "NotoSerifGurmukhi-Regular", + "category": "serif", + "capHeight": 622, + "ascent": 1006, + "descent": -428, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifHK": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK Regular", + "postscriptName": "NotoSerifHK-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK ExtraLight", + "postscriptName": "NotoSerifHK-ExtraLight", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK Light", + "postscriptName": "NotoSerifHK-Light", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK Medium", + "postscriptName": "NotoSerifHK-Medium", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK SemiBold", + "postscriptName": "NotoSerifHK-SemiBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK Bold", + "postscriptName": "NotoSerifHK-Bold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK ExtraBold", + "postscriptName": "NotoSerifHK-ExtraBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK Black", + "postscriptName": "NotoSerifHK-Black", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Serif HK", + "fullName": "Noto Serif HK Regular", + "postscriptName": "NotoSerifHK-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSerifHebrew": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Regular", + "postscriptName": "NotoSerifHebrew-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Thin", + "postscriptName": "NotoSerifHebrew-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew ExtraLight", + "postscriptName": "NotoSerifHebrew-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Light", + "postscriptName": "NotoSerifHebrew-Light", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Medium", + "postscriptName": "NotoSerifHebrew-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew SemiBold", + "postscriptName": "NotoSerifHebrew-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Bold", + "postscriptName": "NotoSerifHebrew-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew ExtraBold", + "postscriptName": "NotoSerifHebrew-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Black", + "postscriptName": "NotoSerifHebrew-Black", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Hebrew", + "fullName": "Noto Serif Hebrew Regular", + "postscriptName": "NotoSerifHebrew-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 896, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifJP": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP Regular", + "postscriptName": "NotoSerifJP-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP ExtraLight", + "postscriptName": "NotoSerifJP-ExtraLight", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP Light", + "postscriptName": "NotoSerifJP-Light", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP Medium", + "postscriptName": "NotoSerifJP-Medium", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP SemiBold", + "postscriptName": "NotoSerifJP-SemiBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP Bold", + "postscriptName": "NotoSerifJP-Bold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP ExtraBold", + "postscriptName": "NotoSerifJP-ExtraBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP Black", + "postscriptName": "NotoSerifJP-Black", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Serif JP", + "fullName": "Noto Serif JP Regular", + "postscriptName": "NotoSerifJP-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSerifKR": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR Regular", + "postscriptName": "NotoSerifKR-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR ExtraLight", + "postscriptName": "NotoSerifKR-ExtraLight", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR Light", + "postscriptName": "NotoSerifKR-Light", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR Medium", + "postscriptName": "NotoSerifKR-Medium", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR SemiBold", + "postscriptName": "NotoSerifKR-SemiBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR Bold", + "postscriptName": "NotoSerifKR-Bold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR ExtraBold", + "postscriptName": "NotoSerifKR-ExtraBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR Black", + "postscriptName": "NotoSerifKR-Black", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Serif KR", + "fullName": "Noto Serif KR Regular", + "postscriptName": "NotoSerifKR-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSerifKannada": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Regular", + "postscriptName": "NotoSerifKannada-Regular", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 601 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Thin", + "postscriptName": "NotoSerifKannada-Thin", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada ExtraLight", + "postscriptName": "NotoSerifKannada-ExtraLight", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Light", + "postscriptName": "NotoSerifKannada-Light", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 601 + } + } + }, + "500": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Medium", + "postscriptName": "NotoSerifKannada-Medium", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "600": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada SemiBold", + "postscriptName": "NotoSerifKannada-SemiBold", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 556, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 594 + } + } + }, + "700": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Bold", + "postscriptName": "NotoSerifKannada-Bold", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "800": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada ExtraBold", + "postscriptName": "NotoSerifKannada-ExtraBold", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 564, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 585 + } + } + }, + "900": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Black", + "postscriptName": "NotoSerifKannada-Black", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "regular": { + "familyName": "Noto Serif Kannada", + "fullName": "Noto Serif Kannada Regular", + "postscriptName": "NotoSerifKannada-Regular", + "category": "serif", + "capHeight": 690, + "ascent": 910, + "descent": -710, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 601 + } + } + } + } + }, + "notoSerifKhitanSmallScript": { + "familyName": "Noto Serif Khitan Small Script", + "fullName": "Noto Serif Khitan Small Script Regular", + "postscriptName": "NotoSerifKhitanSmallScript-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 2300, + "descent": -1700, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Khitan Small Script", + "fullName": "Noto Serif Khitan Small Script Regular", + "postscriptName": "NotoSerifKhitanSmallScript-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 2300, + "descent": -1700, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSerifKhmer": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Regular", + "postscriptName": "NotoSerifKhmer-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 634 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Thin", + "postscriptName": "NotoSerifKhmer-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 588 + } + } + }, + "200": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer ExtraLight", + "postscriptName": "NotoSerifKhmer-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "300": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Light", + "postscriptName": "NotoSerifKhmer-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 613 + } + } + }, + "500": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Medium", + "postscriptName": "NotoSerifKhmer-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 644 + } + } + }, + "600": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer SemiBold", + "postscriptName": "NotoSerifKhmer-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "700": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Bold", + "postscriptName": "NotoSerifKhmer-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "800": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer ExtraBold", + "postscriptName": "NotoSerifKhmer-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 683 + } + } + }, + "900": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Black", + "postscriptName": "NotoSerifKhmer-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "regular": { + "familyName": "Noto Serif Khmer", + "fullName": "Noto Serif Khmer Regular", + "postscriptName": "NotoSerifKhmer-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 634 + } + } + } + } + }, + "notoSerifKhojki": { + "familyName": "Noto Serif Khojki", + "fullName": "Noto Serif Khojki Regular", + "postscriptName": "NotoSerifKhojki-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Serif Khojki", + "fullName": "Noto Serif Khojki Medium", + "postscriptName": "NotoSerifKhojki-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Khojki", + "fullName": "Noto Serif Khojki SemiBold", + "postscriptName": "NotoSerifKhojki-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Khojki", + "fullName": "Noto Serif Khojki Bold", + "postscriptName": "NotoSerifKhojki-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Khojki", + "fullName": "Noto Serif Khojki Regular", + "postscriptName": "NotoSerifKhojki-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1409, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifLao": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Regular", + "postscriptName": "NotoSerifLao-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Thin", + "postscriptName": "NotoSerifLao-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao ExtraLight", + "postscriptName": "NotoSerifLao-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Light", + "postscriptName": "NotoSerifLao-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Medium", + "postscriptName": "NotoSerifLao-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao SemiBold", + "postscriptName": "NotoSerifLao-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Bold", + "postscriptName": "NotoSerifLao-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao ExtraBold", + "postscriptName": "NotoSerifLao-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Black", + "postscriptName": "NotoSerifLao-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Noto Serif Lao", + "fullName": "Noto Serif Lao Regular", + "postscriptName": "NotoSerifLao-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1174, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSerifMakasar": { + "familyName": "Noto Serif Makasar", + "fullName": "Noto Serif Makasar Regular", + "postscriptName": "NotoSerifMakasar-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Makasar", + "fullName": "Noto Serif Makasar Regular", + "postscriptName": "NotoSerifMakasar-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSerifMalayalam": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Regular", + "postscriptName": "NotoSerifMalayalam-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Thin", + "postscriptName": "NotoSerifMalayalam-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "200": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam ExtraLight", + "postscriptName": "NotoSerifMalayalam-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 616 + } + } + }, + "300": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Light", + "postscriptName": "NotoSerifMalayalam-Light", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 609 + } + } + }, + "500": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Medium", + "postscriptName": "NotoSerifMalayalam-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam SemiBold", + "postscriptName": "NotoSerifMalayalam-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Bold", + "postscriptName": "NotoSerifMalayalam-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam ExtraBold", + "postscriptName": "NotoSerifMalayalam-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Black", + "postscriptName": "NotoSerifMalayalam-Black", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Malayalam", + "fullName": "Noto Serif Malayalam Regular", + "postscriptName": "NotoSerifMalayalam-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 864, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifMyanmar": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Regular", + "postscriptName": "NotoSerifMyanmar-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Thin", + "postscriptName": "NotoSerifMyanmar-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar ExtraLight", + "postscriptName": "NotoSerifMyanmar-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Light", + "postscriptName": "NotoSerifMyanmar-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 556, + "subsets": { + "latin": { + "xWidthAvg": 556 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Medium", + "postscriptName": "NotoSerifMyanmar-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar SemiBold", + "postscriptName": "NotoSerifMyanmar-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Bold", + "postscriptName": "NotoSerifMyanmar-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar ExtraBold", + "postscriptName": "NotoSerifMyanmar-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Black", + "postscriptName": "NotoSerifMyanmar-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Myanmar", + "fullName": "Noto Serif Myanmar Regular", + "postscriptName": "NotoSerifMyanmar-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1239, + "descent": -1260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifNPHmong": { + "familyName": "Noto Serif NP Hmong", + "fullName": "Noto Serif NP Hmong Regular", + "postscriptName": "NotoSerifNPHmong-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Serif NP Hmong", + "fullName": "Noto Serif NP Hmong Medium", + "postscriptName": "NotoSerifNPHmong-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif NP Hmong", + "fullName": "Noto Serif NP Hmong SemiBold", + "postscriptName": "NotoSerifNPHmong-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif NP Hmong", + "fullName": "Noto Serif NP Hmong Bold", + "postscriptName": "NotoSerifNPHmong-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif NP Hmong", + "fullName": "Noto Serif NP Hmong Regular", + "postscriptName": "NotoSerifNPHmong-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifOldUyghur": { + "familyName": "Noto Serif Old Uyghur", + "fullName": "Noto Serif Old Uyghur Regular", + "postscriptName": "NotoSerifOldUyghur-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -313, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Old Uyghur", + "fullName": "Noto Serif Old Uyghur Regular", + "postscriptName": "NotoSerifOldUyghur-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -313, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifOriya": { + "familyName": "Noto Serif Oriya", + "fullName": "Noto Serif Oriya Regular", + "postscriptName": "NotoSerifOriya-Regular", + "category": "serif", + "capHeight": 657, + "ascent": 917, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 657, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Serif Oriya", + "fullName": "Noto Serif Oriya Medium", + "postscriptName": "NotoSerifOriya-Medium", + "category": "serif", + "capHeight": 657, + "ascent": 917, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 657, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Oriya", + "fullName": "Noto Serif Oriya SemiBold", + "postscriptName": "NotoSerifOriya-SemiBold", + "category": "serif", + "capHeight": 657, + "ascent": 917, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 657, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Oriya", + "fullName": "Noto Serif Oriya Bold", + "postscriptName": "NotoSerifOriya-Bold", + "category": "serif", + "capHeight": 657, + "ascent": 917, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 657, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Oriya", + "fullName": "Noto Serif Oriya Regular", + "postscriptName": "NotoSerifOriya-Regular", + "category": "serif", + "capHeight": 657, + "ascent": 917, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 657, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifOttomanSiyaq": { + "familyName": "Noto Serif Ottoman Siyaq", + "fullName": "Noto Serif Ottoman Siyaq Regular", + "postscriptName": "NotoSerifOttomanSiyaq-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Ottoman Siyaq", + "fullName": "Noto Serif Ottoman Siyaq Regular", + "postscriptName": "NotoSerifOttomanSiyaq-Regular", + "category": "serif", + "capHeight": 0, + "ascent": 1069, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoSerifSC": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC Regular", + "postscriptName": "NotoSerifSC-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC ExtraLight", + "postscriptName": "NotoSerifSC-ExtraLight", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC Light", + "postscriptName": "NotoSerifSC-Light", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC Medium", + "postscriptName": "NotoSerifSC-Medium", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC SemiBold", + "postscriptName": "NotoSerifSC-SemiBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC Bold", + "postscriptName": "NotoSerifSC-Bold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC ExtraBold", + "postscriptName": "NotoSerifSC-ExtraBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC Black", + "postscriptName": "NotoSerifSC-Black", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Serif SC", + "fullName": "Noto Serif SC Regular", + "postscriptName": "NotoSerifSC-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSerifSinhala": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Regular", + "postscriptName": "NotoSerifSinhala-Regular", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Thin", + "postscriptName": "NotoSerifSinhala-Thin", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala ExtraLight", + "postscriptName": "NotoSerifSinhala-ExtraLight", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Light", + "postscriptName": "NotoSerifSinhala-Light", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Medium", + "postscriptName": "NotoSerifSinhala-Medium", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala SemiBold", + "postscriptName": "NotoSerifSinhala-SemiBold", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Bold", + "postscriptName": "NotoSerifSinhala-Bold", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 549, + "subsets": { + "latin": { + "xWidthAvg": 549 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala ExtraBold", + "postscriptName": "NotoSerifSinhala-ExtraBold", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Black", + "postscriptName": "NotoSerifSinhala-Black", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Sinhala", + "fullName": "Noto Serif Sinhala Regular", + "postscriptName": "NotoSerifSinhala-Regular", + "category": "serif", + "capHeight": 612, + "ascent": 997, + "descent": -307, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifTC": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC Regular", + "postscriptName": "NotoSerifTC-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC ExtraLight", + "postscriptName": "NotoSerifTC-ExtraLight", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC Light", + "postscriptName": "NotoSerifTC-Light", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC Medium", + "postscriptName": "NotoSerifTC-Medium", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC SemiBold", + "postscriptName": "NotoSerifTC-SemiBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC Bold", + "postscriptName": "NotoSerifTC-Bold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC ExtraBold", + "postscriptName": "NotoSerifTC-ExtraBold", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC Black", + "postscriptName": "NotoSerifTC-Black", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Noto Serif TC", + "fullName": "Noto Serif TC Regular", + "postscriptName": "NotoSerifTC-Regular", + "category": "serif", + "capHeight": 729, + "ascent": 1151, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "notoSerifTamil": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Regular", + "postscriptName": "NotoSerifTamil-Regular", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Thin", + "postscriptName": "NotoSerifTamil-Thin", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil ExtraLight", + "postscriptName": "NotoSerifTamil-ExtraLight", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Light", + "postscriptName": "NotoSerifTamil-Light", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Medium", + "postscriptName": "NotoSerifTamil-Medium", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "600": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil SemiBold", + "postscriptName": "NotoSerifTamil-SemiBold", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "700": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Bold", + "postscriptName": "NotoSerifTamil-Bold", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "800": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil ExtraBold", + "postscriptName": "NotoSerifTamil-ExtraBold", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "900": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Black", + "postscriptName": "NotoSerifTamil-Black", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "regular": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Regular", + "postscriptName": "NotoSerifTamil-Regular", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Italic", + "postscriptName": "NotoSerifTamil-Italic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Black Italic", + "postscriptName": "NotoSerifTamil-BlackItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "800italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil ExtraBold Italic", + "postscriptName": "NotoSerifTamil-ExtraBoldItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "700italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Bold Italic", + "postscriptName": "NotoSerifTamil-BoldItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "600italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil SemiBold Italic", + "postscriptName": "NotoSerifTamil-SemiBoldItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "500italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Medium Italic", + "postscriptName": "NotoSerifTamil-MediumItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "300italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Light Italic", + "postscriptName": "NotoSerifTamil-LightItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil ExtraLight Italic", + "postscriptName": "NotoSerifTamil-ExtraLightItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "Noto Serif Tamil", + "fullName": "Noto Serif Tamil Thin Italic", + "postscriptName": "NotoSerifTamil-ThinItalic", + "category": "serif", + "capHeight": 829, + "ascent": 1069, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifTangut": { + "familyName": "Noto Serif Tangut", + "fullName": "Noto Serif Tangut Regular", + "postscriptName": "NotoSerifTangut-Regular", + "category": "serif", + "capHeight": 712, + "ascent": 856, + "descent": -150, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 976 + } + }, + "variants": { + "regular": { + "familyName": "Noto Serif Tangut", + "fullName": "Noto Serif Tangut Regular", + "postscriptName": "NotoSerifTangut-Regular", + "category": "serif", + "capHeight": 712, + "ascent": 856, + "descent": -150, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 976 + } + } + } + } + }, + "notoSerifTelugu": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Regular", + "postscriptName": "NotoSerifTelugu-Regular", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Thin", + "postscriptName": "NotoSerifTelugu-Thin", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu ExtraLight", + "postscriptName": "NotoSerifTelugu-ExtraLight", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 494, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Light", + "postscriptName": "NotoSerifTelugu-Light", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Medium", + "postscriptName": "NotoSerifTelugu-Medium", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu SemiBold", + "postscriptName": "NotoSerifTelugu-SemiBold", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 504, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Bold", + "postscriptName": "NotoSerifTelugu-Bold", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu ExtraBold", + "postscriptName": "NotoSerifTelugu-ExtraBold", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Black", + "postscriptName": "NotoSerifTelugu-Black", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 511, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Telugu", + "fullName": "Noto Serif Telugu Regular", + "postscriptName": "NotoSerifTelugu-Regular", + "category": "serif", + "capHeight": 620, + "ascent": 869, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifThai": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Regular", + "postscriptName": "NotoSerifThai-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 570 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Thin", + "postscriptName": "NotoSerifThai-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 539 + } + } + }, + "200": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai ExtraLight", + "postscriptName": "NotoSerifThai-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 545 + } + } + }, + "300": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Light", + "postscriptName": "NotoSerifThai-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "500": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Medium", + "postscriptName": "NotoSerifThai-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "600": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai SemiBold", + "postscriptName": "NotoSerifThai-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Bold", + "postscriptName": "NotoSerifThai-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 592 + } + } + }, + "800": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai ExtraBold", + "postscriptName": "NotoSerifThai-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 602 + } + } + }, + "900": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Black", + "postscriptName": "NotoSerifThai-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "regular": { + "familyName": "Noto Serif Thai", + "fullName": "Noto Serif Thai Regular", + "postscriptName": "NotoSerifThai-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1064, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 570 + } + } + } + } + }, + "notoSerifTibetan": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Regular", + "postscriptName": "NotoSerifTibetan-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Thin", + "postscriptName": "NotoSerifTibetan-Thin", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan ExtraLight", + "postscriptName": "NotoSerifTibetan-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Light", + "postscriptName": "NotoSerifTibetan-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Medium", + "postscriptName": "NotoSerifTibetan-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan SemiBold", + "postscriptName": "NotoSerifTibetan-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Bold", + "postscriptName": "NotoSerifTibetan-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan ExtraBold", + "postscriptName": "NotoSerifTibetan-ExtraBold", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Black", + "postscriptName": "NotoSerifTibetan-Black", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Tibetan", + "fullName": "Noto Serif Tibetan Regular", + "postscriptName": "NotoSerifTibetan-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1466, + "descent": -1349, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 678, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifToto": { + "familyName": "Noto Serif Toto", + "fullName": "Noto Serif Toto Regular", + "postscriptName": "NotoSerifToto-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 925, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Serif Toto", + "fullName": "Noto Serif Toto Medium", + "postscriptName": "NotoSerifToto-Medium", + "category": "serif", + "capHeight": 720, + "ascent": 925, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Noto Serif Toto", + "fullName": "Noto Serif Toto SemiBold", + "postscriptName": "NotoSerifToto-SemiBold", + "category": "serif", + "capHeight": 720, + "ascent": 925, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Noto Serif Toto", + "fullName": "Noto Serif Toto Bold", + "postscriptName": "NotoSerifToto-Bold", + "category": "serif", + "capHeight": 720, + "ascent": 925, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Noto Serif Toto", + "fullName": "Noto Serif Toto Regular", + "postscriptName": "NotoSerifToto-Regular", + "category": "serif", + "capHeight": 720, + "ascent": 925, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 622, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifVithkuqi": { + "familyName": "Noto Serif Vithkuqi", + "fullName": "Noto Serif Vithkuqi Regular", + "postscriptName": "NotoSerifVithkuqi-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Serif Vithkuqi", + "fullName": "Noto Serif Vithkuqi Medium", + "postscriptName": "NotoSerifVithkuqi-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "600": { + "familyName": "Noto Serif Vithkuqi", + "fullName": "Noto Serif Vithkuqi SemiBold", + "postscriptName": "NotoSerifVithkuqi-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "700": { + "familyName": "Noto Serif Vithkuqi", + "fullName": "Noto Serif Vithkuqi Bold", + "postscriptName": "NotoSerifVithkuqi-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "regular": { + "familyName": "Noto Serif Vithkuqi", + "fullName": "Noto Serif Vithkuqi Regular", + "postscriptName": "NotoSerifVithkuqi-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1069, + "descent": -293, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoSerifYezidi": { + "familyName": "Noto Serif Yezidi", + "fullName": "Noto Serif Yezidi Regular", + "postscriptName": "NotoSerifYezidi-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Noto Serif Yezidi", + "fullName": "Noto Serif Yezidi Medium", + "postscriptName": "NotoSerifYezidi-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "600": { + "familyName": "Noto Serif Yezidi", + "fullName": "Noto Serif Yezidi SemiBold", + "postscriptName": "NotoSerifYezidi-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "700": { + "familyName": "Noto Serif Yezidi", + "fullName": "Noto Serif Yezidi Bold", + "postscriptName": "NotoSerifYezidi-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "regular": { + "familyName": "Noto Serif Yezidi", + "fullName": "Noto Serif Yezidi Regular", + "postscriptName": "NotoSerifYezidi-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1068, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "notoTraditionalNushu": { + "familyName": "Noto Traditional Nushu", + "fullName": "Noto Traditional Nushu Regular", + "postscriptName": "NotoTraditionalNushu-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1055, + "descent": -117, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "300": { + "familyName": "Noto Traditional Nushu", + "fullName": "Noto Traditional Nushu Light", + "postscriptName": "NotoTraditionalNushu-Light", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1055, + "descent": -117, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Noto Traditional Nushu", + "fullName": "Noto Traditional Nushu Medium", + "postscriptName": "NotoTraditionalNushu-Medium", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1055, + "descent": -117, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Noto Traditional Nushu", + "fullName": "Noto Traditional Nushu SemiBold", + "postscriptName": "NotoTraditionalNushu-SemiBold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1055, + "descent": -117, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Noto Traditional Nushu", + "fullName": "Noto Traditional Nushu Bold", + "postscriptName": "NotoTraditionalNushu-Bold", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1055, + "descent": -117, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 557, + "subsets": { + "latin": { + "xWidthAvg": 557 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Noto Traditional Nushu", + "fullName": "Noto Traditional Nushu Regular", + "postscriptName": "NotoTraditionalNushu-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1055, + "descent": -117, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 543, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "notoZnamennyMusicalNotation": { + "familyName": "Noto Znamenny Musical Notation", + "fullName": "Noto Znamenny Musical Notation Regular", + "postscriptName": "NotoZnamennyMusicalNotation-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 995, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Noto Znamenny Musical Notation", + "fullName": "Noto Znamenny Musical Notation Regular", + "postscriptName": "NotoZnamennyMusicalNotation-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 995, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "novaCut": { + "familyName": "Nova Cut", + "fullName": "Nova Cut", + "postscriptName": "NovaCut", + "category": "display", + "capHeight": 1550, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1140, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Cut", + "fullName": "Nova Cut", + "postscriptName": "NovaCut", + "category": "display", + "capHeight": 1550, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1140, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "novaFlat": { + "familyName": "Nova Flat", + "fullName": "Nova Flat", + "postscriptName": "NovaFlat", + "category": "display", + "capHeight": 1530, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Flat", + "fullName": "Nova Flat", + "postscriptName": "NovaFlat", + "category": "display", + "capHeight": 1530, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "novaMono": { + "familyName": "Nova Mono", + "fullName": "NovaMono", + "postscriptName": "NovaMono", + "category": "monospace", + "capHeight": 1509, + "ascent": 2215, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 1150, + "subsets": { + "latin": { + "xWidthAvg": 1150 + }, + "thai": { + "xWidthAvg": 1150 + } + }, + "variants": { + "regular": { + "familyName": "Nova Mono", + "fullName": "NovaMono", + "postscriptName": "NovaMono", + "category": "monospace", + "capHeight": 1509, + "ascent": 2215, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 1150, + "subsets": { + "latin": { + "xWidthAvg": 1150 + }, + "thai": { + "xWidthAvg": 1150 + } + } + } + } + }, + "novaOval": { + "familyName": "Nova Oval", + "fullName": "Nova Oval", + "postscriptName": "NovaOval", + "category": "display", + "capHeight": 1550, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Oval", + "fullName": "Nova Oval", + "postscriptName": "NovaOval", + "category": "display", + "capHeight": 1550, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "novaRound": { + "familyName": "Nova Round", + "fullName": "Nova Round", + "postscriptName": "NovaRound", + "category": "display", + "capHeight": 1530, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Round", + "fullName": "Nova Round", + "postscriptName": "NovaRound", + "category": "display", + "capHeight": 1530, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "novaScript": { + "familyName": "Nova Script", + "fullName": "Nova Script Regular", + "postscriptName": "NovaScript-Regular", + "category": "display", + "capHeight": 1550, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Script", + "fullName": "Nova Script Regular", + "postscriptName": "NovaScript-Regular", + "category": "display", + "capHeight": 1550, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "novaSlim": { + "familyName": "Nova Slim", + "fullName": "Nova Slim", + "postscriptName": "NovaSlim", + "category": "display", + "capHeight": 1530, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Slim", + "fullName": "Nova Slim", + "postscriptName": "NovaSlim", + "category": "display", + "capHeight": 1530, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1120, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "novaSquare": { + "familyName": "Nova Square", + "fullName": "Nova Square", + "postscriptName": "NovaSquare", + "category": "display", + "capHeight": 1510, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1100, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 894 + } + }, + "variants": { + "regular": { + "familyName": "Nova Square", + "fullName": "Nova Square", + "postscriptName": "NovaSquare", + "category": "display", + "capHeight": 1510, + "ascent": 1966, + "descent": -506, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1100, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 894 + } + } + } + } + }, + "numans": { + "familyName": "Numans", + "fullName": "Numans", + "postscriptName": "Numans-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1853, + "descent": -553, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1093, + "subsets": { + "latin": { + "xWidthAvg": 1093 + }, + "thai": { + "xWidthAvg": 614 + } + }, + "variants": { + "regular": { + "familyName": "Numans", + "fullName": "Numans", + "postscriptName": "Numans-Regular", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 1853, + "descent": -553, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1093, + "subsets": { + "latin": { + "xWidthAvg": 1093 + }, + "thai": { + "xWidthAvg": 614 + } + } + } + } + }, + "nunito": { + "familyName": "Nunito", + "fullName": "Nunito Regular", + "postscriptName": "Nunito-Regular", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Nunito", + "fullName": "Nunito ExtraLight", + "postscriptName": "Nunito-ExtraLight", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Nunito", + "fullName": "Nunito Light", + "postscriptName": "Nunito-Light", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Nunito", + "fullName": "Nunito Medium", + "postscriptName": "Nunito-Medium", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Nunito", + "fullName": "Nunito SemiBold", + "postscriptName": "Nunito-SemiBold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Nunito", + "fullName": "Nunito Bold", + "postscriptName": "Nunito-Bold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Nunito", + "fullName": "Nunito ExtraBold", + "postscriptName": "Nunito-ExtraBold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Nunito", + "fullName": "Nunito Black", + "postscriptName": "Nunito-Black", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Nunito", + "fullName": "Nunito Regular", + "postscriptName": "Nunito-Regular", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Nunito", + "fullName": "Nunito Italic", + "postscriptName": "Nunito-Italic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Nunito", + "fullName": "Nunito Black Italic", + "postscriptName": "Nunito-BlackItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Nunito", + "fullName": "Nunito ExtraBold Italic", + "postscriptName": "Nunito-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Nunito", + "fullName": "Nunito Bold Italic", + "postscriptName": "Nunito-BoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Nunito", + "fullName": "Nunito SemiBold Italic", + "postscriptName": "Nunito-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Nunito", + "fullName": "Nunito Medium Italic", + "postscriptName": "Nunito-MediumItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Nunito", + "fullName": "Nunito Light Italic", + "postscriptName": "Nunito-LightItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Nunito", + "fullName": "Nunito ExtraLight Italic", + "postscriptName": "Nunito-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "nunitoSans": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Regular", + "postscriptName": "NunitoSans12pt-Regular", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt ExtraLight", + "postscriptName": "NunitoSans12pt-ExtraLight", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Light", + "postscriptName": "NunitoSans12pt-Light", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Medium", + "postscriptName": "NunitoSans12pt-Medium", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt SemiBold", + "postscriptName": "NunitoSans12pt-SemiBold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Bold", + "postscriptName": "NunitoSans12pt-Bold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt ExtraBold", + "postscriptName": "NunitoSans12pt-ExtraBold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Black", + "postscriptName": "NunitoSans12pt-Black", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Regular", + "postscriptName": "NunitoSans12pt-Regular", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Italic", + "postscriptName": "NunitoSans12pt-Italic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Black Italic", + "postscriptName": "NunitoSans12pt-BlackItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt ExtraBold Italic", + "postscriptName": "NunitoSans12pt-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Bold Italic", + "postscriptName": "NunitoSans12pt-BoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt SemiBold Italic", + "postscriptName": "NunitoSans12pt-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Medium Italic", + "postscriptName": "NunitoSans12pt-MediumItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt Light Italic", + "postscriptName": "NunitoSans12pt-LightItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Nunito Sans", + "fullName": "Nunito Sans 12pt ExtraLight Italic", + "postscriptName": "NunitoSans12pt-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1011, + "descent": -353, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "nuosuSIL": { + "familyName": "Nuosu SIL", + "fullName": "Nuosu SIL", + "postscriptName": "NuosuSIL-Regular", + "category": "sans-serif", + "capHeight": 1800, + "ascent": 2200, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 866, + "subsets": { + "latin": { + "xWidthAvg": 866 + }, + "thai": { + "xWidthAvg": 1080 + } + }, + "variants": { + "regular": { + "familyName": "Nuosu SIL", + "fullName": "Nuosu SIL", + "postscriptName": "NuosuSIL-Regular", + "category": "sans-serif", + "capHeight": 1800, + "ascent": 2200, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 866, + "subsets": { + "latin": { + "xWidthAvg": 866 + }, + "thai": { + "xWidthAvg": 1080 + } + } + } + } + }, + "odibeeSans": { + "familyName": "Odibee Sans", + "fullName": "Odibee Sans Regular", + "postscriptName": "OdibeeSans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 858, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 315, + "subsets": { + "latin": { + "xWidthAvg": 315 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Odibee Sans", + "fullName": "Odibee Sans Regular", + "postscriptName": "OdibeeSans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 858, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 315, + "subsets": { + "latin": { + "xWidthAvg": 315 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "odorMeanChey": { + "familyName": "Odor Mean Chey", + "fullName": "Odor Mean Chey Regular", + "postscriptName": "OdorMeanChey-Regular", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Odor Mean Chey", + "fullName": "Odor Mean Chey Regular", + "postscriptName": "OdorMeanChey-Regular", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "offside": { + "familyName": "Offside", + "fullName": "Offside Regular", + "postscriptName": "Offside-Regular", + "category": "display", + "capHeight": 740, + "ascent": 996, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 605, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 650 + } + }, + "variants": { + "regular": { + "familyName": "Offside", + "fullName": "Offside Regular", + "postscriptName": "Offside-Regular", + "category": "display", + "capHeight": 740, + "ascent": 996, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 605, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 650 + } + } + } + } + }, + "oi": { + "familyName": "Oi", + "fullName": "Oi Regular", + "postscriptName": "Oi-Regular", + "category": "display", + "capHeight": 760, + "ascent": 1070, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 696, + "xWidthAvg": 805, + "subsets": { + "latin": { + "xWidthAvg": 805 + }, + "thai": { + "xWidthAvg": 888 + } + }, + "variants": { + "regular": { + "familyName": "Oi", + "fullName": "Oi Regular", + "postscriptName": "Oi-Regular", + "category": "display", + "capHeight": 760, + "ascent": 1070, + "descent": -510, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 696, + "xWidthAvg": 805, + "subsets": { + "latin": { + "xWidthAvg": 805 + }, + "thai": { + "xWidthAvg": 888 + } + } + } + } + }, + "ojuju": { + "familyName": "Ojuju", + "fullName": "Ojuju Regular", + "postscriptName": "Ojuju-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 483, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 666 + } + }, + "variants": { + "200": { + "familyName": "Ojuju", + "fullName": "Ojuju ExtraLight", + "postscriptName": "Ojuju-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "300": { + "familyName": "Ojuju", + "fullName": "Ojuju Light", + "postscriptName": "Ojuju-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 668 + } + } + }, + "500": { + "familyName": "Ojuju", + "fullName": "Ojuju Medium", + "postscriptName": "Ojuju-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "600": { + "familyName": "Ojuju", + "fullName": "Ojuju SemiBold", + "postscriptName": "Ojuju-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "700": { + "familyName": "Ojuju", + "fullName": "Ojuju Bold", + "postscriptName": "Ojuju-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 653 + } + } + }, + "800": { + "familyName": "Ojuju", + "fullName": "Ojuju ExtraBold", + "postscriptName": "Ojuju-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "regular": { + "familyName": "Ojuju", + "fullName": "Ojuju Regular", + "postscriptName": "Ojuju-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1130, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 483, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 666 + } + } + } + } + }, + "oldStandardTT": { + "familyName": "Old Standard TT", + "fullName": "Old Standard TT Regular", + "postscriptName": "OldStandardTT-Regular", + "category": "serif", + "capHeight": 712, + "ascent": 762, + "descent": -238, + "lineGap": 236, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Old Standard TT", + "fullName": "Old Standard TT Bold", + "postscriptName": "OldStandardTT-Bold", + "category": "serif", + "capHeight": 712, + "ascent": 762, + "descent": -238, + "lineGap": 236, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Old Standard TT", + "fullName": "Old Standard TT Regular", + "postscriptName": "OldStandardTT-Regular", + "category": "serif", + "capHeight": 712, + "ascent": 762, + "descent": -238, + "lineGap": 236, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Old Standard TT", + "fullName": "Old Standard TT Italic", + "postscriptName": "OldStandardTT-Italic", + "category": "serif", + "capHeight": 712, + "ascent": 762, + "descent": -238, + "lineGap": 236, + "unitsPerEm": 1000, + "xHeight": 444, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "oldenburg": { + "familyName": "Oldenburg", + "fullName": "Oldenburg", + "postscriptName": "Oldenburg-Regular", + "category": "display", + "capHeight": 1555, + "ascent": 2020, + "descent": -540, + "lineGap": 9, + "unitsPerEm": 2048, + "xHeight": 482, + "xWidthAvg": 1101, + "subsets": { + "latin": { + "xWidthAvg": 1101 + }, + "thai": { + "xWidthAvg": 856 + } + }, + "variants": { + "regular": { + "familyName": "Oldenburg", + "fullName": "Oldenburg", + "postscriptName": "Oldenburg-Regular", + "category": "display", + "capHeight": 1555, + "ascent": 2020, + "descent": -540, + "lineGap": 9, + "unitsPerEm": 2048, + "xHeight": 482, + "xWidthAvg": 1101, + "subsets": { + "latin": { + "xWidthAvg": 1101 + }, + "thai": { + "xWidthAvg": 856 + } + } + } + } + }, + "ole": { + "familyName": "Ole", + "fullName": "Ole Regular", + "postscriptName": "Ole-Regular", + "category": "handwriting", + "capHeight": 510, + "ascent": 880, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 270, + "xWidthAvg": 278, + "subsets": { + "latin": { + "xWidthAvg": 278 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Ole", + "fullName": "Ole Regular", + "postscriptName": "Ole-Regular", + "category": "handwriting", + "capHeight": 510, + "ascent": 880, + "descent": -380, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 270, + "xWidthAvg": 278, + "subsets": { + "latin": { + "xWidthAvg": 278 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "oleoScript": { + "familyName": "Oleo Script", + "fullName": "Oleo Script", + "postscriptName": "OleoScript-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1004, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Oleo Script", + "fullName": "Oleo Script Bold", + "postscriptName": "OleoScript-Bold", + "category": "display", + "capHeight": 710, + "ascent": 1004, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Oleo Script", + "fullName": "Oleo Script", + "postscriptName": "OleoScript-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1004, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "oleoScriptSwashCaps": { + "familyName": "Oleo Script Swash Caps", + "fullName": "Oleo Script Swash Caps", + "postscriptName": "OleoScriptSwashCaps-Regular", + "category": "display", + "capHeight": 747, + "ascent": 1004, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Oleo Script Swash Caps", + "fullName": "Oleo Script Swash Caps Bold", + "postscriptName": "OleoScriptSwashCaps-Bold", + "category": "display", + "capHeight": 747, + "ascent": 1004, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Oleo Script Swash Caps", + "fullName": "Oleo Script Swash Caps", + "postscriptName": "OleoScriptSwashCaps-Regular", + "category": "display", + "capHeight": 747, + "ascent": 1004, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "onest": { + "familyName": "Onest", + "fullName": "Onest Regular", + "postscriptName": "Onest-Regular", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 540 + } + }, + "variants": { + "100": { + "familyName": "Onest", + "fullName": "Onest Thin", + "postscriptName": "Onest-Thin", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "200": { + "familyName": "Onest", + "fullName": "Onest ExtraLight", + "postscriptName": "Onest-ExtraLight", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "300": { + "familyName": "Onest", + "fullName": "Onest Light", + "postscriptName": "Onest-Light", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "500": { + "familyName": "Onest", + "fullName": "Onest Medium", + "postscriptName": "Onest-Medium", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 548 + } + } + }, + "600": { + "familyName": "Onest", + "fullName": "Onest SemiBold", + "postscriptName": "Onest-SemiBold", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "700": { + "familyName": "Onest", + "fullName": "Onest Bold", + "postscriptName": "Onest-Bold", + "category": "sans-serif", + "capHeight": 708, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 564 + } + } + }, + "800": { + "familyName": "Onest", + "fullName": "Onest ExtraBold", + "postscriptName": "Onest-ExtraBold", + "category": "sans-serif", + "capHeight": 708, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "900": { + "familyName": "Onest", + "fullName": "Onest Black", + "postscriptName": "Onest-Black", + "category": "sans-serif", + "capHeight": 708, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "regular": { + "familyName": "Onest", + "fullName": "Onest Regular", + "postscriptName": "Onest-Regular", + "category": "sans-serif", + "capHeight": 707, + "ascent": 970, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 527, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 540 + } + } + } + } + }, + "ooohBaby": { + "familyName": "Oooh Baby", + "fullName": "Oooh Baby Regular", + "postscriptName": "OoohBaby-Regular", + "category": "handwriting", + "capHeight": 695, + "ascent": 900, + "descent": -325, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 365, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Oooh Baby", + "fullName": "Oooh Baby Regular", + "postscriptName": "OoohBaby-Regular", + "category": "handwriting", + "capHeight": 695, + "ascent": 900, + "descent": -325, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 365, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "openSans": { + "familyName": "Open Sans", + "fullName": "Open Sans Regular", + "postscriptName": "OpenSans-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 1229 + } + }, + "variants": { + "300": { + "familyName": "Open Sans", + "fullName": "Open Sans Light", + "postscriptName": "OpenSans-Light", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 924, + "subsets": { + "latin": { + "xWidthAvg": 924 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "500": { + "familyName": "Open Sans", + "fullName": "Open Sans Medium", + "postscriptName": "OpenSans-Medium", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "600": { + "familyName": "Open Sans", + "fullName": "Open Sans SemiBold", + "postscriptName": "OpenSans-SemiBold", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 995, + "subsets": { + "latin": { + "xWidthAvg": 995 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "700": { + "familyName": "Open Sans", + "fullName": "Open Sans Bold", + "postscriptName": "OpenSans-Bold", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1030, + "subsets": { + "latin": { + "xWidthAvg": 1030 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "800": { + "familyName": "Open Sans", + "fullName": "Open Sans ExtraBold", + "postscriptName": "OpenSans-ExtraBold", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1065, + "subsets": { + "latin": { + "xWidthAvg": 1065 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "regular": { + "familyName": "Open Sans", + "fullName": "Open Sans Regular", + "postscriptName": "OpenSans-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "italic": { + "familyName": "Open Sans", + "fullName": "Open Sans Italic", + "postscriptName": "OpenSans-Italic", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 909, + "subsets": { + "latin": { + "xWidthAvg": 909 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "800italic": { + "familyName": "Open Sans", + "fullName": "Open Sans ExtraBold Italic", + "postscriptName": "OpenSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 1018, + "subsets": { + "latin": { + "xWidthAvg": 1018 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "700italic": { + "familyName": "Open Sans", + "fullName": "Open Sans Bold Italic", + "postscriptName": "OpenSans-BoldItalic", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 977, + "subsets": { + "latin": { + "xWidthAvg": 977 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "600italic": { + "familyName": "Open Sans", + "fullName": "Open Sans SemiBold Italic", + "postscriptName": "OpenSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "500italic": { + "familyName": "Open Sans", + "fullName": "Open Sans Medium Italic", + "postscriptName": "OpenSans-MediumItalic", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 926, + "subsets": { + "latin": { + "xWidthAvg": 926 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "300italic": { + "familyName": "Open Sans", + "fullName": "Open Sans Light Italic", + "postscriptName": "OpenSans-LightItalic", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2189, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1229 + } + } + } + } + }, + "oranienbaum": { + "familyName": "Oranienbaum", + "fullName": "Oranienbaum", + "postscriptName": "Oranienbaum-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 240 + } + }, + "variants": { + "regular": { + "familyName": "Oranienbaum", + "fullName": "Oranienbaum", + "postscriptName": "Oranienbaum-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 895, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 240 + } + } + } + } + }, + "orbit": { + "familyName": "Orbit", + "fullName": "Orbit Regular", + "postscriptName": "Orbit-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 598, + "subsets": { + "latin": { + "xWidthAvg": 598 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Orbit", + "fullName": "Orbit Regular", + "postscriptName": "Orbit-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 598, + "subsets": { + "latin": { + "xWidthAvg": 598 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "orbitron": { + "familyName": "Orbitron", + "fullName": "Orbitron Regular", + "postscriptName": "Orbitron-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 553, + "subsets": { + "latin": { + "xWidthAvg": 553 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Orbitron", + "fullName": "Orbitron Medium", + "postscriptName": "Orbitron-Medium", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Orbitron", + "fullName": "Orbitron SemiBold", + "postscriptName": "Orbitron-SemiBold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 561, + "subsets": { + "latin": { + "xWidthAvg": 561 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Orbitron", + "fullName": "Orbitron Bold", + "postscriptName": "Orbitron-Bold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 563, + "subsets": { + "latin": { + "xWidthAvg": 563 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Orbitron", + "fullName": "Orbitron ExtraBold", + "postscriptName": "Orbitron-ExtraBold", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 565, + "subsets": { + "latin": { + "xWidthAvg": 565 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Orbitron", + "fullName": "Orbitron Black", + "postscriptName": "Orbitron-Black", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 567, + "subsets": { + "latin": { + "xWidthAvg": 567 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Orbitron", + "fullName": "Orbitron Regular", + "postscriptName": "Orbitron-Regular", + "category": "sans-serif", + "capHeight": 720, + "ascent": 1011, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 553, + "subsets": { + "latin": { + "xWidthAvg": 553 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "oregano": { + "familyName": "Oregano", + "fullName": "Oregano", + "postscriptName": "Oregano-Regular", + "category": "display", + "capHeight": 1460, + "ascent": 1975, + "descent": -669, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 864, + "xWidthAvg": 678, + "subsets": { + "latin": { + "xWidthAvg": 678 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Oregano", + "fullName": "Oregano", + "postscriptName": "Oregano-Regular", + "category": "display", + "capHeight": 1460, + "ascent": 1975, + "descent": -669, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 864, + "xWidthAvg": 678, + "subsets": { + "latin": { + "xWidthAvg": 678 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "italic": { + "familyName": "Oregano", + "fullName": "Oregano Italic", + "postscriptName": "Oregano-Italic", + "category": "display", + "capHeight": 1460, + "ascent": 1950, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 961, + "xWidthAvg": 758, + "subsets": { + "latin": { + "xWidthAvg": 758 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "orelegaOne": { + "familyName": "Orelega One", + "fullName": "Orelega One Regular", + "postscriptName": "OrelegaOne-Regular", + "category": "display", + "capHeight": 2480, + "ascent": 3296, + "descent": -801, + "lineGap": 369, + "unitsPerEm": 4096, + "xHeight": 1840, + "xWidthAvg": 1844, + "subsets": { + "latin": { + "xWidthAvg": 1844 + }, + "thai": { + "xWidthAvg": 1497 + } + }, + "variants": { + "regular": { + "familyName": "Orelega One", + "fullName": "Orelega One Regular", + "postscriptName": "OrelegaOne-Regular", + "category": "display", + "capHeight": 2480, + "ascent": 3296, + "descent": -801, + "lineGap": 369, + "unitsPerEm": 4096, + "xHeight": 1840, + "xWidthAvg": 1844, + "subsets": { + "latin": { + "xWidthAvg": 1844 + }, + "thai": { + "xWidthAvg": 1497 + } + } + } + } + }, + "orienta": { + "familyName": "Orienta", + "fullName": "Orienta Regular", + "postscriptName": "Orienta-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 960, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 746 + } + }, + "variants": { + "regular": { + "familyName": "Orienta", + "fullName": "Orienta Regular", + "postscriptName": "Orienta-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 960, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 746 + } + } + } + } + }, + "originalSurfer": { + "familyName": "Original Surfer", + "fullName": "Original Surfer", + "postscriptName": "OriginalSurfer-Regular", + "category": "display", + "capHeight": 1497, + "ascent": 2036, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 962, + "subsets": { + "latin": { + "xWidthAvg": 962 + }, + "thai": { + "xWidthAvg": 594 + } + }, + "variants": { + "regular": { + "familyName": "Original Surfer", + "fullName": "Original Surfer", + "postscriptName": "OriginalSurfer-Regular", + "category": "display", + "capHeight": 1497, + "ascent": 2036, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 987, + "xWidthAvg": 962, + "subsets": { + "latin": { + "xWidthAvg": 962 + }, + "thai": { + "xWidthAvg": 594 + } + } + } + } + }, + "oswald": { + "familyName": "Oswald", + "fullName": "Oswald Regular", + "postscriptName": "Oswald-Regular", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 682 + } + }, + "variants": { + "200": { + "familyName": "Oswald", + "fullName": "Oswald ExtraLight", + "postscriptName": "Oswald-ExtraLight", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 325, + "subsets": { + "latin": { + "xWidthAvg": 325 + }, + "thai": { + "xWidthAvg": 622 + } + } + }, + "300": { + "familyName": "Oswald", + "fullName": "Oswald Light", + "postscriptName": "Oswald-Light", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 340, + "subsets": { + "latin": { + "xWidthAvg": 340 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "500": { + "familyName": "Oswald", + "fullName": "Oswald Medium", + "postscriptName": "Oswald-Medium", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 674 + } + } + }, + "600": { + "familyName": "Oswald", + "fullName": "Oswald SemiBold", + "postscriptName": "Oswald-SemiBold", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 670 + } + } + }, + "700": { + "familyName": "Oswald", + "fullName": "Oswald Bold", + "postscriptName": "Oswald-Bold", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "regular": { + "familyName": "Oswald", + "fullName": "Oswald Regular", + "postscriptName": "Oswald-Regular", + "category": "sans-serif", + "capHeight": 810, + "ascent": 1193, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 682 + } + } + } + } + }, + "outfit": { + "familyName": "Outfit", + "fullName": "Outfit Regular", + "postscriptName": "Outfit-Regular", + "category": "sans-serif", + "capHeight": 694, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 686 + } + }, + "variants": { + "100": { + "familyName": "Outfit", + "fullName": "Outfit Thin", + "postscriptName": "Outfit-Thin", + "category": "sans-serif", + "capHeight": 676, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 676 + } + } + }, + "200": { + "familyName": "Outfit", + "fullName": "Outfit ExtraLight", + "postscriptName": "Outfit-ExtraLight", + "category": "sans-serif", + "capHeight": 682, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 679 + } + } + }, + "300": { + "familyName": "Outfit", + "fullName": "Outfit Light", + "postscriptName": "Outfit-Light", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 683 + } + } + }, + "500": { + "familyName": "Outfit", + "fullName": "Outfit Medium", + "postscriptName": "Outfit-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 689 + } + } + }, + "600": { + "familyName": "Outfit", + "fullName": "Outfit SemiBold", + "postscriptName": "Outfit-SemiBold", + "category": "sans-serif", + "capHeight": 703, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 483, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 683 + } + } + }, + "700": { + "familyName": "Outfit", + "fullName": "Outfit Bold", + "postscriptName": "Outfit-Bold", + "category": "sans-serif", + "capHeight": 706, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 677 + } + } + }, + "800": { + "familyName": "Outfit", + "fullName": "Outfit ExtraBold", + "postscriptName": "Outfit-ExtraBold", + "category": "sans-serif", + "capHeight": 709, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 671 + } + } + }, + "900": { + "familyName": "Outfit", + "fullName": "Outfit Black", + "postscriptName": "Outfit-Black", + "category": "sans-serif", + "capHeight": 712, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 665 + } + } + }, + "regular": { + "familyName": "Outfit", + "fullName": "Outfit Regular", + "postscriptName": "Outfit-Regular", + "category": "sans-serif", + "capHeight": 694, + "ascent": 1000, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 686 + } + } + } + } + }, + "overTheRainbow": { + "familyName": "Over the Rainbow", + "fullName": "Over the Rainbow", + "postscriptName": "OvertheRainbow", + "category": "handwriting", + "capHeight": 812, + "ascent": 1412, + "descent": -677, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 636, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Over the Rainbow", + "fullName": "Over the Rainbow", + "postscriptName": "OvertheRainbow", + "category": "handwriting", + "capHeight": 812, + "ascent": 1412, + "descent": -677, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 636, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "overlock": { + "familyName": "Overlock", + "fullName": "Overlock Regular", + "postscriptName": "Overlock-Regular", + "category": "display", + "capHeight": 154, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 125, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "700": { + "familyName": "Overlock", + "fullName": "Overlock Bold", + "postscriptName": "Overlock-Bold", + "category": "display", + "capHeight": 154, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 179, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 195 + } + } + }, + "900": { + "familyName": "Overlock", + "fullName": "Overlock Black", + "postscriptName": "Overlock-Black", + "category": "display", + "capHeight": 153, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 153, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 149 + } + } + }, + "regular": { + "familyName": "Overlock", + "fullName": "Overlock Regular", + "postscriptName": "Overlock-Regular", + "category": "display", + "capHeight": 154, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 125, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 230 + } + } + }, + "italic": { + "familyName": "Overlock", + "fullName": "Overlock Italic", + "postscriptName": "Overlock-Italic", + "category": "display", + "capHeight": 257, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 75, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 230 + } + } + }, + "900italic": { + "familyName": "Overlock", + "fullName": "Overlock Black Italic", + "postscriptName": "Overlock-BlackItalic", + "category": "display", + "capHeight": 283, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 128, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 230 + } + } + }, + "700italic": { + "familyName": "Overlock", + "fullName": "Overlock Bold Italic", + "postscriptName": "Overlock-BoldItalic", + "category": "display", + "capHeight": 257, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 77, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "overlockSC": { + "familyName": "Overlock SC", + "fullName": "Overlock SC", + "postscriptName": "OverlockSC-Regular", + "category": "display", + "capHeight": 154, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 159, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "regular": { + "familyName": "Overlock SC", + "fullName": "Overlock SC", + "postscriptName": "OverlockSC-Regular", + "category": "display", + "capHeight": 154, + "ascent": 966, + "descent": -254, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 159, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "overpass": { + "familyName": "Overpass", + "fullName": "Overpass Regular", + "postscriptName": "Overpass-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 1232 + } + }, + "variants": { + "100": { + "familyName": "Overpass", + "fullName": "Overpass Thin", + "postscriptName": "Overpass-Thin", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 869, + "subsets": { + "latin": { + "xWidthAvg": 869 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "200": { + "familyName": "Overpass", + "fullName": "Overpass ExtraLight", + "postscriptName": "Overpass-ExtraLight", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 878, + "subsets": { + "latin": { + "xWidthAvg": 878 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "300": { + "familyName": "Overpass", + "fullName": "Overpass Light", + "postscriptName": "Overpass-Light", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "500": { + "familyName": "Overpass", + "fullName": "Overpass Medium", + "postscriptName": "Overpass-Medium", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 913, + "subsets": { + "latin": { + "xWidthAvg": 913 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "600": { + "familyName": "Overpass", + "fullName": "Overpass SemiBold", + "postscriptName": "Overpass-SemiBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 927, + "subsets": { + "latin": { + "xWidthAvg": 927 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "700": { + "familyName": "Overpass", + "fullName": "Overpass Bold", + "postscriptName": "Overpass-Bold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 942, + "subsets": { + "latin": { + "xWidthAvg": 942 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "800": { + "familyName": "Overpass", + "fullName": "Overpass ExtraBold", + "postscriptName": "Overpass-ExtraBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 957, + "subsets": { + "latin": { + "xWidthAvg": 957 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "900": { + "familyName": "Overpass", + "fullName": "Overpass Black", + "postscriptName": "Overpass-Black", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 972, + "subsets": { + "latin": { + "xWidthAvg": 972 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "regular": { + "familyName": "Overpass", + "fullName": "Overpass Regular", + "postscriptName": "Overpass-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "italic": { + "familyName": "Overpass", + "fullName": "Overpass Italic", + "postscriptName": "Overpass-Italic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 865, + "subsets": { + "latin": { + "xWidthAvg": 865 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "900italic": { + "familyName": "Overpass", + "fullName": "Overpass Black Italic", + "postscriptName": "Overpass-BlackItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 904, + "subsets": { + "latin": { + "xWidthAvg": 904 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "800italic": { + "familyName": "Overpass", + "fullName": "Overpass ExtraBold Italic", + "postscriptName": "Overpass-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 896, + "subsets": { + "latin": { + "xWidthAvg": 896 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "700italic": { + "familyName": "Overpass", + "fullName": "Overpass Bold Italic", + "postscriptName": "Overpass-BoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "600italic": { + "familyName": "Overpass", + "fullName": "Overpass SemiBold Italic", + "postscriptName": "Overpass-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 880, + "subsets": { + "latin": { + "xWidthAvg": 880 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "500italic": { + "familyName": "Overpass", + "fullName": "Overpass Medium Italic", + "postscriptName": "Overpass-MediumItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "300italic": { + "familyName": "Overpass", + "fullName": "Overpass Light Italic", + "postscriptName": "Overpass-LightItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 854, + "subsets": { + "latin": { + "xWidthAvg": 854 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "200italic": { + "familyName": "Overpass", + "fullName": "Overpass ExtraLight Italic", + "postscriptName": "Overpass-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "100italic": { + "familyName": "Overpass", + "fullName": "Overpass Thin Italic", + "postscriptName": "Overpass-ThinItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 834, + "subsets": { + "latin": { + "xWidthAvg": 834 + }, + "thai": { + "xWidthAvg": 1232 + } + } + } + } + }, + "overpassMono": { + "familyName": "Overpass Mono", + "fullName": "Overpass Mono Regular", + "postscriptName": "OverpassMono-Regular", + "category": "monospace", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 1232, + "subsets": { + "latin": { + "xWidthAvg": 1232 + }, + "thai": { + "xWidthAvg": 1232 + } + }, + "variants": { + "300": { + "familyName": "Overpass Mono", + "fullName": "Overpass Mono Light", + "postscriptName": "OverpassMono-Light", + "category": "monospace", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 1232, + "subsets": { + "latin": { + "xWidthAvg": 1232 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "500": { + "familyName": "Overpass Mono", + "fullName": "Overpass Mono Medium", + "postscriptName": "OverpassMono-Medium", + "category": "monospace", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 1232, + "subsets": { + "latin": { + "xWidthAvg": 1232 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "600": { + "familyName": "Overpass Mono", + "fullName": "Overpass Mono SemiBold", + "postscriptName": "OverpassMono-SemiBold", + "category": "monospace", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 1232, + "subsets": { + "latin": { + "xWidthAvg": 1232 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "700": { + "familyName": "Overpass Mono", + "fullName": "Overpass Mono Bold", + "postscriptName": "OverpassMono-Bold", + "category": "monospace", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 1232, + "subsets": { + "latin": { + "xWidthAvg": 1232 + }, + "thai": { + "xWidthAvg": 1232 + } + } + }, + "regular": { + "familyName": "Overpass Mono", + "fullName": "Overpass Mono Regular", + "postscriptName": "OverpassMono-Regular", + "category": "monospace", + "capHeight": 1400, + "ascent": 1766, + "descent": -766, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1022, + "xWidthAvg": 1232, + "subsets": { + "latin": { + "xWidthAvg": 1232 + }, + "thai": { + "xWidthAvg": 1232 + } + } + } + } + }, + "ovo": { + "familyName": "Ovo", + "fullName": "Ovo", + "postscriptName": "Ovo", + "category": "serif", + "capHeight": 210, + "ascent": 1770, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 356, + "xWidthAvg": 903, + "subsets": { + "latin": { + "xWidthAvg": 903 + }, + "thai": { + "xWidthAvg": 450 + } + }, + "variants": { + "regular": { + "familyName": "Ovo", + "fullName": "Ovo", + "postscriptName": "Ovo", + "category": "serif", + "capHeight": 210, + "ascent": 1770, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 356, + "xWidthAvg": 903, + "subsets": { + "latin": { + "xWidthAvg": 903 + }, + "thai": { + "xWidthAvg": 450 + } + } + } + } + }, + "oxanium": { + "familyName": "Oxanium", + "fullName": "Oxanium Regular", + "postscriptName": "Oxanium-Regular", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 586 + } + }, + "variants": { + "200": { + "familyName": "Oxanium", + "fullName": "Oxanium ExtraLight", + "postscriptName": "Oxanium-ExtraLight", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 581 + } + } + }, + "300": { + "familyName": "Oxanium", + "fullName": "Oxanium Light", + "postscriptName": "Oxanium-Light", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Oxanium", + "fullName": "Oxanium Medium", + "postscriptName": "Oxanium-Medium", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 588 + } + } + }, + "600": { + "familyName": "Oxanium", + "fullName": "Oxanium SemiBold", + "postscriptName": "Oxanium-SemiBold", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "700": { + "familyName": "Oxanium", + "fullName": "Oxanium Bold", + "postscriptName": "Oxanium-Bold", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 594 + } + } + }, + "800": { + "familyName": "Oxanium", + "fullName": "Oxanium ExtraBold", + "postscriptName": "Oxanium-ExtraBold", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "regular": { + "familyName": "Oxanium", + "fullName": "Oxanium Regular", + "postscriptName": "Oxanium-Regular", + "category": "display", + "capHeight": 690, + "ascent": 790, + "descent": -210, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 586 + } + } + } + } + }, + "oxygen": { + "familyName": "Oxygen", + "fullName": "Oxygen Regular", + "postscriptName": "Oxygen-Regular", + "category": "sans-serif", + "ascent": 2103, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "300": { + "familyName": "Oxygen", + "fullName": "Oxygen Light", + "postscriptName": "Oxygen-Light", + "category": "sans-serif", + "ascent": 2103, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 900, + "subsets": { + "latin": { + "xWidthAvg": 900 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "700": { + "familyName": "Oxygen", + "fullName": "Oxygen Bold", + "postscriptName": "Oxygen-Bold", + "category": "sans-serif", + "ascent": 2103, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 977, + "subsets": { + "latin": { + "xWidthAvg": 977 + }, + "thai": { + "xWidthAvg": 748 + } + } + }, + "regular": { + "familyName": "Oxygen", + "fullName": "Oxygen Regular", + "postscriptName": "Oxygen-Regular", + "category": "sans-serif", + "ascent": 2103, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 923, + "subsets": { + "latin": { + "xWidthAvg": 923 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "oxygenMono": { + "familyName": "Oxygen Mono", + "fullName": "Oxygen Mono", + "postscriptName": "OxygenMono-Regular", + "category": "monospace", + "capHeight": 1491, + "ascent": 2015, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1097, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Oxygen Mono", + "fullName": "Oxygen Mono", + "postscriptName": "OxygenMono-Regular", + "category": "monospace", + "capHeight": 1491, + "ascent": 2015, + "descent": -672, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1097, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "pTMono": { + "familyName": "PT Mono", + "fullName": "PT Mono", + "postscriptName": "PTMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 885, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "PT Mono", + "fullName": "PT Mono", + "postscriptName": "PTMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 885, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "pTSans": { + "familyName": "PT Sans", + "fullName": "PT Sans", + "postscriptName": "PTSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "700": { + "familyName": "PT Sans", + "fullName": "PT Sans Bold", + "postscriptName": "PTSans-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "regular": { + "familyName": "PT Sans", + "fullName": "PT Sans", + "postscriptName": "PTSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "italic": { + "familyName": "PT Sans", + "fullName": "PT Sans Italic", + "postscriptName": "PTSans-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "700italic": { + "familyName": "PT Sans", + "fullName": "PT Sans Bold Italic", + "postscriptName": "PTSans-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "pTSansCaption": { + "familyName": "PT Sans Caption", + "fullName": "PT Sans Caption", + "postscriptName": "PTSans-Caption", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "700": { + "familyName": "PT Sans Caption", + "fullName": "PT Sans Caption Bold", + "postscriptName": "PTSans-CaptionBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "regular": { + "familyName": "PT Sans Caption", + "fullName": "PT Sans Caption", + "postscriptName": "PTSans-Caption", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "pTSansNarrow": { + "familyName": "PT Sans Narrow", + "fullName": "PT Sans Narrow", + "postscriptName": "PTSans-Narrow", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 347, + "subsets": { + "latin": { + "xWidthAvg": 347 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "700": { + "familyName": "PT Sans Narrow", + "fullName": "PT Sans Narrow Bold", + "postscriptName": "PTSans-NarrowBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "regular": { + "familyName": "PT Sans Narrow", + "fullName": "PT Sans Narrow", + "postscriptName": "PTSans-Narrow", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -276, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 347, + "subsets": { + "latin": { + "xWidthAvg": 347 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "pTSerif": { + "familyName": "PT Serif", + "fullName": "PT Serif", + "postscriptName": "PTSerif-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 709 + } + }, + "variants": { + "700": { + "familyName": "PT Serif", + "fullName": "PT Serif Bold", + "postscriptName": "PTSerif-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 709 + } + } + }, + "regular": { + "familyName": "PT Serif", + "fullName": "PT Serif", + "postscriptName": "PTSerif-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 709 + } + } + }, + "italic": { + "familyName": "PT Serif", + "fullName": "PT Serif Italic", + "postscriptName": "PTSerif-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 709 + } + } + }, + "700italic": { + "familyName": "PT Serif", + "fullName": "PT Serif Bold Italic", + "postscriptName": "PTSerif-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 709 + } + } + } + } + }, + "pTSerifCaption": { + "familyName": "PT Serif Caption", + "fullName": "PT Serif Caption", + "postscriptName": "PTSerif-Caption", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 709 + } + }, + "variants": { + "regular": { + "familyName": "PT Serif Caption", + "fullName": "PT Serif Caption", + "postscriptName": "PTSerif-Caption", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 709 + } + } + }, + "italic": { + "familyName": "PT Serif Caption", + "fullName": "PT Serif Caption Italic", + "postscriptName": "PTSerif-CaptionItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1039, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 709 + } + } + } + } + }, + "pacifico": { + "familyName": "Pacifico", + "fullName": "Pacifico Regular", + "postscriptName": "Pacifico-Regular", + "category": "handwriting", + "capHeight": 840, + "ascent": 1303, + "descent": -453, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 265 + } + }, + "variants": { + "regular": { + "familyName": "Pacifico", + "fullName": "Pacifico Regular", + "postscriptName": "Pacifico-Regular", + "category": "handwriting", + "capHeight": 840, + "ascent": 1303, + "descent": -453, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 265 + } + } + } + } + }, + "padauk": { + "familyName": "Padauk", + "fullName": "Padauk", + "postscriptName": "Padauk-Regular", + "category": "sans-serif", + "capHeight": 903, + "ascent": 1010, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 459, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "700": { + "familyName": "Padauk", + "fullName": "Padauk Bold", + "postscriptName": "Padauk-Bold", + "category": "sans-serif", + "capHeight": 920, + "ascent": 1010, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 464, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 1 + } + } + }, + "regular": { + "familyName": "Padauk", + "fullName": "Padauk", + "postscriptName": "Padauk-Regular", + "category": "sans-serif", + "capHeight": 903, + "ascent": 1010, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 459, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "padyakkeExpandedOne": { + "familyName": "Padyakke Expanded One", + "fullName": "Padyakke Expanded One Regular", + "postscriptName": "PadyakkeExpandedOne-Regular", + "category": "serif", + "capHeight": 520, + "ascent": 813, + "descent": -628, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 357, + "xWidthAvg": 674, + "subsets": { + "latin": { + "xWidthAvg": 674 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Padyakke Expanded One", + "fullName": "Padyakke Expanded One Regular", + "postscriptName": "PadyakkeExpandedOne-Regular", + "category": "serif", + "capHeight": 520, + "ascent": 813, + "descent": -628, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 357, + "xWidthAvg": 674, + "subsets": { + "latin": { + "xWidthAvg": 674 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "palanquin": { + "familyName": "Palanquin", + "fullName": "Palanquin Regular", + "postscriptName": "Palanquin-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 658 + } + }, + "variants": { + "100": { + "familyName": "Palanquin", + "fullName": "Palanquin Thin", + "postscriptName": "Palanquin-Thin", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "200": { + "familyName": "Palanquin", + "fullName": "Palanquin ExtraLight", + "postscriptName": "Palanquin-ExtraLight", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 636 + } + } + }, + "300": { + "familyName": "Palanquin", + "fullName": "Palanquin Light", + "postscriptName": "Palanquin-Light", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "500": { + "familyName": "Palanquin", + "fullName": "Palanquin Medium", + "postscriptName": "Palanquin-Medium", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 671 + } + } + }, + "600": { + "familyName": "Palanquin", + "fullName": "Palanquin SemiBold", + "postscriptName": "Palanquin-SemiBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "700": { + "familyName": "Palanquin", + "fullName": "Palanquin Bold", + "postscriptName": "Palanquin-Bold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "regular": { + "familyName": "Palanquin", + "fullName": "Palanquin Regular", + "postscriptName": "Palanquin-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 658 + } + } + } + } + }, + "palanquinDark": { + "familyName": "Palanquin Dark", + "fullName": "Palanquin Dark Regular", + "postscriptName": "PalanquinDark-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 697 + } + }, + "variants": { + "500": { + "familyName": "Palanquin Dark", + "fullName": "Palanquin Dark Medium", + "postscriptName": "PalanquinDark-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "600": { + "familyName": "Palanquin Dark", + "fullName": "Palanquin Dark SemiBold", + "postscriptName": "PalanquinDark-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "700": { + "familyName": "Palanquin Dark", + "fullName": "Palanquin Dark Bold", + "postscriptName": "PalanquinDark-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "regular": { + "familyName": "Palanquin Dark", + "fullName": "Palanquin Dark Regular", + "postscriptName": "PalanquinDark-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1320, + "descent": -491, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 697 + } + } + } + } + }, + "paletteMosaic": { + "familyName": "Palette Mosaic", + "fullName": "Palette Mosaic Regular", + "postscriptName": "PaletteMosaic-Regular", + "category": "display", + "capHeight": 790, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 636, + "subsets": { + "latin": { + "xWidthAvg": 636 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Palette Mosaic", + "fullName": "Palette Mosaic Regular", + "postscriptName": "PaletteMosaic-Regular", + "category": "display", + "capHeight": 790, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 465, + "xWidthAvg": 636, + "subsets": { + "latin": { + "xWidthAvg": 636 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "pangolin": { + "familyName": "Pangolin", + "fullName": "Pangolin Regular", + "postscriptName": "Pangolin-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 480 + } + }, + "variants": { + "regular": { + "familyName": "Pangolin", + "fullName": "Pangolin Regular", + "postscriptName": "Pangolin-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 480 + } + } + } + } + }, + "paprika": { + "familyName": "Paprika", + "fullName": "Paprika Regular", + "postscriptName": "Paprika-Regular", + "category": "display", + "capHeight": 889, + "ascent": 1145, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 689, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 554 + } + }, + "variants": { + "regular": { + "familyName": "Paprika", + "fullName": "Paprika Regular", + "postscriptName": "Paprika-Regular", + "category": "display", + "capHeight": 889, + "ascent": 1145, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 689, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 554 + } + } + } + } + }, + "parisienne": { + "familyName": "Parisienne", + "fullName": "Parisienne", + "postscriptName": "Parisienne-Regular", + "category": "handwriting", + "capHeight": 1558, + "ascent": 1875, + "descent": -915, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 723, + "xWidthAvg": 769, + "subsets": { + "latin": { + "xWidthAvg": 769 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Parisienne", + "fullName": "Parisienne", + "postscriptName": "Parisienne-Regular", + "category": "handwriting", + "capHeight": 1558, + "ascent": 1875, + "descent": -915, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 723, + "xWidthAvg": 769, + "subsets": { + "latin": { + "xWidthAvg": 769 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "passeroOne": { + "familyName": "Passero One", + "fullName": "Passero One", + "postscriptName": "PasseroOne-Regular", + "category": "display", + "capHeight": 1323, + "ascent": 1820, + "descent": -618, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 815, + "subsets": { + "latin": { + "xWidthAvg": 815 + }, + "thai": { + "xWidthAvg": 1710 + } + }, + "variants": { + "regular": { + "familyName": "Passero One", + "fullName": "Passero One", + "postscriptName": "PasseroOne-Regular", + "category": "display", + "capHeight": 1323, + "ascent": 1820, + "descent": -618, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 815, + "subsets": { + "latin": { + "xWidthAvg": 815 + }, + "thai": { + "xWidthAvg": 1710 + } + } + } + } + }, + "passionOne": { + "familyName": "Passion One", + "fullName": "Passion One Regular", + "postscriptName": "PassionOne-Regular", + "category": "display", + "capHeight": 621, + "ascent": 835, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 210 + } + }, + "variants": { + "700": { + "familyName": "Passion One", + "fullName": "Passion One Bold", + "postscriptName": "PassionOne-Bold", + "category": "display", + "capHeight": 621, + "ascent": 835, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 190 + } + } + }, + "900": { + "familyName": "Passion One", + "fullName": "Passion One Black", + "postscriptName": "PassionOne-Black", + "category": "display", + "capHeight": 621, + "ascent": 835, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 175 + } + } + }, + "regular": { + "familyName": "Passion One", + "fullName": "Passion One Regular", + "postscriptName": "PassionOne-Regular", + "category": "display", + "capHeight": 621, + "ascent": 835, + "descent": -266, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 210 + } + } + } + } + }, + "passionsConflict": { + "familyName": "Passions Conflict", + "fullName": "Passions Conflict Regular", + "postscriptName": "PassionsConflict-Regular", + "category": "handwriting", + "capHeight": 475, + "ascent": 750, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 170, + "xWidthAvg": 262, + "subsets": { + "latin": { + "xWidthAvg": 262 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "regular": { + "familyName": "Passions Conflict", + "fullName": "Passions Conflict Regular", + "postscriptName": "PassionsConflict-Regular", + "category": "handwriting", + "capHeight": 475, + "ascent": 750, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 170, + "xWidthAvg": 262, + "subsets": { + "latin": { + "xWidthAvg": 262 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "pathwayExtreme": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Regular", + "postscriptName": "PathwayExtreme12pt-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Thin", + "postscriptName": "PathwayExtreme12pt-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt ExtraLight", + "postscriptName": "PathwayExtreme12pt-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Light", + "postscriptName": "PathwayExtreme12pt-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Medium", + "postscriptName": "PathwayExtreme12pt-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt SemiBold", + "postscriptName": "PathwayExtreme12pt-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Bold", + "postscriptName": "PathwayExtreme12pt-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 543, + "subsets": { + "latin": { + "xWidthAvg": 543 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt ExtraBold", + "postscriptName": "PathwayExtreme12pt-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Black", + "postscriptName": "PathwayExtreme12pt-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 607, + "subsets": { + "latin": { + "xWidthAvg": 607 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Regular", + "postscriptName": "PathwayExtreme12pt-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Italic", + "postscriptName": "PathwayExtreme12pt-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Black Italic", + "postscriptName": "PathwayExtreme12pt-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 607, + "subsets": { + "latin": { + "xWidthAvg": 607 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt ExtraBold Italic", + "postscriptName": "PathwayExtreme12pt-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Bold Italic", + "postscriptName": "PathwayExtreme12pt-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 543, + "subsets": { + "latin": { + "xWidthAvg": 543 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt SemiBold Italic", + "postscriptName": "PathwayExtreme12pt-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Medium Italic", + "postscriptName": "PathwayExtreme12pt-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Light Italic", + "postscriptName": "PathwayExtreme12pt-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt ExtraLight Italic", + "postscriptName": "PathwayExtreme12pt-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "Pathway Extreme", + "fullName": "Pathway Extreme 12pt Thin Italic", + "postscriptName": "PathwayExtreme12pt-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1070, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "pathwayGothicOne": { + "familyName": "Pathway Gothic One", + "fullName": "Pathway Gothic One Regular", + "postscriptName": "PathwayGothicOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 954, + "descent": -198, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 144 + } + }, + "variants": { + "regular": { + "familyName": "Pathway Gothic One", + "fullName": "Pathway Gothic One Regular", + "postscriptName": "PathwayGothicOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 954, + "descent": -198, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 144 + } + } + } + } + }, + "patrickHand": { + "familyName": "Patrick Hand", + "fullName": "Patrick Hand", + "postscriptName": "PatrickHand-Regular", + "category": "handwriting", + "capHeight": 661, + "ascent": 1042, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 228 + } + }, + "variants": { + "regular": { + "familyName": "Patrick Hand", + "fullName": "Patrick Hand", + "postscriptName": "PatrickHand-Regular", + "category": "handwriting", + "capHeight": 661, + "ascent": 1042, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 228 + } + } + } + } + }, + "patrickHandSC": { + "familyName": "Patrick Hand SC", + "fullName": "Patrick Hand SC", + "postscriptName": "PatrickHandSC-Regular", + "category": "handwriting", + "capHeight": 661, + "ascent": 1042, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 464, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 228 + } + }, + "variants": { + "regular": { + "familyName": "Patrick Hand SC", + "fullName": "Patrick Hand SC", + "postscriptName": "PatrickHandSC-Regular", + "category": "handwriting", + "capHeight": 661, + "ascent": 1042, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 464, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 228 + } + } + } + } + }, + "pattaya": { + "familyName": "Pattaya", + "fullName": "Pattaya Regular", + "postscriptName": "Pattaya-Regular", + "category": "sans-serif", + "capHeight": 1532, + "ascent": 2065, + "descent": -777, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 803, + "subsets": { + "latin": { + "xWidthAvg": 803 + }, + "thai": { + "xWidthAvg": 1014 + } + }, + "variants": { + "regular": { + "familyName": "Pattaya", + "fullName": "Pattaya Regular", + "postscriptName": "Pattaya-Regular", + "category": "sans-serif", + "capHeight": 1532, + "ascent": 2065, + "descent": -777, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 803, + "subsets": { + "latin": { + "xWidthAvg": 803 + }, + "thai": { + "xWidthAvg": 1014 + } + } + } + } + }, + "patuaOne": { + "familyName": "Patua One", + "fullName": "Patua One", + "postscriptName": "PatuaOne-Regular", + "category": "display", + "capHeight": 690, + "ascent": 972, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Patua One", + "fullName": "Patua One", + "postscriptName": "PatuaOne-Regular", + "category": "display", + "capHeight": 690, + "ascent": 972, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "pavanam": { + "familyName": "Pavanam", + "fullName": "Pavanam Regular", + "postscriptName": "Pavanam-Regular", + "category": "sans-serif", + "ascent": 952, + "descent": -339, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 347 + } + }, + "variants": { + "regular": { + "familyName": "Pavanam", + "fullName": "Pavanam Regular", + "postscriptName": "Pavanam-Regular", + "category": "sans-serif", + "ascent": 952, + "descent": -339, + "lineGap": 0, + "unitsPerEm": 1000, + "xWidthAvg": 391, + "subsets": { + "latin": { + "xWidthAvg": 391 + }, + "thai": { + "xWidthAvg": 347 + } + } + } + } + }, + "paytoneOne": { + "familyName": "Paytone One", + "fullName": "Paytone One Regular", + "postscriptName": "PaytoneOne-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1113, + "descent": -283, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 813 + } + }, + "variants": { + "regular": { + "familyName": "Paytone One", + "fullName": "Paytone One Regular", + "postscriptName": "PaytoneOne-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1113, + "descent": -283, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 501, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 813 + } + } + } + } + }, + "peddana": { + "familyName": "Peddana", + "fullName": "Peddana Regular", + "postscriptName": "Peddana", + "category": "serif", + "capHeight": 329, + "ascent": 703, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 241, + "xWidthAvg": 235, + "subsets": { + "latin": { + "xWidthAvg": 235 + }, + "thai": { + "xWidthAvg": 421 + } + }, + "variants": { + "regular": { + "familyName": "Peddana", + "fullName": "Peddana Regular", + "postscriptName": "Peddana", + "category": "serif", + "capHeight": 329, + "ascent": 703, + "descent": -518, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 241, + "xWidthAvg": 235, + "subsets": { + "latin": { + "xWidthAvg": 235 + }, + "thai": { + "xWidthAvg": 421 + } + } + } + } + }, + "peralta": { + "familyName": "Peralta", + "fullName": "Peralta", + "postscriptName": "Peralta-Regular", + "category": "serif", + "capHeight": 1479, + "ascent": 2004, + "descent": -647, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1171, + "subsets": { + "latin": { + "xWidthAvg": 1171 + }, + "thai": { + "xWidthAvg": 614 + } + }, + "variants": { + "regular": { + "familyName": "Peralta", + "fullName": "Peralta", + "postscriptName": "Peralta-Regular", + "category": "serif", + "capHeight": 1479, + "ascent": 2004, + "descent": -647, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1036, + "xWidthAvg": 1171, + "subsets": { + "latin": { + "xWidthAvg": 1171 + }, + "thai": { + "xWidthAvg": 614 + } + } + } + } + }, + "permanentMarker": { + "familyName": "Permanent Marker", + "fullName": "Permanent Marker Regular", + "postscriptName": "PermanentMarker-Regular", + "category": "handwriting", + "capHeight": 758, + "ascent": 1136, + "descent": -325, + "lineGap": 31, + "unitsPerEm": 1024, + "xHeight": 625, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 379 + } + }, + "variants": { + "regular": { + "familyName": "Permanent Marker", + "fullName": "Permanent Marker Regular", + "postscriptName": "PermanentMarker-Regular", + "category": "handwriting", + "capHeight": 758, + "ascent": 1136, + "descent": -325, + "lineGap": 31, + "unitsPerEm": 1024, + "xHeight": 625, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 379 + } + } + } + } + }, + "petemoss": { + "familyName": "Petemoss", + "fullName": "Petemoss Regular", + "postscriptName": "Petemoss-Regular", + "category": "handwriting", + "capHeight": 480, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 305, + "xWidthAvg": 228, + "subsets": { + "latin": { + "xWidthAvg": 228 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Petemoss", + "fullName": "Petemoss Regular", + "postscriptName": "Petemoss-Regular", + "category": "handwriting", + "capHeight": 480, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 305, + "xWidthAvg": 228, + "subsets": { + "latin": { + "xWidthAvg": 228 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "petitFormalScript": { + "familyName": "Petit Formal Script", + "fullName": "Petit Formal Script", + "postscriptName": "PetitFormalScript-Regular", + "category": "handwriting", + "capHeight": 1609, + "ascent": 2033, + "descent": -527, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1185, + "xWidthAvg": 1108, + "subsets": { + "latin": { + "xWidthAvg": 1108 + }, + "thai": { + "xWidthAvg": 1180 + } + }, + "variants": { + "regular": { + "familyName": "Petit Formal Script", + "fullName": "Petit Formal Script", + "postscriptName": "PetitFormalScript-Regular", + "category": "handwriting", + "capHeight": 1609, + "ascent": 2033, + "descent": -527, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1185, + "xWidthAvg": 1108, + "subsets": { + "latin": { + "xWidthAvg": 1108 + }, + "thai": { + "xWidthAvg": 1180 + } + } + } + } + }, + "petrona": { + "familyName": "Petrona", + "fullName": "Petrona Regular", + "postscriptName": "Petrona-Regular", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 599 + } + }, + "variants": { + "100": { + "familyName": "Petrona", + "fullName": "Petrona Thin", + "postscriptName": "Petrona-Thin", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "200": { + "familyName": "Petrona", + "fullName": "Petrona ExtraLight", + "postscriptName": "Petrona-ExtraLight", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "300": { + "familyName": "Petrona", + "fullName": "Petrona Light", + "postscriptName": "Petrona-Light", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "500": { + "familyName": "Petrona", + "fullName": "Petrona Medium", + "postscriptName": "Petrona-Medium", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "600": { + "familyName": "Petrona", + "fullName": "Petrona SemiBold", + "postscriptName": "Petrona-SemiBold", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "700": { + "familyName": "Petrona", + "fullName": "Petrona Bold", + "postscriptName": "Petrona-Bold", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "800": { + "familyName": "Petrona", + "fullName": "Petrona ExtraBold", + "postscriptName": "Petrona-ExtraBold", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Petrona", + "fullName": "Petrona Black", + "postscriptName": "Petrona-Black", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Petrona", + "fullName": "Petrona Regular", + "postscriptName": "Petrona-Regular", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "italic": { + "familyName": "Petrona", + "fullName": "Petrona Italic", + "postscriptName": "Petrona-Italic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Petrona", + "fullName": "Petrona Black Italic", + "postscriptName": "Petrona-BlackItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800italic": { + "familyName": "Petrona", + "fullName": "Petrona ExtraBold Italic", + "postscriptName": "Petrona-ExtraBoldItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Petrona", + "fullName": "Petrona Bold Italic", + "postscriptName": "Petrona-BoldItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Petrona", + "fullName": "Petrona SemiBold Italic", + "postscriptName": "Petrona-SemiBoldItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Petrona", + "fullName": "Petrona Medium Italic", + "postscriptName": "Petrona-MediumItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Petrona", + "fullName": "Petrona Light Italic", + "postscriptName": "Petrona-LightItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Petrona", + "fullName": "Petrona ExtraLight Italic", + "postscriptName": "Petrona-ExtraLightItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "100italic": { + "familyName": "Petrona", + "fullName": "Petrona Thin Italic", + "postscriptName": "Petrona-ThinItalic", + "category": "serif", + "capHeight": 641, + "ascent": 858, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 443, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 599 + } + } + } + } + }, + "philosopher": { + "familyName": "Philosopher", + "fullName": "Philosopher Regular", + "postscriptName": "Philosopher-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Philosopher", + "fullName": "Philosopher Bold", + "postscriptName": "Philosopher-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Philosopher", + "fullName": "Philosopher Regular", + "postscriptName": "Philosopher-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Philosopher", + "fullName": "Philosopher Italic", + "postscriptName": "Philosopher-Italic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Philosopher", + "fullName": "Philosopher Bold Italic", + "postscriptName": "Philosopher-BoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 900, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "phudu": { + "familyName": "Phudu", + "fullName": "Phudu Regular", + "postscriptName": "Phudu-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "300": { + "familyName": "Phudu", + "fullName": "Phudu Light", + "postscriptName": "Phudu-Light", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Phudu", + "fullName": "Phudu Medium", + "postscriptName": "Phudu-Medium", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Phudu", + "fullName": "Phudu SemiBold", + "postscriptName": "Phudu-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Phudu", + "fullName": "Phudu Bold", + "postscriptName": "Phudu-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Phudu", + "fullName": "Phudu ExtraBold", + "postscriptName": "Phudu-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Phudu", + "fullName": "Phudu Black", + "postscriptName": "Phudu-Black", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Phudu", + "fullName": "Phudu Regular", + "postscriptName": "Phudu-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1025, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "piazzolla": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Regular", + "postscriptName": "Piazzolla-Regular", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 772 + } + }, + "variants": { + "100": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Thin", + "postscriptName": "Piazzolla-Thin", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 752 + } + } + }, + "200": { + "familyName": "Piazzolla", + "fullName": "Piazzolla ExtraLight", + "postscriptName": "Piazzolla-ExtraLight", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 759 + } + } + }, + "300": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Light", + "postscriptName": "Piazzolla-Light", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 765 + } + } + }, + "500": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Medium", + "postscriptName": "Piazzolla-Medium", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 759 + } + } + }, + "600": { + "familyName": "Piazzolla", + "fullName": "Piazzolla SemiBold", + "postscriptName": "Piazzolla-SemiBold", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 735 + } + } + }, + "700": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Bold", + "postscriptName": "Piazzolla-Bold", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 706 + } + } + }, + "800": { + "familyName": "Piazzolla", + "fullName": "Piazzolla ExtraBold", + "postscriptName": "Piazzolla-ExtraBold", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "900": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Black", + "postscriptName": "Piazzolla-Black", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 626 + } + } + }, + "regular": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Regular", + "postscriptName": "Piazzolla-Regular", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 772 + } + } + }, + "italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Italic", + "postscriptName": "Piazzolla-Italic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 740 + } + } + }, + "900italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Black Italic", + "postscriptName": "Piazzolla-BlackItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "800italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla ExtraBold Italic", + "postscriptName": "Piazzolla-ExtraBoldItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 670 + } + } + }, + "700italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Bold Italic", + "postscriptName": "Piazzolla-BoldItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "600italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla SemiBold Italic", + "postscriptName": "Piazzolla-SemiBoldItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 715 + } + } + }, + "500italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Medium Italic", + "postscriptName": "Piazzolla-MediumItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 732 + } + } + }, + "300italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Light Italic", + "postscriptName": "Piazzolla-LightItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 736 + } + } + }, + "200italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla ExtraLight Italic", + "postscriptName": "Piazzolla-ExtraLightItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 731 + } + } + }, + "100italic": { + "familyName": "Piazzolla", + "fullName": "Piazzolla Thin Italic", + "postscriptName": "Piazzolla-ThinItalic", + "category": "serif", + "capHeight": 644, + "ascent": 1110, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 726 + } + } + } + } + }, + "piedra": { + "familyName": "Piedra", + "fullName": "Piedra Regular", + "postscriptName": "Piedra-Regular", + "category": "display", + "capHeight": 655, + "ascent": 973, + "descent": -328, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 437, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "regular": { + "familyName": "Piedra", + "fullName": "Piedra Regular", + "postscriptName": "Piedra-Regular", + "category": "display", + "capHeight": 655, + "ascent": 973, + "descent": -328, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 437, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "pinyonScript": { + "familyName": "Pinyon Script", + "fullName": "Pinyon Script Regular", + "postscriptName": "PinyonScript-Regular", + "category": "handwriting", + "capHeight": 1388, + "ascent": 1768, + "descent": -787, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 760, + "xWidthAvg": 731, + "subsets": { + "latin": { + "xWidthAvg": 731 + }, + "thai": { + "xWidthAvg": 2116 + } + }, + "variants": { + "regular": { + "familyName": "Pinyon Script", + "fullName": "Pinyon Script Regular", + "postscriptName": "PinyonScript-Regular", + "category": "handwriting", + "capHeight": 1388, + "ascent": 1768, + "descent": -787, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 760, + "xWidthAvg": 731, + "subsets": { + "latin": { + "xWidthAvg": 731 + }, + "thai": { + "xWidthAvg": 2116 + } + } + } + } + }, + "pirataOne": { + "familyName": "Pirata One", + "fullName": "Pirata One", + "postscriptName": "PirataOne-Regular", + "category": "display", + "capHeight": 793, + "ascent": 1006, + "descent": -279, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 594, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 220 + } + }, + "variants": { + "regular": { + "familyName": "Pirata One", + "fullName": "Pirata One", + "postscriptName": "PirataOne-Regular", + "category": "display", + "capHeight": 793, + "ascent": 1006, + "descent": -279, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 594, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 220 + } + } + } + } + }, + "pixelifySans": { + "familyName": "Pixelify Sans", + "fullName": "Pixelify Sans Regular", + "postscriptName": "PixelifySans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 701 + } + }, + "variants": { + "500": { + "familyName": "Pixelify Sans", + "fullName": "Pixelify Sans Medium", + "postscriptName": "PixelifySans-Medium", + "category": "display", + "capHeight": 700, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 710 + } + } + }, + "600": { + "familyName": "Pixelify Sans", + "fullName": "Pixelify Sans SemiBold", + "postscriptName": "PixelifySans-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 461, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 718 + } + } + }, + "700": { + "familyName": "Pixelify Sans", + "fullName": "Pixelify Sans Bold", + "postscriptName": "PixelifySans-Bold", + "category": "display", + "capHeight": 700, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 727 + } + } + }, + "regular": { + "familyName": "Pixelify Sans", + "fullName": "Pixelify Sans Regular", + "postscriptName": "PixelifySans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 920, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 701 + } + } + } + } + }, + "plaster": { + "familyName": "Plaster", + "fullName": "Plaster", + "postscriptName": "Plaster-Regular", + "category": "display", + "capHeight": 1361, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1020, + "xWidthAvg": 1411, + "subsets": { + "latin": { + "xWidthAvg": 1411 + }, + "thai": { + "xWidthAvg": 1876 + } + }, + "variants": { + "regular": { + "familyName": "Plaster", + "fullName": "Plaster", + "postscriptName": "Plaster-Regular", + "category": "display", + "capHeight": 1361, + "ascent": 2000, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1020, + "xWidthAvg": 1411, + "subsets": { + "latin": { + "xWidthAvg": 1411 + }, + "thai": { + "xWidthAvg": 1876 + } + } + } + } + }, + "platypi": { + "familyName": "Platypi", + "fullName": "Platypi Regular", + "postscriptName": "Platypi-Regular", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 606 + } + }, + "variants": { + "300": { + "familyName": "Platypi", + "fullName": "Platypi Light", + "postscriptName": "Platypi-Light", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 603 + } + } + }, + "500": { + "familyName": "Platypi", + "fullName": "Platypi Medium", + "postscriptName": "Platypi-Medium", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "600": { + "familyName": "Platypi", + "fullName": "Platypi SemiBold", + "postscriptName": "Platypi-SemiBold", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 611 + } + } + }, + "700": { + "familyName": "Platypi", + "fullName": "Platypi Bold", + "postscriptName": "Platypi-Bold", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 614 + } + } + }, + "800": { + "familyName": "Platypi", + "fullName": "Platypi ExtraBold", + "postscriptName": "Platypi-ExtraBold", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 617 + } + } + }, + "regular": { + "familyName": "Platypi", + "fullName": "Platypi Regular", + "postscriptName": "Platypi-Regular", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 606 + } + } + }, + "italic": { + "familyName": "Platypi", + "fullName": "Platypi Italic", + "postscriptName": "Platypi-Italic", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 744 + } + } + }, + "800italic": { + "familyName": "Platypi", + "fullName": "Platypi ExtraBold Italic", + "postscriptName": "Platypi-ExtraBoldItalic", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 765 + } + } + }, + "700italic": { + "familyName": "Platypi", + "fullName": "Platypi Bold Italic", + "postscriptName": "Platypi-BoldItalic", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 760 + } + } + }, + "600italic": { + "familyName": "Platypi", + "fullName": "Platypi SemiBold Italic", + "postscriptName": "Platypi-SemiBoldItalic", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 755 + } + } + }, + "500italic": { + "familyName": "Platypi", + "fullName": "Platypi Medium Italic", + "postscriptName": "Platypi-MediumItalic", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 749 + } + } + }, + "300italic": { + "familyName": "Platypi", + "fullName": "Platypi Light Italic", + "postscriptName": "Platypi-LightItalic", + "category": "serif", + "capHeight": 690, + "ascent": 1125, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 740 + } + } + } + } + }, + "play": { + "familyName": "Play", + "fullName": "Play Regular", + "postscriptName": "Play-Regular", + "category": "sans-serif", + "capHeight": 649, + "ascent": 937, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 260 + } + }, + "variants": { + "700": { + "familyName": "Play", + "fullName": "Play Bold", + "postscriptName": "Play-Bold", + "category": "sans-serif", + "capHeight": 649, + "ascent": 937, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 260 + } + } + }, + "regular": { + "familyName": "Play", + "fullName": "Play Regular", + "postscriptName": "Play-Regular", + "category": "sans-serif", + "capHeight": 649, + "ascent": 937, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 260 + } + } + } + } + }, + "playball": { + "familyName": "Playball", + "fullName": "Playball Regular", + "postscriptName": "Playball-Regular", + "category": "display", + "capHeight": 706, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 403, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Playball", + "fullName": "Playball Regular", + "postscriptName": "Playball-Regular", + "category": "display", + "capHeight": 706, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 403, + "xWidthAvg": 382, + "subsets": { + "latin": { + "xWidthAvg": 382 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "playfair": { + "familyName": "Playfair", + "fullName": "Playfair Regular", + "postscriptName": "Playfair-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 514, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 598 + } + }, + "variants": { + "300": { + "familyName": "Playfair", + "fullName": "Playfair Light", + "postscriptName": "Playfair-Light", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 514, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "500": { + "familyName": "Playfair", + "fullName": "Playfair Medium", + "postscriptName": "Playfair-Medium", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 515, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "600": { + "familyName": "Playfair", + "fullName": "Playfair SemiBold", + "postscriptName": "Playfair-SemiBold", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 516, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "700": { + "familyName": "Playfair", + "fullName": "Playfair Bold", + "postscriptName": "Playfair-Bold", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 517, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "800": { + "familyName": "Playfair", + "fullName": "Playfair ExtraBold", + "postscriptName": "Playfair-ExtraBold", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 518, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "900": { + "familyName": "Playfair", + "fullName": "Playfair Black", + "postscriptName": "Playfair-Black", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 519, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "regular": { + "familyName": "Playfair", + "fullName": "Playfair Regular", + "postscriptName": "Playfair-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 514, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 598 + } + } + }, + "italic": { + "familyName": "Playfair", + "fullName": "Playfair Italic", + "postscriptName": "Playfair-Italic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 514, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "900italic": { + "familyName": "Playfair", + "fullName": "Playfair Black Italic", + "postscriptName": "Playfair-BlackItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 519, + "xWidthAvg": 571, + "subsets": { + "latin": { + "xWidthAvg": 571 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "800italic": { + "familyName": "Playfair", + "fullName": "Playfair ExtraBold Italic", + "postscriptName": "Playfair-ExtraBoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 518, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "700italic": { + "familyName": "Playfair", + "fullName": "Playfair Bold Italic", + "postscriptName": "Playfair-BoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 517, + "xWidthAvg": 543, + "subsets": { + "latin": { + "xWidthAvg": 543 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "600italic": { + "familyName": "Playfair", + "fullName": "Playfair SemiBold Italic", + "postscriptName": "Playfair-SemiBoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 516, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "500italic": { + "familyName": "Playfair", + "fullName": "Playfair Medium Italic", + "postscriptName": "Playfair-MediumItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 515, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "300italic": { + "familyName": "Playfair", + "fullName": "Playfair Light Italic", + "postscriptName": "Playfair-LightItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1098, + "descent": -390, + "lineGap": 0, + "unitsPerEm": 1240, + "xHeight": 514, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 562 + } + } + } + } + }, + "playfairDisplay": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Regular", + "postscriptName": "PlayfairDisplay-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 562 + } + }, + "variants": { + "500": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Medium", + "postscriptName": "PlayfairDisplay-Medium", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "600": { + "familyName": "Playfair Display", + "fullName": "Playfair Display SemiBold", + "postscriptName": "PlayfairDisplay-SemiBold", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "700": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Bold", + "postscriptName": "PlayfairDisplay-Bold", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "800": { + "familyName": "Playfair Display", + "fullName": "Playfair Display ExtraBold", + "postscriptName": "PlayfairDisplay-ExtraBold", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "900": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Black", + "postscriptName": "PlayfairDisplay-Black", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "regular": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Regular", + "postscriptName": "PlayfairDisplay-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "italic": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Italic", + "postscriptName": "PlayfairDisplay-Italic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "900italic": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Black Italic", + "postscriptName": "PlayfairDisplay-BlackItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "800italic": { + "familyName": "Playfair Display", + "fullName": "Playfair Display ExtraBold Italic", + "postscriptName": "PlayfairDisplay-ExtraBoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "700italic": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Bold Italic", + "postscriptName": "PlayfairDisplay-BoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "600italic": { + "familyName": "Playfair Display", + "fullName": "Playfair Display SemiBold Italic", + "postscriptName": "PlayfairDisplay-SemiBoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "500italic": { + "familyName": "Playfair Display", + "fullName": "Playfair Display Medium Italic", + "postscriptName": "PlayfairDisplay-MediumItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 562 + } + } + } + } + }, + "playfairDisplaySC": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Regular", + "postscriptName": "PlayfairDisplaySC-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 549, + "subsets": { + "latin": { + "xWidthAvg": 549 + }, + "thai": { + "xWidthAvg": 562 + } + }, + "variants": { + "700": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Bold", + "postscriptName": "PlayfairDisplaySC-Bold", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 569, + "subsets": { + "latin": { + "xWidthAvg": 569 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "900": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Black", + "postscriptName": "PlayfairDisplaySC-Black", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 583, + "subsets": { + "latin": { + "xWidthAvg": 583 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "regular": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Regular", + "postscriptName": "PlayfairDisplaySC-Regular", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 549, + "subsets": { + "latin": { + "xWidthAvg": 549 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "italic": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Italic", + "postscriptName": "PlayfairDisplaySC-Italic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 570, + "subsets": { + "latin": { + "xWidthAvg": 570 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "900italic": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Black Italic", + "postscriptName": "PlayfairDisplaySC-BlackItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 625, + "subsets": { + "latin": { + "xWidthAvg": 625 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "700italic": { + "familyName": "Playfair Display SC", + "fullName": "Playfair Display SC Bold Italic", + "postscriptName": "PlayfairDisplaySC-BoldItalic", + "category": "serif", + "capHeight": 708, + "ascent": 1082, + "descent": -251, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 603, + "subsets": { + "latin": { + "xWidthAvg": 603 + }, + "thai": { + "xWidthAvg": 562 + } + } + } + } + }, + "playpenSans": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans Regular", + "postscriptName": "PlaypenSans-Regular", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 683 + } + }, + "variants": { + "100": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans Thin", + "postscriptName": "PlaypenSans-Thin", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 694 + } + } + }, + "200": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans ExtraLight", + "postscriptName": "PlaypenSans-ExtraLight", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 690 + } + } + }, + "300": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans Light", + "postscriptName": "PlaypenSans-Light", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 533, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 687 + } + } + }, + "500": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans Medium", + "postscriptName": "PlaypenSans-Medium", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 682 + } + } + }, + "600": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans SemiBold", + "postscriptName": "PlaypenSans-SemiBold", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 681 + } + } + }, + "700": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans Bold", + "postscriptName": "PlaypenSans-Bold", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 679 + } + } + }, + "800": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans ExtraBold", + "postscriptName": "PlaypenSans-ExtraBold", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 678 + } + } + }, + "regular": { + "familyName": "Playpen Sans", + "fullName": "Playpen Sans Regular", + "postscriptName": "PlaypenSans-Regular", + "category": "handwriting", + "capHeight": 764, + "ascent": 1170, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 537, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 683 + } + } + } + } + }, + "playwriteAR": { + "familyName": "Playwrite AR", + "fullName": "Playwrite AR Regular", + "postscriptName": "PlaywriteAR-Regular", + "category": "handwriting", + "capHeight": 1065, + "ascent": 1508, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 983 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AR", + "fullName": "Playwrite AR Thin", + "postscriptName": "PlaywriteAR-Thin", + "category": "handwriting", + "capHeight": 1065, + "ascent": 1508, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 983 + } + } + }, + "200": { + "familyName": "Playwrite AR", + "fullName": "Playwrite AR ExtraLight", + "postscriptName": "PlaywriteAR-ExtraLight", + "category": "handwriting", + "capHeight": 1065, + "ascent": 1508, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 983 + } + } + }, + "300": { + "familyName": "Playwrite AR", + "fullName": "Playwrite AR Light", + "postscriptName": "PlaywriteAR-Light", + "category": "handwriting", + "capHeight": 1065, + "ascent": 1508, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 983 + } + } + }, + "regular": { + "familyName": "Playwrite AR", + "fullName": "Playwrite AR Regular", + "postscriptName": "PlaywriteAR-Regular", + "category": "handwriting", + "capHeight": 1065, + "ascent": 1508, + "descent": -571, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 983 + } + } + } + } + }, + "playwriteAT": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Regular", + "postscriptName": "PlaywriteAT-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 845 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Thin", + "postscriptName": "PlaywriteAT-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT ExtraLight", + "postscriptName": "PlaywriteAT-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Light", + "postscriptName": "PlaywriteAT-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "regular": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Regular", + "postscriptName": "PlaywriteAT-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "italic": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Italic", + "postscriptName": "PlaywriteAT-Italic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 844 + } + } + }, + "300italic": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Light Italic", + "postscriptName": "PlaywriteAT-LightItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 844 + } + } + }, + "200italic": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT ExtraLight Italic", + "postscriptName": "PlaywriteAT-ExtraLightItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "100italic": { + "familyName": "Playwrite AT", + "fullName": "Playwrite AT Thin Italic", + "postscriptName": "PlaywriteAT-ThinItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 845 + } + } + } + } + }, + "playwriteAUNSW": { + "familyName": "Playwrite AU NSW", + "fullName": "Playwrite AU NSW Regular", + "postscriptName": "PlaywriteAUNSW-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AU NSW", + "fullName": "Playwrite AU NSW Thin", + "postscriptName": "PlaywriteAUNSW-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite AU NSW", + "fullName": "Playwrite AU NSW ExtraLight", + "postscriptName": "PlaywriteAUNSW-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite AU NSW", + "fullName": "Playwrite AU NSW Light", + "postscriptName": "PlaywriteAUNSW-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite AU NSW", + "fullName": "Playwrite AU NSW Regular", + "postscriptName": "PlaywriteAUNSW-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteAUQLD": { + "familyName": "Playwrite AU QLD", + "fullName": "Playwrite AU QLD Regular", + "postscriptName": "PlaywriteAUQLD-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AU QLD", + "fullName": "Playwrite AU QLD Thin", + "postscriptName": "PlaywriteAUQLD-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite AU QLD", + "fullName": "Playwrite AU QLD ExtraLight", + "postscriptName": "PlaywriteAUQLD-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite AU QLD", + "fullName": "Playwrite AU QLD Light", + "postscriptName": "PlaywriteAUQLD-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite AU QLD", + "fullName": "Playwrite AU QLD Regular", + "postscriptName": "PlaywriteAUQLD-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteAUSA": { + "familyName": "Playwrite AU SA", + "fullName": "Playwrite AU SA Regular", + "postscriptName": "PlaywriteAUSA-Regular", + "category": "handwriting", + "capHeight": 988, + "ascent": 1413, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 927 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AU SA", + "fullName": "Playwrite AU SA Thin", + "postscriptName": "PlaywriteAUSA-Thin", + "category": "handwriting", + "capHeight": 988, + "ascent": 1413, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 928 + } + } + }, + "200": { + "familyName": "Playwrite AU SA", + "fullName": "Playwrite AU SA ExtraLight", + "postscriptName": "PlaywriteAUSA-ExtraLight", + "category": "handwriting", + "capHeight": 988, + "ascent": 1413, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 928 + } + } + }, + "300": { + "familyName": "Playwrite AU SA", + "fullName": "Playwrite AU SA Light", + "postscriptName": "PlaywriteAUSA-Light", + "category": "handwriting", + "capHeight": 988, + "ascent": 1413, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 927 + } + } + }, + "regular": { + "familyName": "Playwrite AU SA", + "fullName": "Playwrite AU SA Regular", + "postscriptName": "PlaywriteAUSA-Regular", + "category": "handwriting", + "capHeight": 988, + "ascent": 1413, + "descent": -492, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 509, + "subsets": { + "latin": { + "xWidthAvg": 509 + }, + "thai": { + "xWidthAvg": 927 + } + } + } + } + }, + "playwriteAUTAS": { + "familyName": "Playwrite AU TAS", + "fullName": "Playwrite AU TAS Regular", + "postscriptName": "PlaywriteAUTAS-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AU TAS", + "fullName": "Playwrite AU TAS Thin", + "postscriptName": "PlaywriteAUTAS-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite AU TAS", + "fullName": "Playwrite AU TAS ExtraLight", + "postscriptName": "PlaywriteAUTAS-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite AU TAS", + "fullName": "Playwrite AU TAS Light", + "postscriptName": "PlaywriteAUTAS-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite AU TAS", + "fullName": "Playwrite AU TAS Regular", + "postscriptName": "PlaywriteAUTAS-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteAUVIC": { + "familyName": "Playwrite AU VIC", + "fullName": "Playwrite AU VIC Regular", + "postscriptName": "PlaywriteAUVIC-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite AU VIC", + "fullName": "Playwrite AU VIC Thin", + "postscriptName": "PlaywriteAUVIC-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite AU VIC", + "fullName": "Playwrite AU VIC ExtraLight", + "postscriptName": "PlaywriteAUVIC-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite AU VIC", + "fullName": "Playwrite AU VIC Light", + "postscriptName": "PlaywriteAUVIC-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite AU VIC", + "fullName": "Playwrite AU VIC Regular", + "postscriptName": "PlaywriteAUVIC-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteBEVLG": { + "familyName": "Playwrite BE VLG", + "fullName": "Playwrite BE VLG Regular", + "postscriptName": "PlaywriteBEVLG-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite BE VLG", + "fullName": "Playwrite BE VLG Thin", + "postscriptName": "PlaywriteBEVLG-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite BE VLG", + "fullName": "Playwrite BE VLG ExtraLight", + "postscriptName": "PlaywriteBEVLG-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite BE VLG", + "fullName": "Playwrite BE VLG Light", + "postscriptName": "PlaywriteBEVLG-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite BE VLG", + "fullName": "Playwrite BE VLG Regular", + "postscriptName": "PlaywriteBEVLG-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteBEWAL": { + "familyName": "Playwrite BE WAL", + "fullName": "Playwrite BE WAL Regular", + "postscriptName": "PlaywriteBEWAL-Regular", + "category": "handwriting", + "capHeight": 1405, + "ascent": 1924, + "descent": -922, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 546, + "subsets": { + "latin": { + "xWidthAvg": 546 + }, + "thai": { + "xWidthAvg": 1231 + } + }, + "variants": { + "100": { + "familyName": "Playwrite BE WAL", + "fullName": "Playwrite BE WAL Thin", + "postscriptName": "PlaywriteBEWAL-Thin", + "category": "handwriting", + "capHeight": 1405, + "ascent": 1924, + "descent": -922, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 1231 + } + } + }, + "200": { + "familyName": "Playwrite BE WAL", + "fullName": "Playwrite BE WAL ExtraLight", + "postscriptName": "PlaywriteBEWAL-ExtraLight", + "category": "handwriting", + "capHeight": 1405, + "ascent": 1924, + "descent": -922, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 546, + "subsets": { + "latin": { + "xWidthAvg": 546 + }, + "thai": { + "xWidthAvg": 1231 + } + } + }, + "300": { + "familyName": "Playwrite BE WAL", + "fullName": "Playwrite BE WAL Light", + "postscriptName": "PlaywriteBEWAL-Light", + "category": "handwriting", + "capHeight": 1405, + "ascent": 1924, + "descent": -922, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 546, + "subsets": { + "latin": { + "xWidthAvg": 546 + }, + "thai": { + "xWidthAvg": 1231 + } + } + }, + "regular": { + "familyName": "Playwrite BE WAL", + "fullName": "Playwrite BE WAL Regular", + "postscriptName": "PlaywriteBEWAL-Regular", + "category": "handwriting", + "capHeight": 1405, + "ascent": 1924, + "descent": -922, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 546, + "subsets": { + "latin": { + "xWidthAvg": 546 + }, + "thai": { + "xWidthAvg": 1231 + } + } + } + } + }, + "playwriteBR": { + "familyName": "Playwrite BR", + "fullName": "Playwrite BR Regular", + "postscriptName": "PlaywriteBR-Regular", + "category": "handwriting", + "capHeight": 1131, + "ascent": 1588, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 1031 + } + }, + "variants": { + "100": { + "familyName": "Playwrite BR", + "fullName": "Playwrite BR Thin", + "postscriptName": "PlaywriteBR-Thin", + "category": "handwriting", + "capHeight": 1131, + "ascent": 1588, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "200": { + "familyName": "Playwrite BR", + "fullName": "Playwrite BR ExtraLight", + "postscriptName": "PlaywriteBR-ExtraLight", + "category": "handwriting", + "capHeight": 1131, + "ascent": 1588, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "300": { + "familyName": "Playwrite BR", + "fullName": "Playwrite BR Light", + "postscriptName": "PlaywriteBR-Light", + "category": "handwriting", + "capHeight": 1131, + "ascent": 1588, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 1031 + } + } + }, + "regular": { + "familyName": "Playwrite BR", + "fullName": "Playwrite BR Regular", + "postscriptName": "PlaywriteBR-Regular", + "category": "handwriting", + "capHeight": 1131, + "ascent": 1588, + "descent": -639, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 1031 + } + } + } + } + }, + "playwriteCA": { + "familyName": "Playwrite CA", + "fullName": "Playwrite CA Regular", + "postscriptName": "PlaywriteCA-Regular", + "category": "handwriting", + "capHeight": 996, + "ascent": 1423, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 932 + } + }, + "variants": { + "100": { + "familyName": "Playwrite CA", + "fullName": "Playwrite CA Thin", + "postscriptName": "PlaywriteCA-Thin", + "category": "handwriting", + "capHeight": 996, + "ascent": 1423, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 933 + } + } + }, + "200": { + "familyName": "Playwrite CA", + "fullName": "Playwrite CA ExtraLight", + "postscriptName": "PlaywriteCA-ExtraLight", + "category": "handwriting", + "capHeight": 996, + "ascent": 1423, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 933 + } + } + }, + "300": { + "familyName": "Playwrite CA", + "fullName": "Playwrite CA Light", + "postscriptName": "PlaywriteCA-Light", + "category": "handwriting", + "capHeight": 996, + "ascent": 1423, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 932 + } + } + }, + "regular": { + "familyName": "Playwrite CA", + "fullName": "Playwrite CA Regular", + "postscriptName": "PlaywriteCA-Regular", + "category": "handwriting", + "capHeight": 996, + "ascent": 1423, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 932 + } + } + } + } + }, + "playwriteCL": { + "familyName": "Playwrite CL", + "fullName": "Playwrite CL Regular", + "postscriptName": "PlaywriteCL-Regular", + "category": "handwriting", + "capHeight": 1133, + "ascent": 1591, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1033 + } + }, + "variants": { + "100": { + "familyName": "Playwrite CL", + "fullName": "Playwrite CL Thin", + "postscriptName": "PlaywriteCL-Thin", + "category": "handwriting", + "capHeight": 1133, + "ascent": 1591, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1033 + } + } + }, + "200": { + "familyName": "Playwrite CL", + "fullName": "Playwrite CL ExtraLight", + "postscriptName": "PlaywriteCL-ExtraLight", + "category": "handwriting", + "capHeight": 1133, + "ascent": 1591, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1033 + } + } + }, + "300": { + "familyName": "Playwrite CL", + "fullName": "Playwrite CL Light", + "postscriptName": "PlaywriteCL-Light", + "category": "handwriting", + "capHeight": 1133, + "ascent": 1591, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1033 + } + } + }, + "regular": { + "familyName": "Playwrite CL", + "fullName": "Playwrite CL Regular", + "postscriptName": "PlaywriteCL-Regular", + "category": "handwriting", + "capHeight": 1133, + "ascent": 1591, + "descent": -641, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1033 + } + } + } + } + }, + "playwriteCO": { + "familyName": "Playwrite CO", + "fullName": "Playwrite CO Regular", + "postscriptName": "PlaywriteCO-Regular", + "category": "handwriting", + "capHeight": 1020, + "ascent": 1452, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 950 + } + }, + "variants": { + "100": { + "familyName": "Playwrite CO", + "fullName": "Playwrite CO Thin", + "postscriptName": "PlaywriteCO-Thin", + "category": "handwriting", + "capHeight": 1020, + "ascent": 1452, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 951 + } + } + }, + "200": { + "familyName": "Playwrite CO", + "fullName": "Playwrite CO ExtraLight", + "postscriptName": "PlaywriteCO-ExtraLight", + "category": "handwriting", + "capHeight": 1020, + "ascent": 1452, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 951 + } + } + }, + "300": { + "familyName": "Playwrite CO", + "fullName": "Playwrite CO Light", + "postscriptName": "PlaywriteCO-Light", + "category": "handwriting", + "capHeight": 1020, + "ascent": 1452, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 950 + } + } + }, + "regular": { + "familyName": "Playwrite CO", + "fullName": "Playwrite CO Regular", + "postscriptName": "PlaywriteCO-Regular", + "category": "handwriting", + "capHeight": 1020, + "ascent": 1452, + "descent": -525, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 950 + } + } + } + } + }, + "playwriteCU": { + "familyName": "Playwrite CU", + "fullName": "Playwrite CU Regular", + "postscriptName": "PlaywriteCU-Regular", + "category": "handwriting", + "capHeight": 1115, + "ascent": 1569, + "descent": -623, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1019 + } + }, + "variants": { + "100": { + "familyName": "Playwrite CU", + "fullName": "Playwrite CU Thin", + "postscriptName": "PlaywriteCU-Thin", + "category": "handwriting", + "capHeight": 1115, + "ascent": 1569, + "descent": -623, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1020 + } + } + }, + "200": { + "familyName": "Playwrite CU", + "fullName": "Playwrite CU ExtraLight", + "postscriptName": "PlaywriteCU-ExtraLight", + "category": "handwriting", + "capHeight": 1115, + "ascent": 1569, + "descent": -623, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1020 + } + } + }, + "300": { + "familyName": "Playwrite CU", + "fullName": "Playwrite CU Light", + "postscriptName": "PlaywriteCU-Light", + "category": "handwriting", + "capHeight": 1115, + "ascent": 1569, + "descent": -623, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1019 + } + } + }, + "regular": { + "familyName": "Playwrite CU", + "fullName": "Playwrite CU Regular", + "postscriptName": "PlaywriteCU-Regular", + "category": "handwriting", + "capHeight": 1115, + "ascent": 1569, + "descent": -623, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 1019 + } + } + } + } + }, + "playwriteCZ": { + "familyName": "Playwrite CZ", + "fullName": "Playwrite CZ Regular", + "postscriptName": "PlaywriteCZ-Regular", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 924 + } + }, + "variants": { + "100": { + "familyName": "Playwrite CZ", + "fullName": "Playwrite CZ Thin", + "postscriptName": "PlaywriteCZ-Thin", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 925 + } + } + }, + "200": { + "familyName": "Playwrite CZ", + "fullName": "Playwrite CZ ExtraLight", + "postscriptName": "PlaywriteCZ-ExtraLight", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 925 + } + } + }, + "300": { + "familyName": "Playwrite CZ", + "fullName": "Playwrite CZ Light", + "postscriptName": "PlaywriteCZ-Light", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 924 + } + } + }, + "regular": { + "familyName": "Playwrite CZ", + "fullName": "Playwrite CZ Regular", + "postscriptName": "PlaywriteCZ-Regular", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 924 + } + } + } + } + }, + "playwriteDEGrund": { + "familyName": "Playwrite DE Grund", + "fullName": "Playwrite DE Grund Regular", + "postscriptName": "PlaywriteDEGrund-Regular", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 878 + } + }, + "variants": { + "100": { + "familyName": "Playwrite DE Grund", + "fullName": "Playwrite DE Grund Thin", + "postscriptName": "PlaywriteDEGrund-Thin", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 878 + } + } + }, + "200": { + "familyName": "Playwrite DE Grund", + "fullName": "Playwrite DE Grund ExtraLight", + "postscriptName": "PlaywriteDEGrund-ExtraLight", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 878 + } + } + }, + "300": { + "familyName": "Playwrite DE Grund", + "fullName": "Playwrite DE Grund Light", + "postscriptName": "PlaywriteDEGrund-Light", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 878 + } + } + }, + "regular": { + "familyName": "Playwrite DE Grund", + "fullName": "Playwrite DE Grund Regular", + "postscriptName": "PlaywriteDEGrund-Regular", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 878 + } + } + } + } + }, + "playwriteDELA": { + "familyName": "Playwrite DE LA", + "fullName": "Playwrite DE LA Regular", + "postscriptName": "PlaywriteDELA-Regular", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 877 + } + }, + "variants": { + "100": { + "familyName": "Playwrite DE LA", + "fullName": "Playwrite DE LA Thin", + "postscriptName": "PlaywriteDELA-Thin", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 878 + } + } + }, + "200": { + "familyName": "Playwrite DE LA", + "fullName": "Playwrite DE LA ExtraLight", + "postscriptName": "PlaywriteDELA-ExtraLight", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 878 + } + } + }, + "300": { + "familyName": "Playwrite DE LA", + "fullName": "Playwrite DE LA Light", + "postscriptName": "PlaywriteDELA-Light", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 877 + } + } + }, + "regular": { + "familyName": "Playwrite DE LA", + "fullName": "Playwrite DE LA Regular", + "postscriptName": "PlaywriteDELA-Regular", + "category": "handwriting", + "capHeight": 920, + "ascent": 1330, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 877 + } + } + } + } + }, + "playwriteDESAS": { + "familyName": "Playwrite DE SAS", + "fullName": "Playwrite DE SAS Regular", + "postscriptName": "PlaywriteDESAS-Regular", + "category": "handwriting", + "capHeight": 888, + "ascent": 1291, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 854 + } + }, + "variants": { + "100": { + "familyName": "Playwrite DE SAS", + "fullName": "Playwrite DE SAS Thin", + "postscriptName": "PlaywriteDESAS-Thin", + "category": "handwriting", + "capHeight": 888, + "ascent": 1291, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 855 + } + } + }, + "200": { + "familyName": "Playwrite DE SAS", + "fullName": "Playwrite DE SAS ExtraLight", + "postscriptName": "PlaywriteDESAS-ExtraLight", + "category": "handwriting", + "capHeight": 888, + "ascent": 1291, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 855 + } + } + }, + "300": { + "familyName": "Playwrite DE SAS", + "fullName": "Playwrite DE SAS Light", + "postscriptName": "PlaywriteDESAS-Light", + "category": "handwriting", + "capHeight": 888, + "ascent": 1291, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 854 + } + } + }, + "regular": { + "familyName": "Playwrite DE SAS", + "fullName": "Playwrite DE SAS Regular", + "postscriptName": "PlaywriteDESAS-Regular", + "category": "handwriting", + "capHeight": 888, + "ascent": 1291, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 532, + "subsets": { + "latin": { + "xWidthAvg": 532 + }, + "thai": { + "xWidthAvg": 854 + } + } + } + } + }, + "playwriteDEVA": { + "familyName": "Playwrite DE VA", + "fullName": "Playwrite DE VA Regular", + "postscriptName": "PlaywriteDEVA-Regular", + "category": "handwriting", + "capHeight": 979, + "ascent": 1402, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 920 + } + }, + "variants": { + "100": { + "familyName": "Playwrite DE VA", + "fullName": "Playwrite DE VA Thin", + "postscriptName": "PlaywriteDEVA-Thin", + "category": "handwriting", + "capHeight": 979, + "ascent": 1402, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 920 + } + } + }, + "200": { + "familyName": "Playwrite DE VA", + "fullName": "Playwrite DE VA ExtraLight", + "postscriptName": "PlaywriteDEVA-ExtraLight", + "category": "handwriting", + "capHeight": 979, + "ascent": 1402, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 920 + } + } + }, + "300": { + "familyName": "Playwrite DE VA", + "fullName": "Playwrite DE VA Light", + "postscriptName": "PlaywriteDEVA-Light", + "category": "handwriting", + "capHeight": 979, + "ascent": 1402, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 920 + } + } + }, + "regular": { + "familyName": "Playwrite DE VA", + "fullName": "Playwrite DE VA Regular", + "postscriptName": "PlaywriteDEVA-Regular", + "category": "handwriting", + "capHeight": 979, + "ascent": 1402, + "descent": -482, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 920 + } + } + } + } + }, + "playwriteDKLoopet": { + "familyName": "Playwrite DK Loopet", + "fullName": "Playwrite DK Loopet Regular", + "postscriptName": "PlaywriteDKLoopet-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 844 + } + }, + "variants": { + "100": { + "familyName": "Playwrite DK Loopet", + "fullName": "Playwrite DK Loopet Thin", + "postscriptName": "PlaywriteDKLoopet-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite DK Loopet", + "fullName": "Playwrite DK Loopet ExtraLight", + "postscriptName": "PlaywriteDKLoopet-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite DK Loopet", + "fullName": "Playwrite DK Loopet Light", + "postscriptName": "PlaywriteDKLoopet-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 844 + } + } + }, + "regular": { + "familyName": "Playwrite DK Loopet", + "fullName": "Playwrite DK Loopet Regular", + "postscriptName": "PlaywriteDKLoopet-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 844 + } + } + } + } + }, + "playwriteDKUloopet": { + "familyName": "Playwrite DK Uloopet", + "fullName": "Playwrite DK Uloopet Regular", + "postscriptName": "PlaywriteDKUloopet-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 844 + } + }, + "variants": { + "100": { + "familyName": "Playwrite DK Uloopet", + "fullName": "Playwrite DK Uloopet Thin", + "postscriptName": "PlaywriteDKUloopet-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite DK Uloopet", + "fullName": "Playwrite DK Uloopet ExtraLight", + "postscriptName": "PlaywriteDKUloopet-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite DK Uloopet", + "fullName": "Playwrite DK Uloopet Light", + "postscriptName": "PlaywriteDKUloopet-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 844 + } + } + }, + "regular": { + "familyName": "Playwrite DK Uloopet", + "fullName": "Playwrite DK Uloopet Regular", + "postscriptName": "PlaywriteDKUloopet-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 844 + } + } + } + } + }, + "playwriteES": { + "familyName": "Playwrite ES", + "fullName": "Playwrite ES Regular", + "postscriptName": "PlaywriteES-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 936 + } + }, + "variants": { + "100": { + "familyName": "Playwrite ES", + "fullName": "Playwrite ES Thin", + "postscriptName": "PlaywriteES-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite ES", + "fullName": "Playwrite ES ExtraLight", + "postscriptName": "PlaywriteES-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite ES", + "fullName": "Playwrite ES Light", + "postscriptName": "PlaywriteES-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "regular": { + "familyName": "Playwrite ES", + "fullName": "Playwrite ES Regular", + "postscriptName": "PlaywriteES-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 936 + } + } + } + } + }, + "playwriteESDeco": { + "familyName": "Playwrite ES Deco", + "fullName": "Playwrite ES Deco Regular", + "postscriptName": "PlaywriteESDeco-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + }, + "variants": { + "100": { + "familyName": "Playwrite ES Deco", + "fullName": "Playwrite ES Deco Thin", + "postscriptName": "PlaywriteESDeco-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite ES Deco", + "fullName": "Playwrite ES Deco ExtraLight", + "postscriptName": "PlaywriteESDeco-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite ES Deco", + "fullName": "Playwrite ES Deco Light", + "postscriptName": "PlaywriteESDeco-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "regular": { + "familyName": "Playwrite ES Deco", + "fullName": "Playwrite ES Deco Regular", + "postscriptName": "PlaywriteESDeco-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + } + } + }, + "playwriteFRModerne": { + "familyName": "Playwrite FR Moderne", + "fullName": "Playwrite FR Moderne Regular", + "postscriptName": "PlaywriteFRModerne-Regular", + "category": "handwriting", + "capHeight": 1100, + "ascent": 1550, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 1009 + } + }, + "variants": { + "100": { + "familyName": "Playwrite FR Moderne", + "fullName": "Playwrite FR Moderne Thin", + "postscriptName": "PlaywriteFRModerne-Thin", + "category": "handwriting", + "capHeight": 1100, + "ascent": 1550, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 1009 + } + } + }, + "200": { + "familyName": "Playwrite FR Moderne", + "fullName": "Playwrite FR Moderne ExtraLight", + "postscriptName": "PlaywriteFRModerne-ExtraLight", + "category": "handwriting", + "capHeight": 1100, + "ascent": 1550, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 1009 + } + } + }, + "300": { + "familyName": "Playwrite FR Moderne", + "fullName": "Playwrite FR Moderne Light", + "postscriptName": "PlaywriteFRModerne-Light", + "category": "handwriting", + "capHeight": 1100, + "ascent": 1550, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 1009 + } + } + }, + "regular": { + "familyName": "Playwrite FR Moderne", + "fullName": "Playwrite FR Moderne Regular", + "postscriptName": "PlaywriteFRModerne-Regular", + "category": "handwriting", + "capHeight": 1100, + "ascent": 1550, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 1009 + } + } + } + } + }, + "playwriteFRTrad": { + "familyName": "Playwrite FR Trad", + "fullName": "Playwrite FR Trad Regular", + "postscriptName": "PlaywriteFRTrad-Regular", + "category": "handwriting", + "capHeight": 1408, + "ascent": 1927, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 1233 + } + }, + "variants": { + "100": { + "familyName": "Playwrite FR Trad", + "fullName": "Playwrite FR Trad Thin", + "postscriptName": "PlaywriteFRTrad-Thin", + "category": "handwriting", + "capHeight": 1408, + "ascent": 1927, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 1233 + } + } + }, + "200": { + "familyName": "Playwrite FR Trad", + "fullName": "Playwrite FR Trad ExtraLight", + "postscriptName": "PlaywriteFRTrad-ExtraLight", + "category": "handwriting", + "capHeight": 1408, + "ascent": 1927, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 1233 + } + } + }, + "300": { + "familyName": "Playwrite FR Trad", + "fullName": "Playwrite FR Trad Light", + "postscriptName": "PlaywriteFRTrad-Light", + "category": "handwriting", + "capHeight": 1408, + "ascent": 1927, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 1233 + } + } + }, + "regular": { + "familyName": "Playwrite FR Trad", + "fullName": "Playwrite FR Trad Regular", + "postscriptName": "PlaywriteFRTrad-Regular", + "category": "handwriting", + "capHeight": 1408, + "ascent": 1927, + "descent": -925, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 545, + "subsets": { + "latin": { + "xWidthAvg": 545 + }, + "thai": { + "xWidthAvg": 1233 + } + } + } + } + }, + "playwriteGBJ": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Regular", + "postscriptName": "PlaywriteGBJ-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + }, + "variants": { + "100": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Thin", + "postscriptName": "PlaywriteGBJ-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J ExtraLight", + "postscriptName": "PlaywriteGBJ-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Light", + "postscriptName": "PlaywriteGBJ-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "regular": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Regular", + "postscriptName": "PlaywriteGBJ-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "italic": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Italic", + "postscriptName": "PlaywriteGBJ-Italic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300italic": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Light Italic", + "postscriptName": "PlaywriteGBJ-LightItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200italic": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J ExtraLight Italic", + "postscriptName": "PlaywriteGBJ-ExtraLightItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "100italic": { + "familyName": "Playwrite GB J", + "fullName": "Playwrite GB J Thin Italic", + "postscriptName": "PlaywriteGBJ-ThinItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + } + } + }, + "playwriteGBS": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Regular", + "postscriptName": "PlaywriteGBS-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 845 + } + }, + "variants": { + "100": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Thin", + "postscriptName": "PlaywriteGBS-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S ExtraLight", + "postscriptName": "PlaywriteGBS-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Light", + "postscriptName": "PlaywriteGBS-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "regular": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Regular", + "postscriptName": "PlaywriteGBS-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "italic": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Italic", + "postscriptName": "PlaywriteGBS-Italic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300italic": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Light Italic", + "postscriptName": "PlaywriteGBS-LightItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200italic": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S ExtraLight Italic", + "postscriptName": "PlaywriteGBS-ExtraLightItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "100italic": { + "familyName": "Playwrite GB S", + "fullName": "Playwrite GB S Thin Italic", + "postscriptName": "PlaywriteGBS-ThinItalic", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 845 + } + } + } + } + }, + "playwriteHR": { + "familyName": "Playwrite HR", + "fullName": "Playwrite HR Regular", + "postscriptName": "PlaywriteHR-Regular", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 847 + } + }, + "variants": { + "100": { + "familyName": "Playwrite HR", + "fullName": "Playwrite HR Thin", + "postscriptName": "PlaywriteHR-Thin", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 848 + } + } + }, + "200": { + "familyName": "Playwrite HR", + "fullName": "Playwrite HR ExtraLight", + "postscriptName": "PlaywriteHR-ExtraLight", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 848 + } + } + }, + "300": { + "familyName": "Playwrite HR", + "fullName": "Playwrite HR Light", + "postscriptName": "PlaywriteHR-Light", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 847 + } + } + }, + "regular": { + "familyName": "Playwrite HR", + "fullName": "Playwrite HR Regular", + "postscriptName": "PlaywriteHR-Regular", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 847 + } + } + } + } + }, + "playwriteHRLijeva": { + "familyName": "Playwrite HR Lijeva", + "fullName": "Playwrite HR Lijeva Regular", + "postscriptName": "PlaywriteHRLijeva-Regular", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 848 + } + }, + "variants": { + "100": { + "familyName": "Playwrite HR Lijeva", + "fullName": "Playwrite HR Lijeva Thin", + "postscriptName": "PlaywriteHRLijeva-Thin", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 848 + } + } + }, + "200": { + "familyName": "Playwrite HR Lijeva", + "fullName": "Playwrite HR Lijeva ExtraLight", + "postscriptName": "PlaywriteHRLijeva-ExtraLight", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 848 + } + } + }, + "300": { + "familyName": "Playwrite HR Lijeva", + "fullName": "Playwrite HR Lijeva Light", + "postscriptName": "PlaywriteHRLijeva-Light", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 848 + } + } + }, + "regular": { + "familyName": "Playwrite HR Lijeva", + "fullName": "Playwrite HR Lijeva Regular", + "postscriptName": "PlaywriteHRLijeva-Regular", + "category": "handwriting", + "capHeight": 879, + "ascent": 1280, + "descent": -379, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 848 + } + } + } + } + }, + "playwriteHU": { + "familyName": "Playwrite HU", + "fullName": "Playwrite HU Regular", + "postscriptName": "PlaywriteHU-Regular", + "category": "handwriting", + "capHeight": 946, + "ascent": 1362, + "descent": -448, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 897 + } + }, + "variants": { + "100": { + "familyName": "Playwrite HU", + "fullName": "Playwrite HU Thin", + "postscriptName": "PlaywriteHU-Thin", + "category": "handwriting", + "capHeight": 946, + "ascent": 1362, + "descent": -448, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 897 + } + } + }, + "200": { + "familyName": "Playwrite HU", + "fullName": "Playwrite HU ExtraLight", + "postscriptName": "PlaywriteHU-ExtraLight", + "category": "handwriting", + "capHeight": 946, + "ascent": 1362, + "descent": -448, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 897 + } + } + }, + "300": { + "familyName": "Playwrite HU", + "fullName": "Playwrite HU Light", + "postscriptName": "PlaywriteHU-Light", + "category": "handwriting", + "capHeight": 946, + "ascent": 1362, + "descent": -448, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 897 + } + } + }, + "regular": { + "familyName": "Playwrite HU", + "fullName": "Playwrite HU Regular", + "postscriptName": "PlaywriteHU-Regular", + "category": "handwriting", + "capHeight": 946, + "ascent": 1362, + "descent": -448, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 897 + } + } + } + } + }, + "playwriteID": { + "familyName": "Playwrite ID", + "fullName": "Playwrite ID Regular", + "postscriptName": "PlaywriteID-Regular", + "category": "handwriting", + "capHeight": 1438, + "ascent": 1964, + "descent": -956, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 1255 + } + }, + "variants": { + "100": { + "familyName": "Playwrite ID", + "fullName": "Playwrite ID Thin", + "postscriptName": "PlaywriteID-Thin", + "category": "handwriting", + "capHeight": 1438, + "ascent": 1964, + "descent": -956, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 1255 + } + } + }, + "200": { + "familyName": "Playwrite ID", + "fullName": "Playwrite ID ExtraLight", + "postscriptName": "PlaywriteID-ExtraLight", + "category": "handwriting", + "capHeight": 1438, + "ascent": 1964, + "descent": -956, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 1255 + } + } + }, + "300": { + "familyName": "Playwrite ID", + "fullName": "Playwrite ID Light", + "postscriptName": "PlaywriteID-Light", + "category": "handwriting", + "capHeight": 1438, + "ascent": 1964, + "descent": -956, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 1255 + } + } + }, + "regular": { + "familyName": "Playwrite ID", + "fullName": "Playwrite ID Regular", + "postscriptName": "PlaywriteID-Regular", + "category": "handwriting", + "capHeight": 1438, + "ascent": 1964, + "descent": -956, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 1255 + } + } + } + } + }, + "playwriteIE": { + "familyName": "Playwrite IE", + "fullName": "Playwrite IE Regular", + "postscriptName": "PlaywriteIE-Regular", + "category": "handwriting", + "capHeight": 981, + "ascent": 1405, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 922 + } + }, + "variants": { + "100": { + "familyName": "Playwrite IE", + "fullName": "Playwrite IE Thin", + "postscriptName": "PlaywriteIE-Thin", + "category": "handwriting", + "capHeight": 981, + "ascent": 1405, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 923 + } + } + }, + "200": { + "familyName": "Playwrite IE", + "fullName": "Playwrite IE ExtraLight", + "postscriptName": "PlaywriteIE-ExtraLight", + "category": "handwriting", + "capHeight": 981, + "ascent": 1405, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 923 + } + } + }, + "300": { + "familyName": "Playwrite IE", + "fullName": "Playwrite IE Light", + "postscriptName": "PlaywriteIE-Light", + "category": "handwriting", + "capHeight": 981, + "ascent": 1405, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 922 + } + } + }, + "regular": { + "familyName": "Playwrite IE", + "fullName": "Playwrite IE Regular", + "postscriptName": "PlaywriteIE-Regular", + "category": "handwriting", + "capHeight": 981, + "ascent": 1405, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 922 + } + } + } + } + }, + "playwriteIN": { + "familyName": "Playwrite IN", + "fullName": "Playwrite IN Regular", + "postscriptName": "PlaywriteIN-Regular", + "category": "handwriting", + "capHeight": 1023, + "ascent": 1456, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 952 + } + }, + "variants": { + "100": { + "familyName": "Playwrite IN", + "fullName": "Playwrite IN Thin", + "postscriptName": "PlaywriteIN-Thin", + "category": "handwriting", + "capHeight": 1023, + "ascent": 1456, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 953 + } + } + }, + "200": { + "familyName": "Playwrite IN", + "fullName": "Playwrite IN ExtraLight", + "postscriptName": "PlaywriteIN-ExtraLight", + "category": "handwriting", + "capHeight": 1023, + "ascent": 1456, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 953 + } + } + }, + "300": { + "familyName": "Playwrite IN", + "fullName": "Playwrite IN Light", + "postscriptName": "PlaywriteIN-Light", + "category": "handwriting", + "capHeight": 1023, + "ascent": 1456, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 952 + } + } + }, + "regular": { + "familyName": "Playwrite IN", + "fullName": "Playwrite IN Regular", + "postscriptName": "PlaywriteIN-Regular", + "category": "handwriting", + "capHeight": 1023, + "ascent": 1456, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 952 + } + } + } + } + }, + "playwriteIS": { + "familyName": "Playwrite IS", + "fullName": "Playwrite IS Regular", + "postscriptName": "PlaywriteIS-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 844 + } + }, + "variants": { + "100": { + "familyName": "Playwrite IS", + "fullName": "Playwrite IS Thin", + "postscriptName": "PlaywriteIS-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite IS", + "fullName": "Playwrite IS ExtraLight", + "postscriptName": "PlaywriteIS-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite IS", + "fullName": "Playwrite IS Light", + "postscriptName": "PlaywriteIS-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 844 + } + } + }, + "regular": { + "familyName": "Playwrite IS", + "fullName": "Playwrite IS Regular", + "postscriptName": "PlaywriteIS-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 844 + } + } + } + } + }, + "playwriteITModerna": { + "familyName": "Playwrite IT Moderna", + "fullName": "Playwrite IT Moderna Regular", + "postscriptName": "PlaywriteITModerna-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + }, + "variants": { + "100": { + "familyName": "Playwrite IT Moderna", + "fullName": "Playwrite IT Moderna Thin", + "postscriptName": "PlaywriteITModerna-Thin", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "200": { + "familyName": "Playwrite IT Moderna", + "fullName": "Playwrite IT Moderna ExtraLight", + "postscriptName": "PlaywriteITModerna-ExtraLight", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "300": { + "familyName": "Playwrite IT Moderna", + "fullName": "Playwrite IT Moderna Light", + "postscriptName": "PlaywriteITModerna-Light", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + }, + "regular": { + "familyName": "Playwrite IT Moderna", + "fullName": "Playwrite IT Moderna Regular", + "postscriptName": "PlaywriteITModerna-Regular", + "category": "handwriting", + "capHeight": 875, + "ascent": 1275, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 845 + } + } + } + } + }, + "playwriteITTrad": { + "familyName": "Playwrite IT Trad", + "fullName": "Playwrite IT Trad Regular", + "postscriptName": "PlaywriteITTrad-Regular", + "category": "handwriting", + "capHeight": 959, + "ascent": 1378, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 906 + } + }, + "variants": { + "100": { + "familyName": "Playwrite IT Trad", + "fullName": "Playwrite IT Trad Thin", + "postscriptName": "PlaywriteITTrad-Thin", + "category": "handwriting", + "capHeight": 959, + "ascent": 1378, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 906 + } + } + }, + "200": { + "familyName": "Playwrite IT Trad", + "fullName": "Playwrite IT Trad ExtraLight", + "postscriptName": "PlaywriteITTrad-ExtraLight", + "category": "handwriting", + "capHeight": 959, + "ascent": 1378, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 906 + } + } + }, + "300": { + "familyName": "Playwrite IT Trad", + "fullName": "Playwrite IT Trad Light", + "postscriptName": "PlaywriteITTrad-Light", + "category": "handwriting", + "capHeight": 959, + "ascent": 1378, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 906 + } + } + }, + "regular": { + "familyName": "Playwrite IT Trad", + "fullName": "Playwrite IT Trad Regular", + "postscriptName": "PlaywriteITTrad-Regular", + "category": "handwriting", + "capHeight": 959, + "ascent": 1378, + "descent": -462, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 906 + } + } + } + } + }, + "playwriteMX": { + "familyName": "Playwrite MX", + "fullName": "Playwrite MX Regular", + "postscriptName": "PlaywriteMX-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite MX", + "fullName": "Playwrite MX Thin", + "postscriptName": "PlaywriteMX-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite MX", + "fullName": "Playwrite MX ExtraLight", + "postscriptName": "PlaywriteMX-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite MX", + "fullName": "Playwrite MX Light", + "postscriptName": "PlaywriteMX-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite MX", + "fullName": "Playwrite MX Regular", + "postscriptName": "PlaywriteMX-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteNGModern": { + "familyName": "Playwrite NG Modern", + "fullName": "Playwrite NG Modern Regular", + "postscriptName": "PlaywriteNGModern-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + }, + "variants": { + "100": { + "familyName": "Playwrite NG Modern", + "fullName": "Playwrite NG Modern Thin", + "postscriptName": "PlaywriteNGModern-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite NG Modern", + "fullName": "Playwrite NG Modern ExtraLight", + "postscriptName": "PlaywriteNGModern-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite NG Modern", + "fullName": "Playwrite NG Modern Light", + "postscriptName": "PlaywriteNGModern-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "regular": { + "familyName": "Playwrite NG Modern", + "fullName": "Playwrite NG Modern Regular", + "postscriptName": "PlaywriteNGModern-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 936 + } + } + } + } + }, + "playwriteNL": { + "familyName": "Playwrite NL", + "fullName": "Playwrite NL Regular", + "postscriptName": "PlaywriteNL-Regular", + "category": "handwriting", + "capHeight": 1273, + "ascent": 1762, + "descent": -786, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 1135 + } + }, + "variants": { + "100": { + "familyName": "Playwrite NL", + "fullName": "Playwrite NL Thin", + "postscriptName": "PlaywriteNL-Thin", + "category": "handwriting", + "capHeight": 1273, + "ascent": 1762, + "descent": -786, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "200": { + "familyName": "Playwrite NL", + "fullName": "Playwrite NL ExtraLight", + "postscriptName": "PlaywriteNL-ExtraLight", + "category": "handwriting", + "capHeight": 1273, + "ascent": 1762, + "descent": -786, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "300": { + "familyName": "Playwrite NL", + "fullName": "Playwrite NL Light", + "postscriptName": "PlaywriteNL-Light", + "category": "handwriting", + "capHeight": 1273, + "ascent": 1762, + "descent": -786, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 1135 + } + } + }, + "regular": { + "familyName": "Playwrite NL", + "fullName": "Playwrite NL Regular", + "postscriptName": "PlaywriteNL-Regular", + "category": "handwriting", + "capHeight": 1273, + "ascent": 1762, + "descent": -786, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 537, + "subsets": { + "latin": { + "xWidthAvg": 537 + }, + "thai": { + "xWidthAvg": 1135 + } + } + } + } + }, + "playwriteNO": { + "familyName": "Playwrite NO", + "fullName": "Playwrite NO Regular", + "postscriptName": "PlaywriteNO-Regular", + "category": "handwriting", + "capHeight": 970, + "ascent": 1391, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 913 + } + }, + "variants": { + "100": { + "familyName": "Playwrite NO", + "fullName": "Playwrite NO Thin", + "postscriptName": "PlaywriteNO-Thin", + "category": "handwriting", + "capHeight": 970, + "ascent": 1391, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 914 + } + } + }, + "200": { + "familyName": "Playwrite NO", + "fullName": "Playwrite NO ExtraLight", + "postscriptName": "PlaywriteNO-ExtraLight", + "category": "handwriting", + "capHeight": 970, + "ascent": 1391, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 914 + } + } + }, + "300": { + "familyName": "Playwrite NO", + "fullName": "Playwrite NO Light", + "postscriptName": "PlaywriteNO-Light", + "category": "handwriting", + "capHeight": 970, + "ascent": 1391, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 913 + } + } + }, + "regular": { + "familyName": "Playwrite NO", + "fullName": "Playwrite NO Regular", + "postscriptName": "PlaywriteNO-Regular", + "category": "handwriting", + "capHeight": 970, + "ascent": 1391, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 913 + } + } + } + } + }, + "playwriteNZ": { + "familyName": "Playwrite NZ", + "fullName": "Playwrite NZ Regular", + "postscriptName": "PlaywriteNZ-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite NZ", + "fullName": "Playwrite NZ Thin", + "postscriptName": "PlaywriteNZ-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite NZ", + "fullName": "Playwrite NZ ExtraLight", + "postscriptName": "PlaywriteNZ-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite NZ", + "fullName": "Playwrite NZ Light", + "postscriptName": "PlaywriteNZ-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite NZ", + "fullName": "Playwrite NZ Regular", + "postscriptName": "PlaywriteNZ-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwritePE": { + "familyName": "Playwrite PE", + "fullName": "Playwrite PE Regular", + "postscriptName": "PlaywritePE-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + }, + "variants": { + "100": { + "familyName": "Playwrite PE", + "fullName": "Playwrite PE Thin", + "postscriptName": "PlaywritePE-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite PE", + "fullName": "Playwrite PE ExtraLight", + "postscriptName": "PlaywritePE-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite PE", + "fullName": "Playwrite PE Light", + "postscriptName": "PlaywritePE-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "regular": { + "familyName": "Playwrite PE", + "fullName": "Playwrite PE Regular", + "postscriptName": "PlaywritePE-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 936 + } + } + } + } + }, + "playwritePL": { + "familyName": "Playwrite PL", + "fullName": "Playwrite PL Regular", + "postscriptName": "PlaywritePL-Regular", + "category": "handwriting", + "capHeight": 986, + "ascent": 1411, + "descent": -490, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 926 + } + }, + "variants": { + "100": { + "familyName": "Playwrite PL", + "fullName": "Playwrite PL Thin", + "postscriptName": "PlaywritePL-Thin", + "category": "handwriting", + "capHeight": 986, + "ascent": 1411, + "descent": -490, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 926 + } + } + }, + "200": { + "familyName": "Playwrite PL", + "fullName": "Playwrite PL ExtraLight", + "postscriptName": "PlaywritePL-ExtraLight", + "category": "handwriting", + "capHeight": 986, + "ascent": 1411, + "descent": -490, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 926 + } + } + }, + "300": { + "familyName": "Playwrite PL", + "fullName": "Playwrite PL Light", + "postscriptName": "PlaywritePL-Light", + "category": "handwriting", + "capHeight": 986, + "ascent": 1411, + "descent": -490, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 926 + } + } + }, + "regular": { + "familyName": "Playwrite PL", + "fullName": "Playwrite PL Regular", + "postscriptName": "PlaywritePL-Regular", + "category": "handwriting", + "capHeight": 986, + "ascent": 1411, + "descent": -490, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 926 + } + } + } + } + }, + "playwritePT": { + "familyName": "Playwrite PT", + "fullName": "Playwrite PT Regular", + "postscriptName": "PlaywritePT-Regular", + "category": "handwriting", + "capHeight": 1081, + "ascent": 1527, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 995 + } + }, + "variants": { + "100": { + "familyName": "Playwrite PT", + "fullName": "Playwrite PT Thin", + "postscriptName": "PlaywritePT-Thin", + "category": "handwriting", + "capHeight": 1081, + "ascent": 1527, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 995 + } + } + }, + "200": { + "familyName": "Playwrite PT", + "fullName": "Playwrite PT ExtraLight", + "postscriptName": "PlaywritePT-ExtraLight", + "category": "handwriting", + "capHeight": 1081, + "ascent": 1527, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 995 + } + } + }, + "300": { + "familyName": "Playwrite PT", + "fullName": "Playwrite PT Light", + "postscriptName": "PlaywritePT-Light", + "category": "handwriting", + "capHeight": 1081, + "ascent": 1527, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 995 + } + } + }, + "regular": { + "familyName": "Playwrite PT", + "fullName": "Playwrite PT Regular", + "postscriptName": "PlaywritePT-Regular", + "category": "handwriting", + "capHeight": 1081, + "ascent": 1527, + "descent": -588, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 995 + } + } + } + } + }, + "playwriteRO": { + "familyName": "Playwrite RO", + "fullName": "Playwrite RO Regular", + "postscriptName": "PlaywriteRO-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite RO", + "fullName": "Playwrite RO Thin", + "postscriptName": "PlaywriteRO-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite RO", + "fullName": "Playwrite RO ExtraLight", + "postscriptName": "PlaywriteRO-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite RO", + "fullName": "Playwrite RO Light", + "postscriptName": "PlaywriteRO-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite RO", + "fullName": "Playwrite RO Regular", + "postscriptName": "PlaywriteRO-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteSK": { + "familyName": "Playwrite SK", + "fullName": "Playwrite SK Regular", + "postscriptName": "PlaywriteSK-Regular", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 924 + } + }, + "variants": { + "100": { + "familyName": "Playwrite SK", + "fullName": "Playwrite SK Thin", + "postscriptName": "PlaywriteSK-Thin", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 925 + } + } + }, + "200": { + "familyName": "Playwrite SK", + "fullName": "Playwrite SK ExtraLight", + "postscriptName": "PlaywriteSK-ExtraLight", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 925 + } + } + }, + "300": { + "familyName": "Playwrite SK", + "fullName": "Playwrite SK Light", + "postscriptName": "PlaywriteSK-Light", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 924 + } + } + }, + "regular": { + "familyName": "Playwrite SK", + "fullName": "Playwrite SK Regular", + "postscriptName": "PlaywriteSK-Regular", + "category": "handwriting", + "capHeight": 985, + "ascent": 1410, + "descent": -489, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 924 + } + } + } + } + }, + "playwriteTZ": { + "familyName": "Playwrite TZ", + "fullName": "Playwrite TZ Regular", + "postscriptName": "PlaywriteTZ-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite TZ", + "fullName": "Playwrite TZ Thin", + "postscriptName": "PlaywriteTZ-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite TZ", + "fullName": "Playwrite TZ ExtraLight", + "postscriptName": "PlaywriteTZ-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite TZ", + "fullName": "Playwrite TZ Light", + "postscriptName": "PlaywriteTZ-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite TZ", + "fullName": "Playwrite TZ Regular", + "postscriptName": "PlaywriteTZ-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteUSModern": { + "familyName": "Playwrite US Modern", + "fullName": "Playwrite US Modern Regular", + "postscriptName": "PlaywriteUSModern-Regular", + "category": "handwriting", + "capHeight": 938, + "ascent": 1352, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 891 + } + }, + "variants": { + "100": { + "familyName": "Playwrite US Modern", + "fullName": "Playwrite US Modern Thin", + "postscriptName": "PlaywriteUSModern-Thin", + "category": "handwriting", + "capHeight": 938, + "ascent": 1352, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 891 + } + } + }, + "200": { + "familyName": "Playwrite US Modern", + "fullName": "Playwrite US Modern ExtraLight", + "postscriptName": "PlaywriteUSModern-ExtraLight", + "category": "handwriting", + "capHeight": 938, + "ascent": 1352, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 891 + } + } + }, + "300": { + "familyName": "Playwrite US Modern", + "fullName": "Playwrite US Modern Light", + "postscriptName": "PlaywriteUSModern-Light", + "category": "handwriting", + "capHeight": 938, + "ascent": 1352, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 891 + } + } + }, + "regular": { + "familyName": "Playwrite US Modern", + "fullName": "Playwrite US Modern Regular", + "postscriptName": "PlaywriteUSModern-Regular", + "category": "handwriting", + "capHeight": 938, + "ascent": 1352, + "descent": -440, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 891 + } + } + } + } + }, + "playwriteUSTrad": { + "familyName": "Playwrite US Trad", + "fullName": "Playwrite US Trad Regular", + "postscriptName": "PlaywriteUSTrad-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 935 + } + }, + "variants": { + "100": { + "familyName": "Playwrite US Trad", + "fullName": "Playwrite US Trad Thin", + "postscriptName": "PlaywriteUSTrad-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite US Trad", + "fullName": "Playwrite US Trad ExtraLight", + "postscriptName": "PlaywriteUSTrad-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite US Trad", + "fullName": "Playwrite US Trad Light", + "postscriptName": "PlaywriteUSTrad-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 935 + } + } + }, + "regular": { + "familyName": "Playwrite US Trad", + "fullName": "Playwrite US Trad Regular", + "postscriptName": "PlaywriteUSTrad-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 527, + "subsets": { + "latin": { + "xWidthAvg": 527 + }, + "thai": { + "xWidthAvg": 935 + } + } + } + } + }, + "playwriteVN": { + "familyName": "Playwrite VN", + "fullName": "Playwrite VN Regular", + "postscriptName": "PlaywriteVN-Regular", + "category": "handwriting", + "capHeight": 1257, + "ascent": 1743, + "descent": -769, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 1123 + } + }, + "variants": { + "100": { + "familyName": "Playwrite VN", + "fullName": "Playwrite VN Thin", + "postscriptName": "PlaywriteVN-Thin", + "category": "handwriting", + "capHeight": 1257, + "ascent": 1743, + "descent": -769, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 1123 + } + } + }, + "200": { + "familyName": "Playwrite VN", + "fullName": "Playwrite VN ExtraLight", + "postscriptName": "PlaywriteVN-ExtraLight", + "category": "handwriting", + "capHeight": 1257, + "ascent": 1743, + "descent": -769, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 1123 + } + } + }, + "300": { + "familyName": "Playwrite VN", + "fullName": "Playwrite VN Light", + "postscriptName": "PlaywriteVN-Light", + "category": "handwriting", + "capHeight": 1257, + "ascent": 1743, + "descent": -769, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 1123 + } + } + }, + "regular": { + "familyName": "Playwrite VN", + "fullName": "Playwrite VN Regular", + "postscriptName": "PlaywriteVN-Regular", + "category": "handwriting", + "capHeight": 1257, + "ascent": 1743, + "descent": -769, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 1123 + } + } + } + } + }, + "playwriteZA": { + "familyName": "Playwrite ZA", + "fullName": "Playwrite ZA Regular", + "postscriptName": "PlaywriteZA-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 936 + } + }, + "variants": { + "100": { + "familyName": "Playwrite ZA", + "fullName": "Playwrite ZA Thin", + "postscriptName": "PlaywriteZA-Thin", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "200": { + "familyName": "Playwrite ZA", + "fullName": "Playwrite ZA ExtraLight", + "postscriptName": "PlaywriteZA-ExtraLight", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "300": { + "familyName": "Playwrite ZA", + "fullName": "Playwrite ZA Light", + "postscriptName": "PlaywriteZA-Light", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 936 + } + } + }, + "regular": { + "familyName": "Playwrite ZA", + "fullName": "Playwrite ZA Regular", + "postscriptName": "PlaywriteZA-Regular", + "category": "handwriting", + "capHeight": 1000, + "ascent": 1428, + "descent": -504, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 936 + } + } + } + } + }, + "plusJakartaSans": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Regular", + "postscriptName": "PlusJakartaSans-Regular", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "200": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans ExtraLight", + "postscriptName": "PlusJakartaSans-ExtraLight", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "300": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Light", + "postscriptName": "PlusJakartaSans-Light", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "500": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Medium", + "postscriptName": "PlusJakartaSans-Medium", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans SemiBold", + "postscriptName": "PlusJakartaSans-SemiBold", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "700": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Bold", + "postscriptName": "PlusJakartaSans-Bold", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "800": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans ExtraBold", + "postscriptName": "PlusJakartaSans-ExtraBold", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "regular": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Regular", + "postscriptName": "PlusJakartaSans-Regular", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Italic", + "postscriptName": "PlusJakartaSans-Italic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 745 + } + } + }, + "800italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans ExtraBold Italic", + "postscriptName": "PlusJakartaSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 744 + } + } + }, + "700italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Bold Italic", + "postscriptName": "PlusJakartaSans-BoldItalic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 544, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 744 + } + } + }, + "600italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans SemiBold Italic", + "postscriptName": "PlusJakartaSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 541, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 745 + } + } + }, + "500italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Medium Italic", + "postscriptName": "PlusJakartaSans-MediumItalic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 539, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 745 + } + } + }, + "300italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans Light Italic", + "postscriptName": "PlusJakartaSans-LightItalic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 531, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 745 + } + } + }, + "200italic": { + "familyName": "Plus Jakarta Sans", + "fullName": "Plus Jakarta Sans ExtraLight Italic", + "postscriptName": "PlusJakartaSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 745, + "ascent": 1038, + "descent": -222, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 745 + } + } + } + } + }, + "podkova": { + "familyName": "Podkova", + "fullName": "Podkova Regular", + "postscriptName": "Podkova-Regular", + "category": "serif", + "capHeight": 589, + "ascent": 859, + "descent": -249, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 429, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 965 + } + }, + "variants": { + "500": { + "familyName": "Podkova", + "fullName": "Podkova Medium", + "postscriptName": "Podkova-Medium", + "category": "serif", + "capHeight": 589, + "ascent": 859, + "descent": -249, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 429, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 966 + } + } + }, + "600": { + "familyName": "Podkova", + "fullName": "Podkova SemiBold", + "postscriptName": "Podkova-SemiBold", + "category": "serif", + "capHeight": 589, + "ascent": 859, + "descent": -249, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 429, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 966 + } + } + }, + "700": { + "familyName": "Podkova", + "fullName": "Podkova Bold", + "postscriptName": "Podkova-Bold", + "category": "serif", + "capHeight": 589, + "ascent": 859, + "descent": -249, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 429, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 967 + } + } + }, + "800": { + "familyName": "Podkova", + "fullName": "Podkova ExtraBold", + "postscriptName": "Podkova-ExtraBold", + "category": "serif", + "capHeight": 589, + "ascent": 859, + "descent": -249, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 429, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 968 + } + } + }, + "regular": { + "familyName": "Podkova", + "fullName": "Podkova Regular", + "postscriptName": "Podkova-Regular", + "category": "serif", + "capHeight": 589, + "ascent": 859, + "descent": -249, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 429, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 965 + } + } + } + } + }, + "poetsenOne": { + "familyName": "Poetsen One", + "fullName": "PoetsenOne", + "postscriptName": "PoetsenOne-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 648 + } + }, + "variants": { + "regular": { + "familyName": "Poetsen One", + "fullName": "PoetsenOne", + "postscriptName": "PoetsenOne-Regular", + "category": "display", + "capHeight": 710, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 648 + } + } + } + } + }, + "poiretOne": { + "familyName": "Poiret One", + "fullName": "Poiret One", + "postscriptName": "PoiretOne-Regular", + "category": "display", + "capHeight": 750, + "ascent": 962, + "descent": -208, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 470 + } + }, + "variants": { + "regular": { + "familyName": "Poiret One", + "fullName": "Poiret One", + "postscriptName": "PoiretOne-Regular", + "category": "display", + "capHeight": 750, + "ascent": 962, + "descent": -208, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 470 + } + } + } + } + }, + "pollerOne": { + "familyName": "Poller One", + "fullName": "Poller One", + "postscriptName": "PollerOne-Regular", + "category": "display", + "capHeight": 1486, + "ascent": 1920, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 991, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 741 + } + }, + "variants": { + "regular": { + "familyName": "Poller One", + "fullName": "Poller One", + "postscriptName": "PollerOne-Regular", + "category": "display", + "capHeight": 1486, + "ascent": 1920, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 991, + "xWidthAvg": 1272, + "subsets": { + "latin": { + "xWidthAvg": 1272 + }, + "thai": { + "xWidthAvg": 741 + } + } + } + } + }, + "poltawskiNowy": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Regular", + "postscriptName": "PoltawskiNowy-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Medium", + "postscriptName": "PoltawskiNowy-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy SemiBold", + "postscriptName": "PoltawskiNowy-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Bold", + "postscriptName": "PoltawskiNowy-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Regular", + "postscriptName": "PoltawskiNowy-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Italic", + "postscriptName": "PoltawskiNowy-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Bold Italic", + "postscriptName": "PoltawskiNowy-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy SemiBold Italic", + "postscriptName": "PoltawskiNowy-SemiBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 455, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Poltawski Nowy", + "fullName": "Poltawski Nowy Medium Italic", + "postscriptName": "PoltawskiNowy-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 448, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "poly": { + "familyName": "Poly", + "fullName": "Poly-Regular", + "postscriptName": "Poly-Regular", + "category": "serif", + "capHeight": 693, + "ascent": 964, + "descent": -224, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 520 + } + }, + "variants": { + "regular": { + "familyName": "Poly", + "fullName": "Poly-Regular", + "postscriptName": "Poly-Regular", + "category": "serif", + "capHeight": 693, + "ascent": 964, + "descent": -224, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 520 + } + } + }, + "italic": { + "familyName": "Poly", + "fullName": "Poly-Italic", + "postscriptName": "Poly-Italic", + "category": "serif", + "capHeight": 693, + "ascent": 964, + "descent": -224, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 80, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 520 + } + } + } + } + }, + "pompiere": { + "familyName": "Pompiere", + "fullName": "Pompiere ", + "postscriptName": "Pompiere-Regular", + "category": "display", + "capHeight": 1315, + "ascent": 1918, + "descent": -543, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 616, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1146 + } + }, + "variants": { + "regular": { + "familyName": "Pompiere", + "fullName": "Pompiere ", + "postscriptName": "Pompiere-Regular", + "category": "display", + "capHeight": 1315, + "ascent": 1918, + "descent": -543, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 616, + "xWidthAvg": 618, + "subsets": { + "latin": { + "xWidthAvg": 618 + }, + "thai": { + "xWidthAvg": 1146 + } + } + } + } + }, + "pontanoSans": { + "familyName": "Pontano Sans", + "fullName": "Pontano Sans Regular", + "postscriptName": "PontanoSans-Regular", + "category": "sans-serif", + "capHeight": 1464, + "ascent": 2025, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 860, + "subsets": { + "latin": { + "xWidthAvg": 860 + }, + "thai": { + "xWidthAvg": 1241 + } + }, + "variants": { + "300": { + "familyName": "Pontano Sans", + "fullName": "Pontano Sans Light", + "postscriptName": "PontanoSans-Light", + "category": "sans-serif", + "capHeight": 1464, + "ascent": 2025, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 1151 + } + } + }, + "500": { + "familyName": "Pontano Sans", + "fullName": "Pontano Sans Medium", + "postscriptName": "PontanoSans-Medium", + "category": "sans-serif", + "capHeight": 1464, + "ascent": 2025, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 1271 + } + } + }, + "600": { + "familyName": "Pontano Sans", + "fullName": "Pontano Sans SemiBold", + "postscriptName": "PontanoSans-SemiBold", + "category": "sans-serif", + "capHeight": 1464, + "ascent": 2025, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 876, + "subsets": { + "latin": { + "xWidthAvg": 876 + }, + "thai": { + "xWidthAvg": 1301 + } + } + }, + "700": { + "familyName": "Pontano Sans", + "fullName": "Pontano Sans Bold", + "postscriptName": "PontanoSans-Bold", + "category": "sans-serif", + "capHeight": 1464, + "ascent": 2025, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 885, + "subsets": { + "latin": { + "xWidthAvg": 885 + }, + "thai": { + "xWidthAvg": 1331 + } + } + }, + "regular": { + "familyName": "Pontano Sans", + "fullName": "Pontano Sans Regular", + "postscriptName": "PontanoSans-Regular", + "category": "sans-serif", + "capHeight": 1464, + "ascent": 2025, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1023, + "xWidthAvg": 860, + "subsets": { + "latin": { + "xWidthAvg": 860 + }, + "thai": { + "xWidthAvg": 1241 + } + } + } + } + }, + "poorStory": { + "familyName": "Poor Story", + "fullName": "Poor Story Regular", + "postscriptName": "PoorStory-Regular", + "category": "display", + "capHeight": 641, + "ascent": 819, + "descent": -205, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 389, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Poor Story", + "fullName": "Poor Story Regular", + "postscriptName": "PoorStory-Regular", + "category": "display", + "capHeight": 641, + "ascent": 819, + "descent": -205, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 389, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "poppins": { + "familyName": "Poppins", + "fullName": "Poppins Regular", + "postscriptName": "Poppins-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Poppins", + "fullName": "Poppins Thin", + "postscriptName": "Poppins-Thin", + "category": "sans-serif", + "capHeight": 702, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Poppins", + "fullName": "Poppins ExtraLight", + "postscriptName": "Poppins-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Poppins", + "fullName": "Poppins Light", + "postscriptName": "Poppins-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Poppins", + "fullName": "Poppins Medium", + "postscriptName": "Poppins-Medium", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Poppins", + "fullName": "Poppins SemiBold", + "postscriptName": "Poppins-SemiBold", + "category": "sans-serif", + "capHeight": 701, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Poppins", + "fullName": "Poppins Bold", + "postscriptName": "Poppins-Bold", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Poppins", + "fullName": "Poppins ExtraBold", + "postscriptName": "Poppins-ExtraBold", + "category": "sans-serif", + "capHeight": 709, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Poppins", + "fullName": "Poppins Black", + "postscriptName": "Poppins-Black", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 564, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Poppins", + "fullName": "Poppins Regular", + "postscriptName": "Poppins-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Poppins", + "fullName": "Poppins Italic", + "postscriptName": "Poppins-Italic", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 548, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Poppins", + "fullName": "Poppins Black Italic", + "postscriptName": "Poppins-BlackItalic", + "category": "sans-serif", + "capHeight": 713, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 564, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Poppins", + "fullName": "Poppins ExtraBold Italic", + "postscriptName": "Poppins-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 709, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 561, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Poppins", + "fullName": "Poppins Bold Italic", + "postscriptName": "Poppins-BoldItalic", + "category": "sans-serif", + "capHeight": 705, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Poppins", + "fullName": "Poppins SemiBold Italic", + "postscriptName": "Poppins-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 701, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 554, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Poppins", + "fullName": "Poppins Medium Italic", + "postscriptName": "Poppins-MediumItalic", + "category": "sans-serif", + "capHeight": 697, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 551, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Poppins", + "fullName": "Poppins Light Italic", + "postscriptName": "Poppins-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Poppins", + "fullName": "Poppins ExtraLight Italic", + "postscriptName": "Poppins-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 542, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Poppins", + "fullName": "Poppins Thin Italic", + "postscriptName": "Poppins-ThinItalic", + "category": "sans-serif", + "capHeight": 702, + "ascent": 1050, + "descent": -350, + "lineGap": 100, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "portLligatSans": { + "familyName": "Port Lligat Sans", + "fullName": "Port Lligat Sans", + "postscriptName": "PortLligatSans-Regular", + "category": "sans-serif", + "capHeight": 125, + "ascent": 860, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 178, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "regular": { + "familyName": "Port Lligat Sans", + "fullName": "Port Lligat Sans", + "postscriptName": "PortLligatSans-Regular", + "category": "sans-serif", + "capHeight": 125, + "ascent": 860, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 178, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "portLligatSlab": { + "familyName": "Port Lligat Slab", + "fullName": "Port Lligat Slab", + "postscriptName": "PortLligatSlab-Regular", + "category": "serif", + "capHeight": 99, + "ascent": 860, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 155, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "regular": { + "familyName": "Port Lligat Slab", + "fullName": "Port Lligat Slab", + "postscriptName": "PortLligatSlab-Regular", + "category": "serif", + "capHeight": 99, + "ascent": 860, + "descent": -211, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 155, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "pottaOne": { + "familyName": "Potta One", + "fullName": "Potta One Regular", + "postscriptName": "PottaOne-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 565, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Potta One", + "fullName": "Potta One Regular", + "postscriptName": "PottaOne-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 565, + "xWidthAvg": 559, + "subsets": { + "latin": { + "xWidthAvg": 559 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "pragatiNarrow": { + "familyName": "Pragati Narrow", + "fullName": "Pragati Narrow", + "postscriptName": "PragatiNarrow-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1158, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 336, + "subsets": { + "latin": { + "xWidthAvg": 336 + }, + "thai": { + "xWidthAvg": 460 + } + }, + "variants": { + "700": { + "familyName": "Pragati Narrow", + "fullName": "Pragati Narrow Bold", + "postscriptName": "PragatiNarrow-Bold", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1158, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 460 + } + } + }, + "regular": { + "familyName": "Pragati Narrow", + "fullName": "Pragati Narrow", + "postscriptName": "PragatiNarrow-Regular", + "category": "sans-serif", + "capHeight": 630, + "ascent": 1158, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 336, + "subsets": { + "latin": { + "xWidthAvg": 336 + }, + "thai": { + "xWidthAvg": 460 + } + } + } + } + }, + "praise": { + "familyName": "Praise", + "fullName": "Praise Regular", + "postscriptName": "Praise-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "regular": { + "familyName": "Praise", + "fullName": "Praise Regular", + "postscriptName": "Praise-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 850, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 327, + "subsets": { + "latin": { + "xWidthAvg": 327 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "prata": { + "familyName": "Prata", + "fullName": "Prata Regular", + "postscriptName": "Prata-Regular", + "category": "serif", + "capHeight": 800, + "ascent": 993, + "descent": -362, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 252 + } + }, + "variants": { + "regular": { + "familyName": "Prata", + "fullName": "Prata Regular", + "postscriptName": "Prata-Regular", + "category": "serif", + "capHeight": 800, + "ascent": 993, + "descent": -362, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 252 + } + } + } + } + }, + "preahvihear": { + "familyName": "Preahvihear", + "fullName": "Preahvihear Regular", + "postscriptName": "Preahvihear-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1067, + "subsets": { + "latin": { + "xWidthAvg": 1067 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Preahvihear", + "fullName": "Preahvihear Regular", + "postscriptName": "Preahvihear-Regular", + "category": "sans-serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1067, + "subsets": { + "latin": { + "xWidthAvg": 1067 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "pressStart2P": { + "familyName": "Press Start 2P", + "fullName": "Press Start 2P Regular", + "postscriptName": "PressStart2P-Regular", + "category": "display", + "capHeight": 1000, + "ascent": 1000, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 750, + "xWidthAvg": 1000, + "subsets": { + "latin": { + "xWidthAvg": 1000 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Press Start 2P", + "fullName": "Press Start 2P Regular", + "postscriptName": "PressStart2P-Regular", + "category": "display", + "capHeight": 1000, + "ascent": 1000, + "descent": 0, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 750, + "xWidthAvg": 1000, + "subsets": { + "latin": { + "xWidthAvg": 1000 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "pridi": { + "familyName": "Pridi", + "fullName": "Pridi Regular", + "postscriptName": "Pridi-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1100, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 520 + } + }, + "variants": { + "200": { + "familyName": "Pridi", + "fullName": "Pridi ExtraLight", + "postscriptName": "Pridi-ExtraLight", + "category": "serif", + "capHeight": 714, + "ascent": 1150, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 510 + } + } + }, + "300": { + "familyName": "Pridi", + "fullName": "Pridi Light", + "postscriptName": "Pridi-Light", + "category": "serif", + "capHeight": 714, + "ascent": 1100, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 515 + } + } + }, + "500": { + "familyName": "Pridi", + "fullName": "Pridi Medium", + "postscriptName": "Pridi-Medium", + "category": "serif", + "capHeight": 714, + "ascent": 1100, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 526 + } + } + }, + "600": { + "familyName": "Pridi", + "fullName": "Pridi SemiBold", + "postscriptName": "Pridi-SemiBold", + "category": "serif", + "capHeight": 714, + "ascent": 1100, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "700": { + "familyName": "Pridi", + "fullName": "Pridi Bold", + "postscriptName": "Pridi-Bold", + "category": "serif", + "capHeight": 714, + "ascent": 1100, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 534 + } + } + }, + "regular": { + "familyName": "Pridi", + "fullName": "Pridi Regular", + "postscriptName": "Pridi-Regular", + "category": "serif", + "capHeight": 714, + "ascent": 1100, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 520 + } + } + } + } + }, + "princessSofia": { + "familyName": "Princess Sofia", + "fullName": "Princess Sofia", + "postscriptName": "PrincessSofia", + "category": "handwriting", + "capHeight": 858, + "ascent": 1010, + "descent": -574, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 670, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 307 + } + }, + "variants": { + "regular": { + "familyName": "Princess Sofia", + "fullName": "Princess Sofia", + "postscriptName": "PrincessSofia", + "category": "handwriting", + "capHeight": 858, + "ascent": 1010, + "descent": -574, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 670, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 307 + } + } + } + } + }, + "prociono": { + "familyName": "Prociono", + "fullName": "Prociono", + "postscriptName": "Prociono-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1008, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 203, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Prociono", + "fullName": "Prociono", + "postscriptName": "Prociono-Regular", + "category": "serif", + "capHeight": 738, + "ascent": 1008, + "descent": -212, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 203, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "prompt": { + "familyName": "Prompt", + "fullName": "Prompt-Regular", + "postscriptName": "Prompt-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 568 + } + }, + "variants": { + "100": { + "familyName": "Prompt", + "fullName": "Prompt-Thin", + "postscriptName": "Prompt-Thin", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 547 + } + } + }, + "200": { + "familyName": "Prompt", + "fullName": "Prompt-ExtraLight", + "postscriptName": "Prompt-ExtraLight", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "300": { + "familyName": "Prompt", + "fullName": "Prompt-Light", + "postscriptName": "Prompt-Light", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 561 + } + } + }, + "500": { + "familyName": "Prompt", + "fullName": "Prompt-Medium", + "postscriptName": "Prompt-Medium", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "600": { + "familyName": "Prompt", + "fullName": "Prompt-SemiBold", + "postscriptName": "Prompt-SemiBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "700": { + "familyName": "Prompt", + "fullName": "Prompt Bold", + "postscriptName": "Prompt-Bold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "800": { + "familyName": "Prompt", + "fullName": "Prompt-ExtraBold", + "postscriptName": "Prompt-ExtraBold", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "900": { + "familyName": "Prompt", + "fullName": "Prompt-Black", + "postscriptName": "Prompt-Black", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "regular": { + "familyName": "Prompt", + "fullName": "Prompt-Regular", + "postscriptName": "Prompt-Regular", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "italic": { + "familyName": "Prompt", + "fullName": "Prompt Italic", + "postscriptName": "Prompt-Italic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 568 + } + } + }, + "900italic": { + "familyName": "Prompt", + "fullName": "Prompt Black Italic", + "postscriptName": "Prompt-BlackItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "800italic": { + "familyName": "Prompt", + "fullName": "Prompt ExtraBold Italic", + "postscriptName": "Prompt-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "700italic": { + "familyName": "Prompt", + "fullName": "Prompt Bold Bold Italic", + "postscriptName": "Prompt-BoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "600italic": { + "familyName": "Prompt", + "fullName": "Prompt Semibold Italic", + "postscriptName": "Prompt-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 578 + } + } + }, + "500italic": { + "familyName": "Prompt", + "fullName": "Prompt Medium Italic", + "postscriptName": "Prompt-MediumItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "300italic": { + "familyName": "Prompt", + "fullName": "Prompt Light Italic", + "postscriptName": "Prompt-LightItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 561 + } + } + }, + "200italic": { + "familyName": "Prompt", + "fullName": "Prompt ExtraLight Italic", + "postscriptName": "Prompt-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 553 + } + } + }, + "100italic": { + "familyName": "Prompt", + "fullName": "Prompt Thin Italic", + "postscriptName": "Prompt-ThinItalic", + "category": "sans-serif", + "capHeight": 714, + "ascent": 1090, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 547 + } + } + } + } + }, + "prostoOne": { + "familyName": "Prosto One", + "fullName": "Prosto One", + "postscriptName": "ProstoOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 940, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 330 + } + }, + "variants": { + "regular": { + "familyName": "Prosto One", + "fullName": "Prosto One", + "postscriptName": "ProstoOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 940, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 330 + } + } + } + } + }, + "protestGuerrilla": { + "familyName": "Protest Guerrilla", + "fullName": "Protest Guerrilla Regular", + "postscriptName": "ProtestGuerrilla-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 622 + } + }, + "variants": { + "regular": { + "familyName": "Protest Guerrilla", + "fullName": "Protest Guerrilla Regular", + "postscriptName": "ProtestGuerrilla-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 622 + } + } + } + } + }, + "protestRevolution": { + "familyName": "Protest Revolution", + "fullName": "Protest Revolution Regular", + "postscriptName": "ProtestRevolution-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Protest Revolution", + "fullName": "Protest Revolution Regular", + "postscriptName": "ProtestRevolution-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "protestRiot": { + "familyName": "Protest Riot", + "fullName": "Protest Riot Regular", + "postscriptName": "ProtestRiot-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 622 + } + }, + "variants": { + "regular": { + "familyName": "Protest Riot", + "fullName": "Protest Riot Regular", + "postscriptName": "ProtestRiot-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 622 + } + } + } + } + }, + "protestStrike": { + "familyName": "Protest Strike", + "fullName": "Protest Strike Regular", + "postscriptName": "ProtestStrike-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 622 + } + }, + "variants": { + "regular": { + "familyName": "Protest Strike", + "fullName": "Protest Strike Regular", + "postscriptName": "ProtestStrike-Regular", + "category": "display", + "capHeight": 720, + "ascent": 960, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 622 + } + } + } + } + }, + "prozaLibre": { + "familyName": "Proza Libre", + "fullName": "Proza Libre", + "postscriptName": "ProzaLibre-Regular", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1996, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 992, + "subsets": { + "latin": { + "xWidthAvg": 992 + }, + "thai": { + "xWidthAvg": 452 + } + }, + "variants": { + "500": { + "familyName": "Proza Libre", + "fullName": "Proza Libre Medium", + "postscriptName": "ProzaLibre-Medium", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1011, + "subsets": { + "latin": { + "xWidthAvg": 1011 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "600": { + "familyName": "Proza Libre", + "fullName": "Proza Libre SemiBold", + "postscriptName": "ProzaLibre-SemiBold", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1031, + "subsets": { + "latin": { + "xWidthAvg": 1031 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "700": { + "familyName": "Proza Libre", + "fullName": "Proza Libre Bold", + "postscriptName": "ProzaLibre-Bold", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1050, + "subsets": { + "latin": { + "xWidthAvg": 1050 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "800": { + "familyName": "Proza Libre", + "fullName": "Proza Libre ExtraBold", + "postscriptName": "ProzaLibre-ExtraBold", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1996, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1069, + "subsets": { + "latin": { + "xWidthAvg": 1069 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "regular": { + "familyName": "Proza Libre", + "fullName": "Proza Libre", + "postscriptName": "ProzaLibre-Regular", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1996, + "descent": -800, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 992, + "subsets": { + "latin": { + "xWidthAvg": 992 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "italic": { + "familyName": "Proza Libre", + "fullName": "Proza Libre Italic", + "postscriptName": "ProzaLibre-Italic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 973, + "subsets": { + "latin": { + "xWidthAvg": 973 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "800italic": { + "familyName": "Proza Libre", + "fullName": "Proza Libre ExtraBold Italic", + "postscriptName": "ProzaLibre-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1066, + "subsets": { + "latin": { + "xWidthAvg": 1066 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "700italic": { + "familyName": "Proza Libre", + "fullName": "Proza Libre Bold Italic", + "postscriptName": "ProzaLibre-BoldItalic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1042, + "subsets": { + "latin": { + "xWidthAvg": 1042 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "600italic": { + "familyName": "Proza Libre", + "fullName": "Proza Libre SemiBold Italic", + "postscriptName": "ProzaLibre-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1019, + "subsets": { + "latin": { + "xWidthAvg": 1019 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "500italic": { + "familyName": "Proza Libre", + "fullName": "Proza Libre Medium Italic", + "postscriptName": "ProzaLibre-MediumItalic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2030, + "descent": -750, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 996, + "subsets": { + "latin": { + "xWidthAvg": 996 + }, + "thai": { + "xWidthAvg": 452 + } + } + } + } + }, + "publicSans": { + "familyName": "Public Sans", + "fullName": "Public Sans Regular", + "postscriptName": "PublicSans-Regular", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 1372 + } + }, + "variants": { + "100": { + "familyName": "Public Sans", + "fullName": "Public Sans Thin", + "postscriptName": "PublicSans-Thin", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 911, + "subsets": { + "latin": { + "xWidthAvg": 911 + }, + "thai": { + "xWidthAvg": 1430 + } + } + }, + "200": { + "familyName": "Public Sans", + "fullName": "Public Sans ExtraLight", + "postscriptName": "PublicSans-ExtraLight", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 921, + "subsets": { + "latin": { + "xWidthAvg": 921 + }, + "thai": { + "xWidthAvg": 1405 + } + } + }, + "300": { + "familyName": "Public Sans", + "fullName": "Public Sans Light", + "postscriptName": "PublicSans-Light", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 1388 + } + } + }, + "500": { + "familyName": "Public Sans", + "fullName": "Public Sans Medium", + "postscriptName": "PublicSans-Medium", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 941, + "subsets": { + "latin": { + "xWidthAvg": 941 + }, + "thai": { + "xWidthAvg": 1357 + } + } + }, + "600": { + "familyName": "Public Sans", + "fullName": "Public Sans SemiBold", + "postscriptName": "PublicSans-SemiBold", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 948, + "subsets": { + "latin": { + "xWidthAvg": 948 + }, + "thai": { + "xWidthAvg": 1341 + } + } + }, + "700": { + "familyName": "Public Sans", + "fullName": "Public Sans Bold", + "postscriptName": "PublicSans-Bold", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 959, + "subsets": { + "latin": { + "xWidthAvg": 959 + }, + "thai": { + "xWidthAvg": 1315 + } + } + }, + "800": { + "familyName": "Public Sans", + "fullName": "Public Sans ExtraBold", + "postscriptName": "PublicSans-ExtraBold", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1288 + } + } + }, + "900": { + "familyName": "Public Sans", + "fullName": "Public Sans Black", + "postscriptName": "PublicSans-Black", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 980, + "subsets": { + "latin": { + "xWidthAvg": 980 + }, + "thai": { + "xWidthAvg": 1262 + } + } + }, + "regular": { + "familyName": "Public Sans", + "fullName": "Public Sans Regular", + "postscriptName": "PublicSans-Regular", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 1372 + } + } + }, + "italic": { + "familyName": "Public Sans", + "fullName": "Public Sans Italic", + "postscriptName": "PublicSans-Italic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 905, + "subsets": { + "latin": { + "xWidthAvg": 905 + }, + "thai": { + "xWidthAvg": 1639 + } + } + }, + "900italic": { + "familyName": "Public Sans", + "fullName": "Public Sans Black Italic", + "postscriptName": "PublicSans-BlackItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1527 + } + } + }, + "800italic": { + "familyName": "Public Sans", + "fullName": "Public Sans ExtraBold Italic", + "postscriptName": "PublicSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 961, + "subsets": { + "latin": { + "xWidthAvg": 961 + }, + "thai": { + "xWidthAvg": 1554 + } + } + }, + "700italic": { + "familyName": "Public Sans", + "fullName": "Public Sans Bold Italic", + "postscriptName": "PublicSans-BoldItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1580 + } + } + }, + "600italic": { + "familyName": "Public Sans", + "fullName": "Public Sans SemiBold Italic", + "postscriptName": "PublicSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 926, + "subsets": { + "latin": { + "xWidthAvg": 926 + }, + "thai": { + "xWidthAvg": 1607 + } + } + }, + "500italic": { + "familyName": "Public Sans", + "fullName": "Public Sans Medium Italic", + "postscriptName": "PublicSans-MediumItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 1623 + } + } + }, + "300italic": { + "familyName": "Public Sans", + "fullName": "Public Sans Light Italic", + "postscriptName": "PublicSans-LightItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 1655 + } + } + }, + "200italic": { + "familyName": "Public Sans", + "fullName": "Public Sans ExtraLight Italic", + "postscriptName": "PublicSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 883, + "subsets": { + "latin": { + "xWidthAvg": 883 + }, + "thai": { + "xWidthAvg": 1671 + } + } + }, + "100italic": { + "familyName": "Public Sans", + "fullName": "Public Sans Thin Italic", + "postscriptName": "PublicSans-ThinItalic", + "category": "sans-serif", + "capHeight": 1446, + "ascent": 1900, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1034, + "xWidthAvg": 866, + "subsets": { + "latin": { + "xWidthAvg": 866 + }, + "thai": { + "xWidthAvg": 1697 + } + } + } + } + }, + "puppiesPlay": { + "familyName": "Puppies Play", + "fullName": "Puppies Play Regular", + "postscriptName": "PuppiesPlay-Regular", + "category": "handwriting", + "capHeight": 530, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 260, + "xWidthAvg": 236, + "subsets": { + "latin": { + "xWidthAvg": 236 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Puppies Play", + "fullName": "Puppies Play Regular", + "postscriptName": "PuppiesPlay-Regular", + "category": "handwriting", + "capHeight": 530, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 260, + "xWidthAvg": 236, + "subsets": { + "latin": { + "xWidthAvg": 236 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "puritan": { + "familyName": "Puritan", + "fullName": "Puritan Regular", + "postscriptName": "Puritan-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 881, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 507, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "700": { + "familyName": "Puritan", + "fullName": "Puritan Bold", + "postscriptName": "Puritan-Bold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 896, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 507, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "regular": { + "familyName": "Puritan", + "fullName": "Puritan Regular", + "postscriptName": "Puritan-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 881, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 507, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "italic": { + "familyName": "Puritan", + "fullName": "Puritan Italic", + "postscriptName": "Puritan-Italic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 880, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 507, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "700italic": { + "familyName": "Puritan", + "fullName": "Puritan Bold Italic", + "postscriptName": "Puritan-BoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 896, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 507, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "purplePurse": { + "familyName": "Purple Purse", + "fullName": "Purple Purse", + "postscriptName": "PurplePurse-Regular", + "category": "display", + "capHeight": 1419, + "ascent": 1870, + "descent": -690, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 856, + "xWidthAvg": 930, + "subsets": { + "latin": { + "xWidthAvg": 930 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Purple Purse", + "fullName": "Purple Purse", + "postscriptName": "PurplePurse-Regular", + "category": "display", + "capHeight": 1419, + "ascent": 1870, + "descent": -690, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 856, + "xWidthAvg": 930, + "subsets": { + "latin": { + "xWidthAvg": 930 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "qahiri": { + "familyName": "Qahiri", + "fullName": "Qahiri Regular", + "postscriptName": "Qahiri-Regular", + "category": "sans-serif", + "capHeight": 560, + "ascent": 600, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 230, + "xWidthAvg": 192, + "subsets": { + "latin": { + "xWidthAvg": 192 + }, + "thai": { + "xWidthAvg": 330 + } + }, + "variants": { + "regular": { + "familyName": "Qahiri", + "fullName": "Qahiri Regular", + "postscriptName": "Qahiri-Regular", + "category": "sans-serif", + "capHeight": 560, + "ascent": 600, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 230, + "xWidthAvg": 192, + "subsets": { + "latin": { + "xWidthAvg": 192 + }, + "thai": { + "xWidthAvg": 330 + } + } + } + } + }, + "quando": { + "familyName": "Quando", + "fullName": "Quando-Regular", + "postscriptName": "Quando-Regular", + "category": "serif", + "capHeight": 1533, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1200, + "xWidthAvg": 1120, + "subsets": { + "latin": { + "xWidthAvg": 1120 + }, + "thai": { + "xWidthAvg": 1699 + } + }, + "variants": { + "regular": { + "familyName": "Quando", + "fullName": "Quando-Regular", + "postscriptName": "Quando-Regular", + "category": "serif", + "capHeight": 1533, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1200, + "xWidthAvg": 1120, + "subsets": { + "latin": { + "xWidthAvg": 1120 + }, + "thai": { + "xWidthAvg": 1699 + } + } + } + } + }, + "quantico": { + "familyName": "Quantico", + "fullName": "Quantico", + "postscriptName": "Quantico-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1063, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 260 + } + }, + "variants": { + "700": { + "familyName": "Quantico", + "fullName": "Quantico-Bold", + "postscriptName": "Quantico-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1063, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 260 + } + } + }, + "regular": { + "familyName": "Quantico", + "fullName": "Quantico", + "postscriptName": "Quantico-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1063, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 260 + } + } + }, + "italic": { + "familyName": "Quantico", + "fullName": "Quantico-Italic", + "postscriptName": "Quantico-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1063, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 260 + } + } + }, + "700italic": { + "familyName": "Quantico", + "fullName": "Quantico-BoldItalic", + "postscriptName": "Quantico-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1063, + "descent": -367, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 260 + } + } + } + } + }, + "quattrocento": { + "familyName": "Quattrocento", + "fullName": "Quattrocento", + "postscriptName": "Quattrocento", + "category": "serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 266 + } + }, + "variants": { + "700": { + "familyName": "Quattrocento", + "fullName": "Quattrocento Bold", + "postscriptName": "Quattrocento-Bold", + "category": "serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 266 + } + } + }, + "regular": { + "familyName": "Quattrocento", + "fullName": "Quattrocento", + "postscriptName": "Quattrocento", + "category": "serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 459, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 266 + } + } + } + } + }, + "quattrocentoSans": { + "familyName": "Quattrocento Sans", + "fullName": "Quattrocento Sans", + "postscriptName": "QuattrocentoSans", + "category": "sans-serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 266 + } + }, + "variants": { + "700": { + "familyName": "Quattrocento Sans", + "fullName": "Quattrocento Sans Bold", + "postscriptName": "QuattrocentoSans-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 266 + } + } + }, + "regular": { + "familyName": "Quattrocento Sans", + "fullName": "Quattrocento Sans", + "postscriptName": "QuattrocentoSans", + "category": "sans-serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 266 + } + } + }, + "italic": { + "familyName": "Quattrocento Sans", + "fullName": "Quattrocento Sans Italic", + "postscriptName": "QuattrocentoSans-Italic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 266 + } + } + }, + "700italic": { + "familyName": "Quattrocento Sans", + "fullName": "Quattrocento Sans Bold Italic", + "postscriptName": "QuattrocentoSans-BoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 848, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 266 + } + } + } + } + }, + "questrial": { + "familyName": "Questrial", + "fullName": "Questrial Regular", + "postscriptName": "Questrial-Regular", + "category": "sans-serif", + "capHeight": 662, + "ascent": 820, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 524 + } + }, + "variants": { + "regular": { + "familyName": "Questrial", + "fullName": "Questrial Regular", + "postscriptName": "Questrial-Regular", + "category": "sans-serif", + "capHeight": 662, + "ascent": 820, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 524 + } + } + } + } + }, + "quicksand": { + "familyName": "Quicksand", + "fullName": "Quicksand Regular", + "postscriptName": "Quicksand-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "300": { + "familyName": "Quicksand", + "fullName": "Quicksand Light", + "postscriptName": "Quicksand-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Quicksand", + "fullName": "Quicksand Medium", + "postscriptName": "Quicksand-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Quicksand", + "fullName": "Quicksand SemiBold", + "postscriptName": "Quicksand-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Quicksand", + "fullName": "Quicksand Bold", + "postscriptName": "Quicksand-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Quicksand", + "fullName": "Quicksand Regular", + "postscriptName": "Quicksand-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "quintessential": { + "familyName": "Quintessential", + "fullName": "Quintessential", + "postscriptName": "Quintessential-Regular", + "category": "handwriting", + "capHeight": 1489, + "ascent": 2341, + "descent": -799, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1057, + "xWidthAvg": 809, + "subsets": { + "latin": { + "xWidthAvg": 809 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Quintessential", + "fullName": "Quintessential", + "postscriptName": "Quintessential-Regular", + "category": "handwriting", + "capHeight": 1489, + "ascent": 2341, + "descent": -799, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1057, + "xWidthAvg": 809, + "subsets": { + "latin": { + "xWidthAvg": 809 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "qwigley": { + "familyName": "Qwigley", + "fullName": "Qwigley Regular", + "postscriptName": "Qwigley-Regular", + "category": "handwriting", + "capHeight": 460, + "ascent": 750, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 252, + "subsets": { + "latin": { + "xWidthAvg": 252 + }, + "thai": { + "xWidthAvg": 185 + } + }, + "variants": { + "regular": { + "familyName": "Qwigley", + "fullName": "Qwigley Regular", + "postscriptName": "Qwigley-Regular", + "category": "handwriting", + "capHeight": 460, + "ascent": 750, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 252, + "subsets": { + "latin": { + "xWidthAvg": 252 + }, + "thai": { + "xWidthAvg": 185 + } + } + } + } + }, + "qwitcherGrypen": { + "familyName": "Qwitcher Grypen", + "fullName": "Qwitcher Grypen Regular", + "postscriptName": "QwitcherGrypen-Regular", + "category": "handwriting", + "capHeight": 500, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 242, + "subsets": { + "latin": { + "xWidthAvg": 242 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "700": { + "familyName": "Qwitcher Grypen", + "fullName": "Qwitcher Grypen Bold", + "postscriptName": "QwitcherGrypen-Bold", + "category": "handwriting", + "capHeight": 500, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 230, + "xWidthAvg": 267, + "subsets": { + "latin": { + "xWidthAvg": 267 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "regular": { + "familyName": "Qwitcher Grypen", + "fullName": "Qwitcher Grypen Regular", + "postscriptName": "QwitcherGrypen-Regular", + "category": "handwriting", + "capHeight": 500, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 242, + "subsets": { + "latin": { + "xWidthAvg": 242 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "rEM": { + "familyName": "REM", + "fullName": "REM Regular", + "postscriptName": "REM-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 586 + } + }, + "variants": { + "100": { + "familyName": "REM", + "fullName": "REM Thin", + "postscriptName": "REM-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "200": { + "familyName": "REM", + "fullName": "REM ExtraLight", + "postscriptName": "REM-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "300": { + "familyName": "REM", + "fullName": "REM Light", + "postscriptName": "REM-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "500": { + "familyName": "REM", + "fullName": "REM Medium", + "postscriptName": "REM-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "600": { + "familyName": "REM", + "fullName": "REM SemiBold", + "postscriptName": "REM-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "700": { + "familyName": "REM", + "fullName": "REM Bold", + "postscriptName": "REM-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "800": { + "familyName": "REM", + "fullName": "REM ExtraBold", + "postscriptName": "REM-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 521, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "900": { + "familyName": "REM", + "fullName": "REM Black", + "postscriptName": "REM-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "regular": { + "familyName": "REM", + "fullName": "REM Regular", + "postscriptName": "REM-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "italic": { + "familyName": "REM", + "fullName": "REM Italic", + "postscriptName": "REM-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "900italic": { + "familyName": "REM", + "fullName": "REM Black Italic", + "postscriptName": "REM-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 668 + } + } + }, + "800italic": { + "familyName": "REM", + "fullName": "REM ExtraBold Italic", + "postscriptName": "REM-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 521, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 668 + } + } + }, + "700italic": { + "familyName": "REM", + "fullName": "REM Bold Italic", + "postscriptName": "REM-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 516, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "600italic": { + "familyName": "REM", + "fullName": "REM SemiBold Italic", + "postscriptName": "REM-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 513, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "500italic": { + "familyName": "REM", + "fullName": "REM Medium Italic", + "postscriptName": "REM-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "300italic": { + "familyName": "REM", + "fullName": "REM Light Italic", + "postscriptName": "REM-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 499, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "200italic": { + "familyName": "REM", + "fullName": "REM ExtraLight Italic", + "postscriptName": "REM-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 495, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "100italic": { + "familyName": "REM", + "fullName": "REM Thin Italic", + "postscriptName": "REM-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 667 + } + } + } + } + }, + "racingSansOne": { + "familyName": "Racing Sans One", + "fullName": "Racing Sans One", + "postscriptName": "RacingSansOne-Regular", + "category": "display", + "capHeight": 635, + "ascent": 976, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 227 + } + }, + "variants": { + "regular": { + "familyName": "Racing Sans One", + "fullName": "Racing Sans One", + "postscriptName": "RacingSansOne-Regular", + "category": "display", + "capHeight": 635, + "ascent": 976, + "descent": -284, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 227 + } + } + } + } + }, + "radioCanada": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Regular", + "postscriptName": "RadioCanada-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Light", + "postscriptName": "RadioCanada-Light", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Medium", + "postscriptName": "RadioCanada-Medium", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Radio Canada", + "fullName": "Radio Canada SemiBold", + "postscriptName": "RadioCanada-SemiBold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Bold", + "postscriptName": "RadioCanada-Bold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Regular", + "postscriptName": "RadioCanada-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Italic", + "postscriptName": "RadioCanada-Italic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Bold Italic", + "postscriptName": "RadioCanada-BoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Radio Canada", + "fullName": "Radio Canada SemiBold Italic", + "postscriptName": "RadioCanada-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 522, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Medium Italic", + "postscriptName": "RadioCanada-MediumItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Radio Canada", + "fullName": "Radio Canada Light Italic", + "postscriptName": "RadioCanada-LightItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 945, + "descent": -255, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "radioCanadaBig": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Regular", + "postscriptName": "RadioCanadaBig-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "500": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Medium", + "postscriptName": "RadioCanadaBig-Medium", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "600": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big SemiBold", + "postscriptName": "RadioCanadaBig-SemiBold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 651 + } + } + }, + "700": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Bold", + "postscriptName": "RadioCanadaBig-Bold", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 676 + } + } + }, + "regular": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Regular", + "postscriptName": "RadioCanadaBig-Regular", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Italic", + "postscriptName": "RadioCanadaBig-Italic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 597 + } + } + }, + "700italic": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Bold Italic", + "postscriptName": "RadioCanadaBig-BoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big SemiBold Italic", + "postscriptName": "RadioCanadaBig-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "500italic": { + "familyName": "Radio Canada Big", + "fullName": "Radio Canada Big Medium Italic", + "postscriptName": "RadioCanadaBig-MediumItalic", + "category": "sans-serif", + "capHeight": 690, + "ascent": 995, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 598 + } + } + } + } + }, + "radley": { + "familyName": "Radley", + "fullName": "Radley Regular", + "postscriptName": "Radley-Regular", + "category": "serif", + "capHeight": 1302, + "ascent": 1973, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 899, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1226 + } + }, + "variants": { + "regular": { + "familyName": "Radley", + "fullName": "Radley Regular", + "postscriptName": "Radley-Regular", + "category": "serif", + "capHeight": 1302, + "ascent": 1973, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 899, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 1226 + } + } + }, + "italic": { + "familyName": "Radley", + "fullName": "Radley Italic", + "postscriptName": "Radley-Italic", + "category": "serif", + "capHeight": 1264, + "ascent": 1973, + "descent": -615, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 891, + "xWidthAvg": 881, + "subsets": { + "latin": { + "xWidthAvg": 881 + }, + "thai": { + "xWidthAvg": 451 + } + } + } + } + }, + "rajdhani": { + "familyName": "Rajdhani", + "fullName": "Rajdhani Regular", + "postscriptName": "Rajdhani-Regular", + "category": "sans-serif", + "capHeight": 643, + "ascent": 930, + "descent": -346, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Rajdhani", + "fullName": "Rajdhani Light", + "postscriptName": "Rajdhani-Light", + "category": "sans-serif", + "capHeight": 643, + "ascent": 930, + "descent": -346, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Rajdhani", + "fullName": "Rajdhani Medium", + "postscriptName": "Rajdhani-Medium", + "category": "sans-serif", + "capHeight": 643, + "ascent": 930, + "descent": -346, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Rajdhani", + "fullName": "Rajdhani SemiBold", + "postscriptName": "Rajdhani-SemiBold", + "category": "sans-serif", + "capHeight": 643, + "ascent": 930, + "descent": -346, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Rajdhani", + "fullName": "Rajdhani Bold", + "postscriptName": "Rajdhani-Bold", + "category": "sans-serif", + "capHeight": 643, + "ascent": 930, + "descent": -346, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Rajdhani", + "fullName": "Rajdhani Regular", + "postscriptName": "Rajdhani-Regular", + "category": "sans-serif", + "capHeight": 643, + "ascent": 930, + "descent": -346, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "rakkas": { + "familyName": "Rakkas", + "fullName": "Rakkas Regular", + "postscriptName": "Rakkas-Regular", + "category": "display", + "capHeight": 670, + "ascent": 1046, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Rakkas", + "fullName": "Rakkas Regular", + "postscriptName": "Rakkas-Regular", + "category": "display", + "capHeight": 670, + "ascent": 1046, + "descent": -445, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "raleway": { + "familyName": "Raleway", + "fullName": "Raleway Regular", + "postscriptName": "Raleway-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 608 + } + }, + "variants": { + "100": { + "familyName": "Raleway", + "fullName": "Raleway Thin", + "postscriptName": "Raleway-Thin", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "200": { + "familyName": "Raleway", + "fullName": "Raleway ExtraLight", + "postscriptName": "Raleway-ExtraLight", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "300": { + "familyName": "Raleway", + "fullName": "Raleway Light", + "postscriptName": "Raleway-Light", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "500": { + "familyName": "Raleway", + "fullName": "Raleway Medium", + "postscriptName": "Raleway-Medium", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "600": { + "familyName": "Raleway", + "fullName": "Raleway SemiBold", + "postscriptName": "Raleway-SemiBold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "700": { + "familyName": "Raleway", + "fullName": "Raleway Bold", + "postscriptName": "Raleway-Bold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "800": { + "familyName": "Raleway", + "fullName": "Raleway ExtraBold", + "postscriptName": "Raleway-ExtraBold", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "900": { + "familyName": "Raleway", + "fullName": "Raleway Black", + "postscriptName": "Raleway-Black", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "regular": { + "familyName": "Raleway", + "fullName": "Raleway Regular", + "postscriptName": "Raleway-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "italic": { + "familyName": "Raleway", + "fullName": "Raleway Italic", + "postscriptName": "Raleway-Italic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "900italic": { + "familyName": "Raleway", + "fullName": "Raleway Black Italic", + "postscriptName": "Raleway-BlackItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "800italic": { + "familyName": "Raleway", + "fullName": "Raleway ExtraBold Italic", + "postscriptName": "Raleway-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "700italic": { + "familyName": "Raleway", + "fullName": "Raleway Bold Italic", + "postscriptName": "Raleway-BoldItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "600italic": { + "familyName": "Raleway", + "fullName": "Raleway SemiBold Italic", + "postscriptName": "Raleway-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "500italic": { + "familyName": "Raleway", + "fullName": "Raleway Medium Italic", + "postscriptName": "Raleway-MediumItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "300italic": { + "familyName": "Raleway", + "fullName": "Raleway Light Italic", + "postscriptName": "Raleway-LightItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "200italic": { + "familyName": "Raleway", + "fullName": "Raleway ExtraLight Italic", + "postscriptName": "Raleway-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "100italic": { + "familyName": "Raleway", + "fullName": "Raleway Thin Italic", + "postscriptName": "Raleway-ThinItalic", + "category": "sans-serif", + "capHeight": 710, + "ascent": 940, + "descent": -234, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 519, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 608 + } + } + } + } + }, + "ralewayDots": { + "familyName": "Raleway Dots", + "fullName": "Raleway Dots", + "postscriptName": "RalewayDots-Regular", + "category": "display", + "capHeight": 710, + "ascent": 918, + "descent": -213, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Raleway Dots", + "fullName": "Raleway Dots", + "postscriptName": "RalewayDots-Regular", + "category": "display", + "capHeight": 710, + "ascent": 918, + "descent": -213, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "ramabhadra": { + "familyName": "Ramabhadra", + "fullName": "Ramabhadra", + "postscriptName": "Ramabhadra", + "category": "sans-serif", + "capHeight": 571, + "ascent": 1101, + "descent": -474, + "lineGap": 0, + "unitsPerEm": 830, + "xHeight": 439, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 299 + } + }, + "variants": { + "regular": { + "familyName": "Ramabhadra", + "fullName": "Ramabhadra", + "postscriptName": "Ramabhadra", + "category": "sans-serif", + "capHeight": 571, + "ascent": 1101, + "descent": -474, + "lineGap": 0, + "unitsPerEm": 830, + "xHeight": 439, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 299 + } + } + } + } + }, + "ramaraja": { + "familyName": "Ramaraja", + "fullName": "Ramaraja", + "postscriptName": "Ramaraja", + "category": "serif", + "capHeight": 439, + "ascent": 741, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 293, + "xWidthAvg": 276, + "subsets": { + "latin": { + "xWidthAvg": 276 + }, + "thai": { + "xWidthAvg": 438 + } + }, + "variants": { + "regular": { + "familyName": "Ramaraja", + "fullName": "Ramaraja", + "postscriptName": "Ramaraja", + "category": "serif", + "capHeight": 439, + "ascent": 741, + "descent": -544, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 293, + "xWidthAvg": 276, + "subsets": { + "latin": { + "xWidthAvg": 276 + }, + "thai": { + "xWidthAvg": 438 + } + } + } + } + }, + "rambla": { + "familyName": "Rambla", + "fullName": "Rambla", + "postscriptName": "Rambla-Regular", + "category": "sans-serif", + "capHeight": 668, + "ascent": 929, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Rambla", + "fullName": "Rambla Bold", + "postscriptName": "Rambla-Bold", + "category": "sans-serif", + "capHeight": 669, + "ascent": 929, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Rambla", + "fullName": "Rambla", + "postscriptName": "Rambla-Regular", + "category": "sans-serif", + "capHeight": 668, + "ascent": 929, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Rambla", + "fullName": "Rambla Italic", + "postscriptName": "Rambla-Italic", + "category": "sans-serif", + "capHeight": 668, + "ascent": 929, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 506, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Rambla", + "fullName": "Rambla Bold Italic", + "postscriptName": "Rambla-BoldItalic", + "category": "sans-serif", + "capHeight": 669, + "ascent": 929, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "rammettoOne": { + "familyName": "Rammetto One", + "fullName": "Rammetto One Regular", + "postscriptName": "RammettoOne-Regular", + "category": "display", + "capHeight": 1622, + "ascent": 2437, + "descent": -1022, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1243, + "xWidthAvg": 1289, + "subsets": { + "latin": { + "xWidthAvg": 1289 + }, + "thai": { + "xWidthAvg": 1963 + } + }, + "variants": { + "regular": { + "familyName": "Rammetto One", + "fullName": "Rammetto One Regular", + "postscriptName": "RammettoOne-Regular", + "category": "display", + "capHeight": 1622, + "ascent": 2437, + "descent": -1022, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1243, + "xWidthAvg": 1289, + "subsets": { + "latin": { + "xWidthAvg": 1289 + }, + "thai": { + "xWidthAvg": 1963 + } + } + } + } + }, + "rampartOne": { + "familyName": "Rampart One", + "fullName": "Rampart One Regular", + "postscriptName": "RampartOne-Regular", + "category": "display", + "capHeight": 764, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Rampart One", + "fullName": "Rampart One Regular", + "postscriptName": "RampartOne-Regular", + "category": "display", + "capHeight": 764, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 555, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "ranchers": { + "familyName": "Ranchers", + "fullName": "Ranchers", + "postscriptName": "Ranchers-Regular", + "category": "display", + "capHeight": 818, + "ascent": 1045, + "descent": -205, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 598, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 626 + } + }, + "variants": { + "regular": { + "familyName": "Ranchers", + "fullName": "Ranchers", + "postscriptName": "Ranchers-Regular", + "category": "display", + "capHeight": 818, + "ascent": 1045, + "descent": -205, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 598, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 626 + } + } + } + } + }, + "rancho": { + "familyName": "Rancho", + "fullName": "Rancho Regular", + "postscriptName": "Rancho-Regular", + "category": "handwriting", + "capHeight": 705, + "ascent": 919, + "descent": -329, + "lineGap": 24, + "unitsPerEm": 1024, + "xHeight": 407, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 215 + } + }, + "variants": { + "regular": { + "familyName": "Rancho", + "fullName": "Rancho Regular", + "postscriptName": "Rancho-Regular", + "category": "handwriting", + "capHeight": 705, + "ascent": 919, + "descent": -329, + "lineGap": 24, + "unitsPerEm": 1024, + "xHeight": 407, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 215 + } + } + } + } + }, + "ranga": { + "familyName": "Ranga", + "fullName": "Ranga Regular", + "postscriptName": "Ranga-Regular", + "category": "display", + "capHeight": 1483, + "ascent": 2218, + "descent": -1027, + "lineGap": 0, + "unitsPerEm": 2218, + "xHeight": 1040, + "xWidthAvg": 663, + "subsets": { + "latin": { + "xWidthAvg": 663 + }, + "thai": { + "xWidthAvg": 1495 + } + }, + "variants": { + "700": { + "familyName": "Ranga", + "fullName": "Ranga Bold", + "postscriptName": "Ranga-Bold", + "category": "display", + "capHeight": 1483, + "ascent": 2218, + "descent": -1027, + "lineGap": 0, + "unitsPerEm": 2218, + "xHeight": 1116, + "xWidthAvg": 703, + "subsets": { + "latin": { + "xWidthAvg": 703 + }, + "thai": { + "xWidthAvg": 1495 + } + } + }, + "regular": { + "familyName": "Ranga", + "fullName": "Ranga Regular", + "postscriptName": "Ranga-Regular", + "category": "display", + "capHeight": 1483, + "ascent": 2218, + "descent": -1027, + "lineGap": 0, + "unitsPerEm": 2218, + "xHeight": 1040, + "xWidthAvg": 663, + "subsets": { + "latin": { + "xWidthAvg": 663 + }, + "thai": { + "xWidthAvg": 1495 + } + } + } + } + }, + "rasa": { + "familyName": "Rasa", + "fullName": "Rasa Regular", + "postscriptName": "Rasa-Regular", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 643 + } + }, + "variants": { + "300": { + "familyName": "Rasa", + "fullName": "Rasa Light", + "postscriptName": "Rasa-Light", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "500": { + "familyName": "Rasa", + "fullName": "Rasa Medium", + "postscriptName": "Rasa-Medium", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "600": { + "familyName": "Rasa", + "fullName": "Rasa SemiBold", + "postscriptName": "Rasa-SemiBold", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "700": { + "familyName": "Rasa", + "fullName": "Rasa Bold", + "postscriptName": "Rasa-Bold", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "regular": { + "familyName": "Rasa", + "fullName": "Rasa Regular", + "postscriptName": "Rasa-Regular", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "italic": { + "familyName": "Rasa", + "fullName": "Rasa Italic", + "postscriptName": "Rasa-Italic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "700italic": { + "familyName": "Rasa", + "fullName": "Rasa Bold Italic", + "postscriptName": "Rasa-BoldItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "600italic": { + "familyName": "Rasa", + "fullName": "Rasa SemiBold Italic", + "postscriptName": "Rasa-SemiBoldItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "500italic": { + "familyName": "Rasa", + "fullName": "Rasa Medium Italic", + "postscriptName": "Rasa-MediumItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "300italic": { + "familyName": "Rasa", + "fullName": "Rasa Light Italic", + "postscriptName": "Rasa-LightItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "rationale": { + "familyName": "Rationale", + "fullName": "Rationale", + "postscriptName": "Rationale-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 903, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 529 + } + }, + "variants": { + "regular": { + "familyName": "Rationale", + "fullName": "Rationale", + "postscriptName": "Rationale-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 903, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 508, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 529 + } + } + } + } + }, + "raviPrakash": { + "familyName": "Ravi Prakash", + "fullName": "Ravi Prakash", + "postscriptName": "RaviPrakash-Regular", + "category": "display", + "capHeight": 552, + "ascent": 938, + "descent": -684, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 410, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 374 + } + }, + "variants": { + "regular": { + "familyName": "Ravi Prakash", + "fullName": "Ravi Prakash", + "postscriptName": "RaviPrakash-Regular", + "category": "display", + "capHeight": 552, + "ascent": 938, + "descent": -684, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 410, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 374 + } + } + } + } + }, + "readexPro": { + "familyName": "Readex Pro", + "fullName": "Readex Pro Regular", + "postscriptName": "ReadexPro-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 584 + } + }, + "variants": { + "200": { + "familyName": "Readex Pro", + "fullName": "Readex Pro ExtraLight", + "postscriptName": "ReadexPro-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "300": { + "familyName": "Readex Pro", + "fullName": "Readex Pro Light", + "postscriptName": "ReadexPro-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "500": { + "familyName": "Readex Pro", + "fullName": "Readex Pro Medium", + "postscriptName": "ReadexPro-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "600": { + "familyName": "Readex Pro", + "fullName": "Readex Pro SemiBold", + "postscriptName": "ReadexPro-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "700": { + "familyName": "Readex Pro", + "fullName": "Readex Pro Bold", + "postscriptName": "ReadexPro-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 584 + } + } + }, + "regular": { + "familyName": "Readex Pro", + "fullName": "Readex Pro Regular", + "postscriptName": "ReadexPro-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 525, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 584 + } + } + } + } + }, + "recursive": { + "familyName": "Recursive", + "fullName": "Recursive Regular", + "postscriptName": "Recursive-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Recursive", + "fullName": "Recursive Light", + "postscriptName": "Recursive-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Recursive", + "fullName": "Recursive Medium", + "postscriptName": "Recursive-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Recursive", + "fullName": "Recursive SemiBold", + "postscriptName": "Recursive-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 536, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Recursive", + "fullName": "Recursive Bold", + "postscriptName": "Recursive-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 538, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Recursive", + "fullName": "Recursive ExtraBold", + "postscriptName": "Recursive-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Recursive", + "fullName": "Recursive Black", + "postscriptName": "Recursive-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 547, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Recursive", + "fullName": "Recursive Regular", + "postscriptName": "Recursive-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 532, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "redHatDisplay": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Regular", + "postscriptName": "RedHatDisplay-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "300": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Light", + "postscriptName": "RedHatDisplay-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "500": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Medium", + "postscriptName": "RedHatDisplay-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "600": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display SemiBold", + "postscriptName": "RedHatDisplay-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "700": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Bold", + "postscriptName": "RedHatDisplay-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "800": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display ExtraBold", + "postscriptName": "RedHatDisplay-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "900": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Black", + "postscriptName": "RedHatDisplay-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "regular": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Regular", + "postscriptName": "RedHatDisplay-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Italic", + "postscriptName": "RedHatDisplay-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "900italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Black Italic", + "postscriptName": "RedHatDisplay-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "800italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display ExtraBold Italic", + "postscriptName": "RedHatDisplay-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "700italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Bold Italic", + "postscriptName": "RedHatDisplay-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "600italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display SemiBold Italic", + "postscriptName": "RedHatDisplay-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "500italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Medium Italic", + "postscriptName": "RedHatDisplay-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "300italic": { + "familyName": "Red Hat Display", + "fullName": "Red Hat Display Light Italic", + "postscriptName": "RedHatDisplay-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "redHatMono": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Regular", + "postscriptName": "RedHatMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Light", + "postscriptName": "RedHatMono-Light", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Medium", + "postscriptName": "RedHatMono-Medium", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono SemiBold", + "postscriptName": "RedHatMono-SemiBold", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Bold", + "postscriptName": "RedHatMono-Bold", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Regular", + "postscriptName": "RedHatMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Italic", + "postscriptName": "RedHatMono-Italic", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Bold Italic", + "postscriptName": "RedHatMono-BoldItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono SemiBold Italic", + "postscriptName": "RedHatMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Medium Italic", + "postscriptName": "RedHatMono-MediumItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Red Hat Mono", + "fullName": "Red Hat Mono Light Italic", + "postscriptName": "RedHatMono-LightItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "redHatText": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Regular", + "postscriptName": "RedHatText-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "300": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Light", + "postscriptName": "RedHatText-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "500": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Medium", + "postscriptName": "RedHatText-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "600": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text SemiBold", + "postscriptName": "RedHatText-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "700": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Bold", + "postscriptName": "RedHatText-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "regular": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Regular", + "postscriptName": "RedHatText-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "italic": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Italic", + "postscriptName": "RedHatText-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "700italic": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Bold Italic", + "postscriptName": "RedHatText-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "600italic": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text SemiBold Italic", + "postscriptName": "RedHatText-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "500italic": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Medium Italic", + "postscriptName": "RedHatText-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "300italic": { + "familyName": "Red Hat Text", + "fullName": "Red Hat Text Light Italic", + "postscriptName": "RedHatText-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1018, + "descent": -305, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "redRose": { + "familyName": "Red Rose", + "fullName": "Red Rose Regular", + "postscriptName": "RedRose-Regular", + "category": "display", + "capHeight": 600, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 420 + } + }, + "variants": { + "300": { + "familyName": "Red Rose", + "fullName": "Red Rose Light", + "postscriptName": "RedRose-Light", + "category": "display", + "capHeight": 600, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 420 + } + } + }, + "500": { + "familyName": "Red Rose", + "fullName": "Red Rose Medium", + "postscriptName": "RedRose-Medium", + "category": "display", + "capHeight": 600, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 420 + } + } + }, + "600": { + "familyName": "Red Rose", + "fullName": "Red Rose SemiBold", + "postscriptName": "RedRose-SemiBold", + "category": "display", + "capHeight": 600, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 420 + } + } + }, + "700": { + "familyName": "Red Rose", + "fullName": "Red Rose Bold", + "postscriptName": "RedRose-Bold", + "category": "display", + "capHeight": 600, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 420 + } + } + }, + "regular": { + "familyName": "Red Rose", + "fullName": "Red Rose Regular", + "postscriptName": "RedRose-Regular", + "category": "display", + "capHeight": 600, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 468, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 420 + } + } + } + } + }, + "redacted": { + "familyName": "Redacted", + "fullName": "Redacted Regular", + "postscriptName": "Redacted-Regular", + "category": "display", + "capHeight": 0, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 317, + "subsets": { + "latin": { + "xWidthAvg": 317 + }, + "thai": { + "xWidthAvg": 375 + } + }, + "variants": { + "regular": { + "familyName": "Redacted", + "fullName": "Redacted Regular", + "postscriptName": "Redacted-Regular", + "category": "display", + "capHeight": 0, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 317, + "subsets": { + "latin": { + "xWidthAvg": 317 + }, + "thai": { + "xWidthAvg": 375 + } + } + } + } + }, + "redactedScript": { + "familyName": "Redacted Script", + "fullName": "Redacted Script Regular", + "postscriptName": "RedactedScript-Regular", + "category": "display", + "capHeight": 702, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 439, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 486 + } + }, + "variants": { + "300": { + "familyName": "Redacted Script", + "fullName": "Redacted Script Light", + "postscriptName": "RedactedScript-Light", + "category": "display", + "capHeight": 702, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 439, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 486 + } + } + }, + "700": { + "familyName": "Redacted Script", + "fullName": "Redacted Script Bold", + "postscriptName": "RedactedScript-Bold", + "category": "display", + "capHeight": 702, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 439, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 486 + } + } + }, + "regular": { + "familyName": "Redacted Script", + "fullName": "Redacted Script Regular", + "postscriptName": "RedactedScript-Regular", + "category": "display", + "capHeight": 702, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 439, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 486 + } + } + } + } + }, + "redditMono": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono Regular", + "postscriptName": "RedditMono-Regular", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + }, + "variants": { + "200": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono ExtraLight", + "postscriptName": "RedditMono-ExtraLight", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1048, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "300": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono Light", + "postscriptName": "RedditMono-Light", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "500": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono Medium", + "postscriptName": "RedditMono-Medium", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1063, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "600": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono SemiBold", + "postscriptName": "RedditMono-SemiBold", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1067, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "700": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono Bold", + "postscriptName": "RedditMono-Bold", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "800": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono ExtraBold", + "postscriptName": "RedditMono-ExtraBold", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1076, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "900": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono Black", + "postscriptName": "RedditMono-Black", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "regular": { + "familyName": "Reddit Mono", + "fullName": "Reddit Mono Regular", + "postscriptName": "RedditMono-Regular", + "category": "monospace", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 1152, + "subsets": { + "latin": { + "xWidthAvg": 1152 + }, + "thai": { + "xWidthAvg": 1152 + } + } + } + } + }, + "redditSans": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Regular", + "postscriptName": "RedditSans-Regular", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1336 + } + }, + "variants": { + "200": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans ExtraLight", + "postscriptName": "RedditSans-ExtraLight", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1048, + "xWidthAvg": 899, + "subsets": { + "latin": { + "xWidthAvg": 899 + }, + "thai": { + "xWidthAvg": 1308 + } + } + }, + "300": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Light", + "postscriptName": "RedditSans-Light", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 910, + "subsets": { + "latin": { + "xWidthAvg": 910 + }, + "thai": { + "xWidthAvg": 1324 + } + } + }, + "500": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Medium", + "postscriptName": "RedditSans-Medium", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1063, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1357 + } + } + }, + "600": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans SemiBold", + "postscriptName": "RedditSans-SemiBold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1067, + "xWidthAvg": 939, + "subsets": { + "latin": { + "xWidthAvg": 939 + }, + "thai": { + "xWidthAvg": 1378 + } + } + }, + "700": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Bold", + "postscriptName": "RedditSans-Bold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1405 + } + } + }, + "800": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans ExtraBold", + "postscriptName": "RedditSans-ExtraBold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1076, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1431 + } + } + }, + "900": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Black", + "postscriptName": "RedditSans-Black", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 985, + "subsets": { + "latin": { + "xWidthAvg": 985 + }, + "thai": { + "xWidthAvg": 1458 + } + } + }, + "regular": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Regular", + "postscriptName": "RedditSans-Regular", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1336 + } + } + }, + "italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Italic", + "postscriptName": "RedditSans-Italic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1060, + "xWidthAvg": 916, + "subsets": { + "latin": { + "xWidthAvg": 916 + }, + "thai": { + "xWidthAvg": 1317 + } + } + }, + "900italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Black Italic", + "postscriptName": "RedditSans-BlackItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 1007, + "subsets": { + "latin": { + "xWidthAvg": 1007 + }, + "thai": { + "xWidthAvg": 1419 + } + } + }, + "800italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans ExtraBold Italic", + "postscriptName": "RedditSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1076, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 1397 + } + } + }, + "700italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Bold Italic", + "postscriptName": "RedditSans-BoldItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 966, + "subsets": { + "latin": { + "xWidthAvg": 966 + }, + "thai": { + "xWidthAvg": 1375 + } + } + }, + "600italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans SemiBold Italic", + "postscriptName": "RedditSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1067, + "xWidthAvg": 945, + "subsets": { + "latin": { + "xWidthAvg": 945 + }, + "thai": { + "xWidthAvg": 1352 + } + } + }, + "500italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Medium Italic", + "postscriptName": "RedditSans-MediumItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1063, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 1335 + } + } + }, + "300italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans Light Italic", + "postscriptName": "RedditSans-LightItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 897, + "subsets": { + "latin": { + "xWidthAvg": 897 + }, + "thai": { + "xWidthAvg": 1293 + } + } + }, + "200italic": { + "familyName": "Reddit Sans", + "fullName": "Reddit Sans ExtraLight Italic", + "postscriptName": "RedditSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1048, + "xWidthAvg": 873, + "subsets": { + "latin": { + "xWidthAvg": 873 + }, + "thai": { + "xWidthAvg": 1262 + } + } + } + } + }, + "redditSansCondensed": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed Regular", + "postscriptName": "RedditSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 816, + "subsets": { + "latin": { + "xWidthAvg": 816 + }, + "thai": { + "xWidthAvg": 1168 + } + }, + "variants": { + "200": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed ExtraLight", + "postscriptName": "RedditSansCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1068, + "xWidthAvg": 790, + "subsets": { + "latin": { + "xWidthAvg": 790 + }, + "thai": { + "xWidthAvg": 1130 + } + } + }, + "300": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed Light", + "postscriptName": "RedditSansCondensed-Light", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1075, + "xWidthAvg": 805, + "subsets": { + "latin": { + "xWidthAvg": 805 + }, + "thai": { + "xWidthAvg": 1152 + } + } + }, + "500": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed Medium", + "postscriptName": "RedditSansCondensed-Medium", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1083, + "xWidthAvg": 829, + "subsets": { + "latin": { + "xWidthAvg": 829 + }, + "thai": { + "xWidthAvg": 1189 + } + } + }, + "600": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed SemiBold", + "postscriptName": "RedditSansCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1087, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 1209 + } + } + }, + "700": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed Bold", + "postscriptName": "RedditSansCondensed-Bold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1091, + "xWidthAvg": 860, + "subsets": { + "latin": { + "xWidthAvg": 860 + }, + "thai": { + "xWidthAvg": 1235 + } + } + }, + "800": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed ExtraBold", + "postscriptName": "RedditSansCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1096, + "xWidthAvg": 877, + "subsets": { + "latin": { + "xWidthAvg": 877 + }, + "thai": { + "xWidthAvg": 1260 + } + } + }, + "900": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed Black", + "postscriptName": "RedditSansCondensed-Black", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1100, + "xWidthAvg": 894, + "subsets": { + "latin": { + "xWidthAvg": 894 + }, + "thai": { + "xWidthAvg": 1286 + } + } + }, + "regular": { + "familyName": "Reddit Sans Condensed", + "fullName": "Reddit Sans Condensed Regular", + "postscriptName": "RedditSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 1474, + "ascent": 2068, + "descent": -592, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 816, + "subsets": { + "latin": { + "xWidthAvg": 816 + }, + "thai": { + "xWidthAvg": 1168 + } + } + } + } + }, + "redressed": { + "familyName": "Redressed", + "fullName": "Redressed Regular", + "postscriptName": "Redressed-Regular", + "category": "handwriting", + "capHeight": 1495, + "ascent": 1907, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 834, + "xWidthAvg": 735, + "subsets": { + "latin": { + "xWidthAvg": 735 + }, + "thai": { + "xWidthAvg": 432 + } + }, + "variants": { + "regular": { + "familyName": "Redressed", + "fullName": "Redressed Regular", + "postscriptName": "Redressed-Regular", + "category": "handwriting", + "capHeight": 1495, + "ascent": 1907, + "descent": -494, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 834, + "xWidthAvg": 735, + "subsets": { + "latin": { + "xWidthAvg": 735 + }, + "thai": { + "xWidthAvg": 432 + } + } + } + } + }, + "reemKufi": { + "familyName": "Reem Kufi", + "fullName": "Reem Kufi Regular", + "postscriptName": "ReemKufi-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Reem Kufi", + "fullName": "Reem Kufi Medium", + "postscriptName": "ReemKufi-Medium", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Reem Kufi", + "fullName": "Reem Kufi SemiBold", + "postscriptName": "ReemKufi-SemiBold", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 431, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Reem Kufi", + "fullName": "Reem Kufi Bold", + "postscriptName": "ReemKufi-Bold", + "category": "sans-serif", + "capHeight": 736, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 437, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Reem Kufi", + "fullName": "Reem Kufi Regular", + "postscriptName": "ReemKufi-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "reemKufiFun": { + "familyName": "Reem Kufi Fun", + "fullName": "Reem Kufi Fun Regular", + "postscriptName": "ReemKufiFun-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Reem Kufi Fun", + "fullName": "Reem Kufi Fun Medium", + "postscriptName": "ReemKufiFun-Medium", + "category": "sans-serif", + "capHeight": 729, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Reem Kufi Fun", + "fullName": "Reem Kufi Fun SemiBold", + "postscriptName": "ReemKufiFun-SemiBold", + "category": "sans-serif", + "capHeight": 732, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 431, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Reem Kufi Fun", + "fullName": "Reem Kufi Fun Bold", + "postscriptName": "ReemKufiFun-Bold", + "category": "sans-serif", + "capHeight": 736, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 437, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Reem Kufi Fun", + "fullName": "Reem Kufi Fun Regular", + "postscriptName": "ReemKufiFun-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "reemKufiInk": { + "familyName": "Reem Kufi Ink", + "fullName": "Reem Kufi Ink Regular", + "postscriptName": "ReemKufiInk-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Reem Kufi Ink", + "fullName": "Reem Kufi Ink Regular", + "postscriptName": "ReemKufiInk-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1100, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "reenieBeanie": { + "familyName": "Reenie Beanie", + "fullName": "Reenie Beanie", + "postscriptName": "ReenieBeanie", + "category": "handwriting", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 414 + } + }, + "variants": { + "regular": { + "familyName": "Reenie Beanie", + "fullName": "Reenie Beanie", + "postscriptName": "ReenieBeanie", + "category": "handwriting", + "capHeight": 700, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 414 + } + } + } + } + }, + "reggaeOne": { + "familyName": "Reggae One", + "fullName": "Reggae One Regular", + "postscriptName": "ReggaeOne-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 557, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Reggae One", + "fullName": "Reggae One Regular", + "postscriptName": "ReggaeOne-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 557, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "rethinkSans": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Regular", + "postscriptName": "RethinkSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 529 + } + }, + "variants": { + "500": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Medium", + "postscriptName": "RethinkSans-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "600": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans SemiBold", + "postscriptName": "RethinkSans-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "700": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Bold", + "postscriptName": "RethinkSans-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "800": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans ExtraBold", + "postscriptName": "RethinkSans-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "regular": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Regular", + "postscriptName": "RethinkSans-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 529 + } + } + }, + "italic": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Italic", + "postscriptName": "RethinkSans-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 549 + } + } + }, + "800italic": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans ExtraBold Italic", + "postscriptName": "RethinkSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 509 + } + } + }, + "700italic": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Bold Italic", + "postscriptName": "RethinkSans-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 517 + } + } + }, + "600italic": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans SemiBold Italic", + "postscriptName": "RethinkSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "500italic": { + "familyName": "Rethink Sans", + "fullName": "Rethink Sans Medium Italic", + "postscriptName": "RethinkSans-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 992, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 533 + } + } + } + } + }, + "revalia": { + "familyName": "Revalia", + "fullName": "Revalia-Regular", + "postscriptName": "Revalia-Regular", + "category": "display", + "capHeight": 879, + "ascent": 2146, + "descent": 382, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1140, + "xWidthAvg": 1329, + "subsets": { + "latin": { + "xWidthAvg": 1329 + }, + "thai": { + "xWidthAvg": 1070 + } + }, + "variants": { + "regular": { + "familyName": "Revalia", + "fullName": "Revalia-Regular", + "postscriptName": "Revalia-Regular", + "category": "display", + "capHeight": 879, + "ascent": 2146, + "descent": 382, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1140, + "xWidthAvg": 1329, + "subsets": { + "latin": { + "xWidthAvg": 1329 + }, + "thai": { + "xWidthAvg": 1070 + } + } + } + } + }, + "rhodiumLibre": { + "familyName": "Rhodium Libre", + "fullName": "Rhodium Libre", + "postscriptName": "RhodiumLibre-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 1100, + "descent": -610, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Rhodium Libre", + "fullName": "Rhodium Libre", + "postscriptName": "RhodiumLibre-Regular", + "category": "serif", + "capHeight": 680, + "ascent": 1100, + "descent": -610, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "ribeye": { + "familyName": "Ribeye", + "fullName": "Ribeye", + "postscriptName": "Ribeye-Regular", + "category": "display", + "capHeight": 1491, + "ascent": 2130, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1061, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 614 + } + }, + "variants": { + "regular": { + "familyName": "Ribeye", + "fullName": "Ribeye", + "postscriptName": "Ribeye-Regular", + "category": "display", + "capHeight": 1491, + "ascent": 2130, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1061, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 614 + } + } + } + } + }, + "ribeyeMarrow": { + "familyName": "Ribeye Marrow", + "fullName": "Ribeye Marrow", + "postscriptName": "RibeyeMarrow-Regular", + "category": "display", + "capHeight": 1460, + "ascent": 2130, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1061, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 614 + } + }, + "variants": { + "regular": { + "familyName": "Ribeye Marrow", + "fullName": "Ribeye Marrow", + "postscriptName": "RibeyeMarrow-Regular", + "category": "display", + "capHeight": 1460, + "ascent": 2130, + "descent": -668, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1061, + "xWidthAvg": 1096, + "subsets": { + "latin": { + "xWidthAvg": 1096 + }, + "thai": { + "xWidthAvg": 614 + } + } + } + } + }, + "righteous": { + "familyName": "Righteous", + "fullName": "Righteous", + "postscriptName": "Righteous-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 2017, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1077, + "xWidthAvg": 966, + "subsets": { + "latin": { + "xWidthAvg": 966 + }, + "thai": { + "xWidthAvg": 573 + } + }, + "variants": { + "regular": { + "familyName": "Righteous", + "fullName": "Righteous", + "postscriptName": "Righteous-Regular", + "category": "display", + "capHeight": 1434, + "ascent": 2017, + "descent": -526, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1077, + "xWidthAvg": 966, + "subsets": { + "latin": { + "xWidthAvg": 966 + }, + "thai": { + "xWidthAvg": 573 + } + } + } + } + }, + "risque": { + "familyName": "Risque", + "fullName": "Risque", + "postscriptName": "Risque-Regular", + "category": "display", + "capHeight": 1413, + "ascent": 1853, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1016, + "xWidthAvg": 884, + "subsets": { + "latin": { + "xWidthAvg": 884 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Risque", + "fullName": "Risque", + "postscriptName": "Risque-Regular", + "category": "display", + "capHeight": 1413, + "ascent": 1853, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1016, + "xWidthAvg": 884, + "subsets": { + "latin": { + "xWidthAvg": 884 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "roadRage": { + "familyName": "Road Rage", + "fullName": "Road Rage Regular", + "postscriptName": "RoadRage-Regular", + "category": "display", + "capHeight": 600, + "ascent": 850, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 260, + "subsets": { + "latin": { + "xWidthAvg": 260 + }, + "thai": { + "xWidthAvg": 420 + } + }, + "variants": { + "regular": { + "familyName": "Road Rage", + "fullName": "Road Rage Regular", + "postscriptName": "RoadRage-Regular", + "category": "display", + "capHeight": 600, + "ascent": 850, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 260, + "subsets": { + "latin": { + "xWidthAvg": 260 + }, + "thai": { + "xWidthAvg": 420 + } + } + } + } + }, + "roboto": { + "familyName": "Roboto", + "fullName": "Roboto", + "postscriptName": "Roboto-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 911, + "subsets": { + "latin": { + "xWidthAvg": 911 + }, + "thai": { + "xWidthAvg": 908 + } + }, + "variants": { + "100": { + "familyName": "Roboto", + "fullName": "Roboto Thin", + "postscriptName": "Roboto-Thin", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 880, + "subsets": { + "latin": { + "xWidthAvg": 880 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "300": { + "familyName": "Roboto", + "fullName": "Roboto Light", + "postscriptName": "Roboto-Light", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 895, + "subsets": { + "latin": { + "xWidthAvg": 895 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "500": { + "familyName": "Roboto", + "fullName": "Roboto Medium", + "postscriptName": "Roboto-Medium", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 920, + "subsets": { + "latin": { + "xWidthAvg": 920 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "700": { + "familyName": "Roboto", + "fullName": "Roboto Bold", + "postscriptName": "Roboto-Bold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 926, + "subsets": { + "latin": { + "xWidthAvg": 926 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "900": { + "familyName": "Roboto", + "fullName": "Roboto Black", + "postscriptName": "Roboto-Black", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 933, + "subsets": { + "latin": { + "xWidthAvg": 933 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "regular": { + "familyName": "Roboto", + "fullName": "Roboto", + "postscriptName": "Roboto-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 911, + "subsets": { + "latin": { + "xWidthAvg": 911 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "italic": { + "familyName": "Roboto", + "fullName": "Roboto Italic", + "postscriptName": "Roboto-Italic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 893, + "subsets": { + "latin": { + "xWidthAvg": 893 + }, + "thai": { + "xWidthAvg": 918 + } + } + }, + "900italic": { + "familyName": "Roboto", + "fullName": "Roboto Black Italic", + "postscriptName": "Roboto-BlackItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 915, + "subsets": { + "latin": { + "xWidthAvg": 915 + }, + "thai": { + "xWidthAvg": 918 + } + } + }, + "700italic": { + "familyName": "Roboto", + "fullName": "Roboto Bold Italic", + "postscriptName": "Roboto-BoldItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 909, + "subsets": { + "latin": { + "xWidthAvg": 909 + }, + "thai": { + "xWidthAvg": 918 + } + } + }, + "500italic": { + "familyName": "Roboto", + "fullName": "Roboto Medium Italic", + "postscriptName": "Roboto-MediumItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 918 + } + } + }, + "300italic": { + "familyName": "Roboto", + "fullName": "Roboto Light Italic", + "postscriptName": "Roboto-LightItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 878, + "subsets": { + "latin": { + "xWidthAvg": 878 + }, + "thai": { + "xWidthAvg": 918 + } + } + }, + "100italic": { + "familyName": "Roboto", + "fullName": "Roboto Thin Italic", + "postscriptName": "Roboto-ThinItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 918 + } + } + } + } + }, + "robotoCondensed": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Regular", + "postscriptName": "RobotoCondensed-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 811, + "subsets": { + "latin": { + "xWidthAvg": 811 + }, + "thai": { + "xWidthAvg": 803 + } + }, + "variants": { + "100": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Thin", + "postscriptName": "RobotoCondensed-Thin", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 788, + "subsets": { + "latin": { + "xWidthAvg": 788 + }, + "thai": { + "xWidthAvg": 808 + } + } + }, + "200": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed ExtraLight", + "postscriptName": "RobotoCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 791, + "subsets": { + "latin": { + "xWidthAvg": 791 + }, + "thai": { + "xWidthAvg": 806 + } + } + }, + "300": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Light", + "postscriptName": "RobotoCondensed-Light", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 796, + "subsets": { + "latin": { + "xWidthAvg": 796 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "500": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Medium", + "postscriptName": "RobotoCondensed-Medium", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 819, + "subsets": { + "latin": { + "xWidthAvg": 819 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "600": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed SemiBold", + "postscriptName": "RobotoCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 823, + "subsets": { + "latin": { + "xWidthAvg": 823 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "700": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Bold", + "postscriptName": "RobotoCondensed-Bold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 826, + "subsets": { + "latin": { + "xWidthAvg": 826 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "800": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed ExtraBold", + "postscriptName": "RobotoCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 830, + "subsets": { + "latin": { + "xWidthAvg": 830 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "900": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Black", + "postscriptName": "RobotoCondensed-Black", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 833, + "subsets": { + "latin": { + "xWidthAvg": 833 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "regular": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Regular", + "postscriptName": "RobotoCondensed-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 811, + "subsets": { + "latin": { + "xWidthAvg": 811 + }, + "thai": { + "xWidthAvg": 803 + } + } + }, + "italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Italic", + "postscriptName": "RobotoCondensed-Italic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 788, + "subsets": { + "latin": { + "xWidthAvg": 788 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "900italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Black Italic", + "postscriptName": "RobotoCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 810, + "subsets": { + "latin": { + "xWidthAvg": 810 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "800italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed ExtraBold Italic", + "postscriptName": "RobotoCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 806, + "subsets": { + "latin": { + "xWidthAvg": 806 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "700italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Bold Italic", + "postscriptName": "RobotoCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 803, + "subsets": { + "latin": { + "xWidthAvg": 803 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "600italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed SemiBold Italic", + "postscriptName": "RobotoCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 800, + "subsets": { + "latin": { + "xWidthAvg": 800 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "500italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Medium Italic", + "postscriptName": "RobotoCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 796, + "subsets": { + "latin": { + "xWidthAvg": 796 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "300italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Light Italic", + "postscriptName": "RobotoCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 774, + "subsets": { + "latin": { + "xWidthAvg": 774 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "200italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed ExtraLight Italic", + "postscriptName": "RobotoCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 769, + "subsets": { + "latin": { + "xWidthAvg": 769 + }, + "thai": { + "xWidthAvg": 816 + } + } + }, + "100italic": { + "familyName": "Roboto Condensed", + "fullName": "Roboto Condensed Thin Italic", + "postscriptName": "RobotoCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 766, + "subsets": { + "latin": { + "xWidthAvg": 766 + }, + "thai": { + "xWidthAvg": 818 + } + } + } + } + }, + "robotoFlex": { + "familyName": "Roboto Flex", + "fullName": "Roboto Flex Regular", + "postscriptName": "RobotoFlex-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1052, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 908 + } + }, + "variants": { + "regular": { + "familyName": "Roboto Flex", + "fullName": "Roboto Flex Regular", + "postscriptName": "RobotoFlex-Regular", + "category": "sans-serif", + "capHeight": 1456, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1052, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 908 + } + } + } + } + }, + "robotoMono": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Regular", + "postscriptName": "RobotoMono-Regular", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + }, + "variants": { + "100": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Thin", + "postscriptName": "RobotoMono-Thin", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "200": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono ExtraLight", + "postscriptName": "RobotoMono-ExtraLight", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "300": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Light", + "postscriptName": "RobotoMono-Light", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "500": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Medium", + "postscriptName": "RobotoMono-Medium", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "600": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono SemiBold", + "postscriptName": "RobotoMono-SemiBold", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "700": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Bold", + "postscriptName": "RobotoMono-Bold", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "regular": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Regular", + "postscriptName": "RobotoMono-Regular", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 1229 + } + } + }, + "italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Italic", + "postscriptName": "RobotoMono-Italic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + }, + "700italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Bold Italic", + "postscriptName": "RobotoMono-BoldItalic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + }, + "600italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono SemiBold Italic", + "postscriptName": "RobotoMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + }, + "500italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Medium Italic", + "postscriptName": "RobotoMono-MediumItalic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + }, + "300italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Light Italic", + "postscriptName": "RobotoMono-LightItalic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + }, + "200italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono ExtraLight Italic", + "postscriptName": "RobotoMono-ExtraLightItalic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + }, + "100italic": { + "familyName": "Roboto Mono", + "fullName": "Roboto Mono Thin Italic", + "postscriptName": "RobotoMono-ThinItalic", + "category": "monospace", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 1202, + "subsets": { + "latin": { + "xWidthAvg": 1202 + }, + "thai": { + "xWidthAvg": 1202 + } + } + } + } + }, + "robotoSerif": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Regular", + "postscriptName": "RobotoSerif-Regular", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "100": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Thin", + "postscriptName": "RobotoSerif-Thin", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "200": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif ExtraLight", + "postscriptName": "RobotoSerif-ExtraLight", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "300": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Light", + "postscriptName": "RobotoSerif-Light", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "500": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Medium", + "postscriptName": "RobotoSerif-Medium", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "600": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif SemiBold", + "postscriptName": "RobotoSerif-SemiBold", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "700": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Bold", + "postscriptName": "RobotoSerif-Bold", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 543, + "subsets": { + "latin": { + "xWidthAvg": 543 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "800": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif ExtraBold", + "postscriptName": "RobotoSerif-ExtraBold", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 553, + "subsets": { + "latin": { + "xWidthAvg": 553 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "900": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Black", + "postscriptName": "RobotoSerif-Black", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "regular": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Regular", + "postscriptName": "RobotoSerif-Regular", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Italic", + "postscriptName": "RobotoSerif-Italic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "900italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Black Italic", + "postscriptName": "RobotoSerif-BlackItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 558, + "subsets": { + "latin": { + "xWidthAvg": 558 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "800italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif ExtraBold Italic", + "postscriptName": "RobotoSerif-ExtraBoldItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "700italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Bold Italic", + "postscriptName": "RobotoSerif-BoldItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 536, + "subsets": { + "latin": { + "xWidthAvg": 536 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "600italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif SemiBold Italic", + "postscriptName": "RobotoSerif-SemiBoldItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 525, + "subsets": { + "latin": { + "xWidthAvg": 525 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "500italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Medium Italic", + "postscriptName": "RobotoSerif-MediumItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 514, + "subsets": { + "latin": { + "xWidthAvg": 514 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "300italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Light Italic", + "postscriptName": "RobotoSerif-LightItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "200italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif ExtraLight Italic", + "postscriptName": "RobotoSerif-ExtraLightItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 483, + "subsets": { + "latin": { + "xWidthAvg": 483 + }, + "thai": { + "xWidthAvg": 400 + } + } + }, + "100italic": { + "familyName": "Roboto Serif", + "fullName": "Roboto Serif Thin Italic", + "postscriptName": "RobotoSerif-ThinItalic", + "category": "serif", + "capHeight": 710, + "ascent": 927, + "descent": -244, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "robotoSlab": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Regular", + "postscriptName": "RobotoSlab-Regular", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 972, + "subsets": { + "latin": { + "xWidthAvg": 972 + }, + "thai": { + "xWidthAvg": 1038 + } + }, + "variants": { + "100": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Thin", + "postscriptName": "RobotoSlab-Thin", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 953, + "subsets": { + "latin": { + "xWidthAvg": 953 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "200": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab ExtraLight", + "postscriptName": "RobotoSlab-ExtraLight", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 958, + "subsets": { + "latin": { + "xWidthAvg": 958 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "300": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Light", + "postscriptName": "RobotoSlab-Light", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 962, + "subsets": { + "latin": { + "xWidthAvg": 962 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "500": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Medium", + "postscriptName": "RobotoSlab-Medium", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 979, + "subsets": { + "latin": { + "xWidthAvg": 979 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "600": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab SemiBold", + "postscriptName": "RobotoSlab-SemiBold", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 981, + "subsets": { + "latin": { + "xWidthAvg": 981 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "700": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Bold", + "postscriptName": "RobotoSlab-Bold", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "800": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab ExtraBold", + "postscriptName": "RobotoSlab-ExtraBold", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "900": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Black", + "postscriptName": "RobotoSlab-Black", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 991, + "subsets": { + "latin": { + "xWidthAvg": 991 + }, + "thai": { + "xWidthAvg": 1038 + } + } + }, + "regular": { + "familyName": "Roboto Slab", + "fullName": "Roboto Slab Regular", + "postscriptName": "RobotoSlab-Regular", + "category": "serif", + "capHeight": 1456, + "ascent": 2146, + "descent": -555, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 972, + "subsets": { + "latin": { + "xWidthAvg": 972 + }, + "thai": { + "xWidthAvg": 1038 + } + } + } + } + }, + "rochester": { + "familyName": "Rochester", + "fullName": "Rochester Regular", + "postscriptName": "Rochester-Regular", + "category": "handwriting", + "capHeight": 326, + "ascent": 2109, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 192, + "xWidthAvg": 687, + "subsets": { + "latin": { + "xWidthAvg": 687 + }, + "thai": { + "xWidthAvg": 471 + } + }, + "variants": { + "regular": { + "familyName": "Rochester", + "fullName": "Rochester Regular", + "postscriptName": "Rochester-Regular", + "category": "handwriting", + "capHeight": 326, + "ascent": 2109, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 192, + "xWidthAvg": 687, + "subsets": { + "latin": { + "xWidthAvg": 687 + }, + "thai": { + "xWidthAvg": 471 + } + } + } + } + }, + "rock3D": { + "familyName": "Rock 3D", + "fullName": "Rock 3D Regular", + "postscriptName": "Rock3D-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 686, + "subsets": { + "latin": { + "xWidthAvg": 686 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Rock 3D", + "fullName": "Rock 3D Regular", + "postscriptName": "Rock3D-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 686, + "subsets": { + "latin": { + "xWidthAvg": 686 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "rockSalt": { + "familyName": "Rock Salt", + "fullName": "Rock Salt Regular", + "postscriptName": "RockSalt-Regular", + "category": "handwriting", + "capHeight": 1154, + "ascent": 1623, + "descent": -788, + "lineGap": 32, + "unitsPerEm": 1024, + "xHeight": 833, + "xWidthAvg": 643, + "subsets": { + "latin": { + "xWidthAvg": 643 + }, + "thai": { + "xWidthAvg": 420 + } + }, + "variants": { + "regular": { + "familyName": "Rock Salt", + "fullName": "Rock Salt Regular", + "postscriptName": "RockSalt-Regular", + "category": "handwriting", + "capHeight": 1154, + "ascent": 1623, + "descent": -788, + "lineGap": 32, + "unitsPerEm": 1024, + "xHeight": 833, + "xWidthAvg": 643, + "subsets": { + "latin": { + "xWidthAvg": 643 + }, + "thai": { + "xWidthAvg": 420 + } + } + } + } + }, + "rocknRollOne": { + "familyName": "RocknRoll One", + "fullName": "RocknRoll One Regular", + "postscriptName": "RocknRollOne-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "RocknRoll One", + "fullName": "RocknRoll One Regular", + "postscriptName": "RocknRollOne-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "rokkitt": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Regular", + "postscriptName": "Rokkitt-Regular", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "100": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Thin", + "postscriptName": "Rokkitt-Thin", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "200": { + "familyName": "Rokkitt", + "fullName": "Rokkitt ExtraLight", + "postscriptName": "Rokkitt-ExtraLight", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "300": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Light", + "postscriptName": "Rokkitt-Light", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "500": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Medium", + "postscriptName": "Rokkitt-Medium", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "600": { + "familyName": "Rokkitt", + "fullName": "Rokkitt SemiBold", + "postscriptName": "Rokkitt-SemiBold", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "700": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Bold", + "postscriptName": "Rokkitt-Bold", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "800": { + "familyName": "Rokkitt", + "fullName": "Rokkitt ExtraBold", + "postscriptName": "Rokkitt-ExtraBold", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "900": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Black", + "postscriptName": "Rokkitt-Black", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "regular": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Regular", + "postscriptName": "Rokkitt-Regular", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Italic", + "postscriptName": "Rokkitt-Italic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "900italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Black Italic", + "postscriptName": "Rokkitt-BlackItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "800italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt ExtraBold Italic", + "postscriptName": "Rokkitt-ExtraBoldItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "700italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Bold Italic", + "postscriptName": "Rokkitt-BoldItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "600italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt SemiBold Italic", + "postscriptName": "Rokkitt-SemiBoldItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "500italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Medium Italic", + "postscriptName": "Rokkitt-MediumItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "300italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Light Italic", + "postscriptName": "Rokkitt-LightItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "200italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt ExtraLight Italic", + "postscriptName": "Rokkitt-ExtraLightItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "100italic": { + "familyName": "Rokkitt", + "fullName": "Rokkitt Thin Italic", + "postscriptName": "Rokkitt-ThinItalic", + "category": "serif", + "capHeight": 583, + "ascent": 817, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 399, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "romanesco": { + "familyName": "Romanesco", + "fullName": "Romanesco", + "postscriptName": "Romanesco-Regular", + "category": "handwriting", + "capHeight": 1393, + "ascent": 1866, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 780, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 307 + } + }, + "variants": { + "regular": { + "familyName": "Romanesco", + "fullName": "Romanesco", + "postscriptName": "Romanesco-Regular", + "category": "handwriting", + "capHeight": 1393, + "ascent": 1866, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 780, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 307 + } + } + } + } + }, + "ropaSans": { + "familyName": "Ropa Sans", + "fullName": "Ropa Sans Regular", + "postscriptName": "RopaSans-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 841, + "descent": -231, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 434 + } + }, + "variants": { + "regular": { + "familyName": "Ropa Sans", + "fullName": "Ropa Sans Regular", + "postscriptName": "RopaSans-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 841, + "descent": -231, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 377, + "subsets": { + "latin": { + "xWidthAvg": 377 + }, + "thai": { + "xWidthAvg": 434 + } + } + }, + "italic": { + "familyName": "Ropa Sans", + "fullName": "Ropa Sans Italic", + "postscriptName": "RopaSans-Italic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 841, + "descent": -231, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 434 + } + } + } + } + }, + "rosario": { + "familyName": "Rosario", + "fullName": "Rosario Regular", + "postscriptName": "Rosario-Regular", + "category": "sans-serif", + "capHeight": 728, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 641 + } + }, + "variants": { + "300": { + "familyName": "Rosario", + "fullName": "Rosario Light", + "postscriptName": "Rosario-Light", + "category": "sans-serif", + "capHeight": 728, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "500": { + "familyName": "Rosario", + "fullName": "Rosario Medium", + "postscriptName": "Rosario-Medium", + "category": "sans-serif", + "capHeight": 728, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "600": { + "familyName": "Rosario", + "fullName": "Rosario SemiBold", + "postscriptName": "Rosario-SemiBold", + "category": "sans-serif", + "capHeight": 728, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "700": { + "familyName": "Rosario", + "fullName": "Rosario Bold", + "postscriptName": "Rosario-Bold", + "category": "sans-serif", + "capHeight": 728, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "regular": { + "familyName": "Rosario", + "fullName": "Rosario Regular", + "postscriptName": "Rosario-Regular", + "category": "sans-serif", + "capHeight": 728, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 641 + } + } + }, + "italic": { + "familyName": "Rosario", + "fullName": "Rosario Italic", + "postscriptName": "Rosario-Italic", + "category": "sans-serif", + "capHeight": 724, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 642 + } + } + }, + "700italic": { + "familyName": "Rosario", + "fullName": "Rosario Bold Italic", + "postscriptName": "Rosario-BoldItalic", + "category": "sans-serif", + "capHeight": 724, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 642 + } + } + }, + "600italic": { + "familyName": "Rosario", + "fullName": "Rosario SemiBold Italic", + "postscriptName": "Rosario-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 724, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 642 + } + } + }, + "500italic": { + "familyName": "Rosario", + "fullName": "Rosario Medium Italic", + "postscriptName": "Rosario-MediumItalic", + "category": "sans-serif", + "capHeight": 724, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 642 + } + } + }, + "300italic": { + "familyName": "Rosario", + "fullName": "Rosario Light Italic", + "postscriptName": "Rosario-LightItalic", + "category": "sans-serif", + "capHeight": 724, + "ascent": 977, + "descent": -235, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 642 + } + } + } + } + }, + "rosarivo": { + "familyName": "Rosarivo", + "fullName": "Rosarivo", + "postscriptName": "Rosarivo-Regular", + "category": "serif", + "capHeight": 757, + "ascent": 979, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 170, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 667 + } + }, + "variants": { + "regular": { + "familyName": "Rosarivo", + "fullName": "Rosarivo", + "postscriptName": "Rosarivo-Regular", + "category": "serif", + "capHeight": 757, + "ascent": 979, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 170, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 667 + } + } + }, + "italic": { + "familyName": "Rosarivo", + "fullName": "Rosarivo Italic", + "postscriptName": "Rosarivo-Italic", + "category": "serif", + "capHeight": 224, + "ascent": 979, + "descent": -424, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 217, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 667 + } + } + } + } + }, + "rougeScript": { + "familyName": "Rouge Script", + "fullName": "Rouge Script", + "postscriptName": "RougeScript-Regular", + "category": "handwriting", + "capHeight": 385, + "ascent": 1050, + "descent": -419, + "lineGap": 0, + "unitsPerEm": 1250, + "xHeight": 534, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 339 + } + }, + "variants": { + "regular": { + "familyName": "Rouge Script", + "fullName": "Rouge Script", + "postscriptName": "RougeScript-Regular", + "category": "handwriting", + "capHeight": 385, + "ascent": 1050, + "descent": -419, + "lineGap": 0, + "unitsPerEm": 1250, + "xHeight": 534, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 339 + } + } + } + } + }, + "rowdies": { + "familyName": "Rowdies", + "fullName": "Rowdies Regular", + "postscriptName": "Rowdies-Regular", + "category": "display", + "capHeight": 708, + "ascent": 997, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 599 + } + }, + "variants": { + "300": { + "familyName": "Rowdies", + "fullName": "Rowdies Light", + "postscriptName": "Rowdies-Light", + "category": "display", + "capHeight": 708, + "ascent": 997, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "700": { + "familyName": "Rowdies", + "fullName": "Rowdies Bold", + "postscriptName": "Rowdies-Bold", + "category": "display", + "capHeight": 708, + "ascent": 997, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 599 + } + } + }, + "regular": { + "familyName": "Rowdies", + "fullName": "Rowdies Regular", + "postscriptName": "Rowdies-Regular", + "category": "display", + "capHeight": 708, + "ascent": 997, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 599 + } + } + } + } + }, + "rozhaOne": { + "familyName": "Rozha One", + "fullName": "Rozha One Regular", + "postscriptName": "RozhaOne-Regular", + "category": "serif", + "capHeight": 560, + "ascent": 998, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "regular": { + "familyName": "Rozha One", + "fullName": "Rozha One Regular", + "postscriptName": "RozhaOne-Regular", + "category": "serif", + "capHeight": 560, + "ascent": 998, + "descent": -422, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "rubik": { + "familyName": "Rubik", + "fullName": "Rubik Regular", + "postscriptName": "Rubik-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "300": { + "familyName": "Rubik", + "fullName": "Rubik Light", + "postscriptName": "Rubik-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "500": { + "familyName": "Rubik", + "fullName": "Rubik Medium", + "postscriptName": "Rubik-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "600": { + "familyName": "Rubik", + "fullName": "Rubik SemiBold", + "postscriptName": "Rubik-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "700": { + "familyName": "Rubik", + "fullName": "Rubik Bold", + "postscriptName": "Rubik-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "800": { + "familyName": "Rubik", + "fullName": "Rubik ExtraBold", + "postscriptName": "Rubik-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "900": { + "familyName": "Rubik", + "fullName": "Rubik Black", + "postscriptName": "Rubik-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "regular": { + "familyName": "Rubik", + "fullName": "Rubik Regular", + "postscriptName": "Rubik-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 695 + } + } + }, + "italic": { + "familyName": "Rubik", + "fullName": "Rubik Italic", + "postscriptName": "Rubik-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "900italic": { + "familyName": "Rubik", + "fullName": "Rubik Black Italic", + "postscriptName": "Rubik-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "800italic": { + "familyName": "Rubik", + "fullName": "Rubik ExtraBold Italic", + "postscriptName": "Rubik-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "700italic": { + "familyName": "Rubik", + "fullName": "Rubik Bold Italic", + "postscriptName": "Rubik-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "600italic": { + "familyName": "Rubik", + "fullName": "Rubik SemiBold Italic", + "postscriptName": "Rubik-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "500italic": { + "familyName": "Rubik", + "fullName": "Rubik Medium Italic", + "postscriptName": "Rubik-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 696 + } + } + }, + "300italic": { + "familyName": "Rubik", + "fullName": "Rubik Light Italic", + "postscriptName": "Rubik-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 696 + } + } + } + } + }, + "rubik80sFade": { + "familyName": "Rubik 80s Fade", + "fullName": "Rubik 80s Fade Regular", + "postscriptName": "Rubik80sFade-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik 80s Fade", + "fullName": "Rubik 80s Fade Regular", + "postscriptName": "Rubik80sFade-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikBeastly": { + "familyName": "Rubik Beastly", + "fullName": "Rubik Beastly Regular", + "postscriptName": "RubikBeastly-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Beastly", + "fullName": "Rubik Beastly Regular", + "postscriptName": "RubikBeastly-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikBrokenFax": { + "familyName": "Rubik Broken Fax", + "fullName": "Rubik Broken Fax Regular", + "postscriptName": "RubikBrokenFax-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Broken Fax", + "fullName": "Rubik Broken Fax Regular", + "postscriptName": "RubikBrokenFax-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikBubbles": { + "familyName": "Rubik Bubbles", + "fullName": "Rubik Bubbles Regular", + "postscriptName": "RubikBubbles-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Bubbles", + "fullName": "Rubik Bubbles Regular", + "postscriptName": "RubikBubbles-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikBurned": { + "familyName": "Rubik Burned", + "fullName": "Rubik Burned Regular", + "postscriptName": "RubikBurned-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Burned", + "fullName": "Rubik Burned Regular", + "postscriptName": "RubikBurned-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikDirt": { + "familyName": "Rubik Dirt", + "fullName": "Rubik Dirt Regular", + "postscriptName": "RubikDirt-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Dirt", + "fullName": "Rubik Dirt Regular", + "postscriptName": "RubikDirt-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikDistressed": { + "familyName": "Rubik Distressed", + "fullName": "Rubik Distressed Regular", + "postscriptName": "RubikDistressed-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Distressed", + "fullName": "Rubik Distressed Regular", + "postscriptName": "RubikDistressed-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikDoodleShadow": { + "familyName": "Rubik Doodle Shadow", + "fullName": "Rubik Doodle Shadow Regular", + "postscriptName": "RubikDoodleShadow-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Doodle Shadow", + "fullName": "Rubik Doodle Shadow Regular", + "postscriptName": "RubikDoodleShadow-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikDoodleTriangles": { + "familyName": "Rubik Doodle Triangles", + "fullName": "Rubik Doodle Triangles Regular", + "postscriptName": "RubikDoodleTriangles-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Doodle Triangles", + "fullName": "Rubik Doodle Triangles Regular", + "postscriptName": "RubikDoodleTriangles-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikGemstones": { + "familyName": "Rubik Gemstones", + "fullName": "Rubik Gemstones Regular", + "postscriptName": "RubikGemstones-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Gemstones", + "fullName": "Rubik Gemstones Regular", + "postscriptName": "RubikGemstones-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikGlitch": { + "familyName": "Rubik Glitch", + "fullName": "Rubik Glitch Regular", + "postscriptName": "RubikGlitch-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Glitch", + "fullName": "Rubik Glitch Regular", + "postscriptName": "RubikGlitch-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikGlitchPop": { + "familyName": "Rubik Glitch Pop", + "fullName": "Rubik Glitch Pop Regular", + "postscriptName": "RubikGlitchPop-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Glitch Pop", + "fullName": "Rubik Glitch Pop Regular", + "postscriptName": "RubikGlitchPop-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikIso": { + "familyName": "Rubik Iso", + "fullName": "Rubik Iso Regular", + "postscriptName": "RubikIso-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Iso", + "fullName": "Rubik Iso Regular", + "postscriptName": "RubikIso-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikLines": { + "familyName": "Rubik Lines", + "fullName": "Rubik Lines Regular", + "postscriptName": "RubikLines-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Lines", + "fullName": "Rubik Lines Regular", + "postscriptName": "RubikLines-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikMaps": { + "familyName": "Rubik Maps", + "fullName": "Rubik Maps Regular", + "postscriptName": "RubikMaps-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Maps", + "fullName": "Rubik Maps Regular", + "postscriptName": "RubikMaps-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikMarkerHatch": { + "familyName": "Rubik Marker Hatch", + "fullName": "Rubik Marker Hatch Regular", + "postscriptName": "RubikMarkerHatch-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Marker Hatch", + "fullName": "Rubik Marker Hatch Regular", + "postscriptName": "RubikMarkerHatch-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikMaze": { + "familyName": "Rubik Maze", + "fullName": "Rubik Maze Regular", + "postscriptName": "RubikMaze-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Maze", + "fullName": "Rubik Maze Regular", + "postscriptName": "RubikMaze-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikMicrobe": { + "familyName": "Rubik Microbe", + "fullName": "Rubik Microbe Regular", + "postscriptName": "RubikMicrobe-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Microbe", + "fullName": "Rubik Microbe Regular", + "postscriptName": "RubikMicrobe-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikMonoOne": { + "familyName": "Rubik Mono One", + "fullName": "Rubik Mono One Regular", + "postscriptName": "RubikMonoOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 932, + "descent": -306, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 850, + "subsets": { + "latin": { + "xWidthAvg": 850 + }, + "thai": { + "xWidthAvg": 850 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Mono One", + "fullName": "Rubik Mono One Regular", + "postscriptName": "RubikMonoOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 932, + "descent": -306, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 700, + "xWidthAvg": 850, + "subsets": { + "latin": { + "xWidthAvg": 850 + }, + "thai": { + "xWidthAvg": 850 + } + } + } + } + }, + "rubikMoonrocks": { + "familyName": "Rubik Moonrocks", + "fullName": "Rubik Moonrocks Regular", + "postscriptName": "RubikMoonrocks-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Moonrocks", + "fullName": "Rubik Moonrocks Regular", + "postscriptName": "RubikMoonrocks-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikPixels": { + "familyName": "Rubik Pixels", + "fullName": "Rubik Pixels Regular", + "postscriptName": "RubikPixels-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Pixels", + "fullName": "Rubik Pixels Regular", + "postscriptName": "RubikPixels-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikPuddles": { + "familyName": "Rubik Puddles", + "fullName": "Rubik Puddles Regular", + "postscriptName": "RubikPuddles-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Puddles", + "fullName": "Rubik Puddles Regular", + "postscriptName": "RubikPuddles-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikScribble": { + "familyName": "Rubik Scribble", + "fullName": "Rubik Scribble Regular", + "postscriptName": "RubikScribble-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Scribble", + "fullName": "Rubik Scribble Regular", + "postscriptName": "RubikScribble-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikSprayPaint": { + "familyName": "Rubik Spray Paint", + "fullName": "Rubik Spray Paint Regular", + "postscriptName": "RubikSprayPaint-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Spray Paint", + "fullName": "Rubik Spray Paint Regular", + "postscriptName": "RubikSprayPaint-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikStorm": { + "familyName": "Rubik Storm", + "fullName": "Rubik Storm Regular", + "postscriptName": "RubikStorm-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Storm", + "fullName": "Rubik Storm Regular", + "postscriptName": "RubikStorm-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikVinyl": { + "familyName": "Rubik Vinyl", + "fullName": "Rubik Vinyl Regular", + "postscriptName": "RubikVinyl-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Vinyl", + "fullName": "Rubik Vinyl Regular", + "postscriptName": "RubikVinyl-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "rubikWetPaint": { + "familyName": "Rubik Wet Paint", + "fullName": "Rubik Wet Paint Regular", + "postscriptName": "RubikWetPaint-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Rubik Wet Paint", + "fullName": "Rubik Wet Paint Regular", + "postscriptName": "RubikWetPaint-Regular", + "category": "display", + "capHeight": 700, + "ascent": 935, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 528, + "subsets": { + "latin": { + "xWidthAvg": 528 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "ruda": { + "familyName": "Ruda", + "fullName": "Ruda Regular", + "postscriptName": "Ruda-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 276 + } + }, + "variants": { + "500": { + "familyName": "Ruda", + "fullName": "Ruda Medium", + "postscriptName": "Ruda-Medium", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 276 + } + } + }, + "600": { + "familyName": "Ruda", + "fullName": "Ruda SemiBold", + "postscriptName": "Ruda-SemiBold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 276 + } + } + }, + "700": { + "familyName": "Ruda", + "fullName": "Ruda Bold", + "postscriptName": "Ruda-Bold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 276 + } + } + }, + "800": { + "familyName": "Ruda", + "fullName": "Ruda ExtraBold", + "postscriptName": "Ruda-ExtraBold", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 276 + } + } + }, + "900": { + "familyName": "Ruda", + "fullName": "Ruda Black", + "postscriptName": "Ruda-Black", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 276 + } + } + }, + "regular": { + "familyName": "Ruda", + "fullName": "Ruda Regular", + "postscriptName": "Ruda-Regular", + "category": "sans-serif", + "capHeight": 695, + "ascent": 922, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 582, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 276 + } + } + } + } + }, + "rufina": { + "familyName": "Rufina", + "fullName": "Rufina", + "postscriptName": "Rufina-Regular", + "category": "serif", + "capHeight": 668, + "ascent": 945, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 254 + } + }, + "variants": { + "700": { + "familyName": "Rufina", + "fullName": "Rufina Bold", + "postscriptName": "Rufina-Bold", + "category": "serif", + "capHeight": 668, + "ascent": 945, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 242 + } + } + }, + "regular": { + "familyName": "Rufina", + "fullName": "Rufina", + "postscriptName": "Rufina-Regular", + "category": "serif", + "capHeight": 668, + "ascent": 945, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 254 + } + } + } + } + }, + "rugeBoogie": { + "familyName": "Ruge Boogie", + "fullName": "Ruge Boogie Regular", + "postscriptName": "RugeBoogie-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 875, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 449 + } + }, + "variants": { + "regular": { + "familyName": "Ruge Boogie", + "fullName": "Ruge Boogie Regular", + "postscriptName": "RugeBoogie-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 875, + "descent": -375, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 390, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 449 + } + } + } + } + }, + "ruluko": { + "familyName": "Ruluko", + "fullName": "Ruluko", + "postscriptName": "Ruluko", + "category": "sans-serif", + "capHeight": 690, + "ascent": 914, + "descent": -241, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 210 + } + }, + "variants": { + "regular": { + "familyName": "Ruluko", + "fullName": "Ruluko", + "postscriptName": "Ruluko", + "category": "sans-serif", + "capHeight": 690, + "ascent": 914, + "descent": -241, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 210 + } + } + } + } + }, + "rumRaisin": { + "familyName": "Rum Raisin", + "fullName": "Rum Raisin", + "postscriptName": "RumRaisin-Regular", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 2013, + "descent": -629, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 725, + "subsets": { + "latin": { + "xWidthAvg": 725 + }, + "thai": { + "xWidthAvg": 430 + } + }, + "variants": { + "regular": { + "familyName": "Rum Raisin", + "fullName": "Rum Raisin", + "postscriptName": "RumRaisin-Regular", + "category": "sans-serif", + "capHeight": 1466, + "ascent": 2013, + "descent": -629, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1118, + "xWidthAvg": 725, + "subsets": { + "latin": { + "xWidthAvg": 725 + }, + "thai": { + "xWidthAvg": 430 + } + } + } + } + }, + "ruslanDisplay": { + "familyName": "Ruslan Display", + "fullName": "Ruslan Display Regular", + "postscriptName": "RuslanDisplay", + "category": "display", + "capHeight": 500, + "ascent": 688, + "descent": -397, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 610, + "subsets": { + "latin": { + "xWidthAvg": 610 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Ruslan Display", + "fullName": "Ruslan Display Regular", + "postscriptName": "RuslanDisplay", + "category": "display", + "capHeight": 500, + "ascent": 688, + "descent": -397, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 610, + "subsets": { + "latin": { + "xWidthAvg": 610 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "russoOne": { + "familyName": "Russo One", + "fullName": "Russo One", + "postscriptName": "RussoOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 926, + "descent": -279, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Russo One", + "fullName": "Russo One", + "postscriptName": "RussoOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 926, + "descent": -279, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "ruthie": { + "familyName": "Ruthie", + "fullName": "Ruthie Regular", + "postscriptName": "Ruthie-Regular", + "category": "handwriting", + "capHeight": 701, + "ascent": 800, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 315, + "xWidthAvg": 292, + "subsets": { + "latin": { + "xWidthAvg": 292 + }, + "thai": { + "xWidthAvg": 495 + } + }, + "variants": { + "regular": { + "familyName": "Ruthie", + "fullName": "Ruthie Regular", + "postscriptName": "Ruthie-Regular", + "category": "handwriting", + "capHeight": 701, + "ascent": 800, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 315, + "xWidthAvg": 292, + "subsets": { + "latin": { + "xWidthAvg": 292 + }, + "thai": { + "xWidthAvg": 495 + } + } + } + } + }, + "ruwudu": { + "familyName": "Ruwudu", + "fullName": "Ruwudu", + "postscriptName": "Ruwudu-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 867, + "descent": -741, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 1033 + } + }, + "variants": { + "500": { + "familyName": "Ruwudu", + "fullName": "Ruwudu Medium", + "postscriptName": "Ruwudu-Medium", + "category": "serif", + "capHeight": 660, + "ascent": 867, + "descent": -741, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 1033 + } + } + }, + "600": { + "familyName": "Ruwudu", + "fullName": "Ruwudu SemiBold", + "postscriptName": "Ruwudu-SemiBold", + "category": "serif", + "capHeight": 660, + "ascent": 867, + "descent": -741, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 1033 + } + } + }, + "700": { + "familyName": "Ruwudu", + "fullName": "Ruwudu Bold", + "postscriptName": "Ruwudu-Bold", + "category": "serif", + "capHeight": 660, + "ascent": 867, + "descent": -741, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 1033 + } + } + }, + "regular": { + "familyName": "Ruwudu", + "fullName": "Ruwudu", + "postscriptName": "Ruwudu-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 867, + "descent": -741, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 1033 + } + } + } + } + }, + "rye": { + "familyName": "Rye", + "fullName": "Rye Regular", + "postscriptName": "Rye-Regular", + "category": "display", + "capHeight": 363, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 387, + "xWidthAvg": 1081, + "subsets": { + "latin": { + "xWidthAvg": 1081 + }, + "thai": { + "xWidthAvg": 1073 + } + }, + "variants": { + "regular": { + "familyName": "Rye", + "fullName": "Rye Regular", + "postscriptName": "Rye-Regular", + "category": "display", + "capHeight": 363, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 387, + "xWidthAvg": 1081, + "subsets": { + "latin": { + "xWidthAvg": 1081 + }, + "thai": { + "xWidthAvg": 1073 + } + } + } + } + }, + "sTIXTwoText": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Regular", + "postscriptName": "STIXTwoText-Regular", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 605 + } + }, + "variants": { + "500": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Medium", + "postscriptName": "STIXTwoText-Medium", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "600": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text SemiBold", + "postscriptName": "STIXTwoText-SemiBold", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "700": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Bold", + "postscriptName": "STIXTwoText-Bold", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "regular": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Regular", + "postscriptName": "STIXTwoText-Regular", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "italic": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Italic", + "postscriptName": "STIXTwoText-Italic", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "700italic": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Bold Italic", + "postscriptName": "STIXTwoText-BoldItalic", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "600italic": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text SemiBold Italic", + "postscriptName": "STIXTwoText-SemiBoldItalic", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 605 + } + } + }, + "500italic": { + "familyName": "STIX Two Text", + "fullName": "STIX Two Text Medium Italic", + "postscriptName": "STIXTwoText-MediumItalic", + "category": "serif", + "capHeight": 657, + "ascent": 762, + "descent": -238, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 605 + } + } + } + } + }, + "sUSE": { + "familyName": "SUSE", + "fullName": "SUSE Regular", + "postscriptName": "SUSE-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 855 + } + }, + "variants": { + "100": { + "familyName": "SUSE", + "fullName": "SUSE Thin", + "postscriptName": "SUSE-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 865 + } + } + }, + "200": { + "familyName": "SUSE", + "fullName": "SUSE ExtraLight", + "postscriptName": "SUSE-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "300": { + "familyName": "SUSE", + "fullName": "SUSE Light", + "postscriptName": "SUSE-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 858 + } + } + }, + "500": { + "familyName": "SUSE", + "fullName": "SUSE Medium", + "postscriptName": "SUSE-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 851 + } + } + }, + "600": { + "familyName": "SUSE", + "fullName": "SUSE SemiBold", + "postscriptName": "SUSE-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 848 + } + } + }, + "700": { + "familyName": "SUSE", + "fullName": "SUSE Bold", + "postscriptName": "SUSE-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 844 + } + } + }, + "800": { + "familyName": "SUSE", + "fullName": "SUSE ExtraBold", + "postscriptName": "SUSE-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 493, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 841 + } + } + }, + "regular": { + "familyName": "SUSE", + "fullName": "SUSE Regular", + "postscriptName": "SUSE-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 980, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 855 + } + } + } + } + }, + "sacramento": { + "familyName": "Sacramento", + "fullName": "Sacramento", + "postscriptName": "Sacramento-Regular", + "category": "handwriting", + "capHeight": 1550, + "ascent": 1905, + "descent": -1084, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 627, + "xWidthAvg": 672, + "subsets": { + "latin": { + "xWidthAvg": 672 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Sacramento", + "fullName": "Sacramento", + "postscriptName": "Sacramento-Regular", + "category": "handwriting", + "capHeight": 1550, + "ascent": 1905, + "descent": -1084, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 627, + "xWidthAvg": 672, + "subsets": { + "latin": { + "xWidthAvg": 672 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sahitya": { + "familyName": "Sahitya", + "fullName": "Sahitya", + "postscriptName": "Sahitya-Regular", + "category": "serif", + "capHeight": 637, + "ascent": 1106, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "700": { + "familyName": "Sahitya", + "fullName": "Sahitya Bold", + "postscriptName": "Sahitya-Bold", + "category": "serif", + "capHeight": 642, + "ascent": 1106, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 462, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Sahitya", + "fullName": "Sahitya", + "postscriptName": "Sahitya-Regular", + "category": "serif", + "capHeight": 637, + "ascent": 1106, + "descent": -447, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "sail": { + "familyName": "Sail", + "fullName": "Sail", + "postscriptName": "Sail-Regular", + "category": "display", + "capHeight": 666, + "ascent": 860, + "descent": -294, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 435, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 251 + } + }, + "variants": { + "regular": { + "familyName": "Sail", + "fullName": "Sail", + "postscriptName": "Sail-Regular", + "category": "display", + "capHeight": 666, + "ascent": 860, + "descent": -294, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 435, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 251 + } + } + } + } + }, + "saira": { + "familyName": "Saira", + "fullName": "Saira Regular", + "postscriptName": "Saira-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Saira", + "fullName": "Saira Thin", + "postscriptName": "Saira-Thin", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Saira", + "fullName": "Saira ExtraLight", + "postscriptName": "Saira-ExtraLight", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Saira", + "fullName": "Saira Light", + "postscriptName": "Saira-Light", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Saira", + "fullName": "Saira Medium", + "postscriptName": "Saira-Medium", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Saira", + "fullName": "Saira SemiBold", + "postscriptName": "Saira-SemiBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Saira", + "fullName": "Saira Bold", + "postscriptName": "Saira-Bold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Saira", + "fullName": "Saira ExtraBold", + "postscriptName": "Saira-ExtraBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Saira", + "fullName": "Saira Black", + "postscriptName": "Saira-Black", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Saira", + "fullName": "Saira Regular", + "postscriptName": "Saira-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Saira", + "fullName": "Saira Italic", + "postscriptName": "Saira-Italic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 850 + } + } + }, + "900italic": { + "familyName": "Saira", + "fullName": "Saira Black Italic", + "postscriptName": "Saira-BlackItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 747 + } + } + }, + "800italic": { + "familyName": "Saira", + "fullName": "Saira ExtraBold Italic", + "postscriptName": "Saira-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 768 + } + } + }, + "700italic": { + "familyName": "Saira", + "fullName": "Saira Bold Italic", + "postscriptName": "Saira-BoldItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 792 + } + } + }, + "600italic": { + "familyName": "Saira", + "fullName": "Saira SemiBold Italic", + "postscriptName": "Saira-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 816 + } + } + }, + "500italic": { + "familyName": "Saira", + "fullName": "Saira Medium Italic", + "postscriptName": "Saira-MediumItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 835 + } + } + }, + "300italic": { + "familyName": "Saira", + "fullName": "Saira Light Italic", + "postscriptName": "Saira-LightItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "200italic": { + "familyName": "Saira", + "fullName": "Saira ExtraLight Italic", + "postscriptName": "Saira-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 871 + } + } + }, + "100italic": { + "familyName": "Saira", + "fullName": "Saira Thin Italic", + "postscriptName": "Saira-ThinItalic", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 878 + } + } + } + } + }, + "sairaCondensed": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Regular", + "postscriptName": "SairaCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Thin", + "postscriptName": "SairaCondensed-Thin", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 349, + "subsets": { + "latin": { + "xWidthAvg": 349 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed ExtraLight", + "postscriptName": "SairaCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Light", + "postscriptName": "SairaCondensed-Light", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Medium", + "postscriptName": "SairaCondensed-Medium", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed SemiBold", + "postscriptName": "SairaCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Bold", + "postscriptName": "SairaCondensed-Bold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 357, + "subsets": { + "latin": { + "xWidthAvg": 357 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed ExtraBold", + "postscriptName": "SairaCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 362, + "subsets": { + "latin": { + "xWidthAvg": 362 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Black", + "postscriptName": "SairaCondensed-Black", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Saira Condensed", + "fullName": "Saira Condensed Regular", + "postscriptName": "SairaCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sairaExtraCondensed": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Regular", + "postscriptName": "SairaExtraCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 301, + "subsets": { + "latin": { + "xWidthAvg": 301 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Thin", + "postscriptName": "SairaExtraCondensed-Thin", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 297, + "subsets": { + "latin": { + "xWidthAvg": 297 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed ExtraLight", + "postscriptName": "SairaExtraCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 299, + "subsets": { + "latin": { + "xWidthAvg": 299 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Light", + "postscriptName": "SairaExtraCondensed-Light", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 299, + "subsets": { + "latin": { + "xWidthAvg": 299 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Medium", + "postscriptName": "SairaExtraCondensed-Medium", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed SemiBold", + "postscriptName": "SairaExtraCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 307, + "subsets": { + "latin": { + "xWidthAvg": 307 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Bold", + "postscriptName": "SairaExtraCondensed-Bold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed ExtraBold", + "postscriptName": "SairaExtraCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 310, + "subsets": { + "latin": { + "xWidthAvg": 310 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Black", + "postscriptName": "SairaExtraCondensed-Black", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Saira Extra Condensed", + "fullName": "Saira ExtraCondensed Regular", + "postscriptName": "SairaExtraCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 301, + "subsets": { + "latin": { + "xWidthAvg": 301 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sairaSemiCondensed": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Regular", + "postscriptName": "SairaSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Thin", + "postscriptName": "SairaSemiCondensed-Thin", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed ExtraLight", + "postscriptName": "SairaSemiCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Light", + "postscriptName": "SairaSemiCondensed-Light", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Medium", + "postscriptName": "SairaSemiCondensed-Medium", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed SemiBold", + "postscriptName": "SairaSemiCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Bold", + "postscriptName": "SairaSemiCondensed-Bold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed ExtraBold", + "postscriptName": "SairaSemiCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Black", + "postscriptName": "SairaSemiCondensed-Black", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Saira Semi Condensed", + "fullName": "Saira SemiCondensed Regular", + "postscriptName": "SairaSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sairaStencilOne": { + "familyName": "Saira Stencil One", + "fullName": "Saira Stencil One Regular", + "postscriptName": "SairaStencilOne-Regular", + "category": "display", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Saira Stencil One", + "fullName": "Saira Stencil One Regular", + "postscriptName": "SairaStencilOne-Regular", + "category": "display", + "capHeight": 688, + "ascent": 1135, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "salsa": { + "familyName": "Salsa", + "fullName": "Salsa-Regular", + "postscriptName": "Salsa-Regular", + "category": "display", + "capHeight": 82, + "ascent": 974, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 113, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 320 + } + }, + "variants": { + "regular": { + "familyName": "Salsa", + "fullName": "Salsa-Regular", + "postscriptName": "Salsa-Regular", + "category": "display", + "capHeight": 82, + "ascent": 974, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 113, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 320 + } + } + } + } + }, + "sanchez": { + "familyName": "Sanchez", + "fullName": "Sanchez", + "postscriptName": "Sanchez-Regular", + "category": "serif", + "capHeight": 718, + "ascent": 1004, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 313 + } + }, + "variants": { + "regular": { + "familyName": "Sanchez", + "fullName": "Sanchez", + "postscriptName": "Sanchez-Regular", + "category": "serif", + "capHeight": 718, + "ascent": 1004, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 313 + } + } + }, + "italic": { + "familyName": "Sanchez", + "fullName": "Sanchez Italic", + "postscriptName": "Sanchez-Italic", + "category": "serif", + "capHeight": 718, + "ascent": 1004, + "descent": -274, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 313 + } + } + } + } + }, + "sancreek": { + "familyName": "Sancreek", + "fullName": "Sancreek Regular", + "postscriptName": "Sancreek-Regular", + "category": "display", + "capHeight": 281, + "ascent": 2104, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 402, + "xWidthAvg": 953, + "subsets": { + "latin": { + "xWidthAvg": 953 + }, + "thai": { + "xWidthAvg": 748 + } + }, + "variants": { + "regular": { + "familyName": "Sancreek", + "fullName": "Sancreek Regular", + "postscriptName": "Sancreek-Regular", + "category": "display", + "capHeight": 281, + "ascent": 2104, + "descent": -738, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 402, + "xWidthAvg": 953, + "subsets": { + "latin": { + "xWidthAvg": 953 + }, + "thai": { + "xWidthAvg": 748 + } + } + } + } + }, + "sankofaDisplay": { + "familyName": "Sankofa Display", + "fullName": "Sankofa Display Regular", + "postscriptName": "SankofaDisplay-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 419 + } + }, + "variants": { + "regular": { + "familyName": "Sankofa Display", + "fullName": "Sankofa Display Regular", + "postscriptName": "SankofaDisplay-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 419 + } + } + } + } + }, + "sansita": { + "familyName": "Sansita", + "fullName": "Sansita Regular", + "postscriptName": "Sansita-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "700": { + "familyName": "Sansita", + "fullName": "Sansita Bold", + "postscriptName": "Sansita-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "800": { + "familyName": "Sansita", + "fullName": "Sansita ExtraBold", + "postscriptName": "Sansita-ExtraBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "900": { + "familyName": "Sansita", + "fullName": "Sansita Black", + "postscriptName": "Sansita-Black", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "regular": { + "familyName": "Sansita", + "fullName": "Sansita Regular", + "postscriptName": "Sansita-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "italic": { + "familyName": "Sansita", + "fullName": "Sansita Italic", + "postscriptName": "Sansita-Italic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "900italic": { + "familyName": "Sansita", + "fullName": "Sansita Black Italic", + "postscriptName": "Sansita-BlackItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "800italic": { + "familyName": "Sansita", + "fullName": "Sansita ExtraBold Italic", + "postscriptName": "Sansita-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "700italic": { + "familyName": "Sansita", + "fullName": "Sansita Bold Italic", + "postscriptName": "Sansita-BoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "sansitaSwashed": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed Regular", + "postscriptName": "SansitaSwashed-Regular", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "300": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed Light", + "postscriptName": "SansitaSwashed-Light", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "500": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed Medium", + "postscriptName": "SansitaSwashed-Medium", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "600": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed SemiBold", + "postscriptName": "SansitaSwashed-SemiBold", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "700": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed Bold", + "postscriptName": "SansitaSwashed-Bold", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "800": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed ExtraBold", + "postscriptName": "SansitaSwashed-ExtraBold", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "900": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed Black", + "postscriptName": "SansitaSwashed-Black", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 514 + } + } + }, + "regular": { + "familyName": "Sansita Swashed", + "fullName": "Sansita Swashed Regular", + "postscriptName": "SansitaSwashed-Regular", + "category": "display", + "capHeight": 660, + "ascent": 1020, + "descent": -180, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "sarabun": { + "familyName": "Sarabun", + "fullName": "Sarabun Regular", + "postscriptName": "Sarabun-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 555 + } + }, + "variants": { + "100": { + "familyName": "Sarabun", + "fullName": "Sarabun Thin", + "postscriptName": "Sarabun-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 534 + } + } + }, + "200": { + "familyName": "Sarabun", + "fullName": "Sarabun ExtraLight", + "postscriptName": "Sarabun-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 541 + } + } + }, + "300": { + "familyName": "Sarabun", + "fullName": "Sarabun Light", + "postscriptName": "Sarabun-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 548 + } + } + }, + "500": { + "familyName": "Sarabun", + "fullName": "Sarabun Medium", + "postscriptName": "Sarabun-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "600": { + "familyName": "Sarabun", + "fullName": "Sarabun SemiBold", + "postscriptName": "Sarabun-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 569 + } + } + }, + "700": { + "familyName": "Sarabun", + "fullName": "Sarabun Bold", + "postscriptName": "Sarabun-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "800": { + "familyName": "Sarabun", + "fullName": "Sarabun ExtraBold", + "postscriptName": "Sarabun-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "regular": { + "familyName": "Sarabun", + "fullName": "Sarabun Regular", + "postscriptName": "Sarabun-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "italic": { + "familyName": "Sarabun", + "fullName": "Sarabun Italic", + "postscriptName": "Sarabun-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 437, + "subsets": { + "latin": { + "xWidthAvg": 437 + }, + "thai": { + "xWidthAvg": 555 + } + } + }, + "800italic": { + "familyName": "Sarabun", + "fullName": "Sarabun ExtraBold Italic", + "postscriptName": "Sarabun-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 583 + } + } + }, + "700italic": { + "familyName": "Sarabun", + "fullName": "Sarabun Bold Italic", + "postscriptName": "Sarabun-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "600italic": { + "familyName": "Sarabun", + "fullName": "Sarabun SemiBold Italic", + "postscriptName": "Sarabun-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 570 + } + } + }, + "500italic": { + "familyName": "Sarabun", + "fullName": "Sarabun Medium Italic", + "postscriptName": "Sarabun-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "300italic": { + "familyName": "Sarabun", + "fullName": "Sarabun Light Italic", + "postscriptName": "Sarabun-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 548 + } + } + }, + "200italic": { + "familyName": "Sarabun", + "fullName": "Sarabun ExtraLight Italic", + "postscriptName": "Sarabun-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 541 + } + } + }, + "100italic": { + "familyName": "Sarabun", + "fullName": "Sarabun Thin Italic", + "postscriptName": "Sarabun-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1068, + "descent": -232, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 534 + } + } + } + } + }, + "sarala": { + "familyName": "Sarala", + "fullName": "Sarala", + "postscriptName": "Sarala-Regular", + "category": "sans-serif", + "capHeight": 1450, + "ascent": 2398, + "descent": -941, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1053, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1220 + } + }, + "variants": { + "700": { + "familyName": "Sarala", + "fullName": "Sarala Bold", + "postscriptName": "Sarala-Bold", + "category": "sans-serif", + "capHeight": 1452, + "ascent": 2398, + "descent": -941, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1073, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 1220 + } + } + }, + "regular": { + "familyName": "Sarala", + "fullName": "Sarala", + "postscriptName": "Sarala-Regular", + "category": "sans-serif", + "capHeight": 1450, + "ascent": 2398, + "descent": -941, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1053, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1220 + } + } + } + } + }, + "sarina": { + "familyName": "Sarina", + "fullName": "Sarina", + "postscriptName": "Sarina-Regular", + "category": "display", + "capHeight": 1530, + "ascent": 1916, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1022, + "xWidthAvg": 1284, + "subsets": { + "latin": { + "xWidthAvg": 1284 + }, + "thai": { + "xWidthAvg": 2896 + } + }, + "variants": { + "regular": { + "familyName": "Sarina", + "fullName": "Sarina", + "postscriptName": "Sarina-Regular", + "category": "display", + "capHeight": 1530, + "ascent": 1916, + "descent": -644, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1022, + "xWidthAvg": 1284, + "subsets": { + "latin": { + "xWidthAvg": 1284 + }, + "thai": { + "xWidthAvg": 2896 + } + } + } + } + }, + "sarpanch": { + "familyName": "Sarpanch", + "fullName": "Sarpanch Regular", + "postscriptName": "Sarpanch-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 488 + } + }, + "variants": { + "500": { + "familyName": "Sarpanch", + "fullName": "Sarpanch Medium", + "postscriptName": "Sarpanch-Medium", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "600": { + "familyName": "Sarpanch", + "fullName": "Sarpanch SemiBold", + "postscriptName": "Sarpanch-SemiBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "700": { + "familyName": "Sarpanch", + "fullName": "Sarpanch Bold", + "postscriptName": "Sarpanch-Bold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 524, + "subsets": { + "latin": { + "xWidthAvg": 524 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "800": { + "familyName": "Sarpanch", + "fullName": "Sarpanch ExtraBold", + "postscriptName": "Sarpanch-ExtraBold", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 535, + "subsets": { + "latin": { + "xWidthAvg": 535 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "900": { + "familyName": "Sarpanch", + "fullName": "Sarpanch Black", + "postscriptName": "Sarpanch-Black", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "regular": { + "familyName": "Sarpanch", + "fullName": "Sarpanch Regular", + "postscriptName": "Sarpanch-Regular", + "category": "sans-serif", + "capHeight": 622, + "ascent": 1050, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 488 + } + } + } + } + }, + "sassyFrass": { + "familyName": "Sassy Frass", + "fullName": "Sassy Frass Regular", + "postscriptName": "SassyFrass-Regular", + "category": "handwriting", + "capHeight": 550, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 224, + "subsets": { + "latin": { + "xWidthAvg": 224 + }, + "thai": { + "xWidthAvg": 313 + } + }, + "variants": { + "regular": { + "familyName": "Sassy Frass", + "fullName": "Sassy Frass Regular", + "postscriptName": "SassyFrass-Regular", + "category": "handwriting", + "capHeight": 550, + "ascent": 800, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 220, + "xWidthAvg": 224, + "subsets": { + "latin": { + "xWidthAvg": 224 + }, + "thai": { + "xWidthAvg": 313 + } + } + } + } + }, + "satisfy": { + "familyName": "Satisfy", + "fullName": "Satisfy Regular", + "postscriptName": "Satisfy-Regular", + "category": "handwriting", + "capHeight": 767, + "ascent": 957, + "descent": -501, + "lineGap": 17, + "unitsPerEm": 1024, + "xHeight": 417, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 287 + } + }, + "variants": { + "regular": { + "familyName": "Satisfy", + "fullName": "Satisfy Regular", + "postscriptName": "Satisfy-Regular", + "category": "handwriting", + "capHeight": 767, + "ascent": 957, + "descent": -501, + "lineGap": 17, + "unitsPerEm": 1024, + "xHeight": 417, + "xWidthAvg": 389, + "subsets": { + "latin": { + "xWidthAvg": 389 + }, + "thai": { + "xWidthAvg": 287 + } + } + } + } + }, + "sawarabiGothic": { + "familyName": "Sawarabi Gothic", + "fullName": "Sawarabi Gothic", + "postscriptName": "SawarabiGothic-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1110, + "descent": -272, + "lineGap": 90, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "regular": { + "familyName": "Sawarabi Gothic", + "fullName": "Sawarabi Gothic", + "postscriptName": "SawarabiGothic-Regular", + "category": "sans-serif", + "capHeight": 725, + "ascent": 1110, + "descent": -272, + "lineGap": 90, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "sawarabiMincho": { + "familyName": "Sawarabi Mincho", + "fullName": "Sawarabi Mincho", + "postscriptName": "SawarabiMincho-Regular", + "category": "serif", + "capHeight": 727, + "ascent": 1070, + "descent": -319, + "lineGap": 90, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 364 + } + }, + "variants": { + "regular": { + "familyName": "Sawarabi Mincho", + "fullName": "Sawarabi Mincho", + "postscriptName": "SawarabiMincho-Regular", + "category": "serif", + "capHeight": 727, + "ascent": 1070, + "descent": -319, + "lineGap": 90, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 364 + } + } + } + } + }, + "scada": { + "familyName": "Scada", + "fullName": "Scada Regular", + "postscriptName": "Scada-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 955, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 270 + } + }, + "variants": { + "700": { + "familyName": "Scada", + "fullName": "Scada Bold", + "postscriptName": "Scada-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 955, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 270 + } + } + }, + "regular": { + "familyName": "Scada", + "fullName": "Scada Regular", + "postscriptName": "Scada-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 955, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 270 + } + } + }, + "italic": { + "familyName": "Scada", + "fullName": "Scada Italic", + "postscriptName": "Scada-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 955, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 270 + } + } + }, + "700italic": { + "familyName": "Scada", + "fullName": "Scada Bold Italic", + "postscriptName": "Scada-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 955, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 270 + } + } + } + } + }, + "scheherazadeNew": { + "familyName": "Scheherazade New", + "fullName": "Scheherazade New", + "postscriptName": "ScheherazadeNew-Regular", + "category": "serif", + "capHeight": 1034, + "ascent": 2750, + "descent": -1427, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 684, + "xWidthAvg": 770, + "subsets": { + "latin": { + "xWidthAvg": 770 + }, + "thai": { + "xWidthAvg": 1646 + } + }, + "variants": { + "500": { + "familyName": "Scheherazade New", + "fullName": "Scheherazade New Medium", + "postscriptName": "ScheherazadeNew-Medium", + "category": "serif", + "capHeight": 1034, + "ascent": 2750, + "descent": -1427, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 684, + "xWidthAvg": 791, + "subsets": { + "latin": { + "xWidthAvg": 791 + }, + "thai": { + "xWidthAvg": 1646 + } + } + }, + "600": { + "familyName": "Scheherazade New", + "fullName": "Scheherazade New SemiBold", + "postscriptName": "ScheherazadeNew-SemiBold", + "category": "serif", + "capHeight": 1034, + "ascent": 2750, + "descent": -1427, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 684, + "xWidthAvg": 812, + "subsets": { + "latin": { + "xWidthAvg": 812 + }, + "thai": { + "xWidthAvg": 1646 + } + } + }, + "700": { + "familyName": "Scheherazade New", + "fullName": "Scheherazade New Bold", + "postscriptName": "ScheherazadeNew-Bold", + "category": "serif", + "capHeight": 1034, + "ascent": 2750, + "descent": -1427, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 684, + "xWidthAvg": 833, + "subsets": { + "latin": { + "xWidthAvg": 833 + }, + "thai": { + "xWidthAvg": 1646 + } + } + }, + "regular": { + "familyName": "Scheherazade New", + "fullName": "Scheherazade New", + "postscriptName": "ScheherazadeNew-Regular", + "category": "serif", + "capHeight": 1034, + "ascent": 2750, + "descent": -1427, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 684, + "xWidthAvg": 770, + "subsets": { + "latin": { + "xWidthAvg": 770 + }, + "thai": { + "xWidthAvg": 1646 + } + } + } + } + }, + "schibstedGrotesk": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Regular", + "postscriptName": "SchibstedGrotesk-Regular", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "500": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Medium", + "postscriptName": "SchibstedGrotesk-Medium", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 968, + "subsets": { + "latin": { + "xWidthAvg": 968 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk SemiBold", + "postscriptName": "SchibstedGrotesk-SemiBold", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 984, + "subsets": { + "latin": { + "xWidthAvg": 984 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Bold", + "postscriptName": "SchibstedGrotesk-Bold", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 1003, + "subsets": { + "latin": { + "xWidthAvg": 1003 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "800": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk ExtraBold", + "postscriptName": "SchibstedGrotesk-ExtraBold", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 1023, + "subsets": { + "latin": { + "xWidthAvg": 1023 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Black", + "postscriptName": "SchibstedGrotesk-Black", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 1042, + "subsets": { + "latin": { + "xWidthAvg": 1042 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Regular", + "postscriptName": "SchibstedGrotesk-Regular", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 954, + "subsets": { + "latin": { + "xWidthAvg": 954 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "italic": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Italic", + "postscriptName": "SchibstedGrotesk-Italic", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900italic": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Black Italic", + "postscriptName": "SchibstedGrotesk-BlackItalic", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 1005, + "subsets": { + "latin": { + "xWidthAvg": 1005 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "800italic": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk ExtraBold Italic", + "postscriptName": "SchibstedGrotesk-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 989, + "subsets": { + "latin": { + "xWidthAvg": 989 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700italic": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Bold Italic", + "postscriptName": "SchibstedGrotesk-BoldItalic", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 973, + "subsets": { + "latin": { + "xWidthAvg": 973 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "600italic": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk SemiBold Italic", + "postscriptName": "SchibstedGrotesk-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 957, + "subsets": { + "latin": { + "xWidthAvg": 957 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "500italic": { + "familyName": "Schibsted Grotesk", + "fullName": "Schibsted Grotesk Medium Italic", + "postscriptName": "SchibstedGrotesk-MediumItalic", + "category": "sans-serif", + "capHeight": 1440, + "ascent": 2000, + "descent": -528, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1080, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "schoolbell": { + "familyName": "Schoolbell", + "fullName": "Schoolbell Regular", + "postscriptName": "Schoolbell-Regular", + "category": "handwriting", + "capHeight": 770, + "ascent": 1019, + "descent": -383, + "lineGap": 24, + "unitsPerEm": 1024, + "xHeight": 485, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 317 + } + }, + "variants": { + "regular": { + "familyName": "Schoolbell", + "fullName": "Schoolbell Regular", + "postscriptName": "Schoolbell-Regular", + "category": "handwriting", + "capHeight": 770, + "ascent": 1019, + "descent": -383, + "lineGap": 24, + "unitsPerEm": 1024, + "xHeight": 485, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 317 + } + } + } + } + }, + "scopeOne": { + "familyName": "Scope One", + "fullName": "Scope One", + "postscriptName": "ScopeOne-Regular", + "category": "serif", + "capHeight": 645, + "ascent": 928, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Scope One", + "fullName": "Scope One", + "postscriptName": "ScopeOne-Regular", + "category": "serif", + "capHeight": 645, + "ascent": 928, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "seaweedScript": { + "familyName": "Seaweed Script", + "fullName": "Seaweed Script", + "postscriptName": "SeaweedScript-Regular", + "category": "display", + "capHeight": 765, + "ascent": 969, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 380, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 317 + } + }, + "variants": { + "regular": { + "familyName": "Seaweed Script", + "fullName": "Seaweed Script", + "postscriptName": "SeaweedScript-Regular", + "category": "display", + "capHeight": 765, + "ascent": 969, + "descent": -421, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 380, + "xWidthAvg": 372, + "subsets": { + "latin": { + "xWidthAvg": 372 + }, + "thai": { + "xWidthAvg": 317 + } + } + } + } + }, + "secularOne": { + "familyName": "Secular One", + "fullName": "Secular One Regular", + "postscriptName": "SecularOne-Regular", + "category": "sans-serif", + "capHeight": 666, + "ascent": 1022, + "descent": -433, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 662 + } + }, + "variants": { + "regular": { + "familyName": "Secular One", + "fullName": "Secular One Regular", + "postscriptName": "SecularOne-Regular", + "category": "sans-serif", + "capHeight": 666, + "ascent": 1022, + "descent": -433, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 662 + } + } + } + } + }, + "sedan": { + "familyName": "Sedan", + "fullName": "Sedan Regular", + "postscriptName": "Sedan-Regular", + "category": "serif", + "capHeight": 675, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Sedan", + "fullName": "Sedan Regular", + "postscriptName": "Sedan-Regular", + "category": "serif", + "capHeight": 675, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Sedan", + "fullName": "Sedan Italic", + "postscriptName": "Sedan-Italic", + "category": "serif", + "capHeight": 675, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 376, + "subsets": { + "latin": { + "xWidthAvg": 376 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sedanSC": { + "familyName": "Sedan SC", + "fullName": "Sedan SC Regular", + "postscriptName": "SedanSC-Regular", + "category": "serif", + "capHeight": 675, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Sedan SC", + "fullName": "Sedan SC Regular", + "postscriptName": "SedanSC-Regular", + "category": "serif", + "capHeight": 675, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 438, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sedgwickAve": { + "familyName": "Sedgwick Ave", + "fullName": "Sedgwick Ave Regular", + "postscriptName": "SedgwickAve-Regular", + "category": "handwriting", + "capHeight": 950, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 660, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Sedgwick Ave", + "fullName": "Sedgwick Ave Regular", + "postscriptName": "SedgwickAve-Regular", + "category": "handwriting", + "capHeight": 950, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 660, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "sedgwickAveDisplay": { + "familyName": "Sedgwick Ave Display", + "fullName": "Sedgwick Ave Display Regular", + "postscriptName": "SedgwickAveDisplay-Regular", + "category": "handwriting", + "capHeight": 950, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 650, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Sedgwick Ave Display", + "fullName": "Sedgwick Ave Display Regular", + "postscriptName": "SedgwickAveDisplay-Regular", + "category": "handwriting", + "capHeight": 950, + "ascent": 937, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 650, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "segoeUI": { + "familyName": "Segoe UI", + "fullName": "Segoe UI", + "postscriptName": "SegoeUI", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1322 + } + }, + "variants": { + "300": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Light", + "postscriptName": "SegoeUI-Light", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 860, + "subsets": { + "latin": { + "xWidthAvg": 860 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "350": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Semilight", + "postscriptName": "SegoeUI-Semilight", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 883, + "subsets": { + "latin": { + "xWidthAvg": 883 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "600": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Semibold", + "postscriptName": "SegoeUI-Semibold", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 937, + "subsets": { + "latin": { + "xWidthAvg": 937 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "700": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Bold", + "postscriptName": "SegoeUI-Bold", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 973, + "subsets": { + "latin": { + "xWidthAvg": 973 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "900": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Black", + "postscriptName": "SegoeUIBlack", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2188, + "descent": -578, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1021, + "subsets": { + "latin": { + "xWidthAvg": 1021 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "regular": { + "familyName": "Segoe UI", + "fullName": "Segoe UI", + "postscriptName": "SegoeUI", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "italic": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Italic", + "postscriptName": "SegoeUI-Italic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "900italic": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Black Italic", + "postscriptName": "SegoeUIBlack-Italic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 1018, + "subsets": { + "latin": { + "xWidthAvg": 1018 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700italic": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Bold Italic", + "postscriptName": "SegoeUI-BoldItalic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "600italic": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Semibold Italic", + "postscriptName": "SegoeUI-SemiboldItalic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 9, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 927, + "subsets": { + "latin": { + "xWidthAvg": 927 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "350italic": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Semilight Italic", + "postscriptName": "SegoeUI-SemilightItalic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 1322 + } + } + }, + "300italic": { + "familyName": "Segoe UI", + "fullName": "Segoe UI Light Italic", + "postscriptName": "SegoeUI-LightItalic", + "category": "sans-serif", + "capHeight": 1434, + "ascent": 2210, + "descent": -514, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 1322 + } + } + } + } + }, + "sen": { + "familyName": "Sen", + "fullName": "Sen Regular", + "postscriptName": "Sen-Regular", + "category": "sans-serif", + "capHeight": 670, + "ascent": 962, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 500, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 679 + } + }, + "variants": { + "500": { + "familyName": "Sen", + "fullName": "Sen Medium", + "postscriptName": "Sen-Medium", + "category": "sans-serif", + "capHeight": 670, + "ascent": 962, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 502, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 685 + } + } + }, + "600": { + "familyName": "Sen", + "fullName": "Sen SemiBold", + "postscriptName": "Sen-SemiBold", + "category": "sans-serif", + "capHeight": 670, + "ascent": 962, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 504, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 691 + } + } + }, + "700": { + "familyName": "Sen", + "fullName": "Sen Bold", + "postscriptName": "Sen-Bold", + "category": "sans-serif", + "capHeight": 670, + "ascent": 962, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 505, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 694 + } + } + }, + "800": { + "familyName": "Sen", + "fullName": "Sen ExtraBold", + "postscriptName": "Sen-ExtraBold", + "category": "sans-serif", + "capHeight": 670, + "ascent": 962, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 510, + "xWidthAvg": 515, + "subsets": { + "latin": { + "xWidthAvg": 515 + }, + "thai": { + "xWidthAvg": 708 + } + } + }, + "regular": { + "familyName": "Sen", + "fullName": "Sen Regular", + "postscriptName": "Sen-Regular", + "category": "sans-serif", + "capHeight": 670, + "ascent": 962, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 500, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 679 + } + } + } + } + }, + "sendFlowers": { + "familyName": "Send Flowers", + "fullName": "Send Flowers Regular", + "postscriptName": "SendFlowers-Regular", + "category": "handwriting", + "capHeight": 710, + "ascent": 975, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 395, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 499 + } + }, + "variants": { + "regular": { + "familyName": "Send Flowers", + "fullName": "Send Flowers Regular", + "postscriptName": "SendFlowers-Regular", + "category": "handwriting", + "capHeight": 710, + "ascent": 975, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 395, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 499 + } + } + } + } + }, + "sevillana": { + "familyName": "Sevillana", + "fullName": "Sevillana", + "postscriptName": "Sevillana-Regular", + "category": "display", + "capHeight": 1679, + "ascent": 2062, + "descent": -717, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 860, + "xWidthAvg": 769, + "subsets": { + "latin": { + "xWidthAvg": 769 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Sevillana", + "fullName": "Sevillana", + "postscriptName": "Sevillana-Regular", + "category": "display", + "capHeight": 1679, + "ascent": 2062, + "descent": -717, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 860, + "xWidthAvg": 769, + "subsets": { + "latin": { + "xWidthAvg": 769 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "seymourOne": { + "familyName": "Seymour One", + "fullName": "Seymour One Regular", + "postscriptName": "SeymourOne", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2015, + "descent": -559, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1026, + "xWidthAvg": 1468, + "subsets": { + "latin": { + "xWidthAvg": 1468 + }, + "thai": { + "xWidthAvg": 1920 + } + }, + "variants": { + "regular": { + "familyName": "Seymour One", + "fullName": "Seymour One Regular", + "postscriptName": "SeymourOne", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 2015, + "descent": -559, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1026, + "xWidthAvg": 1468, + "subsets": { + "latin": { + "xWidthAvg": 1468 + }, + "thai": { + "xWidthAvg": 1920 + } + } + } + } + }, + "shadowsIntoLight": { + "familyName": "Shadows Into Light", + "fullName": "Shadows Into Light", + "postscriptName": "ShadowsIntoLight", + "category": "handwriting", + "capHeight": 648, + "ascent": 1203, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 616, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 461 + } + }, + "variants": { + "regular": { + "familyName": "Shadows Into Light", + "fullName": "Shadows Into Light", + "postscriptName": "ShadowsIntoLight", + "category": "handwriting", + "capHeight": 648, + "ascent": 1203, + "descent": -442, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 616, + "xWidthAvg": 386, + "subsets": { + "latin": { + "xWidthAvg": 386 + }, + "thai": { + "xWidthAvg": 461 + } + } + } + } + }, + "shadowsIntoLightTwo": { + "familyName": "Shadows Into Light Two", + "fullName": "Shadows Into Light Two", + "postscriptName": "ShadowsIntoLightTwo-Regular", + "category": "handwriting", + "capHeight": 848, + "ascent": 1145, + "descent": -341, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 610, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Shadows Into Light Two", + "fullName": "Shadows Into Light Two", + "postscriptName": "ShadowsIntoLightTwo-Regular", + "category": "handwriting", + "capHeight": 848, + "ascent": 1145, + "descent": -341, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 610, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "shalimar": { + "familyName": "Shalimar", + "fullName": "Shalimar Regular", + "postscriptName": "Shalimar-Regular", + "category": "handwriting", + "capHeight": 560, + "ascent": 800, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 315, + "xWidthAvg": 236, + "subsets": { + "latin": { + "xWidthAvg": 236 + }, + "thai": { + "xWidthAvg": 595 + } + }, + "variants": { + "regular": { + "familyName": "Shalimar", + "fullName": "Shalimar Regular", + "postscriptName": "Shalimar-Regular", + "category": "handwriting", + "capHeight": 560, + "ascent": 800, + "descent": -420, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 315, + "xWidthAvg": 236, + "subsets": { + "latin": { + "xWidthAvg": 236 + }, + "thai": { + "xWidthAvg": 595 + } + } + } + } + }, + "shantellSans": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Regular", + "postscriptName": "ShantellSans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 700 + } + }, + "variants": { + "300": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Light", + "postscriptName": "ShantellSans-Light", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Medium", + "postscriptName": "ShantellSans-Medium", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans SemiBold", + "postscriptName": "ShantellSans-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 530, + "subsets": { + "latin": { + "xWidthAvg": 530 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Bold", + "postscriptName": "ShantellSans-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 542, + "subsets": { + "latin": { + "xWidthAvg": 542 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans ExtraBold", + "postscriptName": "ShantellSans-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 554, + "subsets": { + "latin": { + "xWidthAvg": 554 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "regular": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Regular", + "postscriptName": "ShantellSans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 505, + "subsets": { + "latin": { + "xWidthAvg": 505 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "italic": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Italic", + "postscriptName": "ShantellSans-Italic", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800italic": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans ExtraBold Italic", + "postscriptName": "ShantellSans-ExtraBoldItalic", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700italic": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Bold Italic", + "postscriptName": "ShantellSans-BoldItalic", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 509, + "xWidthAvg": 543, + "subsets": { + "latin": { + "xWidthAvg": 543 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600italic": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans SemiBold Italic", + "postscriptName": "ShantellSans-SemiBoldItalic", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "500italic": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Medium Italic", + "postscriptName": "ShantellSans-MediumItalic", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "300italic": { + "familyName": "Shantell Sans", + "fullName": "Shantell Sans Light Italic", + "postscriptName": "ShantellSans-LightItalic", + "category": "display", + "capHeight": 700, + "ascent": 1020, + "descent": -320, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 700 + } + } + } + } + }, + "shanti": { + "familyName": "Shanti", + "fullName": "Shanti Regular", + "postscriptName": "Shanti-Regular", + "category": "sans-serif", + "capHeight": 1412, + "ascent": 2012, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 984, + "xWidthAvg": 905, + "subsets": { + "latin": { + "xWidthAvg": 905 + }, + "thai": { + "xWidthAvg": 1318 + } + }, + "variants": { + "regular": { + "familyName": "Shanti", + "fullName": "Shanti Regular", + "postscriptName": "Shanti-Regular", + "category": "sans-serif", + "capHeight": 1412, + "ascent": 2012, + "descent": -599, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 984, + "xWidthAvg": 905, + "subsets": { + "latin": { + "xWidthAvg": 905 + }, + "thai": { + "xWidthAvg": 1318 + } + } + } + } + }, + "share": { + "familyName": "Share", + "fullName": "Share Regular", + "postscriptName": "Share-Regular", + "category": "sans-serif", + "capHeight": 707, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 502 + } + }, + "variants": { + "700": { + "familyName": "Share", + "fullName": "Share Bold", + "postscriptName": "Share-Bold", + "category": "sans-serif", + "capHeight": 709, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 522 + } + } + }, + "regular": { + "familyName": "Share", + "fullName": "Share Regular", + "postscriptName": "Share-Regular", + "category": "sans-serif", + "capHeight": 707, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 502 + } + } + }, + "italic": { + "familyName": "Share", + "fullName": "Share Italic", + "postscriptName": "Share-Italic", + "category": "sans-serif", + "capHeight": 707, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 502 + } + } + }, + "700italic": { + "familyName": "Share", + "fullName": "Share Bold Italic", + "postscriptName": "Share-BoldItalic", + "category": "sans-serif", + "capHeight": 709, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 522 + } + } + } + } + }, + "shareTech": { + "familyName": "Share Tech", + "fullName": "Share Tech Regular", + "postscriptName": "ShareTech-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 502 + } + }, + "variants": { + "regular": { + "familyName": "Share Tech", + "fullName": "Share Tech Regular", + "postscriptName": "ShareTech-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 502 + } + } + } + } + }, + "shareTechMono": { + "familyName": "Share Tech Mono", + "fullName": "Share Tech Mono", + "postscriptName": "ShareTechMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 540 + } + }, + "variants": { + "regular": { + "familyName": "Share Tech Mono", + "fullName": "Share Tech Mono", + "postscriptName": "ShareTechMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 885, + "descent": -242, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 540, + "subsets": { + "latin": { + "xWidthAvg": 540 + }, + "thai": { + "xWidthAvg": 540 + } + } + } + } + }, + "shipporiAntique": { + "familyName": "Shippori Antique", + "fullName": "Shippori Antique Regular", + "postscriptName": "ShipporiAntique-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Shippori Antique", + "fullName": "Shippori Antique Regular", + "postscriptName": "ShipporiAntique-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "shipporiAntiqueB1": { + "familyName": "Shippori Antique B1", + "fullName": "Shippori Antique B1 Regular", + "postscriptName": "ShipporiAntiqueB1-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Shippori Antique B1", + "fullName": "Shippori Antique B1 Regular", + "postscriptName": "ShipporiAntiqueB1-Regular", + "category": "sans-serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 524, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "shipporiMincho": { + "familyName": "Shippori Mincho", + "fullName": "Shippori Mincho Regular", + "postscriptName": "ShipporiMincho-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Shippori Mincho", + "fullName": "Shippori Mincho Medium", + "postscriptName": "ShipporiMincho-Medium", + "category": "serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Shippori Mincho", + "fullName": "Shippori Mincho SemiBold", + "postscriptName": "ShipporiMincho-SemiBold", + "category": "serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Shippori Mincho", + "fullName": "Shippori Mincho Bold", + "postscriptName": "ShipporiMincho-Bold", + "category": "serif", + "capHeight": 737, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Shippori Mincho", + "fullName": "Shippori Mincho ExtraBold", + "postscriptName": "ShipporiMincho-ExtraBold", + "category": "serif", + "capHeight": 740, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Shippori Mincho", + "fullName": "Shippori Mincho Regular", + "postscriptName": "ShipporiMincho-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "shipporiMinchoB1": { + "familyName": "Shippori Mincho B1", + "fullName": "Shippori Mincho B1 Regular", + "postscriptName": "ShipporiMinchoB1-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Shippori Mincho B1", + "fullName": "Shippori Mincho B1 Medium", + "postscriptName": "ShipporiMinchoB1-Medium", + "category": "serif", + "capHeight": 730, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Shippori Mincho B1", + "fullName": "Shippori Mincho B1 SemiBold", + "postscriptName": "ShipporiMinchoB1-SemiBold", + "category": "serif", + "capHeight": 733, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 484, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Shippori Mincho B1", + "fullName": "Shippori Mincho B1 Bold", + "postscriptName": "ShipporiMinchoB1-Bold", + "category": "serif", + "capHeight": 737, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Shippori Mincho B1", + "fullName": "Shippori Mincho B1 ExtraBold", + "postscriptName": "ShipporiMinchoB1-ExtraBold", + "category": "serif", + "capHeight": 740, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Shippori Mincho B1", + "fullName": "Shippori Mincho B1 Regular", + "postscriptName": "ShipporiMinchoB1-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "shizuru": { + "familyName": "Shizuru", + "fullName": "Shizuru Regular", + "postscriptName": "Shizuru-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Shizuru", + "fullName": "Shizuru Regular", + "postscriptName": "Shizuru-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "shojumaru": { + "familyName": "Shojumaru", + "fullName": "Shojumaru", + "postscriptName": "Shojumaru-Regular", + "category": "display", + "capHeight": 1534, + "ascent": 2020, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1206, + "xWidthAvg": 1393, + "subsets": { + "latin": { + "xWidthAvg": 1393 + }, + "thai": { + "xWidthAvg": 819 + } + }, + "variants": { + "regular": { + "familyName": "Shojumaru", + "fullName": "Shojumaru", + "postscriptName": "Shojumaru-Regular", + "category": "display", + "capHeight": 1534, + "ascent": 2020, + "descent": -692, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1206, + "xWidthAvg": 1393, + "subsets": { + "latin": { + "xWidthAvg": 1393 + }, + "thai": { + "xWidthAvg": 819 + } + } + } + } + }, + "shortStack": { + "familyName": "Short Stack", + "fullName": "Short Stack", + "postscriptName": "ShortStack", + "category": "handwriting", + "capHeight": 1367, + "ascent": 1913, + "descent": -609, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 758, + "xWidthAvg": 1186, + "subsets": { + "latin": { + "xWidthAvg": 1186 + }, + "thai": { + "xWidthAvg": 2099 + } + }, + "variants": { + "regular": { + "familyName": "Short Stack", + "fullName": "Short Stack", + "postscriptName": "ShortStack", + "category": "handwriting", + "capHeight": 1367, + "ascent": 1913, + "descent": -609, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 758, + "xWidthAvg": 1186, + "subsets": { + "latin": { + "xWidthAvg": 1186 + }, + "thai": { + "xWidthAvg": 2099 + } + } + } + } + }, + "shrikhand": { + "familyName": "Shrikhand", + "fullName": "Shrikhand Regular", + "postscriptName": "Shrikhand-Regular", + "category": "display", + "capHeight": 669, + "ascent": 1026, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 613 + } + }, + "variants": { + "regular": { + "familyName": "Shrikhand", + "fullName": "Shrikhand Regular", + "postscriptName": "Shrikhand-Regular", + "category": "display", + "capHeight": 669, + "ascent": 1026, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 613 + } + } + } + } + }, + "siemreap": { + "familyName": "Siemreap", + "fullName": "Siemreap", + "postscriptName": "Siemreap", + "category": "sans-serif", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + }, + "variants": { + "regular": { + "familyName": "Siemreap", + "fullName": "Siemreap", + "postscriptName": "Siemreap", + "category": "sans-serif", + "capHeight": 0, + "ascent": 2500, + "descent": -1200, + "lineGap": 67, + "unitsPerEm": 2048, + "xHeight": 0, + "xWidthAvg": 1359, + "subsets": { + "latin": { + "xWidthAvg": 1359 + }, + "thai": { + "xWidthAvg": 1536 + } + } + } + } + }, + "sigmar": { + "familyName": "Sigmar", + "fullName": "Sigmar Regular", + "postscriptName": "Sigmar-Regular", + "category": "display", + "capHeight": 655, + "ascent": 1172, + "descent": -466, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 898 + } + }, + "variants": { + "regular": { + "familyName": "Sigmar", + "fullName": "Sigmar Regular", + "postscriptName": "Sigmar-Regular", + "category": "display", + "capHeight": 655, + "ascent": 1172, + "descent": -466, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 541, + "subsets": { + "latin": { + "xWidthAvg": 541 + }, + "thai": { + "xWidthAvg": 898 + } + } + } + } + }, + "sigmarOne": { + "familyName": "Sigmar One", + "fullName": "Sigmar One Regular", + "postscriptName": "SigmarOne-Regular", + "category": "display", + "capHeight": 676, + "ascent": 1172, + "descent": -466, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 623, + "subsets": { + "latin": { + "xWidthAvg": 623 + }, + "thai": { + "xWidthAvg": 258 + } + }, + "variants": { + "regular": { + "familyName": "Sigmar One", + "fullName": "Sigmar One Regular", + "postscriptName": "SigmarOne-Regular", + "category": "display", + "capHeight": 676, + "ascent": 1172, + "descent": -466, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 578, + "xWidthAvg": 623, + "subsets": { + "latin": { + "xWidthAvg": 623 + }, + "thai": { + "xWidthAvg": 258 + } + } + } + } + }, + "signika": { + "familyName": "Signika", + "fullName": "Signika Regular", + "postscriptName": "Signika-Regular", + "category": "sans-serif", + "capHeight": 1366, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 996, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 1281 + } + }, + "variants": { + "300": { + "familyName": "Signika", + "fullName": "Signika Light", + "postscriptName": "Signika-Light", + "category": "sans-serif", + "capHeight": 1366, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 987, + "xWidthAvg": 844, + "subsets": { + "latin": { + "xWidthAvg": 844 + }, + "thai": { + "xWidthAvg": 1313 + } + } + }, + "500": { + "familyName": "Signika", + "fullName": "Signika Medium", + "postscriptName": "Signika-Medium", + "category": "sans-serif", + "capHeight": 1366, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 999, + "xWidthAvg": 859, + "subsets": { + "latin": { + "xWidthAvg": 859 + }, + "thai": { + "xWidthAvg": 1269 + } + } + }, + "600": { + "familyName": "Signika", + "fullName": "Signika SemiBold", + "postscriptName": "Signika-SemiBold", + "category": "sans-serif", + "capHeight": 1366, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1004, + "xWidthAvg": 865, + "subsets": { + "latin": { + "xWidthAvg": 865 + }, + "thai": { + "xWidthAvg": 1251 + } + } + }, + "700": { + "familyName": "Signika", + "fullName": "Signika Bold", + "postscriptName": "Signika-Bold", + "category": "sans-serif", + "capHeight": 1366, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1012, + "xWidthAvg": 874, + "subsets": { + "latin": { + "xWidthAvg": 874 + }, + "thai": { + "xWidthAvg": 1223 + } + } + }, + "regular": { + "familyName": "Signika", + "fullName": "Signika Regular", + "postscriptName": "Signika-Regular", + "category": "sans-serif", + "capHeight": 1366, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 996, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 1281 + } + } + } + } + }, + "signikaNegative": { + "familyName": "Signika Negative", + "fullName": "Signika Negative Regular", + "postscriptName": "SignikaNegative-Regular", + "category": "sans-serif", + "capHeight": 1370, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 1288 + } + }, + "variants": { + "300": { + "familyName": "Signika Negative", + "fullName": "Signika Negative Light", + "postscriptName": "SignikaNegative-Light", + "category": "sans-serif", + "capHeight": 1370, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 842, + "subsets": { + "latin": { + "xWidthAvg": 842 + }, + "thai": { + "xWidthAvg": 1319 + } + } + }, + "500": { + "familyName": "Signika Negative", + "fullName": "Signika Negative Medium", + "postscriptName": "SignikaNegative-Medium", + "category": "sans-serif", + "capHeight": 1370, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 858, + "subsets": { + "latin": { + "xWidthAvg": 858 + }, + "thai": { + "xWidthAvg": 1273 + } + } + }, + "600": { + "familyName": "Signika Negative", + "fullName": "Signika Negative SemiBold", + "postscriptName": "SignikaNegative-SemiBold", + "category": "sans-serif", + "capHeight": 1370, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 863, + "subsets": { + "latin": { + "xWidthAvg": 863 + }, + "thai": { + "xWidthAvg": 1258 + } + } + }, + "700": { + "familyName": "Signika Negative", + "fullName": "Signika Negative Bold", + "postscriptName": "SignikaNegative-Bold", + "category": "sans-serif", + "capHeight": 1370, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 872, + "subsets": { + "latin": { + "xWidthAvg": 872 + }, + "thai": { + "xWidthAvg": 1231 + } + } + }, + "regular": { + "familyName": "Signika Negative", + "fullName": "Signika Negative Regular", + "postscriptName": "SignikaNegative-Regular", + "category": "sans-serif", + "capHeight": 1370, + "ascent": 1880, + "descent": -584, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 980, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 1288 + } + } + } + } + }, + "silkscreen": { + "familyName": "Silkscreen", + "fullName": "Silkscreen Regular", + "postscriptName": "Silkscreen-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1030, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 667, + "subsets": { + "latin": { + "xWidthAvg": 667 + }, + "thai": { + "xWidthAvg": 625 + } + }, + "variants": { + "700": { + "familyName": "Silkscreen", + "fullName": "Silkscreen Bold", + "postscriptName": "Silkscreen-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1030, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 773, + "subsets": { + "latin": { + "xWidthAvg": 773 + }, + "thai": { + "xWidthAvg": 625 + } + } + }, + "regular": { + "familyName": "Silkscreen", + "fullName": "Silkscreen Regular", + "postscriptName": "Silkscreen-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1030, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 667, + "subsets": { + "latin": { + "xWidthAvg": 667 + }, + "thai": { + "xWidthAvg": 625 + } + } + } + } + }, + "simonetta": { + "familyName": "Simonetta", + "fullName": "Simonetta Regular", + "postscriptName": "Simonetta-Regular", + "category": "display", + "capHeight": 1391, + "ascent": 1970, + "descent": -594, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 897, + "xWidthAvg": 829, + "subsets": { + "latin": { + "xWidthAvg": 829 + }, + "thai": { + "xWidthAvg": 477 + } + }, + "variants": { + "900": { + "familyName": "Simonetta", + "fullName": "Simonetta Black", + "postscriptName": "Simonetta-Black", + "category": "display", + "capHeight": 1397, + "ascent": 1970, + "descent": -594, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 926, + "xWidthAvg": 916, + "subsets": { + "latin": { + "xWidthAvg": 916 + }, + "thai": { + "xWidthAvg": 457 + } + } + }, + "regular": { + "familyName": "Simonetta", + "fullName": "Simonetta Regular", + "postscriptName": "Simonetta-Regular", + "category": "display", + "capHeight": 1391, + "ascent": 1970, + "descent": -594, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 897, + "xWidthAvg": 829, + "subsets": { + "latin": { + "xWidthAvg": 829 + }, + "thai": { + "xWidthAvg": 477 + } + } + }, + "italic": { + "familyName": "Simonetta", + "fullName": "Simonetta Italic", + "postscriptName": "Simonetta-Italic", + "category": "display", + "capHeight": 1391, + "ascent": 1970, + "descent": -594, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 897, + "xWidthAvg": 776, + "subsets": { + "latin": { + "xWidthAvg": 776 + }, + "thai": { + "xWidthAvg": 477 + } + } + }, + "900italic": { + "familyName": "Simonetta", + "fullName": "Simonetta Black Italic", + "postscriptName": "Simonetta-BlackItalic", + "category": "display", + "capHeight": 1397, + "ascent": 1970, + "descent": -594, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 926, + "xWidthAvg": 892, + "subsets": { + "latin": { + "xWidthAvg": 892 + }, + "thai": { + "xWidthAvg": 446 + } + } + } + } + }, + "singleDay": { + "familyName": "Single Day", + "fullName": "Single Day Regular", + "postscriptName": "SingleDay-Regular", + "category": "display", + "capHeight": 582, + "ascent": 779, + "descent": -245, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 390, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Single Day", + "fullName": "Single Day Regular", + "postscriptName": "SingleDay-Regular", + "category": "display", + "capHeight": 582, + "ascent": 779, + "descent": -245, + "lineGap": 256, + "unitsPerEm": 1024, + "xHeight": 390, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "sintony": { + "familyName": "Sintony", + "fullName": "Sintony", + "postscriptName": "Sintony", + "category": "sans-serif", + "capHeight": 730, + "ascent": 995, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 290 + } + }, + "variants": { + "700": { + "familyName": "Sintony", + "fullName": "Sintony Bold", + "postscriptName": "Sintony-Bold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 995, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 275 + } + } + }, + "regular": { + "familyName": "Sintony", + "fullName": "Sintony", + "postscriptName": "Sintony", + "category": "sans-serif", + "capHeight": 730, + "ascent": 995, + "descent": -308, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 572, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 290 + } + } + } + } + }, + "sirinStencil": { + "familyName": "Sirin Stencil", + "fullName": "SirinStencil", + "postscriptName": "SirinStencil-Regular", + "category": "display", + "capHeight": 1423, + "ascent": 2380, + "descent": -604, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 835, + "subsets": { + "latin": { + "xWidthAvg": 835 + }, + "thai": { + "xWidthAvg": 1976 + } + }, + "variants": { + "regular": { + "familyName": "Sirin Stencil", + "fullName": "SirinStencil", + "postscriptName": "SirinStencil-Regular", + "category": "display", + "capHeight": 1423, + "ascent": 2380, + "descent": -604, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1055, + "xWidthAvg": 835, + "subsets": { + "latin": { + "xWidthAvg": 835 + }, + "thai": { + "xWidthAvg": 1976 + } + } + } + } + }, + "sixCaps": { + "familyName": "Six Caps", + "fullName": "Six Caps", + "postscriptName": "SixCaps", + "category": "sans-serif", + "ascent": 2263, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Six Caps", + "fullName": "Six Caps", + "postscriptName": "SixCaps", + "category": "sans-serif", + "ascent": 2263, + "descent": -432, + "lineGap": 0, + "unitsPerEm": 2048, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "sixtyfour": { + "familyName": "Sixtyfour", + "fullName": "Sixtyfour Regular", + "postscriptName": "Sixtyfour-Regular", + "category": "monospace", + "capHeight": 896, + "ascent": 896, + "descent": -128, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 640, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Sixtyfour", + "fullName": "Sixtyfour Regular", + "postscriptName": "Sixtyfour-Regular", + "category": "monospace", + "capHeight": 896, + "ascent": 896, + "descent": -128, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 640, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "sixtyfourConvergence": { + "familyName": "Sixtyfour Convergence", + "fullName": "Sixtyfour Convergence Regular", + "postscriptName": "SixtyfourConvergence-Regular", + "category": "monospace", + "capHeight": 896, + "ascent": 896, + "descent": -128, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 640, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Sixtyfour Convergence", + "fullName": "Sixtyfour Convergence Regular", + "postscriptName": "SixtyfourConvergence-Regular", + "category": "monospace", + "capHeight": 896, + "ascent": 896, + "descent": -128, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 640, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "skranji": { + "familyName": "Skranji", + "fullName": "Skranji", + "postscriptName": "Skranji", + "category": "display", + "capHeight": 0, + "ascent": 1008, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 0, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 338 + } + }, + "variants": { + "700": { + "familyName": "Skranji", + "fullName": "Skranji Bold", + "postscriptName": "Skranji-Bold", + "category": "display", + "capHeight": 0, + "ascent": 1008, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 0, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 338 + } + } + }, + "regular": { + "familyName": "Skranji", + "fullName": "Skranji", + "postscriptName": "Skranji", + "category": "display", + "capHeight": 0, + "ascent": 1008, + "descent": -383, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 0, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 338 + } + } + } + } + }, + "slabo13px": { + "familyName": "Slabo 13px", + "fullName": "Slabo 13px", + "postscriptName": "Slabo13px-Regular", + "category": "serif", + "capHeight": 540, + "ascent": 720, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 780, + "xHeight": 420, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 420 + } + }, + "variants": { + "regular": { + "familyName": "Slabo 13px", + "fullName": "Slabo 13px", + "postscriptName": "Slabo13px-Regular", + "category": "serif", + "capHeight": 540, + "ascent": 720, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 780, + "xHeight": 420, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 420 + } + } + } + } + }, + "slabo27px": { + "familyName": "Slabo 27px", + "fullName": "Slabo 27px", + "postscriptName": "Slabo27px-Regular", + "category": "serif", + "capHeight": 540, + "ascent": 750, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 810, + "xHeight": 390, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 390 + } + }, + "variants": { + "regular": { + "familyName": "Slabo 27px", + "fullName": "Slabo 27px", + "postscriptName": "Slabo27px-Regular", + "category": "serif", + "capHeight": 540, + "ascent": 750, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 810, + "xHeight": 390, + "xWidthAvg": 320, + "subsets": { + "latin": { + "xWidthAvg": 320 + }, + "thai": { + "xWidthAvg": 390 + } + } + } + } + }, + "slackey": { + "familyName": "Slackey", + "fullName": "Slackey Regular", + "postscriptName": "Slackey-Regular", + "category": "display", + "capHeight": 772, + "ascent": 1078, + "descent": -351, + "lineGap": 28, + "unitsPerEm": 1024, + "xHeight": 691, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 412 + } + }, + "variants": { + "regular": { + "familyName": "Slackey", + "fullName": "Slackey Regular", + "postscriptName": "Slackey-Regular", + "category": "display", + "capHeight": 772, + "ascent": 1078, + "descent": -351, + "lineGap": 28, + "unitsPerEm": 1024, + "xHeight": 691, + "xWidthAvg": 629, + "subsets": { + "latin": { + "xWidthAvg": 629 + }, + "thai": { + "xWidthAvg": 412 + } + } + } + } + }, + "slacksideOne": { + "familyName": "Slackside One", + "fullName": "Slackside One Regular", + "postscriptName": "SlacksideOne-Regular", + "category": "handwriting", + "capHeight": 513, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 255, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 731 + } + }, + "variants": { + "regular": { + "familyName": "Slackside One", + "fullName": "Slackside One Regular", + "postscriptName": "SlacksideOne-Regular", + "category": "handwriting", + "capHeight": 513, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 255, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 731 + } + } + } + } + }, + "smokum": { + "familyName": "Smokum", + "fullName": "Smokum Regular", + "postscriptName": "Smokum-Regular", + "category": "display", + "capHeight": 1536, + "ascent": 1986, + "descent": -512, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 691, + "subsets": { + "latin": { + "xWidthAvg": 691 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "Smokum", + "fullName": "Smokum Regular", + "postscriptName": "Smokum-Regular", + "category": "display", + "capHeight": 1536, + "ascent": 1986, + "descent": -512, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1024, + "xWidthAvg": 691, + "subsets": { + "latin": { + "xWidthAvg": 691 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "smooch": { + "familyName": "Smooch", + "fullName": "Smooch Regular", + "postscriptName": "Smooch-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 950, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "regular": { + "familyName": "Smooch", + "fullName": "Smooch Regular", + "postscriptName": "Smooch-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 950, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "smoochSans": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Regular", + "postscriptName": "SmoochSans-Regular", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 494 + } + }, + "variants": { + "100": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Thin", + "postscriptName": "SmoochSans-Thin", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "200": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans ExtraLight", + "postscriptName": "SmoochSans-ExtraLight", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "300": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Light", + "postscriptName": "SmoochSans-Light", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 310, + "subsets": { + "latin": { + "xWidthAvg": 310 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "500": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Medium", + "postscriptName": "SmoochSans-Medium", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 313, + "subsets": { + "latin": { + "xWidthAvg": 313 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "600": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans SemiBold", + "postscriptName": "SmoochSans-SemiBold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 316, + "subsets": { + "latin": { + "xWidthAvg": 316 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "700": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Bold", + "postscriptName": "SmoochSans-Bold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 319, + "subsets": { + "latin": { + "xWidthAvg": 319 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "800": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans ExtraBold", + "postscriptName": "SmoochSans-ExtraBold", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 322, + "subsets": { + "latin": { + "xWidthAvg": 322 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "900": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Black", + "postscriptName": "SmoochSans-Black", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 324, + "subsets": { + "latin": { + "xWidthAvg": 324 + }, + "thai": { + "xWidthAvg": 494 + } + } + }, + "regular": { + "familyName": "Smooch Sans", + "fullName": "Smooch Sans Regular", + "postscriptName": "SmoochSans-Regular", + "category": "sans-serif", + "capHeight": 620, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "smythe": { + "familyName": "Smythe", + "fullName": "Smythe", + "postscriptName": "Smythe", + "category": "display", + "capHeight": 1317, + "ascent": 1883, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 963, + "xWidthAvg": 622, + "subsets": { + "latin": { + "xWidthAvg": 622 + }, + "thai": { + "xWidthAvg": 309 + } + }, + "variants": { + "regular": { + "familyName": "Smythe", + "fullName": "Smythe", + "postscriptName": "Smythe", + "category": "display", + "capHeight": 1317, + "ascent": 1883, + "descent": -480, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 963, + "xWidthAvg": 622, + "subsets": { + "latin": { + "xWidthAvg": 622 + }, + "thai": { + "xWidthAvg": 309 + } + } + } + } + }, + "sniglet": { + "familyName": "Sniglet", + "fullName": "Sniglet Regular", + "postscriptName": "Sniglet-Regular", + "category": "display", + "capHeight": 700, + "ascent": 956, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 554 + } + }, + "variants": { + "800": { + "familyName": "Sniglet", + "fullName": "Sniglet ExtraBold", + "postscriptName": "Sniglet-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 956, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 592, + "subsets": { + "latin": { + "xWidthAvg": 592 + }, + "thai": { + "xWidthAvg": 554 + } + } + }, + "regular": { + "familyName": "Sniglet", + "fullName": "Sniglet Regular", + "postscriptName": "Sniglet-Regular", + "category": "display", + "capHeight": 700, + "ascent": 956, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 554 + } + } + } + } + }, + "snippet": { + "familyName": "Snippet", + "fullName": "Snippet", + "postscriptName": "Snippet", + "category": "sans-serif", + "capHeight": 684, + "ascent": 890, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Snippet", + "fullName": "Snippet", + "postscriptName": "Snippet", + "category": "sans-serif", + "capHeight": 684, + "ascent": 890, + "descent": -261, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "snowburstOne": { + "familyName": "Snowburst One", + "fullName": "Snowburst One", + "postscriptName": "SnowburstOne-Regular", + "category": "display", + "capHeight": 1635, + "ascent": 2134, + "descent": -454, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1347, + "xWidthAvg": 1163, + "subsets": { + "latin": { + "xWidthAvg": 1163 + }, + "thai": { + "xWidthAvg": 0 + } + }, + "variants": { + "regular": { + "familyName": "Snowburst One", + "fullName": "Snowburst One", + "postscriptName": "SnowburstOne-Regular", + "category": "display", + "capHeight": 1635, + "ascent": 2134, + "descent": -454, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1347, + "xWidthAvg": 1163, + "subsets": { + "latin": { + "xWidthAvg": 1163 + }, + "thai": { + "xWidthAvg": 0 + } + } + } + } + }, + "sofadiOne": { + "familyName": "Sofadi One", + "fullName": "Sofadi One Regular", + "postscriptName": "SofadiOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 856, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 548 + } + }, + "variants": { + "regular": { + "familyName": "Sofadi One", + "fullName": "Sofadi One Regular", + "postscriptName": "SofadiOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 856, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 491, + "subsets": { + "latin": { + "xWidthAvg": 491 + }, + "thai": { + "xWidthAvg": 548 + } + } + } + } + }, + "sofia": { + "familyName": "Sofia", + "fullName": "Sofia", + "postscriptName": "Sofia-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1138, + "descent": -438, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 354 + } + }, + "variants": { + "regular": { + "familyName": "Sofia", + "fullName": "Sofia", + "postscriptName": "Sofia-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1138, + "descent": -438, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 354 + } + } + } + } + }, + "sofiaSans": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Regular", + "postscriptName": "SofiaSans-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 596 + } + }, + "variants": { + "100": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Thin", + "postscriptName": "SofiaSans-Thin", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "200": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans ExtraLight", + "postscriptName": "SofiaSans-ExtraLight", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "300": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Light", + "postscriptName": "SofiaSans-Light", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 577 + } + } + }, + "500": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Medium", + "postscriptName": "SofiaSans-Medium", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 590 + } + } + }, + "600": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans SemiBold", + "postscriptName": "SofiaSans-SemiBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 587 + } + } + }, + "700": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Bold", + "postscriptName": "SofiaSans-Bold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "800": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans ExtraBold", + "postscriptName": "SofiaSans-ExtraBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 562 + } + } + }, + "900": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Black", + "postscriptName": "SofiaSans-Black", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 549 + } + } + }, + "regular": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Regular", + "postscriptName": "SofiaSans-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Italic", + "postscriptName": "SofiaSans-Italic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 596 + } + } + }, + "900italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Black Italic", + "postscriptName": "SofiaSans-BlackItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 541 + } + } + }, + "800italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans ExtraBold Italic", + "postscriptName": "SofiaSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 557 + } + } + }, + "700italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Bold Italic", + "postscriptName": "SofiaSans-BoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "600italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans SemiBold Italic", + "postscriptName": "SofiaSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 586 + } + } + }, + "500italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Medium Italic", + "postscriptName": "SofiaSans-MediumItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 589 + } + } + }, + "300italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Light Italic", + "postscriptName": "SofiaSans-LightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 573 + } + } + }, + "200italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans ExtraLight Italic", + "postscriptName": "SofiaSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 566 + } + } + }, + "100italic": { + "familyName": "Sofia Sans", + "fullName": "Sofia Sans Thin Italic", + "postscriptName": "SofiaSans-ThinItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 488, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 550 + } + } + } + } + }, + "sofiaSansCondensed": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Regular", + "postscriptName": "SofiaSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 334, + "subsets": { + "latin": { + "xWidthAvg": 334 + }, + "thai": { + "xWidthAvg": 437 + } + }, + "variants": { + "100": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Thin", + "postscriptName": "SofiaSansCondensed-Thin", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 328, + "subsets": { + "latin": { + "xWidthAvg": 328 + }, + "thai": { + "xWidthAvg": 420 + } + } + }, + "200": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed ExtraLight", + "postscriptName": "SofiaSansCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 426 + } + } + }, + "300": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Light", + "postscriptName": "SofiaSansCondensed-Light", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 330, + "subsets": { + "latin": { + "xWidthAvg": 330 + }, + "thai": { + "xWidthAvg": 428 + } + } + }, + "500": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Medium", + "postscriptName": "SofiaSansCondensed-Medium", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 339, + "subsets": { + "latin": { + "xWidthAvg": 339 + }, + "thai": { + "xWidthAvg": 436 + } + } + }, + "600": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed SemiBold", + "postscriptName": "SofiaSansCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 435 + } + } + }, + "700": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Bold", + "postscriptName": "SofiaSansCondensed-Bold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 434 + } + } + }, + "800": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed ExtraBold", + "postscriptName": "SofiaSansCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 433 + } + } + }, + "900": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Black", + "postscriptName": "SofiaSansCondensed-Black", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 373, + "subsets": { + "latin": { + "xWidthAvg": 373 + }, + "thai": { + "xWidthAvg": 431 + } + } + }, + "regular": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Regular", + "postscriptName": "SofiaSansCondensed-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 334, + "subsets": { + "latin": { + "xWidthAvg": 334 + }, + "thai": { + "xWidthAvg": 437 + } + } + }, + "italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Italic", + "postscriptName": "SofiaSansCondensed-Italic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 329, + "subsets": { + "latin": { + "xWidthAvg": 329 + }, + "thai": { + "xWidthAvg": 433 + } + } + }, + "900italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Black Italic", + "postscriptName": "SofiaSansCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 423 + } + } + }, + "800italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed ExtraBold Italic", + "postscriptName": "SofiaSansCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 426 + } + } + }, + "700italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Bold Italic", + "postscriptName": "SofiaSansCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 345, + "subsets": { + "latin": { + "xWidthAvg": 345 + }, + "thai": { + "xWidthAvg": 428 + } + } + }, + "600italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed SemiBold Italic", + "postscriptName": "SofiaSansCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 338, + "subsets": { + "latin": { + "xWidthAvg": 338 + }, + "thai": { + "xWidthAvg": 430 + } + } + }, + "500italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Medium Italic", + "postscriptName": "SofiaSansCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 334, + "subsets": { + "latin": { + "xWidthAvg": 334 + }, + "thai": { + "xWidthAvg": 432 + } + } + }, + "300italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Light Italic", + "postscriptName": "SofiaSansCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 326, + "subsets": { + "latin": { + "xWidthAvg": 326 + }, + "thai": { + "xWidthAvg": 422 + } + } + }, + "200italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed ExtraLight Italic", + "postscriptName": "SofiaSansCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 326, + "subsets": { + "latin": { + "xWidthAvg": 326 + }, + "thai": { + "xWidthAvg": 420 + } + } + }, + "100italic": { + "familyName": "Sofia Sans Condensed", + "fullName": "Sofia Sans Condensed Thin Italic", + "postscriptName": "SofiaSansCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 324, + "subsets": { + "latin": { + "xWidthAvg": 324 + }, + "thai": { + "xWidthAvg": 412 + } + } + } + } + }, + "sofiaSansExtraCondensed": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Regular", + "postscriptName": "SofiaSansExtraCondensed-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 272, + "subsets": { + "latin": { + "xWidthAvg": 272 + }, + "thai": { + "xWidthAvg": 340 + } + }, + "variants": { + "100": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Thin", + "postscriptName": "SofiaSansExtraCondensed-Thin", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 264, + "subsets": { + "latin": { + "xWidthAvg": 264 + }, + "thai": { + "xWidthAvg": 333 + } + } + }, + "200": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed ExtraLight", + "postscriptName": "SofiaSansExtraCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 267, + "subsets": { + "latin": { + "xWidthAvg": 267 + }, + "thai": { + "xWidthAvg": 335 + } + } + }, + "300": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Light", + "postscriptName": "SofiaSansExtraCondensed-Light", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 268, + "subsets": { + "latin": { + "xWidthAvg": 268 + }, + "thai": { + "xWidthAvg": 336 + } + } + }, + "500": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Medium", + "postscriptName": "SofiaSansExtraCondensed-Medium", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 280, + "subsets": { + "latin": { + "xWidthAvg": 280 + }, + "thai": { + "xWidthAvg": 342 + } + } + }, + "600": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed SemiBold", + "postscriptName": "SofiaSansExtraCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 290, + "subsets": { + "latin": { + "xWidthAvg": 290 + }, + "thai": { + "xWidthAvg": 344 + } + } + }, + "700": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Bold", + "postscriptName": "SofiaSansExtraCondensed-Bold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 297, + "subsets": { + "latin": { + "xWidthAvg": 297 + }, + "thai": { + "xWidthAvg": 346 + } + } + }, + "800": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed ExtraBold", + "postscriptName": "SofiaSansExtraCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 309, + "subsets": { + "latin": { + "xWidthAvg": 309 + }, + "thai": { + "xWidthAvg": 349 + } + } + }, + "900": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Black", + "postscriptName": "SofiaSansExtraCondensed-Black", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 325, + "subsets": { + "latin": { + "xWidthAvg": 325 + }, + "thai": { + "xWidthAvg": 352 + } + } + }, + "regular": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Regular", + "postscriptName": "SofiaSansExtraCondensed-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 272, + "subsets": { + "latin": { + "xWidthAvg": 272 + }, + "thai": { + "xWidthAvg": 340 + } + } + }, + "italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Italic", + "postscriptName": "SofiaSansExtraCondensed-Italic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 268, + "subsets": { + "latin": { + "xWidthAvg": 268 + }, + "thai": { + "xWidthAvg": 333 + } + } + }, + "900italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Black Italic", + "postscriptName": "SofiaSansExtraCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 319, + "subsets": { + "latin": { + "xWidthAvg": 319 + }, + "thai": { + "xWidthAvg": 345 + } + } + }, + "800italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed ExtraBold Italic", + "postscriptName": "SofiaSansExtraCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 304, + "subsets": { + "latin": { + "xWidthAvg": 304 + }, + "thai": { + "xWidthAvg": 342 + } + } + }, + "700italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Bold Italic", + "postscriptName": "SofiaSansExtraCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 292, + "subsets": { + "latin": { + "xWidthAvg": 292 + }, + "thai": { + "xWidthAvg": 339 + } + } + }, + "600italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed SemiBold Italic", + "postscriptName": "SofiaSansExtraCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 285, + "subsets": { + "latin": { + "xWidthAvg": 285 + }, + "thai": { + "xWidthAvg": 337 + } + } + }, + "500italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Medium Italic", + "postscriptName": "SofiaSansExtraCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 275, + "subsets": { + "latin": { + "xWidthAvg": 275 + }, + "thai": { + "xWidthAvg": 335 + } + } + }, + "300italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Light Italic", + "postscriptName": "SofiaSansExtraCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 264, + "subsets": { + "latin": { + "xWidthAvg": 264 + }, + "thai": { + "xWidthAvg": 329 + } + } + }, + "200italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed ExtraLight Italic", + "postscriptName": "SofiaSansExtraCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 263, + "subsets": { + "latin": { + "xWidthAvg": 263 + }, + "thai": { + "xWidthAvg": 328 + } + } + }, + "100italic": { + "familyName": "Sofia Sans Extra Condensed", + "fullName": "Sofia Sans Extra Condensed Thin Italic", + "postscriptName": "SofiaSansExtraCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 261, + "subsets": { + "latin": { + "xWidthAvg": 261 + }, + "thai": { + "xWidthAvg": 326 + } + } + } + } + }, + "sofiaSansSemiCondensed": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Regular", + "postscriptName": "SofiaSansSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 552 + } + }, + "variants": { + "100": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Thin", + "postscriptName": "SofiaSansSemiCondensed-Thin", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 523 + } + } + }, + "200": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed ExtraLight", + "postscriptName": "SofiaSansSemiCondensed-ExtraLight", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 534 + } + } + }, + "300": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Light", + "postscriptName": "SofiaSansSemiCondensed-Light", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 536 + } + } + }, + "500": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Medium", + "postscriptName": "SofiaSansSemiCondensed-Medium", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 547 + } + } + }, + "600": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed SemiBold", + "postscriptName": "SofiaSansSemiCondensed-SemiBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 544 + } + } + }, + "700": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Bold", + "postscriptName": "SofiaSansSemiCondensed-Bold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 417, + "subsets": { + "latin": { + "xWidthAvg": 417 + }, + "thai": { + "xWidthAvg": 537 + } + } + }, + "800": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed ExtraBold", + "postscriptName": "SofiaSansSemiCondensed-ExtraBold", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 528 + } + } + }, + "900": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Black", + "postscriptName": "SofiaSansSemiCondensed-Black", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 519 + } + } + }, + "regular": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Regular", + "postscriptName": "SofiaSansSemiCondensed-Regular", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 409, + "subsets": { + "latin": { + "xWidthAvg": 409 + }, + "thai": { + "xWidthAvg": 552 + } + } + }, + "italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Italic", + "postscriptName": "SofiaSansSemiCondensed-Italic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 549 + } + } + }, + "900italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Black Italic", + "postscriptName": "SofiaSansSemiCondensed-BlackItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 510 + } + } + }, + "800italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed ExtraBold Italic", + "postscriptName": "SofiaSansSemiCondensed-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 521 + } + } + }, + "700italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Bold Italic", + "postscriptName": "SofiaSansSemiCondensed-BoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "600italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed SemiBold Italic", + "postscriptName": "SofiaSansSemiCondensed-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 540 + } + } + }, + "500italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Medium Italic", + "postscriptName": "SofiaSansSemiCondensed-MediumItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 543 + } + } + }, + "300italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Light Italic", + "postscriptName": "SofiaSansSemiCondensed-LightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 530 + } + } + }, + "200italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed ExtraLight Italic", + "postscriptName": "SofiaSansSemiCondensed-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "100italic": { + "familyName": "Sofia Sans Semi Condensed", + "fullName": "Sofia Sans Semi Condensed Thin Italic", + "postscriptName": "SofiaSansSemiCondensed-ThinItalic", + "category": "sans-serif", + "capHeight": 655, + "ascent": 900, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 487, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 513 + } + } + } + } + }, + "solitreo": { + "familyName": "Solitreo", + "fullName": "Solitreo Regular", + "postscriptName": "Solitreo-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 880, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 695 + } + }, + "variants": { + "regular": { + "familyName": "Solitreo", + "fullName": "Solitreo Regular", + "postscriptName": "Solitreo-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 880, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 490, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 695 + } + } + } + } + }, + "solway": { + "familyName": "Solway", + "fullName": "Solway Regular", + "postscriptName": "Solway-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 485 + } + }, + "variants": { + "300": { + "familyName": "Solway", + "fullName": "Solway Light", + "postscriptName": "Solway-Light", + "category": "serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 485 + } + } + }, + "500": { + "familyName": "Solway", + "fullName": "Solway Medium", + "postscriptName": "Solway-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 485 + } + } + }, + "700": { + "familyName": "Solway", + "fullName": "Solway Bold", + "postscriptName": "Solway-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 485 + } + } + }, + "800": { + "familyName": "Solway", + "fullName": "Solway ExtraBold", + "postscriptName": "Solway-ExtraBold", + "category": "serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 518, + "subsets": { + "latin": { + "xWidthAvg": 518 + }, + "thai": { + "xWidthAvg": 485 + } + } + }, + "regular": { + "familyName": "Solway", + "fullName": "Solway Regular", + "postscriptName": "Solway-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 485 + } + } + } + } + }, + "sometypeMono": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Regular", + "postscriptName": "SometypeMono-Regular", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + }, + "variants": { + "500": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Medium", + "postscriptName": "SometypeMono-Medium", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "600": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono SemiBold", + "postscriptName": "SometypeMono-SemiBold", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "700": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Bold", + "postscriptName": "SometypeMono-Bold", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "regular": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Regular", + "postscriptName": "SometypeMono-Regular", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "italic": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Italic", + "postscriptName": "SometypeMono-Italic", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "700italic": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Bold Italic", + "postscriptName": "SometypeMono-BoldItalic", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 476, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "600italic": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono SemiBold Italic", + "postscriptName": "SometypeMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "500italic": { + "familyName": "Sometype Mono", + "fullName": "Sometype Mono Medium Italic", + "postscriptName": "SometypeMono-MediumItalic", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 472, + "xWidthAvg": 580, + "subsets": { + "latin": { + "xWidthAvg": 580 + }, + "thai": { + "xWidthAvg": 580 + } + } + } + } + }, + "songMyung": { + "familyName": "Song Myung", + "fullName": "Song Myung Regular", + "postscriptName": "SongMyung-Regular", + "category": "serif", + "capHeight": 635, + "ascent": 848, + "descent": -152, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 380 + } + }, + "variants": { + "regular": { + "familyName": "Song Myung", + "fullName": "Song Myung Regular", + "postscriptName": "SongMyung-Regular", + "category": "serif", + "capHeight": 635, + "ascent": 848, + "descent": -152, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 457, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 380 + } + } + } + } + }, + "sono": { + "familyName": "Sono", + "fullName": "Sono Monospace Regular", + "postscriptName": "SonoMonospace-Regular", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "200": { + "familyName": "Sono", + "fullName": "Sono Monospace ExtraLight", + "postscriptName": "SonoMonospace-ExtraLight", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Sono", + "fullName": "Sono Monospace Light", + "postscriptName": "SonoMonospace-Light", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Sono", + "fullName": "Sono Monospace Medium", + "postscriptName": "SonoMonospace-Medium", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Sono", + "fullName": "Sono Monospace SemiBold", + "postscriptName": "SonoMonospace-SemiBold", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Sono", + "fullName": "Sono Monospace Bold", + "postscriptName": "SonoMonospace-Bold", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Sono", + "fullName": "Sono Monospace ExtraBold", + "postscriptName": "SonoMonospace-ExtraBold", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Sono", + "fullName": "Sono Monospace Regular", + "postscriptName": "SonoMonospace-Regular", + "category": "sans-serif", + "capHeight": 1238, + "ascent": 1824, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 952, + "xWidthAvg": 1238, + "subsets": { + "latin": { + "xWidthAvg": 1238 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "sonsieOne": { + "familyName": "Sonsie One", + "fullName": "Sonsie One", + "postscriptName": "SonsieOne-Regular", + "category": "display", + "capHeight": 506, + "ascent": 2050, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 272, + "xWidthAvg": 1483, + "subsets": { + "latin": { + "xWidthAvg": 1483 + }, + "thai": { + "xWidthAvg": 1875 + } + }, + "variants": { + "regular": { + "familyName": "Sonsie One", + "fullName": "Sonsie One", + "postscriptName": "SonsieOne-Regular", + "category": "display", + "capHeight": 506, + "ascent": 2050, + "descent": -600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 272, + "xWidthAvg": 1483, + "subsets": { + "latin": { + "xWidthAvg": 1483 + }, + "thai": { + "xWidthAvg": 1875 + } + } + } + } + }, + "sora": { + "familyName": "Sora", + "fullName": "Sora Regular", + "postscriptName": "Sora-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 859 + } + }, + "variants": { + "100": { + "familyName": "Sora", + "fullName": "Sora Thin", + "postscriptName": "Sora-Thin", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 790 + } + } + }, + "200": { + "familyName": "Sora", + "fullName": "Sora ExtraLight", + "postscriptName": "Sora-ExtraLight", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 813 + } + } + }, + "300": { + "familyName": "Sora", + "fullName": "Sora Light", + "postscriptName": "Sora-Light", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 836 + } + } + }, + "500": { + "familyName": "Sora", + "fullName": "Sora Medium", + "postscriptName": "Sora-Medium", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 862 + } + } + }, + "600": { + "familyName": "Sora", + "fullName": "Sora SemiBold", + "postscriptName": "Sora-SemiBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 864 + } + } + }, + "700": { + "familyName": "Sora", + "fullName": "Sora Bold", + "postscriptName": "Sora-Bold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 517, + "subsets": { + "latin": { + "xWidthAvg": 517 + }, + "thai": { + "xWidthAvg": 867 + } + } + }, + "800": { + "familyName": "Sora", + "fullName": "Sora ExtraBold", + "postscriptName": "Sora-ExtraBold", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 869 + } + } + }, + "regular": { + "familyName": "Sora", + "fullName": "Sora Regular", + "postscriptName": "Sora-Regular", + "category": "sans-serif", + "capHeight": 730, + "ascent": 970, + "descent": -290, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 859 + } + } + } + } + }, + "sortsMillGoudy": { + "familyName": "Sorts Mill Goudy", + "fullName": "Sorts Mill Goudy Regular", + "postscriptName": "SortsMillGoudy-Regular", + "category": "serif", + "capHeight": 713, + "ascent": 960, + "descent": -478, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 442, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 396 + } + }, + "variants": { + "regular": { + "familyName": "Sorts Mill Goudy", + "fullName": "Sorts Mill Goudy Regular", + "postscriptName": "SortsMillGoudy-Regular", + "category": "serif", + "capHeight": 713, + "ascent": 960, + "descent": -478, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 442, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 396 + } + } + }, + "italic": { + "familyName": "Sorts Mill Goudy", + "fullName": "Sorts Mill Goudy Italic", + "postscriptName": "SortsMillGoudy-Italic", + "category": "serif", + "capHeight": 356, + "ascent": 960, + "descent": -478, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 348, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "sourGummy": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Regular", + "postscriptName": "SourGummy-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 620 + } + }, + "variants": { + "100": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Thin", + "postscriptName": "SourGummy-Thin", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "200": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy ExtraLight", + "postscriptName": "SourGummy-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "300": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Light", + "postscriptName": "SourGummy-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "500": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Medium", + "postscriptName": "SourGummy-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "600": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy SemiBold", + "postscriptName": "SourGummy-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "700": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Bold", + "postscriptName": "SourGummy-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "800": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy ExtraBold", + "postscriptName": "SourGummy-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "900": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Black", + "postscriptName": "SourGummy-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "regular": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Regular", + "postscriptName": "SourGummy-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 620 + } + } + }, + "italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Italic", + "postscriptName": "SourGummy-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 679 + } + } + }, + "900italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Black Italic", + "postscriptName": "SourGummy-BlackItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 680 + } + } + }, + "800italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy ExtraBold Italic", + "postscriptName": "SourGummy-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 680 + } + } + }, + "700italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Bold Italic", + "postscriptName": "SourGummy-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 680 + } + } + }, + "600italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy SemiBold Italic", + "postscriptName": "SourGummy-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 680 + } + } + }, + "500italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Medium Italic", + "postscriptName": "SourGummy-MediumItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 680 + } + } + }, + "300italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Light Italic", + "postscriptName": "SourGummy-LightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 679 + } + } + }, + "200italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy ExtraLight Italic", + "postscriptName": "SourGummy-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 679 + } + } + }, + "100italic": { + "familyName": "Sour Gummy", + "fullName": "Sour Gummy Thin Italic", + "postscriptName": "SourGummy-ThinItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 996, + "descent": -296, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 679 + } + } + } + } + }, + "sourceCodePro": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Regular", + "postscriptName": "SourceCodePro-Regular", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "200": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro ExtraLight", + "postscriptName": "SourceCodePro-ExtraLight", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Light", + "postscriptName": "SourceCodePro-Light", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Medium", + "postscriptName": "SourceCodePro-Medium", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro SemiBold", + "postscriptName": "SourceCodePro-SemiBold", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Bold", + "postscriptName": "SourceCodePro-Bold", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro ExtraBold", + "postscriptName": "SourceCodePro-ExtraBold", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Black", + "postscriptName": "SourceCodePro-Black", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Regular", + "postscriptName": "SourceCodePro-Regular", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Italic", + "postscriptName": "SourceCodePro-Italic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "900italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Black Italic", + "postscriptName": "SourceCodePro-BlackItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro ExtraBold Italic", + "postscriptName": "SourceCodePro-ExtraBoldItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Bold Italic", + "postscriptName": "SourceCodePro-BoldItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro SemiBold Italic", + "postscriptName": "SourceCodePro-SemiBoldItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Medium Italic", + "postscriptName": "SourceCodePro-MediumItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro Light Italic", + "postscriptName": "SourceCodePro-LightItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Source Code Pro", + "fullName": "Source Code Pro ExtraLight Italic", + "postscriptName": "SourceCodePro-ExtraLightItalic", + "category": "monospace", + "capHeight": 660, + "ascent": 984, + "descent": -273, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "sourceSans3": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Regular", + "postscriptName": "SourceSans3-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 653 + } + }, + "variants": { + "200": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 ExtraLight", + "postscriptName": "SourceSans3-ExtraLight", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 624 + } + } + }, + "300": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Light", + "postscriptName": "SourceSans3-Light", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 632 + } + } + }, + "500": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Medium", + "postscriptName": "SourceSans3-Medium", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "600": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 SemiBold", + "postscriptName": "SourceSans3-SemiBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 672 + } + } + }, + "700": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Bold", + "postscriptName": "SourceSans3-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 690 + } + } + }, + "800": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 ExtraBold", + "postscriptName": "SourceSans3-ExtraBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 697 + } + } + }, + "900": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Black", + "postscriptName": "SourceSans3-Black", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 704 + } + } + }, + "regular": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Regular", + "postscriptName": "SourceSans3-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 653 + } + } + }, + "italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Italic", + "postscriptName": "SourceSans3-Italic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 628 + } + } + }, + "900italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Black Italic", + "postscriptName": "SourceSans3-BlackItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 676 + } + } + }, + "800italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 ExtraBold Italic", + "postscriptName": "SourceSans3-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "700italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Bold Italic", + "postscriptName": "SourceSans3-BoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 663 + } + } + }, + "600italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 SemiBold Italic", + "postscriptName": "SourceSans3-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 491, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 646 + } + } + }, + "500italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Medium Italic", + "postscriptName": "SourceSans3-MediumItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 489, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 637 + } + } + }, + "300italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 Light Italic", + "postscriptName": "SourceSans3-LightItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 608 + } + } + }, + "200italic": { + "familyName": "Source Sans 3", + "fullName": "Source Sans 3 ExtraLight Italic", + "postscriptName": "SourceSans3-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 1024, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "sourceSerif4": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Regular", + "postscriptName": "SourceSerif4-Regular", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 640 + } + }, + "variants": { + "200": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 ExtraLight", + "postscriptName": "SourceSerif4-ExtraLight", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "300": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Light", + "postscriptName": "SourceSerif4-Light", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "500": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Medium", + "postscriptName": "SourceSerif4-Medium", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 SemiBold", + "postscriptName": "SourceSerif4-SemiBold", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "700": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Bold", + "postscriptName": "SourceSerif4-Bold", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "800": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 ExtraBold", + "postscriptName": "SourceSerif4-ExtraBold", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "900": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Black", + "postscriptName": "SourceSerif4-Black", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "regular": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Regular", + "postscriptName": "SourceSerif4-Regular", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Italic", + "postscriptName": "SourceSerif4-Italic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "900italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Black Italic", + "postscriptName": "SourceSerif4-BlackItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "800italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 ExtraBold Italic", + "postscriptName": "SourceSerif4-ExtraBoldItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "700italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Bold Italic", + "postscriptName": "SourceSerif4-BoldItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "600italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 SemiBold Italic", + "postscriptName": "SourceSerif4-SemiBoldItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "500italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Medium Italic", + "postscriptName": "SourceSerif4-MediumItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "300italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 Light Italic", + "postscriptName": "SourceSerif4-LightItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 640 + } + } + }, + "200italic": { + "familyName": "Source Serif 4", + "fullName": "Source Serif 4 ExtraLight Italic", + "postscriptName": "SourceSerif4-ExtraLightItalic", + "category": "serif", + "capHeight": 670, + "ascent": 1036, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 640 + } + } + } + } + }, + "spaceGrotesk": { + "familyName": "Space Grotesk", + "fullName": "Space Grotesk Regular", + "postscriptName": "SpaceGrotesk-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 984, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 867 + } + }, + "variants": { + "300": { + "familyName": "Space Grotesk", + "fullName": "Space Grotesk Light", + "postscriptName": "SpaceGrotesk-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 984, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 849 + } + } + }, + "500": { + "familyName": "Space Grotesk", + "fullName": "Space Grotesk Medium", + "postscriptName": "SpaceGrotesk-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 984, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 889 + } + } + }, + "600": { + "familyName": "Space Grotesk", + "fullName": "Space Grotesk SemiBold", + "postscriptName": "SpaceGrotesk-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 984, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 899 + } + } + }, + "700": { + "familyName": "Space Grotesk", + "fullName": "Space Grotesk Bold", + "postscriptName": "SpaceGrotesk-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 984, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 910 + } + } + }, + "regular": { + "familyName": "Space Grotesk", + "fullName": "Space Grotesk Regular", + "postscriptName": "SpaceGrotesk-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 984, + "descent": -292, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 867 + } + } + } + } + }, + "spaceMono": { + "familyName": "Space Mono", + "fullName": "Space Mono Regular", + "postscriptName": "SpaceMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 1120, + "descent": -361, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 612, + "subsets": { + "latin": { + "xWidthAvg": 612 + }, + "thai": { + "xWidthAvg": 612 + } + }, + "variants": { + "700": { + "familyName": "Space Mono", + "fullName": "Space Mono Bold", + "postscriptName": "SpaceMono-Bold", + "category": "monospace", + "capHeight": 700, + "ascent": 1120, + "descent": -361, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 612, + "subsets": { + "latin": { + "xWidthAvg": 612 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "regular": { + "familyName": "Space Mono", + "fullName": "Space Mono Regular", + "postscriptName": "SpaceMono-Regular", + "category": "monospace", + "capHeight": 700, + "ascent": 1120, + "descent": -361, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 612, + "subsets": { + "latin": { + "xWidthAvg": 612 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "italic": { + "familyName": "Space Mono", + "fullName": "Space Mono Italic", + "postscriptName": "SpaceMono-Italic", + "category": "monospace", + "capHeight": 700, + "ascent": 1120, + "descent": -361, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 612, + "subsets": { + "latin": { + "xWidthAvg": 612 + }, + "thai": { + "xWidthAvg": 612 + } + } + }, + "700italic": { + "familyName": "Space Mono", + "fullName": "Space Mono Bold Italic", + "postscriptName": "SpaceMono-BoldItalic", + "category": "monospace", + "capHeight": 700, + "ascent": 1120, + "descent": -361, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 612, + "subsets": { + "latin": { + "xWidthAvg": 612 + }, + "thai": { + "xWidthAvg": 612 + } + } + } + } + }, + "specialElite": { + "familyName": "Special Elite", + "fullName": "Special Elite Regular", + "postscriptName": "SpecialElite-Regular", + "category": "display", + "capHeight": 713, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 528, + "xWidthAvg": 1070, + "subsets": { + "latin": { + "xWidthAvg": 1070 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Special Elite", + "fullName": "Special Elite Regular", + "postscriptName": "SpecialElite-Regular", + "category": "display", + "capHeight": 713, + "ascent": 1440, + "descent": -608, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 528, + "xWidthAvg": 1070, + "subsets": { + "latin": { + "xWidthAvg": 1070 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "spectral": { + "familyName": "Spectral", + "fullName": "Spectral Regular", + "postscriptName": "Spectral-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Spectral", + "fullName": "Spectral ExtraLight", + "postscriptName": "Spectral-ExtraLight", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Spectral", + "fullName": "Spectral Light", + "postscriptName": "Spectral-Light", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Spectral", + "fullName": "Spectral Medium", + "postscriptName": "Spectral-Medium", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 451, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Spectral", + "fullName": "Spectral SemiBold", + "postscriptName": "Spectral-SemiBold", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Spectral", + "fullName": "Spectral Bold", + "postscriptName": "Spectral-Bold", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Spectral", + "fullName": "Spectral ExtraBold", + "postscriptName": "Spectral-ExtraBold", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Spectral", + "fullName": "Spectral Regular", + "postscriptName": "Spectral-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Spectral", + "fullName": "Spectral Italic", + "postscriptName": "Spectral-Italic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 475 + } + } + }, + "800italic": { + "familyName": "Spectral", + "fullName": "Spectral ExtraBold Italic", + "postscriptName": "Spectral-ExtraBoldItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Spectral", + "fullName": "Spectral Bold Italic", + "postscriptName": "Spectral-BoldItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "600italic": { + "familyName": "Spectral", + "fullName": "Spectral SemiBold Italic", + "postscriptName": "Spectral-SemiBoldItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 486 + } + } + }, + "500italic": { + "familyName": "Spectral", + "fullName": "Spectral Medium Italic", + "postscriptName": "Spectral-MediumItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 479 + } + } + }, + "300italic": { + "familyName": "Spectral", + "fullName": "Spectral Light Italic", + "postscriptName": "Spectral-LightItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 489 + } + } + }, + "200italic": { + "familyName": "Spectral", + "fullName": "Spectral ExtraLight Italic", + "postscriptName": "Spectral-ExtraLightItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "spectralSC": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Regular", + "postscriptName": "SpectralSC-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Spectral SC", + "fullName": "Spectral SC ExtraLight", + "postscriptName": "SpectralSC-ExtraLight", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Light", + "postscriptName": "SpectralSC-Light", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Medium", + "postscriptName": "SpectralSC-Medium", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 451, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Spectral SC", + "fullName": "Spectral SC SemiBold", + "postscriptName": "SpectralSC-SemiBold", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Bold", + "postscriptName": "SpectralSC-Bold", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Spectral SC", + "fullName": "Spectral SC ExtraBold", + "postscriptName": "SpectralSC-ExtraBold", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Regular", + "postscriptName": "SpectralSC-Regular", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Italic", + "postscriptName": "SpectralSC-Italic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 475 + } + } + }, + "800italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC ExtraBold Italic", + "postscriptName": "SpectralSC-ExtraBoldItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Bold Italic", + "postscriptName": "SpectralSC-BoldItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 456, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 490 + } + } + }, + "600italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC SemiBold Italic", + "postscriptName": "SpectralSC-SemiBoldItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 486 + } + } + }, + "500italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Medium Italic", + "postscriptName": "SpectralSC-MediumItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 452, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 479 + } + } + }, + "300italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC Light Italic", + "postscriptName": "SpectralSC-LightItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 489 + } + } + }, + "200italic": { + "familyName": "Spectral SC", + "fullName": "Spectral SC ExtraLight Italic", + "postscriptName": "SpectralSC-ExtraLightItalic", + "category": "serif", + "capHeight": 660, + "ascent": 1059, + "descent": -463, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 450, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "spicyRice": { + "familyName": "Spicy Rice", + "fullName": "Spicy Rice", + "postscriptName": "SpicyRice-Regular", + "category": "display", + "capHeight": 1481, + "ascent": 2091, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1208, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 305 + } + }, + "variants": { + "regular": { + "familyName": "Spicy Rice", + "fullName": "Spicy Rice", + "postscriptName": "SpicyRice-Regular", + "category": "display", + "capHeight": 1481, + "ascent": 2091, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1208, + "xWidthAvg": 868, + "subsets": { + "latin": { + "xWidthAvg": 868 + }, + "thai": { + "xWidthAvg": 305 + } + } + } + } + }, + "spinnaker": { + "familyName": "Spinnaker", + "fullName": "Spinnaker", + "postscriptName": "Spinnaker-Regular", + "category": "sans-serif", + "capHeight": 1416, + "ascent": 1920, + "descent": -487, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1307 + } + }, + "variants": { + "regular": { + "familyName": "Spinnaker", + "fullName": "Spinnaker", + "postscriptName": "Spinnaker-Regular", + "category": "sans-serif", + "capHeight": 1416, + "ascent": 1920, + "descent": -487, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1000, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 1307 + } + } + } + } + }, + "spirax": { + "familyName": "Spirax", + "fullName": "Spirax-Regular", + "postscriptName": "Spirax-Regular", + "category": "display", + "capHeight": 696, + "ascent": 947, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 463, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 204 + } + }, + "variants": { + "regular": { + "familyName": "Spirax", + "fullName": "Spirax-Regular", + "postscriptName": "Spirax-Regular", + "category": "display", + "capHeight": 696, + "ascent": 947, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 463, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 204 + } + } + } + } + }, + "splash": { + "familyName": "Splash", + "fullName": "Splash Regular", + "postscriptName": "Splash-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -580, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Splash", + "fullName": "Splash Regular", + "postscriptName": "Splash-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1050, + "descent": -580, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "splineSans": { + "familyName": "Spline Sans", + "fullName": "Spline Sans Regular", + "postscriptName": "SplineSans-Regular", + "category": "sans-serif", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 904, + "subsets": { + "latin": { + "xWidthAvg": 904 + }, + "thai": { + "xWidthAvg": 1643 + } + }, + "variants": { + "300": { + "familyName": "Spline Sans", + "fullName": "Spline Sans Light", + "postscriptName": "SplineSans-Light", + "category": "sans-serif", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 882, + "subsets": { + "latin": { + "xWidthAvg": 882 + }, + "thai": { + "xWidthAvg": 1643 + } + } + }, + "500": { + "familyName": "Spline Sans", + "fullName": "Spline Sans Medium", + "postscriptName": "SplineSans-Medium", + "category": "sans-serif", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 916, + "subsets": { + "latin": { + "xWidthAvg": 916 + }, + "thai": { + "xWidthAvg": 1643 + } + } + }, + "600": { + "familyName": "Spline Sans", + "fullName": "Spline Sans SemiBold", + "postscriptName": "SplineSans-SemiBold", + "category": "sans-serif", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 926, + "subsets": { + "latin": { + "xWidthAvg": 926 + }, + "thai": { + "xWidthAvg": 1643 + } + } + }, + "700": { + "familyName": "Spline Sans", + "fullName": "Spline Sans Bold", + "postscriptName": "SplineSans-Bold", + "category": "sans-serif", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 935, + "subsets": { + "latin": { + "xWidthAvg": 935 + }, + "thai": { + "xWidthAvg": 1643 + } + } + }, + "regular": { + "familyName": "Spline Sans", + "fullName": "Spline Sans Regular", + "postscriptName": "SplineSans-Regular", + "category": "sans-serif", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 904, + "subsets": { + "latin": { + "xWidthAvg": 904 + }, + "thai": { + "xWidthAvg": 1643 + } + } + } + } + }, + "splineSansMono": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Regular", + "postscriptName": "SplineSansMono-Regular", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + }, + "variants": { + "300": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Light", + "postscriptName": "SplineSansMono-Light", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "500": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Medium", + "postscriptName": "SplineSansMono-Medium", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono SemiBold", + "postscriptName": "SplineSansMono-SemiBold", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Bold", + "postscriptName": "SplineSansMono-Bold", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "regular": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Regular", + "postscriptName": "SplineSansMono-Regular", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "italic": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Italic", + "postscriptName": "SplineSansMono-Italic", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "700italic": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Bold Italic", + "postscriptName": "SplineSansMono-BoldItalic", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "600italic": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono SemiBold Italic", + "postscriptName": "SplineSansMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "500italic": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Medium Italic", + "postscriptName": "SplineSansMono-MediumItalic", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + }, + "300italic": { + "familyName": "Spline Sans Mono", + "fullName": "Spline Sans Mono Light Italic", + "postscriptName": "SplineSansMono-LightItalic", + "category": "monospace", + "capHeight": 1454, + "ascent": 1927, + "descent": -473, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1091, + "xWidthAvg": 1200, + "subsets": { + "latin": { + "xWidthAvg": 1200 + }, + "thai": { + "xWidthAvg": 1200 + } + } + } + } + }, + "squadaOne": { + "familyName": "Squada One", + "fullName": "Squada One", + "postscriptName": "SquadaOne-Regular", + "category": "display", + "capHeight": 647, + "ascent": 861, + "descent": -196, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 194 + } + }, + "variants": { + "regular": { + "familyName": "Squada One", + "fullName": "Squada One", + "postscriptName": "SquadaOne-Regular", + "category": "display", + "capHeight": 647, + "ascent": 861, + "descent": -196, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 194 + } + } + } + } + }, + "squarePeg": { + "familyName": "Square Peg", + "fullName": "Square Peg Regular", + "postscriptName": "SquarePeg-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 920, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 260, + "xWidthAvg": 257, + "subsets": { + "latin": { + "xWidthAvg": 257 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Square Peg", + "fullName": "Square Peg Regular", + "postscriptName": "SquarePeg-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 920, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 260, + "xWidthAvg": 257, + "subsets": { + "latin": { + "xWidthAvg": 257 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sreeKrushnadevaraya": { + "familyName": "Sree Krushnadevaraya", + "fullName": "Sree Krushnadevaraya", + "postscriptName": "SreeKrushnadevaraya", + "category": "serif", + "capHeight": 408, + "ascent": 1105, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 720, + "xHeight": 273, + "xWidthAvg": 286, + "subsets": { + "latin": { + "xWidthAvg": 286 + }, + "thai": { + "xWidthAvg": 880 + } + }, + "variants": { + "regular": { + "familyName": "Sree Krushnadevaraya", + "fullName": "Sree Krushnadevaraya", + "postscriptName": "SreeKrushnadevaraya", + "category": "serif", + "capHeight": 408, + "ascent": 1105, + "descent": -378, + "lineGap": 0, + "unitsPerEm": 720, + "xHeight": 273, + "xWidthAvg": 286, + "subsets": { + "latin": { + "xWidthAvg": 286 + }, + "thai": { + "xWidthAvg": 880 + } + } + } + } + }, + "sriracha": { + "familyName": "Sriracha", + "fullName": "Sriracha", + "postscriptName": "Sriracha-Regular", + "category": "handwriting", + "capHeight": 656, + "ascent": 1220, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 549 + } + }, + "variants": { + "regular": { + "familyName": "Sriracha", + "fullName": "Sriracha", + "postscriptName": "Sriracha-Regular", + "category": "handwriting", + "capHeight": 656, + "ascent": 1220, + "descent": -550, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 549 + } + } + } + } + }, + "srisakdi": { + "familyName": "Srisakdi", + "fullName": "Srisakdi Regular", + "postscriptName": "Srisakdi-Regular", + "category": "display", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 447 + } + }, + "variants": { + "700": { + "familyName": "Srisakdi", + "fullName": "Srisakdi Bold", + "postscriptName": "Srisakdi-Bold", + "category": "display", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "regular": { + "familyName": "Srisakdi", + "fullName": "Srisakdi Regular", + "postscriptName": "Srisakdi-Regular", + "category": "display", + "capHeight": 700, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 447 + } + } + } + } + }, + "staatliches": { + "familyName": "Staatliches", + "fullName": "Staatliches Regular", + "postscriptName": "Staatliches-Regular", + "category": "display", + "capHeight": 696, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Staatliches", + "fullName": "Staatliches Regular", + "postscriptName": "Staatliches-Regular", + "category": "display", + "capHeight": 696, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 380, + "subsets": { + "latin": { + "xWidthAvg": 380 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "stalemate": { + "familyName": "Stalemate", + "fullName": "Stalemate", + "postscriptName": "Stalemate-Regular", + "category": "handwriting", + "capHeight": 1501, + "ascent": 1837, + "descent": -1165, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 539, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Stalemate", + "fullName": "Stalemate", + "postscriptName": "Stalemate-Regular", + "category": "handwriting", + "capHeight": 1501, + "ascent": 1837, + "descent": -1165, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 539, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "stalinistOne": { + "familyName": "Stalinist One", + "fullName": "Stalinist One", + "postscriptName": "StalinistOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1037, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Stalinist One", + "fullName": "Stalinist One", + "postscriptName": "StalinistOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1037, + "descent": -439, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 530, + "xWidthAvg": 888, + "subsets": { + "latin": { + "xWidthAvg": 888 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "stardosStencil": { + "familyName": "Stardos Stencil", + "fullName": "Stardos Stencil Regular", + "postscriptName": "StardosStencil-Regular", + "category": "display", + "capHeight": 1421, + "ascent": 1994, + "descent": -831, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 981, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 528 + } + }, + "variants": { + "700": { + "familyName": "Stardos Stencil", + "fullName": "Stardos Stencil Bold", + "postscriptName": "StardosStencil-Bold", + "category": "display", + "capHeight": 1421, + "ascent": 1994, + "descent": -831, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1005, + "xWidthAvg": 960, + "subsets": { + "latin": { + "xWidthAvg": 960 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "regular": { + "familyName": "Stardos Stencil", + "fullName": "Stardos Stencil Regular", + "postscriptName": "StardosStencil-Regular", + "category": "display", + "capHeight": 1421, + "ascent": 1994, + "descent": -831, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 981, + "xWidthAvg": 908, + "subsets": { + "latin": { + "xWidthAvg": 908 + }, + "thai": { + "xWidthAvg": 528 + } + } + } + } + }, + "stick": { + "familyName": "Stick", + "fullName": "Stick Regular", + "postscriptName": "Stick-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Stick", + "fullName": "Stick Regular", + "postscriptName": "Stick-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "stickNoBills": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills Regular", + "postscriptName": "StickNoBills-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 374, + "subsets": { + "latin": { + "xWidthAvg": 374 + }, + "thai": { + "xWidthAvg": 631 + } + }, + "variants": { + "200": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills ExtraLight", + "postscriptName": "StickNoBills-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 358, + "subsets": { + "latin": { + "xWidthAvg": 358 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "300": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills Light", + "postscriptName": "StickNoBills-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "500": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills Medium", + "postscriptName": "StickNoBills-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "600": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills SemiBold", + "postscriptName": "StickNoBills-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "700": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills Bold", + "postscriptName": "StickNoBills-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "800": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills ExtraBold", + "postscriptName": "StickNoBills-ExtraBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 631 + } + } + }, + "regular": { + "familyName": "Stick No Bills", + "fullName": "Stick No Bills Regular", + "postscriptName": "StickNoBills-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 940, + "descent": -312, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 374, + "subsets": { + "latin": { + "xWidthAvg": 374 + }, + "thai": { + "xWidthAvg": 631 + } + } + } + } + }, + "stintUltraCondensed": { + "familyName": "Stint Ultra Condensed", + "fullName": "Stint Ultra Condensed", + "postscriptName": "StintUltraCondensed-Regular", + "category": "serif", + "capHeight": 1374, + "ascent": 1829, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 952, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Stint Ultra Condensed", + "fullName": "Stint Ultra Condensed", + "postscriptName": "StintUltraCondensed-Regular", + "category": "serif", + "capHeight": 1374, + "ascent": 1829, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 952, + "xWidthAvg": 513, + "subsets": { + "latin": { + "xWidthAvg": 513 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "stintUltraExpanded": { + "familyName": "Stint Ultra Expanded", + "fullName": "Stint Ultra Expanded", + "postscriptName": "StintUltraExpanded-Regular", + "category": "serif", + "capHeight": 1374, + "ascent": 1853, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 952, + "xWidthAvg": 1218, + "subsets": { + "latin": { + "xWidthAvg": 1218 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Stint Ultra Expanded", + "fullName": "Stint Ultra Expanded", + "postscriptName": "StintUltraExpanded-Regular", + "category": "serif", + "capHeight": 1374, + "ascent": 1853, + "descent": -483, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 952, + "xWidthAvg": 1218, + "subsets": { + "latin": { + "xWidthAvg": 1218 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "stoke": { + "familyName": "Stoke", + "fullName": "Stoke Regular", + "postscriptName": "Stoke-Regular", + "category": "serif", + "capHeight": 683, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 479, + "xWidthAvg": 1168, + "subsets": { + "latin": { + "xWidthAvg": 1168 + }, + "thai": { + "xWidthAvg": 1528 + } + }, + "variants": { + "300": { + "familyName": "Stoke", + "fullName": "Stoke Light", + "postscriptName": "Stoke-Light", + "category": "serif", + "capHeight": 665, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 371, + "xWidthAvg": 1158, + "subsets": { + "latin": { + "xWidthAvg": 1158 + }, + "thai": { + "xWidthAvg": 1528 + } + } + }, + "regular": { + "familyName": "Stoke", + "fullName": "Stoke Regular", + "postscriptName": "Stoke-Regular", + "category": "serif", + "capHeight": 683, + "ascent": 2030, + "descent": -530, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 479, + "xWidthAvg": 1168, + "subsets": { + "latin": { + "xWidthAvg": 1168 + }, + "thai": { + "xWidthAvg": 1528 + } + } + } + } + }, + "strait": { + "familyName": "Strait", + "fullName": "Strait Regular", + "postscriptName": "Strait-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 901, + "descent": -194, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 250 + } + }, + "variants": { + "regular": { + "familyName": "Strait", + "fullName": "Strait Regular", + "postscriptName": "Strait-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 901, + "descent": -194, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 250 + } + } + } + } + }, + "styleScript": { + "familyName": "Style Script", + "fullName": "Style Script Regular", + "postscriptName": "StyleScript-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1000, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 434, + "xWidthAvg": 299, + "subsets": { + "latin": { + "xWidthAvg": 299 + }, + "thai": { + "xWidthAvg": 190 + } + }, + "variants": { + "regular": { + "familyName": "Style Script", + "fullName": "Style Script Regular", + "postscriptName": "StyleScript-Regular", + "category": "handwriting", + "capHeight": 700, + "ascent": 1000, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 434, + "xWidthAvg": 299, + "subsets": { + "latin": { + "xWidthAvg": 299 + }, + "thai": { + "xWidthAvg": 190 + } + } + } + } + }, + "stylish": { + "familyName": "Stylish", + "fullName": "Stylish Regular", + "postscriptName": "Stylish-Regular", + "category": "sans-serif", + "capHeight": 600, + "ascent": 821, + "descent": -179, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 864 + } + }, + "variants": { + "regular": { + "familyName": "Stylish", + "fullName": "Stylish Regular", + "postscriptName": "Stylish-Regular", + "category": "sans-serif", + "capHeight": 600, + "ascent": 821, + "descent": -179, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 864 + } + } + } + } + }, + "sueEllenFrancisco": { + "familyName": "Sue Ellen Francisco", + "fullName": "Sue Ellen Francisco ", + "postscriptName": "SueEllenFrancisco", + "category": "handwriting", + "capHeight": 1085, + "ascent": 1362, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 439, + "xWidthAvg": 286, + "subsets": { + "latin": { + "xWidthAvg": 286 + }, + "thai": { + "xWidthAvg": 256 + } + }, + "variants": { + "regular": { + "familyName": "Sue Ellen Francisco", + "fullName": "Sue Ellen Francisco ", + "postscriptName": "SueEllenFrancisco", + "category": "handwriting", + "capHeight": 1085, + "ascent": 1362, + "descent": -634, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 439, + "xWidthAvg": 286, + "subsets": { + "latin": { + "xWidthAvg": 286 + }, + "thai": { + "xWidthAvg": 256 + } + } + } + } + }, + "suezOne": { + "familyName": "Suez One", + "fullName": "SuezOne-Regular", + "postscriptName": "SuezOne-Regular", + "category": "serif", + "capHeight": 674, + "ascent": 987, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 484 + } + }, + "variants": { + "regular": { + "familyName": "Suez One", + "fullName": "SuezOne-Regular", + "postscriptName": "SuezOne-Regular", + "category": "serif", + "capHeight": 674, + "ascent": 987, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 484 + } + } + } + } + }, + "sulphurPoint": { + "familyName": "Sulphur Point", + "fullName": "Sulphur Point Regular", + "postscriptName": "SulphurPoint-Regular", + "category": "sans-serif", + "capHeight": 665, + "ascent": 790, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 579 + } + }, + "variants": { + "300": { + "familyName": "Sulphur Point", + "fullName": "Sulphur Point Light", + "postscriptName": "SulphurPoint-Light", + "category": "sans-serif", + "capHeight": 665, + "ascent": 790, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "700": { + "familyName": "Sulphur Point", + "fullName": "Sulphur Point Bold", + "postscriptName": "SulphurPoint-Bold", + "category": "sans-serif", + "capHeight": 665, + "ascent": 790, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "regular": { + "familyName": "Sulphur Point", + "fullName": "Sulphur Point Regular", + "postscriptName": "SulphurPoint-Regular", + "category": "sans-serif", + "capHeight": 665, + "ascent": 790, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 579 + } + } + } + } + }, + "sumana": { + "familyName": "Sumana", + "fullName": "Sumana", + "postscriptName": "Sumana-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1922, + "descent": -1005, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Sumana", + "fullName": "Sumana Bold", + "postscriptName": "Sumana-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1922, + "descent": -1005, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Sumana", + "fullName": "Sumana", + "postscriptName": "Sumana-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1922, + "descent": -1005, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sunflower": { + "familyName": "Sunflower", + "fullName": "Sunflower Light", + "postscriptName": "Sunflower-Light", + "category": "sans-serif", + "capHeight": 692, + "ascent": 782, + "descent": -218, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "300": { + "familyName": "Sunflower", + "fullName": "Sunflower Light", + "postscriptName": "Sunflower-Light", + "category": "sans-serif", + "capHeight": 692, + "ascent": 782, + "descent": -218, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Sunflower", + "fullName": "Sunflower Medium", + "postscriptName": "Sunflower-Medium", + "category": "sans-serif", + "capHeight": 680, + "ascent": 782, + "descent": -218, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Sunflower", + "fullName": "Sunflower Bold", + "postscriptName": "Sunflower-Bold", + "category": "sans-serif", + "capHeight": 685, + "ascent": 782, + "descent": -218, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "sunshiney": { + "familyName": "Sunshiney", + "fullName": "Sunshiney Regular", + "postscriptName": "Sunshiney-Regular", + "category": "handwriting", + "capHeight": 759, + "ascent": 1019, + "descent": -306, + "lineGap": 27, + "unitsPerEm": 1024, + "xHeight": 391, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 266 + } + }, + "variants": { + "regular": { + "familyName": "Sunshiney", + "fullName": "Sunshiney Regular", + "postscriptName": "Sunshiney-Regular", + "category": "handwriting", + "capHeight": 759, + "ascent": 1019, + "descent": -306, + "lineGap": 27, + "unitsPerEm": 1024, + "xHeight": 391, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 266 + } + } + } + } + }, + "supermercadoOne": { + "familyName": "Supermercado One", + "fullName": "Supermercado Regular", + "postscriptName": "Supermercado-Regular", + "category": "display", + "capHeight": 1359, + "ascent": 1925, + "descent": -527, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1066, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 472 + } + }, + "variants": { + "regular": { + "familyName": "Supermercado One", + "fullName": "Supermercado Regular", + "postscriptName": "Supermercado-Regular", + "category": "display", + "capHeight": 1359, + "ascent": 1925, + "descent": -527, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1066, + "xWidthAvg": 898, + "subsets": { + "latin": { + "xWidthAvg": 898 + }, + "thai": { + "xWidthAvg": 472 + } + } + } + } + }, + "sura": { + "familyName": "Sura", + "fullName": "Sura", + "postscriptName": "Sura-Regular", + "category": "serif", + "capHeight": 1464, + "ascent": 2359, + "descent": -872, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1022, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 458 + } + }, + "variants": { + "700": { + "familyName": "Sura", + "fullName": "Sura Bold", + "postscriptName": "Sura-Bold", + "category": "serif", + "capHeight": 1468, + "ascent": 2359, + "descent": -872, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1027, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 366 + } + } + }, + "regular": { + "familyName": "Sura", + "fullName": "Sura", + "postscriptName": "Sura-Regular", + "category": "serif", + "capHeight": 1464, + "ascent": 2359, + "descent": -872, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1022, + "xWidthAvg": 902, + "subsets": { + "latin": { + "xWidthAvg": 902 + }, + "thai": { + "xWidthAvg": 458 + } + } + } + } + }, + "suranna": { + "familyName": "Suranna", + "fullName": "Suranna", + "postscriptName": "Suranna", + "category": "serif", + "capHeight": 492, + "ascent": 1101, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 780, + "xHeight": 319, + "xWidthAvg": 294, + "subsets": { + "latin": { + "xWidthAvg": 294 + }, + "thai": { + "xWidthAvg": 880 + } + }, + "variants": { + "regular": { + "familyName": "Suranna", + "fullName": "Suranna", + "postscriptName": "Suranna", + "category": "serif", + "capHeight": 492, + "ascent": 1101, + "descent": -607, + "lineGap": 0, + "unitsPerEm": 780, + "xHeight": 319, + "xWidthAvg": 294, + "subsets": { + "latin": { + "xWidthAvg": 294 + }, + "thai": { + "xWidthAvg": 880 + } + } + } + } + }, + "suravaram": { + "familyName": "Suravaram", + "fullName": "Suravaram", + "postscriptName": "Suravaram", + "category": "serif", + "capHeight": 482, + "ascent": 1295, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 980, + "xHeight": 344, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 886 + } + }, + "variants": { + "regular": { + "familyName": "Suravaram", + "fullName": "Suravaram", + "postscriptName": "Suravaram", + "category": "serif", + "capHeight": 482, + "ascent": 1295, + "descent": -794, + "lineGap": 0, + "unitsPerEm": 980, + "xHeight": 344, + "xWidthAvg": 350, + "subsets": { + "latin": { + "xWidthAvg": 350 + }, + "thai": { + "xWidthAvg": 886 + } + } + } + } + }, + "suwannaphum": { + "familyName": "Suwannaphum", + "fullName": "Suwannaphum Regular", + "postscriptName": "Suwannaphum-Regular", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "100": { + "familyName": "Suwannaphum", + "fullName": "Suwannaphum Thin", + "postscriptName": "Suwannaphum-Thin", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 987, + "subsets": { + "latin": { + "xWidthAvg": 987 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "300": { + "familyName": "Suwannaphum", + "fullName": "Suwannaphum Light", + "postscriptName": "Suwannaphum-Light", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 994, + "subsets": { + "latin": { + "xWidthAvg": 994 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700": { + "familyName": "Suwannaphum", + "fullName": "Suwannaphum Bold", + "postscriptName": "Suwannaphum-Bold", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1014, + "subsets": { + "latin": { + "xWidthAvg": 1014 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "900": { + "familyName": "Suwannaphum", + "fullName": "Suwannaphum Black", + "postscriptName": "Suwannaphum-Black", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1022, + "subsets": { + "latin": { + "xWidthAvg": 1022 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Suwannaphum", + "fullName": "Suwannaphum Regular", + "postscriptName": "Suwannaphum-Regular", + "category": "serif", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 1001, + "subsets": { + "latin": { + "xWidthAvg": 1001 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "swankyAndMooMoo": { + "familyName": "Swanky and Moo Moo", + "fullName": "Swanky and Moo Moo", + "postscriptName": "SwankyandMooMoo", + "category": "handwriting", + "capHeight": 424, + "ascent": 995, + "descent": -507, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 341, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 326 + } + }, + "variants": { + "regular": { + "familyName": "Swanky and Moo Moo", + "fullName": "Swanky and Moo Moo", + "postscriptName": "SwankyandMooMoo", + "category": "handwriting", + "capHeight": 424, + "ascent": 995, + "descent": -507, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 341, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 326 + } + } + } + } + }, + "syncopate": { + "familyName": "Syncopate", + "fullName": "Syncopate Regular", + "postscriptName": "Syncopate-Regular", + "category": "sans-serif", + "capHeight": 1374, + "ascent": 1556, + "descent": -426, + "lineGap": 150, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 1501, + "subsets": { + "latin": { + "xWidthAvg": 1501 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "Syncopate", + "fullName": "Syncopate Bold", + "postscriptName": "Syncopate-Bold", + "category": "sans-serif", + "capHeight": 1374, + "ascent": 1556, + "descent": -426, + "lineGap": 150, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 1638, + "subsets": { + "latin": { + "xWidthAvg": 1638 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "Syncopate", + "fullName": "Syncopate Regular", + "postscriptName": "Syncopate-Regular", + "category": "sans-serif", + "capHeight": 1374, + "ascent": 1556, + "descent": -426, + "lineGap": 150, + "unitsPerEm": 2048, + "xHeight": 958, + "xWidthAvg": 1501, + "subsets": { + "latin": { + "xWidthAvg": 1501 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "syne": { + "familyName": "Syne", + "fullName": "Syne Regular", + "postscriptName": "Syne-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 446 + } + }, + "variants": { + "500": { + "familyName": "Syne", + "fullName": "Syne Medium", + "postscriptName": "Syne-Medium", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 449 + } + } + }, + "600": { + "familyName": "Syne", + "fullName": "Syne SemiBold", + "postscriptName": "Syne-SemiBold", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 452 + } + } + }, + "700": { + "familyName": "Syne", + "fullName": "Syne Bold", + "postscriptName": "Syne-Bold", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 456 + } + } + }, + "800": { + "familyName": "Syne", + "fullName": "Syne ExtraBold", + "postscriptName": "Syne-ExtraBold", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 789, + "subsets": { + "latin": { + "xWidthAvg": 789 + }, + "thai": { + "xWidthAvg": 478 + } + } + }, + "regular": { + "familyName": "Syne", + "fullName": "Syne Regular", + "postscriptName": "Syne-Regular", + "category": "sans-serif", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 446 + } + } + } + } + }, + "syneMono": { + "familyName": "Syne Mono", + "fullName": "Syne Mono Regular", + "postscriptName": "SyneMono-Regular", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 550, + "subsets": { + "latin": { + "xWidthAvg": 550 + }, + "thai": { + "xWidthAvg": 550 + } + }, + "variants": { + "regular": { + "familyName": "Syne Mono", + "fullName": "Syne Mono Regular", + "postscriptName": "SyneMono-Regular", + "category": "monospace", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 550, + "subsets": { + "latin": { + "xWidthAvg": 550 + }, + "thai": { + "xWidthAvg": 550 + } + } + } + } + }, + "syneTactile": { + "familyName": "Syne Tactile", + "fullName": "Syne Tactile Regular", + "postscriptName": "SyneTactile-Regular", + "category": "display", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 459 + } + }, + "variants": { + "regular": { + "familyName": "Syne Tactile", + "fullName": "Syne Tactile Regular", + "postscriptName": "SyneTactile-Regular", + "category": "display", + "capHeight": 650, + "ascent": 925, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 459 + } + } + } + } + }, + "tacOne": { + "familyName": "Tac One", + "fullName": "Tac One Regular", + "postscriptName": "TacOne-Regular", + "category": "sans-serif", + "capHeight": 554, + "ascent": 830, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 493 + } + }, + "variants": { + "regular": { + "familyName": "Tac One", + "fullName": "Tac One Regular", + "postscriptName": "TacOne-Regular", + "category": "sans-serif", + "capHeight": 554, + "ascent": 830, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 360, + "subsets": { + "latin": { + "xWidthAvg": 360 + }, + "thai": { + "xWidthAvg": 493 + } + } + } + } + }, + "tahoma": { + "familyName": "Tahoma", + "fullName": "Tahoma", + "postscriptName": "Tahoma", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2049, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1117, + "xWidthAvg": 917, + "subsets": { + "latin": { + "xWidthAvg": 917 + }, + "thai": { + "xWidthAvg": 1144 + } + }, + "variants": { + "700": { + "familyName": "Tahoma", + "fullName": "Tahoma Bold", + "postscriptName": "Tahoma-Bold", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2049, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1123, + "xWidthAvg": 1044, + "subsets": { + "latin": { + "xWidthAvg": 1044 + }, + "thai": { + "xWidthAvg": 1264 + } + } + }, + "regular": { + "familyName": "Tahoma", + "fullName": "Tahoma", + "postscriptName": "Tahoma", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2049, + "descent": -423, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1117, + "xWidthAvg": 917, + "subsets": { + "latin": { + "xWidthAvg": 917 + }, + "thai": { + "xWidthAvg": 1144 + } + } + } + } + }, + "taiHeritagePro": { + "familyName": "Tai Heritage Pro", + "fullName": "Tai Heritage Pro", + "postscriptName": "TaiHeritagePro", + "category": "serif", + "capHeight": 1700, + "ascent": 2700, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1150, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1400 + } + }, + "variants": { + "700": { + "familyName": "Tai Heritage Pro", + "fullName": "Tai Heritage Pro Bold", + "postscriptName": "TaiHeritagePro-Bold", + "category": "serif", + "capHeight": 1700, + "ascent": 2700, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1150, + "xWidthAvg": 931, + "subsets": { + "latin": { + "xWidthAvg": 931 + }, + "thai": { + "xWidthAvg": 1400 + } + } + }, + "regular": { + "familyName": "Tai Heritage Pro", + "fullName": "Tai Heritage Pro", + "postscriptName": "TaiHeritagePro", + "category": "serif", + "capHeight": 1700, + "ascent": 2700, + "descent": -1600, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1150, + "xWidthAvg": 849, + "subsets": { + "latin": { + "xWidthAvg": 849 + }, + "thai": { + "xWidthAvg": 1400 + } + } + } + } + }, + "tajawal": { + "familyName": "Tajawal", + "fullName": "Tajawal", + "postscriptName": "Tajawal-Regular", + "category": "sans-serif", + "capHeight": 633, + "ascent": 643, + "descent": -357, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 240 + } + }, + "variants": { + "200": { + "familyName": "Tajawal", + "fullName": "Tajawal ExtraLight", + "postscriptName": "Tajawal-ExtraLight", + "category": "sans-serif", + "capHeight": 633, + "ascent": 645, + "descent": -355, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 394, + "subsets": { + "latin": { + "xWidthAvg": 394 + }, + "thai": { + "xWidthAvg": 213 + } + } + }, + "300": { + "familyName": "Tajawal", + "fullName": "Tajawal Light", + "postscriptName": "Tajawal-Light", + "category": "sans-serif", + "capHeight": 633, + "ascent": 645, + "descent": -355, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 220 + } + } + }, + "500": { + "familyName": "Tajawal", + "fullName": "Tajawal-Medium", + "postscriptName": "Tajawal-Medium", + "category": "sans-serif", + "capHeight": 633, + "ascent": 643, + "descent": -357, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 233 + } + } + }, + "700": { + "familyName": "Tajawal", + "fullName": "Tajawal-Bold", + "postscriptName": "Tajawal-Bold", + "category": "sans-serif", + "capHeight": 633, + "ascent": 643, + "descent": -357, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 240 + } + } + }, + "800": { + "familyName": "Tajawal", + "fullName": "Tajawal ExtraBold", + "postscriptName": "Tajawal-ExtraBold", + "category": "sans-serif", + "capHeight": 633, + "ascent": 643, + "descent": -357, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 247 + } + } + }, + "900": { + "familyName": "Tajawal", + "fullName": "Tajawal Black", + "postscriptName": "Tajawal-Black", + "category": "sans-serif", + "capHeight": 633, + "ascent": 643, + "descent": -357, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 253 + } + } + }, + "regular": { + "familyName": "Tajawal", + "fullName": "Tajawal", + "postscriptName": "Tajawal-Regular", + "category": "sans-serif", + "capHeight": 633, + "ascent": 643, + "descent": -357, + "lineGap": 200, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 240 + } + } + } + } + }, + "tangerine": { + "familyName": "Tangerine", + "fullName": "Tangerine Regular", + "postscriptName": "Tangerine-Regular", + "category": "handwriting", + "capHeight": 644, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 255, + "xWidthAvg": 237, + "subsets": { + "latin": { + "xWidthAvg": 237 + }, + "thai": { + "xWidthAvg": 150 + } + }, + "variants": { + "700": { + "familyName": "Tangerine", + "fullName": "Tangerine Bold", + "postscriptName": "Tangerine-Bold", + "category": "handwriting", + "capHeight": 644, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 256, + "xWidthAvg": 259, + "subsets": { + "latin": { + "xWidthAvg": 259 + }, + "thai": { + "xWidthAvg": 150 + } + } + }, + "regular": { + "familyName": "Tangerine", + "fullName": "Tangerine Regular", + "postscriptName": "Tangerine-Regular", + "category": "handwriting", + "capHeight": 644, + "ascent": 750, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 255, + "xWidthAvg": 237, + "subsets": { + "latin": { + "xWidthAvg": 237 + }, + "thai": { + "xWidthAvg": 150 + } + } + } + } + }, + "tapestry": { + "familyName": "Tapestry", + "fullName": "Tapestry Regular", + "postscriptName": "Tapestry-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 463 + } + }, + "variants": { + "regular": { + "familyName": "Tapestry", + "fullName": "Tapestry Regular", + "postscriptName": "Tapestry-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 950, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 454, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 463 + } + } + } + } + }, + "taprom": { + "familyName": "Taprom", + "fullName": "Taprom Regular", + "postscriptName": "Taprom-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "Taprom", + "fullName": "Taprom Regular", + "postscriptName": "Taprom-Regular", + "category": "display", + "capHeight": 1462, + "ascent": 2500, + "descent": -1200, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1098, + "xWidthAvg": 755, + "subsets": { + "latin": { + "xWidthAvg": 755 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "tauri": { + "familyName": "Tauri", + "fullName": "Tauri-Regular", + "postscriptName": "TauriRegular", + "category": "sans-serif", + "capHeight": 1571, + "ascent": 2040, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1135, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 2134 + } + }, + "variants": { + "regular": { + "familyName": "Tauri", + "fullName": "Tauri-Regular", + "postscriptName": "TauriRegular", + "category": "sans-serif", + "capHeight": 1571, + "ascent": 2040, + "descent": -520, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1135, + "xWidthAvg": 978, + "subsets": { + "latin": { + "xWidthAvg": 978 + }, + "thai": { + "xWidthAvg": 2134 + } + } + } + } + }, + "taviraj": { + "familyName": "Taviraj", + "fullName": "Taviraj Regular", + "postscriptName": "Taviraj-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 556 + } + }, + "variants": { + "100": { + "familyName": "Taviraj", + "fullName": "Taviraj Thin", + "postscriptName": "Taviraj-Thin", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 510 + } + } + }, + "200": { + "familyName": "Taviraj", + "fullName": "Taviraj ExtraLight", + "postscriptName": "Taviraj-ExtraLight", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 430, + "subsets": { + "latin": { + "xWidthAvg": 430 + }, + "thai": { + "xWidthAvg": 525 + } + } + }, + "300": { + "familyName": "Taviraj", + "fullName": "Taviraj Light", + "postscriptName": "Taviraj-Light", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 541 + } + } + }, + "500": { + "familyName": "Taviraj", + "fullName": "Taviraj Medium", + "postscriptName": "Taviraj-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "600": { + "familyName": "Taviraj", + "fullName": "Taviraj SemiBold", + "postscriptName": "Taviraj-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 595 + } + } + }, + "700": { + "familyName": "Taviraj", + "fullName": "Taviraj Bold", + "postscriptName": "Taviraj-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 539, + "subsets": { + "latin": { + "xWidthAvg": 539 + }, + "thai": { + "xWidthAvg": 619 + } + } + }, + "800": { + "familyName": "Taviraj", + "fullName": "Taviraj ExtraBold", + "postscriptName": "Taviraj-ExtraBold", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 548, + "subsets": { + "latin": { + "xWidthAvg": 548 + }, + "thai": { + "xWidthAvg": 627 + } + } + }, + "900": { + "familyName": "Taviraj", + "fullName": "Taviraj Black", + "postscriptName": "Taviraj-Black", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 557, + "subsets": { + "latin": { + "xWidthAvg": 557 + }, + "thai": { + "xWidthAvg": 635 + } + } + }, + "regular": { + "familyName": "Taviraj", + "fullName": "Taviraj Regular", + "postscriptName": "Taviraj-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 556 + } + } + }, + "italic": { + "familyName": "Taviraj", + "fullName": "Taviraj Italic", + "postscriptName": "Taviraj-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 534 + } + } + }, + "900italic": { + "familyName": "Taviraj", + "fullName": "Taviraj Black Italic", + "postscriptName": "Taviraj-BlackItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 539, + "subsets": { + "latin": { + "xWidthAvg": 539 + }, + "thai": { + "xWidthAvg": 610 + } + } + }, + "800italic": { + "familyName": "Taviraj", + "fullName": "Taviraj ExtraBold Italic", + "postscriptName": "Taviraj-ExtraBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 529, + "subsets": { + "latin": { + "xWidthAvg": 529 + }, + "thai": { + "xWidthAvg": 602 + } + } + }, + "700italic": { + "familyName": "Taviraj", + "fullName": "Taviraj Bold Italic", + "postscriptName": "Taviraj-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 521, + "subsets": { + "latin": { + "xWidthAvg": 521 + }, + "thai": { + "xWidthAvg": 594 + } + } + }, + "600italic": { + "familyName": "Taviraj", + "fullName": "Taviraj SemiBold Italic", + "postscriptName": "Taviraj-SemiBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 572 + } + } + }, + "500italic": { + "familyName": "Taviraj", + "fullName": "Taviraj Medium Italic", + "postscriptName": "Taviraj-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 549 + } + } + }, + "300italic": { + "familyName": "Taviraj", + "fullName": "Taviraj Light Italic", + "postscriptName": "Taviraj-LightItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 519 + } + } + }, + "200italic": { + "familyName": "Taviraj", + "fullName": "Taviraj ExtraLight Italic", + "postscriptName": "Taviraj-ExtraLightItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 504 + } + } + }, + "100italic": { + "familyName": "Taviraj", + "fullName": "Taviraj Thin Italic", + "postscriptName": "Taviraj-ThinItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1172, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 490 + } + } + } + } + }, + "teachers": { + "familyName": "Teachers", + "fullName": "Teachers Regular", + "postscriptName": "Teachers-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 501 + } + }, + "variants": { + "500": { + "familyName": "Teachers", + "fullName": "Teachers Medium", + "postscriptName": "Teachers-Medium", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "600": { + "familyName": "Teachers", + "fullName": "Teachers SemiBold", + "postscriptName": "Teachers-SemiBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Teachers", + "fullName": "Teachers Bold", + "postscriptName": "Teachers-Bold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Teachers", + "fullName": "Teachers ExtraBold", + "postscriptName": "Teachers-ExtraBold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Teachers", + "fullName": "Teachers Regular", + "postscriptName": "Teachers-Regular", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "italic": { + "familyName": "Teachers", + "fullName": "Teachers Italic", + "postscriptName": "Teachers-Italic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "800italic": { + "familyName": "Teachers", + "fullName": "Teachers ExtraBold Italic", + "postscriptName": "Teachers-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Teachers", + "fullName": "Teachers Bold Italic", + "postscriptName": "Teachers-BoldItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Teachers", + "fullName": "Teachers SemiBold Italic", + "postscriptName": "Teachers-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Teachers", + "fullName": "Teachers Medium Italic", + "postscriptName": "Teachers-MediumItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 501 + } + } + } + } + }, + "teko": { + "familyName": "Teko", + "fullName": "Teko Regular", + "postscriptName": "Teko-Regular", + "category": "sans-serif", + "capHeight": 626, + "ascent": 958, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 292, + "subsets": { + "latin": { + "xWidthAvg": 292 + }, + "thai": { + "xWidthAvg": 751 + } + }, + "variants": { + "300": { + "familyName": "Teko", + "fullName": "Teko Light", + "postscriptName": "Teko-Light", + "category": "sans-serif", + "capHeight": 622, + "ascent": 958, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 266, + "subsets": { + "latin": { + "xWidthAvg": 266 + }, + "thai": { + "xWidthAvg": 750 + } + } + }, + "500": { + "familyName": "Teko", + "fullName": "Teko Medium", + "postscriptName": "Teko-Medium", + "category": "sans-serif", + "capHeight": 631, + "ascent": 958, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 321, + "subsets": { + "latin": { + "xWidthAvg": 321 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "600": { + "familyName": "Teko", + "fullName": "Teko SemiBold", + "postscriptName": "Teko-SemiBold", + "category": "sans-serif", + "capHeight": 636, + "ascent": 958, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 354, + "subsets": { + "latin": { + "xWidthAvg": 354 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "700": { + "familyName": "Teko", + "fullName": "Teko Bold", + "postscriptName": "Teko-Bold", + "category": "sans-serif", + "capHeight": 642, + "ascent": 958, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 486, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Teko", + "fullName": "Teko Regular", + "postscriptName": "Teko-Regular", + "category": "sans-serif", + "capHeight": 626, + "ascent": 958, + "descent": -475, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 292, + "subsets": { + "latin": { + "xWidthAvg": 292 + }, + "thai": { + "xWidthAvg": 751 + } + } + } + } + }, + "tektur": { + "familyName": "Tektur", + "fullName": "Tektur Regular", + "postscriptName": "Tektur-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 580 + } + }, + "variants": { + "500": { + "familyName": "Tektur", + "fullName": "Tektur Medium", + "postscriptName": "Tektur-Medium", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "600": { + "familyName": "Tektur", + "fullName": "Tektur SemiBold", + "postscriptName": "Tektur-SemiBold", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "700": { + "familyName": "Tektur", + "fullName": "Tektur Bold", + "postscriptName": "Tektur-Bold", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "800": { + "familyName": "Tektur", + "fullName": "Tektur ExtraBold", + "postscriptName": "Tektur-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "900": { + "familyName": "Tektur", + "fullName": "Tektur Black", + "postscriptName": "Tektur-Black", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 580 + } + } + }, + "regular": { + "familyName": "Tektur", + "fullName": "Tektur Regular", + "postscriptName": "Tektur-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1000, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 492, + "subsets": { + "latin": { + "xWidthAvg": 492 + }, + "thai": { + "xWidthAvg": 580 + } + } + } + } + }, + "telex": { + "familyName": "Telex", + "fullName": "Telex Regular", + "postscriptName": "Telex-Regular", + "category": "sans-serif", + "capHeight": 708, + "ascent": 945, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 596 + } + }, + "variants": { + "regular": { + "familyName": "Telex", + "fullName": "Telex Regular", + "postscriptName": "Telex-Regular", + "category": "sans-serif", + "capHeight": 708, + "ascent": 945, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 514, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 596 + } + } + } + } + }, + "tenaliRamakrishna": { + "familyName": "Tenali Ramakrishna", + "fullName": "Tenali Ramakrishna", + "postscriptName": "TenaliRamakrishna", + "category": "sans-serif", + "capHeight": 367, + "ascent": 661, + "descent": -512, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 268, + "xWidthAvg": 264, + "subsets": { + "latin": { + "xWidthAvg": 264 + }, + "thai": { + "xWidthAvg": 438 + } + }, + "variants": { + "regular": { + "familyName": "Tenali Ramakrishna", + "fullName": "Tenali Ramakrishna", + "postscriptName": "TenaliRamakrishna", + "category": "sans-serif", + "capHeight": 367, + "ascent": 661, + "descent": -512, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 268, + "xWidthAvg": 264, + "subsets": { + "latin": { + "xWidthAvg": 264 + }, + "thai": { + "xWidthAvg": 438 + } + } + } + } + }, + "tenorSans": { + "familyName": "Tenor Sans", + "fullName": "Tenor Sans", + "postscriptName": "TenorSans", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 100 + } + }, + "variants": { + "regular": { + "familyName": "Tenor Sans", + "fullName": "Tenor Sans", + "postscriptName": "TenorSans", + "category": "sans-serif", + "capHeight": 700, + "ascent": 920, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 487, + "subsets": { + "latin": { + "xWidthAvg": 487 + }, + "thai": { + "xWidthAvg": 100 + } + } + } + } + }, + "textMeOne": { + "familyName": "Text Me One", + "fullName": "Text Me One", + "postscriptName": "TextMeOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 952, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Text Me One", + "fullName": "Text Me One", + "postscriptName": "TextMeOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 952, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 502, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "texturina": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Regular", + "postscriptName": "Texturina12pt-Regular", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Thin", + "postscriptName": "Texturina12pt-Thin", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Texturina", + "fullName": "Texturina 12pt ExtraLight", + "postscriptName": "Texturina12pt-ExtraLight", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Light", + "postscriptName": "Texturina12pt-Light", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Medium", + "postscriptName": "Texturina12pt-Medium", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Texturina", + "fullName": "Texturina 12pt SemiBold", + "postscriptName": "Texturina12pt-SemiBold", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Bold", + "postscriptName": "Texturina12pt-Bold", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Texturina", + "fullName": "Texturina 12pt ExtraBold", + "postscriptName": "Texturina12pt-ExtraBold", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Black", + "postscriptName": "Texturina12pt-Black", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Regular", + "postscriptName": "Texturina12pt-Regular", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 451, + "subsets": { + "latin": { + "xWidthAvg": 451 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Italic", + "postscriptName": "Texturina12pt-Italic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Black Italic", + "postscriptName": "Texturina12pt-BlackItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt ExtraBold Italic", + "postscriptName": "Texturina12pt-ExtraBoldItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Bold Italic", + "postscriptName": "Texturina12pt-BoldItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt SemiBold Italic", + "postscriptName": "Texturina12pt-SemiBoldItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Medium Italic", + "postscriptName": "Texturina12pt-MediumItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Light Italic", + "postscriptName": "Texturina12pt-LightItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt ExtraLight Italic", + "postscriptName": "Texturina12pt-ExtraLightItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Texturina", + "fullName": "Texturina 12pt Thin Italic", + "postscriptName": "Texturina12pt-ThinItalic", + "category": "serif", + "capHeight": 704, + "ascent": 1260, + "descent": -300, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "thasadith": { + "familyName": "Thasadith", + "fullName": "Thasadith Regular", + "postscriptName": "Thasadith-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 483 + } + }, + "variants": { + "700": { + "familyName": "Thasadith", + "fullName": "Thasadith Bold", + "postscriptName": "Thasadith-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 515 + } + } + }, + "regular": { + "familyName": "Thasadith", + "fullName": "Thasadith Regular", + "postscriptName": "Thasadith-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 483 + } + } + }, + "italic": { + "familyName": "Thasadith", + "fullName": "Thasadith Italic", + "postscriptName": "Thasadith-Italic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 483 + } + } + }, + "700italic": { + "familyName": "Thasadith", + "fullName": "Thasadith Bold Italic", + "postscriptName": "Thasadith-BoldItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1005, + "descent": -295, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 516 + } + } + } + } + }, + "theGirlNextDoor": { + "familyName": "The Girl Next Door", + "fullName": "The Girl Next Door", + "postscriptName": "TheGirlNextDoor", + "category": "handwriting", + "capHeight": 627, + "ascent": 1139, + "descent": -748, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 519, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 346 + } + }, + "variants": { + "regular": { + "familyName": "The Girl Next Door", + "fullName": "The Girl Next Door", + "postscriptName": "TheGirlNextDoor", + "category": "handwriting", + "capHeight": 627, + "ascent": 1139, + "descent": -748, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 519, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 346 + } + } + } + } + }, + "theNautigal": { + "familyName": "The Nautigal", + "fullName": "The Nautigal Regular", + "postscriptName": "TheNautigal-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 870, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 265, + "xWidthAvg": 251, + "subsets": { + "latin": { + "xWidthAvg": 251 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "700": { + "familyName": "The Nautigal", + "fullName": "The Nautigal Bold", + "postscriptName": "TheNautigal-Bold", + "category": "handwriting", + "capHeight": 600, + "ascent": 870, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 265, + "xWidthAvg": 254, + "subsets": { + "latin": { + "xWidthAvg": 254 + }, + "thai": { + "xWidthAvg": 518 + } + } + }, + "regular": { + "familyName": "The Nautigal", + "fullName": "The Nautigal Regular", + "postscriptName": "TheNautigal-Regular", + "category": "handwriting", + "capHeight": 600, + "ascent": 870, + "descent": -330, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 265, + "xWidthAvg": 251, + "subsets": { + "latin": { + "xWidthAvg": 251 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "tienne": { + "familyName": "Tienne", + "fullName": "Tienne Regular", + "postscriptName": "Tienne-Regular", + "category": "serif", + "capHeight": 1437, + "ascent": 2030, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 363, + "xWidthAvg": 1048, + "subsets": { + "latin": { + "xWidthAvg": 1048 + }, + "thai": { + "xWidthAvg": 531 + } + }, + "variants": { + "700": { + "familyName": "Tienne", + "fullName": "Tienne Bold", + "postscriptName": "Tienne-Bold", + "category": "serif", + "capHeight": 1413, + "ascent": 2030, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 483, + "xWidthAvg": 1092, + "subsets": { + "latin": { + "xWidthAvg": 1092 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "900": { + "familyName": "Tienne", + "fullName": "Tienne Black", + "postscriptName": "Tienne-Black", + "category": "serif", + "capHeight": 1387, + "ascent": 2030, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 983, + "xWidthAvg": 1140, + "subsets": { + "latin": { + "xWidthAvg": 1140 + }, + "thai": { + "xWidthAvg": 532 + } + } + }, + "regular": { + "familyName": "Tienne", + "fullName": "Tienne Regular", + "postscriptName": "Tienne-Regular", + "category": "serif", + "capHeight": 1437, + "ascent": 2030, + "descent": -724, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 363, + "xWidthAvg": 1048, + "subsets": { + "latin": { + "xWidthAvg": 1048 + }, + "thai": { + "xWidthAvg": 531 + } + } + } + } + }, + "tillana": { + "familyName": "Tillana", + "fullName": "Tillana Regular", + "postscriptName": "Tillana-Regular", + "category": "display", + "capHeight": 732, + "ascent": 1158, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 750 + } + }, + "variants": { + "500": { + "familyName": "Tillana", + "fullName": "Tillana Medium", + "postscriptName": "Tillana-Medium", + "category": "display", + "capHeight": 738, + "ascent": 1158, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 552, + "xWidthAvg": 481, + "subsets": { + "latin": { + "xWidthAvg": 481 + }, + "thai": { + "xWidthAvg": 751 + } + } + }, + "600": { + "familyName": "Tillana", + "fullName": "Tillana SemiBold", + "postscriptName": "Tillana-SemiBold", + "category": "display", + "capHeight": 744, + "ascent": 1158, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 558, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 753 + } + } + }, + "700": { + "familyName": "Tillana", + "fullName": "Tillana Bold", + "postscriptName": "Tillana-Bold", + "category": "display", + "capHeight": 751, + "ascent": 1158, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 568, + "subsets": { + "latin": { + "xWidthAvg": 568 + }, + "thai": { + "xWidthAvg": 754 + } + } + }, + "800": { + "familyName": "Tillana", + "fullName": "Tillana ExtraBold", + "postscriptName": "Tillana-ExtraBold", + "category": "display", + "capHeight": 758, + "ascent": 1158, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 621, + "subsets": { + "latin": { + "xWidthAvg": 621 + }, + "thai": { + "xWidthAvg": 756 + } + } + }, + "regular": { + "familyName": "Tillana", + "fullName": "Tillana Regular", + "postscriptName": "Tillana-Regular", + "category": "display", + "capHeight": 732, + "ascent": 1158, + "descent": -484, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 546, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 750 + } + } + } + } + }, + "tiltNeon": { + "familyName": "Tilt Neon", + "fullName": "Tilt Neon Regular", + "postscriptName": "TiltNeon-Regular", + "category": "display", + "capHeight": 680, + "ascent": 990, + "descent": -272, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Tilt Neon", + "fullName": "Tilt Neon Regular", + "postscriptName": "TiltNeon-Regular", + "category": "display", + "capHeight": 680, + "ascent": 990, + "descent": -272, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "tiltPrism": { + "familyName": "Tilt Prism", + "fullName": "Tilt Prism Regular", + "postscriptName": "TiltPrism-Regular", + "category": "display", + "capHeight": 680, + "ascent": 990, + "descent": -272, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Tilt Prism", + "fullName": "Tilt Prism Regular", + "postscriptName": "TiltPrism-Regular", + "category": "display", + "capHeight": 680, + "ascent": 990, + "descent": -272, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "tiltWarp": { + "familyName": "Tilt Warp", + "fullName": "Tilt Warp Regular", + "postscriptName": "TiltWarp-Regular", + "category": "display", + "capHeight": 680, + "ascent": 990, + "descent": -272, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Tilt Warp", + "fullName": "Tilt Warp Regular", + "postscriptName": "TiltWarp-Regular", + "category": "display", + "capHeight": 680, + "ascent": 990, + "descent": -272, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "timesNewRoman": { + "familyName": "Times New Roman", + "fullName": "Times New Roman", + "postscriptName": "TimesNewRomanPSMT", + "category": "serif", + "capHeight": 1356, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 916, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 1593 + } + }, + "variants": { + "700": { + "familyName": "Times New Roman", + "fullName": "Times New Roman Bold", + "postscriptName": "TimesNewRomanPS-BoldMT", + "category": "serif", + "capHeight": 1356, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 935, + "xWidthAvg": 886, + "subsets": { + "latin": { + "xWidthAvg": 886 + }, + "thai": { + "xWidthAvg": 1593 + } + } + }, + "regular": { + "familyName": "Times New Roman", + "fullName": "Times New Roman", + "postscriptName": "TimesNewRomanPSMT", + "category": "serif", + "capHeight": 1356, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 916, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 1593 + } + } + }, + "italic": { + "familyName": "Times New Roman", + "fullName": "Times New Roman Italic", + "postscriptName": "TimesNewRomanPS-ItalicMT", + "category": "serif", + "capHeight": 1356, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 881, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 1593 + } + } + }, + "700italic": { + "familyName": "Times New Roman", + "fullName": "Times New Roman Bold Italic", + "postscriptName": "TimesNewRomanPS-BoldItalicMT", + "category": "serif", + "capHeight": 1356, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 899, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1593 + } + } + } + } + }, + "timmana": { + "familyName": "Timmana", + "fullName": "Timmana", + "postscriptName": "Timmana", + "category": "sans-serif", + "capHeight": 454, + "ascent": 668, + "descent": -554, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 354, + "xWidthAvg": 301, + "subsets": { + "latin": { + "xWidthAvg": 301 + }, + "thai": { + "xWidthAvg": 558 + } + }, + "variants": { + "regular": { + "familyName": "Timmana", + "fullName": "Timmana", + "postscriptName": "Timmana", + "category": "sans-serif", + "capHeight": 454, + "ascent": 668, + "descent": -554, + "lineGap": 0, + "unitsPerEm": 750, + "xHeight": 354, + "xWidthAvg": 301, + "subsets": { + "latin": { + "xWidthAvg": 301 + }, + "thai": { + "xWidthAvg": 558 + } + } + } + } + }, + "tinos": { + "familyName": "Tinos", + "fullName": "Tinos Regular", + "postscriptName": "Tinos-Regular", + "category": "serif", + "capHeight": 1341, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 940, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 1593 + } + }, + "variants": { + "700": { + "familyName": "Tinos", + "fullName": "Tinos Bold", + "postscriptName": "Tinos-Bold", + "category": "serif", + "capHeight": 1341, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 940, + "xWidthAvg": 886, + "subsets": { + "latin": { + "xWidthAvg": 886 + }, + "thai": { + "xWidthAvg": 1593 + } + } + }, + "regular": { + "familyName": "Tinos", + "fullName": "Tinos Regular", + "postscriptName": "Tinos-Regular", + "category": "serif", + "capHeight": 1341, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 940, + "xWidthAvg": 832, + "subsets": { + "latin": { + "xWidthAvg": 832 + }, + "thai": { + "xWidthAvg": 1593 + } + } + }, + "italic": { + "familyName": "Tinos", + "fullName": "Tinos Italic", + "postscriptName": "Tinos-Italic", + "category": "serif", + "capHeight": 1341, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 940, + "xWidthAvg": 836, + "subsets": { + "latin": { + "xWidthAvg": 836 + }, + "thai": { + "xWidthAvg": 1593 + } + } + }, + "700italic": { + "familyName": "Tinos", + "fullName": "Tinos Bold Italic", + "postscriptName": "Tinos-BoldItalic", + "category": "serif", + "capHeight": 1341, + "ascent": 1825, + "descent": -443, + "lineGap": 87, + "unitsPerEm": 2048, + "xHeight": 941, + "xWidthAvg": 857, + "subsets": { + "latin": { + "xWidthAvg": 857 + }, + "thai": { + "xWidthAvg": 1593 + } + } + } + } + }, + "tiny5": { + "familyName": "Tiny5", + "fullName": "Tiny5 Regular", + "postscriptName": "Tiny5-Regular", + "category": "sans-serif", + "capHeight": 640, + "ascent": 896, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 512, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 768 + } + }, + "variants": { + "regular": { + "familyName": "Tiny5", + "fullName": "Tiny5 Regular", + "postscriptName": "Tiny5-Regular", + "category": "sans-serif", + "capHeight": 640, + "ascent": 896, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 512, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 768 + } + } + } + } + }, + "tiroBangla": { + "familyName": "Tiro Bangla", + "fullName": "Tiro Bangla Regular", + "postscriptName": "TiroBangla-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Bangla", + "fullName": "Tiro Bangla Regular", + "postscriptName": "TiroBangla-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Bangla", + "fullName": "Tiro Bangla Italic", + "postscriptName": "TiroBangla-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroDevanagariHindi": { + "familyName": "Tiro Devanagari Hindi", + "fullName": "Tiro Devanagari Hindi Regular", + "postscriptName": "TiroDevaHindi-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Devanagari Hindi", + "fullName": "Tiro Devanagari Hindi Regular", + "postscriptName": "TiroDevaHindi-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Devanagari Hindi", + "fullName": "Tiro Devanagari Hindi Italic", + "postscriptName": "TiroDevaHindi-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroDevanagariMarathi": { + "familyName": "Tiro Devanagari Marathi", + "fullName": "Tiro Devanagari Marathi Regular", + "postscriptName": "TiroDevaMarathi-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Devanagari Marathi", + "fullName": "Tiro Devanagari Marathi Regular", + "postscriptName": "TiroDevaMarathi-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Devanagari Marathi", + "fullName": "Tiro Devanagari Marathi Italic", + "postscriptName": "TiroDevaMarathi-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroDevanagariSanskrit": { + "familyName": "Tiro Devanagari Sanskrit", + "fullName": "Tiro Devanagari Sanskrit Regular", + "postscriptName": "TiroDevaSanskrit-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Devanagari Sanskrit", + "fullName": "Tiro Devanagari Sanskrit Regular", + "postscriptName": "TiroDevaSanskrit-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Devanagari Sanskrit", + "fullName": "Tiro Devanagari Sanskrit Italic", + "postscriptName": "TiroDevaSanskrit-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 330, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroGurmukhi": { + "familyName": "Tiro Gurmukhi", + "fullName": "Tiro Gurmukhi Regular", + "postscriptName": "TiroGurmukhi-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Gurmukhi", + "fullName": "Tiro Gurmukhi Regular", + "postscriptName": "TiroGurmukhi-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Gurmukhi", + "fullName": "Tiro Gurmukhi Italic", + "postscriptName": "TiroGurmukhi-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroKannada": { + "familyName": "Tiro Kannada", + "fullName": "Tiro Kannada Regular", + "postscriptName": "TiroKannada-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 794, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Kannada", + "fullName": "Tiro Kannada Regular", + "postscriptName": "TiroKannada-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 794, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Kannada", + "fullName": "Tiro Kannada Italic", + "postscriptName": "TiroKannada-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 794, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroTamil": { + "familyName": "Tiro Tamil", + "fullName": "Tiro Tamil Regular", + "postscriptName": "TiroTamil-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 436, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Tamil", + "fullName": "Tiro Tamil Regular", + "postscriptName": "TiroTamil-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 436, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Tamil", + "fullName": "Tiro Tamil Italic", + "postscriptName": "TiroTamil-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 436, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "tiroTelugu": { + "familyName": "Tiro Telugu", + "fullName": "Tiro Telugu Regular", + "postscriptName": "TiroTelugu-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 794, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + }, + "variants": { + "regular": { + "familyName": "Tiro Telugu", + "fullName": "Tiro Telugu Regular", + "postscriptName": "TiroTelugu-Regular", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 794, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 464 + } + } + }, + "italic": { + "familyName": "Tiro Telugu", + "fullName": "Tiro Telugu Italic", + "postscriptName": "TiroTelugu-Italic", + "category": "serif", + "capHeight": 699, + "ascent": 755, + "descent": -245, + "lineGap": 794, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 464 + } + } + } + } + }, + "titanOne": { + "familyName": "Titan One", + "fullName": "Titan One", + "postscriptName": "TitanOne", + "category": "display", + "capHeight": 710, + "ascent": 970, + "descent": -175, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 544, + "subsets": { + "latin": { + "xWidthAvg": 544 + }, + "thai": { + "xWidthAvg": 300 + } + }, + "variants": { + "regular": { + "familyName": "Titan One", + "fullName": "Titan One", + "postscriptName": "TitanOne", + "category": "display", + "capHeight": 710, + "ascent": 970, + "descent": -175, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 580, + "xWidthAvg": 544, + "subsets": { + "latin": { + "xWidthAvg": 544 + }, + "thai": { + "xWidthAvg": 300 + } + } + } + } + }, + "titilliumWeb": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Regular", + "postscriptName": "TitilliumWeb-Regular", + "category": "sans-serif", + "capHeight": 692, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 235 + } + }, + "variants": { + "200": { + "familyName": "Titillium Web", + "fullName": "Titillium Web ExtraLight", + "postscriptName": "TitilliumWeb-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "300": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Light", + "postscriptName": "TitilliumWeb-Light", + "category": "sans-serif", + "capHeight": 695, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "600": { + "familyName": "Titillium Web", + "fullName": "Titillium Web SemiBold", + "postscriptName": "TitilliumWeb-SemiBold", + "category": "sans-serif", + "capHeight": 685, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "700": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Bold", + "postscriptName": "TitilliumWeb-Bold", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "900": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Black", + "postscriptName": "TitilliumWeb-Black", + "category": "sans-serif", + "capHeight": 670, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 505, + "xWidthAvg": 453, + "subsets": { + "latin": { + "xWidthAvg": 453 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "regular": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Regular", + "postscriptName": "TitilliumWeb-Regular", + "category": "sans-serif", + "capHeight": 692, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 235 + } + } + }, + "italic": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Italic", + "postscriptName": "TitilliumWeb-Italic", + "category": "sans-serif", + "capHeight": 692, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 223 + } + } + }, + "700italic": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Bold Italic", + "postscriptName": "TitilliumWeb-BoldItalic", + "category": "sans-serif", + "capHeight": 680, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 223 + } + } + }, + "600italic": { + "familyName": "Titillium Web", + "fullName": "Titillium Web SemiBold Italic", + "postscriptName": "TitilliumWeb-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 685, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 223 + } + } + }, + "300italic": { + "familyName": "Titillium Web", + "fullName": "Titillium Web Light Italic", + "postscriptName": "TitilliumWeb-LightItalic", + "category": "sans-serif", + "capHeight": 695, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 223 + } + } + }, + "200italic": { + "familyName": "Titillium Web", + "fullName": "Titillium Web ExtraLight Italic", + "postscriptName": "TitilliumWeb-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1133, + "descent": -388, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 223 + } + } + } + } + }, + "tomorrow": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Regular", + "postscriptName": "Tomorrow-Regular", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 694 + } + }, + "variants": { + "100": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Thin", + "postscriptName": "Tomorrow-Thin", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 681 + } + } + }, + "200": { + "familyName": "Tomorrow", + "fullName": "Tomorrow ExtraLight", + "postscriptName": "Tomorrow-ExtraLight", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 683 + } + } + }, + "300": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Light", + "postscriptName": "Tomorrow-Light", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 687 + } + } + }, + "500": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Medium", + "postscriptName": "Tomorrow-Medium", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600": { + "familyName": "Tomorrow", + "fullName": "Tomorrow SemiBold", + "postscriptName": "Tomorrow-SemiBold", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 710 + } + } + }, + "700": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Bold", + "postscriptName": "Tomorrow-Bold", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "800": { + "familyName": "Tomorrow", + "fullName": "Tomorrow ExtraBold", + "postscriptName": "Tomorrow-ExtraBold", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 722 + } + } + }, + "900": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Black", + "postscriptName": "Tomorrow-Black", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 571, + "subsets": { + "latin": { + "xWidthAvg": 571 + }, + "thai": { + "xWidthAvg": 726 + } + } + }, + "regular": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Regular", + "postscriptName": "Tomorrow-Regular", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 694 + } + } + }, + "italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Italic", + "postscriptName": "Tomorrow-Italic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 688 + } + } + }, + "900italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Black Italic", + "postscriptName": "Tomorrow-BlackItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 571, + "subsets": { + "latin": { + "xWidthAvg": 571 + }, + "thai": { + "xWidthAvg": 726 + } + } + }, + "800italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow ExtraBold Italic", + "postscriptName": "Tomorrow-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 562, + "subsets": { + "latin": { + "xWidthAvg": 562 + }, + "thai": { + "xWidthAvg": 722 + } + } + }, + "700italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Bold Italic", + "postscriptName": "Tomorrow-BoldItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 526, + "subsets": { + "latin": { + "xWidthAvg": 526 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "600italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow SemiBold Italic", + "postscriptName": "Tomorrow-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 510, + "subsets": { + "latin": { + "xWidthAvg": 510 + }, + "thai": { + "xWidthAvg": 710 + } + } + }, + "500italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Medium Italic", + "postscriptName": "Tomorrow-MediumItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 693 + } + } + }, + "300italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Light Italic", + "postscriptName": "Tomorrow-LightItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 684 + } + } + }, + "200italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow ExtraLight Italic", + "postscriptName": "Tomorrow-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 457, + "subsets": { + "latin": { + "xWidthAvg": 457 + }, + "thai": { + "xWidthAvg": 681 + } + } + }, + "100italic": { + "familyName": "Tomorrow", + "fullName": "Tomorrow Thin Italic", + "postscriptName": "Tomorrow-ThinItalic", + "category": "sans-serif", + "capHeight": 737, + "ascent": 1000, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 679 + } + } + } + } + }, + "tourney": { + "familyName": "Tourney", + "fullName": "Tourney Regular", + "postscriptName": "Tourney-Regular", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 659 + } + }, + "variants": { + "100": { + "familyName": "Tourney", + "fullName": "Tourney Thin", + "postscriptName": "Tourney-Thin", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 649 + } + } + }, + "200": { + "familyName": "Tourney", + "fullName": "Tourney ExtraLight", + "postscriptName": "Tourney-ExtraLight", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "300": { + "familyName": "Tourney", + "fullName": "Tourney Light", + "postscriptName": "Tourney-Light", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "500": { + "familyName": "Tourney", + "fullName": "Tourney Medium", + "postscriptName": "Tourney-Medium", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "600": { + "familyName": "Tourney", + "fullName": "Tourney SemiBold", + "postscriptName": "Tourney-SemiBold", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "700": { + "familyName": "Tourney", + "fullName": "Tourney Bold", + "postscriptName": "Tourney-Bold", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "800": { + "familyName": "Tourney", + "fullName": "Tourney ExtraBold", + "postscriptName": "Tourney-ExtraBold", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "900": { + "familyName": "Tourney", + "fullName": "Tourney Black", + "postscriptName": "Tourney-Black", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "regular": { + "familyName": "Tourney", + "fullName": "Tourney Regular", + "postscriptName": "Tourney-Regular", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1061, + "subsets": { + "latin": { + "xWidthAvg": 1061 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "italic": { + "familyName": "Tourney", + "fullName": "Tourney Italic", + "postscriptName": "Tourney-Italic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 659 + } + } + }, + "900italic": { + "familyName": "Tourney", + "fullName": "Tourney Black Italic", + "postscriptName": "Tourney-BlackItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "800italic": { + "familyName": "Tourney", + "fullName": "Tourney ExtraBold Italic", + "postscriptName": "Tourney-ExtraBoldItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "700italic": { + "familyName": "Tourney", + "fullName": "Tourney Bold Italic", + "postscriptName": "Tourney-BoldItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 669 + } + } + }, + "600italic": { + "familyName": "Tourney", + "fullName": "Tourney SemiBold Italic", + "postscriptName": "Tourney-SemiBoldItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 666 + } + } + }, + "500italic": { + "familyName": "Tourney", + "fullName": "Tourney Medium Italic", + "postscriptName": "Tourney-MediumItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 662 + } + } + }, + "300italic": { + "familyName": "Tourney", + "fullName": "Tourney Light Italic", + "postscriptName": "Tourney-LightItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 656 + } + } + }, + "200italic": { + "familyName": "Tourney", + "fullName": "Tourney ExtraLight Italic", + "postscriptName": "Tourney-ExtraLightItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 652 + } + } + }, + "100italic": { + "familyName": "Tourney", + "fullName": "Tourney Thin Italic", + "postscriptName": "Tourney-ThinItalic", + "category": "display", + "capHeight": 1400, + "ascent": 1800, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1080, + "xWidthAvg": 1062, + "subsets": { + "latin": { + "xWidthAvg": 1062 + }, + "thai": { + "xWidthAvg": 649 + } + } + } + } + }, + "tradeWinds": { + "familyName": "Trade Winds", + "fullName": "Trade Winds", + "postscriptName": "TradeWinds", + "category": "display", + "capHeight": 814, + "ascent": 1019, + "descent": -469, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 576, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 317 + } + }, + "variants": { + "regular": { + "familyName": "Trade Winds", + "fullName": "Trade Winds", + "postscriptName": "TradeWinds", + "category": "display", + "capHeight": 814, + "ascent": 1019, + "descent": -469, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 576, + "xWidthAvg": 522, + "subsets": { + "latin": { + "xWidthAvg": 522 + }, + "thai": { + "xWidthAvg": 317 + } + } + } + } + }, + "trainOne": { + "familyName": "Train One", + "fullName": "Train One Regular", + "postscriptName": "TrainOne-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 557, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Train One", + "fullName": "Train One Regular", + "postscriptName": "TrainOne-Regular", + "category": "display", + "capHeight": 780, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 557, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "trebuchetMS": { + "familyName": "Trebuchet MS", + "fullName": "Trebuchet MS", + "postscriptName": "TrebuchetMS", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1923, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "700": { + "familyName": "Trebuchet MS", + "fullName": "Trebuchet MS Bold", + "postscriptName": "TrebuchetMS-Bold", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1923, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 976, + "subsets": { + "latin": { + "xWidthAvg": 976 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "regular": { + "familyName": "Trebuchet MS", + "fullName": "Trebuchet MS", + "postscriptName": "TrebuchetMS", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1923, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 934, + "subsets": { + "latin": { + "xWidthAvg": 934 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "italic": { + "familyName": "Trebuchet MS", + "fullName": "Trebuchet MS Italic", + "postscriptName": "TrebuchetMS-Italic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1923, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 943, + "subsets": { + "latin": { + "xWidthAvg": 943 + }, + "thai": { + "xWidthAvg": 1024 + } + } + }, + "700italic": { + "familyName": "Trebuchet MS", + "fullName": "Trebuchet MS Bold Italic", + "postscriptName": "Trebuchet-BoldItalic", + "category": "sans-serif", + "capHeight": 1465, + "ascent": 1923, + "descent": -455, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1071, + "xWidthAvg": 993, + "subsets": { + "latin": { + "xWidthAvg": 993 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "trirong": { + "familyName": "Trirong", + "fullName": "Trirong Regular", + "postscriptName": "Trirong-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 531 + } + }, + "variants": { + "100": { + "familyName": "Trirong", + "fullName": "Trirong Thin", + "postscriptName": "Trirong-Thin", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 487 + } + } + }, + "200": { + "familyName": "Trirong", + "fullName": "Trirong ExtraLight", + "postscriptName": "Trirong-ExtraLight", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 501 + } + } + }, + "300": { + "familyName": "Trirong", + "fullName": "Trirong Light", + "postscriptName": "Trirong-Light", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 517 + } + } + }, + "500": { + "familyName": "Trirong", + "fullName": "Trirong Medium", + "postscriptName": "Trirong-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 494, + "subsets": { + "latin": { + "xWidthAvg": 494 + }, + "thai": { + "xWidthAvg": 546 + } + } + }, + "600": { + "familyName": "Trirong", + "fullName": "Trirong SemiBold", + "postscriptName": "Trirong-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 561 + } + } + }, + "700": { + "familyName": "Trirong", + "fullName": "Trirong Bold", + "postscriptName": "Trirong-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 523, + "subsets": { + "latin": { + "xWidthAvg": 523 + }, + "thai": { + "xWidthAvg": 576 + } + } + }, + "800": { + "familyName": "Trirong", + "fullName": "Trirong ExtraBold", + "postscriptName": "Trirong-ExtraBold", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 538, + "subsets": { + "latin": { + "xWidthAvg": 538 + }, + "thai": { + "xWidthAvg": 591 + } + } + }, + "900": { + "familyName": "Trirong", + "fullName": "Trirong Black", + "postscriptName": "Trirong-Black", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 553, + "subsets": { + "latin": { + "xWidthAvg": 553 + }, + "thai": { + "xWidthAvg": 606 + } + } + }, + "regular": { + "familyName": "Trirong", + "fullName": "Trirong Regular", + "postscriptName": "Trirong-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "italic": { + "familyName": "Trirong", + "fullName": "Trirong Italic", + "postscriptName": "Trirong-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 510 + } + } + }, + "900italic": { + "familyName": "Trirong", + "fullName": "Trirong Black Italic", + "postscriptName": "Trirong-BlackItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 582 + } + } + }, + "800italic": { + "familyName": "Trirong", + "fullName": "Trirong ExtraBold Italic", + "postscriptName": "Trirong-ExtraBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 519, + "subsets": { + "latin": { + "xWidthAvg": 519 + }, + "thai": { + "xWidthAvg": 567 + } + } + }, + "700italic": { + "familyName": "Trirong", + "fullName": "Trirong Bold Italic", + "postscriptName": "Trirong-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 552 + } + } + }, + "600italic": { + "familyName": "Trirong", + "fullName": "Trirong SemiBold Italic", + "postscriptName": "Trirong-SemiBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 539 + } + } + }, + "500italic": { + "familyName": "Trirong", + "fullName": "Trirong Medium Italic", + "postscriptName": "Trirong-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "300italic": { + "familyName": "Trirong", + "fullName": "Trirong Light Italic", + "postscriptName": "Trirong-LightItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 496 + } + } + }, + "200italic": { + "familyName": "Trirong", + "fullName": "Trirong ExtraLight Italic", + "postscriptName": "Trirong-ExtraLightItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 433, + "subsets": { + "latin": { + "xWidthAvg": 433 + }, + "thai": { + "xWidthAvg": 481 + } + } + }, + "100italic": { + "familyName": "Trirong", + "fullName": "Trirong Thin Italic", + "postscriptName": "Trirong-ThinItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1200, + "descent": -534, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 498, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 468 + } + } + } + } + }, + "trispace": { + "familyName": "Trispace", + "fullName": "Trispace Regular", + "postscriptName": "Trispace-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Trispace", + "fullName": "Trispace Thin", + "postscriptName": "Trispace-Thin", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Trispace", + "fullName": "Trispace ExtraLight", + "postscriptName": "Trispace-ExtraLight", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Trispace", + "fullName": "Trispace Light", + "postscriptName": "Trispace-Light", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Trispace", + "fullName": "Trispace Medium", + "postscriptName": "Trispace-Medium", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Trispace", + "fullName": "Trispace SemiBold", + "postscriptName": "Trispace-SemiBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Trispace", + "fullName": "Trispace Bold", + "postscriptName": "Trispace-Bold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "800": { + "familyName": "Trispace", + "fullName": "Trispace ExtraBold", + "postscriptName": "Trispace-ExtraBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Trispace", + "fullName": "Trispace Regular", + "postscriptName": "Trispace-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1830, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 1229, + "subsets": { + "latin": { + "xWidthAvg": 1229 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "trocchi": { + "familyName": "Trocchi", + "fullName": "Trocchi Regular", + "postscriptName": "Trocchi-Regular", + "category": "serif", + "capHeight": 1505, + "ascent": 2085, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1073, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 1320 + } + }, + "variants": { + "regular": { + "familyName": "Trocchi", + "fullName": "Trocchi Regular", + "postscriptName": "Trocchi-Regular", + "category": "serif", + "capHeight": 1505, + "ascent": 2085, + "descent": -576, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1073, + "xWidthAvg": 1024, + "subsets": { + "latin": { + "xWidthAvg": 1024 + }, + "thai": { + "xWidthAvg": 1320 + } + } + } + } + }, + "trochut": { + "familyName": "Trochut", + "fullName": "Trochut", + "postscriptName": "Trochut", + "category": "display", + "capHeight": 690, + "ascent": 967, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "700": { + "familyName": "Trochut", + "fullName": "Trochut Bold", + "postscriptName": "Trochut-Bold", + "category": "display", + "capHeight": 690, + "ascent": 967, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 411, + "subsets": { + "latin": { + "xWidthAvg": 411 + }, + "thai": { + "xWidthAvg": 200 + } + } + }, + "regular": { + "familyName": "Trochut", + "fullName": "Trochut", + "postscriptName": "Trochut", + "category": "display", + "capHeight": 690, + "ascent": 967, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 200 + } + } + }, + "italic": { + "familyName": "Trochut", + "fullName": "Trochut Italic", + "postscriptName": "Trochut-Italic", + "category": "display", + "capHeight": 690, + "ascent": 967, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "truculenta": { + "familyName": "Truculenta", + "fullName": "Truculenta Regular", + "postscriptName": "Truculenta-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 468 + } + }, + "variants": { + "100": { + "familyName": "Truculenta", + "fullName": "Truculenta Thin", + "postscriptName": "Truculenta-Thin", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "200": { + "familyName": "Truculenta", + "fullName": "Truculenta ExtraLight", + "postscriptName": "Truculenta-ExtraLight", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "300": { + "familyName": "Truculenta", + "fullName": "Truculenta Light", + "postscriptName": "Truculenta-Light", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "500": { + "familyName": "Truculenta", + "fullName": "Truculenta Medium", + "postscriptName": "Truculenta-Medium", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 368, + "subsets": { + "latin": { + "xWidthAvg": 368 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "600": { + "familyName": "Truculenta", + "fullName": "Truculenta SemiBold", + "postscriptName": "Truculenta-SemiBold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 367, + "subsets": { + "latin": { + "xWidthAvg": 367 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "700": { + "familyName": "Truculenta", + "fullName": "Truculenta Bold", + "postscriptName": "Truculenta-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 365, + "subsets": { + "latin": { + "xWidthAvg": 365 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "800": { + "familyName": "Truculenta", + "fullName": "Truculenta ExtraBold", + "postscriptName": "Truculenta-ExtraBold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 364, + "subsets": { + "latin": { + "xWidthAvg": 364 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "900": { + "familyName": "Truculenta", + "fullName": "Truculenta Black", + "postscriptName": "Truculenta-Black", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 468 + } + } + }, + "regular": { + "familyName": "Truculenta", + "fullName": "Truculenta Regular", + "postscriptName": "Truculenta-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 1050, + "descent": -340, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 369, + "subsets": { + "latin": { + "xWidthAvg": 369 + }, + "thai": { + "xWidthAvg": 468 + } + } + } + } + }, + "trykker": { + "familyName": "Trykker", + "fullName": "Trykker Regular", + "postscriptName": "Trykker-Regular", + "category": "serif", + "capHeight": 1492, + "ascent": 2022, + "descent": -538, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1013, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 532 + } + }, + "variants": { + "regular": { + "familyName": "Trykker", + "fullName": "Trykker Regular", + "postscriptName": "Trykker-Regular", + "category": "serif", + "capHeight": 1492, + "ascent": 2022, + "descent": -538, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1013, + "xWidthAvg": 998, + "subsets": { + "latin": { + "xWidthAvg": 998 + }, + "thai": { + "xWidthAvg": 532 + } + } + } + } + }, + "tsukimiRounded": { + "familyName": "Tsukimi Rounded", + "fullName": "Tsukimi Rounded Regular", + "postscriptName": "TsukimiRounded-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "300": { + "familyName": "Tsukimi Rounded", + "fullName": "Tsukimi Rounded Light", + "postscriptName": "TsukimiRounded-Light", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Tsukimi Rounded", + "fullName": "Tsukimi Rounded Medium", + "postscriptName": "TsukimiRounded-Medium", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 508, + "subsets": { + "latin": { + "xWidthAvg": 508 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Tsukimi Rounded", + "fullName": "Tsukimi Rounded SemiBold", + "postscriptName": "TsukimiRounded-SemiBold", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 520, + "subsets": { + "latin": { + "xWidthAvg": 520 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Tsukimi Rounded", + "fullName": "Tsukimi Rounded Bold", + "postscriptName": "TsukimiRounded-Bold", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 531, + "subsets": { + "latin": { + "xWidthAvg": 531 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Tsukimi Rounded", + "fullName": "Tsukimi Rounded Regular", + "postscriptName": "TsukimiRounded-Regular", + "category": "sans-serif", + "capHeight": 800, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "tulpenOne": { + "familyName": "Tulpen One", + "fullName": "Tulpen One", + "postscriptName": "TulpenOne-Regular", + "category": "display", + "capHeight": 1393, + "ascent": 1767, + "descent": -465, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1018, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 271 + } + }, + "variants": { + "regular": { + "familyName": "Tulpen One", + "fullName": "Tulpen One", + "postscriptName": "TulpenOne-Regular", + "category": "display", + "capHeight": 1393, + "ascent": 1767, + "descent": -465, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1018, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 271 + } + } + } + } + }, + "turretRoad": { + "familyName": "Turret Road", + "fullName": "Turret Road Regular", + "postscriptName": "TurretRoad-Regular", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 579 + } + }, + "variants": { + "200": { + "familyName": "Turret Road", + "fullName": "Turret Road ExtraLight", + "postscriptName": "TurretRoad-ExtraLight", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "300": { + "familyName": "Turret Road", + "fullName": "Turret Road Light", + "postscriptName": "TurretRoad-Light", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "500": { + "familyName": "Turret Road", + "fullName": "Turret Road Medium", + "postscriptName": "TurretRoad-Medium", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "700": { + "familyName": "Turret Road", + "fullName": "Turret Road Bold", + "postscriptName": "TurretRoad-Bold", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "800": { + "familyName": "Turret Road", + "fullName": "Turret Road ExtraBold", + "postscriptName": "TurretRoad-ExtraBold", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 579 + } + } + }, + "regular": { + "familyName": "Turret Road", + "fullName": "Turret Road Regular", + "postscriptName": "TurretRoad-Regular", + "category": "display", + "capHeight": 700, + "ascent": 850, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 579 + } + } + } + } + }, + "twinkleStar": { + "familyName": "Twinkle Star", + "fullName": "Twinkle Star Regular", + "postscriptName": "TwinkleStar-Regular", + "category": "handwriting", + "capHeight": 705, + "ascent": 930, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 518 + } + }, + "variants": { + "regular": { + "familyName": "Twinkle Star", + "fullName": "Twinkle Star Regular", + "postscriptName": "TwinkleStar-Regular", + "category": "handwriting", + "capHeight": 705, + "ascent": 930, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 518 + } + } + } + } + }, + "ubuntu": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Regular", + "postscriptName": "Ubuntu-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "300": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Light", + "postscriptName": "Ubuntu-Light", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Medium", + "postscriptName": "Ubuntu-Medium", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Bold", + "postscriptName": "Ubuntu-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Regular", + "postscriptName": "Ubuntu-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Italic", + "postscriptName": "Ubuntu-Italic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Bold Italic", + "postscriptName": "Ubuntu-BoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 526, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Medium Italic", + "postscriptName": "Ubuntu-MediumItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 523, + "xWidthAvg": 454, + "subsets": { + "latin": { + "xWidthAvg": 454 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Ubuntu", + "fullName": "Ubuntu Light Italic", + "postscriptName": "Ubuntu-LightItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 517, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "ubuntuCondensed": { + "familyName": "Ubuntu Condensed", + "fullName": "Ubuntu Condensed", + "postscriptName": "UbuntuCondensed-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Ubuntu Condensed", + "fullName": "Ubuntu Condensed", + "postscriptName": "UbuntuCondensed-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 932, + "descent": -189, + "lineGap": 28, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 370, + "subsets": { + "latin": { + "xWidthAvg": 370 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "ubuntuMono": { + "familyName": "Ubuntu Mono", + "fullName": "Ubuntu Mono", + "postscriptName": "UbuntuMono-Regular", + "category": "monospace", + "capHeight": 693, + "ascent": 830, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "700": { + "familyName": "Ubuntu Mono", + "fullName": "Ubuntu Mono Bold", + "postscriptName": "UbuntuMono-Bold", + "category": "monospace", + "capHeight": 693, + "ascent": 830, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Ubuntu Mono", + "fullName": "Ubuntu Mono", + "postscriptName": "UbuntuMono-Regular", + "category": "monospace", + "capHeight": 693, + "ascent": 830, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Ubuntu Mono", + "fullName": "Ubuntu Mono Italic", + "postscriptName": "UbuntuMono-Italic", + "category": "monospace", + "capHeight": 693, + "ascent": 830, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Ubuntu Mono", + "fullName": "Ubuntu Mono Bold Italic", + "postscriptName": "UbuntuMono-BoldItalic", + "category": "monospace", + "capHeight": 693, + "ascent": 830, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "ubuntuSans": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Regular", + "postscriptName": "UbuntuSans-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Thin", + "postscriptName": "UbuntuSans-Thin", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans ExtraLight", + "postscriptName": "UbuntuSans-ExtraLight", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Light", + "postscriptName": "UbuntuSans-Light", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Medium", + "postscriptName": "UbuntuSans-Medium", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans SemiBold", + "postscriptName": "UbuntuSans-SemiBold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 466, + "subsets": { + "latin": { + "xWidthAvg": 466 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Bold", + "postscriptName": "UbuntuSans-Bold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 472, + "subsets": { + "latin": { + "xWidthAvg": 472 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans ExtraBold", + "postscriptName": "UbuntuSans-ExtraBold", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Regular", + "postscriptName": "UbuntuSans-Regular", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Italic", + "postscriptName": "UbuntuSans-Italic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans ExtraBold Italic", + "postscriptName": "UbuntuSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Bold Italic", + "postscriptName": "UbuntuSans-BoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans SemiBold Italic", + "postscriptName": "UbuntuSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Medium Italic", + "postscriptName": "UbuntuSans-MediumItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Light Italic", + "postscriptName": "UbuntuSans-LightItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans ExtraLight Italic", + "postscriptName": "UbuntuSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 423, + "subsets": { + "latin": { + "xWidthAvg": 423 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Ubuntu Sans", + "fullName": "Ubuntu Sans Thin Italic", + "postscriptName": "UbuntuSans-ThinItalic", + "category": "sans-serif", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "ubuntuSansMono": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Regular", + "postscriptName": "UbuntuSansMono-Regular", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + }, + "variants": { + "500": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Medium", + "postscriptName": "UbuntuSansMono-Medium", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "600": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono SemiBold", + "postscriptName": "UbuntuSansMono-SemiBold", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "700": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Bold", + "postscriptName": "UbuntuSansMono-Bold", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "regular": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Regular", + "postscriptName": "UbuntuSansMono-Regular", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "italic": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Italic", + "postscriptName": "UbuntuSansMono-Italic", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "700italic": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Bold Italic", + "postscriptName": "UbuntuSansMono-BoldItalic", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "600italic": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono SemiBold Italic", + "postscriptName": "UbuntuSansMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + }, + "500italic": { + "familyName": "Ubuntu Sans Mono", + "fullName": "Ubuntu Sans Mono Medium Italic", + "postscriptName": "UbuntuSansMono-MediumItalic", + "category": "monospace", + "capHeight": 693, + "ascent": 940, + "descent": -260, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 518, + "xWidthAvg": 560, + "subsets": { + "latin": { + "xWidthAvg": 560 + }, + "thai": { + "xWidthAvg": 560 + } + } + } + } + }, + "uchen": { + "familyName": "Uchen", + "fullName": "Uchen Regular", + "postscriptName": "Uchen-Regular", + "category": "serif", + "capHeight": 744, + "ascent": 1248, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 485, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 445 + } + }, + "variants": { + "regular": { + "familyName": "Uchen", + "fullName": "Uchen Regular", + "postscriptName": "Uchen-Regular", + "category": "serif", + "capHeight": 744, + "ascent": 1248, + "descent": -660, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 485, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 445 + } + } + } + } + }, + "ultra": { + "familyName": "Ultra", + "fullName": "Ultra Regular", + "postscriptName": "Ultra-Regular", + "category": "serif", + "capHeight": 1473, + "ascent": 2066, + "descent": -561, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1102, + "xWidthAvg": 1295, + "subsets": { + "latin": { + "xWidthAvg": 1295 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "Ultra", + "fullName": "Ultra Regular", + "postscriptName": "Ultra-Regular", + "category": "serif", + "capHeight": 1473, + "ascent": 2066, + "descent": -561, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1102, + "xWidthAvg": 1295, + "subsets": { + "latin": { + "xWidthAvg": 1295 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "unbounded": { + "familyName": "Unbounded", + "fullName": "Unbounded Regular", + "postscriptName": "Unbounded-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 837 + } + }, + "variants": { + "200": { + "familyName": "Unbounded", + "fullName": "Unbounded ExtraLight", + "postscriptName": "Unbounded-ExtraLight", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 560, + "xWidthAvg": 567, + "subsets": { + "latin": { + "xWidthAvg": 567 + }, + "thai": { + "xWidthAvg": 810 + } + } + }, + "300": { + "familyName": "Unbounded", + "fullName": "Unbounded Light", + "postscriptName": "Unbounded-Light", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 563, + "xWidthAvg": 584, + "subsets": { + "latin": { + "xWidthAvg": 584 + }, + "thai": { + "xWidthAvg": 824 + } + } + }, + "500": { + "familyName": "Unbounded", + "fullName": "Unbounded Medium", + "postscriptName": "Unbounded-Medium", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 569, + "xWidthAvg": 617, + "subsets": { + "latin": { + "xWidthAvg": 617 + }, + "thai": { + "xWidthAvg": 849 + } + } + }, + "600": { + "familyName": "Unbounded", + "fullName": "Unbounded SemiBold", + "postscriptName": "Unbounded-SemiBold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 625, + "subsets": { + "latin": { + "xWidthAvg": 625 + }, + "thai": { + "xWidthAvg": 855 + } + } + }, + "700": { + "familyName": "Unbounded", + "fullName": "Unbounded Bold", + "postscriptName": "Unbounded-Bold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 571, + "xWidthAvg": 633, + "subsets": { + "latin": { + "xWidthAvg": 633 + }, + "thai": { + "xWidthAvg": 860 + } + } + }, + "800": { + "familyName": "Unbounded", + "fullName": "Unbounded ExtraBold", + "postscriptName": "Unbounded-ExtraBold", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 573, + "xWidthAvg": 644, + "subsets": { + "latin": { + "xWidthAvg": 644 + }, + "thai": { + "xWidthAvg": 868 + } + } + }, + "900": { + "familyName": "Unbounded", + "fullName": "Unbounded Black", + "postscriptName": "Unbounded-Black", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 575, + "xWidthAvg": 655, + "subsets": { + "latin": { + "xWidthAvg": 655 + }, + "thai": { + "xWidthAvg": 876 + } + } + }, + "regular": { + "familyName": "Unbounded", + "fullName": "Unbounded Regular", + "postscriptName": "Unbounded-Regular", + "category": "sans-serif", + "capHeight": 750, + "ascent": 995, + "descent": -245, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 566, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 837 + } + } + } + } + }, + "uncialAntiqua": { + "familyName": "Uncial Antiqua", + "fullName": "Uncial Antiqua", + "postscriptName": "UncialAntiqua-Regular", + "category": "display", + "capHeight": 1841, + "ascent": 2019, + "descent": -676, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1079, + "xWidthAvg": 1170, + "subsets": { + "latin": { + "xWidthAvg": 1170 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Uncial Antiqua", + "fullName": "Uncial Antiqua", + "postscriptName": "UncialAntiqua-Regular", + "category": "display", + "capHeight": 1841, + "ascent": 2019, + "descent": -676, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1079, + "xWidthAvg": 1170, + "subsets": { + "latin": { + "xWidthAvg": 1170 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "underdog": { + "familyName": "Underdog", + "fullName": "Underdog", + "postscriptName": "Underdog-Regular", + "category": "display", + "capHeight": 710, + "ascent": 909, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 320 + } + }, + "variants": { + "regular": { + "familyName": "Underdog", + "fullName": "Underdog", + "postscriptName": "Underdog-Regular", + "category": "display", + "capHeight": 710, + "ascent": 909, + "descent": -247, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 458, + "subsets": { + "latin": { + "xWidthAvg": 458 + }, + "thai": { + "xWidthAvg": 320 + } + } + } + } + }, + "unicaOne": { + "familyName": "Unica One", + "fullName": "Unica One Regular", + "postscriptName": "UnicaOne-Regular", + "category": "display", + "capHeight": 650, + "ascent": 917, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 650, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 230 + } + }, + "variants": { + "regular": { + "familyName": "Unica One", + "fullName": "Unica One Regular", + "postscriptName": "UnicaOne-Regular", + "category": "display", + "capHeight": 650, + "ascent": 917, + "descent": -265, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 650, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 230 + } + } + } + } + }, + "unifrakturCook": { + "familyName": "UnifrakturCook", + "fullName": "UnifrakturCook", + "postscriptName": "UnifrakturCook-Bold", + "category": "display", + "capHeight": 485, + "ascent": 2110, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 319, + "xWidthAvg": 780, + "subsets": { + "latin": { + "xWidthAvg": 780 + }, + "thai": { + "xWidthAvg": 2027 + } + }, + "variants": { + "700": { + "familyName": "UnifrakturCook", + "fullName": "UnifrakturCook", + "postscriptName": "UnifrakturCook-Bold", + "category": "display", + "capHeight": 485, + "ascent": 2110, + "descent": -570, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 319, + "xWidthAvg": 780, + "subsets": { + "latin": { + "xWidthAvg": 780 + }, + "thai": { + "xWidthAvg": 2027 + } + } + } + } + }, + "unifrakturMaguntia": { + "familyName": "UnifrakturMaguntia", + "fullName": "UnifrakturMaguntia", + "postscriptName": "UnifrakturMaguntia", + "category": "display", + "capHeight": 1409, + "ascent": 1607, + "descent": -513, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1095, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1524 + } + }, + "variants": { + "regular": { + "familyName": "UnifrakturMaguntia", + "fullName": "UnifrakturMaguntia", + "postscriptName": "UnifrakturMaguntia", + "category": "display", + "capHeight": 1409, + "ascent": 1607, + "descent": -513, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1095, + "xWidthAvg": 813, + "subsets": { + "latin": { + "xWidthAvg": 813 + }, + "thai": { + "xWidthAvg": 1524 + } + } + } + } + }, + "unkempt": { + "familyName": "Unkempt", + "fullName": "Unkempt Regular", + "postscriptName": "Unkempt-Regular", + "category": "display", + "capHeight": 753, + "ascent": 977, + "descent": -246, + "lineGap": 28, + "unitsPerEm": 1024, + "xHeight": 482, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 297 + } + }, + "variants": { + "700": { + "familyName": "Unkempt", + "fullName": "Unkempt Bold", + "postscriptName": "Unkempt-Bold", + "category": "display", + "capHeight": 752, + "ascent": 977, + "descent": -246, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 485, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 315 + } + } + }, + "regular": { + "familyName": "Unkempt", + "fullName": "Unkempt Regular", + "postscriptName": "Unkempt-Regular", + "category": "display", + "capHeight": 753, + "ascent": 977, + "descent": -246, + "lineGap": 28, + "unitsPerEm": 1024, + "xHeight": 482, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 297 + } + } + } + } + }, + "unlock": { + "familyName": "Unlock", + "fullName": "Unlock Regular", + "postscriptName": "Unlock-Regular", + "category": "display", + "capHeight": 635, + "ascent": 873, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 654 + } + }, + "variants": { + "regular": { + "familyName": "Unlock", + "fullName": "Unlock Regular", + "postscriptName": "Unlock-Regular", + "category": "display", + "capHeight": 635, + "ascent": 873, + "descent": -195, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 550, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 654 + } + } + } + } + }, + "unna": { + "familyName": "Unna", + "fullName": "Unna Regular", + "postscriptName": "Unna-Regular", + "category": "serif", + "capHeight": 597, + "ascent": 883, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 488 + } + }, + "variants": { + "700": { + "familyName": "Unna", + "fullName": "Unna Bold", + "postscriptName": "Unna-Bold", + "category": "serif", + "capHeight": 597, + "ascent": 883, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "regular": { + "familyName": "Unna", + "fullName": "Unna Regular", + "postscriptName": "Unna-Regular", + "category": "serif", + "capHeight": 597, + "ascent": 883, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 402, + "subsets": { + "latin": { + "xWidthAvg": 402 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "italic": { + "familyName": "Unna", + "fullName": "Unna Italic", + "postscriptName": "Unna-Italic", + "category": "serif", + "capHeight": 597, + "ascent": 883, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 420, + "xWidthAvg": 385, + "subsets": { + "latin": { + "xWidthAvg": 385 + }, + "thai": { + "xWidthAvg": 488 + } + } + }, + "700italic": { + "familyName": "Unna", + "fullName": "Unna Bold Italic", + "postscriptName": "Unna-BoldItalic", + "category": "serif", + "capHeight": 597, + "ascent": 883, + "descent": -269, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 425, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 488 + } + } + } + } + }, + "updock": { + "familyName": "Updock", + "fullName": "Updock Regular", + "postscriptName": "Updock-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 267, + "subsets": { + "latin": { + "xWidthAvg": 267 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Updock", + "fullName": "Updock Regular", + "postscriptName": "Updock-Regular", + "category": "handwriting", + "capHeight": 630, + "ascent": 900, + "descent": -350, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 350, + "xWidthAvg": 267, + "subsets": { + "latin": { + "xWidthAvg": 267 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "urbanist": { + "familyName": "Urbanist", + "fullName": "Urbanist Regular", + "postscriptName": "Urbanist-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 883, + "subsets": { + "latin": { + "xWidthAvg": 883 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "100": { + "familyName": "Urbanist", + "fullName": "Urbanist Thin", + "postscriptName": "Urbanist-Thin", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200": { + "familyName": "Urbanist", + "fullName": "Urbanist ExtraLight", + "postscriptName": "Urbanist-ExtraLight", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300": { + "familyName": "Urbanist", + "fullName": "Urbanist Light", + "postscriptName": "Urbanist-Light", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 871, + "subsets": { + "latin": { + "xWidthAvg": 871 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Urbanist", + "fullName": "Urbanist Medium", + "postscriptName": "Urbanist-Medium", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 892, + "subsets": { + "latin": { + "xWidthAvg": 892 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Urbanist", + "fullName": "Urbanist SemiBold", + "postscriptName": "Urbanist-SemiBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 906, + "subsets": { + "latin": { + "xWidthAvg": 906 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Urbanist", + "fullName": "Urbanist Bold", + "postscriptName": "Urbanist-Bold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800": { + "familyName": "Urbanist", + "fullName": "Urbanist ExtraBold", + "postscriptName": "Urbanist-ExtraBold", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Urbanist", + "fullName": "Urbanist Black", + "postscriptName": "Urbanist-Black", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 938, + "subsets": { + "latin": { + "xWidthAvg": 938 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Urbanist", + "fullName": "Urbanist Regular", + "postscriptName": "Urbanist-Regular", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 883, + "subsets": { + "latin": { + "xWidthAvg": 883 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "italic": { + "familyName": "Urbanist", + "fullName": "Urbanist Italic", + "postscriptName": "Urbanist-Italic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 882, + "subsets": { + "latin": { + "xWidthAvg": 882 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900italic": { + "familyName": "Urbanist", + "fullName": "Urbanist Black Italic", + "postscriptName": "Urbanist-BlackItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 938, + "subsets": { + "latin": { + "xWidthAvg": 938 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "800italic": { + "familyName": "Urbanist", + "fullName": "Urbanist ExtraBold Italic", + "postscriptName": "Urbanist-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 929, + "subsets": { + "latin": { + "xWidthAvg": 929 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700italic": { + "familyName": "Urbanist", + "fullName": "Urbanist Bold Italic", + "postscriptName": "Urbanist-BoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 918, + "subsets": { + "latin": { + "xWidthAvg": 918 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600italic": { + "familyName": "Urbanist", + "fullName": "Urbanist SemiBold Italic", + "postscriptName": "Urbanist-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 906, + "subsets": { + "latin": { + "xWidthAvg": 906 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500italic": { + "familyName": "Urbanist", + "fullName": "Urbanist Medium Italic", + "postscriptName": "Urbanist-MediumItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 892, + "subsets": { + "latin": { + "xWidthAvg": 892 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "300italic": { + "familyName": "Urbanist", + "fullName": "Urbanist Light Italic", + "postscriptName": "Urbanist-LightItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 871, + "subsets": { + "latin": { + "xWidthAvg": 871 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "200italic": { + "familyName": "Urbanist", + "fullName": "Urbanist ExtraLight Italic", + "postscriptName": "Urbanist-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 864, + "subsets": { + "latin": { + "xWidthAvg": 864 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "100italic": { + "familyName": "Urbanist", + "fullName": "Urbanist Thin Italic", + "postscriptName": "Urbanist-ThinItalic", + "category": "sans-serif", + "capHeight": 1400, + "ascent": 1900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 2000, + "xHeight": 1000, + "xWidthAvg": 855, + "subsets": { + "latin": { + "xWidthAvg": 855 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "vT323": { + "familyName": "VT323", + "fullName": "VT323 Regular", + "postscriptName": "VT323-Regular", + "category": "monospace", + "capHeight": 560, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "VT323", + "fullName": "VT323 Regular", + "postscriptName": "VT323-Regular", + "category": "monospace", + "capHeight": 560, + "ascent": 800, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 400, + "xWidthAvg": 400, + "subsets": { + "latin": { + "xWidthAvg": 400 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "vampiroOne": { + "familyName": "Vampiro One", + "fullName": "Vampiro One", + "postscriptName": "VampiroOne-Regular", + "category": "display", + "capHeight": 705, + "ascent": 956, + "descent": -294, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 636 + } + }, + "variants": { + "regular": { + "familyName": "Vampiro One", + "fullName": "Vampiro One", + "postscriptName": "VampiroOne-Regular", + "category": "display", + "capHeight": 705, + "ascent": 956, + "descent": -294, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 534, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 636 + } + } + } + } + }, + "varela": { + "familyName": "Varela", + "fullName": "Varela", + "postscriptName": "Varela", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1015, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "regular": { + "familyName": "Varela", + "fullName": "Varela", + "postscriptName": "Varela", + "category": "sans-serif", + "capHeight": 698, + "ascent": 1015, + "descent": -285, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 479, + "subsets": { + "latin": { + "xWidthAvg": 479 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "varelaRound": { + "familyName": "Varela Round", + "fullName": "Varela Round Regular", + "postscriptName": "VarelaRound-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 918, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 514 + } + }, + "variants": { + "regular": { + "familyName": "Varela Round", + "fullName": "Varela Round Regular", + "postscriptName": "VarelaRound-Regular", + "category": "sans-serif", + "capHeight": 698, + "ascent": 918, + "descent": -286, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 514 + } + } + } + } + }, + "varta": { + "familyName": "Varta", + "fullName": "Varta Regular", + "postscriptName": "Varta-Regular", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1902, + "descent": -1068, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 1770 + } + }, + "variants": { + "300": { + "familyName": "Varta", + "fullName": "Varta Light", + "postscriptName": "Varta-Light", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1902, + "descent": -1068, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 1770 + } + } + }, + "500": { + "familyName": "Varta", + "fullName": "Varta Medium", + "postscriptName": "Varta-Medium", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1902, + "descent": -1068, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 861, + "subsets": { + "latin": { + "xWidthAvg": 861 + }, + "thai": { + "xWidthAvg": 1770 + } + } + }, + "600": { + "familyName": "Varta", + "fullName": "Varta SemiBold", + "postscriptName": "Varta-SemiBold", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1902, + "descent": -1068, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 869, + "subsets": { + "latin": { + "xWidthAvg": 869 + }, + "thai": { + "xWidthAvg": 1770 + } + } + }, + "700": { + "familyName": "Varta", + "fullName": "Varta Bold", + "postscriptName": "Varta-Bold", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1902, + "descent": -1068, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 877, + "subsets": { + "latin": { + "xWidthAvg": 877 + }, + "thai": { + "xWidthAvg": 1770 + } + } + }, + "regular": { + "familyName": "Varta", + "fullName": "Varta Regular", + "postscriptName": "Varta-Regular", + "category": "sans-serif", + "capHeight": 1346, + "ascent": 1902, + "descent": -1068, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 990, + "xWidthAvg": 853, + "subsets": { + "latin": { + "xWidthAvg": 853 + }, + "thai": { + "xWidthAvg": 1770 + } + } + } + } + }, + "vastShadow": { + "familyName": "Vast Shadow", + "fullName": "Vast Shadow Regular", + "postscriptName": "VastShadow-Regular", + "category": "serif", + "capHeight": 1245, + "ascent": 1875, + "descent": -685, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 965, + "xWidthAvg": 1416, + "subsets": { + "latin": { + "xWidthAvg": 1416 + }, + "thai": { + "xWidthAvg": 650 + } + }, + "variants": { + "regular": { + "familyName": "Vast Shadow", + "fullName": "Vast Shadow Regular", + "postscriptName": "VastShadow-Regular", + "category": "serif", + "capHeight": 1245, + "ascent": 1875, + "descent": -685, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 965, + "xWidthAvg": 1416, + "subsets": { + "latin": { + "xWidthAvg": 1416 + }, + "thai": { + "xWidthAvg": 650 + } + } + } + } + }, + "vazirmatn": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Regular", + "postscriptName": "Vazirmatn-Regular", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 919, + "subsets": { + "latin": { + "xWidthAvg": 919 + }, + "thai": { + "xWidthAvg": 908 + } + }, + "variants": { + "100": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Thin", + "postscriptName": "Vazirmatn-Thin", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 891, + "subsets": { + "latin": { + "xWidthAvg": 891 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "200": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn ExtraLight", + "postscriptName": "Vazirmatn-ExtraLight", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 905, + "subsets": { + "latin": { + "xWidthAvg": 905 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "300": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Light", + "postscriptName": "Vazirmatn-Light", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 912, + "subsets": { + "latin": { + "xWidthAvg": 912 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "500": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Medium", + "postscriptName": "Vazirmatn-Medium", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 924, + "subsets": { + "latin": { + "xWidthAvg": 924 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "600": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn SemiBold", + "postscriptName": "Vazirmatn-SemiBold", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 926, + "subsets": { + "latin": { + "xWidthAvg": 926 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "700": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Bold", + "postscriptName": "Vazirmatn-Bold", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 928, + "subsets": { + "latin": { + "xWidthAvg": 928 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "800": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn ExtraBold", + "postscriptName": "Vazirmatn-ExtraBold", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 930, + "subsets": { + "latin": { + "xWidthAvg": 930 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "900": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Black", + "postscriptName": "Vazirmatn-Black", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 932, + "subsets": { + "latin": { + "xWidthAvg": 932 + }, + "thai": { + "xWidthAvg": 908 + } + } + }, + "regular": { + "familyName": "Vazirmatn", + "fullName": "Vazirmatn Regular", + "postscriptName": "Vazirmatn-Regular", + "category": "sans-serif", + "capHeight": 1638, + "ascent": 2100, + "descent": -1100, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1082, + "xWidthAvg": 919, + "subsets": { + "latin": { + "xWidthAvg": 919 + }, + "thai": { + "xWidthAvg": 908 + } + } + } + } + }, + "verdana": { + "familyName": "Verdana", + "fullName": "Verdana", + "postscriptName": "Verdana", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2059, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1117, + "xWidthAvg": 1049, + "subsets": { + "latin": { + "xWidthAvg": 1049 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "700": { + "familyName": "Verdana", + "fullName": "Verdana Bold", + "postscriptName": "Verdana-Bold", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2059, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1123, + "xWidthAvg": 1170, + "subsets": { + "latin": { + "xWidthAvg": 1170 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "regular": { + "familyName": "Verdana", + "fullName": "Verdana", + "postscriptName": "Verdana", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2059, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1117, + "xWidthAvg": 1049, + "subsets": { + "latin": { + "xWidthAvg": 1049 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "italic": { + "familyName": "Verdana", + "fullName": "Verdana Italic", + "postscriptName": "Verdana-Italic", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2059, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1117, + "xWidthAvg": 1049, + "subsets": { + "latin": { + "xWidthAvg": 1049 + }, + "thai": { + "xWidthAvg": 2048 + } + } + }, + "700italic": { + "familyName": "Verdana", + "fullName": "Verdana Bold Italic", + "postscriptName": "Verdana-BoldItalic", + "category": "sans-serif", + "capHeight": 1489, + "ascent": 2059, + "descent": -430, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1123, + "xWidthAvg": 1170, + "subsets": { + "latin": { + "xWidthAvg": 1170 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "vesperLibre": { + "familyName": "Vesper Libre", + "fullName": "Vesper Libre", + "postscriptName": "VesperLibre-Regular", + "category": "serif", + "capHeight": 1384, + "ascent": 2330, + "descent": -1550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 890, + "subsets": { + "latin": { + "xWidthAvg": 890 + }, + "thai": { + "xWidthAvg": 1025 + } + }, + "variants": { + "500": { + "familyName": "Vesper Libre", + "fullName": "Vesper Libre Medium", + "postscriptName": "VesperLibre-Medium", + "category": "serif", + "capHeight": 1384, + "ascent": 2330, + "descent": -1550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 939, + "subsets": { + "latin": { + "xWidthAvg": 939 + }, + "thai": { + "xWidthAvg": 1025 + } + } + }, + "700": { + "familyName": "Vesper Libre", + "fullName": "Vesper Libre Bold", + "postscriptName": "VesperLibre-Bold", + "category": "serif", + "capHeight": 1384, + "ascent": 2330, + "descent": -1550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 969, + "subsets": { + "latin": { + "xWidthAvg": 969 + }, + "thai": { + "xWidthAvg": 1025 + } + } + }, + "900": { + "familyName": "Vesper Libre", + "fullName": "Vesper Libre Heavy", + "postscriptName": "VesperLibre-Heavy", + "category": "serif", + "capHeight": 1384, + "ascent": 2330, + "descent": -1550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 1017, + "subsets": { + "latin": { + "xWidthAvg": 1017 + }, + "thai": { + "xWidthAvg": 1025 + } + } + }, + "regular": { + "familyName": "Vesper Libre", + "fullName": "Vesper Libre", + "postscriptName": "VesperLibre-Regular", + "category": "serif", + "capHeight": 1384, + "ascent": 2330, + "descent": -1550, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 950, + "xWidthAvg": 890, + "subsets": { + "latin": { + "xWidthAvg": 890 + }, + "thai": { + "xWidthAvg": 1025 + } + } + } + } + }, + "viaodaLibre": { + "familyName": "Viaoda Libre", + "fullName": "Viaoda Libre Regular", + "postscriptName": "ViaodaLibre-Regular", + "category": "display", + "capHeight": 740, + "ascent": 1051, + "descent": -360, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 706 + } + }, + "variants": { + "regular": { + "familyName": "Viaoda Libre", + "fullName": "Viaoda Libre Regular", + "postscriptName": "ViaodaLibre-Regular", + "category": "display", + "capHeight": 740, + "ascent": 1051, + "descent": -360, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 467, + "xWidthAvg": 388, + "subsets": { + "latin": { + "xWidthAvg": 388 + }, + "thai": { + "xWidthAvg": 706 + } + } + } + } + }, + "vibes": { + "familyName": "Vibes", + "fullName": "Vibes Regular", + "postscriptName": "Vibes-Regular", + "category": "display", + "capHeight": 38, + "ascent": 1105, + "descent": -680, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 893 + } + }, + "variants": { + "regular": { + "familyName": "Vibes", + "fullName": "Vibes Regular", + "postscriptName": "Vibes-Regular", + "category": "display", + "capHeight": 38, + "ascent": 1105, + "descent": -680, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 366, + "subsets": { + "latin": { + "xWidthAvg": 366 + }, + "thai": { + "xWidthAvg": 893 + } + } + } + } + }, + "vibur": { + "familyName": "Vibur", + "fullName": "Vibur", + "postscriptName": "Vibur", + "category": "handwriting", + "ascent": 1960, + "descent": -792, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 742, + "subsets": { + "latin": { + "xWidthAvg": 742 + }, + "thai": { + "xWidthAvg": 797 + } + }, + "variants": { + "regular": { + "familyName": "Vibur", + "fullName": "Vibur", + "postscriptName": "Vibur", + "category": "handwriting", + "ascent": 1960, + "descent": -792, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 742, + "subsets": { + "latin": { + "xWidthAvg": 742 + }, + "thai": { + "xWidthAvg": 797 + } + } + } + } + }, + "victorMono": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Regular", + "postscriptName": "VictorMono-Regular", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "100": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Thin", + "postscriptName": "VictorMono-Thin", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200": { + "familyName": "Victor Mono", + "fullName": "Victor Mono ExtraLight", + "postscriptName": "VictorMono-ExtraLight", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Light", + "postscriptName": "VictorMono-Light", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Medium", + "postscriptName": "VictorMono-Medium", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600": { + "familyName": "Victor Mono", + "fullName": "Victor Mono SemiBold", + "postscriptName": "VictorMono-SemiBold", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Bold", + "postscriptName": "VictorMono-Bold", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Regular", + "postscriptName": "VictorMono-Regular", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Italic", + "postscriptName": "VictorMono-Italic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "700italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Bold Italic", + "postscriptName": "VictorMono-BoldItalic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "600italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono SemiBold Italic", + "postscriptName": "VictorMono-SemiBoldItalic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "500italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Medium Italic", + "postscriptName": "VictorMono-MediumItalic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "300italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Light Italic", + "postscriptName": "VictorMono-LightItalic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "200italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono ExtraLight Italic", + "postscriptName": "VictorMono-ExtraLightItalic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "100italic": { + "familyName": "Victor Mono", + "fullName": "Victor Mono Thin Italic", + "postscriptName": "VictorMono-ThinItalic", + "category": "monospace", + "capHeight": 800, + "ascent": 1100, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 618, + "xWidthAvg": 600, + "subsets": { + "latin": { + "xWidthAvg": 600 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "vidaloka": { + "familyName": "Vidaloka", + "fullName": "Vidaloka ", + "postscriptName": "Vidaloka-Regular", + "category": "serif", + "capHeight": 1427, + "ascent": 1927, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1004, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1008 + } + }, + "variants": { + "regular": { + "familyName": "Vidaloka", + "fullName": "Vidaloka ", + "postscriptName": "Vidaloka-Regular", + "category": "serif", + "capHeight": 1427, + "ascent": 1927, + "descent": -560, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1004, + "xWidthAvg": 889, + "subsets": { + "latin": { + "xWidthAvg": 889 + }, + "thai": { + "xWidthAvg": 1008 + } + } + } + } + }, + "viga": { + "familyName": "Viga", + "fullName": "Viga-Regular", + "postscriptName": "Viga-Regular", + "category": "sans-serif", + "capHeight": 712, + "ascent": 1015, + "descent": -329, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 571, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 483 + } + }, + "variants": { + "regular": { + "familyName": "Viga", + "fullName": "Viga-Regular", + "postscriptName": "Viga-Regular", + "category": "sans-serif", + "capHeight": 712, + "ascent": 1015, + "descent": -329, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 571, + "xWidthAvg": 452, + "subsets": { + "latin": { + "xWidthAvg": 452 + }, + "thai": { + "xWidthAvg": 483 + } + } + } + } + }, + "vinaSans": { + "familyName": "Vina Sans", + "fullName": "Vina Sans Regular", + "postscriptName": "VinaSans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1045, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 810 + } + }, + "variants": { + "regular": { + "familyName": "Vina Sans", + "fullName": "Vina Sans Regular", + "postscriptName": "VinaSans-Regular", + "category": "display", + "capHeight": 700, + "ascent": 1045, + "descent": -170, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 361, + "subsets": { + "latin": { + "xWidthAvg": 361 + }, + "thai": { + "xWidthAvg": 810 + } + } + } + } + }, + "voces": { + "familyName": "Voces", + "fullName": "Voces Regular", + "postscriptName": "Voces-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1014, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 255 + } + }, + "variants": { + "regular": { + "familyName": "Voces", + "fullName": "Voces Regular", + "postscriptName": "Voces-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1014, + "descent": -335, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 520, + "xWidthAvg": 470, + "subsets": { + "latin": { + "xWidthAvg": 470 + }, + "thai": { + "xWidthAvg": 255 + } + } + } + } + }, + "volkhov": { + "familyName": "Volkhov", + "fullName": "Volkhov Regular", + "postscriptName": "Volkhov-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 252 + } + }, + "variants": { + "700": { + "familyName": "Volkhov", + "fullName": "Volkhov Bold", + "postscriptName": "Volkhov-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 252 + } + } + }, + "regular": { + "familyName": "Volkhov", + "fullName": "Volkhov Regular", + "postscriptName": "Volkhov-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 486, + "subsets": { + "latin": { + "xWidthAvg": 486 + }, + "thai": { + "xWidthAvg": 252 + } + } + }, + "italic": { + "familyName": "Volkhov", + "fullName": "Volkhov Italic", + "postscriptName": "Volkhov-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 252 + } + } + }, + "700italic": { + "familyName": "Volkhov", + "fullName": "Volkhov Bold Italic", + "postscriptName": "Volkhov-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 971, + "descent": -319, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 507, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 252 + } + } + } + } + }, + "vollkorn": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Regular", + "postscriptName": "Vollkorn-Regular", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 454 + } + }, + "variants": { + "500": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Medium", + "postscriptName": "Vollkorn-Medium", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "600": { + "familyName": "Vollkorn", + "fullName": "Vollkorn SemiBold", + "postscriptName": "Vollkorn-SemiBold", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 460, + "subsets": { + "latin": { + "xWidthAvg": 460 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "700": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Bold", + "postscriptName": "Vollkorn-Bold", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "800": { + "familyName": "Vollkorn", + "fullName": "Vollkorn ExtraBold", + "postscriptName": "Vollkorn-ExtraBold", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "900": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Black", + "postscriptName": "Vollkorn-Black", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 506, + "subsets": { + "latin": { + "xWidthAvg": 506 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "regular": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Regular", + "postscriptName": "Vollkorn-Regular", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "italic": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Italic", + "postscriptName": "Vollkorn-Italic", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 381, + "subsets": { + "latin": { + "xWidthAvg": 381 + }, + "thai": { + "xWidthAvg": 453 + } + } + }, + "900italic": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Black Italic", + "postscriptName": "Vollkorn-BlackItalic", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 453 + } + } + }, + "800italic": { + "familyName": "Vollkorn", + "fullName": "Vollkorn ExtraBold Italic", + "postscriptName": "Vollkorn-ExtraBoldItalic", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 453 + } + } + }, + "700italic": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Bold Italic", + "postscriptName": "Vollkorn-BoldItalic", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 453 + } + } + }, + "600italic": { + "familyName": "Vollkorn", + "fullName": "Vollkorn SemiBold Italic", + "postscriptName": "Vollkorn-SemiBoldItalic", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 453 + } + } + }, + "500italic": { + "familyName": "Vollkorn", + "fullName": "Vollkorn Medium Italic", + "postscriptName": "Vollkorn-MediumItalic", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 398, + "subsets": { + "latin": { + "xWidthAvg": 398 + }, + "thai": { + "xWidthAvg": 453 + } + } + } + } + }, + "vollkornSC": { + "familyName": "Vollkorn SC", + "fullName": "Vollkorn SC Regular", + "postscriptName": "VollkornSC-Regular", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 454 + } + }, + "variants": { + "600": { + "familyName": "Vollkorn SC", + "fullName": "Vollkorn SC SemiBold", + "postscriptName": "VollkornSC-SemiBold", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 555, + "subsets": { + "latin": { + "xWidthAvg": 555 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "700": { + "familyName": "Vollkorn SC", + "fullName": "Vollkorn SC Bold", + "postscriptName": "VollkornSC-Bold", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 564, + "subsets": { + "latin": { + "xWidthAvg": 564 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "900": { + "familyName": "Vollkorn SC", + "fullName": "Vollkorn SC Black", + "postscriptName": "VollkornSC-Black", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 578, + "subsets": { + "latin": { + "xWidthAvg": 578 + }, + "thai": { + "xWidthAvg": 454 + } + } + }, + "regular": { + "familyName": "Vollkorn SC", + "fullName": "Vollkorn SC Regular", + "postscriptName": "VollkornSC-Regular", + "category": "serif", + "capHeight": 676, + "ascent": 952, + "descent": -441, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 458, + "xWidthAvg": 547, + "subsets": { + "latin": { + "xWidthAvg": 547 + }, + "thai": { + "xWidthAvg": 454 + } + } + } + } + }, + "voltaire": { + "familyName": "Voltaire", + "fullName": "Voltaire Regular", + "postscriptName": "Voltaire-Regular", + "category": "sans-serif", + "capHeight": 1593, + "ascent": 2020, + "descent": -531, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 741, + "subsets": { + "latin": { + "xWidthAvg": 741 + }, + "thai": { + "xWidthAvg": 1770 + } + }, + "variants": { + "regular": { + "familyName": "Voltaire", + "fullName": "Voltaire Regular", + "postscriptName": "Voltaire-Regular", + "category": "sans-serif", + "capHeight": 1593, + "ascent": 2020, + "descent": -531, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 1062, + "xWidthAvg": 741, + "subsets": { + "latin": { + "xWidthAvg": 741 + }, + "thai": { + "xWidthAvg": 1770 + } + } + } + } + }, + "vujahdayScript": { + "familyName": "Vujahday Script", + "fullName": "Vujahday Script Regular", + "postscriptName": "VujahdayScript-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 494 + } + }, + "variants": { + "regular": { + "familyName": "Vujahday Script", + "fullName": "Vujahday Script Regular", + "postscriptName": "VujahdayScript-Regular", + "category": "handwriting", + "capHeight": 640, + "ascent": 950, + "descent": -410, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 378, + "subsets": { + "latin": { + "xWidthAvg": 378 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "waitingForTheSunrise": { + "familyName": "Waiting for the Sunrise", + "fullName": "Waiting for the Sunrise", + "postscriptName": "WaitingfortheSunrise", + "category": "handwriting", + "capHeight": 755, + "ascent": 1146, + "descent": -547, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 570, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 461 + } + }, + "variants": { + "regular": { + "familyName": "Waiting for the Sunrise", + "fullName": "Waiting for the Sunrise", + "postscriptName": "WaitingfortheSunrise", + "category": "handwriting", + "capHeight": 755, + "ascent": 1146, + "descent": -547, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 570, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 461 + } + } + } + } + }, + "wallpoet": { + "familyName": "Wallpoet", + "fullName": "Wallpoet", + "postscriptName": "Wallpoet", + "category": "display", + "capHeight": 575, + "ascent": 806, + "descent": -196, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 615, + "subsets": { + "latin": { + "xWidthAvg": 615 + }, + "thai": { + "xWidthAvg": 1015 + } + }, + "variants": { + "regular": { + "familyName": "Wallpoet", + "fullName": "Wallpoet", + "postscriptName": "Wallpoet", + "category": "display", + "capHeight": 575, + "ascent": 806, + "descent": -196, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 615, + "subsets": { + "latin": { + "xWidthAvg": 615 + }, + "thai": { + "xWidthAvg": 1015 + } + } + } + } + }, + "walterTurncoat": { + "familyName": "Walter Turncoat", + "fullName": "Walter Turncoat Regular", + "postscriptName": "WalterTurncoat-Regular", + "category": "handwriting", + "capHeight": 752, + "ascent": 1078, + "descent": -323, + "lineGap": 29, + "unitsPerEm": 1024, + "xHeight": 559, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 328 + } + }, + "variants": { + "regular": { + "familyName": "Walter Turncoat", + "fullName": "Walter Turncoat Regular", + "postscriptName": "WalterTurncoat-Regular", + "category": "handwriting", + "capHeight": 752, + "ascent": 1078, + "descent": -323, + "lineGap": 29, + "unitsPerEm": 1024, + "xHeight": 559, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 328 + } + } + } + } + }, + "warnes": { + "familyName": "Warnes", + "fullName": "Warnes Regular", + "postscriptName": "Warnes-Regular", + "category": "display", + "capHeight": 710, + "ascent": 994, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 616, + "subsets": { + "latin": { + "xWidthAvg": 616 + }, + "thai": { + "xWidthAvg": 400 + } + }, + "variants": { + "regular": { + "familyName": "Warnes", + "fullName": "Warnes Regular", + "postscriptName": "Warnes-Regular", + "category": "display", + "capHeight": 710, + "ascent": 994, + "descent": -310, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 616, + "subsets": { + "latin": { + "xWidthAvg": 616 + }, + "thai": { + "xWidthAvg": 400 + } + } + } + } + }, + "waterBrush": { + "familyName": "Water Brush", + "fullName": "Water Brush Regular", + "postscriptName": "WaterBrush-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 1000, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 318, + "subsets": { + "latin": { + "xWidthAvg": 318 + }, + "thai": { + "xWidthAvg": 370 + } + }, + "variants": { + "regular": { + "familyName": "Water Brush", + "fullName": "Water Brush Regular", + "postscriptName": "WaterBrush-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 1000, + "descent": -450, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 375, + "xWidthAvg": 318, + "subsets": { + "latin": { + "xWidthAvg": 318 + }, + "thai": { + "xWidthAvg": 370 + } + } + } + } + }, + "waterfall": { + "familyName": "Waterfall", + "fullName": "Waterfall Regular", + "postscriptName": "Waterfall-Regular", + "category": "handwriting", + "capHeight": 580, + "ascent": 880, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 215, + "xWidthAvg": 249, + "subsets": { + "latin": { + "xWidthAvg": 249 + }, + "thai": { + "xWidthAvg": 494 + } + }, + "variants": { + "regular": { + "familyName": "Waterfall", + "fullName": "Waterfall Regular", + "postscriptName": "Waterfall-Regular", + "category": "handwriting", + "capHeight": 580, + "ascent": 880, + "descent": -280, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 215, + "xWidthAvg": 249, + "subsets": { + "latin": { + "xWidthAvg": 249 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "wavefont": { + "familyName": "Wavefont", + "fullName": "Wavefont Regular", + "postscriptName": "Wavefont-Regular", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + }, + "variants": { + "100": { + "familyName": "Wavefont", + "fullName": "Wavefont Thin", + "postscriptName": "Wavefont-Thin", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 25, + "subsets": { + "latin": { + "xWidthAvg": 25 + }, + "thai": { + "xWidthAvg": 25 + } + } + }, + "200": { + "familyName": "Wavefont", + "fullName": "Wavefont ExtraLight", + "postscriptName": "Wavefont-ExtraLight", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 50, + "subsets": { + "latin": { + "xWidthAvg": 50 + }, + "thai": { + "xWidthAvg": 50 + } + } + }, + "300": { + "familyName": "Wavefont", + "fullName": "Wavefont Light", + "postscriptName": "Wavefont-Light", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 75, + "subsets": { + "latin": { + "xWidthAvg": 75 + }, + "thai": { + "xWidthAvg": 75 + } + } + }, + "500": { + "familyName": "Wavefont", + "fullName": "Wavefont Medium", + "postscriptName": "Wavefont-Medium", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 125, + "subsets": { + "latin": { + "xWidthAvg": 125 + }, + "thai": { + "xWidthAvg": 125 + } + } + }, + "600": { + "familyName": "Wavefont", + "fullName": "Wavefont SemiBold", + "postscriptName": "Wavefont-SemiBold", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 150, + "subsets": { + "latin": { + "xWidthAvg": 150 + }, + "thai": { + "xWidthAvg": 150 + } + } + }, + "700": { + "familyName": "Wavefont", + "fullName": "Wavefont Bold", + "postscriptName": "Wavefont-Bold", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 175, + "subsets": { + "latin": { + "xWidthAvg": 175 + }, + "thai": { + "xWidthAvg": 175 + } + } + }, + "800": { + "familyName": "Wavefont", + "fullName": "Wavefont ExtraBold", + "postscriptName": "Wavefont-ExtraBold", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 200, + "subsets": { + "latin": { + "xWidthAvg": 200 + }, + "thai": { + "xWidthAvg": 200 + } + } + }, + "900": { + "familyName": "Wavefont", + "fullName": "Wavefont Black", + "postscriptName": "Wavefont-Black", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 225, + "subsets": { + "latin": { + "xWidthAvg": 225 + }, + "thai": { + "xWidthAvg": 225 + } + } + }, + "regular": { + "familyName": "Wavefont", + "fullName": "Wavefont Regular", + "postscriptName": "Wavefont-Regular", + "category": "display", + "capHeight": 0, + "ascent": 1200, + "descent": -200, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 0, + "xWidthAvg": 100, + "subsets": { + "latin": { + "xWidthAvg": 100 + }, + "thai": { + "xWidthAvg": 100 + } + } + } + } + }, + "wellfleet": { + "familyName": "Wellfleet", + "fullName": "Wellfleet", + "postscriptName": "Wellfleet-Regular", + "category": "serif", + "capHeight": 1535, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 747, + "xWidthAvg": 1030, + "subsets": { + "latin": { + "xWidthAvg": 1030 + }, + "thai": { + "xWidthAvg": 1877 + } + }, + "variants": { + "regular": { + "familyName": "Wellfleet", + "fullName": "Wellfleet", + "postscriptName": "Wellfleet-Regular", + "category": "serif", + "capHeight": 1535, + "ascent": 2020, + "descent": -540, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 747, + "xWidthAvg": 1030, + "subsets": { + "latin": { + "xWidthAvg": 1030 + }, + "thai": { + "xWidthAvg": 1877 + } + } + } + } + }, + "wendyOne": { + "familyName": "Wendy One", + "fullName": "Wendy One", + "postscriptName": "WendyOne-Regular", + "category": "sans-serif", + "capHeight": 606, + "ascent": 819, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 200 + } + }, + "variants": { + "regular": { + "familyName": "Wendy One", + "fullName": "Wendy One", + "postscriptName": "WendyOne-Regular", + "category": "sans-serif", + "capHeight": 606, + "ascent": 819, + "descent": -236, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 474, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 200 + } + } + } + } + }, + "whisper": { + "familyName": "Whisper", + "fullName": "Whisper Regular", + "postscriptName": "Whisper-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 880, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 370 + } + }, + "variants": { + "regular": { + "familyName": "Whisper", + "fullName": "Whisper Regular", + "postscriptName": "Whisper-Regular", + "category": "handwriting", + "capHeight": 620, + "ascent": 880, + "descent": -400, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 300, + "xWidthAvg": 305, + "subsets": { + "latin": { + "xWidthAvg": 305 + }, + "thai": { + "xWidthAvg": 370 + } + } + } + } + }, + "windSong": { + "familyName": "WindSong", + "fullName": "WindSong Regular", + "postscriptName": "WindSong-Regular", + "category": "handwriting", + "capHeight": 705, + "ascent": 890, + "descent": -515, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 268, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 495 + } + }, + "variants": { + "500": { + "familyName": "WindSong", + "fullName": "WindSong Medium", + "postscriptName": "WindSong-Medium", + "category": "handwriting", + "capHeight": 705, + "ascent": 890, + "descent": -515, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 268, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 495 + } + } + }, + "regular": { + "familyName": "WindSong", + "fullName": "WindSong Regular", + "postscriptName": "WindSong-Regular", + "category": "handwriting", + "capHeight": 705, + "ascent": 890, + "descent": -515, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 268, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 495 + } + } + } + } + }, + "wireOne": { + "familyName": "Wire One", + "fullName": "Wire One Regular", + "postscriptName": "WireOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 890, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 232, + "subsets": { + "latin": { + "xWidthAvg": 232 + }, + "thai": { + "xWidthAvg": 288 + } + }, + "variants": { + "regular": { + "familyName": "Wire One", + "fullName": "Wire One Regular", + "postscriptName": "WireOne-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 890, + "descent": -210, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 232, + "subsets": { + "latin": { + "xWidthAvg": 232 + }, + "thai": { + "xWidthAvg": 288 + } + } + } + } + }, + "wittgenstein": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Regular", + "postscriptName": "Wittgenstein-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 700 + } + }, + "variants": { + "500": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Medium", + "postscriptName": "Wittgenstein-Medium", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 461, + "subsets": { + "latin": { + "xWidthAvg": 461 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "600": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein SemiBold", + "postscriptName": "Wittgenstein-SemiBold", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "700": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Bold", + "postscriptName": "Wittgenstein-Bold", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein ExtraBold", + "postscriptName": "Wittgenstein-ExtraBold", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "900": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Black", + "postscriptName": "Wittgenstein-Black", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 484, + "subsets": { + "latin": { + "xWidthAvg": 484 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "regular": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Regular", + "postscriptName": "Wittgenstein-Regular", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "italic": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Italic", + "postscriptName": "Wittgenstein-Italic", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 736 + } + } + }, + "900italic": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Black Italic", + "postscriptName": "Wittgenstein-BlackItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 475, + "subsets": { + "latin": { + "xWidthAvg": 475 + }, + "thai": { + "xWidthAvg": 700 + } + } + }, + "800italic": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein ExtraBold Italic", + "postscriptName": "Wittgenstein-ExtraBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 707 + } + } + }, + "700italic": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Bold Italic", + "postscriptName": "Wittgenstein-BoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 714 + } + } + }, + "600italic": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein SemiBold Italic", + "postscriptName": "Wittgenstein-SemiBoldItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 722 + } + } + }, + "500italic": { + "familyName": "Wittgenstein", + "fullName": "Wittgenstein Medium Italic", + "postscriptName": "Wittgenstein-MediumItalic", + "category": "serif", + "capHeight": 700, + "ascent": 1065, + "descent": -435, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 729 + } + } + } + } + }, + "wixMadeforDisplay": { + "familyName": "Wix Madefor Display", + "fullName": "Wix Madefor Display Regular", + "postscriptName": "WixMadeforDisplay-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Wix Madefor Display", + "fullName": "Wix Madefor Display Medium", + "postscriptName": "WixMadeforDisplay-Medium", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Wix Madefor Display", + "fullName": "Wix Madefor Display SemiBold", + "postscriptName": "WixMadeforDisplay-SemiBold", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 478, + "subsets": { + "latin": { + "xWidthAvg": 478 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Wix Madefor Display", + "fullName": "Wix Madefor Display Bold", + "postscriptName": "WixMadeforDisplay-Bold", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Wix Madefor Display", + "fullName": "Wix Madefor Display ExtraBold", + "postscriptName": "WixMadeforDisplay-ExtraBold", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Wix Madefor Display", + "fullName": "Wix Madefor Display Regular", + "postscriptName": "WixMadeforDisplay-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "wixMadeforText": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Regular", + "postscriptName": "WixMadeforText-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "500": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Medium", + "postscriptName": "WixMadeforText-Medium", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text SemiBold", + "postscriptName": "WixMadeforText-SemiBold", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 477, + "subsets": { + "latin": { + "xWidthAvg": 477 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Bold", + "postscriptName": "WixMadeforText-Bold", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 482, + "subsets": { + "latin": { + "xWidthAvg": 482 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text ExtraBold", + "postscriptName": "WixMadeforText-ExtraBold", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 490, + "subsets": { + "latin": { + "xWidthAvg": 490 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Regular", + "postscriptName": "WixMadeforText-Regular", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 467, + "subsets": { + "latin": { + "xWidthAvg": 467 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Italic", + "postscriptName": "WixMadeforText-Italic", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 492, + "xWidthAvg": 459, + "subsets": { + "latin": { + "xWidthAvg": 459 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text ExtraBold Italic", + "postscriptName": "WixMadeforText-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 480, + "subsets": { + "latin": { + "xWidthAvg": 480 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Bold Italic", + "postscriptName": "WixMadeforText-BoldItalic", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 503, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text SemiBold Italic", + "postscriptName": "WixMadeforText-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Wix Madefor Text", + "fullName": "Wix Madefor Text Medium Italic", + "postscriptName": "WixMadeforText-MediumItalic", + "category": "sans-serif", + "capHeight": 715, + "ascent": 1008, + "descent": -252, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 497, + "xWidthAvg": 464, + "subsets": { + "latin": { + "xWidthAvg": 464 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "workSans": { + "familyName": "Work Sans", + "fullName": "Work Sans Regular", + "postscriptName": "WorkSans-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "100": { + "familyName": "Work Sans", + "fullName": "Work Sans Thin", + "postscriptName": "WorkSans-Thin", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 444, + "subsets": { + "latin": { + "xWidthAvg": 444 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200": { + "familyName": "Work Sans", + "fullName": "Work Sans ExtraLight", + "postscriptName": "WorkSans-ExtraLight", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Work Sans", + "fullName": "Work Sans Light", + "postscriptName": "WorkSans-Light", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Work Sans", + "fullName": "Work Sans Medium", + "postscriptName": "WorkSans-Medium", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Work Sans", + "fullName": "Work Sans SemiBold", + "postscriptName": "WorkSans-SemiBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Work Sans", + "fullName": "Work Sans Bold", + "postscriptName": "WorkSans-Bold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800": { + "familyName": "Work Sans", + "fullName": "Work Sans ExtraBold", + "postscriptName": "WorkSans-ExtraBold", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 502, + "subsets": { + "latin": { + "xWidthAvg": 502 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900": { + "familyName": "Work Sans", + "fullName": "Work Sans Black", + "postscriptName": "WorkSans-Black", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 503, + "subsets": { + "latin": { + "xWidthAvg": 503 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Work Sans", + "fullName": "Work Sans Regular", + "postscriptName": "WorkSans-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 499, + "subsets": { + "latin": { + "xWidthAvg": 499 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Work Sans", + "fullName": "Work Sans Italic", + "postscriptName": "WorkSans-Italic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 493, + "subsets": { + "latin": { + "xWidthAvg": 493 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "900italic": { + "familyName": "Work Sans", + "fullName": "Work Sans Black Italic", + "postscriptName": "WorkSans-BlackItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 507, + "subsets": { + "latin": { + "xWidthAvg": 507 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "800italic": { + "familyName": "Work Sans", + "fullName": "Work Sans ExtraBold Italic", + "postscriptName": "WorkSans-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 504, + "subsets": { + "latin": { + "xWidthAvg": 504 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700italic": { + "familyName": "Work Sans", + "fullName": "Work Sans Bold Italic", + "postscriptName": "WorkSans-BoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 501, + "subsets": { + "latin": { + "xWidthAvg": 501 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600italic": { + "familyName": "Work Sans", + "fullName": "Work Sans SemiBold Italic", + "postscriptName": "WorkSans-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500italic": { + "familyName": "Work Sans", + "fullName": "Work Sans Medium Italic", + "postscriptName": "WorkSans-MediumItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 496, + "subsets": { + "latin": { + "xWidthAvg": 496 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300italic": { + "familyName": "Work Sans", + "fullName": "Work Sans Light Italic", + "postscriptName": "WorkSans-LightItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "200italic": { + "familyName": "Work Sans", + "fullName": "Work Sans ExtraLight Italic", + "postscriptName": "WorkSans-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 455, + "subsets": { + "latin": { + "xWidthAvg": 455 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "100italic": { + "familyName": "Work Sans", + "fullName": "Work Sans Thin Italic", + "postscriptName": "WorkSans-ThinItalic", + "category": "sans-serif", + "capHeight": 660, + "ascent": 930, + "descent": -243, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 446, + "subsets": { + "latin": { + "xWidthAvg": 446 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "workbench": { + "familyName": "Workbench", + "fullName": "Workbench Regular", + "postscriptName": "Workbench-Regular", + "category": "monospace", + "capHeight": 896, + "ascent": 896, + "descent": -128, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 640, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + }, + "variants": { + "regular": { + "familyName": "Workbench", + "fullName": "Workbench Regular", + "postscriptName": "Workbench-Regular", + "category": "monospace", + "capHeight": 896, + "ascent": 896, + "descent": -128, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 640, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 512 + } + } + } + } + }, + "xanhMono": { + "familyName": "Xanh Mono", + "fullName": "Xanh Mono Regular", + "postscriptName": "XanhMono-Regular", + "category": "monospace", + "capHeight": 740, + "ascent": 970, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Xanh Mono", + "fullName": "Xanh Mono Regular", + "postscriptName": "XanhMono-Regular", + "category": "monospace", + "capHeight": 740, + "ascent": 970, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Xanh Mono", + "fullName": "Xanh Mono Italic", + "postscriptName": "XanhMono-Italic", + "category": "monospace", + "capHeight": 740, + "ascent": 970, + "descent": -220, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 540, + "xWidthAvg": 500, + "subsets": { + "latin": { + "xWidthAvg": 500 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yaldevi": { + "familyName": "Yaldevi", + "fullName": "Yaldevi Regular", + "postscriptName": "Yaldevi-Regular", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 719 + } + }, + "variants": { + "200": { + "familyName": "Yaldevi", + "fullName": "Yaldevi ExtraLight", + "postscriptName": "Yaldevi-ExtraLight", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "300": { + "familyName": "Yaldevi", + "fullName": "Yaldevi Light", + "postscriptName": "Yaldevi-Light", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "500": { + "familyName": "Yaldevi", + "fullName": "Yaldevi Medium", + "postscriptName": "Yaldevi-Medium", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "600": { + "familyName": "Yaldevi", + "fullName": "Yaldevi SemiBold", + "postscriptName": "Yaldevi-SemiBold", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "700": { + "familyName": "Yaldevi", + "fullName": "Yaldevi Bold", + "postscriptName": "Yaldevi-Bold", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 462, + "subsets": { + "latin": { + "xWidthAvg": 462 + }, + "thai": { + "xWidthAvg": 719 + } + } + }, + "regular": { + "familyName": "Yaldevi", + "fullName": "Yaldevi Regular", + "postscriptName": "Yaldevi-Regular", + "category": "sans-serif", + "capHeight": 769, + "ascent": 1060, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 570, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 719 + } + } + } + } + }, + "yanoneKaffeesatz": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz Regular", + "postscriptName": "YanoneKaffeesatz-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "200": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz ExtraLight", + "postscriptName": "YanoneKaffeesatz-ExtraLight", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 334, + "subsets": { + "latin": { + "xWidthAvg": 334 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "300": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz Light", + "postscriptName": "YanoneKaffeesatz-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 324, + "subsets": { + "latin": { + "xWidthAvg": 324 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "500": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz Medium", + "postscriptName": "YanoneKaffeesatz-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 303, + "subsets": { + "latin": { + "xWidthAvg": 303 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "600": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz SemiBold", + "postscriptName": "YanoneKaffeesatz-SemiBold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 298, + "subsets": { + "latin": { + "xWidthAvg": 298 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "700": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz Bold", + "postscriptName": "YanoneKaffeesatz-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 293, + "subsets": { + "latin": { + "xWidthAvg": 293 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "regular": { + "familyName": "Yanone Kaffeesatz", + "fullName": "Yanone Kaffeesatz Regular", + "postscriptName": "YanoneKaffeesatz-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 735, + "descent": -200, + "lineGap": 57, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 308, + "subsets": { + "latin": { + "xWidthAvg": 308 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yantramanav": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Regular", + "postscriptName": "Yantramanav-Regular", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 843, + "subsets": { + "latin": { + "xWidthAvg": 843 + }, + "thai": { + "xWidthAvg": 817 + } + }, + "variants": { + "100": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Thin", + "postscriptName": "Yantramanav-Thin", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 802, + "subsets": { + "latin": { + "xWidthAvg": 802 + }, + "thai": { + "xWidthAvg": 817 + } + } + }, + "300": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Light", + "postscriptName": "Yantramanav-Light", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 822, + "subsets": { + "latin": { + "xWidthAvg": 822 + }, + "thai": { + "xWidthAvg": 817 + } + } + }, + "500": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Medium", + "postscriptName": "Yantramanav-Medium", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 817 + } + } + }, + "700": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Bold", + "postscriptName": "Yantramanav-Bold", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 845, + "subsets": { + "latin": { + "xWidthAvg": 845 + }, + "thai": { + "xWidthAvg": 817 + } + } + }, + "900": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Black", + "postscriptName": "Yantramanav-Black", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 848, + "subsets": { + "latin": { + "xWidthAvg": 848 + }, + "thai": { + "xWidthAvg": 817 + } + } + }, + "regular": { + "familyName": "Yantramanav", + "fullName": "Yantramanav Regular", + "postscriptName": "Yantramanav-Regular", + "category": "sans-serif", + "capHeight": 1279, + "ascent": 1923, + "descent": -733, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 986, + "xWidthAvg": 843, + "subsets": { + "latin": { + "xWidthAvg": 843 + }, + "thai": { + "xWidthAvg": 817 + } + } + } + } + }, + "yarndings12": { + "familyName": "Yarndings 12", + "fullName": "Yarndings 12 Regular", + "postscriptName": "Yarndings12-Regular", + "category": "display", + "capHeight": 700, + "ascent": 910, + "descent": -130, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 500, + "xWidthAvg": 740, + "subsets": { + "latin": { + "xWidthAvg": 740 + }, + "thai": { + "xWidthAvg": 520 + } + }, + "variants": { + "regular": { + "familyName": "Yarndings 12", + "fullName": "Yarndings 12 Regular", + "postscriptName": "Yarndings12-Regular", + "category": "display", + "capHeight": 700, + "ascent": 910, + "descent": -130, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 500, + "xWidthAvg": 740, + "subsets": { + "latin": { + "xWidthAvg": 740 + }, + "thai": { + "xWidthAvg": 520 + } + } + } + } + }, + "yarndings12Charted": { + "familyName": "Yarndings 12 Charted", + "fullName": "Yarndings 12 Charted Regular", + "postscriptName": "Yarndings12Charted-Regular", + "category": "display", + "capHeight": 700, + "ascent": 910, + "descent": -130, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 500, + "xWidthAvg": 747, + "subsets": { + "latin": { + "xWidthAvg": 747 + }, + "thai": { + "xWidthAvg": 520 + } + }, + "variants": { + "regular": { + "familyName": "Yarndings 12 Charted", + "fullName": "Yarndings 12 Charted Regular", + "postscriptName": "Yarndings12Charted-Regular", + "category": "display", + "capHeight": 700, + "ascent": 910, + "descent": -130, + "lineGap": 0, + "unitsPerEm": 1040, + "xHeight": 500, + "xWidthAvg": 747, + "subsets": { + "latin": { + "xWidthAvg": 747 + }, + "thai": { + "xWidthAvg": 520 + } + } + } + } + }, + "yarndings20": { + "familyName": "Yarndings 20", + "fullName": "Yarndings 20 Regular", + "postscriptName": "Yarndings20-Regular", + "category": "display", + "capHeight": 700, + "ascent": 880, + "descent": -80, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 500, + "xWidthAvg": 676, + "subsets": { + "latin": { + "xWidthAvg": 676 + }, + "thai": { + "xWidthAvg": 480 + } + }, + "variants": { + "regular": { + "familyName": "Yarndings 20", + "fullName": "Yarndings 20 Regular", + "postscriptName": "Yarndings20-Regular", + "category": "display", + "capHeight": 700, + "ascent": 880, + "descent": -80, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 500, + "xWidthAvg": 676, + "subsets": { + "latin": { + "xWidthAvg": 676 + }, + "thai": { + "xWidthAvg": 480 + } + } + } + } + }, + "yarndings20Charted": { + "familyName": "Yarndings 20 Charted", + "fullName": "Yarndings 20 Charted Regular", + "postscriptName": "Yarndings20Charted-Regular", + "category": "display", + "capHeight": 700, + "ascent": 880, + "descent": -80, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 500, + "xWidthAvg": 676, + "subsets": { + "latin": { + "xWidthAvg": 676 + }, + "thai": { + "xWidthAvg": 480 + } + }, + "variants": { + "regular": { + "familyName": "Yarndings 20 Charted", + "fullName": "Yarndings 20 Charted Regular", + "postscriptName": "Yarndings20Charted-Regular", + "category": "display", + "capHeight": 700, + "ascent": 880, + "descent": -80, + "lineGap": 0, + "unitsPerEm": 960, + "xHeight": 500, + "xWidthAvg": 676, + "subsets": { + "latin": { + "xWidthAvg": 676 + }, + "thai": { + "xWidthAvg": 480 + } + } + } + } + }, + "yatraOne": { + "familyName": "Yatra One", + "fullName": "Yatra One Regular", + "postscriptName": "YatraOne-Regular", + "category": "display", + "capHeight": 679, + "ascent": 991, + "descent": -487, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 756 + } + }, + "variants": { + "regular": { + "familyName": "Yatra One", + "fullName": "Yatra One Regular", + "postscriptName": "YatraOne-Regular", + "category": "display", + "capHeight": 679, + "ascent": 991, + "descent": -487, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 497, + "subsets": { + "latin": { + "xWidthAvg": 497 + }, + "thai": { + "xWidthAvg": 756 + } + } + } + } + }, + "yellowtail": { + "familyName": "Yellowtail", + "fullName": "Yellowtail Regular", + "postscriptName": "Yellowtail-Regular", + "category": "handwriting", + "ascent": 1990, + "descent": -617, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 691, + "subsets": { + "latin": { + "xWidthAvg": 691 + }, + "thai": { + "xWidthAvg": 2048 + } + }, + "variants": { + "regular": { + "familyName": "Yellowtail", + "fullName": "Yellowtail Regular", + "postscriptName": "Yellowtail-Regular", + "category": "handwriting", + "ascent": 1990, + "descent": -617, + "lineGap": 184, + "unitsPerEm": 2048, + "xWidthAvg": 691, + "subsets": { + "latin": { + "xWidthAvg": 691 + }, + "thai": { + "xWidthAvg": 2048 + } + } + } + } + }, + "yeonSung": { + "familyName": "Yeon Sung", + "fullName": "Yeon Sung Regular", + "postscriptName": "YeonSung-Regular", + "category": "display", + "capHeight": 659, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 446, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 900 + } + }, + "variants": { + "regular": { + "familyName": "Yeon Sung", + "fullName": "Yeon Sung Regular", + "postscriptName": "YeonSung-Regular", + "category": "display", + "capHeight": 659, + "ascent": 800, + "descent": -200, + "lineGap": 250, + "unitsPerEm": 1000, + "xHeight": 446, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 900 + } + } + } + } + }, + "yesevaOne": { + "familyName": "Yeseva One", + "fullName": "Yeseva One Regular", + "postscriptName": "YesevaOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 915, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 285 + } + }, + "variants": { + "regular": { + "familyName": "Yeseva One", + "fullName": "Yeseva One Regular", + "postscriptName": "YesevaOne-Regular", + "category": "display", + "capHeight": 700, + "ascent": 915, + "descent": -240, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 285 + } + } + } + } + }, + "yesteryear": { + "familyName": "Yesteryear", + "fullName": "Yesteryear", + "postscriptName": "Yesteryear-Regular", + "category": "handwriting", + "capHeight": 1581, + "ascent": 2001, + "descent": -1004, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 625, + "xWidthAvg": 688, + "subsets": { + "latin": { + "xWidthAvg": 688 + }, + "thai": { + "xWidthAvg": 461 + } + }, + "variants": { + "regular": { + "familyName": "Yesteryear", + "fullName": "Yesteryear", + "postscriptName": "Yesteryear-Regular", + "category": "handwriting", + "capHeight": 1581, + "ascent": 2001, + "descent": -1004, + "lineGap": 0, + "unitsPerEm": 2048, + "xHeight": 625, + "xWidthAvg": 688, + "subsets": { + "latin": { + "xWidthAvg": 688 + }, + "thai": { + "xWidthAvg": 461 + } + } + } + } + }, + "yomogi": { + "familyName": "Yomogi", + "fullName": "Yomogi Regular", + "postscriptName": "Yomogi-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Yomogi", + "fullName": "Yomogi Regular", + "postscriptName": "Yomogi-Regular", + "category": "handwriting", + "capHeight": 720, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 475, + "xWidthAvg": 516, + "subsets": { + "latin": { + "xWidthAvg": 516 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "youngSerif": { + "familyName": "Young Serif", + "fullName": "Young Serif Regular", + "postscriptName": "YoungSerif-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 1046, + "descent": -366, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Young Serif", + "fullName": "Young Serif Regular", + "postscriptName": "YoungSerif-Regular", + "category": "serif", + "capHeight": 750, + "ascent": 1046, + "descent": -366, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 500, + "xWidthAvg": 511, + "subsets": { + "latin": { + "xWidthAvg": 511 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yrsa": { + "familyName": "Yrsa", + "fullName": "Yrsa Regular", + "postscriptName": "Yrsa-Regular", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 643 + } + }, + "variants": { + "300": { + "familyName": "Yrsa", + "fullName": "Yrsa Light", + "postscriptName": "Yrsa-Light", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "500": { + "familyName": "Yrsa", + "fullName": "Yrsa Medium", + "postscriptName": "Yrsa-Medium", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "600": { + "familyName": "Yrsa", + "fullName": "Yrsa SemiBold", + "postscriptName": "Yrsa-SemiBold", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "700": { + "familyName": "Yrsa", + "fullName": "Yrsa Bold", + "postscriptName": "Yrsa-Bold", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "regular": { + "familyName": "Yrsa", + "fullName": "Yrsa Regular", + "postscriptName": "Yrsa-Regular", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 643 + } + } + }, + "italic": { + "familyName": "Yrsa", + "fullName": "Yrsa Italic", + "postscriptName": "Yrsa-Italic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 371, + "subsets": { + "latin": { + "xWidthAvg": 371 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "700italic": { + "familyName": "Yrsa", + "fullName": "Yrsa Bold Italic", + "postscriptName": "Yrsa-BoldItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "600italic": { + "familyName": "Yrsa", + "fullName": "Yrsa SemiBold Italic", + "postscriptName": "Yrsa-SemiBoldItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 387, + "subsets": { + "latin": { + "xWidthAvg": 387 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "500italic": { + "familyName": "Yrsa", + "fullName": "Yrsa Medium Italic", + "postscriptName": "Yrsa-MediumItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 379, + "subsets": { + "latin": { + "xWidthAvg": 379 + }, + "thai": { + "xWidthAvg": 645 + } + } + }, + "300italic": { + "familyName": "Yrsa", + "fullName": "Yrsa Light Italic", + "postscriptName": "Yrsa-LightItalic", + "category": "serif", + "capHeight": 568, + "ascent": 728, + "descent": -272, + "lineGap": 218, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 363, + "subsets": { + "latin": { + "xWidthAvg": 363 + }, + "thai": { + "xWidthAvg": 645 + } + } + } + } + }, + "ysabeau": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Regular", + "postscriptName": "Ysabeau-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "100": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Thin", + "postscriptName": "Ysabeau-Thin", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 413, + "subsets": { + "latin": { + "xWidthAvg": 413 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "200": { + "familyName": "Ysabeau", + "fullName": "Ysabeau ExtraLight", + "postscriptName": "Ysabeau-ExtraLight", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 415, + "subsets": { + "latin": { + "xWidthAvg": 415 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "300": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Light", + "postscriptName": "Ysabeau-Light", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 418, + "subsets": { + "latin": { + "xWidthAvg": 418 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "500": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Medium", + "postscriptName": "Ysabeau-Medium", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600": { + "familyName": "Ysabeau", + "fullName": "Ysabeau SemiBold", + "postscriptName": "Ysabeau-SemiBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Bold", + "postscriptName": "Ysabeau-Bold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 427, + "subsets": { + "latin": { + "xWidthAvg": 427 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800": { + "familyName": "Ysabeau", + "fullName": "Ysabeau ExtraBold", + "postscriptName": "Ysabeau-ExtraBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Black", + "postscriptName": "Ysabeau-Black", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Regular", + "postscriptName": "Ysabeau-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Italic", + "postscriptName": "Ysabeau-Italic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 505 + } + } + }, + "900italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Black Italic", + "postscriptName": "Ysabeau-BlackItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "800italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau ExtraBold Italic", + "postscriptName": "Ysabeau-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 520 + } + } + }, + "700italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Bold Italic", + "postscriptName": "Ysabeau-BoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 517 + } + } + }, + "600italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau SemiBold Italic", + "postscriptName": "Ysabeau-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "500italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Medium Italic", + "postscriptName": "Ysabeau-MediumItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 507 + } + } + }, + "300italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Light Italic", + "postscriptName": "Ysabeau-LightItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 397, + "subsets": { + "latin": { + "xWidthAvg": 397 + }, + "thai": { + "xWidthAvg": 502 + } + } + }, + "200italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau ExtraLight Italic", + "postscriptName": "Ysabeau-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "100italic": { + "familyName": "Ysabeau", + "fullName": "Ysabeau Thin Italic", + "postscriptName": "Ysabeau-ThinItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 390, + "subsets": { + "latin": { + "xWidthAvg": 390 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "ysabeauInfant": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Regular", + "postscriptName": "YsabeauInfant-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "100": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Thin", + "postscriptName": "YsabeauInfant-Thin", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 421, + "subsets": { + "latin": { + "xWidthAvg": 421 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "200": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant ExtraLight", + "postscriptName": "YsabeauInfant-ExtraLight", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 424, + "subsets": { + "latin": { + "xWidthAvg": 424 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "300": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Light", + "postscriptName": "YsabeauInfant-Light", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 426, + "subsets": { + "latin": { + "xWidthAvg": 426 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "500": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Medium", + "postscriptName": "YsabeauInfant-Medium", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant SemiBold", + "postscriptName": "YsabeauInfant-SemiBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 432, + "subsets": { + "latin": { + "xWidthAvg": 432 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Bold", + "postscriptName": "YsabeauInfant-Bold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 435, + "subsets": { + "latin": { + "xWidthAvg": 435 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant ExtraBold", + "postscriptName": "YsabeauInfant-ExtraBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Black", + "postscriptName": "YsabeauInfant-Black", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 456, + "subsets": { + "latin": { + "xWidthAvg": 456 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Regular", + "postscriptName": "YsabeauInfant-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Italic", + "postscriptName": "YsabeauInfant-Italic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 505 + } + } + }, + "900italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Black Italic", + "postscriptName": "YsabeauInfant-BlackItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "800italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant ExtraBold Italic", + "postscriptName": "YsabeauInfant-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 429, + "subsets": { + "latin": { + "xWidthAvg": 429 + }, + "thai": { + "xWidthAvg": 520 + } + } + }, + "700italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Bold Italic", + "postscriptName": "YsabeauInfant-BoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 517 + } + } + }, + "600italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant SemiBold Italic", + "postscriptName": "YsabeauInfant-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "500italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Medium Italic", + "postscriptName": "YsabeauInfant-MediumItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 507 + } + } + }, + "300italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Light Italic", + "postscriptName": "YsabeauInfant-LightItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 502 + } + } + }, + "200italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant ExtraLight Italic", + "postscriptName": "YsabeauInfant-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 395, + "subsets": { + "latin": { + "xWidthAvg": 395 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "100italic": { + "familyName": "Ysabeau Infant", + "fullName": "Ysabeau Infant Thin Italic", + "postscriptName": "YsabeauInfant-ThinItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 392, + "subsets": { + "latin": { + "xWidthAvg": 392 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "ysabeauOffice": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Regular", + "postscriptName": "YsabeauOffice-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "100": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Thin", + "postscriptName": "YsabeauOffice-Thin", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 414, + "subsets": { + "latin": { + "xWidthAvg": 414 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "200": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office ExtraLight", + "postscriptName": "YsabeauOffice-ExtraLight", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 416, + "subsets": { + "latin": { + "xWidthAvg": 416 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "300": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Light", + "postscriptName": "YsabeauOffice-Light", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 419, + "subsets": { + "latin": { + "xWidthAvg": 419 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "500": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Medium", + "postscriptName": "YsabeauOffice-Medium", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 422, + "subsets": { + "latin": { + "xWidthAvg": 422 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office SemiBold", + "postscriptName": "YsabeauOffice-SemiBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 425, + "subsets": { + "latin": { + "xWidthAvg": 425 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Bold", + "postscriptName": "YsabeauOffice-Bold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office ExtraBold", + "postscriptName": "YsabeauOffice-ExtraBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Black", + "postscriptName": "YsabeauOffice-Black", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Regular", + "postscriptName": "YsabeauOffice-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 420, + "subsets": { + "latin": { + "xWidthAvg": 420 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Italic", + "postscriptName": "YsabeauOffice-Italic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 401, + "subsets": { + "latin": { + "xWidthAvg": 401 + }, + "thai": { + "xWidthAvg": 505 + } + } + }, + "900italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Black Italic", + "postscriptName": "YsabeauOffice-BlackItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 449, + "subsets": { + "latin": { + "xWidthAvg": 449 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "800italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office ExtraBold Italic", + "postscriptName": "YsabeauOffice-ExtraBoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 520 + } + } + }, + "700italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Bold Italic", + "postscriptName": "YsabeauOffice-BoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 517 + } + } + }, + "600italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office SemiBold Italic", + "postscriptName": "YsabeauOffice-SemiBoldItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 406, + "subsets": { + "latin": { + "xWidthAvg": 406 + }, + "thai": { + "xWidthAvg": 512 + } + } + }, + "500italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Medium Italic", + "postscriptName": "YsabeauOffice-MediumItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 403, + "subsets": { + "latin": { + "xWidthAvg": 403 + }, + "thai": { + "xWidthAvg": 507 + } + } + }, + "300italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Light Italic", + "postscriptName": "YsabeauOffice-LightItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 399, + "subsets": { + "latin": { + "xWidthAvg": 399 + }, + "thai": { + "xWidthAvg": 502 + } + } + }, + "200italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office ExtraLight Italic", + "postscriptName": "YsabeauOffice-ExtraLightItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 396, + "subsets": { + "latin": { + "xWidthAvg": 396 + }, + "thai": { + "xWidthAvg": 498 + } + } + }, + "100italic": { + "familyName": "Ysabeau Office", + "fullName": "Ysabeau Office Thin Italic", + "postscriptName": "YsabeauOffice-ThinItalic", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 393, + "subsets": { + "latin": { + "xWidthAvg": 393 + }, + "thai": { + "xWidthAvg": 494 + } + } + } + } + }, + "ysabeauSC": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Regular", + "postscriptName": "YsabeauSC-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 527 + } + }, + "variants": { + "100": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Thin", + "postscriptName": "YsabeauSC-Thin", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 408, + "xWidthAvg": 463, + "subsets": { + "latin": { + "xWidthAvg": 463 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "200": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC ExtraLight", + "postscriptName": "YsabeauSC-ExtraLight", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 410, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "300": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Light", + "postscriptName": "YsabeauSC-Light", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 413, + "xWidthAvg": 468, + "subsets": { + "latin": { + "xWidthAvg": 468 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "500": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Medium", + "postscriptName": "YsabeauSC-Medium", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 416, + "xWidthAvg": 471, + "subsets": { + "latin": { + "xWidthAvg": 471 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "600": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC SemiBold", + "postscriptName": "YsabeauSC-SemiBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 418, + "xWidthAvg": 473, + "subsets": { + "latin": { + "xWidthAvg": 473 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "700": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Bold", + "postscriptName": "YsabeauSC-Bold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 421, + "xWidthAvg": 476, + "subsets": { + "latin": { + "xWidthAvg": 476 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "800": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC ExtraBold", + "postscriptName": "YsabeauSC-ExtraBold", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 424, + "xWidthAvg": 485, + "subsets": { + "latin": { + "xWidthAvg": 485 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Black", + "postscriptName": "YsabeauSC-Black", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 427, + "xWidthAvg": 495, + "subsets": { + "latin": { + "xWidthAvg": 495 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "regular": { + "familyName": "Ysabeau SC", + "fullName": "Ysabeau SC Regular", + "postscriptName": "YsabeauSC-Regular", + "category": "sans-serif", + "capHeight": 658, + "ascent": 1054, + "descent": -289, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 414, + "xWidthAvg": 469, + "subsets": { + "latin": { + "xWidthAvg": 469 + }, + "thai": { + "xWidthAvg": 527 + } + } + } + } + }, + "yujiBoku": { + "familyName": "Yuji Boku", + "fullName": "Yuji Boku Regular", + "postscriptName": "YujiBoku-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Yuji Boku", + "fullName": "Yuji Boku Regular", + "postscriptName": "YujiBoku-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 512, + "subsets": { + "latin": { + "xWidthAvg": 512 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yujiHentaiganaAkari": { + "familyName": "Yuji Hentaigana Akari", + "fullName": "Yuji Hentaigana Akari Regular", + "postscriptName": "YujiHentaiganaAkari-Regular", + "category": "handwriting", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 626, + "subsets": { + "latin": { + "xWidthAvg": 626 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Yuji Hentaigana Akari", + "fullName": "Yuji Hentaigana Akari Regular", + "postscriptName": "YujiHentaiganaAkari-Regular", + "category": "handwriting", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 626, + "subsets": { + "latin": { + "xWidthAvg": 626 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yujiHentaiganaAkebono": { + "familyName": "Yuji Hentaigana Akebono", + "fullName": "Yuji Hentaigana Akebono Regular", + "postscriptName": "YujiHentaiganaAkebono-Regular", + "category": "handwriting", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 626, + "subsets": { + "latin": { + "xWidthAvg": 626 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Yuji Hentaigana Akebono", + "fullName": "Yuji Hentaigana Akebono Regular", + "postscriptName": "YujiHentaiganaAkebono-Regular", + "category": "handwriting", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 626, + "subsets": { + "latin": { + "xWidthAvg": 626 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yujiMai": { + "familyName": "Yuji Mai", + "fullName": "Yuji Mai Regular", + "postscriptName": "YujiMai-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Yuji Mai", + "fullName": "Yuji Mai Regular", + "postscriptName": "YujiMai-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 534, + "subsets": { + "latin": { + "xWidthAvg": 534 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yujiSyuku": { + "familyName": "Yuji Syuku", + "fullName": "Yuji Syuku Regular", + "postscriptName": "YujiSyuku-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Yuji Syuku", + "fullName": "Yuji Syuku Regular", + "postscriptName": "YujiSyuku-Regular", + "category": "serif", + "capHeight": 761, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 545, + "xWidthAvg": 533, + "subsets": { + "latin": { + "xWidthAvg": 533 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "yuseiMagic": { + "familyName": "Yusei Magic", + "fullName": "Yusei Magic Regular", + "postscriptName": "YuseiMagic-Regular", + "category": "sans-serif", + "capHeight": 760, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Yusei Magic", + "fullName": "Yusei Magic Regular", + "postscriptName": "YuseiMagic-Regular", + "category": "sans-serif", + "capHeight": 760, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 510, + "xWidthAvg": 498, + "subsets": { + "latin": { + "xWidthAvg": 498 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zCOOLKuaiLe": { + "familyName": "ZCOOL KuaiLe", + "fullName": "ZCOOL KuaiLe Regular", + "postscriptName": "ZCOOLKuaiLe-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "ZCOOL KuaiLe", + "fullName": "ZCOOL KuaiLe Regular", + "postscriptName": "ZCOOLKuaiLe-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 512, + "xWidthAvg": 489, + "subsets": { + "latin": { + "xWidthAvg": 489 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "zCOOLQingKeHuangYou": { + "familyName": "ZCOOL QingKe HuangYou", + "fullName": "ZCOOL QingKe HuangYou Regular", + "postscriptName": "ZCOOLQingKeHuangYou-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "ZCOOL QingKe HuangYou", + "fullName": "ZCOOL QingKe HuangYou Regular", + "postscriptName": "ZCOOLQingKeHuangYou-Regular", + "category": "sans-serif", + "capHeight": 710, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 485, + "xWidthAvg": 353, + "subsets": { + "latin": { + "xWidthAvg": 353 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "zCOOLXiaoWei": { + "familyName": "ZCOOL XiaoWei", + "fullName": "ZCOOL XiaoWei Regular", + "postscriptName": "ZCOOLXiaoWei-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 1024 + } + }, + "variants": { + "regular": { + "familyName": "ZCOOL XiaoWei", + "fullName": "ZCOOL XiaoWei Regular", + "postscriptName": "ZCOOLXiaoWei-Regular", + "category": "sans-serif", + "capHeight": 660, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 470, + "xWidthAvg": 428, + "subsets": { + "latin": { + "xWidthAvg": 428 + }, + "thai": { + "xWidthAvg": 1024 + } + } + } + } + }, + "zain": { + "familyName": "Zain", + "fullName": "Zain Regular", + "postscriptName": "Zain-Regular", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 368, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 531 + } + }, + "variants": { + "200": { + "familyName": "Zain", + "fullName": "Zain ExtraLight", + "postscriptName": "Zain-ExtraLight", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 331, + "subsets": { + "latin": { + "xWidthAvg": 331 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "300": { + "familyName": "Zain", + "fullName": "Zain Light", + "postscriptName": "Zain-Light", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 360, + "xWidthAvg": 340, + "subsets": { + "latin": { + "xWidthAvg": 340 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "700": { + "familyName": "Zain", + "fullName": "Zain Bold", + "postscriptName": "Zain-Bold", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 376, + "xWidthAvg": 351, + "subsets": { + "latin": { + "xWidthAvg": 351 + }, + "thai": { + "xWidthAvg": 524 + } + } + }, + "800": { + "familyName": "Zain", + "fullName": "Zain ExtraBold", + "postscriptName": "Zain-ExtraBold", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 382, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 527 + } + } + }, + "900": { + "familyName": "Zain", + "fullName": "Zain Black", + "postscriptName": "Zain-Black", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 386, + "xWidthAvg": 355, + "subsets": { + "latin": { + "xWidthAvg": 355 + }, + "thai": { + "xWidthAvg": 531 + } + } + }, + "regular": { + "familyName": "Zain", + "fullName": "Zain Regular", + "postscriptName": "Zain-Regular", + "category": "sans-serif", + "capHeight": 556, + "ascent": 900, + "descent": -500, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 368, + "xWidthAvg": 348, + "subsets": { + "latin": { + "xWidthAvg": 348 + }, + "thai": { + "xWidthAvg": 531 + } + } + } + } + }, + "zenAntique": { + "familyName": "Zen Antique", + "fullName": "Zen Antique Regular", + "postscriptName": "ZenAntique-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Zen Antique", + "fullName": "Zen Antique Regular", + "postscriptName": "ZenAntique-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zenAntiqueSoft": { + "familyName": "Zen Antique Soft", + "fullName": "Zen Antique Soft Regular", + "postscriptName": "ZenAntiqueSoft-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Zen Antique Soft", + "fullName": "Zen Antique Soft Regular", + "postscriptName": "ZenAntiqueSoft-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zenDots": { + "familyName": "Zen Dots", + "fullName": "Zen Dots Regular", + "postscriptName": "ZenDots-Regular", + "category": "display", + "capHeight": 715, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 625, + "subsets": { + "latin": { + "xWidthAvg": 625 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Zen Dots", + "fullName": "Zen Dots Regular", + "postscriptName": "ZenDots-Regular", + "category": "display", + "capHeight": 715, + "ascent": 930, + "descent": -270, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 515, + "xWidthAvg": 625, + "subsets": { + "latin": { + "xWidthAvg": 625 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "zenKakuGothicAntique": { + "familyName": "Zen Kaku Gothic Antique", + "fullName": "Zen Kaku Gothic Antique Regular", + "postscriptName": "ZenKakuGothicAntique-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "Zen Kaku Gothic Antique", + "fullName": "Zen Kaku Gothic Antique Light", + "postscriptName": "ZenKakuGothicAntique-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Zen Kaku Gothic Antique", + "fullName": "Zen Kaku Gothic Antique Medium", + "postscriptName": "ZenKakuGothicAntique-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Zen Kaku Gothic Antique", + "fullName": "Zen Kaku Gothic Antique Bold", + "postscriptName": "ZenKakuGothicAntique-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Zen Kaku Gothic Antique", + "fullName": "Zen Kaku Gothic Antique Black", + "postscriptName": "ZenKakuGothicAntique-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Zen Kaku Gothic Antique", + "fullName": "Zen Kaku Gothic Antique Regular", + "postscriptName": "ZenKakuGothicAntique-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zenKakuGothicNew": { + "familyName": "Zen Kaku Gothic New", + "fullName": "Zen Kaku Gothic New Regular", + "postscriptName": "ZenKakuGothicNew-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "Zen Kaku Gothic New", + "fullName": "Zen Kaku Gothic New Light", + "postscriptName": "ZenKakuGothicNew-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Zen Kaku Gothic New", + "fullName": "Zen Kaku Gothic New Medium", + "postscriptName": "ZenKakuGothicNew-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Zen Kaku Gothic New", + "fullName": "Zen Kaku Gothic New Bold", + "postscriptName": "ZenKakuGothicNew-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Zen Kaku Gothic New", + "fullName": "Zen Kaku Gothic New Black", + "postscriptName": "ZenKakuGothicNew-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Zen Kaku Gothic New", + "fullName": "Zen Kaku Gothic New Regular", + "postscriptName": "ZenKakuGothicNew-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zenKurenaido": { + "familyName": "Zen Kurenaido", + "fullName": "Zen Kurenaido Regular", + "postscriptName": "ZenKurenaido-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 406, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 600 + } + }, + "variants": { + "regular": { + "familyName": "Zen Kurenaido", + "fullName": "Zen Kurenaido Regular", + "postscriptName": "ZenKurenaido-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 406, + "xWidthAvg": 404, + "subsets": { + "latin": { + "xWidthAvg": 404 + }, + "thai": { + "xWidthAvg": 600 + } + } + } + } + }, + "zenLoop": { + "familyName": "Zen Loop", + "fullName": "Zen Loop Regular", + "postscriptName": "ZenLoop-Regular", + "category": "display", + "capHeight": 690, + "ascent": 850, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 477, + "xWidthAvg": 268, + "subsets": { + "latin": { + "xWidthAvg": 268 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Zen Loop", + "fullName": "Zen Loop Regular", + "postscriptName": "ZenLoop-Regular", + "category": "display", + "capHeight": 690, + "ascent": 850, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 477, + "xWidthAvg": 268, + "subsets": { + "latin": { + "xWidthAvg": 268 + }, + "thai": { + "xWidthAvg": 500 + } + } + }, + "italic": { + "familyName": "Zen Loop", + "fullName": "Zen Loop Italic", + "postscriptName": "ZenLoop-Italic", + "category": "display", + "capHeight": 690, + "ascent": 850, + "descent": -275, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 477, + "xWidthAvg": 270, + "subsets": { + "latin": { + "xWidthAvg": 270 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "zenMaruGothic": { + "familyName": "Zen Maru Gothic", + "fullName": "Zen Maru Gothic Regular", + "postscriptName": "ZenMaruGothic-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "300": { + "familyName": "Zen Maru Gothic", + "fullName": "Zen Maru Gothic Light", + "postscriptName": "ZenMaruGothic-Light", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 478, + "xWidthAvg": 440, + "subsets": { + "latin": { + "xWidthAvg": 440 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "500": { + "familyName": "Zen Maru Gothic", + "fullName": "Zen Maru Gothic Medium", + "postscriptName": "ZenMaruGothic-Medium", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 480, + "xWidthAvg": 445, + "subsets": { + "latin": { + "xWidthAvg": 445 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Zen Maru Gothic", + "fullName": "Zen Maru Gothic Bold", + "postscriptName": "ZenMaruGothic-Bold", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 481, + "xWidthAvg": 447, + "subsets": { + "latin": { + "xWidthAvg": 447 + }, + "thai": { + "xWidthAvg": 851 + } + } + }, + "900": { + "familyName": "Zen Maru Gothic", + "fullName": "Zen Maru Gothic Black", + "postscriptName": "ZenMaruGothic-Black", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 482, + "xWidthAvg": 448, + "subsets": { + "latin": { + "xWidthAvg": 448 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "regular": { + "familyName": "Zen Maru Gothic", + "fullName": "Zen Maru Gothic Regular", + "postscriptName": "ZenMaruGothic-Regular", + "category": "sans-serif", + "capHeight": 700, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 479, + "xWidthAvg": 442, + "subsets": { + "latin": { + "xWidthAvg": 442 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zenOldMincho": { + "familyName": "Zen Old Mincho", + "fullName": "Zen Old Mincho Regular", + "postscriptName": "ZenOldMincho-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "500": { + "familyName": "Zen Old Mincho", + "fullName": "Zen Old Mincho Medium", + "postscriptName": "ZenOldMincho-Medium", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 440, + "xWidthAvg": 450, + "subsets": { + "latin": { + "xWidthAvg": 450 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "600": { + "familyName": "Zen Old Mincho", + "fullName": "Zen Old Mincho SemiBold", + "postscriptName": "ZenOldMincho-SemiBold", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 453, + "xWidthAvg": 465, + "subsets": { + "latin": { + "xWidthAvg": 465 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "700": { + "familyName": "Zen Old Mincho", + "fullName": "Zen Old Mincho Bold", + "postscriptName": "ZenOldMincho-Bold", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 460, + "xWidthAvg": 474, + "subsets": { + "latin": { + "xWidthAvg": 474 + }, + "thai": { + "xWidthAvg": 1000 + } + } + }, + "900": { + "familyName": "Zen Old Mincho", + "fullName": "Zen Old Mincho Black", + "postscriptName": "ZenOldMincho-Black", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 473, + "xWidthAvg": 488, + "subsets": { + "latin": { + "xWidthAvg": 488 + }, + "thai": { + "xWidthAvg": 600 + } + } + }, + "regular": { + "familyName": "Zen Old Mincho", + "fullName": "Zen Old Mincho Regular", + "postscriptName": "ZenOldMincho-Regular", + "category": "serif", + "capHeight": 726, + "ascent": 1160, + "descent": -288, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 430, + "xWidthAvg": 438, + "subsets": { + "latin": { + "xWidthAvg": 438 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zenTokyoZoo": { + "familyName": "Zen Tokyo Zoo", + "fullName": "Zen Tokyo Zoo Regular", + "postscriptName": "ZenTokyoZoo-Regular", + "category": "display", + "capHeight": 804, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 402, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 500 + } + }, + "variants": { + "regular": { + "familyName": "Zen Tokyo Zoo", + "fullName": "Zen Tokyo Zoo Regular", + "postscriptName": "ZenTokyoZoo-Regular", + "category": "display", + "capHeight": 804, + "ascent": 950, + "descent": -250, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 402, + "xWidthAvg": 383, + "subsets": { + "latin": { + "xWidthAvg": 383 + }, + "thai": { + "xWidthAvg": 500 + } + } + } + } + }, + "zeyada": { + "familyName": "Zeyada", + "fullName": "Zeyada", + "postscriptName": "Zeyada", + "category": "handwriting", + "capHeight": 602, + "ascent": 934, + "descent": -680, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 312, + "xWidthAvg": 357, + "subsets": { + "latin": { + "xWidthAvg": 357 + }, + "thai": { + "xWidthAvg": 384 + } + }, + "variants": { + "regular": { + "familyName": "Zeyada", + "fullName": "Zeyada", + "postscriptName": "Zeyada", + "category": "handwriting", + "capHeight": 602, + "ascent": 934, + "descent": -680, + "lineGap": 0, + "unitsPerEm": 1024, + "xHeight": 312, + "xWidthAvg": 357, + "subsets": { + "latin": { + "xWidthAvg": 357 + }, + "thai": { + "xWidthAvg": 384 + } + } + } + } + }, + "zhiMangXing": { + "familyName": "Zhi Mang Xing", + "fullName": "Zhi Mang Xing Regular", + "postscriptName": "ZhiMangXing-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 1000 + } + }, + "variants": { + "regular": { + "familyName": "Zhi Mang Xing", + "fullName": "Zhi Mang Xing Regular", + "postscriptName": "ZhiMangXing-Regular", + "category": "handwriting", + "capHeight": 750, + "ascent": 880, + "descent": -120, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 496, + "xWidthAvg": 311, + "subsets": { + "latin": { + "xWidthAvg": 311 + }, + "thai": { + "xWidthAvg": 1000 + } + } + } + } + }, + "zillaSlab": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab", + "postscriptName": "ZillaSlab-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 445, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 712 + } + }, + "variants": { + "300": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Light", + "postscriptName": "ZillaSlab-Light", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 444, + "xWidthAvg": 431, + "subsets": { + "latin": { + "xWidthAvg": 431 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "500": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Medium", + "postscriptName": "ZillaSlab-Medium", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 447, + "xWidthAvg": 436, + "subsets": { + "latin": { + "xWidthAvg": 436 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "600": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab SemiBold", + "postscriptName": "ZillaSlab-SemiBold", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 449, + "xWidthAvg": 439, + "subsets": { + "latin": { + "xWidthAvg": 439 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "700": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Bold", + "postscriptName": "ZillaSlab-Bold", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 451, + "xWidthAvg": 443, + "subsets": { + "latin": { + "xWidthAvg": 443 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "regular": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab", + "postscriptName": "ZillaSlab-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 445, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "italic": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Italic", + "postscriptName": "ZillaSlab-Italic", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 407, + "subsets": { + "latin": { + "xWidthAvg": 407 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "700italic": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Bold Italic", + "postscriptName": "ZillaSlab-BoldItalic", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 412, + "subsets": { + "latin": { + "xWidthAvg": 412 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "600italic": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab SemiBold Italic", + "postscriptName": "ZillaSlab-SemiBoldItalic", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 410, + "subsets": { + "latin": { + "xWidthAvg": 410 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "500italic": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Medium Italic", + "postscriptName": "ZillaSlab-MediumItalic", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 408, + "subsets": { + "latin": { + "xWidthAvg": 408 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "300italic": { + "familyName": "Zilla Slab", + "fullName": "Zilla Slab Light Italic", + "postscriptName": "ZillaSlab-LightItalic", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 441, + "xWidthAvg": 405, + "subsets": { + "latin": { + "xWidthAvg": 405 + }, + "thai": { + "xWidthAvg": 712 + } + } + } + } + }, + "zillaSlabHighlight": { + "familyName": "Zilla Slab Highlight", + "fullName": "Zilla Slab Highlight", + "postscriptName": "ZillaSlabHighlight-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 445, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 528 + } + }, + "variants": { + "700": { + "familyName": "Zilla Slab Highlight", + "fullName": "Zilla Slab Highlight Bold", + "postscriptName": "ZillaSlabHighlight-Bold", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 451, + "xWidthAvg": 441, + "subsets": { + "latin": { + "xWidthAvg": 441 + }, + "thai": { + "xWidthAvg": 712 + } + } + }, + "regular": { + "familyName": "Zilla Slab Highlight", + "fullName": "Zilla Slab Highlight", + "postscriptName": "ZillaSlabHighlight-Regular", + "category": "serif", + "capHeight": 650, + "ascent": 944, + "descent": -256, + "lineGap": 0, + "unitsPerEm": 1000, + "xHeight": 445, + "xWidthAvg": 434, + "subsets": { + "latin": { + "xWidthAvg": 434 + }, + "thai": { + "xWidthAvg": 528 + } + } + } + } + } +} \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/ci-info.js b/cli/app/node_modules/next/dist/server/ci-info.js new file mode 100644 index 00000000000..6d853557feb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/ci-info.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + hasNextSupport: null, + isCI: null, + name: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + hasNextSupport: function() { + return hasNextSupport; + }, + isCI: function() { + return isCI; + }, + name: function() { + return name; + } +}); +const _ciinfo = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/ci-info")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const { isCI: _isCI, name: _name } = _ciinfo.default; +const isZeitNow = !!process.env.NOW_BUILDER; +const envStack = process.env.STACK; +const isHeroku = typeof envStack === 'string' && envStack.toLowerCase().includes('heroku'); +const isCI = isZeitNow || isHeroku || _isCI; +const name = isZeitNow ? 'ZEIT Now' : isHeroku ? 'Heroku' : _name; +const hasNextSupport = Boolean(isZeitNow); + +//# sourceMappingURL=ci-info.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/client-component-renderer-logger.js b/cli/app/node_modules/next/dist/server/client-component-renderer-logger.js new file mode 100644 index 00000000000..9cf08ad4ce4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/client-component-renderer-logger.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getClientComponentLoaderMetrics: null, + wrapClientComponentLoader: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getClientComponentLoaderMetrics: function() { + return getClientComponentLoaderMetrics; + }, + wrapClientComponentLoader: function() { + return wrapClientComponentLoader; + } +}); +// Combined load times for loading client components +let clientComponentLoadStart = 0; +let clientComponentLoadTimes = 0; +let clientComponentLoadCount = 0; +function wrapClientComponentLoader(ComponentMod) { + if (!('performance' in globalThis)) { + return ComponentMod.__next_app__; + } + return { + require: (...args)=>{ + const startTime = performance.now(); + if (clientComponentLoadStart === 0) { + clientComponentLoadStart = startTime; + } + try { + clientComponentLoadCount += 1; + return ComponentMod.__next_app__.require(...args); + } finally{ + clientComponentLoadTimes += performance.now() - startTime; + } + }, + loadChunk: (...args)=>{ + const startTime = performance.now(); + const result = ComponentMod.__next_app__.loadChunk(...args); + // Avoid wrapping `loadChunk`'s result in an extra promise in case something like React depends on its identity. + // We only need to know when it's settled. + result.finally(()=>{ + clientComponentLoadTimes += performance.now() - startTime; + }); + return result; + } + }; +} +function getClientComponentLoaderMetrics(options = {}) { + const metrics = clientComponentLoadStart === 0 ? undefined : { + clientComponentLoadStart, + clientComponentLoadTimes, + clientComponentLoadCount + }; + if (options.reset) { + clientComponentLoadStart = 0; + clientComponentLoadTimes = 0; + clientComponentLoadCount = 0; + } + return metrics; +} + +//# sourceMappingURL=client-component-renderer-logger.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/config-schema.js b/cli/app/node_modules/next/dist/server/config-schema.js new file mode 100644 index 00000000000..a08bda9940d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/config-schema.js @@ -0,0 +1,717 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + configSchema: null, + experimentalSchema: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + configSchema: function() { + return configSchema; + }, + experimentalSchema: function() { + return experimentalSchema; + } +}); +const _imageconfig = require("../shared/lib/image-config"); +const _zod = require("next/dist/compiled/zod"); +const _configshared = require("./config-shared"); +const _nexttest = require("../cli/next-test"); +// A custom zod schema for the SizeLimit type +const zSizeLimit = _zod.z.custom((val)=>{ + if (typeof val === 'number' || typeof val === 'string') { + return true; + } + return false; +}); +const zExportMap = _zod.z.record(_zod.z.string(), _zod.z.object({ + page: _zod.z.string(), + query: _zod.z.any(), + // private optional properties + _fallbackRouteParams: _zod.z.array(_zod.z.any()).optional(), + _isAppDir: _zod.z.boolean().optional(), + _isDynamicError: _zod.z.boolean().optional(), + _isRoutePPREnabled: _zod.z.boolean().optional(), + _allowEmptyStaticShell: _zod.z.boolean().optional() +})); +const zRouteHas = _zod.z.union([ + _zod.z.object({ + type: _zod.z.enum([ + 'header', + 'query', + 'cookie' + ]), + key: _zod.z.string(), + value: _zod.z.string().optional() + }), + _zod.z.object({ + type: _zod.z.literal('host'), + key: _zod.z.undefined().optional(), + value: _zod.z.string() + }) +]); +const zRewrite = _zod.z.object({ + source: _zod.z.string(), + destination: _zod.z.string(), + basePath: _zod.z.literal(false).optional(), + locale: _zod.z.literal(false).optional(), + has: _zod.z.array(zRouteHas).optional(), + missing: _zod.z.array(zRouteHas).optional(), + internal: _zod.z.boolean().optional() +}); +const zRedirect = _zod.z.object({ + source: _zod.z.string(), + destination: _zod.z.string(), + basePath: _zod.z.literal(false).optional(), + locale: _zod.z.literal(false).optional(), + has: _zod.z.array(zRouteHas).optional(), + missing: _zod.z.array(zRouteHas).optional(), + internal: _zod.z.boolean().optional() +}).and(_zod.z.union([ + _zod.z.object({ + statusCode: _zod.z.never().optional(), + permanent: _zod.z.boolean() + }), + _zod.z.object({ + statusCode: _zod.z.number(), + permanent: _zod.z.never().optional() + }) +])); +const zHeader = _zod.z.object({ + source: _zod.z.string(), + basePath: _zod.z.literal(false).optional(), + locale: _zod.z.literal(false).optional(), + headers: _zod.z.array(_zod.z.object({ + key: _zod.z.string(), + value: _zod.z.string() + })), + has: _zod.z.array(zRouteHas).optional(), + missing: _zod.z.array(zRouteHas).optional(), + internal: _zod.z.boolean().optional() +}); +const zTurbopackLoaderItem = _zod.z.union([ + _zod.z.string(), + _zod.z.strictObject({ + loader: _zod.z.string(), + // Any JSON value can be used as turbo loader options, so use z.any() here + options: _zod.z.record(_zod.z.string(), _zod.z.any()).optional() + }) +]); +const zTurbopackLoaderBuiltinCondition = _zod.z.union([ + _zod.z.literal('browser'), + _zod.z.literal('foreign'), + _zod.z.literal('development'), + _zod.z.literal('production'), + _zod.z.literal('node'), + _zod.z.literal('edge-light') +]); +const zTurbopackCondition = _zod.z.union([ + _zod.z.strictObject({ + all: _zod.z.lazy(()=>_zod.z.array(zTurbopackCondition)) + }), + _zod.z.strictObject({ + any: _zod.z.lazy(()=>_zod.z.array(zTurbopackCondition)) + }), + _zod.z.strictObject({ + not: _zod.z.lazy(()=>zTurbopackCondition) + }), + zTurbopackLoaderBuiltinCondition, + _zod.z.strictObject({ + path: _zod.z.union([ + _zod.z.string(), + _zod.z.instanceof(RegExp) + ]).optional(), + content: _zod.z.instanceof(RegExp).optional(), + query: _zod.z.union([ + _zod.z.string(), + _zod.z.instanceof(RegExp) + ]).optional(), + contentType: _zod.z.union([ + _zod.z.string(), + _zod.z.instanceof(RegExp) + ]).optional() + }) +]); +const zTurbopackModuleType = _zod.z.enum([ + 'asset', + 'ecmascript', + 'typescript', + 'css', + 'css-module', + 'wasm', + 'raw', + 'node', + 'bytes' +]); +const zTurbopackRuleConfigItem = _zod.z.strictObject({ + loaders: _zod.z.array(zTurbopackLoaderItem).optional(), + as: _zod.z.string().optional(), + condition: zTurbopackCondition.optional(), + type: zTurbopackModuleType.optional() +}); +const zTurbopackRuleConfigCollection = _zod.z.union([ + zTurbopackRuleConfigItem, + _zod.z.array(_zod.z.union([ + zTurbopackLoaderItem, + zTurbopackRuleConfigItem + ])) +]); +const zTurbopackConfig = _zod.z.strictObject({ + rules: _zod.z.record(_zod.z.string(), zTurbopackRuleConfigCollection).optional(), + resolveAlias: _zod.z.record(_zod.z.string(), _zod.z.union([ + _zod.z.string(), + _zod.z.array(_zod.z.string()), + _zod.z.record(_zod.z.string(), _zod.z.union([ + _zod.z.string(), + _zod.z.array(_zod.z.string()) + ])) + ])).optional(), + resolveExtensions: _zod.z.array(_zod.z.string()).optional(), + root: _zod.z.string().optional(), + debugIds: _zod.z.boolean().optional(), + ignoreIssue: _zod.z.array(_zod.z.object({ + path: _zod.z.union([ + _zod.z.string(), + _zod.z.instanceof(RegExp) + ]), + title: _zod.z.union([ + _zod.z.string(), + _zod.z.instanceof(RegExp) + ]).optional(), + description: _zod.z.union([ + _zod.z.string(), + _zod.z.instanceof(RegExp) + ]).optional() + })).optional() +}); +const experimentalSchema = { + useSkewCookie: _zod.z.boolean().optional(), + after: _zod.z.boolean().optional(), + appNavFailHandling: _zod.z.boolean().optional(), + appNewScrollHandler: _zod.z.boolean().optional(), + preloadEntriesOnStart: _zod.z.boolean().optional(), + allowedRevalidateHeaderKeys: _zod.z.array(_zod.z.string()).optional(), + staleTimes: _zod.z.object({ + dynamic: _zod.z.number().optional(), + static: _zod.z.number().gte(30).optional() + }).optional(), + cacheLife: _zod.z.record(_zod.z.object({ + stale: _zod.z.number().optional(), + revalidate: _zod.z.number().optional(), + expire: _zod.z.number().optional() + })).optional(), + cacheHandlers: _zod.z.record(_zod.z.string(), _zod.z.string().optional()).optional(), + clientRouterFilter: _zod.z.boolean().optional(), + clientRouterFilterRedirects: _zod.z.boolean().optional(), + clientRouterFilterAllowedRate: _zod.z.number().optional(), + cpus: _zod.z.number().optional(), + memoryBasedWorkersCount: _zod.z.boolean().optional(), + craCompat: _zod.z.boolean().optional(), + caseSensitiveRoutes: _zod.z.boolean().optional(), + clientParamParsingOrigins: _zod.z.array(_zod.z.string()).optional(), + cachedNavigations: _zod.z.boolean().optional(), + partialFallbacks: _zod.z.boolean().optional(), + dynamicOnHover: _zod.z.boolean().optional(), + optimisticRouting: _zod.z.boolean().optional(), + varyParams: _zod.z.boolean().optional(), + prefetchInlining: _zod.z.union([ + _zod.z.boolean(), + _zod.z.object({ + maxSize: _zod.z.number().optional(), + maxBundleSize: _zod.z.number().optional() + }) + ]).optional(), + disableOptimizedLoading: _zod.z.boolean().optional(), + disablePostcssPresetEnv: _zod.z.boolean().optional(), + cacheComponents: _zod.z.boolean().optional(), + inlineCss: _zod.z.boolean().optional(), + esmExternals: _zod.z.union([ + _zod.z.boolean(), + _zod.z.literal('loose') + ]).optional(), + serverActions: _zod.z.object({ + bodySizeLimit: zSizeLimit.optional(), + allowedOrigins: _zod.z.array(_zod.z.string()).optional() + }).optional(), + maxPostponedStateSize: zSizeLimit.optional(), + // The original type was Record + extensionAlias: _zod.z.record(_zod.z.string(), _zod.z.any()).optional(), + externalDir: _zod.z.boolean().optional(), + externalMiddlewareRewritesResolve: _zod.z.boolean().optional(), + externalProxyRewritesResolve: _zod.z.boolean().optional(), + exposeTestingApiInProductionBuild: _zod.z.boolean().optional(), + instantNavigationDevToolsToggle: _zod.z.boolean().optional(), + fallbackNodePolyfills: _zod.z.literal(false).optional(), + fetchCacheKeyPrefix: _zod.z.string().optional(), + forceSwcTransforms: _zod.z.boolean().optional(), + fullySpecified: _zod.z.boolean().optional(), + gzipSize: _zod.z.boolean().optional(), + imgOptConcurrency: _zod.z.number().int().optional().nullable(), + imgOptTimeoutInSeconds: _zod.z.number().int().optional(), + imgOptMaxInputPixels: _zod.z.number().int().optional(), + imgOptSequentialRead: _zod.z.boolean().optional().nullable(), + imgOptSkipMetadata: _zod.z.boolean().optional().nullable(), + isrFlushToDisk: _zod.z.boolean().optional(), + largePageDataBytes: _zod.z.number().optional(), + linkNoTouchStart: _zod.z.boolean().optional(), + manualClientBasePath: _zod.z.boolean().optional(), + middlewarePrefetch: _zod.z.enum([ + 'strict', + 'flexible' + ]).optional(), + proxyPrefetch: _zod.z.enum([ + 'strict', + 'flexible' + ]).optional(), + middlewareClientMaxBodySize: zSizeLimit.optional(), + proxyClientMaxBodySize: zSizeLimit.optional(), + multiZoneDraftMode: _zod.z.boolean().optional(), + cssChunking: _zod.z.union([ + _zod.z.boolean(), + _zod.z.literal('strict') + ]).optional(), + nextScriptWorkers: _zod.z.boolean().optional(), + // The critter option is unknown, use z.any() here + optimizeCss: _zod.z.union([ + _zod.z.boolean(), + _zod.z.any() + ]).optional(), + optimisticClientCache: _zod.z.boolean().optional(), + parallelServerCompiles: _zod.z.boolean().optional(), + parallelServerBuildTraces: _zod.z.boolean().optional(), + ppr: _zod.z.union([ + _zod.z.boolean(), + _zod.z.literal('incremental') + ]).readonly().optional(), + taint: _zod.z.boolean().optional(), + prerenderEarlyExit: _zod.z.boolean().optional(), + proxyTimeout: _zod.z.number().gte(0).optional(), + rootParams: _zod.z.boolean().optional(), + mcpServer: _zod.z.boolean().optional(), + removeUncaughtErrorAndRejectionListeners: _zod.z.boolean().optional(), + validateRSCRequestHeaders: _zod.z.boolean().optional(), + scrollRestoration: _zod.z.boolean().optional(), + sri: _zod.z.object({ + algorithm: _zod.z.enum([ + 'sha256', + 'sha384', + 'sha512' + ]).optional() + }).optional(), + swcPlugins: _zod.z// The specific swc plugin's option is unknown, use z.any() here + .array(_zod.z.tuple([ + _zod.z.string(), + _zod.z.record(_zod.z.string(), _zod.z.any()) + ])).optional(), + swcTraceProfiling: _zod.z.boolean().optional(), + // NonNullable['buildHttp'] + urlImports: _zod.z.any().optional(), + viewTransition: _zod.z.boolean().optional(), + workerThreads: _zod.z.boolean().optional(), + webVitalsAttribution: _zod.z.array(_zod.z.union([ + _zod.z.literal('CLS'), + _zod.z.literal('FCP'), + _zod.z.literal('FID'), + _zod.z.literal('INP'), + _zod.z.literal('LCP'), + _zod.z.literal('TTFB') + ])).optional(), + // This is partial set of mdx-rs transform options we support, aligned + // with next_core::next_config::MdxRsOptions. Ensure both types are kept in sync. + mdxRs: _zod.z.union([ + _zod.z.boolean(), + _zod.z.object({ + development: _zod.z.boolean().optional(), + jsxRuntime: _zod.z.string().optional(), + jsxImportSource: _zod.z.string().optional(), + providerImportSource: _zod.z.string().optional(), + mdxType: _zod.z.enum([ + 'gfm', + 'commonmark' + ]).optional() + }) + ]).optional(), + transitionIndicator: _zod.z.boolean().optional(), + gestureTransition: _zod.z.boolean().optional(), + typedRoutes: _zod.z.boolean().optional(), + webpackBuildWorker: _zod.z.boolean().optional(), + webpackMemoryOptimizations: _zod.z.boolean().optional(), + turbopackMemoryLimit: _zod.z.number().optional(), + turbopackPluginRuntimeStrategy: _zod.z.enum([ + 'workerThreads', + 'childProcesses' + ]).optional(), + turbopackMinify: _zod.z.boolean().optional(), + turbopackFileSystemCacheForDev: _zod.z.boolean().optional(), + turbopackFileSystemCacheForBuild: _zod.z.boolean().optional(), + turbopackSourceMaps: _zod.z.boolean().optional(), + turbopackInputSourceMaps: _zod.z.boolean().optional(), + turbopackTreeShaking: _zod.z.boolean().optional(), + turbopackRemoveUnusedImports: _zod.z.boolean().optional(), + turbopackRemoveUnusedExports: _zod.z.boolean().optional(), + turbopackScopeHoisting: _zod.z.boolean().optional(), + turbopackClientSideNestedAsyncChunking: _zod.z.boolean().optional(), + turbopackServerSideNestedAsyncChunking: _zod.z.boolean().optional(), + turbopackImportTypeBytes: _zod.z.boolean().optional(), + turbopackImportTypeText: _zod.z.boolean().optional(), + turbopackUseBuiltinBabel: _zod.z.boolean().optional(), + turbopackUseBuiltinSass: _zod.z.boolean().optional(), + turbopackModuleIds: _zod.z.enum([ + 'named', + 'deterministic' + ]).optional(), + turbopackInferModuleSideEffects: _zod.z.boolean().optional(), + optimizePackageImports: _zod.z.array(_zod.z.string()).optional(), + optimizeServerReact: _zod.z.boolean().optional(), + strictRouteTypes: _zod.z.boolean().optional(), + clientTraceMetadata: _zod.z.array(_zod.z.string()).optional(), + serverMinification: _zod.z.boolean().optional(), + serverSourceMaps: _zod.z.boolean().optional(), + useWasmBinary: _zod.z.boolean().optional(), + useLightningcss: _zod.z.boolean().optional(), + lightningCssFeatures: _zod.z.object({ + include: _zod.z.array(_zod.z.enum(_configshared.LIGHTNINGCSS_FEATURE_NAMES)).optional(), + exclude: _zod.z.array(_zod.z.enum(_configshared.LIGHTNINGCSS_FEATURE_NAMES)).optional() + }).optional(), + testProxy: _zod.z.boolean().optional(), + defaultTestRunner: _zod.z.enum(_nexttest.SUPPORTED_TEST_RUNNERS_LIST).optional(), + allowDevelopmentBuild: _zod.z.literal(true).optional(), + reactDebugChannel: _zod.z.boolean().optional(), + staticGenerationRetryCount: _zod.z.number().int().optional(), + staticGenerationMaxConcurrency: _zod.z.number().int().optional(), + staticGenerationMinPagesPerWorker: _zod.z.number().int().optional(), + typedEnv: _zod.z.boolean().optional(), + serverComponentsHmrCache: _zod.z.boolean().optional(), + authInterrupts: _zod.z.boolean().optional(), + useCache: _zod.z.boolean().optional(), + slowModuleDetection: _zod.z.object({ + buildTimeThresholdMs: _zod.z.number().int() + }).optional(), + globalNotFound: _zod.z.boolean().optional(), + browserDebugInfoInTerminal: _zod.z.union([ + _zod.z.boolean(), + _zod.z.enum([ + 'error', + 'warn', + 'verbose' + ]), + _zod.z.object({ + level: _zod.z.enum([ + 'error', + 'warn', + 'verbose' + ]).optional(), + depthLimit: _zod.z.number().int().positive().optional(), + edgeLimit: _zod.z.number().int().positive().optional(), + showSourceLocation: _zod.z.boolean().optional() + }) + ]).optional(), + lockDistDir: _zod.z.boolean().optional(), + hideLogsAfterAbort: _zod.z.boolean().optional(), + runtimeServerDeploymentId: _zod.z.boolean().optional(), + immutableAssetToken: _zod.z.string().optional(), + deferredEntries: _zod.z.array(_zod.z.string()).optional(), + onBeforeDeferredEntries: _zod.z.function().returns(_zod.z.promise(_zod.z.void())).optional(), + reportSystemEnvInlining: _zod.z.enum([ + 'warn', + 'error' + ]).optional() +}; +const configSchema = _zod.z.lazy(()=>_zod.z.strictObject({ + adapterPath: _zod.z.string().optional(), + allowedDevOrigins: _zod.z.array(_zod.z.string()).optional(), + assetPrefix: _zod.z.string().optional(), + basePath: _zod.z.string().optional(), + bundlePagesRouterDependencies: _zod.z.boolean().optional(), + cacheComponents: _zod.z.boolean().optional(), + cacheHandler: _zod.z.string().min(1).optional(), + cacheHandlers: _zod.z.record(_zod.z.string(), _zod.z.string().optional()).optional(), + cacheLife: _zod.z.record(_zod.z.object({ + stale: _zod.z.number().optional(), + revalidate: _zod.z.number().optional(), + expire: _zod.z.number().optional() + })).optional(), + cacheMaxMemorySize: _zod.z.number().optional(), + cleanDistDir: _zod.z.boolean().optional(), + compiler: _zod.z.strictObject({ + emotion: _zod.z.union([ + _zod.z.boolean(), + _zod.z.object({ + sourceMap: _zod.z.boolean().optional(), + autoLabel: _zod.z.union([ + _zod.z.literal('always'), + _zod.z.literal('dev-only'), + _zod.z.literal('never') + ]).optional(), + labelFormat: _zod.z.string().min(1).optional(), + importMap: _zod.z.record(_zod.z.string(), _zod.z.record(_zod.z.string(), _zod.z.object({ + canonicalImport: _zod.z.tuple([ + _zod.z.string(), + _zod.z.string() + ]).optional(), + styledBaseImport: _zod.z.tuple([ + _zod.z.string(), + _zod.z.string() + ]).optional() + }))).optional() + }) + ]).optional(), + reactRemoveProperties: _zod.z.union([ + _zod.z.boolean().optional(), + _zod.z.object({ + properties: _zod.z.array(_zod.z.string()).optional() + }) + ]).optional(), + relay: _zod.z.object({ + src: _zod.z.string(), + artifactDirectory: _zod.z.string().optional(), + language: _zod.z.enum([ + 'javascript', + 'typescript', + 'flow' + ]).optional(), + eagerEsModules: _zod.z.boolean().optional() + }).optional(), + removeConsole: _zod.z.union([ + _zod.z.boolean().optional(), + _zod.z.object({ + exclude: _zod.z.array(_zod.z.string()).min(1).optional() + }) + ]).optional(), + styledComponents: _zod.z.union([ + _zod.z.boolean().optional(), + _zod.z.object({ + displayName: _zod.z.boolean().optional(), + topLevelImportPaths: _zod.z.array(_zod.z.string()).optional(), + ssr: _zod.z.boolean().optional(), + fileName: _zod.z.boolean().optional(), + meaninglessFileNames: _zod.z.array(_zod.z.string()).optional(), + minify: _zod.z.boolean().optional(), + transpileTemplateLiterals: _zod.z.boolean().optional(), + namespace: _zod.z.string().min(1).optional(), + pure: _zod.z.boolean().optional(), + cssProp: _zod.z.boolean().optional() + }) + ]), + styledJsx: _zod.z.union([ + _zod.z.boolean().optional(), + _zod.z.object({ + useLightningcss: _zod.z.boolean().optional() + }) + ]), + define: _zod.z.record(_zod.z.string(), _zod.z.string()).optional(), + defineServer: _zod.z.record(_zod.z.string(), _zod.z.string()).optional(), + runAfterProductionCompile: _zod.z.function().returns(_zod.z.promise(_zod.z.void())).optional() + }).optional(), + compress: _zod.z.boolean().optional(), + configOrigin: _zod.z.string().optional(), + crossOrigin: _zod.z.union([ + _zod.z.literal('anonymous'), + _zod.z.literal('use-credentials') + ]).optional(), + deploymentId: _zod.z.string().optional(), + devIndicators: _zod.z.union([ + _zod.z.object({ + position: _zod.z.union([ + _zod.z.literal('bottom-left'), + _zod.z.literal('bottom-right'), + _zod.z.literal('top-left'), + _zod.z.literal('top-right') + ]).optional() + }), + _zod.z.literal(false) + ]).optional(), + distDir: _zod.z.string().min(1).optional(), + env: _zod.z.record(_zod.z.string(), _zod.z.union([ + _zod.z.string(), + _zod.z.undefined() + ])).optional(), + enablePrerenderSourceMaps: _zod.z.boolean().optional(), + excludeDefaultMomentLocales: _zod.z.boolean().optional(), + experimental: _zod.z.strictObject(experimentalSchema).optional(), + exportPathMap: _zod.z.function().args(zExportMap, _zod.z.object({ + dev: _zod.z.boolean(), + dir: _zod.z.string(), + outDir: _zod.z.string().nullable(), + distDir: _zod.z.string(), + buildId: _zod.z.string() + })).returns(_zod.z.union([ + zExportMap, + _zod.z.promise(zExportMap) + ])).optional(), + generateBuildId: _zod.z.function().args().returns(_zod.z.union([ + _zod.z.string(), + _zod.z.null(), + _zod.z.promise(_zod.z.union([ + _zod.z.string(), + _zod.z.null() + ])) + ])).optional(), + generateEtags: _zod.z.boolean().optional(), + headers: _zod.z.function().args().returns(_zod.z.promise(_zod.z.array(zHeader))).optional(), + htmlLimitedBots: _zod.z.instanceof(RegExp).optional(), + httpAgentOptions: _zod.z.strictObject({ + keepAlive: _zod.z.boolean().optional() + }).optional(), + i18n: _zod.z.strictObject({ + defaultLocale: _zod.z.string().min(1), + domains: _zod.z.array(_zod.z.strictObject({ + defaultLocale: _zod.z.string().min(1), + domain: _zod.z.string().min(1), + http: _zod.z.literal(true).optional(), + locales: _zod.z.array(_zod.z.string().min(1)).optional() + })).optional(), + localeDetection: _zod.z.literal(false).optional(), + locales: _zod.z.array(_zod.z.string().min(1)) + }).nullable().optional(), + images: _zod.z.strictObject({ + localPatterns: _zod.z.array(_zod.z.strictObject({ + pathname: _zod.z.string().optional(), + search: _zod.z.string().optional() + })).max(25).optional(), + remotePatterns: _zod.z.array(_zod.z.union([ + _zod.z.instanceof(URL), + _zod.z.strictObject({ + hostname: _zod.z.string(), + pathname: _zod.z.string().optional(), + port: _zod.z.string().max(5).optional(), + protocol: _zod.z.enum([ + 'http', + 'https' + ]).optional(), + search: _zod.z.string().optional() + }) + ])).max(50).optional(), + unoptimized: _zod.z.boolean().optional(), + customCacheHandler: _zod.z.boolean().optional(), + contentSecurityPolicy: _zod.z.string().optional(), + contentDispositionType: _zod.z.enum([ + 'inline', + 'attachment' + ]).optional(), + dangerouslyAllowSVG: _zod.z.boolean().optional(), + dangerouslyAllowLocalIP: _zod.z.boolean().optional(), + deviceSizes: _zod.z.array(_zod.z.number().int().gte(1).lte(10000)).max(25).optional(), + disableStaticImages: _zod.z.boolean().optional(), + domains: _zod.z.array(_zod.z.string()).max(50).optional(), + formats: _zod.z.array(_zod.z.enum([ + 'image/avif', + 'image/webp' + ])).max(4).optional(), + imageSizes: _zod.z.array(_zod.z.number().int().gte(1).lte(10000)).min(0).max(25).optional(), + loader: _zod.z.enum(_imageconfig.VALID_LOADERS).optional(), + loaderFile: _zod.z.string().optional(), + maximumDiskCacheSize: _zod.z.number().int().min(0).optional(), + maximumRedirects: _zod.z.number().int().min(0).max(20).optional(), + maximumResponseBody: _zod.z.number().int().min(1).max(Number.MAX_SAFE_INTEGER).optional(), + minimumCacheTTL: _zod.z.number().int().gte(0).optional(), + path: _zod.z.string().optional(), + qualities: _zod.z.array(_zod.z.number().int().gte(1).lte(100)).min(1).max(20).optional() + }).optional(), + logging: _zod.z.union([ + _zod.z.object({ + fetches: _zod.z.object({ + fullUrl: _zod.z.boolean().optional(), + hmrRefreshes: _zod.z.boolean().optional() + }).optional(), + incomingRequests: _zod.z.union([ + _zod.z.boolean(), + _zod.z.object({ + ignore: _zod.z.array(_zod.z.instanceof(RegExp)) + }) + ]).optional(), + serverFunctions: _zod.z.boolean().optional(), + browserToTerminal: _zod.z.union([ + _zod.z.boolean(), + _zod.z.enum([ + 'error', + 'warn' + ]) + ]).optional() + }), + _zod.z.literal(false) + ]).optional(), + modularizeImports: _zod.z.record(_zod.z.string(), _zod.z.object({ + transform: _zod.z.union([ + _zod.z.string(), + _zod.z.record(_zod.z.string(), _zod.z.string()) + ]), + preventFullImport: _zod.z.boolean().optional(), + skipDefaultConversion: _zod.z.boolean().optional() + })).optional(), + onDemandEntries: _zod.z.strictObject({ + maxInactiveAge: _zod.z.number().optional(), + pagesBufferLength: _zod.z.number().optional() + }).optional(), + output: _zod.z.enum([ + 'standalone', + 'export' + ]).optional(), + outputFileTracingRoot: _zod.z.string().optional(), + outputFileTracingExcludes: _zod.z.record(_zod.z.string(), _zod.z.array(_zod.z.string())).optional(), + outputFileTracingIncludes: _zod.z.record(_zod.z.string(), _zod.z.array(_zod.z.string())).optional(), + pageExtensions: _zod.z.array(_zod.z.string()).min(1).optional(), + poweredByHeader: _zod.z.boolean().optional(), + productionBrowserSourceMaps: _zod.z.boolean().optional(), + reactCompiler: _zod.z.union([ + _zod.z.boolean(), + _zod.z.object({ + compilationMode: _zod.z.enum([ + 'infer', + 'annotation', + 'all' + ]).optional(), + panicThreshold: _zod.z.enum([ + 'none', + 'critical_errors', + 'all_errors' + ]).optional() + }).optional() + ]), + reactProductionProfiling: _zod.z.boolean().optional(), + reactStrictMode: _zod.z.boolean().nullable().optional(), + reactMaxHeadersLength: _zod.z.number().nonnegative().int().optional(), + redirects: _zod.z.function().args().returns(_zod.z.promise(_zod.z.array(zRedirect))).optional(), + rewrites: _zod.z.function().args().returns(_zod.z.promise(_zod.z.union([ + _zod.z.array(zRewrite), + _zod.z.object({ + beforeFiles: _zod.z.array(zRewrite), + afterFiles: _zod.z.array(zRewrite), + fallback: _zod.z.array(zRewrite) + }) + ]))).optional(), + // sassOptions properties are unknown besides implementation, use z.any() here + sassOptions: _zod.z.object({ + implementation: _zod.z.string().optional() + }).catchall(_zod.z.any()).optional(), + serverExternalPackages: _zod.z.array(_zod.z.string()).optional(), + skipMiddlewareUrlNormalize: _zod.z.boolean().optional(), + skipProxyUrlNormalize: _zod.z.boolean().optional(), + skipTrailingSlashRedirect: _zod.z.boolean().optional(), + staticPageGenerationTimeout: _zod.z.number().optional(), + expireTime: _zod.z.number().optional(), + target: _zod.z.string().optional(), + trailingSlash: _zod.z.boolean().optional(), + transpilePackages: _zod.z.array(_zod.z.string()).optional(), + turbopack: zTurbopackConfig.optional(), + typescript: _zod.z.strictObject({ + ignoreBuildErrors: _zod.z.boolean().optional(), + tsconfigPath: _zod.z.string().min(1).optional() + }).optional(), + typedRoutes: _zod.z.boolean().optional(), + useFileSystemPublicRoutes: _zod.z.boolean().optional(), + // The webpack config type is unknown, use z.any() here + webpack: _zod.z.any().nullable().optional(), + watchOptions: _zod.z.strictObject({ + pollIntervalMs: _zod.z.number().positive().finite().optional() + }).optional() + })); + +//# sourceMappingURL=config-schema.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/config-shared.js b/cli/app/node_modules/next/dist/server/config-shared.js new file mode 100644 index 00000000000..56f300494c8 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/config-shared.js @@ -0,0 +1,369 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DEFAULT_MAX_POSTPONED_STATE_SIZE: null, + LIGHTNINGCSS_FEATURE_NAMES: null, + defaultConfig: null, + getNextConfigRuntime: null, + normalizeConfig: null, + parseMaxPostponedStateSize: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DEFAULT_MAX_POSTPONED_STATE_SIZE: function() { + return _sizelimit.DEFAULT_MAX_POSTPONED_STATE_SIZE; + }, + LIGHTNINGCSS_FEATURE_NAMES: function() { + return LIGHTNINGCSS_FEATURE_NAMES; + }, + defaultConfig: function() { + return defaultConfig; + }, + getNextConfigRuntime: function() { + return getNextConfigRuntime; + }, + normalizeConfig: function() { + return normalizeConfig; + }, + parseMaxPostponedStateSize: function() { + return _sizelimit.parseMaxPostponedStateSize; + } +}); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _imageconfig = require("../shared/lib/image-config"); +const _constants = require("../lib/constants"); +const _canaryonlyconfigerror = require("../shared/lib/errors/canary-only-config-error"); +const _sizelimit = require("../shared/lib/size-limit"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const LIGHTNINGCSS_FEATURE_NAMES = [ + // Individual features (bit 0–20) + 'nesting', + 'not-selector-list', + 'dir-selector', + 'lang-selector-list', + 'is-selector', + 'text-decoration-thickness-percent', + 'media-interval-syntax', + 'media-range-syntax', + 'custom-media-queries', + 'clamp-function', + 'color-function', + 'oklab-colors', + 'lab-colors', + 'p3-colors', + 'hex-alpha-colors', + 'space-separated-color-notation', + 'font-family-system-ui', + 'double-position-gradients', + 'vendor-prefixes', + 'logical-properties', + 'light-dark', + // Composite groups + 'selectors', + 'media-queries', + 'colors' +]; +const defaultConfig = Object.freeze({ + env: {}, + webpack: null, + typescript: { + ignoreBuildErrors: false, + tsconfigPath: undefined + }, + typedRoutes: false, + distDir: '.next', + cleanDistDir: true, + assetPrefix: '', + cacheHandler: process.env.NEXT_CACHE_HANDLER_PATH, + // default to 50MB limit + cacheMaxMemorySize: 50 * 1024 * 1024, + configOrigin: 'default', + useFileSystemPublicRoutes: true, + generateBuildId: ()=>null, + generateEtags: true, + pageExtensions: [ + 'tsx', + 'ts', + 'jsx', + 'js' + ], + poweredByHeader: true, + compress: true, + images: _imageconfig.imageConfigDefault, + devIndicators: { + position: 'bottom-left' + }, + onDemandEntries: { + maxInactiveAge: 60 * 1000, + pagesBufferLength: 5 + }, + basePath: '', + sassOptions: {}, + trailingSlash: false, + i18n: null, + productionBrowserSourceMaps: false, + excludeDefaultMomentLocales: true, + reactProductionProfiling: false, + reactStrictMode: null, + reactMaxHeadersLength: 6000, + httpAgentOptions: { + keepAlive: true + }, + logging: { + serverFunctions: true + }, + compiler: {}, + expireTime: process.env.NEXT_PRIVATE_CDN_CONSUMED_SWR_CACHE_CONTROL ? undefined : 31536000, + staticPageGenerationTimeout: 60, + output: !!process.env.NEXT_PRIVATE_STANDALONE ? 'standalone' : undefined, + modularizeImports: undefined, + outputFileTracingRoot: process.env.NEXT_PRIVATE_OUTPUT_TRACE_ROOT || '', + allowedDevOrigins: undefined, + // Will default to cacheComponents value. + enablePrerenderSourceMaps: undefined, + cacheComponents: false, + cacheLife: { + default: { + stale: undefined, + revalidate: 60 * 15, + expire: _constants.INFINITE_CACHE + }, + seconds: { + stale: 30, + revalidate: 1, + expire: 60 + }, + minutes: { + stale: 60 * 5, + revalidate: 60, + expire: 60 * 60 + }, + hours: { + stale: 60 * 5, + revalidate: 60 * 60, + expire: 60 * 60 * 24 + }, + days: { + stale: 60 * 5, + revalidate: 60 * 60 * 24, + expire: 60 * 60 * 24 * 7 + }, + weeks: { + stale: 60 * 5, + revalidate: 60 * 60 * 24 * 7, + expire: 60 * 60 * 24 * 30 + }, + max: { + stale: 60 * 5, + revalidate: 60 * 60 * 24 * 30, + expire: 60 * 60 * 24 * 365 + } + }, + cacheHandlers: { + default: process.env.NEXT_DEFAULT_CACHE_HANDLER_PATH, + remote: process.env.NEXT_REMOTE_CACHE_HANDLER_PATH, + static: process.env.NEXT_STATIC_CACHE_HANDLER_PATH + }, + adapterPath: process.env.NEXT_ADAPTER_PATH || undefined, + experimental: { + appNewScrollHandler: false, + useSkewCookie: false, + cssChunking: true, + multiZoneDraftMode: false, + appNavFailHandling: false, + prerenderEarlyExit: true, + serverMinification: true, + linkNoTouchStart: false, + caseSensitiveRoutes: false, + clientParamParsingOrigins: undefined, + cachedNavigations: false, + partialFallbacks: false, + dynamicOnHover: false, + varyParams: false, + prefetchInlining: false, + preloadEntriesOnStart: true, + clientRouterFilter: true, + clientRouterFilterRedirects: false, + fetchCacheKeyPrefix: '', + proxyPrefetch: 'flexible', + optimisticClientCache: true, + manualClientBasePath: false, + cpus: Math.max(1, (Number(process.env.CIRCLE_NODE_TOTAL) || (_os.default.cpus() || { + length: 1 + }).length) - 1), + memoryBasedWorkersCount: false, + imgOptConcurrency: null, + imgOptTimeoutInSeconds: 7, + imgOptMaxInputPixels: 268402689, + imgOptSequentialRead: null, + imgOptSkipMetadata: null, + isrFlushToDisk: true, + workerThreads: false, + proxyTimeout: undefined, + optimizeCss: false, + nextScriptWorkers: false, + scrollRestoration: false, + externalDir: false, + disableOptimizedLoading: false, + gzipSize: true, + craCompat: false, + esmExternals: true, + fullySpecified: false, + swcTraceProfiling: false, + forceSwcTransforms: false, + swcPlugins: undefined, + largePageDataBytes: 128 * 1000, + disablePostcssPresetEnv: undefined, + urlImports: undefined, + typedEnv: false, + clientTraceMetadata: undefined, + parallelServerCompiles: false, + parallelServerBuildTraces: false, + ppr: false, + authInterrupts: false, + webpackBuildWorker: undefined, + webpackMemoryOptimizations: false, + optimizeServerReact: true, + strictRouteTypes: false, + viewTransition: false, + removeUncaughtErrorAndRejectionListeners: false, + validateRSCRequestHeaders: !!(process.env.__NEXT_TEST_MODE || !(0, _canaryonlyconfigerror.isStableBuild)()), + staleTimes: { + dynamic: 0, + static: 300 + }, + allowDevelopmentBuild: undefined, + reactDebugChannel: true, + staticGenerationRetryCount: undefined, + serverComponentsHmrCache: true, + staticGenerationMaxConcurrency: 8, + staticGenerationMinPagesPerWorker: 25, + transitionIndicator: false, + gestureTransition: false, + inlineCss: false, + useCache: undefined, + slowModuleDetection: undefined, + globalNotFound: false, + browserDebugInfoInTerminal: 'warn', + lockDistDir: true, + proxyClientMaxBodySize: 10485760, + hideLogsAfterAbort: false, + mcpServer: true, + turbopackFileSystemCacheForDev: true, + turbopackFileSystemCacheForBuild: false, + turbopackInferModuleSideEffects: true, + turbopackPluginRuntimeStrategy: 'childProcesses' + }, + htmlLimitedBots: undefined, + bundlePagesRouterDependencies: false +}); +async function normalizeConfig(phase, config) { + if (typeof config === 'function') { + config = config(phase, { + defaultConfig + }); + } + // Support `new Promise` and `async () =>` as return values of the config export + return await config; +} +function getNextConfigRuntime(config) { + // This config filter is a breaking change, so only do it if experimental.runtimeServerDeploymentId is enabled + if (!config.experimental.runtimeServerDeploymentId) { + return config; + } + let ex = config.experimental; + let experimental = ex ? { + ppr: ex.ppr, + taint: ex.taint, + serverActions: ex.serverActions, + staleTimes: ex.staleTimes, + dynamicOnHover: ex.dynamicOnHover, + optimisticRouting: ex.optimisticRouting, + inlineCss: ex.inlineCss, + prefetchInlining: ex.prefetchInlining, + authInterrupts: ex.authInterrupts, + clientTraceMetadata: ex.clientTraceMetadata, + clientParamParsingOrigins: ex.clientParamParsingOrigins, + allowedRevalidateHeaderKeys: ex.allowedRevalidateHeaderKeys, + fetchCacheKeyPrefix: ex.fetchCacheKeyPrefix, + isrFlushToDisk: ex.isrFlushToDisk, + optimizeCss: ex.optimizeCss, + nextScriptWorkers: ex.nextScriptWorkers, + disableOptimizedLoading: ex.disableOptimizedLoading, + largePageDataBytes: ex.largePageDataBytes, + serverComponentsHmrCache: ex.serverComponentsHmrCache, + caseSensitiveRoutes: ex.caseSensitiveRoutes, + validateRSCRequestHeaders: ex.validateRSCRequestHeaders, + sri: ex.sri, + useSkewCookie: ex.useSkewCookie, + preloadEntriesOnStart: ex.preloadEntriesOnStart, + hideLogsAfterAbort: ex.hideLogsAfterAbort, + removeUncaughtErrorAndRejectionListeners: ex.removeUncaughtErrorAndRejectionListeners, + imgOptConcurrency: ex.imgOptConcurrency, + imgOptMaxInputPixels: ex.imgOptMaxInputPixels, + imgOptSequentialRead: ex.imgOptSequentialRead, + imgOptSkipMetadata: ex.imgOptSkipMetadata, + imgOptTimeoutInSeconds: ex.imgOptTimeoutInSeconds, + proxyClientMaxBodySize: ex.proxyClientMaxBodySize, + proxyTimeout: ex.proxyTimeout, + testProxy: ex.testProxy, + runtimeServerDeploymentId: ex.runtimeServerDeploymentId, + maxPostponedStateSize: ex.maxPostponedStateSize, + cachedNavigations: ex.cachedNavigations, + partialFallbacks: ex.partialFallbacks, + exposeTestingApiInProductionBuild: ex.exposeTestingApiInProductionBuild, + immutableAssetToken: ex.immutableAssetToken, + trustHostHeader: ex.trustHostHeader, + isExperimentalCompile: ex.isExperimentalCompile + } : {}; + let runtimeConfig = { + deploymentId: config.experimental.runtimeServerDeploymentId ? '' : config.deploymentId, + configFileName: undefined, + env: undefined, + distDir: config.distDir, + cacheComponents: config.cacheComponents, + htmlLimitedBots: config.htmlLimitedBots, + assetPrefix: config.assetPrefix, + output: config.output, + crossOrigin: config.crossOrigin, + trailingSlash: config.trailingSlash, + images: config.images, + reactMaxHeadersLength: config.reactMaxHeadersLength, + cacheLife: config.cacheLife, + basePath: config.basePath, + expireTime: config.expireTime, + generateEtags: config.generateEtags, + poweredByHeader: config.poweredByHeader, + cacheHandler: config.cacheHandler, + cacheHandlers: config.cacheHandlers, + // The full adapterPath might be non-deterministic across builds and doesn't + // actually matter at runtime, so replace it with a placeholder if it's set. + adapterPath: config.adapterPath ? '' : undefined, + cacheMaxMemorySize: config.cacheMaxMemorySize, + compress: config.compress, + i18n: config.i18n, + httpAgentOptions: config.httpAgentOptions, + skipProxyUrlNormalize: config.skipProxyUrlNormalize, + pageExtensions: config.pageExtensions, + useFileSystemPublicRoutes: config.useFileSystemPublicRoutes, + logging: config.logging, + experimental + }; + if (config.experimental.isExperimentalCompile) { + runtimeConfig.env = config.env; + } + return runtimeConfig; +} + +//# sourceMappingURL=config-shared.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/config-utils.js b/cli/app/node_modules/next/dist/server/config-utils.js new file mode 100644 index 00000000000..3d78f58b1c4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/config-utils.js @@ -0,0 +1,185 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "loadWebpackHook", { + enumerable: true, + get: function() { + return loadWebpackHook; + } +}); +let installed = false; +function loadWebpackHook() { + if (installed) { + return; + } + installed = true; + require('../server/require-hook').addHookAliases([ + [ + 'webpack', + 'next/dist/compiled/webpack/webpack-lib' + ], + [ + 'webpack/package', + 'next/dist/compiled/webpack/package' + ], + [ + 'webpack/package.json', + 'next/dist/compiled/webpack/package' + ], + [ + 'webpack/lib/webpack', + 'next/dist/compiled/webpack/webpack-lib' + ], + [ + 'webpack/lib/webpack.js', + 'next/dist/compiled/webpack/webpack-lib' + ], + [ + 'webpack/lib/node/NodeEnvironmentPlugin', + 'next/dist/compiled/webpack/NodeEnvironmentPlugin' + ], + [ + 'webpack/lib/node/NodeEnvironmentPlugin.js', + 'next/dist/compiled/webpack/NodeEnvironmentPlugin' + ], + [ + 'webpack/lib/BasicEvaluatedExpression', + 'next/dist/compiled/webpack/BasicEvaluatedExpression' + ], + [ + 'webpack/lib/BasicEvaluatedExpression.js', + 'next/dist/compiled/webpack/BasicEvaluatedExpression' + ], + [ + 'webpack/lib/node/NodeTargetPlugin', + 'next/dist/compiled/webpack/NodeTargetPlugin' + ], + [ + 'webpack/lib/node/NodeTargetPlugin.js', + 'next/dist/compiled/webpack/NodeTargetPlugin' + ], + [ + 'webpack/lib/node/NodeTemplatePlugin', + 'next/dist/compiled/webpack/NodeTemplatePlugin' + ], + [ + 'webpack/lib/node/NodeTemplatePlugin.js', + 'next/dist/compiled/webpack/NodeTemplatePlugin' + ], + [ + 'webpack/lib/LibraryTemplatePlugin', + 'next/dist/compiled/webpack/LibraryTemplatePlugin' + ], + [ + 'webpack/lib/LibraryTemplatePlugin.js', + 'next/dist/compiled/webpack/LibraryTemplatePlugin' + ], + [ + 'webpack/lib/SingleEntryPlugin', + 'next/dist/compiled/webpack/SingleEntryPlugin' + ], + [ + 'webpack/lib/SingleEntryPlugin.js', + 'next/dist/compiled/webpack/SingleEntryPlugin' + ], + [ + 'webpack/lib/optimize/LimitChunkCountPlugin', + 'next/dist/compiled/webpack/LimitChunkCountPlugin' + ], + [ + 'webpack/lib/optimize/LimitChunkCountPlugin.js', + 'next/dist/compiled/webpack/LimitChunkCountPlugin' + ], + [ + 'webpack/lib/webworker/WebWorkerTemplatePlugin', + 'next/dist/compiled/webpack/WebWorkerTemplatePlugin' + ], + [ + 'webpack/lib/webworker/WebWorkerTemplatePlugin.js', + 'next/dist/compiled/webpack/WebWorkerTemplatePlugin' + ], + [ + 'webpack/lib/ExternalsPlugin', + 'next/dist/compiled/webpack/ExternalsPlugin' + ], + [ + 'webpack/lib/ExternalsPlugin.js', + 'next/dist/compiled/webpack/ExternalsPlugin' + ], + [ + 'webpack/lib/web/FetchCompileWasmTemplatePlugin', + 'next/dist/compiled/webpack/FetchCompileWasmTemplatePlugin' + ], + [ + 'webpack/lib/web/FetchCompileWasmTemplatePlugin.js', + 'next/dist/compiled/webpack/FetchCompileWasmTemplatePlugin' + ], + [ + 'webpack/lib/web/FetchCompileWasmPlugin', + 'next/dist/compiled/webpack/FetchCompileWasmPlugin' + ], + [ + 'webpack/lib/web/FetchCompileWasmPlugin.js', + 'next/dist/compiled/webpack/FetchCompileWasmPlugin' + ], + [ + 'webpack/lib/web/FetchCompileAsyncWasmPlugin', + 'next/dist/compiled/webpack/FetchCompileAsyncWasmPlugin' + ], + [ + 'webpack/lib/web/FetchCompileAsyncWasmPlugin.js', + 'next/dist/compiled/webpack/FetchCompileAsyncWasmPlugin' + ], + [ + 'webpack/lib/ModuleFilenameHelpers', + 'next/dist/compiled/webpack/ModuleFilenameHelpers' + ], + [ + 'webpack/lib/ModuleFilenameHelpers.js', + 'next/dist/compiled/webpack/ModuleFilenameHelpers' + ], + [ + 'webpack/lib/GraphHelpers', + 'next/dist/compiled/webpack/GraphHelpers' + ], + [ + 'webpack/lib/GraphHelpers.js', + 'next/dist/compiled/webpack/GraphHelpers' + ], + [ + 'webpack/lib/NormalModule', + 'next/dist/compiled/webpack/NormalModule' + ], + [ + 'webpack-sources', + 'next/dist/compiled/webpack/sources' + ], + [ + 'webpack-sources/lib', + 'next/dist/compiled/webpack/sources' + ], + [ + 'webpack-sources/lib/index', + 'next/dist/compiled/webpack/sources' + ], + [ + 'webpack-sources/lib/index.js', + 'next/dist/compiled/webpack/sources' + ], + [ + '@babel/runtime', + 'next/dist/compiled/@babel/runtime/package.json' + ], + [ + '@babel/runtime/package.json', + 'next/dist/compiled/@babel/runtime/package.json' + ] + ].map(// Use dynamic require.resolve to avoid statically analyzable since they're only for build time + ([request, replacement])=>[ + request, + require.resolve(replacement) + ])); +} + +//# sourceMappingURL=config-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/config.js b/cli/app/node_modules/next/dist/server/config.js new file mode 100644 index 00000000000..12e9f98b6ad --- /dev/null +++ b/cli/app/node_modules/next/dist/server/config.js @@ -0,0 +1,1545 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + default: null, + normalizeConfig: null, + warnOptionHasBeenDeprecated: null, + warnOptionHasBeenMovedOutOfExperimental: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + default: function() { + return loadConfig; + }, + normalizeConfig: function() { + return _configshared.normalizeConfig; + }, + warnOptionHasBeenDeprecated: function() { + return warnOptionHasBeenDeprecated; + }, + warnOptionHasBeenMovedOutOfExperimental: function() { + return warnOptionHasBeenMovedOutOfExperimental; + } +}); +const _fs = require("fs"); +const _path = require("path"); +const _url = require("url"); +const _findup = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/find-up")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _ciinfo = /*#__PURE__*/ _interop_require_wildcard(require("../server/ci-info")); +const _constants = require("../shared/lib/constants"); +const _configshared = require("./config-shared"); +const _configutils = require("./config-utils"); +const _imageconfig = require("../shared/lib/image-config"); +const _env = require("@next/env"); +const _flushtelemetry = require("../telemetry/flush-telemetry"); +const _findroot = require("../lib/find-root"); +const _setuphttpagentenv = require("./setup-http-agent-env"); +const _pathhasprefix = require("../shared/lib/router/utils/path-has-prefix"); +const _matchremotepattern = require("../shared/lib/match-remote-pattern"); +const _transpileconfig = require("../build/next-config-ts/transpile-config"); +const _dset = require("../shared/lib/dset"); +const _zod = require("../shared/lib/zod"); +const _isbot = require("../shared/lib/router/utils/is-bot"); +const _findpagesdir = require("../lib/find-pages-dir"); +const _interopdefault = require("../lib/interop-default"); +const _hash = require("../shared/lib/hash"); +const _harddeprecatedconfigerror = require("../shared/lib/errors/hard-deprecated-config-error"); +const _nextinstanceerrorstate = require("./mcp/tools/next-instance-error-state"); +const _bundler = require("../lib/bundler"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function normalizeNextConfigZodErrors(error) { + const warnings = []; + const fatalErrors = []; + const issues = (0, _zod.normalizeZodErrors)(error); + for (const { issue, message: originalMessage } of issues){ + let message = originalMessage; + let shouldExit = false; + if (issue.path[0] === 'images') { + // We exit the build when encountering an error in the images config + shouldExit = true; + } + if (issue.code === 'unrecognized_keys' && issue.path[0] === 'experimental') { + if (message.includes('turbopackPersistentCachingForBuild')) { + // We exit the build when encountering an error in the turbopackPersistentCaching config + shouldExit = true; + message += "\nUse 'experimental.turbopackFileSystemCacheForBuild' instead."; + message += '\nLearn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache'; + } else if (message.includes('turbopackPersistentCaching')) { + // We exit the build when encountering an error in the turbopackPersistentCaching config + shouldExit = true; + message += "\nUse 'experimental.turbopackFileSystemCacheForDev' instead."; + message += '\nLearn more: https://nextjs.org/docs/app/api-reference/config/next-config-js/turbopackFileSystemCache'; + } + } + if (shouldExit) { + fatalErrors.push(message); + } else { + warnings.push(message); + } + } + return [ + warnings, + fatalErrors + ]; +} +function warnOptionHasBeenDeprecated(config, nestedPropertyKey, reason, silent) { + let hasWarned = false; + if (!silent) { + let current = config; + let found = true; + const nestedPropertyKeys = nestedPropertyKey.split('.'); + for (const key of nestedPropertyKeys){ + if (current[key] !== undefined) { + current = current[key]; + } else { + found = false; + break; + } + } + if (found) { + _log.warnOnce(reason); + hasWarned = true; + } + } + return hasWarned; +} +function checkDeprecations(userConfig, configFileName, silent, dir) { + var _userConfig_images_domains, _userConfig_images, _userConfig_experimental; + warnOptionHasBeenDeprecated(userConfig, 'experimental.middlewarePrefetch', `\`experimental.middlewarePrefetch\` is deprecated. Please use \`experimental.proxyPrefetch\` instead in ${configFileName}.`, silent); + warnOptionHasBeenDeprecated(userConfig, 'experimental.middlewareClientMaxBodySize', `\`experimental.middlewareClientMaxBodySize\` is deprecated. Please use \`experimental.proxyClientMaxBodySize\` instead in ${configFileName}.`, silent); + warnOptionHasBeenDeprecated(userConfig, 'experimental.externalMiddlewareRewritesResolve', `\`experimental.externalMiddlewareRewritesResolve\` is deprecated. Please use \`experimental.externalProxyRewritesResolve\` instead in ${configFileName}.`, silent); + warnOptionHasBeenDeprecated(userConfig, 'skipMiddlewareUrlNormalize', `\`skipMiddlewareUrlNormalize\` is deprecated. Please use \`skipProxyUrlNormalize\` instead in ${configFileName}.`, silent); + warnOptionHasBeenDeprecated(userConfig, 'experimental.instrumentationHook', `\`experimental.instrumentationHook\` is no longer needed, because \`instrumentation.js\` is available by default. You can remove it from ${configFileName}.`, silent); + warnOptionHasBeenDeprecated(userConfig, 'experimental.after', `\`experimental.after\` is no longer needed, because \`after\` is available by default. You can remove it from ${configFileName}.`, silent); + warnOptionHasBeenDeprecated(userConfig, 'eslint', `\`eslint\` configuration in ${configFileName} is no longer supported. See more info here: https://nextjs.org/docs/app/api-reference/cli/next#next-lint-options`, silent); + if ((_userConfig_images = userConfig.images) == null ? void 0 : (_userConfig_images_domains = _userConfig_images.domains) == null ? void 0 : _userConfig_images_domains.length) { + warnOptionHasBeenDeprecated(userConfig, 'images.domains', `\`images.domains\` is deprecated in favor of \`images.remotePatterns\`. Please update ${configFileName} to protect your application from malicious users.`, silent); + } + // i18n deprecation for App Router + if (userConfig.i18n) { + const hasAppDir = Boolean((0, _findpagesdir.findDir)(dir, 'app')); + if (hasAppDir) { + warnOptionHasBeenDeprecated(userConfig, 'i18n', `i18n configuration in ${configFileName} is unsupported in App Router.\nLearn more about internationalization in App Router: https://nextjs.org/docs/app/building-your-application/routing/internationalization`, silent); + } + } + // browserDebugInfoInTerminal has moved to logging.browserToTerminal + if (((_userConfig_experimental = userConfig.experimental) == null ? void 0 : _userConfig_experimental.browserDebugInfoInTerminal) !== undefined) { + warnOptionHasBeenDeprecated(userConfig, 'experimental.browserDebugInfoInTerminal', `\`experimental.browserDebugInfoInTerminal\` has been moved to \`logging.browserToTerminal\`. Please update your ${configFileName} file accordingly.`, silent); + } +} +function warnOptionHasBeenMovedOutOfExperimental(config, oldExperimentalKey, newKey, configFileName, silent) { + if (config.experimental && oldExperimentalKey in config.experimental) { + if (!silent) { + _log.warn(`\`experimental.${oldExperimentalKey}\` has been moved to \`${newKey}\`. ` + `Please update your ${configFileName} file accordingly.`); + } + let current = config; + const newKeys = newKey.split('.'); + while(newKeys.length > 1){ + const key = newKeys.shift(); + current[key] = current[key] || {}; + current = current[key]; + } + ; + current[newKeys.shift()] = config.experimental[oldExperimentalKey]; + } + return config; +} +function warnCustomizedOption(config, key, defaultValue, customMessage, configFileName, silent) { + const segs = key.split('.'); + let current = config; + while(segs.length >= 1){ + const seg = segs.shift(); + if (!(seg in current)) { + return; + } + current = current[seg]; + } + if (!silent && current !== defaultValue) { + _log.warn(`The "${key}" option has been modified. ${customMessage ? customMessage + '. ' : ''}It should be removed from your ${configFileName}.`); + } +} +/** + * Assigns defaults to the user config and validates the config. + * + * @param dir - The directory of the project. + * @param userConfig - The user config. + * @param silent - Whether to suppress warnings. + * @returns The complete config. + */ function assignDefaultsAndValidate(dir, userConfig, silent, phase) { + var _result_experimental, _result_experimental1, _result_experimental_serverActions, _result_experimental2, _userConfig_experimental, _userConfig_experimental1, _userConfig_experimental2, _userConfig_experimental3, _userConfig_experimental4, _userConfig_experimental5, _userConfig_experimental6, _userConfig_experimental7, _userConfig_experimental8, _userConfig_experimental9, _userConfig_experimental10, _userConfig_experimental11, _userConfig_experimental12, _userConfig_experimental13, _userConfig_experimental14, _userConfig_experimental15, _result_experimental3, _result_turbopack, _result_turbopack1, _result_devIndicators, _result_experimental4; + const configFileName = userConfig.configFileName; + if (typeof userConfig.exportTrailingSlash !== 'undefined') { + if (!silent) { + _log.warn(`The "exportTrailingSlash" option has been renamed to "trailingSlash". Please update your ${configFileName}.`); + } + if (typeof userConfig.trailingSlash === 'undefined') { + userConfig.trailingSlash = userConfig.exportTrailingSlash; + } + delete userConfig.exportTrailingSlash; + } + const config = Object.keys(userConfig).reduce((currentConfig, key)=>{ + const value = userConfig[key]; + if (value === undefined || value === null) { + return currentConfig; + } + if (key === 'distDir') { + if (typeof value !== 'string') { + throw Object.defineProperty(new Error(`Specified distDir is not a string, found type "${typeof value}"`), "__NEXT_ERROR_CODE", { + value: "E206", + enumerable: false, + configurable: true + }); + } + const userDistDir = value.trim(); + // don't allow public as the distDir as this is a reserved folder for + // public files + if (userDistDir === 'public') { + throw Object.defineProperty(new Error(`The 'public' directory is reserved in Next.js and can not be set as the 'distDir'. https://nextjs.org/docs/messages/can-not-output-to-public`), "__NEXT_ERROR_CODE", { + value: "E221", + enumerable: false, + configurable: true + }); + } + // make sure distDir isn't an empty string as it can result in the provided + // directory being deleted in development mode + if (userDistDir.length === 0) { + throw Object.defineProperty(new Error(`Invalid distDir provided, distDir can not be an empty string. Please remove this config or set it to undefined`), "__NEXT_ERROR_CODE", { + value: "E391", + enumerable: false, + configurable: true + }); + } + } + if (key === 'pageExtensions') { + if (!Array.isArray(value)) { + throw Object.defineProperty(new Error(`Specified pageExtensions is not an array of strings, found "${value}". Please update this config or remove it.`), "__NEXT_ERROR_CODE", { + value: "E140", + enumerable: false, + configurable: true + }); + } + if (!value.length) { + throw Object.defineProperty(new Error(`Specified pageExtensions is an empty array. Please update it with the relevant extensions or remove it.`), "__NEXT_ERROR_CODE", { + value: "E43", + enumerable: false, + configurable: true + }); + } + value.forEach((ext)=>{ + if (typeof ext !== 'string') { + throw Object.defineProperty(new Error(`Specified pageExtensions is not an array of strings, found "${ext}" of type "${typeof ext}". Please update this config or remove it.`), "__NEXT_ERROR_CODE", { + value: "E108", + enumerable: false, + configurable: true + }); + } + }); + } + const defaultValue = _configshared.defaultConfig[key]; + if (!!value && value.constructor === Object && typeof defaultValue === 'object') { + currentConfig[key] = { + ...defaultValue, + ...Object.keys(value).reduce((c, k)=>{ + const v = value[k]; + if (v !== undefined && v !== null) { + c[k] = v; + } + return c; + }, {}) + }; + } else { + currentConfig[key] = value; + } + return currentConfig; + }, {}); + const result = { + ..._configshared.defaultConfig, + ...config, + experimental: { + ..._configshared.defaultConfig.experimental, + ...config.experimental + } + }; + // Normalize prefetchInlining: true | { maxSize?, maxBundleSize? } into a + // resolved object with concrete defaults, so consumers don't have to + // resolve the values themselves. + if (result.experimental.prefetchInlining) { + const raw = result.experimental.prefetchInlining; + const maxSize = typeof raw === 'object' ? raw.maxSize ?? 2048 : 2048; + const maxBundleSize = typeof raw === 'object' ? raw.maxBundleSize ?? 10240 : 10240; + result.experimental.prefetchInlining = { + // Clamp Infinity to a finite value so the config survives + // JSON.stringify (used by output: standalone). + maxSize: Number.isFinite(maxSize) ? maxSize : Number.MAX_SAFE_INTEGER, + maxBundleSize: Number.isFinite(maxBundleSize) ? maxBundleSize : Number.MAX_SAFE_INTEGER + }; + } + // ensure correct default is set for api-resolver revalidate handling + if (!result.experimental.trustHostHeader && _ciinfo.hasNextSupport) { + result.experimental.trustHostHeader = true; + } + // Normalize experimental.browserDebugInfoInTerminal to logging.browserToTerminal + if (result.logging !== false && ((_result_experimental = result.experimental) == null ? void 0 : _result_experimental.browserDebugInfoInTerminal) !== undefined) { + const loggingConfig = result.logging || {}; + if (!('browserToTerminal' in loggingConfig)) { + const expConfig = result.experimental.browserDebugInfoInTerminal; + // Convert object config to simple format (level or true) + const level = typeof expConfig === 'object' && expConfig !== null ? expConfig.level ?? true : expConfig; + // Map 'verbose' to true since browserToTerminal doesn't support 'verbose' + const normalizedValue = level === 'verbose' ? true : level; + result.logging = { + ...loggingConfig, + browserToTerminal: normalizedValue + }; + } + } + if (((_result_experimental1 = result.experimental) == null ? void 0 : _result_experimental1.allowDevelopmentBuild) && process.env.NODE_ENV !== 'development') { + throw Object.defineProperty(new Error(`The experimental.allowDevelopmentBuild option requires NODE_ENV to be explicitly set to 'development'.`), "__NEXT_ERROR_CODE", { + value: "E195", + enumerable: false, + configurable: true + }); + } + // Validate sassOptions.functions is not used with Turbopack + if (process.env.TURBOPACK && result.sassOptions && 'functions' in result.sassOptions) { + throw Object.defineProperty(new Error(`The "sassOptions.functions" option is not supported when using Turbopack. ` + `Custom Sass functions are only available with webpack. ` + `Please remove the "functions" property from your sassOptions in ${configFileName}.`), "__NEXT_ERROR_CODE", { + value: "E893", + enumerable: false, + configurable: true + }); + } + if (result.experimental.cachedNavigations && !result.cacheComponents) { + throw Object.defineProperty(new Error(`\`experimental.cachedNavigations\` requires \`cacheComponents\` to be enabled. Please update your ${configFileName} accordingly.`), "__NEXT_ERROR_CODE", { + value: "E1089", + enumerable: false, + configurable: true + }); + } + if (result.experimental.ppr) { + throw new _harddeprecatedconfigerror.HardDeprecatedConfigError(`\`experimental.ppr\` has been merged into \`cacheComponents\`. The Partial Prerendering feature is still available, but is now enabled via \`cacheComponents\`. Please update your ${configFileName} accordingly.`); + } + if (result.output === 'export') { + if (result.i18n) { + throw Object.defineProperty(new Error('Specified "i18n" cannot be used with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-i18n'), "__NEXT_ERROR_CODE", { + value: "E493", + enumerable: false, + configurable: true + }); + } + if (!_ciinfo.hasNextSupport) { + if (result.rewrites) { + _log.warn('Specified "rewrites" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'); + } + if (result.redirects) { + _log.warn('Specified "redirects" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'); + } + if (result.headers) { + _log.warn('Specified "headers" will not automatically work with "output: export". See more info here: https://nextjs.org/docs/messages/export-no-custom-routes'); + } + } + } + if (typeof result.assetPrefix !== 'string') { + throw Object.defineProperty(new Error(`Specified assetPrefix is not a string, found type "${typeof result.assetPrefix}" https://nextjs.org/docs/messages/invalid-assetprefix`), "__NEXT_ERROR_CODE", { + value: "E68", + enumerable: false, + configurable: true + }); + } + if (typeof result.basePath !== 'string') { + throw Object.defineProperty(new Error(`Specified basePath is not a string, found type "${typeof result.basePath}"`), "__NEXT_ERROR_CODE", { + value: "E326", + enumerable: false, + configurable: true + }); + } + if (result.basePath !== '') { + if (result.basePath === '/') { + throw Object.defineProperty(new Error(`Specified basePath /. basePath has to be either an empty string or a path prefix"`), "__NEXT_ERROR_CODE", { + value: "E95", + enumerable: false, + configurable: true + }); + } + if (!result.basePath.startsWith('/')) { + throw Object.defineProperty(new Error(`Specified basePath has to start with a /, found "${result.basePath}"`), "__NEXT_ERROR_CODE", { + value: "E105", + enumerable: false, + configurable: true + }); + } + if (result.basePath !== '/') { + if (result.basePath.endsWith('/')) { + throw Object.defineProperty(new Error(`Specified basePath should not end with /, found "${result.basePath}"`), "__NEXT_ERROR_CODE", { + value: "E39", + enumerable: false, + configurable: true + }); + } + if (result.assetPrefix === '') { + result.assetPrefix = result.basePath; + } + } + } + if (result == null ? void 0 : result.images) { + const images = result.images; + if (typeof images !== 'object') { + throw Object.defineProperty(new Error(`Specified images should be an object received ${typeof images}.\nSee more info here: https://nextjs.org/docs/messages/invalid-images-config`), "__NEXT_ERROR_CODE", { + value: "E171", + enumerable: false, + configurable: true + }); + } + if (images.localPatterns) { + if (!Array.isArray(images.localPatterns)) { + throw Object.defineProperty(new Error(`Specified images.localPatterns should be an Array received ${typeof images.localPatterns}.\nSee more info here: https://nextjs.org/docs/messages/invalid-images-config`), "__NEXT_ERROR_CODE", { + value: "E118", + enumerable: false, + configurable: true + }); + } + // avoid double-pushing the same pattern if it already exists + const hasMatch = images.localPatterns.some((pattern)=>pattern.pathname === '/_next/static/media/**' && pattern.search === ''); + if (!hasMatch) { + // static import images are automatically allowed + images.localPatterns.push({ + pathname: '/_next/static/media/**', + search: '' + }); + } + } else { + // All paths are not allowed for a search query by default. + images.localPatterns = [ + { + pathname: '**', + search: '' + } + ]; + } + if (images.remotePatterns) { + var _config_assetPrefix; + if (!Array.isArray(images.remotePatterns)) { + throw Object.defineProperty(new Error(`Specified images.remotePatterns should be an Array received ${typeof images.remotePatterns}.\nSee more info here: https://nextjs.org/docs/messages/invalid-images-config`), "__NEXT_ERROR_CODE", { + value: "E27", + enumerable: false, + configurable: true + }); + } + // We must convert URL to RemotePattern since URL has a colon in the protocol + // and also has additional properties we want to filter out. Also, new URL() + // accepts any protocol so we need manual validation here. + images.remotePatterns = images.remotePatterns.map(({ protocol, hostname, port, pathname, search })=>{ + const proto = protocol == null ? void 0 : protocol.replace(/:$/, ''); + if (![ + 'http', + 'https', + undefined + ].includes(proto)) { + throw Object.defineProperty(new Error(`Specified images.remotePatterns must have protocol "http" or "https" received "${proto}".`), "__NEXT_ERROR_CODE", { + value: "E671", + enumerable: false, + configurable: true + }); + } + return { + protocol: proto, + hostname, + port, + pathname, + search + }; + }); + // static images are automatically prefixed with assetPrefix + // so we need to ensure _next/image allows downloading from + // this resource + if ((_config_assetPrefix = config.assetPrefix) == null ? void 0 : _config_assetPrefix.startsWith('http')) { + try { + const url = new URL(config.assetPrefix); + const hasMatchForAssetPrefix = images.remotePatterns.some((pattern)=>(0, _matchremotepattern.matchRemotePattern)(pattern, url)); + // avoid double-pushing the same pattern if it already can be matched + if (!hasMatchForAssetPrefix) { + images.remotePatterns.push({ + hostname: url.hostname, + protocol: url.protocol.replace(/:$/, ''), + port: url.port + }); + } + } catch (error) { + throw Object.defineProperty(new Error(`Invalid assetPrefix provided. Original error: ${error}`), "__NEXT_ERROR_CODE", { + value: "E343", + enumerable: false, + configurable: true + }); + } + } + } + if (images.domains) { + if (!Array.isArray(images.domains)) { + throw Object.defineProperty(new Error(`Specified images.domains should be an Array received ${typeof images.domains}.\nSee more info here: https://nextjs.org/docs/messages/invalid-images-config`), "__NEXT_ERROR_CODE", { + value: "E402", + enumerable: false, + configurable: true + }); + } + } + if (!images.loader) { + images.loader = 'default'; + } + if (images.loader !== 'default' && images.loader !== 'custom' && images.path === _imageconfig.imageConfigDefault.path) { + throw Object.defineProperty(new Error(`Specified images.loader property (${images.loader}) also requires images.path property to be assigned to a URL prefix.\nSee more info here: https://nextjs.org/docs/api-reference/next/legacy/image#loader-configuration`), "__NEXT_ERROR_CODE", { + value: "E228", + enumerable: false, + configurable: true + }); + } + if (images.path === _imageconfig.imageConfigDefault.path && result.basePath && !(0, _pathhasprefix.pathHasPrefix)(images.path, result.basePath)) { + images.path = `${result.basePath}${images.path}`; + } + // Append trailing slash for non-default loaders and when trailingSlash is set + if (images.path && !images.path.endsWith('/') && (images.loader !== 'default' || result.trailingSlash)) { + images.path += '/'; + } + if (images.loaderFile) { + if (images.loader !== 'default' && images.loader !== 'custom') { + throw Object.defineProperty(new Error(`Specified images.loader property (${images.loader}) cannot be used with images.loaderFile property. Please set images.loader to "custom".`), "__NEXT_ERROR_CODE", { + value: "E449", + enumerable: false, + configurable: true + }); + } + const absolutePath = (0, _path.join)(dir, images.loaderFile); + if (!(0, _fs.existsSync)(absolutePath)) { + throw Object.defineProperty(new Error(`Specified images.loaderFile does not exist at "${absolutePath}".`), "__NEXT_ERROR_CODE", { + value: "E461", + enumerable: false, + configurable: true + }); + } + images.loaderFile = absolutePath; + } + } + warnCustomizedOption(result, 'experimental.esmExternals', true, 'experimental.esmExternals is not recommended to be modified as it may disrupt module resolution', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'bundlePagesExternals', 'bundlePagesRouterDependencies', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'serverComponentsExternalPackages', 'serverExternalPackages', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'relay', 'compiler.relay', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'styledComponents', 'compiler.styledComponents', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'emotion', 'compiler.emotion', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'reactRemoveProperties', 'compiler.reactRemoveProperties', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'removeConsole', 'compiler.removeConsole', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'swrDelta', 'expireTime', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'typedRoutes', 'typedRoutes', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'outputFileTracingRoot', 'outputFileTracingRoot', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'outputFileTracingIncludes', 'outputFileTracingIncludes', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'outputFileTracingExcludes', 'outputFileTracingExcludes', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'reactCompiler', 'reactCompiler', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'enablePrerenderSourceMaps', 'enablePrerenderSourceMaps', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'cacheComponents', 'cacheComponents', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'cacheLife', 'cacheLife', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'cacheHandlers', 'cacheHandlers', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'adapterPath', 'adapterPath', configFileName, silent); + if (result.experimental.outputStandalone) { + if (!silent) { + _log.warn(`experimental.outputStandalone has been renamed to "output: 'standalone'", please move the config.`); + } + result.output = 'standalone'; + } + if (typeof ((_result_experimental2 = result.experimental) == null ? void 0 : (_result_experimental_serverActions = _result_experimental2.serverActions) == null ? void 0 : _result_experimental_serverActions.bodySizeLimit) !== 'undefined') { + const bytes = require('next/dist/compiled/bytes'); + const bodySizeLimit = result.experimental.serverActions.bodySizeLimit; + let value; + if (typeof bodySizeLimit === 'number') { + value = bodySizeLimit; + } else { + value = bytes.parse(bodySizeLimit); + } + if (value === null || isNaN(value) || value < 1) { + throw Object.defineProperty(new Error('Server Actions Size Limit must be a valid number or filesize format larger than 1MB: https://nextjs.org/docs/app/api-reference/next-config-js/serverActions#bodysizelimit'), "__NEXT_ERROR_CODE", { + value: "E100", + enumerable: false, + configurable: true + }); + } + } + // Throw if both Middleware and Proxy config are set. + if (((_userConfig_experimental = userConfig.experimental) == null ? void 0 : _userConfig_experimental.proxyClientMaxBodySize) !== undefined && ((_userConfig_experimental1 = userConfig.experimental) == null ? void 0 : _userConfig_experimental1.middlewareClientMaxBodySize) !== undefined) { + throw Object.defineProperty(new Error('Config options `experimental.proxyClientMaxBodySize` and `experimental.middlewareClientMaxBodySize` cannot be set at the same time. Please use `experimental.proxyClientMaxBodySize` instead.'), "__NEXT_ERROR_CODE", { + value: "E879", + enumerable: false, + configurable: true + }); + } + if (((_userConfig_experimental2 = userConfig.experimental) == null ? void 0 : _userConfig_experimental2.proxyPrefetch) !== undefined && ((_userConfig_experimental3 = userConfig.experimental) == null ? void 0 : _userConfig_experimental3.middlewarePrefetch) !== undefined) { + throw Object.defineProperty(new Error('Config options `experimental.proxyPrefetch` and `experimental.middlewarePrefetch` cannot be set at the same time. Please use `experimental.proxyPrefetch` instead.'), "__NEXT_ERROR_CODE", { + value: "E880", + enumerable: false, + configurable: true + }); + } + if (((_userConfig_experimental4 = userConfig.experimental) == null ? void 0 : _userConfig_experimental4.externalProxyRewritesResolve) !== undefined && ((_userConfig_experimental5 = userConfig.experimental) == null ? void 0 : _userConfig_experimental5.externalMiddlewareRewritesResolve) !== undefined) { + throw Object.defineProperty(new Error('Config options `experimental.externalProxyRewritesResolve` and `experimental.externalMiddlewareRewritesResolve` cannot be set at the same time. Please use `experimental.externalProxyRewritesResolve` instead.'), "__NEXT_ERROR_CODE", { + value: "E877", + enumerable: false, + configurable: true + }); + } + if (userConfig.skipProxyUrlNormalize !== undefined && userConfig.skipMiddlewareUrlNormalize !== undefined) { + throw Object.defineProperty(new Error('Config options `skipProxyUrlNormalize` and `skipMiddlewareUrlNormalize` cannot be set at the same time. Please use `skipProxyUrlNormalize` instead.'), "__NEXT_ERROR_CODE", { + value: "E878", + enumerable: false, + configurable: true + }); + } + // Map Proxy config to Middleware config as it is currently an alias. + if (((_userConfig_experimental6 = userConfig.experimental) == null ? void 0 : _userConfig_experimental6.proxyClientMaxBodySize) === undefined && ((_userConfig_experimental7 = userConfig.experimental) == null ? void 0 : _userConfig_experimental7.middlewareClientMaxBodySize) !== undefined) { + result.experimental.proxyClientMaxBodySize = userConfig.experimental.middlewareClientMaxBodySize; + } + if (((_userConfig_experimental8 = userConfig.experimental) == null ? void 0 : _userConfig_experimental8.proxyPrefetch) === undefined && ((_userConfig_experimental9 = userConfig.experimental) == null ? void 0 : _userConfig_experimental9.middlewarePrefetch) !== undefined) { + result.experimental.proxyPrefetch = userConfig.experimental.middlewarePrefetch; + } + if (((_userConfig_experimental10 = userConfig.experimental) == null ? void 0 : _userConfig_experimental10.externalProxyRewritesResolve) === undefined && ((_userConfig_experimental11 = userConfig.experimental) == null ? void 0 : _userConfig_experimental11.externalMiddlewareRewritesResolve) !== undefined) { + result.experimental.externalProxyRewritesResolve = userConfig.experimental.externalMiddlewareRewritesResolve; + } + if (userConfig.skipProxyUrlNormalize === undefined && userConfig.skipMiddlewareUrlNormalize !== undefined) { + result.skipProxyUrlNormalize = userConfig.skipMiddlewareUrlNormalize; + } + // Inverse case: when new name is set but not the old name, copy the value to the old name + // to avoid breaking change on resolved config object written to `.next/` + if (((_userConfig_experimental12 = userConfig.experimental) == null ? void 0 : _userConfig_experimental12.proxyPrefetch) !== undefined && ((_userConfig_experimental13 = userConfig.experimental) == null ? void 0 : _userConfig_experimental13.middlewarePrefetch) === undefined) { + result.experimental.middlewarePrefetch = userConfig.experimental.proxyPrefetch; + } + if (((_userConfig_experimental14 = userConfig.experimental) == null ? void 0 : _userConfig_experimental14.externalProxyRewritesResolve) !== undefined && ((_userConfig_experimental15 = userConfig.experimental) == null ? void 0 : _userConfig_experimental15.externalMiddlewareRewritesResolve) === undefined) { + result.experimental.externalMiddlewareRewritesResolve = userConfig.experimental.externalProxyRewritesResolve; + } + if (userConfig.skipProxyUrlNormalize !== undefined && userConfig.skipMiddlewareUrlNormalize === undefined) { + result.skipMiddlewareUrlNormalize = userConfig.skipProxyUrlNormalize; + } + // Normalize & validate experimental.proxyClientMaxBodySize + if (typeof ((_result_experimental3 = result.experimental) == null ? void 0 : _result_experimental3.proxyClientMaxBodySize) !== 'undefined') { + const proxyClientMaxBodySize = result.experimental.proxyClientMaxBodySize; + let normalizedValue; + if (typeof proxyClientMaxBodySize === 'string') { + const bytes = require('next/dist/compiled/bytes'); + normalizedValue = bytes.parse(proxyClientMaxBodySize); + } else if (typeof proxyClientMaxBodySize === 'number') { + normalizedValue = proxyClientMaxBodySize; + } else { + throw Object.defineProperty(new Error('Client Max Body Size must be a valid number (bytes) or filesize format string (e.g., "5mb")'), "__NEXT_ERROR_CODE", { + value: "E860", + enumerable: false, + configurable: true + }); + } + if (isNaN(normalizedValue) || normalizedValue < 1) { + throw Object.defineProperty(new Error('Client Max Body Size must be larger than 0 bytes'), "__NEXT_ERROR_CODE", { + value: "E861", + enumerable: false, + configurable: true + }); + } + // Store the normalized value as a number + result.experimental.proxyClientMaxBodySize = normalizedValue; + } + warnOptionHasBeenMovedOutOfExperimental(result, 'transpilePackages', 'transpilePackages', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'skipMiddlewareUrlNormalize', 'skipMiddlewareUrlNormalize', configFileName, silent); + warnOptionHasBeenMovedOutOfExperimental(result, 'skipTrailingSlashRedirect', 'skipTrailingSlashRedirect', configFileName, silent); + if ((result == null ? void 0 : result.outputFileTracingRoot) && !(0, _path.isAbsolute)(result.outputFileTracingRoot)) { + result.outputFileTracingRoot = (0, _path.resolve)(result.outputFileTracingRoot); + if (!silent) { + _log.warn(`outputFileTracingRoot should be absolute, using: ${result.outputFileTracingRoot}`); + } + } + if ((result == null ? void 0 : (_result_turbopack = result.turbopack) == null ? void 0 : _result_turbopack.root) && !(0, _path.isAbsolute)(result.turbopack.root)) { + result.turbopack.root = (0, _path.resolve)(result.turbopack.root); + if (!silent) { + _log.warn(`turbopack.root should be absolute, using: ${result.turbopack.root}`); + } + } + if (result.experimental.runtimeServerDeploymentId == null && phase === _constants.PHASE_PRODUCTION_BUILD && _ciinfo.hasNextSupport && process.env.NEXT_DEPLOYMENT_ID) { + if (result.deploymentId != null && result.deploymentId !== process.env.NEXT_DEPLOYMENT_ID) { + throw Object.defineProperty(new Error(`The NEXT_DEPLOYMENT_ID environment variable value "${process.env.NEXT_DEPLOYMENT_ID}" does not match the provided deploymentId "${result.deploymentId}" in the config.`), "__NEXT_ERROR_CODE", { + value: "E971", + enumerable: false, + configurable: true + }); + } + result.experimental.runtimeServerDeploymentId = true; + } + // only leverage deploymentId + if (process.env.NEXT_DEPLOYMENT_ID) { + result.deploymentId = process.env.NEXT_DEPLOYMENT_ID; + } + // Only read process.env.__NEXT_IMMUTABLE_ASSET_TOKEN to make our testing setup easier. This is + // actually done by the adapter's modifyConfig + if (process.env.__NEXT_TEST_MODE && process.env.IS_TURBOPACK_TEST && result.deploymentId && process.env.__NEXT_IMMUTABLE_ASSET_TOKEN) { + result.experimental.immutableAssetToken = process.env.__NEXT_IMMUTABLE_ASSET_TOKEN; + } + const tracingRoot = result == null ? void 0 : result.outputFileTracingRoot; + const turbopackRoot = result == null ? void 0 : (_result_turbopack1 = result.turbopack) == null ? void 0 : _result_turbopack1.root; + // If both provided, validate they match. If not, use outputFileTracingRoot. + if (tracingRoot && turbopackRoot && tracingRoot !== turbopackRoot) { + _log.warn(`Both \`outputFileTracingRoot\` and \`turbopack.root\` are set, but they must have the same value.\n` + `Using \`outputFileTracingRoot\` value: ${tracingRoot}.`); + } + let rootDir = tracingRoot || turbopackRoot; + if (!rootDir) { + const { rootDir: foundRootDir, lockFiles } = (0, _findroot.findRootDirAndLockFiles)(dir); + rootDir = foundRootDir; + if (!silent) { + (0, _findroot.warnDuplicatedLockFiles)(lockFiles); + } + } + if (!rootDir) { + throw Object.defineProperty(new Error('Failed to find the root directory of the project. This is a bug in Next.js.'), "__NEXT_ERROR_CODE", { + value: "E782", + enumerable: false, + configurable: true + }); + } + // Ensure both properties are set to the same value + result.outputFileTracingRoot = rootDir; + (0, _dset.dset)(result, [ + 'turbopack', + 'root' + ], rootDir); + (0, _setuphttpagentenv.setHttpClientAndAgentOptions)(result || _configshared.defaultConfig); + if (result.i18n) { + const { i18n } = result; + const i18nType = typeof i18n; + if (i18nType !== 'object') { + throw Object.defineProperty(new Error(`Specified i18n should be an object received ${i18nType}.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E148", + enumerable: false, + configurable: true + }); + } + if (!Array.isArray(i18n.locales)) { + throw Object.defineProperty(new Error(`Specified i18n.locales should be an Array received ${typeof i18n.locales}.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E227", + enumerable: false, + configurable: true + }); + } + if (i18n.locales.length > 100 && !silent) { + _log.warn(`Received ${i18n.locales.length} i18n.locales items which exceeds the recommended max of 100.\nSee more info here: https://nextjs.org/docs/advanced-features/i18n-routing#how-does-this-work-with-static-generation`); + } + const defaultLocaleType = typeof i18n.defaultLocale; + if (!i18n.defaultLocale || defaultLocaleType !== 'string') { + throw Object.defineProperty(new Error(`Specified i18n.defaultLocale should be a string.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E441", + enumerable: false, + configurable: true + }); + } + if (typeof i18n.domains !== 'undefined' && !Array.isArray(i18n.domains)) { + throw Object.defineProperty(new Error(`Specified i18n.domains must be an array of domain objects e.g. [ { domain: 'example.fr', defaultLocale: 'fr', locales: ['fr'] } ] received ${typeof i18n.domains}.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E456", + enumerable: false, + configurable: true + }); + } + if (i18n.domains) { + const invalidDomainItems = i18n.domains.filter((item)=>{ + var _i18n_domains; + if (!item || typeof item !== 'object') return true; + if (!item.defaultLocale) return true; + if (!item.domain || typeof item.domain !== 'string') return true; + if (item.domain.includes(':')) { + console.warn(`i18n domain: "${item.domain}" is invalid it should be a valid domain without protocol (https://) or port (:3000) e.g. example.vercel.sh`); + return true; + } + const defaultLocaleDuplicate = (_i18n_domains = i18n.domains) == null ? void 0 : _i18n_domains.find((altItem)=>altItem.defaultLocale === item.defaultLocale && altItem.domain !== item.domain); + if (!silent && defaultLocaleDuplicate) { + console.warn(`Both ${item.domain} and ${defaultLocaleDuplicate.domain} configured the defaultLocale ${item.defaultLocale} but only one can. Change one item's default locale to continue`); + return true; + } + let hasInvalidLocale = false; + if (Array.isArray(item.locales)) { + for (const locale of item.locales){ + if (typeof locale !== 'string') hasInvalidLocale = true; + for (const domainItem of i18n.domains || []){ + if (domainItem === item) continue; + if (domainItem.locales && domainItem.locales.includes(locale)) { + console.warn(`Both ${item.domain} and ${domainItem.domain} configured the locale (${locale}) but only one can. Remove it from one i18n.domains config to continue`); + hasInvalidLocale = true; + break; + } + } + } + } + return hasInvalidLocale; + }); + if (invalidDomainItems.length > 0) { + throw Object.defineProperty(new Error(`Invalid i18n.domains values:\n${invalidDomainItems.map((item)=>JSON.stringify(item)).join('\n')}\n\ndomains value must follow format { domain: 'example.fr', defaultLocale: 'fr', locales: ['fr'] }.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E413", + enumerable: false, + configurable: true + }); + } + } + if (!Array.isArray(i18n.locales)) { + throw Object.defineProperty(new Error(`Specified i18n.locales must be an array of locale strings e.g. ["en-US", "nl-NL"] received ${typeof i18n.locales}.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E432", + enumerable: false, + configurable: true + }); + } + const invalidLocales = i18n.locales.filter((locale)=>typeof locale !== 'string'); + if (invalidLocales.length > 0) { + throw Object.defineProperty(new Error(`Specified i18n.locales contains invalid values (${invalidLocales.map(String).join(', ')}), locales must be valid locale tags provided as strings e.g. "en-US".\n` + `See here for list of valid language sub-tags: http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry`), "__NEXT_ERROR_CODE", { + value: "E71", + enumerable: false, + configurable: true + }); + } + if (!i18n.locales.includes(i18n.defaultLocale)) { + throw Object.defineProperty(new Error(`Specified i18n.defaultLocale should be included in i18n.locales.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E515", + enumerable: false, + configurable: true + }); + } + const normalizedLocales = new Set(); + const duplicateLocales = new Set(); + i18n.locales.forEach((locale)=>{ + const localeLower = locale.toLowerCase(); + if (normalizedLocales.has(localeLower)) { + duplicateLocales.add(locale); + } + normalizedLocales.add(localeLower); + }); + if (duplicateLocales.size > 0) { + throw Object.defineProperty(new Error(`Specified i18n.locales contains the following duplicate locales:\n` + `${[ + ...duplicateLocales + ].join(', ')}\n` + `Each locale should be listed only once.\n` + `See more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E471", + enumerable: false, + configurable: true + }); + } + // make sure default Locale is at the front + i18n.locales = [ + i18n.defaultLocale, + ...i18n.locales.filter((locale)=>locale !== i18n.defaultLocale) + ]; + const localeDetectionType = typeof i18n.localeDetection; + if (localeDetectionType !== 'boolean' && localeDetectionType !== 'undefined') { + throw Object.defineProperty(new Error(`Specified i18n.localeDetection should be undefined or a boolean received ${localeDetectionType}.\nSee more info here: https://nextjs.org/docs/messages/invalid-i18n-config`), "__NEXT_ERROR_CODE", { + value: "E439", + enumerable: false, + configurable: true + }); + } + } + if (result.devIndicators !== false && ((_result_devIndicators = result.devIndicators) == null ? void 0 : _result_devIndicators.position)) { + const { position } = result.devIndicators; + const allowedValues = [ + 'top-left', + 'top-right', + 'bottom-left', + 'bottom-right' + ]; + if (!allowedValues.includes(position)) { + throw Object.defineProperty(new Error(`Invalid "devIndicator.position" provided, expected one of ${allowedValues.join(', ')}, received ${position}`), "__NEXT_ERROR_CODE", { + value: "E643", + enumerable: false, + configurable: true + }); + } + } + if (result.cacheLife) { + var _defaultConfig_cacheLife, _defaultConfig_experimental_staleTimes, _defaultConfig_experimental; + result.cacheLife = { + ..._configshared.defaultConfig.cacheLife, + ...result.cacheLife + }; + const defaultDefault = (_defaultConfig_cacheLife = _configshared.defaultConfig.cacheLife) == null ? void 0 : _defaultConfig_cacheLife['default']; + if (!defaultDefault || defaultDefault.revalidate === undefined || defaultDefault.expire === undefined || !((_defaultConfig_experimental = _configshared.defaultConfig.experimental) == null ? void 0 : (_defaultConfig_experimental_staleTimes = _defaultConfig_experimental.staleTimes) == null ? void 0 : _defaultConfig_experimental_staleTimes.static)) { + throw Object.defineProperty(new Error('No default cacheLife profile.'), "__NEXT_ERROR_CODE", { + value: "E350", + enumerable: false, + configurable: true + }); + } + const defaultCacheLifeProfile = result.cacheLife['default']; + if (!defaultCacheLifeProfile) { + result.cacheLife['default'] = defaultDefault; + } else { + if (defaultCacheLifeProfile.stale === undefined) { + var _result_experimental_staleTimes, _defaultConfig_experimental_staleTimes1, _defaultConfig_experimental1; + const staticStaleTime = (_result_experimental_staleTimes = result.experimental.staleTimes) == null ? void 0 : _result_experimental_staleTimes.static; + defaultCacheLifeProfile.stale = staticStaleTime ?? ((_defaultConfig_experimental1 = _configshared.defaultConfig.experimental) == null ? void 0 : (_defaultConfig_experimental_staleTimes1 = _defaultConfig_experimental1.staleTimes) == null ? void 0 : _defaultConfig_experimental_staleTimes1.static); + } + if (defaultCacheLifeProfile.revalidate === undefined) { + defaultCacheLifeProfile.revalidate = defaultDefault.revalidate; + } + if (defaultCacheLifeProfile.expire === undefined) { + defaultCacheLifeProfile.expire = result.expireTime ?? defaultDefault.expire; + } + } + } + if (result.cacheHandlers) { + const allowedHandlerNameRegex = /[a-z-]/; + if (typeof result.cacheHandlers !== 'object') { + throw Object.defineProperty(new Error(`Invalid "cacheHandlers" provided, expected an object e.g. { default: '/my-handler.js' }, received ${JSON.stringify(result.cacheHandlers)}`), "__NEXT_ERROR_CODE", { + value: "E901", + enumerable: false, + configurable: true + }); + } + const handlerKeys = Object.keys(result.cacheHandlers); + const invalidHandlerItems = []; + for (const key of handlerKeys){ + if (key === 'private') { + invalidHandlerItems.push({ + key, + reason: 'The cache handler for "use cache: private" cannot be customized.' + }); + } else if (!allowedHandlerNameRegex.test(key)) { + invalidHandlerItems.push({ + key, + reason: 'key must only use characters a-z and -' + }); + } else { + const handlerPath = result.cacheHandlers[key]; + if (handlerPath && !(0, _fs.existsSync)(handlerPath)) { + invalidHandlerItems.push({ + key, + reason: `cache handler path provided does not exist, received ${handlerPath}` + }); + } + } + if (invalidHandlerItems.length) { + throw Object.defineProperty(new Error(`Invalid handler fields configured for "cacheHandlers":\n${invalidHandlerItems.map((item)=>`${key}: ${item.reason}`).join('\n')}`), "__NEXT_ERROR_CODE", { + value: "E902", + enumerable: false, + configurable: true + }); + } + } + } + const userProvidedModularizeImports = result.modularizeImports; + // Unfortunately these packages end up re-exporting 10600 modules, for example: https://unpkg.com/browse/@mui/icons-material@5.11.16/esm/index.js. + // Leveraging modularizeImports tremendously reduces compile times for these. + result.modularizeImports = { + ...userProvidedModularizeImports || {}, + // This is intentionally added after the user-provided modularizeImports config. + '@mui/icons-material': { + transform: '@mui/icons-material/{{member}}' + }, + lodash: { + transform: 'lodash/{{member}}' + } + }; + const userProvidedOptimizePackageImports = ((_result_experimental4 = result.experimental) == null ? void 0 : _result_experimental4.optimizePackageImports) || []; + result.experimental.optimizePackageImports = [ + ...new Set([ + ...userProvidedOptimizePackageImports, + 'lucide-react', + 'date-fns', + 'lodash-es', + 'ramda', + 'antd', + 'react-bootstrap', + 'ahooks', + '@ant-design/icons', + '@headlessui/react', + '@headlessui-float/react', + '@heroicons/react/20/solid', + '@heroicons/react/24/solid', + '@heroicons/react/24/outline', + '@visx/visx', + '@tremor/react', + 'rxjs', + '@mui/material', + '@mui/icons-material', + 'recharts', + 'react-use', + 'effect', + '@effect/schema', + '@effect/platform', + '@effect/platform-node', + '@effect/platform-browser', + '@effect/platform-bun', + '@effect/sql', + '@effect/sql-mssql', + '@effect/sql-mysql2', + '@effect/sql-pg', + '@effect/sql-sqlite-node', + '@effect/sql-sqlite-bun', + '@effect/sql-sqlite-wasm', + '@effect/sql-sqlite-react-native', + '@effect/rpc', + '@effect/rpc-http', + '@effect/typeclass', + '@effect/experimental', + '@effect/opentelemetry', + '@material-ui/core', + '@material-ui/icons', + '@tabler/icons-react', + 'mui-core', + // We don't support wildcard imports for these configs, e.g. `react-icons/*` + // so we need to add them manually. + // In the future, we should consider automatically detecting packages that + // need to be optimized. + 'react-icons/ai', + 'react-icons/bi', + 'react-icons/bs', + 'react-icons/cg', + 'react-icons/ci', + 'react-icons/di', + 'react-icons/fa', + 'react-icons/fa6', + 'react-icons/fc', + 'react-icons/fi', + 'react-icons/gi', + 'react-icons/go', + 'react-icons/gr', + 'react-icons/hi', + 'react-icons/hi2', + 'react-icons/im', + 'react-icons/io', + 'react-icons/io5', + 'react-icons/lia', + 'react-icons/lib', + 'react-icons/lu', + 'react-icons/md', + 'react-icons/pi', + 'react-icons/ri', + 'react-icons/rx', + 'react-icons/si', + 'react-icons/sl', + 'react-icons/tb', + 'react-icons/tfi', + 'react-icons/ti', + 'react-icons/vsc', + 'react-icons/wi' + ]) + ]; + if (!result.htmlLimitedBots) { + // @ts-expect-error: override the htmlLimitedBots with default string, type covert: RegExp -> string + result.htmlLimitedBots = _isbot.HTML_LIMITED_BOT_UA_RE_STRING; + } + if (typeof result.experimental.mcpServer === 'undefined' && process.env.__NEXT_EXPERIMENTAL_MCP_SERVER === 'true') { + result.experimental.mcpServer = true; + } + if (result.cacheComponents) { + // TODO: remove once we've finished migrating internally to cacheComponents. + result.experimental.ppr = true; + // Prerender sourcemaps are enabled by default when using cacheComponents, unless explicitly disabled. + if (result.enablePrerenderSourceMaps === undefined) { + result.enablePrerenderSourceMaps = true; + } + } + // "use cache" was originally implicitly enabled with the cacheComponents flag, so + // we transfer the value for cacheComponents to the explicit useCache flag to ensure + // backwards compatibility. + if (result.experimental.useCache === undefined) { + result.experimental.useCache = result.cacheComponents; + } + // Store the distDirRoot in the config before it is modified for development mode + ; + result.distDirRoot = result.distDir; + if (phase === _constants.PHASE_DEVELOPMENT_SERVER) { + result.distDir = (0, _path.join)(result.distDir, 'dev'); + } + return result; +} +async function applyModifyConfig(config, phase, silent) { + // we always call modify config and phase can be used to only + // modify for specific times + if (config.adapterPath) { + const adapterMod = (0, _interopdefault.interopDefault)(await import((0, _url.pathToFileURL)(require.resolve(config.adapterPath)).href)); + if (typeof adapterMod.modifyConfig === 'function') { + if (!silent) { + _log.info(`Applying modifyConfig from ${adapterMod.name}`); + } + config = await adapterMod.modifyConfig(config, { + phase, + nextVersion: "16.2.1" + }); + } + } + return config; +} +// Cache config with keys to handle multiple configurations (e.g., multi-zone) +const configCache = new Map(); +// Generate cache key based on parameters that affect config output +// We need a unique key for cache because there can be multiple values +function getCacheKey(phase, dir, customConfig, reactProductionProfiling, debugPrerender, pid) { + // The next.config.js is unique per project, so we can use the dir as the major key + // to generate the unique config key. Include PID to invalidate on server restart. + const keyData = JSON.stringify({ + dir, + phase, + hasCustomConfig: Boolean(customConfig), + reactProductionProfiling: Boolean(reactProductionProfiling), + debugPrerender: Boolean(debugPrerender), + pid: pid || 0 + }); + return (0, _hash.djb2Hash)(keyData).toString(36); +} +async function loadConfig(phase, dir, { customConfig, rawConfig, silent = true, reportExperimentalFeatures, reactProductionProfiling, debugPrerender, bundler } = {}) { + // Generate cache key based on parameters that affect config output + // Include process.pid to invalidate cache on server restart + const cacheKey = getCacheKey(phase, dir, customConfig, reactProductionProfiling, debugPrerender, process.pid); + // Check if we have a cached result + const cachedResult = configCache.get(cacheKey); + if (cachedResult) { + // Call the experimental features callback if provided + if (reportExperimentalFeatures) { + reportExperimentalFeatures(cachedResult.configuredExperimentalFeatures); + } + // Return raw config if requested and available + if (rawConfig && cachedResult.rawConfig) { + return cachedResult.rawConfig; + } + return cachedResult.config; + } else { + // Reset next.config errors before loading config + // This happens on every config load to ensure fresh validation + _nextinstanceerrorstate.NextInstanceErrorState.nextConfig = []; + } + // Original implementation continues below... + if (!process.env.__NEXT_PRIVATE_RENDER_WORKER) { + try { + (0, _configutils.loadWebpackHook)(); + } catch (err) { + // this can fail in standalone mode as the files + // aren't traced/included + if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) { + throw err; + } + } + } + if (process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) { + // we don't apply assignDefaults or modifyConfig here as it + // has already been applied + const standaloneConfig = JSON.parse(process.env.__NEXT_PRIVATE_STANDALONE_CONFIG); + // Cache the standalone config + configCache.set(cacheKey, { + config: standaloneConfig, + rawConfig: standaloneConfig, + configuredExperimentalFeatures: [] + }); + return standaloneConfig; + } + const curLog = silent ? { + warn: ()=>{}, + info: ()=>{}, + error: ()=>{} + } : _log; + (0, _env.loadEnvConfig)(dir, phase === _constants.PHASE_DEVELOPMENT_SERVER, curLog); + let configFileName = 'next.config.js'; + const configuredExperimentalFeatures = []; + if (customConfig) { + // Check deprecation warnings on the custom config before merging with defaults + checkDeprecations(customConfig, configFileName, silent, dir); + const config = await applyModifyConfig(assignDefaultsAndValidate(dir, { + configOrigin: 'server', + configFileName, + ...customConfig + }, silent, phase), phase, silent); + // Cache the custom config result + configCache.set(cacheKey, { + config, + rawConfig: customConfig, + configuredExperimentalFeatures + }); + reportExperimentalFeatures == null ? void 0 : reportExperimentalFeatures(configuredExperimentalFeatures); + return config; + } + const path = await (0, _findup.default)(_constants.CONFIG_FILES, { + cwd: dir + }); + // If config file was found + if (path == null ? void 0 : path.length) { + var _userConfig_experimental, _userConfig_experimental1, _userConfig_experimental2, _userConfig_experimental3; + configFileName = (0, _path.basename)(path); + let userConfigModule; + try { + const envBefore = Object.assign({}, process.env); + // `import()` expects url-encoded strings, so the path must be properly + // escaped and (especially on Windows) absolute paths must pe prefixed + // with the `file://` protocol + if (process.env.__NEXT_TEST_MODE === 'jest') { + // dynamic import does not currently work inside of vm which + // jest relies on so we fall back to require for this case + // https://github.com/nodejs/node/issues/35889 + userConfigModule = require(path); + } else if (configFileName === 'next.config.ts') { + userConfigModule = await (0, _transpileconfig.transpileConfig)({ + nextConfigPath: path, + dir + }); + } else { + userConfigModule = await import((0, _url.pathToFileURL)(path).href); + } + const newEnv = {}; + for (const key of Object.keys(process.env)){ + if (envBefore[key] !== process.env[key]) { + newEnv[key] = process.env[key]; + } + } + (0, _env.updateInitialEnv)(newEnv); + if (rawConfig) { + // Cache the raw config + configCache.set(cacheKey, { + config: userConfigModule, + rawConfig: userConfigModule, + configuredExperimentalFeatures + }); + reportExperimentalFeatures == null ? void 0 : reportExperimentalFeatures(configuredExperimentalFeatures); + return userConfigModule; + } + } catch (err) { + // Capture the error for MCP tool reporting + _nextinstanceerrorstate.NextInstanceErrorState.nextConfig.push(err); + // TODO: Modify docs to add cases of failing next.config.ts transformation + curLog.error(`Failed to load ${configFileName}, see more info here https://nextjs.org/docs/messages/next-config-error`); + throw err; + } + const loadedConfig = Object.freeze(await (0, _configshared.normalizeConfig)(phase, (0, _interopdefault.interopDefault)(userConfigModule))); + if (loadedConfig.experimental) { + for (const name of Object.keys(loadedConfig.experimental)){ + const value = loadedConfig.experimental[name]; + if (name.startsWith('turbopack') && !process.env.TURBOPACK) { + continue; + } + addConfiguredExperimentalFeature(configuredExperimentalFeatures, name, value); + } + } + // Clone a new userConfig each time to avoid mutating the original + const userConfig = cloneObject(loadedConfig); + // Check deprecation warnings on the actual user config before merging with defaults + checkDeprecations(userConfig, configFileName, silent, dir); + // Always validate the config against schema in non minimal mode + if (!process.env.NEXT_MINIMAL && !silent) { + await validateConfigSchema(userConfig, configFileName, curLog.warn, (messages)=>{ + // Capture validation messages for MCP error reporting + if (messages.length > 0) { + const fullMessage = messages.join('\n'); + _nextinstanceerrorstate.NextInstanceErrorState.nextConfig.push(Object.defineProperty(new Error(fullMessage), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })); + } + }); + } + if (userConfig.target && userConfig.target !== 'server') { + throw Object.defineProperty(new Error(`The "target" property is no longer supported in ${configFileName}.\n` + 'See more info here https://nextjs.org/docs/messages/deprecated-target-config'), "__NEXT_ERROR_CODE", { + value: "E1029", + enumerable: false, + configurable: true + }); + } + if (phase === _constants.PHASE_PRODUCTION_BUILD && bundler !== _bundler.Bundler.Turbopack && ((_userConfig_experimental = userConfig.experimental) == null ? void 0 : _userConfig_experimental.immutableAssetToken)) { + // Silently ignore that flag for Webpack/Rspack since the server code assumes that all files + // in `static/chunks` are always immutable without checking the manifest. + userConfig.experimental.immutableAssetToken = undefined; + } + if (reactProductionProfiling) { + userConfig.reactProductionProfiling = reactProductionProfiling; + } + if (((_userConfig_experimental1 = userConfig.experimental) == null ? void 0 : _userConfig_experimental1.lightningCssFeatures) && !((_userConfig_experimental2 = userConfig.experimental) == null ? void 0 : _userConfig_experimental2.useLightningcss) && bundler !== _bundler.Bundler.Turbopack) { + curLog.warn(`experimental.lightningCssFeatures is set but experimental.useLightningcss is not enabled. ` + `The lightningCssFeatures option has no effect without useLightningcss.`); + } + if ((_userConfig_experimental3 = userConfig.experimental) == null ? void 0 : _userConfig_experimental3.useLightningcss) { + var _css, _this, _userConfig_experimental4; + const { loadBindings } = require('../build/swc'); + const isLightningSupported = (_this = await loadBindings((_userConfig_experimental4 = userConfig.experimental) == null ? void 0 : _userConfig_experimental4.useWasmBinary)) == null ? void 0 : (_css = _this.css) == null ? void 0 : _css.lightning; + if (!isLightningSupported) { + curLog.warn(`experimental.useLightningcss is set, but the setting is disabled because next-swc/wasm does not support it yet.`); + userConfig.experimental.useLightningcss = false; + } + } + // serialize the regex config into string + if ((userConfig == null ? void 0 : userConfig.htmlLimitedBots) instanceof RegExp) { + // @ts-expect-error: override the htmlLimitedBots with default string, type covert: RegExp -> string + userConfig.htmlLimitedBots = userConfig.htmlLimitedBots.source; + } + enforceExperimentalFeatures(userConfig, { + isDefaultConfig: false, + configuredExperimentalFeatures, + debugPrerender, + phase + }); + const completeConfig = assignDefaultsAndValidate(dir, { + configOrigin: (0, _path.relative)(dir, path), + configFile: path, + configFileName, + ...userConfig + }, silent, phase); + const finalConfig = await applyModifyConfig(completeConfig, phase, silent); + // Cache the final result + configCache.set(cacheKey, { + config: finalConfig, + rawConfig: userConfigModule, + configuredExperimentalFeatures + }); + if (reportExperimentalFeatures) { + reportExperimentalFeatures(configuredExperimentalFeatures); + } + return finalConfig; + } else { + const configBaseName = (0, _path.basename)(_constants.CONFIG_FILES[0], (0, _path.extname)(_constants.CONFIG_FILES[0])); + const unsupportedConfig = _findup.default.sync([ + `${configBaseName}.cjs`, + `${configBaseName}.cts`, + // TODO: Remove `as any` once we bump @types/node to v22.10.0+ + ...process.features.typescript ? [] : [ + 'next.config.mts' + ], + `${configBaseName}.json`, + `${configBaseName}.jsx`, + `${configBaseName}.tsx` + ], { + cwd: dir + }); + if (unsupportedConfig == null ? void 0 : unsupportedConfig.length) { + throw Object.defineProperty(new Error(`Configuring Next.js via '${(0, _path.basename)(unsupportedConfig)}' is not supported. Please replace the file with 'next.config.js', 'next.config.mjs', or 'next.config.ts'.`), "__NEXT_ERROR_CODE", { + value: "E203", + enumerable: false, + configurable: true + }); + } + } + const clonedDefaultConfig = cloneObject(_configshared.defaultConfig); + enforceExperimentalFeatures(clonedDefaultConfig, { + isDefaultConfig: true, + configuredExperimentalFeatures, + debugPrerender, + phase + }); + // always call assignDefaults to ensure settings like + // reactRoot can be updated correctly even with no next.config.js + const completeConfig = assignDefaultsAndValidate(dir, { + ...clonedDefaultConfig, + configFileName + }, silent, phase); + (0, _setuphttpagentenv.setHttpClientAndAgentOptions)(completeConfig); + const finalConfig = await applyModifyConfig(completeConfig, phase, silent); + // Cache the default config result + configCache.set(cacheKey, { + config: finalConfig, + rawConfig: clonedDefaultConfig, + configuredExperimentalFeatures + }); + if (reportExperimentalFeatures) { + reportExperimentalFeatures(configuredExperimentalFeatures); + } + return finalConfig; +} +function enforceExperimentalFeatures(config, options) { + const { configuredExperimentalFeatures, debugPrerender, isDefaultConfig, phase } = options; + config.experimental ??= {}; + if (debugPrerender && (phase === _constants.PHASE_PRODUCTION_BUILD || phase === _constants.PHASE_EXPORT)) { + // TODO: This is not an experimental feature, but should be enabled alongside other prerender debugging features. + config.enablePrerenderSourceMaps = true; + setExperimentalFeatureForDebugPrerender(config.experimental, 'serverSourceMaps', true, configuredExperimentalFeatures); + setExperimentalFeatureForDebugPrerender(config.experimental, process.env.TURBOPACK ? 'turbopackMinify' : 'serverMinification', false, configuredExperimentalFeatures); + setExperimentalFeatureForDebugPrerender(config.experimental, 'prerenderEarlyExit', false, configuredExperimentalFeatures); + setExperimentalFeatureForDebugPrerender(config.experimental, 'allowDevelopmentBuild', true, configuredExperimentalFeatures); + } + // TODO: Remove this once we've made Cache Components the default. + if (process.env.__NEXT_CACHE_COMPONENTS === 'true' && // We do respect an explicit value in the user config. + (config.cacheComponents === undefined || isDefaultConfig && !config.cacheComponents)) { + config.cacheComponents = true; + } + // TODO: Remove this once cachedNavigations is the default. + if (process.env.__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS === 'true' && // We do respect an explicit value in the user config. + (config.experimental.cachedNavigations === undefined || isDefaultConfig && !config.experimental.cachedNavigations)) { + config.experimental.cachedNavigations = true; + if (configuredExperimentalFeatures) { + addConfiguredExperimentalFeature(configuredExperimentalFeatures, 'cachedNavigations', true, 'enabled by `__NEXT_EXPERIMENTAL_CACHED_NAVIGATIONS`'); + } + } + // TODO: Remove this once appNewScrollHandler is the default. + if (process.env.__NEXT_EXPERIMENTAL_APP_NEW_SCROLL_HANDLER === 'true' && // We do respect an explicit value in the user config. + (config.experimental.appNewScrollHandler === undefined || isDefaultConfig && !config.experimental.appNewScrollHandler)) { + config.experimental.appNewScrollHandler = true; + if (configuredExperimentalFeatures) { + addConfiguredExperimentalFeature(configuredExperimentalFeatures, 'appNewScrollHandler', true, 'enabled by `__NEXT_EXPERIMENTAL_APP_NEW_SCROLL_HANDLER`'); + } + } + // TODO: Remove this once strictRouteTypes is the default. + if (process.env.__NEXT_EXPERIMENTAL_STRICT_ROUTE_TYPES === 'true' && // We do respect an explicit value in the user config. + (config.experimental.strictRouteTypes === undefined || isDefaultConfig && !config.experimental.strictRouteTypes)) { + config.experimental.strictRouteTypes = true; + if (configuredExperimentalFeatures) { + addConfiguredExperimentalFeature(configuredExperimentalFeatures, 'strictRouteTypes', true, 'enabled by `__NEXT_EXPERIMENTAL_STRICT_ROUTE_TYPES`'); + } + } + if (process.env.__NEXT_EXPERIMENTAL_TRANSITION_INDICATOR === 'true' && // We do respect an explicit value in the user config. + (config.experimental.transitionIndicator === undefined || isDefaultConfig && !config.experimental.transitionIndicator)) { + config.experimental.transitionIndicator = true; + if (configuredExperimentalFeatures) { + addConfiguredExperimentalFeature(configuredExperimentalFeatures, 'transitionIndicator', true, 'enabled by `__NEXT_EXPERIMENTAL_TRANSITION_INDICATOR`'); + } + } + if (process.env.__NEXT_ENABLE_REACT_COMPILER === 'true' && // We do respect an explicit value in the user config. + (config.reactCompiler === undefined || isDefaultConfig && !config.reactCompiler)) { + config.reactCompiler = true; + // TODO: Report if we enable non-experimental features via env + } +} +function addConfiguredExperimentalFeature(configuredExperimentalFeatures, key, value, reason) { + if (value !== _configshared.defaultConfig.experimental[key]) { + configuredExperimentalFeatures.push({ + key, + value, + reason + }); + } +} +function setExperimentalFeatureForDebugPrerender(experimentalConfig, key, value, configuredExperimentalFeatures) { + if (experimentalConfig[key] !== value) { + experimentalConfig[key] = value; + if (configuredExperimentalFeatures) { + const action = value === true ? 'enabled' : value === false ? 'disabled' : 'set'; + const reason = `${action} by \`--debug-prerender\``; + addConfiguredExperimentalFeature(configuredExperimentalFeatures, key, value, reason); + } + } +} +function cloneObject(obj) { + // Primitives & null + if (obj === null || typeof obj !== 'object') { + return obj; + } + // RegExp → clone via constructor + if (obj instanceof RegExp) { + return new RegExp(obj.source, obj.flags); + } + // Function → just reuse the function reference + if (typeof obj === 'function') { + return obj; + } + // Arrays → map each element + if (Array.isArray(obj)) { + return obj.map(cloneObject); + } + // Detect non‑plain objects (class instances) + const proto = Object.getPrototypeOf(obj); + const isPlainObject = proto === Object.prototype || proto === null; + // If it's not a plain object, just return the original + if (!isPlainObject) { + return obj; + } + // Plain object → create a new object with the same prototype + // and copy all properties, cloning data properties and keeping + // accessor properties (getters/setters) as‑is. + const result = Object.create(proto); + for (const key of Reflect.ownKeys(obj)){ + const descriptor = Object.getOwnPropertyDescriptor(obj, key); + if (descriptor && (descriptor.get || descriptor.set)) { + // Accessor property → copy descriptor as‑is (get/set functions) + Object.defineProperty(result, key, descriptor); + } else { + // Data property → clone the value + result[key] = cloneObject(obj[key]); + } + } + return result; +} +async function validateConfigSchema(userConfig, configFileName, warn, onValidationMessages) { + // We only validate the config against schema in non minimal mode + const { configSchema } = require('./config-schema'); + const state = configSchema.safeParse(userConfig); + if (!state.success) { + const [warnings, fatalErrors] = normalizeNextConfigZodErrors(state.error); + const hasFatalErrors = fatalErrors.length > 0; + // Group warnings first + if (warnings.length > 0) { + const warningMessages = [ + `Invalid ${configFileName} options detected: ` + ]; + for (const error of warnings){ + warningMessages.push(` ${error.split('\n').join('\n ')}`); + } + warningMessages.push('See more info here: https://nextjs.org/docs/messages/invalid-next-config'); + // Call the callback with validation messages if provided + if (onValidationMessages) { + onValidationMessages(warningMessages); + } + for (const message of warningMessages){ + warn(message); + } + } + // Then throw hard errors + if (hasFatalErrors) { + await (0, _flushtelemetry.flushTelemetry)(); + const errorMessages = [ + `Fatal next config errors found in ${configFileName} that must be fixed:` + ]; + for (const error of fatalErrors){ + errorMessages.push(` ${error.split('\n').join('\n ')}`); + } + errorMessages.push('These configuration options are required or have been migrated. Please update your configuration.'); + errorMessages.push('See more info here: https://nextjs.org/docs/messages/invalid-next-config'); + // Call the callback with validation messages if provided + if (onValidationMessages) { + onValidationMessages(errorMessages); + } + const fullErrorMessage = errorMessages.join('\n'); + throw Object.defineProperty(new Error(fullErrorMessage), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + } +} + +//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/crypto-utils.js b/cli/app/node_modules/next/dist/server/crypto-utils.js new file mode 100644 index 00000000000..57e234fec4d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/crypto-utils.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + decryptWithSecret: null, + encryptWithSecret: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + decryptWithSecret: function() { + return decryptWithSecret; + }, + encryptWithSecret: function() { + return encryptWithSecret; + } +}); +const _crypto = /*#__PURE__*/ _interop_require_default(require("crypto")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +// Background: +// https://security.stackexchange.com/questions/184305/why-would-i-ever-use-aes-256-cbc-if-aes-256-gcm-is-more-secure +const CIPHER_ALGORITHM = `aes-256-gcm`, CIPHER_KEY_LENGTH = 32, CIPHER_IV_LENGTH = 16, CIPHER_TAG_LENGTH = 16, CIPHER_SALT_LENGTH = 64; +const PBKDF2_ITERATIONS = 100000 // https://support.1password.com/pbkdf2/ +; +function encryptWithSecret(secret, data) { + const iv = _crypto.default.randomBytes(CIPHER_IV_LENGTH); + const salt = _crypto.default.randomBytes(CIPHER_SALT_LENGTH); + // https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest + const key = _crypto.default.pbkdf2Sync(secret, salt, PBKDF2_ITERATIONS, CIPHER_KEY_LENGTH, `sha512`); + const cipher = _crypto.default.createCipheriv(CIPHER_ALGORITHM, key, iv); + const encrypted = Buffer.concat([ + cipher.update(data, `utf8`), + cipher.final() + ]); + // https://nodejs.org/api/crypto.html#crypto_cipher_getauthtag + const tag = cipher.getAuthTag(); + return Buffer.concat([ + // Data as required by: + // Salt for Key: https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest + // IV: https://nodejs.org/api/crypto.html#crypto_class_decipher + // Tag: https://nodejs.org/api/crypto.html#crypto_decipher_setauthtag_buffer + salt, + iv, + tag, + encrypted + ]).toString(`hex`); +} +function decryptWithSecret(secret, encryptedData) { + const buffer = Buffer.from(encryptedData, `hex`); + const salt = buffer.slice(0, CIPHER_SALT_LENGTH); + const iv = buffer.slice(CIPHER_SALT_LENGTH, CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH); + const tag = buffer.slice(CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH, CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH + CIPHER_TAG_LENGTH); + const encrypted = buffer.slice(CIPHER_SALT_LENGTH + CIPHER_IV_LENGTH + CIPHER_TAG_LENGTH); + // https://nodejs.org/api/crypto.html#crypto_crypto_pbkdf2sync_password_salt_iterations_keylen_digest + const key = _crypto.default.pbkdf2Sync(secret, salt, PBKDF2_ITERATIONS, CIPHER_KEY_LENGTH, `sha512`); + const decipher = _crypto.default.createDecipheriv(CIPHER_ALGORITHM, key, iv); + decipher.setAuthTag(tag); + return decipher.update(encrypted) + decipher.final(`utf8`); +} + +//# sourceMappingURL=crypto-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/browser-logs/file-logger.js b/cli/app/node_modules/next/dist/server/dev/browser-logs/file-logger.js new file mode 100644 index 00000000000..1a2a2ce3239 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/browser-logs/file-logger.js @@ -0,0 +1,186 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + FileLogger: null, + getFileLogger: null, + test__resetFileLogger: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + FileLogger: function() { + return FileLogger; + }, + getFileLogger: function() { + return getFileLogger; + }, + test__resetFileLogger: function() { + return test__resetFileLogger; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class FileLogger { + initialize(distDir, mcpServerEnabled) { + this.logFilePath = _path.default.join(distDir, 'logs', `next-development.log`); + this.mcpServerEnabled = mcpServerEnabled; + if (this.isInitialized) { + return; + } + // Only initialize if mcpServer is enabled + if (!this.mcpServerEnabled) { + return; + } + try { + // Clean up the log file on each initialization + // ensure the directory exists + _fs.default.mkdirSync(_path.default.dirname(this.logFilePath), { + recursive: true + }); + _fs.default.writeFileSync(this.logFilePath, ''); + this.isInitialized = true; + } catch (error) { + console.error(error); + } + } + formatTimestamp() { + // Use performance.now() instead of Date.now() for avoid sync IO of cache components + const now = performance.now(); + const hours = Math.floor(now / 3600000).toString().padStart(2, '0'); + const minutes = Math.floor(now % 3600000 / 60000).toString().padStart(2, '0'); + const seconds = Math.floor(now % 60000 / 1000).toString().padStart(2, '0'); + const milliseconds = Math.floor(now % 1000).toString().padStart(3, '0'); + return `${hours}:${minutes}:${seconds}.${milliseconds}`; + } + formatLogEntry(entry) { + const { timestamp, source, level, message } = entry; + return JSON.stringify({ + timestamp, + source, + level, + message + }) + '\n'; + } + scheduleFlush() { + // Debounce the flush + if (this.flushTimer) { + clearTimeout(this.flushTimer); + this.flushTimer = null; + } + // Delay the log flush to ensure more logs can be batched together asynchronously + this.flushTimer = setTimeout(()=>{ + this.flush(); + }, 100); + } + getLogQueue() { + return this.logQueue; + } + flush() { + if (this.logQueue.length === 0) { + return; + } + // Only flush to disk if mcpServer is enabled + if (!this.mcpServerEnabled) { + this.logQueue.length = 0 // Clear the queue without GC overhead + ; + this.flushTimer = null; + return; + } + try { + // Ensure the directory exists before writing + const logDir = _path.default.dirname(this.logFilePath); + if (!_fs.default.existsSync(logDir)) { + _fs.default.mkdirSync(logDir, { + recursive: true + }); + } + const logsToWrite = this.logQueue.join(''); + // Writing logs to files synchronously to ensure they're written before returning + _fs.default.appendFileSync(this.logFilePath, logsToWrite); + this.logQueue.length = 0 // Clear the queue without GC overhead + ; + } catch (error) { + console.error('Failed to flush logs to file:', error); + } finally{ + this.flushTimer = null; + } + } + enqueueLog(formattedEntry) { + this.logQueue.push(formattedEntry); + // Cancel existing timer and start a new one to ensure all logs are flushed together + if (this.flushTimer) { + clearTimeout(this.flushTimer); + this.flushTimer = null; + } + this.scheduleFlush(); + } + log(source, level, message) { + // Don't log anything if mcpServer is disabled + if (!this.mcpServerEnabled) { + return; + } + if (!this.isInitialized) { + return; + } + const logEntry = { + timestamp: this.formatTimestamp(), + source, + level, + message + }; + const formattedEntry = this.formatLogEntry(logEntry); + this.enqueueLog(formattedEntry); + } + logServer(level, message) { + this.log('Server', level, message); + } + logBrowser(level, message) { + this.log('Browser', level, message); + } + // Force flush all queued logs immediately + forceFlush() { + if (this.flushTimer) { + clearTimeout(this.flushTimer); + this.flushTimer = null; + } + this.flush(); + } + // Cleanup method to flush logs on process exit + destroy() { + this.forceFlush(); + } + constructor(){ + this.logFilePath = ''; + this.isInitialized = false; + this.logQueue = []; + this.flushTimer = null; + this.mcpServerEnabled = false; + } +} +// Singleton instance +let fileLogger = null; +function getFileLogger() { + if (!fileLogger || process.env.NODE_ENV === 'test') { + fileLogger = new FileLogger(); + } + return fileLogger; +} +function test__resetFileLogger() { + if (fileLogger) { + fileLogger.destroy(); + } + fileLogger = null; +} + +//# sourceMappingURL=file-logger.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/browser-logs/receive-logs.js b/cli/app/node_modules/next/dist/server/dev/browser-logs/receive-logs.js new file mode 100644 index 00000000000..5a4e22c75b7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/browser-logs/receive-logs.js @@ -0,0 +1,558 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handleClientFileLogs: null, + handleLog: null, + receiveBrowserLogsTurbopack: null, + receiveBrowserLogsWebpack: null, + restoreUndefined: null, + stripFormatSpecifiers: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handleClientFileLogs: function() { + return handleClientFileLogs; + }, + handleLog: function() { + return handleLog; + }, + receiveBrowserLogsTurbopack: function() { + return receiveBrowserLogsTurbopack; + }, + receiveBrowserLogsWebpack: function() { + return receiveBrowserLogsWebpack; + }, + restoreUndefined: function() { + return restoreUndefined; + }, + stripFormatSpecifiers: function() { + return stripFormatSpecifiers; + } +}); +const _picocolors = require("../../../lib/picocolors"); +const _util = /*#__PURE__*/ _interop_require_default(require("util")); +const _sourcemap = require("./source-map"); +const _forwardlogsshared = require("../../../next-devtools/shared/forward-logs-shared"); +const _console = require("../../../client/lib/console"); +const _filelogger = require("./file-logger"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function restoreUndefined(x) { + if (x === _forwardlogsshared.UNDEFINED_MARKER) return undefined; + if (Array.isArray(x)) return x.map(restoreUndefined); + if (x && typeof x === 'object') { + for(let k in x){ + x[k] = restoreUndefined(x[k]); + } + } + return x; +} +function cleanConsoleArgsForFileLogging(args) { + /** + * Use formatConsoleArgs to strip out background and color format specifiers + * and keep only the original string content for file logging + */ try { + return (0, _console.formatConsoleArgs)(args); + } catch { + // Fallback to simple string conversion if formatting fails + return args.map((arg)=>typeof arg === 'string' ? arg : _util.default.inspect(arg, { + depth: 2 + })).join(' '); + } +} +const methods = [ + 'log', + 'info', + 'warn', + 'debug', + 'table', + 'error', + 'assert', + 'dir', + 'dirxml', + 'group', + 'groupCollapsed', + 'groupEnd' +]; +const methodsToSkipInspect = new Set([ + 'table', + 'dir', + 'dirxml', + 'group', + 'groupCollapsed', + 'groupEnd' +]); +// we aren't overriding console, we're just making a (slightly convoluted) helper for replaying user console methods +const forwardConsole = { + ...console, + ...Object.fromEntries(methods.map((method)=>[ + method, + (...args)=>console[method](...args.map((arg)=>methodsToSkipInspect.has(method) || typeof arg !== 'object' || arg === null ? arg : _util.default.inspect(arg, { + depth: Infinity, + colors: true + }))) + ])) +}; +async function deserializeArgData(arg) { + try { + // we want undefined to be represented as it would be in the browser from the user's perspective (otherwise it would be stripped away/shown as null) + if (arg === _forwardlogsshared.UNDEFINED_MARKER) { + return restoreUndefined(arg); + } + return restoreUndefined(JSON.parse(arg)); + } catch { + return arg; + } +} +const colorError = (mapped, config)=>{ + const colorFn = (config == null ? void 0 : config.applyColor) === undefined || config.applyColor ? _picocolors.red : (x)=>x; + switch(mapped.kind){ + case 'mapped-stack': + case 'stack': + { + return ((config == null ? void 0 : config.prefix) ? colorFn(config == null ? void 0 : config.prefix) : '') + `\n${colorFn(mapped.stack)}`; + } + case 'with-frame-code': + { + return ((config == null ? void 0 : config.prefix) ? colorFn(config == null ? void 0 : config.prefix) : '') + `\n${colorFn(mapped.stack)}\n${mapped.frameCode}`; + } + // a more sophisticated version of this allows the user to config if they want ignored frames (but we need to be sure to source map them) + case 'all-ignored': + { + return (config == null ? void 0 : config.prefix) ? colorFn(config == null ? void 0 : config.prefix) : ''; + } + default: + {} + } + mapped; +}; +function processConsoleFormatStrings(args) { + /** + * this handles the case formatting is applied to the console log + * otherwise we will see the format specifier directly in the terminal output + */ if (args.length > 0 && typeof args[0] === 'string') { + const formatString = args[0]; + if (formatString.includes('%s') || formatString.includes('%d') || formatString.includes('%i') || formatString.includes('%f') || formatString.includes('%o') || formatString.includes('%O') || formatString.includes('%c')) { + try { + const formatted = _util.default.format(...args); + return [ + formatted + ]; + } catch { + return args; + } + } + } + return args; +} +function stripFormatSpecifiers(args) { + if (args.length === 0 || typeof args[0] !== 'string') return args; + const fmtIn = String(args[0]); + const rest = args.slice(1); + if (!fmtIn.includes('%')) return args; + let fmtOut = ''; + let argPtr = 0; + for(let i = 0; i < fmtIn.length; i++){ + if (fmtIn[i] !== '%') { + fmtOut += fmtIn[i]; + continue; + } + if (fmtIn[i + 1] === '%') { + fmtOut += '%'; + i++; + continue; + } + const token = fmtIn[++i]; + if (!token) { + fmtOut += '%'; + continue; + } + if ('csdifoOj'.includes(token) || token === 'O') { + if (argPtr < rest.length) { + if (token === 'c') { + argPtr++; + } else if (token === 'o' || token === 'O' || token === 'j') { + const obj = rest[argPtr++]; + fmtOut += _util.default.inspect(obj, { + depth: 2, + colors: false + }); + } else { + // string(...) is safe for remaining specifiers + fmtOut += String(rest[argPtr++]); + } + } + continue; + } + fmtOut += '%' + token; + } + const result = [ + fmtOut + ]; + if (argPtr < rest.length) { + result.push(...rest.slice(argPtr)); + } + return result; +} +async function prepareFormattedErrorArgs(entry, ctx, distDir) { + const mapped = await (0, _sourcemap.getSourceMappedStackFrames)(entry.stack, ctx, distDir); + return [ + colorError(mapped, { + prefix: entry.prefix + }) + ]; +} +async function prepareConsoleArgs(entry, ctx, distDir) { + const deserialized = await Promise.all(entry.args.map(async (arg)=>{ + if (arg.kind === 'arg') { + const data = await deserializeArgData(arg.data); + if (entry.method === 'warn' && typeof data === 'string') { + return (0, _picocolors.yellow)(data); + } + return data; + } + if (!arg.stack) return (0, _picocolors.red)(arg.prefix); + const mapped = await (0, _sourcemap.getSourceMappedStackFrames)(arg.stack, ctx, distDir); + return colorError(mapped, { + prefix: arg.prefix, + applyColor: false + }); + })); + return processConsoleFormatStrings(deserialized); +} +async function prepareConsoleErrorArgs(entry, ctx, distDir) { + const deserialized = await Promise.all(entry.args.map(async (arg)=>{ + if (arg.kind === 'arg') { + if (arg.isRejectionMessage) return (0, _picocolors.red)(arg.data); + return deserializeArgData(arg.data); + } + if (!arg.stack) return (0, _picocolors.red)(arg.prefix); + const mapped = await (0, _sourcemap.getSourceMappedStackFrames)(arg.stack, ctx, distDir); + return colorError(mapped, { + prefix: arg.prefix + }); + })); + const mappedStack = await (0, _sourcemap.getSourceMappedStackFrames)(entry.consoleErrorStack, ctx, distDir); + /** + * don't show the stack + codeblock when there are errors present, since: + * - it will look overwhelming to see 2 stacks and 2 code blocks + * - the user already knows where the console.error is at because we append the location + */ const location = (0, _sourcemap.getConsoleLocation)(mappedStack); + if (entry.args.some((a)=>a.kind === 'formatted-error-arg')) { + const result = stripFormatSpecifiers(deserialized); + if (location) { + result.push((0, _picocolors.dim)(`(${location})`)); + } + return result; + } + const result = [ + ...processConsoleFormatStrings(deserialized), + colorError(mappedStack) + ]; + if (location) { + result.push((0, _picocolors.dim)(`(${location})`)); + } + return result; +} +async function handleTable(entry, browserPrefix, ctx, distDir) { + const deserializedArgs = await Promise.all(entry.args.map(async (arg)=>{ + if (arg.kind === 'formatted-error-arg') { + return { + stack: arg.stack + }; + } + return deserializeArgData(arg.data); + })); + const location = await (async ()=>{ + if (!entry.consoleMethodStack) { + return; + } + const frames = await (0, _sourcemap.getSourceMappedStackFrames)(entry.consoleMethodStack, ctx, distDir); + return (0, _sourcemap.getConsoleLocation)(frames); + })(); + // we can't inline pass browser prefix, but it looks better multiline for table anyways + forwardConsole.log(browserPrefix); + forwardConsole.table(...deserializedArgs); + if (location) { + forwardConsole.log((0, _picocolors.dim)(`(${location})`)); + } +} +async function handleTrace(entry, browserPrefix, ctx, distDir) { + const deserializedArgs = await Promise.all(entry.args.map(async (arg)=>{ + if (arg.kind === 'formatted-error-arg') { + if (!arg.stack) return (0, _picocolors.red)(arg.prefix); + const mapped = await (0, _sourcemap.getSourceMappedStackFrames)(arg.stack, ctx, distDir); + return colorError(mapped, { + prefix: arg.prefix + }); + } + return deserializeArgData(arg.data); + })); + if (!entry.consoleMethodStack) { + forwardConsole.log(browserPrefix, ...deserializedArgs, '[Trace unavailable]'); + return; + } + // TODO(rob): refactor so we can re-use result and not re-run the entire source map to avoid trivial post processing + const [mapped, mappedIgnored] = await Promise.all([ + (0, _sourcemap.getSourceMappedStackFrames)(entry.consoleMethodStack, ctx, distDir, false), + (0, _sourcemap.getSourceMappedStackFrames)(entry.consoleMethodStack, ctx, distDir) + ]); + const location = (0, _sourcemap.getConsoleLocation)(mappedIgnored); + forwardConsole.log(browserPrefix, ...deserializedArgs, `\n${mapped.stack}`, ...location ? [ + `\n${(0, _picocolors.dim)(`(${location})`)}` + ] : []); +} +async function handleDir(entry, browserPrefix, ctx, distDir) { + const loggableEntry = await prepareConsoleArgs(entry, ctx, distDir); + const consoleMethod = forwardConsole[entry.method] || forwardConsole.log; + if (entry.consoleMethodStack) { + const mapped = await (0, _sourcemap.getSourceMappedStackFrames)(entry.consoleMethodStack, ctx, distDir); + const location = (0, _picocolors.dim)(`(${(0, _sourcemap.getConsoleLocation)(mapped)})`); + const originalWrite = process.stdout.write.bind(process.stdout); + let captured = ''; + process.stdout.write = (chunk)=>{ + captured += chunk; + return true; + }; + try { + consoleMethod(...loggableEntry); + } finally{ + process.stdout.write = originalWrite; + } + const preserved = captured.replace(/\r?\n$/, ''); + originalWrite(`${browserPrefix}${preserved} ${location}\n`); + return; + } + consoleMethod(browserPrefix, ...loggableEntry); +} +async function handleDefaultConsole(entry, browserPrefix, ctx, distDir, config, isServerLog) { + const consoleArgs = await prepareConsoleArgs(entry, ctx, distDir); + const withStackEntry = await (0, _sourcemap.withLocation)({ + original: consoleArgs, + stack: entry.consoleMethodStack || null + }, ctx, distDir, config); + const consoleMethod = forwardConsole[entry.method] || forwardConsole.log; + consoleMethod(browserPrefix, ...withStackEntry); + // Process enqueued logs and write to file + // Log to file with correct source based on context + const fileLogger = (0, _filelogger.getFileLogger)(); + // Use cleaned console args to strip out background and color format specifiers + const message = cleanConsoleArgsForFileLogging(consoleArgs); + if (isServerLog) { + fileLogger.logServer(entry.method.toUpperCase(), message); + } else { + fileLogger.logBrowser(entry.method.toUpperCase(), message); + } +} +// Log levels from most severe to least severe +// Lower index = more severe +const LOG_LEVEL_PRIORITY = { + error: 0, + warn: 1, + verbose: 2 +}; +// Map console methods to log levels +const METHOD_TO_LEVEL = { + error: 'error', + warn: 'warn', + info: 'verbose', + log: 'verbose', + debug: 'verbose', + table: 'verbose', + trace: 'verbose', + dir: 'verbose', + dirxml: 'verbose', + assert: 'error', + group: 'verbose', + groupCollapsed: 'verbose', + groupEnd: 'verbose' +}; +function shouldShowEntry(entry, config) { + // If config is false, don't show any entries + if (config === false) { + return false; + } + // Determine the effective minimum log level + const minLevel = typeof config === 'string' ? config : 'verbose' // true means show everything + ; + const minPriority = LOG_LEVEL_PRIORITY[minLevel]; + // formatted-error and any-logged-error are always treated as errors + if (entry.kind === 'formatted-error' || entry.kind === 'any-logged-error') { + return LOG_LEVEL_PRIORITY['error'] <= minPriority; + } + if (entry.kind === 'console') { + const entryLevel = METHOD_TO_LEVEL[entry.method] || 'log'; + return LOG_LEVEL_PRIORITY[entryLevel] <= minPriority; + } + return false; +} +async function handleLog(entries, ctx, distDir, config) { + // Determine the source based on the context + const isServerLog = ctx.isServer || ctx.isEdgeServer; + const browserPrefix = isServerLog ? (0, _picocolors.cyan)('[server]') : (0, _picocolors.cyan)('[browser]'); + const fileLogger = (0, _filelogger.getFileLogger)(); + for (const entry of entries){ + // Filter entries based on config mode + if (!shouldShowEntry(entry, config)) { + continue; + } + try { + switch(entry.kind){ + case 'console': + { + switch(entry.method){ + case 'table': + { + // timeout based abort on source mapping result + await handleTable(entry, browserPrefix, ctx, distDir); + break; + } + // ignore frames + case 'trace': + { + await handleTrace(entry, browserPrefix, ctx, distDir); + break; + } + case 'dir': + { + await handleDir(entry, browserPrefix, ctx, distDir); + break; + } + case 'dirxml': + { + // xml log thing maybe needs an impl + // fallthrough + } + case 'group': + case 'groupCollapsed': + case 'groupEnd': + { + // [browser] undefined (app/page.tsx:8:11) console.group + // fallthrough + } + case 'assert': + { + // check console assert + // fallthrough + } + case 'log': + case 'info': + case 'debug': + case 'error': + case 'warn': + { + await handleDefaultConsole(entry, browserPrefix, ctx, distDir, config, isServerLog); + break; + } + default: + { + entry; + } + } + break; + } + // any logged errors are anything that are logged as "red" in the browser but aren't only an Error (console.error, Promise.reject(100)) + case 'any-logged-error': + { + const consoleArgs = await prepareConsoleErrorArgs(entry, ctx, distDir); + forwardConsole.error(browserPrefix, ...consoleArgs); + // Process enqueued logs and write to file + fileLogger.logBrowser('ERROR', cleanConsoleArgsForFileLogging(consoleArgs)); + break; + } + // formatted error is an explicit error event (rejections, uncaught errors) + case 'formatted-error': + { + const formattedArgs = await prepareFormattedErrorArgs(entry, ctx, distDir); + forwardConsole.error(browserPrefix, ...formattedArgs); + // Process enqueued logs and write to file + fileLogger.logBrowser('ERROR', cleanConsoleArgsForFileLogging(formattedArgs)); + break; + } + default: + {} + } + } catch { + switch(entry.kind){ + case 'any-logged-error': + { + const consoleArgs = await prepareConsoleErrorArgs(entry, ctx, distDir); + forwardConsole.error(browserPrefix, ...consoleArgs); + // Process enqueued logs and write to file + fileLogger.logBrowser('ERROR', cleanConsoleArgsForFileLogging(consoleArgs)); + break; + } + case 'console': + { + const consoleMethod = forwardConsole[entry.method] || forwardConsole.log; + const consoleArgs = await prepareConsoleArgs(entry, ctx, distDir); + consoleMethod(browserPrefix, ...consoleArgs); + // Process enqueued logs and write to file + fileLogger.logBrowser('ERROR', cleanConsoleArgsForFileLogging(consoleArgs)); + break; + } + case 'formatted-error': + { + forwardConsole.error(browserPrefix, `${entry.prefix}\n`, entry.stack); + // Process enqueued logs and write to file + fileLogger.logBrowser('ERROR', cleanConsoleArgsForFileLogging([ + `${entry.prefix}\n${entry.stack}` + ])); + break; + } + default: + {} + } + } + } +} +async function receiveBrowserLogsWebpack(opts) { + const { entries, router, sourceType, clientStats, serverStats, edgeServerStats, rootDirectory, distDir } = opts; + const isAppDirectory = router === 'app'; + const isServer = sourceType === 'server'; + const isEdgeServer = sourceType === 'edge-server'; + const ctx = { + bundler: 'webpack', + isServer, + isEdgeServer, + isAppDirectory, + clientStats, + serverStats, + edgeServerStats, + rootDirectory + }; + await handleLog(entries, ctx, distDir, opts.config); +} +async function receiveBrowserLogsTurbopack(opts) { + const { entries, router, sourceType, project, projectPath, distDir } = opts; + const isAppDirectory = router === 'app'; + const isServer = sourceType === 'server'; + const isEdgeServer = sourceType === 'edge-server'; + const ctx = { + bundler: 'turbopack', + project, + projectPath, + isServer, + isEdgeServer, + isAppDirectory + }; + await handleLog(entries, ctx, distDir, opts.config); +} +async function handleClientFileLogs(logs) { + const fileLogger = (0, _filelogger.getFileLogger)(); + for (const log of logs){ + fileLogger.logBrowser(log.level, log.message); + } +} + +//# sourceMappingURL=receive-logs.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/browser-logs/source-map.js b/cli/app/node_modules/next/dist/server/dev/browser-logs/source-map.js new file mode 100644 index 00000000000..90375f248d7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/browser-logs/source-map.js @@ -0,0 +1,222 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getConsoleLocation: null, + getSourceMappedStackFrames: null, + mapFramesUsingBundler: null, + withLocation: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getConsoleLocation: function() { + return getConsoleLocation; + }, + getSourceMappedStackFrames: function() { + return getSourceMappedStackFrames; + }, + mapFramesUsingBundler: function() { + return mapFramesUsingBundler; + }, + withLocation: function() { + return withLocation; + } +}); +const _middlewarewebpack = require("../middleware-webpack"); +const _middlewareturbopack = require("../middleware-turbopack"); +const _picocolors = require("../../../lib/picocolors"); +const _parsestack = require("../../lib/parse-stack"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _lrucache = require("../../lib/lru-cache"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function mapFramesUsingBundler(frames, ctx) { + switch(ctx.bundler){ + case 'webpack': + { + const { isServer, isEdgeServer, isAppDirectory, clientStats, serverStats, edgeServerStats, rootDirectory } = ctx; + const res = await (0, _middlewarewebpack.getOriginalStackFrames)({ + isServer, + isEdgeServer, + isAppDirectory, + frames, + clientStats, + serverStats, + edgeServerStats, + rootDirectory + }); + return res; + } + case 'turbopack': + { + const { project, projectPath, isServer, isEdgeServer, isAppDirectory } = ctx; + const res = await (0, _middlewareturbopack.getOriginalStackFrames)({ + project, + projectPath, + frames, + isServer, + isEdgeServer, + isAppDirectory + }); + return res; + } + default: + { + return null; + } + } +} +// converts _next/static/chunks/... to file:///.next/static/chunks/... for parseStack +// todo: where does next dev overlay handle this case and re-use that logic +function preprocessStackTrace(stackTrace, distDir) { + return stackTrace.split('\n').map((line)=>{ + const match = line.match(/^(\s*at\s+.*?)\s+\(([^)]+)\)$/); + if (match) { + const [, prefix, location] = match; + if (location.startsWith('_next/static/') && distDir) { + const normalizedDistDir = distDir.replace(/\\/g, '/').replace(/\/$/, ''); + const absolutePath = normalizedDistDir + '/' + location.slice('_next/'.length); + const fileUrl = `file://${_path.default.resolve(absolutePath)}`; + return `${prefix} (${fileUrl})`; + } + } + return line; + }).join('\n'); +} +const cache = new _lrucache.LRUCache(25); +async function getSourceMappedStackFramesInternal(stackTrace, ctx, distDir, ignore = true) { + try { + var _filteredFrames_find; + const normalizedStack = preprocessStackTrace(stackTrace, distDir); + const frames = (0, _parsestack.parseStack)(normalizedStack, distDir); + if (frames.length === 0) { + return { + kind: 'stack', + stack: stackTrace + }; + } + const mappingResults = await mapFramesUsingBundler(frames, ctx); + const processedFrames = mappingResults.map((result, index)=>({ + result, + originalFrame: frames[index] + })).map(({ result, originalFrame })=>{ + var _originalStackFrame_file; + if (result.status === 'rejected') { + return { + kind: 'rejected', + frameText: formatStackFrame(originalFrame), + codeFrame: null + }; + } + const { originalStackFrame, originalCodeFrame } = result.value; + if ((originalStackFrame == null ? void 0 : originalStackFrame.ignored) && ignore) { + return { + kind: 'ignored' + }; + } + // should we apply this generally to dev overlay (dev overlay does not ignore chrome-extension://) + if (originalStackFrame == null ? void 0 : (_originalStackFrame_file = originalStackFrame.file) == null ? void 0 : _originalStackFrame_file.startsWith('chrome-extension://')) { + return { + kind: 'ignored' + }; + } + return { + kind: 'success', + // invariant: if result is not rejected and not ignored, then original stack frame exists + // verifiable by tracing `getOriginalStackFrame`. The invariant exists because of bad types + frameText: formatStackFrame(originalStackFrame), + codeFrame: originalCodeFrame + }; + }); + const allIgnored = processedFrames.every((frame)=>frame.kind === 'ignored'); + // we want to handle **all** ignored vs all/some rejected differently + // if all are ignored we should show no frames + // if all are rejected, we want to fallback to showing original stack frames + if (allIgnored) { + return { + kind: 'all-ignored' + }; + } + const filteredFrames = processedFrames.filter((frame)=>frame.kind !== 'ignored'); + if (filteredFrames.length === 0) { + return { + kind: 'stack', + stack: stackTrace + }; + } + const stackOutput = filteredFrames.map((frame)=>frame.frameText).join('\n'); + const firstFrameCode = (_filteredFrames_find = filteredFrames.find((frame)=>frame.codeFrame)) == null ? void 0 : _filteredFrames_find.codeFrame; + if (firstFrameCode) { + return { + kind: 'with-frame-code', + frameCode: firstFrameCode, + stack: stackOutput, + frames: filteredFrames + }; + } + // i don't think this a real case, but good for exhaustion + return { + kind: 'mapped-stack', + stack: stackOutput, + frames: filteredFrames + }; + } catch (error) { + return { + kind: 'stack', + stack: stackTrace + }; + } +} +async function getSourceMappedStackFrames(stackTrace, ctx, distDir, ignore = true) { + const cacheKey = `sm_${stackTrace}-${ctx.bundler}-${ctx.isAppDirectory}-${ctx.isEdgeServer}-${ctx.isServer}-${distDir}-${ignore}`; + const cacheItem = cache.get(cacheKey); + if (cacheItem) { + return cacheItem; + } + const result = await getSourceMappedStackFramesInternal(stackTrace, ctx, distDir, ignore); + cache.set(cacheKey, result); + return result; +} +function formatStackFrame(frame) { + const functionName = frame.methodName || ''; + const location = frame.file && frame.line1 ? `${frame.file}:${frame.line1}${frame.column1 ? `:${frame.column1}` : ''}` : frame.file || ''; + return ` at ${functionName} (${location})`; +} +const withLocation = async ({ original, stack }, ctx, distDir, _config)=>{ + if (!stack) { + return original; + } + const res = await getSourceMappedStackFrames(stack, ctx, distDir); + const location = getConsoleLocation(res); + if (!location) { + return original; + } + return [ + ...original, + (0, _picocolors.dim)(`(${location})`) + ]; +}; +const getConsoleLocation = (mapped)=>{ + if (mapped.kind !== 'mapped-stack' && mapped.kind !== 'with-frame-code') { + return null; + } + const first = mapped.frames.at(0); + if (!first) { + return null; + } + // we don't want to show the name of parent function (at thing in stack), just source location for minimal noise + const match = first.frameText.match(/\(([^)]+)\)/); + const locationText = match ? match[1] : first.frameText; + return locationText; +}; + +//# sourceMappingURL=source-map.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/debug-channel.js b/cli/app/node_modules/next/dist/server/dev/debug-channel.js new file mode 100644 index 00000000000..04c2e250d43 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/debug-channel.js @@ -0,0 +1,87 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + connectReactDebugChannel: null, + connectReactDebugChannelForHtmlRequest: null, + deleteReactDebugChannelForHtmlRequest: null, + setReactDebugChannelForHtmlRequest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + connectReactDebugChannel: function() { + return connectReactDebugChannel; + }, + connectReactDebugChannelForHtmlRequest: function() { + return connectReactDebugChannelForHtmlRequest; + }, + deleteReactDebugChannelForHtmlRequest: function() { + return deleteReactDebugChannelForHtmlRequest; + }, + setReactDebugChannelForHtmlRequest: function() { + return setReactDebugChannelForHtmlRequest; + } +}); +const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper"); +const _hotreloadertypes = require("./hot-reloader-types"); +const reactDebugChannelsByHtmlRequestId = new Map(); +function connectReactDebugChannel(requestId, debugChannel, sendToClient) { + const reader = debugChannel.readable.pipeThrough(// We're sending the chunks in batches to reduce overhead in the browser. + (0, _nodewebstreamshelper.createBufferedTransformStream)({ + maxBufferByteLength: 128 * 1024 + })).getReader(); + const stop = ()=>{ + sendToClient({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK, + requestId, + chunk: null + }); + }; + const onError = (err)=>{ + console.error(Object.defineProperty(new Error('React debug channel stream error', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E810", + enumerable: false, + configurable: true + })); + stop(); + }; + const progress = (entry)=>{ + if (entry.done) { + stop(); + } else { + sendToClient({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK, + requestId, + chunk: entry.value + }); + reader.read().then(progress, onError); + } + }; + reader.read().then(progress, onError); +} +function connectReactDebugChannelForHtmlRequest(htmlRequestId, sendToClient) { + const debugChannel = reactDebugChannelsByHtmlRequestId.get(htmlRequestId); + if (!debugChannel) { + return; + } + reactDebugChannelsByHtmlRequestId.delete(htmlRequestId); + connectReactDebugChannel(htmlRequestId, debugChannel, sendToClient); +} +function setReactDebugChannelForHtmlRequest(htmlRequestId, debugChannel) { + // TODO: Clean up after a timeout, in case the client never connects, e.g. + // when CURL'ing the page, or loading the page with JavaScript disabled etc. + reactDebugChannelsByHtmlRequestId.set(htmlRequestId, debugChannel); +} +function deleteReactDebugChannelForHtmlRequest(htmlRequestId) { + reactDebugChannelsByHtmlRequestId.delete(htmlRequestId); +} + +//# sourceMappingURL=debug-channel.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/dev-indicator-server-state.js b/cli/app/node_modules/next/dist/server/dev/dev-indicator-server-state.js new file mode 100644 index 00000000000..56ce7d5f9a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/dev-indicator-server-state.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "devIndicatorServerState", { + enumerable: true, + get: function() { + return devIndicatorServerState; + } +}); +const devIndicatorServerState = { + disabledUntil: 0 +}; + +//# sourceMappingURL=dev-indicator-server-state.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/get-source-map-from-file.js b/cli/app/node_modules/next/dist/server/dev/get-source-map-from-file.js new file mode 100644 index 00000000000..f2aab1f3c4a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/get-source-map-from-file.js @@ -0,0 +1,100 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getSourceMapFromFile", { + enumerable: true, + get: function() { + return getSourceMapFromFile; + } +}); +const _promises = /*#__PURE__*/ _interop_require_default(require("fs/promises")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _url = /*#__PURE__*/ _interop_require_default(require("url")); +const _datauritobuffer = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/data-uri-to-buffer")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function getSourceMapUrl(fileContents) { + const regex = /\/\/[#@] ?sourceMappingURL=([^\s'"]+)\s*$/gm; + let match = null; + for(;;){ + let next = regex.exec(fileContents); + if (next == null) { + break; + } + match = next; + } + if (!(match && match[1])) { + return null; + } + return match[1].toString(); +} +async function getSourceMapFromFile(filename) { + filename = filename.startsWith('file://') ? _url.default.fileURLToPath(filename) : filename; + let fileContents; + try { + fileContents = await _promises.default.readFile(filename, 'utf-8'); + } catch (error) { + throw Object.defineProperty(new Error(`Failed to read file contents of ${filename}.`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E466", + enumerable: false, + configurable: true + }); + } + const sourceUrl = getSourceMapUrl(fileContents); + if (!sourceUrl) { + return undefined; + } + if (sourceUrl.startsWith('data:')) { + let buffer; + try { + buffer = (0, _datauritobuffer.default)(sourceUrl); + } catch (error) { + throw Object.defineProperty(new Error(`Failed to parse source map URL for ${filename}.`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E199", + enumerable: false, + configurable: true + }); + } + if (buffer.type !== 'application/json') { + throw Object.defineProperty(new Error(`Unknown source map type for ${filename}: ${buffer.typeFull}.`), "__NEXT_ERROR_CODE", { + value: "E113", + enumerable: false, + configurable: true + }); + } + try { + return JSON.parse(buffer.toString()); + } catch (error) { + throw Object.defineProperty(new Error(`Failed to parse source map for ${filename}.`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E318", + enumerable: false, + configurable: true + }); + } + } + const sourceMapFilename = _path.default.resolve(_path.default.dirname(filename), decodeURIComponent(sourceUrl)); + try { + const sourceMapContents = await _promises.default.readFile(sourceMapFilename, 'utf-8'); + return JSON.parse(sourceMapContents.toString()); + } catch (error) { + throw Object.defineProperty(new Error(`Failed to parse source map ${sourceMapFilename}.`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E220", + enumerable: false, + configurable: true + }); + } +} + +//# sourceMappingURL=get-source-map-from-file.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/hot-middleware.js b/cli/app/node_modules/next/dist/server/dev/hot-middleware.js new file mode 100644 index 00000000000..ca34718ed9d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/hot-middleware.js @@ -0,0 +1,274 @@ +// Based on https://github.com/webpack-contrib/webpack-hot-middleware/blob/9708d781ae0e46179cf8ea1a94719de4679aaf53/middleware.js +// Included License below +// Copyright JS Foundation and other contributors +// Permission is hereby granted, free of charge, to any person obtaining +// a copy of this software and associated documentation files (the +// 'Software'), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to +// permit persons to whom the Software is furnished to do so, subject to +// the following conditions: +// The above copyright notice and this permission notice shall be +// included in all copies or substantial portions of the Software. +// THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, +// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +// SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "WebpackHotMiddleware", { + enumerable: true, + get: function() { + return WebpackHotMiddleware; + } +}); +const _utils = require("../../build/utils"); +const _hotreloadertypes = require("./hot-reloader-types"); +const _devindicatorserverstate = require("./dev-indicator-server-state"); +const _messages = require("./messages"); +function isMiddlewareStats(stats) { + for (const key of stats.compilation.entrypoints.keys()){ + if ((0, _utils.isMiddlewareFilename)(key)) { + return true; + } + } + return false; +} +function statsToJson(stats) { + if (!stats) return {}; + return stats.toJson({ + all: false, + errors: true, + hash: true, + warnings: true + }); +} +function getStatsForSyncEvent(clientStats, serverStats) { + if (!clientStats) return serverStats == null ? void 0 : serverStats.stats; + if (!serverStats) return clientStats == null ? void 0 : clientStats.stats; + // Prefer the server compiler stats if it has errors. + // Otherwise we may end up in a state where the client compilation is the latest but without errors. + // This causes the error overlay to not display the build error. + if (serverStats.stats.hasErrors()) { + return serverStats.stats; + } + // Return the latest stats + return serverStats.ts > clientStats.ts ? serverStats.stats : clientStats.stats; +} +class WebpackHotMiddleware { + constructor(compilers, versionInfo, devtoolsFrontendUrl, config, devToolsConfig){ + this.versionInfo = versionInfo; + this.devtoolsFrontendUrl = devtoolsFrontendUrl; + this.config = config; + this.devToolsConfig = devToolsConfig; + this.clientsWithoutHtmlRequestId = new Set(); + this.clientsByHtmlRequestId = new Map(); + this.closed = false; + this.clientLatestStats = null; + this.middlewareLatestStats = null; + this.serverLatestStats = null; + this.onClientInvalid = ()=>{ + var _this_serverLatestStats; + if (this.closed || ((_this_serverLatestStats = this.serverLatestStats) == null ? void 0 : _this_serverLatestStats.stats.hasErrors())) return; + this.publish({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILDING + }); + }; + this.onClientDone = (statsResult)=>{ + var _this_serverLatestStats; + this.clientLatestStats = { + ts: Date.now(), + stats: statsResult + }; + if (this.closed || ((_this_serverLatestStats = this.serverLatestStats) == null ? void 0 : _this_serverLatestStats.stats.hasErrors())) return; + this.publishStats(statsResult); + }; + this.onServerInvalid = ()=>{ + var _this_serverLatestStats, _this_clientLatestStats; + if (!((_this_serverLatestStats = this.serverLatestStats) == null ? void 0 : _this_serverLatestStats.stats.hasErrors())) return; + this.serverLatestStats = null; + if ((_this_clientLatestStats = this.clientLatestStats) == null ? void 0 : _this_clientLatestStats.stats) { + this.publishStats(this.clientLatestStats.stats); + } + }; + this.onServerDone = (statsResult)=>{ + if (this.closed) return; + if (statsResult.hasErrors()) { + this.serverLatestStats = { + ts: Date.now(), + stats: statsResult + }; + this.publishStats(statsResult); + } + }; + this.onEdgeServerInvalid = ()=>{ + var _this_middlewareLatestStats, _this_clientLatestStats; + if (!((_this_middlewareLatestStats = this.middlewareLatestStats) == null ? void 0 : _this_middlewareLatestStats.stats.hasErrors())) return; + this.middlewareLatestStats = null; + if ((_this_clientLatestStats = this.clientLatestStats) == null ? void 0 : _this_clientLatestStats.stats) { + this.publishStats(this.clientLatestStats.stats); + } + }; + this.onEdgeServerDone = (statsResult)=>{ + if (this.closed) return; + if (!isMiddlewareStats(statsResult)) { + this.onServerInvalid(); + this.onServerDone(statsResult); + } + if (statsResult.hasErrors()) { + this.middlewareLatestStats = { + ts: Date.now(), + stats: statsResult + }; + this.publishStats(statsResult); + } + }; + this./** + * To sync we use the most recent stats but also we append middleware + * errors. This is because it is possible that middleware fails to compile + * and we still want to show the client overlay with the error while + * the error page should be rendered just fine. + */ onHMR = (client, htmlRequestId)=>{ + if (this.closed) return; + if (htmlRequestId) { + this.clientsByHtmlRequestId.set(htmlRequestId, client); + } else { + this.clientsWithoutHtmlRequestId.add(client); + } + client.addEventListener('close', ()=>{ + if (htmlRequestId) { + this.clientsByHtmlRequestId.delete(htmlRequestId); + } else { + this.clientsWithoutHtmlRequestId.delete(client); + } + }); + const syncStats = getStatsForSyncEvent(this.clientLatestStats, this.serverLatestStats); + if (syncStats) { + var _this_middlewareLatestStats; + const stats = statsToJson(syncStats); + const middlewareStats = statsToJson((_this_middlewareLatestStats = this.middlewareLatestStats) == null ? void 0 : _this_middlewareLatestStats.stats); + if (_devindicatorserverstate.devIndicatorServerState.disabledUntil < Date.now()) { + _devindicatorserverstate.devIndicatorServerState.disabledUntil = 0; + } + this.publish({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SYNC, + hash: stats.hash, + errors: [ + ...stats.errors || [], + ...middlewareStats.errors || [] + ], + warnings: [ + ...stats.warnings || [], + ...middlewareStats.warnings || [] + ], + versionInfo: this.versionInfo, + debug: { + devtoolsFrontendUrl: this.devtoolsFrontendUrl + }, + devIndicator: _devindicatorserverstate.devIndicatorServerState, + devToolsConfig: this.devToolsConfig + }); + } + }; + this.publishStats = (statsResult)=>{ + const stats = statsResult.toJson({ + all: false, + hash: true, + warnings: true, + errors: true, + moduleTrace: true + }); + this.publish({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILT, + hash: stats.hash, + warnings: stats.warnings || [], + errors: stats.errors || [] + }); + }; + this.getClient = (htmlRequestId)=>{ + return this.clientsByHtmlRequestId.get(htmlRequestId); + }; + this.publishToClient = (client, message)=>{ + if (this.closed) { + return; + } + const data = typeof message.type === 'number' ? (0, _messages.createBinaryHmrMessageData)(message) : JSON.stringify(message); + client.send(data); + }; + this.publish = (message)=>{ + if (this.closed) { + return; + } + for (const wsClient of [ + ...this.clientsWithoutHtmlRequestId, + ...this.clientsByHtmlRequestId.values() + ]){ + this.publishToClient(wsClient, message); + } + }; + this.publishToLegacyClients = (message)=>{ + if (this.closed) { + return; + } + // Clients with a request ID are inferred App Router clients. If Cache + // Components is not enabled, we consider those legacy clients. Pages + // Router clients are also considered legacy clients. TODO: Maybe mark + // clients as App Router / Pages Router clients explicitly, instead of + // inferring it from the presence of a request ID. + if (!this.config.cacheComponents) { + for (const wsClient of this.clientsByHtmlRequestId.values()){ + this.publishToClient(wsClient, message); + } + } + for (const wsClient of this.clientsWithoutHtmlRequestId){ + this.publishToClient(wsClient, message); + } + }; + this.close = ()=>{ + if (this.closed) { + return; + } + // Can't remove compiler plugins, so we just set a flag and noop if closed + // https://github.com/webpack/tapable/issues/32#issuecomment-350644466 + this.closed = true; + for (const wsClient of [ + ...this.clientsWithoutHtmlRequestId, + ...this.clientsByHtmlRequestId.values() + ]){ + // it's okay to not cleanly close these websocket connections, this is dev + wsClient.terminate(); + } + this.clientsWithoutHtmlRequestId.clear(); + this.clientsByHtmlRequestId.clear(); + }; + this.deleteClient = (client, htmlRequestId)=>{ + if (htmlRequestId) { + this.clientsByHtmlRequestId.delete(htmlRequestId); + } else { + this.clientsWithoutHtmlRequestId.delete(client); + } + }; + this.hasClients = ()=>{ + return this.clientsWithoutHtmlRequestId.size + this.clientsByHtmlRequestId.size > 0; + }; + this.getClientCount = ()=>{ + return this.clientsWithoutHtmlRequestId.size + this.clientsByHtmlRequestId.size; + }; + compilers[0].hooks.invalid.tap('webpack-hot-middleware', this.onClientInvalid); + compilers[0].hooks.done.tap('webpack-hot-middleware', this.onClientDone); + compilers[1].hooks.invalid.tap('webpack-hot-middleware', this.onServerInvalid); + compilers[1].hooks.done.tap('webpack-hot-middleware', this.onServerDone); + compilers[2].hooks.done.tap('webpack-hot-middleware', this.onEdgeServerDone); + compilers[2].hooks.invalid.tap('webpack-hot-middleware', this.onEdgeServerInvalid); + } + updateDevToolsConfig(newConfig) { + this.devToolsConfig = newConfig; + } +} + +//# sourceMappingURL=hot-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/hot-reloader-rspack.js b/cli/app/node_modules/next/dist/server/dev/hot-reloader-rspack.js new file mode 100644 index 00000000000..a5d83a5988a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/hot-reloader-rspack.js @@ -0,0 +1,171 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, /** + * Rspack Persistent Cache Strategy for Next.js Development + * + * Rspack's persistent caching differs from Webpack in how it manages module graphs. + * While Webpack incrementally updates modules, Rspack operates on complete module + * graph snapshots for cache restoration. + * + * Problem: + * - Next.js dev server starts with no page modules in the initial entry points + * - When Rspack restores from persistent cache, it finds no modules and purges + * the entire module graph + * - Later page requests find no cached module information, preventing cache reuse + * + * Solution: + * - Track successfully built page entries after each compilation + * - Restore these entries on dev server restart to maintain module graph continuity + * - This ensures previously compiled pages can leverage persistent cache for faster builds + */ "default", { + enumerable: true, + get: function() { + return HotReloaderRspack; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _promises = /*#__PURE__*/ _interop_require_default(require("fs/promises")); +const _crypto = require("crypto"); +const _hotreloaderwebpack = /*#__PURE__*/ _interop_require_default(require("./hot-reloader-webpack")); +const _ondemandentryhandler = require("./on-demand-entry-handler"); +const _constants = require("../../shared/lib/constants"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class HotReloaderRspack extends _hotreloaderwebpack.default { + async afterCompile(multiCompiler) { + // Always initialize the fallback error watcher for Rspack. + // Rspack may restore/retain the previous build's error state, so without this + // a page that previously failed to build might not be rebuilt on the next request. + await super.buildFallbackError(); + const rspackStartSpan = this.hotReloaderSpan.traceChild('rspack-after-compile'); + await rspackStartSpan.traceAsyncFn(async ()=>{ + const hash = (0, _crypto.createHash)('sha1'); + multiCompiler.compilers.forEach((compiler)=>{ + const cache = compiler.options.cache; + if (typeof cache === 'object' && 'version' in cache && cache.version) { + hash.update(cache.version); + if (compiler.name === _constants.COMPILER_NAMES.client) { + this.isClientCacheEnabled = true; + } else if (compiler.name === _constants.COMPILER_NAMES.server) { + this.isServerCacheEnabled = true; + } else if (compiler.name === _constants.COMPILER_NAMES.edgeServer) { + this.isEdgeServerCacheEnabled = true; + } + } else { + hash.update('-'); + } + return undefined; + }); + this.builtEntriesCachePath = _path.default.join(this.distDir, 'cache', 'rspack', hash.digest('hex').substring(0, 16), 'built-entries.json'); + const hasBuiltEntriesCache = await _promises.default.access(this.builtEntriesCachePath).then(()=>true, ()=>false); + if (hasBuiltEntriesCache) { + try { + const builtEntries = JSON.parse(await _promises.default.readFile(this.builtEntriesCachePath, 'utf-8') || '{}'); + await Promise.all(Object.keys(builtEntries).map(async (entryKey)=>{ + const entryData = builtEntries[entryKey]; + const isEntry = entryData.type === _ondemandentryhandler.EntryTypes.ENTRY; + const isChildEntry = entryData.type === _ondemandentryhandler.EntryTypes.CHILD_ENTRY; + // Check if the page was removed or disposed and remove it + if (isEntry) { + const pageExists = !entryData.dispose && await _promises.default.access(entryData.absolutePagePath).then(()=>true, ()=>false); + if (!pageExists) { + delete builtEntries[entryKey]; + return; + } else if (!('hash' in builtEntries[entryKey]) || builtEntries[entryKey].hash !== await calculateFileHash(entryData.absolutePagePath)) { + delete builtEntries[entryKey]; + return; + } + } + // For child entries, if it has an entry file and it's gone, remove it + if (isChildEntry) { + if (entryData.absoluteEntryFilePath) { + const pageExists = !entryData.dispose && await _promises.default.access(entryData.absoluteEntryFilePath).then(()=>true, ()=>false); + if (!pageExists) { + delete builtEntries[entryKey]; + return; + } else { + if (!('hash' in builtEntries[entryKey]) || builtEntries[entryKey].hash !== await calculateFileHash(entryData.absoluteEntryFilePath)) { + delete builtEntries[entryKey]; + return; + } + } + } + } + })); + Object.assign((0, _ondemandentryhandler.getEntries)(multiCompiler.outputPath), builtEntries); + } catch (error) { + console.error('Rspack failed to read built entries cache: ', error); + } + } + }); + } + async ensurePage({ page, clientOnly, appPaths, definition, isApp, url }) { + await super.ensurePage({ + page, + clientOnly, + appPaths, + definition, + isApp, + url + }); + const entries = (0, _ondemandentryhandler.getEntries)(this.multiCompiler.outputPath); + const builtEntries = {}; + await Promise.all(Object.keys(entries).map(async (entryName)=>{ + const entry = entries[entryName]; + if (entry.status !== _ondemandentryhandler.BUILT) return; + const result = /^(client|server|edge-server)@(app|pages|root)@(.*)/g.exec(entryName); + const [, key /* pageType */ , , ] = result// this match should always happen + ; + if (key === 'client' && !this.isClientCacheEnabled) return; + if (key === 'server' && !this.isServerCacheEnabled) return; + if (key === 'edge-server' && !this.isEdgeServerCacheEnabled) return; + // TODO: Rspack does not store middleware entries in persistent cache, causing + // test/integration/middleware-src/test/index.test.ts to fail. This is a temporary + // workaround to skip middleware entry caching until Rspack properly supports it. + if (page === '/middleware') { + return; + } + let hash; + if (entry.type === _ondemandentryhandler.EntryTypes.ENTRY) { + hash = await calculateFileHash(entry.absolutePagePath); + } else if (entry.absoluteEntryFilePath) { + hash = await calculateFileHash(entry.absoluteEntryFilePath); + } + if (!hash) { + return; + } + builtEntries[entryName] = entry; + builtEntries[entryName].hash = hash; + })); + const hasBuitEntriesCache = await _promises.default.access(this.builtEntriesCachePath).then(()=>true, ()=>false); + try { + if (!hasBuitEntriesCache) { + await _promises.default.mkdir(_path.default.dirname(this.builtEntriesCachePath), { + recursive: true + }); + } + await _promises.default.writeFile(this.builtEntriesCachePath, JSON.stringify(builtEntries, null, 2)); + } catch (error) { + console.error('Rspack failed to write built entries cache: ', error); + } + } + constructor(...args){ + super(...args), this.isClientCacheEnabled = false, this.isServerCacheEnabled = false, this.isEdgeServerCacheEnabled = false; + } +} +async function calculateFileHash(filePath, algorithm = 'sha256') { + if (!await _promises.default.access(filePath).then(()=>true, ()=>false)) { + return; + } + const fileBuffer = await _promises.default.readFile(filePath); + const hash = (0, _crypto.createHash)(algorithm); + hash.update(fileBuffer); + return hash.digest('hex'); +} + +//# sourceMappingURL=hot-reloader-rspack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js b/cli/app/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js new file mode 100644 index 00000000000..cb1215645cb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/hot-reloader-shared-utils.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getVersionInfo: null, + matchNextPageBundleRequest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getVersionInfo: function() { + return getVersionInfo; + }, + matchNextPageBundleRequest: function() { + return matchNextPageBundleRequest; + } +}); +const _pathmatch = require("../../shared/lib/router/utils/path-match"); +const _parseversioninfo = require("./parse-version-info"); +const matchNextPageBundleRequest = (0, _pathmatch.getPathMatch)('/_next/static/chunks/pages/:path*.js(\\.map|)'); +async function getVersionInfo() { + let installed = '0.0.0'; + try { + installed = require('next/package.json').version; + let res; + try { + // use NPM registry regardless user using Yarn + res = await fetch('https://registry.npmjs.org/-/package/next/dist-tags'); + } catch { + // ignore fetch errors + } + if (!res || !res.ok) return { + installed, + staleness: 'unknown' + }; + const { latest, canary } = await res.json(); + return (0, _parseversioninfo.parseVersionInfo)({ + installed, + latest, + canary + }); + } catch (e) { + console.error(e); + return { + installed, + staleness: 'unknown' + }; + } +} + +//# sourceMappingURL=hot-reloader-shared-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js b/cli/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js new file mode 100644 index 00000000000..378a3898581 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/hot-reloader-turbopack.js @@ -0,0 +1,1478 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createHotReloaderTurbopack", { + enumerable: true, + get: function() { + return createHotReloaderTurbopack; + } +}); +const _promises = require("fs/promises"); +const _inspector = /*#__PURE__*/ _interop_require_wildcard(require("inspector")); +const _path = require("path"); +const _url = require("url"); +const _ws = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/ws")); +const _store = require("../../build/output/store"); +const _hotreloadertypes = require("./hot-reloader-types"); +const _swc = require("../../build/swc"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _constants = require("../../shared/lib/constants"); +const _middlewareturbopack = require("./middleware-turbopack"); +const _utils = require("../../shared/lib/utils"); +const _utils1 = require("../utils"); +const _requirecache = require("./require-cache"); +const _renderserver = require("../lib/render-server"); +const _denormalizepagepath = require("../../shared/lib/page-path/denormalize-page-path"); +const _trace = require("../../trace"); +const _turbopackutils = require("./turbopack-utils"); +const _setupdevbundler = require("../lib/router-utils/setup-dev-bundler"); +const _manifestloader = require("../../shared/lib/turbopack/manifest-loader"); +const _ondemandentryhandler = require("./on-demand-entry-handler"); +const _entrykey = require("../../shared/lib/turbopack/entry-key"); +const _messages = require("./messages"); +const _encryptionutilsserver = require("../app-render/encryption-utils-server"); +const _apppageroutedefinition = require("../route-definitions/app-page-route-definition"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _entries = require("../../build/entries"); +const _ismetadataroute = require("../../lib/metadata/is-metadata-route"); +const _patcherrorinspect = require("../patch-error-inspect"); +const _getnexterrorfeedbackmiddleware = require("../../next-devtools/server/get-next-error-feedback-middleware"); +const _utils2 = require("../../shared/lib/turbopack/utils"); +const _getdevoverlayfontmiddleware = require("../../next-devtools/server/font/get-dev-overlay-font-middleware"); +const _devindicatorserverstate = require("./dev-indicator-server-state"); +const _devindicatormiddleware = require("../../next-devtools/server/dev-indicator-middleware"); +const _restartdevservermiddleware = require("../../next-devtools/server/restart-dev-server-middleware"); +const _compilationevents = require("../../shared/lib/turbopack/compilation-events"); +const _getsupportedbrowsers = require("../../build/get-supported-browsers"); +const _printbuilderrors = require("../../build/print-build-errors"); +const _receivelogs = require("./browser-logs/receive-logs"); +const _normalizepath = require("../../lib/normalize-path"); +const _devtoolsconfigmiddleware = require("../../next-devtools/server/devtools-config-middleware"); +const _attachnodejsdebuggermiddleware = require("../../next-devtools/server/attach-nodejs-debugger-middleware"); +const _debugchannel = require("./debug-channel"); +const _hotreloadersharedutils = require("./hot-reloader-shared-utils"); +const _getmcpmiddleware = require("../mcp/get-mcp-middleware"); +const _geterrors = require("../mcp/tools/get-errors"); +const _getpagemetadata = require("../mcp/tools/get-page-metadata"); +const _formaterrors = require("../mcp/tools/utils/format-errors"); +const _mcptelemetrytracker = require("../mcp/mcp-telemetry-tracker"); +const _filelogger = require("./browser-logs/file-logger"); +const _serializederrors = require("./serialized-errors"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const wsServer = new _ws.default.Server({ + noServer: true +}); +const isTestMode = !!(process.env.NEXT_TEST_MODE || process.env.__NEXT_TEST_MODE || process.env.DEBUG); +const sessionId = Math.floor(Number.MAX_SAFE_INTEGER * Math.random()); +function setupServerHmr(project, { clear }) { + const serverHmrSubscriptions = new Map(); + /** + * Subscribe to HMR updates for a server chunk. + * @param chunkPath - Server chunk output path (e.g., "server/chunks/ssr/..._.js") + */ function subscribeToServerHmr(chunkPath) { + if (serverHmrSubscriptions.has(chunkPath)) { + return; + } + const subscription = project.hmrEvents(chunkPath, _swc.HmrTarget.Server); + serverHmrSubscriptions.set(chunkPath, subscription); + (async ()=>{ + // Skip initial state + await subscription.next(); + for await (const result of subscription){ + const update = result; + // Fully re-evaluate all chunks from disk. Clears the module cache and + // notifies browsers to refetch RSC. + if (update.type === 'restart') { + await clear(); + continue; + } + if (update.type !== 'partial') { + continue; + } + const instruction = update.instruction; + if (!instruction || instruction.type !== 'EcmascriptMergedUpdate') { + continue; + } + if (typeof __turbopack_server_hmr_apply__ === 'function') { + const applied = __turbopack_server_hmr_apply__(update); + if (!applied) { + await clear(); + } + } + } + })().catch(async (err)=>{ + console.error('[Server HMR] Subscription error:', err); + serverHmrSubscriptions.delete(chunkPath); + await clear(); + }); + } + // Listen to the Rust bindings update us on changing server HMR chunk paths + ; + (async ()=>{ + try { + const serverHmrChunkPaths = project.hmrChunkNamesSubscribe(_swc.HmrTarget.Server); + // Process chunk paths (both initial and subsequent updates) + for await (const data of serverHmrChunkPaths){ + const currentChunkPaths = new Set(data.chunkNames.filter((path)=>path.endsWith('.js'))); + // Clean up subscriptions for removed chunk paths (like when pages are deleted) + const chunkPathsToRemove = []; + for (const chunkPath of serverHmrSubscriptions.keys()){ + if (!currentChunkPaths.has(chunkPath)) { + chunkPathsToRemove.push(chunkPath); + } + } + for (const chunkPath of chunkPathsToRemove){ + var _subscription_return; + const subscription = serverHmrSubscriptions.get(chunkPath); + subscription == null ? void 0 : (_subscription_return = subscription.return) == null ? void 0 : _subscription_return.call(subscription); + serverHmrSubscriptions.delete(chunkPath); + } + // Subscribe to HMR events for new server chunks + for (const chunkPath of currentChunkPaths){ + if (!serverHmrSubscriptions.has(chunkPath)) { + subscribeToServerHmr(chunkPath); + } + } + } + } catch (err) { + console.error('[Server HMR Setup] Error in chunk path subscription:', err); + } + })(); + return serverHmrSubscriptions; +} +/** + * Replaces turbopack:///[project] with the specified project in the `source` field. + */ function rewriteTurbopackSources(projectRoot, sourceMap) { + if ('sections' in sourceMap) { + for (const section of sourceMap.sections){ + rewriteTurbopackSources(projectRoot, section.map); + } + } else { + for(let i = 0; i < sourceMap.sources.length; i++){ + sourceMap.sources[i] = (0, _url.pathToFileURL)((0, _path.join)(projectRoot, sourceMap.sources[i].replace(/turbopack:\/\/\/\[project\]/, ''))).toString(); + } + } +} +function getSourceMapFromTurbopack(project, projectRoot, sourceURL) { + let sourceMapJson = null; + try { + sourceMapJson = project.getSourceMapSync(sourceURL); + } catch (err) {} + if (sourceMapJson === null) { + return undefined; + } else { + const payload = JSON.parse(sourceMapJson); + // The sourcemap from Turbopack is not yet written to disk so its `sources` + // are not absolute paths yet. We need to rewrite them to be absolute paths. + rewriteTurbopackSources(projectRoot, payload); + return payload; + } +} +async function createHotReloaderTurbopack(opts, serverFields, distDir, resetFetch, lockfile, serverFastRefresh) { + var _opts_nextConfig_turbopack, _nextConfig_watchOptions, _opts_nextConfig_experimental; + const dev = true; + const buildId = 'development'; + const { nextConfig, dir: projectPath } = opts; + const bindings = (0, _swc.getBindingsSync)(); + // Turbopack requires native bindings and cannot run with WASM bindings. + // Detect this early and give a clear, actionable error message. + if (bindings.isWasm) { + throw Object.defineProperty(new Error(`Turbopack is not supported on this platform (${process.platform}/${process.arch}) because native bindings are not available. ` + `Only WebAssembly (WASM) bindings were loaded, and Turbopack requires native bindings.\n\n` + `To use Next.js on this platform, use Webpack instead:\n` + ` next dev --webpack\n\n` + `For more information, see: https://nextjs.org/docs/app/api-reference/turbopack#supported-platforms`), "__NEXT_ERROR_CODE", { + value: "E1049", + enumerable: false, + configurable: true + }); + } + // For the debugging purpose, check if createNext or equivalent next instance setup in test cases + // works correctly. Normally `run-test` hides output so only will be visible when `--debug` flag is used. + if (isTestMode) { + ; + require('console').log('Creating turbopack project', { + dir: projectPath, + testMode: isTestMode + }); + } + const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0; + const hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, { + version: "16.2.1" + }); + // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing + // of the current `next dev` invocation. + hotReloaderSpan.stop(); + // Initialize log monitor for file logging + // Enable logging by default in development mode + const mcpServerEnabled = !!nextConfig.experimental.mcpServer; + const fileLogger = (0, _filelogger.getFileLogger)(); + fileLogger.initialize(distDir, mcpServerEnabled); + const encryptionKey = await (0, _encryptionutilsserver.generateEncryptionKeyBase64)({ + isBuild: false, + distDir + }); + // TODO: Implement + let clientRouterFilters; + if (nextConfig.experimental.clientRouterFilter) { + // TODO this need to be set correctly for filesystem cache to work + } + const supportedBrowsers = (0, _getsupportedbrowsers.getSupportedBrowsers)(projectPath, dev); + const currentNodeJsVersion = process.versions.node; + const rootPath = ((_opts_nextConfig_turbopack = opts.nextConfig.turbopack) == null ? void 0 : _opts_nextConfig_turbopack.root) || opts.nextConfig.outputFileTracingRoot || projectPath; + const project = await bindings.turbo.createProject({ + rootPath, + projectPath: (0, _normalizepath.normalizePath)((0, _path.relative)(rootPath, projectPath) || '.'), + distDir, + nextConfig: opts.nextConfig, + watch: { + enable: dev, + pollIntervalMs: (_nextConfig_watchOptions = nextConfig.watchOptions) == null ? void 0 : _nextConfig_watchOptions.pollIntervalMs + }, + dev, + env: process.env, + defineEnv: (0, _swc.createDefineEnv)({ + isTurbopack: true, + clientRouterFilters, + config: nextConfig, + dev, + distDir, + projectPath, + fetchCacheKeyPrefix: opts.nextConfig.experimental.fetchCacheKeyPrefix, + hasRewrites, + // TODO: Implement + middlewareMatchers: undefined, + rewrites: opts.fsChecker.rewrites + }), + buildId, + encryptionKey, + previewProps: opts.fsChecker.previewProps, + browserslistQuery: supportedBrowsers.join(', '), + noMangling: false, + writeRoutesHashesManifest: false, + currentNodeJsVersion, + isPersistentCachingEnabled: (0, _utils2.isFileSystemCacheEnabledForDev)(opts.nextConfig), + nextVersion: "16.2.1", + serverHmr: serverFastRefresh + }, { + memoryLimit: (_opts_nextConfig_experimental = opts.nextConfig.experimental) == null ? void 0 : _opts_nextConfig_experimental.turbopackMemoryLimit, + isShortSession: false + }); + (0, _compilationevents.backgroundLogCompilationEvents)(project, { + eventTypes: [ + 'StartupCacheInvalidationEvent', + 'TimingEvent', + 'SlowFilesystemEvent', + 'TraceEvent' + ], + parentSpan: hotReloaderSpan + }); + (0, _patcherrorinspect.setBundlerFindSourceMapImplementation)(getSourceMapFromTurbopack.bind(null, project, projectPath)); + // Set up code frame renderer using native bindings + const { installCodeFrameSupport } = require('../lib/install-code-frame'); + installCodeFrameSupport(); + opts.onDevServerCleanup == null ? void 0 : opts.onDevServerCleanup.call(opts, async ()=>{ + (0, _patcherrorinspect.setBundlerFindSourceMapImplementation)(()=>undefined); + await project.onExit(); + await (lockfile == null ? void 0 : lockfile.unlock()); + }); + const entrypointsSubscription = project.entrypointsSubscribe(); + const currentWrittenEntrypoints = new Map(); + const currentEntrypoints = { + global: { + app: undefined, + document: undefined, + error: undefined, + middleware: undefined, + instrumentation: undefined + }, + page: new Map(), + app: new Map() + }; + const currentTopLevelIssues = new Map(); + const currentEntryIssues = new Map(); + const manifestLoader = new _manifestloader.TurbopackManifestLoader({ + buildId, + distDir, + encryptionKey, + dev: true, + sriEnabled: false + }); + // Dev specific + const changeSubscriptions = new Map(); + const serverPathState = new Map(); + const readyIds = new Set(); + let currentEntriesHandlingResolve; + let currentEntriesHandling = new Promise((resolve)=>currentEntriesHandlingResolve = resolve); + const assetMapper = new _turbopackutils.AssetMapper(); + // Deferred entries state management + const deferredEntriesConfig = nextConfig.experimental.deferredEntries; + const hasDeferredEntriesConfig = deferredEntriesConfig && deferredEntriesConfig.length > 0; + let onBeforeDeferredEntriesCalled = false; + let onBeforeDeferredEntriesPromise = null; + // Track non-deferred entries that are currently being built + const nonDeferredBuildingEntries = new Set(); + // Function to wait for all non-deferred entries to be built + async function waitForNonDeferredEntries() { + return new Promise((resolve)=>{ + const checkEntries = ()=>{ + // Check if there are any non-deferred entries that are still building + if (nonDeferredBuildingEntries.size === 0) { + resolve(); + } else { + // Check again after a short delay + setTimeout(checkEntries, 100); + } + }; + checkEntries(); + }); + } + // Function to handle deferred entry processing + async function processDeferredEntry() { + if (!hasDeferredEntriesConfig) return; + // Wait for all non-deferred entries to be built + await waitForNonDeferredEntries(); + // Call the onBeforeDeferredEntries callback once + if (!onBeforeDeferredEntriesCalled) { + onBeforeDeferredEntriesCalled = true; + if (nextConfig.experimental.onBeforeDeferredEntries) { + if (!onBeforeDeferredEntriesPromise) { + onBeforeDeferredEntriesPromise = nextConfig.experimental.onBeforeDeferredEntries(); + } + await onBeforeDeferredEntriesPromise; + } + } else if (onBeforeDeferredEntriesPromise) { + // Wait for any in-progress callback + await onBeforeDeferredEntriesPromise; + } + } + // Track whether HMR is pending - used to call callback once after HMR settles + let hmrPendingDeferredCallback = false; + // Debounced function to call onBeforeDeferredEntries after HMR + // This prevents rapid-fire calls when turbopack fires many update events + // Use 500ms debounce to ensure all rapid updates are batched together + const callOnBeforeDeferredEntriesAfterHMR = (0, _utils1.debounce)(()=>{ + // Only call if HMR triggered a need for the callback + if (hasDeferredEntriesConfig && hmrPendingDeferredCallback) { + hmrPendingDeferredCallback = false; + onBeforeDeferredEntriesCalled = true; + if (nextConfig.experimental.onBeforeDeferredEntries) { + onBeforeDeferredEntriesPromise = nextConfig.experimental.onBeforeDeferredEntries(); + } + } + }, 500); + function clearRequireCache(key, writtenEndpoint, { force } = {}) { + var _currentEntrypoints_app_get; + if (force) { + for (const { path, contentHash } of writtenEndpoint.serverPaths){ + // We ignore source maps + if (path.endsWith('.map')) continue; + const localKey = `${key}:${path}`; + serverPathState.set(localKey, contentHash); + serverPathState.set(path, contentHash); + } + } else { + // Figure out if the server files have changed + let hasChange = false; + for (const { path, contentHash } of writtenEndpoint.serverPaths){ + // We ignore source maps + if (path.endsWith('.map')) continue; + const localKey = `${key}:${path}`; + const localHash = serverPathState.get(localKey); + const globalHash = serverPathState.get(path); + if (localHash && localHash !== contentHash || globalHash && globalHash !== contentHash) { + hasChange = true; + serverPathState.set(localKey, contentHash); + serverPathState.set(path, contentHash); + } else { + if (!localHash) { + serverPathState.set(localKey, contentHash); + } + if (!globalHash) { + serverPathState.set(path, contentHash); + } + } + } + if (!hasChange) { + return false; + } + } + const serverPaths = writtenEndpoint.serverPaths.map(({ path: p })=>(0, _path.join)(distDir, p)); + const { type: entryType, page: entryPage } = (0, _entrykey.splitEntryKey)(key); + const isAppPage = entryType === 'app' && ((_currentEntrypoints_app_get = currentEntrypoints.app.get(entryPage)) == null ? void 0 : _currentEntrypoints_app_get.type) === 'app-page'; + // Server HMR only applies to app router pages since these use the Turbopack runtime. + // Currently, this is only app router pages. + // + // This excludes: + // - Pages Router pages + // - Edge routes + // - Middleware + // - App Router route handlers (route.ts) + const usesServerHmr = serverFastRefresh && isAppPage && writtenEndpoint.type !== 'edge'; + const filesToDelete = []; + for (const file of serverPaths){ + (0, _renderserver.clearModuleContext)(file); + const relativePath = (0, _path.relative)(distDir, file); + if (// For Pages Router, edge routes, middleware, and manifest files + // (e.g., *_client-reference-manifest.js): clear the sharedCache in + // evalManifest(), Node.js require.cache, and edge runtime module contexts. + force || !usesServerHmr || !(serverHmrSubscriptions == null ? void 0 : serverHmrSubscriptions.has(relativePath))) { + filesToDelete.push(file); + } + } + (0, _requirecache.deleteCache)(filesToDelete); + // Reset the fetch patch so patchFetch() can re-wrap on the next request. + if (serverPaths.length > 0) { + resetFetch(); + } + // Clear Turbopack's chunk-loading cache so chunks are re-required from disk on + // the next request. + // + // For App Router with server HMR, this is normally skipped as server HMR + // manages module updates in-place. However, it *is* required when force is `true` + // (like for .env file or tsconfig changes). + if ((!usesServerHmr || force) && typeof __next__clear_chunk_cache__ === 'function') { + __next__clear_chunk_cache__(); + } + return true; + } + const buildingIds = new Set(); + const startBuilding = (id, requestUrl, forceRebuild)=>{ + if (!forceRebuild && readyIds.has(id)) { + return ()=>{}; + } + if (buildingIds.size === 0) { + _store.store.setState({ + loading: true, + trigger: id, + url: requestUrl + }, true); + } + buildingIds.add(id); + return function finishBuilding() { + if (buildingIds.size === 0) { + return; + } + readyIds.add(id); + buildingIds.delete(id); + if (buildingIds.size === 0) { + hmrEventHappened = false; + _store.store.setState({ + loading: false + }, true); + } + }; + }; + let serverHmrSubscriptions; + let hmrEventHappened = false; + let hmrHash = 0; + const clientsWithoutHtmlRequestId = new Set(); + const clientsByHtmlRequestId = new Map(); + const cacheStatusesByHtmlRequestId = new Map(); + const clientStates = new WeakMap(); + function sendToClient(client, message) { + const data = typeof message.type === 'number' ? (0, _messages.createBinaryHmrMessageData)(message) : JSON.stringify(message); + client.send(data); + } + function sendEnqueuedMessages() { + for (const [, issueMap] of currentEntryIssues){ + if ([ + ...issueMap.values() + ].filter((i)=>i.severity !== 'warning').length > 0) { + // During compilation errors we want to delay the HMR events until errors are fixed + return; + } + } + for (const client of [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ]){ + const state = clientStates.get(client); + if (!state) { + continue; + } + for (const [, issueMap] of state.clientIssues){ + if ([ + ...issueMap.values() + ].filter((i)=>i.severity !== 'warning').length > 0) { + // During compilation errors we want to delay the HMR events until errors are fixed + return; + } + } + for (const message of state.messages.values()){ + sendToClient(client, message); + } + state.messages.clear(); + if (state.turbopackUpdates.length > 0) { + sendToClient(client, { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_MESSAGE, + data: state.turbopackUpdates + }); + state.turbopackUpdates.length = 0; + } + } + } + const sendEnqueuedMessagesDebounce = (0, _utils1.debounce)(sendEnqueuedMessages, 2); + const sendHmr = (id, message)=>{ + for (const client of [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ]){ + var _clientStates_get; + (_clientStates_get = clientStates.get(client)) == null ? void 0 : _clientStates_get.messages.set(id, message); + } + hmrEventHappened = true; + sendEnqueuedMessagesDebounce(); + }; + function sendTurbopackMessage(payload) { + // TODO(PACK-2049): For some reason we end up emitting hundreds of issues messages on bigger apps, + // a lot of which are duplicates. + // They are currently not handled on the client at all, so might as well not send them for now. + payload.diagnostics = []; + payload.issues = []; + for (const client of [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ]){ + var _clientStates_get; + (_clientStates_get = clientStates.get(client)) == null ? void 0 : _clientStates_get.turbopackUpdates.push(payload); + } + hmrEventHappened = true; + sendEnqueuedMessagesDebounce(); + } + async function subscribeToClientChanges(key, includeIssues, endpoint, createMessage, onError) { + if (changeSubscriptions.has(key)) { + return; + } + const { side } = (0, _entrykey.splitEntryKey)(key); + const changedPromise = endpoint[`${side}Changed`](includeIssues); + changeSubscriptions.set(key, changedPromise); + try { + const changed = await changedPromise; + for await (const change of changed){ + (0, _utils2.processIssues)(currentEntryIssues, key, change, false, true); + // TODO: Get an actual content hash from Turbopack. + const message = await createMessage(change, String(++hmrHash)); + if (message) { + sendHmr(key, message); + } + } + } catch (e) { + changeSubscriptions.delete(key); + const payload = await (onError == null ? void 0 : onError(e)); + if (payload) { + sendHmr(key, payload); + } + return; + } + changeSubscriptions.delete(key); + } + async function unsubscribeFromClientChanges(key) { + const subscription = await changeSubscriptions.get(key); + if (subscription) { + await (subscription.return == null ? void 0 : subscription.return.call(subscription)); + changeSubscriptions.delete(key); + } + currentEntryIssues.delete(key); + } + async function subscribeToClientHmrEvents(client, id) { + const key = (0, _entrykey.getEntryKey)('assets', 'client', id); + if (!(0, _turbopackutils.hasEntrypointForKey)(currentEntrypoints, key, assetMapper)) { + // maybe throw an error / force the client to reload? + return; + } + const state = clientStates.get(client); + if (!state || state.subscriptions.has(id)) { + return; + } + const subscription = project.hmrEvents(id, _swc.HmrTarget.Client); + state.subscriptions.set(id, subscription); + // The subscription will always emit once, which is the initial + // computation. This is not a change, so swallow it. + try { + await subscription.next(); + for await (const data of subscription){ + (0, _utils2.processIssues)(state.clientIssues, key, data, false, true); + if (data.type !== 'issues') { + sendTurbopackMessage(data); + } + } + } catch (e) { + // The client might be using an HMR session from a previous server, tell them + // to fully reload the page to resolve the issue. We can't use + // `hotReloader.send` since that would force every connected client to + // reload, only this client is out of date. + const reloadMessage = { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in HMR event subscription for ${id}: ${e}` + }; + sendToClient(client, reloadMessage); + client.close(); + return; + } + } + function unsubscribeFromClientHmrEvents(client, id) { + const state = clientStates.get(client); + if (!state) { + return; + } + const subscription = state.subscriptions.get(id); + subscription == null ? void 0 : subscription.return(); + const key = (0, _entrykey.getEntryKey)('assets', 'client', id); + state.clientIssues.delete(key); + } + async function handleEntrypointsSubscription() { + for await (const entrypoints of entrypointsSubscription){ + if (!currentEntriesHandlingResolve) { + currentEntriesHandling = new Promise(// eslint-disable-next-line no-loop-func + (resolve)=>currentEntriesHandlingResolve = resolve); + } + // Always process issues/diagnostics, even if there are no entrypoints yet + (0, _turbopackutils.processTopLevelIssues)(currentTopLevelIssues, entrypoints); + // Certain crtical issues prevent any entrypoints from being constructed so return early + if (!('routes' in entrypoints)) { + (0, _printbuilderrors.printBuildErrors)(entrypoints, true); + currentEntriesHandlingResolve(); + currentEntriesHandlingResolve = undefined; + continue; + } + const routes = entrypoints.routes; + const existingRoutes = [ + ...currentEntrypoints.app.keys(), + ...currentEntrypoints.page.keys() + ]; + const newRoutes = [ + ...routes.keys() + ]; + const addedRoutes = newRoutes.filter((route)=>!currentEntrypoints.app.has(route) && !currentEntrypoints.page.has(route)); + const removedRoutes = existingRoutes.filter((route)=>!routes.has(route)); + await (0, _turbopackutils.handleEntrypoints)({ + entrypoints: entrypoints, + currentEntrypoints, + currentEntryIssues, + manifestLoader, + devRewrites: opts.fsChecker.rewrites, + productionRewrites: undefined, + logErrors: true, + dev: { + assetMapper, + changeSubscriptions, + clients: [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ], + clientStates, + serverFields, + hooks: { + handleWrittenEndpoint: (id, result, forceDeleteCache)=>{ + currentWrittenEntrypoints.set(id, result); + return clearRequireCache(id, result, { + force: forceDeleteCache + }); + }, + propagateServerField: _setupdevbundler.propagateServerField.bind(null, opts), + sendHmr, + startBuilding, + subscribeToChanges: subscribeToClientChanges, + unsubscribeFromChanges: unsubscribeFromClientChanges, + unsubscribeFromHmrEvents: unsubscribeFromClientHmrEvents + } + } + }); + // Reload matchers when the files have been compiled + await (0, _setupdevbundler.propagateServerField)(opts, 'reloadMatchers', undefined); + if (addedRoutes.length > 0 || removedRoutes.length > 0) { + // When the list of routes changes a new manifest should be fetched for Pages Router. + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE, + data: [ + { + devPagesManifest: true + } + ] + }); + } + for (const route of addedRoutes){ + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE, + data: [ + route + ] + }); + } + for (const route of removedRoutes){ + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE, + data: [ + route + ] + }); + } + currentEntriesHandlingResolve(); + currentEntriesHandlingResolve = undefined; + } + } + await (0, _promises.mkdir)((0, _path.join)(distDir, 'server'), { + recursive: true + }); + await (0, _promises.mkdir)((0, _path.join)(distDir, 'static', buildId), { + recursive: true + }); + await (0, _promises.writeFile)((0, _path.join)(distDir, 'package.json'), JSON.stringify({ + type: 'commonjs' + }, null, 2)); + const middlewares = [ + (0, _middlewareturbopack.getOverlayMiddleware)({ + project, + projectPath, + isSrcDir: opts.isSrcDir + }), + (0, _middlewareturbopack.getSourceMapMiddleware)(project), + (0, _getnexterrorfeedbackmiddleware.getNextErrorFeedbackMiddleware)(opts.telemetry), + (0, _getdevoverlayfontmiddleware.getDevOverlayFontMiddleware)(), + (0, _devindicatormiddleware.getDisableDevIndicatorMiddleware)(), + (0, _restartdevservermiddleware.getRestartDevServerMiddleware)({ + telemetry: opts.telemetry, + turbopackProject: project + }), + (0, _devtoolsconfigmiddleware.devToolsConfigMiddleware)({ + distDir, + sendUpdateSignal: (data)=>{ + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG, + data + }); + } + }), + (0, _attachnodejsdebuggermiddleware.getAttachNodejsDebuggerMiddleware)(), + ...nextConfig.experimental.mcpServer ? [ + (0, _getmcpmiddleware.getMcpMiddleware)({ + projectPath, + distDir, + nextConfig, + pagesDir: opts.pagesDir, + appDir: opts.appDir, + sendHmrMessage: (message)=>hotReloader.send(message), + getActiveConnectionCount: ()=>clientsWithoutHtmlRequestId.size + clientsByHtmlRequestId.size, + getDevServerUrl: ()=>process.env.__NEXT_PRIVATE_ORIGIN + }) + ] : [] + ]; + (0, _formaterrors.setStackFrameResolver)(async (request)=>{ + return (0, _middlewareturbopack.getOriginalStackFrames)({ + project, + projectPath, + isServer: request.isServer, + isEdgeServer: request.isEdgeServer, + isAppDirectory: request.isAppDirectory, + frames: request.frames + }); + }); + let versionInfoCached; + // This fetch, even though not awaited, is not kicked off eagerly because the first `fetch()` in + // Node.js adds roughly 20ms main-thread blocking to load the SSL certificate cache + // We don't want that blocking time to be in the hot path for the `ready in` logging. + // Instead, the fetch is kicked off lazily when the first `getVersionInfoCached()` is called. + const getVersionInfoCached = ()=>{ + if (!versionInfoCached) { + versionInfoCached = (0, _hotreloadersharedutils.getVersionInfo)(); + } + return versionInfoCached; + }; + let devtoolsFrontendUrl; + const inspectorURLRaw = _inspector.url(); + if (inspectorURLRaw !== undefined) { + const inspectorURL = new URL(inspectorURLRaw); + let debugInfo; + try { + const debugInfoList = await fetch(`http://${inspectorURL.host}/json/list`).then((res)=>res.json()); + debugInfo = debugInfoList[0]; + } catch {} + if (debugInfo) { + devtoolsFrontendUrl = debugInfo.devtoolsFrontendUrl; + } + } + const hotReloader = { + turbopackProject: project, + activeWebpackConfigs: undefined, + serverStats: null, + edgeServerStats: null, + async run (req, res, _parsedUrl) { + var _req_url; + // intercept page chunks request and ensure them with turbopack + if ((_req_url = req.url) == null ? void 0 : _req_url.startsWith('/_next/static/chunks/pages/')) { + const params = (0, _hotreloadersharedutils.matchNextPageBundleRequest)(req.url); + if (params) { + const decodedPagePath = `/${params.path.map((param)=>decodeURIComponent(param)).join('/')}`; + const denormalizedPagePath = (0, _denormalizepagepath.denormalizePagePath)(decodedPagePath); + await hotReloader.ensurePage({ + page: denormalizedPagePath, + clientOnly: false, + definition: undefined, + url: req.url + }).catch(console.error); + } + } + for (const middleware of middlewares){ + let calledNext = false; + await middleware(req, res, ()=>{ + calledNext = true; + }); + if (!calledNext) { + return { + finished: true + }; + } + } + // Request was not finished. + return { + finished: undefined + }; + }, + // TODO: Figure out if socket type can match the NextJsHotReloaderInterface + onHMR (req, socket, head, onUpgrade) { + wsServer.handleUpgrade(req, socket, head, (client)=>{ + const clientIssues = new Map(); + const subscriptions = new Map(); + const htmlRequestId = req.url ? new URL(req.url, 'http://n').searchParams.get('id') : null; + // Clients with a request ID are inferred App Router clients. If Cache + // Components is not enabled, we consider those legacy clients. Pages + // Router clients are also considered legacy clients. TODO: Maybe mark + // clients as App Router / Pages Router clients explicitly, instead of + // inferring it from the presence of a request ID. + if (htmlRequestId) { + clientsByHtmlRequestId.set(htmlRequestId, client); + const enableCacheComponents = nextConfig.cacheComponents; + if (enableCacheComponents) { + onUpgrade(client, { + isLegacyClient: false + }); + const cacheStatus = cacheStatusesByHtmlRequestId.get(htmlRequestId); + if (cacheStatus !== undefined) { + sendToClient(client, { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR, + state: cacheStatus + }); + cacheStatusesByHtmlRequestId.delete(htmlRequestId); + } + } else { + onUpgrade(client, { + isLegacyClient: true + }); + } + (0, _debugchannel.connectReactDebugChannelForHtmlRequest)(htmlRequestId, sendToClient.bind(null, client)); + (0, _serializederrors.sendSerializedErrorsToClientForHtmlRequest)(htmlRequestId, sendToClient.bind(null, client)); + } else { + clientsWithoutHtmlRequestId.add(client); + onUpgrade(client, { + isLegacyClient: true + }); + } + clientStates.set(client, { + clientIssues, + messages: new Map(), + turbopackUpdates: [], + subscriptions + }); + client.on('close', ()=>{ + // Remove active subscriptions + for (const subscription of subscriptions.values()){ + subscription.return == null ? void 0 : subscription.return.call(subscription); + } + clientStates.delete(client); + if (htmlRequestId) { + clientsByHtmlRequestId.delete(htmlRequestId); + (0, _debugchannel.deleteReactDebugChannelForHtmlRequest)(htmlRequestId); + } else { + clientsWithoutHtmlRequestId.delete(client); + } + }); + client.addEventListener('message', async ({ data })=>{ + const parsedData = JSON.parse(typeof data !== 'string' ? data.toString() : data); + // Next.js messages + switch(parsedData.event){ + case 'span-end': + { + hotReloaderSpan.manualTraceChild(parsedData.spanName, (0, _turbopackutils.msToNs)(parsedData.startTime), (0, _turbopackutils.msToNs)(parsedData.endTime), parsedData.attributes); + break; + } + case 'client-hmr-latency': + hotReloaderSpan.manualTraceChild(parsedData.event, (0, _turbopackutils.msToNs)(parsedData.startTime), (0, _turbopackutils.msToNs)(parsedData.endTime), { + updatedModules: parsedData.updatedModules, + page: parsedData.page, + isPageHidden: parsedData.isPageHidden + }); + break; + case 'client-error': + case 'client-warning': + case 'client-success': + case 'server-component-reload-page': + case 'client-reload-page': + case 'client-removed-page': + case 'client-full-reload': + const { hadRuntimeError, dependencyChain } = parsedData; + if (hadRuntimeError) { + _log.warn(_messages.FAST_REFRESH_RUNTIME_RELOAD); + } + if (Array.isArray(dependencyChain) && typeof dependencyChain[0] === 'string') { + const cleanedModulePath = dependencyChain[0].replace(/^\[project\]/, '.').replace(/ \[.*\] \(.*\)$/, ''); + _log.warn(`Fast Refresh had to perform a full reload when ${cleanedModulePath} changed. Read more: https://nextjs.org/docs/messages/fast-refresh-reload`); + } + break; + case 'client-added-page': + break; + case 'browser-logs': + { + const browserToTerminalConfig = nextConfig.logging && nextConfig.logging.browserToTerminal; + if (browserToTerminalConfig) { + await (0, _receivelogs.receiveBrowserLogsTurbopack)({ + entries: parsedData.entries, + router: parsedData.router, + sourceType: parsedData.sourceType, + project, + projectPath, + distDir, + config: browserToTerminalConfig + }); + } + break; + } + case 'client-file-logs': + { + // Always log to file regardless of terminal flag + await (0, _receivelogs.handleClientFileLogs)(parsedData.logs); + break; + } + case 'ping': + { + break; + } + case 'mcp-error-state-response': + { + (0, _geterrors.handleErrorStateResponse)(parsedData.requestId, parsedData.errorState, parsedData.url); + break; + } + case 'mcp-page-metadata-response': + { + (0, _getpagemetadata.handlePageMetadataResponse)(parsedData.requestId, parsedData.segmentTrieData, parsedData.url); + break; + } + default: + // Might be a Turbopack message... + if (!parsedData.type) { + throw Object.defineProperty(new Error(`unrecognized HMR message "${data}"`), "__NEXT_ERROR_CODE", { + value: "E155", + enumerable: false, + configurable: true + }); + } + } + // Turbopack messages + switch(parsedData.type){ + case 'turbopack-subscribe': + subscribeToClientHmrEvents(client, parsedData.path); + break; + case 'turbopack-unsubscribe': + unsubscribeFromClientHmrEvents(client, parsedData.path); + break; + default: + if (!parsedData.event) { + throw Object.defineProperty(new Error(`unrecognized Turbopack HMR message "${data}"`), "__NEXT_ERROR_CODE", { + value: "E492", + enumerable: false, + configurable: true + }); + } + } + }); + const turbopackConnectedMessage = { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.TURBOPACK_CONNECTED, + data: { + sessionId + } + }; + sendToClient(client, turbopackConnectedMessage); + const errors = []; + for (const entryIssues of currentEntryIssues.values()){ + for (const issue of entryIssues.values()){ + if (issue.severity !== 'warning') { + errors.push({ + message: (0, _utils2.formatIssue)(issue) + }); + } else { + (0, _turbopackutils.printNonFatalIssue)(issue); + } + } + } + if (_devindicatorserverstate.devIndicatorServerState.disabledUntil < Date.now()) { + _devindicatorserverstate.devIndicatorServerState.disabledUntil = 0; + } + ; + (async function() { + const versionInfo = await getVersionInfoCached(); + const devToolsConfig = await (0, _devtoolsconfigmiddleware.getDevToolsConfig)(distDir); + const syncMessage = { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SYNC, + errors, + warnings: [], + hash: '', + versionInfo, + debug: { + devtoolsFrontendUrl + }, + devIndicator: _devindicatorserverstate.devIndicatorServerState, + devToolsConfig + }; + sendToClient(client, syncMessage); + })(); + }); + }, + send (action) { + const payload = JSON.stringify(action); + for (const client of [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ]){ + client.send(payload); + } + }, + sendToLegacyClients (action) { + const payload = JSON.stringify(action); + // Clients with a request ID are inferred App Router clients. If Cache + // Components is not enabled, we consider those legacy clients. Pages + // Router clients are also considered legacy clients. TODO: Maybe mark + // clients as App Router / Pages Router clients explicitly, instead of + // inferring it from the presence of a request ID. + if (!nextConfig.cacheComponents) { + for (const client of clientsByHtmlRequestId.values()){ + client.send(payload); + } + } + for (const client of clientsWithoutHtmlRequestId){ + client.send(payload); + } + }, + setCacheStatus (status, htmlRequestId) { + // Legacy clients don't have Cache Components. + const client = clientsByHtmlRequestId.get(htmlRequestId); + if (client !== undefined) { + sendToClient(client, { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR, + state: status + }); + } else { + // If the client is not connected, store the status so that we can send it + // when the client connects. + cacheStatusesByHtmlRequestId.set(htmlRequestId, status); + } + }, + setReactDebugChannel (debugChannel, htmlRequestId, requestId) { + const client = clientsByHtmlRequestId.get(htmlRequestId); + if (htmlRequestId === requestId) { + // The debug channel is for the HTML request. + if (client) { + // If the client is connected, we can connect the debug channel for + // the HTML request immediately. + (0, _debugchannel.connectReactDebugChannel)(htmlRequestId, debugChannel, sendToClient.bind(null, client)); + } else { + // Otherwise, we'll do that when the client connects and just store + // the debug channel. + (0, _debugchannel.setReactDebugChannelForHtmlRequest)(htmlRequestId, debugChannel); + } + } else if (client) { + // The debug channel is for a subsequent request (e.g. client-side + // navigation for server function call). If the client is not connected + // anymore, we don't need to connect the debug channel. + (0, _debugchannel.connectReactDebugChannel)(requestId, debugChannel, sendToClient.bind(null, client)); + } + }, + sendErrorsToBrowser (errorsRscStream, htmlRequestId) { + const client = clientsByHtmlRequestId.get(htmlRequestId); + if (client) { + // If the client is connected, we can send the errors immediately. + (0, _serializederrors.sendSerializedErrorsToClient)(errorsRscStream, sendToClient.bind(null, client)); + } else { + // Otherwise, store the errors stream so that we can send it when the + // client connects. + (0, _serializederrors.setErrorsRscStreamForHtmlRequest)(htmlRequestId, errorsRscStream); + } + }, + setHmrServerError (_error) { + // Not implemented yet. + }, + clearHmrServerError () { + // Not implemented yet. + }, + async start () {}, + async getCompilationErrors (page) { + const appEntryKey = (0, _entrykey.getEntryKey)('app', 'server', page); + const pagesEntryKey = (0, _entrykey.getEntryKey)('pages', 'server', page); + const topLevelIssues = currentTopLevelIssues.values(); + const thisEntryIssues = currentEntryIssues.get(appEntryKey) ?? currentEntryIssues.get(pagesEntryKey); + if (thisEntryIssues !== undefined && thisEntryIssues.size > 0) { + // If there is an error related to the requesting page we display it instead of the first error + return [ + ...topLevelIssues, + ...thisEntryIssues.values() + ].map((issue)=>{ + const formattedIssue = (0, _utils2.formatIssue)(issue); + if (issue.severity === 'warning') { + (0, _turbopackutils.printNonFatalIssue)(issue); + return null; + } else if ((0, _utils2.isWellKnownError)(issue)) { + _log.error(formattedIssue); + } + return Object.defineProperty(new Error(formattedIssue), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + }).filter((error)=>error !== null); + } + // Otherwise, return all errors across pages + const errors = []; + for (const issue of topLevelIssues){ + if (issue.severity !== 'warning') { + errors.push(Object.defineProperty(new Error((0, _utils2.formatIssue)(issue)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })); + } + } + for (const entryIssues of currentEntryIssues.values()){ + for (const issue of entryIssues.values()){ + if (issue.severity !== 'warning') { + const message = (0, _utils2.formatIssue)(issue); + errors.push(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })); + } else { + (0, _turbopackutils.printNonFatalIssue)(issue); + } + } + } + return errors; + }, + async invalidate ({ // .env files or tsconfig/jsconfig change + reloadAfterInvalidation }) { + if (reloadAfterInvalidation) { + for (const [key, entrypoint] of currentWrittenEntrypoints){ + clearRequireCache(key, entrypoint, { + force: true + }); + } + await (0, _renderserver.clearAllModuleContexts)(); + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + hash: String(++hmrHash) + }); + } + }, + async buildFallbackError () { + // Not implemented yet. + }, + async ensurePage ({ page: inputPage, // Unused parameters + // clientOnly, + appPaths, definition, isApp, url: requestUrl }) { + // When there is no route definition this is an internal file not a route the user added. + // Middleware and instrumentation are handled in turbpack-utils.ts handleEntrypoints instead. + if (!definition) { + if (inputPage === '/middleware') return; + if (inputPage === '/src/middleware') return; + if (inputPage === '/instrumentation') return; + if (inputPage === '/src/instrumentation') return; + } + return hotReloaderSpan.traceChild('ensure-page', { + inputPage + }).traceAsyncFn(async ()=>{ + if (_constants.BLOCKED_PAGES.includes(inputPage) && inputPage !== '/_error') { + return; + } + await currentEntriesHandling; + // TODO We shouldn't look into the filesystem again. This should use the information from entrypoints + let routeDef = definition ?? await (0, _ondemandentryhandler.findPagePathData)(projectPath, inputPage, nextConfig.pageExtensions, opts.pagesDir, opts.appDir, !!nextConfig.experimental.globalNotFound); + // If the route is actually an app page route, then we should have access + // to the app route definition, and therefore, the appPaths from it. + if (!appPaths && definition && (0, _apppageroutedefinition.isAppPageRouteDefinition)(definition)) { + appPaths = definition.appPaths; + } + // Check if this is a deferred entry and wait for non-deferred entries first + if (hasDeferredEntriesConfig) { + const isDeferred = (0, _entries.isDeferredEntry)(routeDef.page, deferredEntriesConfig); + if (isDeferred) { + await processDeferredEntry(); + } else { + // Track non-deferred entry as building + nonDeferredBuildingEntries.add(routeDef.page); + } + } + let page = routeDef.page; + if (appPaths) { + const normalizedPage = (0, _apppaths.normalizeAppPath)(page); + // filter out paths that are not exact matches (e.g. catchall) + const matchingAppPaths = appPaths.filter((path)=>(0, _apppaths.normalizeAppPath)(path) === normalizedPage); + // the last item in the array is the root page, if there are parallel routes + page = matchingAppPaths[matchingAppPaths.length - 1]; + } + const pathname = (definition == null ? void 0 : definition.pathname) ?? inputPage; + if (page === '/_error') { + let finishBuilding = startBuilding(pathname, requestUrl, false); + try { + await (0, _turbopackutils.handlePagesErrorRoute)({ + currentEntryIssues, + entrypoints: currentEntrypoints, + manifestLoader, + devRewrites: opts.fsChecker.rewrites, + productionRewrites: undefined, + logErrors: true, + hooks: { + subscribeToChanges: subscribeToClientChanges, + handleWrittenEndpoint: (id, result, forceDeleteCache)=>{ + currentWrittenEntrypoints.set(id, result); + assetMapper.setPathsForKey(id, result.clientPaths); + return clearRequireCache(id, result, { + force: forceDeleteCache + }); + } + } + }); + } finally{ + finishBuilding(); + } + return; + } + const isInsideAppDir = routeDef.bundlePath.startsWith('app/'); + const isEntryMetadataRouteFile = (0, _ismetadataroute.isMetadataRouteFile)(routeDef.filename.replace(opts.appDir || '', ''), nextConfig.pageExtensions, true); + const normalizedAppPage = isEntryMetadataRouteFile ? (0, _turbopackutils.normalizedPageToTurbopackStructureRoute)(page, (0, _path.extname)(routeDef.filename)) : page; + const route = isInsideAppDir ? currentEntrypoints.app.get(normalizedAppPage) : currentEntrypoints.page.get(page); + if (!route) { + // TODO: why is this entry missing in turbopack? + if (page === '/middleware') return; + if (page === '/src/middleware') return; + if (page === '/proxy') return; + if (page === '/src/proxy') return; + if (page === '/instrumentation') return; + if (page === '/src/instrumentation') return; + throw new _utils.PageNotFoundError(`route not found ${page}`); + } + // We don't throw on ensureOpts.isApp === true for page-api + // since this can happen when app pages make + // api requests to page API routes. + if (isApp && route.type === 'page') { + throw Object.defineProperty(new Error(`mis-matched route type: isApp && page for ${page}`), "__NEXT_ERROR_CODE", { + value: "E373", + enumerable: false, + configurable: true + }); + } + const finishBuilding = startBuilding(pathname, requestUrl, false); + try { + await (0, _turbopackutils.handleRouteType)({ + dev, + page, + pathname, + route, + currentEntryIssues, + entrypoints: currentEntrypoints, + manifestLoader, + readyIds, + devRewrites: opts.fsChecker.rewrites, + productionRewrites: undefined, + logErrors: true, + hooks: { + subscribeToChanges: subscribeToClientChanges, + handleWrittenEndpoint: (id, result, forceDeleteCache)=>{ + currentWrittenEntrypoints.set(id, result); + assetMapper.setPathsForKey(id, result.clientPaths); + return clearRequireCache(id, result, { + force: forceDeleteCache + }); + } + } + }); + } finally{ + finishBuilding(); + // Remove non-deferred entry from building set + if (hasDeferredEntriesConfig) { + nonDeferredBuildingEntries.delete(routeDef.page); + } + } + }); + }, + close () { + // Report MCP telemetry if MCP server is enabled + (0, _mcptelemetrytracker.recordMcpTelemetry)(opts.telemetry); + for (const wsClient of [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ]){ + // it's okay to not cleanly close these websocket connections, this is dev + wsClient.terminate(); + } + clientsWithoutHtmlRequestId.clear(); + clientsByHtmlRequestId.clear(); + } + }; + handleEntrypointsSubscription().catch((err)=>{ + console.error(err); + process.exit(1); + }); + // Write empty manifests + await currentEntriesHandling; + await manifestLoader.writeManifests({ + devRewrites: opts.fsChecker.rewrites, + productionRewrites: undefined, + entrypoints: currentEntrypoints + }); + async function handleProjectUpdates() { + for await (const updateMessage of project.updateInfoSubscribe(30)){ + switch(updateMessage.updateType){ + case 'start': + { + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILDING + }); + // Mark that HMR has started and we need to call the callback after it settles + // This ensures onBeforeDeferredEntries will be called again during HMR + if (hasDeferredEntriesConfig) { + hmrPendingDeferredCallback = true; + onBeforeDeferredEntriesCalled = false; + onBeforeDeferredEntriesPromise = null; + } + break; + } + case 'end': + { + sendEnqueuedMessages(); + function addToErrorsMap(errorsMap, issueMap) { + for (const [key, issue] of issueMap){ + if (issue.severity === 'warning') continue; + if (errorsMap.has(key)) continue; + const message = (0, _utils2.formatIssue)(issue); + errorsMap.set(key, { + message, + details: issue.detail ? (0, _utils2.renderStyledStringToErrorAnsi)(issue.detail) : undefined + }); + } + } + function addErrors(errorsMap, issues) { + for (const issueMap of issues.values()){ + addToErrorsMap(errorsMap, issueMap); + } + } + const errors = new Map(); + addToErrorsMap(errors, currentTopLevelIssues); + addErrors(errors, currentEntryIssues); + for (const client of [ + ...clientsWithoutHtmlRequestId, + ...clientsByHtmlRequestId.values() + ]){ + const state = clientStates.get(client); + if (!state) { + continue; + } + const clientErrors = new Map(errors); + addErrors(clientErrors, state.clientIssues); + sendToClient(client, { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.BUILT, + hash: String(++hmrHash), + errors: [ + ...clientErrors.values() + ], + warnings: [] + }); + } + if (hmrEventHappened) { + const time = updateMessage.value.duration; + const timeMessage = time > 2000 ? `${Math.round(time / 100) / 10}s` : `${time}ms`; + _log.event(`Compiled in ${timeMessage}`); + hmrEventHappened = false; + } + // Call onBeforeDeferredEntries after compilation completes during HMR + // This ensures the callback is invoked even when non-deferred entries change + // Use debounced function to prevent rapid-fire calls from turbopack updates + if (hasDeferredEntriesConfig) { + callOnBeforeDeferredEntriesAfterHMR(); + } + break; + } + default: + } + } + } + handleProjectUpdates().catch((err)=>{ + console.error(err); + process.exit(1); + }); + if (serverFastRefresh) { + serverHmrSubscriptions = setupServerHmr(project, { + clear: async ()=>{ + // Clear Node's require cache of all Turbopack-built modules + const chunkPaths = [ + ...(serverHmrSubscriptions == null ? void 0 : serverHmrSubscriptions.keys()) ?? [] + ].map((chunkPath)=>(0, _path.join)(distDir, chunkPath)); + (0, _requirecache.deleteCache)(chunkPaths); + // Clear Turbopack's runtime caches + if (typeof __next__clear_chunk_cache__ === 'function') { + __next__clear_chunk_cache__(); + } + // Clear all edge contexts + await (0, _renderserver.clearAllModuleContexts)(); + resetFetch(); + // Tell browsers to refetch RSC (soft refresh, not full page reload) + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + hash: String(++hmrHash) + }); + } + }); + } + return hotReloader; +} + +//# sourceMappingURL=hot-reloader-turbopack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/hot-reloader-types.js b/cli/app/node_modules/next/dist/server/dev/hot-reloader-types.js new file mode 100644 index 00000000000..2b026cbef38 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/hot-reloader-types.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HMR_MESSAGE_SENT_TO_BROWSER: null, + HMR_MESSAGE_SENT_TO_SERVER: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HMR_MESSAGE_SENT_TO_BROWSER: function() { + return HMR_MESSAGE_SENT_TO_BROWSER; + }, + HMR_MESSAGE_SENT_TO_SERVER: function() { + return HMR_MESSAGE_SENT_TO_SERVER; + } +}); +var HMR_MESSAGE_SENT_TO_BROWSER = /*#__PURE__*/ function(HMR_MESSAGE_SENT_TO_BROWSER) { + // JSON messages: + HMR_MESSAGE_SENT_TO_BROWSER["ADDED_PAGE"] = "addedPage"; + HMR_MESSAGE_SENT_TO_BROWSER["REMOVED_PAGE"] = "removedPage"; + HMR_MESSAGE_SENT_TO_BROWSER["RELOAD_PAGE"] = "reloadPage"; + HMR_MESSAGE_SENT_TO_BROWSER["SERVER_COMPONENT_CHANGES"] = "serverComponentChanges"; + HMR_MESSAGE_SENT_TO_BROWSER["MIDDLEWARE_CHANGES"] = "middlewareChanges"; + HMR_MESSAGE_SENT_TO_BROWSER["CLIENT_CHANGES"] = "clientChanges"; + HMR_MESSAGE_SENT_TO_BROWSER["SERVER_ONLY_CHANGES"] = "serverOnlyChanges"; + HMR_MESSAGE_SENT_TO_BROWSER["SYNC"] = "sync"; + HMR_MESSAGE_SENT_TO_BROWSER["BUILT"] = "built"; + HMR_MESSAGE_SENT_TO_BROWSER["BUILDING"] = "building"; + HMR_MESSAGE_SENT_TO_BROWSER["DEV_PAGES_MANIFEST_UPDATE"] = "devPagesManifestUpdate"; + HMR_MESSAGE_SENT_TO_BROWSER["TURBOPACK_MESSAGE"] = "turbopack-message"; + HMR_MESSAGE_SENT_TO_BROWSER["SERVER_ERROR"] = "serverError"; + HMR_MESSAGE_SENT_TO_BROWSER["TURBOPACK_CONNECTED"] = "turbopack-connected"; + HMR_MESSAGE_SENT_TO_BROWSER["ISR_MANIFEST"] = "isrManifest"; + HMR_MESSAGE_SENT_TO_BROWSER["CACHE_INDICATOR"] = "cacheIndicator"; + HMR_MESSAGE_SENT_TO_BROWSER["DEV_INDICATOR"] = "devIndicator"; + HMR_MESSAGE_SENT_TO_BROWSER["DEVTOOLS_CONFIG"] = "devtoolsConfig"; + HMR_MESSAGE_SENT_TO_BROWSER["REQUEST_CURRENT_ERROR_STATE"] = "requestCurrentErrorState"; + HMR_MESSAGE_SENT_TO_BROWSER["REQUEST_PAGE_METADATA"] = "requestPageMetadata"; + // Binary messages: + HMR_MESSAGE_SENT_TO_BROWSER[HMR_MESSAGE_SENT_TO_BROWSER["REACT_DEBUG_CHUNK"] = 0] = "REACT_DEBUG_CHUNK"; + HMR_MESSAGE_SENT_TO_BROWSER[HMR_MESSAGE_SENT_TO_BROWSER["ERRORS_TO_SHOW_IN_BROWSER"] = 1] = "ERRORS_TO_SHOW_IN_BROWSER"; + return HMR_MESSAGE_SENT_TO_BROWSER; +}({}); +var HMR_MESSAGE_SENT_TO_SERVER = /*#__PURE__*/ function(HMR_MESSAGE_SENT_TO_SERVER) { + // JSON messages: + HMR_MESSAGE_SENT_TO_SERVER["MCP_ERROR_STATE_RESPONSE"] = "mcp-error-state-response"; + HMR_MESSAGE_SENT_TO_SERVER["MCP_PAGE_METADATA_RESPONSE"] = "mcp-page-metadata-response"; + HMR_MESSAGE_SENT_TO_SERVER["PING"] = "ping"; + return HMR_MESSAGE_SENT_TO_SERVER; +}({}); + +//# sourceMappingURL=hot-reloader-types.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js b/cli/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js new file mode 100644 index 00000000000..92cde3c2936 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/hot-reloader-webpack.js @@ -0,0 +1,1386 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + default: null, + renderScriptError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + default: function() { + return HotReloaderWebpack; + }, + renderScriptError: function() { + return renderScriptError; + } +}); +const _webpack = require("next/dist/compiled/webpack/webpack"); +const _middlewarewebpack = require("./middleware-webpack"); +const _hotmiddleware = require("./hot-middleware"); +const _inspector = /*#__PURE__*/ _interop_require_wildcard(require("inspector")); +const _path = require("path"); +const _entries = require("../../build/entries"); +const _routediscovery = require("../../build/route-discovery"); +const _getstaticinfoincludinglayouts = require("../../build/get-static-info-including-layouts"); +const _output = require("../../build/output"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _webpackconfig = /*#__PURE__*/ _interop_require_wildcard(require("../../build/webpack-config")); +const _constants = require("../../lib/constants"); +const _recursivedelete = require("../../lib/recursive-delete"); +const _constants1 = require("../../shared/lib/constants"); +const _findpagefile = require("../lib/find-page-file"); +const _ondemandentryhandler = require("./on-demand-entry-handler"); +const _denormalizepagepath = require("../../shared/lib/page-path/denormalize-page-path"); +const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); +const _getroutefromentrypoint = /*#__PURE__*/ _interop_require_default(require("../get-route-from-entrypoint")); +const _utils = require("../../build/utils"); +const _utils1 = require("../../shared/lib/utils"); +const _trace = require("../../trace"); +const _iserror = require("../../lib/is-error"); +const _ws = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/ws")); +const _fs = require("fs"); +const _isapiroute = require("../../lib/is-api-route"); +const _nextrouteloader = require("../../build/webpack/loaders/next-route-loader"); +const _isinternalcomponent = require("../../lib/is-internal-component"); +const _routekind = require("../route-kind"); +const _hotreloadertypes = require("./hot-reloader-types"); +const _pagetypes = require("../../lib/page-types"); +const _messages = require("./messages"); +const _getnexterrorfeedbackmiddleware = require("../../next-devtools/server/get-next-error-feedback-middleware"); +const _getdevoverlayfontmiddleware = require("../../next-devtools/server/font/get-dev-overlay-font-middleware"); +const _devindicatormiddleware = require("../../next-devtools/server/dev-indicator-middleware"); +const _getwebpackbundler = /*#__PURE__*/ _interop_require_default(require("../../shared/lib/get-webpack-bundler")); +const _restartdevservermiddleware = require("../../next-devtools/server/restart-dev-server-middleware"); +const _cacheinvalidation = require("../../build/webpack/cache-invalidation"); +const _receivelogs = require("./browser-logs/receive-logs"); +const _devtoolsconfigmiddleware = require("../../next-devtools/server/devtools-config-middleware"); +const _attachnodejsdebuggermiddleware = require("../../next-devtools/server/attach-nodejs-debugger-middleware"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _debugchannel = require("./debug-channel"); +const _hotreloadersharedutils = require("./hot-reloader-shared-utils"); +const _getmcpmiddleware = require("../mcp/get-mcp-middleware"); +const _formaterrors = require("../mcp/tools/utils/format-errors"); +const _mcptelemetrytracker = require("../mcp/mcp-telemetry-tracker"); +const _filelogger = require("./browser-logs/file-logger"); +const _serializederrors = require("./serialized-errors"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const MILLISECONDS_IN_NANOSECOND = BigInt(1000000); +function diff(a, b) { + return new Set([ + ...a + ].filter((v)=>!b.has(v))); +} +const wsServer = new _ws.default.Server({ + noServer: true +}); +async function renderScriptError(res, error, { verbose = true } = {}) { + // Asks CDNs and others to not to cache the errored page + res.setHeader('Cache-Control', 'no-cache, no-store, max-age=0, must-revalidate'); + if (error.code === 'ENOENT') { + return { + finished: undefined + }; + } + if (verbose) { + console.error(error.stack); + } + res.statusCode = 500; + res.end('500 - Internal Error'); + return { + finished: true + }; +} +function addCorsSupport(req, res) { + // Only rewrite CORS handling when URL matches a hot-reloader middleware + if (!req.url.startsWith('/__next')) { + return { + preflight: false + }; + } + if (!req.headers.origin) { + return { + preflight: false + }; + } + res.setHeader('Access-Control-Allow-Origin', req.headers.origin); + res.setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET'); + // Based on https://github.com/primus/access-control/blob/4cf1bc0e54b086c91e6aa44fb14966fa5ef7549c/index.js#L158 + if (req.headers['access-control-request-headers']) { + res.setHeader('Access-Control-Allow-Headers', req.headers['access-control-request-headers']); + } + if (req.method === 'OPTIONS') { + res.writeHead(200); + res.end(); + return { + preflight: true + }; + } + return { + preflight: false + }; +} +// Iteratively look up the issuer till it ends up at the root +function findEntryModule(module1, compilation) { + for(;;){ + const issuer = compilation.moduleGraph.getIssuer(module1); + if (!issuer) return module1; + module1 = issuer; + } +} +function erroredPages(compilation) { + const failedPages = {}; + for (const error of compilation.errors){ + if (!error.module) { + continue; + } + const entryModule = findEntryModule(error.module, compilation); + const { name } = entryModule; + if (!name) { + continue; + } + // Only pages have to be reloaded + const enhancedName = (0, _getroutefromentrypoint.default)(name); + if (!enhancedName) { + continue; + } + if (!failedPages[enhancedName]) { + failedPages[enhancedName] = []; + } + failedPages[enhancedName].push(error); + } + return failedPages; +} +class HotReloaderWebpack { + constructor(dir, { config, isSrcDir, pagesDir, distDir, buildId, encryptionKey, previewProps, rewrites, appDir, telemetry, resetFetch, lockfile, onDevServerCleanup }){ + this.clientError = null; + this.serverError = null; + this.hmrServerError = null; + this.pagesMapping = {}; + this.versionInfo = { + staleness: 'unknown', + installed: '0.0.0' + }; + this.reloadAfterInvalidation = false; + this.cacheStatusesByRequestId = new Map(); + this.hasAppRouterEntrypoints = false; + this.hasPagesRouterEntrypoints = false; + this.buildId = buildId; + this.encryptionKey = encryptionKey; + this.dir = dir; + this.isSrcDir = isSrcDir; + this.middlewares = []; + this.pagesDir = pagesDir; + this.appDir = appDir; + this.distDir = distDir; + this.clientStats = null; + this.serverStats = null; + this.edgeServerStats = null; + this.serverPrevDocumentHash = null; + this.telemetry = telemetry; + this.resetFetch = resetFetch; + this.lockfile = lockfile; + this.config = config; + this.previewProps = previewProps; + this.rewrites = rewrites; + this.hotReloaderSpan = (0, _trace.trace)('hot-reloader', undefined, { + version: "16.2.1" + }); + // Ensure the hotReloaderSpan is flushed immediately as it's the parentSpan for all processing + // of the current `next dev` invocation. + this.hotReloaderSpan.stop(); + // Initialize log monitor for file logging + // Enable logging by default in development mode + const mcpServerEnabled = !!config.experimental.mcpServer; + const fileLogger = (0, _filelogger.getFileLogger)(); + fileLogger.initialize(this.distDir, mcpServerEnabled); + onDevServerCleanup == null ? void 0 : onDevServerCleanup(async ()=>{ + await (lockfile == null ? void 0 : lockfile.unlock()); + }); + } + async run(req, res, parsedUrl) { + // Usually CORS support is not needed for the hot-reloader (this is dev only feature) + // With when the app runs for multi-zones support behind a proxy, + // the current page is trying to access this URL via assetPrefix. + // That's when the CORS support is needed. + const { preflight } = addCorsSupport(req, res); + if (preflight) { + return {}; + } + // When a request comes in that is a page bundle, e.g. /_next/static//pages/index.js + // we have to compile the page using on-demand-entries, this middleware will handle doing that + // by adding the page to on-demand-entries, waiting till it's done + // and then the bundle will be served like usual by the actual route in server/index.js + const handlePageBundleRequest = async (pageBundleRes, parsedPageBundleUrl)=>{ + const { pathname } = parsedPageBundleUrl; + if (!pathname) return {}; + const params = (0, _hotreloadersharedutils.matchNextPageBundleRequest)(pathname); + if (!params) return {}; + let decodedPagePath; + try { + decodedPagePath = `/${params.path.map((param)=>decodeURIComponent(param)).join('/')}`; + } catch (_) { + throw Object.defineProperty(new _utils1.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { + value: "E528", + enumerable: false, + configurable: true + }); + } + const page = (0, _denormalizepagepath.denormalizePagePath)(decodedPagePath); + if (page === '/_error' || _constants1.BLOCKED_PAGES.indexOf(page) === -1) { + try { + await this.ensurePage({ + page, + clientOnly: true, + url: req.url + }); + } catch (error) { + return await renderScriptError(pageBundleRes, (0, _iserror.getProperError)(error)); + } + const errors = await this.getCompilationErrors(page); + if (errors.length > 0) { + return await renderScriptError(pageBundleRes, errors[0], { + verbose: false + }); + } + } + return {}; + }; + const { finished } = await handlePageBundleRequest(res, parsedUrl); + for (const middleware of this.middlewares){ + let calledNext = false; + await middleware(req, res, ()=>{ + calledNext = true; + }); + if (!calledNext) { + return { + finished: true + }; + } + } + return { + finished + }; + } + setHmrServerError(error) { + this.hmrServerError = error; + } + clearHmrServerError() { + if (this.hmrServerError) { + this.setHmrServerError(null); + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: 'clear hmr server error' + }); + } + } + async refreshServerComponents(hash) { + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + hash + }); + } + onHMR(req, _socket, head, callback) { + wsServer.handleUpgrade(req, req.socket, head, (client)=>{ + var _this_onDemandEntries; + const htmlRequestId = req.url ? new URL(req.url, 'http://n').searchParams.get('id') : null; + if (!this.webpackHotMiddleware) { + throw Object.defineProperty(new _invarianterror.InvariantError('Did not start HotReloaderWebpack.'), "__NEXT_ERROR_CODE", { + value: "E804", + enumerable: false, + configurable: true + }); + } + this.webpackHotMiddleware.onHMR(client, htmlRequestId); + (_this_onDemandEntries = this.onDemandEntries) == null ? void 0 : _this_onDemandEntries.onHMR(client, ()=>this.hmrServerError); + const enableCacheComponents = this.config.cacheComponents; + // Clients with a request ID are inferred App Router clients. If Cache + // Components is not enabled, we consider those legacy clients. Pages + // Router clients are also considered legacy clients. TODO: Maybe mark + // clients as App Router / Pages Router clients explicitly, instead of + // inferring it from the presence of a request ID. + const isLegacyClient = !htmlRequestId || !enableCacheComponents; + callback(client, { + isLegacyClient + }); + client.addEventListener('message', async ({ data })=>{ + data = typeof data !== 'string' ? data.toString() : data; + try { + const payload = JSON.parse(data); + let traceChild; + switch(payload.event){ + case 'span-end': + { + traceChild = { + name: payload.spanName, + startTime: BigInt(Math.floor(payload.startTime)) * MILLISECONDS_IN_NANOSECOND, + attrs: payload.attributes, + endTime: BigInt(Math.floor(payload.endTime)) * MILLISECONDS_IN_NANOSECOND + }; + break; + } + case 'client-hmr-latency': + { + traceChild = { + name: payload.event, + startTime: BigInt(payload.startTime) * MILLISECONDS_IN_NANOSECOND, + endTime: BigInt(payload.endTime) * MILLISECONDS_IN_NANOSECOND, + attrs: { + updatedModules: payload.updatedModules.map((m)=>m.replace(`(${_constants.WEBPACK_LAYERS.appPagesBrowser})/`, '').replace(/^\.\//, '[project]/')), + page: payload.page, + isPageHidden: payload.isPageHidden + } + }; + break; + } + case 'client-reload-page': + case 'client-success': + { + traceChild = { + name: payload.event + }; + break; + } + case 'client-error': + { + traceChild = { + name: payload.event, + attrs: { + errorCount: payload.errorCount + } + }; + break; + } + case 'client-warning': + { + traceChild = { + name: payload.event, + attrs: { + warningCount: payload.warningCount + } + }; + break; + } + case 'client-removed-page': + case 'client-added-page': + { + traceChild = { + name: payload.event, + attrs: { + page: payload.page || '' + } + }; + break; + } + case 'client-full-reload': + { + const { event, stackTrace, hadRuntimeError } = payload; + traceChild = { + name: event, + attrs: { + stackTrace: stackTrace ?? '' + } + }; + if (hadRuntimeError) { + _log.warn(_messages.FAST_REFRESH_RUNTIME_RELOAD); + break; + } + let fileMessage = ''; + if (stackTrace) { + var _exec; + const file = (_exec = /Aborted because (.+) is not accepted/.exec(stackTrace)) == null ? void 0 : _exec[1]; + if (file) { + // `file` is filepath in `pages/` but it can be a webpack url. + // If it's a webpack loader URL, it will include the app-pages layer + if (file.startsWith(`(${_constants.WEBPACK_LAYERS.appPagesBrowser})/`)) { + const fileUrl = new URL(file, 'file://'); + const cwd = process.cwd(); + const modules = fileUrl.searchParams.getAll('modules').map((filepath)=>filepath.slice(cwd.length + 1)).filter((filepath)=>!filepath.startsWith('node_modules')); + if (modules.length > 0) { + fileMessage = ` when ${modules.join(', ')} changed`; + } + } else if (// Handle known webpack layers + file.startsWith(`(${_constants.WEBPACK_LAYERS.pagesDirBrowser})/`)) { + const cleanedFilePath = file.slice(`(${_constants.WEBPACK_LAYERS.pagesDirBrowser})/`.length); + fileMessage = ` when ${cleanedFilePath} changed`; + } else { + fileMessage = ` when ${file} changed`; + } + } + } + _log.warn(`Fast Refresh had to perform a full reload${fileMessage}. Read more: https://nextjs.org/docs/messages/fast-refresh-reload`); + break; + } + case 'browser-logs': + { + const browserToTerminalConfig = this.config.logging && this.config.logging.browserToTerminal; + if (browserToTerminalConfig) { + await (0, _receivelogs.receiveBrowserLogsWebpack)({ + entries: payload.entries, + router: payload.router, + sourceType: payload.sourceType, + clientStats: ()=>this.clientStats, + serverStats: ()=>this.serverStats, + edgeServerStats: ()=>this.edgeServerStats, + rootDirectory: this.dir, + distDir: this.distDir, + config: browserToTerminalConfig + }); + } + break; + } + case 'client-file-logs': + { + // Always log to file regardless of terminal flag + await (0, _receivelogs.handleClientFileLogs)(payload.logs); + break; + } + case 'ping': + { + break; + } + default: + { + break; + } + } + if (traceChild) { + this.hotReloaderSpan.manualTraceChild(traceChild.name, traceChild.startTime, traceChild.endTime, { + ...traceChild.attrs, + clientId: payload.id + }); + } + } catch (_) { + // invalid WebSocket message + } + }); + if (htmlRequestId) { + (0, _debugchannel.connectReactDebugChannelForHtmlRequest)(htmlRequestId, this.sendToClient.bind(this, client)); + (0, _serializederrors.sendSerializedErrorsToClientForHtmlRequest)(htmlRequestId, this.sendToClient.bind(this, client)); + if (enableCacheComponents) { + const status = this.cacheStatusesByRequestId.get(htmlRequestId); + if (status) { + this.sendToClient(client, { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR, + state: status + }); + this.cacheStatusesByRequestId.delete(htmlRequestId); + } + } + } + client.on('close', ()=>{ + var _this_webpackHotMiddleware; + (_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.deleteClient(client, htmlRequestId); + if (htmlRequestId) { + (0, _debugchannel.deleteReactDebugChannelForHtmlRequest)(htmlRequestId); + } + }); + }); + } + async clean(span) { + return span.traceChild('clean').traceAsyncFn(()=>(0, _recursivedelete.recursiveDeleteSyncWithAsyncRetries)((0, _path.join)(this.dir, this.config.distDir), /^(cache|lock)/)); + } + async getWebpackConfig(span) { + const webpackConfigSpan = span.traceChild('get-webpack-config'); + const pageExtensions = this.config.pageExtensions; + return webpackConfigSpan.traceAsyncFn(async ()=>{ + const pagePaths = !this.pagesDir ? [] : await webpackConfigSpan.traceChild('get-page-paths').traceAsyncFn(()=>Promise.all([ + (0, _findpagefile.findPageFile)(this.pagesDir, '/_app', pageExtensions, false), + (0, _findpagefile.findPageFile)(this.pagesDir, '/_document', pageExtensions, false) + ])); + this.pagesMapping = await webpackConfigSpan.traceChild('create-pages-mapping').traceAsyncFn(()=>(0, _routediscovery.createPagesMapping)({ + isDev: true, + pageExtensions: this.config.pageExtensions, + pagesType: _pagetypes.PAGE_TYPES.PAGES, + pagePaths: pagePaths.filter((i)=>typeof i === 'string'), + pagesDir: this.pagesDir, + appDir: this.appDir, + appDirOnly: Boolean(this.appDir && !this.pagesDir) + })); + const entrypoints = await webpackConfigSpan.traceChild('create-entrypoints').traceAsyncFn(()=>(0, _entries.createEntrypoints)({ + appDir: this.appDir, + buildId: this.buildId, + config: this.config, + envFiles: [], + isDev: true, + pages: this.pagesMapping, + pagesDir: this.pagesDir, + previewMode: this.previewProps, + rootDir: this.dir, + pageExtensions: this.config.pageExtensions + })); + const commonWebpackOptions = { + dev: true, + buildId: this.buildId, + encryptionKey: this.encryptionKey, + config: this.config, + pagesDir: this.pagesDir, + rewrites: this.rewrites, + originalRewrites: this.config._originalRewrites, + originalRedirects: this.config._originalRedirects, + runWebpackSpan: this.hotReloaderSpan, + appDir: this.appDir, + previewProps: this.previewProps + }; + return webpackConfigSpan.traceChild('generate-webpack-config').traceAsyncFn(async ()=>{ + const info = await (0, _webpackconfig.loadProjectInfo)({ + dir: this.dir, + config: commonWebpackOptions.config, + dev: true + }); + return Promise.all([ + // order is important here + (0, _webpackconfig.default)(this.dir, { + ...commonWebpackOptions, + compilerType: _constants1.COMPILER_NAMES.client, + entrypoints: entrypoints.client, + ...info + }), + (0, _webpackconfig.default)(this.dir, { + ...commonWebpackOptions, + compilerType: _constants1.COMPILER_NAMES.server, + entrypoints: entrypoints.server, + ...info + }), + (0, _webpackconfig.default)(this.dir, { + ...commonWebpackOptions, + compilerType: _constants1.COMPILER_NAMES.edgeServer, + entrypoints: entrypoints.edgeServer, + ...info + }) + ]); + }); + }); + } + async buildFallbackError() { + if (this.fallbackWatcher) return; + const info = await (0, _webpackconfig.loadProjectInfo)({ + dir: this.dir, + config: this.config, + dev: true + }); + const fallbackConfig = await (0, _webpackconfig.default)(this.dir, { + previewProps: this.previewProps, + runWebpackSpan: this.hotReloaderSpan, + dev: true, + compilerType: _constants1.COMPILER_NAMES.client, + config: this.config, + buildId: this.buildId, + encryptionKey: this.encryptionKey, + appDir: this.appDir, + pagesDir: this.pagesDir, + rewrites: { + beforeFiles: [], + afterFiles: [], + fallback: [] + }, + originalRewrites: { + beforeFiles: [], + afterFiles: [], + fallback: [] + }, + originalRedirects: [], + isDevFallback: true, + entrypoints: (await (0, _entries.createEntrypoints)({ + appDir: this.appDir, + buildId: this.buildId, + config: this.config, + envFiles: [], + isDev: true, + pages: { + '/_app': 'next/dist/pages/_app', + '/_error': 'next/dist/pages/_error' + }, + pagesDir: this.pagesDir, + previewMode: this.previewProps, + rootDir: this.dir, + pageExtensions: this.config.pageExtensions + })).client, + ...info + }); + const fallbackCompiler = (0, _getwebpackbundler.default)()(fallbackConfig); + this.fallbackWatcher = await new Promise((resolve)=>{ + let bootedFallbackCompiler = false; + fallbackCompiler.watch(// @ts-ignore webpack supports an array of watchOptions when using a multiCompiler + fallbackConfig.watchOptions, // Errors are handled separately + (_err)=>{ + if (!bootedFallbackCompiler) { + bootedFallbackCompiler = true; + resolve(true); + } + }); + }); + } + async tracedGetVersionInfo(span) { + const versionInfoSpan = span.traceChild('get-version-info'); + return versionInfoSpan.traceAsyncFn(async ()=>(0, _hotreloadersharedutils.getVersionInfo)()); + } + async start() { + const startSpan = this.hotReloaderSpan.traceChild('start'); + startSpan.stop() // Stop immediately to create an artificial parent span + ; + this.versionInfo = await this.tracedGetVersionInfo(startSpan); + const inspectorURLRaw = _inspector.url(); + if (inspectorURLRaw !== undefined) { + const inspectorURL = new URL(inspectorURLRaw); + let debugInfo; + try { + const debugInfoList = await fetch(`http://${inspectorURL.host}/json/list`).then((res)=>res.json()); + debugInfo = debugInfoList[0]; + } catch {} + if (debugInfo) { + this.devtoolsFrontendUrl = debugInfo.devtoolsFrontendUrl; + } + } + await this.clean(startSpan); + // Ensure distDir exists before writing package.json + await _fs.promises.mkdir(this.distDir, { + recursive: true + }); + const initialDevToolsConfig = await (0, _devtoolsconfigmiddleware.getDevToolsConfig)(this.distDir); + const distPackageJsonPath = (0, _path.join)(this.distDir, 'package.json'); + // Ensure commonjs handling is used for files in the distDir (generally .next) + // Files outside of the distDir can be "type": "module" + await _fs.promises.writeFile(distPackageJsonPath, '{"type": "commonjs"}'); + this.activeWebpackConfigs = await this.getWebpackConfig(startSpan); + for (const config of this.activeWebpackConfigs){ + const defaultEntry = config.entry; + config.entry = async (...args)=>{ + var _this_multiCompiler; + const outputPath = ((_this_multiCompiler = this.multiCompiler) == null ? void 0 : _this_multiCompiler.outputPath) || ''; + const entries = (0, _ondemandentryhandler.getEntries)(outputPath); + // @ts-ignore entry is always a function + const entrypoints = await defaultEntry(...args); + const isClientCompilation = config.name === _constants1.COMPILER_NAMES.client; + const isNodeServerCompilation = config.name === _constants1.COMPILER_NAMES.server; + const isEdgeServerCompilation = config.name === _constants1.COMPILER_NAMES.edgeServer; + await Promise.all(Object.keys(entries).map(async (entryKey)=>{ + const entryData = entries[entryKey]; + const { bundlePath, dispose } = entryData; + const result = /^(client|server|edge-server)@(app|pages|root)@(.*)/g.exec(entryKey); + const [, key /* pageType */ , , page] = result// this match should always happen + ; + if (key === _constants1.COMPILER_NAMES.client && !isClientCompilation) return; + if (key === _constants1.COMPILER_NAMES.server && !isNodeServerCompilation) return; + if (key === _constants1.COMPILER_NAMES.edgeServer && !isEdgeServerCompilation) return; + const isEntry = entryData.type === _ondemandentryhandler.EntryTypes.ENTRY; + const isChildEntry = entryData.type === _ondemandentryhandler.EntryTypes.CHILD_ENTRY; + // Check if the page was removed or disposed and remove it + if (isEntry) { + const pageExists = !dispose && (0, _fs.existsSync)(entryData.absolutePagePath); + if (!pageExists) { + delete entries[entryKey]; + return; + } + } + // For child entries, if it has an entry file and it's gone, remove it + if (isChildEntry) { + if (entryData.absoluteEntryFilePath) { + const pageExists = !dispose && (0, _fs.existsSync)(entryData.absoluteEntryFilePath); + if (!pageExists) { + delete entries[entryKey]; + return; + } + } + } + // Ensure _error is considered a `pages` page. + if (page === '/_error') { + this.hasPagesRouterEntrypoints = true; + } + const hasAppDir = !!this.appDir; + const isAppPath = hasAppDir && bundlePath.startsWith('app/'); + const staticInfo = isEntry ? await (0, _getstaticinfoincludinglayouts.getStaticInfoIncludingLayouts)({ + isInsideAppDir: isAppPath, + pageExtensions: this.config.pageExtensions, + pageFilePath: entryData.absolutePagePath, + appDir: this.appDir, + config: this.config, + isDev: true, + page + }) : undefined; + const isServerComponent = isAppPath && (staticInfo == null ? void 0 : staticInfo.rsc) !== _constants1.RSC_MODULE_TYPES.client; + const pageType = entryData.bundlePath.startsWith('pages/') ? _pagetypes.PAGE_TYPES.PAGES : entryData.bundlePath.startsWith('app/') ? _pagetypes.PAGE_TYPES.APP : _pagetypes.PAGE_TYPES.ROOT; + if (pageType === 'pages') { + this.hasPagesRouterEntrypoints = true; + } + if (pageType === 'app') { + this.hasAppRouterEntrypoints = true; + } + const isInstrumentation = (0, _utils.isInstrumentationHookFile)(page) && pageType === _pagetypes.PAGE_TYPES.ROOT; + let pageRuntime = staticInfo == null ? void 0 : staticInfo.runtime; + (0, _entries.runDependingOnPageType)({ + page, + pageRuntime, + pageType, + onEdgeServer: ()=>{ + // TODO-APP: verify if child entry should support. + if (!isEdgeServerCompilation || !isEntry) return; + entries[entryKey].status = _ondemandentryhandler.BUILDING; + if (isInstrumentation) { + const normalizedBundlePath = bundlePath.replace('src/', ''); + entrypoints[normalizedBundlePath] = (0, _entries.finalizeEntrypoint)({ + compilerType: _constants1.COMPILER_NAMES.edgeServer, + name: normalizedBundlePath, + value: (0, _entries.getInstrumentationEntry)({ + absolutePagePath: entryData.absolutePagePath, + isEdgeServer: true, + isDev: true + }), + isServerComponent: true, + hasAppDir + }); + return; + } + const appDirLoader = isAppPath ? (0, _entries.getAppEntry)({ + name: bundlePath, + page, + appPaths: entryData.appPaths, + allNormalizedAppPaths: null, + pagePath: _path.posix.join(_constants.APP_DIR_ALIAS, (0, _path.relative)(this.appDir, entryData.absolutePagePath).replace(/\\/g, '/')), + appDir: this.appDir, + pageExtensions: this.config.pageExtensions, + rootDir: this.dir, + isDev: true, + tsconfigPath: this.config.typescript.tsconfigPath, + basePath: this.config.basePath, + assetPrefix: this.config.assetPrefix, + nextConfigOutput: this.config.output, + preferredRegion: staticInfo == null ? void 0 : staticInfo.preferredRegion, + middlewareConfig: Buffer.from(JSON.stringify((staticInfo == null ? void 0 : staticInfo.middleware) || {})).toString('base64'), + isGlobalNotFoundEnabled: this.config.experimental.globalNotFound ? true : undefined + }).import : undefined; + entrypoints[bundlePath] = (0, _entries.finalizeEntrypoint)({ + compilerType: _constants1.COMPILER_NAMES.edgeServer, + name: bundlePath, + value: (0, _entries.getEdgeServerEntry)({ + absolutePagePath: entryData.absolutePagePath, + rootDir: this.dir, + buildId: this.buildId, + bundlePath, + config: this.config, + isDev: true, + page, + pages: this.pagesMapping, + isServerComponent, + appDirLoader, + pagesType: isAppPath ? _pagetypes.PAGE_TYPES.APP : _pagetypes.PAGE_TYPES.PAGES, + preferredRegion: staticInfo == null ? void 0 : staticInfo.preferredRegion + }), + hasAppDir + }); + }, + onClient: ()=>{ + if (!isClientCompilation) return; + if (isChildEntry) { + entries[entryKey].status = _ondemandentryhandler.BUILDING; + entrypoints[bundlePath] = (0, _entries.finalizeEntrypoint)({ + name: bundlePath, + compilerType: _constants1.COMPILER_NAMES.client, + value: entryData.request, + hasAppDir + }); + } else { + entries[entryKey].status = _ondemandentryhandler.BUILDING; + entrypoints[bundlePath] = (0, _entries.finalizeEntrypoint)({ + name: bundlePath, + compilerType: _constants1.COMPILER_NAMES.client, + value: (0, _entries.getClientEntry)({ + absolutePagePath: entryData.absolutePagePath, + page + }), + hasAppDir + }); + } + }, + onServer: ()=>{ + // TODO-APP: verify if child entry should support. + if (!isNodeServerCompilation || !isEntry) return; + entries[entryKey].status = _ondemandentryhandler.BUILDING; + let relativeRequest = (0, _path.relative)(config.context, entryData.absolutePagePath); + if (!(0, _path.isAbsolute)(relativeRequest) && !relativeRequest.startsWith('../')) { + relativeRequest = `./${relativeRequest}`; + } + let value; + if (isInstrumentation) { + value = (0, _entries.getInstrumentationEntry)({ + absolutePagePath: entryData.absolutePagePath, + isEdgeServer: false, + isDev: true + }); + entrypoints[bundlePath] = (0, _entries.finalizeEntrypoint)({ + compilerType: _constants1.COMPILER_NAMES.server, + name: bundlePath, + isServerComponent: true, + value, + hasAppDir + }); + } else if ((0, _utils.isMiddlewareFile)(page)) { + value = (0, _entries.getEdgeServerEntry)({ + absolutePagePath: entryData.absolutePagePath, + rootDir: this.dir, + buildId: this.buildId, + bundlePath, + config: this.config, + isDev: true, + page, + pages: this.pagesMapping, + isServerComponent, + pagesType: _pagetypes.PAGE_TYPES.PAGES, + preferredRegion: staticInfo == null ? void 0 : staticInfo.preferredRegion + }); + } else if (isAppPath) { + // This path normalization is critical for webpack to resolve the next internals as entry. + const pagePath = entryData.absolutePagePath.startsWith((0, _path.dirname)(require.resolve('next/package.json'))) ? entryData.absolutePagePath : _path.posix.join(_constants.APP_DIR_ALIAS, (0, _path.relative)(this.appDir, entryData.absolutePagePath).replace(/\\/g, '/')); + value = (0, _entries.getAppEntry)({ + name: bundlePath, + page, + appPaths: entryData.appPaths, + allNormalizedAppPaths: null, + pagePath, + appDir: this.appDir, + pageExtensions: this.config.pageExtensions, + rootDir: this.dir, + isDev: true, + tsconfigPath: this.config.typescript.tsconfigPath, + basePath: this.config.basePath, + assetPrefix: this.config.assetPrefix, + nextConfigOutput: this.config.output, + preferredRegion: staticInfo == null ? void 0 : staticInfo.preferredRegion, + middlewareConfig: Buffer.from(JSON.stringify((staticInfo == null ? void 0 : staticInfo.middleware) || {})).toString('base64'), + isGlobalNotFoundEnabled: this.config.experimental.globalNotFound ? true : undefined + }); + } else if ((0, _isapiroute.isAPIRoute)(page)) { + value = (0, _nextrouteloader.getRouteLoaderEntry)({ + kind: _routekind.RouteKind.PAGES_API, + page, + absolutePagePath: relativeRequest, + preferredRegion: staticInfo == null ? void 0 : staticInfo.preferredRegion, + middlewareConfig: (staticInfo == null ? void 0 : staticInfo.middleware) || {} + }); + } else if (!(0, _utils.isMiddlewareFile)(page) && !(0, _isinternalcomponent.isInternalComponent)(relativeRequest) && !(0, _isinternalcomponent.isNonRoutePagesPage)(page) && !isInstrumentation) { + value = (0, _nextrouteloader.getRouteLoaderEntry)({ + kind: _routekind.RouteKind.PAGES, + page, + pages: this.pagesMapping, + absolutePagePath: relativeRequest, + preferredRegion: staticInfo == null ? void 0 : staticInfo.preferredRegion, + middlewareConfig: (staticInfo == null ? void 0 : staticInfo.middleware) ?? {} + }); + } else { + value = relativeRequest; + } + entrypoints[bundlePath] = (0, _entries.finalizeEntrypoint)({ + compilerType: _constants1.COMPILER_NAMES.server, + name: bundlePath, + isServerComponent, + value, + hasAppDir + }); + } + }); + })); + if (!this.hasPagesRouterEntrypoints) { + delete entrypoints[_constants1.CLIENT_STATIC_FILES_RUNTIME_MAIN]; + delete entrypoints['pages/_app']; + delete entrypoints['pages/_error']; + delete entrypoints['/_error']; + delete entrypoints['pages/_document']; + } + // Remove React Refresh entrypoint chunk as `app` doesn't require it. + if (!this.hasPagesRouterEntrypoints) { + delete entrypoints[_constants1.CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH]; + } + if (!this.hasAppRouterEntrypoints) { + delete entrypoints[_constants1.CLIENT_STATIC_FILES_RUNTIME_MAIN_APP]; + } + return entrypoints; + }; + } + // Enable building of client compilation before server compilation in development + // @ts-ignore webpack 5 + this.activeWebpackConfigs.parallelism = 1; + await Promise.all(Array.from((0, _webpackconfig.getCacheDirectories)(this.activeWebpackConfigs)).map(_cacheinvalidation.checkFileSystemCacheInvalidationAndCleanup)); + this.multiCompiler = (0, _getwebpackbundler.default)()(this.activeWebpackConfigs); + await this.afterCompile(this.multiCompiler); + // Copy over the filesystem so that it is shared between all compilers. + const inputFileSystem = this.multiCompiler.compilers[0].inputFileSystem; + for (const compiler of this.multiCompiler.compilers){ + compiler.inputFileSystem = inputFileSystem; + // This is set for the initial compile. After that Watching class in webpack adds it. + compiler.fsStartTime = Date.now(); + // Ensure NodeEnvironmentPlugin doesn't purge the inputFileSystem. Purging is handled in `done` below. + compiler.hooks.beforeRun.intercept({ + register (tapInfo) { + if (tapInfo.name === 'NodeEnvironmentPlugin') { + return null; + } + return tapInfo; + } + }); + } + this.multiCompiler.hooks.done.tap('NextjsHotReloader', ()=>{ + var _inputFileSystem_purge; + inputFileSystem == null ? void 0 : (_inputFileSystem_purge = inputFileSystem.purge) == null ? void 0 : _inputFileSystem_purge.call(inputFileSystem); + }); + (0, _output.watchCompilers)(this.multiCompiler.compilers[0], this.multiCompiler.compilers[1], this.multiCompiler.compilers[2]); + // Watch for changes to client/server page files so we can tell when just + // the server file changes and trigger a reload for GS(S)P pages + const changedClientPages = new Set(); + const changedServerPages = new Set(); + const changedEdgeServerPages = new Set(); + const changedServerComponentPages = new Set(); + const changedCSSImportPages = new Set(); + const prevClientPageHashes = new Map(); + const prevServerPageHashes = new Map(); + const prevEdgeServerPageHashes = new Map(); + const prevCSSImportModuleHashes = new Map(); + const pageExtensionRegex = new RegExp(`\\.(?:${this.config.pageExtensions.join('|')})$`); + const trackPageChanges = (pageHashMap, changedItems, serverComponentChangedItems)=>(stats)=>{ + try { + stats.entrypoints.forEach((entry, key)=>{ + if (key.startsWith('pages/') || key.startsWith('app/') || (0, _utils.isMiddlewareFilename)(key)) { + // TODO this doesn't handle on demand loaded chunks + entry.chunks.forEach((chunk)=>{ + if (chunk.id === key) { + const modsIterable = stats.chunkGraph.getChunkModulesIterable(chunk); + let hasCSSModuleChanges = false; + let chunksHash = new _webpack.StringXor(); + let chunksHashServerLayer = new _webpack.StringXor(); + modsIterable.forEach((mod)=>{ + if (mod.resource && mod.resource.replace(/\\/g, '/').includes(key) && // Shouldn't match CSS modules, etc. + pageExtensionRegex.test(mod.resource)) { + var _mod_buildInfo_rsc, _mod_buildInfo; + // use original source to calculate hash since mod.hash + // includes the source map in development which changes + // every time for both server and client so we calculate + // the hash without the source map for the page module + const hash = require('crypto').createHash('sha1').update(mod.originalSource().buffer()).digest().toString('hex'); + if (mod.layer === _constants.WEBPACK_LAYERS.reactServerComponents && (mod == null ? void 0 : (_mod_buildInfo = mod.buildInfo) == null ? void 0 : (_mod_buildInfo_rsc = _mod_buildInfo.rsc) == null ? void 0 : _mod_buildInfo_rsc.type) !== 'client') { + chunksHashServerLayer.add(hash); + } + chunksHash.add(hash); + } else { + var _mod_buildInfo_rsc1, _mod_buildInfo1; + // for non-pages we can use the module hash directly + const hash = stats.chunkGraph.getModuleHash(mod, chunk.runtime); + if (mod.layer === _constants.WEBPACK_LAYERS.reactServerComponents && (mod == null ? void 0 : (_mod_buildInfo1 = mod.buildInfo) == null ? void 0 : (_mod_buildInfo_rsc1 = _mod_buildInfo1.rsc) == null ? void 0 : _mod_buildInfo_rsc1.type) !== 'client') { + chunksHashServerLayer.add(hash); + } + chunksHash.add(hash); + // Both CSS import changes from server and client + // components are tracked. + if (key.startsWith('app/') && /\.(css|scss|sass)$/.test(mod.resource || '')) { + const resourceKey = mod.layer + ':' + mod.resource; + const prevHash = prevCSSImportModuleHashes.get(resourceKey); + if (prevHash && prevHash !== hash) { + hasCSSModuleChanges = true; + } + prevCSSImportModuleHashes.set(resourceKey, hash); + } + } + }); + const prevHash = pageHashMap.get(key); + const curHash = chunksHash.toString(); + if (prevHash && prevHash !== curHash) { + changedItems.add(key); + } + pageHashMap.set(key, curHash); + if (serverComponentChangedItems) { + const serverKey = _constants.WEBPACK_LAYERS.reactServerComponents + ':' + key; + const prevServerHash = pageHashMap.get(serverKey); + const curServerHash = chunksHashServerLayer.toString(); + if (prevServerHash && prevServerHash !== curServerHash) { + serverComponentChangedItems.add(key); + } + pageHashMap.set(serverKey, curServerHash); + } + if (hasCSSModuleChanges) { + changedCSSImportPages.add(key); + } + } + }); + } + }); + } catch (err) { + console.error(err); + } + }; + this.multiCompiler.compilers[0].hooks.emit.tap('NextjsHotReloaderForClient', trackPageChanges(prevClientPageHashes, changedClientPages)); + this.multiCompiler.compilers[1].hooks.emit.tap('NextjsHotReloaderForServer', trackPageChanges(prevServerPageHashes, changedServerPages, changedServerComponentPages)); + this.multiCompiler.compilers[2].hooks.emit.tap('NextjsHotReloaderForServer', trackPageChanges(prevEdgeServerPageHashes, changedEdgeServerPages, changedServerComponentPages)); + // This plugin watches for changes to _document.js and notifies the client side that it should reload the page + this.multiCompiler.compilers[1].hooks.failed.tap('NextjsHotReloaderForServer', (err)=>{ + this.serverError = err; + this.serverStats = null; + this.serverChunkNames = undefined; + }); + this.multiCompiler.compilers[2].hooks.done.tap('NextjsHotReloaderForServer', (stats)=>{ + this.serverError = null; + this.edgeServerStats = stats; + }); + this.multiCompiler.compilers[1].hooks.done.tap('NextjsHotReloaderForServer', (stats)=>{ + this.serverError = null; + this.serverStats = stats; + if (!this.pagesDir) { + return; + } + const { compilation } = stats; + // We only watch `_document` for changes on the server compilation + // the rest of the files will be triggered by the client compilation + const documentChunk = compilation.namedChunks.get('pages/_document'); + // If the document chunk can't be found we do nothing + if (!documentChunk) { + return; + } + // Initial value + if (this.serverPrevDocumentHash === null) { + this.serverPrevDocumentHash = documentChunk.hash || null; + return; + } + // If _document.js didn't change we don't trigger a reload. + if (documentChunk.hash === this.serverPrevDocumentHash) { + return; + } + // As document chunk will change if new app pages are joined, + // since react bundle is different it will effect the chunk hash. + // So we diff the chunk changes, if there's only new app page chunk joins, + // then we don't trigger a reload by checking pages/_document chunk change. + if (this.appDir) { + const chunkNames = new Set(compilation.namedChunks.keys()); + const diffChunkNames = (0, _utils.difference)(this.serverChunkNames || new Set(), chunkNames); + if (diffChunkNames.length === 0 || diffChunkNames.every((chunkName)=>chunkName.startsWith('app/'))) { + return; + } + this.serverChunkNames = chunkNames; + } + this.serverPrevDocumentHash = documentChunk.hash || null; + // Notify reload to reload the page, as _document.js was changed (different hash) + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: '_document has changed' + }); + }); + this.multiCompiler.hooks.done.tap('NextjsHotReloaderForServer', (stats)=>{ + const reloadAfterInvalidation = this.reloadAfterInvalidation; + this.reloadAfterInvalidation = false; + const serverOnlyChanges = (0, _utils.difference)(changedServerPages, changedClientPages); + const edgeServerOnlyChanges = (0, _utils.difference)(changedEdgeServerPages, changedClientPages); + const pageChanges = serverOnlyChanges.concat(edgeServerOnlyChanges).filter((key)=>key.startsWith('pages/')); + const middlewareChanges = [ + ...Array.from(changedEdgeServerPages), + ...Array.from(changedServerPages) + ].filter((name)=>(0, _utils.isMiddlewareFilename)(name)); + if (middlewareChanges.length > 0) { + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES + }); + } + if (pageChanges.length > 0) { + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES, + pages: serverOnlyChanges.map((pg)=>(0, _denormalizepagepath.denormalizePagePath)(pg.slice('pages'.length))) + }); + } + if (changedServerComponentPages.size || changedCSSImportPages.size || reloadAfterInvalidation) { + this.resetFetch(); + this.refreshServerComponents(stats.hash); + } + changedClientPages.clear(); + changedServerPages.clear(); + changedEdgeServerPages.clear(); + changedServerComponentPages.clear(); + changedCSSImportPages.clear(); + }); + this.multiCompiler.compilers[0].hooks.failed.tap('NextjsHotReloaderForClient', (err)=>{ + this.clientError = err; + this.clientStats = null; + }); + this.multiCompiler.compilers[0].hooks.done.tap('NextjsHotReloaderForClient', (stats)=>{ + this.clientError = null; + this.clientStats = stats; + const { compilation } = stats; + const chunkNames = new Set([ + ...compilation.namedChunks.keys() + ].filter((name)=>!!(0, _getroutefromentrypoint.default)(name))); + if (this.prevChunkNames) { + // detect chunks which have to be replaced with a new template + // e.g, pages/index.js <-> pages/_error.js + const addedPages = diff(chunkNames, this.prevChunkNames); + const removedPages = diff(this.prevChunkNames, chunkNames); + if (addedPages.size > 0) { + for (const addedPage of addedPages){ + const page = (0, _getroutefromentrypoint.default)(addedPage); + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE, + data: [ + page + ] + }); + } + } + if (removedPages.size > 0) { + for (const removedPage of removedPages){ + const page = (0, _getroutefromentrypoint.default)(removedPage); + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE, + data: [ + page + ] + }); + } + } + } + this.prevChunkNames = chunkNames; + }); + this.webpackHotMiddleware = new _hotmiddleware.WebpackHotMiddleware(this.multiCompiler.compilers, this.versionInfo, this.devtoolsFrontendUrl, this.config, initialDevToolsConfig); + let booted = false; + this.watcher = await new Promise((resolve)=>{ + var _this_multiCompiler; + const watcher = (_this_multiCompiler = this.multiCompiler) == null ? void 0 : _this_multiCompiler.watch(// @ts-ignore webpack supports an array of watchOptions when using a multiCompiler + this.activeWebpackConfigs.map((config)=>config.watchOptions), // Errors are handled separately + (_err)=>{ + if (!booted) { + booted = true; + resolve(watcher); + } + }); + }); + this.onDemandEntries = (0, _ondemandentryhandler.onDemandEntryHandler)({ + hotReloader: this, + multiCompiler: this.multiCompiler, + pagesDir: this.pagesDir, + appDir: this.appDir, + rootDir: this.dir, + nextConfig: this.config, + ...this.config.onDemandEntries + }); + this.middlewares.push((0, _middlewarewebpack.getOverlayMiddleware)({ + rootDirectory: this.dir, + isSrcDir: this.isSrcDir, + clientStats: ()=>this.clientStats, + serverStats: ()=>this.serverStats, + edgeServerStats: ()=>this.edgeServerStats + }), (0, _middlewarewebpack.getSourceMapMiddleware)({ + clientStats: ()=>this.clientStats, + serverStats: ()=>this.serverStats, + edgeServerStats: ()=>this.edgeServerStats + }), (0, _getnexterrorfeedbackmiddleware.getNextErrorFeedbackMiddleware)(this.telemetry), (0, _getdevoverlayfontmiddleware.getDevOverlayFontMiddleware)(), (0, _devindicatormiddleware.getDisableDevIndicatorMiddleware)(), (0, _restartdevservermiddleware.getRestartDevServerMiddleware)({ + telemetry: this.telemetry, + webpackCacheDirectories: this.activeWebpackConfigs != null ? (0, _webpackconfig.getCacheDirectories)(this.activeWebpackConfigs) : undefined + }), (0, _devtoolsconfigmiddleware.devToolsConfigMiddleware)({ + distDir: this.distDir, + sendUpdateSignal: (data)=>{ + var // Update the in-memory devToolsConfig value + // which will be used for the next onHMR call. + _this_webpackHotMiddleware; + (_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.updateDevToolsConfig(data); + this.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEVTOOLS_CONFIG, + data + }); + } + }), (0, _attachnodejsdebuggermiddleware.getAttachNodejsDebuggerMiddleware)(), ...this.config.experimental.mcpServer ? [ + (0, _getmcpmiddleware.getMcpMiddleware)({ + projectPath: this.dir, + distDir: this.distDir, + nextConfig: this.config, + pagesDir: this.pagesDir, + appDir: this.appDir, + sendHmrMessage: (message)=>this.send(message), + getActiveConnectionCount: ()=>{ + var _this_webpackHotMiddleware; + return ((_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.getClientCount()) ?? 0; + }, + getDevServerUrl: ()=>process.env.__NEXT_PRIVATE_ORIGIN + }) + ] : []); + (0, _formaterrors.setStackFrameResolver)(async (request)=>{ + return (0, _middlewarewebpack.getOriginalStackFrames)({ + isServer: request.isServer, + isEdgeServer: request.isEdgeServer, + isAppDirectory: request.isAppDirectory, + frames: request.frames, + clientStats: ()=>this.clientStats, + serverStats: ()=>this.serverStats, + edgeServerStats: ()=>this.edgeServerStats, + rootDirectory: this.dir + }); + }); + } + async afterCompile(_multiCompiler) {} + invalidate({ reloadAfterInvalidation } = { + reloadAfterInvalidation: false + }) { + var _this_multiCompiler; + // Cache the `reloadAfterInvalidation` flag, and use it to reload the page when compilation is done + this.reloadAfterInvalidation = reloadAfterInvalidation; + const outputPath = (_this_multiCompiler = this.multiCompiler) == null ? void 0 : _this_multiCompiler.outputPath; + if (outputPath) { + var _getInvalidator; + (_getInvalidator = (0, _ondemandentryhandler.getInvalidator)(outputPath)) == null ? void 0 : _getInvalidator.invalidate(); + } + } + async getCompilationErrors(page) { + var _this_clientStats, _this_serverStats, _this_edgeServerStats; + const getErrors = ({ compilation })=>{ + var _failedPages_normalizedPage; + const failedPages = erroredPages(compilation); + const normalizedPage = (0, _normalizepathsep.normalizePathSep)(page); + // If there is an error related to the requesting page we display it instead of the first error + return ((_failedPages_normalizedPage = failedPages[normalizedPage]) == null ? void 0 : _failedPages_normalizedPage.length) > 0 ? failedPages[normalizedPage] : compilation.errors; + }; + if (this.clientError) { + return [ + this.clientError + ]; + } else if (this.serverError) { + return [ + this.serverError + ]; + } else if ((_this_clientStats = this.clientStats) == null ? void 0 : _this_clientStats.hasErrors()) { + return getErrors(this.clientStats); + } else if ((_this_serverStats = this.serverStats) == null ? void 0 : _this_serverStats.hasErrors()) { + return getErrors(this.serverStats); + } else if ((_this_edgeServerStats = this.edgeServerStats) == null ? void 0 : _this_edgeServerStats.hasErrors()) { + return getErrors(this.edgeServerStats); + } else { + return []; + } + } + send(message) { + this.webpackHotMiddleware.publish(message); + } + sendToClient(client, message) { + this.webpackHotMiddleware.publishToClient(client, message); + } + sendToLegacyClients(message) { + this.webpackHotMiddleware.publishToLegacyClients(message); + } + setCacheStatus(status, htmlRequestId) { + var _this_webpackHotMiddleware; + const client = (_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.getClient(htmlRequestId); + if (client !== undefined) { + this.sendToClient(client, { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CACHE_INDICATOR, + state: status + }); + } else { + // If the client is not connected, store the status so that we can send it + // when the client connects. + this.cacheStatusesByRequestId.set(htmlRequestId, status); + } + } + setReactDebugChannel(debugChannel, htmlRequestId, requestId) { + var _this_webpackHotMiddleware; + const client = (_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.getClient(htmlRequestId); + if (htmlRequestId === requestId) { + // The debug channel is for the HTML request. + if (client) { + // If the client is connected, we can connect the debug channel for + // the HTML request immediately. + (0, _debugchannel.connectReactDebugChannel)(htmlRequestId, debugChannel, this.sendToClient.bind(this, client)); + } else { + // Otherwise, we'll do that when the client connects and just store + // the debug channel. + (0, _debugchannel.setReactDebugChannelForHtmlRequest)(htmlRequestId, debugChannel); + } + } else if (client) { + // The debug channel is for a subsequent request (e.g. client-side + // navigation for server function call). If the client is not connected + // anymore, we don't need to connect the debug channel. + (0, _debugchannel.connectReactDebugChannel)(requestId, debugChannel, this.sendToClient.bind(this, client)); + } + } + sendErrorsToBrowser(errorsRscStream, htmlRequestId) { + var _this_webpackHotMiddleware; + const client = (_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.getClient(htmlRequestId); + if (client) { + // If the client is connected, we can send the errors immediately. + (0, _serializederrors.sendSerializedErrorsToClient)(errorsRscStream, this.sendToClient.bind(this, client)); + } else { + // Otherwise, store the errors stream so that we can send it when the + // client connects. + (0, _serializederrors.setErrorsRscStreamForHtmlRequest)(htmlRequestId, errorsRscStream); + } + } + async ensurePage({ page, clientOnly, appPaths, definition, isApp, url }) { + return this.hotReloaderSpan.traceChild('ensure-page', { + inputPage: page + }).traceAsyncFn(async ()=>{ + var _this_onDemandEntries; + // Make sure we don't re-build or dispose prebuilt pages + if (page !== '/_error' && _constants1.BLOCKED_PAGES.indexOf(page) !== -1) { + return; + } + const error = clientOnly ? this.clientError : this.serverError || this.clientError; + if (error) { + throw error; + } + return (_this_onDemandEntries = this.onDemandEntries) == null ? void 0 : _this_onDemandEntries.ensurePage({ + page, + appPaths, + definition, + isApp, + url + }); + }); + } + close() { + var _this_webpackHotMiddleware; + // Report MCP telemetry if MCP server is enabled + (0, _mcptelemetrytracker.recordMcpTelemetry)(this.telemetry); + (_this_webpackHotMiddleware = this.webpackHotMiddleware) == null ? void 0 : _this_webpackHotMiddleware.close(); + } +} + +//# sourceMappingURL=hot-reloader-webpack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/log-requests.js b/cli/app/node_modules/next/dist/server/dev/log-requests.js new file mode 100644 index 00000000000..bbb24198e0a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/log-requests.js @@ -0,0 +1,149 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ignoreLoggingIncomingRequests: null, + logRequests: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ignoreLoggingIncomingRequests: function() { + return ignoreLoggingIncomingRequests; + }, + logRequests: function() { + return logRequests; + } +}); +const _durationtostring = require("../../build/duration-to-string"); +const _picocolors = require("../../lib/picocolors"); +const _url = require("../../lib/url"); +const _requestmeta = require("../request-meta"); +const _serveractionlogger = require("./server-action-logger"); +function ignoreLoggingIncomingRequests(request, loggingConfig) { + var _loggingConfig_incomingRequests; + // If it's boolean use the boolean value + if (typeof (loggingConfig == null ? void 0 : loggingConfig.incomingRequests) === 'boolean') { + return !loggingConfig.incomingRequests; + } + // Any of the value on the chain is falsy, will not ignore the request. + const ignore = loggingConfig == null ? void 0 : (_loggingConfig_incomingRequests = loggingConfig.incomingRequests) == null ? void 0 : _loggingConfig_incomingRequests.ignore; + // If ignore is not set, don't ignore anything + if (!ignore) { + return false; + } + // If array of RegExp, ignore if any pattern matches + return ignore.some((pattern)=>pattern.test(request.url)); +} +function logRequests(request, response, loggingConfig, requestStartTime, requestEndTime, devRequestTimingMiddlewareStart, devRequestTimingMiddlewareEnd, devRequestTimingInternalsEnd, devGenerateStaticParamsDuration) { + if (!ignoreLoggingIncomingRequests(request, loggingConfig)) { + logIncomingRequests(request, requestStartTime, requestEndTime, response.statusCode, devRequestTimingMiddlewareStart, devRequestTimingMiddlewareEnd, devRequestTimingInternalsEnd, devGenerateStaticParamsDuration); + // Log server action after the request log + const serverActionLog = (0, _requestmeta.getRequestMeta)(request, 'devServerActionLog'); + if (serverActionLog) { + const argsStr = (0, _serveractionlogger.formatArgs)(serverActionLog.args); + process.stdout.write(` └─ ƒ ${serverActionLog.functionName}(${argsStr}) in ${serverActionLog.duration}ms ${(0, _picocolors.dim)(serverActionLog.location)}\n`); + (0, _requestmeta.removeRequestMeta)(request, 'devServerActionLog'); + } + } + if (request.fetchMetrics) { + for (const fetchMetric of request.fetchMetrics){ + logFetchMetric(fetchMetric, loggingConfig); + } + } +} +function logIncomingRequests(request, requestStartTime, requestEndTime, statusCode, devRequestTimingMiddlewareStart, devRequestTimingMiddlewareEnd, devRequestTimingInternalsEnd, devGenerateStaticParamsDuration) { + const isRSC = (0, _requestmeta.getRequestMeta)(request, 'isRSCRequest'); + const url = isRSC ? (0, _url.stripNextRscUnionQuery)(request.url) : request.url; + const statusCodeColor = statusCode < 200 ? _picocolors.white : statusCode < 300 ? _picocolors.green : statusCode < 400 ? _picocolors.blue : statusCode < 500 ? _picocolors.yellow : _picocolors.red; + const coloredStatus = statusCodeColor(statusCode.toString()); + const totalRequestTime = requestEndTime - requestStartTime; + const times = []; + let middlewareTime; + if (devRequestTimingMiddlewareStart && devRequestTimingMiddlewareEnd) { + middlewareTime = devRequestTimingMiddlewareEnd - devRequestTimingMiddlewareStart; + times.push([ + 'proxy.ts', + middlewareTime + ]); + } + if (devRequestTimingInternalsEnd) { + let frameworkTime = devRequestTimingInternalsEnd - requestStartTime; + /* Middleware runs during the internals so we have to subtract it from the framework time */ if (middlewareTime) { + frameworkTime -= middlewareTime; + } + // Insert as the first item to be rendered in the list + times.unshift([ + 'next.js', + frameworkTime + ]); + // Insert after compile, before render based on the execution order. + if (devGenerateStaticParamsDuration) { + // Pages Router getStaticPaths are technically "generate params" as well. + times.push([ + 'generate-params', + devGenerateStaticParamsDuration + ]); + } + times.push([ + 'application-code', + requestEndTime - devRequestTimingInternalsEnd + ]); + } + return writeLine(`${request.method} ${url} ${coloredStatus} in ${(0, _durationtostring.hrtimeBigIntDurationToString)(totalRequestTime)}${times.length > 0 ? (0, _picocolors.dim)(` (${times.map(([label, time])=>`${label}: ${(0, _durationtostring.hrtimeBigIntDurationToString)(time)}`).join(', ')})`) : ''}`); +} +function logFetchMetric(fetchMetric, loggingConfig) { + var _loggingConfig_fetches; + let { cacheReason, cacheStatus, cacheWarning, end, method, start, status, url } = fetchMetric; + if (cacheStatus === 'hmr' && !(loggingConfig == null ? void 0 : (_loggingConfig_fetches = loggingConfig.fetches) == null ? void 0 : _loggingConfig_fetches.hmrRefreshes)) { + // Cache hits during HMR refreshes are intentionally not logged, unless + // explicitly enabled in the logging config. + return; + } + if (loggingConfig == null ? void 0 : loggingConfig.fetches) { + if (url.length > 48 && !loggingConfig.fetches.fullUrl) { + url = truncateUrl(url); + } + writeLine((0, _picocolors.white)(`${method} ${url} ${status} in ${Math.round(end - start)}ms ${formatCacheStatus(cacheStatus)}`), 1); + if (cacheStatus === 'skip' || cacheStatus === 'miss') { + writeLine((0, _picocolors.gray)(`Cache ${cacheStatus === 'skip' ? 'skipped' : 'missed'} reason: (${(0, _picocolors.white)(cacheReason)})`), 2); + } + } else if (cacheWarning) { + // When logging for fetches is not enabled, we still want to print any + // associated warnings, so we print the request first to provide context. + writeLine((0, _picocolors.white)(`${method} ${url}`), 1); + } + if (cacheWarning) { + writeLine(`${(0, _picocolors.yellow)((0, _picocolors.bold)('⚠'))} ${(0, _picocolors.white)(cacheWarning)}`, 2); + } +} +function writeLine(text, indentationLevel = 0) { + process.stdout.write(` ${'│ '.repeat(indentationLevel)}${text}\n`); +} +function truncate(text, maxLength) { + return maxLength !== undefined && text.length > maxLength ? text.substring(0, maxLength) + '..' : text; +} +function truncateUrl(url) { + const { protocol, host, pathname, search } = new URL(url); + return protocol + '//' + truncate(host, 16) + truncate(pathname, 24) + truncate(search, 16); +} +function formatCacheStatus(cacheStatus) { + switch(cacheStatus){ + case 'hmr': + return (0, _picocolors.green)('(HMR cache)'); + case 'hit': + return (0, _picocolors.green)('(cache hit)'); + case 'miss': + case 'skip': + return (0, _picocolors.yellow)(`(cache ${cacheStatus})`); + default: + return cacheStatus; + } +} + +//# sourceMappingURL=log-requests.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/messages.js b/cli/app/node_modules/next/dist/server/dev/messages.js new file mode 100644 index 00000000000..7127a16f1f6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/messages.js @@ -0,0 +1,74 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + FAST_REFRESH_RUNTIME_RELOAD: null, + createBinaryHmrMessageData: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + FAST_REFRESH_RUNTIME_RELOAD: function() { + return FAST_REFRESH_RUNTIME_RELOAD; + }, + createBinaryHmrMessageData: function() { + return createBinaryHmrMessageData; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _hotreloadertypes = require("./hot-reloader-types"); +const FAST_REFRESH_RUNTIME_RELOAD = 'Fast Refresh had to perform a full reload due to a runtime error.'; +const textEncoder = new TextEncoder(); +function createBinaryHmrMessageData(message) { + switch(message.type){ + case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER: + { + const { serializedErrors } = message; + const totalLength = 1 + serializedErrors.length; + const data = new Uint8Array(totalLength); + const view = new DataView(data.buffer); + view.setUint8(0, _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER); + data.set(serializedErrors, 1); + return data; + } + case _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK: + { + const { requestId, chunk } = message; + const requestIdBytes = textEncoder.encode(requestId); + const requestIdLength = requestIdBytes.length; + if (requestIdLength > 255) { + throw Object.defineProperty(new _invarianterror.InvariantError('Request ID is too long for the binary HMR message.'), "__NEXT_ERROR_CODE", { + value: "E805", + enumerable: false, + configurable: true + }); + } + const chunkLength = chunk ? chunk.length : 0; + const totalLength = 2 + requestIdLength + chunkLength; + const data = new Uint8Array(totalLength); + const view = new DataView(data.buffer); + view.setUint8(0, _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REACT_DEBUG_CHUNK); + view.setUint8(1, requestIdLength); + textEncoder.encodeInto(requestId, data.subarray(2, 2 + requestIdLength)); + if (chunk) { + data.set(chunk, 2 + requestIdLength); + } + return data; + } + default: + { + throw Object.defineProperty(new _invarianterror.InvariantError(`Invalid binary HMR message of type ${message.type}`), "__NEXT_ERROR_CODE", { + value: "E809", + enumerable: false, + configurable: true + }); + } + } +} + +//# sourceMappingURL=messages.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/middleware-turbopack.js b/cli/app/node_modules/next/dist/server/dev/middleware-turbopack.js new file mode 100644 index 00000000000..f31d34ae0d9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/middleware-turbopack.js @@ -0,0 +1,403 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getOriginalStackFrames: null, + getOverlayMiddleware: null, + getSourceMapMiddleware: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getOriginalStackFrames: function() { + return getOriginalStackFrames; + }, + getOverlayMiddleware: function() { + return getOverlayMiddleware; + }, + getSourceMapMiddleware: function() { + return getSourceMapMiddleware; + } +}); +const _shared = require("../../next-devtools/server/shared"); +const _middlewareresponse = require("../../next-devtools/server/middleware-response"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _launcheditor = require("../../next-devtools/server/launch-editor"); +const _sourcemap08 = require("next/dist/compiled/source-map08"); +const _sourcemaps = require("../lib/source-maps"); +const _nodemodule = require("node:module"); +const _nodeurl = require("node:url"); +const _nodeutil = require("node:util"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function shouldIgnorePath(modulePath) { + return modulePath.includes('node_modules') || // Only relevant for when Next.js is symlinked e.g. in the Next.js monorepo + modulePath.includes('next/dist') || modulePath.startsWith('node:'); +} +const currentSourcesByFile = new Map(); +/** + * @returns 1-based lines and 1-based columns + */ async function batchedTraceSource(project, frame) { + const file = frame.file ? decodeURIComponent(frame.file) : undefined; + if (!file) return; + // For node internals they cannot traced the actual source code with project.traceSource, + // we need an early return to indicate it's ignored to avoid the unknown scheme error from `project.traceSource`. + if (file.startsWith('node:')) { + return { + frame: { + file, + line1: frame.line ?? null, + column1: frame.column ?? null, + methodName: frame.methodName ?? '', + ignored: true, + arguments: [] + }, + source: null + }; + } + const currentDirectoryFileUrl = (0, _nodeurl.pathToFileURL)(process.cwd()).href; + const sourceFrame = await project.traceSource(frame, currentDirectoryFileUrl); + if (!sourceFrame) { + return { + frame: { + file, + line1: frame.line ?? null, + column1: frame.column ?? null, + methodName: frame.methodName ?? '', + ignored: shouldIgnorePath(file), + arguments: [] + }, + source: null + }; + } + let source = null; + const originalFile = sourceFrame.originalFile; + // Don't look up source for node_modules or internals. These can often be large bundled files. + const ignored = // Check the sourcemap's ignoreList (e.g. from 3rd party packages) + !!sourceFrame.isIgnored || shouldIgnorePath(originalFile ?? sourceFrame.file); + if (originalFile && !ignored) { + let sourcePromise = currentSourcesByFile.get(originalFile); + if (!sourcePromise) { + sourcePromise = project.getSourceForAsset(originalFile); + currentSourcesByFile.set(originalFile, sourcePromise); + setTimeout(()=>{ + // Cache file reads for 100ms, as frames will often reference the same + // files and can be large. + currentSourcesByFile.delete(originalFile); + }, 100); + } + source = await sourcePromise; + } + const ignorableFrame = { + file: sourceFrame.file, + line1: sourceFrame.line ?? null, + column1: sourceFrame.column ?? null, + methodName: // We ignore the sourcemapped name since it won't be the correct name. + // The callsite will point to the column of the variable name instead of the + // name of the enclosing function. + // TODO(NDX-531): Spy on prepareStackTrace to get the enclosing line number for method name mapping. + frame.methodName ?? '', + ignored, + arguments: [] + }; + return { + frame: ignorableFrame, + source + }; +} +function parseFile(fileParam) { + if (!fileParam) { + return undefined; + } + return (0, _sourcemaps.devirtualizeReactServerURL)(fileParam); +} +function createStackFrames(body) { + const { frames, isServer } = body; + return frames.map((frame)=>{ + const file = parseFile(frame.file); + if (!file) { + return undefined; + } + return { + file, + methodName: frame.methodName ?? '', + line: frame.line1 ?? undefined, + column: frame.column1 ?? undefined, + isServer + }; + }).filter((f)=>f !== undefined); +} +function createStackFrame(searchParams) { + const file = parseFile(searchParams.get('file')); + if (!file) { + return undefined; + } + return { + file, + methodName: searchParams.get('methodName') ?? '', + line: parseInt(searchParams.get('line1') ?? '0', 10) || undefined, + column: parseInt(searchParams.get('column1') ?? '0', 10) || undefined, + isServer: searchParams.get('isServer') === 'true' + }; +} +/** + * @returns 1-based lines and 1-based columns + */ async function nativeTraceSource(frame) { + const sourceURL = frame.file; + let sourceMapPayload; + try { + var _findSourceMap; + sourceMapPayload = (_findSourceMap = (0, _nodemodule.findSourceMap)(sourceURL)) == null ? void 0 : _findSourceMap.payload; + } catch (cause) { + throw Object.defineProperty(new Error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to find the original code.`, { + cause + }), "__NEXT_ERROR_CODE", { + value: "E635", + enumerable: false, + configurable: true + }); + } + if (sourceMapPayload !== undefined) { + let consumer; + try { + consumer = await new _sourcemap08.SourceMapConsumer(sourceMapPayload); + } catch (cause) { + throw Object.defineProperty(new Error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to find the original code.`, { + cause + }), "__NEXT_ERROR_CODE", { + value: "E635", + enumerable: false, + configurable: true + }); + } + let traced; + try { + const originalPosition = consumer.originalPositionFor({ + line: frame.line ?? 1, + // 0-based columns out requires 0-based columns in. + column: (frame.column ?? 1) - 1 + }); + if (originalPosition.source === null) { + traced = null; + } else { + const sourceContent = consumer.sourceContentFor(originalPosition.source, /* returnNullOnMissing */ true) ?? null; + traced = { + originalPosition, + sourceContent + }; + } + } finally{ + consumer.destroy(); + } + if (traced !== null) { + var // We ignore the sourcemapped name since it won't be the correct name. + // The callsite will point to the column of the variable name instead of the + // name of the enclosing function. + // TODO(NDX-531): Spy on prepareStackTrace to get the enclosing line number for method name mapping. + _frame_methodName_replace, _frame_methodName; + const { originalPosition, sourceContent } = traced; + const applicableSourceMap = (0, _sourcemaps.findApplicableSourceMapPayload)((frame.line ?? 1) - 1, (frame.column ?? 1) - 1, sourceMapPayload); + // TODO(veil): Upstream a method to sourcemap consumer that immediately says if a frame is ignored or not. + let ignored = false; + if (applicableSourceMap === undefined) { + console.error('No applicable source map found in sections for frame', frame); + } else { + var _applicableSourceMap_ignoreList; + // TODO: O(n^2). Consider moving `ignoreList` into a Set + const sourceIndex = applicableSourceMap.sources.indexOf(originalPosition.source); + ignored = ((_applicableSourceMap_ignoreList = applicableSourceMap.ignoreList) == null ? void 0 : _applicableSourceMap_ignoreList.includes(sourceIndex)) ?? // When sourcemap is not available, fallback to checking `frame.file`. + // e.g. In pages router, nextjs server code is not bundled into the page. + shouldIgnorePath(frame.file); + } + const originalStackFrame = { + methodName: ((_frame_methodName = frame.methodName) == null ? void 0 : (_frame_methodName_replace = _frame_methodName.replace('__WEBPACK_DEFAULT_EXPORT__', 'default')) == null ? void 0 : _frame_methodName_replace.replace('__webpack_exports__.', '')) || '', + file: originalPosition.source, + line1: originalPosition.line, + column1: originalPosition.column === null ? null : originalPosition.column + 1, + // TODO: c&p from async createOriginalStackFrame but why not frame.arguments? + arguments: [], + ignored + }; + return { + frame: originalStackFrame, + source: sourceContent + }; + } + } + return undefined; +} +async function createOriginalStackFrame(project, projectPath, frame) { + const traced = await nativeTraceSource(frame) ?? // TODO(veil): When would the bundler know more than native? + // If it's faster, try the bundler first and fall back to native later. + await batchedTraceSource(project, frame); + if (!traced) { + return null; + } + let normalizedStackFrameLocation = traced.frame.file; + if (normalizedStackFrameLocation !== null && normalizedStackFrameLocation.startsWith('file://')) { + normalizedStackFrameLocation = _path.default.relative(projectPath, (0, _nodeurl.fileURLToPath)(normalizedStackFrameLocation)); + } + /** undefined = not yet computed */ let originalCodeFrame; + const tracedFrame = traced.frame; + return { + originalStackFrame: { + arguments: tracedFrame.arguments, + file: normalizedStackFrameLocation, + line1: tracedFrame.line1, + column1: tracedFrame.column1, + ignored: tracedFrame.ignored, + methodName: tracedFrame.methodName + }, + get originalCodeFrame () { + if (originalCodeFrame === undefined) { + originalCodeFrame = (0, _shared.getOriginalCodeFrame)(tracedFrame, traced.source); + } + return originalCodeFrame; + } + }; +} +function getOverlayMiddleware({ project, projectPath, isSrcDir }) { + return async function(req, res, next) { + const { pathname, searchParams } = new URL(req.url, 'http://n'); + if (pathname === '/__nextjs_original-stack-frames') { + if (req.method !== 'POST') { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + const body = await new Promise((resolve, reject)=>{ + let data = ''; + req.on('data', (chunk)=>{ + data += chunk; + }); + req.on('end', ()=>resolve(data)); + req.on('error', reject); + }); + const request = JSON.parse(body); + const result = await getOriginalStackFrames({ + project, + projectPath, + frames: request.frames, + isServer: request.isServer, + isEdgeServer: request.isEdgeServer, + isAppDirectory: request.isAppDirectory + }); + (0, _shared.ignoreListAnonymousStackFramesIfSandwiched)(result); + return _middlewareresponse.middlewareResponse.json(res, result); + } else if (pathname === '/__nextjs_launch-editor') { + const isAppRelativePath = searchParams.get('isAppRelativePath') === '1'; + let openEditorResult; + if (isAppRelativePath) { + const relativeFilePath = searchParams.get('file') || ''; + const appPath = _path.default.join('app', isSrcDir ? 'src' : '', relativeFilePath); + openEditorResult = await (0, _launcheditor.openFileInEditor)(appPath, 1, 1, projectPath); + } else { + const frame = createStackFrame(searchParams); + if (!frame) return _middlewareresponse.middlewareResponse.badRequest(res); + openEditorResult = await (0, _launcheditor.openFileInEditor)(frame.file, frame.line ?? 1, frame.column ?? 1, projectPath); + } + if (openEditorResult.error) { + return _middlewareresponse.middlewareResponse.internalServerError(res, openEditorResult.error); + } + if (!openEditorResult.found) { + return _middlewareresponse.middlewareResponse.notFound(res); + } + return _middlewareresponse.middlewareResponse.noContent(res); + } + return next(); + }; +} +function getSourceMapMiddleware(project) { + return async function(req, res, next) { + const { pathname, searchParams } = new URL(req.url, 'http://n'); + if (pathname !== '/__nextjs_source-map') { + return next(); + } + let filename = searchParams.get('filename'); + if (!filename) { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + let nativeSourceMap; + try { + nativeSourceMap = (0, _nodemodule.findSourceMap)(filename); + } catch (cause) { + return _middlewareresponse.middlewareResponse.internalServerError(res, Object.defineProperty(new Error(`${filename}: Invalid source map. Only conformant source maps can be used to find the original code.`, { + cause + }), "__NEXT_ERROR_CODE", { + value: "E635", + enumerable: false, + configurable: true + })); + } + if (nativeSourceMap !== undefined) { + const sourceMapPayload = nativeSourceMap.payload; + return _middlewareresponse.middlewareResponse.json(res, sourceMapPayload); + } + try { + // Turbopack chunk filenames might be URL-encoded. + filename = decodeURI(filename); + } catch { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + if (_path.default.isAbsolute(filename)) { + filename = (0, _nodeurl.pathToFileURL)(filename).href; + } + try { + const sourceMapString = await project.getSourceMap(filename); + if (sourceMapString) { + return _middlewareresponse.middlewareResponse.jsonString(res, sourceMapString); + } + } catch (cause) { + return _middlewareresponse.middlewareResponse.internalServerError(res, Object.defineProperty(new Error(`Failed to get source map for '${filename}'. This is a bug in Next.js`, { + cause + }), "__NEXT_ERROR_CODE", { + value: "E719", + enumerable: false, + configurable: true + })); + } + _middlewareresponse.middlewareResponse.noContent(res); + }; +} +async function getOriginalStackFrames({ project, projectPath, frames, isServer, isEdgeServer, isAppDirectory }) { + const stackFrames = createStackFrames({ + frames, + isServer, + isEdgeServer, + isAppDirectory + }); + return Promise.all(stackFrames.map(async (frame)=>{ + try { + const stackFrame = await createOriginalStackFrame(project, projectPath, frame); + if (stackFrame === null) { + return { + status: 'rejected', + reason: 'Failed to create original stack frame' + }; + } + const originalStackFrame = stackFrame.originalStackFrame; + return { + status: 'fulfilled', + value: { + originalStackFrame, + originalCodeFrame: (originalStackFrame == null ? void 0 : originalStackFrame.ignored) ?? true ? null : stackFrame.originalCodeFrame + } + }; + } catch (error) { + return { + status: 'rejected', + reason: (0, _nodeutil.inspect)(error, { + colors: false + }) + }; + } + })); +} + +//# sourceMappingURL=middleware-turbopack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/middleware-webpack.js b/cli/app/node_modules/next/dist/server/dev/middleware-webpack.js new file mode 100644 index 00000000000..7905f0d9870 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/middleware-webpack.js @@ -0,0 +1,483 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createOriginalStackFrame: null, + getIgnoredSources: null, + getOriginalStackFrames: null, + getOverlayMiddleware: null, + getSourceMapMiddleware: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createOriginalStackFrame: function() { + return createOriginalStackFrame; + }, + getIgnoredSources: function() { + return getIgnoredSources; + }, + getOriginalStackFrames: function() { + return getOriginalStackFrames; + }, + getOverlayMiddleware: function() { + return getOverlayMiddleware; + }, + getSourceMapMiddleware: function() { + return getSourceMapMiddleware; + } +}); +const _module = require("module"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _url = require("url"); +const _sourcemap08 = require("next/dist/compiled/source-map08"); +const _getsourcemapfromfile = require("./get-source-map-from-file"); +const _sourcemaps = require("../lib/source-maps"); +const _launcheditor = require("../../next-devtools/server/launch-editor"); +const _shared = require("../../next-devtools/server/shared"); +const _middlewareresponse = require("../../next-devtools/server/middleware-response"); +const _webpackmodulepath = require("../../next-devtools/shared/webpack-module-path"); +const _util = require("util"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function shouldIgnoreSource(sourceURL) { + return sourceURL.includes('node_modules') || // Only relevant for when Next.js is symlinked e.g. in the Next.js monorepo + sourceURL.includes('next/dist') || sourceURL.startsWith('node:'); +} +function getModuleById(id, compilation) { + const { chunkGraph, modules } = compilation; + return [ + ...modules + ].find((module1)=>chunkGraph.getModuleId(module1) === id); +} +function findModuleNotFoundFromError(errorMessage) { + var _errorMessage_match; + return errorMessage == null ? void 0 : (_errorMessage_match = errorMessage.match(/'([^']+)' module/)) == null ? void 0 : _errorMessage_match[1]; +} +function getSourcePath(source) { + if (source.startsWith('file://')) { + return (0, _url.fileURLToPath)(source); + } + return source.replace(/^(webpack:\/\/\/|webpack:\/\/|webpack:\/\/_N_E\/)/, ''); +} +/** + * @returns 1-based lines and 0-based columns + */ async function findOriginalSourcePositionAndContent(sourceMap, position) { + let consumer; + try { + consumer = await new _sourcemap08.SourceMapConsumer(sourceMap); + } catch (cause) { + console.error(Object.defineProperty(new Error(`${sourceMap.file}: Invalid source map. Only conformant source maps can be used to find the original code.`, { + cause + }), "__NEXT_ERROR_CODE", { + value: "E635", + enumerable: false, + configurable: true + })); + return null; + } + try { + const sourcePosition = consumer.originalPositionFor({ + line: position.line1 ?? 1, + // 0-based columns out requires 0-based columns in. + column: (position.column1 ?? 1) - 1 + }); + if (!sourcePosition.source) { + return null; + } + const sourceContent = consumer.sourceContentFor(sourcePosition.source, /* returnNullOnMissing */ true) ?? null; + return { + sourcePosition, + sourceContent + }; + } finally{ + consumer.destroy(); + } +} +function getIgnoredSources(sourceMap) { + const ignoreList = new Set(sourceMap.ignoreList ?? []); + const moduleFilenames = (sourceMap == null ? void 0 : sourceMap.sources) ?? []; + for(let index = 0; index < moduleFilenames.length; index++){ + // bundlerFilePath case: webpack://./app/page.tsx + const webpackSourceURL = moduleFilenames[index]; + // Format the path to the normal file path + const formattedFilePath = (0, _webpackmodulepath.formatStackFrameFile)(webpackSourceURL); + if (shouldIgnoreSource(formattedFilePath)) { + ignoreList.add(index); + } + } + const ignoredSources = sourceMap.sources.map((source, index)=>{ + var _sourceMap_sourcesContent; + return { + url: source, + ignored: ignoreList.has(sourceMap.sources.indexOf(source)), + content: ((_sourceMap_sourcesContent = sourceMap.sourcesContent) == null ? void 0 : _sourceMap_sourcesContent[index]) ?? null + }; + }); + return ignoredSources; +} +function isIgnoredSource(source, sourcePosition) { + if (sourcePosition.source == null) { + return true; + } + for (const ignoredSource of source.ignoredSources){ + if (ignoredSource.ignored && ignoredSource.url === sourcePosition.source) { + return true; + } + } + return false; +} +function findOriginalSourcePositionAndContentFromCompilation(moduleId, importedModule, compilation) { + var _module_buildInfo_importLocByPath, _module_buildInfo; + const module1 = getModuleById(moduleId, compilation); + return (module1 == null ? void 0 : (_module_buildInfo = module1.buildInfo) == null ? void 0 : (_module_buildInfo_importLocByPath = _module_buildInfo.importLocByPath) == null ? void 0 : _module_buildInfo_importLocByPath.get(importedModule)) ?? null; +} +async function createOriginalStackFrame({ ignoredByDefault, source, rootDirectory, frame, errorMessage }) { + var // We ignore the sourcemapped name since it won't be the correct name. + // The callsite will point to the column of the variable name instead of the + // name of the enclosing function. + // TODO(NDX-531): Spy on prepareStackTrace to get the enclosing line number for method name mapping. + // default is not a valid identifier in JS so webpack uses a custom variable when it's an unnamed default export + // Resolve it back to `default` for the method name if the source position didn't have the method. + _frame_methodName_replace, _frame_methodName; + const moduleNotFound = findModuleNotFoundFromError(errorMessage); + const result = await (()=>{ + if (moduleNotFound) { + if (source.type === 'file') { + return undefined; + } + return findOriginalSourcePositionAndContentFromCompilation(source.moduleId, moduleNotFound, source.compilation); + } + return findOriginalSourcePositionAndContent(source.sourceMap, frame); + })(); + if (!result) { + return null; + } + const { sourcePosition, sourceContent } = result; + if (!sourcePosition.source) { + return null; + } + const ignored = ignoredByDefault || isIgnoredSource(source, sourcePosition) || // If the source file is externals, should be excluded even it's not ignored source. + // e.g. webpack://next/dist/.. needs to be ignored + shouldIgnoreSource(source.moduleURL); + const sourcePath = getSourcePath(// When sourcePosition.source is the loader path the modulePath is generally better. + (sourcePosition.source.includes('|') ? source.moduleURL : sourcePosition.source) || source.moduleURL); + const filePath = _path.default.resolve(rootDirectory, sourcePath); + const resolvedFilePath = _path.default.relative(rootDirectory, filePath); + const traced = { + file: resolvedFilePath, + line1: sourcePosition.line, + column1: sourcePosition.column === null ? null : sourcePosition.column + 1, + methodName: (_frame_methodName = frame.methodName) == null ? void 0 : (_frame_methodName_replace = _frame_methodName.replace('__WEBPACK_DEFAULT_EXPORT__', 'default')) == null ? void 0 : _frame_methodName_replace.replace('__webpack_exports__.', ''), + arguments: [], + ignored + }; + /** undefined = not yet computed */ let originalCodeFrame; + return { + originalStackFrame: traced, + get originalCodeFrame () { + if (originalCodeFrame === undefined) { + originalCodeFrame = (0, _shared.getOriginalCodeFrame)(traced, sourceContent); + } + return originalCodeFrame; + } + }; +} +async function getSourceMapFromCompilation(id, compilation) { + try { + const module1 = getModuleById(id, compilation); + if (!module1) { + return undefined; + } + // @ts-expect-error The types for `CodeGenerationResults.get` require a + // runtime to be passed as second argument, but apparently it also works + // without it. + const codeGenerationResult = compilation.codeGenerationResults.get(module1); + const source = codeGenerationResult == null ? void 0 : codeGenerationResult.sources.get('javascript'); + return (source == null ? void 0 : source.map()) ?? undefined; + } catch (err) { + console.error(`Failed to lookup module by ID ("${id}"):`, err); + return undefined; + } +} +async function getSource(frame, options) { + let sourceURL = frame.file ?? ''; + const { getCompilations } = options; + sourceURL = (0, _sourcemaps.devirtualizeReactServerURL)(sourceURL); + let nativeSourceMap; + try { + nativeSourceMap = (0, _module.findSourceMap)(sourceURL); + } catch (cause) { + throw Object.defineProperty(new Error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to find the original code.`, { + cause + }), "__NEXT_ERROR_CODE", { + value: "E635", + enumerable: false, + configurable: true + }); + } + if (nativeSourceMap !== undefined) { + const sourceMapPayload = nativeSourceMap.payload; + return { + type: 'file', + sourceMap: (0, _sourcemaps.findApplicableSourceMapPayload)((frame.line1 ?? 1) - 1, (frame.column1 ?? 1) - 1, sourceMapPayload), + ignoredSources: getIgnoredSources(// @ts-expect-error -- TODO: Support IndexSourceMap + sourceMapPayload), + moduleURL: sourceURL + }; + } + if (_path.default.isAbsolute(sourceURL)) { + sourceURL = (0, _url.pathToFileURL)(sourceURL).href; + } + if (sourceURL.startsWith('file:')) { + const sourceMap = await (0, _getsourcemapfromfile.getSourceMapFromFile)(sourceURL); + return sourceMap ? { + type: 'file', + sourceMap, + ignoredSources: getIgnoredSources(sourceMap), + moduleURL: sourceURL + } : undefined; + } + // webpack-internal:///./src/hello.tsx => ./src/hello.tsx + // webpack://_N_E/./src/hello.tsx => ./src/hello.tsx + const moduleId = sourceURL.replace(/^(webpack-internal:\/\/\/|webpack:\/\/(_N_E\/)?)/, '').replace(/\?\d+$/, ''); + // (rsc)/./src/hello.tsx => ./src/hello.tsx + const moduleURL = moduleId.replace(/^(\(.*\)\/?)/, ''); + for (const compilation of getCompilations()){ + const sourceMap = await getSourceMapFromCompilation(moduleId, compilation); + if (sourceMap) { + const ignoredSources = getIgnoredSources(sourceMap); + return { + type: 'bundle', + sourceMap, + compilation, + moduleId, + moduleURL, + ignoredSources + }; + } + } + return undefined; +} +async function getOriginalStackFrames({ isServer, isEdgeServer, isAppDirectory, frames, clientStats, serverStats, edgeServerStats, rootDirectory }) { + const frameResponses = await Promise.all(frames.map((frame)=>getOriginalStackFrame({ + isServer, + isEdgeServer, + isAppDirectory, + frame, + clientStats, + serverStats, + edgeServerStats, + rootDirectory + }).then((value)=>{ + return { + status: 'fulfilled', + value + }; + }, (reason)=>{ + return { + status: 'rejected', + reason: (0, _util.inspect)(reason, { + colors: false + }) + }; + }))); + (0, _shared.ignoreListAnonymousStackFramesIfSandwiched)(frameResponses); + return frameResponses; +} +async function getOriginalStackFrame({ isServer, isEdgeServer, isAppDirectory, frame, clientStats, serverStats, edgeServerStats, rootDirectory }) { + const filename = frame.file ?? ''; + const source = await getSource(frame, { + getCompilations: ()=>{ + const compilations = []; + // Try Client Compilation first. In `pages` we leverage + // `isClientError` to check. In `app` it depends on if it's a server + // / client component and when the code throws. E.g. during HTML + // rendering it's the server/edge compilation. + if (!isEdgeServer && !isServer || isAppDirectory) { + var _clientStats; + const compilation = (_clientStats = clientStats()) == null ? void 0 : _clientStats.compilation; + if (compilation) { + compilations.push(compilation); + } + } + // Try Server Compilation. In `pages` this could be something + // imported in getServerSideProps/getStaticProps as the code for + // those is tree-shaken. In `app` this finds server components and + // code that was imported from a server component. It also covers + // when client component code throws during HTML rendering. + if (isServer || isAppDirectory) { + var _serverStats; + const compilation = (_serverStats = serverStats()) == null ? void 0 : _serverStats.compilation; + if (compilation) { + compilations.push(compilation); + } + } + // Try Edge Server Compilation. Both cases are the same as Server + // Compilation, main difference is that it covers `runtime: 'edge'` + // pages/app routes. + if (isEdgeServer || isAppDirectory) { + var _edgeServerStats; + const compilation = (_edgeServerStats = edgeServerStats()) == null ? void 0 : _edgeServerStats.compilation; + if (compilation) { + compilations.push(compilation); + } + } + return compilations; + } + }); + let defaultNormalizedStackFrameLocation = frame.file; + if (defaultNormalizedStackFrameLocation !== null && defaultNormalizedStackFrameLocation.startsWith('file://')) { + defaultNormalizedStackFrameLocation = _path.default.relative(rootDirectory, (0, _url.fileURLToPath)(defaultNormalizedStackFrameLocation)); + } + // This stack frame is used for the one that couldn't locate the source or source mapped frame + const defaultStackFrame = { + file: defaultNormalizedStackFrameLocation, + line1: frame.line1, + column1: frame.column1, + methodName: frame.methodName, + ignored: shouldIgnoreSource(filename), + arguments: [] + }; + if (!source) { + // return original stack frame with no source map + return { + originalStackFrame: defaultStackFrame, + originalCodeFrame: null + }; + } + defaultStackFrame.ignored ||= (0, _sourcemaps.sourceMapIgnoreListsEverything)(source.sourceMap); + const originalStackFrameResponse = await createOriginalStackFrame({ + ignoredByDefault: defaultStackFrame.ignored, + frame, + source, + rootDirectory + }); + if (!originalStackFrameResponse) { + return { + originalStackFrame: defaultStackFrame, + originalCodeFrame: null + }; + } + const originalStackFrame = originalStackFrameResponse.originalStackFrame; + return { + originalStackFrame, + originalCodeFrame: (originalStackFrame == null ? void 0 : originalStackFrame.ignored) ?? true ? null : originalStackFrameResponse.originalCodeFrame + }; +} +function getOverlayMiddleware(options) { + const { rootDirectory, isSrcDir, clientStats, serverStats, edgeServerStats } = options; + return async function(req, res, next) { + const { pathname, searchParams } = new URL(`http://n${req.url}`); + if (pathname === '/__nextjs_original-stack-frames') { + if (req.method !== 'POST') { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + const body = await new Promise((resolve, reject)=>{ + let data = ''; + req.on('data', (chunk)=>{ + data += chunk; + }); + req.on('end', ()=>resolve(data)); + req.on('error', reject); + }); + try { + const { frames, isServer, isEdgeServer, isAppDirectory } = JSON.parse(body); + return _middlewareresponse.middlewareResponse.json(res, await getOriginalStackFrames({ + isServer, + isEdgeServer, + isAppDirectory, + frames, + clientStats, + serverStats, + edgeServerStats, + rootDirectory + })); + } catch (err) { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + } else if (pathname === '/__nextjs_launch-editor') { + const frame = { + file: searchParams.get('file'), + methodName: searchParams.get('methodName'), + line1: parseInt(searchParams.get('line1') ?? '1', 10) || 1, + column1: parseInt(searchParams.get('column1') ?? '1', 10) || 1, + arguments: searchParams.getAll('arguments').filter(Boolean) + }; + if (!frame.file) return _middlewareresponse.middlewareResponse.badRequest(res); + let openEditorResult; + const isAppRelativePath = searchParams.get('isAppRelativePath') === '1'; + if (isAppRelativePath) { + const relativeFilePath = searchParams.get('file') || ''; + const appPath = _path.default.join('app', isSrcDir ? 'src' : '', relativeFilePath); + openEditorResult = await (0, _launcheditor.openFileInEditor)(appPath, 1, 1, rootDirectory); + } else { + // TODO: How do we differentiate layers and actual file paths with round brackets? + // frame files may start with their webpack layer, like (middleware)/middleware.js + const filePath = frame.file.replace(/^\([^)]+\)\//, ''); + openEditorResult = await (0, _launcheditor.openFileInEditor)(filePath, frame.line1, frame.column1 ?? 1, rootDirectory); + } + if (openEditorResult.error) { + console.error('Failed to launch editor:', openEditorResult.error); + return _middlewareresponse.middlewareResponse.internalServerError(res, openEditorResult.error); + } + if (!openEditorResult.found) { + return _middlewareresponse.middlewareResponse.notFound(res); + } + return _middlewareresponse.middlewareResponse.noContent(res); + } + return next(); + }; +} +function getSourceMapMiddleware(options) { + const { clientStats, serverStats, edgeServerStats } = options; + return async function(req, res, next) { + const { pathname, searchParams } = new URL(`http://n${req.url}`); + if (pathname !== '/__nextjs_source-map') { + return next(); + } + const filename = searchParams.get('filename'); + if (!filename) { + return _middlewareresponse.middlewareResponse.badRequest(res); + } + let source; + try { + source = await getSource({ + file: filename, + // Webpack doesn't use Index Source Maps + line1: null, + column1: null + }, { + getCompilations: ()=>{ + const compilations = []; + for (const stats of [ + clientStats(), + serverStats(), + edgeServerStats() + ]){ + if (stats == null ? void 0 : stats.compilation) { + compilations.push(stats.compilation); + } + } + return compilations; + } + }); + } catch (error) { + return _middlewareresponse.middlewareResponse.internalServerError(res, error); + } + if (!source) { + return _middlewareresponse.middlewareResponse.noContent(res); + } + return _middlewareresponse.middlewareResponse.json(res, source.sourceMap); + }; +} + +//# sourceMappingURL=middleware-webpack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/next-dev-server.js b/cli/app/node_modules/next/dist/server/dev/next-dev-server.js new file mode 100644 index 00000000000..200e5baa2fc --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/next-dev-server.js @@ -0,0 +1,730 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return DevServer; + } +}); +const _requestmeta = require("../request-meta"); +const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _jestworker = require("next/dist/compiled/jest-worker"); +const _path = require("path"); +const _constants = require("../../lib/constants"); +const _findpagesdir = require("../../lib/find-pages-dir"); +const _constants1 = require("../../shared/lib/constants"); +const _nextserver = /*#__PURE__*/ _interop_require_wildcard(require("../next-server")); +const _normalizepagepath = require("../../shared/lib/page-path/normalize-page-path"); +const _pathhasprefix = require("../../shared/lib/router/utils/path-has-prefix"); +const _removepathprefix = require("../../shared/lib/router/utils/remove-path-prefix"); +const _storage = require("../../telemetry/storage"); +const _trace = require("../../trace"); +const _shared = require("../../trace/shared"); +const _findpagefile = require("../lib/find-page-file"); +const _utils = require("../lib/utils"); +const _coalescedfunction = require("../../lib/coalesced-function"); +const _loaddefaulterrorcomponents = require("../load-default-error-components"); +const _utils1 = require("../../shared/lib/utils"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _iserror = /*#__PURE__*/ _interop_require_wildcard(require("../../lib/is-error")); +const _configshared = require("../config-shared"); +const _utils2 = require("../../build/utils"); +const _formatservererror = require("../../lib/format-server-error"); +const _devroutematchermanager = require("../route-matcher-managers/dev-route-matcher-manager"); +const _devpagesroutematcherprovider = require("../route-matcher-providers/dev/dev-pages-route-matcher-provider"); +const _devpagesapiroutematcherprovider = require("../route-matcher-providers/dev/dev-pages-api-route-matcher-provider"); +const _devapppageroutematcherprovider = require("../route-matcher-providers/dev/dev-app-page-route-matcher-provider"); +const _devapprouteroutematcherprovider = require("../route-matcher-providers/dev/dev-app-route-route-matcher-provider"); +const _nodemanifestloader = require("../route-matcher-providers/helpers/manifest-loaders/node-manifest-loader"); +const _batchedfilereader = require("../route-matcher-providers/dev/helpers/file-reader/batched-file-reader"); +const _defaultfilereader = require("../route-matcher-providers/dev/helpers/file-reader/default-file-reader"); +const _lrucache = require("../lib/lru-cache"); +const _middlewareroutematcher = require("../../shared/lib/router/utils/middleware-route-matcher"); +const _detachedpromise = require("../../lib/detached-promise"); +const _ispostpone = require("../lib/router-utils/is-postpone"); +const _generateinterceptionroutesrewrites = require("../../lib/generate-interception-routes-rewrites"); +const _buildcustomroute = require("../../lib/build-custom-route"); +const _errorsource = require("../../shared/lib/error-source"); +const _logrequests = require("./log-requests"); +const _fallback = require("../../lib/fallback"); +const _instrumentationglobalsexternal = require("../lib/router-utils/instrumentation-globals.external"); +const _routeregex = require("../../shared/lib/router/utils/route-regex"); +const _hotreloadertypes = require("./hot-reloader-types"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// Load ReactDevOverlay only when needed +let PagesDevOverlayBridgeImpl; +const ReactDevOverlay = (props)=>{ + if (PagesDevOverlayBridgeImpl === undefined) { + PagesDevOverlayBridgeImpl = require('../../next-devtools/userspace/pages/pages-dev-overlay-setup').PagesDevOverlayBridge; + } + return _react.createElement(PagesDevOverlayBridgeImpl, props); +}; +class DevServer extends _nextserver.default { + getStaticPathsWorker() { + const worker = new _jestworker.Worker(require.resolve('./static-paths-worker'), { + maxRetries: 1, + // For dev server, it's not necessary to spin up too many workers as long as you are not doing a load test. + // This helps reusing the memory a lot. + numWorkers: 1, + enableWorkerThreads: this.nextConfig.experimental.workerThreads, + forkOptions: { + env: { + ...process.env, + // discard --inspect/--inspect-brk flags from process.env.NODE_OPTIONS. Otherwise multiple Node.js debuggers + // would be started if user launch Next.js in debugging mode. The number of debuggers is linked to + // the number of workers Next.js tries to launch. The only worker users are interested in debugging + // is the main Next.js one + NODE_OPTIONS: (0, _utils.getFormattedNodeOptionsWithoutInspect)() + } + } + }); + worker.getStdout().pipe(process.stdout); + worker.getStderr().pipe(process.stderr); + return worker; + } + constructor(options){ + try { + // Increase the number of stack frames on the server + Error.stackTraceLimit = 50; + } catch {} + super({ + ...options, + dev: true + }), /** + * The promise that resolves when the server is ready. When this is unset + * the server is ready. + */ this.ready = new _detachedpromise.DetachedPromise(); + this.nextConfig = options.conf; + this.bundlerService = options.bundlerService; + this.startServerSpan = options.startServerSpan ?? (0, _trace.trace)('start-next-dev-server'); + this.renderOpts.ErrorDebug = ReactDevOverlay; + this.staticPathsCache = new _lrucache.LRUCache(// 5MB + 5 * 1024 * 1024, function length(value) { + var _JSON_stringify; + // Ensure minimum size of 1 for LRU eviction to work correctly + return ((_JSON_stringify = JSON.stringify(value.staticPaths)) == null ? void 0 : _JSON_stringify.length) || 1; + }); + const { pagesDir, appDir } = (0, _findpagesdir.findPagesDir)(this.dir); + this.pagesDir = pagesDir; + this.appDir = appDir; + if (this.nextConfig.experimental.serverComponentsHmrCache) { + // Ensure HMR cache has a minimum size equal to the default cacheMaxMemorySize, + // but allow it to grow if the user has configured a larger value. + const hmrCacheSize = Math.max(this.nextConfig.cacheMaxMemorySize, _configshared.defaultConfig.cacheMaxMemorySize); + this.serverComponentsHmrCache = new _lrucache.LRUCache(hmrCacheSize, function length(value) { + return JSON.stringify(value).length; + }); + } + } + getServerComponentsHmrCache() { + return this.serverComponentsHmrCache; + } + getRouteMatchers() { + const { pagesDir, appDir } = (0, _findpagesdir.findPagesDir)(this.dir); + const ensurer = { + ensure: async (match, pathname)=>{ + await this.ensurePage({ + definition: match.definition, + page: match.definition.page, + clientOnly: false, + url: pathname + }); + } + }; + const matchers = new _devroutematchermanager.DevRouteMatcherManager(super.getRouteMatchers(), ensurer, this.dir); + const extensions = this.nextConfig.pageExtensions; + const extensionsExpression = new RegExp(`\\.(?:${extensions.join('|')})$`); + // If the pages directory is available, then configure those matchers. + if (pagesDir) { + const fileReader = new _batchedfilereader.BatchedFileReader(new _defaultfilereader.DefaultFileReader({ + // Only allow files that have the correct extensions. + pathnameFilter: (pathname)=>extensionsExpression.test(pathname) + })); + matchers.push(new _devpagesroutematcherprovider.DevPagesRouteMatcherProvider(pagesDir, extensions, fileReader, this.localeNormalizer)); + matchers.push(new _devpagesapiroutematcherprovider.DevPagesAPIRouteMatcherProvider(pagesDir, extensions, fileReader, this.localeNormalizer)); + } + if (appDir) { + // We create a new file reader for the app directory because we don't want + // to include any folders or files starting with an underscore. This will + // prevent the reader from wasting time reading files that we know we + // don't care about. + const fileReader = new _batchedfilereader.BatchedFileReader(new _defaultfilereader.DefaultFileReader({ + // Ignore any directory prefixed with an underscore. + ignorePartFilter: (part)=>part.startsWith('_') + })); + // TODO: Improve passing of "is running with Turbopack" + const isTurbopack = !!process.env.TURBOPACK; + matchers.push(new _devapppageroutematcherprovider.DevAppPageRouteMatcherProvider(appDir, extensions, fileReader, isTurbopack)); + matchers.push(new _devapprouteroutematcherprovider.DevAppRouteRouteMatcherProvider(appDir, extensions, fileReader, isTurbopack)); + } + return matchers; + } + getBuildId() { + return 'development'; + } + async prepareImpl() { + var _this_ready; + (0, _trace.setGlobal)('distDir', this.distDir); + (0, _trace.setGlobal)('phase', _constants1.PHASE_DEVELOPMENT_SERVER); + // Use existing telemetry instance from traceGlobals instead of creating a new one. + // Creating a new instance would overwrite the existing one, causing any telemetry + // events recorded to the original instance to be lost during cleanup/flush. + const existingTelemetry = _shared.traceGlobals.get('telemetry'); + const telemetry = existingTelemetry || new _storage.Telemetry({ + distDir: this.distDir + }); + await super.prepareImpl(); + await this.matchers.reload(); + (_this_ready = this.ready) == null ? void 0 : _this_ready.resolve(); + this.ready = undefined; + // In dev, this needs to be called after prepare because the build entries won't be known in the constructor + this.interceptionRoutePatterns = this.getinterceptionRoutePatterns(); + // This is required by the tracing subsystem. + (0, _trace.setGlobal)('appDir', this.appDir); + (0, _trace.setGlobal)('pagesDir', this.pagesDir); + // Only set telemetry if it wasn't already set + if (!existingTelemetry) { + (0, _trace.setGlobal)('telemetry', telemetry); + } + process.on('unhandledRejection', (reason)=>{ + if ((0, _ispostpone.isPostpone)(reason)) { + // React postpones that are unhandled might end up logged here but they're + // not really errors. They're just part of rendering. + return; + } + this.logErrorWithOriginalStack(reason, 'unhandledRejection'); + }); + process.on('uncaughtException', (err)=>{ + this.logErrorWithOriginalStack(err, 'uncaughtException'); + }); + } + async hasPage(pathname) { + let normalizedPath; + try { + normalizedPath = (0, _normalizepagepath.normalizePagePath)(pathname); + } catch (err) { + console.error(err); + // if normalizing the page fails it means it isn't valid + // so it doesn't exist so don't throw and return false + // to ensure we return 404 instead of 500 + return false; + } + if ((0, _utils2.isMiddlewareFile)(normalizedPath)) { + return (0, _findpagefile.findPageFile)(this.dir, normalizedPath, this.nextConfig.pageExtensions, false).then(Boolean); + } + let appFile = null; + let pagesFile = null; + if (this.appDir) { + appFile = await (0, _findpagefile.findPageFile)(this.appDir, normalizedPath + '/page', this.nextConfig.pageExtensions, true); + } + if (this.pagesDir) { + pagesFile = await (0, _findpagefile.findPageFile)(this.pagesDir, normalizedPath, this.nextConfig.pageExtensions, false); + } + if (appFile && pagesFile) { + return false; + } + return Boolean(appFile || pagesFile); + } + async runMiddleware(params) { + try { + const result = await super.runMiddleware({ + ...params, + onWarning: (warn)=>{ + this.logErrorWithOriginalStack(warn, 'warning'); + } + }); + if ('finished' in result) { + return result; + } + result.waitUntil.catch((error)=>{ + this.logErrorWithOriginalStack(error, 'unhandledRejection'); + }); + return result; + } catch (error) { + if (error instanceof _utils1.DecodeError) { + throw error; + } + /** + * We only log the error when it is not a MiddlewareNotFound error as + * in that case we should be already displaying a compilation error + * which is what makes the module not found. + */ if (!(error instanceof _utils1.MiddlewareNotFoundError)) { + this.logErrorWithOriginalStack(error); + } + const err = (0, _iserror.getProperError)(error); + (0, _errorsource.decorateServerError)(err, _constants1.COMPILER_NAMES.edgeServer); + const { request, response, parsedUrl } = params; + /** + * When there is a failure for an internal Next.js request from + * middleware we bypass the error without finishing the request + * so we can serve the required chunks to render the error. + */ if (request.url.includes('/_next/static') || request.url.includes('/__nextjs_attach-nodejs-inspector') || request.url.includes('/__nextjs_original-stack-frame') || request.url.includes('/__nextjs_source-map') || request.url.includes('/__nextjs_error_feedback')) { + return { + finished: false + }; + } + response.statusCode = 500; + await this.renderError(err, request, response, parsedUrl.pathname); + return { + finished: true + }; + } + } + async runEdgeFunction(params) { + try { + return super.runEdgeFunction({ + ...params, + onError: (err)=>this.logErrorWithOriginalStack(err, 'app-dir'), + onWarning: (warn)=>{ + this.logErrorWithOriginalStack(warn, 'warning'); + } + }); + } catch (error) { + if (error instanceof _utils1.DecodeError) { + throw error; + } + this.logErrorWithOriginalStack(error, 'warning'); + const err = (0, _iserror.getProperError)(error); + const { req, res, page } = params; + res.statusCode = 500; + await this.renderError(err, req, res, page); + return null; + } + } + getRequestHandler() { + const handler = super.getRequestHandler(); + return (req, res, parsedUrl)=>{ + const request = this.normalizeReq(req); + const response = this.normalizeRes(res); + const loggingConfig = this.nextConfig.logging; + if (loggingConfig !== false) { + // The closure variable is not used here because the request handler may be invoked twice for one request when middleware is added in the application. + // By setting the start time we can ensure that the middleware timing is correctly included. + if (!(0, _requestmeta.getRequestMeta)(req, 'devRequestTimingStart')) { + const requestStart = process.hrtime.bigint(); + (0, _requestmeta.addRequestMeta)(req, 'devRequestTimingStart', requestStart); + } + const isMiddlewareRequest = (0, _requestmeta.getRequestMeta)(req, 'middlewareInvoke') ?? false; + if (!isMiddlewareRequest) { + response.originalResponse.once('close', ()=>{ + // NOTE: The route match is only attached to the request's meta data + // after the request handler is created, so we need to check it in the + // close handler and not before. + const routeMatch = (0, _requestmeta.getRequestMeta)(req).match; + if (!routeMatch) { + return; + } + // The closure variable is not used here because the request handler may be invoked twice for one request when middleware is added in the application. + // By setting the start time we can ensure that the middleware timing is correctly included. + const requestStart = (0, _requestmeta.getRequestMeta)(req, 'devRequestTimingStart'); + if (!requestStart) { + return; + } + const requestEnd = process.hrtime.bigint(); + (0, _logrequests.logRequests)(request, response, loggingConfig, requestStart, requestEnd, (0, _requestmeta.getRequestMeta)(req, 'devRequestTimingMiddlewareStart'), (0, _requestmeta.getRequestMeta)(req, 'devRequestTimingMiddlewareEnd'), (0, _requestmeta.getRequestMeta)(req, 'devRequestTimingInternalsEnd'), (0, _requestmeta.getRequestMeta)(req, 'devGenerateStaticParamsDuration')); + // Create trace span for render phase + const devRequestTimingInternalsEnd = (0, _requestmeta.getRequestMeta)(req, 'devRequestTimingInternalsEnd'); + if (devRequestTimingInternalsEnd) { + this.startServerSpan.manualTraceChild('render-path', (0, _trace.hrtimeToEpochNanoseconds)(devRequestTimingInternalsEnd), (0, _trace.hrtimeToEpochNanoseconds)(requestEnd), { + path: req.url || '' + }); + } + }); + } + } + return handler(request, response, parsedUrl); + }; + } + async handleRequest(req, res, parsedUrl) { + const span = (0, _trace.trace)('handle-request', undefined, { + url: req.url + }); + const result = await span.traceAsyncFn(async ()=>{ + var _this_ready; + await ((_this_ready = this.ready) == null ? void 0 : _this_ready.promise); + (0, _requestmeta.addRequestMeta)(req, 'PagesErrorDebug', this.renderOpts.ErrorDebug); + return await super.handleRequest(req, res, parsedUrl); + }); + const memoryUsage = process.memoryUsage(); + span.traceChild('memory-usage', { + url: req.url, + 'memory.rss': String(memoryUsage.rss), + 'memory.heapUsed': String(memoryUsage.heapUsed), + 'memory.heapTotal': String(memoryUsage.heapTotal) + }).stop(); + return result; + } + async run(req, res, parsedUrl) { + var _this_ready; + await ((_this_ready = this.ready) == null ? void 0 : _this_ready.promise); + const { basePath } = this.nextConfig; + let originalPathname = null; + // TODO: see if we can remove this in the future + if (basePath && (0, _pathhasprefix.pathHasPrefix)(parsedUrl.pathname || '/', basePath)) { + // strip basePath before handling dev bundles + // If replace ends up replacing the full url it'll be `undefined`, meaning we have to default it to `/` + originalPathname = parsedUrl.pathname; + parsedUrl.pathname = (0, _removepathprefix.removePathPrefix)(parsedUrl.pathname || '/', basePath); + } + const { pathname } = parsedUrl; + if (pathname.startsWith('/_next')) { + if (_fs.default.existsSync((0, _path.join)(this.publicDir, '_next'))) { + throw Object.defineProperty(new Error(_constants.PUBLIC_DIR_MIDDLEWARE_CONFLICT), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + } + if (originalPathname) { + // restore the path before continuing so that custom-routes can accurately determine + // if they should match against the basePath or not + parsedUrl.pathname = originalPathname; + } + try { + return await super.run(req, res, parsedUrl); + } catch (error) { + const err = (0, _iserror.getProperError)(error); + (0, _formatservererror.formatServerError)(err); + this.logErrorWithOriginalStack(err); + if (!res.sent) { + res.statusCode = 500; + try { + return await this.renderError(err, req, res, pathname, { + __NEXT_PAGE: (0, _iserror.default)(err) && err.page || pathname || '' + }); + } catch (internalErr) { + console.error(internalErr); + res.body('Internal Server Error').send(); + } + } + } + } + logErrorWithOriginalStack(err, type) { + this.bundlerService.logErrorWithOriginalStack(err, type); + } + getPagesManifest() { + return _nodemanifestloader.NodeManifestLoader.require((0, _path.join)(this.serverDistDir, _constants1.PAGES_MANIFEST)) ?? undefined; + } + getAppPathsManifest() { + if (!this.enabledDirectories.app) return undefined; + return _nodemanifestloader.NodeManifestLoader.require((0, _path.join)(this.serverDistDir, _constants1.APP_PATHS_MANIFEST)) ?? undefined; + } + getinterceptionRoutePatterns() { + const rewrites = (0, _generateinterceptionroutesrewrites.generateInterceptionRoutesRewrites)(Object.keys(this.appPathRoutes ?? {}), this.nextConfig.basePath).map((route)=>new RegExp((0, _buildcustomroute.buildCustomRoute)('rewrite', route).regex)); + if (this.nextConfig.output === 'export' && rewrites.length > 0) { + _log.error('Intercepting routes are not supported with static export.\nRead more: https://nextjs.org/docs/app/building-your-application/deploying/static-exports#unsupported-features'); + process.exit(1); + } + return rewrites ?? []; + } + async getMiddleware() { + var _this_middleware; + // We need to populate the match + // field as it isn't serializable + if (((_this_middleware = this.middleware) == null ? void 0 : _this_middleware.match) === null) { + this.middleware.match = (0, _middlewareroutematcher.getMiddlewareRouteMatcher)(this.middleware.matchers || []); + } + return this.middleware; + } + getNextFontManifest() { + return undefined; + } + async hasMiddleware() { + return this.hasPage(this.actualMiddlewareFile); + } + async ensureMiddleware(url) { + return this.ensurePage({ + page: this.actualMiddlewareFile, + clientOnly: false, + definition: undefined, + url + }); + } + async loadInstrumentationModule() { + let instrumentationModule; + if (this.actualInstrumentationHookFile && await this.ensurePage({ + page: this.actualInstrumentationHookFile, + clientOnly: false, + definition: undefined + }).then(()=>true).catch(()=>false)) { + try { + instrumentationModule = await (0, _instrumentationglobalsexternal.getInstrumentationModule)(this.dir, this.nextConfig.distDir); + } catch (err) { + err.message = `An error occurred while loading instrumentation hook: ${err.message}`; + throw err; + } + } + return instrumentationModule; + } + async runInstrumentationHookIfAvailable() { + await (0, _instrumentationglobalsexternal.ensureInstrumentationRegistered)(this.dir, this.nextConfig.distDir); + } + async ensureEdgeFunction({ page, appPaths, url }) { + return this.ensurePage({ + page, + appPaths, + clientOnly: false, + definition: undefined, + url + }); + } + generateRoutes(_dev) { + // In development we expose all compiled files for react-error-overlay's line show feature + // We use unshift so that we're sure the routes is defined before Next's default routes + // routes.unshift({ + // match: getPathMatch('/_next/development/:path*'), + // type: 'route', + // name: '_next/development catchall', + // fn: async (req, res, params) => { + // const p = pathJoin(this.distDir, ...(params.path || [])) + // await this.serveStatic(req, res, p) + // return { + // finished: true, + // } + // }, + // }) + } + async getStaticPaths({ pathname, urlPathname, requestHeaders, page, isAppPath }) { + // we lazy load the staticPaths to prevent the user + // from waiting on them for the page to load in dev mode + const __getStaticPaths = async ()=>{ + const { configFileName, httpAgentOptions } = this.nextConfig; + const { locales, defaultLocale } = this.nextConfig.i18n || {}; + const staticPathsWorker = this.getStaticPathsWorker(); + try { + var _this_nextConfig_experimental_sri; + const pathsResult = await staticPathsWorker.loadStaticPaths({ + dir: this.dir, + distDir: this.distDir, + pathname, + config: { + pprConfig: this.nextConfig.experimental.ppr, + partialFallbacks: this.nextConfig.experimental.partialFallbacks === true, + configFileName, + cacheComponents: Boolean(this.nextConfig.cacheComponents) + }, + httpAgentOptions, + locales, + defaultLocale, + page, + isAppPath, + requestHeaders, + cacheHandler: this.nextConfig.cacheHandler, + cacheHandlers: this.nextConfig.cacheHandlers, + cacheLifeProfiles: this.nextConfig.cacheLife, + fetchCacheKeyPrefix: this.nextConfig.experimental.fetchCacheKeyPrefix, + isrFlushToDisk: this.nextConfig.experimental.isrFlushToDisk, + cacheMaxMemorySize: this.nextConfig.cacheMaxMemorySize, + nextConfigOutput: this.nextConfig.output, + buildId: this.buildId, + authInterrupts: Boolean(this.nextConfig.experimental.authInterrupts), + sriEnabled: Boolean((_this_nextConfig_experimental_sri = this.nextConfig.experimental.sri) == null ? void 0 : _this_nextConfig_experimental_sri.algorithm) + }); + return pathsResult; + } finally{ + // we don't re-use workers so destroy the used one + staticPathsWorker.end(); + } + }; + const result = this.staticPathsCache.get(pathname); + const nextInvoke = (0, _coalescedfunction.withCoalescedInvoke)(__getStaticPaths)(`staticPaths-${pathname}`, []).then(async (res)=>{ + var _res_value; + const { prerenderedRoutes, fallbackMode: fallback } = res.value; + if (isAppPath) { + var // Ideally, we would want to compare the whole objects, but that is too expensive. + _result_prerenderedRoutes; + if (this.nextConfig.output === 'export') { + if (!prerenderedRoutes) { + throw Object.defineProperty(new Error(`Page "${page}" is missing exported function "generateStaticParams()", which is required with "output: export" config.`), "__NEXT_ERROR_CODE", { + value: "E353", + enumerable: false, + configurable: true + }); + } + if (!prerenderedRoutes.some((item)=>item.pathname === urlPathname)) { + throw Object.defineProperty(new Error(`Page "${page}" is missing param "${pathname}" in "generateStaticParams()", which is required with "output: export" config.`), "__NEXT_ERROR_CODE", { + value: "E443", + enumerable: false, + configurable: true + }); + } + } + // Since generateStaticParams run on the background, when accessing the + // fallbackParams during the render, it is still set to the previous + // result from the cache. Therefore when the result has changed, re-render + // the Server Component to sync the fallbackParams with the new result. + if (isAppPath && this.nextConfig.cacheComponents && // Ensure this is not the first invocation. + result && ((_result_prerenderedRoutes = result.prerenderedRoutes) == null ? void 0 : _result_prerenderedRoutes.length) !== (prerenderedRoutes == null ? void 0 : prerenderedRoutes.length)) { + this.bundlerService.sendHmrMessage({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + hash: `generateStaticParams-${Date.now()}` + }); + } + } + if (!isAppPath && this.nextConfig.output === 'export') { + if (fallback === _fallback.FallbackMode.BLOCKING_STATIC_RENDER) { + throw Object.defineProperty(new Error('getStaticPaths with "fallback: blocking" cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'), "__NEXT_ERROR_CODE", { + value: "E11", + enumerable: false, + configurable: true + }); + } else if (fallback === _fallback.FallbackMode.PRERENDER) { + throw Object.defineProperty(new Error('getStaticPaths with "fallback: true" cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'), "__NEXT_ERROR_CODE", { + value: "E210", + enumerable: false, + configurable: true + }); + } + } + const value = { + staticPaths: prerenderedRoutes == null ? void 0 : prerenderedRoutes.map((route)=>route.pathname), + prerenderedRoutes, + fallbackMode: fallback + }; + if (((_res_value = res.value) == null ? void 0 : _res_value.fallbackMode) !== undefined && // This matches the hasGenerateStaticParams logic we do during build. + (!isAppPath || prerenderedRoutes && prerenderedRoutes.length > 0)) { + // we write the static paths to partial manifest for + // fallback handling inside of entry handler's + const rawExistingManifest = await _fs.default.promises.readFile((0, _path.join)(this.distDir, _constants1.PRERENDER_MANIFEST), 'utf8'); + const existingManifest = JSON.parse(rawExistingManifest); + for (const staticPath of value.staticPaths || []){ + existingManifest.routes[staticPath] = {}; + } + // Find the fallback route from the prerendered routes. This is + // the route whose pathname matches the page pattern (e.g. + // /dynamic-params/[slug]) and has fallback route params describing + // which params are unknown at build time. + const fallbackPrerenderedRoute = prerenderedRoutes == null ? void 0 : prerenderedRoutes.find((route)=>route.pathname === pathname); + existingManifest.dynamicRoutes[pathname] = { + dataRoute: null, + dataRouteRegex: null, + fallback: (0, _fallback.fallbackModeToFallbackField)(res.value.fallbackMode, page), + fallbackRevalidate: false, + fallbackExpire: undefined, + fallbackHeaders: undefined, + fallbackStatus: undefined, + fallbackRootParams: fallbackPrerenderedRoute == null ? void 0 : fallbackPrerenderedRoute.fallbackRootParams, + fallbackRouteParams: fallbackPrerenderedRoute == null ? void 0 : fallbackPrerenderedRoute.fallbackRouteParams, + fallbackSourceRoute: pathname, + prefetchDataRoute: undefined, + prefetchDataRouteRegex: undefined, + routeRegex: (0, _routeregex.getRouteRegex)(pathname).re.source, + experimentalPPR: undefined, + renderingMode: undefined, + allowHeader: [] + }; + const updatedManifest = JSON.stringify(existingManifest); + if (updatedManifest !== rawExistingManifest) { + await _fs.default.promises.writeFile((0, _path.join)(this.distDir, _constants1.PRERENDER_MANIFEST), updatedManifest); + } + } + this.staticPathsCache.set(pathname, value); + return value; + }).catch((err)=>{ + this.staticPathsCache.remove(pathname); + if (!result) throw err; + _log.error(`Failed to generate static paths for ${pathname}:`); + console.error(err); + }); + if (result) { + return result; + } + return nextInvoke; + } + async ensurePage(opts) { + await this.bundlerService.ensurePage(opts); + } + async findPageComponents({ locale, page, query, params, isAppPath, appPaths = null, shouldEnsure, url }) { + var _this_ready; + await ((_this_ready = this.ready) == null ? void 0 : _this_ready.promise); + const compilationErr = await this.getCompilationError(page); + if (compilationErr) { + // Wrap build errors so that they don't get logged again + throw new _nextserver.WrappedBuildError(compilationErr); + } + if (shouldEnsure || this.serverOptions.customServer) { + await this.ensurePage({ + page, + appPaths, + clientOnly: false, + definition: undefined, + url + }); + } + this.nextFontManifest = super.getNextFontManifest(); + return await super.findPageComponents({ + page, + query, + params, + locale, + isAppPath, + shouldEnsure, + url + }); + } + async getFallbackErrorComponents(url) { + await this.bundlerService.getFallbackErrorComponents(url); + return await (0, _loaddefaulterrorcomponents.loadDefaultErrorComponents)(this.distDir); + } + async getCompilationError(page) { + return await this.bundlerService.getCompilationError(page); + } + async instrumentationOnRequestError(...args) { + await super.instrumentationOnRequestError(...args); + const [err, , , silenceLog] = args; + if (!silenceLog) { + this.logErrorWithOriginalStack(err, 'app-dir'); + } + } +} + +//# sourceMappingURL=next-dev-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/node-stack-frames.js b/cli/app/node_modules/next/dist/server/dev/node-stack-frames.js new file mode 100644 index 00000000000..b83c5cadec6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/node-stack-frames.js @@ -0,0 +1,72 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getServerError", { + enumerable: true, + get: function() { + return getServerError; + } +}); +const _stacktraceparser = require("next/dist/compiled/stacktrace-parser"); +const _errorsource = require("../../shared/lib/error-source"); +function getFilesystemFrame(frame) { + const f = { + ...frame + }; + if (typeof f.file === 'string') { + if (// Posix: + f.file.startsWith('/') || // Win32: + /^[a-z]:\\/i.test(f.file) || // Win32 UNC: + f.file.startsWith('\\\\')) { + f.file = `file://${f.file}`; + } + } + return f; +} +function getServerError(error, type) { + if (error.name === 'TurbopackInternalError') { + // If this is an internal Turbopack error we shouldn't show internal details + // to the user. These are written to a log file instead. + const turbopackInternalError = Object.defineProperty(new Error('An unexpected Turbopack error occurred. Please see the output of `next dev` for more details.'), "__NEXT_ERROR_CODE", { + value: "E167", + enumerable: false, + configurable: true + }); + (0, _errorsource.decorateServerError)(turbopackInternalError, type); + return turbopackInternalError; + } + let n; + try { + throw Object.defineProperty(new Error(error.message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } catch (e) { + n = e; + } + n.name = error.name; + try { + n.stack = `${n.toString()}\n${(0, _stacktraceparser.parse)(error.stack).map(getFilesystemFrame).map((f)=>{ + let str = ` at ${f.methodName}`; + if (f.file) { + let loc = f.file; + if (f.lineNumber) { + loc += `:${f.lineNumber}`; + if (f.column) { + loc += `:${f.column}`; + } + } + str += ` (${loc})`; + } + return str; + }).join('\n')}`; + } catch { + n.stack = error.stack; + } + (0, _errorsource.decorateServerError)(n, type); + return n; +} + +//# sourceMappingURL=node-stack-frames.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/on-demand-entry-handler.js b/cli/app/node_modules/next/dist/server/dev/on-demand-entry-handler.js new file mode 100644 index 00000000000..1dd8cb9172a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/on-demand-entry-handler.js @@ -0,0 +1,773 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ADDED: null, + BUILDING: null, + BUILT: null, + EntryTypes: null, + findPagePathData: null, + getEntries: null, + getEntryKey: null, + getInvalidator: null, + onDemandEntryHandler: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ADDED: function() { + return ADDED; + }, + BUILDING: function() { + return BUILDING; + }, + BUILT: function() { + return BUILT; + }, + EntryTypes: function() { + return EntryTypes; + }, + findPagePathData: function() { + return findPagePathData; + }, + getEntries: function() { + return getEntries; + }, + getEntryKey: function() { + return getEntryKey; + }, + getInvalidator: function() { + return getInvalidator; + }, + onDemandEntryHandler: function() { + return onDemandEntryHandler; + } +}); +const _debug = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/debug")); +const _events = require("events"); +const _findpagefile = require("../lib/find-page-file"); +const _entries = require("../../build/entries"); +const _getstaticinfoincludinglayouts = require("../../build/get-static-info-including-layouts"); +const _path = require("path"); +const _normalizepathsep = require("../../shared/lib/page-path/normalize-path-sep"); +const _normalizepagepath = require("../../shared/lib/page-path/normalize-page-path"); +const _ensureleadingslash = require("../../shared/lib/page-path/ensure-leading-slash"); +const _removepagepathtail = require("../../shared/lib/page-path/remove-page-path-tail"); +const _output = require("../../build/output"); +const _getroutefromentrypoint = /*#__PURE__*/ _interop_require_default(require("../get-route-from-entrypoint")); +const _utils = require("../../build/utils"); +const _utils1 = require("../../shared/lib/utils"); +const _constants = require("../../shared/lib/constants"); +const _segment = require("../../shared/lib/segment"); +const _hotreloadertypes = require("./hot-reloader-types"); +const _apppageroutedefinition = require("../route-definitions/app-page-route-definition"); +const _scheduler = require("../../lib/scheduler"); +const _batcher = require("../../lib/batcher"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _pagetypes = require("../../lib/page-types"); +const _flightdatahelpers = require("../../client/flight-data-helpers"); +const _geterrors = require("../mcp/tools/get-errors"); +const _getpagemetadata = require("../mcp/tools/get-page-metadata"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const debug = (0, _debug.default)('next:on-demand-entry-handler'); +/** + * Returns object keys with type inferred from the object key + */ const keys = Object.keys; +const COMPILER_KEYS = keys(_constants.COMPILER_INDEXES); +function treePathToEntrypoint(segmentPath, parentPath) { + const [parallelRouteKey, segment] = segmentPath; + // TODO-APP: modify this path to cover parallelRouteKey convention + const path = (parentPath ? parentPath + '/' : '') + (parallelRouteKey !== 'children' && !segment.startsWith('@') ? `@${parallelRouteKey}/` : '') + (segment === '' ? 'page' : segment); + // Last segment + if (segmentPath.length === 2) { + return path; + } + const childSegmentPath = (0, _flightdatahelpers.getNextFlightSegmentPath)(segmentPath); + return treePathToEntrypoint(childSegmentPath, path); +} +function convertDynamicParamTypeToSyntax(dynamicParamTypeShort, param) { + switch(dynamicParamTypeShort){ + case 'c': + case 'ci(..)(..)': + case 'ci(.)': + case 'ci(..)': + case 'ci(...)': + return `[...${param}]`; + case 'oc': + return `[[...${param}]]`; + case 'd': + case 'di(..)(..)': + case 'di(.)': + case 'di(..)': + case 'di(...)': + return `[${param}]`; + default: + throw Object.defineProperty(new Error('Unknown dynamic param type'), "__NEXT_ERROR_CODE", { + value: "E378", + enumerable: false, + configurable: true + }); + } +} +function getEntryKey(compilerType, pageBundleType, page) { + // TODO: handle the /children slot better + // this is a quick hack to handle when children is provided as children/page instead of /page + const pageKey = page.replace(/(@[^/]+)\/children/g, '$1'); + return `${compilerType}@${pageBundleType}@${pageKey}`; +} +function getPageBundleType(pageBundlePath) { + // Handle special case for /_error + if (pageBundlePath === '/_error') return _pagetypes.PAGE_TYPES.PAGES; + if ((0, _utils.isMiddlewareFilename)(pageBundlePath)) return _pagetypes.PAGE_TYPES.ROOT; + return pageBundlePath.startsWith('pages/') ? _pagetypes.PAGE_TYPES.PAGES : pageBundlePath.startsWith('app/') ? _pagetypes.PAGE_TYPES.APP : _pagetypes.PAGE_TYPES.ROOT; +} +function getEntrypointsFromTree(tree, isFirst, parentPath = []) { + const [segment, parallelRoutes] = tree; + const currentSegment = Array.isArray(segment) ? convertDynamicParamTypeToSyntax(segment[2], segment[0]) : segment; + const isPageSegment = currentSegment.startsWith(_segment.PAGE_SEGMENT_KEY); + const currentPath = [ + ...parentPath, + isPageSegment ? '' : currentSegment + ]; + if (!isFirst && isPageSegment) { + // TODO get rid of '' at the start of tree + return [ + treePathToEntrypoint(currentPath.slice(1)) + ]; + } + return Object.keys(parallelRoutes).reduce((paths, key)=>{ + const childTree = parallelRoutes[key]; + const childPages = getEntrypointsFromTree(childTree, false, [ + ...currentPath, + key + ]); + return [ + ...paths, + ...childPages + ]; + }, []); +} +const ADDED = Symbol('added'); +const BUILDING = Symbol('building'); +const BUILT = Symbol('built'); +var EntryTypes = /*#__PURE__*/ function(EntryTypes) { + EntryTypes[EntryTypes["ENTRY"] = 0] = "ENTRY"; + EntryTypes[EntryTypes["CHILD_ENTRY"] = 1] = "CHILD_ENTRY"; + return EntryTypes; +}({}); +const entriesMap = new Map(); +// remove /server from end of output for server compiler +const normalizeOutputPath = (dir)=>dir.replace(/[/\\]server$/, ''); +const getEntries = (dir)=>{ + dir = normalizeOutputPath(dir); + const entries = entriesMap.get(dir) || {}; + entriesMap.set(dir, entries); + return entries; +}; +const invalidators = new Map(); +const getInvalidator = (dir)=>{ + dir = normalizeOutputPath(dir); + return invalidators.get(dir); +}; +const doneCallbacks = new _events.EventEmitter(); +const lastClientAccessPages = [ + '' +]; +const lastServerAccessPagesForAppDir = [ + '' +]; +// Make sure only one invalidation happens at a time +// Otherwise, webpack hash gets changed and it'll force the client to reload. +class Invalidator { + constructor(multiCompiler){ + this.building = new Set(); + this.rebuildAgain = new Set(); + this.multiCompiler = multiCompiler; + } + shouldRebuildAll() { + return this.rebuildAgain.size > 0; + } + invalidate(compilerKeys = COMPILER_KEYS) { + for (const key of compilerKeys){ + var _this_multiCompiler_compilers_COMPILER_INDEXES_key_watching; + // If there's a current build is processing, we won't abort it by invalidating. + // (If aborted, it'll cause a client side hard reload) + // But let it to invalidate just after the completion. + // So, it can re-build the queued pages at once. + if (this.building.has(key)) { + this.rebuildAgain.add(key); + continue; + } + this.building.add(key); + (_this_multiCompiler_compilers_COMPILER_INDEXES_key_watching = this.multiCompiler.compilers[_constants.COMPILER_INDEXES[key]].watching) == null ? void 0 : _this_multiCompiler_compilers_COMPILER_INDEXES_key_watching.invalidate(); + } + } + startBuilding(compilerKey) { + this.building.add(compilerKey); + } + doneBuilding(compilerKeys = []) { + const rebuild = []; + for (const key of compilerKeys){ + this.building.delete(key); + if (this.rebuildAgain.has(key)) { + rebuild.push(key); + this.rebuildAgain.delete(key); + } + } + if (rebuild.length > 0) { + this.invalidate(rebuild); + } + } + willRebuild(compilerKey) { + return this.rebuildAgain.has(compilerKey); + } +} +function disposeInactiveEntries(entries, maxInactiveAge) { + Object.keys(entries).forEach((entryKey)=>{ + const entryData = entries[entryKey]; + const { lastActiveTime, status, dispose, bundlePath } = entryData; + // TODO-APP: implement disposing of CHILD_ENTRY + if (entryData.type === 1) { + return; + } + // For the root middleware and the instrumentation hook files, + // we don't dispose them periodically as it's needed for every request. + if ((0, _utils.isMiddlewareFilename)(bundlePath) || (0, _utils.isInstrumentationHookFilename)(bundlePath)) { + return; + } + if (dispose) // Skip pages already scheduled for disposing + return; + // This means this entry is currently building or just added + // We don't need to dispose those entries. + if (status !== BUILT) return; + // We should not build the last accessed page even we didn't get any pings + // Sometimes, it's possible our XHR ping to wait before completing other requests. + // In that case, we should not dispose the current viewing page + if (lastClientAccessPages.includes(entryKey) || lastServerAccessPagesForAppDir.includes(entryKey)) return; + if (lastActiveTime && Date.now() - lastActiveTime > maxInactiveAge) { + entries[entryKey].dispose = true; + } + }); +} +// Normalize both app paths and page paths +function tryToNormalizePagePath(page) { + try { + return (0, _normalizepagepath.normalizePagePath)(page); + } catch (err) { + console.error(err); + throw new _utils1.PageNotFoundError(page); + } +} +async function findPagePathData(rootDir, page, extensions, pagesDir, appDir, isGlobalNotFoundEnabled) { + const normalizedPagePath = tryToNormalizePagePath(page); + let pagePath = null; + const isInstrumentation = (0, _utils.isInstrumentationHookFile)(normalizedPagePath); + if ((0, _utils.isMiddlewareFile)(normalizedPagePath) || isInstrumentation) { + pagePath = await (0, _findpagefile.findPageFile)(rootDir, normalizedPagePath, extensions, false); + if (!pagePath) { + throw new _utils1.PageNotFoundError(normalizedPagePath); + } + const pageUrl = (0, _ensureleadingslash.ensureLeadingSlash)((0, _removepagepathtail.removePagePathTail)((0, _normalizepathsep.normalizePathSep)(pagePath), { + extensions + })); + let bundlePath = normalizedPagePath; + let pageKey = _path.posix.normalize(pageUrl); + if (isInstrumentation || (0, _utils.isMiddlewareFile)(normalizedPagePath)) { + bundlePath = bundlePath.replace('/src', ''); + pageKey = page.replace('/src', ''); + } + return { + filename: (0, _path.join)(rootDir, pagePath), + bundlePath: bundlePath.slice(1), + page: pageKey + }; + } + // Check appDir first falling back to pagesDir + if (appDir) { + if (page === _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY) { + // Load `global-not-found` when global-not-found is enabled. + // Prefer to load it when both `global-not-found` and root `not-found` present. + if (isGlobalNotFoundEnabled) { + const globalNotFoundPath = await (0, _findpagefile.findPageFile)(appDir, 'global-not-found', extensions, true); + if (globalNotFoundPath) { + return { + filename: (0, _path.join)(appDir, globalNotFoundPath), + bundlePath: `app${_constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}`, + page: _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY + }; + } + } else { + // Then if global-not-found.js doesn't exist then load not-found.js + const notFoundPath = await (0, _findpagefile.findPageFile)(appDir, 'not-found', extensions, true); + if (notFoundPath) { + return { + filename: (0, _path.join)(appDir, notFoundPath), + bundlePath: `app${_constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}`, + page: _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY + }; + } + } + // If they're not presented, then fallback to global-not-found + return { + filename: require.resolve('next/dist/client/components/builtin/global-not-found'), + bundlePath: `app${_constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY}`, + page: _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY + }; + } + pagePath = await (0, _findpagefile.findPageFile)(appDir, normalizedPagePath, extensions, true); + if (pagePath) { + const pageUrl = (0, _ensureleadingslash.ensureLeadingSlash)((0, _removepagepathtail.removePagePathTail)((0, _normalizepathsep.normalizePathSep)(pagePath), { + keepIndex: true, + extensions + })); + return { + filename: (0, _path.join)(appDir, pagePath), + bundlePath: _path.posix.join('app', pageUrl), + page: _path.posix.normalize(pageUrl) + }; + } + } + if (!pagePath && pagesDir) { + pagePath = await (0, _findpagefile.findPageFile)(pagesDir, normalizedPagePath, extensions, false); + } + if (pagePath !== null && pagesDir) { + const pageUrl = (0, _ensureleadingslash.ensureLeadingSlash)((0, _removepagepathtail.removePagePathTail)((0, _normalizepathsep.normalizePathSep)(pagePath), { + extensions + })); + return { + filename: (0, _path.join)(pagesDir, pagePath), + bundlePath: _path.posix.join('pages', (0, _normalizepagepath.normalizePagePath)(pageUrl)), + page: _path.posix.normalize(pageUrl) + }; + } + if (page === '/_error') { + return { + filename: require.resolve('next/dist/pages/_error'), + bundlePath: page, + page: (0, _normalizepathsep.normalizePathSep)(page) + }; + } else { + throw new _utils1.PageNotFoundError(normalizedPagePath); + } +} +function onDemandEntryHandler({ hotReloader, maxInactiveAge, multiCompiler, nextConfig, pagesBufferLength, pagesDir, rootDir, appDir }) { + const hasAppDir = !!appDir; + let curInvalidator = getInvalidator(multiCompiler.outputPath); + const curEntries = getEntries(multiCompiler.outputPath); + if (!curInvalidator) { + curInvalidator = new Invalidator(multiCompiler); + invalidators.set(multiCompiler.outputPath, curInvalidator); + } + // Deferred entries state management + const deferredEntriesConfig = nextConfig.experimental.deferredEntries; + const hasDeferredEntriesConfig = deferredEntriesConfig && deferredEntriesConfig.length > 0; + let onBeforeDeferredEntriesCalled = false; + let onBeforeDeferredEntriesPromise = null; + // Function to wait for all non-deferred entries to be built + async function waitForNonDeferredEntries() { + return new Promise((resolve)=>{ + const checkEntries = ()=>{ + // Check if there are any non-deferred entries that are still building or added + const hasNonDeferredEntriesBuilding = Object.entries(curEntries).some(([, entry])=>{ + const entryData = entry; + if (entryData.type !== 0) return false; + const isDeferred = (0, _entries.isDeferredEntry)(entryData.absolutePagePath.replace(appDir || '', '').replace(pagesDir || '', '').replace(rootDir, ''), deferredEntriesConfig); + return !isDeferred && (entryData.status === ADDED || entryData.status === BUILDING); + }); + if (!hasNonDeferredEntriesBuilding) { + resolve(); + } else { + // Check again after a short delay + setTimeout(checkEntries, 100); + } + }; + checkEntries(); + }); + } + // Function to handle deferred entry processing + async function processDeferredEntry() { + if (!hasDeferredEntriesConfig) return; + // Wait for all non-deferred entries to be built + await waitForNonDeferredEntries(); + // Call the onBeforeDeferredEntries callback once + if (!onBeforeDeferredEntriesCalled) { + onBeforeDeferredEntriesCalled = true; + if (nextConfig.experimental.onBeforeDeferredEntries) { + debug('calling onBeforeDeferredEntries callback'); + if (!onBeforeDeferredEntriesPromise) { + onBeforeDeferredEntriesPromise = nextConfig.experimental.onBeforeDeferredEntries(); + } + await onBeforeDeferredEntriesPromise; + debug('onBeforeDeferredEntries callback completed'); + } + } else if (onBeforeDeferredEntriesPromise) { + // Wait for any in-progress callback + await onBeforeDeferredEntriesPromise; + } + } + const startBuilding = (compilation)=>{ + const compilationName = compilation.name; + curInvalidator.startBuilding(compilationName); + // Reset deferred entries state for this compilation cycle + // This ensures onBeforeDeferredEntries will be called again during HMR + onBeforeDeferredEntriesCalled = false; + onBeforeDeferredEntriesPromise = null; + }; + for (const compiler of multiCompiler.compilers){ + compiler.hooks.make.tap('NextJsOnDemandEntries', startBuilding); + } + function getPagePathsFromEntrypoints(type, entrypoints) { + const pagePaths = []; + for (const entrypoint of entrypoints.values()){ + const page = (0, _getroutefromentrypoint.default)(entrypoint.name, hasAppDir); + if (page) { + var _entrypoint_name; + const pageBundleType = ((_entrypoint_name = entrypoint.name) == null ? void 0 : _entrypoint_name.startsWith('app/')) ? _pagetypes.PAGE_TYPES.APP : _pagetypes.PAGE_TYPES.PAGES; + pagePaths.push(getEntryKey(type, pageBundleType, page)); + } else if ((0, _utils.isMiddlewareFilename)(entrypoint.name) || (0, _utils.isInstrumentationHookFilename)(entrypoint.name)) { + pagePaths.push(getEntryKey(type, _pagetypes.PAGE_TYPES.ROOT, `/${entrypoint.name}`)); + } + } + return pagePaths; + } + for (const compiler of multiCompiler.compilers){ + compiler.hooks.done.tap('NextJsOnDemandEntries', ()=>{ + var _getInvalidator; + return (_getInvalidator = getInvalidator(compiler.outputPath)) == null ? void 0 : _getInvalidator.doneBuilding([ + compiler.name + ]); + }); + } + multiCompiler.hooks.done.tap('NextJsOnDemandEntries', (multiStats)=>{ + var _getInvalidator; + const [clientStats, serverStats, edgeServerStats] = multiStats.stats; + const entryNames = [ + ...getPagePathsFromEntrypoints(_constants.COMPILER_NAMES.client, clientStats.compilation.entrypoints), + ...getPagePathsFromEntrypoints(_constants.COMPILER_NAMES.server, serverStats.compilation.entrypoints), + ...edgeServerStats ? getPagePathsFromEntrypoints(_constants.COMPILER_NAMES.edgeServer, edgeServerStats.compilation.entrypoints) : [] + ]; + for (const name of entryNames){ + const entry = curEntries[name]; + if (!entry) { + continue; + } + if (entry.status !== BUILDING) { + continue; + } + entry.status = BUILT; + doneCallbacks.emit(name); + } + (_getInvalidator = getInvalidator(multiCompiler.outputPath)) == null ? void 0 : _getInvalidator.doneBuilding([ + ...COMPILER_KEYS + ]); + // Call onBeforeDeferredEntries after compilation completes during HMR + // This ensures the callback is invoked even when non-deferred entries change + if (hasDeferredEntriesConfig && !onBeforeDeferredEntriesCalled) { + onBeforeDeferredEntriesCalled = true; + if (nextConfig.experimental.onBeforeDeferredEntries) { + debug('calling onBeforeDeferredEntries callback after HMR'); + onBeforeDeferredEntriesPromise = nextConfig.experimental.onBeforeDeferredEntries(); + } + } + }); + const pingIntervalTime = Math.max(1000, Math.min(5000, maxInactiveAge)); + setInterval(function() { + disposeInactiveEntries(curEntries, maxInactiveAge); + }, pingIntervalTime + 1000).unref(); + function handleAppDirPing(tree) { + const pages = getEntrypointsFromTree(tree, true); + for (const page of pages){ + for (const compilerType of [ + _constants.COMPILER_NAMES.client, + _constants.COMPILER_NAMES.server, + _constants.COMPILER_NAMES.edgeServer + ]){ + const entryKey = getEntryKey(compilerType, _pagetypes.PAGE_TYPES.APP, `/${page}`); + const entryInfo = curEntries[entryKey]; + // If there's no entry, it may have been invalidated and needs to be re-built. + if (!entryInfo) { + continue; + } + // We don't need to maintain active state of anything other than BUILT entries + if (entryInfo.status !== BUILT) continue; + // If there's an entryInfo + if (!lastServerAccessPagesForAppDir.includes(entryKey)) { + lastServerAccessPagesForAppDir.unshift(entryKey); + // Maintain the buffer max length + // TODO: verify that the current pageKey is not at the end of the array as multiple entrypoints can exist + if (lastServerAccessPagesForAppDir.length > pagesBufferLength) { + lastServerAccessPagesForAppDir.pop(); + } + } + entryInfo.lastActiveTime = Date.now(); + entryInfo.dispose = false; + } + } + } + function handlePing(pg) { + const page = (0, _normalizepathsep.normalizePathSep)(pg); + for (const compilerType of [ + _constants.COMPILER_NAMES.client, + _constants.COMPILER_NAMES.server, + _constants.COMPILER_NAMES.edgeServer + ]){ + const entryKey = getEntryKey(compilerType, _pagetypes.PAGE_TYPES.PAGES, page); + const entryInfo = curEntries[entryKey]; + // If there's no entry, it may have been invalidated and needs to be re-built. + if (!entryInfo) { + // if (page !== lastEntry) client pings, but there's no entry for page + if (compilerType === _constants.COMPILER_NAMES.client) { + return; + } + continue; + } + // We don't need to maintain active state of anything other than BUILT entries + if (entryInfo.status !== BUILT) continue; + // If there's an entryInfo + if (!lastClientAccessPages.includes(entryKey)) { + lastClientAccessPages.unshift(entryKey); + // Maintain the buffer max length + if (lastClientAccessPages.length > pagesBufferLength) { + lastClientAccessPages.pop(); + } + } + entryInfo.lastActiveTime = Date.now(); + entryInfo.dispose = false; + } + return; + } + async function ensurePageImpl({ page, appPaths, definition, isApp, url }) { + const stalledTime = 60; + const stalledEnsureTimeout = setTimeout(()=>{ + debug(`Ensuring ${page} has taken longer than ${stalledTime}s, if this continues to stall this may be a bug`); + }, stalledTime * 1000); + try { + let route; + if (definition) { + route = definition; + } else { + route = await findPagePathData(rootDir, page, nextConfig.pageExtensions, pagesDir, appDir, !!nextConfig.experimental.globalNotFound); + } + const isInsideAppDir = !!appDir && route.filename.startsWith(appDir); + // Check if this is a deferred entry and wait for non-deferred entries first + if (hasDeferredEntriesConfig) { + const isDeferred = (0, _entries.isDeferredEntry)(route.page, deferredEntriesConfig); + if (isDeferred) { + debug(`Page ${page} is a deferred entry, waiting for other entries`); + await processDeferredEntry(); + debug(`Deferred entry ${page} can now be processed`); + } + } + if (typeof isApp === 'boolean' && isApp !== isInsideAppDir) { + Error.stackTraceLimit = 15; + throw Object.defineProperty(new Error(`Ensure bailed, found path "${route.page}" does not match ensure type (${isApp ? 'app' : 'pages'})`), "__NEXT_ERROR_CODE", { + value: "E419", + enumerable: false, + configurable: true + }); + } + const pageBundleType = getPageBundleType(route.bundlePath); + const addEntry = (compilerType)=>{ + const entryKey = getEntryKey(compilerType, pageBundleType, route.page); + if (curEntries[entryKey] && // there can be an overlap in the entryKey for the instrumentation hook file and a page named the same + // this is a quick fix to support this scenario by overwriting the instrumentation hook entry, since we only use it one time + // any changes to the instrumentation hook file will require a restart of the dev server anyway + !(0, _utils.isInstrumentationHookFilename)(curEntries[entryKey].bundlePath)) { + curEntries[entryKey].dispose = false; + curEntries[entryKey].lastActiveTime = Date.now(); + if (curEntries[entryKey].status === BUILT) { + return { + entryKey, + newEntry: false, + shouldInvalidate: false + }; + } + return { + entryKey, + newEntry: false, + shouldInvalidate: true + }; + } + curEntries[entryKey] = { + type: 0, + appPaths, + absolutePagePath: route.filename, + request: route.filename, + bundlePath: route.bundlePath, + dispose: false, + lastActiveTime: Date.now(), + status: ADDED + }; + return { + entryKey: entryKey, + newEntry: true, + shouldInvalidate: true + }; + }; + const staticInfo = await (0, _getstaticinfoincludinglayouts.getStaticInfoIncludingLayouts)({ + page, + pageFilePath: route.filename, + isInsideAppDir, + pageExtensions: nextConfig.pageExtensions, + isDev: true, + config: nextConfig, + appDir + }); + const added = new Map(); + const isServerComponent = isInsideAppDir && staticInfo.rsc !== _constants.RSC_MODULE_TYPES.client; + let pageRuntime = staticInfo.runtime; + (0, _entries.runDependingOnPageType)({ + page: route.page, + pageRuntime, + pageType: pageBundleType, + onClient: ()=>{ + // Skip adding the client entry for app / Server Components. + if (isServerComponent || isInsideAppDir) { + return; + } + added.set(_constants.COMPILER_NAMES.client, addEntry(_constants.COMPILER_NAMES.client)); + }, + onServer: ()=>{ + added.set(_constants.COMPILER_NAMES.server, addEntry(_constants.COMPILER_NAMES.server)); + const edgeServerEntry = getEntryKey(_constants.COMPILER_NAMES.edgeServer, pageBundleType, route.page); + if (curEntries[edgeServerEntry] && !(0, _utils.isInstrumentationHookFile)(route.page)) { + // Runtime switched from edge to server + delete curEntries[edgeServerEntry]; + } + }, + onEdgeServer: ()=>{ + added.set(_constants.COMPILER_NAMES.edgeServer, addEntry(_constants.COMPILER_NAMES.edgeServer)); + const serverEntry = getEntryKey(_constants.COMPILER_NAMES.server, pageBundleType, route.page); + if (curEntries[serverEntry] && !(0, _utils.isInstrumentationHookFile)(route.page)) { + // Runtime switched from server to edge + delete curEntries[serverEntry]; + } + } + }); + const addedValues = [ + ...added.values() + ]; + const entriesThatShouldBeInvalidated = [ + ...added.entries() + ].filter(([, entry])=>entry.shouldInvalidate); + const hasNewEntry = addedValues.some((entry)=>entry.newEntry); + if (hasNewEntry) { + const routePage = isApp ? route.page : (0, _apppaths.normalizeAppPath)(route.page); + // If proxy file, remove the leading slash from "/proxy" to "proxy". + (0, _output.reportTrigger)((0, _utils.isMiddlewareFile)(routePage) ? routePage.slice(1) : routePage, url); + } + if (entriesThatShouldBeInvalidated.length > 0) { + const invalidatePromise = Promise.all(entriesThatShouldBeInvalidated.map(([compilerKey, { entryKey }])=>{ + return new Promise((resolve, reject)=>{ + doneCallbacks.once(entryKey, (err)=>{ + if (err) { + return reject(err); + } + // If the invalidation also triggers a rebuild, we need to + // wait for that additional build to prevent race conditions. + const needsRebuild = curInvalidator.willRebuild(compilerKey); + if (needsRebuild) { + doneCallbacks.once(entryKey, (rebuildErr)=>{ + if (rebuildErr) { + return reject(rebuildErr); + } + resolve(); + }); + } else { + resolve(); + } + }); + }); + })); + curInvalidator.invalidate([ + ...added.keys() + ]); + await invalidatePromise; + } + } finally{ + clearTimeout(stalledEnsureTimeout); + } + } + // Make sure that we won't have multiple invalidations ongoing concurrently. + const batcher = _batcher.Batcher.create({ + // The cache key here is composed of the elements that affect the + // compilation, namely, the page, whether it's client only, and whether + // it's an app page. This ensures that we don't have multiple compilations + // for the same page happening concurrently. + // + // We don't include the whole match because it contains match specific + // parameters (like route params) that would just bust this cache. Any + // details that would possibly bust the cache should be listed here. + cacheKeyFn: (options)=>JSON.stringify(options), + // Schedule the invocation of the ensurePageImpl function on the next tick. + schedulerFn: _scheduler.scheduleOnNextTick + }); + return { + async ensurePage ({ page, appPaths = null, definition, isApp, url }) { + // If the route is actually an app page route, then we should have access + // to the app route definition, and therefore, the appPaths from it. + if (!appPaths && definition && (0, _apppageroutedefinition.isAppPageRouteDefinition)(definition)) { + appPaths = definition.appPaths; + } + // Wrap the invocation of the ensurePageImpl function in the pending + // wrapper, which will ensure that we don't have multiple compilations + // for the same page happening concurrently. + return batcher.batch({ + page, + appPaths, + definition, + isApp + }, async ()=>{ + await ensurePageImpl({ + page, + appPaths, + definition, + isApp, + url + }); + }); + }, + onHMR (client, getHmrServerError) { + let bufferedHmrServerError = null; + client.addEventListener('close', ()=>{ + bufferedHmrServerError = null; + }); + client.addEventListener('message', ({ data })=>{ + try { + const error = getHmrServerError(); + // New error occurred: buffered error is flushed and new error occurred + if (!bufferedHmrServerError && error) { + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ERROR, + errorJSON: (0, _utils1.stringifyError)(error) + }); + bufferedHmrServerError = null; + } + const parsedData = JSON.parse(typeof data !== 'string' ? data.toString() : data); + if (parsedData.event === _hotreloadertypes.HMR_MESSAGE_SENT_TO_SERVER.PING) { + if (parsedData.appDirRoute) { + handleAppDirPing(parsedData.tree); + } else { + handlePing(parsedData.page); + } + } else if (parsedData.event === _hotreloadertypes.HMR_MESSAGE_SENT_TO_SERVER.MCP_ERROR_STATE_RESPONSE) { + (0, _geterrors.handleErrorStateResponse)(parsedData.requestId, parsedData.errorState, parsedData.url); + } else if (parsedData.event === _hotreloadertypes.HMR_MESSAGE_SENT_TO_SERVER.MCP_PAGE_METADATA_RESPONSE) { + (0, _getpagemetadata.handlePageMetadataResponse)(parsedData.requestId, parsedData.segmentTrieData, parsedData.url); + } + } catch {} + }); + } + }; +} + +//# sourceMappingURL=on-demand-entry-handler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/parse-version-info.js b/cli/app/node_modules/next/dist/server/dev/parse-version-info.js new file mode 100644 index 00000000000..93029f81f23 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/parse-version-info.js @@ -0,0 +1,108 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseVersionInfo", { + enumerable: true, + get: function() { + return parseVersionInfo; + } +}); +const _semver = /*#__PURE__*/ _interop_require_wildcard(require("next/dist/compiled/semver")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function parseVersionInfo(o) { + const latest = _semver.parse(o.latest); + const canary = _semver.parse(o.canary); + const installedParsed = _semver.parse(o.installed); + const installed = o.installed; + if (installedParsed && latest && canary) { + if (installedParsed.major < latest.major) { + // Old major version + return { + staleness: 'stale-major', + expected: latest.raw, + installed + }; + } else if (installedParsed.prerelease[0] === 'canary' && _semver.lt(installedParsed, canary)) { + // Matching major, but old canary + return { + staleness: 'stale-prerelease', + expected: canary.raw, + installed + }; + } else if (!installedParsed.prerelease.length && _semver.lt(installedParsed, latest)) { + // Stable, but not the latest + if (installedParsed.minor === latest.minor) { + // Same major and minor, but not the latest patch + return { + staleness: 'stale-patch', + expected: latest.raw, + installed + }; + } + return { + staleness: 'stale-minor', + expected: latest.raw, + installed + }; + } else if (_semver.gt(installedParsed, latest) && installedParsed.version !== canary.version) { + // Newer major version + return { + staleness: 'newer-than-npm', + installed + }; + } else { + // Latest and greatest + return { + staleness: 'fresh', + installed + }; + } + } + return { + installed: (installedParsed == null ? void 0 : installedParsed.raw) ?? '0.0.0', + staleness: 'unknown' + }; +} + +//# sourceMappingURL=parse-version-info.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/require-cache.js b/cli/app/node_modules/next/dist/server/dev/require-cache.js new file mode 100644 index 00000000000..7c66b0ca614 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/require-cache.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "deleteCache", { + enumerable: true, + get: function() { + return deleteCache; + } +}); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../../lib/is-error")); +const _realpath = require("../../lib/realpath"); +const _loadmanifestexternal = require("../load-manifest.external"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/** + * Batch delete modules from require.cache with a single scan. + * + * When deleting N modules, this performs ONE scan of require.cache + * instead of N scans, reducing complexity from O(N * C) to O(C + N) + * where C = size of require.cache. + */ function deleteFromRequireCache(filePaths) { + // Phase 1: Resolve all paths and collect modules to delete + const resolvedPaths = []; + const modsToDelete = new Set(); + for (let filePath of filePaths){ + try { + filePath = (0, _realpath.realpathSync)(filePath); + } catch (e) { + if ((0, _iserror.default)(e) && e.code !== 'ENOENT') throw e; + } + const mod = require.cache[filePath]; + if (mod) { + resolvedPaths.push(filePath); + modsToDelete.add(mod); + } + } + if (modsToDelete.size === 0) return; + // Phase 2: Single scan of require.cache to remove child references + const modules = Object.values(require.cache); + for(let m = 0; m < modules.length; m++){ + var _modules_m; + const children = (_modules_m = modules[m]) == null ? void 0 : _modules_m.children; + if (children && children.length) { + let len = children.length; + for(let i = 0; i < len; i++){ + if (modsToDelete.has(children[i])) { + children[i] = children[--len]; + i-- // re-check swapped element + ; + } + } + children.length = len; + } + } + // Phase 3: Clear parent references from children and delete cache entries + for (const mod of modsToDelete){ + const children = mod.children; + for(let i = 0; i < children.length; i++){ + if (children[i].parent === mod) { + children[i].parent = null; + } + } + } + for (const filePath of resolvedPaths){ + delete require.cache[filePath]; + } +} +function deleteCache(filePaths) { + for (const filePath of filePaths){ + (0, _loadmanifestexternal.clearManifestCache)(filePath); + } + deleteFromRequireCache(filePaths); +} + +//# sourceMappingURL=require-cache.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/serialized-errors.js b/cli/app/node_modules/next/dist/server/dev/serialized-errors.js new file mode 100644 index 00000000000..d0aaf601424 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/serialized-errors.js @@ -0,0 +1,67 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + deleteErrorsRscStreamForHtmlRequest: null, + sendSerializedErrorsToClient: null, + sendSerializedErrorsToClientForHtmlRequest: null, + setErrorsRscStreamForHtmlRequest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + deleteErrorsRscStreamForHtmlRequest: function() { + return deleteErrorsRscStreamForHtmlRequest; + }, + sendSerializedErrorsToClient: function() { + return sendSerializedErrorsToClient; + }, + sendSerializedErrorsToClientForHtmlRequest: function() { + return sendSerializedErrorsToClientForHtmlRequest; + }, + setErrorsRscStreamForHtmlRequest: function() { + return setErrorsRscStreamForHtmlRequest; + } +}); +const _nodewebstreamshelper = require("../stream-utils/node-web-streams-helper"); +const _hotreloadertypes = require("./hot-reloader-types"); +const errorsRscStreamsByHtmlRequestId = new Map(); +function sendSerializedErrorsToClient(errorsRscStream, sendToClient) { + (0, _nodewebstreamshelper.streamToUint8Array)(errorsRscStream).then((serializedErrors)=>{ + sendToClient({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ERRORS_TO_SHOW_IN_BROWSER, + serializedErrors + }); + }, (err)=>{ + console.error(Object.defineProperty(new Error('Failed to serialize errors.', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E948", + enumerable: false, + configurable: true + })); + }); +} +function sendSerializedErrorsToClientForHtmlRequest(htmlRequestId, sendToClient) { + const errorsRscStream = errorsRscStreamsByHtmlRequestId.get(htmlRequestId); + if (!errorsRscStream) { + return; + } + errorsRscStreamsByHtmlRequestId.delete(htmlRequestId); + sendSerializedErrorsToClient(errorsRscStream, sendToClient); +} +function setErrorsRscStreamForHtmlRequest(htmlRequestId, errorsRscStream) { + // TODO: Clean up after a timeout, in case the client never connects, e.g. + // when CURL'ing the page, or loading the page with JavaScript disabled etc. + errorsRscStreamsByHtmlRequestId.set(htmlRequestId, errorsRscStream); +} +function deleteErrorsRscStreamForHtmlRequest(htmlRequestId) { + errorsRscStreamsByHtmlRequestId.delete(htmlRequestId); +} + +//# sourceMappingURL=serialized-errors.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/server-action-logger.js b/cli/app/node_modules/next/dist/server/dev/server-action-logger.js new file mode 100644 index 00000000000..2ffdcdc395b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/server-action-logger.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "formatArgs", { + enumerable: true, + get: function() { + return formatArgs; + } +}); +const _safestablestringify = require("next/dist/compiled/safe-stable-stringify"); +// Configure stringify with reasonable limits for action logging +const stringify = (0, _safestablestringify.configure)({ + maximumDepth: 2, + maximumBreadth: 3 +}); +/** + * Format a single argument for display in server action logs. + */ function formatArg(arg) { + try { + return stringify(arg) ?? String(arg); + } catch { + // String(arg) can throw for temporary client references (e.g., class instances + // passed from client to server) because accessing .toString() on them throws + // "Cannot access toString on the server" + try { + return String(arg); + } catch { + return '[unserializable]'; + } + } +} +function formatArgs(args) { + return args.map((a)=>formatArg(a)).join(', '); +} + +//# sourceMappingURL=server-action-logger.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/static-paths-worker.js b/cli/app/node_modules/next/dist/server/dev/static-paths-worker.js new file mode 100644 index 00000000000..8426a0954d1 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/static-paths-worker.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "loadStaticPaths", { + enumerable: true, + get: function() { + return loadStaticPaths; + } +}); +require("../require-hook"); +require("../node-environment"); +const _appsegments = require("../../build/segment-config/app/app-segments"); +const _loadcomponents = require("../load-components"); +const _setuphttpagentenv = require("../setup-http-agent-env"); +const _checks = require("../route-modules/checks"); +const _ppr = require("../lib/experimental/ppr"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _collectrootparamkeys = require("../../build/segment-config/app/collect-root-param-keys"); +const _app = require("../../build/static-paths/app"); +const _pages = require("../../build/static-paths/pages"); +const _createincrementalcache = require("../../export/helpers/create-incremental-cache"); +const _app1 = require("../../shared/lib/router/routes/app"); +async function loadStaticPaths({ dir, distDir, pathname, config, httpAgentOptions, locales, defaultLocale, isAppPath, page, isrFlushToDisk, fetchCacheKeyPrefix, cacheMaxMemorySize, requestHeaders, cacheHandler, cacheHandlers, cacheLifeProfiles, nextConfigOutput, buildId, authInterrupts, sriEnabled }) { + // this needs to be initialized before loadComponents otherwise + // "use cache" could be missing it's cache handlers + await (0, _createincrementalcache.createIncrementalCache)({ + dir, + distDir, + cacheHandler, + cacheHandlers, + requestHeaders, + fetchCacheKeyPrefix, + flushToDisk: isrFlushToDisk, + cacheMaxMemorySize + }); + // update work memory runtime-config + (0, _setuphttpagentenv.setHttpClientAndAgentOptions)({ + httpAgentOptions + }); + const components = await (0, _loadcomponents.loadComponents)({ + distDir, + // In `pages/`, the page is the same as the pathname. + page: page || pathname, + isAppPath, + isDev: true, + sriEnabled, + needsManifestsForLegacyReasons: true + }); + if (isAppPath) { + const routeModule = components.routeModule; + const segments = await (0, _appsegments.collectSegments)(// We know this is an app page or app route module because we checked + // above that the page type is 'app'. + routeModule); + const route = (0, _app1.parseAppRoute)(pathname, true); + if (route.dynamicSegments.length === 0) { + throw Object.defineProperty(new _invarianterror.InvariantError(`Expected a dynamic route, but got a static route: ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E930", + enumerable: false, + configurable: true + }); + } + const isRoutePPREnabled = (0, _checks.isAppPageRouteModule)(routeModule) && (0, _ppr.checkIsRoutePPREnabled)(config.pprConfig); + const rootParamKeys = (0, _collectrootparamkeys.collectRootParamKeys)(routeModule); + return (0, _app.buildAppStaticPaths)({ + dir, + page: pathname, + route, + cacheComponents: config.cacheComponents, + segments, + distDir, + requestHeaders, + cacheHandler, + cacheLifeProfiles, + isrFlushToDisk, + fetchCacheKeyPrefix, + cacheMaxMemorySize, + ComponentMod: components.ComponentMod, + nextConfigOutput, + isRoutePPREnabled, + partialFallbacksEnabled: config.partialFallbacks, + buildId, + authInterrupts, + rootParamKeys + }); + } else if (!components.getStaticPaths) { + // We shouldn't get to this point since the worker should only be called for + // SSG pages with getStaticPaths. + throw Object.defineProperty(new _invarianterror.InvariantError(`Failed to load page with getStaticPaths for ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E605", + enumerable: false, + configurable: true + }); + } + return (0, _pages.buildPagesStaticPaths)({ + page: pathname, + getStaticPaths: components.getStaticPaths, + configFileName: config.configFileName, + locales, + defaultLocale + }); +} + +//# sourceMappingURL=static-paths-worker.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dev/turbopack-utils.js b/cli/app/node_modules/next/dist/server/dev/turbopack-utils.js new file mode 100644 index 00000000000..b8d2370a9ac --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dev/turbopack-utils.js @@ -0,0 +1,687 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AssetMapper: null, + addMetadataIdToRoute: null, + addRouteSuffix: null, + handleEntrypoints: null, + handlePagesErrorRoute: null, + handleRouteType: null, + hasEntrypointForKey: null, + msToNs: null, + normalizedPageToTurbopackStructureRoute: null, + printNonFatalIssue: null, + processTopLevelIssues: null, + removeRouteSuffix: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AssetMapper: function() { + return AssetMapper; + }, + addMetadataIdToRoute: function() { + return addMetadataIdToRoute; + }, + addRouteSuffix: function() { + return addRouteSuffix; + }, + handleEntrypoints: function() { + return handleEntrypoints; + }, + handlePagesErrorRoute: function() { + return handlePagesErrorRoute; + }, + handleRouteType: function() { + return handleRouteType; + }, + hasEntrypointForKey: function() { + return hasEntrypointForKey; + }, + msToNs: function() { + return _compilationevents.msToNs; + }, + normalizedPageToTurbopackStructureRoute: function() { + return normalizedPageToTurbopackStructureRoute; + }, + printNonFatalIssue: function() { + return printNonFatalIssue; + }, + processTopLevelIssues: function() { + return processTopLevelIssues; + }, + removeRouteSuffix: function() { + return removeRouteSuffix; + } +}); +const _hotreloadertypes = require("./hot-reloader-types"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _entrykey = require("../../shared/lib/turbopack/entry-key"); +const _ismetadataroute = require("../../lib/metadata/is-metadata-route"); +const _utils = require("../../shared/lib/turbopack/utils"); +const _constants = require("../../lib/constants"); +const _compilationevents = require("../../shared/lib/turbopack/compilation-events"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const onceErrorSet = new Set(); +/** + * Check if given issue is a warning to be display only once. + * This mimics behavior of get-page-static-info's warnOnce. + * @param issue + * @returns + */ function shouldEmitOnceWarning(issue) { + const { severity, title, stage } = issue; + if (severity === 'warning' && title.value === 'Invalid page configuration') { + if (onceErrorSet.has(issue)) { + return false; + } + onceErrorSet.add(issue); + } + if (severity === 'warning' && stage === 'config' && (0, _utils.renderStyledStringToErrorAnsi)(issue.title).includes("can't be external")) { + if (onceErrorSet.has(issue)) { + return false; + } + onceErrorSet.add(issue); + } + return true; +} +function printNonFatalIssue(issue) { + if ((0, _utils.isRelevantWarning)(issue) && shouldEmitOnceWarning(issue)) { + _log.warn((0, _utils.formatIssue)(issue)); + } +} +function processTopLevelIssues(currentTopLevelIssues, result) { + currentTopLevelIssues.clear(); + for (const issue of result.issues){ + const issueKey = (0, _utils.getIssueKey)(issue); + currentTopLevelIssues.set(issueKey, issue); + } +} +async function handleRouteType({ dev, page, pathname, route, currentEntryIssues, entrypoints, manifestLoader, readyIds, devRewrites, productionRewrites, hooks, logErrors }) { + switch(route.type){ + case 'page': + { + const clientKey = (0, _entrykey.getEntryKey)('pages', 'client', page); + const serverKey = (0, _entrykey.getEntryKey)('pages', 'server', page); + try { + // In the best case scenario, Turbopack chunks document, app, page separately in that order, + // so it can happen that the chunks of document change, but the chunks of app and page + // don't. We still need to reload the page chunks in that case though, otherwise the version + // of the document or app component export from the pages template is stale. + let documentOrAppChanged = false; + if (entrypoints.global.app) { + const key = (0, _entrykey.getEntryKey)('pages', 'server', '_app'); + const writtenEndpoint = await entrypoints.global.app.writeToDisk(); + documentOrAppChanged ||= (hooks == null ? void 0 : hooks.handleWrittenEndpoint(key, writtenEndpoint, false)) ?? false; + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + } + await manifestLoader.loadBuildManifest('_app'); + await manifestLoader.loadPagesManifest('_app'); + if (entrypoints.global.document) { + const key = (0, _entrykey.getEntryKey)('pages', 'server', '_document'); + const writtenEndpoint = await entrypoints.global.document.writeToDisk(); + documentOrAppChanged ||= (hooks == null ? void 0 : hooks.handleWrittenEndpoint(key, writtenEndpoint, false)) ?? false; + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + } + await manifestLoader.loadPagesManifest('_document'); + const writtenEndpoint = await route.htmlEndpoint.writeToDisk(); + hooks == null ? void 0 : hooks.handleWrittenEndpoint(serverKey, writtenEndpoint, documentOrAppChanged); + const type = writtenEndpoint == null ? void 0 : writtenEndpoint.type; + await manifestLoader.loadClientBuildManifest(page); + await manifestLoader.loadBuildManifest(page); + await manifestLoader.loadPagesManifest(page); + if (type === 'edge') { + await manifestLoader.loadMiddlewareManifest(page, 'pages'); + } else { + manifestLoader.deleteMiddlewareManifest(serverKey); + } + await manifestLoader.loadFontManifest('/_app', 'pages'); + await manifestLoader.loadFontManifest(page, 'pages'); + manifestLoader.writeManifests({ + devRewrites, + productionRewrites, + entrypoints + }); + (0, _utils.processIssues)(currentEntryIssues, serverKey, writtenEndpoint, false, logErrors); + } finally{ + if (dev) { + // TODO subscriptions should only be caused by the WebSocket connections + // otherwise we don't known when to unsubscribe and this leaking + hooks == null ? void 0 : hooks.subscribeToChanges(serverKey, false, route.dataEndpoint, ()=>{ + // Report the next compilation again + readyIds == null ? void 0 : readyIds.delete(pathname); + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_ONLY_CHANGES, + pages: [ + page + ] + }; + }, (e)=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in ${page} data subscription: ${e}` + }; + }); + hooks == null ? void 0 : hooks.subscribeToChanges(clientKey, false, route.htmlEndpoint, ()=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES + }; + }, (e)=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in ${page} html subscription: ${e}` + }; + }); + if (entrypoints.global.document) { + hooks == null ? void 0 : hooks.subscribeToChanges((0, _entrykey.getEntryKey)('pages', 'server', '_document'), false, entrypoints.global.document, ()=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: '_document has changed (page route)' + }; + }, (e)=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in _document subscription (page route): ${e}` + }; + }); + } + } + } + break; + } + case 'page-api': + { + const key = (0, _entrykey.getEntryKey)('pages', 'server', page); + const writtenEndpoint = await route.endpoint.writeToDisk(); + hooks == null ? void 0 : hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + const type = writtenEndpoint.type; + await manifestLoader.loadPagesManifest(page); + if (type === 'edge') { + await manifestLoader.loadMiddlewareManifest(page, 'pages'); + } else { + manifestLoader.deleteMiddlewareManifest(key); + } + manifestLoader.writeManifests({ + devRewrites, + productionRewrites, + entrypoints + }); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, true, logErrors); + break; + } + case 'app-page': + { + const key = (0, _entrykey.getEntryKey)('app', 'server', page); + const writtenEndpoint = await route.htmlEndpoint.writeToDisk(); + hooks == null ? void 0 : hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + if (dev) { + // TODO subscriptions should only be caused by the WebSocket connections + // otherwise we don't known when to unsubscribe and this leaking + hooks == null ? void 0 : hooks.subscribeToChanges(key, true, route.rscEndpoint, (change, hash)=>{ + if (change.issues.some((issue)=>issue.severity === 'error')) { + // Ignore any updates that has errors + // There will be another update without errors eventually + return; + } + // Report the next compilation again + readyIds == null ? void 0 : readyIds.delete(pathname); + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.SERVER_COMPONENT_CHANGES, + hash + }; + }, (e)=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in ${page} app-page subscription: ${e}` + }; + }); + } + const type = writtenEndpoint.type; + if (type === 'edge') { + manifestLoader.loadMiddlewareManifest(page, 'app'); + } else { + manifestLoader.deleteMiddlewareManifest(key); + } + manifestLoader.loadBuildManifest(page, 'app'); + manifestLoader.loadAppPathsManifest(page); + manifestLoader.loadActionManifest(page); + manifestLoader.loadFontManifest(page, 'app'); + manifestLoader.writeManifests({ + devRewrites, + productionRewrites, + entrypoints + }); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, dev, logErrors); + break; + } + case 'app-route': + { + const key = (0, _entrykey.getEntryKey)('app', 'server', page); + const writtenEndpoint = await route.endpoint.writeToDisk(); + hooks == null ? void 0 : hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + const type = writtenEndpoint.type; + manifestLoader.loadAppPathsManifest(page); + if (type === 'edge') { + manifestLoader.loadMiddlewareManifest(page, 'app'); + } else { + manifestLoader.deleteMiddlewareManifest(key); + } + manifestLoader.writeManifests({ + devRewrites, + productionRewrites, + entrypoints + }); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, true, logErrors); + break; + } + default: + { + throw Object.defineProperty(new Error(`unknown route type ${route.type} for ${page}`), "__NEXT_ERROR_CODE", { + value: "E316", + enumerable: false, + configurable: true + }); + } + } +} +class AssetMapper { + /** + * Overrides asset paths for a key and updates the mapping from path to key. + * + * @param key + * @param assetPaths asset paths relative to the .next directory + */ setPathsForKey(key, assetPaths) { + this.delete(key); + const newAssetPaths = new Set(assetPaths); + this.entryMap.set(key, newAssetPaths); + for (const assetPath of newAssetPaths){ + let assetPathKeys = this.assetMap.get(assetPath); + if (!assetPathKeys) { + assetPathKeys = new Set(); + this.assetMap.set(assetPath, assetPathKeys); + } + assetPathKeys.add(key); + } + } + /** + * Deletes the key and any asset only referenced by this key. + * + * @param key + */ delete(key) { + for (const assetPath of this.getAssetPathsByKey(key)){ + const assetPathKeys = this.assetMap.get(assetPath); + assetPathKeys == null ? void 0 : assetPathKeys.delete(key); + if (!(assetPathKeys == null ? void 0 : assetPathKeys.size)) { + this.assetMap.delete(assetPath); + } + } + this.entryMap.delete(key); + } + getAssetPathsByKey(key) { + return Array.from(this.entryMap.get(key) ?? []); + } + getKeysByAsset(path) { + return Array.from(this.assetMap.get(path) ?? []); + } + keys() { + return this.entryMap.keys(); + } + constructor(){ + this.entryMap = new Map(); + this.assetMap = new Map(); + } +} +function hasEntrypointForKey(entrypoints, key, assetMapper) { + const { type, page } = (0, _entrykey.splitEntryKey)(key); + switch(type){ + case 'app': + return entrypoints.app.has(page); + case 'pages': + switch(page){ + case '_app': + return entrypoints.global.app != null; + case '_document': + return entrypoints.global.document != null; + case '_error': + return entrypoints.global.error != null; + default: + return entrypoints.page.has(page); + } + case 'root': + switch(page){ + case 'middleware': + return entrypoints.global.middleware != null; + case 'instrumentation': + return entrypoints.global.instrumentation != null; + default: + return false; + } + case 'assets': + if (!assetMapper) { + return false; + } + return assetMapper.getKeysByAsset(page).some((pageKey)=>hasEntrypointForKey(entrypoints, pageKey, assetMapper)); + default: + { + // validation that we covered all cases, this should never run. + const _ = type; + return false; + } + } +} +async function handleEntrypoints({ entrypoints, currentEntrypoints, currentEntryIssues, manifestLoader, devRewrites, logErrors, dev }) { + currentEntrypoints.global.app = entrypoints.pagesAppEndpoint; + currentEntrypoints.global.document = entrypoints.pagesDocumentEndpoint; + currentEntrypoints.global.error = entrypoints.pagesErrorEndpoint; + currentEntrypoints.global.instrumentation = entrypoints.instrumentation; + currentEntrypoints.page.clear(); + currentEntrypoints.app.clear(); + for (const [pathname, route] of entrypoints.routes){ + switch(route.type){ + case 'page': + case 'page-api': + currentEntrypoints.page.set(pathname, route); + break; + case 'app-page': + { + route.pages.forEach((page)=>{ + currentEntrypoints.app.set(page.originalName, { + type: 'app-page', + ...page + }); + }); + break; + } + case 'app-route': + { + currentEntrypoints.app.set(route.originalName, route); + break; + } + case 'conflict': + _log.info(`skipping ${pathname} (${route.type})`); + break; + default: + route; + } + } + if (dev) { + await handleEntrypointsDevCleanup({ + currentEntryIssues, + currentEntrypoints, + ...dev + }); + } + const { middleware, instrumentation } = entrypoints; + // We check for explicit true/false, since it's initialized to + // undefined during the first loop (middlewareChanges event is + // unnecessary during the first serve) + if (currentEntrypoints.global.middleware && !middleware) { + const key = (0, _entrykey.getEntryKey)('root', 'server', 'middleware'); + // Went from middleware to no middleware + await (dev == null ? void 0 : dev.hooks.unsubscribeFromChanges(key)); + currentEntryIssues.delete(key); + dev.hooks.sendHmr('middleware', { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES + }); + } else if (!currentEntrypoints.global.middleware && middleware) { + // Went from no middleware to middleware + dev.hooks.sendHmr('middleware', { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES + }); + } + currentEntrypoints.global.middleware = middleware; + if (instrumentation) { + const processInstrumentation = async (name, prop)=>{ + const prettyName = { + nodeJs: 'Node.js', + edge: 'Edge' + }; + const finishBuilding = dev.hooks.startBuilding(`instrumentation ${prettyName[prop]}`, undefined, true); + const key = (0, _entrykey.getEntryKey)('root', 'server', name); + const writtenEndpoint = await instrumentation[prop].writeToDisk(); + dev.hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + finishBuilding(); + }; + await processInstrumentation('instrumentation.nodeJs', 'nodeJs'); + await processInstrumentation('instrumentation.edge', 'edge'); + await manifestLoader.loadMiddlewareManifest('instrumentation', 'instrumentation'); + manifestLoader.writeManifests({ + devRewrites, + productionRewrites: undefined, + entrypoints: currentEntrypoints + }); + dev.serverFields.actualInstrumentationHookFile = '/instrumentation'; + await dev.hooks.propagateServerField('actualInstrumentationHookFile', dev.serverFields.actualInstrumentationHookFile); + } else { + dev.serverFields.actualInstrumentationHookFile = undefined; + await dev.hooks.propagateServerField('actualInstrumentationHookFile', dev.serverFields.actualInstrumentationHookFile); + } + if (middleware) { + const key = (0, _entrykey.getEntryKey)('root', 'server', 'middleware'); + const endpoint = middleware.endpoint; + const triggerName = middleware.isProxy ? _constants.PROXY_FILENAME : _constants.MIDDLEWARE_FILENAME; + async function processMiddleware() { + var _manifestLoader_getMiddlewareManifest; + const finishBuilding = dev.hooks.startBuilding(triggerName, undefined, true); + const writtenEndpoint = await endpoint.writeToDisk(); + dev.hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + await manifestLoader.loadMiddlewareManifest('middleware', 'middleware'); + const middlewareConfig = (_manifestLoader_getMiddlewareManifest = manifestLoader.getMiddlewareManifest(key)) == null ? void 0 : _manifestLoader_getMiddlewareManifest.middleware['/']; + if (dev && middlewareConfig) { + dev.serverFields.middleware = { + match: null, + page: '/', + matchers: middlewareConfig.matchers + }; + } + finishBuilding(); + } + await processMiddleware(); + if (dev) { + dev == null ? void 0 : dev.hooks.subscribeToChanges(key, false, endpoint, async ()=>{ + const finishBuilding = dev.hooks.startBuilding(triggerName, undefined, true); + await processMiddleware(); + await dev.hooks.propagateServerField('actualMiddlewareFile', dev.serverFields.actualMiddlewareFile); + await dev.hooks.propagateServerField('middleware', dev.serverFields.middleware); + manifestLoader.writeManifests({ + devRewrites, + productionRewrites: undefined, + entrypoints: currentEntrypoints + }); + finishBuilding == null ? void 0 : finishBuilding(); + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES + }; + }, ()=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.MIDDLEWARE_CHANGES + }; + }); + } + } else { + manifestLoader.deleteMiddlewareManifest((0, _entrykey.getEntryKey)('root', 'server', 'middleware')); + dev.serverFields.actualMiddlewareFile = undefined; + dev.serverFields.middleware = undefined; + } + await dev.hooks.propagateServerField('actualMiddlewareFile', dev.serverFields.actualMiddlewareFile); + await dev.hooks.propagateServerField('middleware', dev.serverFields.middleware); +} +async function handleEntrypointsDevCleanup({ currentEntryIssues, currentEntrypoints, assetMapper, changeSubscriptions, clients, clientStates, hooks }) { + // this needs to be first as `hasEntrypointForKey` uses the `assetMapper` + for (const key of assetMapper.keys()){ + if (!hasEntrypointForKey(currentEntrypoints, key, assetMapper)) { + assetMapper.delete(key); + } + } + for (const key of changeSubscriptions.keys()){ + // middleware is handled separately + if (!hasEntrypointForKey(currentEntrypoints, key, assetMapper)) { + await hooks.unsubscribeFromChanges(key); + } + } + for (const [key] of currentEntryIssues){ + if (!hasEntrypointForKey(currentEntrypoints, key, assetMapper)) { + currentEntryIssues.delete(key); + } + } + for (const client of clients){ + const state = clientStates.get(client); + if (!state) { + continue; + } + for (const key of state.clientIssues.keys()){ + if (!hasEntrypointForKey(currentEntrypoints, key, assetMapper)) { + state.clientIssues.delete(key); + } + } + for (const id of state.subscriptions.keys()){ + if (!hasEntrypointForKey(currentEntrypoints, (0, _entrykey.getEntryKey)('assets', 'client', id), assetMapper)) { + hooks.unsubscribeFromHmrEvents(client, id); + } + } + } +} +async function handlePagesErrorRoute({ currentEntryIssues, entrypoints, manifestLoader, devRewrites, productionRewrites, logErrors, hooks }) { + if (entrypoints.global.app) { + const key = (0, _entrykey.getEntryKey)('pages', 'server', '_app'); + const writtenEndpoint = await entrypoints.global.app.writeToDisk(); + hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + hooks.subscribeToChanges(key, false, entrypoints.global.app, ()=>{ + // There's a special case for this in `../client/page-bootstrap.ts`. + // https://github.com/vercel/next.js/blob/08d7a7e5189a835f5dcb82af026174e587575c0e/packages/next/src/client/page-bootstrap.ts#L69-L71 + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES + }; + }, ()=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: '_app has changed (error route)' + }; + }); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + } + await manifestLoader.loadBuildManifest('_app'); + await manifestLoader.loadPagesManifest('_app'); + await manifestLoader.loadFontManifest('_app'); + if (entrypoints.global.document) { + const key = (0, _entrykey.getEntryKey)('pages', 'server', '_document'); + const writtenEndpoint = await entrypoints.global.document.writeToDisk(); + hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + hooks.subscribeToChanges(key, false, entrypoints.global.document, ()=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: '_document has changed (error route)' + }; + }, (e)=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in _document subscription (error route): ${e}` + }; + }); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + } + await manifestLoader.loadPagesManifest('_document'); + if (entrypoints.global.error) { + const key = (0, _entrykey.getEntryKey)('pages', 'server', '_error'); + const writtenEndpoint = await entrypoints.global.error.writeToDisk(); + hooks.handleWrittenEndpoint(key, writtenEndpoint, false); + hooks.subscribeToChanges(key, false, entrypoints.global.error, ()=>{ + // There's a special case for this in `../client/page-bootstrap.ts`. + // https://github.com/vercel/next.js/blob/08d7a7e5189a835f5dcb82af026174e587575c0e/packages/next/src/client/page-bootstrap.ts#L69-L71 + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.CLIENT_CHANGES + }; + }, (e)=>{ + return { + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.RELOAD_PAGE, + data: `error in _error subscription: ${e}` + }; + }); + (0, _utils.processIssues)(currentEntryIssues, key, writtenEndpoint, false, logErrors); + } + await manifestLoader.loadClientBuildManifest('_error'); + await manifestLoader.loadBuildManifest('_error'); + await manifestLoader.loadPagesManifest('_error'); + await manifestLoader.loadFontManifest('_error'); + manifestLoader.writeManifests({ + devRewrites, + productionRewrites, + entrypoints + }); +} +function removeRouteSuffix(route) { + return route.replace(/\/route$/, ''); +} +function addRouteSuffix(route) { + return route + '/route'; +} +function addMetadataIdToRoute(route) { + return route + '/[__metadata_id__]'; +} +function normalizedPageToTurbopackStructureRoute(route, ext) { + let entrypointKey = route; + if ((0, _ismetadataroute.isMetadataRoute)(entrypointKey)) { + entrypointKey = entrypointKey.endsWith('/route') ? entrypointKey.slice(0, -'/route'.length) : entrypointKey; + if (ext) { + if (entrypointKey.endsWith('/[__metadata_id__]')) { + entrypointKey = entrypointKey.slice(0, -'/[__metadata_id__]'.length); + } + // After stripping [__metadata_id__], add .xml for dynamic sitemap routes + // to match the Turbopack entry key from normalize_metadata_route + if (entrypointKey.endsWith('/sitemap') && ext !== '.xml') { + entrypointKey = entrypointKey + '.xml'; + } + } + entrypointKey = entrypointKey + '/route'; + } + return entrypointKey; +} + +//# sourceMappingURL=turbopack-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/dynamic-rendering-utils.js b/cli/app/node_modules/next/dist/server/dynamic-rendering-utils.js new file mode 100644 index 00000000000..a0d7faa6e4f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/dynamic-rendering-utils.js @@ -0,0 +1,108 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + delayUntilRuntimeStage: null, + getRuntimeStage: null, + isHangingPromiseRejectionError: null, + makeDevtoolsIOAwarePromise: null, + makeHangingPromise: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + delayUntilRuntimeStage: function() { + return delayUntilRuntimeStage; + }, + getRuntimeStage: function() { + return getRuntimeStage; + }, + isHangingPromiseRejectionError: function() { + return isHangingPromiseRejectionError; + }, + makeDevtoolsIOAwarePromise: function() { + return makeDevtoolsIOAwarePromise; + }, + makeHangingPromise: function() { + return makeHangingPromise; + } +}); +const _stagedrendering = require("./app-render/staged-rendering"); +function isHangingPromiseRejectionError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err)) { + return false; + } + return err.digest === HANGING_PROMISE_REJECTION; +} +const HANGING_PROMISE_REJECTION = 'HANGING_PROMISE_REJECTION'; +class HangingPromiseRejectionError extends Error { + constructor(route, expression){ + super(`During prerendering, ${expression} rejects when the prerender is complete. Typically these errors are handled by React but if you move ${expression} to a different context by using \`setTimeout\`, \`after\`, or similar functions you may observe this error and you should handle it in that context. This occurred at route "${route}".`), this.route = route, this.expression = expression, this.digest = HANGING_PROMISE_REJECTION; + } +} +const abortListenersBySignal = new WeakMap(); +function makeHangingPromise(signal, route, expression) { + if (signal.aborted) { + return Promise.reject(new HangingPromiseRejectionError(route, expression)); + } else { + const hangingPromise = new Promise((_, reject)=>{ + const boundRejection = reject.bind(null, new HangingPromiseRejectionError(route, expression)); + let currentListeners = abortListenersBySignal.get(signal); + if (currentListeners) { + currentListeners.push(boundRejection); + } else { + const listeners = [ + boundRejection + ]; + abortListenersBySignal.set(signal, listeners); + signal.addEventListener('abort', ()=>{ + for(let i = 0; i < listeners.length; i++){ + listeners[i](); + } + }, { + once: true + }); + } + }); + // We are fine if no one actually awaits this promise. We shouldn't consider this an unhandled rejection so + // we attach a noop catch handler here to suppress this warning. If you actually await somewhere or construct + // your own promise out of it you'll need to ensure you handle the error when it rejects. + hangingPromise.catch(ignoreReject); + return hangingPromise; + } +} +function ignoreReject() {} +function makeDevtoolsIOAwarePromise(underlying, requestStore, stage) { + if (requestStore.stagedRendering) { + // We resolve each stage in a timeout, so React DevTools will pick this up as IO. + return requestStore.stagedRendering.delayUntilStage(stage, undefined, underlying); + } + // in React DevTools if we resolve in a setTimeout we will observe + // the promise resolution as something that can suspend a boundary or root. + return new Promise((resolve)=>{ + // Must use setTimeout to be considered IO React DevTools. setImmediate will not work. + setTimeout(()=>{ + resolve(underlying); + }, 0); + }); +} +function getRuntimeStage(stagedRendering) { + if (stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyStatic || stagedRendering.currentStage === _stagedrendering.RenderStage.EarlyRuntime) { + return _stagedrendering.RenderStage.EarlyRuntime; + } + return _stagedrendering.RenderStage.Runtime; +} +function delayUntilRuntimeStage(prerenderStore, result) { + const { stagedRendering } = prerenderStore; + if (!stagedRendering) { + return result; + } + return stagedRendering.waitForStage(getRuntimeStage(stagedRendering)).then(()=>result); +} + +//# sourceMappingURL=dynamic-rendering-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/font-utils.js b/cli/app/node_modules/next/dist/server/font-utils.js new file mode 100644 index 00000000000..9045171a7c3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/font-utils.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "calculateSizeAdjustValues", { + enumerable: true, + get: function() { + return calculateSizeAdjustValues; + } +}); +const _constants = require("../shared/lib/constants"); +const capsizeFontsMetrics = require('next/dist/server/capsize-font-metrics.json'); +function formatName(str) { + return str.replace(/(?:^\w|[A-Z]|\b\w)/g, function(word, index) { + return index === 0 ? word.toLowerCase() : word.toUpperCase(); + }).replace(/\s+/g, ''); +} +function formatOverrideValue(val) { + return Math.abs(val * 100).toFixed(2); +} +function calculateSizeAdjustValues(fontName) { + const fontKey = formatName(fontName); + const fontMetrics = capsizeFontsMetrics[fontKey]; + let { category, ascent, descent, lineGap, unitsPerEm, xWidthAvg } = fontMetrics; + const mainFontAvgWidth = xWidthAvg / unitsPerEm; + const fallbackFont = category === 'serif' ? _constants.DEFAULT_SERIF_FONT : _constants.DEFAULT_SANS_SERIF_FONT; + const fallbackFontName = formatName(fallbackFont.name); + const fallbackFontMetrics = capsizeFontsMetrics[fallbackFontName]; + const fallbackFontAvgWidth = fallbackFontMetrics.xWidthAvg / fallbackFontMetrics.unitsPerEm; + let sizeAdjust = xWidthAvg ? mainFontAvgWidth / fallbackFontAvgWidth : 1; + ascent = formatOverrideValue(ascent / (unitsPerEm * sizeAdjust)); + descent = formatOverrideValue(descent / (unitsPerEm * sizeAdjust)); + lineGap = formatOverrideValue(lineGap / (unitsPerEm * sizeAdjust)); + return { + ascent, + descent, + lineGap, + fallbackFont: fallbackFont.name, + sizeAdjust: formatOverrideValue(sizeAdjust) + }; +} + +//# sourceMappingURL=font-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/get-app-route-from-entrypoint.js b/cli/app/node_modules/next/dist/server/get-app-route-from-entrypoint.js new file mode 100644 index 00000000000..97f4cc2b903 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/get-app-route-from-entrypoint.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return getAppRouteFromEntrypoint; + } +}); +const _matchbundle = /*#__PURE__*/ _interop_require_default(require("./match-bundle")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +// matches app/:path*.js +const APP_ROUTE_NAME_REGEX = /^app[/\\](.*)$/; +function getAppRouteFromEntrypoint(entryFile) { + const pagePath = (0, _matchbundle.default)(APP_ROUTE_NAME_REGEX, entryFile); + if (typeof pagePath === 'string' && !pagePath) { + return '/'; + } + if (!pagePath) { + return null; + } + return pagePath; +} + +//# sourceMappingURL=get-app-route-from-entrypoint.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/get-route-from-entrypoint.js b/cli/app/node_modules/next/dist/server/get-route-from-entrypoint.js new file mode 100644 index 00000000000..16ba21b265e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/get-route-from-entrypoint.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return getRouteFromEntrypoint; + } +}); +const _getapproutefromentrypoint = /*#__PURE__*/ _interop_require_default(require("./get-app-route-from-entrypoint")); +const _matchbundle = /*#__PURE__*/ _interop_require_default(require("./match-bundle")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +// matches pages/:page*.js +const SERVER_ROUTE_NAME_REGEX = /^pages[/\\](.*)$/; +// matches static/pages/:page*.js +const BROWSER_ROUTE_NAME_REGEX = /^static[/\\]pages[/\\](.*)$/; +function getRouteFromEntrypoint(entryFile, app) { + let pagePath = (0, _matchbundle.default)(SERVER_ROUTE_NAME_REGEX, entryFile); + if (pagePath) { + return pagePath; + } + if (app) { + pagePath = (0, _getapproutefromentrypoint.default)(entryFile); + if (pagePath) return pagePath; + } + // Potentially the passed item is a browser bundle so we try to match that also + return (0, _matchbundle.default)(BROWSER_ROUTE_NAME_REGEX, entryFile); +} + +//# sourceMappingURL=get-route-from-entrypoint.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/htmlescape.js b/cli/app/node_modules/next/dist/server/htmlescape.js new file mode 100644 index 00000000000..95d8920ed54 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/htmlescape.js @@ -0,0 +1,37 @@ +// This utility is based on https://github.com/zertosh/htmlescape +// License: https://github.com/zertosh/htmlescape/blob/0527ca7156a524d256101bb310a9f970f63078ad/LICENSE +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ESCAPE_REGEX: null, + htmlEscapeJsonString: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ESCAPE_REGEX: function() { + return ESCAPE_REGEX; + }, + htmlEscapeJsonString: function() { + return htmlEscapeJsonString; + } +}); +const ESCAPE_LOOKUP = { + '&': '\\u0026', + '>': '\\u003e', + '<': '\\u003c', + '\u2028': '\\u2028', + '\u2029': '\\u2029' +}; +const ESCAPE_REGEX = /[&><\u2028\u2029]/g; +function htmlEscapeJsonString(str) { + return str.replace(ESCAPE_REGEX, (match)=>ESCAPE_LOOKUP[match]); +} + +//# sourceMappingURL=htmlescape.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/image-optimizer.js b/cli/app/node_modules/next/dist/server/image-optimizer.js new file mode 100644 index 00000000000..7c558bc8bb3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/image-optimizer.js @@ -0,0 +1,1220 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ImageError: null, + ImageOptimizerCache: null, + detectContentType: null, + extractEtag: null, + fetchExternalImage: null, + fetchInternalImage: null, + getHash: null, + getImageEtag: null, + getImageSize: null, + getMaxAge: null, + getPreviouslyCachedImageOrNull: null, + getSharp: null, + imageOptimizer: null, + optimizeImage: null, + sendResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ImageError: function() { + return ImageError; + }, + ImageOptimizerCache: function() { + return ImageOptimizerCache; + }, + detectContentType: function() { + return detectContentType; + }, + extractEtag: function() { + return extractEtag; + }, + fetchExternalImage: function() { + return fetchExternalImage; + }, + fetchInternalImage: function() { + return fetchInternalImage; + }, + getHash: function() { + return getHash; + }, + getImageEtag: function() { + return getImageEtag; + }, + getImageSize: function() { + return getImageSize; + }, + getMaxAge: function() { + return getMaxAge; + }, + getPreviouslyCachedImageOrNull: function() { + return getPreviouslyCachedImageOrNull; + }, + getSharp: function() { + return getSharp; + }, + imageOptimizer: function() { + return imageOptimizer; + }, + optimizeImage: function() { + return optimizeImage; + }, + sendResponse: function() { + return sendResponse; + } +}); +const _crypto = require("crypto"); +const _fs = require("fs"); +const _accept = require("next/dist/compiled/@hapi/accept"); +const _contentdisposition = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/content-disposition")); +const _imagesize = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/image-size")); +const _detector = require("next/dist/compiled/image-detector/detector.js"); +const _isanimated = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/is-animated")); +const _path = require("path"); +const _url = /*#__PURE__*/ _interop_require_default(require("url")); +const _imageblursvg = require("../shared/lib/image-blur-svg"); +const _matchlocalpattern = require("../shared/lib/match-local-pattern"); +const _matchremotepattern = require("../shared/lib/match-remote-pattern"); +const _mockrequest = require("./lib/mock-request"); +const _responsecache = require("./response-cache"); +const _sendpayload = require("./send-payload"); +const _servestatic = require("./serve-static"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../lib/is-error")); +const _isprivateip = require("./is-private-ip"); +const _disklrucacheexternal = require("./lib/disk-lru-cache.external"); +const _url1 = require("../lib/url"); +const _invarianterror = require("../shared/lib/invariant-error"); +const _promises = require("dns/promises"); +const _net = require("net"); +const _dns = require("dns"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const AVIF = 'image/avif'; +const WEBP = 'image/webp'; +const PNG = 'image/png'; +const JPEG = 'image/jpeg'; +const JXL = 'image/jxl'; +const JP2 = 'image/jp2'; +const HEIC = 'image/heic'; +const GIF = 'image/gif'; +const SVG = 'image/svg+xml'; +const ICO = 'image/x-icon'; +const ICNS = 'image/x-icns'; +const TIFF = 'image/tiff'; +const BMP = 'image/bmp'; +const PDF = 'application/pdf'; +const CACHE_VERSION = 4; +const ANIMATABLE_TYPES = [ + WEBP, + PNG, + GIF +]; +const BYPASS_TYPES = [ + SVG, + ICO, + ICNS, + BMP, + JXL, + HEIC +]; +const BLUR_IMG_SIZE = 8 // should match `next-image-loader` +; +const BLUR_QUALITY = 70 // should match `next-image-loader` +; +let _sharp; +async function initCacheEntries(cacheDir) { + const cacheKeys = await _fs.promises.readdir(cacheDir).catch(()=>[]); + const entries = []; + for (const cacheKey of cacheKeys){ + try { + const { expireAt, buffer } = await readFromCacheDir(cacheDir, cacheKey); + entries.push({ + key: cacheKey, + size: buffer.byteLength, + expireAt + }); + } catch { + // Skip entries that can't be read from disk + } + } + // Sort oldest-first so we can replay them chronologically into LRU + return entries.sort((a, b)=>a.expireAt - b.expireAt); +} +function getSharp(concurrency) { + if (_sharp) { + return _sharp; + } + try { + _sharp = require('sharp'); + if (_sharp && _sharp.concurrency() > 1) { + // Reducing concurrency should reduce the memory usage too. + // We more aggressively reduce in dev but also reduce in prod. + // https://sharp.pixelplumbing.com/api-utility#concurrency + const divisor = process.env.NODE_ENV === 'development' ? 4 : 2; + _sharp.concurrency(concurrency ?? Math.floor(Math.max(_sharp.concurrency() / divisor, 1))); + } + } catch (e) { + if ((0, _iserror.default)(e) && e.code === 'MODULE_NOT_FOUND') { + throw Object.defineProperty(new Error('Module `sharp` not found. Please run `npm install --cpu=wasm32 sharp` to install it.'), "__NEXT_ERROR_CODE", { + value: "E47", + enumerable: false, + configurable: true + }); + } + throw e; + } + return _sharp; +} +function getSupportedMimeType(options, accept = '') { + const mimeType = (0, _accept.mediaType)(accept, options); + return accept.includes(mimeType) ? mimeType : ''; +} +function getHash(items) { + const hash = (0, _crypto.createHash)('sha256'); + for (let item of items){ + if (typeof item === 'number') hash.update(String(item)); + else { + hash.update(item); + } + } + // See https://en.wikipedia.org/wiki/Base64#URL_applications + return hash.digest('base64url'); +} +function extractEtag(etag, imageBuffer) { + if (etag) { + // upstream etag needs to be base64url encoded due to weak etag signature + // as we store this in the cache-entry file name. + return Buffer.from(etag).toString('base64url'); + } + return getImageEtag(imageBuffer); +} +function getImageEtag(image) { + return getHash([ + image + ]); +} +async function writeToCacheDir(cacheDir, cacheKey, extension, maxAge, expireAt, buffer, etag, upstreamEtag) { + const dir = (0, _path.join)(/* turbopackIgnore: true */ cacheDir, cacheKey); + const filename = (0, _path.join)(/* turbopackIgnore: true */ dir, `${maxAge}.${expireAt}.${etag}.${upstreamEtag}.${extension}`); + await _fs.promises.rm(dir, { + recursive: true, + force: true + }).catch(()=>{}); + await _fs.promises.mkdir(dir, { + recursive: true + }); + await _fs.promises.writeFile(filename, buffer); +} +async function readFromCacheDir(cacheDir, cacheKey) { + const dir = (0, _path.join)(/* turbopackIgnore: true */ cacheDir, cacheKey); + const files = await _fs.promises.readdir(dir); + const file = files[0]; + if (!file) { + throw Object.defineProperty(new Error(`Invariant: cache entry "${cacheKey}" not found in dir "${cacheDir}"`), "__NEXT_ERROR_CODE", { + value: "E1069", + enumerable: false, + configurable: true + }); + } + const [maxAgeSt, expireAtSt, etag, upstreamEtag, extension] = file.split('.', 5); + const filePath = (0, _path.join)(/* turbopackIgnore: true */ dir, file); + const buffer = await _fs.promises.readFile(/* turbopackIgnore: true */ filePath); + const expireAt = Number(expireAtSt); + const maxAge = Number(maxAgeSt); + return { + maxAge, + expireAt, + etag, + upstreamEtag, + buffer, + extension + }; +} +async function deleteFromCacheDir(cacheDir, cacheKey) { + return _fs.promises.rm((0, _path.join)(/* turbopackIgnore: true */ cacheDir, cacheKey), { + recursive: true, + force: true + }).catch((err)=>{ + _log.error(`Failed to delete cache key ${cacheKey}`, err); + }); +} +async function detectContentType(buffer, skipMetadata, concurrency) { + if (buffer.byteLength === 0) { + return null; + } + if ([ + 0xff, + 0xd8, + 0xff + ].every((b, i)=>buffer[i] === b)) { + return JPEG; + } + if ([ + 0x89, + 0x50, + 0x4e, + 0x47, + 0x0d, + 0x0a, + 0x1a, + 0x0a + ].every((b, i)=>buffer[i] === b)) { + return PNG; + } + if ([ + 0x47, + 0x49, + 0x46, + 0x38 + ].every((b, i)=>buffer[i] === b)) { + return GIF; + } + if ([ + 0x52, + 0x49, + 0x46, + 0x46, + 0, + 0, + 0, + 0, + 0x57, + 0x45, + 0x42, + 0x50 + ].every((b, i)=>!b || buffer[i] === b)) { + return WEBP; + } + if ([ + 0x3c, + 0x3f, + 0x78, + 0x6d, + 0x6c + ].every((b, i)=>buffer[i] === b)) { + return SVG; + } + if ([ + 0x3c, + 0x73, + 0x76, + 0x67 + ].every((b, i)=>buffer[i] === b)) { + return SVG; + } + if ([ + 0, + 0, + 0, + 0, + 0x66, + 0x74, + 0x79, + 0x70, + 0x61, + 0x76, + 0x69, + 0x66 + ].every((b, i)=>!b || buffer[i] === b)) { + return AVIF; + } + if ([ + 0x00, + 0x00, + 0x01, + 0x00 + ].every((b, i)=>buffer[i] === b)) { + return ICO; + } + if ([ + 0x69, + 0x63, + 0x6e, + 0x73 + ].every((b, i)=>buffer[i] === b)) { + return ICNS; + } + if ([ + 0x49, + 0x49, + 0x2a, + 0x00 + ].every((b, i)=>buffer[i] === b)) { + return TIFF; + } + if ([ + 0x42, + 0x4d + ].every((b, i)=>buffer[i] === b)) { + return BMP; + } + if ([ + 0xff, + 0x0a + ].every((b, i)=>buffer[i] === b)) { + return JXL; + } + if ([ + 0x00, + 0x00, + 0x00, + 0x0c, + 0x4a, + 0x58, + 0x4c, + 0x20, + 0x0d, + 0x0a, + 0x87, + 0x0a + ].every((b, i)=>buffer[i] === b)) { + return JXL; + } + if ([ + 0, + 0, + 0, + 0, + 0x66, + 0x74, + 0x79, + 0x70, + 0x68, + 0x65, + 0x69, + 0x63 + ].every((b, i)=>!b || buffer[i] === b)) { + return HEIC; + } + if ([ + 0x25, + 0x50, + 0x44, + 0x46, + 0x2d + ].every((b, i)=>buffer[i] === b)) { + return PDF; + } + if ([ + 0x00, + 0x00, + 0x00, + 0x0c, + 0x6a, + 0x50, + 0x20, + 0x20, + 0x0d, + 0x0a, + 0x87, + 0x0a + ].every((b, i)=>buffer[i] === b)) { + return JP2; + } + let format; + format = (0, _detector.detector)(buffer); + if (!format && !skipMetadata) { + const sharp = getSharp(concurrency); + const meta = await sharp(buffer).metadata().catch((_)=>null); + format = meta == null ? void 0 : meta.format; + } + switch(format){ + case 'avif': + return AVIF; + case 'webp': + return WEBP; + case 'png': + return PNG; + case 'jpeg': + case 'jpg': + return JPEG; + case 'gif': + return GIF; + case 'svg': + return SVG; + case 'jxl': + case 'jxl-stream': + return JXL; + case 'jp2': + return JP2; + case 'tiff': + case 'tif': + return TIFF; + case 'pdf': + return PDF; + case 'bmp': + return BMP; + case 'ico': + return ICO; + case 'icns': + return ICNS; + case 'dcraw': + case 'dz': + case 'exr': + case 'fits': + case 'heif': + case 'input': + case 'magick': + case 'openslide': + case 'ppm': + case 'rad': + case 'raw': + case 'v': + case 'cur': + case 'dds': + case 'j2c': + case 'ktx': + case 'pnm': + case 'psd': + case 'tga': + case undefined: + default: + return null; + } +} +class ImageOptimizerCache { + static validateParams(req, query, nextConfig, isDev) { + var _nextConfig_images, _nextConfig_images1, _nextConfig_images2; + const imageData = nextConfig.images; + const { deviceSizes = [], imageSizes = [], domains = [], minimumCacheTTL = 14400, formats = [ + 'image/webp' + ] } = imageData; + const remotePatterns = ((_nextConfig_images = nextConfig.images) == null ? void 0 : _nextConfig_images.remotePatterns) || []; + const localPatterns = (_nextConfig_images1 = nextConfig.images) == null ? void 0 : _nextConfig_images1.localPatterns; + const qualities = (_nextConfig_images2 = nextConfig.images) == null ? void 0 : _nextConfig_images2.qualities; + const { url, w, q } = query; + let href; + if (domains.length > 0) { + _log.warnOnce('The "images.domains" configuration is deprecated. Please use "images.remotePatterns" configuration instead.'); + } + if (!url) { + return { + errorMessage: '"url" parameter is required' + }; + } else if (Array.isArray(url)) { + return { + errorMessage: '"url" parameter cannot be an array' + }; + } + if (url.length > 3072) { + return { + errorMessage: '"url" parameter is too long' + }; + } + if (url.startsWith('//')) { + return { + errorMessage: '"url" parameter cannot be a protocol-relative URL (//)' + }; + } + let isAbsolute; + if (url.startsWith('/')) { + var _parseUrl; + href = url; + isAbsolute = false; + if (/\/_next\/image($|\/)/.test(decodeURIComponent(((_parseUrl = (0, _url1.parseUrl)(url)) == null ? void 0 : _parseUrl.pathname) ?? ''))) { + return { + errorMessage: '"url" parameter cannot be recursive' + }; + } + if (!(0, _matchlocalpattern.hasLocalMatch)(localPatterns, url)) { + return { + errorMessage: '"url" parameter is not allowed' + }; + } + } else { + let hrefParsed; + try { + hrefParsed = new URL(url); + href = hrefParsed.toString(); + isAbsolute = true; + } catch (_error) { + return { + errorMessage: '"url" parameter is invalid' + }; + } + if (![ + 'http:', + 'https:' + ].includes(hrefParsed.protocol)) { + return { + errorMessage: '"url" parameter is invalid' + }; + } + if (!(0, _matchremotepattern.hasRemoteMatch)(domains, remotePatterns, hrefParsed)) { + return { + errorMessage: '"url" parameter is not allowed' + }; + } + } + if (!w) { + return { + errorMessage: '"w" parameter (width) is required' + }; + } else if (Array.isArray(w)) { + return { + errorMessage: '"w" parameter (width) cannot be an array' + }; + } else if (!/^[0-9]+$/.test(w)) { + return { + errorMessage: '"w" parameter (width) must be an integer greater than 0' + }; + } + if (!q) { + return { + errorMessage: '"q" parameter (quality) is required' + }; + } else if (Array.isArray(q)) { + return { + errorMessage: '"q" parameter (quality) cannot be an array' + }; + } else if (!/^[0-9]+$/.test(q)) { + return { + errorMessage: '"q" parameter (quality) must be an integer between 1 and 100' + }; + } + const width = parseInt(w, 10); + if (width <= 0 || isNaN(width)) { + return { + errorMessage: '"w" parameter (width) must be an integer greater than 0' + }; + } + const sizes = [ + ...deviceSizes || [], + ...imageSizes || [] + ]; + if (isDev) { + sizes.push(BLUR_IMG_SIZE); + } + const isValidSize = sizes.includes(width) || isDev && width <= BLUR_IMG_SIZE; + if (!isValidSize) { + return { + errorMessage: `"w" parameter (width) of ${width} is not allowed` + }; + } + const quality = parseInt(q, 10); + if (isNaN(quality) || quality < 1 || quality > 100) { + return { + errorMessage: '"q" parameter (quality) must be an integer between 1 and 100' + }; + } + if (qualities) { + if (isDev) { + qualities.push(BLUR_QUALITY); + } + if (!qualities.includes(quality)) { + return { + errorMessage: `"q" parameter (quality) of ${q} is not allowed` + }; + } + } + const mimeType = getSupportedMimeType(formats || [], req.headers['accept']); + const isStatic = url.startsWith(`${nextConfig.basePath || ''}/_next/static/media`); + return { + href, + sizes, + isAbsolute, + isStatic, + width, + quality, + mimeType, + minimumCacheTTL + }; + } + static getCacheKey({ href, width, quality, mimeType }) { + return getHash([ + CACHE_VERSION, + href, + width, + quality, + mimeType + ]); + } + constructor({ distDir, nextConfig, cacheHandler }){ + this.cacheDir = (0, _path.join)(/* turbopackIgnore: true */ distDir, 'cache', 'images'); + this.nextConfig = nextConfig; + this.cacheHandler = cacheHandler; + // Eagerly start LRU initialization for filesystem cache + if (!cacheHandler && nextConfig.images.maximumDiskCacheSize !== 0 && nextConfig.experimental.isrFlushToDisk) { + this.isDiskCacheEnabled = true; + this.cacheDiskLRU = (0, _disklrucacheexternal.getOrInitDiskLRU)(this.cacheDir, nextConfig.images.maximumDiskCacheSize, initCacheEntries, deleteFromCacheDir); + } + } + async get(cacheKey) { + // If a custom cache handler is provided, use it + if (this.cacheHandler) { + try { + const cacheData = await this.cacheHandler.get(cacheKey, { + kind: _responsecache.IncrementalCacheKind.IMAGE, + isFallback: false + }); + if (!(cacheData == null ? void 0 : cacheData.value)) { + return null; + } + if (cacheData.value.kind !== _responsecache.CachedRouteKind.IMAGE) { + return null; + } + const now = Date.now(); + const lastModified = cacheData.lastModified || now; + const revalidate = typeof cacheData.value.revalidate === 'number' ? cacheData.value.revalidate : this.nextConfig.images.minimumCacheTTL; + const revalidateAfter = Math.max(revalidate, this.nextConfig.images.minimumCacheTTL) * 1000 + lastModified; + const isStale = revalidateAfter < now; + return { + value: cacheData.value, + revalidateAfter, + cacheControl: { + revalidate, + expire: undefined + }, + isStale + }; + } catch (_) { + // failed to get from custom cache handler, treat as cache miss + } + return null; + } + // If the filesystem cache is disabled, return early + if (!this.isDiskCacheEnabled) { + return null; + } + // Fall back to filesystem cache + try { + const now = Date.now(); + const { maxAge, expireAt, etag, upstreamEtag, buffer, extension } = await readFromCacheDir(this.cacheDir, cacheKey); + // Promote entry in LRU (mark as recently used) + const lru = await this.cacheDiskLRU; + lru == null ? void 0 : lru.get(cacheKey); + return { + value: { + kind: _responsecache.CachedRouteKind.IMAGE, + etag, + buffer, + extension, + upstreamEtag + }, + revalidateAfter: Math.max(maxAge, this.nextConfig.images.minimumCacheTTL) * 1000 + Date.now(), + cacheControl: { + revalidate: maxAge, + expire: undefined + }, + isStale: now > expireAt + }; + } catch (_) { + // failed to read from cache dir, treat as cache miss + } + return null; + } + async set(cacheKey, value, { cacheControl }) { + if ((value == null ? void 0 : value.kind) !== _responsecache.CachedRouteKind.IMAGE) { + throw Object.defineProperty(new Error('invariant attempted to set non-image to image-cache'), "__NEXT_ERROR_CODE", { + value: "E366", + enumerable: false, + configurable: true + }); + } + const revalidate = cacheControl == null ? void 0 : cacheControl.revalidate; + if (typeof revalidate !== 'number') { + throw Object.defineProperty(new _invarianterror.InvariantError('revalidate must be a number for image-cache'), "__NEXT_ERROR_CODE", { + value: "E657", + enumerable: false, + configurable: true + }); + } + // If a custom cache handler is provided, use it + if (this.cacheHandler) { + try { + // Apply minimumCacheTTL at write time, similar to the implementation in the fallback filesystem cache + const effectiveRevalidate = Math.max(revalidate, this.nextConfig.images.minimumCacheTTL); + const valueWithRevalidate = { + ...value, + revalidate: effectiveRevalidate + }; + await this.cacheHandler.set(cacheKey, valueWithRevalidate, { + cacheControl: { + revalidate: effectiveRevalidate, + expire: cacheControl == null ? void 0 : cacheControl.expire + } + }); + } catch (err) { + _log.error(`Failed to write image to custom cache ${cacheKey}`, err); + } + return; + } + // If the filesystem cache is disabled, return early + if (!this.isDiskCacheEnabled) { + return; + } + // Fall back to filesystem cache + const expireAt = Math.max(revalidate, this.nextConfig.images.minimumCacheTTL) * 1000 + Date.now(); + try { + const lru = await this.cacheDiskLRU; + const success = lru == null ? void 0 : lru.set(cacheKey, value.buffer.byteLength); + if (success === false) { + throw Object.defineProperty(new Error(`image of size ${value.buffer.byteLength} could not be tracked by lru cache`), "__NEXT_ERROR_CODE", { + value: "E1070", + enumerable: false, + configurable: true + }); + } + await writeToCacheDir(this.cacheDir, cacheKey, value.extension, revalidate, expireAt, value.buffer, value.etag, value.upstreamEtag); + } catch (err) { + _log.error(`Failed to write image to cache ${cacheKey}`, err); + } + } +} +class ImageError extends Error { + constructor(statusCode, message){ + super(message); + // ensure an error status is used > 400 + if (statusCode >= 400) { + this.statusCode = statusCode; + } else { + this.statusCode = 500; + } + } +} +function parseCacheControl(str) { + const map = new Map(); + if (!str) { + return map; + } + for (let directive of str.split(',')){ + let [key, value] = directive.trim().split('=', 2); + key = key.toLowerCase(); + if (value) { + value = value.toLowerCase(); + } + map.set(key, value); + } + return map; +} +function getMaxAge(str) { + const map = parseCacheControl(str); + if (map) { + let age = map.get('s-maxage') || map.get('max-age') || ''; + if (age.startsWith('"') && age.endsWith('"')) { + age = age.slice(1, -1); + } + const n = parseInt(age, 10); + if (!isNaN(n)) { + return n; + } + } + return 0; +} +function getPreviouslyCachedImageOrNull(upstreamImage, previousCacheEntry) { + var _previousCacheEntry_value; + if ((previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === 'IMAGE' && // Images that are SVGs, animated or failed the optimization previously end up using upstreamEtag as their etag as well, + // in these cases we want to trigger a new "optimization" attempt. + previousCacheEntry.value.upstreamEtag !== previousCacheEntry.value.etag && // and the upstream etag is the same as the previous cache entry's + upstreamImage.etag === previousCacheEntry.value.upstreamEtag) { + return previousCacheEntry.value; + } + return null; +} +async function optimizeImage({ buffer, contentType, quality, width, height, concurrency, limitInputPixels, sequentialRead, timeoutInSeconds }) { + const sharp = getSharp(concurrency); + const transformer = sharp(buffer, { + limitInputPixels, + sequentialRead: sequentialRead ?? undefined + }).timeout({ + seconds: timeoutInSeconds ?? 7 + }).rotate(); + if (height) { + transformer.resize(width, height); + } else { + transformer.resize(width, undefined, { + withoutEnlargement: true + }); + } + if (contentType === AVIF) { + transformer.avif({ + quality: Math.max(quality - 20, 1), + effort: 3 + }); + } else if (contentType === WEBP) { + transformer.webp({ + quality + }); + } else if (contentType === PNG) { + transformer.png({ + quality + }); + } else if (contentType === JPEG) { + transformer.jpeg({ + quality, + mozjpeg: true + }); + } + const optimizedBuffer = await transformer.toBuffer(); + return optimizedBuffer; +} +function isRedirect(statusCode) { + return [ + 301, + 302, + 303, + 307, + 308 + ].includes(statusCode); +} +async function fetchExternalImage(href, dangerouslyAllowLocalIP, maximumResponseBody, count = 3) { + if (!dangerouslyAllowLocalIP) { + const { hostname } = new URL(href); + let ips = [ + hostname + ]; + if (!(0, _net.isIP)(hostname)) { + const records = await (0, _promises.lookup)(hostname, { + family: 0, + all: true, + hints: _dns.ALL + }).catch((_)=>[ + { + address: hostname + } + ]); + ips = records.map((record)=>record.address); + } + const privateIps = ips.filter((ip)=>(0, _isprivateip.isPrivateIp)(ip)); + if (privateIps.length > 0) { + _log.error('upstream image', href, 'resolved to private ip', JSON.stringify(privateIps)); + throw Object.defineProperty(new ImageError(400, '"url" parameter is not allowed'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + } + const res = await fetch(href, { + signal: AbortSignal.timeout(7000), + redirect: 'manual' + }).catch((err)=>err); + if (res instanceof Error) { + const err = res; + if (err.name === 'TimeoutError') { + _log.error('upstream image response timed out for', href); + throw Object.defineProperty(new ImageError(504, '"url" parameter is valid but upstream response timed out'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + throw err; + } + const locationHeader = res.headers.get('Location'); + if (isRedirect(res.status) && locationHeader && URL.canParse(locationHeader, href)) { + if (count === 0) { + _log.error('upstream image response had too many redirects', href); + throw Object.defineProperty(new ImageError(508, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + const redirect = new URL(locationHeader, href).href; + return fetchExternalImage(redirect, dangerouslyAllowLocalIP, maximumResponseBody, count - 1); + } + if (!res.ok) { + _log.error('upstream image response failed for', href, res.status); + throw Object.defineProperty(new ImageError(res.status, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (!res.body) { + _log.error('upstream image response is empty for', href); + throw Object.defineProperty(new ImageError(400, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + const chunks = []; + let totalSize = 0; + for await (const c of res.body){ + const chunk = Buffer.from(c); + totalSize += chunk.byteLength; + if (totalSize > maximumResponseBody) { + _log.error('upstream image response exceeded maximum size for', href, totalSize); + throw Object.defineProperty(new ImageError(413, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + chunks.push(chunk); + } + const buffer = Buffer.concat(chunks); + const contentType = res.headers.get('Content-Type'); + const cacheControl = res.headers.get('Cache-Control'); + const etag = extractEtag(res.headers.get('ETag'), buffer); + return { + buffer, + contentType, + cacheControl, + etag + }; +} +async function fetchInternalImage(href, _req, _res, handleRequest) { + try { + // Coerce HEAD to GET to avoid issues with the image optimizer + const method = !_req.method || _req.method === 'HEAD' ? 'GET' : _req.method; + const mocked = (0, _mockrequest.createRequestResponseMocks)({ + url: href, + method, + socket: _req.socket + }); + await handleRequest(mocked.req, mocked.res, _url.default.parse(href, true)); + await mocked.res.hasStreamed; + if (!mocked.res.statusCode) { + _log.error('image response failed for', href, mocked.res.statusCode); + throw Object.defineProperty(new ImageError(mocked.res.statusCode, '"url" parameter is valid but internal response is invalid'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + const buffer = Buffer.concat(mocked.res.buffers); + const contentType = mocked.res.getHeader('Content-Type'); + const cacheControl = mocked.res.getHeader('Cache-Control'); + const etag = extractEtag(mocked.res.getHeader('ETag'), buffer); + return { + buffer, + contentType, + cacheControl, + etag + }; + } catch (err) { + _log.error('upstream image response failed for', href, err); + throw Object.defineProperty(new ImageError(500, '"url" parameter is valid but upstream response is invalid'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } +} +async function imageOptimizer(imageUpstream, paramsResult, nextConfig, opts) { + const { href, quality, width, mimeType } = paramsResult; + const { buffer: upstreamBuffer, etag: upstreamEtag } = imageUpstream; + const maxAge = Math.max(nextConfig.images.minimumCacheTTL, getMaxAge(imageUpstream.cacheControl)); + const upstreamType = await detectContentType(upstreamBuffer, nextConfig.experimental.imgOptSkipMetadata, nextConfig.experimental.imgOptConcurrency); + if (!upstreamType || !upstreamType.startsWith('image/') || upstreamType.includes(',')) { + if (!opts.silent) { + _log.error("The requested resource isn't a valid image for", href, 'received', upstreamType); + } + throw Object.defineProperty(new ImageError(400, "The requested resource isn't a valid image."), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (upstreamType.startsWith('image/svg') && !nextConfig.images.dangerouslyAllowSVG) { + if (!opts.silent) { + _log.error(`The requested resource "${href}" has type "${upstreamType}" but dangerouslyAllowSVG is disabled. Consider adding the "unoptimized" property to the .`); + } + throw Object.defineProperty(new ImageError(400, '"url" parameter is valid but image type is not allowed'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (ANIMATABLE_TYPES.includes(upstreamType) && (0, _isanimated.default)(upstreamBuffer)) { + if (!opts.silent) { + _log.warnOnce(`The requested resource "${href}" is an animated image so it will not be optimized. Consider adding the "unoptimized" property to the .`); + } + return { + buffer: upstreamBuffer, + contentType: upstreamType, + maxAge, + etag: upstreamEtag, + upstreamEtag + }; + } + if (BYPASS_TYPES.includes(upstreamType)) { + return { + buffer: upstreamBuffer, + contentType: upstreamType, + maxAge, + etag: upstreamEtag, + upstreamEtag + }; + } + let contentType; + if (mimeType) { + contentType = mimeType; + } else if ((0, _servestatic.getExtension)(upstreamType) && upstreamType !== WEBP && upstreamType !== AVIF) { + contentType = upstreamType; + } else { + contentType = JPEG; + } + const previouslyCachedImage = getPreviouslyCachedImageOrNull(imageUpstream, opts.previousCacheEntry); + if (previouslyCachedImage) { + var _opts_previousCacheEntry_cacheControl, _opts_previousCacheEntry; + return { + buffer: previouslyCachedImage.buffer, + contentType, + maxAge: (opts == null ? void 0 : (_opts_previousCacheEntry = opts.previousCacheEntry) == null ? void 0 : (_opts_previousCacheEntry_cacheControl = _opts_previousCacheEntry.cacheControl) == null ? void 0 : _opts_previousCacheEntry_cacheControl.revalidate) || maxAge, + etag: previouslyCachedImage.etag, + upstreamEtag: previouslyCachedImage.upstreamEtag + }; + } + try { + let optimizedBuffer = await optimizeImage({ + buffer: upstreamBuffer, + contentType, + quality, + width, + concurrency: nextConfig.experimental.imgOptConcurrency, + limitInputPixels: nextConfig.experimental.imgOptMaxInputPixels, + sequentialRead: nextConfig.experimental.imgOptSequentialRead, + timeoutInSeconds: nextConfig.experimental.imgOptTimeoutInSeconds + }); + if (opts.isDev && width <= BLUR_IMG_SIZE && quality === BLUR_QUALITY) { + // During `next dev`, we don't want to generate blur placeholders with webpack + // because it can delay starting the dev server. Instead, `next-image-loader.js` + // will inline a special url to lazily generate the blur placeholder at request time. + const meta = await getImageSize(optimizedBuffer); + const blurOpts = { + blurWidth: meta.width, + blurHeight: meta.height, + blurDataURL: `data:${contentType};base64,${optimizedBuffer.toString('base64')}` + }; + optimizedBuffer = Buffer.from(unescape((0, _imageblursvg.getImageBlurSvg)(blurOpts))); + contentType = 'image/svg+xml'; + } + return { + buffer: optimizedBuffer, + contentType, + maxAge, + etag: getImageEtag(optimizedBuffer), + upstreamEtag + }; + } catch (error) { + if (upstreamType) { + // If we fail to optimize, fallback to the original image + return { + buffer: upstreamBuffer, + contentType: upstreamType, + maxAge: nextConfig.images.minimumCacheTTL, + etag: upstreamEtag, + upstreamEtag, + error + }; + } else { + throw Object.defineProperty(new ImageError(400, 'Unable to optimize image and unable to fallback to upstream image'), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + } +} +function getFileNameWithExtension(url, contentType) { + const [urlWithoutQueryParams] = url.split('?', 1); + const fileNameWithExtension = urlWithoutQueryParams.split('/').pop(); + if (!contentType || !fileNameWithExtension) { + return 'image.bin'; + } + const [fileName] = fileNameWithExtension.split('.', 1); + const extension = (0, _servestatic.getExtension)(contentType); + return `${fileName}.${extension}`; +} +function setResponseHeaders(req, res, url, etag, contentType, isStatic, xCache, imagesConfig, maxAge, isDev) { + res.setHeader('Vary', 'Accept'); + res.setHeader('Cache-Control', isStatic ? 'public, max-age=315360000, immutable' : `public, max-age=${isDev ? 0 : maxAge}, must-revalidate`); + if ((0, _sendpayload.sendEtagResponse)(req, res, etag)) { + // already called res.end() so we're finished + return { + finished: true + }; + } + if (contentType) { + res.setHeader('Content-Type', contentType); + } + const fileName = getFileNameWithExtension(url, contentType); + res.setHeader('Content-Disposition', (0, _contentdisposition.default)(fileName, { + type: imagesConfig.contentDispositionType + })); + res.setHeader('Content-Security-Policy', imagesConfig.contentSecurityPolicy); + res.setHeader('X-Nextjs-Cache', xCache); + return { + finished: false + }; +} +function sendResponse(req, res, url, extension, buffer, etag, isStatic, xCache, imagesConfig, maxAge, isDev) { + const contentType = (0, _servestatic.getContentType)(extension); + const result = setResponseHeaders(req, res, url, etag, contentType, isStatic, xCache, imagesConfig, maxAge, isDev); + if (!result.finished) { + res.setHeader('Content-Length', Buffer.byteLength(buffer)); + // A response body must not be sent for HEAD requests + if (req.method === 'HEAD') { + res.end(); + } else { + res.end(buffer); + } + } +} +async function getImageSize(buffer) { + const { width, height } = (0, _imagesize.default)(buffer); + return { + width, + height + }; +} + +//# sourceMappingURL=image-optimizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/instrumentation/utils.js b/cli/app/node_modules/next/dist/server/instrumentation/utils.js new file mode 100644 index 00000000000..a0768225db3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/instrumentation/utils.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRevalidateReason", { + enumerable: true, + get: function() { + return getRevalidateReason; + } +}); +function getRevalidateReason(params) { + if (params.isOnDemandRevalidate) { + return 'on-demand'; + } + if (params.isStaticGeneration) { + return 'stale'; + } + return undefined; +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/internal-utils.js b/cli/app/node_modules/next/dist/server/internal-utils.js new file mode 100644 index 00000000000..c5ae3ba24dd --- /dev/null +++ b/cli/app/node_modules/next/dist/server/internal-utils.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + stripInternalQueries: null, + stripInternalSearchParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + stripInternalQueries: function() { + return stripInternalQueries; + }, + stripInternalSearchParams: function() { + return stripInternalSearchParams; + } +}); +const _approuterheaders = require("../client/components/app-router-headers"); +const INTERNAL_QUERY_NAMES = [ + _approuterheaders.NEXT_RSC_UNION_QUERY +]; +function stripInternalQueries(query) { + for (const name of INTERNAL_QUERY_NAMES){ + delete query[name]; + } +} +function stripInternalSearchParams(url) { + const isStringUrl = typeof url === 'string'; + const instance = isStringUrl ? new URL(url) : url; + instance.searchParams.delete(_approuterheaders.NEXT_RSC_UNION_QUERY); + return isStringUrl ? instance.toString() : instance; +} + +//# sourceMappingURL=internal-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/is-private-ip.js b/cli/app/node_modules/next/dist/server/is-private-ip.js new file mode 100644 index 00000000000..0cc0d764cd5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/is-private-ip.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isPrivateIp", { + enumerable: true, + get: function() { + return isPrivateIp; + } +}); +const _ipaddr = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/ipaddr.js")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function isPrivateIp(ip) { + if (ip.startsWith('[') && ip.endsWith(']')) { + ip = ip.slice(1, -1); + } + if (!_ipaddr.default.isValid(ip)) { + return false; + } + try { + let addr = _ipaddr.default.parse(ip); + if (addr.kind() === 'ipv6' && addr.isIPv4MappedAddress()) { + addr = addr.toIPv4Address(); + } + const range = addr.range(); + return range !== 'unicast'; + } catch (e) { + return false; + } +} + +//# sourceMappingURL=is-private-ip.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/app-dir-module.js b/cli/app/node_modules/next/dist/server/lib/app-dir-module.js new file mode 100644 index 00000000000..7fadeba35a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/app-dir-module.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getComponentTypeModule: null, + getLayoutOrPageModule: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getComponentTypeModule: function() { + return getComponentTypeModule; + }, + getLayoutOrPageModule: function() { + return getLayoutOrPageModule; + } +}); +const _segment = require("../../shared/lib/segment"); +async function getLayoutOrPageModule(loaderTree) { + const { layout, page, defaultPage } = loaderTree[2]; + const isLayout = typeof layout !== 'undefined'; + const isPage = typeof page !== 'undefined'; + const isDefaultPage = typeof defaultPage !== 'undefined' && loaderTree[0] === _segment.DEFAULT_SEGMENT_KEY; + let mod = undefined; + let modType = undefined; + let filePath = undefined; + if (isLayout) { + mod = await layout[0](); + modType = 'layout'; + filePath = layout[1]; + } else if (isPage) { + mod = await page[0](); + modType = 'page'; + filePath = page[1]; + } else if (isDefaultPage) { + mod = await defaultPage[0](); + modType = 'page'; + filePath = defaultPage[1]; + } + return { + mod, + modType, + filePath + }; +} +async function getComponentTypeModule(loaderTree, moduleType) { + const { [moduleType]: module1 } = loaderTree[2]; + if (typeof module1 !== 'undefined') { + return await module1[0](); + } + return undefined; +} + +//# sourceMappingURL=app-dir-module.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/app-info-log.js b/cli/app/node_modules/next/dist/server/lib/app-info-log.js new file mode 100644 index 00000000000..277214b1cd6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/app-info-log.js @@ -0,0 +1,132 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getEnvInfo: null, + logExperimentalInfo: null, + logStartInfo: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getEnvInfo: function() { + return getEnvInfo; + }, + logExperimentalInfo: function() { + return logExperimentalInfo; + }, + logStartInfo: function() { + return logStartInfo; + } +}); +const _env = require("@next/env"); +const _inspector = /*#__PURE__*/ _interop_require_wildcard(require("inspector")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _picocolors = require("../../lib/picocolors"); +const _configschema = require("../config-schema"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function logStartInfo({ networkUrl, appUrl, envInfo, logBundler }) { + let versionSuffix = ''; + const parts = []; + if (logBundler) { + if (process.env.TURBOPACK) { + parts.push('Turbopack'); + } else if (process.env.NEXT_RSPACK) { + parts.push('Rspack'); + } else { + parts.push('webpack'); + } + } + if (parts.length > 0) { + versionSuffix = ` (${parts.join(', ')})`; + } + _log.bootstrap(`${(0, _picocolors.bold)((0, _picocolors.purple)(`${_log.prefixes.ready} Next.js ${"16.2.1"}`))}${versionSuffix}`); + if (appUrl) { + _log.bootstrap(`- Local: ${appUrl}`); + } + if (networkUrl) { + _log.bootstrap(`- Network: ${networkUrl}`); + } + const inspectorUrl = _inspector.url(); + if (inspectorUrl) { + // Could also parse this port from the inspector URL. + // process.debugPort will always be defined even if the process is not being inspected. + // The full URL seems noisy as far as I can tell. + // Node.js will print the full URL anyway. + const debugPort = process.debugPort; + _log.bootstrap(`- Debugger port: ${debugPort}`); + } + if (envInfo == null ? void 0 : envInfo.length) _log.bootstrap(`- Environments: ${envInfo.join(', ')}`); +} +function logExperimentalInfo({ experimentalFeatures, cacheComponents }) { + if (cacheComponents) { + _log.bootstrap(`- Cache Components enabled`); + } + if (experimentalFeatures == null ? void 0 : experimentalFeatures.length) { + _log.bootstrap(`- Experiments (use with caution):`); + for (const exp of experimentalFeatures){ + const isValid = Object.prototype.hasOwnProperty.call(_configschema.experimentalSchema, exp.key); + if (isValid) { + const symbol = typeof exp.value === 'boolean' ? exp.value === true ? (0, _picocolors.bold)('✓') : (0, _picocolors.bold)('⨯') : '·'; + const suffix = typeof exp.value === 'number' || typeof exp.value === 'string' ? `: ${JSON.stringify(exp.value)}` : ''; + const reason = exp.reason ? ` (${exp.reason})` : ''; + _log.bootstrap(` ${symbol} ${exp.key}${suffix}${reason}`); + } else { + _log.bootstrap(` ? ${(0, _picocolors.strikethrough)(exp.key)} (invalid experimental key)`); + } + } + } + // New line after the bootstrap info + _log.info(''); +} +function getEnvInfo(dir) { + const { loadedEnvFiles } = (0, _env.loadEnvConfig)(dir, true, console, false); + return loadedEnvFiles.map((f)=>f.path); +} + +//# sourceMappingURL=app-info-log.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/async-callback-set.js b/cli/app/node_modules/next/dist/server/lib/async-callback-set.js new file mode 100644 index 00000000000..b6a35e5c93a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/async-callback-set.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AsyncCallbackSet", { + enumerable: true, + get: function() { + return AsyncCallbackSet; + } +}); +class AsyncCallbackSet { + add(callback) { + this.callbacks.push(callback); + } + async runAll() { + if (!this.callbacks.length) { + return; + } + const callbacks = this.callbacks; + this.callbacks = []; + await Promise.allSettled(callbacks.map(// NOTE: wrapped in an async function to protect against synchronous exceptions + async (f)=>f())); + } + constructor(){ + this.callbacks = []; + } +} + +//# sourceMappingURL=async-callback-set.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/cache-control.js b/cli/app/node_modules/next/dist/server/lib/cache-control.js new file mode 100644 index 00000000000..506a8b92d5d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/cache-control.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getCacheControlHeader", { + enumerable: true, + get: function() { + return getCacheControlHeader; + } +}); +const _constants = require("../../lib/constants"); +function getCacheControlHeader({ revalidate, expire }) { + const swrHeader = typeof revalidate === 'number' && expire !== undefined && revalidate < expire ? `, stale-while-revalidate=${expire - revalidate}` : ''; + if (revalidate === 0) { + return 'private, no-cache, no-store, max-age=0, must-revalidate'; + } else if (typeof revalidate === 'number') { + return `s-maxage=${revalidate}${swrHeader}`; + } + return `s-maxage=${_constants.CACHE_ONE_YEAR_SECONDS}${swrHeader}`; +} + +//# sourceMappingURL=cache-control.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/cache-handlers/default.js b/cli/app/node_modules/next/dist/server/lib/cache-handlers/default.js new file mode 100644 index 00000000000..3a15a22ee93 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/cache-handlers/default.js @@ -0,0 +1,160 @@ +/** + * This is the default "use cache" handler it defaults to an in-memory store. + * In-memory caches are fragile and should not use stale-while-revalidate + * semantics on the caches because it's not worth warming up an entry that's + * likely going to get evicted before we get to use it anyway. However, we also + * don't want to reuse a stale entry for too long so stale entries should be + * considered expired/missing in such cache handlers. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createDefaultCacheHandler", { + enumerable: true, + get: function() { + return createDefaultCacheHandler; + } +}); +const _lrucache = require("../lru-cache"); +const _tagsmanifestexternal = require("../incremental-cache/tags-manifest.external"); +function createDefaultCacheHandler(maxSize) { + // If the max size is 0, return a cache handler that doesn't cache anything, + // this avoids an unnecessary LRUCache instance and potential memory + // allocation. + if (maxSize === 0) { + return { + get: ()=>Promise.resolve(undefined), + set: ()=>Promise.resolve(), + refreshTags: ()=>Promise.resolve(), + getExpiration: ()=>Promise.resolve(0), + updateTags: ()=>Promise.resolve() + }; + } + const memoryCache = new _lrucache.LRUCache(maxSize, (entry)=>entry.size); + const pendingSets = new Map(); + const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE ? console.debug.bind(console, 'DefaultCacheHandler:') : undefined; + return { + async get (cacheKey) { + const pendingPromise = pendingSets.get(cacheKey); + if (pendingPromise) { + debug == null ? void 0 : debug('get', cacheKey, 'pending'); + await pendingPromise; + } + const privateEntry = memoryCache.get(cacheKey); + if (!privateEntry) { + debug == null ? void 0 : debug('get', cacheKey, 'not found'); + return undefined; + } + const entry = privateEntry.entry; + if (performance.timeOrigin + performance.now() > entry.timestamp + entry.revalidate * 1000) { + // In-memory caches should expire after revalidate time because it is + // unlikely that a new entry will be able to be used before it is dropped + // from the cache. + debug == null ? void 0 : debug('get', cacheKey, 'expired'); + return undefined; + } + let revalidate = entry.revalidate; + if ((0, _tagsmanifestexternal.areTagsExpired)(entry.tags, entry.timestamp)) { + debug == null ? void 0 : debug('get', cacheKey, 'had expired tag'); + return undefined; + } + if ((0, _tagsmanifestexternal.areTagsStale)(entry.tags, entry.timestamp)) { + debug == null ? void 0 : debug('get', cacheKey, 'had stale tag'); + revalidate = -1; + } + const [returnStream, newSaved] = entry.value.tee(); + entry.value = newSaved; + debug == null ? void 0 : debug('get', cacheKey, 'found', { + tags: entry.tags, + timestamp: entry.timestamp, + expire: entry.expire, + revalidate + }); + return { + ...entry, + revalidate, + value: returnStream + }; + }, + async set (cacheKey, pendingEntry) { + debug == null ? void 0 : debug('set', cacheKey, 'start'); + let resolvePending = ()=>{}; + const pendingPromise = new Promise((resolve)=>{ + resolvePending = resolve; + }); + pendingSets.set(cacheKey, pendingPromise); + const entry = await pendingEntry; + let size = 0; + try { + const [value, clonedValue] = entry.value.tee(); + entry.value = value; + const reader = clonedValue.getReader(); + for(let chunk; !(chunk = await reader.read()).done;){ + size += Buffer.from(chunk.value).byteLength; + } + memoryCache.set(cacheKey, { + entry, + isErrored: false, + errorRetryCount: 0, + size + }); + debug == null ? void 0 : debug('set', cacheKey, 'done'); + } catch (err) { + // TODO: store partial buffer with error after we retry 3 times + debug == null ? void 0 : debug('set', cacheKey, 'failed', err); + } finally{ + resolvePending(); + pendingSets.delete(cacheKey); + } + }, + async refreshTags () { + // Nothing to do for an in-memory cache handler. + }, + async getExpiration (tags) { + const expirations = tags.map((tag)=>{ + const entry = _tagsmanifestexternal.tagsManifest.get(tag); + if (!entry) return 0; + // Return the most recent timestamp (either expired or stale) + return entry.expired || 0; + }); + const expiration = Math.max(...expirations, 0); + debug == null ? void 0 : debug('getExpiration', { + tags, + expiration + }); + return expiration; + }, + async updateTags (tags, durations) { + const now = Math.round(performance.timeOrigin + performance.now()); + debug == null ? void 0 : debug('updateTags', { + tags, + timestamp: now + }); + for (const tag of tags){ + // TODO: update file-system-cache? + const existingEntry = _tagsmanifestexternal.tagsManifest.get(tag) || {}; + if (durations) { + // Use provided durations directly + const updates = { + ...existingEntry + }; + // mark as stale immediately + updates.stale = now; + if (durations.expire !== undefined) { + updates.expired = now + durations.expire * 1000 // Convert seconds to ms + ; + } + _tagsmanifestexternal.tagsManifest.set(tag, updates); + } else { + // Update expired field for immediate expiration (default behavior when no durations provided) + _tagsmanifestexternal.tagsManifest.set(tag, { + ...existingEntry, + expired: now + }); + } + } + } + }; +} + +//# sourceMappingURL=default.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/chrome-devtools-workspace.js b/cli/app/node_modules/next/dist/server/lib/chrome-devtools-workspace.js new file mode 100644 index 00000000000..70519778697 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/chrome-devtools-workspace.js @@ -0,0 +1,116 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handleChromeDevtoolsWorkspaceRequest: null, + isChromeDevtoolsWorkspaceUrl: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handleChromeDevtoolsWorkspaceRequest: function() { + return handleChromeDevtoolsWorkspaceRequest; + }, + isChromeDevtoolsWorkspaceUrl: function() { + return isChromeDevtoolsWorkspaceUrl; + } +}); +const _crypto = require("crypto"); +const _fs = /*#__PURE__*/ _interop_require_wildcard(require("fs")); +const _path = /*#__PURE__*/ _interop_require_wildcard(require("path")); +const _cachedir = require("../cache-dir"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// Keep the uuid in memory as it should never change during the lifetime of the server. +let workspaceUUID = null; +function isChromeDevtoolsWorkspaceUrl(pathname) { + return pathname === '/.well-known/appspecific/com.chrome.devtools.json'; +} +async function handleChromeDevtoolsWorkspaceRequest(response, opts, config) { + response.setHeader('Content-Type', 'application/json'); + response.end(JSON.stringify(await getChromeDevtoolsWorkspace(opts.dir, config.distDir), null, 2)); +} +/** + * For https://developer.chrome.com/docs/devtools/workspaces + */ async function getChromeDevtoolsWorkspace(root, configDistDir) { + if (workspaceUUID === null) { + const distDir = _path.join(root, configDistDir); + const cacheBaseDir = (0, _cachedir.getStorageDirectory)(distDir); + if (cacheBaseDir === undefined) { + workspaceUUID = (0, _crypto.randomUUID)(); + } else { + const cachedUUIDPath = _path.join(cacheBaseDir, 'chrome-devtools-workspace-uuid'); + try { + workspaceUUID = await _fs.promises.readFile(cachedUUIDPath, 'utf8'); + } catch { + // TODO: Why does this need to be v4 and not v5? + // With v5 we could base it off of the `distDir` and `root` which would + // allow us to persist the workspace across .next wipes. + workspaceUUID = (0, _crypto.randomUUID)(); + try { + await _fs.promises.writeFile(cachedUUIDPath, workspaceUUID, 'utf8'); + } catch (cause) { + console.warn(Object.defineProperty(new Error('Failed to persist Chrome DevTools workspace UUID. The Chrome DevTools Workspace needs to be reconnected after the next page reload.', { + cause + }), "__NEXT_ERROR_CODE", { + value: "E708", + enumerable: false, + configurable: true + })); + } + } + } + } + return { + workspace: { + uuid: workspaceUUID, + root + } + }; +} + +//# sourceMappingURL=chrome-devtools-workspace.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/clone-response.js b/cli/app/node_modules/next/dist/server/lib/clone-response.js new file mode 100644 index 00000000000..e283e8840ca --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/clone-response.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "cloneResponse", { + enumerable: true, + get: function() { + return cloneResponse; + } +}); +const noop = ()=>{}; +let registry; +if (globalThis.FinalizationRegistry) { + registry = new FinalizationRegistry((weakRef)=>{ + const stream = weakRef.deref(); + if (stream && !stream.locked) { + stream.cancel('Response object has been garbage collected').then(noop); + } + }); +} +function cloneResponse(original) { + // If the response has no body, then we can just return the original response + // twice because it's immutable. + if (!original.body) { + return [ + original, + original + ]; + } + const [body1, body2] = original.body.tee(); + const cloned1 = new Response(body1, { + status: original.status, + statusText: original.statusText, + headers: original.headers + }); + Object.defineProperty(cloned1, 'url', { + value: original.url, + // How the original response.url behaves + configurable: true, + enumerable: true, + writable: false + }); + const cloned2 = new Response(body2, { + status: original.status, + statusText: original.statusText, + headers: original.headers + }); + Object.defineProperty(cloned2, 'url', { + value: original.url, + // How the original response.url behaves + configurable: true, + enumerable: true, + writable: false + }); + // The Fetch Standard allows users to skip consuming the response body by + // relying on garbage collection to release connection resources. + // https://github.com/nodejs/undici?tab=readme-ov-file#garbage-collection + // + // To cancel the stream you then need to cancel both resulting branches. + // Teeing a stream will generally lock it for the duration, preventing other + // readers from locking it. + // https://developer.mozilla.org/en-US/docs/Web/API/ReadableStream/tee + if (registry) { + if (cloned1.body) { + registry.register(cloned1, new WeakRef(cloned1.body)); + } + if (cloned2.body) { + registry.register(cloned2, new WeakRef(cloned2.body)); + } + } + return [ + cloned1, + cloned2 + ]; +} + +//# sourceMappingURL=clone-response.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/cpu-profile.js b/cli/app/node_modules/next/dist/server/lib/cpu-profile.js new file mode 100644 index 00000000000..ae946c9f31f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/cpu-profile.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "saveCpuProfile", { + enumerable: true, + get: function() { + return saveCpuProfile; + } +}); +const privateCpuProfileName = process.env.__NEXT_PRIVATE_CPU_PROFILE; +const isCpuProfileEnabled = process.env.NEXT_CPU_PROF || privateCpuProfileName; +const cpuProfileDir = process.env.NEXT_CPU_PROF_DIR; +let session = null; +let profileSaved = false; +if (isCpuProfileEnabled) { + const { Session } = require('inspector'); + session = new Session(); + session.connect(); + session.post('Profiler.enable'); + session.post('Profiler.start'); + process.on('exit', ()=>{ + saveCpuProfile(); + }); +} +function saveCpuProfile() { + if (!session || profileSaved || !isCpuProfileEnabled) { + return; + } + profileSaved = true; + const fs = require('fs'); + const path = require('path'); + session.post('Profiler.stop', (error, param)=>{ + if (error) { + console.error('Cannot generate CPU profiling:', error); + return; + } + const timestamp = new Date().toISOString().replace(/[:.]/g, '-').slice(0, 19); + const baseName = privateCpuProfileName || 'cpu-profile'; + const filename = `${baseName}-${timestamp}.cpuprofile`; + let outputPath; + if (cpuProfileDir) { + if (!fs.existsSync(cpuProfileDir)) { + fs.mkdirSync(cpuProfileDir, { + recursive: true + }); + } + outputPath = path.join(cpuProfileDir, filename); + } else { + outputPath = `./${filename}`; + } + fs.writeFileSync(outputPath, JSON.stringify(param.profile)); + const { green } = require('../../lib/picocolors'); + console.log(`\n${green('CPU profile saved:')} ${outputPath}`); + console.log('Open in Chrome DevTools → Performance tab → Load profile'); + }); +} + +//# sourceMappingURL=cpu-profile.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/decode-query-path-parameter.js b/cli/app/node_modules/next/dist/server/lib/decode-query-path-parameter.js new file mode 100644 index 00000000000..0d3b7712b02 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/decode-query-path-parameter.js @@ -0,0 +1,26 @@ +/** + * Decodes a query path parameter. + * + * @param value - The value to decode. + * @returns The decoded value. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "decodeQueryPathParameter", { + enumerable: true, + get: function() { + return decodeQueryPathParameter; + } +}); +function decodeQueryPathParameter(value) { + // When deployed to Vercel, the value may be encoded, so this attempts to + // decode it and returns the original value if it fails. + try { + return decodeURIComponent(value); + } catch { + return value; + } +} + +//# sourceMappingURL=decode-query-path-parameter.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/dedupe-fetch.js b/cli/app/node_modules/next/dist/server/lib/dedupe-fetch.js new file mode 100644 index 00000000000..0392cded667 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/dedupe-fetch.js @@ -0,0 +1,163 @@ +/** + * Based on https://github.com/facebook/react/blob/d4e78c42a94be027b4dc7ed2659a5fddfbf9bd4e/packages/react/src/ReactFetch.js + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createDedupeFetch", { + enumerable: true, + get: function() { + return createDedupeFetch; + } +}); +const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); +const _cloneresponse = require("./clone-response"); +const _invarianterror = require("../../shared/lib/invariant-error"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const simpleCacheKey = '["GET",[],null,"follow",null,null,null,null]' // generateCacheKey(new Request('https://blank')); +; +// Headers that should not affect deduplication +// traceparent and tracestate are used for distributed tracing and should not affect cache keys +const headersToExcludeInCacheKey = new Set([ + 'traceparent', + 'tracestate' +]); +function generateCacheKey(request) { + // We pick the fields that goes into the key used to dedupe requests. + // We don't include the `cache` field, because we end up using whatever + // caching resulted from the first request. + // Notably we currently don't consider non-standard (or future) options. + // This might not be safe. TODO: warn for non-standard extensions differing. + // IF YOU CHANGE THIS UPDATE THE simpleCacheKey ABOVE. + const filteredHeaders = Array.from(request.headers.entries()).filter(([key])=>!headersToExcludeInCacheKey.has(key.toLowerCase())); + return JSON.stringify([ + request.method, + filteredHeaders, + request.mode, + request.redirect, + request.credentials, + request.referrer, + request.referrerPolicy, + request.integrity + ]); +} +function createDedupeFetch(originalFetch) { + const getCacheEntries = _react.cache(// eslint-disable-next-line @typescript-eslint/no-unused-vars -- url is the cache key + (url)=>[]); + return function dedupeFetch(resource, options) { + if (options && options.signal) { + // If we're passed a signal, then we assume that + // someone else controls the lifetime of this object and opts out of + // caching. It's effectively the opt-out mechanism. + // Ideally we should be able to check this on the Request but + // it always gets initialized with its own signal so we don't + // know if it's supposed to override - unless we also override the + // Request constructor. + return originalFetch(resource, options); + } + // Normalize the Request + let url; + let cacheKey; + if (typeof resource === 'string' && !options) { + // Fast path. + cacheKey = simpleCacheKey; + url = resource; + } else { + // Normalize the request. + // if resource is not a string or a URL (its an instance of Request) + // then do not instantiate a new Request but instead + // reuse the request as to not disturb the body in the event it's a ReadableStream. + const request = typeof resource === 'string' || resource instanceof URL ? new Request(resource, options) : resource; + if (request.method !== 'GET' && request.method !== 'HEAD' || request.keepalive) { + // We currently don't dedupe requests that might have side-effects. Those + // have to be explicitly cached. We assume that the request doesn't have a + // body if it's GET or HEAD. + // keepalive gets treated the same as if you passed a custom cache signal. + return originalFetch(resource, options); + } + cacheKey = generateCacheKey(request); + url = request.url; + } + const cacheEntries = getCacheEntries(url); + for(let i = 0, j = cacheEntries.length; i < j; i += 1){ + const [key, promise] = cacheEntries[i]; + if (key === cacheKey) { + return promise.then(()=>{ + const response = cacheEntries[i][2]; + if (!response) throw Object.defineProperty(new _invarianterror.InvariantError('No cached response'), "__NEXT_ERROR_CODE", { + value: "E579", + enumerable: false, + configurable: true + }); + // We're cloning the response using this utility because there exists + // a bug in the undici library around response cloning. See the + // following pull request for more details: + // https://github.com/vercel/next.js/pull/73274 + const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response); + cacheEntries[i][2] = cloned2; + return cloned1; + }); + } + } + // We pass the original arguments here in case normalizing the Request + // doesn't include all the options in this environment. + const promise = originalFetch(resource, options); + const entry = [ + cacheKey, + promise, + null + ]; + cacheEntries.push(entry); + return promise.then((response)=>{ + // We're cloning the response using this utility because there exists + // a bug in the undici library around response cloning. See the + // following pull request for more details: + // https://github.com/vercel/next.js/pull/73274 + const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(response); + entry[2] = cloned2; + return cloned1; + }); + }; +} + +//# sourceMappingURL=dedupe-fetch.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/dev-bundler-service.js b/cli/app/node_modules/next/dist/server/lib/dev-bundler-service.js new file mode 100644 index 00000000000..378eba33a22 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/dev-bundler-service.js @@ -0,0 +1,95 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevBundlerService", { + enumerable: true, + get: function() { + return DevBundlerService; + } +}); +const _lrucache = require("./lru-cache"); +const _mockrequest = require("./mock-request"); +const _hotreloadertypes = require("../dev/hot-reloader-types"); +class DevBundlerService { + constructor(bundler, handler){ + this.bundler = bundler; + this.handler = handler; + this.ensurePage = async (definition)=>{ + // TODO: remove after ensure is pulled out of server + return await this.bundler.hotReloader.ensurePage(definition); + }; + this.logErrorWithOriginalStack = this.bundler.logErrorWithOriginalStack.bind(this.bundler); + this.appIsrManifestInner = new _lrucache.LRUCache(8000, function length() { + return 16; + }); + const { hotReloader } = bundler; + this.close = hotReloader.close.bind(hotReloader); + this.setCacheStatus = hotReloader.setCacheStatus.bind(hotReloader); + this.setReactDebugChannel = hotReloader.setReactDebugChannel.bind(hotReloader); + this.sendErrorsToBrowser = hotReloader.sendErrorsToBrowser.bind(hotReloader); + } + async getFallbackErrorComponents(url) { + await this.bundler.hotReloader.buildFallbackError(); + // Build the error page to ensure the fallback is built too. + // TODO: See if this can be moved into hotReloader or removed. + await this.bundler.hotReloader.ensurePage({ + page: '/_error', + clientOnly: false, + definition: undefined, + url + }); + } + async getCompilationError(page) { + const errors = await this.bundler.hotReloader.getCompilationErrors(page); + if (!errors) return; + // Return the very first error we found. + return errors[0]; + } + async revalidate({ urlPath, headers, opts: revalidateOpts }) { + const mocked = (0, _mockrequest.createRequestResponseMocks)({ + url: urlPath, + headers + }); + await this.handler(mocked.req, mocked.res); + await mocked.res.hasStreamed; + if (mocked.res.getHeader('x-nextjs-cache') !== 'REVALIDATED' && mocked.res.statusCode !== 200 && !(mocked.res.statusCode === 404 && revalidateOpts.unstable_onlyGenerated)) { + throw Object.defineProperty(new Error(`Invalid response ${mocked.res.statusCode}`), "__NEXT_ERROR_CODE", { + value: "E175", + enumerable: false, + configurable: true + }); + } + return {}; + } + get appIsrManifest() { + const serializableManifest = {}; + for (const [key, value] of this.appIsrManifestInner){ + serializableManifest[key] = value; + } + return serializableManifest; + } + setIsrStatus(key, value) { + var // Only send the ISR manifest to legacy clients, i.e. Pages Router clients, + // or App Router clients that have Cache Components disabled. The ISR + // manifest is only used to inform the static indicator, which currently + // does not provide useful information if Cache Components is enabled due to + // its binary nature (i.e. it does not support showing info for partially + // static pages). + _this_bundler_hotReloader, _this_bundler; + if (value === undefined) { + this.appIsrManifestInner.remove(key); + } else { + this.appIsrManifestInner.set(key, value); + } + (_this_bundler = this.bundler) == null ? void 0 : (_this_bundler_hotReloader = _this_bundler.hotReloader) == null ? void 0 : _this_bundler_hotReloader.sendToLegacyClients({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST, + data: this.appIsrManifest + }); + } + sendHmrMessage(message) { + this.bundler.hotReloader.send(message); + } +} + +//# sourceMappingURL=dev-bundler-service.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/disk-lru-cache.external.js b/cli/app/node_modules/next/dist/server/lib/disk-lru-cache.external.js new file mode 100644 index 00000000000..fde1ef96d9d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/disk-lru-cache.external.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getOrInitDiskLRU: null, + resetDiskLRU: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getOrInitDiskLRU: function() { + return getOrInitDiskLRU; + }, + resetDiskLRU: function() { + return resetDiskLRU; + } +}); +const _fs = require("fs"); +const _lrucache = require("./lru-cache"); +/** + * Module-level LRU singleton for disk cache eviction. + * Initialized once on first `set()`, shared across all consumers. + * Once resolved, the promise stays resolved — subsequent calls just await the cached result. + */ let _diskLRUPromise = null; +async function getOrInitDiskLRU(cacheDir, maxDiskSize, readEntries, evictEntry) { + if (!_diskLRUPromise) { + _diskLRUPromise = (async ()=>{ + let maxSize = maxDiskSize; + if (typeof maxSize === 'undefined') { + // Ensure cacheDir exists before checking disk space + await _fs.promises.mkdir(cacheDir, { + recursive: true + }); + // Since config was not provided, default to 50% of available disk space + const { bavail, bsize } = await _fs.promises.statfs(cacheDir); + maxSize = Math.floor(bavail * bsize / 2); + } + const lru = new _lrucache.LRUCache(maxSize, (size)=>size, (cacheKey)=>evictEntry(cacheDir, cacheKey)); + const entries = await readEntries(cacheDir); + for (const entry of entries){ + lru.set(entry.key, entry.size); + } + return lru; + })(); + } + return _diskLRUPromise; +} +function resetDiskLRU() { + _diskLRUPromise = null; +} + +//# sourceMappingURL=disk-lru-cache.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/etag.js b/cli/app/node_modules/next/dist/server/lib/etag.js new file mode 100644 index 00000000000..236113311b2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/etag.js @@ -0,0 +1,56 @@ +/** + * FNV-1a Hash implementation + * @author Travis Webb (tjwebb) + * + * Ported from https://github.com/tjwebb/fnv-plus/blob/master/index.js + * + * Simplified, optimized and add modified for 52 bit, which provides a larger hash space + * and still making use of Javascript's 53-bit integer space. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + fnv1a52: null, + generateETag: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + fnv1a52: function() { + return fnv1a52; + }, + generateETag: function() { + return generateETag; + } +}); +const fnv1a52 = (str)=>{ + const len = str.length; + let i = 0, t0 = 0, v0 = 0x2325, t1 = 0, v1 = 0x8422, t2 = 0, v2 = 0x9ce4, t3 = 0, v3 = 0xcbf2; + while(i < len){ + v0 ^= str.charCodeAt(i++); + t0 = v0 * 435; + t1 = v1 * 435; + t2 = v2 * 435; + t3 = v3 * 435; + t2 += v0 << 8; + t3 += v1 << 8; + t1 += t0 >>> 16; + v0 = t0 & 65535; + t2 += t1 >>> 16; + v1 = t1 & 65535; + v3 = t3 + (t2 >>> 16) & 65535; + v2 = t2 & 65535; + } + return (v3 & 15) * 281474976710656 + v2 * 4294967296 + v1 * 65536 + (v0 ^ v3 >> 4); +}; +const generateETag = (payload, weak = false)=>{ + const prefix = weak ? 'W/"' : '"'; + return prefix + fnv1a52(payload).toString(36) + payload.length.toString(36) + '"'; +}; + +//# sourceMappingURL=etag.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/experimental/create-env-definitions.js b/cli/app/node_modules/next/dist/server/lib/experimental/create-env-definitions.js new file mode 100644 index 00000000000..9477f542967 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/experimental/create-env-definitions.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createEnvDefinitions", { + enumerable: true, + get: function() { + return createEnvDefinitions; + } +}); +const _nodepath = require("node:path"); +const _promises = require("node:fs/promises"); +async function createEnvDefinitions({ distDir, loadedEnvFiles }) { + const envLines = []; + const seenKeys = new Set(); + // env files are in order of priority + for (const { path, env } of loadedEnvFiles){ + for(const key in env){ + if (!seenKeys.has(key)) { + envLines.push(` /** Loaded from \`${path}\` */`); + envLines.push(` ${key}?: string`); + seenKeys.add(key); + } + } + } + const envStr = envLines.join('\n'); + const definitionStr = `// Type definitions for Next.js environment variables +declare global { + namespace NodeJS { + interface ProcessEnv { +${envStr} + } + } +} +export {}`; + if (process.env.NODE_ENV === 'test') { + return definitionStr; + } + try { + // we expect the types directory to already exist + const envDtsPath = (0, _nodepath.join)(distDir, 'types', 'env.d.ts'); + await (0, _promises.writeFile)(envDtsPath, definitionStr, 'utf-8'); + } catch (e) { + console.error('Failed to write env.d.ts:', e); + } +} + +//# sourceMappingURL=create-env-definitions.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/experimental/ppr.js b/cli/app/node_modules/next/dist/server/lib/experimental/ppr.js new file mode 100644 index 00000000000..841a1969607 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/experimental/ppr.js @@ -0,0 +1,47 @@ +/** + * If set to `incremental`, only those leaf pages that export + * `experimental_ppr = true` will have partial prerendering enabled. If any + * page exports this value as `false` or does not export it at all will not + * have partial prerendering enabled. If set to a boolean, the options for + * `experimental_ppr` will be ignored. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + checkIsAppPPREnabled: null, + checkIsRoutePPREnabled: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + checkIsAppPPREnabled: function() { + return checkIsAppPPREnabled; + }, + checkIsRoutePPREnabled: function() { + return checkIsRoutePPREnabled; + } +}); +function checkIsAppPPREnabled(config) { + // If the config is undefined, partial prerendering is disabled. + if (typeof config === 'undefined') return false; + // If the config is a boolean, use it directly. + if (typeof config === 'boolean') return config; + // If the config is a string, it must be 'incremental' to enable partial + // prerendering. + if (config === 'incremental') return true; + return false; +} +function checkIsRoutePPREnabled(config) { + // If the config is undefined, partial prerendering is disabled. + if (typeof config === 'undefined') return false; + // If the config is a boolean, use it directly. + if (typeof config === 'boolean') return config; + return false; +} + +//# sourceMappingURL=ppr.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/find-page-file.js b/cli/app/node_modules/next/dist/server/lib/find-page-file.js new file mode 100644 index 00000000000..466e5429ecb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/find-page-file.js @@ -0,0 +1,147 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createValidFileMatcher: null, + findPageFile: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createValidFileMatcher: function() { + return createValidFileMatcher; + }, + findPageFile: function() { + return findPageFile; + } +}); +const _fileexists = require("../../lib/file-exists"); +const _getpagepaths = require("../../shared/lib/page-path/get-page-paths"); +const _nonnullable = require("../../lib/non-nullable"); +const _path = require("path"); +const _fs = require("fs"); +const _log = require("../../build/output/log"); +const _picocolors = require("../../lib/picocolors"); +const _ismetadataroute = require("../../lib/metadata/is-metadata-route"); +const _escaperegexp = require("../../shared/lib/escape-regexp"); +async function isTrueCasePagePath(pagePath, pagesDir) { + const pageSegments = (0, _path.normalize)(pagePath).split(_path.sep).filter(Boolean); + const segmentExistsPromises = pageSegments.map(async (segment, i)=>{ + const segmentParentDir = (0, _path.join)(pagesDir, ...pageSegments.slice(0, i)); + const parentDirEntries = await _fs.promises.readdir(segmentParentDir); + return parentDirEntries.includes(segment); + }); + return (await Promise.all(segmentExistsPromises)).every(Boolean); +} +async function findPageFile(pagesDir, normalizedPagePath, pageExtensions, isAppDir) { + const pagePaths = (0, _getpagepaths.getPagePaths)(normalizedPagePath, pageExtensions, isAppDir); + const [existingPath, ...others] = (await Promise.all(pagePaths.map(async (path)=>{ + const filePath = (0, _path.join)(pagesDir, path); + try { + return await (0, _fileexists.fileExists)(filePath) ? path : null; + } catch (err) { + var _err_code; + if (!(err == null ? void 0 : (_err_code = err.code) == null ? void 0 : _err_code.includes('ENOTDIR'))) throw err; + } + return null; + }))).filter(_nonnullable.nonNullable); + if (!existingPath) { + return null; + } + if (!await isTrueCasePagePath(existingPath, pagesDir)) { + return null; + } + if (others.length > 0) { + (0, _log.warn)(`Duplicate page detected. ${(0, _picocolors.cyan)((0, _path.join)('pages', existingPath))} and ${(0, _picocolors.cyan)((0, _path.join)('pages', others[0]))} both resolve to ${(0, _picocolors.cyan)(normalizedPagePath)}.`); + } + return existingPath; +} +function createValidFileMatcher(pageExtensions, appDirPath) { + // Helper to create extension regex pattern + const extPattern = `(?:${pageExtensions.map((extension)=>(0, _escaperegexp.escapeStringRegexp)(extension)).join('|')})`; + // Pattern factory for "leaf" files that can appear at start of path or after separator + // e.g., 'page.tsx', '/path/page.tsx', '\\path\\route.js' + const createLeafPattern = (fileNames)=>{ + const names = fileNames.length === 1 ? fileNames[0] : `(${fileNames.join('|')})`; + return new RegExp(`(^${names}|[\\\\/]${names})\\.${extPattern}$`); + }; + // Pattern factory for root-only files (no path separator allowed) + const createRootOnlyPattern = (fileName)=>new RegExp(`^${fileName}\\.${extPattern}$`); + // All file matching patterns + const validExtensionFileRegex = new RegExp(`\\.${extPattern}$`); + const leafOnlyPageFileRegex = createLeafPattern([ + 'page', + 'route' + ]); + const leafOnlyRouteFileRegex = createLeafPattern([ + 'route' + ]); + const leafOnlyLayoutFileRegex = createLeafPattern([ + 'layout' + ]); + const leafOnlyDefaultFileRegex = createLeafPattern([ + 'default' + ]); + const rootNotFoundFileRegex = createRootOnlyPattern('not-found'); + /** TODO-METADATA: support other metadata routes + * regex for: + * + * /robots.txt| + * /sitemap.xml| + * /favicon.ico + * /manifest.json| + * /icon.png|jpg| + * /apple-touch-icon.png|jpg| + * + */ /** + * Match the file if it's a metadata route file, static: if the file is a static metadata file. + * It needs to be a file which doesn't match the custom metadata routes e.g. `app/robots.txt/route.js` + */ function isMetadataFile(filePath) { + const appDirRelativePath = appDirPath ? filePath.replace(appDirPath, '') : filePath; + return (0, _ismetadataroute.isMetadataRouteFile)(appDirRelativePath, pageExtensions, true); + } + // Determine if the file is leaf node page file or route file under layouts, + // 'page.' | 'route.' + function isAppRouterPage(filePath) { + return leafOnlyPageFileRegex.test(filePath) || isMetadataFile(filePath); + } + // Determine if the file is leaf node route file under app directory + function isAppRouterRoute(filePath) { + return leafOnlyRouteFileRegex.test(filePath); + } + function isAppLayoutPage(filePath) { + return leafOnlyLayoutFileRegex.test(filePath); + } + function isAppDefaultPage(filePath) { + return leafOnlyDefaultFileRegex.test(filePath); + } + function isPageFile(filePath) { + return validExtensionFileRegex.test(filePath) || isMetadataFile(filePath); + } + function isRootNotFound(filePath) { + if (!appDirPath) { + return false; + } + if (!filePath.startsWith(appDirPath + _path.sep)) { + return false; + } + const rest = filePath.slice(appDirPath.length + 1); + return rootNotFoundFileRegex.test(rest); + } + return { + isPageFile, + isAppRouterPage, + isAppRouterRoute, + isAppLayoutPage, + isAppDefaultPage, + isMetadataFile, + isRootNotFound + }; +} + +//# sourceMappingURL=find-page-file.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/fix-mojibake.js b/cli/app/node_modules/next/dist/server/lib/fix-mojibake.js new file mode 100644 index 00000000000..d97306258c9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/fix-mojibake.js @@ -0,0 +1,25 @@ +// x-matched-path header can be decoded incorrectly +// and should only be utf8 characters so this fixes +// incorrectly encoded values +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "fixMojibake", { + enumerable: true, + get: function() { + return fixMojibake; + } +}); +function fixMojibake(input) { + // Convert each character's char code to a byte + const bytes = new Uint8Array(input.length); + for(let i = 0; i < input.length; i++){ + bytes[i] = input.charCodeAt(i); + } + // Decode the bytes as proper UTF-8 + const decoder = new TextDecoder('utf-8'); + return decoder.decode(bytes); +} + +//# sourceMappingURL=fix-mojibake.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/format-hostname.js b/cli/app/node_modules/next/dist/server/lib/format-hostname.js new file mode 100644 index 00000000000..6ab8a51767c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/format-hostname.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "formatHostname", { + enumerable: true, + get: function() { + return formatHostname; + } +}); +const _isipv6 = require("./is-ipv6"); +function formatHostname(hostname) { + return (0, _isipv6.isIPv6)(hostname) ? `[${hostname}]` : hostname; +} + +//# sourceMappingURL=format-hostname.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/i18n-provider.js b/cli/app/node_modules/next/dist/server/lib/i18n-provider.js new file mode 100644 index 00000000000..43517e53f20 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/i18n-provider.js @@ -0,0 +1,129 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "I18NProvider", { + enumerable: true, + get: function() { + return I18NProvider; + } +}); +const _requestmeta = require("../request-meta"); +class I18NProvider { + constructor(config){ + var _config_domains; + this.config = config; + if (!config.locales.length) { + throw Object.defineProperty(new Error('Invariant: No locales provided'), "__NEXT_ERROR_CODE", { + value: "E510", + enumerable: false, + configurable: true + }); + } + this.lowerCaseLocales = config.locales.map((locale)=>locale.toLowerCase()); + this.lowerCaseDomains = (_config_domains = config.domains) == null ? void 0 : _config_domains.map((domainLocale)=>{ + var _domainLocale_locales; + const domain = domainLocale.domain.toLowerCase(); + return { + defaultLocale: domainLocale.defaultLocale.toLowerCase(), + hostname: domain.split(':', 1)[0], + domain, + locales: (_domainLocale_locales = domainLocale.locales) == null ? void 0 : _domainLocale_locales.map((locale)=>locale.toLowerCase()), + http: domainLocale.http + }; + }); + } + /** + * Detects the domain locale from the hostname and the detected locale if + * provided. + * + * @param hostname The hostname to detect the domain locale from, this must be lowercased. + * @param detectedLocale The detected locale to use if the hostname does not match. + * @returns The domain locale if found, `undefined` otherwise. + */ detectDomainLocale(hostname, detectedLocale) { + if (!hostname || !this.lowerCaseDomains || !this.config.domains) return; + if (detectedLocale) detectedLocale = detectedLocale.toLowerCase(); + for(let i = 0; i < this.lowerCaseDomains.length; i++){ + var // Configuration validation ensures that the locale is not repeated in + // other domains locales. + _domainLocale_locales; + const domainLocale = this.lowerCaseDomains[i]; + if (// We assume that the hostname is already lowercased. + domainLocale.hostname === hostname || ((_domainLocale_locales = domainLocale.locales) == null ? void 0 : _domainLocale_locales.some((locale)=>locale === detectedLocale))) { + return this.config.domains[i]; + } + } + return; + } + /** + * Pulls the pre-computed locale and inference results from the query + * object. + * + * @param req the request object + * @param pathname the pathname that could contain a locale prefix + * @returns the locale analysis result + */ fromRequest(req, pathname) { + const detectedLocale = (0, _requestmeta.getRequestMeta)(req, 'locale'); + // If a locale was detected on the query, analyze the pathname to ensure + // that the locale matches. + if (detectedLocale) { + const analysis = this.analyze(pathname); + // If the analysis contained a locale we should validate it against the + // query and strip it from the pathname. + if (analysis.detectedLocale) { + if (analysis.detectedLocale !== detectedLocale) { + console.warn(`The detected locale does not match the locale in the query. Expected to find '${detectedLocale}' in '${pathname}' but found '${analysis.detectedLocale}'}`); + } + pathname = analysis.pathname; + } + } + return { + pathname, + detectedLocale, + inferredFromDefault: (0, _requestmeta.getRequestMeta)(req, 'localeInferredFromDefault') ?? false + }; + } + /** + * Analyzes the pathname for a locale and returns the pathname without it. + * + * @param pathname The pathname that could contain a locale prefix. + * @param options The options to use when matching the locale. + * @returns The matched locale and the pathname without the locale prefix + * (if any). + */ analyze(pathname, options = {}) { + let detectedLocale = options.defaultLocale; + // By default, we assume that the default locale was inferred if there was + // no detected locale. + let inferredFromDefault = typeof detectedLocale === 'string'; + // The first segment will be empty, because it has a leading `/`. If + // there is no further segment, there is no locale (or it's the default). + const segments = pathname.split('/', 2); + if (!segments[1]) return { + detectedLocale, + pathname, + inferredFromDefault + }; + // The second segment will contain the locale part if any. + const segment = segments[1].toLowerCase(); + // See if the segment matches one of the locales. If it doesn't, there is + // no locale (or it's the default). + const index = this.lowerCaseLocales.indexOf(segment); + if (index < 0) return { + detectedLocale, + pathname, + inferredFromDefault + }; + // Return the case-sensitive locale. + detectedLocale = this.config.locales[index]; + inferredFromDefault = false; + // Remove the `/${locale}` part of the pathname. + pathname = pathname.slice(detectedLocale.length + 1) || '/'; + return { + detectedLocale, + pathname, + inferredFromDefault + }; + } +} + +//# sourceMappingURL=i18n-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/implicit-tags.js b/cli/app/node_modules/next/dist/server/lib/implicit-tags.js new file mode 100644 index 00000000000..30699c11026 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/implicit-tags.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getImplicitTags", { + enumerable: true, + get: function() { + return getImplicitTags; + } +}); +const _constants = require("../../lib/constants"); +const _handlers = require("../use-cache/handlers"); +const _lazyresult = require("./lazy-result"); +const getDerivedTags = (pathname)=>{ + const derivedTags = [ + `/layout` + ]; + // we automatically add the current path segments as tags + // for revalidatePath handling + if (pathname.startsWith('/')) { + const pathnameParts = pathname.split('/'); + for(let i = 1; i < pathnameParts.length + 1; i++){ + let curPathname = pathnameParts.slice(0, i).join('/'); + if (curPathname) { + // all derived tags other than the page are layout tags + if (!curPathname.endsWith('/page') && !curPathname.endsWith('/route')) { + curPathname = `${curPathname}${!curPathname.endsWith('/') ? '/' : ''}layout`; + } + derivedTags.push(curPathname); + } + } + } + return derivedTags; +}; +/** + * Creates a map with lazy results that fetch the expiration value for the given + * tags and respective cache kind when they're awaited for the first time. + */ function createTagsExpirationsByCacheKind(tags) { + const expirationsByCacheKind = new Map(); + const cacheHandlers = (0, _handlers.getCacheHandlerEntries)(); + if (cacheHandlers) { + for (const [kind, cacheHandler] of cacheHandlers){ + if ('getExpiration' in cacheHandler) { + expirationsByCacheKind.set(kind, (0, _lazyresult.createLazyResult)(async ()=>cacheHandler.getExpiration(tags))); + } + } + } + return expirationsByCacheKind; +} +async function getImplicitTags(page, pathname, fallbackRouteParams) { + const tags = new Set(); + // Add the derived tags from the page. + const derivedTags = getDerivedTags(page); + for (let tag of derivedTags){ + tag = `${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}${tag}`; + tags.add(tag); + } + // Add the tags from the pathname. If the route has unknown params, we don't + // want to add the pathname as a tag, as it will be invalid. + if (pathname && (!fallbackRouteParams || fallbackRouteParams.size === 0)) { + const tag = `${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}${pathname}`; + tags.add(tag); + } + if (tags.has(`${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}/`)) { + tags.add(`${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}/index`); + } + if (tags.has(`${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}/index`)) { + tags.add(`${_constants.NEXT_CACHE_IMPLICIT_TAG_ID}/`); + } + const tagsArray = Array.from(tags); + return { + tags: tagsArray, + expirationsByCacheKind: createTagsExpirationsByCacheKind(tagsArray) + }; +} + +//# sourceMappingURL=implicit-tags.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js b/cli/app/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js new file mode 100644 index 00000000000..d926dfeb710 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/incremental-cache/file-system-cache.js @@ -0,0 +1,335 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return FileSystemCache; + } +}); +const _responsecache = require("../../response-cache"); +const _path = /*#__PURE__*/ _interop_require_default(require("../../../shared/lib/isomorphic/path")); +const _constants = require("../../../lib/constants"); +const _tagsmanifestexternal = require("./tags-manifest.external"); +const _multifilewriter = require("../../../lib/multi-file-writer"); +const _memorycacheexternal = require("./memory-cache.external"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class FileSystemCache { + static #_ = this.debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE; + constructor(ctx){ + this.fs = ctx.fs; + this.flushToDisk = ctx.flushToDisk; + this.serverDistDir = ctx.serverDistDir; + this.revalidatedTags = ctx.revalidatedTags; + if (ctx.maxMemoryCacheSize) { + if (!FileSystemCache.memoryCache) { + if (FileSystemCache.debug) { + console.log('FileSystemCache: using memory store for fetch cache'); + } + FileSystemCache.memoryCache = (0, _memorycacheexternal.getMemoryCache)(ctx.maxMemoryCacheSize); + } else if (FileSystemCache.debug) { + console.log('FileSystemCache: memory store already initialized'); + } + } else if (FileSystemCache.debug) { + console.log('FileSystemCache: not using memory store for fetch cache'); + } + } + resetRequestCache() {} + async revalidateTag(tags, durations) { + tags = typeof tags === 'string' ? [ + tags + ] : tags; + if (FileSystemCache.debug) { + console.log('FileSystemCache: revalidateTag', tags, durations); + } + if (tags.length === 0) { + return; + } + const now = Date.now(); + for (const tag of tags){ + const existingEntry = _tagsmanifestexternal.tagsManifest.get(tag) || {}; + if (durations) { + // Use provided durations directly + const updates = { + ...existingEntry + }; + // mark as stale immediately + updates.stale = now; + if (durations.expire !== undefined) { + updates.expired = now + durations.expire * 1000 // Convert seconds to ms + ; + } + _tagsmanifestexternal.tagsManifest.set(tag, updates); + } else { + // Update expired field for immediate expiration (default behavior when no durations provided) + _tagsmanifestexternal.tagsManifest.set(tag, { + ...existingEntry, + expired: now + }); + } + } + } + async get(...args) { + var _FileSystemCache_memoryCache, _data_value, _data_value1, _data_value2, _data_value3; + const [key, ctx] = args; + const { kind } = ctx; + let data = (_FileSystemCache_memoryCache = FileSystemCache.memoryCache) == null ? void 0 : _FileSystemCache_memoryCache.get(key); + if (FileSystemCache.debug) { + if (kind === _responsecache.IncrementalCacheKind.FETCH) { + console.log('FileSystemCache: get', key, ctx.tags, kind, !!data); + } else { + console.log('FileSystemCache: get', key, kind, !!data); + } + } + // let's check the disk for seed data + if (!data && process.env.NEXT_RUNTIME !== 'edge') { + try { + if (kind === _responsecache.IncrementalCacheKind.APP_ROUTE) { + const filePath = this.getFilePath(`${key}.body`, _responsecache.IncrementalCacheKind.APP_ROUTE); + const fileData = await this.fs.readFile(filePath); + const { mtime } = await this.fs.stat(filePath); + const meta = JSON.parse(await this.fs.readFile(filePath.replace(/\.body$/, _constants.NEXT_META_SUFFIX), 'utf8')); + data = { + lastModified: mtime.getTime(), + value: { + kind: _responsecache.CachedRouteKind.APP_ROUTE, + body: fileData, + headers: meta.headers, + status: meta.status + } + }; + } else { + const filePath = this.getFilePath(kind === _responsecache.IncrementalCacheKind.FETCH ? key : `${key}.html`, kind); + const fileData = await this.fs.readFile(filePath, 'utf8'); + const { mtime } = await this.fs.stat(filePath); + if (kind === _responsecache.IncrementalCacheKind.FETCH) { + var _data_value4; + const { tags, fetchIdx, fetchUrl } = ctx; + if (!this.flushToDisk) return null; + const lastModified = mtime.getTime(); + const parsedData = JSON.parse(fileData); + data = { + lastModified, + value: parsedData + }; + if (((_data_value4 = data.value) == null ? void 0 : _data_value4.kind) === _responsecache.CachedRouteKind.FETCH) { + var _data_value5; + const storedTags = (_data_value5 = data.value) == null ? void 0 : _data_value5.tags; + // update stored tags if a new one is being added + // TODO: remove this when we can send the tags + // via header on GET same as SET + if (!(tags == null ? void 0 : tags.every((tag)=>storedTags == null ? void 0 : storedTags.includes(tag)))) { + if (FileSystemCache.debug) { + console.log('FileSystemCache: tags vs storedTags mismatch', tags, storedTags); + } + await this.set(key, data.value, { + fetchCache: true, + tags, + fetchIdx, + fetchUrl + }); + } + } + } else if (kind === _responsecache.IncrementalCacheKind.APP_PAGE) { + // We try to load the metadata file, but if it fails, we don't + // error. We also don't load it if this is a fallback. + let meta; + try { + meta = JSON.parse(await this.fs.readFile(filePath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), 'utf8')); + } catch {} + let maybeSegmentData; + if (meta == null ? void 0 : meta.segmentPaths) { + // Collect all the segment data for this page. + // TODO: To optimize file system reads, we should consider creating + // separate cache entries for each segment, rather than storing them + // all on the page's entry. Though the behavior is + // identical regardless. + const segmentData = new Map(); + maybeSegmentData = segmentData; + const segmentsDir = key + _constants.RSC_SEGMENTS_DIR_SUFFIX; + await Promise.all(meta.segmentPaths.map(async (segmentPath)=>{ + const segmentDataFilePath = this.getFilePath(segmentsDir + segmentPath + _constants.RSC_SEGMENT_SUFFIX, _responsecache.IncrementalCacheKind.APP_PAGE); + try { + segmentData.set(segmentPath, await this.fs.readFile(segmentDataFilePath)); + } catch { + // This shouldn't happen, but if for some reason we fail to + // load a segment from the filesystem, treat it the same as if + // the segment is dynamic and does not have a prefetch. + } + })); + } + let rscData; + if (!ctx.isFallback && (!ctx.isRoutePPREnabled || (meta == null ? void 0 : meta.postponed) == null)) { + rscData = await this.fs.readFile(this.getFilePath(`${key}${_constants.RSC_SUFFIX}`, _responsecache.IncrementalCacheKind.APP_PAGE)); + } + data = { + lastModified: mtime.getTime(), + value: { + kind: _responsecache.CachedRouteKind.APP_PAGE, + html: fileData, + rscData, + postponed: meta == null ? void 0 : meta.postponed, + headers: meta == null ? void 0 : meta.headers, + status: meta == null ? void 0 : meta.status, + segmentData: maybeSegmentData + } + }; + } else if (kind === _responsecache.IncrementalCacheKind.PAGES) { + let meta; + let pageData = {}; + if (!ctx.isFallback) { + pageData = JSON.parse(await this.fs.readFile(this.getFilePath(`${key}${_constants.NEXT_DATA_SUFFIX}`, _responsecache.IncrementalCacheKind.PAGES), 'utf8')); + } + data = { + lastModified: mtime.getTime(), + value: { + kind: _responsecache.CachedRouteKind.PAGES, + html: fileData, + pageData, + headers: meta == null ? void 0 : meta.headers, + status: meta == null ? void 0 : meta.status + } + }; + } else { + throw Object.defineProperty(new Error(`Invariant: Unexpected route kind ${kind} in file system cache.`), "__NEXT_ERROR_CODE", { + value: "E445", + enumerable: false, + configurable: true + }); + } + } + if (data) { + var _FileSystemCache_memoryCache1; + (_FileSystemCache_memoryCache1 = FileSystemCache.memoryCache) == null ? void 0 : _FileSystemCache_memoryCache1.set(key, data); + } + } catch { + return null; + } + } + if ((data == null ? void 0 : (_data_value = data.value) == null ? void 0 : _data_value.kind) === _responsecache.CachedRouteKind.APP_PAGE || (data == null ? void 0 : (_data_value1 = data.value) == null ? void 0 : _data_value1.kind) === _responsecache.CachedRouteKind.APP_ROUTE || (data == null ? void 0 : (_data_value2 = data.value) == null ? void 0 : _data_value2.kind) === _responsecache.CachedRouteKind.PAGES) { + var _data_value_headers; + const tagsHeader = (_data_value_headers = data.value.headers) == null ? void 0 : _data_value_headers[_constants.NEXT_CACHE_TAGS_HEADER]; + if (typeof tagsHeader === 'string') { + const cacheTags = tagsHeader.split(','); + // we trigger a blocking validation if an ISR page + // had a tag revalidated, if we want to be a background + // revalidation instead we return data.lastModified = -1 + if (cacheTags.length > 0 && (0, _tagsmanifestexternal.areTagsExpired)(cacheTags, data.lastModified)) { + if (FileSystemCache.debug) { + console.log('FileSystemCache: expired tags', cacheTags); + } + return null; + } + } + } else if ((data == null ? void 0 : (_data_value3 = data.value) == null ? void 0 : _data_value3.kind) === _responsecache.CachedRouteKind.FETCH) { + const combinedTags = ctx.kind === _responsecache.IncrementalCacheKind.FETCH ? [ + ...ctx.tags || [], + ...ctx.softTags || [] + ] : []; + // When revalidate tag is called we don't return stale data so it's + // updated right away. + if (combinedTags.some((tag)=>this.revalidatedTags.includes(tag))) { + if (FileSystemCache.debug) { + console.log('FileSystemCache: was revalidated', combinedTags); + } + return null; + } + if ((0, _tagsmanifestexternal.areTagsExpired)(combinedTags, data.lastModified)) { + if (FileSystemCache.debug) { + console.log('FileSystemCache: expired tags', combinedTags); + } + return null; + } + } + return data ?? null; + } + async set(key, data, ctx) { + var _FileSystemCache_memoryCache; + (_FileSystemCache_memoryCache = FileSystemCache.memoryCache) == null ? void 0 : _FileSystemCache_memoryCache.set(key, { + value: data, + lastModified: Date.now() + }); + if (FileSystemCache.debug) { + console.log('FileSystemCache: set', key); + } + if (!this.flushToDisk || !data) return; + // Create a new writer that will prepare to write all the files to disk + // after their containing directory is created. + const writer = new _multifilewriter.MultiFileWriter(this.fs); + if (data.kind === _responsecache.CachedRouteKind.APP_ROUTE) { + const filePath = this.getFilePath(`${key}.body`, _responsecache.IncrementalCacheKind.APP_ROUTE); + writer.append(filePath, data.body); + const meta = { + headers: data.headers, + status: data.status, + postponed: undefined, + segmentPaths: undefined, + prefetchHints: undefined + }; + writer.append(filePath.replace(/\.body$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta, null, 2)); + } else if (data.kind === _responsecache.CachedRouteKind.PAGES || data.kind === _responsecache.CachedRouteKind.APP_PAGE) { + const isAppPath = data.kind === _responsecache.CachedRouteKind.APP_PAGE; + const htmlPath = this.getFilePath(`${key}.html`, isAppPath ? _responsecache.IncrementalCacheKind.APP_PAGE : _responsecache.IncrementalCacheKind.PAGES); + writer.append(htmlPath, data.html); + // Fallbacks don't generate a data file. + if (!ctx.fetchCache && !ctx.isFallback && !ctx.isRoutePPREnabled) { + writer.append(this.getFilePath(`${key}${isAppPath ? _constants.RSC_SUFFIX : _constants.NEXT_DATA_SUFFIX}`, isAppPath ? _responsecache.IncrementalCacheKind.APP_PAGE : _responsecache.IncrementalCacheKind.PAGES), isAppPath ? data.rscData : JSON.stringify(data.pageData)); + } + if ((data == null ? void 0 : data.kind) === _responsecache.CachedRouteKind.APP_PAGE) { + let segmentPaths; + if (data.segmentData) { + segmentPaths = []; + const segmentsDir = htmlPath.replace(/\.html$/, _constants.RSC_SEGMENTS_DIR_SUFFIX); + for (const [segmentPath, buffer] of data.segmentData){ + segmentPaths.push(segmentPath); + const segmentDataFilePath = segmentsDir + segmentPath + _constants.RSC_SEGMENT_SUFFIX; + writer.append(segmentDataFilePath, buffer); + } + } + const meta = { + headers: data.headers, + status: data.status, + postponed: data.postponed, + segmentPaths, + prefetchHints: undefined + }; + writer.append(htmlPath.replace(/\.html$/, _constants.NEXT_META_SUFFIX), JSON.stringify(meta)); + } + } else if (data.kind === _responsecache.CachedRouteKind.FETCH) { + const filePath = this.getFilePath(key, _responsecache.IncrementalCacheKind.FETCH); + writer.append(filePath, JSON.stringify({ + ...data, + tags: ctx.fetchCache ? ctx.tags : [] + })); + } + // Wait for all FS operations to complete. + await writer.wait(); + } + getFilePath(pathname, kind) { + switch(kind){ + case _responsecache.IncrementalCacheKind.FETCH: + // we store in .next/cache/fetch-cache so it can be persisted + // across deploys + return _path.default.join(this.serverDistDir, '..', 'cache', 'fetch-cache', pathname); + case _responsecache.IncrementalCacheKind.PAGES: + return _path.default.join(this.serverDistDir, 'pages', pathname); + case _responsecache.IncrementalCacheKind.IMAGE: + case _responsecache.IncrementalCacheKind.APP_PAGE: + case _responsecache.IncrementalCacheKind.APP_ROUTE: + return _path.default.join(this.serverDistDir, 'app', pathname); + default: + throw Object.defineProperty(new Error(`Unexpected file path kind: ${kind}`), "__NEXT_ERROR_CODE", { + value: "E479", + enumerable: false, + configurable: true + }); + } + } +} + +//# sourceMappingURL=file-system-cache.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/incremental-cache/index.js b/cli/app/node_modules/next/dist/server/lib/incremental-cache/index.js new file mode 100644 index 00000000000..1f4d578d6e6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/incremental-cache/index.js @@ -0,0 +1,501 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + CacheHandler: null, + IncrementalCache: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + CacheHandler: function() { + return CacheHandler; + }, + IncrementalCache: function() { + return IncrementalCache; + } +}); +const _responsecache = require("../../response-cache"); +const _filesystemcache = /*#__PURE__*/ _interop_require_default(require("./file-system-cache")); +const _normalizepagepath = require("../../../shared/lib/page-path/normalize-page-path"); +const _constants = require("../../../lib/constants"); +const _toroute = require("../to-route"); +const _sharedcachecontrolsexternal = require("./shared-cache-controls.external"); +const _workunitasyncstorageexternal = require("../../app-render/work-unit-async-storage.external"); +const _invarianterror = require("../../../shared/lib/invariant-error"); +const _serverutils = require("../../server-utils"); +const _workasyncstorageexternal = require("../../app-render/work-async-storage.external"); +const _detachedpromise = require("../../../lib/detached-promise"); +const _tagsmanifestexternal = require("./tags-manifest.external"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class CacheHandler { + // eslint-disable-next-line + constructor(_ctx){} + async get(_cacheKey, _ctx) { + return {}; + } + async set(_cacheKey, _data, _ctx) {} + async revalidateTag(_tags, _durations) {} + resetRequestCache() {} +} +class IncrementalCache { + static #_ = this.debug = !!process.env.NEXT_PRIVATE_DEBUG_CACHE; + constructor({ fs, dev, flushToDisk, minimalMode, serverDistDir, requestHeaders, maxMemoryCacheSize, getPrerenderManifest, fetchCacheKeyPrefix, CurCacheHandler, allowedRevalidateHeaderKeys }){ + var _this_prerenderManifest_preview, _this_prerenderManifest; + this.locks = new Map(); + this.hasCustomCacheHandler = Boolean(CurCacheHandler); + const cacheHandlersSymbol = Symbol.for('@next/cache-handlers'); + const _globalThis = globalThis; + if (!CurCacheHandler) { + // if we have a global cache handler available leverage it + const globalCacheHandler = _globalThis[cacheHandlersSymbol]; + if (globalCacheHandler == null ? void 0 : globalCacheHandler.FetchCache) { + CurCacheHandler = globalCacheHandler.FetchCache; + if (IncrementalCache.debug) { + console.log('IncrementalCache: using global FetchCache cache handler'); + } + } else { + if (fs && serverDistDir) { + if (IncrementalCache.debug) { + console.log('IncrementalCache: using filesystem cache handler'); + } + CurCacheHandler = _filesystemcache.default; + } + } + } else if (IncrementalCache.debug) { + console.log('IncrementalCache: using custom cache handler', CurCacheHandler.name); + } + if (process.env.__NEXT_TEST_MAX_ISR_CACHE) { + // Allow cache size to be overridden for testing purposes + maxMemoryCacheSize = parseInt(process.env.__NEXT_TEST_MAX_ISR_CACHE, 10); + } + this.dev = dev; + this.disableForTestmode = process.env.NEXT_PRIVATE_TEST_PROXY === 'true'; + // this is a hack to avoid Webpack knowing this is equal to this.minimalMode + // because we replace this.minimalMode to true in production bundles. + const minimalModeKey = 'minimalMode'; + this[minimalModeKey] = minimalMode; + this.requestHeaders = requestHeaders; + this.allowedRevalidateHeaderKeys = allowedRevalidateHeaderKeys; + this.prerenderManifest = getPrerenderManifest(); + this.cacheControls = new _sharedcachecontrolsexternal.SharedCacheControls(this.prerenderManifest); + this.fetchCacheKeyPrefix = fetchCacheKeyPrefix; + let revalidatedTags = []; + if (requestHeaders[_constants.PRERENDER_REVALIDATE_HEADER] === ((_this_prerenderManifest = this.prerenderManifest) == null ? void 0 : (_this_prerenderManifest_preview = _this_prerenderManifest.preview) == null ? void 0 : _this_prerenderManifest_preview.previewModeId)) { + this.isOnDemandRevalidate = true; + } + if (minimalMode) { + var _this_prerenderManifest_preview1, _this_prerenderManifest1; + revalidatedTags = this.revalidatedTags = (0, _serverutils.getPreviouslyRevalidatedTags)(requestHeaders, (_this_prerenderManifest1 = this.prerenderManifest) == null ? void 0 : (_this_prerenderManifest_preview1 = _this_prerenderManifest1.preview) == null ? void 0 : _this_prerenderManifest_preview1.previewModeId); + } + if (CurCacheHandler) { + this.cacheHandler = new CurCacheHandler({ + dev, + fs, + flushToDisk, + serverDistDir, + revalidatedTags, + maxMemoryCacheSize, + _requestHeaders: requestHeaders, + fetchCacheKeyPrefix + }); + } + } + calculateRevalidate(pathname, fromTime, dev, isFallback) { + // in development we don't have a prerender-manifest + // and default to always revalidating to allow easier debugging + if (dev) return Math.floor(performance.timeOrigin + performance.now() - 1000); + const cacheControl = this.cacheControls.get((0, _toroute.toRoute)(pathname)); + // if an entry isn't present in routes we fallback to a default + // of revalidating after 1 second unless it's a fallback request. + const initialRevalidateSeconds = cacheControl ? cacheControl.revalidate : isFallback ? false : 1; + const revalidateAfter = typeof initialRevalidateSeconds === 'number' ? initialRevalidateSeconds * 1000 + fromTime : initialRevalidateSeconds; + return revalidateAfter; + } + _getPathname(pathname, fetchCache) { + return fetchCache ? pathname : (0, _normalizepagepath.normalizePagePath)(pathname); + } + resetRequestCache() { + var _this_cacheHandler_resetRequestCache, _this_cacheHandler; + (_this_cacheHandler = this.cacheHandler) == null ? void 0 : (_this_cacheHandler_resetRequestCache = _this_cacheHandler.resetRequestCache) == null ? void 0 : _this_cacheHandler_resetRequestCache.call(_this_cacheHandler); + } + async lock(cacheKey) { + // Wait for any existing lock on this cache key to be released + // This implements a simple queue-based locking mechanism + while(true){ + const lock = this.locks.get(cacheKey); + if (IncrementalCache.debug) { + console.log('IncrementalCache: lock get', cacheKey, !!lock); + } + // If no lock exists, we can proceed to acquire it + if (!lock) break; + // Wait for the existing lock to be released before trying again + await lock; + } + // Create a new detached promise that will represent this lock + // The resolve function (unlock) will be returned to the caller + const { resolve, promise } = new _detachedpromise.DetachedPromise(); + if (IncrementalCache.debug) { + console.log('IncrementalCache: successfully locked', cacheKey); + } + // Store the lock promise in the locks map + this.locks.set(cacheKey, promise); + return ()=>{ + // Resolve the promise to release the lock. + resolve(); + // Remove the lock from the map once it's released so that future gets + // can acquire the lock. + this.locks.delete(cacheKey); + }; + } + async revalidateTag(tags, durations) { + var _this_cacheHandler; + return (_this_cacheHandler = this.cacheHandler) == null ? void 0 : _this_cacheHandler.revalidateTag(tags, durations); + } + // x-ref: https://github.com/facebook/react/blob/2655c9354d8e1c54ba888444220f63e836925caa/packages/react/src/ReactFetch.js#L23 + async generateCacheKey(url, init = {}) { + // this should be bumped anytime a fix is made to cache entries + // that should bust the cache + const MAIN_KEY_PREFIX = 'v3'; + const bodyChunks = []; + const encoder = new TextEncoder(); + const decoder = new TextDecoder(); + if (init.body) { + // handle Uint8Array body + if (init.body instanceof Uint8Array) { + bodyChunks.push(decoder.decode(init.body)); + init._ogBody = init.body; + } else if (typeof init.body.getReader === 'function') { + const readableBody = init.body; + const chunks = []; + try { + await readableBody.pipeTo(new WritableStream({ + write (chunk) { + if (typeof chunk === 'string') { + chunks.push(encoder.encode(chunk)); + bodyChunks.push(chunk); + } else { + chunks.push(chunk); + bodyChunks.push(decoder.decode(chunk, { + stream: true + })); + } + } + })); + // Flush the decoder. + bodyChunks.push(decoder.decode()); + // Create a new buffer with all the chunks. + const length = chunks.reduce((total, arr)=>total + arr.length, 0); + const arrayBuffer = new Uint8Array(length); + // Push each of the chunks into the new array buffer. + let offset = 0; + for (const chunk of chunks){ + arrayBuffer.set(chunk, offset); + offset += chunk.length; + } + ; + init._ogBody = arrayBuffer; + } catch (err) { + console.error('Problem reading body', err); + } + } else if (typeof init.body.keys === 'function') { + const formData = init.body; + init._ogBody = init.body; + for (const key of new Set([ + ...formData.keys() + ])){ + const values = formData.getAll(key); + bodyChunks.push(`${key}=${(await Promise.all(values.map(async (val)=>{ + if (typeof val === 'string') { + return val; + } else { + return await val.text(); + } + }))).join(',')}`); + } + // handle blob body + } else if (typeof init.body.arrayBuffer === 'function') { + const blob = init.body; + const arrayBuffer = await blob.arrayBuffer(); + bodyChunks.push(await blob.text()); + init._ogBody = new Blob([ + arrayBuffer + ], { + type: blob.type + }); + } else if (typeof init.body === 'string') { + bodyChunks.push(init.body); + init._ogBody = init.body; + } + } + const headers = typeof (init.headers || {}).keys === 'function' ? Object.fromEntries(init.headers) : Object.assign({}, init.headers); + // w3c trace context headers can break request caching and deduplication + // so we remove them from the cache key + if ('traceparent' in headers) delete headers['traceparent']; + if ('tracestate' in headers) delete headers['tracestate']; + const cacheString = JSON.stringify([ + MAIN_KEY_PREFIX, + this.fetchCacheKeyPrefix || '', + url, + init.method, + headers, + init.mode, + init.redirect, + init.credentials, + init.referrer, + init.referrerPolicy, + init.integrity, + init.cache, + bodyChunks + ]); + if (process.env.NEXT_RUNTIME === 'edge') { + function bufferToHex(buffer) { + return Array.prototype.map.call(new Uint8Array(buffer), (b)=>b.toString(16).padStart(2, '0')).join(''); + } + const buffer = encoder.encode(cacheString); + return bufferToHex(await crypto.subtle.digest('SHA-256', buffer)); + } else { + const crypto1 = require('crypto'); + return crypto1.createHash('sha256').update(cacheString).digest('hex'); + } + } + async get(cacheKey, ctx) { + var _this_cacheHandler, _cacheData_value; + // Unlike other caches if we have a resume data cache, we use it even if + // testmode would normally disable it or if requestHeaders say 'no-cache'. + if (ctx.kind === _responsecache.IncrementalCacheKind.FETCH) { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + const resumeDataCache = workUnitStore ? (0, _workunitasyncstorageexternal.getRenderResumeDataCache)(workUnitStore) : null; + if (resumeDataCache) { + const memoryCacheData = resumeDataCache.fetch.get(cacheKey); + if ((memoryCacheData == null ? void 0 : memoryCacheData.kind) === _responsecache.CachedRouteKind.FETCH) { + // Check if any tags were recently revalidated before returning RDC entry. + // When a server action calls updateTag(), the re-render should see fresh + // data instead of stale RDC data. + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const combinedTags = [ + ...ctx.tags || [], + ...ctx.softTags || [] + ]; + const hasRevalidatedTag = combinedTags.some((tag)=>{ + var _this_revalidatedTags, _workStore_pendingRevalidatedTags; + return ((_this_revalidatedTags = this.revalidatedTags) == null ? void 0 : _this_revalidatedTags.includes(tag)) || (workStore == null ? void 0 : (_workStore_pendingRevalidatedTags = workStore.pendingRevalidatedTags) == null ? void 0 : _workStore_pendingRevalidatedTags.some((item)=>item.tag === tag)); + }); + if (hasRevalidatedTag) { + if (IncrementalCache.debug) { + console.log('IncrementalCache: rdc:revalidated-tag', cacheKey); + } + // Fall through to cacheHandler lookup + } else { + if (IncrementalCache.debug) { + console.log('IncrementalCache: rdc:hit', cacheKey); + } + return { + isStale: false, + value: memoryCacheData + }; + } + } else if (IncrementalCache.debug) { + console.log('IncrementalCache: rdc:miss', cacheKey); + } + } else { + if (IncrementalCache.debug) { + console.log('IncrementalCache: rdc:no-resume-data'); + } + } + } + // we don't leverage the prerender cache in dev mode + // so that getStaticProps is always called for easier debugging + if (this.disableForTestmode || this.dev && (ctx.kind !== _responsecache.IncrementalCacheKind.FETCH || this.requestHeaders['cache-control'] === 'no-cache')) { + return null; + } + cacheKey = this._getPathname(cacheKey, ctx.kind === _responsecache.IncrementalCacheKind.FETCH); + const cacheData = await ((_this_cacheHandler = this.cacheHandler) == null ? void 0 : _this_cacheHandler.get(cacheKey, ctx)); + if (ctx.kind === _responsecache.IncrementalCacheKind.FETCH) { + var _cacheData_value1; + if (!cacheData) { + return null; + } + if (((_cacheData_value1 = cacheData.value) == null ? void 0 : _cacheData_value1.kind) !== _responsecache.CachedRouteKind.FETCH) { + var _cacheData_value2; + throw Object.defineProperty(new _invarianterror.InvariantError(`Expected cached value for cache key ${JSON.stringify(cacheKey)} to be a "FETCH" kind, got ${JSON.stringify((_cacheData_value2 = cacheData.value) == null ? void 0 : _cacheData_value2.kind)} instead.`), "__NEXT_ERROR_CODE", { + value: "E653", + enumerable: false, + configurable: true + }); + } + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + const combinedTags = [ + ...ctx.tags || [], + ...ctx.softTags || [] + ]; + // if a tag was revalidated we don't return stale data + if (combinedTags.some((tag)=>{ + var _this_revalidatedTags, _workStore_pendingRevalidatedTags; + return ((_this_revalidatedTags = this.revalidatedTags) == null ? void 0 : _this_revalidatedTags.includes(tag)) || (workStore == null ? void 0 : (_workStore_pendingRevalidatedTags = workStore.pendingRevalidatedTags) == null ? void 0 : _workStore_pendingRevalidatedTags.some((item)=>item.tag === tag)); + })) { + if (IncrementalCache.debug) { + console.log('IncrementalCache: expired tag', cacheKey); + } + return null; + } + // As we're able to get the cache entry for this fetch, and the prerender + // resume data cache (RDC) is available, it must have been populated by a + // previous fetch, but was not yet present in the in-memory cache. This + // could be the case when performing multiple renders in parallel during + // build time where we de-duplicate the fetch calls. + // + // We add it to the RDC so that the next fetch call will be able to use it + // and it won't have to reach into the fetch cache implementation. + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + const prerenderResumeDataCache = (0, _workunitasyncstorageexternal.getPrerenderResumeDataCache)(workUnitStore); + if (prerenderResumeDataCache) { + if (IncrementalCache.debug) { + console.log('IncrementalCache: rdc:set', cacheKey); + } + prerenderResumeDataCache.fetch.set(cacheKey, cacheData.value); + } + } + const revalidate = ctx.revalidate || cacheData.value.revalidate; + const age = (performance.timeOrigin + performance.now() - (cacheData.lastModified || 0)) / 1000; + let isStale = age > revalidate; + const data = cacheData.value.data; + if ((0, _tagsmanifestexternal.areTagsExpired)(combinedTags, cacheData.lastModified)) { + return null; + } else if ((0, _tagsmanifestexternal.areTagsStale)(combinedTags, cacheData.lastModified)) { + isStale = true; + } + return { + isStale, + value: { + kind: _responsecache.CachedRouteKind.FETCH, + data, + revalidate + } + }; + } else if ((cacheData == null ? void 0 : (_cacheData_value = cacheData.value) == null ? void 0 : _cacheData_value.kind) === _responsecache.CachedRouteKind.FETCH) { + throw Object.defineProperty(new _invarianterror.InvariantError(`Expected cached value for cache key ${JSON.stringify(cacheKey)} not to be a ${JSON.stringify(ctx.kind)} kind, got "FETCH" instead.`), "__NEXT_ERROR_CODE", { + value: "E652", + enumerable: false, + configurable: true + }); + } + let entry = null; + const { isFallback } = ctx; + const cacheControl = this.cacheControls.get((0, _toroute.toRoute)(cacheKey)); + let isStale; + let revalidateAfter; + if ((cacheData == null ? void 0 : cacheData.lastModified) === -1) { + isStale = -1; + revalidateAfter = -1 * _constants.CACHE_ONE_YEAR_SECONDS * 1000; + } else { + var _cacheData_value3, _cacheData_value4; + const now = performance.timeOrigin + performance.now(); + const lastModified = (cacheData == null ? void 0 : cacheData.lastModified) || now; + revalidateAfter = this.calculateRevalidate(cacheKey, lastModified, this.dev ?? false, ctx.isFallback); + isStale = revalidateAfter !== false && revalidateAfter < now ? true : undefined; + // If the stale time couldn't be determined based on the revalidation + // time, we check if the tags are expired or stale. + if (isStale === undefined && ((cacheData == null ? void 0 : (_cacheData_value3 = cacheData.value) == null ? void 0 : _cacheData_value3.kind) === _responsecache.CachedRouteKind.APP_PAGE || (cacheData == null ? void 0 : (_cacheData_value4 = cacheData.value) == null ? void 0 : _cacheData_value4.kind) === _responsecache.CachedRouteKind.APP_ROUTE)) { + var _cacheData_value_headers; + const tagsHeader = (_cacheData_value_headers = cacheData.value.headers) == null ? void 0 : _cacheData_value_headers[_constants.NEXT_CACHE_TAGS_HEADER]; + if (typeof tagsHeader === 'string') { + const cacheTags = tagsHeader.split(','); + if (cacheTags.length > 0) { + if ((0, _tagsmanifestexternal.areTagsExpired)(cacheTags, lastModified)) { + isStale = -1; + } else if ((0, _tagsmanifestexternal.areTagsStale)(cacheTags, lastModified)) { + isStale = true; + } + } + } + } + } + if (cacheData) { + entry = { + isStale, + cacheControl, + revalidateAfter, + value: cacheData.value, + isFallback + }; + } + if (!cacheData && this.prerenderManifest.notFoundRoutes.includes(cacheKey)) { + // for the first hit after starting the server the cache + // may not have a way to save notFound: true so if + // the prerender-manifest marks this as notFound then we + // return that entry and trigger a cache set to give it a + // chance to update in-memory entries + entry = { + isStale, + value: null, + cacheControl, + revalidateAfter, + isFallback + }; + this.set(cacheKey, entry.value, { + ...ctx, + cacheControl + }); + } + return entry; + } + async set(pathname, data, ctx) { + // Even if we otherwise disable caching for testMode or if no fetchCache is + // configured we still always stash results in the resume data cache if one + // exists. This is because this is a transient in memory cache that + // populates caches ahead of a dynamic render in dev mode to allow the RSC + // debug info to have the right environment associated to it. + if ((data == null ? void 0 : data.kind) === _responsecache.CachedRouteKind.FETCH) { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + const prerenderResumeDataCache = workUnitStore ? (0, _workunitasyncstorageexternal.getPrerenderResumeDataCache)(workUnitStore) : null; + if (prerenderResumeDataCache) { + if (IncrementalCache.debug) { + console.log('IncrementalCache: rdc:set', pathname); + } + prerenderResumeDataCache.fetch.set(pathname, data); + } + } + if (this.disableForTestmode || this.dev && !ctx.fetchCache) return; + pathname = this._getPathname(pathname, ctx.fetchCache); + // FetchCache has upper limit of 2MB per-entry currently + const itemSize = JSON.stringify(data).length; + if (ctx.fetchCache && itemSize > 2 * 1024 * 1024 && // We ignore the size limit when custom cache handler is being used, as it + // might not have this limit + !this.hasCustomCacheHandler && // We also ignore the size limit when it's an implicit build-time-only + // caching that the user isn't even aware of. + !ctx.isImplicitBuildTimeCache) { + const warningText = `Failed to set Next.js data cache for ${ctx.fetchUrl || pathname}, items over 2MB can not be cached (${itemSize} bytes)`; + if (this.dev) { + throw Object.defineProperty(new Error(warningText), "__NEXT_ERROR_CODE", { + value: "E1003", + enumerable: false, + configurable: true + }); + } + console.warn(warningText); + return; + } + try { + var _this_cacheHandler; + if (!ctx.fetchCache && ctx.cacheControl) { + this.cacheControls.set((0, _toroute.toRoute)(pathname), ctx.cacheControl); + } + await ((_this_cacheHandler = this.cacheHandler) == null ? void 0 : _this_cacheHandler.set(pathname, data, ctx)); + } catch (error) { + console.warn('Failed to update prerender cache for', pathname, error); + } + } +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js b/cli/app/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js new file mode 100644 index 00000000000..0837b2f921f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/incremental-cache/memory-cache.external.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getMemoryCache", { + enumerable: true, + get: function() { + return getMemoryCache; + } +}); +const _types = require("../../response-cache/types"); +const _lrucache = require("../lru-cache"); +let memoryCache; +function getBufferSize(buffer) { + return (buffer == null ? void 0 : buffer.length) || 0; +} +function getSegmentDataSize(segmentData) { + if (!segmentData) { + return 0; + } + let size = 0; + for (const [segmentPath, buffer] of segmentData){ + size += segmentPath.length + getBufferSize(buffer); + } + return size; +} +function getMemoryCache(maxMemoryCacheSize) { + if (!memoryCache) { + memoryCache = new _lrucache.LRUCache(maxMemoryCacheSize, function length({ value }) { + var _JSON_stringify; + if (!value) { + return 25; + } else if (value.kind === _types.CachedRouteKind.REDIRECT) { + return JSON.stringify(value.props).length; + } else if (value.kind === _types.CachedRouteKind.IMAGE) { + throw Object.defineProperty(new Error('invariant image should not be incremental-cache'), "__NEXT_ERROR_CODE", { + value: "E501", + enumerable: false, + configurable: true + }); + } else if (value.kind === _types.CachedRouteKind.FETCH) { + return JSON.stringify(value.data || '').length; + } else if (value.kind === _types.CachedRouteKind.APP_ROUTE) { + return value.body.length; + } + // rough estimate of size of cache value + if (value.kind === _types.CachedRouteKind.APP_PAGE) { + var _value_postponed; + return Math.max(1, value.html.length + getBufferSize(value.rscData) + (((_value_postponed = value.postponed) == null ? void 0 : _value_postponed.length) || 0) + getSegmentDataSize(value.segmentData)); + } + return value.html.length + (((_JSON_stringify = JSON.stringify(value.pageData)) == null ? void 0 : _JSON_stringify.length) || 0); + }); + } + return memoryCache; +} + +//# sourceMappingURL=memory-cache.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js b/cli/app/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js new file mode 100644 index 00000000000..97a657aede6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/incremental-cache/shared-cache-controls.external.js @@ -0,0 +1,73 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "SharedCacheControls", { + enumerable: true, + get: function() { + return SharedCacheControls; + } +}); +class SharedCacheControls { + static #_ = /** + * The in-memory cache of cache lives for routes. This cache is populated when + * the cache is updated with new cache lives. + */ this.cacheControls = new Map(); + constructor(/** + * The prerender manifest that contains the initial cache controls for + * routes. + */ prerenderManifest){ + this.prerenderManifest = prerenderManifest; + } + /** + * Try to get the cache control value for a route. This will first try to get + * the value from the in-memory cache. If the value is not present in the + * in-memory cache, it will be sourced from the prerender manifest. + * + * @param route the route to get the cache control for + * @returns the cache control for the route, or undefined if the values + * are not present in the in-memory cache or the prerender manifest + */ get(route) { + // This is a copy on write cache that is updated when the cache is updated. + // If the cache is never written to, then the values will be sourced from + // the prerender manifest. + let cacheControl = SharedCacheControls.cacheControls.get(route); + if (cacheControl) return cacheControl; + let prerenderData = this.prerenderManifest.routes[route]; + if (prerenderData) { + const { initialRevalidateSeconds, initialExpireSeconds } = prerenderData; + if (typeof initialRevalidateSeconds !== 'undefined') { + return { + revalidate: initialRevalidateSeconds, + expire: initialExpireSeconds + }; + } + } + const dynamicPrerenderData = this.prerenderManifest.dynamicRoutes[route]; + if (dynamicPrerenderData) { + const { fallbackRevalidate, fallbackExpire } = dynamicPrerenderData; + if (typeof fallbackRevalidate !== 'undefined') { + return { + revalidate: fallbackRevalidate, + expire: fallbackExpire + }; + } + } + return undefined; + } + /** + * Set the cache control for a route. + * + * @param route the route to set the cache control for + * @param cacheControl the cache control for the route + */ set(route, cacheControl) { + SharedCacheControls.cacheControls.set(route, cacheControl); + } + /** + * Clear the in-memory cache of cache controls for routes. + */ clear() { + SharedCacheControls.cacheControls.clear(); + } +} + +//# sourceMappingURL=shared-cache-controls.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js b/cli/app/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js new file mode 100644 index 00000000000..8b1da41ed64 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/incremental-cache/tags-manifest.external.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + areTagsExpired: null, + areTagsStale: null, + tagsManifest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + areTagsExpired: function() { + return areTagsExpired; + }, + areTagsStale: function() { + return areTagsStale; + }, + tagsManifest: function() { + return tagsManifest; + } +}); +const tagsManifest = new Map(); +const areTagsExpired = (tags, timestamp)=>{ + for (const tag of tags){ + const entry = tagsManifest.get(tag); + const expiredAt = entry == null ? void 0 : entry.expired; + if (typeof expiredAt === 'number') { + const now = Date.now(); + // For immediate expiration (expiredAt <= now) and tag was invalidated after entry was created + // OR for future expiration that has now passed (expiredAt > timestamp && expiredAt <= now) + const isImmediatelyExpired = expiredAt <= now && expiredAt > timestamp; + if (isImmediatelyExpired) { + return true; + } + } + } + return false; +}; +const areTagsStale = (tags, timestamp)=>{ + for (const tag of tags){ + const entry = tagsManifest.get(tag); + const staleAt = (entry == null ? void 0 : entry.stale) ?? 0; + if (typeof staleAt === 'number' && staleAt > timestamp) { + return true; + } + } + return false; +}; + +//# sourceMappingURL=tags-manifest.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/install-code-frame.js b/cli/app/node_modules/next/dist/server/lib/install-code-frame.js new file mode 100644 index 00000000000..5e4eb9357e7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/install-code-frame.js @@ -0,0 +1,22 @@ +/** + * Installs code frame rendering support by injecting the renderer into patch-error-inspect. + * This uses dependency injection to avoid hard dependencies on native bindings in runtime code. + * + * Should be called early in dev/build initialization, after native bindings are loaded. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "installCodeFrameSupport", { + enumerable: true, + get: function() { + return installCodeFrameSupport; + } +}); +function installCodeFrameSupport() { + const { setCodeFrameRenderer } = require('../patch-error-inspect'); + const { getOriginalCodeFrame } = require('../../next-devtools/server/shared'); + setCodeFrameRenderer(getOriginalCodeFrame); +} + +//# sourceMappingURL=install-code-frame.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/is-ipv6.js b/cli/app/node_modules/next/dist/server/lib/is-ipv6.js new file mode 100644 index 00000000000..80912f9dc62 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/is-ipv6.js @@ -0,0 +1,41 @@ +// Regex from `node/lib/internal/net.js`: https://github.com/nodejs/node/blob/9fc57006c27564ed7f75eee090eca86786508f51/lib/internal/net.js#L19-L29 +// License included below: +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isIPv6", { + enumerable: true, + get: function() { + return isIPv6; + } +}); +const v4Seg = '(?:[0-9]|[1-9][0-9]|1[0-9][0-9]|2[0-4][0-9]|25[0-5])'; +const v4Str = `(${v4Seg}[.]){3}${v4Seg}`; +const v6Seg = '(?:[0-9a-fA-F]{1,4})'; +const IPv6Reg = new RegExp('^(' + `(?:${v6Seg}:){7}(?:${v6Seg}|:)|` + `(?:${v6Seg}:){6}(?:${v4Str}|:${v6Seg}|:)|` + `(?:${v6Seg}:){5}(?::${v4Str}|(:${v6Seg}){1,2}|:)|` + `(?:${v6Seg}:){4}(?:(:${v6Seg}){0,1}:${v4Str}|(:${v6Seg}){1,3}|:)|` + `(?:${v6Seg}:){3}(?:(:${v6Seg}){0,2}:${v4Str}|(:${v6Seg}){1,4}|:)|` + `(?:${v6Seg}:){2}(?:(:${v6Seg}){0,3}:${v4Str}|(:${v6Seg}){1,5}|:)|` + `(?:${v6Seg}:){1}(?:(:${v6Seg}){0,4}:${v4Str}|(:${v6Seg}){1,6}|:)|` + `(?::((?::${v6Seg}){0,5}:${v4Str}|(?::${v6Seg}){1,7}|:))` + ')(%[0-9a-zA-Z-.:]{1,})?$'); +function isIPv6(s) { + return IPv6Reg.test(s); +} + +//# sourceMappingURL=is-ipv6.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/lazy-result.js b/cli/app/node_modules/next/dist/server/lib/lazy-result.js new file mode 100644 index 00000000000..bb56128a487 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/lazy-result.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createLazyResult: null, + isResolvedLazyResult: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createLazyResult: function() { + return createLazyResult; + }, + isResolvedLazyResult: function() { + return isResolvedLazyResult; + } +}); +function createLazyResult(fn) { + let pendingResult; + const result = { + then (onfulfilled, onrejected) { + if (!pendingResult) { + pendingResult = Promise.resolve(fn()); + } + pendingResult.then((value)=>{ + result.value = value; + }).catch(()=>{ + // The externally awaited result will be rejected via `onrejected`. We + // don't need to handle it here. But we do want to avoid an unhandled + // rejection. + }); + return pendingResult.then(onfulfilled, onrejected); + } + }; + return result; +} +function isResolvedLazyResult(result) { + return result.hasOwnProperty('value'); +} + +//# sourceMappingURL=lazy-result.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/lru-cache.js b/cli/app/node_modules/next/dist/server/lib/lru-cache.js new file mode 100644 index 00000000000..88b1f80ecb1 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/lru-cache.js @@ -0,0 +1,191 @@ +/** + * Node in the doubly-linked list used for LRU tracking. + * Each node represents a cache entry with bidirectional pointers. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "LRUCache", { + enumerable: true, + get: function() { + return LRUCache; + } +}); +class LRUNode { + constructor(key, data, size){ + this.prev = null; + this.next = null; + this.key = key; + this.data = data; + this.size = size; + } +} +/** + * Sentinel node used for head/tail boundaries. + * These nodes don't contain actual cache data but simplify list operations. + */ class SentinelNode { + constructor(){ + this.prev = null; + this.next = null; + } +} +class LRUCache { + constructor(maxSize, calculateSize, onEvict){ + this.cache = new Map(); + this.totalSize = 0; + this.maxSize = maxSize; + this.calculateSize = calculateSize; + this.onEvict = onEvict; + // Create sentinel nodes to simplify doubly-linked list operations + // HEAD <-> TAIL (empty list) + this.head = new SentinelNode(); + this.tail = new SentinelNode(); + this.head.next = this.tail; + this.tail.prev = this.head; + } + /** + * Adds a node immediately after the head (marks as most recently used). + * Used when inserting new items or when an item is accessed. + * PRECONDITION: node must be disconnected (prev/next should be null) + */ addToHead(node) { + node.prev = this.head; + node.next = this.head.next; + // head.next is always non-null (points to tail or another node) + this.head.next.prev = node; + this.head.next = node; + } + /** + * Removes a node from its current position in the doubly-linked list. + * Updates the prev/next pointers of adjacent nodes to maintain list integrity. + * PRECONDITION: node must be connected (prev/next are non-null) + */ removeNode(node) { + // Connected nodes always have non-null prev/next + node.prev.next = node.next; + node.next.prev = node.prev; + } + /** + * Moves an existing node to the head position (marks as most recently used). + * This is the core LRU operation - accessed items become most recent. + */ moveToHead(node) { + this.removeNode(node); + this.addToHead(node); + } + /** + * Removes and returns the least recently used node (the one before tail). + * This is called during eviction when the cache exceeds capacity. + * PRECONDITION: cache is not empty (ensured by caller) + */ removeTail() { + const lastNode = this.tail.prev; + // tail.prev is always non-null and always LRUNode when cache is not empty + this.removeNode(lastNode); + return lastNode; + } + /** + * Sets a key-value pair in the cache. + * If the key exists, updates the value and moves to head. + * If new, adds at head and evicts from tail if necessary. + * + * Time Complexity: + * - O(1) for uniform item sizes + * - O(k) where k is the number of items evicted (can be O(N) for variable sizes) + */ set(key, value) { + const size = (this.calculateSize == null ? void 0 : this.calculateSize.call(this, value)) ?? 1; + if (size <= 0) { + throw Object.defineProperty(new Error(`LRUCache: calculateSize returned ${size}, but size must be > 0. ` + `Items with size 0 would never be evicted, causing unbounded cache growth.`), "__NEXT_ERROR_CODE", { + value: "E1045", + enumerable: false, + configurable: true + }); + } + if (size > this.maxSize) { + console.warn('Single item size exceeds maxSize'); + return false; + } + const existing = this.cache.get(key); + if (existing) { + // Update existing node: adjust size and move to head (most recent) + existing.data = value; + this.totalSize = this.totalSize - existing.size + size; + existing.size = size; + this.moveToHead(existing); + } else { + // Add new node at head (most recent position) + const newNode = new LRUNode(key, value, size); + this.cache.set(key, newNode); + this.addToHead(newNode); + this.totalSize += size; + } + // Evict least recently used items until under capacity + while(this.totalSize > this.maxSize && this.cache.size > 0){ + const tail = this.removeTail(); + this.cache.delete(tail.key); + this.totalSize -= tail.size; + this.onEvict == null ? void 0 : this.onEvict.call(this, tail.key, tail.data); + } + return true; + } + /** + * Checks if a key exists in the cache. + * This is a pure query operation - does NOT update LRU order. + * + * Time Complexity: O(1) + */ has(key) { + return this.cache.has(key); + } + /** + * Retrieves a value by key and marks it as most recently used. + * Moving to head maintains the LRU property for future evictions. + * + * Time Complexity: O(1) + */ get(key) { + const node = this.cache.get(key); + if (!node) return undefined; + // Mark as most recently used by moving to head + this.moveToHead(node); + return node.data; + } + /** + * Returns an iterator over the cache entries. The order is outputted in the + * order of most recently used to least recently used. + */ *[Symbol.iterator]() { + let current = this.head.next; + while(current && current !== this.tail){ + // Between head and tail, current is always LRUNode + const node = current; + yield [ + node.key, + node.data + ]; + current = current.next; + } + } + /** + * Removes a specific key from the cache. + * Updates both the hash map and doubly-linked list. + * + * Note: This is an explicit removal and does NOT trigger the `onEvict` + * callback. Use this for intentional deletions where eviction tracking + * is not needed. + * + * Time Complexity: O(1) + */ remove(key) { + const node = this.cache.get(key); + if (!node) return; + this.removeNode(node); + this.cache.delete(key); + this.totalSize -= node.size; + } + /** + * Returns the number of items in the cache. + */ get size() { + return this.cache.size; + } + /** + * Returns the current total size of all cached items. + * This uses the custom size calculation if provided. + */ get currentSize() { + return this.totalSize; + } +} + +//# sourceMappingURL=lru-cache.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/match-next-data-pathname.js b/cli/app/node_modules/next/dist/server/lib/match-next-data-pathname.js new file mode 100644 index 00000000000..f3fc2d16a22 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/match-next-data-pathname.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "matchNextDataPathname", { + enumerable: true, + get: function() { + return matchNextDataPathname; + } +}); +const _pathmatch = require("../../shared/lib/router/utils/path-match"); +const matcher = (0, _pathmatch.getPathMatch)('/_next/data/:path*'); +function matchNextDataPathname(pathname) { + if (typeof pathname !== 'string') return false; + return matcher(pathname); +} + +//# sourceMappingURL=match-next-data-pathname.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/mock-request.js b/cli/app/node_modules/next/dist/server/lib/mock-request.js new file mode 100644 index 00000000000..4bee92ae88b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/mock-request.js @@ -0,0 +1,416 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + MockedRequest: null, + MockedResponse: null, + createRequestResponseMocks: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + MockedRequest: function() { + return MockedRequest; + }, + MockedResponse: function() { + return MockedResponse; + }, + createRequestResponseMocks: function() { + return createRequestResponseMocks; + } +}); +const _stream = /*#__PURE__*/ _interop_require_default(require("stream")); +const _utils = require("../web/utils"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class MockedRequest extends _stream.default.Readable { + constructor({ url, headers, method, socket = null, readable }){ + super(), // This is hardcoded for now, but can be updated to be configurable if needed. + this.httpVersion = '1.0', this.httpVersionMajor = 1, this.httpVersionMinor = 0, // If we don't actually have a socket, we'll just use a mock one that + // always returns false for the `encrypted` property and undefined for the + // `remoteAddress` property. + this.socket = new Proxy({}, { + get: (_target, prop)=>{ + if (prop !== 'encrypted' && prop !== 'remoteAddress') { + throw Object.defineProperty(new Error('Method not implemented'), "__NEXT_ERROR_CODE", { + value: "E52", + enumerable: false, + configurable: true + }); + } + if (prop === 'remoteAddress') return undefined; + // For this mock request, always ensure we just respond with the encrypted + // set to false to ensure there's no odd leakages. + return false; + } + }); + this.url = url; + this.headers = headers; + this.method = method; + if (readable) { + this.bodyReadable = readable; + this.bodyReadable.on('end', ()=>this.emit('end')); + this.bodyReadable.on('close', ()=>this.emit('close')); + } + if (socket) { + this.socket = socket; + } + } + get headersDistinct() { + const headers = {}; + for (const [key, value] of Object.entries(this.headers)){ + if (!value) continue; + headers[key] = Array.isArray(value) ? value : [ + value + ]; + } + return headers; + } + _read(size) { + if (this.bodyReadable) { + return this.bodyReadable._read(size); + } else { + this.emit('end'); + this.emit('close'); + } + } + /** + * The `connection` property is just an alias for the `socket` property. + * + * @deprecated — since v13.0.0 - Use socket instead. + */ get connection() { + return this.socket; + } + // The following methods are not implemented as they are not used in the + // Next.js codebase. + get aborted() { + throw Object.defineProperty(new Error('Method not implemented'), "__NEXT_ERROR_CODE", { + value: "E52", + enumerable: false, + configurable: true + }); + } + get complete() { + throw Object.defineProperty(new Error('Method not implemented'), "__NEXT_ERROR_CODE", { + value: "E52", + enumerable: false, + configurable: true + }); + } + get trailers() { + throw Object.defineProperty(new Error('Method not implemented'), "__NEXT_ERROR_CODE", { + value: "E52", + enumerable: false, + configurable: true + }); + } + get trailersDistinct() { + throw Object.defineProperty(new Error('Method not implemented'), "__NEXT_ERROR_CODE", { + value: "E52", + enumerable: false, + configurable: true + }); + } + get rawTrailers() { + throw Object.defineProperty(new Error('Method not implemented'), "__NEXT_ERROR_CODE", { + value: "E52", + enumerable: false, + configurable: true + }); + } + get rawHeaders() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + setTimeout() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } +} +class MockedResponse extends _stream.default.Writable { + constructor(res = {}){ + super(), this.statusMessage = '', this.finished = false, this.headersSent = false, /** + * A list of buffers that have been written to the response. + * + * @internal - used internally by Next.js + */ this.buffers = []; + this.statusCode = res.statusCode ?? 200; + this.socket = res.socket ?? null; + this.headers = res.headers ? (0, _utils.fromNodeOutgoingHttpHeaders)(res.headers) : new Headers(); + this.headPromise = new Promise((resolve)=>{ + this.headPromiseResolve = resolve; + }); + // Attach listeners for the `finish`, `end`, and `error` events to the + // `MockedResponse` instance. + this.hasStreamed = new Promise((resolve, reject)=>{ + this.on('finish', ()=>resolve(true)); + this.on('end', ()=>resolve(true)); + this.on('error', (err)=>reject(err)); + }).then((val)=>{ + this.headPromiseResolve == null ? void 0 : this.headPromiseResolve.call(this); + return val; + }); + if (res.resWriter) { + this.resWriter = res.resWriter; + } + } + appendHeader(name, value) { + const values = Array.isArray(value) ? value : [ + value + ]; + for (const v of values){ + this.headers.append(name, v); + } + return this; + } + /** + * Returns true if the response has been sent, false otherwise. + * + * @internal - used internally by Next.js + */ get isSent() { + return this.finished || this.headersSent; + } + /** + * The `connection` property is just an alias for the `socket` property. + * + * @deprecated — since v13.0.0 - Use socket instead. + */ get connection() { + return this.socket; + } + write(chunk) { + if (this.resWriter) { + return this.resWriter(chunk); + } + this.buffers.push(Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk)); + return true; + } + end() { + this.finished = true; + return super.end(...arguments); + } + /** + * This method is a no-op because the `MockedResponse` instance is not + * actually connected to a socket. This method is not specified on the + * interface type for `ServerResponse` but is called by Node.js. + * + * @see https://github.com/nodejs/node/pull/7949 + */ _implicitHeader() {} + _write(chunk, _encoding, callback) { + this.write(chunk); + // According to Node.js documentation, the callback MUST be invoked to + // signal that the write completed successfully. If this callback is not + // invoked, the 'finish' event will not be emitted. + // + // https://nodejs.org/docs/latest-v16.x/api/stream.html#writable_writechunk-encoding-callback + callback(); + } + writeHead(statusCode, statusMessage, headers) { + if (!headers && typeof statusMessage !== 'string') { + headers = statusMessage; + } else if (typeof statusMessage === 'string' && statusMessage.length > 0) { + this.statusMessage = statusMessage; + } + if (headers) { + // When headers have been set with response.setHeader(), they will be + // merged with any headers passed to response.writeHead(), with the + // headers passed to response.writeHead() given precedence. + // + // https://nodejs.org/api/http.html#responsewriteheadstatuscode-statusmessage-headers + // + // For this reason, we need to only call `set` to ensure that this will + // overwrite any existing headers. + if (Array.isArray(headers)) { + // headers may be an Array where the keys and values are in the same list. + // It is not a list of tuples. So, the even-numbered offsets are key + // values, and the odd-numbered offsets are the associated values. The + // array is in the same format as request.rawHeaders. + for(let i = 0; i < headers.length; i += 2){ + // The header key is always a string according to the spec. + this.setHeader(headers[i], headers[i + 1]); + } + } else { + for (const [key, value] of Object.entries(headers)){ + // Skip undefined values + if (typeof value === 'undefined') continue; + this.setHeader(key, value); + } + } + } + this.statusCode = statusCode; + this.headersSent = true; + this.headPromiseResolve == null ? void 0 : this.headPromiseResolve.call(this); + return this; + } + hasHeader(name) { + return this.headers.has(name); + } + getHeader(name) { + return this.headers.get(name) ?? undefined; + } + getHeaders() { + return (0, _utils.toNodeOutgoingHttpHeaders)(this.headers); + } + getHeaderNames() { + return Array.from(this.headers.keys()); + } + setHeader(name, value) { + if (Array.isArray(value)) { + // Because `set` here should override any existing values, we need to + // delete the existing values before setting the new ones via `append`. + this.headers.delete(name); + for (const v of value){ + this.headers.append(name, v); + } + } else if (typeof value === 'number') { + this.headers.set(name, value.toString()); + } else { + this.headers.set(name, value); + } + return this; + } + removeHeader(name) { + this.headers.delete(name); + } + flushHeaders() { + // This is a no-op because we don't actually have a socket to flush the + // headers to. + } + // The following methods are not implemented as they are not used in the + // Next.js codebase. + get strictContentLength() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + writeEarlyHints() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + get req() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + assignSocket() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + detachSocket() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + writeContinue() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + writeProcessing() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + get upgrading() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + get chunkedEncoding() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + get shouldKeepAlive() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + get useChunkedEncodingByDefault() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + get sendDate() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + setTimeout() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + addTrailers() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } + setHeaders() { + throw Object.defineProperty(new Error('Method not implemented.'), "__NEXT_ERROR_CODE", { + value: "E41", + enumerable: false, + configurable: true + }); + } +} +function createRequestResponseMocks({ url, headers = {}, method = 'GET', bodyReadable, resWriter, socket = null }) { + return { + req: new MockedRequest({ + url, + headers, + method, + socket, + readable: bodyReadable + }), + res: new MockedResponse({ + socket, + resWriter + }) + }; +} + +//# sourceMappingURL=mock-request.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/module-loader/node-module-loader.js b/cli/app/node_modules/next/dist/server/lib/module-loader/node-module-loader.js new file mode 100644 index 00000000000..7d5fe4bc727 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/module-loader/node-module-loader.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NodeModuleLoader", { + enumerable: true, + get: function() { + return NodeModuleLoader; + } +}); +class NodeModuleLoader { + async load(id) { + if (process.env.NEXT_RUNTIME !== 'edge') { + // Need to `await` to cover the case that route is marked ESM modules by ESM escalation. + return await (process.env.NEXT_MINIMAL ? __non_webpack_require__(id) : require(id)); + } + throw Object.defineProperty(new Error('NodeModuleLoader is not supported in edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E25", + enumerable: false, + configurable: true + }); + } +} + +//# sourceMappingURL=node-module-loader.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/node-fs-methods.js b/cli/app/node_modules/next/dist/server/lib/node-fs-methods.js new file mode 100644 index 00000000000..b19f4162e72 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/node-fs-methods.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "nodeFs", { + enumerable: true, + get: function() { + return nodeFs; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const nodeFs = { + existsSync: _fs.default.existsSync, + readFile: _fs.default.promises.readFile, + readFileSync: _fs.default.readFileSync, + writeFile: (f, d)=>_fs.default.promises.writeFile(f, d), + mkdir: (dir)=>_fs.default.promises.mkdir(dir, { + recursive: true + }), + stat: (f)=>_fs.default.promises.stat(f) +}; + +//# sourceMappingURL=node-fs-methods.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/parse-stack.js b/cli/app/node_modules/next/dist/server/lib/parse-stack.js new file mode 100644 index 00000000000..b628adc0774 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/parse-stack.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseStack", { + enumerable: true, + get: function() { + return parseStack; + } +}); +const _stacktraceparser = require("next/dist/compiled/stacktrace-parser"); +const regexNextStatic = /\/_next(\/static\/.+)/; +function parseStack(stack, distDir = process.env.__NEXT_DIST_DIR) { + if (!stack) return []; + // throw away eval information that stacktrace-parser doesn't support + // adapted from https://github.com/stacktracejs/error-stack-parser/blob/9f33c224b5d7b607755eb277f9d51fcdb7287e24/error-stack-parser.js#L59C33-L59C62 + stack = stack.split('\n').map((line)=>{ + if (line.includes('(eval ')) { + line = line.replace(/eval code/g, 'eval').replace(/\(eval at [^()]* \(/, '(file://').replace(/\),.*$/g, ')'); + } + return line; + }).join('\n'); + const frames = (0, _stacktraceparser.parse)(stack); + return frames.map((frame)=>{ + try { + const url = new URL(frame.file); + const res = regexNextStatic.exec(url.pathname); + if (res) { + var _distDir_replace; + const effectiveDistDir = distDir == null ? void 0 : (_distDir_replace = distDir.replace(/\\/g, '/')) == null ? void 0 : _distDir_replace.replace(/\/$/, ''); + if (effectiveDistDir) { + frame.file = 'file://' + effectiveDistDir.concat(res.pop()) + url.search; + } + } + } catch {} + return { + file: frame.file, + line1: frame.lineNumber, + column1: frame.column, + methodName: frame.methodName, + arguments: frame.arguments + }; + }); +} + +//# sourceMappingURL=parse-stack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/patch-fetch.js b/cli/app/node_modules/next/dist/server/lib/patch-fetch.js new file mode 100644 index 00000000000..9a55811ef31 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/patch-fetch.js @@ -0,0 +1,978 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NEXT_PATCH_SYMBOL: null, + createPatchedFetcher: null, + patchFetch: null, + validateRevalidate: null, + validateTags: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NEXT_PATCH_SYMBOL: function() { + return NEXT_PATCH_SYMBOL; + }, + createPatchedFetcher: function() { + return createPatchedFetcher; + }, + patchFetch: function() { + return patchFetch; + }, + validateRevalidate: function() { + return validateRevalidate; + }, + validateTags: function() { + return validateTags; + } +}); +const _constants = require("./trace/constants"); +const _tracer = require("./trace/tracer"); +const _constants1 = require("../../lib/constants"); +const _dynamicrendering = require("../app-render/dynamic-rendering"); +const _dynamicrenderingutils = require("../dynamic-rendering-utils"); +const _dedupefetch = require("./dedupe-fetch"); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const _responsecache = require("../response-cache"); +const _cloneresponse = require("./clone-response"); +const _stagedrendering = require("../app-render/staged-rendering"); +const isEdgeRuntime = process.env.NEXT_RUNTIME === 'edge'; +const NEXT_PATCH_SYMBOL = Symbol.for('next-patch'); +function isFetchPatched() { + return globalThis[NEXT_PATCH_SYMBOL] === true; +} +function validateRevalidate(revalidateVal, route) { + try { + let normalizedRevalidate = undefined; + if (revalidateVal === false) { + normalizedRevalidate = _constants1.INFINITE_CACHE; + } else if (typeof revalidateVal === 'number' && !isNaN(revalidateVal) && revalidateVal > -1) { + normalizedRevalidate = revalidateVal; + } else if (typeof revalidateVal !== 'undefined') { + throw Object.defineProperty(new Error(`Invalid revalidate value "${revalidateVal}" on "${route}", must be a non-negative number or false`), "__NEXT_ERROR_CODE", { + value: "E179", + enumerable: false, + configurable: true + }); + } + return normalizedRevalidate; + } catch (err) { + // handle client component error from attempting to check revalidate value + if (err instanceof Error && err.message.includes('Invalid revalidate')) { + throw err; + } + return undefined; + } +} +function validateTags(tags, description) { + const validTags = []; + const invalidTags = []; + for(let i = 0; i < tags.length; i++){ + const tag = tags[i]; + if (typeof tag !== 'string') { + invalidTags.push({ + tag, + reason: 'invalid type, must be a string' + }); + } else if (tag.length > _constants1.NEXT_CACHE_TAG_MAX_LENGTH) { + invalidTags.push({ + tag, + reason: `exceeded max length of ${_constants1.NEXT_CACHE_TAG_MAX_LENGTH}` + }); + } else { + validTags.push(tag); + } + if (validTags.length > _constants1.NEXT_CACHE_TAG_MAX_ITEMS) { + console.warn(`Warning: exceeded max tag count for ${description}, dropped tags:`, tags.slice(i).join(', ')); + break; + } + } + if (invalidTags.length > 0) { + console.warn(`Warning: invalid tags passed to ${description}: `); + for (const { tag, reason } of invalidTags){ + console.log(`tag: "${tag}" ${reason}`); + } + } + return validTags; +} +function trackFetchMetric(workStore, ctx) { + if (!workStore.shouldTrackFetchMetrics) { + return; + } + workStore.fetchMetrics ??= []; + workStore.fetchMetrics.push({ + ...ctx, + end: performance.timeOrigin + performance.now(), + idx: workStore.nextFetchId || 0 + }); +} +async function createCachedPrerenderResponse(res, cacheKey, incrementalCacheContext, incrementalCache, revalidate, handleUnlock) { + // We are prerendering at build time or revalidate time with cacheComponents so we + // need to buffer the response so we can guarantee it can be read in a + // microtask. + const bodyBuffer = await res.arrayBuffer(); + const fetchedData = { + headers: Object.fromEntries(res.headers.entries()), + body: Buffer.from(bodyBuffer).toString('base64'), + status: res.status, + url: res.url + }; + // We can skip setting the serverComponentsHmrCache because we aren't in dev + // mode. + if (incrementalCacheContext) { + await incrementalCache.set(cacheKey, { + kind: _responsecache.CachedRouteKind.FETCH, + data: fetchedData, + revalidate + }, incrementalCacheContext); + } + await handleUnlock(); + // We return a new Response to the caller. + return new Response(bodyBuffer, { + headers: res.headers, + status: res.status, + statusText: res.statusText + }); +} +async function createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheContext, incrementalCache, serverComponentsHmrCache, revalidate, input, handleUnlock, signal) { + // We're cloning the response using this utility because there exists a bug in + // the undici library around response cloning. See the following pull request + // for more details: https://github.com/vercel/next.js/pull/73274 + const [cloned1, cloned2] = (0, _cloneresponse.cloneResponse)(res); + // We are dynamically rendering including dev mode. We want to return the + // response to the caller as soon as possible because it might stream over a + // very long time. + const cacheSetPromise = cloned1.arrayBuffer().then(async (arrayBuffer)=>{ + const bodyBuffer = Buffer.from(arrayBuffer); + const fetchedData = { + headers: Object.fromEntries(cloned1.headers.entries()), + body: bodyBuffer.toString('base64'), + status: cloned1.status, + url: cloned1.url + }; + serverComponentsHmrCache == null ? void 0 : serverComponentsHmrCache.set(cacheKey, fetchedData); + if (incrementalCacheContext) { + await incrementalCache.set(cacheKey, { + kind: _responsecache.CachedRouteKind.FETCH, + data: fetchedData, + revalidate + }, incrementalCacheContext); + } + }).catch((error)=>{ + // Don't warn if the request was aborted intentionally. + if (!(signal == null ? void 0 : signal.aborted)) { + console.warn(`Failed to set fetch cache`, input, error); + } + }).finally(handleUnlock); + const pendingRevalidateKey = `cache-set-${cacheKey}`; + const pendingRevalidates = workStore.pendingRevalidates ??= {}; + let pendingRevalidatePromise = Promise.resolve(); + if (pendingRevalidateKey in pendingRevalidates) { + // There is already a pending revalidate entry that we need to await to + // avoid race conditions. + pendingRevalidatePromise = pendingRevalidates[pendingRevalidateKey]; + } + pendingRevalidates[pendingRevalidateKey] = pendingRevalidatePromise.then(()=>cacheSetPromise).finally(()=>{ + // If the pending revalidate is not present in the store, then we have + // nothing to delete. + if (!(pendingRevalidates == null ? void 0 : pendingRevalidates[pendingRevalidateKey])) { + return; + } + delete pendingRevalidates[pendingRevalidateKey]; + }); + return cloned2; +} +function createPatchedFetcher(originFetch, { workAsyncStorage, workUnitAsyncStorage }) { + // Create the patched fetch function. + const patched = async function fetch(input, init) { + var _init_method, _init_next; + let url; + try { + url = new URL(input instanceof Request ? input.url : input); + url.username = ''; + url.password = ''; + } catch { + // Error caused by malformed URL should be handled by native fetch + url = undefined; + } + const fetchUrl = (url == null ? void 0 : url.href) ?? ''; + const method = (init == null ? void 0 : (_init_method = init.method) == null ? void 0 : _init_method.toUpperCase()) || 'GET'; + // Do create a new span trace for internal fetches in the + // non-verbose mode. + const isInternal = (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next.internal) === true; + const hideSpan = process.env.NEXT_OTEL_FETCH_DISABLED === '1'; + // We don't track fetch metrics for internal fetches + // so it's not critical that we have a start time, as it won't be recorded. + // This is to workaround a flaky issue where performance APIs might + // not be available and will require follow-up investigation. + const fetchStart = isInternal ? undefined : performance.timeOrigin + performance.now(); + const workStore = workAsyncStorage.getStore(); + const workUnitStore = workUnitAsyncStorage.getStore(); + let cacheSignal = workUnitStore ? (0, _workunitasyncstorageexternal.getCacheSignal)(workUnitStore) : null; + if (cacheSignal) { + cacheSignal.beginRead(); + } + const result = (0, _tracer.getTracer)().trace(isInternal ? _constants.NextNodeServerSpan.internalFetch : _constants.AppRenderSpan.fetch, { + hideSpan, + kind: _tracer.SpanKind.CLIENT, + spanName: [ + 'fetch', + method, + fetchUrl + ].filter(Boolean).join(' '), + attributes: { + 'http.url': fetchUrl, + 'http.method': method, + 'net.peer.name': url == null ? void 0 : url.hostname, + 'net.peer.port': (url == null ? void 0 : url.port) || undefined + } + }, async ()=>{ + var _getRequestMeta; + // If this is an internal fetch, we should not do any special treatment. + if (isInternal) { + return originFetch(input, init); + } + // If the workStore is not available, we can't do any + // special treatment of fetch, therefore fallback to the original + // fetch implementation. + if (!workStore) { + return originFetch(input, init); + } + // We should also fallback to the original fetch implementation if we + // are in draft mode, it does not constitute a static generation. + if (workStore.isDraftMode) { + return originFetch(input, init); + } + const isRequestInput = input && typeof input === 'object' && typeof input.method === 'string'; + const getRequestMeta = (field)=>{ + // If request input is present but init is not, retrieve from input first. + const value = init == null ? void 0 : init[field]; + return value || (isRequestInput ? input[field] : null); + }; + let finalRevalidate = undefined; + const getNextField = (field)=>{ + var _init_next, _init_next1, _input_next; + return typeof (init == null ? void 0 : (_init_next = init.next) == null ? void 0 : _init_next[field]) !== 'undefined' ? init == null ? void 0 : (_init_next1 = init.next) == null ? void 0 : _init_next1[field] : isRequestInput ? (_input_next = input.next) == null ? void 0 : _input_next[field] : undefined; + }; + // RequestInit doesn't keep extra fields e.g. next so it's + // only available if init is used separate + const originalFetchRevalidate = getNextField('revalidate'); + let currentFetchRevalidate = originalFetchRevalidate; + const tags = validateTags(getNextField('tags') || [], `fetch ${input.toString()}`); + let revalidateStore; + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + // TODO: Stop accumulating tags in client prerender. (fallthrough) + case 'prerender-client': + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + revalidateStore = workUnitStore; + break; + case 'request': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + if (revalidateStore) { + if (Array.isArray(tags)) { + // Collect tags onto parent caches or parent prerenders. + const collectedTags = revalidateStore.tags ?? (revalidateStore.tags = []); + for (const tag of tags){ + if (!collectedTags.includes(tag)) { + collectedTags.push(tag); + } + } + } + } + const implicitTags = workUnitStore == null ? void 0 : workUnitStore.implicitTags; + let pageFetchCacheMode = workStore.fetchCache; + if (workUnitStore) { + switch(workUnitStore.type){ + case 'unstable-cache': + // Inside unstable-cache we treat it the same as force-no-store on + // the page. + pageFetchCacheMode = 'force-no-store'; + break; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + const isUsingNoStore = !!workStore.isUnstableNoStore; + let currentFetchCacheConfig = getRequestMeta('cache'); + let cacheReason = ''; + let cacheWarning; + if (typeof currentFetchCacheConfig === 'string' && typeof currentFetchRevalidate !== 'undefined') { + // If the revalidate value conflicts with the cache value, we should warn the user and unset the conflicting values. + const isConflictingRevalidate = // revalidate: 0 and cache: force-cache + currentFetchCacheConfig === 'force-cache' && currentFetchRevalidate === 0 || // revalidate: >0 or revalidate: false and cache: no-store + currentFetchCacheConfig === 'no-store' && (currentFetchRevalidate > 0 || currentFetchRevalidate === false); + if (isConflictingRevalidate) { + cacheWarning = `Specified "cache: ${currentFetchCacheConfig}" and "revalidate: ${currentFetchRevalidate}", only one should be specified.`; + currentFetchCacheConfig = undefined; + currentFetchRevalidate = undefined; + } + } + const hasExplicitFetchCacheOptOut = // fetch config itself signals not to cache + currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store' || // the fetch isn't explicitly caching and the segment level cache config signals not to cache + // note: `pageFetchCacheMode` is also set by being in an unstable_cache context. + pageFetchCacheMode === 'force-no-store' || pageFetchCacheMode === 'only-no-store'; + // If no explicit fetch cache mode is set, but dynamic = `force-dynamic` is set, + // we shouldn't consider caching the fetch. This is because the `dynamic` cache + // is considered a "top-level" cache mode, whereas something like `fetchCache` is more + // fine-grained. Top-level modes are responsible for setting reasonable defaults for the + // other configurations. + const noFetchConfigAndForceDynamic = !pageFetchCacheMode && !currentFetchCacheConfig && !currentFetchRevalidate && workStore.forceDynamic; + if (// force-cache was specified without a revalidate value. We set the revalidate value to false + // which will signal the cache to not revalidate + currentFetchCacheConfig === 'force-cache' && typeof currentFetchRevalidate === 'undefined') { + currentFetchRevalidate = false; + } else if (hasExplicitFetchCacheOptOut || noFetchConfigAndForceDynamic) { + currentFetchRevalidate = 0; + } + if (currentFetchCacheConfig === 'no-cache' || currentFetchCacheConfig === 'no-store') { + cacheReason = `cache: ${currentFetchCacheConfig}`; + } + finalRevalidate = validateRevalidate(currentFetchRevalidate, workStore.route); + const _headers = getRequestMeta('headers'); + const initHeaders = typeof (_headers == null ? void 0 : _headers.get) === 'function' ? _headers : new Headers(_headers || {}); + const hasUnCacheableHeader = initHeaders.get('authorization') || initHeaders.get('cookie'); + const isUnCacheableMethod = ![ + 'get', + 'head' + ].includes(((_getRequestMeta = getRequestMeta('method')) == null ? void 0 : _getRequestMeta.toLowerCase()) || 'get'); + /** + * We automatically disable fetch caching under the following conditions: + * - Fetch cache configs are not set. Specifically: + * - A page fetch cache mode is not set (export const fetchCache=...) + * - A fetch cache mode is not set in the fetch call (fetch(url, { cache: ... })) + * or the fetch cache mode is set to 'default' + * - A fetch revalidate value is not set in the fetch call (fetch(url, { revalidate: ... })) + * - OR the fetch comes after a configuration that triggered dynamic rendering (e.g., reading cookies()) + * and the fetch was considered uncacheable (e.g., POST method or has authorization headers) + */ const hasNoExplicitCacheConfig = // eslint-disable-next-line eqeqeq + pageFetchCacheMode == undefined && // eslint-disable-next-line eqeqeq + (currentFetchCacheConfig == undefined || // when considering whether to opt into the default "no-cache" fetch semantics, + // a "default" cache config should be treated the same as no cache config + currentFetchCacheConfig === 'default') && // eslint-disable-next-line eqeqeq + currentFetchRevalidate == undefined; + let autoNoCache = Boolean((hasUnCacheableHeader || isUnCacheableMethod) && (revalidateStore == null ? void 0 : revalidateStore.revalidate) === 0); + let isImplicitBuildTimeCache = false; + if (!autoNoCache && hasNoExplicitCacheConfig) { + // We don't enable automatic no-cache behavior during build-time + // prerendering so that we can still leverage the fetch cache between + // export workers. + if (workStore.isBuildTimePrerendering) { + isImplicitBuildTimeCache = true; + } else { + autoNoCache = true; + } + } + // If we have no cache config, and we're in Dynamic I/O prerendering, + // it'll be a dynamic call. We don't have to issue that dynamic call. + if (hasNoExplicitCacheConfig && workUnitStore !== undefined) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + // While we don't want to do caching in the client scope we know the + // fetch will be dynamic for cacheComponents so we may as well avoid the + // call here. (fallthrough) + case 'prerender-client': + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'validation-client': + break; + case 'request': + if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) { + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + await workUnitStore.stagedRendering.waitForStage(_stagedrendering.RenderStage.Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + switch(pageFetchCacheMode){ + case 'force-no-store': + { + cacheReason = 'fetchCache = force-no-store'; + break; + } + case 'only-no-store': + { + if (currentFetchCacheConfig === 'force-cache' || typeof finalRevalidate !== 'undefined' && finalRevalidate > 0) { + throw Object.defineProperty(new Error(`cache: 'force-cache' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-no-store'`), "__NEXT_ERROR_CODE", { + value: "E448", + enumerable: false, + configurable: true + }); + } + cacheReason = 'fetchCache = only-no-store'; + break; + } + case 'only-cache': + { + if (currentFetchCacheConfig === 'no-store') { + throw Object.defineProperty(new Error(`cache: 'no-store' used on fetch for ${fetchUrl} with 'export const fetchCache = 'only-cache'`), "__NEXT_ERROR_CODE", { + value: "E521", + enumerable: false, + configurable: true + }); + } + break; + } + case 'force-cache': + { + if (typeof currentFetchRevalidate === 'undefined' || currentFetchRevalidate === 0) { + cacheReason = 'fetchCache = force-cache'; + finalRevalidate = _constants1.INFINITE_CACHE; + } + break; + } + case 'default-cache': + case 'default-no-store': + case 'auto': + case undefined: + break; + default: + pageFetchCacheMode; + } + if (typeof finalRevalidate === 'undefined') { + if (pageFetchCacheMode === 'default-cache' && !isUsingNoStore) { + finalRevalidate = _constants1.INFINITE_CACHE; + cacheReason = 'fetchCache = default-cache'; + } else if (pageFetchCacheMode === 'default-no-store') { + finalRevalidate = 0; + cacheReason = 'fetchCache = default-no-store'; + } else if (isUsingNoStore) { + finalRevalidate = 0; + cacheReason = 'noStore call'; + } else if (autoNoCache) { + finalRevalidate = 0; + cacheReason = 'auto no cache'; + } else { + // TODO: should we consider this case an invariant? + cacheReason = 'auto cache'; + finalRevalidate = revalidateStore ? revalidateStore.revalidate : _constants1.INFINITE_CACHE; + } + } else if (!cacheReason) { + cacheReason = `revalidate: ${finalRevalidate}`; + } + if (// when force static is configured we don't bail from + // `revalidate: 0` values + !(workStore.forceStatic && finalRevalidate === 0) && // we don't consider autoNoCache to switch to dynamic for ISR + !autoNoCache && // If the revalidate value isn't currently set or the value is less + // than the current revalidate value, we should update the revalidate + // value. + revalidateStore && finalRevalidate < revalidateStore.revalidate) { + // If we were setting the revalidate value to 0, we should try to + // postpone instead first. + if (finalRevalidate === 0) { + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + // If we're in an instant validation, a dynamic fetch won't + // have time to resolve during the validation prerender anyway, + // so we leave it hanging. This can cause false negatives in shared parents, + // but we accept that for now, because client data fetching is non-idiomatic. + // eslint-disable-next-line no-fallthrough + case 'validation-client': + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) { + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + await workUnitStore.stagedRendering.waitForStage(_stagedrendering.RenderStage.Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`); + } + // We only want to set the revalidate store's revalidate time if it + // was explicitly set for the fetch call, i.e. + // originalFetchRevalidate. + if (revalidateStore && originalFetchRevalidate === finalRevalidate) { + revalidateStore.revalidate = finalRevalidate; + } + } + const isCacheableRevalidate = typeof finalRevalidate === 'number' && finalRevalidate > 0; + let cacheKey; + const { incrementalCache } = workStore; + let isHmrRefresh = false; + let serverComponentsHmrCache; + if (workUnitStore) { + switch(workUnitStore.type){ + case 'request': + case 'cache': + case 'private-cache': + isHmrRefresh = workUnitStore.isHmrRefresh ?? false; + serverComponentsHmrCache = workUnitStore.serverComponentsHmrCache; + break; + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + case 'prerender-ppr': + case 'prerender-legacy': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + if (incrementalCache && (isCacheableRevalidate || serverComponentsHmrCache)) { + try { + cacheKey = await incrementalCache.generateCacheKey(fetchUrl, isRequestInput ? input : init); + } catch (err) { + console.error(`Failed to generate cache key for`, input); + } + } + const fetchIdx = workStore.nextFetchId ?? 1; + workStore.nextFetchId = fetchIdx + 1; + let handleUnlock = ()=>{}; + const doOriginalFetch = async (isStale, cacheReasonOverride)=>{ + const requestInputFields = [ + 'cache', + 'credentials', + 'headers', + 'integrity', + 'keepalive', + 'method', + 'mode', + 'redirect', + 'referrer', + 'referrerPolicy', + 'window', + 'duplex', + // don't pass through signal when revalidating + ...isStale ? [] : [ + 'signal' + ] + ]; + if (isRequestInput) { + const reqInput = input; + const reqOptions = { + body: reqInput._ogBody || reqInput.body + }; + for (const field of requestInputFields){ + // @ts-expect-error custom fields + reqOptions[field] = reqInput[field]; + } + input = new Request(reqInput.url, reqOptions); + } else if (init) { + const { _ogBody, body, signal, ...otherInput } = init; + init = { + ...otherInput, + body: _ogBody || body, + signal: isStale ? undefined : signal + }; + } + // add metadata to init without editing the original + const clonedInit = { + ...init, + next: { + ...init == null ? void 0 : init.next, + fetchType: 'origin', + fetchIdx + } + }; + return originFetch(input, clonedInit).then(async (res)=>{ + if (!isStale && fetchStart) { + trackFetchMetric(workStore, { + start: fetchStart, + url: fetchUrl, + cacheReason: cacheReasonOverride || cacheReason, + cacheStatus: finalRevalidate === 0 || cacheReasonOverride ? 'skip' : 'miss', + cacheWarning, + status: res.status, + method: clonedInit.method || 'GET' + }); + } + if (res.status === 200 && incrementalCache && cacheKey && (isCacheableRevalidate || serverComponentsHmrCache)) { + const normalizedRevalidate = finalRevalidate >= _constants1.INFINITE_CACHE ? _constants1.CACHE_ONE_YEAR_SECONDS : finalRevalidate; + const incrementalCacheConfig = isCacheableRevalidate ? { + fetchCache: true, + fetchUrl, + fetchIdx, + tags, + isImplicitBuildTimeCache + } : undefined; + switch(workUnitStore == null ? void 0 : workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock); + case 'request': + if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering && workUnitStore.cacheSignal && isCacheableRevalidate) { + // We're filling caches for a staged render with an + // explicit cache config, so we need to wait for the + // response to finish instead of streaming. For HMR-only + // caching (no explicit revalidate), we fall through to + // createCachedDynamicResponse which handles streaming + // and abort gracefully. + return createCachedPrerenderResponse(res, cacheKey, incrementalCacheConfig, incrementalCache, normalizedRevalidate, handleUnlock); + } + // fallthrough + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + case undefined: + return createCachedDynamicResponse(workStore, res, cacheKey, incrementalCacheConfig, incrementalCache, serverComponentsHmrCache, normalizedRevalidate, input, handleUnlock, getRequestMeta('signal')); + default: + workUnitStore; + } + } + // we had response that we determined shouldn't be cached so we return it + // and don't cache it. This also needs to unlock the cache lock we acquired. + await handleUnlock(); + return res; + }).catch((error)=>{ + handleUnlock(); + throw error; + }); + }; + let cacheReasonOverride; + let isForegroundRevalidate = false; + let isHmrRefreshCache = false; + if (cacheKey && incrementalCache) { + let cachedFetchData; + if (isHmrRefresh && serverComponentsHmrCache) { + cachedFetchData = serverComponentsHmrCache.get(cacheKey); + isHmrRefreshCache = true; + } + if (isCacheableRevalidate && !cachedFetchData) { + handleUnlock = await incrementalCache.lock(cacheKey); + const entry = workStore.isOnDemandRevalidate ? null : await incrementalCache.get(cacheKey, { + kind: _responsecache.IncrementalCacheKind.FETCH, + revalidate: finalRevalidate, + fetchUrl, + fetchIdx, + tags, + softTags: implicitTags == null ? void 0 : implicitTags.tags + }); + if (hasNoExplicitCacheConfig && workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + // We sometimes use the cache to dedupe fetches that do not + // specify a cache configuration. In these cases we want to + // make sure we still exclude them from prerenders if + // cacheComponents is on so we introduce an artificial task boundary + // here. + await getTimeoutBoundary(); + break; + case 'request': + if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) { + await workUnitStore.stagedRendering.waitForStage(_stagedrendering.RenderStage.Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + if (entry) { + await handleUnlock(); + } else { + // in dev, incremental cache response will be null in case the browser adds `cache-control: no-cache` in the request headers + // TODO: it seems like we also hit this after revalidates in dev? + cacheReasonOverride = 'cache-control: no-cache (hard refresh)'; + } + if ((entry == null ? void 0 : entry.value) && entry.value.kind === _responsecache.CachedRouteKind.FETCH) { + // when stale and is revalidating we wait for fresh data + // so the revalidated entry has the updated data + if (workStore.isStaticGeneration && entry.isStale) { + isForegroundRevalidate = true; + } else { + if (entry.isStale) { + workStore.pendingRevalidates ??= {}; + if (!workStore.pendingRevalidates[cacheKey]) { + const pendingRevalidate = doOriginalFetch(true).then(async (response)=>({ + body: await response.arrayBuffer(), + headers: response.headers, + status: response.status, + statusText: response.statusText + })).finally(()=>{ + workStore.pendingRevalidates ??= {}; + delete workStore.pendingRevalidates[cacheKey || '']; + }); + // Attach the empty catch here so we don't get a "unhandled + // promise rejection" warning. + pendingRevalidate.catch(console.error); + workStore.pendingRevalidates[cacheKey] = pendingRevalidate; + } + } + cachedFetchData = entry.value.data; + } + } + } + if (cachedFetchData) { + if (fetchStart) { + trackFetchMetric(workStore, { + start: fetchStart, + url: fetchUrl, + cacheReason, + cacheStatus: isHmrRefreshCache ? 'hmr' : 'hit', + cacheWarning, + status: cachedFetchData.status || 200, + method: (init == null ? void 0 : init.method) || 'GET' + }); + } + const response = new Response(Buffer.from(cachedFetchData.body, 'base64'), { + headers: cachedFetchData.headers, + status: cachedFetchData.status + }); + Object.defineProperty(response, 'url', { + value: cachedFetchData.url + }); + return response; + } + } + if ((workStore.isStaticGeneration || process.env.NODE_ENV === 'development' && process.env.__NEXT_CACHE_COMPONENTS && workUnitStore && // eslint-disable-next-line no-restricted-syntax + workUnitStore.type === 'request' && workUnitStore.stagedRendering) && init && typeof init === 'object') { + const { cache } = init; + // Delete `cache` property as Cloudflare Workers will throw an error + if (isEdgeRuntime) delete init.cache; + if (cache === 'no-store') { + // If enabled, we should bail out of static generation. + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + case 'validation-client': + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) { + if (cacheSignal) { + cacheSignal.endRead(); + cacheSignal = null; + } + await workUnitStore.stagedRendering.waitForStage(_stagedrendering.RenderStage.Dynamic); + } + break; + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `no-store fetch ${input} ${workStore.route}`); + } + const hasNextConfig = 'next' in init; + const { next = {} } = init; + if (typeof next.revalidate === 'number' && revalidateStore && next.revalidate < revalidateStore.revalidate) { + if (next.revalidate === 0) { + // If enabled, we should bail out of static generation. + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'prerender-runtime': + case 'validation-client': + return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, workStore.route, 'fetch()'); + case 'request': + if (process.env.NODE_ENV === 'development' && workUnitStore.stagedRendering) { + await workUnitStore.stagedRendering.waitForStage(_stagedrendering.RenderStage.Dynamic); + } + break; + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'prerender-legacy': + case 'prerender-ppr': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + (0, _dynamicrendering.markCurrentScopeAsDynamic)(workStore, workUnitStore, `revalidate: 0 fetch ${input} ${workStore.route}`); + } + if (!workStore.forceStatic || next.revalidate !== 0) { + revalidateStore.revalidate = next.revalidate; + } + } + if (hasNextConfig) delete init.next; + } + // if we are revalidating the whole page via time or on-demand and + // the fetch cache entry is stale we should still de-dupe the + // origin hit if it's a cache-able entry + if (cacheKey && isForegroundRevalidate) { + const pendingRevalidateKey = cacheKey; + workStore.pendingRevalidates ??= {}; + let pendingRevalidate = workStore.pendingRevalidates[pendingRevalidateKey]; + if (pendingRevalidate) { + const revalidatedResult = await pendingRevalidate; + return new Response(revalidatedResult.body, { + headers: revalidatedResult.headers, + status: revalidatedResult.status, + statusText: revalidatedResult.statusText + }); + } + // We used to just resolve the Response and clone it however for + // static generation with cacheComponents we need the response to be able to + // be resolved in a microtask and cloning the response will never have + // a body that can resolve in a microtask in node (as observed through + // experimentation) So instead we await the body and then when it is + // available we construct manually cloned Response objects with the + // body as an ArrayBuffer. This will be resolvable in a microtask + // making it compatible with cacheComponents. + const pendingResponse = doOriginalFetch(true, cacheReasonOverride)// We're cloning the response using this utility because there + // exists a bug in the undici library around response cloning. + // See the following pull request for more details: + // https://github.com/vercel/next.js/pull/73274 + .then(_cloneresponse.cloneResponse); + pendingRevalidate = pendingResponse.then(async (responses)=>{ + const response = responses[0]; + return { + body: await response.arrayBuffer(), + headers: response.headers, + status: response.status, + statusText: response.statusText + }; + }).finally(()=>{ + var _workStore_pendingRevalidates; + // If the pending revalidate is not present in the store, then + // we have nothing to delete. + if (!((_workStore_pendingRevalidates = workStore.pendingRevalidates) == null ? void 0 : _workStore_pendingRevalidates[pendingRevalidateKey])) { + return; + } + delete workStore.pendingRevalidates[pendingRevalidateKey]; + }); + // Attach the empty catch here so we don't get a "unhandled promise + // rejection" warning + pendingRevalidate.catch(()=>{}); + workStore.pendingRevalidates[pendingRevalidateKey] = pendingRevalidate; + return pendingResponse.then((responses)=>responses[1]); + } else { + return doOriginalFetch(false, cacheReasonOverride); + } + }); + if (cacheSignal) { + try { + return await result; + } finally{ + if (cacheSignal) { + cacheSignal.endRead(); + } + } + } + return result; + }; + // Attach the necessary properties to the patched fetch function. + // We don't use this to determine if the fetch function has been patched, + // but for external consumers to determine if the fetch function has been + // patched. + patched.__nextPatched = true; + patched.__nextGetStaticStore = ()=>workAsyncStorage; + patched._nextOriginalFetch = originFetch; + globalThis[NEXT_PATCH_SYMBOL] = true; + // Assign the function name also as a name property, so that it's preserved + // even when mangling is enabled. + Object.defineProperty(patched, 'name', { + value: 'fetch', + writable: false + }); + return patched; +} +function patchFetch(options) { + // If we've already patched fetch, we should not patch it again. + if (isFetchPatched()) return; + // Grab the original fetch function. We'll attach this so we can use it in + // the patched fetch function. + const original = (0, _dedupefetch.createDedupeFetch)(globalThis.fetch); + // Set the global fetch to the patched fetch. + globalThis.fetch = createPatchedFetcher(original, options); +} +let currentTimeoutBoundary = null; +function getTimeoutBoundary() { + if (!currentTimeoutBoundary) { + currentTimeoutBoundary = new Promise((r)=>{ + setTimeout(()=>{ + currentTimeoutBoundary = null; + r(); + }, 0); + }); + } + return currentTimeoutBoundary; +} + +//# sourceMappingURL=patch-fetch.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/patch-set-header.js b/cli/app/node_modules/next/dist/server/lib/patch-set-header.js new file mode 100644 index 00000000000..ea3b38a5a7c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/patch-set-header.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "patchSetHeaderWithCookieSupport", { + enumerable: true, + get: function() { + return patchSetHeaderWithCookieSupport; + } +}); +const _requestmeta = require("../request-meta"); +function patchSetHeaderWithCookieSupport(req, res) { + const setHeader = res.setHeader.bind(res); + res.setHeader = (name, value)=>{ + // When renders /_error after page is failed, it could attempt to set + // headers after headers. + if ('headersSent' in res && res.headersSent) { + return res; + } + if (name.toLowerCase() === 'set-cookie') { + const middlewareValue = (0, _requestmeta.getRequestMeta)(req, 'middlewareCookie'); + if (!middlewareValue || !Array.isArray(value) || !value.every((item, idx)=>item === middlewareValue[idx])) { + value = [ + // TODO: (wyattjoh) find out why this is called multiple times resulting in duplicate cookies being added + ...new Set([ + ...middlewareValue || [], + ...typeof value === 'string' ? [ + value + ] : Array.isArray(value) ? value : [] + ]) + ]; + } + } + return setHeader(name, value); + }; +} + +//# sourceMappingURL=patch-set-header.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/postponed-request-body.js b/cli/app/node_modules/next/dist/server/lib/postponed-request-body.js new file mode 100644 index 00000000000..41027be598b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/postponed-request-body.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getMaxPostponedStateSize: null, + getPostponedStateExceededErrorMessage: null, + readBodyWithSizeLimit: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getMaxPostponedStateSize: function() { + return getMaxPostponedStateSize; + }, + getPostponedStateExceededErrorMessage: function() { + return getPostponedStateExceededErrorMessage; + }, + readBodyWithSizeLimit: function() { + return readBodyWithSizeLimit; + } +}); +const _sizelimit = require("../../shared/lib/size-limit"); +const INVALID_MAX_POSTPONED_STATE_SIZE_ERROR_MESSAGE = 'maxPostponedStateSize must be a valid number (bytes) or filesize format string (e.g., "5mb")'; +function getMaxPostponedStateSize(configuredMaxPostponedStateSize) { + const maxPostponedStateSize = configuredMaxPostponedStateSize ?? _sizelimit.DEFAULT_MAX_POSTPONED_STATE_SIZE; + const maxPostponedStateSizeBytes = (0, _sizelimit.parseMaxPostponedStateSize)(configuredMaxPostponedStateSize); + if (maxPostponedStateSizeBytes === undefined) { + throw Object.defineProperty(new Error(INVALID_MAX_POSTPONED_STATE_SIZE_ERROR_MESSAGE), "__NEXT_ERROR_CODE", { + value: "E977", + enumerable: false, + configurable: true + }); + } + return { + maxPostponedStateSize, + maxPostponedStateSizeBytes + }; +} +function getPostponedStateExceededErrorMessage(maxPostponedStateSize) { + return `Postponed state exceeded ${maxPostponedStateSize} limit. ` + `To configure the limit, see: https://nextjs.org/docs/app/api-reference/config/next-config-js/max-postponed-state-size`; +} +function toBuffer(chunk) { + return Buffer.isBuffer(chunk) ? chunk : Buffer.from(chunk); +} +async function readBodyWithSizeLimit(body, maxBodySizeBytes) { + const chunks = []; + let size = 0; + for await (const chunk of body){ + const buffer = toBuffer(chunk); + size += buffer.byteLength; + if (size > maxBodySizeBytes) { + return null; + } + chunks.push(buffer); + } + return Buffer.concat(chunks); +} + +//# sourceMappingURL=postponed-request-body.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/render-server.js b/cli/app/node_modules/next/dist/server/lib/render-server.js new file mode 100644 index 00000000000..21f81802b3b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/render-server.js @@ -0,0 +1,155 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + clearAllModuleContexts: null, + clearModuleContext: null, + getServerField: null, + initialize: null, + propagateServerField: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + clearAllModuleContexts: function() { + return clearAllModuleContexts; + }, + clearModuleContext: function() { + return clearModuleContext; + }, + getServerField: function() { + return getServerField; + }, + initialize: function() { + return initialize; + }, + propagateServerField: function() { + return propagateServerField; + } +}); +const _next = /*#__PURE__*/ _interop_require_default(require("../next")); +const _interopdefault = require("../../lib/interop-default"); +const _formatdynamicimportpath = require("../../lib/format-dynamic-import-path"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +let initializations = {}; +let sandboxContext; +if (process.env.NODE_ENV !== 'production') { + sandboxContext = require('../web/sandbox/context'); +} +function clearAllModuleContexts() { + return sandboxContext == null ? void 0 : sandboxContext.clearAllModuleContexts(); +} +function clearModuleContext(target) { + return sandboxContext == null ? void 0 : sandboxContext.clearModuleContext(target); +} +async function getServerField(dir, field) { + const initialization = await initializations[dir]; + if (!initialization) { + throw Object.defineProperty(new Error('Invariant cant propagate server field, no app initialized'), "__NEXT_ERROR_CODE", { + value: "E116", + enumerable: false, + configurable: true + }); + } + const { server } = initialization; + let wrappedServer = server['server']// NextServer.server is private + ; + return wrappedServer[field]; +} +async function propagateServerField(dir, field, value) { + const initialization = await initializations[dir]; + if (!initialization) { + throw Object.defineProperty(new Error('Invariant cant propagate server field, no app initialized'), "__NEXT_ERROR_CODE", { + value: "E116", + enumerable: false, + configurable: true + }); + } + const { server } = initialization; + let wrappedServer = server['server']; + const _field = field; + if (wrappedServer) { + if (typeof wrappedServer[_field] === 'function') { + // @ts-expect-error + await wrappedServer[_field].apply(wrappedServer, Array.isArray(value) ? value : []); + } else { + // @ts-expect-error + wrappedServer[_field] = value; + } + } +} +async function initializeImpl(opts) { + const type = process.env.__NEXT_PRIVATE_RENDER_WORKER; + if (type) { + process.title = 'next-render-worker-' + type; + } + let requestHandler; + let upgradeHandler; + const server = (0, _next.default)({ + ...opts, + hostname: opts.hostname || 'localhost', + customServer: false, + httpServer: opts.server, + port: opts.port + })// should return a NextServer when `customServer: false` + ; + // If we're in test mode and there's a debug cache entry handler available, + // then use it to wrap the request handler instead of using the default one. + if (process.env.__NEXT_TEST_MODE && process.env.NEXT_PRIVATE_DEBUG_CACHE_ENTRY_HANDLERS) { + // This mirrors the sole implementation of this over in: + // test/production/standalone-mode/required-server-files/cache-entry-handler.js + const createOnCacheEntryHandlers = (0, _interopdefault.interopDefault)(await import((0, _formatdynamicimportpath.formatDynamicImportPath)(opts.dir, process.env.NEXT_PRIVATE_DEBUG_CACHE_ENTRY_HANDLERS))); + // This is not to be used in any environment other than testing, as it is + // not memoized and is subject to constant change. + requestHandler = async (req, res, parsedUrl)=>{ + // Re re-create the entry handler for each request. This is not + // performant, and is only used in testing environments. + const { // TODO: remove onCacheEntry once onCacheEntryV2 is the default. + onCacheEntry, onCacheEntryV2 } = createOnCacheEntryHandlers(res); + // Get the request handler, using the entry handler as the metadata each + // request. + const handler = server.getRequestHandlerWithMetadata({ + // TODO: remove onCacheEntry once onCacheEntryV2 is the default. + onCacheEntry, + onCacheEntryV2 + }); + return handler(req, res, parsedUrl); + }; + upgradeHandler = server.getUpgradeHandler(); + } else { + requestHandler = server.getRequestHandler(); + upgradeHandler = server.getUpgradeHandler(); + } + await server.prepare(opts.serverFields); + return { + requestHandler, + upgradeHandler, + server, + closeUpgraded () { + var _opts_bundlerService; + (_opts_bundlerService = opts.bundlerService) == null ? void 0 : _opts_bundlerService.close(); + }, + distDir: opts.distDir, + experimentalFeatures: opts.experimentalFeatures, + cacheComponents: opts.cacheComponents + }; +} +async function initialize(opts) { + // if we already setup the server return as we only need to do + // this on first worker boot + if (initializations[opts.dir]) { + return initializations[opts.dir]; + } + return initializations[opts.dir] = initializeImpl(opts); +} + +//# sourceMappingURL=render-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-server.js b/cli/app/node_modules/next/dist/server/lib/router-server.js new file mode 100644 index 00000000000..8d2a9735f94 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-server.js @@ -0,0 +1,683 @@ +// this must come first as it includes require hooks +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "initialize", { + enumerable: true, + get: function() { + return initialize; + } +}); +require("../node-environment"); +require("../require-hook"); +const _url = /*#__PURE__*/ _interop_require_default(require("url")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _config = /*#__PURE__*/ _interop_require_default(require("../config")); +const _servestatic = require("../serve-static"); +const _debug = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/debug")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _utils = require("../../shared/lib/utils"); +const _findpagesdir = require("../../lib/find-pages-dir"); +const _filesystem = require("./router-utils/filesystem"); +const _proxyrequest = require("./router-utils/proxy-request"); +const _pipereadable = require("../pipe-readable"); +const _resolveroutes = require("./router-utils/resolve-routes"); +const _requestmeta = require("../request-meta"); +const _pathhasprefix = require("../../shared/lib/router/utils/path-has-prefix"); +const _removepathprefix = require("../../shared/lib/router/utils/remove-path-prefix"); +const _compression = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/compression")); +const _nextrequest = require("../web/spec-extension/adapters/next-request"); +const _ispostpone = require("./router-utils/is-postpone"); +const _parseurl = require("../../shared/lib/router/utils/parse-url"); +const _constants = require("../../shared/lib/constants"); +const _redirectstatuscode = require("../../client/components/redirect-status-code"); +const _devbundlerservice = require("./dev-bundler-service"); +const _trace = require("../../trace"); +const _ensureleadingslash = require("../../shared/lib/page-path/ensure-leading-slash"); +const _getnextpathnameinfo = require("../../shared/lib/router/utils/get-next-pathname-info"); +const _gethostname = require("../../shared/lib/get-hostname"); +const _detectdomainlocale = require("../../shared/lib/i18n/detect-domain-locale"); +const _mockrequest = require("./mock-request"); +const _hotreloadertypes = require("../dev/hot-reloader-types"); +const _normalizedassetprefix = require("../../shared/lib/normalized-asset-prefix"); +const _patchfetch = require("./patch-fetch"); +const _utils1 = require("./server-ipc/utils"); +const _blockcrosssitedev = require("./router-utils/block-cross-site-dev"); +const _shared = require("../../trace/shared"); +const _nofallbackerrorexternal = require("../../shared/lib/no-fallback-error.external"); +const _routerservercontext = require("./router-utils/router-server-context"); +const _chromedevtoolsworkspace = require("./chrome-devtools-workspace"); +const _configshared = require("../config-shared"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const debug = (0, _debug.default)('next:router-server:main'); +const isNextFont = (pathname)=>pathname && /\/media\/[^/]+\.(woff|woff2|eot|ttf|otf)$/.test(pathname); +const requestHandlers = {}; +async function initialize(opts) { + var _development_bundler, _development_service, _development_service1, _development_service2, _development_service3, _development_service4, _development_bundler1; + if (!process.env.NODE_ENV) { + // @ts-ignore not readonly + process.env.NODE_ENV = opts.dev ? 'development' : 'production'; + } + let experimentalFeatures = []; + const config = await (0, _config.default)(opts.dev ? _constants.PHASE_DEVELOPMENT_SERVER : _constants.PHASE_PRODUCTION_SERVER, opts.dir, { + silent: false, + reportExperimentalFeatures (features) { + experimentalFeatures = features.toSorted(({ key: a }, { key: b })=>a.localeCompare(b)); + } + }); + let compress; + if ((config == null ? void 0 : config.compress) !== false) { + compress = (0, _compression.default)(); + } + const fsChecker = await (0, _filesystem.setupFsCheck)({ + dev: opts.dev, + dir: opts.dir, + config, + minimalMode: opts.minimalMode + }); + const renderServer = {}; + let development = undefined; + let originalFetch = globalThis.fetch; + if (opts.dev) { + const { Telemetry } = require('../../telemetry/storage'); + const telemetry = new Telemetry({ + distDir: _path.default.join(opts.dir, config.distDir) + }); + _shared.traceGlobals.set('telemetry', telemetry); + const { pagesDir, appDir } = (0, _findpagesdir.findPagesDir)(opts.dir); + const { setupDevBundler } = require('./router-utils/setup-dev-bundler'); + const resetFetch = ()=>{ + globalThis.fetch = originalFetch; + globalThis[_patchfetch.NEXT_PATCH_SYMBOL] = false; + }; + const setupDevBundlerSpan = opts.startServerSpan ? opts.startServerSpan.traceChild('setup-dev-bundler') : (0, _trace.trace)('setup-dev-bundler'); + // In development, it's always the complete config. + let developmentConfig = config; + let developmentBundler = await setupDevBundlerSpan.traceAsyncFn(()=>setupDevBundler({ + // Passed here but the initialization of this object happens below, doing the initialization before the setupDev call breaks. + renderServer, + appDir, + pagesDir, + telemetry, + fsChecker, + dir: opts.dir, + nextConfig: developmentConfig, + isCustomServer: opts.customServer, + turbo: !!process.env.TURBOPACK, + port: opts.port, + onDevServerCleanup: opts.onDevServerCleanup, + resetFetch, + serverFastRefresh: opts.serverFastRefresh + })); + let devBundlerService = new _devbundlerservice.DevBundlerService(developmentBundler, // The request handler is assigned below, this allows us to create a lazy + // reference to it. + (req, res)=>{ + return requestHandlers[opts.dir](req, res); + }); + development = { + bundler: developmentBundler, + service: devBundlerService, + config: developmentConfig + }; + } + renderServer.instance = require('./render-server'); + const requestHandlerImpl = async (req, res)=>{ + (0, _requestmeta.addRequestMeta)(req, 'relativeProjectDir', relativeProjectDir); + // internal headers should not be honored by the request handler + if (!process.env.NEXT_PRIVATE_TEST_HEADERS) { + (0, _utils1.filterInternalHeaders)(req.headers); + } + if (!opts.minimalMode && config.i18n && config.i18n.localeDetection !== false) { + var _this; + const urlParts = (req.url || '').split('?', 1); + let urlNoQuery = urlParts[0] || ''; + if (config.basePath) { + urlNoQuery = (0, _removepathprefix.removePathPrefix)(urlNoQuery, config.basePath); + } + const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(urlNoQuery, { + nextConfig: config + }); + const domainLocale = (0, _detectdomainlocale.detectDomainLocale)(config.i18n.domains, (0, _gethostname.getHostname)({ + hostname: urlNoQuery + }, req.headers)); + const defaultLocale = (domainLocale == null ? void 0 : domainLocale.defaultLocale) || config.i18n.defaultLocale; + const { getLocaleRedirect } = require('../../shared/lib/i18n/get-locale-redirect'); + const parsedUrl = (0, _parseurl.parseUrl)((_this = req.url || '') == null ? void 0 : _this.replace(/^\/+/, '/')); + const redirect = getLocaleRedirect({ + defaultLocale, + domainLocale, + headers: req.headers, + nextConfig: config, + pathLocale: pathnameInfo.locale, + urlParsed: { + ...parsedUrl, + pathname: pathnameInfo.locale ? `/${pathnameInfo.locale}${urlNoQuery}` : urlNoQuery + } + }); + if (redirect) { + res.setHeader('Location', redirect); + res.statusCode = _redirectstatuscode.RedirectStatusCode.TemporaryRedirect; + res.end(redirect); + return; + } + } + if (compress) { + // @ts-expect-error not express req/res + compress(req, res, ()=>{}); + } + req.on('error', (_err)=>{ + // TODO: log socket errors? + }); + res.on('error', (_err)=>{ + // TODO: log socket errors? + }); + const invokedOutputs = new Set(); + async function invokeRender(parsedUrl, invokePath, handleIndex, additionalRequestMeta) { + var _fsChecker_getMiddlewareMatchers; + // invokeRender expects /api routes to not be locale prefixed + // so normalize here before continuing + if (config.i18n && (0, _removepathprefix.removePathPrefix)(invokePath, config.basePath).startsWith(`/${(0, _requestmeta.getRequestMeta)(req, 'locale')}/api`)) { + invokePath = fsChecker.handleLocale((0, _removepathprefix.removePathPrefix)(invokePath, config.basePath)).pathname; + } + if (req.headers['x-nextjs-data'] && ((_fsChecker_getMiddlewareMatchers = fsChecker.getMiddlewareMatchers()) == null ? void 0 : _fsChecker_getMiddlewareMatchers.length) && (0, _removepathprefix.removePathPrefix)(invokePath, config.basePath) === '/404') { + res.setHeader('x-nextjs-matched-path', parsedUrl.pathname || ''); + res.statusCode = 404; + res.setHeader('content-type', 'application/json'); + res.end('{}'); + return null; + } + if (!handlers) { + throw Object.defineProperty(new Error('Failed to initialize render server'), "__NEXT_ERROR_CODE", { + value: "E90", + enumerable: false, + configurable: true + }); + } + (0, _requestmeta.addRequestMeta)(req, 'invokePath', invokePath); + (0, _requestmeta.addRequestMeta)(req, 'invokeQuery', parsedUrl.query); + (0, _requestmeta.addRequestMeta)(req, 'middlewareInvoke', false); + for(const key in additionalRequestMeta || {}){ + (0, _requestmeta.addRequestMeta)(req, key, additionalRequestMeta[key]); + } + debug('invokeRender', req.url, req.headers); + try { + var _renderServer_instance; + const initResult = await (renderServer == null ? void 0 : (_renderServer_instance = renderServer.instance) == null ? void 0 : _renderServer_instance.initialize(renderServerOpts)); + try { + await (initResult == null ? void 0 : initResult.requestHandler(req, res)); + } catch (err) { + if (err instanceof _nofallbackerrorexternal.NoFallbackError) { + await handleRequest(handleIndex + 1); + return; + } + throw err; + } + return; + } catch (e) { + // If the client aborts before we can receive a response object (when + // the headers are flushed), then we can early exit without further + // processing. + if ((0, _pipereadable.isAbortError)(e)) { + return; + } + throw e; + } + } + const handleRequest = async (handleIndex)=>{ + var _development_bundler; + if (handleIndex > 5) { + throw Object.defineProperty(new Error(`Attempted to handle request too many times ${req.url}`), "__NEXT_ERROR_CODE", { + value: "E283", + enumerable: false, + configurable: true + }); + } + // handle hot-reloader first + if (development) { + if ((0, _blockcrosssitedev.blockCrossSiteDEV)(req, res, development.config.allowedDevOrigins, opts.hostname)) { + return; + } + const origUrl = req.url || '/'; + // both the basePath and assetPrefix need to be stripped from the URL + // so that the development bundler can find the correct file + if (config.basePath && (0, _pathhasprefix.pathHasPrefix)(origUrl, config.basePath)) { + req.url = (0, _removepathprefix.removePathPrefix)(origUrl, config.basePath); + } else if (config.assetPrefix && (0, _pathhasprefix.pathHasPrefix)(origUrl, config.assetPrefix)) { + req.url = (0, _removepathprefix.removePathPrefix)(origUrl, config.assetPrefix); + } + const parsedUrl = (0, _parseurl.parseUrl)(req.url || '/'); + const hotReloaderResult = await development.bundler.hotReloader.run(req, res, parsedUrl); + if (hotReloaderResult.finished) { + return hotReloaderResult; + } + req.url = origUrl; + } + const { finished, parsedUrl, statusCode, resHeaders, bodyStream, matchedOutput } = await resolveRoutes({ + req, + res, + isUpgradeReq: false, + signal: (0, _nextrequest.signalFromNodeResponse)(res), + invokedOutputs + }); + if (res.closed || res.finished) { + return; + } + if (development && (matchedOutput == null ? void 0 : matchedOutput.type) === 'devVirtualFsItem') { + const origUrl = req.url || '/'; + if (config.basePath && (0, _pathhasprefix.pathHasPrefix)(origUrl, config.basePath)) { + req.url = (0, _removepathprefix.removePathPrefix)(origUrl, config.basePath); + } else if (config.assetPrefix && (0, _pathhasprefix.pathHasPrefix)(origUrl, config.assetPrefix)) { + req.url = (0, _removepathprefix.removePathPrefix)(origUrl, config.assetPrefix); + } + if (resHeaders !== null) { + for (const key of Object.keys(resHeaders)){ + res.setHeader(key, resHeaders[key]); + } + } + const result = await development.bundler.requestHandler(req, res); + if (result.finished) { + return; + } + // TODO: throw invariant if we resolved to this but it wasn't handled? + req.url = origUrl; + } + debug('requestHandler!', req.url, { + matchedOutput, + statusCode, + resHeaders, + bodyStream: !!bodyStream, + parsedUrl: { + pathname: parsedUrl.pathname, + query: parsedUrl.query + }, + finished + }); + // apply any response headers from routing + if (resHeaders !== null) { + for (const key of Object.keys(resHeaders)){ + res.setHeader(key, resHeaders[key]); + } + } + // handle redirect + if (!bodyStream && statusCode && statusCode > 300 && statusCode < 400) { + const destination = _url.default.format(parsedUrl); + res.statusCode = statusCode; + res.setHeader('location', destination); + if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) { + res.setHeader('Refresh', `0;url=${destination}`); + } + return res.end(destination); + } + // handle middleware body response + if (bodyStream) { + res.statusCode = statusCode || 200; + return await (0, _pipereadable.pipeToNodeResponse)(bodyStream, res); + } + if (finished && parsedUrl.protocol) { + var _getRequestMeta; + return await (0, _proxyrequest.proxyRequest)(req, res, parsedUrl, undefined, (_getRequestMeta = (0, _requestmeta.getRequestMeta)(req, 'clonableBody')) == null ? void 0 : _getRequestMeta.cloneBodyStream(), config.experimental.proxyTimeout); + } + if ((matchedOutput == null ? void 0 : matchedOutput.fsPath) && matchedOutput.itemPath) { + if (opts.dev && (fsChecker.appFiles.has(matchedOutput.itemPath) || fsChecker.pageFiles.has(matchedOutput.itemPath))) { + res.statusCode = 500; + const message = `A conflicting public file and page file was found for path ${matchedOutput.itemPath} https://nextjs.org/docs/messages/conflicting-public-file-page`; + await invokeRender(parsedUrl, '/_error', handleIndex, { + invokeStatus: 500, + invokeError: Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E212", + enumerable: false, + configurable: true + }) + }); + _log.error(message); + return; + } + if (!res.getHeader('cache-control') && matchedOutput.type === 'nextStaticFolder') { + if (opts.dev && !isNextFont(parsedUrl.pathname)) { + res.setHeader('Cache-Control', 'no-cache, must-revalidate'); + } else { + res.setHeader('Cache-Control', 'public, max-age=31536000, immutable'); + } + } + if (!(req.method === 'GET' || req.method === 'HEAD')) { + res.setHeader('Allow', [ + 'GET', + 'HEAD' + ]); + res.statusCode = 405; + return await invokeRender((0, _parseurl.parseUrl)('/405'), '/405', handleIndex, { + invokeStatus: 405 + }); + } + try { + return await (0, _servestatic.serveStatic)(req, res, matchedOutput.itemPath, { + root: matchedOutput.itemsRoot, + // Ensures that etags are not generated for static files when disabled. + etag: config.generateEtags + }); + } catch (err) { + /** + * Hardcoded every possible error status code that could be thrown by "serveStatic" method + * This is done by searching "this.error" inside "send" module's source code: + * https://github.com/pillarjs/send/blob/master/index.js + * https://github.com/pillarjs/send/blob/develop/index.js + */ const POSSIBLE_ERROR_CODE_FROM_SERVE_STATIC = new Set([ + // send module will throw 500 when header is already sent or fs.stat error happens + // https://github.com/pillarjs/send/blob/53f0ab476145670a9bdd3dc722ab2fdc8d358fc6/index.js#L392 + // Note: we will use Next.js built-in 500 page to handle 500 errors + // 500, + // send module will throw 404 when file is missing + // https://github.com/pillarjs/send/blob/53f0ab476145670a9bdd3dc722ab2fdc8d358fc6/index.js#L421 + // Note: we will use Next.js built-in 404 page to handle 404 errors + // 404, + // send module will throw 403 when redirecting to a directory without enabling directory listing + // https://github.com/pillarjs/send/blob/53f0ab476145670a9bdd3dc722ab2fdc8d358fc6/index.js#L484 + // Note: Next.js throws a different error (without status code) for directory listing + // 403, + // send module will throw 400 when fails to normalize the path + // https://github.com/pillarjs/send/blob/53f0ab476145670a9bdd3dc722ab2fdc8d358fc6/index.js#L520 + 400, + // send module will throw 412 with conditional GET request + // https://github.com/pillarjs/send/blob/53f0ab476145670a9bdd3dc722ab2fdc8d358fc6/index.js#L632 + 412, + // send module will throw 416 when range is not satisfiable + // https://github.com/pillarjs/send/blob/53f0ab476145670a9bdd3dc722ab2fdc8d358fc6/index.js#L669 + 416 + ]); + let validErrorStatus = POSSIBLE_ERROR_CODE_FROM_SERVE_STATIC.has(err.statusCode); + // normalize non-allowed status codes + if (!validErrorStatus) { + ; + err.statusCode = 400; + } + if (typeof err.statusCode === 'number') { + const invokePath = `/${err.statusCode}`; + const invokeStatus = err.statusCode; + res.statusCode = err.statusCode; + return await invokeRender((0, _parseurl.parseUrl)(invokePath), invokePath, handleIndex, { + invokeStatus + }); + } + throw err; + } + } + if (matchedOutput) { + invokedOutputs.add(matchedOutput.itemPath); + return await invokeRender(parsedUrl, parsedUrl.pathname || '/', handleIndex, { + invokeOutput: matchedOutput.itemPath + }); + } + // We want the original pathname without any basePath or proxy rewrites. + if (development && (0, _chromedevtoolsworkspace.isChromeDevtoolsWorkspaceUrl)(req.url)) { + await (0, _chromedevtoolsworkspace.handleChromeDevtoolsWorkspaceRequest)(res, opts, config); + return; + } + // 404 case + res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate'); + let realRequestPathname = parsedUrl.pathname ?? ''; + if (realRequestPathname) { + if (config.basePath) { + realRequestPathname = (0, _removepathprefix.removePathPrefix)(realRequestPathname, config.basePath); + } + if (config.assetPrefix) { + realRequestPathname = (0, _removepathprefix.removePathPrefix)(realRequestPathname, config.assetPrefix); + } + if (config.i18n) { + realRequestPathname = (0, _removepathprefix.removePathPrefix)(realRequestPathname, '/' + ((0, _requestmeta.getRequestMeta)(req, 'locale') ?? '')); + } + } + // For not found static assets, return plain text 404 instead of + // full HTML 404 pages to save bandwidth. + if (realRequestPathname.startsWith('/_next/static/')) { + res.statusCode = 404; + res.setHeader('Content-Type', 'text/plain; charset=utf-8'); + res.end('Not Found'); + return null; + } + // Short-circuit favicon.ico serving so that the 404 page doesn't get built as favicon is requested by the browser when loading any route. + if (opts.dev && !matchedOutput && parsedUrl.pathname === '/favicon.ico') { + res.statusCode = 404; + res.end(''); + return null; + } + const appNotFound = opts.dev ? development == null ? void 0 : (_development_bundler = development.bundler) == null ? void 0 : _development_bundler.serverFields.hasAppNotFound : await fsChecker.getItem(_constants.UNDERSCORE_NOT_FOUND_ROUTE); + res.statusCode = 404; + if (appNotFound) { + return await invokeRender(parsedUrl, _constants.UNDERSCORE_NOT_FOUND_ROUTE, handleIndex, { + invokeStatus: 404 + }); + } + await invokeRender(parsedUrl, '/404', handleIndex, { + invokeStatus: 404 + }); + }; + try { + await handleRequest(0); + } catch (err) { + try { + let invokePath = '/500'; + let invokeStatus = '500'; + if (err instanceof _utils.DecodeError) { + invokePath = '/400'; + invokeStatus = '400'; + } else { + console.error(err); + } + res.statusCode = Number(invokeStatus); + return await invokeRender((0, _parseurl.parseUrl)(invokePath), invokePath, 0, { + invokeStatus: res.statusCode + }); + } catch (err2) { + console.error(err2); + } + res.statusCode = 500; + res.end('Internal Server Error'); + } + }; + let requestHandler = requestHandlerImpl; + if (config.experimental.testProxy) { + // Intercept fetch and other testmode apis. + const { wrapRequestHandlerWorker, interceptTestApis } = // eslint-disable-next-line @next/internal/typechecked-require -- experimental/testmode is not built ins next/dist/esm + require('next/dist/experimental/testmode/server'); + requestHandler = wrapRequestHandlerWorker(requestHandler); + interceptTestApis(); + // We treat the intercepted fetch as "original" fetch that should be reset to during HMR. + originalFetch = globalThis.fetch; + } + requestHandlers[opts.dir] = requestHandler; + const renderServerOpts = { + port: opts.port, + dir: opts.dir, + hostname: opts.hostname, + minimalMode: opts.minimalMode, + dev: !!opts.dev, + server: opts.server, + serverFields: { + ...(development == null ? void 0 : (_development_bundler = development.bundler) == null ? void 0 : _development_bundler.serverFields) || {}, + setIsrStatus: development == null ? void 0 : (_development_service = development.service) == null ? void 0 : _development_service.setIsrStatus.bind(development == null ? void 0 : development.service) + }, + experimentalTestProxy: !!config.experimental.testProxy, + experimentalHttpsServer: !!opts.experimentalHttpsServer, + bundlerService: development == null ? void 0 : development.service, + startServerSpan: opts.startServerSpan, + quiet: opts.quiet, + onDevServerCleanup: opts.onDevServerCleanup, + distDir: config.distDir, + experimentalFeatures, + cacheComponents: config.cacheComponents + }; + renderServerOpts.serverFields.routerServerHandler = requestHandlerImpl; + // pre-initialize workers + const handlers = await renderServer.instance.initialize(renderServerOpts); + // this must come after initialize of render server since it's + // using initialized methods + if (!_routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol]) { + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol] = {}; + } + const relativeProjectDir = _path.default.relative(process.cwd(), opts.dir); + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol][relativeProjectDir] = { + nextConfig: (0, _configshared.getNextConfigRuntime)(config), + hostname: handlers.server.hostname, + revalidate: handlers.server.revalidate.bind(handlers.server), + render404: handlers.server.render404.bind(handlers.server), + experimentalTestProxy: renderServerOpts.experimentalTestProxy, + logErrorWithOriginalStack: opts.dev ? handlers.server.logErrorWithOriginalStack.bind(handlers.server) : (err)=>!opts.quiet && _log.error(err), + setCacheStatus: config.cacheComponents ? development == null ? void 0 : (_development_service1 = development.service) == null ? void 0 : _development_service1.setCacheStatus.bind(development == null ? void 0 : development.service) : undefined, + setIsrStatus: development == null ? void 0 : (_development_service2 = development.service) == null ? void 0 : _development_service2.setIsrStatus.bind(development == null ? void 0 : development.service), + setReactDebugChannel: (development == null ? void 0 : development.config.experimental.reactDebugChannel) ? development == null ? void 0 : (_development_service3 = development.service) == null ? void 0 : _development_service3.setReactDebugChannel.bind(development == null ? void 0 : development.service) : undefined, + sendErrorsToBrowser: development == null ? void 0 : (_development_service4 = development.service) == null ? void 0 : _development_service4.sendErrorsToBrowser.bind(development == null ? void 0 : development.service) + }; + const logError = async (type, err)=>{ + if ((0, _ispostpone.isPostpone)(err)) { + // React postpones that are unhandled might end up logged here but they're + // not really errors. They're just part of rendering. + return; + } + if (type === 'unhandledRejection') { + _log.error('unhandledRejection: ', err); + } else if (type === 'uncaughtException') { + _log.error('uncaughtException: ', err); + } + }; + process.on('uncaughtException', logError.bind(null, 'uncaughtException')); + process.on('unhandledRejection', logError.bind(null, 'unhandledRejection')); + const resolveRoutes = (0, _resolveroutes.getResolveRoutes)(fsChecker, config, opts, renderServer.instance, renderServerOpts, development == null ? void 0 : (_development_bundler1 = development.bundler) == null ? void 0 : _development_bundler1.ensureMiddleware); + const upgradeHandler = async (req, socket, head)=>{ + try { + req.on('error', (_err)=>{ + // TODO: log socket errors? + // console.error(_err); + }); + socket.on('error', (_err)=>{ + // TODO: log socket errors? + // console.error(_err); + }); + if (opts.dev && development && req.url) { + if ((0, _blockcrosssitedev.blockCrossSiteDEV)(req, socket, development.config.allowedDevOrigins, opts.hostname)) { + return; + } + const { basePath, assetPrefix } = config; + let hmrPrefix = basePath; + // assetPrefix overrides basePath for HMR path + if (assetPrefix) { + hmrPrefix = (0, _normalizedassetprefix.normalizedAssetPrefix)(assetPrefix); + if (URL.canParse(hmrPrefix)) { + // remove trailing slash from pathname + // return empty string if pathname is '/' + // to avoid conflicts with '/_next' below + hmrPrefix = new URL(hmrPrefix).pathname.replace(/\/$/, ''); + } + } + const isHMRRequest = req.url.startsWith((0, _ensureleadingslash.ensureLeadingSlash)(`${hmrPrefix}/_next/webpack-hmr`)); + // only handle HMR requests if the basePath in the request + // matches the basePath for the handler responding to the request + if (isHMRRequest) { + return development.bundler.hotReloader.onHMR(req, socket, head, (client, { isLegacyClient })=>{ + if (isLegacyClient) { + var _development_service; + // Only send the ISR manifest to legacy clients, i.e. Pages + // Router clients, or App Router clients that have Cache + // Components disabled. The ISR manifest is only used to inform + // the static indicator, which currently does not provide useful + // information if Cache Components is enabled due to its binary + // nature (i.e. it does not support showing info for partially + // static pages). + client.send(JSON.stringify({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ISR_MANIFEST, + data: ((_development_service = development.service) == null ? void 0 : _development_service.appIsrManifest) || {} + })); + } + }); + } + } + const res = new _mockrequest.MockedResponse({ + resWriter: ()=>{ + throw Object.defineProperty(new Error('Invariant: did not expect response writer to be written to for upgrade request'), "__NEXT_ERROR_CODE", { + value: "E522", + enumerable: false, + configurable: true + }); + } + }); + const { matchedOutput, parsedUrl } = await resolveRoutes({ + req, + res, + isUpgradeReq: true, + signal: (0, _nextrequest.signalFromNodeResponse)(socket) + }); + // TODO: allow upgrade requests to pages/app paths? + // this was not previously supported + if (matchedOutput) { + return socket.end(); + } + if (parsedUrl.protocol) { + return await (0, _proxyrequest.proxyRequest)(req, socket, parsedUrl, head); + } + // If there's no matched output, we don't handle the request as user's + // custom WS server may be listening on the same path. + } catch (err) { + console.error('Error handling upgrade request', err); + socket.end(); + } + }; + return { + requestHandler, + upgradeHandler, + server: handlers.server, + closeUpgraded () { + var _development_bundler_hotReloader, _development_bundler; + development == null ? void 0 : (_development_bundler = development.bundler) == null ? void 0 : (_development_bundler_hotReloader = _development_bundler.hotReloader) == null ? void 0 : _development_bundler_hotReloader.close(); + }, + distDir: config.distDir, + experimentalFeatures, + cacheComponents: config.cacheComponents + }; +} + +//# sourceMappingURL=router-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js b/cli/app/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js new file mode 100644 index 00000000000..b197263c87f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/block-cross-site-dev.js @@ -0,0 +1,110 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "blockCrossSiteDEV", { + enumerable: true, + get: function() { + return blockCrossSiteDEV; + } +}); +const _url = require("../../../lib/url"); +const _log = require("../../../build/output/log"); +const _csrfprotection = require("../../app-render/csrf-protection"); +const allowedDevOriginsDocs = 'https://nextjs.org/docs/app/api-reference/config/next-config-js/allowedDevOrigins'; +function getBlockedResourcePath(req) { + var _parseUrl; + return ((_parseUrl = (0, _url.parseUrl)(req.url ?? '')) == null ? void 0 : _parseUrl.pathname) ?? req.url ?? '/_next/*'; +} +function formatBlockedCrossSiteMessage(source, resourcePath) { + const lines = [ + `Blocked cross-origin request to Next.js dev resource ${resourcePath}${getBlockedSourceDescription(source)}.`, + 'Cross-origin access to Next.js dev resources is blocked by default for safety.' + ]; + // `source` has 3 meanings here: + // - `'null'`: browser explicitly sent `Origin: null` for an opaque/sandboxed origin + // - hostname string: we parsed an allowlistable host from Origin/Referer + // - `undefined` (and effectively empty string): the request did not include a usable host + if (source === 'null') { + lines.push('', 'This request came from a privacy-sensitive or opaque origin, so Next.js cannot determine which host to allow.', 'If you need it to succeed, load the dev server from a normal origin and add that host to "allowedDevOrigins".'); + } else if (source) { + lines.push('', 'To allow this host in development, add it to "allowedDevOrigins" in next.config.js and restart the dev server:', '', '// next.config.js', 'module.exports = {', ` allowedDevOrigins: ['${source}'],`, '}'); + } else { + lines.push('', 'This request did not include an allowlistable source host.', 'If you need it to succeed, make sure the browser sends an Origin or Referer from a host listed in "allowedDevOrigins".'); + } + lines.push('', `Read more: ${allowedDevOriginsDocs}`); + return lines.join('\n'); +} +function getBlockedSourceDescription(source) { + if (source === 'null') { + return ' from a privacy-sensitive or opaque origin'; + } + if (source) { + return ` from "${source}"`; + } + return ' from an unknown source'; +} +function blockRequest(req, res, source) { + (0, _log.warnOnce)(formatBlockedCrossSiteMessage(source, getBlockedResourcePath(req))); + if ('statusCode' in res) { + res.statusCode = 403; + } + res.end('Unauthorized'); + return true; +} +function parseHostnameFromHeader(header) { + const headerValue = Array.isArray(header) ? header[0] : header; + if (!headerValue || headerValue === 'null') { + return; + } + const parsedHeader = (0, _url.parseUrl)(headerValue); + return parsedHeader == null ? void 0 : parsedHeader.hostname.toLowerCase(); +} +function isInternalEndpoint(req) { + if (!req.url) return false; + try { + // TODO: We should standardize on a single prefix for this + const isMiddlewareRequest = req.url.includes('/__nextjs'); + const isInternalAsset = req.url.includes('/_next'); + // Static media requests are excluded, as they might be loaded via CSS and would fail + // CORS checks. + const isIgnoredRequest = req.url.includes('/_next/image') || req.url.includes('/_next/static/media'); + return !isIgnoredRequest && (isInternalAsset || isMiddlewareRequest); + } catch (err) { + return false; + } +} +const blockCrossSiteDEV = (req, res, allowedDevOrigins, hostname)=>{ + const allowedOrigins = [ + '*.localhost', + 'localhost', + ...allowedDevOrigins ?? [] + ]; + if (hostname) { + allowedOrigins.push(hostname); + } + // only process internal URLs/middleware + if (!isInternalEndpoint(req)) { + return false; + } + // block non-cors request from cross-site e.g. script tag on + // different host + if (req.headers['sec-fetch-mode'] === 'no-cors' && req.headers['sec-fetch-site'] === 'cross-site') { + // no-cors requests do not send an Origin header, so fall back to Referer + // when validating configured cross-site script loads. + const refererHostname = parseHostnameFromHeader(req.headers['referer']); + if (refererHostname && (0, _csrfprotection.isCsrfOriginAllowed)(refererHostname, allowedOrigins)) { + return false; + } + return blockRequest(req, res, refererHostname); + } + // ensure websocket requests are only fulfilled from allowed origin + const rawOrigin = req.headers['origin']; + const originHeader = Array.isArray(rawOrigin) ? rawOrigin[0] : rawOrigin; + const parsedOrigin = originHeader && originHeader !== 'null' ? (0, _url.parseUrl)(originHeader) : originHeader; + const originLowerCase = parsedOrigin === undefined || typeof parsedOrigin === 'string' ? parsedOrigin : parsedOrigin.hostname.toLowerCase(); + // Allow requests with no origin since those are just GET requests from same-site + return originLowerCase !== undefined && !(0, _csrfprotection.isCsrfOriginAllowed)(originLowerCase, allowedOrigins) && blockRequest(req, res, originLowerCase); +}; + +//# sourceMappingURL=block-cross-site-dev.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/build-data-route.js b/cli/app/node_modules/next/dist/server/lib/router-utils/build-data-route.js new file mode 100644 index 00000000000..9c17b9b37c1 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/build-data-route.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "buildDataRoute", { + enumerable: true, + get: function() { + return buildDataRoute; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("../../../shared/lib/isomorphic/path")); +const _normalizepagepath = require("../../../shared/lib/page-path/normalize-page-path"); +const _isdynamic = require("../../../shared/lib/router/utils/is-dynamic"); +const _routeregex = require("../../../shared/lib/router/utils/route-regex"); +const _loadcustomroutes = require("../../../lib/load-custom-routes"); +const _escaperegexp = require("../../../shared/lib/escape-regexp"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function buildDataRoute(page, buildId) { + const pagePath = (0, _normalizepagepath.normalizePagePath)(page); + const dataRoute = _path.default.posix.join('/_next/data', buildId, `${pagePath}.json`); + let dataRouteRegex; + let namedDataRouteRegex; + let routeKeys; + if ((0, _isdynamic.isDynamicRoute)(page)) { + const routeRegex = (0, _routeregex.getNamedRouteRegex)(dataRoute, { + prefixRouteKeys: true, + includeSuffix: true, + excludeOptionalTrailingSlash: true + }); + dataRouteRegex = (0, _loadcustomroutes.normalizeRouteRegex)(routeRegex.re.source); + namedDataRouteRegex = routeRegex.namedRegex; + routeKeys = routeRegex.routeKeys; + } else { + dataRouteRegex = (0, _loadcustomroutes.normalizeRouteRegex)(new RegExp(`^${_path.default.posix.join('/_next/data', (0, _escaperegexp.escapeStringRegexp)(buildId), `${pagePath}\\.json`)}$`).source); + } + return { + page, + routeKeys, + dataRouteRegex, + namedDataRouteRegex + }; +} + +//# sourceMappingURL=build-data-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js b/cli/app/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js new file mode 100644 index 00000000000..af698d63466 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/cache-life-type-utils.js @@ -0,0 +1,211 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + generateCacheLifeTypes: null, + writeCacheLifeTypes: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + generateCacheLifeTypes: function() { + return generateCacheLifeTypes; + }, + writeCacheLifeTypes: function() { + return writeCacheLifeTypes; + } +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const MINUTE_IN_SECONDS = 60; +const HOUR_IN_SECONDS = MINUTE_IN_SECONDS * 60 // nevermind leap seconds +; +const DAY_IN_SECONDS = HOUR_IN_SECONDS * 24; +const WEEK_IN_SECONDS = DAY_IN_SECONDS * 7; +// Nevermind leap years, or you know, July +const MONTH_30_DAYS_IN_SECONDS = DAY_IN_SECONDS * 30; +function formatTimespan(seconds) { + if (seconds > 0) { + if (seconds === MONTH_30_DAYS_IN_SECONDS) { + return '1 month'; + } + if (seconds === WEEK_IN_SECONDS) { + return '1 week'; + } + if (seconds === DAY_IN_SECONDS) { + return '1 day'; + } + if (seconds === HOUR_IN_SECONDS) { + return '1 hour'; + } + if (seconds === MINUTE_IN_SECONDS) { + return '1 minute'; + } + if (seconds % MONTH_30_DAYS_IN_SECONDS === 0) { + return seconds / MONTH_30_DAYS_IN_SECONDS + ' months'; + } + if (seconds % 18144000 === 0) { + return seconds / 18144000 + ' months'; + } + if (seconds % WEEK_IN_SECONDS === 0) { + return seconds / WEEK_IN_SECONDS + ' weeks'; + } + if (seconds % DAY_IN_SECONDS === 0) { + return seconds / DAY_IN_SECONDS + ' days'; + } + if (seconds % HOUR_IN_SECONDS === 0) { + return seconds / HOUR_IN_SECONDS + ' hours'; + } + if (seconds % MINUTE_IN_SECONDS === 0) { + return seconds / MINUTE_IN_SECONDS + ' minutes'; + } + } + return seconds + ' seconds'; +} +function formatTimespanWithSeconds(seconds) { + if (seconds === undefined) { + return 'default'; + } + if (seconds >= 0xfffffffe) { + return 'never'; + } + const text = seconds + ' seconds'; + const descriptive = formatTimespan(seconds); + if (descriptive === text) { + return text; + } + return text + ' (' + descriptive + ')'; +} +function generateCacheLifeTypes(cacheLife) { + let overloads = ''; + const profileNames = Object.keys(cacheLife); + for(let i = 0; i < profileNames.length; i++){ + const profileName = profileNames[i]; + const profile = cacheLife[profileName]; + if (typeof profile !== 'object' || profile === null) { + continue; + } + let description = ''; + if (profile.stale === undefined) { + description += ` + * This cache may be stale on clients for the default stale time of the scope before checking with the server.`; + } else if (profile.stale >= 0xfffffffe) { + description += ` + * This cache may be stale on clients indefinitely before checking with the server.`; + } else { + description += ` + * This cache may be stale on clients for ${formatTimespan(profile.stale)} before checking with the server.`; + } + if (profile.revalidate !== undefined && profile.expire !== undefined && profile.revalidate >= profile.expire) { + description += ` + * This cache will expire after ${formatTimespan(profile.expire)}. The next request will recompute it.`; + } else { + if (profile.revalidate === undefined) { + description += ` + * It will inherit the default revalidate time of its scope since it does not define its own.`; + } else if (profile.revalidate >= 0xfffffffe) { + // Nothing to mention. + } else { + description += ` + * If the server receives a new request after ${formatTimespan(profile.revalidate)}, start revalidating new values in the background.`; + } + if (profile.expire === undefined) { + description += ` + * It will inherit the default expiration time of its scope since it does not define its own.`; + } else if (profile.expire >= 0xfffffffe) { + description += ` + * It lives for the maximum age of the server cache. If this entry has no traffic for a while, it may serve an old value the next request.`; + } else { + description += ` + * If this entry has no traffic for ${formatTimespan(profile.expire)} it will expire. The next request will recompute it.`; + } + } + overloads += ` + /** + * Cache this \`"use cache"\` for a timespan defined by the \`${JSON.stringify(profileName)}\` profile. + * \`\`\` + * stale: ${formatTimespanWithSeconds(profile.stale)} + * revalidate: ${formatTimespanWithSeconds(profile.revalidate)} + * expire: ${formatTimespanWithSeconds(profile.expire)} + * \`\`\` + * ${description} + */ + export function cacheLife(profile: ${JSON.stringify(profileName)}): void + `; + } + overloads += ` + /** + * Cache this \`"use cache"\` using a custom timespan. + * \`\`\` + * stale: ... // seconds + * revalidate: ... // seconds + * expire: ... // seconds + * \`\`\` + * + * This is similar to Cache-Control: max-age=\`stale\`,s-max-age=\`revalidate\`,stale-while-revalidate=\`expire-revalidate\` + * + * If a value is left out, the lowest of other cacheLife() calls or the default, is used instead. + */ + export function cacheLife(profile: { + /** + * This cache may be stale on clients for ... seconds before checking with the server. + */ + stale?: number, + /** + * If the server receives a new request after ... seconds, start revalidating new values in the background. + */ + revalidate?: number, + /** + * If this entry has no traffic for ... seconds it will expire. The next request will recompute it. + */ + expire?: number + }): void + `; + // Redefine the cacheLife() accepted arguments. + return `// Type definitions for Next.js cacheLife configs + +declare module 'next/cache' { + export { unstable_cache } from 'next/dist/server/web/spec-extension/unstable-cache' + export { + updateTag, + revalidateTag, + revalidatePath, + refresh, + } from 'next/dist/server/web/spec-extension/revalidate' + export { unstable_noStore } from 'next/dist/server/web/spec-extension/unstable-no-store' + + ${overloads} + + import { cacheTag } from 'next/dist/server/use-cache/cache-tag' + export { cacheTag } + + export const unstable_cacheTag: typeof cacheTag + export const unstable_cacheLife: typeof cacheLife +} +`; +} +function writeCacheLifeTypes(cacheLifeConfig, filePath) { + if (!cacheLifeConfig || Object.keys(cacheLifeConfig).length === 0) { + return; + } + const dirname = _path.default.dirname(filePath); + if (!_fs.default.existsSync(dirname)) { + _fs.default.mkdirSync(dirname, { + recursive: true + }); + } + const content = generateCacheLifeTypes(cacheLifeConfig); + _fs.default.writeFileSync(filePath, content); +} + +//# sourceMappingURL=cache-life-type-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/decode-path-params.js b/cli/app/node_modules/next/dist/server/lib/router-utils/decode-path-params.js new file mode 100644 index 00000000000..0bd903ab4ea --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/decode-path-params.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "decodePathParams", { + enumerable: true, + get: function() { + return decodePathParams; + } +}); +const _escapepathdelimiters = /*#__PURE__*/ _interop_require_default(require("../../../shared/lib/router/utils/escape-path-delimiters")); +const _utils = require("../../../shared/lib/utils"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +/** + * We only encode path delimiters for path segments from + * getStaticPaths so we need to attempt decoding the URL + * to match against and only escape the path delimiters + * this allows non-ascii values to be handled e.g. + * Japanese characters. + * */ function decodePathParams(pathname) { + // TODO: investigate adding this handling for non-SSG + // pages so non-ascii names also work there. + return pathname.split('/').map((seg)=>{ + try { + seg = (0, _escapepathdelimiters.default)(decodeURIComponent(seg), true); + } catch (_) { + // An improperly encoded URL was provided + throw Object.defineProperty(new _utils.DecodeError('Failed to decode path param(s).'), "__NEXT_ERROR_CODE", { + value: "E539", + enumerable: false, + configurable: true + }); + } + return seg; + }).join('/'); +} + +//# sourceMappingURL=decode-path-params.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/filesystem.js b/cli/app/node_modules/next/dist/server/lib/router-utils/filesystem.js new file mode 100644 index 00000000000..8a6476544b4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/filesystem.js @@ -0,0 +1,591 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + buildCustomRoute: null, + setupFsCheck: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + buildCustomRoute: function() { + return buildCustomRoute; + }, + setupFsCheck: function() { + return setupFsCheck; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _promises = /*#__PURE__*/ _interop_require_default(require("fs/promises")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../../build/output/log")); +const _debug = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/debug")); +const _lrucache = require("../lru-cache"); +const _loadcustomroutes = /*#__PURE__*/ _interop_require_default(require("../../../lib/load-custom-routes")); +const _redirectstatus = require("../../../lib/redirect-status"); +const _fileexists = require("../../../lib/file-exists"); +const _recursivereaddir = require("../../../lib/recursive-readdir"); +const _utils = require("../../../shared/lib/router/utils"); +const _escaperegexp = require("../../../shared/lib/escape-regexp"); +const _pathmatch = require("../../../shared/lib/router/utils/path-match"); +const _routeregex = require("../../../shared/lib/router/utils/route-regex"); +const _routematcher = require("../../../shared/lib/router/utils/route-matcher"); +const _pathhasprefix = require("../../../shared/lib/router/utils/path-has-prefix"); +const _normalizelocalepath = require("../../../shared/lib/i18n/normalize-locale-path"); +const _removepathprefix = require("../../../shared/lib/router/utils/remove-path-prefix"); +const _middlewareroutematcher = require("../../../shared/lib/router/utils/middleware-route-matcher"); +const _constants = require("../../../shared/lib/constants"); +const _normalizepathsep = require("../../../shared/lib/page-path/normalize-path-sep"); +const _getmetadataroute = require("../../../lib/metadata/get-metadata-route"); +const _rsc = require("../../normalizers/request/rsc"); +const _encodeuripath = require("../../../shared/lib/encode-uri-path"); +const _ismetadataroute = require("../../../lib/metadata/is-metadata-route"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const debug = (0, _debug.default)('next:router-server:filesystem'); +const buildCustomRoute = (type, item, basePath, caseSensitive)=>{ + const restrictedRedirectPaths = [ + '/_next' + ].map((p)=>basePath ? `${basePath}${p}` : p); + let builtRegex = ''; + const match = (0, _pathmatch.getPathMatch)(item.source, { + strict: true, + removeUnnamedParams: true, + regexModifier: (regex)=>{ + if (!item.internal) { + regex = (0, _redirectstatus.modifyRouteRegex)(regex, type === 'redirect' ? restrictedRedirectPaths : undefined); + } + builtRegex = regex; + return builtRegex; + }, + sensitive: caseSensitive + }); + return { + ...item, + regex: builtRegex, + ...type === 'rewrite' ? { + check: true + } : {}, + match + }; +}; +async function setupFsCheck(opts) { + const getItemsLru = !opts.dev ? new _lrucache.LRUCache(1024 * 1024, function length(value) { + if (!value) { + // Null entries (negative cache) still need a non-zero size for LRU eviction + return 1; + } + return (value.fsPath || '').length + value.itemPath.length + value.type.length; + }) : undefined; + // routes that have _next/data endpoints (SSG/SSP) + const nextDataRoutes = new Set(); + const publicFolderItems = new Set(); + const nextStaticFolderItems = new Set(); + const legacyStaticFolderItems = new Set(); + const appFiles = new Set(); + const pageFiles = new Set(); + // Map normalized path to the file path. This is essential + // for parallel and group routes as their original path + // cannot be restored from the request path. + // Example: + // [normalized-path] -> [file-path] + // /icon-.png -> .../app/@parallel/icon.png + // /icon-.png -> .../app/(group)/icon.png + // /icon.png -> .../app/icon.png + const staticMetadataFiles = new Map(); + let dynamicRoutes = []; + let middlewareMatcher = ()=>false; + const distDir = _path.default.join(opts.dir, opts.config.distDir); + const publicFolderPath = _path.default.join(opts.dir, 'public'); + const nextStaticFolderPath = _path.default.join(distDir, 'static'); + const legacyStaticFolderPath = _path.default.join(opts.dir, 'static'); + let customRoutes = { + redirects: [], + rewrites: { + beforeFiles: [], + afterFiles: [], + fallback: [] + }, + onMatchHeaders: [], + headers: [] + }; + let buildId = 'development'; + let previewProps; + if (!opts.dev) { + var _middlewareManifest_middleware_, _middlewareManifest_middleware; + const buildIdPath = _path.default.join(opts.dir, opts.config.distDir, _constants.BUILD_ID_FILE); + try { + buildId = await _promises.default.readFile(buildIdPath, 'utf8'); + } catch (err) { + if (err.code !== 'ENOENT') throw err; + throw Object.defineProperty(new Error(`Could not find a production build in the '${opts.config.distDir}' directory. Try building your app with 'next build' before starting the production server. https://nextjs.org/docs/messages/production-start-no-build-id`), "__NEXT_ERROR_CODE", { + value: "E427", + enumerable: false, + configurable: true + }); + } + try { + for (const file of (await (0, _recursivereaddir.recursiveReadDir)(publicFolderPath))){ + // Ensure filename is encoded and normalized. + publicFolderItems.add((0, _encodeuripath.encodeURIPath)((0, _normalizepathsep.normalizePathSep)(file))); + } + } catch (err) { + if (err.code !== 'ENOENT') { + throw err; + } + } + try { + for (const file of (await (0, _recursivereaddir.recursiveReadDir)(legacyStaticFolderPath))){ + // Ensure filename is encoded and normalized. + legacyStaticFolderItems.add((0, _encodeuripath.encodeURIPath)((0, _normalizepathsep.normalizePathSep)(file))); + } + _log.warn(`The static directory has been deprecated in favor of the public directory. https://nextjs.org/docs/messages/static-dir-deprecated`); + } catch (err) { + if (err.code !== 'ENOENT') { + throw err; + } + } + try { + for (const file of (await (0, _recursivereaddir.recursiveReadDir)(nextStaticFolderPath))){ + // Ensure filename is encoded and normalized. + nextStaticFolderItems.add(_path.default.posix.join('/_next/static', (0, _encodeuripath.encodeURIPath)((0, _normalizepathsep.normalizePathSep)(file)))); + } + } catch (err) { + if (opts.config.output !== 'standalone') throw err; + } + const routesManifestPath = _path.default.join(distDir, _constants.ROUTES_MANIFEST); + const prerenderManifestPath = _path.default.join(distDir, _constants.PRERENDER_MANIFEST); + const middlewareManifestPath = _path.default.join(distDir, 'server', _constants.MIDDLEWARE_MANIFEST); + const functionsConfigManifestPath = _path.default.join(distDir, 'server', _constants.FUNCTIONS_CONFIG_MANIFEST); + const pagesManifestPath = _path.default.join(distDir, 'server', _constants.PAGES_MANIFEST); + const appRoutesManifestPath = _path.default.join(distDir, _constants.APP_PATH_ROUTES_MANIFEST); + const routesManifest = JSON.parse(await _promises.default.readFile(routesManifestPath, 'utf8')); + previewProps = JSON.parse(await _promises.default.readFile(prerenderManifestPath, 'utf8')).preview; + const middlewareManifest = JSON.parse(await _promises.default.readFile(middlewareManifestPath, 'utf8').catch(()=>'{}')); + const functionsConfigManifest = JSON.parse(await _promises.default.readFile(functionsConfigManifestPath, 'utf8').catch(()=>'{}')); + const pagesManifest = JSON.parse(await _promises.default.readFile(pagesManifestPath, 'utf8')); + const appRoutesManifest = JSON.parse(await _promises.default.readFile(appRoutesManifestPath, 'utf8').catch(()=>'{}')); + for (const key of Object.keys(pagesManifest)){ + // ensure the non-locale version is in the set + if (opts.config.i18n) { + pageFiles.add((0, _normalizelocalepath.normalizeLocalePath)(key, opts.config.i18n.locales).pathname); + } else { + pageFiles.add(key); + } + } + for (const key of Object.keys(appRoutesManifest)){ + appFiles.add(appRoutesManifest[key]); + } + const escapedBuildId = (0, _escaperegexp.escapeStringRegexp)(buildId); + for (const route of routesManifest.dataRoutes){ + if ((0, _utils.isDynamicRoute)(route.page)) { + const routeRegex = (0, _routeregex.getNamedRouteRegex)(route.page, { + prefixRouteKeys: true + }); + dynamicRoutes.push({ + ...route, + regex: routeRegex.re.toString(), + namedRegex: routeRegex.namedRegex, + routeKeys: routeRegex.routeKeys, + match: (0, _routematcher.getRouteMatcher)({ + // TODO: fix this in the manifest itself, must also be fixed in + // upstream builder that relies on this + re: opts.config.i18n ? new RegExp(route.dataRouteRegex.replace(`/${escapedBuildId}/`, `/${escapedBuildId}/(?[^/]+?)/`)) : new RegExp(route.dataRouteRegex), + groups: routeRegex.groups + }) + }); + } + nextDataRoutes.add(route.page); + } + for (const route of routesManifest.dynamicRoutes){ + // If a route is marked as skipInternalRouting, it's not for the internal + // router, and instead has been added to support external routers. + if (route.skipInternalRouting) { + continue; + } + dynamicRoutes.push({ + ...route, + match: (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(route.page)) + }); + } + if ((_middlewareManifest_middleware = middlewareManifest.middleware) == null ? void 0 : (_middlewareManifest_middleware_ = _middlewareManifest_middleware['/']) == null ? void 0 : _middlewareManifest_middleware_.matchers) { + var _middlewareManifest_middleware_1, _middlewareManifest_middleware1; + middlewareMatcher = (0, _middlewareroutematcher.getMiddlewareRouteMatcher)((_middlewareManifest_middleware1 = middlewareManifest.middleware) == null ? void 0 : (_middlewareManifest_middleware_1 = _middlewareManifest_middleware1['/']) == null ? void 0 : _middlewareManifest_middleware_1.matchers); + } else if (functionsConfigManifest == null ? void 0 : functionsConfigManifest.functions['/_middleware']) { + middlewareMatcher = (0, _middlewareroutematcher.getMiddlewareRouteMatcher)(functionsConfigManifest.functions['/_middleware'].matchers ?? [ + { + regexp: '.*', + originalSource: '/:path*' + } + ]); + } + customRoutes = { + redirects: routesManifest.redirects, + rewrites: routesManifest.rewrites ? Array.isArray(routesManifest.rewrites) ? { + beforeFiles: [], + afterFiles: routesManifest.rewrites, + fallback: [] + } : routesManifest.rewrites : { + beforeFiles: [], + afterFiles: [], + fallback: [] + }, + headers: routesManifest.headers, + onMatchHeaders: routesManifest.onMatchHeaders + }; + } else { + // dev handling + customRoutes = await (0, _loadcustomroutes.default)(opts.config); + previewProps = { + previewModeId: require('crypto').randomBytes(16).toString('hex'), + previewModeSigningKey: require('crypto').randomBytes(32).toString('hex'), + previewModeEncryptionKey: require('crypto').randomBytes(32).toString('hex') + }; + } + const headers = customRoutes.headers.map((item)=>buildCustomRoute('header', item, opts.config.basePath, opts.config.experimental.caseSensitiveRoutes)); + const onMatchHeaders = customRoutes.onMatchHeaders.map((item)=>buildCustomRoute('header', item, opts.config.basePath, opts.config.experimental.caseSensitiveRoutes)); + const redirects = customRoutes.redirects.map((item)=>buildCustomRoute('redirect', item, opts.config.basePath, opts.config.experimental.caseSensitiveRoutes)); + const rewrites = { + beforeFiles: customRoutes.rewrites.beforeFiles.map((item)=>buildCustomRoute('before_files_rewrite', item)), + afterFiles: customRoutes.rewrites.afterFiles.map((item)=>buildCustomRoute('rewrite', item, opts.config.basePath, opts.config.experimental.caseSensitiveRoutes)), + fallback: customRoutes.rewrites.fallback.map((item)=>buildCustomRoute('rewrite', item, opts.config.basePath, opts.config.experimental.caseSensitiveRoutes)) + }; + const { i18n } = opts.config; + const handleLocale = (pathname, locales)=>{ + let locale; + if (i18n) { + const i18nResult = (0, _normalizelocalepath.normalizeLocalePath)(pathname, locales || i18n.locales); + pathname = i18nResult.pathname; + locale = i18nResult.detectedLocale; + } + return { + locale, + pathname + }; + }; + debug('nextDataRoutes', nextDataRoutes); + debug('dynamicRoutes', dynamicRoutes); + debug('customRoutes', customRoutes); + debug('publicFolderItems', publicFolderItems); + debug('nextStaticFolderItems', nextStaticFolderItems); + debug('pageFiles', pageFiles); + debug('appFiles', appFiles); + let ensureFn; + const normalizers = { + // Because we can't know if the app directory is enabled or not at this + // stage, we assume that it is. + rsc: new _rsc.RSCPathnameNormalizer() + }; + return { + headers, + onMatchHeaders, + rewrites, + redirects, + buildId, + handleLocale, + appFiles, + pageFiles, + staticMetadataFiles, + dynamicRoutes, + nextDataRoutes, + exportPathMapRoutes: undefined, + devVirtualFsItems: new Set(), + previewProps, + middlewareMatcher: middlewareMatcher, + ensureCallback (fn) { + ensureFn = fn; + }, + async getItem (itemPath) { + const originalItemPath = itemPath; + const itemKey = originalItemPath; + const lruResult = getItemsLru == null ? void 0 : getItemsLru.get(itemKey); + if (lruResult) { + return lruResult; + } + const { basePath } = opts.config; + const hasBasePath = (0, _pathhasprefix.pathHasPrefix)(itemPath, basePath); + // Return null if path doesn't start with basePath + if (basePath && !hasBasePath) { + return null; + } + // Remove basePath if it exists. + if (basePath && hasBasePath) { + itemPath = (0, _removepathprefix.removePathPrefix)(itemPath, basePath) || '/'; + } + // Simulate minimal mode requests by normalizing RSC and postponed + // requests. + if (opts.minimalMode) { + if (normalizers.rsc.match(itemPath)) { + itemPath = normalizers.rsc.normalize(itemPath, true); + } + } + if (itemPath !== '/' && itemPath.endsWith('/')) { + itemPath = itemPath.substring(0, itemPath.length - 1); + } + let decodedItemPath = itemPath; + try { + decodedItemPath = decodeURIComponent(itemPath); + } catch {} + if (itemPath === '/_next/image') { + return { + itemPath, + type: 'nextImage' + }; + } + if (opts.dev && (0, _ismetadataroute.isMetadataRouteFile)(itemPath, [], false)) { + const fsPath = staticMetadataFiles.get(itemPath); + if (fsPath) { + return { + // "nextStaticFolder" sets Cache-Control "no-store" on dev. + type: 'nextStaticFolder', + fsPath, + itemPath: fsPath + }; + } + } + const itemsToCheck = [ + [ + this.devVirtualFsItems, + 'devVirtualFsItem' + ], + [ + nextStaticFolderItems, + 'nextStaticFolder' + ], + [ + legacyStaticFolderItems, + 'legacyStaticFolder' + ], + [ + publicFolderItems, + 'publicFolder' + ], + [ + appFiles, + 'appFile' + ], + [ + pageFiles, + 'pageFile' + ] + ]; + for (let [items, type] of itemsToCheck){ + let locale; + let curItemPath = itemPath; + let curDecodedItemPath = decodedItemPath; + const isDynamicOutput = type === 'pageFile' || type === 'appFile'; + if (i18n) { + var _i18n_domains; + const localeResult = handleLocale(itemPath, // legacy behavior allows visiting static assets under + // default locale but no other locale + isDynamicOutput ? undefined : [ + i18n == null ? void 0 : i18n.defaultLocale, + // default locales from domains need to be matched too + ...((_i18n_domains = i18n.domains) == null ? void 0 : _i18n_domains.map((item)=>item.defaultLocale)) || [] + ]); + if (localeResult.pathname !== curItemPath) { + curItemPath = localeResult.pathname; + locale = localeResult.locale; + try { + curDecodedItemPath = decodeURIComponent(curItemPath); + } catch {} + } + } + if (type === 'legacyStaticFolder') { + if (!(0, _pathhasprefix.pathHasPrefix)(curItemPath, '/static')) { + continue; + } + curItemPath = curItemPath.substring('/static'.length); + try { + curDecodedItemPath = decodeURIComponent(curItemPath); + } catch {} + } + if (type === 'nextStaticFolder' && !(0, _pathhasprefix.pathHasPrefix)(curItemPath, '/_next/static')) { + continue; + } + const nextDataPrefix = `/_next/data/${buildId}/`; + if (type === 'pageFile' && curItemPath.startsWith(nextDataPrefix) && curItemPath.endsWith('.json')) { + items = nextDataRoutes; + // remove _next/data/ prefix + curItemPath = curItemPath.substring(nextDataPrefix.length - 1); + // remove .json postfix + curItemPath = curItemPath.substring(0, curItemPath.length - '.json'.length); + const curLocaleResult = handleLocale(curItemPath); + curItemPath = curLocaleResult.pathname === '/index' ? '/' : curLocaleResult.pathname; + locale = curLocaleResult.locale; + try { + curDecodedItemPath = decodeURIComponent(curItemPath); + } catch {} + } + let matchedItem = items.has(curItemPath); + // check decoded variant as well + if (!matchedItem && !opts.dev) { + matchedItem = items.has(curDecodedItemPath); + if (matchedItem) curItemPath = curDecodedItemPath; + else { + // x-ref: https://github.com/vercel/next.js/issues/54008 + // There're cases that urls get decoded before requests, we should support both encoded and decoded ones. + // e.g. nginx could decode the proxy urls, the below ones should be treated as the same: + // decoded version: `/_next/static/chunks/pages/blog/[slug]-d4858831b91b69f6.js` + // encoded version: `/_next/static/chunks/pages/blog/%5Bslug%5D-d4858831b91b69f6.js` + try { + // encode the special characters in the path and retrieve again to determine if path exists. + const encodedCurItemPath = (0, _encodeuripath.encodeURIPath)(curItemPath); + matchedItem = items.has(encodedCurItemPath); + } catch {} + } + } + if (matchedItem || opts.dev) { + let fsPath; + let itemsRoot; + switch(type){ + case 'nextStaticFolder': + { + itemsRoot = nextStaticFolderPath; + curItemPath = curItemPath.substring('/_next/static'.length); + break; + } + case 'legacyStaticFolder': + { + itemsRoot = legacyStaticFolderPath; + break; + } + case 'publicFolder': + { + itemsRoot = publicFolderPath; + break; + } + case 'appFile': + case 'pageFile': + case 'nextImage': + case 'devVirtualFsItem': + { + break; + } + default: + { + ; + type; + } + } + if (itemsRoot && curItemPath) { + fsPath = _path.default.posix.join(itemsRoot, curItemPath); + } + // dynamically check fs in development so we don't + // have to wait on the watcher + if (!matchedItem && opts.dev) { + const isStaticAsset = [ + 'nextStaticFolder', + 'publicFolder', + 'legacyStaticFolder' + ].includes(type); + if (isStaticAsset && itemsRoot) { + let found = fsPath && await (0, _fileexists.fileExists)(fsPath, _fileexists.FileType.File); + if (!found) { + try { + // In dev, we ensure encoded paths match + // decoded paths on the filesystem so check + // that variation as well + const tempItemPath = decodeURIComponent(curItemPath); + fsPath = _path.default.posix.join(itemsRoot, tempItemPath); + found = await (0, _fileexists.fileExists)(fsPath, _fileexists.FileType.File); + } catch {} + if (!found) { + continue; + } + } + } else if (type === 'pageFile' || type === 'appFile') { + const isAppFile = type === 'appFile'; + // Attempt to ensure the page/app file is compiled and ready + if (ensureFn) { + const ensureItemPath = isAppFile ? (0, _getmetadataroute.normalizeMetadataRoute)(curItemPath) : curItemPath; + try { + await ensureFn({ + type, + itemPath: ensureItemPath + }); + } catch (error) { + continue; + } + } + } else { + continue; + } + } + // i18n locales aren't matched for app dir + if (type === 'appFile' && locale && locale !== (i18n == null ? void 0 : i18n.defaultLocale)) { + continue; + } + const itemResult = { + type, + fsPath, + locale, + itemsRoot, + itemPath: curItemPath + }; + getItemsLru == null ? void 0 : getItemsLru.set(itemKey, itemResult); + return itemResult; + } + } + getItemsLru == null ? void 0 : getItemsLru.set(itemKey, null); + return null; + }, + getDynamicRoutes () { + // this should include data routes + return this.dynamicRoutes; + }, + getMiddlewareMatchers () { + return this.middlewareMatcher; + } + }; +} + +//# sourceMappingURL=filesystem.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js b/cli/app/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js new file mode 100644 index 00000000000..c0b36f2c4ae --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/instrumentation-globals.external.js @@ -0,0 +1,89 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ensureInstrumentationRegistered: null, + getInstrumentationModule: null, + instrumentationOnRequestError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ensureInstrumentationRegistered: function() { + return ensureInstrumentationRegistered; + }, + getInstrumentationModule: function() { + return getInstrumentationModule; + }, + instrumentationOnRequestError: function() { + return instrumentationOnRequestError; + } +}); +const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path")); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../../../lib/is-error")); +const _constants = require("../../../lib/constants"); +const _interopdefault = require("../../../lib/interop-default"); +const _instrumentationnodeextensions = require("./instrumentation-node-extensions"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +let cachedInstrumentationModule; +async function getInstrumentationModule(projectDir, distDir) { + if (cachedInstrumentationModule) { + return cachedInstrumentationModule; + } + try { + cachedInstrumentationModule = (0, _interopdefault.interopDefault)(await require(_nodepath.default.join(projectDir, distDir, 'server', `${_constants.INSTRUMENTATION_HOOK_FILENAME}.js`))); + return cachedInstrumentationModule; + } catch (err) { + if ((0, _iserror.default)(err) && err.code !== 'ENOENT' && err.code !== 'MODULE_NOT_FOUND' && err.code !== 'ERR_MODULE_NOT_FOUND') { + throw err; + } + } +} +let instrumentationModulePromise = null; +async function registerInstrumentation(projectDir, distDir) { + // Ensure registerInstrumentation is not called in production build + if (process.env.NEXT_PHASE === 'phase-production-build') { + return; + } + if (!instrumentationModulePromise) { + instrumentationModulePromise = getInstrumentationModule(projectDir, distDir); + } + const instrumentation = await instrumentationModulePromise; + if (instrumentation == null ? void 0 : instrumentation.register) { + try { + await instrumentation.register(); + (0, _instrumentationnodeextensions.afterRegistration)(); + } catch (err) { + err.message = `An error occurred while loading instrumentation hook: ${err.message}`; + throw err; + } + } +} +async function instrumentationOnRequestError(projectDir, distDir, ...args) { + const instrumentation = await getInstrumentationModule(projectDir, distDir); + try { + var _instrumentation_onRequestError; + await (instrumentation == null ? void 0 : (_instrumentation_onRequestError = instrumentation.onRequestError) == null ? void 0 : _instrumentation_onRequestError.call(instrumentation, ...args)); + } catch (err) { + // Log the soft error and continue, since the original error has already been thrown + console.error('Error in instrumentation.onRequestError:', err); + } +} +let registerInstrumentationPromise = null; +function ensureInstrumentationRegistered(projectDir, distDir) { + if (!registerInstrumentationPromise) { + registerInstrumentationPromise = registerInstrumentation(projectDir, distDir); + } + return registerInstrumentationPromise; +} + +//# sourceMappingURL=instrumentation-globals.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js b/cli/app/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js new file mode 100644 index 00000000000..31f79ab17cd --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/instrumentation-node-extensions.js @@ -0,0 +1,96 @@ +/** + * This extension augments opentelemetry after registration if applicable. + * This extension must only be loaded in Node environments. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "afterRegistration", { + enumerable: true, + get: function() { + return afterRegistration; + } +}); +const _workunitasyncstorageexternal = require("../../app-render/work-unit-async-storage.external"); +const _invarianterror = require("../../../shared/lib/invariant-error"); +const _clientandserverreferences = require("../../../lib/client-and-server-references"); +function afterRegistration() { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('Node.js instrumentation extensions should not be loaded in the Edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E775", + enumerable: false, + configurable: true + }); + } + extendTracerProviderForCacheComponents(); +} +// In theory we only want to enable this extension when cacheComponents is enabled +// however there are certain servers that might load instrumentation before nextConfig is available +// and so gating it on the config might lead to skipping this extension even when it is necessary. +// When cacheComponents is disabled this extension should be a no-op so we enable it universally. +// Additionally, soon, cacheComponents will be enabled always so this just pulls the extension forward in time +function extendTracerProviderForCacheComponents() { + let api; + // we want to allow users to use their own version of @opentelemetry/api if they + // want to, so we try to require it first, and if it fails we fall back to the + // version that is bundled with Next.js + // this is because @opentelemetry/api has to be synced with the version of + // @opentelemetry/tracing that is used, and we don't want to force users to use + // the version that is bundled with Next.js. + // the API is ~stable, so this should be fine + try { + api = require('@opentelemetry/api'); + } catch (err) { + api = require('next/dist/compiled/@opentelemetry/api'); + } + const provider = api.trace.getTracerProvider(); + // When Cache Components is enabled we need to instrument the tracer + // to exit the workUnitAsyncStorage context when generating spans. + const originalGetTracer = provider.getTracer.bind(provider); + provider.getTracer = (...args)=>{ + const tracer = originalGetTracer.apply(provider, args); + if (WeakTracers.has(tracer)) { + return tracer; + } + const originalStartSpan = tracer.startSpan; + tracer.startSpan = (...startSpanArgs)=>{ + return _workunitasyncstorageexternal.workUnitAsyncStorage.exit(()=>originalStartSpan.apply(tracer, startSpanArgs)); + }; + const originalStartActiveSpan = tracer.startActiveSpan; + // @ts-ignore TS doesn't recognize the overloads correctly + tracer.startActiveSpan = (...startActiveSpanArgs)=>{ + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (!workUnitStore) { + // @ts-ignore TS doesn't recognize the overloads correctly + return originalStartActiveSpan.apply(tracer, startActiveSpanArgs); + } + let fnIdx = 0; + if (startActiveSpanArgs.length === 2 && typeof startActiveSpanArgs[1] === 'function') { + fnIdx = 1; + } else if (startActiveSpanArgs.length === 3 && typeof startActiveSpanArgs[2] === 'function') { + fnIdx = 2; + } else if (startActiveSpanArgs.length > 3 && typeof startActiveSpanArgs[3] === 'function') { + fnIdx = 3; + } + if (fnIdx) { + const originalFn = startActiveSpanArgs[fnIdx]; + if ((0, _clientandserverreferences.isUseCacheFunction)(originalFn)) { + console.error('A Cache Function (`use cache`) was passed to startActiveSpan which means it will receive a Span argument with a possibly random ID on every invocation leading to cache misses. Provide a wrapping function around the Cache Function that does not forward the Span argument to avoid this issue.'); + } + startActiveSpanArgs[fnIdx] = withWorkUnitContext(workUnitStore, originalFn); + } + return _workunitasyncstorageexternal.workUnitAsyncStorage.exit(()=>{ + // @ts-ignore TS doesn't recognize the overloads correctly + return originalStartActiveSpan.apply(tracer, startActiveSpanArgs); + }); + }; + WeakTracers.add(tracer); + return tracer; + }; +} +const WeakTracers = new WeakSet(); +function withWorkUnitContext(workUnitStore, fn) { + return (...args)=>_workunitasyncstorageexternal.workUnitAsyncStorage.run(workUnitStore, fn, ...args); +} + +//# sourceMappingURL=instrumentation-node-extensions.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/is-postpone.js b/cli/app/node_modules/next/dist/server/lib/router-utils/is-postpone.js new file mode 100644 index 00000000000..b621cfe9354 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/is-postpone.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isPostpone", { + enumerable: true, + get: function() { + return isPostpone; + } +}); +const REACT_POSTPONE_TYPE = Symbol.for('react.postpone'); +function isPostpone(error) { + return typeof error === 'object' && error !== null && error.$$typeof === REACT_POSTPONE_TYPE; +} + +//# sourceMappingURL=is-postpone.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/proxy-request.js b/cli/app/node_modules/next/dist/server/lib/router-utils/proxy-request.js new file mode 100644 index 00000000000..de8549da038 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/proxy-request.js @@ -0,0 +1,118 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "proxyRequest", { + enumerable: true, + get: function() { + return proxyRequest; + } +}); +const _url = /*#__PURE__*/ _interop_require_default(require("url")); +const _serverrouteutils = require("../../server-route-utils"); +const _stream = require("stream"); +const _detachedpromise = require("../../../lib/detached-promise"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function proxyRequest(req, res, parsedUrl, upgradeHead, reqBody, proxyTimeout) { + const { query } = parsedUrl; + delete parsedUrl.query; + parsedUrl.search = (0, _serverrouteutils.stringifyQuery)(req, query); + const target = _url.default.format(parsedUrl); + const HttpProxy = require('next/dist/compiled/http-proxy'); + const proxy = new HttpProxy({ + target, + changeOrigin: true, + ignorePath: true, + ws: true, + // we limit proxy requests to 30s by default, in development + // we don't time out WebSocket requests to allow proxying + proxyTimeout: proxyTimeout === null ? undefined : proxyTimeout || 30000, + headers: { + 'x-forwarded-host': req.headers.host || '' + } + }); + let finished = false; + // http-proxy does not properly detect a client disconnect in newer + // versions of Node.js. This is caused because it only listens for the + // `aborted` event on the our request object, but it also fully reads + // and closes the request object. Node **will not** fire `aborted` when + // the request is already closed. Listening for `close` on our response + // object will detect the disconnect, and we can abort the proxy's + // connection. + proxy.on('proxyReq', (proxyReq)=>{ + res.on('close', ()=>proxyReq.destroy()); + }); + proxy.on('proxyRes', (proxyRes)=>{ + if (res.destroyed) { + proxyRes.destroy(); + } else { + res.on('close', ()=>proxyRes.destroy()); + } + }); + proxy.on('proxyRes', (proxyRes, innerReq, innerRes)=>{ + const cleanup = (err)=>{ + // cleanup event listeners to allow clean garbage collection + proxyRes.removeListener('error', cleanup); + proxyRes.removeListener('close', cleanup); + innerRes.removeListener('error', cleanup); + innerRes.removeListener('close', cleanup); + // destroy all source streams to propagate the caught event backward + innerReq.destroy(err); + proxyRes.destroy(err); + }; + proxyRes.once('error', cleanup); + proxyRes.once('close', cleanup); + innerRes.once('error', cleanup); + innerRes.once('close', cleanup); + }); + const detached = new _detachedpromise.DetachedPromise(); + proxy.on('error', (err)=>{ + console.error(`Failed to proxy ${target}`, err); + if (!finished) { + finished = true; + detached.reject(err); + if (!res.destroyed) { + if (!(res instanceof _stream.Duplex)) { + res.statusCode = 500; + } + res.end('Internal Server Error'); + } + } + }); + // If upgrade head is present or the response is a Duplex stream, treat as + // WebSocket request. + if (upgradeHead || res instanceof _stream.Duplex) { + proxy.on('proxyReqWs', (proxyReq)=>{ + proxyReq.on('close', ()=>{ + if (!finished) { + finished = true; + detached.resolve(true); + } + }); + }); + proxy.ws(req, res, upgradeHead); + detached.resolve(true); + } else { + proxy.on('proxyReq', (proxyReq)=>{ + proxyReq.on('close', ()=>{ + if (!finished) { + finished = true; + detached.resolve(true); + } + }); + }); + proxy.web(req, res, { + buffer: reqBody + }); + } + // When the proxy finishes proxying the request, shut down the proxy. + return detached.promise.finally(()=>{ + proxy.close(); + }); +} + +//# sourceMappingURL=proxy-request.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/resolve-routes.js b/cli/app/node_modules/next/dist/server/lib/router-utils/resolve-routes.js new file mode 100644 index 00000000000..1be50e355ba --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/resolve-routes.js @@ -0,0 +1,629 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getResolveRoutes", { + enumerable: true, + get: function() { + return getResolveRoutes; + } +}); +const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path")); +const _debug = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/debug")); +const _bodystreams = require("../../body-streams"); +const _utils = require("../server-ipc/utils"); +const _serverrouteutils = require("../../server-route-utils"); +const _formathostname = require("../format-hostname"); +const _utils1 = require("../../web/utils"); +const _pipereadable = require("../../pipe-readable"); +const _gethostname = require("../../../shared/lib/get-hostname"); +const _redirectstatus = require("../../../lib/redirect-status"); +const _utils2 = require("../../../shared/lib/utils"); +const _relativizeurl = require("../../../shared/lib/router/utils/relativize-url"); +const _addpathprefix = require("../../../shared/lib/router/utils/add-path-prefix"); +const _pathhasprefix = require("../../../shared/lib/router/utils/path-has-prefix"); +const _parseurl = require("../../../shared/lib/router/utils/parse-url"); +const _detectdomainlocale = require("../../../shared/lib/i18n/detect-domain-locale"); +const _normalizelocalepath = require("../../../shared/lib/i18n/normalize-locale-path"); +const _removepathprefix = require("../../../shared/lib/router/utils/remove-path-prefix"); +const _nextdata = require("../../normalizers/request/next-data"); +const _basepath = require("../../normalizers/request/base-path"); +const _requestmeta = require("../../request-meta"); +const _preparedestination = require("../../../shared/lib/router/utils/prepare-destination"); +const _approuterheaders = require("../../../client/components/app-router-headers"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const debug = (0, _debug.default)('next:router-server:resolve-routes'); +function getResolveRoutes(fsChecker, config, opts, renderServer, renderServerOpts, ensureMiddleware) { + let clientHashes = undefined; + if (process.env.__NEXT_TEST_MODE && process.env.IS_TURBOPACK_TEST) { + try { + clientHashes = JSON.parse(require('fs').readFileSync(_nodepath.default.join(opts.dir, config.distDir, 'immutable-static-hashes.json'), 'utf8')); + } catch {} + } + let routes = null; + const calculateRoutes = ()=>{ + return [ + // _next/data with middleware handling + { + match: ()=>({}), + name: 'middleware_next_data' + }, + ...opts.minimalMode ? [] : fsChecker.headers, + ...opts.minimalMode ? [] : fsChecker.redirects, + // check middleware (using matchers) + { + match: ()=>({}), + name: 'middleware' + }, + ...opts.minimalMode ? [] : fsChecker.rewrites.beforeFiles, + // check middleware (using matchers) + { + match: ()=>({}), + name: 'before_files_end' + }, + // we check exact matches on fs before continuing to + // after files rewrites + { + match: ()=>({}), + name: 'check_fs' + }, + ...opts.minimalMode ? [] : fsChecker.rewrites.afterFiles, + // we always do the check: true handling before continuing to + // fallback rewrites + { + check: true, + match: ()=>({}), + name: 'after files check: true' + }, + ...opts.minimalMode ? [] : fsChecker.rewrites.fallback + ]; + }; + async function resolveRoutes({ req, res, isUpgradeReq, invokedOutputs }) { + var _req_socket, _req_headers_xforwardedproto; + let finished = false; + let resHeaders = {}; + let matchedOutput = null; + let parsedUrl = (0, _parseurl.parseUrl)(req.url || ''); + let didRewrite = false; + const urlParts = (req.url || '').split('?', 1); + const urlNoQuery = urlParts[0]; + // Refresh the routes every time in development mode, but only initialize them + // once in production. We don't need to recompute these every time unless the routes + // are changing like in development, and the performance can be costly. + if (!routes || opts.dev) { + routes = calculateRoutes(); + } + // this normalizes repeated slashes in the path e.g. hello//world -> + // hello/world or backslashes to forward slashes, this does not + // handle trailing slash as that is handled the same as a next.config.js + // redirect + if (urlNoQuery == null ? void 0 : urlNoQuery.match(/(\\|\/\/)/)) { + parsedUrl = (0, _parseurl.parseUrl)((0, _utils2.normalizeRepeatedSlashes)(req.url)); + return { + parsedUrl, + resHeaders, + finished: true, + statusCode: 308 + }; + } + // TODO: inherit this from higher up + const protocol = (req == null ? void 0 : (_req_socket = req.socket) == null ? void 0 : _req_socket.encrypted) || ((_req_headers_xforwardedproto = req.headers['x-forwarded-proto']) == null ? void 0 : _req_headers_xforwardedproto.includes('https')) ? 'https' : 'http'; + // When there are hostname and port we build an absolute URL + const initUrl = config.experimental.trustHostHeader ? `https://${req.headers.host || 'localhost'}${req.url}` : opts.port ? `${protocol}://${(0, _formathostname.formatHostname)(opts.hostname || 'localhost')}:${opts.port}${req.url}` : req.url || ''; + (0, _requestmeta.addRequestMeta)(req, 'initURL', initUrl); + (0, _requestmeta.addRequestMeta)(req, 'initQuery', { + ...parsedUrl.query + }); + (0, _requestmeta.addRequestMeta)(req, 'initProtocol', protocol); + if (!isUpgradeReq) { + const bodySizeLimit = config.experimental.proxyClientMaxBodySize; + (0, _requestmeta.addRequestMeta)(req, 'clonableBody', (0, _bodystreams.getCloneableBody)(req, bodySizeLimit)); + } + const maybeAddTrailingSlash = (pathname)=>{ + if (config.trailingSlash && !config.skipProxyUrlNormalize && !pathname.endsWith('/')) { + return `${pathname}/`; + } + return pathname; + }; + let domainLocale; + let defaultLocale; + let initialLocaleResult = undefined; + if (config.i18n) { + var _parsedUrl_pathname; + const hadTrailingSlash = (_parsedUrl_pathname = parsedUrl.pathname) == null ? void 0 : _parsedUrl_pathname.endsWith('/'); + const hadBasePath = (0, _pathhasprefix.pathHasPrefix)(parsedUrl.pathname || '', config.basePath); + let normalizedPath = parsedUrl.pathname || '/'; + if (config.basePath && (0, _pathhasprefix.pathHasPrefix)(normalizedPath, config.basePath)) { + normalizedPath = (0, _removepathprefix.removePathPrefix)(normalizedPath, config.basePath); + } else if (config.assetPrefix && (0, _pathhasprefix.pathHasPrefix)(normalizedPath, config.assetPrefix)) { + normalizedPath = (0, _removepathprefix.removePathPrefix)(normalizedPath, config.assetPrefix); + } + initialLocaleResult = (0, _normalizelocalepath.normalizeLocalePath)(normalizedPath, config.i18n.locales); + domainLocale = (0, _detectdomainlocale.detectDomainLocale)(config.i18n.domains, (0, _gethostname.getHostname)(parsedUrl, req.headers)); + defaultLocale = (domainLocale == null ? void 0 : domainLocale.defaultLocale) || config.i18n.defaultLocale; + (0, _requestmeta.addRequestMeta)(req, 'defaultLocale', defaultLocale); + (0, _requestmeta.addRequestMeta)(req, 'locale', initialLocaleResult.detectedLocale || defaultLocale); + // ensure locale is present for resolving routes + if (!initialLocaleResult.detectedLocale && !initialLocaleResult.pathname.startsWith('/_next/')) { + parsedUrl.pathname = (0, _addpathprefix.addPathPrefix)(initialLocaleResult.pathname === '/' ? `/${defaultLocale}` : (0, _addpathprefix.addPathPrefix)(initialLocaleResult.pathname || '', `/${defaultLocale}`), hadBasePath ? config.basePath : ''); + if (hadTrailingSlash) { + parsedUrl.pathname = maybeAddTrailingSlash(parsedUrl.pathname); + } + } + } + const checkLocaleApi = (pathname)=>{ + if (config.i18n && pathname === urlNoQuery && (initialLocaleResult == null ? void 0 : initialLocaleResult.detectedLocale) && (0, _pathhasprefix.pathHasPrefix)(initialLocaleResult.pathname, '/api')) { + return true; + } + }; + async function checkTrue() { + const pathname = parsedUrl.pathname || '/'; + if (checkLocaleApi(pathname)) { + return; + } + if (!(invokedOutputs == null ? void 0 : invokedOutputs.has(pathname))) { + const output = await fsChecker.getItem(pathname); + if (output) { + if (config.useFileSystemPublicRoutes || didRewrite || output.type !== 'appFile' && output.type !== 'pageFile') { + return output; + } + } + } + const dynamicRoutes = fsChecker.getDynamicRoutes(); + let curPathname = parsedUrl.pathname; + if (config.basePath) { + if (!(0, _pathhasprefix.pathHasPrefix)(curPathname || '', config.basePath)) { + return; + } + curPathname = (curPathname == null ? void 0 : curPathname.substring(config.basePath.length)) || '/'; + } + const localeResult = fsChecker.handleLocale(curPathname || ''); + for (const route of dynamicRoutes){ + // when resolving fallback: false the + // render worker may return a no-fallback response + // which signals we need to continue resolving. + // TODO: optimize this to collect static paths + // to use at the routing layer + if (invokedOutputs == null ? void 0 : invokedOutputs.has(route.page)) { + continue; + } + const params = route.match(localeResult.pathname); + if (params) { + const pageOutput = await fsChecker.getItem((0, _addpathprefix.addPathPrefix)(route.page, config.basePath || '')); + // i18n locales aren't matched for app dir + if ((pageOutput == null ? void 0 : pageOutput.type) === 'appFile' && (initialLocaleResult == null ? void 0 : initialLocaleResult.detectedLocale)) { + continue; + } + if (pageOutput && (curPathname == null ? void 0 : curPathname.startsWith('/_next/data'))) { + (0, _requestmeta.addRequestMeta)(req, 'isNextDataReq', true); + } + if (config.useFileSystemPublicRoutes || didRewrite) { + return pageOutput; + } + } + } + } + const normalizers = { + basePath: config.basePath && config.basePath !== '/' ? new _basepath.BasePathPathnameNormalizer(config.basePath) : undefined, + data: new _nextdata.NextDataPathnameNormalizer(fsChecker.buildId) + }; + async function handleRoute(route) { + let curPathname = parsedUrl.pathname || '/'; + if (config.i18n && route.internal) { + const hadTrailingSlash = curPathname.endsWith('/'); + if (config.basePath) { + curPathname = (0, _removepathprefix.removePathPrefix)(curPathname, config.basePath); + } + const hadBasePath = curPathname !== parsedUrl.pathname; + const localeResult = (0, _normalizelocalepath.normalizeLocalePath)(curPathname, config.i18n.locales); + const isDefaultLocale = localeResult.detectedLocale === defaultLocale; + if (isDefaultLocale) { + curPathname = localeResult.pathname === '/' && hadBasePath ? config.basePath : (0, _addpathprefix.addPathPrefix)(localeResult.pathname, hadBasePath ? config.basePath : ''); + } else if (hadBasePath) { + curPathname = curPathname === '/' ? config.basePath : (0, _addpathprefix.addPathPrefix)(curPathname, config.basePath); + } + if ((isDefaultLocale || hadBasePath) && hadTrailingSlash) { + curPathname = maybeAddTrailingSlash(curPathname); + } + } + let params = route.match(curPathname); + if ((route.has || route.missing) && params) { + const hasParams = (0, _preparedestination.matchHas)(req, parsedUrl.query, route.has, route.missing); + if (hasParams) { + Object.assign(params, hasParams); + } else { + params = false; + } + } + if (params) { + if (fsChecker.exportPathMapRoutes && route.name === 'before_files_end') { + for (const exportPathMapRoute of fsChecker.exportPathMapRoutes){ + const result = await handleRoute(exportPathMapRoute); + if (result) { + return result; + } + } + } + if (route.name === 'middleware_next_data' && parsedUrl.pathname) { + var _fsChecker_getMiddlewareMatchers; + if ((_fsChecker_getMiddlewareMatchers = fsChecker.getMiddlewareMatchers()) == null ? void 0 : _fsChecker_getMiddlewareMatchers.length) { + var _normalizers_basePath; + let normalized = parsedUrl.pathname; + // Remove the base path if it exists. + const hadBasePath = (_normalizers_basePath = normalizers.basePath) == null ? void 0 : _normalizers_basePath.match(parsedUrl.pathname); + if (hadBasePath && normalizers.basePath) { + normalized = normalizers.basePath.normalize(normalized, true); + } + let updated = false; + if (normalizers.data.match(normalized)) { + updated = true; + (0, _requestmeta.addRequestMeta)(req, 'isNextDataReq', true); + normalized = normalizers.data.normalize(normalized, true); + } + if (config.i18n) { + const curLocaleResult = (0, _normalizelocalepath.normalizeLocalePath)(normalized, config.i18n.locales); + if (curLocaleResult.detectedLocale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', curLocaleResult.detectedLocale); + } + } + // If we updated the pathname, and it had a base path, re-add the + // base path. + if (updated) { + if (hadBasePath) { + normalized = normalized === '/' ? config.basePath : _nodepath.default.posix.join(config.basePath, normalized); + } + // Re-add the trailing slash (if required). + normalized = maybeAddTrailingSlash(normalized); + parsedUrl.pathname = normalized; + } + } + } + if (route.name === 'check_fs') { + const pathname = parsedUrl.pathname || '/'; + if ((invokedOutputs == null ? void 0 : invokedOutputs.has(pathname)) || checkLocaleApi(pathname)) { + return; + } + const output = await fsChecker.getItem(pathname); + if (output && !(config.i18n && (initialLocaleResult == null ? void 0 : initialLocaleResult.detectedLocale) && (0, _pathhasprefix.pathHasPrefix)(pathname, '/api'))) { + if (config.useFileSystemPublicRoutes || didRewrite || output.type !== 'appFile' && output.type !== 'pageFile') { + matchedOutput = output; + if (output.locale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', output.locale); + } + if (process.env.__NEXT_TEST_MODE && process.env.IS_TURBOPACK_TEST && output.type === 'nextStaticFolder' && config.deploymentId) { + let useImmutableToken = config.experimental.immutableAssetToken && clientHashes[`static${decodeURI(output.itemPath)}`]; + const expectedToken = useImmutableToken ? config.experimental.immutableAssetToken : config.deploymentId; + if (parsedUrl.query.dpl !== expectedToken) { + console.error(`Invalid dpl query param: ${req.url}, expected: ${expectedToken}`); + return { + finished: true, + parsedUrl, + resHeaders, + matchedOutput: null + }; + } + } + return { + parsedUrl, + resHeaders, + finished: true, + matchedOutput + }; + } + } + } + if (!opts.minimalMode && route.name === 'middleware') { + const match = fsChecker.getMiddlewareMatchers(); + let maybeDecodedPathname = parsedUrl.pathname || '/'; + try { + maybeDecodedPathname = decodeURIComponent(maybeDecodedPathname); + } catch { + /* non-fatal we can't decode so can't match it */ } + if (// @ts-expect-error BaseNextRequest stuff + (match == null ? void 0 : match(parsedUrl.pathname, req, parsedUrl.query)) || (match == null ? void 0 : match(maybeDecodedPathname, // @ts-expect-error BaseNextRequest stuff + req, parsedUrl.query))) { + if (ensureMiddleware) { + await ensureMiddleware(req.url); + } + const serverResult = await (renderServer == null ? void 0 : renderServer.initialize(renderServerOpts)); + if (!serverResult) { + throw Object.defineProperty(new Error(`Failed to initialize render server "middleware"`), "__NEXT_ERROR_CODE", { + value: "E222", + enumerable: false, + configurable: true + }); + } + (0, _requestmeta.addRequestMeta)(req, 'invokePath', ''); + (0, _requestmeta.addRequestMeta)(req, 'invokeOutput', ''); + (0, _requestmeta.addRequestMeta)(req, 'invokeQuery', {}); + (0, _requestmeta.addRequestMeta)(req, 'middlewareInvoke', true); + if (opts.dev) { + (0, _requestmeta.addRequestMeta)(req, 'devRequestTimingMiddlewareStart', process.hrtime.bigint()); + } + debug('invoking middleware', req.url, req.headers); + let middlewareRes = undefined; + let bodyStream = undefined; + try { + try { + await serverResult.requestHandler(req, res, parsedUrl); + } catch (err) { + if (!('result' in err) || !('response' in err.result)) { + throw err; + } + middlewareRes = err.result.response; + res.statusCode = middlewareRes.status; + if (middlewareRes.body) { + bodyStream = middlewareRes.body; + } else if (middlewareRes.status) { + bodyStream = new ReadableStream({ + start (controller) { + controller.enqueue(''); + controller.close(); + } + }); + } + } finally{ + if (opts.dev) { + (0, _requestmeta.addRequestMeta)(req, 'devRequestTimingMiddlewareEnd', process.hrtime.bigint()); + } + } + } catch (e) { + // If the client aborts before we can receive a response object + // (when the headers are flushed), then we can early exit without + // further processing. + if ((0, _pipereadable.isAbortError)(e)) { + return { + parsedUrl, + resHeaders, + finished: true + }; + } + throw e; + } + if (res.closed || res.finished || !middlewareRes) { + return { + parsedUrl, + resHeaders, + finished: true + }; + } + const middlewareHeaders = (0, _utils1.toNodeOutgoingHttpHeaders)(middlewareRes.headers); + debug('middleware res', middlewareRes.status, middlewareHeaders); + if (middlewareHeaders['x-middleware-override-headers']) { + const overriddenHeaders = new Set(); + let overrideHeaders = middlewareHeaders['x-middleware-override-headers']; + if (typeof overrideHeaders === 'string') { + overrideHeaders = overrideHeaders.split(','); + } + for (const key of overrideHeaders){ + overriddenHeaders.add(key.trim()); + } + delete middlewareHeaders['x-middleware-override-headers']; + // Delete headers. + for (const key of Object.keys(req.headers)){ + if (!overriddenHeaders.has(key)) { + delete req.headers[key]; + } + } + // Update or add headers. + for (const key of overriddenHeaders.keys()){ + const valueKey = 'x-middleware-request-' + key; + const newValue = middlewareHeaders[valueKey]; + const oldValue = req.headers[key]; + if (oldValue !== newValue) { + req.headers[key] = newValue === null ? undefined : newValue; + } + delete middlewareHeaders[valueKey]; + } + } + if (!middlewareHeaders['x-middleware-rewrite'] && !middlewareHeaders['x-middleware-next'] && !middlewareHeaders['location']) { + middlewareHeaders['x-middleware-refresh'] = '1'; + } + delete middlewareHeaders['x-middleware-next']; + for (const [key, value] of Object.entries({ + ...(0, _utils.filterReqHeaders)(middlewareHeaders, _utils.ipcForbiddenHeaders) + })){ + if ([ + 'content-length', + 'x-middleware-rewrite', + 'x-middleware-redirect', + 'x-middleware-refresh' + ].includes(key)) { + continue; + } + // for set-cookie, the header shouldn't be added to the response + // as it's only needed for the request to the middleware function. + if (key === 'x-middleware-set-cookie') { + req.headers[key] = value; + continue; + } + if (value) { + resHeaders[key] = value; + req.headers[key] = value; + } + } + if (middlewareHeaders['x-middleware-rewrite']) { + const value = middlewareHeaders['x-middleware-rewrite']; + const destination = (0, _relativizeurl.getRelativeURL)(value, initUrl); + resHeaders['x-middleware-rewrite'] = destination; + parsedUrl = (0, _parseurl.parseUrl)(destination); + if (parsedUrl.protocol) { + return { + parsedUrl, + resHeaders, + finished: true + }; + } + if (config.i18n) { + const curLocaleResult = (0, _normalizelocalepath.normalizeLocalePath)(parsedUrl.pathname || '', config.i18n.locales); + if (curLocaleResult.detectedLocale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', curLocaleResult.detectedLocale); + } + } + } + if (middlewareHeaders['location']) { + const value = middlewareHeaders['location']; + // Only process Location header as a redirect if it has a proper redirect status + // This prevents a Location header with non-redirect status from being treated as a redirect + const isRedirectStatus = _redirectstatus.allowedStatusCodes.has(middlewareRes.status); + if (isRedirectStatus) { + // Process as redirect: update parsedUrl and convert to relative URL + const rel = (0, _relativizeurl.getRelativeURL)(value, initUrl); + resHeaders['location'] = rel; + parsedUrl = (0, _parseurl.parseUrl)(rel); + return { + parsedUrl, + resHeaders, + finished: true, + statusCode: middlewareRes.status + }; + } else { + // Not a redirect: just pass through the Location header + resHeaders['location'] = value; + return { + parsedUrl, + resHeaders, + finished: true, + bodyStream, + statusCode: middlewareRes.status + }; + } + } + if (middlewareHeaders['x-middleware-refresh']) { + return { + parsedUrl, + resHeaders, + finished: true, + bodyStream, + statusCode: middlewareRes.status + }; + } + } + } + // handle redirect + if (('statusCode' in route || 'permanent' in route) && route.destination) { + const { parsedDestination } = (0, _preparedestination.prepareDestination)({ + appendParamsToQuery: false, + destination: route.destination, + params: params, + query: parsedUrl.query + }); + const { query } = parsedDestination; + delete parsedDestination.query; + parsedDestination.search = (0, _serverrouteutils.stringifyQuery)(req, query); + parsedDestination.pathname = (0, _utils2.normalizeRepeatedSlashes)(parsedDestination.pathname); + return { + finished: true, + parsedUrl: parsedDestination, + resHeaders: null, + statusCode: (0, _redirectstatus.getRedirectStatus)(route) + }; + } + // handle headers + if (route.headers) { + const hasParams = Object.keys(params).length > 0; + for (const header of route.headers){ + let { key, value } = header; + if (hasParams) { + key = (0, _preparedestination.compileNonPath)(key, params); + value = (0, _preparedestination.compileNonPath)(value, params); + } + if (key.toLowerCase() === 'set-cookie') { + if (!Array.isArray(resHeaders[key])) { + const val = resHeaders[key]; + resHeaders[key] = typeof val === 'string' ? [ + val + ] : []; + } + ; + resHeaders[key].push(value); + } else { + resHeaders[key] = value; + } + } + } + // handle rewrite + if (route.destination) { + var _config_experimental_clientParamParsingOrigins; + let rewriteParams = params; + const { parsedDestination } = (0, _preparedestination.prepareDestination)({ + appendParamsToQuery: true, + destination: route.destination, + params: rewriteParams, + query: parsedUrl.query + }); + // Check to see if this is a non-relative rewrite. If it is, we need + // to check to see if it's an allowed origin to receive the rewritten + // headers. + const parsedDestinationOrigin = parsedDestination.origin; + const isAllowedOrigin = parsedDestinationOrigin ? (_config_experimental_clientParamParsingOrigins = config.experimental.clientParamParsingOrigins) == null ? void 0 : _config_experimental_clientParamParsingOrigins.some((origin)=>new RegExp(origin).test(parsedDestinationOrigin)) : false; + // Set the rewrite headers only if this is a RSC request. + if (req.headers[_approuterheaders.RSC_HEADER] === '1' && (!parsedDestination.origin || isAllowedOrigin)) { + // We set the rewritten path and query headers on the response now + // that we know that the it's not an external rewrite. + if (parsedUrl.pathname !== parsedDestination.pathname) { + res.setHeader(_approuterheaders.NEXT_REWRITTEN_PATH_HEADER, parsedDestination.pathname); + } + if (parsedUrl.search !== parsedDestination.search) { + res.setHeader(_approuterheaders.NEXT_REWRITTEN_QUERY_HEADER, // remove the leading ? from the search + parsedDestination.search.slice(1)); + } + } + if (parsedDestination.protocol) { + return { + parsedUrl: parsedDestination, + resHeaders: null, + finished: true + }; + } + if (config.i18n) { + const curLocaleResult = (0, _normalizelocalepath.normalizeLocalePath)((0, _removepathprefix.removePathPrefix)(parsedDestination.pathname, config.basePath), config.i18n.locales); + if (curLocaleResult.detectedLocale) { + (0, _requestmeta.addRequestMeta)(req, 'locale', curLocaleResult.detectedLocale); + } + } + didRewrite = true; + parsedUrl.pathname = parsedDestination.pathname; + Object.assign(parsedUrl.query, parsedDestination.query); + } + // handle check: true + if (route.check) { + const output = await checkTrue(); + if (output) { + return { + parsedUrl, + resHeaders, + finished: true, + matchedOutput: output + }; + } + } + } + } + for (const route of routes){ + const result = await handleRoute(route); + if (result) { + if (result.matchedOutput) { + // handle onMatchHeaders + for (const onMatchHeaders of fsChecker.onMatchHeaders){ + await handleRoute(onMatchHeaders); + } + } + return result; + } + } + return { + finished, + parsedUrl, + resHeaders, + matchedOutput + }; + } + return resolveRoutes; +} + +//# sourceMappingURL=resolve-routes.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/route-types-utils.js b/cli/app/node_modules/next/dist/server/lib/router-utils/route-types-utils.js new file mode 100644 index 00000000000..defdf807658 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/route-types-utils.js @@ -0,0 +1,286 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + convertCustomRouteSource: null, + createRouteTypesManifest: null, + extractRouteParams: null, + writeRouteTypesManifest: null, + writeValidatorFile: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + convertCustomRouteSource: function() { + return convertCustomRouteSource; + }, + createRouteTypesManifest: function() { + return createRouteTypesManifest; + }, + extractRouteParams: function() { + return extractRouteParams; + }, + writeRouteTypesManifest: function() { + return writeRouteTypesManifest; + }, + writeValidatorFile: function() { + return writeValidatorFile; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _routeregex = require("../../../shared/lib/router/utils/route-regex"); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _typegen = require("./typegen"); +const _trytoparsepath = require("../../../lib/try-to-parse-path"); +const _interceptionroutes = require("../../../shared/lib/router/utils/interception-routes"); +const _entryconstants = require("../../../shared/lib/entry-constants"); +const _normalizepathsep = require("../../../shared/lib/page-path/normalize-path-sep"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function convertCustomRouteSource(source) { + const parseResult = (0, _trytoparsepath.tryToParsePath)(source); + if (parseResult.error || !parseResult.tokens) { + // Fallback to original source if parsing fails + return source.startsWith('/') ? [ + source + ] : [ + '/' + source + ]; + } + const possibleNormalizedRoutes = [ + '' + ]; + let slugCnt = 1; + function append(suffix) { + for(let i = 0; i < possibleNormalizedRoutes.length; i++){ + possibleNormalizedRoutes[i] += suffix; + } + } + function fork(suffix) { + const currentLength = possibleNormalizedRoutes.length; + for(let i = 0; i < currentLength; i++){ + possibleNormalizedRoutes.push(possibleNormalizedRoutes[i] + suffix); + } + } + for (const token of parseResult.tokens){ + if (typeof token === 'object') { + // Make sure the slug is always named. + const slug = token.name || (slugCnt++ === 1 ? 'slug' : `slug${slugCnt}`); + if (token.modifier === '*') { + append(`${token.prefix}[[...${slug}]]`); + } else if (token.modifier === '+') { + append(`${token.prefix}[...${slug}]`); + } else if (token.modifier === '') { + if (token.pattern === '[^\\/#\\?]+?') { + // A safe slug + append(`${token.prefix}[${slug}]`); + } else if (token.pattern === '.*') { + // An optional catch-all slug + append(`${token.prefix}[[...${slug}]]`); + } else if (token.pattern === '.+') { + // A catch-all slug + append(`${token.prefix}[...${slug}]`); + } else { + // Other regex patterns are not supported. Skip this route. + return []; + } + } else if (token.modifier === '?') { + if (/^[a-zA-Z0-9_/]*$/.test(token.pattern)) { + // An optional slug with plain text only, fork the route. + append(token.prefix); + fork(token.pattern); + } else { + // Optional modifier `?` and regex patterns are not supported. + return []; + } + } + } else if (typeof token === 'string') { + append(token); + } + } + // Ensure leading slash + return possibleNormalizedRoutes.map((route)=>route.startsWith('/') ? route : '/' + route); +} +function extractRouteParams(route) { + const regex = (0, _routeregex.getRouteRegex)(route); + return regex.groups; +} +/** + * Resolves an intercepting route to its canonical equivalent + * Example: /gallery/test/(..)photo/[id] -> /gallery/photo/[id] + */ function resolveInterceptingRoute(route) { + // Reuse centralized interception route normalization logic + try { + if (!(0, _interceptionroutes.isInterceptionRouteAppPath)(route)) return route; + const { interceptedRoute } = (0, _interceptionroutes.extractInterceptionRouteInformation)(route); + return interceptedRoute; + } catch { + // If parsing fails, fall back to the original route + return route; + } +} +async function createRouteTypesManifest({ dir, pageRoutes, appRoutes, appRouteHandlers, pageApiRoutes, layoutRoutes, slots, redirects, rewrites, validatorFilePath }) { + // Helper function to calculate the correct relative path + const getRelativePath = (filePath)=>{ + if (validatorFilePath) { + // For validator generation, calculate path relative to validator directory + return (0, _normalizepathsep.normalizePathSep)(_path.default.relative(_path.default.dirname(validatorFilePath), filePath)); + } + // For other uses, calculate path relative to project directory + return (0, _normalizepathsep.normalizePathSep)(_path.default.relative(dir, filePath)); + }; + const manifest = { + appRoutes: {}, + pageRoutes: {}, + layoutRoutes: {}, + appRouteHandlerRoutes: {}, + redirectRoutes: {}, + rewriteRoutes: {}, + appRouteHandlers: new Set(appRouteHandlers.map(({ filePath })=>getRelativePath(filePath))), + pageApiRoutes: new Set(pageApiRoutes.map(({ filePath })=>getRelativePath(filePath))), + appPagePaths: new Set(appRoutes.map(({ filePath })=>getRelativePath(filePath))), + pagesRouterPagePaths: new Set(pageRoutes.map(({ filePath })=>getRelativePath(filePath))), + layoutPaths: new Set(layoutRoutes.map(({ filePath })=>getRelativePath(filePath))), + filePathToRoute: new Map([ + ...appRoutes.map(({ route, filePath })=>[ + getRelativePath(filePath), + resolveInterceptingRoute(route) + ]), + ...layoutRoutes.map(({ route, filePath })=>[ + getRelativePath(filePath), + resolveInterceptingRoute(route) + ]), + ...appRouteHandlers.map(({ route, filePath })=>[ + getRelativePath(filePath), + resolveInterceptingRoute(route) + ]), + ...pageRoutes.map(({ route, filePath })=>[ + getRelativePath(filePath), + route + ]), + ...pageApiRoutes.map(({ route, filePath })=>[ + getRelativePath(filePath), + route + ]) + ]) + }; + // Process page routes + for (const { route, filePath } of pageRoutes){ + manifest.pageRoutes[route] = { + path: getRelativePath(filePath), + groups: extractRouteParams(route) + }; + } + // Process layout routes (exclude internal app error/not-found layouts) + for (const { route, filePath } of layoutRoutes){ + if (route === _entryconstants.UNDERSCORE_GLOBAL_ERROR_ROUTE || route === _entryconstants.UNDERSCORE_NOT_FOUND_ROUTE) continue; + // Use the resolved route (for interception routes, this gives us the canonical route) + const resolvedRoute = resolveInterceptingRoute(route); + if (!manifest.layoutRoutes[resolvedRoute]) { + manifest.layoutRoutes[resolvedRoute] = { + path: getRelativePath(filePath), + groups: extractRouteParams(resolvedRoute), + slots: [] + }; + } + } + // Process slots + for (const slot of slots){ + if (manifest.layoutRoutes[slot.parent]) { + manifest.layoutRoutes[slot.parent].slots.push(slot.name); + } + } + // Process app routes (exclude internal app routes) + for (const { route, filePath } of appRoutes){ + if (route === _entryconstants.UNDERSCORE_GLOBAL_ERROR_ROUTE || route === _entryconstants.UNDERSCORE_NOT_FOUND_ROUTE) continue; + // Don't include metadata routes or pages + if (!filePath.endsWith('page.ts') && !filePath.endsWith('page.tsx') && !filePath.endsWith('.mdx') && !filePath.endsWith('.md')) { + continue; + } + // Use the resolved route (for interception routes, this gives us the canonical route) + const resolvedRoute = resolveInterceptingRoute(route); + if (!manifest.appRoutes[resolvedRoute]) { + manifest.appRoutes[resolvedRoute] = { + path: getRelativePath(filePath), + groups: extractRouteParams(resolvedRoute) + }; + } + } + // Process app route handlers + for (const { route, filePath } of appRouteHandlers){ + // Use the resolved route (for interception routes, this gives us the canonical route) + const resolvedRoute = resolveInterceptingRoute(route); + if (!manifest.appRouteHandlerRoutes[resolvedRoute]) { + manifest.appRouteHandlerRoutes[resolvedRoute] = { + path: getRelativePath(filePath), + groups: extractRouteParams(resolvedRoute) + }; + } + } + // Process redirects + if (typeof redirects === 'function') { + const rd = await redirects(); + for (const item of rd){ + const possibleRoutes = convertCustomRouteSource(item.source); + for (const route of possibleRoutes){ + manifest.redirectRoutes[route] = { + path: route, + groups: extractRouteParams(route) + }; + } + } + } + // Process rewrites + if (typeof rewrites === 'function') { + const rw = await rewrites(); + const allSources = Array.isArray(rw) ? rw : [ + ...(rw == null ? void 0 : rw.beforeFiles) || [], + ...(rw == null ? void 0 : rw.afterFiles) || [], + ...(rw == null ? void 0 : rw.fallback) || [] + ]; + for (const item of allSources){ + const possibleRoutes = convertCustomRouteSource(item.source); + for (const route of possibleRoutes){ + manifest.rewriteRoutes[route] = { + path: route, + groups: extractRouteParams(route) + }; + } + } + } + return manifest; +} +async function writeRouteTypesManifest(manifest, filePath, config) { + const dirname = _path.default.dirname(filePath); + if (!_fs.default.existsSync(dirname)) { + await _fs.default.promises.mkdir(dirname, { + recursive: true + }); + } + // Write the main routes.d.ts file + await _fs.default.promises.writeFile(filePath, config.experimental.strictRouteTypes ? (0, _typegen.generateRouteTypesFileStrict)(manifest) : (0, _typegen.generateRouteTypesFile)(manifest)); + // Write the link.d.ts file if typedRoutes is enabled + if (config.typedRoutes === true) { + const linkTypesPath = _path.default.join(dirname, 'link.d.ts'); + await _fs.default.promises.writeFile(linkTypesPath, (0, _typegen.generateLinkTypesFile)(manifest)); + } +} +async function writeValidatorFile(manifest, filePath, strict) { + const dirname = _path.default.dirname(filePath); + if (!_fs.default.existsSync(dirname)) { + await _fs.default.promises.mkdir(dirname, { + recursive: true + }); + } + await _fs.default.promises.writeFile(filePath, strict ? (0, _typegen.generateValidatorFileStrict)(manifest) : (0, _typegen.generateValidatorFile)(manifest)); +} + +//# sourceMappingURL=route-types-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/router-server-context.js b/cli/app/node_modules/next/dist/server/lib/router-utils/router-server-context.js new file mode 100644 index 00000000000..4949014569b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/router-server-context.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + RouterServerContextSymbol: null, + routerServerGlobal: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + RouterServerContextSymbol: function() { + return RouterServerContextSymbol; + }, + routerServerGlobal: function() { + return routerServerGlobal; + } +}); +const RouterServerContextSymbol = Symbol.for('@next/router-server-methods'); +const routerServerGlobal = globalThis; + +//# sourceMappingURL=router-server-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js b/cli/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js new file mode 100644 index 00000000000..29248994126 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/setup-dev-bundler.js @@ -0,0 +1,970 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + propagateServerField: null, + setupDevBundler: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + propagateServerField: function() { + return propagateServerField; + }, + setupDevBundler: function() { + return setupDevBundler; + } +}); +const _swc = require("../../../build/swc"); +const _installbindings = require("../../../build/swc/install-bindings"); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _querystring = /*#__PURE__*/ _interop_require_default(require("querystring")); +const _watchpack = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/watchpack")); +const _findup = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/find-up")); +const _filesystem = require("./filesystem"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../../build/output/log")); +const _shared = require("../../../trace/shared"); +const _findpagefile = require("../find-page-file"); +const _events = require("../../../telemetry/events"); +const _utils = require("../../../shared/lib/router/utils"); +const _sortbypageexts = require("../../../build/sort-by-page-exts"); +const _verifytypescriptsetup = require("../../../lib/verify-typescript-setup"); +const _verifypartytownsetup = require("../../../lib/verify-partytown-setup"); +const _routeregex = require("../../../shared/lib/router/utils/route-regex"); +const _builddataroute = require("./build-data-route"); +const _routematcher = require("../../../shared/lib/router/utils/route-matcher"); +const _normalizepathsep = require("../../../shared/lib/page-path/normalize-path-sep"); +const _createclientrouterfilter = require("../../../lib/create-client-router-filter"); +const _absolutepathtopage = require("../../../shared/lib/page-path/absolute-path-to-page"); +const _generateinterceptionroutesrewrites = require("../../../lib/generate-interception-routes-rewrites"); +const _constants = require("../../../shared/lib/constants"); +const _middlewareroutematcher = require("../../../shared/lib/router/utils/middleware-route-matcher"); +const _utils1 = require("../../../build/utils"); +const _shared1 = require("../../../build/webpack/plugins/next-types-plugin/shared"); +const _hotreloadertypes = require("../../dev/hot-reloader-types"); +const _pagetypes = require("../../../lib/page-types"); +const _encryptionutilsserver = require("../../app-render/encryption-utils-server"); +const _ismetadataroute = require("../../../lib/metadata/is-metadata-route"); +const _getmetadataroute = require("../../../lib/metadata/get-metadata-route"); +const _jsconfigpathsplugin = require("../../../build/webpack/plugins/jsconfig-paths-plugin"); +const _store = require("../../../build/output/store"); +const _utils2 = require("../../../shared/lib/turbopack/utils"); +const _defineenv = require("../../../build/define-env"); +const _internalerror = require("../../../shared/lib/turbopack/internal-error"); +const _normalizepath = require("../../../lib/normalize-path"); +const _constants1 = require("../../../lib/constants"); +const _url = require("../../../lib/url"); +const _routetypesutils = require("./route-types-utils"); +const _cachelifetypeutils = require("./cache-life-type-utils"); +const _fileclassifier = require("../../../build/file-classifier"); +const _apppaths = require("../../../shared/lib/router/utils/app-paths"); +const _ensureleadingslash = require("../../../shared/lib/page-path/ensure-leading-slash"); +const _lockfile = require("../../../build/lockfile"); +const _magicidentifier = require("../../../shared/lib/magic-identifier"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +async function verifyTypeScript(opts) { + const verifyResult = await (0, _verifytypescriptsetup.verifyAndRunTypeScript)({ + dir: opts.dir, + distDir: opts.nextConfig.distDir, + strictRouteTypes: Boolean(opts.nextConfig.experimental.strictRouteTypes), + shouldRunTypeCheck: false, + tsconfigPath: opts.nextConfig.typescript.tsconfigPath, + typedRoutes: Boolean(opts.nextConfig.typedRoutes), + disableStaticImages: opts.nextConfig.images.disableStaticImages, + hasAppDir: !!opts.appDir, + hasPagesDir: !!opts.pagesDir, + appDir: opts.appDir, + pagesDir: opts.pagesDir + }); + if (verifyResult.version) { + return true; + } + return false; +} +async function propagateServerField(opts, field, args) { + var _opts_renderServer_instance, _opts_renderServer; + await ((_opts_renderServer = opts.renderServer) == null ? void 0 : (_opts_renderServer_instance = _opts_renderServer.instance) == null ? void 0 : _opts_renderServer_instance.propagateServerField(opts.dir, field, args)); +} +async function startWatcher(opts) { + const { nextConfig, appDir, pagesDir, dir, resetFetch } = opts; + const { useFileSystemPublicRoutes } = nextConfig; + const distDir = _path.default.join(opts.dir, opts.nextConfig.distDir); + (0, _shared.setGlobal)('distDir', distDir); + (0, _shared.setGlobal)('phase', _constants.PHASE_DEVELOPMENT_SERVER); + let lockfile; + if (opts.nextConfig.experimental.lockDistDir) { + _fs.default.mkdirSync(distDir, { + recursive: true + }); + // Create server info to store in the lockfile itself + // This allows other processes to discover the running server + const appUrl = `http://localhost:${opts.port}`; + const serverInfo = { + pid: process.pid, + port: opts.port, + hostname: 'localhost', + appUrl, + startedAt: Date.now() + }; + lockfile = await _lockfile.Lockfile.acquireWithRetriesOrExit(_path.default.join(distDir, 'lock'), 'next dev', true, JSON.stringify(serverInfo), opts.dir, opts.nextConfig.distDir); + } + const validFileMatcher = (0, _findpagefile.createValidFileMatcher)(nextConfig.pageExtensions, appDir); + const serverFields = {}; + // Update logging state once based on next.config.js when initializing + _store.store.setState({ + logging: nextConfig.logging !== false + }); + const hotReloader = opts.turbo ? await (async ()=>{ + const createHotReloaderTurbopack = require('../../dev/hot-reloader-turbopack').createHotReloaderTurbopack; + return await createHotReloaderTurbopack(opts, serverFields, distDir, resetFetch, lockfile, opts.serverFastRefresh); + })() : await (async ()=>{ + const HotReloader = process.env.NEXT_RSPACK ? require('../../dev/hot-reloader-rspack').default : require('../../dev/hot-reloader-webpack').default; + return new HotReloader(opts.dir, { + isSrcDir: opts.isSrcDir, + appDir, + pagesDir, + distDir, + config: opts.nextConfig, + buildId: 'development', + encryptionKey: await (0, _encryptionutilsserver.generateEncryptionKeyBase64)({ + isBuild: false, + distDir + }), + telemetry: opts.telemetry, + rewrites: opts.fsChecker.rewrites, + previewProps: opts.fsChecker.previewProps, + resetFetch, + lockfile, + onDevServerCleanup: opts.onDevServerCleanup + }); + })(); + await hotReloader.start(); + const distTypesDir = _path.default.join(distDir, 'types'); + await (0, _routetypesutils.writeRouteTypesManifest)({ + appRoutes: {}, + pageRoutes: {}, + layoutRoutes: {}, + appRouteHandlerRoutes: {}, + redirectRoutes: {}, + rewriteRoutes: {}, + appPagePaths: new Set(), + pagesRouterPagePaths: new Set(), + layoutPaths: new Set(), + appRouteHandlers: new Set(), + pageApiRoutes: new Set(), + filePathToRoute: new Map() + }, _path.default.join(distTypesDir, 'routes.d.ts'), opts.nextConfig); + const routesManifestPath = _path.default.join(distDir, _constants.ROUTES_MANIFEST); + const routesManifest = { + version: 3, + caseSensitive: !!nextConfig.experimental.caseSensitiveRoutes, + basePath: nextConfig.basePath, + rewrites: opts.fsChecker.rewrites, + redirects: opts.fsChecker.redirects, + headers: opts.fsChecker.headers, + onMatchHeaders: opts.fsChecker.onMatchHeaders, + i18n: nextConfig.i18n || undefined, + skipProxyUrlNormalize: nextConfig.skipProxyUrlNormalize + }; + await _fs.default.promises.writeFile(routesManifestPath, JSON.stringify(routesManifest)); + const prerenderManifestPath = _path.default.join(distDir, _constants.PRERENDER_MANIFEST); + await _fs.default.promises.writeFile(prerenderManifestPath, JSON.stringify({ + version: 4, + routes: {}, + dynamicRoutes: {}, + notFoundRoutes: [], + preview: opts.fsChecker.previewProps + }, null, 2)); + if (opts.nextConfig.experimental.nextScriptWorkers) { + await (0, _verifypartytownsetup.verifyPartytownSetup)(opts.dir, _path.default.join(distDir, _constants.CLIENT_STATIC_FILES_PATH)); + } + opts.fsChecker.ensureCallback(async function ensure(item) { + if (item.type === 'appFile' || item.type === 'pageFile') { + await hotReloader.ensurePage({ + clientOnly: false, + page: item.itemPath, + isApp: item.type === 'appFile', + definition: undefined + }); + } + }); + let resolved = false; + let prevSortedRoutes = []; + await new Promise(async (resolve, reject)=>{ + if (pagesDir) { + // Watchpack doesn't emit an event for an empty directory + _fs.default.readdir(pagesDir, (_, files)=>{ + if (files == null ? void 0 : files.length) { + return; + } + if (!resolved) { + resolve(); + resolved = true; + } + }); + } + const pages = pagesDir ? [ + pagesDir + ] : []; + const app = appDir ? [ + appDir + ] : []; + const directories = [ + ...pages, + ...app + ]; + const rootDir = pagesDir || appDir; + const files = [ + ...(0, _utils1.getPossibleMiddlewareFilenames)(_path.default.join(rootDir, '..'), nextConfig.pageExtensions), + ...(0, _utils1.getPossibleInstrumentationHookFilenames)(_path.default.join(rootDir, '..'), nextConfig.pageExtensions) + ]; + let nestedMiddleware = []; + const envFiles = [ + '.env.development.local', + '.env.local', + '.env.development', + '.env' + ].map((file)=>_path.default.join(dir, file)); + files.push(...envFiles); + // tsconfig/jsconfig paths hot-reloading + const tsconfigPaths = [ + _path.default.join(dir, 'tsconfig.json'), + _path.default.join(dir, 'jsconfig.json') + ]; + files.push(...tsconfigPaths); + const wp = new _watchpack.default({ + // Watchpack default is 200ms which adds 200ms of dead time on bootup. + aggregateTimeout: 5, + ignored: (pathname)=>{ + return !files.some((file)=>file.startsWith(pathname)) && !directories.some((d)=>pathname.startsWith(d) || d.startsWith(pathname)); + } + }); + const fileWatchTimes = new Map(); + let enabledTypeScript = await verifyTypeScript(opts); + let previousClientRouterFilters; + let previousConflictingPagePaths = new Set(); + const routeTypesFilePath = _path.default.join(distDir, 'types', 'routes.d.ts'); + const validatorFilePath = _path.default.join(distDir, 'types', 'validator.ts'); + let initialWatchTime = performance.now() + performance.timeOrigin; + wp.on('aggregated', async ()=>{ + var _serverFields_middleware, _serverFields_middleware1; + let writeEnvDefinitions = false; + let typescriptStatusFromLastAggregation = enabledTypeScript; + let middlewareMatchers; + const routedPages = []; + const knownFiles = wp.getTimeInfoEntries(); + const appPaths = {}; + const pageNameSet = new Set(); + const conflictingAppPagePaths = new Set(); + const appPageFilePaths = new Map(); + const pagesPageFilePaths = new Map(); + const appRouteHandlers = []; + const pageApiRoutes = []; + const pageRoutes = []; + const appRoutes = []; + const layoutRoutes = []; + const slots = []; + let envChange = false; + let tsconfigChange = false; + let conflictingPageChange = 0; + let hasRootAppNotFound = false; + const { appFiles, pageFiles, staticMetadataFiles } = opts.fsChecker; + appFiles.clear(); + pageFiles.clear(); + staticMetadataFiles.clear(); + _shared1.devPageFiles.clear(); + const sortedKnownFiles = [ + ...knownFiles.keys() + ].sort((0, _sortbypageexts.sortByPageExts)(nextConfig.pageExtensions)); + let proxyFilePath; + let middlewareFilePath; + for (const fileName of sortedKnownFiles){ + if (!files.includes(fileName) && !directories.some((d)=>fileName.startsWith(d))) { + continue; + } + const { name: fileBaseName, dir: fileDir } = _path.default.parse(fileName); + const isAtConventionLevel = fileDir === dir || fileDir === _path.default.join(dir, 'src'); + if (isAtConventionLevel && fileBaseName === _constants1.MIDDLEWARE_FILENAME) { + middlewareFilePath = fileName; + } + if (isAtConventionLevel && fileBaseName === _constants1.PROXY_FILENAME) { + proxyFilePath = fileName; + } + if (middlewareFilePath) { + if (proxyFilePath) { + const cwd = process.cwd(); + throw Object.defineProperty(new Error(`Both ${_constants1.MIDDLEWARE_FILENAME} file "./${_path.default.relative(cwd, middlewareFilePath)}" and ${_constants1.PROXY_FILENAME} file "./${_path.default.relative(cwd, proxyFilePath)}" are detected. Please use "./${_path.default.relative(cwd, proxyFilePath)}" only. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy`), "__NEXT_ERROR_CODE", { + value: "E900", + enumerable: false, + configurable: true + }); + } + _log.warnOnce(`The "${_constants1.MIDDLEWARE_FILENAME}" file convention is deprecated. Please use "${_constants1.PROXY_FILENAME}" instead. Learn more: https://nextjs.org/docs/messages/middleware-to-proxy`); + } + const meta = knownFiles.get(fileName); + const watchTime = fileWatchTimes.get(fileName); + const nextWatchTime = meta == null ? void 0 : meta.timestamp; + // If the file is showing up for the first time or the meta.timestamp is changed since last time + // Files that were created before we started watching are not considered changed. + // If any file was created by Next.js while booting, we assume those changes + // are handled in the bootstrap phase. + // Files that existed before we booted should be handled during bootstrapping. + const fileChanged = watchTime === undefined && (nextWatchTime === undefined || nextWatchTime >= initialWatchTime) || watchTime && watchTime !== nextWatchTime; + fileWatchTimes.set(fileName, nextWatchTime); + if (envFiles.includes(fileName)) { + if (fileChanged) { + envChange = true; + } + continue; + } + if (tsconfigPaths.includes(fileName)) { + if (fileName.endsWith('tsconfig.json')) { + enabledTypeScript = true; + } + if (fileChanged) { + tsconfigChange = true; + } + continue; + } + if ((meta == null ? void 0 : meta.accuracy) === undefined || !validFileMatcher.isPageFile(fileName)) { + continue; + } + const isAppPath = Boolean(appDir && (0, _normalizepathsep.normalizePathSep)(fileName).startsWith((0, _normalizepathsep.normalizePathSep)(appDir) + '/')); + const isPagePath = Boolean(pagesDir && (0, _normalizepathsep.normalizePathSep)(fileName).startsWith((0, _normalizepathsep.normalizePathSep)(pagesDir) + '/')); + const rootFile = (0, _absolutepathtopage.absolutePathToPage)(fileName, { + dir: dir, + extensions: nextConfig.pageExtensions, + keepIndex: false, + pagesType: _pagetypes.PAGE_TYPES.ROOT + }); + if ((0, _utils1.isMiddlewareFile)(rootFile)) { + var _staticInfo_middleware; + const getStaticInfoIncludingLayouts = require('../../../build/get-static-info-including-layouts').getStaticInfoIncludingLayouts; + const staticInfo = await getStaticInfoIncludingLayouts({ + pageFilePath: fileName, + config: nextConfig, + appDir: appDir, + page: rootFile, + isDev: true, + isInsideAppDir: isAppPath, + pageExtensions: nextConfig.pageExtensions + }); + if (nextConfig.output === 'export') { + _log.error('Middleware cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'); + continue; + } + serverFields.actualMiddlewareFile = rootFile; + await propagateServerField(opts, 'actualMiddlewareFile', serverFields.actualMiddlewareFile); + middlewareMatchers = ((_staticInfo_middleware = staticInfo.middleware) == null ? void 0 : _staticInfo_middleware.matchers) || [ + { + regexp: '^/.*$', + originalSource: '/:path*' + } + ]; + continue; + } + if ((0, _utils1.isInstrumentationHookFile)(rootFile)) { + serverFields.actualInstrumentationHookFile = rootFile; + await propagateServerField(opts, 'actualInstrumentationHookFile', serverFields.actualInstrumentationHookFile); + continue; + } + if (fileName.endsWith('.ts') || fileName.endsWith('.tsx')) { + enabledTypeScript = true; + } + if (!(isAppPath || isPagePath)) { + continue; + } + // Collect all current filenames for the TS plugin to use + _shared1.devPageFiles.add(fileName); + let pageName = (0, _absolutepathtopage.absolutePathToPage)(fileName, { + dir: isAppPath ? appDir : pagesDir, + extensions: nextConfig.pageExtensions, + keepIndex: isAppPath, + pagesType: isAppPath ? _pagetypes.PAGE_TYPES.APP : _pagetypes.PAGE_TYPES.PAGES + }); + if (isAppPath && appDir && (0, _ismetadataroute.isMetadataRouteFile)(fileName.replace(appDir, ''), nextConfig.pageExtensions, true)) { + const getPageStaticInfo = require('../../../build/analysis/get-page-static-info').getPageStaticInfo; + const staticInfo = await getPageStaticInfo({ + pageFilePath: fileName, + nextConfig: {}, + page: pageName, + isDev: true, + pageType: _pagetypes.PAGE_TYPES.APP + }); + pageName = (0, _getmetadataroute.normalizeMetadataPageToRoute)(pageName, !!(staticInfo.generateSitemaps || staticInfo.generateImageMetadata)); + } + if (!isAppPath && pageName.startsWith('/api/') && nextConfig.output === 'export') { + _log.error('API Routes cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'); + continue; + } + if (isAppPath) { + // Track root not-found + if (validFileMatcher.isRootNotFound(fileName)) { + hasRootAppNotFound = true; + continue; + } + const normalizedPageName = (0, _normalizepathsep.normalizePathSep)(pageName); + // Skip files/directories starting with `_` in the app directory + if (normalizedPageName.includes('/_')) continue; + // Record parallel route slots + (0, _fileclassifier.addSlotIfNew)(slots, normalizedPageName); + // Handle layouts separately - they don't get added to appPaths + if (validFileMatcher.isAppLayoutPage(fileName)) { + const layoutRoute = (0, _ensureleadingslash.ensureLeadingSlash)((0, _apppaths.normalizeAppPath)(normalizedPageName).replace(/\/layout$/, '')); + layoutRoutes.push({ + route: layoutRoute, + filePath: fileName + }); + continue; + } + // Skip non-router pages (loading.tsx, error.tsx, etc.) + if (!validFileMatcher.isAppRouterPage(fileName)) continue; + const originalPageName = pageName; + pageName = (0, _apppaths.normalizeAppPath)(pageName).replace(/%5F/g, '_'); + const appRoute = (0, _normalizepathsep.normalizePathSep)(pageName); + if (!appPaths[pageName]) { + appPaths[pageName] = []; + } + appPaths[pageName].push(opts.turbo ? originalPageName.replace(/%5F/g, '_') : originalPageName); + if (useFileSystemPublicRoutes) { + if (appDir && (0, _ismetadataroute.isStaticMetadataFile)(fileName.replace(appDir, ''))) { + const segment = _path.default.posix.dirname(pageName); + const lastSegment = _path.default.posix.basename(pageName); + const normalizedPath = (0, _getmetadataroute.fillMetadataSegment)(segment, {}, lastSegment, true); + staticMetadataFiles.set(normalizedPath, fileName); + } else { + appFiles.add(pageName); + } + } + const routeEntry = { + route: appRoute, + filePath: fileName + }; + if (validFileMatcher.isAppRouterRoute(fileName)) { + appRouteHandlers.push(routeEntry); + } else { + appRoutes.push(routeEntry); + } + if (routedPages.includes(pageName)) continue; + } else { + // Pages router + if (useFileSystemPublicRoutes) { + pageFiles.add(pageName); + opts.fsChecker.nextDataRoutes.add(pageName); + } + const route = (0, _normalizepathsep.normalizePathSep)(pageName); + const routeEntry = { + route, + filePath: fileName + }; + if (pageName.startsWith('/api/')) { + pageApiRoutes.push(routeEntry); + } else { + pageRoutes.push(routeEntry); + } + } + // Record pages + if (isAppPath) { + appPageFilePaths.set(pageName, fileName); + } else { + pagesPageFilePaths.set(pageName, fileName); + } + if (appDir && pageNameSet.has(pageName)) { + conflictingAppPagePaths.add(pageName); + } else { + pageNameSet.add(pageName); + } + /** + * If there is a middleware that is not declared in the root we will + * warn without adding it so it doesn't make its way into the system. + */ if (/[\\\\/]_middleware$/.test(pageName)) { + nestedMiddleware.push(pageName); + continue; + } + routedPages.push(pageName); + } + const numConflicting = conflictingAppPagePaths.size; + conflictingPageChange = numConflicting - previousConflictingPagePaths.size; + if (conflictingPageChange !== 0) { + if (numConflicting > 0) { + let errorMessage = `Conflicting app and page file${numConflicting === 1 ? ' was' : 's were'} found, please remove the conflicting files to continue:\n`; + for (const p of conflictingAppPagePaths){ + const appPath = _path.default.relative(dir, appPageFilePaths.get(p)); + const pagesPath = _path.default.relative(dir, pagesPageFilePaths.get(p)); + errorMessage += ` "${pagesPath}" - "${appPath}"\n`; + } + hotReloader.setHmrServerError(Object.defineProperty(new Error(errorMessage), "__NEXT_ERROR_CODE", { + value: "E1010", + enumerable: false, + configurable: true + })); + } else if (numConflicting === 0) { + hotReloader.clearHmrServerError(); + await propagateServerField(opts, 'reloadMatchers', undefined); + } + } + previousConflictingPagePaths = conflictingAppPagePaths; + let clientRouterFilters; + if (nextConfig.experimental.clientRouterFilter) { + clientRouterFilters = (0, _createclientrouterfilter.createClientRouterFilter)(Object.keys(appPaths), nextConfig.experimental.clientRouterFilterRedirects ? (nextConfig._originalRedirects || []).filter((r)=>!r.internal) : [], nextConfig.experimental.clientRouterFilterAllowedRate); + if (!previousClientRouterFilters || JSON.stringify(previousClientRouterFilters) !== JSON.stringify(clientRouterFilters)) { + envChange = true; + previousClientRouterFilters = clientRouterFilters; + } + } + if (envChange || tsconfigChange) { + if (envChange) { + writeEnvDefinitions = true; + await propagateServerField(opts, 'loadEnvConfig', [ + { + dev: true, + forceReload: true + } + ]); + } + if (hotReloader.turbopackProject) { + var _opts_nextConfig_turbopack; + const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0; + const rootPath = ((_opts_nextConfig_turbopack = opts.nextConfig.turbopack) == null ? void 0 : _opts_nextConfig_turbopack.root) || opts.nextConfig.outputFileTracingRoot || opts.dir; + await hotReloader.turbopackProject.update({ + defineEnv: (0, _swc.createDefineEnv)({ + isTurbopack: true, + clientRouterFilters, + config: nextConfig, + dev: true, + distDir, + fetchCacheKeyPrefix: opts.nextConfig.experimental.fetchCacheKeyPrefix, + hasRewrites, + // TODO: Implement + middlewareMatchers: undefined, + projectPath: opts.dir, + rewrites: opts.fsChecker.rewrites + }), + rootPath, + projectPath: (0, _normalizepath.normalizePath)(_path.default.relative(rootPath, dir)) + }); + } else { + var _hotReloader_activeWebpackConfigs; + let tsconfigResult; + // This is not relevant for Turbopack because tsconfig/jsconfig is handled internally. + if (tsconfigChange) { + try { + const loadJsConfig = require('../../../build/load-jsconfig').default; + tsconfigResult = await loadJsConfig(dir, nextConfig); + } catch (_) { + /* do we want to log if there are syntax errors in tsconfig while editing? */ } + } + (_hotReloader_activeWebpackConfigs = hotReloader.activeWebpackConfigs) == null ? void 0 : _hotReloader_activeWebpackConfigs.forEach((config, idx)=>{ + const isClient = idx === 0; + const isNodeServer = idx === 1; + const isEdgeServer = idx === 2; + const hasRewrites = opts.fsChecker.rewrites.afterFiles.length > 0 || opts.fsChecker.rewrites.beforeFiles.length > 0 || opts.fsChecker.rewrites.fallback.length > 0; + if (tsconfigChange) { + var _config_resolve_plugins, _config_resolve; + (_config_resolve = config.resolve) == null ? void 0 : (_config_resolve_plugins = _config_resolve.plugins) == null ? void 0 : _config_resolve_plugins.forEach((plugin)=>{ + // look for the JsConfigPathsPlugin and update with + // the latest paths/baseUrl config + if (plugin instanceof _jsconfigpathsplugin.JsConfigPathsPlugin && tsconfigResult) { + var _config_resolve_modules, _config_resolve, _jsConfig_compilerOptions; + const { resolvedBaseUrl, jsConfig } = tsconfigResult; + const currentResolvedBaseUrl = plugin.resolvedBaseUrl; + const resolvedUrlIndex = (_config_resolve = config.resolve) == null ? void 0 : (_config_resolve_modules = _config_resolve.modules) == null ? void 0 : _config_resolve_modules.findIndex((item)=>item === (currentResolvedBaseUrl == null ? void 0 : currentResolvedBaseUrl.baseUrl)); + if (resolvedBaseUrl) { + if (resolvedBaseUrl.baseUrl !== (currentResolvedBaseUrl == null ? void 0 : currentResolvedBaseUrl.baseUrl)) { + // remove old baseUrl and add new one + if (resolvedUrlIndex && resolvedUrlIndex > -1) { + var _config_resolve_modules1, _config_resolve1; + (_config_resolve1 = config.resolve) == null ? void 0 : (_config_resolve_modules1 = _config_resolve1.modules) == null ? void 0 : _config_resolve_modules1.splice(resolvedUrlIndex, 1); + } + // If the resolvedBaseUrl is implicit we only remove the previous value. + // Only add the baseUrl if it's explicitly set in tsconfig/jsconfig + if (!resolvedBaseUrl.isImplicit) { + var _config_resolve_modules2, _config_resolve2; + (_config_resolve2 = config.resolve) == null ? void 0 : (_config_resolve_modules2 = _config_resolve2.modules) == null ? void 0 : _config_resolve_modules2.push(resolvedBaseUrl.baseUrl); + } + } + } + if ((jsConfig == null ? void 0 : (_jsConfig_compilerOptions = jsConfig.compilerOptions) == null ? void 0 : _jsConfig_compilerOptions.paths) && resolvedBaseUrl) { + Object.keys(plugin.paths).forEach((key)=>{ + delete plugin.paths[key]; + }); + Object.assign(plugin.paths, jsConfig.compilerOptions.paths); + plugin.resolvedBaseUrl = resolvedBaseUrl; + } + } + }); + } + if (envChange) { + var _config_plugins; + (_config_plugins = config.plugins) == null ? void 0 : _config_plugins.forEach((plugin)=>{ + // we look for the DefinePlugin definitions so we can + // update them on the active compilers + if (plugin && typeof plugin.definitions === 'object' && plugin.definitions.__NEXT_DEFINE_ENV) { + const newDefine = (0, _defineenv.getDefineEnv)({ + isTurbopack: false, + clientRouterFilters, + config: nextConfig, + dev: true, + distDir, + fetchCacheKeyPrefix: opts.nextConfig.experimental.fetchCacheKeyPrefix, + hasRewrites, + isClient, + isEdgeServer, + isNodeServer, + middlewareMatchers: undefined, + projectPath: opts.dir, + rewrites: opts.fsChecker.rewrites + }); + Object.keys(plugin.definitions).forEach((key)=>{ + if (!(key in newDefine)) { + delete plugin.definitions[key]; + } + }); + Object.assign(plugin.definitions, newDefine); + } + }); + } + }); + } + await hotReloader.invalidate({ + reloadAfterInvalidation: envChange + }); + } + if (nestedMiddleware.length > 0) { + _log.error(Object.defineProperty(new _utils1.NestedMiddlewareError(nestedMiddleware, dir, pagesDir || appDir), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }).message); + nestedMiddleware = []; + } + // Make sure to sort parallel routes to make the result deterministic. + serverFields.appPathRoutes = Object.fromEntries(Object.entries(appPaths).map(([k, v])=>[ + k, + v.sort(_apppaths.compareAppPaths) + ])); + await propagateServerField(opts, 'appPathRoutes', serverFields.appPathRoutes); + // TODO: pass this to fsChecker/next-dev-server? + serverFields.middleware = middlewareMatchers ? { + match: null, + page: '/', + matchers: middlewareMatchers + } : undefined; + await propagateServerField(opts, 'middleware', serverFields.middleware); + serverFields.hasAppNotFound = hasRootAppNotFound; + opts.fsChecker.middlewareMatcher = ((_serverFields_middleware = serverFields.middleware) == null ? void 0 : _serverFields_middleware.matchers) ? (0, _middlewareroutematcher.getMiddlewareRouteMatcher)((_serverFields_middleware1 = serverFields.middleware) == null ? void 0 : _serverFields_middleware1.matchers) : undefined; + const interceptionRoutes = (0, _generateinterceptionroutesrewrites.generateInterceptionRoutesRewrites)(Object.keys(appPaths), opts.nextConfig.basePath).map((item)=>(0, _filesystem.buildCustomRoute)('before_files_rewrite', item, opts.nextConfig.basePath, opts.nextConfig.experimental.caseSensitiveRoutes)); + opts.fsChecker.rewrites.beforeFiles.push(...interceptionRoutes); + const exportPathMap = typeof nextConfig.exportPathMap === 'function' && await (nextConfig.exportPathMap == null ? void 0 : nextConfig.exportPathMap.call(nextConfig, {}, { + dev: true, + dir: opts.dir, + outDir: null, + distDir: distDir, + buildId: 'development' + })) || {}; + const exportPathMapEntries = Object.entries(exportPathMap || {}); + if (exportPathMapEntries.length > 0) { + opts.fsChecker.exportPathMapRoutes = exportPathMapEntries.map(([key, value])=>(0, _filesystem.buildCustomRoute)('before_files_rewrite', { + source: key, + destination: `${value.page}${value.query ? '?' : ''}${_querystring.default.stringify(value.query)}` + }, opts.nextConfig.basePath, opts.nextConfig.experimental.caseSensitiveRoutes)); + } + try { + // we serve a separate manifest with all pages for the client in + // dev mode so that we can match a page after a rewrite on the client + // before it has been built and is populated in the _buildManifest + const sortedRoutes = (0, _utils.getSortedRoutes)(routedPages); + opts.fsChecker.dynamicRoutes = sortedRoutes.map((page)=>{ + const regex = (0, _routeregex.getNamedRouteRegex)(page, { + prefixRouteKeys: true + }); + return { + regex: regex.re.toString(), + namedRegex: regex.namedRegex, + routeKeys: regex.routeKeys, + match: (0, _routematcher.getRouteMatcher)(regex), + page + }; + }); + const dataRoutes = []; + for (const page of sortedRoutes){ + const route = (0, _builddataroute.buildDataRoute)(page, 'development'); + const routeRegex = (0, _routeregex.getNamedRouteRegex)(route.page, { + prefixRouteKeys: true + }); + dataRoutes.push({ + ...route, + regex: routeRegex.re.toString(), + namedRegex: routeRegex.namedRegex, + routeKeys: routeRegex.routeKeys, + match: (0, _routematcher.getRouteMatcher)({ + // TODO: fix this in the manifest itself, must also be fixed in + // upstream builder that relies on this + re: opts.nextConfig.i18n ? new RegExp(route.dataRouteRegex.replace(`/development/`, `/development/(?[^/]+?)/`)) : new RegExp(route.dataRouteRegex), + groups: routeRegex.groups + }) + }); + } + opts.fsChecker.dynamicRoutes.unshift(...dataRoutes); + // For Turbopack ADDED_PAGE and REMOVED_PAGE are implemented in hot-reloader-turbopack.ts + // in order to avoid a race condition where ADDED_PAGE and REMOVED_PAGE are sent before Turbopack picked up the file change. + if (!opts.turbo) { + // Reload the matchers. The filesystem would have been written to, + // and the matchers need to re-scan it to update the router. + // Reloading the matchers should happen before `ADDED_PAGE` or `REMOVED_PAGE` is sent over the websocket + // otherwise it sends the event too early. + await propagateServerField(opts, 'reloadMatchers', undefined); + if (!(prevSortedRoutes == null ? void 0 : prevSortedRoutes.every((val, idx)=>val === sortedRoutes[idx]))) { + const addedRoutes = sortedRoutes.filter((route)=>!prevSortedRoutes.includes(route)); + const removedRoutes = prevSortedRoutes.filter((route)=>!sortedRoutes.includes(route)); + // emit the change so clients fetch the update + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.DEV_PAGES_MANIFEST_UPDATE, + data: [ + { + devPagesManifest: true + } + ] + }); + addedRoutes.forEach((route)=>{ + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.ADDED_PAGE, + data: [ + route + ] + }); + }); + removedRoutes.forEach((route)=>{ + hotReloader.send({ + type: _hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REMOVED_PAGE, + data: [ + route + ] + }); + }); + } + } + prevSortedRoutes = sortedRoutes; + if (enabledTypeScript) { + var _nextConfig_experimental; + // Using === false to make the check clearer. + if (typescriptStatusFromLastAggregation === false) { + // we tolerate the error here as this is best effort + // and the manual install command will be shown + await verifyTypeScript(opts).then(()=>{ + tsconfigChange = true; + }).catch(()=>{}); + } + if (writeEnvDefinitions && ((_nextConfig_experimental = nextConfig.experimental) == null ? void 0 : _nextConfig_experimental.typedEnv)) { + // TODO: The call to propagateServerField 'loadEnvConfig' causes the env to be loaded twice on env file changes. + const loadEnvConfig = require('@next/env').loadEnvConfig; + const { loadedEnvFiles } = loadEnvConfig(dir, process.env.NODE_ENV === 'development', // Silent as it's the second time `loadEnvConfig` is called in this pass. + undefined, true); + const createEnvDefinitions = require('../experimental/create-env-definitions').createEnvDefinitions; + await createEnvDefinitions({ + distDir, + loadedEnvFiles: [ + ...loadedEnvFiles, + { + path: nextConfig.configFileName, + env: nextConfig.env, + contents: '' + } + ] + }); + } + const routeTypesManifest = await (0, _routetypesutils.createRouteTypesManifest)({ + dir, + pageRoutes, + appRoutes, + layoutRoutes, + slots, + redirects: opts.nextConfig.redirects, + rewrites: opts.nextConfig.rewrites, + // Ensure relative paths in validator.ts are computed from validatorFilePath, + // matching behavior of build and CLI typegen. + validatorFilePath, + appRouteHandlers, + pageApiRoutes + }); + await (0, _routetypesutils.writeRouteTypesManifest)(routeTypesManifest, routeTypesFilePath, opts.nextConfig); + await (0, _routetypesutils.writeValidatorFile)(routeTypesManifest, validatorFilePath, Boolean(nextConfig.experimental.strictRouteTypes)); + // Generate cache-life types if cacheLife config exists + const cacheLifeFilePath = _path.default.join(distTypesDir, 'cache-life.d.ts'); + (0, _cachelifetypeutils.writeCacheLifeTypes)(opts.nextConfig.cacheLife, cacheLifeFilePath); + } + if (!resolved) { + resolve(); + resolved = true; + } + } catch (e) { + if (!resolved) { + reject(e); + resolved = true; + } else { + _log.warn('Failed to reload dynamic routes:', e); + } + } + }); + wp.watch({ + directories: [ + dir + ], + startTime: 0 + }); + }); + const clientPagesManifestPath = `/_next/${_constants.CLIENT_STATIC_FILES_PATH}/development/${_constants.DEV_CLIENT_PAGES_MANIFEST}`; + opts.fsChecker.devVirtualFsItems.add(clientPagesManifestPath); + const devMiddlewareManifestPath = `/_next/${_constants.CLIENT_STATIC_FILES_PATH}/development/${_constants.DEV_CLIENT_MIDDLEWARE_MANIFEST}`; + opts.fsChecker.devVirtualFsItems.add(devMiddlewareManifestPath); + const devTurbopackMiddlewareManifestPath = `/_next/${_constants.CLIENT_STATIC_FILES_PATH}/development/${_constants.TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST}`; + opts.fsChecker.devVirtualFsItems.add(devTurbopackMiddlewareManifestPath); + async function requestHandler(req, res) { + const parsedUrl = (0, _url.parseUrl)(req.url || '/'); + const pathname = parsedUrl !== undefined ? parsedUrl.pathname : null; + if (pathname !== null && pathname.includes(clientPagesManifestPath)) { + res.statusCode = 200; + res.setHeader('Content-Type', _constants1.JSON_CONTENT_TYPE_HEADER); + res.end(JSON.stringify({ + pages: prevSortedRoutes.filter((route)=>!opts.fsChecker.appFiles.has(route)) + })); + return { + finished: true + }; + } + if (pathname !== null && (pathname.includes(devMiddlewareManifestPath) || pathname.includes(devTurbopackMiddlewareManifestPath))) { + var _serverFields_middleware; + res.statusCode = 200; + res.setHeader('Content-Type', _constants1.JSON_CONTENT_TYPE_HEADER); + res.end(JSON.stringify(((_serverFields_middleware = serverFields.middleware) == null ? void 0 : _serverFields_middleware.matchers) || [])); + return { + finished: true + }; + } + return { + finished: false + }; + } + function logErrorWithOriginalStack(err, type) { + if (err instanceof Error) { + err.message = (0, _magicidentifier.deobfuscateText)(err.message); + } + if (err instanceof _utils2.ModuleBuildError) { + // Errors that may come from issues from the user's code + _log.error(err.message); + } else if (err instanceof _internalerror.TurbopackInternalError) { + // An internal Turbopack error that has been handled by next-swc, written + // to disk and a simplified message shown to user on the Rust side. + } else if (type === 'warning') { + _log.warn(err); + } else if (type === 'app-dir') { + _log.error(err); + } else if (type) { + _log.error(`${type}:`, err); + } else { + _log.error(err); + } + } + return { + serverFields, + hotReloader, + requestHandler, + logErrorWithOriginalStack, + async ensureMiddleware (requestUrl) { + if (!serverFields.actualMiddlewareFile) return; + return hotReloader.ensurePage({ + page: serverFields.actualMiddlewareFile, + clientOnly: false, + definition: undefined, + url: requestUrl + }); + } + }; +} +async function setupDevBundler(opts) { + var _opts_nextConfig_experimental; + const isSrcDir = _path.default.relative(opts.dir, opts.pagesDir || opts.appDir || '').startsWith('src'); + await (0, _installbindings.installBindings)((_opts_nextConfig_experimental = opts.nextConfig.experimental) == null ? void 0 : _opts_nextConfig_experimental.useWasmBinary); + // Set up code frame renderer for error formatting + const { installCodeFrameSupport } = require('../install-code-frame'); + installCodeFrameSupport(); + const result = await startWatcher({ + ...opts, + isSrcDir + }); + opts.telemetry.record((0, _events.eventCliSession)(opts.nextConfig, { + webpackVersion: 5, + isSrcDir, + turboFlag: !!opts.turbo, + cliCommand: 'dev', + appDir: !!opts.appDir, + pagesDir: !!opts.pagesDir, + isCustomServer: !!opts.isCustomServer, + hasNowJson: !!await (0, _findup.default)('now.json', { + cwd: opts.dir + }) + })); + // Track build features for dev server here: + opts.telemetry.record({ + eventName: _events.EVENT_BUILD_FEATURE_USAGE, + payload: { + featureName: 'turbopackFileSystemCache', + invocationCount: (0, _utils2.isFileSystemCacheEnabledForDev)(opts.nextConfig) ? 1 : 0 + } + }); + return result; +} + // Returns a trace rewritten through Turbopack's sourcemaps + +//# sourceMappingURL=setup-dev-bundler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/router-utils/typegen.js b/cli/app/node_modules/next/dist/server/lib/router-utils/typegen.js new file mode 100644 index 00000000000..deb61e83648 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/router-utils/typegen.js @@ -0,0 +1,858 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + generateLinkTypesFile: null, + generateRouteTypesFile: null, + generateRouteTypesFileStrict: null, + generateValidatorFile: null, + generateValidatorFileStrict: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + generateLinkTypesFile: function() { + return generateLinkTypesFile; + }, + generateRouteTypesFile: function() { + return generateRouteTypesFile; + }, + generateRouteTypesFileStrict: function() { + return generateRouteTypesFileStrict; + }, + generateValidatorFile: function() { + return generateValidatorFile; + }, + generateValidatorFileStrict: function() { + return generateValidatorFileStrict; + } +}); +const _isdynamic = require("../../../shared/lib/router/utils/is-dynamic"); +function generateRouteTypes(routesManifest) { + const appRoutes = Object.keys(routesManifest.appRoutes).sort(); + const pageRoutes = Object.keys(routesManifest.pageRoutes).sort(); + const layoutRoutes = Object.keys(routesManifest.layoutRoutes).sort(); + const redirectRoutes = Object.keys(routesManifest.redirectRoutes).sort(); + const rewriteRoutes = Object.keys(routesManifest.rewriteRoutes).sort(); + let result = ''; + // Generate AppRoutes union type (pages only) + if (appRoutes.length > 0) { + result += `type AppRoutes = ${appRoutes.map((route)=>JSON.stringify(route)).join(' | ')}\n`; + } else { + result += 'type AppRoutes = never\n'; + } + // Generate AppRouteHandlerRoutes union type for route handlers + const appRouteHandlerRoutes = Object.keys(routesManifest.appRouteHandlerRoutes).sort(); + const hasAppRouteHandlers = appRouteHandlerRoutes.length > 0; + if (hasAppRouteHandlers) { + result += `type AppRouteHandlerRoutes = ${appRouteHandlerRoutes.map((route)=>JSON.stringify(route)).join(' | ')}\n`; + } + // Generate PageRoutes union type + if (pageRoutes.length > 0) { + result += `type PageRoutes = ${pageRoutes.map((route)=>JSON.stringify(route)).join(' | ')}\n`; + } else { + result += 'type PageRoutes = never\n'; + } + // Generate LayoutRoutes union type + if (layoutRoutes.length > 0) { + result += `type LayoutRoutes = ${layoutRoutes.map((route)=>JSON.stringify(route)).join(' | ')}\n`; + } else { + result += 'type LayoutRoutes = never\n'; + } + // Generate RedirectRoutes union type + if (redirectRoutes.length > 0) { + result += `type RedirectRoutes = ${redirectRoutes.map((route)=>JSON.stringify(route)).join(' | ')}\n`; + } else { + result += 'type RedirectRoutes = never\n'; + } + // Generate RewriteRoutes union type + if (rewriteRoutes.length > 0) { + result += `type RewriteRoutes = ${rewriteRoutes.map((route)=>JSON.stringify(route)).join(' | ')}\n`; + } else { + result += 'type RewriteRoutes = never\n'; + } + // Only include AppRouteHandlerRoutes in Routes union if there are actual route handlers + const routeUnionParts = [ + 'AppRoutes', + 'PageRoutes', + 'LayoutRoutes', + 'RedirectRoutes', + 'RewriteRoutes' + ]; + if (hasAppRouteHandlers) { + routeUnionParts.push('AppRouteHandlerRoutes'); + } + result += `type Routes = ${routeUnionParts.join(' | ')}\n`; + return result; +} +function generateParamTypes(routesManifest) { + const allRoutes = { + ...routesManifest.appRoutes, + ...routesManifest.appRouteHandlerRoutes, + ...routesManifest.pageRoutes, + ...routesManifest.layoutRoutes, + ...routesManifest.redirectRoutes, + ...routesManifest.rewriteRoutes + }; + let paramTypes = 'interface ParamMap {\n'; + // Sort routes deterministically for consistent output + const sortedRoutes = Object.entries(allRoutes).sort(([a], [b])=>a.localeCompare(b)); + for (const [route, routeInfo] of sortedRoutes){ + const { groups } = routeInfo; + // For static routes (no dynamic segments), we can produce an empty parameter map. + if (!(0, _isdynamic.isDynamicRoute)(route) || Object.keys(groups ?? {}).length === 0) { + paramTypes += ` ${JSON.stringify(route)}: {}\n`; + continue; + } + let paramType = '{'; + // Process each group based on its properties + for (const [key, group] of Object.entries(groups)){ + const escapedKey = JSON.stringify(key); + if (group.repeat) { + // Catch-all parameters + if (group.optional) { + paramType += ` ${escapedKey}?: string[];`; + } else { + paramType += ` ${escapedKey}: string[];`; + } + } else { + // Regular parameters + if (group.optional) { + paramType += ` ${escapedKey}?: string;`; + } else { + paramType += ` ${escapedKey}: string;`; + } + } + } + paramType += ' }'; + paramTypes += ` ${JSON.stringify(route)}: ${paramType}\n`; + } + paramTypes += '}\n'; + return paramTypes; +} +function generateLayoutSlotMap(routesManifest) { + let slotMap = 'interface LayoutSlotMap {\n'; + // Sort routes deterministically for consistent output + const sortedLayoutRoutes = Object.entries(routesManifest.layoutRoutes).sort(([a], [b])=>a.localeCompare(b)); + for (const [route, routeInfo] of sortedLayoutRoutes){ + if ('slots' in routeInfo) { + const slots = routeInfo.slots.sort(); + if (slots.length > 0) { + slotMap += ` ${JSON.stringify(route)}: ${slots.map((slot)=>JSON.stringify(slot)).join(' | ')}\n`; + } else { + slotMap += ` ${JSON.stringify(route)}: never\n`; + } + } else { + slotMap += ` ${JSON.stringify(route)}: never\n`; + } + } + slotMap += '}\n'; + return slotMap; +} +// Helper function to format routes to route types (matches the plugin logic exactly) +function formatRouteToRouteType(route) { + const isDynamic = (0, _isdynamic.isDynamicRoute)(route); + if (isDynamic) { + route = route.split('/').map((part)=>{ + if (part.startsWith('[') && part.endsWith(']')) { + if (part.startsWith('[...')) { + // /[...slug] + return `\${CatchAllSlug}`; + } else if (part.startsWith('[[...') && part.endsWith(']]')) { + // /[[...slug]] + return `\${OptionalCatchAllSlug}`; + } + // /[slug] + return `\${SafeSlug}`; + } + return part; + }).join('/'); + } + return { + isDynamic, + routeType: route + }; +} +// Helper function to serialize route types (matches the plugin logic exactly) +function serializeRouteTypes(routeTypes) { + // route collection is not deterministic, this makes the output of the file deterministic + return routeTypes.sort().map((route)=>`\n | \`${route}\``).join(''); +} +function generateLinkTypesFile(routesManifest) { + // Generate serialized static and dynamic routes for the internal namespace + // Build a unified set of routes across app/pages/redirect/rewrite as well as + // app route handlers and Pages Router API routes. + const allRoutesSet = new Set([ + ...Object.keys(routesManifest.appRoutes), + ...Object.keys(routesManifest.pageRoutes), + ...Object.keys(routesManifest.redirectRoutes), + ...Object.keys(routesManifest.rewriteRoutes), + // Allow linking to App Route Handlers (e.g. `/logout/route.ts`) + ...Object.keys(routesManifest.appRouteHandlerRoutes), + // Allow linking to Pages Router API routes (e.g. `/api/*`) + ...Array.from(routesManifest.pageApiRoutes) + ]); + const staticRouteTypes = []; + const dynamicRouteTypes = []; + // Process each route using the same logic as the plugin + for (const route of allRoutesSet){ + const { isDynamic, routeType } = formatRouteToRouteType(route); + if (isDynamic) { + dynamicRouteTypes.push(routeType); + } else { + staticRouteTypes.push(routeType); + } + } + const serializedStaticRouteTypes = serializeRouteTypes(staticRouteTypes); + const serializedDynamicRouteTypes = serializeRouteTypes(dynamicRouteTypes); + // If both StaticRoutes and DynamicRoutes are empty, fallback to type 'string & {}'. + const routeTypesFallback = !serializedStaticRouteTypes && !serializedDynamicRouteTypes ? 'string & {}' : ''; + return `// This file is generated automatically by Next.js +// Do not edit this file manually + +// Type definitions for Next.js routes + +/** + * Internal types used by the Next.js router and Link component. + * These types are not meant to be used directly. + * @internal + */ +declare namespace __next_route_internal_types__ { + type SearchOrHash = \`?\${string}\` | \`#\${string}\` + type WithProtocol = \`\${string}:\${string}\` + + type Suffix = '' | SearchOrHash + + type SafeSlug = S extends \`\${string}/\${string}\` + ? never + : S extends \`\${string}\${SearchOrHash}\` + ? never + : S extends '' + ? never + : S + + type CatchAllSlug = S extends \`\${string}\${SearchOrHash}\` + ? never + : S extends '' + ? never + : S + + type OptionalCatchAllSlug = + S extends \`\${string}\${SearchOrHash}\` ? never : S + + type StaticRoutes = ${serializedStaticRouteTypes || 'never'} + type DynamicRoutes = ${serializedDynamicRouteTypes || 'never'} + + type RouteImpl = ${routeTypesFallback || ` + ${// This keeps autocompletion working for static routes. + '| StaticRoutes'} + | SearchOrHash + | WithProtocol + | \`\${StaticRoutes}\${SearchOrHash}\` + | (T extends \`\${DynamicRoutes}\${Suffix}\` ? T : never) + `} +} + +declare module 'next' { + export { default } from 'next/types.js' + export * from 'next/types.js' + + export type Route = + __next_route_internal_types__.RouteImpl +} + +declare module 'next/link' { + export { useLinkStatus } from 'next/dist/client/link.js' + + import type { LinkProps as OriginalLinkProps } from 'next/dist/client/link.js' + import type { AnchorHTMLAttributes, DetailedHTMLProps } from 'react' + import type { UrlObject } from 'url' + + type LinkRestProps = Omit< + Omit< + DetailedHTMLProps< + AnchorHTMLAttributes, + HTMLAnchorElement + >, + keyof OriginalLinkProps + > & + OriginalLinkProps, + 'href' + > + + export type LinkProps = LinkRestProps & { + /** + * The path or URL to navigate to. This is the only required prop. It can also be an object. + * @see https://nextjs.org/docs/api-reference/next/link + */ + href: __next_route_internal_types__.RouteImpl | UrlObject + } + + export default function Link(props: LinkProps): JSX.Element +} + +declare module 'next/navigation' { + export * from 'next/dist/client/components/navigation.js' + + import type { NavigateOptions, AppRouterInstance as OriginalAppRouterInstance } from 'next/dist/shared/lib/app-router-context.shared-runtime.js' + import type { RedirectType } from 'next/dist/client/components/redirect-error.js' + + interface AppRouterInstance extends OriginalAppRouterInstance { + /** + * Navigate to the provided href. + * Pushes a new history entry. + */ + push(href: __next_route_internal_types__.RouteImpl, options?: NavigateOptions): void + /** + * Navigate to the provided href. + * Replaces the current history entry. + */ + replace(href: __next_route_internal_types__.RouteImpl, options?: NavigateOptions): void + /** + * Prefetch the provided href. + */ + prefetch(href: __next_route_internal_types__.RouteImpl): void + } + + export function useRouter(): AppRouterInstance; + + /** + * This function allows you to redirect the user to another URL. It can be used in + * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components), + * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and + * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations). + * + * - In a Server Component, this will insert a meta tag to redirect the user to the target page. + * - In a Route Handler or Server Action, it will serve a 307/303 to the caller. + * - In a Server Action, type defaults to 'push' and 'replace' elsewhere. + * + * Read more: [Next.js Docs: redirect](https://nextjs.org/docs/app/api-reference/functions/redirect) + */ + export function redirect( + /** The URL to redirect to */ + url: __next_route_internal_types__.RouteImpl, + type?: RedirectType + ): never; + + /** + * This function allows you to redirect the user to another URL. It can be used in + * [Server Components](https://nextjs.org/docs/app/building-your-application/rendering/server-components), + * [Route Handlers](https://nextjs.org/docs/app/building-your-application/routing/route-handlers), and + * [Server Actions](https://nextjs.org/docs/app/building-your-application/data-fetching/server-actions-and-mutations). + * + * - In a Server Component, this will insert a meta tag to redirect the user to the target page. + * - In a Route Handler or Server Action, it will serve a 308/303 to the caller. + * + * Read more: [Next.js Docs: redirect](https://nextjs.org/docs/app/api-reference/functions/redirect) + */ + export function permanentRedirect( + /** The URL to redirect to */ + url: __next_route_internal_types__.RouteImpl, + type?: RedirectType + ): never; +} + +declare module 'next/form' { + import type { FormProps as OriginalFormProps } from 'next/dist/client/form.js' + + type FormRestProps = Omit + + export type FormProps = { + /** + * \`action\` can be either a \`string\` or a function. + * - If \`action\` is a string, it will be interpreted as a path or URL to navigate to when the form is submitted. + * The path will be prefetched when the form becomes visible. + * - If \`action\` is a function, it will be called when the form is submitted. See the [React docs](https://react.dev/reference/react-dom/components/form#props) for more. + */ + action: __next_route_internal_types__.RouteImpl | ((formData: FormData) => void) + } & FormRestProps + + export default function Form(props: FormProps): JSX.Element +} +`; +} +function generateValidatorFile(routesManifest) { + const generateValidations = (paths, type, pathToRouteMap)=>paths.sort()// Only validate TypeScript files - JavaScript files have too many type inference limitations + .filter((filePath)=>filePath.endsWith('.ts') || filePath.endsWith('.tsx')).filter(// Don't include metadata routes or pages + // (e.g. /manifest.webmanifest) + (filePath)=>type !== 'AppPageConfig' || filePath.endsWith('page.ts') || filePath.endsWith('page.tsx')).map((filePath)=>{ + // Keep the file extension for TypeScript imports to support node16 module resolution + const importPath = filePath; + const route = pathToRouteMap == null ? void 0 : pathToRouteMap.get(filePath); + const typeWithRoute = route && (type === 'AppPageConfig' || type === 'LayoutConfig' || type === 'RouteHandlerConfig') ? `${type}<${JSON.stringify(route)}>` : type; + // NOTE: we previously used `satisfies` here, but it's not supported by TypeScript 4.8 and below. + // If we ever raise the TS minimum version, we can switch back. + return `// Validate ${filePath} +{ + type __IsExpected = Specific + const handler = {} as typeof import(${JSON.stringify(importPath.replace(/\.tsx?$/, '.js'))}) + type __Check = __IsExpected + // @ts-ignore + type __Unused = __Check +}`; + }).join('\n\n'); + // Use direct mappings from the manifest + // Generate validations for different route types + const appPageValidations = generateValidations(Array.from(routesManifest.appPagePaths).sort(), 'AppPageConfig', routesManifest.filePathToRoute); + const appRouteHandlerValidations = generateValidations(Array.from(routesManifest.appRouteHandlers).sort(), 'RouteHandlerConfig', routesManifest.filePathToRoute); + const pagesRouterPageValidations = generateValidations(Array.from(routesManifest.pagesRouterPagePaths).sort(), 'PagesPageConfig'); + const pagesApiRouteValidations = generateValidations(Array.from(routesManifest.pageApiRoutes).sort(), 'ApiRouteConfig'); + const layoutValidations = generateValidations(Array.from(routesManifest.layoutPaths).sort(), 'LayoutConfig', routesManifest.filePathToRoute); + const hasAppRouteHandlers = Object.keys(routesManifest.appRouteHandlerRoutes).length > 0; + // Build type definitions based on what's actually used + let typeDefinitions = ''; + if (appPageValidations) { + typeDefinitions += `type AppPageConfig = { + default: React.ComponentType<{ params: Promise } & any> | ((props: { params: Promise } & any) => React.ReactNode | Promise | never | void | Promise) + generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise | any[] + generateMetadata?: ( + props: { params: Promise } & any, + parent: ResolvingMetadata + ) => Promise | any + generateViewport?: ( + props: { params: Promise } & any, + parent: ResolvingViewport + ) => Promise | any + metadata?: any + viewport?: any +} + +`; + } + if (pagesRouterPageValidations) { + typeDefinitions += `type PagesPageConfig = { + default: React.ComponentType | ((props: any) => React.ReactNode | Promise | never | void) + getStaticProps?: (context: any) => Promise | any + getStaticPaths?: (context: any) => Promise | any + getServerSideProps?: (context: any) => Promise | any + getInitialProps?: (context: any) => Promise | any + /** + * Segment configuration for legacy Pages Router pages. + * Validated at build-time by parsePagesSegmentConfig. + */ + config?: { + maxDuration?: number + runtime?: 'edge' | 'experimental-edge' | 'nodejs' | string // necessary unless config is exported as const + regions?: string[] + } +} + +`; + } + if (layoutValidations) { + typeDefinitions += `type LayoutConfig = { + default: React.ComponentType> | ((props: LayoutProps) => React.ReactNode | Promise | never | void | Promise) + generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise | any[] + generateMetadata?: ( + props: { params: Promise } & any, + parent: ResolvingMetadata + ) => Promise | any + generateViewport?: ( + props: { params: Promise } & any, + parent: ResolvingViewport + ) => Promise | any + metadata?: any + viewport?: any +} + +`; + } + if (appRouteHandlerValidations) { + typeDefinitions += `type RouteHandlerConfig = { + GET?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + POST?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + PUT?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + PATCH?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + DELETE?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + HEAD?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + OPTIONS?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void +} + +`; + } + if (pagesApiRouteValidations) { + typeDefinitions += `type ApiRouteConfig = { + default: (req: any, res: any) => ReturnType + config?: { + api?: { + bodyParser?: boolean | { sizeLimit?: number | string } + responseLimit?: string | number | boolean + externalResolver?: boolean + } + runtime?: 'edge' | 'experimental-edge' | 'nodejs' | string // necessary unless config is exported as const + maxDuration?: number + } +} + +`; + } + // Build import statement based on what's actually needed + const routeImports = []; + // Only import AppRoutes if there are app pages + if (appPageValidations) { + routeImports.push('AppRoutes'); + } + // Only import LayoutRoutes if there are layouts + if (layoutValidations) { + routeImports.push('LayoutRoutes'); + } + // Only import ParamMap if there are routes that use it + if (appPageValidations || layoutValidations || appRouteHandlerValidations) { + routeImports.push('ParamMap'); + } + if (hasAppRouteHandlers) { + routeImports.push('AppRouteHandlerRoutes'); + } + const routeImportStatement = routeImports.length > 0 ? `import type { ${routeImports.join(', ')} } from "./routes.js"` : ''; + const nextRequestImport = hasAppRouteHandlers ? "import type { NextRequest } from 'next/server.js'\n" : ''; + // Conditionally import types from next/types, merged into a single statement + const nextTypes = []; + if (pagesApiRouteValidations) { + nextTypes.push('NextApiHandler'); + } + if (appPageValidations || layoutValidations) { + nextTypes.push('ResolvingMetadata', 'ResolvingViewport'); + } + const nextTypesImport = nextTypes.length > 0 ? `import type { ${nextTypes.join(', ')} } from "next/types.js"\n` : ''; + return `// This file is generated automatically by Next.js +// Do not edit this file manually +// This file validates that all pages and layouts export the correct types + +${routeImportStatement} +${nextTypesImport}${nextRequestImport} +${typeDefinitions} +${appPageValidations} + +${appRouteHandlerValidations} + +${pagesRouterPageValidations} + +${pagesApiRouteValidations} + +${layoutValidations} +`; +} +function generateValidatorFileStrict(routesManifest) { + const generateValidations = (paths, type, pathToRouteMap)=>paths.sort()// Only validate TypeScript files - JavaScript files have too many type inference limitations + .filter((filePath)=>filePath.endsWith('.ts') || filePath.endsWith('.tsx')).filter(// Don't include metadata routes or pages + // (e.g. /manifest.webmanifest) + (filePath)=>type !== 'AppPageConfig' || filePath.endsWith('page.ts') || filePath.endsWith('page.tsx')).map((filePath)=>{ + // Keep the file extension for TypeScript imports to support node16 module resolution + const importPath = filePath; + const route = pathToRouteMap == null ? void 0 : pathToRouteMap.get(filePath); + const typeWithRoute = route && (type === 'AppPageConfig' || type === 'LayoutConfig' || type === 'RouteHandlerConfig') ? `${type}<${JSON.stringify(route)}>` : type; + return `// Validate ${filePath} +{ + const handler = {} as typeof import(${JSON.stringify(importPath.replace(/\.tsx?$/, '.js'))}) + handler satisfies ${typeWithRoute} +}`; + }).join('\n\n'); + // Use direct mappings from the manifest + // Generate validations for different route types + const appPageValidations = generateValidations(Array.from(routesManifest.appPagePaths).sort(), 'AppPageConfig', routesManifest.filePathToRoute); + const appRouteHandlerValidations = generateValidations(Array.from(routesManifest.appRouteHandlers).sort(), 'RouteHandlerConfig', routesManifest.filePathToRoute); + const pagesRouterPageValidations = generateValidations(Array.from(routesManifest.pagesRouterPagePaths).sort(), 'PagesPageConfig'); + const pagesApiRouteValidations = generateValidations(Array.from(routesManifest.pageApiRoutes).sort(), 'ApiRouteConfig'); + const layoutValidations = generateValidations(Array.from(routesManifest.layoutPaths).sort(), 'LayoutConfig', routesManifest.filePathToRoute); + const hasAppRouteHandlers = Object.keys(routesManifest.appRouteHandlerRoutes).length > 0; + // Build type definitions based on what's actually used + let typeDefinitions = ''; + if (appPageValidations) { + typeDefinitions += `type AppPageConfig = { + default: React.JSXElementConstructor> + generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise | any[] + generateMetadata?: ( + props: PageProps, + parent: ResolvingMetadata + ) => Promise | any + generateViewport?: ( + props: PageProps, + parent: ResolvingViewport + ) => Promise | any + metadata?: any + viewport?: any +} + +`; + } + if (pagesRouterPageValidations) { + typeDefinitions += `type PagesPageConfig = { + default: React.ComponentType | ((props: any) => React.ReactNode | Promise | never | void) + getStaticProps?: (context: any) => Promise | any + getStaticPaths?: (context: any) => Promise | any + getServerSideProps?: (context: any) => Promise | any + getInitialProps?: (context: any) => Promise | any + /** + * Segment configuration for legacy Pages Router pages. + * Validated at build-time by parsePagesSegmentConfig. + */ + config?: { + maxDuration?: number + runtime?: 'edge' | 'experimental-edge' | 'nodejs' | string // necessary unless config is exported as const + regions?: string[] + } +} + +`; + } + if (layoutValidations) { + typeDefinitions += `type LayoutConfig = { + default: React.ComponentType> | ((props: LayoutProps) => React.ReactNode | Promise | never | void | Promise) + generateStaticParams?: (props: { params: ParamMap[Route] }) => Promise | any[] + generateMetadata?: ( + props: { params: Promise } & any, + parent: ResolvingMetadata + ) => Promise | any + generateViewport?: ( + props: { params: Promise } & any, + parent: ResolvingViewport + ) => Promise | any + metadata?: any + viewport?: any +} + +`; + } + if (appRouteHandlerValidations) { + typeDefinitions += `type RouteHandlerConfig = { + GET?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + POST?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + PUT?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + PATCH?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + DELETE?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + HEAD?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void + OPTIONS?: (request: NextRequest, context: { params: Promise }) => Promise | Response | void +} + +`; + } + if (pagesApiRouteValidations) { + typeDefinitions += `type ApiRouteConfig = { + default: (req: any, res: any) => ReturnType + config?: { + api?: { + bodyParser?: boolean | { sizeLimit?: number | string } + responseLimit?: string | number | boolean + externalResolver?: boolean + } + runtime?: 'edge' | 'experimental-edge' | 'nodejs' | string // necessary unless config is exported as const + maxDuration?: number + } +} + +`; + } + // Build import statement based on what's actually needed + const routeImports = []; + // Only import AppRoutes if there are app pages + if (appPageValidations) { + routeImports.push('AppRoutes'); + } + // Only import LayoutRoutes if there are layouts + if (layoutValidations) { + routeImports.push('LayoutRoutes'); + } + // Only import ParamMap if there are routes that use it + if (appPageValidations || layoutValidations || appRouteHandlerValidations) { + routeImports.push('ParamMap'); + } + if (hasAppRouteHandlers) { + routeImports.push('AppRouteHandlerRoutes'); + } + const routeImportStatement = routeImports.length > 0 ? `import type { ${routeImports.join(', ')} } from "./routes.js"` : ''; + const nextRequestImport = hasAppRouteHandlers ? "import type { NextRequest } from 'next/server.js'\n" : ''; + // Conditionally import types from next/types, merged into a single statement + const nextTypes = []; + if (pagesApiRouteValidations) { + nextTypes.push('NextApiHandler'); + } + if (appPageValidations || layoutValidations) { + nextTypes.push('ResolvingMetadata', 'ResolvingViewport'); + } + const nextTypesImport = nextTypes.length > 0 ? `import type { ${nextTypes.join(', ')} } from "next/types.js"\n` : ''; + return `// This file is generated automatically by Next.js with experimental.strictRouteTypes +// Do not edit this file manually +// This file validates that all pages and layouts export the correct types + +${routeImportStatement} +${nextTypesImport}${nextRequestImport} +${typeDefinitions} +${appPageValidations} + +${appRouteHandlerValidations} + +${pagesRouterPageValidations} + +${pagesApiRouteValidations} + +${layoutValidations} +`; +} +function generateRouteTypesFile(routesManifest) { + const routeTypes = generateRouteTypes(routesManifest); + const paramTypes = generateParamTypes(routesManifest); + const layoutSlotMap = generateLayoutSlotMap(routesManifest); + const hasAppRouteHandlers = Object.keys(routesManifest.appRouteHandlerRoutes).length > 0; + // Build export statement based on what's actually generated + const routeExports = [ + 'AppRoutes', + 'PageRoutes', + 'LayoutRoutes', + 'RedirectRoutes', + 'RewriteRoutes', + 'ParamMap' + ]; + if (hasAppRouteHandlers) { + routeExports.push('AppRouteHandlerRoutes'); + } + const exportStatement = `export type { ${routeExports.join(', ')} }`; + const routeContextInterface = hasAppRouteHandlers ? ` + + /** + * Context for Next.js App Router route handlers + * @example + * \`\`\`tsx + * export async function GET(request: NextRequest, context: RouteContext<'/api/users/[id]'>) { + * const { id } = await context.params + * return Response.json({ id }) + * } + * \`\`\` + */ + interface RouteContext { + params: Promise + }` : ''; + return `// This file is generated automatically by Next.js +// Do not edit this file manually + +${routeTypes} + +${paramTypes} + +export type ParamsOf = ParamMap[Route] + +${layoutSlotMap} + +${exportStatement} + +declare global { + /** + * Props for Next.js App Router page components + * @example + * \`\`\`tsx + * export default function Page(props: PageProps<'/blog/[slug]'>) { + * const { slug } = await props.params + * return
Blog post: {slug}
+ * } + * \`\`\` + */ + interface PageProps { + params: Promise + searchParams: Promise> + } + + /** + * Props for Next.js App Router layout components + * @example + * \`\`\`tsx + * export default function Layout(props: LayoutProps<'/dashboard'>) { + * return
{props.children}
+ * } + * \`\`\` + */ + type LayoutProps = { + params: Promise + children: React.ReactNode + } & { + [K in LayoutSlotMap[LayoutRoute]]: React.ReactNode + }${routeContextInterface} +} +`; +} +function generateRouteTypesFileStrict(routesManifest) { + const routeTypes = generateRouteTypes(routesManifest); + const paramTypes = generateParamTypes(routesManifest); + const layoutSlotMap = generateLayoutSlotMap(routesManifest); + const hasAppRouteHandlers = Object.keys(routesManifest.appRouteHandlerRoutes).length > 0; + // Build export statement based on what's actually generated + const routeExports = [ + 'AppRoutes', + 'PageProps', + 'PageRoutes', + 'LayoutRoutes', + 'RedirectRoutes', + 'RewriteRoutes', + 'ParamMap' + ]; + if (hasAppRouteHandlers) { + routeExports.push('AppRouteHandlerRoutes'); + } + const exportStatement = `export type { ${routeExports.join(', ')} }`; + const routeContextInterface = hasAppRouteHandlers ? ` + + /** + * Context for Next.js App Router route handlers + * @example + * \`\`\`tsx + * export async function GET(request: NextRequest, context: RouteContext<'/api/users/[id]'>) { + * const { id } = await context.params + * return Response.json({ id }) + * } + * \`\`\` + */ + interface RouteContext { + params: Promise + }` : ''; + return `// This file is generated automatically by Next.js with experimental.strictRouteTypes +// Do not edit this file manually + +${routeTypes} + +${paramTypes} + +export type ParamsOf = ParamMap[Route] + +${layoutSlotMap} + +${exportStatement} + +declare global { + /** + * Props for Next.js App Router page components + * @example + * \`\`\`tsx + * export default function Page(props: PageProps<'/blog/[slug]'>) { + * const { slug } = await props.params + * return
Blog post: {slug}
+ * } + * \`\`\` + */ + interface PageProps { + params: Promise + searchParams: Promise> + } + + /** + * Props for Next.js App Router layout components + * @example + * \`\`\`tsx + * export default function Layout(props: LayoutProps<'/dashboard'>) { + * return
{props.children}
+ * } + * \`\`\` + */ + type LayoutProps = { + params: Promise + children: React.ReactNode + } & { + [K in LayoutSlotMap[LayoutRoute]]: React.ReactNode + }${routeContextInterface} +} +`; +} + +//# sourceMappingURL=typegen.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/server-action-request-meta.js b/cli/app/node_modules/next/dist/server/lib/server-action-request-meta.js new file mode 100644 index 00000000000..425a23131ec --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/server-action-request-meta.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getIsPossibleServerAction: null, + getServerActionRequestMetadata: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getIsPossibleServerAction: function() { + return getIsPossibleServerAction; + }, + getServerActionRequestMetadata: function() { + return getServerActionRequestMetadata; + } +}); +const _approuterheaders = require("../../client/components/app-router-headers"); +function getServerActionRequestMetadata(req) { + let actionId; + let contentType; + if (req.headers instanceof Headers) { + actionId = req.headers.get(_approuterheaders.ACTION_HEADER) ?? null; + contentType = req.headers.get('content-type'); + } else { + actionId = req.headers[_approuterheaders.ACTION_HEADER] ?? null; + contentType = req.headers['content-type'] ?? null; + } + // We don't actually support URL encoded actions, and the action handler will bail out if it sees one. + // But we still want it to flow through to the action handler, to prevent changes in behavior when a regular + // page component tries to handle a POST. + const isURLEncodedAction = Boolean(req.method === 'POST' && contentType === 'application/x-www-form-urlencoded'); + const isMultipartAction = Boolean(req.method === 'POST' && (contentType == null ? void 0 : contentType.startsWith('multipart/form-data'))); + const isFetchAction = Boolean(actionId !== undefined && typeof actionId === 'string' && req.method === 'POST'); + const isPossibleServerAction = Boolean(isFetchAction || isURLEncodedAction || isMultipartAction); + return { + actionId, + isURLEncodedAction, + isMultipartAction, + isFetchAction, + isPossibleServerAction + }; +} +function getIsPossibleServerAction(req) { + return getServerActionRequestMetadata(req).isPossibleServerAction; +} + +//# sourceMappingURL=server-action-request-meta.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/server-ipc/utils.js b/cli/app/node_modules/next/dist/server/lib/server-ipc/utils.js new file mode 100644 index 00000000000..2e328d403ee --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/server-ipc/utils.js @@ -0,0 +1,81 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + actionsForbiddenHeaders: null, + filterInternalHeaders: null, + filterReqHeaders: null, + ipcForbiddenHeaders: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + actionsForbiddenHeaders: function() { + return actionsForbiddenHeaders; + }, + filterInternalHeaders: function() { + return filterInternalHeaders; + }, + filterReqHeaders: function() { + return filterReqHeaders; + }, + ipcForbiddenHeaders: function() { + return ipcForbiddenHeaders; + } +}); +const ipcForbiddenHeaders = [ + 'accept-encoding', + 'keepalive', + 'keep-alive', + 'content-encoding', + 'transfer-encoding', + // https://github.com/nodejs/undici/issues/1470 + 'connection', + // marked as unsupported by undici: https://github.com/nodejs/undici/blob/c83b084879fa0bb8e0469d31ec61428ac68160d5/lib/core/request.js#L354 + 'expect' +]; +const actionsForbiddenHeaders = [ + ...ipcForbiddenHeaders, + 'content-length', + 'set-cookie' +]; +const filterReqHeaders = (headers, forbiddenHeaders)=>{ + // Some browsers are not matching spec and sending Content-Length: 0. This causes issues in undici + // https://github.com/nodejs/undici/issues/2046 + if (headers['content-length'] && headers['content-length'] === '0') { + delete headers['content-length']; + } + for (const [key, value] of Object.entries(headers)){ + if (forbiddenHeaders.includes(key) || !(Array.isArray(value) || typeof value === 'string')) { + delete headers[key]; + } + } + return headers; +}; +// These are headers that are only used internally and should +// not be honored from the external request +const INTERNAL_HEADERS = [ + 'x-middleware-rewrite', + 'x-middleware-redirect', + 'x-middleware-set-cookie', + 'x-middleware-skip', + 'x-middleware-override-headers', + 'x-middleware-next', + 'x-now-route-matches', + 'x-matched-path', + 'x-next-resume-state-length' +]; +const filterInternalHeaders = (headers)=>{ + for(const header in headers){ + if (INTERNAL_HEADERS.includes(header)) { + delete headers[header]; + } + } +}; + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/source-maps.js b/cli/app/node_modules/next/dist/server/lib/source-maps.js new file mode 100644 index 00000000000..299ca3bfe64 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/source-maps.js @@ -0,0 +1,196 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + devirtualizeReactServerURL: null, + filterStackFrameDEV: null, + findApplicableSourceMapPayload: null, + findSourceMapURLDEV: null, + ignoreListAnonymousStackFramesIfSandwiched: null, + sourceMapIgnoreListsEverything: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + devirtualizeReactServerURL: function() { + return devirtualizeReactServerURL; + }, + filterStackFrameDEV: function() { + return filterStackFrameDEV; + }, + findApplicableSourceMapPayload: function() { + return findApplicableSourceMapPayload; + }, + findSourceMapURLDEV: function() { + return findSourceMapURLDEV; + }, + ignoreListAnonymousStackFramesIfSandwiched: function() { + return ignoreListAnonymousStackFramesIfSandwiched; + }, + sourceMapIgnoreListsEverything: function() { + return sourceMapIgnoreListsEverything; + } +}); +const _lrucache = require("./lru-cache"); +function noSourceMap() { + return undefined; +} +// Edge runtime does not implement `module` +const findSourceMap = process.env.NEXT_RUNTIME === 'edge' ? noSourceMap : require('module').findSourceMap; +function sourceMapIgnoreListsEverything(sourceMap) { + return sourceMap.ignoreList !== undefined && sourceMap.sources.length === sourceMap.ignoreList.length; +} +function findApplicableSourceMapPayload(line0, column0, payload) { + if ('sections' in payload) { + if (payload.sections.length === 0) { + return undefined; + } + // Sections must not overlap and must be sorted: https://tc39.es/source-map/#section-object + // Therefore the last section that has an offset less than or equal to the frame is the applicable one. + const sections = payload.sections; + let left = 0; + let right = sections.length - 1; + let result = null; + while(left <= right){ + // fast Math.floor + const middle = ~~((left + right) / 2); + const section = sections[middle]; + const offset = section.offset; + if (offset.line < line0 || offset.line === line0 && offset.column <= column0) { + result = section; + left = middle + 1; + } else { + right = middle - 1; + } + } + return result === null ? undefined : result.map; + } else { + return payload; + } +} +const didWarnAboutInvalidSourceMapDEV = new Set(); +function filterStackFrameDEV(sourceURL, functionName, line1, column1) { + if (sourceURL === '') { + // The default implementation filters out stack frames + // but we want to retain them because current Server Components and + // built-in Components in parent stacks don't have source location. + // Filter out frames that show up in Promises to get good names in React's + // Server Request track until we come up with a better heuristic. + return functionName !== 'new Promise'; + } + if (sourceURL.startsWith('node:') || sourceURL.includes('node_modules')) { + return false; + } + try { + // Node.js loads source maps eagerly so this call is cheap. + // TODO: ESM sourcemaps are O(1) but CommonJS sourcemaps are O(Number of CJS modules). + // Make sure this doesn't adversely affect performance when CJS is used by Next.js. + const sourceMap = findSourceMap(sourceURL); + if (sourceMap === undefined) { + // No source map assoicated. + // TODO: Node.js types should reflect that `findSourceMap` can return `undefined`. + return true; + } + const sourceMapPayload = findApplicableSourceMapPayload(line1 - 1, column1 - 1, sourceMap.payload); + if (sourceMapPayload === undefined) { + // No source map section applicable to the frame. + return true; + } + return !sourceMapIgnoreListsEverything(sourceMapPayload); + } catch (cause) { + if (process.env.NODE_ENV !== 'production') { + // TODO: Share cache with patch-error-inspect + if (!didWarnAboutInvalidSourceMapDEV.has(sourceURL)) { + didWarnAboutInvalidSourceMapDEV.add(sourceURL); + // We should not log an actual error instance here because that will re-enter + // this codepath during error inspection and could lead to infinite recursion. + console.error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to filter stack frames. Cause: ${cause}`); + } + } + return true; + } +} +const invalidSourceMap = Symbol('invalid-source-map'); +const sourceMapURLs = new _lrucache.LRUCache(512 * 1024 * 1024, (url)=>url === invalidSourceMap ? // so that we don't create a huge cache with empty source maps. + 8 * 1024 : url.length); +function findSourceMapURLDEV(scriptNameOrSourceURL) { + let sourceMapURL = sourceMapURLs.get(scriptNameOrSourceURL); + if (sourceMapURL === undefined) { + let sourceMapPayload; + try { + var _findSourceMap; + sourceMapPayload = (_findSourceMap = findSourceMap(scriptNameOrSourceURL)) == null ? void 0 : _findSourceMap.payload; + } catch (cause) { + console.error(`${scriptNameOrSourceURL}: Invalid source map. Only conformant source maps can be used to find the original code. Cause: ${cause}`); + } + if (sourceMapPayload === undefined) { + sourceMapURL = invalidSourceMap; + } else { + // TODO: Might be more efficient to extract the relevant section from Index Maps. + // Unclear if that search is worth the smaller payload we have to stringify. + const sourceMapJSON = JSON.stringify(sourceMapPayload); + const sourceMapURLData = Buffer.from(sourceMapJSON, 'utf8').toString('base64'); + sourceMapURL = `data:application/json;base64,${sourceMapURLData}`; + } + sourceMapURLs.set(scriptNameOrSourceURL, sourceMapURL); + } + return sourceMapURL === invalidSourceMap ? null : sourceMapURL; +} +function devirtualizeReactServerURL(sourceURL) { + if (sourceURL.startsWith('about://React/')) { + // about://React/Server/file://?42 => file:// + const envIdx = sourceURL.indexOf('/', 'about://React/'.length); + const suffixIdx = sourceURL.lastIndexOf('?'); + if (envIdx > -1 && suffixIdx > -1) { + return decodeURI(sourceURL.slice(envIdx + 1, suffixIdx)); + } + } + return sourceURL; +} +function isAnonymousFrameLikelyJSNative(methodName) { + // Anonymous frames can also be produced in React parent stacks either from + // host components or Server Components. We don't want to ignore those. + // This could hide user-space methods that are named like native JS methods but + // should you really do that? + return(// e.g. JSON.parse + methodName.startsWith('JSON.') || // E.g. Promise.withResolves + methodName.startsWith('Function.') || // various JS built-ins + methodName.startsWith('Promise.') || methodName.startsWith('Array.') || methodName.startsWith('Set.') || methodName.startsWith('Map.')); +} +function ignoreListAnonymousStackFramesIfSandwiched(frames, isAnonymousFrame, isIgnoredFrame, getMethodName, /** only passes frames for which `isAnonymousFrame` and their method is a native JS method or `isIgnoredFrame` return true */ ignoreFrame) { + for(let i = 1; i < frames.length; i++){ + const currentFrame = frames[i]; + if (!(isAnonymousFrame(currentFrame) && isAnonymousFrameLikelyJSNative(getMethodName(currentFrame)))) { + continue; + } + const previousFrameIsIgnored = isIgnoredFrame(frames[i - 1]); + if (previousFrameIsIgnored && i < frames.length - 1) { + let ignoreSandwich = false; + let j = i + 1; + for(j; j < frames.length; j++){ + const nextFrame = frames[j]; + const nextFrameIsAnonymous = isAnonymousFrame(nextFrame) && isAnonymousFrameLikelyJSNative(getMethodName(nextFrame)); + if (nextFrameIsAnonymous) { + continue; + } + const nextFrameIsIgnored = isIgnoredFrame(nextFrame); + if (nextFrameIsIgnored) { + ignoreSandwich = true; + break; + } + } + if (ignoreSandwich) { + for(i; i < j; i++){ + ignoreFrame(frames[i]); + } + } + } + } +} + +//# sourceMappingURL=source-maps.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/start-server.js b/cli/app/node_modules/next/dist/server/lib/start-server.js new file mode 100644 index 00000000000..3bfcdf22fd8 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/start-server.js @@ -0,0 +1,494 @@ +// Start CPU profile if it wasn't already started. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getRequestHandlers: null, + startServer: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getRequestHandlers: function() { + return getRequestHandlers; + }, + startServer: function() { + return startServer; + } +}); +require("./cpu-profile"); +const _getnetworkhost = require("../../lib/get-network-host"); +require("../next"); +require("../require-hook"); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _v8 = /*#__PURE__*/ _interop_require_default(require("v8")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _http = /*#__PURE__*/ _interop_require_default(require("http")); +const _https = /*#__PURE__*/ _interop_require_default(require("https")); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _child_process = require("child_process"); +const _watchpack = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/watchpack")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _debug = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/debug")); +const _utils = require("./utils"); +const _formathostname = require("./format-hostname"); +const _routerserver = require("./router-server"); +const _constants = require("../../shared/lib/constants"); +const _appinfolog = require("./app-info-log"); +const _turbopackwarning = require("../../lib/turbopack-warning"); +const _trace = require("../../trace"); +const _isipv6 = require("./is-ipv6"); +const _asynccallbackset = require("./async-callback-set"); +const _durationtostring = require("../../build/duration-to-string"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const debug = (0, _debug.default)('next:start-server'); +let startServerSpan; +/** + * Get the process ID (PID) of the process using the specified port + */ async function getProcessIdUsingPort(port) { + const timeoutMs = 250; + const processLookupController = new AbortController(); + const pidPromise = new Promise((resolve)=>{ + const handleError = (error)=>{ + debug('Failed to get process ID for port', port, error); + resolve(null); + }; + try { + // Use lsof on Unix-like systems (macOS, Linux) + if (process.platform !== 'win32') { + (0, _child_process.exec)(`lsof -ti:${port} -sTCP:LISTEN`, { + signal: processLookupController.signal + }, (error, stdout)=>{ + if (error) { + handleError(error); + return; + } + // `-sTCP` will ensure there's only one port, clean up output + const pid = stdout.trim(); + resolve(pid || null); + }); + } else { + // Use netstat on Windows + (0, _child_process.exec)(`netstat -ano | findstr /C:":${port} " | findstr LISTENING`, { + signal: processLookupController.signal + }, (error, stdout)=>{ + if (error) { + handleError(error); + return; + } + // Clean up output and extract PID + const cleanOutput = stdout.replace(/\s+/g, ' ').trim(); + if (cleanOutput) { + const lines = cleanOutput.split('\n'); + const firstLine = lines[0].trim(); + if (firstLine) { + const parts = firstLine.split(' '); + const pid = parts[parts.length - 1]; + resolve(pid || null); + } else { + resolve(null); + } + } else { + resolve(null); + } + }); + } + } catch (cause) { + handleError(Object.defineProperty(new Error('Unexpected error during process lookup', { + cause + }), "__NEXT_ERROR_CODE", { + value: "E713", + enumerable: false, + configurable: true + })); + } + }); + const timeoutId = setTimeout(()=>{ + processLookupController.abort(`PID detection timed out after ${timeoutMs}ms for port ${port}.`); + }, timeoutMs); + pidPromise.finally(()=>clearTimeout(timeoutId)); + return pidPromise; +} +async function getRequestHandlers({ dir, port, isDev, onDevServerCleanup, server, hostname, minimalMode, keepAliveTimeout, experimentalHttpsServer, serverFastRefresh, quiet }) { + return (0, _routerserver.initialize)({ + dir, + port, + hostname, + onDevServerCleanup, + dev: isDev, + minimalMode, + server, + keepAliveTimeout, + experimentalHttpsServer, + serverFastRefresh, + startServerSpan, + quiet + }); +} +async function startServer(serverOptions) { + const { dir, isDev, hostname, minimalMode, allowRetry, keepAliveTimeout, selfSignedCertificate, serverFastRefresh } = serverOptions; + let { port } = serverOptions; + process.title = `next-server (v${"16.2.1"})`; + let handlersReady = ()=>{}; + let handlersError = ()=>{}; + let handlersPromise = new Promise((resolve, reject)=>{ + handlersReady = resolve; + handlersError = reject; + }); + let requestHandler = async (req, res)=>{ + if (handlersPromise) { + await handlersPromise; + return requestHandler(req, res); + } + throw Object.defineProperty(new Error('Invariant request handler was not setup'), "__NEXT_ERROR_CODE", { + value: "E287", + enumerable: false, + configurable: true + }); + }; + let upgradeHandler = async (req, socket, head)=>{ + if (handlersPromise) { + await handlersPromise; + return upgradeHandler(req, socket, head); + } + throw Object.defineProperty(new Error('Invariant upgrade handler was not setup'), "__NEXT_ERROR_CODE", { + value: "E290", + enumerable: false, + configurable: true + }); + }; + let nextServer; + // setup server listener as fast as possible + if (selfSignedCertificate && !isDev) { + throw Object.defineProperty(new Error('Using a self signed certificate is only supported with `next dev`.'), "__NEXT_ERROR_CODE", { + value: "E128", + enumerable: false, + configurable: true + }); + } + async function requestListener(req, res) { + try { + if (handlersPromise) { + await handlersPromise; + handlersPromise = undefined; + } + await requestHandler(req, res); + } catch (err) { + res.statusCode = 500; + res.end('Internal Server Error'); + _log.error(`Failed to handle request for ${req.url}`); + console.error(err); + } finally{ + if (isDev) { + if (_v8.default.getHeapStatistics().used_heap_size > 0.8 * _v8.default.getHeapStatistics().heap_size_limit) { + _log.warn(`Server is approaching the used memory threshold, restarting...`); + (0, _trace.trace)('server-restart-close-to-memory-threshold', undefined, { + 'memory.heapSizeLimit': String(_v8.default.getHeapStatistics().heap_size_limit), + 'memory.heapUsed': String(_v8.default.getHeapStatistics().used_heap_size) + }).stop(); + await (0, _trace.flushAllTraces)(); + process.exit(_utils.RESTART_EXIT_CODE); + } + } + } + } + const server = selfSignedCertificate ? _https.default.createServer({ + key: _fs.default.readFileSync(selfSignedCertificate.key), + cert: _fs.default.readFileSync(selfSignedCertificate.cert) + }, requestListener) : _http.default.createServer(requestListener); + if (keepAliveTimeout) { + server.keepAliveTimeout = keepAliveTimeout; + } + server.on('upgrade', async (req, socket, head)=>{ + try { + await upgradeHandler(req, socket, head); + } catch (err) { + socket.destroy(); + _log.error(`Failed to handle request for ${req.url}`); + console.error(err); + } + }); + let portRetryCount = 0; + const originalPort = port; + server.on('error', (err)=>{ + if (allowRetry && port && isDev && err.code === 'EADDRINUSE' && portRetryCount < 10) { + port += 1; + portRetryCount += 1; + server.listen(port, hostname); + } else { + _log.error(`Failed to start server`); + console.error(err); + process.exit(1); + } + }); + let cleanupListeners = isDev ? new _asynccallbackset.AsyncCallbackSet() : undefined; + const distDir = await new Promise((resolve)=>{ + server.on('listening', async ()=>{ + const addr = server.address(); + const actualHostname = (0, _formathostname.formatHostname)(typeof addr === 'object' ? (addr == null ? void 0 : addr.address) || hostname || 'localhost' : addr); + const formattedHostname = !hostname || actualHostname === '0.0.0.0' ? 'localhost' : actualHostname === '[::]' ? '[::1]' : (0, _formathostname.formatHostname)(hostname); + port = typeof addr === 'object' ? (addr == null ? void 0 : addr.port) || port : port; + if (portRetryCount) { + const pid = await getProcessIdUsingPort(originalPort); + if (pid) { + _log.warn(`Port ${originalPort} is in use by process ${pid}, using available port ${port} instead.`); + } else { + _log.warn(`Port ${originalPort} is in use by an unknown process, using available port ${port} instead.`); + } + } + const networkHostname = hostname ?? (0, _getnetworkhost.getNetworkHost)((0, _isipv6.isIPv6)(actualHostname) ? 'IPv6' : 'IPv4'); + const protocol = selfSignedCertificate ? 'https' : 'http'; + const networkUrl = networkHostname ? `${protocol}://${(0, _formathostname.formatHostname)(networkHostname)}:${port}` : null; + const appUrl = `${protocol}://${formattedHostname}:${port}`; + // Store the selected port to: + // - expose it to render workers + // - re-use it for automatic dev server restarts with a randomly selected port + process.env.PORT = port + ''; + process.env.__NEXT_PRIVATE_ORIGIN = appUrl; + // Set experimental HTTPS flag for metadata resolution + if (selfSignedCertificate) { + process.env.__NEXT_EXPERIMENTAL_HTTPS = '1'; + } + // Get env info first (fast, doesn't require config) + const envInfo = isDev ? (0, _appinfolog.getEnvInfo)(dir) : undefined; + // Log basic startup info immediately (before loading config) + (0, _appinfolog.logStartInfo)({ + networkUrl, + appUrl, + envInfo, + logBundler: isDev + }); + // Calculate and log "Ready in X" before loading config + // so it reflects actual framework startup time. + // NEXT_PRIVATE_START_TIME is set by bin/next.ts or cli/next-start.ts. + const startTime = parseInt(process.env.NEXT_PRIVATE_START_TIME || '0', 10); + const endTime = Date.now(); + const startServerProcessDurationMs = startTime ? endTime - startTime : 0; + const formattedStartDuration = (0, _durationtostring.durationToString)(startServerProcessDurationMs / 1000); + _log.event(`Ready in ${formattedStartDuration}`); + try { + let cleanupStarted = false; + let closeUpgraded = null; + const cleanup = (signal)=>{ + if (cleanupStarted) { + // We can get duplicate signals, e.g. when `ctrl+c` is used in an + // interactive shell (i.e. bash, zsh), the shell will recursively + // send SIGINT to children. The parent `next-dev` process will also + // send us SIGINT. + return; + } + cleanupStarted = true; + (async ()=>{ + debug('start-server process cleanup'); + // first, stop accepting new connections and finish pending requests, + // because they might affect `nextServer.close()` (e.g. by scheduling an `after`) + await new Promise((res)=>{ + server.close((err)=>{ + if (err) console.error(err); + res(); + }); + if (isDev) { + server.closeAllConnections(); + closeUpgraded == null ? void 0 : closeUpgraded(); + } + }); + // now that no new requests can come in, clean up the rest + await Promise.all([ + nextServer == null ? void 0 : nextServer.close().catch(console.error), + cleanupListeners == null ? void 0 : cleanupListeners.runAll().catch(console.error) + ]); + // Flush any remaining traces to the trace file on shutdown + await (0, _trace.flushAllTraces)(); + // Flush telemetry if this is a dev server + if (isDev) { + try { + const { traceGlobals } = require('../../trace/shared'); + const telemetry = traceGlobals.get('telemetry'); + if (telemetry) { + // Use flushDetached to avoid blocking process exit + // Each process writes to a unique file (_events_${pid}.json) + // to avoid race conditions with the parent process + telemetry.flushDetached('dev', dir); + } + } catch (_) { + // Ignore telemetry errors during cleanup + } + } + debug('start-server process cleanup finished'); + // Exit with signal-based exit code (128 + signal number) so that + // Node.js treats this as a signal termination, not a normal exit. + // This avoids waiting for the debugger to disconnect. + switch(signal){ + case 'SIGINT': + process.exit(130); + break; + case 'SIGTERM': + process.exit(143); + break; + default: + // Make sure all handled signals have explicit exit codes. + // This is just a fallback to guard against unsound types. + signal; + process.exit(128); + } + })(); + }; + // Make sure commands gracefully respect termination signals (e.g. from Docker) + // Allow the graceful termination to be manually configurable + if (!process.env.NEXT_MANUAL_SIG_HANDLE) { + process.on('SIGINT', cleanup); + process.on('SIGTERM', cleanup); + } + // Now load config via getRequestHandlers (single loadConfig call) + const initResult = await getRequestHandlers({ + dir, + port, + isDev, + onDevServerCleanup: cleanupListeners ? cleanupListeners.add.bind(cleanupListeners) : undefined, + server, + hostname, + minimalMode, + keepAliveTimeout, + experimentalHttpsServer: !!selfSignedCertificate, + serverFastRefresh + }); + requestHandler = initResult.requestHandler; + upgradeHandler = initResult.upgradeHandler; + nextServer = initResult.server; + closeUpgraded = initResult.closeUpgraded; + // Log experimental features after config is loaded + if (isDev) { + (0, _appinfolog.logExperimentalInfo)({ + experimentalFeatures: initResult.experimentalFeatures, + cacheComponents: initResult.cacheComponents + }); + } + handlersReady(); + if (process.env.TURBOPACK && isDev) { + await (0, _turbopackwarning.validateTurboNextConfig)({ + dir: serverOptions.dir, + configPhase: _constants.PHASE_DEVELOPMENT_SERVER + }); + } + resolve(initResult.distDir); + } catch (err) { + // fatal error if we can't setup + handlersError(); + console.error(err); + process.exit(1); + } + }); + server.listen(port, hostname); + }); + if (isDev) { + function watchConfigFiles(dirToWatch, onChange) { + const wp = new _watchpack.default(); + wp.watch({ + files: _constants.CONFIG_FILES.map((file)=>_path.default.join(dirToWatch, file)) + }); + wp.on('change', onChange); + } + watchConfigFiles(dir, async (filename)=>{ + if (process.env.__NEXT_DISABLE_MEMORY_WATCHER) { + _log.info(`Detected change, manual restart required due to '__NEXT_DISABLE_MEMORY_WATCHER' usage`); + return; + } + _log.warn(`Found a change in ${_path.default.basename(filename)}. Restarting the server to apply the changes...`); + process.exit(_utils.RESTART_EXIT_CODE); + }); + } + return { + distDir + }; +} +if (process.env.NEXT_PRIVATE_WORKER && process.send) { + process.addListener('message', async (msg)=>{ + if (msg && typeof msg === 'object' && msg.nextWorkerOptions && process.send) { + let enabledFeaturesFromParent = {}; + if (process.env.NEXT_PRIVATE_ENABLED_FEATURES) { + const parsed = JSON.parse(process.env.NEXT_PRIVATE_ENABLED_FEATURES); + enabledFeaturesFromParent = Object.fromEntries(Object.entries(parsed).map(([key, value])=>[ + `feature.${key}`, + value + ])); + } + startServerSpan = (0, _trace.trace)('start-dev-server', undefined, { + cpus: String(_os.default.cpus().length), + platform: _os.default.platform(), + 'memory.freeMem': String(_os.default.freemem()), + 'memory.totalMem': String(_os.default.totalmem()), + 'memory.heapSizeLimit': String(_v8.default.getHeapStatistics().heap_size_limit), + ...enabledFeaturesFromParent + }); + (0, _trace.initializeTraceState)({ + ...(0, _trace.exportTraceState)(), + defaultParentSpanId: startServerSpan.getId() + }); + const result = await startServerSpan.traceAsyncFn(()=>startServer(msg.nextWorkerOptions)); + const memoryUsage = process.memoryUsage(); + startServerSpan.setAttribute('memory.rss', String(memoryUsage.rss)); + startServerSpan.setAttribute('memory.heapTotal', String(memoryUsage.heapTotal)); + startServerSpan.setAttribute('memory.heapUsed', String(memoryUsage.heapUsed)); + process.send({ + nextServerReady: true, + port: process.env.PORT, + distDir: result.distDir + }); + } + }); + process.send({ + nextWorkerReady: true + }); +} + +//# sourceMappingURL=start-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/streaming-metadata.js b/cli/app/node_modules/next/dist/server/lib/streaming-metadata.js new file mode 100644 index 00000000000..5ecd7de0e55 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/streaming-metadata.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isHtmlBotRequest: null, + shouldServeStreamingMetadata: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isHtmlBotRequest: function() { + return isHtmlBotRequest; + }, + shouldServeStreamingMetadata: function() { + return shouldServeStreamingMetadata; + } +}); +const _isbot = require("../../shared/lib/router/utils/is-bot"); +function shouldServeStreamingMetadata(userAgent, htmlLimitedBots) { + const blockingMetadataUARegex = new RegExp(htmlLimitedBots || _isbot.HTML_LIMITED_BOT_UA_RE_STRING, 'i'); + // Only block metadata for HTML-limited bots + if (userAgent && blockingMetadataUARegex.test(userAgent)) { + return false; + } + return true; +} +function isHtmlBotRequest(req) { + const ua = req.headers['user-agent'] || ''; + const botType = (0, _isbot.getBotType)(ua); + return botType === 'html'; +} + +//# sourceMappingURL=streaming-metadata.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/to-route.js b/cli/app/node_modules/next/dist/server/lib/to-route.js new file mode 100644 index 00000000000..6299fbe60a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/to-route.js @@ -0,0 +1,37 @@ +/** + * This transforms a URL pathname into a route. It removes any trailing slashes + * and the `/index` suffix. + * + * @param pathname - The URL path that needs to be optimized. + * @returns - The route + * + * @example + * // returns '/example' + * toRoute('/example/index/'); + * + * @example + * // returns '/example' + * toRoute('/example/'); + * + * @example + * // returns '/' + * toRoute('/index/'); + * + * @example + * // returns '/' + * toRoute('/'); + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "toRoute", { + enumerable: true, + get: function() { + return toRoute; + } +}); +function toRoute(pathname) { + return pathname.replace(/(?:\/index)?\/?$/, '') || '/'; +} + +//# sourceMappingURL=to-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/trace/constants.js b/cli/app/node_modules/next/dist/server/lib/trace/constants.js new file mode 100644 index 00000000000..c5b700ba03e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/trace/constants.js @@ -0,0 +1,203 @@ +/** + * Contains predefined constants for the trace span name in next/server. + * + * Currently, next/server/tracer is internal implementation only for tracking + * next.js's implementation only with known span names defined here. + **/ // eslint typescript has a bug with TS enums +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppRenderSpan: null, + AppRouteRouteHandlersSpan: null, + BaseServerSpan: null, + LoadComponentsSpan: null, + LogSpanAllowList: null, + MiddlewareSpan: null, + NextNodeServerSpan: null, + NextServerSpan: null, + NextVanillaSpanAllowlist: null, + NodeSpan: null, + RenderSpan: null, + ResolveMetadataSpan: null, + RouterSpan: null, + StartServerSpan: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppRenderSpan: function() { + return AppRenderSpan; + }, + AppRouteRouteHandlersSpan: function() { + return AppRouteRouteHandlersSpan; + }, + BaseServerSpan: function() { + return BaseServerSpan; + }, + LoadComponentsSpan: function() { + return LoadComponentsSpan; + }, + LogSpanAllowList: function() { + return LogSpanAllowList; + }, + MiddlewareSpan: function() { + return MiddlewareSpan; + }, + NextNodeServerSpan: function() { + return NextNodeServerSpan; + }, + NextServerSpan: function() { + return NextServerSpan; + }, + NextVanillaSpanAllowlist: function() { + return NextVanillaSpanAllowlist; + }, + NodeSpan: function() { + return NodeSpan; + }, + RenderSpan: function() { + return RenderSpan; + }, + ResolveMetadataSpan: function() { + return ResolveMetadataSpan; + }, + RouterSpan: function() { + return RouterSpan; + }, + StartServerSpan: function() { + return StartServerSpan; + } +}); +var BaseServerSpan = /*#__PURE__*/ function(BaseServerSpan) { + BaseServerSpan["handleRequest"] = "BaseServer.handleRequest"; + BaseServerSpan["run"] = "BaseServer.run"; + BaseServerSpan["pipe"] = "BaseServer.pipe"; + BaseServerSpan["getStaticHTML"] = "BaseServer.getStaticHTML"; + BaseServerSpan["render"] = "BaseServer.render"; + BaseServerSpan["renderToResponseWithComponents"] = "BaseServer.renderToResponseWithComponents"; + BaseServerSpan["renderToResponse"] = "BaseServer.renderToResponse"; + BaseServerSpan["renderToHTML"] = "BaseServer.renderToHTML"; + BaseServerSpan["renderError"] = "BaseServer.renderError"; + BaseServerSpan["renderErrorToResponse"] = "BaseServer.renderErrorToResponse"; + BaseServerSpan["renderErrorToHTML"] = "BaseServer.renderErrorToHTML"; + BaseServerSpan["render404"] = "BaseServer.render404"; + return BaseServerSpan; +}(BaseServerSpan || {}); +var LoadComponentsSpan = /*#__PURE__*/ function(LoadComponentsSpan) { + LoadComponentsSpan["loadDefaultErrorComponents"] = "LoadComponents.loadDefaultErrorComponents"; + LoadComponentsSpan["loadComponents"] = "LoadComponents.loadComponents"; + return LoadComponentsSpan; +}(LoadComponentsSpan || {}); +var NextServerSpan = /*#__PURE__*/ function(NextServerSpan) { + NextServerSpan["getRequestHandler"] = "NextServer.getRequestHandler"; + NextServerSpan["getRequestHandlerWithMetadata"] = "NextServer.getRequestHandlerWithMetadata"; + NextServerSpan["getServer"] = "NextServer.getServer"; + NextServerSpan["getServerRequestHandler"] = "NextServer.getServerRequestHandler"; + NextServerSpan["createServer"] = "createServer.createServer"; + return NextServerSpan; +}(NextServerSpan || {}); +var NextNodeServerSpan = /*#__PURE__*/ function(NextNodeServerSpan) { + NextNodeServerSpan["compression"] = "NextNodeServer.compression"; + NextNodeServerSpan["getBuildId"] = "NextNodeServer.getBuildId"; + NextNodeServerSpan["createComponentTree"] = "NextNodeServer.createComponentTree"; + NextNodeServerSpan["clientComponentLoading"] = "NextNodeServer.clientComponentLoading"; + NextNodeServerSpan["getLayoutOrPageModule"] = "NextNodeServer.getLayoutOrPageModule"; + NextNodeServerSpan["generateStaticRoutes"] = "NextNodeServer.generateStaticRoutes"; + NextNodeServerSpan["generateFsStaticRoutes"] = "NextNodeServer.generateFsStaticRoutes"; + NextNodeServerSpan["generatePublicRoutes"] = "NextNodeServer.generatePublicRoutes"; + NextNodeServerSpan["generateImageRoutes"] = "NextNodeServer.generateImageRoutes.route"; + NextNodeServerSpan["sendRenderResult"] = "NextNodeServer.sendRenderResult"; + NextNodeServerSpan["proxyRequest"] = "NextNodeServer.proxyRequest"; + NextNodeServerSpan["runApi"] = "NextNodeServer.runApi"; + NextNodeServerSpan["render"] = "NextNodeServer.render"; + NextNodeServerSpan["renderHTML"] = "NextNodeServer.renderHTML"; + NextNodeServerSpan["imageOptimizer"] = "NextNodeServer.imageOptimizer"; + NextNodeServerSpan["getPagePath"] = "NextNodeServer.getPagePath"; + NextNodeServerSpan["getRoutesManifest"] = "NextNodeServer.getRoutesManifest"; + NextNodeServerSpan["findPageComponents"] = "NextNodeServer.findPageComponents"; + NextNodeServerSpan["getFontManifest"] = "NextNodeServer.getFontManifest"; + NextNodeServerSpan["getServerComponentManifest"] = "NextNodeServer.getServerComponentManifest"; + NextNodeServerSpan["getRequestHandler"] = "NextNodeServer.getRequestHandler"; + NextNodeServerSpan["renderToHTML"] = "NextNodeServer.renderToHTML"; + NextNodeServerSpan["renderError"] = "NextNodeServer.renderError"; + NextNodeServerSpan["renderErrorToHTML"] = "NextNodeServer.renderErrorToHTML"; + NextNodeServerSpan["render404"] = "NextNodeServer.render404"; + NextNodeServerSpan["startResponse"] = "NextNodeServer.startResponse"; + // nested inner span, does not require parent scope name + NextNodeServerSpan["route"] = "route"; + NextNodeServerSpan["onProxyReq"] = "onProxyReq"; + NextNodeServerSpan["apiResolver"] = "apiResolver"; + NextNodeServerSpan["internalFetch"] = "internalFetch"; + return NextNodeServerSpan; +}(NextNodeServerSpan || {}); +var StartServerSpan = /*#__PURE__*/ function(StartServerSpan) { + StartServerSpan["startServer"] = "startServer.startServer"; + return StartServerSpan; +}(StartServerSpan || {}); +var RenderSpan = /*#__PURE__*/ function(RenderSpan) { + RenderSpan["getServerSideProps"] = "Render.getServerSideProps"; + RenderSpan["getStaticProps"] = "Render.getStaticProps"; + RenderSpan["renderToString"] = "Render.renderToString"; + RenderSpan["renderDocument"] = "Render.renderDocument"; + RenderSpan["createBodyResult"] = "Render.createBodyResult"; + return RenderSpan; +}(RenderSpan || {}); +var AppRenderSpan = /*#__PURE__*/ function(AppRenderSpan) { + AppRenderSpan["renderToString"] = "AppRender.renderToString"; + AppRenderSpan["renderToReadableStream"] = "AppRender.renderToReadableStream"; + AppRenderSpan["getBodyResult"] = "AppRender.getBodyResult"; + AppRenderSpan["fetch"] = "AppRender.fetch"; + return AppRenderSpan; +}(AppRenderSpan || {}); +var RouterSpan = /*#__PURE__*/ function(RouterSpan) { + RouterSpan["executeRoute"] = "Router.executeRoute"; + return RouterSpan; +}(RouterSpan || {}); +var NodeSpan = /*#__PURE__*/ function(NodeSpan) { + NodeSpan["runHandler"] = "Node.runHandler"; + return NodeSpan; +}(NodeSpan || {}); +var AppRouteRouteHandlersSpan = /*#__PURE__*/ function(AppRouteRouteHandlersSpan) { + AppRouteRouteHandlersSpan["runHandler"] = "AppRouteRouteHandlers.runHandler"; + return AppRouteRouteHandlersSpan; +}(AppRouteRouteHandlersSpan || {}); +var ResolveMetadataSpan = /*#__PURE__*/ function(ResolveMetadataSpan) { + ResolveMetadataSpan["generateMetadata"] = "ResolveMetadata.generateMetadata"; + ResolveMetadataSpan["generateViewport"] = "ResolveMetadata.generateViewport"; + return ResolveMetadataSpan; +}(ResolveMetadataSpan || {}); +var MiddlewareSpan = /*#__PURE__*/ function(MiddlewareSpan) { + MiddlewareSpan["execute"] = "Middleware.execute"; + return MiddlewareSpan; +}(MiddlewareSpan || {}); +const NextVanillaSpanAllowlist = new Set([ + "Middleware.execute", + "BaseServer.handleRequest", + "Render.getServerSideProps", + "Render.getStaticProps", + "AppRender.fetch", + "AppRender.getBodyResult", + "Render.renderDocument", + "Node.runHandler", + "AppRouteRouteHandlers.runHandler", + "ResolveMetadata.generateMetadata", + "ResolveMetadata.generateViewport", + "NextNodeServer.createComponentTree", + "NextNodeServer.findPageComponents", + "NextNodeServer.getLayoutOrPageModule", + "NextNodeServer.startResponse", + "NextNodeServer.clientComponentLoading" +]); +const LogSpanAllowList = new Set([ + "NextNodeServer.findPageComponents", + "NextNodeServer.createComponentTree", + "NextNodeServer.clientComponentLoading" +]); + +//# sourceMappingURL=constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/trace/tracer.js b/cli/app/node_modules/next/dist/server/lib/trace/tracer.js new file mode 100644 index 00000000000..9de215ce199 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/trace/tracer.js @@ -0,0 +1,280 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + BubbledError: null, + SpanKind: null, + SpanStatusCode: null, + getTracer: null, + isBubbledError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + BubbledError: function() { + return BubbledError; + }, + SpanKind: function() { + return SpanKind; + }, + SpanStatusCode: function() { + return SpanStatusCode; + }, + getTracer: function() { + return getTracer; + }, + isBubbledError: function() { + return isBubbledError; + } +}); +const _constants = require("./constants"); +const _isthenable = require("../../../shared/lib/is-thenable"); +const NEXT_OTEL_PERFORMANCE_PREFIX = process.env.NEXT_OTEL_PERFORMANCE_PREFIX; +let api; +// we want to allow users to use their own version of @opentelemetry/api if they +// want to, so we try to require it first, and if it fails we fall back to the +// version that is bundled with Next.js +// this is because @opentelemetry/api has to be synced with the version of +// @opentelemetry/tracing that is used, and we don't want to force users to use +// the version that is bundled with Next.js. +// the API is ~stable, so this should be fine +if (process.env.NEXT_RUNTIME === 'edge') { + api = require('@opentelemetry/api'); +} else { + try { + api = require('@opentelemetry/api'); + } catch (err) { + api = require('next/dist/compiled/@opentelemetry/api'); + } +} +const { context, propagation, trace, SpanStatusCode, SpanKind, ROOT_CONTEXT } = api; +class BubbledError extends Error { + constructor(bubble, result){ + super(), this.bubble = bubble, this.result = result; + } +} +function isBubbledError(error) { + if (typeof error !== 'object' || error === null) return false; + return error instanceof BubbledError; +} +const closeSpanWithError = (span, error)=>{ + if (isBubbledError(error) && error.bubble) { + span.setAttribute('next.bubble', true); + } else { + if (error) { + span.recordException(error); + span.setAttribute('error.type', error.name); + } + span.setStatus({ + code: SpanStatusCode.ERROR, + message: error == null ? void 0 : error.message + }); + } + span.end(); +}; +/** we use this map to propagate attributes from nested spans to the top span */ const rootSpanAttributesStore = new Map(); +const rootSpanIdKey = api.createContextKey('next.rootSpanId'); +let lastSpanId = 0; +const getSpanId = ()=>lastSpanId++; +const clientTraceDataSetter = { + set (carrier, key, value) { + carrier.push({ + key, + value + }); + } +}; +class NextTracerImpl { + /** + * Returns an instance to the trace with configured name. + * Since wrap / trace can be defined in any place prior to actual trace subscriber initialization, + * This should be lazily evaluated. + */ getTracerInstance() { + return trace.getTracer('next.js', '0.0.1'); + } + getContext() { + return context; + } + getTracePropagationData() { + const activeContext = context.active(); + const entries = []; + propagation.inject(activeContext, entries, clientTraceDataSetter); + return entries; + } + getActiveScopeSpan() { + return trace.getSpan(context == null ? void 0 : context.active()); + } + withPropagatedContext(carrier, fn, getter, force = false) { + const activeContext = context.active(); + if (force) { + const remoteContext = propagation.extract(ROOT_CONTEXT, carrier, getter); + if (trace.getSpanContext(remoteContext)) { + return context.with(remoteContext, fn); + } + // Preserve the current active span while still merging any extracted + // baggage/context values from the carrier. + const mergedContext = propagation.extract(activeContext, carrier, getter); + return context.with(mergedContext, fn); + } + if (trace.getSpanContext(activeContext)) { + // Active span is already set, too late to propagate. + return fn(); + } + const remoteContext = propagation.extract(activeContext, carrier, getter); + return context.with(remoteContext, fn); + } + trace(...args) { + const [type, fnOrOptions, fnOrEmpty] = args; + // coerce options form overload + const { fn, options } = typeof fnOrOptions === 'function' ? { + fn: fnOrOptions, + options: {} + } : { + fn: fnOrEmpty, + options: { + ...fnOrOptions + } + }; + const spanName = options.spanName ?? type; + if (!_constants.NextVanillaSpanAllowlist.has(type) && process.env.NEXT_OTEL_VERBOSE !== '1' || options.hideSpan) { + return fn(); + } + // Trying to get active scoped span to assign parent. If option specifies parent span manually, will try to use it. + let spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan()); + if (!spanContext) { + spanContext = (context == null ? void 0 : context.active()) ?? ROOT_CONTEXT; + } + // Check if there's already a root span in the store for this trace + // We are intentionally not checking whether there is an active context + // from outside of nextjs to ensure that we can provide the same level + // of telemetry when using a custom server + const existingRootSpanId = spanContext.getValue(rootSpanIdKey); + const isRootSpan = typeof existingRootSpanId !== 'number' || !rootSpanAttributesStore.has(existingRootSpanId); + const spanId = getSpanId(); + options.attributes = { + 'next.span_name': spanName, + 'next.span_type': type, + ...options.attributes + }; + return context.with(spanContext.setValue(rootSpanIdKey, spanId), ()=>this.getTracerInstance().startActiveSpan(spanName, options, (span)=>{ + let startTime; + if (NEXT_OTEL_PERFORMANCE_PREFIX && type && _constants.LogSpanAllowList.has(type)) { + startTime = 'performance' in globalThis && 'measure' in performance ? globalThis.performance.now() : undefined; + } + let cleanedUp = false; + const onCleanup = ()=>{ + if (cleanedUp) return; + cleanedUp = true; + rootSpanAttributesStore.delete(spanId); + if (startTime) { + performance.measure(`${NEXT_OTEL_PERFORMANCE_PREFIX}:next-${(type.split('.').pop() || '').replace(/[A-Z]/g, (match)=>'-' + match.toLowerCase())}`, { + start: startTime, + end: performance.now() + }); + } + }; + if (isRootSpan) { + rootSpanAttributesStore.set(spanId, new Map(Object.entries(options.attributes ?? {}))); + } + if (fn.length > 1) { + try { + return fn(span, (err)=>closeSpanWithError(span, err)); + } catch (err) { + closeSpanWithError(span, err); + throw err; + } finally{ + onCleanup(); + } + } + try { + const result = fn(span); + if ((0, _isthenable.isThenable)(result)) { + // If there's error make sure it throws + return result.then((res)=>{ + span.end(); + // Need to pass down the promise result, + // it could be react stream response with error { error, stream } + return res; + }).catch((err)=>{ + closeSpanWithError(span, err); + throw err; + }).finally(onCleanup); + } else { + span.end(); + onCleanup(); + } + return result; + } catch (err) { + closeSpanWithError(span, err); + onCleanup(); + throw err; + } + })); + } + wrap(...args) { + const tracer = this; + const [name, options, fn] = args.length === 3 ? args : [ + args[0], + {}, + args[1] + ]; + if (!_constants.NextVanillaSpanAllowlist.has(name) && process.env.NEXT_OTEL_VERBOSE !== '1') { + return fn; + } + return function() { + let optionsObj = options; + if (typeof optionsObj === 'function' && typeof fn === 'function') { + optionsObj = optionsObj.apply(this, arguments); + } + const lastArgId = arguments.length - 1; + const cb = arguments[lastArgId]; + if (typeof cb === 'function') { + const scopeBoundCb = tracer.getContext().bind(context.active(), cb); + return tracer.trace(name, optionsObj, (_span, done)=>{ + arguments[lastArgId] = function(err) { + done == null ? void 0 : done(err); + return scopeBoundCb.apply(this, arguments); + }; + return fn.apply(this, arguments); + }); + } else { + return tracer.trace(name, optionsObj, ()=>fn.apply(this, arguments)); + } + }; + } + startSpan(...args) { + const [type, options] = args; + const spanContext = this.getSpanContext((options == null ? void 0 : options.parentSpan) ?? this.getActiveScopeSpan()); + return this.getTracerInstance().startSpan(type, options, spanContext); + } + getSpanContext(parentSpan) { + const spanContext = parentSpan ? trace.setSpan(context.active(), parentSpan) : undefined; + return spanContext; + } + getRootSpanAttributes() { + const spanId = context.active().getValue(rootSpanIdKey); + return rootSpanAttributesStore.get(spanId); + } + setRootSpanAttribute(key, value) { + const spanId = context.active().getValue(rootSpanIdKey); + const attributes = rootSpanAttributesStore.get(spanId); + if (attributes && !attributes.has(key)) { + attributes.set(key, value); + } + } + withSpan(span, fn) { + const spanContext = trace.setSpan(context.active(), span); + return context.with(spanContext, fn); + } +} +const getTracer = (()=>{ + const tracer = new NextTracerImpl(); + return ()=>tracer; +})(); + +//# sourceMappingURL=tracer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/trace/utils.js b/cli/app/node_modules/next/dist/server/lib/trace/utils.js new file mode 100644 index 00000000000..a9b70015b68 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/trace/utils.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getTracedMetadata", { + enumerable: true, + get: function() { + return getTracedMetadata; + } +}); +function getTracedMetadata(traceData, clientTraceMetadata) { + if (!clientTraceMetadata) return undefined; + return traceData.filter(({ key })=>clientTraceMetadata.includes(key)); +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/lib/utils.js b/cli/app/node_modules/next/dist/server/lib/utils.js new file mode 100644 index 00000000000..1542d96d6c8 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/lib/utils.js @@ -0,0 +1,278 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + RESTART_EXIT_CODE: null, + formatDebugAddress: null, + formatNodeOptions: null, + getFormattedNodeOptionsWithoutInspect: null, + getMaxOldSpaceSize: null, + getNodeDebugType: null, + getNodeOptionsArgs: null, + getParsedDebugAddress: null, + getParsedNodeOptions: null, + getParsedNodeOptionsWithoutInspect: null, + parseValidPositiveInteger: null, + printAndExit: null, + tokenizeArgs: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + RESTART_EXIT_CODE: function() { + return RESTART_EXIT_CODE; + }, + formatDebugAddress: function() { + return formatDebugAddress; + }, + formatNodeOptions: function() { + return formatNodeOptions; + }, + getFormattedNodeOptionsWithoutInspect: function() { + return getFormattedNodeOptionsWithoutInspect; + }, + getMaxOldSpaceSize: function() { + return getMaxOldSpaceSize; + }, + getNodeDebugType: function() { + return getNodeDebugType; + }, + getNodeOptionsArgs: function() { + return getNodeOptionsArgs; + }, + getParsedDebugAddress: function() { + return getParsedDebugAddress; + }, + getParsedNodeOptions: function() { + return getParsedNodeOptions; + }, + getParsedNodeOptionsWithoutInspect: function() { + return getParsedNodeOptionsWithoutInspect; + }, + parseValidPositiveInteger: function() { + return parseValidPositiveInteger; + }, + printAndExit: function() { + return printAndExit; + }, + tokenizeArgs: function() { + return tokenizeArgs; + } +}); +const _nodeutil = require("node:util"); +const _commander = require("next/dist/compiled/commander"); +function printAndExit(message, code = 1) { + if (code === 0) { + console.log(message); + } else { + console.error(message); + } + return process.exit(code); +} +const parseNodeArgs = (args)=>{ + const { values, tokens } = (0, _nodeutil.parseArgs)({ + args, + strict: false, + tokens: true + }); + // For the `NODE_OPTIONS`, we support arguments with values without the `=` + // sign. We need to parse them manually. + let orphan = null; + for(let i = 0; i < tokens.length; i++){ + const token = tokens[i]; + if (token.kind === 'option-terminator') { + break; + } + // When we encounter an option, if it's value is undefined, we should check + // to see if the following tokens are positional parameters. If they are, + // then the option is orphaned, and we can assign it. + if (token.kind === 'option') { + orphan = typeof token.value === 'undefined' ? token : null; + continue; + } + // If the token isn't a positional one, then we can't assign it to the found + // orphaned option. + if (token.kind !== 'positional') { + orphan = null; + continue; + } + // If we don't have an orphan, then we can skip this token. + if (!orphan) { + continue; + } + // If the token is a positional one, and it has a value, so add it to the + // values object. If it already exists, append it with a space. + if (orphan.name in values && typeof values[orphan.name] === 'string') { + values[orphan.name] += ` ${token.value}`; + } else { + values[orphan.name] = token.value; + } + } + return values; +}; +const tokenizeArgs = (input)=>{ + let args = []; + let isInString = false; + let willStartNewArg = true; + for(let i = 0; i < input.length; i++){ + let char = input[i]; + // Skip any escaped characters in strings. + if (char === '\\' && isInString) { + // Ensure we don't have an escape character at the end. + if (input.length === i + 1) { + throw Object.defineProperty(new Error('Invalid escape character at the end.'), "__NEXT_ERROR_CODE", { + value: "E168", + enumerable: false, + configurable: true + }); + } + // Skip the next character. + char = input[++i]; + } else if (char === ' ' && !isInString) { + willStartNewArg = true; + continue; + } else if (char === '"') { + isInString = !isInString; + continue; + } + // If we're starting a new argument, we should add it to the array. + if (willStartNewArg) { + args.push(char); + willStartNewArg = false; + } else { + args[args.length - 1] += char; + } + } + if (isInString) { + throw Object.defineProperty(new Error('Unterminated string'), "__NEXT_ERROR_CODE", { + value: "E208", + enumerable: false, + configurable: true + }); + } + return args; +}; +const getNodeOptionsArgs = ()=>{ + if (!process.env.NODE_OPTIONS) return []; + return tokenizeArgs(process.env.NODE_OPTIONS); +}; +const formatDebugAddress = ({ host, port })=>{ + if (host) return `${host}:${port}`; + return `${port}`; +}; +const getParsedDebugAddress = (address)=>{ + if (!address || typeof address !== 'string') { + return { + host: undefined, + port: 9229 + }; + } + // The address is in the form of `[host:]port`. Let's parse the address. + if (address.includes(':')) { + const [host, port] = address.split(':'); + return { + host, + port: parseInt(port, 10) + }; + } + return { + host: undefined, + port: parseInt(address, 10) + }; +}; +/** + * Node.js CLI flags that are not allowed in NODE_OPTIONS and must be + * passed as direct CLI arguments via execArgv. + * This set is the difference between all Node.js CLI flags and the ones **not** + * allowed in NODE_OPTIONS, as listed in the Node.js documentation: + * https://nodejs.org/api/cli.html#node_optionsoptions + * + * It is not exhaustive since not all options make sense for Next.js (e.g. --test) + */ const EXEC_ARGV_ONLY_OPTIONS = new Set([ + 'experimental-network-inspection', + 'experimental-storage-inspection', + 'experimental-worker-inspection', + 'experimental-inspector-network-resource' +]); +function formatArg(key, value) { + if (value === true) { + return `--${key}`; + } + if (value) { + return `--${key}=${// Values with spaces need to be quoted. We use JSON.stringify to + // also escape any nested quotes. + value.includes(' ') && !value.startsWith('"') ? JSON.stringify(value) : value}`; + } + return null; +} +function formatNodeOptions(args) { + const nodeOptionsParts = []; + const execArgv = []; + for (const [key, value] of Object.entries(args)){ + const formatted = formatArg(key, value); + if (formatted === null) continue; + if (EXEC_ARGV_ONLY_OPTIONS.has(key)) { + execArgv.push(formatted); + } else { + nodeOptionsParts.push(formatted); + } + } + return { + nodeOptions: nodeOptionsParts.join(' '), + execArgv + }; +} +function getParsedNodeOptions() { + const args = [ + ...process.execArgv, + ...getNodeOptionsArgs() + ]; + if (args.length === 0) return {}; + return parseNodeArgs(args); +} +function getParsedNodeOptionsWithoutInspect() { + const args = getNodeOptionsArgs(); + if (args.length === 0) return {}; + const parsed = parseNodeArgs(args); + // Remove inspect options. + delete parsed.inspect; + delete parsed['inspect-brk']; + delete parsed['inspect_brk']; + return parsed; +} +function getFormattedNodeOptionsWithoutInspect() { + const args = getParsedNodeOptionsWithoutInspect(); + if (Object.keys(args).length === 0) return ''; + return formatNodeOptions(args).nodeOptions; +} +function parseValidPositiveInteger(value) { + const parsedValue = parseInt(value, 10); + if (isNaN(parsedValue) || !isFinite(parsedValue) || parsedValue < 0) { + throw new _commander.InvalidArgumentError(`'${value}' is not a non-negative number.`); + } + return parsedValue; +} +const RESTART_EXIT_CODE = 77; +function getNodeDebugType(nodeOptions) { + if (nodeOptions.inspect) { + return 'inspect'; + } + if (nodeOptions['inspect-brk'] || nodeOptions['inspect_brk']) { + return 'inspect-brk'; + } +} +function getMaxOldSpaceSize() { + const args = getNodeOptionsArgs(); + if (args.length === 0) return; + const parsed = parseNodeArgs(args); + const size = parsed['max-old-space-size'] || parsed['max_old_space_size']; + if (!size || typeof size !== 'string') return; + return parseInt(size, 10); +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/load-components.js b/cli/app/node_modules/next/dist/server/load-components.js new file mode 100644 index 00000000000..a391899eba5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/load-components.js @@ -0,0 +1,179 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + evalManifestWithRetries: null, + loadComponents: null, + loadManifestWithRetries: null, + tryLoadManifestWithRetries: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + evalManifestWithRetries: function() { + return evalManifestWithRetries; + }, + loadComponents: function() { + return loadComponents; + }, + loadManifestWithRetries: function() { + return loadManifestWithRetries; + }, + tryLoadManifestWithRetries: function() { + return tryLoadManifestWithRetries; + } +}); +const _constants = require("../shared/lib/constants"); +const _path = require("path"); +const _require = require("./require"); +const _interopdefault = require("../lib/interop-default"); +const _tracer = require("./lib/trace/tracer"); +const _constants1 = require("./lib/trace/constants"); +const _loadmanifestexternal = require("./load-manifest.external"); +const _wait = require("../lib/wait"); +const _manifestssingleton = require("./app-render/manifests-singleton"); +const _normalizepagepath = require("../shared/lib/page-path/normalize-page-path"); +const _ismetadataroute = require("../lib/metadata/is-metadata-route"); +async function loadManifestWithRetries(manifestPath, attempts = 3) { + while(true){ + try { + return (0, _loadmanifestexternal.loadManifest)(manifestPath); + } catch (err) { + attempts--; + if (attempts <= 0) throw err; + await (0, _wait.wait)(100); + } + } +} +async function tryLoadManifestWithRetries(manifestPath, attempts = 3) { + try { + return await loadManifestWithRetries(manifestPath, attempts); + } catch (err) { + return undefined; + } +} +async function evalManifestWithRetries(manifestPath, attempts = 3) { + while(true){ + try { + return (0, _loadmanifestexternal.evalManifest)(manifestPath); + } catch (err) { + attempts--; + if (attempts <= 0) throw err; + await (0, _wait.wait)(100); + } + } +} +async function tryLoadClientReferenceManifest(manifestPath, entryName, attempts) { + try { + const context = await evalManifestWithRetries(manifestPath, attempts); + return context.__RSC_MANIFEST[entryName]; + } catch (err) { + return undefined; + } +} +async function loadComponentsImpl({ distDir, page, isAppPath, isDev, sriEnabled, // When route modules are used, which is the case for the server calls to loadComponents, it no longer needs manifest to be loaded here. +// Static generation still needs the manifests to be loaded here. +// In the future static generation will also use route modules, and we will remove this flag. +needsManifestsForLegacyReasons }) { + let DocumentMod = {}; + let AppMod = {}; + if (!isAppPath) { + ; + [DocumentMod, AppMod] = await Promise.all([ + (0, _require.requirePage)('/_document', distDir, false), + (0, _require.requirePage)('/_app', distDir, false) + ]); + } + if (needsManifestsForLegacyReasons) { + // In dev mode we retry loading a manifest file to handle a race condition + // that can occur while app and pages are compiling at the same time, and the + // build-manifest is still being written to disk while an app path is + // attempting to load. + const manifestLoadAttempts = isDev ? 3 : 1; + let reactLoadableManifestPath; + if (!process.env.TURBOPACK) { + reactLoadableManifestPath = (0, _path.join)(/* turbopackIgnore: true */ distDir, _constants.REACT_LOADABLE_MANIFEST); + } else if (isAppPath) { + reactLoadableManifestPath = (0, _path.join)(/* turbopackIgnore: true */ distDir, 'server', 'app', page, _constants.REACT_LOADABLE_MANIFEST); + } else { + reactLoadableManifestPath = (0, _path.join)(/* turbopackIgnore: true */ distDir, 'server', 'pages', (0, _normalizepagepath.normalizePagePath)(page), _constants.REACT_LOADABLE_MANIFEST); + } + // Make sure to avoid loading the manifest for static metadata routes for better performance. + const hasClientManifest = !(0, _ismetadataroute.isStaticMetadataRoute)(page); + // Load the manifest files first + // + // Loading page-specific manifests shouldn't throw an error if the manifest couldn't be found, so + // that the `requirePage` call below will throw the correct error in that case + // (a `PageNotFoundError`). + const [buildManifest, reactLoadableManifest, dynamicCssManifest, clientReferenceManifest, serverActionsManifest, subresourceIntegrityManifest] = await Promise.all([ + loadManifestWithRetries((0, _path.join)(/* turbopackIgnore: true */ distDir, _constants.BUILD_MANIFEST), manifestLoadAttempts), + tryLoadManifestWithRetries(reactLoadableManifestPath, manifestLoadAttempts), + // This manifest will only exist in Pages dir && Production && Webpack. + isAppPath || process.env.TURBOPACK ? undefined : loadManifestWithRetries((0, _path.join)(/* turbopackIgnore: true */ distDir, `${_constants.DYNAMIC_CSS_MANIFEST}.json`), manifestLoadAttempts).catch(()=>undefined), + isAppPath && hasClientManifest ? tryLoadClientReferenceManifest((0, _path.join)(/* turbopackIgnore: true */ distDir, 'server', 'app', page.replace(/%5F/g, '_') + '_' + _constants.CLIENT_REFERENCE_MANIFEST + '.js'), page.replace(/%5F/g, '_'), manifestLoadAttempts) : undefined, + isAppPath ? loadManifestWithRetries((0, _path.join)(/* turbopackIgnore: true */ distDir, 'server', _constants.SERVER_REFERENCE_MANIFEST + '.json'), manifestLoadAttempts).catch(()=>null) : null, + sriEnabled ? loadManifestWithRetries((0, _path.join)(/* turbopackIgnore: true */ distDir, 'server', _constants.SUBRESOURCE_INTEGRITY_MANIFEST + '.json')).catch(()=>undefined) : undefined + ]); + // Before requiring the actual page module, we have to set the reference + // manifests to our global store so Server Action's encryption util can access + // to them at the top level of the page module. + if (serverActionsManifest && clientReferenceManifest) { + (0, _manifestssingleton.setManifestsSingleton)({ + page, + clientReferenceManifest, + serverActionsManifest + }); + } + const ComponentMod = await (0, _require.requirePage)(page, distDir, isAppPath); + const Component = (0, _interopdefault.interopDefault)(ComponentMod); + const Document = (0, _interopdefault.interopDefault)(DocumentMod); + const App = (0, _interopdefault.interopDefault)(AppMod); + const { getServerSideProps, getStaticProps, getStaticPaths, routeModule } = ComponentMod; + return { + // @ts-expect-error this is indeed `{} || AppType` and not always `AppType` + App, + // @ts-expect-error this is indeed `{} || DocumentType` and not always `DocumentType` + Document, + Component, + buildManifest, + subresourceIntegrityManifest, + reactLoadableManifest: reactLoadableManifest || {}, + dynamicCssManifest, + pageConfig: ComponentMod.config || {}, + ComponentMod, + getServerSideProps, + getStaticProps, + getStaticPaths, + isAppPath, + page, + routeModule + }; + } else { + const ComponentMod = await (0, _require.requirePage)(page, distDir, isAppPath); + const Component = (0, _interopdefault.interopDefault)(ComponentMod); + const Document = (0, _interopdefault.interopDefault)(DocumentMod); + const App = (0, _interopdefault.interopDefault)(AppMod); + const { getServerSideProps, getStaticProps, getStaticPaths, routeModule } = ComponentMod; + return { + App, + Document, + Component, + pageConfig: ComponentMod.config || {}, + ComponentMod, + getServerSideProps, + getStaticProps, + getStaticPaths, + isAppPath, + page, + routeModule + }; // temporary `as any` to make TypeScript not fail so that the tests will run on the PR. + } +} +const loadComponents = (0, _tracer.getTracer)().wrap(_constants1.LoadComponentsSpan.loadComponents, loadComponentsImpl); + +//# sourceMappingURL=load-components.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/load-default-error-components.js b/cli/app/node_modules/next/dist/server/load-default-error-components.js new file mode 100644 index 00000000000..155519535f3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/load-default-error-components.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "loadDefaultErrorComponents", { + enumerable: true, + get: function() { + return loadDefaultErrorComponents; + } +}); +const _constants = require("../shared/lib/constants"); +const _path = require("path"); +const _interopdefault = require("../lib/interop-default"); +const _tracer = require("./lib/trace/tracer"); +const _constants1 = require("./lib/trace/constants"); +const _loadcomponents = require("./load-components"); +async function loadDefaultErrorComponentsImpl(distDir) { + // eslint-disable-next-line @next/internal/typechecked-require -- Why not relative imports? + const Document = (0, _interopdefault.interopDefault)(require('next/dist/pages/_document')); + // eslint-disable-next-line @next/internal/typechecked-require -- Why not relative imports? + const AppMod = require('next/dist/pages/_app'); + const App = (0, _interopdefault.interopDefault)(AppMod); + // Load the compiled route module for this builtin error. + // TODO: (wyattjoh) replace this with just exporting the route module when the transition is complete + const ComponentMod = require('./route-modules/pages/builtin/_error'); + const Component = ComponentMod.routeModule.userland.default; + return { + App, + Document, + Component, + pageConfig: {}, + buildManifest: await (0, _loadcomponents.loadManifestWithRetries)((0, _path.join)(distDir, `fallback-${_constants.BUILD_MANIFEST}`)), + reactLoadableManifest: {}, + ComponentMod, + page: '/_error', + routeModule: ComponentMod.routeModule + }; +} +const loadDefaultErrorComponents = (0, _tracer.getTracer)().wrap(_constants1.LoadComponentsSpan.loadDefaultErrorComponents, loadDefaultErrorComponentsImpl); + +//# sourceMappingURL=load-default-error-components.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/load-manifest.external.js b/cli/app/node_modules/next/dist/server/load-manifest.external.js new file mode 100644 index 00000000000..40811b698e8 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/load-manifest.external.js @@ -0,0 +1,117 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + clearManifestCache: null, + evalManifest: null, + loadManifest: null, + loadManifestFromRelativePath: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + clearManifestCache: function() { + return clearManifestCache; + }, + evalManifest: function() { + return evalManifest; + }, + loadManifest: function() { + return loadManifest; + }, + loadManifestFromRelativePath: function() { + return loadManifestFromRelativePath; + } +}); +const _path = require("path"); +const _fs = require("fs"); +const _vm = require("vm"); +const _deepfreeze = require("../shared/lib/deep-freeze"); +const sharedCache = new Map(); +function loadManifest(path, shouldCache = true, cache = sharedCache, skipParse = false, handleMissing) { + const cached = shouldCache && cache.get(path); + if (cached) { + return cached; + } + let manifest; + if (handleMissing) { + try { + manifest = (0, _fs.readFileSync)(/* turbopackIgnore: true */ path, 'utf8'); + } catch (err) { + let result = {}; + cache.set(path, result); + return result; + } + } else { + manifest = (0, _fs.readFileSync)(/* turbopackIgnore: true */ path, 'utf8'); + } + if (!skipParse) { + manifest = JSON.parse(manifest); + // Freeze the manifest so it cannot be modified if we're caching it. + if (shouldCache) { + manifest = (0, _deepfreeze.deepFreeze)(manifest); + } + } + if (shouldCache) { + cache.set(path, manifest); + } + return manifest; +} +function evalManifest(path, shouldCache = true, cache = sharedCache, handleMissing) { + const cached = shouldCache && cache.get(path); + if (cached) { + return cached; + } + let content; + if (handleMissing) { + try { + content = (0, _fs.readFileSync)(/* turbopackIgnore: true */ path, 'utf8'); + } catch (err) { + let result = {}; + cache.set(path, result); + return result; + } + } else { + content = (0, _fs.readFileSync)(/* turbopackIgnore: true */ path, 'utf8'); + } + if (content.length === 0) { + throw Object.defineProperty(new Error('Manifest file is empty'), "__NEXT_ERROR_CODE", { + value: "E328", + enumerable: false, + configurable: true + }); + } + let contextObject = { + process: { + env: { + NEXT_DEPLOYMENT_ID: process.env.NEXT_DEPLOYMENT_ID + } + } + }; + (0, _vm.runInNewContext)(content, contextObject); + // Freeze the context object so it cannot be modified if we're caching it. + if (shouldCache) { + contextObject = (0, _deepfreeze.deepFreeze)(contextObject); + } + if (shouldCache) { + cache.set(path, contextObject); + } + return contextObject; +} +function loadManifestFromRelativePath({ projectDir, distDir, manifest, shouldCache, cache, skipParse, handleMissing, useEval }) { + const manifestPath = (0, _path.join)(/* turbopackIgnore: true */ projectDir, distDir, manifest); + if (useEval) { + return evalManifest(manifestPath, shouldCache, cache, handleMissing); + } + return loadManifest(manifestPath, shouldCache, cache, skipParse, handleMissing); +} +function clearManifestCache(path, cache = sharedCache) { + return cache.delete(path); +} + +//# sourceMappingURL=load-manifest.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/match-bundle.js b/cli/app/node_modules/next/dist/server/match-bundle.js new file mode 100644 index 00000000000..a9d5cf07e98 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/match-bundle.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return matchBundle; + } +}); +const _getroutefromassetpath = /*#__PURE__*/ _interop_require_default(require("../shared/lib/router/utils/get-route-from-asset-path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function matchBundle(regex, input) { + const result = regex.exec(input); + if (!result) { + return null; + } + return (0, _getroutefromassetpath.default)(`/${result[1]}`); +} + +//# sourceMappingURL=match-bundle.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/get-mcp-middleware.js b/cli/app/node_modules/next/dist/server/mcp/get-mcp-middleware.js new file mode 100644 index 00000000000..549395cb410 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/get-mcp-middleware.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getMcpMiddleware", { + enumerable: true, + get: function() { + return getMcpMiddleware; + } +}); +const _getorcreatemcpserver = require("./get-or-create-mcp-server"); +const _parsebody = require("../api-utils/node/parse-body"); +const _streamableHttp = require("next/dist/compiled/@modelcontextprotocol/sdk/server/streamableHttp"); +function getMcpMiddleware(options) { + return async function(req, res, next) { + const { pathname } = new URL(req.url || '', 'http://n'); + if (!pathname.startsWith('/_next/mcp')) { + return next(); + } + const mcpServer = (0, _getorcreatemcpserver.getOrCreateMcpServer)(options); + const transport = new _streamableHttp.StreamableHTTPServerTransport({ + sessionIdGenerator: undefined + }); + try { + res.on('close', ()=>{ + transport.close(); + }); + await mcpServer.connect(transport); + const parsedBody = await (0, _parsebody.parseBody)(req, 1024 * 1024) // 1MB limit + ; + await transport.handleRequest(req, res, parsedBody); + } catch (error) { + if (!res.headersSent) { + res.statusCode = 500; + res.setHeader('Content-Type', 'application/json; charset=utf-8'); + res.end(JSON.stringify({ + jsonrpc: '2.0', + error: { + code: -32000, + message: 'Internal server error' + }, + id: null + })); + } + } + }; +} + +//# sourceMappingURL=get-mcp-middleware.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js b/cli/app/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js new file mode 100644 index 00000000000..200cdb47466 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/get-or-create-mcp-server.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getOrCreateMcpServer", { + enumerable: true, + get: function() { + return getOrCreateMcpServer; + } +}); +const _mcp = require("next/dist/compiled/@modelcontextprotocol/sdk/server/mcp"); +const _getprojectmetadata = require("./tools/get-project-metadata"); +const _geterrors = require("./tools/get-errors"); +const _getpagemetadata = require("./tools/get-page-metadata"); +const _getlogs = require("./tools/get-logs"); +const _getserveractionbyid = require("./tools/get-server-action-by-id"); +const _getroutes = require("./tools/get-routes"); +let mcpServer; +const getOrCreateMcpServer = (options)=>{ + if (mcpServer) { + return mcpServer; + } + mcpServer = new _mcp.McpServer({ + name: 'Next.js MCP Server', + version: '0.2.0' + }); + (0, _getprojectmetadata.registerGetProjectMetadataTool)(mcpServer, options.projectPath, options.getDevServerUrl); + (0, _geterrors.registerGetErrorsTool)(mcpServer, options.sendHmrMessage, options.getActiveConnectionCount); + (0, _getpagemetadata.registerGetPageMetadataTool)(mcpServer, options.sendHmrMessage, options.getActiveConnectionCount); + (0, _getlogs.registerGetLogsTool)(mcpServer, options.distDir); + (0, _getserveractionbyid.registerGetActionByIdTool)(mcpServer, options.distDir); + (0, _getroutes.registerGetRoutesTool)(mcpServer, { + projectPath: options.projectPath, + nextConfig: options.nextConfig, + pagesDir: options.pagesDir, + appDir: options.appDir + }); + return mcpServer; +}; + +//# sourceMappingURL=get-or-create-mcp-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js b/cli/app/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js new file mode 100644 index 00000000000..bdb288a0bde --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/mcp-telemetry-tracker.js @@ -0,0 +1,82 @@ +/** + * Telemetry tracker for MCP tool call usage. + * Tracks invocation counts for each MCP tool to be reported via telemetry. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getMcpTelemetryUsage: null, + mcpTelemetryTracker: null, + recordMcpTelemetry: null, + resetMcpTelemetry: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getMcpTelemetryUsage: function() { + return getMcpTelemetryUsage; + }, + mcpTelemetryTracker: function() { + return mcpTelemetryTracker; + }, + recordMcpTelemetry: function() { + return recordMcpTelemetry; + }, + resetMcpTelemetry: function() { + return resetMcpTelemetry; + } +}); +class McpTelemetryTracker { + /** + * Record a tool call invocation + */ recordToolCall(toolName) { + const current = this.usageMap.get(toolName) || 0; + this.usageMap.set(toolName, current + 1); + } + /** + * Get all tool usages as an array + */ getUsages() { + return Array.from(this.usageMap.entries()).map(([featureName, count])=>({ + featureName, + invocationCount: count + })); + } + /** + * Reset all usage tracking + */ reset() { + this.usageMap.clear(); + } + /** + * Check if any tools have been called + */ hasUsage() { + return this.usageMap.size > 0; + } + constructor(){ + this.usageMap = new Map(); + } +} +const mcpTelemetryTracker = new McpTelemetryTracker(); +function getMcpTelemetryUsage() { + return mcpTelemetryTracker.getUsages(); +} +function resetMcpTelemetry() { + mcpTelemetryTracker.reset(); +} +function recordMcpTelemetry(telemetry) { + const mcpUsages = getMcpTelemetryUsage(); + if (mcpUsages.length === 0) { + return; + } + const { eventMcpToolUsage } = require('../../telemetry/events/build'); + const events = eventMcpToolUsage(mcpUsages); + for (const event of events){ + telemetry.record(event); + } +} + +//# sourceMappingURL=mcp-telemetry-tracker.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/get-errors.js b/cli/app/node_modules/next/dist/server/mcp/tools/get-errors.js new file mode 100644 index 00000000000..c3cc35a4af1 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/get-errors.js @@ -0,0 +1,114 @@ +/** + * MCP tool for retrieving error state from Next.js dev server. + * + * This tool provides comprehensive error reporting including: + * - Next.js global errors (e.g., next.config validation errors) + * - Browser runtime errors with source-mapped stack traces + * - Build errors from webpack/turbopack compilation + * + * For browser errors, it leverages the HMR infrastructure for server-to-browser communication. + * + * Flow: + * MCP client → server generates request ID → HMR message to browser → + * browser queries error overlay state → HMR response back → server performs source mapping → + * combined with global errors → formatted output. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handleErrorStateResponse: null, + registerGetErrorsTool: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handleErrorStateResponse: function() { + return handleErrorStateResponse; + }, + registerGetErrorsTool: function() { + return registerGetErrorsTool; + } +}); +const _hotreloadertypes = require("../../dev/hot-reloader-types"); +const _formaterrors = require("./utils/format-errors"); +const _browsercommunication = require("./utils/browser-communication"); +const _nextinstanceerrorstate = require("./next-instance-error-state"); +const _mcptelemetrytracker = require("../mcp-telemetry-tracker"); +function registerGetErrorsTool(server, sendHmrMessage, getActiveConnectionCount) { + server.registerTool('get_errors', { + description: 'Get the current error state from the Next.js dev server, including Next.js global errors (e.g., next.config validation), browser runtime errors, and build errors with source-mapped stack traces', + inputSchema: {} + }, async (_request)=>{ + // Track telemetry + _mcptelemetrytracker.mcpTelemetryTracker.recordToolCall('mcp/get_errors'); + try { + const connectionCount = getActiveConnectionCount(); + if (connectionCount === 0) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: 'No browser sessions connected. Please open your application in a browser to retrieve error state.' + }) + } + ] + }; + } + const responses = await (0, _browsercommunication.createBrowserRequest)(_hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_CURRENT_ERROR_STATE, sendHmrMessage, getActiveConnectionCount, _browsercommunication.DEFAULT_BROWSER_REQUEST_TIMEOUT_MS); + // The error state for each route + // key is the route path, value is the error state + const routesErrorState = new Map(); + for (const response of responses){ + if (response.data) { + routesErrorState.set(response.url, response.data); + } + } + const hasRouteErrors = Array.from(routesErrorState.values()).some((state)=>state.errors.length > 0 || !!state.buildError); + const hasInstanceErrors = _nextinstanceerrorstate.NextInstanceErrorState.nextConfig.length > 0; + if (!hasRouteErrors && !hasInstanceErrors) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + configErrors: [], + sessionErrors: [] + }) + } + ] + }; + } + const output = await (0, _formaterrors.formatErrors)(routesErrorState, _nextinstanceerrorstate.NextInstanceErrorState); + return { + content: [ + { + type: 'text', + text: JSON.stringify(output) + } + ] + }; + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: error instanceof Error ? error.message : String(error) + }) + } + ] + }; + } + }); +} +function handleErrorStateResponse(requestId, errorState, url) { + (0, _browsercommunication.handleBrowserPageResponse)(requestId, errorState, url || ''); +} + +//# sourceMappingURL=get-errors.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/get-logs.js b/cli/app/node_modules/next/dist/server/mcp/tools/get-logs.js new file mode 100644 index 00000000000..fa66e411540 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/get-logs.js @@ -0,0 +1,67 @@ +/** + * MCP tool for getting the path to the Next.js development log file. + * + * This tool returns the path to the {nextConfig.distDir}/logs/next-development.log file + * that contains browser console logs and other development information. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "registerGetLogsTool", { + enumerable: true, + get: function() { + return registerGetLogsTool; + } +}); +const _promises = require("fs/promises"); +const _path = require("path"); +const _mcptelemetrytracker = require("../mcp-telemetry-tracker"); +function registerGetLogsTool(server, distDir) { + server.registerTool('get_logs', { + description: 'Get the path to the Next.js development log file. Returns the file path so the agent can read the logs directly.' + }, async ()=>{ + // Track telemetry + _mcptelemetrytracker.mcpTelemetryTracker.recordToolCall('mcp/get_logs'); + try { + const logFilePath = (0, _path.join)(distDir, 'logs', 'next-development.log'); + // Check if the log file exists + try { + await (0, _promises.stat)(logFilePath); + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: `Log file not found at ${logFilePath}.` + }) + } + ] + }; + } + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + logFilePath + }) + } + ] + }; + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: `Error getting log file path: ${error instanceof Error ? error.message : String(error)}` + }) + } + ] + }; + } + }); +} + +//# sourceMappingURL=get-logs.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/get-page-metadata.js b/cli/app/node_modules/next/dist/server/mcp/tools/get-page-metadata.js new file mode 100644 index 00000000000..dac8dbb7d16 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/get-page-metadata.js @@ -0,0 +1,188 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handlePageMetadataResponse: null, + registerGetPageMetadataTool: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handlePageMetadataResponse: function() { + return handlePageMetadataResponse; + }, + registerGetPageMetadataTool: function() { + return registerGetPageMetadataTool; + } +}); +const _hotreloadertypes = require("../../dev/hot-reloader-types"); +const _browsercommunication = require("./utils/browser-communication"); +const _mcptelemetrytracker = require("../mcp-telemetry-tracker"); +function registerGetPageMetadataTool(server, sendHmrMessage, getActiveConnectionCount) { + server.registerTool('get_page_metadata', { + description: 'Get runtime metadata about what contributes to the current page render from active browser sessions.', + inputSchema: {} + }, async (_request)=>{ + // Track telemetry + _mcptelemetrytracker.mcpTelemetryTracker.recordToolCall('mcp/get_page_metadata'); + try { + const connectionCount = getActiveConnectionCount(); + if (connectionCount === 0) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: 'No browser sessions connected. Please open your application in a browser to retrieve page metadata.' + }) + } + ] + }; + } + const responses = await (0, _browsercommunication.createBrowserRequest)(_hotreloadertypes.HMR_MESSAGE_SENT_TO_BROWSER.REQUEST_PAGE_METADATA, sendHmrMessage, getActiveConnectionCount, _browsercommunication.DEFAULT_BROWSER_REQUEST_TIMEOUT_MS); + if (responses.length === 0) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + sessions: [] + }) + } + ] + }; + } + const sessionMetadata = []; + for (const response of responses){ + if (response.data) { + // TODO: Add other metadata for the current page render here. Currently, we only have segment trie data. + const pageMetadata = convertSegmentTrieToPageMetadata(response.data); + sessionMetadata.push({ + url: response.url, + metadata: pageMetadata + }); + } + } + if (sessionMetadata.length === 0) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + sessions: [] + }) + } + ] + }; + } + const output = formatPageMetadata(sessionMetadata); + return { + content: [ + { + type: 'text', + text: JSON.stringify(output) + } + ] + }; + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: error instanceof Error ? error.message : String(error) + }) + } + ] + }; + } + }); +} +function handlePageMetadataResponse(requestId, segmentTrieData, url) { + (0, _browsercommunication.handleBrowserPageResponse)(requestId, segmentTrieData, url || ''); +} +function convertSegmentTrieToPageMetadata(data) { + const segments = []; + if (data.segmentTrie) { + // Traverse the trie and collect all segments + function traverseTrie(node) { + if (node.value) { + segments.push({ + type: node.value.type, + pagePath: node.value.pagePath, + boundaryType: node.value.boundaryType + }); + } + for (const childNode of Object.values(node.children)){ + if (childNode) { + traverseTrie(childNode); + } + } + } + traverseTrie(data.segmentTrie); + } + return { + segments, + routerType: data.routerType + }; +} +function formatPageMetadata(sessionMetadata) { + const sessions = []; + for (const { url, metadata } of sessionMetadata){ + let displayUrl = url; + try { + const urlObj = new URL(url); + displayUrl = urlObj.pathname + urlObj.search + urlObj.hash; + } catch { + // If URL parsing fails, use the original URL + } + // Ensure consistent output to avoid flaky tests + const sortedSegments = [ + ...metadata.segments + ].sort((a, b)=>{ + const typeOrder = (segment)=>{ + const type = segment.boundaryType || segment.type; + if (type === 'layout') return 0; + if (type.startsWith('boundary:')) return 1; + if (type === 'page') return 2; + return 3; + }; + const aOrder = typeOrder(a); + const bOrder = typeOrder(b); + if (aOrder !== bOrder) return aOrder - bOrder; + return a.pagePath.localeCompare(b.pagePath); + }); + const formattedSegments = []; + for (const segment of sortedSegments){ + const path = segment.pagePath; + const isBuiltin = path.startsWith('__next_builtin__'); + const type = segment.boundaryType || segment.type; + const isBoundary = type.startsWith('boundary:'); + let displayPath = path.replace(/@boundary$/, '').replace(/^__next_builtin__/, ''); + if (!isBuiltin && !displayPath.startsWith('app/')) { + displayPath = `app/${displayPath}`; + } + formattedSegments.push({ + path: displayPath, + type, + isBoundary, + isBuiltin + }); + } + sessions.push({ + url: displayUrl, + routerType: metadata.routerType, + segments: formattedSegments + }); + } + return { + sessions + }; +} + +//# sourceMappingURL=get-page-metadata.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/get-project-metadata.js b/cli/app/node_modules/next/dist/server/mcp/tools/get-project-metadata.js new file mode 100644 index 00000000000..3c9aa99875d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/get-project-metadata.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "registerGetProjectMetadataTool", { + enumerable: true, + get: function() { + return registerGetProjectMetadataTool; + } +}); +const _mcptelemetrytracker = require("../mcp-telemetry-tracker"); +function registerGetProjectMetadataTool(server, projectPath, getDevServerUrl) { + server.registerTool('get_project_metadata', { + description: 'Returns the the metadata of this Next.js project, including project path, dev server URL, etc.', + inputSchema: {} + }, async (_request)=>{ + // Track telemetry + _mcptelemetrytracker.mcpTelemetryTracker.recordToolCall('mcp/get_project_metadata'); + try { + if (!projectPath) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: 'Unable to determine the absolute path of the Next.js project.' + }) + } + ] + }; + } + const devServerUrl = getDevServerUrl(); + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + projectPath, + devServerUrl + }) + } + ] + }; + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: error instanceof Error ? error.message : String(error) + }) + } + ] + }; + } + }); +} + +//# sourceMappingURL=get-project-metadata.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/get-routes.js b/cli/app/node_modules/next/dist/server/mcp/tools/get-routes.js new file mode 100644 index 00000000000..56e756bec3a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/get-routes.js @@ -0,0 +1,136 @@ +/** + * MCP tool for getting all routes that become entry points in a Next.js application. + * + * This tool discovers routes by scanning the filesystem directly. It finds all route + * files in the app/ and pages/ directories and converts them to route paths. + * + * Returns routes grouped by router type: + * - appRouter: App Router pages and route handlers + * - pagesRouter: Pages Router pages and API routes + * + * Dynamic route segments appear as [id], [slug], or [...slug] patterns. This tool + * does NOT expand getStaticParams - it only shows the route patterns as defined in + * the filesystem. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "registerGetRoutesTool", { + enumerable: true, + get: function() { + return registerGetRoutesTool; + } +}); +const _mcptelemetrytracker = require("../mcp-telemetry-tracker"); +const _routediscovery = require("../../../build/route-discovery"); +const _zod = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/zod")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function registerGetRoutesTool(server, options) { + server.registerTool('get_routes', { + description: 'Get all routes that will become entry points in the Next.js application by scanning the filesystem. Returns routes grouped by router type (appRouter, pagesRouter). Dynamic segments appear as [param] or [...slug] patterns. API routes are included in their respective routers (e.g., /api/* routes from pages/ are in pagesRouter). Optional parameter: routerType ("app" | "pages") - filter by specific router type, omit to get all routes.', + inputSchema: { + routerType: _zod.default.union([ + _zod.default.literal('app'), + _zod.default.literal('pages') + ]).optional() + } + }, async (request)=>{ + // Track telemetry + _mcptelemetrytracker.mcpTelemetryTracker.recordToolCall('mcp/get_routes'); + try { + const routerType = request.routerType === 'app' || request.routerType === 'pages' ? request.routerType : undefined; + const { projectPath, nextConfig, pagesDir, appDir } = options; + // Check if we have any directories to scan + if (!pagesDir && !appDir) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: 'No pages or app directory found in the project.' + }) + } + ] + }; + } + const isSrcDir = pagesDir && pagesDir.includes('/src/') || appDir && appDir.includes('/src/'); + const commonOpts = { + pageExtensions: nextConfig.pageExtensions, + isDev: true, + baseDir: projectPath, + isSrcDir: !!isSrcDir + }; + // Discover app and pages routes independently so a failure in one + // router doesn't prevent the other from returning results. + let appRoutes = []; + let pageRoutes = []; + const wantApp = routerType !== 'pages' && appDir; + const wantPages = routerType !== 'app' && pagesDir; + const [appResult, pagesResult] = await Promise.all([ + wantApp ? (0, _routediscovery.discoverRoutes)({ + ...commonOpts, + appDir + }).catch(()=>null) : null, + wantPages ? (0, _routediscovery.discoverRoutes)({ + ...commonOpts, + pagesDir + }).catch(()=>null) : null + ]); + if (appResult) { + appRoutes = [ + ...appResult.appRoutes, + ...appResult.appRouteHandlers + ].map((r)=>r.route).sort(); + } + if (pagesResult) { + pageRoutes = [ + ...pagesResult.pageRoutes, + ...pagesResult.pageApiRoutes + ].map((r)=>r.route).sort(); + } + if (appRoutes.length === 0 && pageRoutes.length === 0) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + appRouter: [], + pagesRouter: [] + }) + } + ] + }; + } + // Format the output with grouped routes + const output = { + appRouter: appRoutes.length > 0 ? appRoutes : undefined, + pagesRouter: pageRoutes.length > 0 ? pageRoutes : undefined + }; + return { + content: [ + { + type: 'text', + text: JSON.stringify(output, null, 2) + } + ] + }; + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: error instanceof Error ? error.message : String(error) + }) + } + ] + }; + } + }); +} + +//# sourceMappingURL=get-routes.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js b/cli/app/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js new file mode 100644 index 00000000000..6d5fcb07463 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/get-server-action-by-id.js @@ -0,0 +1,121 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "registerGetActionByIdTool", { + enumerable: true, + get: function() { + return registerGetActionByIdTool; + } +}); +const _zod = require("next/dist/compiled/zod"); +const _fs = require("fs"); +const _path = require("path"); +const _mcptelemetrytracker = require("../mcp-telemetry-tracker"); +const INLINE_ACTION_PREFIX = '$$RSC_SERVER_ACTION_'; +function registerGetActionByIdTool(server, distDir) { + server.registerTool('get_server_action_by_id', { + description: 'Locates a Server Action by its ID in the server-reference-manifest.json. Returns the filename and export name for the action.', + inputSchema: { + actionId: _zod.z.string() + } + }, async (request)=>{ + // Track telemetry + _mcptelemetrytracker.mcpTelemetryTracker.recordToolCall('mcp/get_server_action_by_id'); + try { + const { actionId } = request; + if (!actionId) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: 'actionId parameter is required' + }) + } + ] + }; + } + const manifestPath = (0, _path.join)(distDir, 'server', 'server-reference-manifest.json'); + let manifestContent; + try { + manifestContent = await _fs.promises.readFile(manifestPath, 'utf-8'); + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: `Could not read server-reference-manifest.json at ${manifestPath}.` + }) + } + ] + }; + } + const manifest = JSON.parse(manifestContent); + // Search in node entries + if (manifest.node && manifest.node[actionId]) { + const entry = manifest.node[actionId]; + const isInlineAction = entry.exportedName.startsWith(INLINE_ACTION_PREFIX); + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + actionId, + runtime: 'node', + filename: entry.filename, + functionName: isInlineAction ? 'inline server action' : entry.exportedName, + layer: entry.layer, + workers: entry.workers + }, null, 2) + } + ] + }; + } + // Search in edge entries + if (manifest.edge && manifest.edge[actionId]) { + const entry = manifest.edge[actionId]; + const isInlineAction = entry.exportedName.startsWith(INLINE_ACTION_PREFIX); + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + actionId, + runtime: 'edge', + filename: entry.filename, + functionName: isInlineAction ? 'inline server action' : entry.exportedName, + layer: entry.layer, + workers: entry.workers + }, null, 2) + } + ] + }; + } + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: `Action ID "${actionId}" not found in server-reference-manifest.json` + }) + } + ] + }; + } catch (error) { + return { + content: [ + { + type: 'text', + text: JSON.stringify({ + error: error instanceof Error ? error.message : String(error) + }) + } + ] + }; + } + }); +} + +//# sourceMappingURL=get-server-action-by-id.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js b/cli/app/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js new file mode 100644 index 00000000000..688abbdad98 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/next-instance-error-state.js @@ -0,0 +1,31 @@ +/** + * Global error state for Next.js instance-level errors that are not associated + * with a specific browser session or route. This state is exposed through the MCP server's `get_errors` + * tool as well. This covers the errors that are global to the Next.js instance, such as errors in next.config.js. + * + * + * ## Usage + * + * This state is directly manipulated by various parts of the Next.js dev server: + * + * // Reset the error state + * NextInstanceErrorState.[errorType] = [] + * + * // Capture an error for a specific error type + * NextInstanceErrorState.[errorType].push(err) + * + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NextInstanceErrorState", { + enumerable: true, + get: function() { + return NextInstanceErrorState; + } +}); +const NextInstanceErrorState = { + nextConfig: [] +}; + +//# sourceMappingURL=next-instance-error-state.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js b/cli/app/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js new file mode 100644 index 00000000000..cd4a8001b85 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/utils/browser-communication.js @@ -0,0 +1,90 @@ +/** + * Shared utilities for MCP tools that communicate with the browser. + * This module provides a common infrastructure for request-response + * communication between MCP endpoints and browser sessions via HMR. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DEFAULT_BROWSER_REQUEST_TIMEOUT_MS: null, + createBrowserRequest: null, + handleBrowserPageResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DEFAULT_BROWSER_REQUEST_TIMEOUT_MS: function() { + return DEFAULT_BROWSER_REQUEST_TIMEOUT_MS; + }, + createBrowserRequest: function() { + return createBrowserRequest; + }, + handleBrowserPageResponse: function() { + return handleBrowserPageResponse; + } +}); +const _nanoid = require("next/dist/compiled/nanoid"); +const DEFAULT_BROWSER_REQUEST_TIMEOUT_MS = 5000; +const pendingRequests = new Map(); +function createBrowserRequest(messageType, sendHmrMessage, getActiveConnectionCount, timeoutMs) { + const connectionCount = getActiveConnectionCount(); + if (connectionCount === 0) { + return Promise.resolve([]); + } + const requestId = `mcp-${messageType}-${(0, _nanoid.nanoid)()}`; + const responsePromise = new Promise((resolve, reject)=>{ + const timeout = setTimeout(()=>{ + const pending = pendingRequests.get(requestId); + if (pending && pending.responses.length > 0) { + resolve(pending.responses); + } else { + reject(Object.defineProperty(new Error(`Timeout waiting for response from frontend. The browser may not be responding to HMR messages.`), "__NEXT_ERROR_CODE", { + value: "E825", + enumerable: false, + configurable: true + })); + } + pendingRequests.delete(requestId); + }, timeoutMs); + pendingRequests.set(requestId, { + responses: [], + expectedCount: connectionCount, + resolve: resolve, + reject, + timeout + }); + }); + sendHmrMessage({ + type: messageType, + requestId + }); + return responsePromise; +} +function handleBrowserPageResponse(requestId, data, url) { + if (!url) { + throw Object.defineProperty(new Error('URL is required in MCP browser response. This is a bug in Next.js.'), "__NEXT_ERROR_CODE", { + value: "E824", + enumerable: false, + configurable: true + }); + } + const pending = pendingRequests.get(requestId); + if (pending) { + pending.responses.push({ + url, + data + }); + if (pending.responses.length >= pending.expectedCount) { + clearTimeout(pending.timeout); + pending.resolve(pending.responses); + pendingRequests.delete(requestId); + } + } +} + +//# sourceMappingURL=browser-communication.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/mcp/tools/utils/format-errors.js b/cli/app/node_modules/next/dist/server/mcp/tools/utils/format-errors.js new file mode 100644 index 00000000000..ef78121d5e6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/mcp/tools/utils/format-errors.js @@ -0,0 +1,137 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + formatErrors: null, + setStackFrameResolver: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + formatErrors: function() { + return formatErrors; + }, + setStackFrameResolver: function() { + return setStackFrameResolver; + } +}); +const _errorsource = require("../../../../shared/lib/error-source"); +// Dependency injection for stack frame resolver +let stackFrameResolver; +function setStackFrameResolver(fn) { + stackFrameResolver = fn; +} +async function resolveStackFrames(request) { + if (!stackFrameResolver) { + throw Object.defineProperty(new Error('Stack frame resolver not initialized. This is a bug in Next.js.'), "__NEXT_ERROR_CODE", { + value: "E822", + enumerable: false, + configurable: true + }); + } + return stackFrameResolver(request); +} +const formatStackFrameToObject = (frame)=>{ + return { + file: frame.file || '', + methodName: frame.methodName || '', + line: frame.line1, + column: frame.column1 + }; +}; +const resolveErrorFrames = async (frames, context)=>{ + try { + const resolvedFrames = await resolveStackFrames({ + frames: frames.map((frame)=>({ + file: frame.file || null, + methodName: frame.methodName || '', + arguments: [], + line1: frame.line1 || null, + column1: frame.column1 || null + })), + isServer: context.isServer, + isEdgeServer: context.isEdgeServer, + isAppDirectory: context.isAppDirectory + }); + return resolvedFrames.filter((resolvedFrame)=>{ + var _resolvedFrame_value_originalStackFrame; + return !(resolvedFrame.status === 'fulfilled' && ((_resolvedFrame_value_originalStackFrame = resolvedFrame.value.originalStackFrame) == null ? void 0 : _resolvedFrame_value_originalStackFrame.ignored)); + }).map((resolvedFrame, j)=>resolvedFrame.status === 'fulfilled' && resolvedFrame.value.originalStackFrame ? formatStackFrameToObject(resolvedFrame.value.originalStackFrame) : formatStackFrameToObject(frames[j])); + } catch { + return frames.map(formatStackFrameToObject); + } +}; +async function formatRuntimeErrorsToObjects(errors, isAppDirectory) { + const formattedErrors = []; + for (const error of errors){ + var _error_error, _error_error1, _error_frames; + const errorName = ((_error_error = error.error) == null ? void 0 : _error_error.name) || 'Error'; + const errorMsg = ((_error_error1 = error.error) == null ? void 0 : _error_error1.message) || 'Unknown error'; + let stack = []; + if ((_error_frames = error.frames) == null ? void 0 : _error_frames.length) { + const errorSource = (0, _errorsource.getErrorSource)(error.error); + stack = await resolveErrorFrames(error.frames, { + isServer: errorSource === 'server', + isEdgeServer: errorSource === 'edge-server', + isAppDirectory + }); + } + formattedErrors.push({ + type: error.type, + errorName, + message: errorMsg, + stack + }); + } + return formattedErrors; +} +async function formatErrors(errorsByUrl, nextInstanceErrors = { + nextConfig: [] +}) { + const output = { + configErrors: [], + sessionErrors: [] + }; + // Format Next.js instance errors first (e.g., next.config.js errors) + for (const error of nextInstanceErrors.nextConfig){ + if (error instanceof Error) { + output.configErrors.push({ + name: error.name, + message: error.message, + stack: error.stack || null + }); + } else { + output.configErrors.push({ + name: 'Error', + message: String(error), + stack: null + }); + } + } + // Format browser session errors + for (const [url, overlayState] of errorsByUrl){ + const totalErrorCount = overlayState.errors.length + (overlayState.buildError ? 1 : 0); + if (totalErrorCount === 0) continue; + let displayUrl = url; + try { + const urlObj = new URL(url); + displayUrl = urlObj.pathname + urlObj.search + urlObj.hash; + } catch { + // If URL parsing fails, use the original URL + } + const runtimeErrors = await formatRuntimeErrorsToObjects(overlayState.errors, overlayState.routerType === 'app'); + output.sessionErrors.push({ + url: displayUrl, + buildError: overlayState.buildError || null, + runtimeErrors + }); + } + return output; +} + +//# sourceMappingURL=format-errors.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/next-server.js b/cli/app/node_modules/next/dist/server/next-server.js new file mode 100644 index 00000000000..dc85a99969a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/next-server.js @@ -0,0 +1,1429 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return NextNodeServer; + } +}); +0 && __export(require("./base-server")); +require("./node-environment"); +require("./require-hook"); +require("./node-polyfill-crypto"); +const _utils = require("../shared/lib/utils"); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = require("path"); +const _routematcher = require("../shared/lib/router/utils/route-matcher"); +const _requestmeta = require("./request-meta"); +const _constants = require("../shared/lib/constants"); +const _findpagesdir = require("../lib/find-pages-dir"); +const _node = require("./base-http/node"); +const _sendpayload = require("./send-payload"); +const _parseurl = require("../shared/lib/router/utils/parse-url"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _baseserver = /*#__PURE__*/ _interop_require_default(_export_star(require("./base-server"), exports)); +const _require = require("./require"); +const _denormalizepagepath = require("../shared/lib/page-path/denormalize-page-path"); +const _normalizepagepath = require("../shared/lib/page-path/normalize-page-path"); +const _loadcomponents = require("./load-components"); +const _iserror = /*#__PURE__*/ _interop_require_wildcard(require("../lib/is-error")); +const _utils1 = require("./web/utils"); +const _middlewareroutematcher = require("../shared/lib/router/utils/middleware-route-matcher"); +const _env = require("@next/env"); +const _querystring = require("../shared/lib/router/utils/querystring"); +const _removetrailingslash = require("../shared/lib/router/utils/remove-trailing-slash"); +const _getnextpathnameinfo = require("../shared/lib/router/utils/get-next-pathname-info"); +const _bodystreams = require("./body-streams"); +const _apiutils = require("./api-utils"); +const _responsecache = /*#__PURE__*/ _interop_require_wildcard(require("./response-cache")); +const _incrementalcache = require("./lib/incremental-cache"); +const _apppaths = require("../shared/lib/router/utils/app-paths"); +const _setuphttpagentenv = require("./setup-http-agent-env"); +const _pagesapiroutematch = require("./route-matches/pages-api-route-match"); +const _tracer = require("./lib/trace/tracer"); +const _constants1 = require("./lib/trace/constants"); +const _nodefsmethods = require("./lib/node-fs-methods"); +const _routeregex = require("../shared/lib/router/utils/route-regex"); +const _pipereadable = require("./pipe-readable"); +const _mockrequest = require("./lib/mock-request"); +const _approuterheaders = require("../client/components/app-router-headers"); +const _nextrequest = require("./web/spec-extension/adapters/next-request"); +const _loadmanifestexternal = require("./load-manifest.external"); +const _modulerender = require("./route-modules/app-page/module.render"); +const _modulerender1 = require("./route-modules/pages/module.render"); +const _interopdefault = require("../lib/interop-default"); +const _formatdynamicimportpath = require("../lib/format-dynamic-import-path"); +const _isinterceptionrouterewrite = require("../lib/is-interception-route-rewrite"); +const _routekind = require("./route-kind"); +const _invarianterror = require("../shared/lib/invariant-error"); +const _awaiter = require("./after/awaiter"); +const _asynccallbackset = require("./lib/async-callback-set"); +const _handlers = require("./use-cache/handlers"); +const _staticenv = require("../lib/static-env"); +const _nodemoduleloader = require("./lib/module-loader/node-module-loader"); +const _nofallbackerrorexternal = require("../shared/lib/no-fallback-error.external"); +const _instrumentationglobalsexternal = require("./lib/router-utils/instrumentation-globals.external"); +const _routerservercontext = require("./lib/router-utils/router-server-context"); +const _globalbehaviors = require("./node-environment-extensions/global-behaviors"); +const _processerrorhandlers = require("./node-environment-extensions/process-error-handlers"); +function _export_star(from, to) { + Object.keys(from).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) { + Object.defineProperty(to, k, { + enumerable: true, + get: function() { + return from[k]; + } + }); + } + }); + return from; +} +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// For module that can be both CJS or ESM +const dynamicImportEsmDefault = process.env.NEXT_MINIMAL ? (id)=>import(/* webpackIgnore: true */ id).then((mod)=>mod.default || mod) : (id)=>import(id).then((mod)=>mod.default || mod); +const MiddlewareMatcherCache = new WeakMap(); +function getMiddlewareMatcher(info) { + const stored = MiddlewareMatcherCache.get(info); + if (stored) { + return stored; + } + if (!Array.isArray(info.matchers)) { + throw Object.defineProperty(new Error(`Invariant: invalid matchers for middleware ${JSON.stringify(info)}`), "__NEXT_ERROR_CODE", { + value: "E257", + enumerable: false, + configurable: true + }); + } + const matcher = (0, _middlewareroutematcher.getMiddlewareRouteMatcher)(info.matchers); + MiddlewareMatcherCache.set(info, matcher); + return matcher; +} +class NextNodeServer extends _baseserver.default { + constructor(options){ + var _options_conf_experimental_sri, _options_conf_experimental, _options_conf_experimental1; + // Initialize super class + super(options), this.cleanupListeners = new _asynccallbackset.AsyncCallbackSet(), this.handleNextImageRequest = async (req, res, parsedUrl)=>{ + if (!parsedUrl.pathname || !parsedUrl.pathname.startsWith('/_next/image')) { + return false; + } + // Ignore if its a middleware request + if ((0, _requestmeta.getRequestMeta)(req, 'middlewareInvoke')) { + return false; + } + if (this.minimalMode || this.nextConfig.output === 'export' || process.env.NEXT_MINIMAL) { + res.statusCode = 400; + res.body('Bad Request').send(); + return true; + // the `else` branch is needed for tree-shaking + } else { + const { ImageOptimizerCache } = require('./image-optimizer'); + // Load custom cache handler if configured and opt-in via images.customCacheHandler + // Cache the handler instance to preserve state across requests + if (!this.imageCacheHandler && this.nextConfig.images.customCacheHandler) { + const { cacheHandler } = this.nextConfig; + if (cacheHandler) { + const CacheHandler = (0, _interopdefault.interopDefault)(await dynamicImportEsmDefault((0, _formatdynamicimportpath.formatDynamicImportPath)(this.distDir, cacheHandler))); + this.imageCacheHandler = new CacheHandler({ + dev: !!this.dev, + flushToDisk: this.nextConfig.experimental.isrFlushToDisk, + serverDistDir: this.serverDistDir, + maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize, + revalidatedTags: [], + _requestHeaders: {} + }); + } + } + const imageOptimizerCache = new ImageOptimizerCache({ + distDir: this.distDir, + nextConfig: this.nextConfig, + cacheHandler: this.imageCacheHandler + }); + const { sendResponse, ImageError } = require('./image-optimizer'); + if (!this.imageResponseCache) { + throw Object.defineProperty(new Error('invariant image optimizer cache was not initialized'), "__NEXT_ERROR_CODE", { + value: "E160", + enumerable: false, + configurable: true + }); + } + const imagesConfig = this.nextConfig.images; + if (imagesConfig.loader !== 'default' || imagesConfig.unoptimized) { + await this.render404(req, res); + return true; + } + const paramsResult = ImageOptimizerCache.validateParams(req.originalRequest, parsedUrl.query, this.nextConfig, !!this.dev); + if ('errorMessage' in paramsResult) { + res.statusCode = 400; + res.body(paramsResult.errorMessage).send(); + return true; + } + const cacheKey = ImageOptimizerCache.getCacheKey(paramsResult); + try { + var _cacheEntry_value, _cacheEntry_cacheControl; + const { getExtension } = require('./serve-static'); + const cacheEntry = await this.imageResponseCache.get(cacheKey, async ({ previousCacheEntry })=>{ + const { buffer, contentType, maxAge, upstreamEtag, etag } = await this.imageOptimizer(req, res, paramsResult, previousCacheEntry); + return { + value: { + kind: _responsecache.CachedRouteKind.IMAGE, + buffer, + etag, + extension: getExtension(contentType), + upstreamEtag + }, + cacheControl: { + revalidate: maxAge, + expire: undefined + } + }; + }, { + routeKind: _routekind.RouteKind.IMAGE, + incrementalCache: imageOptimizerCache, + isFallback: false + }); + if ((cacheEntry == null ? void 0 : (_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== _responsecache.CachedRouteKind.IMAGE) { + throw Object.defineProperty(new Error('invariant did not get entry from image response cache'), "__NEXT_ERROR_CODE", { + value: "E518", + enumerable: false, + configurable: true + }); + } + sendResponse(req.originalRequest, res.originalResponse, paramsResult.href, cacheEntry.value.extension, cacheEntry.value.buffer, cacheEntry.value.etag, paramsResult.isStatic, cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT', imagesConfig, ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.revalidate) || 0, Boolean(this.dev)); + return true; + } catch (err) { + if (err instanceof ImageError) { + res.statusCode = err.statusCode; + res.body(err.message).send(); + return true; + } + throw err; + } + } + }, this.handleCatchallRenderRequest = async (req, res, parsedUrl)=>{ + let { pathname, query } = parsedUrl; + if (!pathname) { + throw Object.defineProperty(new Error('Invariant: pathname is undefined'), "__NEXT_ERROR_CODE", { + value: "E409", + enumerable: false, + configurable: true + }); + } + // When in minimal mode we do not bubble the fallback as the + // router-server is not present to handle the error + (0, _requestmeta.addRequestMeta)(req, 'bubbleNoFallback', this.minimalMode ? undefined : true); + // This is needed to expose render404 and nextConfig + // for environments without router-server + if (!_routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol]) { + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol] = {}; + } + const relativeProjectDir = (0, _path.relative)(process.cwd(), this.dir); + const existingServerContext = _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol][relativeProjectDir]; + if (!existingServerContext) { + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol][relativeProjectDir] = { + render404: this.render404.bind(this) + }; + } + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol][relativeProjectDir].nextConfig = this.nextConfig; + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol][relativeProjectDir].isWrappedByNextServer = true; + try { + var _this_i18nProvider; + // next.js core assumes page path without trailing slash + pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname); + const options = { + i18n: (_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.fromRequest(req, pathname) + }; + const match = await this.matchers.match(pathname, options); + // If we don't have a match, try to render it anyways. + if (!match) { + await this.render(req, res, pathname, query, parsedUrl, true); + return true; + } + // Add the match to the request so we don't have to re-run the matcher + // for the same request. + (0, _requestmeta.addRequestMeta)(req, 'match', match); + // TODO-APP: move this to a route handler + const edgeFunctionsPages = this.getEdgeFunctionsPages(); + for (const edgeFunctionsPage of edgeFunctionsPages){ + // If the page doesn't match the edge function page, skip it. + if (edgeFunctionsPage !== match.definition.page) continue; + if (this.nextConfig.output === 'export') { + await this.render404(req, res, parsedUrl); + return true; + } + delete query[_approuterheaders.NEXT_RSC_UNION_QUERY]; + // If we handled the request, we can return early. + // For api routes edge runtime + try { + const handled = await this.runEdgeFunction({ + req, + res, + query, + params: match.params, + page: match.definition.page, + match, + appPaths: null + }); + if (handled) return true; + } catch (apiError) { + const silenceLog = false; + await this.instrumentationOnRequestError(apiError, req, { + routePath: match.definition.page, + routerKind: 'Pages Router', + routeType: 'route', + // Edge runtime does not support ISR + revalidateReason: undefined + }, silenceLog); + throw apiError; + } + } + // If the route was detected as being a Pages API route, then handle + // it. + // TODO: move this behavior into a route handler. + if ((0, _pagesapiroutematch.isPagesAPIRouteMatch)(match)) { + if (this.nextConfig.output === 'export') { + await this.render404(req, res, parsedUrl); + return true; + } + const handled = await this.handleApiRequest(req, res, query, match); + if (handled) return true; + } + await this.render(req, res, pathname, query, parsedUrl, true); + return true; + } catch (err) { + if (err instanceof _nofallbackerrorexternal.NoFallbackError) { + throw err; + } + try { + if (this.dev) { + const { formatServerError } = require('../lib/format-server-error'); + formatServerError(err); + this.logErrorWithOriginalStack(err); + } else { + this.logError(err); + } + res.statusCode = 500; + await this.renderError(err, req, res, pathname, query); + return true; + } catch {} + throw err; + } + }, this.handleCatchallMiddlewareRequest = async (req, res, parsed)=>{ + const isMiddlewareInvoke = (0, _requestmeta.getRequestMeta)(req, 'middlewareInvoke'); + if (!isMiddlewareInvoke) { + return false; + } + const handleFinished = ()=>{ + (0, _requestmeta.addRequestMeta)(req, 'middlewareInvoke', true); + res.body('').send(); + return true; + }; + const middleware = await this.getMiddleware(); + if (!middleware) { + return handleFinished(); + } + const initUrl = (0, _requestmeta.getRequestMeta)(req, 'initURL'); + const parsedUrl = (0, _parseurl.parseUrl)(initUrl); + const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(parsedUrl.pathname, { + nextConfig: this.nextConfig, + i18nProvider: this.i18nProvider + }); + parsedUrl.pathname = pathnameInfo.pathname; + const normalizedPathname = (0, _removetrailingslash.removeTrailingSlash)(parsed.pathname || ''); + let maybeDecodedPathname = normalizedPathname; + try { + maybeDecodedPathname = decodeURIComponent(normalizedPathname); + } catch { + /* non-fatal we can't decode so can't match it */ } + if (!(middleware.match(normalizedPathname, req, parsedUrl.query) || middleware.match(maybeDecodedPathname, req, parsedUrl.query))) { + return handleFinished(); + } + let result; + let bubblingResult = false; + try { + await this.ensureMiddleware(req.url); + result = await this.runMiddleware({ + request: req, + response: res, + parsedUrl: parsedUrl, + parsed: parsed + }); + if ('response' in result) { + if (isMiddlewareInvoke) { + bubblingResult = true; + throw Object.defineProperty(new _tracer.BubbledError(true, result), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + for (const [key, value] of Object.entries((0, _utils1.toNodeOutgoingHttpHeaders)(result.response.headers))){ + if (key !== 'content-encoding' && value !== undefined) { + res.setHeader(key, value); + } + } + res.statusCode = result.response.status; + const { originalResponse } = res; + if (result.response.body) { + await (0, _pipereadable.pipeToNodeResponse)(result.response.body, originalResponse); + } else { + originalResponse.end(); + } + return true; + } + } catch (err) { + if (bubblingResult) { + throw err; + } + if ((0, _iserror.default)(err) && err.code === 'ENOENT') { + await this.render404(req, res, parsed); + return true; + } + if (err instanceof _utils.DecodeError) { + res.statusCode = 400; + await this.renderError(err, req, res, parsed.pathname || ''); + return true; + } + const error = (0, _iserror.getProperError)(err); + console.error(error); + res.statusCode = 500; + await this.renderError(error, req, res, parsed.pathname || ''); + return true; + } + return result.finished; + }; + (0, _globalbehaviors.installGlobalBehaviors)(this.nextConfig); + // Load prefetch hints from the build output. This must happen before + // any render to ensure segment inlining decisions are available. + this.renderOpts.prefetchHints = this.getPrefetchHints(); + const isDev = options.dev ?? false; + this.isDev = isDev; + this.sriEnabled = Boolean((_options_conf_experimental = options.conf.experimental) == null ? void 0 : (_options_conf_experimental_sri = _options_conf_experimental.sri) == null ? void 0 : _options_conf_experimental_sri.algorithm); + /** + * This sets environment variable to be used at the time of SSR by head.tsx. + * Using this from process.env allows targeting SSR by calling + * `process.env.__NEXT_OPTIMIZE_CSS`. + */ if (this.renderOpts.optimizeCss) { + process.env.__NEXT_OPTIMIZE_CSS = JSON.stringify(true); + } + if (this.renderOpts.nextScriptWorkers) { + process.env.__NEXT_SCRIPT_WORKERS = JSON.stringify(true); + } + if (!this.minimalMode) { + this.imageResponseCache = new _responsecache.default(this.minimalMode); + } + if (!options.dev && !this.minimalMode && this.nextConfig.experimental.preloadEntriesOnStart) { + this.unstable_preloadEntries(); + } + if (!options.dev) { + const { dynamicRoutes = [] } = this.getRoutesManifest() ?? {}; + this.dynamicRoutes = dynamicRoutes.map((r)=>{ + // TODO: can we just re-use the regex from the manifest? + const regex = (0, _routeregex.getRouteRegex)(r.page); + const match = (0, _routematcher.getRouteMatcher)(regex); + return { + match, + page: r.page, + re: regex.re + }; + }); + } + // ensure options are set when loadConfig isn't called + (0, _setuphttpagentenv.setHttpClientAndAgentOptions)(this.nextConfig); + // Intercept fetch and other testmode apis. + if (this.serverOptions.experimentalTestProxy) { + process.env.NEXT_PRIVATE_TEST_PROXY = 'true'; + const { interceptTestApis } = // eslint-disable-next-line @next/internal/typechecked-require -- experimental/testmode is not built ins next/dist/esm + require('next/dist/experimental/testmode/server'); + interceptTestApis(); + } + this.middlewareManifestPath = (0, _path.join)(/* turbopackIgnore: true */ this.serverDistDir, _constants.MIDDLEWARE_MANIFEST); + // This is just optimization to fire prepare as soon as possible. It will be + // properly awaited later. We add the catch here to ensure that it does not + // cause a unhandled promise rejection. The promise rejection will be + // handled later on via the `await` when the request handler is called. + if (!options.dev) { + this.prepare().catch((err)=>{ + console.error('Failed to prepare server', err); + }); + } + // when using compile mode static env isn't inlined so we + // need to populate in normal runtime env + if (this.renderOpts.isExperimentalCompile) { + // immutableAssetToken only works with Turbopack, and `isExperimentalCompile` isn't supported + // with that anyway, so we can assign immutableAssetToken to deploymentId here + (0, _staticenv.populateStaticEnv)(this.nextConfig, this.deploymentId || ''); + } + const shouldRemoveUncaughtErrorAndRejectionListeners = Boolean((_options_conf_experimental1 = options.conf.experimental) == null ? void 0 : _options_conf_experimental1.removeUncaughtErrorAndRejectionListeners); + (0, _processerrorhandlers.installProcessErrorHandlers)(shouldRemoveUncaughtErrorAndRejectionListeners); + } + async unstable_preloadEntries() { + // Ensure prepare process will be finished before preloading entries. + await this.prepare(); + const appPathsManifest = this.getAppPathsManifest(); + const pagesManifest = this.getPagesManifest(); + await this.loadCustomCacheHandlers(); + for (const page of Object.keys(pagesManifest || {})){ + try { + await (0, _loadcomponents.loadComponents)({ + distDir: this.distDir, + page, + isAppPath: false, + isDev: this.isDev, + sriEnabled: this.sriEnabled, + needsManifestsForLegacyReasons: false + }); + } catch (_err) { + // Intentionally ignored because this is a preload step. + } + } + for (const page of Object.keys(appPathsManifest || {})){ + try { + const { ComponentMod } = await (0, _loadcomponents.loadComponents)({ + distDir: this.distDir, + page, + isAppPath: true, + isDev: this.isDev, + sriEnabled: this.sriEnabled, + needsManifestsForLegacyReasons: false + }); + // we need to ensure fetch is patched before we require the page, + // otherwise if the fetch is patched by user code, we will be patching it + // too late and there won't be any caching behaviors + ComponentMod.patchFetch(); + } catch (_err) { + // Intentionally ignored because this is a preload step. + } + } + } + async handleUpgrade() { + // The web server does not support web sockets, it's only used for HMR in + // development. + } + async loadInstrumentationModule() { + if (!this.serverOptions.dev) { + try { + this.instrumentation = await (0, _instrumentationglobalsexternal.getInstrumentationModule)(this.dir, this.nextConfig.distDir); + } catch (err) { + if (err.code !== 'MODULE_NOT_FOUND') { + throw Object.defineProperty(new Error('An error occurred while loading the instrumentation hook', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E92", + enumerable: false, + configurable: true + }); + } + } + } + return this.instrumentation; + } + async prepareImpl() { + await super.prepareImpl(); + await this.runInstrumentationHookIfAvailable(); + } + async runInstrumentationHookIfAvailable() { + await (0, _instrumentationglobalsexternal.ensureInstrumentationRegistered)(this.dir, this.nextConfig.distDir); + } + loadEnvConfig({ dev, forceReload }) { + (0, _env.loadEnvConfig)(this.dir, dev, _log, forceReload, forceReload ? (envFilePath)=>{ + _log.info(`Reload env: ${envFilePath}`); + } : undefined); + } + async loadCustomCacheHandlers() { + const { cacheMaxMemorySize, cacheHandlers } = this.nextConfig; + if (!cacheHandlers) return; + // If we've already initialized the cache handlers interface, don't do it + // again. + if (!(0, _handlers.initializeCacheHandlers)(cacheMaxMemorySize)) return; + for (const [kind, handler] of Object.entries(cacheHandlers)){ + if (!handler) continue; + (0, _handlers.setCacheHandler)(kind, (0, _interopdefault.interopDefault)(await dynamicImportEsmDefault((0, _formatdynamicimportpath.formatDynamicImportPath)(this.distDir, handler)))); + } + } + async getIncrementalCache({ requestHeaders }) { + const dev = !!this.dev; + let CacheHandler; + const { cacheHandler } = this.nextConfig; + if (cacheHandler) { + CacheHandler = (0, _interopdefault.interopDefault)(await dynamicImportEsmDefault((0, _formatdynamicimportpath.formatDynamicImportPath)(this.distDir, cacheHandler))); + } + await this.loadCustomCacheHandlers(); + // incremental-cache is request specific + // although can have shared caches in module scope + // per-cache handler + return new _incrementalcache.IncrementalCache({ + fs: this.getCacheFilesystem(), + dev, + requestHeaders, + allowedRevalidateHeaderKeys: this.nextConfig.experimental.allowedRevalidateHeaderKeys, + minimalMode: this.minimalMode, + serverDistDir: this.serverDistDir, + fetchCacheKeyPrefix: this.nextConfig.experimental.fetchCacheKeyPrefix, + maxMemoryCacheSize: this.nextConfig.cacheMaxMemorySize, + flushToDisk: !this.minimalMode && this.nextConfig.experimental.isrFlushToDisk, + getPrerenderManifest: ()=>this.getPrerenderManifest(), + CurCacheHandler: CacheHandler + }); + } + getPublicDir() { + return (0, _path.join)(/* turbopackIgnore: true */ this.dir, _constants.CLIENT_PUBLIC_FILES_PATH); + } + getHasStaticDir() { + return _fs.default.existsSync(/* turbopackIgnore: true */ (0, _path.join)(/* turbopackIgnore: true */ this.dir, 'static')); + } + getPagesManifest() { + return (0, _loadmanifestexternal.loadManifest)((0, _path.join)(/* turbopackIgnore: true */ this.serverDistDir, _constants.PAGES_MANIFEST)); + } + getAppPathsManifest() { + if (!this.enabledDirectories.app) return undefined; + return (0, _loadmanifestexternal.loadManifest)((0, _path.join)(/* turbopackIgnore: true */ this.serverDistDir, _constants.APP_PATHS_MANIFEST)); + } + getinterceptionRoutePatterns() { + if (!this.enabledDirectories.app) return []; + const routesManifest = this.getRoutesManifest(); + return (routesManifest == null ? void 0 : routesManifest.rewrites.beforeFiles.filter(_isinterceptionrouterewrite.isInterceptionRouteRewrite).map((rewrite)=>new RegExp(rewrite.regex))) ?? []; + } + async hasPage(pathname) { + var _this_nextConfig_i18n; + return !!(0, _require.getMaybePagePath)(pathname, this.distDir, (_this_nextConfig_i18n = this.nextConfig.i18n) == null ? void 0 : _this_nextConfig_i18n.locales, this.enabledDirectories.app); + } + getBuildId() { + const buildIdFile = (0, _path.join)(/* turbopackIgnore: true */ this.distDir, _constants.BUILD_ID_FILE); + try { + return _fs.default.readFileSync(/* turbopackIgnore: true */ buildIdFile, 'utf8').trim(); + } catch (err) { + if (err.code === 'ENOENT') { + throw Object.defineProperty(new Error(`Could not find a production build in the '${this.distDir}' directory. Try building your app with 'next build' before starting the production server. https://nextjs.org/docs/messages/production-start-no-build-id`), "__NEXT_ERROR_CODE", { + value: "E427", + enumerable: false, + configurable: true + }); + } + throw err; + } + } + getEnabledDirectories(dev) { + const dir = dev ? this.dir : this.serverDistDir; + return { + app: (0, _findpagesdir.findDir)(dir, 'app') ? true : false, + pages: (0, _findpagesdir.findDir)(dir, 'pages') ? true : false + }; + } + sendRenderResult(req, res, options) { + return (0, _sendpayload.sendRenderResult)({ + req: req.originalRequest, + res: res.originalResponse, + result: options.result, + generateEtags: options.generateEtags, + poweredByHeader: options.poweredByHeader, + cacheControl: options.cacheControl + }); + } + async runApi(req, res, query, match) { + const edgeFunctionsPages = this.getEdgeFunctionsPages(); + for (const edgeFunctionsPage of edgeFunctionsPages){ + if (edgeFunctionsPage === match.definition.pathname) { + const handledAsEdgeFunction = await this.runEdgeFunction({ + req, + res, + query, + params: match.params, + page: match.definition.pathname, + appPaths: null + }); + if (handledAsEdgeFunction) { + return true; + } + } + } + // The module supports minimal mode, load the minimal module. + // Restore original URL as the handler handles it's own parsing + const parsedInitUrl = (0, _parseurl.parseUrl)((0, _requestmeta.getRequestMeta)(req, 'initURL') || req.url); + req.url = `${parsedInitUrl.pathname}${parsedInitUrl.search || ''}`; + const loader = new _nodemoduleloader.NodeModuleLoader(); + const module = await loader.load(match.definition.filename); + (0, _requestmeta.addRequestMeta)(req.originalRequest, 'relativeProjectDir', (0, _path.relative)(process.cwd(), this.dir)); + (0, _requestmeta.addRequestMeta)(req.originalRequest, 'distDir', this.distDir); + await module.handler(req.originalRequest, res.originalResponse, { + waitUntil: this.getWaitUntil() + }); + return true; + } + async renderHTML(req, res, pathname, query, renderOpts) { + return (0, _tracer.getTracer)().trace(_constants1.NextNodeServerSpan.renderHTML, async ()=>this.renderHTMLImpl(req, res, pathname, query, renderOpts)); + } + async renderHTMLImpl(req, res, pathname, query, renderOpts) { + if (process.env.NEXT_MINIMAL) { + throw Object.defineProperty(new Error('Invariant: renderHTML should not be called in minimal mode'), "__NEXT_ERROR_CODE", { + value: "E472", + enumerable: false, + configurable: true + }); + // the `else` branch is needed for tree-shaking + } else { + // Due to the way we pass data by mutating `renderOpts`, we can't extend the + // object here but only updating its `nextFontManifest` field. + // https://github.com/vercel/next.js/blob/df7cbd904c3bd85f399d1ce90680c0ecf92d2752/packages/next/server/render.tsx#L947-L952 + renderOpts.nextFontManifest = this.nextFontManifest; + if (this.enabledDirectories.app && renderOpts.isAppPath) { + return (0, _modulerender.lazyRenderAppPage)(req, res, pathname, query, // This code path does not service revalidations for unknown param + // shells. As a result, we don't need to pass in the unknown params. + null, renderOpts, this.getServerComponentsHmrCache(), { + buildId: this.buildId, + deploymentId: this.deploymentId, + clientAssetToken: this.nextConfig.experimental.immutableAssetToken ?? this.deploymentId + }); + } else { + // TODO: re-enable this once we've refactored to use implicit matches + // throw new Error('Invariant: render should have used routeModule') + return (0, _modulerender1.lazyRenderPagesPage)(req.originalRequest, res.originalResponse, pathname, query, renderOpts, { + buildId: this.buildId, + deploymentId: this.deploymentId, + clientAssetToken: this.nextConfig.experimental.immutableAssetToken ?? this.deploymentId, + customServer: this.serverOptions.customServer || undefined + }, { + isFallback: false, + isDraftMode: renderOpts.isDraftMode, + developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage') + }); + } + } + } + async imageOptimizer(req, res, paramsResult, previousCacheEntry) { + if (process.env.NEXT_MINIMAL) { + throw Object.defineProperty(new Error('invariant: imageOptimizer should not be called in minimal mode'), "__NEXT_ERROR_CODE", { + value: "E506", + enumerable: false, + configurable: true + }); + } else { + const { imageOptimizer, fetchExternalImage, fetchInternalImage } = require('./image-optimizer'); + const handleInternalReq = async (newReq, newRes)=>{ + if (newReq.url === req.url) { + throw Object.defineProperty(new Error(`Invariant attempted to optimize _next/image itself`), "__NEXT_ERROR_CODE", { + value: "E496", + enumerable: false, + configurable: true + }); + } + if (!this.routerServerHandler) { + throw Object.defineProperty(new Error(`Invariant missing routerServerHandler`), "__NEXT_ERROR_CODE", { + value: "E317", + enumerable: false, + configurable: true + }); + } + await this.routerServerHandler(newReq, newRes); + return; + }; + let { href } = paramsResult; + if (process.env.__NEXT_TEST_MODE && process.env.IS_TURBOPACK_TEST && !paramsResult.isAbsolute) { + // Forward the dpl query param from the original /_next/image request to the + // internal static file request so that the static file validation in + // resolve-routes.ts can verify it. + const dpl = typeof req.url === 'string' ? new URL(req.url, 'http://n').searchParams.get('dpl') : undefined; + if (dpl) { + href += `${href.includes('?') ? '&' : '?'}dpl=${dpl}`; + } + } + const imageUpstream = paramsResult.isAbsolute ? await fetchExternalImage(href, this.nextConfig.images.dangerouslyAllowLocalIP, this.nextConfig.images.maximumResponseBody, this.nextConfig.images.maximumRedirects) : await fetchInternalImage(href, req.originalRequest, res.originalResponse, handleInternalReq); + return imageOptimizer(imageUpstream, paramsResult, this.nextConfig, { + isDev: this.dev, + previousCacheEntry + }); + } + } + getPagePath(pathname, locales) { + return (0, _require.getPagePath)(pathname, this.distDir, locales, this.enabledDirectories.app); + } + async renderPageComponent(ctx, bubbleNoFallback) { + const edgeFunctionsPages = this.getEdgeFunctionsPages() || []; + if (edgeFunctionsPages.length) { + const appPaths = this.getOriginalAppPaths(ctx.pathname); + const isAppPath = Array.isArray(appPaths); + let page = ctx.pathname; + if (isAppPath) { + // When it's an array, we need to pass all parallel routes to the loader. + page = appPaths[0]; + } + for (const edgeFunctionsPage of edgeFunctionsPages){ + if (edgeFunctionsPage === page) { + await this.runEdgeFunction({ + req: ctx.req, + res: ctx.res, + query: ctx.query, + params: ctx.renderOpts.params, + page, + appPaths + }); + return null; + } + } + } + return super.renderPageComponent(ctx, bubbleNoFallback); + } + async findPageComponents({ locale, page, query, params, isAppPath, url }) { + return (0, _tracer.getTracer)().trace(_constants1.NextNodeServerSpan.findPageComponents, { + spanName: 'resolve page components', + attributes: { + 'next.route': isAppPath ? (0, _apppaths.normalizeAppPath)(page) : page + } + }, ()=>this.findPageComponentsImpl({ + locale, + page, + query, + params, + isAppPath, + url + })); + } + async findPageComponentsImpl({ locale, page, query, params, isAppPath, url: _url }) { + const pagePaths = [ + page + ]; + if (locale) { + pagePaths.unshift(...pagePaths.map((path)=>`/${locale}${path === '/' ? '' : path}`)); + } + for (const pagePath of pagePaths){ + try { + const components = await (0, _loadcomponents.loadComponents)({ + distDir: this.distDir, + page: pagePath, + isAppPath, + isDev: this.isDev, + sriEnabled: this.sriEnabled, + needsManifestsForLegacyReasons: false + }); + if (locale && typeof components.Component === 'string' && !pagePath.startsWith(`/${locale}/`) && pagePath !== `/${locale}`) { + continue; + } + return { + components, + query: { + ...!this.renderOpts.isExperimentalCompile && components.getStaticProps ? {} : query, + // For appDir params is excluded. + ...(isAppPath ? {} : params) || {} + } + }; + } catch (err) { + // we should only not throw if we failed to find the page + // in the pages-manifest + if (!(err instanceof _utils.PageNotFoundError)) { + throw err; + } + } + } + return null; + } + getNextFontManifest() { + return (0, _loadmanifestexternal.loadManifest)((0, _path.join)(/* turbopackIgnore: true */ this.distDir, 'server', _constants.NEXT_FONT_MANIFEST + '.json')); + } + // Used in development only, overloaded in next-dev-server + logErrorWithOriginalStack(_err, _type) { + throw Object.defineProperty(new Error('Invariant: logErrorWithOriginalStack can only be called on the development server'), "__NEXT_ERROR_CODE", { + value: "E6", + enumerable: false, + configurable: true + }); + } + // Used in development only, overloaded in next-dev-server + async ensurePage(_opts) { + throw Object.defineProperty(new Error('Invariant: ensurePage can only be called on the development server'), "__NEXT_ERROR_CODE", { + value: "E291", + enumerable: false, + configurable: true + }); + } + /** + * Resolves `API` request, in development builds on demand + * @param req http request + * @param res http response + * @param pathname path of request + */ async handleApiRequest(req, res, query, match) { + return this.runApi(req, res, query, match); + } + getCacheFilesystem() { + return _nodefsmethods.nodeFs; + } + normalizeReq(req) { + return !(req instanceof _node.NodeNextRequest) ? new _node.NodeNextRequest(req) : req; + } + normalizeRes(res) { + return !(res instanceof _node.NodeNextResponse) ? new _node.NodeNextResponse(res) : res; + } + getRequestHandler() { + const handler = this.makeRequestHandler(); + if (this.serverOptions.experimentalTestProxy) { + const { wrapRequestHandlerNode } = // eslint-disable-next-line @next/internal/typechecked-require -- experimental/testmode is not built ins next/dist/esm + require('next/dist/experimental/testmode/server'); + return wrapRequestHandlerNode(handler); + } + return handler; + } + /** + * @internal - this method is internal to Next.js and should not be used directly by end-users + */ getRequestHandlerWithMetadata(meta) { + const handler = this.makeRequestHandler(); + return (req, res, parsedUrl)=>{ + (0, _requestmeta.setRequestMeta)(req, meta); + return handler(req, res, parsedUrl); + }; + } + makeRequestHandler() { + // This is just optimization to fire prepare as soon as possible. It will be + // properly awaited later. We add the catch here to ensure that it does not + // cause an unhandled promise rejection. The promise rejection will be + // handled later on via the `await` when the request handler is called. + this.prepare().catch((err)=>{ + console.error('Failed to prepare server', err); + }); + const handler = super.getRequestHandler(); + return (req, res, parsedUrl)=>handler(this.normalizeReq(req), this.normalizeRes(res), parsedUrl); + } + async revalidate({ urlPath, headers, opts }) { + const mocked = (0, _mockrequest.createRequestResponseMocks)({ + url: urlPath, + headers + }); + const handler = this.getRequestHandler(); + await handler(new _node.NodeNextRequest(mocked.req), new _node.NodeNextResponse(mocked.res)); + await mocked.res.hasStreamed; + if (mocked.res.getHeader('x-nextjs-cache') !== 'REVALIDATED' && mocked.res.statusCode !== 200 && !(mocked.res.statusCode === 404 && opts.unstable_onlyGenerated)) { + throw Object.defineProperty(new Error(`Invalid response ${mocked.res.statusCode}`), "__NEXT_ERROR_CODE", { + value: "E175", + enumerable: false, + configurable: true + }); + } + } + async render(req, res, pathname, query, parsedUrl, internal = false) { + return super.render(this.normalizeReq(req), this.normalizeRes(res), pathname, query, parsedUrl, internal); + } + async renderToHTML(req, res, pathname, query) { + return super.renderToHTML(this.normalizeReq(req), this.normalizeRes(res), pathname, query); + } + async renderErrorToResponseImpl(ctx, err) { + const { req, res, query } = ctx; + const is404 = res.statusCode === 404; + if (is404 && this.enabledDirectories.app) { + if (this.dev) { + await this.ensurePage({ + page: _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY, + clientOnly: false, + url: req.url + }).catch(()=>{}); + } + if (this.getEdgeFunctionsPages().includes(_constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY)) { + await this.runEdgeFunction({ + req, + res, + query: query || {}, + params: {}, + page: _constants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY, + appPaths: null + }); + return null; + } + } + return super.renderErrorToResponseImpl(ctx, err); + } + async renderError(err, req, res, pathname, query, setHeaders) { + return super.renderError(err, this.normalizeReq(req), this.normalizeRes(res), pathname, query, setHeaders); + } + async renderErrorToHTML(err, req, res, pathname, query) { + return super.renderErrorToHTML(err, this.normalizeReq(req), this.normalizeRes(res), pathname, query); + } + async render404(req, res, parsedUrl, setHeaders) { + return super.render404(this.normalizeReq(req), this.normalizeRes(res), parsedUrl, setHeaders); + } + getMiddlewareManifest() { + if (this.minimalMode) { + return null; + } else { + const manifest = require(this.middlewareManifestPath); + return manifest; + } + } + /** Returns the middleware routing item if there is one. */ async getMiddleware() { + var _manifest_middleware; + const manifest = this.getMiddlewareManifest(); + const middleware = manifest == null ? void 0 : (_manifest_middleware = manifest.middleware) == null ? void 0 : _manifest_middleware['/']; + if (!middleware) { + const middlewareModule = await this.loadNodeMiddleware(); + if (middlewareModule) { + var _middlewareModule_config; + return { + match: (0, _middlewareroutematcher.getMiddlewareRouteMatcher)(((_middlewareModule_config = middlewareModule.config) == null ? void 0 : _middlewareModule_config.matchers) || [ + { + regexp: '.*', + originalSource: '/:path*' + } + ]), + page: '/' + }; + } + return; + } + return { + match: getMiddlewareMatcher(middleware), + page: '/' + }; + } + getEdgeFunctionsPages() { + const manifest = this.getMiddlewareManifest(); + if (!manifest) { + return []; + } + return Object.keys(manifest.functions); + } + /** + * Get information for the edge function located in the provided page + * folder. If the edge function info can't be found it will throw + * an error. + */ getEdgeFunctionInfo(params) { + const manifest = this.getMiddlewareManifest(); + if (!manifest) { + return null; + } + let foundPage; + try { + foundPage = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(params.page)); + } catch (err) { + return null; + } + let pageInfo = params.middleware ? manifest.middleware[foundPage] : manifest.functions[foundPage]; + if (!pageInfo) { + if (!params.middleware) { + throw new _utils.PageNotFoundError(foundPage); + } + return null; + } + return { + name: pageInfo.name, + paths: pageInfo.files.map((file)=>(0, _path.join)(/* turbopackIgnore: true */ this.distDir, file)), + wasm: (pageInfo.wasm ?? []).map((binding)=>({ + ...binding, + filePath: (0, _path.join)(/* turbopackIgnore: true */ this.distDir, binding.filePath) + })), + assets: pageInfo.assets && pageInfo.assets.map((binding)=>{ + return { + ...binding, + filePath: (0, _path.join)(/* turbopackIgnore: true */ this.distDir, binding.filePath) + }; + }), + env: pageInfo.env + }; + } + async loadNodeMiddleware() { + if (!process.env.NEXT_MINIMAL) { + try { + var _functionsConfig_functions; + const functionsConfig = this.dev ? {} : require((0, _path.join)(/* turbopackIgnore: true */ this.distDir, 'server', _constants.FUNCTIONS_CONFIG_MANIFEST)); + if (this.dev || (functionsConfig == null ? void 0 : (_functionsConfig_functions = functionsConfig.functions) == null ? void 0 : _functionsConfig_functions['/_middleware'])) { + // if used with top level await, this will be a promise + return require((0, _path.join)(/* turbopackIgnore: true */ this.distDir, 'server', 'middleware.js')); + } + } catch (err) { + if ((0, _iserror.default)(err) && err.code !== 'ENOENT' && err.code !== 'MODULE_NOT_FOUND') { + throw err; + } + } + } + } + /** + * Checks if a middleware exists. This method is useful for the development + * server where we need to check the filesystem. Here we just check the + * middleware manifest. + */ async hasMiddleware(pathname) { + const info = this.getEdgeFunctionInfo({ + page: pathname, + middleware: true + }); + const nodeMiddleware = await this.loadNodeMiddleware(); + if (!info && nodeMiddleware) { + return true; + } + return Boolean(info && info.paths.length > 0); + } + /** + * A placeholder for a function to be defined in the development server. + * It will make sure that the root middleware or an edge function has been compiled + * so that we can run it. + */ async ensureMiddleware(_url) {} + async ensureEdgeFunction(_params) {} + /** + * This method gets all middleware matchers and execute them when the request + * matches. It will make sure that each middleware exists and is compiled and + * ready to be invoked. The development server will decorate it to add warns + * and errors with rich traces. + */ async runMiddleware(params) { + if (process.env.NEXT_MINIMAL) { + throw Object.defineProperty(new Error('invariant: runMiddleware should not be called in minimal mode'), "__NEXT_ERROR_CODE", { + value: "E276", + enumerable: false, + configurable: true + }); + } + // Middleware is skipped for on-demand revalidate requests + if ((0, _apiutils.checkIsOnDemandRevalidate)(params.request, this.renderOpts.previewProps).isOnDemandRevalidate) { + return { + response: new Response(null, { + headers: { + 'x-middleware-next': '1' + } + }) + }; + } + let url; + if (this.nextConfig.skipProxyUrlNormalize) { + url = (0, _requestmeta.getRequestMeta)(params.request, 'initURL'); + } else { + // For middleware to "fetch" we must always provide an absolute URL + const query = (0, _querystring.urlQueryToSearchParams)(params.parsed.query).toString(); + const locale = (0, _requestmeta.getRequestMeta)(params.request, 'locale'); + url = `${(0, _requestmeta.getRequestMeta)(params.request, 'initProtocol')}://${this.fetchHostname || 'localhost'}:${this.port}${locale ? `/${locale}` : ''}${params.parsed.pathname}${query ? `?${query}` : ''}`; + } + if (!url.startsWith('http')) { + throw Object.defineProperty(new Error('To use middleware you must provide a `hostname` and `port` to the Next.js Server'), "__NEXT_ERROR_CODE", { + value: "E35", + enumerable: false, + configurable: true + }); + } + const page = {}; + const middleware = await this.getMiddleware(); + if (!middleware) { + return { + finished: false + }; + } + if (!await this.hasMiddleware(middleware.page)) { + return { + finished: false + }; + } + await this.ensureMiddleware(params.request.url); + const middlewareInfo = this.getEdgeFunctionInfo({ + page: middleware.page, + middleware: true + }); + const method = (params.request.method || 'GET').toUpperCase(); + const requestData = { + headers: params.request.headers, + method, + nextConfig: { + basePath: this.nextConfig.basePath, + i18n: this.nextConfig.i18n, + trailingSlash: this.nextConfig.trailingSlash, + experimental: this.nextConfig.experimental + }, + url: url, + page, + body: method !== 'GET' && method !== 'HEAD' ? (0, _requestmeta.getRequestMeta)(params.request, 'clonableBody') : undefined, + signal: (0, _nextrequest.signalFromNodeResponse)(params.response.originalResponse), + waitUntil: this.getWaitUntil() + }; + let result; + // if no middleware info check for Node.js middleware + // this is not in the middleware-manifest as that historically + // has only included edge-functions, we need to do a breaking + // version bump for that manifest to write this info there if + // we decide we want to + if (!middlewareInfo) { + let middlewareModule; + middlewareModule = await this.loadNodeMiddleware(); + if (!middlewareModule) { + throw new _utils.MiddlewareNotFoundError(); + } + const adapterFn = middlewareModule.default || middlewareModule; + const hasRequestBody = ![ + 'HEAD', + 'GET' + ].includes(params.request.method) && Boolean(requestData.body); + try { + result = await adapterFn({ + handler: middlewareModule.proxy || middlewareModule.middleware || middlewareModule, + request: { + ...requestData, + body: hasRequestBody ? requestData.body.cloneBodyStream() : undefined + }, + page: 'middleware' + }); + } finally{ + if (hasRequestBody) { + await requestData.body.finalize(); + } + } + } else { + const { run } = require('./web/sandbox'); + result = await run({ + distDir: this.distDir, + name: middlewareInfo.name, + paths: middlewareInfo.paths, + edgeFunctionEntry: middlewareInfo, + request: requestData, + useCache: true, + onWarning: params.onWarning, + clientAssetToken: this.nextConfig.experimental.immutableAssetToken || this.deploymentId + }); + } + if (!this.dev) { + result.waitUntil.catch((error)=>{ + console.error(`Uncaught: middleware waitUntil errored`, error); + }); + } + if (!result) { + this.render404(params.request, params.response, params.parsed); + return { + finished: true + }; + } + // Split compound (comma-separated) set-cookie headers + if (result.response.headers.has('set-cookie')) { + const cookies = result.response.headers.getSetCookie().flatMap((maybeCompoundCookie)=>(0, _utils1.splitCookiesString)(maybeCompoundCookie)); + // Clear existing header(s) + result.response.headers.delete('set-cookie'); + // Append each cookie individually. + for (const cookie of cookies){ + result.response.headers.append('set-cookie', cookie); + } + // Add cookies to request meta. + (0, _requestmeta.addRequestMeta)(params.request, 'middlewareCookie', cookies); + } + return result; + } + getPrerenderManifest() { + if (this._cachedPreviewManifest) { + return this._cachedPreviewManifest; + } + this._cachedPreviewManifest = (0, _loadmanifestexternal.loadManifest)((0, _path.join)(/* turbopackIgnore: true */ this.distDir, _constants.PRERENDER_MANIFEST)); + return this._cachedPreviewManifest; + } + getPrefetchHints() { + if (this._cachedPrefetchHints) { + return this._cachedPrefetchHints; + } + this._cachedPrefetchHints = (0, _loadmanifestexternal.loadManifest)((0, _path.join)(/* turbopackIgnore: true */ this.distDir, _constants.SERVER_DIRECTORY, _constants.PREFETCH_HINTS), true, undefined, false, true // handleMissing: don't crash if the file doesn't exist + ) ?? {}; + return this._cachedPrefetchHints; + } + getRoutesManifest() { + return (0, _tracer.getTracer)().trace(_constants1.NextNodeServerSpan.getRoutesManifest, ()=>(0, _loadmanifestexternal.loadManifest)((0, _path.join)(/* turbopackIgnore: true */ this.distDir, _constants.ROUTES_MANIFEST))); + } + attachRequestMeta(req, parsedUrl, isUpgradeReq) { + var _req_headers_xforwardedproto; + // Injected in base-server.ts + const protocol = ((_req_headers_xforwardedproto = req.headers['x-forwarded-proto']) == null ? void 0 : _req_headers_xforwardedproto.includes('https')) ? 'https' : 'http'; + // When there are hostname and port we build an absolute URL + const initUrl = this.fetchHostname && this.port ? `${protocol}://${this.fetchHostname}:${this.port}${req.url}` : this.nextConfig.experimental.trustHostHeader ? `https://${req.headers.host || 'localhost'}${req.url}` : req.url; + (0, _requestmeta.addRequestMeta)(req, 'initURL', initUrl); + (0, _requestmeta.addRequestMeta)(req, 'initQuery', { + ...parsedUrl.query + }); + (0, _requestmeta.addRequestMeta)(req, 'initProtocol', protocol); + if (!isUpgradeReq) { + var _this_nextConfig_experimental; + const bodySizeLimit = (_this_nextConfig_experimental = this.nextConfig.experimental) == null ? void 0 : _this_nextConfig_experimental.proxyClientMaxBodySize; + (0, _requestmeta.addRequestMeta)(req, 'clonableBody', (0, _bodystreams.getCloneableBody)(req.originalRequest, bodySizeLimit)); + } + } + async runEdgeFunction(params) { + if (process.env.NEXT_MINIMAL) { + throw Object.defineProperty(new Error('Middleware is not supported in minimal mode. Please remove the `NEXT_MINIMAL` environment variable.'), "__NEXT_ERROR_CODE", { + value: "E58", + enumerable: false, + configurable: true + }); + } + let edgeInfo; + const { query, page, match } = params; + if (!match) await this.ensureEdgeFunction({ + page, + appPaths: params.appPaths, + url: params.req.url + }); + edgeInfo = this.getEdgeFunctionInfo({ + page, + middleware: false + }); + if (!edgeInfo) { + return null; + } + // For edge to "fetch" we must always provide an absolute URL + const isNextDataRequest = (0, _requestmeta.getRequestMeta)(params.req, 'isNextDataReq'); + const initialUrl = new URL((0, _requestmeta.getRequestMeta)(params.req, 'initURL') || '/', 'http://n'); + const queryString = (0, _querystring.urlQueryToSearchParams)({ + ...Object.fromEntries(initialUrl.searchParams), + ...query, + ...params.params + }).toString(); + if (isNextDataRequest) { + params.req.headers['x-nextjs-data'] = '1'; + } + initialUrl.search = queryString; + const url = initialUrl.toString(); + if (!url.startsWith('http')) { + throw Object.defineProperty(new Error('To use middleware you must provide a `hostname` and `port` to the Next.js Server'), "__NEXT_ERROR_CODE", { + value: "E35", + enumerable: false, + configurable: true + }); + } + const { run } = require('./web/sandbox'); + const result = await run({ + distDir: this.distDir, + name: edgeInfo.name, + paths: edgeInfo.paths, + edgeFunctionEntry: edgeInfo, + request: { + headers: params.req.headers, + method: params.req.method, + nextConfig: { + basePath: this.nextConfig.basePath, + i18n: this.nextConfig.i18n, + trailingSlash: this.nextConfig.trailingSlash + }, + url, + page: { + name: params.page, + ...params.params && { + params: params.params + } + }, + body: (0, _requestmeta.getRequestMeta)(params.req, 'clonableBody'), + signal: (0, _nextrequest.signalFromNodeResponse)(params.res.originalResponse), + waitUntil: this.getWaitUntil() + }, + useCache: true, + onError: params.onError, + onWarning: params.onWarning, + incrementalCache: globalThis.__incrementalCache || (0, _requestmeta.getRequestMeta)(params.req, 'incrementalCache'), + serverComponentsHmrCache: (0, _requestmeta.getRequestMeta)(params.req, 'serverComponentsHmrCache'), + clientAssetToken: this.nextConfig.experimental.immutableAssetToken || this.deploymentId + }); + if (result.fetchMetrics) { + params.req.fetchMetrics = result.fetchMetrics; + } + if (!params.res.statusCode || params.res.statusCode < 400) { + params.res.statusCode = result.response.status; + params.res.statusMessage = result.response.statusText; + } + // TODO: (wyattjoh) investigate improving this + result.response.headers.forEach((value, key)=>{ + // The append handling is special cased for `set-cookie`. + if (key.toLowerCase() === 'set-cookie') { + // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici + for (const cookie of (0, _utils1.splitCookiesString)(value)){ + params.res.appendHeader(key, cookie); + } + } else { + params.res.appendHeader(key, value); + } + }); + const { originalResponse } = params.res; + if (result.response.body) { + await (0, _pipereadable.pipeToNodeResponse)(result.response.body, originalResponse); + } else { + originalResponse.end(); + } + return result; + } + get serverDistDir() { + if (this._serverDistDir) { + return this._serverDistDir; + } + const serverDistDir = (0, _path.join)(/* turbopackIgnore: true */ this.distDir, _constants.SERVER_DIRECTORY); + this._serverDistDir = serverDistDir; + return serverDistDir; + } + async getFallbackErrorComponents(_url) { + // Not implemented for production use cases, this is implemented on the + // development server. + return null; + } + async instrumentationOnRequestError(...args) { + await super.instrumentationOnRequestError(...args); + // For Node.js runtime production logs, in dev it will be overridden by next-dev-server + if (!this.dev) { + const [err, , , silenceLog] = args; + if (!silenceLog) { + this.logError(err); + } + } + } + onServerClose(listener) { + this.cleanupListeners.add(listener); + } + async close() { + await this.cleanupListeners.runAll(); + } + getInternalWaitUntil() { + this.internalWaitUntil ??= this.createInternalWaitUntil(); + return this.internalWaitUntil; + } + createInternalWaitUntil() { + if (this.minimalMode) { + throw Object.defineProperty(new _invarianterror.InvariantError('createInternalWaitUntil should never be called in minimal mode'), "__NEXT_ERROR_CODE", { + value: "E540", + enumerable: false, + configurable: true + }); + } + const awaiter = new _awaiter.AwaiterOnce({ + onError: console.error + }); + // TODO(after): warn if the process exits before these are awaited + this.onServerClose(()=>awaiter.awaiting()); + return awaiter.waitUntil; + } +} + +//# sourceMappingURL=next-server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/next-typescript.js b/cli/app/node_modules/next/dist/server/next-typescript.js new file mode 100644 index 00000000000..c9949554b9e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/next-typescript.js @@ -0,0 +1,13 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createTSPlugin", { + enumerable: true, + get: function() { + return _typescript.createTSPlugin; + } +}); +const _typescript = require("./typescript"); + +//# sourceMappingURL=next-typescript.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/next.js b/cli/app/node_modules/next/dist/server/next.js new file mode 100644 index 00000000000..f850ba6f8fc --- /dev/null +++ b/cli/app/node_modules/next/dist/server/next.js @@ -0,0 +1,455 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NextServer: null, + default: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NextServer: function() { + return NextServer; + }, + // exports = module.exports + // Support `import next from 'next'` + default: function() { + return _default; + } +}); +require("./require-hook"); +require("./node-polyfill-crypto"); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../build/output/log")); +const _config = /*#__PURE__*/ _interop_require_default(require("./config")); +const _nodepath = /*#__PURE__*/ _interop_require_default(require("node:path")); +const _constants = require("../lib/constants"); +const _constants1 = require("../shared/lib/constants"); +const _tracer = require("./lib/trace/tracer"); +const _constants2 = require("./lib/trace/constants"); +const _formaturl = require("../shared/lib/router/utils/format-url"); +const _asynccallbackset = require("./lib/async-callback-set"); +const _routerservercontext = require("./lib/router-utils/router-server-context"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +let ServerImpl; +const getServerImpl = async ()=>{ + if (ServerImpl === undefined) { + ServerImpl = (await Promise.resolve(require('./next-server'))).default; + } + return ServerImpl; +}; +const SYMBOL_LOAD_CONFIG = Symbol('next.load_config'); +class NextServer { + constructor(options){ + this.options = options; + } + get hostname() { + return this.options.hostname; + } + get port() { + return this.options.port; + } + getRequestHandler() { + return async (req, res, parsedUrl)=>{ + return (0, _tracer.getTracer)().trace(_constants2.NextServerSpan.getRequestHandler, async ()=>{ + const requestHandler = await this.getServerRequestHandler(); + return requestHandler(req, res, parsedUrl); + }); + }; + } + /** + * @internal - this method is internal to Next.js and should not be used + * directly by end-users, only used in testing + */ getRequestHandlerWithMetadata(meta) { + return async (req, res, parsedUrl)=>{ + return (0, _tracer.getTracer)().trace(_constants2.NextServerSpan.getRequestHandlerWithMetadata, async ()=>{ + const server = await this.getServer(); + const handler = server.getRequestHandlerWithMetadata(meta); + return handler(req, res, parsedUrl); + }); + }; + } + getUpgradeHandler() { + return async (req, socket, head)=>{ + const server = await this.getServer(); + // @ts-expect-error we mark this as protected so it + // causes an error here + return server.handleUpgrade.apply(server, [ + req, + socket, + head + ]); + }; + } + setAssetPrefix(assetPrefix) { + if (this.server) { + this.server.setAssetPrefix(assetPrefix); + } else { + this.preparedAssetPrefix = assetPrefix; + } + } + logError(...args) { + if (this.server) { + this.server.logError(...args); + } + } + async logErrorWithOriginalStack(err, type) { + const server = await this.getServer(); + // this is only available on dev server + if (server.logErrorWithOriginalStack) { + return server.logErrorWithOriginalStack(err, type); + } + } + async revalidate(...args) { + const server = await this.getServer(); + return server.revalidate(...args); + } + async render(...args) { + const server = await this.getServer(); + return server.render(...args); + } + async renderToHTML(...args) { + const server = await this.getServer(); + return server.renderToHTML(...args); + } + async renderError(...args) { + const server = await this.getServer(); + return server.renderError(...args); + } + async renderErrorToHTML(...args) { + const server = await this.getServer(); + return server.renderErrorToHTML(...args); + } + async render404(...args) { + const server = await this.getServer(); + return server.render404(...args); + } + async prepare(serverFields) { + const server = await this.getServer(); + if (serverFields) { + Object.assign(server, serverFields); + } + // We shouldn't prepare the server in production, + // because this code won't be executed when deployed + if (this.options.dev) { + await server.prepare(); + } + } + async close() { + if (this.server) { + await this.server.close(); + } + } + async createServer(options) { + let ServerImplementation; + if (options.dev) { + ServerImplementation = require('./dev/next-dev-server').default; + } else { + ServerImplementation = await getServerImpl(); + } + const server = new ServerImplementation(options); + return server; + } + async [SYMBOL_LOAD_CONFIG]() { + const dir = _nodepath.default.resolve(/* turbopackIgnore: true */ this.options.dir || '.'); + const config = await (0, _config.default)(this.options.dev ? _constants1.PHASE_DEVELOPMENT_SERVER : _constants1.PHASE_PRODUCTION_SERVER, dir, { + customConfig: this.options.conf, + silent: true + }); + // check serialized build config when available + if (!this.options.dev) { + try { + const serializedConfig = require(/* turbopackIgnore: true */ _nodepath.default.join(/* turbopackIgnore: true */ dir, config.distDir, _constants1.SERVER_FILES_MANIFEST + '.json')).config; + config.experimental.isExperimentalCompile = serializedConfig.experimental.isExperimentalCompile; + } catch (_) { + // if distDir is customized we don't know until we + // load the config so fallback to loading the config + // from next.config.js + } + } + return config; + } + async getServer() { + if (!this.serverPromise) { + this.serverPromise = this[SYMBOL_LOAD_CONFIG]().then(async (conf)=>{ + if (!this.options.dev) { + if (conf.output === 'standalone') { + if (!process.env.__NEXT_PRIVATE_STANDALONE_CONFIG) { + _log.warn(`"next start" does not work with "output: standalone" configuration. Use "node .next/standalone/server.js" instead.`); + } + } else if (conf.output === 'export') { + throw Object.defineProperty(new Error(`"next start" does not work with "output: export" configuration. Use "npx serve@latest out" instead.`), "__NEXT_ERROR_CODE", { + value: "E375", + enumerable: false, + configurable: true + }); + } + } + this.server = await this.createServer({ + ...this.options, + conf + }); + if (this.preparedAssetPrefix) { + this.server.setAssetPrefix(this.preparedAssetPrefix); + } + return this.server; + }); + } + return this.serverPromise; + } + async getServerRequestHandler() { + if (this.reqHandler) return this.reqHandler; + // Memoize request handler creation + if (!this.reqHandlerPromise) { + this.reqHandlerPromise = this.getServer().then((server)=>{ + this.reqHandler = (0, _tracer.getTracer)().wrap(_constants2.NextServerSpan.getServerRequestHandler, server.getRequestHandler().bind(server)); + delete this.reqHandlerPromise; + return this.reqHandler; + }); + } + return this.reqHandlerPromise; + } +} +/** The wrapper server used for `import next from "next" (in a custom server)` */ class NextCustomServer { + constructor(options){ + this.didWebSocketSetup = false; + this.options = options; + } + getInit() { + if (!this.init) { + throw Object.defineProperty(new Error('prepare() must be called before performing this operation'), "__NEXT_ERROR_CODE", { + value: "E355", + enumerable: false, + configurable: true + }); + } + return this.init; + } + get requestHandler() { + return this.getInit().requestHandler; + } + get upgradeHandler() { + return this.getInit().upgradeHandler; + } + get server() { + return this.getInit().server; + } + get hostname() { + return this.options.hostname; + } + get port() { + return this.options.port; + } + async prepare() { + if (this.options.dev) { + process.env.__NEXT_DEV_SERVER = '1'; + } + const { getRequestHandlers } = require('./lib/start-server'); + let onDevServerCleanup; + if (this.options.dev) { + this.cleanupListeners = new _asynccallbackset.AsyncCallbackSet(); + onDevServerCleanup = this.cleanupListeners.add.bind(this.cleanupListeners); + } + const initResult = await getRequestHandlers({ + dir: this.options.dir, + port: this.options.port || 3000, + isDev: !!this.options.dev, + onDevServerCleanup, + hostname: this.options.hostname || 'localhost', + minimalMode: this.options.minimalMode, + quiet: this.options.quiet + }); + this.init = initResult; + } + setupWebSocketHandler(customServer, _req) { + if (!this.didWebSocketSetup) { + var _req_socket; + this.didWebSocketSetup = true; + customServer = customServer || (_req == null ? void 0 : (_req_socket = _req.socket) == null ? void 0 : _req_socket.server); + if (customServer) { + customServer.on('upgrade', async (req, socket, head)=>{ + this.upgradeHandler(req, socket, head); + }); + } + } + } + getRequestHandler() { + return async (req, res, parsedUrl)=>{ + this.setupWebSocketHandler(this.options.httpServer, req); + if (parsedUrl) { + req.url = (0, _formaturl.formatUrl)(parsedUrl); + } + return this.requestHandler(req, res); + }; + } + async render(...args) { + let [req, res, pathname, query, parsedUrl] = args; + this.setupWebSocketHandler(this.options.httpServer, req); + if (!pathname.startsWith('/')) { + console.error(`Cannot render page with path "${pathname}"`); + pathname = `/${pathname}`; + } + pathname = pathname === '/index' ? '/' : pathname; + req.url = (0, _formaturl.formatUrl)({ + ...parsedUrl, + pathname, + query + }); + await this.requestHandler(req, res); + return; + } + setAssetPrefix(assetPrefix) { + var _routerServerGlobal_RouterServerContextSymbol_relativeProjectDir, _routerServerGlobal_RouterServerContextSymbol; + this.server.setAssetPrefix(assetPrefix); + // update the router-server nextConfig instance as + // this is the source of truth for "handler" in serverful + const relativeProjectDir = _nodepath.default.relative(process.cwd(), this.options.dir || ''); + if ((_routerServerGlobal_RouterServerContextSymbol = _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol]) == null ? void 0 : (_routerServerGlobal_RouterServerContextSymbol_relativeProjectDir = _routerServerGlobal_RouterServerContextSymbol[relativeProjectDir]) == null ? void 0 : _routerServerGlobal_RouterServerContextSymbol_relativeProjectDir.nextConfig) { + _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol][relativeProjectDir].nextConfig.assetPrefix = assetPrefix; + } + } + getUpgradeHandler() { + return this.server.getUpgradeHandler(); + } + logError(...args) { + this.server.logError(...args); + } + logErrorWithOriginalStack(err, type) { + return this.server.logErrorWithOriginalStack(err, type); + } + async revalidate(...args) { + return this.server.revalidate(...args); + } + async renderToHTML(...args) { + return this.server.renderToHTML(...args); + } + async renderError(...args) { + return this.server.renderError(...args); + } + async renderErrorToHTML(...args) { + return this.server.renderErrorToHTML(...args); + } + async render404(...args) { + return this.server.render404(...args); + } + async close() { + var _this_init, _this_cleanupListeners; + await Promise.allSettled([ + (_this_init = this.init) == null ? void 0 : _this_init.server.close(), + (_this_cleanupListeners = this.cleanupListeners) == null ? void 0 : _this_cleanupListeners.runAll() + ]); + } +} +// This file is used for when users run `require('next')` +function createServer(options) { + // next sets customServer to false when calling this function, in that case we don't want to modify the environment variables + const isCustomServer = (options == null ? void 0 : options.customServer) ?? true; + if (isCustomServer) { + const selectTurbopack = options && (options.turbo || options.turbopack || process.env.IS_TURBOPACK_TEST); + const selectWebpack = options && (options.webpack || process.env.IS_WEBPACK_TEST); + if (selectTurbopack && selectWebpack) { + throw Object.defineProperty(new Error('Pass either `webpack` or `turbopack`, not both.'), "__NEXT_ERROR_CODE", { + value: "E851", + enumerable: false, + configurable: true + }); + } + if (selectTurbopack || !selectWebpack) { + process.env.TURBOPACK ??= selectTurbopack ? '1' : 'auto'; + } + } else { + if (options && (options.webpack || options.turbo || options.turbopack)) { + throw Object.defineProperty(new Error('Only custom servers can pass `webpack`, `turbo`, or `turbopack`.'), "__NEXT_ERROR_CODE", { + value: "E852", + enumerable: false, + configurable: true + }); + } + } + // The package is used as a TypeScript plugin. + if (options && 'typescript' in options && 'version' in options.typescript) { + const pluginMod = require('./next-typescript'); + return pluginMod.createTSPlugin(options); + } + if (options == null) { + throw Object.defineProperty(new Error('The server has not been instantiated properly. https://nextjs.org/docs/messages/invalid-server-options'), "__NEXT_ERROR_CODE", { + value: "E75", + enumerable: false, + configurable: true + }); + } + if (!('isNextDevCommand' in options) && process.env.NODE_ENV && ![ + 'production', + 'development', + 'test' + ].includes(process.env.NODE_ENV)) { + _log.warn(_constants.NON_STANDARD_NODE_ENV); + } + if (options.dev && typeof options.dev !== 'boolean') { + console.warn("Warning: 'dev' is not a boolean which could introduce unexpected behavior. https://nextjs.org/docs/messages/invalid-server-options"); + } + // When the caller is a custom server (using next()). + if (options.customServer !== false) { + const dir = _nodepath.default.resolve(/* turbopackIgnore: true */ options.dir || '.'); + return new NextCustomServer({ + ...options, + dir + }); + } + // When the caller is Next.js internals (i.e. render worker, start server, etc) + return new NextServer(options); +} +// Support commonjs `require('next')` +module.exports = createServer; +const _default = createServer; + +//# sourceMappingURL=next.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-baseline.js b/cli/app/node_modules/next/dist/server/node-environment-baseline.js new file mode 100644 index 00000000000..57c2d8ef8d3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-baseline.js @@ -0,0 +1,25 @@ +// This file should be imported before any others. It sets up the environment +// for later imports to work properly. +// expose AsyncLocalStorage on global for react usage if it isn't already provided by the environment +"use strict"; +if (typeof globalThis.AsyncLocalStorage !== 'function') { + const { AsyncLocalStorage } = require('async_hooks'); + globalThis.AsyncLocalStorage = AsyncLocalStorage; +} +if (typeof globalThis.WebSocket !== 'function') { + Object.defineProperty(globalThis, 'WebSocket', { + configurable: true, + get () { + return require('next/dist/compiled/ws').WebSocket; + }, + set (value) { + Object.defineProperty(globalThis, 'WebSocket', { + configurable: true, + writable: true, + value + }); + } + }); +} + +//# sourceMappingURL=node-environment-baseline.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js new file mode 100644 index 00000000000..e2b147ac59d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/console-dim.external.js @@ -0,0 +1,301 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "setAbortedLogsStyle", { + enumerable: true, + get: function() { + return setAbortedLogsStyle; + } +}); +const _nodeinspector = /*#__PURE__*/ _interop_require_wildcard(require("node:inspector")); +const _picocolors = require("../../lib/picocolors"); +const _consoleasyncstorageexternal = require("../app-render/console-async-storage.external"); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const _runtimereactsexternal = require("../runtime-reacts.external"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// eslint-disable-next-line @typescript-eslint/no-unused-vars -- we may use later and want parity with the HIDDEN_STYLE value +const DIMMED_STYLE = 'dimmed'; +const HIDDEN_STYLE = 'hidden'; +let currentAbortedLogsStyle = 'dimmed'; +function setAbortedLogsStyle(style) { + currentAbortedLogsStyle = style; +} +const isColorSupported = (0, _picocolors.dim)('test') !== 'test'; +// 50% opacity for dimmed text +const dimStyle = 'color: color(from currentColor xyz x y z / 0.5);'; +const reactBadgeFormat = '\x1b[0m\x1b[7m%c%s\x1b[0m%c '; +function dimmedConsoleArgs(...inputArgs) { + if (!isColorSupported) { + return inputArgs; + } + const newArgs = inputArgs.slice(0); + let template = ''; + let argumentsPointer = 0; + if (typeof inputArgs[0] === 'string') { + const originalTemplateString = inputArgs[0]; + // Remove the original template string from the args. + newArgs.splice(argumentsPointer, 1); + argumentsPointer += 1; + let i = 0; + if (originalTemplateString.startsWith(reactBadgeFormat)) { + i = reactBadgeFormat.length; + // for `format` we already moved the pointer earlier + // style, badge, reset style + argumentsPointer += 3; + template += reactBadgeFormat; + // React's badge reset styles, reapply dimming + template += '\x1b[2m%c'; + // argumentsPointer includes template + newArgs.splice(argumentsPointer - 1, 0, dimStyle); + // dim the badge + newArgs[0] += `;${dimStyle}`; + } + for(i; i < originalTemplateString.length; i++){ + const currentChar = originalTemplateString[i]; + if (currentChar !== '%') { + template += currentChar; + continue; + } + const nextChar = originalTemplateString[i + 1]; + ++i; + switch(nextChar){ + case 'f': + case 'O': + case 'o': + case 'd': + case 's': + case 'i': + case 'c': + ++argumentsPointer; + template += `%${nextChar}`; + break; + default: + template += `%${nextChar}`; + } + } + } + for(argumentsPointer; argumentsPointer < inputArgs.length; ++argumentsPointer){ + const arg = inputArgs[argumentsPointer]; + const argType = typeof arg; + if (argumentsPointer > 0) { + template += ' '; + } + switch(argType){ + case 'boolean': + case 'string': + template += '%s'; + break; + case 'bigint': + template += '%s'; + break; + case 'number': + if (arg % 0) { + template += '%f'; + } else { + template += '%d'; + } + break; + case 'object': + template += '%O'; + break; + case 'symbol': + case 'undefined': + case 'function': + template += '%s'; + break; + default: + // deopt to string for new, unknown types + template += '%s'; + } + } + template += '\x1b[22m'; + return [ + (0, _picocolors.dim)(`%c${template}`), + dimStyle, + ...newArgs + ]; +} +function convertToDimmedArgs(methodName, args) { + // When the Node.js inspector is open (e.g. --inspect), skip dimming entirely. + // Dimming wraps arguments in a format string which defeats inspector + // affordances such as collapsible objects and clickable/linkified stack + // traces. Ideally we would only skip dimming when a debugger frontend is + // actually attached, but Node.js does not expose a synchronous API for that. + // Detecting would require async polling of the /json/list HTTP endpoint. + if (_nodeinspector.url() !== undefined) { + return args; + } + switch(methodName){ + case 'dir': + case 'dirxml': + case 'group': + case 'groupCollapsed': + case 'groupEnd': + case 'table': + { + // These methods cannot be colorized because they don't take a formatting string. + return args; + } + case 'assert': + { + // assert takes formatting options as the second argument. + return [ + args[0] + ].concat(...dimmedConsoleArgs(args[1], ...args.slice(2))); + } + case 'error': + case 'debug': + case 'info': + case 'log': + case 'trace': + case 'warn': + return dimmedConsoleArgs(args[0], ...args.slice(1)); + default: + return methodName; + } +} +// Based on https://github.com/facebook/react/blob/28dc0776be2e1370fe217549d32aee2519f0cf05/packages/react-server/src/ReactFlightServer.js#L248 +function patchConsoleMethod(methodName) { + const descriptor = Object.getOwnPropertyDescriptor(console, methodName); + if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') { + const originalMethod = descriptor.value; + const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name'); + const wrapperMethod = function(...args) { + var _getClientReact, _getServerReact; + const consoleStore = _consoleasyncstorageexternal.consoleAsyncStorage.getStore(); + // First we see if there is a cache signal for our current scope. If we're in a client render it'll + // come from the client React cacheSignal implementation. If we are in a server render it'll come from + // the server React cacheSignal implementation. Any particular console call will be in one, the other, or neither + // scope and these signals return null if you are out of scope so this can be called from a single global patch + // and still work properly. + const signal = ((_getClientReact = (0, _runtimereactsexternal.getClientReact)()) == null ? void 0 : _getClientReact.cacheSignal()) ?? ((_getServerReact = (0, _runtimereactsexternal.getServerReact)()) == null ? void 0 : _getServerReact.cacheSignal()); + if (signal) { + // We are in a React Server render and can consult the React cache signal to determine if logs + // are now dimmable. + if (signal.aborted) { + if (currentAbortedLogsStyle === HIDDEN_STYLE) { + return; + } + return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args); + } else if ((consoleStore == null ? void 0 : consoleStore.dim) === true) { + return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args); + } else { + return originalMethod.apply(this, args); + } + } + // We need to fall back to checking the work unit store for two reasons. + // 1. Client React does not yet implement cacheSignal (it always returns null) + // 2. route.ts files aren't rendered with React but do have prerender semantics + // TODO in the future we should be able to remove this once there is a runnable cache + // scope independent of actual React rendering. + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + switch(workUnitStore == null ? void 0 : workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + // These can be hit in a route handler. In the future we can use potential React.createCache API + // to create a cache scope for arbitrary computation and can move over to cacheSignal exclusively. + // fallthrough + case 'prerender-client': + case 'validation-client': + { + // This is a react-dom/server render and won't have a cacheSignal until React adds this for the client world. + const renderSignal = workUnitStore.renderSignal; + if (renderSignal.aborted) { + if (currentAbortedLogsStyle === HIDDEN_STYLE) { + return; + } + return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args); + } + } + // intentional fallthrough + case 'prerender-legacy': + case 'prerender-ppr': + case 'cache': + case 'unstable-cache': + case 'private-cache': + case 'request': + case 'generate-static-params': + case undefined: + if ((consoleStore == null ? void 0 : consoleStore.dim) === true) { + return applyWithDimming.call(this, consoleStore, originalMethod, methodName, args); + } else { + return originalMethod.apply(this, args); + } + default: + workUnitStore; + } + }; + if (originalName) { + Object.defineProperty(wrapperMethod, 'name', originalName); + } + Object.defineProperty(console, methodName, { + value: wrapperMethod + }); + } +} +function applyWithDimming(consoleStore, method, methodName, args) { + if ((consoleStore == null ? void 0 : consoleStore.dim) === true) { + return method.apply(this, convertToDimmedArgs(methodName, args)); + } else { + return _consoleasyncstorageexternal.consoleAsyncStorage.run(DIMMED_STORE, method.bind(this, ...convertToDimmedArgs(methodName, args))); + } +} +const DIMMED_STORE = { + dim: true +}; +patchConsoleMethod('error'); +patchConsoleMethod('assert'); +patchConsoleMethod('debug'); +patchConsoleMethod('dir'); +patchConsoleMethod('dirxml'); +patchConsoleMethod('group'); +patchConsoleMethod('groupCollapsed'); +patchConsoleMethod('groupEnd'); +patchConsoleMethod('info'); +patchConsoleMethod('log'); +patchConsoleMethod('table'); +patchConsoleMethod('trace'); +patchConsoleMethod('warn'); + +//# sourceMappingURL=console-dim.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/console-exit.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/console-exit.js new file mode 100644 index 00000000000..185ebad3266 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/console-exit.js @@ -0,0 +1,49 @@ +/** + * Patches console methods to exit the workUnitAsyncStorage so that inside the host implementation + * sync IO can be called. This is relevant for example with runtimes that patch console methods to + * prepend a timestamp to the log output. + * + * Note that this will only exit for already installed patched console methods. If you further patch + * the console method after this and add any sync IO there it will trigger sync IO warnings while prerendering. + * + * This is a pragmatic concession because layering the patches if you install your own log implementation + * after they are installed is very tricky to do correctly because the order matters + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +function patchConsoleMethod(methodName) { + const descriptor = Object.getOwnPropertyDescriptor(console, methodName); + if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') { + const originalMethod = descriptor.value; + const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name'); + let wrapperMethod = function(...args) { + return _workunitasyncstorageexternal.workUnitAsyncStorage.exit(()=>originalMethod.apply(console, args)); + }; + if (originalName) { + Object.defineProperty(wrapperMethod, 'name', originalName); + } + Object.defineProperty(console, methodName, { + value: wrapperMethod + }); + } +} +// We patch the same methods that React and our dev patch do. +// We may find other methods that could benefit from patching but if +// they exist we ought to consider patching them in all three places +patchConsoleMethod('error'); +patchConsoleMethod('assert'); +patchConsoleMethod('debug'); +patchConsoleMethod('dir'); +patchConsoleMethod('dirxml'); +patchConsoleMethod('group'); +patchConsoleMethod('groupCollapsed'); +patchConsoleMethod('groupEnd'); +patchConsoleMethod('info'); +patchConsoleMethod('log'); +patchConsoleMethod('table'); +patchConsoleMethod('trace'); +patchConsoleMethod('warn'); + +//# sourceMappingURL=console-exit.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/console-file.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/console-file.js new file mode 100644 index 00000000000..0096412f8c4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/console-file.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _consoleasyncstorageexternal = require("../app-render/console-async-storage.external"); +const _filelogger = require("../dev/browser-logs/file-logger"); +const _console = require("../../client/lib/console"); +// Based on https://github.com/facebook/react/blob/28dc0776be2e1370fe217549d32aee2519f0cf05/packages/react-server/src/ReactFlightServer.js#L248 +function patchConsoleMethodDEV(methodName) { + const descriptor = Object.getOwnPropertyDescriptor(console, methodName); + if (descriptor && (descriptor.configurable || descriptor.writable) && typeof descriptor.value === 'function') { + const originalMethod = descriptor.value; + const originalName = Object.getOwnPropertyDescriptor(originalMethod, 'name'); + const wrapperMethod = function(...args) { + const consoleStore = _consoleasyncstorageexternal.consoleAsyncStorage.getStore(); + if ((consoleStore == null ? void 0 : consoleStore.dim) === true) { + // In this context the log args are already dimmed. We use the console store + // to decide if this log is ignorable for reporting in our file logger. + return originalMethod.apply(this, args); + } else { + const ret = originalMethod.apply(this, args); + const fileLogger = (0, _filelogger.getFileLogger)(); + const message = (0, _console.formatConsoleArgs)(args); + // Strip ANSI escape codes for file logging + // eslint-disable-next-line no-control-regex + const ansiEscapeRegex = new RegExp('\u001b\\[[0-9;]*m', 'g'); + const cleanMessage = message.replace(ansiEscapeRegex, ''); + fileLogger.logServer(methodName.toUpperCase(), cleanMessage); + return ret; + } + }; + if (originalName) { + Object.defineProperty(wrapperMethod, 'name', originalName); + } + Object.defineProperty(console, methodName, { + value: wrapperMethod + }); + } +} +if (process.env.NODE_ENV === 'development') { + patchConsoleMethodDEV('error'); + patchConsoleMethodDEV('assert'); + patchConsoleMethodDEV('debug'); + patchConsoleMethodDEV('dir'); + patchConsoleMethodDEV('dirxml'); + patchConsoleMethodDEV('group'); + patchConsoleMethodDEV('groupCollapsed'); + patchConsoleMethodDEV('groupEnd'); + patchConsoleMethodDEV('info'); + patchConsoleMethodDEV('log'); + patchConsoleMethodDEV('table'); + patchConsoleMethodDEV('trace'); + patchConsoleMethodDEV('warn'); +} + +//# sourceMappingURL=console-file.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/date.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/date.js new file mode 100644 index 00000000000..b8ff756af49 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/date.js @@ -0,0 +1,52 @@ +/** + * We extend `Date` during builds and revalidates to ensure that prerenders don't observe the clock as a source of IO + * When cacheComponents is enabled. The current time is a form of IO even though it resolves synchronously. When cacheComponents is + * enabled we need to ensure that clock time is excluded from prerenders unless it is cached. + * + * There is tension here because time is used for both output and introspection. While arbitrary we intend to reserve + * `Date` for output use cases and `performance` for introspection use cases. If you want to measure + * how long something takes use `performance.timeOrigin` and `performance.now()` rather than `Date.now()` for instance. + * + * The extensions here never error nor alter the underlying Date objects, strings, and numbers created and thus should be transparent to callers. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _ioutils = require("./io-utils"); +function createNow(originalNow) { + return ({ + now: function now() { + (0, _ioutils.io)('`Date.now()`', 'time'); + return originalNow(); + } + })['now'.slice()].bind(null); +} +function createDate(originalConstructor) { + const properties = Object.getOwnPropertyDescriptors(originalConstructor); + properties.now.value = createNow(originalConstructor.now); + const apply = Reflect.apply; + const construct = Reflect.construct; + const newConstructor = Object.defineProperties(// Ideally this should not minify the name. + function Date1() { + if (new.target === undefined) { + (0, _ioutils.io)('`Date()`', 'time'); + return apply(originalConstructor, undefined, arguments); + } + if (arguments.length === 0) { + (0, _ioutils.io)('`new Date()`', 'time'); + } + return construct(originalConstructor, arguments, new.target); + }, properties); + Object.defineProperty(originalConstructor.prototype, 'constructor', { + value: newConstructor + }); + return newConstructor; +} +try { + // eslint-disable-next-line no-native-reassign + Date = createDate(Date); +} catch { + console.error('Failed to install `Date` class extension. When using `cacheComponents`, APIs that read the current time will not correctly trigger dynamic behavior.'); +} + +//# sourceMappingURL=date.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/error-inspect.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/error-inspect.js new file mode 100644 index 00000000000..0ae3287dc02 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/error-inspect.js @@ -0,0 +1,8 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _patcherrorinspect = require("../patch-error-inspect"); +(0, _patcherrorinspect.patchErrorInspectNodeJS)(globalThis.Error); + +//# sourceMappingURL=error-inspect.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js new file mode 100644 index 00000000000..eeaa0ae5f90 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/fast-set-immediate.external.js @@ -0,0 +1,577 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DANGEROUSLY_runPendingImmediatesAfterCurrentTask: null, + expectNoPendingImmediates: null, + unpatchedSetImmediate: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DANGEROUSLY_runPendingImmediatesAfterCurrentTask: function() { + return DANGEROUSLY_runPendingImmediatesAfterCurrentTask; + }, + expectNoPendingImmediates: function() { + return expectNoPendingImmediates; + }, + unpatchedSetImmediate: function() { + return originalSetImmediate; + } +}); +const _nodeutil = require("node:util"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _asynclocalstorage = require("../app-render/async-local-storage"); +var ExecutionState = /*#__PURE__*/ function(ExecutionState) { + ExecutionState[ExecutionState["Waiting"] = 1] = "Waiting"; + ExecutionState[ExecutionState["Working"] = 2] = "Working"; + ExecutionState[ExecutionState["Finished"] = 3] = "Finished"; + ExecutionState[ExecutionState["Abandoned"] = 4] = "Abandoned"; + return ExecutionState; +}(ExecutionState || {}); +const FAST_SET_IMMEDIATE_ORIGINALS_KEY = Symbol.for('next.fast-set-immediate.originals'); +// Re-evaluations in dev should always use the same base/original functions. +const originals = globalThis[FAST_SET_IMMEDIATE_ORIGINALS_KEY] ?? (globalThis[FAST_SET_IMMEDIATE_ORIGINALS_KEY] = { + setImmediate: globalThis.setImmediate, + clearImmediate: globalThis.clearImmediate, + nextTick: process.nextTick +}); +let wasEnabledAtLeastOnce = false; +let pendingNextTicks = 0; +let currentExecution = null; +const originalSetImmediate = originals.setImmediate; +const originalClearImmediate = originals.clearImmediate; +const originalNextTick = originals.nextTick; +const originalSetImmediatePromisify = typeof originalSetImmediate === 'function' ? originalSetImmediate[_nodeutil.promisify.custom] : // and won't ever enable the patch, so this can be a dummy value +undefined; +function install() { + if (process.env.NEXT_RUNTIME === 'edge') { + // Nothing to patch. The exported functions all error if used in the edge runtime, + // so we're not going to violate any assumptions by not patching. + return; + } else { + debug == null ? void 0 : debug('installing fast setImmediate patch'); + const nodeTimers = require('node:timers'); + globalThis.setImmediate = nodeTimers.setImmediate = // Workaround for missing __promisify__ which is not a real property + patchedSetImmediate; + globalThis.clearImmediate = nodeTimers.clearImmediate = patchedClearImmediate; + const nodeTimersPromises = require('node:timers/promises'); + nodeTimersPromises.setImmediate = patchedSetImmediatePromise; + process.nextTick = patchedNextTick; + } +} +function DANGEROUSLY_runPendingImmediatesAfterCurrentTask() { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('DANGEROUSLY_runPendingImmediatesAfterCurrentTask cannot be called in the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E960", + enumerable: false, + configurable: true + }); + } else { + const execution = startCapturingImmediates(); + try { + scheduleWorkAfterNextTicksAndMicrotasks(execution); + } catch (err) { + // If this error comes from a bail() call, rethrow it. + if (execution.state === 4) { + throw err; + } + // Otherwise, bail out here. + bail(execution, Object.defineProperty(new _invarianterror.InvariantError('An unexpected error occurred while starting to capture immediates', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E964", + enumerable: false, + configurable: true + })); + } + } +} +function expectNoPendingImmediates() { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('expectNoPendingImmediates cannot be called in the edge runtime'), "__NEXT_ERROR_CODE", { + value: "E962", + enumerable: false, + configurable: true + }); + } else { + if (currentExecution !== null) { + bail(currentExecution, Object.defineProperty(new _invarianterror.InvariantError(`Expected all captured immediates to have been executed (state: ${ExecutionState[currentExecution.state]})`), "__NEXT_ERROR_CODE", { + value: "E958", + enumerable: false, + configurable: true + })); + } + } +} +/** + * Wait until all nextTicks and microtasks spawned from the current task are done, + * then execute any immediates that they queued. + * */ function scheduleWorkAfterNextTicksAndMicrotasks(execution) { + if (execution.state !== 1) { + throw Object.defineProperty(new _invarianterror.InvariantError(`scheduleWorkAfterTicksAndMicrotasks can only be called while waiting (state: ${ExecutionState[execution.state]})`), "__NEXT_ERROR_CODE", { + value: "E959", + enumerable: false, + configurable: true + }); + } + // We want to execute "fast immediates" after all the nextTicks and microtasks + // spawned from the current task are done. + // The ordering here is: + // + // 1. sync code + // 2. process.nextTick (scheduled from sync code, or from one of these nextTicks) + // 3. microtasks + // 4. process.nextTick (scheduled from microtasks, e.g. `queueMicrotask(() => process.nextTick(callback))`) + // + // We want to run to run in step 4, because that's the latest point before the next tick. + // However, there might also be other callbacks scheduled to run in that step. + // But importantly, they had to be scheduled using a `process.nextTick`, + // so we can detect them by checking if `pendingNextTicks > 0`. + // In that case, we'll just reschedule ourselves in the same way again to let them run first. + // (this process can theoretically repeat multiple times, hence the recursion). + queueMicrotask(()=>{ + // (note that this call won't increment `pendingNextTicks`, + // only the patched `process.nextTick` does that, so this won't loop infinitely) + originalNextTick(()=>{ + // We're now in a nextTick, which means that we're executing inside `processTicksAndRejections`: + // https://github.com/nodejs/node/blob/d546e7fd0bc3cbb4bcc2baae6f3aa44d2e81a413/lib/internal/process/task_queues.js#L84 + // All the work scheduled here will happen within that `processTicksAndRejections` loop. + // Reading the source of `processTicksAndRejections` can help understand the timing here -- + // All we're really doing is strategically pushing callbacks into the two queues + // (nextTicks and microtasks) that that function is currently looping over. + try { + if (execution.state === 4 || currentExecution !== execution) { + debug == null ? void 0 : debug(`scheduler :: the execution was abandoned`); + return; + } + if (pendingNextTicks > 0) { + // Other nextTicks have been scheduled. Let those run first, then try again -- + // we're simulating a event loop task, so all nextTicks should be exhausted before we execute. + debug == null ? void 0 : debug(`scheduler :: yielding to ${pendingNextTicks} nextTicks`); + return scheduleWorkAfterNextTicksAndMicrotasks(execution); + } + // There's no other nextTicks, we're the last one, so we're about to move on to the next task (likely a timer). + // Now, we can try and execute any queued immediates. + return performWork(execution); + } catch (err) { + // If this error comes from a bail() call, rethrow it. + // typescript can't tell that the state might've been mutated + // and the narrowing from above is no longer valid + const executionAfterWork = execution; + if (executionAfterWork.state === 4) { + throw err; + } + // Otherwise, bail out here (which will trigger an uncaught exception) + // Note that we're using the same microtask trick as `safelyRunNextTickCallback`. + queueMicrotask(()=>{ + bail(execution, Object.defineProperty(new _invarianterror.InvariantError('An unexpected error occurred while executing immediates', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E955", + enumerable: false, + configurable: true + })); + }); + } + }); + }); +} +/** Execute one immediate, and schedule a check for more (in case there's others in the queue) */ function performWork(execution) { + if (execution.state === 4) { + return; + } + debug == null ? void 0 : debug(`scheduler :: performing work`); + if (execution.state !== 1) { + throw Object.defineProperty(new _invarianterror.InvariantError(`performWork can only be called while waiting (state: ${ExecutionState[execution.state]})`), "__NEXT_ERROR_CODE", { + value: "E956", + enumerable: false, + configurable: true + }); + } + execution.state = 2; + const queueItem = takeNextActiveQueueItem(execution); + if (queueItem === null) { + debug == null ? void 0 : debug(`scheduler :: no immediates queued, exiting`); + stopCapturingImmediates(execution); + return; + } + debug == null ? void 0 : debug(`scheduler :: executing queued immediate`); + const { immediateObject, callback, args } = queueItem; + immediateObject[INTERNALS].queueItem = null; + clearQueueItem(queueItem); + // Execute the immediate. + // If a sync error was thrown in the immediate, we want to trigger a `uncaughtException`. + // However, we're executing in a nextTick, and if a nextTick callback errors, + // It'll break out of `processTicksAndRejections` (note the lack of a `catch` block): + // https://github.com/nodejs/node/blob/d546e7fd0bc3cbb4bcc2baae6f3aa44d2e81a413/lib/internal/process/task_queues.js#L81-L97 + // Meaning that the event loop will stop executing nextTicks and move on to the next timer + // (or other phase of the event loop, but we expect to be running in a sequence of timers here). + // Then, the remaining ticks will run after that timer, since they're still in the queue. + // + // This would completely break the timing we're trying to achieve here -- + // The point of this patch is to execute immediates before the next timer! + // So, we need to work around this behavior. (both here and in our `process.nextTick` patch). + // + // We can sidestep this by catching the synchronous error and rethrowing it in a microtask. + // (NOTE: if we use `queueMicrotask`, it'll trigger `uncaughtException`, not `unhandledRejection`, + // because there's no promise being rejected.) + // + // This will make `uncaughtException` happen: + // - Before the next fast immediate (`scheduleWorkAfterNextTicksAndMicrotasks` also uses `queueMicrotask`). + // This is good, and matches usual observable behavior of immediates. + // - AFTER nextTicks scheduled from the immediate itself. + // This deviates from native setImmediate, which would call `uncaughtException` first, + // and skip ahead to the next task as explained above. + // + // This is technically an observable difference in behavior, but it seems niche enough that + // it shouldn't cause problems -- we don't expect user code to use `uncaughtException` for control flow, + // only error reporting, so subtly changing the timing shouldn't matter. + let didThrow = false; + let thrownValue = undefined; + queueMicrotask(()=>{ + if (didThrow) { + debug == null ? void 0 : debug('scheduler :: rethrowing sync error from immediate in microtask'); + throw thrownValue; + } + }); + try { + if (args !== null) { + callback.apply(null, args); + } else { + callback(); + } + } catch (err) { + // We'll rethrow the error in the microtask above. + didThrow = true; + thrownValue = err; + } + // Schedule the loop again in case there's more immediates after this one. + // Note that we can't just check if the queue is empty now, because new immediates + // might still be scheduled asynchronously, from an upcoming nextTick or microtask. + execution.state = 1; + scheduleWorkAfterNextTicksAndMicrotasks(execution); +} +function takeNextActiveQueueItem(execution) { + // Find the first (if any) queued immediate that wasn't cleared. + // We don't remove immediates from the array when they're cleared, + // so this requires some legwork to exclude (and possibly drop) cleared items. + const { queuedImmediates } = execution; + let firstActiveItem = null; + let firstActiveItemIndex = -1; + for(let i = 0; i < queuedImmediates.length; i++){ + const item = queuedImmediates[i]; + if (!item.isCleared) { + firstActiveItem = item; + firstActiveItemIndex = i; + break; + } + } + if (firstActiveItem === null) { + // We didn't find an active item. + // If the queue isn't empty, then it must only contain cleared items. Empty it. + if (queuedImmediates.length > 0) { + queuedImmediates.length = 0; + } + return null; + } + // Remove all items up to and including `nextActiveItemIndex` from the queue. + // (if it's not the first item, then it must be preceded by cleared items, which we want to drop anyway) + if (firstActiveItemIndex === 0) { + // Fast path - drop the first item + // (`splice` creates a result array for the removed items, so this is more efficient) + queuedImmediates.shift(); + } else { + queuedImmediates.splice(0, firstActiveItemIndex + 1); + } + return firstActiveItem; +} +function startCapturingImmediates() { + if (currentExecution !== null) { + bail(currentExecution, Object.defineProperty(new _invarianterror.InvariantError(`Cannot start capturing immediates again without finishing the previous task (state: ${ExecutionState[currentExecution.state]})`), "__NEXT_ERROR_CODE", { + value: "E954", + enumerable: false, + configurable: true + })); + } + wasEnabledAtLeastOnce = true; + const execution = { + state: 1, + queuedImmediates: [] + }; + currentExecution = execution; + return execution; +} +function stopCapturingImmediates(execution) { + if (execution.state === 4) { + return; + } + // This check enforces that we run performWork at least once before stopping + // to make sure that we've waited for all the nextTicks and microtasks + // that might've scheduled some immediates after sync code. + if (execution.state !== 2) { + throw Object.defineProperty(new _invarianterror.InvariantError(`Cannot stop capturing immediates before execution is finished (state: ${ExecutionState[execution.state]})`), "__NEXT_ERROR_CODE", { + value: "E957", + enumerable: false, + configurable: true + }); + } + execution.state = 3; + if (currentExecution === execution) { + currentExecution = null; + } +} +function bail(execution, error) { + // Reset the state as best we can to prevent further crashes. + // Otherwise, any subsequent call to `DANGEROUSLY_runPendingImmediatesAfterCurrentTask` + // would error, requiring a server restart to fix. + if (currentExecution === execution) { + currentExecution = null; + } + execution.state = 4; + // If we have any queued immediates, schedule them with native `setImmediate` and clear the queue. + // We don't want to skip running them altogether, because that could lead to + // e.g. hanging promises (for `new Promise((resolve) => setImmediate(resolve))`), + // but we're in an inconsistent state and can't run them as fast immediates, + // so this is the next best thing. + for (const queueItem of execution.queuedImmediates){ + if (queueItem.isCleared) { + continue; + } + scheduleQueuedImmediateAsNativeImmediate(queueItem); + } + execution.queuedImmediates.length = 0; + // Don't reset `pendingNextTicks` -- it will reset to 0 on its own as the nextTicks execute. + // If we set it to 0 here while we still have pending ticks, they'd decrement it below 0. + throw error; +} +function scheduleQueuedImmediateAsNativeImmediate(queueItem) { + const { callback, args, immediateObject } = queueItem; + const hasRef = immediateObject[INTERNALS].hasRef; + clearQueueItem(queueItem); + const nativeImmediate = args !== null ? originalSetImmediate(callback, ...args) : originalSetImmediate(callback); + if (!hasRef) { + nativeImmediate.unref(); + } + // Make our fake immediate object proxy all relevant operations + // (clearing, ref(), unref(), hasRef()) to the actual native immediate. + proxyQueuedImmediateToNativeImmediate(immediateObject, nativeImmediate); +} +function clearQueueItem(originalQueueItem) { + const queueItem = originalQueueItem; + queueItem.isCleared = true; + queueItem.callback = null; + queueItem.args = null; + queueItem.immediateObject = null; +} +function patchedNextTick() { + if (currentExecution === null) { + return originalNextTick.apply(null, // @ts-expect-error: this is valid, but typescript doesn't get it + arguments); + } + if (arguments.length === 0 || typeof arguments[0] !== 'function') { + // Let the original nextTick error for invalid arguments + // so that we don't have to mirror the error message. + originalNextTick.apply(null, // @ts-expect-error: explicitly passing arguments that we know are invalid + arguments); + // We expect the above call to throw. If it didn't, something's broken. + bail(currentExecution, Object.defineProperty(new _invarianterror.InvariantError('Expected process.nextTick to reject invalid arguments'), "__NEXT_ERROR_CODE", { + value: "E966", + enumerable: false, + configurable: true + })); + } + debug == null ? void 0 : debug(`scheduler :: process.nextTick called (previous pending: ${pendingNextTicks})`); + const callback = arguments[0]; + const args = arguments.length > 1 ? Array.prototype.slice.call(arguments, 1) : null; + pendingNextTicks += 1; + return originalNextTick(safelyRunNextTickCallback, callback, args); +} +function safelyRunNextTickCallback(callback, args) { + pendingNextTicks -= 1; + debug == null ? void 0 : debug(`scheduler :: process.nextTick executing (still pending: ${pendingNextTicks})`); + // Synchronous errors in nextTick break out of `processTicksAndRejections` and cause us + // to move on to the next timer without having executed the whole nextTick queue, + // which breaks our entire scheduling mechanism. See `performWork` for more details. + try { + if (args !== null) { + callback.apply(null, args); + } else { + callback(); + } + } catch (err) { + // We want to make sure `nextTick` is cheap, so unlike `performWork`, + // we only queue the microtask if an error actually occurs. + // This (observably) changes the timing of `uncaughtException` even more, + // because it'll run after microtasks queued from the nextTick, + // but hopefully this is niche enough to not affect any real world code. + queueMicrotask(()=>{ + debug == null ? void 0 : debug(`scheduler :: rethrowing sync error from nextTick in a microtask`); + throw err; + }); + } +} +function patchedSetImmediate() { + if (currentExecution === null) { + return originalSetImmediate.apply(null, // @ts-expect-error: this is valid, but typescript doesn't get it + arguments); + } + if (arguments.length === 0 || typeof arguments[0] !== 'function') { + // Let the original setImmediate error for invalid arguments + // so that we don't have to mirror the error message. + originalSetImmediate.apply(null, // @ts-expect-error: explicitly passing arguments that we know are invalid + arguments); + // We expect the above call to throw. If it didn't, something's broken. + bail(currentExecution, Object.defineProperty(new _invarianterror.InvariantError('Expected setImmediate to reject invalid arguments'), "__NEXT_ERROR_CODE", { + value: "E965", + enumerable: false, + configurable: true + })); + } + const callback = arguments[0]; + const args = arguments.length > 1 ? Array.prototype.slice.call(arguments, 1) : null; + // Normally, Node would capture and propagate the async context to the immediate. + // We'll be running it on our own queue, so we need to propagate it ourselves. + const callbackWithAsyncContext = (0, _asynclocalstorage.bindSnapshot)(callback); + const immediateObject = new NextImmediate(); + const queueItem = { + isCleared: false, + callback: callbackWithAsyncContext, + args, + immediateObject + }; + currentExecution.queuedImmediates.push(queueItem); + immediateObject[INTERNALS].queueItem = queueItem; + return immediateObject; +} +function patchedSetImmediatePromise(value, options) { + if (currentExecution === null) { + return originalSetImmediatePromisify(value, options); + } + return new Promise((resolve, reject)=>{ + // The abort signal makes the promise reject. + // If it is already aborted, we reject immediately. + const signal = options == null ? void 0 : options.signal; + if (signal && signal.aborted) { + return reject(signal.reason); + } + const immediate = patchedSetImmediate(resolve, value); + // Unref-ing only really has an observable effect if we bail out to a native immediate, + // but we do it for completeness + if ((options == null ? void 0 : options.ref) === false) { + immediate.unref(); + } + if (signal) { + signal.addEventListener('abort', ()=>{ + patchedClearImmediate(immediate); + reject(signal.reason); + }, { + once: true + }); + } + }); +} +patchedSetImmediate[_nodeutil.promisify.custom] = patchedSetImmediatePromise; +const patchedClearImmediate = (immediateObject)=>{ + // NOTE: we defensively check for patched immediates even if we're not + // currently capturing immediates, because the objects returned from + // the patched setImmediate can be kept around for arbitrarily long. + // As an optimization, we only do this if the patch was enabled at least once -- + // otherwise, no patched objects could've been created. + if (wasEnabledAtLeastOnce && immediateObject && typeof immediateObject === 'object' && INTERNALS in immediateObject) { + ; + immediateObject[Symbol.dispose](); + } else { + originalClearImmediate(immediateObject); + } +}; +//======================================================== +const INTERNALS = Symbol.for('next.Immediate.internals'); +function proxyQueuedImmediateToNativeImmediate(immediateObject, nativeImmediate) { + immediateObject[INTERNALS].hasRef = null; + immediateObject[INTERNALS].queueItem = null; + immediateObject[INTERNALS].nativeImmediate = nativeImmediate; +} +/** Implements a shim for the native `Immediate` class returned by `setImmediate` */ class NextImmediate { + hasRef() { + const internals = this[INTERNALS]; + if (internals.queueItem) { + return internals.hasRef; + } else if (internals.nativeImmediate) { + return internals.nativeImmediate.hasRef(); + } else { + // if we're no longer queued (cleared or executed), hasRef is always false + return false; + } + } + ref() { + const internals = this[INTERNALS]; + if (internals.queueItem) { + internals.hasRef = true; + } else if (internals.nativeImmediate) { + internals.nativeImmediate.ref(); + } + return this; + } + unref() { + const internals = this[INTERNALS]; + if (internals.queueItem) { + internals.hasRef = false; + } else if (internals.nativeImmediate) { + internals.nativeImmediate.unref(); + } + return this; + } + /** + * Node invokes `_onImmediate` when an immediate is executed: + * https://github.com/nodejs/node/blob/42d363205715ffa5a4a6d90f4be1311487053d65/lib/internal/timers.js#L504 + * It's visible on the public types, so we want to have it here for parity, but it's a noop. + * */ _onImmediate() {} + [Symbol.dispose]() { + // This is equivalent to `clearImmediate`. + const internals = this[INTERNALS]; + if (internals.queueItem) { + // this is still queued. drop it. + const queueItem = internals.queueItem; + internals.queueItem = null; + clearQueueItem(queueItem); + } else if (internals.nativeImmediate) { + internals.nativeImmediate[Symbol.dispose](); + } + } + constructor(){ + this[INTERNALS] = { + queueItem: null, + hasRef: true, + nativeImmediate: null + }; + } +} +// ========================================== +const debug = process.env.NEXT_DEBUG_IMMEDIATES !== '1' ? undefined : (...args)=>{ + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('Fast setImmediate is not available in the edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E963", + enumerable: false, + configurable: true + }); + } else { + const { inspect } = require('node:util'); + const { writeFileSync } = require('node:fs'); + let logLine = args.map((arg)=>typeof arg === 'string' ? arg : inspect(arg, { + colors: true + })).join(' ') + '\n'; + logLine = '\x1B[2m' + logLine + '\x1B[22m' // styleText('dim', logLine) + ; + writeFileSync(process.stdout.fd, logLine); + } +}; +// ========================================== +install(); + +//# sourceMappingURL=fast-set-immediate.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js new file mode 100644 index 00000000000..80f55953191 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/global-behaviors.js @@ -0,0 +1,33 @@ +/** + * Unlike most files in the node-environment-extensions folder this one is not + * an extension itself but it exposes a function to install config based global + * behaviors that should be loaded whenever a Node Server or Node Worker are created. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "installGlobalBehaviors", { + enumerable: true, + get: function() { + return installGlobalBehaviors; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _consoledimexternal = require("./console-dim.external"); +function installGlobalBehaviors(config) { + var _config_experimental; + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('Expected not to install Node.js global behaviors in the edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E874", + enumerable: false, + configurable: true + }); + } + if (((_config_experimental = config.experimental) == null ? void 0 : _config_experimental.hideLogsAfterAbort) === true) { + (0, _consoledimexternal.setAbortedLogsStyle)('hidden'); + } else { + (0, _consoledimexternal.setAbortedLogsStyle)('dimmed'); + } +} + +//# sourceMappingURL=global-behaviors.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/io-utils.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/io-utils.js new file mode 100644 index 00000000000..a7d9280ed8a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/io-utils.js @@ -0,0 +1,195 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "io", { + enumerable: true, + get: function() { + return io; + } +}); +const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const _dynamicrendering = require("../app-render/dynamic-rendering"); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _stagedrendering = require("../app-render/staged-rendering"); +const _runtimereactsexternal = require("../runtime-reacts.external"); +function io(expression, type) { + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (!workUnitStore || !workStore) { + return; + } + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-runtime': + { + const prerenderSignal = workUnitStore.controller.signal; + if (prerenderSignal.aborted === false) { + // If the prerender signal is already aborted we don't need to construct + // any stacks because something else actually terminated the prerender. + let message; + switch(type){ + case 'time': + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing the current time in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time`; + break; + case 'random': + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-random`; + break; + case 'crypto': + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random cryptographic values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto`; + break; + default: + throw Object.defineProperty(new _invarianterror.InvariantError('Unknown expression type in abortOnSynchronousPlatformIOAccess.'), "__NEXT_ERROR_CODE", { + value: "E526", + enumerable: false, + configurable: true + }); + } + (0, _dynamicrendering.abortOnSynchronousPlatformIOAccess)(workStore.route, expression, applyOwnerStack(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })), workUnitStore); + } + break; + } + case 'prerender-client': + { + const prerenderSignal = workUnitStore.controller.signal; + if (prerenderSignal.aborted === false) { + // If the prerender signal is already aborted we don't need to construct + // any stacks because something else actually terminated the prerender. + let message; + switch(type){ + case 'time': + message = `Route "${workStore.route}" used ${expression} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time-client`; + break; + case 'random': + message = `Route "${workStore.route}" used ${expression} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-random-client`; + break; + case 'crypto': + message = `Route "${workStore.route}" used ${expression} inside a Client Component without a Suspense boundary above it. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto-client`; + break; + default: + throw Object.defineProperty(new _invarianterror.InvariantError('Unknown expression type in abortOnSynchronousPlatformIOAccess.'), "__NEXT_ERROR_CODE", { + value: "E526", + enumerable: false, + configurable: true + }); + } + (0, _dynamicrendering.abortOnSynchronousPlatformIOAccess)(workStore.route, expression, applyOwnerStack(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })), workUnitStore); + } + break; + } + case 'request': + { + const stageController = workUnitStore.stagedRendering; + if (stageController && stageController.shouldTrackSyncInterrupt()) { + let message; + if (stageController.currentStage === _stagedrendering.RenderStage.Static || stageController.currentStage === _stagedrendering.RenderStage.EarlyStatic) { + switch(type){ + case 'time': + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing the current time in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-current-time`; + break; + case 'random': + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-random`; + break; + case 'crypto': + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or Request data (e.g. \`cookies()\`, \`headers()\`, \`connection()\`, and \`searchParams\`). Accessing random cryptographic values synchronously in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: https://nextjs.org/docs/messages/next-prerender-crypto`; + break; + default: + throw Object.defineProperty(new _invarianterror.InvariantError('Unknown expression type in abortOnSynchronousPlatformIOAccess.'), "__NEXT_ERROR_CODE", { + value: "E526", + enumerable: false, + configurable: true + }); + } + } else { + // We're in the Runtime stage. + // We only error for Sync IO in the Runtime stage if the route has a runtime prefetch config. + // This check is implemented in `stageController.canSyncInterrupt()` -- + // if runtime prefetching isn't enabled, then we won't get here. + let accessStatement; + let additionalInfoLink; + switch(type){ + case 'time': + accessStatement = 'the current time'; + additionalInfoLink = 'https://nextjs.org/docs/messages/next-prerender-runtime-current-time'; + break; + case 'random': + accessStatement = 'random values synchronously'; + additionalInfoLink = 'https://nextjs.org/docs/messages/next-prerender-runtime-random'; + break; + case 'crypto': + accessStatement = 'random cryptographic values synchronously'; + additionalInfoLink = 'https://nextjs.org/docs/messages/next-prerender-runtime-crypto'; + break; + default: + throw Object.defineProperty(new _invarianterror.InvariantError('Unknown expression type in abortOnSynchronousPlatformIOAccess.'), "__NEXT_ERROR_CODE", { + value: "E526", + enumerable: false, + configurable: true + }); + } + message = `Route "${workStore.route}" used ${expression} before accessing either uncached data (e.g. \`fetch()\`) or awaiting \`connection()\`. When configured for Runtime prefetching, accessing ${accessStatement} in a Server Component requires reading one of these data sources first. Alternatively, consider moving this expression into a Client Component or Cache Component. See more info here: ${additionalInfoLink}`; + } + const syncIOError = applyOwnerStack(Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + })); + stageController.syncInterruptCurrentStageWithReason(syncIOError); + // A build-time validation render uses a 'request' store type, but may be abortable. + // If we're in the second, restarted render of the restart-on-cache miss flow, + // Sync IO is an error, and unlike dev, there's no need to continue the render past the sync IO, + // so we can abort it. + if (workUnitStore.controller && !workUnitStore.controller.signal.aborted) { + workUnitStore.controller.abort(syncIOError); + } + } + break; + } + case 'validation-client': + case 'prerender-ppr': + case 'prerender-legacy': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } +} +function applyOwnerStack(error) { + // TODO: Instead of stitching the stacks here, we should log the original + // error as-is when it occurs, and let `patchErrorInspect` handle adding the + // owner stack, instead of logging it deferred in the `LogSafely` component + // via `throwIfDisallowedDynamic`. + if (process.env.NODE_ENV !== 'production') { + var _getClientReact_captureOwnerStack, _getClientReact, _getServerReact_captureOwnerStack, _getServerReact; + const ownerStack = ((_getClientReact = (0, _runtimereactsexternal.getClientReact)()) == null ? void 0 : (_getClientReact_captureOwnerStack = _getClientReact.captureOwnerStack) == null ? void 0 : _getClientReact_captureOwnerStack.call(_getClientReact)) ?? ((_getServerReact = (0, _runtimereactsexternal.getServerReact)()) == null ? void 0 : (_getServerReact_captureOwnerStack = _getServerReact.captureOwnerStack) == null ? void 0 : _getServerReact_captureOwnerStack.call(_getServerReact)); + if (ownerStack) { + let stack = ownerStack; + if (error.stack) { + const frames = []; + for (const frame of error.stack.split('\n').slice(1)){ + if (frame.includes('react_stack_bottom_frame')) { + break; + } + frames.push(frame); + } + stack = '\n' + frames.join('\n') + stack; + } + error.stack = error.name + ': ' + error.message + stack; + } + } + return error; +} + +//# sourceMappingURL=io-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/node-crypto.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/node-crypto.js new file mode 100644 index 00000000000..8caa0a546b4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/node-crypto.js @@ -0,0 +1,103 @@ +/** + * We extend node:crypto APIs during builds and revalidates to ensure that prerenders don't observe random bytes + * When cacheComponents is enabled. Random bytes are a form of IO even if they resolve synchronously. When cacheComponents is + * enabled we need to ensure that random bytes are excluded from prerenders unless they are cached. + * + * + * The extensions here never error nor alter the underlying return values and thus should be transparent to callers. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _ioutils = require("./io-utils"); +if (process.env.NEXT_RUNTIME === 'edge') { +// nothing to patch +} else { + const nodeCrypto = require('node:crypto'); + // require('node:crypto').getRandomValues is an alias for + // crypto.getRandomValues which is extended in web-crypto.tsx + // require('node:crypto').randomUUID is not an alias for crypto.randomUUID + const randomUUIDExpression = "`require('node:crypto').randomUUID()`"; + try { + const _randomUUID = nodeCrypto.randomUUID; + nodeCrypto.randomUUID = function randomUUID() { + (0, _ioutils.io)(randomUUIDExpression, 'random'); + return _randomUUID.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${randomUUIDExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); + } + const randomBytesExpression = "`require('node:crypto').randomBytes(size)`"; + try { + const _randomBytes = nodeCrypto.randomBytes; + // @ts-expect-error -- TODO: tell TS the overloads are preserved + nodeCrypto.randomBytes = function randomBytes() { + if (typeof arguments[1] !== 'function') { + // randomBytes is sync if the second arg is undefined + (0, _ioutils.io)(randomBytesExpression, 'random'); + } + return _randomBytes.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${randomBytesExpression} extension. When using \`cacheComponents\` calling this function without a callback argument will not correctly trigger dynamic behavior.`); + } + const randomFillSyncExpression = "`require('node:crypto').randomFillSync(...)`"; + try { + const _randomFillSync = nodeCrypto.randomFillSync; + // @ts-expect-error -- TODO: tell TS the overloads are preserved + nodeCrypto.randomFillSync = function randomFillSync() { + (0, _ioutils.io)(randomFillSyncExpression, 'random'); + return _randomFillSync.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${randomFillSyncExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); + } + const randomIntExpression = "`require('node:crypto').randomInt(min, max)`"; + try { + const _randomInt = nodeCrypto.randomInt; + // @ts-expect-error -- TODO: tell TS the overloads are preserved + nodeCrypto.randomInt = function randomInt() { + if (typeof arguments[2] !== 'function') { + // randomInt is sync if the third arg is undefined + (0, _ioutils.io)(randomIntExpression, 'random'); + } + return _randomInt.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${randomBytesExpression} extension. When using \`cacheComponents\` calling this function without a callback argument will not correctly trigger dynamic behavior.`); + } + const generatePrimeSyncExpression = "`require('node:crypto').generatePrimeSync(...)`"; + try { + const _generatePrimeSync = nodeCrypto.generatePrimeSync; + // @ts-expect-error -- TODO: tell TS the overloads are preserved + nodeCrypto.generatePrimeSync = function generatePrimeSync() { + (0, _ioutils.io)(generatePrimeSyncExpression, 'random'); + return _generatePrimeSync.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${generatePrimeSyncExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); + } + const generateKeyPairSyncExpression = "`require('node:crypto').generateKeyPairSync(...)`"; + try { + const _generateKeyPairSync = nodeCrypto.generateKeyPairSync; + // @ts-expect-error -- TODO: tell TS the overloads are preserved + nodeCrypto.generateKeyPairSync = function generateKeyPairSync() { + (0, _ioutils.io)(generateKeyPairSyncExpression, 'random'); + return _generateKeyPairSync.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${generateKeyPairSyncExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); + } + const generateKeySyncExpression = "`require('node:crypto').generateKeySync(...)`"; + try { + const _generateKeySync = nodeCrypto.generateKeySync; + nodeCrypto.generateKeySync = function generateKeySync() { + (0, _ioutils.io)(generateKeySyncExpression, 'random'); + return _generateKeySync.apply(this, arguments); + }; + } catch { + console.error(`Failed to install ${generateKeySyncExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); + } +} + +//# sourceMappingURL=node-crypto.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js new file mode 100644 index 00000000000..5130b9bedeb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/process-error-handlers.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "installProcessErrorHandlers", { + enumerable: true, + get: function() { + return installProcessErrorHandlers; + } +}); +const _ispostpone = require("../lib/router-utils/is-postpone"); +let _global = globalThis; +function installProcessErrorHandlers(shouldRemoveUncaughtErrorAndRejectionListeners) { + if (_global.nextInitializedProcessErrorHandlers) return; + _global.nextInitializedProcessErrorHandlers = true; + // The conventional wisdom of Node.js and other runtimes is to treat + // unhandled errors as fatal and exit the process. + // + // But Next.js is not a generic JS runtime — it's a specialized runtime for + // React Server Components. + // + // Many unhandled rejections are due to the late-awaiting pattern for + // prefetching data. In Next.js it's OK to call an async function without + // immediately awaiting it, to start the request as soon as possible + // without blocking unncessarily on the result. These can end up + // triggering an "unhandledRejection" if it later turns out that the + // data is not needed to render the page. Example: + // + // const promise = fetchData() + // const shouldShow = await checkCondition() + // if (shouldShow) { + // return + // } + // + // In this example, `fetchData` is called immediately to start the request + // as soon as possible, but if `shouldShow` is false, then it will be + // discarded without unwrapping its result. If it errors, it will trigger + // an "unhandledRejection" event. + // + // Ideally, we would suppress these rejections completely without warning, + // because we don't consider them real errors. (TODO: Currently we do warn.) + // + // But regardless of whether we do or don't warn, we definitely shouldn't + // crash the entire process. + // + // Even a "legit" unhandled error unrelated to prefetching shouldn't + // prevent the rest of the page from rendering. + // + // So, we're going to intentionally override the default error handling + // behavior of the outer JS runtime to be more forgiving + // Remove any existing "unhandledRejection" and "uncaughtException" handlers. + // This is gated behind an experimental flag until we've considered the impact + // in various deployment environments. It's possible this may always need to + // be configurable. + if (shouldRemoveUncaughtErrorAndRejectionListeners) { + process.removeAllListeners('uncaughtException'); + process.removeAllListeners('unhandledRejection'); + } + // Install a new handler to prevent the process from crashing. + process.on('unhandledRejection', (reason)=>{ + if ((0, _ispostpone.isPostpone)(reason)) { + // React postpones that are unhandled might end up logged here but they're + // not really errors. They're just part of rendering. + return; + } + // Immediately log the error. + // TODO: Ideally, if we knew that this error was triggered by application + // code, we would suppress it entirely without logging. We can't reliably + // detect all of these, but when cacheComponents is enabled, we could suppress + // at least some of them by waiting to log the error until after all in- + // progress renders have completed. Then, only log errors for which there + // was not a corresponding "rejectionHandled" event. + console.error(reason); + }); + process.on('rejectionHandled', ()=>{ + // TODO: See note in the unhandledRejection handler above. In the future, + // we may use the "rejectionHandled" event to de-queue an error from + // being logged. + }); + // Unhandled exceptions are errors triggered by non-async functions, so this + // is unrelated to the late-awaiting pattern. However, for similar reasons, + // we still shouldn't crash the process. Just log it. + process.on('uncaughtException', (reason)=>{ + if ((0, _ispostpone.isPostpone)(reason)) { + return; + } + console.error(reason); + }); +} + +//# sourceMappingURL=process-error-handlers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/random.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/random.js new file mode 100644 index 00000000000..ed236a05354 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/random.js @@ -0,0 +1,28 @@ +/** + * We extend Math.random() during builds and revalidates to ensure that prerenders don't observe randomness + * When cacheComponents is enabled. randomness is a form of IO even though it resolves synchronously. When cacheComponents is + * enabled we need to ensure that randomness is excluded from prerenders. + * + * The extensions here never error nor alter the random generation itself and thus should be transparent to callers. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _ioutils = require("./io-utils"); +const expression = '`Math.random()`'; +try { + const _random = Math.random; + Math.random = (function random() { + (0, _ioutils.io)(expression, 'random'); + return _random.apply(null, arguments); + // We bind here to alter the `toString` printing to match `Math.random`'s native `toString`. + // eslint-disable-next-line no-extra-bind + }).bind(null); + Object.defineProperty(Math.random, 'name', { + value: 'random' + }); +} catch { + console.error(`Failed to install ${expression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); +} + +//# sourceMappingURL=random.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js new file mode 100644 index 00000000000..73193b55120 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/unhandled-rejection.external.js @@ -0,0 +1,508 @@ +/** + * Manages unhandled rejection listeners to intelligently filter rejections + * from aborted prerenders when cache components are enabled. + * + * THE PROBLEM: + * When we abort prerenders we expect to find numerous unhandled promise rejections due to + * things like awaiting Request data like `headers()`. The rejections are fine and should + * not be construed as problematic so we need to avoid the appearance of a problem by + * omitting them from the logged output. + * + * THE STRATEGY: + * 1. Install a filtering unhandled rejection handler + * 2. Intercept process event methods to capture new handlers in our internal queue + * 3. For each rejection, check if it comes from an aborted prerender context + * 4. If yes, suppress it. If no, delegate to all handlers in our queue + * 5. This provides precise filtering without time-based windows + * + * This ensures we suppress noisy prerender-related rejections while preserving + * normal error logging for genuine unhandled rejections. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const MODE = process.env.NEXT_UNHANDLED_REJECTION_FILTER; +let ENABLE_UHR_FILTER = true; +let UHR_FILTER_LOG_LEVEL = 'warn'; +switch(MODE){ + case 'silent': + UHR_FILTER_LOG_LEVEL = 'silent'; + break; + case 'debug': + UHR_FILTER_LOG_LEVEL = 'debug'; + break; + case 'false': + case 'disabled': + case '0': + ENABLE_UHR_FILTER = false; + break; + case '': + case undefined: + case 'enabled': + case 'true': + case '1': + break; + default: + if (typeof MODE === 'string') { + console.error(`NEXT_UNHANDLED_REJECTION_FILTER has an unrecognized value: ${JSON.stringify(MODE)}. Use "enabled", "disabled", "silent", or "debug", or omit the environment variable altogether`); + } +} +let debug; +let debugWithTrace; +let warn; +let warnWithTrace; +switch(UHR_FILTER_LOG_LEVEL){ + case 'debug': + debug = (message)=>console.log('[Next.js Unhandled Rejection Filter]: ' + message); + debugWithTrace = (message)=>{ + console.log(new DebugWithStack(message)); + }; + // Intentional fallthrough + case 'warn': + warn = (message)=>{ + console.warn('[Next.js Unhandled Rejection Filter]: ' + message); + }; + warnWithTrace = (message)=>{ + console.warn(new WarnWithStack(message)); + }; + break; + case 'silent': + default: +} +class DebugWithStack extends Error { + constructor(message){ + super(message); + this.name = '[Next.js Unhandled Rejection Filter]'; + } +} +class WarnWithStack extends Error { + constructor(message){ + super(message); + this.name = '[Next.js Unhandled Rejection Filter]'; + } +} +let didWarnUninstalled = false; +const warnUninstalledOnce = warn ? function warnUninstalledOnce(...args) { + if (!didWarnUninstalled) { + didWarnUninstalled = true; + warn(...args); + } +} : undefined; +// We use a global symbol to detect if the filter has already been installed. +// If two instances of this module are loaded, each captures the other's handler +// as an underlying listener, creating mutual recursion that overflows the stack. +// We error defensively rather than silently degrading. +const FILTER_INSTALLED_KEY = Symbol.for('next.unhandledRejectionFilter'); +let filterInstalled = false; +// We store the proxied listeners for unhandled rejections here. +let underlyingListeners = []; +// We store a unique pointer to each event listener registration to track +// details like whether the listener is a once listener. +let listenerMetadata = []; +// These methods are used to restore the original implementations when uninstalling the patch +let originalProcessAddListener; +let originalProcessRemoveListener; +let originalProcessOn; +let originalProcessOff; +let originalProcessPrependListener; +let originalProcessOnce; +let originalProcessPrependOnceListener; +let originalProcessRemoveAllListeners; +let originalProcessListeners; +// Some of these base methods call others and we don't want them to call the patched version so we +// need a way to synchronously disable the patch temporarily. +let bypassPatch = false; +// This patch ensures that if any patched methods end up calling other methods internally they will +// bypass the patch during their execution. This is important for removeAllListeners in particular +// because it calls removeListener internally and we want to ensure it actually clears the listeners +// from the process queue and not our private queue. +function patchWithoutReentrancy(original, patchedImpl) { + // Produce a function which has the correct name + const patched = { + [original.name]: function(...args) { + if (bypassPatch) { + return Reflect.apply(original, process, args); + } + const previousBypassPatch = bypassPatch; + bypassPatch = true; + try { + return Reflect.apply(patchedImpl, process, args); + } finally{ + bypassPatch = previousBypassPatch; + } + } + }[original.name]; + // Preserve the original toString behavior + Object.defineProperty(patched, 'toString', { + value: original.toString.bind(original), + writable: true, + configurable: true + }); + return patched; +} +const MACGUFFIN_EVENT = 'Next.UnhandledRejectionFilter.MacguffinEvent'; +/** + * Installs a filtering unhandled rejection handler that intelligently suppresses + * rejections from aborted prerender contexts. + * + * This should be called once during server startup to install the global filter. + */ function installUnhandledRejectionFilter() { + if (globalThis[FILTER_INSTALLED_KEY] || filterInstalled) { + // Already installed by another evaluation of this module in the same + // process (e.g., Jest's module system re-evaluating an already-loaded + // module). Safe to skip since the filter is already active. + return; + } + debug == null ? void 0 : debug('Installing Filter'); + // Capture existing handlers + underlyingListeners = Array.from(process.listeners('unhandledRejection')); + // We assume all existing handlers are not "once" + listenerMetadata = underlyingListeners.map((l)=>({ + listener: l, + once: false + })); + // Remove all existing handlers + process.removeAllListeners('unhandledRejection'); + // Install our filtering handler + process.addListener('unhandledRejection', filteringUnhandledRejectionHandler); + // Store the original process methods + originalProcessAddListener = process.addListener; + originalProcessRemoveListener = process.removeListener; + originalProcessOn = process.on; + originalProcessOff = process.off; + originalProcessPrependListener = process.prependListener; + originalProcessOnce = process.once; + originalProcessPrependOnceListener = process.prependOnceListener; + originalProcessRemoveAllListeners = process.removeAllListeners; + originalProcessListeners = process.listeners; + process.addListener = patchWithoutReentrancy(originalProcessAddListener, function(event, listener) { + if (event === 'unhandledRejection') { + debugWithTrace == null ? void 0 : debugWithTrace(`Appending 'unhandledRejection' listener with name \`${listener.name}\`.`); + // We add the listener to a dummy event in case it throws. We don't catch it intentionally + try { + originalProcessAddListener.call(process, MACGUFFIN_EVENT, listener); + } finally{ + // We clean up the added event + originalProcessRemoveAllListeners.call(process, MACGUFFIN_EVENT); + } + // Add new handlers to our internal queue instead of the process + underlyingListeners.push(listener); + listenerMetadata.push({ + listener, + once: false + }); + return process; + } + // For other events, use the original method + return originalProcessAddListener.call(process, event, listener); + }); + // Intercept process.removeListener (alias for process.off) + process.removeListener = patchWithoutReentrancy(originalProcessRemoveListener, function(event, listener) { + if (event === 'unhandledRejection') { + // Check if they're trying to remove our filtering handler + if (listener === filteringUnhandledRejectionHandler) { + warnUninstalledOnce == null ? void 0 : warnUninstalledOnce(`Uninstalling filter because \`process.removeListener('unhandledRejection', listener)\` was called with the filter listener. Uninstalling this filter is not recommended and will cause you to observe 'unhandledRejection' events related to intentionally aborted prerenders. + +You can silence warnings related to this behavior by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=silent\` environment variable. + +You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=debug\` environment variable.`); + uninstallUnhandledRejectionFilter(); + return process; + } + debugWithTrace == null ? void 0 : debugWithTrace(`Removing 'unhandledRejection' listener with name \`${listener.name}\`.`); + // We remove the listener on a dummy event in case it throws. We don't catch it intentionally + originalProcessRemoveListener.call(process, MACGUFFIN_EVENT, listener); + const index = underlyingListeners.lastIndexOf(listener); + if (index > -1) { + debug == null ? void 0 : debug(`listener found index ${index} and removed.`); + underlyingListeners.splice(index, 1); + listenerMetadata.splice(index, 1); + } else { + debug == null ? void 0 : debug(`listener not found.`); + } + return process; + } + // For other events, use the original method + return originalProcessRemoveListener.call(process, event, listener); + }); + // If the process.on is referentially process.addListener then share the patched version as well + if (originalProcessOn === originalProcessAddListener) { + process.on = process.addListener; + } else { + process.on = patchWithoutReentrancy(originalProcessOn, function(event, listener) { + if (event === 'unhandledRejection') { + debugWithTrace == null ? void 0 : debugWithTrace(`Appending 'unhandledRejection' listener with name \`${listener.name}\`.`); + // We add the listener to a dummy event in case it throws. We don't catch it intentionally + try { + originalProcessOn.call(process, MACGUFFIN_EVENT, listener); + } finally{ + // We clean up the added event + originalProcessRemoveAllListeners.call(process, MACGUFFIN_EVENT); + } + // Add new handlers to our internal queue instead of the process + underlyingListeners.push(listener); + listenerMetadata.push({ + listener, + once: false + }); + return process; + } + // For other events, use the original method + return originalProcessOn.call(process, event, listener); + }); + } + // If the process.off is referentially process.addListener then share the patched version as well + if (originalProcessOff === originalProcessRemoveListener) { + process.off = process.removeListener; + } else { + process.off = patchWithoutReentrancy(originalProcessOff, function(event, listener) { + if (event === 'unhandledRejection') { + // Check if they're trying to remove our filtering handler + if (listener === filteringUnhandledRejectionHandler) { + warnUninstalledOnce == null ? void 0 : warnUninstalledOnce(`Uninstalling filter because \`process.off('unhandledRejection', listener)\` was called with the filter listener. Uninstalling this filter is not recommended and will cause you to observe 'unhandledRejection' events related to intentionally aborted prerenders. + +You can silence warnings related to this behavior by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=silent\` environment variable. + +You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=debug\` environment variable.`); + uninstallUnhandledRejectionFilter(); + return process; + } + debugWithTrace == null ? void 0 : debugWithTrace(`Removing 'unhandledRejection' listener with name \`${listener.name}\`.`); + // We remove the listener on a dummy event in case it throws. We don't catch it intentionally + originalProcessOff.call(process, MACGUFFIN_EVENT, listener); + const index = underlyingListeners.lastIndexOf(listener); + if (index > -1) { + debug == null ? void 0 : debug(`listener found index ${index} and removed.`); + underlyingListeners.splice(index, 1); + listenerMetadata.splice(index, 1); + } else { + debug == null ? void 0 : debug(`listener not found.`); + } + return process; + } + // For other events, use the original method + return originalProcessOff.call(process, event, listener); + }); + } + // Intercept process.prependListener for handlers that should go first + process.prependListener = patchWithoutReentrancy(originalProcessPrependListener, function(event, listener) { + if (event === 'unhandledRejection') { + debugWithTrace == null ? void 0 : debugWithTrace(`(Prepending) Inserting 'unhandledRejection' listener with name \`${listener.name}\` immediately following the Next.js 'unhandledRejection' filter listener.`); + // We add the listener to a dummy event in case it throws. We don't catch it intentionally + try { + originalProcessPrependListener.call(process, MACGUFFIN_EVENT, listener); + } finally{ + // We clean up the added event + originalProcessRemoveAllListeners.call(process, MACGUFFIN_EVENT); + } + // Add new handlers to the beginning of our internal queue + underlyingListeners.unshift(listener); + listenerMetadata.unshift({ + listener, + once: false + }); + return process; + } + // For other events, use the original method + return originalProcessPrependListener.call(process, event, listener); + }); + // Intercept process.once for one-time handlers + process.once = patchWithoutReentrancy(originalProcessOnce, function(event, listener) { + if (event === 'unhandledRejection') { + debugWithTrace == null ? void 0 : debugWithTrace(`Appending 'unhandledRejection' once-listener with name \`${listener.name}\`.`); + // We add the listener to a dummy event in case it throws. We don't catch it intentionally + try { + originalProcessOnce.call(process, MACGUFFIN_EVENT, listener); + } finally{ + // We clean up the added event + originalProcessRemoveAllListeners.call(process, MACGUFFIN_EVENT); + } + underlyingListeners.push(listener); + listenerMetadata.push({ + listener: listener, + once: true + }); + return process; + } + // For other events, use the original method + return originalProcessOnce.call(process, event, listener); + }); + // Intercept process.prependOnceListener for one-time handlers that should go first + process.prependOnceListener = patchWithoutReentrancy(originalProcessPrependOnceListener, function(event, listener) { + if (event === 'unhandledRejection') { + debugWithTrace == null ? void 0 : debugWithTrace(`(Prepending) Inserting 'unhandledRejection' once-listener with name \`${listener.name}\` immediately following the Next.js 'unhandledRejection' filter listener.`); + // We add the listener to a dummy event in case it throws. We don't catch it intentionally + try { + originalProcessPrependOnceListener.call(process, MACGUFFIN_EVENT, listener); + } finally{ + // We clean up the added event + originalProcessRemoveAllListeners.call(process, MACGUFFIN_EVENT); + } + // Add to the beginning of our internal queue + underlyingListeners.unshift(listener); + listenerMetadata.unshift({ + listener: listener, + once: true + }); + return process; + } + // For other events, use the original method + return originalProcessPrependOnceListener.call(process, event, listener); + }); + // Intercept process.removeAllListeners + process.removeAllListeners = patchWithoutReentrancy(originalProcessRemoveAllListeners, function(event) { + if (event === 'unhandledRejection') { + // TODO add warning for this case once we stop importing this in test scopes automatically. Currently + // we pull this file in whenever build/utils.tsx is imported which is not the right layering. + // The extensions should be loaded from entrypoints like build/index or next-server + // warnRemoveAllOnce?.( + // `\`process.removeAllListeners('unhandledRejection')\` was called. Next.js maintains the first 'unhandledRejection' listener to filter out unnecessary rejection warnings caused by aborting prerenders early. It is not recommended that you uninstall this behavior, but if you want to you must you can acquire the listener with \`process.listeners('unhandledRejection')[0]\` and remove it with \`process.removeListener('unhandledRejection', listener)\`. + // You can silence warnings related to this behavior by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=silent\` environment variable. + // You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=debug\` environment variable.` + // ) + debugWithTrace == null ? void 0 : debugWithTrace(`Removing all 'unhandledRejection' listeners except for the Next.js filter.`); + underlyingListeners.length = 0; + listenerMetadata.length = 0; + return process; + } + // For other specific events, use the original method + if (event !== undefined) { + return originalProcessRemoveAllListeners.call(process, event); + } + // If no event specified (removeAllListeners()), uninstall our patch completely + warnUninstalledOnce == null ? void 0 : warnUninstalledOnce(`Uninstalling filter because \`process.removeAllListeners()\` was called. Uninstalling this filter is not recommended and will cause you to observe 'unhandledRejection' events related to intentionally aborted prerenders. + +You can silence warnings related to this behavior by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=silent\` environment variable. + +You can debug event listener operations by running Next.js with \`NEXT_UNHANDLED_REJECTION_FILTER=debug\` environment variable.`); + uninstallUnhandledRejectionFilter(); + return originalProcessRemoveAllListeners.call(process); + }); + // Intercept process.listeners to return our internal handlers for unhandled rejection + process.listeners = patchWithoutReentrancy(originalProcessListeners, function(event) { + if (event === 'unhandledRejection') { + debugWithTrace == null ? void 0 : debugWithTrace(`Retrieving all 'unhandledRejection' listeners.`); + return [ + filteringUnhandledRejectionHandler, + ...underlyingListeners + ]; + } + return originalProcessListeners.call(process, event); + }); + filterInstalled = true; + globalThis[FILTER_INSTALLED_KEY] = true; +} +/** + * Uninstalls the unhandled rejection filter and restores original process methods. + * This is called when someone explicitly removes our filtering handler. + * @internal + */ function uninstallUnhandledRejectionFilter() { + if (!filterInstalled) { + warnWithTrace == null ? void 0 : warnWithTrace('Unexpected subsequent filter uninstallation. This is a bug in Next.js'); + return; + } + debug == null ? void 0 : debug('Uninstalling Filter'); + // Restore original process methods + process.on = originalProcessOn; + process.addListener = originalProcessAddListener; + process.once = originalProcessOnce; + process.prependListener = originalProcessPrependListener; + process.prependOnceListener = originalProcessPrependOnceListener; + process.removeListener = originalProcessRemoveListener; + process.off = originalProcessOff; + process.removeAllListeners = originalProcessRemoveAllListeners; + process.listeners = originalProcessListeners; + // Remove our filtering handler + process.removeListener('unhandledRejection', filteringUnhandledRejectionHandler); + // Re-register all the handlers that were in our internal queue + for (const meta of listenerMetadata){ + if (meta.once) { + process.once('unhandledRejection', meta.listener); + } else { + process.addListener('unhandledRejection', meta.listener); + } + } + // Reset state + filterInstalled = false; + underlyingListeners.length = 0; + listenerMetadata.length = 0; +} +/** + * The filtering handler that decides whether to suppress or delegate unhandled rejections. + */ let handlingRejection = false; +function filteringUnhandledRejectionHandler(reason, promise) { + if (handlingRejection) { + // An underlying listener synchronously re-emitted 'unhandledRejection'. + // Re-entering the listener loop would overflow the stack. + return; + } + const capturedListenerMetadata = Array.from(listenerMetadata); + const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore(); + if (workUnitStore) { + switch(workUnitStore.type){ + case 'prerender': + case 'prerender-client': + case 'validation-client': + case 'prerender-runtime': + { + const signal = workUnitStore.renderSignal; + if (signal.aborted) { + // This unhandledRejection is from async work spawned in a now + // aborted prerender. We don't need to report this. + return; + } + break; + } + case 'prerender-ppr': + case 'prerender-legacy': + case 'request': + case 'cache': + case 'private-cache': + case 'unstable-cache': + case 'generate-static-params': + break; + default: + workUnitStore; + } + } + // Not from an aborted prerender, delegate to original handlers + if (capturedListenerMetadata.length === 0) { + // We need to log something because the default behavior when there is + // no event handler installed is to trigger an Unhandled Exception. + // We don't do that here b/c we don't want to rely on this implicit default + // to kill the process since it can be disabled by installing a userland listener + // and you may also choose to run Next.js with args such that unhandled rejections + // do not automatically terminate the process. + console.error('Unhandled Rejection:', reason); + } else { + handlingRejection = true; + try { + for (const meta of capturedListenerMetadata){ + if (meta.once) { + // This is a once listener. we remove it from our set before we call it + const index = listenerMetadata.indexOf(meta); + if (index !== -1) { + underlyingListeners.splice(index, 1); + listenerMetadata.splice(index, 1); + } + } + const listener = meta.listener; + listener(reason, promise); + } + } catch (error) { + // If any handlers error we produce an Uncaught Exception + setImmediate(()=>{ + throw error; + }); + } finally{ + handlingRejection = false; + } + } +} +// Install the filter when this module is imported +if (ENABLE_UHR_FILTER) { + installUnhandledRejectionFilter(); +} + +//# sourceMappingURL=unhandled-rejection.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment-extensions/web-crypto.js b/cli/app/node_modules/next/dist/server/node-environment-extensions/web-crypto.js new file mode 100644 index 00000000000..6f00b75a1a9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment-extensions/web-crypto.js @@ -0,0 +1,45 @@ +/** + * We extend Web Crypto APIs during builds and revalidates to ensure that prerenders don't observe random bytes + * When cacheComponents is enabled. Random bytes are a form of IO even if they resolve synchronously. When cacheComponents is + * enabled we need to ensure that random bytes are excluded from prerenders unless they are cached. + * + * + * The extensions here never error nor alter the underlying return values and thus should be transparent to callers. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _ioutils = require("./io-utils"); +let webCrypto; +if (process.env.NEXT_RUNTIME === 'edge') { + webCrypto = crypto; +} else { + if (typeof crypto === 'undefined') { + // @ts-expect-error -- TODO: Is this actually safe? + webCrypto = require('node:crypto').webcrypto; + } else { + webCrypto = crypto; + } +} +const getRandomValuesExpression = '`crypto.getRandomValues()`'; +try { + const _getRandomValues = webCrypto.getRandomValues; + webCrypto.getRandomValues = function getRandomValues() { + (0, _ioutils.io)(getRandomValuesExpression, 'crypto'); + return _getRandomValues.apply(webCrypto, arguments); + }; +} catch { + console.error(`Failed to install ${getRandomValuesExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); +} +const randomUUIDExpression = '`crypto.randomUUID()`'; +try { + const _randomUUID = webCrypto.randomUUID; + webCrypto.randomUUID = function randomUUID() { + (0, _ioutils.io)(randomUUIDExpression, 'crypto'); + return _randomUUID.apply(webCrypto, arguments); + }; +} catch { + console.error(`Failed to install ${getRandomValuesExpression} extension. When using \`cacheComponents\` calling this function will not correctly trigger dynamic behavior.`); +} + +//# sourceMappingURL=web-crypto.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-environment.js b/cli/app/node_modules/next/dist/server/node-environment.js new file mode 100644 index 00000000000..e8492daffdb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-environment.js @@ -0,0 +1,19 @@ +// This file should be imported before any others. It sets up the environment +// for later imports to work properly. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +require("./node-environment-baseline"); +require("./node-environment-extensions/error-inspect"); +require("./node-environment-extensions/console-file"); +require("./node-environment-extensions/console-exit"); +require("./node-environment-extensions/console-dim.external"); +require("./node-environment-extensions/unhandled-rejection.external"); +require("./node-environment-extensions/random"); +require("./node-environment-extensions/date"); +require("./node-environment-extensions/web-crypto"); +require("./node-environment-extensions/node-crypto"); +require("./node-environment-extensions/fast-set-immediate.external"); + +//# sourceMappingURL=node-environment.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/node-polyfill-crypto.js b/cli/app/node_modules/next/dist/server/node-polyfill-crypto.js new file mode 100644 index 00000000000..2b8e3f41206 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/node-polyfill-crypto.js @@ -0,0 +1,21 @@ +// Polyfill crypto() in the Node.js environment +"use strict"; +if (!global.crypto) { + let webcrypto; + Object.defineProperty(global, 'crypto', { + enumerable: false, + configurable: true, + get () { + if (!webcrypto) { + // @ts-expect-error -- TODO: Is this actually safe? + webcrypto = require('node:crypto').webcrypto; + } + return webcrypto; + }, + set (value) { + webcrypto = value; + } + }); +} + +//# sourceMappingURL=node-polyfill-crypto.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js new file mode 100644 index 00000000000..0c7d142a951 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/absolute-filename-normalizer.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AbsoluteFilenameNormalizer", { + enumerable: true, + get: function() { + return AbsoluteFilenameNormalizer; + } +}); +const _absolutepathtopage = require("../../shared/lib/page-path/absolute-path-to-page"); +class AbsoluteFilenameNormalizer { + /** + * + * @param dir the directory for which the files should be made relative to + * @param extensions the extensions the file could have + * @param keepIndex when `true` the trailing `/index` is _not_ removed + */ constructor(dir, extensions, pagesType){ + this.dir = dir; + this.extensions = extensions; + this.pagesType = pagesType; + } + normalize(filename) { + return (0, _absolutepathtopage.absolutePathToPage)(filename, { + extensions: this.extensions, + keepIndex: false, + dir: this.dir, + pagesType: this.pagesType + }); + } +} + +//# sourceMappingURL=absolute-filename-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js new file mode 100644 index 00000000000..3ef12f9d1bd --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-bundle-path-normalizer.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppBundlePathNormalizer: null, + DevAppBundlePathNormalizer: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppBundlePathNormalizer: function() { + return AppBundlePathNormalizer; + }, + DevAppBundlePathNormalizer: function() { + return DevAppBundlePathNormalizer; + } +}); +const _normalizers = require("../../normalizers"); +const _prefixingnormalizer = require("../../prefixing-normalizer"); +const _normalizepagepath = require("../../../../shared/lib/page-path/normalize-page-path"); +const _underscorenormalizer = require("../../underscore-normalizer"); +class AppBundlePathNormalizer extends _prefixingnormalizer.PrefixingNormalizer { + constructor(){ + super('app'); + } + normalize(page) { + return super.normalize((0, _normalizepagepath.normalizePagePath)(page)); + } +} +class DevAppBundlePathNormalizer extends _normalizers.Normalizers { + constructor(pageNormalizer, isTurbopack){ + const normalizers = [ + // This should normalize the filename to a page. + pageNormalizer, + // Normalize the app page to a pathname. + new AppBundlePathNormalizer() + ]; + // %5F to _ replacement should only happen with Turbopack. + if (isTurbopack) { + normalizers.unshift(new _underscorenormalizer.UnderscoreNormalizer()); + } + super(normalizers); + } + normalize(filename) { + return super.normalize(filename); + } +} + +//# sourceMappingURL=app-bundle-path-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js new file mode 100644 index 00000000000..96853750b4a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-filename-normalizer.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppFilenameNormalizer", { + enumerable: true, + get: function() { + return AppFilenameNormalizer; + } +}); +const _constants = require("../../../../shared/lib/constants"); +const _prefixingnormalizer = require("../../prefixing-normalizer"); +class AppFilenameNormalizer extends _prefixingnormalizer.PrefixingNormalizer { + constructor(distDir){ + super(distDir, _constants.SERVER_DIRECTORY); + } + normalize(manifestFilename) { + return super.normalize(manifestFilename); + } +} + +//# sourceMappingURL=app-filename-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js new file mode 100644 index 00000000000..88c9abbd8a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-page-normalizer.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevAppPageNormalizer", { + enumerable: true, + get: function() { + return DevAppPageNormalizer; + } +}); +const _pagetypes = require("../../../../lib/page-types"); +const _absolutefilenamenormalizer = require("../../absolute-filename-normalizer"); +const _normalizers = require("../../normalizers"); +/** + * DevAppPageNormalizer is a normalizer that is used to normalize a pathname + * to a page in the `app` directory. + */ class DevAppPageNormalizerInternal extends _absolutefilenamenormalizer.AbsoluteFilenameNormalizer { + constructor(appDir, extensions){ + super(appDir, extensions, _pagetypes.PAGE_TYPES.APP); + } +} +class DevAppPageNormalizer extends _normalizers.Normalizers { + constructor(appDir, extensions, _isTurbopack){ + const normalizer = new DevAppPageNormalizerInternal(appDir, extensions); + super(// %5F to _ replacement should only happen with Turbopack. + // TODO: enable when page matcher `/_` check is moved: https://github.com/vercel/next.js/blob/8eda00bf5999e43e8f0211bd72c981d5ce292e8b/packages/next/src/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.ts#L48 + // isTurbopack + // ? [ + // // The page should have the `%5F` characters replaced with `_` characters. + // new UnderscoreNormalizer(), + // normalizer, + // ] + // : [normalizer] + [ + normalizer + ]); + } +} + +//# sourceMappingURL=app-page-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js new file mode 100644 index 00000000000..f5b43e8faf2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/app/app-pathname-normalizer.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppPathnameNormalizer: null, + DevAppPathnameNormalizer: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppPathnameNormalizer: function() { + return AppPathnameNormalizer; + }, + DevAppPathnameNormalizer: function() { + return DevAppPathnameNormalizer; + } +}); +const _apppaths = require("../../../../shared/lib/router/utils/app-paths"); +const _normalizers = require("../../normalizers"); +const _wrapnormalizerfn = require("../../wrap-normalizer-fn"); +const _underscorenormalizer = require("../../underscore-normalizer"); +class AppPathnameNormalizer extends _normalizers.Normalizers { + constructor(){ + super([ + // The pathname to match should have the trailing `/page` and other route + // group information stripped from it. + (0, _wrapnormalizerfn.wrapNormalizerFn)(_apppaths.normalizeAppPath), + // The page should have the `%5F` characters replaced with `_` characters. + new _underscorenormalizer.UnderscoreNormalizer() + ]); + } + normalize(page) { + return super.normalize(page); + } +} +class DevAppPathnameNormalizer extends _normalizers.Normalizers { + constructor(pageNormalizer){ + super([ + // This should normalize the filename to a page. + pageNormalizer, + // Normalize the app page to a pathname. + new AppPathnameNormalizer() + ]); + } + normalize(filename) { + return super.normalize(filename); + } +} + +//# sourceMappingURL=app-pathname-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/app/index.js b/cli/app/node_modules/next/dist/server/normalizers/built/app/index.js new file mode 100644 index 00000000000..a88cfe1bb47 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/app/index.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppNormalizers: null, + DevAppNormalizers: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppNormalizers: function() { + return AppNormalizers; + }, + DevAppNormalizers: function() { + return DevAppNormalizers; + } +}); +const _appbundlepathnormalizer = require("./app-bundle-path-normalizer"); +const _appfilenamenormalizer = require("./app-filename-normalizer"); +const _apppagenormalizer = require("./app-page-normalizer"); +const _apppathnamenormalizer = require("./app-pathname-normalizer"); +class AppNormalizers { + constructor(distDir){ + this.filename = new _appfilenamenormalizer.AppFilenameNormalizer(distDir); + this.pathname = new _apppathnamenormalizer.AppPathnameNormalizer(); + this.bundlePath = new _appbundlepathnormalizer.AppBundlePathNormalizer(); + } +} +class DevAppNormalizers { + constructor(appDir, extensions, isTurbopack){ + this.page = new _apppagenormalizer.DevAppPageNormalizer(appDir, extensions, isTurbopack); + this.pathname = new _apppathnamenormalizer.DevAppPathnameNormalizer(this.page); + this.bundlePath = new _appbundlepathnormalizer.DevAppBundlePathNormalizer(this.page, isTurbopack); + } +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/pages/index.js b/cli/app/node_modules/next/dist/server/normalizers/built/pages/index.js new file mode 100644 index 00000000000..28b5a853c4e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/pages/index.js @@ -0,0 +1,44 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DevPagesNormalizers: null, + PagesNormalizers: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DevPagesNormalizers: function() { + return DevPagesNormalizers; + }, + PagesNormalizers: function() { + return PagesNormalizers; + } +}); +const _pagesbundlepathnormalizer = require("./pages-bundle-path-normalizer"); +const _pagesfilenamenormalizer = require("./pages-filename-normalizer"); +const _pagespagenormalizer = require("./pages-page-normalizer"); +const _pagespathnamenormalizer = require("./pages-pathname-normalizer"); +class PagesNormalizers { + constructor(distDir){ + this.filename = new _pagesfilenamenormalizer.PagesFilenameNormalizer(distDir); + this.bundlePath = new _pagesbundlepathnormalizer.PagesBundlePathNormalizer(); + // You'd think that we'd require a `pathname` normalizer here, but for + // `/pages` we have to handle i18n routes, which means that we need to + // analyze the page path to determine the locale prefix and it's locale. + } +} +class DevPagesNormalizers { + constructor(pagesDir, extensions){ + this.page = new _pagespagenormalizer.DevPagesPageNormalizer(pagesDir, extensions); + this.pathname = new _pagespathnamenormalizer.DevPagesPathnameNormalizer(pagesDir, extensions); + this.bundlePath = new _pagesbundlepathnormalizer.DevPagesBundlePathNormalizer(this.page); + } +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js new file mode 100644 index 00000000000..9ccc043de44 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-bundle-path-normalizer.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DevPagesBundlePathNormalizer: null, + PagesBundlePathNormalizer: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DevPagesBundlePathNormalizer: function() { + return DevPagesBundlePathNormalizer; + }, + PagesBundlePathNormalizer: function() { + return PagesBundlePathNormalizer; + } +}); +const _normalizepagepath = require("../../../../shared/lib/page-path/normalize-page-path"); +const _normalizers = require("../../normalizers"); +const _prefixingnormalizer = require("../../prefixing-normalizer"); +const _wrapnormalizerfn = require("../../wrap-normalizer-fn"); +class PagesBundlePathNormalizer extends _normalizers.Normalizers { + constructor(){ + super([ + // The bundle path should have the trailing `/index` stripped from + // it. + (0, _wrapnormalizerfn.wrapNormalizerFn)(_normalizepagepath.normalizePagePath), + // The page should prefixed with `pages/`. + new _prefixingnormalizer.PrefixingNormalizer('pages') + ]); + } + normalize(page) { + return super.normalize(page); + } +} +class DevPagesBundlePathNormalizer extends _normalizers.Normalizers { + constructor(pagesNormalizer){ + super([ + // This should normalize the filename to a page. + pagesNormalizer, + // Normalize the app page to a pathname. + new PagesBundlePathNormalizer() + ]); + } + normalize(filename) { + return super.normalize(filename); + } +} + +//# sourceMappingURL=pages-bundle-path-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js new file mode 100644 index 00000000000..eed594d7286 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-filename-normalizer.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PagesFilenameNormalizer", { + enumerable: true, + get: function() { + return PagesFilenameNormalizer; + } +}); +const _constants = require("../../../../shared/lib/constants"); +const _prefixingnormalizer = require("../../prefixing-normalizer"); +class PagesFilenameNormalizer extends _prefixingnormalizer.PrefixingNormalizer { + constructor(distDir){ + super(distDir, _constants.SERVER_DIRECTORY); + } + normalize(manifestFilename) { + return super.normalize(manifestFilename); + } +} + +//# sourceMappingURL=pages-filename-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js new file mode 100644 index 00000000000..c2dd3557003 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-page-normalizer.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevPagesPageNormalizer", { + enumerable: true, + get: function() { + return DevPagesPageNormalizer; + } +}); +const _pagetypes = require("../../../../lib/page-types"); +const _absolutefilenamenormalizer = require("../../absolute-filename-normalizer"); +class DevPagesPageNormalizer extends _absolutefilenamenormalizer.AbsoluteFilenameNormalizer { + constructor(pagesDir, extensions){ + super(pagesDir, extensions, _pagetypes.PAGE_TYPES.PAGES); + } +} + +//# sourceMappingURL=pages-page-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js new file mode 100644 index 00000000000..3c3e79da988 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/built/pages/pages-pathname-normalizer.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevPagesPathnameNormalizer", { + enumerable: true, + get: function() { + return DevPagesPathnameNormalizer; + } +}); +const _pagetypes = require("../../../../lib/page-types"); +const _absolutefilenamenormalizer = require("../../absolute-filename-normalizer"); +class DevPagesPathnameNormalizer extends _absolutefilenamenormalizer.AbsoluteFilenameNormalizer { + constructor(pagesDir, extensions){ + super(pagesDir, extensions, _pagetypes.PAGE_TYPES.PAGES); + } +} + +//# sourceMappingURL=pages-pathname-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/locale-route-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/locale-route-normalizer.js new file mode 100644 index 00000000000..8885c7518a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/locale-route-normalizer.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "LocaleRouteNormalizer", { + enumerable: true, + get: function() { + return LocaleRouteNormalizer; + } +}); +class LocaleRouteNormalizer { + constructor(provider){ + this.provider = provider; + } + /** + * Normalizes the pathname by removing the locale prefix if any. + * + * @param pathname The pathname to normalize. + * @returns The pathname without the locale prefix (if any). + */ normalize(pathname) { + const match = this.provider.analyze(pathname); + return match.pathname; + } +} + +//# sourceMappingURL=locale-route-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/normalizers.js b/cli/app/node_modules/next/dist/server/normalizers/normalizers.js new file mode 100644 index 00000000000..d8f52c2781f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/normalizers.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "Normalizers", { + enumerable: true, + get: function() { + return Normalizers; + } +}); +class Normalizers { + constructor(normalizers = []){ + this.normalizers = normalizers; + } + push(normalizer) { + this.normalizers.push(normalizer); + } + normalize(pathname) { + return this.normalizers.reduce((normalized, normalizer)=>normalizer.normalize(normalized), pathname); + } +} + +//# sourceMappingURL=normalizers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/prefixing-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/prefixing-normalizer.js new file mode 100644 index 00000000000..26b7e8b0198 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/prefixing-normalizer.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrefixingNormalizer", { + enumerable: true, + get: function() { + return PrefixingNormalizer; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("../../shared/lib/isomorphic/path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class PrefixingNormalizer { + constructor(...prefixes){ + this.prefix = _path.default.posix.join(...prefixes); + } + normalize(pathname) { + return _path.default.posix.join(this.prefix, pathname); + } +} + +//# sourceMappingURL=prefixing-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/request/base-path.js b/cli/app/node_modules/next/dist/server/normalizers/request/base-path.js new file mode 100644 index 00000000000..c4dd11636c5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/request/base-path.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "BasePathPathnameNormalizer", { + enumerable: true, + get: function() { + return BasePathPathnameNormalizer; + } +}); +const _prefix = require("./prefix"); +class BasePathPathnameNormalizer extends _prefix.PrefixPathnameNormalizer { + constructor(basePath){ + if (!basePath || basePath === '/') { + throw Object.defineProperty(new Error('Invariant: basePath must be set and cannot be "/"'), "__NEXT_ERROR_CODE", { + value: "E154", + enumerable: false, + configurable: true + }); + } + super(basePath); + } +} + +//# sourceMappingURL=base-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/request/next-data.js b/cli/app/node_modules/next/dist/server/normalizers/request/next-data.js new file mode 100644 index 00000000000..1cdb45c005e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/request/next-data.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NextDataPathnameNormalizer", { + enumerable: true, + get: function() { + return NextDataPathnameNormalizer; + } +}); +const _denormalizepagepath = require("../../../shared/lib/page-path/denormalize-page-path"); +const _prefix = require("./prefix"); +const _suffix = require("./suffix"); +class NextDataPathnameNormalizer { + constructor(buildID){ + this.suffix = new _suffix.SuffixPathnameNormalizer('.json'); + if (!buildID) { + throw Object.defineProperty(new Error('Invariant: buildID is required'), "__NEXT_ERROR_CODE", { + value: "E200", + enumerable: false, + configurable: true + }); + } + this.prefix = new _prefix.PrefixPathnameNormalizer(`/_next/data/${buildID}`); + } + match(pathname) { + return this.prefix.match(pathname) && this.suffix.match(pathname); + } + normalize(pathname, matched) { + // If we're not matched and we don't match, we don't need to normalize. + if (!matched && !this.match(pathname)) return pathname; + pathname = this.prefix.normalize(pathname, true); + pathname = this.suffix.normalize(pathname, true); + return (0, _denormalizepagepath.denormalizePagePath)(pathname); + } +} + +//# sourceMappingURL=next-data.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/request/prefix.js b/cli/app/node_modules/next/dist/server/normalizers/request/prefix.js new file mode 100644 index 00000000000..481c766d3b2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/request/prefix.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrefixPathnameNormalizer", { + enumerable: true, + get: function() { + return PrefixPathnameNormalizer; + } +}); +class PrefixPathnameNormalizer { + constructor(prefix){ + this.prefix = prefix; + if (prefix.endsWith('/')) { + throw Object.defineProperty(new Error(`PrefixPathnameNormalizer: prefix "${prefix}" should not end with a slash`), "__NEXT_ERROR_CODE", { + value: "E219", + enumerable: false, + configurable: true + }); + } + } + match(pathname) { + // If the pathname doesn't start with the prefix, we don't match. + if (pathname !== this.prefix && !pathname.startsWith(this.prefix + '/')) { + return false; + } + return true; + } + normalize(pathname, matched) { + // If we're not matched and we don't match, we don't need to normalize. + if (!matched && !this.match(pathname)) return pathname; + if (pathname.length === this.prefix.length) { + return '/'; + } + return pathname.substring(this.prefix.length); + } +} + +//# sourceMappingURL=prefix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/request/rsc.js b/cli/app/node_modules/next/dist/server/normalizers/request/rsc.js new file mode 100644 index 00000000000..f9eefc692a6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/request/rsc.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "RSCPathnameNormalizer", { + enumerable: true, + get: function() { + return RSCPathnameNormalizer; + } +}); +const _constants = require("../../../lib/constants"); +const _suffix = require("./suffix"); +class RSCPathnameNormalizer extends _suffix.SuffixPathnameNormalizer { + constructor(){ + super(_constants.RSC_SUFFIX); + } +} + +//# sourceMappingURL=rsc.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js b/cli/app/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js new file mode 100644 index 00000000000..514d3749532 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/request/segment-prefix-rsc.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "SegmentPrefixRSCPathnameNormalizer", { + enumerable: true, + get: function() { + return SegmentPrefixRSCPathnameNormalizer; + } +}); +const _constants = require("../../../lib/constants"); +const _escaperegexp = require("../../../shared/lib/escape-regexp"); +const PATTERN = new RegExp(`^(/.*)${(0, _escaperegexp.escapeStringRegexp)(_constants.RSC_SEGMENTS_DIR_SUFFIX)}(/.*)${(0, _escaperegexp.escapeStringRegexp)(_constants.RSC_SEGMENT_SUFFIX)}$`); +class SegmentPrefixRSCPathnameNormalizer { + match(pathname) { + return PATTERN.test(pathname); + } + extract(pathname) { + const match = pathname.match(PATTERN); + if (!match) return null; + return { + originalPathname: match[1], + segmentPath: match[2] + }; + } + normalize(pathname) { + const match = this.extract(pathname); + if (!match) return pathname; + return match.originalPathname; + } +} + +//# sourceMappingURL=segment-prefix-rsc.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/request/suffix.js b/cli/app/node_modules/next/dist/server/normalizers/request/suffix.js new file mode 100644 index 00000000000..5cd6daccf85 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/request/suffix.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "SuffixPathnameNormalizer", { + enumerable: true, + get: function() { + return SuffixPathnameNormalizer; + } +}); +class SuffixPathnameNormalizer { + constructor(suffix){ + this.suffix = suffix; + } + match(pathname) { + // If the pathname doesn't end in the suffix, we don't match. + if (!pathname.endsWith(this.suffix)) return false; + return true; + } + normalize(pathname, matched) { + // If we're not matched and we don't match, we don't need to normalize. + if (!matched && !this.match(pathname)) return pathname; + return pathname.substring(0, pathname.length - this.suffix.length); + } +} + +//# sourceMappingURL=suffix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/underscore-normalizer.js b/cli/app/node_modules/next/dist/server/normalizers/underscore-normalizer.js new file mode 100644 index 00000000000..d7997687b84 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/underscore-normalizer.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "UnderscoreNormalizer", { + enumerable: true, + get: function() { + return UnderscoreNormalizer; + } +}); +class UnderscoreNormalizer { + normalize(pathname) { + return pathname.replace(/%5F/g, '_'); + } +} + +//# sourceMappingURL=underscore-normalizer.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js b/cli/app/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js new file mode 100644 index 00000000000..262af718f8b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/normalizers/wrap-normalizer-fn.js @@ -0,0 +1,17 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "wrapNormalizerFn", { + enumerable: true, + get: function() { + return wrapNormalizerFn; + } +}); +function wrapNormalizerFn(fn) { + return { + normalize: fn + }; +} + +//# sourceMappingURL=wrap-normalizer-fn.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/patch-error-inspect.js b/cli/app/node_modules/next/dist/server/patch-error-inspect.js new file mode 100644 index 00000000000..657d9ff2e4b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/patch-error-inspect.js @@ -0,0 +1,453 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + patchErrorInspectEdgeLite: null, + patchErrorInspectNodeJS: null, + setBundlerFindSourceMapImplementation: null, + setCodeFrameRenderer: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + patchErrorInspectEdgeLite: function() { + return patchErrorInspectEdgeLite; + }, + patchErrorInspectNodeJS: function() { + return patchErrorInspectNodeJS; + }, + setBundlerFindSourceMapImplementation: function() { + return setBundlerFindSourceMapImplementation; + }, + setCodeFrameRenderer: function() { + return setCodeFrameRenderer; + } +}); +const _module = require("module"); +const _path = /*#__PURE__*/ _interop_require_wildcard(require("path")); +const _url = /*#__PURE__*/ _interop_require_wildcard(require("url")); +const _sourcemap = require("next/dist/compiled/source-map"); +const _sourcemaps = require("./lib/source-maps"); +const _parsestack = require("./lib/parse-stack"); +const _workunitasyncstorageexternal = require("./app-render/work-unit-async-storage.external"); +const _picocolors = require("../lib/picocolors"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// Find a source map using the bundler's API. +// This is only a fallback for when Node.js fails to due to bugs e.g. https://github.com/nodejs/node/issues/52102 +// TODO: Remove once all supported Node.js versions are fixed. +// TODO(veil): Set from Webpack as well +let bundlerFindSourceMapPayload = ()=>undefined; +function setBundlerFindSourceMapImplementation(findSourceMapImplementation) { + bundlerFindSourceMapPayload = findSourceMapImplementation; +} +let codeFrameRenderer; +function setCodeFrameRenderer(renderer) { + codeFrameRenderer = renderer; +} +function getOriginalCodeFrame(frame, source, colors = process.stdout.isTTY) { + if (!codeFrameRenderer) { + // No renderer available - gracefully degrade + return null; + } + return codeFrameRenderer(frame, source, colors); +} +function frameToString(methodName, sourceURL, line1, column1) { + let sourceLocation = line1 !== null ? `:${line1}` : ''; + if (column1 !== null && sourceLocation !== '') { + sourceLocation += `:${column1}`; + } + let fileLocation; + if (sourceURL !== null && sourceURL.startsWith('file://') && URL.canParse(sourceURL)) { + // If not relative to CWD, the path is ambiguous to IDEs and clicking will prompt to select the file first. + // In a multi-app repo, this leads to potentially larger file names but will make clicking snappy. + // There's no tradeoff for the cases where `dir` in `next dev [dir]` is omitted + // since relative to cwd is both the shortest and snappiest. + fileLocation = _path.relative(process.cwd(), _url.fileURLToPath(sourceURL)); + } else if (sourceURL !== null && sourceURL.startsWith('/')) { + fileLocation = _path.relative(process.cwd(), sourceURL); + } else { + fileLocation = sourceURL; + } + return methodName ? ` at ${methodName} (${fileLocation}${sourceLocation})` : ` at ${fileLocation}${sourceLocation}`; +} +function computeErrorName(error) { + // TODO: Node.js seems to use a different algorithm + // class ReadonlyRequestCookiesError extends Error {}` would read `ReadonlyRequestCookiesError: [...]` + // in the stack i.e. seems like under certain conditions it favors the constructor name. + return error.name || 'Error'; +} +function prepareUnsourcemappedStackTrace(error, structuredStackTrace) { + const name = computeErrorName(error); + const message = error.message || ''; + let stack = name + ': ' + message; + for(let i = 0; i < structuredStackTrace.length; i++){ + stack += '\n at ' + structuredStackTrace[i].toString(); + } + return stack; +} +function shouldIgnoreListGeneratedFrame(file) { + return file.startsWith('node:') || file.includes('node_modules'); +} +function shouldIgnoreListOriginalFrame(file) { + return file.includes('node_modules'); +} +function createUnsourcemappedFrame(frame) { + return { + stack: { + file: frame.file, + line1: frame.line1, + column1: frame.column1, + methodName: frame.methodName, + arguments: frame.arguments, + ignored: shouldIgnoreListGeneratedFrame(frame.file) + }, + code: null + }; +} +function ignoreListAnonymousStackFramesIfSandwiched(sourceMappedFrames) { + return (0, _sourcemaps.ignoreListAnonymousStackFramesIfSandwiched)(sourceMappedFrames, (frame)=>frame.stack.file === '', (frame)=>frame.stack.ignored, (frame)=>frame.stack.methodName, (frame)=>{ + frame.stack.ignored = true; + }); +} +/** + * @param frame + * @param sourceMapCache + * @returns The original frame if not sourcemapped. + */ function getSourcemappedFrameIfPossible(frame, sourceMapCache, inspectOptions) { + var _frame_methodName_replace, _frame_methodName; + const sourceMapCacheEntry = sourceMapCache.get(frame.file); + let sourceMapConsumer; + let sourceMapPayload; + if (sourceMapCacheEntry === undefined) { + let sourceURL = frame.file; + // e.g. "/Users/foo/APP/.next/server/chunks/ssr/[root-of-the-server]__2934a0._.js" + // or "C:\Users\foo\APP\.next\server\chunks\ssr\[root-of-the-server]__2934a0._.js" + // will be keyed by Node.js as "file:///APP/.next/server/chunks/ssr/[root-of-the-server]__2934a0._.js". + // This is likely caused by `callsite.toString()` in `Error.prepareStackTrace converting file URLs to paths. + // + // But frame.file might also be "webpack-internal:///(rsc)/./app/bad-sourcemap/page.js" or + // "" or "node:internal/process/task_queues" here + if (_path.isAbsolute(frame.file)) { + sourceURL = _url.pathToFileURL(frame.file).toString(); + } + let maybeSourceMapPayload; + try { + const sourceMap = (0, _module.findSourceMap)(sourceURL); + maybeSourceMapPayload = sourceMap == null ? void 0 : sourceMap.payload; + } catch (cause) { + // We should not log an actual error instance here because that will re-enter + // this codepath during error inspection and could lead to infinite recursion. + console.error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to find the original code. Cause: ${cause}`); + // If loading fails once, it'll fail every time. + // So set the cache to avoid duplicate errors. + sourceMapCache.set(frame.file, null); + // Don't even fall back to the bundler because it might be not as strict + // with regards to parsing and then we fail later once we consume the + // source map payload. + // This essentially avoids a redundant error where we fail here and then + // later on consumption because the bundler just handed back an invalid + // source map. + return createUnsourcemappedFrame(frame); + } + if (maybeSourceMapPayload === undefined) { + maybeSourceMapPayload = bundlerFindSourceMapPayload(sourceURL); + } + if (maybeSourceMapPayload === undefined) { + return createUnsourcemappedFrame(frame); + } + sourceMapPayload = maybeSourceMapPayload; + try { + // Pass the source map URL as the second parameter so that the consumer + // can resolve relative paths in the source map's `sources` array. This is + // a guess! Turbopack places .map files as siblings to the chunks so this + // is sufficient to compute relative paths but is actually wrong (the + // chunk and sourcemap have different content hashes). We are using the + // node API to read the sourcemap and it doesn't give us access to the + // URI. Devirtualize `about://React/Server/file:///path/to/chunk.js?4` to + // `file:///path/to/chunk.js` so that relative `sources` in the source map + // resolve against the real chunk URL, not the virtual one. + const sourceMapURL = (0, _sourcemaps.devirtualizeReactServerURL)(sourceURL) + '.map'; + sourceMapConsumer = new _sourcemap.SourceMapConsumer(sourceMapPayload, // @ts-expect-error: our typings don't include this parameter but it is here. + sourceMapURL); + } catch (cause) { + // We should not log an actual error instance here because that will re-enter + // this codepath during error inspection and could lead to infinite recursion. + console.error(`${sourceURL}: Invalid source map. Only conformant source maps can be used to find the original code. Cause: ${cause}`); + // If creating the consumer fails once, it'll fail every time. + // So set the cache to avoid duplicate errors. + sourceMapCache.set(frame.file, null); + return createUnsourcemappedFrame(frame); + } + sourceMapCache.set(frame.file, { + map: sourceMapConsumer, + payload: sourceMapPayload + }); + } else if (sourceMapCacheEntry === null) { + // We failed earlier getting the payload or consumer. + // Just return an unsourcemapped frame. + // Errors will already be logged. + return createUnsourcemappedFrame(frame); + } else { + sourceMapConsumer = sourceMapCacheEntry.map; + sourceMapPayload = sourceMapCacheEntry.payload; + } + const sourcePosition = sourceMapConsumer.originalPositionFor({ + column: (frame.column1 ?? 1) - 1, + line: frame.line1 ?? 1 + }); + const applicableSourceMap = (0, _sourcemaps.findApplicableSourceMapPayload)((frame.line1 ?? 1) - 1, (frame.column1 ?? 1) - 1, sourceMapPayload); + let ignored = applicableSourceMap !== undefined && (0, _sourcemaps.sourceMapIgnoreListsEverything)(applicableSourceMap); + if (sourcePosition.source === null) { + return { + stack: { + arguments: frame.arguments, + file: frame.file, + line1: frame.line1, + column1: frame.column1, + methodName: frame.methodName, + ignored: ignored || shouldIgnoreListGeneratedFrame(frame.file) + }, + code: null + }; + } + // TODO(veil): Upstream a method to sourcemap consumer that immediately says if a frame is ignored or not. + if (applicableSourceMap === undefined) { + console.error('No applicable source map found in sections for frame', frame); + } else if (!ignored && shouldIgnoreListOriginalFrame(sourcePosition.source)) { + // Externals may be libraries that don't ship ignoreLists. + // This is really taking control away from libraries. + // They should still ship `ignoreList` so that attached debuggers ignore-list their frames. + // TODO: Maybe only ignore library sourcemaps if `ignoreList` is absent? + // Though keep in mind that Turbopack omits empty `ignoreList`. + // So if we establish this convention, we should communicate it to the ecosystem. + ignored = true; + } else if (!ignored) { + var _applicableSourceMap_ignoreList; + // TODO: O(n^2). Consider moving `ignoreList` into a Set + const sourceIndex = applicableSourceMap.sources.indexOf(sourcePosition.source); + ignored = ((_applicableSourceMap_ignoreList = applicableSourceMap.ignoreList) == null ? void 0 : _applicableSourceMap_ignoreList.includes(sourceIndex)) ?? false; + } + const originalFrame = { + // We ignore the sourcemapped name since it won't be the correct name. + // The callsite will point to the column of the variable name instead of the + // name of the enclosing function. + // TODO(NDX-531): Spy on prepareStackTrace to get the enclosing line number for method name mapping. + methodName: (_frame_methodName = frame.methodName) == null ? void 0 : (_frame_methodName_replace = _frame_methodName.replace('__WEBPACK_DEFAULT_EXPORT__', 'default')) == null ? void 0 : _frame_methodName_replace.replace('__webpack_exports__.', ''), + file: sourcePosition.source, + line1: sourcePosition.line, + column1: sourcePosition.column + 1, + // TODO: c&p from async createOriginalStackFrame but why not frame.arguments? + arguments: [], + ignored + }; + /** undefined = not yet computed */ let codeFrame; + return { + stack: originalFrame, + get code () { + if (codeFrame === undefined) { + const sourceContent = sourceMapConsumer.sourceContentFor(sourcePosition.source, /* returnNullOnMissing */ true) ?? null; + codeFrame = getOriginalCodeFrame(originalFrame, sourceContent, inspectOptions.colors); + } + return codeFrame; + } + }; +} +function parseAndSourceMap(error, inspectOptions) { + const showIgnoreListed = process.env.__NEXT_SHOW_IGNORE_LISTED === 'true'; + // We overwrote Error.prepareStackTrace earlier so error.stack is not sourcemapped. + let unparsedStack = String(error.stack); + // We could just read it from `error.stack`. + // This works around cases where a 3rd party `Error.prepareStackTrace` implementation + // doesn't implement the name computation correctly. + const errorName = computeErrorName(error); + let idx = unparsedStack.indexOf('react_stack_bottom_frame'); + if (idx !== -1) { + idx = unparsedStack.lastIndexOf('\n', idx); + } else { + idx = unparsedStack.indexOf('react-stack-bottom-frame'); + if (idx !== -1) { + idx = unparsedStack.lastIndexOf('\n', idx); + } + } + if (idx !== -1 && !showIgnoreListed) { + // Cut off everything after the bottom frame since it'll be React internals. + unparsedStack = unparsedStack.slice(0, idx); + } + const unsourcemappedStack = (0, _parsestack.parseStack)(unparsedStack); + const sourceMapCache = new Map(); + const sourceMappedFrames = []; + let sourceFrame = null; + for (const frame of unsourcemappedStack){ + if (frame.file === null) { + sourceMappedFrames.push({ + code: null, + stack: { + file: frame.file, + line1: frame.line1, + column1: frame.column1, + methodName: frame.methodName, + arguments: frame.arguments, + ignored: false + } + }); + } else { + const sourcemappedFrame = getSourcemappedFrameIfPossible(// We narrowed this earlier by bailing if `frame.file` is null. + frame, sourceMapCache, inspectOptions); + sourceMappedFrames.push(sourcemappedFrame); + // We can determine the sourceframe here. + // anonymous frames won't have a sourceframe so we don't need to scan + // all stacks again to check if they are sandwiched between ignored frames. + if (sourceFrame === null && // TODO: Is this the right choice? + !sourcemappedFrame.stack.ignored && sourcemappedFrame.code !== null) { + sourceFrame = sourcemappedFrame.code; + } + } + } + ignoreListAnonymousStackFramesIfSandwiched(sourceMappedFrames); + let sourceMappedStack = ''; + for(let i = 0; i < sourceMappedFrames.length; i++){ + const frame = sourceMappedFrames[i]; + if (!frame.stack.ignored) { + sourceMappedStack += '\n' + frameToString(frame.stack.methodName, frame.stack.file, frame.stack.line1, frame.stack.column1); + } else if (showIgnoreListed) { + sourceMappedStack += '\n' + (0, _picocolors.dim)(frameToString(frame.stack.methodName, frame.stack.file, frame.stack.line1, frame.stack.column1)); + } + } + if (sourceMappedStack === '' && sourceMappedFrames.length > 0) { + // The `at` marker is important so that Node.js doesn't add square brackets + // around the stringified error i.e. this results in + // Error: message + // at + // instead of + // [Error: message + // at ] + sourceMappedStack = '\n at ' + (0, _picocolors.italic)('ignore-listed frames'); + } + return errorName + ': ' + error.message + sourceMappedStack + (sourceFrame !== null ? '\n' + sourceFrame : ''); +} +function sourceMapError(error, inspectOptions) { + // Setting an undefined `cause` would print `[cause]: undefined` + const options = error.cause !== undefined ? { + cause: error.cause + } : undefined; + // Create a new Error object with the source mapping applied and then use native + // Node.js formatting on the result. + const newError = error instanceof AggregateError ? Object.defineProperty(new AggregateError(error.errors, error.message, options), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }) : Object.defineProperty(new Error(error.message, options), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + // TODO: Ensure `class MyError extends Error {}` prints `MyError` as the name + newError.stack = parseAndSourceMap(error, inspectOptions); + for(const key in error){ + if (!Object.prototype.hasOwnProperty.call(newError, key)) { + // @ts-expect-error -- We're copying all enumerable properties. + // So they definitely exist on `this` and obviously have no type on `newError` (yet) + newError[key] = error[key]; + } + } + return newError; +} +function patchErrorInspectNodeJS(errorConstructor) { + const inspectSymbol = Symbol.for('nodejs.util.inspect.custom'); + errorConstructor.prepareStackTrace = prepareUnsourcemappedStackTrace; + // @ts-expect-error -- TODO upstream types + errorConstructor.prototype[inspectSymbol] = function(depth, inspectOptions, inspect) { + // avoid false-positive dynamic i/o warnings e.g. due to usage of `Math.random` in `source-map`. + return _workunitasyncstorageexternal.workUnitAsyncStorage.exit(()=>{ + const newError = sourceMapError(this, inspectOptions); + const originalCustomInspect = newError[inspectSymbol]; + // Prevent infinite recursion. + // { customInspect: false } would result in `error.cause` not using our inspect. + Object.defineProperty(newError, inspectSymbol, { + value: undefined, + enumerable: false, + writable: true + }); + try { + return inspect(newError, { + ...inspectOptions, + depth + }); + } finally{ + ; + newError[inspectSymbol] = originalCustomInspect; + } + }); + }; +} +function patchErrorInspectEdgeLite(errorConstructor) { + const inspectSymbol = Symbol.for('edge-runtime.inspect.custom'); + errorConstructor.prepareStackTrace = prepareUnsourcemappedStackTrace; + // @ts-expect-error -- TODO upstream types + errorConstructor.prototype[inspectSymbol] = function({ format }) { + // avoid false-positive dynamic i/o warnings e.g. due to usage of `Math.random` in `source-map`. + return _workunitasyncstorageexternal.workUnitAsyncStorage.exit(()=>{ + const newError = sourceMapError(this, {}); + const originalCustomInspect = newError[inspectSymbol]; + // Prevent infinite recursion. + Object.defineProperty(newError, inspectSymbol, { + value: undefined, + enumerable: false, + writable: true + }); + try { + return format(newError); + } finally{ + ; + newError[inspectSymbol] = originalCustomInspect; + } + }); + }; +} + +//# sourceMappingURL=patch-error-inspect.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/pipe-readable.js b/cli/app/node_modules/next/dist/server/pipe-readable.js new file mode 100644 index 00000000000..ad95ae2785b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/pipe-readable.js @@ -0,0 +1,140 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isAbortError: null, + pipeToNodeResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isAbortError: function() { + return isAbortError; + }, + pipeToNodeResponse: function() { + return pipeToNodeResponse; + } +}); +const _nextrequest = require("./web/spec-extension/adapters/next-request"); +const _detachedpromise = require("../lib/detached-promise"); +const _tracer = require("./lib/trace/tracer"); +const _constants = require("./lib/trace/constants"); +const _clientcomponentrendererlogger = require("./client-component-renderer-logger"); +function isAbortError(e) { + return (e == null ? void 0 : e.name) === 'AbortError' || (e == null ? void 0 : e.name) === _nextrequest.ResponseAbortedName; +} +function createWriterFromResponse(res, waitUntilForEnd) { + let started = false; + // Create a promise that will resolve once the response has drained. See + // https://nodejs.org/api/stream.html#stream_event_drain + let drained = new _detachedpromise.DetachedPromise(); + function onDrain() { + drained.resolve(); + } + res.on('drain', onDrain); + // If the finish event fires, it means we shouldn't block and wait for the + // drain event. + res.once('close', ()=>{ + res.off('drain', onDrain); + drained.resolve(); + }); + // Create a promise that will resolve once the response has finished. See + // https://nodejs.org/api/http.html#event-finish_1 + const finished = new _detachedpromise.DetachedPromise(); + res.once('finish', ()=>{ + finished.resolve(); + }); + // Create a writable stream that will write to the response. + return new WritableStream({ + write: async (chunk)=>{ + // You'd think we'd want to use `start` instead of placing this in `write` + // but this ensures that we don't actually flush the headers until we've + // started writing chunks. + if (!started) { + started = true; + if ('performance' in globalThis && process.env.NEXT_OTEL_PERFORMANCE_PREFIX) { + const metrics = (0, _clientcomponentrendererlogger.getClientComponentLoaderMetrics)(); + if (metrics) { + performance.measure(`${process.env.NEXT_OTEL_PERFORMANCE_PREFIX}:next-client-component-loading`, { + start: metrics.clientComponentLoadStart, + end: metrics.clientComponentLoadStart + metrics.clientComponentLoadTimes + }); + } + } + res.flushHeaders(); + (0, _tracer.getTracer)().trace(_constants.NextNodeServerSpan.startResponse, { + spanName: 'start response' + }, ()=>undefined); + } + try { + const ok = res.write(chunk); + // Added by the `compression` middleware, this is a function that will + // flush the partially-compressed response to the client. + if ('flush' in res && typeof res.flush === 'function') { + res.flush(); + } + // If the write returns false, it means there's some backpressure, so + // wait until it's streamed before continuing. + if (!ok) { + await drained.promise; + // Reset the drained promise so that we can wait for the next drain event. + drained = new _detachedpromise.DetachedPromise(); + } + } catch (err) { + res.end(); + throw Object.defineProperty(new Error('failed to write chunk to response', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E321", + enumerable: false, + configurable: true + }); + } + }, + abort: (err)=>{ + if (res.writableFinished) return; + res.destroy(err); + }, + close: async ()=>{ + // if a waitUntil promise was passed, wait for it to resolve before + // ending the response. + if (waitUntilForEnd) { + await waitUntilForEnd; + } + if (res.writableFinished) return; + res.end(); + return finished.promise; + } + }); +} +async function pipeToNodeResponse(readable, res, waitUntilForEnd) { + try { + // If the response has already errored, then just return now. + const { errored, destroyed } = res; + if (errored || destroyed) return; + // Create a new AbortController so that we can abort the readable if the + // client disconnects. + const controller = (0, _nextrequest.createAbortController)(res); + const writer = createWriterFromResponse(res, waitUntilForEnd); + await readable.pipeTo(writer, { + signal: controller.signal + }); + } catch (err) { + // If this isn't related to an abort error, re-throw it. + if (isAbortError(err)) return; + throw Object.defineProperty(new Error('failed to pipe response', { + cause: err + }), "__NEXT_ERROR_CODE", { + value: "E180", + enumerable: false, + configurable: true + }); + } +} + +//# sourceMappingURL=pipe-readable.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/post-process.js b/cli/app/node_modules/next/dist/server/post-process.js new file mode 100644 index 00000000000..bff02e8e0fe --- /dev/null +++ b/cli/app/node_modules/next/dist/server/post-process.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "postProcessHTML", { + enumerable: true, + get: function() { + return postProcessHTML; + } +}); +const _nonnullable = require("../lib/non-nullable"); +async function postProcessHTML(content, renderOpts) { + const postProcessors = [ + process.env.NEXT_RUNTIME !== 'edge' && renderOpts.optimizeCss ? async (html)=>{ + // eslint-disable-next-line import/no-extraneous-dependencies + const Critters = require('critters'); + // @ts-expect-error -- interopRequireDefault + const cssOptimizer = new Critters({ + ssrMode: true, + reduceInlineStyles: false, + path: renderOpts.distDir, + publicPath: `${renderOpts.assetPrefix}/_next/`, + preload: 'media', + fonts: false, + logLevel: process.env.CRITTERS_LOG_LEVEL || (process.env.NODE_ENV === 'production' ? 'warn' : 'info'), + ...renderOpts.optimizeCss + }); + return await cssOptimizer.process(html); + } : null + ].filter(_nonnullable.nonNullable); + for (const postProcessor of postProcessors){ + if (postProcessor) { + content = await postProcessor(content); + } + } + return content; +} + +//# sourceMappingURL=post-process.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/render-result.js b/cli/app/node_modules/next/dist/server/render-result.js new file mode 100644 index 00000000000..b8bf0a7fd4a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/render-result.js @@ -0,0 +1,204 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return RenderResult; + } +}); +const _nodewebstreamshelper = require("./stream-utils/node-web-streams-helper"); +const _pipereadable = require("./pipe-readable"); +const _invarianterror = require("../shared/lib/invariant-error"); +class RenderResult { + static #_ = /** + * A render result that represents an empty response. This is used to + * represent a response that was not found or was already sent. + */ this.EMPTY = new RenderResult(null, { + metadata: {}, + contentType: null + }); + /** + * Creates a new RenderResult instance from a static response. + * + * @param value the static response value + * @param contentType the content type of the response + * @returns a new RenderResult instance + */ static fromStatic(value, contentType) { + return new RenderResult(value, { + metadata: {}, + contentType + }); + } + constructor(response, { contentType, waitUntil, metadata }){ + this.response = response; + this.contentType = contentType; + this.metadata = metadata; + this.waitUntil = waitUntil; + } + assignMetadata(metadata) { + Object.assign(this.metadata, metadata); + } + /** + * Returns true if the response is null. It can be null if the response was + * not found or was already sent. + */ get isNull() { + return this.response === null; + } + /** + * Returns false if the response is a string. It can be a string if the page + * was prerendered. If it's not, then it was generated dynamically. + */ get isDynamic() { + return typeof this.response !== 'string'; + } + toUnchunkedString(stream = false) { + if (this.response === null) { + // If the response is null, return an empty string. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + return ''; + } + if (typeof this.response !== 'string') { + if (!stream) { + throw Object.defineProperty(new _invarianterror.InvariantError('dynamic responses cannot be unchunked. This is a bug in Next.js'), "__NEXT_ERROR_CODE", { + value: "E732", + enumerable: false, + configurable: true + }); + } + return (0, _nodewebstreamshelper.streamToString)(this.readable); + } + return this.response; + } + /** + * Returns a readable stream of the response. + */ get readable() { + if (this.response === null) { + // If the response is null, return an empty stream. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + return new ReadableStream({ + start (controller) { + controller.close(); + } + }); + } + if (typeof this.response === 'string') { + return (0, _nodewebstreamshelper.streamFromString)(this.response); + } + if (Buffer.isBuffer(this.response)) { + return (0, _nodewebstreamshelper.streamFromBuffer)(this.response); + } + // If the response is an array of streams, then chain them together. + if (Array.isArray(this.response)) { + return (0, _nodewebstreamshelper.chainStreams)(...this.response); + } + return this.response; + } + /** + * Coerces the response to an array of streams. This will convert the response + * to an array of streams if it is not already one. + * + * @returns An array of streams + */ coerce() { + if (this.response === null) { + // If the response is null, return an empty stream. This behavior is + // intentional as we're now providing the `RenderResult.EMPTY` value. + return []; + } + if (typeof this.response === 'string') { + return [ + (0, _nodewebstreamshelper.streamFromString)(this.response) + ]; + } else if (Array.isArray(this.response)) { + return this.response; + } else if (Buffer.isBuffer(this.response)) { + return [ + (0, _nodewebstreamshelper.streamFromBuffer)(this.response) + ]; + } else { + return [ + this.response + ]; + } + } + /** + * Pipes the response through a transform stream. This converts the response + * to a single readable stream (chaining if needed) and pipes it through the + * provided transform. + * + * @param transform The transform stream to pipe through + */ pipeThrough(transform) { + this.response = this.readable.pipeThrough(transform); + } + /** + * Unshifts a new stream to the response. This will convert the response to an + * array of streams if it is not already one and will add the new stream to + * the start of the array. When this response is piped, all of the streams + * will be piped one after the other. + * + * @param readable The new stream to unshift + */ unshift(readable) { + // Coerce the response to an array of streams. + this.response = this.coerce(); + // Add the new stream to the start of the array. + this.response.unshift(readable); + } + /** + * Chains a new stream to the response. This will convert the response to an + * array of streams if it is not already one and will add the new stream to + * the end. When this response is piped, all of the streams will be piped + * one after the other. + * + * @param readable The new stream to chain + */ push(readable) { + // Coerce the response to an array of streams. + this.response = this.coerce(); + // Add the new stream to the end of the array. + this.response.push(readable); + } + /** + * Pipes the response to a writable stream. This will close/cancel the + * writable stream if an error is encountered. If this doesn't throw, then + * the writable stream will be closed or aborted. + * + * @param writable Writable stream to pipe the response to + */ async pipeTo(writable) { + try { + await this.readable.pipeTo(writable, { + // We want to close the writable stream ourselves so that we can wait + // for the waitUntil promise to resolve before closing it. If an error + // is encountered, we'll abort the writable stream if we swallowed the + // error. + preventClose: true + }); + // If there is a waitUntil promise, wait for it to resolve before + // closing the writable stream. + if (this.waitUntil) await this.waitUntil; + // Close the writable stream. + await writable.close(); + } catch (err) { + // If this is an abort error, we should abort the writable stream (as we + // took ownership of it when we started piping). We don't need to re-throw + // because we handled the error. + if ((0, _pipereadable.isAbortError)(err)) { + // Abort the writable stream if an error is encountered. + await writable.abort(err); + return; + } + // We're not aborting the writer here as when this method throws it's not + // clear as to how so the caller should assume it's their responsibility + // to clean up the writer. + throw err; + } + } + /** + * Pipes the response to a node response. This will close/cancel the node + * response if an error is encountered. + * + * @param res + */ async pipeToNodeResponse(res) { + await (0, _pipereadable.pipeToNodeResponse)(this.readable, res, this.waitUntil); + } +} + +//# sourceMappingURL=render-result.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/render.js b/cli/app/node_modules/next/dist/server/render.js new file mode 100644 index 00000000000..ee2d98ffc1f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/render.js @@ -0,0 +1,1140 @@ +/* eslint-disable @next/internal/no-ambiguous-jsx -- Pages router doesn't use react-server */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + errorToJSON: null, + renderToHTML: null, + renderToHTMLImpl: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + errorToJSON: function() { + return errorToJSON; + }, + renderToHTML: function() { + return renderToHTML; + }, + renderToHTMLImpl: function() { + return renderToHTMLImpl; + } +}); +const _jsxruntime = require("react/jsx-runtime"); +const _apiutils = require("./api-utils"); +const _getcookieparser = require("./api-utils/get-cookie-parser"); +const _react = /*#__PURE__*/ _interop_require_default(require("react")); +const _ReactDOMServerPages = /*#__PURE__*/ _interop_require_default(require("next/dist/server/ReactDOMServerPages")); +const _styledjsx = require("styled-jsx"); +const _constants = require("../lib/constants"); +const _constants1 = require("../shared/lib/constants"); +const _isserializableprops = require("../lib/is-serializable-props"); +const _head = require("../shared/lib/head"); +const _headmanagercontextsharedruntime = require("../shared/lib/head-manager-context.shared-runtime"); +const _loadablesharedruntime = /*#__PURE__*/ _interop_require_default(require("../shared/lib/loadable.shared-runtime")); +const _loadablecontextsharedruntime = require("../shared/lib/loadable-context.shared-runtime"); +const _routercontextsharedruntime = require("../shared/lib/router-context.shared-runtime"); +const _isdynamic = require("../shared/lib/router/utils/is-dynamic"); +const _utils = require("../shared/lib/utils"); +const _htmlcontextsharedruntime = require("../shared/lib/html-context.shared-runtime"); +const _normalizepagepath = require("../shared/lib/page-path/normalize-page-path"); +const _denormalizepagepath = require("../shared/lib/page-path/denormalize-page-path"); +const _requestmeta = require("./request-meta"); +const _redirectstatus = require("../lib/redirect-status"); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("./render-result")); +const _iserror = /*#__PURE__*/ _interop_require_default(require("../lib/is-error")); +const _nodewebstreamshelper = require("./stream-utils/node-web-streams-helper"); +const _imageconfigcontextsharedruntime = require("../shared/lib/image-config-context.shared-runtime"); +const _stripansi = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/strip-ansi")); +const _internalutils = require("./internal-utils"); +const _adapters = require("../shared/lib/router/adapters"); +const _approutercontextsharedruntime = require("../shared/lib/app-router-context.shared-runtime"); +const _hooksclientcontextsharedruntime = require("../shared/lib/hooks-client-context.shared-runtime"); +const _tracer = require("./lib/trace/tracer"); +const _constants2 = require("./lib/trace/constants"); +const _reflect = require("./web/spec-extension/adapters/reflect"); +const _cachecontrol = require("./lib/cache-control"); +const _errorsource = require("../shared/lib/error-source"); +const _getscriptnoncefromheader = require("./app-render/get-script-nonce-from-header"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +let tryGetPreviewData; +let warn; +let postProcessHTML; +const DOCTYPE = ''; +if (process.env.NEXT_RUNTIME !== 'edge') { + tryGetPreviewData = require('./api-utils/node/try-get-preview-data').tryGetPreviewData; + warn = require('../build/output/log').warn; + postProcessHTML = require('./post-process').postProcessHTML; +} else { + warn = console.warn.bind(console); + postProcessHTML = async (html)=>html; +} +function noRouter() { + const message = 'No router instance found. you should only use "next/router" inside the client side of your app. https://nextjs.org/docs/messages/no-router-instance'; + throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1027", + enumerable: false, + configurable: true + }); +} +async function renderToString(element) { + const renderStream = await _ReactDOMServerPages.default.renderToReadableStream(element); + await renderStream.allReady; + return (0, _nodewebstreamshelper.streamToString)(renderStream); +} +class ServerRouter { + constructor(pathname, query, as, { isFallback }, isReady, basePath, locale, locales, defaultLocale, domainLocales, isPreview, isLocaleDomain){ + this.route = pathname.replace(/\/$/, '') || '/'; + this.pathname = pathname; + this.query = query; + this.asPath = as; + this.isFallback = isFallback; + this.basePath = basePath; + this.locale = locale; + this.locales = locales; + this.defaultLocale = defaultLocale; + this.isReady = isReady; + this.domainLocales = domainLocales; + this.isPreview = !!isPreview; + this.isLocaleDomain = !!isLocaleDomain; + } + push() { + noRouter(); + } + replace() { + noRouter(); + } + reload() { + noRouter(); + } + back() { + noRouter(); + } + forward() { + noRouter(); + } + prefetch() { + noRouter(); + } + beforePopState() { + noRouter(); + } +} +function enhanceComponents(options, App, Component) { + // For backwards compatibility + if (typeof options === 'function') { + return { + App, + Component: options(Component) + }; + } + return { + App: options.enhanceApp ? options.enhanceApp(App) : App, + Component: options.enhanceComponent ? options.enhanceComponent(Component) : Component + }; +} +function renderPageTree(App, Component, props) { + return /*#__PURE__*/ (0, _jsxruntime.jsx)(App, { + Component: Component, + ...props + }); +} +const invalidKeysMsg = (methodName, invalidKeys)=>{ + const docsPathname = `invalid-${methodName.toLocaleLowerCase()}-value`; + return `Additional keys were returned from \`${methodName}\`. Properties intended for your component must be nested under the \`props\` key, e.g.:` + `\n\n\treturn { props: { title: 'My Title', content: '...' } }` + `\n\nKeys that need to be moved: ${invalidKeys.join(', ')}.` + `\nRead more: https://nextjs.org/docs/messages/${docsPathname}`; +}; +function checkRedirectValues(redirect, req, method) { + const { destination, permanent, statusCode, basePath } = redirect; + let errors = []; + const hasStatusCode = typeof statusCode !== 'undefined'; + const hasPermanent = typeof permanent !== 'undefined'; + if (hasPermanent && hasStatusCode) { + errors.push(`\`permanent\` and \`statusCode\` can not both be provided`); + } else if (hasPermanent && typeof permanent !== 'boolean') { + errors.push(`\`permanent\` must be \`true\` or \`false\``); + } else if (hasStatusCode && !_redirectstatus.allowedStatusCodes.has(statusCode)) { + errors.push(`\`statusCode\` must undefined or one of ${[ + ..._redirectstatus.allowedStatusCodes + ].join(', ')}`); + } + const destinationType = typeof destination; + if (destinationType !== 'string') { + errors.push(`\`destination\` should be string but received ${destinationType}`); + } + const basePathType = typeof basePath; + if (basePathType !== 'undefined' && basePathType !== 'boolean') { + errors.push(`\`basePath\` should be undefined or a false, received ${basePathType}`); + } + if (errors.length > 0) { + throw Object.defineProperty(new Error(`Invalid redirect object returned from ${method} for ${req.url}\n` + errors.join(' and ') + '\n' + `See more info here: https://nextjs.org/docs/messages/invalid-redirect-gssp`), "__NEXT_ERROR_CODE", { + value: "E185", + enumerable: false, + configurable: true + }); + } +} +function errorToJSON(err) { + let source = 'server'; + if (process.env.NEXT_RUNTIME !== 'edge') { + source = (0, _errorsource.getErrorSource)(err) || 'server'; + } + return { + name: err.name, + source, + message: (0, _stripansi.default)(err.message), + stack: err.stack, + digest: err.digest + }; +} +function serializeError(dev, err) { + if (dev) { + return errorToJSON(err); + } + return { + name: 'Internal Server Error.', + message: '500 - Internal Server Error.', + statusCode: 500 + }; +} +async function renderToHTMLImpl(req, res, pathname, query, renderOpts, extra, sharedContext, renderContext) { + // Adds support for reading `cookies` in `getServerSideProps` when SSR. + (0, _apiutils.setLazyProp)({ + req: req + }, 'cookies', (0, _getcookieparser.getCookieParser)(req.headers)); + let baseAssetQueryString = process.env.__NEXT_DEV_SERVER && renderOpts.assetQueryString || ''; + if (process.env.__NEXT_DEV_SERVER && !baseAssetQueryString) { + const userAgent = (req.headers['user-agent'] || '').toLowerCase(); + if (userAgent.includes('safari') && !userAgent.includes('chrome')) { + // In dev we invalidate the cache by appending a timestamp to the resource URL. + // This is a workaround to fix https://github.com/vercel/next.js/issues/5860 + // TODO: remove this workaround when https://bugs.webkit.org/show_bug.cgi?id=187726 is fixed. + // Note: The workaround breaks breakpoints on reload since the script url always changes, + // so we only apply it to Safari. + baseAssetQueryString = `?ts=${Date.now()}`; + } + } + const mutableAssetQueryString = baseAssetQueryString + (sharedContext.deploymentId ? `${baseAssetQueryString ? '&' : '?'}dpl=${sharedContext.deploymentId}` : ''); + const assetQueryString = baseAssetQueryString + (sharedContext.clientAssetToken ? `${baseAssetQueryString ? '&' : '?'}dpl=${sharedContext.clientAssetToken}` : ''); + const metadata = { + assetQueryString, + mutableAssetQueryString + }; + // don't modify original query object + query = Object.assign({}, query); + const { err, pageConfig = {}, buildManifest, reactLoadableManifest, ErrorDebug, getStaticProps, getStaticPaths, getServerSideProps, isNextDataRequest, params, previewProps, basePath, images, runtime: globalRuntime, isExperimentalCompile, expireTime } = renderOpts; + const { App } = extra; + let Document = extra.Document; + let Component = renderOpts.Component; + const OriginComponent = Component; + const isFallback = renderContext.isFallback ?? false; + const notFoundSrcPage = renderContext.developmentNotFoundSourcePage; + // next internal queries should be stripped out + (0, _internalutils.stripInternalQueries)(query); + const isSSG = !!getStaticProps; + const isBuildTimeSSG = isSSG && renderOpts.isBuildTimePrerendering; + const defaultAppGetInitialProps = App.getInitialProps === App.origGetInitialProps; + const hasPageGetInitialProps = !!(Component == null ? void 0 : Component.getInitialProps); + const hasPageScripts = Component == null ? void 0 : Component.unstable_scriptLoader; + const pageIsDynamic = (0, _isdynamic.isDynamicRoute)(pathname); + const defaultErrorGetInitialProps = pathname === '/_error' && Component.getInitialProps === Component.origGetInitialProps; + if (renderOpts.isBuildTimePrerendering && hasPageGetInitialProps && !defaultErrorGetInitialProps) { + warn(`Detected getInitialProps on page '${pathname}'` + ` while running export. It's recommended to use getStaticProps` + ` which has a more correct behavior for static exporting.` + `\nRead more: https://nextjs.org/docs/messages/get-initial-props-export`); + } + let isAutoExport = !hasPageGetInitialProps && defaultAppGetInitialProps && !isSSG && !getServerSideProps; + // if we are running from experimental compile and the page + // would normally be automatically statically optimized + // ensure we set cache header so it's not rendered on-demand + // every request + if (isAutoExport && !process.env.__NEXT_DEV_SERVER && isExperimentalCompile) { + res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)({ + revalidate: false, + expire: expireTime + })); + isAutoExport = false; + } + if (hasPageGetInitialProps && isSSG) { + throw Object.defineProperty(new Error(_constants.SSG_GET_INITIAL_PROPS_CONFLICT + ` ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E262", + enumerable: false, + configurable: true + }); + } + if (hasPageGetInitialProps && getServerSideProps) { + throw Object.defineProperty(new Error(_constants.SERVER_PROPS_GET_INIT_PROPS_CONFLICT + ` ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E262", + enumerable: false, + configurable: true + }); + } + if (getServerSideProps && isSSG) { + throw Object.defineProperty(new Error(_constants.SERVER_PROPS_SSG_CONFLICT + ` ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E262", + enumerable: false, + configurable: true + }); + } + if (getServerSideProps && renderOpts.nextConfigOutput === 'export') { + throw Object.defineProperty(new Error('getServerSideProps cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'), "__NEXT_ERROR_CODE", { + value: "E369", + enumerable: false, + configurable: true + }); + } + if (getStaticPaths && !pageIsDynamic) { + throw Object.defineProperty(new Error(`getStaticPaths is only allowed for dynamic SSG pages and was found on '${pathname}'.` + `\nRead more: https://nextjs.org/docs/messages/non-dynamic-getstaticpaths-usage`), "__NEXT_ERROR_CODE", { + value: "E187", + enumerable: false, + configurable: true + }); + } + if (!!getStaticPaths && !isSSG) { + throw Object.defineProperty(new Error(`getStaticPaths was added without a getStaticProps in ${pathname}. Without getStaticProps, getStaticPaths does nothing`), "__NEXT_ERROR_CODE", { + value: "E447", + enumerable: false, + configurable: true + }); + } + if (isSSG && pageIsDynamic && !getStaticPaths) { + throw Object.defineProperty(new Error(`getStaticPaths is required for dynamic SSG pages and is missing for '${pathname}'.` + `\nRead more: https://nextjs.org/docs/messages/invalid-getstaticpaths-value`), "__NEXT_ERROR_CODE", { + value: "E255", + enumerable: false, + configurable: true + }); + } + let asPath = renderOpts.resolvedAsPath || req.url; + if (process.env.__NEXT_DEV_SERVER) { + const { isValidElementType } = require('next/dist/compiled/react-is'); + if (!isValidElementType(Component)) { + throw Object.defineProperty(new Error(`The default export is not a React Component in page: "${pathname}"`), "__NEXT_ERROR_CODE", { + value: "E286", + enumerable: false, + configurable: true + }); + } + if (!isValidElementType(App)) { + throw Object.defineProperty(new Error(`The default export is not a React Component in page: "/_app"`), "__NEXT_ERROR_CODE", { + value: "E464", + enumerable: false, + configurable: true + }); + } + if (!isValidElementType(Document)) { + throw Object.defineProperty(new Error(`The default export is not a React Component in page: "/_document"`), "__NEXT_ERROR_CODE", { + value: "E511", + enumerable: false, + configurable: true + }); + } + if (isAutoExport || isFallback) { + // remove query values except ones that will be set during export + query = {}; + asPath = `${pathname}${// ensure trailing slash is present for non-dynamic auto-export pages + req.url.endsWith('/') && pathname !== '/' && !pageIsDynamic ? '/' : ''}`; + req.url = pathname; + } + if (pathname === '/404' && (hasPageGetInitialProps || getServerSideProps)) { + throw Object.defineProperty(new Error(`\`pages/404\` ${_constants.STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR}`), "__NEXT_ERROR_CODE", { + value: "E134", + enumerable: false, + configurable: true + }); + } + if (_constants1.STATIC_STATUS_PAGES.includes(pathname) && (hasPageGetInitialProps || getServerSideProps)) { + throw Object.defineProperty(new Error(`\`pages${pathname}\` ${_constants.STATIC_STATUS_PAGE_GET_INITIAL_PROPS_ERROR}`), "__NEXT_ERROR_CODE", { + value: "E125", + enumerable: false, + configurable: true + }); + } + if (renderOpts == null ? void 0 : renderOpts.setIsrStatus) { + renderOpts.setIsrStatus(asPath, isSSG || isAutoExport); + } + } + for (const methodName of [ + 'getStaticProps', + 'getServerSideProps', + 'getStaticPaths' + ]){ + if (Component == null ? void 0 : Component[methodName]) { + throw Object.defineProperty(new Error(`page ${pathname} ${methodName} ${_constants.GSSP_COMPONENT_MEMBER_ERROR}`), "__NEXT_ERROR_CODE", { + value: "E417", + enumerable: false, + configurable: true + }); + } + } + await _loadablesharedruntime.default.preloadAll() // Make sure all dynamic imports are loaded + ; + let isPreview = undefined; + let previewData; + if ((isSSG || getServerSideProps) && !isFallback && process.env.NEXT_RUNTIME !== 'edge' && previewProps) { + // Reads of this are cached on the `req` object, so this should resolve + // instantly. There's no need to pass this data down from a previous + // invoke. + previewData = tryGetPreviewData(req, res, previewProps, !!renderOpts.multiZoneDraftMode); + isPreview = previewData !== false; + } + // url will always be set + const routerIsReady = !!(getServerSideProps || hasPageGetInitialProps || !defaultAppGetInitialProps && !isSSG || isExperimentalCompile); + const router = new ServerRouter(pathname, query, asPath, { + isFallback: isFallback + }, routerIsReady, basePath, renderOpts.locale, renderOpts.locales, renderOpts.defaultLocale, renderOpts.domainLocales, isPreview, (0, _requestmeta.getRequestMeta)(req, 'isLocaleDomain')); + const appRouter = (0, _adapters.adaptForAppRouterInstance)(router); + let scriptLoader = {}; + const jsxStyleRegistry = (0, _styledjsx.createStyleRegistry)(); + let head = (0, _head.defaultHead)(); + const reactLoadableModules = []; + let initialScripts = {}; + if (hasPageScripts) { + initialScripts.beforeInteractive = [].concat(hasPageScripts()).filter((script)=>script.props.strategy === 'beforeInteractive').map((script)=>script.props); + } + const csp = req.headers['content-security-policy'] || req.headers['content-security-policy-report-only']; + const nonce = typeof csp === 'string' ? (0, _getscriptnoncefromheader.getScriptNonceFromHeader)(csp) : undefined; + const AppContainer = ({ children })=>/*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.AppRouterContext.Provider, { + value: appRouter, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.SearchParamsContext.Provider, { + value: (0, _adapters.adaptForSearchParams)(router), + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_adapters.PathnameContextProviderAdapter, { + router: router, + isAutoExport: isAutoExport, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathParamsContext.Provider, { + value: (0, _adapters.adaptForPathParams)(router), + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_routercontextsharedruntime.RouterContext.Provider, { + value: router, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_headmanagercontextsharedruntime.HeadManagerContext.Provider, { + value: { + updateHead: (state)=>{ + head = state; + }, + updateScripts: (scripts)=>{ + scriptLoader = scripts; + }, + scripts: initialScripts, + mountedInstances: new Set(), + nonce + }, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_loadablecontextsharedruntime.LoadableContext.Provider, { + value: (moduleName)=>reactLoadableModules.push(moduleName), + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_styledjsx.StyleRegistry, { + registry: jsxStyleRegistry, + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_imageconfigcontextsharedruntime.ImageConfigContext.Provider, { + value: images, + children: children + }) + }) + }) + }) + }) + }) + }) + }) + }); + // The `useId` API uses the path indexes to generate an ID for each node. + // To guarantee the match of hydration, we need to ensure that the structure + // of wrapper nodes is isomorphic in server and client. + // TODO: With `enhanceApp` and `enhanceComponents` options, this approach may + // not be useful. + // https://github.com/facebook/react/pull/22644 + const Noop = ()=>null; + const AppContainerWithIsomorphicFiberStructure = ({ children })=>{ + return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { + children: [ + /*#__PURE__*/ (0, _jsxruntime.jsx)(Noop, {}), + /*#__PURE__*/ (0, _jsxruntime.jsx)(AppContainer, { + children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { + children: [ + children, + /*#__PURE__*/ (0, _jsxruntime.jsx)(Noop, {}) + ] + }) + }) + ] + }); + }; + const ctx = { + err, + req: isAutoExport ? undefined : req, + res: isAutoExport ? undefined : res, + pathname, + query, + asPath, + locale: renderOpts.locale, + locales: renderOpts.locales, + defaultLocale: renderOpts.defaultLocale, + AppTree: (props)=>{ + return /*#__PURE__*/ (0, _jsxruntime.jsx)(AppContainerWithIsomorphicFiberStructure, { + children: renderPageTree(App, OriginComponent, { + ...props, + router + }) + }); + }, + defaultGetInitialProps: async (docCtx, options = {})=>{ + const enhanceApp = (AppComp)=>{ + return (props)=>/*#__PURE__*/ (0, _jsxruntime.jsx)(AppComp, { + ...props + }); + }; + const { html, head: renderPageHead } = await docCtx.renderPage({ + enhanceApp + }); + const styles = jsxStyleRegistry.styles({ + nonce: options.nonce || nonce + }); + jsxStyleRegistry.flush(); + return { + html, + head: renderPageHead, + styles + }; + } + }; + let props; + const nextExport = !isSSG && (renderOpts.isBuildTimePrerendering || process.env.__NEXT_DEV_SERVER && (isAutoExport || isFallback)); + const styledJsxInsertedHTML = ()=>{ + const styles = jsxStyleRegistry.styles(); + jsxStyleRegistry.flush(); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, { + children: styles + }); + }; + props = await (0, _utils.loadGetInitialProps)(App, { + AppTree: ctx.AppTree, + Component, + router, + ctx + }); + if ((isSSG || getServerSideProps) && isPreview) { + props.__N_PREVIEW = true; + } + if (isSSG) { + props[_constants1.STATIC_PROPS_ID] = true; + } + if (isSSG && !isFallback) { + let data; + try { + data = await (0, _tracer.getTracer)().trace(_constants2.RenderSpan.getStaticProps, { + spanName: `getStaticProps ${pathname}`, + attributes: { + 'next.route': pathname + } + }, ()=>getStaticProps({ + ...pageIsDynamic ? { + params + } : undefined, + ...isPreview ? { + draftMode: true, + preview: true, + previewData: previewData + } : undefined, + locales: [ + ...renderOpts.locales ?? [] + ], + locale: renderOpts.locale, + defaultLocale: renderOpts.defaultLocale, + revalidateReason: renderOpts.isOnDemandRevalidate ? 'on-demand' : isBuildTimeSSG ? 'build' : 'stale' + })); + } catch (staticPropsError) { + // remove not found error code to prevent triggering legacy + // 404 rendering + if (staticPropsError && staticPropsError.code === 'ENOENT') { + delete staticPropsError.code; + } + throw staticPropsError; + } + if (data == null) { + throw Object.defineProperty(new Error(_constants.GSP_NO_RETURNED_VALUE), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + const invalidKeys = Object.keys(data).filter((key)=>key !== 'revalidate' && key !== 'props' && key !== 'redirect' && key !== 'notFound'); + if (invalidKeys.includes('unstable_revalidate')) { + throw Object.defineProperty(new Error(_constants.UNSTABLE_REVALIDATE_RENAME_ERROR), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (invalidKeys.length) { + throw Object.defineProperty(new Error(invalidKeysMsg('getStaticProps', invalidKeys)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (process.env.NODE_ENV !== 'production') { + if (typeof data.notFound !== 'undefined' && typeof data.redirect !== 'undefined') { + throw Object.defineProperty(new Error(`\`redirect\` and \`notFound\` can not both be returned from ${isSSG ? 'getStaticProps' : 'getServerSideProps'} at the same time. Page: ${pathname}\nSee more info here: https://nextjs.org/docs/messages/gssp-mixed-not-found-redirect`), "__NEXT_ERROR_CODE", { + value: "E454", + enumerable: false, + configurable: true + }); + } + } + if ('notFound' in data && data.notFound) { + if (pathname === '/404') { + throw Object.defineProperty(new Error(`The /404 page can not return notFound in "getStaticProps", please remove it to continue!`), "__NEXT_ERROR_CODE", { + value: "E121", + enumerable: false, + configurable: true + }); + } + metadata.isNotFound = true; + } + if ('redirect' in data && data.redirect && typeof data.redirect === 'object') { + checkRedirectValues(data.redirect, req, 'getStaticProps'); + if (isBuildTimeSSG) { + throw Object.defineProperty(new Error(`\`redirect\` can not be returned from getStaticProps during prerendering (${req.url})\n` + `See more info here: https://nextjs.org/docs/messages/gsp-redirect-during-prerender`), "__NEXT_ERROR_CODE", { + value: "E497", + enumerable: false, + configurable: true + }); + } + ; + data.props = { + __N_REDIRECT: data.redirect.destination, + __N_REDIRECT_STATUS: (0, _redirectstatus.getRedirectStatus)(data.redirect) + }; + if (typeof data.redirect.basePath !== 'undefined') { + ; + data.props.__N_REDIRECT_BASE_PATH = data.redirect.basePath; + } + metadata.isRedirect = true; + } + if ((process.env.__NEXT_DEV_SERVER || isBuildTimeSSG) && !metadata.isNotFound && !(0, _isserializableprops.isSerializableProps)(pathname, 'getStaticProps', data.props)) { + // this fn should throw an error instead of ever returning `false` + throw Object.defineProperty(new Error('invariant: getStaticProps did not return valid props. Please report this.'), "__NEXT_ERROR_CODE", { + value: "E129", + enumerable: false, + configurable: true + }); + } + let revalidate; + if ('revalidate' in data) { + if (data.revalidate && renderOpts.nextConfigOutput === 'export') { + throw Object.defineProperty(new Error('ISR cannot be used with "output: export". See more info here: https://nextjs.org/docs/advanced-features/static-html-export'), "__NEXT_ERROR_CODE", { + value: "E201", + enumerable: false, + configurable: true + }); + } + if (typeof data.revalidate === 'number') { + if (!Number.isInteger(data.revalidate)) { + throw Object.defineProperty(new Error(`A page's revalidate option must be seconds expressed as a natural number for ${req.url}. Mixed numbers, such as '${data.revalidate}', cannot be used.` + `\nTry changing the value to '${Math.ceil(data.revalidate)}' or using \`Math.ceil()\` if you're computing the value.`), "__NEXT_ERROR_CODE", { + value: "E438", + enumerable: false, + configurable: true + }); + } else if (data.revalidate <= 0) { + throw Object.defineProperty(new Error(`A page's revalidate option can not be less than or equal to zero for ${req.url}. A revalidate option of zero means to revalidate after _every_ request, and implies stale data cannot be tolerated.` + `\n\nTo never revalidate, you can set revalidate to \`false\` (only ran once at build-time).` + `\nTo revalidate as soon as possible, you can set the value to \`1\`.`), "__NEXT_ERROR_CODE", { + value: "E311", + enumerable: false, + configurable: true + }); + } else { + if (data.revalidate > 31536000) { + // if it's greater than a year for some reason error + console.warn(`Warning: A page's revalidate option was set to more than a year for ${req.url}. This may have been done in error.` + `\nTo only run getStaticProps at build-time and not revalidate at runtime, you can set \`revalidate\` to \`false\`!`); + } + revalidate = data.revalidate; + } + } else if (data.revalidate === true) { + // When enabled, revalidate after 1 second. This value is optimal for + // the most up-to-date page possible, but without a 1-to-1 + // request-refresh ratio. + revalidate = 1; + } else if (data.revalidate === false || typeof data.revalidate === 'undefined') { + // By default, we never revalidate. + revalidate = false; + } else { + throw Object.defineProperty(new Error(`A page's revalidate option must be seconds expressed as a natural number. Mixed numbers and strings cannot be used. Received '${JSON.stringify(data.revalidate)}' for ${req.url}`), "__NEXT_ERROR_CODE", { + value: "E161", + enumerable: false, + configurable: true + }); + } + } else { + // By default, we never revalidate. + revalidate = false; + } + props.pageProps = Object.assign({}, props.pageProps, 'props' in data ? data.props : undefined); + // pass up cache control and props for export + metadata.cacheControl = { + revalidate, + expire: undefined + }; + metadata.pageData = props; + // this must come after revalidate is added to renderResultMeta + if (metadata.isNotFound) { + return new _renderresult.default(null, { + metadata, + contentType: null + }); + } + } + if (getServerSideProps) { + props[_constants1.SERVER_PROPS_ID] = true; + } + if (getServerSideProps && !isFallback) { + let data; + let canAccessRes = true; + let resOrProxy = res; + let deferredContent = false; + if (process.env.NODE_ENV !== 'production') { + resOrProxy = new Proxy(res, { + get: function(obj, prop) { + if (!canAccessRes) { + const message = `You should not access 'res' after getServerSideProps resolves.` + `\nRead more: https://nextjs.org/docs/messages/gssp-no-mutating-res`; + if (deferredContent) { + throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1028", + enumerable: false, + configurable: true + }); + } else { + warn(message); + } + } + if (typeof prop === 'symbol') { + return _reflect.ReflectAdapter.get(obj, prop, res); + } + return _reflect.ReflectAdapter.get(obj, prop, res); + } + }); + } + try { + data = await (0, _tracer.getTracer)().trace(_constants2.RenderSpan.getServerSideProps, { + spanName: `getServerSideProps ${pathname}`, + attributes: { + 'next.route': pathname + } + }, async ()=>getServerSideProps({ + req: req, + res: resOrProxy, + query, + resolvedUrl: renderOpts.resolvedUrl, + ...pageIsDynamic ? { + params + } : undefined, + ...previewData !== false ? { + draftMode: true, + preview: true, + previewData: previewData + } : undefined, + // We create a copy here to avoid having the types of + // `getServerSideProps` change. This ensures that users can't + // mutate this array and have it poison the reference. + locales: [ + ...renderOpts.locales ?? [] + ], + locale: renderOpts.locale, + defaultLocale: renderOpts.defaultLocale + })); + canAccessRes = false; + metadata.cacheControl = { + revalidate: 0, + expire: undefined + }; + } catch (serverSidePropsError) { + // remove not found error code to prevent triggering legacy + // 404 rendering + if ((0, _iserror.default)(serverSidePropsError) && serverSidePropsError.code === 'ENOENT') { + delete serverSidePropsError.code; + } + throw serverSidePropsError; + } + if (data == null) { + throw Object.defineProperty(new Error(_constants.GSSP_NO_RETURNED_VALUE), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if (data.props instanceof Promise) { + deferredContent = true; + } + const invalidKeys = Object.keys(data).filter((key)=>key !== 'props' && key !== 'redirect' && key !== 'notFound'); + if (data.unstable_notFound) { + throw Object.defineProperty(new Error(`unstable_notFound has been renamed to notFound, please update the field to continue. Page: ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E516", + enumerable: false, + configurable: true + }); + } + if (data.unstable_redirect) { + throw Object.defineProperty(new Error(`unstable_redirect has been renamed to redirect, please update the field to continue. Page: ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E284", + enumerable: false, + configurable: true + }); + } + if (invalidKeys.length) { + throw Object.defineProperty(new Error(invalidKeysMsg('getServerSideProps', invalidKeys)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + if ('notFound' in data && data.notFound) { + if (pathname === '/404') { + throw Object.defineProperty(new Error(`The /404 page can not return notFound in "getStaticProps", please remove it to continue!`), "__NEXT_ERROR_CODE", { + value: "E121", + enumerable: false, + configurable: true + }); + } + metadata.isNotFound = true; + return new _renderresult.default(null, { + metadata, + contentType: null + }); + } + if ('redirect' in data && typeof data.redirect === 'object') { + checkRedirectValues(data.redirect, req, 'getServerSideProps'); + data.props = { + __N_REDIRECT: data.redirect.destination, + __N_REDIRECT_STATUS: (0, _redirectstatus.getRedirectStatus)(data.redirect) + }; + if (typeof data.redirect.basePath !== 'undefined') { + ; + data.props.__N_REDIRECT_BASE_PATH = data.redirect.basePath; + } + metadata.isRedirect = true; + } + if (deferredContent) { + ; + data.props = await data.props; + } + if ((process.env.__NEXT_DEV_SERVER || isBuildTimeSSG) && !(0, _isserializableprops.isSerializableProps)(pathname, 'getServerSideProps', data.props)) { + // this fn should throw an error instead of ever returning `false` + throw Object.defineProperty(new Error('invariant: getServerSideProps did not return valid props. Please report this.'), "__NEXT_ERROR_CODE", { + value: "E31", + enumerable: false, + configurable: true + }); + } + props.pageProps = Object.assign({}, props.pageProps, data.props); + metadata.pageData = props; + } + if (!isSSG && // we only show this warning for legacy pages + !getServerSideProps && process.env.NODE_ENV !== 'production' && Object.keys((props == null ? void 0 : props.pageProps) || {}).includes('url')) { + console.warn(`The prop \`url\` is a reserved prop in Next.js for legacy reasons and will be overridden on page ${pathname}\n` + `See more info here: https://nextjs.org/docs/messages/reserved-page-prop`); + } + // Avoid rendering page un-necessarily for getServerSideProps data request + // and getServerSideProps/getStaticProps redirects + if (isNextDataRequest && !isSSG || metadata.isRedirect) { + return new _renderresult.default(JSON.stringify(props), { + metadata, + contentType: _constants.JSON_CONTENT_TYPE_HEADER + }); + } + // We don't call getStaticProps or getServerSideProps while generating + // the fallback so make sure to set pageProps to an empty object + if (isFallback) { + props.pageProps = {}; + } + // the response might be finished on the getInitialProps call + if ((0, _utils.isResSent)(res) && !isSSG) return _renderresult.default.EMPTY; + // we preload the buildManifest for auto-export dynamic pages + // to speed up hydrating query values + let filteredBuildManifest = buildManifest; + if (isAutoExport && pageIsDynamic) { + const page = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(pathname)); + // This code would be much cleaner using `immer` and directly pushing into + // the result from `getPageFiles`, we could maybe consider that in the + // future. + if (page in filteredBuildManifest.pages) { + filteredBuildManifest = { + ...filteredBuildManifest, + pages: { + ...filteredBuildManifest.pages, + [page]: [ + ...filteredBuildManifest.pages[page], + ...filteredBuildManifest.lowPriorityFiles.filter((f)=>f.includes('_buildManifest')) + ] + }, + lowPriorityFiles: filteredBuildManifest.lowPriorityFiles.filter((f)=>!f.includes('_buildManifest')) + }; + } + } + const Body = ({ children })=>{ + return /*#__PURE__*/ (0, _jsxruntime.jsx)("div", { + id: "__next", + children: children + }); + }; + const renderDocument = async ()=>{ + // For `Document`, there are two cases that we don't support: + // 1. Using `Document.getInitialProps` in the Edge runtime. + // 2. Using the class component `Document` with concurrent features. + const BuiltinFunctionalDocument = Document[_constants1.NEXT_BUILTIN_DOCUMENT]; + if (process.env.NEXT_RUNTIME === 'edge' && Document.getInitialProps) { + // In the Edge runtime, `Document.getInitialProps` isn't supported. + // We throw an error here if it's customized. + if (BuiltinFunctionalDocument) { + Document = BuiltinFunctionalDocument; + } else { + throw Object.defineProperty(new Error('`getInitialProps` in Document component is not supported with the Edge Runtime.'), "__NEXT_ERROR_CODE", { + value: "E386", + enumerable: false, + configurable: true + }); + } + } + async function loadDocumentInitialProps(renderShell) { + const renderPage = async (options = {})=>{ + if (ctx.err && ErrorDebug) { + // Always start rendering the shell even if there's an error. + if (renderShell) { + renderShell(App, Component); + } + const html = await renderToString(/*#__PURE__*/ (0, _jsxruntime.jsx)(Body, { + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorDebug, {}) + })); + return { + html, + head + }; + } + if (process.env.__NEXT_DEV_SERVER && (props.router || props.Component)) { + throw Object.defineProperty(new Error(`'router' and 'Component' can not be returned in getInitialProps from _app.js https://nextjs.org/docs/messages/cant-override-next-props`), "__NEXT_ERROR_CODE", { + value: "E230", + enumerable: false, + configurable: true + }); + } + const { App: EnhancedApp, Component: EnhancedComponent } = enhanceComponents(options, App, Component); + const stream = await renderShell(EnhancedApp, EnhancedComponent); + await stream.allReady; + const html = await (0, _nodewebstreamshelper.streamToString)(stream); + return { + html, + head + }; + }; + const documentCtx = { + ...ctx, + renderPage + }; + const docProps = await (0, _utils.loadGetInitialProps)(Document, documentCtx); + // the response might be finished on the getInitialProps call + if ((0, _utils.isResSent)(res) && !isSSG) return null; + if (!docProps || typeof docProps.html !== 'string') { + const message = `"${(0, _utils.getDisplayName)(Document)}.getInitialProps()" should resolve to an object with a "html" prop set with a valid html string`; + throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1039", + enumerable: false, + configurable: true + }); + } + return { + docProps, + documentCtx + }; + } + const renderContent = (_App, _Component)=>{ + const EnhancedApp = _App || App; + const EnhancedComponent = _Component || Component; + return ctx.err && ErrorDebug ? /*#__PURE__*/ (0, _jsxruntime.jsx)(Body, { + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(ErrorDebug, {}) + }) : /*#__PURE__*/ (0, _jsxruntime.jsx)(Body, { + children: /*#__PURE__*/ (0, _jsxruntime.jsx)(AppContainerWithIsomorphicFiberStructure, { + children: renderPageTree(EnhancedApp, EnhancedComponent, { + ...props, + router + }) + }) + }); + }; + // Always using react concurrent rendering mode with required react version 18.x + const renderShell = async (EnhancedApp, EnhancedComponent)=>{ + const content = renderContent(EnhancedApp, EnhancedComponent); + return await (0, _nodewebstreamshelper.renderToInitialFizzStream)({ + ReactDOMServer: _ReactDOMServerPages.default, + element: content + }); + }; + const hasDocumentGetInitialProps = process.env.NEXT_RUNTIME !== 'edge' && !!Document.getInitialProps; + // If it has getInitialProps, we will render the shell in `renderPage`. + // Otherwise we do it right now. + let documentInitialPropsRes; + const [rawStyledJsxInsertedHTML, content] = await Promise.all([ + renderToString(styledJsxInsertedHTML()), + (async ()=>{ + if (hasDocumentGetInitialProps) { + documentInitialPropsRes = await loadDocumentInitialProps(renderShell); + if (documentInitialPropsRes === null) return null; + const { docProps } = documentInitialPropsRes; + return docProps.html; + } else { + documentInitialPropsRes = {}; + const stream = await renderShell(App, Component); + await stream.allReady; + return (0, _nodewebstreamshelper.streamToString)(stream); + } + })() + ]); + if (content === null) { + return null; + } + const contentHTML = rawStyledJsxInsertedHTML + content; + // @ts-ignore: documentInitialPropsRes is set + const { docProps } = documentInitialPropsRes || {}; + const documentElement = (htmlProps)=>{ + if (process.env.NEXT_RUNTIME === 'edge') { + return Document(); + } else { + return /*#__PURE__*/ (0, _jsxruntime.jsx)(Document, { + ...htmlProps, + ...docProps + }); + } + }; + let styles; + if (hasDocumentGetInitialProps) { + styles = docProps.styles; + head = docProps.head; + } else { + styles = jsxStyleRegistry.styles(); + jsxStyleRegistry.flush(); + } + return { + contentHTML, + documentElement, + head, + headTags: [], + styles + }; + }; + (0, _tracer.getTracer)().setRootSpanAttribute('next.route', renderOpts.page); + const documentResult = await (0, _tracer.getTracer)().trace(_constants2.RenderSpan.renderDocument, { + spanName: `render route (pages) ${renderOpts.page}`, + attributes: { + 'next.route': renderOpts.page + } + }, async ()=>renderDocument()); + if (!documentResult) { + return new _renderresult.default(null, { + metadata, + contentType: _constants.HTML_CONTENT_TYPE_HEADER + }); + } + const dynamicImportsIds = new Set(); + const dynamicImports = new Set(); + for (const mod of reactLoadableModules){ + const manifestItem = reactLoadableManifest[mod]; + if (manifestItem) { + dynamicImportsIds.add(manifestItem.id); + manifestItem.files.forEach((item)=>{ + dynamicImports.add(item); + }); + } + } + const docComponentsRendered = {}; + const { assetPrefix, defaultLocale, disableOptimizedLoading, domainLocales, locale, locales } = renderOpts; + const htmlProps = { + __NEXT_DATA__: { + props, + page: pathname, + query, + buildId: sharedContext.buildId, + assetPrefix: assetPrefix === '' ? undefined : assetPrefix, + nextExport: nextExport === true ? true : undefined, + autoExport: isAutoExport === true ? true : undefined, + isFallback, + isExperimentalCompile, + dynamicIds: dynamicImportsIds.size === 0 ? undefined : Array.from(dynamicImportsIds), + err: renderOpts.err ? serializeError(!!process.env.__NEXT_DEV_SERVER, renderOpts.err) : undefined, + gsp: !!getStaticProps ? true : undefined, + gssp: !!getServerSideProps ? true : undefined, + customServer: sharedContext.customServer, + gip: hasPageGetInitialProps ? true : undefined, + appGip: !defaultAppGetInitialProps ? true : undefined, + locale, + locales, + defaultLocale, + domainLocales, + isPreview: isPreview === true ? true : undefined, + notFoundSrcPage: notFoundSrcPage && process.env.__NEXT_DEV_SERVER ? notFoundSrcPage : undefined + }, + nonce, + buildManifest: filteredBuildManifest, + docComponentsRendered, + dangerousAsPath: router.asPath, + isDevelopment: !!process.env.__NEXT_DEV_SERVER, + deploymentId: sharedContext.deploymentId, + dynamicImports: Array.from(dynamicImports), + dynamicCssManifest: new Set(renderOpts.dynamicCssManifest || []), + assetPrefix, + // Only enabled in production as development mode has features relying on HMR (style injection for example) + unstable_runtimeJS: process.env.NODE_ENV === 'production' ? pageConfig.unstable_runtimeJS : undefined, + unstable_JsPreload: pageConfig.unstable_JsPreload, + assetQueryString: assetQueryString || '', + mutableAssetQueryString: mutableAssetQueryString || '', + scriptLoader, + locale, + disableOptimizedLoading, + head: documentResult.head, + headTags: documentResult.headTags, + styles: documentResult.styles, + crossOrigin: renderOpts.crossOrigin, + optimizeCss: renderOpts.optimizeCss, + nextConfigOutput: renderOpts.nextConfigOutput, + nextScriptWorkers: renderOpts.nextScriptWorkers, + runtime: globalRuntime, + largePageDataBytes: renderOpts.largePageDataBytes, + nextFontManifest: renderOpts.nextFontManifest, + experimentalClientTraceMetadata: renderOpts.experimental.clientTraceMetadata + }; + const document = /*#__PURE__*/ (0, _jsxruntime.jsx)(_htmlcontextsharedruntime.HtmlContext.Provider, { + value: htmlProps, + children: documentResult.documentElement(htmlProps) + }); + const documentHTML = await (0, _tracer.getTracer)().trace(_constants2.RenderSpan.renderToString, async ()=>renderToString(document)); + if (process.env.NODE_ENV !== 'production') { + const nonRenderedComponents = []; + const expectedDocComponents = [ + 'Main', + 'Head', + 'NextScript', + 'Html' + ]; + for (const comp of expectedDocComponents){ + if (!docComponentsRendered[comp]) { + nonRenderedComponents.push(comp); + } + } + if (nonRenderedComponents.length) { + const missingComponentList = nonRenderedComponents.map((e)=>`<${e} />`).join(', '); + const plural = nonRenderedComponents.length !== 1 ? 's' : ''; + console.warn(`Your custom Document (pages/_document) did not render all the required subcomponent${plural}.\n` + `Missing component${plural}: ${missingComponentList}\n` + 'Read how to fix here: https://nextjs.org/docs/messages/missing-document-component'); + } + } + const [renderTargetPrefix, renderTargetSuffix] = documentHTML.split('', 2); + let prefix = ''; + if (!documentHTML.startsWith(DOCTYPE)) { + prefix += DOCTYPE; + } + prefix += renderTargetPrefix; + const content = prefix + documentResult.contentHTML + renderTargetSuffix; + const optimizedHtml = await postProcessHTML(content, renderOpts); + return new _renderresult.default(optimizedHtml, { + metadata, + contentType: _constants.HTML_CONTENT_TYPE_HEADER + }); +} +const renderToHTML = (req, res, pathname, query, renderOpts, sharedContext, renderContext)=>{ + return renderToHTMLImpl(req, res, pathname, query, renderOpts, renderOpts, sharedContext, renderContext); +}; + +//# sourceMappingURL=render.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/request-meta.js b/cli/app/node_modules/next/dist/server/request-meta.js new file mode 100644 index 00000000000..a06ec6b899b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/request-meta.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NEXT_REQUEST_META: null, + addRequestMeta: null, + getRequestMeta: null, + removeRequestMeta: null, + setRequestMeta: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NEXT_REQUEST_META: function() { + return NEXT_REQUEST_META; + }, + addRequestMeta: function() { + return addRequestMeta; + }, + getRequestMeta: function() { + return getRequestMeta; + }, + removeRequestMeta: function() { + return removeRequestMeta; + }, + setRequestMeta: function() { + return setRequestMeta; + } +}); +const NEXT_REQUEST_META = Symbol.for('NextInternalRequestMeta'); +function getRequestMeta(req, key) { + const meta = req[NEXT_REQUEST_META] || {}; + return typeof key === 'string' ? meta[key] : meta; +} +function setRequestMeta(req, meta) { + req[NEXT_REQUEST_META] = meta; + return meta; +} +function addRequestMeta(request, key, value) { + const meta = getRequestMeta(request); + meta[key] = value; + return setRequestMeta(request, meta); +} +function removeRequestMeta(request, key) { + const meta = getRequestMeta(request); + delete meta[key]; + return setRequestMeta(request, meta); +} + +//# sourceMappingURL=request-meta.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/request/fallback-params.js b/cli/app/node_modules/next/dist/server/request/fallback-params.js new file mode 100644 index 00000000000..31cbfa066a2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/request/fallback-params.js @@ -0,0 +1,69 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createOpaqueFallbackRouteParams: null, + getFallbackRouteParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createOpaqueFallbackRouteParams: function() { + return createOpaqueFallbackRouteParams; + }, + getFallbackRouteParams: function() { + return getFallbackRouteParams; + } +}); +const _utils = require("../../build/static-paths/utils"); +const _getshortdynamicparamtype = require("../app-render/get-short-dynamic-param-type"); +const _app = require("../../shared/lib/router/routes/app"); +const _extractpathnamerouteparamsegmentsfromloadertree = require("../../build/static-paths/app/extract-pathname-route-param-segments-from-loader-tree"); +function createOpaqueFallbackRouteParams(fallbackRouteParams) { + // If there are no fallback route params, we can return early. + if (fallbackRouteParams.length === 0) return null; + // As we're creating unique keys for each of the dynamic route params, we only + // need to generate a unique ID once per request because each of the keys will + // be also be unique. + const uniqueID = Math.random().toString(16).slice(2); + const keys = new Map(); + // Generate a unique key for the fallback route param, if this key is found + // in the static output, it represents a bug in cache components. + for (const { paramName, paramType } of fallbackRouteParams){ + keys.set(paramName, [ + `%%drp:${paramName}:${uniqueID}%%`, + _getshortdynamicparamtype.dynamicParamTypes[paramType] + ]); + } + return keys; +} +function getFallbackRouteParams(page, routeModule) { + const route = (0, _app.parseAppRoute)(page, true); + // Extract the pathname-contributing segments from the loader tree. This + // mirrors the logic in buildAppStaticPaths where we determine which segments + // actually contribute to the pathname. + const { pathnameRouteParamSegments, params } = (0, _extractpathnamerouteparamsegmentsfromloadertree.extractPathnameRouteParamSegmentsFromLoaderTree)(routeModule.userland.loaderTree, route); + // Create fallback route params for the pathname segments. + const fallbackRouteParams = pathnameRouteParamSegments.map(({ paramName, paramType })=>({ + paramName, + paramType + })); + // Resolve route params from the loader tree. This mutates the + // fallbackRouteParams array to add any route params that are + // unknown at request time. + // + // The page parameter contains placeholders like [slug], which helps + // resolveRouteParamsFromTree determine which params are unknown. + (0, _utils.resolveRouteParamsFromTree)(routeModule.userland.loaderTree, params, route, fallbackRouteParams // Will be mutated to add route params + ); + // Convert the fallback route params to an opaque format that can be safely + // used in the postponed state without exposing implementation details. + return createOpaqueFallbackRouteParams(fallbackRouteParams); +} + +//# sourceMappingURL=fallback-params.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/require-hook.js b/cli/app/node_modules/next/dist/server/require-hook.js new file mode 100644 index 00000000000..5e0fee25a3d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/require-hook.js @@ -0,0 +1,82 @@ +// Synchronously inject a require hook for webpack and webpack/. It's required to use the internal ncc webpack version. +// This is needed for userland plugins to attach to the same webpack instance as Next.js'. +// Individually compiled modules are as defined for the compilation in bundles/webpack/packages/*. +// This module will only be loaded once per process. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + addHookAliases: null, + defaultOverrides: null, + hookPropertyMap: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + addHookAliases: function() { + return addHookAliases; + }, + defaultOverrides: function() { + return defaultOverrides; + }, + hookPropertyMap: function() { + return hookPropertyMap; + } +}); +const path = require('path'); +const mod = require('module'); +const originalRequire = mod.prototype.require; +const resolveFilename = // @ts-expect-error +mod._resolveFilename; +let resolve = process.env.NEXT_MINIMAL ? __non_webpack_require__.resolve : require.resolve; +const hookPropertyMap = new Map(); +const defaultOverrides = {}; +try { + Object.assign(defaultOverrides, { + 'styled-jsx': path.dirname(resolve('styled-jsx/package.json')), + 'styled-jsx/style': resolve('styled-jsx/style'), + 'styled-jsx/style.js': resolve('styled-jsx/style') + }); +} catch (_) {} +const toResolveMap = (map)=>{ + const resolveMap = []; + for (const [key, value] of Object.entries(map)){ + try { + resolveMap.push([ + key, + resolve(value) + ]); + } catch {} + } + return resolveMap; +}; +function addHookAliases(aliases = []) { + for (const [key, value] of aliases){ + hookPropertyMap.set(key, value); + } +} +addHookAliases(toResolveMap(defaultOverrides)); +// @ts-expect-error +mod._resolveFilename = (function(originalResolveFilename, requestMap, request, parent, isMain, options) { + const hookResolved = requestMap.get(request); + if (hookResolved) request = hookResolved; + return originalResolveFilename.call(mod, request, parent, isMain, options); +// We use `bind` here to avoid referencing outside variables to create potential memory leaks. +}).bind(null, resolveFilename, hookPropertyMap); +// @ts-expect-error +// This is a hack to make sure that if a user requires a Next.js module that wasn't bundled +// that needs to point to the rendering runtime version, it will point to the correct one. +// This can happen on `pages` when a user requires a dependency that uses next/image for example. +mod.prototype.require = function(request) { + if (request.endsWith('.shared-runtime')) { + return originalRequire.call(this, `next/dist/server/route-modules/pages/vendored/contexts/${path.basename(request, '.shared-runtime')}`); + } + return originalRequire.call(this, request); +}; + +//# sourceMappingURL=require-hook.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/require.js b/cli/app/node_modules/next/dist/server/require.js new file mode 100644 index 00000000000..6f4904abc77 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/require.js @@ -0,0 +1,109 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getMaybePagePath: null, + getPagePath: null, + requirePage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getMaybePagePath: function() { + return getMaybePagePath; + }, + getPagePath: function() { + return getPagePath; + }, + requirePage: function() { + return requirePage; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _constants = require("../shared/lib/constants"); +const _normalizelocalepath = require("../shared/lib/i18n/normalize-locale-path"); +const _normalizepagepath = require("../shared/lib/page-path/normalize-page-path"); +const _denormalizepagepath = require("../shared/lib/page-path/denormalize-page-path"); +const _utils = require("../shared/lib/utils"); +const _lrucache = require("../server/lib/lru-cache"); +const _loadmanifestexternal = require("./load-manifest.external"); +const _fs = require("fs"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const isDev = process.env.NODE_ENV === 'development'; +const pagePathCache = !isDev ? new _lrucache.LRUCache(1000) : null; +function getMaybePagePath(page, distDir, locales, isAppPath) { + const cacheKey = `${page}:${distDir}:${locales}:${isAppPath}`; + let pagePath = pagePathCache == null ? void 0 : pagePathCache.get(cacheKey); + // If we have a cached path, we can return it directly. + if (pagePath) return pagePath; + const serverBuildPath = _path.default.join(/* turbopackIgnore: true */ distDir, _constants.SERVER_DIRECTORY); + let appPathsManifest; + if (isAppPath) { + appPathsManifest = (0, _loadmanifestexternal.loadManifest)(_path.default.join(/* turbopackIgnore: true */ serverBuildPath, _constants.APP_PATHS_MANIFEST), !isDev); + } + const pagesManifest = (0, _loadmanifestexternal.loadManifest)(_path.default.join(/* turbopackIgnore: true */ serverBuildPath, _constants.PAGES_MANIFEST), !isDev); + try { + page = (0, _denormalizepagepath.denormalizePagePath)((0, _normalizepagepath.normalizePagePath)(page)); + } catch (err) { + console.error(err); + throw new _utils.PageNotFoundError(page); + } + const checkManifest = (manifest)=>{ + let curPath = manifest[page]; + if (!manifest[curPath] && locales) { + const manifestNoLocales = {}; + for (const key of Object.keys(manifest)){ + manifestNoLocales[(0, _normalizelocalepath.normalizeLocalePath)(key, locales).pathname] = pagesManifest[key]; + } + curPath = manifestNoLocales[page]; + } + return curPath; + }; + if (appPathsManifest) { + pagePath = checkManifest(appPathsManifest); + } + if (!pagePath) { + pagePath = checkManifest(pagesManifest); + } + if (!pagePath) { + pagePathCache == null ? void 0 : pagePathCache.set(cacheKey, null); + return null; + } + // Handle absolute paths (e.g., built-in components) + if (_path.default.isAbsolute(pagePath)) { + // Use the absolute path as-is + pagePathCache == null ? void 0 : pagePathCache.set(cacheKey, pagePath); + return pagePath; + } + pagePath = _path.default.join(/* turbopackIgnore: true */ serverBuildPath, pagePath); + pagePathCache == null ? void 0 : pagePathCache.set(cacheKey, pagePath); + return pagePath; +} +function getPagePath(page, distDir, locales, isAppPath) { + const pagePath = getMaybePagePath(page, distDir, locales, isAppPath); + if (!pagePath) { + throw new _utils.PageNotFoundError(page); + } + return pagePath; +} +async function requirePage(page, distDir, isAppPath) { + const pagePath = getPagePath(page, distDir, undefined, isAppPath); + if (pagePath.endsWith('.html')) { + return _fs.promises.readFile(/* turbopackIgnore: true */ pagePath, 'utf8').catch((err)=>{ + throw new _utils.MissingStaticPage(page, err.message); + }); + } + const mod = process.env.NEXT_MINIMAL ? __non_webpack_require__(pagePath) : require(/* turbopackIgnore: true */ pagePath); + return mod; +} + +//# sourceMappingURL=require.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/response-cache/index.js b/cli/app/node_modules/next/dist/server/response-cache/index.js new file mode 100644 index 00000000000..452408c20e4 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/response-cache/index.js @@ -0,0 +1,311 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return ResponseCache; + } +}); +0 && __export(require("./types")); +const _batcher = require("../../lib/batcher"); +const _lrucache = require("../lib/lru-cache"); +const _log = require("../../build/output/log"); +const _scheduler = require("../../lib/scheduler"); +const _utils = require("./utils"); +_export_star(require("./types"), exports); +function _export_star(from, to) { + Object.keys(from).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) { + Object.defineProperty(to, k, { + enumerable: true, + get: function() { + return from[k]; + } + }); + } + }); + return from; +} +/** + * Parses an environment variable as a positive integer, returning the fallback + * if the value is missing, not a number, or not positive. + */ function parsePositiveInt(envValue, fallback) { + if (!envValue) return fallback; + const parsed = parseInt(envValue, 10); + return Number.isFinite(parsed) && parsed > 0 ? parsed : fallback; +} +/** + * Default TTL (in milliseconds) for minimal mode response cache entries. + * Used for cache hit validation as a fallback for providers that don't + * send the x-invocation-id header yet. + * + * 10 seconds chosen because: + * - Long enough to dedupe rapid successive requests (e.g., page + data) + * - Short enough to not serve stale data across unrelated requests + * + * Can be configured via `NEXT_PRIVATE_RESPONSE_CACHE_TTL` environment variable. + */ const DEFAULT_TTL_MS = parsePositiveInt(process.env.NEXT_PRIVATE_RESPONSE_CACHE_TTL, 10000); +/** + * Default maximum number of entries in the response cache. + * Can be configured via `NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE` environment variable. + */ const DEFAULT_MAX_SIZE = parsePositiveInt(process.env.NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE, 150); +/** + * Separator used in compound cache keys to join pathname and invocationID. + * Using null byte (\0) since it cannot appear in valid URL paths or UUIDs. + */ const KEY_SEPARATOR = '\0'; +/** + * Sentinel value used for TTL-based cache entries (when invocationID is undefined). + * Chosen to be a clearly reserved marker for internal cache keys. + */ const TTL_SENTINEL = '__ttl_sentinel__'; +/** + * Creates a compound cache key from pathname and invocationID. + */ function createCacheKey(pathname, invocationID) { + return `${pathname}${KEY_SEPARATOR}${invocationID ?? TTL_SENTINEL}`; +} +/** + * Extracts the invocationID from a compound cache key. + * Returns undefined if the key used TTL_SENTINEL. + */ function extractInvocationID(compoundKey) { + const separatorIndex = compoundKey.lastIndexOf(KEY_SEPARATOR); + if (separatorIndex === -1) return undefined; + const invocationID = compoundKey.slice(separatorIndex + 1); + return invocationID === TTL_SENTINEL ? undefined : invocationID; +} +class ResponseCache { + constructor(minimal_mode, maxSize = DEFAULT_MAX_SIZE, ttl = DEFAULT_TTL_MS){ + this.getBatcher = _batcher.Batcher.create({ + // Ensure on-demand revalidate doesn't block normal requests, it should be + // safe to run an on-demand revalidate for the same key as a normal request. + cacheKeyFn: ({ key, isOnDemandRevalidate })=>`${key}-${isOnDemandRevalidate ? '1' : '0'}`, + // We wait to do any async work until after we've added our promise to + // `pendingResponses` to ensure that any any other calls will reuse the + // same promise until we've fully finished our work. + schedulerFn: _scheduler.scheduleOnNextTick + }); + this.revalidateBatcher = _batcher.Batcher.create({ + // We wait to do any async work until after we've added our promise to + // `pendingResponses` to ensure that any any other calls will reuse the + // same promise until we've fully finished our work. + schedulerFn: _scheduler.scheduleOnNextTick + }); + /** + * Set of invocation IDs that have had cache entries evicted. + * Used to detect when the cache size may be too small. + * Bounded to prevent memory growth. + */ this.evictedInvocationIDs = new Set(); + this.minimal_mode = minimal_mode; + this.maxSize = maxSize; + this.ttl = ttl; + // Create the LRU cache with eviction tracking + this.cache = new _lrucache.LRUCache(maxSize, undefined, (compoundKey)=>{ + const invocationID = extractInvocationID(compoundKey); + if (invocationID) { + // Bound to 100 entries to prevent unbounded memory growth. + // FIFO eviction is acceptable here because: + // 1. Invocations are short-lived (single request lifecycle), so older + // invocations are unlikely to still be active after 100 newer ones + // 2. This warning mechanism is best-effort for developer guidance— + // missing occasional eviction warnings doesn't affect correctness + // 3. If a long-running invocation is somehow evicted and then has + // another cache entry evicted, it will simply be re-added + if (this.evictedInvocationIDs.size >= 100) { + const first = this.evictedInvocationIDs.values().next().value; + if (first) this.evictedInvocationIDs.delete(first); + } + this.evictedInvocationIDs.add(invocationID); + } + }); + } + /** + * Gets the response cache entry for the given key. + * + * @param key - The key to get the response cache entry for. + * @param responseGenerator - The response generator to use to generate the response cache entry. + * @param context - The context for the get request. + * @returns The response cache entry. + */ async get(key, responseGenerator, context) { + // If there is no key for the cache, we can't possibly look this up in the + // cache so just return the result of the response generator. + if (!key) { + return responseGenerator({ + hasResolved: false, + previousCacheEntry: null + }); + } + // Check minimal mode cache before doing any other work. + if (this.minimal_mode) { + const cacheKey = createCacheKey(key, context.invocationID); + const cachedItem = this.cache.get(cacheKey); + if (cachedItem) { + // With invocationID: exact match found - always a hit + // With TTL mode: must check expiration + if (context.invocationID !== undefined) { + return (0, _utils.toResponseCacheEntry)(cachedItem.entry); + } + // TTL mode: check expiration + const now = Date.now(); + if (cachedItem.expiresAt > now) { + return (0, _utils.toResponseCacheEntry)(cachedItem.entry); + } + // TTL expired - clean up + this.cache.remove(cacheKey); + } + // Warn if this invocation had entries evicted - indicates cache may be too small. + if (context.invocationID && this.evictedInvocationIDs.has(context.invocationID)) { + (0, _log.warnOnce)(`Response cache entry was evicted for invocation ${context.invocationID}. ` + `Consider increasing NEXT_PRIVATE_RESPONSE_CACHE_MAX_SIZE (current: ${this.maxSize}).`); + } + } + const { incrementalCache, isOnDemandRevalidate = false, isFallback = false, isRoutePPREnabled = false, isPrefetch = false, waitUntil, routeKind, invocationID } = context; + const response = await this.getBatcher.batch({ + key, + isOnDemandRevalidate + }, ({ resolve })=>{ + const promise = this.handleGet(key, responseGenerator, { + incrementalCache, + isOnDemandRevalidate, + isFallback, + isRoutePPREnabled, + isPrefetch, + routeKind, + invocationID + }, resolve); + // We need to ensure background revalidates are passed to waitUntil. + if (waitUntil) waitUntil(promise); + return promise; + }); + return (0, _utils.toResponseCacheEntry)(response); + } + /** + * Handles the get request for the response cache. + * + * @param key - The key to get the response cache entry for. + * @param responseGenerator - The response generator to use to generate the response cache entry. + * @param context - The context for the get request. + * @param resolve - The resolve function to use to resolve the response cache entry. + * @returns The response cache entry. + */ async handleGet(key, responseGenerator, context, resolve) { + let previousIncrementalCacheEntry = null; + let resolved = false; + try { + // Get the previous cache entry if not in minimal mode + previousIncrementalCacheEntry = !this.minimal_mode ? await context.incrementalCache.get(key, { + kind: (0, _utils.routeKindToIncrementalCacheKind)(context.routeKind), + isRoutePPREnabled: context.isRoutePPREnabled, + isFallback: context.isFallback + }) : null; + if (previousIncrementalCacheEntry && !context.isOnDemandRevalidate) { + resolve(previousIncrementalCacheEntry); + resolved = true; + if (!previousIncrementalCacheEntry.isStale || context.isPrefetch) { + // The cached value is still valid, so we don't need to update it yet. + return previousIncrementalCacheEntry; + } + } + // Revalidate the cache entry + const incrementalResponseCacheEntry = await this.revalidate(key, context.incrementalCache, context.isRoutePPREnabled, context.isFallback, responseGenerator, previousIncrementalCacheEntry, previousIncrementalCacheEntry !== null && !context.isOnDemandRevalidate, undefined, context.invocationID); + // Handle null response + if (!incrementalResponseCacheEntry) { + // Remove the cache item if it was set so we don't use it again. + if (this.minimal_mode) { + const cacheKey = createCacheKey(key, context.invocationID); + this.cache.remove(cacheKey); + } + return null; + } + // Resolve for on-demand revalidation or if not already resolved + if (context.isOnDemandRevalidate && !resolved) { + return incrementalResponseCacheEntry; + } + return incrementalResponseCacheEntry; + } catch (err) { + // If we've already resolved the cache entry, we can't reject as we + // already resolved the cache entry so log the error here. + if (resolved) { + console.error(err); + return null; + } + throw err; + } + } + /** + * Revalidates the cache entry for the given key. + * + * @param key - The key to revalidate the cache entry for. + * @param incrementalCache - The incremental cache to use to revalidate the cache entry. + * @param isRoutePPREnabled - Whether the route is PPR enabled. + * @param isFallback - Whether the route is a fallback. + * @param responseGenerator - The response generator to use to generate the response cache entry. + * @param previousIncrementalCacheEntry - The previous cache entry to use to revalidate the cache entry. + * @param hasResolved - Whether the response has been resolved. + * @param waitUntil - Optional function to register background work. + * @param invocationID - The invocation ID for cache key scoping. + * @returns The revalidated cache entry. + */ async revalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved, waitUntil, invocationID) { + return this.revalidateBatcher.batch(key, ()=>{ + const promise = this.handleRevalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved, invocationID); + // We need to ensure background revalidates are passed to waitUntil. + if (waitUntil) waitUntil(promise); + return promise; + }); + } + async handleRevalidate(key, incrementalCache, isRoutePPREnabled, isFallback, responseGenerator, previousIncrementalCacheEntry, hasResolved, invocationID) { + try { + // Generate the response cache entry using the response generator. + const responseCacheEntry = await responseGenerator({ + hasResolved, + previousCacheEntry: previousIncrementalCacheEntry, + isRevalidating: true + }); + if (!responseCacheEntry) { + return null; + } + // Convert the response cache entry to an incremental response cache entry. + const incrementalResponseCacheEntry = await (0, _utils.fromResponseCacheEntry)({ + ...responseCacheEntry, + isMiss: !previousIncrementalCacheEntry + }); + // We want to persist the result only if it has a cache control value + // defined. + if (incrementalResponseCacheEntry.cacheControl) { + if (this.minimal_mode) { + // Set TTL expiration for cache hit validation. Entries are validated + // by invocationID when available, with TTL as a fallback for providers + // that don't send x-invocation-id. Memory is managed by LRU eviction. + const cacheKey = createCacheKey(key, invocationID); + this.cache.set(cacheKey, { + entry: incrementalResponseCacheEntry, + expiresAt: Date.now() + this.ttl + }); + } else { + await incrementalCache.set(key, incrementalResponseCacheEntry.value, { + cacheControl: incrementalResponseCacheEntry.cacheControl, + isRoutePPREnabled, + isFallback + }); + } + } + return incrementalResponseCacheEntry; + } catch (err) { + // When a path is erroring we automatically re-set the existing cache + // with new revalidate and expire times to prevent non-stop retrying. + if (previousIncrementalCacheEntry == null ? void 0 : previousIncrementalCacheEntry.cacheControl) { + const revalidate = Math.min(Math.max(previousIncrementalCacheEntry.cacheControl.revalidate || 3, 3), 30); + const expire = previousIncrementalCacheEntry.cacheControl.expire === undefined ? undefined : Math.max(revalidate + 3, previousIncrementalCacheEntry.cacheControl.expire); + await incrementalCache.set(key, previousIncrementalCacheEntry.value, { + cacheControl: { + revalidate: revalidate, + expire: expire + }, + isRoutePPREnabled, + isFallback + }); + } + // We haven't resolved yet, so let's throw to indicate an error. + throw err; + } + } +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/response-cache/types.js b/cli/app/node_modules/next/dist/server/response-cache/types.js new file mode 100644 index 00000000000..774f550323d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/response-cache/types.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + CachedRouteKind: null, + IncrementalCacheKind: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + CachedRouteKind: function() { + return CachedRouteKind; + }, + IncrementalCacheKind: function() { + return IncrementalCacheKind; + } +}); +var CachedRouteKind = /*#__PURE__*/ function(CachedRouteKind) { + CachedRouteKind["APP_PAGE"] = "APP_PAGE"; + CachedRouteKind["APP_ROUTE"] = "APP_ROUTE"; + CachedRouteKind["PAGES"] = "PAGES"; + CachedRouteKind["FETCH"] = "FETCH"; + CachedRouteKind["REDIRECT"] = "REDIRECT"; + CachedRouteKind["IMAGE"] = "IMAGE"; + return CachedRouteKind; +}({}); +var IncrementalCacheKind = /*#__PURE__*/ function(IncrementalCacheKind) { + IncrementalCacheKind["APP_PAGE"] = "APP_PAGE"; + IncrementalCacheKind["APP_ROUTE"] = "APP_ROUTE"; + IncrementalCacheKind["PAGES"] = "PAGES"; + IncrementalCacheKind["FETCH"] = "FETCH"; + IncrementalCacheKind["IMAGE"] = "IMAGE"; + return IncrementalCacheKind; +}({}); + +//# sourceMappingURL=types.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/response-cache/utils.js b/cli/app/node_modules/next/dist/server/response-cache/utils.js new file mode 100644 index 00000000000..eb93e3f7392 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/response-cache/utils.js @@ -0,0 +1,104 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + fromResponseCacheEntry: null, + routeKindToIncrementalCacheKind: null, + toResponseCacheEntry: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + fromResponseCacheEntry: function() { + return fromResponseCacheEntry; + }, + routeKindToIncrementalCacheKind: function() { + return routeKindToIncrementalCacheKind; + }, + toResponseCacheEntry: function() { + return toResponseCacheEntry; + } +}); +const _types = require("./types"); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("../render-result")); +const _routekind = require("../route-kind"); +const _constants = require("../../lib/constants"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +async function fromResponseCacheEntry(cacheEntry) { + var _cacheEntry_value, _cacheEntry_value1; + return { + ...cacheEntry, + value: ((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) === _types.CachedRouteKind.PAGES ? { + kind: _types.CachedRouteKind.PAGES, + html: await cacheEntry.value.html.toUnchunkedString(true), + pageData: cacheEntry.value.pageData, + headers: cacheEntry.value.headers, + status: cacheEntry.value.status + } : ((_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind) === _types.CachedRouteKind.APP_PAGE ? { + kind: _types.CachedRouteKind.APP_PAGE, + html: await cacheEntry.value.html.toUnchunkedString(true), + postponed: cacheEntry.value.postponed, + rscData: cacheEntry.value.rscData, + headers: cacheEntry.value.headers, + status: cacheEntry.value.status, + segmentData: cacheEntry.value.segmentData + } : cacheEntry.value + }; +} +async function toResponseCacheEntry(response) { + var _response_value, _response_value1; + if (!response) return null; + return { + isMiss: response.isMiss, + isStale: response.isStale, + cacheControl: response.cacheControl, + isFallback: response.isFallback, + value: ((_response_value = response.value) == null ? void 0 : _response_value.kind) === _types.CachedRouteKind.PAGES ? { + kind: _types.CachedRouteKind.PAGES, + html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER), + pageData: response.value.pageData, + headers: response.value.headers, + status: response.value.status + } : ((_response_value1 = response.value) == null ? void 0 : _response_value1.kind) === _types.CachedRouteKind.APP_PAGE ? { + kind: _types.CachedRouteKind.APP_PAGE, + html: _renderresult.default.fromStatic(response.value.html, _constants.HTML_CONTENT_TYPE_HEADER), + rscData: response.value.rscData, + headers: response.value.headers, + status: response.value.status, + postponed: response.value.postponed, + segmentData: response.value.segmentData + } : response.value + }; +} +function routeKindToIncrementalCacheKind(routeKind) { + switch(routeKind){ + case _routekind.RouteKind.PAGES: + return _types.IncrementalCacheKind.PAGES; + case _routekind.RouteKind.APP_PAGE: + return _types.IncrementalCacheKind.APP_PAGE; + case _routekind.RouteKind.IMAGE: + return _types.IncrementalCacheKind.IMAGE; + case _routekind.RouteKind.APP_ROUTE: + return _types.IncrementalCacheKind.APP_ROUTE; + case _routekind.RouteKind.PAGES_API: + // Pages Router API routes are not cached in the incremental cache. + throw Object.defineProperty(new Error(`Unexpected route kind ${routeKind}`), "__NEXT_ERROR_CODE", { + value: "E64", + enumerable: false, + configurable: true + }); + default: + return routeKind; + } +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/resume-data-cache/cache-store.js b/cli/app/node_modules/next/dist/server/resume-data-cache/cache-store.js new file mode 100644 index 00000000000..0d65539194b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/resume-data-cache/cache-store.js @@ -0,0 +1,96 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + parseUseCacheCacheStore: null, + serializeUseCacheCacheStore: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + parseUseCacheCacheStore: function() { + return parseUseCacheCacheStore; + }, + serializeUseCacheCacheStore: function() { + return serializeUseCacheCacheStore; + } +}); +const _encryptionutils = require("../app-render/encryption-utils"); +const _constants = require("../use-cache/constants"); +function parseUseCacheCacheStore(entries) { + const store = new Map(); + for (const [key, { entry, hasExplicitRevalidate, hasExplicitExpire, readRootParamNames }] of entries){ + store.set(key, Promise.resolve({ + entry: { + // Create a ReadableStream from the Uint8Array + value: new ReadableStream({ + start (controller) { + // Enqueue the Uint8Array to the stream + controller.enqueue((0, _encryptionutils.stringToUint8Array)(atob(entry.value))); + // Close the stream + controller.close(); + } + }), + tags: entry.tags, + stale: entry.stale, + timestamp: entry.timestamp, + expire: entry.expire, + revalidate: entry.revalidate + }, + hasExplicitRevalidate, + hasExplicitExpire, + readRootParamNames: readRootParamNames ? new Set(readRootParamNames) : undefined + })); + } + return store; +} +async function serializeUseCacheCacheStore(entries, isCacheComponentsEnabled) { + return Promise.all(Array.from(entries).map(([key, value])=>{ + return value.then(async ({ entry, hasExplicitRevalidate, hasExplicitExpire, readRootParamNames })=>{ + if (isCacheComponentsEnabled && (entry.revalidate === 0 || entry.expire < _constants.DYNAMIC_EXPIRE)) { + // The entry was omitted from the prerender result, and subsequently + // does not need to be included in the serialized RDC. + return null; + } + const [left, right] = entry.value.tee(); + entry.value = right; + let binaryString = ''; + // We want to encode the value as a string, but we aren't sure if the + // value is a a stream of UTF-8 bytes or not, so let's just encode it + // as a string using base64. + for await (const chunk of left){ + binaryString += (0, _encryptionutils.arrayBufferToString)(chunk); + } + return [ + key, + { + entry: { + // Encode the value as a base64 string. + value: btoa(binaryString), + tags: entry.tags, + stale: entry.stale, + timestamp: entry.timestamp, + expire: entry.expire, + revalidate: entry.revalidate + }, + hasExplicitRevalidate, + hasExplicitExpire, + readRootParamNames: readRootParamNames ? [ + ...readRootParamNames + ] : undefined + } + ]; + }).catch(()=>{ + // Any failed cache writes should be ignored as to not discard the + // entire cache. + return null; + }); + })); +} + +//# sourceMappingURL=cache-store.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js b/cli/app/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js new file mode 100644 index 00000000000..12084362f4b --- /dev/null +++ b/cli/app/node_modules/next/dist/server/resume-data-cache/resume-data-cache.js @@ -0,0 +1,124 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createPrerenderResumeDataCache: null, + createRenderResumeDataCache: null, + stringifyResumeDataCache: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createPrerenderResumeDataCache: function() { + return createPrerenderResumeDataCache; + }, + createRenderResumeDataCache: function() { + return createRenderResumeDataCache; + }, + stringifyResumeDataCache: function() { + return stringifyResumeDataCache; + } +}); +const _invarianterror = require("../../shared/lib/invariant-error"); +const _cachestore = require("./cache-store"); +async function stringifyResumeDataCache(resumeDataCache, isCacheComponentsEnabled) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('`stringifyResumeDataCache` should not be called in edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E602", + enumerable: false, + configurable: true + }); + } else { + if (resumeDataCache.fetch.size === 0 && resumeDataCache.cache.size === 0) { + return 'null'; + } + const json = { + store: { + fetch: Object.fromEntries(Array.from(resumeDataCache.fetch.entries())), + cache: Object.fromEntries((await (0, _cachestore.serializeUseCacheCacheStore)(resumeDataCache.cache.entries(), isCacheComponentsEnabled)).filter((entry)=>entry !== null)), + encryptedBoundArgs: Object.fromEntries(Array.from(resumeDataCache.encryptedBoundArgs.entries())) + } + }; + // Compress the JSON string using zlib. As the data we already want to + // decompress is in memory, we use the synchronous deflateSync function. + const { deflateSync } = require('node:zlib'); + return deflateSync(JSON.stringify(json)).toString('base64'); + } +} +function createPrerenderResumeDataCache(source) { + if (source) { + return { + cache: new Map(source.cache), + fetch: new Map(source.fetch), + encryptedBoundArgs: new Map(source.encryptedBoundArgs), + decryptedBoundArgs: new Map(source.decryptedBoundArgs) + }; + } else { + return { + cache: new Map(), + fetch: new Map(), + encryptedBoundArgs: new Map(), + decryptedBoundArgs: new Map() + }; + } +} +function createRenderResumeDataCache(resumeDataCacheOrPersistedCache, maxPostponedStateSizeBytes) { + if (process.env.NEXT_RUNTIME === 'edge') { + throw Object.defineProperty(new _invarianterror.InvariantError('`createRenderResumeDataCache` should not be called in edge runtime.'), "__NEXT_ERROR_CODE", { + value: "E556", + enumerable: false, + configurable: true + }); + } else { + if (typeof resumeDataCacheOrPersistedCache !== 'string') { + // If the cache is already a prerender or render cache, we can return it + // directly. For the former, we're just performing a type change. + return resumeDataCacheOrPersistedCache; + } + if (resumeDataCacheOrPersistedCache === 'null') { + return { + cache: new Map(), + fetch: new Map(), + encryptedBoundArgs: new Map(), + decryptedBoundArgs: new Map() + }; + } + // This should be a compressed string. Let's decompress it using zlib. + // As the data we already want to decompress is in memory, we use the + // synchronous inflateSync function. + const { inflateSync } = require('node:zlib'); + // Limit decompressed size to prevent zipbomb attacks. This is 5x the + // configured maxPostponedStateSize, allowing reasonable compression + // ratios while preventing extreme decompression bombs. + // Default is 500MB (5x the default 100MB compressed limit). + const maxDecompressedSize = maxPostponedStateSizeBytes ? maxPostponedStateSizeBytes * 5 : 500 * 1024 * 1024; + let json; + try { + json = JSON.parse(inflateSync(Buffer.from(resumeDataCacheOrPersistedCache, 'base64'), { + maxOutputLength: maxDecompressedSize + }).toString('utf-8')); + } catch (err) { + if (err instanceof RangeError && err.code === 'ERR_BUFFER_TOO_LARGE') { + throw Object.defineProperty(new Error(`Decompressed resume data cache exceeded ${maxDecompressedSize} byte limit`), "__NEXT_ERROR_CODE", { + value: "E976", + enumerable: false, + configurable: true + }); + } + throw err; + } + return { + cache: (0, _cachestore.parseUseCacheCacheStore)(Object.entries(json.store.cache)), + fetch: new Map(Object.entries(json.store.fetch)), + encryptedBoundArgs: new Map(Object.entries(json.store.encryptedBoundArgs)), + decryptedBoundArgs: new Map() + }; + } +} + +//# sourceMappingURL=resume-data-cache.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/revalidation-utils.js b/cli/app/node_modules/next/dist/server/revalidation-utils.js new file mode 100644 index 00000000000..5f4cc5f6475 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/revalidation-utils.js @@ -0,0 +1,157 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + executeRevalidates: null, + withExecuteRevalidates: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + executeRevalidates: function() { + return executeRevalidates; + }, + withExecuteRevalidates: function() { + return withExecuteRevalidates; + } +}); +const _handlers = require("./use-cache/handlers"); +async function withExecuteRevalidates(store, callback) { + if (!store) { + return callback(); + } + // If we executed any revalidates during the request, then we don't want to execute them again. + // save the state so we can check if anything changed after we're done running callbacks. + const savedRevalidationState = cloneRevalidationState(store); + try { + return await callback(); + } finally{ + // Check if we have any new revalidates, and if so, wait until they are all resolved. + const newRevalidates = diffRevalidationState(savedRevalidationState, cloneRevalidationState(store)); + await executeRevalidates(store, newRevalidates); + } +} +function cloneRevalidationState(store) { + return { + pendingRevalidatedTags: store.pendingRevalidatedTags ? [ + ...store.pendingRevalidatedTags + ] : [], + pendingRevalidates: { + ...store.pendingRevalidates + }, + pendingRevalidateWrites: store.pendingRevalidateWrites ? [ + ...store.pendingRevalidateWrites + ] : [] + }; +} +function diffRevalidationState(prev, curr) { + const prevTagsWithProfile = new Set(prev.pendingRevalidatedTags.map((item)=>{ + const profileKey = typeof item.profile === 'object' ? JSON.stringify(item.profile) : item.profile || ''; + return `${item.tag}:${profileKey}`; + })); + const prevRevalidateWrites = new Set(prev.pendingRevalidateWrites); + return { + pendingRevalidatedTags: curr.pendingRevalidatedTags.filter((item)=>{ + const profileKey = typeof item.profile === 'object' ? JSON.stringify(item.profile) : item.profile || ''; + return !prevTagsWithProfile.has(`${item.tag}:${profileKey}`); + }), + pendingRevalidates: Object.fromEntries(Object.entries(curr.pendingRevalidates).filter(([key])=>!(key in prev.pendingRevalidates))), + pendingRevalidateWrites: curr.pendingRevalidateWrites.filter((promise)=>!prevRevalidateWrites.has(promise)) + }; +} +async function revalidateTags(tagsWithProfile, incrementalCache, workStore) { + if (tagsWithProfile.length === 0) { + return; + } + const handlers = (0, _handlers.getCacheHandlers)(); + const promises = []; + // Group tags by profile for batch processing + const tagsByProfile = new Map(); + for (const item of tagsWithProfile){ + const profile = item.profile; + // Find existing profile by comparing values + let existingKey = undefined; + for (const [key] of tagsByProfile){ + if (typeof key === 'string' && typeof profile === 'string' && key === profile) { + existingKey = key; + break; + } + if (typeof key === 'object' && typeof profile === 'object' && JSON.stringify(key) === JSON.stringify(profile)) { + existingKey = key; + break; + } + if (key === profile) { + existingKey = key; + break; + } + } + const profileKey = existingKey || profile; + if (!tagsByProfile.has(profileKey)) { + tagsByProfile.set(profileKey, []); + } + tagsByProfile.get(profileKey).push(item.tag); + } + // Process each profile group + for (const [profile, tagsForProfile] of tagsByProfile){ + // Look up the cache profile from workStore if available + let durations; + if (profile) { + let cacheLife; + if (typeof profile === 'object') { + // Profile is already a cacheLife configuration object + cacheLife = profile; + } else if (typeof profile === 'string') { + var _workStore_cacheLifeProfiles; + // Profile is a string key, look it up in workStore + cacheLife = workStore == null ? void 0 : (_workStore_cacheLifeProfiles = workStore.cacheLifeProfiles) == null ? void 0 : _workStore_cacheLifeProfiles[profile]; + if (!cacheLife) { + throw Object.defineProperty(new Error(`Invalid profile provided "${profile}" must be configured under cacheLife in next.config or be "max"`), "__NEXT_ERROR_CODE", { + value: "E873", + enumerable: false, + configurable: true + }); + } + } + if (cacheLife) { + durations = { + expire: cacheLife.expire + }; + } + } + // If profile is not found and not 'max', durations will be undefined + // which will trigger immediate expiration in the cache handler + for (const handler of handlers || []){ + if (profile) { + promises.push(handler.updateTags == null ? void 0 : handler.updateTags.call(handler, tagsForProfile, durations)); + } else { + promises.push(handler.updateTags == null ? void 0 : handler.updateTags.call(handler, tagsForProfile)); + } + } + if (incrementalCache) { + promises.push(incrementalCache.revalidateTag(tagsForProfile, durations)); + } + } + await Promise.all(promises); +} +function executeRevalidates(workStore, state) { + const promises = []; + const pendingRevalidatedTags = (state == null ? void 0 : state.pendingRevalidatedTags) ?? workStore.pendingRevalidatedTags ?? []; + if (pendingRevalidatedTags.length > 0) { + promises.push(revalidateTags(pendingRevalidatedTags, workStore.incrementalCache, workStore)); + } + const pendingRevalidates = Object.values((state == null ? void 0 : state.pendingRevalidates) ?? workStore.pendingRevalidates ?? {}); + promises.push(...pendingRevalidates); + const pendingRevalidateWrites = (state == null ? void 0 : state.pendingRevalidateWrites) ?? workStore.pendingRevalidateWrites ?? []; + promises.push(...pendingRevalidateWrites); + if (promises.length === 0) { + return false; + } + return Promise.all(promises).then(()=>undefined); +} + +//# sourceMappingURL=revalidation-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-definitions/app-page-route-definition.js b/cli/app/node_modules/next/dist/server/route-definitions/app-page-route-definition.js new file mode 100644 index 00000000000..90fee8f0d00 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-definitions/app-page-route-definition.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isAppPageRouteDefinition", { + enumerable: true, + get: function() { + return isAppPageRouteDefinition; + } +}); +const _routekind = require("../route-kind"); +function isAppPageRouteDefinition(definition) { + return definition.kind === _routekind.RouteKind.APP_PAGE; +} + +//# sourceMappingURL=app-page-route-definition.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-kind.js b/cli/app/node_modules/next/dist/server/route-kind.js new file mode 100644 index 00000000000..6a352c27ba3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-kind.js @@ -0,0 +1,32 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "RouteKind", { + enumerable: true, + get: function() { + return RouteKind; + } +}); +var RouteKind = /*#__PURE__*/ function(RouteKind) { + /** + * `PAGES` represents all the React pages that are under `pages/`. + */ RouteKind["PAGES"] = "PAGES"; + /** + * `PAGES_API` represents all the API routes under `pages/api/`. + */ RouteKind["PAGES_API"] = "PAGES_API"; + /** + * `APP_PAGE` represents all the React pages that are under `app/` with the + * filename of `page.{j,t}s{,x}`. + */ RouteKind["APP_PAGE"] = "APP_PAGE"; + /** + * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the + * filename of `route.{j,t}s{,x}`. + */ RouteKind["APP_ROUTE"] = "APP_ROUTE"; + /** + * `IMAGE` represents all the images that are generated by `next/image`. + */ RouteKind["IMAGE"] = "IMAGE"; + return RouteKind; +}({}); + +//# sourceMappingURL=route-kind.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js b/cli/app/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js new file mode 100644 index 00000000000..92b5a233819 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-managers/default-route-matcher-manager.js @@ -0,0 +1,239 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DefaultRouteMatcherManager", { + enumerable: true, + get: function() { + return DefaultRouteMatcherManager; + } +}); +const _utils = require("../../shared/lib/router/utils"); +const _localeroutematcher = require("../route-matchers/locale-route-matcher"); +const _ensureleadingslash = require("../../shared/lib/page-path/ensure-leading-slash"); +const _detachedpromise = require("../../lib/detached-promise"); +class DefaultRouteMatcherManager { + /** + * When this value changes, it indicates that a change has been introduced + * that requires recompilation. + */ get compilationID() { + return this.providers.length; + } + async waitTillReady() { + if (this.waitTillReadyPromise) { + await this.waitTillReadyPromise; + delete this.waitTillReadyPromise; + } + } + async reload() { + const { promise, resolve, reject } = new _detachedpromise.DetachedPromise(); + this.waitTillReadyPromise = promise; + // Grab the compilation ID for this run, we'll verify it at the end to + // ensure that if any routes were added before reloading is finished that + // we error out. + const compilationID = this.compilationID; + try { + // Collect all the matchers from each provider. + const matchers = []; + // Get all the providers matchers. + const providersMatchers = await Promise.all(this.providers.map((provider)=>provider.matchers())); + // Use this to detect duplicate pathnames. + const all = new Map(); + const duplicates = {}; + for (const providerMatchers of providersMatchers){ + for (const matcher of providerMatchers){ + // Reset duplicated matches when reloading from pages conflicting state. + if (matcher.duplicated) delete matcher.duplicated; + // Test to see if the matcher being added is a duplicate. + const duplicate = all.get(matcher.definition.pathname); + if (duplicate) { + // This looks a little weird, but essentially if the pathname + // already exists in the duplicates map, then we got that array + // reference. Otherwise, we create a new array with the original + // duplicate first. Then we push the new matcher into the duplicate + // array, and reset it to the duplicates object (which may be a + // no-op if the pathname already existed in the duplicates object). + // Then we set the array of duplicates on both the original + // duplicate object and the new one, so we can keep them in sync. + // If a new duplicate is found, and it matches an existing pathname, + // the retrieval of the `other` will actually return the array + // reference used by all other duplicates. This is why ReadonlyArray + // is so important! Array's are always references! + const others = duplicates[matcher.definition.pathname] ?? [ + duplicate + ]; + others.push(matcher); + duplicates[matcher.definition.pathname] = others; + // Add duplicated details to each route. + duplicate.duplicated = others; + matcher.duplicated = others; + // TODO: see if we should error for duplicates in production? + } + matchers.push(matcher); + // Add the matcher's pathname to the set. + all.set(matcher.definition.pathname, matcher); + } + } + // Update the duplicate matchers. This is used in the development manager + // to warn about duplicates. + this.matchers.duplicates = duplicates; + // If the cache is the same as what we just parsed, we can exit now. We + // can tell by using the `===` which compares object identity, which for + // the manifest matchers, will return the same matcher each time. + if (this.previousMatchers.length === matchers.length && this.previousMatchers.every((cachedMatcher, index)=>cachedMatcher === matchers[index])) { + return; + } + this.previousMatchers = matchers; + // For matchers that are for static routes, filter them now. + this.matchers.static = matchers.filter((matcher)=>!matcher.isDynamic); + // For matchers that are for dynamic routes, filter them and sort them now. + const dynamic = matchers.filter((matcher)=>matcher.isDynamic); + // As `getSortedRoutes` only takes an array of strings, we need to create + // a map of the pathnames (used for sorting) and the matchers. When we + // have locales, there may be multiple matches for the same pathname. To + // handle this, we keep a map of all the indexes (in `reference`) and + // merge them in later. + const reference = new Map(); + const pathnames = new Array(); + for(let index = 0; index < dynamic.length; index++){ + // Grab the pathname from the definition. + const pathname = dynamic[index].definition.pathname; + // Grab the index in the dynamic array, push it into the reference. + const indexes = reference.get(pathname) ?? []; + indexes.push(index); + // If this is the first one set it. If it isn't, we don't need to + // because pushing above on the array will mutate the array already + // stored there because array's are always a reference! + if (indexes.length === 1) reference.set(pathname, indexes); + else continue; + pathnames.push(pathname); + } + // Sort the array of pathnames. + const sorted = (0, _utils.getSortedRoutes)(pathnames); + // For each of the sorted pathnames, iterate over them, grabbing the list + // of indexes and merging them back into the new `sortedDynamicMatchers` + // array. The order of the same matching pathname doesn't matter because + // they will have other matching characteristics (like the locale) that + // is considered. + const sortedDynamicMatchers = []; + for (const pathname of sorted){ + const indexes = reference.get(pathname); + if (!Array.isArray(indexes)) { + throw Object.defineProperty(new Error('Invariant: expected to find identity in indexes map'), "__NEXT_ERROR_CODE", { + value: "E271", + enumerable: false, + configurable: true + }); + } + const dynamicMatches = indexes.map((index)=>dynamic[index]); + sortedDynamicMatchers.push(...dynamicMatches); + } + this.matchers.dynamic = sortedDynamicMatchers; + // This means that there was a new matcher pushed while we were waiting + if (this.compilationID !== compilationID) { + throw Object.defineProperty(new Error('Invariant: expected compilation to finish before new matchers were added, possible missing await'), "__NEXT_ERROR_CODE", { + value: "E242", + enumerable: false, + configurable: true + }); + } + } catch (err) { + reject(err); + } finally{ + // The compilation ID matched, so mark the complication as finished. + this.lastCompilationID = compilationID; + resolve(); + } + } + push(provider) { + this.providers.push(provider); + } + async test(pathname, options) { + // See if there's a match for the pathname... + const match = await this.match(pathname, options); + // This default implementation only needs to check to see if there _was_ a + // match. The development matcher actually changes it's behavior by not + // recompiling the routes. + return match !== null; + } + async match(pathname, options) { + // "Iterate" over the match options. Once we found a single match, exit with + // it, otherwise return null below. If no match is found, the inner block + // won't be called. + for await (const match of this.matchAll(pathname, options)){ + return match; + } + return null; + } + /** + * This is a point for other managers to override to inject other checking + * behavior like duplicate route checking on a per-request basis. + * + * @param pathname the pathname to validate against + * @param matcher the matcher to validate/test with + * @returns the match if found + */ validate(pathname, matcher, options) { + var _options_i18n; + if (matcher instanceof _localeroutematcher.LocaleRouteMatcher) { + return matcher.match(pathname, options); + } + // If the locale was inferred from the default locale, then it will have + // already added a locale to the pathname. We need to remove it before + // matching because this matcher is not locale aware. + if ((_options_i18n = options.i18n) == null ? void 0 : _options_i18n.inferredFromDefault) { + return matcher.match(options.i18n.pathname); + } + return matcher.match(pathname); + } + async *matchAll(pathname, options) { + // Guard against the matcher manager from being run before it needs to be + // recompiled. This was preferred to re-running the compilation here because + // it should be re-ran only when it changes. If a match is attempted before + // this is done, it indicates that there is a case where a provider is added + // before it was recompiled (an error). We also don't want to affect request + // times. + if (this.lastCompilationID !== this.compilationID) { + throw Object.defineProperty(new Error('Invariant: expected routes to have been loaded before match'), "__NEXT_ERROR_CODE", { + value: "E235", + enumerable: false, + configurable: true + }); + } + // Ensure that path matching is done with a leading slash. + pathname = (0, _ensureleadingslash.ensureLeadingSlash)(pathname); + // If this pathname doesn't look like a dynamic route, and this pathname is + // listed in the normalized list of routes, then return it. This ensures + // that when a route like `/user/[id]` is encountered, it doesn't just match + // with the list of normalized routes. + if (!(0, _utils.isDynamicRoute)(pathname)) { + for (const matcher of this.matchers.static){ + const match = this.validate(pathname, matcher, options); + if (!match) continue; + yield match; + } + } + // If we should skip handling dynamic routes, exit now. + if (options == null ? void 0 : options.skipDynamic) return null; + // Loop over the dynamic matchers, yielding each match. + for (const matcher of this.matchers.dynamic){ + const match = this.validate(pathname, matcher, options); + if (!match) continue; + yield match; + } + // We tried direct matching against the pathname and against all the dynamic + // paths, so there was no match. + return null; + } + constructor(){ + this.providers = []; + this.matchers = { + static: [], + dynamic: [], + duplicates: {} + }; + this.lastCompilationID = this.compilationID; + this.previousMatchers = []; + } +} + +//# sourceMappingURL=default-route-matcher-manager.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js b/cli/app/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js new file mode 100644 index 00000000000..8962cfe4d48 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-managers/dev-route-matcher-manager.js @@ -0,0 +1,120 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevRouteMatcherManager", { + enumerable: true, + get: function() { + return DevRouteMatcherManager; + } +}); +const _routekind = require("../route-kind"); +const _defaultroutematchermanager = require("./default-route-matcher-manager"); +const _path = /*#__PURE__*/ _interop_require_default(require("../../shared/lib/isomorphic/path")); +const _log = /*#__PURE__*/ _interop_require_wildcard(require("../../build/output/log")); +const _picocolors = require("../../lib/picocolors"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +class DevRouteMatcherManager extends _defaultroutematchermanager.DefaultRouteMatcherManager { + constructor(production, ensurer, dir){ + super(), this.production = production, this.ensurer = ensurer, this.dir = dir; + } + async test(pathname, options) { + // Try to find a match within the developer routes. + const match = await super.match(pathname, options); + // Return if the match wasn't null. Unlike the implementation of `match` + // which uses `matchAll` here, this does not call `ensure` on the match + // found via the development matches. + return match !== null; + } + validate(pathname, matcher, options) { + const match = super.validate(pathname, matcher, options); + // If a match was found, check to see if there were any conflicting app or + // pages files. + // TODO: maybe expand this to _any_ duplicated routes instead? + if (match && matcher.duplicated && matcher.duplicated.some((duplicate)=>duplicate.definition.kind === _routekind.RouteKind.APP_PAGE || duplicate.definition.kind === _routekind.RouteKind.APP_ROUTE) && matcher.duplicated.some((duplicate)=>duplicate.definition.kind === _routekind.RouteKind.PAGES || duplicate.definition.kind === _routekind.RouteKind.PAGES_API)) { + return null; + } + return match; + } + async *matchAll(pathname, options) { + // Iterate over the development matches to see if one of them match the + // request path. + for await (const developmentMatch of super.matchAll(pathname, options)){ + // We're here, which means that we haven't seen this match yet, so we + // should try to ensure it and recompile the production matcher. + await this.ensurer.ensure(developmentMatch, pathname); + await this.production.reload(); + // Iterate over the production matches again, this time we should be able + // to match it against the production matcher unless there's an error. + for await (const productionMatch of this.production.matchAll(pathname, options)){ + yield productionMatch; + } + } + // We tried direct matching against the pathname and against all the dynamic + // paths, so there was no match. + return null; + } + async reload() { + // Compile the production routes again. + await this.production.reload(); + // Compile the development routes. + await super.reload(); + // Check for and warn of any duplicates. + for (const [pathname, matchers] of Object.entries(this.matchers.duplicates)){ + // We only want to warn about matchers resolving to the same path if their + // identities are different. + const identity = matchers[0].identity; + if (matchers.slice(1).some((matcher)=>matcher.identity !== identity)) { + continue; + } + _log.warn(`Duplicate page detected. ${matchers.map((matcher)=>(0, _picocolors.cyan)(_path.default.relative(this.dir, matcher.definition.filename))).join(' and ')} resolve to ${(0, _picocolors.cyan)(pathname)}`); + } + } +} + +//# sourceMappingURL=dev-route-matcher-manager.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js new file mode 100644 index 00000000000..3b8a6ab6e46 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/app-page-route-matcher-provider.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppPageRouteMatcherProvider", { + enumerable: true, + get: function() { + return AppPageRouteMatcherProvider; + } +}); +const _isapppageroute = require("../../lib/is-app-page-route"); +const _constants = require("../../shared/lib/constants"); +const _app = require("../normalizers/built/app"); +const _routekind = require("../route-kind"); +const _apppageroutematcher = require("../route-matchers/app-page-route-matcher"); +const _manifestroutematcherprovider = require("./manifest-route-matcher-provider"); +class AppPageRouteMatcherProvider extends _manifestroutematcherprovider.ManifestRouteMatcherProvider { + constructor(distDir, manifestLoader){ + super(_constants.APP_PATHS_MANIFEST, manifestLoader); + this.normalizers = new _app.AppNormalizers(distDir); + } + async transform(manifest) { + // This matcher only matches app pages. + const pages = Object.keys(manifest).filter((page)=>(0, _isapppageroute.isAppPageRoute)(page)); + // Collect all the app paths for each page. This could include any parallel + // routes. + const allAppPaths = {}; + for (const page of pages){ + const pathname = this.normalizers.pathname.normalize(page); + if (pathname in allAppPaths) allAppPaths[pathname].push(page); + else allAppPaths[pathname] = [ + page + ]; + } + // Format the routes. + const matchers = []; + for (const [pathname, appPaths] of Object.entries(allAppPaths)){ + // TODO-APP: (wyattjoh) this is a hack right now, should be more deterministic + const page = appPaths[0]; + const filename = this.normalizers.filename.normalize(manifest[page]); + const bundlePath = this.normalizers.bundlePath.normalize(page); + matchers.push(new _apppageroutematcher.AppPageRouteMatcher({ + kind: _routekind.RouteKind.APP_PAGE, + pathname, + page, + bundlePath, + filename, + appPaths + })); + } + return matchers; + } +} + +//# sourceMappingURL=app-page-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js new file mode 100644 index 00000000000..3900ecc4fc5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/app-route-route-matcher-provider.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppRouteRouteMatcherProvider", { + enumerable: true, + get: function() { + return AppRouteRouteMatcherProvider; + } +}); +const _isapprouteroute = require("../../lib/is-app-route-route"); +const _constants = require("../../shared/lib/constants"); +const _routekind = require("../route-kind"); +const _approuteroutematcher = require("../route-matchers/app-route-route-matcher"); +const _manifestroutematcherprovider = require("./manifest-route-matcher-provider"); +const _app = require("../normalizers/built/app"); +class AppRouteRouteMatcherProvider extends _manifestroutematcherprovider.ManifestRouteMatcherProvider { + constructor(distDir, manifestLoader){ + super(_constants.APP_PATHS_MANIFEST, manifestLoader); + this.normalizers = new _app.AppNormalizers(distDir); + } + async transform(manifest) { + // This matcher only matches app routes. + const pages = Object.keys(manifest).filter((page)=>(0, _isapprouteroute.isAppRouteRoute)(page)); + // Format the routes. + const matchers = []; + for (const page of pages){ + const filename = this.normalizers.filename.normalize(manifest[page]); + const pathname = this.normalizers.pathname.normalize(page); + const bundlePath = this.normalizers.bundlePath.normalize(page); + matchers.push(new _approuteroutematcher.AppRouteRouteMatcher({ + kind: _routekind.RouteKind.APP_ROUTE, + pathname, + page, + bundlePath, + filename + })); + } + return matchers; + } +} + +//# sourceMappingURL=app-route-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js new file mode 100644 index 00000000000..e656377f218 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-page-route-matcher-provider.js @@ -0,0 +1,91 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevAppPageRouteMatcherProvider", { + enumerable: true, + get: function() { + return DevAppPageRouteMatcherProvider; + } +}); +const _apppageroutematcher = require("../../route-matchers/app-page-route-matcher"); +const _routekind = require("../../route-kind"); +const _filecacheroutematcherprovider = require("./file-cache-route-matcher-provider"); +const _app = require("../../normalizers/built/app"); +const _normalizecatchallroutes = require("../../../build/normalize-catchall-routes"); +const _apppaths = require("../../../shared/lib/router/utils/app-paths"); +class DevAppPageRouteMatcherProvider extends _filecacheroutematcherprovider.FileCacheRouteMatcherProvider { + constructor(appDir, extensions, reader, isTurbopack){ + super(appDir, reader); + this.normalizers = new _app.DevAppNormalizers(appDir, extensions, isTurbopack); + // Match any page file that ends with `/page.${extension}` or `/default.${extension}` under the app + // directory. + this.expression = new RegExp(`[/\\\\](page|default)\\.(?:${extensions.join('|')})$`); + this.isTurbopack = isTurbopack; + } + async transform(files) { + // Collect all the app paths for each page. This could include any parallel + // routes. + const cache = new Map(); + const routeFilenames = new Array(); + let appPaths = {}; + for (const filename of files){ + // If the file isn't a match for this matcher, then skip it. + if (!this.expression.test(filename)) continue; + let page = this.normalizers.page.normalize(filename); + // Validate that this is not an ignored page. + if (page.includes('/_')) continue; + // Turbopack uses the correct page name with the underscore normalized. + // TODO: Move implementation to packages/next/src/server/normalizers/built/app/app-page-normalizer.ts. + // The `includes('/_')` check above needs to be moved for that to work as otherwise `%5Fsegmentname` + // will result in `_segmentname` which hits that includes check and be skipped. + if (this.isTurbopack) { + page = page.replace(/%5F/g, '_'); + } + // This is a valid file that we want to create a matcher for. + routeFilenames.push(filename); + const pathname = this.normalizers.pathname.normalize(filename); + const bundlePath = this.normalizers.bundlePath.normalize(filename); + // Save the normalization results. + cache.set(filename, { + page, + pathname, + bundlePath + }); + if (pathname in appPaths) appPaths[pathname].push(page); + else appPaths[pathname] = [ + page + ]; + } + (0, _normalizecatchallroutes.normalizeCatchAllRoutes)(appPaths); + // Make sure to sort parallel routes to make the result deterministic. + appPaths = Object.fromEntries(Object.entries(appPaths).map(([k, v])=>[ + k, + v.sort(_apppaths.compareAppPaths) + ])); + const matchers = []; + for (const filename of routeFilenames){ + // Grab the cached values (and the appPaths). + const cached = cache.get(filename); + if (!cached) { + throw Object.defineProperty(new Error('Invariant: expected filename to exist in cache'), "__NEXT_ERROR_CODE", { + value: "E190", + enumerable: false, + configurable: true + }); + } + const { pathname, page, bundlePath } = cached; + matchers.push(new _apppageroutematcher.AppPageRouteMatcher({ + kind: _routekind.RouteKind.APP_PAGE, + pathname, + page, + bundlePath, + filename, + appPaths: appPaths[pathname] + })); + } + return matchers; + } +} + +//# sourceMappingURL=dev-app-page-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js new file mode 100644 index 00000000000..73dd82b0334 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-app-route-route-matcher-provider.js @@ -0,0 +1,112 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevAppRouteRouteMatcherProvider", { + enumerable: true, + get: function() { + return DevAppRouteRouteMatcherProvider; + } +}); +const _approuteroutematcher = require("../../route-matchers/app-route-route-matcher"); +const _routekind = require("../../route-kind"); +const _filecacheroutematcherprovider = require("./file-cache-route-matcher-provider"); +const _isapprouteroute = require("../../../lib/is-app-route-route"); +const _app = require("../../normalizers/built/app"); +const _ismetadataroute = require("../../../lib/metadata/is-metadata-route"); +const _getmetadataroute = require("../../../lib/metadata/get-metadata-route"); +const _path = /*#__PURE__*/ _interop_require_default(require("../../../shared/lib/isomorphic/path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class DevAppRouteRouteMatcherProvider extends _filecacheroutematcherprovider.FileCacheRouteMatcherProvider { + constructor(appDir, extensions, reader, isTurbopack){ + super(appDir, reader); + this.appDir = appDir; + this.isTurbopack = isTurbopack; + this.normalizers = new _app.DevAppNormalizers(appDir, extensions, isTurbopack); + } + async transform(files) { + const matchers = []; + for (const filename of files){ + // Skip static metadata files as they are served from filesystem. + if ((0, _ismetadataroute.isStaticMetadataFile)(filename.replace(this.appDir, ''))) { + continue; + } + let page = this.normalizers.page.normalize(filename); + // If the file isn't a match for this matcher, then skip it. + if (!(0, _isapprouteroute.isAppRouteRoute)(page)) continue; + // Validate that this is not an ignored page. + if (page.includes('/_')) continue; + // Turbopack uses the correct page name with the underscore normalized. + // TODO: Move implementation to packages/next/src/server/normalizers/built/app/app-page-normalizer.ts. + // The `includes('/_')` check above needs to be moved for that to work as otherwise `%5Fsegmentname` + // will result in `_segmentname` which hits that includes check and be skipped. + if (this.isTurbopack) { + page = page.replace(/%5F/g, '_'); + } + const pathname = this.normalizers.pathname.normalize(filename); + const bundlePath = this.normalizers.bundlePath.normalize(filename); + const ext = _path.default.extname(filename).slice(1); + const isEntryMetadataRouteFile = (0, _ismetadataroute.isMetadataRouteFile)(filename.replace(this.appDir, ''), [ + ext + ], true); + if (isEntryMetadataRouteFile && !(0, _ismetadataroute.isStaticMetadataRoute)(page)) { + // Matching dynamic metadata routes. + // Add 2 possibilities for both single and multiple routes: + { + // single: + // /sitemap.ts -> /sitemap.xml/route + // /icon.ts -> /icon/route + // We'll map the filename before normalization: + // sitemap.ts -> sitemap.xml/route.ts + // icon.ts -> icon/route.ts + const metadataPage = (0, _getmetadataroute.normalizeMetadataPageToRoute)(page, false); + const metadataPathname = (0, _getmetadataroute.normalizeMetadataPageToRoute)(pathname, false); + const metadataBundlePath = (0, _getmetadataroute.normalizeMetadataPageToRoute)(bundlePath, false); + const matcher = new _approuteroutematcher.AppRouteRouteMatcher({ + kind: _routekind.RouteKind.APP_ROUTE, + page: metadataPage, + pathname: metadataPathname, + bundlePath: metadataBundlePath, + filename + }); + matchers.push(matcher); + } + { + // multiple: + // /sitemap.ts -> /sitemap/[__metadata_id__]/route + // /icon.ts -> /icon/[__metadata_id__]/route + // We'll map the filename before normalization: + // sitemap.ts -> sitemap.xml/[__metadata_id__].ts + // icon.ts -> icon/[__metadata_id__].ts + const metadataPage = (0, _getmetadataroute.normalizeMetadataPageToRoute)(page, true); + const metadataPathname = (0, _getmetadataroute.normalizeMetadataPageToRoute)(pathname, true); + const metadataBundlePath = (0, _getmetadataroute.normalizeMetadataPageToRoute)(bundlePath, true); + const matcher = new _approuteroutematcher.AppRouteRouteMatcher({ + kind: _routekind.RouteKind.APP_ROUTE, + page: metadataPage, + pathname: metadataPathname, + bundlePath: metadataBundlePath, + filename + }); + matchers.push(matcher); + } + } else { + // Normal app routes. + matchers.push(new _approuteroutematcher.AppRouteRouteMatcher({ + kind: _routekind.RouteKind.APP_ROUTE, + page, + pathname, + bundlePath, + filename + })); + } + } + return matchers; + } +} + +//# sourceMappingURL=dev-app-route-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js new file mode 100644 index 00000000000..6c204a39b0f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-api-route-matcher-provider.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevPagesAPIRouteMatcherProvider", { + enumerable: true, + get: function() { + return DevPagesAPIRouteMatcherProvider; + } +}); +const _pagesapiroutematcher = require("../../route-matchers/pages-api-route-matcher"); +const _routekind = require("../../route-kind"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _filecacheroutematcherprovider = require("./file-cache-route-matcher-provider"); +const _pages = require("../../normalizers/built/pages"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class DevPagesAPIRouteMatcherProvider extends _filecacheroutematcherprovider.FileCacheRouteMatcherProvider { + constructor(pagesDir, extensions, reader, localeNormalizer){ + super(pagesDir, reader), this.pagesDir = pagesDir, this.extensions = extensions, this.localeNormalizer = localeNormalizer; + // Match any route file that ends with `/${filename}.${extension}` under the + // pages directory. + this.expression = new RegExp(`\\.(?:${extensions.join('|')})$`); + this.normalizers = new _pages.DevPagesNormalizers(pagesDir, extensions); + } + test(filename) { + // If the file does not end in the correct extension it's not a match. + if (!this.expression.test(filename)) return false; + // Pages API routes must exist in the pages directory with the `/api/` + // prefix. The pathnames being tested here though are the full filenames, + // so we need to include the pages directory. + // TODO: could path separator normalization be needed here? + if (filename.startsWith(_path.default.join(this.pagesDir, '/api/'))) return true; + for (const extension of this.extensions){ + // We can also match if we have `pages/api.${extension}`, so check to + // see if it's a match. + if (filename === _path.default.join(this.pagesDir, `api.${extension}`)) { + return true; + } + } + return false; + } + async transform(files) { + const matchers = []; + for (const filename of files){ + // If the file isn't a match for this matcher, then skip it. + if (!this.test(filename)) continue; + const pathname = this.normalizers.pathname.normalize(filename); + const page = this.normalizers.page.normalize(filename); + const bundlePath = this.normalizers.bundlePath.normalize(filename); + if (this.localeNormalizer) { + matchers.push(new _pagesapiroutematcher.PagesAPILocaleRouteMatcher({ + kind: _routekind.RouteKind.PAGES_API, + pathname, + page, + bundlePath, + filename, + i18n: {} + })); + } else { + matchers.push(new _pagesapiroutematcher.PagesAPIRouteMatcher({ + kind: _routekind.RouteKind.PAGES_API, + pathname, + page, + bundlePath, + filename + })); + } + } + return matchers; + } +} + +//# sourceMappingURL=dev-pages-api-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js new file mode 100644 index 00000000000..54eaf4307c5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/dev-pages-route-matcher-provider.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DevPagesRouteMatcherProvider", { + enumerable: true, + get: function() { + return DevPagesRouteMatcherProvider; + } +}); +const _pagesroutematcher = require("../../route-matchers/pages-route-matcher"); +const _routekind = require("../../route-kind"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _filecacheroutematcherprovider = require("./file-cache-route-matcher-provider"); +const _pages = require("../../normalizers/built/pages"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class DevPagesRouteMatcherProvider extends _filecacheroutematcherprovider.FileCacheRouteMatcherProvider { + constructor(pagesDir, extensions, reader, localeNormalizer){ + super(pagesDir, reader), this.pagesDir = pagesDir, this.extensions = extensions, this.localeNormalizer = localeNormalizer; + // Match any route file that ends with `/${filename}.${extension}` under the + // pages directory. + this.expression = new RegExp(`\\.(?:${extensions.join('|')})$`); + this.normalizers = new _pages.DevPagesNormalizers(pagesDir, extensions); + } + test(filename) { + // If the file does not end in the correct extension it's not a match. + if (!this.expression.test(filename)) return false; + // Pages routes must exist in the pages directory without the `/api/` + // prefix. The pathnames being tested here though are the full filenames, + // so we need to include the pages directory. + // TODO: could path separator normalization be needed here? + if (filename.startsWith(_path.default.join(this.pagesDir, '/api/'))) return false; + for (const extension of this.extensions){ + // We can also match if we have `pages/api.${extension}`, so check to + // see if it's a match. + if (filename === _path.default.join(this.pagesDir, `api.${extension}`)) { + return false; + } + } + return true; + } + async transform(files) { + const matchers = []; + for (const filename of files){ + // If the file isn't a match for this matcher, then skip it. + if (!this.test(filename)) continue; + const pathname = this.normalizers.pathname.normalize(filename); + const page = this.normalizers.page.normalize(filename); + const bundlePath = this.normalizers.bundlePath.normalize(filename); + if (this.localeNormalizer) { + matchers.push(new _pagesroutematcher.PagesLocaleRouteMatcher({ + kind: _routekind.RouteKind.PAGES, + pathname, + page, + bundlePath, + filename, + i18n: {} + })); + } else { + matchers.push(new _pagesroutematcher.PagesRouteMatcher({ + kind: _routekind.RouteKind.PAGES, + pathname, + page, + bundlePath, + filename + })); + } + } + return matchers; + } +} + +//# sourceMappingURL=dev-pages-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js new file mode 100644 index 00000000000..d8880a83c3d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/file-cache-route-matcher-provider.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "FileCacheRouteMatcherProvider", { + enumerable: true, + get: function() { + return FileCacheRouteMatcherProvider; + } +}); +const _cachedroutematcherprovider = require("../helpers/cached-route-matcher-provider"); +class FileCacheRouteMatcherProvider extends _cachedroutematcherprovider.CachedRouteMatcherProvider { + constructor(dir, reader){ + super({ + load: async ()=>reader.read(dir), + compare: (left, right)=>{ + if (left.length !== right.length) return false; + // Assuming the file traversal order is deterministic... + for(let i = 0; i < left.length; i++){ + if (left[i] !== right[i]) return false; + } + return true; + } + }); + } +} + +//# sourceMappingURL=file-cache-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js new file mode 100644 index 00000000000..dacb804eced --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/batched-file-reader.js @@ -0,0 +1,106 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "BatchedFileReader", { + enumerable: true, + get: function() { + return BatchedFileReader; + } +}); +class BatchedFileReader { + constructor(reader){ + this.reader = reader; + } + schedule(callback) { + if (!this.schedulePromise) { + this.schedulePromise = Promise.resolve(); + } + this.schedulePromise.then(()=>{ + process.nextTick(callback); + }); + } + getOrCreateBatch() { + // If there is an existing batch and it's not completed, then reuse it. + if (this.batch && !this.batch.completed) { + return this.batch; + } + const batch = { + completed: false, + directories: [], + callbacks: [] + }; + this.batch = batch; + this.schedule(async ()=>{ + batch.completed = true; + if (batch.directories.length === 0) return; + // Collect all the results for each of the directories. If any error + // occurs, send the results back to the loaders. + let values; + try { + values = await this.load(batch.directories); + } catch (err) { + // Reject all the callbacks. + for (const { reject } of batch.callbacks){ + reject(err); + } + return; + } + // Loop over all the callbacks and send them their results. + for(let i = 0; i < batch.callbacks.length; i++){ + const value = values[i]; + if (value instanceof Error) { + batch.callbacks[i].reject(value); + } else { + batch.callbacks[i].resolve(value); + } + } + }); + return batch; + } + async load(directories) { + // Make a unique array of directories. This is what lets us de-duplicate + // loads for the same directory. + const unique = [ + ...new Set(directories) + ]; + const results = await Promise.all(unique.map(async (directory)=>{ + let files; + let error; + try { + files = await this.reader.read(directory); + } catch (err) { + if (err instanceof Error) error = err; + } + return { + directory, + files, + error + }; + })); + return directories.map((directory)=>{ + const found = results.find((result)=>result.directory === directory); + if (!found) return []; + if (found.files) return found.files; + if (found.error) return found.error; + return []; + }); + } + async read(dir) { + // Get or create a new file reading batch. + const batch = this.getOrCreateBatch(); + // Push this directory into the batch to resolve. + batch.directories.push(dir); + // Push the promise handles into the batch (under the same index) so it can + // be resolved later when it's scheduled. + const promise = new Promise((resolve, reject)=>{ + batch.callbacks.push({ + resolve, + reject + }); + }); + return promise; + } +} + +//# sourceMappingURL=batched-file-reader.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js new file mode 100644 index 00000000000..23b0e6fd49f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/dev/helpers/file-reader/default-file-reader.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "DefaultFileReader", { + enumerable: true, + get: function() { + return DefaultFileReader; + } +}); +const _recursivereaddir = require("../../../../../lib/recursive-readdir"); +class DefaultFileReader { + /** + * Creates a new file reader. + * + * @param pathnameFilter filter to ignore files with absolute pathnames, false to ignore + * @param ignoreFilter filter to ignore files and directories with absolute pathnames, false to ignore + * @param ignorePartFilter filter to ignore files and directories with the pathname part, false to ignore + */ constructor(options){ + this.options = options; + } + /** + * Reads all the files in the directory and its subdirectories following any + * symbolic links. + * + * @param dir the directory to read + * @returns a promise that resolves to the list of files + */ async read(dir) { + return (0, _recursivereaddir.recursiveReadDir)(dir, { + pathnameFilter: this.options.pathnameFilter, + ignorePartFilter: this.options.ignorePartFilter, + // We don't need to sort the results because we're not depending on the + // order of the results. + sortPathnames: false, + // We want absolute pathnames because we're going to be comparing them + // with other absolute pathnames. + relativePathnames: false + }); + } +} + +//# sourceMappingURL=default-file-reader.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js new file mode 100644 index 00000000000..a80517f9164 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/cached-route-matcher-provider.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "CachedRouteMatcherProvider", { + enumerable: true, + get: function() { + return CachedRouteMatcherProvider; + } +}); +class CachedRouteMatcherProvider { + constructor(loader){ + this.loader = loader; + this.cached = []; + } + async matchers() { + const data = await this.loader.load(); + if (!data) return []; + // Return the cached matchers if the data has not changed. + if (this.data && this.loader.compare(this.data, data)) return this.cached; + this.data = data; + // Transform the manifest into matchers. + const matchers = await this.transform(data); + // Cache the matchers. + this.cached = matchers; + return matchers; + } +} + +//# sourceMappingURL=cached-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js new file mode 100644 index 00000000000..0ad25d0d7a2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/node-manifest-loader.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NodeManifestLoader", { + enumerable: true, + get: function() { + return NodeManifestLoader; + } +}); +const _constants = require("../../../../shared/lib/constants"); +const _path = /*#__PURE__*/ _interop_require_default(require("../../../../shared/lib/isomorphic/path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class NodeManifestLoader { + constructor(distDir){ + this.distDir = distDir; + } + static require(id) { + try { + return require(id); + } catch { + return null; + } + } + load(name) { + return NodeManifestLoader.require(_path.default.join(this.distDir, _constants.SERVER_DIRECTORY, name)); + } +} + +//# sourceMappingURL=node-manifest-loader.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js new file mode 100644 index 00000000000..b50fd001507 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/helpers/manifest-loaders/server-manifest-loader.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ServerManifestLoader", { + enumerable: true, + get: function() { + return ServerManifestLoader; + } +}); +class ServerManifestLoader { + constructor(getter){ + this.getter = getter; + } + load(name) { + return this.getter(name); + } +} + +//# sourceMappingURL=server-manifest-loader.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js new file mode 100644 index 00000000000..4c2cbe7b3f0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/manifest-route-matcher-provider.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ManifestRouteMatcherProvider", { + enumerable: true, + get: function() { + return ManifestRouteMatcherProvider; + } +}); +const _cachedroutematcherprovider = require("./helpers/cached-route-matcher-provider"); +class ManifestRouteMatcherProvider extends _cachedroutematcherprovider.CachedRouteMatcherProvider { + constructor(manifestName, manifestLoader){ + super({ + load: async ()=>manifestLoader.load(manifestName), + compare: (left, right)=>left === right + }); + } +} + +//# sourceMappingURL=manifest-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js new file mode 100644 index 00000000000..5ed5a835160 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/pages-api-route-matcher-provider.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PagesAPIRouteMatcherProvider", { + enumerable: true, + get: function() { + return PagesAPIRouteMatcherProvider; + } +}); +const _isapiroute = require("../../lib/is-api-route"); +const _constants = require("../../shared/lib/constants"); +const _routekind = require("../route-kind"); +const _pagesapiroutematcher = require("../route-matchers/pages-api-route-matcher"); +const _manifestroutematcherprovider = require("./manifest-route-matcher-provider"); +const _pages = require("../normalizers/built/pages"); +class PagesAPIRouteMatcherProvider extends _manifestroutematcherprovider.ManifestRouteMatcherProvider { + constructor(distDir, manifestLoader, i18nProvider){ + super(_constants.PAGES_MANIFEST, manifestLoader), this.i18nProvider = i18nProvider; + this.normalizers = new _pages.PagesNormalizers(distDir); + } + async transform(manifest) { + // This matcher is only for Pages API routes. + const pathnames = Object.keys(manifest).filter((pathname)=>(0, _isapiroute.isAPIRoute)(pathname)); + const matchers = []; + for (const page of pathnames){ + if (this.i18nProvider) { + // Match the locale on the page name, or default to the default locale. + const { detectedLocale, pathname } = this.i18nProvider.analyze(page); + matchers.push(new _pagesapiroutematcher.PagesAPILocaleRouteMatcher({ + kind: _routekind.RouteKind.PAGES_API, + pathname, + page, + bundlePath: this.normalizers.bundlePath.normalize(page), + filename: this.normalizers.filename.normalize(manifest[page]), + i18n: { + locale: detectedLocale + } + })); + } else { + matchers.push(new _pagesapiroutematcher.PagesAPIRouteMatcher({ + kind: _routekind.RouteKind.PAGES_API, + // In `pages/`, the page is the same as the pathname. + pathname: page, + page, + bundlePath: this.normalizers.bundlePath.normalize(page), + filename: this.normalizers.filename.normalize(manifest[page]) + })); + } + } + return matchers; + } +} + +//# sourceMappingURL=pages-api-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js b/cli/app/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js new file mode 100644 index 00000000000..11d7ded804a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matcher-providers/pages-route-matcher-provider.js @@ -0,0 +1,64 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PagesRouteMatcherProvider", { + enumerable: true, + get: function() { + return PagesRouteMatcherProvider; + } +}); +const _isapiroute = require("../../lib/is-api-route"); +const _constants = require("../../shared/lib/constants"); +const _routekind = require("../route-kind"); +const _pagesroutematcher = require("../route-matchers/pages-route-matcher"); +const _manifestroutematcherprovider = require("./manifest-route-matcher-provider"); +const _pages = require("../normalizers/built/pages"); +class PagesRouteMatcherProvider extends _manifestroutematcherprovider.ManifestRouteMatcherProvider { + constructor(distDir, manifestLoader, i18nProvider){ + super(_constants.PAGES_MANIFEST, manifestLoader), this.i18nProvider = i18nProvider; + this.normalizers = new _pages.PagesNormalizers(distDir); + } + async transform(manifest) { + // This matcher is only for Pages routes, not Pages API routes which are + // included in this manifest. + const pathnames = Object.keys(manifest).filter((pathname)=>!(0, _isapiroute.isAPIRoute)(pathname))// Remove any blocked pages (page that can't be routed to, like error or + // internal pages). + .filter((pathname)=>{ + var _this_i18nProvider; + const normalized = ((_this_i18nProvider = this.i18nProvider) == null ? void 0 : _this_i18nProvider.analyze(pathname).pathname) ?? pathname; + // Skip any blocked pages. + if (_constants.BLOCKED_PAGES.includes(normalized)) return false; + return true; + }); + const matchers = []; + for (const page of pathnames){ + if (this.i18nProvider) { + // Match the locale on the page name, or default to the default locale. + const { detectedLocale, pathname } = this.i18nProvider.analyze(page); + matchers.push(new _pagesroutematcher.PagesLocaleRouteMatcher({ + kind: _routekind.RouteKind.PAGES, + pathname, + page, + bundlePath: this.normalizers.bundlePath.normalize(page), + filename: this.normalizers.filename.normalize(manifest[page]), + i18n: { + locale: detectedLocale + } + })); + } else { + matchers.push(new _pagesroutematcher.PagesRouteMatcher({ + kind: _routekind.RouteKind.PAGES, + // In `pages/`, the page is the same as the pathname. + pathname: page, + page, + bundlePath: this.normalizers.bundlePath.normalize(page), + filename: this.normalizers.filename.normalize(manifest[page]) + })); + } + } + return matchers; + } +} + +//# sourceMappingURL=pages-route-matcher-provider.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js b/cli/app/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js new file mode 100644 index 00000000000..f96c9cc99a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matchers/app-page-route-matcher.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppPageRouteMatcher", { + enumerable: true, + get: function() { + return AppPageRouteMatcher; + } +}); +const _routematcher = require("./route-matcher"); +class AppPageRouteMatcher extends _routematcher.RouteMatcher { + get identity() { + return `${this.definition.pathname}?__nextPage=${this.definition.page}`; + } +} + +//# sourceMappingURL=app-page-route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js b/cli/app/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js new file mode 100644 index 00000000000..0b8bcfc12a3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matchers/app-route-route-matcher.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "AppRouteRouteMatcher", { + enumerable: true, + get: function() { + return AppRouteRouteMatcher; + } +}); +const _routematcher = require("./route-matcher"); +class AppRouteRouteMatcher extends _routematcher.RouteMatcher { +} + +//# sourceMappingURL=app-route-route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matchers/locale-route-matcher.js b/cli/app/node_modules/next/dist/server/route-matchers/locale-route-matcher.js new file mode 100644 index 00000000000..e847de59801 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matchers/locale-route-matcher.js @@ -0,0 +1,68 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "LocaleRouteMatcher", { + enumerable: true, + get: function() { + return LocaleRouteMatcher; + } +}); +const _routematcher = require("./route-matcher"); +class LocaleRouteMatcher extends _routematcher.RouteMatcher { + /** + * Identity returns the identity part of the matcher. This is used to compare + * a unique matcher to another. This is also used when sorting dynamic routes, + * so it must contain the pathname part as well. + */ get identity() { + var _this_definition_i18n; + return `${this.definition.pathname}?__nextLocale=${(_this_definition_i18n = this.definition.i18n) == null ? void 0 : _this_definition_i18n.locale}`; + } + /** + * Match will attempt to match the given pathname against this route while + * also taking into account the locale information. + * + * @param pathname The pathname to match against. + * @param options The options to use when matching. + * @returns The match result, or `null` if there was no match. + */ match(pathname, options) { + var // If the options have a detected locale, then use that, otherwise use + // the route's locale. + _options_i18n, _this_definition_i18n; + // This is like the parent `match` method but instead this injects the + // additional `options` into the + const result = this.test(pathname, options); + if (!result) return null; + return { + definition: this.definition, + params: result.params, + detectedLocale: (options == null ? void 0 : (_options_i18n = options.i18n) == null ? void 0 : _options_i18n.detectedLocale) ?? ((_this_definition_i18n = this.definition.i18n) == null ? void 0 : _this_definition_i18n.locale) + }; + } + /** + * Test will attempt to match the given pathname against this route while + * also taking into account the locale information. + * + * @param pathname The pathname to match against. + * @param options The options to use when matching. + * @returns The match result, or `null` if there was no match. + */ test(pathname, options) { + // If this route has locale information and we have detected a locale, then + // we need to compare the detected locale to the route's locale. + if (this.definition.i18n && (options == null ? void 0 : options.i18n)) { + // If we have detected a locale and it does not match this route's locale, + // then this isn't a match! + if (this.definition.i18n.locale && options.i18n.detectedLocale && this.definition.i18n.locale !== options.i18n.detectedLocale) { + return null; + } + // Perform regular matching against the locale stripped pathname now, the + // locale information matches! + return super.test(options.i18n.pathname); + } + // If we don't have locale information, then we can just perform regular + // matching. + return super.test(pathname); + } +} + +//# sourceMappingURL=locale-route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js b/cli/app/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js new file mode 100644 index 00000000000..fa05b8f1722 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matchers/pages-api-route-matcher.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PagesAPILocaleRouteMatcher: null, + PagesAPIRouteMatcher: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PagesAPILocaleRouteMatcher: function() { + return PagesAPILocaleRouteMatcher; + }, + PagesAPIRouteMatcher: function() { + return PagesAPIRouteMatcher; + } +}); +const _localeroutematcher = require("./locale-route-matcher"); +const _routematcher = require("./route-matcher"); +class PagesAPIRouteMatcher extends _routematcher.RouteMatcher { +} +class PagesAPILocaleRouteMatcher extends _localeroutematcher.LocaleRouteMatcher { +} + +//# sourceMappingURL=pages-api-route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matchers/pages-route-matcher.js b/cli/app/node_modules/next/dist/server/route-matchers/pages-route-matcher.js new file mode 100644 index 00000000000..e59a61def52 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matchers/pages-route-matcher.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PagesLocaleRouteMatcher: null, + PagesRouteMatcher: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PagesLocaleRouteMatcher: function() { + return PagesLocaleRouteMatcher; + }, + PagesRouteMatcher: function() { + return PagesRouteMatcher; + } +}); +const _localeroutematcher = require("./locale-route-matcher"); +const _routematcher = require("./route-matcher"); +class PagesRouteMatcher extends _routematcher.RouteMatcher { +} +class PagesLocaleRouteMatcher extends _localeroutematcher.LocaleRouteMatcher { +} + +//# sourceMappingURL=pages-route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matchers/route-matcher.js b/cli/app/node_modules/next/dist/server/route-matchers/route-matcher.js new file mode 100644 index 00000000000..479672854e3 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matchers/route-matcher.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "RouteMatcher", { + enumerable: true, + get: function() { + return RouteMatcher; + } +}); +const _utils = require("../../shared/lib/router/utils"); +const _routematcher = require("../../shared/lib/router/utils/route-matcher"); +const _routeregex = require("../../shared/lib/router/utils/route-regex"); +class RouteMatcher { + constructor(definition){ + this.definition = definition; + if ((0, _utils.isDynamicRoute)(definition.pathname)) { + this.dynamic = (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(definition.pathname)); + } + } + /** + * Identity returns the identity part of the matcher. This is used to compare + * a unique matcher to another. This is also used when sorting dynamic routes, + * so it must contain the pathname part. + */ get identity() { + return this.definition.pathname; + } + get isDynamic() { + return this.dynamic !== undefined; + } + match(pathname) { + const result = this.test(pathname); + if (!result) return null; + return { + definition: this.definition, + params: result.params + }; + } + test(pathname) { + if (this.dynamic) { + const params = this.dynamic(pathname); + if (!params) return null; + return { + params + }; + } + if (pathname === this.definition.pathname) { + return {}; + } + return null; + } +} + +//# sourceMappingURL=route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-matches/pages-api-route-match.js b/cli/app/node_modules/next/dist/server/route-matches/pages-api-route-match.js new file mode 100644 index 00000000000..6b10e3781bb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-matches/pages-api-route-match.js @@ -0,0 +1,16 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isPagesAPIRouteMatch", { + enumerable: true, + get: function() { + return isPagesAPIRouteMatch; + } +}); +const _routekind = require("../route-kind"); +function isPagesAPIRouteMatch(match) { + return match.definition.kind === _routekind.RouteKind.PAGES_API; +} + +//# sourceMappingURL=pages-api-route-match.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js new file mode 100644 index 00000000000..f0e7ffb5290 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/helpers/prerender-manifest-matcher.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrerenderManifestMatcher", { + enumerable: true, + get: function() { + return PrerenderManifestMatcher; + } +}); +const _routematcher = require("../../../../shared/lib/router/utils/route-matcher"); +const _routeregex = require("../../../../shared/lib/router/utils/route-regex"); +class PrerenderManifestMatcher { + constructor(pathname, prerenderManifest){ + this.matchers = Object.entries(prerenderManifest.dynamicRoutes).filter(([source, route])=>{ + // If the pathname is a fallback source route, or the source route is + // the same as the pathname, then we should include it in the matchers. + return route.fallbackSourceRoute === pathname || source === pathname; + }).map(([source, route])=>({ + source, + route + })); + } + /** + * Match the pathname to the dynamic route. If no match is found, an error is + * thrown. + * + * @param pathname - The pathname to match. + * @returns The dynamic route that matches the pathname. + */ match(pathname) { + // Iterate over the matchers. They're already in the correct order of + // specificity as they were inserted into the prerender manifest that way + // and iterating over them with Object.entries guarantees that. + for (const matcher of this.matchers){ + // Lazily create the matcher, this is only done once per matcher. + if (!matcher.matcher) { + matcher.matcher = (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(matcher.source)); + } + const match = matcher.matcher(pathname); + if (match) { + return { + source: matcher.source, + route: matcher.route + }; + } + } + return null; + } +} + +//# sourceMappingURL=prerender-manifest-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/module.compiled.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/module.compiled.js new file mode 100644 index 00000000000..c4a8ce75fbc --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/module.compiled.js @@ -0,0 +1,36 @@ +"use strict"; +if (process.env.NEXT_RUNTIME === 'edge') { + module.exports = require('next/dist/server/route-modules/app-page/module.js'); +} else { + if (process.env.__NEXT_EXPERIMENTAL_REACT) { + if (process.env.NODE_ENV === 'development') { + if (process.env.TURBOPACK) { + module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.dev.js'); + } else { + module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.dev.js'); + } + } else { + if (process.env.TURBOPACK) { + module.exports = require('next/dist/compiled/next-server/app-page-turbo-experimental.runtime.prod.js'); + } else { + module.exports = require('next/dist/compiled/next-server/app-page-experimental.runtime.prod.js'); + } + } + } else { + if (process.env.NODE_ENV === 'development') { + if (process.env.TURBOPACK) { + module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.dev.js'); + } else { + module.exports = require('next/dist/compiled/next-server/app-page.runtime.dev.js'); + } + } else { + if (process.env.TURBOPACK) { + module.exports = require('next/dist/compiled/next-server/app-page-turbo.runtime.prod.js'); + } else { + module.exports = require('next/dist/compiled/next-server/app-page.runtime.prod.js'); + } + } + } +} + +//# sourceMappingURL=module.compiled.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/module.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/module.js new file mode 100644 index 00000000000..a9726d6f16d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/module.js @@ -0,0 +1,162 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppPageRouteModule: null, + default: null, + renderToHTMLOrFlight: null, + vendored: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppPageRouteModule: function() { + return AppPageRouteModule; + }, + default: function() { + return _default; + }, + renderToHTMLOrFlight: function() { + return _apprender.renderToHTMLOrFlight; + }, + vendored: function() { + return vendored; + } +}); +const _requestmeta = require("../../request-meta"); +const _apprender = require("../../app-render/app-render"); +const _routemodule = require("../route-module"); +const _entrypoints = /*#__PURE__*/ _interop_require_wildcard(require("./vendored/contexts/entrypoints")); +const _prerendermanifestmatcher = require("./helpers/prerender-manifest-matcher"); +const _approuterheaders = require("../../../client/components/app-router-headers"); +const _interceptionroutes = require("../../../shared/lib/router/utils/interception-routes"); +const _rsc = require("../../normalizers/request/rsc"); +const _segmentprefixrsc = require("../../normalizers/request/segment-prefix-rsc"); +const _normalizerequesturl = require("./normalize-request-url"); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +let vendoredReactRSC; +let vendoredReactSSR; +// the vendored Reacts are loaded from their original source in the edge runtime +if (process.env.NEXT_RUNTIME !== 'edge') { + vendoredReactRSC = require('./vendored/rsc/entrypoints'); + vendoredReactSSR = require('./vendored/ssr/entrypoints'); + // In Node environments we need to access the correct React instance from external modules such + // as global patches. We register the loaded React instances here. + const { registerServerReact, registerClientReact } = require('../../runtime-reacts.external'); + registerServerReact(vendoredReactRSC.React); + registerClientReact(vendoredReactSSR.React); +} +class AppPageRouteModule extends _routemodule.RouteModule { + match(pathname, prerenderManifest) { + // Lazily create the matcher based on the provided prerender manifest. + let matcher = this.matchers.get(prerenderManifest); + if (!matcher) { + matcher = new _prerendermanifestmatcher.PrerenderManifestMatcher(this.definition.pathname, prerenderManifest); + this.matchers.set(prerenderManifest, matcher); + } + // Match the pathname to the dynamic route. + return matcher.match(pathname); + } + normalizeUrl(req, parsedUrl) { + if (this.normalizers.segmentPrefetchRSC.match(parsedUrl.pathname || '/')) { + const result = this.normalizers.segmentPrefetchRSC.extract(parsedUrl.pathname || '/'); + if (!result) return false; + const { originalPathname, segmentPath } = result; + parsedUrl.pathname = originalPathname; + // Mark the request as a router prefetch request. + req.headers[_approuterheaders.RSC_HEADER] = '1'; + req.headers[_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER] = '1'; + req.headers[_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER] = segmentPath; + (0, _requestmeta.addRequestMeta)(req, 'isRSCRequest', true); + (0, _requestmeta.addRequestMeta)(req, 'isPrefetchRSCRequest', true); + (0, _requestmeta.addRequestMeta)(req, 'segmentPrefetchRSCRequest', segmentPath); + } else if (this.normalizers.rsc.match(parsedUrl.pathname || '/')) { + parsedUrl.pathname = this.normalizers.rsc.normalize(parsedUrl.pathname || '/', true); + // Mark the request as a RSC request. + req.headers[_approuterheaders.RSC_HEADER] = '1'; + (0, _requestmeta.addRequestMeta)(req, 'isRSCRequest', true); + } else { + super.normalizeUrl(req, parsedUrl); + } + (0, _normalizerequesturl.normalizeAppPageRequestUrl)(req, parsedUrl.pathname || '/'); + } + render(req, res, context) { + return (0, _apprender.renderToHTMLOrFlight)(req, res, context.page, context.query, context.fallbackRouteParams, context.renderOpts, context.serverComponentsHmrCache, context.sharedContext); + } + pathCouldBeIntercepted(resolvedPathname, interceptionRoutePatterns) { + return (0, _interceptionroutes.isInterceptionRouteAppPath)(resolvedPathname) || interceptionRoutePatterns.some((regexp)=>{ + return regexp.test(resolvedPathname); + }); + } + getVaryHeader(resolvedPathname, interceptionRoutePatterns) { + const baseVaryHeader = `${_approuterheaders.RSC_HEADER}, ${_approuterheaders.NEXT_ROUTER_STATE_TREE_HEADER}, ${_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER}, ${_approuterheaders.NEXT_ROUTER_SEGMENT_PREFETCH_HEADER}`; + if (this.pathCouldBeIntercepted(resolvedPathname, interceptionRoutePatterns)) { + // Interception route responses can vary based on the `Next-URL` header. + // We use the Vary header to signal this behavior to the client to properly cache the response. + return `${baseVaryHeader}, ${_approuterheaders.NEXT_URL}`; + } else { + // We don't need to include `Next-URL` in the Vary header for non-interception routes since it won't affect the response. + // We also set this header for pages to avoid caching issues when navigating between pages and app. + return baseVaryHeader; + } + } + constructor(...args){ + super(...args), this.matchers = new WeakMap(), this.normalizers = { + rsc: new _rsc.RSCPathnameNormalizer(), + segmentPrefetchRSC: new _segmentprefixrsc.SegmentPrefixRSCPathnameNormalizer() + }; + } +} +const vendored = { + 'react-rsc': vendoredReactRSC, + 'react-ssr': vendoredReactSSR, + contexts: _entrypoints +}; +const _default = AppPageRouteModule; + +//# sourceMappingURL=module.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/module.render.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/module.render.js new file mode 100644 index 00000000000..23da6be8133 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/module.render.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "lazyRenderAppPage", { + enumerable: true, + get: function() { + return lazyRenderAppPage; + } +}); +const lazyRenderAppPage = (...args)=>{ + if (process.env.NEXT_MINIMAL) { + throw Object.defineProperty(new Error("Can't use lazyRenderAppPage in minimal mode"), "__NEXT_ERROR_CODE", { + value: "E256", + enumerable: false, + configurable: true + }); + } else { + const render = require('./module.compiled').renderToHTMLOrFlight; + return render(...args); + } +}; + +//# sourceMappingURL=module.render.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js new file mode 100644 index 00000000000..b11583afc4f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/normalize-request-url.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizeAppPageRequestUrl", { + enumerable: true, + get: function() { + return normalizeAppPageRequestUrl; + } +}); +const _url = require("../../../lib/url"); +const _formaturl = require("../../../shared/lib/router/utils/format-url"); +function normalizeAppPageRequestUrl(req, pathname) { + if (!req.url) { + return; + } + const normalizedUrl = (0, _url.parseReqUrl)(req.url); + if (!normalizedUrl) { + return; + } + normalizedUrl.pathname = pathname; + req.url = (0, _formaturl.formatUrl)(normalizedUrl); +} + +//# sourceMappingURL=normalize-request-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js new file mode 100644 index 00000000000..74fa6622e2a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/app-router-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].AppRouterContext; + +//# sourceMappingURL=app-router-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js new file mode 100644 index 00000000000..7e21cb42f80 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/entrypoints.js @@ -0,0 +1,87 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppRouterContext: null, + HeadManagerContext: null, + HooksClientContext: null, + ImageConfigContext: null, + RouterContext: null, + ServerInsertedHtml: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppRouterContext: function() { + return _approutercontextsharedruntime; + }, + HeadManagerContext: function() { + return _headmanagercontextsharedruntime; + }, + HooksClientContext: function() { + return _hooksclientcontextsharedruntime; + }, + ImageConfigContext: function() { + return _imageconfigcontextsharedruntime; + }, + RouterContext: function() { + return _routercontextsharedruntime; + }, + ServerInsertedHtml: function() { + return _serverinsertedhtmlsharedruntime; + } +}); +const _headmanagercontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/head-manager-context.shared-runtime")); +const _serverinsertedhtmlsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/server-inserted-html.shared-runtime")); +const _approutercontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/app-router-context.shared-runtime")); +const _hooksclientcontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/hooks-client-context.shared-runtime")); +const _routercontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/router-context.shared-runtime")); +const _imageconfigcontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/image-config-context.shared-runtime")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} + +//# sourceMappingURL=entrypoints.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js new file mode 100644 index 00000000000..161d1246033 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/head-manager-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].HeadManagerContext; + +//# sourceMappingURL=head-manager-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js new file mode 100644 index 00000000000..8a86415fa56 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/hooks-client-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].HooksClientContext; + +//# sourceMappingURL=hooks-client-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js new file mode 100644 index 00000000000..53255f9b8b0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].ImageConfigContext; + +//# sourceMappingURL=image-config-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js new file mode 100644 index 00000000000..424b2ce70b1 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].RouterContext; + +//# sourceMappingURL=router-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js new file mode 100644 index 00000000000..ebbbd2d6344 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].ServerInsertedHtml; + +//# sourceMappingURL=server-inserted-html.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js new file mode 100644 index 00000000000..a87b4198588 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/rsc/entrypoints.js @@ -0,0 +1,140 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + React: null, + ReactCompilerRuntime: null, + ReactDOM: null, + ReactJsxDevRuntime: null, + ReactJsxRuntime: null, + ReactServerDOMTurbopackServer: null, + ReactServerDOMTurbopackStatic: null, + ReactServerDOMWebpackServer: null, + ReactServerDOMWebpackStatic: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + React: function() { + return _react; + }, + ReactCompilerRuntime: function() { + return _compilerruntime; + }, + ReactDOM: function() { + return _reactdom; + }, + ReactJsxDevRuntime: function() { + return _jsxdevruntime; + }, + ReactJsxRuntime: function() { + return _jsxruntime; + }, + ReactServerDOMTurbopackServer: function() { + return ReactServerDOMTurbopackServer; + }, + ReactServerDOMTurbopackStatic: function() { + return ReactServerDOMTurbopackStatic; + }, + ReactServerDOMWebpackServer: function() { + return ReactServerDOMWebpackServer; + }, + ReactServerDOMWebpackStatic: function() { + return ReactServerDOMWebpackStatic; + } +}); +const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); +const _reactdom = /*#__PURE__*/ _interop_require_wildcard(require("react-dom")); +const _jsxdevruntime = /*#__PURE__*/ _interop_require_wildcard(require("react/jsx-dev-runtime")); +const _jsxruntime = /*#__PURE__*/ _interop_require_wildcard(require("react/jsx-runtime")); +const _compilerruntime = /*#__PURE__*/ _interop_require_wildcard(require("react/compiler-runtime")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function getAltProxyForBindingsDEV(type, pkg) { + if (process.env.NODE_ENV === 'development') { + const altType = type === 'Turbopack' ? 'Webpack' : 'Turbopack'; + const altPkg = pkg.replace(new RegExp(type, 'gi'), altType.toLowerCase()); + return new Proxy({}, { + get (_, prop) { + throw Object.defineProperty(new Error(`Expected to use ${type} bindings (${pkg}) for React but the current process is referencing '${prop}' from the ${altType} bindings (${altPkg}). This is likely a bug in our integration of the Next.js server runtime.`), "__NEXT_ERROR_CODE", { + value: "E253", + enumerable: false, + configurable: true + }); + } + }); + } +} +let ReactServerDOMTurbopackServer, ReactServerDOMWebpackServer; +let ReactServerDOMTurbopackStatic, ReactServerDOMWebpackStatic; +if (process.env.TURBOPACK) { + ReactServerDOMTurbopackServer = // @ts-expect-error -- TODO: Add types + // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-turbopack/server'); + if (process.env.NODE_ENV === 'development') { + ReactServerDOMWebpackServer = getAltProxyForBindingsDEV('Turbopack', 'react-server-dom-turbopack/server'); + } + ReactServerDOMTurbopackStatic = // @ts-expect-error -- TODO: Add types + // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-turbopack/static'); + if (process.env.NODE_ENV === 'development') { + ReactServerDOMWebpackStatic = getAltProxyForBindingsDEV('Turbopack', 'react-server-dom-turbopack/static'); + } +} else { + ReactServerDOMWebpackServer = // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-webpack/server'); + if (process.env.NODE_ENV === 'development') { + ReactServerDOMTurbopackServer = getAltProxyForBindingsDEV('Webpack', 'react-server-dom-webpack/server'); + } + ReactServerDOMWebpackStatic = // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-webpack/static'); + if (process.env.NODE_ENV === 'development') { + ReactServerDOMTurbopackStatic = getAltProxyForBindingsDEV('Webpack', 'react-server-dom-webpack/static'); + } +} + +//# sourceMappingURL=entrypoints.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js new file mode 100644 index 00000000000..72cf71e5053 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/app-page/vendored/ssr/entrypoints.js @@ -0,0 +1,125 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + React: null, + ReactCompilerRuntime: null, + ReactDOM: null, + ReactDOMServer: null, + ReactJsxDevRuntime: null, + ReactJsxRuntime: null, + ReactServerDOMTurbopackClient: null, + ReactServerDOMWebpackClient: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + React: function() { + return _react; + }, + ReactCompilerRuntime: function() { + return _compilerruntime; + }, + ReactDOM: function() { + return _reactdom; + }, + ReactDOMServer: function() { + return _server; + }, + ReactJsxDevRuntime: function() { + return _jsxdevruntime; + }, + ReactJsxRuntime: function() { + return _jsxruntime; + }, + ReactServerDOMTurbopackClient: function() { + return ReactServerDOMTurbopackClient; + }, + ReactServerDOMWebpackClient: function() { + return ReactServerDOMWebpackClient; + } +}); +const _react = /*#__PURE__*/ _interop_require_wildcard(require("react")); +const _reactdom = /*#__PURE__*/ _interop_require_wildcard(require("react-dom")); +const _jsxdevruntime = /*#__PURE__*/ _interop_require_wildcard(require("react/jsx-dev-runtime")); +const _jsxruntime = /*#__PURE__*/ _interop_require_wildcard(require("react/jsx-runtime")); +const _compilerruntime = /*#__PURE__*/ _interop_require_wildcard(require("react/compiler-runtime")); +const _server = /*#__PURE__*/ _interop_require_wildcard(require("react-dom/server")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +function getAltProxyForBindingsDEV(type, pkg) { + if (process.env.NODE_ENV === 'development') { + const altType = type === 'Turbopack' ? 'Webpack' : 'Turbopack'; + const altPkg = pkg.replace(new RegExp(type, 'gi'), altType.toLowerCase()); + return new Proxy({}, { + get (_, prop) { + throw Object.defineProperty(new Error(`Expected to use ${type} bindings (${pkg}) for React but the current process is referencing '${prop}' from the ${altType} bindings (${altPkg}). This is likely a bug in our integration of the Next.js server runtime.`), "__NEXT_ERROR_CODE", { + value: "E253", + enumerable: false, + configurable: true + }); + } + }); + } +} +let ReactServerDOMTurbopackClient, ReactServerDOMWebpackClient; +if (process.env.TURBOPACK) { + ReactServerDOMTurbopackClient = // @ts-expect-error -- TODO: Add types + // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-turbopack/client'); + if (process.env.NODE_ENV === 'development') { + ReactServerDOMWebpackClient = getAltProxyForBindingsDEV('Turbopack', 'react-server-dom-turbopack/client'); + } +} else { + ReactServerDOMWebpackClient = // eslint-disable-next-line import/no-extraneous-dependencies + require('react-server-dom-webpack/client'); + if (process.env.NODE_ENV === 'development') { + ReactServerDOMTurbopackClient = getAltProxyForBindingsDEV('Webpack', 'react-server-dom-webpack/client'); + } +} + +//# sourceMappingURL=entrypoints.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/checks.js b/cli/app/node_modules/next/dist/server/route-modules/checks.js new file mode 100644 index 00000000000..cf72acec9b6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/checks.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isAppPageRouteModule: null, + isAppRouteRouteModule: null, + isPagesAPIRouteModule: null, + isPagesRouteModule: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isAppPageRouteModule: function() { + return isAppPageRouteModule; + }, + isAppRouteRouteModule: function() { + return isAppRouteRouteModule; + }, + isPagesAPIRouteModule: function() { + return isPagesAPIRouteModule; + }, + isPagesRouteModule: function() { + return isPagesRouteModule; + } +}); +const _routekind = require("../route-kind"); +function isAppRouteRouteModule(routeModule) { + return routeModule.definition.kind === _routekind.RouteKind.APP_ROUTE; +} +function isAppPageRouteModule(routeModule) { + return routeModule.definition.kind === _routekind.RouteKind.APP_PAGE; +} +function isPagesRouteModule(routeModule) { + return routeModule.definition.kind === _routekind.RouteKind.PAGES; +} +function isPagesAPIRouteModule(routeModule) { + return routeModule.definition.kind === _routekind.RouteKind.PAGES_API; +} + +//# sourceMappingURL=checks.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/builtin/_error.js b/cli/app/node_modules/next/dist/server/route-modules/pages/builtin/_error.js new file mode 100644 index 00000000000..b2d0dcb22fe --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/builtin/_error.js @@ -0,0 +1,100 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + handler: null, + routeModule: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + handler: function() { + return handler; + }, + routeModule: function() { + return routeModule; + } +}); +const _app = /*#__PURE__*/ _interop_require_default(require("../../../../pages/_app")); +const _document = /*#__PURE__*/ _interop_require_default(require("../../../../pages/_document")); +const _routekind = require("../../../route-kind"); +const _error = /*#__PURE__*/ _interop_require_wildcard(require("../../../../pages/_error")); +const _module = /*#__PURE__*/ _interop_require_default(require("../module")); +const _pageshandler = require("../pages-handler"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +const routeModule = new _module.default({ + // TODO: add descriptor for internal error page + definition: { + kind: _routekind.RouteKind.PAGES, + page: '/_error', + pathname: '/_error', + filename: '', + bundlePath: '' + }, + distDir: process.env.__NEXT_RELATIVE_DIST_DIR || '', + relativeProjectDir: process.env.__NEXT_RELATIVE_PROJECT_DIR || '', + components: { + App: _app.default, + Document: _document.default + }, + userland: _error +}); +const handler = (0, _pageshandler.getHandler)({ + srcPage: '/_error', + routeModule, + userland: _error, + config: {}, + isFallbackError: true +}); + +//# sourceMappingURL=_error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/module.compiled.js b/cli/app/node_modules/next/dist/server/route-modules/pages/module.compiled.js new file mode 100644 index 00000000000..351c248ad8f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/module.compiled.js @@ -0,0 +1,20 @@ +"use strict"; +if (process.env.NEXT_RUNTIME === 'edge') { + module.exports = require('next/dist/server/route-modules/pages/module.js'); +} else { + if (process.env.NODE_ENV === 'development') { + if (process.env.TURBOPACK) { + module.exports = require('next/dist/compiled/next-server/pages-turbo.runtime.dev.js'); + } else { + module.exports = require('next/dist/compiled/next-server/pages.runtime.dev.js'); + } + } else { + if (process.env.TURBOPACK) { + module.exports = require('next/dist/compiled/next-server/pages-turbo.runtime.prod.js'); + } else { + module.exports = require('next/dist/compiled/next-server/pages.runtime.prod.js'); + } + } +} + +//# sourceMappingURL=module.compiled.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/module.js b/cli/app/node_modules/next/dist/server/route-modules/pages/module.js new file mode 100644 index 00000000000..08da35305e0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/module.js @@ -0,0 +1,92 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PagesRouteModule: null, + default: null, + renderToHTML: null, + vendored: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PagesRouteModule: function() { + return PagesRouteModule; + }, + default: function() { + return _default; + }, + renderToHTML: function() { + return _render.renderToHTML; + }, + vendored: function() { + return vendored; + } +}); +const _routemodule = require("../route-module"); +const _render = require("../../render"); +const _entrypoints = /*#__PURE__*/ _interop_require_wildcard(require("./vendored/contexts/entrypoints")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +class PagesRouteModule extends _routemodule.RouteModule { + constructor(options){ + super(options); + this.components = options.components; + } + render(req, res, context) { + return (0, _render.renderToHTMLImpl)(req, res, context.page, context.query, context.renderOpts, { + App: this.components.App, + Document: this.components.Document + }, context.sharedContext, context.renderContext); + } +} +const vendored = { + contexts: _entrypoints +}; +const _default = PagesRouteModule; + +//# sourceMappingURL=module.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/module.render.js b/cli/app/node_modules/next/dist/server/route-modules/pages/module.render.js new file mode 100644 index 00000000000..360551f8a09 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/module.render.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "lazyRenderPagesPage", { + enumerable: true, + get: function() { + return lazyRenderPagesPage; + } +}); +const lazyRenderPagesPage = (...args)=>{ + if (process.env.NEXT_MINIMAL) { + throw Object.defineProperty(new Error("Can't use lazyRenderPagesPage in minimal mode"), "__NEXT_ERROR_CODE", { + value: "E272", + enumerable: false, + configurable: true + }); + } else { + const render = require('./module.compiled').renderToHTML; + return render(...args); + } +}; + +//# sourceMappingURL=module.render.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/pages-handler.js b/cli/app/node_modules/next/dist/server/route-modules/pages/pages-handler.js new file mode 100644 index 00000000000..5770ce0652c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/pages-handler.js @@ -0,0 +1,545 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getHandler", { + enumerable: true, + get: function() { + return getHandler; + } +}); +const _routekind = require("../../route-kind"); +const _constants = require("../../lib/trace/constants"); +const _tracer = require("../../lib/trace/tracer"); +const _formaturl = require("../../../shared/lib/router/utils/format-url"); +const _requestmeta = require("../../request-meta"); +const _interopdefault = require("../../app-render/interop-default"); +const _utils = require("../../instrumentation/utils"); +const _normalizedatapath = require("../../../shared/lib/page-path/normalize-data-path"); +const _responsecache = require("../../response-cache"); +const _cachecontrol = require("../../lib/cache-control"); +const _utils1 = require("../../../shared/lib/utils"); +const _redirectstatus = require("../../../lib/redirect-status"); +const _constants1 = require("../../../lib/constants"); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _sendpayload = require("../../send-payload"); +const _renderresult = /*#__PURE__*/ _interop_require_default(require("../../render-result")); +const _utils2 = require("../../response-cache/utils"); +const _nofallbackerrorexternal = require("../../../shared/lib/no-fallback-error.external"); +const _redirectstatuscode = require("../../../client/components/redirect-status-code"); +const _isbot = require("../../../shared/lib/router/utils/is-bot"); +const _addpathprefix = require("../../../shared/lib/router/utils/add-path-prefix"); +const _removetrailingslash = require("../../../shared/lib/router/utils/remove-trailing-slash"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const getHandler = ({ srcPage: originalSrcPage, config, userland, routeModule, isFallbackError, getStaticPaths, getStaticProps, getServerSideProps })=>{ + return async function handler(req, res, ctx) { + var _serverFilesManifest_config_experimental, _serverFilesManifest_config; + if (ctx.requestMeta) { + (0, _requestmeta.setRequestMeta)(req, ctx.requestMeta); + } + if (routeModule.isDev) { + (0, _requestmeta.addRequestMeta)(req, 'devRequestTimingInternalsEnd', process.hrtime.bigint()); + } + let srcPage = originalSrcPage; + // turbopack doesn't normalize `/index` in the page name + // so we need to to process dynamic routes properly + // TODO: fix turbopack providing differing value from webpack + if (process.env.TURBOPACK) { + srcPage = srcPage.replace(/\/index$/, '') || '/'; + } else if (srcPage === '/index') { + // we always normalize /index specifically + srcPage = '/'; + } + const multiZoneDraftMode = process.env.__NEXT_MULTI_ZONE_DRAFT_MODE; + const prepareResult = await routeModule.prepare(req, res, { + srcPage, + multiZoneDraftMode + }); + if (!prepareResult) { + res.statusCode = 400; + res.end('Bad Request'); + ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve()); + return; + } + const isMinimalMode = Boolean((0, _requestmeta.getRequestMeta)(req, 'minimalMode')); + const render404 = async ()=>{ + // TODO: should route-module itself handle rendering the 404 + if (routerServerContext == null ? void 0 : routerServerContext.render404) { + await routerServerContext.render404(req, res, parsedUrl, false); + } else { + res.end('This page could not be found'); + } + }; + const { buildId, query, params, parsedUrl, originalQuery, originalPathname, buildManifest, fallbackBuildManifest, nextFontManifest, serverFilesManifest, reactLoadableManifest, prerenderManifest, isDraftMode, isOnDemandRevalidate, revalidateOnlyGenerated, locale, locales, defaultLocale, routerServerContext, nextConfig, resolvedPathname, encodedResolvedPathname, deploymentId, clientAssetToken } = prepareResult; + const isExperimentalCompile = serverFilesManifest == null ? void 0 : (_serverFilesManifest_config = serverFilesManifest.config) == null ? void 0 : (_serverFilesManifest_config_experimental = _serverFilesManifest_config.experimental) == null ? void 0 : _serverFilesManifest_config_experimental.isExperimentalCompile; + const hasServerProps = Boolean(getServerSideProps); + const hasStaticProps = Boolean(getStaticProps); + const hasStaticPaths = Boolean(getStaticPaths); + const hasGetInitialProps = Boolean((userland.default || userland).getInitialProps); + let cacheKey = null; + let isIsrFallback = false; + let isNextDataRequest = prepareResult.isNextDataRequest && (hasStaticProps || hasServerProps); + const is404Page = srcPage === '/404'; + const is500Page = srcPage === '/500'; + const isErrorPage = srcPage === '/_error'; + if (!routeModule.isDev && !isDraftMode && hasStaticProps) { + cacheKey = `${locale ? `/${locale}` : ''}${(srcPage === '/' || resolvedPathname === '/') && locale ? '' : resolvedPathname}`; + if (is404Page || is500Page || isErrorPage) { + cacheKey = `${locale ? `/${locale}` : ''}${srcPage}`; + } + // ensure /index and / is normalized to one key + cacheKey = cacheKey === '/index' ? '/' : cacheKey; + } + if (hasStaticPaths && !isDraftMode) { + const decodedPathname = (0, _removetrailingslash.removeTrailingSlash)(locale ? (0, _addpathprefix.addPathPrefix)(resolvedPathname, `/${locale}`) : resolvedPathname); + const isPrerendered = Boolean(prerenderManifest.routes[decodedPathname]) || prerenderManifest.notFoundRoutes.includes(decodedPathname); + const prerenderInfo = prerenderManifest.dynamicRoutes[srcPage]; + if (prerenderInfo) { + if (prerenderInfo.fallback === false && !isPrerendered) { + if (nextConfig.adapterPath) { + return await render404(); + } + throw new _nofallbackerrorexternal.NoFallbackError(); + } + if (typeof prerenderInfo.fallback === 'string' && !isPrerendered && !isNextDataRequest) { + isIsrFallback = true; + } + } + } + // When serving a bot request, we want to serve a blocking render and not + // the prerendered page. This ensures that the correct content is served + // to the bot in the head. + if (isIsrFallback && (0, _isbot.isBot)(req.headers['user-agent'] || '') || isMinimalMode) { + isIsrFallback = false; + } + const tracer = (0, _tracer.getTracer)(); + const activeSpan = tracer.getActiveScopeSpan(); + try { + var _parsedUrl_pathname; + const method = req.method || 'GET'; + const resolvedUrl = (0, _formaturl.formatUrl)({ + pathname: nextConfig.trailingSlash ? `${encodedResolvedPathname}${!encodedResolvedPathname.endsWith('/') && ((_parsedUrl_pathname = parsedUrl.pathname) == null ? void 0 : _parsedUrl_pathname.endsWith('/')) ? '/' : ''}` : (0, _removetrailingslash.removeTrailingSlash)(encodedResolvedPathname || '/'), + // make sure to only add query values from original URL + query: hasStaticProps ? {} : originalQuery + }); + let parentSpan; + const handleResponse = async (span)=>{ + const responseGenerator = async ({ previousCacheEntry })=>{ + var _previousCacheEntry_value; + const doRender = async ()=>{ + try { + var _nextConfig_i18n; + return await routeModule.render(req, res, { + query: hasStaticProps && !isExperimentalCompile ? { + ...params + } : { + ...query, + ...params + }, + params, + page: srcPage, + renderContext: { + isDraftMode, + isFallback: isIsrFallback, + developmentNotFoundSourcePage: (0, _requestmeta.getRequestMeta)(req, 'developmentNotFoundSourcePage') + }, + sharedContext: { + buildId, + customServer: Boolean(routerServerContext == null ? void 0 : routerServerContext.isCustomServer) || undefined, + deploymentId, + clientAssetToken + }, + renderOpts: { + params, + routeModule, + page: srcPage, + pageConfig: config || {}, + Component: (0, _interopdefault.interopDefault)(userland), + ComponentMod: userland, + getStaticProps, + getStaticPaths, + getServerSideProps, + supportsDynamicResponse: !hasStaticProps, + buildManifest: isFallbackError ? fallbackBuildManifest : buildManifest, + nextFontManifest, + reactLoadableManifest, + assetPrefix: nextConfig.assetPrefix, + previewProps: prerenderManifest.preview, + images: nextConfig.images, + nextConfigOutput: nextConfig.output, + optimizeCss: Boolean(nextConfig.experimental.optimizeCss), + nextScriptWorkers: Boolean(nextConfig.experimental.nextScriptWorkers), + domainLocales: (_nextConfig_i18n = nextConfig.i18n) == null ? void 0 : _nextConfig_i18n.domains, + crossOrigin: nextConfig.crossOrigin, + multiZoneDraftMode, + basePath: nextConfig.basePath, + disableOptimizedLoading: nextConfig.experimental.disableOptimizedLoading, + largePageDataBytes: nextConfig.experimental.largePageDataBytes, + isExperimentalCompile, + experimental: { + clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || [] + }, + locale, + locales, + defaultLocale, + setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus, + isNextDataRequest: isNextDataRequest && (hasServerProps || hasStaticProps), + resolvedUrl, + // For getServerSideProps and getInitialProps we need to ensure we use the original URL + // and not the resolved URL to prevent a hydration mismatch on + // asPath + resolvedAsPath: hasServerProps || hasGetInitialProps ? (0, _formaturl.formatUrl)({ + // we use the original URL pathname less the _next/data prefix if + // present + pathname: isNextDataRequest ? (0, _normalizedatapath.normalizeDataPath)(originalPathname) : originalPathname, + query: originalQuery + }) : resolvedUrl, + isOnDemandRevalidate, + ErrorDebug: (0, _requestmeta.getRequestMeta)(req, 'PagesErrorDebug'), + err: (0, _requestmeta.getRequestMeta)(req, 'invokeError'), + // needed for experimental.optimizeCss feature + distDir: _path.default.join(/* turbopackIgnore: true */ process.cwd(), routeModule.relativeProjectDir, routeModule.distDir) + } + }).then((renderResult)=>{ + const { metadata } = renderResult; + let cacheControl = metadata.cacheControl; + if ('isNotFound' in metadata && metadata.isNotFound) { + return { + value: null, + cacheControl + }; + } + // Handle `isRedirect`. + if (metadata.isRedirect) { + return { + value: { + kind: _responsecache.CachedRouteKind.REDIRECT, + props: metadata.pageData ?? metadata.flightData + }, + cacheControl + }; + } + return { + value: { + kind: _responsecache.CachedRouteKind.PAGES, + html: renderResult, + pageData: renderResult.metadata.pageData, + headers: renderResult.metadata.headers, + status: renderResult.metadata.statusCode + }, + cacheControl + }; + }).finally(()=>{ + if (!span) return; + span.setAttributes({ + 'http.status_code': res.statusCode, + 'next.rsc': false + }); + const rootSpanAttributes = tracer.getRootSpanAttributes(); + // We were unable to get attributes, probably OTEL is not enabled + if (!rootSpanAttributes) { + return; + } + if (rootSpanAttributes.get('next.span_type') !== _constants.BaseServerSpan.handleRequest) { + console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`); + return; + } + const route = rootSpanAttributes.get('next.route'); + if (route) { + const name = `${method} ${route}`; + span.setAttributes({ + 'next.route': route, + 'http.route': route, + 'next.span_name': name + }); + span.updateName(name); + // Propagate http.route to the parent span if one exists + // (e.g. a platform-created HTTP span in adapter + // deployments). + if (parentSpan && parentSpan !== span) { + parentSpan.setAttribute('http.route', route); + parentSpan.updateName(name); + } + } else { + span.updateName(`${method} ${srcPage}`); + } + }); + } catch (err) { + // if this is a background revalidate we need to report + // the request error here as it won't be bubbled + if (previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) { + const silenceLog = false; + await routeModule.onRequestError(req, err, { + routerKind: 'Pages Router', + routePath: srcPage, + routeType: 'render', + revalidateReason: (0, _utils.getRevalidateReason)({ + isStaticGeneration: hasStaticProps, + isOnDemandRevalidate + }) + }, silenceLog, routerServerContext); + } + throw err; + } + }; + // if we've already generated this page we no longer + // serve the fallback + if (previousCacheEntry) { + isIsrFallback = false; + } + if (isIsrFallback) { + const fallbackResponse = await routeModule.getResponseCache(req).get(routeModule.isDev ? null : locale ? `/${locale}${srcPage}` : srcPage, async ({ previousCacheEntry: previousFallbackCacheEntry = null })=>{ + if (!routeModule.isDev) { + return (0, _utils2.toResponseCacheEntry)(previousFallbackCacheEntry); + } + return doRender(); + }, { + routeKind: _routekind.RouteKind.PAGES, + isFallback: true, + isRoutePPREnabled: false, + isOnDemandRevalidate: false, + incrementalCache: await routeModule.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode), + waitUntil: ctx.waitUntil + }); + if (fallbackResponse) { + // Remove the cache control from the response to prevent it from being + // used in the surrounding cache. + delete fallbackResponse.cacheControl; + fallbackResponse.isMiss = true; + return fallbackResponse; + } + } + if (!isMinimalMode && isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry) { + res.statusCode = 404; + // on-demand revalidate always sets this header + res.setHeader('x-nextjs-cache', 'REVALIDATED'); + res.end('This page could not be found'); + return null; + } + if (isIsrFallback && (previousCacheEntry == null ? void 0 : (_previousCacheEntry_value = previousCacheEntry.value) == null ? void 0 : _previousCacheEntry_value.kind) === _responsecache.CachedRouteKind.PAGES) { + return { + value: { + kind: _responsecache.CachedRouteKind.PAGES, + html: new _renderresult.default(Buffer.from(previousCacheEntry.value.html), { + contentType: _constants1.HTML_CONTENT_TYPE_HEADER, + metadata: { + statusCode: previousCacheEntry.value.status, + headers: previousCacheEntry.value.headers + } + }), + pageData: {}, + status: previousCacheEntry.value.status, + headers: previousCacheEntry.value.headers + }, + cacheControl: { + revalidate: 0, + expire: undefined + } + }; + } + return doRender(); + }; + const result = await routeModule.handleResponse({ + cacheKey, + req, + nextConfig, + routeKind: _routekind.RouteKind.PAGES, + isOnDemandRevalidate, + revalidateOnlyGenerated, + waitUntil: ctx.waitUntil, + responseGenerator: responseGenerator, + prerenderManifest, + isMinimalMode + }); + // if we got a cache hit this wasn't an ISR fallback + // but it wasn't generated during build so isn't in the + // prerender-manifest + if (isIsrFallback && !(result == null ? void 0 : result.isMiss)) { + isIsrFallback = false; + } + // response is finished is no cache entry + if (!result) { + return; + } + if (hasStaticProps && !isMinimalMode) { + res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : result.isMiss ? 'MISS' : result.isStale ? 'STALE' : 'HIT'); + } + let cacheControl; + if (!hasStaticProps || isIsrFallback) { + if (!res.getHeader('Cache-Control')) { + cacheControl = { + revalidate: 0, + expire: undefined + }; + } + } else if (is404Page) { + const notFoundRevalidate = (0, _requestmeta.getRequestMeta)(req, 'notFoundRevalidate'); + cacheControl = { + revalidate: typeof notFoundRevalidate === 'undefined' ? 0 : notFoundRevalidate, + expire: undefined + }; + } else if (is500Page) { + cacheControl = { + revalidate: 0, + expire: undefined + }; + } else if (result.cacheControl) { + // If the cache entry has a cache control with a revalidate value that's + // a number, use it. + if (typeof result.cacheControl.revalidate === 'number') { + var _result_cacheControl; + if (result.cacheControl.revalidate < 1) { + throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${result.cacheControl.revalidate} < 1`), "__NEXT_ERROR_CODE", { + value: "E22", + enumerable: false, + configurable: true + }); + } + cacheControl = { + revalidate: result.cacheControl.revalidate, + expire: ((_result_cacheControl = result.cacheControl) == null ? void 0 : _result_cacheControl.expire) ?? nextConfig.expireTime + }; + } else { + // revalidate: false + cacheControl = { + revalidate: _constants1.CACHE_ONE_YEAR_SECONDS, + expire: undefined + }; + } + } + // If cache control is already set on the response we don't + // override it to allow users to customize it via next.config + if (cacheControl && !res.getHeader('Cache-Control')) { + res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl)); + } + // notFound: true case + if (!result.value) { + var _result_cacheControl1; + // add revalidate metadata before rendering 404 page + // so that we can use this as source of truth for the + // cache-control header instead of what the 404 page returns + // for the revalidate value + (0, _requestmeta.addRequestMeta)(req, 'notFoundRevalidate', (_result_cacheControl1 = result.cacheControl) == null ? void 0 : _result_cacheControl1.revalidate); + res.statusCode = 404; + if (isNextDataRequest) { + if (deploymentId) { + res.setHeader(_constants1.NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId); + } + res.end('{"notFound":true}'); + return; + } + return await render404(); + } + if (result.value.kind === _responsecache.CachedRouteKind.REDIRECT) { + if (isNextDataRequest) { + if (deploymentId) { + res.setHeader(_constants1.NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId); + } + res.setHeader('content-type', _constants1.JSON_CONTENT_TYPE_HEADER); + res.end(JSON.stringify(result.value.props)); + return; + } else { + const handleRedirect = (pageData)=>{ + const redirect = { + destination: pageData.pageProps.__N_REDIRECT, + statusCode: pageData.pageProps.__N_REDIRECT_STATUS, + basePath: pageData.pageProps.__N_REDIRECT_BASE_PATH + }; + const statusCode = (0, _redirectstatus.getRedirectStatus)(redirect); + const { basePath } = nextConfig; + if (basePath && redirect.basePath !== false && redirect.destination.startsWith('/')) { + redirect.destination = `${basePath}${redirect.destination}`; + } + if (redirect.destination.startsWith('/')) { + redirect.destination = (0, _utils1.normalizeRepeatedSlashes)(redirect.destination); + } + res.statusCode = statusCode; + res.setHeader('Location', redirect.destination); + if (statusCode === _redirectstatuscode.RedirectStatusCode.PermanentRedirect) { + res.setHeader('Refresh', `0;url=${redirect.destination}`); + } + res.end(redirect.destination); + }; + await handleRedirect(result.value.props); + return null; + } + } + if (result.value.kind !== _responsecache.CachedRouteKind.PAGES) { + throw Object.defineProperty(new Error(`Invariant: received non-pages cache entry in pages handler`), "__NEXT_ERROR_CODE", { + value: "E695", + enumerable: false, + configurable: true + }); + } + // In dev, we should not cache pages for any reason. + if (routeModule.isDev) { + res.setHeader('Cache-Control', 'no-cache, must-revalidate'); + } + // Draft mode should never be cached + if (isDraftMode) { + res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate'); + } + // when invoking _error before pages/500 we don't actually + // send the _error response + if ((0, _requestmeta.getRequestMeta)(req, 'customErrorRender') || isErrorPage && isMinimalMode && res.statusCode === 500) { + return null; + } + // Add deployment ID header for data requests + if (isNextDataRequest && !isErrorPage && !is500Page) { + if (deploymentId) { + res.setHeader(_constants1.NEXT_NAV_DEPLOYMENT_ID_HEADER, deploymentId); + } + } + await (0, _sendpayload.sendRenderResult)({ + req, + res, + // If we are rendering the error page it's not a data request + // anymore + result: isNextDataRequest && !isErrorPage && !is500Page ? new _renderresult.default(Buffer.from(JSON.stringify(result.value.pageData)), { + contentType: _constants1.JSON_CONTENT_TYPE_HEADER, + metadata: result.value.html.metadata + }) : result.value.html, + generateEtags: nextConfig.generateEtags, + poweredByHeader: nextConfig.poweredByHeader, + cacheControl: routeModule.isDev ? undefined : cacheControl + }); + }; + // TODO: activeSpan code path is for when wrapped by + // next-server can be removed when this is no longer used + if (activeSpan) { + await handleResponse(); + } else { + parentSpan = tracer.getActiveScopeSpan(); + await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(_constants.BaseServerSpan.handleRequest, { + spanName: `${method} ${srcPage}`, + kind: _tracer.SpanKind.SERVER, + attributes: { + 'http.method': method, + 'http.target': req.url + } + }, handleResponse)); + } + } catch (err) { + if (!(err instanceof _nofallbackerrorexternal.NoFallbackError)) { + const silenceLog = false; + await routeModule.onRequestError(req, err, { + routerKind: 'Pages Router', + routePath: srcPage, + routeType: 'render', + revalidateReason: (0, _utils.getRevalidateReason)({ + isStaticGeneration: hasStaticProps, + isOnDemandRevalidate + }) + }, silenceLog, routerServerContext); + } + // rethrow so that we can handle serving error page + throw err; + } + }; +}; + +//# sourceMappingURL=pages-handler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js new file mode 100644 index 00000000000..74fa6622e2a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/app-router-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].AppRouterContext; + +//# sourceMappingURL=app-router-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js new file mode 100644 index 00000000000..e179453cf10 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/entrypoints.js @@ -0,0 +1,102 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppRouterContext: null, + HeadManagerContext: null, + HooksClientContext: null, + HtmlContext: null, + ImageConfigContext: null, + Loadable: null, + LoadableContext: null, + RouterContext: null, + ServerInsertedHtml: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppRouterContext: function() { + return _approutercontextsharedruntime; + }, + HeadManagerContext: function() { + return _headmanagercontextsharedruntime; + }, + HooksClientContext: function() { + return _hooksclientcontextsharedruntime; + }, + HtmlContext: function() { + return _htmlcontextsharedruntime; + }, + ImageConfigContext: function() { + return _imageconfigcontextsharedruntime; + }, + Loadable: function() { + return _loadablesharedruntime; + }, + LoadableContext: function() { + return _loadablecontextsharedruntime; + }, + RouterContext: function() { + return _routercontextsharedruntime; + }, + ServerInsertedHtml: function() { + return _serverinsertedhtmlsharedruntime; + } +}); +const _routercontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/router-context.shared-runtime")); +const _loadablecontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/loadable-context.shared-runtime")); +const _loadablesharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/loadable.shared-runtime")); +const _imageconfigcontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/image-config-context.shared-runtime")); +const _htmlcontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/html-context.shared-runtime")); +const _hooksclientcontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/hooks-client-context.shared-runtime")); +const _headmanagercontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/head-manager-context.shared-runtime")); +const _approutercontextsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/app-router-context.shared-runtime")); +const _serverinsertedhtmlsharedruntime = /*#__PURE__*/ _interop_require_wildcard(require("../../../../../shared/lib/server-inserted-html.shared-runtime")); +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} + +//# sourceMappingURL=entrypoints.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js new file mode 100644 index 00000000000..161d1246033 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/head-manager-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].HeadManagerContext; + +//# sourceMappingURL=head-manager-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js new file mode 100644 index 00000000000..8a86415fa56 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/hooks-client-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].HooksClientContext; + +//# sourceMappingURL=hooks-client-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js new file mode 100644 index 00000000000..358fbd059a5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/html-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].HtmlContext; + +//# sourceMappingURL=html-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js new file mode 100644 index 00000000000..53255f9b8b0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/image-config-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].ImageConfigContext; + +//# sourceMappingURL=image-config-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js new file mode 100644 index 00000000000..38bbdca99fd --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].LoadableContext; + +//# sourceMappingURL=loadable-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js new file mode 100644 index 00000000000..0f02b181b16 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/loadable.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].Loadable; + +//# sourceMappingURL=loadable.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js new file mode 100644 index 00000000000..424b2ce70b1 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/router-context.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].RouterContext; + +//# sourceMappingURL=router-context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js new file mode 100644 index 00000000000..ebbbd2d6344 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/pages/vendored/contexts/server-inserted-html.js @@ -0,0 +1,4 @@ +"use strict"; +module.exports = require('../../module.compiled').vendored['contexts'].ServerInsertedHtml; + +//# sourceMappingURL=server-inserted-html.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/route-modules/route-module.js b/cli/app/node_modules/next/dist/server/route-modules/route-module.js new file mode 100644 index 00000000000..c7f0e14c65d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/route-modules/route-module.js @@ -0,0 +1,650 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "RouteModule", { + enumerable: true, + get: function() { + return RouteModule; + } +}); +require("../../build/adapter/setup-node-env.external"); +const _constants = require("../../shared/lib/constants"); +const _url = require("../../lib/url"); +const _normalizelocalepath = require("../../shared/lib/i18n/normalize-locale-path"); +const _utils = require("../../shared/lib/router/utils"); +const _removepathprefix = require("../../shared/lib/router/utils/remove-path-prefix"); +const _serverutils = require("../server-utils"); +const _detectdomainlocale = require("../../shared/lib/i18n/detect-domain-locale"); +const _gethostname = require("../../shared/lib/get-hostname"); +const _apiutils = require("../api-utils"); +const _normalizedatapath = require("../../shared/lib/page-path/normalize-data-path"); +const _pathhasprefix = require("../../shared/lib/router/utils/path-has-prefix"); +const _requestmeta = require("../request-meta"); +const _normalizepagepath = require("../../shared/lib/page-path/normalize-page-path"); +const _ismetadataroute = require("../../lib/metadata/is-metadata-route"); +const _incrementalcache = require("../lib/incremental-cache"); +const _handlers = require("../use-cache/handlers"); +const _interopdefault = require("../app-render/interop-default"); +const _routekind = require("../route-kind"); +const _responsecache = /*#__PURE__*/ _interop_require_default(require("../response-cache")); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _routerservercontext = require("../lib/router-utils/router-server-context"); +const _decodepathparams = require("../lib/router-utils/decode-path-params"); +const _removetrailingslash = require("../../shared/lib/router/utils/remove-trailing-slash"); +const _isinterceptionrouterewrite = require("../../lib/is-interception-route-rewrite"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const dynamicImportEsmDefault = (id)=>import(/* webpackIgnore: true */ /* turbopackIgnore: true */ id).then((mod)=>mod.default || mod); +class RouteModule { + constructor({ userland, definition, distDir, relativeProjectDir }){ + this.userland = userland; + this.definition = definition; + this.isDev = !!process.env.__NEXT_DEV_SERVER; + this.distDir = distDir; + this.relativeProjectDir = relativeProjectDir; + } + getRouterServerContext(req) { + var _routerServerGlobal_RouterServerContextSymbol; + const hostname = (0, _requestmeta.getRequestMeta)(req, 'hostname'); + const revalidate = (0, _requestmeta.getRequestMeta)(req, 'revalidate'); + const render404 = (0, _requestmeta.getRequestMeta)(req, 'render404'); + const relativeProjectDir = (0, _requestmeta.getRequestMeta)(req, 'relativeProjectDir') || this.relativeProjectDir; + const routerServerContext = (_routerServerGlobal_RouterServerContextSymbol = _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol]) == null ? void 0 : _routerServerGlobal_RouterServerContextSymbol[relativeProjectDir]; + return { + ...routerServerContext, + ...hostname !== undefined ? { + hostname + } : {}, + ...revalidate !== undefined ? { + revalidate + } : {}, + ...render404 !== undefined ? { + render404 + } : {} + }; + } + normalizeUrl(_req, _parsedUrl) {} + async instrumentationOnRequestError(req, ...args) { + if (process.env.NEXT_RUNTIME === 'edge') { + const { getEdgeInstrumentationModule } = await import('../web/globals'); + const instrumentation = await getEdgeInstrumentationModule(); + if (instrumentation) { + await (instrumentation.onRequestError == null ? void 0 : instrumentation.onRequestError.call(instrumentation, ...args)); + } + } else { + const { join } = require('node:path'); + const absoluteProjectDir = join(/* turbopackIgnore: true */ process.cwd(), (0, _requestmeta.getRequestMeta)(req, 'relativeProjectDir') || this.relativeProjectDir); + const { instrumentationOnRequestError } = await import('../lib/router-utils/instrumentation-globals.external.js'); + return instrumentationOnRequestError(absoluteProjectDir, this.distDir, ...args); + } + } + loadManifests(srcPage, projectDir) { + let result; + if (process.env.NEXT_RUNTIME === 'edge') { + var _self___RSC_MANIFEST; + const { getEdgePreviewProps } = require('../web/get-edge-preview-props'); + const maybeJSONParse = (str)=>str ? JSON.parse(str) : undefined; + result = { + buildId: process.env.__NEXT_BUILD_ID || '', + buildManifest: self.__BUILD_MANIFEST, + fallbackBuildManifest: {}, + reactLoadableManifest: maybeJSONParse(self.__REACT_LOADABLE_MANIFEST), + nextFontManifest: maybeJSONParse(self.__NEXT_FONT_MANIFEST), + prerenderManifest: { + routes: {}, + dynamicRoutes: {}, + notFoundRoutes: [], + version: 4, + preview: getEdgePreviewProps() + }, + routesManifest: { + version: 4, + caseSensitive: Boolean(process.env.__NEXT_CASE_SENSITIVE_ROUTES), + basePath: process.env.__NEXT_BASE_PATH || '', + rewrites: process.env.__NEXT_REWRITES || { + beforeFiles: [], + afterFiles: [], + fallback: [] + }, + redirects: [], + headers: [], + onMatchHeaders: [], + i18n: process.env.__NEXT_I18N_CONFIG || undefined, + skipProxyUrlNormalize: Boolean(process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) + }, + serverFilesManifest: self.__SERVER_FILES_MANIFEST, + clientReferenceManifest: (_self___RSC_MANIFEST = self.__RSC_MANIFEST) == null ? void 0 : _self___RSC_MANIFEST[srcPage], + serverActionsManifest: maybeJSONParse(self.__RSC_SERVER_MANIFEST), + subresourceIntegrityManifest: maybeJSONParse(self.__SUBRESOURCE_INTEGRITY_MANIFEST), + dynamicCssManifest: maybeJSONParse(self.__DYNAMIC_CSS_MANIFEST), + interceptionRoutePatterns: (maybeJSONParse(self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST) ?? []).map((rewrite)=>new RegExp(rewrite.regex)) + }; + } else { + var _clientReferenceManifest___RSC_MANIFEST; + if (!projectDir) { + throw Object.defineProperty(new Error('Invariant: projectDir is required for node runtime'), "__NEXT_ERROR_CODE", { + value: "E718", + enumerable: false, + configurable: true + }); + } + const { loadManifestFromRelativePath } = require('../load-manifest.external'); + const normalizedPagePath = (0, _normalizepagepath.normalizePagePath)(srcPage); + const router = this.definition.kind === _routekind.RouteKind.PAGES || this.definition.kind === _routekind.RouteKind.PAGES_API ? 'pages' : 'app'; + const [routesManifest, prerenderManifest, buildManifest, fallbackBuildManifest, reactLoadableManifest, nextFontManifest, clientReferenceManifest, serverActionsManifest, subresourceIntegrityManifest, serverFilesManifest, buildId, dynamicCssManifest] = [ + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: _constants.ROUTES_MANIFEST, + shouldCache: !this.isDev + }), + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: _constants.PRERENDER_MANIFEST, + shouldCache: !this.isDev + }), + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: _constants.BUILD_MANIFEST, + shouldCache: !this.isDev + }), + srcPage === '/_error' ? loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: `fallback-${_constants.BUILD_MANIFEST}`, + shouldCache: !this.isDev, + handleMissing: true + }) : {}, + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: process.env.TURBOPACK ? `server/${router === 'app' ? 'app' : 'pages'}${normalizedPagePath}/${_constants.REACT_LOADABLE_MANIFEST}` : _constants.REACT_LOADABLE_MANIFEST, + handleMissing: true, + shouldCache: !this.isDev + }), + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: `server/${_constants.NEXT_FONT_MANIFEST}.json`, + shouldCache: !this.isDev + }), + router === 'app' && !(0, _ismetadataroute.isStaticMetadataRoute)(srcPage) ? loadManifestFromRelativePath({ + distDir: this.distDir, + projectDir, + useEval: true, + handleMissing: true, + manifest: `server/app${srcPage.replace(/%5F/g, '_') + '_' + _constants.CLIENT_REFERENCE_MANIFEST}.js`, + shouldCache: !this.isDev + }) : undefined, + router === 'app' ? loadManifestFromRelativePath({ + distDir: this.distDir, + projectDir, + manifest: `server/${_constants.SERVER_REFERENCE_MANIFEST}.json`, + handleMissing: true, + shouldCache: !this.isDev + }) : {}, + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: `server/${_constants.SUBRESOURCE_INTEGRITY_MANIFEST}.json`, + handleMissing: true, + shouldCache: !this.isDev + }), + this.isDev ? undefined : loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + shouldCache: true, + manifest: `${_constants.SERVER_FILES_MANIFEST}.json` + }), + this.isDev ? 'development' : loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: _constants.BUILD_ID_FILE, + skipParse: true, + shouldCache: true + }), + loadManifestFromRelativePath({ + projectDir, + distDir: this.distDir, + manifest: _constants.DYNAMIC_CSS_MANIFEST, + shouldCache: !this.isDev, + handleMissing: true + }) + ]; + result = { + buildId, + buildManifest, + fallbackBuildManifest, + routesManifest, + nextFontManifest, + prerenderManifest, + serverFilesManifest, + reactLoadableManifest, + clientReferenceManifest: clientReferenceManifest == null ? void 0 : (_clientReferenceManifest___RSC_MANIFEST = clientReferenceManifest.__RSC_MANIFEST) == null ? void 0 : _clientReferenceManifest___RSC_MANIFEST[srcPage.replace(/%5F/g, '_')], + serverActionsManifest, + subresourceIntegrityManifest, + dynamicCssManifest, + interceptionRoutePatterns: routesManifest.rewrites.beforeFiles.filter(_isinterceptionrouterewrite.isInterceptionRouteRewrite).map((rewrite)=>new RegExp(rewrite.regex)) + }; + } + return result; + } + async loadCustomCacheHandlers(req, nextConfig) { + if (process.env.NEXT_RUNTIME !== 'edge') { + const { cacheMaxMemorySize, cacheHandlers } = nextConfig; + if (!cacheHandlers) return; + // If we've already initialized the cache handlers interface, don't do it + // again. + if (!(0, _handlers.initializeCacheHandlers)(cacheMaxMemorySize)) return; + for (const [kind, handler] of Object.entries(cacheHandlers)){ + if (!handler) continue; + const { formatDynamicImportPath } = require('../../lib/format-dynamic-import-path'); + const { join } = require('node:path'); + const absoluteProjectDir = join(/* turbopackIgnore: true */ process.cwd(), (0, _requestmeta.getRequestMeta)(req, 'relativeProjectDir') || this.relativeProjectDir); + (0, _handlers.setCacheHandler)(kind, (0, _interopdefault.interopDefault)(await dynamicImportEsmDefault(formatDynamicImportPath(`${absoluteProjectDir}/${this.distDir}`, handler)))); + } + } + } + async getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode) { + if (process.env.NEXT_RUNTIME === 'edge') { + return globalThis.__incrementalCache; + } else { + let CacheHandler; + const { cacheHandler } = nextConfig; + if (cacheHandler) { + const { formatDynamicImportPath } = require('../../lib/format-dynamic-import-path'); + CacheHandler = (0, _interopdefault.interopDefault)(await dynamicImportEsmDefault(formatDynamicImportPath(this.distDir, cacheHandler))); + } + const { join } = require('node:path'); + const projectDir = join(/* turbopackIgnore: true */ process.cwd(), (0, _requestmeta.getRequestMeta)(req, 'relativeProjectDir') || this.relativeProjectDir); + await this.loadCustomCacheHandlers(req, nextConfig); + // incremental-cache is request specific + // although can have shared caches in module scope + // per-cache handler + const incrementalCache = new _incrementalcache.IncrementalCache({ + fs: require('../lib/node-fs-methods').nodeFs, + dev: this.isDev, + requestHeaders: req.headers, + allowedRevalidateHeaderKeys: nextConfig.experimental.allowedRevalidateHeaderKeys, + minimalMode: isMinimalMode, + serverDistDir: `${projectDir}/${this.distDir}/server`, + fetchCacheKeyPrefix: nextConfig.experimental.fetchCacheKeyPrefix, + maxMemoryCacheSize: nextConfig.cacheMaxMemorySize, + flushToDisk: !isMinimalMode && nextConfig.experimental.isrFlushToDisk, + getPrerenderManifest: ()=>prerenderManifest, + CurCacheHandler: CacheHandler + }); + globalThis.__incrementalCache = incrementalCache; + return incrementalCache; + } + } + async onRequestError(req, err, errorContext, silenceLog, routerServerContext) { + if (!silenceLog) { + if (routerServerContext == null ? void 0 : routerServerContext.logErrorWithOriginalStack) { + routerServerContext.logErrorWithOriginalStack(err, 'app-dir'); + } else { + console.error(err); + } + } + await this.instrumentationOnRequestError(req, err, { + path: req.url || '/', + headers: req.headers, + method: req.method || 'GET' + }, errorContext); + } + /** A more lightweight version of `prepare()` for only retrieving the config on edge */ getNextConfigEdge(req) { + var _nextConfig_experimental; + if (process.env.NEXT_RUNTIME !== 'edge') { + throw Object.defineProperty(new Error('Invariant: getNextConfigEdge must only be called in edge runtime'), "__NEXT_ERROR_CODE", { + value: "E968", + enumerable: false, + configurable: true + }); + } + let serverFilesManifest = self.__SERVER_FILES_MANIFEST; + const routerServerContext = this.getRouterServerContext(req); + const nextConfig = (routerServerContext == null ? void 0 : routerServerContext.nextConfig) || (serverFilesManifest == null ? void 0 : serverFilesManifest.config); + if (!nextConfig) { + throw Object.defineProperty(new Error("Invariant: nextConfig couldn't be loaded"), "__NEXT_ERROR_CODE", { + value: "E969", + enumerable: false, + configurable: true + }); + } + let deploymentId; + if ((_nextConfig_experimental = nextConfig.experimental) == null ? void 0 : _nextConfig_experimental.runtimeServerDeploymentId) { + if (!process.env.NEXT_DEPLOYMENT_ID) { + throw Object.defineProperty(new Error('process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled'), "__NEXT_ERROR_CODE", { + value: "E970", + enumerable: false, + configurable: true + }); + } + deploymentId = process.env.NEXT_DEPLOYMENT_ID; + } else { + deploymentId = nextConfig.deploymentId || ''; + } + return { + nextConfig, + deploymentId + }; + } + async prepare(req, res, { srcPage, multiZoneDraftMode }) { + var _req_headers_xforwardedproto, _nextConfig_experimental; + let absoluteProjectDir; + // edge runtime handles loading instrumentation at the edge adapter level + if (process.env.NEXT_RUNTIME !== 'edge') { + const { join, relative } = require('node:path'); + absoluteProjectDir = join(/* turbopackIgnore: true */ process.cwd(), (0, _requestmeta.getRequestMeta)(req, 'relativeProjectDir') || this.relativeProjectDir); + const absoluteDistDir = (0, _requestmeta.getRequestMeta)(req, 'distDir'); + if (absoluteDistDir) { + this.distDir = relative(absoluteProjectDir, absoluteDistDir); + } + const { ensureInstrumentationRegistered } = await import('../lib/router-utils/instrumentation-globals.external.js'); + // ensure instrumentation is registered and pass + // onRequestError below + ensureInstrumentationRegistered(absoluteProjectDir, this.distDir); + } + const manifests = this.loadManifests(srcPage, absoluteProjectDir); + const { routesManifest, prerenderManifest, serverFilesManifest } = manifests; + const { basePath, i18n, rewrites } = routesManifest; + const routerServerContext = this.getRouterServerContext(req); + const nextConfig = (routerServerContext == null ? void 0 : routerServerContext.nextConfig) || (serverFilesManifest == null ? void 0 : serverFilesManifest.config); + // Injected in base-server.ts + const protocol = ((_req_headers_xforwardedproto = req.headers['x-forwarded-proto']) == null ? void 0 : _req_headers_xforwardedproto.includes('https')) ? 'https' : 'http'; + // When there are hostname and port we build an absolute URL + if (!(0, _requestmeta.getRequestMeta)(req, 'initURL')) { + const initUrl = (serverFilesManifest == null ? void 0 : serverFilesManifest.config.experimental.trustHostHeader) ? `${protocol}://${req.headers.host || 'localhost'}${req.url}` : `${protocol}://${(routerServerContext == null ? void 0 : routerServerContext.hostname) || 'localhost'}${req.url}`; + (0, _requestmeta.addRequestMeta)(req, 'initURL', initUrl); + (0, _requestmeta.addRequestMeta)(req, 'initProtocol', protocol); + } + if (basePath) { + req.url = (0, _removepathprefix.removePathPrefix)(req.url || '/', basePath); + } + const parsedUrl = (0, _url.parseReqUrl)(req.url || '/'); + (0, _requestmeta.addRequestMeta)(req, 'initQuery', { + ...parsedUrl == null ? void 0 : parsedUrl.query + }); + // if we couldn't parse the URL we can't continue + if (!parsedUrl) { + return; + } + let isNextDataRequest = false; + if ((0, _pathhasprefix.pathHasPrefix)(parsedUrl.pathname || '/', '/_next/data')) { + isNextDataRequest = true; + parsedUrl.pathname = (0, _normalizedatapath.normalizeDataPath)(parsedUrl.pathname || '/'); + } + this.normalizeUrl(req, parsedUrl); + let originalPathname = parsedUrl.pathname || '/'; + const originalQuery = { + ...parsedUrl.query + }; + const pageIsDynamic = (0, _utils.isDynamicRoute)(srcPage); + let localeResult; + let detectedLocale; + if (i18n) { + localeResult = (0, _normalizelocalepath.normalizeLocalePath)(parsedUrl.pathname || '/', i18n.locales); + if (localeResult.detectedLocale) { + req.url = `${localeResult.pathname}${parsedUrl.search}`; + originalPathname = localeResult.pathname; + if (!detectedLocale) { + detectedLocale = localeResult.detectedLocale; + } + } + } + // Normalize the page path for route matching. The srcPage contains the + // internal page path (e.g., /app/[slug]/page), but route matchers expect + // the pathname format (e.g., /app/[slug]). + const normalizedSrcPage = (0, _apppaths.normalizeAppPath)(srcPage); + const serverUtils = (0, _serverutils.getServerUtils)({ + page: normalizedSrcPage, + i18n, + basePath, + rewrites, + pageIsDynamic, + trailingSlash: process.env.__NEXT_TRAILING_SLASH, + caseSensitive: Boolean(routesManifest.caseSensitive) + }); + const domainLocale = (0, _detectdomainlocale.detectDomainLocale)(i18n == null ? void 0 : i18n.domains, (0, _gethostname.getHostname)(parsedUrl, req.headers), detectedLocale); + if (Boolean(domainLocale)) { + (0, _requestmeta.addRequestMeta)(req, 'isLocaleDomain', Boolean(domainLocale)); + } + const defaultLocale = (0, _requestmeta.getRequestMeta)(req, 'defaultLocale') || (domainLocale == null ? void 0 : domainLocale.defaultLocale) || (i18n == null ? void 0 : i18n.defaultLocale); + // Ensure parsedUrl.pathname includes locale before processing + // rewrites or they won't match correctly. + if (defaultLocale && !detectedLocale) { + parsedUrl.pathname = `/${defaultLocale}${parsedUrl.pathname === '/' ? '' : parsedUrl.pathname}`; + } + const locale = (0, _requestmeta.getRequestMeta)(req, 'locale') || detectedLocale || defaultLocale; + // we apply rewrites against cloned URL so that we don't + // modify the original with the rewrite destination + const { rewriteParams, rewrittenParsedUrl } = serverUtils.handleRewrites(req, parsedUrl); + const rewriteParamKeys = Object.keys(rewriteParams); + Object.assign(parsedUrl.query, rewrittenParsedUrl.query); + // after processing rewrites we want to remove locale + // from parsedUrl pathname + if (i18n) { + parsedUrl.pathname = (0, _normalizelocalepath.normalizeLocalePath)(parsedUrl.pathname || '/', i18n.locales).pathname; + rewrittenParsedUrl.pathname = (0, _normalizelocalepath.normalizeLocalePath)(rewrittenParsedUrl.pathname || '/', i18n.locales).pathname; + } + let params = (0, _requestmeta.getRequestMeta)(req, 'params'); + // attempt parsing from pathname + if (!params && serverUtils.dynamicRouteMatcher) { + const paramsMatch = serverUtils.dynamicRouteMatcher((0, _normalizedatapath.normalizeDataPath)((rewrittenParsedUrl == null ? void 0 : rewrittenParsedUrl.pathname) || parsedUrl.pathname || '/')); + const paramsResult = serverUtils.normalizeDynamicRouteParams(paramsMatch || {}, true); + if (paramsResult.hasValidParams) { + params = paramsResult.params; + } + } + // Local "next start" expects the routing parsed query values + // to not be present in the URL although when deployed proxies + // will add query values from resolving the routes to pass to function. + // TODO: do we want to change expectations for "next start" + // to include these query values in the URL which affects asPath + // but would match deployed behavior, e.g. a rewrite from middleware + // that adds a query param would be in asPath as query but locally + // it won't be in the asPath but still available in the query object + const query = (0, _requestmeta.getRequestMeta)(req, 'query') || { + ...parsedUrl.query + }; + const routeParamKeys = new Set(); + const combinedParamKeys = []; + // We don't include rewriteParamKeys in the combinedParamKeys + // for app router since the searchParams is populated from the + // URL so we don't want to strip the rewrite params from the URL + // so that searchParams can include them. + if (this.definition.kind === _routekind.RouteKind.PAGES || this.definition.kind === _routekind.RouteKind.PAGES_API) { + for (const key of [ + ...rewriteParamKeys, + ...Object.keys(serverUtils.defaultRouteMatches || {}) + ]){ + // We only want to filter rewrite param keys from the URL + // if they are matches from the URL e.g. the key/value matches + // before and after applying the rewrites /:path for /hello and + // { path: 'hello' } but not for { path: 'another' } and /hello + // TODO: we should prefix rewrite param keys the same as we do + // for dynamic routes so we can identify them properly + const originalValue = Array.isArray(originalQuery[key]) ? originalQuery[key].join('') : originalQuery[key]; + const queryValue = Array.isArray(query[key]) ? query[key].join('') : query[key]; + if (!(key in originalQuery) || originalValue === queryValue) { + combinedParamKeys.push(key); + } + } + } + serverUtils.normalizeCdnUrl(req, combinedParamKeys); + serverUtils.normalizeQueryParams(query, routeParamKeys); + serverUtils.filterInternalQuery(originalQuery, combinedParamKeys); + if (pageIsDynamic) { + const queryResult = serverUtils.normalizeDynamicRouteParams(query, true); + const paramsResult = serverUtils.normalizeDynamicRouteParams(params || {}, true); + let paramsToInterpolate; + if (// if both query and params are valid but one + // provided more information and the query params + // were nxtP prefixed rely on that one + query && params && paramsResult.hasValidParams && queryResult.hasValidParams && routeParamKeys.size > 0 && Object.keys(paramsResult.params).length <= Object.keys(queryResult.params).length) { + paramsToInterpolate = queryResult.params; + params = Object.assign(queryResult.params); + } else { + paramsToInterpolate = paramsResult.hasValidParams && params ? params : queryResult.hasValidParams ? query : {}; + } + req.url = serverUtils.interpolateDynamicPath(req.url || '/', paramsToInterpolate); + parsedUrl.pathname = serverUtils.interpolateDynamicPath(parsedUrl.pathname || '/', paramsToInterpolate); + originalPathname = serverUtils.interpolateDynamicPath(originalPathname, paramsToInterpolate); + // try pulling from query if valid + if (!params) { + if (queryResult.hasValidParams) { + params = Object.assign({}, queryResult.params); + // If we pulled from query remove it so it's + // only in params + for(const key in serverUtils.defaultRouteMatches){ + delete query[key]; + } + } else { + // use final params from URL matching + const paramsMatch = serverUtils.dynamicRouteMatcher == null ? void 0 : serverUtils.dynamicRouteMatcher.call(serverUtils, (0, _normalizedatapath.normalizeDataPath)((localeResult == null ? void 0 : localeResult.pathname) || parsedUrl.pathname || '/')); + // we don't normalize these as they are allowed to be + // the literal slug matches here e.g. /blog/[slug] + // actually being requested + if (paramsMatch) { + params = Object.assign({}, paramsMatch); + } + } + } + } + // Remove any normalized params from the query if they + // weren't present as non-prefixed query key e.g. + // ?search=1&nxtPsearch=hello we don't delete search + for (const key of routeParamKeys){ + if (!(key in originalQuery)) { + delete query[key]; + // handle the case where there's collision and we + // normalized nxtPid=123 -> id=123 but user also + // sends id=456 as separate key + } else if (originalQuery[key] && query[key] && originalQuery[key] !== query[key]) { + query[key] = originalQuery[key]; + } + } + const { isOnDemandRevalidate, revalidateOnlyGenerated } = (0, _apiutils.checkIsOnDemandRevalidate)(req, prerenderManifest.preview); + let isDraftMode = false; + let previewData; + // preview data relies on non-edge utils + if (process.env.NEXT_RUNTIME !== 'edge' && res) { + const { tryGetPreviewData } = require('../api-utils/node/try-get-preview-data'); + previewData = tryGetPreviewData(req, res, prerenderManifest.preview, Boolean(multiZoneDraftMode)); + isDraftMode = previewData !== false; + } + if (!nextConfig) { + throw Object.defineProperty(new Error("Invariant: nextConfig couldn't be loaded"), "__NEXT_ERROR_CODE", { + value: "E969", + enumerable: false, + configurable: true + }); + } + if (process.env.NEXT_RUNTIME !== 'edge') { + const { installProcessErrorHandlers } = require('../node-environment-extensions/process-error-handlers'); + installProcessErrorHandlers(Boolean(nextConfig.experimental.removeUncaughtErrorAndRejectionListeners)); + } + let resolvedPathname = normalizedSrcPage; + if ((0, _utils.isDynamicRoute)(resolvedPathname) && params) { + resolvedPathname = serverUtils.interpolateDynamicPath(resolvedPathname, params); + } + if (resolvedPathname === '/index') { + resolvedPathname = '/'; + } + if (res && Boolean(req.headers['x-nextjs-data']) && (!res.statusCode || res.statusCode === 200)) { + res.setHeader('x-nextjs-matched-path', (0, _removetrailingslash.removeTrailingSlash)(`${locale ? `/${locale}` : ''}${normalizedSrcPage}`)); + } + const encodedResolvedPathname = resolvedPathname; + // we decode for cache key/manifest usage encoded is + // for URL building + try { + resolvedPathname = (0, _decodepathparams.decodePathParams)(resolvedPathname); + } catch (_) {} + resolvedPathname = (0, _removetrailingslash.removeTrailingSlash)(resolvedPathname); + (0, _requestmeta.addRequestMeta)(req, 'resolvedPathname', resolvedPathname); + let deploymentId; + if ((_nextConfig_experimental = nextConfig.experimental) == null ? void 0 : _nextConfig_experimental.runtimeServerDeploymentId) { + if (!process.env.NEXT_DEPLOYMENT_ID) { + throw Object.defineProperty(new Error('process.env.NEXT_DEPLOYMENT_ID is missing but runtimeServerDeploymentId is enabled'), "__NEXT_ERROR_CODE", { + value: "E970", + enumerable: false, + configurable: true + }); + } + deploymentId = process.env.NEXT_DEPLOYMENT_ID; + } else { + deploymentId = nextConfig.deploymentId || ''; + } + return { + query, + originalQuery, + originalPathname, + params, + parsedUrl, + locale, + isNextDataRequest, + locales: i18n == null ? void 0 : i18n.locales, + defaultLocale, + isDraftMode, + previewData, + pageIsDynamic, + resolvedPathname, + encodedResolvedPathname, + isOnDemandRevalidate, + revalidateOnlyGenerated, + ...manifests, + // loadManifest returns a readonly object, but we don't want to propagate that throughout the + // whole codebase (for now) + nextConfig: nextConfig, + routerServerContext, + deploymentId, + clientAssetToken: nextConfig.experimental.immutableAssetToken || deploymentId + }; + } + getResponseCache(req) { + if (!this.responseCache) { + const minimalMode = (0, _requestmeta.getRequestMeta)(req, 'minimalMode') ?? false; + this.responseCache = new _responsecache.default(minimalMode); + } + return this.responseCache; + } + async handleResponse({ req, nextConfig, cacheKey, routeKind, isFallback, prerenderManifest, isRoutePPREnabled, isOnDemandRevalidate, revalidateOnlyGenerated, responseGenerator, waitUntil, isMinimalMode }) { + const responseCache = this.getResponseCache(req); + const cacheEntry = await responseCache.get(cacheKey, responseGenerator, { + routeKind, + isFallback, + isRoutePPREnabled, + isOnDemandRevalidate, + isPrefetch: req.headers.purpose === 'prefetch', + // Use x-invocation-id header to scope the in-memory cache to a single + // revalidation request in minimal mode. + invocationID: req.headers['x-invocation-id'], + incrementalCache: await this.getIncrementalCache(req, nextConfig, prerenderManifest, isMinimalMode), + waitUntil + }); + if (!cacheEntry) { + if (cacheKey && // revalidate only generated can bail even if cacheKey is provided + !(isOnDemandRevalidate && revalidateOnlyGenerated)) { + // A cache entry might not be generated if a response is written + // in `getInitialProps` or `getServerSideProps`, but those shouldn't + // have a cache key. If we do have a cache key but we don't end up + // with a cache entry, then either Next.js or the application has a + // bug that needs fixing. + throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), "__NEXT_ERROR_CODE", { + value: "E62", + enumerable: false, + configurable: true + }); + } + } + return cacheEntry; + } +} + +//# sourceMappingURL=route-module.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/runtime-reacts.external.js b/cli/app/node_modules/next/dist/server/runtime-reacts.external.js new file mode 100644 index 00000000000..6e99319a266 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/runtime-reacts.external.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getClientReact: null, + getServerReact: null, + registerClientReact: null, + registerServerReact: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getClientReact: function() { + return getClientReact; + }, + getServerReact: function() { + return getServerReact; + }, + registerClientReact: function() { + return registerClientReact; + }, + registerServerReact: function() { + return registerServerReact; + } +}); +let ClientReact = null; +function registerClientReact(react) { + ClientReact = react; +} +function getClientReact() { + return ClientReact; +} +let ServerReact = null; +function registerServerReact(react) { + ServerReact = react; +} +function getServerReact() { + return ServerReact; +} + +//# sourceMappingURL=runtime-reacts.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/send-payload.js b/cli/app/node_modules/next/dist/server/send-payload.js new file mode 100644 index 00000000000..dc844c8444e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/send-payload.js @@ -0,0 +1,88 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + sendEtagResponse: null, + sendRenderResult: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + sendEtagResponse: function() { + return sendEtagResponse; + }, + sendRenderResult: function() { + return sendRenderResult; + } +}); +const _utils = require("../shared/lib/utils"); +const _etag = require("./lib/etag"); +const _fresh = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/fresh")); +const _cachecontrol = require("./lib/cache-control"); +const _constants = require("../lib/constants"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function sendEtagResponse(req, res, etag) { + if (etag) { + /** + * The server generating a 304 response MUST generate any of the + * following header fields that would have been sent in a 200 (OK) + * response to the same request: Cache-Control, Content-Location, Date, + * ETag, Expires, and Vary. https://tools.ietf.org/html/rfc7232#section-4.1 + */ res.setHeader('ETag', etag); + } + if ((0, _fresh.default)(req.headers, { + etag + })) { + res.statusCode = 304; + res.end(); + return true; + } + return false; +} +async function sendRenderResult({ req, res, result, generateEtags, poweredByHeader, cacheControl }) { + if ((0, _utils.isResSent)(res)) { + return; + } + if (poweredByHeader && result.contentType === _constants.HTML_CONTENT_TYPE_HEADER) { + res.setHeader('X-Powered-By', 'Next.js'); + } + // If cache control is already set on the response we don't + // override it to allow users to customize it via next.config + if (cacheControl && !res.getHeader('Cache-Control')) { + res.setHeader('Cache-Control', (0, _cachecontrol.getCacheControlHeader)(cacheControl)); + } + const payload = result.isDynamic ? null : result.toUnchunkedString(); + if (generateEtags && payload !== null) { + const etag = (0, _etag.generateETag)(payload); + if (sendEtagResponse(req, res, etag)) { + return; + } + } + if (!res.getHeader('Content-Type') && result.contentType) { + res.setHeader('Content-Type', result.contentType); + } + if (payload) { + res.setHeader('Content-Length', Buffer.byteLength(payload)); + } + if (req.method === 'HEAD') { + res.end(null); + return; + } + if (payload !== null) { + res.end(payload); + return; + } + // Pipe the render result to the response after we get a writer for it. + await result.pipeToNodeResponse(res); +} + +//# sourceMappingURL=send-payload.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/send-response.js b/cli/app/node_modules/next/dist/server/send-response.js new file mode 100644 index 00000000000..ad737fa8220 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/send-response.js @@ -0,0 +1,70 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "sendResponse", { + enumerable: true, + get: function() { + return sendResponse; + } +}); +const _helpers = require("./base-http/helpers"); +const _pipereadable = require("./pipe-readable"); +const _utils = require("./web/utils"); +async function sendResponse(req, res, response, waitUntil) { + if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextResponse)(res)) { + var // Copy over the response headers. + _response_headers; + // Copy over the response status. + res.statusCode = response.status; + res.statusMessage = response.statusText; + // TODO: this is not spec-compliant behavior and we should not restrict + // headers that are allowed to appear many times. + // + // See: + // https://github.com/vercel/next.js/pull/70127 + const headersWithMultipleValuesAllowed = [ + // can add more headers to this list if needed + 'set-cookie', + 'www-authenticate', + 'proxy-authenticate', + 'vary' + ]; + (_response_headers = response.headers) == null ? void 0 : _response_headers.forEach((value, name)=>{ + // `x-middleware-set-cookie` is an internal header not needed for the response + if (name.toLowerCase() === 'x-middleware-set-cookie') { + return; + } + // The append handling is special cased for `set-cookie`. + if (name.toLowerCase() === 'set-cookie') { + // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici + for (const cookie of (0, _utils.splitCookiesString)(value)){ + res.appendHeader(name, cookie); + } + } else { + // only append the header if it is either not present in the outbound response + // or if the header supports multiple values + const isHeaderPresent = typeof res.getHeader(name) !== 'undefined'; + if (headersWithMultipleValuesAllowed.includes(name.toLowerCase()) || !isHeaderPresent) { + res.appendHeader(name, value); + } + } + }); + /** + * The response can't be directly piped to the underlying response. The + * following is duplicated from the edge runtime handler. + * + * See packages/next/server/next-server.ts + */ const { originalResponse } = res; + // A response body must not be sent for HEAD requests. See https://httpwg.org/specs/rfc9110.html#HEAD + if (response.body && req.method !== 'HEAD') { + await (0, _pipereadable.pipeToNodeResponse)(response.body, originalResponse, waitUntil); + } else { + originalResponse.end(); + } + } +} + +//# sourceMappingURL=send-response.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/serve-static.js b/cli/app/node_modules/next/dist/server/serve-static.js new file mode 100644 index 00000000000..198a2c9ac6d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/serve-static.js @@ -0,0 +1,66 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getContentType: null, + getExtension: null, + serveStatic: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getContentType: function() { + return getContentType; + }, + getExtension: function() { + return getExtension; + }, + serveStatic: function() { + return serveStatic; + } +}); +const _send = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/send")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +// TODO: Remove this once "send" has updated the "mime", or next.js use custom version of "mime" +// Although "mime" has already add avif in version 2.4.7, "send" is still using mime@1.6.0 +_send.default.mime.define({ + 'image/avif': [ + 'avif' + ], + 'image/x-icns': [ + 'icns' + ], + 'image/jxl': [ + 'jxl' + ], + 'image/heic': [ + 'heic' + ] +}); +function serveStatic(req, res, path, opts) { + return new Promise((resolve, reject)=>{ + (0, _send.default)(req, path, opts).on('directory', ()=>{ + // We don't allow directories to be read. + const err = Object.defineProperty(new Error('No directory access'), "__NEXT_ERROR_CODE", { + value: "E340", + enumerable: false, + configurable: true + }); + err.code = 'ENOENT'; + reject(err); + }).on('error', reject).pipe(res).on('finish', resolve); + }); +} +const getContentType = 'getType' in _send.default.mime ? (extWithoutDot)=>_send.default.mime.getType(extWithoutDot) : (extWithoutDot)=>_send.default.mime.lookup(extWithoutDot); +const getExtension = 'getExtension' in _send.default.mime ? (contentType)=>_send.default.mime.getExtension(contentType) : (contentType)=>_send.default.mime.extension(contentType); + +//# sourceMappingURL=serve-static.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/server-route-utils.js b/cli/app/node_modules/next/dist/server/server-route-utils.js new file mode 100644 index 00000000000..b1a2a2bd55e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/server-route-utils.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "stringifyQuery", { + enumerable: true, + get: function() { + return stringifyQuery; + } +}); +const _requestmeta = require("./request-meta"); +const _querystring = require("querystring"); +const stringifyQuery = (req, query)=>{ + const initialQuery = (0, _requestmeta.getRequestMeta)(req, 'initQuery') || {}; + const initialQueryValues = Object.values(initialQuery); + return (0, _querystring.stringify)(query, undefined, undefined, { + encodeURIComponent (value) { + if (value in initialQuery || initialQueryValues.some((initialQueryVal)=>{ + // `value` always refers to a query value, even if it's nested in an array + return Array.isArray(initialQueryVal) ? initialQueryVal.includes(value) : initialQueryVal === value; + })) { + // Encode keys and values from initial query + return encodeURIComponent(value); + } + return value; + } + }); +}; + +//# sourceMappingURL=server-route-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/server-utils.js b/cli/app/node_modules/next/dist/server/server-utils.js new file mode 100644 index 00000000000..85934dacba5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/server-utils.js @@ -0,0 +1,323 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getPreviouslyRevalidatedTags: null, + getServerUtils: null, + interpolateDynamicPath: null, + normalizeCdnUrl: null, + normalizeDynamicRouteParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getPreviouslyRevalidatedTags: function() { + return getPreviouslyRevalidatedTags; + }, + getServerUtils: function() { + return getServerUtils; + }, + interpolateDynamicPath: function() { + return interpolateDynamicPath; + }, + normalizeCdnUrl: function() { + return normalizeCdnUrl; + }, + normalizeDynamicRouteParams: function() { + return normalizeDynamicRouteParams; + } +}); +const _normalizelocalepath = require("../shared/lib/i18n/normalize-locale-path"); +const _pathmatch = require("../shared/lib/router/utils/path-match"); +const _routeregex = require("../shared/lib/router/utils/route-regex"); +const _routematcher = require("../shared/lib/router/utils/route-matcher"); +const _preparedestination = require("../shared/lib/router/utils/prepare-destination"); +const _removetrailingslash = require("../shared/lib/router/utils/remove-trailing-slash"); +const _apppaths = require("../shared/lib/router/utils/app-paths"); +const _constants = require("../lib/constants"); +const _utils = require("./web/utils"); +const _decodequerypathparameter = require("./lib/decode-query-path-parameter"); +const _url = require("../lib/url"); +const _formaturl = require("../shared/lib/router/utils/format-url"); +function filterInternalQuery(query, paramKeys) { + // this is used to pass query information in rewrites + // but should not be exposed in final query + delete query['nextInternalLocale']; + for(const key in query){ + const isNextQueryPrefix = key !== _constants.NEXT_QUERY_PARAM_PREFIX && key.startsWith(_constants.NEXT_QUERY_PARAM_PREFIX); + const isNextInterceptionMarkerPrefix = key !== _constants.NEXT_INTERCEPTION_MARKER_PREFIX && key.startsWith(_constants.NEXT_INTERCEPTION_MARKER_PREFIX); + if (isNextQueryPrefix || isNextInterceptionMarkerPrefix || paramKeys.includes(key)) { + delete query[key]; + } + } +} +function normalizeCdnUrl(req, paramKeys) { + // make sure to normalize req.url from CDNs to strip dynamic and rewrite + // params from the query which are added during routing + const _parsedUrl = (0, _url.parseReqUrl)(req.url); + // we can't normalize if we can't parse + if (!_parsedUrl) { + return req.url; + } + delete _parsedUrl.search; + filterInternalQuery(_parsedUrl.query, paramKeys); + req.url = (0, _formaturl.formatUrl)(_parsedUrl); +} +function interpolateDynamicPath(pathname, params, defaultRouteRegex) { + if (!defaultRouteRegex) return pathname; + for (const param of Object.keys(defaultRouteRegex.groups)){ + const { optional, repeat } = defaultRouteRegex.groups[param]; + let builtParam = `[${repeat ? '...' : ''}${param}]`; + if (optional) { + builtParam = `[${builtParam}]`; + } + let paramValue; + const value = params[param]; + if (Array.isArray(value)) { + paramValue = value.map((v)=>v && encodeURIComponent(v)).join('/'); + } else if (value) { + paramValue = encodeURIComponent(value); + } else { + paramValue = ''; + } + if (paramValue || optional) { + pathname = pathname.replaceAll(builtParam, paramValue); + } + } + return pathname; +} +function normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional) { + let hasValidParams = true; + let params = {}; + for (const key of Object.keys(defaultRouteRegex.groups)){ + let value = query[key]; + if (typeof value === 'string') { + value = (0, _apppaths.normalizeRscURL)(value); + } else if (Array.isArray(value)) { + value = value.map(_apppaths.normalizeRscURL); + } + // if the value matches the default value we can't rely + // on the parsed params, this is used to signal if we need + // to parse x-now-route-matches or not + const defaultValue = defaultRouteMatches[key]; + const isOptional = defaultRouteRegex.groups[key].optional; + const isDefaultValue = Array.isArray(defaultValue) ? defaultValue.some((defaultVal)=>{ + return Array.isArray(value) ? value.some((val)=>val.includes(defaultVal)) : value == null ? void 0 : value.includes(defaultVal); + }) : value == null ? void 0 : value.includes(defaultValue); + if (isDefaultValue || typeof value === 'undefined' && !(isOptional && ignoreMissingOptional)) { + return { + params: {}, + hasValidParams: false + }; + } + // non-provided optional values should be undefined so normalize + // them to undefined + if (isOptional && (!value || Array.isArray(value) && value.length === 1 && // fallback optional catch-all SSG pages have + // [[...paramName]] for the root path on Vercel + (value[0] === 'index' || value[0] === `[[...${key}]]`) || value === 'index' || value === `[[...${key}]]`)) { + value = undefined; + delete query[key]; + } + // query values from the proxy aren't already split into arrays + // so make sure to normalize catch-all values + if (value && typeof value === 'string' && defaultRouteRegex.groups[key].repeat) { + value = value.split('/'); + } + if (value) { + params[key] = value; + } + } + return { + params, + hasValidParams + }; +} +function getServerUtils({ page, i18n, basePath, rewrites, pageIsDynamic, trailingSlash, caseSensitive }) { + let defaultRouteRegex; + let dynamicRouteMatcher; + let defaultRouteMatches; + if (pageIsDynamic) { + defaultRouteRegex = (0, _routeregex.getNamedRouteRegex)(page, { + prefixRouteKeys: false + }); + dynamicRouteMatcher = (0, _routematcher.getRouteMatcher)(defaultRouteRegex); + defaultRouteMatches = dynamicRouteMatcher(page); + } + function handleRewrites(req, parsedUrl) { + // Here we deep clone the parsedUrl to avoid mutating the original. We also + // cast this to a mutable type so we can mutate it within this scope. + const rewrittenParsedUrl = structuredClone(parsedUrl); + const rewriteParams = {}; + let fsPathname = rewrittenParsedUrl.pathname; + const matchesPage = ()=>{ + const fsPathnameNoSlash = (0, _removetrailingslash.removeTrailingSlash)(fsPathname || ''); + return fsPathnameNoSlash === (0, _removetrailingslash.removeTrailingSlash)(page) || (dynamicRouteMatcher == null ? void 0 : dynamicRouteMatcher(fsPathnameNoSlash)); + }; + const checkRewrite = (rewrite)=>{ + const matcher = (0, _pathmatch.getPathMatch)(rewrite.source + (trailingSlash ? '(/)?' : ''), { + removeUnnamedParams: true, + strict: true, + sensitive: !!caseSensitive + }); + if (!rewrittenParsedUrl.pathname) return false; + let params = matcher(rewrittenParsedUrl.pathname); + if ((rewrite.has || rewrite.missing) && params) { + const hasParams = (0, _preparedestination.matchHas)(req, rewrittenParsedUrl.query, rewrite.has, rewrite.missing); + if (hasParams) { + Object.assign(params, hasParams); + } else { + params = false; + } + } + if (params) { + const { parsedDestination, destQuery } = (0, _preparedestination.prepareDestination)({ + appendParamsToQuery: true, + destination: rewrite.destination, + params: params, + query: rewrittenParsedUrl.query + }); + // if the rewrite destination is external break rewrite chain + if (parsedDestination.protocol) { + return true; + } + Object.assign(rewriteParams, destQuery, params); + Object.assign(rewrittenParsedUrl.query, parsedDestination.query); + delete parsedDestination.query; + Object.assign(rewrittenParsedUrl, parsedDestination); + fsPathname = rewrittenParsedUrl.pathname; + if (!fsPathname) return false; + if (basePath) { + fsPathname = fsPathname.replace(new RegExp(`^${basePath}`), '') || '/'; + } + if (i18n) { + const result = (0, _normalizelocalepath.normalizeLocalePath)(fsPathname, i18n.locales); + fsPathname = result.pathname; + rewrittenParsedUrl.query.nextInternalLocale = result.detectedLocale || params.nextInternalLocale; + } + if (fsPathname === page) { + return true; + } + if (pageIsDynamic && dynamicRouteMatcher) { + const dynamicParams = dynamicRouteMatcher(fsPathname); + if (dynamicParams) { + rewrittenParsedUrl.query = { + ...rewrittenParsedUrl.query, + ...dynamicParams + }; + return true; + } + } + } + return false; + }; + for (const rewrite of rewrites.beforeFiles || []){ + checkRewrite(rewrite); + } + if (fsPathname !== page) { + let finished = false; + for (const rewrite of rewrites.afterFiles || []){ + finished = checkRewrite(rewrite); + if (finished) break; + } + if (!finished && !matchesPage()) { + for (const rewrite of rewrites.fallback || []){ + finished = checkRewrite(rewrite); + if (finished) break; + } + } + } + return { + rewriteParams, + rewrittenParsedUrl + }; + } + function getParamsFromRouteMatches(routeMatchesHeader) { + // If we don't have a default route regex, we can't get params from route + // matches + if (!defaultRouteRegex) return null; + const { groups, routeKeys } = defaultRouteRegex; + const matcher = (0, _routematcher.getRouteMatcher)({ + re: { + // Simulate a RegExp match from the \`req.url\` input + exec: (str)=>{ + // Normalize all the prefixed query params. + const obj = Object.fromEntries(new URLSearchParams(str)); + for (const [key, value] of Object.entries(obj)){ + const normalizedKey = (0, _utils.normalizeNextQueryParam)(key); + if (!normalizedKey) continue; + obj[normalizedKey] = value; + delete obj[key]; + } + // Use all the named route keys. + const result = {}; + for (const keyName of Object.keys(routeKeys)){ + const paramName = routeKeys[keyName]; + // If this param name is not a valid parameter name, then skip it. + if (!paramName) continue; + const group = groups[paramName]; + const value = obj[keyName]; + // When we're missing a required param, we can't match the route. + if (!group.optional && !value) return null; + result[group.pos] = value; + } + return result; + } + }, + groups + }); + const routeMatches = matcher(routeMatchesHeader); + if (!routeMatches) return null; + return routeMatches; + } + function normalizeQueryParams(query, routeParamKeys) { + // this is used to pass query information in rewrites + // but should not be exposed in final query + delete query['nextInternalLocale']; + for (const [key, value] of Object.entries(query)){ + const normalizedKey = (0, _utils.normalizeNextQueryParam)(key); + if (!normalizedKey) continue; + // Remove the prefixed key from the query params because we want + // to consume it for the dynamic route matcher. + delete query[key]; + routeParamKeys.add(normalizedKey); + if (typeof value === 'undefined') continue; + query[normalizedKey] = Array.isArray(value) ? value.map((v)=>(0, _decodequerypathparameter.decodeQueryPathParameter)(v)) : (0, _decodequerypathparameter.decodeQueryPathParameter)(value); + } + } + return { + handleRewrites, + defaultRouteRegex, + dynamicRouteMatcher, + defaultRouteMatches, + normalizeQueryParams, + getParamsFromRouteMatches, + /** + * Normalize dynamic route params. + * + * @param query - The query params to normalize. + * @param ignoreMissingOptional - Whether to ignore missing optional params. + * @returns The normalized params and whether they are valid. + */ normalizeDynamicRouteParams: (query, ignoreMissingOptional)=>{ + if (!defaultRouteRegex || !defaultRouteMatches) { + return { + params: {}, + hasValidParams: false + }; + } + return normalizeDynamicRouteParams(query, defaultRouteRegex, defaultRouteMatches, ignoreMissingOptional); + }, + normalizeCdnUrl: (req, paramKeys)=>normalizeCdnUrl(req, paramKeys), + interpolateDynamicPath: (pathname, params)=>interpolateDynamicPath(pathname, params, defaultRouteRegex), + filterInternalQuery: (query, paramKeys)=>filterInternalQuery(query, paramKeys) + }; +} +function getPreviouslyRevalidatedTags(headers, previewModeId) { + return typeof headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER] === 'string' && headers[_constants.NEXT_CACHE_REVALIDATE_TAG_TOKEN_HEADER] === previewModeId ? headers[_constants.NEXT_CACHE_REVALIDATED_TAGS_HEADER].split(',') : []; +} + +//# sourceMappingURL=server-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/setup-http-agent-env.js b/cli/app/node_modules/next/dist/server/setup-http-agent-env.js new file mode 100644 index 00000000000..d8bd8a60f0f --- /dev/null +++ b/cli/app/node_modules/next/dist/server/setup-http-agent-env.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "setHttpClientAndAgentOptions", { + enumerable: true, + get: function() { + return setHttpClientAndAgentOptions; + } +}); +const _http = require("http"); +const _https = require("https"); +function setHttpClientAndAgentOptions(config) { + if (globalThis.__NEXT_HTTP_AGENT) { + // We only need to assign once because we want + // to reuse the same agent for all requests. + return; + } + if (!config) { + throw Object.defineProperty(new Error('Expected config.httpAgentOptions to be an object'), "__NEXT_ERROR_CODE", { + value: "E204", + enumerable: false, + configurable: true + }); + } + globalThis.__NEXT_HTTP_AGENT_OPTIONS = config.httpAgentOptions; + globalThis.__NEXT_HTTP_AGENT = new _http.Agent(config.httpAgentOptions); + globalThis.__NEXT_HTTPS_AGENT = new _https.Agent(config.httpAgentOptions); +} + +//# sourceMappingURL=setup-http-agent-env.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/stream-utils/encoded-tags.js b/cli/app/node_modules/next/dist/server/stream-utils/encoded-tags.js new file mode 100644 index 00000000000..281b0ee5b40 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/stream-utils/encoded-tags.js @@ -0,0 +1,122 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ENCODED_TAGS", { + enumerable: true, + get: function() { + return ENCODED_TAGS; + } +}); +const ENCODED_TAGS = { + // opening tags do not have the closing `>` since they can contain other attributes such as `` + OPENING: { + // + HEAD: new Uint8Array([ + 60, + 47, + 104, + 101, + 97, + 100, + 62 + ]), + // + BODY: new Uint8Array([ + 60, + 47, + 98, + 111, + 100, + 121, + 62 + ]), + // + HTML: new Uint8Array([ + 60, + 47, + 104, + 116, + 109, + 108, + 62 + ]), + // + BODY_AND_HTML: new Uint8Array([ + 60, + 47, + 98, + 111, + 100, + 121, + 62, + 60, + 47, + 104, + 116, + 109, + 108, + 62 + ]) + }, + META: { + // Only the match the prefix cause the suffix can be different wether it's xml compatible or not ">" or "/>" + // nextStream.pipeTo(writable, { + preventClose: true + })); + } + // We can omit the length check because we halted before the last stream and there + // is at least two streams so the lastStream here will always be defined + const lastStream = streams[i]; + promise = promise.then(()=>lastStream.pipeTo(writable)); + // Catch any errors from the streams and ignore them, they will be handled + // by whatever is consuming the readable stream. + promise.catch(voidCatch); + return readable; +} +function streamFromString(str) { + return new ReadableStream({ + start (controller) { + controller.enqueue(encoder.encode(str)); + controller.close(); + } + }); +} +function streamFromBuffer(chunk) { + return new ReadableStream({ + start (controller) { + controller.enqueue(chunk); + controller.close(); + } + }); +} +async function streamToChunks(stream) { + const reader = stream.getReader(); + const chunks = []; + while(true){ + const { done, value } = await reader.read(); + if (done) { + break; + } + chunks.push(value); + } + return chunks; +} +function concatUint8Arrays(chunks) { + const totalLength = chunks.reduce((sum, chunk)=>sum + chunk.length, 0); + const result = new Uint8Array(totalLength); + let offset = 0; + for (const chunk of chunks){ + result.set(chunk, offset); + offset += chunk.length; + } + return result; +} +async function streamToUint8Array(stream) { + return concatUint8Arrays(await streamToChunks(stream)); +} +async function streamToBuffer(stream) { + return Buffer.concat(await streamToChunks(stream)); +} +async function streamToString(stream, signal) { + const decoder = new TextDecoder('utf-8', { + fatal: true + }); + let string = ''; + for await (const chunk of stream){ + if (signal == null ? void 0 : signal.aborted) { + return string; + } + string += decoder.decode(chunk, { + stream: true + }); + } + string += decoder.decode(); + return string; +} +function createBufferedTransformStream(options = {}) { + const { maxBufferByteLength = Infinity } = options; + let bufferedChunks = []; + let bufferByteLength = 0; + let pending; + const flush = (controller)=>{ + try { + if (bufferedChunks.length === 0) { + return; + } + const chunk = new Uint8Array(bufferByteLength); + let copiedBytes = 0; + for(let i = 0; i < bufferedChunks.length; i++){ + const bufferedChunk = bufferedChunks[i]; + chunk.set(bufferedChunk, copiedBytes); + copiedBytes += bufferedChunk.byteLength; + } + // We just wrote all the buffered chunks so we need to reset the bufferedChunks array + // and our bufferByteLength to prepare for the next round of buffered chunks + bufferedChunks.length = 0; + bufferByteLength = 0; + controller.enqueue(chunk); + } catch { + // If an error occurs while enqueuing, it can't be due to this + // transformer. It's most likely caused by the controller having been + // errored (for example, if the stream was cancelled). + } + }; + const scheduleFlush = (controller)=>{ + if (pending) { + return; + } + const detached = new _detachedpromise.DetachedPromise(); + pending = detached; + (0, _scheduler.scheduleImmediate)(()=>{ + try { + flush(controller); + } finally{ + pending = undefined; + detached.resolve(); + } + }); + }; + return new TransformStream({ + transform (chunk, controller) { + // Combine the previous buffer with the new chunk. + bufferedChunks.push(chunk); + bufferByteLength += chunk.byteLength; + if (bufferByteLength >= maxBufferByteLength) { + flush(controller); + } else { + scheduleFlush(controller); + } + }, + flush () { + return pending == null ? void 0 : pending.promise; + } + }); +} +function renderToInitialFizzStream({ ReactDOMServer, element, streamOptions }) { + return (0, _tracer.getTracer)().trace(_constants.AppRenderSpan.renderToReadableStream, async ()=>ReactDOMServer.renderToReadableStream(element, streamOptions)); +} +function createMetadataTransformStream(insert) { + let chunkIndex = -1; + let isMarkRemoved = false; + return new TransformStream({ + async transform (chunk, controller) { + let iconMarkIndex = -1; + let closedHeadIndex = -1; + chunkIndex++; + if (isMarkRemoved) { + controller.enqueue(chunk); + return; + } + let iconMarkLength = 0; + // Only search for the closed head tag once + if (iconMarkIndex === -1) { + iconMarkIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.META.ICON_MARK); + if (iconMarkIndex === -1) { + controller.enqueue(chunk); + return; + } else { + // When we found the `` or `>`, checking the next char to ensure we cover both cases. + iconMarkLength = _encodedtags.ENCODED_TAGS.META.ICON_MARK.length; + // Check if next char is /, this is for xml mode. + if (chunk[iconMarkIndex + iconMarkLength] === 47) { + iconMarkLength += 2; + } else { + // The last char is `>` + iconMarkLength++; + } + } + } + // Check if icon mark is inside tag in the first chunk. + if (chunkIndex === 0) { + closedHeadIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD); + if (iconMarkIndex !== -1) { + // The mark icon is located in the 1st chunk before the head tag. + // We do not need to insert the script tag in this case because it's in the head. + // Just remove the icon mark from the chunk. + if (iconMarkIndex < closedHeadIndex) { + const replaced = new Uint8Array(chunk.length - iconMarkLength); + // Remove the icon mark from the chunk. + replaced.set(chunk.subarray(0, iconMarkIndex)); + replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex); + chunk = replaced; + } else { + // The icon mark is after the head tag, replace and insert the script tag at that position. + const insertion = await insert(); + const encodedInsertion = encoder.encode(insertion); + const insertionLength = encodedInsertion.length; + const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength); + replaced.set(chunk.subarray(0, iconMarkIndex)); + replaced.set(encodedInsertion, iconMarkIndex); + replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength); + chunk = replaced; + } + isMarkRemoved = true; + } + // If there's no icon mark located, it will be handled later when if present in the following chunks. + } else { + // When it's appeared in the following chunks, we'll need to + // remove the mark and then insert the script tag at that position. + const insertion = await insert(); + const encodedInsertion = encoder.encode(insertion); + const insertionLength = encodedInsertion.length; + // Replace the icon mark with the hoist script or empty string. + const replaced = new Uint8Array(chunk.length - iconMarkLength + insertionLength); + // Set the first part of the chunk, before the icon mark. + replaced.set(chunk.subarray(0, iconMarkIndex)); + // Set the insertion after the icon mark. + replaced.set(encodedInsertion, iconMarkIndex); + // Set the rest of the chunk after the icon mark. + replaced.set(chunk.subarray(iconMarkIndex + iconMarkLength), iconMarkIndex + insertionLength); + chunk = replaced; + isMarkRemoved = true; + } + controller.enqueue(chunk); + } + }); +} +function createHeadInsertionTransformStream(insert) { + let inserted = false; + // We need to track if this transform saw any bytes because if it didn't + // we won't want to insert any server HTML at all + let hasBytes = false; + return new TransformStream({ + async transform (chunk, controller) { + hasBytes = true; + const insertion = await insert(); + if (inserted) { + if (insertion) { + const encodedInsertion = encoder.encode(insertion); + controller.enqueue(encodedInsertion); + } + controller.enqueue(chunk); + } else { + // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for. + const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD); + // In fully static rendering or non PPR rendering cases: + // `/head>` will always be found in the chunk in first chunk rendering. + if (index !== -1) { + if (insertion) { + const encodedInsertion = encoder.encode(insertion); + // Get the total count of the bytes in the chunk and the insertion + // e.g. + // chunk = + // insertion = + // output = [ ] + const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length); + // Append the first part of the chunk, before the head tag + insertedHeadContent.set(chunk.slice(0, index)); + // Append the server inserted content + insertedHeadContent.set(encodedInsertion, index); + // Append the rest of the chunk + insertedHeadContent.set(chunk.slice(index), index + encodedInsertion.length); + controller.enqueue(insertedHeadContent); + } else { + controller.enqueue(chunk); + } + inserted = true; + } else { + // This will happens in PPR rendering during next start, when the page is partially rendered. + // When the page resumes, the head tag will be found in the middle of the chunk. + // Where we just need to append the insertion and chunk to the current stream. + // e.g. + // PPR-static: ... [ resume content ] + // PPR-resume: [ insertion ] [ rest content ] + if (insertion) { + controller.enqueue(encoder.encode(insertion)); + } + controller.enqueue(chunk); + inserted = true; + } + } + }, + async flush (controller) { + // Check before closing if there's anything remaining to insert. + if (hasBytes) { + const insertion = await insert(); + if (insertion) { + controller.enqueue(encoder.encode(insertion)); + } + } + } + }); +} +function createClientResumeScriptInsertionTransformStream() { + const segmentPath = '/_full'; + const cacheBustingHeader = (0, _cachebustingsearchparam.computeCacheBustingSearchParam)('1', '/_full', undefined, undefined // headers[NEXT_URL] + ); + const searchStr = `${_approuterheaders.NEXT_RSC_UNION_QUERY}=${cacheBustingHeader}`; + const NEXT_CLIENT_RESUME_SCRIPT = ``; + let didAlreadyInsert = false; + return new TransformStream({ + transform (chunk, controller) { + if (didAlreadyInsert) { + // Already inserted the script into the head. Pass through. + controller.enqueue(chunk); + return; + } + // TODO (@Ethan-Arrowood): Replace the generic `indexOfUint8Array` method with something finely tuned for the subset of things actually being checked for. + const headClosingTagIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HEAD); + if (headClosingTagIndex === -1) { + // In fully static rendering or non PPR rendering cases: + // `/head>` will always be found in the chunk in first chunk rendering. + controller.enqueue(chunk); + return; + } + const encodedInsertion = encoder.encode(NEXT_CLIENT_RESUME_SCRIPT); + // Get the total count of the bytes in the chunk and the insertion + // e.g. + // chunk = + // insertion = + // output = [ ] + const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length); + // Append the first part of the chunk, before the head tag + insertedHeadContent.set(chunk.slice(0, headClosingTagIndex)); + // Append the server inserted content + insertedHeadContent.set(encodedInsertion, headClosingTagIndex); + // Append the rest of the chunk + insertedHeadContent.set(chunk.slice(headClosingTagIndex), headClosingTagIndex + encodedInsertion.length); + controller.enqueue(insertedHeadContent); + didAlreadyInsert = true; + } + }); +} +function createInstantTestScriptInsertionTransformStream(requestId) { + // Kick off a fetch for the static RSC payload. This is the hydration + // source for the locked static shell — same as the __NEXT_CLIENT_RESUME + // fetch used for fallback routes, but with NEXT_INSTANT_PREFETCH_HEADER + // so the server returns static-only data. + // + // The fetch promise is stored as self.__next_instant_test, which doubles + // as the feature flag (truthy = instant test mode). The client processes + // this as a fallback prerender payload for hydration. + const segmentPath = '/_full'; + const cacheBustingHeader = (0, _cachebustingsearchparam.computeCacheBustingSearchParam)('1', segmentPath, undefined, undefined); + const searchStr = `${_approuterheaders.NEXT_RSC_UNION_QUERY}=${cacheBustingHeader}`; + // In dev mode, inject self.__next_r (request ID) so that HMR WebSocket + // and debug channel initialization don't crash. The static shell + // bypasses renderToFizzStream which normally injects this via + // bootstrapScriptContent. + const requestIdScript = requestId !== null ? `self.__next_r=${JSON.stringify(requestId)};` : ''; + const INSTANT_TEST_SCRIPT = ``; + let didAlreadyInsert = false; + return new TransformStream({ + transform (chunk, controller) { + if (didAlreadyInsert) { + // Already inserted the script into the head. Pass through. + controller.enqueue(chunk); + return; + } + // Find the opening ) + const headOpenIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HEAD); + if (headOpenIndex === -1) { + controller.enqueue(chunk); + return; + } + // Find the closing > of the tag + const headCloseAngle = chunk.indexOf(62, headOpenIndex + _encodedtags.ENCODED_TAGS.OPENING.HEAD.length); + if (headCloseAngle === -1) { + controller.enqueue(chunk); + return; + } + const encodedInsertion = encoder.encode(INSTANT_TEST_SCRIPT); + const insertionPoint = headCloseAngle + 1; + // e.g. + // chunk = ... + // insertion = + // output = [ ] ... + const insertedHeadContent = new Uint8Array(chunk.length + encodedInsertion.length); + insertedHeadContent.set(chunk.slice(0, insertionPoint)); + insertedHeadContent.set(encodedInsertion, insertionPoint); + insertedHeadContent.set(chunk.slice(insertionPoint), insertionPoint + encodedInsertion.length); + controller.enqueue(insertedHeadContent); + didAlreadyInsert = true; + }, + flush (controller) { + // Append closing tags so the browser can parse the full document. + controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML); + } + }); +} +// Suffix after main body content - scripts before , +// but wait for the major chunks to be enqueued. +function createDeferredSuffixStream(suffix) { + let flushed = false; + let pending; + const flush = (controller)=>{ + const detached = new _detachedpromise.DetachedPromise(); + pending = detached; + (0, _scheduler.scheduleImmediate)(()=>{ + try { + controller.enqueue(encoder.encode(suffix)); + } catch { + // If an error occurs while enqueuing it can't be due to this + // transformers fault. It's likely due to the controller being + // errored due to the stream being cancelled. + } finally{ + pending = undefined; + detached.resolve(); + } + }); + }; + return new TransformStream({ + transform (chunk, controller) { + controller.enqueue(chunk); + // If we've already flushed, we're done. + if (flushed) return; + // Schedule the flush to happen. + flushed = true; + flush(controller); + }, + flush (controller) { + if (pending) return pending.promise; + if (flushed) return; + // Flush now. + controller.enqueue(encoder.encode(suffix)); + } + }); +} +function createFlightDataInjectionTransformStream(stream, delayDataUntilFirstHtmlChunk) { + let htmlStreamFinished = false; + let pull = null; + let donePulling = false; + function startOrContinuePulling(controller) { + if (!pull) { + pull = startPulling(controller); + } + return pull; + } + async function startPulling(controller) { + const reader = stream.getReader(); + if (delayDataUntilFirstHtmlChunk) { + // NOTE: streaming flush + // We are buffering here for the inlined data stream because the + // "shell" stream might be chunkenized again by the underlying stream + // implementation, e.g. with a specific high-water mark. To ensure it's + // the safe timing to pipe the data stream, this extra tick is + // necessary. + // We don't start reading until we've left the current Task to ensure + // that it's inserted after flushing the shell. Note that this implementation + // might get stale if impl details of Fizz change in the future. + await (0, _scheduler.atLeastOneTask)(); + } + try { + while(true){ + const { done, value } = await reader.read(); + if (done) { + donePulling = true; + return; + } + // We want to prioritize HTML over RSC data. + // The SSR render is based on the same RSC stream, so when we get a new RSC chunk, + // we're likely to produce an HTML chunk as well, so give it a chance to flush first. + if (!delayDataUntilFirstHtmlChunk && !htmlStreamFinished) { + await (0, _scheduler.atLeastOneTask)(); + } + controller.enqueue(value); + } + } catch (err) { + controller.error(err); + } + } + return new TransformStream({ + start (controller) { + if (!delayDataUntilFirstHtmlChunk) { + startOrContinuePulling(controller); + } + }, + transform (chunk, controller) { + controller.enqueue(chunk); + // Start the streaming if it hasn't already been started yet. + if (delayDataUntilFirstHtmlChunk) { + startOrContinuePulling(controller); + } + }, + flush (controller) { + htmlStreamFinished = true; + if (donePulling) { + return; + } + return startOrContinuePulling(controller); + } + }); +} +const CLOSE_TAG = ''; +/** + * This transform stream moves the suffix to the end of the stream, so results + * like `` will be transformed to + * ``. + */ function createMoveSuffixStream() { + let foundSuffix = false; + return new TransformStream({ + transform (chunk, controller) { + if (foundSuffix) { + return controller.enqueue(chunk); + } + const index = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML); + if (index > -1) { + foundSuffix = true; + // If the whole chunk is the suffix, then don't write anything, it will + // be written in the flush. + if (chunk.length === _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length) { + return; + } + // Write out the part before the suffix. + const before = chunk.slice(0, index); + controller.enqueue(before); + // In the case where the suffix is in the middle of the chunk, we need + // to split the chunk into two parts. + if (chunk.length > _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length + index) { + // Write out the part after the suffix. + const after = chunk.slice(index + _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML.length); + controller.enqueue(after); + } + } else { + controller.enqueue(chunk); + } + }, + flush (controller) { + // Even if we didn't find the suffix, the HTML is not valid if we don't + // add it, so insert it at the end. + controller.enqueue(_encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML); + } + }); +} +function createStripDocumentClosingTagsTransform() { + return new TransformStream({ + transform (chunk, controller) { + // We rely on the assumption that chunks will never break across a code unit. + // This is reasonable because we currently concat all of React's output from a single + // flush into one chunk before streaming it forward which means the chunk will represent + // a single coherent utf-8 string. This is not safe to use if we change our streaming to no + // longer do this large buffered chunk + if ((0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY_AND_HTML) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY) || (0, _uint8arrayhelpers.isEquivalentUint8Arrays)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML)) { + // the entire chunk is the closing tags; return without enqueueing anything. + return; + } + // We assume these tags will go at together at the end of the document and that + // they won't appear anywhere else in the document. This is not really a safe assumption + // but until we revamp our streaming infra this is a performant way to string the tags + chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.BODY); + chunk = (0, _uint8arrayhelpers.removeFromUint8Array)(chunk, _encodedtags.ENCODED_TAGS.CLOSED.HTML); + controller.enqueue(chunk); + } + }); +} +function createHtmlDataDplIdTransformStream(dplId) { + let didTransform = false; + return new TransformStream({ + transform (chunk, controller) { + if (didTransform) { + controller.enqueue(chunk); + return; + } + const htmlTagIndex = (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.HTML); + if (htmlTagIndex === -1) { + controller.enqueue(chunk); + return; + } + // Insert the data-dpl-id attribute right after " -1) { + foundHtml = true; + } + if (!foundBody && (0, _uint8arrayhelpers.indexOfUint8Array)(chunk, _encodedtags.ENCODED_TAGS.OPENING.BODY) > -1) { + foundBody = true; + } + controller.enqueue(chunk); + }, + flush (controller) { + const missingTags = []; + if (!foundHtml) missingTags.push('html'); + if (!foundBody) missingTags.push('body'); + if (!missingTags.length) return; + controller.enqueue(encoder.encode(` + + `)); + } + }); +} +function chainTransformers(readable, transformers) { + let stream = readable; + for (const transformer of transformers){ + if (!transformer) continue; + stream = stream.pipeThrough(transformer); + } + return stream; +} +async function continueFizzStream(renderStream, { suffix, inlinedDataStream, isStaticGeneration, deploymentId, getServerInsertedHTML, getServerInsertedMetadata, validateRootLayout }) { + // Suffix itself might contain close tags at the end, so we need to split it. + const suffixUnclosed = suffix ? suffix.split(CLOSE_TAG, 1)[0] : null; + if (isStaticGeneration) { + // If we're generating static HTML we need to wait for it to resolve before continuing. + await renderStream.allReady; + } else { + // Otherwise, we want to make sure Fizz is done with all microtasky work + // before we start pulling the stream and cause a flush. + await (0, _scheduler.waitAtLeastOneReactRenderTask)(); + } + return chainTransformers(renderStream, [ + // Buffer everything to avoid flushing too frequently + createBufferedTransformStream(), + // Insert data-dpl-id attribute on the html tag + deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null, + // Transform metadata + createMetadataTransformStream(getServerInsertedMetadata), + // Insert suffix content + suffixUnclosed != null && suffixUnclosed.length > 0 ? createDeferredSuffixStream(suffixUnclosed) : null, + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + inlinedDataStream ? createFlightDataInjectionTransformStream(inlinedDataStream, true) : null, + // Validate the root layout for missing html or body tags + validateRootLayout ? createRootLayoutValidatorStream() : null, + // Close tags should always be deferred to the end + createMoveSuffixStream(), + // Special head insertions + // TODO-APP: Insert server side html to end of head in app layout rendering, to avoid + // hydration errors. Remove this once it's ready to be handled by react itself. + createHeadInsertionTransformStream(getServerInsertedHTML) + ]); +} +async function continueDynamicPrerender(prerenderStream, { getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) { + return chainTransformers(prerenderStream, [ + // Buffer everything to avoid flushing too frequently + createBufferedTransformStream(), + createStripDocumentClosingTagsTransform(), + // Insert data-dpl-id attribute on the html tag + deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null, + // Insert generated tags to head + createHeadInsertionTransformStream(getServerInsertedHTML), + // Transform metadata + createMetadataTransformStream(getServerInsertedMetadata) + ]); +} +async function continueStaticPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) { + return chainTransformers(prerenderStream, [ + // Buffer everything to avoid flushing too frequently + createBufferedTransformStream(), + // Add build id comment to start of the HTML document (in export mode) + // Insert data-dpl-id attribute on the html tag + deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null, + // Insert generated tags to head + createHeadInsertionTransformStream(getServerInsertedHTML), + // Transform metadata + createMetadataTransformStream(getServerInsertedMetadata), + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + createFlightDataInjectionTransformStream(inlinedDataStream, true), + // Close tags should always be deferred to the end + createMoveSuffixStream() + ]); +} +async function continueStaticFallbackPrerender(prerenderStream, { inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) { + // Same as `continueStaticPrerender`, but also inserts an additional script + // to instruct the client to start fetching the hydration data as early + // as possible. + return chainTransformers(prerenderStream, [ + // Buffer everything to avoid flushing too frequently + createBufferedTransformStream(), + // Insert data-dpl-id attribute on the html tag + deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null, + // Insert generated tags to head + createHeadInsertionTransformStream(getServerInsertedHTML), + // Insert the client resume script into the head + createClientResumeScriptInsertionTransformStream(), + // Transform metadata + createMetadataTransformStream(getServerInsertedMetadata), + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + createFlightDataInjectionTransformStream(inlinedDataStream, true), + // Close tags should always be deferred to the end + createMoveSuffixStream() + ]); +} +async function continueDynamicHTMLResume(renderStream, { delayDataUntilFirstHtmlChunk, inlinedDataStream, getServerInsertedHTML, getServerInsertedMetadata, deploymentId }) { + return chainTransformers(renderStream, [ + // Buffer everything to avoid flushing too frequently + createBufferedTransformStream(), + // Insert data-dpl-id attribute on the html tag + deploymentId ? createHtmlDataDplIdTransformStream(deploymentId) : null, + // Insert generated tags to head + createHeadInsertionTransformStream(getServerInsertedHTML), + // Transform metadata + createMetadataTransformStream(getServerInsertedMetadata), + // Insert the inlined data (Flight data, form state, etc.) stream into the HTML + createFlightDataInjectionTransformStream(inlinedDataStream, delayDataUntilFirstHtmlChunk), + // Close tags should always be deferred to the end + createMoveSuffixStream() + ]); +} +function createDocumentClosingStream() { + return streamFromString(CLOSE_TAG); +} +function createRuntimePrefetchTransformStream(sentinel, isPartial, staleTime) { + const enc = new TextEncoder(); + // Search for: [] + // Replace with: [,] + const search = enc.encode(`[${sentinel}]`); + const first = search[0]; + const replace = enc.encode(`[${isPartial},${staleTime}]`); + const searchLen = search.length; + let currentChunk = null; + let found = false; + function processChunk(controller, nextChunk) { + if (found) { + if (nextChunk) { + controller.enqueue(nextChunk); + } + return; + } + if (currentChunk) { + // We can't search past the index that can contain a full match + let exclusiveUpperBound = currentChunk.length - (searchLen - 1); + if (nextChunk) { + // If we have any overflow bytes we can search up to the chunk's final byte + exclusiveUpperBound += Math.min(nextChunk.length, searchLen - 1); + } + if (exclusiveUpperBound < 1) { + // we can't match the current chunk. + controller.enqueue(currentChunk); + currentChunk = nextChunk // advance so we don't process this chunk again + ; + return; + } + let currentIndex = currentChunk.indexOf(first); + // check the current candidate match if it is within the bounds of our search space for the currentChunk + candidateLoop: while(-1 < currentIndex && currentIndex < exclusiveUpperBound){ + // We already know index 0 matches because we used indexOf to find the candidateIndex so we start at index 1 + let matchIndex = 1; + while(matchIndex < searchLen){ + const candidateIndex = currentIndex + matchIndex; + const candidateValue = candidateIndex < currentChunk.length ? currentChunk[candidateIndex] : nextChunk[candidateIndex - currentChunk.length]; + if (candidateValue !== search[matchIndex]) { + // No match, reset and continue the search from the next position + currentIndex = currentChunk.indexOf(first, currentIndex + 1); + continue candidateLoop; + } + matchIndex++; + } + // We found a complete match. currentIndex is our starting point to replace the value. + found = true; + // enqueue everything up to the match + controller.enqueue(currentChunk.subarray(0, currentIndex)); + // enqueue the replacement value + controller.enqueue(replace); + // If there are bytes in the currentChunk after the match enqueue them + if (currentIndex + searchLen < currentChunk.length) { + controller.enqueue(currentChunk.slice(currentIndex + searchLen)); + } + // If we have a next chunk we enqueue it now + if (nextChunk) { + // if replacement spills over to the next chunk we first exclude the replaced bytes + const overflowBytes = currentIndex + searchLen - currentChunk.length; + const truncatedChunk = overflowBytes > 0 ? nextChunk.subarray(overflowBytes) : nextChunk; + controller.enqueue(truncatedChunk); + } + // We are now in found mode and don't need to track currentChunk anymore + currentChunk = null; + return; + } + // No match found in this chunk, emit it and wait for the next one + controller.enqueue(currentChunk); + } + // Advance to the next chunk + currentChunk = nextChunk; + } + return new TransformStream({ + transform (chunk, controller) { + processChunk(controller, chunk); + }, + flush (controller) { + processChunk(controller, null); + } + }); +} + +//# sourceMappingURL=node-web-streams-helper.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/stream-utils/uint8array-helpers.js b/cli/app/node_modules/next/dist/server/stream-utils/uint8array-helpers.js new file mode 100644 index 00000000000..c0e0c0ac2ea --- /dev/null +++ b/cli/app/node_modules/next/dist/server/stream-utils/uint8array-helpers.js @@ -0,0 +1,74 @@ +/** + * Find the starting index of Uint8Array `b` within Uint8Array `a`. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + indexOfUint8Array: null, + isEquivalentUint8Arrays: null, + removeFromUint8Array: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + indexOfUint8Array: function() { + return indexOfUint8Array; + }, + isEquivalentUint8Arrays: function() { + return isEquivalentUint8Arrays; + }, + removeFromUint8Array: function() { + return removeFromUint8Array; + } +}); +function indexOfUint8Array(a, b) { + if (b.length === 0) return 0; + if (a.length === 0 || b.length > a.length) return -1; + // Use Node's native implementation when available. + if (typeof Buffer !== 'undefined') { + const haystack = Buffer.isBuffer(a) ? a : Buffer.from(a.buffer, a.byteOffset, a.byteLength); + return haystack.indexOf(b); + } + // start iterating through `a` + for(let i = 0; i <= a.length - b.length; i++){ + let completeMatch = true; + // from index `i`, iterate through `b` and check for mismatch + for(let j = 0; j < b.length; j++){ + // if the values do not match, then this isn't a complete match, exit `b` iteration early and iterate to next index of `a`. + if (a[i + j] !== b[j]) { + completeMatch = false; + break; + } + } + if (completeMatch) { + return i; + } + } + return -1; +} +function isEquivalentUint8Arrays(a, b) { + if (a.length !== b.length) return false; + for(let i = 0; i < a.length; i++){ + if (a[i] !== b[i]) return false; + } + return true; +} +function removeFromUint8Array(a, b) { + const tagIndex = indexOfUint8Array(a, b); + if (tagIndex === 0) return a.subarray(b.length); + if (tagIndex > -1) { + const removed = new Uint8Array(a.length - b.length); + removed.set(a.subarray(0, tagIndex)); + removed.set(a.subarray(tagIndex + b.length), tagIndex); + return removed; + } else { + return a; + } +} + +//# sourceMappingURL=uint8array-helpers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/constant.js b/cli/app/node_modules/next/dist/server/typescript/constant.js new file mode 100644 index 00000000000..c898f798f98 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/constant.js @@ -0,0 +1,98 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ALLOWED_EXPORTS: null, + ALLOWED_LAYOUT_PROPS: null, + ALLOWED_PAGE_PROPS: null, + DISALLOWED_SERVER_REACT_APIS: null, + DISALLOWED_SERVER_REACT_DOM_APIS: null, + LEGACY_CONFIG_EXPORT: null, + NEXT_TS_ERRORS: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ALLOWED_EXPORTS: function() { + return ALLOWED_EXPORTS; + }, + ALLOWED_LAYOUT_PROPS: function() { + return ALLOWED_LAYOUT_PROPS; + }, + ALLOWED_PAGE_PROPS: function() { + return ALLOWED_PAGE_PROPS; + }, + DISALLOWED_SERVER_REACT_APIS: function() { + return DISALLOWED_SERVER_REACT_APIS; + }, + DISALLOWED_SERVER_REACT_DOM_APIS: function() { + return DISALLOWED_SERVER_REACT_DOM_APIS; + }, + LEGACY_CONFIG_EXPORT: function() { + return LEGACY_CONFIG_EXPORT; + }, + NEXT_TS_ERRORS: function() { + return NEXT_TS_ERRORS; + } +}); +const NEXT_TS_ERRORS = { + INVALID_SERVER_API: 71001, + INVALID_ENTRY_EXPORT: 71002, + INVALID_OPTION_VALUE: 71003, + MISPLACED_ENTRY_DIRECTIVE: 71004, + INVALID_PAGE_PROP: 71005, + INVALID_CONFIG_OPTION: 71006, + INVALID_CLIENT_ENTRY_PROP: 71007, + INVALID_METADATA_EXPORT: 71008, + INVALID_ERROR_COMPONENT: 71009, + INVALID_ENTRY_DIRECTIVE: 71010, + INVALID_SERVER_ENTRY_RETURN: 71011 +}; +const ALLOWED_EXPORTS = [ + 'config', + 'generateStaticParams', + 'metadata', + 'generateMetadata', + 'viewport', + 'generateViewport' +]; +const LEGACY_CONFIG_EXPORT = 'config'; +const DISALLOWED_SERVER_REACT_APIS = [ + 'useState', + 'useEffect', + 'useEffectEvent', + 'useLayoutEffect', + 'useDeferredValue', + 'useImperativeHandle', + 'useInsertionEffect', + 'useReducer', + 'useRef', + 'useSyncExternalStore', + 'useTransition', + 'Component', + 'PureComponent', + 'createContext', + 'createFactory', + 'experimental_useOptimistic', + 'useOptimistic', + 'useActionState' +]; +const DISALLOWED_SERVER_REACT_DOM_APIS = [ + 'useFormStatus', + 'useFormState' +]; +const ALLOWED_PAGE_PROPS = [ + 'params', + 'searchParams' +]; +const ALLOWED_LAYOUT_PROPS = [ + 'params', + 'children' +]; + +//# sourceMappingURL=constant.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/index.js b/cli/app/node_modules/next/dist/server/typescript/index.js new file mode 100644 index 00000000000..3d11502ae93 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/index.js @@ -0,0 +1,199 @@ +/** + * This is a TypeScript language service plugin for Next.js app directory, + * it provides the following features: + * + * - Warns about disallowed React APIs in server components. + * - Warns about disallowed layout and page exports. + * - Autocompletion for entry configurations. + * - Hover hint and docs for entry configurations. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createTSPlugin", { + enumerable: true, + get: function() { + return createTSPlugin; + } +}); +const _utils = require("./utils"); +const _constant = require("./constant"); +const _config = /*#__PURE__*/ _interop_require_default(require("./rules/config")); +const _server = /*#__PURE__*/ _interop_require_default(require("./rules/server")); +const _entry = /*#__PURE__*/ _interop_require_default(require("./rules/entry")); +const _clientboundary = /*#__PURE__*/ _interop_require_default(require("./rules/client-boundary")); +const _serverboundary = /*#__PURE__*/ _interop_require_default(require("./rules/server-boundary")); +const _metadata = /*#__PURE__*/ _interop_require_default(require("./rules/metadata")); +const _error = /*#__PURE__*/ _interop_require_default(require("./rules/error")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const createTSPlugin = ({ typescript: ts })=>{ + function create(info) { + // Get plugin options + // config is the plugin options from the user's tsconfig.json + // e.g. { "plugins": [{ "name": "next", "enabled": true }] } + // config will be { "name": "next", "enabled": true } + // The default user config is { "name": "next" } + const isPluginEnabled = info.config.enabled ?? true; + if (!isPluginEnabled) { + return info.languageService; + } + (0, _utils.init)({ + ts, + info + }); + // Set up decorator object + const proxy = Object.create(null); + for (let k of Object.keys(info.languageService)){ + const x = info.languageService[k]; + // @ts-expect-error - JS runtime trickery which is tricky to type tersely + proxy[k] = (...args)=>x.apply(info.languageService, args); + } + // Auto completion + proxy.getCompletionsAtPosition = (fileName, position, options)=>{ + let prior = info.languageService.getCompletionsAtPosition(fileName, position, options) || { + isGlobalCompletion: false, + isMemberCompletion: false, + isNewIdentifierLocation: false, + entries: [] + }; + if (!(0, _utils.isAppEntryFile)(fileName)) return prior; + // If it's a server entry. + const entryInfo = (0, _utils.getEntryInfo)(fileName); + if (!entryInfo.client) { + // Remove specified entries from completion list + prior.entries = _server.default.filterCompletionsAtPosition(prior.entries); + } + // Add auto completions for export configs. + _config.default.addCompletionsAtPosition(fileName, position, prior); + const source = (0, _utils.getSource)(fileName); + if (!source) return prior; + ts.forEachChild(source, (node)=>{ + // Auto completion for default export function's props. + if ((0, _utils.isPositionInsideNode)(position, node) && (0, _utils.isDefaultFunctionExport)(node)) { + prior.entries.push(..._entry.default.getCompletionsAtPosition(fileName, node, position)); + } + }); + return prior; + }; + // Show auto completion details + proxy.getCompletionEntryDetails = (fileName, position, entryName, formatOptions, source, preferences, data)=>{ + const entryCompletionEntryDetails = _config.default.getCompletionEntryDetails(entryName, data, fileName); + if (entryCompletionEntryDetails) return entryCompletionEntryDetails; + return info.languageService.getCompletionEntryDetails(fileName, position, entryName, formatOptions, source, preferences, data); + }; + // Quick info + proxy.getQuickInfoAtPosition = (fileName, position)=>{ + const prior = info.languageService.getQuickInfoAtPosition(fileName, position); + if (!(0, _utils.isAppEntryFile)(fileName)) return prior; + // Remove type suggestions for disallowed APIs in server components. + const entryInfo = (0, _utils.getEntryInfo)(fileName); + if (!entryInfo.client) { + const definitions = info.languageService.getDefinitionAtPosition(fileName, position); + if (definitions && _server.default.hasDisallowedReactAPIDefinition(definitions)) { + return; + } + } + const overridden = _config.default.getQuickInfoAtPosition(fileName, position); + if (overridden) return overridden; + return prior; + }; + // Show errors for disallowed imports + proxy.getSemanticDiagnostics = (fileName)=>{ + const prior = info.languageService.getSemanticDiagnostics(fileName); + const source = (0, _utils.getSource)(fileName); + if (!source) return prior; + let isClientEntry = false; + let isServerEntry = false; + const isAppEntry = (0, _utils.isAppEntryFile)(fileName); + try { + const entryInfo = (0, _utils.getEntryInfo)(fileName, true); + isClientEntry = entryInfo.client; + isServerEntry = entryInfo.server; + } catch (e) { + prior.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.MISPLACED_ENTRY_DIRECTIVE, + ...e + }); + isClientEntry = false; + isServerEntry = false; + } + if ((0, _utils.isInsideApp)(fileName)) { + const errorDiagnostic = _error.default.getSemanticDiagnostics(source, isClientEntry); + prior.push(...errorDiagnostic); + } + ts.forEachChild(source, (node)=>{ + var _node_modifiers, _node_modifiers1; + if (ts.isImportDeclaration(node)) { + // import ... + if (isAppEntry) { + if (!isClientEntry || isServerEntry) { + // Check if it has valid imports in the server layer + const diagnostics = _server.default.getSemanticDiagnosticsForImportDeclaration(source, node); + prior.push(...diagnostics); + } + } + } else if (ts.isVariableStatement(node) && ((_node_modifiers = node.modifiers) == null ? void 0 : _node_modifiers.some((m)=>m.kind === ts.SyntaxKind.ExportKeyword))) { + // export const ... + if (isAppEntry) { + // Check if it has correct option exports + const diagnostics = _config.default.getSemanticDiagnosticsForExportVariableStatement(source, node); + const metadataDiagnostics = isClientEntry ? _metadata.default.client.getSemanticDiagnosticsForExportVariableStatement(fileName, node) : _metadata.default.server.getSemanticDiagnosticsForExportVariableStatement(fileName, node); + prior.push(...diagnostics, ...metadataDiagnostics); + } + if (isClientEntry) { + prior.push(..._clientboundary.default.getSemanticDiagnosticsForExportVariableStatement(source, node)); + } + if (isServerEntry) { + prior.push(..._serverboundary.default.getSemanticDiagnosticsForExportVariableStatement(source, node)); + } + } else if ((0, _utils.isDefaultFunctionExport)(node)) { + // export default function ... + if (isAppEntry) { + const diagnostics = _entry.default.getSemanticDiagnostics(fileName, source, node); + prior.push(...diagnostics); + } + if (isClientEntry) { + prior.push(..._clientboundary.default.getSemanticDiagnosticsForFunctionExport(source, node)); + } + if (isServerEntry) { + prior.push(..._serverboundary.default.getSemanticDiagnosticsForFunctionExport(source, node)); + } + } else if (ts.isFunctionDeclaration(node) && ((_node_modifiers1 = node.modifiers) == null ? void 0 : _node_modifiers1.some((m)=>m.kind === ts.SyntaxKind.ExportKeyword))) { + // export function ... + if (isAppEntry) { + const metadataDiagnostics = isClientEntry ? _metadata.default.client.getSemanticDiagnosticsForExportVariableStatement(fileName, node) : _metadata.default.server.getSemanticDiagnosticsForExportVariableStatement(fileName, node); + prior.push(...metadataDiagnostics); + } + if (isClientEntry) { + prior.push(..._clientboundary.default.getSemanticDiagnosticsForFunctionExport(source, node)); + } + if (isServerEntry) { + prior.push(..._serverboundary.default.getSemanticDiagnosticsForFunctionExport(source, node)); + } + } else if (ts.isExportDeclaration(node)) { + // export { ... } + if (isAppEntry) { + const metadataDiagnostics = isClientEntry ? _metadata.default.client.getSemanticDiagnosticsForExportDeclaration(fileName, node) : _metadata.default.server.getSemanticDiagnosticsForExportDeclaration(fileName, node); + prior.push(...metadataDiagnostics); + } + if (isServerEntry) { + prior.push(..._serverboundary.default.getSemanticDiagnosticsForExportDeclaration(source, node)); + } + } + }); + return prior; + }; + return proxy; + } + return { + create + }; +}; + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/client-boundary.js b/cli/app/node_modules/next/dist/server/typescript/rules/client-boundary.js new file mode 100644 index 00000000000..0f95d6aeda6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/client-boundary.js @@ -0,0 +1,97 @@ +// This module provides intellisense for all components that has the `"use client"` directive. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _constant = require("../constant"); +const _utils = require("../utils"); +const clientBoundary = { + getSemanticDiagnosticsForExportVariableStatement (source, node) { + const ts = (0, _utils.getTs)(); + const diagnostics = []; + if (ts.isVariableDeclarationList(node.declarationList)) { + for (const declaration of node.declarationList.declarations){ + const initializer = declaration.initializer; + if (initializer && ts.isArrowFunction(initializer)) { + diagnostics.push(...clientBoundary.getSemanticDiagnosticsForFunctionExport(source, initializer)); + } + } + } + return diagnostics; + }, + getSemanticDiagnosticsForFunctionExport (source, node) { + var _node_parameters; + const ts = (0, _utils.getTs)(); + const typeChecker = (0, _utils.getTypeChecker)(); + if (!typeChecker) return []; + const diagnostics = []; + const isErrorFile = /[\\/]error\.tsx?$/.test(source.fileName); + const isGlobalErrorFile = /[\\/]global-error\.tsx?$/.test(source.fileName); + const props = (_node_parameters = node.parameters) == null ? void 0 : _node_parameters[0]; + if (props) { + var _propsType_symbol_getDeclarations, _propsType_symbol; + const propsType = typeChecker.getTypeAtLocation(props); + const typeNode = (_propsType_symbol = propsType.symbol) == null ? void 0 : (_propsType_symbol_getDeclarations = _propsType_symbol.getDeclarations()) == null ? void 0 : _propsType_symbol_getDeclarations[0]; + if (typeNode && ts.isTypeLiteralNode(typeNode)) { + for (const member of typeNode.members){ + if (ts.isPropertySignature(member)) { + const propName = member.name.getText(); + const propType = member.type; + if (propType) { + var _propTypeInfo_symbol_getDeclarations, _propTypeInfo_symbol; + const propTypeInfo = typeChecker.getTypeAtLocation(propType); + const typeDeclarationNode = (_propTypeInfo_symbol = propTypeInfo.symbol) == null ? void 0 : (_propTypeInfo_symbol_getDeclarations = _propTypeInfo_symbol.getDeclarations()) == null ? void 0 : _propTypeInfo_symbol_getDeclarations[0]; + if (typeDeclarationNode) { + if (ts.isFunctionTypeNode(typeDeclarationNode) || // someFunc(): void + ts.isMethodSignature(typeDeclarationNode)) { + // By convention, props named "action" can accept functions since we + // assume these are Server Actions. Structurally, there's no + // difference between a Server Action and a normal function until + // TypeScript exposes directives in the type of a function. This + // will miss accidentally passing normal functions but a false + // negative is better than a false positive given how frequent the + // false-positive would be. + const maybeServerAction = propName === 'action' || /.+Action$/.test(propName); + // There's a special case for the error file that the `reset` prop + // is allowed to be a function: + // https://github.com/vercel/next.js/issues/46573 + const isErrorReset = (isErrorFile || isGlobalErrorFile) && propName === 'reset'; + if (!maybeServerAction && !isErrorReset) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_CLIENT_ENTRY_PROP, + messageText: `Props must be serializable for components in the "use client" entry file. ` + `"${propName}" is a function that's not a Server Action. ` + `Rename "${propName}" either to "action" or have its name end with "Action" e.g. "${propName}Action" to indicate it is a Server Action.`, + start: propType.getStart(), + length: propType.getWidth() + }); + } + } else if (// Show warning for not serializable props. + ts.isConstructorTypeNode(typeDeclarationNode) || ts.isClassDeclaration(typeDeclarationNode)) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_CLIENT_ENTRY_PROP, + messageText: `Props must be serializable for components in the "use client" entry file, "${propName}" is invalid.`, + start: propType.getStart(), + length: propType.getWidth() + }); + } + } + } + } + } + } + } + return diagnostics; + } +}; +const _default = clientBoundary; + +//# sourceMappingURL=client-boundary.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/config.js b/cli/app/node_modules/next/dist/server/typescript/rules/config.js new file mode 100644 index 00000000000..d30579e0496 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/config.js @@ -0,0 +1,512 @@ +// This module provides intellisense for page and layout's exported configs. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _utils = require("../utils"); +const _constant = require("../constant"); +const API_DOCS = { + dynamic: { + description: 'The `dynamic` option provides a few ways to opt in or out of dynamic behavior.', + options: { + '"auto"': "Heuristic to cache as much as possible but doesn't prevent any component to opt-in to dynamic behavior.", + '"force-dynamic"': 'This disables all caching of fetches and always revalidates. (This is equivalent to `getServerSideProps`.)', + '"error"': 'This errors if any dynamic Hooks or fetches are used. (This is equivalent to `getStaticProps`.)', + '"force-static"': 'This forces caching of all fetches and returns empty values from `cookies`, `headers` and `useSearchParams`.' + }, + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamic' + }, + fetchCache: { + description: "The `fetchCache` option controls how Next.js statically caches fetches. By default it statically caches fetches reachable before any dynamic Hooks are used, and it doesn't cache fetches that are discovered after that.", + options: { + '"force-no-store"': "This lets you intentionally opt-out of all caching of data. This option forces all fetches to be refetched every request even if the `cache: 'force-cache'` option is passed to `fetch()`.", + '"only-no-store"': "This lets you enforce that all data opts out of caching. This option makes `fetch()` reject with an error if `cache: 'force-cache'` is provided. It also changes the default to `no-store`.", + '"default-no-store"': "Allows any explicit `cache` option to be passed to `fetch()` but if `'default'`, or no option, is provided then it defaults to `'no-store'`. This means that even fetches before a dynamic Hook are considered dynamic.", + '"auto"': "This is the default option. It caches any fetches with the default `cache` option provided, that happened before a dynamic Hook is used and don't cache any such fetches if they're issued after a dynamic Hook.", + '"default-cache"': "Allows any explicit `cache` option to be passed to `fetch()` but if `'default'`, or no option, is provided then it defaults to `'force-cache'`. This means that even fetches before a dynamic Hook are considered dynamic.", + '"only-cache"': "This lets you enforce that all data opts into caching. This option makes `fetch()` reject with an error if `cache: 'force-cache'` is provided. It also changes the default to `force-cache`. This error can be discovered early during static builds - or dynamically during Edge rendering.", + '"force-cache"': "This lets you intentionally opt-in to all caching of data. This option forces all fetches to be cache even if the `cache: 'no-store'` option is passed to `fetch()`." + }, + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#fetchcache' + }, + preferredRegion: { + description: 'Specify the perferred region that this layout or page should be deployed to. If the region option is not specified, it inherits the option from the nearest parent layout. The root defaults to `"auto"`.\n\nYou can also specify a region, such as "iad1", or an array of regions, such as `["iad1", "sfo1"]`.', + options: { + '"auto"': 'Next.js will first deploy to the `"home"` region. Then if it doesn\'t detect any waterfall requests after a few requests, it can upgrade that route, to be deployed globally. If it detects any waterfall requests after that, it can eventually downgrade back to `"home`".', + '"global"': 'Prefer deploying globally.', + '"home"': 'Prefer deploying to the Home region.' + }, + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#preferredregion', + isValid: (value)=>{ + try { + const parsed = JSON.parse(value); + return typeof parsed === 'string' || Array.isArray(parsed) && !parsed.some((v)=>typeof v !== 'string'); + } catch (err) { + return false; + } + }, + getHint: (value)=>{ + if (value === 'auto') return `Automatically chosen by Next.js.`; + if (value === 'global') return `Prefer deploying globally.`; + if (value === 'home') return `Prefer deploying to the Home region.`; + if (Array.isArray(value)) return `Deploy to regions: ${value.join(', ')}.`; + if (typeof value === 'string') return `Deploy to region: ${value}.`; + } + }, + revalidate: { + description: "The `revalidate` option sets the default revalidation time for that layout or page. Note that it doesn't override the value specify by each `fetch()`.", + type: 'mixed', + options: { + false: 'This is the default and changes the fetch cache to indefinitely cache anything that uses force-cache or is fetched before a dynamic Hook/fetch.', + 0: 'Specifying `0` implies that this layout or page should never be static.', + 30: 'Set the revalidation time to `30` seconds. The value can be `0` or any positive number.' + }, + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#revalidate', + isValid: (value)=>{ + return value === 'false' || Number(value.replace(/_/g, '')) >= 0; + }, + getHint: (value)=>{ + return `Set the default revalidation time to \`${value}\` seconds.`; + } + }, + dynamicParams: { + description: '`dynamicParams` replaces the `fallback` option of `getStaticPaths`. It controls whether we allow `dynamicParams` beyond the generated static params from `generateStaticParams`.', + options: { + true: 'Allow rendering dynamic params that are not generated by `generateStaticParams`.', + false: 'Disallow rendering dynamic params that are not generated by `generateStaticParams`.' + }, + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#dynamicparams', + isValid: (value)=>{ + return value === 'true' || value === 'false'; + } + }, + runtime: { + description: 'The `runtime` option controls the preferred runtime to render this route.', + options: { + '"nodejs"': 'Prefer the Node.js runtime.', + '"edge"': 'Prefer the Edge runtime.', + '"experimental-edge"': `@deprecated\n\nThis option is no longer experimental. Use \`edge\` instead.` + }, + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#runtime' + }, + metadata: { + description: 'Next.js Metadata configurations', + link: 'https://nextjs.org/docs/app/building-your-application/optimizing/metadata', + insertText: 'metadata: Metadata = {};' + }, + generateMetadata: { + description: 'Next.js generateMetadata configurations', + link: 'https://nextjs.org/docs/app/api-reference/functions/generate-metadata', + insertText: 'generateMetadata = (): Metadata => { return {} };' + }, + maxDuration: { + description: '`maxDuration` allows you to set max default execution time for your function. If it is not specified, the default value is dependent on your deployment platform and plan.', + link: 'https://nextjs.org/docs/app/api-reference/file-conventions/route-segment-config#maxduration' + }, + unstable_instant: { + description: `Specifies the default prefetching behavior for this segment. This configuration is currently under development and will change.`, + link: '(docs coming soon)', + type: 'object | false', + // TODO: ideally, we'd validate the config object somehow, but this is difficult to do + // with the way this plugin is currently structured. + // For now, since we don't provide an `options` here, we won't do any validation in + // `getSemanticDiagnosticsForExportVariableStatement` below, and only provide hover a tooltip + autocomplete. + insertText: 'unstable_instant = { prefetch: "static" };' + }, + unstable_dynamicStaleTime: { + description: `Controls how long the client-side router cache retains dynamic page data (in seconds). Pages only — not allowed in layouts. Cannot be combined with \`unstable_instant\`.`, + link: '(docs coming soon)', + type: 'number', + isValid: (value)=>{ + return Number(value.replace(/_/g, '')) >= 0; + }, + getHint: (value)=>{ + return `Set the dynamic stale time to \`${value}\` seconds.`; + } + } +}; +function visitEntryConfig(fileName, position, callback) { + const source = (0, _utils.getSource)(fileName); + if (source) { + const ts = (0, _utils.getTs)(); + ts.forEachChild(source, function visit(node) { + // Covered by this node + if ((0, _utils.isPositionInsideNode)(position, node)) { + var _node_modifiers; + // Export variable + if (ts.isVariableStatement(node) && ((_node_modifiers = node.modifiers) == null ? void 0 : _node_modifiers.some((m)=>m.kind === ts.SyntaxKind.ExportKeyword))) { + if (ts.isVariableDeclarationList(node.declarationList)) { + for (const declaration of node.declarationList.declarations){ + if ((0, _utils.isPositionInsideNode)(position, declaration)) { + // `export const ... = ...` + const text = declaration.name.getText(); + callback(text, declaration); + } + } + } + } + } + }); + } +} +function createAutoCompletionOptionName(sort, name) { + const ts = (0, _utils.getTs)(); + return { + name, + insertText: API_DOCS[name].insertText, + sortText: '!' + sort, + kind: ts.ScriptElementKind.constElement, + kindModifiers: ts.ScriptElementKindModifier.exportedModifier, + labelDetails: { + description: `Next.js ${name} option` + }, + data: { + exportName: name, + moduleSpecifier: 'next/typescript/entry_option_name' + } + }; +} +function createAutoCompletionOptionValue(sort, name, apiName) { + const ts = (0, _utils.getTs)(); + const isString = name.startsWith('"'); + return { + name, + insertText: (0, _utils.removeStringQuotes)(name), + sortText: '' + sort, + kind: isString ? ts.ScriptElementKind.string : ts.ScriptElementKind.unknown, + kindModifiers: ts.ScriptElementKindModifier.none, + labelDetails: { + description: `Next.js ${apiName} option` + }, + data: { + exportName: apiName, + moduleSpecifier: 'next/typescript/entry_option_value' + } + }; +} +function getAPIDescription(api) { + return API_DOCS[api].description + '\n\n' + Object.entries(API_DOCS[api].options || {}).map(([key, value])=>`- \`${key}\`: ${value}`).join('\n'); +} +const config = { + // Auto completion for entry exported configs. + addCompletionsAtPosition (fileName, position, prior) { + visitEntryConfig(fileName, position, (entryConfig, declaration)=>{ + if (!API_DOCS[entryConfig]) { + if ((0, _utils.isPositionInsideNode)(position, declaration.name)) { + prior.entries.push(...Object.keys(API_DOCS).map((name, index)=>{ + return createAutoCompletionOptionName(index, name); + })); + } + return; + } + prior.entries.push(...Object.keys(API_DOCS[entryConfig].options || {}).map((name, index)=>{ + return createAutoCompletionOptionValue(index, name, entryConfig); + })); + }); + }, + // Show docs when hovering on the exported configs. + getQuickInfoAtPosition (fileName, position) { + const ts = (0, _utils.getTs)(); + let overridden; + visitEntryConfig(fileName, position, (entryConfig, declaration)=>{ + if (!API_DOCS[entryConfig]) return; + const name = declaration.name; + const value = declaration.initializer; + const docsLink = { + kind: 'text', + text: `\n\nRead more about the "${entryConfig}" option: ` + API_DOCS[entryConfig].link + }; + // When the value is a flexible type (like a function), also compute its + // inferred type so we can surface it alongside the docs. This is useful + // even when the value is considered invalid by the config validation, + // as long as it's not a direct literal export. + let displayParts = []; + const typeChecker = (0, _utils.getTypeChecker)(); + const isString = !!value && ts.isStringLiteral(value); + const isFunctionValue = !!value && !isString && (ts.isArrowFunction(value) || ts.isFunctionExpression(value) || ts.isFunctionDeclaration(value)); + if (typeChecker && value && isFunctionValue) { + try { + // If we're hovering the config identifier, ask for the type at the + // identifier; otherwise, ask at the value node. This makes sure + // highlighting `generateMetadata` itself also shows the inferred type. + const typeTarget = (0, _utils.isPositionInsideNode)(position, name) ? name : value; + const type = typeChecker.getTypeAtLocation(typeTarget); + if (type) { + const typeString = typeChecker.typeToString(type, typeTarget); + if (typeString) { + displayParts = [ + { + text: typeString, + kind: 'typeName' + } + ]; + } + } + } catch { + // If type checking fails, continue without type info. + } + } + // For non-function values (like literals), hovering the value should show + // option-specific docs. For function-valued configs (e.g. `generateMetadata`), + // we let TypeScript handle hover anywhere in the initializer except for the + // export identifier itself. + if (value && !isFunctionValue && (0, _utils.isPositionInsideNode)(position, value)) { + var _API_DOCS_entryConfig_isValid, _API_DOCS_entryConfig, _API_DOCS_entryConfig_options; + // Hovering the value of the config + const text = (0, _utils.removeStringQuotes)(value.getText()); + const key = isString ? `"${text}"` : text; + const isValid = API_DOCS[entryConfig].isValid ? (_API_DOCS_entryConfig_isValid = (_API_DOCS_entryConfig = API_DOCS[entryConfig]).isValid) == null ? void 0 : _API_DOCS_entryConfig_isValid.call(_API_DOCS_entryConfig, key) : !!((_API_DOCS_entryConfig_options = API_DOCS[entryConfig].options) == null ? void 0 : _API_DOCS_entryConfig_options[key]); + if (isValid) { + var _API_DOCS_entryConfig_options1, _API_DOCS_entryConfig_getHint, _API_DOCS_entryConfig1; + overridden = { + kind: ts.ScriptElementKind.enumElement, + kindModifiers: ts.ScriptElementKindModifier.none, + textSpan: { + start: value.getStart(), + length: value.getWidth() + }, + displayParts: [], + documentation: [ + { + kind: 'text', + text: ((_API_DOCS_entryConfig_options1 = API_DOCS[entryConfig].options) == null ? void 0 : _API_DOCS_entryConfig_options1[key]) || ((_API_DOCS_entryConfig_getHint = (_API_DOCS_entryConfig1 = API_DOCS[entryConfig]).getHint) == null ? void 0 : _API_DOCS_entryConfig_getHint.call(_API_DOCS_entryConfig1, key)) || '' + }, + docsLink + ] + }; + } else { + // Wrong value: still show the docs link, and when available, the + // inferred type for non-literal (i.e. non-direct) exports. + overridden = { + kind: ts.ScriptElementKind.enumElement, + kindModifiers: ts.ScriptElementKindModifier.none, + textSpan: { + start: value.getStart(), + length: value.getWidth() + }, + displayParts, + documentation: [ + docsLink + ] + }; + } + } else { + // For function-valued configs, if we're hovering anywhere within the + // initializer (including `async`, parameters, or the body) but not on + // the export identifier itself, don't override TypeScript's default + // hover. We only want to override when hovering the config identifier + // (e.g. `generateMetadata`), not arbitrary tokens within the function. + if (isFunctionValue && (0, _utils.isPositionInsideNode)(position, value) && // hover is somewhere within the function initializer + !(0, _utils.isPositionInsideNode)(position, name) // ...but not on the export identifier itself + ) { + return; + } + // Hovers the name of the config + overridden = { + kind: ts.ScriptElementKind.enumElement, + kindModifiers: ts.ScriptElementKindModifier.none, + textSpan: { + start: name.getStart(), + length: name.getWidth() + }, + displayParts, + documentation: [ + { + kind: 'text', + text: getAPIDescription(entryConfig) + }, + docsLink + ] + }; + } + }); + return overridden; + }, + // Show details on the side when auto completing. + getCompletionEntryDetails (entryName, data, fileName) { + const ts = (0, _utils.getTs)(); + if (data && data.moduleSpecifier && data.moduleSpecifier.startsWith('next/typescript')) { + let content = ''; + if (data.moduleSpecifier === 'next/typescript/entry_option_name') { + content = getAPIDescription(entryName); + } else { + const options = API_DOCS[data.exportName].options; + if (!options) return; + content = options[entryName]; + } + if (entryName === 'metadata' || entryName === 'generateMetadata') { + const sourceFile = (0, _utils.getSource)(fileName); + let start = 0; + let foundMetadataImport = false; + if (sourceFile) { + const visitor = (node)=>{ + // Check for top directive + if (ts.isExpressionStatement(node) && ts.isStringLiteral(node.expression) && node.expression.getStart() === 0) { + const text = node.expression.text; + if (text.startsWith('use ')) { + start = node.end + 1; + return node // Continue traversal + ; + } + } + // Check for Metadata import + if (ts.isImportDeclaration(node) && (node.moduleSpecifier.getText() === '"next"' || node.moduleSpecifier.getText() === "'next'")) { + var _node_importClause; + const namedImports = (_node_importClause = node.importClause) == null ? void 0 : _node_importClause.namedBindings; + if (namedImports && ts.isNamedImports(namedImports)) { + foundMetadataImport = namedImports.elements.some((element)=>{ + var _element_propertyName; + const name = element.name.getText(); + const propertyName = (_element_propertyName = element.propertyName) == null ? void 0 : _element_propertyName.getText(); + return name === 'Metadata' || propertyName === 'Metadata'; + }); + if (foundMetadataImport) { + return; // Stop traversal + } + } + } + return node; + }; + for (const statement of sourceFile.statements){ + if (foundMetadataImport) break; + ts.visitNode(statement, visitor); + } + } + return { + name: entryName, + kind: ts.ScriptElementKind.enumElement, + kindModifiers: ts.ScriptElementKindModifier.none, + displayParts: [], + codeActions: foundMetadataImport ? undefined : [ + { + description: `Import type 'Metadata' from module 'next'`, + changes: [ + { + fileName, + textChanges: [ + { + span: { + start, + length: 0 + }, + newText: `import type { Metadata } from 'next';\n` + } + ] + } + ] + } + ], + documentation: [ + { + kind: 'text', + text: content + } + ] + }; + } + return { + name: entryName, + kind: ts.ScriptElementKind.enumElement, + kindModifiers: ts.ScriptElementKindModifier.none, + displayParts: [], + documentation: [ + { + kind: 'text', + text: content + } + ] + }; + } + }, + // Show errors for invalid export fields. + getSemanticDiagnosticsForExportVariableStatement (source, node) { + const ts = (0, _utils.getTs)(); + const diagnostics = []; + // Check if it has correct option exports + if (ts.isVariableDeclarationList(node.declarationList)) { + for (const declaration of node.declarationList.declarations){ + const name = declaration.name; + if (ts.isIdentifier(name)) { + if (!_constant.ALLOWED_EXPORTS.includes(name.text) && !API_DOCS[name.text]) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_ENTRY_EXPORT, + messageText: `"${name.text}" is not a valid Next.js entry export value.`, + start: name.getStart(), + length: name.getWidth() + }); + } else if (API_DOCS[name.text]) { + // Check if the value is valid + const value = declaration.initializer; + const options = API_DOCS[name.text].options; + if (value && options) { + let displayedValue = ''; + let errorMessage = ''; + let isInvalid = false; + if (ts.isStringLiteral(value) || ts.isNoSubstitutionTemplateLiteral(value)) { + var _API_DOCS_name_text_isValid, _API_DOCS_name_text; + const val = '"' + (0, _utils.removeStringQuotes)(value.getText()) + '"'; + const allowedValues = Object.keys(options).filter((v)=>/^['"]/.test(v)); + if (!allowedValues.includes(val) && !((_API_DOCS_name_text_isValid = (_API_DOCS_name_text = API_DOCS[name.text]).isValid) == null ? void 0 : _API_DOCS_name_text_isValid.call(_API_DOCS_name_text, val))) { + isInvalid = true; + displayedValue = val; + } + } else if (ts.isNumericLiteral(value) || ts.isPrefixUnaryExpression(value) && ts.isMinusToken(value.operator) && (ts.isNumericLiteral(value.operand.kind) || ts.isIdentifier(value.operand.kind) && value.operand.kind.getText() === 'Infinity') || ts.isIdentifier(value) && value.getText() === 'Infinity') { + var _API_DOCS_name_text_isValid1, _API_DOCS_name_text1; + const v = value.getText(); + if (!((_API_DOCS_name_text_isValid1 = (_API_DOCS_name_text1 = API_DOCS[name.text]).isValid) == null ? void 0 : _API_DOCS_name_text_isValid1.call(_API_DOCS_name_text1, v))) { + isInvalid = true; + displayedValue = v; + } + } else if (value.kind === ts.SyntaxKind.TrueKeyword || value.kind === ts.SyntaxKind.FalseKeyword) { + var _API_DOCS_name_text_isValid2, _API_DOCS_name_text2; + const v = value.getText(); + if (!((_API_DOCS_name_text_isValid2 = (_API_DOCS_name_text2 = API_DOCS[name.text]).isValid) == null ? void 0 : _API_DOCS_name_text_isValid2.call(_API_DOCS_name_text2, v))) { + isInvalid = true; + displayedValue = v; + } + } else if (ts.isArrayLiteralExpression(value)) { + var _API_DOCS_name_text_isValid3, _API_DOCS_name_text3; + const v = value.getText(); + if (!((_API_DOCS_name_text_isValid3 = (_API_DOCS_name_text3 = API_DOCS[name.text]).isValid) == null ? void 0 : _API_DOCS_name_text_isValid3.call(_API_DOCS_name_text3, JSON.stringify(value.elements.map((e)=>e.getText()))))) { + isInvalid = true; + displayedValue = v; + } + } else if (// Other literals + ts.isBigIntLiteral(value) || ts.isObjectLiteralExpression(value) || ts.isRegularExpressionLiteral(value) || ts.isPrefixUnaryExpression(value)) { + isInvalid = true; + displayedValue = value.getText(); + } else { + // Not a literal, error because it's not statically analyzable + isInvalid = true; + displayedValue = value.getText(); + errorMessage = `"${displayedValue}" is not a valid value for the "${name.text}" option. The configuration must be statically analyzable.`; + } + if (isInvalid) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_OPTION_VALUE, + messageText: errorMessage || `"${displayedValue}" is not a valid value for the "${name.text}" option.`, + start: value.getStart(), + length: value.getWidth() + }); + } + } + } + } + } + } + return diagnostics; + } +}; +const _default = config; + +//# sourceMappingURL=config.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/entry.js b/cli/app/node_modules/next/dist/server/typescript/rules/entry.js new file mode 100644 index 00000000000..ad74944ef17 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/entry.js @@ -0,0 +1,149 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _constant = require("../constant"); +const _utils = require("../utils"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const entry = { + // Give auto completion for the component's props + getCompletionsAtPosition (fileName, node, position) { + var _node_parameters; + const ts = (0, _utils.getTs)(); + const entries = []; + // Default export function might not accept parameters + const paramNode = (_node_parameters = node.parameters) == null ? void 0 : _node_parameters[0]; + if (paramNode && (0, _utils.isPositionInsideNode)(position, paramNode)) { + const props = paramNode == null ? void 0 : paramNode.name; + if (props && ts.isObjectBindingPattern(props)) { + let validProps = []; + let validPropsWithType = []; + let type; + if ((0, _utils.isPageFile)(fileName)) { + // For page entries (page.js), it can only have `params` and `searchParams` + // as the prop names. + validProps = _constant.ALLOWED_PAGE_PROPS; + validPropsWithType = _constant.ALLOWED_PAGE_PROPS; + type = 'page'; + } else { + // For layout entires, check if it has any named slots. + const currentDir = _path.default.dirname(fileName); + const items = _fs.default.readdirSync(currentDir, { + withFileTypes: true + }); + const slots = []; + for (const item of items){ + if (item.isDirectory() && item.name.startsWith('@')) { + slots.push(item.name.slice(1)); + } + } + validProps = _constant.ALLOWED_LAYOUT_PROPS.concat(slots); + validPropsWithType = _constant.ALLOWED_LAYOUT_PROPS.concat(slots.map((s)=>`${s}: React.ReactNode`)); + type = 'layout'; + } + // Auto completion for props + for (const element of props.elements){ + if ((0, _utils.isPositionInsideNode)(position, element)) { + const nameNode = element.propertyName || element.name; + if ((0, _utils.isPositionInsideNode)(position, nameNode)) { + for (const name of validProps){ + entries.push({ + name, + insertText: name, + sortText: '_' + name, + kind: ts.ScriptElementKind.memberVariableElement, + kindModifiers: ts.ScriptElementKindModifier.none, + labelDetails: { + description: `Next.js ${type} prop` + } + }); + } + } + break; + } + } + // Auto completion for types + if (paramNode.type && ts.isTypeLiteralNode(paramNode.type)) { + for (const member of paramNode.type.members){ + if ((0, _utils.isPositionInsideNode)(position, member)) { + for (const name of validPropsWithType){ + entries.push({ + name, + insertText: name, + sortText: '_' + name, + kind: ts.ScriptElementKind.memberVariableElement, + kindModifiers: ts.ScriptElementKindModifier.none, + labelDetails: { + description: `Next.js ${type} prop type` + } + }); + } + break; + } + } + } + } + } + return entries; + }, + // Give error diagnostics for the component + getSemanticDiagnostics (fileName, source, node) { + var _node_parameters_, _node_parameters; + const ts = (0, _utils.getTs)(); + let validProps = []; + let type; + if ((0, _utils.isPageFile)(fileName)) { + // For page entries (page.js), it can only have `params` and `searchParams` + // as the prop names. + validProps = _constant.ALLOWED_PAGE_PROPS; + type = 'page'; + } else { + // For layout entires, check if it has any named slots. + const currentDir = _path.default.dirname(fileName); + const items = _fs.default.readdirSync(currentDir, { + withFileTypes: true + }); + const slots = []; + for (const item of items){ + if (item.isDirectory() && item.name.startsWith('@')) { + slots.push(item.name.slice(1)); + } + } + validProps = _constant.ALLOWED_LAYOUT_PROPS.concat(slots); + type = 'layout'; + } + const diagnostics = []; + const props = (_node_parameters = node.parameters) == null ? void 0 : (_node_parameters_ = _node_parameters[0]) == null ? void 0 : _node_parameters_.name; + if (props && ts.isObjectBindingPattern(props)) { + for (const prop of props.elements){ + const propName = (prop.propertyName || prop.name).getText(); + if (!validProps.includes(propName)) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_PAGE_PROP, + messageText: `"${propName}" is not a valid ${type} prop.`, + start: prop.getStart(), + length: prop.getWidth() + }); + } + } + } + return diagnostics; + } +}; +const _default = entry; + +//# sourceMappingURL=entry.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/error.js b/cli/app/node_modules/next/dist/server/typescript/rules/error.js new file mode 100644 index 00000000000..372d6e392e7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/error.js @@ -0,0 +1,38 @@ +// This module provides intellisense for all components that has the `"use client"` directive. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _constant = require("../constant"); +const _utils = require("../utils"); +const errorEntry = { + getSemanticDiagnostics (source, isClientEntry) { + const isErrorFile = /[\\/]error\.tsx?$/.test(source.fileName); + const isGlobalErrorFile = /[\\/]global-error\.tsx?$/.test(source.fileName); + if (!isErrorFile && !isGlobalErrorFile) return []; + const ts = (0, _utils.getTs)(); + if (!isClientEntry) { + // Error components must be Client Components + return [ + { + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_ERROR_COMPONENT, + messageText: `Error Components must be Client Components, please add the "use client" directive: https://nextjs.org/docs/app/api-reference/file-conventions/error`, + start: 0, + length: source.text.length + } + ]; + } + return []; + } +}; +const _default = errorEntry; + +//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/metadata.js b/cli/app/node_modules/next/dist/server/typescript/rules/metadata.js new file mode 100644 index 00000000000..921cf3edae2 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/metadata.js @@ -0,0 +1,234 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _constant = require("../constant"); +const _utils = require("../utils"); +const metadata = { + client: { + getSemanticDiagnosticsForExportVariableStatement (fileName, node) { + const source = (0, _utils.getSource)(fileName); + const ts = (0, _utils.getTs)(); + // It is not allowed to export `metadata` or `generateMetadata` in client entry + if (ts.isFunctionDeclaration(node)) { + var _node_name; + if (((_node_name = node.name) == null ? void 0 : _node_name.getText()) === 'generateMetadata') { + return [ + { + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js 'generateMetadata' API is not allowed in a Client Component.`, + start: node.name.getStart(), + length: node.name.getWidth() + } + ]; + } + } else { + for (const declaration of node.declarationList.declarations){ + const name = declaration.name.getText(); + if (name === 'metadata') { + return [ + { + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js 'metadata' API is not allowed in a Client Component.`, + start: declaration.name.getStart(), + length: declaration.name.getWidth() + } + ]; + } + } + } + return []; + }, + getSemanticDiagnosticsForExportDeclaration (fileName, node) { + const ts = (0, _utils.getTs)(); + const source = (0, _utils.getSource)(fileName); + const diagnostics = []; + const exportClause = node.exportClause; + if (exportClause && ts.isNamedExports(exportClause)) { + for (const e of exportClause.elements){ + if ([ + 'generateMetadata', + 'metadata' + ].includes(e.name.getText())) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js '${e.name.getText()}' API is not allowed in a Client Component.`, + start: e.name.getStart(), + length: e.name.getWidth() + }); + } + } + } + return diagnostics; + } + }, + server: { + getSemanticDiagnosticsForExportVariableStatement (fileName, node) { + const source = (0, _utils.getSource)(fileName); + const ts = (0, _utils.getTs)(); + if (ts.isFunctionDeclaration(node)) { + var _node_name; + if (((_node_name = node.name) == null ? void 0 : _node_name.getText()) === 'generateMetadata') { + var _node_modifiers; + if (hasType(node)) { + return []; + } + const isAsync = (_node_modifiers = node.modifiers) == null ? void 0 : _node_modifiers.some((m)=>m.kind === ts.SyntaxKind.AsyncKeyword); + return [ + { + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js "generateMetadata" export should have a return type of ${isAsync ? '"Promise"' : '"Metadata"'} from "next".`, + start: node.name.getStart(), + length: node.name.getWidth() + } + ]; + } + } else { + for (const declaration of node.declarationList.declarations){ + if (hasType(declaration)) { + return []; + } + const name = declaration.name.getText(); + if (name === 'metadata') { + return [ + { + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js "metadata" export should be type of "Metadata" from "next".`, + start: declaration.name.getStart(), + length: declaration.name.getWidth() + } + ]; + } + if (name === 'generateMetadata') { + // Check if it's a function expression or arrow function + if (declaration.initializer && (ts.isFunctionExpression(declaration.initializer) || ts.isArrowFunction(declaration.initializer))) { + var _declaration_initializer_modifiers; + const isAsync = (_declaration_initializer_modifiers = declaration.initializer.modifiers) == null ? void 0 : _declaration_initializer_modifiers.some((m)=>m.kind === ts.SyntaxKind.AsyncKeyword); + return [ + { + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js "generateMetadata" export should have a return type of ${isAsync ? '"Promise"' : '"Metadata"'} from "next".`, + start: declaration.name.getStart(), + length: declaration.name.getWidth() + } + ]; + } + } + } + } + return []; + }, + getSemanticDiagnosticsForExportDeclaration (fileName, node) { + const typeChecker = (0, _utils.getTypeChecker)(); + if (!typeChecker) { + return []; + } + const ts = (0, _utils.getTs)(); + const source = (0, _utils.getSource)(fileName); + const diagnostics = []; + const exportClause = node.exportClause; + if (!node.isTypeOnly && exportClause && ts.isNamedExports(exportClause)) { + for (const e of exportClause.elements){ + if (e.isTypeOnly) { + continue; + } + const exportName = e.name.getText(); + if (exportName !== 'metadata' && exportName !== 'generateMetadata') { + continue; + } + const symbol = typeChecker.getSymbolAtLocation(e.name); + if (!symbol) { + continue; + } + const originalSymbol = typeChecker.getAliasedSymbol(symbol); + const declarations = originalSymbol.getDeclarations(); + if (!declarations) { + continue; + } + const declaration = declarations[0]; + if (hasType(declaration)) { + continue; + } + if (exportName === 'generateMetadata') { + let isAsync = false; + // async function() {} + if (ts.isFunctionDeclaration(declaration)) { + var _declaration_modifiers; + isAsync = ((_declaration_modifiers = declaration.modifiers) == null ? void 0 : _declaration_modifiers.some((m)=>m.kind === ts.SyntaxKind.AsyncKeyword)) ?? false; + } + // foo = async function() {} + // foo = async () => {} + if (ts.isVariableDeclaration(declaration) && declaration.initializer) { + const initializer = declaration.initializer; + const isFunction = ts.isArrowFunction(initializer) || ts.isFunctionExpression(initializer); + if (isFunction) { + var _initializer_modifiers; + isAsync = ((_initializer_modifiers = initializer.modifiers) == null ? void 0 : _initializer_modifiers.some((m)=>m.kind === ts.SyntaxKind.AsyncKeyword)) ?? false; + } + } + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js "generateMetadata" export should have a return type of ${isAsync ? '"Promise"' : '"Metadata"'} from "next".`, + start: e.name.getStart(), + length: e.name.getWidth() + }); + } else { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Warning, + code: _constant.NEXT_TS_ERRORS.INVALID_METADATA_EXPORT, + messageText: `The Next.js "metadata" export should be type of "Metadata" from "next".`, + start: e.name.getStart(), + length: e.name.getWidth() + }); + } + } + } + return diagnostics; + } + } +}; +function hasType(node) { + const ts = (0, _utils.getTs)(); + if (!ts.isVariableDeclaration(node) && !ts.isFunctionDeclaration(node) && !ts.isArrowFunction(node) && !ts.isFunctionExpression(node)) { + return false; + } + // For function declarations, expressions, and arrow functions, check if they have return type + if (ts.isFunctionDeclaration(node) || ts.isFunctionExpression(node) || ts.isArrowFunction(node)) { + return !!node.type; + } + // For variable declarations + if (!node.name) return false; + const name = node.name.getText(); + if (name === 'generateMetadata') { + // If it's a function expression or arrow function, check if it has return type + if (node.initializer && (ts.isFunctionExpression(node.initializer) || ts.isArrowFunction(node.initializer))) { + return !!node.initializer.type; + } + } + // For all other cases, check if the node has a type annotation + return !!node.type; +} +const _default = metadata; + +//# sourceMappingURL=metadata.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/server-boundary.js b/cli/app/node_modules/next/dist/server/typescript/rules/server-boundary.js new file mode 100644 index 00000000000..6884b0bfcbf --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/server-boundary.js @@ -0,0 +1,115 @@ +// This module provides intellisense for all exports from `"use server"` directive. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _constant = require("../constant"); +const _utils = require("../utils"); +// Check if the type is `Promise`. +function isPromiseType(type, typeChecker) { + const typeReferenceType = type; + if (!typeReferenceType.target) return false; + // target should be Promise or Promise<...> + if (!/^Promise(<.+>)?$/.test(typeChecker.typeToString(typeReferenceType.target))) { + return false; + } + return true; +} +function isFunctionReturningPromise(node, typeChecker, ts) { + const type = typeChecker.getTypeAtLocation(node); + const signatures = typeChecker.getSignaturesOfType(type, ts.SignatureKind.Call); + let isPromise = true; + if (signatures.length) { + for (const signature of signatures){ + const returnType = signature.getReturnType(); + if (returnType.isUnion()) { + for (const t of returnType.types){ + if (!isPromiseType(t, typeChecker)) { + isPromise = false; + break; + } + } + } else { + isPromise = isPromiseType(returnType, typeChecker); + } + } + } else { + isPromise = false; + } + return isPromise; +} +const serverBoundary = { + getSemanticDiagnosticsForExportDeclaration (source, node) { + const ts = (0, _utils.getTs)(); + const typeChecker = (0, _utils.getTypeChecker)(); + if (!typeChecker) return []; + const diagnostics = []; + const exportClause = node.exportClause; + if (!node.isTypeOnly && exportClause && ts.isNamedExports(exportClause)) { + for (const e of exportClause.elements){ + if (e.isTypeOnly) { + continue; + } + if (!isFunctionReturningPromise(e, typeChecker, ts)) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_SERVER_ENTRY_RETURN, + messageText: `The "use server" file can only export async functions.`, + start: e.getStart(), + length: e.getWidth() + }); + } + } + } + return diagnostics; + }, + getSemanticDiagnosticsForExportVariableStatement (source, node) { + const ts = (0, _utils.getTs)(); + const diagnostics = []; + if (ts.isVariableDeclarationList(node.declarationList)) { + for (const declaration of node.declarationList.declarations){ + const initializer = declaration.initializer; + if (initializer && (ts.isArrowFunction(initializer) || ts.isFunctionDeclaration(initializer) || ts.isFunctionExpression(initializer) || ts.isCallExpression(initializer) || ts.isIdentifier(initializer))) { + diagnostics.push(...serverBoundary.getSemanticDiagnosticsForFunctionExport(source, initializer)); + } else { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_SERVER_ENTRY_RETURN, + messageText: `The "use server" file can only export async functions.`, + start: declaration.getStart(), + length: declaration.getWidth() + }); + } + } + } + return diagnostics; + }, + getSemanticDiagnosticsForFunctionExport (source, node) { + const ts = (0, _utils.getTs)(); + const typeChecker = (0, _utils.getTypeChecker)(); + if (!typeChecker) return []; + const diagnostics = []; + if (!isFunctionReturningPromise(node, typeChecker, ts)) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_SERVER_ENTRY_RETURN, + messageText: `The "use server" file can only export async functions. Add "async" to the function declaration or return a Promise.`, + start: node.getStart(), + length: node.getWidth() + }); + } + return diagnostics; + } +}; +const _default = serverBoundary; + +//# sourceMappingURL=server-boundary.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/rules/server.js b/cli/app/node_modules/next/dist/server/typescript/rules/server.js new file mode 100644 index 00000000000..bca5eaf7847 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/rules/server.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _constant = require("../constant"); +const _utils = require("../utils"); +const serverLayer = { + // On the server layer we need to filter out some invalid completion results. + filterCompletionsAtPosition (entries) { + return entries.filter((e)=>{ + // Remove disallowed React APIs. + if (_constant.DISALLOWED_SERVER_REACT_APIS.includes(e.name) && e.source === 'react') { + return false; + } + return true; + }); + }, + // Filter out quick info for some React APIs. + hasDisallowedReactAPIDefinition (definitions) { + return definitions == null ? void 0 : definitions.some((d)=>_constant.DISALLOWED_SERVER_REACT_APIS.includes(d.name) && d.containerName === 'React'); + }, + // Give errors about disallowed imports such as `useState`. + getSemanticDiagnosticsForImportDeclaration (source, node) { + const ts = (0, _utils.getTs)(); + const diagnostics = []; + const importPath = node.moduleSpecifier.getText(source); + const importClause = node.importClause; + const namedBindings = importClause == null ? void 0 : importClause.namedBindings; + if (importClause) { + if (/^['"]react['"]$/.test(importPath)) { + // Check if it imports "useState" + if (namedBindings && ts.isNamedImports(namedBindings)) { + const elements = namedBindings.elements; + for (const element of elements){ + const name = element.name.getText(source); + if (_constant.DISALLOWED_SERVER_REACT_APIS.includes(name)) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_SERVER_API, + messageText: `"${name}" is not allowed in Server Components.`, + start: element.name.getStart(), + length: element.name.getWidth() + }); + } + } + } + } else if (/^['"]react-dom['"]$/.test(importPath)) { + // Check if it imports "useFormState" + if (namedBindings && ts.isNamedImports(namedBindings)) { + const elements = namedBindings.elements; + for (const element of elements){ + const name = element.name.getText(source); + if (_constant.DISALLOWED_SERVER_REACT_DOM_APIS.includes(name)) { + diagnostics.push({ + file: source, + category: ts.DiagnosticCategory.Error, + code: _constant.NEXT_TS_ERRORS.INVALID_SERVER_API, + messageText: `"${name}" is not allowed in Server Components.`, + start: element.name.getStart(), + length: element.name.getWidth() + }); + } + } + } + } + } + return diagnostics; + } +}; +const _default = serverLayer; + +//# sourceMappingURL=server.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/typescript/utils.js b/cli/app/node_modules/next/dist/server/typescript/utils.js new file mode 100644 index 00000000000..25b9f816c4a --- /dev/null +++ b/cli/app/node_modules/next/dist/server/typescript/utils.js @@ -0,0 +1,212 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getEntryInfo: null, + getInfo: null, + getSource: null, + getTs: null, + getTypeChecker: null, + init: null, + isAppEntryFile: null, + isDefaultFunctionExport: null, + isInsideApp: null, + isPageFile: null, + isPositionInsideNode: null, + log: null, + removeStringQuotes: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getEntryInfo: function() { + return getEntryInfo; + }, + getInfo: function() { + return getInfo; + }, + getSource: function() { + return getSource; + }, + getTs: function() { + return getTs; + }, + getTypeChecker: function() { + return getTypeChecker; + }, + init: function() { + return init; + }, + isAppEntryFile: function() { + return isAppEntryFile; + }, + isDefaultFunctionExport: function() { + return isDefaultFunctionExport; + }, + isInsideApp: function() { + return isInsideApp; + }, + isPageFile: function() { + return isPageFile; + }, + isPositionInsideNode: function() { + return isPositionInsideNode; + }, + log: function() { + return log; + }, + removeStringQuotes: function() { + return removeStringQuotes; + } +}); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +let ts; +let info; +let appDirRegExp; +function log(message) { + info.project.projectService.logger.info('[next] ' + message); +} +function init(opts) { + const projectDir = opts.info.project.getCurrentDirectory(); + ts = opts.ts; + info = opts.info; + appDirRegExp = new RegExp('^' + (projectDir + '(/src)?/app').replace(/[\\/]/g, '[\\/]')); + log('Initialized Next.js TypeScript plugin: ' + projectDir); +} +function getTs() { + return ts; +} +function getInfo() { + return info; +} +function getTypeChecker() { + const program = info.languageService.getProgram(); + if (!program) { + log('Failed to get program while while running getTypeChecker.'); + return; + } + const typeChecker = program.getTypeChecker(); + if (!typeChecker) { + log('Failed to get type checker while running getTypeChecker.'); + return; + } + return typeChecker; +} +function getSource(fileName) { + const program = info.languageService.getProgram(); + if (!program) { + log('Failed to get program while running getSource for: ' + fileName); + return; + } + const sourceFile = program.getSourceFile(fileName); + if (!sourceFile) { + log('Failed to get source file while running getSource for: ' + fileName); + return; + } + return sourceFile; +} +function removeStringQuotes(str) { + return str.replace(/^['"`]|['"`]$/g, ''); +} +const isPositionInsideNode = (position, node)=>{ + const start = node.getFullStart(); + return start <= position && position <= node.getFullWidth() + start; +}; +const isDefaultFunctionExport = (node)=>{ + if (ts.isFunctionDeclaration(node)) { + let hasExportKeyword = false; + let hasDefaultKeyword = false; + if (node.modifiers) { + for (const modifier of node.modifiers){ + if (modifier.kind === ts.SyntaxKind.ExportKeyword) { + hasExportKeyword = true; + } else if (modifier.kind === ts.SyntaxKind.DefaultKeyword) { + hasDefaultKeyword = true; + } + } + } + // `export default function` + if (hasExportKeyword && hasDefaultKeyword) { + return true; + } + } + return false; +}; +const isInsideApp = (filePath)=>{ + return appDirRegExp.test(filePath); +}; +const isAppEntryFile = (filePath)=>{ + return appDirRegExp.test(filePath) && /^(page|layout)\.(mjs|js|jsx|ts|tsx)$/.test(_path.default.basename(filePath)); +}; +const isPageFile = (filePath)=>{ + return appDirRegExp.test(filePath) && /^page\.(mjs|js|jsx|ts|tsx)$/.test(_path.default.basename(filePath)); +}; +function getEntryInfo(fileName, throwOnInvalidDirective) { + const source = getSource(fileName); + if (source) { + let isDirective = true; + let isClientEntry = false; + let isServerEntry = false; + ts.forEachChild(source, (node)=>{ + if (ts.isExpressionStatement(node) && ts.isStringLiteral(node.expression)) { + if (node.expression.text === 'use client') { + if (isDirective) { + isClientEntry = true; + } else { + if (throwOnInvalidDirective) { + const e = { + messageText: 'The `"use client"` directive must be put at the top of the file.', + start: node.expression.getStart(), + length: node.expression.getWidth() + }; + throw e; + } + } + } else if (node.expression.text === 'use server') { + if (isDirective) { + isServerEntry = true; + } else { + if (throwOnInvalidDirective) { + const e = { + messageText: 'The `"use server"` directive must be put at the top of the file.', + start: node.expression.getStart(), + length: node.expression.getWidth() + }; + throw e; + } + } + } + if (isClientEntry && isServerEntry) { + const e = { + messageText: 'Cannot use both "use client" and "use server" directives in the same file.', + start: node.expression.getStart(), + length: node.expression.getWidth() + }; + throw e; + } + } else { + isDirective = false; + } + }); + return { + client: isClientEntry, + server: isServerEntry + }; + } + return { + client: false, + server: false + }; +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/use-cache/constants.js b/cli/app/node_modules/next/dist/server/use-cache/constants.js new file mode 100644 index 00000000000..1b7fcd1cb9d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/use-cache/constants.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DYNAMIC_EXPIRE: null, + RUNTIME_PREFETCH_DYNAMIC_STALE: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DYNAMIC_EXPIRE: function() { + return DYNAMIC_EXPIRE; + }, + RUNTIME_PREFETCH_DYNAMIC_STALE: function() { + return RUNTIME_PREFETCH_DYNAMIC_STALE; + } +}); +const DYNAMIC_EXPIRE = 300 // 5 minutes +; +const RUNTIME_PREFETCH_DYNAMIC_STALE = 30 // 30 seconds +; + +//# sourceMappingURL=constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/use-cache/handlers.js b/cli/app/node_modules/next/dist/server/use-cache/handlers.js new file mode 100644 index 00000000000..b3541880fdb --- /dev/null +++ b/cli/app/node_modules/next/dist/server/use-cache/handlers.js @@ -0,0 +1,121 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getCacheHandler: null, + getCacheHandlerEntries: null, + getCacheHandlers: null, + initializeCacheHandlers: null, + setCacheHandler: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getCacheHandler: function() { + return getCacheHandler; + }, + getCacheHandlerEntries: function() { + return getCacheHandlerEntries; + }, + getCacheHandlers: function() { + return getCacheHandlers; + }, + initializeCacheHandlers: function() { + return initializeCacheHandlers; + }, + setCacheHandler: function() { + return setCacheHandler; + } +}); +const _default = require("../lib/cache-handlers/default"); +const debug = process.env.NEXT_PRIVATE_DEBUG_CACHE ? (message, ...args)=>{ + console.log(`use-cache: ${message}`, ...args); +} : undefined; +const handlersSymbol = Symbol.for('@next/cache-handlers'); +const handlersMapSymbol = Symbol.for('@next/cache-handlers-map'); +const handlersSetSymbol = Symbol.for('@next/cache-handlers-set'); +/** + * The reference to the cache handlers. We store the cache handlers on the + * global object so that we can access the same instance across different + * boundaries (such as different copies of the same module). + */ const reference = globalThis; +function initializeCacheHandlers(cacheMaxMemorySize) { + // If the cache handlers have already been initialized, don't do it again. + if (reference[handlersMapSymbol]) { + debug == null ? void 0 : debug('cache handlers already initialized'); + return false; + } + debug == null ? void 0 : debug('initializing cache handlers'); + reference[handlersMapSymbol] = new Map(); + // Initialize the cache from the symbol contents first. + if (reference[handlersSymbol]) { + let fallback; + if (reference[handlersSymbol].DefaultCache) { + debug == null ? void 0 : debug('setting "default" cache handler from symbol'); + fallback = reference[handlersSymbol].DefaultCache; + } else { + debug == null ? void 0 : debug('setting "default" cache handler from default'); + fallback = (0, _default.createDefaultCacheHandler)(cacheMaxMemorySize); + } + reference[handlersMapSymbol].set('default', fallback); + if (reference[handlersSymbol].RemoteCache) { + debug == null ? void 0 : debug('setting "remote" cache handler from symbol'); + reference[handlersMapSymbol].set('remote', reference[handlersSymbol].RemoteCache); + } else { + debug == null ? void 0 : debug('setting "remote" cache handler from default'); + reference[handlersMapSymbol].set('remote', fallback); + } + } else { + const handler = (0, _default.createDefaultCacheHandler)(cacheMaxMemorySize); + debug == null ? void 0 : debug('setting "default" cache handler from default'); + reference[handlersMapSymbol].set('default', handler); + debug == null ? void 0 : debug('setting "remote" cache handler from default'); + reference[handlersMapSymbol].set('remote', handler); + } + // Create a set of the cache handlers. + reference[handlersSetSymbol] = new Set(reference[handlersMapSymbol].values()); + return true; +} +function getCacheHandler(kind) { + // This should never be called before initializeCacheHandlers. + if (!reference[handlersMapSymbol]) { + throw Object.defineProperty(new Error('Cache handlers not initialized'), "__NEXT_ERROR_CODE", { + value: "E649", + enumerable: false, + configurable: true + }); + } + return reference[handlersMapSymbol].get(kind); +} +function getCacheHandlers() { + if (!reference[handlersSetSymbol]) { + return undefined; + } + return reference[handlersSetSymbol].values(); +} +function getCacheHandlerEntries() { + if (!reference[handlersMapSymbol]) { + return undefined; + } + return reference[handlersMapSymbol].entries(); +} +function setCacheHandler(kind, cacheHandler) { + // This should never be called before initializeCacheHandlers. + if (!reference[handlersMapSymbol] || !reference[handlersSetSymbol]) { + throw Object.defineProperty(new Error('Cache handlers not initialized'), "__NEXT_ERROR_CODE", { + value: "E649", + enumerable: false, + configurable: true + }); + } + debug == null ? void 0 : debug('setting cache handler for "%s"', kind); + reference[handlersMapSymbol].set(kind, cacheHandler); + reference[handlersSetSymbol].add(cacheHandler); +} + +//# sourceMappingURL=handlers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/utils.js b/cli/app/node_modules/next/dist/server/utils.js new file mode 100644 index 00000000000..de37d200b07 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/utils.js @@ -0,0 +1,73 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + debounce: null, + isBlockedPage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + debounce: function() { + return debounce; + }, + isBlockedPage: function() { + return isBlockedPage; + } +}); +const _constants = require("../shared/lib/constants"); +function isBlockedPage(page) { + return _constants.BLOCKED_PAGES.includes(page); +} +function debounce(fn, ms, maxWait = Infinity) { + let timeoutId; + // The time the debouncing function was first called during this debounce queue. + let startTime = 0; + // The time the debouncing function was last called. + let lastCall = 0; + // The arguments and this context of the last call to the debouncing function. + let args, context; + // A helper used to that either invokes the debounced function, or + // reschedules the timer if a more recent call was made. + function run() { + const now = Date.now(); + const diff = lastCall + ms - now; + // If the diff is non-positive, then we've waited at least `ms` + // milliseconds since the last call. Or if we've waited for longer than the + // max wait time, we must call the debounced function. + if (diff <= 0 || startTime + maxWait >= now) { + // It's important to clear the timeout id before invoking the debounced + // function, in case the function calls the debouncing function again. + timeoutId = undefined; + fn.apply(context, args); + } else { + // Else, a new call was made after the original timer was scheduled. We + // didn't clear the timeout (doing so is very slow), so now we need to + // reschedule the timer for the time difference. + timeoutId = setTimeout(run, diff); + } + } + return function(...passedArgs) { + // The arguments and this context of the most recent call are saved so the + // debounced function can be invoked with them later. + args = passedArgs; + context = this; + // Instead of constantly clearing and scheduling a timer, we record the + // time of the last call. If a second call comes in before the timer fires, + // then we'll reschedule in the run function. Doing this is considerably + // faster. + lastCall = Date.now(); + // Only schedule a new timer if we're not currently waiting. + if (timeoutId === undefined) { + startTime = lastCall; + timeoutId = setTimeout(run, ms); + } + }; +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/adapter.js b/cli/app/node_modules/next/dist/server/web/adapter.js new file mode 100644 index 00000000000..b8dbda2dbf9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/adapter.js @@ -0,0 +1,392 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NextRequestHint: null, + adapter: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NextRequestHint: function() { + return NextRequestHint; + }, + adapter: function() { + return adapter; + } +}); +const _error = require("./error"); +const _utils = require("./utils"); +const _fetchevent = require("./spec-extension/fetch-event"); +const _request = require("./spec-extension/request"); +const _response = require("./spec-extension/response"); +const _relativizeurl = require("../../shared/lib/router/utils/relativize-url"); +const _nexturl = require("./next-url"); +const _internalutils = require("../internal-utils"); +const _apppaths = require("../../shared/lib/router/utils/app-paths"); +const _approuterheaders = require("../../client/components/app-router-headers"); +const _globals = require("./globals"); +const _requeststore = require("../async-storage/request-store"); +const _workunitasyncstorageexternal = require("../app-render/work-unit-async-storage.external"); +const _workstore = require("../async-storage/work-store"); +const _workasyncstorageexternal = require("../app-render/work-async-storage.external"); +const _tracer = require("../lib/trace/tracer"); +const _constants = require("../lib/trace/constants"); +const _webonclose = require("./web-on-close"); +const _getedgepreviewprops = require("./get-edge-preview-props"); +const _builtinrequestcontext = require("../after/builtin-request-context"); +const _implicittags = require("../lib/implicit-tags"); +const _requestmeta = require("../request-meta"); +class NextRequestHint extends _request.NextRequest { + constructor(params){ + super(params.input, params.init); + this.sourcePage = params.page; + } + get request() { + throw Object.defineProperty(new _error.PageSignatureError({ + page: this.sourcePage + }), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + respondWith() { + throw Object.defineProperty(new _error.PageSignatureError({ + page: this.sourcePage + }), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + waitUntil() { + throw Object.defineProperty(new _error.PageSignatureError({ + page: this.sourcePage + }), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } +} +const headersGetter = { + keys: (headers)=>Array.from(headers.keys()), + get: (headers, key)=>headers.get(key) ?? undefined +}; +let propagator = (request, fn)=>{ + const tracer = (0, _tracer.getTracer)(); + return tracer.withPropagatedContext(request.headers, fn, headersGetter); +}; +let testApisIntercepted = false; +function ensureTestApisIntercepted() { + if (!testApisIntercepted) { + testApisIntercepted = true; + if (process.env.NEXT_PRIVATE_TEST_PROXY === 'true') { + const { interceptTestApis, wrapRequestHandler } = // eslint-disable-next-line @next/internal/typechecked-require -- experimental/testmode is not built ins next/dist/esm + require('next/dist/experimental/testmode/server-edge'); + interceptTestApis(); + propagator = wrapRequestHandler(propagator); + } + } +} +async function adapter(params) { + var _getBuiltinRequestContext; + ensureTestApisIntercepted(); + await (0, _globals.ensureInstrumentationRegistered)(); + // TODO-APP: use explicit marker for this + const isEdgeRendering = typeof globalThis.__BUILD_MANIFEST !== 'undefined'; + params.request.url = (0, _apppaths.normalizeRscURL)(params.request.url); + const requestURL = params.bypassNextUrl ? new URL(params.request.url) : new _nexturl.NextURL(params.request.url, { + headers: params.request.headers, + nextConfig: params.request.nextConfig + }); + // Iterator uses an index to keep track of the current iteration. Because of deleting and appending below we can't just use the iterator. + // Instead we use the keys before iteration. + const keys = [ + ...requestURL.searchParams.keys() + ]; + for (const key of keys){ + const value = requestURL.searchParams.getAll(key); + const normalizedKey = (0, _utils.normalizeNextQueryParam)(key); + if (normalizedKey) { + requestURL.searchParams.delete(normalizedKey); + for (const val of value){ + requestURL.searchParams.append(normalizedKey, val); + } + requestURL.searchParams.delete(key); + } + } + // Ensure users only see page requests, never data requests. + let buildId = process.env.__NEXT_BUILD_ID || ''; + if ('buildId' in requestURL) { + buildId = requestURL.buildId || ''; + requestURL.buildId = ''; + } + const requestHeaders = (0, _utils.fromNodeOutgoingHttpHeaders)(params.request.headers); + const isNextDataRequest = requestHeaders.has('x-nextjs-data'); + const isRSCRequest = requestHeaders.get(_approuterheaders.RSC_HEADER) === '1'; + if (isNextDataRequest && requestURL.pathname === '/index') { + requestURL.pathname = '/'; + } + const flightHeaders = new Map(); + // Headers should only be stripped for middleware + if (!isEdgeRendering && !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) { + for (const header of _approuterheaders.FLIGHT_HEADERS){ + const value = requestHeaders.get(header); + if (value !== null) { + flightHeaders.set(header, value); + requestHeaders.delete(header); + } + } + } + const normalizeURL = process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? new URL(params.request.url) : requestURL; + const rscHash = normalizeURL.searchParams.get(_approuterheaders.NEXT_RSC_UNION_QUERY); + const request = new NextRequestHint({ + page: params.page, + // Strip internal query parameters off the request. + input: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? normalizeURL.toString() : (0, _internalutils.stripInternalSearchParams)(normalizeURL).toString(), + init: { + body: params.request.body, + headers: requestHeaders, + method: params.request.method, + nextConfig: params.request.nextConfig, + signal: params.request.signal + } + }); + if (params.request.requestMeta) { + (0, _requestmeta.setRequestMeta)(request, params.request.requestMeta); + } + /** + * This allows to identify the request as a data request. The user doesn't + * need to know about this property neither use it. We add it for testing + * purposes. + */ if (isNextDataRequest) { + Object.defineProperty(request, '__isData', { + enumerable: false, + value: true + }); + } + if (// If we are inside of the next start sandbox + // leverage the shared instance if not we need + // to create a fresh cache instance each time + !globalThis.__incrementalCacheShared && params.IncrementalCache) { + ; + globalThis.__incrementalCache = new params.IncrementalCache({ + CurCacheHandler: params.incrementalCacheHandler, + minimalMode: process.env.NODE_ENV !== 'development', + fetchCacheKeyPrefix: process.env.__NEXT_FETCH_CACHE_KEY_PREFIX, + dev: process.env.NODE_ENV === 'development', + requestHeaders: params.request.headers, + getPrerenderManifest: ()=>{ + return { + version: -1, + routes: {}, + dynamicRoutes: {}, + notFoundRoutes: [], + preview: (0, _getedgepreviewprops.getEdgePreviewProps)() + }; + } + }); + } + // if we're in an edge runtime sandbox, we should use the waitUntil + // that we receive from the enclosing NextServer + const outerWaitUntil = params.request.waitUntil ?? ((_getBuiltinRequestContext = (0, _builtinrequestcontext.getBuiltinRequestContext)()) == null ? void 0 : _getBuiltinRequestContext.waitUntil); + const event = new _fetchevent.NextFetchEvent({ + request, + page: params.page, + context: outerWaitUntil ? { + waitUntil: outerWaitUntil + } : undefined + }); + let response; + let cookiesFromResponse; + response = await propagator(request, ()=>{ + // we only care to make async storage available for middleware + const isMiddleware = params.page === '/middleware' || params.page === '/src/middleware' || params.page === '/proxy' || params.page === '/src/proxy'; + if (isMiddleware) { + // if we're in an edge function, we only get a subset of `nextConfig` (no `experimental`), + // so we have to inject it via DefinePlugin. + // in `next start` this will be passed normally (see `NextNodeServer.runMiddleware`). + const waitUntil = event.waitUntil.bind(event); + const closeController = new _webonclose.CloseController(); + return (0, _tracer.getTracer)().trace(_constants.MiddlewareSpan.execute, { + spanName: `middleware ${request.method}`, + attributes: { + 'http.target': request.nextUrl.pathname, + 'http.method': request.method + } + }, async ()=>{ + try { + var _params_request_nextConfig_experimental, _params_request_nextConfig, _params_request_nextConfig_experimental1, _params_request_nextConfig1; + const onUpdateCookies = (cookies)=>{ + cookiesFromResponse = cookies; + }; + const previewProps = (0, _getedgepreviewprops.getEdgePreviewProps)(); + const page = '/' // Fake Work + ; + const fallbackRouteParams = null; + const implicitTags = await (0, _implicittags.getImplicitTags)(page, request.nextUrl.pathname, fallbackRouteParams); + const requestStore = (0, _requeststore.createRequestStoreForAPI)(request, request.nextUrl, implicitTags, onUpdateCookies, previewProps); + const workStore = (0, _workstore.createWorkStore)({ + page, + renderOpts: { + cacheLifeProfiles: (_params_request_nextConfig = params.request.nextConfig) == null ? void 0 : (_params_request_nextConfig_experimental = _params_request_nextConfig.experimental) == null ? void 0 : _params_request_nextConfig_experimental.cacheLife, + cacheComponents: false, + experimental: { + isRoutePPREnabled: false, + authInterrupts: !!((_params_request_nextConfig1 = params.request.nextConfig) == null ? void 0 : (_params_request_nextConfig_experimental1 = _params_request_nextConfig1.experimental) == null ? void 0 : _params_request_nextConfig_experimental1.authInterrupts) + }, + supportsDynamicResponse: true, + waitUntil, + onClose: closeController.onClose.bind(closeController), + onAfterTaskError: undefined + }, + isPrefetchRequest: request.headers.get(_approuterheaders.NEXT_ROUTER_PREFETCH_HEADER) === '1', + buildId: buildId ?? '', + previouslyRevalidatedTags: [] + }); + return await _workasyncstorageexternal.workAsyncStorage.run(workStore, ()=>_workunitasyncstorageexternal.workUnitAsyncStorage.run(requestStore, params.handler, request, event)); + } finally{ + // middleware cannot stream, so we can consider the response closed + // as soon as the handler returns. + // we can delay running it until a bit later -- + // if it's needed, we'll have a `waitUntil` lock anyway. + setTimeout(()=>{ + closeController.dispatchClose(); + }, 0); + } + }); + } + return params.handler(request, event); + }); + // check if response is a Response object + if (response && !(response instanceof Response)) { + throw Object.defineProperty(new TypeError('Expected an instance of Response to be returned'), "__NEXT_ERROR_CODE", { + value: "E567", + enumerable: false, + configurable: true + }); + } + if (response && cookiesFromResponse) { + response.headers.set('set-cookie', cookiesFromResponse); + } + /** + * For rewrites we must always include the locale in the final pathname + * so we re-create the NextURL forcing it to include it when the it is + * an internal rewrite. Also we make sure the outgoing rewrite URL is + * a data URL if the request was a data request. + */ const rewrite = response == null ? void 0 : response.headers.get('x-middleware-rewrite'); + if (response && rewrite && (isRSCRequest || !isEdgeRendering)) { + var _params_request_nextConfig_experimental_clientParamParsingOrigins, _params_request_nextConfig_experimental, _params_request_nextConfig; + const destination = new _nexturl.NextURL(rewrite, { + forceLocale: true, + headers: params.request.headers, + nextConfig: params.request.nextConfig + }); + if (!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE && !isEdgeRendering) { + if (destination.host === request.nextUrl.host) { + destination.buildId = buildId || destination.buildId; + response.headers.set('x-middleware-rewrite', String(destination)); + } + } + /** + * When the request is a data request we must show if there was a rewrite + * with an internal header so the client knows which component to load + * from the data request. + */ const { url: relativeDestination, isRelative } = (0, _relativizeurl.parseRelativeURL)(destination.toString(), requestURL.toString()); + if (!isEdgeRendering && isNextDataRequest && // if the rewrite is external and external rewrite + // resolving config is enabled don't add this header + // so the upstream app can set it instead + !(process.env.__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE && relativeDestination.match(/http(s)?:\/\//))) { + response.headers.set('x-nextjs-rewrite', relativeDestination); + } + // Check to see if this is a non-relative rewrite. If it is, we need + // to check to see if it's an allowed origin to receive the rewritten + // headers. + const isAllowedOrigin = !isRelative ? (_params_request_nextConfig = params.request.nextConfig) == null ? void 0 : (_params_request_nextConfig_experimental = _params_request_nextConfig.experimental) == null ? void 0 : (_params_request_nextConfig_experimental_clientParamParsingOrigins = _params_request_nextConfig_experimental.clientParamParsingOrigins) == null ? void 0 : _params_request_nextConfig_experimental_clientParamParsingOrigins.some((origin)=>new RegExp(origin).test(destination.origin)) : false; + // If this is an RSC request, and the pathname or search has changed, and + // this isn't an external rewrite, we need to set the rewritten pathname and + // query headers. + if (isRSCRequest && (isRelative || isAllowedOrigin)) { + if (requestURL.pathname !== destination.pathname) { + response.headers.set(_approuterheaders.NEXT_REWRITTEN_PATH_HEADER, destination.pathname); + } + if (requestURL.search !== destination.search) { + response.headers.set(_approuterheaders.NEXT_REWRITTEN_QUERY_HEADER, // remove the leading ? from the search string + destination.search.slice(1)); + } + } + } + /** + * Always forward the `_rsc` search parameter to the rewritten URL for RSC requests, + * unless it's already present. This is necessary to ensure that RSC hash validation + * works correctly after a rewrite. For internal rewrites, the server can validate the + * RSC hash using the original URL, so forwarding the `_rsc` parameter is less critical. + * However, for external rewrites (where the request is proxied to another Next.js server), + * the external server does not have access to the original URL or its search parameters. + * In these cases, forwarding the `_rsc` parameter is essential so that the external server + * can perform the correct RSC hash validation. + */ if (response && rewrite && isRSCRequest && rscHash) { + const rewriteURL = new URL(rewrite); + if (!rewriteURL.searchParams.has(_approuterheaders.NEXT_RSC_UNION_QUERY)) { + rewriteURL.searchParams.set(_approuterheaders.NEXT_RSC_UNION_QUERY, rscHash); + response.headers.set('x-middleware-rewrite', rewriteURL.toString()); + } + } + /** + * For redirects we will not include the locale in case when it is the + * default and we must also make sure the outgoing URL is a data one if + * the incoming request was a data request. + */ const redirect = response == null ? void 0 : response.headers.get('Location'); + if (response && redirect && !isEdgeRendering) { + const redirectURL = new _nexturl.NextURL(redirect, { + forceLocale: false, + headers: params.request.headers, + nextConfig: params.request.nextConfig + }); + /** + * Responses created from redirects have immutable headers so we have + * to clone the response to be able to modify it. + */ response = new Response(response.body, response); + if (!process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE) { + if (redirectURL.host === requestURL.host) { + redirectURL.buildId = buildId || redirectURL.buildId; + response.headers.set('Location', (0, _relativizeurl.getRelativeURL)(redirectURL, requestURL)); + } + } + /** + * When the request is a data request we can't use the location header as + * it may end up with CORS error. Instead we map to an internal header so + * the client knows the destination. + */ if (isNextDataRequest) { + response.headers.delete('Location'); + response.headers.set('x-nextjs-redirect', (0, _relativizeurl.getRelativeURL)(redirectURL.toString(), requestURL.toString())); + } + } + const finalResponse = response ? response : _response.NextResponse.next(); + // Flight headers are not overridable / removable so they are applied at the end. + const middlewareOverrideHeaders = finalResponse.headers.get('x-middleware-override-headers'); + const overwrittenHeaders = []; + if (middlewareOverrideHeaders) { + for (const [key, value] of flightHeaders){ + finalResponse.headers.set(`x-middleware-request-${key}`, value); + overwrittenHeaders.push(key); + } + if (overwrittenHeaders.length > 0) { + finalResponse.headers.set('x-middleware-override-headers', middlewareOverrideHeaders + ',' + overwrittenHeaders.join(',')); + } + } + return { + response: finalResponse, + waitUntil: (0, _fetchevent.getWaitUntilPromiseFromEvent)(event) ?? Promise.resolve(), + fetchMetrics: request.fetchMetrics + }; +} + +//# sourceMappingURL=adapter.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/error.js b/cli/app/node_modules/next/dist/server/web/error.js new file mode 100644 index 00000000000..0c6e60fc256 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/error.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PageSignatureError: null, + RemovedPageError: null, + RemovedUAError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PageSignatureError: function() { + return PageSignatureError; + }, + RemovedPageError: function() { + return RemovedPageError; + }, + RemovedUAError: function() { + return RemovedUAError; + } +}); +class PageSignatureError extends Error { + constructor({ page }){ + super(`The middleware "${page}" accepts an async API directly with the form: + + export function middleware(request, event) { + return NextResponse.redirect('/new-location') + } + + Read more: https://nextjs.org/docs/messages/middleware-new-signature + `); + } +} +class RemovedPageError extends Error { + constructor(){ + super(`The request.page has been deprecated in favour of \`URLPattern\`. + Read more: https://nextjs.org/docs/messages/middleware-request-page + `); + } +} +class RemovedUAError extends Error { + constructor(){ + super(`The request.ua has been removed in favour of \`userAgent\` function. + Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + `); + } +} + +//# sourceMappingURL=error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/get-edge-preview-props.js b/cli/app/node_modules/next/dist/server/web/get-edge-preview-props.js new file mode 100644 index 00000000000..85c4148be01 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/get-edge-preview-props.js @@ -0,0 +1,23 @@ +/** + * In edge runtime, these props directly accessed from environment variables. + * - local: env vars will be injected through edge-runtime as runtime env vars + * - deployment: env vars will be replaced by edge build pipeline + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getEdgePreviewProps", { + enumerable: true, + get: function() { + return getEdgePreviewProps; + } +}); +function getEdgePreviewProps() { + return { + previewModeId: process.env.__NEXT_PREVIEW_MODE_ID || '', + previewModeSigningKey: process.env.__NEXT_PREVIEW_MODE_SIGNING_KEY || '', + previewModeEncryptionKey: process.env.__NEXT_PREVIEW_MODE_ENCRYPTION_KEY || '' + }; +} + +//# sourceMappingURL=get-edge-preview-props.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/globals.js b/cli/app/node_modules/next/dist/server/web/globals.js new file mode 100644 index 00000000000..ae5e8d06c7c --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/globals.js @@ -0,0 +1,128 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + edgeInstrumentationOnRequestError: null, + ensureInstrumentationRegistered: null, + getEdgeInstrumentationModule: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + edgeInstrumentationOnRequestError: function() { + return edgeInstrumentationOnRequestError; + }, + ensureInstrumentationRegistered: function() { + return ensureInstrumentationRegistered; + }, + getEdgeInstrumentationModule: function() { + return getEdgeInstrumentationModule; + } +}); +async function getEdgeInstrumentationModule() { + const instrumentation = '_ENTRIES' in globalThis && _ENTRIES.middleware_instrumentation && await _ENTRIES.middleware_instrumentation; + return instrumentation; +} +let instrumentationModulePromise = null; +async function registerInstrumentation() { + // Ensure registerInstrumentation is not called in production build + if (process.env.NEXT_PHASE === 'phase-production-build') return; + if (!instrumentationModulePromise) { + instrumentationModulePromise = getEdgeInstrumentationModule(); + } + const instrumentation = await instrumentationModulePromise; + if (instrumentation == null ? void 0 : instrumentation.register) { + try { + await instrumentation.register(); + } catch (err) { + err.message = `An error occurred while loading instrumentation hook: ${err.message}`; + throw err; + } + } +} +async function edgeInstrumentationOnRequestError(...args) { + const instrumentation = await getEdgeInstrumentationModule(); + try { + var _instrumentation_onRequestError; + await (instrumentation == null ? void 0 : (_instrumentation_onRequestError = instrumentation.onRequestError) == null ? void 0 : _instrumentation_onRequestError.call(instrumentation, ...args)); + } catch (err) { + // Log the soft error and continue, since the original error has already been thrown + console.error('Error in instrumentation.onRequestError:', err); + } +} +let registerInstrumentationPromise = null; +function ensureInstrumentationRegistered() { + if (!registerInstrumentationPromise) { + registerInstrumentationPromise = registerInstrumentation(); + } + return registerInstrumentationPromise; +} +function getUnsupportedModuleErrorMessage(module1) { + // warning: if you change these messages, you must adjust how dev-overlay's middleware detects modules not found + return `The edge runtime does not support Node.js '${module1}' module. +Learn More: https://nextjs.org/docs/messages/node-module-in-edge-runtime`; +} +function __import_unsupported(moduleName) { + const proxy = new Proxy(function() {}, { + get (_obj, prop) { + if (prop === 'then') { + return {}; + } + throw Object.defineProperty(new Error(getUnsupportedModuleErrorMessage(moduleName)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + }, + construct () { + throw Object.defineProperty(new Error(getUnsupportedModuleErrorMessage(moduleName)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + }, + apply (_target, _this, args) { + if (typeof args[0] === 'function') { + return args[0](proxy); + } + throw Object.defineProperty(new Error(getUnsupportedModuleErrorMessage(moduleName)), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + }); + return new Proxy({}, { + get: ()=>proxy + }); +} +function enhanceGlobals() { + if (process.env.NEXT_RUNTIME !== 'edge') { + return; + } + // The condition is true when the "process" module is provided + if (process !== global.process) { + // prefer local process but global.process has correct "env" + process.env = global.process.env; + global.process = process; + } + // to allow building code that import but does not use node.js modules, + // webpack will expect this function to exist in global scope + try { + Object.defineProperty(globalThis, '__import_unsupported', { + value: __import_unsupported, + enumerable: false, + configurable: false + }); + } catch {} + // Eagerly fire instrumentation hook to make the startup faster. + void ensureInstrumentationRegistered(); +} +enhanceGlobals(); + +//# sourceMappingURL=globals.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/http.js b/cli/app/node_modules/next/dist/server/web/http.js new file mode 100644 index 00000000000..652972a2c6d --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/http.js @@ -0,0 +1,39 @@ +/** + * List of valid HTTP methods that can be implemented by Next.js's Custom App + * Routes. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HTTP_METHODS: null, + isHTTPMethod: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HTTP_METHODS: function() { + return HTTP_METHODS; + }, + isHTTPMethod: function() { + return isHTTPMethod; + } +}); +const HTTP_METHODS = [ + 'GET', + 'HEAD', + 'OPTIONS', + 'POST', + 'PUT', + 'DELETE', + 'PATCH' +]; +function isHTTPMethod(maybeMethod) { + return HTTP_METHODS.includes(maybeMethod); +} + +//# sourceMappingURL=http.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/next-url.js b/cli/app/node_modules/next/dist/server/web/next-url.js new file mode 100644 index 00000000000..dbba7e3fdc6 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/next-url.js @@ -0,0 +1,199 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NextURL", { + enumerable: true, + get: function() { + return NextURL; + } +}); +const _detectdomainlocale = require("../../shared/lib/i18n/detect-domain-locale"); +const _formatnextpathnameinfo = require("../../shared/lib/router/utils/format-next-pathname-info"); +const _gethostname = require("../../shared/lib/get-hostname"); +const _getnextpathnameinfo = require("../../shared/lib/router/utils/get-next-pathname-info"); +const REGEX_LOCALHOST_HOSTNAME = /^(?:127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}|\[::1\]|localhost)$/; +function parseURL(url, base) { + const parsed = new URL(String(url), base && String(base)); + if (REGEX_LOCALHOST_HOSTNAME.test(parsed.hostname)) { + parsed.hostname = 'localhost'; + } + return parsed; +} +const Internal = Symbol('NextURLInternal'); +class NextURL { + constructor(input, baseOrOpts, opts){ + let base; + let options; + if (typeof baseOrOpts === 'object' && 'pathname' in baseOrOpts || typeof baseOrOpts === 'string') { + base = baseOrOpts; + options = opts || {}; + } else { + options = opts || baseOrOpts || {}; + } + this[Internal] = { + url: parseURL(input, base ?? options.base), + options: options, + basePath: '' + }; + this.analyze(); + } + analyze() { + var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig, _this_Internal_domainLocale, _this_Internal_options_nextConfig_i18n1, _this_Internal_options_nextConfig1; + const info = (0, _getnextpathnameinfo.getNextPathnameInfo)(this[Internal].url.pathname, { + nextConfig: this[Internal].options.nextConfig, + parseData: !process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE, + i18nProvider: this[Internal].options.i18nProvider + }); + const hostname = (0, _gethostname.getHostname)(this[Internal].url, this[Internal].options.headers); + this[Internal].domainLocale = this[Internal].options.i18nProvider ? this[Internal].options.i18nProvider.detectDomainLocale(hostname) : (0, _detectdomainlocale.detectDomainLocale)((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.domains, hostname); + const defaultLocale = ((_this_Internal_domainLocale = this[Internal].domainLocale) == null ? void 0 : _this_Internal_domainLocale.defaultLocale) || ((_this_Internal_options_nextConfig1 = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n1 = _this_Internal_options_nextConfig1.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n1.defaultLocale); + this[Internal].url.pathname = info.pathname; + this[Internal].defaultLocale = defaultLocale; + this[Internal].basePath = info.basePath ?? ''; + this[Internal].buildId = info.buildId; + this[Internal].locale = info.locale ?? defaultLocale; + this[Internal].trailingSlash = info.trailingSlash; + } + formatPathname() { + return (0, _formatnextpathnameinfo.formatNextPathnameInfo)({ + basePath: this[Internal].basePath, + buildId: this[Internal].buildId, + defaultLocale: !this[Internal].options.forceLocale ? this[Internal].defaultLocale : undefined, + locale: this[Internal].locale, + pathname: this[Internal].url.pathname, + trailingSlash: this[Internal].trailingSlash + }); + } + formatSearch() { + return this[Internal].url.search; + } + get buildId() { + return this[Internal].buildId; + } + set buildId(buildId) { + this[Internal].buildId = buildId; + } + get locale() { + return this[Internal].locale ?? ''; + } + set locale(locale) { + var _this_Internal_options_nextConfig_i18n, _this_Internal_options_nextConfig; + if (!this[Internal].locale || !((_this_Internal_options_nextConfig = this[Internal].options.nextConfig) == null ? void 0 : (_this_Internal_options_nextConfig_i18n = _this_Internal_options_nextConfig.i18n) == null ? void 0 : _this_Internal_options_nextConfig_i18n.locales.includes(locale))) { + throw Object.defineProperty(new TypeError(`The NextURL configuration includes no locale "${locale}"`), "__NEXT_ERROR_CODE", { + value: "E597", + enumerable: false, + configurable: true + }); + } + this[Internal].locale = locale; + } + get defaultLocale() { + return this[Internal].defaultLocale; + } + get domainLocale() { + return this[Internal].domainLocale; + } + get searchParams() { + return this[Internal].url.searchParams; + } + get host() { + return this[Internal].url.host; + } + set host(value) { + this[Internal].url.host = value; + } + get hostname() { + return this[Internal].url.hostname; + } + set hostname(value) { + this[Internal].url.hostname = value; + } + get port() { + return this[Internal].url.port; + } + set port(value) { + this[Internal].url.port = value; + } + get protocol() { + return this[Internal].url.protocol; + } + set protocol(value) { + this[Internal].url.protocol = value; + } + get href() { + const pathname = this.formatPathname(); + const search = this.formatSearch(); + return `${this.protocol}//${this.host}${pathname}${search}${this.hash}`; + } + set href(url) { + this[Internal].url = parseURL(url); + this.analyze(); + } + get origin() { + return this[Internal].url.origin; + } + get pathname() { + return this[Internal].url.pathname; + } + set pathname(value) { + this[Internal].url.pathname = value; + } + get hash() { + return this[Internal].url.hash; + } + set hash(value) { + this[Internal].url.hash = value; + } + get search() { + return this[Internal].url.search; + } + set search(value) { + this[Internal].url.search = value; + } + get password() { + return this[Internal].url.password; + } + set password(value) { + this[Internal].url.password = value; + } + get username() { + return this[Internal].url.username; + } + set username(value) { + this[Internal].url.username = value; + } + get basePath() { + return this[Internal].basePath; + } + set basePath(value) { + this[Internal].basePath = value.startsWith('/') ? value : `/${value}`; + } + toString() { + return this.href; + } + toJSON() { + return this.href; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + href: this.href, + origin: this.origin, + protocol: this.protocol, + username: this.username, + password: this.password, + host: this.host, + hostname: this.hostname, + port: this.port, + pathname: this.pathname, + search: this.search, + searchParams: this.searchParams, + hash: this.hash + }; + } + clone() { + return new NextURL(String(this), this[Internal].options); + } +} + +//# sourceMappingURL=next-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/sandbox/context.js b/cli/app/node_modules/next/dist/server/web/sandbox/context.js new file mode 100644 index 00000000000..cc301c59c21 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/sandbox/context.js @@ -0,0 +1,462 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + clearAllModuleContexts: null, + clearModuleContext: null, + edgeSandboxNextRequestContext: null, + getModuleContext: null, + requestStore: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + clearAllModuleContexts: function() { + return clearAllModuleContexts; + }, + clearModuleContext: function() { + return clearModuleContext; + }, + edgeSandboxNextRequestContext: function() { + return edgeSandboxNextRequestContext; + }, + getModuleContext: function() { + return getModuleContext; + }, + requestStore: function() { + return requestStore; + } +}); +const _async_hooks = require("async_hooks"); +const _constants = require("../../../shared/lib/constants"); +const _edgeruntime = require("next/dist/compiled/edge-runtime"); +const _fs = require("fs"); +const _utils = require("../utils"); +const _pick = require("../../../lib/pick"); +const _fetchinlineassets = require("./fetch-inline-assets"); +const _vm = require("vm"); +const _nodebuffer = /*#__PURE__*/ _interop_require_default(require("node:buffer")); +const _nodeevents = /*#__PURE__*/ _interop_require_default(require("node:events")); +const _nodeassert = /*#__PURE__*/ _interop_require_default(require("node:assert")); +const _nodeutil = /*#__PURE__*/ _interop_require_default(require("node:util")); +const _nodeasync_hooks = /*#__PURE__*/ _interop_require_default(require("node:async_hooks")); +const _resourcemanagers = require("./resource-managers"); +const _builtinrequestcontext = require("../../after/builtin-request-context"); +const _patcherrorinspect = require("../../patch-error-inspect"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +let getServerError; +let decorateServerError; +if (process.env.NODE_ENV === 'development') { + getServerError = require('../../dev/node-stack-frames').getServerError; + decorateServerError = require('../../../shared/lib/error-source').decorateServerError; +} else { + getServerError = (error)=>error; + decorateServerError = ()=>{}; +} +/** + * A Map of cached module contexts indexed by the module name. It allows + * to have a different cache scoped per module name or depending on the + * provided module key on creation. + */ const moduleContexts = new Map(); +const pendingModuleCaches = new Map(); +async function clearAllModuleContexts() { + _resourcemanagers.intervalsManager.removeAll(); + _resourcemanagers.timeoutsManager.removeAll(); + moduleContexts.clear(); + pendingModuleCaches.clear(); +} +async function clearModuleContext(path) { + _resourcemanagers.intervalsManager.removeAll(); + _resourcemanagers.timeoutsManager.removeAll(); + const handleContext = (key, cache, context)=>{ + if (cache == null ? void 0 : cache.paths.has(path)) { + context.delete(key); + } + }; + for (const [key, cache] of moduleContexts){ + handleContext(key, cache, moduleContexts); + } + for (const [key, cache] of pendingModuleCaches){ + handleContext(key, await cache, pendingModuleCaches); + } +} +async function loadWasm(wasm) { + const modules = {}; + await Promise.all(wasm.map(async (binding)=>{ + const module1 = await WebAssembly.compile(// @ts-expect-error - Argument of type 'Buffer' is not assignable to parameter of type 'BufferSource'. + await _fs.promises.readFile(binding.filePath)); + modules[binding.name] = module1; + })); + return modules; +} +function buildEnvironmentVariablesFrom(injectedEnvironments) { + let env = Object.fromEntries([ + ...Object.entries(process.env), + ...Object.entries(injectedEnvironments), + [ + 'NEXT_RUNTIME', + 'edge' + ] + ]); + return env; +} +function throwUnsupportedAPIError(name) { + const error = Object.defineProperty(new Error(`A Node.js API is used (${name}) which is not supported in the Edge Runtime. +Learn more: https://nextjs.org/docs/api-reference/edge-runtime`), "__NEXT_ERROR_CODE", { + value: "E97", + enumerable: false, + configurable: true + }); + decorateServerError(error, _constants.COMPILER_NAMES.edgeServer); + throw error; +} +function createProcessPolyfill(env) { + const processPolyfill = { + env: buildEnvironmentVariablesFrom(env) + }; + const overriddenValue = {}; + for (const key of Object.keys(process)){ + if (key === 'env') continue; + Object.defineProperty(processPolyfill, key, { + get () { + if (overriddenValue[key] !== undefined) { + return overriddenValue[key]; + } + if (typeof process[key] === 'function') { + return ()=>throwUnsupportedAPIError(`process.${key}`); + } + return undefined; + }, + set (value) { + overriddenValue[key] = value; + }, + enumerable: false + }); + } + return processPolyfill; +} +function addStub(context, name) { + Object.defineProperty(context, name, { + get () { + return function() { + throwUnsupportedAPIError(name); + }; + }, + enumerable: false + }); +} +function getDecorateUnhandledError(runtime) { + const EdgeRuntimeError = runtime.evaluate(`Error`); + return (error)=>{ + if (error instanceof EdgeRuntimeError) { + decorateServerError(error, _constants.COMPILER_NAMES.edgeServer); + } + }; +} +function getDecorateUnhandledRejection(runtime) { + const EdgeRuntimeError = runtime.evaluate(`Error`); + return (rejected)=>{ + if (rejected.reason instanceof EdgeRuntimeError) { + decorateServerError(rejected.reason, _constants.COMPILER_NAMES.edgeServer); + } + }; +} +const NativeModuleMap = (()=>{ + const mods = { + 'node:buffer': (0, _pick.pick)(_nodebuffer.default, [ + 'constants', + 'kMaxLength', + 'kStringMaxLength', + 'Buffer', + 'SlowBuffer' + ]), + 'node:events': (0, _pick.pick)(_nodeevents.default, [ + 'EventEmitter', + 'captureRejectionSymbol', + 'defaultMaxListeners', + 'errorMonitor', + 'listenerCount', + 'on', + 'once' + ]), + 'node:async_hooks': (0, _pick.pick)(_nodeasync_hooks.default, [ + 'AsyncLocalStorage', + 'AsyncResource' + ]), + 'node:assert': (0, _pick.pick)(_nodeassert.default, [ + 'AssertionError', + 'deepEqual', + 'deepStrictEqual', + 'doesNotMatch', + 'doesNotReject', + 'doesNotThrow', + 'equal', + 'fail', + 'ifError', + 'match', + 'notDeepEqual', + 'notDeepStrictEqual', + 'notEqual', + 'notStrictEqual', + 'ok', + 'rejects', + 'strict', + 'strictEqual', + 'throws' + ]), + 'node:util': (0, _pick.pick)(_nodeutil.default, [ + '_extend', + 'callbackify', + 'format', + 'inherits', + 'promisify', + 'types' + ]) + }; + return new Map(Object.entries(mods)); +})(); +const requestStore = new _async_hooks.AsyncLocalStorage(); +const edgeSandboxNextRequestContext = (0, _builtinrequestcontext.createLocalRequestContext)(); +/** + * Create a module cache specific for the provided parameters. It includes + * a runtime context, require cache and paths cache. + */ async function createModuleContext(options) { + const warnedEvals = new Set(); + const warnedWasmCodegens = new Set(); + const { edgeFunctionEntry } = options; + const wasm = await loadWasm(edgeFunctionEntry.wasm ?? []); + const runtime = new _edgeruntime.EdgeRuntime({ + codeGeneration: process.env.NODE_ENV !== 'production' ? { + strings: true, + wasm: true + } : undefined, + extend: (context)=>{ + context.process = createProcessPolyfill(edgeFunctionEntry.env); + Object.defineProperty(context, 'require', { + enumerable: false, + value: (id)=>{ + const value = NativeModuleMap.get(id); + if (!value) { + throw Object.defineProperty(new TypeError('Native module not found: ' + id), "__NEXT_ERROR_CODE", { + value: "E546", + enumerable: false, + configurable: true + }); + } + return value; + } + }); + if (process.env.NODE_ENV !== 'production') { + context.__next_log_error__ = function(err) { + options.onError(err); + }; + } + context.__next_eval__ = function __next_eval__(fn) { + const key = fn.toString(); + if (!warnedEvals.has(key)) { + const warning = getServerError(Object.defineProperty(new Error(`Dynamic Code Evaluation (e. g. 'eval', 'new Function') not allowed in Edge Runtime +Learn More: https://nextjs.org/docs/messages/edge-dynamic-code-evaluation`), "__NEXT_ERROR_CODE", { + value: "E149", + enumerable: false, + configurable: true + }), _constants.COMPILER_NAMES.edgeServer); + warning.name = 'DynamicCodeEvaluationWarning'; + Error.captureStackTrace(warning, __next_eval__); + warnedEvals.add(key); + options.onWarning(warning); + } + return fn(); + }; + context.__next_webassembly_compile__ = function __next_webassembly_compile__(fn) { + const key = fn.toString(); + if (!warnedWasmCodegens.has(key)) { + const warning = getServerError(Object.defineProperty(new Error(`Dynamic WASM code generation (e. g. 'WebAssembly.compile') not allowed in Edge Runtime. +Learn More: https://nextjs.org/docs/messages/edge-dynamic-code-evaluation`), "__NEXT_ERROR_CODE", { + value: "E184", + enumerable: false, + configurable: true + }), _constants.COMPILER_NAMES.edgeServer); + warning.name = 'DynamicWasmCodeGenerationWarning'; + Error.captureStackTrace(warning, __next_webassembly_compile__); + warnedWasmCodegens.add(key); + options.onWarning(warning); + } + return fn(); + }; + context.__next_webassembly_instantiate__ = async function __next_webassembly_instantiate__(fn) { + const result = await fn(); + // If a buffer is given, WebAssembly.instantiate returns an object + // containing both a module and an instance while it returns only an + // instance if a WASM module is given. Utilize the fact to determine + // if the WASM code generation happens. + // + // https://developer.mozilla.org/docs/Web/JavaScript/Reference/Global_Objects/WebAssembly/instantiate#primary_overload_%E2%80%94_taking_wasm_binary_code + const instantiatedFromBuffer = result.hasOwnProperty('module'); + const key = fn.toString(); + if (instantiatedFromBuffer && !warnedWasmCodegens.has(key)) { + const warning = getServerError(Object.defineProperty(new Error(`Dynamic WASM code generation ('WebAssembly.instantiate' with a buffer parameter) not allowed in Edge Runtime. +Learn More: https://nextjs.org/docs/messages/edge-dynamic-code-evaluation`), "__NEXT_ERROR_CODE", { + value: "E40", + enumerable: false, + configurable: true + }), _constants.COMPILER_NAMES.edgeServer); + warning.name = 'DynamicWasmCodeGenerationWarning'; + Error.captureStackTrace(warning, __next_webassembly_instantiate__); + warnedWasmCodegens.add(key); + options.onWarning(warning); + } + return result; + }; + const __fetch = context.fetch; + context.fetch = async (input, init = {})=>{ + const callingError = Object.defineProperty(new Error('[internal]'), "__NEXT_ERROR_CODE", { + value: "E5", + enumerable: false, + configurable: true + }); + const assetResponse = await (0, _fetchinlineassets.fetchInlineAsset)({ + input, + assets: options.edgeFunctionEntry.assets, + distDir: options.distDir, + context + }); + if (assetResponse) { + return assetResponse; + } + init.headers = new Headers(init.headers ?? {}); + if (!init.headers.has('user-agent')) { + init.headers.set(`user-agent`, `Next.js Middleware`); + } + const response = typeof input === 'object' && 'url' in input ? __fetch(input.url, { + ...(0, _pick.pick)(input, [ + 'method', + 'body', + 'cache', + 'credentials', + 'integrity', + 'keepalive', + 'mode', + 'redirect', + 'referrer', + 'referrerPolicy', + 'signal' + ]), + ...init, + headers: { + ...Object.fromEntries(input.headers), + ...Object.fromEntries(init.headers) + } + }) : __fetch(String(input), init); + return await response.catch((err)=>{ + callingError.message = err.message; + err.stack = callingError.stack; + throw err; + }); + }; + const __Request = context.Request; + context.Request = class extends __Request { + constructor(input, init){ + const url = typeof input !== 'string' && 'url' in input ? input.url : String(input); + if (typeof input === 'string') { + (0, _utils.validateURL)(url); + super(input, init); + } else { + super(input, init); + (0, _utils.validateURL)(url); + } + this.next = init == null ? void 0 : init.next; + } + }; + const __redirect = context.Response.redirect.bind(context.Response); + context.Response.redirect = (...args)=>{ + (0, _utils.validateURL)(args[0]); + return __redirect(...args); + }; + for (const name of _constants.EDGE_UNSUPPORTED_NODE_APIS){ + addStub(context, name); + } + Object.assign(context, wasm); + context.performance = performance; + context.AsyncLocalStorage = _async_hooks.AsyncLocalStorage; + // @ts-ignore the timeouts have weird types in the edge runtime + context.setInterval = (...args)=>_resourcemanagers.intervalsManager.add(args); + // @ts-ignore the timeouts have weird types in the edge runtime + context.clearInterval = (interval)=>_resourcemanagers.intervalsManager.remove(interval); + // @ts-ignore the timeouts have weird types in the edge runtime + context.setTimeout = (...args)=>_resourcemanagers.timeoutsManager.add(args); + // @ts-ignore the timeouts have weird types in the edge runtime + context.clearTimeout = (timeout)=>_resourcemanagers.timeoutsManager.remove(timeout); + // Duplicated from packages/next/src/server/after/builtin-request-context.ts + // because we need to use the sandboxed `Symbol.for`, not the one from the outside + const NEXT_REQUEST_CONTEXT_SYMBOL = context.Symbol.for('@next/request-context'); + Object.defineProperty(context, NEXT_REQUEST_CONTEXT_SYMBOL, { + enumerable: false, + value: edgeSandboxNextRequestContext + }); + return context; + } + }); + const decorateUnhandledError = getDecorateUnhandledError(runtime); + runtime.context.addEventListener('error', decorateUnhandledError); + const decorateUnhandledRejection = getDecorateUnhandledRejection(runtime); + runtime.context.addEventListener('unhandledrejection', decorateUnhandledRejection); + (0, _patcherrorinspect.patchErrorInspectEdgeLite)(runtime.context.Error); + // An Error from within the Edge Runtime could also bubble up into the Node.js process. + // For example, uncaught errors are handled in the Node.js runtime. + (0, _patcherrorinspect.patchErrorInspectNodeJS)(runtime.context.Error); + return { + runtime, + paths: new Map(), + warnedEvals: new Set() + }; +} +function getModuleContextShared(options) { + let deferredModuleContext = pendingModuleCaches.get(options.moduleName); + if (!deferredModuleContext) { + deferredModuleContext = createModuleContext(options); + pendingModuleCaches.set(options.moduleName, deferredModuleContext); + } + return deferredModuleContext; +} +async function getModuleContext(options) { + let lazyModuleContext; + if (options.useCache) { + lazyModuleContext = moduleContexts.get(options.moduleName) || await getModuleContextShared(options); + } + if (!lazyModuleContext) { + lazyModuleContext = await createModuleContext(options); + moduleContexts.set(options.moduleName, lazyModuleContext); + } + const moduleContext = lazyModuleContext; + const evaluateInContext = (filepath)=>{ + if (!moduleContext.paths.has(filepath)) { + const content = (0, _fs.readFileSync)(filepath, 'utf-8'); + try { + (0, _vm.runInContext)(content, moduleContext.runtime.context, { + filename: filepath + }); + moduleContext.paths.set(filepath, content); + } catch (error) { + if (options.useCache) { + moduleContext == null ? void 0 : moduleContext.paths.delete(filepath); + } + throw error; + } + } + }; + return { + ...moduleContext, + evaluateInContext + }; +} + +//# sourceMappingURL=context.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js b/cli/app/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js new file mode 100644 index 00000000000..1bcacd01d47 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/sandbox/fetch-inline-assets.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "fetchInlineAsset", { + enumerable: true, + get: function() { + return fetchInlineAsset; + } +}); +const _fs = require("fs"); +const _bodystreams = require("../../body-streams"); +const _path = require("path"); +async function fetchInlineAsset(options) { + const inputString = String(options.input); + if (!inputString.startsWith('blob:')) { + return; + } + const name = inputString.replace('blob:', ''); + const asset = options.assets ? options.assets.find((x)=>x.name === name) : { + name, + filePath: name + }; + if (!asset) { + return; + } + const filePath = (0, _path.resolve)(options.distDir, asset.filePath); + const fileIsReadable = await _fs.promises.access(filePath).then(()=>true, ()=>false); + if (fileIsReadable) { + const readStream = (0, _fs.createReadStream)(filePath); + return new options.context.Response((0, _bodystreams.requestToBodyStream)(options.context, Uint8Array, readStream)); + } +} + +//# sourceMappingURL=fetch-inline-assets.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/sandbox/index.js b/cli/app/node_modules/next/dist/server/web/sandbox/index.js new file mode 100644 index 00000000000..7d8aaca8727 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/sandbox/index.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "clearModuleContext", { + enumerable: true, + get: function() { + return _context.clearModuleContext; + } +}); +0 && __export(require("./sandbox")); +_export_star(require("./sandbox"), exports); +const _context = require("./context"); +function _export_star(from, to) { + Object.keys(from).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) { + Object.defineProperty(to, k, { + enumerable: true, + get: function() { + return from[k]; + } + }); + } + }); + return from; +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/sandbox/resource-managers.js b/cli/app/node_modules/next/dist/server/web/sandbox/resource-managers.js new file mode 100644 index 00000000000..7fbd100430e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/sandbox/resource-managers.js @@ -0,0 +1,88 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + intervalsManager: null, + timeoutsManager: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + intervalsManager: function() { + return intervalsManager; + }, + timeoutsManager: function() { + return timeoutsManager; + } +}); +class ResourceManager { + add(resourceArgs) { + const resource = this.create(resourceArgs); + this.resources.push(resource); + return resource; + } + remove(resource) { + this.resources = this.resources.filter((r)=>r !== resource); + this.destroy(resource); + } + removeAll() { + this.resources.forEach(this.destroy); + this.resources = []; + } + constructor(){ + this.resources = []; + } +} +class IntervalsManager extends ResourceManager { + create(args) { + // TODO: use the edge runtime provided `setInterval` instead + return webSetIntervalPolyfill(...args); + } + destroy(interval) { + clearInterval(interval); + } +} +class TimeoutsManager extends ResourceManager { + create(args) { + // TODO: use the edge runtime provided `setTimeout` instead + return webSetTimeoutPolyfill(...args); + } + destroy(timeout) { + clearTimeout(timeout); + } +} +function webSetIntervalPolyfill(callback, ms, ...args) { + return setInterval(()=>{ + // node's `setInterval` sets `this` to the `Timeout` instance it returned, + // but web `setInterval` always sets `this` to `window` + // see: https://developer.mozilla.org/en-US/docs/Web/API/Window/setInterval#the_this_problem + return callback.apply(globalThis, args); + }, ms)[Symbol.toPrimitive](); +} +function webSetTimeoutPolyfill(callback, ms, ...args) { + const wrappedCallback = ()=>{ + try { + // node's `setTimeout` sets `this` to the `Timeout` instance it returned, + // but web `setTimeout` always sets `this` to `window` + // see: https://developer.mozilla.org/en-US/docs/Web/API/Window/setTimeout#the_this_problem + return callback.apply(globalThis, args); + } finally{ + // On certain older node versions (<20.16.0, <22.4.0), + // a `setTimeout` whose Timeout was converted to a primitive will leak. + // See: https://github.com/nodejs/node/issues/53335 + // We can work around this by explicitly calling `clearTimeout` after the callback runs. + clearTimeout(timeout); + } + }; + const timeout = setTimeout(wrappedCallback, ms); + return timeout[Symbol.toPrimitive](); +} +const intervalsManager = new IntervalsManager(); +const timeoutsManager = new TimeoutsManager(); + +//# sourceMappingURL=resource-managers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/sandbox/sandbox.js b/cli/app/node_modules/next/dist/server/web/sandbox/sandbox.js new file mode 100644 index 00000000000..1e38391e2aa --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/sandbox/sandbox.js @@ -0,0 +1,137 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ErrorSource: null, + getRuntimeContext: null, + run: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ErrorSource: function() { + return ErrorSource; + }, + getRuntimeContext: function() { + return getRuntimeContext; + }, + run: function() { + return run; + } +}); +const _context = require("./context"); +const _bodystreams = require("../../body-streams"); +const _builtinrequestcontext = require("../../after/builtin-request-context"); +const _routerservercontext = require("../../lib/router-utils/router-server-context"); +const ErrorSource = Symbol('SandboxError'); +const FORBIDDEN_HEADERS = [ + 'content-length', + 'content-encoding', + 'transfer-encoding' +]; +/** + * Decorates the runner function making sure all errors it can produce are + * tagged with `edge-server` so they can properly be rendered in dev. + */ function withTaggedErrors(fn) { + if (process.env.NODE_ENV === 'development') { + const { getServerError } = require('../../dev/node-stack-frames'); + return (params)=>fn(params).then((result)=>{ + var _result_waitUntil; + return { + ...result, + waitUntil: result == null ? void 0 : (_result_waitUntil = result.waitUntil) == null ? void 0 : _result_waitUntil.catch((error)=>{ + // TODO: used COMPILER_NAMES.edgeServer instead. Verify that it does not increase the runtime size. + throw getServerError(error, 'edge-server'); + }) + }; + }).catch((error)=>{ + // TODO: used COMPILER_NAMES.edgeServer instead + throw getServerError(error, 'edge-server'); + }); + } + return fn; +} +async function getRuntimeContext(params) { + const { runtime, evaluateInContext } = await (0, _context.getModuleContext)({ + moduleName: params.name, + onWarning: params.onWarning ?? (()=>{}), + onError: params.onError ?? (()=>{}), + useCache: params.useCache !== false, + edgeFunctionEntry: params.edgeFunctionEntry, + distDir: params.distDir + }); + if (params.incrementalCache) { + runtime.context.globalThis.__incrementalCacheShared = true; + runtime.context.globalThis.__incrementalCache = params.incrementalCache; + } + // expose router server context for access to dev handlers like + // logErrorWithOriginalStack + ; + runtime.context.globalThis[_routerservercontext.RouterServerContextSymbol] = _routerservercontext.routerServerGlobal[_routerservercontext.RouterServerContextSymbol]; + if (params.serverComponentsHmrCache) { + runtime.context.globalThis.__serverComponentsHmrCache = params.serverComponentsHmrCache; + } + if (params.clientAssetToken) { + runtime.context.globalThis.NEXT_CLIENT_ASSET_SUFFIX = params.clientAssetToken ? `?dpl=${params.clientAssetToken}` : ''; + } + for (const paramPath of params.paths){ + evaluateInContext(paramPath); + } + return runtime; +} +const run = withTaggedErrors(async function runWithTaggedErrors(params) { + var _params_request_body; + const runtime = await getRuntimeContext(params); + const edgeFunction = (await runtime.context._ENTRIES[`middleware_${params.name}`]).default; + const cloned = ![ + 'HEAD', + 'GET' + ].includes(params.request.method) ? (_params_request_body = params.request.body) == null ? void 0 : _params_request_body.cloneBodyStream() : undefined; + const KUint8Array = runtime.evaluate('Uint8Array'); + const urlInstance = new URL(params.request.url); + params.request.url = urlInstance.toString(); + const headers = new Headers(); + for (const [key, value] of Object.entries(params.request.headers)){ + headers.set(key, (value == null ? void 0 : value.toString()) ?? ''); + } + try { + let result = undefined; + const builtinRequestCtx = { + ...(0, _builtinrequestcontext.getBuiltinRequestContext)(), + // FIXME(after): + // arguably, this is an abuse of "@next/request-context" -- + // it'd make more sense to simply forward its existing value into the sandbox (in `createModuleContext`) + // but here we're using it to just pass in `waitUntil` regardless if we were running in this context or not. + waitUntil: params.request.waitUntil + }; + await _context.edgeSandboxNextRequestContext.run(builtinRequestCtx, ()=>_context.requestStore.run({ + headers + }, async ()=>{ + result = await edgeFunction({ + request: { + ...params.request, + body: cloned && (0, _bodystreams.requestToBodyStream)(runtime.context, KUint8Array, cloned) + } + }); + for (const headerName of FORBIDDEN_HEADERS){ + result.response.headers.delete(headerName); + } + })); + if (!result) throw Object.defineProperty(new Error('Edge function did not return a response'), "__NEXT_ERROR_CODE", { + value: "E332", + enumerable: false, + configurable: true + }); + return result; + } finally{ + var _params_request_body1; + await ((_params_request_body1 = params.request.body) == null ? void 0 : _params_request_body1.finalize()); + } +}); + +//# sourceMappingURL=sandbox.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/headers.js b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/headers.js new file mode 100644 index 00000000000..64d9d3a40ab --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/headers.js @@ -0,0 +1,192 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HeadersAdapter: null, + ReadonlyHeadersError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HeadersAdapter: function() { + return HeadersAdapter; + }, + ReadonlyHeadersError: function() { + return ReadonlyHeadersError; + } +}); +const _reflect = require("./reflect"); +class ReadonlyHeadersError extends Error { + constructor(){ + super('Headers cannot be modified. Read more: https://nextjs.org/docs/app/api-reference/functions/headers'); + } + static callable() { + throw new ReadonlyHeadersError(); + } +} +class HeadersAdapter extends Headers { + constructor(headers){ + // We've already overridden the methods that would be called, so we're just + // calling the super constructor to ensure that the instanceof check works. + super(); + this.headers = new Proxy(headers, { + get (target, prop, receiver) { + // Because this is just an object, we expect that all "get" operations + // are for properties. If it's a "get" for a symbol, we'll just return + // the symbol. + if (typeof prop === 'symbol') { + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return undefined. + if (typeof original === 'undefined') return; + // If the original casing exists, return the value. + return _reflect.ReflectAdapter.get(target, original, receiver); + }, + set (target, prop, value, receiver) { + if (typeof prop === 'symbol') { + return _reflect.ReflectAdapter.set(target, prop, value, receiver); + } + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, use the prop as the key. + return _reflect.ReflectAdapter.set(target, original ?? prop, value, receiver); + }, + has (target, prop) { + if (typeof prop === 'symbol') return _reflect.ReflectAdapter.has(target, prop); + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return false. + if (typeof original === 'undefined') return false; + // If the original casing exists, return true. + return _reflect.ReflectAdapter.has(target, original); + }, + deleteProperty (target, prop) { + if (typeof prop === 'symbol') return _reflect.ReflectAdapter.deleteProperty(target, prop); + const lowercased = prop.toLowerCase(); + // Let's find the original casing of the key. This assumes that there is + // no mixed case keys (e.g. "Content-Type" and "content-type") in the + // headers object. + const original = Object.keys(headers).find((o)=>o.toLowerCase() === lowercased); + // If the original casing doesn't exist, return true. + if (typeof original === 'undefined') return true; + // If the original casing exists, delete the property. + return _reflect.ReflectAdapter.deleteProperty(target, original); + } + }); + } + /** + * Seals a Headers instance to prevent modification by throwing an error when + * any mutating method is called. + */ static seal(headers) { + return new Proxy(headers, { + get (target, prop, receiver) { + switch(prop){ + case 'append': + case 'delete': + case 'set': + return ReadonlyHeadersError.callable; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + } + /** + * Merges a header value into a string. This stores multiple values as an + * array, so we need to merge them into a string. + * + * @param value a header value + * @returns a merged header value (a string) + */ merge(value) { + if (Array.isArray(value)) return value.join(', '); + return value; + } + /** + * Creates a Headers instance from a plain object or a Headers instance. + * + * @param headers a plain object or a Headers instance + * @returns a headers instance + */ static from(headers) { + if (headers instanceof Headers) return headers; + return new HeadersAdapter(headers); + } + append(name, value) { + const existing = this.headers[name]; + if (typeof existing === 'string') { + this.headers[name] = [ + existing, + value + ]; + } else if (Array.isArray(existing)) { + existing.push(value); + } else { + this.headers[name] = value; + } + } + delete(name) { + delete this.headers[name]; + } + get(name) { + const value = this.headers[name]; + if (typeof value !== 'undefined') return this.merge(value); + return null; + } + has(name) { + return typeof this.headers[name] !== 'undefined'; + } + set(name, value) { + this.headers[name] = value; + } + forEach(callbackfn, thisArg) { + for (const [name, value] of this.entries()){ + callbackfn.call(thisArg, value, name, this); + } + } + *entries() { + for (const key of Object.keys(this.headers)){ + const name = key.toLowerCase(); + // We assert here that this is a string because we got it from the + // Object.keys() call above. + const value = this.get(name); + yield [ + name, + value + ]; + } + } + *keys() { + for (const key of Object.keys(this.headers)){ + const name = key.toLowerCase(); + yield name; + } + } + *values() { + for (const key of Object.keys(this.headers)){ + // We assert here that this is a string because we got it from the + // Object.keys() call above. + const value = this.get(key); + yield value; + } + } + [Symbol.iterator]() { + return this.entries(); + } +} + +//# sourceMappingURL=headers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js new file mode 100644 index 00000000000..5c27a83a584 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/next-request.js @@ -0,0 +1,142 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NextRequestAdapter: null, + ResponseAborted: null, + ResponseAbortedName: null, + createAbortController: null, + signalFromNodeResponse: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NextRequestAdapter: function() { + return NextRequestAdapter; + }, + ResponseAborted: function() { + return ResponseAborted; + }, + ResponseAbortedName: function() { + return ResponseAbortedName; + }, + createAbortController: function() { + return createAbortController; + }, + signalFromNodeResponse: function() { + return signalFromNodeResponse; + } +}); +const _requestmeta = require("../../../request-meta"); +const _utils = require("../../utils"); +const _request = require("../request"); +const _helpers = require("../../../base-http/helpers"); +const ResponseAbortedName = 'ResponseAborted'; +class ResponseAborted extends Error { + constructor(...args){ + super(...args), this.name = ResponseAbortedName; + } +} +function createAbortController(response) { + const controller = new AbortController(); + // If `finish` fires first, then `res.end()` has been called and the close is + // just us finishing the stream on our side. If `close` fires first, then we + // know the client disconnected before we finished. + response.once('close', ()=>{ + if (response.writableFinished) return; + controller.abort(new ResponseAborted()); + }); + return controller; +} +function signalFromNodeResponse(response) { + const { errored, destroyed } = response; + if (errored || destroyed) { + return AbortSignal.abort(errored ?? new ResponseAborted()); + } + const { signal } = createAbortController(response); + return signal; +} +class NextRequestAdapter { + static fromBaseNextRequest(request, signal) { + if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME === 'edge' && (0, _helpers.isWebNextRequest)(request)) { + return NextRequestAdapter.fromWebNextRequest(request); + } else if (// The type check here ensures that `req` is correctly typed, and the + // environment variable check provides dead code elimination. + process.env.NEXT_RUNTIME !== 'edge' && (0, _helpers.isNodeNextRequest)(request)) { + return NextRequestAdapter.fromNodeNextRequest(request, signal); + } else { + throw Object.defineProperty(new Error('Invariant: Unsupported NextRequest type'), "__NEXT_ERROR_CODE", { + value: "E345", + enumerable: false, + configurable: true + }); + } + } + static fromNodeNextRequest(request, signal) { + // HEAD and GET requests can not have a body. + let body = null; + if (request.method !== 'GET' && request.method !== 'HEAD' && request.body) { + // @ts-expect-error - this is handled by undici, when streams/web land use it instead + body = request.body; + } + let url; + if (request.url.startsWith('http')) { + url = new URL(request.url); + } else { + // Grab the full URL from the request metadata. + const base = (0, _requestmeta.getRequestMeta)(request, 'initURL'); + if (!base || !base.startsWith('http')) { + // Because the URL construction relies on the fact that the URL provided + // is absolute, we need to provide a base URL. We can't use the request + // URL because it's relative, so we use a dummy URL instead. + url = new URL(request.url, 'http://n'); + } else { + url = new URL(request.url, base); + } + } + return new _request.NextRequest(url, { + method: request.method, + headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers), + duplex: 'half', + signal, + // geo + // ip + // nextConfig + // body can not be passed if request was aborted + // or we get a Request body was disturbed error + ...signal.aborted ? {} : { + body + } + }); + } + static fromWebNextRequest(request) { + // HEAD and GET requests can not have a body. + let body = null; + if (request.method !== 'GET' && request.method !== 'HEAD') { + body = request.body; + } + return new _request.NextRequest(request.url, { + method: request.method, + headers: (0, _utils.fromNodeOutgoingHttpHeaders)(request.headers), + duplex: 'half', + signal: request.request.signal, + // geo + // ip + // nextConfig + // body can not be passed if request was aborted + // or we get a Request body was disturbed error + ...request.request.signal.aborted ? {} : { + body + } + }); + } +} + +//# sourceMappingURL=next-request.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js new file mode 100644 index 00000000000..146f06314c9 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ReflectAdapter", { + enumerable: true, + get: function() { + return ReflectAdapter; + } +}); +class ReflectAdapter { + static get(target, prop, receiver) { + const value = Reflect.get(target, prop, receiver); + if (typeof value === 'function') { + return value.bind(target); + } + return value; + } + static set(target, prop, value, receiver) { + return Reflect.set(target, prop, value, receiver); + } + static has(target, prop) { + return Reflect.has(target, prop); + } + static deleteProperty(target, prop) { + return Reflect.deleteProperty(target, prop); + } +} + +//# sourceMappingURL=reflect.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js new file mode 100644 index 00000000000..15feea7e3d7 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js @@ -0,0 +1,211 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + MutableRequestCookiesAdapter: null, + ReadonlyRequestCookiesError: null, + RequestCookiesAdapter: null, + appendMutableCookies: null, + areCookiesMutableInCurrentPhase: null, + createCookiesWithMutableAccessCheck: null, + getModifiedCookieValues: null, + responseCookiesToRequestCookies: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + MutableRequestCookiesAdapter: function() { + return MutableRequestCookiesAdapter; + }, + ReadonlyRequestCookiesError: function() { + return ReadonlyRequestCookiesError; + }, + RequestCookiesAdapter: function() { + return RequestCookiesAdapter; + }, + appendMutableCookies: function() { + return appendMutableCookies; + }, + areCookiesMutableInCurrentPhase: function() { + return areCookiesMutableInCurrentPhase; + }, + createCookiesWithMutableAccessCheck: function() { + return createCookiesWithMutableAccessCheck; + }, + getModifiedCookieValues: function() { + return getModifiedCookieValues; + }, + responseCookiesToRequestCookies: function() { + return responseCookiesToRequestCookies; + } +}); +const _cookies = require("../cookies"); +const _reflect = require("./reflect"); +const _workasyncstorageexternal = require("../../../app-render/work-async-storage.external"); +const _actionrevalidationkind = require("../../../../shared/lib/action-revalidation-kind"); +class ReadonlyRequestCookiesError extends Error { + constructor(){ + super('Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options'); + } + static callable() { + throw new ReadonlyRequestCookiesError(); + } +} +class RequestCookiesAdapter { + static seal(cookies) { + return new Proxy(cookies, { + get (target, prop, receiver) { + switch(prop){ + case 'clear': + case 'delete': + case 'set': + return ReadonlyRequestCookiesError.callable; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + } +} +const SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies'); +function getModifiedCookieValues(cookies) { + const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES]; + if (!modified || !Array.isArray(modified) || modified.length === 0) { + return []; + } + return modified; +} +function appendMutableCookies(headers, mutableCookies) { + const modifiedCookieValues = getModifiedCookieValues(mutableCookies); + if (modifiedCookieValues.length === 0) { + return false; + } + // Return a new response that extends the response with + // the modified cookies as fallbacks. `res` cookies + // will still take precedence. + const resCookies = new _cookies.ResponseCookies(headers); + const returnedCookies = resCookies.getAll(); + // Set the modified cookies as fallbacks. + for (const cookie of modifiedCookieValues){ + resCookies.set(cookie); + } + // Set the original cookies as the final values. + for (const cookie of returnedCookies){ + resCookies.set(cookie); + } + return true; +} +class MutableRequestCookiesAdapter { + static wrap(cookies, onUpdateCookies) { + const responseCookies = new _cookies.ResponseCookies(new Headers()); + for (const cookie of cookies.getAll()){ + responseCookies.set(cookie); + } + let modifiedValues = []; + const modifiedCookies = new Set(); + const updateResponseCookies = ()=>{ + // TODO-APP: change method of getting workStore + const workStore = _workasyncstorageexternal.workAsyncStorage.getStore(); + if (workStore) { + workStore.pathWasRevalidated = _actionrevalidationkind.ActionDidRevalidateStaticAndDynamic; + } + const allCookies = responseCookies.getAll(); + modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name)); + if (onUpdateCookies) { + const serializedCookies = []; + for (const cookie of modifiedValues){ + const tempCookies = new _cookies.ResponseCookies(new Headers()); + tempCookies.set(cookie); + serializedCookies.push(tempCookies.toString()); + } + onUpdateCookies(serializedCookies); + } + }; + const wrappedCookies = new Proxy(responseCookies, { + get (target, prop, receiver) { + switch(prop){ + // A special symbol to get the modified cookie values + case SYMBOL_MODIFY_COOKIE_VALUES: + return modifiedValues; + // TODO: Throw error if trying to set a cookie after the response + // headers have been set. + case 'delete': + return function(...args) { + modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name); + try { + target.delete(...args); + return wrappedCookies; + } finally{ + updateResponseCookies(); + } + }; + case 'set': + return function(...args) { + modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name); + try { + target.set(...args); + return wrappedCookies; + } finally{ + updateResponseCookies(); + } + }; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + return wrappedCookies; + } +} +function createCookiesWithMutableAccessCheck(requestStore) { + const wrappedCookies = new Proxy(requestStore.mutableCookies, { + get (target, prop, receiver) { + switch(prop){ + case 'delete': + return function(...args) { + ensureCookiesAreStillMutable(requestStore, 'cookies().delete'); + target.delete(...args); + return wrappedCookies; + }; + case 'set': + return function(...args) { + ensureCookiesAreStillMutable(requestStore, 'cookies().set'); + target.set(...args); + return wrappedCookies; + }; + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + return wrappedCookies; +} +function areCookiesMutableInCurrentPhase(requestStore) { + return requestStore.phase === 'action'; +} +/** Ensure that cookies() starts throwing on mutation + * if we changed phases and can no longer mutate. + * + * This can happen when going: + * 'render' -> 'after' + * 'action' -> 'render' + * */ function ensureCookiesAreStillMutable(requestStore, _callingExpression) { + if (!areCookiesMutableInCurrentPhase(requestStore)) { + // TODO: maybe we can give a more precise error message based on callingExpression? + throw new ReadonlyRequestCookiesError(); + } +} +function responseCookiesToRequestCookies(responseCookies) { + const requestCookies = new _cookies.RequestCookies(new Headers()); + for (const cookie of responseCookies.getAll()){ + requestCookies.set(cookie); + } + return requestCookies; +} + +//# sourceMappingURL=request-cookies.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/cookies.js b/cli/app/node_modules/next/dist/server/web/spec-extension/cookies.js new file mode 100644 index 00000000000..5c3122230fe --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/cookies.js @@ -0,0 +1,29 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + RequestCookies: null, + ResponseCookies: null, + stringifyCookie: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + RequestCookies: function() { + return _cookies.RequestCookies; + }, + ResponseCookies: function() { + return _cookies.ResponseCookies; + }, + stringifyCookie: function() { + return _cookies.stringifyCookie; + } +}); +const _cookies = require("next/dist/compiled/@edge-runtime/cookies"); + +//# sourceMappingURL=cookies.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/fetch-event.js b/cli/app/node_modules/next/dist/server/web/spec-extension/fetch-event.js new file mode 100644 index 00000000000..013873f5914 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/fetch-event.js @@ -0,0 +1,98 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NextFetchEvent: null, + getWaitUntilPromiseFromEvent: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NextFetchEvent: function() { + return NextFetchEvent; + }, + getWaitUntilPromiseFromEvent: function() { + return getWaitUntilPromiseFromEvent; + } +}); +const _error = require("../error"); +const responseSymbol = Symbol('response'); +const passThroughSymbol = Symbol('passThrough'); +const waitUntilSymbol = Symbol('waitUntil'); +class FetchEvent { + constructor(_request, waitUntil){ + this[passThroughSymbol] = false; + this[waitUntilSymbol] = waitUntil ? { + kind: 'external', + function: waitUntil + } : { + kind: 'internal', + promises: [] + }; + } + // TODO: is this dead code? NextFetchEvent never lets this get called + respondWith(response) { + if (!this[responseSymbol]) { + this[responseSymbol] = Promise.resolve(response); + } + } + // TODO: is this dead code? passThroughSymbol is unused + passThroughOnException() { + this[passThroughSymbol] = true; + } + waitUntil(promise) { + if (this[waitUntilSymbol].kind === 'external') { + // if we received an external waitUntil, we delegate to it + // TODO(after): this will make us not go through `getServerError(error, 'edge-server')` in `sandbox` + const waitUntil = this[waitUntilSymbol].function; + return waitUntil(promise); + } else { + // if we didn't receive an external waitUntil, we make it work on our own + // (and expect the caller to do something with the promises) + this[waitUntilSymbol].promises.push(promise); + } + } +} +function getWaitUntilPromiseFromEvent(event) { + return event[waitUntilSymbol].kind === 'internal' ? Promise.all(event[waitUntilSymbol].promises).then(()=>{}) : undefined; +} +class NextFetchEvent extends FetchEvent { + constructor(params){ + var _params_context; + super(params.request, (_params_context = params.context) == null ? void 0 : _params_context.waitUntil); + this.sourcePage = params.page; + } + /** + * @deprecated The `request` is now the first parameter and the API is now async. + * + * Read more: https://nextjs.org/docs/messages/middleware-new-signature + */ get request() { + throw Object.defineProperty(new _error.PageSignatureError({ + page: this.sourcePage + }), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } + /** + * @deprecated Using `respondWith` is no longer needed. + * + * Read more: https://nextjs.org/docs/messages/middleware-new-signature + */ respondWith() { + throw Object.defineProperty(new _error.PageSignatureError({ + page: this.sourcePage + }), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } +} + +//# sourceMappingURL=fetch-event.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/request.js b/cli/app/node_modules/next/dist/server/web/spec-extension/request.js new file mode 100644 index 00000000000..3dc1ce5791e --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/request.js @@ -0,0 +1,99 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + INTERNALS: null, + NextRequest: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + INTERNALS: function() { + return INTERNALS; + }, + NextRequest: function() { + return NextRequest; + } +}); +const _nexturl = require("../next-url"); +const _utils = require("../utils"); +const _error = require("../error"); +const _cookies = require("./cookies"); +const INTERNALS = Symbol('internal request'); +class NextRequest extends Request { + constructor(input, init = {}){ + const url = typeof input !== 'string' && 'url' in input ? input.url : String(input); + (0, _utils.validateURL)(url); + // node Request instance requires duplex option when a body + // is present or it errors, we don't handle this for + // Request being passed in since it would have already + // errored if this wasn't configured + if (process.env.NEXT_RUNTIME !== 'edge') { + if (init.body && init.duplex !== 'half') { + init.duplex = 'half'; + } + } + if (input instanceof Request) super(input, init); + else super(url, init); + const nextUrl = new _nexturl.NextURL(url, { + headers: (0, _utils.toNodeOutgoingHttpHeaders)(this.headers), + nextConfig: init.nextConfig + }); + this[INTERNALS] = { + cookies: new _cookies.RequestCookies(this.headers), + nextUrl, + url: process.env.__NEXT_NO_MIDDLEWARE_URL_NORMALIZE ? url : nextUrl.toString() + }; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + cookies: this.cookies, + nextUrl: this.nextUrl, + url: this.url, + // rest of props come from Request + bodyUsed: this.bodyUsed, + cache: this.cache, + credentials: this.credentials, + destination: this.destination, + headers: Object.fromEntries(this.headers), + integrity: this.integrity, + keepalive: this.keepalive, + method: this.method, + mode: this.mode, + redirect: this.redirect, + referrer: this.referrer, + referrerPolicy: this.referrerPolicy, + signal: this.signal + }; + } + get cookies() { + return this[INTERNALS].cookies; + } + get nextUrl() { + return this[INTERNALS].nextUrl; + } + /** + * @deprecated + * `page` has been deprecated in favour of `URLPattern`. + * Read more: https://nextjs.org/docs/messages/middleware-request-page + */ get page() { + throw new _error.RemovedPageError(); + } + /** + * @deprecated + * `ua` has been removed in favour of \`userAgent\` function. + * Read more: https://nextjs.org/docs/messages/middleware-parse-user-agent + */ get ua() { + throw new _error.RemovedUAError(); + } + get url() { + return this[INTERNALS].url; + } +} + +//# sourceMappingURL=request.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/spec-extension/response.js b/cli/app/node_modules/next/dist/server/web/spec-extension/response.js new file mode 100644 index 00000000000..f5fc8e183c0 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/spec-extension/response.js @@ -0,0 +1,136 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NextResponse", { + enumerable: true, + get: function() { + return NextResponse; + } +}); +const _cookies = require("../../web/spec-extension/cookies"); +const _nexturl = require("../next-url"); +const _utils = require("../utils"); +const _reflect = require("./adapters/reflect"); +const _cookies1 = require("./cookies"); +const INTERNALS = Symbol('internal response'); +const REDIRECTS = new Set([ + 301, + 302, + 303, + 307, + 308 +]); +function handleMiddlewareField(init, headers) { + var _init_request; + if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) { + if (!(init.request.headers instanceof Headers)) { + throw Object.defineProperty(new Error('request.headers must be an instance of Headers'), "__NEXT_ERROR_CODE", { + value: "E119", + enumerable: false, + configurable: true + }); + } + const keys = []; + for (const [key, value] of init.request.headers){ + headers.set('x-middleware-request-' + key, value); + keys.push(key); + } + headers.set('x-middleware-override-headers', keys.join(',')); + } +} +class NextResponse extends Response { + constructor(body, init = {}){ + super(body, init); + const headers = this.headers; + const cookies = new _cookies1.ResponseCookies(headers); + const cookiesProxy = new Proxy(cookies, { + get (target, prop, receiver) { + switch(prop){ + case 'delete': + case 'set': + { + return (...args)=>{ + const result = Reflect.apply(target[prop], target, args); + const newHeaders = new Headers(headers); + if (result instanceof _cookies1.ResponseCookies) { + headers.set('x-middleware-set-cookie', result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(',')); + } + handleMiddlewareField(init, newHeaders); + return result; + }; + } + default: + return _reflect.ReflectAdapter.get(target, prop, receiver); + } + } + }); + this[INTERNALS] = { + cookies: cookiesProxy, + url: init.url ? new _nexturl.NextURL(init.url, { + headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers), + nextConfig: init.nextConfig + }) : undefined + }; + } + [Symbol.for('edge-runtime.inspect.custom')]() { + return { + cookies: this.cookies, + url: this.url, + // rest of props come from Response + body: this.body, + bodyUsed: this.bodyUsed, + headers: Object.fromEntries(this.headers), + ok: this.ok, + redirected: this.redirected, + status: this.status, + statusText: this.statusText, + type: this.type + }; + } + get cookies() { + return this[INTERNALS].cookies; + } + static json(body, init) { + const response = Response.json(body, init); + return new NextResponse(response.body, response); + } + static redirect(url, init) { + const status = typeof init === 'number' ? init : (init == null ? void 0 : init.status) ?? 307; + if (!REDIRECTS.has(status)) { + throw Object.defineProperty(new RangeError('Failed to execute "redirect" on "response": Invalid status code'), "__NEXT_ERROR_CODE", { + value: "E529", + enumerable: false, + configurable: true + }); + } + const initObj = typeof init === 'object' ? init : {}; + const headers = new Headers(initObj == null ? void 0 : initObj.headers); + headers.set('Location', (0, _utils.validateURL)(url)); + return new NextResponse(null, { + ...initObj, + headers, + status + }); + } + static rewrite(destination, init) { + const headers = new Headers(init == null ? void 0 : init.headers); + headers.set('x-middleware-rewrite', (0, _utils.validateURL)(destination)); + handleMiddlewareField(init, headers); + return new NextResponse(null, { + ...init, + headers + }); + } + static next(init) { + const headers = new Headers(init == null ? void 0 : init.headers); + headers.set('x-middleware-next', '1'); + handleMiddlewareField(init, headers); + return new NextResponse(null, { + ...init, + headers + }); + } +} + +//# sourceMappingURL=response.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/utils.js b/cli/app/node_modules/next/dist/server/web/utils.js new file mode 100644 index 00000000000..3a594008ed5 --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/utils.js @@ -0,0 +1,151 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + fromNodeOutgoingHttpHeaders: null, + normalizeNextQueryParam: null, + splitCookiesString: null, + toNodeOutgoingHttpHeaders: null, + validateURL: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + fromNodeOutgoingHttpHeaders: function() { + return fromNodeOutgoingHttpHeaders; + }, + normalizeNextQueryParam: function() { + return normalizeNextQueryParam; + }, + splitCookiesString: function() { + return splitCookiesString; + }, + toNodeOutgoingHttpHeaders: function() { + return toNodeOutgoingHttpHeaders; + }, + validateURL: function() { + return validateURL; + } +}); +const _constants = require("../../lib/constants"); +function fromNodeOutgoingHttpHeaders(nodeHeaders) { + const headers = new Headers(); + for (let [key, value] of Object.entries(nodeHeaders)){ + const values = Array.isArray(value) ? value : [ + value + ]; + for (let v of values){ + if (typeof v === 'undefined') continue; + if (typeof v === 'number') { + v = v.toString(); + } + headers.append(key, v); + } + } + return headers; +} +function splitCookiesString(cookiesString) { + var cookiesStrings = []; + var pos = 0; + var start; + var ch; + var lastComma; + var nextStart; + var cookiesSeparatorFound; + function skipWhitespace() { + while(pos < cookiesString.length && /\s/.test(cookiesString.charAt(pos))){ + pos += 1; + } + return pos < cookiesString.length; + } + function notSpecialChar() { + ch = cookiesString.charAt(pos); + return ch !== '=' && ch !== ';' && ch !== ','; + } + while(pos < cookiesString.length){ + start = pos; + cookiesSeparatorFound = false; + while(skipWhitespace()){ + ch = cookiesString.charAt(pos); + if (ch === ',') { + // ',' is a cookie separator if we have later first '=', not ';' or ',' + lastComma = pos; + pos += 1; + skipWhitespace(); + nextStart = pos; + while(pos < cookiesString.length && notSpecialChar()){ + pos += 1; + } + // currently special character + if (pos < cookiesString.length && cookiesString.charAt(pos) === '=') { + // we found cookies separator + cookiesSeparatorFound = true; + // pos is inside the next cookie, so back up and return it. + pos = nextStart; + cookiesStrings.push(cookiesString.substring(start, lastComma)); + start = pos; + } else { + // in param ',' or param separator ';', + // we continue from that comma + pos = lastComma + 1; + } + } else { + pos += 1; + } + } + if (!cookiesSeparatorFound || pos >= cookiesString.length) { + cookiesStrings.push(cookiesString.substring(start, cookiesString.length)); + } + } + return cookiesStrings; +} +function toNodeOutgoingHttpHeaders(headers) { + const nodeHeaders = {}; + const cookies = []; + if (headers) { + for (const [key, value] of headers.entries()){ + if (key.toLowerCase() === 'set-cookie') { + // We may have gotten a comma joined string of cookies, or multiple + // set-cookie headers. We need to merge them into one header array + // to represent all the cookies. + cookies.push(...splitCookiesString(value)); + nodeHeaders[key] = cookies.length === 1 ? cookies[0] : cookies; + } else { + nodeHeaders[key] = value; + } + } + } + return nodeHeaders; +} +function validateURL(url) { + try { + return String(new URL(String(url))); + } catch (error) { + throw Object.defineProperty(new Error(`URL is malformed "${String(url)}". Please use only absolute URLs - https://nextjs.org/docs/messages/middleware-relative-urls`, { + cause: error + }), "__NEXT_ERROR_CODE", { + value: "E61", + enumerable: false, + configurable: true + }); + } +} +function normalizeNextQueryParam(key) { + const prefixes = [ + _constants.NEXT_QUERY_PARAM_PREFIX, + _constants.NEXT_INTERCEPTION_MARKER_PREFIX + ]; + for (const prefix of prefixes){ + if (key !== prefix && key.startsWith(prefix)) { + return key.substring(prefix.length); + } + } + return null; +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/server/web/web-on-close.js b/cli/app/node_modules/next/dist/server/web/web-on-close.js new file mode 100644 index 00000000000..0d9581dd4fe --- /dev/null +++ b/cli/app/node_modules/next/dist/server/web/web-on-close.js @@ -0,0 +1,87 @@ +/** Monitor when the consumer finishes reading the response body. +that's as close as we can get to `res.on('close')` using web APIs. +*/ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + CloseController: null, + trackBodyConsumed: null, + trackStreamConsumed: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + CloseController: function() { + return CloseController; + }, + trackBodyConsumed: function() { + return trackBodyConsumed; + }, + trackStreamConsumed: function() { + return trackStreamConsumed; + } +}); +function trackBodyConsumed(body, onEnd) { + if (typeof body === 'string') { + const generator = async function* generate() { + const encoder = new TextEncoder(); + yield encoder.encode(body); + onEnd(); + }; + // @ts-expect-error BodyInit typings doesn't seem to include AsyncIterables even though it's supported in practice + return generator(); + } else { + return trackStreamConsumed(body, onEnd); + } +} +function trackStreamConsumed(stream, onEnd) { + // NOTE: This function must handle `stream` being aborted or cancelled, + // so it can't just be this: + // + // return stream.pipeThrough(new TransformStream({ flush() { onEnd() } })) + // + // because that doesn't handle cancellations. + // (and cancellation handling via `Transformer.cancel` is only available in node >20) + const dest = new TransformStream(); + const runOnEnd = ()=>onEnd(); + stream.pipeTo(dest.writable).then(runOnEnd, runOnEnd); + return dest.readable; +} +class CloseController { + onClose(callback) { + if (this.isClosed) { + throw Object.defineProperty(new Error('Cannot subscribe to a closed CloseController'), "__NEXT_ERROR_CODE", { + value: "E365", + enumerable: false, + configurable: true + }); + } + this.target.addEventListener('close', callback); + this.listeners++; + } + dispatchClose() { + if (this.isClosed) { + throw Object.defineProperty(new Error('Cannot close a CloseController multiple times'), "__NEXT_ERROR_CODE", { + value: "E229", + enumerable: false, + configurable: true + }); + } + if (this.listeners > 0) { + this.target.dispatchEvent(new Event('close')); + } + this.isClosed = true; + } + constructor(){ + this.target = new EventTarget(); + this.listeners = 0; + this.isClosed = false; + } +} + +//# sourceMappingURL=web-on-close.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/action-revalidation-kind.js b/cli/app/node_modules/next/dist/shared/lib/action-revalidation-kind.js new file mode 100644 index 00000000000..c6b5715bffe --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/action-revalidation-kind.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ActionDidNotRevalidate: null, + ActionDidRevalidateDynamicOnly: null, + ActionDidRevalidateStaticAndDynamic: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ActionDidNotRevalidate: function() { + return ActionDidNotRevalidate; + }, + ActionDidRevalidateDynamicOnly: function() { + return ActionDidRevalidateDynamicOnly; + }, + ActionDidRevalidateStaticAndDynamic: function() { + return ActionDidRevalidateStaticAndDynamic; + } +}); +const ActionDidNotRevalidate = 0; +const ActionDidRevalidateStaticAndDynamic = 1; +const ActionDidRevalidateDynamicOnly = 2; + +//# sourceMappingURL=action-revalidation-kind.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js new file mode 100644 index 00000000000..b9fa390e862 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js @@ -0,0 +1,50 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + AppRouterContext: null, + GlobalLayoutRouterContext: null, + LayoutRouterContext: null, + MissingSlotContext: null, + TemplateContext: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + AppRouterContext: function() { + return AppRouterContext; + }, + GlobalLayoutRouterContext: function() { + return GlobalLayoutRouterContext; + }, + LayoutRouterContext: function() { + return LayoutRouterContext; + }, + MissingSlotContext: function() { + return MissingSlotContext; + }, + TemplateContext: function() { + return TemplateContext; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const AppRouterContext = _react.default.createContext(null); +const LayoutRouterContext = _react.default.createContext(null); +const GlobalLayoutRouterContext = _react.default.createContext(null); +const TemplateContext = _react.default.createContext(null); +if (process.env.NODE_ENV !== 'production') { + AppRouterContext.displayName = 'AppRouterContext'; + LayoutRouterContext.displayName = 'LayoutRouterContext'; + GlobalLayoutRouterContext.displayName = 'GlobalLayoutRouterContext'; + TemplateContext.displayName = 'TemplateContext'; +} +const MissingSlotContext = _react.default.createContext(new Set()); + +//# sourceMappingURL=app-router-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/app-router-types.js b/cli/app/node_modules/next/dist/shared/lib/app-router-types.js new file mode 100644 index 00000000000..ad949252f32 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/app-router-types.js @@ -0,0 +1,46 @@ +/** + * App Router types - Client-safe types for the Next.js App Router + * + * This file contains type definitions that can be safely imported + * by both client-side and server-side code without circular dependencies. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "PrefetchHint", { + enumerable: true, + get: function() { + return PrefetchHint; + } +}); +var PrefetchHint = /*#__PURE__*/ function(PrefetchHint) { + // This segment has a runtime prefetch enabled (via unstable_instant with + // prefetch: 'runtime'). Per-segment only, does not propagate to ancestors. + PrefetchHint[PrefetchHint["HasRuntimePrefetch"] = 1] = "HasRuntimePrefetch"; + // This segment or one of its descendants has an instant config defined + // (any truthy unstable_instant, regardless of prefetch mode). Propagates + // upward so the root segment reflects the entire subtree. + PrefetchHint[PrefetchHint["SubtreeHasInstant"] = 2] = "SubtreeHasInstant"; + // This segment itself has a loading.tsx boundary. + PrefetchHint[PrefetchHint["SegmentHasLoadingBoundary"] = 4] = "SegmentHasLoadingBoundary"; + // A descendant segment (but not this one) has a loading.tsx boundary. + // Propagates upward so the root reflects the entire subtree. + PrefetchHint[PrefetchHint["SubtreeHasLoadingBoundary"] = 8] = "SubtreeHasLoadingBoundary"; + // This segment is the root layout of the application. + PrefetchHint[PrefetchHint["IsRootLayout"] = 16] = "IsRootLayout"; + // This segment's response includes its parent's data inlined into it. + // Set at build time by the segment size measurement pass. + PrefetchHint[PrefetchHint["ParentInlinedIntoSelf"] = 32] = "ParentInlinedIntoSelf"; + // This segment's data is inlined into one of its children — don't fetch + // it separately. Set at build time by the segment size measurement pass. + PrefetchHint[PrefetchHint["InlinedIntoChild"] = 64] = "InlinedIntoChild"; + // On a __PAGE__: this page's response includes the head (metadata/viewport) + // at the end of its SegmentPrefetch[] array. + PrefetchHint[PrefetchHint["HeadInlinedIntoSelf"] = 128] = "HeadInlinedIntoSelf"; + // On the root hint node: the head was NOT inlined into any page — fetch + // it separately. Absence of this bit means the head is bundled into a page. + PrefetchHint[PrefetchHint["HeadOutlined"] = 256] = "HeadOutlined"; + return PrefetchHint; +}({}); + +//# sourceMappingURL=app-router-types.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/bloom-filter.js b/cli/app/node_modules/next/dist/shared/lib/bloom-filter.js new file mode 100644 index 00000000000..d0241253111 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/bloom-filter.js @@ -0,0 +1,85 @@ +// minimal implementation MurmurHash2 hash function +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "BloomFilter", { + enumerable: true, + get: function() { + return BloomFilter; + } +}); +function murmurhash2(str) { + let h = 0; + for(let i = 0; i < str.length; i++){ + const c = str.charCodeAt(i); + h = Math.imul(h ^ c, 0x5bd1e995); + h ^= h >>> 13; + h = Math.imul(h, 0x5bd1e995); + } + return h >>> 0; +} +// default to 0.01% error rate as the filter compresses very well +const DEFAULT_ERROR_RATE = 0.0001; +class BloomFilter { + constructor(numItems, errorRate = DEFAULT_ERROR_RATE){ + this.numItems = numItems; + this.errorRate = errorRate; + this.numBits = Math.ceil(-(numItems * Math.log(errorRate)) / (Math.log(2) * Math.log(2))); + this.numHashes = Math.ceil(this.numBits / numItems * Math.log(2)); + this.bitArray = new Array(this.numBits).fill(0); + } + static from(items, errorRate = DEFAULT_ERROR_RATE) { + const filter = new BloomFilter(items.length, errorRate); + for (const item of items){ + filter.add(item); + } + return filter; + } + export() { + const data = { + numItems: this.numItems, + errorRate: this.errorRate, + numBits: this.numBits, + numHashes: this.numHashes, + bitArray: this.bitArray + }; + if (process.env.NEXT_RUNTIME === 'nodejs') { + if (this.errorRate < DEFAULT_ERROR_RATE) { + const filterData = JSON.stringify(data); + const gzipSize = require('next/dist/compiled/gzip-size').sync(filterData); + if (gzipSize > 1024) { + console.warn(`Creating filter with error rate less than 0.1% (0.001) can increase the size dramatically proceed with caution. Received error rate ${this.errorRate} resulted in size ${filterData.length} bytes, ${gzipSize} bytes (gzip)`); + } + } + } + return data; + } + import(data) { + this.numItems = data.numItems; + this.errorRate = data.errorRate; + this.numBits = data.numBits; + this.numHashes = data.numHashes; + this.bitArray = data.bitArray; + } + add(item) { + const hashValues = this.getHashValues(item); + hashValues.forEach((hash)=>{ + this.bitArray[hash] = 1; + }); + } + contains(item) { + const hashValues = this.getHashValues(item); + return hashValues.every((hash)=>this.bitArray[hash]); + } + getHashValues(item) { + const hashValues = []; + for(let i = 1; i <= this.numHashes; i++){ + const hash = murmurhash2(`${item}${i}`) % this.numBits; + hashValues.push(hash); + } + return hashValues; + } +} + +//# sourceMappingURL=bloom-filter.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/constants.js b/cli/app/node_modules/next/dist/shared/lib/constants.js new file mode 100644 index 00000000000..b7e6c233359 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/constants.js @@ -0,0 +1,448 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + APP_CLIENT_INTERNALS: null, + APP_PATHS_MANIFEST: null, + APP_PATH_ROUTES_MANIFEST: null, + AdapterOutputType: null, + BARREL_OPTIMIZATION_PREFIX: null, + BLOCKED_PAGES: null, + BUILD_ID_FILE: null, + BUILD_MANIFEST: null, + CLIENT_PUBLIC_FILES_PATH: null, + CLIENT_REFERENCE_MANIFEST: null, + CLIENT_STATIC_FILES_PATH: null, + CLIENT_STATIC_FILES_RUNTIME_MAIN: null, + CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: null, + CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: null, + CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: null, + CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: null, + CLIENT_STATIC_FILES_RUNTIME_WEBPACK: null, + COMPILER_INDEXES: null, + COMPILER_NAMES: null, + CONFIG_FILES: null, + DEFAULT_RUNTIME_WEBPACK: null, + DEFAULT_SANS_SERIF_FONT: null, + DEFAULT_SERIF_FONT: null, + DEV_CLIENT_MIDDLEWARE_MANIFEST: null, + DEV_CLIENT_PAGES_MANIFEST: null, + DYNAMIC_CSS_MANIFEST: null, + EDGE_RUNTIME_WEBPACK: null, + EDGE_UNSUPPORTED_NODE_APIS: null, + EXPORT_DETAIL: null, + EXPORT_MARKER: null, + FUNCTIONS_CONFIG_MANIFEST: null, + IMAGES_MANIFEST: null, + INTERCEPTION_ROUTE_REWRITE_MANIFEST: null, + MIDDLEWARE_BUILD_MANIFEST: null, + MIDDLEWARE_MANIFEST: null, + MIDDLEWARE_REACT_LOADABLE_MANIFEST: null, + MODERN_BROWSERSLIST_TARGET: null, + NEXT_BUILTIN_DOCUMENT: null, + NEXT_FONT_MANIFEST: null, + PAGES_MANIFEST: null, + PHASE_ANALYZE: null, + PHASE_DEVELOPMENT_SERVER: null, + PHASE_EXPORT: null, + PHASE_INFO: null, + PHASE_PRODUCTION_BUILD: null, + PHASE_PRODUCTION_SERVER: null, + PHASE_TEST: null, + PREFETCH_HINTS: null, + PRERENDER_MANIFEST: null, + REACT_LOADABLE_MANIFEST: null, + ROUTES_MANIFEST: null, + RSC_MODULE_TYPES: null, + SERVER_DIRECTORY: null, + SERVER_FILES_MANIFEST: null, + SERVER_PROPS_ID: null, + SERVER_REFERENCE_MANIFEST: null, + STATIC_PROPS_ID: null, + STATIC_STATUS_PAGES: null, + STRING_LITERAL_DROP_BUNDLE: null, + SUBRESOURCE_INTEGRITY_MANIFEST: null, + SYSTEM_ENTRYPOINTS: null, + TRACE_OUTPUT_VERSION: null, + TURBOPACK_CLIENT_BUILD_MANIFEST: null, + TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: null, + TURBO_TRACE_DEFAULT_MEMORY_LIMIT: null, + UNDERSCORE_GLOBAL_ERROR_ROUTE: null, + UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY: null, + UNDERSCORE_NOT_FOUND_ROUTE: null, + UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + APP_CLIENT_INTERNALS: function() { + return APP_CLIENT_INTERNALS; + }, + APP_PATHS_MANIFEST: function() { + return APP_PATHS_MANIFEST; + }, + APP_PATH_ROUTES_MANIFEST: function() { + return APP_PATH_ROUTES_MANIFEST; + }, + AdapterOutputType: function() { + return AdapterOutputType; + }, + BARREL_OPTIMIZATION_PREFIX: function() { + return BARREL_OPTIMIZATION_PREFIX; + }, + BLOCKED_PAGES: function() { + return BLOCKED_PAGES; + }, + BUILD_ID_FILE: function() { + return BUILD_ID_FILE; + }, + BUILD_MANIFEST: function() { + return BUILD_MANIFEST; + }, + CLIENT_PUBLIC_FILES_PATH: function() { + return CLIENT_PUBLIC_FILES_PATH; + }, + CLIENT_REFERENCE_MANIFEST: function() { + return CLIENT_REFERENCE_MANIFEST; + }, + CLIENT_STATIC_FILES_PATH: function() { + return CLIENT_STATIC_FILES_PATH; + }, + CLIENT_STATIC_FILES_RUNTIME_MAIN: function() { + return CLIENT_STATIC_FILES_RUNTIME_MAIN; + }, + CLIENT_STATIC_FILES_RUNTIME_MAIN_APP: function() { + return CLIENT_STATIC_FILES_RUNTIME_MAIN_APP; + }, + CLIENT_STATIC_FILES_RUNTIME_POLYFILLS: function() { + return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS; + }, + CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL: function() { + return CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL; + }, + CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH: function() { + return CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH; + }, + CLIENT_STATIC_FILES_RUNTIME_WEBPACK: function() { + return CLIENT_STATIC_FILES_RUNTIME_WEBPACK; + }, + COMPILER_INDEXES: function() { + return COMPILER_INDEXES; + }, + COMPILER_NAMES: function() { + return COMPILER_NAMES; + }, + CONFIG_FILES: function() { + return CONFIG_FILES; + }, + DEFAULT_RUNTIME_WEBPACK: function() { + return DEFAULT_RUNTIME_WEBPACK; + }, + DEFAULT_SANS_SERIF_FONT: function() { + return DEFAULT_SANS_SERIF_FONT; + }, + DEFAULT_SERIF_FONT: function() { + return DEFAULT_SERIF_FONT; + }, + DEV_CLIENT_MIDDLEWARE_MANIFEST: function() { + return DEV_CLIENT_MIDDLEWARE_MANIFEST; + }, + DEV_CLIENT_PAGES_MANIFEST: function() { + return DEV_CLIENT_PAGES_MANIFEST; + }, + DYNAMIC_CSS_MANIFEST: function() { + return DYNAMIC_CSS_MANIFEST; + }, + EDGE_RUNTIME_WEBPACK: function() { + return EDGE_RUNTIME_WEBPACK; + }, + EDGE_UNSUPPORTED_NODE_APIS: function() { + return EDGE_UNSUPPORTED_NODE_APIS; + }, + EXPORT_DETAIL: function() { + return EXPORT_DETAIL; + }, + EXPORT_MARKER: function() { + return EXPORT_MARKER; + }, + FUNCTIONS_CONFIG_MANIFEST: function() { + return FUNCTIONS_CONFIG_MANIFEST; + }, + IMAGES_MANIFEST: function() { + return IMAGES_MANIFEST; + }, + INTERCEPTION_ROUTE_REWRITE_MANIFEST: function() { + return INTERCEPTION_ROUTE_REWRITE_MANIFEST; + }, + MIDDLEWARE_BUILD_MANIFEST: function() { + return MIDDLEWARE_BUILD_MANIFEST; + }, + MIDDLEWARE_MANIFEST: function() { + return MIDDLEWARE_MANIFEST; + }, + MIDDLEWARE_REACT_LOADABLE_MANIFEST: function() { + return MIDDLEWARE_REACT_LOADABLE_MANIFEST; + }, + MODERN_BROWSERSLIST_TARGET: function() { + return _modernbrowserslisttarget.default; + }, + NEXT_BUILTIN_DOCUMENT: function() { + return NEXT_BUILTIN_DOCUMENT; + }, + NEXT_FONT_MANIFEST: function() { + return NEXT_FONT_MANIFEST; + }, + PAGES_MANIFEST: function() { + return PAGES_MANIFEST; + }, + PHASE_ANALYZE: function() { + return PHASE_ANALYZE; + }, + PHASE_DEVELOPMENT_SERVER: function() { + return PHASE_DEVELOPMENT_SERVER; + }, + PHASE_EXPORT: function() { + return PHASE_EXPORT; + }, + PHASE_INFO: function() { + return PHASE_INFO; + }, + PHASE_PRODUCTION_BUILD: function() { + return PHASE_PRODUCTION_BUILD; + }, + PHASE_PRODUCTION_SERVER: function() { + return PHASE_PRODUCTION_SERVER; + }, + PHASE_TEST: function() { + return PHASE_TEST; + }, + PREFETCH_HINTS: function() { + return PREFETCH_HINTS; + }, + PRERENDER_MANIFEST: function() { + return PRERENDER_MANIFEST; + }, + REACT_LOADABLE_MANIFEST: function() { + return REACT_LOADABLE_MANIFEST; + }, + ROUTES_MANIFEST: function() { + return ROUTES_MANIFEST; + }, + RSC_MODULE_TYPES: function() { + return RSC_MODULE_TYPES; + }, + SERVER_DIRECTORY: function() { + return SERVER_DIRECTORY; + }, + SERVER_FILES_MANIFEST: function() { + return SERVER_FILES_MANIFEST; + }, + SERVER_PROPS_ID: function() { + return SERVER_PROPS_ID; + }, + SERVER_REFERENCE_MANIFEST: function() { + return SERVER_REFERENCE_MANIFEST; + }, + STATIC_PROPS_ID: function() { + return STATIC_PROPS_ID; + }, + STATIC_STATUS_PAGES: function() { + return STATIC_STATUS_PAGES; + }, + STRING_LITERAL_DROP_BUNDLE: function() { + return STRING_LITERAL_DROP_BUNDLE; + }, + SUBRESOURCE_INTEGRITY_MANIFEST: function() { + return SUBRESOURCE_INTEGRITY_MANIFEST; + }, + SYSTEM_ENTRYPOINTS: function() { + return SYSTEM_ENTRYPOINTS; + }, + TRACE_OUTPUT_VERSION: function() { + return TRACE_OUTPUT_VERSION; + }, + TURBOPACK_CLIENT_BUILD_MANIFEST: function() { + return TURBOPACK_CLIENT_BUILD_MANIFEST; + }, + TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST: function() { + return TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST; + }, + TURBO_TRACE_DEFAULT_MEMORY_LIMIT: function() { + return TURBO_TRACE_DEFAULT_MEMORY_LIMIT; + }, + UNDERSCORE_GLOBAL_ERROR_ROUTE: function() { + return _entryconstants.UNDERSCORE_GLOBAL_ERROR_ROUTE; + }, + UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY: function() { + return _entryconstants.UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY; + }, + UNDERSCORE_NOT_FOUND_ROUTE: function() { + return _entryconstants.UNDERSCORE_NOT_FOUND_ROUTE; + }, + UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() { + return _entryconstants.UNDERSCORE_NOT_FOUND_ROUTE_ENTRY; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _modernbrowserslisttarget = /*#__PURE__*/ _interop_require_default._(require("./modern-browserslist-target")); +const _entryconstants = require("./entry-constants"); +const COMPILER_NAMES = { + client: 'client', + server: 'server', + edgeServer: 'edge-server' +}; +const COMPILER_INDEXES = { + [COMPILER_NAMES.client]: 0, + [COMPILER_NAMES.server]: 1, + [COMPILER_NAMES.edgeServer]: 2 +}; +var AdapterOutputType = /*#__PURE__*/ function(AdapterOutputType) { + /** + * `PAGES` represents all the React pages that are under `pages/`. + */ AdapterOutputType["PAGES"] = "PAGES"; + /** + * `PAGES_API` represents all the API routes under `pages/api/`. + */ AdapterOutputType["PAGES_API"] = "PAGES_API"; + /** + * `APP_PAGE` represents all the React pages that are under `app/` with the + * filename of `page.{j,t}s{,x}`. + */ AdapterOutputType["APP_PAGE"] = "APP_PAGE"; + /** + * `APP_ROUTE` represents all the API routes and metadata routes that are under `app/` with the + * filename of `route.{j,t}s{,x}`. + */ AdapterOutputType["APP_ROUTE"] = "APP_ROUTE"; + /** + * `PRERENDER` represents an ISR enabled route that might + * have a seeded cache entry or fallback generated during build + */ AdapterOutputType["PRERENDER"] = "PRERENDER"; + /** + * `STATIC_FILE` represents a static file (ie /_next/static) + */ AdapterOutputType["STATIC_FILE"] = "STATIC_FILE"; + /** + * `MIDDLEWARE` represents the middleware output if present + */ AdapterOutputType["MIDDLEWARE"] = "MIDDLEWARE"; + return AdapterOutputType; +}({}); +const PHASE_EXPORT = 'phase-export'; +const PHASE_ANALYZE = 'phase-analyze'; +const PHASE_PRODUCTION_BUILD = 'phase-production-build'; +const PHASE_PRODUCTION_SERVER = 'phase-production-server'; +const PHASE_DEVELOPMENT_SERVER = 'phase-development-server'; +const PHASE_TEST = 'phase-test'; +const PHASE_INFO = 'phase-info'; +const PAGES_MANIFEST = 'pages-manifest.json'; +const APP_PATHS_MANIFEST = 'app-paths-manifest.json'; +const APP_PATH_ROUTES_MANIFEST = 'app-path-routes-manifest.json'; +const BUILD_MANIFEST = 'build-manifest.json'; +const FUNCTIONS_CONFIG_MANIFEST = 'functions-config-manifest.json'; +const SUBRESOURCE_INTEGRITY_MANIFEST = 'subresource-integrity-manifest'; +const NEXT_FONT_MANIFEST = 'next-font-manifest'; +const EXPORT_MARKER = 'export-marker.json'; +const EXPORT_DETAIL = 'export-detail.json'; +const PRERENDER_MANIFEST = 'prerender-manifest.json'; +const PREFETCH_HINTS = 'prefetch-hints.json'; +const ROUTES_MANIFEST = 'routes-manifest.json'; +const IMAGES_MANIFEST = 'images-manifest.json'; +const SERVER_FILES_MANIFEST = 'required-server-files'; +const DEV_CLIENT_PAGES_MANIFEST = '_devPagesManifest.json'; +const MIDDLEWARE_MANIFEST = 'middleware-manifest.json'; +const TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST = '_clientMiddlewareManifest.js'; +const TURBOPACK_CLIENT_BUILD_MANIFEST = 'client-build-manifest.json'; +const DEV_CLIENT_MIDDLEWARE_MANIFEST = '_devMiddlewareManifest.json'; +const REACT_LOADABLE_MANIFEST = 'react-loadable-manifest.json'; +const SERVER_DIRECTORY = 'server'; +const CONFIG_FILES = [ + 'next.config.js', + 'next.config.mjs', + 'next.config.ts', + // process.features can be undefined on Edge runtime + // TODO: Remove `as any` once we bump @types/node to v22.10.0+ + ...process?.features?.typescript ? [ + 'next.config.mts' + ] : [] +]; +const BUILD_ID_FILE = 'BUILD_ID'; +const BLOCKED_PAGES = [ + '/_document', + '/_app', + '/_error' +]; +const CLIENT_PUBLIC_FILES_PATH = 'public'; +const CLIENT_STATIC_FILES_PATH = 'static'; +const STRING_LITERAL_DROP_BUNDLE = '__NEXT_DROP_CLIENT_FILE__'; +const NEXT_BUILTIN_DOCUMENT = '__NEXT_BUILTIN_DOCUMENT__'; +const BARREL_OPTIMIZATION_PREFIX = '__barrel_optimize__'; +const CLIENT_REFERENCE_MANIFEST = 'client-reference-manifest'; +const SERVER_REFERENCE_MANIFEST = 'server-reference-manifest'; +const MIDDLEWARE_BUILD_MANIFEST = 'middleware-build-manifest'; +const MIDDLEWARE_REACT_LOADABLE_MANIFEST = 'middleware-react-loadable-manifest'; +const INTERCEPTION_ROUTE_REWRITE_MANIFEST = 'interception-route-rewrite-manifest'; +const DYNAMIC_CSS_MANIFEST = 'dynamic-css-manifest'; +const CLIENT_STATIC_FILES_RUNTIME_MAIN = `main`; +const CLIENT_STATIC_FILES_RUNTIME_MAIN_APP = `${CLIENT_STATIC_FILES_RUNTIME_MAIN}-app`; +const APP_CLIENT_INTERNALS = 'app-pages-internals'; +const CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH = `react-refresh`; +const CLIENT_STATIC_FILES_RUNTIME_WEBPACK = `webpack`; +const CLIENT_STATIC_FILES_RUNTIME_POLYFILLS = 'polyfills'; +const CLIENT_STATIC_FILES_RUNTIME_POLYFILLS_SYMBOL = Symbol(CLIENT_STATIC_FILES_RUNTIME_POLYFILLS); +const DEFAULT_RUNTIME_WEBPACK = 'webpack-runtime'; +const EDGE_RUNTIME_WEBPACK = 'edge-runtime-webpack'; +const STATIC_PROPS_ID = '__N_SSG'; +const SERVER_PROPS_ID = '__N_SSP'; +const DEFAULT_SERIF_FONT = { + name: 'Times New Roman', + xAvgCharWidth: 821, + azAvgWidth: 854.3953488372093, + unitsPerEm: 2048 +}; +const DEFAULT_SANS_SERIF_FONT = { + name: 'Arial', + xAvgCharWidth: 904, + azAvgWidth: 934.5116279069767, + unitsPerEm: 2048 +}; +const STATIC_STATUS_PAGES = [ + '/500' +]; +const TRACE_OUTPUT_VERSION = 1; +const TURBO_TRACE_DEFAULT_MEMORY_LIMIT = 6000; +const RSC_MODULE_TYPES = { + client: 'client', + server: 'server' +}; +const EDGE_UNSUPPORTED_NODE_APIS = [ + 'clearImmediate', + 'setImmediate', + 'BroadcastChannel', + 'ByteLengthQueuingStrategy', + 'CompressionStream', + 'CountQueuingStrategy', + 'DecompressionStream', + 'DomException', + 'MessageChannel', + 'MessageEvent', + 'MessagePort', + 'ReadableByteStreamController', + 'ReadableStreamBYOBRequest', + 'ReadableStreamDefaultController', + 'TransformStreamDefaultController', + 'WritableStreamDefaultController' +]; +const SYSTEM_ENTRYPOINTS = new Set([ + CLIENT_STATIC_FILES_RUNTIME_MAIN, + CLIENT_STATIC_FILES_RUNTIME_REACT_REFRESH, + CLIENT_STATIC_FILES_RUNTIME_MAIN_APP +]); + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/deep-freeze.js b/cli/app/node_modules/next/dist/shared/lib/deep-freeze.js new file mode 100644 index 00000000000..27022afc62a --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/deep-freeze.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "deepFreeze", { + enumerable: true, + get: function() { + return deepFreeze; + } +}); +function deepFreeze(obj) { + // If the object is already frozen, there's no need to freeze it again. + if (Object.isFrozen(obj)) return obj; + // An array is an object, but we also want to freeze each element in the array + // as well. + if (Array.isArray(obj)) { + for (const item of obj){ + if (!item || typeof item !== 'object') continue; + deepFreeze(item); + } + return Object.freeze(obj); + } + for (const value of Object.values(obj)){ + if (!value || typeof value !== 'object') continue; + deepFreeze(value); + } + return Object.freeze(obj); +} + +//# sourceMappingURL=deep-freeze.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/deployment-id.js b/cli/app/node_modules/next/dist/shared/lib/deployment-id.js new file mode 100644 index 00000000000..e04e86c987c --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/deployment-id.js @@ -0,0 +1,63 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getAssetToken: null, + getAssetTokenQuery: null, + getDeploymentId: null, + getDeploymentIdQuery: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getAssetToken: function() { + return getAssetToken; + }, + getAssetTokenQuery: function() { + return getAssetTokenQuery; + }, + getDeploymentId: function() { + return getDeploymentId; + }, + getDeploymentIdQuery: function() { + return getDeploymentIdQuery; + } +}); +let deploymentId; +if (typeof window !== 'undefined') { + deploymentId = document.documentElement.dataset.dplId; + // Immediately remove the attribute to prevent hydration errors (the dplId was inserted into the + // HTML only), React isn't aware of it at all. + delete document.documentElement.dataset.dplId; +} else { + // Client side: replaced with globalThis.NEXT_DEPLOYMENT_ID + // Server side: left as is or replaced with a string or replaced with false + deploymentId = process.env.NEXT_DEPLOYMENT_ID || undefined; +} +function getDeploymentId() { + return deploymentId; +} +function getDeploymentIdQuery(ampersand = false) { + let id = getDeploymentId(); + if (id) { + return `${ampersand ? '&' : '?'}dpl=${id}`; + } + return ''; +} +function getAssetToken() { + return process.env.NEXT_IMMUTABLE_ASSET_TOKEN || process.env.NEXT_DEPLOYMENT_ID; +} +function getAssetTokenQuery(ampersand = false) { + let id = getAssetToken(); + if (id) { + return `${ampersand ? '&' : '?'}dpl=${id}`; + } + return ''; +} + +//# sourceMappingURL=deployment-id.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/dset.js b/cli/app/node_modules/next/dist/shared/lib/dset.js new file mode 100644 index 00000000000..dc0e7816ac6 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/dset.js @@ -0,0 +1,34 @@ +/* +The MIT License (MIT) + +Copyright (c) Luke Edwards (lukeed.com) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ // This file is based on https://github.com/lukeed/dset/blob/v3.1.3/src/index.js +// It's been edited for the needs of this script +// See the LICENSE at the top of the file +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "dset", { + enumerable: true, + get: function() { + return dset; + } +}); +function dset(obj, keys, val) { + keys.split && (keys = keys.split('.')); + var i = 0, l = keys.length, t = obj, x, k; + while(i < l){ + k = keys[i++]; + if (k === '__proto__' || k === 'constructor' || k === 'prototype') break; + t = t[k] = i === l ? val : typeof (x = t[k]) === typeof keys ? x : keys[i] * 0 !== 0 || !!~('' + keys[i]).indexOf('.') ? {} : []; + } +} + +//# sourceMappingURL=dset.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/encode-uri-path.js b/cli/app/node_modules/next/dist/shared/lib/encode-uri-path.js new file mode 100644 index 00000000000..d42d28203a0 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/encode-uri-path.js @@ -0,0 +1,15 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "encodeURIPath", { + enumerable: true, + get: function() { + return encodeURIPath; + } +}); +function encodeURIPath(file) { + return file.split('/').map((p)=>encodeURIComponent(p)).join('/'); +} + +//# sourceMappingURL=encode-uri-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/entry-constants.js b/cli/app/node_modules/next/dist/shared/lib/entry-constants.js new file mode 100644 index 00000000000..b6d461a8b53 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/entry-constants.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + UNDERSCORE_GLOBAL_ERROR_ROUTE: null, + UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY: null, + UNDERSCORE_NOT_FOUND_ROUTE: null, + UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + UNDERSCORE_GLOBAL_ERROR_ROUTE: function() { + return UNDERSCORE_GLOBAL_ERROR_ROUTE; + }, + UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY: function() { + return UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY; + }, + UNDERSCORE_NOT_FOUND_ROUTE: function() { + return UNDERSCORE_NOT_FOUND_ROUTE; + }, + UNDERSCORE_NOT_FOUND_ROUTE_ENTRY: function() { + return UNDERSCORE_NOT_FOUND_ROUTE_ENTRY; + } +}); +const UNDERSCORE_NOT_FOUND_ROUTE = '/_not-found'; +const UNDERSCORE_NOT_FOUND_ROUTE_ENTRY = `${UNDERSCORE_NOT_FOUND_ROUTE}/page`; +const UNDERSCORE_GLOBAL_ERROR_ROUTE = '/_global-error'; +const UNDERSCORE_GLOBAL_ERROR_ROUTE_ENTRY = `${UNDERSCORE_GLOBAL_ERROR_ROUTE}/page`; + +//# sourceMappingURL=entry-constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/error-source.js b/cli/app/node_modules/next/dist/shared/lib/error-source.js new file mode 100644 index 00000000000..4aa059c1133 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/error-source.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + decorateServerError: null, + getErrorSource: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + decorateServerError: function() { + return decorateServerError; + }, + getErrorSource: function() { + return getErrorSource; + } +}); +const symbolError = Symbol.for('NextjsError'); +function getErrorSource(error) { + return error[symbolError] || null; +} +function decorateServerError(error, type) { + Object.defineProperty(error, symbolError, { + writable: false, + enumerable: false, + configurable: false, + value: type + }); +} + +//# sourceMappingURL=error-source.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js b/cli/app/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js new file mode 100644 index 00000000000..3898f27f203 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/errors/canary-only-config-error.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + CanaryOnlyConfigError: null, + isStableBuild: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + CanaryOnlyConfigError: function() { + return CanaryOnlyConfigError; + }, + isStableBuild: function() { + return isStableBuild; + } +}); +function isStableBuild() { + return !"16.2.1"?.includes('canary') && !process.env.__NEXT_TEST_MODE && !process.env.NEXT_PRIVATE_LOCAL_DEV; +} +class CanaryOnlyConfigError extends Error { + constructor(arg){ + if (typeof arg === 'object' && 'feature' in arg) { + super(`The experimental feature "${arg.feature}" can only be enabled when using the latest canary version of Next.js.`); + } else { + super(arg); + } + // This error is meant to interrupt the server start/build process + // but the stack trace isn't meaningful, as it points to internal code. + this.stack = undefined; + } +} + +//# sourceMappingURL=canary-only-config-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/errors/code-frame.js b/cli/app/node_modules/next/dist/shared/lib/errors/code-frame.js new file mode 100644 index 00000000000..fd6d0e2f787 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/errors/code-frame.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "codeFrameColumns", { + enumerable: true, + get: function() { + return codeFrameColumns; + } +}); +const _swc = require("../../../build/swc"); +function codeFrameColumns(file, location, options = {}) { + // Default to the terminal width + if (options.maxWidth === undefined) { + options.maxWidth = process.stdout.columns; + } + return (0, _swc.getBindingsSync)().codeFrameColumns(file, location, options); +} + +//# sourceMappingURL=code-frame.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/errors/constants.js b/cli/app/node_modules/next/dist/shared/lib/errors/constants.js new file mode 100644 index 00000000000..e13ef7f50ec --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/errors/constants.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "MISSING_ROOT_TAGS_ERROR", { + enumerable: true, + get: function() { + return MISSING_ROOT_TAGS_ERROR; + } +}); +const MISSING_ROOT_TAGS_ERROR = 'NEXT_MISSING_ROOT_TAGS'; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=constants.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js b/cli/app/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js new file mode 100644 index 00000000000..eaa22acfbcd --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/errors/empty-generate-static-params-error.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "throwEmptyGenerateStaticParamsError", { + enumerable: true, + get: function() { + return throwEmptyGenerateStaticParamsError; + } +}); +function throwEmptyGenerateStaticParamsError() { + const error = Object.defineProperty(new Error('When using Cache Components, all `generateStaticParams` functions must return at least one result. ' + 'This is to ensure that we can perform build-time validation that there is no other dynamic accesses that would cause a runtime error.\n\n' + 'Learn more: https://nextjs.org/docs/messages/empty-generate-static-params'), "__NEXT_ERROR_CODE", { + value: "E898", + enumerable: false, + configurable: true + }); + error.name = 'EmptyGenerateStaticParamsError'; + // This error is meant to interrupt the server start/build process + // but the stack trace isn't meaningful, as it points to internal code. + error.stack = undefined; + throw error; +} + +//# sourceMappingURL=empty-generate-static-params-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js b/cli/app/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js new file mode 100644 index 00000000000..a4a7f1227bd --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/errors/hard-deprecated-config-error.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "HardDeprecatedConfigError", { + enumerable: true, + get: function() { + return HardDeprecatedConfigError; + } +}); +class HardDeprecatedConfigError extends Error { + constructor(message){ + super(message); + // This error is meant to interrupt the server start/build process + // but the stack trace isn't meaningful, as it points to internal code. + this.stack = undefined; + } +} + +//# sourceMappingURL=hard-deprecated-config-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/escape-regexp.js b/cli/app/node_modules/next/dist/shared/lib/escape-regexp.js new file mode 100644 index 00000000000..e208e2a982a --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/escape-regexp.js @@ -0,0 +1,22 @@ +// regexp is based on https://github.com/sindresorhus/escape-string-regexp +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "escapeStringRegexp", { + enumerable: true, + get: function() { + return escapeStringRegexp; + } +}); +const reHasRegExp = /[|\\{}()[\]^$+*?.-]/; +const reReplaceRegExp = /[|\\{}()[\]^$+*?.-]/g; +function escapeStringRegexp(str) { + // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23 + if (reHasRegExp.test(str)) { + return str.replace(reReplaceRegExp, '\\$&'); + } + return str; +} + +//# sourceMappingURL=escape-regexp.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/format-webpack-messages.js b/cli/app/node_modules/next/dist/shared/lib/format-webpack-messages.js new file mode 100644 index 00000000000..c2a447cd772 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/format-webpack-messages.js @@ -0,0 +1,184 @@ +/** +MIT License + +Copyright (c) 2015-present, Facebook, Inc. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. +*/ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return formatWebpackMessages; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _stripansi = /*#__PURE__*/ _interop_require_default._(require("next/dist/compiled/strip-ansi")); +// This file is based on https://github.com/facebook/create-react-app/blob/7b1a32be6ec9f99a6c9a3c66813f3ac09c4736b9/packages/react-dev-utils/formatWebpackMessages.js +// It's been edited to remove chalk and CRA-specific logic +const friendlySyntaxErrorLabel = 'Syntax error:'; +const WEBPACK_BREAKING_CHANGE_POLYFILLS = '\n\nBREAKING CHANGE: webpack < 5 used to include polyfills for node.js core modules by default.'; +function isLikelyASyntaxError(message) { + return (0, _stripansi.default)(message).includes(friendlySyntaxErrorLabel); +} +let hadMissingSassError = false; +// Cleans up webpack error messages. +function formatMessage(message, verbose, importTraceNote) { + // TODO: Replace this once webpack 5 is stable + if (typeof message === 'object' && message.message) { + const filteredModuleTrace = message.moduleTrace && message.moduleTrace.filter((trace)=>!/next-(middleware|client-pages|route|edge-function)-loader\.js/.test(trace.originName)); + let body = message.message; + const breakingChangeIndex = body.indexOf(WEBPACK_BREAKING_CHANGE_POLYFILLS); + if (breakingChangeIndex >= 0) { + body = body.slice(0, breakingChangeIndex); + } + // TODO: Rspack currently doesn't populate moduleName correctly in some cases, + // fall back to moduleIdentifier as a workaround + if (process.env.NEXT_RSPACK && !message.moduleName && !message.file && message.moduleIdentifier) { + const parts = message.moduleIdentifier.split('!'); + message.moduleName = parts[parts.length - 1]; + } + message = (message.moduleName ? (0, _stripansi.default)(message.moduleName) + '\n' : '') + (message.file ? (0, _stripansi.default)(message.file) + '\n' : '') + body + (message.details && verbose ? '\n' + message.details : '') + (filteredModuleTrace && filteredModuleTrace.length ? (importTraceNote || '\n\nImport trace for requested module:') + filteredModuleTrace.map((trace)=>`\n${trace.moduleName}`).join('') : '') + (message.stack && verbose ? '\n' + message.stack : ''); + } + let lines = message.split('\n'); + // Extract loader paths from Webpack-added headers and move them to end. + // Original format: "Module build failed (from ./loaders/foo-loader.js):" + // The header line is removed and the path is appended at the end as: + // " (from ./loaders/foo-loader.js)" + // https://github.com/webpack/webpack/blob/master/lib/ModuleError.js + const loaderPaths = []; + lines = lines.filter((line)=>{ + const match = /Module [A-z ]+\(from (.+)\):?\s*$/.exec(line); + if (match) { + loaderPaths.push(match[1]); + return false; + } + return true; + }); + // Transform parsing error into syntax error + // TODO: move this to our ESLint formatter? + lines = lines.map((line)=>{ + const parsingError = /Line (\d+):(?:(\d+):)?\s*Parsing error: (.+)$/.exec(line); + if (!parsingError) { + return line; + } + const [, errorLine, errorColumn, errorMessage] = parsingError; + return `${friendlySyntaxErrorLabel} ${errorMessage} (${errorLine}:${errorColumn})`; + }); + message = lines.join('\n'); + // Smoosh syntax errors (commonly found in CSS) + message = message.replace(/SyntaxError\s+\((\d+):(\d+)\)\s*(.+?)\n/g, `${friendlySyntaxErrorLabel} $3 ($1:$2)\n`); + // Clean up export errors + message = message.replace(/^.*export '(.+?)' was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$2'.`); + message = message.replace(/^.*export 'default' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$2' does not contain a default export (imported as '$1').`); + message = message.replace(/^.*export '(.+?)' \(imported as '(.+?)'\) was not found in '(.+?)'.*$/gm, `Attempted import error: '$1' is not exported from '$3' (imported as '$2').`); + lines = message.split('\n'); + // Remove leading newline + if (lines.length > 2 && lines[1].trim() === '') { + lines.splice(1, 1); + } + // Cleans up verbose "module not found" messages for files and packages. + if (lines[1] && lines[1].startsWith('Module not found: ')) { + lines = [ + lines[0], + lines[1].replace('Error: ', '').replace('Module not found: Cannot find file:', 'Cannot find file:'), + ...lines.slice(2) + ]; + } + // Add helpful message for users trying to use Sass for the first time + if (lines[1] && lines[1].match(/Cannot find module.+sass/)) { + // ./file.module.scss (<>) => ./file.module.scss + const firstLine = lines[0].split('!'); + lines[0] = firstLine[firstLine.length - 1]; + lines[1] = "To use Next.js' built-in Sass support, you first need to install `sass`.\n"; + lines[1] += 'Run `npm i sass` or `yarn add sass` inside your workspace.\n'; + lines[1] += '\nLearn more: https://nextjs.org/docs/messages/install-sass'; + // dispose of unhelpful stack trace + lines = lines.slice(0, 2); + hadMissingSassError = true; + } else if (hadMissingSassError && message.match(/(sass-loader|resolve-url-loader: CSS error)/)) { + // dispose of unhelpful stack trace following missing sass module + lines = []; + } + if (!verbose) { + message = lines.join('\n'); + // Internal stacks are generally useless so we strip them... with the + // exception of stacks containing `webpack:` because they're normally + // from user code generated by Webpack. For more information see + // https://github.com/facebook/create-react-app/pull/1050 + message = message.replace(/^\s*at\s((?!webpack:).)*:\d+:\d+[\s)]*(\n|$)/gm, '') // at ... ...:x:y + ; + message = message.replace(/^\s*at\s(\n|$)/gm, '') // at + ; + message = message.replace(/File was processed with these loaders:\n(.+[\\/](next[\\/]dist[\\/].+|@next[\\/]react-refresh-utils[\\/]loader)\.js\n)*You may need an additional loader to handle the result of these loaders.\n/g, ''); + lines = message.split('\n'); + } + // Append loader paths at the end (before any remaining stack trace) + if (loaderPaths.length > 0) { + for (const loaderPath of loaderPaths){ + // Don't show internal Next.js loader paths — they're noise for users + if (!/[/\\]next[/\\]dist[/\\]/.test(loaderPath)) { + lines.push(` (from ${loaderPath})`); + } + } + } + // Remove duplicated newlines + lines = lines.filter((line, index, arr)=>index === 0 || line.trim() !== '' || line.trim() !== arr[index - 1].trim()); + // Reassemble the message + message = lines.join('\n'); + return message.trim(); +} +function formatWebpackMessages(json, verbose) { + const formattedErrors = json.errors.map((message)=>{ + const isUnknownNextFontError = message.message.includes('An error occurred in `next/font`.'); + return formatMessage(message, isUnknownNextFontError || verbose); + }); + const formattedWarnings = json.warnings.map((message)=>{ + return formatMessage(message, verbose); + }); + // Reorder errors to put the most relevant ones first. + let reactServerComponentsError = -1; + for(let i = 0; i < formattedErrors.length; i++){ + const error = formattedErrors[i]; + if (error.includes('ReactServerComponentsError')) { + reactServerComponentsError = i; + break; + } + } + // Move the reactServerComponentsError to the top if it exists + if (reactServerComponentsError !== -1) { + const error = formattedErrors.splice(reactServerComponentsError, 1); + formattedErrors.unshift(error[0]); + } + const result = { + ...json, + errors: formattedErrors, + warnings: formattedWarnings + }; + if (!verbose && result.errors.some(isLikelyASyntaxError)) { + // If there are any syntax errors, show just them. + result.errors = result.errors.filter(isLikelyASyntaxError); + result.warnings = []; + } + return result; +} + +//# sourceMappingURL=format-webpack-messages.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/get-hostname.js b/cli/app/node_modules/next/dist/shared/lib/get-hostname.js new file mode 100644 index 00000000000..9511b828eb8 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/get-hostname.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getHostname", { + enumerable: true, + get: function() { + return getHostname; + } +}); +function getHostname(parsed, headers) { + // Get the hostname from the headers if it exists, otherwise use the parsed + // hostname. + let hostname; + if (headers?.host && !Array.isArray(headers.host)) { + hostname = headers.host.toString().split(':', 1)[0]; + } else if (parsed.hostname) { + hostname = parsed.hostname; + } else return; + return hostname.toLowerCase(); +} + +//# sourceMappingURL=get-hostname.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/get-rspack.js b/cli/app/node_modules/next/dist/shared/lib/get-rspack.js new file mode 100644 index 00000000000..9941dba754d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/get-rspack.js @@ -0,0 +1,35 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRspackCore", { + enumerable: true, + get: function() { + return getRspackCore; + } +}); +const _log = require("../../build/output/log"); +function getRspackCore() { + warnRspack(); + try { + // eslint-disable-next-line @next/internal/typechecked-require + return require('next-rspack/rspack-core'); + } catch (e) { + if (e instanceof Error && 'code' in e && e.code === 'MODULE_NOT_FOUND') { + throw Object.defineProperty(new Error('@rspack/core is not available. Please make sure `next-rspack` is correctly installed.'), "__NEXT_ERROR_CODE", { + value: "E647", + enumerable: false, + configurable: true + }); + } + throw e; + } +} +function warnRspack() { + if (process.env.__NEXT_TEST_MODE) { + return; + } + (0, _log.warnOnce)(`\`next-rspack\` is currently experimental. It's not an official Next.js plugin, and is supported by the Rspack team in partnership with Next.js. Help improve Next.js and Rspack by providing feedback at https://github.com/vercel/next.js/discussions/77800`); +} + +//# sourceMappingURL=get-rspack.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/get-webpack-bundler.js b/cli/app/node_modules/next/dist/shared/lib/get-webpack-bundler.js new file mode 100644 index 00000000000..00a6bb28e0b --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/get-webpack-bundler.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, /** + * Depending on if Rspack is active or not, returns the appropriate set of + * webpack-compatible api. + * + * @returns webpack bundler + */ "default", { + enumerable: true, + get: function() { + return getWebpackBundler; + } +}); +const _webpack = require("next/dist/compiled/webpack/webpack"); +const _getrspack = require("./get-rspack"); +function getWebpackBundler() { + return process.env.NEXT_RSPACK ? (0, _getrspack.getRspackCore)() : _webpack.webpack; +} + +//# sourceMappingURL=get-webpack-bundler.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/hash.js b/cli/app/node_modules/next/dist/shared/lib/hash.js new file mode 100644 index 00000000000..7d806fbda71 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/hash.js @@ -0,0 +1,42 @@ +// http://www.cse.yorku.ca/~oz/hash.html +// More specifically, 32-bit hash via djbxor +// (ref: https://gist.github.com/eplawless/52813b1d8ad9af510d85?permalink_comment_id=3367765#gistcomment-3367765) +// This is due to number type differences between rust for turbopack to js number types, +// where rust does not have easy way to repreesnt js's 53-bit float number type for the matching +// overflow behavior. This is more `correct` in terms of having canonical hash across different runtime / implementation +// as can gaurantee determinstic output from 32bit hash. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + djb2Hash: null, + hexHash: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + djb2Hash: function() { + return djb2Hash; + }, + hexHash: function() { + return hexHash; + } +}); +function djb2Hash(str) { + let hash = 5381; + for(let i = 0; i < str.length; i++){ + const char = str.charCodeAt(i); + hash = (hash << 5) + hash + char & 0xffffffff; + } + return hash >>> 0; +} +function hexHash(str) { + return djb2Hash(str).toString(36).slice(0, 5); +} + +//# sourceMappingURL=hash.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js new file mode 100644 index 00000000000..ba50b232d72 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "HeadManagerContext", { + enumerable: true, + get: function() { + return HeadManagerContext; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const HeadManagerContext = _react.default.createContext({}); +if (process.env.NODE_ENV !== 'production') { + HeadManagerContext.displayName = 'HeadManagerContext'; +} + +//# sourceMappingURL=head-manager-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/head.js b/cli/app/node_modules/next/dist/shared/lib/head.js new file mode 100644 index 00000000000..040badd6712 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/head.js @@ -0,0 +1,163 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + default: null, + defaultHead: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + default: function() { + return _default; + }, + defaultHead: function() { + return defaultHead; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _jsxruntime = require("react/jsx-runtime"); +const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); +const _sideeffect = /*#__PURE__*/ _interop_require_default._(require("./side-effect")); +const _headmanagercontextsharedruntime = require("./head-manager-context.shared-runtime"); +const _warnonce = require("./utils/warn-once"); +function defaultHead() { + const head = [ + /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { + charSet: "utf-8" + }, "charset"), + /*#__PURE__*/ (0, _jsxruntime.jsx)("meta", { + name: "viewport", + content: "width=device-width" + }, "viewport") + ]; + return head; +} +function onlyReactElement(list, child) { + // React children can be "string" or "number" in this case we ignore them for backwards compat + if (typeof child === 'string' || typeof child === 'number') { + return list; + } + // Adds support for React.Fragment + if (child.type === _react.default.Fragment) { + return list.concat(// @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[] + _react.default.Children.toArray(child.props.children).reduce(// @ts-expect-error @types/react does not remove fragments but this could also return ReactPortal[] + (fragmentList, fragmentChild)=>{ + if (typeof fragmentChild === 'string' || typeof fragmentChild === 'number') { + return fragmentList; + } + return fragmentList.concat(fragmentChild); + }, [])); + } + return list.concat(child); +} +const METATYPES = [ + 'name', + 'httpEquiv', + 'charSet', + 'itemProp' +]; +/* + returns a function for filtering head child elements + which shouldn't be duplicated, like + Also adds support for deduplicated `key` properties +*/ function unique() { + const keys = new Set(); + const tags = new Set(); + const metaTypes = new Set(); + const metaCategories = {}; + return (h)=>{ + let isUnique = true; + let hasKey = false; + if (h.key && typeof h.key !== 'number' && h.key.indexOf('$') > 0) { + hasKey = true; + const key = h.key.slice(h.key.indexOf('$') + 1); + if (keys.has(key)) { + isUnique = false; + } else { + keys.add(key); + } + } + // eslint-disable-next-line default-case + switch(h.type){ + case 'title': + case 'base': + if (tags.has(h.type)) { + isUnique = false; + } else { + tags.add(h.type); + } + break; + case 'meta': + for(let i = 0, len = METATYPES.length; i < len; i++){ + const metatype = METATYPES[i]; + if (!h.props.hasOwnProperty(metatype)) continue; + if (metatype === 'charSet') { + if (metaTypes.has(metatype)) { + isUnique = false; + } else { + metaTypes.add(metatype); + } + } else { + const category = h.props[metatype]; + const categories = metaCategories[metatype] || new Set(); + if ((metatype !== 'name' || !hasKey) && categories.has(category)) { + isUnique = false; + } else { + categories.add(category); + metaCategories[metatype] = categories; + } + } + } + break; + } + return isUnique; + }; +} +/** + * + * @param headChildrenElements List of children of <Head> + */ function reduceComponents(headChildrenElements) { + return headChildrenElements.reduce(onlyReactElement, []).reverse().concat(defaultHead().reverse()).filter(unique()).reverse().map((c, i)=>{ + const key = c.key || i; + if (process.env.NODE_ENV === 'development') { + // omit JSON-LD structured data snippets from the warning + if (c.type === 'script' && c.props['type'] !== 'application/ld+json') { + const srcMessage = c.props['src'] ? `<script> tag with src="${c.props['src']}"` : `inline <script>`; + (0, _warnonce.warnOnce)(`Do not add <script> tags using next/head (see ${srcMessage}). Use next/script instead. \nSee more info here: https://nextjs.org/docs/messages/no-script-tags-in-head-component`); + } else if (c.type === 'link' && c.props['rel'] === 'stylesheet') { + (0, _warnonce.warnOnce)(`Do not add stylesheets using next/head (see <link rel="stylesheet"> tag with href="${c.props['href']}"). Use Document instead. \nSee more info here: https://nextjs.org/docs/messages/no-stylesheets-in-head-component`); + } + } + return /*#__PURE__*/ _react.default.cloneElement(c, { + key + }); + }); +} +/** + * This component injects elements to `<head>` of your page. + * To avoid duplicated `tags` in `<head>` you can use the `key` property, which will make sure every tag is only rendered once. + */ function Head({ children }) { + const headManager = (0, _react.useContext)(_headmanagercontextsharedruntime.HeadManagerContext); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(_sideeffect.default, { + reduceComponentsToState: reduceComponents, + headManager: headManager, + children: children + }); +} +const _default = Head; + +if ((typeof exports.default === 'function' || (typeof exports.default === 'object' && exports.default !== null)) && typeof exports.default.__esModule === 'undefined') { + Object.defineProperty(exports.default, '__esModule', { value: true }); + Object.assign(exports.default, exports); + module.exports = exports.default; +} + +//# sourceMappingURL=head.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js new file mode 100644 index 00000000000..0f4990725fa --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js @@ -0,0 +1,60 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + NavigationPromisesContext: null, + PathParamsContext: null, + PathnameContext: null, + ReadonlyURLSearchParams: null, + SearchParamsContext: null, + createDevToolsInstrumentedPromise: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + NavigationPromisesContext: function() { + return NavigationPromisesContext; + }, + PathParamsContext: function() { + return PathParamsContext; + }, + PathnameContext: function() { + return PathnameContext; + }, + ReadonlyURLSearchParams: function() { + return _readonlyurlsearchparams.ReadonlyURLSearchParams; + }, + SearchParamsContext: function() { + return SearchParamsContext; + }, + createDevToolsInstrumentedPromise: function() { + return createDevToolsInstrumentedPromise; + } +}); +const _react = require("react"); +const _readonlyurlsearchparams = require("../../client/components/readonly-url-search-params"); +const SearchParamsContext = (0, _react.createContext)(null); +const PathnameContext = (0, _react.createContext)(null); +const PathParamsContext = (0, _react.createContext)(null); +const NavigationPromisesContext = (0, _react.createContext)(null); +function createDevToolsInstrumentedPromise(displayName, value) { + const promise = Promise.resolve(value); + promise.status = 'fulfilled'; + promise.value = value; + promise.displayName = `${displayName} (SSR)`; + return promise; +} +if (process.env.NODE_ENV !== 'production') { + SearchParamsContext.displayName = 'SearchParamsContext'; + PathnameContext.displayName = 'PathnameContext'; + PathParamsContext.displayName = 'PathParamsContext'; + NavigationPromisesContext.displayName = 'NavigationPromisesContext'; +} + +//# sourceMappingURL=hooks-client-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/html-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/html-context.shared-runtime.js new file mode 100644 index 00000000000..bd3b41a041d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/html-context.shared-runtime.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HtmlContext: null, + useHtmlContext: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HtmlContext: function() { + return HtmlContext; + }, + useHtmlContext: function() { + return useHtmlContext; + } +}); +const _react = require("react"); +const HtmlContext = (0, _react.createContext)(undefined); +if (process.env.NODE_ENV !== 'production') { + HtmlContext.displayName = 'HtmlContext'; +} +function useHtmlContext() { + const context = (0, _react.useContext)(HtmlContext); + if (!context) { + throw Object.defineProperty(new Error(`<Html> should not be imported outside of pages/_document.\n` + 'Read more: https://nextjs.org/docs/messages/no-document-import-in-page'), "__NEXT_ERROR_CODE", { + value: "E67", + enumerable: false, + configurable: true + }); + } + return context; +} + +//# sourceMappingURL=html-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js b/cli/app/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js new file mode 100644 index 00000000000..67071ed782d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/i18n/detect-domain-locale.js @@ -0,0 +1,25 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "detectDomainLocale", { + enumerable: true, + get: function() { + return detectDomainLocale; + } +}); +function detectDomainLocale(domainItems, hostname, detectedLocale) { + if (!domainItems) return; + if (detectedLocale) { + detectedLocale = detectedLocale.toLowerCase(); + } + for (const item of domainItems){ + // remove port if present + const domainHostname = item.domain?.split(':', 1)[0].toLowerCase(); + if (hostname === domainHostname || detectedLocale === item.defaultLocale.toLowerCase() || item.locales?.some((locale)=>locale.toLowerCase() === detectedLocale)) { + return item; + } + } +} + +//# sourceMappingURL=detect-domain-locale.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js b/cli/app/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js new file mode 100644 index 00000000000..8ddd1f424e7 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/i18n/get-locale-redirect.js @@ -0,0 +1,59 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getLocaleRedirect", { + enumerable: true, + get: function() { + return getLocaleRedirect; + } +}); +const _acceptheader = require("../../../server/accept-header"); +const _denormalizepagepath = require("../page-path/denormalize-page-path"); +const _detectdomainlocale = require("./detect-domain-locale"); +const _formaturl = require("../router/utils/format-url"); +const _getcookieparser = require("../../../server/api-utils/get-cookie-parser"); +function getLocaleFromCookie(i18n, headers = {}) { + const nextLocale = (0, _getcookieparser.getCookieParser)(headers || {})()?.NEXT_LOCALE?.toLowerCase(); + return nextLocale ? i18n.locales.find((locale)=>nextLocale === locale.toLowerCase()) : undefined; +} +function detectLocale({ i18n, headers, domainLocale, preferredLocale, pathLocale }) { + return pathLocale || domainLocale?.defaultLocale || getLocaleFromCookie(i18n, headers) || preferredLocale || i18n.defaultLocale; +} +function getAcceptPreferredLocale(i18n, headers) { + if (headers?.['accept-language'] && !Array.isArray(headers['accept-language'])) { + try { + return (0, _acceptheader.acceptLanguage)(headers['accept-language'], i18n.locales); + } catch (err) {} + } +} +function getLocaleRedirect({ defaultLocale, domainLocale, pathLocale, headers, nextConfig, urlParsed }) { + if (nextConfig.i18n && nextConfig.i18n.localeDetection !== false && (0, _denormalizepagepath.denormalizePagePath)(urlParsed.pathname) === '/') { + const preferredLocale = getAcceptPreferredLocale(nextConfig.i18n, headers); + const detectedLocale = detectLocale({ + i18n: nextConfig.i18n, + preferredLocale, + headers, + pathLocale, + domainLocale + }); + const preferredDomain = (0, _detectdomainlocale.detectDomainLocale)(nextConfig.i18n.domains, undefined, preferredLocale); + if (domainLocale && preferredDomain) { + const isPDomain = preferredDomain.domain === domainLocale.domain; + const isPLocale = preferredDomain.defaultLocale === preferredLocale; + if (!isPDomain || !isPLocale) { + const scheme = `http${preferredDomain.http ? '' : 's'}`; + const rlocale = isPLocale ? '' : preferredLocale; + return `${scheme}://${preferredDomain.domain}/${rlocale}`; + } + } + if (detectedLocale.toLowerCase() !== defaultLocale.toLowerCase()) { + return (0, _formaturl.formatUrl)({ + ...urlParsed, + pathname: `${nextConfig.basePath || ''}/${detectedLocale}${nextConfig.trailingSlash ? '/' : ''}` + }); + } + } +} + +//# sourceMappingURL=get-locale-redirect.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js b/cli/app/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js new file mode 100644 index 00000000000..2c120c56dcc --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js @@ -0,0 +1,54 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizeLocalePath", { + enumerable: true, + get: function() { + return normalizeLocalePath; + } +}); +/** + * A cache of lowercased locales for each list of locales. This is stored as a + * WeakMap so if the locales are garbage collected, the cache entry will be + * removed as well. + */ const cache = new WeakMap(); +function normalizeLocalePath(pathname, locales) { + // If locales is undefined, return the pathname as is. + if (!locales) return { + pathname + }; + // Get the cached lowercased locales or create a new cache entry. + let lowercasedLocales = cache.get(locales); + if (!lowercasedLocales) { + lowercasedLocales = locales.map((locale)=>locale.toLowerCase()); + cache.set(locales, lowercasedLocales); + } + let detectedLocale; + // The first segment will be empty, because it has a leading `/`. If + // there is no further segment, there is no locale (or it's the default). + const segments = pathname.split('/', 2); + // If there's no second segment (ie, the pathname is just `/`), there's no + // locale. + if (!segments[1]) return { + pathname + }; + // The second segment will contain the locale part if any. + const segment = segments[1].toLowerCase(); + // See if the segment matches one of the locales. If it doesn't, there is + // no locale (or it's the default). + const index = lowercasedLocales.indexOf(segment); + if (index < 0) return { + pathname + }; + // Return the case-sensitive locale. + detectedLocale = locales[index]; + // Remove the `/${locale}` part of the pathname. + pathname = pathname.slice(detectedLocale.length + 1) || '/'; + return { + pathname, + detectedLocale + }; +} + +//# sourceMappingURL=normalize-locale-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/image-blur-svg.js b/cli/app/node_modules/next/dist/shared/lib/image-blur-svg.js new file mode 100644 index 00000000000..12638833f73 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/image-blur-svg.js @@ -0,0 +1,22 @@ +/** + * A shared function, used on both client and server, to generate a SVG blur placeholder. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getImageBlurSvg", { + enumerable: true, + get: function() { + return getImageBlurSvg; + } +}); +function getImageBlurSvg({ widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit }) { + const std = 20; + const svgWidth = blurWidth ? blurWidth * 40 : widthInt; + const svgHeight = blurHeight ? blurHeight * 40 : heightInt; + const viewBox = svgWidth && svgHeight ? `viewBox='0 0 ${svgWidth} ${svgHeight}'` : ''; + const preserveAspectRatio = viewBox ? 'none' : objectFit === 'contain' ? 'xMidYMid' : objectFit === 'cover' ? 'xMidYMid slice' : 'none'; + return `%3Csvg xmlns='http://www.w3.org/2000/svg' ${viewBox}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='${std}'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${preserveAspectRatio}' style='filter: url(%23b);' href='${blurDataURL}'/%3E%3C/svg%3E`; +} + +//# sourceMappingURL=image-blur-svg.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js new file mode 100644 index 00000000000..649f904a513 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/image-config-context.shared-runtime.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ImageConfigContext", { + enumerable: true, + get: function() { + return ImageConfigContext; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const _imageconfig = require("./image-config"); +const ImageConfigContext = _react.default.createContext(_imageconfig.imageConfigDefault); +if (process.env.NODE_ENV !== 'production') { + ImageConfigContext.displayName = 'ImageConfigContext'; +} + +//# sourceMappingURL=image-config-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/image-config.js b/cli/app/node_modules/next/dist/shared/lib/image-config.js new file mode 100644 index 00000000000..534abb15395 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/image-config.js @@ -0,0 +1,77 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + VALID_LOADERS: null, + imageConfigDefault: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + VALID_LOADERS: function() { + return VALID_LOADERS; + }, + imageConfigDefault: function() { + return imageConfigDefault; + } +}); +const VALID_LOADERS = [ + 'default', + 'imgix', + 'cloudinary', + 'akamai', + 'custom' +]; +const imageConfigDefault = { + deviceSizes: [ + 640, + 750, + 828, + 1080, + 1200, + 1920, + 2048, + 3840 + ], + imageSizes: [ + 32, + 48, + 64, + 96, + 128, + 256, + 384 + ], + path: '/_next/image', + loader: 'default', + loaderFile: '', + /** + * @deprecated Use `remotePatterns` instead to protect your application from malicious users. + */ domains: [], + disableStaticImages: false, + minimumCacheTTL: 14400, + formats: [ + 'image/webp' + ], + maximumDiskCacheSize: undefined, + maximumRedirects: 3, + maximumResponseBody: 50000000, + dangerouslyAllowLocalIP: false, + dangerouslyAllowSVG: false, + contentSecurityPolicy: `script-src 'none'; frame-src 'none'; sandbox;`, + contentDispositionType: 'attachment', + localPatterns: undefined, + remotePatterns: [], + qualities: [ + 75 + ], + unoptimized: false, + customCacheHandler: false +}; + +//# sourceMappingURL=image-config.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/invariant-error.js b/cli/app/node_modules/next/dist/shared/lib/invariant-error.js new file mode 100644 index 00000000000..b4180b52f5c --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/invariant-error.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "InvariantError", { + enumerable: true, + get: function() { + return InvariantError; + } +}); +class InvariantError extends Error { + constructor(message, options){ + super(`Invariant: ${message.endsWith('.') ? message : message + '.'} This is a bug in Next.js.`, options); + this.name = 'InvariantError'; + } +} + +//# sourceMappingURL=invariant-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/is-internal.js b/cli/app/node_modules/next/dist/shared/lib/is-internal.js new file mode 100644 index 00000000000..8da46819336 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/is-internal.js @@ -0,0 +1,41 @@ +/** React that's compiled with `next`. Used by App Router. */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + default: null, + nextInternalsRe: null, + reactNodeModulesRe: null, + reactVendoredRe: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + default: function() { + return isInternal; + }, + nextInternalsRe: function() { + return nextInternalsRe; + }, + reactNodeModulesRe: function() { + return reactNodeModulesRe; + }, + reactVendoredRe: function() { + return reactVendoredRe; + } +}); +const reactVendoredRe = /[\\/]next[\\/]dist[\\/]compiled[\\/](react|react-dom|react-server-dom-(webpack|turbopack)|scheduler)[\\/]/; +const reactNodeModulesRe = /node_modules[\\/](react|react-dom|scheduler)[\\/]/; +const nextInternalsRe = /(node_modules[\\/]next[\\/]|[\\/].next[\\/]static[\\/]chunks[\\/]webpack\.js$|(edge-runtime-webpack|webpack-runtime)\.js$)/; +function isInternal(file) { + if (!file) return false; + // NOTE: native code has a version of the same logic in crates/next-napi-bindings/src/next_api/utils.rs + // keep them in sync. + return nextInternalsRe.test(file) || reactVendoredRe.test(file) || reactNodeModulesRe.test(file); +} + +//# sourceMappingURL=is-internal.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/is-plain-object.js b/cli/app/node_modules/next/dist/shared/lib/is-plain-object.js new file mode 100644 index 00000000000..3ea90e26fb4 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/is-plain-object.js @@ -0,0 +1,42 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getObjectClassLabel: null, + isPlainObject: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getObjectClassLabel: function() { + return getObjectClassLabel; + }, + isPlainObject: function() { + return isPlainObject; + } +}); +function getObjectClassLabel(value) { + return Object.prototype.toString.call(value); +} +function isPlainObject(value) { + if (getObjectClassLabel(value) !== '[object Object]') { + return false; + } + const prototype = Object.getPrototypeOf(value); + /** + * this used to be previously: + * + * `return prototype === null || prototype === Object.prototype` + * + * but Edge Runtime expose Object from vm, being that kind of type-checking wrongly fail. + * + * It was changed to the current implementation since it's resilient to serialization. + */ return prototype === null || prototype.hasOwnProperty('isPrototypeOf'); +} + +//# sourceMappingURL=is-plain-object.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/is-thenable.js b/cli/app/node_modules/next/dist/shared/lib/is-thenable.js new file mode 100644 index 00000000000..0273fda12cb --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/is-thenable.js @@ -0,0 +1,20 @@ +/** + * Check to see if a value is Thenable. + * + * @param promise the maybe-thenable value + * @returns true if the value is thenable + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isThenable", { + enumerable: true, + get: function() { + return isThenable; + } +}); +function isThenable(promise) { + return promise !== null && typeof promise === 'object' && 'then' in promise && typeof promise.then === 'function'; +} + +//# sourceMappingURL=is-thenable.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/isomorphic/path.js b/cli/app/node_modules/next/dist/shared/lib/isomorphic/path.js new file mode 100644 index 00000000000..c8576c72b51 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/isomorphic/path.js @@ -0,0 +1,14 @@ +/** + * This module is for next.js server internal usage of path module. + * It will use native path module for nodejs runtime. + * It will use path-browserify polyfill for edge runtime. + */ "use strict"; +let path; +if (process.env.NEXT_RUNTIME === 'edge') { + path = require('next/dist/compiled/path-browserify'); +} else { + path = require('path'); +} +module.exports = path; + +//# sourceMappingURL=path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js b/cli/app/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js new file mode 100644 index 00000000000..9a0cd676c43 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js @@ -0,0 +1,37 @@ +// This has to be a shared module which is shared between client component error boundary and dynamic component +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + BailoutToCSRError: null, + isBailoutToCSRError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + BailoutToCSRError: function() { + return BailoutToCSRError; + }, + isBailoutToCSRError: function() { + return isBailoutToCSRError; + } +}); +const BAILOUT_TO_CSR = 'BAILOUT_TO_CLIENT_SIDE_RENDERING'; +class BailoutToCSRError extends Error { + constructor(reason){ + super(`Bail out to client-side rendering: ${reason}`), this.reason = reason, this.digest = BAILOUT_TO_CSR; + } +} +function isBailoutToCSRError(err) { + if (typeof err !== 'object' || err === null || !('digest' in err)) { + return false; + } + return err.digest === BAILOUT_TO_CSR; +} + +//# sourceMappingURL=bailout-to-csr.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js new file mode 100644 index 00000000000..c469e205e15 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/loadable-context.shared-runtime.js @@ -0,0 +1,19 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "LoadableContext", { + enumerable: true, + get: function() { + return LoadableContext; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const LoadableContext = _react.default.createContext(null); +if (process.env.NODE_ENV !== 'production') { + LoadableContext.displayName = 'LoadableContext'; +} + +//# sourceMappingURL=loadable-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/loadable.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/loadable.shared-runtime.js new file mode 100644 index 00000000000..6dc1a1b44cc --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/loadable.shared-runtime.js @@ -0,0 +1,246 @@ +// TODO: Remove use of `any` type. +/** +@copyright (c) 2017-present James Kyle <me@thejameskyle.com> + MIT License + Permission is hereby granted, free of charge, to any person obtaining +a copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + The above copyright notice and this permission notice shall be +included in all copies or substantial portions of the Software. + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE +LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION +OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION +WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE +*/ // https://github.com/jamiebuilds/react-loadable/blob/v5.5.0/src/index.js +// Modified to be compatible with webpack 4 / Next.js +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const _loadablecontextsharedruntime = require("./loadable-context.shared-runtime"); +function resolve(obj) { + return obj && obj.default ? obj.default : obj; +} +const ALL_INITIALIZERS = []; +const READY_INITIALIZERS = []; +let initialized = false; +function load(loader) { + let promise = loader(); + let state = { + loading: true, + loaded: null, + error: null + }; + state.promise = promise.then((loaded)=>{ + state.loading = false; + state.loaded = loaded; + return loaded; + }).catch((err)=>{ + state.loading = false; + state.error = err; + throw err; + }); + return state; +} +function createLoadableComponent(loadFn, options) { + let opts = Object.assign({ + loader: null, + loading: null, + delay: 200, + timeout: null, + webpack: null, + modules: null + }, options); + /** @type LoadableSubscription */ let subscription = null; + function init() { + if (!subscription) { + const sub = new LoadableSubscription(loadFn, opts); + subscription = { + getCurrentValue: sub.getCurrentValue.bind(sub), + subscribe: sub.subscribe.bind(sub), + retry: sub.retry.bind(sub), + promise: sub.promise.bind(sub) + }; + } + return subscription.promise(); + } + // Server only + if (typeof window === 'undefined') { + ALL_INITIALIZERS.push(init); + } + // Client only + if (!initialized && typeof window !== 'undefined') { + // require.resolveWeak check is needed for environments that don't have it available like Jest + const moduleIds = opts.webpack && typeof require.resolveWeak === 'function' ? opts.webpack() : opts.modules; + if (moduleIds) { + READY_INITIALIZERS.push((ids)=>{ + for (const moduleId of moduleIds){ + if (ids.includes(moduleId)) { + return init(); + } + } + }); + } + } + function useLoadableModule() { + init(); + const context = _react.default.useContext(_loadablecontextsharedruntime.LoadableContext); + if (context && Array.isArray(opts.modules)) { + opts.modules.forEach((moduleName)=>{ + context(moduleName); + }); + } + } + function LoadableComponent(props, ref) { + useLoadableModule(); + const state = _react.default.useSyncExternalStore(subscription.subscribe, subscription.getCurrentValue, subscription.getCurrentValue); + _react.default.useImperativeHandle(ref, ()=>({ + retry: subscription.retry + }), []); + return _react.default.useMemo(()=>{ + if (state.loading || state.error) { + return /*#__PURE__*/ _react.default.createElement(opts.loading, { + isLoading: state.loading, + pastDelay: state.pastDelay, + timedOut: state.timedOut, + error: state.error, + retry: subscription.retry + }); + } else if (state.loaded) { + return /*#__PURE__*/ _react.default.createElement(resolve(state.loaded), props); + } else { + return null; + } + }, [ + props, + state + ]); + } + LoadableComponent.preload = ()=>init(); + LoadableComponent.displayName = 'LoadableComponent'; + return /*#__PURE__*/ _react.default.forwardRef(LoadableComponent); +} +class LoadableSubscription { + constructor(loadFn, opts){ + this._loadFn = loadFn; + this._opts = opts; + this._callbacks = new Set(); + this._delay = null; + this._timeout = null; + this.retry(); + } + promise() { + return this._res.promise; + } + retry() { + this._clearTimeouts(); + this._res = this._loadFn(this._opts.loader); + this._state = { + pastDelay: false, + timedOut: false + }; + const { _res: res, _opts: opts } = this; + if (res.loading) { + if (typeof opts.delay === 'number') { + if (opts.delay === 0) { + this._state.pastDelay = true; + } else { + this._delay = setTimeout(()=>{ + this._update({ + pastDelay: true + }); + }, opts.delay); + } + } + if (typeof opts.timeout === 'number') { + this._timeout = setTimeout(()=>{ + this._update({ + timedOut: true + }); + }, opts.timeout); + } + } + this._res.promise.then(()=>{ + this._update({}); + this._clearTimeouts(); + }).catch((_err)=>{ + this._update({}); + this._clearTimeouts(); + }); + this._update({}); + } + _update(partial) { + this._state = { + ...this._state, + error: this._res.error, + loaded: this._res.loaded, + loading: this._res.loading, + ...partial + }; + this._callbacks.forEach((callback)=>callback()); + } + _clearTimeouts() { + clearTimeout(this._delay); + clearTimeout(this._timeout); + } + getCurrentValue() { + return this._state; + } + subscribe(callback) { + this._callbacks.add(callback); + return ()=>{ + this._callbacks.delete(callback); + }; + } +} +function Loadable(opts) { + return createLoadableComponent(load, opts); +} +function flushInitializers(initializers, ids) { + let promises = []; + while(initializers.length){ + let init = initializers.pop(); + promises.push(init(ids)); + } + return Promise.all(promises).then(()=>{ + if (initializers.length) { + return flushInitializers(initializers, ids); + } + }); +} +Loadable.preloadAll = ()=>{ + return new Promise((resolveInitializers, reject)=>{ + flushInitializers(ALL_INITIALIZERS).then(resolveInitializers, reject); + }); +}; +Loadable.preloadReady = (ids = [])=>{ + return new Promise((resolvePreload)=>{ + const res = ()=>{ + initialized = true; + return resolvePreload(); + }; + // We always will resolve, errors should be handled within loading UIs. + flushInitializers(READY_INITIALIZERS, ids).then(res, res); + }); +}; +if (typeof window !== 'undefined') { + window.__NEXT_PRELOADREADY = Loadable.preloadReady; +} +const _default = Loadable; + +//# sourceMappingURL=loadable.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/magic-identifier.js b/cli/app/node_modules/next/dist/shared/lib/magic-identifier.js new file mode 100644 index 00000000000..6319da6ed98 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/magic-identifier.js @@ -0,0 +1,218 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + MAGIC_IDENTIFIER_REGEX: null, + decodeMagicIdentifier: null, + deobfuscateModuleId: null, + deobfuscateText: null, + deobfuscateTextParts: null, + removeFreeCallWrapper: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + MAGIC_IDENTIFIER_REGEX: function() { + return MAGIC_IDENTIFIER_REGEX; + }, + decodeMagicIdentifier: function() { + return decodeMagicIdentifier; + }, + deobfuscateModuleId: function() { + return deobfuscateModuleId; + }, + deobfuscateText: function() { + return deobfuscateText; + }, + deobfuscateTextParts: function() { + return deobfuscateTextParts; + }, + removeFreeCallWrapper: function() { + return removeFreeCallWrapper; + } +}); +function decodeHex(hexStr) { + if (hexStr.trim() === '') { + throw Object.defineProperty(new Error("can't decode empty hex"), "__NEXT_ERROR_CODE", { + value: "E19", + enumerable: false, + configurable: true + }); + } + const num = parseInt(hexStr, 16); + if (isNaN(num)) { + throw Object.defineProperty(new Error(`invalid hex: \`${hexStr}\``), "__NEXT_ERROR_CODE", { + value: "E293", + enumerable: false, + configurable: true + }); + } + return String.fromCodePoint(num); +} +const DECODE_REGEX = /^__TURBOPACK__([a-zA-Z0-9_$]+)__$/; +function decodeMagicIdentifier(identifier) { + const matches = identifier.match(DECODE_REGEX); + if (!matches) { + return identifier; + } + const inner = matches[1]; + let output = ''; + let mode = 0; + let buffer = ''; + for(let i = 0; i < inner.length; i++){ + const char = inner[i]; + if (mode === 0) { + if (char === '_') { + mode = 1; + } else if (char === '$') { + mode = 2; + } else { + output += char; + } + } else if (mode === 1) { + if (char === '_') { + output += ' '; + mode = 0; + } else if (char === '$') { + output += '_'; + mode = 2; + } else { + output += char; + mode = 0; + } + } else if (mode === 2) { + if (buffer.length === 2) { + output += decodeHex(buffer); + buffer = ''; + } + if (char === '_') { + if (buffer !== '') { + throw Object.defineProperty(new Error(`invalid hex: \`${buffer}\``), "__NEXT_ERROR_CODE", { + value: "E1022", + enumerable: false, + configurable: true + }); + } + mode = 3; + } else if (char === '$') { + if (buffer !== '') { + throw Object.defineProperty(new Error(`invalid hex: \`${buffer}\``), "__NEXT_ERROR_CODE", { + value: "E1022", + enumerable: false, + configurable: true + }); + } + mode = 0; + } else { + buffer += char; + } + } else if (mode === 3) { + if (char === '_') { + throw Object.defineProperty(new Error(`invalid hex: \`${buffer + char}\``), "__NEXT_ERROR_CODE", { + value: "E293", + enumerable: false, + configurable: true + }); + } else if (char === '$') { + output += decodeHex(buffer); + buffer = ''; + mode = 0; + } else { + buffer += char; + } + } + } + return output; +} +const MAGIC_IDENTIFIER_REGEX = /__TURBOPACK__[a-zA-Z0-9_$]+__/g; +function deobfuscateModuleId(moduleId) { + return moduleId// Replace [project] with . + .replace(/\[project\]/g, '.')// Remove content in square brackets (e.g. [app-rsc]) + .replace(/\s\[([^\]]*)\]/g, '')// Remove content in parentheses (e.g. (ecmascript)) + .replace(/\s\(([^)]*)\)/g, '')// Remove content in angle brackets (e.g. <locals>) + .replace(/\s<([^>]*)>/g, '')// Clean up any extra whitespace + .trim(); +} +function removeFreeCallWrapper(text) { + // Match (0, <ident>.<ident>) patterns anywhere in the text the beginning + // Overzealous: accept any non-whitespace member expression after the dot. + // TODO: Fix https://linear.app/vercel/issue/NEXT-4875 to allow using unicode property escapes + return text.replace(/\(0\s*,\s*(__TURBOPACK__[a-zA-Z0-9_$]+__\.[^\s)]+)\)/g, '$1'); +} +function deobfuscateTextParts(text) { + // First, remove free call wrappers + const withoutFreeCall = removeFreeCallWrapper(text); + const parts = []; + let lastIndex = 0; + // Create a new regex instance for global matching + const regex = new RegExp(MAGIC_IDENTIFIER_REGEX.source, 'g'); + for(let match = regex.exec(withoutFreeCall); match !== null; match = regex.exec(withoutFreeCall)){ + const matchStart = match.index; + const matchEnd = regex.lastIndex; + const ident = match[0]; + // Add raw text before this match (if any) + if (matchStart > lastIndex) { + const rawText = withoutFreeCall.substring(lastIndex, matchStart); + parts.push([ + 'raw', + rawText + ]); + } + // Process and add the deobfuscated part + try { + const decoded = decodeMagicIdentifier(ident); + // If it was a magic identifier, clean up the module ID + if (decoded !== ident) { + // Check if this is an "imported module" reference + const importedModuleMatch = decoded.match(/^imported module (.+)$/); + if (importedModuleMatch) { + // Clean the entire module path (which includes [app-rsc], etc.) + const modulePathWithMetadata = importedModuleMatch[1]; + const cleaned = deobfuscateModuleId(modulePathWithMetadata); + parts.push([ + 'deobfuscated', + `{imported module ${cleaned}}` + ]); + } else { + const cleaned = deobfuscateModuleId(decoded); + parts.push([ + 'deobfuscated', + `{${cleaned}}` + ]); + } + } else { + // Not actually a magic identifier, treat as raw + parts.push([ + 'raw', + ident + ]); + } + } catch (e) { + parts.push([ + 'deobfuscated', + `{${ident} (decoding failed: ${e})}` + ]); + } + lastIndex = matchEnd; + } + // Add any remaining raw text after the last match + if (lastIndex < withoutFreeCall.length) { + const rawText = withoutFreeCall.substring(lastIndex); + parts.push([ + 'raw', + rawText + ]); + } + return parts; +} +function deobfuscateText(text) { + const parts = deobfuscateTextParts(text); + return parts.map((part)=>part[1]).join(''); +} + +//# sourceMappingURL=magic-identifier.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/match-local-pattern.js b/cli/app/node_modules/next/dist/shared/lib/match-local-pattern.js new file mode 100644 index 00000000000..daab491510a --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/match-local-pattern.js @@ -0,0 +1,46 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + hasLocalMatch: null, + matchLocalPattern: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + hasLocalMatch: function() { + return hasLocalMatch; + }, + matchLocalPattern: function() { + return matchLocalPattern; + } +}); +const _picomatch = require("next/dist/compiled/picomatch"); +function matchLocalPattern(pattern, url) { + if (pattern.search !== undefined) { + if (pattern.search !== url.search) { + return false; + } + } + if (!(0, _picomatch.makeRe)(pattern.pathname ?? '**', { + dot: true + }).test(url.pathname)) { + return false; + } + return true; +} +function hasLocalMatch(localPatterns, urlPathAndQuery) { + if (!localPatterns) { + // if the user didn't define "localPatterns", we allow all local images + return true; + } + const url = new URL(urlPathAndQuery, 'http://n'); + return localPatterns.some((p)=>matchLocalPattern(p, url)); +} + +//# sourceMappingURL=match-local-pattern.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/match-remote-pattern.js b/cli/app/node_modules/next/dist/shared/lib/match-remote-pattern.js new file mode 100644 index 00000000000..e27224516d7 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/match-remote-pattern.js @@ -0,0 +1,63 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + hasRemoteMatch: null, + matchRemotePattern: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + hasRemoteMatch: function() { + return hasRemoteMatch; + }, + matchRemotePattern: function() { + return matchRemotePattern; + } +}); +const _picomatch = require("next/dist/compiled/picomatch"); +function matchRemotePattern(pattern, url) { + if (pattern.protocol !== undefined) { + if (pattern.protocol.replace(/:$/, '') !== url.protocol.replace(/:$/, '')) { + return false; + } + } + if (pattern.port !== undefined) { + if (pattern.port !== url.port) { + return false; + } + } + if (pattern.hostname === undefined) { + throw Object.defineProperty(new Error(`Pattern should define hostname but found\n${JSON.stringify(pattern)}`), "__NEXT_ERROR_CODE", { + value: "E410", + enumerable: false, + configurable: true + }); + } else { + if (!(0, _picomatch.makeRe)(pattern.hostname).test(url.hostname)) { + return false; + } + } + if (pattern.search !== undefined) { + if (pattern.search !== url.search) { + return false; + } + } + // Should be the same as writeImagesManifest() + if (!(0, _picomatch.makeRe)(pattern.pathname ?? '**', { + dot: true + }).test(url.pathname)) { + return false; + } + return true; +} +function hasRemoteMatch(domains, remotePatterns, url) { + return domains.some((domain)=>url.hostname === domain) || remotePatterns.some((p)=>matchRemotePattern(p, url)); +} + +//# sourceMappingURL=match-remote-pattern.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/mitt.js b/cli/app/node_modules/next/dist/shared/lib/mitt.js new file mode 100644 index 00000000000..7fb19505ba3 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/mitt.js @@ -0,0 +1,46 @@ +/* +MIT License + +Copyright (c) Jason Miller (https://jasonformat.com/) + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +*/ // This file is based on https://github.com/developit/mitt/blob/v1.1.3/src/index.js +// It's been edited for the needs of this script +// See the LICENSE at the top of the file +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return mitt; + } +}); +function mitt() { + const all = Object.create(null); + return { + on (type, handler) { + ; + (all[type] || (all[type] = [])).push(handler); + }, + off (type, handler) { + if (all[type]) { + all[type].splice(all[type].indexOf(handler) >>> 0, 1); + } + }, + emit (type, ...evts) { + // eslint-disable-next-line array-callback-return + ; + (all[type] || []).slice().map((handler)=>{ + handler(...evts); + }); + } + }; +} + +//# sourceMappingURL=mitt.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/modern-browserslist-target.js b/cli/app/node_modules/next/dist/shared/lib/modern-browserslist-target.js new file mode 100644 index 00000000000..3841ccfc2e2 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/modern-browserslist-target.js @@ -0,0 +1,15 @@ +// Note: This file is JS because it's used by the taskfile-swc.js file, which is JS. +// Keep file changes in sync with the corresponding `.d.ts` files. +/** + * These are the minimum browser versions that we consider "modern" and thus compile for by default. + * This list was generated using `pnpm browserslist "baseline widely available"` on 2025-10-01. + */ "use strict"; +const MODERN_BROWSERSLIST_TARGET = [ + 'chrome 111', + 'edge 111', + 'firefox 111', + 'safari 16.4' +]; +module.exports = MODERN_BROWSERSLIST_TARGET; + +//# sourceMappingURL=modern-browserslist-target.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/no-fallback-error.external.js b/cli/app/node_modules/next/dist/shared/lib/no-fallback-error.external.js new file mode 100644 index 00000000000..66ac9a031ab --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/no-fallback-error.external.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "NoFallbackError", { + enumerable: true, + get: function() { + return NoFallbackError; + } +}); +class NoFallbackError extends Error { + constructor(){ + super(); + this.message = 'Internal: NoFallbackError'; + } +} + +//# sourceMappingURL=no-fallback-error.external.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/normalized-asset-prefix.js b/cli/app/node_modules/next/dist/shared/lib/normalized-asset-prefix.js new file mode 100644 index 00000000000..c976f55f808 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/normalized-asset-prefix.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizedAssetPrefix", { + enumerable: true, + get: function() { + return normalizedAssetPrefix; + } +}); +function normalizedAssetPrefix(assetPrefix) { + // remove all leading slashes and trailing slashes + const escapedAssetPrefix = assetPrefix?.replace(/^\/+|\/+$/g, '') || false; + // if an assetPrefix was '/', we return empty string + // because it could be an unnecessary trailing slash + if (!escapedAssetPrefix) { + return ''; + } + if (URL.canParse(escapedAssetPrefix)) { + const url = new URL(escapedAssetPrefix).toString(); + return url.endsWith('/') ? url.slice(0, -1) : url; + } + // assuming assetPrefix here is a pathname-style, + // restore the leading slash + return `/${escapedAssetPrefix}`; +} + +//# sourceMappingURL=normalized-asset-prefix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js b/cli/app/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js new file mode 100644 index 00000000000..84cab6a6d63 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/absolute-path-to-page.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "absolutePathToPage", { + enumerable: true, + get: function() { + return absolutePathToPage; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _ensureleadingslash = require("./ensure-leading-slash"); +const _normalizepathsep = require("./normalize-path-sep"); +const _path = /*#__PURE__*/ _interop_require_default._(require("../isomorphic/path")); +const _removepagepathtail = require("./remove-page-path-tail"); +const _getmetadataroute = require("../../../lib/metadata/get-metadata-route"); +function absolutePathToPage(pagePath, options) { + const isAppDir = options.pagesType === 'app'; + const page = (0, _removepagepathtail.removePagePathTail)((0, _normalizepathsep.normalizePathSep)((0, _ensureleadingslash.ensureLeadingSlash)(_path.default.relative(options.dir, pagePath))), { + extensions: options.extensions, + keepIndex: options.keepIndex + }); + return isAppDir ? (0, _getmetadataroute.normalizeMetadataRoute)(page) : page; +} + +//# sourceMappingURL=absolute-path-to-page.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js b/cli/app/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js new file mode 100644 index 00000000000..ad5ec625a92 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "denormalizePagePath", { + enumerable: true, + get: function() { + return denormalizePagePath; + } +}); +const _utils = require("../router/utils"); +const _normalizepathsep = require("./normalize-path-sep"); +function denormalizePagePath(page) { + let _page = (0, _normalizepathsep.normalizePathSep)(page); + return _page.startsWith('/index/') && !(0, _utils.isDynamicRoute)(_page) ? _page.slice(6) : _page !== '/index' ? _page : '/'; +} + +//# sourceMappingURL=denormalize-page-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js b/cli/app/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js new file mode 100644 index 00000000000..6c4733da5e5 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js @@ -0,0 +1,18 @@ +/** + * For a given page path, this function ensures that there is a leading slash. + * If there is not a leading slash, one is added, otherwise it is noop. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "ensureLeadingSlash", { + enumerable: true, + get: function() { + return ensureLeadingSlash; + } +}); +function ensureLeadingSlash(path) { + return path.startsWith('/') ? path : `/${path}`; +} + +//# sourceMappingURL=ensure-leading-slash.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/get-page-paths.js b/cli/app/node_modules/next/dist/shared/lib/page-path/get-page-paths.js new file mode 100644 index 00000000000..b2c11343dbd --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/get-page-paths.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getPagePaths", { + enumerable: true, + get: function() { + return getPagePaths; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _denormalizepagepath = require("./denormalize-page-path"); +const _path = /*#__PURE__*/ _interop_require_default._(require("../isomorphic/path")); +function getPagePaths(normalizedPagePath, extensions, isAppDir) { + const page = (0, _denormalizepagepath.denormalizePagePath)(normalizedPagePath); + let prefixes; + if (isAppDir) { + prefixes = [ + page + ]; + } else if (normalizedPagePath.endsWith('/index')) { + prefixes = [ + _path.default.join(page, 'index') + ]; + } else { + prefixes = [ + page, + _path.default.join(page, 'index') + ]; + } + const paths = []; + for (const extension of extensions){ + for (const prefix of prefixes){ + paths.push(`${prefix}.${extension}`); + } + } + return paths; +} + +//# sourceMappingURL=get-page-paths.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js b/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js new file mode 100644 index 00000000000..047433b61af --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-data-path.js @@ -0,0 +1,23 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizeDataPath", { + enumerable: true, + get: function() { + return normalizeDataPath; + } +}); +const _pathhasprefix = require("../router/utils/path-has-prefix"); +function normalizeDataPath(pathname) { + if (!(0, _pathhasprefix.pathHasPrefix)(pathname || '/', '/_next/data')) { + return pathname; + } + pathname = pathname.replace(/\/_next\/data\/[^/]{1,}/, '').replace(/\.json$/, ''); + if (pathname === '/index') { + return '/'; + } + return pathname; +} + +//# sourceMappingURL=normalize-data-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js b/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js new file mode 100644 index 00000000000..2f410599904 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-page-path.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizePagePath", { + enumerable: true, + get: function() { + return normalizePagePath; + } +}); +const _ensureleadingslash = require("./ensure-leading-slash"); +const _utils = require("../router/utils"); +const _utils1 = require("../utils"); +function normalizePagePath(page) { + const normalized = /^\/index(\/|$)/.test(page) && !(0, _utils.isDynamicRoute)(page) ? `/index${page}` : page === '/' ? '/index' : (0, _ensureleadingslash.ensureLeadingSlash)(page); + if (process.env.NEXT_RUNTIME !== 'edge') { + const { posix } = require('path'); + const resolvedPage = posix.normalize(normalized); + if (resolvedPage !== normalized) { + throw new _utils1.NormalizeError(`Requested and resolved page mismatch: ${normalized} ${resolvedPage}`); + } + } + return normalized; +} + +//# sourceMappingURL=normalize-page-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js b/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js new file mode 100644 index 00000000000..2d040729bfd --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/normalize-path-sep.js @@ -0,0 +1,19 @@ +/** + * For a given page path, this function ensures that there is no backslash + * escaping slashes in the path. Example: + * - `foo\/bar\/baz` -> `foo/bar/baz` + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "normalizePathSep", { + enumerable: true, + get: function() { + return normalizePathSep; + } +}); +function normalizePathSep(path) { + return path.replace(/\\/g, '/'); +} + +//# sourceMappingURL=normalize-path-sep.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js b/cli/app/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js new file mode 100644 index 00000000000..f875c83a7eb --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/page-path/remove-page-path-tail.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "removePagePathTail", { + enumerable: true, + get: function() { + return removePagePathTail; + } +}); +const _normalizepathsep = require("./normalize-path-sep"); +function removePagePathTail(pagePath, options) { + pagePath = (0, _normalizepathsep.normalizePathSep)(pagePath).replace(new RegExp(`\\.+(?:${options.extensions.join('|')})$`), ''); + if (options.keepIndex !== true) { + pagePath = pagePath.replace(/\/index$/, '') || '/'; + } + return pagePath; +} + +//# sourceMappingURL=remove-page-path-tail.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/promise-with-resolvers.js b/cli/app/node_modules/next/dist/shared/lib/promise-with-resolvers.js new file mode 100644 index 00000000000..cfb31798326 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/promise-with-resolvers.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "createPromiseWithResolvers", { + enumerable: true, + get: function() { + return createPromiseWithResolvers; + } +}); +function createPromiseWithResolvers() { + // Shim of Stage 4 Promise.withResolvers proposal + let resolve; + let reject; + const promise = new Promise((res, rej)=>{ + resolve = res; + reject = rej; + }); + return { + resolve: resolve, + reject: reject, + promise + }; +} + +//# sourceMappingURL=promise-with-resolvers.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router-context.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/router-context.shared-runtime.js new file mode 100644 index 00000000000..fa861beeba5 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router-context.shared-runtime.js @@ -0,0 +1,18 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "RouterContext", { + enumerable: true, + get: function() { + return RouterContext; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _react = /*#__PURE__*/ _interop_require_default._(require("react")); +const RouterContext = _react.default.createContext(null); +if (process.env.NODE_ENV !== 'production') { + RouterContext.displayName = 'RouterContext'; +} + +//# sourceMappingURL=router-context.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/adapters.js b/cli/app/node_modules/next/dist/shared/lib/router/adapters.js new file mode 100644 index 00000000000..4110453501f --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/adapters.js @@ -0,0 +1,136 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PathnameContextProviderAdapter: null, + adaptForAppRouterInstance: null, + adaptForPathParams: null, + adaptForSearchParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PathnameContextProviderAdapter: function() { + return PathnameContextProviderAdapter; + }, + adaptForAppRouterInstance: function() { + return adaptForAppRouterInstance; + }, + adaptForPathParams: function() { + return adaptForPathParams; + }, + adaptForSearchParams: function() { + return adaptForSearchParams; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _jsxruntime = require("react/jsx-runtime"); +const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); +const _hooksclientcontextsharedruntime = require("../hooks-client-context.shared-runtime"); +const _utils = require("./utils"); +const _aspathtosearchparams = require("./utils/as-path-to-search-params"); +const _routeregex = require("./utils/route-regex"); +function adaptForAppRouterInstance(pagesRouter) { + return { + back () { + pagesRouter.back(); + }, + forward () { + pagesRouter.forward(); + }, + refresh () { + pagesRouter.reload(); + }, + hmrRefresh () {}, + push (href, { scroll } = {}) { + void pagesRouter.push(href, undefined, { + scroll + }); + }, + replace (href, { scroll } = {}) { + void pagesRouter.replace(href, undefined, { + scroll + }); + }, + prefetch (href) { + void pagesRouter.prefetch(href); + } + }; +} +function adaptForSearchParams(router) { + if (!router.isReady || !router.query) { + return new URLSearchParams(); + } + return (0, _aspathtosearchparams.asPathToSearchParams)(router.asPath); +} +function adaptForPathParams(router) { + if (!router.isReady || !router.query) { + return null; + } + const pathParams = {}; + const routeRegex = (0, _routeregex.getRouteRegex)(router.pathname); + const keys = Object.keys(routeRegex.groups); + for (const key of keys){ + pathParams[key] = router.query[key]; + } + return pathParams; +} +function PathnameContextProviderAdapter({ children, router, ...props }) { + const ref = (0, _react.useRef)(props.isAutoExport); + const value = (0, _react.useMemo)(()=>{ + // isAutoExport is only ever `true` on the first render from the server, + // so reset it to `false` after we read it for the first time as `true`. If + // we don't use the value, then we don't need it. + const isAutoExport = ref.current; + if (isAutoExport) { + ref.current = false; + } + // When the route is a dynamic route, we need to do more processing to + // determine if we need to stop showing the pathname. + if ((0, _utils.isDynamicRoute)(router.pathname)) { + // When the router is rendering the fallback page, it can't possibly know + // the path, so return `null` here. Read more about fallback pages over + // at: + // https://nextjs.org/docs/api-reference/data-fetching/get-static-paths#fallback-pages + if (router.isFallback) { + return null; + } + // When `isAutoExport` is true, meaning this is a page page has been + // automatically statically optimized, and the router is not ready, then + // we can't know the pathname yet. Read more about automatic static + // optimization at: + // https://nextjs.org/docs/advanced-features/automatic-static-optimization + if (isAutoExport && !router.isReady) { + return null; + } + } + // The `router.asPath` contains the pathname seen by the browser (including + // any query strings), so it should have that stripped. Read more about the + // `asPath` option over at: + // https://nextjs.org/docs/api-reference/next/router#router-object + let url; + try { + url = new URL(router.asPath, 'http://f'); + } catch (_) { + // fallback to / for invalid asPath values e.g. // + return '/'; + } + return url.pathname; + }, [ + router.asPath, + router.isFallback, + router.isReady, + router.pathname + ]); + return /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.PathnameContext.Provider, { + value: value, + children: children + }); +} + +//# sourceMappingURL=adapters.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/router.js b/cli/app/node_modules/next/dist/shared/lib/router/router.js new file mode 100644 index 00000000000..abba744dda7 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/router.js @@ -0,0 +1,1807 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + createKey: null, + default: null, + matchesMiddleware: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + createKey: function() { + return createKey; + }, + default: function() { + return Router; + }, + matchesMiddleware: function() { + return matchesMiddleware; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _removetrailingslash = require("./utils/remove-trailing-slash"); +const _routeloader = require("../../../client/route-loader"); +const _script = require("../../../client/script"); +const _iserror = /*#__PURE__*/ _interop_require_wildcard._(require("../../../lib/is-error")); +const _denormalizepagepath = require("../page-path/denormalize-page-path"); +const _normalizelocalepath = require("../i18n/normalize-locale-path"); +const _mitt = /*#__PURE__*/ _interop_require_default._(require("../mitt")); +const _utils = require("../utils"); +const _isdynamic = require("./utils/is-dynamic"); +const _parserelativeurl = require("./utils/parse-relative-url"); +const _routematcher = require("./utils/route-matcher"); +const _routeregex = require("./utils/route-regex"); +const _formaturl = require("./utils/format-url"); +const _detectdomainlocale = require("../../../client/detect-domain-locale"); +const _parsepath = require("./utils/parse-path"); +const _addlocale = require("../../../client/add-locale"); +const _removelocale = require("../../../client/remove-locale"); +const _removebasepath = require("../../../client/remove-base-path"); +const _addbasepath = require("../../../client/add-base-path"); +const _hasbasepath = require("../../../client/has-base-path"); +const _resolvehref = require("../../../client/resolve-href"); +const _isapiroute = require("../../../lib/is-api-route"); +const _getnextpathnameinfo = require("./utils/get-next-pathname-info"); +const _formatnextpathnameinfo = require("./utils/format-next-pathname-info"); +const _comparestates = require("./utils/compare-states"); +const _islocalurl = require("./utils/is-local-url"); +const _isbot = require("./utils/is-bot"); +const _omit = require("./utils/omit"); +const _interpolateas = require("./utils/interpolate-as"); +const _disablesmoothscroll = require("./utils/disable-smooth-scroll"); +const _constants = require("../../../lib/constants"); +const _deploymentid = require("../deployment-id"); +const _javascripturl = require("../../../client/lib/javascript-url"); +let resolveRewrites; +if (process.env.__NEXT_HAS_REWRITES) { + resolveRewrites = require('./utils/resolve-rewrites').default; +} +function buildCancellationError() { + return Object.assign(Object.defineProperty(new Error('Route Cancelled'), "__NEXT_ERROR_CODE", { + value: "E315", + enumerable: false, + configurable: true + }), { + cancelled: true + }); +} +async function matchesMiddleware(options) { + const matchers = await Promise.resolve(options.router.pageLoader.getMiddleware()); + if (!matchers) return false; + const { pathname: asPathname } = (0, _parsepath.parsePath)(options.asPath); + // remove basePath first since path prefix has to be in the order of `/${basePath}/${locale}` + const cleanedAs = (0, _hasbasepath.hasBasePath)(asPathname) ? (0, _removebasepath.removeBasePath)(asPathname) : asPathname; + const asWithBasePathAndLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(cleanedAs, options.locale)); + // Check only path match on client. Matching "has" should be done on server + // where we can access more info such as headers, HttpOnly cookie, etc. + return matchers.some((m)=>new RegExp(m.regexp).test(asWithBasePathAndLocale)); +} +function stripOrigin(url) { + const origin = (0, _utils.getLocationOrigin)(); + return url.startsWith(origin) ? url.substring(origin.length) : url; +} +function prepareUrlAs(router, url, as) { + // If url and as provided as an object representation, + // we'll format them into the string version here. + let [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, url, true); + const origin = (0, _utils.getLocationOrigin)(); + const hrefWasAbsolute = resolvedHref.startsWith(origin); + const asWasAbsolute = resolvedAs && resolvedAs.startsWith(origin); + resolvedHref = stripOrigin(resolvedHref); + resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs; + const preparedUrl = hrefWasAbsolute ? resolvedHref : (0, _addbasepath.addBasePath)(resolvedHref); + const preparedAs = as ? stripOrigin((0, _resolvehref.resolveHref)(router, as)) : resolvedAs || resolvedHref; + return { + url: preparedUrl, + as: asWasAbsolute ? preparedAs : (0, _addbasepath.addBasePath)(preparedAs) + }; +} +function resolveDynamicRoute(pathname, pages) { + const cleanPathname = (0, _removetrailingslash.removeTrailingSlash)((0, _denormalizepagepath.denormalizePagePath)(pathname)); + if (cleanPathname === '/404' || cleanPathname === '/_error') { + return pathname; + } + // handle resolving href for dynamic routes + if (!pages.includes(cleanPathname)) { + // eslint-disable-next-line array-callback-return + pages.some((page)=>{ + if ((0, _isdynamic.isDynamicRoute)(page) && (0, _routeregex.getRouteRegex)(page).re.test(cleanPathname)) { + pathname = page; + return true; + } + }); + } + return (0, _removetrailingslash.removeTrailingSlash)(pathname); +} +function getMiddlewareData(source, response, options) { + const nextConfig = { + basePath: options.router.basePath, + i18n: { + locales: options.router.locales + }, + trailingSlash: Boolean(process.env.__NEXT_TRAILING_SLASH) + }; + const rewriteHeader = response.headers.get('x-nextjs-rewrite'); + let rewriteTarget = rewriteHeader || response.headers.get('x-nextjs-matched-path'); + const matchedPath = response.headers.get(_constants.MATCHED_PATH_HEADER); + if (matchedPath && !rewriteTarget && !matchedPath.includes('__next_data_catchall') && !matchedPath.includes('/_error') && !matchedPath.includes('/404')) { + // leverage x-matched-path to detect next.config.js rewrites + rewriteTarget = matchedPath; + } + if (rewriteTarget) { + if (rewriteTarget.startsWith('/') || process.env.__NEXT_EXTERNAL_MIDDLEWARE_REWRITE_RESOLVE) { + const parsedRewriteTarget = (0, _parserelativeurl.parseRelativeUrl)(rewriteTarget); + const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(parsedRewriteTarget.pathname, { + nextConfig, + parseData: true + }); + let fsPathname = (0, _removetrailingslash.removeTrailingSlash)(pathnameInfo.pathname); + return Promise.all([ + options.router.pageLoader.getPageList(), + (0, _routeloader.getClientBuildManifest)() + ]).then(([pages, { __rewrites: rewrites }])=>{ + let as = (0, _addlocale.addLocale)(pathnameInfo.pathname, pathnameInfo.locale); + if ((0, _isdynamic.isDynamicRoute)(as) || !rewriteHeader && pages.includes((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(as), options.router.locales).pathname)) { + const parsedSource = (0, _getnextpathnameinfo.getNextPathnameInfo)((0, _parserelativeurl.parseRelativeUrl)(source).pathname, { + nextConfig: process.env.__NEXT_HAS_REWRITES ? undefined : nextConfig, + parseData: true + }); + as = (0, _addbasepath.addBasePath)(parsedSource.pathname); + parsedRewriteTarget.pathname = as; + } + if (process.env.__NEXT_HAS_REWRITES) { + const result = resolveRewrites(as, pages, rewrites, parsedRewriteTarget.query, (path)=>resolveDynamicRoute(path, pages), options.router.locales); + if (result.matchedPage) { + parsedRewriteTarget.pathname = result.parsedAs.pathname; + as = parsedRewriteTarget.pathname; + Object.assign(parsedRewriteTarget.query, result.parsedAs.query); + } + } else if (!pages.includes(fsPathname)) { + const resolvedPathname = resolveDynamicRoute(fsPathname, pages); + if (resolvedPathname !== fsPathname) { + fsPathname = resolvedPathname; + } + } + const resolvedHref = !pages.includes(fsPathname) ? resolveDynamicRoute((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(parsedRewriteTarget.pathname), options.router.locales).pathname, pages) : fsPathname; + if ((0, _isdynamic.isDynamicRoute)(resolvedHref)) { + const matches = (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(resolvedHref))(as); + Object.assign(parsedRewriteTarget.query, matches || {}); + } + return { + type: 'rewrite', + parsedAs: parsedRewriteTarget, + resolvedHref + }; + }); + } + const src = (0, _parsepath.parsePath)(source); + const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({ + ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, { + nextConfig, + parseData: true + }), + defaultLocale: options.router.defaultLocale, + buildId: '' + }); + return Promise.resolve({ + type: 'redirect-external', + destination: `${pathname}${src.query}${src.hash}` + }); + } + const redirectTarget = response.headers.get('x-nextjs-redirect'); + if (redirectTarget) { + if (redirectTarget.startsWith('/')) { + const src = (0, _parsepath.parsePath)(redirectTarget); + const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({ + ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, { + nextConfig, + parseData: true + }), + defaultLocale: options.router.defaultLocale, + buildId: '' + }); + return Promise.resolve({ + type: 'redirect-internal', + newAs: `${pathname}${src.query}${src.hash}`, + newUrl: `${pathname}${src.query}${src.hash}` + }); + } + return Promise.resolve({ + type: 'redirect-external', + destination: redirectTarget + }); + } + return Promise.resolve({ + type: 'next' + }); +} +async function withMiddlewareEffects(options) { + const matches = await matchesMiddleware(options); + if (!matches || !options.fetchData) { + return null; + } + const data = await options.fetchData(); + const effect = await getMiddlewareData(data.dataHref, data.response, options); + return { + dataHref: data.dataHref, + json: data.json, + response: data.response, + text: data.text, + cacheKey: data.cacheKey, + effect + }; +} +const manualScrollRestoration = process.env.__NEXT_SCROLL_RESTORATION && typeof window !== 'undefined' && 'scrollRestoration' in window.history && !!function() { + try { + let v = '__next'; + return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), true; + } catch (n) {} +}(); +const SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND'); +function fetchRetry(url, attempts, options) { + return fetch(url, { + // Cookies are required to be present for Next.js' SSG "Preview Mode". + // Cookies may also be required for `getServerSideProps`. + // + // > `fetch` won’t send cookies, unless you set the credentials init + // > option. + // https://developer.mozilla.org/docs/Web/API/Fetch_API/Using_Fetch + // + // > For maximum browser compatibility when it comes to sending & + // > receiving cookies, always supply the `credentials: 'same-origin'` + // > option instead of relying on the default. + // https://github.com/github/fetch#caveats + credentials: 'same-origin', + method: options.method || 'GET', + headers: Object.assign({}, options.headers, { + 'x-nextjs-data': '1' + }) + }).then((response)=>{ + return !response.ok && attempts > 1 && response.status >= 500 ? fetchRetry(url, attempts - 1, options) : response; + }); +} +function tryToParseAsJSON(text) { + try { + return JSON.parse(text); + } catch (error) { + return null; + } +} +function fetchNextData({ dataHref, inflightCache, isPrefetch, hasMiddleware, isServerRender, parseJSON, persistCache, isBackground, unstable_skipClientCache }) { + const { href: cacheKey } = new URL(dataHref, window.location.href); + const deploymentId = (0, _deploymentid.getDeploymentId)(); + const getData = (params)=>fetchRetry(dataHref, isServerRender ? 3 : 1, { + headers: Object.assign({}, isPrefetch ? { + purpose: 'prefetch' + } : {}, isPrefetch && hasMiddleware ? { + 'x-middleware-prefetch': '1' + } : {}, deploymentId ? { + 'x-deployment-id': deploymentId + } : {}), + method: params?.method ?? 'GET' + }).then((response)=>{ + if (response.ok && params?.method === 'HEAD') { + return { + dataHref, + response, + text: '', + json: {}, + cacheKey + }; + } + return response.text().then((text)=>{ + if (!response.ok) { + /** + * When the data response is a redirect because of a middleware + * we do not consider it an error. The headers must bring the + * mapped location. + * TODO: Change the status code in the handler. + */ if (hasMiddleware && [ + 301, + 302, + 307, + 308 + ].includes(response.status)) { + return { + dataHref, + response, + text, + json: {}, + cacheKey + }; + } + if (response.status === 404) { + if (tryToParseAsJSON(text)?.notFound) { + return { + dataHref, + json: { + notFound: SSG_DATA_NOT_FOUND + }, + response, + text, + cacheKey + }; + } + } + const error = Object.defineProperty(new Error(`Failed to load static props`), "__NEXT_ERROR_CODE", { + value: "E124", + enumerable: false, + configurable: true + }); + /** + * We should only trigger a server-side transition if this was + * caused on a client-side transition. Otherwise, we'd get into + * an infinite loop. + */ if (!isServerRender) { + (0, _routeloader.markAssetError)(error); + } + throw error; + } + let dplResponseHeader = response.headers.get(_constants.NEXT_NAV_DEPLOYMENT_ID_HEADER); + if (dplResponseHeader != null && dplResponseHeader !== deploymentId) { + // When not found, or we want to force a MPA navigation because of Skew Protection + const error = Object.defineProperty(new Error(`Loaded static props were from an outdated deployment, forcing a hard reload`), "__NEXT_ERROR_CODE", { + value: "E989", + enumerable: false, + configurable: true + }); + /** + * We should only trigger a server-side transition if this was + * caused on a client-side transition. Otherwise, we'd get into + * an infinite loop. + */ if (!isServerRender) { + (0, _routeloader.markAssetError)(error); + } + throw error; + } + return { + dataHref, + json: parseJSON ? tryToParseAsJSON(text) : null, + response, + text, + cacheKey + }; + }); + }).then((data)=>{ + if (!persistCache || process.env.NODE_ENV !== 'production' || data.response.headers.get('x-middleware-cache') === 'no-cache') { + delete inflightCache[cacheKey]; + } + return data; + }).catch((err)=>{ + if (!unstable_skipClientCache) { + delete inflightCache[cacheKey]; + } + if (// chrome + err.message === 'Failed to fetch' || // firefox + err.message === 'NetworkError when attempting to fetch resource.' || // safari + err.message === 'Load failed') { + (0, _routeloader.markAssetError)(err); + } + throw err; + }); + // when skipping client cache we wait to update + // inflight cache until successful data response + // this allows racing click event with fetching newer data + // without blocking navigation when stale data is available + if (unstable_skipClientCache && persistCache) { + return getData({}).then((data)=>{ + if (data.response.headers.get('x-middleware-cache') !== 'no-cache') { + // only update cache if not marked as no-cache + inflightCache[cacheKey] = Promise.resolve(data); + } + return data; + }); + } + if (inflightCache[cacheKey] !== undefined) { + return inflightCache[cacheKey]; + } + return inflightCache[cacheKey] = getData(isBackground ? { + method: 'HEAD' + } : {}); +} +function createKey() { + return Math.random().toString(36).slice(2, 10); +} +function handleHardNavigation({ url, router }) { + // ensure we don't trigger a hard navigation to the same + // URL as this can end up with an infinite refresh + if (url === (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(router.asPath, router.locale))) { + throw Object.defineProperty(new Error(`Invariant: attempted to hard navigate to the same URL ${url} ${location.href}`), "__NEXT_ERROR_CODE", { + value: "E282", + enumerable: false, + configurable: true + }); + } + window.location.href = url; +} +const getCancelledHandler = ({ route, router })=>{ + let cancelled = false; + const cancel = router.clc = ()=>{ + cancelled = true; + }; + const handleCancelled = ()=>{ + if (cancelled) { + const error = Object.defineProperty(new Error(`Abort fetching component for route: "${route}"`), "__NEXT_ERROR_CODE", { + value: "E483", + enumerable: false, + configurable: true + }); + error.cancelled = true; + throw error; + } + if (cancel === router.clc) { + router.clc = null; + } + }; + return handleCancelled; +}; +class Router { + static{ + this.events = (0, _mitt.default)(); + } + constructor(pathname, query, as, { initialProps, pageLoader, App, wrapApp, Component, err, subscription, isFallback, locale, locales, defaultLocale, domainLocales, isPreview }){ + // Server Data Cache (full data requests) + this.sdc = {}; + // Server Background Cache (HEAD requests) + this.sbc = {}; + this.isFirstPopStateEvent = true; + this._key = createKey(); + this.onPopState = (e)=>{ + const { isFirstPopStateEvent } = this; + this.isFirstPopStateEvent = false; + const state = e.state; + if (!state) { + // We get state as undefined for two reasons. + // 1. With older safari (< 8) and older chrome (< 34) + // 2. When the URL changed with # + // + // In the both cases, we don't need to proceed and change the route. + // (as it's already changed) + // But we can simply replace the state with the new changes. + // Actually, for (1) we don't need to nothing. But it's hard to detect that event. + // So, doing the following for (1) does no harm. + const { pathname, query } = this; + this.changeState('replaceState', (0, _formaturl.formatWithValidation)({ + pathname: (0, _addbasepath.addBasePath)(pathname), + query + }), (0, _utils.getURL)()); + return; + } + // __NA is used to identify if the history entry can be handled by the app-router. + if (state.__NA) { + window.location.reload(); + return; + } + if (!state.__N) { + return; + } + // Safari fires popstateevent when reopening the browser. + if (isFirstPopStateEvent && this.locale === state.options.locale && state.as === this.asPath) { + return; + } + let forcedScroll; + const { url, as, options, key } = state; + if (process.env.__NEXT_SCROLL_RESTORATION) { + if (manualScrollRestoration) { + if (this._key !== key) { + // Snapshot current scroll position: + try { + sessionStorage.setItem('__next_scroll_' + this._key, JSON.stringify({ + x: self.pageXOffset, + y: self.pageYOffset + })); + } catch {} + // Restore old scroll position: + try { + const v = sessionStorage.getItem('__next_scroll_' + key); + forcedScroll = JSON.parse(v); + } catch { + forcedScroll = { + x: 0, + y: 0 + }; + } + } + } + } + this._key = key; + const { pathname } = (0, _parserelativeurl.parseRelativeUrl)(url); + // Make sure we don't re-render on initial load, + // can be caused by navigating back from an external site + if (this.isSsr && as === (0, _addbasepath.addBasePath)(this.asPath) && pathname === (0, _addbasepath.addBasePath)(this.pathname)) { + return; + } + // If the downstream application returns falsy, return. + // They will then be responsible for handling the event. + if (this._bps && !this._bps(state)) { + return; + } + this.change('replaceState', url, as, Object.assign({}, options, { + shallow: options.shallow && this._shallow, + locale: options.locale || this.defaultLocale, + // @ts-ignore internal value not exposed on types + _h: 0 + }), forcedScroll); + }; + // represents the current component key + const route = (0, _removetrailingslash.removeTrailingSlash)(pathname); + // set up the component cache (by route keys) + this.components = {}; + // We should not keep the cache, if there's an error + // Otherwise, this cause issues when when going back and + // come again to the errored page. + if (pathname !== '/_error') { + this.components[route] = { + Component, + initial: true, + props: initialProps, + err, + __N_SSG: initialProps && initialProps.__N_SSG, + __N_SSP: initialProps && initialProps.__N_SSP + }; + } + this.components['/_app'] = { + Component: App, + styleSheets: [] + }; + // Backwards compat for Router.router.events + // TODO: Should be remove the following major version as it was never documented + this.events = Router.events; + this.pageLoader = pageLoader; + // if auto prerendered and dynamic route wait to update asPath + // until after mount to prevent hydration mismatch + const autoExportDynamic = (0, _isdynamic.isDynamicRoute)(pathname) && self.__NEXT_DATA__.autoExport; + this.basePath = process.env.__NEXT_ROUTER_BASEPATH || ''; + this.sub = subscription; + this.clc = null; + this._wrapApp = wrapApp; + // make sure to ignore extra popState in safari on navigating + // back from external site + this.isSsr = true; + this.isLocaleDomain = false; + this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.isExperimentalCompile || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !process.env.__NEXT_HAS_REWRITES); + if (process.env.__NEXT_I18N_SUPPORT) { + this.locales = locales; + this.defaultLocale = defaultLocale; + this.domainLocales = domainLocales; + this.isLocaleDomain = !!(0, _detectdomainlocale.detectDomainLocale)(domainLocales, self.location.hostname); + } + this.state = { + route, + pathname, + query, + asPath: autoExportDynamic ? pathname : as, + isPreview: !!isPreview, + locale: process.env.__NEXT_I18N_SUPPORT ? locale : undefined, + isFallback + }; + this._initialMatchesMiddlewarePromise = Promise.resolve(false); + if (typeof window !== 'undefined') { + // make sure "as" doesn't start with double slashes or else it can + // throw an error as it's considered invalid + if (!as.startsWith('//')) { + // in order for `e.state` to work on the `onpopstate` event + // we have to register the initial route upon initialization + const options = { + locale + }; + const asPath = (0, _utils.getURL)(); + this._initialMatchesMiddlewarePromise = matchesMiddleware({ + router: this, + locale, + asPath + }).then((matches)=>{ + // if middleware matches we leave resolving to the change function + // as the server needs to resolve for correct priority + ; + options._shouldResolveHref = as !== pathname; + this.changeState('replaceState', matches ? asPath : (0, _formaturl.formatWithValidation)({ + pathname: (0, _addbasepath.addBasePath)(pathname), + query + }), asPath, options); + return matches; + }); + } + window.addEventListener('popstate', this.onPopState); + // enable custom scroll restoration handling when available + // otherwise fallback to browser's default handling + if (process.env.__NEXT_SCROLL_RESTORATION) { + if (manualScrollRestoration) { + window.history.scrollRestoration = 'manual'; + } + } + } + } + reload() { + window.location.reload(); + } + /** + * Go back in history + */ back() { + window.history.back(); + } + /** + * Go forward in history + */ forward() { + window.history.forward(); + } + /** + * Performs a `pushState` with arguments + * @param url of the route + * @param as masks `url` for the browser + * @param options object you can define `shallow` and other options + */ push(url, as, options = {}) { + if ((0, _javascripturl.isJavaScriptURLString)(url.toString()) || as && (0, _javascripturl.isJavaScriptURLString)(as.toString())) { + throw Object.defineProperty(new Error('Next.js has blocked a javascript: URL as a security precaution.'), "__NEXT_ERROR_CODE", { + value: "E978", + enumerable: false, + configurable: true + }); + } + if (process.env.__NEXT_SCROLL_RESTORATION) { + // TODO: remove in the future when we update history before route change + // is complete, as the popstate event should handle this capture. + if (manualScrollRestoration) { + try { + // Snapshot scroll position right before navigating to a new page: + sessionStorage.setItem('__next_scroll_' + this._key, JSON.stringify({ + x: self.pageXOffset, + y: self.pageYOffset + })); + } catch {} + } + } + ; + ({ url, as } = prepareUrlAs(this, url, as)); + return this.change('pushState', url, as, options); + } + /** + * Performs a `replaceState` with arguments + * @param url of the route + * @param as masks `url` for the browser + * @param options object you can define `shallow` and other options + */ replace(url, as, options = {}) { + if ((0, _javascripturl.isJavaScriptURLString)(url.toString()) || as && (0, _javascripturl.isJavaScriptURLString)(as.toString())) { + throw Object.defineProperty(new Error('Next.js has blocked a javascript: URL as a security precaution.'), "__NEXT_ERROR_CODE", { + value: "E978", + enumerable: false, + configurable: true + }); + } + ; + ({ url, as } = prepareUrlAs(this, url, as)); + return this.change('replaceState', url, as, options); + } + async _bfl(as, resolvedAs, locale, skipNavigate) { + if (process.env.__NEXT_CLIENT_ROUTER_FILTER_ENABLED) { + if (!this._bfl_s && !this._bfl_d) { + const { BloomFilter } = require('../../lib/bloom-filter'); + let staticFilterData; + let dynamicFilterData; + try { + ; + ({ __routerFilterStatic: staticFilterData, __routerFilterDynamic: dynamicFilterData } = await (0, _routeloader.getClientBuildManifest)()); + } catch (err) { + // failed to load build manifest hard navigate + // to be safe + console.error(err); + if (skipNavigate) { + return true; + } + handleHardNavigation({ + url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)), + router: this + }); + return new Promise(()=>{}); + } + const routerFilterSValue = process.env.__NEXT_CLIENT_ROUTER_S_FILTER; + if (!staticFilterData && routerFilterSValue) { + staticFilterData = routerFilterSValue ? routerFilterSValue : undefined; + } + const routerFilterDValue = process.env.__NEXT_CLIENT_ROUTER_D_FILTER; + if (!dynamicFilterData && routerFilterDValue) { + dynamicFilterData = routerFilterDValue ? routerFilterDValue : undefined; + } + if (staticFilterData?.numHashes) { + this._bfl_s = new BloomFilter(staticFilterData.numItems, staticFilterData.errorRate); + this._bfl_s.import(staticFilterData); + } + if (dynamicFilterData?.numHashes) { + this._bfl_d = new BloomFilter(dynamicFilterData.numItems, dynamicFilterData.errorRate); + this._bfl_d.import(dynamicFilterData); + } + } + let matchesBflStatic = false; + let matchesBflDynamic = false; + const pathsToCheck = [ + { + as + }, + { + as: resolvedAs + } + ]; + for (const { as: curAs, allowMatchCurrent } of pathsToCheck){ + if (curAs) { + const asNoSlash = (0, _removetrailingslash.removeTrailingSlash)(new URL(curAs, 'http://n').pathname); + const asNoSlashLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(asNoSlash, locale || this.locale)); + if (allowMatchCurrent || asNoSlash !== (0, _removetrailingslash.removeTrailingSlash)(new URL(this.asPath, 'http://n').pathname)) { + matchesBflStatic = matchesBflStatic || !!this._bfl_s?.contains(asNoSlash) || !!this._bfl_s?.contains(asNoSlashLocale); + for (const normalizedAS of [ + asNoSlash, + asNoSlashLocale + ]){ + // if any sub-path of as matches a dynamic filter path + // it should be hard navigated + const curAsParts = normalizedAS.split('/'); + for(let i = 0; !matchesBflDynamic && i < curAsParts.length + 1; i++){ + const currentPart = curAsParts.slice(0, i).join('/'); + if (currentPart && this._bfl_d?.contains(currentPart)) { + matchesBflDynamic = true; + break; + } + } + } + // if the client router filter is matched then we trigger + // a hard navigation + if (matchesBflStatic || matchesBflDynamic) { + if (skipNavigate) { + return true; + } + handleHardNavigation({ + url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)), + router: this + }); + return new Promise(()=>{}); + } + } + } + } + } + return false; + } + async change(method, url, as, options, forcedScroll) { + if (!(0, _islocalurl.isLocalURL)(url)) { + handleHardNavigation({ + url, + router: this + }); + return false; + } + // WARNING: `_h` is an internal option for handing Next.js client-side + // hydration. Your app should _never_ use this property. It may change at + // any time without notice. + const isQueryUpdating = options._h === 1; + if (!isQueryUpdating && !options.shallow) { + await this._bfl(as, undefined, options.locale); + } + let shouldResolveHref = isQueryUpdating || options._shouldResolveHref || (0, _parsepath.parsePath)(url).pathname === (0, _parsepath.parsePath)(as).pathname; + const nextState = { + ...this.state + }; + // for static pages with query params in the URL we delay + // marking the router ready until after the query is updated + // or a navigation has occurred + const readyStateChange = this.isReady !== true; + this.isReady = true; + const isSsr = this.isSsr; + if (!isQueryUpdating) { + this.isSsr = false; + } + // if a route transition is already in progress before + // the query updating is triggered ignore query updating + if (isQueryUpdating && this.clc) { + return false; + } + const prevLocale = nextState.locale; + if (process.env.__NEXT_I18N_SUPPORT) { + nextState.locale = options.locale === false ? this.defaultLocale : options.locale || nextState.locale; + if (typeof options.locale === 'undefined') { + options.locale = nextState.locale; + } + const parsedAs = (0, _parserelativeurl.parseRelativeUrl)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as); + const localePathResult = (0, _normalizelocalepath.normalizeLocalePath)(parsedAs.pathname, this.locales); + if (localePathResult.detectedLocale) { + nextState.locale = localePathResult.detectedLocale; + parsedAs.pathname = (0, _addbasepath.addBasePath)(parsedAs.pathname); + as = (0, _formaturl.formatWithValidation)(parsedAs); + url = (0, _addbasepath.addBasePath)((0, _normalizelocalepath.normalizeLocalePath)((0, _hasbasepath.hasBasePath)(url) ? (0, _removebasepath.removeBasePath)(url) : url, this.locales).pathname); + } + let didNavigate = false; + // we need to wrap this in the env check again since regenerator runtime + // moves this on its own due to the return + if (process.env.__NEXT_I18N_SUPPORT) { + // if the locale isn't configured hard navigate to show 404 page + if (!this.locales?.includes(nextState.locale)) { + parsedAs.pathname = (0, _addlocale.addLocale)(parsedAs.pathname, nextState.locale); + handleHardNavigation({ + url: (0, _formaturl.formatWithValidation)(parsedAs), + router: this + }); + // this was previously a return but was removed in favor + // of better dead code elimination with regenerator runtime + didNavigate = true; + } + } + const detectedDomain = (0, _detectdomainlocale.detectDomainLocale)(this.domainLocales, undefined, nextState.locale); + // we need to wrap this in the env check again since regenerator runtime + // moves this on its own due to the return + if (process.env.__NEXT_I18N_SUPPORT) { + // if we are navigating to a domain locale ensure we redirect to the + // correct domain + if (!didNavigate && detectedDomain && this.isLocaleDomain && self.location.hostname !== detectedDomain.domain) { + const asNoBasePath = (0, _removebasepath.removeBasePath)(as); + handleHardNavigation({ + url: `http${detectedDomain.http ? '' : 's'}://${detectedDomain.domain}${(0, _addbasepath.addBasePath)(`${nextState.locale === detectedDomain.defaultLocale ? '' : `/${nextState.locale}`}${asNoBasePath === '/' ? '' : asNoBasePath}` || '/')}`, + router: this + }); + // this was previously a return but was removed in favor + // of better dead code elimination with regenerator runtime + didNavigate = true; + } + } + if (didNavigate) { + return new Promise(()=>{}); + } + } + // marking route changes as a navigation start entry + if (_utils.ST) { + performance.mark('routeChange'); + } + const { shallow = false, scroll = true } = options; + const routeProps = { + shallow + }; + if (this._inFlightRoute && this.clc) { + if (!isSsr) { + Router.events.emit('routeChangeError', buildCancellationError(), this._inFlightRoute, routeProps); + } + this.clc(); + this.clc = null; + } + as = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, options.locale, this.defaultLocale)); + const cleanedAs = (0, _removelocale.removeLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, nextState.locale); + this._inFlightRoute = as; + const localeChange = prevLocale !== nextState.locale; + // If the url change is only related to a hash change + // We should not proceed. We should only change the state. + if (!isQueryUpdating && this.onlyAHashChange(cleanedAs) && !localeChange) { + nextState.asPath = cleanedAs; + Router.events.emit('hashChangeStart', as, routeProps); + // TODO: do we need the resolved href when only a hash change? + this.changeState(method, url, as, { + ...options, + scroll: false + }); + if (scroll) { + this.scrollToHash(cleanedAs); + } + try { + await this.set(nextState, this.components[nextState.route], null); + } catch (err) { + if ((0, _iserror.default)(err) && err.cancelled) { + Router.events.emit('routeChangeError', err, cleanedAs, routeProps); + } + throw err; + } + Router.events.emit('hashChangeComplete', as, routeProps); + return true; + } + let parsed = (0, _parserelativeurl.parseRelativeUrl)(url); + let { pathname, query } = parsed; + // The build manifest needs to be loaded before auto-static dynamic pages + // get their query parameters to allow ensuring they can be parsed properly + // when rewritten to + let pages, rewrites; + try { + ; + [pages, { __rewrites: rewrites }] = await Promise.all([ + this.pageLoader.getPageList(), + (0, _routeloader.getClientBuildManifest)(), + this.pageLoader.getMiddleware() + ]); + } catch (err) { + // If we fail to resolve the page list or client-build manifest, we must + // do a server-side transition: + handleHardNavigation({ + url: as, + router: this + }); + return false; + } + // If asked to change the current URL we should reload the current page + // (not location.reload() but reload getInitialProps and other Next.js stuffs) + // We also need to set the method = replaceState always + // as this should not go into the history (That's how browsers work) + // We should compare the new asPath to the current asPath, not the url + if (!this.urlIsNew(cleanedAs) && !localeChange) { + method = 'replaceState'; + } + // we need to resolve the as value using rewrites for dynamic SSG + // pages to allow building the data URL correctly + let resolvedAs = as; + // url and as should always be prefixed with basePath by this + // point by either next/link or router.push/replace so strip the + // basePath from the pathname to match the pages dir 1-to-1 + pathname = pathname ? (0, _removetrailingslash.removeTrailingSlash)((0, _removebasepath.removeBasePath)(pathname)) : pathname; + let route = (0, _removetrailingslash.removeTrailingSlash)(pathname); + const parsedAsPathname = as.startsWith('/') && (0, _parserelativeurl.parseRelativeUrl)(as).pathname; + // if we detected the path as app route during prefetching + // trigger hard navigation + if (this.components[pathname]?.__appRouter) { + handleHardNavigation({ + url: as, + router: this + }); + return new Promise(()=>{}); + } + const isMiddlewareRewrite = !!(parsedAsPathname && route !== parsedAsPathname && (!(0, _isdynamic.isDynamicRoute)(route) || !(0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(route))(parsedAsPathname))); + // we don't attempt resolve asPath when we need to execute + // middleware as the resolving will occur server-side + const isMiddlewareMatch = !options.shallow && await matchesMiddleware({ + asPath: as, + locale: nextState.locale, + router: this + }); + if (isQueryUpdating && isMiddlewareMatch) { + shouldResolveHref = false; + } + if (shouldResolveHref && pathname !== '/_error') { + ; + options._shouldResolveHref = true; + if (process.env.__NEXT_HAS_REWRITES && as.startsWith('/')) { + const rewritesResult = resolveRewrites((0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(cleanedAs, nextState.locale), true), pages, rewrites, query, (p)=>resolveDynamicRoute(p, pages), this.locales); + if (rewritesResult.externalDest) { + handleHardNavigation({ + url: as, + router: this + }); + return true; + } + if (!isMiddlewareMatch) { + resolvedAs = rewritesResult.asPath; + } + if (rewritesResult.matchedPage && rewritesResult.resolvedHref) { + // if this directly matches a page we need to update the href to + // allow the correct page chunk to be loaded + pathname = rewritesResult.resolvedHref; + parsed.pathname = (0, _addbasepath.addBasePath)(pathname); + if (!isMiddlewareMatch) { + url = (0, _formaturl.formatWithValidation)(parsed); + } + } + } else { + parsed.pathname = resolveDynamicRoute(pathname, pages); + if (parsed.pathname !== pathname) { + pathname = parsed.pathname; + parsed.pathname = (0, _addbasepath.addBasePath)(pathname); + if (!isMiddlewareMatch) { + url = (0, _formaturl.formatWithValidation)(parsed); + } + } + } + } + if (!(0, _islocalurl.isLocalURL)(as)) { + if (process.env.NODE_ENV !== 'production') { + throw Object.defineProperty(new Error(`Invalid href: "${url}" and as: "${as}", received relative href and external as` + `\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as`), "__NEXT_ERROR_CODE", { + value: "E380", + enumerable: false, + configurable: true + }); + } + handleHardNavigation({ + url: as, + router: this + }); + return false; + } + resolvedAs = (0, _removelocale.removeLocale)((0, _removebasepath.removeBasePath)(resolvedAs), nextState.locale); + route = (0, _removetrailingslash.removeTrailingSlash)(pathname); + let routeMatch = false; + if ((0, _isdynamic.isDynamicRoute)(route)) { + const parsedAs = (0, _parserelativeurl.parseRelativeUrl)(resolvedAs); + const asPathname = parsedAs.pathname; + const routeRegex = (0, _routeregex.getRouteRegex)(route); + routeMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(asPathname); + const shouldInterpolate = route === asPathname; + const interpolatedAs = shouldInterpolate ? (0, _interpolateas.interpolateAs)(route, asPathname, query) : {}; + if (!routeMatch || shouldInterpolate && !interpolatedAs.result) { + const missingParams = Object.keys(routeRegex.groups).filter((param)=>!query[param] && !routeRegex.groups[param].optional); + if (missingParams.length > 0 && !isMiddlewareMatch) { + if (process.env.NODE_ENV !== 'production') { + console.warn(`${shouldInterpolate ? `Interpolating href` : `Mismatching \`as\` and \`href\``} failed to manually provide ` + `the params: ${missingParams.join(', ')} in the \`href\`'s \`query\``); + } + throw Object.defineProperty(new Error((shouldInterpolate ? `The provided \`href\` (${url}) value is missing query values (${missingParams.join(', ')}) to be interpolated properly. ` : `The provided \`as\` value (${asPathname}) is incompatible with the \`href\` value (${route}). `) + `Read more: https://nextjs.org/docs/messages/${shouldInterpolate ? 'href-interpolation-failed' : 'incompatible-href-as'}`), "__NEXT_ERROR_CODE", { + value: "E344", + enumerable: false, + configurable: true + }); + } + } else if (shouldInterpolate) { + as = (0, _formaturl.formatWithValidation)(Object.assign({}, parsedAs, { + pathname: interpolatedAs.result, + query: (0, _omit.omit)(query, interpolatedAs.params) + })); + } else { + // Merge params into `query`, overwriting any specified in search + Object.assign(query, routeMatch); + } + } + if (!isQueryUpdating) { + Router.events.emit('routeChangeStart', as, routeProps); + } + const isErrorRoute = this.pathname === '/404' || this.pathname === '/_error'; + try { + let routeInfo = await this.getRouteInfo({ + route, + pathname, + query, + as, + resolvedAs, + routeProps, + locale: nextState.locale, + isPreview: nextState.isPreview, + hasMiddleware: isMiddlewareMatch, + unstable_skipClientCache: options.unstable_skipClientCache, + isQueryUpdating: isQueryUpdating && !this.isFallback, + isMiddlewareRewrite + }); + if (!isQueryUpdating && !options.shallow) { + await this._bfl(as, 'resolvedAs' in routeInfo ? routeInfo.resolvedAs : undefined, nextState.locale); + } + if ('route' in routeInfo && isMiddlewareMatch) { + pathname = routeInfo.route || route; + route = pathname; + if (!routeProps.shallow) { + query = Object.assign({}, routeInfo.query || {}, query); + } + const cleanedParsedPathname = (0, _hasbasepath.hasBasePath)(parsed.pathname) ? (0, _removebasepath.removeBasePath)(parsed.pathname) : parsed.pathname; + if (routeMatch && pathname !== cleanedParsedPathname) { + Object.keys(routeMatch).forEach((key)=>{ + if (routeMatch && query[key] === routeMatch[key]) { + delete query[key]; + } + }); + } + if ((0, _isdynamic.isDynamicRoute)(pathname)) { + const prefixedAs = !routeProps.shallow && routeInfo.resolvedAs ? routeInfo.resolvedAs : (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(new URL(as, location.href).pathname, nextState.locale), true); + let rewriteAs = prefixedAs; + if ((0, _hasbasepath.hasBasePath)(rewriteAs)) { + rewriteAs = (0, _removebasepath.removeBasePath)(rewriteAs); + } + if (process.env.__NEXT_I18N_SUPPORT) { + const localeResult = (0, _normalizelocalepath.normalizeLocalePath)(rewriteAs, this.locales); + nextState.locale = localeResult.detectedLocale || nextState.locale; + rewriteAs = localeResult.pathname; + } + const routeRegex = (0, _routeregex.getRouteRegex)(pathname); + const curRouteMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(new URL(rewriteAs, location.href).pathname); + if (curRouteMatch) { + Object.assign(query, curRouteMatch); + } + } + } + // If the routeInfo brings a redirect we simply apply it. + if ('type' in routeInfo) { + if (routeInfo.type === 'redirect-internal') { + return this.change(method, routeInfo.newUrl, routeInfo.newAs, options); + } else { + handleHardNavigation({ + url: routeInfo.destination, + router: this + }); + return new Promise(()=>{}); + } + } + const component = routeInfo.Component; + if (component && component.unstable_scriptLoader) { + const scripts = [].concat(component.unstable_scriptLoader()); + scripts.forEach((script)=>{ + (0, _script.handleClientScriptLoad)(script.props); + }); + } + // handle redirect on client-transition + if ((routeInfo.__N_SSG || routeInfo.__N_SSP) && routeInfo.props) { + if (routeInfo.props.pageProps && routeInfo.props.pageProps.__N_REDIRECT) { + // Use the destination from redirect without adding locale + options.locale = false; + const destination = routeInfo.props.pageProps.__N_REDIRECT; + // check if destination is internal (resolves to a page) and attempt + // client-navigation if it is falling back to hard navigation if + // it's not + if (destination.startsWith('/') && routeInfo.props.pageProps.__N_REDIRECT_BASE_PATH !== false) { + const parsedHref = (0, _parserelativeurl.parseRelativeUrl)(destination); + parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages); + const { url: newUrl, as: newAs } = prepareUrlAs(this, destination, destination); + return this.change(method, newUrl, newAs, options); + } + handleHardNavigation({ + url: destination, + router: this + }); + return new Promise(()=>{}); + } + nextState.isPreview = !!routeInfo.props.__N_PREVIEW; + // handle SSG data 404 + if (routeInfo.props.notFound === SSG_DATA_NOT_FOUND) { + let notFoundRoute; + try { + await this.fetchComponent('/404'); + notFoundRoute = '/404'; + } catch (_) { + notFoundRoute = '/_error'; + } + routeInfo = await this.getRouteInfo({ + route: notFoundRoute, + pathname: notFoundRoute, + query, + as, + resolvedAs, + routeProps: { + shallow: false + }, + locale: nextState.locale, + isPreview: nextState.isPreview, + isNotFound: true + }); + if ('type' in routeInfo) { + throw Object.defineProperty(new Error(`Unexpected middleware effect on /404`), "__NEXT_ERROR_CODE", { + value: "E158", + enumerable: false, + configurable: true + }); + } + } + } + if (isQueryUpdating && this.pathname === '/_error' && self.__NEXT_DATA__.props?.pageProps?.statusCode === 500 && routeInfo.props?.pageProps) { + // ensure statusCode is still correct for static 500 page + // when updating query information + routeInfo.props.pageProps.statusCode = 500; + } + // shallow routing is only allowed for same page URL changes. + const isValidShallowRoute = options.shallow && nextState.route === (routeInfo.route ?? route); + const shouldScroll = options.scroll ?? (!isQueryUpdating && !isValidShallowRoute); + const resetScroll = shouldScroll ? { + x: 0, + y: 0 + } : null; + const upcomingScrollState = forcedScroll ?? resetScroll; + // the new state that the router gonna set + const upcomingRouterState = { + ...nextState, + route, + pathname, + query, + asPath: cleanedAs, + isFallback: false + }; + // When the page being rendered is the 404 page, we should only update the + // query parameters. Route changes here might add the basePath when it + // wasn't originally present. This is also why this block is before the + // below `changeState` call which updates the browser's history (changing + // the URL). + if (isQueryUpdating && isErrorRoute) { + routeInfo = await this.getRouteInfo({ + route: this.pathname, + pathname: this.pathname, + query, + as, + resolvedAs, + routeProps: { + shallow: false + }, + locale: nextState.locale, + isPreview: nextState.isPreview, + isQueryUpdating: isQueryUpdating && !this.isFallback + }); + if ('type' in routeInfo) { + throw Object.defineProperty(new Error(`Unexpected middleware effect on ${this.pathname}`), "__NEXT_ERROR_CODE", { + value: "E225", + enumerable: false, + configurable: true + }); + } + if (this.pathname === '/_error' && self.__NEXT_DATA__.props?.pageProps?.statusCode === 500 && routeInfo.props?.pageProps) { + // ensure statusCode is still correct for static 500 page + // when updating query information + routeInfo.props.pageProps.statusCode = 500; + } + try { + await this.set(upcomingRouterState, routeInfo, upcomingScrollState); + } catch (err) { + if ((0, _iserror.default)(err) && err.cancelled) { + Router.events.emit('routeChangeError', err, cleanedAs, routeProps); + } + throw err; + } + return true; + } + Router.events.emit('beforeHistoryChange', as, routeProps); + this.changeState(method, url, as, options); + // for query updates we can skip it if the state is unchanged and we don't + // need to scroll + // https://github.com/vercel/next.js/issues/37139 + const canSkipUpdating = isQueryUpdating && !upcomingScrollState && !readyStateChange && !localeChange && (0, _comparestates.compareRouterStates)(upcomingRouterState, this.state); + if (!canSkipUpdating) { + try { + await this.set(upcomingRouterState, routeInfo, upcomingScrollState); + } catch (e) { + if (e.cancelled) routeInfo.error = routeInfo.error || e; + else throw e; + } + if (routeInfo.error) { + if (!isQueryUpdating) { + Router.events.emit('routeChangeError', routeInfo.error, cleanedAs, routeProps); + } + throw routeInfo.error; + } + if (process.env.__NEXT_I18N_SUPPORT) { + if (nextState.locale) { + document.documentElement.lang = nextState.locale; + } + } + if (!isQueryUpdating) { + Router.events.emit('routeChangeComplete', as, routeProps); + } + // A hash mark # is the optional last part of a URL + const hashRegex = /#.+$/; + if (shouldScroll && hashRegex.test(as)) { + this.scrollToHash(as); + } + } + return true; + } catch (err) { + if ((0, _iserror.default)(err) && err.cancelled) { + return false; + } + throw err; + } + } + changeState(method, url, as, options = {}) { + if (process.env.NODE_ENV !== 'production') { + if (typeof window.history === 'undefined') { + console.error(`Warning: window.history is not available.`); + return; + } + if (typeof window.history[method] === 'undefined') { + console.error(`Warning: window.history.${method} is not available`); + return; + } + } + if (method !== 'pushState' || (0, _utils.getURL)() !== as) { + this._shallow = options.shallow; + window.history[method]({ + url, + as, + options, + __N: true, + key: this._key = method !== 'pushState' ? this._key : createKey() + }, // Most browsers currently ignores this parameter, although they may use it in the future. + // Passing the empty string here should be safe against future changes to the method. + // https://developer.mozilla.org/docs/Web/API/History/replaceState + '', as); + } + } + async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) { + if (err.cancelled) { + // bubble up cancellation errors + throw err; + } + if ((0, _routeloader.isAssetError)(err) || loadErrorFail) { + Router.events.emit('routeChangeError', err, as, routeProps); + // If we can't load the page it could be one of following reasons + // 1. Page doesn't exists + // 2. Page does exist in a different zone + // 3. Internal error while loading the page + // So, doing a hard reload is the proper way to deal with this. + handleHardNavigation({ + url: as, + router: this + }); + // Changing the URL doesn't block executing the current code path. + // So let's throw a cancellation error stop the routing logic. + throw buildCancellationError(); + } + console.error(err); + try { + let props; + const { page: Component, styleSheets } = await this.fetchComponent('/_error'); + const routeInfo = { + props, + Component, + styleSheets, + err, + error: err + }; + if (!routeInfo.props) { + try { + routeInfo.props = await this.getInitialProps(Component, { + err, + pathname, + query + }); + } catch (gipErr) { + console.error('Error in error page `getInitialProps`: ', gipErr); + routeInfo.props = {}; + } + } + return routeInfo; + } catch (routeInfoErr) { + return this.handleRouteInfoError((0, _iserror.default)(routeInfoErr) ? routeInfoErr : Object.defineProperty(new Error(routeInfoErr + ''), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }), pathname, query, as, routeProps, true); + } + } + async getRouteInfo({ route: requestedRoute, pathname, query, as, resolvedAs, routeProps, locale, hasMiddleware, isPreview, unstable_skipClientCache, isQueryUpdating, isMiddlewareRewrite, isNotFound }) { + /** + * This `route` binding can change if there's a rewrite + * so we keep a reference to the original requested route + * so we can store the cache for it and avoid re-requesting every time + * for shallow routing purposes. + */ let route = requestedRoute; + try { + let existingInfo = this.components[route]; + if (routeProps.shallow && existingInfo && this.route === route) { + return existingInfo; + } + const handleCancelled = getCancelledHandler({ + route, + router: this + }); + if (hasMiddleware) { + existingInfo = undefined; + } + let cachedRouteInfo = existingInfo && !('initial' in existingInfo) && process.env.NODE_ENV !== 'development' ? existingInfo : undefined; + const isBackground = isQueryUpdating; + const fetchNextDataParams = { + dataHref: this.pageLoader.getDataHref({ + href: (0, _formaturl.formatWithValidation)({ + pathname, + query + }), + skipInterpolation: true, + asPath: isNotFound ? '/404' : resolvedAs, + locale + }), + hasMiddleware: true, + isServerRender: this.isSsr, + parseJSON: true, + inflightCache: isBackground ? this.sbc : this.sdc, + persistCache: !isPreview, + isPrefetch: false, + unstable_skipClientCache, + isBackground + }; + let data = isQueryUpdating && !isMiddlewareRewrite ? null : await withMiddlewareEffects({ + fetchData: ()=>fetchNextData(fetchNextDataParams), + asPath: isNotFound ? '/404' : resolvedAs, + locale: locale, + router: this + }).catch((err)=>{ + // we don't hard error during query updating + // as it's un-necessary and doesn't need to be fatal + // unless it is a fallback route and the props can't + // be loaded + if (isQueryUpdating) { + return null; + } + throw err; + }); + // when rendering error routes we don't apply middleware + // effects + if (data && (pathname === '/_error' || pathname === '/404')) { + data.effect = undefined; + } + if (isQueryUpdating) { + if (!data) { + data = { + json: self.__NEXT_DATA__.props + }; + } else { + data.json = self.__NEXT_DATA__.props; + } + } + handleCancelled(); + if (data?.effect?.type === 'redirect-internal' || data?.effect?.type === 'redirect-external') { + return data.effect; + } + if (data?.effect?.type === 'rewrite') { + const resolvedRoute = (0, _removetrailingslash.removeTrailingSlash)(data.effect.resolvedHref); + const pages = await this.pageLoader.getPageList(); + // during query updating the page must match although during + // client-transition a redirect that doesn't match a page + // can be returned and this should trigger a hard navigation + // which is valid for incremental migration + if (!isQueryUpdating || pages.includes(resolvedRoute)) { + route = resolvedRoute; + pathname = data.effect.resolvedHref; + query = { + ...query, + ...data.effect.parsedAs.query + }; + resolvedAs = (0, _removebasepath.removeBasePath)((0, _normalizelocalepath.normalizeLocalePath)(data.effect.parsedAs.pathname, this.locales).pathname); + // Check again the cache with the new destination. + existingInfo = this.components[route]; + if (routeProps.shallow && existingInfo && this.route === route && !hasMiddleware) { + // If we have a match with the current route due to rewrite, + // we can copy the existing information to the rewritten one. + // Then, we return the information along with the matched route. + return { + ...existingInfo, + route + }; + } + } + } + if ((0, _isapiroute.isAPIRoute)(route)) { + handleHardNavigation({ + url: as, + router: this + }); + return new Promise(()=>{}); + } + const routeInfo = cachedRouteInfo || await this.fetchComponent(route).then((res)=>({ + Component: res.page, + styleSheets: res.styleSheets, + __N_SSG: res.mod.__N_SSG, + __N_SSP: res.mod.__N_SSP + })); + if (process.env.NODE_ENV !== 'production') { + const { isValidElementType } = require('next/dist/compiled/react-is'); + if (!isValidElementType(routeInfo.Component)) { + throw Object.defineProperty(new Error(`The default export is not a React Component in page: "${pathname}"`), "__NEXT_ERROR_CODE", { + value: "E286", + enumerable: false, + configurable: true + }); + } + } + const wasBailedPrefetch = data?.response?.headers.get('x-middleware-skip'); + const shouldFetchData = routeInfo.__N_SSG || routeInfo.__N_SSP; + // For non-SSG prefetches that bailed before sending data + // we clear the cache to fetch full response + if (wasBailedPrefetch && data?.dataHref) { + delete this.sdc[data.dataHref]; + } + const { props, cacheKey } = await this._getData(async ()=>{ + if (shouldFetchData) { + if (data?.json && !wasBailedPrefetch) { + return { + cacheKey: data.cacheKey, + props: data.json + }; + } + const dataHref = data?.dataHref ? data.dataHref : this.pageLoader.getDataHref({ + href: (0, _formaturl.formatWithValidation)({ + pathname, + query + }), + asPath: resolvedAs, + locale + }); + const fetched = await fetchNextData({ + dataHref, + isServerRender: this.isSsr, + parseJSON: true, + inflightCache: wasBailedPrefetch ? {} : this.sdc, + persistCache: !isPreview, + isPrefetch: false, + unstable_skipClientCache + }); + return { + cacheKey: fetched.cacheKey, + props: fetched.json || {} + }; + } + return { + headers: {}, + props: await this.getInitialProps(routeInfo.Component, // we provide AppTree later so this needs to be `any` + { + pathname, + query, + asPath: as, + locale, + locales: this.locales, + defaultLocale: this.defaultLocale + }) + }; + }); + // Only bust the data cache for SSP routes although + // middleware can skip cache per request with + // x-middleware-cache: no-cache as well + if (routeInfo.__N_SSP && fetchNextDataParams.dataHref && cacheKey) { + delete this.sdc[cacheKey]; + } + // we kick off a HEAD request in the background + // when a non-prefetch request is made to signal revalidation + if (!this.isPreview && routeInfo.__N_SSG && process.env.NODE_ENV !== 'development' && !isQueryUpdating) { + fetchNextData(Object.assign({}, fetchNextDataParams, { + isBackground: true, + persistCache: false, + inflightCache: this.sbc + })).catch(()=>{}); + } + props.pageProps = Object.assign({}, props.pageProps); + routeInfo.props = props; + routeInfo.route = route; + routeInfo.query = query; + routeInfo.resolvedAs = resolvedAs; + this.components[route] = routeInfo; + return routeInfo; + } catch (err) { + return this.handleRouteInfoError((0, _iserror.getProperError)(err), pathname, query, as, routeProps); + } + } + set(state, data, resetScroll) { + this.state = state; + return this.sub(data, this.components['/_app'].Component, resetScroll); + } + /** + * Callback to execute before replacing router state + * @param cb callback to be executed + */ beforePopState(cb) { + this._bps = cb; + } + onlyAHashChange(as) { + if (!this.asPath) return false; + const [oldUrlNoHash, oldHash] = this.asPath.split('#', 2); + const [newUrlNoHash, newHash] = as.split('#', 2); + // Makes sure we scroll to the provided hash if the url/hash are the same + if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) { + return true; + } + // If the urls are change, there's more than a hash change + if (oldUrlNoHash !== newUrlNoHash) { + return false; + } + // If the hash has changed, then it's a hash only change. + // This check is necessary to handle both the enter and + // leave hash === '' cases. The identity case falls through + // and is treated as a next reload. + return oldHash !== newHash; + } + scrollToHash(as) { + const [, hash = ''] = as.split('#', 2); + (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{ + // Scroll to top if the hash is just `#` with no value or `#top` + // To mirror browsers + if (hash === '' || hash === 'top') { + window.scrollTo(0, 0); + return; + } + // Decode hash to make non-latin anchor works. + const rawHash = decodeURIComponent(hash); + // First we check if the element by id is found + const idEl = document.getElementById(rawHash); + if (idEl) { + idEl.scrollIntoView(); + return; + } + // If there's no element with the id, we check the `name` property + // To mirror browsers + const nameEl = document.getElementsByName(rawHash)[0]; + if (nameEl) { + nameEl.scrollIntoView(); + } + }, { + onlyHashChange: this.onlyAHashChange(as) + }); + } + urlIsNew(asPath) { + return this.asPath !== asPath; + } + /** + * Prefetch page code, you may wait for the data during page rendering. + * This feature only works in production! + * @param url the href of prefetched page + * @param asPath the as path of the prefetched page + */ async prefetch(url, asPath = url, options = {}) { + // Prefetch is not supported in development mode because it would trigger on-demand-entries + if (process.env.NODE_ENV !== 'production') { + return; + } + if (typeof window !== 'undefined' && (0, _isbot.isBot)(window.navigator.userAgent)) { + // No prefetches for bots that render the link since they are typically navigating + // links via the equivalent of a hard navigation and hence never utilize these + // prefetches. + return; + } + let parsed = (0, _parserelativeurl.parseRelativeUrl)(url); + const urlPathname = parsed.pathname; + let { pathname, query } = parsed; + const originalPathname = pathname; + if (process.env.__NEXT_I18N_SUPPORT) { + if (options.locale === false) { + pathname = (0, _normalizelocalepath.normalizeLocalePath)(pathname, this.locales).pathname; + parsed.pathname = pathname; + url = (0, _formaturl.formatWithValidation)(parsed); + let parsedAs = (0, _parserelativeurl.parseRelativeUrl)(asPath); + const localePathResult = (0, _normalizelocalepath.normalizeLocalePath)(parsedAs.pathname, this.locales); + parsedAs.pathname = localePathResult.pathname; + options.locale = localePathResult.detectedLocale || this.defaultLocale; + asPath = (0, _formaturl.formatWithValidation)(parsedAs); + } + } + const pages = await this.pageLoader.getPageList(); + let resolvedAs = asPath; + const locale = typeof options.locale !== 'undefined' ? options.locale || undefined : this.locale; + const isMiddlewareMatch = await matchesMiddleware({ + asPath: asPath, + locale: locale, + router: this + }); + if (process.env.__NEXT_HAS_REWRITES && asPath.startsWith('/')) { + let rewrites; + ({ __rewrites: rewrites } = await (0, _routeloader.getClientBuildManifest)()); + const rewritesResult = resolveRewrites((0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(asPath, this.locale), true), pages, rewrites, parsed.query, (p)=>resolveDynamicRoute(p, pages), this.locales); + if (rewritesResult.externalDest) { + return; + } + if (!isMiddlewareMatch) { + resolvedAs = (0, _removelocale.removeLocale)((0, _removebasepath.removeBasePath)(rewritesResult.asPath), this.locale); + } + if (rewritesResult.matchedPage && rewritesResult.resolvedHref) { + // if this directly matches a page we need to update the href to + // allow the correct page chunk to be loaded + pathname = rewritesResult.resolvedHref; + parsed.pathname = pathname; + if (!isMiddlewareMatch) { + url = (0, _formaturl.formatWithValidation)(parsed); + } + } + } + parsed.pathname = resolveDynamicRoute(parsed.pathname, pages); + if ((0, _isdynamic.isDynamicRoute)(parsed.pathname)) { + pathname = parsed.pathname; + parsed.pathname = pathname; + Object.assign(query, (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(parsed.pathname))((0, _parsepath.parsePath)(asPath).pathname) || {}); + if (!isMiddlewareMatch) { + url = (0, _formaturl.formatWithValidation)(parsed); + } + } + const data = process.env.__NEXT_MIDDLEWARE_PREFETCH === 'strict' ? null : await withMiddlewareEffects({ + fetchData: ()=>fetchNextData({ + dataHref: this.pageLoader.getDataHref({ + href: (0, _formaturl.formatWithValidation)({ + pathname: originalPathname, + query + }), + skipInterpolation: true, + asPath: resolvedAs, + locale + }), + hasMiddleware: true, + isServerRender: false, + parseJSON: true, + inflightCache: this.sdc, + persistCache: !this.isPreview, + isPrefetch: true + }), + asPath: asPath, + locale: locale, + router: this + }); + /** + * If there was a rewrite we apply the effects of the rewrite on the + * current parameters for the prefetch. + */ if (data?.effect.type === 'rewrite') { + parsed.pathname = data.effect.resolvedHref; + pathname = data.effect.resolvedHref; + query = { + ...query, + ...data.effect.parsedAs.query + }; + resolvedAs = data.effect.parsedAs.pathname; + url = (0, _formaturl.formatWithValidation)(parsed); + } + /** + * If there is a redirect to an external destination then we don't have + * to prefetch content as it will be unused. + */ if (data?.effect.type === 'redirect-external') { + return; + } + const route = (0, _removetrailingslash.removeTrailingSlash)(pathname); + if (await this._bfl(asPath, resolvedAs, options.locale, true)) { + this.components[urlPathname] = { + __appRouter: true + }; + } + await Promise.all([ + this.pageLoader._isSsg(route).then((isSsg)=>{ + return isSsg ? fetchNextData({ + dataHref: data?.json ? data?.dataHref : this.pageLoader.getDataHref({ + href: url, + asPath: resolvedAs, + locale: locale + }), + isServerRender: false, + parseJSON: true, + inflightCache: this.sdc, + persistCache: !this.isPreview, + isPrefetch: true, + unstable_skipClientCache: options.unstable_skipClientCache || options.priority && !!process.env.__NEXT_OPTIMISTIC_CLIENT_CACHE + }).then(()=>false).catch(()=>false) : false; + }), + this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route) + ]); + } + async fetchComponent(route) { + const handleCancelled = getCancelledHandler({ + route, + router: this + }); + try { + const componentResult = await this.pageLoader.loadPage(route); + handleCancelled(); + return componentResult; + } catch (err) { + handleCancelled(); + throw err; + } + } + _getData(fn) { + let cancelled = false; + const cancel = ()=>{ + cancelled = true; + }; + this.clc = cancel; + return fn().then((data)=>{ + if (cancel === this.clc) { + this.clc = null; + } + if (cancelled) { + const err = Object.defineProperty(new Error('Loading initial props cancelled'), "__NEXT_ERROR_CODE", { + value: "E405", + enumerable: false, + configurable: true + }); + err.cancelled = true; + throw err; + } + return data; + }); + } + getInitialProps(Component, ctx) { + const { Component: App } = this.components['/_app']; + const AppTree = this._wrapApp(App); + ctx.AppTree = AppTree; + return (0, _utils.loadGetInitialProps)(App, { + AppTree, + Component, + router: this, + ctx + }); + } + get route() { + return this.state.route; + } + get pathname() { + return this.state.pathname; + } + get query() { + return this.state.query; + } + get asPath() { + return this.state.asPath; + } + get locale() { + return this.state.locale; + } + get isFallback() { + return this.state.isFallback; + } + get isPreview() { + return this.state.isPreview; + } +} + +//# sourceMappingURL=router.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/routes/app.js b/cli/app/node_modules/next/dist/shared/lib/router/routes/app.js new file mode 100644 index 00000000000..4dfcb602614 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/routes/app.js @@ -0,0 +1,122 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + isInterceptionAppRoute: null, + isNormalizedAppRoute: null, + parseAppRoute: null, + parseAppRouteSegment: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + isInterceptionAppRoute: function() { + return isInterceptionAppRoute; + }, + isNormalizedAppRoute: function() { + return isNormalizedAppRoute; + }, + parseAppRoute: function() { + return parseAppRoute; + }, + parseAppRouteSegment: function() { + return parseAppRouteSegment; + } +}); +const _invarianterror = require("../../invariant-error"); +const _getsegmentparam = require("../utils/get-segment-param"); +const _interceptionroutes = require("../utils/interception-routes"); +function parseAppRouteSegment(segment) { + if (segment === '') { + return null; + } + // Check if the segment starts with an interception marker + const interceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); + const param = (0, _getsegmentparam.getSegmentParam)(segment); + if (param) { + return { + type: 'dynamic', + name: segment, + param, + interceptionMarker + }; + } else if (segment.startsWith('(') && segment.endsWith(')')) { + return { + type: 'route-group', + name: segment, + interceptionMarker + }; + } else if (segment.startsWith('@')) { + return { + type: 'parallel-route', + name: segment, + interceptionMarker + }; + } else { + return { + type: 'static', + name: segment, + interceptionMarker + }; + } +} +function isNormalizedAppRoute(route) { + return route.normalized; +} +function isInterceptionAppRoute(route) { + return route.interceptionMarker !== undefined && route.interceptingRoute !== undefined && route.interceptedRoute !== undefined; +} +function parseAppRoute(pathname, normalized) { + const pathnameSegments = pathname.split('/').filter(Boolean); + // Build segments array with static and dynamic segments + const segments = []; + // Parse if this is an interception route. + let interceptionMarker; + let interceptingRoute; + let interceptedRoute; + for (const segment of pathnameSegments){ + // Parse the segment into an AppSegment. + const appSegment = parseAppRouteSegment(segment); + if (!appSegment) { + continue; + } + if (normalized && (appSegment.type === 'route-group' || appSegment.type === 'parallel-route')) { + throw Object.defineProperty(new _invarianterror.InvariantError(`${pathname} is being parsed as a normalized route, but it has a route group or parallel route segment.`), "__NEXT_ERROR_CODE", { + value: "E923", + enumerable: false, + configurable: true + }); + } + segments.push(appSegment); + if (appSegment.interceptionMarker) { + const parts = pathname.split(appSegment.interceptionMarker); + if (parts.length !== 2) { + throw Object.defineProperty(new Error(`Invalid interception route: ${pathname}`), "__NEXT_ERROR_CODE", { + value: "E924", + enumerable: false, + configurable: true + }); + } + interceptingRoute = normalized ? parseAppRoute(parts[0], true) : parseAppRoute(parts[0], false); + interceptedRoute = normalized ? parseAppRoute(parts[1], true) : parseAppRoute(parts[1], false); + interceptionMarker = appSegment.interceptionMarker; + } + } + const dynamicSegments = segments.filter((segment)=>segment.type === 'dynamic'); + return { + normalized, + pathname, + segments, + dynamicSegments, + interceptionMarker, + interceptingRoute, + interceptedRoute + }; +} + +//# sourceMappingURL=app.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/add-locale.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/add-locale.js new file mode 100644 index 00000000000..23a05b9fc03 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/add-locale.js @@ -0,0 +1,28 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addLocale", { + enumerable: true, + get: function() { + return addLocale; + } +}); +const _addpathprefix = require("./add-path-prefix"); +const _pathhasprefix = require("./path-has-prefix"); +function addLocale(path, locale, defaultLocale, ignorePrefix) { + // If no locale was given or the locale is the default locale, we don't need + // to prefix the path. + if (!locale || locale === defaultLocale) return path; + const lower = path.toLowerCase(); + // If the path is an API path or the path already has the locale prefix, we + // don't need to prefix the path. + if (!ignorePrefix) { + if ((0, _pathhasprefix.pathHasPrefix)(lower, '/api')) return path; + if ((0, _pathhasprefix.pathHasPrefix)(lower, `/${locale.toLowerCase()}`)) return path; + } + // Add the locale prefix to the path. + return (0, _addpathprefix.addPathPrefix)(path, `/${locale}`); +} + +//# sourceMappingURL=add-locale.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js new file mode 100644 index 00000000000..03517d94452 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addPathPrefix", { + enumerable: true, + get: function() { + return addPathPrefix; + } +}); +const _parsepath = require("./parse-path"); +function addPathPrefix(path, prefix) { + if (!path.startsWith('/') || !prefix) { + return path; + } + const { pathname, query, hash } = (0, _parsepath.parsePath)(path); + return `${prefix}${pathname}${query}${hash}`; +} + +//# sourceMappingURL=add-path-prefix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js new file mode 100644 index 00000000000..a946497970d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/add-path-suffix.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "addPathSuffix", { + enumerable: true, + get: function() { + return addPathSuffix; + } +}); +const _parsepath = require("./parse-path"); +function addPathSuffix(path, suffix) { + if (!path.startsWith('/') || !suffix) { + return path; + } + const { pathname, query, hash } = (0, _parsepath.parsePath)(path); + return `${pathname}${suffix}${query}${hash}`; +} + +//# sourceMappingURL=add-path-suffix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/app-paths.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/app-paths.js new file mode 100644 index 00000000000..4e7b1f0f575 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/app-paths.js @@ -0,0 +1,62 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + compareAppPaths: null, + normalizeAppPath: null, + normalizeRscURL: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + compareAppPaths: function() { + return compareAppPaths; + }, + normalizeAppPath: function() { + return normalizeAppPath; + }, + normalizeRscURL: function() { + return normalizeRscURL; + } +}); +const _ensureleadingslash = require("../../page-path/ensure-leading-slash"); +const _segment = require("../../segment"); +function normalizeAppPath(route) { + return (0, _ensureleadingslash.ensureLeadingSlash)(route.split('/').reduce((pathname, segment, index, segments)=>{ + // Empty segments are ignored. + if (!segment) { + return pathname; + } + // Groups are ignored. + if ((0, _segment.isGroupSegment)(segment)) { + return pathname; + } + // Parallel segments are ignored. + if (segment[0] === '@') { + return pathname; + } + // The last segment (if it's a leaf) should be ignored. + if ((segment === 'page' || segment === 'route') && index === segments.length - 1) { + return pathname; + } + return `${pathname}/${segment}`; + }, '')); +} +function compareAppPaths(a, b) { + const aHasSlot = a.includes('/@'); + const bHasSlot = b.includes('/@'); + if (aHasSlot && !bHasSlot) return -1; + if (!aHasSlot && bHasSlot) return 1; + return a.localeCompare(b); +} +function normalizeRscURL(url) { + return url.replace(/\.rsc($|\?)/, // $1 ensures `?` is preserved + '$1'); +} + +//# sourceMappingURL=app-paths.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js new file mode 100644 index 00000000000..80d01c2d8fb --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/as-path-to-search-params.js @@ -0,0 +1,17 @@ +// Convert router.asPath to a URLSearchParams object +// example: /dynamic/[slug]?foo=bar -> { foo: 'bar' } +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "asPathToSearchParams", { + enumerable: true, + get: function() { + return asPathToSearchParams; + } +}); +function asPathToSearchParams(asPath) { + return new URL(asPath, 'http://n').searchParams; +} + +//# sourceMappingURL=as-path-to-search-params.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js new file mode 100644 index 00000000000..6ea90cd6ca3 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/cache-busting-search-param.js @@ -0,0 +1,24 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "computeCacheBustingSearchParam", { + enumerable: true, + get: function() { + return computeCacheBustingSearchParam; + } +}); +const _hash = require("../../hash"); +function computeCacheBustingSearchParam(prefetchHeader, segmentPrefetchHeader, stateTreeHeader, nextUrlHeader) { + if ((prefetchHeader === undefined || prefetchHeader === '0') && segmentPrefetchHeader === undefined && stateTreeHeader === undefined && nextUrlHeader === undefined) { + return ''; + } + return (0, _hash.hexHash)([ + prefetchHeader || '0', + segmentPrefetchHeader || '0', + stateTreeHeader || '0', + nextUrlHeader || '0' + ].join(',')); +} + +//# sourceMappingURL=cache-busting-search-param.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/compare-states.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/compare-states.js new file mode 100644 index 00000000000..18c6ec6f8c1 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/compare-states.js @@ -0,0 +1,34 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "compareRouterStates", { + enumerable: true, + get: function() { + return compareRouterStates; + } +}); +function compareRouterStates(a, b) { + const stateKeys = Object.keys(a); + if (stateKeys.length !== Object.keys(b).length) return false; + for(let i = stateKeys.length; i--;){ + const key = stateKeys[i]; + if (key === 'query') { + const queryKeys = Object.keys(a.query); + if (queryKeys.length !== Object.keys(b.query).length) { + return false; + } + for(let j = queryKeys.length; j--;){ + const queryKey = queryKeys[j]; + if (!b.query.hasOwnProperty(queryKey) || a.query[queryKey] !== b.query[queryKey]) { + return false; + } + } + } else if (!b.hasOwnProperty(key) || a[key] !== b[key]) { + return false; + } + } + return true; +} + +//# sourceMappingURL=compare-states.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js new file mode 100644 index 00000000000..debf1dea642 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "disableSmoothScrollDuringRouteTransition", { + enumerable: true, + get: function() { + return disableSmoothScrollDuringRouteTransition; + } +}); +const _warnonce = require("../../utils/warn-once"); +function disableSmoothScrollDuringRouteTransition(fn, options = {}) { + // if only the hash is changed, we don't need to disable smooth scrolling + // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX + if (options.onlyHashChange) { + fn(); + return; + } + const htmlElement = document.documentElement; + const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth'; + if (!hasDataAttribute) { + // Warn if smooth scrolling is detected but no data attribute is present + if (process.env.NODE_ENV === 'development' && getComputedStyle(htmlElement).scrollBehavior === 'smooth') { + (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `<html>` element. To disable smooth scrolling during route transitions, ' + 'add `data-scroll-behavior="smooth"` to your <html> element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior'); + } + // No smooth scrolling configured, run directly without style manipulation + fn(); + return; + } + // Proceed with temporarily disabling smooth scrolling + const existing = htmlElement.style.scrollBehavior; + htmlElement.style.scrollBehavior = 'auto'; + if (!options.dontForceLayout) { + // In Chrome-based browsers we need to force reflow before calling `scrollTo`. + // Otherwise it will not pickup the change in scrollBehavior + // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042 + htmlElement.getClientRects(); + } + fn(); + htmlElement.style.scrollBehavior = existing; +} + +//# sourceMappingURL=disable-smooth-scroll.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js new file mode 100644 index 00000000000..a11eb8e17b5 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/escape-path-delimiters.js @@ -0,0 +1,16 @@ +// escape delimiters used by path-to-regexp +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return escapePathDelimiters; + } +}); +function escapePathDelimiters(segment, escapeEncoded) { + return segment.replace(new RegExp(`([/#?]${escapeEncoded ? '|%(2f|23|3f|5c)' : ''})`, 'gi'), (char)=>encodeURIComponent(char)); +} + +//# sourceMappingURL=escape-path-delimiters.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js new file mode 100644 index 00000000000..b5cd1c940ba --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js @@ -0,0 +1,27 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "formatNextPathnameInfo", { + enumerable: true, + get: function() { + return formatNextPathnameInfo; + } +}); +const _removetrailingslash = require("./remove-trailing-slash"); +const _addpathprefix = require("./add-path-prefix"); +const _addpathsuffix = require("./add-path-suffix"); +const _addlocale = require("./add-locale"); +function formatNextPathnameInfo(info) { + let pathname = (0, _addlocale.addLocale)(info.pathname, info.locale, info.buildId ? undefined : info.defaultLocale, info.ignorePrefix); + if (info.buildId || !info.trailingSlash) { + pathname = (0, _removetrailingslash.removeTrailingSlash)(pathname); + } + if (info.buildId) { + pathname = (0, _addpathsuffix.addPathSuffix)((0, _addpathprefix.addPathPrefix)(pathname, `/_next/data/${info.buildId}`), info.pathname === '/' ? 'index.json' : '.json'); + } + pathname = (0, _addpathprefix.addPathPrefix)(pathname, info.basePath); + return !info.buildId && info.trailingSlash ? !pathname.endsWith('/') ? (0, _addpathsuffix.addPathSuffix)(pathname, '/') : pathname : (0, _removetrailingslash.removeTrailingSlash)(pathname); +} + +//# sourceMappingURL=format-next-pathname-info.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/format-url.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/format-url.js new file mode 100644 index 00000000000..820095f7f12 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/format-url.js @@ -0,0 +1,111 @@ +// Format function modified from nodejs +// Copyright Joyent, Inc. and other Node contributors. +// +// Permission is hereby granted, free of charge, to any person obtaining a +// copy of this software and associated documentation files (the +// "Software"), to deal in the Software without restriction, including +// without limitation the rights to use, copy, modify, merge, publish, +// distribute, sublicense, and/or sell copies of the Software, and to permit +// persons to whom the Software is furnished to do so, subject to the +// following conditions: +// +// The above copyright notice and this permission notice shall be included +// in all copies or substantial portions of the Software. +// +// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS +// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN +// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR +// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE +// USE OR OTHER DEALINGS IN THE SOFTWARE. +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + formatUrl: null, + formatWithValidation: null, + urlObjectKeys: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + formatUrl: function() { + return formatUrl; + }, + formatWithValidation: function() { + return formatWithValidation; + }, + urlObjectKeys: function() { + return urlObjectKeys; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _querystring = /*#__PURE__*/ _interop_require_wildcard._(require("./querystring")); +const slashedProtocols = /https?|ftp|gopher|file/; +function formatUrl(urlObj) { + let { auth, hostname } = urlObj; + let protocol = urlObj.protocol || ''; + let pathname = urlObj.pathname || ''; + let hash = urlObj.hash || ''; + let query = urlObj.query || ''; + let host = false; + auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : ''; + if (urlObj.host) { + host = auth + urlObj.host; + } else if (hostname) { + host = auth + (~hostname.indexOf(':') ? `[${hostname}]` : hostname); + if (urlObj.port) { + host += ':' + urlObj.port; + } + } + if (query && typeof query === 'object') { + query = String(_querystring.urlQueryToSearchParams(query)); + } + let search = urlObj.search || query && `?${query}` || ''; + if (protocol && !protocol.endsWith(':')) protocol += ':'; + if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) { + host = '//' + (host || ''); + if (pathname && pathname[0] !== '/') pathname = '/' + pathname; + } else if (!host) { + host = ''; + } + if (hash && hash[0] !== '#') hash = '#' + hash; + if (search && search[0] !== '?') search = '?' + search; + pathname = pathname.replace(/[?#]/g, encodeURIComponent); + search = search.replace('#', '%23'); + return `${protocol}${host}${pathname}${search}${hash}`; +} +const urlObjectKeys = [ + 'auth', + 'hash', + 'host', + 'hostname', + 'href', + 'path', + 'pathname', + 'port', + 'protocol', + 'query', + 'search', + 'slashes' +]; +function formatWithValidation(url) { + if (process.env.NODE_ENV === 'development') { + if (url !== null && typeof url === 'object') { + Object.keys(url).forEach((key)=>{ + if (!urlObjectKeys.includes(key)) { + console.warn(`Unknown key passed via urlObject into url.format: ${key}`); + } + }); + } + } + return formatUrl(url); +} + +//# sourceMappingURL=format-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js new file mode 100644 index 00000000000..922779080cf --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-asset-path-from-route.js @@ -0,0 +1,18 @@ +// Translates a logical route into its pages asset path (relative from a common prefix) +// "asset path" being its javascript file, data file, prerendered html,... +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return getAssetPathFromRoute; + } +}); +function getAssetPathFromRoute(route, ext = '') { + const path = route === '/' ? '/index' : /^\/index(\/|$)/.test(route) ? `/index${route}` : route; + return path + ext; +} + +//# sourceMappingURL=get-asset-path-from-route.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js new file mode 100644 index 00000000000..e2847d23257 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-dynamic-param.js @@ -0,0 +1,174 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + PARAMETER_PATTERN: null, + getDynamicParam: null, + interpolateParallelRouteParams: null, + parseMatchedParameter: null, + parseParameter: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + PARAMETER_PATTERN: function() { + return PARAMETER_PATTERN; + }, + getDynamicParam: function() { + return getDynamicParam; + }, + interpolateParallelRouteParams: function() { + return interpolateParallelRouteParams; + }, + parseMatchedParameter: function() { + return parseMatchedParameter; + }, + parseParameter: function() { + return parseParameter; + } +}); +const _invarianterror = require("../../invariant-error"); +const _parseloadertree = require("./parse-loader-tree"); +const _app = require("../routes/app"); +const _resolveparamvalue = require("./resolve-param-value"); +/** + * Gets the value of a param from the params object. This correctly handles the + * case where the param is a fallback route param and encodes the resulting + * value. + * + * @param interpolatedParams - The params object. + * @param segmentKey - The key of the segment. + * @param fallbackRouteParams - The fallback route params. + * @returns The value of the param. + */ function getParamValue(interpolatedParams, segmentKey, fallbackRouteParams) { + let value = interpolatedParams[segmentKey]; + if (fallbackRouteParams?.has(segmentKey)) { + // We know that the fallback route params has the segment key because we + // checked that above. + const [searchValue] = fallbackRouteParams.get(segmentKey); + value = searchValue; + } else if (Array.isArray(value)) { + value = value.map((i)=>encodeURIComponent(i)); + } else if (typeof value === 'string') { + value = encodeURIComponent(value); + } + return value; +} +function interpolateParallelRouteParams(loaderTree, params, pagePath, fallbackRouteParams) { + const interpolated = structuredClone(params); + // Stack-based traversal with depth tracking + const stack = [ + { + tree: loaderTree, + depth: 0 + } + ]; + // Parse the route from the provided page path. + const route = (0, _app.parseAppRoute)(pagePath, true); + while(stack.length > 0){ + const { tree, depth } = stack.pop(); + const { segment, parallelRoutes } = (0, _parseloadertree.parseLoaderTree)(tree); + const appSegment = (0, _app.parseAppRouteSegment)(segment); + if (appSegment?.type === 'dynamic' && !interpolated.hasOwnProperty(appSegment.param.paramName) && // If the param is in the fallback route params, we don't need to + // interpolate it because it's already marked as being unknown. + !fallbackRouteParams?.has(appSegment.param.paramName)) { + const { paramName, paramType } = appSegment.param; + const paramValue = (0, _resolveparamvalue.resolveParamValue)(paramName, paramType, depth, route, interpolated); + if (paramValue !== undefined) { + interpolated[paramName] = paramValue; + } else if (paramType !== 'optional-catchall') { + throw Object.defineProperty(new _invarianterror.InvariantError(`Could not resolve param value for segment: ${paramName}`), "__NEXT_ERROR_CODE", { + value: "E932", + enumerable: false, + configurable: true + }); + } + } + // Calculate next depth - increment if this is not a route group and not empty + let nextDepth = depth; + if (appSegment && appSegment.type !== 'route-group' && appSegment.type !== 'parallel-route') { + nextDepth++; + } + // Add all parallel routes to the stack for processing + for (const parallelRoute of Object.values(parallelRoutes)){ + stack.push({ + tree: parallelRoute, + depth: nextDepth + }); + } + } + return interpolated; +} +function getDynamicParam(interpolatedParams, segmentKey, dynamicParamType, fallbackRouteParams, staticSiblings) { + let value = getParamValue(interpolatedParams, segmentKey, fallbackRouteParams); + // handle the case where an optional catchall does not have a value, + // e.g. `/dashboard/[[...slug]]` when requesting `/dashboard` + if (!value || value.length === 0) { + if (dynamicParamType === 'oc') { + return { + param: segmentKey, + value: null, + type: dynamicParamType, + treeSegment: [ + segmentKey, + '', + dynamicParamType, + staticSiblings + ] + }; + } + throw Object.defineProperty(new _invarianterror.InvariantError(`Missing value for segment key: "${segmentKey}" with dynamic param type: ${dynamicParamType}`), "__NEXT_ERROR_CODE", { + value: "E864", + enumerable: false, + configurable: true + }); + } + const paramCacheKey = Array.isArray(value) ? value.join('/') : value; + return { + param: segmentKey, + // The value that is passed to user code. + value, + // The value that is rendered in the router tree. + // TODO: If the number of static siblings exceeds some threshold (e.g., + // dozens or hundreds), consider sending a Bloom filter instead of the full + // array to reduce payload size. The client would then use the Bloom filter + // to check membership with a small false positive rate. + treeSegment: [ + segmentKey, + paramCacheKey, + dynamicParamType, + staticSiblings + ], + type: dynamicParamType + }; +} +const PARAMETER_PATTERN = /^([^[]*)\[((?:\[[^\]]*\])|[^\]]+)\](.*)$/; +function parseParameter(param) { + const match = param.match(PARAMETER_PATTERN); + if (!match) { + return parseMatchedParameter(param); + } + return parseMatchedParameter(match[2]); +} +function parseMatchedParameter(param) { + const optional = param.startsWith('[') && param.endsWith(']'); + if (optional) { + param = param.slice(1, -1); + } + const repeat = param.startsWith('...'); + if (repeat) { + param = param.slice(3); + } + return { + key: param, + repeat, + optional + }; +} + +//# sourceMappingURL=get-dynamic-param.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js new file mode 100644 index 00000000000..fb0d7e4ea3c --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js @@ -0,0 +1,52 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getNextPathnameInfo", { + enumerable: true, + get: function() { + return getNextPathnameInfo; + } +}); +const _normalizelocalepath = require("../../i18n/normalize-locale-path"); +const _removepathprefix = require("./remove-path-prefix"); +const _pathhasprefix = require("./path-has-prefix"); +function getNextPathnameInfo(pathname, options) { + const { basePath, i18n, trailingSlash } = options.nextConfig ?? {}; + const info = { + pathname, + trailingSlash: pathname !== '/' ? pathname.endsWith('/') : trailingSlash + }; + if (basePath && (0, _pathhasprefix.pathHasPrefix)(info.pathname, basePath)) { + info.pathname = (0, _removepathprefix.removePathPrefix)(info.pathname, basePath); + info.basePath = basePath; + } + let pathnameNoDataPrefix = info.pathname; + if (info.pathname.startsWith('/_next/data/') && info.pathname.endsWith('.json')) { + const paths = info.pathname.replace(/^\/_next\/data\//, '').replace(/\.json$/, '').split('/'); + const buildId = paths[0]; + info.buildId = buildId; + pathnameNoDataPrefix = paths[1] !== 'index' ? `/${paths.slice(1).join('/')}` : '/'; + // update pathname with normalized if enabled although + // we use normalized to populate locale info still + if (options.parseData === true) { + info.pathname = pathnameNoDataPrefix; + } + } + // If provided, use the locale route normalizer to detect the locale instead + // of the function below. + if (i18n) { + let result = options.i18nProvider ? options.i18nProvider.analyze(info.pathname) : (0, _normalizelocalepath.normalizeLocalePath)(info.pathname, i18n.locales); + info.locale = result.detectedLocale; + info.pathname = result.pathname ?? info.pathname; + if (!result.detectedLocale && info.buildId) { + result = options.i18nProvider ? options.i18nProvider.analyze(pathnameNoDataPrefix) : (0, _normalizelocalepath.normalizeLocalePath)(pathnameNoDataPrefix, i18n.locales); + if (result.detectedLocale) { + info.locale = result.detectedLocale; + } + } + } + return info; +} + +//# sourceMappingURL=get-next-pathname-info.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js new file mode 100644 index 00000000000..1563892d4c8 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-route-from-asset-path.js @@ -0,0 +1,25 @@ +// Translate a pages asset path (relative from a common prefix) back into its logical route +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, // "asset path" being its javascript file, data file, prerendered html,... +"default", { + enumerable: true, + get: function() { + return getRouteFromAssetPath; + } +}); +const _isdynamic = require("./is-dynamic"); +function getRouteFromAssetPath(assetPath, ext = '') { + assetPath = assetPath.replace(/\\/g, '/'); + assetPath = ext && assetPath.endsWith(ext) ? assetPath.slice(0, -ext.length) : assetPath; + if (assetPath.startsWith('/index/') && !(0, _isdynamic.isDynamicRoute)(assetPath)) { + assetPath = assetPath.slice(6); + } else if (assetPath === '/index') { + assetPath = '/'; + } + return assetPath; +} + +//# sourceMappingURL=get-route-from-asset-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js new file mode 100644 index 00000000000..d3ad699ec92 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/get-segment-param.js @@ -0,0 +1,90 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getParamProperties: null, + getSegmentParam: null, + isCatchAll: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getParamProperties: function() { + return getParamProperties; + }, + getSegmentParam: function() { + return getSegmentParam; + }, + isCatchAll: function() { + return isCatchAll; + } +}); +const _interceptionroutes = require("./interception-routes"); +function getSegmentParam(segment) { + const interceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((marker)=>segment.startsWith(marker)); + // if an interception marker is part of the path segment, we need to jump ahead + // to the relevant portion for param parsing + if (interceptionMarker) { + segment = segment.slice(interceptionMarker.length); + } + if (segment.startsWith('[[...') && segment.endsWith(']]')) { + return { + // TODO-APP: Optional catchall does not currently work with parallel routes, + // so for now aren't handling a potential interception marker. + paramType: 'optional-catchall', + paramName: segment.slice(5, -2) + }; + } + if (segment.startsWith('[...') && segment.endsWith(']')) { + return { + paramType: interceptionMarker ? `catchall-intercepted-${interceptionMarker}` : 'catchall', + paramName: segment.slice(4, -1) + }; + } + if (segment.startsWith('[') && segment.endsWith(']')) { + return { + paramType: interceptionMarker ? `dynamic-intercepted-${interceptionMarker}` : 'dynamic', + paramName: segment.slice(1, -1) + }; + } + return null; +} +function isCatchAll(type) { + return type === 'catchall' || type === 'catchall-intercepted-(..)(..)' || type === 'catchall-intercepted-(.)' || type === 'catchall-intercepted-(..)' || type === 'catchall-intercepted-(...)' || type === 'optional-catchall'; +} +function getParamProperties(paramType) { + let repeat = false; + let optional = false; + switch(paramType){ + case 'catchall': + case 'catchall-intercepted-(..)(..)': + case 'catchall-intercepted-(.)': + case 'catchall-intercepted-(..)': + case 'catchall-intercepted-(...)': + repeat = true; + break; + case 'optional-catchall': + repeat = true; + optional = true; + break; + case 'dynamic': + case 'dynamic-intercepted-(..)(..)': + case 'dynamic-intercepted-(.)': + case 'dynamic-intercepted-(..)': + case 'dynamic-intercepted-(...)': + break; + default: + paramType; + } + return { + repeat, + optional + }; +} + +//# sourceMappingURL=get-segment-param.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/html-bots.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/html-bots.js new file mode 100644 index 00000000000..54a41f4c191 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/html-bots.js @@ -0,0 +1,17 @@ +// This regex contains the bots that we need to do a blocking render for and can't safely stream the response +// due to how they parse the DOM. For example, they might explicitly check for metadata in the `head` tag, so we can't stream metadata tags after the `head` was sent. +// Note: The pattern [\w-]+-Google captures all Google crawlers with "-Google" suffix (e.g., Mediapartners-Google, AdsBot-Google, Storebot-Google) +// as well as crawlers starting with "Google-" (e.g., Google-PageRenderer, Google-InspectionTool) +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "HTML_LIMITED_BOT_UA_RE", { + enumerable: true, + get: function() { + return HTML_LIMITED_BOT_UA_RE; + } +}); +const HTML_LIMITED_BOT_UA_RE = /[\w-]+-Google|Google-[\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight/i; + +//# sourceMappingURL=html-bots.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/index.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/index.js new file mode 100644 index 00000000000..42ad00cc11f --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/index.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getSortedRouteObjects: null, + getSortedRoutes: null, + isDynamicRoute: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getSortedRouteObjects: function() { + return _sortedroutes.getSortedRouteObjects; + }, + getSortedRoutes: function() { + return _sortedroutes.getSortedRoutes; + }, + isDynamicRoute: function() { + return _isdynamic.isDynamicRoute; + } +}); +const _sortedroutes = require("./sorted-routes"); +const _isdynamic = require("./is-dynamic"); + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js new file mode 100644 index 00000000000..df11076d37a --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/interception-prefix-from-param-type.js @@ -0,0 +1,33 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "interceptionPrefixFromParamType", { + enumerable: true, + get: function() { + return interceptionPrefixFromParamType; + } +}); +function interceptionPrefixFromParamType(paramType) { + switch(paramType){ + case 'catchall-intercepted-(..)(..)': + case 'dynamic-intercepted-(..)(..)': + return '(..)(..)'; + case 'catchall-intercepted-(.)': + case 'dynamic-intercepted-(.)': + return '(.)'; + case 'catchall-intercepted-(..)': + case 'dynamic-intercepted-(..)': + return '(..)'; + case 'catchall-intercepted-(...)': + case 'dynamic-intercepted-(...)': + return '(...)'; + case 'catchall': + case 'dynamic': + case 'optional-catchall': + default: + return null; + } +} + +//# sourceMappingURL=interception-prefix-from-param-type.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/interception-routes.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/interception-routes.js new file mode 100644 index 00000000000..597d80f385d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/interception-routes.js @@ -0,0 +1,108 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + INTERCEPTION_ROUTE_MARKERS: null, + extractInterceptionRouteInformation: null, + isInterceptionRouteAppPath: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + INTERCEPTION_ROUTE_MARKERS: function() { + return INTERCEPTION_ROUTE_MARKERS; + }, + extractInterceptionRouteInformation: function() { + return extractInterceptionRouteInformation; + }, + isInterceptionRouteAppPath: function() { + return isInterceptionRouteAppPath; + } +}); +const _apppaths = require("./app-paths"); +const INTERCEPTION_ROUTE_MARKERS = [ + '(..)(..)', + '(.)', + '(..)', + '(...)' +]; +function isInterceptionRouteAppPath(path) { + // TODO-APP: add more serious validation + return path.split('/').find((segment)=>INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m))) !== undefined; +} +function extractInterceptionRouteInformation(path) { + let interceptingRoute; + let marker; + let interceptedRoute; + for (const segment of path.split('/')){ + marker = INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); + if (marker) { + ; + [interceptingRoute, interceptedRoute] = path.split(marker, 2); + break; + } + } + if (!interceptingRoute || !marker || !interceptedRoute) { + throw Object.defineProperty(new Error(`Invalid interception route: ${path}. Must be in the format /<intercepting route>/(..|...|..)(..)/<intercepted route>`), "__NEXT_ERROR_CODE", { + value: "E269", + enumerable: false, + configurable: true + }); + } + interceptingRoute = (0, _apppaths.normalizeAppPath)(interceptingRoute) // normalize the path, e.g. /(blog)/feed -> /feed + ; + switch(marker){ + case '(.)': + // (.) indicates that we should match with sibling routes, so we just need to append the intercepted route to the intercepting route + if (interceptingRoute === '/') { + interceptedRoute = `/${interceptedRoute}`; + } else { + interceptedRoute = interceptingRoute + '/' + interceptedRoute; + } + break; + case '(..)': + // (..) indicates that we should match at one level up, so we need to remove the last segment of the intercepting route + if (interceptingRoute === '/') { + throw Object.defineProperty(new Error(`Invalid interception route: ${path}. Cannot use (..) marker at the root level, use (.) instead.`), "__NEXT_ERROR_CODE", { + value: "E207", + enumerable: false, + configurable: true + }); + } + interceptedRoute = interceptingRoute.split('/').slice(0, -1).concat(interceptedRoute).join('/'); + break; + case '(...)': + // (...) will match the route segment in the root directory, so we need to use the root directory to prepend the intercepted route + interceptedRoute = '/' + interceptedRoute; + break; + case '(..)(..)': + // (..)(..) indicates that we should match at two levels up, so we need to remove the last two segments of the intercepting route + const splitInterceptingRoute = interceptingRoute.split('/'); + if (splitInterceptingRoute.length <= 2) { + throw Object.defineProperty(new Error(`Invalid interception route: ${path}. Cannot use (..)(..) marker at the root level or one level up.`), "__NEXT_ERROR_CODE", { + value: "E486", + enumerable: false, + configurable: true + }); + } + interceptedRoute = splitInterceptingRoute.slice(0, -2).concat(interceptedRoute).join('/'); + break; + default: + throw Object.defineProperty(new Error('Invariant: unexpected marker'), "__NEXT_ERROR_CODE", { + value: "E112", + enumerable: false, + configurable: true + }); + } + return { + interceptingRoute, + interceptedRoute + }; +} + +//# sourceMappingURL=interception-routes.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js new file mode 100644 index 00000000000..1bf6dc9f3a6 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "interpolateAs", { + enumerable: true, + get: function() { + return interpolateAs; + } +}); +const _routematcher = require("./route-matcher"); +const _routeregex = require("./route-regex"); +function interpolateAs(route, asPathname, query) { + let interpolatedRoute = ''; + const dynamicRegex = (0, _routeregex.getRouteRegex)(route); + const dynamicGroups = dynamicRegex.groups; + const dynamicMatches = // Try to match the dynamic route against the asPath + (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : '') || // Fall back to reading the values from the href + // TODO: should this take priority; also need to change in the router. + query; + interpolatedRoute = route; + const params = Object.keys(dynamicGroups); + if (!params.every((param)=>{ + let value = dynamicMatches[param] || ''; + const { repeat, optional } = dynamicGroups[param]; + // support single-level catch-all + // TODO: more robust handling for user-error (passing `/`) + let replaced = `[${repeat ? '...' : ''}${param}]`; + if (optional) { + replaced = `${!value ? '/' : ''}[${replaced}]`; + } + if (repeat && !Array.isArray(value)) value = [ + value + ]; + return (optional || param in dynamicMatches) && // Interpolate group into data URL if present + (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// these values should be fully encoded instead of just + // path delimiter escaped since they are being inserted + // into the URL and we expect URL encoded segments + // when parsing dynamic route params + (segment)=>encodeURIComponent(segment)).join('/') : encodeURIComponent(value)) || '/'); + })) { + interpolatedRoute = '' // did not satisfy all requirements + ; + // n.b. We ignore this error because we handle warning for this case in + // development in the `<Link>` component directly. + } + return { + params, + result: interpolatedRoute + }; +} + +//# sourceMappingURL=interpolate-as.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/is-bot.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/is-bot.js new file mode 100644 index 00000000000..309bb78d706 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/is-bot.js @@ -0,0 +1,57 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HTML_LIMITED_BOT_UA_RE: null, + HTML_LIMITED_BOT_UA_RE_STRING: null, + getBotType: null, + isBot: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HTML_LIMITED_BOT_UA_RE: function() { + return _htmlbots.HTML_LIMITED_BOT_UA_RE; + }, + HTML_LIMITED_BOT_UA_RE_STRING: function() { + return HTML_LIMITED_BOT_UA_RE_STRING; + }, + getBotType: function() { + return getBotType; + }, + isBot: function() { + return isBot; + } +}); +const _htmlbots = require("./html-bots"); +// Bot crawler that will spin up a headless browser and execute JS. +// Only the main Googlebot search crawler executes JavaScript, not other Google crawlers. +// x-ref: https://developers.google.com/search/docs/crawling-indexing/google-common-crawlers +// This regex specifically matches "Googlebot" but NOT "Mediapartners-Google", "AdsBot-Google", etc. +const HEADLESS_BROWSER_BOT_UA_RE = /Googlebot(?!-)|Googlebot$/i; +const HTML_LIMITED_BOT_UA_RE_STRING = _htmlbots.HTML_LIMITED_BOT_UA_RE.source; +function isDomBotUA(userAgent) { + return HEADLESS_BROWSER_BOT_UA_RE.test(userAgent); +} +function isHtmlLimitedBotUA(userAgent) { + return _htmlbots.HTML_LIMITED_BOT_UA_RE.test(userAgent); +} +function isBot(userAgent) { + return isDomBotUA(userAgent) || isHtmlLimitedBotUA(userAgent); +} +function getBotType(userAgent) { + if (isDomBotUA(userAgent)) { + return 'dom'; + } + if (isHtmlLimitedBotUA(userAgent)) { + return 'html'; + } + return undefined; +} + +//# sourceMappingURL=is-bot.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js new file mode 100644 index 00000000000..77effe89665 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isDynamicRoute", { + enumerable: true, + get: function() { + return isDynamicRoute; + } +}); +const _interceptionroutes = require("./interception-routes"); +// Identify /.*[param].*/ in route string +const TEST_ROUTE = /\/[^/]*\[[^/]+\][^/]*(?=\/|$)/; +// Identify /[param]/ in route string +const TEST_STRICT_ROUTE = /\/\[[^/]+\](?=\/|$)/; +function isDynamicRoute(route, strict = true) { + if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) { + route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute; + } + if (strict) { + return TEST_STRICT_ROUTE.test(route); + } + return TEST_ROUTE.test(route); +} + +//# sourceMappingURL=is-dynamic.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/is-local-url.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/is-local-url.js new file mode 100644 index 00000000000..48a4d677c57 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/is-local-url.js @@ -0,0 +1,26 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "isLocalURL", { + enumerable: true, + get: function() { + return isLocalURL; + } +}); +const _utils = require("../../utils"); +const _hasbasepath = require("../../../../client/has-base-path"); +function isLocalURL(url) { + // prevent a hydration mismatch on href for url with anchor refs + if (!(0, _utils.isAbsoluteUrl)(url)) return true; + try { + // absolute urls can be local if they are on the same origin + const locationOrigin = (0, _utils.getLocationOrigin)(); + const resolved = new URL(url, locationOrigin); + return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname); + } catch (_) { + return false; + } +} + +//# sourceMappingURL=is-local-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js new file mode 100644 index 00000000000..285f4d2bb8c --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/middleware-route-matcher.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getMiddlewareRouteMatcher", { + enumerable: true, + get: function() { + return getMiddlewareRouteMatcher; + } +}); +const _preparedestination = require("./prepare-destination"); +function getMiddlewareRouteMatcher(matchers) { + return (pathname, req, query)=>{ + for (const matcher of matchers){ + const routeMatch = new RegExp(matcher.regexp).exec(pathname); + if (!routeMatch) { + continue; + } + if (matcher.has || matcher.missing) { + const hasParams = (0, _preparedestination.matchHas)(req, query, matcher.has, matcher.missing); + if (!hasParams) { + continue; + } + } + return true; + } + return false; + }; +} + +//# sourceMappingURL=middleware-route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/omit.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/omit.js new file mode 100644 index 00000000000..7b2bc1c0d19 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/omit.js @@ -0,0 +1,21 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "omit", { + enumerable: true, + get: function() { + return omit; + } +}); +function omit(object, keys) { + const omitted = {}; + Object.keys(object).forEach((key)=>{ + if (!keys.includes(key)) { + omitted[key] = object[key]; + } + }); + return omitted; +} + +//# sourceMappingURL=omit.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js new file mode 100644 index 00000000000..59305025601 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-loader-tree.js @@ -0,0 +1,30 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseLoaderTree", { + enumerable: true, + get: function() { + return parseLoaderTree; + } +}); +const _segment = require("../../segment"); +function parseLoaderTree(tree) { + const [segment, parallelRoutes, modules, staticSiblings] = tree; + const { layout, template } = modules; + let { page } = modules; + // a __DEFAULT__ segment means that this route didn't match any of the + // segments in the route, so we should use the default page + page = segment === _segment.DEFAULT_SEGMENT_KEY ? modules.defaultPage : page; + const conventionPath = layout?.[1] || template?.[1] || page?.[1]; + return { + page, + segment, + modules, + /* it can be either layout / template / page */ conventionPath, + parallelRoutes, + staticSiblings + }; +} + +//# sourceMappingURL=parse-loader-tree.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-path.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-path.js new file mode 100644 index 00000000000..f8230d414c3 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-path.js @@ -0,0 +1,33 @@ +/** + * Given a path this function will find the pathname, query and hash and return + * them. This is useful to parse full paths on the client side. + * @param path A path to parse e.g. /foo/bar?id=1#hash + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parsePath", { + enumerable: true, + get: function() { + return parsePath; + } +}); +function parsePath(path) { + const hashIndex = path.indexOf('#'); + const queryIndex = path.indexOf('?'); + const hasQuery = queryIndex > -1 && (hashIndex < 0 || queryIndex < hashIndex); + if (hasQuery || hashIndex > -1) { + return { + pathname: path.substring(0, hasQuery ? queryIndex : hashIndex), + query: hasQuery ? path.substring(queryIndex, hashIndex > -1 ? hashIndex : undefined) : '', + hash: hashIndex > -1 ? path.slice(hashIndex) : '' + }; + } + return { + pathname: path, + query: '', + hash: '' + }; +} + +//# sourceMappingURL=parse-path.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js new file mode 100644 index 00000000000..01cbfdf722d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js @@ -0,0 +1,43 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseRelativeUrl", { + enumerable: true, + get: function() { + return parseRelativeUrl; + } +}); +const _utils = require("../../utils"); +const _querystring = require("./querystring"); +function parseRelativeUrl(url, base, parseQuery = true) { + const globalBase = new URL(typeof window === 'undefined' ? 'http://n' : (0, _utils.getLocationOrigin)()); + const resolvedBase = base ? new URL(base, globalBase) : url.startsWith('.') ? new URL(typeof window === 'undefined' ? 'http://n' : window.location.href) : globalBase; + const { pathname, searchParams, search, hash, href, origin } = url.startsWith('/') ? // See https://nodejs.org/api/http.html#messageurl + // Not using `origin` to support other protocols + new URL(`${resolvedBase.protocol}//${resolvedBase.host}${url}`) : new URL(url, resolvedBase); + if (origin !== globalBase.origin) { + throw Object.defineProperty(new Error(`invariant: invalid relative URL, router received ${url}`), "__NEXT_ERROR_CODE", { + value: "E159", + enumerable: false, + configurable: true + }); + } + return { + auth: null, + host: null, + hostname: null, + pathname, + port: null, + protocol: null, + query: parseQuery ? (0, _querystring.searchParamsToUrlQuery)(searchParams) : undefined, + search, + hash, + href: href.slice(origin.length), + // We don't know for relative URLs at this point since we set a custom, internal + // base that isn't surfaced to users. + slashes: null + }; +} + +//# sourceMappingURL=parse-relative-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-url.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-url.js new file mode 100644 index 00000000000..47c95163f8d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/parse-url.js @@ -0,0 +1,38 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "parseUrl", { + enumerable: true, + get: function() { + return parseUrl; + } +}); +const _querystring = require("./querystring"); +const _parserelativeurl = require("./parse-relative-url"); +function parseUrl(url) { + if (url.startsWith('/')) { + return (0, _parserelativeurl.parseRelativeUrl)(url); + } + const parsedURL = new URL(url); + const username = parsedURL.username; + const password = parsedURL.password; + const auth = username ? password ? `${username}:${password}` : username : null; + const pathname = parsedURL.pathname; + const search = parsedURL.search; + return { + auth, + hash: parsedURL.hash, + hostname: parsedURL.hostname, + href: parsedURL.href, + pathname, + port: parsedURL.port, + protocol: parsedURL.protocol, + query: (0, _querystring.searchParamsToUrlQuery)(parsedURL.searchParams), + search, + origin: parsedURL.origin, + slashes: parsedURL.href.slice(parsedURL.protocol.length, parsedURL.protocol.length + 2) === '//' + }; +} + +//# sourceMappingURL=parse-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js new file mode 100644 index 00000000000..48faa494c1b --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js @@ -0,0 +1,20 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "pathHasPrefix", { + enumerable: true, + get: function() { + return pathHasPrefix; + } +}); +const _parsepath = require("./parse-path"); +function pathHasPrefix(path, prefix) { + if (typeof path !== 'string') { + return false; + } + const { pathname } = (0, _parsepath.parsePath)(path); + return pathname === prefix || pathname.startsWith(prefix + '/'); +} + +//# sourceMappingURL=path-has-prefix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/path-match.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/path-match.js new file mode 100644 index 00000000000..52db44b9f38 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/path-match.js @@ -0,0 +1,49 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getPathMatch", { + enumerable: true, + get: function() { + return getPathMatch; + } +}); +const _pathtoregexp = require("next/dist/compiled/path-to-regexp"); +function getPathMatch(path, options) { + const keys = []; + const regexp = (0, _pathtoregexp.pathToRegexp)(path, keys, { + delimiter: '/', + sensitive: typeof options?.sensitive === 'boolean' ? options.sensitive : false, + strict: options?.strict + }); + const matcher = (0, _pathtoregexp.regexpToFunction)(options?.regexModifier ? new RegExp(options.regexModifier(regexp.source), regexp.flags) : regexp, keys); + /** + * A matcher function that will check if a given pathname matches the path + * given in the builder function. When the path does not match it will return + * `false` but if it does it will return an object with the matched params + * merged with the params provided in the second argument. + */ return (pathname, params)=>{ + // If no pathname is provided it's not a match. + if (typeof pathname !== 'string') return false; + const match = matcher(pathname); + // If the path did not match `false` will be returned. + if (!match) return false; + /** + * If unnamed params are not allowed they must be removed from + * the matched parameters. path-to-regexp uses "string" for named and + * "number" for unnamed parameters. + */ if (options?.removeUnnamedParams) { + for (const key of keys){ + if (typeof key.name === 'number') { + delete match.params[key.name]; + } + } + } + return { + ...params, + ...match.params + }; + }; +} + +//# sourceMappingURL=path-match.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js new file mode 100644 index 00000000000..670b9b1c24d --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/prepare-destination.js @@ -0,0 +1,292 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + compileNonPath: null, + matchHas: null, + parseDestination: null, + prepareDestination: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + compileNonPath: function() { + return compileNonPath; + }, + matchHas: function() { + return matchHas; + }, + parseDestination: function() { + return parseDestination; + }, + prepareDestination: function() { + return prepareDestination; + } +}); +const _escaperegexp = require("../../escape-regexp"); +const _parseurl = require("./parse-url"); +const _interceptionroutes = require("./interception-routes"); +const _getcookieparser = require("../../../../server/api-utils/get-cookie-parser"); +const _routematchutils = require("./route-match-utils"); +/** + * Ensure only a-zA-Z are used for param names for proper interpolating + * with path-to-regexp + */ function getSafeParamName(paramName) { + let newParamName = ''; + for(let i = 0; i < paramName.length; i++){ + const charCode = paramName.charCodeAt(i); + if (charCode > 64 && charCode < 91 || // A-Z + charCode > 96 && charCode < 123 // a-z + ) { + newParamName += paramName[i]; + } + } + return newParamName; +} +function escapeSegment(str, segmentName) { + return str.replace(new RegExp(`:${(0, _escaperegexp.escapeStringRegexp)(segmentName)}`, 'g'), `__ESC_COLON_${segmentName}`); +} +function unescapeSegments(str) { + return str.replace(/__ESC_COLON_/gi, ':'); +} +function matchHas(req, query, has = [], missing = []) { + const params = {}; + const hasMatch = (hasItem)=>{ + let value; + let key = hasItem.key; + switch(hasItem.type){ + case 'header': + { + key = key.toLowerCase(); + value = req.headers[key]; + break; + } + case 'cookie': + { + if ('cookies' in req) { + value = req.cookies[hasItem.key]; + } else { + const cookies = (0, _getcookieparser.getCookieParser)(req.headers)(); + value = cookies[hasItem.key]; + } + break; + } + case 'query': + { + value = query[key]; + break; + } + case 'host': + { + const { host } = req?.headers || {}; + // remove port from host if present + const hostname = host?.split(':', 1)[0].toLowerCase(); + value = hostname; + break; + } + default: + { + break; + } + } + if (!hasItem.value && value) { + params[getSafeParamName(key)] = value; + return true; + } else if (value) { + const matcher = new RegExp(`^${hasItem.value}$`); + const matches = Array.isArray(value) ? value.slice(-1)[0].match(matcher) : value.match(matcher); + if (matches) { + if (Array.isArray(matches)) { + if (matches.groups) { + Object.keys(matches.groups).forEach((groupKey)=>{ + params[groupKey] = matches.groups[groupKey]; + }); + } else if (hasItem.type === 'host' && matches[0]) { + params.host = matches[0]; + } + } + return true; + } + } + return false; + }; + const allMatch = has.every((item)=>hasMatch(item)) && !missing.some((item)=>hasMatch(item)); + if (allMatch) { + return params; + } + return false; +} +function compileNonPath(value, params) { + if (!value.includes(':')) { + return value; + } + for (const key of Object.keys(params)){ + if (value.includes(`:${key}`)) { + value = value.replace(new RegExp(`:${key}\\*`, 'g'), `:${key}--ESCAPED_PARAM_ASTERISKS`).replace(new RegExp(`:${key}\\?`, 'g'), `:${key}--ESCAPED_PARAM_QUESTION`).replace(new RegExp(`:${key}\\+`, 'g'), `:${key}--ESCAPED_PARAM_PLUS`).replace(new RegExp(`:${key}(?!\\w)`, 'g'), `--ESCAPED_PARAM_COLON${key}`); + } + } + value = value.replace(/(:|\*|\?|\+|\(|\)|\{|\})/g, '\\$1').replace(/--ESCAPED_PARAM_PLUS/g, '+').replace(/--ESCAPED_PARAM_COLON/g, ':').replace(/--ESCAPED_PARAM_QUESTION/g, '?').replace(/--ESCAPED_PARAM_ASTERISKS/g, '*'); + // the value needs to start with a forward-slash to be compiled + // correctly + return (0, _routematchutils.safeCompile)(`/${value}`, { + validate: false + })(params).slice(1); +} +function parseDestination(args) { + let escaped = args.destination; + for (const param of Object.keys({ + ...args.params, + ...args.query + })){ + if (!param) continue; + escaped = escapeSegment(escaped, param); + } + const parsed = (0, _parseurl.parseUrl)(escaped); + let pathname = parsed.pathname; + if (pathname) { + pathname = unescapeSegments(pathname); + } + let href = parsed.href; + if (href) { + href = unescapeSegments(href); + } + let hostname = parsed.hostname; + if (hostname) { + hostname = unescapeSegments(hostname); + } + let hash = parsed.hash; + if (hash) { + hash = unescapeSegments(hash); + } + let search = parsed.search; + if (search) { + search = unescapeSegments(search); + } + let origin = parsed.origin; + if (origin) { + origin = unescapeSegments(origin); + } + return { + ...parsed, + pathname, + hostname, + href, + hash, + search, + origin + }; +} +function prepareDestination(args) { + const parsedDestination = parseDestination(args); + const { hostname: destHostname, query: destQuery, search: destSearch } = parsedDestination; + // The following code assumes that the pathname here includes the hash if it's + // present. + let destPath = parsedDestination.pathname; + if (parsedDestination.hash) { + destPath = `${destPath}${parsedDestination.hash}`; + } + const destParams = []; + const destPathParamKeys = []; + (0, _routematchutils.safePathToRegexp)(destPath, destPathParamKeys); + for (const key of destPathParamKeys){ + destParams.push(key.name); + } + if (destHostname) { + const destHostnameParamKeys = []; + (0, _routematchutils.safePathToRegexp)(destHostname, destHostnameParamKeys); + for (const key of destHostnameParamKeys){ + destParams.push(key.name); + } + } + const destPathCompiler = (0, _routematchutils.safeCompile)(destPath, // we don't validate while compiling the destination since we should + // have already validated before we got to this point and validating + // breaks compiling destinations with named pattern params from the source + // e.g. /something:hello(.*) -> /another/:hello is broken with validation + // since compile validation is meant for reversing and not for inserting + // params from a separate path-regex into another + { + validate: false + }); + let destHostnameCompiler; + if (destHostname) { + destHostnameCompiler = (0, _routematchutils.safeCompile)(destHostname, { + validate: false + }); + } + // update any params in query values + for (const [key, strOrArray] of Object.entries(destQuery)){ + // the value needs to start with a forward-slash to be compiled + // correctly + if (Array.isArray(strOrArray)) { + destQuery[key] = strOrArray.map((value)=>compileNonPath(unescapeSegments(value), args.params)); + } else if (typeof strOrArray === 'string') { + destQuery[key] = compileNonPath(unescapeSegments(strOrArray), args.params); + } + } + // add path params to query if it's not a redirect and not + // already defined in destination query or path + let paramKeys = Object.keys(args.params).filter((name)=>name !== 'nextInternalLocale'); + if (args.appendParamsToQuery && !paramKeys.some((key)=>destParams.includes(key))) { + for (const key of paramKeys){ + if (!(key in destQuery)) { + destQuery[key] = args.params[key]; + } + } + } + let newUrl; + // The compiler also that the interception route marker is an unnamed param, hence '0', + // so we need to add it to the params object. + if ((0, _interceptionroutes.isInterceptionRouteAppPath)(destPath)) { + for (const segment of destPath.split('/')){ + const marker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); + if (marker) { + if (marker === '(..)(..)') { + args.params['0'] = '(..)'; + args.params['1'] = '(..)'; + } else { + args.params['0'] = marker; + } + break; + } + } + } + try { + newUrl = destPathCompiler(args.params); + const [pathname, hash] = newUrl.split('#', 2); + if (destHostnameCompiler) { + parsedDestination.hostname = destHostnameCompiler(args.params); + } + parsedDestination.pathname = pathname; + parsedDestination.hash = `${hash ? '#' : ''}${hash || ''}`; + parsedDestination.search = destSearch ? compileNonPath(destSearch, args.params) : ''; + } catch (err) { + if (err.message.match(/Expected .*? to not repeat, but got an array/)) { + throw Object.defineProperty(new Error(`To use a multi-match in the destination you must add \`*\` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match`), "__NEXT_ERROR_CODE", { + value: "E329", + enumerable: false, + configurable: true + }); + } + throw err; + } + // Query merge order lowest priority to highest + // 1. initial URL query values + // 2. path segment values + // 3. destination specified query values + parsedDestination.query = { + ...args.query, + ...parsedDestination.query + }; + return { + newUrl, + destQuery, + parsedDestination + }; +} + +//# sourceMappingURL=prepare-destination.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/querystring.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/querystring.js new file mode 100644 index 00000000000..2f5bf51e7cb --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/querystring.js @@ -0,0 +1,79 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + assign: null, + searchParamsToUrlQuery: null, + urlQueryToSearchParams: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + assign: function() { + return assign; + }, + searchParamsToUrlQuery: function() { + return searchParamsToUrlQuery; + }, + urlQueryToSearchParams: function() { + return urlQueryToSearchParams; + } +}); +function searchParamsToUrlQuery(searchParams) { + const query = {}; + for (const [key, value] of searchParams.entries()){ + const existing = query[key]; + if (typeof existing === 'undefined') { + query[key] = value; + } else if (Array.isArray(existing)) { + existing.push(value); + } else { + query[key] = [ + existing, + value + ]; + } + } + return query; +} +function stringifyUrlQueryParam(param) { + if (typeof param === 'string') { + return param; + } + if (typeof param === 'number' && !isNaN(param) || typeof param === 'boolean') { + return String(param); + } else { + return ''; + } +} +function urlQueryToSearchParams(query) { + const searchParams = new URLSearchParams(); + for (const [key, value] of Object.entries(query)){ + if (Array.isArray(value)) { + for (const item of value){ + searchParams.append(key, stringifyUrlQueryParam(item)); + } + } else { + searchParams.set(key, stringifyUrlQueryParam(value)); + } + } + return searchParams; +} +function assign(target, ...searchParamsList) { + for (const searchParams of searchParamsList){ + for (const key of searchParams.keys()){ + target.delete(key); + } + for (const [key, value] of searchParams.entries()){ + target.append(key, value); + } + } + return target; +} + +//# sourceMappingURL=querystring.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/relativize-url.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/relativize-url.js new file mode 100644 index 00000000000..8c9be378ffb --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/relativize-url.js @@ -0,0 +1,40 @@ +/** + * The result of parsing a URL relative to a base URL. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getRelativeURL: null, + parseRelativeURL: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getRelativeURL: function() { + return getRelativeURL; + }, + parseRelativeURL: function() { + return parseRelativeURL; + } +}); +function parseRelativeURL(url, base) { + const baseURL = typeof base === 'string' ? new URL(base) : base; + const relative = new URL(url, base); + // The URL is relative if the origin is the same as the base URL. + const isRelative = relative.origin === baseURL.origin; + return { + url: isRelative ? relative.toString().slice(baseURL.origin.length) : relative.toString(), + isRelative + }; +} +function getRelativeURL(url, base) { + const relative = parseRelativeURL(url, base); + return relative.url; +} + +//# sourceMappingURL=relativize-url.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js new file mode 100644 index 00000000000..4ee056fe213 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/remove-path-prefix.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "removePathPrefix", { + enumerable: true, + get: function() { + return removePathPrefix; + } +}); +const _pathhasprefix = require("./path-has-prefix"); +function removePathPrefix(path, prefix) { + // If the path doesn't start with the prefix we can return it as is. This + // protects us from situations where the prefix is a substring of the path + // prefix such as: + // + // For prefix: /blog + // + // /blog -> true + // /blog/ -> true + // /blog/1 -> true + // /blogging -> false + // /blogging/ -> false + // /blogging/1 -> false + if (!(0, _pathhasprefix.pathHasPrefix)(path, prefix)) { + return path; + } + // Remove the prefix from the path via slicing. + const withoutPrefix = path.slice(prefix.length); + // If the path without the prefix starts with a `/` we can return it as is. + if (withoutPrefix.startsWith('/')) { + return withoutPrefix; + } + // If the path without the prefix doesn't start with a `/` we need to add it + // back to the path to make sure it's a valid path. + return `/${withoutPrefix}`; +} + +//# sourceMappingURL=remove-path-prefix.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js new file mode 100644 index 00000000000..16081ec629c --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js @@ -0,0 +1,21 @@ +/** + * Removes the trailing slash for a given route or page path. Preserves the + * root page. Examples: + * - `/foo/bar/` -> `/foo/bar` + * - `/foo/bar` -> `/foo/bar` + * - `/` -> `/` + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "removeTrailingSlash", { + enumerable: true, + get: function() { + return removeTrailingSlash; + } +}); +function removeTrailingSlash(route) { + return route.replace(/\/$/, '') || '/'; +} + +//# sourceMappingURL=remove-trailing-slash.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js new file mode 100644 index 00000000000..6c634f38894 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/resolve-param-value.js @@ -0,0 +1,116 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "resolveParamValue", { + enumerable: true, + get: function() { + return resolveParamValue; + } +}); +const _invarianterror = require("../../invariant-error"); +const _interceptionprefixfromparamtype = require("./interception-prefix-from-param-type"); +/** + * Extracts the param value from a path segment, handling interception markers + * based on the expected param type. + * + * @param pathSegment - The path segment to extract the value from + * @param params - The current params object for resolving dynamic param references + * @param paramType - The expected param type which may include interception marker info + * @returns The extracted param value + */ function getParamValueFromSegment(pathSegment, params, paramType) { + // If the segment is dynamic, resolve it from the params object + if (pathSegment.type === 'dynamic') { + return params[pathSegment.param.paramName]; + } + // If the paramType indicates this is an intercepted param, strip the marker + // that matches the interception marker in the param type + const interceptionPrefix = (0, _interceptionprefixfromparamtype.interceptionPrefixFromParamType)(paramType); + if (interceptionPrefix === pathSegment.interceptionMarker) { + return pathSegment.name.replace(pathSegment.interceptionMarker, ''); + } + // For static segments, use the name + return pathSegment.name; +} +function resolveParamValue(paramName, paramType, depth, route, params) { + switch(paramType){ + case 'catchall': + case 'optional-catchall': + case 'catchall-intercepted-(..)(..)': + case 'catchall-intercepted-(.)': + case 'catchall-intercepted-(..)': + case 'catchall-intercepted-(...)': + // For catchall routes, derive from pathname using depth to determine + // which segments to use + const processedSegments = []; + // Process segments to handle any embedded dynamic params + for(let index = depth; index < route.segments.length; index++){ + const pathSegment = route.segments[index]; + if (pathSegment.type === 'static') { + let value = pathSegment.name; + // For intercepted catch-all params, strip the marker from the first segment + const interceptionPrefix = (0, _interceptionprefixfromparamtype.interceptionPrefixFromParamType)(paramType); + if (interceptionPrefix && index === depth && interceptionPrefix === pathSegment.interceptionMarker) { + // Strip the interception marker from the value + value = value.replace(pathSegment.interceptionMarker, ''); + } + processedSegments.push(value); + } else { + // If the segment is a param placeholder, check if we have its value + if (!params.hasOwnProperty(pathSegment.param.paramName)) { + // If the segment is an optional catchall, we can break out of the + // loop because it's optional! + if (pathSegment.param.paramType === 'optional-catchall') { + break; + } + // Unknown param placeholder in pathname - can't derive full value + return undefined; + } + // If the segment matches a param, use the param value + // We don't encode values here as that's handled during retrieval. + const paramValue = params[pathSegment.param.paramName]; + if (Array.isArray(paramValue)) { + processedSegments.push(...paramValue); + } else { + processedSegments.push(paramValue); + } + } + } + if (processedSegments.length > 0) { + return processedSegments; + } else if (paramType === 'optional-catchall') { + return undefined; + } else { + // We shouldn't be able to match a catchall segment without any path + // segments if it's not an optional catchall + throw Object.defineProperty(new _invarianterror.InvariantError(`Unexpected empty path segments match for a route "${route.pathname}" with param "${paramName}" of type "${paramType}"`), "__NEXT_ERROR_CODE", { + value: "E931", + enumerable: false, + configurable: true + }); + } + case 'dynamic': + case 'dynamic-intercepted-(..)(..)': + case 'dynamic-intercepted-(.)': + case 'dynamic-intercepted-(..)': + case 'dynamic-intercepted-(...)': + // For regular dynamic parameters, take the segment at this depth + if (depth < route.segments.length) { + const pathSegment = route.segments[depth]; + // Check if the segment at this depth is a placeholder for an unknown param + if (pathSegment.type === 'dynamic' && !params.hasOwnProperty(pathSegment.param.paramName)) { + // The segment is a placeholder like [category] and we don't have the value + return undefined; + } + // If the segment matches a param, use the param value from params object + // Otherwise it's a static segment, just use it directly + // We don't encode values here as that's handled during retrieval + return getParamValueFromSegment(pathSegment, params, paramType); + } + return undefined; + default: + paramType; + } +} + +//# sourceMappingURL=resolve-param-value.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/resolve-rewrites.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/resolve-rewrites.js new file mode 100644 index 00000000000..7198c4e67f6 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/resolve-rewrites.js @@ -0,0 +1,118 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return resolveRewrites; + } +}); +const _pathmatch = require("./path-match"); +const _preparedestination = require("./prepare-destination"); +const _removetrailingslash = require("./remove-trailing-slash"); +const _normalizelocalepath = require("../../i18n/normalize-locale-path"); +const _removebasepath = require("../../../../client/remove-base-path"); +const _parserelativeurl = require("./parse-relative-url"); +function resolveRewrites(asPath, pages, rewrites, query, resolveHref, locales) { + let matchedPage = false; + let externalDest = false; + let parsedAs = (0, _parserelativeurl.parseRelativeUrl)(asPath); + let fsPathname = (0, _removetrailingslash.removeTrailingSlash)((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(parsedAs.pathname), locales).pathname); + let resolvedHref; + const handleRewrite = (rewrite)=>{ + const matcher = (0, _pathmatch.getPathMatch)(rewrite.source + (process.env.__NEXT_TRAILING_SLASH ? '(/)?' : ''), { + removeUnnamedParams: true, + strict: true + }); + let params = matcher(parsedAs.pathname); + if ((rewrite.has || rewrite.missing) && params) { + const hasParams = (0, _preparedestination.matchHas)({ + headers: { + host: document.location.hostname, + 'user-agent': navigator.userAgent + }, + cookies: document.cookie.split('; ').reduce((acc, item)=>{ + const [key, ...value] = item.split('='); + acc[key] = value.join('='); + return acc; + }, {}) + }, parsedAs.query, rewrite.has, rewrite.missing); + if (hasParams) { + Object.assign(params, hasParams); + } else { + params = false; + } + } + if (params) { + if (!rewrite.destination) { + // this is a proxied rewrite which isn't handled on the client + externalDest = true; + return true; + } + const destRes = (0, _preparedestination.prepareDestination)({ + appendParamsToQuery: true, + destination: rewrite.destination, + params: params, + query: query + }); + parsedAs = destRes.parsedDestination; + asPath = destRes.newUrl; + Object.assign(query, destRes.parsedDestination.query); + fsPathname = (0, _removetrailingslash.removeTrailingSlash)((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(asPath), locales).pathname); + if (pages.includes(fsPathname)) { + // check if we now match a page as this means we are done + // resolving the rewrites + matchedPage = true; + resolvedHref = fsPathname; + return true; + } + // check if we match a dynamic-route, if so we break the rewrites chain + resolvedHref = resolveHref(fsPathname); + if (resolvedHref !== asPath && pages.includes(resolvedHref)) { + matchedPage = true; + return true; + } + } + }; + let finished = false; + for(let i = 0; i < rewrites.beforeFiles.length; i++){ + // we don't end after match in beforeFiles to allow + // continuing through all beforeFiles rewrites + handleRewrite(rewrites.beforeFiles[i]); + } + matchedPage = pages.includes(fsPathname); + if (!matchedPage) { + if (!finished) { + for(let i = 0; i < rewrites.afterFiles.length; i++){ + if (handleRewrite(rewrites.afterFiles[i])) { + finished = true; + break; + } + } + } + // check dynamic route before processing fallback rewrites + if (!finished) { + resolvedHref = resolveHref(fsPathname); + matchedPage = pages.includes(resolvedHref); + finished = matchedPage; + } + if (!finished) { + for(let i = 0; i < rewrites.fallback.length; i++){ + if (handleRewrite(rewrites.fallback[i])) { + finished = true; + break; + } + } + } + } + return { + asPath, + parsedAs, + matchedPage, + resolvedHref, + externalDest + }; +} + +//# sourceMappingURL=resolve-rewrites.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js new file mode 100644 index 00000000000..b04f744c6b8 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/route-match-utils.js @@ -0,0 +1,113 @@ +/** + * Client-safe utilities for route matching that don't import server-side + * utilities to avoid bundling issues with Turbopack + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + safeCompile: null, + safePathToRegexp: null, + safeRegexpToFunction: null, + safeRouteMatcher: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + safeCompile: function() { + return safeCompile; + }, + safePathToRegexp: function() { + return safePathToRegexp; + }, + safeRegexpToFunction: function() { + return safeRegexpToFunction; + }, + safeRouteMatcher: function() { + return safeRouteMatcher; + } +}); +const _pathtoregexp = require("next/dist/compiled/path-to-regexp"); +const _routepatternnormalizer = require("../../../../lib/route-pattern-normalizer"); +function safePathToRegexp(route, keys, options) { + if (typeof route !== 'string') { + return (0, _pathtoregexp.pathToRegexp)(route, keys, options); + } + // Check if normalization is needed and cache the result + const needsNormalization = (0, _routepatternnormalizer.hasAdjacentParameterIssues)(route); + const routeToUse = needsNormalization ? (0, _routepatternnormalizer.normalizeAdjacentParameters)(route) : route; + try { + return (0, _pathtoregexp.pathToRegexp)(routeToUse, keys, options); + } catch (error) { + // Only try normalization if we haven't already normalized + if (!needsNormalization) { + try { + const normalizedRoute = (0, _routepatternnormalizer.normalizeAdjacentParameters)(route); + return (0, _pathtoregexp.pathToRegexp)(normalizedRoute, keys, options); + } catch (retryError) { + // If that doesn't work, fall back to original error + throw error; + } + } + throw error; + } +} +function safeCompile(route, options) { + // Check if normalization is needed and cache the result + const needsNormalization = (0, _routepatternnormalizer.hasAdjacentParameterIssues)(route); + const routeToUse = needsNormalization ? (0, _routepatternnormalizer.normalizeAdjacentParameters)(route) : route; + try { + const compiler = (0, _pathtoregexp.compile)(routeToUse, options); + // If we normalized the route, wrap the compiler to strip separators from output + // The normalization inserts _NEXTSEP_ as a literal string in the pattern to satisfy + // path-to-regexp validation, but we don't want it in the final compiled URL + if (needsNormalization) { + return (params)=>{ + return (0, _routepatternnormalizer.stripNormalizedSeparators)(compiler(params)); + }; + } + return compiler; + } catch (error) { + // Only try normalization if we haven't already normalized + if (!needsNormalization) { + try { + const normalizedRoute = (0, _routepatternnormalizer.normalizeAdjacentParameters)(route); + const compiler = (0, _pathtoregexp.compile)(normalizedRoute, options); + // Wrap the compiler to strip separators from output + return (params)=>{ + return (0, _routepatternnormalizer.stripNormalizedSeparators)(compiler(params)); + }; + } catch (retryError) { + // If that doesn't work, fall back to original error + throw error; + } + } + throw error; + } +} +function safeRegexpToFunction(regexp, keys) { + const originalMatcher = (0, _pathtoregexp.regexpToFunction)(regexp, keys || []); + return (pathname)=>{ + const result = originalMatcher(pathname); + if (!result) return false; + // Clean parameters before returning + return { + ...result, + params: (0, _routepatternnormalizer.stripParameterSeparators)(result.params) + }; + }; +} +function safeRouteMatcher(matcherFn) { + return (pathname)=>{ + const result = matcherFn(pathname); + if (!result) return false; + // Clean parameters before returning + return (0, _routepatternnormalizer.stripParameterSeparators)(result); + }; +} + +//# sourceMappingURL=route-match-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/route-matcher.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/route-matcher.js new file mode 100644 index 00000000000..8263fb46c4e --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/route-matcher.js @@ -0,0 +1,45 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRouteMatcher", { + enumerable: true, + get: function() { + return getRouteMatcher; + } +}); +const _utils = require("../../utils"); +const _routematchutils = require("./route-match-utils"); +function getRouteMatcher({ re, groups }) { + const rawMatcher = (pathname)=>{ + const routeMatch = re.exec(pathname); + if (!routeMatch) return false; + const decode = (param)=>{ + try { + return decodeURIComponent(param); + } catch { + throw Object.defineProperty(new _utils.DecodeError('failed to decode param'), "__NEXT_ERROR_CODE", { + value: "E528", + enumerable: false, + configurable: true + }); + } + }; + const params = {}; + for (const [key, group] of Object.entries(groups)){ + const match = routeMatch[group.pos]; + if (match !== undefined) { + if (group.repeat) { + params[key] = match.split('/').map((entry)=>decode(entry)); + } else { + params[key] = decode(match); + } + } + } + return params; + }; + // Wrap with safe matcher to handle parameter cleaning + return (0, _routematchutils.safeRouteMatcher)(rawMatcher); +} + +//# sourceMappingURL=route-matcher.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/route-regex.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/route-regex.js new file mode 100644 index 00000000000..174032efe29 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/route-regex.js @@ -0,0 +1,256 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getNamedMiddlewareRegex: null, + getNamedRouteRegex: null, + getRouteRegex: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getNamedMiddlewareRegex: function() { + return getNamedMiddlewareRegex; + }, + getNamedRouteRegex: function() { + return getNamedRouteRegex; + }, + getRouteRegex: function() { + return getRouteRegex; + } +}); +const _constants = require("../../../../lib/constants"); +const _interceptionroutes = require("./interception-routes"); +const _escaperegexp = require("../../escape-regexp"); +const _removetrailingslash = require("./remove-trailing-slash"); +const _getdynamicparam = require("./get-dynamic-param"); +function getParametrizedRoute(route, includeSuffix, includePrefix) { + const groups = {}; + let groupIndex = 1; + const segments = []; + for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ + const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m)); + const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters + ; + if (markerMatch && paramMatches && paramMatches[2]) { + const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); + groups[key] = { + pos: groupIndex++, + repeat, + optional + }; + segments.push(`/${(0, _escaperegexp.escapeStringRegexp)(markerMatch)}([^/]+?)`); + } else if (paramMatches && paramMatches[2]) { + const { key, repeat, optional } = (0, _getdynamicparam.parseMatchedParameter)(paramMatches[2]); + groups[key] = { + pos: groupIndex++, + repeat, + optional + }; + if (includePrefix && paramMatches[1]) { + segments.push(`/${(0, _escaperegexp.escapeStringRegexp)(paramMatches[1])}`); + } + let s = repeat ? optional ? '(?:/(.+?))?' : '/(.+?)' : '/([^/]+?)'; + // Remove the leading slash if includePrefix already added it. + if (includePrefix && paramMatches[1]) { + s = s.substring(1); + } + segments.push(s); + } else { + segments.push(`/${(0, _escaperegexp.escapeStringRegexp)(segment)}`); + } + // If there's a suffix, add it to the segments if it's enabled. + if (includeSuffix && paramMatches && paramMatches[3]) { + segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); + } + } + return { + parameterizedRoute: segments.join(''), + groups + }; +} +function getRouteRegex(normalizedRoute, { includeSuffix = false, includePrefix = false, excludeOptionalTrailingSlash = false } = {}) { + const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute, includeSuffix, includePrefix); + let re = parameterizedRoute; + if (!excludeOptionalTrailingSlash) { + re += '(?:/)?'; + } + return { + re: new RegExp(`^${re}$`), + groups: groups + }; +} +/** + * Builds a function to generate a minimal routeKey using only a-z and minimal + * number of characters. + */ function buildGetSafeRouteKey() { + let i = 0; + return ()=>{ + let routeKey = ''; + let j = ++i; + while(j > 0){ + routeKey += String.fromCharCode(97 + (j - 1) % 26); + j = Math.floor((j - 1) / 26); + } + return routeKey; + }; +} +function getSafeKeyFromSegment({ interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix, backreferenceDuplicateKeys }) { + const { key, optional, repeat } = (0, _getdynamicparam.parseMatchedParameter)(segment); + // replace any non-word characters since they can break + // the named regex + let cleanedKey = key.replace(/\W/g, ''); + if (keyPrefix) { + cleanedKey = `${keyPrefix}${cleanedKey}`; + } + let invalidKey = false; + // check if the key is still invalid and fallback to using a known + // safe key + if (cleanedKey.length === 0 || cleanedKey.length > 30) { + invalidKey = true; + } + if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) { + invalidKey = true; + } + if (invalidKey) { + cleanedKey = getSafeRouteKey(); + } + const duplicateKey = cleanedKey in routeKeys; + if (keyPrefix) { + routeKeys[cleanedKey] = `${keyPrefix}${key}`; + } else { + routeKeys[cleanedKey] = key; + } + // if the segment has an interception marker, make sure that's part of the regex pattern + // this is to ensure that the route with the interception marker doesn't incorrectly match + // the non-intercepted route (ie /app/(.)[username] should not match /app/[username]) + const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : ''; + let pattern; + if (duplicateKey && backreferenceDuplicateKeys) { + // Use a backreference to the key to ensure that the key is the same value + // in each of the placeholders. + pattern = `\\k<${cleanedKey}>`; + } else if (repeat) { + pattern = `(?<${cleanedKey}>.+?)`; + } else { + pattern = `(?<${cleanedKey}>[^/]+?)`; + } + return { + key, + pattern: optional ? `(?:/${interceptionPrefix}${pattern})?` : `/${interceptionPrefix}${pattern}`, + cleanedKey: cleanedKey, + optional, + repeat + }; +} +function getNamedParametrizedRoute(route, prefixRouteKeys, includeSuffix, includePrefix, backreferenceDuplicateKeys, reference = { + names: {}, + intercepted: {} +}) { + const getSafeRouteKey = buildGetSafeRouteKey(); + const routeKeys = {}; + const segments = []; + const inverseParts = []; + // Ensure we don't mutate the original reference object. + reference = structuredClone(reference); + for (const segment of (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split('/')){ + const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m)); + const paramMatches = segment.match(_getdynamicparam.PARAMETER_PATTERN) // Check for parameters + ; + const interceptionMarker = hasInterceptionMarker ? paramMatches?.[1] : undefined; + let keyPrefix; + if (interceptionMarker && paramMatches?.[2]) { + keyPrefix = prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined; + reference.intercepted[paramMatches[2]] = interceptionMarker; + } else if (paramMatches?.[2] && reference.intercepted[paramMatches[2]]) { + keyPrefix = prefixRouteKeys ? _constants.NEXT_INTERCEPTION_MARKER_PREFIX : undefined; + } else { + keyPrefix = prefixRouteKeys ? _constants.NEXT_QUERY_PARAM_PREFIX : undefined; + } + if (interceptionMarker && paramMatches && paramMatches[2]) { + // If there's an interception marker, add it to the segments. + const { key, pattern, cleanedKey, repeat, optional } = getSafeKeyFromSegment({ + getSafeRouteKey, + interceptionMarker, + segment: paramMatches[2], + routeKeys, + keyPrefix, + backreferenceDuplicateKeys + }); + segments.push(pattern); + inverseParts.push(`/${paramMatches[1]}:${reference.names[key] ?? cleanedKey}${repeat ? optional ? '*' : '+' : ''}`); + reference.names[key] ??= cleanedKey; + } else if (paramMatches && paramMatches[2]) { + // If there's a prefix, add it to the segments if it's enabled. + if (includePrefix && paramMatches[1]) { + segments.push(`/${(0, _escaperegexp.escapeStringRegexp)(paramMatches[1])}`); + inverseParts.push(`/${paramMatches[1]}`); + } + const { key, pattern, cleanedKey, repeat, optional } = getSafeKeyFromSegment({ + getSafeRouteKey, + segment: paramMatches[2], + routeKeys, + keyPrefix, + backreferenceDuplicateKeys + }); + // Remove the leading slash if includePrefix already added it. + let s = pattern; + if (includePrefix && paramMatches[1]) { + s = s.substring(1); + } + segments.push(s); + inverseParts.push(`/:${reference.names[key] ?? cleanedKey}${repeat ? optional ? '*' : '+' : ''}`); + reference.names[key] ??= cleanedKey; + } else { + segments.push(`/${(0, _escaperegexp.escapeStringRegexp)(segment)}`); + inverseParts.push(`/${segment}`); + } + // If there's a suffix, add it to the segments if it's enabled. + if (includeSuffix && paramMatches && paramMatches[3]) { + segments.push((0, _escaperegexp.escapeStringRegexp)(paramMatches[3])); + inverseParts.push(paramMatches[3]); + } + } + return { + namedParameterizedRoute: segments.join(''), + routeKeys, + pathToRegexpPattern: inverseParts.join(''), + reference + }; +} +function getNamedRouteRegex(normalizedRoute, options) { + const result = getNamedParametrizedRoute(normalizedRoute, options.prefixRouteKeys, options.includeSuffix ?? false, options.includePrefix ?? false, options.backreferenceDuplicateKeys ?? false, options.reference); + let namedRegex = result.namedParameterizedRoute; + if (!options.excludeOptionalTrailingSlash) { + namedRegex += '(?:/)?'; + } + return { + ...getRouteRegex(normalizedRoute, options), + namedRegex: `^${namedRegex}$`, + routeKeys: result.routeKeys, + pathToRegexpPattern: result.pathToRegexpPattern, + reference: result.reference + }; +} +function getNamedMiddlewareRegex(normalizedRoute, options) { + const { parameterizedRoute } = getParametrizedRoute(normalizedRoute, false, false); + const { catchAll = true } = options; + if (parameterizedRoute === '/') { + let catchAllRegex = catchAll ? '.*' : ''; + return { + namedRegex: `^/${catchAllRegex}$` + }; + } + const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false, false, false, false, undefined); + let catchAllGroupedRegex = catchAll ? '(?:(/.*)?)' : ''; + return { + namedRegex: `^${namedParameterizedRoute}${catchAllGroupedRegex}$` + }; +} + +//# sourceMappingURL=route-regex.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js b/cli/app/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js new file mode 100644 index 00000000000..20336129551 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js @@ -0,0 +1,244 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getSortedRouteObjects: null, + getSortedRoutes: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getSortedRouteObjects: function() { + return getSortedRouteObjects; + }, + getSortedRoutes: function() { + return getSortedRoutes; + } +}); +class UrlNode { + insert(urlPath) { + this._insert(urlPath.split('/').filter(Boolean), [], false); + } + smoosh() { + return this._smoosh(); + } + _smoosh(prefix = '/') { + const childrenPaths = [ + ...this.children.keys() + ].sort(); + if (this.slugName !== null) { + childrenPaths.splice(childrenPaths.indexOf('[]'), 1); + } + if (this.restSlugName !== null) { + childrenPaths.splice(childrenPaths.indexOf('[...]'), 1); + } + if (this.optionalRestSlugName !== null) { + childrenPaths.splice(childrenPaths.indexOf('[[...]]'), 1); + } + const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(`${prefix}${c}/`)).reduce((prev, curr)=>[ + ...prev, + ...curr + ], []); + if (this.slugName !== null) { + routes.push(...this.children.get('[]')._smoosh(`${prefix}[${this.slugName}]/`)); + } + if (!this.placeholder) { + const r = prefix === '/' ? '/' : prefix.slice(0, -1); + if (this.optionalRestSlugName != null) { + throw Object.defineProperty(new Error(`You cannot define a route with the same specificity as a optional catch-all route ("${r}" and "${r}[[...${this.optionalRestSlugName}]]").`), "__NEXT_ERROR_CODE", { + value: "E458", + enumerable: false, + configurable: true + }); + } + routes.unshift(r); + } + if (this.restSlugName !== null) { + routes.push(...this.children.get('[...]')._smoosh(`${prefix}[...${this.restSlugName}]/`)); + } + if (this.optionalRestSlugName !== null) { + routes.push(...this.children.get('[[...]]')._smoosh(`${prefix}[[...${this.optionalRestSlugName}]]/`)); + } + return routes; + } + _insert(urlPaths, slugNames, isCatchAll) { + if (urlPaths.length === 0) { + this.placeholder = false; + return; + } + if (isCatchAll) { + throw Object.defineProperty(new Error(`Catch-all must be the last part of the URL.`), "__NEXT_ERROR_CODE", { + value: "E392", + enumerable: false, + configurable: true + }); + } + // The next segment in the urlPaths list + let nextSegment = urlPaths[0]; + // Check if the segment matches `[something]` + if (nextSegment.startsWith('[') && nextSegment.endsWith(']')) { + // Strip `[` and `]`, leaving only `something` + let segmentName = nextSegment.slice(1, -1); + let isOptional = false; + if (segmentName.startsWith('[') && segmentName.endsWith(']')) { + // Strip optional `[` and `]`, leaving only `something` + segmentName = segmentName.slice(1, -1); + isOptional = true; + } + if (segmentName.startsWith('…')) { + throw Object.defineProperty(new Error(`Detected a three-dot character ('…') at ('${segmentName}'). Did you mean ('...')?`), "__NEXT_ERROR_CODE", { + value: "E147", + enumerable: false, + configurable: true + }); + } + if (segmentName.startsWith('...')) { + // Strip `...`, leaving only `something` + segmentName = segmentName.substring(3); + isCatchAll = true; + } + if (segmentName.startsWith('[') || segmentName.endsWith(']')) { + throw Object.defineProperty(new Error(`Segment names may not start or end with extra brackets ('${segmentName}').`), "__NEXT_ERROR_CODE", { + value: "E421", + enumerable: false, + configurable: true + }); + } + if (segmentName.startsWith('.')) { + throw Object.defineProperty(new Error(`Segment names may not start with erroneous periods ('${segmentName}').`), "__NEXT_ERROR_CODE", { + value: "E288", + enumerable: false, + configurable: true + }); + } + function handleSlug(previousSlug, nextSlug) { + if (previousSlug !== null) { + // If the specific segment already has a slug but the slug is not `something` + // This prevents collisions like: + // pages/[post]/index.js + // pages/[id]/index.js + // Because currently multiple dynamic params on the same segment level are not supported + if (previousSlug !== nextSlug) { + // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment. + throw Object.defineProperty(new Error(`You cannot use different slug names for the same dynamic path ('${previousSlug}' !== '${nextSlug}').`), "__NEXT_ERROR_CODE", { + value: "E337", + enumerable: false, + configurable: true + }); + } + } + slugNames.forEach((slug)=>{ + if (slug === nextSlug) { + throw Object.defineProperty(new Error(`You cannot have the same slug name "${nextSlug}" repeat within a single dynamic path`), "__NEXT_ERROR_CODE", { + value: "E247", + enumerable: false, + configurable: true + }); + } + if (slug.replace(/\W/g, '') === nextSegment.replace(/\W/g, '')) { + throw Object.defineProperty(new Error(`You cannot have the slug names "${slug}" and "${nextSlug}" differ only by non-word symbols within a single dynamic path`), "__NEXT_ERROR_CODE", { + value: "E499", + enumerable: false, + configurable: true + }); + } + }); + slugNames.push(nextSlug); + } + if (isCatchAll) { + if (isOptional) { + if (this.restSlugName != null) { + throw Object.defineProperty(new Error(`You cannot use both an required and optional catch-all route at the same level ("[...${this.restSlugName}]" and "${urlPaths[0]}" ).`), "__NEXT_ERROR_CODE", { + value: "E299", + enumerable: false, + configurable: true + }); + } + handleSlug(this.optionalRestSlugName, segmentName); + // slugName is kept as it can only be one particular slugName + this.optionalRestSlugName = segmentName; + // nextSegment is overwritten to [[...]] so that it can later be sorted specifically + nextSegment = '[[...]]'; + } else { + if (this.optionalRestSlugName != null) { + throw Object.defineProperty(new Error(`You cannot use both an optional and required catch-all route at the same level ("[[...${this.optionalRestSlugName}]]" and "${urlPaths[0]}").`), "__NEXT_ERROR_CODE", { + value: "E300", + enumerable: false, + configurable: true + }); + } + handleSlug(this.restSlugName, segmentName); + // slugName is kept as it can only be one particular slugName + this.restSlugName = segmentName; + // nextSegment is overwritten to [...] so that it can later be sorted specifically + nextSegment = '[...]'; + } + } else { + if (isOptional) { + throw Object.defineProperty(new Error(`Optional route parameters are not yet supported ("${urlPaths[0]}").`), "__NEXT_ERROR_CODE", { + value: "E435", + enumerable: false, + configurable: true + }); + } + handleSlug(this.slugName, segmentName); + // slugName is kept as it can only be one particular slugName + this.slugName = segmentName; + // nextSegment is overwritten to [] so that it can later be sorted specifically + nextSegment = '[]'; + } + } + // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode + if (!this.children.has(nextSegment)) { + this.children.set(nextSegment, new UrlNode()); + } + this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll); + } + constructor(){ + this.placeholder = true; + this.children = new Map(); + this.slugName = null; + this.restSlugName = null; + this.optionalRestSlugName = null; + } +} +function getSortedRoutes(normalizedPages) { + // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment + // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js + // Only 1 dynamic segment per nesting level + // So in the case that is test/integration/dynamic-routing it'll be this: + // pages/[post]/comments.js + // pages/blog/[post]/comment/[id].js + // Both are fine because `pages/[post]` and `pages/blog` are on the same level + // So in this case `UrlNode` created here has `this.slugName === 'post'` + // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities + // Instead what has to be passed through is the upwards path's dynamic names + const root = new UrlNode(); + // Here the `root` gets injected multiple paths, and insert will break them up into sublevels + normalizedPages.forEach((pagePath)=>root.insert(pagePath)); + // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority + return root.smoosh(); +} +function getSortedRouteObjects(objects, getter) { + // We're assuming here that all the pathnames are unique, that way we can + // sort the list and use the index as the key. + const indexes = {}; + const pathnames = []; + for(let i = 0; i < objects.length; i++){ + const pathname = getter(objects[i]); + indexes[pathname] = i; + pathnames[i] = pathname; + } + // Sort the pathnames. + const sorted = getSortedRoutes(pathnames); + // Map the sorted pathnames back to the original objects using the new sorted + // index. + return sorted.map((pathname)=>objects[indexes[pathname]]); +} + +//# sourceMappingURL=sorted-routes.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js b/cli/app/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js new file mode 100644 index 00000000000..71505fc4168 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/segment-cache/segment-value-encoding.js @@ -0,0 +1,99 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + HEAD_REQUEST_KEY: null, + ROOT_SEGMENT_REQUEST_KEY: null, + appendSegmentRequestKeyPart: null, + convertSegmentPathToStaticExportFilename: null, + createSegmentRequestKeyPart: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + HEAD_REQUEST_KEY: function() { + return HEAD_REQUEST_KEY; + }, + ROOT_SEGMENT_REQUEST_KEY: function() { + return ROOT_SEGMENT_REQUEST_KEY; + }, + appendSegmentRequestKeyPart: function() { + return appendSegmentRequestKeyPart; + }, + convertSegmentPathToStaticExportFilename: function() { + return convertSegmentPathToStaticExportFilename; + }, + createSegmentRequestKeyPart: function() { + return createSegmentRequestKeyPart; + } +}); +const _segment = require("../segment"); +const ROOT_SEGMENT_REQUEST_KEY = ''; +const HEAD_REQUEST_KEY = '/_head'; +function createSegmentRequestKeyPart(segment) { + if (typeof segment === 'string') { + if (segment.startsWith(_segment.PAGE_SEGMENT_KEY)) { + // The Flight Router State type sometimes includes the search params in + // the page segment. However, the Segment Cache tracks this as a separate + // key. So, we strip the search params here, and then add them back when + // the cache entry is turned back into a FlightRouterState. This is an + // unfortunate consequence of the FlightRouteState being used both as a + // transport type and as a cache key; we'll address this once more of the + // Segment Cache implementation has settled. + // TODO: We should hoist the search params out of the FlightRouterState + // type entirely, This is our plan for dynamic route params, too. + return _segment.PAGE_SEGMENT_KEY; + } + const safeName = // TODO: FlightRouterState encodes Not Found routes as "/_not-found". + // But params typically don't include the leading slash. We should use + // a different encoding to avoid this special case. + segment === '/_not-found' ? '_not-found' : encodeToFilesystemAndURLSafeString(segment); + // Since this is not a dynamic segment, it's fully encoded. It does not + // need to be "hydrated" with a param value. + return safeName; + } + const name = segment[0]; + const paramType = segment[2]; + const safeName = encodeToFilesystemAndURLSafeString(name); + const encodedName = '$' + paramType + '$' + safeName; + return encodedName; +} +function appendSegmentRequestKeyPart(parentRequestKey, parallelRouteKey, childRequestKeyPart) { + // Aside from being filesystem safe, segment keys are also designed so that + // each segment and parallel route creates its own subdirectory. Roughly in + // the same shape as the source app directory. This is mostly just for easier + // debugging (you can open up the build folder and navigate the output); if + // we wanted to do we could just use a flat structure. + // Omit the parallel route key for children, since this is the most + // common case. Saves some bytes (and it's what the app directory does). + const slotKey = parallelRouteKey === 'children' ? childRequestKeyPart : `@${encodeToFilesystemAndURLSafeString(parallelRouteKey)}/${childRequestKeyPart}`; + return parentRequestKey + '/' + slotKey; +} +// Define a regex pattern to match the most common characters found in a route +// param. It excludes anything that might not be cross-platform filesystem +// compatible, like |. It does not need to be precise because the fallback is to +// just base64url-encode the whole parameter, which is fine; we just don't do it +// by default for compactness, and for easier debugging. +const simpleParamValueRegex = /^[a-zA-Z0-9\-_@]+$/; +function encodeToFilesystemAndURLSafeString(value) { + if (simpleParamValueRegex.test(value)) { + return value; + } + // If there are any unsafe characters, base64url-encode the entire value. + // We also add a ! prefix so it doesn't collide with the simple case. + const base64url = btoa(value).replace(/\+/g, '-') // Replace '+' with '-' + .replace(/\//g, '_') // Replace '/' with '_' + .replace(/=+$/, '') // Remove trailing '=' + ; + return '!' + base64url; +} +function convertSegmentPathToStaticExportFilename(segmentPath) { + return `__next${segmentPath.replace(/\//g, '.')}.txt`; +} + +//# sourceMappingURL=segment-value-encoding.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js b/cli/app/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js new file mode 100644 index 00000000000..9c7566cb886 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/segment-cache/vary-params-decoding.js @@ -0,0 +1,32 @@ +/** + * Vary Params Decoding + * + * This module is shared between server and client. + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "readVaryParams", { + enumerable: true, + get: function() { + return readVaryParams; + } +}); +function readVaryParams(thenable) { + // Attach a no-op listener to force Flight to synchronously resolve the + // thenable. When a thenable arrives from the Flight stream, it may be in an + // intermediate 'resolved_model' state (data received but not unwrapped). + // Calling .then() triggers Flight to transition it to 'fulfilled', making + // the value available synchronously. React uses this same optimization + // internally to avoid unnecessary microtasks. + thenable.then(noop); + // If the thenable is still not 'fulfilled' after calling .then(), the server + // failed to resolve it before the stream ended. Treat as unknown. + if (thenable.status !== 'fulfilled') { + return null; + } + return thenable.value; +} +const noop = ()=>{}; + +//# sourceMappingURL=vary-params-decoding.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/segment.js b/cli/app/node_modules/next/dist/shared/lib/segment.js new file mode 100644 index 00000000000..ade011ff312 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/segment.js @@ -0,0 +1,102 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DEFAULT_SEGMENT_KEY: null, + NOT_FOUND_SEGMENT_KEY: null, + PAGE_SEGMENT_KEY: null, + addSearchParamsIfPageSegment: null, + computeSelectedLayoutSegment: null, + getSegmentValue: null, + getSelectedLayoutSegmentPath: null, + isGroupSegment: null, + isParallelRouteSegment: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DEFAULT_SEGMENT_KEY: function() { + return DEFAULT_SEGMENT_KEY; + }, + NOT_FOUND_SEGMENT_KEY: function() { + return NOT_FOUND_SEGMENT_KEY; + }, + PAGE_SEGMENT_KEY: function() { + return PAGE_SEGMENT_KEY; + }, + addSearchParamsIfPageSegment: function() { + return addSearchParamsIfPageSegment; + }, + computeSelectedLayoutSegment: function() { + return computeSelectedLayoutSegment; + }, + getSegmentValue: function() { + return getSegmentValue; + }, + getSelectedLayoutSegmentPath: function() { + return getSelectedLayoutSegmentPath; + }, + isGroupSegment: function() { + return isGroupSegment; + }, + isParallelRouteSegment: function() { + return isParallelRouteSegment; + } +}); +function getSegmentValue(segment) { + return Array.isArray(segment) ? segment[1] : segment; +} +function isGroupSegment(segment) { + // Use array[0] for performant purpose + return segment[0] === '(' && segment.endsWith(')'); +} +function isParallelRouteSegment(segment) { + return segment.startsWith('@') && segment !== '@children'; +} +function addSearchParamsIfPageSegment(segment, searchParams) { + const isPageSegment = segment.includes(PAGE_SEGMENT_KEY); + if (isPageSegment) { + const stringifiedQuery = JSON.stringify(searchParams); + return stringifiedQuery !== '{}' ? PAGE_SEGMENT_KEY + '?' + stringifiedQuery : PAGE_SEGMENT_KEY; + } + return segment; +} +function computeSelectedLayoutSegment(segments, parallelRouteKey) { + if (!segments || segments.length === 0) { + return null; + } + // For 'children', use first segment; for other parallel routes, use last segment + const rawSegment = parallelRouteKey === 'children' ? segments[0] : segments[segments.length - 1]; + // If the default slot is showing, return null since it's not technically "selected" (it's a fallback) + // Returning an internal value like `__DEFAULT__` would be confusing + return rawSegment === DEFAULT_SEGMENT_KEY ? null : rawSegment; +} +function getSelectedLayoutSegmentPath(tree, parallelRouteKey, first = true, segmentPath = []) { + let node; + if (first) { + // Use the provided parallel route key on the first parallel route + node = tree[1][parallelRouteKey]; + } else { + // After first parallel route prefer children, if there's no children pick the first parallel route. + const parallelRoutes = tree[1]; + node = parallelRoutes.children ?? Object.values(parallelRoutes)[0]; + } + if (!node) return segmentPath; + const segment = node[0]; + let segmentValue = getSegmentValue(segment); + if (!segmentValue || segmentValue.startsWith(PAGE_SEGMENT_KEY)) { + return segmentPath; + } + segmentPath.push(segmentValue); + return getSelectedLayoutSegmentPath(node, parallelRouteKey, false, segmentPath); +} +const PAGE_SEGMENT_KEY = '__PAGE__'; +const DEFAULT_SEGMENT_KEY = '__DEFAULT__'; +const NOT_FOUND_SEGMENT_KEY = '/_not-found'; + +//# sourceMappingURL=segment.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js b/cli/app/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js new file mode 100644 index 00000000000..747713f3f3f --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js @@ -0,0 +1,35 @@ +'use client'; +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ServerInsertedHTMLContext: null, + useServerInsertedHTML: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ServerInsertedHTMLContext: function() { + return ServerInsertedHTMLContext; + }, + useServerInsertedHTML: function() { + return useServerInsertedHTML; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _react = /*#__PURE__*/ _interop_require_wildcard._(require("react")); +const ServerInsertedHTMLContext = /*#__PURE__*/ _react.default.createContext(null); +function useServerInsertedHTML(callback) { + const addInsertedServerHTMLCallback = (0, _react.useContext)(ServerInsertedHTMLContext); + // Should have no effects on client where there's no flush effects provider + if (addInsertedServerHTMLCallback) { + addInsertedServerHTMLCallback(callback); + } +} + +//# sourceMappingURL=server-inserted-html.shared-runtime.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/server-reference-info.js b/cli/app/node_modules/next/dist/shared/lib/server-reference-info.js new file mode 100644 index 00000000000..837eab89948 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/server-reference-info.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + extractInfoFromServerReferenceId: null, + omitUnusedArgs: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + extractInfoFromServerReferenceId: function() { + return extractInfoFromServerReferenceId; + }, + omitUnusedArgs: function() { + return omitUnusedArgs; + } +}); +function extractInfoFromServerReferenceId(id) { + const infoByte = parseInt(id.slice(0, 2), 16); + const typeBit = infoByte >> 7 & 0x1; + const argMask = infoByte >> 1 & 0x3f; + const restArgs = infoByte & 0x1; + const usedArgs = Array(6); + for(let index = 0; index < 6; index++){ + const bitPosition = 5 - index; + const bit = argMask >> bitPosition & 0x1; + usedArgs[index] = bit === 1; + } + return { + type: typeBit === 1 ? 'use-cache' : 'server-action', + usedArgs: usedArgs, + hasRestArgs: restArgs === 1 + }; +} +function omitUnusedArgs(args, info) { + const filteredArgs = new Array(args.length); + let length = 0; + for(let index = 0; index < args.length; index++){ + if (index < 6 && info.usedArgs[index] || // This assumes that the server reference info byte has the restArgs bit + // set to 1 if there are more than 6 args. + index >= 6 && info.hasRestArgs) { + filteredArgs[index] = args[index]; + length = index + 1; + } + } + // Trim trailing unused args from the array. + filteredArgs.length = length; + return filteredArgs; +} + +//# sourceMappingURL=server-reference-info.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/side-effect.js b/cli/app/node_modules/next/dist/shared/lib/side-effect.js new file mode 100644 index 00000000000..126a4f29c9f --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/side-effect.js @@ -0,0 +1,63 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return SideEffect; + } +}); +const _react = require("react"); +const isServer = typeof window === 'undefined'; +const useClientOnlyLayoutEffect = isServer ? ()=>{} : _react.useLayoutEffect; +const useClientOnlyEffect = isServer ? ()=>{} : _react.useEffect; +function SideEffect(props) { + const { headManager, reduceComponentsToState } = props; + function emitChange() { + if (headManager && headManager.mountedInstances) { + const headElements = _react.Children.toArray(Array.from(headManager.mountedInstances).filter(Boolean)); + headManager.updateHead(reduceComponentsToState(headElements)); + } + } + if (isServer) { + headManager?.mountedInstances?.add(props.children); + emitChange(); + } + useClientOnlyLayoutEffect(()=>{ + headManager?.mountedInstances?.add(props.children); + return ()=>{ + headManager?.mountedInstances?.delete(props.children); + }; + }); + // We need to call `updateHead` method whenever the `SideEffect` is trigger in all + // life-cycles: mount, update, unmount. However, if there are multiple `SideEffect`s + // being rendered, we only trigger the method from the last one. + // This is ensured by keeping the last unflushed `updateHead` in the `_pendingUpdate` + // singleton in the layout effect pass, and actually trigger it in the effect pass. + useClientOnlyLayoutEffect(()=>{ + if (headManager) { + headManager._pendingUpdate = emitChange; + } + return ()=>{ + if (headManager) { + headManager._pendingUpdate = emitChange; + } + }; + }); + useClientOnlyEffect(()=>{ + if (headManager && headManager._pendingUpdate) { + headManager._pendingUpdate(); + headManager._pendingUpdate = null; + } + return ()=>{ + if (headManager && headManager._pendingUpdate) { + headManager._pendingUpdate(); + headManager._pendingUpdate = null; + } + }; + }); + return null; +} + +//# sourceMappingURL=side-effect.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/size-limit.js b/cli/app/node_modules/next/dist/shared/lib/size-limit.js new file mode 100644 index 00000000000..c47220f5704 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/size-limit.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DEFAULT_MAX_POSTPONED_STATE_SIZE: null, + parseMaxPostponedStateSize: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DEFAULT_MAX_POSTPONED_STATE_SIZE: function() { + return DEFAULT_MAX_POSTPONED_STATE_SIZE; + }, + parseMaxPostponedStateSize: function() { + return parseMaxPostponedStateSize; + } +}); +const DEFAULT_MAX_POSTPONED_STATE_SIZE = '100 MB'; +// 100MB in bytes. Not using the parseSizeLimit for performance as parseMaxPostponedStateSize is in the hot path for rendering. +const DEFAULT_MAX_POSTPONED_STATE_SIZE_BYTES = 104857600; +function parseSizeLimit(size) { + const bytes = require('next/dist/compiled/bytes').parse(size); + if (bytes === null || isNaN(bytes) || bytes < 1) { + return undefined; + } + return bytes; +} +function parseMaxPostponedStateSize(size) { + if (!size) { + return DEFAULT_MAX_POSTPONED_STATE_SIZE_BYTES; + } + return parseSizeLimit(size); +} + +//# sourceMappingURL=size-limit.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/turbopack/compilation-events.js b/cli/app/node_modules/next/dist/shared/lib/turbopack/compilation-events.js new file mode 100644 index 00000000000..bf0d52d22d2 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/turbopack/compilation-events.js @@ -0,0 +1,83 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + backgroundLogCompilationEvents: null, + msToNs: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + backgroundLogCompilationEvents: function() { + return backgroundLogCompilationEvents; + }, + msToNs: function() { + return msToNs; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _log = /*#__PURE__*/ _interop_require_wildcard._(require("../../../build/output/log")); +const _trace = require("../../../trace"); +const _trace1 = require("../../../lib/memory/trace"); +const MILLISECONDS_IN_NANOSECOND = BigInt(1000000); +function msToNs(ms) { + return BigInt(Math.floor(ms)) * MILLISECONDS_IN_NANOSECOND; +} +function backgroundLogCompilationEvents(project, { eventTypes, signal, parentSpan } = {}) { + const iterator = project.compilationEventsSubscribe(eventTypes); + // Close the iterator as soon as the signal fires so the for-await loop + // exits without waiting for the next compilation event. + signal?.addEventListener('abort', ()=>iterator.return?.(undefined), { + once: true + }); + const promise = async function() { + for await (const event of iterator){ + // Record TraceEvent compilation events as trace spans in .next/trace. + if (parentSpan && event.typeName === 'TraceEvent' && event.eventJson) { + try { + const data = JSON.parse(event.eventJson); + parentSpan.manualTraceChild(data.name, msToNs(data.startTimeMs), msToNs(data.endTimeMs), Object.fromEntries(data.attributes ?? [])); + (0, _trace1.traceMemoryUsage)(data.name, parentSpan); + // We flush after each event to make sure it makes it to disk. These events are rare and + // tend to happen at the very end of a build so to make sure they are logged we need to + // flush. + // NOTE: in a `next build` environment where we are reporting events to the parent thread, this is a no-op. + await (0, _trace.flushAllTraces)(); + } catch {} + continue; // don't log these events, they just go to the trace file + } + switch(event.severity){ + case 'EVENT': + _log.event(event.message); + break; + case 'TRACE': + _log.trace(event.message); + break; + case 'INFO': + _log.info(event.message); + break; + case 'WARNING': + _log.warn(event.message); + break; + case 'ERROR': + _log.error(event.message); + break; + case 'FATAL': + _log.error(event.message); + break; + default: + break; + } + } + }(); + // Prevent unhandled rejection if the subscription errors after the project shuts down. + promise.catch(()=>{}); + return promise; +} + +//# sourceMappingURL=compilation-events.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/turbopack/entry-key.js b/cli/app/node_modules/next/dist/shared/lib/turbopack/entry-key.js new file mode 100644 index 00000000000..7e8d0d418c1 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/turbopack/entry-key.js @@ -0,0 +1,39 @@ +/** + * `app` -> app dir + * `pages` -> pages dir + * `root` -> middleware / instrumentation + * `assets` -> assets + */ "use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + getEntryKey: null, + splitEntryKey: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + getEntryKey: function() { + return getEntryKey; + }, + splitEntryKey: function() { + return splitEntryKey; + } +}); +function getEntryKey(type, side, page) { + return JSON.stringify({ + type, + side, + page + }); +} +function splitEntryKey(key) { + return JSON.parse(key); +} + +//# sourceMappingURL=entry-key.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/turbopack/internal-error.js b/cli/app/node_modules/next/dist/shared/lib/turbopack/internal-error.js new file mode 100644 index 00000000000..4212b60a7fd --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/turbopack/internal-error.js @@ -0,0 +1,53 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + TurbopackInternalError: null, + throwTurbopackInternalError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + TurbopackInternalError: function() { + return TurbopackInternalError; + }, + throwTurbopackInternalError: function() { + return throwTurbopackInternalError; + } +}); +const _events = require("../../../telemetry/events"); +const _shared = require("../../../trace/shared"); +class TurbopackInternalError extends Error { + constructor({ message, anonymizedLocation }){ + super(message), this.name = 'TurbopackInternalError', // Manually set this as this isn't statically determinable + this.__NEXT_ERROR_CODE = 'TurbopackInternalError'; + this.location = anonymizedLocation; + } +} +function throwTurbopackInternalError(conversionError, opts) { + if (conversionError != null) { + // Somehow napi failed to convert `opts` to a JS object??? Just give up and throw that instead. + throw Object.defineProperty(new Error('NAPI type conversion error in throwTurbopackInternalError', { + cause: conversionError + }), "__NEXT_ERROR_CODE", { + value: "E723", + enumerable: false, + configurable: true + }); + } + const err = new TurbopackInternalError(opts); + const telemetry = _shared.traceGlobals.get('telemetry'); + if (telemetry) { + telemetry.record((0, _events.eventErrorThrown)(err, opts.anonymizedLocation)); + } else { + console.error('Expected `telemetry` to be set in globals'); + } + throw err; +} + +//# sourceMappingURL=internal-error.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js b/cli/app/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js new file mode 100644 index 00000000000..ae17ac0c8c4 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/turbopack/manifest-loader.js @@ -0,0 +1,498 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "TurbopackManifestLoader", { + enumerable: true, + get: function() { + return TurbopackManifestLoader; + } +}); +const _interop_require_default = require("@swc/helpers/_/_interop_require_default"); +const _constants = require("../constants"); +const _path = require("path"); +const _fs = require("fs"); +const _requirecache = require("../../../server/dev/require-cache"); +const _writeatomic = require("../../../lib/fs/write-atomic"); +const _getassetpathfromroute = /*#__PURE__*/ _interop_require_default._(require("../router/utils/get-asset-path-from-route")); +const _entrykey = require("./entry-key"); +const _utils = require("../router/utils"); +const _turbopackutils = require("../../../server/dev/turbopack-utils"); +const _trytoparsepath = require("../../../lib/try-to-parse-path"); +const _routematchutils = require("../router/utils/route-match-utils"); +const _buildmanifestpluginutils = require("../../../build/webpack/plugins/build-manifest-plugin-utils"); +const getManifestPath = (page, distDir, name, type, firstCall)=>{ + let manifestPath = _path.posix.join(distDir, `server`, type, type === 'middleware' || type === 'instrumentation' ? '' : type === 'app' ? page : (0, _getassetpathfromroute.default)(page), name); + if (firstCall) { + const isSitemapRoute = /[\\/]sitemap(.xml)?\/route$/.test(page); + // Check the ambiguity of /sitemap and /sitemap.xml + if (isSitemapRoute && !(0, _fs.existsSync)(manifestPath)) { + manifestPath = getManifestPath(page.replace(/\/sitemap\/route$/, '/sitemap.xml/route'), distDir, name, type, false); + } + // existsSync is faster than using the async version + if (!(0, _fs.existsSync)(manifestPath) && page.endsWith('/route')) { + // TODO: Improve implementation of metadata routes, currently it requires this extra check for the variants of the files that can be written. + let basePage = (0, _turbopackutils.removeRouteSuffix)(page); + // For sitemap.xml routes with generateSitemaps, the manifest is at + // /sitemap/[__metadata_id__]/route (without .xml), because the route + // handler serves at /sitemap/[id] not /sitemap.xml/[id] + if (basePage.endsWith('/sitemap.xml')) { + basePage = basePage.slice(0, -'.xml'.length); + } + let metadataPage = (0, _turbopackutils.addRouteSuffix)((0, _turbopackutils.addMetadataIdToRoute)(basePage)); + manifestPath = getManifestPath(metadataPage, distDir, name, type, false); + } + } + return manifestPath; +}; +function readPartialManifestContent(distDir, name, pageName, type = 'pages') { + const page = pageName; + const manifestPath = getManifestPath(page, distDir, name, type, true); + return (0, _fs.readFileSync)(_path.posix.join(manifestPath), 'utf-8'); +} +/// Helper class that stores a map of manifests and tracks if they have changed +/// since the last time they were written to disk. This is used to avoid +/// unnecessary writes to disk. +class ManifestsMap { + set(key, value) { + if (this.rawMap.get(key) === value) return; + this.changed = true; + this.rawMap.set(key, value); + this.map.set(key, JSON.parse(value)); + } + delete(key) { + if (this.map.has(key)) { + this.changed = true; + this.rawMap.delete(key); + this.map.delete(key); + } + } + get(key) { + return this.map.get(key); + } + takeChanged(extraInvalidationKey) { + let changed = this.changed; + if (extraInvalidationKey !== undefined) { + const stringified = JSON.stringify(extraInvalidationKey); + if (this.extraInvalidationKey !== stringified) { + this.extraInvalidationKey = stringified; + changed = true; + } + } + this.changed = false; + return changed; + } + values() { + return this.map.values(); + } + constructor(){ + this.rawMap = new Map(); + this.map = new Map(); + this.extraInvalidationKey = undefined; + this.changed = true; + } +} +class TurbopackManifestLoader { + constructor({ distDir, buildId, encryptionKey, dev, sriEnabled }){ + this.actionManifests = new ManifestsMap(); + this.appPathsManifests = new ManifestsMap(); + this.buildManifests = new ManifestsMap(); + this.clientBuildManifests = new ManifestsMap(); + this.fontManifests = new ManifestsMap(); + this.middlewareManifests = new ManifestsMap(); + this.pagesManifests = new ManifestsMap(); + this.sriManifests = new ManifestsMap(); + /// interceptionRewrites that have been written to disk + /// This is used to avoid unnecessary writes if the rewrites haven't changed + this.cachedInterceptionRewrites = undefined; + this.pendingCacheDeletes = []; + this.distDir = distDir; + this.buildId = buildId; + this.encryptionKey = encryptionKey; + this.dev = dev; + this.sriEnabled = sriEnabled; + } + delete(key) { + this.actionManifests.delete(key); + this.appPathsManifests.delete(key); + this.buildManifests.delete(key); + this.clientBuildManifests.delete(key); + this.fontManifests.delete(key); + this.middlewareManifests.delete(key); + this.pagesManifests.delete(key); + } + loadActionManifest(pageName) { + this.actionManifests.set((0, _entrykey.getEntryKey)('app', 'server', pageName), readPartialManifestContent(this.distDir, `${_constants.SERVER_REFERENCE_MANIFEST}.json`, pageName, 'app')); + } + mergeActionManifests(manifests) { + const manifest = { + node: {}, + edge: {}, + encryptionKey: this.encryptionKey + }; + function mergeActionIds(actionEntries, other) { + for(const key in other){ + const action = actionEntries[key] ??= { + workers: {} + }; + action.filename = other[key].filename; + action.exportedName = other[key].exportedName; + Object.assign(action.workers, other[key].workers); + } + } + for (const m of manifests){ + mergeActionIds(manifest.node, m.node); + mergeActionIds(manifest.edge, m.edge); + } + for(const key in manifest.node){ + const entry = manifest.node[key]; + entry.workers = sortObjectByKey(entry.workers); + } + for(const key in manifest.edge){ + const entry = manifest.edge[key]; + entry.workers = sortObjectByKey(entry.workers); + } + return manifest; + } + writeActionManifest() { + if (!this.actionManifests.takeChanged()) { + return; + } + const actionManifest = this.mergeActionManifests(this.actionManifests.values()); + const actionManifestJsonPath = (0, _path.join)(this.distDir, 'server', `${_constants.SERVER_REFERENCE_MANIFEST}.json`); + const actionManifestJsPath = (0, _path.join)(this.distDir, 'server', `${_constants.SERVER_REFERENCE_MANIFEST}.js`); + const json = JSON.stringify(actionManifest, null, 2); + this.pendingCacheDeletes.push(actionManifestJsonPath); + this.pendingCacheDeletes.push(actionManifestJsPath); + (0, _writeatomic.writeFileAtomic)(actionManifestJsonPath, json); + (0, _writeatomic.writeFileAtomic)(actionManifestJsPath, `self.__RSC_SERVER_MANIFEST=${JSON.stringify(json)}`); + } + loadAppPathsManifest(pageName) { + this.appPathsManifests.set((0, _entrykey.getEntryKey)('app', 'server', pageName), readPartialManifestContent(this.distDir, _constants.APP_PATHS_MANIFEST, pageName, 'app')); + } + writeAppPathsManifest() { + if (!this.appPathsManifests.takeChanged()) { + return; + } + const appPathsManifest = this.mergePagesManifests(this.appPathsManifests.values()); + const appPathsManifestPath = (0, _path.join)(this.distDir, 'server', _constants.APP_PATHS_MANIFEST); + this.pendingCacheDeletes.push(appPathsManifestPath); + (0, _writeatomic.writeFileAtomic)(appPathsManifestPath, JSON.stringify(appPathsManifest, null, 2)); + } + writeSriManifest() { + if (!this.sriEnabled || !this.sriManifests.takeChanged()) { + return; + } + const sriManifest = this.mergeSriManifests(this.sriManifests.values()); + const pathJson = (0, _path.join)(this.distDir, 'server', `${_constants.SUBRESOURCE_INTEGRITY_MANIFEST}.json`); + const pathJs = (0, _path.join)(this.distDir, 'server', `${_constants.SUBRESOURCE_INTEGRITY_MANIFEST}.js`); + this.pendingCacheDeletes.push(pathJson); + this.pendingCacheDeletes.push(pathJs); + (0, _writeatomic.writeFileAtomic)(pathJson, JSON.stringify(sriManifest, null, 2)); + (0, _writeatomic.writeFileAtomic)(pathJs, `self.__SUBRESOURCE_INTEGRITY_MANIFEST=${JSON.stringify(JSON.stringify(sriManifest))}`); + } + loadBuildManifest(pageName, type = 'pages') { + this.buildManifests.set((0, _entrykey.getEntryKey)(type, 'server', pageName), readPartialManifestContent(this.distDir, _constants.BUILD_MANIFEST, pageName, type)); + } + loadClientBuildManifest(pageName, type = 'pages') { + this.clientBuildManifests.set((0, _entrykey.getEntryKey)(type, 'server', pageName), readPartialManifestContent(this.distDir, _constants.TURBOPACK_CLIENT_BUILD_MANIFEST, pageName, type)); + } + loadSriManifest(pageName, type = 'pages') { + if (!this.sriEnabled) return; + this.sriManifests.set((0, _entrykey.getEntryKey)(type, 'client', pageName), readPartialManifestContent(this.distDir, `${_constants.SUBRESOURCE_INTEGRITY_MANIFEST}.json`, pageName, type)); + } + mergeBuildManifests(manifests, lowPriorityFiles) { + const manifest = { + pages: { + '/_app': [] + }, + // Something in next.js depends on these to exist even for app dir rendering + devFiles: [], + polyfillFiles: [], + lowPriorityFiles, + rootMainFiles: [] + }; + for (const m of manifests){ + Object.assign(manifest.pages, m.pages); + if (m.rootMainFiles.length) manifest.rootMainFiles = m.rootMainFiles; + // polyfillFiles should always be the same, so we can overwrite instead of actually merging + if (m.polyfillFiles.length) manifest.polyfillFiles = m.polyfillFiles; + } + manifest.pages = sortObjectByKey(manifest.pages); + return manifest; + } + mergeClientBuildManifests(manifests, rewrites, sortedPageKeys) { + const manifest = { + __rewrites: rewrites, + sortedPages: sortedPageKeys + }; + for (const m of manifests){ + Object.assign(manifest, m); + } + return sortObjectByKey(manifest); + } + writeInterceptionRouteRewriteManifest(devRewrites, productionRewrites) { + const rewrites = productionRewrites ?? { + ...devRewrites, + beforeFiles: (devRewrites?.beforeFiles ?? []).map(_buildmanifestpluginutils.processRoute), + afterFiles: (devRewrites?.afterFiles ?? []).map(_buildmanifestpluginutils.processRoute), + fallback: (devRewrites?.fallback ?? []).map(_buildmanifestpluginutils.processRoute) + }; + const interceptionRewrites = JSON.stringify(rewrites.beforeFiles.filter(require('../../../lib/is-interception-route-rewrite').isInterceptionRouteRewrite)); + if (this.cachedInterceptionRewrites === interceptionRewrites) { + return; + } + this.cachedInterceptionRewrites = interceptionRewrites; + const interceptionRewriteManifestPath = (0, _path.join)(this.distDir, 'server', `${_constants.INTERCEPTION_ROUTE_REWRITE_MANIFEST}.js`); + this.pendingCacheDeletes.push(interceptionRewriteManifestPath); + (0, _writeatomic.writeFileAtomic)(interceptionRewriteManifestPath, `self.__INTERCEPTION_ROUTE_REWRITE_MANIFEST=${JSON.stringify(interceptionRewrites)};`); + } + writeBuildManifest(lowPriorityFiles) { + if (!this.buildManifests.takeChanged()) { + return; + } + const buildManifest = this.mergeBuildManifests(this.buildManifests.values(), lowPriorityFiles); + const buildManifestPath = (0, _path.join)(this.distDir, _constants.BUILD_MANIFEST); + const middlewareBuildManifestPath = (0, _path.join)(this.distDir, 'server', `${_constants.MIDDLEWARE_BUILD_MANIFEST}.js`); + this.pendingCacheDeletes.push(buildManifestPath); + this.pendingCacheDeletes.push(middlewareBuildManifestPath); + (0, _writeatomic.writeFileAtomic)(buildManifestPath, JSON.stringify(buildManifest, null, 2)); + (0, _writeatomic.writeFileAtomic)(middlewareBuildManifestPath, (0, _buildmanifestpluginutils.createEdgeRuntimeManifest)(buildManifest)); + // Write fallback build manifest + const fallbackBuildManifest = this.mergeBuildManifests([ + this.buildManifests.get((0, _entrykey.getEntryKey)('pages', 'server', '_app')), + this.buildManifests.get((0, _entrykey.getEntryKey)('pages', 'server', '_error')) + ].filter(Boolean), lowPriorityFiles); + const fallbackBuildManifestPath = (0, _path.join)(this.distDir, `fallback-${_constants.BUILD_MANIFEST}`); + this.pendingCacheDeletes.push(fallbackBuildManifestPath); + (0, _writeatomic.writeFileAtomic)(fallbackBuildManifestPath, JSON.stringify(fallbackBuildManifest, null, 2)); + } + writeClientBuildManifest(entrypoints, devRewrites, productionRewrites) { + const rewrites = (0, _buildmanifestpluginutils.normalizeRewritesForBuildManifest)(productionRewrites ?? { + ...devRewrites, + beforeFiles: (devRewrites?.beforeFiles ?? []).map(_buildmanifestpluginutils.processRoute), + afterFiles: (devRewrites?.afterFiles ?? []).map(_buildmanifestpluginutils.processRoute), + fallback: (devRewrites?.fallback ?? []).map(_buildmanifestpluginutils.processRoute) + }); + const pagesKeys = [ + ...entrypoints.page.keys() + ]; + if (entrypoints.global.app) { + pagesKeys.push('/_app'); + } + if (entrypoints.global.error) { + pagesKeys.push('/_error'); + } + const sortedPageKeys = (0, _utils.getSortedRoutes)(pagesKeys); + let buildManifestPath = _path.posix.join(_constants.CLIENT_STATIC_FILES_PATH, this.buildId, '_buildManifest.js'); + let ssgManifestPath = _path.posix.join(_constants.CLIENT_STATIC_FILES_PATH, this.buildId, '_ssgManifest.js'); + if (this.dev && !this.clientBuildManifests.takeChanged({ + rewrites, + sortedPageKeys + })) { + return [ + buildManifestPath, + ssgManifestPath + ]; + } + const clientBuildManifest = this.mergeClientBuildManifests(this.clientBuildManifests.values(), rewrites, sortedPageKeys); + const clientBuildManifestJs = `self.__BUILD_MANIFEST = ${JSON.stringify(clientBuildManifest, null, 2)};self.__BUILD_MANIFEST_CB && self.__BUILD_MANIFEST_CB()`; + (0, _writeatomic.writeFileAtomic)((0, _path.join)(this.distDir, buildManifestPath), clientBuildManifestJs); + // This is just an empty placeholder, the actual manifest is written after prerendering in + // packages/next/src/build/index.ts + (0, _writeatomic.writeFileAtomic)((0, _path.join)(this.distDir, ssgManifestPath), _buildmanifestpluginutils.srcEmptySsgManifest); + return [ + buildManifestPath, + ssgManifestPath + ]; + } + loadFontManifest(pageName, type = 'pages') { + this.fontManifests.set((0, _entrykey.getEntryKey)(type, 'server', pageName), readPartialManifestContent(this.distDir, `${_constants.NEXT_FONT_MANIFEST}.json`, pageName, type)); + } + mergeFontManifests(manifests) { + const manifest = { + app: {}, + appUsingSizeAdjust: false, + pages: {}, + pagesUsingSizeAdjust: false + }; + for (const m of manifests){ + Object.assign(manifest.app, m.app); + Object.assign(manifest.pages, m.pages); + manifest.appUsingSizeAdjust = manifest.appUsingSizeAdjust || m.appUsingSizeAdjust; + manifest.pagesUsingSizeAdjust = manifest.pagesUsingSizeAdjust || m.pagesUsingSizeAdjust; + } + manifest.app = sortObjectByKey(manifest.app); + manifest.pages = sortObjectByKey(manifest.pages); + return manifest; + } + async writeNextFontManifest() { + if (!this.fontManifests.takeChanged()) { + return; + } + const fontManifest = this.mergeFontManifests(this.fontManifests.values()); + const json = JSON.stringify(fontManifest, null, 2); + const fontManifestJsonPath = (0, _path.join)(this.distDir, 'server', `${_constants.NEXT_FONT_MANIFEST}.json`); + const fontManifestJsPath = (0, _path.join)(this.distDir, 'server', `${_constants.NEXT_FONT_MANIFEST}.js`); + this.pendingCacheDeletes.push(fontManifestJsonPath); + this.pendingCacheDeletes.push(fontManifestJsPath); + (0, _writeatomic.writeFileAtomic)(fontManifestJsonPath, json); + (0, _writeatomic.writeFileAtomic)(fontManifestJsPath, `self.__NEXT_FONT_MANIFEST=${JSON.stringify(json)}`); + } + /** + * @returns If the manifest was written or not + */ loadMiddlewareManifest(pageName, type) { + const middlewareManifestPath = getManifestPath(pageName, this.distDir, _constants.MIDDLEWARE_MANIFEST, type, true); + // middlewareManifest is actually "edge manifest" and not all routes are edge runtime. If it is not written we skip it. + if (!(0, _fs.existsSync)(middlewareManifestPath)) { + return false; + } + this.middlewareManifests.set((0, _entrykey.getEntryKey)(type === 'middleware' || type === 'instrumentation' ? 'root' : type, 'server', pageName), readPartialManifestContent(this.distDir, _constants.MIDDLEWARE_MANIFEST, pageName, type)); + return true; + } + getMiddlewareManifest(key) { + return this.middlewareManifests.get(key); + } + deleteMiddlewareManifest(key) { + return this.middlewareManifests.delete(key); + } + mergeMiddlewareManifests(manifests) { + const manifest = { + version: 3, + middleware: {}, + sortedMiddleware: [], + functions: {} + }; + let instrumentation = undefined; + for (const m of manifests){ + Object.assign(manifest.functions, m.functions); + Object.assign(manifest.middleware, m.middleware); + if (m.instrumentation) { + instrumentation = m.instrumentation; + } + } + manifest.functions = sortObjectByKey(manifest.functions); + manifest.middleware = sortObjectByKey(manifest.middleware); + const updateFunctionDefinition = (fun)=>{ + return { + ...fun, + files: [ + ...instrumentation?.files ?? [], + ...fun.files + ] + }; + }; + for (const key of Object.keys(manifest.middleware)){ + const value = manifest.middleware[key]; + manifest.middleware[key] = updateFunctionDefinition(value); + } + for (const key of Object.keys(manifest.functions)){ + const value = manifest.functions[key]; + manifest.functions[key] = updateFunctionDefinition(value); + } + for (const fun of Object.values(manifest.functions).concat(Object.values(manifest.middleware))){ + for (const matcher of fun.matchers){ + if (!matcher.regexp) { + matcher.regexp = (0, _routematchutils.safePathToRegexp)(matcher.originalSource, [], { + delimiter: '/', + sensitive: false, + strict: true + }).source.replaceAll('\\/', '/'); + } + } + } + manifest.sortedMiddleware = Object.keys(manifest.middleware); + return manifest; + } + writeMiddlewareManifest() { + let clientMiddlewareManifestPath = _path.posix.join(_constants.CLIENT_STATIC_FILES_PATH, this.buildId, _constants.TURBOPACK_CLIENT_MIDDLEWARE_MANIFEST); + if (this.dev && !this.middlewareManifests.takeChanged()) { + return { + clientMiddlewareManifestPath + }; + } + const middlewareManifest = this.mergeMiddlewareManifests(this.middlewareManifests.values()); + // Server middleware manifest + // Normalize regexes as it uses path-to-regexp + for(const key in middlewareManifest.middleware){ + middlewareManifest.middleware[key].matchers.forEach((matcher)=>{ + if (!matcher.regexp.startsWith('^')) { + const parsedPage = (0, _trytoparsepath.tryToParsePath)(matcher.regexp); + if (parsedPage.error || !parsedPage.regexStr) { + throw Object.defineProperty(new Error(`Invalid source: ${matcher.regexp}`), "__NEXT_ERROR_CODE", { + value: "E442", + enumerable: false, + configurable: true + }); + } + matcher.regexp = parsedPage.regexStr; + } + }); + } + const middlewareManifestPath = (0, _path.join)(this.distDir, 'server', _constants.MIDDLEWARE_MANIFEST); + this.pendingCacheDeletes.push(middlewareManifestPath); + (0, _writeatomic.writeFileAtomic)(middlewareManifestPath, JSON.stringify(middlewareManifest, null, 2)); + // Client middleware manifest This is only used in dev though, packages/next/src/build/index.ts + // writes the mainfest again for builds. + const matchers = middlewareManifest?.middleware['/']?.matchers || []; + const clientMiddlewareManifestJs = `self.__MIDDLEWARE_MATCHERS = ${JSON.stringify(matchers, null, 2)};self.__MIDDLEWARE_MATCHERS_CB && self.__MIDDLEWARE_MATCHERS_CB()`; + this.pendingCacheDeletes.push(clientMiddlewareManifestPath); + (0, _writeatomic.writeFileAtomic)((0, _path.join)(this.distDir, clientMiddlewareManifestPath), clientMiddlewareManifestJs); + return { + clientMiddlewareManifestPath + }; + } + loadPagesManifest(pageName) { + this.pagesManifests.set((0, _entrykey.getEntryKey)('pages', 'server', pageName), readPartialManifestContent(this.distDir, _constants.PAGES_MANIFEST, pageName)); + } + mergePagesManifests(manifests) { + const manifest = {}; + for (const m of manifests){ + Object.assign(manifest, m); + } + return sortObjectByKey(manifest); + } + mergeSriManifests(manifests) { + const manifest = {}; + for (const m of manifests){ + Object.assign(manifest, m); + } + return sortObjectByKey(manifest); + } + writePagesManifest() { + if (!this.pagesManifests.takeChanged()) { + return; + } + const pagesManifest = this.mergePagesManifests(this.pagesManifests.values()); + const pagesManifestPath = (0, _path.join)(this.distDir, 'server', _constants.PAGES_MANIFEST); + this.pendingCacheDeletes.push(pagesManifestPath); + (0, _writeatomic.writeFileAtomic)(pagesManifestPath, JSON.stringify(pagesManifest, null, 2)); + } + writeManifests({ devRewrites, productionRewrites, entrypoints }) { + this.writeActionManifest(); + this.writeAppPathsManifest(); + const lowPriorityFiles = this.writeClientBuildManifest(entrypoints, devRewrites, productionRewrites); + const { clientMiddlewareManifestPath } = this.writeMiddlewareManifest(); + this.writeBuildManifest([ + ...lowPriorityFiles, + clientMiddlewareManifestPath + ]); + this.writeInterceptionRouteRewriteManifest(devRewrites, productionRewrites); + this.writeNextFontManifest(); + this.writePagesManifest(); + this.writeSriManifest(); + // Flush all queued cache deletions in a single require.cache scan + if (this.pendingCacheDeletes.length > 0) { + (0, _requirecache.deleteCache)(this.pendingCacheDeletes); + this.pendingCacheDeletes = []; + } + } +} +function sortObjectByKey(obj) { + return Object.keys(obj).sort().reduce((acc, key)=>{ + acc[key] = obj[key]; + return acc; + }, {}); +} + +//# sourceMappingURL=manifest-loader.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/turbopack/utils.js b/cli/app/node_modules/next/dist/shared/lib/turbopack/utils.js new file mode 100644 index 00000000000..d9d5bae097a --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/turbopack/utils.js @@ -0,0 +1,267 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ModuleBuildError: null, + formatIssue: null, + getIssueKey: null, + isFileSystemCacheEnabledForDev: null, + isRelevantWarning: null, + isWellKnownError: null, + processIssues: null, + renderStyledStringToErrorAnsi: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ModuleBuildError: function() { + return ModuleBuildError; + }, + formatIssue: function() { + return formatIssue; + }, + getIssueKey: function() { + return getIssueKey; + }, + isFileSystemCacheEnabledForDev: function() { + return isFileSystemCacheEnabledForDev; + }, + isRelevantWarning: function() { + return isRelevantWarning; + }, + isWellKnownError: function() { + return isWellKnownError; + }, + processIssues: function() { + return processIssues; + }, + renderStyledStringToErrorAnsi: function() { + return renderStyledStringToErrorAnsi; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _picocolors = require("../../../lib/picocolors"); +const _magicidentifier = require("../magic-identifier"); +const _log = /*#__PURE__*/ _interop_require_wildcard._(require("../../../build/output/log")); +const VERBOSE_ISSUES = !!process.env.NEXT_TURBOPACK_VERBOSE_ISSUES; +class ModuleBuildError extends Error { + constructor(...args){ + super(...args), this.name = 'ModuleBuildError'; + } +} +function isWellKnownError(issue) { + const { title } = issue; + const formattedTitle = renderStyledStringToErrorAnsi(title); + // TODO: add more well known errors + if (formattedTitle.includes('Module not found') || formattedTitle.includes('Unknown module type')) { + return true; + } + return false; +} +function getIssueKey(issue) { + return `${issue.severity}-${issue.filePath}-${JSON.stringify(issue.title)}-${JSON.stringify(issue.description)}`; +} +function processIssues(currentEntryIssues, key, result, throwIssue, logErrors) { + const newIssues = new Map(); + currentEntryIssues.set(key, newIssues); + const relevantIssues = new Set(); + for (const issue of result.issues){ + if (issue.severity !== 'error' && issue.severity !== 'fatal' && issue.severity !== 'warning') continue; + const issueKey = getIssueKey(issue); + newIssues.set(issueKey, issue); + if (issue.severity !== 'warning') { + if (throwIssue) { + const formatted = formatIssue(issue); + relevantIssues.add(formatted); + } else if (logErrors && isWellKnownError(issue)) { + const formatted = formatIssue(issue); + _log.error(formatted); + } + } + } + if (relevantIssues.size && throwIssue) { + throw Object.defineProperty(new ModuleBuildError([ + ...relevantIssues + ].join('\n\n')), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + } +} +function formatFilePath(filePath) { + return filePath.replace('[project]/', './').replaceAll('/./', '/').replace('\\\\?\\', ''); +} +function formatIssue(issue) { + const { filePath, title, description, detail, source, importTraces } = issue; + let { documentationLink } = issue; + const formattedTitle = renderStyledStringToErrorAnsi(title).replace(/\n/g, '\n '); + // TODO: Use error codes to identify these + // TODO: Generalize adapting Turbopack errors to Next.js errors + if (formattedTitle.includes('Module not found')) { + // For compatiblity with webpack + // TODO: include columns in webpack errors. + documentationLink = 'https://nextjs.org/docs/messages/module-not-found'; + } + const formattedFilePath = formatFilePath(filePath); + let message = ''; + if (source?.range) { + const { start } = source.range; + message = `${formattedFilePath}:${start.line + 1}:${start.column + 1}\n${formattedTitle}`; + } else if (formattedFilePath) { + message = `${formattedFilePath}\n${formattedTitle}`; + } else { + message = formattedTitle; + } + message += '\n'; + if (issue.codeFrame) { + message += issue.codeFrame.trimEnd() + '\n\n'; + } + if (description) { + if (description.type === 'text' && description.value.includes(`Cannot find module 'sass'`)) { + message += "To use Next.js' built-in Sass support, you first need to install `sass`.\n"; + message += 'Run `npm i sass` or `yarn add sass` inside your workspace.\n'; + message += '\nLearn more: https://nextjs.org/docs/messages/install-sass\n'; + } else { + message += renderStyledStringToErrorAnsi(description) + '\n\n'; + } + } + // TODO: make it easier to enable this for debugging + if (VERBOSE_ISSUES && detail) { + message += renderStyledStringToErrorAnsi(detail) + '\n\n'; + } + // Render additional sources (e.g., generated code from a loader) + for (const additional of issue.additionalSources ?? []){ + if (additional.codeFrame) { + const additionalFilePath = formatFilePath(additional.source.source.filePath); + const loc = additional.source.range ? `:${additional.source.range.start.line + 1}:${additional.source.range.start.column + 1}` : ''; + message += `${additional.description}:\n${additionalFilePath}${loc}\n${additional.codeFrame.trimEnd()}\n\n`; + } + } + if (importTraces?.length) { + // This is the same logic as in turbopack/crates/turbopack-cli-utils/src/issue.rs + // We end up with multiple traces when the file with the error is reachable from multiple + // different entry points (e.g. ssr, client) + message += `Import trace${importTraces.length > 1 ? 's' : ''}:\n`; + const everyTraceHasADistinctRootLayer = new Set(importTraces.map(leafLayerName).filter((l)=>l != null)).size === importTraces.length; + for(let i = 0; i < importTraces.length; i++){ + const trace = importTraces[i]; + const layer = leafLayerName(trace); + let traceIndent = ' '; + // If this is true, layer must be present + if (everyTraceHasADistinctRootLayer) { + message += ` ${layer}:\n`; + } else { + if (importTraces.length > 1) { + // Otherwise use simple 1 based indices to disambiguate + message += ` #${i + 1}`; + if (layer) { + message += ` [${layer}]`; + } + message += ':\n'; + } else if (layer) { + message += ` [${layer}]:\n`; + } else { + // If there is a single trace and no layer name just don't indent it. + traceIndent = ' '; + } + } + message += formatIssueTrace(trace, traceIndent, !identicalLayers(trace)); + } + } + if (documentationLink) { + message += documentationLink + '\n\n'; + } + return message; +} +/** Returns the first present layer name in the trace */ function leafLayerName(items) { + for (const item of items){ + const layer = item.layer; + if (layer != null) return layer; + } + return undefined; +} +/** + * Returns whether or not all items share the same layer. + * If a layer is absent we ignore it in this analysis + */ function identicalLayers(items) { + const firstPresentLayer = items.findIndex((t)=>t.layer != null); + if (firstPresentLayer === -1) return true // all layers are absent + ; + const layer = items[firstPresentLayer].layer; + for(let i = firstPresentLayer + 1; i < items.length; i++){ + const itemLayer = items[i].layer; + if (itemLayer == null || itemLayer !== layer) { + return false; + } + } + return true; +} +function formatIssueTrace(items, indent, printLayers) { + return `${items.map((item)=>{ + let r = indent; + if (item.fsName !== 'project') { + r += `[${item.fsName}]/`; + } else { + // This is consistent with webpack's output + r += './'; + } + r += item.path; + if (printLayers && item.layer) { + r += ` [${item.layer}]`; + } + return r; + }).join('\n')}\n\n`; +} +function isRelevantWarning(issue) { + return issue.severity === 'warning' && !isNodeModulesIssue(issue); +} +function isNodeModulesIssue(issue) { + if (issue.severity === 'warning' && issue.stage === 'config') { + // Override for the externalize issue + // `Package foo (serverExternalPackages or default list) can't be external` + if (renderStyledStringToErrorAnsi(issue.title).includes("can't be external")) { + return false; + } + } + return issue.severity === 'warning' && (issue.filePath.match(/^(?:.*[\\/])?node_modules(?:[\\/].*)?$/) !== null || // Ignore Next.js itself when running next directly in the monorepo where it is not inside + // node_modules anyway. + // TODO(mischnic) prevent matches when this is published to npm + issue.filePath.startsWith('[project]/packages/next/')); +} +function renderStyledStringToErrorAnsi(string) { + function applyDeobfuscation(str) { + // Use shared deobfuscate function and apply magenta color to identifiers + const deobfuscated = (0, _magicidentifier.deobfuscateText)(str); + // Color any {...} wrapped identifiers with magenta + return deobfuscated.replace(/\{([^}]+)\}/g, (match)=>(0, _picocolors.magenta)(match)); + } + switch(string.type){ + case 'text': + return applyDeobfuscation(string.value); + case 'strong': + return (0, _picocolors.bold)((0, _picocolors.red)(applyDeobfuscation(string.value))); + case 'code': + return (0, _picocolors.green)(applyDeobfuscation(string.value)); + case 'line': + return string.value.map(renderStyledStringToErrorAnsi).join(''); + case 'stack': + return string.value.map(renderStyledStringToErrorAnsi).join('\n'); + default: + throw Object.defineProperty(new Error('Unknown StyledString type', string), "__NEXT_ERROR_CODE", { + value: "E138", + enumerable: false, + configurable: true + }); + } +} +function isFileSystemCacheEnabledForDev(config) { + return config.experimental?.turbopackFileSystemCacheForDev || false; +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/utils.js b/cli/app/node_modules/next/dist/shared/lib/utils.js new file mode 100644 index 00000000000..11e1ccec33b --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/utils.js @@ -0,0 +1,207 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + DecodeError: null, + MiddlewareNotFoundError: null, + MissingStaticPage: null, + NormalizeError: null, + PageNotFoundError: null, + SP: null, + ST: null, + WEB_VITALS: null, + execOnce: null, + getDisplayName: null, + getLocationOrigin: null, + getURL: null, + isAbsoluteUrl: null, + isResSent: null, + loadGetInitialProps: null, + normalizeRepeatedSlashes: null, + stringifyError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + DecodeError: function() { + return DecodeError; + }, + MiddlewareNotFoundError: function() { + return MiddlewareNotFoundError; + }, + MissingStaticPage: function() { + return MissingStaticPage; + }, + NormalizeError: function() { + return NormalizeError; + }, + PageNotFoundError: function() { + return PageNotFoundError; + }, + SP: function() { + return SP; + }, + ST: function() { + return ST; + }, + WEB_VITALS: function() { + return WEB_VITALS; + }, + execOnce: function() { + return execOnce; + }, + getDisplayName: function() { + return getDisplayName; + }, + getLocationOrigin: function() { + return getLocationOrigin; + }, + getURL: function() { + return getURL; + }, + isAbsoluteUrl: function() { + return isAbsoluteUrl; + }, + isResSent: function() { + return isResSent; + }, + loadGetInitialProps: function() { + return loadGetInitialProps; + }, + normalizeRepeatedSlashes: function() { + return normalizeRepeatedSlashes; + }, + stringifyError: function() { + return stringifyError; + } +}); +const WEB_VITALS = [ + 'CLS', + 'FCP', + 'FID', + 'INP', + 'LCP', + 'TTFB' +]; +function execOnce(fn) { + let used = false; + let result; + return (...args)=>{ + if (!used) { + used = true; + result = fn(...args); + } + return result; + }; +} +// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1 +// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3 +const ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\d+\-.]*?:/; +const isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url); +function getLocationOrigin() { + const { protocol, hostname, port } = window.location; + return `${protocol}//${hostname}${port ? ':' + port : ''}`; +} +function getURL() { + const { href } = window.location; + const origin = getLocationOrigin(); + return href.substring(origin.length); +} +function getDisplayName(Component) { + return typeof Component === 'string' ? Component : Component.displayName || Component.name || 'Unknown'; +} +function isResSent(res) { + return res.finished || res.headersSent; +} +function normalizeRepeatedSlashes(url) { + const urlParts = url.split('?'); + const urlNoQuery = urlParts[0]; + return urlNoQuery// first we replace any non-encoded backslashes with forward + // then normalize repeated forward slashes + .replace(/\\/g, '/').replace(/\/\/+/g, '/') + (urlParts[1] ? `?${urlParts.slice(1).join('?')}` : ''); +} +async function loadGetInitialProps(App, ctx) { + if (process.env.NODE_ENV !== 'production') { + if (App.prototype?.getInitialProps) { + const message = `"${getDisplayName(App)}.getInitialProps()" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`; + throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1035", + enumerable: false, + configurable: true + }); + } + } + // when called from _app `ctx` is nested in `ctx` + const res = ctx.res || ctx.ctx && ctx.ctx.res; + if (!App.getInitialProps) { + if (ctx.ctx && ctx.Component) { + // @ts-ignore pageProps default + return { + pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx) + }; + } + return {}; + } + const props = await App.getInitialProps(ctx); + if (res && isResSent(res)) { + return props; + } + if (!props) { + const message = `"${getDisplayName(App)}.getInitialProps()" should resolve to an object. But found "${props}" instead.`; + throw Object.defineProperty(new Error(message), "__NEXT_ERROR_CODE", { + value: "E1025", + enumerable: false, + configurable: true + }); + } + if (process.env.NODE_ENV !== 'production') { + if (Object.keys(props).length === 0 && !ctx.ctx) { + console.warn(`${getDisplayName(App)} returned an empty object from \`getInitialProps\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`); + } + } + return props; +} +const SP = typeof performance !== 'undefined'; +const ST = SP && [ + 'mark', + 'measure', + 'getEntriesByName' +].every((method)=>typeof performance[method] === 'function'); +class DecodeError extends Error { +} +class NormalizeError extends Error { +} +class PageNotFoundError extends Error { + constructor(page){ + super(); + this.code = 'ENOENT'; + this.name = 'PageNotFoundError'; + this.message = `Cannot find module for page: ${page}`; + } +} +class MissingStaticPage extends Error { + constructor(page, message){ + super(); + this.message = `Failed to load static file for page: ${page} ${message}`; + } +} +class MiddlewareNotFoundError extends Error { + constructor(){ + super(); + this.code = 'ENOENT'; + this.message = `Cannot find the middleware module`; + } +} +function stringifyError(error) { + return JSON.stringify({ + message: error.message, + stack: error.stack + }); +} + +//# sourceMappingURL=utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/utils/reflect-utils.js b/cli/app/node_modules/next/dist/shared/lib/utils/reflect-utils.js new file mode 100644 index 00000000000..375c4c7b909 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/utils/reflect-utils.js @@ -0,0 +1,69 @@ +// This regex will have fast negatives meaning valid identifiers may not pass +// this test. However this is only used during static generation to provide hints +// about why a page bailed out of some or all prerendering and we can use bracket notation +// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']` +// even if this would have been fine too `searchParams.ಠ_ಠ` +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + describeHasCheckingStringProperty: null, + describeStringPropertyAccess: null, + wellKnownProperties: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + describeHasCheckingStringProperty: function() { + return describeHasCheckingStringProperty; + }, + describeStringPropertyAccess: function() { + return describeStringPropertyAccess; + }, + wellKnownProperties: function() { + return wellKnownProperties; + } +}); +const isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/; +function describeStringPropertyAccess(target, prop) { + if (isDefinitelyAValidIdentifier.test(prop)) { + return `\`${target}.${prop}\``; + } + return `\`${target}[${JSON.stringify(prop)}]\``; +} +function describeHasCheckingStringProperty(target, prop) { + const stringifiedProp = JSON.stringify(prop); + return `\`Reflect.has(${target}, ${stringifiedProp})\`, \`${stringifiedProp} in ${target}\`, or similar`; +} +const wellKnownProperties = new Set([ + 'hasOwnProperty', + 'isPrototypeOf', + 'propertyIsEnumerable', + 'toString', + 'valueOf', + 'toLocaleString', + // Promise prototype + 'then', + 'catch', + 'finally', + // React Promise extension + 'status', + // 'value', + // 'error', + // React introspection + 'displayName', + '_debugInfo', + // Common tested properties + 'toJSON', + '$$typeof', + '__esModule', + // Tested by flight when checking for iterables + '@@iterator' +]); + +//# sourceMappingURL=reflect-utils.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/utils/warn-once.js b/cli/app/node_modules/next/dist/shared/lib/utils/warn-once.js new file mode 100644 index 00000000000..88ee101fe99 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/utils/warn-once.js @@ -0,0 +1,22 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "warnOnce", { + enumerable: true, + get: function() { + return warnOnce; + } +}); +let warnOnce = (_)=>{}; +if (process.env.NODE_ENV !== 'production') { + const warnings = new Set(); + warnOnce = (msg)=>{ + if (!warnings.has(msg)) { + console.warn(msg); + } + warnings.add(msg); + }; +} + +//# sourceMappingURL=warn-once.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/shared/lib/zod.js b/cli/app/node_modules/next/dist/shared/lib/zod.js new file mode 100644 index 00000000000..9a2dbfdbbb8 --- /dev/null +++ b/cli/app/node_modules/next/dist/shared/lib/zod.js @@ -0,0 +1,101 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + formatZodError: null, + normalizeZodErrors: null, + reportZodError: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + formatZodError: function() { + return formatZodError; + }, + normalizeZodErrors: function() { + return normalizeZodErrors; + }, + reportZodError: function() { + return reportZodError; + } +}); +const _interop_require_wildcard = require("@swc/helpers/_/_interop_require_wildcard"); +const _zod = require("next/dist/compiled/zod"); +const _zodvalidationerror = require("next/dist/compiled/zod-validation-error"); +const _log = /*#__PURE__*/ _interop_require_wildcard._(require("../../build/output/log")); +function processZodErrorMessage(issue) { + let message = issue.message; + let path; + if (issue.path.length > 0) { + if (issue.path.length === 1) { + const identifier = issue.path[0]; + if (typeof identifier === 'number') { + // The first identifier inside path is a number + path = `index ${identifier}`; + } else { + path = `"${identifier}"`; + } + } else { + // joined path to be shown in the error message + path = `"${issue.path.reduce((acc, cur)=>{ + if (typeof cur === 'number') { + // array index + return `${acc}[${cur}]`; + } + if (cur.includes('"')) { + // escape quotes + return `${acc}["${cur.replaceAll('"', '\\"')}"]`; + } + // dot notation + const separator = acc.length === 0 ? '' : '.'; + return acc + separator + cur; + }, '')}"`; + } + } else { + path = ''; + } + if (issue.code === 'invalid_type' && issue.received === _zod.ZodParsedType.undefined) { + // Missing key in object. + return `${path} is missing, expected ${issue.expected}`; + } + if (issue.code === 'invalid_enum_value') { + // Remove "Invalid enum value" prefix from zod default error message + return `Expected ${_zod.util.joinValues(issue.options)}, received '${issue.received}' at ${path}`; + } + return message + (path ? ` at ${path}` : ''); +} +function normalizeZodErrors(error) { + return error.issues.flatMap((issue)=>{ + const issues = [ + { + issue, + message: processZodErrorMessage(issue) + } + ]; + if ('unionErrors' in issue) { + for (const unionError of issue.unionErrors){ + issues.push(...normalizeZodErrors(unionError)); + } + } + return issues; + }); +} +function formatZodError(prefix, error) { + return Object.defineProperty(new Error((0, _zodvalidationerror.fromZodError)(error, { + prefix: prefix + }).toString()), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); +} +function reportZodError(prefix, error) { + _log.error(formatZodError(prefix, error).message); +} + +//# sourceMappingURL=zod.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/anonymous-meta.js b/cli/app/node_modules/next/dist/telemetry/anonymous-meta.js new file mode 100644 index 00000000000..71854db69ac --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/anonymous-meta.js @@ -0,0 +1,89 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getAnonymousMeta", { + enumerable: true, + get: function() { + return getAnonymousMeta; + } +}); +const _isdocker = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/is-docker")); +const _iswsl = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/is-wsl")); +const _os = /*#__PURE__*/ _interop_require_default(require("os")); +const _ciinfo = /*#__PURE__*/ _interop_require_wildcard(require("../server/ci-info")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +let traits; +function getAnonymousMeta() { + if (traits) { + return traits; + } + const cpus = _os.default.cpus() || []; + const { NOW_REGION } = process.env; + traits = { + // Software information + systemPlatform: _os.default.platform(), + systemRelease: _os.default.release(), + systemArchitecture: _os.default.arch(), + // Machine information + cpuCount: cpus.length, + cpuModel: cpus.length ? cpus[0].model : null, + cpuSpeed: cpus.length ? cpus[0].speed : null, + memoryInMb: Math.trunc(_os.default.totalmem() / Math.pow(1024, 2)), + // Environment information + isDocker: (0, _isdocker.default)(), + isNowDev: NOW_REGION === 'dev1', + isWsl: _iswsl.default, + isCI: _ciinfo.isCI, + ciName: _ciinfo.isCI && _ciinfo.name || null, + nextVersion: "16.2.1" + }; + return traits; +} + +//# sourceMappingURL=anonymous-meta.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/detached-flush.js b/cli/app/node_modules/next/dist/telemetry/detached-flush.js new file mode 100644 index 00000000000..352fd0b3d2d --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/detached-flush.js @@ -0,0 +1,56 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _storage = require("./storage"); +const _config = /*#__PURE__*/ _interop_require_default(require("../server/config")); +const _getprojectdir = require("../lib/get-project-dir"); +const _constants = require("../shared/lib/constants"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +(async ()=>{ + const args = [ + ...process.argv + ]; + const eventsFile = args.pop(); + let dir = args.pop(); + const mode = args.pop(); + if (!dir || mode !== 'dev') { + throw Object.defineProperty(new Error(`Invalid flags should be run as node detached-flush dev ./path-to/project [eventsFile]`), "__NEXT_ERROR_CODE", { + value: "E908", + enumerable: false, + configurable: true + }); + } + dir = (0, _getprojectdir.getProjectDir)(dir); + const config = await (0, _config.default)(_constants.PHASE_DEVELOPMENT_SERVER, dir); + const distDir = _path.default.join(dir, config.distDir || '.next'); + // Support both old format (no eventsFile arg) and new format (with eventsFile arg) + const eventsPath = _path.default.join(distDir, eventsFile && !eventsFile.includes('/') ? eventsFile : '_events.json'); + let events; + try { + events = JSON.parse(_fs.default.readFileSync(eventsPath, 'utf8')); + } catch (err) { + if (err.code === 'ENOENT') { + // no events to process we can exit now + process.exit(0); + } + throw err; + } + const telemetry = new _storage.Telemetry({ + distDir + }); + await telemetry.record(events); + await telemetry.flush(); + // finished flushing events clean-up + _fs.default.unlinkSync(eventsPath); +// Don't call process.exit() here - let Node.js exit naturally after +// all pending work completes (e.g., setTimeout in debug telemetry) +})(); + +//# sourceMappingURL=detached-flush.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/events/build.js b/cli/app/node_modules/next/dist/telemetry/events/build.js new file mode 100644 index 00000000000..ea0617f7401 --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/events/build.js @@ -0,0 +1,174 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + ERROR_THROWN_EVENT: null, + EVENT_BUILD_FEATURE_USAGE: null, + EVENT_MCP_TOOL_USAGE: null, + EVENT_NAME_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS: null, + eventAnalyzeCompleted: null, + eventBuildCompleted: null, + eventBuildFailed: null, + eventBuildFeatureUsage: null, + eventBuildOptimize: null, + eventErrorThrown: null, + eventLintCheckCompleted: null, + eventMcpToolUsage: null, + eventPackageUsedInGetServerSideProps: null, + eventTypeCheckCompleted: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + ERROR_THROWN_EVENT: function() { + return ERROR_THROWN_EVENT; + }, + EVENT_BUILD_FEATURE_USAGE: function() { + return EVENT_BUILD_FEATURE_USAGE; + }, + EVENT_MCP_TOOL_USAGE: function() { + return EVENT_MCP_TOOL_USAGE; + }, + EVENT_NAME_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS: function() { + return EVENT_NAME_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS; + }, + eventAnalyzeCompleted: function() { + return eventAnalyzeCompleted; + }, + eventBuildCompleted: function() { + return eventBuildCompleted; + }, + eventBuildFailed: function() { + return eventBuildFailed; + }, + eventBuildFeatureUsage: function() { + return eventBuildFeatureUsage; + }, + eventBuildOptimize: function() { + return eventBuildOptimize; + }, + eventErrorThrown: function() { + return eventErrorThrown; + }, + eventLintCheckCompleted: function() { + return eventLintCheckCompleted; + }, + eventMcpToolUsage: function() { + return eventMcpToolUsage; + }, + eventPackageUsedInGetServerSideProps: function() { + return eventPackageUsedInGetServerSideProps; + }, + eventTypeCheckCompleted: function() { + return eventTypeCheckCompleted; + } +}); +const _errortelemetryutils = require("../../lib/error-telemetry-utils"); +const REGEXP_DIRECTORY_DUNDER = /[\\/]__[^\\/]+(?<![\\/]__(?:tests|mocks))__[\\/]/i; +const REGEXP_DIRECTORY_TESTS = /[\\/]__(tests|mocks)__[\\/]/i; +const REGEXP_FILE_TEST = /\.(?:spec|test)\.[^.]+$/i; +const EVENT_TYPE_CHECK_COMPLETED = 'NEXT_TYPE_CHECK_COMPLETED'; +function eventTypeCheckCompleted(event) { + return { + eventName: EVENT_TYPE_CHECK_COMPLETED, + payload: event + }; +} +const EVENT_LINT_CHECK_COMPLETED = 'NEXT_LINT_CHECK_COMPLETED'; +function eventLintCheckCompleted(event) { + return { + eventName: EVENT_LINT_CHECK_COMPLETED, + payload: event + }; +} +const EVENT_ANALYZE_COMPLETED = 'NEXT_ANALYZE_COMPLETED'; +function eventAnalyzeCompleted(event) { + return { + eventName: EVENT_ANALYZE_COMPLETED, + payload: event + }; +} +const EVENT_BUILD_COMPLETED = 'NEXT_BUILD_COMPLETED'; +function eventBuildCompleted(pagePaths, event) { + return { + eventName: EVENT_BUILD_COMPLETED, + payload: { + ...event, + totalPageCount: pagePaths.length, + hasDunderPages: pagePaths.some((path)=>REGEXP_DIRECTORY_DUNDER.test(path)), + hasTestPages: pagePaths.some((path)=>REGEXP_DIRECTORY_TESTS.test(path) || REGEXP_FILE_TEST.test(path)), + totalAppPagesCount: event.totalAppPagesCount + } + }; +} +const EVENT_BUILD_FAILED = 'NEXT_BUILD_FAILED'; +function eventBuildFailed(event) { + return { + eventName: EVENT_BUILD_FAILED, + payload: event + }; +} +const EVENT_BUILD_OPTIMIZED = 'NEXT_BUILD_OPTIMIZED'; +function eventBuildOptimize(pagePaths, event) { + return { + eventName: EVENT_BUILD_OPTIMIZED, + payload: { + ...event, + totalPageCount: pagePaths.length, + hasDunderPages: pagePaths.some((path)=>REGEXP_DIRECTORY_DUNDER.test(path)), + hasTestPages: pagePaths.some((path)=>REGEXP_DIRECTORY_TESTS.test(path) || REGEXP_FILE_TEST.test(path)), + totalAppPagesCount: event.totalAppPagesCount, + staticAppPagesCount: event.staticAppPagesCount, + serverAppPagesCount: event.serverAppPagesCount, + edgeRuntimeAppCount: event.edgeRuntimeAppCount, + edgeRuntimePagesCount: event.edgeRuntimePagesCount, + isRspack: process.env.NEXT_RSPACK !== undefined + } + }; +} +const EVENT_BUILD_FEATURE_USAGE = 'NEXT_BUILD_FEATURE_USAGE'; +function eventBuildFeatureUsage(usages) { + return usages.map(({ featureName, invocationCount })=>({ + eventName: EVENT_BUILD_FEATURE_USAGE, + payload: { + featureName, + invocationCount + } + })); +} +const EVENT_NAME_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS = 'NEXT_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS'; +function eventPackageUsedInGetServerSideProps(packagesUsedInServerSideProps) { + return packagesUsedInServerSideProps.map((packageName)=>({ + eventName: EVENT_NAME_PACKAGE_USED_IN_GET_SERVER_SIDE_PROPS, + payload: { + package: packageName + } + })); +} +const EVENT_MCP_TOOL_USAGE = 'NEXT_MCP_TOOL_USAGE'; +function eventMcpToolUsage(usages) { + return usages.map(({ featureName, invocationCount })=>({ + eventName: EVENT_MCP_TOOL_USAGE, + payload: { + toolName: featureName, + invocationCount + } + })); +} +const ERROR_THROWN_EVENT = 'NEXT_ERROR_THROWN'; +function eventErrorThrown(error, anonymizedLocation) { + return { + eventName: ERROR_THROWN_EVENT, + payload: { + errorCode: (0, _errortelemetryutils.extractNextErrorCode)(error) || 'Unknown', + location: anonymizedLocation + } + }; +} + +//# sourceMappingURL=build.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/events/error-feedback.js b/cli/app/node_modules/next/dist/telemetry/events/error-feedback.js new file mode 100644 index 00000000000..b267626dc40 --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/events/error-feedback.js @@ -0,0 +1,31 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + eventErrorFeedback: null, + eventNameErrorFeedback: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + eventErrorFeedback: function() { + return eventErrorFeedback; + }, + eventNameErrorFeedback: function() { + return eventNameErrorFeedback; + } +}); +const eventNameErrorFeedback = 'NEXT_ERROR_FEEDBACK'; +function eventErrorFeedback(event) { + return { + eventName: eventNameErrorFeedback, + payload: event + }; +} + +//# sourceMappingURL=error-feedback.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/events/index.js b/cli/app/node_modules/next/dist/telemetry/events/index.js new file mode 100644 index 00000000000..aa2ef706255 --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/events/index.js @@ -0,0 +1,41 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + EVENT_MCP_TOOL_USAGE: null, + eventMcpToolUsage: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + EVENT_MCP_TOOL_USAGE: function() { + return _build.EVENT_MCP_TOOL_USAGE; + }, + eventMcpToolUsage: function() { + return _build.eventMcpToolUsage; + } +}); +0 && __export(require("./version")) && __export(require("./build")) && __export(require("./plugins")); +_export_star(require("./version"), exports); +const _build = _export_star(require("./build"), exports); +_export_star(require("./plugins"), exports); +function _export_star(from, to) { + Object.keys(from).forEach(function(k) { + if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) { + Object.defineProperty(to, k, { + enumerable: true, + get: function() { + return from[k]; + } + }); + } + }); + return from; +} + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/events/plugins.js b/cli/app/node_modules/next/dist/telemetry/events/plugins.js new file mode 100644 index 00000000000..63e10418b79 --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/events/plugins.js @@ -0,0 +1,51 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "eventNextPlugins", { + enumerable: true, + get: function() { + return eventNextPlugins; + } +}); +const _findup = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/find-up")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +const EVENT_PLUGIN_PRESENT = 'NEXT_PACKAGE_DETECTED'; +async function eventNextPlugins(dir) { + try { + const packageJsonPath = await (0, _findup.default)('package.json', { + cwd: dir + }); + if (!packageJsonPath) { + return []; + } + const { dependencies = {}, devDependencies = {} } = require(packageJsonPath); + const deps = { + ...devDependencies, + ...dependencies + }; + return Object.keys(deps).reduce((events, plugin)=>{ + const version = deps[plugin]; + // Don't add deps without a version set + if (!version) { + return events; + } + events.push({ + eventName: EVENT_PLUGIN_PRESENT, + payload: { + packageName: plugin, + packageVersion: version + } + }); + return events; + }, []); + } catch (_) { + return []; + } +} + +//# sourceMappingURL=plugins.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/events/swc-load-failure.js b/cli/app/node_modules/next/dist/telemetry/events/swc-load-failure.js new file mode 100644 index 00000000000..6fabc060d02 --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/events/swc-load-failure.js @@ -0,0 +1,55 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "eventSwcLoadFailure", { + enumerable: true, + get: function() { + return eventSwcLoadFailure; + } +}); +const _shared = require("../../trace/shared"); +const _packagejson = require("next/package.json"); +const EVENT_PLUGIN_PRESENT = 'NEXT_SWC_LOAD_FAILURE'; +async function eventSwcLoadFailure(event) { + const telemetry = _shared.traceGlobals.get('telemetry'); + // can't continue if telemetry isn't set + if (!telemetry) return; + let glibcVersion; + let installedSwcPackages; + try { + var _process_report; + // @ts-ignore + glibcVersion = (_process_report = process.report) == null ? void 0 : _process_report.getReport().header.glibcVersionRuntime; + } catch {} + try { + const pkgNames = Object.keys(_packagejson.optionalDependencies || {}).filter((pkg)=>pkg.startsWith('@next/swc')); + const installedPkgs = []; + for (const pkg of pkgNames){ + try { + const { version } = require(`${pkg}/package.json`); + installedPkgs.push(`${pkg}@${version}`); + } catch {} + } + if (installedPkgs.length > 0) { + installedSwcPackages = installedPkgs.sort().join(','); + } + } catch {} + telemetry.record({ + eventName: EVENT_PLUGIN_PRESENT, + payload: { + nextVersion: "16.2.1", + glibcVersion, + installedSwcPackages, + arch: process.arch, + platform: process.platform, + nodeVersion: process.versions.node, + wasm: event == null ? void 0 : event.wasm, + nativeBindingsErrorCode: event == null ? void 0 : event.nativeBindingsErrorCode + } + }); + // ensure this event is flushed before process exits + await telemetry.flush(); +} + +//# sourceMappingURL=swc-load-failure.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/events/version.js b/cli/app/node_modules/next/dist/telemetry/events/version.js new file mode 100644 index 00000000000..7970ad556d7 --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/events/version.js @@ -0,0 +1,66 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "eventCliSession", { + enumerable: true, + get: function() { + return eventCliSession; + } +}); +const EVENT_VERSION = 'NEXT_CLI_SESSION_STARTED'; +function eventCliSession(nextConfig, event) { + var _nextConfig_experimental_staleTimes, _nextConfig_experimental_staleTimes1, _nextConfig_reactCompiler, _nextConfig_reactCompiler1; + // This should be an invariant, if it fails our build tooling is broken. + if (typeof "16.2.1" !== 'string') { + return []; + } + const { images, i18n } = nextConfig || {}; + const payload = { + nextVersion: "16.2.1", + nodeVersion: process.version, + cliCommand: event.cliCommand, + isSrcDir: event.isSrcDir, + hasNowJson: event.hasNowJson, + isCustomServer: event.isCustomServer, + hasNextConfig: nextConfig.configOrigin !== 'default', + buildTarget: 'default', + hasWebpackConfig: typeof (nextConfig == null ? void 0 : nextConfig.webpack) === 'function', + hasBabelConfig: false, + imageEnabled: !!images, + imageFutureEnabled: !!images, + basePathEnabled: !!(nextConfig == null ? void 0 : nextConfig.basePath), + i18nEnabled: !!i18n, + locales: (i18n == null ? void 0 : i18n.locales) ? i18n.locales.join(',') : null, + localeDomainsCount: (i18n == null ? void 0 : i18n.domains) ? i18n.domains.length : null, + localeDetectionEnabled: !i18n ? null : i18n.localeDetection !== false, + imageDomainsCount: (images == null ? void 0 : images.domains) ? images.domains.length : null, + imageRemotePatternsCount: (images == null ? void 0 : images.remotePatterns) ? images.remotePatterns.length : null, + imageLocalPatternsCount: (images == null ? void 0 : images.localPatterns) ? images.localPatterns.length : null, + imageSizes: (images == null ? void 0 : images.imageSizes) ? images.imageSizes.join(',') : null, + imageQualities: (images == null ? void 0 : images.qualities) ? images.qualities.join(',') : null, + imageLoader: images == null ? void 0 : images.loader, + imageFormats: (images == null ? void 0 : images.formats) ? images.formats.join(',') : null, + nextConfigOutput: (nextConfig == null ? void 0 : nextConfig.output) || null, + trailingSlashEnabled: !!(nextConfig == null ? void 0 : nextConfig.trailingSlash), + reactStrictMode: !!(nextConfig == null ? void 0 : nextConfig.reactStrictMode), + webpackVersion: event.webpackVersion || null, + turboFlag: event.turboFlag || false, + isRspack: process.env.NEXT_RSPACK !== undefined, + appDir: event.appDir, + pagesDir: event.pagesDir, + staticStaleTime: ((_nextConfig_experimental_staleTimes = nextConfig.experimental.staleTimes) == null ? void 0 : _nextConfig_experimental_staleTimes.static) ?? null, + dynamicStaleTime: ((_nextConfig_experimental_staleTimes1 = nextConfig.experimental.staleTimes) == null ? void 0 : _nextConfig_experimental_staleTimes1.dynamic) ?? null, + reactCompiler: Boolean(nextConfig.reactCompiler), + reactCompilerCompilationMode: typeof nextConfig.reactCompiler !== 'boolean' ? ((_nextConfig_reactCompiler = nextConfig.reactCompiler) == null ? void 0 : _nextConfig_reactCompiler.compilationMode) ?? null : null, + reactCompilerPanicThreshold: typeof nextConfig.reactCompiler !== 'boolean' ? ((_nextConfig_reactCompiler1 = nextConfig.reactCompiler) == null ? void 0 : _nextConfig_reactCompiler1.panicThreshold) ?? null : null + }; + return [ + { + eventName: EVENT_VERSION, + payload + } + ]; +} + +//# sourceMappingURL=version.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/flush-telemetry.js b/cli/app/node_modules/next/dist/telemetry/flush-telemetry.js new file mode 100644 index 00000000000..b971445f43d --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/flush-telemetry.js @@ -0,0 +1,19 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "flushTelemetry", { + enumerable: true, + get: function() { + return flushTelemetry; + } +}); +const _shared = require("../trace/shared"); +async function flushTelemetry() { + let telemetry = _shared.traceGlobals.get('telemetry'); + if (telemetry) { + await telemetry.flush(); + } +} + +//# sourceMappingURL=flush-telemetry.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/post-telemetry-payload.js b/cli/app/node_modules/next/dist/telemetry/post-telemetry-payload.js new file mode 100644 index 00000000000..9d41bad607d --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/post-telemetry-payload.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "postNextTelemetryPayload", { + enumerable: true, + get: function() { + return postNextTelemetryPayload; + } +}); +const _asyncretry = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/async-retry")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function postNextTelemetryPayload(payload, signal) { + if (!signal && 'timeout' in AbortSignal) { + signal = AbortSignal.timeout(5000); + } + return (0, _asyncretry.default)(()=>fetch('https://telemetry.nextjs.org/api/v1/record', { + method: 'POST', + body: JSON.stringify(payload), + headers: { + 'content-type': 'application/json' + }, + signal + }).then((res)=>{ + if (!res.ok) { + const err = Object.defineProperty(new Error(res.statusText), "__NEXT_ERROR_CODE", { + value: "E394", + enumerable: false, + configurable: true + }); + err.response = res; + throw err; + } + }), { + minTimeout: 500, + retries: 1, + factor: 1 + }).catch(()=>{ + // We swallow errors when telemetry cannot be sent + })// Ensure promise is voided + .then(()=>{}, ()=>{}); +} + +//# sourceMappingURL=post-telemetry-payload.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/project-id.js b/cli/app/node_modules/next/dist/telemetry/project-id.js new file mode 100644 index 00000000000..16712385c5d --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/project-id.js @@ -0,0 +1,48 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "getRawProjectId", { + enumerable: true, + get: function() { + return getRawProjectId; + } +}); +const _child_process = require("child_process"); +// Q: Why does Next.js need a project ID? Why is it looking at my git remote? +// A: +// Next.js' telemetry is and always will be completely anonymous. Because of +// this, we need a way to differentiate different projects to track feature +// usage accurately. For example, to prevent a feature from appearing to be +// constantly `used` and then `unused` when switching between local projects. +// To reiterate, +// we **never** can read your actual git remote. The value is hashed one-way +// with random salt data, making it impossible for us to reverse or try to +// guess the remote by re-computing hashes. +async function _getProjectIdByGit() { + try { + let resolve, reject; + const promise = new Promise((res, rej)=>{ + resolve = res; + reject = rej; + }); + (0, _child_process.exec)(`git config --local --get remote.origin.url`, { + timeout: 1000, + windowsHide: true + }, (error, stdout)=>{ + if (error) { + reject(error); + return; + } + resolve(stdout); + }); + return String(await promise).trim(); + } catch (_) { + return null; + } +} +async function getRawProjectId() { + return await _getProjectIdByGit() || process.env.REPOSITORY_URL || process.cwd(); +} + +//# sourceMappingURL=project-id.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/telemetry/storage.js b/cli/app/node_modules/next/dist/telemetry/storage.js new file mode 100644 index 00000000000..07994b12bca --- /dev/null +++ b/cli/app/node_modules/next/dist/telemetry/storage.js @@ -0,0 +1,301 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "Telemetry", { + enumerable: true, + get: function() { + return Telemetry; + } +}); +const _picocolors = require("../lib/picocolors"); +const _conf = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/conf")); +const _crypto = require("crypto"); +const _isdocker = /*#__PURE__*/ _interop_require_default(require("next/dist/compiled/is-docker")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _anonymousmeta = require("./anonymous-meta"); +const _ciinfo = /*#__PURE__*/ _interop_require_wildcard(require("../server/ci-info")); +const _posttelemetrypayload = require("./post-telemetry-payload"); +const _projectid = require("./project-id"); +const _ponyfill = require("next/dist/compiled/@edge-runtime/ponyfill"); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function _getRequireWildcardCache(nodeInterop) { + if (typeof WeakMap !== "function") return null; + var cacheBabelInterop = new WeakMap(); + var cacheNodeInterop = new WeakMap(); + return (_getRequireWildcardCache = function(nodeInterop) { + return nodeInterop ? cacheNodeInterop : cacheBabelInterop; + })(nodeInterop); +} +function _interop_require_wildcard(obj, nodeInterop) { + if (!nodeInterop && obj && obj.__esModule) { + return obj; + } + if (obj === null || typeof obj !== "object" && typeof obj !== "function") { + return { + default: obj + }; + } + var cache = _getRequireWildcardCache(nodeInterop); + if (cache && cache.has(obj)) { + return cache.get(obj); + } + var newObj = { + __proto__: null + }; + var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; + for(var key in obj){ + if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; + if (desc && (desc.get || desc.set)) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + newObj.default = obj; + if (cache) { + cache.set(obj, newObj); + } + return newObj; +} +// This is the key that stores whether or not telemetry is enabled or disabled. +const TELEMETRY_KEY_ENABLED = 'telemetry.enabled'; +// This is the key that specifies when the user was informed about anonymous +// telemetry collection. +const TELEMETRY_KEY_NOTIFY_DATE = 'telemetry.notifiedAt'; +// This is a quasi-persistent identifier used to dedupe recurring events. It's +// generated from random data and completely anonymous. +const TELEMETRY_KEY_ID = `telemetry.anonymousId`; +// This is the cryptographic salt that is included within every hashed value. +// This salt value is never sent to us, ensuring privacy and the one-way nature +// of the hash (prevents dictionary lookups of pre-computed hashes). +// See the `oneWayHash` function. +const TELEMETRY_KEY_SALT = `telemetry.salt`; +function getStorageDirectory(distDir) { + const isLikelyEphemeral = _ciinfo.isCI || (0, _isdocker.default)(); + if (isLikelyEphemeral) { + return _path.default.join(distDir, 'cache'); + } + return undefined; +} +class Telemetry { + constructor({ distDir }){ + this.notify = ()=>{ + if (this.isDisabled || !this.conf) { + return; + } + // The end-user has already been notified about our telemetry integration. We + // don't need to constantly annoy them about it. + // We will re-inform users about the telemetry if significant changes are + // ever made. + if (this.conf.get(TELEMETRY_KEY_NOTIFY_DATE, '')) { + return; + } + this.conf.set(TELEMETRY_KEY_NOTIFY_DATE, Date.now().toString()); + console.log(`${(0, _picocolors.magenta)((0, _picocolors.bold)('Attention'))}: Next.js now collects completely anonymous telemetry regarding usage.`); + console.log(`This information is used to shape Next.js' roadmap and prioritize features.`); + console.log(`You can learn more, including how to opt-out if you'd not like to participate in this anonymous program, by visiting the following URL:`); + console.log((0, _picocolors.cyan)('https://nextjs.org/telemetry')); + console.log(); + }; + this.setEnabled = (_enabled)=>{ + const enabled = !!_enabled; + this.conf && this.conf.set(TELEMETRY_KEY_ENABLED, enabled); + return this.conf && this.conf.path; + }; + this.oneWayHash = (payload)=>{ + const hash = (0, _crypto.createHash)('sha256'); + // Always prepend the payload value with salt. This ensures the hash is truly + // one-way. + hash.update(this.salt); + // Update is an append operation, not a replacement. The salt from the prior + // update is still present! + hash.update(payload); + return hash.digest('hex'); + }; + this.record = (_events, deferred)=>{ + const prom = (deferred ? // flushDetached we can skip starting the initial + // submitRecord which will then be cancelled + new Promise((resolve)=>resolve({ + isFulfilled: true, + isRejected: false, + value: _events + })) : this.submitRecord(_events)).then((value)=>({ + isFulfilled: true, + isRejected: false, + value + })).catch((reason)=>({ + isFulfilled: false, + isRejected: true, + reason + }))// Acts as `Promise#finally` because `catch` transforms the error + .then((res)=>{ + // Clean up the event to prevent unbounded `Set` growth + if (!deferred) { + this.queue.delete(prom); + } + return res; + }); + prom._events = Array.isArray(_events) ? _events : [ + _events + ]; + prom._controller = prom._controller; + // Track this `Promise` so we can flush pending events + this.queue.add(prom); + return prom; + }; + this.flush = async ()=>{ + return Promise.all(this.queue).catch(()=>null); + }; + // writes current events to disk and spawns separate + // detached process to submit the records without blocking + // the main process from exiting + this.flushDetached = (mode, dir)=>{ + const allEvents = []; + this.queue.forEach((item)=>{ + try { + var _item__controller; + (_item__controller = item._controller) == null ? void 0 : _item__controller.abort(); + allEvents.push(...item._events); + } catch (_) { + // if we fail to abort ignore this event + } + }); + if (allEvents.length === 0) { + // No events to flush + return; + } + _fs.default.mkdirSync(this.distDir, { + recursive: true + }); + // Use unique filename per process to avoid race conditions between parent/child + const eventsFile = `_events_${process.pid}.json`; + _fs.default.writeFileSync(_path.default.join(this.distDir, eventsFile), JSON.stringify(allEvents)); + // Note: cross-spawn is not used here as it causes + // a new command window to appear when we don't want it to + const child_process = require('child_process'); + // we use spawnSync when debugging to ensure logs are piped + // correctly to stdout/stderr + const spawn = this.NEXT_TELEMETRY_DEBUG ? child_process.spawnSync : child_process.spawn; + spawn(process.execPath, [ + require.resolve('./detached-flush'), + mode, + dir, + eventsFile + ], { + detached: !this.NEXT_TELEMETRY_DEBUG, + windowsHide: true, + shell: false, + ...this.NEXT_TELEMETRY_DEBUG ? { + stdio: 'inherit' + } : {} + }); + }; + this.submitRecord = async (_events)=>{ + let events; + if (Array.isArray(_events)) { + events = _events; + } else { + events = [ + _events + ]; + } + if (events.length < 1) { + return Promise.resolve(); + } + if (this.NEXT_TELEMETRY_DEBUG) { + // Return a promise that resolves after logging to ensure the output + // is captured before the process exits (e.g., during flushDetached) + return new Promise((resolve)=>{ + setTimeout(()=>{ + // Print to standard error to simplify selecting the output + events.forEach(({ eventName, payload })=>console.error(`[telemetry] ` + JSON.stringify({ + eventName, + payload + }, null, 2))); + resolve(undefined); + }, 100); + }); + } + // Skip recording telemetry if the feature is disabled + if (this.isDisabled) { + return Promise.resolve(); + } + const postController = new _ponyfill.AbortController(); + const res = (0, _posttelemetrypayload.postNextTelemetryPayload)({ + context: { + anonymousId: this.anonymousId, + projectId: await this.getProjectId(), + sessionId: this.sessionId + }, + meta: (0, _anonymousmeta.getAnonymousMeta)(), + events: events.map(({ eventName, payload })=>({ + eventName, + fields: payload + })) + }, postController.signal); + res._controller = postController; + return res; + }; + // Read in the constructor so that .env can be loaded before reading + const { NEXT_TELEMETRY_DISABLED, NEXT_TELEMETRY_DEBUG } = process.env; + this.NEXT_TELEMETRY_DISABLED = NEXT_TELEMETRY_DISABLED; + this.NEXT_TELEMETRY_DEBUG = NEXT_TELEMETRY_DEBUG; + this.distDir = distDir; + const storageDirectory = getStorageDirectory(distDir); + try { + // `conf` incorrectly throws a permission error during initialization + // instead of waiting for first use. We need to handle it, otherwise the + // process may crash. + this.conf = new _conf.default({ + projectName: 'nextjs', + cwd: storageDirectory + }); + } catch (_) { + this.conf = null; + } + this.sessionId = (0, _crypto.randomBytes)(32).toString('hex'); + this.queue = new Set(); + this.notify(); + } + get anonymousId() { + const val = this.conf && this.conf.get(TELEMETRY_KEY_ID); + if (val) { + return val; + } + const generated = (0, _crypto.randomBytes)(32).toString('hex'); + this.conf && this.conf.set(TELEMETRY_KEY_ID, generated); + return generated; + } + get salt() { + const val = this.conf && this.conf.get(TELEMETRY_KEY_SALT); + if (val) { + return val; + } + const generated = (0, _crypto.randomBytes)(16).toString('hex'); + this.conf && this.conf.set(TELEMETRY_KEY_SALT, generated); + return generated; + } + get isDisabled() { + if (!!this.NEXT_TELEMETRY_DISABLED || !this.conf) { + return true; + } + return this.conf.get(TELEMETRY_KEY_ENABLED, true) === false; + } + get isEnabled() { + return !this.NEXT_TELEMETRY_DISABLED && !!this.conf && this.conf.get(TELEMETRY_KEY_ENABLED, true) !== false; + } + async getProjectId() { + this.loadProjectId = this.loadProjectId || (0, _projectid.getRawProjectId)(); + return this.oneWayHash(await this.loadProjectId); + } +} + +//# sourceMappingURL=storage.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/index.js b/cli/app/node_modules/next/dist/trace/index.js new file mode 100644 index 00000000000..09c3f597a95 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/index.js @@ -0,0 +1,58 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + Span: null, + SpanStatus: null, + exportTraceState: null, + flushAllTraces: null, + getTraceEvents: null, + hrtimeToEpochNanoseconds: null, + initializeTraceState: null, + recordTraceEvents: null, + setGlobal: null, + trace: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Span: function() { + return _trace.Span; + }, + SpanStatus: function() { + return _trace.SpanStatus; + }, + exportTraceState: function() { + return _trace.exportTraceState; + }, + flushAllTraces: function() { + return _trace.flushAllTraces; + }, + getTraceEvents: function() { + return _trace.getTraceEvents; + }, + hrtimeToEpochNanoseconds: function() { + return _trace.hrtimeToEpochNanoseconds; + }, + initializeTraceState: function() { + return _trace.initializeTraceState; + }, + recordTraceEvents: function() { + return _trace.recordTraceEvents; + }, + setGlobal: function() { + return _shared.setGlobal; + }, + trace: function() { + return _trace.trace; + } +}); +const _trace = require("./trace"); +const _shared = require("./shared"); + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/report/index.js b/cli/app/node_modules/next/dist/trace/report/index.js new file mode 100644 index 00000000000..d7434dc95e6 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/report/index.js @@ -0,0 +1,37 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "reporter", { + enumerable: true, + get: function() { + return reporter; + } +}); +const _totelemetry = /*#__PURE__*/ _interop_require_default(require("./to-telemetry")); +const _tojson = /*#__PURE__*/ _interop_require_default(require("./to-json")); +const _tojsonbuild = /*#__PURE__*/ _interop_require_default(require("./to-json-build")); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +class MultiReporter { + constructor(reporters){ + this.reporters = []; + this.reporters = reporters; + } + async flushAll(opts) { + await Promise.all(this.reporters.map((reporter)=>reporter.flushAll(opts))); + } + report(event) { + this.reporters.forEach((reporter)=>reporter.report(event)); + } +} +const reporter = new MultiReporter([ + _tojson.default, + _tojsonbuild.default, + _totelemetry.default +]); + +//# sourceMappingURL=index.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/report/to-json-build.js b/cli/app/node_modules/next/dist/trace/report/to-json-build.js new file mode 100644 index 00000000000..ce4277822f5 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/report/to-json-build.js @@ -0,0 +1,40 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _shared = require("../shared"); +const _constants = require("../../shared/lib/constants"); +const _tojson = require("./to-json"); +const allowlistedEvents = new Set([ + 'next-build', + 'run-turbopack', + 'run-webpack', + 'run-typescript', + 'run-eslint', + 'static-check', + 'collect-build-traces', + 'static-generation', + 'output-export-full-static-export', + 'adapter-handle-build-complete', + 'output-standalone', + 'telemetry-flush', + 'turbopack-build-events', + 'turbopack-persistence', + 'turbopack-compaction' +]); +const _default = (0, _tojson.createJsonReporter)({ + filename: 'trace-build', + sizeLimit: Infinity, + filter: (event)=>{ + const phase = _shared.traceGlobals.get('phase'); + return phase === _constants.PHASE_PRODUCTION_BUILD && allowlistedEvents.has(event.name); + } +}); + +//# sourceMappingURL=to-json-build.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/report/to-json.js b/cli/app/node_modules/next/dist/trace/report/to-json.js new file mode 100644 index 00000000000..b79a4629201 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/report/to-json.js @@ -0,0 +1,165 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + batcher: null, + createJsonReporter: null, + default: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + batcher: function() { + return batcher; + }, + createJsonReporter: function() { + return createJsonReporter; + }, + default: function() { + return _default; + } +}); +const _shared = require("../shared"); +const _fs = /*#__PURE__*/ _interop_require_default(require("fs")); +const _path = /*#__PURE__*/ _interop_require_default(require("path")); +const _constants = require("../../shared/lib/constants"); +function _interop_require_default(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} +function batcher(reportEvents) { + const events = []; + // Promise queue to ensure events are always sent on flushAll + const queue = new Set(); + return { + flushAll: async ()=>{ + await Promise.all(queue); + if (events.length > 0) { + await reportEvents(events); + events.length = 0; + } + }, + report: (event)=>{ + events.push(event); + if (events.length > 100) { + const evts = events.slice(); + events.length = 0; + const report = reportEvents(evts); + queue.add(report); + report.then(()=>queue.delete(report)); + } + } + }; +} +const writeStreamOptions = { + flags: 'a', + encoding: 'utf8' +}; +class RotatingWriteStream { + constructor(file, sizeLimit){ + this.file = file; + this.size = 0; + this.sizeLimit = sizeLimit; + this.createWriteStream(); + } + createWriteStream() { + this.writeStream = _fs.default.createWriteStream(this.file, writeStreamOptions); + } + // Recreate the file + async rotate() { + await this.end(); + try { + _fs.default.unlinkSync(this.file); + } catch (err) { + // It's fine if the file does not exist yet + if (err.code !== 'ENOENT') { + throw err; + } + } + this.size = 0; + this.createWriteStream(); + this.rotatePromise = undefined; + } + async write(data) { + if (this.rotatePromise) await this.rotatePromise; + this.size += data.length; + if (this.size > this.sizeLimit) { + await (this.rotatePromise = this.rotate()); + } + if (!this.writeStream.write(data, 'utf8')) { + if (this.drainPromise === undefined) { + this.drainPromise = new Promise((resolve, _reject)=>{ + this.writeStream.once('drain', ()=>{ + this.drainPromise = undefined; + resolve(); + }); + }); + } + await this.drainPromise; + } + } + end() { + return new Promise((resolve)=>{ + this.writeStream.end(resolve); + }); + } +} +function createJsonReporter(options) { + let writeStream; + let batch; + function report(event) { + if (options.filter && !options.filter(event)) { + return; + } + const distDir = _shared.traceGlobals.get('distDir'); + const phase = _shared.traceGlobals.get('phase'); + if (!distDir || !phase) { + return; + } + if (!batch) { + batch = batcher(async (events)=>{ + if (!writeStream) { + await _fs.default.promises.mkdir(distDir, { + recursive: true + }); + const file = _path.default.join(distDir, options.filename); + const limit = typeof options.sizeLimit === 'function' ? options.sizeLimit(phase) : options.sizeLimit; + writeStream = new RotatingWriteStream(file, limit); + } + const eventsJson = JSON.stringify(events); + try { + await writeStream.write(eventsJson + '\n'); + } catch (err) { + console.log(err); + } + }); + } + batch.report({ + ...event, + traceId: _shared.traceId + }); + } + return { + flushAll: (opts)=>batch ? batch.flushAll().then(()=>{ + const phase = _shared.traceGlobals.get('phase'); + // Only end writeStream when manually flushing in production + if ((opts == null ? void 0 : opts.end) || phase !== _constants.PHASE_DEVELOPMENT_SERVER) { + return writeStream.end(); + } + }) : undefined, + report + }; +} +const _default = createJsonReporter({ + filename: 'trace', + sizeLimit: (phase)=>// Development is limited to 50MB, production is unlimited + phase === _constants.PHASE_DEVELOPMENT_SERVER ? 52428800 : Infinity +}); + +//# sourceMappingURL=to-json.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/report/to-telemetry.js b/cli/app/node_modules/next/dist/trace/report/to-telemetry.js new file mode 100644 index 00000000000..473cf0d2446 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/report/to-telemetry.js @@ -0,0 +1,36 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +Object.defineProperty(exports, "default", { + enumerable: true, + get: function() { + return _default; + } +}); +const _shared = require("../shared"); +const TRACE_EVENT_ACCESSLIST = new Map(Object.entries({ + 'webpack-invalidated': 'WEBPACK_INVALIDATED' +})); +const reportToTelemetry = ({ name, duration })=>{ + const eventName = TRACE_EVENT_ACCESSLIST.get(name); + if (!eventName) { + return; + } + const telemetry = _shared.traceGlobals.get('telemetry'); + if (!telemetry) { + return; + } + telemetry.record({ + eventName, + payload: { + durationInMicroseconds: duration + } + }); +}; +const _default = { + flushAll: ()=>{}, + report: reportToTelemetry +}; + +//# sourceMappingURL=to-telemetry.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/shared.js b/cli/app/node_modules/next/dist/trace/shared.js new file mode 100644 index 00000000000..842982532d3 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/shared.js @@ -0,0 +1,39 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + setGlobal: null, + traceGlobals: null, + traceId: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + setGlobal: function() { + return setGlobal; + }, + traceGlobals: function() { + return traceGlobals; + }, + traceId: function() { + return traceId; + } +}); +const _nodecrypto = require("node:crypto"); +let _traceGlobals = global._traceGlobals; +if (!_traceGlobals) { + _traceGlobals = new Map(); +} +global._traceGlobals = _traceGlobals; +const traceGlobals = _traceGlobals; +const setGlobal = (key, val)=>{ + traceGlobals.set(key, val); +}; +const traceId = process.env.TRACE_ID || process.env.NEXT_PRIVATE_TRACE_ID || (0, _nodecrypto.randomBytes)(8).toString('hex'); + +//# sourceMappingURL=shared.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/dist/trace/trace.js b/cli/app/node_modules/next/dist/trace/trace.js new file mode 100644 index 00000000000..6304a8c5cd9 --- /dev/null +++ b/cli/app/node_modules/next/dist/trace/trace.js @@ -0,0 +1,211 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { + value: true +}); +0 && (module.exports = { + Span: null, + SpanStatus: null, + clearTraceEvents: null, + exportTraceState: null, + flushAllTraces: null, + getTraceEvents: null, + hrtimeToEpochNanoseconds: null, + initializeTraceState: null, + recordTraceEvents: null, + trace: null +}); +function _export(target, all) { + for(var name in all)Object.defineProperty(target, name, { + enumerable: true, + get: all[name] + }); +} +_export(exports, { + Span: function() { + return Span; + }, + SpanStatus: function() { + return SpanStatus; + }, + clearTraceEvents: function() { + return clearTraceEvents; + }, + exportTraceState: function() { + return exportTraceState; + }, + flushAllTraces: function() { + return flushAllTraces; + }, + getTraceEvents: function() { + return getTraceEvents; + }, + hrtimeToEpochNanoseconds: function() { + return hrtimeToEpochNanoseconds; + }, + initializeTraceState: function() { + return initializeTraceState; + }, + recordTraceEvents: function() { + return recordTraceEvents; + }, + trace: function() { + return trace; + } +}); +const _report = require("./report"); +const NUM_OF_MICROSEC_IN_NANOSEC = BigInt('1000'); +const NUM_OF_MILLISEC_IN_NANOSEC = BigInt('1000000'); +let count = 0; +const getId = ()=>{ + count++; + return count; +}; +let defaultParentSpanId; +let shouldSaveTraceEvents; +let savedTraceEvents = []; +const RECORD_SPAN_THRESHOLD_MS = parseInt(process.env.NEXT_TRACE_SPAN_THRESHOLD_MS ?? '-1'); +var SpanStatus = /*#__PURE__*/ function(SpanStatus) { + SpanStatus["Started"] = "started"; + SpanStatus["Stopped"] = "stopped"; + return SpanStatus; +}({}); +class Span { + constructor({ name, parentId, attrs, startTime }){ + this.name = name; + this.parentId = parentId ?? defaultParentSpanId; + this.attrs = attrs ? { + ...attrs + } : {}; + this.status = "started"; + this.id = getId(); + this._start = startTime || process.hrtime.bigint(); + // hrtime cannot be used to reconstruct tracing span's actual start time + // since it does not have relation to clock time: + // `These times are relative to an arbitrary time in the past, and not related to the time of day and therefore not subject to clock drift` + // https://nodejs.org/api/process.html#processhrtimetime + // Capturing current datetime as additional metadata for external reconstruction. + this.now = Date.now(); + } + // Durations are reported as microseconds. This gives 1000x the precision + // of something like Date.now(), which reports in milliseconds. + // Additionally, ~285 years can be safely represented as microseconds as + // a float64 in both JSON and JavaScript. + stop(stopTime) { + if (this.status === "stopped") { + // Don't report the same span twice. + // TODO: In the future this should throw as `.stop()` shouldn't be called multiple times. + return; + } + const end = stopTime || process.hrtime.bigint(); + const duration = (end - this._start) / NUM_OF_MICROSEC_IN_NANOSEC; + this.status = "stopped"; + if (duration > Number.MAX_SAFE_INTEGER) { + throw Object.defineProperty(new Error(`Duration is too long to express as float64: ${duration}`), "__NEXT_ERROR_CODE", { + value: "E1030", + enumerable: false, + configurable: true + }); + } + const timestamp = this._start / NUM_OF_MICROSEC_IN_NANOSEC; + const traceEvent = { + name: this.name, + duration: Number(duration), + timestamp: Number(timestamp), + id: this.id, + parentId: this.parentId, + tags: this.attrs, + startTime: this.now + }; + if (duration > RECORD_SPAN_THRESHOLD_MS * 1000) { + _report.reporter.report(traceEvent); + if (shouldSaveTraceEvents) { + savedTraceEvents.push(traceEvent); + } + } + } + traceChild(name, attrs) { + return new Span({ + name, + parentId: this.id, + attrs + }); + } + manualTraceChild(name, // Start time in nanoseconds since epoch. + startTime, // Stop time in nanoseconds since epoch. + stopTime, attrs) { + // We need to convert the time info to the same base as hrtime since that is used usually. + const correction = process.hrtime.bigint() - BigInt(Date.now()) * NUM_OF_MILLISEC_IN_NANOSEC; + const span = new Span({ + name, + parentId: this.id, + attrs, + startTime: startTime ? startTime + correction : process.hrtime.bigint() + }); + span.stop(stopTime ? stopTime + correction : process.hrtime.bigint()); + } + getId() { + return this.id; + } + setAttribute(key, value) { + this.attrs[key] = value; + } + traceFn(fn) { + try { + return fn(this); + } catch (e) { + this.attrs['failed'] = true; + throw e; + } finally{ + this.stop(); + } + } + async traceAsyncFn(fn) { + try { + return await fn(this); + } catch (e) { + this.attrs['failed'] = true; + throw e; + } finally{ + this.stop(); + } + } +} +const trace = (name, parentId, attrs)=>{ + return new Span({ + name, + parentId, + attrs + }); +}; +const flushAllTraces = (opts)=>_report.reporter.flushAll(opts); +const exportTraceState = ()=>({ + defaultParentSpanId, + lastId: count, + shouldSaveTraceEvents + }); +const initializeTraceState = (state)=>{ + count = state.lastId; + defaultParentSpanId = state.defaultParentSpanId; + shouldSaveTraceEvents = state.shouldSaveTraceEvents; +}; +function getTraceEvents() { + return savedTraceEvents; +} +function recordTraceEvents(events) { + for (const traceEvent of events){ + _report.reporter.report(traceEvent); + if (traceEvent.id > count) { + count = traceEvent.id + 1; + } + } + if (shouldSaveTraceEvents) { + savedTraceEvents.push(...events); + } +} +const clearTraceEvents = ()=>savedTraceEvents = []; +function hrtimeToEpochNanoseconds(hrtimeValue) { + const offset = BigInt(Date.now()) * NUM_OF_MILLISEC_IN_NANOSEC - process.hrtime.bigint(); + return hrtimeValue + offset; +} + +//# sourceMappingURL=trace.js.map \ No newline at end of file diff --git a/cli/app/node_modules/next/font/google/target.css b/cli/app/node_modules/next/font/google/target.css new file mode 100644 index 00000000000..e3eb179b340 --- /dev/null +++ b/cli/app/node_modules/next/font/google/target.css @@ -0,0 +1 @@ +/* target file for webpack loader */ diff --git a/cli/app/node_modules/next/node_modules/@next/env/dist/index.js b/cli/app/node_modules/next/node_modules/@next/env/dist/index.js new file mode 100644 index 00000000000..a2b8afbe0ea --- /dev/null +++ b/cli/app/node_modules/next/node_modules/@next/env/dist/index.js @@ -0,0 +1 @@ +(()=>{var e={383:e=>{"use strict";function _searchLast(e,t){const n=Array.from(e.matchAll(t));return n.length>0?n.slice(-1)[0].index:-1}function _interpolate(e,t,n){const r=_searchLast(e,/(?!(?<=\\))\$/g);if(r===-1)return e;const o=e.slice(r);const s=/((?!(?<=\\))\${?([\w]+)(?::-([^}\\]*))?}?)/;const i=o.match(s);if(i!=null){const[,r,o,s]=i;return _interpolate(e.replace(r,t[o]||s||n.parsed[o]||""),t,n)}return e}function _resolveEscapeSequences(e){return e.replace(/\\\$/g,"$")}function expand(e){const t=e.ignoreProcessEnv?{}:process.env;for(const n in e.parsed){const r=Object.prototype.hasOwnProperty.call(t,n)?t[n]:e.parsed[n];e.parsed[n]=_resolveEscapeSequences(_interpolate(r,t,e))}for(const n in e.parsed){t[n]=e.parsed[n]}return e}e.exports.j=expand},234:(e,t,n)=>{const r=n(147);const o=n(17);const s=n(37);const i=n(113);const c=n(803);const a=c.version;const p=/(?:^|^)\s*(?:export\s+)?([\w.-]+)(?:\s*=\s*?|:\s+?)(\s*'(?:\\'|[^'])*'|\s*"(?:\\"|[^"])*"|\s*`(?:\\`|[^`])*`|[^#\r\n]+)?\s*(?:#.*)?(?:$|$)/gm;function parse(e){const t={};let n=e.toString();n=n.replace(/\r\n?/gm,"\n");let r;while((r=p.exec(n))!=null){const e=r[1];let n=r[2]||"";n=n.trim();const o=n[0];n=n.replace(/^(['"`])([\s\S]*)\1$/gm,"$2");if(o==='"'){n=n.replace(/\\n/g,"\n");n=n.replace(/\\r/g,"\r")}t[e]=n}return t}function _parseVault(e){const t=_vaultPath(e);const n=l.configDotenv({path:t});if(!n.parsed){throw new Error(`MISSING_DATA: Cannot parse ${t} for an unknown reason`)}const r=_dotenvKey(e).split(",");const o=r.length;let s;for(let e=0;e<o;e++){try{const t=r[e].trim();const o=_instructions(n,t);s=l.decrypt(o.ciphertext,o.key);break}catch(t){if(e+1>=o){throw t}}}return l.parse(s)}function _log(e){console.log(`[dotenv@${a}][INFO] ${e}`)}function _warn(e){console.log(`[dotenv@${a}][WARN] ${e}`)}function _debug(e){console.log(`[dotenv@${a}][DEBUG] ${e}`)}function _dotenvKey(e){if(e&&e.DOTENV_KEY&&e.DOTENV_KEY.length>0){return e.DOTENV_KEY}if(process.env.DOTENV_KEY&&process.env.DOTENV_KEY.length>0){return process.env.DOTENV_KEY}return""}function _instructions(e,t){let n;try{n=new URL(t)}catch(e){if(e.code==="ERR_INVALID_URL"){throw new Error("INVALID_DOTENV_KEY: Wrong format. Must be in valid uri format like dotenv://:key_1234@dotenv.org/vault/.env.vault?environment=development")}throw e}const r=n.password;if(!r){throw new Error("INVALID_DOTENV_KEY: Missing key part")}const o=n.searchParams.get("environment");if(!o){throw new Error("INVALID_DOTENV_KEY: Missing environment part")}const s=`DOTENV_VAULT_${o.toUpperCase()}`;const i=e.parsed[s];if(!i){throw new Error(`NOT_FOUND_DOTENV_ENVIRONMENT: Cannot locate environment ${s} in your .env.vault file.`)}return{ciphertext:i,key:r}}function _vaultPath(e){let t=o.resolve(process.cwd(),".env");if(e&&e.path&&e.path.length>0){t=e.path}return t.endsWith(".vault")?t:`${t}.vault`}function _resolveHome(e){return e[0]==="~"?o.join(s.homedir(),e.slice(1)):e}function _configVault(e){_log("Loading env from encrypted .env.vault");const t=l._parseVault(e);let n=process.env;if(e&&e.processEnv!=null){n=e.processEnv}l.populate(n,t,e);return{parsed:t}}function configDotenv(e){let t=o.resolve(process.cwd(),".env");let n="utf8";const s=Boolean(e&&e.debug);if(e){if(e.path!=null){t=_resolveHome(e.path)}if(e.encoding!=null){n=e.encoding}}try{const o=l.parse(r.readFileSync(t,{encoding:n}));let s=process.env;if(e&&e.processEnv!=null){s=e.processEnv}l.populate(s,o,e);return{parsed:o}}catch(e){if(s){_debug(`Failed to load ${t} ${e.message}`)}return{error:e}}}function config(e){const t=_vaultPath(e);if(_dotenvKey(e).length===0){return l.configDotenv(e)}if(!r.existsSync(t)){_warn(`You set DOTENV_KEY but you are missing a .env.vault file at ${t}. Did you forget to build it?`);return l.configDotenv(e)}return l._configVault(e)}function decrypt(e,t){const n=Buffer.from(t.slice(-64),"hex");let r=Buffer.from(e,"base64");const o=r.slice(0,12);const s=r.slice(-16);r=r.slice(12,-16);try{const e=i.createDecipheriv("aes-256-gcm",n,o);e.setAuthTag(s);return`${e.update(r)}${e.final()}`}catch(e){const t=e instanceof RangeError;const n=e.message==="Invalid key length";const r=e.message==="Unsupported state or unable to authenticate data";if(t||n){const e="INVALID_DOTENV_KEY: It must be 64 characters long (or more)";throw new Error(e)}else if(r){const e="DECRYPTION_FAILED: Please check your DOTENV_KEY";throw new Error(e)}else{console.error("Error: ",e.code);console.error("Error: ",e.message);throw e}}}function populate(e,t,n={}){const r=Boolean(n&&n.debug);const o=Boolean(n&&n.override);if(typeof t!=="object"){throw new Error("OBJECT_REQUIRED: Please check the processEnv argument being passed to populate")}for(const n of Object.keys(t)){if(Object.prototype.hasOwnProperty.call(e,n)){if(o===true){e[n]=t[n]}if(r){if(o===true){_debug(`"${n}" is already defined and WAS overwritten`)}else{_debug(`"${n}" is already defined and was NOT overwritten`)}}}else{e[n]=t[n]}}}const l={configDotenv:configDotenv,_configVault:_configVault,_parseVault:_parseVault,config:config,decrypt:decrypt,parse:parse,populate:populate};e.exports.configDotenv=l.configDotenv;e.exports._configVault=l._configVault;e.exports._parseVault=l._parseVault;e.exports.config=l.config;e.exports.decrypt=l.decrypt;e.exports.parse=l.parse;e.exports.populate=l.populate;e.exports=l},113:e=>{"use strict";e.exports=require("crypto")},147:e=>{"use strict";e.exports=require("fs")},37:e=>{"use strict";e.exports=require("os")},17:e=>{"use strict";e.exports=require("path")},803:e=>{"use strict";e.exports=JSON.parse('{"name":"dotenv","version":"16.3.1","description":"Loads environment variables from .env file","main":"lib/main.js","types":"lib/main.d.ts","exports":{".":{"types":"./lib/main.d.ts","require":"./lib/main.js","default":"./lib/main.js"},"./config":"./config.js","./config.js":"./config.js","./lib/env-options":"./lib/env-options.js","./lib/env-options.js":"./lib/env-options.js","./lib/cli-options":"./lib/cli-options.js","./lib/cli-options.js":"./lib/cli-options.js","./package.json":"./package.json"},"scripts":{"dts-check":"tsc --project tests/types/tsconfig.json","lint":"standard","lint-readme":"standard-markdown","pretest":"npm run lint && npm run dts-check","test":"tap tests/*.js --100 -Rspec","prerelease":"npm test","release":"standard-version"},"repository":{"type":"git","url":"git://github.com/motdotla/dotenv.git"},"funding":"https://github.com/motdotla/dotenv?sponsor=1","keywords":["dotenv","env",".env","environment","variables","config","settings"],"readmeFilename":"README.md","license":"BSD-2-Clause","devDependencies":{"@definitelytyped/dtslint":"^0.0.133","@types/node":"^18.11.3","decache":"^4.6.1","sinon":"^14.0.1","standard":"^17.0.0","standard-markdown":"^7.1.0","standard-version":"^9.5.0","tap":"^16.3.0","tar":"^6.1.11","typescript":"^4.8.4"},"engines":{"node":">=12"},"browser":{"fs":false}}')}};var t={};function __nccwpck_require__(n){var r=t[n];if(r!==undefined){return r.exports}var o=t[n]={exports:{}};var s=true;try{e[n](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete t[n]}return o.exports}(()=>{__nccwpck_require__.n=e=>{var t=e&&e.__esModule?()=>e["default"]:()=>e;__nccwpck_require__.d(t,{a:t});return t}})();(()=>{__nccwpck_require__.d=(e,t)=>{for(var n in t){if(__nccwpck_require__.o(t,n)&&!__nccwpck_require__.o(e,n)){Object.defineProperty(e,n,{enumerable:true,get:t[n]})}}}})();(()=>{__nccwpck_require__.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t)})();(()=>{__nccwpck_require__.r=e=>{if(typeof Symbol!=="undefined"&&Symbol.toStringTag){Object.defineProperty(e,Symbol.toStringTag,{value:"Module"})}Object.defineProperty(e,"__esModule",{value:true})}})();if(typeof __nccwpck_require__!=="undefined")__nccwpck_require__.ab=__dirname+"/";var n={};(()=>{"use strict";__nccwpck_require__.r(n);__nccwpck_require__.d(n,{initialEnv:()=>a,updateInitialEnv:()=>updateInitialEnv,processEnv:()=>processEnv,resetEnv:()=>resetEnv,loadEnvConfig:()=>loadEnvConfig});var e=__nccwpck_require__(147);var t=__nccwpck_require__.n(e);var r=__nccwpck_require__(17);var o=__nccwpck_require__.n(r);var s=__nccwpck_require__(234);var i=__nccwpck_require__.n(s);var c=__nccwpck_require__(383);let a=undefined;let p=undefined;let l=undefined;let u=[];let _=[];function updateInitialEnv(e){Object.assign(a||{},e)}function replaceProcessEnv(e){Object.keys(process.env).forEach((t=>{if(!t.startsWith("__NEXT_PRIVATE")){if(e[t]===undefined||e[t]===""){delete process.env[t]}}}));Object.entries(e).forEach((([e,t])=>{process.env[e]=t}))}function processEnv(e,t,n=console,o=false,i){var p;if(!a){a=Object.assign({},process.env)}if(!o&&(process.env.__NEXT_PROCESSED_ENV||e.length===0)){return[process.env]}process.env.__NEXT_PROCESSED_ENV="true";const l=Object.assign({},a);const u={};for(const o of e){try{let e={};e.parsed=s.parse(o.contents);e=(0,c.j)(e);if(e.parsed&&!_.some((e=>e.contents===o.contents&&e.path===o.path))){i===null||i===void 0?void 0:i(o.path)}for(const t of Object.keys(e.parsed||{})){if(typeof u[t]==="undefined"&&typeof l[t]==="undefined"){u[t]=(p=e.parsed)===null||p===void 0?void 0:p[t]}}o.env=e.parsed||{}}catch(e){n.error(`Failed to load env from ${r.join(t||"",o.path)}`,e)}}return[Object.assign(process.env,u),u]}function resetEnv(){if(a){replaceProcessEnv(a)}}function loadEnvConfig(t,n,o=console,s=false,i){if(!a){a=Object.assign({},process.env)}if(p&&!s){return{combinedEnv:p,parsedEnv:l,loadedEnvFiles:u}}replaceProcessEnv(a);_=u;u=[];const c=process.env.NODE_ENV==="test";const d=c?"test":n?"development":"production";const f=[`.env.${d}.local`,d!=="test"&&`.env.local`,`.env.${d}`,".env"].filter(Boolean);for(const n of f){const s=r.join(t,n);try{const t=e.statSync(s);if(!t.isFile()&&!t.isFIFO()){continue}const r=e.readFileSync(s,"utf8");u.push({path:n,contents:r,env:{}})}catch(e){if(e.code!=="ENOENT"){o.error(`Failed to load env from ${n}`,e)}}}[p,l]=processEnv(u,t,o,s,i);return{combinedEnv:p,parsedEnv:l,loadedEnvFiles:u}}})();module.exports=n})(); \ No newline at end of file diff --git a/cli/app/node_modules/next/node_modules/@next/env/package.json b/cli/app/node_modules/next/node_modules/@next/env/package.json new file mode 100644 index 00000000000..3d066e291cb --- /dev/null +++ b/cli/app/node_modules/next/node_modules/@next/env/package.json @@ -0,0 +1,36 @@ +{ + "name": "@next/env", + "version": "16.2.1", + "keywords": [ + "react", + "next", + "next.js", + "dotenv" + ], + "description": "Next.js dotenv file loading", + "repository": { + "type": "git", + "url": "https://github.com/vercel/next.js", + "directory": "packages/next-env" + }, + "author": "Next.js Team <support@vercel.com>", + "license": "MIT", + "main": "dist/index.js", + "types": "dist/index.d.ts", + "files": [ + "dist" + ], + "scripts": { + "dev": "ncc build ./index.ts -w -o dist/", + "prebuild:source": "node ../../scripts/rm.mjs dist", + "types": "tsc --declaration --emitDeclarationOnly --declarationDir dist", + "build:source": "ncc build ./index.ts -o ./dist/ --minify --no-cache --no-source-map-register", + "build": "pnpm build:source && pnpm types", + "prepublishOnly": "cd ../../ && turbo run build" + }, + "devDependencies": { + "@vercel/ncc": "0.34.0", + "dotenv": "16.3.1", + "dotenv-expand": "10.0.0" + } +} diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/at-rule.js b/cli/app/node_modules/next/node_modules/postcss/lib/at-rule.js new file mode 100644 index 00000000000..9486447b029 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/at-rule.js @@ -0,0 +1,25 @@ +'use strict' + +let Container = require('./container') + +class AtRule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'atrule' + } + + append(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.append(...children) + } + + prepend(...children) { + if (!this.proxyOf.nodes) this.nodes = [] + return super.prepend(...children) + } +} + +module.exports = AtRule +AtRule.default = AtRule + +Container.registerAtRule(AtRule) diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/comment.js b/cli/app/node_modules/next/node_modules/postcss/lib/comment.js new file mode 100644 index 00000000000..c56650645ca --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/comment.js @@ -0,0 +1,13 @@ +'use strict' + +let Node = require('./node') + +class Comment extends Node { + constructor(defaults) { + super(defaults) + this.type = 'comment' + } +} + +module.exports = Comment +Comment.default = Comment diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/container.js b/cli/app/node_modules/next/node_modules/postcss/lib/container.js new file mode 100644 index 00000000000..914c0530829 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/container.js @@ -0,0 +1,439 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let Declaration = require('./declaration') +let Comment = require('./comment') +let Node = require('./node') + +let parse, Rule, AtRule, Root + +function cleanSource(nodes) { + return nodes.map(i => { + if (i.nodes) i.nodes = cleanSource(i.nodes) + delete i.source + return i + }) +} + +function markDirtyUp(node) { + node[isClean] = false + if (node.proxyOf.nodes) { + for (let i of node.proxyOf.nodes) { + markDirtyUp(i) + } + } +} + +class Container extends Node { + append(...children) { + for (let child of children) { + let nodes = this.normalize(child, this.last) + for (let node of nodes) this.proxyOf.nodes.push(node) + } + + this.markDirty() + + return this + } + + cleanRaws(keepBetween) { + super.cleanRaws(keepBetween) + if (this.nodes) { + for (let node of this.nodes) node.cleanRaws(keepBetween) + } + } + + each(callback) { + if (!this.proxyOf.nodes) return undefined + let iterator = this.getIterator() + + let index, result + while (this.indexes[iterator] < this.proxyOf.nodes.length) { + index = this.indexes[iterator] + result = callback(this.proxyOf.nodes[index], index) + if (result === false) break + + this.indexes[iterator] += 1 + } + + delete this.indexes[iterator] + return result + } + + every(condition) { + return this.nodes.every(condition) + } + + getIterator() { + if (!this.lastEach) this.lastEach = 0 + if (!this.indexes) this.indexes = {} + + this.lastEach += 1 + let iterator = this.lastEach + this.indexes[iterator] = 0 + + return iterator + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (!node[prop]) { + return node[prop] + } else if ( + prop === 'each' || + (typeof prop === 'string' && prop.startsWith('walk')) + ) { + return (...args) => { + return node[prop]( + ...args.map(i => { + if (typeof i === 'function') { + return (child, index) => i(child.toProxy(), index) + } else { + return i + } + }) + ) + } + } else if (prop === 'every' || prop === 'some') { + return cb => { + return node[prop]((child, ...other) => + cb(child.toProxy(), ...other) + ) + } + } else if (prop === 'root') { + return () => node.root().toProxy() + } else if (prop === 'nodes') { + return node.nodes.map(i => i.toProxy()) + } else if (prop === 'first' || prop === 'last') { + return node[prop].toProxy() + } else { + return node[prop] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if (prop === 'name' || prop === 'params' || prop === 'selector') { + node.markDirty() + } + return true + } + } + } + + index(child) { + if (typeof child === 'number') return child + if (child.proxyOf) child = child.proxyOf + return this.proxyOf.nodes.indexOf(child) + } + + insertAfter(exist, add) { + let existIndex = this.index(exist) + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex]).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex + 1, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (existIndex < index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + insertBefore(exist, add) { + let existIndex = this.index(exist) + let type = existIndex === 0 ? 'prepend' : false + let nodes = this.normalize(add, this.proxyOf.nodes[existIndex], type).reverse() + existIndex = this.index(exist) + for (let node of nodes) this.proxyOf.nodes.splice(existIndex, 0, node) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (existIndex <= index) { + this.indexes[id] = index + nodes.length + } + } + + this.markDirty() + + return this + } + + normalize(nodes, sample) { + if (typeof nodes === 'string') { + nodes = cleanSource(parse(nodes).nodes) + } else if (Array.isArray(nodes)) { + nodes = nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type === 'root' && this.type !== 'document') { + nodes = nodes.nodes.slice(0) + for (let i of nodes) { + if (i.parent) i.parent.removeChild(i, 'ignore') + } + } else if (nodes.type) { + nodes = [nodes] + } else if (nodes.prop) { + if (typeof nodes.value === 'undefined') { + throw new Error('Value field is missed in node creation') + } else if (typeof nodes.value !== 'string') { + nodes.value = String(nodes.value) + } + nodes = [new Declaration(nodes)] + } else if (nodes.selector) { + nodes = [new Rule(nodes)] + } else if (nodes.name) { + nodes = [new AtRule(nodes)] + } else if (nodes.text) { + nodes = [new Comment(nodes)] + } else { + throw new Error('Unknown node type in node creation') + } + + let processed = nodes.map(i => { + /* c8 ignore next */ + if (!i[my]) Container.rebuild(i) + i = i.proxyOf + if (i.parent) i.parent.removeChild(i) + if (i[isClean]) markDirtyUp(i) + if (typeof i.raws.before === 'undefined') { + if (sample && typeof sample.raws.before !== 'undefined') { + i.raws.before = sample.raws.before.replace(/\S/g, '') + } + } + i.parent = this.proxyOf + return i + }) + + return processed + } + + prepend(...children) { + children = children.reverse() + for (let child of children) { + let nodes = this.normalize(child, this.first, 'prepend').reverse() + for (let node of nodes) this.proxyOf.nodes.unshift(node) + for (let id in this.indexes) { + this.indexes[id] = this.indexes[id] + nodes.length + } + } + + this.markDirty() + + return this + } + + push(child) { + child.parent = this + this.proxyOf.nodes.push(child) + return this + } + + removeAll() { + for (let node of this.proxyOf.nodes) node.parent = undefined + this.proxyOf.nodes = [] + + this.markDirty() + + return this + } + + removeChild(child) { + child = this.index(child) + this.proxyOf.nodes[child].parent = undefined + this.proxyOf.nodes.splice(child, 1) + + let index + for (let id in this.indexes) { + index = this.indexes[id] + if (index >= child) { + this.indexes[id] = index - 1 + } + } + + this.markDirty() + + return this + } + + replaceValues(pattern, opts, callback) { + if (!callback) { + callback = opts + opts = {} + } + + this.walkDecls(decl => { + if (opts.props && !opts.props.includes(decl.prop)) return + if (opts.fast && !decl.value.includes(opts.fast)) return + + decl.value = decl.value.replace(pattern, callback) + }) + + this.markDirty() + + return this + } + + some(condition) { + return this.nodes.some(condition) + } + + walk(callback) { + return this.each((child, i) => { + let result + try { + result = callback(child, i) + } catch (e) { + throw child.addToError(e) + } + if (result !== false && child.walk) { + result = child.walk(callback) + } + + return result + }) + } + + walkAtRules(name, callback) { + if (!callback) { + callback = name + return this.walk((child, i) => { + if (child.type === 'atrule') { + return callback(child, i) + } + }) + } + if (name instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'atrule' && name.test(child.name)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'atrule' && child.name === name) { + return callback(child, i) + } + }) + } + + walkComments(callback) { + return this.walk((child, i) => { + if (child.type === 'comment') { + return callback(child, i) + } + }) + } + + walkDecls(prop, callback) { + if (!callback) { + callback = prop + return this.walk((child, i) => { + if (child.type === 'decl') { + return callback(child, i) + } + }) + } + if (prop instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'decl' && prop.test(child.prop)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'decl' && child.prop === prop) { + return callback(child, i) + } + }) + } + + walkRules(selector, callback) { + if (!callback) { + callback = selector + + return this.walk((child, i) => { + if (child.type === 'rule') { + return callback(child, i) + } + }) + } + if (selector instanceof RegExp) { + return this.walk((child, i) => { + if (child.type === 'rule' && selector.test(child.selector)) { + return callback(child, i) + } + }) + } + return this.walk((child, i) => { + if (child.type === 'rule' && child.selector === selector) { + return callback(child, i) + } + }) + } + + get first() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[0] + } + + get last() { + if (!this.proxyOf.nodes) return undefined + return this.proxyOf.nodes[this.proxyOf.nodes.length - 1] + } +} + +Container.registerParse = dependant => { + parse = dependant +} + +Container.registerRule = dependant => { + Rule = dependant +} + +Container.registerAtRule = dependant => { + AtRule = dependant +} + +Container.registerRoot = dependant => { + Root = dependant +} + +module.exports = Container +Container.default = Container + +/* c8 ignore start */ +Container.rebuild = node => { + if (node.type === 'atrule') { + Object.setPrototypeOf(node, AtRule.prototype) + } else if (node.type === 'rule') { + Object.setPrototypeOf(node, Rule.prototype) + } else if (node.type === 'decl') { + Object.setPrototypeOf(node, Declaration.prototype) + } else if (node.type === 'comment') { + Object.setPrototypeOf(node, Comment.prototype) + } else if (node.type === 'root') { + Object.setPrototypeOf(node, Root.prototype) + } + + node[my] = true + + if (node.nodes) { + node.nodes.forEach(child => { + Container.rebuild(child) + }) + } +} +/* c8 ignore stop */ diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/css-syntax-error.js b/cli/app/node_modules/next/node_modules/postcss/lib/css-syntax-error.js new file mode 100644 index 00000000000..169303329e6 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/css-syntax-error.js @@ -0,0 +1,100 @@ +'use strict' + +let pico = require('picocolors') + +let terminalHighlight = require('./terminal-highlight') + +class CssSyntaxError extends Error { + constructor(message, line, column, source, file, plugin) { + super(message) + this.name = 'CssSyntaxError' + this.reason = message + + if (file) { + this.file = file + } + if (source) { + this.source = source + } + if (plugin) { + this.plugin = plugin + } + if (typeof line !== 'undefined' && typeof column !== 'undefined') { + if (typeof line === 'number') { + this.line = line + this.column = column + } else { + this.line = line.line + this.column = line.column + this.endLine = column.line + this.endColumn = column.column + } + } + + this.setMessage() + + if (Error.captureStackTrace) { + Error.captureStackTrace(this, CssSyntaxError) + } + } + + setMessage() { + this.message = this.plugin ? this.plugin + ': ' : '' + this.message += this.file ? this.file : '<css input>' + if (typeof this.line !== 'undefined') { + this.message += ':' + this.line + ':' + this.column + } + this.message += ': ' + this.reason + } + + showSourceCode(color) { + if (!this.source) return '' + + let css = this.source + if (color == null) color = pico.isColorSupported + if (terminalHighlight) { + if (color) css = terminalHighlight(css) + } + + let lines = css.split(/\r?\n/) + let start = Math.max(this.line - 3, 0) + let end = Math.min(this.line + 2, lines.length) + + let maxWidth = String(end).length + + let mark, aside + if (color) { + let { bold, gray, red } = pico.createColors(true) + mark = text => bold(red(text)) + aside = text => gray(text) + } else { + mark = aside = str => str + } + + return lines + .slice(start, end) + .map((line, index) => { + let number = start + 1 + index + let gutter = ' ' + (' ' + number).slice(-maxWidth) + ' | ' + if (number === this.line) { + let spacing = + aside(gutter.replace(/\d/g, ' ')) + + line.slice(0, this.column - 1).replace(/[^\t]/g, ' ') + return mark('>') + aside(gutter) + line + '\n ' + spacing + mark('^') + } + return ' ' + aside(gutter) + line + }) + .join('\n') + } + + toString() { + let code = this.showSourceCode() + if (code) { + code = '\n\n' + code + '\n' + } + return this.name + ': ' + this.message + code + } +} + +module.exports = CssSyntaxError +CssSyntaxError.default = CssSyntaxError diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/declaration.js b/cli/app/node_modules/next/node_modules/postcss/lib/declaration.js new file mode 100644 index 00000000000..a04bdec36a5 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/declaration.js @@ -0,0 +1,24 @@ +'use strict' + +let Node = require('./node') + +class Declaration extends Node { + constructor(defaults) { + if ( + defaults && + typeof defaults.value !== 'undefined' && + typeof defaults.value !== 'string' + ) { + defaults = { ...defaults, value: String(defaults.value) } + } + super(defaults) + this.type = 'decl' + } + + get variable() { + return this.prop.startsWith('--') || this.prop[0] === '$' + } +} + +module.exports = Declaration +Declaration.default = Declaration diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/document.js b/cli/app/node_modules/next/node_modules/postcss/lib/document.js new file mode 100644 index 00000000000..44689917fc5 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/document.js @@ -0,0 +1,33 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Document extends Container { + constructor(defaults) { + // type needs to be passed to super, otherwise child roots won't be normalized correctly + super({ type: 'document', ...defaults }) + + if (!this.nodes) { + this.nodes = [] + } + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + + return lazy.stringify() + } +} + +Document.registerLazyResult = dependant => { + LazyResult = dependant +} + +Document.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Document +Document.default = Document diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/fromJSON.js b/cli/app/node_modules/next/node_modules/postcss/lib/fromJSON.js new file mode 100644 index 00000000000..09f2b89aa69 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/fromJSON.js @@ -0,0 +1,54 @@ +'use strict' + +let Declaration = require('./declaration') +let PreviousMap = require('./previous-map') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Input = require('./input') +let Root = require('./root') +let Rule = require('./rule') + +function fromJSON(json, inputs) { + if (Array.isArray(json)) return json.map(n => fromJSON(n)) + + let { inputs: ownInputs, ...defaults } = json + if (ownInputs) { + inputs = [] + for (let input of ownInputs) { + let inputHydrated = { ...input, __proto__: Input.prototype } + if (inputHydrated.map) { + inputHydrated.map = { + ...inputHydrated.map, + __proto__: PreviousMap.prototype + } + } + inputs.push(inputHydrated) + } + } + if (defaults.nodes) { + defaults.nodes = json.nodes.map(n => fromJSON(n, inputs)) + } + if (defaults.source) { + let { inputId, ...source } = defaults.source + defaults.source = source + if (inputId != null) { + defaults.source.input = inputs[inputId] + } + } + if (defaults.type === 'root') { + return new Root(defaults) + } else if (defaults.type === 'decl') { + return new Declaration(defaults) + } else if (defaults.type === 'rule') { + return new Rule(defaults) + } else if (defaults.type === 'comment') { + return new Comment(defaults) + } else if (defaults.type === 'atrule') { + return new AtRule(defaults) + } else { + throw new Error('Unknown node type: ' + json.type) + } +} + +module.exports = fromJSON +fromJSON.default = fromJSON diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/input.js b/cli/app/node_modules/next/node_modules/postcss/lib/input.js new file mode 100644 index 00000000000..4b5ee5e02f8 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/input.js @@ -0,0 +1,248 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { fileURLToPath, pathToFileURL } = require('url') +let { isAbsolute, resolve } = require('path') +let { nanoid } = require('nanoid/non-secure') + +let terminalHighlight = require('./terminal-highlight') +let CssSyntaxError = require('./css-syntax-error') +let PreviousMap = require('./previous-map') + +let fromOffsetCache = Symbol('fromOffsetCache') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(resolve && isAbsolute) + +class Input { + constructor(css, opts = {}) { + if ( + css === null || + typeof css === 'undefined' || + (typeof css === 'object' && !css.toString) + ) { + throw new Error(`PostCSS received ${css} instead of CSS string`) + } + + this.css = css.toString() + + if (this.css[0] === '\uFEFF' || this.css[0] === '\uFFFE') { + this.hasBOM = true + this.css = this.css.slice(1) + } else { + this.hasBOM = false + } + + if (opts.from) { + if ( + !pathAvailable || + /^\w+:\/\//.test(opts.from) || + isAbsolute(opts.from) + ) { + this.file = opts.from + } else { + this.file = resolve(opts.from) + } + } + + if (pathAvailable && sourceMapAvailable) { + let map = new PreviousMap(this.css, opts) + if (map.text) { + this.map = map + let file = map.consumer().file + if (!this.file && file) this.file = this.mapResolve(file) + } + } + + if (!this.file) { + this.id = '<input css ' + nanoid(6) + '>' + } + if (this.map) this.map.file = this.from + } + + error(message, line, column, opts = {}) { + let result, endLine, endColumn + + if (line && typeof line === 'object') { + let start = line + let end = column + if (typeof start.offset === 'number') { + let pos = this.fromOffset(start.offset) + line = pos.line + column = pos.col + } else { + line = start.line + column = start.column + } + if (typeof end.offset === 'number') { + let pos = this.fromOffset(end.offset) + endLine = pos.line + endColumn = pos.col + } else { + endLine = end.line + endColumn = end.column + } + } else if (!column) { + let pos = this.fromOffset(line) + line = pos.line + column = pos.col + } + + let origin = this.origin(line, column, endLine, endColumn) + if (origin) { + result = new CssSyntaxError( + message, + origin.endLine === undefined + ? origin.line + : { column: origin.column, line: origin.line }, + origin.endLine === undefined + ? origin.column + : { column: origin.endColumn, line: origin.endLine }, + origin.source, + origin.file, + opts.plugin + ) + } else { + result = new CssSyntaxError( + message, + endLine === undefined ? line : { column, line }, + endLine === undefined ? column : { column: endColumn, line: endLine }, + this.css, + this.file, + opts.plugin + ) + } + + result.input = { column, endColumn, endLine, line, source: this.css } + if (this.file) { + if (pathToFileURL) { + result.input.url = pathToFileURL(this.file).toString() + } + result.input.file = this.file + } + + return result + } + + fromOffset(offset) { + let lastLine, lineToIndex + if (!this[fromOffsetCache]) { + let lines = this.css.split('\n') + lineToIndex = new Array(lines.length) + let prevIndex = 0 + + for (let i = 0, l = lines.length; i < l; i++) { + lineToIndex[i] = prevIndex + prevIndex += lines[i].length + 1 + } + + this[fromOffsetCache] = lineToIndex + } else { + lineToIndex = this[fromOffsetCache] + } + lastLine = lineToIndex[lineToIndex.length - 1] + + let min = 0 + if (offset >= lastLine) { + min = lineToIndex.length - 1 + } else { + let max = lineToIndex.length - 2 + let mid + while (min < max) { + mid = min + ((max - min) >> 1) + if (offset < lineToIndex[mid]) { + max = mid - 1 + } else if (offset >= lineToIndex[mid + 1]) { + min = mid + 1 + } else { + min = mid + break + } + } + } + return { + col: offset - lineToIndex[min] + 1, + line: min + 1 + } + } + + mapResolve(file) { + if (/^\w+:\/\//.test(file)) { + return file + } + return resolve(this.map.consumer().sourceRoot || this.map.root || '.', file) + } + + origin(line, column, endLine, endColumn) { + if (!this.map) return false + let consumer = this.map.consumer() + + let from = consumer.originalPositionFor({ column, line }) + if (!from.source) return false + + let to + if (typeof endLine === 'number') { + to = consumer.originalPositionFor({ column: endColumn, line: endLine }) + } + + let fromUrl + + if (isAbsolute(from.source)) { + fromUrl = pathToFileURL(from.source) + } else { + fromUrl = new URL( + from.source, + this.map.consumer().sourceRoot || pathToFileURL(this.map.mapFile) + ) + } + + let result = { + column: from.column, + endColumn: to && to.column, + endLine: to && to.line, + line: from.line, + url: fromUrl.toString() + } + + if (fromUrl.protocol === 'file:') { + if (fileURLToPath) { + result.file = fileURLToPath(fromUrl) + } else { + /* c8 ignore next 2 */ + throw new Error(`file: protocol is not available in this PostCSS build`) + } + } + + let source = consumer.sourceContentFor(from.source) + if (source) result.source = source + + return result + } + + toJSON() { + let json = {} + for (let name of ['hasBOM', 'css', 'file', 'id']) { + if (this[name] != null) { + json[name] = this[name] + } + } + if (this.map) { + json.map = { ...this.map } + if (json.map.consumerCache) { + json.map.consumerCache = undefined + } + } + return json + } + + get from() { + return this.file || this.id + } +} + +module.exports = Input +Input.default = Input + +if (terminalHighlight && terminalHighlight.registerInput) { + terminalHighlight.registerInput(Input) +} diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/lazy-result.js b/cli/app/node_modules/next/node_modules/postcss/lib/lazy-result.js new file mode 100644 index 00000000000..126f40c7e9d --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/lazy-result.js @@ -0,0 +1,550 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let Container = require('./container') +let Document = require('./document') +let warnOnce = require('./warn-once') +let Result = require('./result') +let parse = require('./parse') +let Root = require('./root') + +const TYPE_TO_CLASS_NAME = { + atrule: 'AtRule', + comment: 'Comment', + decl: 'Declaration', + document: 'Document', + root: 'Root', + rule: 'Rule' +} + +const PLUGIN_PROPS = { + AtRule: true, + AtRuleExit: true, + Comment: true, + CommentExit: true, + Declaration: true, + DeclarationExit: true, + Document: true, + DocumentExit: true, + Once: true, + OnceExit: true, + postcssPlugin: true, + prepare: true, + Root: true, + RootExit: true, + Rule: true, + RuleExit: true +} + +const NOT_VISITORS = { + Once: true, + postcssPlugin: true, + prepare: true +} + +const CHILDREN = 0 + +function isPromise(obj) { + return typeof obj === 'object' && typeof obj.then === 'function' +} + +function getEvents(node) { + let key = false + let type = TYPE_TO_CLASS_NAME[node.type] + if (node.type === 'decl') { + key = node.prop.toLowerCase() + } else if (node.type === 'atrule') { + key = node.name.toLowerCase() + } + + if (key && node.append) { + return [ + type, + type + '-' + key, + CHILDREN, + type + 'Exit', + type + 'Exit-' + key + ] + } else if (key) { + return [type, type + '-' + key, type + 'Exit', type + 'Exit-' + key] + } else if (node.append) { + return [type, CHILDREN, type + 'Exit'] + } else { + return [type, type + 'Exit'] + } +} + +function toStack(node) { + let events + if (node.type === 'document') { + events = ['Document', CHILDREN, 'DocumentExit'] + } else if (node.type === 'root') { + events = ['Root', CHILDREN, 'RootExit'] + } else { + events = getEvents(node) + } + + return { + eventIndex: 0, + events, + iterator: 0, + node, + visitorIndex: 0, + visitors: [] + } +} + +function cleanMarks(node) { + node[isClean] = false + if (node.nodes) node.nodes.forEach(i => cleanMarks(i)) + return node +} + +let postcss = {} + +class LazyResult { + constructor(processor, css, opts) { + this.stringified = false + this.processed = false + + let root + if ( + typeof css === 'object' && + css !== null && + (css.type === 'root' || css.type === 'document') + ) { + root = cleanMarks(css) + } else if (css instanceof LazyResult || css instanceof Result) { + root = cleanMarks(css.root) + if (css.map) { + if (typeof opts.map === 'undefined') opts.map = {} + if (!opts.map.inline) opts.map.inline = false + opts.map.prev = css.map + } + } else { + let parser = parse + if (opts.syntax) parser = opts.syntax.parse + if (opts.parser) parser = opts.parser + if (parser.parse) parser = parser.parse + + try { + root = parser(css, opts) + } catch (error) { + this.processed = true + this.error = error + } + + if (root && !root[my]) { + /* c8 ignore next 2 */ + Container.rebuild(root) + } + } + + this.result = new Result(processor, root, opts) + this.helpers = { ...postcss, postcss, result: this.result } + this.plugins = this.processor.plugins.map(plugin => { + if (typeof plugin === 'object' && plugin.prepare) { + return { ...plugin, ...plugin.prepare(this.result) } + } else { + return plugin + } + }) + } + + async() { + if (this.error) return Promise.reject(this.error) + if (this.processed) return Promise.resolve(this.result) + if (!this.processing) { + this.processing = this.runAsync() + } + return this.processing + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + getAsyncError() { + throw new Error('Use process(css).then(cb) to work with async plugins') + } + + handleError(error, node) { + let plugin = this.result.lastPlugin + try { + if (node) node.addToError(error) + this.error = error + if (error.name === 'CssSyntaxError' && !error.plugin) { + error.plugin = plugin.postcssPlugin + error.setMessage() + } else if (plugin.postcssVersion) { + if (process.env.NODE_ENV !== 'production') { + let pluginName = plugin.postcssPlugin + let pluginVer = plugin.postcssVersion + let runtimeVer = this.result.processor.version + let a = pluginVer.split('.') + let b = runtimeVer.split('.') + + if (a[0] !== b[0] || parseInt(a[1]) > parseInt(b[1])) { + // eslint-disable-next-line no-console + console.error( + 'Unknown error from PostCSS plugin. Your current PostCSS ' + + 'version is ' + + runtimeVer + + ', but ' + + pluginName + + ' uses ' + + pluginVer + + '. Perhaps this is the source of the error below.' + ) + } + } + } + } catch (err) { + /* c8 ignore next 3 */ + // eslint-disable-next-line no-console + if (console && console.error) console.error(err) + } + return error + } + + prepareVisitors() { + this.listeners = {} + let add = (plugin, type, cb) => { + if (!this.listeners[type]) this.listeners[type] = [] + this.listeners[type].push([plugin, cb]) + } + for (let plugin of this.plugins) { + if (typeof plugin === 'object') { + for (let event in plugin) { + if (!PLUGIN_PROPS[event] && /^[A-Z]/.test(event)) { + throw new Error( + `Unknown event ${event} in ${plugin.postcssPlugin}. ` + + `Try to update PostCSS (${this.processor.version} now).` + ) + } + if (!NOT_VISITORS[event]) { + if (typeof plugin[event] === 'object') { + for (let filter in plugin[event]) { + if (filter === '*') { + add(plugin, event, plugin[event][filter]) + } else { + add( + plugin, + event + '-' + filter.toLowerCase(), + plugin[event][filter] + ) + } + } + } else if (typeof plugin[event] === 'function') { + add(plugin, event, plugin[event]) + } + } + } + } + } + this.hasListener = Object.keys(this.listeners).length > 0 + } + + async runAsync() { + this.plugin = 0 + for (let i = 0; i < this.plugins.length; i++) { + let plugin = this.plugins[i] + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + try { + await promise + } catch (error) { + throw this.handleError(error) + } + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + let stack = [toStack(root)] + while (stack.length > 0) { + let promise = this.visitTick(stack) + if (isPromise(promise)) { + try { + await promise + } catch (e) { + let node = stack[stack.length - 1].node + throw this.handleError(e, node) + } + } + } + } + + if (this.listeners.OnceExit) { + for (let [plugin, visitor] of this.listeners.OnceExit) { + this.result.lastPlugin = plugin + try { + if (root.type === 'document') { + let roots = root.nodes.map(subRoot => + visitor(subRoot, this.helpers) + ) + + await Promise.all(roots) + } else { + await visitor(root, this.helpers) + } + } catch (e) { + throw this.handleError(e) + } + } + } + } + + this.processed = true + return this.stringify() + } + + runOnRoot(plugin) { + this.result.lastPlugin = plugin + try { + if (typeof plugin === 'object' && plugin.Once) { + if (this.result.root.type === 'document') { + let roots = this.result.root.nodes.map(root => + plugin.Once(root, this.helpers) + ) + + if (isPromise(roots[0])) { + return Promise.all(roots) + } + + return roots + } + + return plugin.Once(this.result.root, this.helpers) + } else if (typeof plugin === 'function') { + return plugin(this.result.root, this.result) + } + } catch (error) { + throw this.handleError(error) + } + } + + stringify() { + if (this.error) throw this.error + if (this.stringified) return this.result + this.stringified = true + + this.sync() + + let opts = this.result.opts + let str = stringify + if (opts.syntax) str = opts.syntax.stringify + if (opts.stringifier) str = opts.stringifier + if (str.stringify) str = str.stringify + + let map = new MapGenerator(str, this.result.root, this.result.opts) + let data = map.generate() + this.result.css = data[0] + this.result.map = data[1] + + return this.result + } + + sync() { + if (this.error) throw this.error + if (this.processed) return this.result + this.processed = true + + if (this.processing) { + throw this.getAsyncError() + } + + for (let plugin of this.plugins) { + let promise = this.runOnRoot(plugin) + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + + this.prepareVisitors() + if (this.hasListener) { + let root = this.result.root + while (!root[isClean]) { + root[isClean] = true + this.walkSync(root) + } + if (this.listeners.OnceExit) { + if (root.type === 'document') { + for (let subRoot of root.nodes) { + this.visitSync(this.listeners.OnceExit, subRoot) + } + } else { + this.visitSync(this.listeners.OnceExit, root) + } + } + } + + return this.result + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this.opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + return this.async().then(onFulfilled, onRejected) + } + + toString() { + return this.css + } + + visitSync(visitors, node) { + for (let [plugin, visitor] of visitors) { + this.result.lastPlugin = plugin + let promise + try { + promise = visitor(node, this.helpers) + } catch (e) { + throw this.handleError(e, node.proxyOf) + } + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + return true + } + if (isPromise(promise)) { + throw this.getAsyncError() + } + } + } + + visitTick(stack) { + let visit = stack[stack.length - 1] + let { node, visitors } = visit + + if (node.type !== 'root' && node.type !== 'document' && !node.parent) { + stack.pop() + return + } + + if (visitors.length > 0 && visit.visitorIndex < visitors.length) { + let [plugin, visitor] = visitors[visit.visitorIndex] + visit.visitorIndex += 1 + if (visit.visitorIndex === visitors.length) { + visit.visitors = [] + visit.visitorIndex = 0 + } + this.result.lastPlugin = plugin + try { + return visitor(node.toProxy(), this.helpers) + } catch (e) { + throw this.handleError(e, node) + } + } + + if (visit.iterator !== 0) { + let iterator = visit.iterator + let child + while ((child = node.nodes[node.indexes[iterator]])) { + node.indexes[iterator] += 1 + if (!child[isClean]) { + child[isClean] = true + stack.push(toStack(child)) + return + } + } + visit.iterator = 0 + delete node.indexes[iterator] + } + + let events = visit.events + while (visit.eventIndex < events.length) { + let event = events[visit.eventIndex] + visit.eventIndex += 1 + if (event === CHILDREN) { + if (node.nodes && node.nodes.length) { + node[isClean] = true + visit.iterator = node.getIterator() + } + return + } else if (this.listeners[event]) { + visit.visitors = this.listeners[event] + return + } + } + stack.pop() + } + + walkSync(node) { + node[isClean] = true + let events = getEvents(node) + for (let event of events) { + if (event === CHILDREN) { + if (node.nodes) { + node.each(child => { + if (!child[isClean]) this.walkSync(child) + }) + } + } else { + let visitors = this.listeners[event] + if (visitors) { + if (this.visitSync(visitors, node.toProxy())) return + } + } + } + } + + warnings() { + return this.sync().warnings() + } + + get content() { + return this.stringify().content + } + + get css() { + return this.stringify().css + } + + get map() { + return this.stringify().map + } + + get messages() { + return this.sync().messages + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + return this.sync().root + } + + get [Symbol.toStringTag]() { + return 'LazyResult' + } +} + +LazyResult.registerPostcss = dependant => { + postcss = dependant +} + +module.exports = LazyResult +LazyResult.default = LazyResult + +Root.registerLazyResult(LazyResult) +Document.registerLazyResult(LazyResult) diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/list.js b/cli/app/node_modules/next/node_modules/postcss/lib/list.js new file mode 100644 index 00000000000..1b31f9809f2 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/list.js @@ -0,0 +1,58 @@ +'use strict' + +let list = { + comma(string) { + return list.split(string, [','], true) + }, + + space(string) { + let spaces = [' ', '\n', '\t'] + return list.split(string, spaces) + }, + + split(string, separators, last) { + let array = [] + let current = '' + let split = false + + let func = 0 + let inQuote = false + let prevQuote = '' + let escape = false + + for (let letter of string) { + if (escape) { + escape = false + } else if (letter === '\\') { + escape = true + } else if (inQuote) { + if (letter === prevQuote) { + inQuote = false + } + } else if (letter === '"' || letter === "'") { + inQuote = true + prevQuote = letter + } else if (letter === '(') { + func += 1 + } else if (letter === ')') { + if (func > 0) func -= 1 + } else if (func === 0) { + if (separators.includes(letter)) split = true + } + + if (split) { + if (current !== '') array.push(current.trim()) + current = '' + split = false + } else { + current += letter + } + } + + if (last || current !== '') array.push(current.trim()) + return array + } +} + +module.exports = list +list.default = list diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/map-generator.js b/cli/app/node_modules/next/node_modules/postcss/lib/map-generator.js new file mode 100644 index 00000000000..523b46397ed --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/map-generator.js @@ -0,0 +1,359 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { dirname, relative, resolve, sep } = require('path') +let { pathToFileURL } = require('url') + +let Input = require('./input') + +let sourceMapAvailable = Boolean(SourceMapConsumer && SourceMapGenerator) +let pathAvailable = Boolean(dirname && resolve && relative && sep) + +class MapGenerator { + constructor(stringify, root, opts, cssString) { + this.stringify = stringify + this.mapOpts = opts.map || {} + this.root = root + this.opts = opts + this.css = cssString + this.usesFileUrls = !this.mapOpts.from && this.mapOpts.absolute + + this.memoizedFileURLs = new Map() + this.memoizedPaths = new Map() + this.memoizedURLs = new Map() + } + + addAnnotation() { + let content + + if (this.isInline()) { + content = + 'data:application/json;base64,' + this.toBase64(this.map.toString()) + } else if (typeof this.mapOpts.annotation === 'string') { + content = this.mapOpts.annotation + } else if (typeof this.mapOpts.annotation === 'function') { + content = this.mapOpts.annotation(this.opts.to, this.root) + } else { + content = this.outputFile() + '.map' + } + let eol = '\n' + if (this.css.includes('\r\n')) eol = '\r\n' + + this.css += eol + '/*# sourceMappingURL=' + content + ' */' + } + + applyPrevMaps() { + for (let prev of this.previous()) { + let from = this.toUrl(this.path(prev.file)) + let root = prev.root || dirname(prev.file) + let map + + if (this.mapOpts.sourcesContent === false) { + map = new SourceMapConsumer(prev.text) + if (map.sourcesContent) { + map.sourcesContent = map.sourcesContent.map(() => null) + } + } else { + map = prev.consumer() + } + + this.map.applySourceMap(map, from, this.toUrl(this.path(root))) + } + } + + clearAnnotation() { + if (this.mapOpts.annotation === false) return + + if (this.root) { + let node + for (let i = this.root.nodes.length - 1; i >= 0; i--) { + node = this.root.nodes[i] + if (node.type !== 'comment') continue + if (node.text.indexOf('# sourceMappingURL=') === 0) { + this.root.removeChild(i) + } + } + } else if (this.css) { + this.css = this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm, '') + } + } + + generate() { + this.clearAnnotation() + if (pathAvailable && sourceMapAvailable && this.isMap()) { + return this.generateMap() + } else { + let result = '' + this.stringify(this.root, i => { + result += i + }) + return [result] + } + } + + generateMap() { + if (this.root) { + this.generateString() + } else if (this.previous().length === 1) { + let prev = this.previous()[0].consumer() + prev.file = this.outputFile() + this.map = SourceMapGenerator.fromSourceMap(prev) + } else { + this.map = new SourceMapGenerator({ file: this.outputFile() }) + this.map.addMapping({ + generated: { column: 0, line: 1 }, + original: { column: 0, line: 1 }, + source: this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '<no source>' + }) + } + + if (this.isSourcesContent()) this.setSourcesContent() + if (this.root && this.previous().length > 0) this.applyPrevMaps() + if (this.isAnnotation()) this.addAnnotation() + + if (this.isInline()) { + return [this.css] + } else { + return [this.css, this.map] + } + } + + generateString() { + this.css = '' + this.map = new SourceMapGenerator({ file: this.outputFile() }) + + let line = 1 + let column = 1 + + let noSource = '<no source>' + let mapping = { + generated: { column: 0, line: 0 }, + original: { column: 0, line: 0 }, + source: '' + } + + let lines, last + this.stringify(this.root, (str, node, type) => { + this.css += str + + if (node && type !== 'end') { + mapping.generated.line = line + mapping.generated.column = column - 1 + if (node.source && node.source.start) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.start.line + mapping.original.column = node.source.start.column - 1 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + this.map.addMapping(mapping) + } + } + + lines = str.match(/\n/g) + if (lines) { + line += lines.length + last = str.lastIndexOf('\n') + column = str.length - last + } else { + column += str.length + } + + if (node && type !== 'start') { + let p = node.parent || { raws: {} } + let childless = + node.type === 'decl' || (node.type === 'atrule' && !node.nodes) + if (!childless || node !== p.last || p.raws.semicolon) { + if (node.source && node.source.end) { + mapping.source = this.sourcePath(node) + mapping.original.line = node.source.end.line + mapping.original.column = node.source.end.column - 1 + mapping.generated.line = line + mapping.generated.column = column - 2 + this.map.addMapping(mapping) + } else { + mapping.source = noSource + mapping.original.line = 1 + mapping.original.column = 0 + mapping.generated.line = line + mapping.generated.column = column - 1 + this.map.addMapping(mapping) + } + } + } + }) + } + + isAnnotation() { + if (this.isInline()) { + return true + } + if (typeof this.mapOpts.annotation !== 'undefined') { + return this.mapOpts.annotation + } + if (this.previous().length) { + return this.previous().some(i => i.annotation) + } + return true + } + + isInline() { + if (typeof this.mapOpts.inline !== 'undefined') { + return this.mapOpts.inline + } + + let annotation = this.mapOpts.annotation + if (typeof annotation !== 'undefined' && annotation !== true) { + return false + } + + if (this.previous().length) { + return this.previous().some(i => i.inline) + } + return true + } + + isMap() { + if (typeof this.opts.map !== 'undefined') { + return !!this.opts.map + } + return this.previous().length > 0 + } + + isSourcesContent() { + if (typeof this.mapOpts.sourcesContent !== 'undefined') { + return this.mapOpts.sourcesContent + } + if (this.previous().length) { + return this.previous().some(i => i.withContent()) + } + return true + } + + outputFile() { + if (this.opts.to) { + return this.path(this.opts.to) + } else if (this.opts.from) { + return this.path(this.opts.from) + } else { + return 'to.css' + } + } + + path(file) { + if (this.mapOpts.absolute) return file + if (file.charCodeAt(0) === 60 /* `<` */) return file + if (/^\w+:\/\//.test(file)) return file + let cached = this.memoizedPaths.get(file) + if (cached) return cached + + let from = this.opts.to ? dirname(this.opts.to) : '.' + + if (typeof this.mapOpts.annotation === 'string') { + from = dirname(resolve(from, this.mapOpts.annotation)) + } + + let path = relative(from, file) + this.memoizedPaths.set(file, path) + + return path + } + + previous() { + if (!this.previousMaps) { + this.previousMaps = [] + if (this.root) { + this.root.walk(node => { + if (node.source && node.source.input.map) { + let map = node.source.input.map + if (!this.previousMaps.includes(map)) { + this.previousMaps.push(map) + } + } + }) + } else { + let input = new Input(this.css, this.opts) + if (input.map) this.previousMaps.push(input.map) + } + } + + return this.previousMaps + } + + setSourcesContent() { + let already = {} + if (this.root) { + this.root.walk(node => { + if (node.source) { + let from = node.source.input.from + if (from && !already[from]) { + already[from] = true + let fromUrl = this.usesFileUrls + ? this.toFileUrl(from) + : this.toUrl(this.path(from)) + this.map.setSourceContent(fromUrl, node.source.input.css) + } + } + }) + } else if (this.css) { + let from = this.opts.from + ? this.toUrl(this.path(this.opts.from)) + : '<no source>' + this.map.setSourceContent(from, this.css) + } + } + + sourcePath(node) { + if (this.mapOpts.from) { + return this.toUrl(this.mapOpts.from) + } else if (this.usesFileUrls) { + return this.toFileUrl(node.source.input.from) + } else { + return this.toUrl(this.path(node.source.input.from)) + } + } + + toBase64(str) { + if (Buffer) { + return Buffer.from(str).toString('base64') + } else { + return window.btoa(unescape(encodeURIComponent(str))) + } + } + + toFileUrl(path) { + let cached = this.memoizedFileURLs.get(path) + if (cached) return cached + + if (pathToFileURL) { + let fileURL = pathToFileURL(path).toString() + this.memoizedFileURLs.set(path, fileURL) + + return fileURL + } else { + throw new Error( + '`map.absolute` option is not available in this PostCSS build' + ) + } + } + + toUrl(path) { + let cached = this.memoizedURLs.get(path) + if (cached) return cached + + if (sep === '\\') { + path = path.replace(/\\/g, '/') + } + + let url = encodeURI(path).replace(/[#?]/g, encodeURIComponent) + this.memoizedURLs.set(path, url) + + return url + } +} + +module.exports = MapGenerator diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/no-work-result.js b/cli/app/node_modules/next/node_modules/postcss/lib/no-work-result.js new file mode 100644 index 00000000000..a0609f7971c --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/no-work-result.js @@ -0,0 +1,135 @@ +'use strict' + +let MapGenerator = require('./map-generator') +let stringify = require('./stringify') +let warnOnce = require('./warn-once') +let parse = require('./parse') +const Result = require('./result') + +class NoWorkResult { + constructor(processor, css, opts) { + css = css.toString() + this.stringified = false + + this._processor = processor + this._css = css + this._opts = opts + this._map = undefined + let root + + let str = stringify + this.result = new Result(this._processor, root, this._opts) + this.result.css = css + + let self = this + Object.defineProperty(this.result, 'root', { + get() { + return self.root + } + }) + + let map = new MapGenerator(str, root, this._opts, css) + if (map.isMap()) { + let [generatedCSS, generatedMap] = map.generate() + if (generatedCSS) { + this.result.css = generatedCSS + } + if (generatedMap) { + this.result.map = generatedMap + } + } + } + + async() { + if (this.error) return Promise.reject(this.error) + return Promise.resolve(this.result) + } + + catch(onRejected) { + return this.async().catch(onRejected) + } + + finally(onFinally) { + return this.async().then(onFinally, onFinally) + } + + sync() { + if (this.error) throw this.error + return this.result + } + + then(onFulfilled, onRejected) { + if (process.env.NODE_ENV !== 'production') { + if (!('from' in this._opts)) { + warnOnce( + 'Without `from` option PostCSS could generate wrong source map ' + + 'and will not find Browserslist config. Set it to CSS file path ' + + 'or to `undefined` to prevent this warning.' + ) + } + } + + return this.async().then(onFulfilled, onRejected) + } + + toString() { + return this._css + } + + warnings() { + return [] + } + + get content() { + return this.result.css + } + + get css() { + return this.result.css + } + + get map() { + return this.result.map + } + + get messages() { + return [] + } + + get opts() { + return this.result.opts + } + + get processor() { + return this.result.processor + } + + get root() { + if (this._root) { + return this._root + } + + let root + let parser = parse + + try { + root = parser(this._css, this._opts) + } catch (error) { + this.error = error + } + + if (this.error) { + throw this.error + } else { + this._root = root + return root + } + } + + get [Symbol.toStringTag]() { + return 'NoWorkResult' + } +} + +module.exports = NoWorkResult +NoWorkResult.default = NoWorkResult diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/node.js b/cli/app/node_modules/next/node_modules/postcss/lib/node.js new file mode 100644 index 00000000000..d79dd56e54d --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/node.js @@ -0,0 +1,381 @@ +'use strict' + +let { isClean, my } = require('./symbols') +let CssSyntaxError = require('./css-syntax-error') +let Stringifier = require('./stringifier') +let stringify = require('./stringify') + +function cloneNode(obj, parent) { + let cloned = new obj.constructor() + + for (let i in obj) { + if (!Object.prototype.hasOwnProperty.call(obj, i)) { + /* c8 ignore next 2 */ + continue + } + if (i === 'proxyCache') continue + let value = obj[i] + let type = typeof value + + if (i === 'parent' && type === 'object') { + if (parent) cloned[i] = parent + } else if (i === 'source') { + cloned[i] = value + } else if (Array.isArray(value)) { + cloned[i] = value.map(j => cloneNode(j, cloned)) + } else { + if (type === 'object' && value !== null) value = cloneNode(value) + cloned[i] = value + } + } + + return cloned +} + +class Node { + constructor(defaults = {}) { + this.raws = {} + this[isClean] = false + this[my] = true + + for (let name in defaults) { + if (name === 'nodes') { + this.nodes = [] + for (let node of defaults[name]) { + if (typeof node.clone === 'function') { + this.append(node.clone()) + } else { + this.append(node) + } + } + } else { + this[name] = defaults[name] + } + } + } + + addToError(error) { + error.postcssNode = this + if (error.stack && this.source && /\n\s{4}at /.test(error.stack)) { + let s = this.source + error.stack = error.stack.replace( + /\n\s{4}at /, + `$&${s.input.from}:${s.start.line}:${s.start.column}$&` + ) + } + return error + } + + after(add) { + this.parent.insertAfter(this, add) + return this + } + + assign(overrides = {}) { + for (let name in overrides) { + this[name] = overrides[name] + } + return this + } + + before(add) { + this.parent.insertBefore(this, add) + return this + } + + cleanRaws(keepBetween) { + delete this.raws.before + delete this.raws.after + if (!keepBetween) delete this.raws.between + } + + clone(overrides = {}) { + let cloned = cloneNode(this) + for (let name in overrides) { + cloned[name] = overrides[name] + } + return cloned + } + + cloneAfter(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertAfter(this, cloned) + return cloned + } + + cloneBefore(overrides = {}) { + let cloned = this.clone(overrides) + this.parent.insertBefore(this, cloned) + return cloned + } + + error(message, opts = {}) { + if (this.source) { + let { end, start } = this.rangeBy(opts) + return this.source.input.error( + message, + { column: start.column, line: start.line }, + { column: end.column, line: end.line }, + opts + ) + } + return new CssSyntaxError(message) + } + + getProxyProcessor() { + return { + get(node, prop) { + if (prop === 'proxyOf') { + return node + } else if (prop === 'root') { + return () => node.root().toProxy() + } else { + return node[prop] + } + }, + + set(node, prop, value) { + if (node[prop] === value) return true + node[prop] = value + if ( + prop === 'prop' || + prop === 'value' || + prop === 'name' || + prop === 'params' || + prop === 'important' || + /* c8 ignore next */ + prop === 'text' + ) { + node.markDirty() + } + return true + } + } + } + + markDirty() { + if (this[isClean]) { + this[isClean] = false + let next = this + while ((next = next.parent)) { + next[isClean] = false + } + } + } + + next() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index + 1] + } + + positionBy(opts, stringRepresentation) { + let pos = this.source.start + if (opts.index) { + pos = this.positionInside(opts.index, stringRepresentation) + } else if (opts.word) { + stringRepresentation = this.toString() + let index = stringRepresentation.indexOf(opts.word) + if (index !== -1) pos = this.positionInside(index, stringRepresentation) + } + return pos + } + + positionInside(index, stringRepresentation) { + let string = stringRepresentation || this.toString() + let column = this.source.start.column + let line = this.source.start.line + + for (let i = 0; i < index; i++) { + if (string[i] === '\n') { + column = 1 + line += 1 + } else { + column += 1 + } + } + + return { column, line } + } + + prev() { + if (!this.parent) return undefined + let index = this.parent.index(this) + return this.parent.nodes[index - 1] + } + + rangeBy(opts) { + let start = { + column: this.source.start.column, + line: this.source.start.line + } + let end = this.source.end + ? { + column: this.source.end.column + 1, + line: this.source.end.line + } + : { + column: start.column + 1, + line: start.line + } + + if (opts.word) { + let stringRepresentation = this.toString() + let index = stringRepresentation.indexOf(opts.word) + if (index !== -1) { + start = this.positionInside(index, stringRepresentation) + end = this.positionInside(index + opts.word.length, stringRepresentation) + } + } else { + if (opts.start) { + start = { + column: opts.start.column, + line: opts.start.line + } + } else if (opts.index) { + start = this.positionInside(opts.index) + } + + if (opts.end) { + end = { + column: opts.end.column, + line: opts.end.line + } + } else if (opts.endIndex) { + end = this.positionInside(opts.endIndex) + } else if (opts.index) { + end = this.positionInside(opts.index + 1) + } + } + + if ( + end.line < start.line || + (end.line === start.line && end.column <= start.column) + ) { + end = { column: start.column + 1, line: start.line } + } + + return { end, start } + } + + raw(prop, defaultType) { + let str = new Stringifier() + return str.raw(this, prop, defaultType) + } + + remove() { + if (this.parent) { + this.parent.removeChild(this) + } + this.parent = undefined + return this + } + + replaceWith(...nodes) { + if (this.parent) { + let bookmark = this + let foundSelf = false + for (let node of nodes) { + if (node === this) { + foundSelf = true + } else if (foundSelf) { + this.parent.insertAfter(bookmark, node) + bookmark = node + } else { + this.parent.insertBefore(bookmark, node) + } + } + + if (!foundSelf) { + this.remove() + } + } + + return this + } + + root() { + let result = this + while (result.parent && result.parent.type !== 'document') { + result = result.parent + } + return result + } + + toJSON(_, inputs) { + let fixed = {} + let emitInputs = inputs == null + inputs = inputs || new Map() + let inputsNextIndex = 0 + + for (let name in this) { + if (!Object.prototype.hasOwnProperty.call(this, name)) { + /* c8 ignore next 2 */ + continue + } + if (name === 'parent' || name === 'proxyCache') continue + let value = this[name] + + if (Array.isArray(value)) { + fixed[name] = value.map(i => { + if (typeof i === 'object' && i.toJSON) { + return i.toJSON(null, inputs) + } else { + return i + } + }) + } else if (typeof value === 'object' && value.toJSON) { + fixed[name] = value.toJSON(null, inputs) + } else if (name === 'source') { + let inputId = inputs.get(value.input) + if (inputId == null) { + inputId = inputsNextIndex + inputs.set(value.input, inputsNextIndex) + inputsNextIndex++ + } + fixed[name] = { + end: value.end, + inputId, + start: value.start + } + } else { + fixed[name] = value + } + } + + if (emitInputs) { + fixed.inputs = [...inputs.keys()].map(input => input.toJSON()) + } + + return fixed + } + + toProxy() { + if (!this.proxyCache) { + this.proxyCache = new Proxy(this, this.getProxyProcessor()) + } + return this.proxyCache + } + + toString(stringifier = stringify) { + if (stringifier.stringify) stringifier = stringifier.stringify + let result = '' + stringifier(this, i => { + result += i + }) + return result + } + + warn(result, text, opts) { + let data = { node: this } + for (let i in opts) data[i] = opts[i] + return result.warn(text, data) + } + + get proxyOf() { + return this + } +} + +module.exports = Node +Node.default = Node diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/parse.js b/cli/app/node_modules/next/node_modules/postcss/lib/parse.js new file mode 100644 index 00000000000..971431f238b --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/parse.js @@ -0,0 +1,42 @@ +'use strict' + +let Container = require('./container') +let Parser = require('./parser') +let Input = require('./input') + +function parse(css, opts) { + let input = new Input(css, opts) + let parser = new Parser(input) + try { + parser.parse() + } catch (e) { + if (process.env.NODE_ENV !== 'production') { + if (e.name === 'CssSyntaxError' && opts && opts.from) { + if (/\.scss$/i.test(opts.from)) { + e.message += + '\nYou tried to parse SCSS with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-scss parser' + } else if (/\.sass/i.test(opts.from)) { + e.message += + '\nYou tried to parse Sass with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-sass parser' + } else if (/\.less$/i.test(opts.from)) { + e.message += + '\nYou tried to parse Less with ' + + 'the standard CSS parser; ' + + 'try again with the postcss-less parser' + } + } + } + throw e + } + + return parser.root +} + +module.exports = parse +parse.default = parse + +Container.registerParse(parse) diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/parser.js b/cli/app/node_modules/next/node_modules/postcss/lib/parser.js new file mode 100644 index 00000000000..e1e2e19e25b --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/parser.js @@ -0,0 +1,610 @@ +'use strict' + +let Declaration = require('./declaration') +let tokenizer = require('./tokenize') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Root = require('./root') +let Rule = require('./rule') + +const SAFE_COMMENT_NEIGHBOR = { + empty: true, + space: true +} + +function findLastWithPosition(tokens) { + for (let i = tokens.length - 1; i >= 0; i--) { + let token = tokens[i] + let pos = token[3] || token[2] + if (pos) return pos + } +} + +class Parser { + constructor(input) { + this.input = input + + this.root = new Root() + this.current = this.root + this.spaces = '' + this.semicolon = false + this.customProperty = false + + this.createTokenizer() + this.root.source = { input, start: { column: 1, line: 1, offset: 0 } } + } + + atrule(token) { + let node = new AtRule() + node.name = token[1].slice(1) + if (node.name === '') { + this.unnamedAtrule(node, token) + } + this.init(node, token[2]) + + let type + let prev + let shift + let last = false + let open = false + let params = [] + let brackets = [] + + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + type = token[0] + + if (type === '(' || type === '[') { + brackets.push(type === '(' ? ')' : ']') + } else if (type === '{' && brackets.length > 0) { + brackets.push('}') + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + } + + if (brackets.length === 0) { + if (type === ';') { + node.source.end = this.getPosition(token[2]) + node.source.end.offset++ + this.semicolon = true + break + } else if (type === '{') { + open = true + break + } else if (type === '}') { + if (params.length > 0) { + shift = params.length - 1 + prev = params[shift] + while (prev && prev[0] === 'space') { + prev = params[--shift] + } + if (prev) { + node.source.end = this.getPosition(prev[3] || prev[2]) + node.source.end.offset++ + } + } + this.end(token) + break + } else { + params.push(token) + } + } else { + params.push(token) + } + + if (this.tokenizer.endOfFile()) { + last = true + break + } + } + + node.raws.between = this.spacesAndCommentsFromEnd(params) + if (params.length) { + node.raws.afterName = this.spacesAndCommentsFromStart(params) + this.raw(node, 'params', params) + if (last) { + token = params[params.length - 1] + node.source.end = this.getPosition(token[3] || token[2]) + node.source.end.offset++ + this.spaces = node.raws.between + node.raws.between = '' + } + } else { + node.raws.afterName = '' + node.params = '' + } + + if (open) { + node.nodes = [] + this.current = node + } + } + + checkMissedSemicolon(tokens) { + let colon = this.colon(tokens) + if (colon === false) return + + let founded = 0 + let token + for (let j = colon - 1; j >= 0; j--) { + token = tokens[j] + if (token[0] !== 'space') { + founded += 1 + if (founded === 2) break + } + } + // If the token is a word, e.g. `!important`, `red` or any other valid property's value. + // Then we need to return the colon after that word token. [3] is the "end" colon of that word. + // And because we need it after that one we do +1 to get the next one. + throw this.input.error( + 'Missed semicolon', + token[0] === 'word' ? token[3] + 1 : token[2] + ) + } + + colon(tokens) { + let brackets = 0 + let token, type, prev + for (let [i, element] of tokens.entries()) { + token = element + type = token[0] + + if (type === '(') { + brackets += 1 + } + if (type === ')') { + brackets -= 1 + } + if (brackets === 0 && type === ':') { + if (!prev) { + this.doubleColon(token) + } else if (prev[0] === 'word' && prev[1] === 'progid') { + continue + } else { + return i + } + } + + prev = token + } + return false + } + + comment(token) { + let node = new Comment() + this.init(node, token[2]) + node.source.end = this.getPosition(token[3] || token[2]) + node.source.end.offset++ + + let text = token[1].slice(2, -2) + if (/^\s*$/.test(text)) { + node.text = '' + node.raws.left = text + node.raws.right = '' + } else { + let match = text.match(/^(\s*)([^]*\S)(\s*)$/) + node.text = match[2] + node.raws.left = match[1] + node.raws.right = match[3] + } + } + + createTokenizer() { + this.tokenizer = tokenizer(this.input) + } + + decl(tokens, customProperty) { + let node = new Declaration() + this.init(node, tokens[0][2]) + + let last = tokens[tokens.length - 1] + if (last[0] === ';') { + this.semicolon = true + tokens.pop() + } + + node.source.end = this.getPosition( + last[3] || last[2] || findLastWithPosition(tokens) + ) + node.source.end.offset++ + + while (tokens[0][0] !== 'word') { + if (tokens.length === 1) this.unknownWord(tokens) + node.raws.before += tokens.shift()[1] + } + node.source.start = this.getPosition(tokens[0][2]) + + node.prop = '' + while (tokens.length) { + let type = tokens[0][0] + if (type === ':' || type === 'space' || type === 'comment') { + break + } + node.prop += tokens.shift()[1] + } + + node.raws.between = '' + + let token + while (tokens.length) { + token = tokens.shift() + + if (token[0] === ':') { + node.raws.between += token[1] + break + } else { + if (token[0] === 'word' && /\w/.test(token[1])) { + this.unknownWord([token]) + } + node.raws.between += token[1] + } + } + + if (node.prop[0] === '_' || node.prop[0] === '*') { + node.raws.before += node.prop[0] + node.prop = node.prop.slice(1) + } + + let firstSpaces = [] + let next + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + firstSpaces.push(tokens.shift()) + } + + this.precheckMissedSemicolon(tokens) + + for (let i = tokens.length - 1; i >= 0; i--) { + token = tokens[i] + if (token[1].toLowerCase() === '!important') { + node.important = true + let string = this.stringFrom(tokens, i) + string = this.spacesFromEnd(tokens) + string + if (string !== ' !important') node.raws.important = string + break + } else if (token[1].toLowerCase() === 'important') { + let cache = tokens.slice(0) + let str = '' + for (let j = i; j > 0; j--) { + let type = cache[j][0] + if (str.trim().indexOf('!') === 0 && type !== 'space') { + break + } + str = cache.pop()[1] + str + } + if (str.trim().indexOf('!') === 0) { + node.important = true + node.raws.important = str + tokens = cache + } + } + + if (token[0] !== 'space' && token[0] !== 'comment') { + break + } + } + + let hasWord = tokens.some(i => i[0] !== 'space' && i[0] !== 'comment') + + if (hasWord) { + node.raws.between += firstSpaces.map(i => i[1]).join('') + firstSpaces = [] + } + this.raw(node, 'value', firstSpaces.concat(tokens), customProperty) + + if (node.value.includes(':') && !customProperty) { + this.checkMissedSemicolon(tokens) + } + } + + doubleColon(token) { + throw this.input.error( + 'Double colon', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } + + emptyRule(token) { + let node = new Rule() + this.init(node, token[2]) + node.selector = '' + node.raws.between = '' + this.current = node + } + + end(token) { + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.semicolon = false + + this.current.raws.after = (this.current.raws.after || '') + this.spaces + this.spaces = '' + + if (this.current.parent) { + this.current.source.end = this.getPosition(token[2]) + this.current.source.end.offset++ + this.current = this.current.parent + } else { + this.unexpectedClose(token) + } + } + + endFile() { + if (this.current.parent) this.unclosedBlock() + if (this.current.nodes && this.current.nodes.length) { + this.current.raws.semicolon = this.semicolon + } + this.current.raws.after = (this.current.raws.after || '') + this.spaces + this.root.source.end = this.getPosition(this.tokenizer.position()) + } + + freeSemicolon(token) { + this.spaces += token[1] + if (this.current.nodes) { + let prev = this.current.nodes[this.current.nodes.length - 1] + if (prev && prev.type === 'rule' && !prev.raws.ownSemicolon) { + prev.raws.ownSemicolon = this.spaces + this.spaces = '' + } + } + } + + // Helpers + + getPosition(offset) { + let pos = this.input.fromOffset(offset) + return { + column: pos.col, + line: pos.line, + offset + } + } + + init(node, offset) { + this.current.push(node) + node.source = { + input: this.input, + start: this.getPosition(offset) + } + node.raws.before = this.spaces + this.spaces = '' + if (node.type !== 'comment') this.semicolon = false + } + + other(start) { + let end = false + let type = null + let colon = false + let bracket = null + let brackets = [] + let customProperty = start[1].startsWith('--') + + let tokens = [] + let token = start + while (token) { + type = token[0] + tokens.push(token) + + if (type === '(' || type === '[') { + if (!bracket) bracket = token + brackets.push(type === '(' ? ')' : ']') + } else if (customProperty && colon && type === '{') { + if (!bracket) bracket = token + brackets.push('}') + } else if (brackets.length === 0) { + if (type === ';') { + if (colon) { + this.decl(tokens, customProperty) + return + } else { + break + } + } else if (type === '{') { + this.rule(tokens) + return + } else if (type === '}') { + this.tokenizer.back(tokens.pop()) + end = true + break + } else if (type === ':') { + colon = true + } + } else if (type === brackets[brackets.length - 1]) { + brackets.pop() + if (brackets.length === 0) bracket = null + } + + token = this.tokenizer.nextToken() + } + + if (this.tokenizer.endOfFile()) end = true + if (brackets.length > 0) this.unclosedBracket(bracket) + + if (end && colon) { + if (!customProperty) { + while (tokens.length) { + token = tokens[tokens.length - 1][0] + if (token !== 'space' && token !== 'comment') break + this.tokenizer.back(tokens.pop()) + } + } + this.decl(tokens, customProperty) + } else { + this.unknownWord(tokens) + } + } + + parse() { + let token + while (!this.tokenizer.endOfFile()) { + token = this.tokenizer.nextToken() + + switch (token[0]) { + case 'space': + this.spaces += token[1] + break + + case ';': + this.freeSemicolon(token) + break + + case '}': + this.end(token) + break + + case 'comment': + this.comment(token) + break + + case 'at-word': + this.atrule(token) + break + + case '{': + this.emptyRule(token) + break + + default: + this.other(token) + break + } + } + this.endFile() + } + + precheckMissedSemicolon(/* tokens */) { + // Hook for Safe Parser + } + + raw(node, prop, tokens, customProperty) { + let token, type + let length = tokens.length + let value = '' + let clean = true + let next, prev + + for (let i = 0; i < length; i += 1) { + token = tokens[i] + type = token[0] + if (type === 'space' && i === length - 1 && !customProperty) { + clean = false + } else if (type === 'comment') { + prev = tokens[i - 1] ? tokens[i - 1][0] : 'empty' + next = tokens[i + 1] ? tokens[i + 1][0] : 'empty' + if (!SAFE_COMMENT_NEIGHBOR[prev] && !SAFE_COMMENT_NEIGHBOR[next]) { + if (value.slice(-1) === ',') { + clean = false + } else { + value += token[1] + } + } else { + clean = false + } + } else { + value += token[1] + } + } + if (!clean) { + let raw = tokens.reduce((all, i) => all + i[1], '') + node.raws[prop] = { raw, value } + } + node[prop] = value + } + + rule(tokens) { + tokens.pop() + + let node = new Rule() + this.init(node, tokens[0][2]) + + node.raws.between = this.spacesAndCommentsFromEnd(tokens) + this.raw(node, 'selector', tokens) + this.current = node + } + + spacesAndCommentsFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space' && lastTokenType !== 'comment') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + // Errors + + spacesAndCommentsFromStart(tokens) { + let next + let spaces = '' + while (tokens.length) { + next = tokens[0][0] + if (next !== 'space' && next !== 'comment') break + spaces += tokens.shift()[1] + } + return spaces + } + + spacesFromEnd(tokens) { + let lastTokenType + let spaces = '' + while (tokens.length) { + lastTokenType = tokens[tokens.length - 1][0] + if (lastTokenType !== 'space') break + spaces = tokens.pop()[1] + spaces + } + return spaces + } + + stringFrom(tokens, from) { + let result = '' + for (let i = from; i < tokens.length; i++) { + result += tokens[i][1] + } + tokens.splice(from, tokens.length - from) + return result + } + + unclosedBlock() { + let pos = this.current.source.start + throw this.input.error('Unclosed block', pos.line, pos.column) + } + + unclosedBracket(bracket) { + throw this.input.error( + 'Unclosed bracket', + { offset: bracket[2] }, + { offset: bracket[2] + 1 } + ) + } + + unexpectedClose(token) { + throw this.input.error( + 'Unexpected }', + { offset: token[2] }, + { offset: token[2] + 1 } + ) + } + + unknownWord(tokens) { + throw this.input.error( + 'Unknown word', + { offset: tokens[0][2] }, + { offset: tokens[0][2] + tokens[0][1].length } + ) + } + + unnamedAtrule(node, token) { + throw this.input.error( + 'At-rule without name', + { offset: token[2] }, + { offset: token[2] + token[1].length } + ) + } +} + +module.exports = Parser diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/postcss.js b/cli/app/node_modules/next/node_modules/postcss/lib/postcss.js new file mode 100644 index 00000000000..080ee837897 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/postcss.js @@ -0,0 +1,101 @@ +'use strict' + +let CssSyntaxError = require('./css-syntax-error') +let Declaration = require('./declaration') +let LazyResult = require('./lazy-result') +let Container = require('./container') +let Processor = require('./processor') +let stringify = require('./stringify') +let fromJSON = require('./fromJSON') +let Document = require('./document') +let Warning = require('./warning') +let Comment = require('./comment') +let AtRule = require('./at-rule') +let Result = require('./result.js') +let Input = require('./input') +let parse = require('./parse') +let list = require('./list') +let Rule = require('./rule') +let Root = require('./root') +let Node = require('./node') + +function postcss(...plugins) { + if (plugins.length === 1 && Array.isArray(plugins[0])) { + plugins = plugins[0] + } + return new Processor(plugins) +} + +postcss.plugin = function plugin(name, initializer) { + let warningPrinted = false + function creator(...args) { + // eslint-disable-next-line no-console + if (console && console.warn && !warningPrinted) { + warningPrinted = true + // eslint-disable-next-line no-console + console.warn( + name + + ': postcss.plugin was deprecated. Migration guide:\n' + + 'https://evilmartians.com/chronicles/postcss-8-plugin-migration' + ) + if (process.env.LANG && process.env.LANG.startsWith('cn')) { + /* c8 ignore next 7 */ + // eslint-disable-next-line no-console + console.warn( + name + + ': 里面 postcss.plugin 被弃用. 迁移指南:\n' + + 'https://www.w3ctech.com/topic/2226' + ) + } + } + let transformer = initializer(...args) + transformer.postcssPlugin = name + transformer.postcssVersion = new Processor().version + return transformer + } + + let cache + Object.defineProperty(creator, 'postcss', { + get() { + if (!cache) cache = creator() + return cache + } + }) + + creator.process = function (css, processOpts, pluginOpts) { + return postcss([creator(pluginOpts)]).process(css, processOpts) + } + + return creator +} + +postcss.stringify = stringify +postcss.parse = parse +postcss.fromJSON = fromJSON +postcss.list = list + +postcss.comment = defaults => new Comment(defaults) +postcss.atRule = defaults => new AtRule(defaults) +postcss.decl = defaults => new Declaration(defaults) +postcss.rule = defaults => new Rule(defaults) +postcss.root = defaults => new Root(defaults) +postcss.document = defaults => new Document(defaults) + +postcss.CssSyntaxError = CssSyntaxError +postcss.Declaration = Declaration +postcss.Container = Container +postcss.Processor = Processor +postcss.Document = Document +postcss.Comment = Comment +postcss.Warning = Warning +postcss.AtRule = AtRule +postcss.Result = Result +postcss.Input = Input +postcss.Rule = Rule +postcss.Root = Root +postcss.Node = Node + +LazyResult.registerPostcss(postcss) + +module.exports = postcss +postcss.default = postcss diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/previous-map.js b/cli/app/node_modules/next/node_modules/postcss/lib/previous-map.js new file mode 100644 index 00000000000..f3093dfb8e7 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/previous-map.js @@ -0,0 +1,142 @@ +'use strict' + +let { SourceMapConsumer, SourceMapGenerator } = require('source-map-js') +let { existsSync, readFileSync } = require('fs') +let { dirname, join } = require('path') + +function fromBase64(str) { + if (Buffer) { + return Buffer.from(str, 'base64').toString() + } else { + /* c8 ignore next 2 */ + return window.atob(str) + } +} + +class PreviousMap { + constructor(css, opts) { + if (opts.map === false) return + this.loadAnnotation(css) + this.inline = this.startWith(this.annotation, 'data:') + + let prev = opts.map ? opts.map.prev : undefined + let text = this.loadMap(opts.from, prev) + if (!this.mapFile && opts.from) { + this.mapFile = opts.from + } + if (this.mapFile) this.root = dirname(this.mapFile) + if (text) this.text = text + } + + consumer() { + if (!this.consumerCache) { + this.consumerCache = new SourceMapConsumer(this.text) + } + return this.consumerCache + } + + decodeInline(text) { + let baseCharsetUri = /^data:application\/json;charset=utf-?8;base64,/ + let baseUri = /^data:application\/json;base64,/ + let charsetUri = /^data:application\/json;charset=utf-?8,/ + let uri = /^data:application\/json,/ + + if (charsetUri.test(text) || uri.test(text)) { + return decodeURIComponent(text.substr(RegExp.lastMatch.length)) + } + + if (baseCharsetUri.test(text) || baseUri.test(text)) { + return fromBase64(text.substr(RegExp.lastMatch.length)) + } + + let encoding = text.match(/data:application\/json;([^,]+),/)[1] + throw new Error('Unsupported source map encoding ' + encoding) + } + + getAnnotationURL(sourceMapString) { + return sourceMapString.replace(/^\/\*\s*# sourceMappingURL=/, '').trim() + } + + isMap(map) { + if (typeof map !== 'object') return false + return ( + typeof map.mappings === 'string' || + typeof map._mappings === 'string' || + Array.isArray(map.sections) + ) + } + + loadAnnotation(css) { + let comments = css.match(/\/\*\s*# sourceMappingURL=/gm) + if (!comments) return + + // sourceMappingURLs from comments, strings, etc. + let start = css.lastIndexOf(comments.pop()) + let end = css.indexOf('*/', start) + + if (start > -1 && end > -1) { + // Locate the last sourceMappingURL to avoid pickin + this.annotation = this.getAnnotationURL(css.substring(start, end)) + } + } + + loadFile(path) { + this.root = dirname(path) + if (existsSync(path)) { + this.mapFile = path + return readFileSync(path, 'utf-8').toString().trim() + } + } + + loadMap(file, prev) { + if (prev === false) return false + + if (prev) { + if (typeof prev === 'string') { + return prev + } else if (typeof prev === 'function') { + let prevPath = prev(file) + if (prevPath) { + let map = this.loadFile(prevPath) + if (!map) { + throw new Error( + 'Unable to load previous source map: ' + prevPath.toString() + ) + } + return map + } + } else if (prev instanceof SourceMapConsumer) { + return SourceMapGenerator.fromSourceMap(prev).toString() + } else if (prev instanceof SourceMapGenerator) { + return prev.toString() + } else if (this.isMap(prev)) { + return JSON.stringify(prev) + } else { + throw new Error( + 'Unsupported previous source map format: ' + prev.toString() + ) + } + } else if (this.inline) { + return this.decodeInline(this.annotation) + } else if (this.annotation) { + let map = this.annotation + if (file) map = join(dirname(file), map) + return this.loadFile(map) + } + } + + startWith(string, start) { + if (!string) return false + return string.substr(0, start.length) === start + } + + withContent() { + return !!( + this.consumer().sourcesContent && + this.consumer().sourcesContent.length > 0 + ) + } +} + +module.exports = PreviousMap +PreviousMap.default = PreviousMap diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/processor.js b/cli/app/node_modules/next/node_modules/postcss/lib/processor.js new file mode 100644 index 00000000000..92842b69925 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/processor.js @@ -0,0 +1,67 @@ +'use strict' + +let NoWorkResult = require('./no-work-result') +let LazyResult = require('./lazy-result') +let Document = require('./document') +let Root = require('./root') + +class Processor { + constructor(plugins = []) { + this.version = '8.4.31' + this.plugins = this.normalize(plugins) + } + + normalize(plugins) { + let normalized = [] + for (let i of plugins) { + if (i.postcss === true) { + i = i() + } else if (i.postcss) { + i = i.postcss + } + + if (typeof i === 'object' && Array.isArray(i.plugins)) { + normalized = normalized.concat(i.plugins) + } else if (typeof i === 'object' && i.postcssPlugin) { + normalized.push(i) + } else if (typeof i === 'function') { + normalized.push(i) + } else if (typeof i === 'object' && (i.parse || i.stringify)) { + if (process.env.NODE_ENV !== 'production') { + throw new Error( + 'PostCSS syntaxes cannot be used as plugins. Instead, please use ' + + 'one of the syntax/parser/stringifier options as outlined ' + + 'in your PostCSS runner documentation.' + ) + } + } else { + throw new Error(i + ' is not a PostCSS plugin') + } + } + return normalized + } + + process(css, opts = {}) { + if ( + this.plugins.length === 0 && + typeof opts.parser === 'undefined' && + typeof opts.stringifier === 'undefined' && + typeof opts.syntax === 'undefined' + ) { + return new NoWorkResult(this, css, opts) + } else { + return new LazyResult(this, css, opts) + } + } + + use(plugin) { + this.plugins = this.plugins.concat(this.normalize([plugin])) + return this + } +} + +module.exports = Processor +Processor.default = Processor + +Root.registerProcessor(Processor) +Document.registerProcessor(Processor) diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/result.js b/cli/app/node_modules/next/node_modules/postcss/lib/result.js new file mode 100644 index 00000000000..a39751de098 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/result.js @@ -0,0 +1,42 @@ +'use strict' + +let Warning = require('./warning') + +class Result { + constructor(processor, root, opts) { + this.processor = processor + this.messages = [] + this.root = root + this.opts = opts + this.css = undefined + this.map = undefined + } + + toString() { + return this.css + } + + warn(text, opts = {}) { + if (!opts.plugin) { + if (this.lastPlugin && this.lastPlugin.postcssPlugin) { + opts.plugin = this.lastPlugin.postcssPlugin + } + } + + let warning = new Warning(text, opts) + this.messages.push(warning) + + return warning + } + + warnings() { + return this.messages.filter(i => i.type === 'warning') + } + + get content() { + return this.css + } +} + +module.exports = Result +Result.default = Result diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/root.js b/cli/app/node_modules/next/node_modules/postcss/lib/root.js new file mode 100644 index 00000000000..ea574edca70 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/root.js @@ -0,0 +1,61 @@ +'use strict' + +let Container = require('./container') + +let LazyResult, Processor + +class Root extends Container { + constructor(defaults) { + super(defaults) + this.type = 'root' + if (!this.nodes) this.nodes = [] + } + + normalize(child, sample, type) { + let nodes = super.normalize(child) + + if (sample) { + if (type === 'prepend') { + if (this.nodes.length > 1) { + sample.raws.before = this.nodes[1].raws.before + } else { + delete sample.raws.before + } + } else if (this.first !== sample) { + for (let node of nodes) { + node.raws.before = sample.raws.before + } + } + } + + return nodes + } + + removeChild(child, ignore) { + let index = this.index(child) + + if (!ignore && index === 0 && this.nodes.length > 1) { + this.nodes[1].raws.before = this.nodes[index].raws.before + } + + return super.removeChild(child) + } + + toResult(opts = {}) { + let lazy = new LazyResult(new Processor(), this, opts) + return lazy.stringify() + } +} + +Root.registerLazyResult = dependant => { + LazyResult = dependant +} + +Root.registerProcessor = dependant => { + Processor = dependant +} + +module.exports = Root +Root.default = Root + +Container.registerRoot(Root) diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/rule.js b/cli/app/node_modules/next/node_modules/postcss/lib/rule.js new file mode 100644 index 00000000000..a93ab25bf0c --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/rule.js @@ -0,0 +1,27 @@ +'use strict' + +let Container = require('./container') +let list = require('./list') + +class Rule extends Container { + constructor(defaults) { + super(defaults) + this.type = 'rule' + if (!this.nodes) this.nodes = [] + } + + get selectors() { + return list.comma(this.selector) + } + + set selectors(values) { + let match = this.selector ? this.selector.match(/,\s*/) : null + let sep = match ? match[0] : ',' + this.raw('between', 'beforeOpen') + this.selector = values.join(sep) + } +} + +module.exports = Rule +Rule.default = Rule + +Container.registerRule(Rule) diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/stringifier.js b/cli/app/node_modules/next/node_modules/postcss/lib/stringifier.js new file mode 100644 index 00000000000..e07ad12e7b3 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/stringifier.js @@ -0,0 +1,353 @@ +'use strict' + +const DEFAULT_RAW = { + after: '\n', + beforeClose: '\n', + beforeComment: '\n', + beforeDecl: '\n', + beforeOpen: ' ', + beforeRule: '\n', + colon: ': ', + commentLeft: ' ', + commentRight: ' ', + emptyBody: '', + indent: ' ', + semicolon: false +} + +function capitalize(str) { + return str[0].toUpperCase() + str.slice(1) +} + +class Stringifier { + constructor(builder) { + this.builder = builder + } + + atrule(node, semicolon) { + let name = '@' + node.name + let params = node.params ? this.rawValue(node, 'params') : '' + + if (typeof node.raws.afterName !== 'undefined') { + name += node.raws.afterName + } else if (params) { + name += ' ' + } + + if (node.nodes) { + this.block(node, name + params) + } else { + let end = (node.raws.between || '') + (semicolon ? ';' : '') + this.builder(name + params + end, node) + } + } + + beforeAfter(node, detect) { + let value + if (node.type === 'decl') { + value = this.raw(node, null, 'beforeDecl') + } else if (node.type === 'comment') { + value = this.raw(node, null, 'beforeComment') + } else if (detect === 'before') { + value = this.raw(node, null, 'beforeRule') + } else { + value = this.raw(node, null, 'beforeClose') + } + + let buf = node.parent + let depth = 0 + while (buf && buf.type !== 'root') { + depth += 1 + buf = buf.parent + } + + if (value.includes('\n')) { + let indent = this.raw(node, null, 'indent') + if (indent.length) { + for (let step = 0; step < depth; step++) value += indent + } + } + + return value + } + + block(node, start) { + let between = this.raw(node, 'between', 'beforeOpen') + this.builder(start + between + '{', node, 'start') + + let after + if (node.nodes && node.nodes.length) { + this.body(node) + after = this.raw(node, 'after') + } else { + after = this.raw(node, 'after', 'emptyBody') + } + + if (after) this.builder(after) + this.builder('}', node, 'end') + } + + body(node) { + let last = node.nodes.length - 1 + while (last > 0) { + if (node.nodes[last].type !== 'comment') break + last -= 1 + } + + let semicolon = this.raw(node, 'semicolon') + for (let i = 0; i < node.nodes.length; i++) { + let child = node.nodes[i] + let before = this.raw(child, 'before') + if (before) this.builder(before) + this.stringify(child, last !== i || semicolon) + } + } + + comment(node) { + let left = this.raw(node, 'left', 'commentLeft') + let right = this.raw(node, 'right', 'commentRight') + this.builder('/*' + left + node.text + right + '*/', node) + } + + decl(node, semicolon) { + let between = this.raw(node, 'between', 'colon') + let string = node.prop + between + this.rawValue(node, 'value') + + if (node.important) { + string += node.raws.important || ' !important' + } + + if (semicolon) string += ';' + this.builder(string, node) + } + + document(node) { + this.body(node) + } + + raw(node, own, detect) { + let value + if (!detect) detect = own + + // Already had + if (own) { + value = node.raws[own] + if (typeof value !== 'undefined') return value + } + + let parent = node.parent + + if (detect === 'before') { + // Hack for first rule in CSS + if (!parent || (parent.type === 'root' && parent.first === node)) { + return '' + } + + // `root` nodes in `document` should use only their own raws + if (parent && parent.type === 'document') { + return '' + } + } + + // Floating child without parent + if (!parent) return DEFAULT_RAW[detect] + + // Detect style by other nodes + let root = node.root() + if (!root.rawCache) root.rawCache = {} + if (typeof root.rawCache[detect] !== 'undefined') { + return root.rawCache[detect] + } + + if (detect === 'before' || detect === 'after') { + return this.beforeAfter(node, detect) + } else { + let method = 'raw' + capitalize(detect) + if (this[method]) { + value = this[method](root, node) + } else { + root.walk(i => { + value = i.raws[own] + if (typeof value !== 'undefined') return false + }) + } + } + + if (typeof value === 'undefined') value = DEFAULT_RAW[detect] + + root.rawCache[detect] = value + return value + } + + rawBeforeClose(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length > 0) { + if (typeof i.raws.after !== 'undefined') { + value = i.raws.after + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawBeforeComment(root, node) { + let value + root.walkComments(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeDecl') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeDecl(root, node) { + let value + root.walkDecls(i => { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + }) + if (typeof value === 'undefined') { + value = this.raw(node, null, 'beforeRule') + } else if (value) { + value = value.replace(/\S/g, '') + } + return value + } + + rawBeforeOpen(root) { + let value + root.walk(i => { + if (i.type !== 'decl') { + value = i.raws.between + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawBeforeRule(root) { + let value + root.walk(i => { + if (i.nodes && (i.parent !== root || root.first !== i)) { + if (typeof i.raws.before !== 'undefined') { + value = i.raws.before + if (value.includes('\n')) { + value = value.replace(/[^\n]+$/, '') + } + return false + } + } + }) + if (value) value = value.replace(/\S/g, '') + return value + } + + rawColon(root) { + let value + root.walkDecls(i => { + if (typeof i.raws.between !== 'undefined') { + value = i.raws.between.replace(/[^\s:]/g, '') + return false + } + }) + return value + } + + rawEmptyBody(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length === 0) { + value = i.raws.after + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawIndent(root) { + if (root.raws.indent) return root.raws.indent + let value + root.walk(i => { + let p = i.parent + if (p && p !== root && p.parent && p.parent === root) { + if (typeof i.raws.before !== 'undefined') { + let parts = i.raws.before.split('\n') + value = parts[parts.length - 1] + value = value.replace(/\S/g, '') + return false + } + } + }) + return value + } + + rawSemicolon(root) { + let value + root.walk(i => { + if (i.nodes && i.nodes.length && i.last.type === 'decl') { + value = i.raws.semicolon + if (typeof value !== 'undefined') return false + } + }) + return value + } + + rawValue(node, prop) { + let value = node[prop] + let raw = node.raws[prop] + if (raw && raw.value === value) { + return raw.raw + } + + return value + } + + root(node) { + this.body(node) + if (node.raws.after) this.builder(node.raws.after) + } + + rule(node) { + this.block(node, this.rawValue(node, 'selector')) + if (node.raws.ownSemicolon) { + this.builder(node.raws.ownSemicolon, node, 'end') + } + } + + stringify(node, semicolon) { + /* c8 ignore start */ + if (!this[node.type]) { + throw new Error( + 'Unknown AST node type ' + + node.type + + '. ' + + 'Maybe you need to change PostCSS stringifier.' + ) + } + /* c8 ignore stop */ + this[node.type](node, semicolon) + } +} + +module.exports = Stringifier +Stringifier.default = Stringifier diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/stringify.js b/cli/app/node_modules/next/node_modules/postcss/lib/stringify.js new file mode 100644 index 00000000000..77bd0178bbc --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/stringify.js @@ -0,0 +1,11 @@ +'use strict' + +let Stringifier = require('./stringifier') + +function stringify(node, builder) { + let str = new Stringifier(builder) + str.stringify(node) +} + +module.exports = stringify +stringify.default = stringify diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/symbols.js b/cli/app/node_modules/next/node_modules/postcss/lib/symbols.js new file mode 100644 index 00000000000..a142c268d46 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/symbols.js @@ -0,0 +1,5 @@ +'use strict' + +module.exports.isClean = Symbol('isClean') + +module.exports.my = Symbol('my') diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/terminal-highlight.js b/cli/app/node_modules/next/node_modules/postcss/lib/terminal-highlight.js new file mode 100644 index 00000000000..6196c9df19d --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/terminal-highlight.js @@ -0,0 +1,70 @@ +'use strict' + +let pico = require('picocolors') + +let tokenizer = require('./tokenize') + +let Input + +function registerInput(dependant) { + Input = dependant +} + +const HIGHLIGHT_THEME = { + ';': pico.yellow, + ':': pico.yellow, + '(': pico.cyan, + ')': pico.cyan, + '[': pico.yellow, + ']': pico.yellow, + '{': pico.yellow, + '}': pico.yellow, + 'at-word': pico.cyan, + 'brackets': pico.cyan, + 'call': pico.cyan, + 'class': pico.yellow, + 'comment': pico.gray, + 'hash': pico.magenta, + 'string': pico.green +} + +function getTokenType([type, value], processor) { + if (type === 'word') { + if (value[0] === '.') { + return 'class' + } + if (value[0] === '#') { + return 'hash' + } + } + + if (!processor.endOfFile()) { + let next = processor.nextToken() + processor.back(next) + if (next[0] === 'brackets' || next[0] === '(') return 'call' + } + + return type +} + +function terminalHighlight(css) { + let processor = tokenizer(new Input(css), { ignoreErrors: true }) + let result = '' + while (!processor.endOfFile()) { + let token = processor.nextToken() + let color = HIGHLIGHT_THEME[getTokenType(token, processor)] + if (color) { + result += token[1] + .split(/\r?\n/) + .map(i => color(i)) + .join('\n') + } else { + result += token[1] + } + } + return result +} + +terminalHighlight.registerInput = registerInput + +module.exports = terminalHighlight diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/tokenize.js b/cli/app/node_modules/next/node_modules/postcss/lib/tokenize.js new file mode 100644 index 00000000000..39a20a37d5c --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/tokenize.js @@ -0,0 +1,266 @@ +'use strict' + +const SINGLE_QUOTE = "'".charCodeAt(0) +const DOUBLE_QUOTE = '"'.charCodeAt(0) +const BACKSLASH = '\\'.charCodeAt(0) +const SLASH = '/'.charCodeAt(0) +const NEWLINE = '\n'.charCodeAt(0) +const SPACE = ' '.charCodeAt(0) +const FEED = '\f'.charCodeAt(0) +const TAB = '\t'.charCodeAt(0) +const CR = '\r'.charCodeAt(0) +const OPEN_SQUARE = '['.charCodeAt(0) +const CLOSE_SQUARE = ']'.charCodeAt(0) +const OPEN_PARENTHESES = '('.charCodeAt(0) +const CLOSE_PARENTHESES = ')'.charCodeAt(0) +const OPEN_CURLY = '{'.charCodeAt(0) +const CLOSE_CURLY = '}'.charCodeAt(0) +const SEMICOLON = ';'.charCodeAt(0) +const ASTERISK = '*'.charCodeAt(0) +const COLON = ':'.charCodeAt(0) +const AT = '@'.charCodeAt(0) + +const RE_AT_END = /[\t\n\f\r "#'()/;[\\\]{}]/g +const RE_WORD_END = /[\t\n\f\r !"#'():;@[\\\]{}]|\/(?=\*)/g +const RE_BAD_BRACKET = /.[\r\n"'(/\\]/ +const RE_HEX_ESCAPE = /[\da-f]/i + +module.exports = function tokenizer(input, options = {}) { + let css = input.css.valueOf() + let ignore = options.ignoreErrors + + let code, next, quote, content, escape + let escaped, escapePos, prev, n, currentToken + + let length = css.length + let pos = 0 + let buffer = [] + let returned = [] + + function position() { + return pos + } + + function unclosed(what) { + throw input.error('Unclosed ' + what, pos) + } + + function endOfFile() { + return returned.length === 0 && pos >= length + } + + function nextToken(opts) { + if (returned.length) return returned.pop() + if (pos >= length) return + + let ignoreUnclosed = opts ? opts.ignoreUnclosed : false + + code = css.charCodeAt(pos) + + switch (code) { + case NEWLINE: + case SPACE: + case TAB: + case CR: + case FEED: { + next = pos + do { + next += 1 + code = css.charCodeAt(next) + } while ( + code === SPACE || + code === NEWLINE || + code === TAB || + code === CR || + code === FEED + ) + + currentToken = ['space', css.slice(pos, next)] + pos = next - 1 + break + } + + case OPEN_SQUARE: + case CLOSE_SQUARE: + case OPEN_CURLY: + case CLOSE_CURLY: + case COLON: + case SEMICOLON: + case CLOSE_PARENTHESES: { + let controlChar = String.fromCharCode(code) + currentToken = [controlChar, controlChar, pos] + break + } + + case OPEN_PARENTHESES: { + prev = buffer.length ? buffer.pop()[1] : '' + n = css.charCodeAt(pos + 1) + if ( + prev === 'url' && + n !== SINGLE_QUOTE && + n !== DOUBLE_QUOTE && + n !== SPACE && + n !== NEWLINE && + n !== TAB && + n !== FEED && + n !== CR + ) { + next = pos + do { + escaped = false + next = css.indexOf(')', next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + break + } else { + unclosed('bracket') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['brackets', css.slice(pos, next + 1), pos, next] + + pos = next + } else { + next = css.indexOf(')', pos + 1) + content = css.slice(pos, next + 1) + + if (next === -1 || RE_BAD_BRACKET.test(content)) { + currentToken = ['(', '(', pos] + } else { + currentToken = ['brackets', content, pos, next] + pos = next + } + } + + break + } + + case SINGLE_QUOTE: + case DOUBLE_QUOTE: { + quote = code === SINGLE_QUOTE ? "'" : '"' + next = pos + do { + escaped = false + next = css.indexOf(quote, next + 1) + if (next === -1) { + if (ignore || ignoreUnclosed) { + next = pos + 1 + break + } else { + unclosed('string') + } + } + escapePos = next + while (css.charCodeAt(escapePos - 1) === BACKSLASH) { + escapePos -= 1 + escaped = !escaped + } + } while (escaped) + + currentToken = ['string', css.slice(pos, next + 1), pos, next] + pos = next + break + } + + case AT: { + RE_AT_END.lastIndex = pos + 1 + RE_AT_END.test(css) + if (RE_AT_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_AT_END.lastIndex - 2 + } + + currentToken = ['at-word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + case BACKSLASH: { + next = pos + escape = true + while (css.charCodeAt(next + 1) === BACKSLASH) { + next += 1 + escape = !escape + } + code = css.charCodeAt(next + 1) + if ( + escape && + code !== SLASH && + code !== SPACE && + code !== NEWLINE && + code !== TAB && + code !== CR && + code !== FEED + ) { + next += 1 + if (RE_HEX_ESCAPE.test(css.charAt(next))) { + while (RE_HEX_ESCAPE.test(css.charAt(next + 1))) { + next += 1 + } + if (css.charCodeAt(next + 1) === SPACE) { + next += 1 + } + } + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + + pos = next + break + } + + default: { + if (code === SLASH && css.charCodeAt(pos + 1) === ASTERISK) { + next = css.indexOf('*/', pos + 2) + 1 + if (next === 0) { + if (ignore || ignoreUnclosed) { + next = css.length + } else { + unclosed('comment') + } + } + + currentToken = ['comment', css.slice(pos, next + 1), pos, next] + pos = next + } else { + RE_WORD_END.lastIndex = pos + 1 + RE_WORD_END.test(css) + if (RE_WORD_END.lastIndex === 0) { + next = css.length - 1 + } else { + next = RE_WORD_END.lastIndex - 2 + } + + currentToken = ['word', css.slice(pos, next + 1), pos, next] + buffer.push(currentToken) + pos = next + } + + break + } + } + + pos++ + return currentToken + } + + function back(token) { + returned.push(token) + } + + return { + back, + endOfFile, + nextToken, + position + } +} diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/warn-once.js b/cli/app/node_modules/next/node_modules/postcss/lib/warn-once.js new file mode 100644 index 00000000000..316e1cf462f --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/warn-once.js @@ -0,0 +1,13 @@ +/* eslint-disable no-console */ +'use strict' + +let printed = {} + +module.exports = function warnOnce(message) { + if (printed[message]) return + printed[message] = true + + if (typeof console !== 'undefined' && console.warn) { + console.warn(message) + } +} diff --git a/cli/app/node_modules/next/node_modules/postcss/lib/warning.js b/cli/app/node_modules/next/node_modules/postcss/lib/warning.js new file mode 100644 index 00000000000..3a3d79c9380 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/lib/warning.js @@ -0,0 +1,37 @@ +'use strict' + +class Warning { + constructor(text, opts = {}) { + this.type = 'warning' + this.text = text + + if (opts.node && opts.node.source) { + let range = opts.node.rangeBy(opts) + this.line = range.start.line + this.column = range.start.column + this.endLine = range.end.line + this.endColumn = range.end.column + } + + for (let opt in opts) this[opt] = opts[opt] + } + + toString() { + if (this.node) { + return this.node.error(this.text, { + index: this.index, + plugin: this.plugin, + word: this.word + }).message + } + + if (this.plugin) { + return this.plugin + ': ' + this.text + } + + return this.text + } +} + +module.exports = Warning +Warning.default = Warning diff --git a/cli/app/node_modules/next/node_modules/postcss/package.json b/cli/app/node_modules/next/node_modules/postcss/package.json new file mode 100755 index 00000000000..d68db86cff2 --- /dev/null +++ b/cli/app/node_modules/next/node_modules/postcss/package.json @@ -0,0 +1,88 @@ +{ + "name": "postcss", + "version": "8.4.31", + "description": "Tool for transforming styles with JS plugins", + "engines": { + "node": "^10 || ^12 || >=14" + }, + "exports": { + ".": { + "require": "./lib/postcss.js", + "import": "./lib/postcss.mjs" + }, + "./lib/at-rule": "./lib/at-rule.js", + "./lib/comment": "./lib/comment.js", + "./lib/container": "./lib/container.js", + "./lib/css-syntax-error": "./lib/css-syntax-error.js", + "./lib/declaration": "./lib/declaration.js", + "./lib/fromJSON": "./lib/fromJSON.js", + "./lib/input": "./lib/input.js", + "./lib/lazy-result": "./lib/lazy-result.js", + "./lib/no-work-result": "./lib/no-work-result.js", + "./lib/list": "./lib/list.js", + "./lib/map-generator": "./lib/map-generator.js", + "./lib/node": "./lib/node.js", + "./lib/parse": "./lib/parse.js", + "./lib/parser": "./lib/parser.js", + "./lib/postcss": "./lib/postcss.js", + "./lib/previous-map": "./lib/previous-map.js", + "./lib/processor": "./lib/processor.js", + "./lib/result": "./lib/result.js", + "./lib/root": "./lib/root.js", + "./lib/rule": "./lib/rule.js", + "./lib/stringifier": "./lib/stringifier.js", + "./lib/stringify": "./lib/stringify.js", + "./lib/symbols": "./lib/symbols.js", + "./lib/terminal-highlight": "./lib/terminal-highlight.js", + "./lib/tokenize": "./lib/tokenize.js", + "./lib/warn-once": "./lib/warn-once.js", + "./lib/warning": "./lib/warning.js", + "./package.json": "./package.json" + }, + "main": "./lib/postcss.js", + "types": "./lib/postcss.d.ts", + "keywords": [ + "css", + "postcss", + "rework", + "preprocessor", + "parser", + "source map", + "transform", + "manipulation", + "transpiler" + ], + "funding": [ + { + "type": "opencollective", + "url": "https://opencollective.com/postcss/" + }, + { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/postcss" + }, + { + "type": "github", + "url": "https://github.com/sponsors/ai" + } + ], + "author": "Andrey Sitnik <andrey@sitnik.ru>", + "license": "MIT", + "homepage": "https://postcss.org/", + "repository": "postcss/postcss", + "bugs": { + "url": "https://github.com/postcss/postcss/issues" + }, + "dependencies": { + "nanoid": "^3.3.6", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" + }, + "browser": { + "./lib/terminal-highlight": false, + "source-map-js": false, + "path": false, + "url": false, + "fs": false + } +} diff --git a/cli/app/node_modules/next/package.json b/cli/app/node_modules/next/package.json new file mode 100644 index 00000000000..1ba67f253dc --- /dev/null +++ b/cli/app/node_modules/next/package.json @@ -0,0 +1,378 @@ +{ + "name": "next", + "version": "16.2.1", + "description": "The React Framework", + "main": "./dist/server/next.js", + "license": "MIT", + "repository": "vercel/next.js", + "bugs": "https://github.com/vercel/next.js/issues", + "homepage": "https://nextjs.org", + "types": "index.d.ts", + "files": [ + "dist", + "app.js", + "app.d.ts", + "babel.js", + "babel.d.ts", + "client.js", + "client.d.ts", + "compat", + "cache.js", + "cache.d.ts", + "constants.js", + "constants.d.ts", + "document.js", + "document.d.ts", + "dynamic.js", + "dynamic.d.ts", + "error.js", + "error.d.ts", + "future", + "legacy", + "script.js", + "script.d.ts", + "server.js", + "server.d.ts", + "head.js", + "head.d.ts", + "image.js", + "image.d.ts", + "link.js", + "link.d.ts", + "form.js", + "form.d.ts", + "router.js", + "router.d.ts", + "jest.js", + "jest.d.ts", + "og.js", + "og.d.ts", + "root-params.js", + "root-params.d.ts", + "types.d.ts", + "types.js", + "index.d.ts", + "types/global.d.ts", + "types/compiled.d.ts", + "image-types/global.d.ts", + "navigation-types/navigation.d.ts", + "navigation-types/compat/navigation.d.ts", + "font", + "navigation.js", + "navigation.d.ts", + "headers.js", + "headers.d.ts", + "navigation-types", + "web-vitals.js", + "web-vitals.d.ts", + "experimental/testing/server.js", + "experimental/testing/server.d.ts", + "experimental/testmode/playwright.js", + "experimental/testmode/playwright.d.ts", + "experimental/testmode/playwright/msw.js", + "experimental/testmode/playwright/msw.d.ts", + "experimental/testmode/proxy.js", + "experimental/testmode/proxy.d.ts" + ], + "bin": { + "next": "./dist/bin/next" + }, + "scripts": { + "dev": "cross-env NEXT_SERVER_NO_MANGLE=1 taskr", + "build": "taskr release", + "prepublishOnly": "cd ../../ && turbo run build", + "types": "tsc --project tsconfig.build.json --declaration --emitDeclarationOnly --stripInternal --declarationDir dist", + "typescript": "tsec --noEmit", + "ncc-compiled": "taskr ncc", + "storybook": "BROWSER=none storybook dev -p 6006", + "build-storybook": "storybook build", + "test-storybook": "test-storybook" + }, + "taskr": { + "requires": [ + "./taskfile-webpack.js", + "./taskfile-ncc.js", + "./taskfile-swc.js", + "./taskfile-watch.js" + ] + }, + "dependencies": { + "@next/env": "16.2.1", + "@swc/helpers": "0.5.15", + "baseline-browser-mapping": "^2.9.19", + "caniuse-lite": "^1.0.30001579", + "postcss": "8.4.31", + "styled-jsx": "5.1.6" + }, + "peerDependencies": { + "@opentelemetry/api": "^1.1.0", + "@playwright/test": "^1.51.1", + "babel-plugin-react-compiler": "*", + "react": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "react-dom": "^18.2.0 || 19.0.0-rc-de68d2f4-20241204 || ^19.0.0", + "sass": "^1.3.0" + }, + "peerDependenciesMeta": { + "babel-plugin-react-compiler": { + "optional": true + }, + "sass": { + "optional": true + }, + "@opentelemetry/api": { + "optional": true + }, + "@playwright/test": { + "optional": true + } + }, + "optionalDependencies": { + "sharp": "^0.34.5", + "@next/swc-darwin-arm64": "16.2.1", + "@next/swc-darwin-x64": "16.2.1", + "@next/swc-linux-arm64-gnu": "16.2.1", + "@next/swc-linux-arm64-musl": "16.2.1", + "@next/swc-linux-x64-gnu": "16.2.1", + "@next/swc-linux-x64-musl": "16.2.1", + "@next/swc-win32-arm64-msvc": "16.2.1", + "@next/swc-win32-x64-msvc": "16.2.1" + }, + "devDependencies": { + "@babel/core": "7.26.10", + "@babel/eslint-parser": "7.24.6", + "@babel/generator": "7.27.0", + "@babel/plugin-syntax-bigint": "7.8.3", + "@babel/plugin-syntax-dynamic-import": "7.8.3", + "@babel/plugin-syntax-import-attributes": "7.26.0", + "@babel/plugin-syntax-jsx": "7.25.9", + "@babel/plugin-syntax-typescript": "7.25.4", + "@babel/plugin-transform-class-properties": "7.25.9", + "@babel/plugin-transform-export-namespace-from": "7.25.9", + "@babel/plugin-transform-modules-commonjs": "7.26.3", + "@babel/plugin-transform-numeric-separator": "7.25.9", + "@babel/plugin-transform-object-rest-spread": "7.25.9", + "@babel/plugin-transform-runtime": "7.26.10", + "@babel/preset-env": "7.26.9", + "@babel/preset-react": "7.26.3", + "@babel/preset-typescript": "7.27.0", + "@babel/runtime": "7.27.0", + "@babel/traverse": "7.27.0", + "@babel/types": "7.27.0", + "@base-ui-components/react": "1.0.0-beta.2", + "@capsizecss/metrics": "3.4.0", + "@edge-runtime/cookies": "6.0.0", + "@edge-runtime/ponyfill": "4.0.0", + "@edge-runtime/primitives": "6.0.0", + "@hapi/accept": "5.0.2", + "@jest/transform": "29.5.0", + "@jest/types": "29.5.0", + "@modelcontextprotocol/sdk": "1.18.1", + "@mswjs/interceptors": "0.23.0", + "@napi-rs/triples": "1.2.0", + "@next/font": "16.2.1", + "@next/polyfill-module": "16.2.1", + "@next/polyfill-nomodule": "16.2.1", + "@next/react-refresh-utils": "16.2.1", + "@next/swc": "16.2.1", + "@opentelemetry/api": "1.6.0", + "@playwright/test": "1.58.2", + "@rspack/core": "1.6.7", + "@storybook/addon-a11y": "8.6.0", + "@storybook/addon-essentials": "8.6.0", + "@storybook/addon-interactions": "8.6.0", + "@storybook/addon-webpack5-compiler-swc": "3.0.0", + "@storybook/blocks": "8.6.0", + "@storybook/react": "8.6.0", + "@storybook/react-webpack5": "8.6.0", + "@storybook/test": "8.6.0", + "@storybook/test-runner": "0.21.0", + "@swc/core": "1.11.24", + "@swc/types": "0.1.7", + "@taskr/clear": "1.1.0", + "@taskr/esnext": "1.1.0", + "@types/babel__code-frame": "7.0.6", + "@types/babel__core": "7.20.5", + "@types/babel__generator": "7.27.0", + "@types/babel__template": "7.4.4", + "@types/babel__traverse": "7.20.7", + "@types/bytes": "3.1.1", + "@types/ci-info": "2.0.0", + "@types/compression": "0.0.36", + "@types/content-disposition": "0.5.4", + "@types/content-type": "1.1.3", + "@types/cookie": "0.3.3", + "@types/cross-spawn": "6.0.0", + "@types/debug": "4.1.5", + "@types/express-serve-static-core": "4.17.33", + "@types/fresh": "0.5.0", + "@types/glob": "7.1.1", + "@types/jsonwebtoken": "9.0.0", + "@types/lodash": "4.14.198", + "@types/lodash.curry": "4.1.6", + "@types/path-to-regexp": "1.7.0", + "@types/picomatch": "2.3.3", + "@types/platform": "1.3.4", + "@types/react": "19.0.8", + "@types/react-dom": "19.0.3", + "@types/react-is": "18.2.4", + "@types/semver": "7.3.1", + "@types/send": "0.14.4", + "@types/serve-handler": "6.1.4", + "@types/shell-quote": "1.7.1", + "@types/text-table": "0.2.1", + "@types/ua-parser-js": "0.7.36", + "@types/webpack-sources1": "npm:@types/webpack-sources@0.1.5", + "@types/ws": "8.2.0", + "@vercel/ncc": "0.34.0", + "@vercel/nft": "0.27.1", + "@vercel/routing-utils": "5.2.0", + "@vercel/turbopack-ecmascript-runtime": "*", + "acorn": "8.14.0", + "anser": "1.4.9", + "arg": "4.1.0", + "assert": "2.0.0", + "async-retry": "1.2.3", + "async-sema": "3.0.0", + "axe-playwright": "2.0.3", + "babel-loader": "10.0.0", + "babel-plugin-react-compiler": "0.0.0-experimental-1371fcb-20260227", + "babel-plugin-transform-define": "2.0.0", + "babel-plugin-transform-react-remove-prop-types": "0.4.24", + "browserify-zlib": "0.2.0", + "browserslist": "4.28.1", + "buffer": "5.6.0", + "busboy": "1.6.0", + "bytes": "3.1.1", + "ci-info": "watson/ci-info#f43f6a1cefff47fb361c88cf4b943fdbcaafe540", + "cli-select": "1.1.2", + "client-only": "0.0.1", + "commander": "12.1.0", + "comment-json": "3.0.3", + "compression": "1.7.4", + "conf": "5.0.0", + "constants-browserify": "1.0.0", + "content-disposition": "0.5.3", + "content-type": "1.0.4", + "cookie": "0.4.1", + "cross-env": "6.0.3", + "cross-spawn": "7.0.3", + "crypto-browserify": "3.12.0", + "css-loader": "7.1.2", + "css.escape": "1.5.1", + "cssnano-preset-default": "7.0.6", + "data-uri-to-buffer": "3.0.1", + "debug": "4.1.1", + "devalue": "2.0.1", + "domain-browser": "4.19.0", + "edge-runtime": "4.0.1", + "events": "3.3.0", + "find-up": "4.1.0", + "fresh": "0.5.2", + "glob": "7.1.7", + "gzip-size": "5.1.1", + "http-proxy": "1.18.1", + "http-proxy-agent": "5.0.0", + "https-browserify": "1.0.0", + "https-proxy-agent": "5.0.1", + "icss-utils": "5.1.0", + "ignore-loader": "0.1.2", + "image-size": "1.2.1", + "ipaddr.js": "2.2.0", + "is-docker": "2.0.0", + "is-wsl": "2.2.0", + "jest-worker": "27.5.1", + "json5": "2.2.3", + "jsonwebtoken": "9.0.0", + "loader-runner": "4.3.0", + "loader-utils2": "npm:loader-utils@2.0.4", + "loader-utils3": "npm:loader-utils@3.1.3", + "lodash.curry": "4.1.1", + "mini-css-extract-plugin": "2.4.4", + "msw": "2.3.0", + "nanoid": "3.1.32", + "native-url": "0.3.4", + "neo-async": "2.6.1", + "node-html-parser": "5.3.3", + "ora": "4.0.4", + "os-browserify": "0.3.0", + "p-limit": "3.1.0", + "p-queue": "6.6.2", + "path-browserify": "1.0.1", + "path-to-regexp": "6.3.0", + "picomatch": "4.0.1", + "postcss-flexbugs-fixes": "5.0.2", + "postcss-modules-extract-imports": "3.0.0", + "postcss-modules-local-by-default": "4.2.0", + "postcss-modules-scope": "3.0.0", + "postcss-modules-values": "4.0.0", + "postcss-preset-env": "7.4.3", + "postcss-safe-parser": "6.0.0", + "postcss-scss": "4.0.3", + "postcss-value-parser": "4.2.0", + "process": "0.11.10", + "punycode": "2.1.1", + "querystring-es3": "0.2.1", + "raw-body": "2.4.1", + "react-refresh": "0.12.0", + "recast": "0.23.11", + "regenerator-runtime": "0.13.4", + "safe-stable-stringify": "2.5.0", + "sass-loader": "16.0.5", + "schema-utils2": "npm:schema-utils@2.7.1", + "schema-utils3": "npm:schema-utils@3.0.0", + "semver": "7.3.2", + "send": "0.18.0", + "serve-handler": "6.1.6", + "server-only": "0.0.1", + "setimmediate": "1.0.5", + "shell-quote": "1.7.3", + "source-map": "0.6.1", + "source-map-loader": "5.0.0", + "source-map08": "npm:source-map@0.8.0-beta.0", + "stacktrace-parser": "0.1.10", + "storybook": "8.6.0", + "stream-browserify": "3.0.0", + "stream-http": "3.1.1", + "strict-event-emitter": "0.5.0", + "string-hash": "1.1.3", + "string_decoder": "1.3.0", + "strip-ansi": "6.0.0", + "style-loader": "4.0.0", + "superstruct": "1.0.3", + "tar": "7.5.11", + "taskr": "1.1.0", + "terser": "5.27.0", + "terser-webpack-plugin": "5.3.9", + "text-table": "0.2.0", + "timers-browserify": "2.0.12", + "tty-browserify": "0.0.1", + "typescript": "5.9.2", + "ua-parser-js": "1.0.35", + "unistore": "3.4.1", + "util": "0.12.4", + "vm-browserify": "1.1.2", + "watchpack": "2.4.0", + "web-vitals": "4.2.1", + "webpack": "5.98.0", + "webpack-sources1": "npm:webpack-sources@1.4.3", + "webpack-sources3": "npm:webpack-sources@3.2.3", + "ws": "8.2.3", + "zod": "3.25.76", + "zod-validation-error": "3.4.0" + }, + "keywords": [ + "react", + "framework", + "nextjs", + "web", + "server", + "node", + "front-end", + "backend", + "cli", + "vercel" + ], + "engines": { + "node": ">=20.9.0" + } +} \ No newline at end of file diff --git a/cli/app/node_modules/picocolors/package.json b/cli/app/node_modules/picocolors/package.json new file mode 100644 index 00000000000..372d4b642cf --- /dev/null +++ b/cli/app/node_modules/picocolors/package.json @@ -0,0 +1,25 @@ +{ + "name": "picocolors", + "version": "1.1.1", + "main": "./picocolors.js", + "types": "./picocolors.d.ts", + "browser": { + "./picocolors.js": "./picocolors.browser.js" + }, + "sideEffects": false, + "description": "The tiniest and the fastest library for terminal output formatting with ANSI colors", + "files": [ + "picocolors.*", + "types.d.ts" + ], + "keywords": [ + "terminal", + "colors", + "formatting", + "cli", + "console" + ], + "author": "Alexey Raspopov", + "repository": "alexeyraspopov/picocolors", + "license": "ISC" +} diff --git a/cli/app/node_modules/picocolors/picocolors.js b/cli/app/node_modules/picocolors/picocolors.js new file mode 100644 index 00000000000..e32df854882 --- /dev/null +++ b/cli/app/node_modules/picocolors/picocolors.js @@ -0,0 +1,75 @@ +let p = process || {}, argv = p.argv || [], env = p.env || {} +let isColorSupported = + !(!!env.NO_COLOR || argv.includes("--no-color")) && + (!!env.FORCE_COLOR || argv.includes("--color") || p.platform === "win32" || ((p.stdout || {}).isTTY && env.TERM !== "dumb") || !!env.CI) + +let formatter = (open, close, replace = open) => + input => { + let string = "" + input, index = string.indexOf(close, open.length) + return ~index ? open + replaceClose(string, close, replace, index) + close : open + string + close + } + +let replaceClose = (string, close, replace, index) => { + let result = "", cursor = 0 + do { + result += string.substring(cursor, index) + replace + cursor = index + close.length + index = string.indexOf(close, cursor) + } while (~index) + return result + string.substring(cursor) +} + +let createColors = (enabled = isColorSupported) => { + let f = enabled ? formatter : () => String + return { + isColorSupported: enabled, + reset: f("\x1b[0m", "\x1b[0m"), + bold: f("\x1b[1m", "\x1b[22m", "\x1b[22m\x1b[1m"), + dim: f("\x1b[2m", "\x1b[22m", "\x1b[22m\x1b[2m"), + italic: f("\x1b[3m", "\x1b[23m"), + underline: f("\x1b[4m", "\x1b[24m"), + inverse: f("\x1b[7m", "\x1b[27m"), + hidden: f("\x1b[8m", "\x1b[28m"), + strikethrough: f("\x1b[9m", "\x1b[29m"), + + black: f("\x1b[30m", "\x1b[39m"), + red: f("\x1b[31m", "\x1b[39m"), + green: f("\x1b[32m", "\x1b[39m"), + yellow: f("\x1b[33m", "\x1b[39m"), + blue: f("\x1b[34m", "\x1b[39m"), + magenta: f("\x1b[35m", "\x1b[39m"), + cyan: f("\x1b[36m", "\x1b[39m"), + white: f("\x1b[37m", "\x1b[39m"), + gray: f("\x1b[90m", "\x1b[39m"), + + bgBlack: f("\x1b[40m", "\x1b[49m"), + bgRed: f("\x1b[41m", "\x1b[49m"), + bgGreen: f("\x1b[42m", "\x1b[49m"), + bgYellow: f("\x1b[43m", "\x1b[49m"), + bgBlue: f("\x1b[44m", "\x1b[49m"), + bgMagenta: f("\x1b[45m", "\x1b[49m"), + bgCyan: f("\x1b[46m", "\x1b[49m"), + bgWhite: f("\x1b[47m", "\x1b[49m"), + + blackBright: f("\x1b[90m", "\x1b[39m"), + redBright: f("\x1b[91m", "\x1b[39m"), + greenBright: f("\x1b[92m", "\x1b[39m"), + yellowBright: f("\x1b[93m", "\x1b[39m"), + blueBright: f("\x1b[94m", "\x1b[39m"), + magentaBright: f("\x1b[95m", "\x1b[39m"), + cyanBright: f("\x1b[96m", "\x1b[39m"), + whiteBright: f("\x1b[97m", "\x1b[39m"), + + bgBlackBright: f("\x1b[100m", "\x1b[49m"), + bgRedBright: f("\x1b[101m", "\x1b[49m"), + bgGreenBright: f("\x1b[102m", "\x1b[49m"), + bgYellowBright: f("\x1b[103m", "\x1b[49m"), + bgBlueBright: f("\x1b[104m", "\x1b[49m"), + bgMagentaBright: f("\x1b[105m", "\x1b[49m"), + bgCyanBright: f("\x1b[106m", "\x1b[49m"), + bgWhiteBright: f("\x1b[107m", "\x1b[49m"), + } +} + +module.exports = createColors() +module.exports.createColors = createColors diff --git a/cli/app/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js b/cli/app/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js new file mode 100644 index 00000000000..d5cb282a619 --- /dev/null +++ b/cli/app/node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.js @@ -0,0 +1,6603 @@ +/** + * @license React + * react-dom-server-legacy.browser.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* + + + JS Implementation of MurmurHash3 (r136) (as of May 20, 2011) + + Copyright (c) 2011 Gary Court + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +"use strict"; +var React = require("react"), + ReactDOM = require("react-dom"); +function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return ( + "Minified React error #" + + code + + "; visit " + + url + + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." + ); +} +var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_SCOPE_TYPE = Symbol.for("react.scope"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"), + REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; +} +var isArrayImpl = Array.isArray; +function murmurhash3_32_gc(key, seed) { + var remainder = key.length & 3; + var bytes = key.length - remainder; + var h1 = seed; + for (seed = 0; seed < bytes; ) { + var k1 = + (key.charCodeAt(seed) & 255) | + ((key.charCodeAt(++seed) & 255) << 8) | + ((key.charCodeAt(++seed) & 255) << 16) | + ((key.charCodeAt(++seed) & 255) << 24); + ++seed; + k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = + (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295; + h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16); + } + k1 = 0; + switch (remainder) { + case 3: + k1 ^= (key.charCodeAt(seed + 2) & 255) << 16; + case 2: + k1 ^= (key.charCodeAt(seed + 1) & 255) << 8; + case 1: + (k1 ^= key.charCodeAt(seed) & 255), + (k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295), + (k1 = (k1 << 15) | (k1 >>> 17)), + (h1 ^= + (461845907 * (k1 & 65535) + + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295); + } + h1 ^= key.length; + h1 ^= h1 >>> 16; + h1 = + (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= h1 >>> 13; + h1 = + (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + return (h1 ^ (h1 >>> 16)) >>> 0; +} +var assign = Object.assign, + hasOwnProperty = Object.prototype.hasOwnProperty, + VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), + illegalAttributeNameCache = {}, + validatedAttributeNameCache = {}; +function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return !0; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return (validatedAttributeNameCache[attributeName] = !0); + illegalAttributeNameCache[attributeName] = !0; + return !1; +} +var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ), + aliases = new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), + matchHtmlRegExp = /["'&<>]/; +function escapeTextForBrowser(text) { + if ( + "boolean" === typeof text || + "number" === typeof text || + "bigint" === typeof text + ) + return "" + text; + text = "" + text; + var match = matchHtmlRegExp.exec(text); + if (match) { + var html = "", + index, + lastIndex = 0; + for (index = match.index; index < text.length; index++) { + switch (text.charCodeAt(index)) { + case 34: + match = """; + break; + case 38: + match = "&"; + break; + case 39: + match = "'"; + break; + case 60: + match = "<"; + break; + case 62: + match = ">"; + break; + default: + continue; + } + lastIndex !== index && (html += text.slice(lastIndex, index)); + lastIndex = index + 1; + html += match; + } + text = lastIndex !== index ? html + text.slice(lastIndex, index) : html; + } + return text; +} +var uppercasePattern = /([A-Z])/g, + msPattern = /^ms-/, + isJavaScriptProtocol = + /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; +function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) + ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" + : url; +} +var ReactSharedInternals = + React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + ReactDOMSharedInternals = + ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + sharedNotPendingObject = { + pending: !1, + data: null, + method: null, + action: null + }, + previousDispatcher = ReactDOMSharedInternals.d; +ReactDOMSharedInternals.d = { + f: previousDispatcher.f, + r: previousDispatcher.r, + D: prefetchDNS, + C: preconnect, + L: preload, + m: preloadModule, + X: preinitScript, + S: preinitStyle, + M: preinitModuleScript +}; +var PRELOAD_NO_CREDS = [], + currentlyFlushingRenderState = null, + scriptRegex = /(<\/|<)(s)(cript)/gi; +function scriptReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix; +} +function createResumableState( + identifierPrefix, + externalRuntimeConfig, + bootstrapScriptContent, + bootstrapScripts, + bootstrapModules +) { + return { + idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix, + nextFormID: 0, + streamingFormat: 0, + bootstrapScriptContent: bootstrapScriptContent, + bootstrapScripts: bootstrapScripts, + bootstrapModules: bootstrapModules, + instructions: 0, + hasBody: !1, + hasHtml: !1, + unknownResources: {}, + dnsResources: {}, + connectResources: { default: {}, anonymous: {}, credentials: {} }, + imageResources: {}, + styleResources: {}, + scriptResources: {}, + moduleUnknownResources: {}, + moduleScriptResources: {} + }; +} +function createFormatContext( + insertionMode, + selectedValue, + tagScope, + viewTransition +) { + return { + insertionMode: insertionMode, + selectedValue: selectedValue, + tagScope: tagScope, + viewTransition: viewTransition + }; +} +function getChildFormatContext(parentContext, type, props) { + var subtreeScope = parentContext.tagScope & -25; + switch (type) { + case "noscript": + return createFormatContext(2, null, subtreeScope | 1, null); + case "select": + return createFormatContext( + 2, + null != props.value ? props.value : props.defaultValue, + subtreeScope, + null + ); + case "svg": + return createFormatContext(4, null, subtreeScope, null); + case "picture": + return createFormatContext(2, null, subtreeScope | 2, null); + case "math": + return createFormatContext(5, null, subtreeScope, null); + case "foreignObject": + return createFormatContext(2, null, subtreeScope, null); + case "table": + return createFormatContext(6, null, subtreeScope, null); + case "thead": + case "tbody": + case "tfoot": + return createFormatContext(7, null, subtreeScope, null); + case "colgroup": + return createFormatContext(9, null, subtreeScope, null); + case "tr": + return createFormatContext(8, null, subtreeScope, null); + case "head": + if (2 > parentContext.insertionMode) + return createFormatContext(3, null, subtreeScope, null); + break; + case "html": + if (0 === parentContext.insertionMode) + return createFormatContext(1, null, subtreeScope, null); + } + return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode + ? createFormatContext(2, null, subtreeScope, null) + : parentContext.tagScope !== subtreeScope + ? createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + null + ) + : parentContext; +} +function getSuspenseViewTransition(parentViewTransition) { + return null === parentViewTransition + ? null + : { + update: parentViewTransition.update, + enter: "none", + exit: "none", + share: parentViewTransition.update, + name: parentViewTransition.autoName, + autoName: parentViewTransition.autoName, + nameIdx: 0 + }; +} +function getSuspenseFallbackFormatContext(resumableState, parentContext) { + parentContext.tagScope & 32 && (resumableState.instructions |= 128); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + parentContext.tagScope | 12, + getSuspenseViewTransition(parentContext.viewTransition) + ); +} +function getSuspenseContentFormatContext(resumableState, parentContext) { + resumableState = getSuspenseViewTransition(parentContext.viewTransition); + var subtreeScope = parentContext.tagScope | 16; + null !== resumableState && + "none" !== resumableState.share && + (subtreeScope |= 64); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + resumableState + ); +} +var styleNameCache = new Map(); +function pushStyleAttribute(target, style) { + if ("object" !== typeof style) throw Error(formatProdErrorMessage(62)); + var isFirst = !0, + styleName; + for (styleName in style) + if (hasOwnProperty.call(style, styleName)) { + var styleValue = style[styleName]; + if ( + null != styleValue && + "boolean" !== typeof styleValue && + "" !== styleValue + ) { + if (0 === styleName.indexOf("--")) { + var nameChunk = escapeTextForBrowser(styleName); + styleValue = escapeTextForBrowser(("" + styleValue).trim()); + } else + (nameChunk = styleNameCache.get(styleName)), + void 0 === nameChunk && + ((nameChunk = escapeTextForBrowser( + styleName + .replace(uppercasePattern, "-$1") + .toLowerCase() + .replace(msPattern, "-ms-") + )), + styleNameCache.set(styleName, nameChunk)), + (styleValue = + "number" === typeof styleValue + ? 0 === styleValue || unitlessNumbers.has(styleName) + ? "" + styleValue + : styleValue + "px" + : escapeTextForBrowser(("" + styleValue).trim())); + isFirst + ? ((isFirst = !1), + target.push(' style="', nameChunk, ":", styleValue)) + : target.push(";", nameChunk, ":", styleValue); + } + } + isFirst || target.push('"'); +} +function pushBooleanAttribute(target, name, value) { + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '=""'); +} +function pushStringAttribute(target, name, value) { + "function" !== typeof value && + "symbol" !== typeof value && + "boolean" !== typeof value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); +} +var actionJavaScriptURL = escapeTextForBrowser( + "javascript:throw new Error('React form unexpectedly submitted.')" +); +function pushAdditionalFormField(value, key) { + this.push('<input type="hidden"'); + validateAdditionalFormField(value); + pushStringAttribute(this, "name", key); + pushStringAttribute(this, "value", value); + this.push("/>"); +} +function validateAdditionalFormField(value) { + if ("string" !== typeof value) throw Error(formatProdErrorMessage(480)); +} +function getCustomFormFields(resumableState, formAction) { + if ("function" === typeof formAction.$$FORM_ACTION) { + var id = resumableState.nextFormID++; + resumableState = resumableState.idPrefix + id; + try { + var customFields = formAction.$$FORM_ACTION(resumableState); + if (customFields) { + var formData = customFields.data; + null != formData && formData.forEach(validateAdditionalFormField); + } + return customFields; + } catch (x) { + if ("object" === typeof x && null !== x && "function" === typeof x.then) + throw x; + } + } + return null; +} +function pushFormActionAttribute( + target, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name +) { + var formData = null; + if ("function" === typeof formAction) { + var customFields = getCustomFormFields(resumableState, formAction); + null !== customFields + ? ((name = customFields.name), + (formAction = customFields.action || ""), + (formEncType = customFields.encType), + (formMethod = customFields.method), + (formTarget = customFields.target), + (formData = customFields.data)) + : (target.push(" ", "formAction", '="', actionJavaScriptURL, '"'), + (formTarget = formMethod = formEncType = formAction = name = null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != name && pushAttribute(target, "name", name); + null != formAction && pushAttribute(target, "formAction", formAction); + null != formEncType && pushAttribute(target, "formEncType", formEncType); + null != formMethod && pushAttribute(target, "formMethod", formMethod); + null != formTarget && pushAttribute(target, "formTarget", formTarget); + return formData; +} +function pushAttribute(target, name, value) { + switch (name) { + case "className": + pushStringAttribute(target, "class", value); + break; + case "tabIndex": + pushStringAttribute(target, "tabindex", value); + break; + case "dir": + case "role": + case "viewBox": + case "width": + case "height": + pushStringAttribute(target, name, value); + break; + case "style": + pushStyleAttribute(target, value); + break; + case "src": + case "href": + if ("" === value) break; + case "action": + case "formAction": + if ( + null == value || + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "defaultValue": + case "defaultChecked": + case "innerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "autoFocus": + case "multiple": + case "muted": + pushBooleanAttribute(target, name.toLowerCase(), value); + break; + case "xlinkHref": + if ( + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push(" ", "xlink:href", '="', escapeTextForBrowser(value), '"'); + break; + case "contentEditable": + case "spellCheck": + case "draggable": + case "value": + case "autoReverse": + case "externalResourcesRequired": + case "focusable": + case "preserveAlpha": + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "inert": + case "allowFullScreen": + case "async": + case "autoPlay": + case "controls": + case "default": + case "defer": + case "disabled": + case "disablePictureInPicture": + case "disableRemotePlayback": + case "formNoValidate": + case "hidden": + case "loop": + case "noModule": + case "noValidate": + case "open": + case "playsInline": + case "readOnly": + case "required": + case "reversed": + case "scoped": + case "seamless": + case "itemScope": + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '=""'); + break; + case "capture": + case "download": + !0 === value + ? target.push(" ", name, '=""') + : !1 !== value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "cols": + case "rows": + case "size": + case "span": + "function" !== typeof value && + "symbol" !== typeof value && + !isNaN(value) && + 1 <= value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "rowSpan": + case "start": + "function" === typeof value || + "symbol" === typeof value || + isNaN(value) || + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "xlinkActuate": + pushStringAttribute(target, "xlink:actuate", value); + break; + case "xlinkArcrole": + pushStringAttribute(target, "xlink:arcrole", value); + break; + case "xlinkRole": + pushStringAttribute(target, "xlink:role", value); + break; + case "xlinkShow": + pushStringAttribute(target, "xlink:show", value); + break; + case "xlinkTitle": + pushStringAttribute(target, "xlink:title", value); + break; + case "xlinkType": + pushStringAttribute(target, "xlink:type", value); + break; + case "xmlBase": + pushStringAttribute(target, "xml:base", value); + break; + case "xmlLang": + pushStringAttribute(target, "xml:lang", value); + break; + case "xmlSpace": + pushStringAttribute(target, "xml:space", value); + break; + default: + if ( + !(2 < name.length) || + ("o" !== name[0] && "O" !== name[0]) || + ("n" !== name[1] && "N" !== name[1]) + ) + if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) { + switch (typeof value) { + case "function": + case "symbol": + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) return; + } + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + } + } +} +function pushInnerHTML(target, innerHTML, children) { + if (null != innerHTML) { + if (null != children) throw Error(formatProdErrorMessage(60)); + if ("object" !== typeof innerHTML || !("__html" in innerHTML)) + throw Error(formatProdErrorMessage(61)); + innerHTML = innerHTML.__html; + null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML); + } +} +function flattenOptionChildren(children) { + var content = ""; + React.Children.forEach(children, function (child) { + null != child && (content += child); + }); + return content; +} +function injectFormReplayingRuntime(resumableState, renderState) { + if (0 === (resumableState.instructions & 16)) { + resumableState.instructions |= 16; + var preamble = renderState.preamble, + bootstrapChunks = renderState.bootstrapChunks; + (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length + ? (bootstrapChunks.push(renderState.startInlineScript), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + ">", + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});', + "\x3c/script>" + )) + : bootstrapChunks.unshift( + renderState.startInlineScript, + ">", + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});', + "\x3c/script>" + ); + } +} +function pushLinkImpl(target, props) { + target.push(startChunkForTag("link")); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, "link")); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push("/>"); + return null; +} +var styleRegex = /(<\/|<)(s)(tyle)/gi; +function styleReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix; +} +function pushSelfClosing(target, props, tag) { + target.push(startChunkForTag(tag)); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, tag)); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push("/>"); + return null; +} +function pushTitleImpl(target, props) { + target.push(startChunkForTag("title")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + props = Array.isArray(children) + ? 2 > children.length + ? children[0] + : null + : children; + "function" !== typeof props && + "symbol" !== typeof props && + null !== props && + void 0 !== props && + target.push(escapeTextForBrowser("" + props)); + pushInnerHTML(target, innerHTML, children); + target.push(endChunkForTag("title")); + return null; +} +function pushScriptImpl(target, props) { + target.push(startChunkForTag("script")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, children); + "string" === typeof children && + target.push(("" + children).replace(scriptRegex, scriptReplacer)); + target.push(endChunkForTag("script")); + return null; +} +function pushStartSingletonElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, tag); + return tag; +} +function pushStartGenericElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, tag); + return "string" === typeof tag + ? (target.push(escapeTextForBrowser(tag)), null) + : tag; +} +var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, + validatedTagCache = new Map(); +function startChunkForTag(tag) { + var tagStartChunk = validatedTagCache.get(tag); + if (void 0 === tagStartChunk) { + if (!VALID_TAG_REGEX.test(tag)) + throw Error(formatProdErrorMessage(65, tag)); + tagStartChunk = "<" + tag; + validatedTagCache.set(tag, tagStartChunk); + } + return tagStartChunk; +} +function pushStartInstance( + target$jscomp$0, + type, + props, + resumableState, + renderState, + preambleState, + hoistableState, + formatContext, + textEmbedded +) { + switch (type) { + case "div": + case "span": + case "svg": + case "path": + break; + case "a": + target$jscomp$0.push(startChunkForTag("a")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + case "href": + "" === propValue + ? pushStringAttribute(target$jscomp$0, "href", "") + : pushAttribute(target$jscomp$0, propKey, propValue); + break; + default: + pushAttribute(target$jscomp$0, propKey, propValue); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML, children); + if ("string" === typeof children) { + target$jscomp$0.push(escapeTextForBrowser(children)); + var JSCompiler_inline_result = null; + } else JSCompiler_inline_result = children; + return JSCompiler_inline_result; + case "g": + case "p": + case "li": + break; + case "select": + target$jscomp$0.push(startChunkForTag("select")); + var children$jscomp$0 = null, + innerHTML$jscomp$0 = null, + propKey$jscomp$0; + for (propKey$jscomp$0 in props) + if (hasOwnProperty.call(props, propKey$jscomp$0)) { + var propValue$jscomp$0 = props[propKey$jscomp$0]; + if (null != propValue$jscomp$0) + switch (propKey$jscomp$0) { + case "children": + children$jscomp$0 = propValue$jscomp$0; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$0 = propValue$jscomp$0; + break; + case "defaultValue": + case "value": + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$0, + propValue$jscomp$0 + ); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); + return children$jscomp$0; + case "option": + var selectedValue = formatContext.selectedValue; + target$jscomp$0.push(startChunkForTag("option")); + var children$jscomp$1 = null, + value = null, + selected = null, + innerHTML$jscomp$1 = null, + propKey$jscomp$1; + for (propKey$jscomp$1 in props) + if (hasOwnProperty.call(props, propKey$jscomp$1)) { + var propValue$jscomp$1 = props[propKey$jscomp$1]; + if (null != propValue$jscomp$1) + switch (propKey$jscomp$1) { + case "children": + children$jscomp$1 = propValue$jscomp$1; + break; + case "selected": + selected = propValue$jscomp$1; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$1 = propValue$jscomp$1; + break; + case "value": + value = propValue$jscomp$1; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$1, + propValue$jscomp$1 + ); + } + } + if (null != selectedValue) { + var stringValue = + null !== value + ? "" + value + : flattenOptionChildren(children$jscomp$1); + if (isArrayImpl(selectedValue)) + for (var i = 0; i < selectedValue.length; i++) { + if ("" + selectedValue[i] === stringValue) { + target$jscomp$0.push(' selected=""'); + break; + } + } + else + "" + selectedValue === stringValue && + target$jscomp$0.push(' selected=""'); + } else selected && target$jscomp$0.push(' selected=""'); + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1); + return children$jscomp$1; + case "textarea": + target$jscomp$0.push(startChunkForTag("textarea")); + var value$jscomp$0 = null, + defaultValue = null, + children$jscomp$2 = null, + propKey$jscomp$2; + for (propKey$jscomp$2 in props) + if (hasOwnProperty.call(props, propKey$jscomp$2)) { + var propValue$jscomp$2 = props[propKey$jscomp$2]; + if (null != propValue$jscomp$2) + switch (propKey$jscomp$2) { + case "children": + children$jscomp$2 = propValue$jscomp$2; + break; + case "value": + value$jscomp$0 = propValue$jscomp$2; + break; + case "defaultValue": + defaultValue = propValue$jscomp$2; + break; + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(91)); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$2, + propValue$jscomp$2 + ); + } + } + null === value$jscomp$0 && + null !== defaultValue && + (value$jscomp$0 = defaultValue); + target$jscomp$0.push(">"); + if (null != children$jscomp$2) { + if (null != value$jscomp$0) throw Error(formatProdErrorMessage(92)); + if (isArrayImpl(children$jscomp$2)) { + if (1 < children$jscomp$2.length) + throw Error(formatProdErrorMessage(93)); + value$jscomp$0 = "" + children$jscomp$2[0]; + } + value$jscomp$0 = "" + children$jscomp$2; + } + "string" === typeof value$jscomp$0 && + "\n" === value$jscomp$0[0] && + target$jscomp$0.push("\n"); + null !== value$jscomp$0 && + target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)); + return null; + case "input": + target$jscomp$0.push(startChunkForTag("input")); + var name = null, + formAction = null, + formEncType = null, + formMethod = null, + formTarget = null, + value$jscomp$1 = null, + defaultValue$jscomp$0 = null, + checked = null, + defaultChecked = null, + propKey$jscomp$3; + for (propKey$jscomp$3 in props) + if (hasOwnProperty.call(props, propKey$jscomp$3)) { + var propValue$jscomp$3 = props[propKey$jscomp$3]; + if (null != propValue$jscomp$3) + switch (propKey$jscomp$3) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, "input")); + case "name": + name = propValue$jscomp$3; + break; + case "formAction": + formAction = propValue$jscomp$3; + break; + case "formEncType": + formEncType = propValue$jscomp$3; + break; + case "formMethod": + formMethod = propValue$jscomp$3; + break; + case "formTarget": + formTarget = propValue$jscomp$3; + break; + case "defaultChecked": + defaultChecked = propValue$jscomp$3; + break; + case "defaultValue": + defaultValue$jscomp$0 = propValue$jscomp$3; + break; + case "checked": + checked = propValue$jscomp$3; + break; + case "value": + value$jscomp$1 = propValue$jscomp$3; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$3, + propValue$jscomp$3 + ); + } + } + var formData = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name + ); + null !== checked + ? pushBooleanAttribute(target$jscomp$0, "checked", checked) + : null !== defaultChecked && + pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked); + null !== value$jscomp$1 + ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) + : null !== defaultValue$jscomp$0 && + pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + target$jscomp$0.push("/>"); + null != formData && + formData.forEach(pushAdditionalFormField, target$jscomp$0); + return null; + case "button": + target$jscomp$0.push(startChunkForTag("button")); + var children$jscomp$3 = null, + innerHTML$jscomp$2 = null, + name$jscomp$0 = null, + formAction$jscomp$0 = null, + formEncType$jscomp$0 = null, + formMethod$jscomp$0 = null, + formTarget$jscomp$0 = null, + propKey$jscomp$4; + for (propKey$jscomp$4 in props) + if (hasOwnProperty.call(props, propKey$jscomp$4)) { + var propValue$jscomp$4 = props[propKey$jscomp$4]; + if (null != propValue$jscomp$4) + switch (propKey$jscomp$4) { + case "children": + children$jscomp$3 = propValue$jscomp$4; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$2 = propValue$jscomp$4; + break; + case "name": + name$jscomp$0 = propValue$jscomp$4; + break; + case "formAction": + formAction$jscomp$0 = propValue$jscomp$4; + break; + case "formEncType": + formEncType$jscomp$0 = propValue$jscomp$4; + break; + case "formMethod": + formMethod$jscomp$0 = propValue$jscomp$4; + break; + case "formTarget": + formTarget$jscomp$0 = propValue$jscomp$4; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$4, + propValue$jscomp$4 + ); + } + } + var formData$jscomp$0 = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction$jscomp$0, + formEncType$jscomp$0, + formMethod$jscomp$0, + formTarget$jscomp$0, + name$jscomp$0 + ); + target$jscomp$0.push(">"); + null != formData$jscomp$0 && + formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3); + if ("string" === typeof children$jscomp$3) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3)); + var JSCompiler_inline_result$jscomp$0 = null; + } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3; + return JSCompiler_inline_result$jscomp$0; + case "form": + target$jscomp$0.push(startChunkForTag("form")); + var children$jscomp$4 = null, + innerHTML$jscomp$3 = null, + formAction$jscomp$1 = null, + formEncType$jscomp$1 = null, + formMethod$jscomp$1 = null, + formTarget$jscomp$1 = null, + propKey$jscomp$5; + for (propKey$jscomp$5 in props) + if (hasOwnProperty.call(props, propKey$jscomp$5)) { + var propValue$jscomp$5 = props[propKey$jscomp$5]; + if (null != propValue$jscomp$5) + switch (propKey$jscomp$5) { + case "children": + children$jscomp$4 = propValue$jscomp$5; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$3 = propValue$jscomp$5; + break; + case "action": + formAction$jscomp$1 = propValue$jscomp$5; + break; + case "encType": + formEncType$jscomp$1 = propValue$jscomp$5; + break; + case "method": + formMethod$jscomp$1 = propValue$jscomp$5; + break; + case "target": + formTarget$jscomp$1 = propValue$jscomp$5; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$5, + propValue$jscomp$5 + ); + } + } + var formData$jscomp$1 = null, + formActionName = null; + if ("function" === typeof formAction$jscomp$1) { + var customFields = getCustomFormFields( + resumableState, + formAction$jscomp$1 + ); + null !== customFields + ? ((formAction$jscomp$1 = customFields.action || ""), + (formEncType$jscomp$1 = customFields.encType), + (formMethod$jscomp$1 = customFields.method), + (formTarget$jscomp$1 = customFields.target), + (formData$jscomp$1 = customFields.data), + (formActionName = customFields.name)) + : (target$jscomp$0.push( + " ", + "action", + '="', + actionJavaScriptURL, + '"' + ), + (formTarget$jscomp$1 = + formMethod$jscomp$1 = + formEncType$jscomp$1 = + formAction$jscomp$1 = + null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != formAction$jscomp$1 && + pushAttribute(target$jscomp$0, "action", formAction$jscomp$1); + null != formEncType$jscomp$1 && + pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1); + null != formMethod$jscomp$1 && + pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); + null != formTarget$jscomp$1 && + pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + target$jscomp$0.push(">"); + null !== formActionName && + (target$jscomp$0.push('<input type="hidden"'), + pushStringAttribute(target$jscomp$0, "name", formActionName), + target$jscomp$0.push("/>"), + null != formData$jscomp$1 && + formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4); + if ("string" === typeof children$jscomp$4) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4)); + var JSCompiler_inline_result$jscomp$1 = null; + } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4; + return JSCompiler_inline_result$jscomp$1; + case "menuitem": + target$jscomp$0.push(startChunkForTag("menuitem")); + for (var propKey$jscomp$6 in props) + if (hasOwnProperty.call(props, propKey$jscomp$6)) { + var propValue$jscomp$6 = props[propKey$jscomp$6]; + if (null != propValue$jscomp$6) + switch (propKey$jscomp$6) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(400)); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$6, + propValue$jscomp$6 + ); + } + } + target$jscomp$0.push(">"); + return null; + case "object": + target$jscomp$0.push(startChunkForTag("object")); + var children$jscomp$5 = null, + innerHTML$jscomp$4 = null, + propKey$jscomp$7; + for (propKey$jscomp$7 in props) + if (hasOwnProperty.call(props, propKey$jscomp$7)) { + var propValue$jscomp$7 = props[propKey$jscomp$7]; + if (null != propValue$jscomp$7) + switch (propKey$jscomp$7) { + case "children": + children$jscomp$5 = propValue$jscomp$7; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$4 = propValue$jscomp$7; + break; + case "data": + var sanitizedValue = sanitizeURL("" + propValue$jscomp$7); + if ("" === sanitizedValue) break; + target$jscomp$0.push( + " ", + "data", + '="', + escapeTextForBrowser(sanitizedValue), + '"' + ); + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$7, + propValue$jscomp$7 + ); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5); + if ("string" === typeof children$jscomp$5) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5)); + var JSCompiler_inline_result$jscomp$2 = null; + } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5; + return JSCompiler_inline_result$jscomp$2; + case "title": + var noscriptTagInScope = formatContext.tagScope & 1, + isFallback = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$3 = pushTitleImpl( + target$jscomp$0, + props + ); + else + isFallback + ? (JSCompiler_inline_result$jscomp$3 = null) + : (pushTitleImpl(renderState.hoistableChunks, props), + (JSCompiler_inline_result$jscomp$3 = void 0)); + return JSCompiler_inline_result$jscomp$3; + case "link": + var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1, + isFallback$jscomp$0 = formatContext.tagScope & 4, + rel = props.rel, + href = props.href, + precedence = props.precedence; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$0 || + null != props.itemProp || + "string" !== typeof rel || + "string" !== typeof href || + "" === href + ) { + pushLinkImpl(target$jscomp$0, props); + var JSCompiler_inline_result$jscomp$4 = null; + } else if ("stylesheet" === props.rel) + if ( + "string" !== typeof precedence || + null != props.disabled || + props.onLoad || + props.onError + ) + JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + ); + else { + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + if (null !== resourceState) { + resumableState.styleResources[href] = null; + styleQueue || + ((styleQueue = { + precedence: escapeTextForBrowser(precedence), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)); + var resource = { + state: 0, + props: assign({}, props, { + "data-precedence": props.precedence, + precedence: null + }) + }; + if (resourceState) { + 2 === resourceState.length && + adoptPreloadCredentials(resource.props, resourceState); + var preloadResource = renderState.preloads.stylesheets.get(href); + preloadResource && 0 < preloadResource.length + ? (preloadResource.length = 0) + : (resource.state = 1); + } + styleQueue.sheets.set(href, resource); + hoistableState && hoistableState.stylesheets.add(resource); + } else if (styleQueue) { + var resource$9 = styleQueue.sheets.get(href); + resource$9 && + hoistableState && + hoistableState.stylesheets.add(resource$9); + } + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"); + JSCompiler_inline_result$jscomp$4 = null; + } + else + props.onLoad || props.onError + ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + )) + : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"), + (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0 + ? null + : pushLinkImpl(renderState.hoistableChunks, props))); + return JSCompiler_inline_result$jscomp$4; + case "script": + var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1, + asyncProp = props.async; + if ( + "string" !== typeof props.src || + !props.src || + !asyncProp || + "function" === typeof asyncProp || + "symbol" === typeof asyncProp || + props.onLoad || + props.onError || + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$1 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$5 = pushScriptImpl( + target$jscomp$0, + props + ); + else { + var key = props.src; + if ("module" === props.type) { + var resources = resumableState.moduleScriptResources; + var preloads = renderState.preloads.moduleScripts; + } else + (resources = resumableState.scriptResources), + (preloads = renderState.preloads.scripts); + var resourceState$jscomp$0 = resources.hasOwnProperty(key) + ? resources[key] + : void 0; + if (null !== resourceState$jscomp$0) { + resources[key] = null; + var scriptProps = props; + if (resourceState$jscomp$0) { + 2 === resourceState$jscomp$0.length && + ((scriptProps = assign({}, props)), + adoptPreloadCredentials(scriptProps, resourceState$jscomp$0)); + var preloadResource$jscomp$0 = preloads.get(key); + preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0); + } + var resource$jscomp$0 = []; + renderState.scripts.add(resource$jscomp$0); + pushScriptImpl(resource$jscomp$0, scriptProps); + } + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"); + JSCompiler_inline_result$jscomp$5 = null; + } + return JSCompiler_inline_result$jscomp$5; + case "style": + var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1, + precedence$jscomp$0 = props.precedence, + href$jscomp$0 = props.href, + nonce = props.nonce; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$2 || + null != props.itemProp || + "string" !== typeof precedence$jscomp$0 || + "string" !== typeof href$jscomp$0 || + "" === href$jscomp$0 + ) { + target$jscomp$0.push(startChunkForTag("style")); + var children$jscomp$6 = null, + innerHTML$jscomp$5 = null, + propKey$jscomp$8; + for (propKey$jscomp$8 in props) + if (hasOwnProperty.call(props, propKey$jscomp$8)) { + var propValue$jscomp$8 = props[propKey$jscomp$8]; + if (null != propValue$jscomp$8) + switch (propKey$jscomp$8) { + case "children": + children$jscomp$6 = propValue$jscomp$8; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$5 = propValue$jscomp$8; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$8, + propValue$jscomp$8 + ); + } + } + target$jscomp$0.push(">"); + var child = Array.isArray(children$jscomp$6) + ? 2 > children$jscomp$6.length + ? children$jscomp$6[0] + : null + : children$jscomp$6; + "function" !== typeof child && + "symbol" !== typeof child && + null !== child && + void 0 !== child && + target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6); + target$jscomp$0.push(endChunkForTag("style")); + var JSCompiler_inline_result$jscomp$6 = null; + } else { + var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0); + if ( + null !== + (resumableState.styleResources.hasOwnProperty(href$jscomp$0) + ? resumableState.styleResources[href$jscomp$0] + : void 0) + ) { + resumableState.styleResources[href$jscomp$0] = null; + styleQueue$jscomp$0 || + ((styleQueue$jscomp$0 = { + precedence: escapeTextForBrowser(precedence$jscomp$0), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0)); + var nonceStyle = renderState.nonce.style; + if (!nonceStyle || nonceStyle === nonce) { + styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0)); + var target = styleQueue$jscomp$0.rules, + children$jscomp$7 = null, + innerHTML$jscomp$6 = null, + propKey$jscomp$9; + for (propKey$jscomp$9 in props) + if (hasOwnProperty.call(props, propKey$jscomp$9)) { + var propValue$jscomp$9 = props[propKey$jscomp$9]; + if (null != propValue$jscomp$9) + switch (propKey$jscomp$9) { + case "children": + children$jscomp$7 = propValue$jscomp$9; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$6 = propValue$jscomp$9; + } + } + var child$jscomp$0 = Array.isArray(children$jscomp$7) + ? 2 > children$jscomp$7.length + ? children$jscomp$7[0] + : null + : children$jscomp$7; + "function" !== typeof child$jscomp$0 && + "symbol" !== typeof child$jscomp$0 && + null !== child$jscomp$0 && + void 0 !== child$jscomp$0 && + target.push( + ("" + child$jscomp$0).replace(styleRegex, styleReplacer) + ); + pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7); + } + } + styleQueue$jscomp$0 && + hoistableState && + hoistableState.styles.add(styleQueue$jscomp$0); + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"); + JSCompiler_inline_result$jscomp$6 = void 0; + } + return JSCompiler_inline_result$jscomp$6; + case "meta": + var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1, + isFallback$jscomp$1 = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$3 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$7 = pushSelfClosing( + target$jscomp$0, + props, + "meta" + ); + else + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"), + (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 + ? null + : "string" === typeof props.charSet + ? pushSelfClosing(renderState.charsetChunks, props, "meta") + : "viewport" === props.name + ? pushSelfClosing(renderState.viewportChunks, props, "meta") + : pushSelfClosing(renderState.hoistableChunks, props, "meta")); + return JSCompiler_inline_result$jscomp$7; + case "listing": + case "pre": + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$8 = null, + innerHTML$jscomp$7 = null, + propKey$jscomp$10; + for (propKey$jscomp$10 in props) + if (hasOwnProperty.call(props, propKey$jscomp$10)) { + var propValue$jscomp$10 = props[propKey$jscomp$10]; + if (null != propValue$jscomp$10) + switch (propKey$jscomp$10) { + case "children": + children$jscomp$8 = propValue$jscomp$10; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$7 = propValue$jscomp$10; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$10, + propValue$jscomp$10 + ); + } + } + target$jscomp$0.push(">"); + if (null != innerHTML$jscomp$7) { + if (null != children$jscomp$8) throw Error(formatProdErrorMessage(60)); + if ( + "object" !== typeof innerHTML$jscomp$7 || + !("__html" in innerHTML$jscomp$7) + ) + throw Error(formatProdErrorMessage(61)); + var html = innerHTML$jscomp$7.__html; + null !== html && + void 0 !== html && + ("string" === typeof html && 0 < html.length && "\n" === html[0] + ? target$jscomp$0.push("\n", html) + : target$jscomp$0.push("" + html)); + } + "string" === typeof children$jscomp$8 && + "\n" === children$jscomp$8[0] && + target$jscomp$0.push("\n"); + return children$jscomp$8; + case "img": + var pictureOrNoScriptTagInScope = formatContext.tagScope & 3, + src = props.src, + srcSet = props.srcSet; + if ( + !( + "lazy" === props.loading || + (!src && !srcSet) || + ("string" !== typeof src && null != src) || + ("string" !== typeof srcSet && null != srcSet) || + "low" === props.fetchPriority || + pictureOrNoScriptTagInScope + ) && + ("string" !== typeof src || + ":" !== src[4] || + ("d" !== src[0] && "D" !== src[0]) || + ("a" !== src[1] && "A" !== src[1]) || + ("t" !== src[2] && "T" !== src[2]) || + ("a" !== src[3] && "A" !== src[3])) && + ("string" !== typeof srcSet || + ":" !== srcSet[4] || + ("d" !== srcSet[0] && "D" !== srcSet[0]) || + ("a" !== srcSet[1] && "A" !== srcSet[1]) || + ("t" !== srcSet[2] && "T" !== srcSet[2]) || + ("a" !== srcSet[3] && "A" !== srcSet[3])) + ) { + null !== hoistableState && + formatContext.tagScope & 64 && + (hoistableState.suspenseyImages = !0); + var sizes = "string" === typeof props.sizes ? props.sizes : void 0, + key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src, + promotablePreloads = renderState.preloads.images, + resource$jscomp$1 = promotablePreloads.get(key$jscomp$0); + if (resource$jscomp$1) { + if ( + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ) + promotablePreloads.delete(key$jscomp$0), + renderState.highImagePreloads.add(resource$jscomp$1); + } else if ( + !resumableState.imageResources.hasOwnProperty(key$jscomp$0) + ) { + resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS; + var input = props.crossOrigin; + var JSCompiler_inline_result$jscomp$8 = + "string" === typeof input + ? "use-credentials" === input + ? input + : "" + : void 0; + var headers = renderState.headers, + header; + headers && + 0 < headers.remainingCapacity && + "string" !== typeof props.srcSet && + ("high" === props.fetchPriority || + 500 > headers.highImagePreloads.length) && + ((header = getPreloadAsHeader(src, "image", { + imageSrcSet: props.srcSet, + imageSizes: props.sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + nonce: props.nonce, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.refererPolicy + })), + 0 <= (headers.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS), + headers.highImagePreloads && (headers.highImagePreloads += ", "), + (headers.highImagePreloads += header)) + : ((resource$jscomp$1 = []), + pushLinkImpl(resource$jscomp$1, { + rel: "preload", + as: "image", + href: srcSet ? void 0 : src, + imageSrcSet: srcSet, + imageSizes: sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.referrerPolicy + }), + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ? renderState.highImagePreloads.add(resource$jscomp$1) + : (renderState.bulkPreloads.add(resource$jscomp$1), + promotablePreloads.set(key$jscomp$0, resource$jscomp$1))); + } + } + return pushSelfClosing(target$jscomp$0, props, "img"); + case "base": + case "area": + case "br": + case "col": + case "embed": + case "hr": + case "keygen": + case "param": + case "source": + case "track": + case "wbr": + return pushSelfClosing(target$jscomp$0, props, type); + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + break; + case "head": + if (2 > formatContext.insertionMode) { + var preamble = preambleState || renderState.preamble; + if (preamble.headChunks) + throw Error(formatProdErrorMessage(545, "`<head>`")); + null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e"); + preamble.headChunks = []; + var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement( + preamble.headChunks, + props, + "head" + ); + } else + JSCompiler_inline_result$jscomp$9 = pushStartGenericElement( + target$jscomp$0, + props, + "head" + ); + return JSCompiler_inline_result$jscomp$9; + case "body": + if (2 > formatContext.insertionMode) { + var preamble$jscomp$0 = preambleState || renderState.preamble; + if (preamble$jscomp$0.bodyChunks) + throw Error(formatProdErrorMessage(545, "`<body>`")); + null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e"); + preamble$jscomp$0.bodyChunks = []; + var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement( + preamble$jscomp$0.bodyChunks, + props, + "body" + ); + } else + JSCompiler_inline_result$jscomp$10 = pushStartGenericElement( + target$jscomp$0, + props, + "body" + ); + return JSCompiler_inline_result$jscomp$10; + case "html": + if (0 === formatContext.insertionMode) { + var preamble$jscomp$1 = preambleState || renderState.preamble; + if (preamble$jscomp$1.htmlChunks) + throw Error(formatProdErrorMessage(545, "`<html>`")); + null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e"); + preamble$jscomp$1.htmlChunks = [""]; + var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement( + preamble$jscomp$1.htmlChunks, + props, + "html" + ); + } else + JSCompiler_inline_result$jscomp$11 = pushStartGenericElement( + target$jscomp$0, + props, + "html" + ); + return JSCompiler_inline_result$jscomp$11; + default: + if (-1 !== type.indexOf("-")) { + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$9 = null, + innerHTML$jscomp$8 = null, + propKey$jscomp$11; + for (propKey$jscomp$11 in props) + if (hasOwnProperty.call(props, propKey$jscomp$11)) { + var propValue$jscomp$11 = props[propKey$jscomp$11]; + if (null != propValue$jscomp$11) { + var attributeName = propKey$jscomp$11; + switch (propKey$jscomp$11) { + case "children": + children$jscomp$9 = propValue$jscomp$11; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$8 = propValue$jscomp$11; + break; + case "style": + pushStyleAttribute(target$jscomp$0, propValue$jscomp$11); + break; + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "className": + attributeName = "class"; + default: + if ( + isAttributeNameSafe(propKey$jscomp$11) && + "function" !== typeof propValue$jscomp$11 && + "symbol" !== typeof propValue$jscomp$11 && + !1 !== propValue$jscomp$11 + ) { + if (!0 === propValue$jscomp$11) propValue$jscomp$11 = ""; + else if ("object" === typeof propValue$jscomp$11) continue; + target$jscomp$0.push( + " ", + attributeName, + '="', + escapeTextForBrowser(propValue$jscomp$11), + '"' + ); + } + } + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9); + return children$jscomp$9; + } + } + return pushStartGenericElement(target$jscomp$0, props, type); +} +var endTagCache = new Map(); +function endChunkForTag(tag) { + var chunk = endTagCache.get(tag); + void 0 === chunk && ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk)); + return chunk; +} +function hoistPreambleState(renderState, preambleState) { + renderState = renderState.preamble; + null === renderState.htmlChunks && + preambleState.htmlChunks && + (renderState.htmlChunks = preambleState.htmlChunks); + null === renderState.headChunks && + preambleState.headChunks && + (renderState.headChunks = preambleState.headChunks); + null === renderState.bodyChunks && + preambleState.bodyChunks && + (renderState.bodyChunks = preambleState.bodyChunks); +} +function writeBootstrap(destination, renderState) { + renderState = renderState.bootstrapChunks; + for (var i = 0; i < renderState.length - 1; i++) + destination.push(renderState[i]); + return i < renderState.length + ? ((i = renderState[i]), (renderState.length = 0), destination.push(i)) + : !0; +} +function writeStartPendingSuspenseBoundary(destination, renderState, id) { + destination.push('\x3c!--$?--\x3e<template id="'); + if (null === id) throw Error(formatProdErrorMessage(395)); + destination.push(renderState.boundaryPrefix); + renderState = id.toString(16); + destination.push(renderState); + return destination.push('"></template>'); +} +function writeStartSegment(destination, renderState, formatContext, id) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return ( + destination.push('<div hidden id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 4: + return ( + destination.push('<svg aria-hidden="true" style="display:none" id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 5: + return ( + destination.push('<math aria-hidden="true" style="display:none" id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 6: + return ( + destination.push('<table hidden id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 7: + return ( + destination.push('<table hidden><tbody id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 8: + return ( + destination.push('<table hidden><tr id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 9: + return ( + destination.push('<table hidden><colgroup id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + default: + throw Error(formatProdErrorMessage(397)); + } +} +function writeEndSegment(destination, formatContext) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return destination.push("</div>"); + case 4: + return destination.push("</svg>"); + case 5: + return destination.push("</math>"); + case 6: + return destination.push("</table>"); + case 7: + return destination.push("</tbody></table>"); + case 8: + return destination.push("</tr></table>"); + case 9: + return destination.push("</colgroup></table>"); + default: + throw Error(formatProdErrorMessage(397)); + } +} +var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g; +function escapeJSStringsForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInInstructionScripts, + function (match) { + switch (match) { + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var regexForJSStringsInScripts = /[&><\u2028\u2029]/g; +function escapeJSObjectForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInScripts, + function (match) { + switch (match) { + case "&": + return "\\u0026"; + case ">": + return "\\u003e"; + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var currentlyRenderingBoundaryHasStylesToHoist = !1, + destinationHasCapacity = !0; +function flushStyleTagsLateForBoundary(styleQueue) { + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs, + i = 0; + if (hrefs.length) { + this.push(currentlyFlushingRenderState.startInlineStyle); + this.push(' media="not all" data-precedence="'); + this.push(styleQueue.precedence); + for (this.push('" data-href="'); i < hrefs.length - 1; i++) + this.push(hrefs[i]), this.push(" "); + this.push(hrefs[i]); + this.push('">'); + for (i = 0; i < rules.length; i++) this.push(rules[i]); + destinationHasCapacity = this.push("</style>"); + currentlyRenderingBoundaryHasStylesToHoist = !0; + rules.length = 0; + hrefs.length = 0; + } +} +function hasStylesToHoist(stylesheet) { + return 2 !== stylesheet.state + ? (currentlyRenderingBoundaryHasStylesToHoist = !0) + : !1; +} +function writeHoistablesForBoundary(destination, hoistableState, renderState) { + currentlyRenderingBoundaryHasStylesToHoist = !1; + destinationHasCapacity = !0; + currentlyFlushingRenderState = renderState; + hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination); + currentlyFlushingRenderState = null; + hoistableState.stylesheets.forEach(hasStylesToHoist); + currentlyRenderingBoundaryHasStylesToHoist && + (renderState.stylesToHoist = !0); + return destinationHasCapacity; +} +function flushResource(resource) { + for (var i = 0; i < resource.length; i++) this.push(resource[i]); + resource.length = 0; +} +var stylesheetFlushingQueue = []; +function flushStyleInPreamble(stylesheet) { + pushLinkImpl(stylesheetFlushingQueue, stylesheet.props); + for (var i = 0; i < stylesheetFlushingQueue.length; i++) + this.push(stylesheetFlushingQueue[i]); + stylesheetFlushingQueue.length = 0; + stylesheet.state = 2; +} +function flushStylesInPreamble(styleQueue) { + var hasStylesheets = 0 < styleQueue.sheets.size; + styleQueue.sheets.forEach(flushStyleInPreamble, this); + styleQueue.sheets.clear(); + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs; + if (!hasStylesheets || hrefs.length) { + this.push(currentlyFlushingRenderState.startInlineStyle); + this.push(' data-precedence="'); + this.push(styleQueue.precedence); + styleQueue = 0; + if (hrefs.length) { + for ( + this.push('" data-href="'); + styleQueue < hrefs.length - 1; + styleQueue++ + ) + this.push(hrefs[styleQueue]), this.push(" "); + this.push(hrefs[styleQueue]); + } + this.push('">'); + for (styleQueue = 0; styleQueue < rules.length; styleQueue++) + this.push(rules[styleQueue]); + this.push("</style>"); + rules.length = 0; + hrefs.length = 0; + } +} +function preloadLateStyle(stylesheet) { + if (0 === stylesheet.state) { + stylesheet.state = 1; + var props = stylesheet.props; + pushLinkImpl(stylesheetFlushingQueue, { + rel: "preload", + as: "style", + href: stylesheet.props.href, + crossOrigin: props.crossOrigin, + fetchPriority: props.fetchPriority, + integrity: props.integrity, + media: props.media, + hrefLang: props.hrefLang, + referrerPolicy: props.referrerPolicy + }); + for ( + stylesheet = 0; + stylesheet < stylesheetFlushingQueue.length; + stylesheet++ + ) + this.push(stylesheetFlushingQueue[stylesheet]); + stylesheetFlushingQueue.length = 0; + } +} +function preloadLateStyles(styleQueue) { + styleQueue.sheets.forEach(preloadLateStyle, this); + styleQueue.sheets.clear(); +} +function pushCompletedShellIdAttribute(target, resumableState) { + 0 === (resumableState.instructions & 32) && + ((resumableState.instructions |= 32), + target.push( + ' id="', + escapeTextForBrowser("_" + resumableState.idPrefix + "R_"), + '"' + )); +} +function writeStyleResourceDependenciesInJS(destination, hoistableState) { + destination.push("["); + var nextArrayOpenBrackChunk = "["; + hoistableState.stylesheets.forEach(function (resource) { + if (2 !== resource.state) + if (3 === resource.state) + destination.push(nextArrayOpenBrackChunk), + (resource = escapeJSObjectForInstructionScripts( + "" + resource.props.href + )), + destination.push(resource), + destination.push("]"), + (nextArrayOpenBrackChunk = ",["); + else { + destination.push(nextArrayOpenBrackChunk); + var precedence = resource.props["data-precedence"], + props = resource.props, + coercedHref = sanitizeURL("" + resource.props.href); + coercedHref = escapeJSObjectForInstructionScripts(coercedHref); + destination.push(coercedHref); + precedence = "" + precedence; + destination.push(","); + precedence = escapeJSObjectForInstructionScripts(precedence); + destination.push(precedence); + for (var propKey in props) + if ( + hasOwnProperty.call(props, propKey) && + ((precedence = props[propKey]), null != precedence) + ) + switch (propKey) { + case "href": + case "rel": + case "precedence": + case "data-precedence": + break; + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, "link")); + default: + writeStyleResourceAttributeInJS( + destination, + propKey, + precedence + ); + } + destination.push("]"); + nextArrayOpenBrackChunk = ",["; + resource.state = 3; + } + }); + destination.push("]"); +} +function writeStyleResourceAttributeInJS(destination, name, value) { + var attributeName = name.toLowerCase(); + switch (typeof value) { + case "function": + case "symbol": + return; + } + switch (name) { + case "innerHTML": + case "dangerouslySetInnerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "style": + case "ref": + return; + case "className": + attributeName = "class"; + name = "" + value; + break; + case "hidden": + if (!1 === value) return; + name = ""; + break; + case "src": + case "href": + value = sanitizeURL(value); + name = "" + value; + break; + default: + if ( + (2 < name.length && + ("o" === name[0] || "O" === name[0]) && + ("n" === name[1] || "N" === name[1])) || + !isAttributeNameSafe(name) + ) + return; + name = "" + value; + } + destination.push(","); + attributeName = escapeJSObjectForInstructionScripts(attributeName); + destination.push(attributeName); + destination.push(","); + attributeName = escapeJSObjectForInstructionScripts(name); + destination.push(attributeName); +} +function createHoistableState() { + return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 }; +} +function prefetchDNS(href) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + if (!resumableState.dnsResources.hasOwnProperty(href)) { + resumableState.dnsResources[href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) + JSCompiler_temp = + ((header = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=dns-prefetch"), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + JSCompiler_temp + ? ((renderState.resets.dns[href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((header = []), + pushLinkImpl(header, { href: href, rel: "dns-prefetch" }), + renderState.preconnects.add(header)); + } + enqueueFlush(request); + } + } else previousDispatcher.D(href); +} +function preconnect(href, crossOrigin) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + var bucket = + "use-credentials" === crossOrigin + ? "credentials" + : "string" === typeof crossOrigin + ? "anonymous" + : "default"; + if (!resumableState.connectResources[bucket].hasOwnProperty(href)) { + resumableState.connectResources[bucket][href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) { + JSCompiler_temp = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=preconnect"; + if ("string" === typeof crossOrigin) { + var escapedCrossOrigin = ("" + crossOrigin).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"'; + } + JSCompiler_temp = + ((header = JSCompiler_temp), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + } + JSCompiler_temp + ? ((renderState.resets.connect[bucket][href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((bucket = []), + pushLinkImpl(bucket, { + rel: "preconnect", + href: href, + crossOrigin: crossOrigin + }), + renderState.preconnects.add(bucket)); + } + enqueueFlush(request); + } + } else previousDispatcher.C(href, crossOrigin); +} +function preload(href, as, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (as && href) { + switch (as) { + case "image": + if (options) { + var imageSrcSet = options.imageSrcSet; + var imageSizes = options.imageSizes; + var fetchPriority = options.fetchPriority; + } + var key = imageSrcSet + ? imageSrcSet + "\n" + (imageSizes || "") + : href; + if (resumableState.imageResources.hasOwnProperty(key)) return; + resumableState.imageResources[key] = PRELOAD_NO_CREDS; + resumableState = renderState.headers; + var header; + resumableState && + 0 < resumableState.remainingCapacity && + "string" !== typeof imageSrcSet && + "high" === fetchPriority && + ((header = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS), + resumableState.highImagePreloads && + (resumableState.highImagePreloads += ", "), + (resumableState.highImagePreloads += header)) + : ((resumableState = []), + pushLinkImpl( + resumableState, + assign( + { rel: "preload", href: imageSrcSet ? void 0 : href, as: as }, + options + ) + ), + "high" === fetchPriority + ? renderState.highImagePreloads.add(resumableState) + : (renderState.bulkPreloads.add(resumableState), + renderState.preloads.images.set(key, resumableState))); + break; + case "style": + if (resumableState.styleResources.hasOwnProperty(href)) return; + imageSrcSet = []; + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.styleResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.stylesheets.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + break; + case "script": + if (resumableState.scriptResources.hasOwnProperty(href)) return; + imageSrcSet = []; + renderState.preloads.scripts.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.scriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + break; + default: + if (resumableState.unknownResources.hasOwnProperty(as)) { + if ( + ((imageSrcSet = resumableState.unknownResources[as]), + imageSrcSet.hasOwnProperty(href)) + ) + return; + } else + (imageSrcSet = {}), + (resumableState.unknownResources[as] = imageSrcSet); + imageSrcSet[href] = PRELOAD_NO_CREDS; + if ( + (resumableState = renderState.headers) && + 0 < resumableState.remainingCapacity && + "font" === as && + ((key = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= key.length + 2)) + ) + (renderState.resets.font[href] = PRELOAD_NO_CREDS), + resumableState.fontPreloads && + (resumableState.fontPreloads += ", "), + (resumableState.fontPreloads += key); + else + switch ( + ((resumableState = []), + (href = assign({ rel: "preload", href: href, as: as }, options)), + pushLinkImpl(resumableState, href), + as) + ) { + case "font": + renderState.fontPreloads.add(resumableState); + break; + default: + renderState.bulkPreloads.add(resumableState); + } + } + enqueueFlush(request); + } + } else previousDispatcher.L(href, as, options); +} +function preloadModule(href, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + var as = + options && "string" === typeof options.as ? options.as : "script"; + switch (as) { + case "script": + if (resumableState.moduleScriptResources.hasOwnProperty(href)) return; + as = []; + resumableState.moduleScriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.moduleScripts.set(href, as); + break; + default: + if (resumableState.moduleUnknownResources.hasOwnProperty(as)) { + var resources = resumableState.unknownResources[as]; + if (resources.hasOwnProperty(href)) return; + } else + (resources = {}), + (resumableState.moduleUnknownResources[as] = resources); + as = []; + resources[href] = PRELOAD_NO_CREDS; + } + pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options)); + renderState.bulkPreloads.add(as); + enqueueFlush(request); + } + } else previousDispatcher.m(href, options); +} +function preinitStyle(href, precedence, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + precedence = precedence || "default"; + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + null !== resourceState && + ((resumableState.styleResources[href] = null), + styleQueue || + ((styleQueue = { + precedence: escapeTextForBrowser(precedence), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)), + (precedence = { + state: 0, + props: assign( + { rel: "stylesheet", href: href, "data-precedence": precedence }, + options + ) + }), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(precedence.props, resourceState), + (renderState = renderState.preloads.stylesheets.get(href)) && + 0 < renderState.length + ? (renderState.length = 0) + : (precedence.state = 1)), + styleQueue.sheets.set(href, precedence), + enqueueFlush(request)); + } + } else previousDispatcher.S(href, precedence, options); +} +function preinitScript(src, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.scriptResources.hasOwnProperty(src) + ? resumableState.scriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.scriptResources[src] = null), + (options = assign({ src: src, async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.scripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.X(src, options); +} +function preinitModuleScript(src, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.moduleScriptResources.hasOwnProperty( + src + ) + ? resumableState.moduleScriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.moduleScriptResources[src] = null), + (options = assign({ src: src, type: "module", async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.moduleScripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.M(src, options); +} +function adoptPreloadCredentials(target, preloadState) { + null == target.crossOrigin && (target.crossOrigin = preloadState[0]); + null == target.integrity && (target.integrity = preloadState[1]); +} +function getPreloadAsHeader(href, as, params) { + href = ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ); + as = ("" + as).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + as = "<" + href + '>; rel=preload; as="' + as + '"'; + for (var paramName in params) + hasOwnProperty.call(params, paramName) && + ((href = params[paramName]), + "string" === typeof href && + (as += + "; " + + paramName.toLowerCase() + + '="' + + ("" + href).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ) + + '"')); + return as; +} +var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g; +function escapeHrefForLinkHeaderURLContextReplacer(match) { + switch (match) { + case "<": + return "%3C"; + case ">": + return "%3E"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g; +function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) { + switch (match) { + case '"': + return "%22"; + case "'": + return "%27"; + case ";": + return "%3B"; + case ",": + return "%2C"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +function hoistStyleQueueDependency(styleQueue) { + this.styles.add(styleQueue); +} +function hoistStylesheetDependency(stylesheet) { + this.stylesheets.add(stylesheet); +} +function hoistHoistables(parentState, childState) { + childState.styles.forEach(hoistStyleQueueDependency, parentState); + childState.stylesheets.forEach(hoistStylesheetDependency, parentState); + childState.suspenseyImages && (parentState.suspenseyImages = !0); +} +function createRenderState(resumableState, generateStaticMarkup) { + var idPrefix = resumableState.idPrefix, + bootstrapChunks = [], + bootstrapScriptContent = resumableState.bootstrapScriptContent, + bootstrapScripts = resumableState.bootstrapScripts, + bootstrapModules = resumableState.bootstrapModules; + void 0 !== bootstrapScriptContent && + (bootstrapChunks.push("<script"), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + ">", + ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer), + "\x3c/script>" + )); + bootstrapScriptContent = idPrefix + "P:"; + var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:"; + idPrefix += "B:"; + var JSCompiler_object_inline_preconnects_1687 = new Set(), + JSCompiler_object_inline_fontPreloads_1688 = new Set(), + JSCompiler_object_inline_highImagePreloads_1689 = new Set(), + JSCompiler_object_inline_styles_1690 = new Map(), + JSCompiler_object_inline_bootstrapScripts_1691 = new Set(), + JSCompiler_object_inline_scripts_1692 = new Set(), + JSCompiler_object_inline_bulkPreloads_1693 = new Set(), + JSCompiler_object_inline_preloads_1694 = { + images: new Map(), + stylesheets: new Map(), + scripts: new Map(), + moduleScripts: new Map() + }; + if (void 0 !== bootstrapScripts) + for (var i = 0; i < bootstrapScripts.length; i++) { + var scriptConfig = bootstrapScripts[i], + src, + crossOrigin = void 0, + integrity = void 0, + props = { + rel: "preload", + as: "script", + fetchPriority: "low", + nonce: void 0 + }; + "string" === typeof scriptConfig + ? (props.href = src = scriptConfig) + : ((props.href = src = scriptConfig.src), + (props.integrity = integrity = + "string" === typeof scriptConfig.integrity + ? scriptConfig.integrity + : void 0), + (props.crossOrigin = crossOrigin = + "string" === typeof scriptConfig || null == scriptConfig.crossOrigin + ? void 0 + : "use-credentials" === scriptConfig.crossOrigin + ? "use-credentials" + : "")); + scriptConfig = resumableState; + var href = src; + scriptConfig.scriptResources[href] = null; + scriptConfig.moduleScriptResources[href] = null; + scriptConfig = []; + pushLinkImpl(scriptConfig, props); + JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig); + bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"'); + "string" === typeof integrity && + bootstrapChunks.push( + ' integrity="', + escapeTextForBrowser(integrity), + '"' + ); + "string" === typeof crossOrigin && + bootstrapChunks.push( + ' crossorigin="', + escapeTextForBrowser(crossOrigin), + '"' + ); + pushCompletedShellIdAttribute(bootstrapChunks, resumableState); + bootstrapChunks.push(' async="">\x3c/script>'); + } + if (void 0 !== bootstrapModules) + for ( + bootstrapScripts = 0; + bootstrapScripts < bootstrapModules.length; + bootstrapScripts++ + ) + (props = bootstrapModules[bootstrapScripts]), + (crossOrigin = src = void 0), + (integrity = { + rel: "modulepreload", + fetchPriority: "low", + nonce: void 0 + }), + "string" === typeof props + ? (integrity.href = i = props) + : ((integrity.href = i = props.src), + (integrity.integrity = crossOrigin = + "string" === typeof props.integrity ? props.integrity : void 0), + (integrity.crossOrigin = src = + "string" === typeof props || null == props.crossOrigin + ? void 0 + : "use-credentials" === props.crossOrigin + ? "use-credentials" + : "")), + (props = resumableState), + (scriptConfig = i), + (props.scriptResources[scriptConfig] = null), + (props.moduleScriptResources[scriptConfig] = null), + (props = []), + pushLinkImpl(props, integrity), + JSCompiler_object_inline_bootstrapScripts_1691.add(props), + bootstrapChunks.push( + '<script type="module" src="', + escapeTextForBrowser(i), + '"' + ), + "string" === typeof crossOrigin && + bootstrapChunks.push( + ' integrity="', + escapeTextForBrowser(crossOrigin), + '"' + ), + "string" === typeof src && + bootstrapChunks.push( + ' crossorigin="', + escapeTextForBrowser(src), + '"' + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(' async="">\x3c/script>'); + return { + placeholderPrefix: bootstrapScriptContent, + segmentPrefix: JSCompiler_object_inline_segmentPrefix_1673, + boundaryPrefix: idPrefix, + startInlineScript: "<script", + startInlineStyle: "<style", + preamble: { htmlChunks: null, headChunks: null, bodyChunks: null }, + externalRuntimeScript: null, + bootstrapChunks: bootstrapChunks, + importMapChunks: [], + onHeaders: void 0, + headers: null, + resets: { + font: {}, + dns: {}, + connect: { default: {}, anonymous: {}, credentials: {} }, + image: {}, + style: {} + }, + charsetChunks: [], + viewportChunks: [], + hoistableChunks: [], + preconnects: JSCompiler_object_inline_preconnects_1687, + fontPreloads: JSCompiler_object_inline_fontPreloads_1688, + highImagePreloads: JSCompiler_object_inline_highImagePreloads_1689, + styles: JSCompiler_object_inline_styles_1690, + bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1691, + scripts: JSCompiler_object_inline_scripts_1692, + bulkPreloads: JSCompiler_object_inline_bulkPreloads_1693, + preloads: JSCompiler_object_inline_preloads_1694, + nonce: { script: void 0, style: void 0 }, + stylesToHoist: !1, + generateStaticMarkup: generateStaticMarkup + }; +} +function pushTextInstance(target, text, renderState, textEmbedded) { + if (renderState.generateStaticMarkup) + return target.push(escapeTextForBrowser(text)), !1; + "" === text + ? (target = textEmbedded) + : (textEmbedded && target.push("\x3c!-- --\x3e"), + target.push(escapeTextForBrowser(text)), + (target = !0)); + return target; +} +function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) { + renderState.generateStaticMarkup || + (lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e")); +} +var bind = Function.prototype.bind, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); +function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; +} +var emptyContextObject = {}, + currentActiveSnapshot = null; +function popToNearestCommonAncestor(prev, next) { + if (prev !== next) { + prev.context._currentValue2 = prev.parentValue; + prev = prev.parent; + var parentNext = next.parent; + if (null === prev) { + if (null !== parentNext) throw Error(formatProdErrorMessage(401)); + } else { + if (null === parentNext) throw Error(formatProdErrorMessage(401)); + popToNearestCommonAncestor(prev, parentNext); + } + next.context._currentValue2 = next.value; + } +} +function popAllPrevious(prev) { + prev.context._currentValue2 = prev.parentValue; + prev = prev.parent; + null !== prev && popAllPrevious(prev); +} +function pushAllNext(next) { + var parentNext = next.parent; + null !== parentNext && pushAllNext(parentNext); + next.context._currentValue2 = next.value; +} +function popPreviousToCommonLevel(prev, next) { + prev.context._currentValue2 = prev.parentValue; + prev = prev.parent; + if (null === prev) throw Error(formatProdErrorMessage(402)); + prev.depth === next.depth + ? popToNearestCommonAncestor(prev, next) + : popPreviousToCommonLevel(prev, next); +} +function popNextToCommonLevel(prev, next) { + var parentNext = next.parent; + if (null === parentNext) throw Error(formatProdErrorMessage(402)); + prev.depth === parentNext.depth + ? popToNearestCommonAncestor(prev, parentNext) + : popNextToCommonLevel(prev, parentNext); + next.context._currentValue2 = next.value; +} +function switchContext(newSnapshot) { + var prev = currentActiveSnapshot; + prev !== newSnapshot && + (null === prev + ? pushAllNext(newSnapshot) + : null === newSnapshot + ? popAllPrevious(prev) + : prev.depth === newSnapshot.depth + ? popToNearestCommonAncestor(prev, newSnapshot) + : prev.depth > newSnapshot.depth + ? popPreviousToCommonLevel(prev, newSnapshot) + : popNextToCommonLevel(prev, newSnapshot), + (currentActiveSnapshot = newSnapshot)); +} +var classComponentUpdater = { + enqueueSetState: function (inst, payload) { + inst = inst._reactInternals; + null !== inst.queue && inst.queue.push(payload); + }, + enqueueReplaceState: function (inst, payload) { + inst = inst._reactInternals; + inst.replace = !0; + inst.queue = [payload]; + }, + enqueueForceUpdate: function () {} + }, + emptyTreeContext = { id: 1, overflow: "" }; +function pushTreeContext(baseContext, totalChildren, index) { + var baseIdWithLeadingBit = baseContext.id; + baseContext = baseContext.overflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - (baseLength % 5); + length = ( + baseIdWithLeadingBit & + ((1 << numberOfOverflowBits) - 1) + ).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + return { + id: + (1 << (32 - clz32(totalChildren) + baseLength)) | + (index << baseLength) | + baseIdWithLeadingBit, + overflow: length + baseContext + }; + } + return { + id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit, + overflow: baseContext + }; +} +var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, + log = Math.log, + LN2 = Math.LN2; +function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; +} +function noop() {} +var SuspenseException = Error(formatProdErrorMessage(460)); +function trackUsedThenable(thenableState, thenable, index) { + index = thenableState[index]; + void 0 === index + ? thenableState.push(thenable) + : index !== thenable && (thenable.then(noop, noop), (thenable = index)); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + "string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenableState = thenable), + (thenableState.status = "pending"), + thenableState.then( + function (fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function (error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + )); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + suspendedThenable = thenable; + throw SuspenseException; + } +} +var suspendedThenable = null; +function getSuspendedThenable() { + if (null === suspendedThenable) throw Error(formatProdErrorMessage(459)); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; +} +function is(x, y) { + return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); +} +var objectIs = "function" === typeof Object.is ? Object.is : is, + currentlyRenderingComponent = null, + currentlyRenderingTask = null, + currentlyRenderingRequest = null, + currentlyRenderingKeyPath = null, + firstWorkInProgressHook = null, + workInProgressHook = null, + isReRender = !1, + didScheduleRenderPhaseUpdate = !1, + localIdCounter = 0, + actionStateCounter = 0, + actionStateMatchingIndex = -1, + thenableIndexCounter = 0, + thenableState = null, + renderPhaseUpdates = null, + numberOfReRenders = 0; +function resolveCurrentlyRenderingComponent() { + if (null === currentlyRenderingComponent) + throw Error(formatProdErrorMessage(321)); + return currentlyRenderingComponent; +} +function createHook() { + if (0 < numberOfReRenders) throw Error(formatProdErrorMessage(312)); + return { memoizedState: null, queue: null, next: null }; +} +function createWorkInProgressHook() { + null === workInProgressHook + ? null === firstWorkInProgressHook + ? ((isReRender = !1), + (firstWorkInProgressHook = workInProgressHook = createHook())) + : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook)) + : null === workInProgressHook.next + ? ((isReRender = !1), + (workInProgressHook = workInProgressHook.next = createHook())) + : ((isReRender = !0), (workInProgressHook = workInProgressHook.next)); + return workInProgressHook; +} +function getThenableStateAfterSuspending() { + var state = thenableState; + thenableState = null; + return state; +} +function resetHooksState() { + currentlyRenderingKeyPath = + currentlyRenderingRequest = + currentlyRenderingTask = + currentlyRenderingComponent = + null; + didScheduleRenderPhaseUpdate = !1; + firstWorkInProgressHook = null; + numberOfReRenders = 0; + workInProgressHook = renderPhaseUpdates = null; +} +function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; +} +function useReducer(reducer, initialArg, init) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + if (isReRender) { + var queue = workInProgressHook.queue; + initialArg = queue.dispatch; + if ( + null !== renderPhaseUpdates && + ((init = renderPhaseUpdates.get(queue)), void 0 !== init) + ) { + renderPhaseUpdates.delete(queue); + queue = workInProgressHook.memoizedState; + do (queue = reducer(queue, init.action)), (init = init.next); + while (null !== init); + workInProgressHook.memoizedState = queue; + return [queue, initialArg]; + } + return [workInProgressHook.memoizedState, initialArg]; + } + reducer = + reducer === basicStateReducer + ? "function" === typeof initialArg + ? initialArg() + : initialArg + : void 0 !== init + ? init(initialArg) + : initialArg; + workInProgressHook.memoizedState = reducer; + reducer = workInProgressHook.queue = { last: null, dispatch: null }; + reducer = reducer.dispatch = dispatchAction.bind( + null, + currentlyRenderingComponent, + reducer + ); + return [workInProgressHook.memoizedState, reducer]; +} +function useMemo(nextCreate, deps) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + if (null !== workInProgressHook) { + var prevState = workInProgressHook.memoizedState; + if (null !== prevState && null !== deps) { + var prevDeps = prevState[1]; + a: if (null === prevDeps) prevDeps = !1; + else { + for (var i = 0; i < prevDeps.length && i < deps.length; i++) + if (!objectIs(deps[i], prevDeps[i])) { + prevDeps = !1; + break a; + } + prevDeps = !0; + } + if (prevDeps) return prevState[0]; + } + } + nextCreate = nextCreate(); + workInProgressHook.memoizedState = [nextCreate, deps]; + return nextCreate; +} +function dispatchAction(componentIdentity, queue, action) { + if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301)); + if (componentIdentity === currentlyRenderingComponent) + if ( + ((didScheduleRenderPhaseUpdate = !0), + (componentIdentity = { action: action, next: null }), + null === renderPhaseUpdates && (renderPhaseUpdates = new Map()), + (action = renderPhaseUpdates.get(queue)), + void 0 === action) + ) + renderPhaseUpdates.set(queue, componentIdentity); + else { + for (queue = action; null !== queue.next; ) queue = queue.next; + queue.next = componentIdentity; + } +} +function throwOnUseEffectEventCall() { + throw Error(formatProdErrorMessage(440)); +} +function unsupportedStartTransition() { + throw Error(formatProdErrorMessage(394)); +} +function unsupportedSetOptimisticState() { + throw Error(formatProdErrorMessage(479)); +} +function useActionState(action, initialState, permalink) { + resolveCurrentlyRenderingComponent(); + var actionStateHookIndex = actionStateCounter++, + request = currentlyRenderingRequest; + if ("function" === typeof action.$$FORM_ACTION) { + var nextPostbackStateKey = null, + componentKeyPath = currentlyRenderingKeyPath; + request = request.formState; + var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL; + if (null !== request && "function" === typeof isSignatureEqual) { + var postbackKey = request[1]; + isSignatureEqual.call(action, request[2], request[3]) && + ((nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([componentKeyPath, null, actionStateHookIndex]), + 0 + )), + postbackKey === nextPostbackStateKey && + ((actionStateMatchingIndex = actionStateHookIndex), + (initialState = request[0]))); + } + var boundAction = action.bind(null, initialState); + action = function (payload) { + boundAction(payload); + }; + "function" === typeof boundAction.$$FORM_ACTION && + (action.$$FORM_ACTION = function (prefix) { + prefix = boundAction.$$FORM_ACTION(prefix); + void 0 !== permalink && + ((permalink += ""), (prefix.action = permalink)); + var formData = prefix.data; + formData && + (null === nextPostbackStateKey && + (nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([ + componentKeyPath, + null, + actionStateHookIndex + ]), + 0 + )), + formData.append("$ACTION_KEY", nextPostbackStateKey)); + return prefix; + }); + return [initialState, action, !1]; + } + var boundAction$22 = action.bind(null, initialState); + return [ + initialState, + function (payload) { + boundAction$22(payload); + }, + !1 + ]; +} +function unwrapThenable(thenable) { + var index = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + return trackUsedThenable(thenableState, thenable, index); +} +function unsupportedRefresh() { + throw Error(formatProdErrorMessage(393)); +} +var HooksDispatcher = { + readContext: function (context) { + return context._currentValue2; + }, + use: function (usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return unwrapThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) + return usable._currentValue2; + } + throw Error(formatProdErrorMessage(438, String(usable))); + }, + useContext: function (context) { + resolveCurrentlyRenderingComponent(); + return context._currentValue2; + }, + useMemo: useMemo, + useReducer: useReducer, + useRef: function (initialValue) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var previousRef = workInProgressHook.memoizedState; + return null === previousRef + ? ((initialValue = { current: initialValue }), + (workInProgressHook.memoizedState = initialValue)) + : previousRef; + }, + useState: function (initialState) { + return useReducer(basicStateReducer, initialState); + }, + useInsertionEffect: noop, + useLayoutEffect: noop, + useCallback: function (callback, deps) { + return useMemo(function () { + return callback; + }, deps); + }, + useImperativeHandle: noop, + useEffect: noop, + useDebugValue: noop, + useDeferredValue: function (value, initialValue) { + resolveCurrentlyRenderingComponent(); + return void 0 !== initialValue ? initialValue : value; + }, + useTransition: function () { + resolveCurrentlyRenderingComponent(); + return [!1, unsupportedStartTransition]; + }, + useId: function () { + var JSCompiler_inline_result = currentlyRenderingTask.treeContext; + var overflow = JSCompiler_inline_result.overflow; + JSCompiler_inline_result = JSCompiler_inline_result.id; + JSCompiler_inline_result = + ( + JSCompiler_inline_result & + ~(1 << (32 - clz32(JSCompiler_inline_result) - 1)) + ).toString(32) + overflow; + var resumableState = currentResumableState; + if (null === resumableState) throw Error(formatProdErrorMessage(404)); + overflow = localIdCounter++; + JSCompiler_inline_result = + "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result; + 0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32)); + return JSCompiler_inline_result + "_"; + }, + useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) { + if (void 0 === getServerSnapshot) + throw Error(formatProdErrorMessage(407)); + return getServerSnapshot(); + }, + useOptimistic: function (passthrough) { + resolveCurrentlyRenderingComponent(); + return [passthrough, unsupportedSetOptimisticState]; + }, + useActionState: useActionState, + useFormState: useActionState, + useHostTransitionStatus: function () { + resolveCurrentlyRenderingComponent(); + return sharedNotPendingObject; + }, + useMemoCache: function (size) { + for (var data = Array(size), i = 0; i < size; i++) + data[i] = REACT_MEMO_CACHE_SENTINEL; + return data; + }, + useCacheRefresh: function () { + return unsupportedRefresh; + }, + useEffectEvent: function () { + return throwOnUseEffectEventCall; + } + }, + currentResumableState = null, + DefaultAsyncDispatcher = { + getCacheForType: function () { + throw Error(formatProdErrorMessage(248)); + }, + cacheSignal: function () { + throw Error(formatProdErrorMessage(248)); + } + }, + prefix, + suffix; +function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + suffix = + -1 < x.stack.indexOf("\n at") + ? " (<anonymous>)" + : -1 < x.stack.indexOf("@") + ? "@unknown:0:0" + : ""; + } + return "\n" + prefix + name + suffix; +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$24) { + control = x$24; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$25) { + control = x$25; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("<anonymous>") && + (frame = frame.replace("<anonymous>", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentStackByType(type) { + if ("string" === typeof type) return describeBuiltInComponentFrame(type); + if ("function" === typeof type) + return type.prototype && type.prototype.isReactComponent + ? describeNativeComponentFrame(type, !0) + : describeNativeComponentFrame(type, !1); + if ("object" === typeof type && null !== type) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeNativeComponentFrame(type.render, !1); + case REACT_MEMO_TYPE: + return describeNativeComponentFrame(type.type, !1); + case REACT_LAZY_TYPE: + var lazyComponent = type, + payload = lazyComponent._payload; + lazyComponent = lazyComponent._init; + try { + type = lazyComponent(payload); + } catch (x) { + return describeBuiltInComponentFrame("Lazy"); + } + return describeComponentStackByType(type); + } + if ("string" === typeof type.name) { + a: { + payload = type.name; + lazyComponent = type.env; + var location = type.debugLocation; + if ( + null != location && + ((type = Error.prepareStackTrace), + (Error.prepareStackTrace = void 0), + (location = location.stack), + (Error.prepareStackTrace = type), + location.startsWith("Error: react-stack-top-frame\n") && + (location = location.slice(29)), + (type = location.indexOf("\n")), + -1 !== type && (location = location.slice(type + 1)), + (type = location.indexOf("react_stack_bottom_frame")), + -1 !== type && (type = location.lastIndexOf("\n", type)), + (type = -1 !== type ? (location = location.slice(0, type)) : ""), + (location = type.lastIndexOf("\n")), + (type = -1 === location ? type : type.slice(location + 1)), + -1 !== type.indexOf(payload)) + ) { + payload = "\n" + type; + break a; + } + payload = describeBuiltInComponentFrame( + payload + (lazyComponent ? " [" + lazyComponent + "]" : "") + ); + } + return payload; + } + } + switch (type) { + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + } + return ""; +} +function isEligibleForOutlining(request, boundary) { + return (500 < boundary.byteSize || !1) && null === boundary.contentPreamble; +} +function defaultErrorHandler(error) { + if ( + "object" === typeof error && + null !== error && + "string" === typeof error.environmentName + ) { + var JSCompiler_inline_result = error.environmentName; + error = [error].slice(0); + "string" === typeof error[0] + ? error.splice( + 0, + 1, + "[%s] " + error[0], + " " + JSCompiler_inline_result + " " + ) + : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " "); + error.unshift(console); + JSCompiler_inline_result = bind.apply(console.error, error); + JSCompiler_inline_result(); + } else console.error(error); + return null; +} +function RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + var abortSet = new Set(); + this.destination = null; + this.flushScheduled = !1; + this.resumableState = resumableState; + this.renderState = renderState; + this.rootFormatContext = rootFormatContext; + this.progressiveChunkSize = + void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize; + this.status = 10; + this.fatalError = null; + this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0; + this.completedPreambleSegments = this.completedRootSegment = null; + this.byteSize = 0; + this.abortableTasks = abortSet; + this.pingedTasks = []; + this.clientRenderedBoundaries = []; + this.completedBoundaries = []; + this.partialBoundaries = []; + this.trackedPostpones = null; + this.onError = void 0 === onError ? defaultErrorHandler : onError; + this.onPostpone = void 0 === onPostpone ? noop : onPostpone; + this.onAllReady = void 0 === onAllReady ? noop : onAllReady; + this.onShellReady = void 0 === onShellReady ? noop : onShellReady; + this.onShellError = void 0 === onShellError ? noop : onShellError; + this.onFatalError = void 0 === onFatalError ? noop : onFatalError; + this.formState = void 0 === formState ? null : formState; +} +function createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + resumableState = new RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState + ); + renderState = createPendingSegment( + resumableState, + 0, + null, + rootFormatContext, + !1, + !1 + ); + renderState.parentFlushed = !0; + children = createRenderTask( + resumableState, + null, + children, + -1, + null, + renderState, + null, + null, + resumableState.abortableTasks, + null, + rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + resumableState.pingedTasks.push(children); + return resumableState; +} +var currentRequest = null; +function pingTask(request, task) { + request.pingedTasks.push(task); + 1 === request.pingedTasks.length && + ((request.flushScheduled = null !== request.destination), + performWork(request)); +} +function createSuspenseBoundary( + request, + row, + fallbackAbortableTasks, + contentPreamble, + fallbackPreamble +) { + fallbackAbortableTasks = { + status: 0, + rootSegmentID: -1, + parentFlushed: !1, + pendingTasks: 0, + row: row, + completedSegments: [], + byteSize: 0, + fallbackAbortableTasks: fallbackAbortableTasks, + errorDigest: null, + contentState: createHoistableState(), + fallbackState: createHoistableState(), + contentPreamble: contentPreamble, + fallbackPreamble: fallbackPreamble, + trackedContentKeyPath: null, + trackedFallbackNode: null + }; + null !== row && + (row.pendingTasks++, + (contentPreamble = row.boundaries), + null !== contentPreamble && + (request.allPendingTasks++, + fallbackAbortableTasks.pendingTasks++, + contentPreamble.push(fallbackAbortableTasks)), + (request = row.inheritedHoistables), + null !== request && + hoistHoistables(fallbackAbortableTasks.contentState, request)); + return fallbackAbortableTasks; +} +function createRenderTask( + request, + thenableState, + node, + childIndex, + blockedBoundary, + blockedSegment, + blockedPreamble, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + var task = { + replay: null, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: blockedSegment, + blockedPreamble: blockedPreamble, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createReplayTask( + request, + thenableState, + replay, + node, + childIndex, + blockedBoundary, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + replay.pendingTasks++; + var task = { + replay: replay, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: null, + blockedPreamble: null, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createPendingSegment( + request, + index, + boundary, + parentFormatContext, + lastPushedText, + textEmbedded +) { + return { + status: 0, + parentFlushed: !1, + id: -1, + index: index, + chunks: [], + children: [], + preambleChildren: [], + parentFormatContext: parentFormatContext, + boundary: boundary, + lastPushedText: lastPushedText, + textEmbedded: textEmbedded + }; +} +function pushComponentStack(task) { + var node = task.node; + if ("object" === typeof node && null !== node) + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + task.componentStack = { parent: task.componentStack, type: node.type }; + } +} +function replaceSuspenseComponentStackWithSuspenseFallbackStack( + componentStack +) { + return null === componentStack + ? null + : { parent: componentStack.parent, type: "Suspense Fallback" }; +} +function getThrownInfo(node$jscomp$0) { + var errorInfo = {}; + node$jscomp$0 && + Object.defineProperty(errorInfo, "componentStack", { + configurable: !0, + enumerable: !0, + get: function () { + try { + var info = "", + node = node$jscomp$0; + do + (info += describeComponentStackByType(node.type)), + (node = node.parent); + while (node); + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = + "\nError generating stack: " + x.message + "\n" + x.stack; + } + Object.defineProperty(errorInfo, "componentStack", { + value: JSCompiler_inline_result + }); + return JSCompiler_inline_result; + } + }); + return errorInfo; +} +function logRecoverableError(request, error, errorInfo) { + request = request.onError; + error = request(error, errorInfo); + if (null == error || "string" === typeof error) return error; +} +function fatalError(request, error) { + var onShellError = request.onShellError, + onFatalError = request.onFatalError; + onShellError(error); + onFatalError(error); + null !== request.destination + ? ((request.status = 14), request.destination.destroy(error)) + : ((request.status = 13), (request.fatalError = error)); +} +function finishSuspenseListRow(request, row) { + unblockSuspenseListRow(request, row.next, row.hoistables); +} +function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) { + for (; null !== unblockedRow; ) { + null !== inheritedHoistables && + (hoistHoistables(unblockedRow.hoistables, inheritedHoistables), + (unblockedRow.inheritedHoistables = inheritedHoistables)); + var unblockedBoundaries = unblockedRow.boundaries; + if (null !== unblockedBoundaries) { + unblockedRow.boundaries = null; + for (var i = 0; i < unblockedBoundaries.length; i++) { + var unblockedBoundary = unblockedBoundaries[i]; + null !== inheritedHoistables && + hoistHoistables(unblockedBoundary.contentState, inheritedHoistables); + finishedTask(request, unblockedBoundary, null, null); + } + } + unblockedRow.pendingTasks--; + if (0 < unblockedRow.pendingTasks) break; + inheritedHoistables = unblockedRow.hoistables; + unblockedRow = unblockedRow.next; + } +} +function tryToResolveTogetherRow(request, togetherRow) { + var boundaries = togetherRow.boundaries; + if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) { + for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) { + var rowBoundary = boundaries[i]; + if ( + 1 !== rowBoundary.pendingTasks || + rowBoundary.parentFlushed || + isEligibleForOutlining(request, rowBoundary) + ) { + allCompleteAndInlinable = !1; + break; + } + } + allCompleteAndInlinable && + unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables); + } +} +function createSuspenseListRow(previousRow) { + var newRow = { + pendingTasks: 1, + boundaries: null, + hoistables: createHoistableState(), + inheritedHoistables: null, + together: !1, + next: null + }; + null !== previousRow && + 0 < previousRow.pendingTasks && + (newRow.pendingTasks++, + (newRow.boundaries = []), + (previousRow.next = newRow)); + return newRow; +} +function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) { + var prevKeyPath = task.keyPath, + prevTreeContext = task.treeContext, + prevRow = task.row; + task.keyPath = keyPath; + keyPath = rows.length; + var previousSuspenseListRow = null; + if (null !== task.replay) { + var resumeSlots = task.replay.slots; + if (null !== resumeSlots && "object" === typeof resumeSlots) + for (var n = 0; n < keyPath; n++) { + var i = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? n + : keyPath - 1 - n, + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + var resumeSegmentID = resumeSlots[i]; + "number" === typeof resumeSegmentID + ? (resumeNode(request, task, resumeSegmentID, node, i), + delete resumeSlots[i]) + : renderNode(request, task, node, i); + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } + else + for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++) + (n = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? resumeSlots + : keyPath - 1 - resumeSlots), + (i = rows[n]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)), + renderNode(request, task, i, n), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } else if ( + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ) + for (revealOrder = 0; revealOrder < keyPath; revealOrder++) + (resumeSlots = rows[revealOrder]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext( + prevTreeContext, + keyPath, + revealOrder + )), + renderNode(request, task, resumeSlots, revealOrder), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + else { + revealOrder = task.blockedSegment; + resumeSlots = revealOrder.children.length; + n = revealOrder.chunks.length; + for (i = keyPath - 1; 0 <= i; i--) { + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + resumeSegmentID = createPendingSegment( + request, + n, + null, + task.formatContext, + 0 === i ? revealOrder.lastPushedText : !0, + !0 + ); + revealOrder.children.splice(resumeSlots, 0, resumeSegmentID); + task.blockedSegment = resumeSegmentID; + try { + renderNode(request, task, node, i), + pushSegmentFinale( + resumeSegmentID.chunks, + request.renderState, + resumeSegmentID.lastPushedText, + resumeSegmentID.textEmbedded + ), + (resumeSegmentID.status = 1), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } catch (thrownValue) { + throw ( + ((resumeSegmentID.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } + } + task.blockedSegment = revealOrder; + revealOrder.lastPushedText = !1; + } + null !== prevRow && + null !== previousSuspenseListRow && + 0 < previousSuspenseListRow.pendingTasks && + (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow)); + task.treeContext = prevTreeContext; + task.row = prevRow; + task.keyPath = prevKeyPath; +} +function renderWithHooks(request, task, keyPath, Component, props, secondArg) { + var prevThenableState = task.thenableState; + task.thenableState = null; + currentlyRenderingComponent = {}; + currentlyRenderingTask = task; + currentlyRenderingRequest = request; + currentlyRenderingKeyPath = keyPath; + actionStateCounter = localIdCounter = 0; + actionStateMatchingIndex = -1; + thenableIndexCounter = 0; + thenableState = prevThenableState; + for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; ) + (didScheduleRenderPhaseUpdate = !1), + (actionStateCounter = localIdCounter = 0), + (actionStateMatchingIndex = -1), + (thenableIndexCounter = 0), + (numberOfReRenders += 1), + (workInProgressHook = null), + (request = Component(props, secondArg)); + resetHooksState(); + return request; +} +function finishFunctionComponent( + request, + task, + keyPath, + children, + hasId, + actionStateCount, + actionStateMatchingIndex +) { + var didEmitActionStateMarkers = !1; + if (0 !== actionStateCount && null !== request.formState) { + var segment = task.blockedSegment; + if (null !== segment) { + didEmitActionStateMarkers = !0; + segment = segment.chunks; + for (var i = 0; i < actionStateCount; i++) + i === actionStateMatchingIndex + ? segment.push("\x3c!--F!--\x3e") + : segment.push("\x3c!--F--\x3e"); + } + } + actionStateCount = task.keyPath; + task.keyPath = keyPath; + hasId + ? ((keyPath = task.treeContext), + (task.treeContext = pushTreeContext(keyPath, 1, 0)), + renderNode(request, task, children, -1), + (task.treeContext = keyPath)) + : didEmitActionStateMarkers + ? renderNode(request, task, children, -1) + : renderNodeDestructive(request, task, children, -1); + task.keyPath = actionStateCount; +} +function renderElement(request, task, keyPath, type, props, ref) { + if ("function" === typeof type) + if (type.prototype && type.prototype.isReactComponent) { + var newProps = props; + if ("ref" in props) { + newProps = {}; + for (var propName in props) + "ref" !== propName && (newProps[propName] = props[propName]); + } + var defaultProps = type.defaultProps; + if (defaultProps) { + newProps === props && (newProps = assign({}, newProps, props)); + for (var propName$43 in defaultProps) + void 0 === newProps[propName$43] && + (newProps[propName$43] = defaultProps[propName$43]); + } + props = newProps; + newProps = emptyContextObject; + defaultProps = type.contextType; + "object" === typeof defaultProps && + null !== defaultProps && + (newProps = defaultProps._currentValue2); + newProps = new type(props, newProps); + var initialState = void 0 !== newProps.state ? newProps.state : null; + newProps.updater = classComponentUpdater; + newProps.props = props; + newProps.state = initialState; + defaultProps = { queue: [], replace: !1 }; + newProps._reactInternals = defaultProps; + ref = type.contextType; + newProps.context = + "object" === typeof ref && null !== ref + ? ref._currentValue2 + : emptyContextObject; + ref = type.getDerivedStateFromProps; + "function" === typeof ref && + ((ref = ref(props, initialState)), + (initialState = + null === ref || void 0 === ref + ? initialState + : assign({}, initialState, ref)), + (newProps.state = initialState)); + if ( + "function" !== typeof type.getDerivedStateFromProps && + "function" !== typeof newProps.getSnapshotBeforeUpdate && + ("function" === typeof newProps.UNSAFE_componentWillMount || + "function" === typeof newProps.componentWillMount) + ) + if ( + ((type = newProps.state), + "function" === typeof newProps.componentWillMount && + newProps.componentWillMount(), + "function" === typeof newProps.UNSAFE_componentWillMount && + newProps.UNSAFE_componentWillMount(), + type !== newProps.state && + classComponentUpdater.enqueueReplaceState( + newProps, + newProps.state, + null + ), + null !== defaultProps.queue && 0 < defaultProps.queue.length) + ) + if ( + ((type = defaultProps.queue), + (ref = defaultProps.replace), + (defaultProps.queue = null), + (defaultProps.replace = !1), + ref && 1 === type.length) + ) + newProps.state = type[0]; + else { + defaultProps = ref ? type[0] : newProps.state; + initialState = !0; + for (ref = ref ? 1 : 0; ref < type.length; ref++) + (propName$43 = type[ref]), + (propName$43 = + "function" === typeof propName$43 + ? propName$43.call(newProps, defaultProps, props, void 0) + : propName$43), + null != propName$43 && + (initialState + ? ((initialState = !1), + (defaultProps = assign({}, defaultProps, propName$43))) + : assign(defaultProps, propName$43)); + newProps.state = defaultProps; + } + else defaultProps.queue = null; + type = newProps.render(); + if (12 === request.status) throw null; + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + } else { + type = renderWithHooks(request, task, keyPath, type, props, void 0); + if (12 === request.status) throw null; + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + } + else if ("string" === typeof type) + if (((newProps = task.blockedSegment), null === newProps)) + (newProps = props.children), + (defaultProps = task.formatContext), + (initialState = task.keyPath), + (task.formatContext = getChildFormatContext(defaultProps, type, props)), + (task.keyPath = keyPath), + renderNode(request, task, newProps, -1), + (task.formatContext = defaultProps), + (task.keyPath = initialState); + else { + initialState = pushStartInstance( + newProps.chunks, + type, + props, + request.resumableState, + request.renderState, + task.blockedPreamble, + task.hoistableState, + task.formatContext, + newProps.lastPushedText + ); + newProps.lastPushedText = !1; + defaultProps = task.formatContext; + ref = task.keyPath; + task.keyPath = keyPath; + if ( + 3 === + (task.formatContext = getChildFormatContext(defaultProps, type, props)) + .insertionMode + ) { + keyPath = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + newProps.preambleChildren.push(keyPath); + task.blockedSegment = keyPath; + try { + (keyPath.status = 6), + renderNode(request, task, initialState, -1), + pushSegmentFinale( + keyPath.chunks, + request.renderState, + keyPath.lastPushedText, + keyPath.textEmbedded + ), + (keyPath.status = 1); + } finally { + task.blockedSegment = newProps; + } + } else renderNode(request, task, initialState, -1); + task.formatContext = defaultProps; + task.keyPath = ref; + a: { + task = newProps.chunks; + request = request.resumableState; + switch (type) { + case "title": + case "style": + case "script": + case "area": + case "base": + case "br": + case "col": + case "embed": + case "hr": + case "img": + case "input": + case "keygen": + case "link": + case "meta": + case "param": + case "source": + case "track": + case "wbr": + break a; + case "body": + if (1 >= defaultProps.insertionMode) { + request.hasBody = !0; + break a; + } + break; + case "html": + if (0 === defaultProps.insertionMode) { + request.hasHtml = !0; + break a; + } + break; + case "head": + if (1 >= defaultProps.insertionMode) break a; + } + task.push(endChunkForTag(type)); + } + newProps.lastPushedText = !1; + } + else { + switch (type) { + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_PROFILER_TYPE: + case REACT_FRAGMENT_TYPE: + type = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, props.children, -1); + task.keyPath = type; + return; + case REACT_ACTIVITY_TYPE: + type = task.blockedSegment; + null === type + ? "hidden" !== props.mode && + ((type = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = type)) + : "hidden" !== props.mode && + (request.renderState.generateStaticMarkup || + type.chunks.push("\x3c!--&--\x3e"), + (type.lastPushedText = !1), + (newProps = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = newProps), + request.renderState.generateStaticMarkup || + type.chunks.push("\x3c!--/&--\x3e"), + (type.lastPushedText = !1)); + return; + case REACT_SUSPENSE_LIST_TYPE: + a: { + type = props.children; + props = props.revealOrder; + if ( + "forwards" === props || + "backwards" === props || + "unstable_legacy-backwards" === props + ) { + if (isArrayImpl(type)) { + renderSuspenseListRows(request, task, keyPath, type, props); + break a; + } + if ((newProps = getIteratorFn(type))) + if ((newProps = newProps.call(type))) { + defaultProps = newProps.next(); + if (!defaultProps.done) { + do defaultProps = newProps.next(); + while (!defaultProps.done); + renderSuspenseListRows(request, task, keyPath, type, props); + } + break a; + } + } + "together" === props + ? ((props = task.keyPath), + (newProps = task.row), + (defaultProps = task.row = createSuspenseListRow(null)), + (defaultProps.boundaries = []), + (defaultProps.together = !0), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + 0 === --defaultProps.pendingTasks && + finishSuspenseListRow(request, defaultProps), + (task.keyPath = props), + (task.row = newProps), + null !== newProps && + 0 < defaultProps.pendingTasks && + (newProps.pendingTasks++, (defaultProps.next = newProps))) + : ((props = task.keyPath), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + (task.keyPath = props)); + } + return; + case REACT_VIEW_TRANSITION_TYPE: + case REACT_SCOPE_TYPE: + throw Error(formatProdErrorMessage(343)); + case REACT_SUSPENSE_TYPE: + a: if (null !== task.replay) { + type = task.keyPath; + newProps = task.formatContext; + defaultProps = task.row; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + newProps + ); + task.row = null; + keyPath = props.children; + try { + renderNode(request, task, keyPath, -1); + } finally { + (task.keyPath = type), + (task.formatContext = newProps), + (task.row = defaultProps); + } + } else { + type = task.keyPath; + ref = task.formatContext; + var prevRow = task.row, + parentBoundary = task.blockedBoundary; + propName$43 = task.blockedPreamble; + var parentHoistableState = task.hoistableState; + propName = task.blockedSegment; + var fallback = props.fallback; + props = props.children; + var fallbackAbortSet = new Set(); + var newBoundary = createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + null !== request.trackedPostpones && + (newBoundary.trackedContentKeyPath = keyPath); + var boundarySegment = createPendingSegment( + request, + propName.chunks.length, + newBoundary, + task.formatContext, + !1, + !1 + ); + propName.children.push(boundarySegment); + propName.lastPushedText = !1; + var contentRootSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + contentRootSegment.parentFlushed = !0; + if (null !== request.trackedPostpones) { + newProps = task.componentStack; + defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]]; + initialState = [defaultProps[1], defaultProps[2], [], null]; + request.trackedPostpones.workingMap.set(defaultProps, initialState); + newBoundary.trackedFallbackNode = initialState; + task.blockedSegment = boundarySegment; + task.blockedPreamble = newBoundary.fallbackPreamble; + task.keyPath = defaultProps; + task.formatContext = getSuspenseFallbackFormatContext( + request.resumableState, + ref + ); + task.componentStack = + replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps); + boundarySegment.status = 6; + try { + renderNode(request, task, fallback, -1), + pushSegmentFinale( + boundarySegment.chunks, + request.renderState, + boundarySegment.lastPushedText, + boundarySegment.textEmbedded + ), + (boundarySegment.status = 1); + } catch (thrownValue) { + throw ( + ((boundarySegment.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } finally { + (task.blockedSegment = propName), + (task.blockedPreamble = propName$43), + (task.keyPath = type), + (task.formatContext = ref); + } + task = createRenderTask( + request, + null, + props, + -1, + newBoundary, + contentRootSegment, + newBoundary.contentPreamble, + newBoundary.contentState, + task.abortSet, + keyPath, + getSuspenseContentFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + null, + newProps + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } else { + task.blockedBoundary = newBoundary; + task.blockedPreamble = newBoundary.contentPreamble; + task.hoistableState = newBoundary.contentState; + task.blockedSegment = contentRootSegment; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + ref + ); + task.row = null; + contentRootSegment.status = 6; + try { + if ( + (renderNode(request, task, props, -1), + pushSegmentFinale( + contentRootSegment.chunks, + request.renderState, + contentRootSegment.lastPushedText, + contentRootSegment.textEmbedded + ), + (contentRootSegment.status = 1), + queueCompletedSegment(newBoundary, contentRootSegment), + 0 === newBoundary.pendingTasks && 0 === newBoundary.status) + ) { + if ( + ((newBoundary.status = 1), + !isEligibleForOutlining(request, newBoundary)) + ) { + null !== prevRow && + 0 === --prevRow.pendingTasks && + finishSuspenseListRow(request, prevRow); + 0 === request.pendingRootTasks && + task.blockedPreamble && + preparePreamble(request); + break a; + } + } else + null !== prevRow && + prevRow.together && + tryToResolveTogetherRow(request, prevRow); + } catch (thrownValue$30) { + (newBoundary.status = 4), + 12 === request.status + ? ((contentRootSegment.status = 3), + (newProps = request.fatalError)) + : ((contentRootSegment.status = 4), + (newProps = thrownValue$30)), + (defaultProps = getThrownInfo(task.componentStack)), + (initialState = logRecoverableError( + request, + newProps, + defaultProps + )), + (newBoundary.errorDigest = initialState), + untrackBoundary(request, newBoundary); + } finally { + (task.blockedBoundary = parentBoundary), + (task.blockedPreamble = propName$43), + (task.hoistableState = parentHoistableState), + (task.blockedSegment = propName), + (task.keyPath = type), + (task.formatContext = ref), + (task.row = prevRow); + } + task = createRenderTask( + request, + null, + fallback, + -1, + parentBoundary, + boundarySegment, + newBoundary.fallbackPreamble, + newBoundary.fallbackState, + fallbackAbortSet, + [keyPath[0], "Suspense Fallback", keyPath[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } + } + return; + } + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + if ("ref" in props) + for (fallback in ((newProps = {}), props)) + "ref" !== fallback && (newProps[fallback] = props[fallback]); + else newProps = props; + type = renderWithHooks( + request, + task, + keyPath, + type.render, + newProps, + ref + ); + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + return; + case REACT_MEMO_TYPE: + renderElement(request, task, keyPath, type.type, props, ref); + return; + case REACT_CONTEXT_TYPE: + defaultProps = props.children; + newProps = task.keyPath; + props = props.value; + initialState = type._currentValue2; + type._currentValue2 = props; + ref = currentActiveSnapshot; + currentActiveSnapshot = type = { + parent: ref, + depth: null === ref ? 0 : ref.depth + 1, + context: type, + parentValue: initialState, + value: props + }; + task.context = type; + task.keyPath = keyPath; + renderNodeDestructive(request, task, defaultProps, -1); + request = currentActiveSnapshot; + if (null === request) throw Error(formatProdErrorMessage(403)); + request.context._currentValue2 = request.parentValue; + request = currentActiveSnapshot = request.parent; + task.context = request; + task.keyPath = newProps; + return; + case REACT_CONSUMER_TYPE: + props = props.children; + type = props(type._context._currentValue2); + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + return; + case REACT_LAZY_TYPE: + newProps = type._init; + type = newProps(type._payload); + if (12 === request.status) throw null; + renderElement(request, task, keyPath, type, props, ref); + return; + } + throw Error( + formatProdErrorMessage(130, null == type ? type : typeof type, "") + ); + } +} +function resumeNode(request, task, segmentId, node, childIndex) { + var prevReplay = task.replay, + blockedBoundary = task.blockedBoundary, + resumedSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + resumedSegment.id = segmentId; + resumedSegment.parentFlushed = !0; + try { + (task.replay = null), + (task.blockedSegment = resumedSegment), + renderNode(request, task, node, childIndex), + (resumedSegment.status = 1), + null === blockedBoundary + ? (request.completedRootSegment = resumedSegment) + : (queueCompletedSegment(blockedBoundary, resumedSegment), + blockedBoundary.parentFlushed && + request.partialBoundaries.push(blockedBoundary)); + } finally { + (task.replay = prevReplay), (task.blockedSegment = null); + } +} +function renderNodeDestructive(request, task, node, childIndex) { + null !== task.replay && "number" === typeof task.replay.slots + ? resumeNode(request, task, task.replay.slots, node, childIndex) + : ((task.node = node), + (task.childIndex = childIndex), + (node = task.componentStack), + pushComponentStack(task), + retryNode(request, task), + (task.componentStack = node)); +} +function retryNode(request, task) { + var node = task.node, + childIndex = task.childIndex; + if (null !== node) { + if ("object" === typeof node) { + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + var type = node.type, + key = node.key, + props = node.props; + node = props.ref; + var ref = void 0 !== node ? node : null, + name = getComponentNameFromType(type), + keyOrIndex = + null == key ? (-1 === childIndex ? 0 : childIndex) : key; + key = [task.keyPath, name, keyOrIndex]; + if (null !== task.replay) + a: { + var replay = task.replay; + childIndex = replay.nodes; + for (node = 0; node < childIndex.length; node++) { + var node$jscomp$0 = childIndex[node]; + if (keyOrIndex === node$jscomp$0[1]) { + if (4 === node$jscomp$0.length) { + if (null !== name && name !== node$jscomp$0[0]) + throw Error( + formatProdErrorMessage(490, node$jscomp$0[0], name) + ); + var childNodes = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = task.node; + task.replay = { + nodes: childNodes, + slots: name, + pendingTasks: 1 + }; + try { + renderElement(request, task, key, type, props, ref); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || + "function" === typeof x.then) + ) + throw ( + (task.node === keyOrIndex + ? (task.replay = replay) + : childIndex.splice(node, 1), + x) + ); + task.replay.pendingTasks--; + props = getThrownInfo(task.componentStack); + key = request; + request = task.blockedBoundary; + type = x; + props = logRecoverableError(key, type, props); + abortRemainingReplayNodes( + key, + request, + childNodes, + name, + type, + props + ); + } + task.replay = replay; + } else { + if (type !== REACT_SUSPENSE_TYPE) + throw Error( + formatProdErrorMessage( + 490, + "Suspense", + getComponentNameFromType(type) || "Unknown" + ) + ); + b: { + replay = void 0; + type = node$jscomp$0[5]; + ref = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = + null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2]; + node$jscomp$0 = + null === node$jscomp$0[4] ? null : node$jscomp$0[4][3]; + var prevKeyPath = task.keyPath, + prevContext = task.formatContext, + prevRow = task.row, + previousReplaySet = task.replay, + parentBoundary = task.blockedBoundary, + parentHoistableState = task.hoistableState, + content = props.children, + fallback = props.fallback, + fallbackAbortSet = new Set(); + props = createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + props.parentFlushed = !0; + props.rootSegmentID = type; + task.blockedBoundary = props; + task.hoistableState = props.contentState; + task.keyPath = key; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + prevContext + ); + task.row = null; + task.replay = { + nodes: ref, + slots: name, + pendingTasks: 1 + }; + try { + renderNode(request, task, content, -1); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + if (0 === props.pendingTasks && 0 === props.status) { + props.status = 1; + request.completedBoundaries.push(props); + break b; + } + } catch (error) { + (props.status = 4), + (childNodes = getThrownInfo(task.componentStack)), + (replay = logRecoverableError( + request, + error, + childNodes + )), + (props.errorDigest = replay), + task.replay.pendingTasks--, + request.clientRenderedBoundaries.push(props); + } finally { + (task.blockedBoundary = parentBoundary), + (task.hoistableState = parentHoistableState), + (task.replay = previousReplaySet), + (task.keyPath = prevKeyPath), + (task.formatContext = prevContext), + (task.row = prevRow); + } + childNodes = createReplayTask( + request, + null, + { + nodes: keyOrIndex, + slots: node$jscomp$0, + pendingTasks: 0 + }, + fallback, + -1, + parentBoundary, + props.fallbackState, + fallbackAbortSet, + [key[0], "Suspense Fallback", key[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(childNodes); + request.pingedTasks.push(childNodes); + } + } + childIndex.splice(node, 1); + break a; + } + } + } + else renderElement(request, task, key, type, props, ref); + return; + case REACT_PORTAL_TYPE: + throw Error(formatProdErrorMessage(257)); + case REACT_LAZY_TYPE: + childNodes = node._init; + node = childNodes(node._payload); + if (12 === request.status) throw null; + renderNodeDestructive(request, task, node, childIndex); + return; + } + if (isArrayImpl(node)) { + renderChildrenArray(request, task, node, childIndex); + return; + } + if ((childNodes = getIteratorFn(node))) + if ((childNodes = childNodes.call(node))) { + node = childNodes.next(); + if (!node.done) { + props = []; + do props.push(node.value), (node = childNodes.next()); + while (!node.done); + renderChildrenArray(request, task, props, childIndex); + } + return; + } + if ("function" === typeof node.then) + return ( + (task.thenableState = null), + renderNodeDestructive(request, task, unwrapThenable(node), childIndex) + ); + if (node.$$typeof === REACT_CONTEXT_TYPE) + return renderNodeDestructive( + request, + task, + node._currentValue2, + childIndex + ); + childIndex = Object.prototype.toString.call(node); + throw Error( + formatProdErrorMessage( + 31, + "[object Object]" === childIndex + ? "object with keys {" + Object.keys(node).join(", ") + "}" + : childIndex + ) + ); + } + if ("string" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + node, + request.renderState, + childIndex.lastPushedText + )); + else if ("number" === typeof node || "bigint" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + "" + node, + request.renderState, + childIndex.lastPushedText + )); + } +} +function renderChildrenArray(request, task, children, childIndex) { + var prevKeyPath = task.keyPath; + if ( + -1 !== childIndex && + ((task.keyPath = [task.keyPath, "Fragment", childIndex]), + null !== task.replay) + ) { + for ( + var replay = task.replay, replayNodes = replay.nodes, j = 0; + j < replayNodes.length; + j++ + ) { + var node = replayNodes[j]; + if (node[1] === childIndex) { + childIndex = node[2]; + node = node[3]; + task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 }; + try { + renderChildrenArray(request, task, children, -1); + if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || "function" === typeof x.then) + ) + throw x; + task.replay.pendingTasks--; + children = getThrownInfo(task.componentStack); + var boundary = task.blockedBoundary, + error = x; + children = logRecoverableError(request, error, children); + abortRemainingReplayNodes( + request, + boundary, + childIndex, + node, + error, + children + ); + } + task.replay = replay; + replayNodes.splice(j, 1); + break; + } + } + task.keyPath = prevKeyPath; + return; + } + replay = task.treeContext; + replayNodes = children.length; + if ( + null !== task.replay && + ((j = task.replay.slots), null !== j && "object" === typeof j) + ) { + for (childIndex = 0; childIndex < replayNodes; childIndex++) + (node = children[childIndex]), + (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)), + (boundary = j[childIndex]), + "number" === typeof boundary + ? (resumeNode(request, task, boundary, node, childIndex), + delete j[childIndex]) + : renderNode(request, task, node, childIndex); + task.treeContext = replay; + task.keyPath = prevKeyPath; + return; + } + for (j = 0; j < replayNodes; j++) + (childIndex = children[j]), + (task.treeContext = pushTreeContext(replay, replayNodes, j)), + renderNode(request, task, childIndex, j); + task.treeContext = replay; + task.keyPath = prevKeyPath; +} +function trackPostponedBoundary(request, trackedPostpones, boundary) { + boundary.status = 5; + boundary.rootSegmentID = request.nextSegmentId++; + request = boundary.trackedContentKeyPath; + if (null === request) throw Error(formatProdErrorMessage(486)); + var fallbackReplayNode = boundary.trackedFallbackNode, + children = [], + boundaryNode = trackedPostpones.workingMap.get(request); + if (void 0 === boundaryNode) + return ( + (boundary = [ + request[1], + request[2], + children, + null, + fallbackReplayNode, + boundary.rootSegmentID + ]), + trackedPostpones.workingMap.set(request, boundary), + addToReplayParent(boundary, request[0], trackedPostpones), + boundary + ); + boundaryNode[4] = fallbackReplayNode; + boundaryNode[5] = boundary.rootSegmentID; + return boundaryNode; +} +function trackPostpone(request, trackedPostpones, task, segment) { + segment.status = 5; + var keyPath = task.keyPath, + boundary = task.blockedBoundary; + if (null === boundary) + (segment.id = request.nextSegmentId++), + (trackedPostpones.rootSlots = segment.id), + null !== request.completedRootSegment && + (request.completedRootSegment.status = 5); + else { + if (null !== boundary && 0 === boundary.status) { + var boundaryNode = trackPostponedBoundary( + request, + trackedPostpones, + boundary + ); + if ( + boundary.trackedContentKeyPath === keyPath && + -1 === task.childIndex + ) { + -1 === segment.id && + (segment.id = segment.parentFlushed + ? boundary.rootSegmentID + : request.nextSegmentId++); + boundaryNode[3] = segment.id; + return; + } + } + -1 === segment.id && + (segment.id = + segment.parentFlushed && null !== boundary + ? boundary.rootSegmentID + : request.nextSegmentId++); + if (-1 === task.childIndex) + null === keyPath + ? (trackedPostpones.rootSlots = segment.id) + : ((task = trackedPostpones.workingMap.get(keyPath)), + void 0 === task + ? ((task = [keyPath[1], keyPath[2], [], segment.id]), + addToReplayParent(task, keyPath[0], trackedPostpones)) + : (task[3] = segment.id)); + else { + if (null === keyPath) + if (((request = trackedPostpones.rootSlots), null === request)) + request = trackedPostpones.rootSlots = {}; + else { + if ("number" === typeof request) + throw Error(formatProdErrorMessage(491)); + } + else if ( + ((boundary = trackedPostpones.workingMap), + (boundaryNode = boundary.get(keyPath)), + void 0 === boundaryNode) + ) + (request = {}), + (boundaryNode = [keyPath[1], keyPath[2], [], request]), + boundary.set(keyPath, boundaryNode), + addToReplayParent(boundaryNode, keyPath[0], trackedPostpones); + else if (((request = boundaryNode[3]), null === request)) + request = boundaryNode[3] = {}; + else if ("number" === typeof request) + throw Error(formatProdErrorMessage(491)); + request[task.childIndex] = segment.id; + } + } +} +function untrackBoundary(request, boundary) { + request = request.trackedPostpones; + null !== request && + ((boundary = boundary.trackedContentKeyPath), + null !== boundary && + ((boundary = request.workingMap.get(boundary)), + void 0 !== boundary && + ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null)))); +} +function spawnNewSuspendedReplayTask(request, task, thenableState) { + return createReplayTask( + request, + thenableState, + task.replay, + task.node, + task.childIndex, + task.blockedBoundary, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function spawnNewSuspendedRenderTask(request, task, thenableState) { + var segment = task.blockedSegment, + newSegment = createPendingSegment( + request, + segment.chunks.length, + null, + task.formatContext, + segment.lastPushedText, + !0 + ); + segment.children.push(newSegment); + segment.lastPushedText = !1; + return createRenderTask( + request, + thenableState, + task.node, + task.childIndex, + task.blockedBoundary, + newSegment, + task.blockedPreamble, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function renderNode(request, task, node, childIndex) { + var previousFormatContext = task.formatContext, + previousContext = task.context, + previousKeyPath = task.keyPath, + previousTreeContext = task.treeContext, + previousComponentStack = task.componentStack, + segment = task.blockedSegment; + if (null === segment) { + segment = task.replay; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue) { + if ( + (resetHooksState(), + (node = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + childIndex = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedReplayTask(request, task, childIndex).ping; + node.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + node = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + node = spawnNewSuspendedReplayTask(request, task, node); + request.pingedTasks.push(node); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + } + } + } else { + var childrenLength = segment.children.length, + chunkLength = segment.chunks.length; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue$62) { + if ( + (resetHooksState(), + (segment.children.length = childrenLength), + (segment.chunks.length = chunkLength), + (node = + thrownValue$62 === SuspenseException + ? getSuspendedThenable() + : thrownValue$62), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + segment = node; + node = + thrownValue$62 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedRenderTask(request, task, node).ping; + segment.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + segment = + thrownValue$62 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + segment = spawnNewSuspendedRenderTask(request, task, segment); + request.pingedTasks.push(segment); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + } + } + } + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + switchContext(previousContext); + throw node; +} +function abortTaskSoft(task) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + null !== segment && + ((segment.status = 3), finishedTask(this, boundary, task.row, segment)); +} +function abortRemainingReplayNodes( + request$jscomp$0, + boundary, + nodes, + slots, + error, + errorDigest$jscomp$0 +) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (4 === node.length) + abortRemainingReplayNodes( + request$jscomp$0, + boundary, + node[2], + node[3], + error, + errorDigest$jscomp$0 + ); + else { + node = node[5]; + var request = request$jscomp$0, + errorDigest = errorDigest$jscomp$0, + resumedBoundary = createSuspenseBoundary( + request, + null, + new Set(), + null, + null + ); + resumedBoundary.parentFlushed = !0; + resumedBoundary.rootSegmentID = node; + resumedBoundary.status = 4; + resumedBoundary.errorDigest = errorDigest; + resumedBoundary.parentFlushed && + request.clientRenderedBoundaries.push(resumedBoundary); + } + } + nodes.length = 0; + if (null !== slots) { + if (null === boundary) throw Error(formatProdErrorMessage(487)); + 4 !== boundary.status && + ((boundary.status = 4), + (boundary.errorDigest = errorDigest$jscomp$0), + boundary.parentFlushed && + request$jscomp$0.clientRenderedBoundaries.push(boundary)); + if ("object" === typeof slots) for (var index in slots) delete slots[index]; + } +} +function abortTask(task, request, error) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + if (null !== segment) { + if (6 === segment.status) return; + segment.status = 3; + } + var errorInfo = getThrownInfo(task.componentStack); + if (null === boundary) { + if (13 !== request.status && 14 !== request.status) { + boundary = task.replay; + if (null === boundary) { + null !== request.trackedPostpones && null !== segment + ? ((boundary = request.trackedPostpones), + logRecoverableError(request, error, errorInfo), + trackPostpone(request, boundary, task, segment), + finishedTask(request, null, task.row, segment)) + : (logRecoverableError(request, error, errorInfo), + fatalError(request, error)); + return; + } + boundary.pendingTasks--; + 0 === boundary.pendingTasks && + 0 < boundary.nodes.length && + ((segment = logRecoverableError(request, error, errorInfo)), + abortRemainingReplayNodes( + request, + null, + boundary.nodes, + boundary.slots, + error, + segment + )); + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } + } else { + var trackedPostpones$63 = request.trackedPostpones; + if (4 !== boundary.status) { + if (null !== trackedPostpones$63 && null !== segment) + return ( + logRecoverableError(request, error, errorInfo), + trackPostpone(request, trackedPostpones$63, task, segment), + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }), + boundary.fallbackAbortableTasks.clear(), + finishedTask(request, boundary, task.row, segment) + ); + boundary.status = 4; + segment = logRecoverableError(request, error, errorInfo); + boundary.status = 4; + boundary.errorDigest = segment; + untrackBoundary(request, boundary); + boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary); + } + boundary.pendingTasks--; + segment = boundary.row; + null !== segment && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }); + boundary.fallbackAbortableTasks.clear(); + } + task = task.row; + null !== task && + 0 === --task.pendingTasks && + finishSuspenseListRow(request, task); + request.allPendingTasks--; + 0 === request.allPendingTasks && completeAll(request); +} +function safelyEmitEarlyPreloads(request, shellComplete) { + try { + var renderState = request.renderState, + onHeaders = renderState.onHeaders; + if (onHeaders) { + var headers = renderState.headers; + if (headers) { + renderState.headers = null; + var linkHeader = headers.preconnects; + headers.fontPreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.fontPreloads)); + headers.highImagePreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.highImagePreloads)); + if (!shellComplete) { + var queueIter = renderState.styles.values(), + queueStep = queueIter.next(); + b: for ( + ; + 0 < headers.remainingCapacity && !queueStep.done; + queueStep = queueIter.next() + ) + for ( + var sheetIter = queueStep.value.sheets.values(), + sheetStep = sheetIter.next(); + 0 < headers.remainingCapacity && !sheetStep.done; + sheetStep = sheetIter.next() + ) { + var sheet = sheetStep.value, + props = sheet.props, + key = props.href, + props$jscomp$0 = sheet.props, + header = getPreloadAsHeader(props$jscomp$0.href, "style", { + crossOrigin: props$jscomp$0.crossOrigin, + integrity: props$jscomp$0.integrity, + nonce: props$jscomp$0.nonce, + type: props$jscomp$0.type, + fetchPriority: props$jscomp$0.fetchPriority, + referrerPolicy: props$jscomp$0.referrerPolicy, + media: props$jscomp$0.media + }); + if (0 <= (headers.remainingCapacity -= header.length + 2)) + (renderState.resets.style[key] = PRELOAD_NO_CREDS), + linkHeader && (linkHeader += ", "), + (linkHeader += header), + (renderState.resets.style[key] = + "string" === typeof props.crossOrigin || + "string" === typeof props.integrity + ? [props.crossOrigin, props.integrity] + : PRELOAD_NO_CREDS); + else break b; + } + } + linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({}); + } + } + } catch (error) { + logRecoverableError(request, error, {}); + } +} +function completeShell(request) { + null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0); + null === request.trackedPostpones && preparePreamble(request); + request.onShellError = noop; + request = request.onShellReady; + request(); +} +function completeAll(request) { + safelyEmitEarlyPreloads( + request, + null === request.trackedPostpones + ? !0 + : null === request.completedRootSegment || + 5 !== request.completedRootSegment.status + ); + preparePreamble(request); + request = request.onAllReady; + request(); +} +function queueCompletedSegment(boundary, segment) { + if ( + 0 === segment.chunks.length && + 1 === segment.children.length && + null === segment.children[0].boundary && + -1 === segment.children[0].id + ) { + var childSegment = segment.children[0]; + childSegment.id = segment.id; + childSegment.parentFlushed = !0; + (1 !== childSegment.status && + 3 !== childSegment.status && + 4 !== childSegment.status) || + queueCompletedSegment(boundary, childSegment); + } else boundary.completedSegments.push(segment); +} +function finishedTask(request, boundary, row, segment) { + null !== row && + (0 === --row.pendingTasks + ? finishSuspenseListRow(request, row) + : row.together && tryToResolveTogetherRow(request, row)); + request.allPendingTasks--; + if (null === boundary) { + if (null !== segment && segment.parentFlushed) { + if (null !== request.completedRootSegment) + throw Error(formatProdErrorMessage(389)); + request.completedRootSegment = segment; + } + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } else if ((boundary.pendingTasks--, 4 !== boundary.status)) + if (0 === boundary.pendingTasks) + if ( + (0 === boundary.status && (boundary.status = 1), + null !== segment && + segment.parentFlushed && + (1 === segment.status || 3 === segment.status) && + queueCompletedSegment(boundary, segment), + boundary.parentFlushed && request.completedBoundaries.push(boundary), + 1 === boundary.status) + ) + (row = boundary.row), + null !== row && + hoistHoistables(row.hoistables, boundary.contentState), + isEligibleForOutlining(request, boundary) || + (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request), + boundary.fallbackAbortableTasks.clear(), + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row)), + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary.contentPreamble && + preparePreamble(request); + else { + if ( + 5 === boundary.status && + ((boundary = boundary.row), null !== boundary) + ) { + if (null !== request.trackedPostpones) { + row = request.trackedPostpones; + var postponedRow = boundary.next; + if ( + null !== postponedRow && + ((segment = postponedRow.boundaries), null !== segment) + ) + for ( + postponedRow.boundaries = null, postponedRow = 0; + postponedRow < segment.length; + postponedRow++ + ) { + var postponedBoundary = segment[postponedRow]; + trackPostponedBoundary(request, row, postponedBoundary); + finishedTask(request, postponedBoundary, null, null); + } + } + 0 === --boundary.pendingTasks && + finishSuspenseListRow(request, boundary); + } + } + else + null === segment || + !segment.parentFlushed || + (1 !== segment.status && 3 !== segment.status) || + (queueCompletedSegment(boundary, segment), + 1 === boundary.completedSegments.length && + boundary.parentFlushed && + request.partialBoundaries.push(boundary)), + (boundary = boundary.row), + null !== boundary && + boundary.together && + tryToResolveTogetherRow(request, boundary); + 0 === request.allPendingTasks && completeAll(request); +} +function performWork(request$jscomp$2) { + if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) { + var prevContext = currentActiveSnapshot, + prevDispatcher = ReactSharedInternals.H; + ReactSharedInternals.H = HooksDispatcher; + var prevAsyncDispatcher = ReactSharedInternals.A; + ReactSharedInternals.A = DefaultAsyncDispatcher; + var prevRequest = currentRequest; + currentRequest = request$jscomp$2; + var prevResumableState = currentResumableState; + currentResumableState = request$jscomp$2.resumableState; + try { + var pingedTasks = request$jscomp$2.pingedTasks, + i; + for (i = 0; i < pingedTasks.length; i++) { + var task = pingedTasks[i], + request = request$jscomp$2, + segment = task.blockedSegment; + if (null === segment) { + var request$jscomp$0 = request; + if (0 !== task.replay.pendingTasks) { + switchContext(task.context); + try { + "number" === typeof task.replay.slots + ? resumeNode( + request$jscomp$0, + task, + task.replay.slots, + task.node, + task.childIndex + ) + : retryNode(request$jscomp$0, task); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + task.abortSet.delete(task); + finishedTask( + request$jscomp$0, + task.blockedBoundary, + task.row, + null + ); + } catch (thrownValue) { + resetHooksState(); + var x = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue; + if ( + "object" === typeof x && + null !== x && + "function" === typeof x.then + ) { + var ping = task.ping; + x.then(ping, ping); + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + } else { + task.replay.pendingTasks--; + task.abortSet.delete(task); + var errorInfo = getThrownInfo(task.componentStack); + request = void 0; + var request$jscomp$1 = request$jscomp$0, + boundary = task.blockedBoundary, + error$jscomp$0 = + 12 === request$jscomp$0.status + ? request$jscomp$0.fatalError + : x, + replayNodes = task.replay.nodes, + resumeSlots = task.replay.slots; + request = logRecoverableError( + request$jscomp$1, + error$jscomp$0, + errorInfo + ); + abortRemainingReplayNodes( + request$jscomp$1, + boundary, + replayNodes, + resumeSlots, + error$jscomp$0, + request + ); + request$jscomp$0.pendingRootTasks--; + 0 === request$jscomp$0.pendingRootTasks && + completeShell(request$jscomp$0); + request$jscomp$0.allPendingTasks--; + 0 === request$jscomp$0.allPendingTasks && + completeAll(request$jscomp$0); + } + } finally { + } + } + } else if ( + ((request$jscomp$0 = void 0), + (request$jscomp$1 = segment), + 0 === request$jscomp$1.status) + ) { + request$jscomp$1.status = 6; + switchContext(task.context); + var childrenLength = request$jscomp$1.children.length, + chunkLength = request$jscomp$1.chunks.length; + try { + retryNode(request, task), + pushSegmentFinale( + request$jscomp$1.chunks, + request.renderState, + request$jscomp$1.lastPushedText, + request$jscomp$1.textEmbedded + ), + task.abortSet.delete(task), + (request$jscomp$1.status = 1), + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } catch (thrownValue) { + resetHooksState(); + request$jscomp$1.children.length = childrenLength; + request$jscomp$1.chunks.length = chunkLength; + var x$jscomp$0 = + thrownValue === SuspenseException + ? getSuspendedThenable() + : 12 === request.status + ? request.fatalError + : thrownValue; + if (12 === request.status && null !== request.trackedPostpones) { + var trackedPostpones = request.trackedPostpones, + thrownInfo = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + logRecoverableError(request, x$jscomp$0, thrownInfo); + trackPostpone(request, trackedPostpones, task, request$jscomp$1); + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } else if ( + "object" === typeof x$jscomp$0 && + null !== x$jscomp$0 && + "function" === typeof x$jscomp$0.then + ) { + request$jscomp$1.status = 0; + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + var ping$jscomp$0 = task.ping; + x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0); + } else { + var errorInfo$jscomp$0 = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + request$jscomp$1.status = 4; + var boundary$jscomp$0 = task.blockedBoundary, + row = task.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.allPendingTasks--; + request$jscomp$0 = logRecoverableError( + request, + x$jscomp$0, + errorInfo$jscomp$0 + ); + if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0); + else if ( + (boundary$jscomp$0.pendingTasks--, + 4 !== boundary$jscomp$0.status) + ) { + boundary$jscomp$0.status = 4; + boundary$jscomp$0.errorDigest = request$jscomp$0; + untrackBoundary(request, boundary$jscomp$0); + var boundaryRow = boundary$jscomp$0.row; + null !== boundaryRow && + 0 === --boundaryRow.pendingTasks && + finishSuspenseListRow(request, boundaryRow); + boundary$jscomp$0.parentFlushed && + request.clientRenderedBoundaries.push(boundary$jscomp$0); + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary$jscomp$0.contentPreamble && + preparePreamble(request); + } + 0 === request.allPendingTasks && completeAll(request); + } + } finally { + } + } + } + pingedTasks.splice(0, i); + null !== request$jscomp$2.destination && + flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination); + } catch (error) { + logRecoverableError(request$jscomp$2, error, {}), + fatalError(request$jscomp$2, error); + } finally { + (currentResumableState = prevResumableState), + (ReactSharedInternals.H = prevDispatcher), + (ReactSharedInternals.A = prevAsyncDispatcher), + prevDispatcher === HooksDispatcher && switchContext(prevContext), + (currentRequest = prevRequest); + } + } +} +function preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments +) { + segment.preambleChildren.length && + collectedPreambleSegments.push(segment.preambleChildren); + for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++) + pendingPreambles = + preparePreambleFromSegment( + request, + segment.children[i], + collectedPreambleSegments + ) || pendingPreambles; + return pendingPreambles; +} +function preparePreambleFromSegment( + request, + segment, + collectedPreambleSegments +) { + var boundary = segment.boundary; + if (null === boundary) + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + var preamble = boundary.contentPreamble, + fallbackPreamble = boundary.fallbackPreamble; + if (null === preamble || null === fallbackPreamble) return !1; + switch (boundary.status) { + case 1: + hoistPreambleState(request.renderState, preamble); + request.byteSize += boundary.byteSize; + segment = boundary.completedSegments[0]; + if (!segment) throw Error(formatProdErrorMessage(391)); + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + case 5: + if (null !== request.trackedPostpones) return !0; + case 4: + if (1 === segment.status) + return ( + hoistPreambleState(request.renderState, fallbackPreamble), + preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ) + ); + default: + return !0; + } +} +function preparePreamble(request) { + if ( + request.completedRootSegment && + null === request.completedPreambleSegments + ) { + var collectedPreambleSegments = [], + originalRequestByteSize = request.byteSize, + hasPendingPreambles = preparePreambleFromSegment( + request, + request.completedRootSegment, + collectedPreambleSegments + ), + preamble = request.renderState.preamble; + !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks) + ? (request.completedPreambleSegments = collectedPreambleSegments) + : (request.byteSize = originalRequestByteSize); + } +} +function flushSubtree(request, destination, segment, hoistableState) { + segment.parentFlushed = !0; + switch (segment.status) { + case 0: + segment.id = request.nextSegmentId++; + case 5: + return ( + (hoistableState = segment.id), + (segment.lastPushedText = !1), + (segment.textEmbedded = !1), + (request = request.renderState), + destination.push('<template id="'), + destination.push(request.placeholderPrefix), + (request = hoistableState.toString(16)), + destination.push(request), + destination.push('"></template>') + ); + case 1: + segment.status = 2; + var r = !0, + chunks = segment.chunks, + chunkIdx = 0; + segment = segment.children; + for (var childIdx = 0; childIdx < segment.length; childIdx++) { + for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++) + destination.push(chunks[chunkIdx]); + r = flushSegment(request, destination, r, hoistableState); + } + for (; chunkIdx < chunks.length - 1; chunkIdx++) + destination.push(chunks[chunkIdx]); + chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx])); + return r; + case 3: + return !0; + default: + throw Error(formatProdErrorMessage(390)); + } +} +var flushedByteSize = 0; +function flushSegment(request, destination, segment, hoistableState) { + var boundary = segment.boundary; + if (null === boundary) + return flushSubtree(request, destination, segment, hoistableState); + boundary.parentFlushed = !0; + if (4 === boundary.status) { + var row = boundary.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.renderState.generateStaticMarkup || + ((boundary = boundary.errorDigest), + destination.push("\x3c!--$!--\x3e"), + destination.push("<template"), + boundary && + (destination.push(' data-dgst="'), + (boundary = escapeTextForBrowser(boundary)), + destination.push(boundary), + destination.push('"')), + destination.push("></template>")); + flushSubtree(request, destination, segment, hoistableState); + request = request.renderState.generateStaticMarkup + ? !0 + : destination.push("\x3c!--/$--\x3e"); + return request; + } + if (1 !== boundary.status) + return ( + 0 === boundary.status && + (boundary.rootSegmentID = request.nextSegmentId++), + 0 < boundary.completedSegments.length && + request.partialBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + hoistableState && hoistHoistables(hoistableState, boundary.fallbackState), + flushSubtree(request, destination, segment, hoistableState), + destination.push("\x3c!--/$--\x3e") + ); + if ( + !flushingPartialBoundaries && + isEligibleForOutlining(request, boundary) && + flushedByteSize + boundary.byteSize > request.progressiveChunkSize + ) + return ( + (boundary.rootSegmentID = request.nextSegmentId++), + request.completedBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + flushSubtree(request, destination, segment, hoistableState), + destination.push("\x3c!--/$--\x3e") + ); + flushedByteSize += boundary.byteSize; + hoistableState && hoistHoistables(hoistableState, boundary.contentState); + segment = boundary.row; + null !== segment && + isEligibleForOutlining(request, boundary) && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + request.renderState.generateStaticMarkup || + destination.push("\x3c!--$--\x3e"); + segment = boundary.completedSegments; + if (1 !== segment.length) throw Error(formatProdErrorMessage(391)); + flushSegment(request, destination, segment[0], hoistableState); + request = request.renderState.generateStaticMarkup + ? !0 + : destination.push("\x3c!--/$--\x3e"); + return request; +} +function flushSegmentContainer(request, destination, segment, hoistableState) { + writeStartSegment( + destination, + request.renderState, + segment.parentFormatContext, + segment.id + ); + flushSegment(request, destination, segment, hoistableState); + return writeEndSegment(destination, segment.parentFormatContext); +} +function flushCompletedBoundary(request, destination, boundary) { + flushedByteSize = boundary.byteSize; + for ( + var completedSegments = boundary.completedSegments, i = 0; + i < completedSegments.length; + i++ + ) + flushPartiallyCompletedSegment( + request, + destination, + boundary, + completedSegments[i] + ); + completedSegments.length = 0; + completedSegments = boundary.row; + null !== completedSegments && + isEligibleForOutlining(request, boundary) && + 0 === --completedSegments.pendingTasks && + finishSuspenseListRow(request, completedSegments); + writeHoistablesForBoundary( + destination, + boundary.contentState, + request.renderState + ); + completedSegments = request.resumableState; + request = request.renderState; + i = boundary.rootSegmentID; + boundary = boundary.contentState; + var requiresStyleInsertion = request.stylesToHoist; + request.stylesToHoist = !1; + destination.push(request.startInlineScript); + destination.push(">"); + requiresStyleInsertion + ? (0 === (completedSegments.instructions & 4) && + ((completedSegments.instructions |= 4), + destination.push( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};' + )), + 0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + destination.push( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' + )), + 0 === (completedSegments.instructions & 8) + ? ((completedSegments.instructions |= 8), + destination.push( + '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("' + )) + : destination.push('$RR("')) + : (0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + destination.push( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' + )), + destination.push('$RC("')); + completedSegments = i.toString(16); + destination.push(request.boundaryPrefix); + destination.push(completedSegments); + destination.push('","'); + destination.push(request.segmentPrefix); + destination.push(completedSegments); + requiresStyleInsertion + ? (destination.push('",'), + writeStyleResourceDependenciesInJS(destination, boundary)) + : destination.push('"'); + boundary = destination.push(")\x3c/script>"); + return writeBootstrap(destination, request) && boundary; +} +function flushPartiallyCompletedSegment( + request, + destination, + boundary, + segment +) { + if (2 === segment.status) return !0; + var hoistableState = boundary.contentState, + segmentID = segment.id; + if (-1 === segmentID) { + if (-1 === (segment.id = boundary.rootSegmentID)) + throw Error(formatProdErrorMessage(392)); + return flushSegmentContainer(request, destination, segment, hoistableState); + } + if (segmentID === boundary.rootSegmentID) + return flushSegmentContainer(request, destination, segment, hoistableState); + flushSegmentContainer(request, destination, segment, hoistableState); + boundary = request.resumableState; + request = request.renderState; + destination.push(request.startInlineScript); + destination.push(">"); + 0 === (boundary.instructions & 1) + ? ((boundary.instructions |= 1), + destination.push( + '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("' + )) + : destination.push('$RS("'); + destination.push(request.segmentPrefix); + segmentID = segmentID.toString(16); + destination.push(segmentID); + destination.push('","'); + destination.push(request.placeholderPrefix); + destination.push(segmentID); + destination = destination.push('")\x3c/script>'); + return destination; +} +var flushingPartialBoundaries = !1; +function flushCompletedQueues(request, destination) { + try { + if (!(0 < request.pendingRootTasks)) { + var i, + completedRootSegment = request.completedRootSegment; + if (null !== completedRootSegment) { + if (5 === completedRootSegment.status) return; + var completedPreambleSegments = request.completedPreambleSegments; + if (null === completedPreambleSegments) return; + flushedByteSize = request.byteSize; + var resumableState = request.resumableState, + renderState = request.renderState, + preamble = renderState.preamble, + htmlChunks = preamble.htmlChunks, + headChunks = preamble.headChunks, + i$jscomp$0; + if (htmlChunks) { + for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++) + destination.push(htmlChunks[i$jscomp$0]); + if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + destination.push(headChunks[i$jscomp$0]); + else { + var chunk = startChunkForTag("head"); + destination.push(chunk); + destination.push(">"); + } + } else if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + destination.push(headChunks[i$jscomp$0]); + var charsetChunks = renderState.charsetChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++) + destination.push(charsetChunks[i$jscomp$0]); + charsetChunks.length = 0; + renderState.preconnects.forEach(flushResource, destination); + renderState.preconnects.clear(); + var viewportChunks = renderState.viewportChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++) + destination.push(viewportChunks[i$jscomp$0]); + viewportChunks.length = 0; + renderState.fontPreloads.forEach(flushResource, destination); + renderState.fontPreloads.clear(); + renderState.highImagePreloads.forEach(flushResource, destination); + renderState.highImagePreloads.clear(); + currentlyFlushingRenderState = renderState; + renderState.styles.forEach(flushStylesInPreamble, destination); + currentlyFlushingRenderState = null; + var importMapChunks = renderState.importMapChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++) + destination.push(importMapChunks[i$jscomp$0]); + importMapChunks.length = 0; + renderState.bootstrapScripts.forEach(flushResource, destination); + renderState.scripts.forEach(flushResource, destination); + renderState.scripts.clear(); + renderState.bulkPreloads.forEach(flushResource, destination); + renderState.bulkPreloads.clear(); + resumableState.instructions |= 32; + var hoistableChunks = renderState.hoistableChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++) + destination.push(hoistableChunks[i$jscomp$0]); + for ( + resumableState = hoistableChunks.length = 0; + resumableState < completedPreambleSegments.length; + resumableState++ + ) { + var segments = completedPreambleSegments[resumableState]; + for (renderState = 0; renderState < segments.length; renderState++) + flushSegment(request, destination, segments[renderState], null); + } + var preamble$jscomp$0 = request.renderState.preamble, + headChunks$jscomp$0 = preamble$jscomp$0.headChunks; + if (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) { + var chunk$jscomp$0 = endChunkForTag("head"); + destination.push(chunk$jscomp$0); + } + var bodyChunks = preamble$jscomp$0.bodyChunks; + if (bodyChunks) + for ( + completedPreambleSegments = 0; + completedPreambleSegments < bodyChunks.length; + completedPreambleSegments++ + ) + destination.push(bodyChunks[completedPreambleSegments]); + flushSegment(request, destination, completedRootSegment, null); + request.completedRootSegment = null; + var renderState$jscomp$0 = request.renderState; + if ( + 0 !== request.allPendingTasks || + 0 !== request.clientRenderedBoundaries.length || + 0 !== request.completedBoundaries.length || + (null !== request.trackedPostpones && + (0 !== request.trackedPostpones.rootNodes.length || + null !== request.trackedPostpones.rootSlots)) + ) { + var resumableState$jscomp$0 = request.resumableState; + if (0 === (resumableState$jscomp$0.instructions & 64)) { + resumableState$jscomp$0.instructions |= 64; + destination.push(renderState$jscomp$0.startInlineScript); + if (0 === (resumableState$jscomp$0.instructions & 32)) { + resumableState$jscomp$0.instructions |= 32; + var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_"; + destination.push(' id="'); + var chunk$jscomp$1 = escapeTextForBrowser(shellId); + destination.push(chunk$jscomp$1); + destination.push('"'); + } + destination.push(">"); + destination.push( + "requestAnimationFrame(function(){$RT=performance.now()});" + ); + destination.push("\x3c/script>"); + } + } + writeBootstrap(destination, renderState$jscomp$0); + } + var renderState$jscomp$1 = request.renderState; + completedRootSegment = 0; + var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks; + for ( + completedRootSegment = 0; + completedRootSegment < viewportChunks$jscomp$0.length; + completedRootSegment++ + ) + destination.push(viewportChunks$jscomp$0[completedRootSegment]); + viewportChunks$jscomp$0.length = 0; + renderState$jscomp$1.preconnects.forEach(flushResource, destination); + renderState$jscomp$1.preconnects.clear(); + renderState$jscomp$1.fontPreloads.forEach(flushResource, destination); + renderState$jscomp$1.fontPreloads.clear(); + renderState$jscomp$1.highImagePreloads.forEach( + flushResource, + destination + ); + renderState$jscomp$1.highImagePreloads.clear(); + renderState$jscomp$1.styles.forEach(preloadLateStyles, destination); + renderState$jscomp$1.scripts.forEach(flushResource, destination); + renderState$jscomp$1.scripts.clear(); + renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination); + renderState$jscomp$1.bulkPreloads.clear(); + var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks; + for ( + completedRootSegment = 0; + completedRootSegment < hoistableChunks$jscomp$0.length; + completedRootSegment++ + ) + destination.push(hoistableChunks$jscomp$0[completedRootSegment]); + hoistableChunks$jscomp$0.length = 0; + var clientRenderedBoundaries = request.clientRenderedBoundaries; + for (i = 0; i < clientRenderedBoundaries.length; i++) { + var boundary = clientRenderedBoundaries[i]; + renderState$jscomp$1 = destination; + var resumableState$jscomp$1 = request.resumableState, + renderState$jscomp$2 = request.renderState, + id = boundary.rootSegmentID, + errorDigest = boundary.errorDigest; + renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript); + renderState$jscomp$1.push(">"); + 0 === (resumableState$jscomp$1.instructions & 4) + ? ((resumableState$jscomp$1.instructions |= 4), + renderState$jscomp$1.push( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("' + )) + : renderState$jscomp$1.push('$RX("'); + renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix); + var chunk$jscomp$2 = id.toString(16); + renderState$jscomp$1.push(chunk$jscomp$2); + renderState$jscomp$1.push('"'); + if (errorDigest) { + renderState$jscomp$1.push(","); + var chunk$jscomp$3 = escapeJSStringsForInstructionScripts( + errorDigest || "" + ); + renderState$jscomp$1.push(chunk$jscomp$3); + } + var JSCompiler_inline_result = + renderState$jscomp$1.push(")\x3c/script>"); + if (!JSCompiler_inline_result) { + request.destination = null; + i++; + clientRenderedBoundaries.splice(0, i); + return; + } + } + clientRenderedBoundaries.splice(0, i); + var completedBoundaries = request.completedBoundaries; + for (i = 0; i < completedBoundaries.length; i++) + if ( + !flushCompletedBoundary(request, destination, completedBoundaries[i]) + ) { + request.destination = null; + i++; + completedBoundaries.splice(0, i); + return; + } + completedBoundaries.splice(0, i); + flushingPartialBoundaries = !0; + var partialBoundaries = request.partialBoundaries; + for (i = 0; i < partialBoundaries.length; i++) { + var boundary$69 = partialBoundaries[i]; + a: { + clientRenderedBoundaries = request; + boundary = destination; + flushedByteSize = boundary$69.byteSize; + var completedSegments = boundary$69.completedSegments; + for ( + JSCompiler_inline_result = 0; + JSCompiler_inline_result < completedSegments.length; + JSCompiler_inline_result++ + ) + if ( + !flushPartiallyCompletedSegment( + clientRenderedBoundaries, + boundary, + boundary$69, + completedSegments[JSCompiler_inline_result] + ) + ) { + JSCompiler_inline_result++; + completedSegments.splice(0, JSCompiler_inline_result); + var JSCompiler_inline_result$jscomp$0 = !1; + break a; + } + completedSegments.splice(0, JSCompiler_inline_result); + var row = boundary$69.row; + null !== row && + row.together && + 1 === boundary$69.pendingTasks && + (1 === row.pendingTasks + ? unblockSuspenseListRow( + clientRenderedBoundaries, + row, + row.hoistables + ) + : row.pendingTasks--); + JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary( + boundary, + boundary$69.contentState, + clientRenderedBoundaries.renderState + ); + } + if (!JSCompiler_inline_result$jscomp$0) { + request.destination = null; + i++; + partialBoundaries.splice(0, i); + return; + } + } + partialBoundaries.splice(0, i); + flushingPartialBoundaries = !1; + var largeBoundaries = request.completedBoundaries; + for (i = 0; i < largeBoundaries.length; i++) + if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) { + request.destination = null; + i++; + largeBoundaries.splice(0, i); + return; + } + largeBoundaries.splice(0, i); + } + } finally { + (flushingPartialBoundaries = !1), + 0 === request.allPendingTasks && + 0 === request.clientRenderedBoundaries.length && + 0 === request.completedBoundaries.length && + ((request.flushScheduled = !1), + (i = request.resumableState), + i.hasBody && + ((partialBoundaries = endChunkForTag("body")), + destination.push(partialBoundaries)), + i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)), + (request.status = 14), + destination.push(null), + (request.destination = null)); + } +} +function enqueueFlush(request) { + if ( + !1 === request.flushScheduled && + 0 === request.pingedTasks.length && + null !== request.destination + ) { + request.flushScheduled = !0; + var destination = request.destination; + destination + ? flushCompletedQueues(request, destination) + : (request.flushScheduled = !1); + } +} +function startFlowing(request, destination) { + if (13 === request.status) + (request.status = 14), destination.destroy(request.fatalError); + else if (14 !== request.status && null === request.destination) { + request.destination = destination; + try { + flushCompletedQueues(request, destination); + } catch (error) { + logRecoverableError(request, error, {}), fatalError(request, error); + } + } +} +function abort(request, reason) { + if (11 === request.status || 10 === request.status) request.status = 12; + try { + var abortableTasks = request.abortableTasks; + if (0 < abortableTasks.size) { + var error = + void 0 === reason + ? Error(formatProdErrorMessage(432)) + : "object" === typeof reason && + null !== reason && + "function" === typeof reason.then + ? Error(formatProdErrorMessage(530)) + : reason; + request.fatalError = error; + abortableTasks.forEach(function (task) { + return abortTask(task, request, error); + }); + abortableTasks.clear(); + } + null !== request.destination && + flushCompletedQueues(request, request.destination); + } catch (error$71) { + logRecoverableError(request, error$71, {}), fatalError(request, error$71); + } +} +function addToReplayParent(node, parentKeyPath, trackedPostpones) { + if (null === parentKeyPath) trackedPostpones.rootNodes.push(node); + else { + var workingMap = trackedPostpones.workingMap, + parentNode = workingMap.get(parentKeyPath); + void 0 === parentNode && + ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]), + workingMap.set(parentKeyPath, parentNode), + addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones)); + parentNode[2].push(node); + } +} +function onError() {} +function renderToStringImpl( + children, + options, + generateStaticMarkup, + abortReason +) { + var didFatal = !1, + fatalError = null, + result = "", + readyToStream = !1; + options = createResumableState(options ? options.identifierPrefix : void 0); + children = createRequest( + children, + options, + createRenderState(options, generateStaticMarkup), + createFormatContext(0, null, 0, null), + Infinity, + onError, + void 0, + function () { + readyToStream = !0; + }, + void 0, + void 0, + void 0 + ); + children.flushScheduled = null !== children.destination; + performWork(children); + 10 === children.status && (children.status = 11); + null === children.trackedPostpones && + safelyEmitEarlyPreloads(children, 0 === children.pendingRootTasks); + abort(children, abortReason); + startFlowing(children, { + push: function (chunk) { + null !== chunk && (result += chunk); + return !0; + }, + destroy: function (error) { + didFatal = !0; + fatalError = error; + } + }); + if (didFatal && fatalError !== abortReason) throw fatalError; + if (!readyToStream) throw Error(formatProdErrorMessage(426)); + return result; +} +exports.renderToStaticMarkup = function (children, options) { + return renderToStringImpl( + children, + options, + !0, + 'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' + ); +}; +exports.renderToString = function (children, options) { + return renderToStringImpl( + children, + options, + !1, + 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToReadableStream" which supports Suspense on the server' + ); +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js b/cli/app/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js new file mode 100644 index 00000000000..5cbbffd74c0 --- /dev/null +++ b/cli/app/node_modules/react-dom/cjs/react-dom-server-legacy.node.production.js @@ -0,0 +1,6692 @@ +/** + * @license React + * react-dom-server-legacy.node.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* + + + JS Implementation of MurmurHash3 (r136) (as of May 20, 2011) + + Copyright (c) 2011 Gary Court + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +"use strict"; +var React = require("react"), + ReactDOM = require("react-dom"), + REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_SCOPE_TYPE = Symbol.for("react.scope"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"), + REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; +} +var isArrayImpl = Array.isArray; +function murmurhash3_32_gc(key, seed) { + var remainder = key.length & 3; + var bytes = key.length - remainder; + var h1 = seed; + for (seed = 0; seed < bytes; ) { + var k1 = + (key.charCodeAt(seed) & 255) | + ((key.charCodeAt(++seed) & 255) << 8) | + ((key.charCodeAt(++seed) & 255) << 16) | + ((key.charCodeAt(++seed) & 255) << 24); + ++seed; + k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = + (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295; + h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16); + } + k1 = 0; + switch (remainder) { + case 3: + k1 ^= (key.charCodeAt(seed + 2) & 255) << 16; + case 2: + k1 ^= (key.charCodeAt(seed + 1) & 255) << 8; + case 1: + (k1 ^= key.charCodeAt(seed) & 255), + (k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295), + (k1 = (k1 << 15) | (k1 >>> 17)), + (h1 ^= + (461845907 * (k1 & 65535) + + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295); + } + h1 ^= key.length; + h1 ^= h1 >>> 16; + h1 = + (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= h1 >>> 13; + h1 = + (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + return (h1 ^ (h1 >>> 16)) >>> 0; +} +var assign = Object.assign, + hasOwnProperty = Object.prototype.hasOwnProperty, + VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), + illegalAttributeNameCache = {}, + validatedAttributeNameCache = {}; +function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return !0; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return (validatedAttributeNameCache[attributeName] = !0); + illegalAttributeNameCache[attributeName] = !0; + return !1; +} +var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ), + aliases = new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), + matchHtmlRegExp = /["'&<>]/; +function escapeTextForBrowser(text) { + if ( + "boolean" === typeof text || + "number" === typeof text || + "bigint" === typeof text + ) + return "" + text; + text = "" + text; + var match = matchHtmlRegExp.exec(text); + if (match) { + var html = "", + index, + lastIndex = 0; + for (index = match.index; index < text.length; index++) { + switch (text.charCodeAt(index)) { + case 34: + match = """; + break; + case 38: + match = "&"; + break; + case 39: + match = "'"; + break; + case 60: + match = "<"; + break; + case 62: + match = ">"; + break; + default: + continue; + } + lastIndex !== index && (html += text.slice(lastIndex, index)); + lastIndex = index + 1; + html += match; + } + text = lastIndex !== index ? html + text.slice(lastIndex, index) : html; + } + return text; +} +var uppercasePattern = /([A-Z])/g, + msPattern = /^ms-/, + isJavaScriptProtocol = + /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; +function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) + ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" + : url; +} +var ReactSharedInternals = + React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + ReactDOMSharedInternals = + ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + sharedNotPendingObject = { + pending: !1, + data: null, + method: null, + action: null + }, + previousDispatcher = ReactDOMSharedInternals.d; +ReactDOMSharedInternals.d = { + f: previousDispatcher.f, + r: previousDispatcher.r, + D: prefetchDNS, + C: preconnect, + L: preload, + m: preloadModule, + X: preinitScript, + S: preinitStyle, + M: preinitModuleScript +}; +var PRELOAD_NO_CREDS = [], + currentlyFlushingRenderState = null, + scriptRegex = /(<\/|<)(s)(cript)/gi; +function scriptReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix; +} +function createResumableState( + identifierPrefix, + externalRuntimeConfig, + bootstrapScriptContent, + bootstrapScripts, + bootstrapModules +) { + return { + idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix, + nextFormID: 0, + streamingFormat: 0, + bootstrapScriptContent: bootstrapScriptContent, + bootstrapScripts: bootstrapScripts, + bootstrapModules: bootstrapModules, + instructions: 0, + hasBody: !1, + hasHtml: !1, + unknownResources: {}, + dnsResources: {}, + connectResources: { default: {}, anonymous: {}, credentials: {} }, + imageResources: {}, + styleResources: {}, + scriptResources: {}, + moduleUnknownResources: {}, + moduleScriptResources: {} + }; +} +function createFormatContext( + insertionMode, + selectedValue, + tagScope, + viewTransition +) { + return { + insertionMode: insertionMode, + selectedValue: selectedValue, + tagScope: tagScope, + viewTransition: viewTransition + }; +} +function getChildFormatContext(parentContext, type, props) { + var subtreeScope = parentContext.tagScope & -25; + switch (type) { + case "noscript": + return createFormatContext(2, null, subtreeScope | 1, null); + case "select": + return createFormatContext( + 2, + null != props.value ? props.value : props.defaultValue, + subtreeScope, + null + ); + case "svg": + return createFormatContext(4, null, subtreeScope, null); + case "picture": + return createFormatContext(2, null, subtreeScope | 2, null); + case "math": + return createFormatContext(5, null, subtreeScope, null); + case "foreignObject": + return createFormatContext(2, null, subtreeScope, null); + case "table": + return createFormatContext(6, null, subtreeScope, null); + case "thead": + case "tbody": + case "tfoot": + return createFormatContext(7, null, subtreeScope, null); + case "colgroup": + return createFormatContext(9, null, subtreeScope, null); + case "tr": + return createFormatContext(8, null, subtreeScope, null); + case "head": + if (2 > parentContext.insertionMode) + return createFormatContext(3, null, subtreeScope, null); + break; + case "html": + if (0 === parentContext.insertionMode) + return createFormatContext(1, null, subtreeScope, null); + } + return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode + ? createFormatContext(2, null, subtreeScope, null) + : parentContext.tagScope !== subtreeScope + ? createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + null + ) + : parentContext; +} +function getSuspenseViewTransition(parentViewTransition) { + return null === parentViewTransition + ? null + : { + update: parentViewTransition.update, + enter: "none", + exit: "none", + share: parentViewTransition.update, + name: parentViewTransition.autoName, + autoName: parentViewTransition.autoName, + nameIdx: 0 + }; +} +function getSuspenseFallbackFormatContext(resumableState, parentContext) { + parentContext.tagScope & 32 && (resumableState.instructions |= 128); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + parentContext.tagScope | 12, + getSuspenseViewTransition(parentContext.viewTransition) + ); +} +function getSuspenseContentFormatContext(resumableState, parentContext) { + resumableState = getSuspenseViewTransition(parentContext.viewTransition); + var subtreeScope = parentContext.tagScope | 16; + null !== resumableState && + "none" !== resumableState.share && + (subtreeScope |= 64); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + resumableState + ); +} +var styleNameCache = new Map(); +function pushStyleAttribute(target, style) { + if ("object" !== typeof style) + throw Error( + "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX." + ); + var isFirst = !0, + styleName; + for (styleName in style) + if (hasOwnProperty.call(style, styleName)) { + var styleValue = style[styleName]; + if ( + null != styleValue && + "boolean" !== typeof styleValue && + "" !== styleValue + ) { + if (0 === styleName.indexOf("--")) { + var nameChunk = escapeTextForBrowser(styleName); + styleValue = escapeTextForBrowser(("" + styleValue).trim()); + } else + (nameChunk = styleNameCache.get(styleName)), + void 0 === nameChunk && + ((nameChunk = escapeTextForBrowser( + styleName + .replace(uppercasePattern, "-$1") + .toLowerCase() + .replace(msPattern, "-ms-") + )), + styleNameCache.set(styleName, nameChunk)), + (styleValue = + "number" === typeof styleValue + ? 0 === styleValue || unitlessNumbers.has(styleName) + ? "" + styleValue + : styleValue + "px" + : escapeTextForBrowser(("" + styleValue).trim())); + isFirst + ? ((isFirst = !1), + target.push(' style="', nameChunk, ":", styleValue)) + : target.push(";", nameChunk, ":", styleValue); + } + } + isFirst || target.push('"'); +} +function pushBooleanAttribute(target, name, value) { + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '=""'); +} +function pushStringAttribute(target, name, value) { + "function" !== typeof value && + "symbol" !== typeof value && + "boolean" !== typeof value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); +} +var actionJavaScriptURL = escapeTextForBrowser( + "javascript:throw new Error('React form unexpectedly submitted.')" +); +function pushAdditionalFormField(value, key) { + this.push('<input type="hidden"'); + validateAdditionalFormField(value); + pushStringAttribute(this, "name", key); + pushStringAttribute(this, "value", value); + this.push("/>"); +} +function validateAdditionalFormField(value) { + if ("string" !== typeof value) + throw Error( + "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration." + ); +} +function getCustomFormFields(resumableState, formAction) { + if ("function" === typeof formAction.$$FORM_ACTION) { + var id = resumableState.nextFormID++; + resumableState = resumableState.idPrefix + id; + try { + var customFields = formAction.$$FORM_ACTION(resumableState); + if (customFields) { + var formData = customFields.data; + null != formData && formData.forEach(validateAdditionalFormField); + } + return customFields; + } catch (x) { + if ("object" === typeof x && null !== x && "function" === typeof x.then) + throw x; + } + } + return null; +} +function pushFormActionAttribute( + target, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name +) { + var formData = null; + if ("function" === typeof formAction) { + var customFields = getCustomFormFields(resumableState, formAction); + null !== customFields + ? ((name = customFields.name), + (formAction = customFields.action || ""), + (formEncType = customFields.encType), + (formMethod = customFields.method), + (formTarget = customFields.target), + (formData = customFields.data)) + : (target.push(" ", "formAction", '="', actionJavaScriptURL, '"'), + (formTarget = formMethod = formEncType = formAction = name = null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != name && pushAttribute(target, "name", name); + null != formAction && pushAttribute(target, "formAction", formAction); + null != formEncType && pushAttribute(target, "formEncType", formEncType); + null != formMethod && pushAttribute(target, "formMethod", formMethod); + null != formTarget && pushAttribute(target, "formTarget", formTarget); + return formData; +} +function pushAttribute(target, name, value) { + switch (name) { + case "className": + pushStringAttribute(target, "class", value); + break; + case "tabIndex": + pushStringAttribute(target, "tabindex", value); + break; + case "dir": + case "role": + case "viewBox": + case "width": + case "height": + pushStringAttribute(target, name, value); + break; + case "style": + pushStyleAttribute(target, value); + break; + case "src": + case "href": + if ("" === value) break; + case "action": + case "formAction": + if ( + null == value || + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "defaultValue": + case "defaultChecked": + case "innerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "autoFocus": + case "multiple": + case "muted": + pushBooleanAttribute(target, name.toLowerCase(), value); + break; + case "xlinkHref": + if ( + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push(" ", "xlink:href", '="', escapeTextForBrowser(value), '"'); + break; + case "contentEditable": + case "spellCheck": + case "draggable": + case "value": + case "autoReverse": + case "externalResourcesRequired": + case "focusable": + case "preserveAlpha": + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "inert": + case "allowFullScreen": + case "async": + case "autoPlay": + case "controls": + case "default": + case "defer": + case "disabled": + case "disablePictureInPicture": + case "disableRemotePlayback": + case "formNoValidate": + case "hidden": + case "loop": + case "noModule": + case "noValidate": + case "open": + case "playsInline": + case "readOnly": + case "required": + case "reversed": + case "scoped": + case "seamless": + case "itemScope": + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '=""'); + break; + case "capture": + case "download": + !0 === value + ? target.push(" ", name, '=""') + : !1 !== value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "cols": + case "rows": + case "size": + case "span": + "function" !== typeof value && + "symbol" !== typeof value && + !isNaN(value) && + 1 <= value && + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "rowSpan": + case "start": + "function" === typeof value || + "symbol" === typeof value || + isNaN(value) || + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + break; + case "xlinkActuate": + pushStringAttribute(target, "xlink:actuate", value); + break; + case "xlinkArcrole": + pushStringAttribute(target, "xlink:arcrole", value); + break; + case "xlinkRole": + pushStringAttribute(target, "xlink:role", value); + break; + case "xlinkShow": + pushStringAttribute(target, "xlink:show", value); + break; + case "xlinkTitle": + pushStringAttribute(target, "xlink:title", value); + break; + case "xlinkType": + pushStringAttribute(target, "xlink:type", value); + break; + case "xmlBase": + pushStringAttribute(target, "xml:base", value); + break; + case "xmlLang": + pushStringAttribute(target, "xml:lang", value); + break; + case "xmlSpace": + pushStringAttribute(target, "xml:space", value); + break; + default: + if ( + !(2 < name.length) || + ("o" !== name[0] && "O" !== name[0]) || + ("n" !== name[1] && "N" !== name[1]) + ) + if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) { + switch (typeof value) { + case "function": + case "symbol": + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) return; + } + target.push(" ", name, '="', escapeTextForBrowser(value), '"'); + } + } +} +function pushInnerHTML(target, innerHTML, children) { + if (null != innerHTML) { + if (null != children) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ("object" !== typeof innerHTML || !("__html" in innerHTML)) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + innerHTML = innerHTML.__html; + null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML); + } +} +function flattenOptionChildren(children) { + var content = ""; + React.Children.forEach(children, function (child) { + null != child && (content += child); + }); + return content; +} +function injectFormReplayingRuntime(resumableState, renderState) { + if (0 === (resumableState.instructions & 16)) { + resumableState.instructions |= 16; + var preamble = renderState.preamble, + bootstrapChunks = renderState.bootstrapChunks; + (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length + ? (bootstrapChunks.push(renderState.startInlineScript), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + ">", + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});', + "\x3c/script>" + )) + : bootstrapChunks.unshift( + renderState.startInlineScript, + ">", + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});', + "\x3c/script>" + ); + } +} +function pushLinkImpl(target, props) { + target.push(startChunkForTag("link")); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push("/>"); + return null; +} +var styleRegex = /(<\/|<)(s)(tyle)/gi; +function styleReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix; +} +function pushSelfClosing(target, props, tag) { + target.push(startChunkForTag(tag)); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + tag + + " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push("/>"); + return null; +} +function pushTitleImpl(target, props) { + target.push(startChunkForTag("title")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + props = Array.isArray(children) + ? 2 > children.length + ? children[0] + : null + : children; + "function" !== typeof props && + "symbol" !== typeof props && + null !== props && + void 0 !== props && + target.push(escapeTextForBrowser("" + props)); + pushInnerHTML(target, innerHTML, children); + target.push(endChunkForTag("title")); + return null; +} +function pushScriptImpl(target, props) { + target.push(startChunkForTag("script")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, children); + "string" === typeof children && + target.push(("" + children).replace(scriptRegex, scriptReplacer)); + target.push(endChunkForTag("script")); + return null; +} +function pushStartSingletonElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, tag); + return tag; +} +function pushStartGenericElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(">"); + pushInnerHTML(target, innerHTML, tag); + return "string" === typeof tag + ? (target.push(escapeTextForBrowser(tag)), null) + : tag; +} +var VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, + validatedTagCache = new Map(); +function startChunkForTag(tag) { + var tagStartChunk = validatedTagCache.get(tag); + if (void 0 === tagStartChunk) { + if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag); + tagStartChunk = "<" + tag; + validatedTagCache.set(tag, tagStartChunk); + } + return tagStartChunk; +} +function pushStartInstance( + target$jscomp$0, + type, + props, + resumableState, + renderState, + preambleState, + hoistableState, + formatContext, + textEmbedded +) { + switch (type) { + case "div": + case "span": + case "svg": + case "path": + break; + case "a": + target$jscomp$0.push(startChunkForTag("a")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + case "href": + "" === propValue + ? pushStringAttribute(target$jscomp$0, "href", "") + : pushAttribute(target$jscomp$0, propKey, propValue); + break; + default: + pushAttribute(target$jscomp$0, propKey, propValue); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML, children); + if ("string" === typeof children) { + target$jscomp$0.push(escapeTextForBrowser(children)); + var JSCompiler_inline_result = null; + } else JSCompiler_inline_result = children; + return JSCompiler_inline_result; + case "g": + case "p": + case "li": + break; + case "select": + target$jscomp$0.push(startChunkForTag("select")); + var children$jscomp$0 = null, + innerHTML$jscomp$0 = null, + propKey$jscomp$0; + for (propKey$jscomp$0 in props) + if (hasOwnProperty.call(props, propKey$jscomp$0)) { + var propValue$jscomp$0 = props[propKey$jscomp$0]; + if (null != propValue$jscomp$0) + switch (propKey$jscomp$0) { + case "children": + children$jscomp$0 = propValue$jscomp$0; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$0 = propValue$jscomp$0; + break; + case "defaultValue": + case "value": + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$0, + propValue$jscomp$0 + ); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); + return children$jscomp$0; + case "option": + var selectedValue = formatContext.selectedValue; + target$jscomp$0.push(startChunkForTag("option")); + var children$jscomp$1 = null, + value = null, + selected = null, + innerHTML$jscomp$1 = null, + propKey$jscomp$1; + for (propKey$jscomp$1 in props) + if (hasOwnProperty.call(props, propKey$jscomp$1)) { + var propValue$jscomp$1 = props[propKey$jscomp$1]; + if (null != propValue$jscomp$1) + switch (propKey$jscomp$1) { + case "children": + children$jscomp$1 = propValue$jscomp$1; + break; + case "selected": + selected = propValue$jscomp$1; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$1 = propValue$jscomp$1; + break; + case "value": + value = propValue$jscomp$1; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$1, + propValue$jscomp$1 + ); + } + } + if (null != selectedValue) { + var stringValue = + null !== value + ? "" + value + : flattenOptionChildren(children$jscomp$1); + if (isArrayImpl(selectedValue)) + for (var i = 0; i < selectedValue.length; i++) { + if ("" + selectedValue[i] === stringValue) { + target$jscomp$0.push(' selected=""'); + break; + } + } + else + "" + selectedValue === stringValue && + target$jscomp$0.push(' selected=""'); + } else selected && target$jscomp$0.push(' selected=""'); + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1); + return children$jscomp$1; + case "textarea": + target$jscomp$0.push(startChunkForTag("textarea")); + var value$jscomp$0 = null, + defaultValue = null, + children$jscomp$2 = null, + propKey$jscomp$2; + for (propKey$jscomp$2 in props) + if (hasOwnProperty.call(props, propKey$jscomp$2)) { + var propValue$jscomp$2 = props[propKey$jscomp$2]; + if (null != propValue$jscomp$2) + switch (propKey$jscomp$2) { + case "children": + children$jscomp$2 = propValue$jscomp$2; + break; + case "value": + value$jscomp$0 = propValue$jscomp$2; + break; + case "defaultValue": + defaultValue = propValue$jscomp$2; + break; + case "dangerouslySetInnerHTML": + throw Error( + "`dangerouslySetInnerHTML` does not make sense on <textarea>." + ); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$2, + propValue$jscomp$2 + ); + } + } + null === value$jscomp$0 && + null !== defaultValue && + (value$jscomp$0 = defaultValue); + target$jscomp$0.push(">"); + if (null != children$jscomp$2) { + if (null != value$jscomp$0) + throw Error( + "If you supply `defaultValue` on a <textarea>, do not pass children." + ); + if (isArrayImpl(children$jscomp$2)) { + if (1 < children$jscomp$2.length) + throw Error("<textarea> can only have at most one child."); + value$jscomp$0 = "" + children$jscomp$2[0]; + } + value$jscomp$0 = "" + children$jscomp$2; + } + "string" === typeof value$jscomp$0 && + "\n" === value$jscomp$0[0] && + target$jscomp$0.push("\n"); + null !== value$jscomp$0 && + target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)); + return null; + case "input": + target$jscomp$0.push(startChunkForTag("input")); + var name = null, + formAction = null, + formEncType = null, + formMethod = null, + formTarget = null, + value$jscomp$1 = null, + defaultValue$jscomp$0 = null, + checked = null, + defaultChecked = null, + propKey$jscomp$3; + for (propKey$jscomp$3 in props) + if (hasOwnProperty.call(props, propKey$jscomp$3)) { + var propValue$jscomp$3 = props[propKey$jscomp$3]; + if (null != propValue$jscomp$3) + switch (propKey$jscomp$3) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + case "name": + name = propValue$jscomp$3; + break; + case "formAction": + formAction = propValue$jscomp$3; + break; + case "formEncType": + formEncType = propValue$jscomp$3; + break; + case "formMethod": + formMethod = propValue$jscomp$3; + break; + case "formTarget": + formTarget = propValue$jscomp$3; + break; + case "defaultChecked": + defaultChecked = propValue$jscomp$3; + break; + case "defaultValue": + defaultValue$jscomp$0 = propValue$jscomp$3; + break; + case "checked": + checked = propValue$jscomp$3; + break; + case "value": + value$jscomp$1 = propValue$jscomp$3; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$3, + propValue$jscomp$3 + ); + } + } + var formData = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name + ); + null !== checked + ? pushBooleanAttribute(target$jscomp$0, "checked", checked) + : null !== defaultChecked && + pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked); + null !== value$jscomp$1 + ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) + : null !== defaultValue$jscomp$0 && + pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + target$jscomp$0.push("/>"); + null != formData && + formData.forEach(pushAdditionalFormField, target$jscomp$0); + return null; + case "button": + target$jscomp$0.push(startChunkForTag("button")); + var children$jscomp$3 = null, + innerHTML$jscomp$2 = null, + name$jscomp$0 = null, + formAction$jscomp$0 = null, + formEncType$jscomp$0 = null, + formMethod$jscomp$0 = null, + formTarget$jscomp$0 = null, + propKey$jscomp$4; + for (propKey$jscomp$4 in props) + if (hasOwnProperty.call(props, propKey$jscomp$4)) { + var propValue$jscomp$4 = props[propKey$jscomp$4]; + if (null != propValue$jscomp$4) + switch (propKey$jscomp$4) { + case "children": + children$jscomp$3 = propValue$jscomp$4; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$2 = propValue$jscomp$4; + break; + case "name": + name$jscomp$0 = propValue$jscomp$4; + break; + case "formAction": + formAction$jscomp$0 = propValue$jscomp$4; + break; + case "formEncType": + formEncType$jscomp$0 = propValue$jscomp$4; + break; + case "formMethod": + formMethod$jscomp$0 = propValue$jscomp$4; + break; + case "formTarget": + formTarget$jscomp$0 = propValue$jscomp$4; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$4, + propValue$jscomp$4 + ); + } + } + var formData$jscomp$0 = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction$jscomp$0, + formEncType$jscomp$0, + formMethod$jscomp$0, + formTarget$jscomp$0, + name$jscomp$0 + ); + target$jscomp$0.push(">"); + null != formData$jscomp$0 && + formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3); + if ("string" === typeof children$jscomp$3) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3)); + var JSCompiler_inline_result$jscomp$0 = null; + } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3; + return JSCompiler_inline_result$jscomp$0; + case "form": + target$jscomp$0.push(startChunkForTag("form")); + var children$jscomp$4 = null, + innerHTML$jscomp$3 = null, + formAction$jscomp$1 = null, + formEncType$jscomp$1 = null, + formMethod$jscomp$1 = null, + formTarget$jscomp$1 = null, + propKey$jscomp$5; + for (propKey$jscomp$5 in props) + if (hasOwnProperty.call(props, propKey$jscomp$5)) { + var propValue$jscomp$5 = props[propKey$jscomp$5]; + if (null != propValue$jscomp$5) + switch (propKey$jscomp$5) { + case "children": + children$jscomp$4 = propValue$jscomp$5; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$3 = propValue$jscomp$5; + break; + case "action": + formAction$jscomp$1 = propValue$jscomp$5; + break; + case "encType": + formEncType$jscomp$1 = propValue$jscomp$5; + break; + case "method": + formMethod$jscomp$1 = propValue$jscomp$5; + break; + case "target": + formTarget$jscomp$1 = propValue$jscomp$5; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$5, + propValue$jscomp$5 + ); + } + } + var formData$jscomp$1 = null, + formActionName = null; + if ("function" === typeof formAction$jscomp$1) { + var customFields = getCustomFormFields( + resumableState, + formAction$jscomp$1 + ); + null !== customFields + ? ((formAction$jscomp$1 = customFields.action || ""), + (formEncType$jscomp$1 = customFields.encType), + (formMethod$jscomp$1 = customFields.method), + (formTarget$jscomp$1 = customFields.target), + (formData$jscomp$1 = customFields.data), + (formActionName = customFields.name)) + : (target$jscomp$0.push( + " ", + "action", + '="', + actionJavaScriptURL, + '"' + ), + (formTarget$jscomp$1 = + formMethod$jscomp$1 = + formEncType$jscomp$1 = + formAction$jscomp$1 = + null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != formAction$jscomp$1 && + pushAttribute(target$jscomp$0, "action", formAction$jscomp$1); + null != formEncType$jscomp$1 && + pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1); + null != formMethod$jscomp$1 && + pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); + null != formTarget$jscomp$1 && + pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + target$jscomp$0.push(">"); + null !== formActionName && + (target$jscomp$0.push('<input type="hidden"'), + pushStringAttribute(target$jscomp$0, "name", formActionName), + target$jscomp$0.push("/>"), + null != formData$jscomp$1 && + formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4); + if ("string" === typeof children$jscomp$4) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4)); + var JSCompiler_inline_result$jscomp$1 = null; + } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4; + return JSCompiler_inline_result$jscomp$1; + case "menuitem": + target$jscomp$0.push(startChunkForTag("menuitem")); + for (var propKey$jscomp$6 in props) + if (hasOwnProperty.call(props, propKey$jscomp$6)) { + var propValue$jscomp$6 = props[propKey$jscomp$6]; + if (null != propValue$jscomp$6) + switch (propKey$jscomp$6) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "menuitems cannot have `children` nor `dangerouslySetInnerHTML`." + ); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$6, + propValue$jscomp$6 + ); + } + } + target$jscomp$0.push(">"); + return null; + case "object": + target$jscomp$0.push(startChunkForTag("object")); + var children$jscomp$5 = null, + innerHTML$jscomp$4 = null, + propKey$jscomp$7; + for (propKey$jscomp$7 in props) + if (hasOwnProperty.call(props, propKey$jscomp$7)) { + var propValue$jscomp$7 = props[propKey$jscomp$7]; + if (null != propValue$jscomp$7) + switch (propKey$jscomp$7) { + case "children": + children$jscomp$5 = propValue$jscomp$7; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$4 = propValue$jscomp$7; + break; + case "data": + var sanitizedValue = sanitizeURL("" + propValue$jscomp$7); + if ("" === sanitizedValue) break; + target$jscomp$0.push( + " ", + "data", + '="', + escapeTextForBrowser(sanitizedValue), + '"' + ); + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$7, + propValue$jscomp$7 + ); + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5); + if ("string" === typeof children$jscomp$5) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5)); + var JSCompiler_inline_result$jscomp$2 = null; + } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5; + return JSCompiler_inline_result$jscomp$2; + case "title": + var noscriptTagInScope = formatContext.tagScope & 1, + isFallback = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$3 = pushTitleImpl( + target$jscomp$0, + props + ); + else + isFallback + ? (JSCompiler_inline_result$jscomp$3 = null) + : (pushTitleImpl(renderState.hoistableChunks, props), + (JSCompiler_inline_result$jscomp$3 = void 0)); + return JSCompiler_inline_result$jscomp$3; + case "link": + var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1, + isFallback$jscomp$0 = formatContext.tagScope & 4, + rel = props.rel, + href = props.href, + precedence = props.precedence; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$0 || + null != props.itemProp || + "string" !== typeof rel || + "string" !== typeof href || + "" === href + ) { + pushLinkImpl(target$jscomp$0, props); + var JSCompiler_inline_result$jscomp$4 = null; + } else if ("stylesheet" === props.rel) + if ( + "string" !== typeof precedence || + null != props.disabled || + props.onLoad || + props.onError + ) + JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + ); + else { + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + if (null !== resourceState) { + resumableState.styleResources[href] = null; + styleQueue || + ((styleQueue = { + precedence: escapeTextForBrowser(precedence), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)); + var resource = { + state: 0, + props: assign({}, props, { + "data-precedence": props.precedence, + precedence: null + }) + }; + if (resourceState) { + 2 === resourceState.length && + adoptPreloadCredentials(resource.props, resourceState); + var preloadResource = renderState.preloads.stylesheets.get(href); + preloadResource && 0 < preloadResource.length + ? (preloadResource.length = 0) + : (resource.state = 1); + } + styleQueue.sheets.set(href, resource); + hoistableState && hoistableState.stylesheets.add(resource); + } else if (styleQueue) { + var resource$9 = styleQueue.sheets.get(href); + resource$9 && + hoistableState && + hoistableState.stylesheets.add(resource$9); + } + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"); + JSCompiler_inline_result$jscomp$4 = null; + } + else + props.onLoad || props.onError + ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + )) + : (textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"), + (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0 + ? null + : pushLinkImpl(renderState.hoistableChunks, props))); + return JSCompiler_inline_result$jscomp$4; + case "script": + var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1, + asyncProp = props.async; + if ( + "string" !== typeof props.src || + !props.src || + !asyncProp || + "function" === typeof asyncProp || + "symbol" === typeof asyncProp || + props.onLoad || + props.onError || + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$1 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$5 = pushScriptImpl( + target$jscomp$0, + props + ); + else { + var key = props.src; + if ("module" === props.type) { + var resources = resumableState.moduleScriptResources; + var preloads = renderState.preloads.moduleScripts; + } else + (resources = resumableState.scriptResources), + (preloads = renderState.preloads.scripts); + var resourceState$jscomp$0 = resources.hasOwnProperty(key) + ? resources[key] + : void 0; + if (null !== resourceState$jscomp$0) { + resources[key] = null; + var scriptProps = props; + if (resourceState$jscomp$0) { + 2 === resourceState$jscomp$0.length && + ((scriptProps = assign({}, props)), + adoptPreloadCredentials(scriptProps, resourceState$jscomp$0)); + var preloadResource$jscomp$0 = preloads.get(key); + preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0); + } + var resource$jscomp$0 = []; + renderState.scripts.add(resource$jscomp$0); + pushScriptImpl(resource$jscomp$0, scriptProps); + } + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"); + JSCompiler_inline_result$jscomp$5 = null; + } + return JSCompiler_inline_result$jscomp$5; + case "style": + var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1, + precedence$jscomp$0 = props.precedence, + href$jscomp$0 = props.href, + nonce = props.nonce; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$2 || + null != props.itemProp || + "string" !== typeof precedence$jscomp$0 || + "string" !== typeof href$jscomp$0 || + "" === href$jscomp$0 + ) { + target$jscomp$0.push(startChunkForTag("style")); + var children$jscomp$6 = null, + innerHTML$jscomp$5 = null, + propKey$jscomp$8; + for (propKey$jscomp$8 in props) + if (hasOwnProperty.call(props, propKey$jscomp$8)) { + var propValue$jscomp$8 = props[propKey$jscomp$8]; + if (null != propValue$jscomp$8) + switch (propKey$jscomp$8) { + case "children": + children$jscomp$6 = propValue$jscomp$8; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$5 = propValue$jscomp$8; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$8, + propValue$jscomp$8 + ); + } + } + target$jscomp$0.push(">"); + var child = Array.isArray(children$jscomp$6) + ? 2 > children$jscomp$6.length + ? children$jscomp$6[0] + : null + : children$jscomp$6; + "function" !== typeof child && + "symbol" !== typeof child && + null !== child && + void 0 !== child && + target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6); + target$jscomp$0.push(endChunkForTag("style")); + var JSCompiler_inline_result$jscomp$6 = null; + } else { + var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0); + if ( + null !== + (resumableState.styleResources.hasOwnProperty(href$jscomp$0) + ? resumableState.styleResources[href$jscomp$0] + : void 0) + ) { + resumableState.styleResources[href$jscomp$0] = null; + styleQueue$jscomp$0 || + ((styleQueue$jscomp$0 = { + precedence: escapeTextForBrowser(precedence$jscomp$0), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0)); + var nonceStyle = renderState.nonce.style; + if (!nonceStyle || nonceStyle === nonce) { + styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0)); + var target = styleQueue$jscomp$0.rules, + children$jscomp$7 = null, + innerHTML$jscomp$6 = null, + propKey$jscomp$9; + for (propKey$jscomp$9 in props) + if (hasOwnProperty.call(props, propKey$jscomp$9)) { + var propValue$jscomp$9 = props[propKey$jscomp$9]; + if (null != propValue$jscomp$9) + switch (propKey$jscomp$9) { + case "children": + children$jscomp$7 = propValue$jscomp$9; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$6 = propValue$jscomp$9; + } + } + var child$jscomp$0 = Array.isArray(children$jscomp$7) + ? 2 > children$jscomp$7.length + ? children$jscomp$7[0] + : null + : children$jscomp$7; + "function" !== typeof child$jscomp$0 && + "symbol" !== typeof child$jscomp$0 && + null !== child$jscomp$0 && + void 0 !== child$jscomp$0 && + target.push( + ("" + child$jscomp$0).replace(styleRegex, styleReplacer) + ); + pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7); + } + } + styleQueue$jscomp$0 && + hoistableState && + hoistableState.styles.add(styleQueue$jscomp$0); + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"); + JSCompiler_inline_result$jscomp$6 = void 0; + } + return JSCompiler_inline_result$jscomp$6; + case "meta": + var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1, + isFallback$jscomp$1 = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$3 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$7 = pushSelfClosing( + target$jscomp$0, + props, + "meta" + ); + else + textEmbedded && target$jscomp$0.push("\x3c!-- --\x3e"), + (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 + ? null + : "string" === typeof props.charSet + ? pushSelfClosing(renderState.charsetChunks, props, "meta") + : "viewport" === props.name + ? pushSelfClosing(renderState.viewportChunks, props, "meta") + : pushSelfClosing(renderState.hoistableChunks, props, "meta")); + return JSCompiler_inline_result$jscomp$7; + case "listing": + case "pre": + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$8 = null, + innerHTML$jscomp$7 = null, + propKey$jscomp$10; + for (propKey$jscomp$10 in props) + if (hasOwnProperty.call(props, propKey$jscomp$10)) { + var propValue$jscomp$10 = props[propKey$jscomp$10]; + if (null != propValue$jscomp$10) + switch (propKey$jscomp$10) { + case "children": + children$jscomp$8 = propValue$jscomp$10; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$7 = propValue$jscomp$10; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$10, + propValue$jscomp$10 + ); + } + } + target$jscomp$0.push(">"); + if (null != innerHTML$jscomp$7) { + if (null != children$jscomp$8) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ( + "object" !== typeof innerHTML$jscomp$7 || + !("__html" in innerHTML$jscomp$7) + ) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + var html = innerHTML$jscomp$7.__html; + null !== html && + void 0 !== html && + ("string" === typeof html && 0 < html.length && "\n" === html[0] + ? target$jscomp$0.push("\n", html) + : target$jscomp$0.push("" + html)); + } + "string" === typeof children$jscomp$8 && + "\n" === children$jscomp$8[0] && + target$jscomp$0.push("\n"); + return children$jscomp$8; + case "img": + var pictureOrNoScriptTagInScope = formatContext.tagScope & 3, + src = props.src, + srcSet = props.srcSet; + if ( + !( + "lazy" === props.loading || + (!src && !srcSet) || + ("string" !== typeof src && null != src) || + ("string" !== typeof srcSet && null != srcSet) || + "low" === props.fetchPriority || + pictureOrNoScriptTagInScope + ) && + ("string" !== typeof src || + ":" !== src[4] || + ("d" !== src[0] && "D" !== src[0]) || + ("a" !== src[1] && "A" !== src[1]) || + ("t" !== src[2] && "T" !== src[2]) || + ("a" !== src[3] && "A" !== src[3])) && + ("string" !== typeof srcSet || + ":" !== srcSet[4] || + ("d" !== srcSet[0] && "D" !== srcSet[0]) || + ("a" !== srcSet[1] && "A" !== srcSet[1]) || + ("t" !== srcSet[2] && "T" !== srcSet[2]) || + ("a" !== srcSet[3] && "A" !== srcSet[3])) + ) { + null !== hoistableState && + formatContext.tagScope & 64 && + (hoistableState.suspenseyImages = !0); + var sizes = "string" === typeof props.sizes ? props.sizes : void 0, + key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src, + promotablePreloads = renderState.preloads.images, + resource$jscomp$1 = promotablePreloads.get(key$jscomp$0); + if (resource$jscomp$1) { + if ( + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ) + promotablePreloads.delete(key$jscomp$0), + renderState.highImagePreloads.add(resource$jscomp$1); + } else if ( + !resumableState.imageResources.hasOwnProperty(key$jscomp$0) + ) { + resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS; + var input = props.crossOrigin; + var JSCompiler_inline_result$jscomp$8 = + "string" === typeof input + ? "use-credentials" === input + ? input + : "" + : void 0; + var headers = renderState.headers, + header; + headers && + 0 < headers.remainingCapacity && + "string" !== typeof props.srcSet && + ("high" === props.fetchPriority || + 500 > headers.highImagePreloads.length) && + ((header = getPreloadAsHeader(src, "image", { + imageSrcSet: props.srcSet, + imageSizes: props.sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + nonce: props.nonce, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.refererPolicy + })), + 0 <= (headers.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS), + headers.highImagePreloads && (headers.highImagePreloads += ", "), + (headers.highImagePreloads += header)) + : ((resource$jscomp$1 = []), + pushLinkImpl(resource$jscomp$1, { + rel: "preload", + as: "image", + href: srcSet ? void 0 : src, + imageSrcSet: srcSet, + imageSizes: sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.referrerPolicy + }), + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ? renderState.highImagePreloads.add(resource$jscomp$1) + : (renderState.bulkPreloads.add(resource$jscomp$1), + promotablePreloads.set(key$jscomp$0, resource$jscomp$1))); + } + } + return pushSelfClosing(target$jscomp$0, props, "img"); + case "base": + case "area": + case "br": + case "col": + case "embed": + case "hr": + case "keygen": + case "param": + case "source": + case "track": + case "wbr": + return pushSelfClosing(target$jscomp$0, props, type); + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + break; + case "head": + if (2 > formatContext.insertionMode) { + var preamble = preambleState || renderState.preamble; + if (preamble.headChunks) + throw Error("The `<head>` tag may only be rendered once."); + null !== preambleState && target$jscomp$0.push("\x3c!--head--\x3e"); + preamble.headChunks = []; + var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement( + preamble.headChunks, + props, + "head" + ); + } else + JSCompiler_inline_result$jscomp$9 = pushStartGenericElement( + target$jscomp$0, + props, + "head" + ); + return JSCompiler_inline_result$jscomp$9; + case "body": + if (2 > formatContext.insertionMode) { + var preamble$jscomp$0 = preambleState || renderState.preamble; + if (preamble$jscomp$0.bodyChunks) + throw Error("The `<body>` tag may only be rendered once."); + null !== preambleState && target$jscomp$0.push("\x3c!--body--\x3e"); + preamble$jscomp$0.bodyChunks = []; + var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement( + preamble$jscomp$0.bodyChunks, + props, + "body" + ); + } else + JSCompiler_inline_result$jscomp$10 = pushStartGenericElement( + target$jscomp$0, + props, + "body" + ); + return JSCompiler_inline_result$jscomp$10; + case "html": + if (0 === formatContext.insertionMode) { + var preamble$jscomp$1 = preambleState || renderState.preamble; + if (preamble$jscomp$1.htmlChunks) + throw Error("The `<html>` tag may only be rendered once."); + null !== preambleState && target$jscomp$0.push("\x3c!--html--\x3e"); + preamble$jscomp$1.htmlChunks = [""]; + var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement( + preamble$jscomp$1.htmlChunks, + props, + "html" + ); + } else + JSCompiler_inline_result$jscomp$11 = pushStartGenericElement( + target$jscomp$0, + props, + "html" + ); + return JSCompiler_inline_result$jscomp$11; + default: + if (-1 !== type.indexOf("-")) { + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$9 = null, + innerHTML$jscomp$8 = null, + propKey$jscomp$11; + for (propKey$jscomp$11 in props) + if (hasOwnProperty.call(props, propKey$jscomp$11)) { + var propValue$jscomp$11 = props[propKey$jscomp$11]; + if (null != propValue$jscomp$11) { + var attributeName = propKey$jscomp$11; + switch (propKey$jscomp$11) { + case "children": + children$jscomp$9 = propValue$jscomp$11; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$8 = propValue$jscomp$11; + break; + case "style": + pushStyleAttribute(target$jscomp$0, propValue$jscomp$11); + break; + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "className": + attributeName = "class"; + default: + if ( + isAttributeNameSafe(propKey$jscomp$11) && + "function" !== typeof propValue$jscomp$11 && + "symbol" !== typeof propValue$jscomp$11 && + !1 !== propValue$jscomp$11 + ) { + if (!0 === propValue$jscomp$11) propValue$jscomp$11 = ""; + else if ("object" === typeof propValue$jscomp$11) continue; + target$jscomp$0.push( + " ", + attributeName, + '="', + escapeTextForBrowser(propValue$jscomp$11), + '"' + ); + } + } + } + } + target$jscomp$0.push(">"); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9); + return children$jscomp$9; + } + } + return pushStartGenericElement(target$jscomp$0, props, type); +} +var endTagCache = new Map(); +function endChunkForTag(tag) { + var chunk = endTagCache.get(tag); + void 0 === chunk && ((chunk = "</" + tag + ">"), endTagCache.set(tag, chunk)); + return chunk; +} +function hoistPreambleState(renderState, preambleState) { + renderState = renderState.preamble; + null === renderState.htmlChunks && + preambleState.htmlChunks && + (renderState.htmlChunks = preambleState.htmlChunks); + null === renderState.headChunks && + preambleState.headChunks && + (renderState.headChunks = preambleState.headChunks); + null === renderState.bodyChunks && + preambleState.bodyChunks && + (renderState.bodyChunks = preambleState.bodyChunks); +} +function writeBootstrap(destination, renderState) { + renderState = renderState.bootstrapChunks; + for (var i = 0; i < renderState.length - 1; i++) + destination.push(renderState[i]); + return i < renderState.length + ? ((i = renderState[i]), (renderState.length = 0), destination.push(i)) + : !0; +} +function writeStartPendingSuspenseBoundary(destination, renderState, id) { + destination.push('\x3c!--$?--\x3e<template id="'); + if (null === id) + throw Error( + "An ID must have been assigned before we can complete the boundary." + ); + destination.push(renderState.boundaryPrefix); + renderState = id.toString(16); + destination.push(renderState); + return destination.push('"></template>'); +} +function writeStartSegment(destination, renderState, formatContext, id) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return ( + destination.push('<div hidden id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 4: + return ( + destination.push('<svg aria-hidden="true" style="display:none" id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 5: + return ( + destination.push('<math aria-hidden="true" style="display:none" id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 6: + return ( + destination.push('<table hidden id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 7: + return ( + destination.push('<table hidden><tbody id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 8: + return ( + destination.push('<table hidden><tr id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + case 9: + return ( + destination.push('<table hidden><colgroup id="'), + destination.push(renderState.segmentPrefix), + (renderState = id.toString(16)), + destination.push(renderState), + destination.push('">') + ); + default: + throw Error("Unknown insertion mode. This is a bug in React."); + } +} +function writeEndSegment(destination, formatContext) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return destination.push("</div>"); + case 4: + return destination.push("</svg>"); + case 5: + return destination.push("</math>"); + case 6: + return destination.push("</table>"); + case 7: + return destination.push("</tbody></table>"); + case 8: + return destination.push("</tr></table>"); + case 9: + return destination.push("</colgroup></table>"); + default: + throw Error("Unknown insertion mode. This is a bug in React."); + } +} +var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g; +function escapeJSStringsForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInInstructionScripts, + function (match) { + switch (match) { + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var regexForJSStringsInScripts = /[&><\u2028\u2029]/g; +function escapeJSObjectForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInScripts, + function (match) { + switch (match) { + case "&": + return "\\u0026"; + case ">": + return "\\u003e"; + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var currentlyRenderingBoundaryHasStylesToHoist = !1, + destinationHasCapacity = !0; +function flushStyleTagsLateForBoundary(styleQueue) { + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs, + i = 0; + if (hrefs.length) { + this.push(currentlyFlushingRenderState.startInlineStyle); + this.push(' media="not all" data-precedence="'); + this.push(styleQueue.precedence); + for (this.push('" data-href="'); i < hrefs.length - 1; i++) + this.push(hrefs[i]), this.push(" "); + this.push(hrefs[i]); + this.push('">'); + for (i = 0; i < rules.length; i++) this.push(rules[i]); + destinationHasCapacity = this.push("</style>"); + currentlyRenderingBoundaryHasStylesToHoist = !0; + rules.length = 0; + hrefs.length = 0; + } +} +function hasStylesToHoist(stylesheet) { + return 2 !== stylesheet.state + ? (currentlyRenderingBoundaryHasStylesToHoist = !0) + : !1; +} +function writeHoistablesForBoundary(destination, hoistableState, renderState) { + currentlyRenderingBoundaryHasStylesToHoist = !1; + destinationHasCapacity = !0; + currentlyFlushingRenderState = renderState; + hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination); + currentlyFlushingRenderState = null; + hoistableState.stylesheets.forEach(hasStylesToHoist); + currentlyRenderingBoundaryHasStylesToHoist && + (renderState.stylesToHoist = !0); + return destinationHasCapacity; +} +function flushResource(resource) { + for (var i = 0; i < resource.length; i++) this.push(resource[i]); + resource.length = 0; +} +var stylesheetFlushingQueue = []; +function flushStyleInPreamble(stylesheet) { + pushLinkImpl(stylesheetFlushingQueue, stylesheet.props); + for (var i = 0; i < stylesheetFlushingQueue.length; i++) + this.push(stylesheetFlushingQueue[i]); + stylesheetFlushingQueue.length = 0; + stylesheet.state = 2; +} +function flushStylesInPreamble(styleQueue) { + var hasStylesheets = 0 < styleQueue.sheets.size; + styleQueue.sheets.forEach(flushStyleInPreamble, this); + styleQueue.sheets.clear(); + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs; + if (!hasStylesheets || hrefs.length) { + this.push(currentlyFlushingRenderState.startInlineStyle); + this.push(' data-precedence="'); + this.push(styleQueue.precedence); + styleQueue = 0; + if (hrefs.length) { + for ( + this.push('" data-href="'); + styleQueue < hrefs.length - 1; + styleQueue++ + ) + this.push(hrefs[styleQueue]), this.push(" "); + this.push(hrefs[styleQueue]); + } + this.push('">'); + for (styleQueue = 0; styleQueue < rules.length; styleQueue++) + this.push(rules[styleQueue]); + this.push("</style>"); + rules.length = 0; + hrefs.length = 0; + } +} +function preloadLateStyle(stylesheet) { + if (0 === stylesheet.state) { + stylesheet.state = 1; + var props = stylesheet.props; + pushLinkImpl(stylesheetFlushingQueue, { + rel: "preload", + as: "style", + href: stylesheet.props.href, + crossOrigin: props.crossOrigin, + fetchPriority: props.fetchPriority, + integrity: props.integrity, + media: props.media, + hrefLang: props.hrefLang, + referrerPolicy: props.referrerPolicy + }); + for ( + stylesheet = 0; + stylesheet < stylesheetFlushingQueue.length; + stylesheet++ + ) + this.push(stylesheetFlushingQueue[stylesheet]); + stylesheetFlushingQueue.length = 0; + } +} +function preloadLateStyles(styleQueue) { + styleQueue.sheets.forEach(preloadLateStyle, this); + styleQueue.sheets.clear(); +} +function pushCompletedShellIdAttribute(target, resumableState) { + 0 === (resumableState.instructions & 32) && + ((resumableState.instructions |= 32), + target.push( + ' id="', + escapeTextForBrowser("_" + resumableState.idPrefix + "R_"), + '"' + )); +} +function writeStyleResourceDependenciesInJS(destination, hoistableState) { + destination.push("["); + var nextArrayOpenBrackChunk = "["; + hoistableState.stylesheets.forEach(function (resource) { + if (2 !== resource.state) + if (3 === resource.state) + destination.push(nextArrayOpenBrackChunk), + (resource = escapeJSObjectForInstructionScripts( + "" + resource.props.href + )), + destination.push(resource), + destination.push("]"), + (nextArrayOpenBrackChunk = ",["); + else { + destination.push(nextArrayOpenBrackChunk); + var precedence = resource.props["data-precedence"], + props = resource.props, + coercedHref = sanitizeURL("" + resource.props.href); + coercedHref = escapeJSObjectForInstructionScripts(coercedHref); + destination.push(coercedHref); + precedence = "" + precedence; + destination.push(","); + precedence = escapeJSObjectForInstructionScripts(precedence); + destination.push(precedence); + for (var propKey in props) + if ( + hasOwnProperty.call(props, propKey) && + ((precedence = props[propKey]), null != precedence) + ) + switch (propKey) { + case "href": + case "rel": + case "precedence": + case "data-precedence": + break; + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + writeStyleResourceAttributeInJS( + destination, + propKey, + precedence + ); + } + destination.push("]"); + nextArrayOpenBrackChunk = ",["; + resource.state = 3; + } + }); + destination.push("]"); +} +function writeStyleResourceAttributeInJS(destination, name, value) { + var attributeName = name.toLowerCase(); + switch (typeof value) { + case "function": + case "symbol": + return; + } + switch (name) { + case "innerHTML": + case "dangerouslySetInnerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "style": + case "ref": + return; + case "className": + attributeName = "class"; + name = "" + value; + break; + case "hidden": + if (!1 === value) return; + name = ""; + break; + case "src": + case "href": + value = sanitizeURL(value); + name = "" + value; + break; + default: + if ( + (2 < name.length && + ("o" === name[0] || "O" === name[0]) && + ("n" === name[1] || "N" === name[1])) || + !isAttributeNameSafe(name) + ) + return; + name = "" + value; + } + destination.push(","); + attributeName = escapeJSObjectForInstructionScripts(attributeName); + destination.push(attributeName); + destination.push(","); + attributeName = escapeJSObjectForInstructionScripts(name); + destination.push(attributeName); +} +function createHoistableState() { + return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 }; +} +function prefetchDNS(href) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + if (!resumableState.dnsResources.hasOwnProperty(href)) { + resumableState.dnsResources[href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) + JSCompiler_temp = + ((header = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=dns-prefetch"), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + JSCompiler_temp + ? ((renderState.resets.dns[href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((header = []), + pushLinkImpl(header, { href: href, rel: "dns-prefetch" }), + renderState.preconnects.add(header)); + } + enqueueFlush(request); + } + } else previousDispatcher.D(href); +} +function preconnect(href, crossOrigin) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + var bucket = + "use-credentials" === crossOrigin + ? "credentials" + : "string" === typeof crossOrigin + ? "anonymous" + : "default"; + if (!resumableState.connectResources[bucket].hasOwnProperty(href)) { + resumableState.connectResources[bucket][href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) { + JSCompiler_temp = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=preconnect"; + if ("string" === typeof crossOrigin) { + var escapedCrossOrigin = ("" + crossOrigin).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"'; + } + JSCompiler_temp = + ((header = JSCompiler_temp), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + } + JSCompiler_temp + ? ((renderState.resets.connect[bucket][href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((bucket = []), + pushLinkImpl(bucket, { + rel: "preconnect", + href: href, + crossOrigin: crossOrigin + }), + renderState.preconnects.add(bucket)); + } + enqueueFlush(request); + } + } else previousDispatcher.C(href, crossOrigin); +} +function preload(href, as, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (as && href) { + switch (as) { + case "image": + if (options) { + var imageSrcSet = options.imageSrcSet; + var imageSizes = options.imageSizes; + var fetchPriority = options.fetchPriority; + } + var key = imageSrcSet + ? imageSrcSet + "\n" + (imageSizes || "") + : href; + if (resumableState.imageResources.hasOwnProperty(key)) return; + resumableState.imageResources[key] = PRELOAD_NO_CREDS; + resumableState = renderState.headers; + var header; + resumableState && + 0 < resumableState.remainingCapacity && + "string" !== typeof imageSrcSet && + "high" === fetchPriority && + ((header = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS), + resumableState.highImagePreloads && + (resumableState.highImagePreloads += ", "), + (resumableState.highImagePreloads += header)) + : ((resumableState = []), + pushLinkImpl( + resumableState, + assign( + { rel: "preload", href: imageSrcSet ? void 0 : href, as: as }, + options + ) + ), + "high" === fetchPriority + ? renderState.highImagePreloads.add(resumableState) + : (renderState.bulkPreloads.add(resumableState), + renderState.preloads.images.set(key, resumableState))); + break; + case "style": + if (resumableState.styleResources.hasOwnProperty(href)) return; + imageSrcSet = []; + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.styleResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.stylesheets.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + break; + case "script": + if (resumableState.scriptResources.hasOwnProperty(href)) return; + imageSrcSet = []; + renderState.preloads.scripts.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.scriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + break; + default: + if (resumableState.unknownResources.hasOwnProperty(as)) { + if ( + ((imageSrcSet = resumableState.unknownResources[as]), + imageSrcSet.hasOwnProperty(href)) + ) + return; + } else + (imageSrcSet = {}), + (resumableState.unknownResources[as] = imageSrcSet); + imageSrcSet[href] = PRELOAD_NO_CREDS; + if ( + (resumableState = renderState.headers) && + 0 < resumableState.remainingCapacity && + "font" === as && + ((key = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= key.length + 2)) + ) + (renderState.resets.font[href] = PRELOAD_NO_CREDS), + resumableState.fontPreloads && + (resumableState.fontPreloads += ", "), + (resumableState.fontPreloads += key); + else + switch ( + ((resumableState = []), + (href = assign({ rel: "preload", href: href, as: as }, options)), + pushLinkImpl(resumableState, href), + as) + ) { + case "font": + renderState.fontPreloads.add(resumableState); + break; + default: + renderState.bulkPreloads.add(resumableState); + } + } + enqueueFlush(request); + } + } else previousDispatcher.L(href, as, options); +} +function preloadModule(href, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + var as = + options && "string" === typeof options.as ? options.as : "script"; + switch (as) { + case "script": + if (resumableState.moduleScriptResources.hasOwnProperty(href)) return; + as = []; + resumableState.moduleScriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.moduleScripts.set(href, as); + break; + default: + if (resumableState.moduleUnknownResources.hasOwnProperty(as)) { + var resources = resumableState.unknownResources[as]; + if (resources.hasOwnProperty(href)) return; + } else + (resources = {}), + (resumableState.moduleUnknownResources[as] = resources); + as = []; + resources[href] = PRELOAD_NO_CREDS; + } + pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options)); + renderState.bulkPreloads.add(as); + enqueueFlush(request); + } + } else previousDispatcher.m(href, options); +} +function preinitStyle(href, precedence, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + precedence = precedence || "default"; + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + null !== resourceState && + ((resumableState.styleResources[href] = null), + styleQueue || + ((styleQueue = { + precedence: escapeTextForBrowser(precedence), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)), + (precedence = { + state: 0, + props: assign( + { rel: "stylesheet", href: href, "data-precedence": precedence }, + options + ) + }), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(precedence.props, resourceState), + (renderState = renderState.preloads.stylesheets.get(href)) && + 0 < renderState.length + ? (renderState.length = 0) + : (precedence.state = 1)), + styleQueue.sheets.set(href, precedence), + enqueueFlush(request)); + } + } else previousDispatcher.S(href, precedence, options); +} +function preinitScript(src, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.scriptResources.hasOwnProperty(src) + ? resumableState.scriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.scriptResources[src] = null), + (options = assign({ src: src, async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.scripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.X(src, options); +} +function preinitModuleScript(src, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.moduleScriptResources.hasOwnProperty( + src + ) + ? resumableState.moduleScriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.moduleScriptResources[src] = null), + (options = assign({ src: src, type: "module", async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.moduleScripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.M(src, options); +} +function adoptPreloadCredentials(target, preloadState) { + null == target.crossOrigin && (target.crossOrigin = preloadState[0]); + null == target.integrity && (target.integrity = preloadState[1]); +} +function getPreloadAsHeader(href, as, params) { + href = ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ); + as = ("" + as).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + as = "<" + href + '>; rel=preload; as="' + as + '"'; + for (var paramName in params) + hasOwnProperty.call(params, paramName) && + ((href = params[paramName]), + "string" === typeof href && + (as += + "; " + + paramName.toLowerCase() + + '="' + + ("" + href).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ) + + '"')); + return as; +} +var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g; +function escapeHrefForLinkHeaderURLContextReplacer(match) { + switch (match) { + case "<": + return "%3C"; + case ">": + return "%3E"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g; +function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) { + switch (match) { + case '"': + return "%22"; + case "'": + return "%27"; + case ";": + return "%3B"; + case ",": + return "%2C"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +function hoistStyleQueueDependency(styleQueue) { + this.styles.add(styleQueue); +} +function hoistStylesheetDependency(stylesheet) { + this.stylesheets.add(stylesheet); +} +function hoistHoistables(parentState, childState) { + childState.styles.forEach(hoistStyleQueueDependency, parentState); + childState.stylesheets.forEach(hoistStylesheetDependency, parentState); + childState.suspenseyImages && (parentState.suspenseyImages = !0); +} +function createRenderState(resumableState, generateStaticMarkup) { + var idPrefix = resumableState.idPrefix, + bootstrapChunks = [], + bootstrapScriptContent = resumableState.bootstrapScriptContent, + bootstrapScripts = resumableState.bootstrapScripts, + bootstrapModules = resumableState.bootstrapModules; + void 0 !== bootstrapScriptContent && + (bootstrapChunks.push("<script"), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + ">", + ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer), + "\x3c/script>" + )); + bootstrapScriptContent = idPrefix + "P:"; + var JSCompiler_object_inline_segmentPrefix_1673 = idPrefix + "S:"; + idPrefix += "B:"; + var JSCompiler_object_inline_preconnects_1687 = new Set(), + JSCompiler_object_inline_fontPreloads_1688 = new Set(), + JSCompiler_object_inline_highImagePreloads_1689 = new Set(), + JSCompiler_object_inline_styles_1690 = new Map(), + JSCompiler_object_inline_bootstrapScripts_1691 = new Set(), + JSCompiler_object_inline_scripts_1692 = new Set(), + JSCompiler_object_inline_bulkPreloads_1693 = new Set(), + JSCompiler_object_inline_preloads_1694 = { + images: new Map(), + stylesheets: new Map(), + scripts: new Map(), + moduleScripts: new Map() + }; + if (void 0 !== bootstrapScripts) + for (var i = 0; i < bootstrapScripts.length; i++) { + var scriptConfig = bootstrapScripts[i], + src, + crossOrigin = void 0, + integrity = void 0, + props = { + rel: "preload", + as: "script", + fetchPriority: "low", + nonce: void 0 + }; + "string" === typeof scriptConfig + ? (props.href = src = scriptConfig) + : ((props.href = src = scriptConfig.src), + (props.integrity = integrity = + "string" === typeof scriptConfig.integrity + ? scriptConfig.integrity + : void 0), + (props.crossOrigin = crossOrigin = + "string" === typeof scriptConfig || null == scriptConfig.crossOrigin + ? void 0 + : "use-credentials" === scriptConfig.crossOrigin + ? "use-credentials" + : "")); + scriptConfig = resumableState; + var href = src; + scriptConfig.scriptResources[href] = null; + scriptConfig.moduleScriptResources[href] = null; + scriptConfig = []; + pushLinkImpl(scriptConfig, props); + JSCompiler_object_inline_bootstrapScripts_1691.add(scriptConfig); + bootstrapChunks.push('<script src="', escapeTextForBrowser(src), '"'); + "string" === typeof integrity && + bootstrapChunks.push( + ' integrity="', + escapeTextForBrowser(integrity), + '"' + ); + "string" === typeof crossOrigin && + bootstrapChunks.push( + ' crossorigin="', + escapeTextForBrowser(crossOrigin), + '"' + ); + pushCompletedShellIdAttribute(bootstrapChunks, resumableState); + bootstrapChunks.push(' async="">\x3c/script>'); + } + if (void 0 !== bootstrapModules) + for ( + bootstrapScripts = 0; + bootstrapScripts < bootstrapModules.length; + bootstrapScripts++ + ) + (props = bootstrapModules[bootstrapScripts]), + (crossOrigin = src = void 0), + (integrity = { + rel: "modulepreload", + fetchPriority: "low", + nonce: void 0 + }), + "string" === typeof props + ? (integrity.href = i = props) + : ((integrity.href = i = props.src), + (integrity.integrity = crossOrigin = + "string" === typeof props.integrity ? props.integrity : void 0), + (integrity.crossOrigin = src = + "string" === typeof props || null == props.crossOrigin + ? void 0 + : "use-credentials" === props.crossOrigin + ? "use-credentials" + : "")), + (props = resumableState), + (scriptConfig = i), + (props.scriptResources[scriptConfig] = null), + (props.moduleScriptResources[scriptConfig] = null), + (props = []), + pushLinkImpl(props, integrity), + JSCompiler_object_inline_bootstrapScripts_1691.add(props), + bootstrapChunks.push( + '<script type="module" src="', + escapeTextForBrowser(i), + '"' + ), + "string" === typeof crossOrigin && + bootstrapChunks.push( + ' integrity="', + escapeTextForBrowser(crossOrigin), + '"' + ), + "string" === typeof src && + bootstrapChunks.push( + ' crossorigin="', + escapeTextForBrowser(src), + '"' + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(' async="">\x3c/script>'); + return { + placeholderPrefix: bootstrapScriptContent, + segmentPrefix: JSCompiler_object_inline_segmentPrefix_1673, + boundaryPrefix: idPrefix, + startInlineScript: "<script", + startInlineStyle: "<style", + preamble: { htmlChunks: null, headChunks: null, bodyChunks: null }, + externalRuntimeScript: null, + bootstrapChunks: bootstrapChunks, + importMapChunks: [], + onHeaders: void 0, + headers: null, + resets: { + font: {}, + dns: {}, + connect: { default: {}, anonymous: {}, credentials: {} }, + image: {}, + style: {} + }, + charsetChunks: [], + viewportChunks: [], + hoistableChunks: [], + preconnects: JSCompiler_object_inline_preconnects_1687, + fontPreloads: JSCompiler_object_inline_fontPreloads_1688, + highImagePreloads: JSCompiler_object_inline_highImagePreloads_1689, + styles: JSCompiler_object_inline_styles_1690, + bootstrapScripts: JSCompiler_object_inline_bootstrapScripts_1691, + scripts: JSCompiler_object_inline_scripts_1692, + bulkPreloads: JSCompiler_object_inline_bulkPreloads_1693, + preloads: JSCompiler_object_inline_preloads_1694, + nonce: { script: void 0, style: void 0 }, + stylesToHoist: !1, + generateStaticMarkup: generateStaticMarkup + }; +} +function pushTextInstance(target, text, renderState, textEmbedded) { + if (renderState.generateStaticMarkup) + return target.push(escapeTextForBrowser(text)), !1; + "" === text + ? (target = textEmbedded) + : (textEmbedded && target.push("\x3c!-- --\x3e"), + target.push(escapeTextForBrowser(text)), + (target = !0)); + return target; +} +function pushSegmentFinale(target, renderState, lastPushedText, textEmbedded) { + renderState.generateStaticMarkup || + (lastPushedText && textEmbedded && target.push("\x3c!-- --\x3e")); +} +var bind = Function.prototype.bind, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); +function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; +} +var emptyContextObject = {}, + currentActiveSnapshot = null; +function popToNearestCommonAncestor(prev, next) { + if (prev !== next) { + prev.context._currentValue2 = prev.parentValue; + prev = prev.parent; + var parentNext = next.parent; + if (null === prev) { + if (null !== parentNext) + throw Error( + "The stacks must reach the root at the same time. This is a bug in React." + ); + } else { + if (null === parentNext) + throw Error( + "The stacks must reach the root at the same time. This is a bug in React." + ); + popToNearestCommonAncestor(prev, parentNext); + } + next.context._currentValue2 = next.value; + } +} +function popAllPrevious(prev) { + prev.context._currentValue2 = prev.parentValue; + prev = prev.parent; + null !== prev && popAllPrevious(prev); +} +function pushAllNext(next) { + var parentNext = next.parent; + null !== parentNext && pushAllNext(parentNext); + next.context._currentValue2 = next.value; +} +function popPreviousToCommonLevel(prev, next) { + prev.context._currentValue2 = prev.parentValue; + prev = prev.parent; + if (null === prev) + throw Error( + "The depth must equal at least at zero before reaching the root. This is a bug in React." + ); + prev.depth === next.depth + ? popToNearestCommonAncestor(prev, next) + : popPreviousToCommonLevel(prev, next); +} +function popNextToCommonLevel(prev, next) { + var parentNext = next.parent; + if (null === parentNext) + throw Error( + "The depth must equal at least at zero before reaching the root. This is a bug in React." + ); + prev.depth === parentNext.depth + ? popToNearestCommonAncestor(prev, parentNext) + : popNextToCommonLevel(prev, parentNext); + next.context._currentValue2 = next.value; +} +function switchContext(newSnapshot) { + var prev = currentActiveSnapshot; + prev !== newSnapshot && + (null === prev + ? pushAllNext(newSnapshot) + : null === newSnapshot + ? popAllPrevious(prev) + : prev.depth === newSnapshot.depth + ? popToNearestCommonAncestor(prev, newSnapshot) + : prev.depth > newSnapshot.depth + ? popPreviousToCommonLevel(prev, newSnapshot) + : popNextToCommonLevel(prev, newSnapshot), + (currentActiveSnapshot = newSnapshot)); +} +var classComponentUpdater = { + enqueueSetState: function (inst, payload) { + inst = inst._reactInternals; + null !== inst.queue && inst.queue.push(payload); + }, + enqueueReplaceState: function (inst, payload) { + inst = inst._reactInternals; + inst.replace = !0; + inst.queue = [payload]; + }, + enqueueForceUpdate: function () {} + }, + emptyTreeContext = { id: 1, overflow: "" }; +function pushTreeContext(baseContext, totalChildren, index) { + var baseIdWithLeadingBit = baseContext.id; + baseContext = baseContext.overflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - (baseLength % 5); + length = ( + baseIdWithLeadingBit & + ((1 << numberOfOverflowBits) - 1) + ).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + return { + id: + (1 << (32 - clz32(totalChildren) + baseLength)) | + (index << baseLength) | + baseIdWithLeadingBit, + overflow: length + baseContext + }; + } + return { + id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit, + overflow: baseContext + }; +} +var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, + log = Math.log, + LN2 = Math.LN2; +function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; +} +function noop() {} +var SuspenseException = Error( + "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`." +); +function trackUsedThenable(thenableState, thenable, index) { + index = thenableState[index]; + void 0 === index + ? thenableState.push(thenable) + : index !== thenable && (thenable.then(noop, noop), (thenable = index)); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + "string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenableState = thenable), + (thenableState.status = "pending"), + thenableState.then( + function (fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function (error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + )); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + suspendedThenable = thenable; + throw SuspenseException; + } +} +var suspendedThenable = null; +function getSuspendedThenable() { + if (null === suspendedThenable) + throw Error( + "Expected a suspended thenable. This is a bug in React. Please file an issue." + ); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; +} +function is(x, y) { + return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); +} +var objectIs = "function" === typeof Object.is ? Object.is : is, + currentlyRenderingComponent = null, + currentlyRenderingTask = null, + currentlyRenderingRequest = null, + currentlyRenderingKeyPath = null, + firstWorkInProgressHook = null, + workInProgressHook = null, + isReRender = !1, + didScheduleRenderPhaseUpdate = !1, + localIdCounter = 0, + actionStateCounter = 0, + actionStateMatchingIndex = -1, + thenableIndexCounter = 0, + thenableState = null, + renderPhaseUpdates = null, + numberOfReRenders = 0; +function resolveCurrentlyRenderingComponent() { + if (null === currentlyRenderingComponent) + throw Error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return currentlyRenderingComponent; +} +function createHook() { + if (0 < numberOfReRenders) + throw Error("Rendered more hooks than during the previous render"); + return { memoizedState: null, queue: null, next: null }; +} +function createWorkInProgressHook() { + null === workInProgressHook + ? null === firstWorkInProgressHook + ? ((isReRender = !1), + (firstWorkInProgressHook = workInProgressHook = createHook())) + : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook)) + : null === workInProgressHook.next + ? ((isReRender = !1), + (workInProgressHook = workInProgressHook.next = createHook())) + : ((isReRender = !0), (workInProgressHook = workInProgressHook.next)); + return workInProgressHook; +} +function getThenableStateAfterSuspending() { + var state = thenableState; + thenableState = null; + return state; +} +function resetHooksState() { + currentlyRenderingKeyPath = + currentlyRenderingRequest = + currentlyRenderingTask = + currentlyRenderingComponent = + null; + didScheduleRenderPhaseUpdate = !1; + firstWorkInProgressHook = null; + numberOfReRenders = 0; + workInProgressHook = renderPhaseUpdates = null; +} +function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; +} +function useReducer(reducer, initialArg, init) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + if (isReRender) { + var queue = workInProgressHook.queue; + initialArg = queue.dispatch; + if ( + null !== renderPhaseUpdates && + ((init = renderPhaseUpdates.get(queue)), void 0 !== init) + ) { + renderPhaseUpdates.delete(queue); + queue = workInProgressHook.memoizedState; + do (queue = reducer(queue, init.action)), (init = init.next); + while (null !== init); + workInProgressHook.memoizedState = queue; + return [queue, initialArg]; + } + return [workInProgressHook.memoizedState, initialArg]; + } + reducer = + reducer === basicStateReducer + ? "function" === typeof initialArg + ? initialArg() + : initialArg + : void 0 !== init + ? init(initialArg) + : initialArg; + workInProgressHook.memoizedState = reducer; + reducer = workInProgressHook.queue = { last: null, dispatch: null }; + reducer = reducer.dispatch = dispatchAction.bind( + null, + currentlyRenderingComponent, + reducer + ); + return [workInProgressHook.memoizedState, reducer]; +} +function useMemo(nextCreate, deps) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + if (null !== workInProgressHook) { + var prevState = workInProgressHook.memoizedState; + if (null !== prevState && null !== deps) { + var prevDeps = prevState[1]; + a: if (null === prevDeps) prevDeps = !1; + else { + for (var i = 0; i < prevDeps.length && i < deps.length; i++) + if (!objectIs(deps[i], prevDeps[i])) { + prevDeps = !1; + break a; + } + prevDeps = !0; + } + if (prevDeps) return prevState[0]; + } + } + nextCreate = nextCreate(); + workInProgressHook.memoizedState = [nextCreate, deps]; + return nextCreate; +} +function dispatchAction(componentIdentity, queue, action) { + if (25 <= numberOfReRenders) + throw Error( + "Too many re-renders. React limits the number of renders to prevent an infinite loop." + ); + if (componentIdentity === currentlyRenderingComponent) + if ( + ((didScheduleRenderPhaseUpdate = !0), + (componentIdentity = { action: action, next: null }), + null === renderPhaseUpdates && (renderPhaseUpdates = new Map()), + (action = renderPhaseUpdates.get(queue)), + void 0 === action) + ) + renderPhaseUpdates.set(queue, componentIdentity); + else { + for (queue = action; null !== queue.next; ) queue = queue.next; + queue.next = componentIdentity; + } +} +function throwOnUseEffectEventCall() { + throw Error( + "A function wrapped in useEffectEvent can't be called during rendering." + ); +} +function unsupportedStartTransition() { + throw Error("startTransition cannot be called during server rendering."); +} +function unsupportedSetOptimisticState() { + throw Error("Cannot update optimistic state while rendering."); +} +function useActionState(action, initialState, permalink) { + resolveCurrentlyRenderingComponent(); + var actionStateHookIndex = actionStateCounter++, + request = currentlyRenderingRequest; + if ("function" === typeof action.$$FORM_ACTION) { + var nextPostbackStateKey = null, + componentKeyPath = currentlyRenderingKeyPath; + request = request.formState; + var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL; + if (null !== request && "function" === typeof isSignatureEqual) { + var postbackKey = request[1]; + isSignatureEqual.call(action, request[2], request[3]) && + ((nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([componentKeyPath, null, actionStateHookIndex]), + 0 + )), + postbackKey === nextPostbackStateKey && + ((actionStateMatchingIndex = actionStateHookIndex), + (initialState = request[0]))); + } + var boundAction = action.bind(null, initialState); + action = function (payload) { + boundAction(payload); + }; + "function" === typeof boundAction.$$FORM_ACTION && + (action.$$FORM_ACTION = function (prefix) { + prefix = boundAction.$$FORM_ACTION(prefix); + void 0 !== permalink && + ((permalink += ""), (prefix.action = permalink)); + var formData = prefix.data; + formData && + (null === nextPostbackStateKey && + (nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([ + componentKeyPath, + null, + actionStateHookIndex + ]), + 0 + )), + formData.append("$ACTION_KEY", nextPostbackStateKey)); + return prefix; + }); + return [initialState, action, !1]; + } + var boundAction$22 = action.bind(null, initialState); + return [ + initialState, + function (payload) { + boundAction$22(payload); + }, + !1 + ]; +} +function unwrapThenable(thenable) { + var index = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + return trackUsedThenable(thenableState, thenable, index); +} +function unsupportedRefresh() { + throw Error("Cache cannot be refreshed during server rendering."); +} +var HooksDispatcher = { + readContext: function (context) { + return context._currentValue2; + }, + use: function (usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return unwrapThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) + return usable._currentValue2; + } + throw Error("An unsupported type was passed to use(): " + String(usable)); + }, + useContext: function (context) { + resolveCurrentlyRenderingComponent(); + return context._currentValue2; + }, + useMemo: useMemo, + useReducer: useReducer, + useRef: function (initialValue) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var previousRef = workInProgressHook.memoizedState; + return null === previousRef + ? ((initialValue = { current: initialValue }), + (workInProgressHook.memoizedState = initialValue)) + : previousRef; + }, + useState: function (initialState) { + return useReducer(basicStateReducer, initialState); + }, + useInsertionEffect: noop, + useLayoutEffect: noop, + useCallback: function (callback, deps) { + return useMemo(function () { + return callback; + }, deps); + }, + useImperativeHandle: noop, + useEffect: noop, + useDebugValue: noop, + useDeferredValue: function (value, initialValue) { + resolveCurrentlyRenderingComponent(); + return void 0 !== initialValue ? initialValue : value; + }, + useTransition: function () { + resolveCurrentlyRenderingComponent(); + return [!1, unsupportedStartTransition]; + }, + useId: function () { + var JSCompiler_inline_result = currentlyRenderingTask.treeContext; + var overflow = JSCompiler_inline_result.overflow; + JSCompiler_inline_result = JSCompiler_inline_result.id; + JSCompiler_inline_result = + ( + JSCompiler_inline_result & + ~(1 << (32 - clz32(JSCompiler_inline_result) - 1)) + ).toString(32) + overflow; + var resumableState = currentResumableState; + if (null === resumableState) + throw Error( + "Invalid hook call. Hooks can only be called inside of the body of a function component." + ); + overflow = localIdCounter++; + JSCompiler_inline_result = + "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result; + 0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32)); + return JSCompiler_inline_result + "_"; + }, + useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) { + if (void 0 === getServerSnapshot) + throw Error( + "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering." + ); + return getServerSnapshot(); + }, + useOptimistic: function (passthrough) { + resolveCurrentlyRenderingComponent(); + return [passthrough, unsupportedSetOptimisticState]; + }, + useActionState: useActionState, + useFormState: useActionState, + useHostTransitionStatus: function () { + resolveCurrentlyRenderingComponent(); + return sharedNotPendingObject; + }, + useMemoCache: function (size) { + for (var data = Array(size), i = 0; i < size; i++) + data[i] = REACT_MEMO_CACHE_SENTINEL; + return data; + }, + useCacheRefresh: function () { + return unsupportedRefresh; + }, + useEffectEvent: function () { + return throwOnUseEffectEventCall; + } + }, + currentResumableState = null, + DefaultAsyncDispatcher = { + getCacheForType: function () { + throw Error("Not implemented."); + }, + cacheSignal: function () { + throw Error("Not implemented."); + } + }, + prefix, + suffix; +function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + suffix = + -1 < x.stack.indexOf("\n at") + ? " (<anonymous>)" + : -1 < x.stack.indexOf("@") + ? "@unknown:0:0" + : ""; + } + return "\n" + prefix + name + suffix; +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$24) { + control = x$24; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$25) { + control = x$25; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("<anonymous>") && + (frame = frame.replace("<anonymous>", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentStackByType(type) { + if ("string" === typeof type) return describeBuiltInComponentFrame(type); + if ("function" === typeof type) + return type.prototype && type.prototype.isReactComponent + ? describeNativeComponentFrame(type, !0) + : describeNativeComponentFrame(type, !1); + if ("object" === typeof type && null !== type) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeNativeComponentFrame(type.render, !1); + case REACT_MEMO_TYPE: + return describeNativeComponentFrame(type.type, !1); + case REACT_LAZY_TYPE: + var lazyComponent = type, + payload = lazyComponent._payload; + lazyComponent = lazyComponent._init; + try { + type = lazyComponent(payload); + } catch (x) { + return describeBuiltInComponentFrame("Lazy"); + } + return describeComponentStackByType(type); + } + if ("string" === typeof type.name) { + a: { + payload = type.name; + lazyComponent = type.env; + var location = type.debugLocation; + if ( + null != location && + ((type = Error.prepareStackTrace), + (Error.prepareStackTrace = void 0), + (location = location.stack), + (Error.prepareStackTrace = type), + location.startsWith("Error: react-stack-top-frame\n") && + (location = location.slice(29)), + (type = location.indexOf("\n")), + -1 !== type && (location = location.slice(type + 1)), + (type = location.indexOf("react_stack_bottom_frame")), + -1 !== type && (type = location.lastIndexOf("\n", type)), + (type = -1 !== type ? (location = location.slice(0, type)) : ""), + (location = type.lastIndexOf("\n")), + (type = -1 === location ? type : type.slice(location + 1)), + -1 !== type.indexOf(payload)) + ) { + payload = "\n" + type; + break a; + } + payload = describeBuiltInComponentFrame( + payload + (lazyComponent ? " [" + lazyComponent + "]" : "") + ); + } + return payload; + } + } + switch (type) { + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + } + return ""; +} +function isEligibleForOutlining(request, boundary) { + return (500 < boundary.byteSize || !1) && null === boundary.contentPreamble; +} +function defaultErrorHandler(error) { + if ( + "object" === typeof error && + null !== error && + "string" === typeof error.environmentName + ) { + var JSCompiler_inline_result = error.environmentName; + error = [error].slice(0); + "string" === typeof error[0] + ? error.splice( + 0, + 1, + "[%s] " + error[0], + " " + JSCompiler_inline_result + " " + ) + : error.splice(0, 0, "[%s]", " " + JSCompiler_inline_result + " "); + error.unshift(console); + JSCompiler_inline_result = bind.apply(console.error, error); + JSCompiler_inline_result(); + } else console.error(error); + return null; +} +function RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + var abortSet = new Set(); + this.destination = null; + this.flushScheduled = !1; + this.resumableState = resumableState; + this.renderState = renderState; + this.rootFormatContext = rootFormatContext; + this.progressiveChunkSize = + void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize; + this.status = 10; + this.fatalError = null; + this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0; + this.completedPreambleSegments = this.completedRootSegment = null; + this.byteSize = 0; + this.abortableTasks = abortSet; + this.pingedTasks = []; + this.clientRenderedBoundaries = []; + this.completedBoundaries = []; + this.partialBoundaries = []; + this.trackedPostpones = null; + this.onError = void 0 === onError ? defaultErrorHandler : onError; + this.onPostpone = void 0 === onPostpone ? noop : onPostpone; + this.onAllReady = void 0 === onAllReady ? noop : onAllReady; + this.onShellReady = void 0 === onShellReady ? noop : onShellReady; + this.onShellError = void 0 === onShellError ? noop : onShellError; + this.onFatalError = void 0 === onFatalError ? noop : onFatalError; + this.formState = void 0 === formState ? null : formState; +} +function createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + resumableState = new RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState + ); + renderState = createPendingSegment( + resumableState, + 0, + null, + rootFormatContext, + !1, + !1 + ); + renderState.parentFlushed = !0; + children = createRenderTask( + resumableState, + null, + children, + -1, + null, + renderState, + null, + null, + resumableState.abortableTasks, + null, + rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + resumableState.pingedTasks.push(children); + return resumableState; +} +var currentRequest = null; +function pingTask(request, task) { + request.pingedTasks.push(task); + 1 === request.pingedTasks.length && + ((request.flushScheduled = null !== request.destination), + performWork(request)); +} +function createSuspenseBoundary( + request, + row, + fallbackAbortableTasks, + contentPreamble, + fallbackPreamble +) { + fallbackAbortableTasks = { + status: 0, + rootSegmentID: -1, + parentFlushed: !1, + pendingTasks: 0, + row: row, + completedSegments: [], + byteSize: 0, + fallbackAbortableTasks: fallbackAbortableTasks, + errorDigest: null, + contentState: createHoistableState(), + fallbackState: createHoistableState(), + contentPreamble: contentPreamble, + fallbackPreamble: fallbackPreamble, + trackedContentKeyPath: null, + trackedFallbackNode: null + }; + null !== row && + (row.pendingTasks++, + (contentPreamble = row.boundaries), + null !== contentPreamble && + (request.allPendingTasks++, + fallbackAbortableTasks.pendingTasks++, + contentPreamble.push(fallbackAbortableTasks)), + (request = row.inheritedHoistables), + null !== request && + hoistHoistables(fallbackAbortableTasks.contentState, request)); + return fallbackAbortableTasks; +} +function createRenderTask( + request, + thenableState, + node, + childIndex, + blockedBoundary, + blockedSegment, + blockedPreamble, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + var task = { + replay: null, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: blockedSegment, + blockedPreamble: blockedPreamble, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createReplayTask( + request, + thenableState, + replay, + node, + childIndex, + blockedBoundary, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + replay.pendingTasks++; + var task = { + replay: replay, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: null, + blockedPreamble: null, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createPendingSegment( + request, + index, + boundary, + parentFormatContext, + lastPushedText, + textEmbedded +) { + return { + status: 0, + parentFlushed: !1, + id: -1, + index: index, + chunks: [], + children: [], + preambleChildren: [], + parentFormatContext: parentFormatContext, + boundary: boundary, + lastPushedText: lastPushedText, + textEmbedded: textEmbedded + }; +} +function pushComponentStack(task) { + var node = task.node; + if ("object" === typeof node && null !== node) + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + task.componentStack = { parent: task.componentStack, type: node.type }; + } +} +function replaceSuspenseComponentStackWithSuspenseFallbackStack( + componentStack +) { + return null === componentStack + ? null + : { parent: componentStack.parent, type: "Suspense Fallback" }; +} +function getThrownInfo(node$jscomp$0) { + var errorInfo = {}; + node$jscomp$0 && + Object.defineProperty(errorInfo, "componentStack", { + configurable: !0, + enumerable: !0, + get: function () { + try { + var info = "", + node = node$jscomp$0; + do + (info += describeComponentStackByType(node.type)), + (node = node.parent); + while (node); + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = + "\nError generating stack: " + x.message + "\n" + x.stack; + } + Object.defineProperty(errorInfo, "componentStack", { + value: JSCompiler_inline_result + }); + return JSCompiler_inline_result; + } + }); + return errorInfo; +} +function logRecoverableError(request, error, errorInfo) { + request = request.onError; + error = request(error, errorInfo); + if (null == error || "string" === typeof error) return error; +} +function fatalError(request, error) { + var onShellError = request.onShellError, + onFatalError = request.onFatalError; + onShellError(error); + onFatalError(error); + null !== request.destination + ? ((request.status = 14), request.destination.destroy(error)) + : ((request.status = 13), (request.fatalError = error)); +} +function finishSuspenseListRow(request, row) { + unblockSuspenseListRow(request, row.next, row.hoistables); +} +function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) { + for (; null !== unblockedRow; ) { + null !== inheritedHoistables && + (hoistHoistables(unblockedRow.hoistables, inheritedHoistables), + (unblockedRow.inheritedHoistables = inheritedHoistables)); + var unblockedBoundaries = unblockedRow.boundaries; + if (null !== unblockedBoundaries) { + unblockedRow.boundaries = null; + for (var i = 0; i < unblockedBoundaries.length; i++) { + var unblockedBoundary = unblockedBoundaries[i]; + null !== inheritedHoistables && + hoistHoistables(unblockedBoundary.contentState, inheritedHoistables); + finishedTask(request, unblockedBoundary, null, null); + } + } + unblockedRow.pendingTasks--; + if (0 < unblockedRow.pendingTasks) break; + inheritedHoistables = unblockedRow.hoistables; + unblockedRow = unblockedRow.next; + } +} +function tryToResolveTogetherRow(request, togetherRow) { + var boundaries = togetherRow.boundaries; + if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) { + for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) { + var rowBoundary = boundaries[i]; + if ( + 1 !== rowBoundary.pendingTasks || + rowBoundary.parentFlushed || + isEligibleForOutlining(request, rowBoundary) + ) { + allCompleteAndInlinable = !1; + break; + } + } + allCompleteAndInlinable && + unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables); + } +} +function createSuspenseListRow(previousRow) { + var newRow = { + pendingTasks: 1, + boundaries: null, + hoistables: createHoistableState(), + inheritedHoistables: null, + together: !1, + next: null + }; + null !== previousRow && + 0 < previousRow.pendingTasks && + (newRow.pendingTasks++, + (newRow.boundaries = []), + (previousRow.next = newRow)); + return newRow; +} +function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) { + var prevKeyPath = task.keyPath, + prevTreeContext = task.treeContext, + prevRow = task.row; + task.keyPath = keyPath; + keyPath = rows.length; + var previousSuspenseListRow = null; + if (null !== task.replay) { + var resumeSlots = task.replay.slots; + if (null !== resumeSlots && "object" === typeof resumeSlots) + for (var n = 0; n < keyPath; n++) { + var i = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? n + : keyPath - 1 - n, + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + var resumeSegmentID = resumeSlots[i]; + "number" === typeof resumeSegmentID + ? (resumeNode(request, task, resumeSegmentID, node, i), + delete resumeSlots[i]) + : renderNode(request, task, node, i); + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } + else + for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++) + (n = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? resumeSlots + : keyPath - 1 - resumeSlots), + (i = rows[n]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)), + renderNode(request, task, i, n), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } else if ( + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ) + for (revealOrder = 0; revealOrder < keyPath; revealOrder++) + (resumeSlots = rows[revealOrder]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext( + prevTreeContext, + keyPath, + revealOrder + )), + renderNode(request, task, resumeSlots, revealOrder), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + else { + revealOrder = task.blockedSegment; + resumeSlots = revealOrder.children.length; + n = revealOrder.chunks.length; + for (i = keyPath - 1; 0 <= i; i--) { + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + resumeSegmentID = createPendingSegment( + request, + n, + null, + task.formatContext, + 0 === i ? revealOrder.lastPushedText : !0, + !0 + ); + revealOrder.children.splice(resumeSlots, 0, resumeSegmentID); + task.blockedSegment = resumeSegmentID; + try { + renderNode(request, task, node, i), + pushSegmentFinale( + resumeSegmentID.chunks, + request.renderState, + resumeSegmentID.lastPushedText, + resumeSegmentID.textEmbedded + ), + (resumeSegmentID.status = 1), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } catch (thrownValue) { + throw ( + ((resumeSegmentID.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } + } + task.blockedSegment = revealOrder; + revealOrder.lastPushedText = !1; + } + null !== prevRow && + null !== previousSuspenseListRow && + 0 < previousSuspenseListRow.pendingTasks && + (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow)); + task.treeContext = prevTreeContext; + task.row = prevRow; + task.keyPath = prevKeyPath; +} +function renderWithHooks(request, task, keyPath, Component, props, secondArg) { + var prevThenableState = task.thenableState; + task.thenableState = null; + currentlyRenderingComponent = {}; + currentlyRenderingTask = task; + currentlyRenderingRequest = request; + currentlyRenderingKeyPath = keyPath; + actionStateCounter = localIdCounter = 0; + actionStateMatchingIndex = -1; + thenableIndexCounter = 0; + thenableState = prevThenableState; + for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; ) + (didScheduleRenderPhaseUpdate = !1), + (actionStateCounter = localIdCounter = 0), + (actionStateMatchingIndex = -1), + (thenableIndexCounter = 0), + (numberOfReRenders += 1), + (workInProgressHook = null), + (request = Component(props, secondArg)); + resetHooksState(); + return request; +} +function finishFunctionComponent( + request, + task, + keyPath, + children, + hasId, + actionStateCount, + actionStateMatchingIndex +) { + var didEmitActionStateMarkers = !1; + if (0 !== actionStateCount && null !== request.formState) { + var segment = task.blockedSegment; + if (null !== segment) { + didEmitActionStateMarkers = !0; + segment = segment.chunks; + for (var i = 0; i < actionStateCount; i++) + i === actionStateMatchingIndex + ? segment.push("\x3c!--F!--\x3e") + : segment.push("\x3c!--F--\x3e"); + } + } + actionStateCount = task.keyPath; + task.keyPath = keyPath; + hasId + ? ((keyPath = task.treeContext), + (task.treeContext = pushTreeContext(keyPath, 1, 0)), + renderNode(request, task, children, -1), + (task.treeContext = keyPath)) + : didEmitActionStateMarkers + ? renderNode(request, task, children, -1) + : renderNodeDestructive(request, task, children, -1); + task.keyPath = actionStateCount; +} +function renderElement(request, task, keyPath, type, props, ref) { + if ("function" === typeof type) + if (type.prototype && type.prototype.isReactComponent) { + var newProps = props; + if ("ref" in props) { + newProps = {}; + for (var propName in props) + "ref" !== propName && (newProps[propName] = props[propName]); + } + var defaultProps = type.defaultProps; + if (defaultProps) { + newProps === props && (newProps = assign({}, newProps, props)); + for (var propName$43 in defaultProps) + void 0 === newProps[propName$43] && + (newProps[propName$43] = defaultProps[propName$43]); + } + props = newProps; + newProps = emptyContextObject; + defaultProps = type.contextType; + "object" === typeof defaultProps && + null !== defaultProps && + (newProps = defaultProps._currentValue2); + newProps = new type(props, newProps); + var initialState = void 0 !== newProps.state ? newProps.state : null; + newProps.updater = classComponentUpdater; + newProps.props = props; + newProps.state = initialState; + defaultProps = { queue: [], replace: !1 }; + newProps._reactInternals = defaultProps; + ref = type.contextType; + newProps.context = + "object" === typeof ref && null !== ref + ? ref._currentValue2 + : emptyContextObject; + ref = type.getDerivedStateFromProps; + "function" === typeof ref && + ((ref = ref(props, initialState)), + (initialState = + null === ref || void 0 === ref + ? initialState + : assign({}, initialState, ref)), + (newProps.state = initialState)); + if ( + "function" !== typeof type.getDerivedStateFromProps && + "function" !== typeof newProps.getSnapshotBeforeUpdate && + ("function" === typeof newProps.UNSAFE_componentWillMount || + "function" === typeof newProps.componentWillMount) + ) + if ( + ((type = newProps.state), + "function" === typeof newProps.componentWillMount && + newProps.componentWillMount(), + "function" === typeof newProps.UNSAFE_componentWillMount && + newProps.UNSAFE_componentWillMount(), + type !== newProps.state && + classComponentUpdater.enqueueReplaceState( + newProps, + newProps.state, + null + ), + null !== defaultProps.queue && 0 < defaultProps.queue.length) + ) + if ( + ((type = defaultProps.queue), + (ref = defaultProps.replace), + (defaultProps.queue = null), + (defaultProps.replace = !1), + ref && 1 === type.length) + ) + newProps.state = type[0]; + else { + defaultProps = ref ? type[0] : newProps.state; + initialState = !0; + for (ref = ref ? 1 : 0; ref < type.length; ref++) + (propName$43 = type[ref]), + (propName$43 = + "function" === typeof propName$43 + ? propName$43.call(newProps, defaultProps, props, void 0) + : propName$43), + null != propName$43 && + (initialState + ? ((initialState = !1), + (defaultProps = assign({}, defaultProps, propName$43))) + : assign(defaultProps, propName$43)); + newProps.state = defaultProps; + } + else defaultProps.queue = null; + type = newProps.render(); + if (12 === request.status) throw null; + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + } else { + type = renderWithHooks(request, task, keyPath, type, props, void 0); + if (12 === request.status) throw null; + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + } + else if ("string" === typeof type) + if (((newProps = task.blockedSegment), null === newProps)) + (newProps = props.children), + (defaultProps = task.formatContext), + (initialState = task.keyPath), + (task.formatContext = getChildFormatContext(defaultProps, type, props)), + (task.keyPath = keyPath), + renderNode(request, task, newProps, -1), + (task.formatContext = defaultProps), + (task.keyPath = initialState); + else { + initialState = pushStartInstance( + newProps.chunks, + type, + props, + request.resumableState, + request.renderState, + task.blockedPreamble, + task.hoistableState, + task.formatContext, + newProps.lastPushedText + ); + newProps.lastPushedText = !1; + defaultProps = task.formatContext; + ref = task.keyPath; + task.keyPath = keyPath; + if ( + 3 === + (task.formatContext = getChildFormatContext(defaultProps, type, props)) + .insertionMode + ) { + keyPath = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + newProps.preambleChildren.push(keyPath); + task.blockedSegment = keyPath; + try { + (keyPath.status = 6), + renderNode(request, task, initialState, -1), + pushSegmentFinale( + keyPath.chunks, + request.renderState, + keyPath.lastPushedText, + keyPath.textEmbedded + ), + (keyPath.status = 1); + } finally { + task.blockedSegment = newProps; + } + } else renderNode(request, task, initialState, -1); + task.formatContext = defaultProps; + task.keyPath = ref; + a: { + task = newProps.chunks; + request = request.resumableState; + switch (type) { + case "title": + case "style": + case "script": + case "area": + case "base": + case "br": + case "col": + case "embed": + case "hr": + case "img": + case "input": + case "keygen": + case "link": + case "meta": + case "param": + case "source": + case "track": + case "wbr": + break a; + case "body": + if (1 >= defaultProps.insertionMode) { + request.hasBody = !0; + break a; + } + break; + case "html": + if (0 === defaultProps.insertionMode) { + request.hasHtml = !0; + break a; + } + break; + case "head": + if (1 >= defaultProps.insertionMode) break a; + } + task.push(endChunkForTag(type)); + } + newProps.lastPushedText = !1; + } + else { + switch (type) { + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_PROFILER_TYPE: + case REACT_FRAGMENT_TYPE: + type = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, props.children, -1); + task.keyPath = type; + return; + case REACT_ACTIVITY_TYPE: + type = task.blockedSegment; + null === type + ? "hidden" !== props.mode && + ((type = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = type)) + : "hidden" !== props.mode && + (request.renderState.generateStaticMarkup || + type.chunks.push("\x3c!--&--\x3e"), + (type.lastPushedText = !1), + (newProps = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = newProps), + request.renderState.generateStaticMarkup || + type.chunks.push("\x3c!--/&--\x3e"), + (type.lastPushedText = !1)); + return; + case REACT_SUSPENSE_LIST_TYPE: + a: { + type = props.children; + props = props.revealOrder; + if ( + "forwards" === props || + "backwards" === props || + "unstable_legacy-backwards" === props + ) { + if (isArrayImpl(type)) { + renderSuspenseListRows(request, task, keyPath, type, props); + break a; + } + if ((newProps = getIteratorFn(type))) + if ((newProps = newProps.call(type))) { + defaultProps = newProps.next(); + if (!defaultProps.done) { + do defaultProps = newProps.next(); + while (!defaultProps.done); + renderSuspenseListRows(request, task, keyPath, type, props); + } + break a; + } + } + "together" === props + ? ((props = task.keyPath), + (newProps = task.row), + (defaultProps = task.row = createSuspenseListRow(null)), + (defaultProps.boundaries = []), + (defaultProps.together = !0), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + 0 === --defaultProps.pendingTasks && + finishSuspenseListRow(request, defaultProps), + (task.keyPath = props), + (task.row = newProps), + null !== newProps && + 0 < defaultProps.pendingTasks && + (newProps.pendingTasks++, (defaultProps.next = newProps))) + : ((props = task.keyPath), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + (task.keyPath = props)); + } + return; + case REACT_VIEW_TRANSITION_TYPE: + case REACT_SCOPE_TYPE: + throw Error("ReactDOMServer does not yet support scope components."); + case REACT_SUSPENSE_TYPE: + a: if (null !== task.replay) { + type = task.keyPath; + newProps = task.formatContext; + defaultProps = task.row; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + newProps + ); + task.row = null; + keyPath = props.children; + try { + renderNode(request, task, keyPath, -1); + } finally { + (task.keyPath = type), + (task.formatContext = newProps), + (task.row = defaultProps); + } + } else { + type = task.keyPath; + ref = task.formatContext; + var prevRow = task.row, + parentBoundary = task.blockedBoundary; + propName$43 = task.blockedPreamble; + var parentHoistableState = task.hoistableState; + propName = task.blockedSegment; + var fallback = props.fallback; + props = props.children; + var fallbackAbortSet = new Set(); + var newBoundary = createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + null !== request.trackedPostpones && + (newBoundary.trackedContentKeyPath = keyPath); + var boundarySegment = createPendingSegment( + request, + propName.chunks.length, + newBoundary, + task.formatContext, + !1, + !1 + ); + propName.children.push(boundarySegment); + propName.lastPushedText = !1; + var contentRootSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + contentRootSegment.parentFlushed = !0; + if (null !== request.trackedPostpones) { + newProps = task.componentStack; + defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]]; + initialState = [defaultProps[1], defaultProps[2], [], null]; + request.trackedPostpones.workingMap.set(defaultProps, initialState); + newBoundary.trackedFallbackNode = initialState; + task.blockedSegment = boundarySegment; + task.blockedPreamble = newBoundary.fallbackPreamble; + task.keyPath = defaultProps; + task.formatContext = getSuspenseFallbackFormatContext( + request.resumableState, + ref + ); + task.componentStack = + replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps); + boundarySegment.status = 6; + try { + renderNode(request, task, fallback, -1), + pushSegmentFinale( + boundarySegment.chunks, + request.renderState, + boundarySegment.lastPushedText, + boundarySegment.textEmbedded + ), + (boundarySegment.status = 1); + } catch (thrownValue) { + throw ( + ((boundarySegment.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } finally { + (task.blockedSegment = propName), + (task.blockedPreamble = propName$43), + (task.keyPath = type), + (task.formatContext = ref); + } + task = createRenderTask( + request, + null, + props, + -1, + newBoundary, + contentRootSegment, + newBoundary.contentPreamble, + newBoundary.contentState, + task.abortSet, + keyPath, + getSuspenseContentFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + null, + newProps + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } else { + task.blockedBoundary = newBoundary; + task.blockedPreamble = newBoundary.contentPreamble; + task.hoistableState = newBoundary.contentState; + task.blockedSegment = contentRootSegment; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + ref + ); + task.row = null; + contentRootSegment.status = 6; + try { + if ( + (renderNode(request, task, props, -1), + pushSegmentFinale( + contentRootSegment.chunks, + request.renderState, + contentRootSegment.lastPushedText, + contentRootSegment.textEmbedded + ), + (contentRootSegment.status = 1), + queueCompletedSegment(newBoundary, contentRootSegment), + 0 === newBoundary.pendingTasks && 0 === newBoundary.status) + ) { + if ( + ((newBoundary.status = 1), + !isEligibleForOutlining(request, newBoundary)) + ) { + null !== prevRow && + 0 === --prevRow.pendingTasks && + finishSuspenseListRow(request, prevRow); + 0 === request.pendingRootTasks && + task.blockedPreamble && + preparePreamble(request); + break a; + } + } else + null !== prevRow && + prevRow.together && + tryToResolveTogetherRow(request, prevRow); + } catch (thrownValue$30) { + (newBoundary.status = 4), + 12 === request.status + ? ((contentRootSegment.status = 3), + (newProps = request.fatalError)) + : ((contentRootSegment.status = 4), + (newProps = thrownValue$30)), + (defaultProps = getThrownInfo(task.componentStack)), + (initialState = logRecoverableError( + request, + newProps, + defaultProps + )), + (newBoundary.errorDigest = initialState), + untrackBoundary(request, newBoundary); + } finally { + (task.blockedBoundary = parentBoundary), + (task.blockedPreamble = propName$43), + (task.hoistableState = parentHoistableState), + (task.blockedSegment = propName), + (task.keyPath = type), + (task.formatContext = ref), + (task.row = prevRow); + } + task = createRenderTask( + request, + null, + fallback, + -1, + parentBoundary, + boundarySegment, + newBoundary.fallbackPreamble, + newBoundary.fallbackState, + fallbackAbortSet, + [keyPath[0], "Suspense Fallback", keyPath[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } + } + return; + } + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + if ("ref" in props) + for (fallback in ((newProps = {}), props)) + "ref" !== fallback && (newProps[fallback] = props[fallback]); + else newProps = props; + type = renderWithHooks( + request, + task, + keyPath, + type.render, + newProps, + ref + ); + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + return; + case REACT_MEMO_TYPE: + renderElement(request, task, keyPath, type.type, props, ref); + return; + case REACT_CONTEXT_TYPE: + defaultProps = props.children; + newProps = task.keyPath; + props = props.value; + initialState = type._currentValue2; + type._currentValue2 = props; + ref = currentActiveSnapshot; + currentActiveSnapshot = type = { + parent: ref, + depth: null === ref ? 0 : ref.depth + 1, + context: type, + parentValue: initialState, + value: props + }; + task.context = type; + task.keyPath = keyPath; + renderNodeDestructive(request, task, defaultProps, -1); + request = currentActiveSnapshot; + if (null === request) + throw Error( + "Tried to pop a Context at the root of the app. This is a bug in React." + ); + request.context._currentValue2 = request.parentValue; + request = currentActiveSnapshot = request.parent; + task.context = request; + task.keyPath = newProps; + return; + case REACT_CONSUMER_TYPE: + props = props.children; + type = props(type._context._currentValue2); + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + return; + case REACT_LAZY_TYPE: + newProps = type._init; + type = newProps(type._payload); + if (12 === request.status) throw null; + renderElement(request, task, keyPath, type, props, ref); + return; + } + throw Error( + "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + + ((null == type ? type : typeof type) + ".") + ); + } +} +function resumeNode(request, task, segmentId, node, childIndex) { + var prevReplay = task.replay, + blockedBoundary = task.blockedBoundary, + resumedSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + resumedSegment.id = segmentId; + resumedSegment.parentFlushed = !0; + try { + (task.replay = null), + (task.blockedSegment = resumedSegment), + renderNode(request, task, node, childIndex), + (resumedSegment.status = 1), + null === blockedBoundary + ? (request.completedRootSegment = resumedSegment) + : (queueCompletedSegment(blockedBoundary, resumedSegment), + blockedBoundary.parentFlushed && + request.partialBoundaries.push(blockedBoundary)); + } finally { + (task.replay = prevReplay), (task.blockedSegment = null); + } +} +function renderNodeDestructive(request, task, node, childIndex) { + null !== task.replay && "number" === typeof task.replay.slots + ? resumeNode(request, task, task.replay.slots, node, childIndex) + : ((task.node = node), + (task.childIndex = childIndex), + (node = task.componentStack), + pushComponentStack(task), + retryNode(request, task), + (task.componentStack = node)); +} +function retryNode(request, task) { + var node = task.node, + childIndex = task.childIndex; + if (null !== node) { + if ("object" === typeof node) { + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + var type = node.type, + key = node.key, + props = node.props; + node = props.ref; + var ref = void 0 !== node ? node : null, + name = getComponentNameFromType(type), + keyOrIndex = + null == key ? (-1 === childIndex ? 0 : childIndex) : key; + key = [task.keyPath, name, keyOrIndex]; + if (null !== task.replay) + a: { + var replay = task.replay; + childIndex = replay.nodes; + for (node = 0; node < childIndex.length; node++) { + var node$jscomp$0 = childIndex[node]; + if (keyOrIndex === node$jscomp$0[1]) { + if (4 === node$jscomp$0.length) { + if (null !== name && name !== node$jscomp$0[0]) + throw Error( + "Expected the resume to render <" + + node$jscomp$0[0] + + "> in this slot but instead it rendered <" + + name + + ">. The tree doesn't match so React will fallback to client rendering." + ); + var childNodes = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = task.node; + task.replay = { + nodes: childNodes, + slots: name, + pendingTasks: 1 + }; + try { + renderElement(request, task, key, type, props, ref); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || + "function" === typeof x.then) + ) + throw ( + (task.node === keyOrIndex + ? (task.replay = replay) + : childIndex.splice(node, 1), + x) + ); + task.replay.pendingTasks--; + props = getThrownInfo(task.componentStack); + key = request; + request = task.blockedBoundary; + type = x; + props = logRecoverableError(key, type, props); + abortRemainingReplayNodes( + key, + request, + childNodes, + name, + type, + props + ); + } + task.replay = replay; + } else { + if (type !== REACT_SUSPENSE_TYPE) + throw Error( + "Expected the resume to render <Suspense> in this slot but instead it rendered <" + + (getComponentNameFromType(type) || "Unknown") + + ">. The tree doesn't match so React will fallback to client rendering." + ); + b: { + replay = void 0; + type = node$jscomp$0[5]; + ref = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = + null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2]; + node$jscomp$0 = + null === node$jscomp$0[4] ? null : node$jscomp$0[4][3]; + var prevKeyPath = task.keyPath, + prevContext = task.formatContext, + prevRow = task.row, + previousReplaySet = task.replay, + parentBoundary = task.blockedBoundary, + parentHoistableState = task.hoistableState, + content = props.children, + fallback = props.fallback, + fallbackAbortSet = new Set(); + props = createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + props.parentFlushed = !0; + props.rootSegmentID = type; + task.blockedBoundary = props; + task.hoistableState = props.contentState; + task.keyPath = key; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + prevContext + ); + task.row = null; + task.replay = { + nodes: ref, + slots: name, + pendingTasks: 1 + }; + try { + renderNode(request, task, content, -1); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + if (0 === props.pendingTasks && 0 === props.status) { + props.status = 1; + request.completedBoundaries.push(props); + break b; + } + } catch (error) { + (props.status = 4), + (childNodes = getThrownInfo(task.componentStack)), + (replay = logRecoverableError( + request, + error, + childNodes + )), + (props.errorDigest = replay), + task.replay.pendingTasks--, + request.clientRenderedBoundaries.push(props); + } finally { + (task.blockedBoundary = parentBoundary), + (task.hoistableState = parentHoistableState), + (task.replay = previousReplaySet), + (task.keyPath = prevKeyPath), + (task.formatContext = prevContext), + (task.row = prevRow); + } + childNodes = createReplayTask( + request, + null, + { + nodes: keyOrIndex, + slots: node$jscomp$0, + pendingTasks: 0 + }, + fallback, + -1, + parentBoundary, + props.fallbackState, + fallbackAbortSet, + [key[0], "Suspense Fallback", key[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(childNodes); + request.pingedTasks.push(childNodes); + } + } + childIndex.splice(node, 1); + break a; + } + } + } + else renderElement(request, task, key, type, props, ref); + return; + case REACT_PORTAL_TYPE: + throw Error( + "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render." + ); + case REACT_LAZY_TYPE: + childNodes = node._init; + node = childNodes(node._payload); + if (12 === request.status) throw null; + renderNodeDestructive(request, task, node, childIndex); + return; + } + if (isArrayImpl(node)) { + renderChildrenArray(request, task, node, childIndex); + return; + } + if ((childNodes = getIteratorFn(node))) + if ((childNodes = childNodes.call(node))) { + node = childNodes.next(); + if (!node.done) { + props = []; + do props.push(node.value), (node = childNodes.next()); + while (!node.done); + renderChildrenArray(request, task, props, childIndex); + } + return; + } + if ("function" === typeof node.then) + return ( + (task.thenableState = null), + renderNodeDestructive(request, task, unwrapThenable(node), childIndex) + ); + if (node.$$typeof === REACT_CONTEXT_TYPE) + return renderNodeDestructive( + request, + task, + node._currentValue2, + childIndex + ); + childIndex = Object.prototype.toString.call(node); + throw Error( + "Objects are not valid as a React child (found: " + + ("[object Object]" === childIndex + ? "object with keys {" + Object.keys(node).join(", ") + "}" + : childIndex) + + "). If you meant to render a collection of children, use an array instead." + ); + } + if ("string" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + node, + request.renderState, + childIndex.lastPushedText + )); + else if ("number" === typeof node || "bigint" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + "" + node, + request.renderState, + childIndex.lastPushedText + )); + } +} +function renderChildrenArray(request, task, children, childIndex) { + var prevKeyPath = task.keyPath; + if ( + -1 !== childIndex && + ((task.keyPath = [task.keyPath, "Fragment", childIndex]), + null !== task.replay) + ) { + for ( + var replay = task.replay, replayNodes = replay.nodes, j = 0; + j < replayNodes.length; + j++ + ) { + var node = replayNodes[j]; + if (node[1] === childIndex) { + childIndex = node[2]; + node = node[3]; + task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 }; + try { + renderChildrenArray(request, task, children, -1); + if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || "function" === typeof x.then) + ) + throw x; + task.replay.pendingTasks--; + children = getThrownInfo(task.componentStack); + var boundary = task.blockedBoundary, + error = x; + children = logRecoverableError(request, error, children); + abortRemainingReplayNodes( + request, + boundary, + childIndex, + node, + error, + children + ); + } + task.replay = replay; + replayNodes.splice(j, 1); + break; + } + } + task.keyPath = prevKeyPath; + return; + } + replay = task.treeContext; + replayNodes = children.length; + if ( + null !== task.replay && + ((j = task.replay.slots), null !== j && "object" === typeof j) + ) { + for (childIndex = 0; childIndex < replayNodes; childIndex++) + (node = children[childIndex]), + (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)), + (boundary = j[childIndex]), + "number" === typeof boundary + ? (resumeNode(request, task, boundary, node, childIndex), + delete j[childIndex]) + : renderNode(request, task, node, childIndex); + task.treeContext = replay; + task.keyPath = prevKeyPath; + return; + } + for (j = 0; j < replayNodes; j++) + (childIndex = children[j]), + (task.treeContext = pushTreeContext(replay, replayNodes, j)), + renderNode(request, task, childIndex, j); + task.treeContext = replay; + task.keyPath = prevKeyPath; +} +function trackPostponedBoundary(request, trackedPostpones, boundary) { + boundary.status = 5; + boundary.rootSegmentID = request.nextSegmentId++; + request = boundary.trackedContentKeyPath; + if (null === request) + throw Error( + "It should not be possible to postpone at the root. This is a bug in React." + ); + var fallbackReplayNode = boundary.trackedFallbackNode, + children = [], + boundaryNode = trackedPostpones.workingMap.get(request); + if (void 0 === boundaryNode) + return ( + (boundary = [ + request[1], + request[2], + children, + null, + fallbackReplayNode, + boundary.rootSegmentID + ]), + trackedPostpones.workingMap.set(request, boundary), + addToReplayParent(boundary, request[0], trackedPostpones), + boundary + ); + boundaryNode[4] = fallbackReplayNode; + boundaryNode[5] = boundary.rootSegmentID; + return boundaryNode; +} +function trackPostpone(request, trackedPostpones, task, segment) { + segment.status = 5; + var keyPath = task.keyPath, + boundary = task.blockedBoundary; + if (null === boundary) + (segment.id = request.nextSegmentId++), + (trackedPostpones.rootSlots = segment.id), + null !== request.completedRootSegment && + (request.completedRootSegment.status = 5); + else { + if (null !== boundary && 0 === boundary.status) { + var boundaryNode = trackPostponedBoundary( + request, + trackedPostpones, + boundary + ); + if ( + boundary.trackedContentKeyPath === keyPath && + -1 === task.childIndex + ) { + -1 === segment.id && + (segment.id = segment.parentFlushed + ? boundary.rootSegmentID + : request.nextSegmentId++); + boundaryNode[3] = segment.id; + return; + } + } + -1 === segment.id && + (segment.id = + segment.parentFlushed && null !== boundary + ? boundary.rootSegmentID + : request.nextSegmentId++); + if (-1 === task.childIndex) + null === keyPath + ? (trackedPostpones.rootSlots = segment.id) + : ((task = trackedPostpones.workingMap.get(keyPath)), + void 0 === task + ? ((task = [keyPath[1], keyPath[2], [], segment.id]), + addToReplayParent(task, keyPath[0], trackedPostpones)) + : (task[3] = segment.id)); + else { + if (null === keyPath) + if (((request = trackedPostpones.rootSlots), null === request)) + request = trackedPostpones.rootSlots = {}; + else { + if ("number" === typeof request) + throw Error( + "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React." + ); + } + else if ( + ((boundary = trackedPostpones.workingMap), + (boundaryNode = boundary.get(keyPath)), + void 0 === boundaryNode) + ) + (request = {}), + (boundaryNode = [keyPath[1], keyPath[2], [], request]), + boundary.set(keyPath, boundaryNode), + addToReplayParent(boundaryNode, keyPath[0], trackedPostpones); + else if (((request = boundaryNode[3]), null === request)) + request = boundaryNode[3] = {}; + else if ("number" === typeof request) + throw Error( + "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React." + ); + request[task.childIndex] = segment.id; + } + } +} +function untrackBoundary(request, boundary) { + request = request.trackedPostpones; + null !== request && + ((boundary = boundary.trackedContentKeyPath), + null !== boundary && + ((boundary = request.workingMap.get(boundary)), + void 0 !== boundary && + ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null)))); +} +function spawnNewSuspendedReplayTask(request, task, thenableState) { + return createReplayTask( + request, + thenableState, + task.replay, + task.node, + task.childIndex, + task.blockedBoundary, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function spawnNewSuspendedRenderTask(request, task, thenableState) { + var segment = task.blockedSegment, + newSegment = createPendingSegment( + request, + segment.chunks.length, + null, + task.formatContext, + segment.lastPushedText, + !0 + ); + segment.children.push(newSegment); + segment.lastPushedText = !1; + return createRenderTask( + request, + thenableState, + task.node, + task.childIndex, + task.blockedBoundary, + newSegment, + task.blockedPreamble, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function renderNode(request, task, node, childIndex) { + var previousFormatContext = task.formatContext, + previousContext = task.context, + previousKeyPath = task.keyPath, + previousTreeContext = task.treeContext, + previousComponentStack = task.componentStack, + segment = task.blockedSegment; + if (null === segment) { + segment = task.replay; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue) { + if ( + (resetHooksState(), + (node = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + childIndex = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedReplayTask(request, task, childIndex).ping; + node.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + node = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + node = spawnNewSuspendedReplayTask(request, task, node); + request.pingedTasks.push(node); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + } + } + } else { + var childrenLength = segment.children.length, + chunkLength = segment.chunks.length; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue$62) { + if ( + (resetHooksState(), + (segment.children.length = childrenLength), + (segment.chunks.length = chunkLength), + (node = + thrownValue$62 === SuspenseException + ? getSuspendedThenable() + : thrownValue$62), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + segment = node; + node = + thrownValue$62 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedRenderTask(request, task, node).ping; + segment.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + segment = + thrownValue$62 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + segment = spawnNewSuspendedRenderTask(request, task, segment); + request.pingedTasks.push(segment); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + } + } + } + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + switchContext(previousContext); + throw node; +} +function abortTaskSoft(task) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + null !== segment && + ((segment.status = 3), finishedTask(this, boundary, task.row, segment)); +} +function abortRemainingReplayNodes( + request$jscomp$0, + boundary, + nodes, + slots, + error, + errorDigest$jscomp$0 +) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (4 === node.length) + abortRemainingReplayNodes( + request$jscomp$0, + boundary, + node[2], + node[3], + error, + errorDigest$jscomp$0 + ); + else { + node = node[5]; + var request = request$jscomp$0, + errorDigest = errorDigest$jscomp$0, + resumedBoundary = createSuspenseBoundary( + request, + null, + new Set(), + null, + null + ); + resumedBoundary.parentFlushed = !0; + resumedBoundary.rootSegmentID = node; + resumedBoundary.status = 4; + resumedBoundary.errorDigest = errorDigest; + resumedBoundary.parentFlushed && + request.clientRenderedBoundaries.push(resumedBoundary); + } + } + nodes.length = 0; + if (null !== slots) { + if (null === boundary) + throw Error( + "We should not have any resumable nodes in the shell. This is a bug in React." + ); + 4 !== boundary.status && + ((boundary.status = 4), + (boundary.errorDigest = errorDigest$jscomp$0), + boundary.parentFlushed && + request$jscomp$0.clientRenderedBoundaries.push(boundary)); + if ("object" === typeof slots) for (var index in slots) delete slots[index]; + } +} +function abortTask(task, request, error) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + if (null !== segment) { + if (6 === segment.status) return; + segment.status = 3; + } + var errorInfo = getThrownInfo(task.componentStack); + if (null === boundary) { + if (13 !== request.status && 14 !== request.status) { + boundary = task.replay; + if (null === boundary) { + null !== request.trackedPostpones && null !== segment + ? ((boundary = request.trackedPostpones), + logRecoverableError(request, error, errorInfo), + trackPostpone(request, boundary, task, segment), + finishedTask(request, null, task.row, segment)) + : (logRecoverableError(request, error, errorInfo), + fatalError(request, error)); + return; + } + boundary.pendingTasks--; + 0 === boundary.pendingTasks && + 0 < boundary.nodes.length && + ((segment = logRecoverableError(request, error, errorInfo)), + abortRemainingReplayNodes( + request, + null, + boundary.nodes, + boundary.slots, + error, + segment + )); + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } + } else { + var trackedPostpones$63 = request.trackedPostpones; + if (4 !== boundary.status) { + if (null !== trackedPostpones$63 && null !== segment) + return ( + logRecoverableError(request, error, errorInfo), + trackPostpone(request, trackedPostpones$63, task, segment), + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }), + boundary.fallbackAbortableTasks.clear(), + finishedTask(request, boundary, task.row, segment) + ); + boundary.status = 4; + segment = logRecoverableError(request, error, errorInfo); + boundary.status = 4; + boundary.errorDigest = segment; + untrackBoundary(request, boundary); + boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary); + } + boundary.pendingTasks--; + segment = boundary.row; + null !== segment && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }); + boundary.fallbackAbortableTasks.clear(); + } + task = task.row; + null !== task && + 0 === --task.pendingTasks && + finishSuspenseListRow(request, task); + request.allPendingTasks--; + 0 === request.allPendingTasks && completeAll(request); +} +function safelyEmitEarlyPreloads(request, shellComplete) { + try { + var renderState = request.renderState, + onHeaders = renderState.onHeaders; + if (onHeaders) { + var headers = renderState.headers; + if (headers) { + renderState.headers = null; + var linkHeader = headers.preconnects; + headers.fontPreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.fontPreloads)); + headers.highImagePreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.highImagePreloads)); + if (!shellComplete) { + var queueIter = renderState.styles.values(), + queueStep = queueIter.next(); + b: for ( + ; + 0 < headers.remainingCapacity && !queueStep.done; + queueStep = queueIter.next() + ) + for ( + var sheetIter = queueStep.value.sheets.values(), + sheetStep = sheetIter.next(); + 0 < headers.remainingCapacity && !sheetStep.done; + sheetStep = sheetIter.next() + ) { + var sheet = sheetStep.value, + props = sheet.props, + key = props.href, + props$jscomp$0 = sheet.props, + header = getPreloadAsHeader(props$jscomp$0.href, "style", { + crossOrigin: props$jscomp$0.crossOrigin, + integrity: props$jscomp$0.integrity, + nonce: props$jscomp$0.nonce, + type: props$jscomp$0.type, + fetchPriority: props$jscomp$0.fetchPriority, + referrerPolicy: props$jscomp$0.referrerPolicy, + media: props$jscomp$0.media + }); + if (0 <= (headers.remainingCapacity -= header.length + 2)) + (renderState.resets.style[key] = PRELOAD_NO_CREDS), + linkHeader && (linkHeader += ", "), + (linkHeader += header), + (renderState.resets.style[key] = + "string" === typeof props.crossOrigin || + "string" === typeof props.integrity + ? [props.crossOrigin, props.integrity] + : PRELOAD_NO_CREDS); + else break b; + } + } + linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({}); + } + } + } catch (error) { + logRecoverableError(request, error, {}); + } +} +function completeShell(request) { + null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0); + null === request.trackedPostpones && preparePreamble(request); + request.onShellError = noop; + request = request.onShellReady; + request(); +} +function completeAll(request) { + safelyEmitEarlyPreloads( + request, + null === request.trackedPostpones + ? !0 + : null === request.completedRootSegment || + 5 !== request.completedRootSegment.status + ); + preparePreamble(request); + request = request.onAllReady; + request(); +} +function queueCompletedSegment(boundary, segment) { + if ( + 0 === segment.chunks.length && + 1 === segment.children.length && + null === segment.children[0].boundary && + -1 === segment.children[0].id + ) { + var childSegment = segment.children[0]; + childSegment.id = segment.id; + childSegment.parentFlushed = !0; + (1 !== childSegment.status && + 3 !== childSegment.status && + 4 !== childSegment.status) || + queueCompletedSegment(boundary, childSegment); + } else boundary.completedSegments.push(segment); +} +function finishedTask(request, boundary, row, segment) { + null !== row && + (0 === --row.pendingTasks + ? finishSuspenseListRow(request, row) + : row.together && tryToResolveTogetherRow(request, row)); + request.allPendingTasks--; + if (null === boundary) { + if (null !== segment && segment.parentFlushed) { + if (null !== request.completedRootSegment) + throw Error( + "There can only be one root segment. This is a bug in React." + ); + request.completedRootSegment = segment; + } + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } else if ((boundary.pendingTasks--, 4 !== boundary.status)) + if (0 === boundary.pendingTasks) + if ( + (0 === boundary.status && (boundary.status = 1), + null !== segment && + segment.parentFlushed && + (1 === segment.status || 3 === segment.status) && + queueCompletedSegment(boundary, segment), + boundary.parentFlushed && request.completedBoundaries.push(boundary), + 1 === boundary.status) + ) + (row = boundary.row), + null !== row && + hoistHoistables(row.hoistables, boundary.contentState), + isEligibleForOutlining(request, boundary) || + (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request), + boundary.fallbackAbortableTasks.clear(), + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row)), + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary.contentPreamble && + preparePreamble(request); + else { + if ( + 5 === boundary.status && + ((boundary = boundary.row), null !== boundary) + ) { + if (null !== request.trackedPostpones) { + row = request.trackedPostpones; + var postponedRow = boundary.next; + if ( + null !== postponedRow && + ((segment = postponedRow.boundaries), null !== segment) + ) + for ( + postponedRow.boundaries = null, postponedRow = 0; + postponedRow < segment.length; + postponedRow++ + ) { + var postponedBoundary = segment[postponedRow]; + trackPostponedBoundary(request, row, postponedBoundary); + finishedTask(request, postponedBoundary, null, null); + } + } + 0 === --boundary.pendingTasks && + finishSuspenseListRow(request, boundary); + } + } + else + null === segment || + !segment.parentFlushed || + (1 !== segment.status && 3 !== segment.status) || + (queueCompletedSegment(boundary, segment), + 1 === boundary.completedSegments.length && + boundary.parentFlushed && + request.partialBoundaries.push(boundary)), + (boundary = boundary.row), + null !== boundary && + boundary.together && + tryToResolveTogetherRow(request, boundary); + 0 === request.allPendingTasks && completeAll(request); +} +function performWork(request$jscomp$2) { + if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) { + var prevContext = currentActiveSnapshot, + prevDispatcher = ReactSharedInternals.H; + ReactSharedInternals.H = HooksDispatcher; + var prevAsyncDispatcher = ReactSharedInternals.A; + ReactSharedInternals.A = DefaultAsyncDispatcher; + var prevRequest = currentRequest; + currentRequest = request$jscomp$2; + var prevResumableState = currentResumableState; + currentResumableState = request$jscomp$2.resumableState; + try { + var pingedTasks = request$jscomp$2.pingedTasks, + i; + for (i = 0; i < pingedTasks.length; i++) { + var task = pingedTasks[i], + request = request$jscomp$2, + segment = task.blockedSegment; + if (null === segment) { + var request$jscomp$0 = request; + if (0 !== task.replay.pendingTasks) { + switchContext(task.context); + try { + "number" === typeof task.replay.slots + ? resumeNode( + request$jscomp$0, + task, + task.replay.slots, + task.node, + task.childIndex + ) + : retryNode(request$jscomp$0, task); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + task.abortSet.delete(task); + finishedTask( + request$jscomp$0, + task.blockedBoundary, + task.row, + null + ); + } catch (thrownValue) { + resetHooksState(); + var x = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue; + if ( + "object" === typeof x && + null !== x && + "function" === typeof x.then + ) { + var ping = task.ping; + x.then(ping, ping); + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + } else { + task.replay.pendingTasks--; + task.abortSet.delete(task); + var errorInfo = getThrownInfo(task.componentStack); + request = void 0; + var request$jscomp$1 = request$jscomp$0, + boundary = task.blockedBoundary, + error$jscomp$0 = + 12 === request$jscomp$0.status + ? request$jscomp$0.fatalError + : x, + replayNodes = task.replay.nodes, + resumeSlots = task.replay.slots; + request = logRecoverableError( + request$jscomp$1, + error$jscomp$0, + errorInfo + ); + abortRemainingReplayNodes( + request$jscomp$1, + boundary, + replayNodes, + resumeSlots, + error$jscomp$0, + request + ); + request$jscomp$0.pendingRootTasks--; + 0 === request$jscomp$0.pendingRootTasks && + completeShell(request$jscomp$0); + request$jscomp$0.allPendingTasks--; + 0 === request$jscomp$0.allPendingTasks && + completeAll(request$jscomp$0); + } + } finally { + } + } + } else if ( + ((request$jscomp$0 = void 0), + (request$jscomp$1 = segment), + 0 === request$jscomp$1.status) + ) { + request$jscomp$1.status = 6; + switchContext(task.context); + var childrenLength = request$jscomp$1.children.length, + chunkLength = request$jscomp$1.chunks.length; + try { + retryNode(request, task), + pushSegmentFinale( + request$jscomp$1.chunks, + request.renderState, + request$jscomp$1.lastPushedText, + request$jscomp$1.textEmbedded + ), + task.abortSet.delete(task), + (request$jscomp$1.status = 1), + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } catch (thrownValue) { + resetHooksState(); + request$jscomp$1.children.length = childrenLength; + request$jscomp$1.chunks.length = chunkLength; + var x$jscomp$0 = + thrownValue === SuspenseException + ? getSuspendedThenable() + : 12 === request.status + ? request.fatalError + : thrownValue; + if (12 === request.status && null !== request.trackedPostpones) { + var trackedPostpones = request.trackedPostpones, + thrownInfo = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + logRecoverableError(request, x$jscomp$0, thrownInfo); + trackPostpone(request, trackedPostpones, task, request$jscomp$1); + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } else if ( + "object" === typeof x$jscomp$0 && + null !== x$jscomp$0 && + "function" === typeof x$jscomp$0.then + ) { + request$jscomp$1.status = 0; + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + var ping$jscomp$0 = task.ping; + x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0); + } else { + var errorInfo$jscomp$0 = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + request$jscomp$1.status = 4; + var boundary$jscomp$0 = task.blockedBoundary, + row = task.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.allPendingTasks--; + request$jscomp$0 = logRecoverableError( + request, + x$jscomp$0, + errorInfo$jscomp$0 + ); + if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0); + else if ( + (boundary$jscomp$0.pendingTasks--, + 4 !== boundary$jscomp$0.status) + ) { + boundary$jscomp$0.status = 4; + boundary$jscomp$0.errorDigest = request$jscomp$0; + untrackBoundary(request, boundary$jscomp$0); + var boundaryRow = boundary$jscomp$0.row; + null !== boundaryRow && + 0 === --boundaryRow.pendingTasks && + finishSuspenseListRow(request, boundaryRow); + boundary$jscomp$0.parentFlushed && + request.clientRenderedBoundaries.push(boundary$jscomp$0); + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary$jscomp$0.contentPreamble && + preparePreamble(request); + } + 0 === request.allPendingTasks && completeAll(request); + } + } finally { + } + } + } + pingedTasks.splice(0, i); + null !== request$jscomp$2.destination && + flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination); + } catch (error) { + logRecoverableError(request$jscomp$2, error, {}), + fatalError(request$jscomp$2, error); + } finally { + (currentResumableState = prevResumableState), + (ReactSharedInternals.H = prevDispatcher), + (ReactSharedInternals.A = prevAsyncDispatcher), + prevDispatcher === HooksDispatcher && switchContext(prevContext), + (currentRequest = prevRequest); + } + } +} +function preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments +) { + segment.preambleChildren.length && + collectedPreambleSegments.push(segment.preambleChildren); + for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++) + pendingPreambles = + preparePreambleFromSegment( + request, + segment.children[i], + collectedPreambleSegments + ) || pendingPreambles; + return pendingPreambles; +} +function preparePreambleFromSegment( + request, + segment, + collectedPreambleSegments +) { + var boundary = segment.boundary; + if (null === boundary) + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + var preamble = boundary.contentPreamble, + fallbackPreamble = boundary.fallbackPreamble; + if (null === preamble || null === fallbackPreamble) return !1; + switch (boundary.status) { + case 1: + hoistPreambleState(request.renderState, preamble); + request.byteSize += boundary.byteSize; + segment = boundary.completedSegments[0]; + if (!segment) + throw Error( + "A previously unvisited boundary must have exactly one root segment. This is a bug in React." + ); + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + case 5: + if (null !== request.trackedPostpones) return !0; + case 4: + if (1 === segment.status) + return ( + hoistPreambleState(request.renderState, fallbackPreamble), + preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ) + ); + default: + return !0; + } +} +function preparePreamble(request) { + if ( + request.completedRootSegment && + null === request.completedPreambleSegments + ) { + var collectedPreambleSegments = [], + originalRequestByteSize = request.byteSize, + hasPendingPreambles = preparePreambleFromSegment( + request, + request.completedRootSegment, + collectedPreambleSegments + ), + preamble = request.renderState.preamble; + !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks) + ? (request.completedPreambleSegments = collectedPreambleSegments) + : (request.byteSize = originalRequestByteSize); + } +} +function flushSubtree(request, destination, segment, hoistableState) { + segment.parentFlushed = !0; + switch (segment.status) { + case 0: + segment.id = request.nextSegmentId++; + case 5: + return ( + (hoistableState = segment.id), + (segment.lastPushedText = !1), + (segment.textEmbedded = !1), + (request = request.renderState), + destination.push('<template id="'), + destination.push(request.placeholderPrefix), + (request = hoistableState.toString(16)), + destination.push(request), + destination.push('"></template>') + ); + case 1: + segment.status = 2; + var r = !0, + chunks = segment.chunks, + chunkIdx = 0; + segment = segment.children; + for (var childIdx = 0; childIdx < segment.length; childIdx++) { + for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++) + destination.push(chunks[chunkIdx]); + r = flushSegment(request, destination, r, hoistableState); + } + for (; chunkIdx < chunks.length - 1; chunkIdx++) + destination.push(chunks[chunkIdx]); + chunkIdx < chunks.length && (r = destination.push(chunks[chunkIdx])); + return r; + case 3: + return !0; + default: + throw Error( + "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React." + ); + } +} +var flushedByteSize = 0; +function flushSegment(request, destination, segment, hoistableState) { + var boundary = segment.boundary; + if (null === boundary) + return flushSubtree(request, destination, segment, hoistableState); + boundary.parentFlushed = !0; + if (4 === boundary.status) { + var row = boundary.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.renderState.generateStaticMarkup || + ((boundary = boundary.errorDigest), + destination.push("\x3c!--$!--\x3e"), + destination.push("<template"), + boundary && + (destination.push(' data-dgst="'), + (boundary = escapeTextForBrowser(boundary)), + destination.push(boundary), + destination.push('"')), + destination.push("></template>")); + flushSubtree(request, destination, segment, hoistableState); + request = request.renderState.generateStaticMarkup + ? !0 + : destination.push("\x3c!--/$--\x3e"); + return request; + } + if (1 !== boundary.status) + return ( + 0 === boundary.status && + (boundary.rootSegmentID = request.nextSegmentId++), + 0 < boundary.completedSegments.length && + request.partialBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + hoistableState && hoistHoistables(hoistableState, boundary.fallbackState), + flushSubtree(request, destination, segment, hoistableState), + destination.push("\x3c!--/$--\x3e") + ); + if ( + !flushingPartialBoundaries && + isEligibleForOutlining(request, boundary) && + flushedByteSize + boundary.byteSize > request.progressiveChunkSize + ) + return ( + (boundary.rootSegmentID = request.nextSegmentId++), + request.completedBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + flushSubtree(request, destination, segment, hoistableState), + destination.push("\x3c!--/$--\x3e") + ); + flushedByteSize += boundary.byteSize; + hoistableState && hoistHoistables(hoistableState, boundary.contentState); + segment = boundary.row; + null !== segment && + isEligibleForOutlining(request, boundary) && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + request.renderState.generateStaticMarkup || + destination.push("\x3c!--$--\x3e"); + segment = boundary.completedSegments; + if (1 !== segment.length) + throw Error( + "A previously unvisited boundary must have exactly one root segment. This is a bug in React." + ); + flushSegment(request, destination, segment[0], hoistableState); + request = request.renderState.generateStaticMarkup + ? !0 + : destination.push("\x3c!--/$--\x3e"); + return request; +} +function flushSegmentContainer(request, destination, segment, hoistableState) { + writeStartSegment( + destination, + request.renderState, + segment.parentFormatContext, + segment.id + ); + flushSegment(request, destination, segment, hoistableState); + return writeEndSegment(destination, segment.parentFormatContext); +} +function flushCompletedBoundary(request, destination, boundary) { + flushedByteSize = boundary.byteSize; + for ( + var completedSegments = boundary.completedSegments, i = 0; + i < completedSegments.length; + i++ + ) + flushPartiallyCompletedSegment( + request, + destination, + boundary, + completedSegments[i] + ); + completedSegments.length = 0; + completedSegments = boundary.row; + null !== completedSegments && + isEligibleForOutlining(request, boundary) && + 0 === --completedSegments.pendingTasks && + finishSuspenseListRow(request, completedSegments); + writeHoistablesForBoundary( + destination, + boundary.contentState, + request.renderState + ); + completedSegments = request.resumableState; + request = request.renderState; + i = boundary.rootSegmentID; + boundary = boundary.contentState; + var requiresStyleInsertion = request.stylesToHoist; + request.stylesToHoist = !1; + destination.push(request.startInlineScript); + destination.push(">"); + requiresStyleInsertion + ? (0 === (completedSegments.instructions & 4) && + ((completedSegments.instructions |= 4), + destination.push( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};' + )), + 0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + destination.push( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' + )), + 0 === (completedSegments.instructions & 8) + ? ((completedSegments.instructions |= 8), + destination.push( + '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("' + )) + : destination.push('$RR("')) + : (0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + destination.push( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' + )), + destination.push('$RC("')); + completedSegments = i.toString(16); + destination.push(request.boundaryPrefix); + destination.push(completedSegments); + destination.push('","'); + destination.push(request.segmentPrefix); + destination.push(completedSegments); + requiresStyleInsertion + ? (destination.push('",'), + writeStyleResourceDependenciesInJS(destination, boundary)) + : destination.push('"'); + boundary = destination.push(")\x3c/script>"); + return writeBootstrap(destination, request) && boundary; +} +function flushPartiallyCompletedSegment( + request, + destination, + boundary, + segment +) { + if (2 === segment.status) return !0; + var hoistableState = boundary.contentState, + segmentID = segment.id; + if (-1 === segmentID) { + if (-1 === (segment.id = boundary.rootSegmentID)) + throw Error( + "A root segment ID must have been assigned by now. This is a bug in React." + ); + return flushSegmentContainer(request, destination, segment, hoistableState); + } + if (segmentID === boundary.rootSegmentID) + return flushSegmentContainer(request, destination, segment, hoistableState); + flushSegmentContainer(request, destination, segment, hoistableState); + boundary = request.resumableState; + request = request.renderState; + destination.push(request.startInlineScript); + destination.push(">"); + 0 === (boundary.instructions & 1) + ? ((boundary.instructions |= 1), + destination.push( + '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("' + )) + : destination.push('$RS("'); + destination.push(request.segmentPrefix); + segmentID = segmentID.toString(16); + destination.push(segmentID); + destination.push('","'); + destination.push(request.placeholderPrefix); + destination.push(segmentID); + destination = destination.push('")\x3c/script>'); + return destination; +} +var flushingPartialBoundaries = !1; +function flushCompletedQueues(request, destination) { + try { + if (!(0 < request.pendingRootTasks)) { + var i, + completedRootSegment = request.completedRootSegment; + if (null !== completedRootSegment) { + if (5 === completedRootSegment.status) return; + var completedPreambleSegments = request.completedPreambleSegments; + if (null === completedPreambleSegments) return; + flushedByteSize = request.byteSize; + var resumableState = request.resumableState, + renderState = request.renderState, + preamble = renderState.preamble, + htmlChunks = preamble.htmlChunks, + headChunks = preamble.headChunks, + i$jscomp$0; + if (htmlChunks) { + for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++) + destination.push(htmlChunks[i$jscomp$0]); + if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + destination.push(headChunks[i$jscomp$0]); + else { + var chunk = startChunkForTag("head"); + destination.push(chunk); + destination.push(">"); + } + } else if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + destination.push(headChunks[i$jscomp$0]); + var charsetChunks = renderState.charsetChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++) + destination.push(charsetChunks[i$jscomp$0]); + charsetChunks.length = 0; + renderState.preconnects.forEach(flushResource, destination); + renderState.preconnects.clear(); + var viewportChunks = renderState.viewportChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++) + destination.push(viewportChunks[i$jscomp$0]); + viewportChunks.length = 0; + renderState.fontPreloads.forEach(flushResource, destination); + renderState.fontPreloads.clear(); + renderState.highImagePreloads.forEach(flushResource, destination); + renderState.highImagePreloads.clear(); + currentlyFlushingRenderState = renderState; + renderState.styles.forEach(flushStylesInPreamble, destination); + currentlyFlushingRenderState = null; + var importMapChunks = renderState.importMapChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++) + destination.push(importMapChunks[i$jscomp$0]); + importMapChunks.length = 0; + renderState.bootstrapScripts.forEach(flushResource, destination); + renderState.scripts.forEach(flushResource, destination); + renderState.scripts.clear(); + renderState.bulkPreloads.forEach(flushResource, destination); + renderState.bulkPreloads.clear(); + resumableState.instructions |= 32; + var hoistableChunks = renderState.hoistableChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++) + destination.push(hoistableChunks[i$jscomp$0]); + for ( + resumableState = hoistableChunks.length = 0; + resumableState < completedPreambleSegments.length; + resumableState++ + ) { + var segments = completedPreambleSegments[resumableState]; + for (renderState = 0; renderState < segments.length; renderState++) + flushSegment(request, destination, segments[renderState], null); + } + var preamble$jscomp$0 = request.renderState.preamble, + headChunks$jscomp$0 = preamble$jscomp$0.headChunks; + if (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) { + var chunk$jscomp$0 = endChunkForTag("head"); + destination.push(chunk$jscomp$0); + } + var bodyChunks = preamble$jscomp$0.bodyChunks; + if (bodyChunks) + for ( + completedPreambleSegments = 0; + completedPreambleSegments < bodyChunks.length; + completedPreambleSegments++ + ) + destination.push(bodyChunks[completedPreambleSegments]); + flushSegment(request, destination, completedRootSegment, null); + request.completedRootSegment = null; + var renderState$jscomp$0 = request.renderState; + if ( + 0 !== request.allPendingTasks || + 0 !== request.clientRenderedBoundaries.length || + 0 !== request.completedBoundaries.length || + (null !== request.trackedPostpones && + (0 !== request.trackedPostpones.rootNodes.length || + null !== request.trackedPostpones.rootSlots)) + ) { + var resumableState$jscomp$0 = request.resumableState; + if (0 === (resumableState$jscomp$0.instructions & 64)) { + resumableState$jscomp$0.instructions |= 64; + destination.push(renderState$jscomp$0.startInlineScript); + if (0 === (resumableState$jscomp$0.instructions & 32)) { + resumableState$jscomp$0.instructions |= 32; + var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_"; + destination.push(' id="'); + var chunk$jscomp$1 = escapeTextForBrowser(shellId); + destination.push(chunk$jscomp$1); + destination.push('"'); + } + destination.push(">"); + destination.push( + "requestAnimationFrame(function(){$RT=performance.now()});" + ); + destination.push("\x3c/script>"); + } + } + writeBootstrap(destination, renderState$jscomp$0); + } + var renderState$jscomp$1 = request.renderState; + completedRootSegment = 0; + var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks; + for ( + completedRootSegment = 0; + completedRootSegment < viewportChunks$jscomp$0.length; + completedRootSegment++ + ) + destination.push(viewportChunks$jscomp$0[completedRootSegment]); + viewportChunks$jscomp$0.length = 0; + renderState$jscomp$1.preconnects.forEach(flushResource, destination); + renderState$jscomp$1.preconnects.clear(); + renderState$jscomp$1.fontPreloads.forEach(flushResource, destination); + renderState$jscomp$1.fontPreloads.clear(); + renderState$jscomp$1.highImagePreloads.forEach( + flushResource, + destination + ); + renderState$jscomp$1.highImagePreloads.clear(); + renderState$jscomp$1.styles.forEach(preloadLateStyles, destination); + renderState$jscomp$1.scripts.forEach(flushResource, destination); + renderState$jscomp$1.scripts.clear(); + renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination); + renderState$jscomp$1.bulkPreloads.clear(); + var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks; + for ( + completedRootSegment = 0; + completedRootSegment < hoistableChunks$jscomp$0.length; + completedRootSegment++ + ) + destination.push(hoistableChunks$jscomp$0[completedRootSegment]); + hoistableChunks$jscomp$0.length = 0; + var clientRenderedBoundaries = request.clientRenderedBoundaries; + for (i = 0; i < clientRenderedBoundaries.length; i++) { + var boundary = clientRenderedBoundaries[i]; + renderState$jscomp$1 = destination; + var resumableState$jscomp$1 = request.resumableState, + renderState$jscomp$2 = request.renderState, + id = boundary.rootSegmentID, + errorDigest = boundary.errorDigest; + renderState$jscomp$1.push(renderState$jscomp$2.startInlineScript); + renderState$jscomp$1.push(">"); + 0 === (resumableState$jscomp$1.instructions & 4) + ? ((resumableState$jscomp$1.instructions |= 4), + renderState$jscomp$1.push( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("' + )) + : renderState$jscomp$1.push('$RX("'); + renderState$jscomp$1.push(renderState$jscomp$2.boundaryPrefix); + var chunk$jscomp$2 = id.toString(16); + renderState$jscomp$1.push(chunk$jscomp$2); + renderState$jscomp$1.push('"'); + if (errorDigest) { + renderState$jscomp$1.push(","); + var chunk$jscomp$3 = escapeJSStringsForInstructionScripts( + errorDigest || "" + ); + renderState$jscomp$1.push(chunk$jscomp$3); + } + var JSCompiler_inline_result = + renderState$jscomp$1.push(")\x3c/script>"); + if (!JSCompiler_inline_result) { + request.destination = null; + i++; + clientRenderedBoundaries.splice(0, i); + return; + } + } + clientRenderedBoundaries.splice(0, i); + var completedBoundaries = request.completedBoundaries; + for (i = 0; i < completedBoundaries.length; i++) + if ( + !flushCompletedBoundary(request, destination, completedBoundaries[i]) + ) { + request.destination = null; + i++; + completedBoundaries.splice(0, i); + return; + } + completedBoundaries.splice(0, i); + flushingPartialBoundaries = !0; + var partialBoundaries = request.partialBoundaries; + for (i = 0; i < partialBoundaries.length; i++) { + var boundary$69 = partialBoundaries[i]; + a: { + clientRenderedBoundaries = request; + boundary = destination; + flushedByteSize = boundary$69.byteSize; + var completedSegments = boundary$69.completedSegments; + for ( + JSCompiler_inline_result = 0; + JSCompiler_inline_result < completedSegments.length; + JSCompiler_inline_result++ + ) + if ( + !flushPartiallyCompletedSegment( + clientRenderedBoundaries, + boundary, + boundary$69, + completedSegments[JSCompiler_inline_result] + ) + ) { + JSCompiler_inline_result++; + completedSegments.splice(0, JSCompiler_inline_result); + var JSCompiler_inline_result$jscomp$0 = !1; + break a; + } + completedSegments.splice(0, JSCompiler_inline_result); + var row = boundary$69.row; + null !== row && + row.together && + 1 === boundary$69.pendingTasks && + (1 === row.pendingTasks + ? unblockSuspenseListRow( + clientRenderedBoundaries, + row, + row.hoistables + ) + : row.pendingTasks--); + JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary( + boundary, + boundary$69.contentState, + clientRenderedBoundaries.renderState + ); + } + if (!JSCompiler_inline_result$jscomp$0) { + request.destination = null; + i++; + partialBoundaries.splice(0, i); + return; + } + } + partialBoundaries.splice(0, i); + flushingPartialBoundaries = !1; + var largeBoundaries = request.completedBoundaries; + for (i = 0; i < largeBoundaries.length; i++) + if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) { + request.destination = null; + i++; + largeBoundaries.splice(0, i); + return; + } + largeBoundaries.splice(0, i); + } + } finally { + (flushingPartialBoundaries = !1), + 0 === request.allPendingTasks && + 0 === request.clientRenderedBoundaries.length && + 0 === request.completedBoundaries.length && + ((request.flushScheduled = !1), + (i = request.resumableState), + i.hasBody && + ((partialBoundaries = endChunkForTag("body")), + destination.push(partialBoundaries)), + i.hasHtml && ((i = endChunkForTag("html")), destination.push(i)), + (request.status = 14), + destination.push(null), + (request.destination = null)); + } +} +function enqueueFlush(request) { + if ( + !1 === request.flushScheduled && + 0 === request.pingedTasks.length && + null !== request.destination + ) { + request.flushScheduled = !0; + var destination = request.destination; + destination + ? flushCompletedQueues(request, destination) + : (request.flushScheduled = !1); + } +} +function startFlowing(request, destination) { + if (13 === request.status) + (request.status = 14), destination.destroy(request.fatalError); + else if (14 !== request.status && null === request.destination) { + request.destination = destination; + try { + flushCompletedQueues(request, destination); + } catch (error) { + logRecoverableError(request, error, {}), fatalError(request, error); + } + } +} +function abort(request, reason) { + if (11 === request.status || 10 === request.status) request.status = 12; + try { + var abortableTasks = request.abortableTasks; + if (0 < abortableTasks.size) { + var error = + void 0 === reason + ? Error("The render was aborted by the server without a reason.") + : "object" === typeof reason && + null !== reason && + "function" === typeof reason.then + ? Error("The render was aborted by the server with a promise.") + : reason; + request.fatalError = error; + abortableTasks.forEach(function (task) { + return abortTask(task, request, error); + }); + abortableTasks.clear(); + } + null !== request.destination && + flushCompletedQueues(request, request.destination); + } catch (error$71) { + logRecoverableError(request, error$71, {}), fatalError(request, error$71); + } +} +function addToReplayParent(node, parentKeyPath, trackedPostpones) { + if (null === parentKeyPath) trackedPostpones.rootNodes.push(node); + else { + var workingMap = trackedPostpones.workingMap, + parentNode = workingMap.get(parentKeyPath); + void 0 === parentNode && + ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]), + workingMap.set(parentKeyPath, parentNode), + addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones)); + parentNode[2].push(node); + } +} +function onError() {} +function renderToStringImpl( + children, + options, + generateStaticMarkup, + abortReason +) { + var didFatal = !1, + fatalError = null, + result = "", + readyToStream = !1; + options = createResumableState(options ? options.identifierPrefix : void 0); + children = createRequest( + children, + options, + createRenderState(options, generateStaticMarkup), + createFormatContext(0, null, 0, null), + Infinity, + onError, + void 0, + function () { + readyToStream = !0; + }, + void 0, + void 0, + void 0 + ); + children.flushScheduled = null !== children.destination; + performWork(children); + 10 === children.status && (children.status = 11); + null === children.trackedPostpones && + safelyEmitEarlyPreloads(children, 0 === children.pendingRootTasks); + abort(children, abortReason); + startFlowing(children, { + push: function (chunk) { + null !== chunk && (result += chunk); + return !0; + }, + destroy: function (error) { + didFatal = !0; + fatalError = error; + } + }); + if (didFatal && fatalError !== abortReason) throw fatalError; + if (!readyToStream) + throw Error( + "A component suspended while responding to synchronous input. This will cause the UI to be replaced with a loading indicator. To fix, updates that suspend should be wrapped with startTransition." + ); + return result; +} +exports.renderToStaticMarkup = function (children, options) { + return renderToStringImpl( + children, + options, + !0, + 'The server used "renderToStaticMarkup" which does not support Suspense. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' + ); +}; +exports.renderToString = function (children, options) { + return renderToStringImpl( + children, + options, + !1, + 'The server used "renderToString" which does not support Suspense. If you intended for this Suspense boundary to render the fallback content on the server consider throwing an Error somewhere within the Suspense boundary. If you intended to have the server wait for the suspended component please switch to "renderToPipeableStream" which supports Suspense on the server' + ); +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react-dom/cjs/react-dom-server.browser.production.js b/cli/app/node_modules/react-dom/cjs/react-dom-server.browser.production.js new file mode 100644 index 00000000000..976fec348f7 --- /dev/null +++ b/cli/app/node_modules/react-dom/cjs/react-dom-server.browser.production.js @@ -0,0 +1,7410 @@ +/** + * @license React + * react-dom-server.browser.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* + + + JS Implementation of MurmurHash3 (r136) (as of May 20, 2011) + + Copyright (c) 2011 Gary Court + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +"use strict"; +var React = require("react"), + ReactDOM = require("react-dom"); +function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return ( + "Minified React error #" + + code + + "; visit " + + url + + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." + ); +} +var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_SCOPE_TYPE = Symbol.for("react.scope"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"), + REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; +} +var isArrayImpl = Array.isArray; +function murmurhash3_32_gc(key, seed) { + var remainder = key.length & 3; + var bytes = key.length - remainder; + var h1 = seed; + for (seed = 0; seed < bytes; ) { + var k1 = + (key.charCodeAt(seed) & 255) | + ((key.charCodeAt(++seed) & 255) << 8) | + ((key.charCodeAt(++seed) & 255) << 16) | + ((key.charCodeAt(++seed) & 255) << 24); + ++seed; + k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = + (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295; + h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16); + } + k1 = 0; + switch (remainder) { + case 3: + k1 ^= (key.charCodeAt(seed + 2) & 255) << 16; + case 2: + k1 ^= (key.charCodeAt(seed + 1) & 255) << 8; + case 1: + (k1 ^= key.charCodeAt(seed) & 255), + (k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295), + (k1 = (k1 << 15) | (k1 >>> 17)), + (h1 ^= + (461845907 * (k1 & 65535) + + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295); + } + h1 ^= key.length; + h1 ^= h1 >>> 16; + h1 = + (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= h1 >>> 13; + h1 = + (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + return (h1 ^ (h1 >>> 16)) >>> 0; +} +var channel = new MessageChannel(), + taskQueue = []; +channel.port1.onmessage = function () { + var task = taskQueue.shift(); + task && task(); +}; +function scheduleWork(callback) { + taskQueue.push(callback); + channel.port2.postMessage(null); +} +function handleErrorInNextTick(error) { + setTimeout(function () { + throw error; + }); +} +var LocalPromise = Promise, + scheduleMicrotask = + "function" === typeof queueMicrotask + ? queueMicrotask + : function (callback) { + LocalPromise.resolve(null) + .then(callback) + .catch(handleErrorInNextTick); + }, + currentView = null, + writtenBytes = 0; +function writeChunk(destination, chunk) { + if (0 !== chunk.byteLength) + if (2048 < chunk.byteLength) + 0 < writtenBytes && + (destination.enqueue( + new Uint8Array(currentView.buffer, 0, writtenBytes) + ), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)), + destination.enqueue(chunk); + else { + var allowableBytes = currentView.length - writtenBytes; + allowableBytes < chunk.byteLength && + (0 === allowableBytes + ? destination.enqueue(currentView) + : (currentView.set(chunk.subarray(0, allowableBytes), writtenBytes), + destination.enqueue(currentView), + (chunk = chunk.subarray(allowableBytes))), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)); + currentView.set(chunk, writtenBytes); + writtenBytes += chunk.byteLength; + } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); + return !0; +} +function completeWriting(destination) { + currentView && + 0 < writtenBytes && + (destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes)), + (currentView = null), + (writtenBytes = 0)); +} +var textEncoder = new TextEncoder(); +function stringToChunk(content) { + return textEncoder.encode(content); +} +function stringToPrecomputedChunk(content) { + return textEncoder.encode(content); +} +function byteLengthOfChunk(chunk) { + return chunk.byteLength; +} +function closeWithError(destination, error) { + "function" === typeof destination.error + ? destination.error(error) + : destination.close(); +} +var assign = Object.assign, + hasOwnProperty = Object.prototype.hasOwnProperty, + VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), + illegalAttributeNameCache = {}, + validatedAttributeNameCache = {}; +function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return !0; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return (validatedAttributeNameCache[attributeName] = !0); + illegalAttributeNameCache[attributeName] = !0; + return !1; +} +var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ), + aliases = new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), + matchHtmlRegExp = /["'&<>]/; +function escapeTextForBrowser(text) { + if ( + "boolean" === typeof text || + "number" === typeof text || + "bigint" === typeof text + ) + return "" + text; + text = "" + text; + var match = matchHtmlRegExp.exec(text); + if (match) { + var html = "", + index, + lastIndex = 0; + for (index = match.index; index < text.length; index++) { + switch (text.charCodeAt(index)) { + case 34: + match = """; + break; + case 38: + match = "&"; + break; + case 39: + match = "'"; + break; + case 60: + match = "<"; + break; + case 62: + match = ">"; + break; + default: + continue; + } + lastIndex !== index && (html += text.slice(lastIndex, index)); + lastIndex = index + 1; + html += match; + } + text = lastIndex !== index ? html + text.slice(lastIndex, index) : html; + } + return text; +} +var uppercasePattern = /([A-Z])/g, + msPattern = /^ms-/, + isJavaScriptProtocol = + /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; +function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) + ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" + : url; +} +var ReactSharedInternals = + React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + ReactDOMSharedInternals = + ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + sharedNotPendingObject = { + pending: !1, + data: null, + method: null, + action: null + }, + previousDispatcher = ReactDOMSharedInternals.d; +ReactDOMSharedInternals.d = { + f: previousDispatcher.f, + r: previousDispatcher.r, + D: prefetchDNS, + C: preconnect, + L: preload, + m: preloadModule, + X: preinitScript, + S: preinitStyle, + M: preinitModuleScript +}; +var PRELOAD_NO_CREDS = [], + currentlyFlushingRenderState = null; +stringToPrecomputedChunk('"></template>'); +var startInlineScript = stringToPrecomputedChunk("<script"), + endInlineScript = stringToPrecomputedChunk("\x3c/script>"), + startScriptSrc = stringToPrecomputedChunk('<script src="'), + startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'), + scriptNonce = stringToPrecomputedChunk(' nonce="'), + scriptIntegirty = stringToPrecomputedChunk(' integrity="'), + scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'), + endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'), + startInlineStyle = stringToPrecomputedChunk("<style"), + scriptRegex = /(<\/|<)(s)(cript)/gi; +function scriptReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix; +} +var importMapScriptStart = stringToPrecomputedChunk( + '<script type="importmap">' + ), + importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>"); +function createRenderState( + resumableState, + nonce, + externalRuntimeConfig, + importMap, + onHeaders, + maxHeadersLength +) { + externalRuntimeConfig = + "string" === typeof nonce ? nonce : nonce && nonce.script; + var inlineScriptWithNonce = + void 0 === externalRuntimeConfig + ? startInlineScript + : stringToPrecomputedChunk( + '<script nonce="' + + escapeTextForBrowser(externalRuntimeConfig) + + '"' + ), + nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style, + inlineStyleWithNonce = + void 0 === nonceStyle + ? startInlineStyle + : stringToPrecomputedChunk( + '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"' + ), + idPrefix = resumableState.idPrefix, + bootstrapChunks = [], + bootstrapScriptContent = resumableState.bootstrapScriptContent, + bootstrapScripts = resumableState.bootstrapScripts, + bootstrapModules = resumableState.bootstrapModules; + void 0 !== bootstrapScriptContent && + (bootstrapChunks.push(inlineScriptWithNonce), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + endOfStartTag, + stringToChunk( + ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer) + ), + endInlineScript + )); + bootstrapScriptContent = []; + void 0 !== importMap && + (bootstrapScriptContent.push(importMapScriptStart), + bootstrapScriptContent.push( + stringToChunk( + ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer) + ) + ), + bootstrapScriptContent.push(importMapScriptEnd)); + importMap = onHeaders + ? { + preconnects: "", + fontPreloads: "", + highImagePreloads: "", + remainingCapacity: + 2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3) + } + : null; + onHeaders = { + placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"), + segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"), + boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"), + startInlineScript: inlineScriptWithNonce, + startInlineStyle: inlineStyleWithNonce, + preamble: createPreambleState(), + externalRuntimeScript: null, + bootstrapChunks: bootstrapChunks, + importMapChunks: bootstrapScriptContent, + onHeaders: onHeaders, + headers: importMap, + resets: { + font: {}, + dns: {}, + connect: { default: {}, anonymous: {}, credentials: {} }, + image: {}, + style: {} + }, + charsetChunks: [], + viewportChunks: [], + hoistableChunks: [], + preconnects: new Set(), + fontPreloads: new Set(), + highImagePreloads: new Set(), + styles: new Map(), + bootstrapScripts: new Set(), + scripts: new Set(), + bulkPreloads: new Set(), + preloads: { + images: new Map(), + stylesheets: new Map(), + scripts: new Map(), + moduleScripts: new Map() + }, + nonce: { script: externalRuntimeConfig, style: nonceStyle }, + hoistableState: null, + stylesToHoist: !1 + }; + if (void 0 !== bootstrapScripts) + for (importMap = 0; importMap < bootstrapScripts.length; importMap++) + (idPrefix = bootstrapScripts[importMap]), + (nonceStyle = inlineScriptWithNonce = void 0), + (inlineStyleWithNonce = { + rel: "preload", + as: "script", + fetchPriority: "low", + nonce: nonce + }), + "string" === typeof idPrefix + ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix) + : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src), + (inlineStyleWithNonce.integrity = nonceStyle = + "string" === typeof idPrefix.integrity + ? idPrefix.integrity + : void 0), + (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce = + "string" === typeof idPrefix || null == idPrefix.crossOrigin + ? void 0 + : "use-credentials" === idPrefix.crossOrigin + ? "use-credentials" + : "")), + (idPrefix = resumableState), + (bootstrapScriptContent = maxHeadersLength), + (idPrefix.scriptResources[bootstrapScriptContent] = null), + (idPrefix.moduleScriptResources[bootstrapScriptContent] = null), + (idPrefix = []), + pushLinkImpl(idPrefix, inlineStyleWithNonce), + onHeaders.bootstrapScripts.add(idPrefix), + bootstrapChunks.push( + startScriptSrc, + stringToChunk(escapeTextForBrowser(maxHeadersLength)), + attributeEnd + ), + externalRuntimeConfig && + bootstrapChunks.push( + scriptNonce, + stringToChunk(escapeTextForBrowser(externalRuntimeConfig)), + attributeEnd + ), + "string" === typeof nonceStyle && + bootstrapChunks.push( + scriptIntegirty, + stringToChunk(escapeTextForBrowser(nonceStyle)), + attributeEnd + ), + "string" === typeof inlineScriptWithNonce && + bootstrapChunks.push( + scriptCrossOrigin, + stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)), + attributeEnd + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(endAsyncScript); + if (void 0 !== bootstrapModules) + for (nonce = 0; nonce < bootstrapModules.length; nonce++) + (nonceStyle = bootstrapModules[nonce]), + (maxHeadersLength = importMap = void 0), + (inlineScriptWithNonce = { + rel: "modulepreload", + fetchPriority: "low", + nonce: externalRuntimeConfig + }), + "string" === typeof nonceStyle + ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle) + : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src), + (inlineScriptWithNonce.integrity = maxHeadersLength = + "string" === typeof nonceStyle.integrity + ? nonceStyle.integrity + : void 0), + (inlineScriptWithNonce.crossOrigin = importMap = + "string" === typeof nonceStyle || null == nonceStyle.crossOrigin + ? void 0 + : "use-credentials" === nonceStyle.crossOrigin + ? "use-credentials" + : "")), + (nonceStyle = resumableState), + (inlineStyleWithNonce = bootstrapScripts), + (nonceStyle.scriptResources[inlineStyleWithNonce] = null), + (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null), + (nonceStyle = []), + pushLinkImpl(nonceStyle, inlineScriptWithNonce), + onHeaders.bootstrapScripts.add(nonceStyle), + bootstrapChunks.push( + startModuleSrc, + stringToChunk(escapeTextForBrowser(bootstrapScripts)), + attributeEnd + ), + externalRuntimeConfig && + bootstrapChunks.push( + scriptNonce, + stringToChunk(escapeTextForBrowser(externalRuntimeConfig)), + attributeEnd + ), + "string" === typeof maxHeadersLength && + bootstrapChunks.push( + scriptIntegirty, + stringToChunk(escapeTextForBrowser(maxHeadersLength)), + attributeEnd + ), + "string" === typeof importMap && + bootstrapChunks.push( + scriptCrossOrigin, + stringToChunk(escapeTextForBrowser(importMap)), + attributeEnd + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(endAsyncScript); + return onHeaders; +} +function createResumableState( + identifierPrefix, + externalRuntimeConfig, + bootstrapScriptContent, + bootstrapScripts, + bootstrapModules +) { + return { + idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix, + nextFormID: 0, + streamingFormat: 0, + bootstrapScriptContent: bootstrapScriptContent, + bootstrapScripts: bootstrapScripts, + bootstrapModules: bootstrapModules, + instructions: 0, + hasBody: !1, + hasHtml: !1, + unknownResources: {}, + dnsResources: {}, + connectResources: { default: {}, anonymous: {}, credentials: {} }, + imageResources: {}, + styleResources: {}, + scriptResources: {}, + moduleUnknownResources: {}, + moduleScriptResources: {} + }; +} +function createPreambleState() { + return { htmlChunks: null, headChunks: null, bodyChunks: null }; +} +function createFormatContext( + insertionMode, + selectedValue, + tagScope, + viewTransition +) { + return { + insertionMode: insertionMode, + selectedValue: selectedValue, + tagScope: tagScope, + viewTransition: viewTransition + }; +} +function createRootFormatContext(namespaceURI) { + return createFormatContext( + "http://www.w3.org/2000/svg" === namespaceURI + ? 4 + : "http://www.w3.org/1998/Math/MathML" === namespaceURI + ? 5 + : 0, + null, + 0, + null + ); +} +function getChildFormatContext(parentContext, type, props) { + var subtreeScope = parentContext.tagScope & -25; + switch (type) { + case "noscript": + return createFormatContext(2, null, subtreeScope | 1, null); + case "select": + return createFormatContext( + 2, + null != props.value ? props.value : props.defaultValue, + subtreeScope, + null + ); + case "svg": + return createFormatContext(4, null, subtreeScope, null); + case "picture": + return createFormatContext(2, null, subtreeScope | 2, null); + case "math": + return createFormatContext(5, null, subtreeScope, null); + case "foreignObject": + return createFormatContext(2, null, subtreeScope, null); + case "table": + return createFormatContext(6, null, subtreeScope, null); + case "thead": + case "tbody": + case "tfoot": + return createFormatContext(7, null, subtreeScope, null); + case "colgroup": + return createFormatContext(9, null, subtreeScope, null); + case "tr": + return createFormatContext(8, null, subtreeScope, null); + case "head": + if (2 > parentContext.insertionMode) + return createFormatContext(3, null, subtreeScope, null); + break; + case "html": + if (0 === parentContext.insertionMode) + return createFormatContext(1, null, subtreeScope, null); + } + return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode + ? createFormatContext(2, null, subtreeScope, null) + : parentContext.tagScope !== subtreeScope + ? createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + null + ) + : parentContext; +} +function getSuspenseViewTransition(parentViewTransition) { + return null === parentViewTransition + ? null + : { + update: parentViewTransition.update, + enter: "none", + exit: "none", + share: parentViewTransition.update, + name: parentViewTransition.autoName, + autoName: parentViewTransition.autoName, + nameIdx: 0 + }; +} +function getSuspenseFallbackFormatContext(resumableState, parentContext) { + parentContext.tagScope & 32 && (resumableState.instructions |= 128); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + parentContext.tagScope | 12, + getSuspenseViewTransition(parentContext.viewTransition) + ); +} +function getSuspenseContentFormatContext(resumableState, parentContext) { + resumableState = getSuspenseViewTransition(parentContext.viewTransition); + var subtreeScope = parentContext.tagScope | 16; + null !== resumableState && + "none" !== resumableState.share && + (subtreeScope |= 64); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + resumableState + ); +} +var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e"); +function pushTextInstance(target, text, renderState, textEmbedded) { + if ("" === text) return textEmbedded; + textEmbedded && target.push(textSeparator); + target.push(stringToChunk(escapeTextForBrowser(text))); + return !0; +} +var styleNameCache = new Map(), + styleAttributeStart = stringToPrecomputedChunk(' style="'), + styleAssign = stringToPrecomputedChunk(":"), + styleSeparator = stringToPrecomputedChunk(";"); +function pushStyleAttribute(target, style) { + if ("object" !== typeof style) throw Error(formatProdErrorMessage(62)); + var isFirst = !0, + styleName; + for (styleName in style) + if (hasOwnProperty.call(style, styleName)) { + var styleValue = style[styleName]; + if ( + null != styleValue && + "boolean" !== typeof styleValue && + "" !== styleValue + ) { + if (0 === styleName.indexOf("--")) { + var nameChunk = stringToChunk(escapeTextForBrowser(styleName)); + styleValue = stringToChunk( + escapeTextForBrowser(("" + styleValue).trim()) + ); + } else + (nameChunk = styleNameCache.get(styleName)), + void 0 === nameChunk && + ((nameChunk = stringToPrecomputedChunk( + escapeTextForBrowser( + styleName + .replace(uppercasePattern, "-$1") + .toLowerCase() + .replace(msPattern, "-ms-") + ) + )), + styleNameCache.set(styleName, nameChunk)), + (styleValue = + "number" === typeof styleValue + ? 0 === styleValue || unitlessNumbers.has(styleName) + ? stringToChunk("" + styleValue) + : stringToChunk(styleValue + "px") + : stringToChunk( + escapeTextForBrowser(("" + styleValue).trim()) + )); + isFirst + ? ((isFirst = !1), + target.push( + styleAttributeStart, + nameChunk, + styleAssign, + styleValue + )) + : target.push(styleSeparator, nameChunk, styleAssign, styleValue); + } + } + isFirst || target.push(attributeEnd); +} +var attributeSeparator = stringToPrecomputedChunk(" "), + attributeAssign = stringToPrecomputedChunk('="'), + attributeEnd = stringToPrecomputedChunk('"'), + attributeEmptyString = stringToPrecomputedChunk('=""'); +function pushBooleanAttribute(target, name, value) { + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(attributeSeparator, stringToChunk(name), attributeEmptyString); +} +function pushStringAttribute(target, name, value) { + "function" !== typeof value && + "symbol" !== typeof value && + "boolean" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); +} +var actionJavaScriptURL = stringToPrecomputedChunk( + escapeTextForBrowser( + "javascript:throw new Error('React form unexpectedly submitted.')" + ) + ), + startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"'); +function pushAdditionalFormField(value, key) { + this.push(startHiddenInputChunk); + validateAdditionalFormField(value); + pushStringAttribute(this, "name", key); + pushStringAttribute(this, "value", value); + this.push(endOfStartTagSelfClosing); +} +function validateAdditionalFormField(value) { + if ("string" !== typeof value) throw Error(formatProdErrorMessage(480)); +} +function getCustomFormFields(resumableState, formAction) { + if ("function" === typeof formAction.$$FORM_ACTION) { + var id = resumableState.nextFormID++; + resumableState = resumableState.idPrefix + id; + try { + var customFields = formAction.$$FORM_ACTION(resumableState); + if (customFields) { + var formData = customFields.data; + null != formData && formData.forEach(validateAdditionalFormField); + } + return customFields; + } catch (x) { + if ("object" === typeof x && null !== x && "function" === typeof x.then) + throw x; + } + } + return null; +} +function pushFormActionAttribute( + target, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name +) { + var formData = null; + if ("function" === typeof formAction) { + var customFields = getCustomFormFields(resumableState, formAction); + null !== customFields + ? ((name = customFields.name), + (formAction = customFields.action || ""), + (formEncType = customFields.encType), + (formMethod = customFields.method), + (formTarget = customFields.target), + (formData = customFields.data)) + : (target.push( + attributeSeparator, + stringToChunk("formAction"), + attributeAssign, + actionJavaScriptURL, + attributeEnd + ), + (formTarget = formMethod = formEncType = formAction = name = null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != name && pushAttribute(target, "name", name); + null != formAction && pushAttribute(target, "formAction", formAction); + null != formEncType && pushAttribute(target, "formEncType", formEncType); + null != formMethod && pushAttribute(target, "formMethod", formMethod); + null != formTarget && pushAttribute(target, "formTarget", formTarget); + return formData; +} +function pushAttribute(target, name, value) { + switch (name) { + case "className": + pushStringAttribute(target, "class", value); + break; + case "tabIndex": + pushStringAttribute(target, "tabindex", value); + break; + case "dir": + case "role": + case "viewBox": + case "width": + case "height": + pushStringAttribute(target, name, value); + break; + case "style": + pushStyleAttribute(target, value); + break; + case "src": + case "href": + if ("" === value) break; + case "action": + case "formAction": + if ( + null == value || + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "defaultValue": + case "defaultChecked": + case "innerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "autoFocus": + case "multiple": + case "muted": + pushBooleanAttribute(target, name.toLowerCase(), value); + break; + case "xlinkHref": + if ( + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push( + attributeSeparator, + stringToChunk("xlink:href"), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "contentEditable": + case "spellCheck": + case "draggable": + case "value": + case "autoReverse": + case "externalResourcesRequired": + case "focusable": + case "preserveAlpha": + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "inert": + case "allowFullScreen": + case "async": + case "autoPlay": + case "controls": + case "default": + case "defer": + case "disabled": + case "disablePictureInPicture": + case "disableRemotePlayback": + case "formNoValidate": + case "hidden": + case "loop": + case "noModule": + case "noValidate": + case "open": + case "playsInline": + case "readOnly": + case "required": + case "reversed": + case "scoped": + case "seamless": + case "itemScope": + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeEmptyString + ); + break; + case "capture": + case "download": + !0 === value + ? target.push( + attributeSeparator, + stringToChunk(name), + attributeEmptyString + ) + : !1 !== value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "cols": + case "rows": + case "size": + case "span": + "function" !== typeof value && + "symbol" !== typeof value && + !isNaN(value) && + 1 <= value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "rowSpan": + case "start": + "function" === typeof value || + "symbol" === typeof value || + isNaN(value) || + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "xlinkActuate": + pushStringAttribute(target, "xlink:actuate", value); + break; + case "xlinkArcrole": + pushStringAttribute(target, "xlink:arcrole", value); + break; + case "xlinkRole": + pushStringAttribute(target, "xlink:role", value); + break; + case "xlinkShow": + pushStringAttribute(target, "xlink:show", value); + break; + case "xlinkTitle": + pushStringAttribute(target, "xlink:title", value); + break; + case "xlinkType": + pushStringAttribute(target, "xlink:type", value); + break; + case "xmlBase": + pushStringAttribute(target, "xml:base", value); + break; + case "xmlLang": + pushStringAttribute(target, "xml:lang", value); + break; + case "xmlSpace": + pushStringAttribute(target, "xml:space", value); + break; + default: + if ( + !(2 < name.length) || + ("o" !== name[0] && "O" !== name[0]) || + ("n" !== name[1] && "N" !== name[1]) + ) + if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) { + switch (typeof value) { + case "function": + case "symbol": + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) return; + } + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + } + } +} +var endOfStartTag = stringToPrecomputedChunk(">"), + endOfStartTagSelfClosing = stringToPrecomputedChunk("/>"); +function pushInnerHTML(target, innerHTML, children) { + if (null != innerHTML) { + if (null != children) throw Error(formatProdErrorMessage(60)); + if ("object" !== typeof innerHTML || !("__html" in innerHTML)) + throw Error(formatProdErrorMessage(61)); + innerHTML = innerHTML.__html; + null !== innerHTML && + void 0 !== innerHTML && + target.push(stringToChunk("" + innerHTML)); + } +} +function flattenOptionChildren(children) { + var content = ""; + React.Children.forEach(children, function (child) { + null != child && (content += child); + }); + return content; +} +var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'), + formReplayingRuntimeScript = stringToPrecomputedChunk( + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});' + ); +function injectFormReplayingRuntime(resumableState, renderState) { + if (0 === (resumableState.instructions & 16)) { + resumableState.instructions |= 16; + var preamble = renderState.preamble, + bootstrapChunks = renderState.bootstrapChunks; + (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length + ? (bootstrapChunks.push(renderState.startInlineScript), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + endOfStartTag, + formReplayingRuntimeScript, + endInlineScript + )) + : bootstrapChunks.unshift( + renderState.startInlineScript, + endOfStartTag, + formReplayingRuntimeScript, + endInlineScript + ); + } +} +var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"), + formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e"); +function pushLinkImpl(target, props) { + target.push(startChunkForTag("link")); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, "link")); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTagSelfClosing); + return null; +} +var styleRegex = /(<\/|<)(s)(tyle)/gi; +function styleReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix; +} +function pushSelfClosing(target, props, tag) { + target.push(startChunkForTag(tag)); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, tag)); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTagSelfClosing); + return null; +} +function pushTitleImpl(target, props) { + target.push(startChunkForTag("title")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + props = Array.isArray(children) + ? 2 > children.length + ? children[0] + : null + : children; + "function" !== typeof props && + "symbol" !== typeof props && + null !== props && + void 0 !== props && + target.push(stringToChunk(escapeTextForBrowser("" + props))); + pushInnerHTML(target, innerHTML, children); + target.push(endChunkForTag("title")); + return null; +} +var headPreambleContributionChunk = + stringToPrecomputedChunk("\x3c!--head--\x3e"), + bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"), + htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e"); +function pushScriptImpl(target, props) { + target.push(startChunkForTag("script")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, children); + "string" === typeof children && + target.push( + stringToChunk(("" + children).replace(scriptRegex, scriptReplacer)) + ); + target.push(endChunkForTag("script")); + return null; +} +function pushStartSingletonElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, tag); + return tag; +} +function pushStartGenericElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, tag); + return "string" === typeof tag + ? (target.push(stringToChunk(escapeTextForBrowser(tag))), null) + : tag; +} +var leadingNewline = stringToPrecomputedChunk("\n"), + VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, + validatedTagCache = new Map(); +function startChunkForTag(tag) { + var tagStartChunk = validatedTagCache.get(tag); + if (void 0 === tagStartChunk) { + if (!VALID_TAG_REGEX.test(tag)) + throw Error(formatProdErrorMessage(65, tag)); + tagStartChunk = stringToPrecomputedChunk("<" + tag); + validatedTagCache.set(tag, tagStartChunk); + } + return tagStartChunk; +} +var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>"); +function pushStartInstance( + target$jscomp$0, + type, + props, + resumableState, + renderState, + preambleState, + hoistableState, + formatContext, + textEmbedded +) { + switch (type) { + case "div": + case "span": + case "svg": + case "path": + break; + case "a": + target$jscomp$0.push(startChunkForTag("a")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + case "href": + "" === propValue + ? pushStringAttribute(target$jscomp$0, "href", "") + : pushAttribute(target$jscomp$0, propKey, propValue); + break; + default: + pushAttribute(target$jscomp$0, propKey, propValue); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML, children); + if ("string" === typeof children) { + target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children))); + var JSCompiler_inline_result = null; + } else JSCompiler_inline_result = children; + return JSCompiler_inline_result; + case "g": + case "p": + case "li": + break; + case "select": + target$jscomp$0.push(startChunkForTag("select")); + var children$jscomp$0 = null, + innerHTML$jscomp$0 = null, + propKey$jscomp$0; + for (propKey$jscomp$0 in props) + if (hasOwnProperty.call(props, propKey$jscomp$0)) { + var propValue$jscomp$0 = props[propKey$jscomp$0]; + if (null != propValue$jscomp$0) + switch (propKey$jscomp$0) { + case "children": + children$jscomp$0 = propValue$jscomp$0; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$0 = propValue$jscomp$0; + break; + case "defaultValue": + case "value": + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$0, + propValue$jscomp$0 + ); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); + return children$jscomp$0; + case "option": + var selectedValue = formatContext.selectedValue; + target$jscomp$0.push(startChunkForTag("option")); + var children$jscomp$1 = null, + value = null, + selected = null, + innerHTML$jscomp$1 = null, + propKey$jscomp$1; + for (propKey$jscomp$1 in props) + if (hasOwnProperty.call(props, propKey$jscomp$1)) { + var propValue$jscomp$1 = props[propKey$jscomp$1]; + if (null != propValue$jscomp$1) + switch (propKey$jscomp$1) { + case "children": + children$jscomp$1 = propValue$jscomp$1; + break; + case "selected": + selected = propValue$jscomp$1; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$1 = propValue$jscomp$1; + break; + case "value": + value = propValue$jscomp$1; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$1, + propValue$jscomp$1 + ); + } + } + if (null != selectedValue) { + var stringValue = + null !== value + ? "" + value + : flattenOptionChildren(children$jscomp$1); + if (isArrayImpl(selectedValue)) + for (var i = 0; i < selectedValue.length; i++) { + if ("" + selectedValue[i] === stringValue) { + target$jscomp$0.push(selectedMarkerAttribute); + break; + } + } + else + "" + selectedValue === stringValue && + target$jscomp$0.push(selectedMarkerAttribute); + } else selected && target$jscomp$0.push(selectedMarkerAttribute); + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1); + return children$jscomp$1; + case "textarea": + target$jscomp$0.push(startChunkForTag("textarea")); + var value$jscomp$0 = null, + defaultValue = null, + children$jscomp$2 = null, + propKey$jscomp$2; + for (propKey$jscomp$2 in props) + if (hasOwnProperty.call(props, propKey$jscomp$2)) { + var propValue$jscomp$2 = props[propKey$jscomp$2]; + if (null != propValue$jscomp$2) + switch (propKey$jscomp$2) { + case "children": + children$jscomp$2 = propValue$jscomp$2; + break; + case "value": + value$jscomp$0 = propValue$jscomp$2; + break; + case "defaultValue": + defaultValue = propValue$jscomp$2; + break; + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(91)); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$2, + propValue$jscomp$2 + ); + } + } + null === value$jscomp$0 && + null !== defaultValue && + (value$jscomp$0 = defaultValue); + target$jscomp$0.push(endOfStartTag); + if (null != children$jscomp$2) { + if (null != value$jscomp$0) throw Error(formatProdErrorMessage(92)); + if (isArrayImpl(children$jscomp$2)) { + if (1 < children$jscomp$2.length) + throw Error(formatProdErrorMessage(93)); + value$jscomp$0 = "" + children$jscomp$2[0]; + } + value$jscomp$0 = "" + children$jscomp$2; + } + "string" === typeof value$jscomp$0 && + "\n" === value$jscomp$0[0] && + target$jscomp$0.push(leadingNewline); + null !== value$jscomp$0 && + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser("" + value$jscomp$0)) + ); + return null; + case "input": + target$jscomp$0.push(startChunkForTag("input")); + var name = null, + formAction = null, + formEncType = null, + formMethod = null, + formTarget = null, + value$jscomp$1 = null, + defaultValue$jscomp$0 = null, + checked = null, + defaultChecked = null, + propKey$jscomp$3; + for (propKey$jscomp$3 in props) + if (hasOwnProperty.call(props, propKey$jscomp$3)) { + var propValue$jscomp$3 = props[propKey$jscomp$3]; + if (null != propValue$jscomp$3) + switch (propKey$jscomp$3) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, "input")); + case "name": + name = propValue$jscomp$3; + break; + case "formAction": + formAction = propValue$jscomp$3; + break; + case "formEncType": + formEncType = propValue$jscomp$3; + break; + case "formMethod": + formMethod = propValue$jscomp$3; + break; + case "formTarget": + formTarget = propValue$jscomp$3; + break; + case "defaultChecked": + defaultChecked = propValue$jscomp$3; + break; + case "defaultValue": + defaultValue$jscomp$0 = propValue$jscomp$3; + break; + case "checked": + checked = propValue$jscomp$3; + break; + case "value": + value$jscomp$1 = propValue$jscomp$3; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$3, + propValue$jscomp$3 + ); + } + } + var formData = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name + ); + null !== checked + ? pushBooleanAttribute(target$jscomp$0, "checked", checked) + : null !== defaultChecked && + pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked); + null !== value$jscomp$1 + ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) + : null !== defaultValue$jscomp$0 && + pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + target$jscomp$0.push(endOfStartTagSelfClosing); + null != formData && + formData.forEach(pushAdditionalFormField, target$jscomp$0); + return null; + case "button": + target$jscomp$0.push(startChunkForTag("button")); + var children$jscomp$3 = null, + innerHTML$jscomp$2 = null, + name$jscomp$0 = null, + formAction$jscomp$0 = null, + formEncType$jscomp$0 = null, + formMethod$jscomp$0 = null, + formTarget$jscomp$0 = null, + propKey$jscomp$4; + for (propKey$jscomp$4 in props) + if (hasOwnProperty.call(props, propKey$jscomp$4)) { + var propValue$jscomp$4 = props[propKey$jscomp$4]; + if (null != propValue$jscomp$4) + switch (propKey$jscomp$4) { + case "children": + children$jscomp$3 = propValue$jscomp$4; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$2 = propValue$jscomp$4; + break; + case "name": + name$jscomp$0 = propValue$jscomp$4; + break; + case "formAction": + formAction$jscomp$0 = propValue$jscomp$4; + break; + case "formEncType": + formEncType$jscomp$0 = propValue$jscomp$4; + break; + case "formMethod": + formMethod$jscomp$0 = propValue$jscomp$4; + break; + case "formTarget": + formTarget$jscomp$0 = propValue$jscomp$4; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$4, + propValue$jscomp$4 + ); + } + } + var formData$jscomp$0 = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction$jscomp$0, + formEncType$jscomp$0, + formMethod$jscomp$0, + formTarget$jscomp$0, + name$jscomp$0 + ); + target$jscomp$0.push(endOfStartTag); + null != formData$jscomp$0 && + formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3); + if ("string" === typeof children$jscomp$3) { + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser(children$jscomp$3)) + ); + var JSCompiler_inline_result$jscomp$0 = null; + } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3; + return JSCompiler_inline_result$jscomp$0; + case "form": + target$jscomp$0.push(startChunkForTag("form")); + var children$jscomp$4 = null, + innerHTML$jscomp$3 = null, + formAction$jscomp$1 = null, + formEncType$jscomp$1 = null, + formMethod$jscomp$1 = null, + formTarget$jscomp$1 = null, + propKey$jscomp$5; + for (propKey$jscomp$5 in props) + if (hasOwnProperty.call(props, propKey$jscomp$5)) { + var propValue$jscomp$5 = props[propKey$jscomp$5]; + if (null != propValue$jscomp$5) + switch (propKey$jscomp$5) { + case "children": + children$jscomp$4 = propValue$jscomp$5; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$3 = propValue$jscomp$5; + break; + case "action": + formAction$jscomp$1 = propValue$jscomp$5; + break; + case "encType": + formEncType$jscomp$1 = propValue$jscomp$5; + break; + case "method": + formMethod$jscomp$1 = propValue$jscomp$5; + break; + case "target": + formTarget$jscomp$1 = propValue$jscomp$5; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$5, + propValue$jscomp$5 + ); + } + } + var formData$jscomp$1 = null, + formActionName = null; + if ("function" === typeof formAction$jscomp$1) { + var customFields = getCustomFormFields( + resumableState, + formAction$jscomp$1 + ); + null !== customFields + ? ((formAction$jscomp$1 = customFields.action || ""), + (formEncType$jscomp$1 = customFields.encType), + (formMethod$jscomp$1 = customFields.method), + (formTarget$jscomp$1 = customFields.target), + (formData$jscomp$1 = customFields.data), + (formActionName = customFields.name)) + : (target$jscomp$0.push( + attributeSeparator, + stringToChunk("action"), + attributeAssign, + actionJavaScriptURL, + attributeEnd + ), + (formTarget$jscomp$1 = + formMethod$jscomp$1 = + formEncType$jscomp$1 = + formAction$jscomp$1 = + null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != formAction$jscomp$1 && + pushAttribute(target$jscomp$0, "action", formAction$jscomp$1); + null != formEncType$jscomp$1 && + pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1); + null != formMethod$jscomp$1 && + pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); + null != formTarget$jscomp$1 && + pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + target$jscomp$0.push(endOfStartTag); + null !== formActionName && + (target$jscomp$0.push(startHiddenInputChunk), + pushStringAttribute(target$jscomp$0, "name", formActionName), + target$jscomp$0.push(endOfStartTagSelfClosing), + null != formData$jscomp$1 && + formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4); + if ("string" === typeof children$jscomp$4) { + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser(children$jscomp$4)) + ); + var JSCompiler_inline_result$jscomp$1 = null; + } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4; + return JSCompiler_inline_result$jscomp$1; + case "menuitem": + target$jscomp$0.push(startChunkForTag("menuitem")); + for (var propKey$jscomp$6 in props) + if (hasOwnProperty.call(props, propKey$jscomp$6)) { + var propValue$jscomp$6 = props[propKey$jscomp$6]; + if (null != propValue$jscomp$6) + switch (propKey$jscomp$6) { + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(400)); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$6, + propValue$jscomp$6 + ); + } + } + target$jscomp$0.push(endOfStartTag); + return null; + case "object": + target$jscomp$0.push(startChunkForTag("object")); + var children$jscomp$5 = null, + innerHTML$jscomp$4 = null, + propKey$jscomp$7; + for (propKey$jscomp$7 in props) + if (hasOwnProperty.call(props, propKey$jscomp$7)) { + var propValue$jscomp$7 = props[propKey$jscomp$7]; + if (null != propValue$jscomp$7) + switch (propKey$jscomp$7) { + case "children": + children$jscomp$5 = propValue$jscomp$7; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$4 = propValue$jscomp$7; + break; + case "data": + var sanitizedValue = sanitizeURL("" + propValue$jscomp$7); + if ("" === sanitizedValue) break; + target$jscomp$0.push( + attributeSeparator, + stringToChunk("data"), + attributeAssign, + stringToChunk(escapeTextForBrowser(sanitizedValue)), + attributeEnd + ); + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$7, + propValue$jscomp$7 + ); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5); + if ("string" === typeof children$jscomp$5) { + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser(children$jscomp$5)) + ); + var JSCompiler_inline_result$jscomp$2 = null; + } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5; + return JSCompiler_inline_result$jscomp$2; + case "title": + var noscriptTagInScope = formatContext.tagScope & 1, + isFallback = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$3 = pushTitleImpl( + target$jscomp$0, + props + ); + else + isFallback + ? (JSCompiler_inline_result$jscomp$3 = null) + : (pushTitleImpl(renderState.hoistableChunks, props), + (JSCompiler_inline_result$jscomp$3 = void 0)); + return JSCompiler_inline_result$jscomp$3; + case "link": + var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1, + isFallback$jscomp$0 = formatContext.tagScope & 4, + rel = props.rel, + href = props.href, + precedence = props.precedence; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$0 || + null != props.itemProp || + "string" !== typeof rel || + "string" !== typeof href || + "" === href + ) { + pushLinkImpl(target$jscomp$0, props); + var JSCompiler_inline_result$jscomp$4 = null; + } else if ("stylesheet" === props.rel) + if ( + "string" !== typeof precedence || + null != props.disabled || + props.onLoad || + props.onError + ) + JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + ); + else { + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + if (null !== resourceState) { + resumableState.styleResources[href] = null; + styleQueue || + ((styleQueue = { + precedence: stringToChunk(escapeTextForBrowser(precedence)), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)); + var resource = { + state: 0, + props: assign({}, props, { + "data-precedence": props.precedence, + precedence: null + }) + }; + if (resourceState) { + 2 === resourceState.length && + adoptPreloadCredentials(resource.props, resourceState); + var preloadResource = renderState.preloads.stylesheets.get(href); + preloadResource && 0 < preloadResource.length + ? (preloadResource.length = 0) + : (resource.state = 1); + } + styleQueue.sheets.set(href, resource); + hoistableState && hoistableState.stylesheets.add(resource); + } else if (styleQueue) { + var resource$9 = styleQueue.sheets.get(href); + resource$9 && + hoistableState && + hoistableState.stylesheets.add(resource$9); + } + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$4 = null; + } + else + props.onLoad || props.onError + ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + )) + : (textEmbedded && target$jscomp$0.push(textSeparator), + (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0 + ? null + : pushLinkImpl(renderState.hoistableChunks, props))); + return JSCompiler_inline_result$jscomp$4; + case "script": + var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1, + asyncProp = props.async; + if ( + "string" !== typeof props.src || + !props.src || + !asyncProp || + "function" === typeof asyncProp || + "symbol" === typeof asyncProp || + props.onLoad || + props.onError || + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$1 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$5 = pushScriptImpl( + target$jscomp$0, + props + ); + else { + var key = props.src; + if ("module" === props.type) { + var resources = resumableState.moduleScriptResources; + var preloads = renderState.preloads.moduleScripts; + } else + (resources = resumableState.scriptResources), + (preloads = renderState.preloads.scripts); + var resourceState$jscomp$0 = resources.hasOwnProperty(key) + ? resources[key] + : void 0; + if (null !== resourceState$jscomp$0) { + resources[key] = null; + var scriptProps = props; + if (resourceState$jscomp$0) { + 2 === resourceState$jscomp$0.length && + ((scriptProps = assign({}, props)), + adoptPreloadCredentials(scriptProps, resourceState$jscomp$0)); + var preloadResource$jscomp$0 = preloads.get(key); + preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0); + } + var resource$jscomp$0 = []; + renderState.scripts.add(resource$jscomp$0); + pushScriptImpl(resource$jscomp$0, scriptProps); + } + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$5 = null; + } + return JSCompiler_inline_result$jscomp$5; + case "style": + var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1, + precedence$jscomp$0 = props.precedence, + href$jscomp$0 = props.href, + nonce = props.nonce; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$2 || + null != props.itemProp || + "string" !== typeof precedence$jscomp$0 || + "string" !== typeof href$jscomp$0 || + "" === href$jscomp$0 + ) { + target$jscomp$0.push(startChunkForTag("style")); + var children$jscomp$6 = null, + innerHTML$jscomp$5 = null, + propKey$jscomp$8; + for (propKey$jscomp$8 in props) + if (hasOwnProperty.call(props, propKey$jscomp$8)) { + var propValue$jscomp$8 = props[propKey$jscomp$8]; + if (null != propValue$jscomp$8) + switch (propKey$jscomp$8) { + case "children": + children$jscomp$6 = propValue$jscomp$8; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$5 = propValue$jscomp$8; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$8, + propValue$jscomp$8 + ); + } + } + target$jscomp$0.push(endOfStartTag); + var child = Array.isArray(children$jscomp$6) + ? 2 > children$jscomp$6.length + ? children$jscomp$6[0] + : null + : children$jscomp$6; + "function" !== typeof child && + "symbol" !== typeof child && + null !== child && + void 0 !== child && + target$jscomp$0.push( + stringToChunk(("" + child).replace(styleRegex, styleReplacer)) + ); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6); + target$jscomp$0.push(endChunkForTag("style")); + var JSCompiler_inline_result$jscomp$6 = null; + } else { + var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0); + if ( + null !== + (resumableState.styleResources.hasOwnProperty(href$jscomp$0) + ? resumableState.styleResources[href$jscomp$0] + : void 0) + ) { + resumableState.styleResources[href$jscomp$0] = null; + styleQueue$jscomp$0 || + ((styleQueue$jscomp$0 = { + precedence: stringToChunk( + escapeTextForBrowser(precedence$jscomp$0) + ), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0)); + var nonceStyle = renderState.nonce.style; + if (!nonceStyle || nonceStyle === nonce) { + styleQueue$jscomp$0.hrefs.push( + stringToChunk(escapeTextForBrowser(href$jscomp$0)) + ); + var target = styleQueue$jscomp$0.rules, + children$jscomp$7 = null, + innerHTML$jscomp$6 = null, + propKey$jscomp$9; + for (propKey$jscomp$9 in props) + if (hasOwnProperty.call(props, propKey$jscomp$9)) { + var propValue$jscomp$9 = props[propKey$jscomp$9]; + if (null != propValue$jscomp$9) + switch (propKey$jscomp$9) { + case "children": + children$jscomp$7 = propValue$jscomp$9; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$6 = propValue$jscomp$9; + } + } + var child$jscomp$0 = Array.isArray(children$jscomp$7) + ? 2 > children$jscomp$7.length + ? children$jscomp$7[0] + : null + : children$jscomp$7; + "function" !== typeof child$jscomp$0 && + "symbol" !== typeof child$jscomp$0 && + null !== child$jscomp$0 && + void 0 !== child$jscomp$0 && + target.push( + stringToChunk( + ("" + child$jscomp$0).replace(styleRegex, styleReplacer) + ) + ); + pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7); + } + } + styleQueue$jscomp$0 && + hoistableState && + hoistableState.styles.add(styleQueue$jscomp$0); + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$6 = void 0; + } + return JSCompiler_inline_result$jscomp$6; + case "meta": + var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1, + isFallback$jscomp$1 = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$3 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$7 = pushSelfClosing( + target$jscomp$0, + props, + "meta" + ); + else + textEmbedded && target$jscomp$0.push(textSeparator), + (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 + ? null + : "string" === typeof props.charSet + ? pushSelfClosing(renderState.charsetChunks, props, "meta") + : "viewport" === props.name + ? pushSelfClosing(renderState.viewportChunks, props, "meta") + : pushSelfClosing(renderState.hoistableChunks, props, "meta")); + return JSCompiler_inline_result$jscomp$7; + case "listing": + case "pre": + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$8 = null, + innerHTML$jscomp$7 = null, + propKey$jscomp$10; + for (propKey$jscomp$10 in props) + if (hasOwnProperty.call(props, propKey$jscomp$10)) { + var propValue$jscomp$10 = props[propKey$jscomp$10]; + if (null != propValue$jscomp$10) + switch (propKey$jscomp$10) { + case "children": + children$jscomp$8 = propValue$jscomp$10; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$7 = propValue$jscomp$10; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$10, + propValue$jscomp$10 + ); + } + } + target$jscomp$0.push(endOfStartTag); + if (null != innerHTML$jscomp$7) { + if (null != children$jscomp$8) throw Error(formatProdErrorMessage(60)); + if ( + "object" !== typeof innerHTML$jscomp$7 || + !("__html" in innerHTML$jscomp$7) + ) + throw Error(formatProdErrorMessage(61)); + var html = innerHTML$jscomp$7.__html; + null !== html && + void 0 !== html && + ("string" === typeof html && 0 < html.length && "\n" === html[0] + ? target$jscomp$0.push(leadingNewline, stringToChunk(html)) + : target$jscomp$0.push(stringToChunk("" + html))); + } + "string" === typeof children$jscomp$8 && + "\n" === children$jscomp$8[0] && + target$jscomp$0.push(leadingNewline); + return children$jscomp$8; + case "img": + var pictureOrNoScriptTagInScope = formatContext.tagScope & 3, + src = props.src, + srcSet = props.srcSet; + if ( + !( + "lazy" === props.loading || + (!src && !srcSet) || + ("string" !== typeof src && null != src) || + ("string" !== typeof srcSet && null != srcSet) || + "low" === props.fetchPriority || + pictureOrNoScriptTagInScope + ) && + ("string" !== typeof src || + ":" !== src[4] || + ("d" !== src[0] && "D" !== src[0]) || + ("a" !== src[1] && "A" !== src[1]) || + ("t" !== src[2] && "T" !== src[2]) || + ("a" !== src[3] && "A" !== src[3])) && + ("string" !== typeof srcSet || + ":" !== srcSet[4] || + ("d" !== srcSet[0] && "D" !== srcSet[0]) || + ("a" !== srcSet[1] && "A" !== srcSet[1]) || + ("t" !== srcSet[2] && "T" !== srcSet[2]) || + ("a" !== srcSet[3] && "A" !== srcSet[3])) + ) { + null !== hoistableState && + formatContext.tagScope & 64 && + (hoistableState.suspenseyImages = !0); + var sizes = "string" === typeof props.sizes ? props.sizes : void 0, + key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src, + promotablePreloads = renderState.preloads.images, + resource$jscomp$1 = promotablePreloads.get(key$jscomp$0); + if (resource$jscomp$1) { + if ( + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ) + promotablePreloads.delete(key$jscomp$0), + renderState.highImagePreloads.add(resource$jscomp$1); + } else if ( + !resumableState.imageResources.hasOwnProperty(key$jscomp$0) + ) { + resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS; + var input = props.crossOrigin; + var JSCompiler_inline_result$jscomp$8 = + "string" === typeof input + ? "use-credentials" === input + ? input + : "" + : void 0; + var headers = renderState.headers, + header; + headers && + 0 < headers.remainingCapacity && + "string" !== typeof props.srcSet && + ("high" === props.fetchPriority || + 500 > headers.highImagePreloads.length) && + ((header = getPreloadAsHeader(src, "image", { + imageSrcSet: props.srcSet, + imageSizes: props.sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + nonce: props.nonce, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.refererPolicy + })), + 0 <= (headers.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS), + headers.highImagePreloads && (headers.highImagePreloads += ", "), + (headers.highImagePreloads += header)) + : ((resource$jscomp$1 = []), + pushLinkImpl(resource$jscomp$1, { + rel: "preload", + as: "image", + href: srcSet ? void 0 : src, + imageSrcSet: srcSet, + imageSizes: sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.referrerPolicy + }), + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ? renderState.highImagePreloads.add(resource$jscomp$1) + : (renderState.bulkPreloads.add(resource$jscomp$1), + promotablePreloads.set(key$jscomp$0, resource$jscomp$1))); + } + } + return pushSelfClosing(target$jscomp$0, props, "img"); + case "base": + case "area": + case "br": + case "col": + case "embed": + case "hr": + case "keygen": + case "param": + case "source": + case "track": + case "wbr": + return pushSelfClosing(target$jscomp$0, props, type); + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + break; + case "head": + if (2 > formatContext.insertionMode) { + var preamble = preambleState || renderState.preamble; + if (preamble.headChunks) + throw Error(formatProdErrorMessage(545, "`<head>`")); + null !== preambleState && + target$jscomp$0.push(headPreambleContributionChunk); + preamble.headChunks = []; + var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement( + preamble.headChunks, + props, + "head" + ); + } else + JSCompiler_inline_result$jscomp$9 = pushStartGenericElement( + target$jscomp$0, + props, + "head" + ); + return JSCompiler_inline_result$jscomp$9; + case "body": + if (2 > formatContext.insertionMode) { + var preamble$jscomp$0 = preambleState || renderState.preamble; + if (preamble$jscomp$0.bodyChunks) + throw Error(formatProdErrorMessage(545, "`<body>`")); + null !== preambleState && + target$jscomp$0.push(bodyPreambleContributionChunk); + preamble$jscomp$0.bodyChunks = []; + var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement( + preamble$jscomp$0.bodyChunks, + props, + "body" + ); + } else + JSCompiler_inline_result$jscomp$10 = pushStartGenericElement( + target$jscomp$0, + props, + "body" + ); + return JSCompiler_inline_result$jscomp$10; + case "html": + if (0 === formatContext.insertionMode) { + var preamble$jscomp$1 = preambleState || renderState.preamble; + if (preamble$jscomp$1.htmlChunks) + throw Error(formatProdErrorMessage(545, "`<html>`")); + null !== preambleState && + target$jscomp$0.push(htmlPreambleContributionChunk); + preamble$jscomp$1.htmlChunks = [doctypeChunk]; + var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement( + preamble$jscomp$1.htmlChunks, + props, + "html" + ); + } else + JSCompiler_inline_result$jscomp$11 = pushStartGenericElement( + target$jscomp$0, + props, + "html" + ); + return JSCompiler_inline_result$jscomp$11; + default: + if (-1 !== type.indexOf("-")) { + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$9 = null, + innerHTML$jscomp$8 = null, + propKey$jscomp$11; + for (propKey$jscomp$11 in props) + if (hasOwnProperty.call(props, propKey$jscomp$11)) { + var propValue$jscomp$11 = props[propKey$jscomp$11]; + if (null != propValue$jscomp$11) { + var attributeName = propKey$jscomp$11; + switch (propKey$jscomp$11) { + case "children": + children$jscomp$9 = propValue$jscomp$11; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$8 = propValue$jscomp$11; + break; + case "style": + pushStyleAttribute(target$jscomp$0, propValue$jscomp$11); + break; + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "className": + attributeName = "class"; + default: + if ( + isAttributeNameSafe(propKey$jscomp$11) && + "function" !== typeof propValue$jscomp$11 && + "symbol" !== typeof propValue$jscomp$11 && + !1 !== propValue$jscomp$11 + ) { + if (!0 === propValue$jscomp$11) propValue$jscomp$11 = ""; + else if ("object" === typeof propValue$jscomp$11) continue; + target$jscomp$0.push( + attributeSeparator, + stringToChunk(attributeName), + attributeAssign, + stringToChunk(escapeTextForBrowser(propValue$jscomp$11)), + attributeEnd + ); + } + } + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9); + return children$jscomp$9; + } + } + return pushStartGenericElement(target$jscomp$0, props, type); +} +var endTagCache = new Map(); +function endChunkForTag(tag) { + var chunk = endTagCache.get(tag); + void 0 === chunk && + ((chunk = stringToPrecomputedChunk("</" + tag + ">")), + endTagCache.set(tag, chunk)); + return chunk; +} +function hoistPreambleState(renderState, preambleState) { + renderState = renderState.preamble; + null === renderState.htmlChunks && + preambleState.htmlChunks && + (renderState.htmlChunks = preambleState.htmlChunks); + null === renderState.headChunks && + preambleState.headChunks && + (renderState.headChunks = preambleState.headChunks); + null === renderState.bodyChunks && + preambleState.bodyChunks && + (renderState.bodyChunks = preambleState.bodyChunks); +} +function writeBootstrap(destination, renderState) { + renderState = renderState.bootstrapChunks; + for (var i = 0; i < renderState.length - 1; i++) + writeChunk(destination, renderState[i]); + return i < renderState.length + ? ((i = renderState[i]), + (renderState.length = 0), + writeChunkAndReturn(destination, i)) + : !0; +} +var shellTimeRuntimeScript = stringToPrecomputedChunk( + "requestAnimationFrame(function(){$RT=performance.now()});" + ), + placeholder1 = stringToPrecomputedChunk('<template id="'), + placeholder2 = stringToPrecomputedChunk('"></template>'), + startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"), + endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"), + startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"), + startPendingSuspenseBoundary1 = stringToPrecomputedChunk( + '\x3c!--$?--\x3e<template id="' + ), + startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'), + startClientRenderedSuspenseBoundary = + stringToPrecomputedChunk("\x3c!--$!--\x3e"), + endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"), + clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk("<template"), + clientRenderedSuspenseBoundaryErrorAttrInterstitial = + stringToPrecomputedChunk('"'), + clientRenderedSuspenseBoundaryError1A = + stringToPrecomputedChunk(' data-dgst="'); +stringToPrecomputedChunk(' data-msg="'); +stringToPrecomputedChunk(' data-stck="'); +stringToPrecomputedChunk(' data-cstck="'); +var clientRenderedSuspenseBoundaryError2 = + stringToPrecomputedChunk("></template>"); +function writeStartPendingSuspenseBoundary(destination, renderState, id) { + writeChunk(destination, startPendingSuspenseBoundary1); + if (null === id) throw Error(formatProdErrorMessage(395)); + writeChunk(destination, renderState.boundaryPrefix); + writeChunk(destination, stringToChunk(id.toString(16))); + return writeChunkAndReturn(destination, startPendingSuspenseBoundary2); +} +var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'), + startSegmentHTML2 = stringToPrecomputedChunk('">'), + endSegmentHTML = stringToPrecomputedChunk("</div>"), + startSegmentSVG = stringToPrecomputedChunk( + '<svg aria-hidden="true" style="display:none" id="' + ), + startSegmentSVG2 = stringToPrecomputedChunk('">'), + endSegmentSVG = stringToPrecomputedChunk("</svg>"), + startSegmentMathML = stringToPrecomputedChunk( + '<math aria-hidden="true" style="display:none" id="' + ), + startSegmentMathML2 = stringToPrecomputedChunk('">'), + endSegmentMathML = stringToPrecomputedChunk("</math>"), + startSegmentTable = stringToPrecomputedChunk('<table hidden id="'), + startSegmentTable2 = stringToPrecomputedChunk('">'), + endSegmentTable = stringToPrecomputedChunk("</table>"), + startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id="'), + startSegmentTableBody2 = stringToPrecomputedChunk('">'), + endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"), + startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'), + startSegmentTableRow2 = stringToPrecomputedChunk('">'), + endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"), + startSegmentColGroup = stringToPrecomputedChunk( + '<table hidden><colgroup id="' + ), + startSegmentColGroup2 = stringToPrecomputedChunk('">'), + endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>"); +function writeStartSegment(destination, renderState, formatContext, id) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return ( + writeChunk(destination, startSegmentHTML), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentHTML2) + ); + case 4: + return ( + writeChunk(destination, startSegmentSVG), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentSVG2) + ); + case 5: + return ( + writeChunk(destination, startSegmentMathML), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentMathML2) + ); + case 6: + return ( + writeChunk(destination, startSegmentTable), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentTable2) + ); + case 7: + return ( + writeChunk(destination, startSegmentTableBody), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentTableBody2) + ); + case 8: + return ( + writeChunk(destination, startSegmentTableRow), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentTableRow2) + ); + case 9: + return ( + writeChunk(destination, startSegmentColGroup), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentColGroup2) + ); + default: + throw Error(formatProdErrorMessage(397)); + } +} +function writeEndSegment(destination, formatContext) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return writeChunkAndReturn(destination, endSegmentHTML); + case 4: + return writeChunkAndReturn(destination, endSegmentSVG); + case 5: + return writeChunkAndReturn(destination, endSegmentMathML); + case 6: + return writeChunkAndReturn(destination, endSegmentTable); + case 7: + return writeChunkAndReturn(destination, endSegmentTableBody); + case 8: + return writeChunkAndReturn(destination, endSegmentTableRow); + case 9: + return writeChunkAndReturn(destination, endSegmentColGroup); + default: + throw Error(formatProdErrorMessage(397)); + } +} +var completeSegmentScript1Full = stringToPrecomputedChunk( + '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("' + ), + completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'), + completeSegmentScript2 = stringToPrecomputedChunk('","'), + completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>'); +stringToPrecomputedChunk('<template data-rsi="" data-sid="'); +stringToPrecomputedChunk('" data-pid="'); +var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' +); +stringToChunk( + '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);' +); +var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'), + completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk( + '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("' + ), + completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'), + completeBoundaryScript2 = stringToPrecomputedChunk('","'), + completeBoundaryScript3a = stringToPrecomputedChunk('",'), + completeBoundaryScript3b = stringToPrecomputedChunk('"'), + completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>"); +stringToPrecomputedChunk('<template data-rci="" data-bid="'); +stringToPrecomputedChunk('<template data-rri="" data-bid="'); +stringToPrecomputedChunk('" data-sid="'); +stringToPrecomputedChunk('" data-sty="'); +var clientRenderScriptFunctionOnly = stringToPrecomputedChunk( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};' + ), + clientRenderScript1Full = stringToPrecomputedChunk( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("' + ), + clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'), + clientRenderScript1A = stringToPrecomputedChunk('"'), + clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","), + clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>"); +stringToPrecomputedChunk('<template data-rxi="" data-bid="'); +stringToPrecomputedChunk('" data-dgst="'); +stringToPrecomputedChunk('" data-msg="'); +stringToPrecomputedChunk('" data-stck="'); +stringToPrecomputedChunk('" data-cstck="'); +var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g; +function escapeJSStringsForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInInstructionScripts, + function (match) { + switch (match) { + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var regexForJSStringsInScripts = /[&><\u2028\u2029]/g; +function escapeJSObjectForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInScripts, + function (match) { + switch (match) { + case "&": + return "\\u0026"; + case ">": + return "\\u003e"; + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var lateStyleTagResourceOpen1 = stringToPrecomputedChunk( + ' media="not all" data-precedence="' + ), + lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'), + lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'), + lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"), + currentlyRenderingBoundaryHasStylesToHoist = !1, + destinationHasCapacity = !0; +function flushStyleTagsLateForBoundary(styleQueue) { + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs, + i = 0; + if (hrefs.length) { + writeChunk(this, currentlyFlushingRenderState.startInlineStyle); + writeChunk(this, lateStyleTagResourceOpen1); + writeChunk(this, styleQueue.precedence); + for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++) + writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator); + writeChunk(this, hrefs[i]); + writeChunk(this, lateStyleTagResourceOpen3); + for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]); + destinationHasCapacity = writeChunkAndReturn( + this, + lateStyleTagTemplateClose + ); + currentlyRenderingBoundaryHasStylesToHoist = !0; + rules.length = 0; + hrefs.length = 0; + } +} +function hasStylesToHoist(stylesheet) { + return 2 !== stylesheet.state + ? (currentlyRenderingBoundaryHasStylesToHoist = !0) + : !1; +} +function writeHoistablesForBoundary(destination, hoistableState, renderState) { + currentlyRenderingBoundaryHasStylesToHoist = !1; + destinationHasCapacity = !0; + currentlyFlushingRenderState = renderState; + hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination); + currentlyFlushingRenderState = null; + hoistableState.stylesheets.forEach(hasStylesToHoist); + currentlyRenderingBoundaryHasStylesToHoist && + (renderState.stylesToHoist = !0); + return destinationHasCapacity; +} +function flushResource(resource) { + for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]); + resource.length = 0; +} +var stylesheetFlushingQueue = []; +function flushStyleInPreamble(stylesheet) { + pushLinkImpl(stylesheetFlushingQueue, stylesheet.props); + for (var i = 0; i < stylesheetFlushingQueue.length; i++) + writeChunk(this, stylesheetFlushingQueue[i]); + stylesheetFlushingQueue.length = 0; + stylesheet.state = 2; +} +var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'), + styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'), + spaceSeparator = stringToPrecomputedChunk(" "), + styleTagResourceOpen3 = stringToPrecomputedChunk('">'), + styleTagResourceClose = stringToPrecomputedChunk("</style>"); +function flushStylesInPreamble(styleQueue) { + var hasStylesheets = 0 < styleQueue.sheets.size; + styleQueue.sheets.forEach(flushStyleInPreamble, this); + styleQueue.sheets.clear(); + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs; + if (!hasStylesheets || hrefs.length) { + writeChunk(this, currentlyFlushingRenderState.startInlineStyle); + writeChunk(this, styleTagResourceOpen1); + writeChunk(this, styleQueue.precedence); + styleQueue = 0; + if (hrefs.length) { + for ( + writeChunk(this, styleTagResourceOpen2); + styleQueue < hrefs.length - 1; + styleQueue++ + ) + writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator); + writeChunk(this, hrefs[styleQueue]); + } + writeChunk(this, styleTagResourceOpen3); + for (styleQueue = 0; styleQueue < rules.length; styleQueue++) + writeChunk(this, rules[styleQueue]); + writeChunk(this, styleTagResourceClose); + rules.length = 0; + hrefs.length = 0; + } +} +function preloadLateStyle(stylesheet) { + if (0 === stylesheet.state) { + stylesheet.state = 1; + var props = stylesheet.props; + pushLinkImpl(stylesheetFlushingQueue, { + rel: "preload", + as: "style", + href: stylesheet.props.href, + crossOrigin: props.crossOrigin, + fetchPriority: props.fetchPriority, + integrity: props.integrity, + media: props.media, + hrefLang: props.hrefLang, + referrerPolicy: props.referrerPolicy + }); + for ( + stylesheet = 0; + stylesheet < stylesheetFlushingQueue.length; + stylesheet++ + ) + writeChunk(this, stylesheetFlushingQueue[stylesheet]); + stylesheetFlushingQueue.length = 0; + } +} +function preloadLateStyles(styleQueue) { + styleQueue.sheets.forEach(preloadLateStyle, this); + styleQueue.sheets.clear(); +} +stringToPrecomputedChunk('<link rel="expect" href="#'); +stringToPrecomputedChunk('" blocking="render"/>'); +var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="'); +function pushCompletedShellIdAttribute(target, resumableState) { + 0 === (resumableState.instructions & 32) && + ((resumableState.instructions |= 32), + target.push( + completedShellIdAttributeStart, + stringToChunk(escapeTextForBrowser("_" + resumableState.idPrefix + "R_")), + attributeEnd + )); +} +var arrayFirstOpenBracket = stringToPrecomputedChunk("["), + arraySubsequentOpenBracket = stringToPrecomputedChunk(",["), + arrayInterstitial = stringToPrecomputedChunk(","), + arrayCloseBracket = stringToPrecomputedChunk("]"); +function writeStyleResourceDependenciesInJS(destination, hoistableState) { + writeChunk(destination, arrayFirstOpenBracket); + var nextArrayOpenBrackChunk = arrayFirstOpenBracket; + hoistableState.stylesheets.forEach(function (resource) { + if (2 !== resource.state) + if (3 === resource.state) + writeChunk(destination, nextArrayOpenBrackChunk), + writeChunk( + destination, + stringToChunk( + escapeJSObjectForInstructionScripts("" + resource.props.href) + ) + ), + writeChunk(destination, arrayCloseBracket), + (nextArrayOpenBrackChunk = arraySubsequentOpenBracket); + else { + writeChunk(destination, nextArrayOpenBrackChunk); + var precedence = resource.props["data-precedence"], + props = resource.props, + coercedHref = sanitizeURL("" + resource.props.href); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(coercedHref)) + ); + precedence = "" + precedence; + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(precedence)) + ); + for (var propKey in props) + if ( + hasOwnProperty.call(props, propKey) && + ((precedence = props[propKey]), null != precedence) + ) + switch (propKey) { + case "href": + case "rel": + case "precedence": + case "data-precedence": + break; + case "children": + case "dangerouslySetInnerHTML": + throw Error(formatProdErrorMessage(399, "link")); + default: + writeStyleResourceAttributeInJS( + destination, + propKey, + precedence + ); + } + writeChunk(destination, arrayCloseBracket); + nextArrayOpenBrackChunk = arraySubsequentOpenBracket; + resource.state = 3; + } + }); + writeChunk(destination, arrayCloseBracket); +} +function writeStyleResourceAttributeInJS(destination, name, value) { + var attributeName = name.toLowerCase(); + switch (typeof value) { + case "function": + case "symbol": + return; + } + switch (name) { + case "innerHTML": + case "dangerouslySetInnerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "style": + case "ref": + return; + case "className": + attributeName = "class"; + name = "" + value; + break; + case "hidden": + if (!1 === value) return; + name = ""; + break; + case "src": + case "href": + value = sanitizeURL(value); + name = "" + value; + break; + default: + if ( + (2 < name.length && + ("o" === name[0] || "O" === name[0]) && + ("n" === name[1] || "N" === name[1])) || + !isAttributeNameSafe(name) + ) + return; + name = "" + value; + } + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(attributeName)) + ); + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(name)) + ); +} +function createHoistableState() { + return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 }; +} +function prefetchDNS(href) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + if (!resumableState.dnsResources.hasOwnProperty(href)) { + resumableState.dnsResources[href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) + JSCompiler_temp = + ((header = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=dns-prefetch"), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + JSCompiler_temp + ? ((renderState.resets.dns[href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((header = []), + pushLinkImpl(header, { href: href, rel: "dns-prefetch" }), + renderState.preconnects.add(header)); + } + enqueueFlush(request); + } + } else previousDispatcher.D(href); +} +function preconnect(href, crossOrigin) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + var bucket = + "use-credentials" === crossOrigin + ? "credentials" + : "string" === typeof crossOrigin + ? "anonymous" + : "default"; + if (!resumableState.connectResources[bucket].hasOwnProperty(href)) { + resumableState.connectResources[bucket][href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) { + JSCompiler_temp = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=preconnect"; + if ("string" === typeof crossOrigin) { + var escapedCrossOrigin = ("" + crossOrigin).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"'; + } + JSCompiler_temp = + ((header = JSCompiler_temp), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + } + JSCompiler_temp + ? ((renderState.resets.connect[bucket][href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((bucket = []), + pushLinkImpl(bucket, { + rel: "preconnect", + href: href, + crossOrigin: crossOrigin + }), + renderState.preconnects.add(bucket)); + } + enqueueFlush(request); + } + } else previousDispatcher.C(href, crossOrigin); +} +function preload(href, as, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (as && href) { + switch (as) { + case "image": + if (options) { + var imageSrcSet = options.imageSrcSet; + var imageSizes = options.imageSizes; + var fetchPriority = options.fetchPriority; + } + var key = imageSrcSet + ? imageSrcSet + "\n" + (imageSizes || "") + : href; + if (resumableState.imageResources.hasOwnProperty(key)) return; + resumableState.imageResources[key] = PRELOAD_NO_CREDS; + resumableState = renderState.headers; + var header; + resumableState && + 0 < resumableState.remainingCapacity && + "string" !== typeof imageSrcSet && + "high" === fetchPriority && + ((header = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS), + resumableState.highImagePreloads && + (resumableState.highImagePreloads += ", "), + (resumableState.highImagePreloads += header)) + : ((resumableState = []), + pushLinkImpl( + resumableState, + assign( + { rel: "preload", href: imageSrcSet ? void 0 : href, as: as }, + options + ) + ), + "high" === fetchPriority + ? renderState.highImagePreloads.add(resumableState) + : (renderState.bulkPreloads.add(resumableState), + renderState.preloads.images.set(key, resumableState))); + break; + case "style": + if (resumableState.styleResources.hasOwnProperty(href)) return; + imageSrcSet = []; + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.styleResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.stylesheets.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + break; + case "script": + if (resumableState.scriptResources.hasOwnProperty(href)) return; + imageSrcSet = []; + renderState.preloads.scripts.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.scriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + break; + default: + if (resumableState.unknownResources.hasOwnProperty(as)) { + if ( + ((imageSrcSet = resumableState.unknownResources[as]), + imageSrcSet.hasOwnProperty(href)) + ) + return; + } else + (imageSrcSet = {}), + (resumableState.unknownResources[as] = imageSrcSet); + imageSrcSet[href] = PRELOAD_NO_CREDS; + if ( + (resumableState = renderState.headers) && + 0 < resumableState.remainingCapacity && + "font" === as && + ((key = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= key.length + 2)) + ) + (renderState.resets.font[href] = PRELOAD_NO_CREDS), + resumableState.fontPreloads && + (resumableState.fontPreloads += ", "), + (resumableState.fontPreloads += key); + else + switch ( + ((resumableState = []), + (href = assign({ rel: "preload", href: href, as: as }, options)), + pushLinkImpl(resumableState, href), + as) + ) { + case "font": + renderState.fontPreloads.add(resumableState); + break; + default: + renderState.bulkPreloads.add(resumableState); + } + } + enqueueFlush(request); + } + } else previousDispatcher.L(href, as, options); +} +function preloadModule(href, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + var as = + options && "string" === typeof options.as ? options.as : "script"; + switch (as) { + case "script": + if (resumableState.moduleScriptResources.hasOwnProperty(href)) return; + as = []; + resumableState.moduleScriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.moduleScripts.set(href, as); + break; + default: + if (resumableState.moduleUnknownResources.hasOwnProperty(as)) { + var resources = resumableState.unknownResources[as]; + if (resources.hasOwnProperty(href)) return; + } else + (resources = {}), + (resumableState.moduleUnknownResources[as] = resources); + as = []; + resources[href] = PRELOAD_NO_CREDS; + } + pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options)); + renderState.bulkPreloads.add(as); + enqueueFlush(request); + } + } else previousDispatcher.m(href, options); +} +function preinitStyle(href, precedence, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + precedence = precedence || "default"; + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + null !== resourceState && + ((resumableState.styleResources[href] = null), + styleQueue || + ((styleQueue = { + precedence: stringToChunk(escapeTextForBrowser(precedence)), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)), + (precedence = { + state: 0, + props: assign( + { rel: "stylesheet", href: href, "data-precedence": precedence }, + options + ) + }), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(precedence.props, resourceState), + (renderState = renderState.preloads.stylesheets.get(href)) && + 0 < renderState.length + ? (renderState.length = 0) + : (precedence.state = 1)), + styleQueue.sheets.set(href, precedence), + enqueueFlush(request)); + } + } else previousDispatcher.S(href, precedence, options); +} +function preinitScript(src, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.scriptResources.hasOwnProperty(src) + ? resumableState.scriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.scriptResources[src] = null), + (options = assign({ src: src, async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.scripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.X(src, options); +} +function preinitModuleScript(src, options) { + var request = currentRequest ? currentRequest : null; + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.moduleScriptResources.hasOwnProperty( + src + ) + ? resumableState.moduleScriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.moduleScriptResources[src] = null), + (options = assign({ src: src, type: "module", async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.moduleScripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.M(src, options); +} +function adoptPreloadCredentials(target, preloadState) { + null == target.crossOrigin && (target.crossOrigin = preloadState[0]); + null == target.integrity && (target.integrity = preloadState[1]); +} +function getPreloadAsHeader(href, as, params) { + href = ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ); + as = ("" + as).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + as = "<" + href + '>; rel=preload; as="' + as + '"'; + for (var paramName in params) + hasOwnProperty.call(params, paramName) && + ((href = params[paramName]), + "string" === typeof href && + (as += + "; " + + paramName.toLowerCase() + + '="' + + ("" + href).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ) + + '"')); + return as; +} +var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g; +function escapeHrefForLinkHeaderURLContextReplacer(match) { + switch (match) { + case "<": + return "%3C"; + case ">": + return "%3E"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g; +function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) { + switch (match) { + case '"': + return "%22"; + case "'": + return "%27"; + case ";": + return "%3B"; + case ",": + return "%2C"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +function hoistStyleQueueDependency(styleQueue) { + this.styles.add(styleQueue); +} +function hoistStylesheetDependency(stylesheet) { + this.stylesheets.add(stylesheet); +} +function hoistHoistables(parentState, childState) { + childState.styles.forEach(hoistStyleQueueDependency, parentState); + childState.stylesheets.forEach(hoistStylesheetDependency, parentState); + childState.suspenseyImages && (parentState.suspenseyImages = !0); +} +function hasSuspenseyContent(hoistableState) { + return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages; +} +var bind = Function.prototype.bind, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); +function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; +} +var emptyContextObject = {}, + currentActiveSnapshot = null; +function popToNearestCommonAncestor(prev, next) { + if (prev !== next) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + var parentNext = next.parent; + if (null === prev) { + if (null !== parentNext) throw Error(formatProdErrorMessage(401)); + } else { + if (null === parentNext) throw Error(formatProdErrorMessage(401)); + popToNearestCommonAncestor(prev, parentNext); + } + next.context._currentValue = next.value; + } +} +function popAllPrevious(prev) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + null !== prev && popAllPrevious(prev); +} +function pushAllNext(next) { + var parentNext = next.parent; + null !== parentNext && pushAllNext(parentNext); + next.context._currentValue = next.value; +} +function popPreviousToCommonLevel(prev, next) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + if (null === prev) throw Error(formatProdErrorMessage(402)); + prev.depth === next.depth + ? popToNearestCommonAncestor(prev, next) + : popPreviousToCommonLevel(prev, next); +} +function popNextToCommonLevel(prev, next) { + var parentNext = next.parent; + if (null === parentNext) throw Error(formatProdErrorMessage(402)); + prev.depth === parentNext.depth + ? popToNearestCommonAncestor(prev, parentNext) + : popNextToCommonLevel(prev, parentNext); + next.context._currentValue = next.value; +} +function switchContext(newSnapshot) { + var prev = currentActiveSnapshot; + prev !== newSnapshot && + (null === prev + ? pushAllNext(newSnapshot) + : null === newSnapshot + ? popAllPrevious(prev) + : prev.depth === newSnapshot.depth + ? popToNearestCommonAncestor(prev, newSnapshot) + : prev.depth > newSnapshot.depth + ? popPreviousToCommonLevel(prev, newSnapshot) + : popNextToCommonLevel(prev, newSnapshot), + (currentActiveSnapshot = newSnapshot)); +} +var classComponentUpdater = { + enqueueSetState: function (inst, payload) { + inst = inst._reactInternals; + null !== inst.queue && inst.queue.push(payload); + }, + enqueueReplaceState: function (inst, payload) { + inst = inst._reactInternals; + inst.replace = !0; + inst.queue = [payload]; + }, + enqueueForceUpdate: function () {} + }, + emptyTreeContext = { id: 1, overflow: "" }; +function pushTreeContext(baseContext, totalChildren, index) { + var baseIdWithLeadingBit = baseContext.id; + baseContext = baseContext.overflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - (baseLength % 5); + length = ( + baseIdWithLeadingBit & + ((1 << numberOfOverflowBits) - 1) + ).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + return { + id: + (1 << (32 - clz32(totalChildren) + baseLength)) | + (index << baseLength) | + baseIdWithLeadingBit, + overflow: length + baseContext + }; + } + return { + id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit, + overflow: baseContext + }; +} +var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, + log = Math.log, + LN2 = Math.LN2; +function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; +} +function noop() {} +var SuspenseException = Error(formatProdErrorMessage(460)); +function trackUsedThenable(thenableState, thenable, index) { + index = thenableState[index]; + void 0 === index + ? thenableState.push(thenable) + : index !== thenable && (thenable.then(noop, noop), (thenable = index)); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + "string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenableState = thenable), + (thenableState.status = "pending"), + thenableState.then( + function (fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function (error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + )); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + suspendedThenable = thenable; + throw SuspenseException; + } +} +var suspendedThenable = null; +function getSuspendedThenable() { + if (null === suspendedThenable) throw Error(formatProdErrorMessage(459)); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; +} +function is(x, y) { + return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); +} +var objectIs = "function" === typeof Object.is ? Object.is : is, + currentlyRenderingComponent = null, + currentlyRenderingTask = null, + currentlyRenderingRequest = null, + currentlyRenderingKeyPath = null, + firstWorkInProgressHook = null, + workInProgressHook = null, + isReRender = !1, + didScheduleRenderPhaseUpdate = !1, + localIdCounter = 0, + actionStateCounter = 0, + actionStateMatchingIndex = -1, + thenableIndexCounter = 0, + thenableState = null, + renderPhaseUpdates = null, + numberOfReRenders = 0; +function resolveCurrentlyRenderingComponent() { + if (null === currentlyRenderingComponent) + throw Error(formatProdErrorMessage(321)); + return currentlyRenderingComponent; +} +function createHook() { + if (0 < numberOfReRenders) throw Error(formatProdErrorMessage(312)); + return { memoizedState: null, queue: null, next: null }; +} +function createWorkInProgressHook() { + null === workInProgressHook + ? null === firstWorkInProgressHook + ? ((isReRender = !1), + (firstWorkInProgressHook = workInProgressHook = createHook())) + : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook)) + : null === workInProgressHook.next + ? ((isReRender = !1), + (workInProgressHook = workInProgressHook.next = createHook())) + : ((isReRender = !0), (workInProgressHook = workInProgressHook.next)); + return workInProgressHook; +} +function getThenableStateAfterSuspending() { + var state = thenableState; + thenableState = null; + return state; +} +function resetHooksState() { + currentlyRenderingKeyPath = + currentlyRenderingRequest = + currentlyRenderingTask = + currentlyRenderingComponent = + null; + didScheduleRenderPhaseUpdate = !1; + firstWorkInProgressHook = null; + numberOfReRenders = 0; + workInProgressHook = renderPhaseUpdates = null; +} +function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; +} +function useReducer(reducer, initialArg, init) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + if (isReRender) { + var queue = workInProgressHook.queue; + initialArg = queue.dispatch; + if ( + null !== renderPhaseUpdates && + ((init = renderPhaseUpdates.get(queue)), void 0 !== init) + ) { + renderPhaseUpdates.delete(queue); + queue = workInProgressHook.memoizedState; + do (queue = reducer(queue, init.action)), (init = init.next); + while (null !== init); + workInProgressHook.memoizedState = queue; + return [queue, initialArg]; + } + return [workInProgressHook.memoizedState, initialArg]; + } + reducer = + reducer === basicStateReducer + ? "function" === typeof initialArg + ? initialArg() + : initialArg + : void 0 !== init + ? init(initialArg) + : initialArg; + workInProgressHook.memoizedState = reducer; + reducer = workInProgressHook.queue = { last: null, dispatch: null }; + reducer = reducer.dispatch = dispatchAction.bind( + null, + currentlyRenderingComponent, + reducer + ); + return [workInProgressHook.memoizedState, reducer]; +} +function useMemo(nextCreate, deps) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + if (null !== workInProgressHook) { + var prevState = workInProgressHook.memoizedState; + if (null !== prevState && null !== deps) { + var prevDeps = prevState[1]; + a: if (null === prevDeps) prevDeps = !1; + else { + for (var i = 0; i < prevDeps.length && i < deps.length; i++) + if (!objectIs(deps[i], prevDeps[i])) { + prevDeps = !1; + break a; + } + prevDeps = !0; + } + if (prevDeps) return prevState[0]; + } + } + nextCreate = nextCreate(); + workInProgressHook.memoizedState = [nextCreate, deps]; + return nextCreate; +} +function dispatchAction(componentIdentity, queue, action) { + if (25 <= numberOfReRenders) throw Error(formatProdErrorMessage(301)); + if (componentIdentity === currentlyRenderingComponent) + if ( + ((didScheduleRenderPhaseUpdate = !0), + (componentIdentity = { action: action, next: null }), + null === renderPhaseUpdates && (renderPhaseUpdates = new Map()), + (action = renderPhaseUpdates.get(queue)), + void 0 === action) + ) + renderPhaseUpdates.set(queue, componentIdentity); + else { + for (queue = action; null !== queue.next; ) queue = queue.next; + queue.next = componentIdentity; + } +} +function throwOnUseEffectEventCall() { + throw Error(formatProdErrorMessage(440)); +} +function unsupportedStartTransition() { + throw Error(formatProdErrorMessage(394)); +} +function unsupportedSetOptimisticState() { + throw Error(formatProdErrorMessage(479)); +} +function useActionState(action, initialState, permalink) { + resolveCurrentlyRenderingComponent(); + var actionStateHookIndex = actionStateCounter++, + request = currentlyRenderingRequest; + if ("function" === typeof action.$$FORM_ACTION) { + var nextPostbackStateKey = null, + componentKeyPath = currentlyRenderingKeyPath; + request = request.formState; + var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL; + if (null !== request && "function" === typeof isSignatureEqual) { + var postbackKey = request[1]; + isSignatureEqual.call(action, request[2], request[3]) && + ((nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([componentKeyPath, null, actionStateHookIndex]), + 0 + )), + postbackKey === nextPostbackStateKey && + ((actionStateMatchingIndex = actionStateHookIndex), + (initialState = request[0]))); + } + var boundAction = action.bind(null, initialState); + action = function (payload) { + boundAction(payload); + }; + "function" === typeof boundAction.$$FORM_ACTION && + (action.$$FORM_ACTION = function (prefix) { + prefix = boundAction.$$FORM_ACTION(prefix); + void 0 !== permalink && + ((permalink += ""), (prefix.action = permalink)); + var formData = prefix.data; + formData && + (null === nextPostbackStateKey && + (nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([ + componentKeyPath, + null, + actionStateHookIndex + ]), + 0 + )), + formData.append("$ACTION_KEY", nextPostbackStateKey)); + return prefix; + }); + return [initialState, action, !1]; + } + var boundAction$22 = action.bind(null, initialState); + return [ + initialState, + function (payload) { + boundAction$22(payload); + }, + !1 + ]; +} +function unwrapThenable(thenable) { + var index = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + return trackUsedThenable(thenableState, thenable, index); +} +function unsupportedRefresh() { + throw Error(formatProdErrorMessage(393)); +} +var HooksDispatcher = { + readContext: function (context) { + return context._currentValue; + }, + use: function (usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return unwrapThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue; + } + throw Error(formatProdErrorMessage(438, String(usable))); + }, + useContext: function (context) { + resolveCurrentlyRenderingComponent(); + return context._currentValue; + }, + useMemo: useMemo, + useReducer: useReducer, + useRef: function (initialValue) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var previousRef = workInProgressHook.memoizedState; + return null === previousRef + ? ((initialValue = { current: initialValue }), + (workInProgressHook.memoizedState = initialValue)) + : previousRef; + }, + useState: function (initialState) { + return useReducer(basicStateReducer, initialState); + }, + useInsertionEffect: noop, + useLayoutEffect: noop, + useCallback: function (callback, deps) { + return useMemo(function () { + return callback; + }, deps); + }, + useImperativeHandle: noop, + useEffect: noop, + useDebugValue: noop, + useDeferredValue: function (value, initialValue) { + resolveCurrentlyRenderingComponent(); + return void 0 !== initialValue ? initialValue : value; + }, + useTransition: function () { + resolveCurrentlyRenderingComponent(); + return [!1, unsupportedStartTransition]; + }, + useId: function () { + var JSCompiler_inline_result = currentlyRenderingTask.treeContext; + var overflow = JSCompiler_inline_result.overflow; + JSCompiler_inline_result = JSCompiler_inline_result.id; + JSCompiler_inline_result = + ( + JSCompiler_inline_result & + ~(1 << (32 - clz32(JSCompiler_inline_result) - 1)) + ).toString(32) + overflow; + var resumableState = currentResumableState; + if (null === resumableState) throw Error(formatProdErrorMessage(404)); + overflow = localIdCounter++; + JSCompiler_inline_result = + "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result; + 0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32)); + return JSCompiler_inline_result + "_"; + }, + useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) { + if (void 0 === getServerSnapshot) + throw Error(formatProdErrorMessage(407)); + return getServerSnapshot(); + }, + useOptimistic: function (passthrough) { + resolveCurrentlyRenderingComponent(); + return [passthrough, unsupportedSetOptimisticState]; + }, + useActionState: useActionState, + useFormState: useActionState, + useHostTransitionStatus: function () { + resolveCurrentlyRenderingComponent(); + return sharedNotPendingObject; + }, + useMemoCache: function (size) { + for (var data = Array(size), i = 0; i < size; i++) + data[i] = REACT_MEMO_CACHE_SENTINEL; + return data; + }, + useCacheRefresh: function () { + return unsupportedRefresh; + }, + useEffectEvent: function () { + return throwOnUseEffectEventCall; + } + }, + currentResumableState = null, + DefaultAsyncDispatcher = { + getCacheForType: function () { + throw Error(formatProdErrorMessage(248)); + }, + cacheSignal: function () { + throw Error(formatProdErrorMessage(248)); + } + }, + prefix, + suffix; +function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + suffix = + -1 < x.stack.indexOf("\n at") + ? " (<anonymous>)" + : -1 < x.stack.indexOf("@") + ? "@unknown:0:0" + : ""; + } + return "\n" + prefix + name + suffix; +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = void 0; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$24) { + control = x$24; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$25) { + control = x$25; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("<anonymous>") && + (frame = frame.replace("<anonymous>", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentStackByType(type) { + if ("string" === typeof type) return describeBuiltInComponentFrame(type); + if ("function" === typeof type) + return type.prototype && type.prototype.isReactComponent + ? describeNativeComponentFrame(type, !0) + : describeNativeComponentFrame(type, !1); + if ("object" === typeof type && null !== type) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeNativeComponentFrame(type.render, !1); + case REACT_MEMO_TYPE: + return describeNativeComponentFrame(type.type, !1); + case REACT_LAZY_TYPE: + var lazyComponent = type, + payload = lazyComponent._payload; + lazyComponent = lazyComponent._init; + try { + type = lazyComponent(payload); + } catch (x) { + return describeBuiltInComponentFrame("Lazy"); + } + return describeComponentStackByType(type); + } + if ("string" === typeof type.name) { + a: { + payload = type.name; + lazyComponent = type.env; + var location = type.debugLocation; + if ( + null != location && + ((type = Error.prepareStackTrace), + (Error.prepareStackTrace = void 0), + (location = location.stack), + (Error.prepareStackTrace = type), + location.startsWith("Error: react-stack-top-frame\n") && + (location = location.slice(29)), + (type = location.indexOf("\n")), + -1 !== type && (location = location.slice(type + 1)), + (type = location.indexOf("react_stack_bottom_frame")), + -1 !== type && (type = location.lastIndexOf("\n", type)), + (type = -1 !== type ? (location = location.slice(0, type)) : ""), + (location = type.lastIndexOf("\n")), + (type = -1 === location ? type : type.slice(location + 1)), + -1 !== type.indexOf(payload)) + ) { + payload = "\n" + type; + break a; + } + payload = describeBuiltInComponentFrame( + payload + (lazyComponent ? " [" + lazyComponent + "]" : "") + ); + } + return payload; + } + } + switch (type) { + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + } + return ""; +} +function isEligibleForOutlining(request, boundary) { + return ( + (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) && + null === boundary.contentPreamble + ); +} +function defaultErrorHandler(error) { + if ( + "object" === typeof error && + null !== error && + "string" === typeof error.environmentName + ) { + var JSCompiler_inline_result = error.environmentName; + error = [error].slice(0); + "string" === typeof error[0] + ? error.splice( + 0, + 1, + "%c%s%c " + error[0], + "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px", + " " + JSCompiler_inline_result + " ", + "" + ) + : error.splice( + 0, + 0, + "%c%s%c", + "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px", + " " + JSCompiler_inline_result + " ", + "" + ); + error.unshift(console); + JSCompiler_inline_result = bind.apply(console.error, error); + JSCompiler_inline_result(); + } else console.error(error); + return null; +} +function RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + var abortSet = new Set(); + this.destination = null; + this.flushScheduled = !1; + this.resumableState = resumableState; + this.renderState = renderState; + this.rootFormatContext = rootFormatContext; + this.progressiveChunkSize = + void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize; + this.status = 10; + this.fatalError = null; + this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0; + this.completedPreambleSegments = this.completedRootSegment = null; + this.byteSize = 0; + this.abortableTasks = abortSet; + this.pingedTasks = []; + this.clientRenderedBoundaries = []; + this.completedBoundaries = []; + this.partialBoundaries = []; + this.trackedPostpones = null; + this.onError = void 0 === onError ? defaultErrorHandler : onError; + this.onPostpone = void 0 === onPostpone ? noop : onPostpone; + this.onAllReady = void 0 === onAllReady ? noop : onAllReady; + this.onShellReady = void 0 === onShellReady ? noop : onShellReady; + this.onShellError = void 0 === onShellError ? noop : onShellError; + this.onFatalError = void 0 === onFatalError ? noop : onFatalError; + this.formState = void 0 === formState ? null : formState; +} +function createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + resumableState = new RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState + ); + renderState = createPendingSegment( + resumableState, + 0, + null, + rootFormatContext, + !1, + !1 + ); + renderState.parentFlushed = !0; + children = createRenderTask( + resumableState, + null, + children, + -1, + null, + renderState, + null, + null, + resumableState.abortableTasks, + null, + rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + resumableState.pingedTasks.push(children); + return resumableState; +} +function createPrerenderRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + children = createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + void 0 + ); + children.trackedPostpones = { + workingMap: new Map(), + rootNodes: [], + rootSlots: null + }; + return children; +} +function resumeRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + renderState = new RequestInstance( + postponedState.resumableState, + renderState, + postponedState.rootFormatContext, + postponedState.progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + null + ); + renderState.nextSegmentId = postponedState.nextSegmentId; + if ("number" === typeof postponedState.replaySlots) + return ( + (onError = createPendingSegment( + renderState, + 0, + null, + postponedState.rootFormatContext, + !1, + !1 + )), + (onError.parentFlushed = !0), + (children = createRenderTask( + renderState, + null, + children, + -1, + null, + onError, + null, + null, + renderState.abortableTasks, + null, + postponedState.rootFormatContext, + null, + emptyTreeContext, + null, + null + )), + pushComponentStack(children), + renderState.pingedTasks.push(children), + renderState + ); + children = createReplayTask( + renderState, + null, + { + nodes: postponedState.replayNodes, + slots: postponedState.replaySlots, + pendingTasks: 0 + }, + children, + -1, + null, + null, + renderState.abortableTasks, + null, + postponedState.rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + renderState.pingedTasks.push(children); + return renderState; +} +function resumeAndPrerenderRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + children = resumeRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone + ); + children.trackedPostpones = { + workingMap: new Map(), + rootNodes: [], + rootSlots: null + }; + return children; +} +var currentRequest = null; +function pingTask(request, task) { + request.pingedTasks.push(task); + 1 === request.pingedTasks.length && + ((request.flushScheduled = null !== request.destination), + null !== request.trackedPostpones || 10 === request.status + ? scheduleMicrotask(function () { + return performWork(request); + }) + : scheduleWork(function () { + return performWork(request); + })); +} +function createSuspenseBoundary( + request, + row, + fallbackAbortableTasks, + contentPreamble, + fallbackPreamble +) { + fallbackAbortableTasks = { + status: 0, + rootSegmentID: -1, + parentFlushed: !1, + pendingTasks: 0, + row: row, + completedSegments: [], + byteSize: 0, + fallbackAbortableTasks: fallbackAbortableTasks, + errorDigest: null, + contentState: createHoistableState(), + fallbackState: createHoistableState(), + contentPreamble: contentPreamble, + fallbackPreamble: fallbackPreamble, + trackedContentKeyPath: null, + trackedFallbackNode: null + }; + null !== row && + (row.pendingTasks++, + (contentPreamble = row.boundaries), + null !== contentPreamble && + (request.allPendingTasks++, + fallbackAbortableTasks.pendingTasks++, + contentPreamble.push(fallbackAbortableTasks)), + (request = row.inheritedHoistables), + null !== request && + hoistHoistables(fallbackAbortableTasks.contentState, request)); + return fallbackAbortableTasks; +} +function createRenderTask( + request, + thenableState, + node, + childIndex, + blockedBoundary, + blockedSegment, + blockedPreamble, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + var task = { + replay: null, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: blockedSegment, + blockedPreamble: blockedPreamble, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createReplayTask( + request, + thenableState, + replay, + node, + childIndex, + blockedBoundary, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + replay.pendingTasks++; + var task = { + replay: replay, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: null, + blockedPreamble: null, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createPendingSegment( + request, + index, + boundary, + parentFormatContext, + lastPushedText, + textEmbedded +) { + return { + status: 0, + parentFlushed: !1, + id: -1, + index: index, + chunks: [], + children: [], + preambleChildren: [], + parentFormatContext: parentFormatContext, + boundary: boundary, + lastPushedText: lastPushedText, + textEmbedded: textEmbedded + }; +} +function pushComponentStack(task) { + var node = task.node; + if ("object" === typeof node && null !== node) + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + task.componentStack = { parent: task.componentStack, type: node.type }; + } +} +function replaceSuspenseComponentStackWithSuspenseFallbackStack( + componentStack +) { + return null === componentStack + ? null + : { parent: componentStack.parent, type: "Suspense Fallback" }; +} +function getThrownInfo(node$jscomp$0) { + var errorInfo = {}; + node$jscomp$0 && + Object.defineProperty(errorInfo, "componentStack", { + configurable: !0, + enumerable: !0, + get: function () { + try { + var info = "", + node = node$jscomp$0; + do + (info += describeComponentStackByType(node.type)), + (node = node.parent); + while (node); + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = + "\nError generating stack: " + x.message + "\n" + x.stack; + } + Object.defineProperty(errorInfo, "componentStack", { + value: JSCompiler_inline_result + }); + return JSCompiler_inline_result; + } + }); + return errorInfo; +} +function logRecoverableError(request, error, errorInfo) { + request = request.onError; + error = request(error, errorInfo); + if (null == error || "string" === typeof error) return error; +} +function fatalError(request, error) { + var onShellError = request.onShellError, + onFatalError = request.onFatalError; + onShellError(error); + onFatalError(error); + null !== request.destination + ? ((request.status = 14), closeWithError(request.destination, error)) + : ((request.status = 13), (request.fatalError = error)); +} +function finishSuspenseListRow(request, row) { + unblockSuspenseListRow(request, row.next, row.hoistables); +} +function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) { + for (; null !== unblockedRow; ) { + null !== inheritedHoistables && + (hoistHoistables(unblockedRow.hoistables, inheritedHoistables), + (unblockedRow.inheritedHoistables = inheritedHoistables)); + var unblockedBoundaries = unblockedRow.boundaries; + if (null !== unblockedBoundaries) { + unblockedRow.boundaries = null; + for (var i = 0; i < unblockedBoundaries.length; i++) { + var unblockedBoundary = unblockedBoundaries[i]; + null !== inheritedHoistables && + hoistHoistables(unblockedBoundary.contentState, inheritedHoistables); + finishedTask(request, unblockedBoundary, null, null); + } + } + unblockedRow.pendingTasks--; + if (0 < unblockedRow.pendingTasks) break; + inheritedHoistables = unblockedRow.hoistables; + unblockedRow = unblockedRow.next; + } +} +function tryToResolveTogetherRow(request, togetherRow) { + var boundaries = togetherRow.boundaries; + if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) { + for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) { + var rowBoundary = boundaries[i]; + if ( + 1 !== rowBoundary.pendingTasks || + rowBoundary.parentFlushed || + isEligibleForOutlining(request, rowBoundary) + ) { + allCompleteAndInlinable = !1; + break; + } + } + allCompleteAndInlinable && + unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables); + } +} +function createSuspenseListRow(previousRow) { + var newRow = { + pendingTasks: 1, + boundaries: null, + hoistables: createHoistableState(), + inheritedHoistables: null, + together: !1, + next: null + }; + null !== previousRow && + 0 < previousRow.pendingTasks && + (newRow.pendingTasks++, + (newRow.boundaries = []), + (previousRow.next = newRow)); + return newRow; +} +function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) { + var prevKeyPath = task.keyPath, + prevTreeContext = task.treeContext, + prevRow = task.row; + task.keyPath = keyPath; + keyPath = rows.length; + var previousSuspenseListRow = null; + if (null !== task.replay) { + var resumeSlots = task.replay.slots; + if (null !== resumeSlots && "object" === typeof resumeSlots) + for (var n = 0; n < keyPath; n++) { + var i = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? n + : keyPath - 1 - n, + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + var resumeSegmentID = resumeSlots[i]; + "number" === typeof resumeSegmentID + ? (resumeNode(request, task, resumeSegmentID, node, i), + delete resumeSlots[i]) + : renderNode(request, task, node, i); + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } + else + for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++) + (n = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? resumeSlots + : keyPath - 1 - resumeSlots), + (i = rows[n]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)), + renderNode(request, task, i, n), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } else if ( + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ) + for (revealOrder = 0; revealOrder < keyPath; revealOrder++) + (resumeSlots = rows[revealOrder]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext( + prevTreeContext, + keyPath, + revealOrder + )), + renderNode(request, task, resumeSlots, revealOrder), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + else { + revealOrder = task.blockedSegment; + resumeSlots = revealOrder.children.length; + n = revealOrder.chunks.length; + for (i = keyPath - 1; 0 <= i; i--) { + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + resumeSegmentID = createPendingSegment( + request, + n, + null, + task.formatContext, + 0 === i ? revealOrder.lastPushedText : !0, + !0 + ); + revealOrder.children.splice(resumeSlots, 0, resumeSegmentID); + task.blockedSegment = resumeSegmentID; + try { + renderNode(request, task, node, i), + resumeSegmentID.lastPushedText && + resumeSegmentID.textEmbedded && + resumeSegmentID.chunks.push(textSeparator), + (resumeSegmentID.status = 1), + finishedSegment(request, task.blockedBoundary, resumeSegmentID), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } catch (thrownValue) { + throw ( + ((resumeSegmentID.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } + } + task.blockedSegment = revealOrder; + revealOrder.lastPushedText = !1; + } + null !== prevRow && + null !== previousSuspenseListRow && + 0 < previousSuspenseListRow.pendingTasks && + (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow)); + task.treeContext = prevTreeContext; + task.row = prevRow; + task.keyPath = prevKeyPath; +} +function renderWithHooks(request, task, keyPath, Component, props, secondArg) { + var prevThenableState = task.thenableState; + task.thenableState = null; + currentlyRenderingComponent = {}; + currentlyRenderingTask = task; + currentlyRenderingRequest = request; + currentlyRenderingKeyPath = keyPath; + actionStateCounter = localIdCounter = 0; + actionStateMatchingIndex = -1; + thenableIndexCounter = 0; + thenableState = prevThenableState; + for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; ) + (didScheduleRenderPhaseUpdate = !1), + (actionStateCounter = localIdCounter = 0), + (actionStateMatchingIndex = -1), + (thenableIndexCounter = 0), + (numberOfReRenders += 1), + (workInProgressHook = null), + (request = Component(props, secondArg)); + resetHooksState(); + return request; +} +function finishFunctionComponent( + request, + task, + keyPath, + children, + hasId, + actionStateCount, + actionStateMatchingIndex +) { + var didEmitActionStateMarkers = !1; + if (0 !== actionStateCount && null !== request.formState) { + var segment = task.blockedSegment; + if (null !== segment) { + didEmitActionStateMarkers = !0; + segment = segment.chunks; + for (var i = 0; i < actionStateCount; i++) + i === actionStateMatchingIndex + ? segment.push(formStateMarkerIsMatching) + : segment.push(formStateMarkerIsNotMatching); + } + } + actionStateCount = task.keyPath; + task.keyPath = keyPath; + hasId + ? ((keyPath = task.treeContext), + (task.treeContext = pushTreeContext(keyPath, 1, 0)), + renderNode(request, task, children, -1), + (task.treeContext = keyPath)) + : didEmitActionStateMarkers + ? renderNode(request, task, children, -1) + : renderNodeDestructive(request, task, children, -1); + task.keyPath = actionStateCount; +} +function renderElement(request, task, keyPath, type, props, ref) { + if ("function" === typeof type) + if (type.prototype && type.prototype.isReactComponent) { + var newProps = props; + if ("ref" in props) { + newProps = {}; + for (var propName in props) + "ref" !== propName && (newProps[propName] = props[propName]); + } + var defaultProps = type.defaultProps; + if (defaultProps) { + newProps === props && (newProps = assign({}, newProps, props)); + for (var propName$44 in defaultProps) + void 0 === newProps[propName$44] && + (newProps[propName$44] = defaultProps[propName$44]); + } + props = newProps; + newProps = emptyContextObject; + defaultProps = type.contextType; + "object" === typeof defaultProps && + null !== defaultProps && + (newProps = defaultProps._currentValue); + newProps = new type(props, newProps); + var initialState = void 0 !== newProps.state ? newProps.state : null; + newProps.updater = classComponentUpdater; + newProps.props = props; + newProps.state = initialState; + defaultProps = { queue: [], replace: !1 }; + newProps._reactInternals = defaultProps; + ref = type.contextType; + newProps.context = + "object" === typeof ref && null !== ref + ? ref._currentValue + : emptyContextObject; + ref = type.getDerivedStateFromProps; + "function" === typeof ref && + ((ref = ref(props, initialState)), + (initialState = + null === ref || void 0 === ref + ? initialState + : assign({}, initialState, ref)), + (newProps.state = initialState)); + if ( + "function" !== typeof type.getDerivedStateFromProps && + "function" !== typeof newProps.getSnapshotBeforeUpdate && + ("function" === typeof newProps.UNSAFE_componentWillMount || + "function" === typeof newProps.componentWillMount) + ) + if ( + ((type = newProps.state), + "function" === typeof newProps.componentWillMount && + newProps.componentWillMount(), + "function" === typeof newProps.UNSAFE_componentWillMount && + newProps.UNSAFE_componentWillMount(), + type !== newProps.state && + classComponentUpdater.enqueueReplaceState( + newProps, + newProps.state, + null + ), + null !== defaultProps.queue && 0 < defaultProps.queue.length) + ) + if ( + ((type = defaultProps.queue), + (ref = defaultProps.replace), + (defaultProps.queue = null), + (defaultProps.replace = !1), + ref && 1 === type.length) + ) + newProps.state = type[0]; + else { + defaultProps = ref ? type[0] : newProps.state; + initialState = !0; + for (ref = ref ? 1 : 0; ref < type.length; ref++) + (propName$44 = type[ref]), + (propName$44 = + "function" === typeof propName$44 + ? propName$44.call(newProps, defaultProps, props, void 0) + : propName$44), + null != propName$44 && + (initialState + ? ((initialState = !1), + (defaultProps = assign({}, defaultProps, propName$44))) + : assign(defaultProps, propName$44)); + newProps.state = defaultProps; + } + else defaultProps.queue = null; + type = newProps.render(); + if (12 === request.status) throw null; + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + } else { + type = renderWithHooks(request, task, keyPath, type, props, void 0); + if (12 === request.status) throw null; + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + } + else if ("string" === typeof type) + if (((newProps = task.blockedSegment), null === newProps)) + (newProps = props.children), + (defaultProps = task.formatContext), + (initialState = task.keyPath), + (task.formatContext = getChildFormatContext(defaultProps, type, props)), + (task.keyPath = keyPath), + renderNode(request, task, newProps, -1), + (task.formatContext = defaultProps), + (task.keyPath = initialState); + else { + initialState = pushStartInstance( + newProps.chunks, + type, + props, + request.resumableState, + request.renderState, + task.blockedPreamble, + task.hoistableState, + task.formatContext, + newProps.lastPushedText + ); + newProps.lastPushedText = !1; + defaultProps = task.formatContext; + ref = task.keyPath; + task.keyPath = keyPath; + if ( + 3 === + (task.formatContext = getChildFormatContext(defaultProps, type, props)) + .insertionMode + ) { + keyPath = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + newProps.preambleChildren.push(keyPath); + task.blockedSegment = keyPath; + try { + (keyPath.status = 6), + renderNode(request, task, initialState, -1), + keyPath.lastPushedText && + keyPath.textEmbedded && + keyPath.chunks.push(textSeparator), + (keyPath.status = 1), + finishedSegment(request, task.blockedBoundary, keyPath); + } finally { + task.blockedSegment = newProps; + } + } else renderNode(request, task, initialState, -1); + task.formatContext = defaultProps; + task.keyPath = ref; + a: { + task = newProps.chunks; + request = request.resumableState; + switch (type) { + case "title": + case "style": + case "script": + case "area": + case "base": + case "br": + case "col": + case "embed": + case "hr": + case "img": + case "input": + case "keygen": + case "link": + case "meta": + case "param": + case "source": + case "track": + case "wbr": + break a; + case "body": + if (1 >= defaultProps.insertionMode) { + request.hasBody = !0; + break a; + } + break; + case "html": + if (0 === defaultProps.insertionMode) { + request.hasHtml = !0; + break a; + } + break; + case "head": + if (1 >= defaultProps.insertionMode) break a; + } + task.push(endChunkForTag(type)); + } + newProps.lastPushedText = !1; + } + else { + switch (type) { + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_PROFILER_TYPE: + case REACT_FRAGMENT_TYPE: + type = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, props.children, -1); + task.keyPath = type; + return; + case REACT_ACTIVITY_TYPE: + type = task.blockedSegment; + null === type + ? "hidden" !== props.mode && + ((type = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = type)) + : "hidden" !== props.mode && + (type.chunks.push(startActivityBoundary), + (type.lastPushedText = !1), + (newProps = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = newProps), + type.chunks.push(endActivityBoundary), + (type.lastPushedText = !1)); + return; + case REACT_SUSPENSE_LIST_TYPE: + a: { + type = props.children; + props = props.revealOrder; + if ( + "forwards" === props || + "backwards" === props || + "unstable_legacy-backwards" === props + ) { + if (isArrayImpl(type)) { + renderSuspenseListRows(request, task, keyPath, type, props); + break a; + } + if ((newProps = getIteratorFn(type))) + if ((newProps = newProps.call(type))) { + defaultProps = newProps.next(); + if (!defaultProps.done) { + do defaultProps = newProps.next(); + while (!defaultProps.done); + renderSuspenseListRows(request, task, keyPath, type, props); + } + break a; + } + } + "together" === props + ? ((props = task.keyPath), + (newProps = task.row), + (defaultProps = task.row = createSuspenseListRow(null)), + (defaultProps.boundaries = []), + (defaultProps.together = !0), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + 0 === --defaultProps.pendingTasks && + finishSuspenseListRow(request, defaultProps), + (task.keyPath = props), + (task.row = newProps), + null !== newProps && + 0 < defaultProps.pendingTasks && + (newProps.pendingTasks++, (defaultProps.next = newProps))) + : ((props = task.keyPath), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + (task.keyPath = props)); + } + return; + case REACT_VIEW_TRANSITION_TYPE: + case REACT_SCOPE_TYPE: + throw Error(formatProdErrorMessage(343)); + case REACT_SUSPENSE_TYPE: + a: if (null !== task.replay) { + type = task.keyPath; + newProps = task.formatContext; + defaultProps = task.row; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + newProps + ); + task.row = null; + keyPath = props.children; + try { + renderNode(request, task, keyPath, -1); + } finally { + (task.keyPath = type), + (task.formatContext = newProps), + (task.row = defaultProps); + } + } else { + type = task.keyPath; + ref = task.formatContext; + var prevRow = task.row; + propName$44 = task.blockedBoundary; + propName = task.blockedPreamble; + var parentHoistableState = task.hoistableState, + parentSegment = task.blockedSegment, + fallback = props.fallback; + props = props.children; + var fallbackAbortSet = new Set(); + var newBoundary = + 2 > task.formatContext.insertionMode + ? createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + createPreambleState(), + createPreambleState() + ) + : createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + null !== request.trackedPostpones && + (newBoundary.trackedContentKeyPath = keyPath); + var boundarySegment = createPendingSegment( + request, + parentSegment.chunks.length, + newBoundary, + task.formatContext, + !1, + !1 + ); + parentSegment.children.push(boundarySegment); + parentSegment.lastPushedText = !1; + var contentRootSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + contentRootSegment.parentFlushed = !0; + if (null !== request.trackedPostpones) { + newProps = task.componentStack; + defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]]; + initialState = [defaultProps[1], defaultProps[2], [], null]; + request.trackedPostpones.workingMap.set(defaultProps, initialState); + newBoundary.trackedFallbackNode = initialState; + task.blockedSegment = boundarySegment; + task.blockedPreamble = newBoundary.fallbackPreamble; + task.keyPath = defaultProps; + task.formatContext = getSuspenseFallbackFormatContext( + request.resumableState, + ref + ); + task.componentStack = + replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps); + boundarySegment.status = 6; + try { + renderNode(request, task, fallback, -1), + boundarySegment.lastPushedText && + boundarySegment.textEmbedded && + boundarySegment.chunks.push(textSeparator), + (boundarySegment.status = 1), + finishedSegment(request, propName$44, boundarySegment); + } catch (thrownValue) { + throw ( + ((boundarySegment.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } finally { + (task.blockedSegment = parentSegment), + (task.blockedPreamble = propName), + (task.keyPath = type), + (task.formatContext = ref); + } + task = createRenderTask( + request, + null, + props, + -1, + newBoundary, + contentRootSegment, + newBoundary.contentPreamble, + newBoundary.contentState, + task.abortSet, + keyPath, + getSuspenseContentFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + null, + newProps + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } else { + task.blockedBoundary = newBoundary; + task.blockedPreamble = newBoundary.contentPreamble; + task.hoistableState = newBoundary.contentState; + task.blockedSegment = contentRootSegment; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + ref + ); + task.row = null; + contentRootSegment.status = 6; + try { + if ( + (renderNode(request, task, props, -1), + contentRootSegment.lastPushedText && + contentRootSegment.textEmbedded && + contentRootSegment.chunks.push(textSeparator), + (contentRootSegment.status = 1), + finishedSegment(request, newBoundary, contentRootSegment), + queueCompletedSegment(newBoundary, contentRootSegment), + 0 === newBoundary.pendingTasks && 0 === newBoundary.status) + ) { + if ( + ((newBoundary.status = 1), + !isEligibleForOutlining(request, newBoundary)) + ) { + null !== prevRow && + 0 === --prevRow.pendingTasks && + finishSuspenseListRow(request, prevRow); + 0 === request.pendingRootTasks && + task.blockedPreamble && + preparePreamble(request); + break a; + } + } else + null !== prevRow && + prevRow.together && + tryToResolveTogetherRow(request, prevRow); + } catch (thrownValue$31) { + (newBoundary.status = 4), + 12 === request.status + ? ((contentRootSegment.status = 3), + (newProps = request.fatalError)) + : ((contentRootSegment.status = 4), + (newProps = thrownValue$31)), + (defaultProps = getThrownInfo(task.componentStack)), + (initialState = logRecoverableError( + request, + newProps, + defaultProps + )), + (newBoundary.errorDigest = initialState), + untrackBoundary(request, newBoundary); + } finally { + (task.blockedBoundary = propName$44), + (task.blockedPreamble = propName), + (task.hoistableState = parentHoistableState), + (task.blockedSegment = parentSegment), + (task.keyPath = type), + (task.formatContext = ref), + (task.row = prevRow); + } + task = createRenderTask( + request, + null, + fallback, + -1, + propName$44, + boundarySegment, + newBoundary.fallbackPreamble, + newBoundary.fallbackState, + fallbackAbortSet, + [keyPath[0], "Suspense Fallback", keyPath[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } + } + return; + } + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + if ("ref" in props) + for (parentSegment in ((newProps = {}), props)) + "ref" !== parentSegment && + (newProps[parentSegment] = props[parentSegment]); + else newProps = props; + type = renderWithHooks( + request, + task, + keyPath, + type.render, + newProps, + ref + ); + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + return; + case REACT_MEMO_TYPE: + renderElement(request, task, keyPath, type.type, props, ref); + return; + case REACT_CONTEXT_TYPE: + defaultProps = props.children; + newProps = task.keyPath; + props = props.value; + initialState = type._currentValue; + type._currentValue = props; + ref = currentActiveSnapshot; + currentActiveSnapshot = type = { + parent: ref, + depth: null === ref ? 0 : ref.depth + 1, + context: type, + parentValue: initialState, + value: props + }; + task.context = type; + task.keyPath = keyPath; + renderNodeDestructive(request, task, defaultProps, -1); + request = currentActiveSnapshot; + if (null === request) throw Error(formatProdErrorMessage(403)); + request.context._currentValue = request.parentValue; + request = currentActiveSnapshot = request.parent; + task.context = request; + task.keyPath = newProps; + return; + case REACT_CONSUMER_TYPE: + props = props.children; + type = props(type._context._currentValue); + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + return; + case REACT_LAZY_TYPE: + newProps = type._init; + type = newProps(type._payload); + if (12 === request.status) throw null; + renderElement(request, task, keyPath, type, props, ref); + return; + } + throw Error( + formatProdErrorMessage(130, null == type ? type : typeof type, "") + ); + } +} +function resumeNode(request, task, segmentId, node, childIndex) { + var prevReplay = task.replay, + blockedBoundary = task.blockedBoundary, + resumedSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + resumedSegment.id = segmentId; + resumedSegment.parentFlushed = !0; + try { + (task.replay = null), + (task.blockedSegment = resumedSegment), + renderNode(request, task, node, childIndex), + (resumedSegment.status = 1), + finishedSegment(request, blockedBoundary, resumedSegment), + null === blockedBoundary + ? (request.completedRootSegment = resumedSegment) + : (queueCompletedSegment(blockedBoundary, resumedSegment), + blockedBoundary.parentFlushed && + request.partialBoundaries.push(blockedBoundary)); + } finally { + (task.replay = prevReplay), (task.blockedSegment = null); + } +} +function renderNodeDestructive(request, task, node, childIndex) { + null !== task.replay && "number" === typeof task.replay.slots + ? resumeNode(request, task, task.replay.slots, node, childIndex) + : ((task.node = node), + (task.childIndex = childIndex), + (node = task.componentStack), + pushComponentStack(task), + retryNode(request, task), + (task.componentStack = node)); +} +function retryNode(request, task) { + var node = task.node, + childIndex = task.childIndex; + if (null !== node) { + if ("object" === typeof node) { + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + var type = node.type, + key = node.key, + props = node.props; + node = props.ref; + var ref = void 0 !== node ? node : null, + name = getComponentNameFromType(type), + keyOrIndex = + null == key ? (-1 === childIndex ? 0 : childIndex) : key; + key = [task.keyPath, name, keyOrIndex]; + if (null !== task.replay) + a: { + var replay = task.replay; + childIndex = replay.nodes; + for (node = 0; node < childIndex.length; node++) { + var node$jscomp$0 = childIndex[node]; + if (keyOrIndex === node$jscomp$0[1]) { + if (4 === node$jscomp$0.length) { + if (null !== name && name !== node$jscomp$0[0]) + throw Error( + formatProdErrorMessage(490, node$jscomp$0[0], name) + ); + var childNodes = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = task.node; + task.replay = { + nodes: childNodes, + slots: name, + pendingTasks: 1 + }; + try { + renderElement(request, task, key, type, props, ref); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || + "function" === typeof x.then) + ) + throw ( + (task.node === keyOrIndex + ? (task.replay = replay) + : childIndex.splice(node, 1), + x) + ); + task.replay.pendingTasks--; + props = getThrownInfo(task.componentStack); + key = request; + request = task.blockedBoundary; + type = x; + props = logRecoverableError(key, type, props); + abortRemainingReplayNodes( + key, + request, + childNodes, + name, + type, + props + ); + } + task.replay = replay; + } else { + if (type !== REACT_SUSPENSE_TYPE) + throw Error( + formatProdErrorMessage( + 490, + "Suspense", + getComponentNameFromType(type) || "Unknown" + ) + ); + b: { + replay = void 0; + type = node$jscomp$0[5]; + ref = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = + null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2]; + node$jscomp$0 = + null === node$jscomp$0[4] ? null : node$jscomp$0[4][3]; + var prevKeyPath = task.keyPath, + prevContext = task.formatContext, + prevRow = task.row, + previousReplaySet = task.replay, + parentBoundary = task.blockedBoundary, + parentHoistableState = task.hoistableState, + content = props.children, + fallback = props.fallback, + fallbackAbortSet = new Set(); + props = + 2 > task.formatContext.insertionMode + ? createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + createPreambleState(), + createPreambleState() + ) + : createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + props.parentFlushed = !0; + props.rootSegmentID = type; + task.blockedBoundary = props; + task.hoistableState = props.contentState; + task.keyPath = key; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + prevContext + ); + task.row = null; + task.replay = { + nodes: ref, + slots: name, + pendingTasks: 1 + }; + try { + renderNode(request, task, content, -1); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + if (0 === props.pendingTasks && 0 === props.status) { + props.status = 1; + request.completedBoundaries.push(props); + break b; + } + } catch (error) { + (props.status = 4), + (childNodes = getThrownInfo(task.componentStack)), + (replay = logRecoverableError( + request, + error, + childNodes + )), + (props.errorDigest = replay), + task.replay.pendingTasks--, + request.clientRenderedBoundaries.push(props); + } finally { + (task.blockedBoundary = parentBoundary), + (task.hoistableState = parentHoistableState), + (task.replay = previousReplaySet), + (task.keyPath = prevKeyPath), + (task.formatContext = prevContext), + (task.row = prevRow); + } + childNodes = createReplayTask( + request, + null, + { + nodes: keyOrIndex, + slots: node$jscomp$0, + pendingTasks: 0 + }, + fallback, + -1, + parentBoundary, + props.fallbackState, + fallbackAbortSet, + [key[0], "Suspense Fallback", key[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(childNodes); + request.pingedTasks.push(childNodes); + } + } + childIndex.splice(node, 1); + break a; + } + } + } + else renderElement(request, task, key, type, props, ref); + return; + case REACT_PORTAL_TYPE: + throw Error(formatProdErrorMessage(257)); + case REACT_LAZY_TYPE: + childNodes = node._init; + node = childNodes(node._payload); + if (12 === request.status) throw null; + renderNodeDestructive(request, task, node, childIndex); + return; + } + if (isArrayImpl(node)) { + renderChildrenArray(request, task, node, childIndex); + return; + } + if ((childNodes = getIteratorFn(node))) + if ((childNodes = childNodes.call(node))) { + node = childNodes.next(); + if (!node.done) { + props = []; + do props.push(node.value), (node = childNodes.next()); + while (!node.done); + renderChildrenArray(request, task, props, childIndex); + } + return; + } + if ("function" === typeof node.then) + return ( + (task.thenableState = null), + renderNodeDestructive(request, task, unwrapThenable(node), childIndex) + ); + if (node.$$typeof === REACT_CONTEXT_TYPE) + return renderNodeDestructive( + request, + task, + node._currentValue, + childIndex + ); + childIndex = Object.prototype.toString.call(node); + throw Error( + formatProdErrorMessage( + 31, + "[object Object]" === childIndex + ? "object with keys {" + Object.keys(node).join(", ") + "}" + : childIndex + ) + ); + } + if ("string" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + node, + request.renderState, + childIndex.lastPushedText + )); + else if ("number" === typeof node || "bigint" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + "" + node, + request.renderState, + childIndex.lastPushedText + )); + } +} +function renderChildrenArray(request, task, children, childIndex) { + var prevKeyPath = task.keyPath; + if ( + -1 !== childIndex && + ((task.keyPath = [task.keyPath, "Fragment", childIndex]), + null !== task.replay) + ) { + for ( + var replay = task.replay, replayNodes = replay.nodes, j = 0; + j < replayNodes.length; + j++ + ) { + var node = replayNodes[j]; + if (node[1] === childIndex) { + childIndex = node[2]; + node = node[3]; + task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 }; + try { + renderChildrenArray(request, task, children, -1); + if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || "function" === typeof x.then) + ) + throw x; + task.replay.pendingTasks--; + children = getThrownInfo(task.componentStack); + var boundary = task.blockedBoundary, + error = x; + children = logRecoverableError(request, error, children); + abortRemainingReplayNodes( + request, + boundary, + childIndex, + node, + error, + children + ); + } + task.replay = replay; + replayNodes.splice(j, 1); + break; + } + } + task.keyPath = prevKeyPath; + return; + } + replay = task.treeContext; + replayNodes = children.length; + if ( + null !== task.replay && + ((j = task.replay.slots), null !== j && "object" === typeof j) + ) { + for (childIndex = 0; childIndex < replayNodes; childIndex++) + (node = children[childIndex]), + (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)), + (boundary = j[childIndex]), + "number" === typeof boundary + ? (resumeNode(request, task, boundary, node, childIndex), + delete j[childIndex]) + : renderNode(request, task, node, childIndex); + task.treeContext = replay; + task.keyPath = prevKeyPath; + return; + } + for (j = 0; j < replayNodes; j++) + (childIndex = children[j]), + (task.treeContext = pushTreeContext(replay, replayNodes, j)), + renderNode(request, task, childIndex, j); + task.treeContext = replay; + task.keyPath = prevKeyPath; +} +function trackPostponedBoundary(request, trackedPostpones, boundary) { + boundary.status = 5; + boundary.rootSegmentID = request.nextSegmentId++; + request = boundary.trackedContentKeyPath; + if (null === request) throw Error(formatProdErrorMessage(486)); + var fallbackReplayNode = boundary.trackedFallbackNode, + children = [], + boundaryNode = trackedPostpones.workingMap.get(request); + if (void 0 === boundaryNode) + return ( + (boundary = [ + request[1], + request[2], + children, + null, + fallbackReplayNode, + boundary.rootSegmentID + ]), + trackedPostpones.workingMap.set(request, boundary), + addToReplayParent(boundary, request[0], trackedPostpones), + boundary + ); + boundaryNode[4] = fallbackReplayNode; + boundaryNode[5] = boundary.rootSegmentID; + return boundaryNode; +} +function trackPostpone(request, trackedPostpones, task, segment) { + segment.status = 5; + var keyPath = task.keyPath, + boundary = task.blockedBoundary; + if (null === boundary) + (segment.id = request.nextSegmentId++), + (trackedPostpones.rootSlots = segment.id), + null !== request.completedRootSegment && + (request.completedRootSegment.status = 5); + else { + if (null !== boundary && 0 === boundary.status) { + var boundaryNode = trackPostponedBoundary( + request, + trackedPostpones, + boundary + ); + if ( + boundary.trackedContentKeyPath === keyPath && + -1 === task.childIndex + ) { + -1 === segment.id && + (segment.id = segment.parentFlushed + ? boundary.rootSegmentID + : request.nextSegmentId++); + boundaryNode[3] = segment.id; + return; + } + } + -1 === segment.id && + (segment.id = + segment.parentFlushed && null !== boundary + ? boundary.rootSegmentID + : request.nextSegmentId++); + if (-1 === task.childIndex) + null === keyPath + ? (trackedPostpones.rootSlots = segment.id) + : ((task = trackedPostpones.workingMap.get(keyPath)), + void 0 === task + ? ((task = [keyPath[1], keyPath[2], [], segment.id]), + addToReplayParent(task, keyPath[0], trackedPostpones)) + : (task[3] = segment.id)); + else { + if (null === keyPath) + if (((request = trackedPostpones.rootSlots), null === request)) + request = trackedPostpones.rootSlots = {}; + else { + if ("number" === typeof request) + throw Error(formatProdErrorMessage(491)); + } + else if ( + ((boundary = trackedPostpones.workingMap), + (boundaryNode = boundary.get(keyPath)), + void 0 === boundaryNode) + ) + (request = {}), + (boundaryNode = [keyPath[1], keyPath[2], [], request]), + boundary.set(keyPath, boundaryNode), + addToReplayParent(boundaryNode, keyPath[0], trackedPostpones); + else if (((request = boundaryNode[3]), null === request)) + request = boundaryNode[3] = {}; + else if ("number" === typeof request) + throw Error(formatProdErrorMessage(491)); + request[task.childIndex] = segment.id; + } + } +} +function untrackBoundary(request, boundary) { + request = request.trackedPostpones; + null !== request && + ((boundary = boundary.trackedContentKeyPath), + null !== boundary && + ((boundary = request.workingMap.get(boundary)), + void 0 !== boundary && + ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null)))); +} +function spawnNewSuspendedReplayTask(request, task, thenableState) { + return createReplayTask( + request, + thenableState, + task.replay, + task.node, + task.childIndex, + task.blockedBoundary, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function spawnNewSuspendedRenderTask(request, task, thenableState) { + var segment = task.blockedSegment, + newSegment = createPendingSegment( + request, + segment.chunks.length, + null, + task.formatContext, + segment.lastPushedText, + !0 + ); + segment.children.push(newSegment); + segment.lastPushedText = !1; + return createRenderTask( + request, + thenableState, + task.node, + task.childIndex, + task.blockedBoundary, + newSegment, + task.blockedPreamble, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function renderNode(request, task, node, childIndex) { + var previousFormatContext = task.formatContext, + previousContext = task.context, + previousKeyPath = task.keyPath, + previousTreeContext = task.treeContext, + previousComponentStack = task.componentStack, + segment = task.blockedSegment; + if (null === segment) { + segment = task.replay; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue) { + if ( + (resetHooksState(), + (node = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + childIndex = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedReplayTask(request, task, childIndex).ping; + node.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + node = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + node = spawnNewSuspendedReplayTask(request, task, node); + request.pingedTasks.push(node); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + } + } + } else { + var childrenLength = segment.children.length, + chunkLength = segment.chunks.length; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue$63) { + if ( + (resetHooksState(), + (segment.children.length = childrenLength), + (segment.chunks.length = chunkLength), + (node = + thrownValue$63 === SuspenseException + ? getSuspendedThenable() + : thrownValue$63), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + segment = node; + node = + thrownValue$63 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedRenderTask(request, task, node).ping; + segment.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + segment = + thrownValue$63 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + segment = spawnNewSuspendedRenderTask(request, task, segment); + request.pingedTasks.push(segment); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + } + } + } + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + switchContext(previousContext); + throw node; +} +function abortTaskSoft(task) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + null !== segment && + ((segment.status = 3), finishedTask(this, boundary, task.row, segment)); +} +function abortRemainingReplayNodes( + request$jscomp$0, + boundary, + nodes, + slots, + error, + errorDigest$jscomp$0 +) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (4 === node.length) + abortRemainingReplayNodes( + request$jscomp$0, + boundary, + node[2], + node[3], + error, + errorDigest$jscomp$0 + ); + else { + node = node[5]; + var request = request$jscomp$0, + errorDigest = errorDigest$jscomp$0, + resumedBoundary = createSuspenseBoundary( + request, + null, + new Set(), + null, + null + ); + resumedBoundary.parentFlushed = !0; + resumedBoundary.rootSegmentID = node; + resumedBoundary.status = 4; + resumedBoundary.errorDigest = errorDigest; + resumedBoundary.parentFlushed && + request.clientRenderedBoundaries.push(resumedBoundary); + } + } + nodes.length = 0; + if (null !== slots) { + if (null === boundary) throw Error(formatProdErrorMessage(487)); + 4 !== boundary.status && + ((boundary.status = 4), + (boundary.errorDigest = errorDigest$jscomp$0), + boundary.parentFlushed && + request$jscomp$0.clientRenderedBoundaries.push(boundary)); + if ("object" === typeof slots) for (var index in slots) delete slots[index]; + } +} +function abortTask(task, request, error) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + if (null !== segment) { + if (6 === segment.status) return; + segment.status = 3; + } + var errorInfo = getThrownInfo(task.componentStack); + if (null === boundary) { + if (13 !== request.status && 14 !== request.status) { + boundary = task.replay; + if (null === boundary) { + null !== request.trackedPostpones && null !== segment + ? ((boundary = request.trackedPostpones), + logRecoverableError(request, error, errorInfo), + trackPostpone(request, boundary, task, segment), + finishedTask(request, null, task.row, segment)) + : (logRecoverableError(request, error, errorInfo), + fatalError(request, error)); + return; + } + boundary.pendingTasks--; + 0 === boundary.pendingTasks && + 0 < boundary.nodes.length && + ((segment = logRecoverableError(request, error, errorInfo)), + abortRemainingReplayNodes( + request, + null, + boundary.nodes, + boundary.slots, + error, + segment + )); + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } + } else { + var trackedPostpones$64 = request.trackedPostpones; + if (4 !== boundary.status) { + if (null !== trackedPostpones$64 && null !== segment) + return ( + logRecoverableError(request, error, errorInfo), + trackPostpone(request, trackedPostpones$64, task, segment), + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }), + boundary.fallbackAbortableTasks.clear(), + finishedTask(request, boundary, task.row, segment) + ); + boundary.status = 4; + segment = logRecoverableError(request, error, errorInfo); + boundary.status = 4; + boundary.errorDigest = segment; + untrackBoundary(request, boundary); + boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary); + } + boundary.pendingTasks--; + segment = boundary.row; + null !== segment && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }); + boundary.fallbackAbortableTasks.clear(); + } + task = task.row; + null !== task && + 0 === --task.pendingTasks && + finishSuspenseListRow(request, task); + request.allPendingTasks--; + 0 === request.allPendingTasks && completeAll(request); +} +function safelyEmitEarlyPreloads(request, shellComplete) { + try { + var renderState = request.renderState, + onHeaders = renderState.onHeaders; + if (onHeaders) { + var headers = renderState.headers; + if (headers) { + renderState.headers = null; + var linkHeader = headers.preconnects; + headers.fontPreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.fontPreloads)); + headers.highImagePreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.highImagePreloads)); + if (!shellComplete) { + var queueIter = renderState.styles.values(), + queueStep = queueIter.next(); + b: for ( + ; + 0 < headers.remainingCapacity && !queueStep.done; + queueStep = queueIter.next() + ) + for ( + var sheetIter = queueStep.value.sheets.values(), + sheetStep = sheetIter.next(); + 0 < headers.remainingCapacity && !sheetStep.done; + sheetStep = sheetIter.next() + ) { + var sheet = sheetStep.value, + props = sheet.props, + key = props.href, + props$jscomp$0 = sheet.props, + header = getPreloadAsHeader(props$jscomp$0.href, "style", { + crossOrigin: props$jscomp$0.crossOrigin, + integrity: props$jscomp$0.integrity, + nonce: props$jscomp$0.nonce, + type: props$jscomp$0.type, + fetchPriority: props$jscomp$0.fetchPriority, + referrerPolicy: props$jscomp$0.referrerPolicy, + media: props$jscomp$0.media + }); + if (0 <= (headers.remainingCapacity -= header.length + 2)) + (renderState.resets.style[key] = PRELOAD_NO_CREDS), + linkHeader && (linkHeader += ", "), + (linkHeader += header), + (renderState.resets.style[key] = + "string" === typeof props.crossOrigin || + "string" === typeof props.integrity + ? [props.crossOrigin, props.integrity] + : PRELOAD_NO_CREDS); + else break b; + } + } + linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({}); + } + } + } catch (error) { + logRecoverableError(request, error, {}); + } +} +function completeShell(request) { + null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0); + null === request.trackedPostpones && preparePreamble(request); + request.onShellError = noop; + request = request.onShellReady; + request(); +} +function completeAll(request) { + safelyEmitEarlyPreloads( + request, + null === request.trackedPostpones + ? !0 + : null === request.completedRootSegment || + 5 !== request.completedRootSegment.status + ); + preparePreamble(request); + request = request.onAllReady; + request(); +} +function queueCompletedSegment(boundary, segment) { + if ( + 0 === segment.chunks.length && + 1 === segment.children.length && + null === segment.children[0].boundary && + -1 === segment.children[0].id + ) { + var childSegment = segment.children[0]; + childSegment.id = segment.id; + childSegment.parentFlushed = !0; + (1 !== childSegment.status && + 3 !== childSegment.status && + 4 !== childSegment.status) || + queueCompletedSegment(boundary, childSegment); + } else boundary.completedSegments.push(segment); +} +function finishedSegment(request, boundary, segment) { + if (null !== byteLengthOfChunk) { + segment = segment.chunks; + for (var segmentByteSize = 0, i = 0; i < segment.length; i++) + segmentByteSize += segment[i].byteLength; + null === boundary + ? (request.byteSize += segmentByteSize) + : (boundary.byteSize += segmentByteSize); + } +} +function finishedTask(request, boundary, row, segment) { + null !== row && + (0 === --row.pendingTasks + ? finishSuspenseListRow(request, row) + : row.together && tryToResolveTogetherRow(request, row)); + request.allPendingTasks--; + if (null === boundary) { + if (null !== segment && segment.parentFlushed) { + if (null !== request.completedRootSegment) + throw Error(formatProdErrorMessage(389)); + request.completedRootSegment = segment; + } + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } else if ((boundary.pendingTasks--, 4 !== boundary.status)) + if (0 === boundary.pendingTasks) + if ( + (0 === boundary.status && (boundary.status = 1), + null !== segment && + segment.parentFlushed && + (1 === segment.status || 3 === segment.status) && + queueCompletedSegment(boundary, segment), + boundary.parentFlushed && request.completedBoundaries.push(boundary), + 1 === boundary.status) + ) + (row = boundary.row), + null !== row && + hoistHoistables(row.hoistables, boundary.contentState), + isEligibleForOutlining(request, boundary) || + (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request), + boundary.fallbackAbortableTasks.clear(), + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row)), + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary.contentPreamble && + preparePreamble(request); + else { + if ( + 5 === boundary.status && + ((boundary = boundary.row), null !== boundary) + ) { + if (null !== request.trackedPostpones) { + row = request.trackedPostpones; + var postponedRow = boundary.next; + if ( + null !== postponedRow && + ((segment = postponedRow.boundaries), null !== segment) + ) + for ( + postponedRow.boundaries = null, postponedRow = 0; + postponedRow < segment.length; + postponedRow++ + ) { + var postponedBoundary = segment[postponedRow]; + trackPostponedBoundary(request, row, postponedBoundary); + finishedTask(request, postponedBoundary, null, null); + } + } + 0 === --boundary.pendingTasks && + finishSuspenseListRow(request, boundary); + } + } + else + null === segment || + !segment.parentFlushed || + (1 !== segment.status && 3 !== segment.status) || + (queueCompletedSegment(boundary, segment), + 1 === boundary.completedSegments.length && + boundary.parentFlushed && + request.partialBoundaries.push(boundary)), + (boundary = boundary.row), + null !== boundary && + boundary.together && + tryToResolveTogetherRow(request, boundary); + 0 === request.allPendingTasks && completeAll(request); +} +function performWork(request$jscomp$2) { + if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) { + var prevContext = currentActiveSnapshot, + prevDispatcher = ReactSharedInternals.H; + ReactSharedInternals.H = HooksDispatcher; + var prevAsyncDispatcher = ReactSharedInternals.A; + ReactSharedInternals.A = DefaultAsyncDispatcher; + var prevRequest = currentRequest; + currentRequest = request$jscomp$2; + var prevResumableState = currentResumableState; + currentResumableState = request$jscomp$2.resumableState; + try { + var pingedTasks = request$jscomp$2.pingedTasks, + i; + for (i = 0; i < pingedTasks.length; i++) { + var task = pingedTasks[i], + request = request$jscomp$2, + segment = task.blockedSegment; + if (null === segment) { + var request$jscomp$0 = request; + if (0 !== task.replay.pendingTasks) { + switchContext(task.context); + try { + "number" === typeof task.replay.slots + ? resumeNode( + request$jscomp$0, + task, + task.replay.slots, + task.node, + task.childIndex + ) + : retryNode(request$jscomp$0, task); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error(formatProdErrorMessage(488)); + task.replay.pendingTasks--; + task.abortSet.delete(task); + finishedTask( + request$jscomp$0, + task.blockedBoundary, + task.row, + null + ); + } catch (thrownValue) { + resetHooksState(); + var x = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue; + if ( + "object" === typeof x && + null !== x && + "function" === typeof x.then + ) { + var ping = task.ping; + x.then(ping, ping); + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + } else { + task.replay.pendingTasks--; + task.abortSet.delete(task); + var errorInfo = getThrownInfo(task.componentStack); + request = void 0; + var request$jscomp$1 = request$jscomp$0, + boundary = task.blockedBoundary, + error$jscomp$0 = + 12 === request$jscomp$0.status + ? request$jscomp$0.fatalError + : x, + replayNodes = task.replay.nodes, + resumeSlots = task.replay.slots; + request = logRecoverableError( + request$jscomp$1, + error$jscomp$0, + errorInfo + ); + abortRemainingReplayNodes( + request$jscomp$1, + boundary, + replayNodes, + resumeSlots, + error$jscomp$0, + request + ); + request$jscomp$0.pendingRootTasks--; + 0 === request$jscomp$0.pendingRootTasks && + completeShell(request$jscomp$0); + request$jscomp$0.allPendingTasks--; + 0 === request$jscomp$0.allPendingTasks && + completeAll(request$jscomp$0); + } + } finally { + } + } + } else if ( + ((request$jscomp$0 = void 0), + (request$jscomp$1 = segment), + 0 === request$jscomp$1.status) + ) { + request$jscomp$1.status = 6; + switchContext(task.context); + var childrenLength = request$jscomp$1.children.length, + chunkLength = request$jscomp$1.chunks.length; + try { + retryNode(request, task), + request$jscomp$1.lastPushedText && + request$jscomp$1.textEmbedded && + request$jscomp$1.chunks.push(textSeparator), + task.abortSet.delete(task), + (request$jscomp$1.status = 1), + finishedSegment(request, task.blockedBoundary, request$jscomp$1), + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } catch (thrownValue) { + resetHooksState(); + request$jscomp$1.children.length = childrenLength; + request$jscomp$1.chunks.length = chunkLength; + var x$jscomp$0 = + thrownValue === SuspenseException + ? getSuspendedThenable() + : 12 === request.status + ? request.fatalError + : thrownValue; + if (12 === request.status && null !== request.trackedPostpones) { + var trackedPostpones = request.trackedPostpones, + thrownInfo = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + logRecoverableError(request, x$jscomp$0, thrownInfo); + trackPostpone(request, trackedPostpones, task, request$jscomp$1); + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } else if ( + "object" === typeof x$jscomp$0 && + null !== x$jscomp$0 && + "function" === typeof x$jscomp$0.then + ) { + request$jscomp$1.status = 0; + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + var ping$jscomp$0 = task.ping; + x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0); + } else { + var errorInfo$jscomp$0 = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + request$jscomp$1.status = 4; + var boundary$jscomp$0 = task.blockedBoundary, + row = task.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.allPendingTasks--; + request$jscomp$0 = logRecoverableError( + request, + x$jscomp$0, + errorInfo$jscomp$0 + ); + if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0); + else if ( + (boundary$jscomp$0.pendingTasks--, + 4 !== boundary$jscomp$0.status) + ) { + boundary$jscomp$0.status = 4; + boundary$jscomp$0.errorDigest = request$jscomp$0; + untrackBoundary(request, boundary$jscomp$0); + var boundaryRow = boundary$jscomp$0.row; + null !== boundaryRow && + 0 === --boundaryRow.pendingTasks && + finishSuspenseListRow(request, boundaryRow); + boundary$jscomp$0.parentFlushed && + request.clientRenderedBoundaries.push(boundary$jscomp$0); + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary$jscomp$0.contentPreamble && + preparePreamble(request); + } + 0 === request.allPendingTasks && completeAll(request); + } + } finally { + } + } + } + pingedTasks.splice(0, i); + null !== request$jscomp$2.destination && + flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination); + } catch (error) { + logRecoverableError(request$jscomp$2, error, {}), + fatalError(request$jscomp$2, error); + } finally { + (currentResumableState = prevResumableState), + (ReactSharedInternals.H = prevDispatcher), + (ReactSharedInternals.A = prevAsyncDispatcher), + prevDispatcher === HooksDispatcher && switchContext(prevContext), + (currentRequest = prevRequest); + } + } +} +function preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments +) { + segment.preambleChildren.length && + collectedPreambleSegments.push(segment.preambleChildren); + for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++) + pendingPreambles = + preparePreambleFromSegment( + request, + segment.children[i], + collectedPreambleSegments + ) || pendingPreambles; + return pendingPreambles; +} +function preparePreambleFromSegment( + request, + segment, + collectedPreambleSegments +) { + var boundary = segment.boundary; + if (null === boundary) + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + var preamble = boundary.contentPreamble, + fallbackPreamble = boundary.fallbackPreamble; + if (null === preamble || null === fallbackPreamble) return !1; + switch (boundary.status) { + case 1: + hoistPreambleState(request.renderState, preamble); + request.byteSize += boundary.byteSize; + segment = boundary.completedSegments[0]; + if (!segment) throw Error(formatProdErrorMessage(391)); + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + case 5: + if (null !== request.trackedPostpones) return !0; + case 4: + if (1 === segment.status) + return ( + hoistPreambleState(request.renderState, fallbackPreamble), + preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ) + ); + default: + return !0; + } +} +function preparePreamble(request) { + if ( + request.completedRootSegment && + null === request.completedPreambleSegments + ) { + var collectedPreambleSegments = [], + originalRequestByteSize = request.byteSize, + hasPendingPreambles = preparePreambleFromSegment( + request, + request.completedRootSegment, + collectedPreambleSegments + ), + preamble = request.renderState.preamble; + !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks) + ? (request.completedPreambleSegments = collectedPreambleSegments) + : (request.byteSize = originalRequestByteSize); + } +} +function flushSubtree(request, destination, segment, hoistableState) { + segment.parentFlushed = !0; + switch (segment.status) { + case 0: + segment.id = request.nextSegmentId++; + case 5: + return ( + (hoistableState = segment.id), + (segment.lastPushedText = !1), + (segment.textEmbedded = !1), + (request = request.renderState), + writeChunk(destination, placeholder1), + writeChunk(destination, request.placeholderPrefix), + (request = stringToChunk(hoistableState.toString(16))), + writeChunk(destination, request), + writeChunkAndReturn(destination, placeholder2) + ); + case 1: + segment.status = 2; + var r = !0, + chunks = segment.chunks, + chunkIdx = 0; + segment = segment.children; + for (var childIdx = 0; childIdx < segment.length; childIdx++) { + for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++) + writeChunk(destination, chunks[chunkIdx]); + r = flushSegment(request, destination, r, hoistableState); + } + for (; chunkIdx < chunks.length - 1; chunkIdx++) + writeChunk(destination, chunks[chunkIdx]); + chunkIdx < chunks.length && + (r = writeChunkAndReturn(destination, chunks[chunkIdx])); + return r; + case 3: + return !0; + default: + throw Error(formatProdErrorMessage(390)); + } +} +var flushedByteSize = 0; +function flushSegment(request, destination, segment, hoistableState) { + var boundary = segment.boundary; + if (null === boundary) + return flushSubtree(request, destination, segment, hoistableState); + boundary.parentFlushed = !0; + if (4 === boundary.status) { + var row = boundary.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + boundary = boundary.errorDigest; + writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary); + writeChunk(destination, clientRenderedSuspenseBoundaryError1); + boundary && + (writeChunk(destination, clientRenderedSuspenseBoundaryError1A), + writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))), + writeChunk( + destination, + clientRenderedSuspenseBoundaryErrorAttrInterstitial + )); + writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2); + flushSubtree(request, destination, segment, hoistableState); + } else if (1 !== boundary.status) + 0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++), + 0 < boundary.completedSegments.length && + request.partialBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + hoistableState && hoistHoistables(hoistableState, boundary.fallbackState), + flushSubtree(request, destination, segment, hoistableState); + else if ( + !flushingPartialBoundaries && + isEligibleForOutlining(request, boundary) && + (flushedByteSize + boundary.byteSize > request.progressiveChunkSize || + hasSuspenseyContent(boundary.contentState)) + ) + (boundary.rootSegmentID = request.nextSegmentId++), + request.completedBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + flushSubtree(request, destination, segment, hoistableState); + else { + flushedByteSize += boundary.byteSize; + hoistableState && hoistHoistables(hoistableState, boundary.contentState); + segment = boundary.row; + null !== segment && + isEligibleForOutlining(request, boundary) && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + writeChunkAndReturn(destination, startCompletedSuspenseBoundary); + segment = boundary.completedSegments; + if (1 !== segment.length) throw Error(formatProdErrorMessage(391)); + flushSegment(request, destination, segment[0], hoistableState); + } + return writeChunkAndReturn(destination, endSuspenseBoundary); +} +function flushSegmentContainer(request, destination, segment, hoistableState) { + writeStartSegment( + destination, + request.renderState, + segment.parentFormatContext, + segment.id + ); + flushSegment(request, destination, segment, hoistableState); + return writeEndSegment(destination, segment.parentFormatContext); +} +function flushCompletedBoundary(request, destination, boundary) { + flushedByteSize = boundary.byteSize; + for ( + var completedSegments = boundary.completedSegments, i = 0; + i < completedSegments.length; + i++ + ) + flushPartiallyCompletedSegment( + request, + destination, + boundary, + completedSegments[i] + ); + completedSegments.length = 0; + completedSegments = boundary.row; + null !== completedSegments && + isEligibleForOutlining(request, boundary) && + 0 === --completedSegments.pendingTasks && + finishSuspenseListRow(request, completedSegments); + writeHoistablesForBoundary( + destination, + boundary.contentState, + request.renderState + ); + completedSegments = request.resumableState; + request = request.renderState; + i = boundary.rootSegmentID; + boundary = boundary.contentState; + var requiresStyleInsertion = request.stylesToHoist; + request.stylesToHoist = !1; + writeChunk(destination, request.startInlineScript); + writeChunk(destination, endOfStartTag); + requiresStyleInsertion + ? (0 === (completedSegments.instructions & 4) && + ((completedSegments.instructions |= 4), + writeChunk(destination, clientRenderScriptFunctionOnly)), + 0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + writeChunk(destination, completeBoundaryScriptFunctionOnly)), + 0 === (completedSegments.instructions & 8) + ? ((completedSegments.instructions |= 8), + writeChunk(destination, completeBoundaryWithStylesScript1FullPartial)) + : writeChunk(destination, completeBoundaryWithStylesScript1Partial)) + : (0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + writeChunk(destination, completeBoundaryScriptFunctionOnly)), + writeChunk(destination, completeBoundaryScript1Partial)); + completedSegments = stringToChunk(i.toString(16)); + writeChunk(destination, request.boundaryPrefix); + writeChunk(destination, completedSegments); + writeChunk(destination, completeBoundaryScript2); + writeChunk(destination, request.segmentPrefix); + writeChunk(destination, completedSegments); + requiresStyleInsertion + ? (writeChunk(destination, completeBoundaryScript3a), + writeStyleResourceDependenciesInJS(destination, boundary)) + : writeChunk(destination, completeBoundaryScript3b); + boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd); + return writeBootstrap(destination, request) && boundary; +} +function flushPartiallyCompletedSegment( + request, + destination, + boundary, + segment +) { + if (2 === segment.status) return !0; + var hoistableState = boundary.contentState, + segmentID = segment.id; + if (-1 === segmentID) { + if (-1 === (segment.id = boundary.rootSegmentID)) + throw Error(formatProdErrorMessage(392)); + return flushSegmentContainer(request, destination, segment, hoistableState); + } + if (segmentID === boundary.rootSegmentID) + return flushSegmentContainer(request, destination, segment, hoistableState); + flushSegmentContainer(request, destination, segment, hoistableState); + boundary = request.resumableState; + request = request.renderState; + writeChunk(destination, request.startInlineScript); + writeChunk(destination, endOfStartTag); + 0 === (boundary.instructions & 1) + ? ((boundary.instructions |= 1), + writeChunk(destination, completeSegmentScript1Full)) + : writeChunk(destination, completeSegmentScript1Partial); + writeChunk(destination, request.segmentPrefix); + segmentID = stringToChunk(segmentID.toString(16)); + writeChunk(destination, segmentID); + writeChunk(destination, completeSegmentScript2); + writeChunk(destination, request.placeholderPrefix); + writeChunk(destination, segmentID); + destination = writeChunkAndReturn(destination, completeSegmentScriptEnd); + return destination; +} +var flushingPartialBoundaries = !1; +function flushCompletedQueues(request, destination) { + currentView = new Uint8Array(2048); + writtenBytes = 0; + try { + if (!(0 < request.pendingRootTasks)) { + var i, + completedRootSegment = request.completedRootSegment; + if (null !== completedRootSegment) { + if (5 === completedRootSegment.status) return; + var completedPreambleSegments = request.completedPreambleSegments; + if (null === completedPreambleSegments) return; + flushedByteSize = request.byteSize; + var resumableState = request.resumableState, + renderState = request.renderState, + preamble = renderState.preamble, + htmlChunks = preamble.htmlChunks, + headChunks = preamble.headChunks, + i$jscomp$0; + if (htmlChunks) { + for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++) + writeChunk(destination, htmlChunks[i$jscomp$0]); + if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + writeChunk(destination, headChunks[i$jscomp$0]); + else + writeChunk(destination, startChunkForTag("head")), + writeChunk(destination, endOfStartTag); + } else if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + writeChunk(destination, headChunks[i$jscomp$0]); + var charsetChunks = renderState.charsetChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++) + writeChunk(destination, charsetChunks[i$jscomp$0]); + charsetChunks.length = 0; + renderState.preconnects.forEach(flushResource, destination); + renderState.preconnects.clear(); + var viewportChunks = renderState.viewportChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++) + writeChunk(destination, viewportChunks[i$jscomp$0]); + viewportChunks.length = 0; + renderState.fontPreloads.forEach(flushResource, destination); + renderState.fontPreloads.clear(); + renderState.highImagePreloads.forEach(flushResource, destination); + renderState.highImagePreloads.clear(); + currentlyFlushingRenderState = renderState; + renderState.styles.forEach(flushStylesInPreamble, destination); + currentlyFlushingRenderState = null; + var importMapChunks = renderState.importMapChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++) + writeChunk(destination, importMapChunks[i$jscomp$0]); + importMapChunks.length = 0; + renderState.bootstrapScripts.forEach(flushResource, destination); + renderState.scripts.forEach(flushResource, destination); + renderState.scripts.clear(); + renderState.bulkPreloads.forEach(flushResource, destination); + renderState.bulkPreloads.clear(); + htmlChunks || headChunks || (resumableState.instructions |= 32); + var hoistableChunks = renderState.hoistableChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++) + writeChunk(destination, hoistableChunks[i$jscomp$0]); + for ( + resumableState = hoistableChunks.length = 0; + resumableState < completedPreambleSegments.length; + resumableState++ + ) { + var segments = completedPreambleSegments[resumableState]; + for (renderState = 0; renderState < segments.length; renderState++) + flushSegment(request, destination, segments[renderState], null); + } + var preamble$jscomp$0 = request.renderState.preamble, + headChunks$jscomp$0 = preamble$jscomp$0.headChunks; + (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) && + writeChunk(destination, endChunkForTag("head")); + var bodyChunks = preamble$jscomp$0.bodyChunks; + if (bodyChunks) + for ( + completedPreambleSegments = 0; + completedPreambleSegments < bodyChunks.length; + completedPreambleSegments++ + ) + writeChunk(destination, bodyChunks[completedPreambleSegments]); + flushSegment(request, destination, completedRootSegment, null); + request.completedRootSegment = null; + var renderState$jscomp$0 = request.renderState; + if ( + 0 !== request.allPendingTasks || + 0 !== request.clientRenderedBoundaries.length || + 0 !== request.completedBoundaries.length || + (null !== request.trackedPostpones && + (0 !== request.trackedPostpones.rootNodes.length || + null !== request.trackedPostpones.rootSlots)) + ) { + var resumableState$jscomp$0 = request.resumableState; + if (0 === (resumableState$jscomp$0.instructions & 64)) { + resumableState$jscomp$0.instructions |= 64; + writeChunk(destination, renderState$jscomp$0.startInlineScript); + if (0 === (resumableState$jscomp$0.instructions & 32)) { + resumableState$jscomp$0.instructions |= 32; + var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_"; + writeChunk(destination, completedShellIdAttributeStart); + writeChunk( + destination, + stringToChunk(escapeTextForBrowser(shellId)) + ); + writeChunk(destination, attributeEnd); + } + writeChunk(destination, endOfStartTag); + writeChunk(destination, shellTimeRuntimeScript); + writeChunkAndReturn(destination, endInlineScript); + } + } + writeBootstrap(destination, renderState$jscomp$0); + } + var renderState$jscomp$1 = request.renderState; + completedRootSegment = 0; + var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks; + for ( + completedRootSegment = 0; + completedRootSegment < viewportChunks$jscomp$0.length; + completedRootSegment++ + ) + writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]); + viewportChunks$jscomp$0.length = 0; + renderState$jscomp$1.preconnects.forEach(flushResource, destination); + renderState$jscomp$1.preconnects.clear(); + renderState$jscomp$1.fontPreloads.forEach(flushResource, destination); + renderState$jscomp$1.fontPreloads.clear(); + renderState$jscomp$1.highImagePreloads.forEach( + flushResource, + destination + ); + renderState$jscomp$1.highImagePreloads.clear(); + renderState$jscomp$1.styles.forEach(preloadLateStyles, destination); + renderState$jscomp$1.scripts.forEach(flushResource, destination); + renderState$jscomp$1.scripts.clear(); + renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination); + renderState$jscomp$1.bulkPreloads.clear(); + var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks; + for ( + completedRootSegment = 0; + completedRootSegment < hoistableChunks$jscomp$0.length; + completedRootSegment++ + ) + writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]); + hoistableChunks$jscomp$0.length = 0; + var clientRenderedBoundaries = request.clientRenderedBoundaries; + for (i = 0; i < clientRenderedBoundaries.length; i++) { + var boundary = clientRenderedBoundaries[i]; + renderState$jscomp$1 = destination; + var resumableState$jscomp$1 = request.resumableState, + renderState$jscomp$2 = request.renderState, + id = boundary.rootSegmentID, + errorDigest = boundary.errorDigest; + writeChunk( + renderState$jscomp$1, + renderState$jscomp$2.startInlineScript + ); + writeChunk(renderState$jscomp$1, endOfStartTag); + 0 === (resumableState$jscomp$1.instructions & 4) + ? ((resumableState$jscomp$1.instructions |= 4), + writeChunk(renderState$jscomp$1, clientRenderScript1Full)) + : writeChunk(renderState$jscomp$1, clientRenderScript1Partial); + writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix); + writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16))); + writeChunk(renderState$jscomp$1, clientRenderScript1A); + errorDigest && + (writeChunk( + renderState$jscomp$1, + clientRenderErrorScriptArgInterstitial + ), + writeChunk( + renderState$jscomp$1, + stringToChunk( + escapeJSStringsForInstructionScripts(errorDigest || "") + ) + )); + var JSCompiler_inline_result = writeChunkAndReturn( + renderState$jscomp$1, + clientRenderScriptEnd + ); + if (!JSCompiler_inline_result) { + request.destination = null; + i++; + clientRenderedBoundaries.splice(0, i); + return; + } + } + clientRenderedBoundaries.splice(0, i); + var completedBoundaries = request.completedBoundaries; + for (i = 0; i < completedBoundaries.length; i++) + if ( + !flushCompletedBoundary(request, destination, completedBoundaries[i]) + ) { + request.destination = null; + i++; + completedBoundaries.splice(0, i); + return; + } + completedBoundaries.splice(0, i); + completeWriting(destination); + currentView = new Uint8Array(2048); + writtenBytes = 0; + flushingPartialBoundaries = !0; + var partialBoundaries = request.partialBoundaries; + for (i = 0; i < partialBoundaries.length; i++) { + var boundary$70 = partialBoundaries[i]; + a: { + clientRenderedBoundaries = request; + boundary = destination; + flushedByteSize = boundary$70.byteSize; + var completedSegments = boundary$70.completedSegments; + for ( + JSCompiler_inline_result = 0; + JSCompiler_inline_result < completedSegments.length; + JSCompiler_inline_result++ + ) + if ( + !flushPartiallyCompletedSegment( + clientRenderedBoundaries, + boundary, + boundary$70, + completedSegments[JSCompiler_inline_result] + ) + ) { + JSCompiler_inline_result++; + completedSegments.splice(0, JSCompiler_inline_result); + var JSCompiler_inline_result$jscomp$0 = !1; + break a; + } + completedSegments.splice(0, JSCompiler_inline_result); + var row = boundary$70.row; + null !== row && + row.together && + 1 === boundary$70.pendingTasks && + (1 === row.pendingTasks + ? unblockSuspenseListRow( + clientRenderedBoundaries, + row, + row.hoistables + ) + : row.pendingTasks--); + JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary( + boundary, + boundary$70.contentState, + clientRenderedBoundaries.renderState + ); + } + if (!JSCompiler_inline_result$jscomp$0) { + request.destination = null; + i++; + partialBoundaries.splice(0, i); + return; + } + } + partialBoundaries.splice(0, i); + flushingPartialBoundaries = !1; + var largeBoundaries = request.completedBoundaries; + for (i = 0; i < largeBoundaries.length; i++) + if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) { + request.destination = null; + i++; + largeBoundaries.splice(0, i); + return; + } + largeBoundaries.splice(0, i); + } + } finally { + (flushingPartialBoundaries = !1), + 0 === request.allPendingTasks && + 0 === request.clientRenderedBoundaries.length && + 0 === request.completedBoundaries.length + ? ((request.flushScheduled = !1), + (i = request.resumableState), + i.hasBody && writeChunk(destination, endChunkForTag("body")), + i.hasHtml && writeChunk(destination, endChunkForTag("html")), + completeWriting(destination), + (request.status = 14), + destination.close(), + (request.destination = null)) + : completeWriting(destination); + } +} +function startWork(request) { + request.flushScheduled = null !== request.destination; + scheduleMicrotask(function () { + return performWork(request); + }); + scheduleWork(function () { + 10 === request.status && (request.status = 11); + null === request.trackedPostpones && + safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks); + }); +} +function enqueueFlush(request) { + !1 === request.flushScheduled && + 0 === request.pingedTasks.length && + null !== request.destination && + ((request.flushScheduled = !0), + scheduleWork(function () { + var destination = request.destination; + destination + ? flushCompletedQueues(request, destination) + : (request.flushScheduled = !1); + })); +} +function startFlowing(request, destination) { + if (13 === request.status) + (request.status = 14), closeWithError(destination, request.fatalError); + else if (14 !== request.status && null === request.destination) { + request.destination = destination; + try { + flushCompletedQueues(request, destination); + } catch (error) { + logRecoverableError(request, error, {}), fatalError(request, error); + } + } +} +function abort(request, reason) { + if (11 === request.status || 10 === request.status) request.status = 12; + try { + var abortableTasks = request.abortableTasks; + if (0 < abortableTasks.size) { + var error = + void 0 === reason + ? Error(formatProdErrorMessage(432)) + : "object" === typeof reason && + null !== reason && + "function" === typeof reason.then + ? Error(formatProdErrorMessage(530)) + : reason; + request.fatalError = error; + abortableTasks.forEach(function (task) { + return abortTask(task, request, error); + }); + abortableTasks.clear(); + } + null !== request.destination && + flushCompletedQueues(request, request.destination); + } catch (error$72) { + logRecoverableError(request, error$72, {}), fatalError(request, error$72); + } +} +function addToReplayParent(node, parentKeyPath, trackedPostpones) { + if (null === parentKeyPath) trackedPostpones.rootNodes.push(node); + else { + var workingMap = trackedPostpones.workingMap, + parentNode = workingMap.get(parentKeyPath); + void 0 === parentNode && + ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]), + workingMap.set(parentKeyPath, parentNode), + addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones)); + parentNode[2].push(node); + } +} +function getPostponedState(request) { + var trackedPostpones = request.trackedPostpones; + if ( + null === trackedPostpones || + (0 === trackedPostpones.rootNodes.length && + null === trackedPostpones.rootSlots) + ) + return (request.trackedPostpones = null); + if ( + null === request.completedRootSegment || + (5 !== request.completedRootSegment.status && + null !== request.completedPreambleSegments) + ) { + var nextSegmentId = request.nextSegmentId; + var replaySlots = trackedPostpones.rootSlots; + var resumableState = request.resumableState; + resumableState.bootstrapScriptContent = void 0; + resumableState.bootstrapScripts = void 0; + resumableState.bootstrapModules = void 0; + } else { + nextSegmentId = 0; + replaySlots = -1; + resumableState = request.resumableState; + var renderState = request.renderState; + resumableState.nextFormID = 0; + resumableState.hasBody = !1; + resumableState.hasHtml = !1; + resumableState.unknownResources = { font: renderState.resets.font }; + resumableState.dnsResources = renderState.resets.dns; + resumableState.connectResources = renderState.resets.connect; + resumableState.imageResources = renderState.resets.image; + resumableState.styleResources = renderState.resets.style; + resumableState.scriptResources = {}; + resumableState.moduleUnknownResources = {}; + resumableState.moduleScriptResources = {}; + resumableState.instructions = 0; + } + return { + nextSegmentId: nextSegmentId, + rootFormatContext: request.rootFormatContext, + progressiveChunkSize: request.progressiveChunkSize, + resumableState: request.resumableState, + replayNodes: trackedPostpones.rootNodes, + replaySlots: replaySlots + }; +} +function ensureCorrectIsomorphicReactVersion() { + var isomorphicReactPackageVersion = React.version; + if ("19.2.4" !== isomorphicReactPackageVersion) + throw Error( + formatProdErrorMessage( + 527, + isomorphicReactPackageVersion, + "19.2.4" + ) + ); +} +ensureCorrectIsomorphicReactVersion(); +ensureCorrectIsomorphicReactVersion(); +exports.prerender = function (children, options) { + return new Promise(function (resolve, reject) { + var onHeaders = options ? options.onHeaders : void 0, + onHeadersImpl; + onHeaders && + (onHeadersImpl = function (headersDescriptor) { + onHeaders(new Headers(headersDescriptor)); + }); + var resources = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createPrerenderRequest( + children, + resources, + createRenderState( + resources, + void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + onHeadersImpl, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream = { postponed: getPostponedState(request), prelude: stream }; + resolve(stream); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.renderToReadableStream = function (children, options) { + return new Promise(function (resolve, reject) { + var onFatalError, + onAllReady, + allReady = new Promise(function (res, rej) { + onAllReady = res; + onFatalError = rej; + }), + onHeaders = options ? options.onHeaders : void 0, + onHeadersImpl; + onHeaders && + (onHeadersImpl = function (headersDescriptor) { + onHeaders(new Headers(headersDescriptor)); + }); + var resumableState = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createRequest( + children, + resumableState, + createRenderState( + resumableState, + options ? options.nonce : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + onHeadersImpl, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + onAllReady, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream.allReady = allReady; + resolve(stream); + }, + function (error) { + allReady.catch(function () {}); + reject(error); + }, + onFatalError, + options ? options.onPostpone : void 0, + options ? options.formState : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resume = function (children, postponedState, options) { + return new Promise(function (resolve, reject) { + var onFatalError, + onAllReady, + allReady = new Promise(function (res, rej) { + onAllReady = res; + onFatalError = rej; + }), + request = resumeRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + options ? options.nonce : void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + onAllReady, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream.allReady = allReady; + resolve(stream); + }, + function (error) { + allReady.catch(function () {}); + reject(error); + }, + onFatalError, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resumeAndPrerender = function (children, postponedState, options) { + return new Promise(function (resolve, reject) { + var request = resumeAndPrerenderRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream = { postponed: getPostponedState(request), prelude: stream }; + resolve(stream); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react-dom/cjs/react-dom-server.edge.production.js b/cli/app/node_modules/react-dom/cjs/react-dom-server.edge.production.js new file mode 100644 index 00000000000..9f755e83505 --- /dev/null +++ b/cli/app/node_modules/react-dom/cjs/react-dom-server.edge.production.js @@ -0,0 +1,7512 @@ +/** + * @license React + * react-dom-server.edge.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/* + + + JS Implementation of MurmurHash3 (r136) (as of May 20, 2011) + + Copyright (c) 2011 Gary Court + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + SOFTWARE. +*/ +"use strict"; +var React = require("react"), + ReactDOM = require("react-dom"), + REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_SCOPE_TYPE = Symbol.for("react.scope"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"), + REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; +} +var isArrayImpl = Array.isArray; +function murmurhash3_32_gc(key, seed) { + var remainder = key.length & 3; + var bytes = key.length - remainder; + var h1 = seed; + for (seed = 0; seed < bytes; ) { + var k1 = + (key.charCodeAt(seed) & 255) | + ((key.charCodeAt(++seed) & 255) << 8) | + ((key.charCodeAt(++seed) & 255) << 16) | + ((key.charCodeAt(++seed) & 255) << 24); + ++seed; + k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + k1 = (k1 << 15) | (k1 >>> 17); + k1 = + (461845907 * (k1 & 65535) + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= k1; + h1 = (h1 << 13) | (h1 >>> 19); + h1 = (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295; + h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16); + } + k1 = 0; + switch (remainder) { + case 3: + k1 ^= (key.charCodeAt(seed + 2) & 255) << 16; + case 2: + k1 ^= (key.charCodeAt(seed + 1) & 255) << 8; + case 1: + (k1 ^= key.charCodeAt(seed) & 255), + (k1 = + (3432918353 * (k1 & 65535) + + (((3432918353 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295), + (k1 = (k1 << 15) | (k1 >>> 17)), + (h1 ^= + (461845907 * (k1 & 65535) + + (((461845907 * (k1 >>> 16)) & 65535) << 16)) & + 4294967295); + } + h1 ^= key.length; + h1 ^= h1 >>> 16; + h1 = + (2246822507 * (h1 & 65535) + (((2246822507 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + h1 ^= h1 >>> 13; + h1 = + (3266489909 * (h1 & 65535) + (((3266489909 * (h1 >>> 16)) & 65535) << 16)) & + 4294967295; + return (h1 ^ (h1 >>> 16)) >>> 0; +} +function handleErrorInNextTick(error) { + setTimeout(function () { + throw error; + }); +} +var LocalPromise = Promise, + scheduleMicrotask = + "function" === typeof queueMicrotask + ? queueMicrotask + : function (callback) { + LocalPromise.resolve(null) + .then(callback) + .catch(handleErrorInNextTick); + }, + currentView = null, + writtenBytes = 0; +function writeChunk(destination, chunk) { + if (0 !== chunk.byteLength) + if (2048 < chunk.byteLength) + 0 < writtenBytes && + (destination.enqueue( + new Uint8Array(currentView.buffer, 0, writtenBytes) + ), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)), + destination.enqueue(chunk); + else { + var allowableBytes = currentView.length - writtenBytes; + allowableBytes < chunk.byteLength && + (0 === allowableBytes + ? destination.enqueue(currentView) + : (currentView.set(chunk.subarray(0, allowableBytes), writtenBytes), + destination.enqueue(currentView), + (chunk = chunk.subarray(allowableBytes))), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)); + currentView.set(chunk, writtenBytes); + writtenBytes += chunk.byteLength; + } +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); + return !0; +} +function completeWriting(destination) { + currentView && + 0 < writtenBytes && + (destination.enqueue(new Uint8Array(currentView.buffer, 0, writtenBytes)), + (currentView = null), + (writtenBytes = 0)); +} +var textEncoder = new TextEncoder(); +function stringToChunk(content) { + return textEncoder.encode(content); +} +function stringToPrecomputedChunk(content) { + return textEncoder.encode(content); +} +function byteLengthOfChunk(chunk) { + return chunk.byteLength; +} +function closeWithError(destination, error) { + "function" === typeof destination.error + ? destination.error(error) + : destination.close(); +} +var assign = Object.assign, + hasOwnProperty = Object.prototype.hasOwnProperty, + VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), + illegalAttributeNameCache = {}, + validatedAttributeNameCache = {}; +function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return !0; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return (validatedAttributeNameCache[attributeName] = !0); + illegalAttributeNameCache[attributeName] = !0; + return !1; +} +var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ), + aliases = new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), + matchHtmlRegExp = /["'&<>]/; +function escapeTextForBrowser(text) { + if ( + "boolean" === typeof text || + "number" === typeof text || + "bigint" === typeof text + ) + return "" + text; + text = "" + text; + var match = matchHtmlRegExp.exec(text); + if (match) { + var html = "", + index, + lastIndex = 0; + for (index = match.index; index < text.length; index++) { + switch (text.charCodeAt(index)) { + case 34: + match = """; + break; + case 38: + match = "&"; + break; + case 39: + match = "'"; + break; + case 60: + match = "<"; + break; + case 62: + match = ">"; + break; + default: + continue; + } + lastIndex !== index && (html += text.slice(lastIndex, index)); + lastIndex = index + 1; + html += match; + } + text = lastIndex !== index ? html + text.slice(lastIndex, index) : html; + } + return text; +} +var uppercasePattern = /([A-Z])/g, + msPattern = /^ms-/, + isJavaScriptProtocol = + /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; +function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) + ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" + : url; +} +var ReactSharedInternals = + React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + ReactDOMSharedInternals = + ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + sharedNotPendingObject = { + pending: !1, + data: null, + method: null, + action: null + }, + previousDispatcher = ReactDOMSharedInternals.d; +ReactDOMSharedInternals.d = { + f: previousDispatcher.f, + r: previousDispatcher.r, + D: prefetchDNS, + C: preconnect, + L: preload, + m: preloadModule, + X: preinitScript, + S: preinitStyle, + M: preinitModuleScript +}; +var PRELOAD_NO_CREDS = [], + currentlyFlushingRenderState = null; +stringToPrecomputedChunk('"></template>'); +var startInlineScript = stringToPrecomputedChunk("<script"), + endInlineScript = stringToPrecomputedChunk("\x3c/script>"), + startScriptSrc = stringToPrecomputedChunk('<script src="'), + startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'), + scriptNonce = stringToPrecomputedChunk(' nonce="'), + scriptIntegirty = stringToPrecomputedChunk(' integrity="'), + scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'), + endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'), + startInlineStyle = stringToPrecomputedChunk("<style"), + scriptRegex = /(<\/|<)(s)(cript)/gi; +function scriptReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix; +} +var importMapScriptStart = stringToPrecomputedChunk( + '<script type="importmap">' + ), + importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>"); +function createRenderState( + resumableState, + nonce, + externalRuntimeConfig, + importMap, + onHeaders, + maxHeadersLength +) { + externalRuntimeConfig = + "string" === typeof nonce ? nonce : nonce && nonce.script; + var inlineScriptWithNonce = + void 0 === externalRuntimeConfig + ? startInlineScript + : stringToPrecomputedChunk( + '<script nonce="' + + escapeTextForBrowser(externalRuntimeConfig) + + '"' + ), + nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style, + inlineStyleWithNonce = + void 0 === nonceStyle + ? startInlineStyle + : stringToPrecomputedChunk( + '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"' + ), + idPrefix = resumableState.idPrefix, + bootstrapChunks = [], + bootstrapScriptContent = resumableState.bootstrapScriptContent, + bootstrapScripts = resumableState.bootstrapScripts, + bootstrapModules = resumableState.bootstrapModules; + void 0 !== bootstrapScriptContent && + (bootstrapChunks.push(inlineScriptWithNonce), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + endOfStartTag, + stringToChunk( + ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer) + ), + endInlineScript + )); + bootstrapScriptContent = []; + void 0 !== importMap && + (bootstrapScriptContent.push(importMapScriptStart), + bootstrapScriptContent.push( + stringToChunk( + ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer) + ) + ), + bootstrapScriptContent.push(importMapScriptEnd)); + importMap = onHeaders + ? { + preconnects: "", + fontPreloads: "", + highImagePreloads: "", + remainingCapacity: + 2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3) + } + : null; + onHeaders = { + placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"), + segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"), + boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"), + startInlineScript: inlineScriptWithNonce, + startInlineStyle: inlineStyleWithNonce, + preamble: createPreambleState(), + externalRuntimeScript: null, + bootstrapChunks: bootstrapChunks, + importMapChunks: bootstrapScriptContent, + onHeaders: onHeaders, + headers: importMap, + resets: { + font: {}, + dns: {}, + connect: { default: {}, anonymous: {}, credentials: {} }, + image: {}, + style: {} + }, + charsetChunks: [], + viewportChunks: [], + hoistableChunks: [], + preconnects: new Set(), + fontPreloads: new Set(), + highImagePreloads: new Set(), + styles: new Map(), + bootstrapScripts: new Set(), + scripts: new Set(), + bulkPreloads: new Set(), + preloads: { + images: new Map(), + stylesheets: new Map(), + scripts: new Map(), + moduleScripts: new Map() + }, + nonce: { script: externalRuntimeConfig, style: nonceStyle }, + hoistableState: null, + stylesToHoist: !1 + }; + if (void 0 !== bootstrapScripts) + for (importMap = 0; importMap < bootstrapScripts.length; importMap++) + (idPrefix = bootstrapScripts[importMap]), + (nonceStyle = inlineScriptWithNonce = void 0), + (inlineStyleWithNonce = { + rel: "preload", + as: "script", + fetchPriority: "low", + nonce: nonce + }), + "string" === typeof idPrefix + ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix) + : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src), + (inlineStyleWithNonce.integrity = nonceStyle = + "string" === typeof idPrefix.integrity + ? idPrefix.integrity + : void 0), + (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce = + "string" === typeof idPrefix || null == idPrefix.crossOrigin + ? void 0 + : "use-credentials" === idPrefix.crossOrigin + ? "use-credentials" + : "")), + (idPrefix = resumableState), + (bootstrapScriptContent = maxHeadersLength), + (idPrefix.scriptResources[bootstrapScriptContent] = null), + (idPrefix.moduleScriptResources[bootstrapScriptContent] = null), + (idPrefix = []), + pushLinkImpl(idPrefix, inlineStyleWithNonce), + onHeaders.bootstrapScripts.add(idPrefix), + bootstrapChunks.push( + startScriptSrc, + stringToChunk(escapeTextForBrowser(maxHeadersLength)), + attributeEnd + ), + externalRuntimeConfig && + bootstrapChunks.push( + scriptNonce, + stringToChunk(escapeTextForBrowser(externalRuntimeConfig)), + attributeEnd + ), + "string" === typeof nonceStyle && + bootstrapChunks.push( + scriptIntegirty, + stringToChunk(escapeTextForBrowser(nonceStyle)), + attributeEnd + ), + "string" === typeof inlineScriptWithNonce && + bootstrapChunks.push( + scriptCrossOrigin, + stringToChunk(escapeTextForBrowser(inlineScriptWithNonce)), + attributeEnd + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(endAsyncScript); + if (void 0 !== bootstrapModules) + for (nonce = 0; nonce < bootstrapModules.length; nonce++) + (nonceStyle = bootstrapModules[nonce]), + (maxHeadersLength = importMap = void 0), + (inlineScriptWithNonce = { + rel: "modulepreload", + fetchPriority: "low", + nonce: externalRuntimeConfig + }), + "string" === typeof nonceStyle + ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle) + : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src), + (inlineScriptWithNonce.integrity = maxHeadersLength = + "string" === typeof nonceStyle.integrity + ? nonceStyle.integrity + : void 0), + (inlineScriptWithNonce.crossOrigin = importMap = + "string" === typeof nonceStyle || null == nonceStyle.crossOrigin + ? void 0 + : "use-credentials" === nonceStyle.crossOrigin + ? "use-credentials" + : "")), + (nonceStyle = resumableState), + (inlineStyleWithNonce = bootstrapScripts), + (nonceStyle.scriptResources[inlineStyleWithNonce] = null), + (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null), + (nonceStyle = []), + pushLinkImpl(nonceStyle, inlineScriptWithNonce), + onHeaders.bootstrapScripts.add(nonceStyle), + bootstrapChunks.push( + startModuleSrc, + stringToChunk(escapeTextForBrowser(bootstrapScripts)), + attributeEnd + ), + externalRuntimeConfig && + bootstrapChunks.push( + scriptNonce, + stringToChunk(escapeTextForBrowser(externalRuntimeConfig)), + attributeEnd + ), + "string" === typeof maxHeadersLength && + bootstrapChunks.push( + scriptIntegirty, + stringToChunk(escapeTextForBrowser(maxHeadersLength)), + attributeEnd + ), + "string" === typeof importMap && + bootstrapChunks.push( + scriptCrossOrigin, + stringToChunk(escapeTextForBrowser(importMap)), + attributeEnd + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(endAsyncScript); + return onHeaders; +} +function createResumableState( + identifierPrefix, + externalRuntimeConfig, + bootstrapScriptContent, + bootstrapScripts, + bootstrapModules +) { + return { + idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix, + nextFormID: 0, + streamingFormat: 0, + bootstrapScriptContent: bootstrapScriptContent, + bootstrapScripts: bootstrapScripts, + bootstrapModules: bootstrapModules, + instructions: 0, + hasBody: !1, + hasHtml: !1, + unknownResources: {}, + dnsResources: {}, + connectResources: { default: {}, anonymous: {}, credentials: {} }, + imageResources: {}, + styleResources: {}, + scriptResources: {}, + moduleUnknownResources: {}, + moduleScriptResources: {} + }; +} +function createPreambleState() { + return { htmlChunks: null, headChunks: null, bodyChunks: null }; +} +function createFormatContext( + insertionMode, + selectedValue, + tagScope, + viewTransition +) { + return { + insertionMode: insertionMode, + selectedValue: selectedValue, + tagScope: tagScope, + viewTransition: viewTransition + }; +} +function createRootFormatContext(namespaceURI) { + return createFormatContext( + "http://www.w3.org/2000/svg" === namespaceURI + ? 4 + : "http://www.w3.org/1998/Math/MathML" === namespaceURI + ? 5 + : 0, + null, + 0, + null + ); +} +function getChildFormatContext(parentContext, type, props) { + var subtreeScope = parentContext.tagScope & -25; + switch (type) { + case "noscript": + return createFormatContext(2, null, subtreeScope | 1, null); + case "select": + return createFormatContext( + 2, + null != props.value ? props.value : props.defaultValue, + subtreeScope, + null + ); + case "svg": + return createFormatContext(4, null, subtreeScope, null); + case "picture": + return createFormatContext(2, null, subtreeScope | 2, null); + case "math": + return createFormatContext(5, null, subtreeScope, null); + case "foreignObject": + return createFormatContext(2, null, subtreeScope, null); + case "table": + return createFormatContext(6, null, subtreeScope, null); + case "thead": + case "tbody": + case "tfoot": + return createFormatContext(7, null, subtreeScope, null); + case "colgroup": + return createFormatContext(9, null, subtreeScope, null); + case "tr": + return createFormatContext(8, null, subtreeScope, null); + case "head": + if (2 > parentContext.insertionMode) + return createFormatContext(3, null, subtreeScope, null); + break; + case "html": + if (0 === parentContext.insertionMode) + return createFormatContext(1, null, subtreeScope, null); + } + return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode + ? createFormatContext(2, null, subtreeScope, null) + : parentContext.tagScope !== subtreeScope + ? createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + null + ) + : parentContext; +} +function getSuspenseViewTransition(parentViewTransition) { + return null === parentViewTransition + ? null + : { + update: parentViewTransition.update, + enter: "none", + exit: "none", + share: parentViewTransition.update, + name: parentViewTransition.autoName, + autoName: parentViewTransition.autoName, + nameIdx: 0 + }; +} +function getSuspenseFallbackFormatContext(resumableState, parentContext) { + parentContext.tagScope & 32 && (resumableState.instructions |= 128); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + parentContext.tagScope | 12, + getSuspenseViewTransition(parentContext.viewTransition) + ); +} +function getSuspenseContentFormatContext(resumableState, parentContext) { + resumableState = getSuspenseViewTransition(parentContext.viewTransition); + var subtreeScope = parentContext.tagScope | 16; + null !== resumableState && + "none" !== resumableState.share && + (subtreeScope |= 64); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + resumableState + ); +} +var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e"); +function pushTextInstance(target, text, renderState, textEmbedded) { + if ("" === text) return textEmbedded; + textEmbedded && target.push(textSeparator); + target.push(stringToChunk(escapeTextForBrowser(text))); + return !0; +} +var styleNameCache = new Map(), + styleAttributeStart = stringToPrecomputedChunk(' style="'), + styleAssign = stringToPrecomputedChunk(":"), + styleSeparator = stringToPrecomputedChunk(";"); +function pushStyleAttribute(target, style) { + if ("object" !== typeof style) + throw Error( + "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX." + ); + var isFirst = !0, + styleName; + for (styleName in style) + if (hasOwnProperty.call(style, styleName)) { + var styleValue = style[styleName]; + if ( + null != styleValue && + "boolean" !== typeof styleValue && + "" !== styleValue + ) { + if (0 === styleName.indexOf("--")) { + var nameChunk = stringToChunk(escapeTextForBrowser(styleName)); + styleValue = stringToChunk( + escapeTextForBrowser(("" + styleValue).trim()) + ); + } else + (nameChunk = styleNameCache.get(styleName)), + void 0 === nameChunk && + ((nameChunk = stringToPrecomputedChunk( + escapeTextForBrowser( + styleName + .replace(uppercasePattern, "-$1") + .toLowerCase() + .replace(msPattern, "-ms-") + ) + )), + styleNameCache.set(styleName, nameChunk)), + (styleValue = + "number" === typeof styleValue + ? 0 === styleValue || unitlessNumbers.has(styleName) + ? stringToChunk("" + styleValue) + : stringToChunk(styleValue + "px") + : stringToChunk( + escapeTextForBrowser(("" + styleValue).trim()) + )); + isFirst + ? ((isFirst = !1), + target.push( + styleAttributeStart, + nameChunk, + styleAssign, + styleValue + )) + : target.push(styleSeparator, nameChunk, styleAssign, styleValue); + } + } + isFirst || target.push(attributeEnd); +} +var attributeSeparator = stringToPrecomputedChunk(" "), + attributeAssign = stringToPrecomputedChunk('="'), + attributeEnd = stringToPrecomputedChunk('"'), + attributeEmptyString = stringToPrecomputedChunk('=""'); +function pushBooleanAttribute(target, name, value) { + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(attributeSeparator, stringToChunk(name), attributeEmptyString); +} +function pushStringAttribute(target, name, value) { + "function" !== typeof value && + "symbol" !== typeof value && + "boolean" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); +} +var actionJavaScriptURL = stringToPrecomputedChunk( + escapeTextForBrowser( + "javascript:throw new Error('React form unexpectedly submitted.')" + ) + ), + startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"'); +function pushAdditionalFormField(value, key) { + this.push(startHiddenInputChunk); + validateAdditionalFormField(value); + pushStringAttribute(this, "name", key); + pushStringAttribute(this, "value", value); + this.push(endOfStartTagSelfClosing); +} +function validateAdditionalFormField(value) { + if ("string" !== typeof value) + throw Error( + "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration." + ); +} +function getCustomFormFields(resumableState, formAction) { + if ("function" === typeof formAction.$$FORM_ACTION) { + var id = resumableState.nextFormID++; + resumableState = resumableState.idPrefix + id; + try { + var customFields = formAction.$$FORM_ACTION(resumableState); + if (customFields) { + var formData = customFields.data; + null != formData && formData.forEach(validateAdditionalFormField); + } + return customFields; + } catch (x) { + if ("object" === typeof x && null !== x && "function" === typeof x.then) + throw x; + } + } + return null; +} +function pushFormActionAttribute( + target, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name +) { + var formData = null; + if ("function" === typeof formAction) { + var customFields = getCustomFormFields(resumableState, formAction); + null !== customFields + ? ((name = customFields.name), + (formAction = customFields.action || ""), + (formEncType = customFields.encType), + (formMethod = customFields.method), + (formTarget = customFields.target), + (formData = customFields.data)) + : (target.push( + attributeSeparator, + stringToChunk("formAction"), + attributeAssign, + actionJavaScriptURL, + attributeEnd + ), + (formTarget = formMethod = formEncType = formAction = name = null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != name && pushAttribute(target, "name", name); + null != formAction && pushAttribute(target, "formAction", formAction); + null != formEncType && pushAttribute(target, "formEncType", formEncType); + null != formMethod && pushAttribute(target, "formMethod", formMethod); + null != formTarget && pushAttribute(target, "formTarget", formTarget); + return formData; +} +function pushAttribute(target, name, value) { + switch (name) { + case "className": + pushStringAttribute(target, "class", value); + break; + case "tabIndex": + pushStringAttribute(target, "tabindex", value); + break; + case "dir": + case "role": + case "viewBox": + case "width": + case "height": + pushStringAttribute(target, name, value); + break; + case "style": + pushStyleAttribute(target, value); + break; + case "src": + case "href": + if ("" === value) break; + case "action": + case "formAction": + if ( + null == value || + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "defaultValue": + case "defaultChecked": + case "innerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "autoFocus": + case "multiple": + case "muted": + pushBooleanAttribute(target, name.toLowerCase(), value); + break; + case "xlinkHref": + if ( + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push( + attributeSeparator, + stringToChunk("xlink:href"), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "contentEditable": + case "spellCheck": + case "draggable": + case "value": + case "autoReverse": + case "externalResourcesRequired": + case "focusable": + case "preserveAlpha": + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "inert": + case "allowFullScreen": + case "async": + case "autoPlay": + case "controls": + case "default": + case "defer": + case "disabled": + case "disablePictureInPicture": + case "disableRemotePlayback": + case "formNoValidate": + case "hidden": + case "loop": + case "noModule": + case "noValidate": + case "open": + case "playsInline": + case "readOnly": + case "required": + case "reversed": + case "scoped": + case "seamless": + case "itemScope": + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeEmptyString + ); + break; + case "capture": + case "download": + !0 === value + ? target.push( + attributeSeparator, + stringToChunk(name), + attributeEmptyString + ) + : !1 !== value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "cols": + case "rows": + case "size": + case "span": + "function" !== typeof value && + "symbol" !== typeof value && + !isNaN(value) && + 1 <= value && + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "rowSpan": + case "start": + "function" === typeof value || + "symbol" === typeof value || + isNaN(value) || + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + break; + case "xlinkActuate": + pushStringAttribute(target, "xlink:actuate", value); + break; + case "xlinkArcrole": + pushStringAttribute(target, "xlink:arcrole", value); + break; + case "xlinkRole": + pushStringAttribute(target, "xlink:role", value); + break; + case "xlinkShow": + pushStringAttribute(target, "xlink:show", value); + break; + case "xlinkTitle": + pushStringAttribute(target, "xlink:title", value); + break; + case "xlinkType": + pushStringAttribute(target, "xlink:type", value); + break; + case "xmlBase": + pushStringAttribute(target, "xml:base", value); + break; + case "xmlLang": + pushStringAttribute(target, "xml:lang", value); + break; + case "xmlSpace": + pushStringAttribute(target, "xml:space", value); + break; + default: + if ( + !(2 < name.length) || + ("o" !== name[0] && "O" !== name[0]) || + ("n" !== name[1] && "N" !== name[1]) + ) + if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) { + switch (typeof value) { + case "function": + case "symbol": + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) return; + } + target.push( + attributeSeparator, + stringToChunk(name), + attributeAssign, + stringToChunk(escapeTextForBrowser(value)), + attributeEnd + ); + } + } +} +var endOfStartTag = stringToPrecomputedChunk(">"), + endOfStartTagSelfClosing = stringToPrecomputedChunk("/>"); +function pushInnerHTML(target, innerHTML, children) { + if (null != innerHTML) { + if (null != children) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ("object" !== typeof innerHTML || !("__html" in innerHTML)) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + innerHTML = innerHTML.__html; + null !== innerHTML && + void 0 !== innerHTML && + target.push(stringToChunk("" + innerHTML)); + } +} +function flattenOptionChildren(children) { + var content = ""; + React.Children.forEach(children, function (child) { + null != child && (content += child); + }); + return content; +} +var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'), + formReplayingRuntimeScript = stringToPrecomputedChunk( + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});' + ); +function injectFormReplayingRuntime(resumableState, renderState) { + if (0 === (resumableState.instructions & 16)) { + resumableState.instructions |= 16; + var preamble = renderState.preamble, + bootstrapChunks = renderState.bootstrapChunks; + (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length + ? (bootstrapChunks.push(renderState.startInlineScript), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + endOfStartTag, + formReplayingRuntimeScript, + endInlineScript + )) + : bootstrapChunks.unshift( + renderState.startInlineScript, + endOfStartTag, + formReplayingRuntimeScript, + endInlineScript + ); + } +} +var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"), + formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e"); +function pushLinkImpl(target, props) { + target.push(startChunkForTag("link")); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTagSelfClosing); + return null; +} +var styleRegex = /(<\/|<)(s)(tyle)/gi; +function styleReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix; +} +function pushSelfClosing(target, props, tag) { + target.push(startChunkForTag(tag)); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + tag + + " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTagSelfClosing); + return null; +} +function pushTitleImpl(target, props) { + target.push(startChunkForTag("title")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + props = Array.isArray(children) + ? 2 > children.length + ? children[0] + : null + : children; + "function" !== typeof props && + "symbol" !== typeof props && + null !== props && + void 0 !== props && + target.push(stringToChunk(escapeTextForBrowser("" + props))); + pushInnerHTML(target, innerHTML, children); + target.push(endChunkForTag("title")); + return null; +} +var headPreambleContributionChunk = + stringToPrecomputedChunk("\x3c!--head--\x3e"), + bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"), + htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e"); +function pushScriptImpl(target, props) { + target.push(startChunkForTag("script")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, children); + "string" === typeof children && + target.push( + stringToChunk(("" + children).replace(scriptRegex, scriptReplacer)) + ); + target.push(endChunkForTag("script")); + return null; +} +function pushStartSingletonElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, tag); + return tag; +} +function pushStartGenericElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, tag); + return "string" === typeof tag + ? (target.push(stringToChunk(escapeTextForBrowser(tag))), null) + : tag; +} +var leadingNewline = stringToPrecomputedChunk("\n"), + VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, + validatedTagCache = new Map(); +function startChunkForTag(tag) { + var tagStartChunk = validatedTagCache.get(tag); + if (void 0 === tagStartChunk) { + if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag); + tagStartChunk = stringToPrecomputedChunk("<" + tag); + validatedTagCache.set(tag, tagStartChunk); + } + return tagStartChunk; +} +var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>"); +function pushStartInstance( + target$jscomp$0, + type, + props, + resumableState, + renderState, + preambleState, + hoistableState, + formatContext, + textEmbedded +) { + switch (type) { + case "div": + case "span": + case "svg": + case "path": + break; + case "a": + target$jscomp$0.push(startChunkForTag("a")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + case "href": + "" === propValue + ? pushStringAttribute(target$jscomp$0, "href", "") + : pushAttribute(target$jscomp$0, propKey, propValue); + break; + default: + pushAttribute(target$jscomp$0, propKey, propValue); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML, children); + if ("string" === typeof children) { + target$jscomp$0.push(stringToChunk(escapeTextForBrowser(children))); + var JSCompiler_inline_result = null; + } else JSCompiler_inline_result = children; + return JSCompiler_inline_result; + case "g": + case "p": + case "li": + break; + case "select": + target$jscomp$0.push(startChunkForTag("select")); + var children$jscomp$0 = null, + innerHTML$jscomp$0 = null, + propKey$jscomp$0; + for (propKey$jscomp$0 in props) + if (hasOwnProperty.call(props, propKey$jscomp$0)) { + var propValue$jscomp$0 = props[propKey$jscomp$0]; + if (null != propValue$jscomp$0) + switch (propKey$jscomp$0) { + case "children": + children$jscomp$0 = propValue$jscomp$0; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$0 = propValue$jscomp$0; + break; + case "defaultValue": + case "value": + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$0, + propValue$jscomp$0 + ); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); + return children$jscomp$0; + case "option": + var selectedValue = formatContext.selectedValue; + target$jscomp$0.push(startChunkForTag("option")); + var children$jscomp$1 = null, + value = null, + selected = null, + innerHTML$jscomp$1 = null, + propKey$jscomp$1; + for (propKey$jscomp$1 in props) + if (hasOwnProperty.call(props, propKey$jscomp$1)) { + var propValue$jscomp$1 = props[propKey$jscomp$1]; + if (null != propValue$jscomp$1) + switch (propKey$jscomp$1) { + case "children": + children$jscomp$1 = propValue$jscomp$1; + break; + case "selected": + selected = propValue$jscomp$1; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$1 = propValue$jscomp$1; + break; + case "value": + value = propValue$jscomp$1; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$1, + propValue$jscomp$1 + ); + } + } + if (null != selectedValue) { + var stringValue = + null !== value + ? "" + value + : flattenOptionChildren(children$jscomp$1); + if (isArrayImpl(selectedValue)) + for (var i = 0; i < selectedValue.length; i++) { + if ("" + selectedValue[i] === stringValue) { + target$jscomp$0.push(selectedMarkerAttribute); + break; + } + } + else + "" + selectedValue === stringValue && + target$jscomp$0.push(selectedMarkerAttribute); + } else selected && target$jscomp$0.push(selectedMarkerAttribute); + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1); + return children$jscomp$1; + case "textarea": + target$jscomp$0.push(startChunkForTag("textarea")); + var value$jscomp$0 = null, + defaultValue = null, + children$jscomp$2 = null, + propKey$jscomp$2; + for (propKey$jscomp$2 in props) + if (hasOwnProperty.call(props, propKey$jscomp$2)) { + var propValue$jscomp$2 = props[propKey$jscomp$2]; + if (null != propValue$jscomp$2) + switch (propKey$jscomp$2) { + case "children": + children$jscomp$2 = propValue$jscomp$2; + break; + case "value": + value$jscomp$0 = propValue$jscomp$2; + break; + case "defaultValue": + defaultValue = propValue$jscomp$2; + break; + case "dangerouslySetInnerHTML": + throw Error( + "`dangerouslySetInnerHTML` does not make sense on <textarea>." + ); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$2, + propValue$jscomp$2 + ); + } + } + null === value$jscomp$0 && + null !== defaultValue && + (value$jscomp$0 = defaultValue); + target$jscomp$0.push(endOfStartTag); + if (null != children$jscomp$2) { + if (null != value$jscomp$0) + throw Error( + "If you supply `defaultValue` on a <textarea>, do not pass children." + ); + if (isArrayImpl(children$jscomp$2)) { + if (1 < children$jscomp$2.length) + throw Error("<textarea> can only have at most one child."); + value$jscomp$0 = "" + children$jscomp$2[0]; + } + value$jscomp$0 = "" + children$jscomp$2; + } + "string" === typeof value$jscomp$0 && + "\n" === value$jscomp$0[0] && + target$jscomp$0.push(leadingNewline); + null !== value$jscomp$0 && + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser("" + value$jscomp$0)) + ); + return null; + case "input": + target$jscomp$0.push(startChunkForTag("input")); + var name = null, + formAction = null, + formEncType = null, + formMethod = null, + formTarget = null, + value$jscomp$1 = null, + defaultValue$jscomp$0 = null, + checked = null, + defaultChecked = null, + propKey$jscomp$3; + for (propKey$jscomp$3 in props) + if (hasOwnProperty.call(props, propKey$jscomp$3)) { + var propValue$jscomp$3 = props[propKey$jscomp$3]; + if (null != propValue$jscomp$3) + switch (propKey$jscomp$3) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + case "name": + name = propValue$jscomp$3; + break; + case "formAction": + formAction = propValue$jscomp$3; + break; + case "formEncType": + formEncType = propValue$jscomp$3; + break; + case "formMethod": + formMethod = propValue$jscomp$3; + break; + case "formTarget": + formTarget = propValue$jscomp$3; + break; + case "defaultChecked": + defaultChecked = propValue$jscomp$3; + break; + case "defaultValue": + defaultValue$jscomp$0 = propValue$jscomp$3; + break; + case "checked": + checked = propValue$jscomp$3; + break; + case "value": + value$jscomp$1 = propValue$jscomp$3; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$3, + propValue$jscomp$3 + ); + } + } + var formData = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name + ); + null !== checked + ? pushBooleanAttribute(target$jscomp$0, "checked", checked) + : null !== defaultChecked && + pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked); + null !== value$jscomp$1 + ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) + : null !== defaultValue$jscomp$0 && + pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + target$jscomp$0.push(endOfStartTagSelfClosing); + null != formData && + formData.forEach(pushAdditionalFormField, target$jscomp$0); + return null; + case "button": + target$jscomp$0.push(startChunkForTag("button")); + var children$jscomp$3 = null, + innerHTML$jscomp$2 = null, + name$jscomp$0 = null, + formAction$jscomp$0 = null, + formEncType$jscomp$0 = null, + formMethod$jscomp$0 = null, + formTarget$jscomp$0 = null, + propKey$jscomp$4; + for (propKey$jscomp$4 in props) + if (hasOwnProperty.call(props, propKey$jscomp$4)) { + var propValue$jscomp$4 = props[propKey$jscomp$4]; + if (null != propValue$jscomp$4) + switch (propKey$jscomp$4) { + case "children": + children$jscomp$3 = propValue$jscomp$4; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$2 = propValue$jscomp$4; + break; + case "name": + name$jscomp$0 = propValue$jscomp$4; + break; + case "formAction": + formAction$jscomp$0 = propValue$jscomp$4; + break; + case "formEncType": + formEncType$jscomp$0 = propValue$jscomp$4; + break; + case "formMethod": + formMethod$jscomp$0 = propValue$jscomp$4; + break; + case "formTarget": + formTarget$jscomp$0 = propValue$jscomp$4; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$4, + propValue$jscomp$4 + ); + } + } + var formData$jscomp$0 = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction$jscomp$0, + formEncType$jscomp$0, + formMethod$jscomp$0, + formTarget$jscomp$0, + name$jscomp$0 + ); + target$jscomp$0.push(endOfStartTag); + null != formData$jscomp$0 && + formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3); + if ("string" === typeof children$jscomp$3) { + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser(children$jscomp$3)) + ); + var JSCompiler_inline_result$jscomp$0 = null; + } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3; + return JSCompiler_inline_result$jscomp$0; + case "form": + target$jscomp$0.push(startChunkForTag("form")); + var children$jscomp$4 = null, + innerHTML$jscomp$3 = null, + formAction$jscomp$1 = null, + formEncType$jscomp$1 = null, + formMethod$jscomp$1 = null, + formTarget$jscomp$1 = null, + propKey$jscomp$5; + for (propKey$jscomp$5 in props) + if (hasOwnProperty.call(props, propKey$jscomp$5)) { + var propValue$jscomp$5 = props[propKey$jscomp$5]; + if (null != propValue$jscomp$5) + switch (propKey$jscomp$5) { + case "children": + children$jscomp$4 = propValue$jscomp$5; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$3 = propValue$jscomp$5; + break; + case "action": + formAction$jscomp$1 = propValue$jscomp$5; + break; + case "encType": + formEncType$jscomp$1 = propValue$jscomp$5; + break; + case "method": + formMethod$jscomp$1 = propValue$jscomp$5; + break; + case "target": + formTarget$jscomp$1 = propValue$jscomp$5; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$5, + propValue$jscomp$5 + ); + } + } + var formData$jscomp$1 = null, + formActionName = null; + if ("function" === typeof formAction$jscomp$1) { + var customFields = getCustomFormFields( + resumableState, + formAction$jscomp$1 + ); + null !== customFields + ? ((formAction$jscomp$1 = customFields.action || ""), + (formEncType$jscomp$1 = customFields.encType), + (formMethod$jscomp$1 = customFields.method), + (formTarget$jscomp$1 = customFields.target), + (formData$jscomp$1 = customFields.data), + (formActionName = customFields.name)) + : (target$jscomp$0.push( + attributeSeparator, + stringToChunk("action"), + attributeAssign, + actionJavaScriptURL, + attributeEnd + ), + (formTarget$jscomp$1 = + formMethod$jscomp$1 = + formEncType$jscomp$1 = + formAction$jscomp$1 = + null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != formAction$jscomp$1 && + pushAttribute(target$jscomp$0, "action", formAction$jscomp$1); + null != formEncType$jscomp$1 && + pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1); + null != formMethod$jscomp$1 && + pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); + null != formTarget$jscomp$1 && + pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + target$jscomp$0.push(endOfStartTag); + null !== formActionName && + (target$jscomp$0.push(startHiddenInputChunk), + pushStringAttribute(target$jscomp$0, "name", formActionName), + target$jscomp$0.push(endOfStartTagSelfClosing), + null != formData$jscomp$1 && + formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4); + if ("string" === typeof children$jscomp$4) { + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser(children$jscomp$4)) + ); + var JSCompiler_inline_result$jscomp$1 = null; + } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4; + return JSCompiler_inline_result$jscomp$1; + case "menuitem": + target$jscomp$0.push(startChunkForTag("menuitem")); + for (var propKey$jscomp$6 in props) + if (hasOwnProperty.call(props, propKey$jscomp$6)) { + var propValue$jscomp$6 = props[propKey$jscomp$6]; + if (null != propValue$jscomp$6) + switch (propKey$jscomp$6) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "menuitems cannot have `children` nor `dangerouslySetInnerHTML`." + ); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$6, + propValue$jscomp$6 + ); + } + } + target$jscomp$0.push(endOfStartTag); + return null; + case "object": + target$jscomp$0.push(startChunkForTag("object")); + var children$jscomp$5 = null, + innerHTML$jscomp$4 = null, + propKey$jscomp$7; + for (propKey$jscomp$7 in props) + if (hasOwnProperty.call(props, propKey$jscomp$7)) { + var propValue$jscomp$7 = props[propKey$jscomp$7]; + if (null != propValue$jscomp$7) + switch (propKey$jscomp$7) { + case "children": + children$jscomp$5 = propValue$jscomp$7; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$4 = propValue$jscomp$7; + break; + case "data": + var sanitizedValue = sanitizeURL("" + propValue$jscomp$7); + if ("" === sanitizedValue) break; + target$jscomp$0.push( + attributeSeparator, + stringToChunk("data"), + attributeAssign, + stringToChunk(escapeTextForBrowser(sanitizedValue)), + attributeEnd + ); + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$7, + propValue$jscomp$7 + ); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5); + if ("string" === typeof children$jscomp$5) { + target$jscomp$0.push( + stringToChunk(escapeTextForBrowser(children$jscomp$5)) + ); + var JSCompiler_inline_result$jscomp$2 = null; + } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5; + return JSCompiler_inline_result$jscomp$2; + case "title": + var noscriptTagInScope = formatContext.tagScope & 1, + isFallback = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$3 = pushTitleImpl( + target$jscomp$0, + props + ); + else + isFallback + ? (JSCompiler_inline_result$jscomp$3 = null) + : (pushTitleImpl(renderState.hoistableChunks, props), + (JSCompiler_inline_result$jscomp$3 = void 0)); + return JSCompiler_inline_result$jscomp$3; + case "link": + var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1, + isFallback$jscomp$0 = formatContext.tagScope & 4, + rel = props.rel, + href = props.href, + precedence = props.precedence; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$0 || + null != props.itemProp || + "string" !== typeof rel || + "string" !== typeof href || + "" === href + ) { + pushLinkImpl(target$jscomp$0, props); + var JSCompiler_inline_result$jscomp$4 = null; + } else if ("stylesheet" === props.rel) + if ( + "string" !== typeof precedence || + null != props.disabled || + props.onLoad || + props.onError + ) + JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + ); + else { + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + if (null !== resourceState) { + resumableState.styleResources[href] = null; + styleQueue || + ((styleQueue = { + precedence: stringToChunk(escapeTextForBrowser(precedence)), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)); + var resource = { + state: 0, + props: assign({}, props, { + "data-precedence": props.precedence, + precedence: null + }) + }; + if (resourceState) { + 2 === resourceState.length && + adoptPreloadCredentials(resource.props, resourceState); + var preloadResource = renderState.preloads.stylesheets.get(href); + preloadResource && 0 < preloadResource.length + ? (preloadResource.length = 0) + : (resource.state = 1); + } + styleQueue.sheets.set(href, resource); + hoistableState && hoistableState.stylesheets.add(resource); + } else if (styleQueue) { + var resource$9 = styleQueue.sheets.get(href); + resource$9 && + hoistableState && + hoistableState.stylesheets.add(resource$9); + } + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$4 = null; + } + else + props.onLoad || props.onError + ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + )) + : (textEmbedded && target$jscomp$0.push(textSeparator), + (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0 + ? null + : pushLinkImpl(renderState.hoistableChunks, props))); + return JSCompiler_inline_result$jscomp$4; + case "script": + var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1, + asyncProp = props.async; + if ( + "string" !== typeof props.src || + !props.src || + !asyncProp || + "function" === typeof asyncProp || + "symbol" === typeof asyncProp || + props.onLoad || + props.onError || + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$1 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$5 = pushScriptImpl( + target$jscomp$0, + props + ); + else { + var key = props.src; + if ("module" === props.type) { + var resources = resumableState.moduleScriptResources; + var preloads = renderState.preloads.moduleScripts; + } else + (resources = resumableState.scriptResources), + (preloads = renderState.preloads.scripts); + var resourceState$jscomp$0 = resources.hasOwnProperty(key) + ? resources[key] + : void 0; + if (null !== resourceState$jscomp$0) { + resources[key] = null; + var scriptProps = props; + if (resourceState$jscomp$0) { + 2 === resourceState$jscomp$0.length && + ((scriptProps = assign({}, props)), + adoptPreloadCredentials(scriptProps, resourceState$jscomp$0)); + var preloadResource$jscomp$0 = preloads.get(key); + preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0); + } + var resource$jscomp$0 = []; + renderState.scripts.add(resource$jscomp$0); + pushScriptImpl(resource$jscomp$0, scriptProps); + } + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$5 = null; + } + return JSCompiler_inline_result$jscomp$5; + case "style": + var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1, + precedence$jscomp$0 = props.precedence, + href$jscomp$0 = props.href, + nonce = props.nonce; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$2 || + null != props.itemProp || + "string" !== typeof precedence$jscomp$0 || + "string" !== typeof href$jscomp$0 || + "" === href$jscomp$0 + ) { + target$jscomp$0.push(startChunkForTag("style")); + var children$jscomp$6 = null, + innerHTML$jscomp$5 = null, + propKey$jscomp$8; + for (propKey$jscomp$8 in props) + if (hasOwnProperty.call(props, propKey$jscomp$8)) { + var propValue$jscomp$8 = props[propKey$jscomp$8]; + if (null != propValue$jscomp$8) + switch (propKey$jscomp$8) { + case "children": + children$jscomp$6 = propValue$jscomp$8; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$5 = propValue$jscomp$8; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$8, + propValue$jscomp$8 + ); + } + } + target$jscomp$0.push(endOfStartTag); + var child = Array.isArray(children$jscomp$6) + ? 2 > children$jscomp$6.length + ? children$jscomp$6[0] + : null + : children$jscomp$6; + "function" !== typeof child && + "symbol" !== typeof child && + null !== child && + void 0 !== child && + target$jscomp$0.push( + stringToChunk(("" + child).replace(styleRegex, styleReplacer)) + ); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6); + target$jscomp$0.push(endChunkForTag("style")); + var JSCompiler_inline_result$jscomp$6 = null; + } else { + var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0); + if ( + null !== + (resumableState.styleResources.hasOwnProperty(href$jscomp$0) + ? resumableState.styleResources[href$jscomp$0] + : void 0) + ) { + resumableState.styleResources[href$jscomp$0] = null; + styleQueue$jscomp$0 || + ((styleQueue$jscomp$0 = { + precedence: stringToChunk( + escapeTextForBrowser(precedence$jscomp$0) + ), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0)); + var nonceStyle = renderState.nonce.style; + if (!nonceStyle || nonceStyle === nonce) { + styleQueue$jscomp$0.hrefs.push( + stringToChunk(escapeTextForBrowser(href$jscomp$0)) + ); + var target = styleQueue$jscomp$0.rules, + children$jscomp$7 = null, + innerHTML$jscomp$6 = null, + propKey$jscomp$9; + for (propKey$jscomp$9 in props) + if (hasOwnProperty.call(props, propKey$jscomp$9)) { + var propValue$jscomp$9 = props[propKey$jscomp$9]; + if (null != propValue$jscomp$9) + switch (propKey$jscomp$9) { + case "children": + children$jscomp$7 = propValue$jscomp$9; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$6 = propValue$jscomp$9; + } + } + var child$jscomp$0 = Array.isArray(children$jscomp$7) + ? 2 > children$jscomp$7.length + ? children$jscomp$7[0] + : null + : children$jscomp$7; + "function" !== typeof child$jscomp$0 && + "symbol" !== typeof child$jscomp$0 && + null !== child$jscomp$0 && + void 0 !== child$jscomp$0 && + target.push( + stringToChunk( + ("" + child$jscomp$0).replace(styleRegex, styleReplacer) + ) + ); + pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7); + } + } + styleQueue$jscomp$0 && + hoistableState && + hoistableState.styles.add(styleQueue$jscomp$0); + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$6 = void 0; + } + return JSCompiler_inline_result$jscomp$6; + case "meta": + var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1, + isFallback$jscomp$1 = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$3 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$7 = pushSelfClosing( + target$jscomp$0, + props, + "meta" + ); + else + textEmbedded && target$jscomp$0.push(textSeparator), + (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 + ? null + : "string" === typeof props.charSet + ? pushSelfClosing(renderState.charsetChunks, props, "meta") + : "viewport" === props.name + ? pushSelfClosing(renderState.viewportChunks, props, "meta") + : pushSelfClosing(renderState.hoistableChunks, props, "meta")); + return JSCompiler_inline_result$jscomp$7; + case "listing": + case "pre": + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$8 = null, + innerHTML$jscomp$7 = null, + propKey$jscomp$10; + for (propKey$jscomp$10 in props) + if (hasOwnProperty.call(props, propKey$jscomp$10)) { + var propValue$jscomp$10 = props[propKey$jscomp$10]; + if (null != propValue$jscomp$10) + switch (propKey$jscomp$10) { + case "children": + children$jscomp$8 = propValue$jscomp$10; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$7 = propValue$jscomp$10; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$10, + propValue$jscomp$10 + ); + } + } + target$jscomp$0.push(endOfStartTag); + if (null != innerHTML$jscomp$7) { + if (null != children$jscomp$8) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ( + "object" !== typeof innerHTML$jscomp$7 || + !("__html" in innerHTML$jscomp$7) + ) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + var html = innerHTML$jscomp$7.__html; + null !== html && + void 0 !== html && + ("string" === typeof html && 0 < html.length && "\n" === html[0] + ? target$jscomp$0.push(leadingNewline, stringToChunk(html)) + : target$jscomp$0.push(stringToChunk("" + html))); + } + "string" === typeof children$jscomp$8 && + "\n" === children$jscomp$8[0] && + target$jscomp$0.push(leadingNewline); + return children$jscomp$8; + case "img": + var pictureOrNoScriptTagInScope = formatContext.tagScope & 3, + src = props.src, + srcSet = props.srcSet; + if ( + !( + "lazy" === props.loading || + (!src && !srcSet) || + ("string" !== typeof src && null != src) || + ("string" !== typeof srcSet && null != srcSet) || + "low" === props.fetchPriority || + pictureOrNoScriptTagInScope + ) && + ("string" !== typeof src || + ":" !== src[4] || + ("d" !== src[0] && "D" !== src[0]) || + ("a" !== src[1] && "A" !== src[1]) || + ("t" !== src[2] && "T" !== src[2]) || + ("a" !== src[3] && "A" !== src[3])) && + ("string" !== typeof srcSet || + ":" !== srcSet[4] || + ("d" !== srcSet[0] && "D" !== srcSet[0]) || + ("a" !== srcSet[1] && "A" !== srcSet[1]) || + ("t" !== srcSet[2] && "T" !== srcSet[2]) || + ("a" !== srcSet[3] && "A" !== srcSet[3])) + ) { + null !== hoistableState && + formatContext.tagScope & 64 && + (hoistableState.suspenseyImages = !0); + var sizes = "string" === typeof props.sizes ? props.sizes : void 0, + key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src, + promotablePreloads = renderState.preloads.images, + resource$jscomp$1 = promotablePreloads.get(key$jscomp$0); + if (resource$jscomp$1) { + if ( + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ) + promotablePreloads.delete(key$jscomp$0), + renderState.highImagePreloads.add(resource$jscomp$1); + } else if ( + !resumableState.imageResources.hasOwnProperty(key$jscomp$0) + ) { + resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS; + var input = props.crossOrigin; + var JSCompiler_inline_result$jscomp$8 = + "string" === typeof input + ? "use-credentials" === input + ? input + : "" + : void 0; + var headers = renderState.headers, + header; + headers && + 0 < headers.remainingCapacity && + "string" !== typeof props.srcSet && + ("high" === props.fetchPriority || + 500 > headers.highImagePreloads.length) && + ((header = getPreloadAsHeader(src, "image", { + imageSrcSet: props.srcSet, + imageSizes: props.sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + nonce: props.nonce, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.refererPolicy + })), + 0 <= (headers.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS), + headers.highImagePreloads && (headers.highImagePreloads += ", "), + (headers.highImagePreloads += header)) + : ((resource$jscomp$1 = []), + pushLinkImpl(resource$jscomp$1, { + rel: "preload", + as: "image", + href: srcSet ? void 0 : src, + imageSrcSet: srcSet, + imageSizes: sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.referrerPolicy + }), + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ? renderState.highImagePreloads.add(resource$jscomp$1) + : (renderState.bulkPreloads.add(resource$jscomp$1), + promotablePreloads.set(key$jscomp$0, resource$jscomp$1))); + } + } + return pushSelfClosing(target$jscomp$0, props, "img"); + case "base": + case "area": + case "br": + case "col": + case "embed": + case "hr": + case "keygen": + case "param": + case "source": + case "track": + case "wbr": + return pushSelfClosing(target$jscomp$0, props, type); + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + break; + case "head": + if (2 > formatContext.insertionMode) { + var preamble = preambleState || renderState.preamble; + if (preamble.headChunks) + throw Error("The `<head>` tag may only be rendered once."); + null !== preambleState && + target$jscomp$0.push(headPreambleContributionChunk); + preamble.headChunks = []; + var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement( + preamble.headChunks, + props, + "head" + ); + } else + JSCompiler_inline_result$jscomp$9 = pushStartGenericElement( + target$jscomp$0, + props, + "head" + ); + return JSCompiler_inline_result$jscomp$9; + case "body": + if (2 > formatContext.insertionMode) { + var preamble$jscomp$0 = preambleState || renderState.preamble; + if (preamble$jscomp$0.bodyChunks) + throw Error("The `<body>` tag may only be rendered once."); + null !== preambleState && + target$jscomp$0.push(bodyPreambleContributionChunk); + preamble$jscomp$0.bodyChunks = []; + var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement( + preamble$jscomp$0.bodyChunks, + props, + "body" + ); + } else + JSCompiler_inline_result$jscomp$10 = pushStartGenericElement( + target$jscomp$0, + props, + "body" + ); + return JSCompiler_inline_result$jscomp$10; + case "html": + if (0 === formatContext.insertionMode) { + var preamble$jscomp$1 = preambleState || renderState.preamble; + if (preamble$jscomp$1.htmlChunks) + throw Error("The `<html>` tag may only be rendered once."); + null !== preambleState && + target$jscomp$0.push(htmlPreambleContributionChunk); + preamble$jscomp$1.htmlChunks = [doctypeChunk]; + var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement( + preamble$jscomp$1.htmlChunks, + props, + "html" + ); + } else + JSCompiler_inline_result$jscomp$11 = pushStartGenericElement( + target$jscomp$0, + props, + "html" + ); + return JSCompiler_inline_result$jscomp$11; + default: + if (-1 !== type.indexOf("-")) { + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$9 = null, + innerHTML$jscomp$8 = null, + propKey$jscomp$11; + for (propKey$jscomp$11 in props) + if (hasOwnProperty.call(props, propKey$jscomp$11)) { + var propValue$jscomp$11 = props[propKey$jscomp$11]; + if (null != propValue$jscomp$11) { + var attributeName = propKey$jscomp$11; + switch (propKey$jscomp$11) { + case "children": + children$jscomp$9 = propValue$jscomp$11; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$8 = propValue$jscomp$11; + break; + case "style": + pushStyleAttribute(target$jscomp$0, propValue$jscomp$11); + break; + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "className": + attributeName = "class"; + default: + if ( + isAttributeNameSafe(propKey$jscomp$11) && + "function" !== typeof propValue$jscomp$11 && + "symbol" !== typeof propValue$jscomp$11 && + !1 !== propValue$jscomp$11 + ) { + if (!0 === propValue$jscomp$11) propValue$jscomp$11 = ""; + else if ("object" === typeof propValue$jscomp$11) continue; + target$jscomp$0.push( + attributeSeparator, + stringToChunk(attributeName), + attributeAssign, + stringToChunk(escapeTextForBrowser(propValue$jscomp$11)), + attributeEnd + ); + } + } + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9); + return children$jscomp$9; + } + } + return pushStartGenericElement(target$jscomp$0, props, type); +} +var endTagCache = new Map(); +function endChunkForTag(tag) { + var chunk = endTagCache.get(tag); + void 0 === chunk && + ((chunk = stringToPrecomputedChunk("</" + tag + ">")), + endTagCache.set(tag, chunk)); + return chunk; +} +function hoistPreambleState(renderState, preambleState) { + renderState = renderState.preamble; + null === renderState.htmlChunks && + preambleState.htmlChunks && + (renderState.htmlChunks = preambleState.htmlChunks); + null === renderState.headChunks && + preambleState.headChunks && + (renderState.headChunks = preambleState.headChunks); + null === renderState.bodyChunks && + preambleState.bodyChunks && + (renderState.bodyChunks = preambleState.bodyChunks); +} +function writeBootstrap(destination, renderState) { + renderState = renderState.bootstrapChunks; + for (var i = 0; i < renderState.length - 1; i++) + writeChunk(destination, renderState[i]); + return i < renderState.length + ? ((i = renderState[i]), + (renderState.length = 0), + writeChunkAndReturn(destination, i)) + : !0; +} +var shellTimeRuntimeScript = stringToPrecomputedChunk( + "requestAnimationFrame(function(){$RT=performance.now()});" + ), + placeholder1 = stringToPrecomputedChunk('<template id="'), + placeholder2 = stringToPrecomputedChunk('"></template>'), + startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"), + endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"), + startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"), + startPendingSuspenseBoundary1 = stringToPrecomputedChunk( + '\x3c!--$?--\x3e<template id="' + ), + startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'), + startClientRenderedSuspenseBoundary = + stringToPrecomputedChunk("\x3c!--$!--\x3e"), + endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"), + clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk("<template"), + clientRenderedSuspenseBoundaryErrorAttrInterstitial = + stringToPrecomputedChunk('"'), + clientRenderedSuspenseBoundaryError1A = + stringToPrecomputedChunk(' data-dgst="'); +stringToPrecomputedChunk(' data-msg="'); +stringToPrecomputedChunk(' data-stck="'); +stringToPrecomputedChunk(' data-cstck="'); +var clientRenderedSuspenseBoundaryError2 = + stringToPrecomputedChunk("></template>"); +function writeStartPendingSuspenseBoundary(destination, renderState, id) { + writeChunk(destination, startPendingSuspenseBoundary1); + if (null === id) + throw Error( + "An ID must have been assigned before we can complete the boundary." + ); + writeChunk(destination, renderState.boundaryPrefix); + writeChunk(destination, stringToChunk(id.toString(16))); + return writeChunkAndReturn(destination, startPendingSuspenseBoundary2); +} +var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'), + startSegmentHTML2 = stringToPrecomputedChunk('">'), + endSegmentHTML = stringToPrecomputedChunk("</div>"), + startSegmentSVG = stringToPrecomputedChunk( + '<svg aria-hidden="true" style="display:none" id="' + ), + startSegmentSVG2 = stringToPrecomputedChunk('">'), + endSegmentSVG = stringToPrecomputedChunk("</svg>"), + startSegmentMathML = stringToPrecomputedChunk( + '<math aria-hidden="true" style="display:none" id="' + ), + startSegmentMathML2 = stringToPrecomputedChunk('">'), + endSegmentMathML = stringToPrecomputedChunk("</math>"), + startSegmentTable = stringToPrecomputedChunk('<table hidden id="'), + startSegmentTable2 = stringToPrecomputedChunk('">'), + endSegmentTable = stringToPrecomputedChunk("</table>"), + startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id="'), + startSegmentTableBody2 = stringToPrecomputedChunk('">'), + endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"), + startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'), + startSegmentTableRow2 = stringToPrecomputedChunk('">'), + endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"), + startSegmentColGroup = stringToPrecomputedChunk( + '<table hidden><colgroup id="' + ), + startSegmentColGroup2 = stringToPrecomputedChunk('">'), + endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>"); +function writeStartSegment(destination, renderState, formatContext, id) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return ( + writeChunk(destination, startSegmentHTML), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentHTML2) + ); + case 4: + return ( + writeChunk(destination, startSegmentSVG), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentSVG2) + ); + case 5: + return ( + writeChunk(destination, startSegmentMathML), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentMathML2) + ); + case 6: + return ( + writeChunk(destination, startSegmentTable), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentTable2) + ); + case 7: + return ( + writeChunk(destination, startSegmentTableBody), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentTableBody2) + ); + case 8: + return ( + writeChunk(destination, startSegmentTableRow), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentTableRow2) + ); + case 9: + return ( + writeChunk(destination, startSegmentColGroup), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, stringToChunk(id.toString(16))), + writeChunkAndReturn(destination, startSegmentColGroup2) + ); + default: + throw Error("Unknown insertion mode. This is a bug in React."); + } +} +function writeEndSegment(destination, formatContext) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return writeChunkAndReturn(destination, endSegmentHTML); + case 4: + return writeChunkAndReturn(destination, endSegmentSVG); + case 5: + return writeChunkAndReturn(destination, endSegmentMathML); + case 6: + return writeChunkAndReturn(destination, endSegmentTable); + case 7: + return writeChunkAndReturn(destination, endSegmentTableBody); + case 8: + return writeChunkAndReturn(destination, endSegmentTableRow); + case 9: + return writeChunkAndReturn(destination, endSegmentColGroup); + default: + throw Error("Unknown insertion mode. This is a bug in React."); + } +} +var completeSegmentScript1Full = stringToPrecomputedChunk( + '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("' + ), + completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'), + completeSegmentScript2 = stringToPrecomputedChunk('","'), + completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>'); +stringToPrecomputedChunk('<template data-rsi="" data-sid="'); +stringToPrecomputedChunk('" data-pid="'); +var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' +); +stringToChunk( + '$RV=function(A,g){function k(a,b){var e=a.getAttribute(b);e&&(b=a.style,l.push(a,b.viewTransitionName,b.viewTransitionClass),"auto"!==e&&(b.viewTransitionClass=e),(a=a.getAttribute("vt-name"))||(a="_T_"+K++ +"_"),b.viewTransitionName=a,B=!0)}var B=!1,K=0,l=[];try{var f=document.__reactViewTransition;if(f){f.finished.finally($RV.bind(null,g));return}var m=new Map;for(f=1;f<g.length;f+=2)for(var h=g[f].querySelectorAll("[vt-share]"),d=0;d<h.length;d++){var c=h[d];m.set(c.getAttribute("vt-name"),c)}var u=[];for(h=0;h<g.length;h+=2){var C=g[h],x=C.parentNode;if(x){var v=x.getBoundingClientRect();if(v.left||v.top||v.width||v.height){c=C;for(f=0;c;){if(8===c.nodeType){var r=c.data;if("/$"===r)if(0===f)break;else f--;else"$"!==r&&"$?"!==r&&"$~"!==r&&"$!"!==r||f++}else if(1===c.nodeType){d=c;var D=d.getAttribute("vt-name"),y=m.get(D);k(d,y?"vt-share":"vt-exit");y&&(k(y,"vt-share"),m.set(D,null));var E=d.querySelectorAll("[vt-share]");for(d=0;d<E.length;d++){var F=E[d],G=F.getAttribute("vt-name"),\nH=m.get(G);H&&(k(F,"vt-share"),k(H,"vt-share"),m.set(G,null))}}c=c.nextSibling}for(var I=g[h+1],t=I.firstElementChild;t;)null!==m.get(t.getAttribute("vt-name"))&&k(t,"vt-enter"),t=t.nextElementSibling;c=x;do for(var n=c.firstElementChild;n;){var J=n.getAttribute("vt-update");J&&"none"!==J&&!l.includes(n)&&k(n,"vt-update");n=n.nextElementSibling}while((c=c.parentNode)&&1===c.nodeType&&"none"!==c.getAttribute("vt-update"));u.push.apply(u,I.querySelectorAll(\'img[src]:not([loading="lazy"])\'))}}}if(B){var z=\ndocument.__reactViewTransition=document.startViewTransition({update:function(){A(g);for(var a=[document.documentElement.clientHeight,document.fonts.ready],b={},e=0;e<u.length;b={g:b.g},e++)if(b.g=u[e],!b.g.complete){var p=b.g.getBoundingClientRect();0<p.bottom&&0<p.right&&p.top<window.innerHeight&&p.left<window.innerWidth&&(p=new Promise(function(w){return function(q){w.g.addEventListener("load",q);w.g.addEventListener("error",q)}}(b)),a.push(p))}return Promise.race([Promise.all(a),new Promise(function(w){var q=\nperformance.now();setTimeout(w,2300>q&&2E3<q?2300-q:500)})])},types:[]});z.ready.finally(function(){for(var a=l.length-3;0<=a;a-=3){var b=l[a],e=b.style;e.viewTransitionName=l[a+1];e.viewTransitionClass=l[a+1];""===b.getAttribute("style")&&b.removeAttribute("style")}});z.finished.finally(function(){document.__reactViewTransition===z&&(document.__reactViewTransition=null)});$RB=[];return}}catch(a){}A(g)}.bind(null,$RV);' +); +var completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'), + completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk( + '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("' + ), + completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'), + completeBoundaryScript2 = stringToPrecomputedChunk('","'), + completeBoundaryScript3a = stringToPrecomputedChunk('",'), + completeBoundaryScript3b = stringToPrecomputedChunk('"'), + completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>"); +stringToPrecomputedChunk('<template data-rci="" data-bid="'); +stringToPrecomputedChunk('<template data-rri="" data-bid="'); +stringToPrecomputedChunk('" data-sid="'); +stringToPrecomputedChunk('" data-sty="'); +var clientRenderScriptFunctionOnly = stringToPrecomputedChunk( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};' + ), + clientRenderScript1Full = stringToPrecomputedChunk( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("' + ), + clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'), + clientRenderScript1A = stringToPrecomputedChunk('"'), + clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","), + clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>"); +stringToPrecomputedChunk('<template data-rxi="" data-bid="'); +stringToPrecomputedChunk('" data-dgst="'); +stringToPrecomputedChunk('" data-msg="'); +stringToPrecomputedChunk('" data-stck="'); +stringToPrecomputedChunk('" data-cstck="'); +var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g; +function escapeJSStringsForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInInstructionScripts, + function (match) { + switch (match) { + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var regexForJSStringsInScripts = /[&><\u2028\u2029]/g; +function escapeJSObjectForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInScripts, + function (match) { + switch (match) { + case "&": + return "\\u0026"; + case ">": + return "\\u003e"; + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var lateStyleTagResourceOpen1 = stringToPrecomputedChunk( + ' media="not all" data-precedence="' + ), + lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'), + lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'), + lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"), + currentlyRenderingBoundaryHasStylesToHoist = !1, + destinationHasCapacity = !0; +function flushStyleTagsLateForBoundary(styleQueue) { + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs, + i = 0; + if (hrefs.length) { + writeChunk(this, currentlyFlushingRenderState.startInlineStyle); + writeChunk(this, lateStyleTagResourceOpen1); + writeChunk(this, styleQueue.precedence); + for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++) + writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator); + writeChunk(this, hrefs[i]); + writeChunk(this, lateStyleTagResourceOpen3); + for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]); + destinationHasCapacity = writeChunkAndReturn( + this, + lateStyleTagTemplateClose + ); + currentlyRenderingBoundaryHasStylesToHoist = !0; + rules.length = 0; + hrefs.length = 0; + } +} +function hasStylesToHoist(stylesheet) { + return 2 !== stylesheet.state + ? (currentlyRenderingBoundaryHasStylesToHoist = !0) + : !1; +} +function writeHoistablesForBoundary(destination, hoistableState, renderState) { + currentlyRenderingBoundaryHasStylesToHoist = !1; + destinationHasCapacity = !0; + currentlyFlushingRenderState = renderState; + hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination); + currentlyFlushingRenderState = null; + hoistableState.stylesheets.forEach(hasStylesToHoist); + currentlyRenderingBoundaryHasStylesToHoist && + (renderState.stylesToHoist = !0); + return destinationHasCapacity; +} +function flushResource(resource) { + for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]); + resource.length = 0; +} +var stylesheetFlushingQueue = []; +function flushStyleInPreamble(stylesheet) { + pushLinkImpl(stylesheetFlushingQueue, stylesheet.props); + for (var i = 0; i < stylesheetFlushingQueue.length; i++) + writeChunk(this, stylesheetFlushingQueue[i]); + stylesheetFlushingQueue.length = 0; + stylesheet.state = 2; +} +var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'), + styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'), + spaceSeparator = stringToPrecomputedChunk(" "), + styleTagResourceOpen3 = stringToPrecomputedChunk('">'), + styleTagResourceClose = stringToPrecomputedChunk("</style>"); +function flushStylesInPreamble(styleQueue) { + var hasStylesheets = 0 < styleQueue.sheets.size; + styleQueue.sheets.forEach(flushStyleInPreamble, this); + styleQueue.sheets.clear(); + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs; + if (!hasStylesheets || hrefs.length) { + writeChunk(this, currentlyFlushingRenderState.startInlineStyle); + writeChunk(this, styleTagResourceOpen1); + writeChunk(this, styleQueue.precedence); + styleQueue = 0; + if (hrefs.length) { + for ( + writeChunk(this, styleTagResourceOpen2); + styleQueue < hrefs.length - 1; + styleQueue++ + ) + writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator); + writeChunk(this, hrefs[styleQueue]); + } + writeChunk(this, styleTagResourceOpen3); + for (styleQueue = 0; styleQueue < rules.length; styleQueue++) + writeChunk(this, rules[styleQueue]); + writeChunk(this, styleTagResourceClose); + rules.length = 0; + hrefs.length = 0; + } +} +function preloadLateStyle(stylesheet) { + if (0 === stylesheet.state) { + stylesheet.state = 1; + var props = stylesheet.props; + pushLinkImpl(stylesheetFlushingQueue, { + rel: "preload", + as: "style", + href: stylesheet.props.href, + crossOrigin: props.crossOrigin, + fetchPriority: props.fetchPriority, + integrity: props.integrity, + media: props.media, + hrefLang: props.hrefLang, + referrerPolicy: props.referrerPolicy + }); + for ( + stylesheet = 0; + stylesheet < stylesheetFlushingQueue.length; + stylesheet++ + ) + writeChunk(this, stylesheetFlushingQueue[stylesheet]); + stylesheetFlushingQueue.length = 0; + } +} +function preloadLateStyles(styleQueue) { + styleQueue.sheets.forEach(preloadLateStyle, this); + styleQueue.sheets.clear(); +} +stringToPrecomputedChunk('<link rel="expect" href="#'); +stringToPrecomputedChunk('" blocking="render"/>'); +var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="'); +function pushCompletedShellIdAttribute(target, resumableState) { + 0 === (resumableState.instructions & 32) && + ((resumableState.instructions |= 32), + target.push( + completedShellIdAttributeStart, + stringToChunk(escapeTextForBrowser("_" + resumableState.idPrefix + "R_")), + attributeEnd + )); +} +var arrayFirstOpenBracket = stringToPrecomputedChunk("["), + arraySubsequentOpenBracket = stringToPrecomputedChunk(",["), + arrayInterstitial = stringToPrecomputedChunk(","), + arrayCloseBracket = stringToPrecomputedChunk("]"); +function writeStyleResourceDependenciesInJS(destination, hoistableState) { + writeChunk(destination, arrayFirstOpenBracket); + var nextArrayOpenBrackChunk = arrayFirstOpenBracket; + hoistableState.stylesheets.forEach(function (resource) { + if (2 !== resource.state) + if (3 === resource.state) + writeChunk(destination, nextArrayOpenBrackChunk), + writeChunk( + destination, + stringToChunk( + escapeJSObjectForInstructionScripts("" + resource.props.href) + ) + ), + writeChunk(destination, arrayCloseBracket), + (nextArrayOpenBrackChunk = arraySubsequentOpenBracket); + else { + writeChunk(destination, nextArrayOpenBrackChunk); + var precedence = resource.props["data-precedence"], + props = resource.props, + coercedHref = sanitizeURL("" + resource.props.href); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(coercedHref)) + ); + precedence = "" + precedence; + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(precedence)) + ); + for (var propKey in props) + if ( + hasOwnProperty.call(props, propKey) && + ((precedence = props[propKey]), null != precedence) + ) + switch (propKey) { + case "href": + case "rel": + case "precedence": + case "data-precedence": + break; + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + writeStyleResourceAttributeInJS( + destination, + propKey, + precedence + ); + } + writeChunk(destination, arrayCloseBracket); + nextArrayOpenBrackChunk = arraySubsequentOpenBracket; + resource.state = 3; + } + }); + writeChunk(destination, arrayCloseBracket); +} +function writeStyleResourceAttributeInJS(destination, name, value) { + var attributeName = name.toLowerCase(); + switch (typeof value) { + case "function": + case "symbol": + return; + } + switch (name) { + case "innerHTML": + case "dangerouslySetInnerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "style": + case "ref": + return; + case "className": + attributeName = "class"; + name = "" + value; + break; + case "hidden": + if (!1 === value) return; + name = ""; + break; + case "src": + case "href": + value = sanitizeURL(value); + name = "" + value; + break; + default: + if ( + (2 < name.length && + ("o" === name[0] || "O" === name[0]) && + ("n" === name[1] || "N" === name[1])) || + !isAttributeNameSafe(name) + ) + return; + name = "" + value; + } + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(attributeName)) + ); + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + stringToChunk(escapeJSObjectForInstructionScripts(name)) + ); +} +function createHoistableState() { + return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 }; +} +function prefetchDNS(href) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + if (!resumableState.dnsResources.hasOwnProperty(href)) { + resumableState.dnsResources[href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) + JSCompiler_temp = + ((header = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=dns-prefetch"), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + JSCompiler_temp + ? ((renderState.resets.dns[href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((header = []), + pushLinkImpl(header, { href: href, rel: "dns-prefetch" }), + renderState.preconnects.add(header)); + } + enqueueFlush(request); + } + } else previousDispatcher.D(href); +} +function preconnect(href, crossOrigin) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + var bucket = + "use-credentials" === crossOrigin + ? "credentials" + : "string" === typeof crossOrigin + ? "anonymous" + : "default"; + if (!resumableState.connectResources[bucket].hasOwnProperty(href)) { + resumableState.connectResources[bucket][href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) { + JSCompiler_temp = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=preconnect"; + if ("string" === typeof crossOrigin) { + var escapedCrossOrigin = ("" + crossOrigin).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"'; + } + JSCompiler_temp = + ((header = JSCompiler_temp), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + } + JSCompiler_temp + ? ((renderState.resets.connect[bucket][href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((bucket = []), + pushLinkImpl(bucket, { + rel: "preconnect", + href: href, + crossOrigin: crossOrigin + }), + renderState.preconnects.add(bucket)); + } + enqueueFlush(request); + } + } else previousDispatcher.C(href, crossOrigin); +} +function preload(href, as, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (as && href) { + switch (as) { + case "image": + if (options) { + var imageSrcSet = options.imageSrcSet; + var imageSizes = options.imageSizes; + var fetchPriority = options.fetchPriority; + } + var key = imageSrcSet + ? imageSrcSet + "\n" + (imageSizes || "") + : href; + if (resumableState.imageResources.hasOwnProperty(key)) return; + resumableState.imageResources[key] = PRELOAD_NO_CREDS; + resumableState = renderState.headers; + var header; + resumableState && + 0 < resumableState.remainingCapacity && + "string" !== typeof imageSrcSet && + "high" === fetchPriority && + ((header = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS), + resumableState.highImagePreloads && + (resumableState.highImagePreloads += ", "), + (resumableState.highImagePreloads += header)) + : ((resumableState = []), + pushLinkImpl( + resumableState, + assign( + { rel: "preload", href: imageSrcSet ? void 0 : href, as: as }, + options + ) + ), + "high" === fetchPriority + ? renderState.highImagePreloads.add(resumableState) + : (renderState.bulkPreloads.add(resumableState), + renderState.preloads.images.set(key, resumableState))); + break; + case "style": + if (resumableState.styleResources.hasOwnProperty(href)) return; + imageSrcSet = []; + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.styleResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.stylesheets.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + break; + case "script": + if (resumableState.scriptResources.hasOwnProperty(href)) return; + imageSrcSet = []; + renderState.preloads.scripts.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.scriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + break; + default: + if (resumableState.unknownResources.hasOwnProperty(as)) { + if ( + ((imageSrcSet = resumableState.unknownResources[as]), + imageSrcSet.hasOwnProperty(href)) + ) + return; + } else + (imageSrcSet = {}), + (resumableState.unknownResources[as] = imageSrcSet); + imageSrcSet[href] = PRELOAD_NO_CREDS; + if ( + (resumableState = renderState.headers) && + 0 < resumableState.remainingCapacity && + "font" === as && + ((key = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= key.length + 2)) + ) + (renderState.resets.font[href] = PRELOAD_NO_CREDS), + resumableState.fontPreloads && + (resumableState.fontPreloads += ", "), + (resumableState.fontPreloads += key); + else + switch ( + ((resumableState = []), + (href = assign({ rel: "preload", href: href, as: as }, options)), + pushLinkImpl(resumableState, href), + as) + ) { + case "font": + renderState.fontPreloads.add(resumableState); + break; + default: + renderState.bulkPreloads.add(resumableState); + } + } + enqueueFlush(request); + } + } else previousDispatcher.L(href, as, options); +} +function preloadModule(href, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + var as = + options && "string" === typeof options.as ? options.as : "script"; + switch (as) { + case "script": + if (resumableState.moduleScriptResources.hasOwnProperty(href)) return; + as = []; + resumableState.moduleScriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.moduleScripts.set(href, as); + break; + default: + if (resumableState.moduleUnknownResources.hasOwnProperty(as)) { + var resources = resumableState.unknownResources[as]; + if (resources.hasOwnProperty(href)) return; + } else + (resources = {}), + (resumableState.moduleUnknownResources[as] = resources); + as = []; + resources[href] = PRELOAD_NO_CREDS; + } + pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options)); + renderState.bulkPreloads.add(as); + enqueueFlush(request); + } + } else previousDispatcher.m(href, options); +} +function preinitStyle(href, precedence, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + precedence = precedence || "default"; + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + null !== resourceState && + ((resumableState.styleResources[href] = null), + styleQueue || + ((styleQueue = { + precedence: stringToChunk(escapeTextForBrowser(precedence)), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)), + (precedence = { + state: 0, + props: assign( + { rel: "stylesheet", href: href, "data-precedence": precedence }, + options + ) + }), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(precedence.props, resourceState), + (renderState = renderState.preloads.stylesheets.get(href)) && + 0 < renderState.length + ? (renderState.length = 0) + : (precedence.state = 1)), + styleQueue.sheets.set(href, precedence), + enqueueFlush(request)); + } + } else previousDispatcher.S(href, precedence, options); +} +function preinitScript(src, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.scriptResources.hasOwnProperty(src) + ? resumableState.scriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.scriptResources[src] = null), + (options = assign({ src: src, async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.scripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.X(src, options); +} +function preinitModuleScript(src, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.moduleScriptResources.hasOwnProperty( + src + ) + ? resumableState.moduleScriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.moduleScriptResources[src] = null), + (options = assign({ src: src, type: "module", async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.moduleScripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.M(src, options); +} +function adoptPreloadCredentials(target, preloadState) { + null == target.crossOrigin && (target.crossOrigin = preloadState[0]); + null == target.integrity && (target.integrity = preloadState[1]); +} +function getPreloadAsHeader(href, as, params) { + href = ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ); + as = ("" + as).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + as = "<" + href + '>; rel=preload; as="' + as + '"'; + for (var paramName in params) + hasOwnProperty.call(params, paramName) && + ((href = params[paramName]), + "string" === typeof href && + (as += + "; " + + paramName.toLowerCase() + + '="' + + ("" + href).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ) + + '"')); + return as; +} +var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g; +function escapeHrefForLinkHeaderURLContextReplacer(match) { + switch (match) { + case "<": + return "%3C"; + case ">": + return "%3E"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g; +function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) { + switch (match) { + case '"': + return "%22"; + case "'": + return "%27"; + case ";": + return "%3B"; + case ",": + return "%2C"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +function hoistStyleQueueDependency(styleQueue) { + this.styles.add(styleQueue); +} +function hoistStylesheetDependency(stylesheet) { + this.stylesheets.add(stylesheet); +} +function hoistHoistables(parentState, childState) { + childState.styles.forEach(hoistStyleQueueDependency, parentState); + childState.stylesheets.forEach(hoistStylesheetDependency, parentState); + childState.suspenseyImages && (parentState.suspenseyImages = !0); +} +function hasSuspenseyContent(hoistableState) { + return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages; +} +var bind = Function.prototype.bind, + supportsRequestStorage = "function" === typeof AsyncLocalStorage, + requestStorage = supportsRequestStorage ? new AsyncLocalStorage() : null, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); +function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; +} +var emptyContextObject = {}, + currentActiveSnapshot = null; +function popToNearestCommonAncestor(prev, next) { + if (prev !== next) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + var parentNext = next.parent; + if (null === prev) { + if (null !== parentNext) + throw Error( + "The stacks must reach the root at the same time. This is a bug in React." + ); + } else { + if (null === parentNext) + throw Error( + "The stacks must reach the root at the same time. This is a bug in React." + ); + popToNearestCommonAncestor(prev, parentNext); + } + next.context._currentValue = next.value; + } +} +function popAllPrevious(prev) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + null !== prev && popAllPrevious(prev); +} +function pushAllNext(next) { + var parentNext = next.parent; + null !== parentNext && pushAllNext(parentNext); + next.context._currentValue = next.value; +} +function popPreviousToCommonLevel(prev, next) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + if (null === prev) + throw Error( + "The depth must equal at least at zero before reaching the root. This is a bug in React." + ); + prev.depth === next.depth + ? popToNearestCommonAncestor(prev, next) + : popPreviousToCommonLevel(prev, next); +} +function popNextToCommonLevel(prev, next) { + var parentNext = next.parent; + if (null === parentNext) + throw Error( + "The depth must equal at least at zero before reaching the root. This is a bug in React." + ); + prev.depth === parentNext.depth + ? popToNearestCommonAncestor(prev, parentNext) + : popNextToCommonLevel(prev, parentNext); + next.context._currentValue = next.value; +} +function switchContext(newSnapshot) { + var prev = currentActiveSnapshot; + prev !== newSnapshot && + (null === prev + ? pushAllNext(newSnapshot) + : null === newSnapshot + ? popAllPrevious(prev) + : prev.depth === newSnapshot.depth + ? popToNearestCommonAncestor(prev, newSnapshot) + : prev.depth > newSnapshot.depth + ? popPreviousToCommonLevel(prev, newSnapshot) + : popNextToCommonLevel(prev, newSnapshot), + (currentActiveSnapshot = newSnapshot)); +} +var classComponentUpdater = { + enqueueSetState: function (inst, payload) { + inst = inst._reactInternals; + null !== inst.queue && inst.queue.push(payload); + }, + enqueueReplaceState: function (inst, payload) { + inst = inst._reactInternals; + inst.replace = !0; + inst.queue = [payload]; + }, + enqueueForceUpdate: function () {} + }, + emptyTreeContext = { id: 1, overflow: "" }; +function pushTreeContext(baseContext, totalChildren, index) { + var baseIdWithLeadingBit = baseContext.id; + baseContext = baseContext.overflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - (baseLength % 5); + length = ( + baseIdWithLeadingBit & + ((1 << numberOfOverflowBits) - 1) + ).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + return { + id: + (1 << (32 - clz32(totalChildren) + baseLength)) | + (index << baseLength) | + baseIdWithLeadingBit, + overflow: length + baseContext + }; + } + return { + id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit, + overflow: baseContext + }; +} +var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, + log = Math.log, + LN2 = Math.LN2; +function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; +} +function noop() {} +var SuspenseException = Error( + "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`." +); +function trackUsedThenable(thenableState, thenable, index) { + index = thenableState[index]; + void 0 === index + ? thenableState.push(thenable) + : index !== thenable && (thenable.then(noop, noop), (thenable = index)); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + "string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenableState = thenable), + (thenableState.status = "pending"), + thenableState.then( + function (fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function (error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + )); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + suspendedThenable = thenable; + throw SuspenseException; + } +} +var suspendedThenable = null; +function getSuspendedThenable() { + if (null === suspendedThenable) + throw Error( + "Expected a suspended thenable. This is a bug in React. Please file an issue." + ); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; +} +function is(x, y) { + return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); +} +var objectIs = "function" === typeof Object.is ? Object.is : is, + currentlyRenderingComponent = null, + currentlyRenderingTask = null, + currentlyRenderingRequest = null, + currentlyRenderingKeyPath = null, + firstWorkInProgressHook = null, + workInProgressHook = null, + isReRender = !1, + didScheduleRenderPhaseUpdate = !1, + localIdCounter = 0, + actionStateCounter = 0, + actionStateMatchingIndex = -1, + thenableIndexCounter = 0, + thenableState = null, + renderPhaseUpdates = null, + numberOfReRenders = 0; +function resolveCurrentlyRenderingComponent() { + if (null === currentlyRenderingComponent) + throw Error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return currentlyRenderingComponent; +} +function createHook() { + if (0 < numberOfReRenders) + throw Error("Rendered more hooks than during the previous render"); + return { memoizedState: null, queue: null, next: null }; +} +function createWorkInProgressHook() { + null === workInProgressHook + ? null === firstWorkInProgressHook + ? ((isReRender = !1), + (firstWorkInProgressHook = workInProgressHook = createHook())) + : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook)) + : null === workInProgressHook.next + ? ((isReRender = !1), + (workInProgressHook = workInProgressHook.next = createHook())) + : ((isReRender = !0), (workInProgressHook = workInProgressHook.next)); + return workInProgressHook; +} +function getThenableStateAfterSuspending() { + var state = thenableState; + thenableState = null; + return state; +} +function resetHooksState() { + currentlyRenderingKeyPath = + currentlyRenderingRequest = + currentlyRenderingTask = + currentlyRenderingComponent = + null; + didScheduleRenderPhaseUpdate = !1; + firstWorkInProgressHook = null; + numberOfReRenders = 0; + workInProgressHook = renderPhaseUpdates = null; +} +function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; +} +function useReducer(reducer, initialArg, init) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + if (isReRender) { + var queue = workInProgressHook.queue; + initialArg = queue.dispatch; + if ( + null !== renderPhaseUpdates && + ((init = renderPhaseUpdates.get(queue)), void 0 !== init) + ) { + renderPhaseUpdates.delete(queue); + queue = workInProgressHook.memoizedState; + do (queue = reducer(queue, init.action)), (init = init.next); + while (null !== init); + workInProgressHook.memoizedState = queue; + return [queue, initialArg]; + } + return [workInProgressHook.memoizedState, initialArg]; + } + reducer = + reducer === basicStateReducer + ? "function" === typeof initialArg + ? initialArg() + : initialArg + : void 0 !== init + ? init(initialArg) + : initialArg; + workInProgressHook.memoizedState = reducer; + reducer = workInProgressHook.queue = { last: null, dispatch: null }; + reducer = reducer.dispatch = dispatchAction.bind( + null, + currentlyRenderingComponent, + reducer + ); + return [workInProgressHook.memoizedState, reducer]; +} +function useMemo(nextCreate, deps) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + if (null !== workInProgressHook) { + var prevState = workInProgressHook.memoizedState; + if (null !== prevState && null !== deps) { + var prevDeps = prevState[1]; + a: if (null === prevDeps) prevDeps = !1; + else { + for (var i = 0; i < prevDeps.length && i < deps.length; i++) + if (!objectIs(deps[i], prevDeps[i])) { + prevDeps = !1; + break a; + } + prevDeps = !0; + } + if (prevDeps) return prevState[0]; + } + } + nextCreate = nextCreate(); + workInProgressHook.memoizedState = [nextCreate, deps]; + return nextCreate; +} +function dispatchAction(componentIdentity, queue, action) { + if (25 <= numberOfReRenders) + throw Error( + "Too many re-renders. React limits the number of renders to prevent an infinite loop." + ); + if (componentIdentity === currentlyRenderingComponent) + if ( + ((didScheduleRenderPhaseUpdate = !0), + (componentIdentity = { action: action, next: null }), + null === renderPhaseUpdates && (renderPhaseUpdates = new Map()), + (action = renderPhaseUpdates.get(queue)), + void 0 === action) + ) + renderPhaseUpdates.set(queue, componentIdentity); + else { + for (queue = action; null !== queue.next; ) queue = queue.next; + queue.next = componentIdentity; + } +} +function throwOnUseEffectEventCall() { + throw Error( + "A function wrapped in useEffectEvent can't be called during rendering." + ); +} +function unsupportedStartTransition() { + throw Error("startTransition cannot be called during server rendering."); +} +function unsupportedSetOptimisticState() { + throw Error("Cannot update optimistic state while rendering."); +} +function useActionState(action, initialState, permalink) { + resolveCurrentlyRenderingComponent(); + var actionStateHookIndex = actionStateCounter++, + request = currentlyRenderingRequest; + if ("function" === typeof action.$$FORM_ACTION) { + var nextPostbackStateKey = null, + componentKeyPath = currentlyRenderingKeyPath; + request = request.formState; + var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL; + if (null !== request && "function" === typeof isSignatureEqual) { + var postbackKey = request[1]; + isSignatureEqual.call(action, request[2], request[3]) && + ((nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([componentKeyPath, null, actionStateHookIndex]), + 0 + )), + postbackKey === nextPostbackStateKey && + ((actionStateMatchingIndex = actionStateHookIndex), + (initialState = request[0]))); + } + var boundAction = action.bind(null, initialState); + action = function (payload) { + boundAction(payload); + }; + "function" === typeof boundAction.$$FORM_ACTION && + (action.$$FORM_ACTION = function (prefix) { + prefix = boundAction.$$FORM_ACTION(prefix); + void 0 !== permalink && + ((permalink += ""), (prefix.action = permalink)); + var formData = prefix.data; + formData && + (null === nextPostbackStateKey && + (nextPostbackStateKey = + void 0 !== permalink + ? "p" + permalink + : "k" + + murmurhash3_32_gc( + JSON.stringify([ + componentKeyPath, + null, + actionStateHookIndex + ]), + 0 + )), + formData.append("$ACTION_KEY", nextPostbackStateKey)); + return prefix; + }); + return [initialState, action, !1]; + } + var boundAction$22 = action.bind(null, initialState); + return [ + initialState, + function (payload) { + boundAction$22(payload); + }, + !1 + ]; +} +function unwrapThenable(thenable) { + var index = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + return trackUsedThenable(thenableState, thenable, index); +} +function unsupportedRefresh() { + throw Error("Cache cannot be refreshed during server rendering."); +} +var HooksDispatcher = { + readContext: function (context) { + return context._currentValue; + }, + use: function (usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return unwrapThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue; + } + throw Error("An unsupported type was passed to use(): " + String(usable)); + }, + useContext: function (context) { + resolveCurrentlyRenderingComponent(); + return context._currentValue; + }, + useMemo: useMemo, + useReducer: useReducer, + useRef: function (initialValue) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var previousRef = workInProgressHook.memoizedState; + return null === previousRef + ? ((initialValue = { current: initialValue }), + (workInProgressHook.memoizedState = initialValue)) + : previousRef; + }, + useState: function (initialState) { + return useReducer(basicStateReducer, initialState); + }, + useInsertionEffect: noop, + useLayoutEffect: noop, + useCallback: function (callback, deps) { + return useMemo(function () { + return callback; + }, deps); + }, + useImperativeHandle: noop, + useEffect: noop, + useDebugValue: noop, + useDeferredValue: function (value, initialValue) { + resolveCurrentlyRenderingComponent(); + return void 0 !== initialValue ? initialValue : value; + }, + useTransition: function () { + resolveCurrentlyRenderingComponent(); + return [!1, unsupportedStartTransition]; + }, + useId: function () { + var JSCompiler_inline_result = currentlyRenderingTask.treeContext; + var overflow = JSCompiler_inline_result.overflow; + JSCompiler_inline_result = JSCompiler_inline_result.id; + JSCompiler_inline_result = + ( + JSCompiler_inline_result & + ~(1 << (32 - clz32(JSCompiler_inline_result) - 1)) + ).toString(32) + overflow; + var resumableState = currentResumableState; + if (null === resumableState) + throw Error( + "Invalid hook call. Hooks can only be called inside of the body of a function component." + ); + overflow = localIdCounter++; + JSCompiler_inline_result = + "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result; + 0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32)); + return JSCompiler_inline_result + "_"; + }, + useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) { + if (void 0 === getServerSnapshot) + throw Error( + "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering." + ); + return getServerSnapshot(); + }, + useOptimistic: function (passthrough) { + resolveCurrentlyRenderingComponent(); + return [passthrough, unsupportedSetOptimisticState]; + }, + useActionState: useActionState, + useFormState: useActionState, + useHostTransitionStatus: function () { + resolveCurrentlyRenderingComponent(); + return sharedNotPendingObject; + }, + useMemoCache: function (size) { + for (var data = Array(size), i = 0; i < size; i++) + data[i] = REACT_MEMO_CACHE_SENTINEL; + return data; + }, + useCacheRefresh: function () { + return unsupportedRefresh; + }, + useEffectEvent: function () { + return throwOnUseEffectEventCall; + } + }, + currentResumableState = null, + DefaultAsyncDispatcher = { + getCacheForType: function () { + throw Error("Not implemented."); + }, + cacheSignal: function () { + throw Error("Not implemented."); + } + }; +function prepareStackTrace(error, structuredStackTrace) { + error = (error.name || "Error") + ": " + (error.message || ""); + for (var i = 0; i < structuredStackTrace.length; i++) + error += "\n at " + structuredStackTrace[i].toString(); + return error; +} +var prefix, suffix; +function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + suffix = + -1 < x.stack.indexOf("\n at") + ? " (<anonymous>)" + : -1 < x.stack.indexOf("@") + ? "@unknown:0:0" + : ""; + } + return "\n" + prefix + name + suffix; +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = prepareStackTrace; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$24) { + control = x$24; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$25) { + control = x$25; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("<anonymous>") && + (frame = frame.replace("<anonymous>", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentStackByType(type) { + if ("string" === typeof type) return describeBuiltInComponentFrame(type); + if ("function" === typeof type) + return type.prototype && type.prototype.isReactComponent + ? describeNativeComponentFrame(type, !0) + : describeNativeComponentFrame(type, !1); + if ("object" === typeof type && null !== type) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeNativeComponentFrame(type.render, !1); + case REACT_MEMO_TYPE: + return describeNativeComponentFrame(type.type, !1); + case REACT_LAZY_TYPE: + var lazyComponent = type, + payload = lazyComponent._payload; + lazyComponent = lazyComponent._init; + try { + type = lazyComponent(payload); + } catch (x) { + return describeBuiltInComponentFrame("Lazy"); + } + return describeComponentStackByType(type); + } + if ("string" === typeof type.name) { + a: { + payload = type.name; + lazyComponent = type.env; + var location = type.debugLocation; + if ( + null != location && + ((type = Error.prepareStackTrace), + (Error.prepareStackTrace = prepareStackTrace), + (location = location.stack), + (Error.prepareStackTrace = type), + location.startsWith("Error: react-stack-top-frame\n") && + (location = location.slice(29)), + (type = location.indexOf("\n")), + -1 !== type && (location = location.slice(type + 1)), + (type = location.indexOf("react_stack_bottom_frame")), + -1 !== type && (type = location.lastIndexOf("\n", type)), + (type = -1 !== type ? (location = location.slice(0, type)) : ""), + (location = type.lastIndexOf("\n")), + (type = -1 === location ? type : type.slice(location + 1)), + -1 !== type.indexOf(payload)) + ) { + payload = "\n" + type; + break a; + } + payload = describeBuiltInComponentFrame( + payload + (lazyComponent ? " [" + lazyComponent + "]" : "") + ); + } + return payload; + } + } + switch (type) { + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + } + return ""; +} +function isEligibleForOutlining(request, boundary) { + return ( + (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) && + null === boundary.contentPreamble + ); +} +function defaultErrorHandler(error) { + if ( + "object" === typeof error && + null !== error && + "string" === typeof error.environmentName + ) { + var JSCompiler_inline_result = error.environmentName; + error = [error].slice(0); + "string" === typeof error[0] + ? error.splice( + 0, + 1, + "\u001b[0m\u001b[7m%c%s\u001b[0m%c " + error[0], + "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px", + " " + JSCompiler_inline_result + " ", + "" + ) + : error.splice( + 0, + 0, + "\u001b[0m\u001b[7m%c%s\u001b[0m%c", + "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px", + " " + JSCompiler_inline_result + " ", + "" + ); + error.unshift(console); + JSCompiler_inline_result = bind.apply(console.error, error); + JSCompiler_inline_result(); + } else console.error(error); + return null; +} +function RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + var abortSet = new Set(); + this.destination = null; + this.flushScheduled = !1; + this.resumableState = resumableState; + this.renderState = renderState; + this.rootFormatContext = rootFormatContext; + this.progressiveChunkSize = + void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize; + this.status = 10; + this.fatalError = null; + this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0; + this.completedPreambleSegments = this.completedRootSegment = null; + this.byteSize = 0; + this.abortableTasks = abortSet; + this.pingedTasks = []; + this.clientRenderedBoundaries = []; + this.completedBoundaries = []; + this.partialBoundaries = []; + this.trackedPostpones = null; + this.onError = void 0 === onError ? defaultErrorHandler : onError; + this.onPostpone = void 0 === onPostpone ? noop : onPostpone; + this.onAllReady = void 0 === onAllReady ? noop : onAllReady; + this.onShellReady = void 0 === onShellReady ? noop : onShellReady; + this.onShellError = void 0 === onShellError ? noop : onShellError; + this.onFatalError = void 0 === onFatalError ? noop : onFatalError; + this.formState = void 0 === formState ? null : formState; +} +function createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + resumableState = new RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState + ); + renderState = createPendingSegment( + resumableState, + 0, + null, + rootFormatContext, + !1, + !1 + ); + renderState.parentFlushed = !0; + children = createRenderTask( + resumableState, + null, + children, + -1, + null, + renderState, + null, + null, + resumableState.abortableTasks, + null, + rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + resumableState.pingedTasks.push(children); + return resumableState; +} +function createPrerenderRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + children = createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + void 0 + ); + children.trackedPostpones = { + workingMap: new Map(), + rootNodes: [], + rootSlots: null + }; + return children; +} +function resumeRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + renderState = new RequestInstance( + postponedState.resumableState, + renderState, + postponedState.rootFormatContext, + postponedState.progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + null + ); + renderState.nextSegmentId = postponedState.nextSegmentId; + if ("number" === typeof postponedState.replaySlots) + return ( + (onError = createPendingSegment( + renderState, + 0, + null, + postponedState.rootFormatContext, + !1, + !1 + )), + (onError.parentFlushed = !0), + (children = createRenderTask( + renderState, + null, + children, + -1, + null, + onError, + null, + null, + renderState.abortableTasks, + null, + postponedState.rootFormatContext, + null, + emptyTreeContext, + null, + null + )), + pushComponentStack(children), + renderState.pingedTasks.push(children), + renderState + ); + children = createReplayTask( + renderState, + null, + { + nodes: postponedState.replayNodes, + slots: postponedState.replaySlots, + pendingTasks: 0 + }, + children, + -1, + null, + null, + renderState.abortableTasks, + null, + postponedState.rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + renderState.pingedTasks.push(children); + return renderState; +} +function resumeAndPrerenderRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + children = resumeRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone + ); + children.trackedPostpones = { + workingMap: new Map(), + rootNodes: [], + rootSlots: null + }; + return children; +} +var currentRequest = null; +function resolveRequest() { + if (currentRequest) return currentRequest; + if (supportsRequestStorage) { + var store = requestStorage.getStore(); + if (store) return store; + } + return null; +} +function pingTask(request, task) { + request.pingedTasks.push(task); + 1 === request.pingedTasks.length && + ((request.flushScheduled = null !== request.destination), + null !== request.trackedPostpones || 10 === request.status + ? scheduleMicrotask(function () { + return performWork(request); + }) + : setTimeout(function () { + return performWork(request); + }, 0)); +} +function createSuspenseBoundary( + request, + row, + fallbackAbortableTasks, + contentPreamble, + fallbackPreamble +) { + fallbackAbortableTasks = { + status: 0, + rootSegmentID: -1, + parentFlushed: !1, + pendingTasks: 0, + row: row, + completedSegments: [], + byteSize: 0, + fallbackAbortableTasks: fallbackAbortableTasks, + errorDigest: null, + contentState: createHoistableState(), + fallbackState: createHoistableState(), + contentPreamble: contentPreamble, + fallbackPreamble: fallbackPreamble, + trackedContentKeyPath: null, + trackedFallbackNode: null + }; + null !== row && + (row.pendingTasks++, + (contentPreamble = row.boundaries), + null !== contentPreamble && + (request.allPendingTasks++, + fallbackAbortableTasks.pendingTasks++, + contentPreamble.push(fallbackAbortableTasks)), + (request = row.inheritedHoistables), + null !== request && + hoistHoistables(fallbackAbortableTasks.contentState, request)); + return fallbackAbortableTasks; +} +function createRenderTask( + request, + thenableState, + node, + childIndex, + blockedBoundary, + blockedSegment, + blockedPreamble, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + var task = { + replay: null, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: blockedSegment, + blockedPreamble: blockedPreamble, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createReplayTask( + request, + thenableState, + replay, + node, + childIndex, + blockedBoundary, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + replay.pendingTasks++; + var task = { + replay: replay, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: null, + blockedPreamble: null, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createPendingSegment( + request, + index, + boundary, + parentFormatContext, + lastPushedText, + textEmbedded +) { + return { + status: 0, + parentFlushed: !1, + id: -1, + index: index, + chunks: [], + children: [], + preambleChildren: [], + parentFormatContext: parentFormatContext, + boundary: boundary, + lastPushedText: lastPushedText, + textEmbedded: textEmbedded + }; +} +function pushComponentStack(task) { + var node = task.node; + if ("object" === typeof node && null !== node) + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + task.componentStack = { parent: task.componentStack, type: node.type }; + } +} +function replaceSuspenseComponentStackWithSuspenseFallbackStack( + componentStack +) { + return null === componentStack + ? null + : { parent: componentStack.parent, type: "Suspense Fallback" }; +} +function getThrownInfo(node$jscomp$0) { + var errorInfo = {}; + node$jscomp$0 && + Object.defineProperty(errorInfo, "componentStack", { + configurable: !0, + enumerable: !0, + get: function () { + try { + var info = "", + node = node$jscomp$0; + do + (info += describeComponentStackByType(node.type)), + (node = node.parent); + while (node); + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = + "\nError generating stack: " + x.message + "\n" + x.stack; + } + Object.defineProperty(errorInfo, "componentStack", { + value: JSCompiler_inline_result + }); + return JSCompiler_inline_result; + } + }); + return errorInfo; +} +function logRecoverableError(request, error, errorInfo) { + request = request.onError; + error = request(error, errorInfo); + if (null == error || "string" === typeof error) return error; +} +function fatalError(request, error) { + var onShellError = request.onShellError, + onFatalError = request.onFatalError; + onShellError(error); + onFatalError(error); + null !== request.destination + ? ((request.status = 14), closeWithError(request.destination, error)) + : ((request.status = 13), (request.fatalError = error)); +} +function finishSuspenseListRow(request, row) { + unblockSuspenseListRow(request, row.next, row.hoistables); +} +function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) { + for (; null !== unblockedRow; ) { + null !== inheritedHoistables && + (hoistHoistables(unblockedRow.hoistables, inheritedHoistables), + (unblockedRow.inheritedHoistables = inheritedHoistables)); + var unblockedBoundaries = unblockedRow.boundaries; + if (null !== unblockedBoundaries) { + unblockedRow.boundaries = null; + for (var i = 0; i < unblockedBoundaries.length; i++) { + var unblockedBoundary = unblockedBoundaries[i]; + null !== inheritedHoistables && + hoistHoistables(unblockedBoundary.contentState, inheritedHoistables); + finishedTask(request, unblockedBoundary, null, null); + } + } + unblockedRow.pendingTasks--; + if (0 < unblockedRow.pendingTasks) break; + inheritedHoistables = unblockedRow.hoistables; + unblockedRow = unblockedRow.next; + } +} +function tryToResolveTogetherRow(request, togetherRow) { + var boundaries = togetherRow.boundaries; + if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) { + for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) { + var rowBoundary = boundaries[i]; + if ( + 1 !== rowBoundary.pendingTasks || + rowBoundary.parentFlushed || + isEligibleForOutlining(request, rowBoundary) + ) { + allCompleteAndInlinable = !1; + break; + } + } + allCompleteAndInlinable && + unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables); + } +} +function createSuspenseListRow(previousRow) { + var newRow = { + pendingTasks: 1, + boundaries: null, + hoistables: createHoistableState(), + inheritedHoistables: null, + together: !1, + next: null + }; + null !== previousRow && + 0 < previousRow.pendingTasks && + (newRow.pendingTasks++, + (newRow.boundaries = []), + (previousRow.next = newRow)); + return newRow; +} +function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) { + var prevKeyPath = task.keyPath, + prevTreeContext = task.treeContext, + prevRow = task.row; + task.keyPath = keyPath; + keyPath = rows.length; + var previousSuspenseListRow = null; + if (null !== task.replay) { + var resumeSlots = task.replay.slots; + if (null !== resumeSlots && "object" === typeof resumeSlots) + for (var n = 0; n < keyPath; n++) { + var i = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? n + : keyPath - 1 - n, + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + var resumeSegmentID = resumeSlots[i]; + "number" === typeof resumeSegmentID + ? (resumeNode(request, task, resumeSegmentID, node, i), + delete resumeSlots[i]) + : renderNode(request, task, node, i); + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } + else + for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++) + (n = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? resumeSlots + : keyPath - 1 - resumeSlots), + (i = rows[n]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)), + renderNode(request, task, i, n), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } else if ( + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ) + for (revealOrder = 0; revealOrder < keyPath; revealOrder++) + (resumeSlots = rows[revealOrder]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext( + prevTreeContext, + keyPath, + revealOrder + )), + renderNode(request, task, resumeSlots, revealOrder), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + else { + revealOrder = task.blockedSegment; + resumeSlots = revealOrder.children.length; + n = revealOrder.chunks.length; + for (i = keyPath - 1; 0 <= i; i--) { + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + resumeSegmentID = createPendingSegment( + request, + n, + null, + task.formatContext, + 0 === i ? revealOrder.lastPushedText : !0, + !0 + ); + revealOrder.children.splice(resumeSlots, 0, resumeSegmentID); + task.blockedSegment = resumeSegmentID; + try { + renderNode(request, task, node, i), + resumeSegmentID.lastPushedText && + resumeSegmentID.textEmbedded && + resumeSegmentID.chunks.push(textSeparator), + (resumeSegmentID.status = 1), + finishedSegment(request, task.blockedBoundary, resumeSegmentID), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } catch (thrownValue) { + throw ( + ((resumeSegmentID.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } + } + task.blockedSegment = revealOrder; + revealOrder.lastPushedText = !1; + } + null !== prevRow && + null !== previousSuspenseListRow && + 0 < previousSuspenseListRow.pendingTasks && + (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow)); + task.treeContext = prevTreeContext; + task.row = prevRow; + task.keyPath = prevKeyPath; +} +function renderWithHooks(request, task, keyPath, Component, props, secondArg) { + var prevThenableState = task.thenableState; + task.thenableState = null; + currentlyRenderingComponent = {}; + currentlyRenderingTask = task; + currentlyRenderingRequest = request; + currentlyRenderingKeyPath = keyPath; + actionStateCounter = localIdCounter = 0; + actionStateMatchingIndex = -1; + thenableIndexCounter = 0; + thenableState = prevThenableState; + for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; ) + (didScheduleRenderPhaseUpdate = !1), + (actionStateCounter = localIdCounter = 0), + (actionStateMatchingIndex = -1), + (thenableIndexCounter = 0), + (numberOfReRenders += 1), + (workInProgressHook = null), + (request = Component(props, secondArg)); + resetHooksState(); + return request; +} +function finishFunctionComponent( + request, + task, + keyPath, + children, + hasId, + actionStateCount, + actionStateMatchingIndex +) { + var didEmitActionStateMarkers = !1; + if (0 !== actionStateCount && null !== request.formState) { + var segment = task.blockedSegment; + if (null !== segment) { + didEmitActionStateMarkers = !0; + segment = segment.chunks; + for (var i = 0; i < actionStateCount; i++) + i === actionStateMatchingIndex + ? segment.push(formStateMarkerIsMatching) + : segment.push(formStateMarkerIsNotMatching); + } + } + actionStateCount = task.keyPath; + task.keyPath = keyPath; + hasId + ? ((keyPath = task.treeContext), + (task.treeContext = pushTreeContext(keyPath, 1, 0)), + renderNode(request, task, children, -1), + (task.treeContext = keyPath)) + : didEmitActionStateMarkers + ? renderNode(request, task, children, -1) + : renderNodeDestructive(request, task, children, -1); + task.keyPath = actionStateCount; +} +function renderElement(request, task, keyPath, type, props, ref) { + if ("function" === typeof type) + if (type.prototype && type.prototype.isReactComponent) { + var newProps = props; + if ("ref" in props) { + newProps = {}; + for (var propName in props) + "ref" !== propName && (newProps[propName] = props[propName]); + } + var defaultProps = type.defaultProps; + if (defaultProps) { + newProps === props && (newProps = assign({}, newProps, props)); + for (var propName$44 in defaultProps) + void 0 === newProps[propName$44] && + (newProps[propName$44] = defaultProps[propName$44]); + } + props = newProps; + newProps = emptyContextObject; + defaultProps = type.contextType; + "object" === typeof defaultProps && + null !== defaultProps && + (newProps = defaultProps._currentValue); + newProps = new type(props, newProps); + var initialState = void 0 !== newProps.state ? newProps.state : null; + newProps.updater = classComponentUpdater; + newProps.props = props; + newProps.state = initialState; + defaultProps = { queue: [], replace: !1 }; + newProps._reactInternals = defaultProps; + ref = type.contextType; + newProps.context = + "object" === typeof ref && null !== ref + ? ref._currentValue + : emptyContextObject; + ref = type.getDerivedStateFromProps; + "function" === typeof ref && + ((ref = ref(props, initialState)), + (initialState = + null === ref || void 0 === ref + ? initialState + : assign({}, initialState, ref)), + (newProps.state = initialState)); + if ( + "function" !== typeof type.getDerivedStateFromProps && + "function" !== typeof newProps.getSnapshotBeforeUpdate && + ("function" === typeof newProps.UNSAFE_componentWillMount || + "function" === typeof newProps.componentWillMount) + ) + if ( + ((type = newProps.state), + "function" === typeof newProps.componentWillMount && + newProps.componentWillMount(), + "function" === typeof newProps.UNSAFE_componentWillMount && + newProps.UNSAFE_componentWillMount(), + type !== newProps.state && + classComponentUpdater.enqueueReplaceState( + newProps, + newProps.state, + null + ), + null !== defaultProps.queue && 0 < defaultProps.queue.length) + ) + if ( + ((type = defaultProps.queue), + (ref = defaultProps.replace), + (defaultProps.queue = null), + (defaultProps.replace = !1), + ref && 1 === type.length) + ) + newProps.state = type[0]; + else { + defaultProps = ref ? type[0] : newProps.state; + initialState = !0; + for (ref = ref ? 1 : 0; ref < type.length; ref++) + (propName$44 = type[ref]), + (propName$44 = + "function" === typeof propName$44 + ? propName$44.call(newProps, defaultProps, props, void 0) + : propName$44), + null != propName$44 && + (initialState + ? ((initialState = !1), + (defaultProps = assign({}, defaultProps, propName$44))) + : assign(defaultProps, propName$44)); + newProps.state = defaultProps; + } + else defaultProps.queue = null; + type = newProps.render(); + if (12 === request.status) throw null; + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + } else { + type = renderWithHooks(request, task, keyPath, type, props, void 0); + if (12 === request.status) throw null; + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + } + else if ("string" === typeof type) + if (((newProps = task.blockedSegment), null === newProps)) + (newProps = props.children), + (defaultProps = task.formatContext), + (initialState = task.keyPath), + (task.formatContext = getChildFormatContext(defaultProps, type, props)), + (task.keyPath = keyPath), + renderNode(request, task, newProps, -1), + (task.formatContext = defaultProps), + (task.keyPath = initialState); + else { + initialState = pushStartInstance( + newProps.chunks, + type, + props, + request.resumableState, + request.renderState, + task.blockedPreamble, + task.hoistableState, + task.formatContext, + newProps.lastPushedText + ); + newProps.lastPushedText = !1; + defaultProps = task.formatContext; + ref = task.keyPath; + task.keyPath = keyPath; + if ( + 3 === + (task.formatContext = getChildFormatContext(defaultProps, type, props)) + .insertionMode + ) { + keyPath = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + newProps.preambleChildren.push(keyPath); + task.blockedSegment = keyPath; + try { + (keyPath.status = 6), + renderNode(request, task, initialState, -1), + keyPath.lastPushedText && + keyPath.textEmbedded && + keyPath.chunks.push(textSeparator), + (keyPath.status = 1), + finishedSegment(request, task.blockedBoundary, keyPath); + } finally { + task.blockedSegment = newProps; + } + } else renderNode(request, task, initialState, -1); + task.formatContext = defaultProps; + task.keyPath = ref; + a: { + task = newProps.chunks; + request = request.resumableState; + switch (type) { + case "title": + case "style": + case "script": + case "area": + case "base": + case "br": + case "col": + case "embed": + case "hr": + case "img": + case "input": + case "keygen": + case "link": + case "meta": + case "param": + case "source": + case "track": + case "wbr": + break a; + case "body": + if (1 >= defaultProps.insertionMode) { + request.hasBody = !0; + break a; + } + break; + case "html": + if (0 === defaultProps.insertionMode) { + request.hasHtml = !0; + break a; + } + break; + case "head": + if (1 >= defaultProps.insertionMode) break a; + } + task.push(endChunkForTag(type)); + } + newProps.lastPushedText = !1; + } + else { + switch (type) { + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_PROFILER_TYPE: + case REACT_FRAGMENT_TYPE: + type = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, props.children, -1); + task.keyPath = type; + return; + case REACT_ACTIVITY_TYPE: + type = task.blockedSegment; + null === type + ? "hidden" !== props.mode && + ((type = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = type)) + : "hidden" !== props.mode && + (type.chunks.push(startActivityBoundary), + (type.lastPushedText = !1), + (newProps = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = newProps), + type.chunks.push(endActivityBoundary), + (type.lastPushedText = !1)); + return; + case REACT_SUSPENSE_LIST_TYPE: + a: { + type = props.children; + props = props.revealOrder; + if ( + "forwards" === props || + "backwards" === props || + "unstable_legacy-backwards" === props + ) { + if (isArrayImpl(type)) { + renderSuspenseListRows(request, task, keyPath, type, props); + break a; + } + if ((newProps = getIteratorFn(type))) + if ((newProps = newProps.call(type))) { + defaultProps = newProps.next(); + if (!defaultProps.done) { + do defaultProps = newProps.next(); + while (!defaultProps.done); + renderSuspenseListRows(request, task, keyPath, type, props); + } + break a; + } + } + "together" === props + ? ((props = task.keyPath), + (newProps = task.row), + (defaultProps = task.row = createSuspenseListRow(null)), + (defaultProps.boundaries = []), + (defaultProps.together = !0), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + 0 === --defaultProps.pendingTasks && + finishSuspenseListRow(request, defaultProps), + (task.keyPath = props), + (task.row = newProps), + null !== newProps && + 0 < defaultProps.pendingTasks && + (newProps.pendingTasks++, (defaultProps.next = newProps))) + : ((props = task.keyPath), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + (task.keyPath = props)); + } + return; + case REACT_VIEW_TRANSITION_TYPE: + case REACT_SCOPE_TYPE: + throw Error("ReactDOMServer does not yet support scope components."); + case REACT_SUSPENSE_TYPE: + a: if (null !== task.replay) { + type = task.keyPath; + newProps = task.formatContext; + defaultProps = task.row; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + newProps + ); + task.row = null; + keyPath = props.children; + try { + renderNode(request, task, keyPath, -1); + } finally { + (task.keyPath = type), + (task.formatContext = newProps), + (task.row = defaultProps); + } + } else { + type = task.keyPath; + ref = task.formatContext; + var prevRow = task.row; + propName$44 = task.blockedBoundary; + propName = task.blockedPreamble; + var parentHoistableState = task.hoistableState, + parentSegment = task.blockedSegment, + fallback = props.fallback; + props = props.children; + var fallbackAbortSet = new Set(); + var newBoundary = + 2 > task.formatContext.insertionMode + ? createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + createPreambleState(), + createPreambleState() + ) + : createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + null !== request.trackedPostpones && + (newBoundary.trackedContentKeyPath = keyPath); + var boundarySegment = createPendingSegment( + request, + parentSegment.chunks.length, + newBoundary, + task.formatContext, + !1, + !1 + ); + parentSegment.children.push(boundarySegment); + parentSegment.lastPushedText = !1; + var contentRootSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + contentRootSegment.parentFlushed = !0; + if (null !== request.trackedPostpones) { + newProps = task.componentStack; + defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]]; + initialState = [defaultProps[1], defaultProps[2], [], null]; + request.trackedPostpones.workingMap.set(defaultProps, initialState); + newBoundary.trackedFallbackNode = initialState; + task.blockedSegment = boundarySegment; + task.blockedPreamble = newBoundary.fallbackPreamble; + task.keyPath = defaultProps; + task.formatContext = getSuspenseFallbackFormatContext( + request.resumableState, + ref + ); + task.componentStack = + replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps); + boundarySegment.status = 6; + try { + renderNode(request, task, fallback, -1), + boundarySegment.lastPushedText && + boundarySegment.textEmbedded && + boundarySegment.chunks.push(textSeparator), + (boundarySegment.status = 1), + finishedSegment(request, propName$44, boundarySegment); + } catch (thrownValue) { + throw ( + ((boundarySegment.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } finally { + (task.blockedSegment = parentSegment), + (task.blockedPreamble = propName), + (task.keyPath = type), + (task.formatContext = ref); + } + task = createRenderTask( + request, + null, + props, + -1, + newBoundary, + contentRootSegment, + newBoundary.contentPreamble, + newBoundary.contentState, + task.abortSet, + keyPath, + getSuspenseContentFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + null, + newProps + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } else { + task.blockedBoundary = newBoundary; + task.blockedPreamble = newBoundary.contentPreamble; + task.hoistableState = newBoundary.contentState; + task.blockedSegment = contentRootSegment; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + ref + ); + task.row = null; + contentRootSegment.status = 6; + try { + if ( + (renderNode(request, task, props, -1), + contentRootSegment.lastPushedText && + contentRootSegment.textEmbedded && + contentRootSegment.chunks.push(textSeparator), + (contentRootSegment.status = 1), + finishedSegment(request, newBoundary, contentRootSegment), + queueCompletedSegment(newBoundary, contentRootSegment), + 0 === newBoundary.pendingTasks && 0 === newBoundary.status) + ) { + if ( + ((newBoundary.status = 1), + !isEligibleForOutlining(request, newBoundary)) + ) { + null !== prevRow && + 0 === --prevRow.pendingTasks && + finishSuspenseListRow(request, prevRow); + 0 === request.pendingRootTasks && + task.blockedPreamble && + preparePreamble(request); + break a; + } + } else + null !== prevRow && + prevRow.together && + tryToResolveTogetherRow(request, prevRow); + } catch (thrownValue$31) { + (newBoundary.status = 4), + 12 === request.status + ? ((contentRootSegment.status = 3), + (newProps = request.fatalError)) + : ((contentRootSegment.status = 4), + (newProps = thrownValue$31)), + (defaultProps = getThrownInfo(task.componentStack)), + (initialState = logRecoverableError( + request, + newProps, + defaultProps + )), + (newBoundary.errorDigest = initialState), + untrackBoundary(request, newBoundary); + } finally { + (task.blockedBoundary = propName$44), + (task.blockedPreamble = propName), + (task.hoistableState = parentHoistableState), + (task.blockedSegment = parentSegment), + (task.keyPath = type), + (task.formatContext = ref), + (task.row = prevRow); + } + task = createRenderTask( + request, + null, + fallback, + -1, + propName$44, + boundarySegment, + newBoundary.fallbackPreamble, + newBoundary.fallbackState, + fallbackAbortSet, + [keyPath[0], "Suspense Fallback", keyPath[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } + } + return; + } + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + if ("ref" in props) + for (parentSegment in ((newProps = {}), props)) + "ref" !== parentSegment && + (newProps[parentSegment] = props[parentSegment]); + else newProps = props; + type = renderWithHooks( + request, + task, + keyPath, + type.render, + newProps, + ref + ); + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + return; + case REACT_MEMO_TYPE: + renderElement(request, task, keyPath, type.type, props, ref); + return; + case REACT_CONTEXT_TYPE: + defaultProps = props.children; + newProps = task.keyPath; + props = props.value; + initialState = type._currentValue; + type._currentValue = props; + ref = currentActiveSnapshot; + currentActiveSnapshot = type = { + parent: ref, + depth: null === ref ? 0 : ref.depth + 1, + context: type, + parentValue: initialState, + value: props + }; + task.context = type; + task.keyPath = keyPath; + renderNodeDestructive(request, task, defaultProps, -1); + request = currentActiveSnapshot; + if (null === request) + throw Error( + "Tried to pop a Context at the root of the app. This is a bug in React." + ); + request.context._currentValue = request.parentValue; + request = currentActiveSnapshot = request.parent; + task.context = request; + task.keyPath = newProps; + return; + case REACT_CONSUMER_TYPE: + props = props.children; + type = props(type._context._currentValue); + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + return; + case REACT_LAZY_TYPE: + newProps = type._init; + type = newProps(type._payload); + if (12 === request.status) throw null; + renderElement(request, task, keyPath, type, props, ref); + return; + } + throw Error( + "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + + ((null == type ? type : typeof type) + ".") + ); + } +} +function resumeNode(request, task, segmentId, node, childIndex) { + var prevReplay = task.replay, + blockedBoundary = task.blockedBoundary, + resumedSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + resumedSegment.id = segmentId; + resumedSegment.parentFlushed = !0; + try { + (task.replay = null), + (task.blockedSegment = resumedSegment), + renderNode(request, task, node, childIndex), + (resumedSegment.status = 1), + finishedSegment(request, blockedBoundary, resumedSegment), + null === blockedBoundary + ? (request.completedRootSegment = resumedSegment) + : (queueCompletedSegment(blockedBoundary, resumedSegment), + blockedBoundary.parentFlushed && + request.partialBoundaries.push(blockedBoundary)); + } finally { + (task.replay = prevReplay), (task.blockedSegment = null); + } +} +function renderNodeDestructive(request, task, node, childIndex) { + null !== task.replay && "number" === typeof task.replay.slots + ? resumeNode(request, task, task.replay.slots, node, childIndex) + : ((task.node = node), + (task.childIndex = childIndex), + (node = task.componentStack), + pushComponentStack(task), + retryNode(request, task), + (task.componentStack = node)); +} +function retryNode(request, task) { + var node = task.node, + childIndex = task.childIndex; + if (null !== node) { + if ("object" === typeof node) { + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + var type = node.type, + key = node.key, + props = node.props; + node = props.ref; + var ref = void 0 !== node ? node : null, + name = getComponentNameFromType(type), + keyOrIndex = + null == key ? (-1 === childIndex ? 0 : childIndex) : key; + key = [task.keyPath, name, keyOrIndex]; + if (null !== task.replay) + a: { + var replay = task.replay; + childIndex = replay.nodes; + for (node = 0; node < childIndex.length; node++) { + var node$jscomp$0 = childIndex[node]; + if (keyOrIndex === node$jscomp$0[1]) { + if (4 === node$jscomp$0.length) { + if (null !== name && name !== node$jscomp$0[0]) + throw Error( + "Expected the resume to render <" + + node$jscomp$0[0] + + "> in this slot but instead it rendered <" + + name + + ">. The tree doesn't match so React will fallback to client rendering." + ); + var childNodes = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = task.node; + task.replay = { + nodes: childNodes, + slots: name, + pendingTasks: 1 + }; + try { + renderElement(request, task, key, type, props, ref); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || + "function" === typeof x.then) + ) + throw ( + (task.node === keyOrIndex + ? (task.replay = replay) + : childIndex.splice(node, 1), + x) + ); + task.replay.pendingTasks--; + props = getThrownInfo(task.componentStack); + key = request; + request = task.blockedBoundary; + type = x; + props = logRecoverableError(key, type, props); + abortRemainingReplayNodes( + key, + request, + childNodes, + name, + type, + props + ); + } + task.replay = replay; + } else { + if (type !== REACT_SUSPENSE_TYPE) + throw Error( + "Expected the resume to render <Suspense> in this slot but instead it rendered <" + + (getComponentNameFromType(type) || "Unknown") + + ">. The tree doesn't match so React will fallback to client rendering." + ); + b: { + replay = void 0; + type = node$jscomp$0[5]; + ref = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = + null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2]; + node$jscomp$0 = + null === node$jscomp$0[4] ? null : node$jscomp$0[4][3]; + var prevKeyPath = task.keyPath, + prevContext = task.formatContext, + prevRow = task.row, + previousReplaySet = task.replay, + parentBoundary = task.blockedBoundary, + parentHoistableState = task.hoistableState, + content = props.children, + fallback = props.fallback, + fallbackAbortSet = new Set(); + props = + 2 > task.formatContext.insertionMode + ? createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + createPreambleState(), + createPreambleState() + ) + : createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + props.parentFlushed = !0; + props.rootSegmentID = type; + task.blockedBoundary = props; + task.hoistableState = props.contentState; + task.keyPath = key; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + prevContext + ); + task.row = null; + task.replay = { + nodes: ref, + slots: name, + pendingTasks: 1 + }; + try { + renderNode(request, task, content, -1); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + if (0 === props.pendingTasks && 0 === props.status) { + props.status = 1; + request.completedBoundaries.push(props); + break b; + } + } catch (error) { + (props.status = 4), + (childNodes = getThrownInfo(task.componentStack)), + (replay = logRecoverableError( + request, + error, + childNodes + )), + (props.errorDigest = replay), + task.replay.pendingTasks--, + request.clientRenderedBoundaries.push(props); + } finally { + (task.blockedBoundary = parentBoundary), + (task.hoistableState = parentHoistableState), + (task.replay = previousReplaySet), + (task.keyPath = prevKeyPath), + (task.formatContext = prevContext), + (task.row = prevRow); + } + childNodes = createReplayTask( + request, + null, + { + nodes: keyOrIndex, + slots: node$jscomp$0, + pendingTasks: 0 + }, + fallback, + -1, + parentBoundary, + props.fallbackState, + fallbackAbortSet, + [key[0], "Suspense Fallback", key[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(childNodes); + request.pingedTasks.push(childNodes); + } + } + childIndex.splice(node, 1); + break a; + } + } + } + else renderElement(request, task, key, type, props, ref); + return; + case REACT_PORTAL_TYPE: + throw Error( + "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render." + ); + case REACT_LAZY_TYPE: + childNodes = node._init; + node = childNodes(node._payload); + if (12 === request.status) throw null; + renderNodeDestructive(request, task, node, childIndex); + return; + } + if (isArrayImpl(node)) { + renderChildrenArray(request, task, node, childIndex); + return; + } + if ((childNodes = getIteratorFn(node))) + if ((childNodes = childNodes.call(node))) { + node = childNodes.next(); + if (!node.done) { + props = []; + do props.push(node.value), (node = childNodes.next()); + while (!node.done); + renderChildrenArray(request, task, props, childIndex); + } + return; + } + if ("function" === typeof node.then) + return ( + (task.thenableState = null), + renderNodeDestructive(request, task, unwrapThenable(node), childIndex) + ); + if (node.$$typeof === REACT_CONTEXT_TYPE) + return renderNodeDestructive( + request, + task, + node._currentValue, + childIndex + ); + childIndex = Object.prototype.toString.call(node); + throw Error( + "Objects are not valid as a React child (found: " + + ("[object Object]" === childIndex + ? "object with keys {" + Object.keys(node).join(", ") + "}" + : childIndex) + + "). If you meant to render a collection of children, use an array instead." + ); + } + if ("string" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + node, + request.renderState, + childIndex.lastPushedText + )); + else if ("number" === typeof node || "bigint" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + "" + node, + request.renderState, + childIndex.lastPushedText + )); + } +} +function renderChildrenArray(request, task, children, childIndex) { + var prevKeyPath = task.keyPath; + if ( + -1 !== childIndex && + ((task.keyPath = [task.keyPath, "Fragment", childIndex]), + null !== task.replay) + ) { + for ( + var replay = task.replay, replayNodes = replay.nodes, j = 0; + j < replayNodes.length; + j++ + ) { + var node = replayNodes[j]; + if (node[1] === childIndex) { + childIndex = node[2]; + node = node[3]; + task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 }; + try { + renderChildrenArray(request, task, children, -1); + if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || "function" === typeof x.then) + ) + throw x; + task.replay.pendingTasks--; + children = getThrownInfo(task.componentStack); + var boundary = task.blockedBoundary, + error = x; + children = logRecoverableError(request, error, children); + abortRemainingReplayNodes( + request, + boundary, + childIndex, + node, + error, + children + ); + } + task.replay = replay; + replayNodes.splice(j, 1); + break; + } + } + task.keyPath = prevKeyPath; + return; + } + replay = task.treeContext; + replayNodes = children.length; + if ( + null !== task.replay && + ((j = task.replay.slots), null !== j && "object" === typeof j) + ) { + for (childIndex = 0; childIndex < replayNodes; childIndex++) + (node = children[childIndex]), + (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)), + (boundary = j[childIndex]), + "number" === typeof boundary + ? (resumeNode(request, task, boundary, node, childIndex), + delete j[childIndex]) + : renderNode(request, task, node, childIndex); + task.treeContext = replay; + task.keyPath = prevKeyPath; + return; + } + for (j = 0; j < replayNodes; j++) + (childIndex = children[j]), + (task.treeContext = pushTreeContext(replay, replayNodes, j)), + renderNode(request, task, childIndex, j); + task.treeContext = replay; + task.keyPath = prevKeyPath; +} +function trackPostponedBoundary(request, trackedPostpones, boundary) { + boundary.status = 5; + boundary.rootSegmentID = request.nextSegmentId++; + request = boundary.trackedContentKeyPath; + if (null === request) + throw Error( + "It should not be possible to postpone at the root. This is a bug in React." + ); + var fallbackReplayNode = boundary.trackedFallbackNode, + children = [], + boundaryNode = trackedPostpones.workingMap.get(request); + if (void 0 === boundaryNode) + return ( + (boundary = [ + request[1], + request[2], + children, + null, + fallbackReplayNode, + boundary.rootSegmentID + ]), + trackedPostpones.workingMap.set(request, boundary), + addToReplayParent(boundary, request[0], trackedPostpones), + boundary + ); + boundaryNode[4] = fallbackReplayNode; + boundaryNode[5] = boundary.rootSegmentID; + return boundaryNode; +} +function trackPostpone(request, trackedPostpones, task, segment) { + segment.status = 5; + var keyPath = task.keyPath, + boundary = task.blockedBoundary; + if (null === boundary) + (segment.id = request.nextSegmentId++), + (trackedPostpones.rootSlots = segment.id), + null !== request.completedRootSegment && + (request.completedRootSegment.status = 5); + else { + if (null !== boundary && 0 === boundary.status) { + var boundaryNode = trackPostponedBoundary( + request, + trackedPostpones, + boundary + ); + if ( + boundary.trackedContentKeyPath === keyPath && + -1 === task.childIndex + ) { + -1 === segment.id && + (segment.id = segment.parentFlushed + ? boundary.rootSegmentID + : request.nextSegmentId++); + boundaryNode[3] = segment.id; + return; + } + } + -1 === segment.id && + (segment.id = + segment.parentFlushed && null !== boundary + ? boundary.rootSegmentID + : request.nextSegmentId++); + if (-1 === task.childIndex) + null === keyPath + ? (trackedPostpones.rootSlots = segment.id) + : ((task = trackedPostpones.workingMap.get(keyPath)), + void 0 === task + ? ((task = [keyPath[1], keyPath[2], [], segment.id]), + addToReplayParent(task, keyPath[0], trackedPostpones)) + : (task[3] = segment.id)); + else { + if (null === keyPath) + if (((request = trackedPostpones.rootSlots), null === request)) + request = trackedPostpones.rootSlots = {}; + else { + if ("number" === typeof request) + throw Error( + "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React." + ); + } + else if ( + ((boundary = trackedPostpones.workingMap), + (boundaryNode = boundary.get(keyPath)), + void 0 === boundaryNode) + ) + (request = {}), + (boundaryNode = [keyPath[1], keyPath[2], [], request]), + boundary.set(keyPath, boundaryNode), + addToReplayParent(boundaryNode, keyPath[0], trackedPostpones); + else if (((request = boundaryNode[3]), null === request)) + request = boundaryNode[3] = {}; + else if ("number" === typeof request) + throw Error( + "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React." + ); + request[task.childIndex] = segment.id; + } + } +} +function untrackBoundary(request, boundary) { + request = request.trackedPostpones; + null !== request && + ((boundary = boundary.trackedContentKeyPath), + null !== boundary && + ((boundary = request.workingMap.get(boundary)), + void 0 !== boundary && + ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null)))); +} +function spawnNewSuspendedReplayTask(request, task, thenableState) { + return createReplayTask( + request, + thenableState, + task.replay, + task.node, + task.childIndex, + task.blockedBoundary, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function spawnNewSuspendedRenderTask(request, task, thenableState) { + var segment = task.blockedSegment, + newSegment = createPendingSegment( + request, + segment.chunks.length, + null, + task.formatContext, + segment.lastPushedText, + !0 + ); + segment.children.push(newSegment); + segment.lastPushedText = !1; + return createRenderTask( + request, + thenableState, + task.node, + task.childIndex, + task.blockedBoundary, + newSegment, + task.blockedPreamble, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function renderNode(request, task, node, childIndex) { + var previousFormatContext = task.formatContext, + previousContext = task.context, + previousKeyPath = task.keyPath, + previousTreeContext = task.treeContext, + previousComponentStack = task.componentStack, + segment = task.blockedSegment; + if (null === segment) { + segment = task.replay; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue) { + if ( + (resetHooksState(), + (node = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + childIndex = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedReplayTask(request, task, childIndex).ping; + node.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + node = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + node = spawnNewSuspendedReplayTask(request, task, node); + request.pingedTasks.push(node); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + } + } + } else { + var childrenLength = segment.children.length, + chunkLength = segment.chunks.length; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue$63) { + if ( + (resetHooksState(), + (segment.children.length = childrenLength), + (segment.chunks.length = chunkLength), + (node = + thrownValue$63 === SuspenseException + ? getSuspendedThenable() + : thrownValue$63), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + segment = node; + node = + thrownValue$63 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedRenderTask(request, task, node).ping; + segment.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + segment = + thrownValue$63 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + segment = spawnNewSuspendedRenderTask(request, task, segment); + request.pingedTasks.push(segment); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + } + } + } + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + switchContext(previousContext); + throw node; +} +function abortTaskSoft(task) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + null !== segment && + ((segment.status = 3), finishedTask(this, boundary, task.row, segment)); +} +function abortRemainingReplayNodes( + request$jscomp$0, + boundary, + nodes, + slots, + error, + errorDigest$jscomp$0 +) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (4 === node.length) + abortRemainingReplayNodes( + request$jscomp$0, + boundary, + node[2], + node[3], + error, + errorDigest$jscomp$0 + ); + else { + node = node[5]; + var request = request$jscomp$0, + errorDigest = errorDigest$jscomp$0, + resumedBoundary = createSuspenseBoundary( + request, + null, + new Set(), + null, + null + ); + resumedBoundary.parentFlushed = !0; + resumedBoundary.rootSegmentID = node; + resumedBoundary.status = 4; + resumedBoundary.errorDigest = errorDigest; + resumedBoundary.parentFlushed && + request.clientRenderedBoundaries.push(resumedBoundary); + } + } + nodes.length = 0; + if (null !== slots) { + if (null === boundary) + throw Error( + "We should not have any resumable nodes in the shell. This is a bug in React." + ); + 4 !== boundary.status && + ((boundary.status = 4), + (boundary.errorDigest = errorDigest$jscomp$0), + boundary.parentFlushed && + request$jscomp$0.clientRenderedBoundaries.push(boundary)); + if ("object" === typeof slots) for (var index in slots) delete slots[index]; + } +} +function abortTask(task, request, error) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + if (null !== segment) { + if (6 === segment.status) return; + segment.status = 3; + } + var errorInfo = getThrownInfo(task.componentStack); + if (null === boundary) { + if (13 !== request.status && 14 !== request.status) { + boundary = task.replay; + if (null === boundary) { + null !== request.trackedPostpones && null !== segment + ? ((boundary = request.trackedPostpones), + logRecoverableError(request, error, errorInfo), + trackPostpone(request, boundary, task, segment), + finishedTask(request, null, task.row, segment)) + : (logRecoverableError(request, error, errorInfo), + fatalError(request, error)); + return; + } + boundary.pendingTasks--; + 0 === boundary.pendingTasks && + 0 < boundary.nodes.length && + ((segment = logRecoverableError(request, error, errorInfo)), + abortRemainingReplayNodes( + request, + null, + boundary.nodes, + boundary.slots, + error, + segment + )); + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } + } else { + var trackedPostpones$64 = request.trackedPostpones; + if (4 !== boundary.status) { + if (null !== trackedPostpones$64 && null !== segment) + return ( + logRecoverableError(request, error, errorInfo), + trackPostpone(request, trackedPostpones$64, task, segment), + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }), + boundary.fallbackAbortableTasks.clear(), + finishedTask(request, boundary, task.row, segment) + ); + boundary.status = 4; + segment = logRecoverableError(request, error, errorInfo); + boundary.status = 4; + boundary.errorDigest = segment; + untrackBoundary(request, boundary); + boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary); + } + boundary.pendingTasks--; + segment = boundary.row; + null !== segment && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }); + boundary.fallbackAbortableTasks.clear(); + } + task = task.row; + null !== task && + 0 === --task.pendingTasks && + finishSuspenseListRow(request, task); + request.allPendingTasks--; + 0 === request.allPendingTasks && completeAll(request); +} +function safelyEmitEarlyPreloads(request, shellComplete) { + try { + var renderState = request.renderState, + onHeaders = renderState.onHeaders; + if (onHeaders) { + var headers = renderState.headers; + if (headers) { + renderState.headers = null; + var linkHeader = headers.preconnects; + headers.fontPreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.fontPreloads)); + headers.highImagePreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.highImagePreloads)); + if (!shellComplete) { + var queueIter = renderState.styles.values(), + queueStep = queueIter.next(); + b: for ( + ; + 0 < headers.remainingCapacity && !queueStep.done; + queueStep = queueIter.next() + ) + for ( + var sheetIter = queueStep.value.sheets.values(), + sheetStep = sheetIter.next(); + 0 < headers.remainingCapacity && !sheetStep.done; + sheetStep = sheetIter.next() + ) { + var sheet = sheetStep.value, + props = sheet.props, + key = props.href, + props$jscomp$0 = sheet.props, + header = getPreloadAsHeader(props$jscomp$0.href, "style", { + crossOrigin: props$jscomp$0.crossOrigin, + integrity: props$jscomp$0.integrity, + nonce: props$jscomp$0.nonce, + type: props$jscomp$0.type, + fetchPriority: props$jscomp$0.fetchPriority, + referrerPolicy: props$jscomp$0.referrerPolicy, + media: props$jscomp$0.media + }); + if (0 <= (headers.remainingCapacity -= header.length + 2)) + (renderState.resets.style[key] = PRELOAD_NO_CREDS), + linkHeader && (linkHeader += ", "), + (linkHeader += header), + (renderState.resets.style[key] = + "string" === typeof props.crossOrigin || + "string" === typeof props.integrity + ? [props.crossOrigin, props.integrity] + : PRELOAD_NO_CREDS); + else break b; + } + } + linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({}); + } + } + } catch (error) { + logRecoverableError(request, error, {}); + } +} +function completeShell(request) { + null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0); + null === request.trackedPostpones && preparePreamble(request); + request.onShellError = noop; + request = request.onShellReady; + request(); +} +function completeAll(request) { + safelyEmitEarlyPreloads( + request, + null === request.trackedPostpones + ? !0 + : null === request.completedRootSegment || + 5 !== request.completedRootSegment.status + ); + preparePreamble(request); + request = request.onAllReady; + request(); +} +function queueCompletedSegment(boundary, segment) { + if ( + 0 === segment.chunks.length && + 1 === segment.children.length && + null === segment.children[0].boundary && + -1 === segment.children[0].id + ) { + var childSegment = segment.children[0]; + childSegment.id = segment.id; + childSegment.parentFlushed = !0; + (1 !== childSegment.status && + 3 !== childSegment.status && + 4 !== childSegment.status) || + queueCompletedSegment(boundary, childSegment); + } else boundary.completedSegments.push(segment); +} +function finishedSegment(request, boundary, segment) { + if (null !== byteLengthOfChunk) { + segment = segment.chunks; + for (var segmentByteSize = 0, i = 0; i < segment.length; i++) + segmentByteSize += segment[i].byteLength; + null === boundary + ? (request.byteSize += segmentByteSize) + : (boundary.byteSize += segmentByteSize); + } +} +function finishedTask(request, boundary, row, segment) { + null !== row && + (0 === --row.pendingTasks + ? finishSuspenseListRow(request, row) + : row.together && tryToResolveTogetherRow(request, row)); + request.allPendingTasks--; + if (null === boundary) { + if (null !== segment && segment.parentFlushed) { + if (null !== request.completedRootSegment) + throw Error( + "There can only be one root segment. This is a bug in React." + ); + request.completedRootSegment = segment; + } + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } else if ((boundary.pendingTasks--, 4 !== boundary.status)) + if (0 === boundary.pendingTasks) + if ( + (0 === boundary.status && (boundary.status = 1), + null !== segment && + segment.parentFlushed && + (1 === segment.status || 3 === segment.status) && + queueCompletedSegment(boundary, segment), + boundary.parentFlushed && request.completedBoundaries.push(boundary), + 1 === boundary.status) + ) + (row = boundary.row), + null !== row && + hoistHoistables(row.hoistables, boundary.contentState), + isEligibleForOutlining(request, boundary) || + (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request), + boundary.fallbackAbortableTasks.clear(), + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row)), + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary.contentPreamble && + preparePreamble(request); + else { + if ( + 5 === boundary.status && + ((boundary = boundary.row), null !== boundary) + ) { + if (null !== request.trackedPostpones) { + row = request.trackedPostpones; + var postponedRow = boundary.next; + if ( + null !== postponedRow && + ((segment = postponedRow.boundaries), null !== segment) + ) + for ( + postponedRow.boundaries = null, postponedRow = 0; + postponedRow < segment.length; + postponedRow++ + ) { + var postponedBoundary = segment[postponedRow]; + trackPostponedBoundary(request, row, postponedBoundary); + finishedTask(request, postponedBoundary, null, null); + } + } + 0 === --boundary.pendingTasks && + finishSuspenseListRow(request, boundary); + } + } + else + null === segment || + !segment.parentFlushed || + (1 !== segment.status && 3 !== segment.status) || + (queueCompletedSegment(boundary, segment), + 1 === boundary.completedSegments.length && + boundary.parentFlushed && + request.partialBoundaries.push(boundary)), + (boundary = boundary.row), + null !== boundary && + boundary.together && + tryToResolveTogetherRow(request, boundary); + 0 === request.allPendingTasks && completeAll(request); +} +function performWork(request$jscomp$2) { + if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) { + var prevContext = currentActiveSnapshot, + prevDispatcher = ReactSharedInternals.H; + ReactSharedInternals.H = HooksDispatcher; + var prevAsyncDispatcher = ReactSharedInternals.A; + ReactSharedInternals.A = DefaultAsyncDispatcher; + var prevRequest = currentRequest; + currentRequest = request$jscomp$2; + var prevResumableState = currentResumableState; + currentResumableState = request$jscomp$2.resumableState; + try { + var pingedTasks = request$jscomp$2.pingedTasks, + i; + for (i = 0; i < pingedTasks.length; i++) { + var task = pingedTasks[i], + request = request$jscomp$2, + segment = task.blockedSegment; + if (null === segment) { + var request$jscomp$0 = request; + if (0 !== task.replay.pendingTasks) { + switchContext(task.context); + try { + "number" === typeof task.replay.slots + ? resumeNode( + request$jscomp$0, + task, + task.replay.slots, + task.node, + task.childIndex + ) + : retryNode(request$jscomp$0, task); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + task.abortSet.delete(task); + finishedTask( + request$jscomp$0, + task.blockedBoundary, + task.row, + null + ); + } catch (thrownValue) { + resetHooksState(); + var x = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue; + if ( + "object" === typeof x && + null !== x && + "function" === typeof x.then + ) { + var ping = task.ping; + x.then(ping, ping); + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + } else { + task.replay.pendingTasks--; + task.abortSet.delete(task); + var errorInfo = getThrownInfo(task.componentStack); + request = void 0; + var request$jscomp$1 = request$jscomp$0, + boundary = task.blockedBoundary, + error$jscomp$0 = + 12 === request$jscomp$0.status + ? request$jscomp$0.fatalError + : x, + replayNodes = task.replay.nodes, + resumeSlots = task.replay.slots; + request = logRecoverableError( + request$jscomp$1, + error$jscomp$0, + errorInfo + ); + abortRemainingReplayNodes( + request$jscomp$1, + boundary, + replayNodes, + resumeSlots, + error$jscomp$0, + request + ); + request$jscomp$0.pendingRootTasks--; + 0 === request$jscomp$0.pendingRootTasks && + completeShell(request$jscomp$0); + request$jscomp$0.allPendingTasks--; + 0 === request$jscomp$0.allPendingTasks && + completeAll(request$jscomp$0); + } + } finally { + } + } + } else if ( + ((request$jscomp$0 = void 0), + (request$jscomp$1 = segment), + 0 === request$jscomp$1.status) + ) { + request$jscomp$1.status = 6; + switchContext(task.context); + var childrenLength = request$jscomp$1.children.length, + chunkLength = request$jscomp$1.chunks.length; + try { + retryNode(request, task), + request$jscomp$1.lastPushedText && + request$jscomp$1.textEmbedded && + request$jscomp$1.chunks.push(textSeparator), + task.abortSet.delete(task), + (request$jscomp$1.status = 1), + finishedSegment(request, task.blockedBoundary, request$jscomp$1), + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } catch (thrownValue) { + resetHooksState(); + request$jscomp$1.children.length = childrenLength; + request$jscomp$1.chunks.length = chunkLength; + var x$jscomp$0 = + thrownValue === SuspenseException + ? getSuspendedThenable() + : 12 === request.status + ? request.fatalError + : thrownValue; + if (12 === request.status && null !== request.trackedPostpones) { + var trackedPostpones = request.trackedPostpones, + thrownInfo = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + logRecoverableError(request, x$jscomp$0, thrownInfo); + trackPostpone(request, trackedPostpones, task, request$jscomp$1); + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } else if ( + "object" === typeof x$jscomp$0 && + null !== x$jscomp$0 && + "function" === typeof x$jscomp$0.then + ) { + request$jscomp$1.status = 0; + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + var ping$jscomp$0 = task.ping; + x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0); + } else { + var errorInfo$jscomp$0 = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + request$jscomp$1.status = 4; + var boundary$jscomp$0 = task.blockedBoundary, + row = task.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.allPendingTasks--; + request$jscomp$0 = logRecoverableError( + request, + x$jscomp$0, + errorInfo$jscomp$0 + ); + if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0); + else if ( + (boundary$jscomp$0.pendingTasks--, + 4 !== boundary$jscomp$0.status) + ) { + boundary$jscomp$0.status = 4; + boundary$jscomp$0.errorDigest = request$jscomp$0; + untrackBoundary(request, boundary$jscomp$0); + var boundaryRow = boundary$jscomp$0.row; + null !== boundaryRow && + 0 === --boundaryRow.pendingTasks && + finishSuspenseListRow(request, boundaryRow); + boundary$jscomp$0.parentFlushed && + request.clientRenderedBoundaries.push(boundary$jscomp$0); + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary$jscomp$0.contentPreamble && + preparePreamble(request); + } + 0 === request.allPendingTasks && completeAll(request); + } + } finally { + } + } + } + pingedTasks.splice(0, i); + null !== request$jscomp$2.destination && + flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination); + } catch (error) { + logRecoverableError(request$jscomp$2, error, {}), + fatalError(request$jscomp$2, error); + } finally { + (currentResumableState = prevResumableState), + (ReactSharedInternals.H = prevDispatcher), + (ReactSharedInternals.A = prevAsyncDispatcher), + prevDispatcher === HooksDispatcher && switchContext(prevContext), + (currentRequest = prevRequest); + } + } +} +function preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments +) { + segment.preambleChildren.length && + collectedPreambleSegments.push(segment.preambleChildren); + for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++) + pendingPreambles = + preparePreambleFromSegment( + request, + segment.children[i], + collectedPreambleSegments + ) || pendingPreambles; + return pendingPreambles; +} +function preparePreambleFromSegment( + request, + segment, + collectedPreambleSegments +) { + var boundary = segment.boundary; + if (null === boundary) + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + var preamble = boundary.contentPreamble, + fallbackPreamble = boundary.fallbackPreamble; + if (null === preamble || null === fallbackPreamble) return !1; + switch (boundary.status) { + case 1: + hoistPreambleState(request.renderState, preamble); + request.byteSize += boundary.byteSize; + segment = boundary.completedSegments[0]; + if (!segment) + throw Error( + "A previously unvisited boundary must have exactly one root segment. This is a bug in React." + ); + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + case 5: + if (null !== request.trackedPostpones) return !0; + case 4: + if (1 === segment.status) + return ( + hoistPreambleState(request.renderState, fallbackPreamble), + preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ) + ); + default: + return !0; + } +} +function preparePreamble(request) { + if ( + request.completedRootSegment && + null === request.completedPreambleSegments + ) { + var collectedPreambleSegments = [], + originalRequestByteSize = request.byteSize, + hasPendingPreambles = preparePreambleFromSegment( + request, + request.completedRootSegment, + collectedPreambleSegments + ), + preamble = request.renderState.preamble; + !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks) + ? (request.completedPreambleSegments = collectedPreambleSegments) + : (request.byteSize = originalRequestByteSize); + } +} +function flushSubtree(request, destination, segment, hoistableState) { + segment.parentFlushed = !0; + switch (segment.status) { + case 0: + segment.id = request.nextSegmentId++; + case 5: + return ( + (hoistableState = segment.id), + (segment.lastPushedText = !1), + (segment.textEmbedded = !1), + (request = request.renderState), + writeChunk(destination, placeholder1), + writeChunk(destination, request.placeholderPrefix), + (request = stringToChunk(hoistableState.toString(16))), + writeChunk(destination, request), + writeChunkAndReturn(destination, placeholder2) + ); + case 1: + segment.status = 2; + var r = !0, + chunks = segment.chunks, + chunkIdx = 0; + segment = segment.children; + for (var childIdx = 0; childIdx < segment.length; childIdx++) { + for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++) + writeChunk(destination, chunks[chunkIdx]); + r = flushSegment(request, destination, r, hoistableState); + } + for (; chunkIdx < chunks.length - 1; chunkIdx++) + writeChunk(destination, chunks[chunkIdx]); + chunkIdx < chunks.length && + (r = writeChunkAndReturn(destination, chunks[chunkIdx])); + return r; + case 3: + return !0; + default: + throw Error( + "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React." + ); + } +} +var flushedByteSize = 0; +function flushSegment(request, destination, segment, hoistableState) { + var boundary = segment.boundary; + if (null === boundary) + return flushSubtree(request, destination, segment, hoistableState); + boundary.parentFlushed = !0; + if (4 === boundary.status) { + var row = boundary.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + boundary = boundary.errorDigest; + writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary); + writeChunk(destination, clientRenderedSuspenseBoundaryError1); + boundary && + (writeChunk(destination, clientRenderedSuspenseBoundaryError1A), + writeChunk(destination, stringToChunk(escapeTextForBrowser(boundary))), + writeChunk( + destination, + clientRenderedSuspenseBoundaryErrorAttrInterstitial + )); + writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2); + flushSubtree(request, destination, segment, hoistableState); + } else if (1 !== boundary.status) + 0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++), + 0 < boundary.completedSegments.length && + request.partialBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + hoistableState && hoistHoistables(hoistableState, boundary.fallbackState), + flushSubtree(request, destination, segment, hoistableState); + else if ( + !flushingPartialBoundaries && + isEligibleForOutlining(request, boundary) && + (flushedByteSize + boundary.byteSize > request.progressiveChunkSize || + hasSuspenseyContent(boundary.contentState)) + ) + (boundary.rootSegmentID = request.nextSegmentId++), + request.completedBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + flushSubtree(request, destination, segment, hoistableState); + else { + flushedByteSize += boundary.byteSize; + hoistableState && hoistHoistables(hoistableState, boundary.contentState); + segment = boundary.row; + null !== segment && + isEligibleForOutlining(request, boundary) && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + writeChunkAndReturn(destination, startCompletedSuspenseBoundary); + segment = boundary.completedSegments; + if (1 !== segment.length) + throw Error( + "A previously unvisited boundary must have exactly one root segment. This is a bug in React." + ); + flushSegment(request, destination, segment[0], hoistableState); + } + return writeChunkAndReturn(destination, endSuspenseBoundary); +} +function flushSegmentContainer(request, destination, segment, hoistableState) { + writeStartSegment( + destination, + request.renderState, + segment.parentFormatContext, + segment.id + ); + flushSegment(request, destination, segment, hoistableState); + return writeEndSegment(destination, segment.parentFormatContext); +} +function flushCompletedBoundary(request, destination, boundary) { + flushedByteSize = boundary.byteSize; + for ( + var completedSegments = boundary.completedSegments, i = 0; + i < completedSegments.length; + i++ + ) + flushPartiallyCompletedSegment( + request, + destination, + boundary, + completedSegments[i] + ); + completedSegments.length = 0; + completedSegments = boundary.row; + null !== completedSegments && + isEligibleForOutlining(request, boundary) && + 0 === --completedSegments.pendingTasks && + finishSuspenseListRow(request, completedSegments); + writeHoistablesForBoundary( + destination, + boundary.contentState, + request.renderState + ); + completedSegments = request.resumableState; + request = request.renderState; + i = boundary.rootSegmentID; + boundary = boundary.contentState; + var requiresStyleInsertion = request.stylesToHoist; + request.stylesToHoist = !1; + writeChunk(destination, request.startInlineScript); + writeChunk(destination, endOfStartTag); + requiresStyleInsertion + ? (0 === (completedSegments.instructions & 4) && + ((completedSegments.instructions |= 4), + writeChunk(destination, clientRenderScriptFunctionOnly)), + 0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + writeChunk(destination, completeBoundaryScriptFunctionOnly)), + 0 === (completedSegments.instructions & 8) + ? ((completedSegments.instructions |= 8), + writeChunk(destination, completeBoundaryWithStylesScript1FullPartial)) + : writeChunk(destination, completeBoundaryWithStylesScript1Partial)) + : (0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + writeChunk(destination, completeBoundaryScriptFunctionOnly)), + writeChunk(destination, completeBoundaryScript1Partial)); + completedSegments = stringToChunk(i.toString(16)); + writeChunk(destination, request.boundaryPrefix); + writeChunk(destination, completedSegments); + writeChunk(destination, completeBoundaryScript2); + writeChunk(destination, request.segmentPrefix); + writeChunk(destination, completedSegments); + requiresStyleInsertion + ? (writeChunk(destination, completeBoundaryScript3a), + writeStyleResourceDependenciesInJS(destination, boundary)) + : writeChunk(destination, completeBoundaryScript3b); + boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd); + return writeBootstrap(destination, request) && boundary; +} +function flushPartiallyCompletedSegment( + request, + destination, + boundary, + segment +) { + if (2 === segment.status) return !0; + var hoistableState = boundary.contentState, + segmentID = segment.id; + if (-1 === segmentID) { + if (-1 === (segment.id = boundary.rootSegmentID)) + throw Error( + "A root segment ID must have been assigned by now. This is a bug in React." + ); + return flushSegmentContainer(request, destination, segment, hoistableState); + } + if (segmentID === boundary.rootSegmentID) + return flushSegmentContainer(request, destination, segment, hoistableState); + flushSegmentContainer(request, destination, segment, hoistableState); + boundary = request.resumableState; + request = request.renderState; + writeChunk(destination, request.startInlineScript); + writeChunk(destination, endOfStartTag); + 0 === (boundary.instructions & 1) + ? ((boundary.instructions |= 1), + writeChunk(destination, completeSegmentScript1Full)) + : writeChunk(destination, completeSegmentScript1Partial); + writeChunk(destination, request.segmentPrefix); + segmentID = stringToChunk(segmentID.toString(16)); + writeChunk(destination, segmentID); + writeChunk(destination, completeSegmentScript2); + writeChunk(destination, request.placeholderPrefix); + writeChunk(destination, segmentID); + destination = writeChunkAndReturn(destination, completeSegmentScriptEnd); + return destination; +} +var flushingPartialBoundaries = !1; +function flushCompletedQueues(request, destination) { + currentView = new Uint8Array(2048); + writtenBytes = 0; + try { + if (!(0 < request.pendingRootTasks)) { + var i, + completedRootSegment = request.completedRootSegment; + if (null !== completedRootSegment) { + if (5 === completedRootSegment.status) return; + var completedPreambleSegments = request.completedPreambleSegments; + if (null === completedPreambleSegments) return; + flushedByteSize = request.byteSize; + var resumableState = request.resumableState, + renderState = request.renderState, + preamble = renderState.preamble, + htmlChunks = preamble.htmlChunks, + headChunks = preamble.headChunks, + i$jscomp$0; + if (htmlChunks) { + for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++) + writeChunk(destination, htmlChunks[i$jscomp$0]); + if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + writeChunk(destination, headChunks[i$jscomp$0]); + else + writeChunk(destination, startChunkForTag("head")), + writeChunk(destination, endOfStartTag); + } else if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + writeChunk(destination, headChunks[i$jscomp$0]); + var charsetChunks = renderState.charsetChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++) + writeChunk(destination, charsetChunks[i$jscomp$0]); + charsetChunks.length = 0; + renderState.preconnects.forEach(flushResource, destination); + renderState.preconnects.clear(); + var viewportChunks = renderState.viewportChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++) + writeChunk(destination, viewportChunks[i$jscomp$0]); + viewportChunks.length = 0; + renderState.fontPreloads.forEach(flushResource, destination); + renderState.fontPreloads.clear(); + renderState.highImagePreloads.forEach(flushResource, destination); + renderState.highImagePreloads.clear(); + currentlyFlushingRenderState = renderState; + renderState.styles.forEach(flushStylesInPreamble, destination); + currentlyFlushingRenderState = null; + var importMapChunks = renderState.importMapChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++) + writeChunk(destination, importMapChunks[i$jscomp$0]); + importMapChunks.length = 0; + renderState.bootstrapScripts.forEach(flushResource, destination); + renderState.scripts.forEach(flushResource, destination); + renderState.scripts.clear(); + renderState.bulkPreloads.forEach(flushResource, destination); + renderState.bulkPreloads.clear(); + htmlChunks || headChunks || (resumableState.instructions |= 32); + var hoistableChunks = renderState.hoistableChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++) + writeChunk(destination, hoistableChunks[i$jscomp$0]); + for ( + resumableState = hoistableChunks.length = 0; + resumableState < completedPreambleSegments.length; + resumableState++ + ) { + var segments = completedPreambleSegments[resumableState]; + for (renderState = 0; renderState < segments.length; renderState++) + flushSegment(request, destination, segments[renderState], null); + } + var preamble$jscomp$0 = request.renderState.preamble, + headChunks$jscomp$0 = preamble$jscomp$0.headChunks; + (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) && + writeChunk(destination, endChunkForTag("head")); + var bodyChunks = preamble$jscomp$0.bodyChunks; + if (bodyChunks) + for ( + completedPreambleSegments = 0; + completedPreambleSegments < bodyChunks.length; + completedPreambleSegments++ + ) + writeChunk(destination, bodyChunks[completedPreambleSegments]); + flushSegment(request, destination, completedRootSegment, null); + request.completedRootSegment = null; + var renderState$jscomp$0 = request.renderState; + if ( + 0 !== request.allPendingTasks || + 0 !== request.clientRenderedBoundaries.length || + 0 !== request.completedBoundaries.length || + (null !== request.trackedPostpones && + (0 !== request.trackedPostpones.rootNodes.length || + null !== request.trackedPostpones.rootSlots)) + ) { + var resumableState$jscomp$0 = request.resumableState; + if (0 === (resumableState$jscomp$0.instructions & 64)) { + resumableState$jscomp$0.instructions |= 64; + writeChunk(destination, renderState$jscomp$0.startInlineScript); + if (0 === (resumableState$jscomp$0.instructions & 32)) { + resumableState$jscomp$0.instructions |= 32; + var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_"; + writeChunk(destination, completedShellIdAttributeStart); + writeChunk( + destination, + stringToChunk(escapeTextForBrowser(shellId)) + ); + writeChunk(destination, attributeEnd); + } + writeChunk(destination, endOfStartTag); + writeChunk(destination, shellTimeRuntimeScript); + writeChunkAndReturn(destination, endInlineScript); + } + } + writeBootstrap(destination, renderState$jscomp$0); + } + var renderState$jscomp$1 = request.renderState; + completedRootSegment = 0; + var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks; + for ( + completedRootSegment = 0; + completedRootSegment < viewportChunks$jscomp$0.length; + completedRootSegment++ + ) + writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]); + viewportChunks$jscomp$0.length = 0; + renderState$jscomp$1.preconnects.forEach(flushResource, destination); + renderState$jscomp$1.preconnects.clear(); + renderState$jscomp$1.fontPreloads.forEach(flushResource, destination); + renderState$jscomp$1.fontPreloads.clear(); + renderState$jscomp$1.highImagePreloads.forEach( + flushResource, + destination + ); + renderState$jscomp$1.highImagePreloads.clear(); + renderState$jscomp$1.styles.forEach(preloadLateStyles, destination); + renderState$jscomp$1.scripts.forEach(flushResource, destination); + renderState$jscomp$1.scripts.clear(); + renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination); + renderState$jscomp$1.bulkPreloads.clear(); + var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks; + for ( + completedRootSegment = 0; + completedRootSegment < hoistableChunks$jscomp$0.length; + completedRootSegment++ + ) + writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]); + hoistableChunks$jscomp$0.length = 0; + var clientRenderedBoundaries = request.clientRenderedBoundaries; + for (i = 0; i < clientRenderedBoundaries.length; i++) { + var boundary = clientRenderedBoundaries[i]; + renderState$jscomp$1 = destination; + var resumableState$jscomp$1 = request.resumableState, + renderState$jscomp$2 = request.renderState, + id = boundary.rootSegmentID, + errorDigest = boundary.errorDigest; + writeChunk( + renderState$jscomp$1, + renderState$jscomp$2.startInlineScript + ); + writeChunk(renderState$jscomp$1, endOfStartTag); + 0 === (resumableState$jscomp$1.instructions & 4) + ? ((resumableState$jscomp$1.instructions |= 4), + writeChunk(renderState$jscomp$1, clientRenderScript1Full)) + : writeChunk(renderState$jscomp$1, clientRenderScript1Partial); + writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix); + writeChunk(renderState$jscomp$1, stringToChunk(id.toString(16))); + writeChunk(renderState$jscomp$1, clientRenderScript1A); + errorDigest && + (writeChunk( + renderState$jscomp$1, + clientRenderErrorScriptArgInterstitial + ), + writeChunk( + renderState$jscomp$1, + stringToChunk( + escapeJSStringsForInstructionScripts(errorDigest || "") + ) + )); + var JSCompiler_inline_result = writeChunkAndReturn( + renderState$jscomp$1, + clientRenderScriptEnd + ); + if (!JSCompiler_inline_result) { + request.destination = null; + i++; + clientRenderedBoundaries.splice(0, i); + return; + } + } + clientRenderedBoundaries.splice(0, i); + var completedBoundaries = request.completedBoundaries; + for (i = 0; i < completedBoundaries.length; i++) + if ( + !flushCompletedBoundary(request, destination, completedBoundaries[i]) + ) { + request.destination = null; + i++; + completedBoundaries.splice(0, i); + return; + } + completedBoundaries.splice(0, i); + completeWriting(destination); + currentView = new Uint8Array(2048); + writtenBytes = 0; + flushingPartialBoundaries = !0; + var partialBoundaries = request.partialBoundaries; + for (i = 0; i < partialBoundaries.length; i++) { + var boundary$70 = partialBoundaries[i]; + a: { + clientRenderedBoundaries = request; + boundary = destination; + flushedByteSize = boundary$70.byteSize; + var completedSegments = boundary$70.completedSegments; + for ( + JSCompiler_inline_result = 0; + JSCompiler_inline_result < completedSegments.length; + JSCompiler_inline_result++ + ) + if ( + !flushPartiallyCompletedSegment( + clientRenderedBoundaries, + boundary, + boundary$70, + completedSegments[JSCompiler_inline_result] + ) + ) { + JSCompiler_inline_result++; + completedSegments.splice(0, JSCompiler_inline_result); + var JSCompiler_inline_result$jscomp$0 = !1; + break a; + } + completedSegments.splice(0, JSCompiler_inline_result); + var row = boundary$70.row; + null !== row && + row.together && + 1 === boundary$70.pendingTasks && + (1 === row.pendingTasks + ? unblockSuspenseListRow( + clientRenderedBoundaries, + row, + row.hoistables + ) + : row.pendingTasks--); + JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary( + boundary, + boundary$70.contentState, + clientRenderedBoundaries.renderState + ); + } + if (!JSCompiler_inline_result$jscomp$0) { + request.destination = null; + i++; + partialBoundaries.splice(0, i); + return; + } + } + partialBoundaries.splice(0, i); + flushingPartialBoundaries = !1; + var largeBoundaries = request.completedBoundaries; + for (i = 0; i < largeBoundaries.length; i++) + if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) { + request.destination = null; + i++; + largeBoundaries.splice(0, i); + return; + } + largeBoundaries.splice(0, i); + } + } finally { + (flushingPartialBoundaries = !1), + 0 === request.allPendingTasks && + 0 === request.clientRenderedBoundaries.length && + 0 === request.completedBoundaries.length + ? ((request.flushScheduled = !1), + (i = request.resumableState), + i.hasBody && writeChunk(destination, endChunkForTag("body")), + i.hasHtml && writeChunk(destination, endChunkForTag("html")), + completeWriting(destination), + (request.status = 14), + destination.close(), + (request.destination = null)) + : completeWriting(destination); + } +} +function startWork(request) { + request.flushScheduled = null !== request.destination; + supportsRequestStorage + ? scheduleMicrotask(function () { + return requestStorage.run(request, performWork, request); + }) + : scheduleMicrotask(function () { + return performWork(request); + }); + setTimeout(function () { + 10 === request.status && (request.status = 11); + null === request.trackedPostpones && + (supportsRequestStorage + ? requestStorage.run( + request, + enqueueEarlyPreloadsAfterInitialWork, + request + ) + : enqueueEarlyPreloadsAfterInitialWork(request)); + }, 0); +} +function enqueueEarlyPreloadsAfterInitialWork(request) { + safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks); +} +function enqueueFlush(request) { + !1 === request.flushScheduled && + 0 === request.pingedTasks.length && + null !== request.destination && + ((request.flushScheduled = !0), + setTimeout(function () { + var destination = request.destination; + destination + ? flushCompletedQueues(request, destination) + : (request.flushScheduled = !1); + }, 0)); +} +function startFlowing(request, destination) { + if (13 === request.status) + (request.status = 14), closeWithError(destination, request.fatalError); + else if (14 !== request.status && null === request.destination) { + request.destination = destination; + try { + flushCompletedQueues(request, destination); + } catch (error) { + logRecoverableError(request, error, {}), fatalError(request, error); + } + } +} +function abort(request, reason) { + if (11 === request.status || 10 === request.status) request.status = 12; + try { + var abortableTasks = request.abortableTasks; + if (0 < abortableTasks.size) { + var error = + void 0 === reason + ? Error("The render was aborted by the server without a reason.") + : "object" === typeof reason && + null !== reason && + "function" === typeof reason.then + ? Error("The render was aborted by the server with a promise.") + : reason; + request.fatalError = error; + abortableTasks.forEach(function (task) { + return abortTask(task, request, error); + }); + abortableTasks.clear(); + } + null !== request.destination && + flushCompletedQueues(request, request.destination); + } catch (error$72) { + logRecoverableError(request, error$72, {}), fatalError(request, error$72); + } +} +function addToReplayParent(node, parentKeyPath, trackedPostpones) { + if (null === parentKeyPath) trackedPostpones.rootNodes.push(node); + else { + var workingMap = trackedPostpones.workingMap, + parentNode = workingMap.get(parentKeyPath); + void 0 === parentNode && + ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]), + workingMap.set(parentKeyPath, parentNode), + addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones)); + parentNode[2].push(node); + } +} +function getPostponedState(request) { + var trackedPostpones = request.trackedPostpones; + if ( + null === trackedPostpones || + (0 === trackedPostpones.rootNodes.length && + null === trackedPostpones.rootSlots) + ) + return (request.trackedPostpones = null); + if ( + null === request.completedRootSegment || + (5 !== request.completedRootSegment.status && + null !== request.completedPreambleSegments) + ) { + var nextSegmentId = request.nextSegmentId; + var replaySlots = trackedPostpones.rootSlots; + var resumableState = request.resumableState; + resumableState.bootstrapScriptContent = void 0; + resumableState.bootstrapScripts = void 0; + resumableState.bootstrapModules = void 0; + } else { + nextSegmentId = 0; + replaySlots = -1; + resumableState = request.resumableState; + var renderState = request.renderState; + resumableState.nextFormID = 0; + resumableState.hasBody = !1; + resumableState.hasHtml = !1; + resumableState.unknownResources = { font: renderState.resets.font }; + resumableState.dnsResources = renderState.resets.dns; + resumableState.connectResources = renderState.resets.connect; + resumableState.imageResources = renderState.resets.image; + resumableState.styleResources = renderState.resets.style; + resumableState.scriptResources = {}; + resumableState.moduleUnknownResources = {}; + resumableState.moduleScriptResources = {}; + resumableState.instructions = 0; + } + return { + nextSegmentId: nextSegmentId, + rootFormatContext: request.rootFormatContext, + progressiveChunkSize: request.progressiveChunkSize, + resumableState: request.resumableState, + replayNodes: trackedPostpones.rootNodes, + replaySlots: replaySlots + }; +} +function ensureCorrectIsomorphicReactVersion() { + var isomorphicReactPackageVersion = React.version; + if ("19.2.4" !== isomorphicReactPackageVersion) + throw Error( + 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + + (isomorphicReactPackageVersion + + "\n - react-dom: 19.2.4\nLearn more: https://react.dev/warnings/version-mismatch") + ); +} +ensureCorrectIsomorphicReactVersion(); +ensureCorrectIsomorphicReactVersion(); +exports.prerender = function (children, options) { + return new Promise(function (resolve, reject) { + var onHeaders = options ? options.onHeaders : void 0, + onHeadersImpl; + onHeaders && + (onHeadersImpl = function (headersDescriptor) { + onHeaders(new Headers(headersDescriptor)); + }); + var resources = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createPrerenderRequest( + children, + resources, + createRenderState( + resources, + void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + onHeadersImpl, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream = { postponed: getPostponedState(request), prelude: stream }; + resolve(stream); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.renderToReadableStream = function (children, options) { + return new Promise(function (resolve, reject) { + var onFatalError, + onAllReady, + allReady = new Promise(function (res, rej) { + onAllReady = res; + onFatalError = rej; + }), + onHeaders = options ? options.onHeaders : void 0, + onHeadersImpl; + onHeaders && + (onHeadersImpl = function (headersDescriptor) { + onHeaders(new Headers(headersDescriptor)); + }); + var resumableState = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createRequest( + children, + resumableState, + createRenderState( + resumableState, + options ? options.nonce : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + onHeadersImpl, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + onAllReady, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream.allReady = allReady; + resolve(stream); + }, + function (error) { + allReady.catch(function () {}); + reject(error); + }, + onFatalError, + options ? options.onPostpone : void 0, + options ? options.formState : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resume = function (children, postponedState, options) { + return new Promise(function (resolve, reject) { + var onFatalError, + onAllReady, + allReady = new Promise(function (res, rej) { + onAllReady = res; + onFatalError = rej; + }), + request = resumeRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + options ? options.nonce : void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + onAllReady, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream.allReady = allReady; + resolve(stream); + }, + function (error) { + allReady.catch(function () {}); + reject(error); + }, + onFatalError, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resumeAndPrerender = function (children, postponedState, options) { + return new Promise(function (resolve, reject) { + var request = resumeAndPrerenderRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + function () { + var stream = new ReadableStream( + { + type: "bytes", + pull: function (controller) { + startFlowing(request, controller); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream = { postponed: getPostponedState(request), prelude: stream }; + resolve(stream); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react-dom/cjs/react-dom-server.node.production.js b/cli/app/node_modules/react-dom/cjs/react-dom-server.node.production.js new file mode 100644 index 00000000000..65d1872fe53 --- /dev/null +++ b/cli/app/node_modules/react-dom/cjs/react-dom-server.node.production.js @@ -0,0 +1,7707 @@ +/** + * @license React + * react-dom-server.node.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var util = require("util"), + crypto = require("crypto"), + async_hooks = require("async_hooks"), + React = require("react"), + ReactDOM = require("react-dom"), + stream = require("stream"), + REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_SCOPE_TYPE = Symbol.for("react.scope"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + REACT_LEGACY_HIDDEN_TYPE = Symbol.for("react.legacy_hidden"), + REACT_MEMO_CACHE_SENTINEL = Symbol.for("react.memo_cache_sentinel"), + REACT_VIEW_TRANSITION_TYPE = Symbol.for("react.view_transition"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; +} +var isArrayImpl = Array.isArray, + scheduleMicrotask = queueMicrotask; +function flushBuffered(destination) { + "function" === typeof destination.flush && destination.flush(); +} +var currentView = null, + writtenBytes = 0, + destinationHasCapacity$1 = !0; +function writeChunk(destination, chunk) { + if ("string" === typeof chunk) { + if (0 !== chunk.length) + if (2048 < 3 * chunk.length) + 0 < writtenBytes && + (writeToDestination( + destination, + currentView.subarray(0, writtenBytes) + ), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)), + writeToDestination(destination, chunk); + else { + var target = currentView; + 0 < writtenBytes && (target = currentView.subarray(writtenBytes)); + target = textEncoder.encodeInto(chunk, target); + var read = target.read; + writtenBytes += target.written; + read < chunk.length && + (writeToDestination( + destination, + currentView.subarray(0, writtenBytes) + ), + (currentView = new Uint8Array(2048)), + (writtenBytes = textEncoder.encodeInto( + chunk.slice(read), + currentView + ).written)); + 2048 === writtenBytes && + (writeToDestination(destination, currentView), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)); + } + } else + 0 !== chunk.byteLength && + (2048 < chunk.byteLength + ? (0 < writtenBytes && + (writeToDestination( + destination, + currentView.subarray(0, writtenBytes) + ), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)), + writeToDestination(destination, chunk)) + : ((target = currentView.length - writtenBytes), + target < chunk.byteLength && + (0 === target + ? writeToDestination(destination, currentView) + : (currentView.set(chunk.subarray(0, target), writtenBytes), + (writtenBytes += target), + writeToDestination(destination, currentView), + (chunk = chunk.subarray(target))), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)), + currentView.set(chunk, writtenBytes), + (writtenBytes += chunk.byteLength), + 2048 === writtenBytes && + (writeToDestination(destination, currentView), + (currentView = new Uint8Array(2048)), + (writtenBytes = 0)))); +} +function writeToDestination(destination, view) { + destination = destination.write(view); + destinationHasCapacity$1 = destinationHasCapacity$1 && destination; +} +function writeChunkAndReturn(destination, chunk) { + writeChunk(destination, chunk); + return destinationHasCapacity$1; +} +function completeWriting(destination) { + currentView && + 0 < writtenBytes && + destination.write(currentView.subarray(0, writtenBytes)); + currentView = null; + writtenBytes = 0; + destinationHasCapacity$1 = !0; +} +var textEncoder = new util.TextEncoder(); +function stringToPrecomputedChunk(content) { + return textEncoder.encode(content); +} +function byteLengthOfChunk(chunk) { + return "string" === typeof chunk + ? Buffer.byteLength(chunk, "utf8") + : chunk.byteLength; +} +var assign = Object.assign, + hasOwnProperty = Object.prototype.hasOwnProperty, + VALID_ATTRIBUTE_NAME_REGEX = RegExp( + "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + ), + illegalAttributeNameCache = {}, + validatedAttributeNameCache = {}; +function isAttributeNameSafe(attributeName) { + if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) + return !0; + if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) return !1; + if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) + return (validatedAttributeNameCache[attributeName] = !0); + illegalAttributeNameCache[attributeName] = !0; + return !1; +} +var unitlessNumbers = new Set( + "animationIterationCount aspectRatio borderImageOutset borderImageSlice borderImageWidth boxFlex boxFlexGroup boxOrdinalGroup columnCount columns flex flexGrow flexPositive flexShrink flexNegative flexOrder gridArea gridRow gridRowEnd gridRowSpan gridRowStart gridColumn gridColumnEnd gridColumnSpan gridColumnStart fontWeight lineClamp lineHeight opacity order orphans scale tabSize widows zIndex zoom fillOpacity floodOpacity stopOpacity strokeDasharray strokeDashoffset strokeMiterlimit strokeOpacity strokeWidth MozAnimationIterationCount MozBoxFlex MozBoxFlexGroup MozLineClamp msAnimationIterationCount msFlex msZoom msFlexGrow msFlexNegative msFlexOrder msFlexPositive msFlexShrink msGridColumn msGridColumnSpan msGridRow msGridRowSpan WebkitAnimationIterationCount WebkitBoxFlex WebKitBoxFlexGroup WebkitBoxOrdinalGroup WebkitColumnCount WebkitColumns WebkitFlex WebkitFlexGrow WebkitFlexPositive WebkitFlexShrink WebkitLineClamp".split( + " " + ) + ), + aliases = new Map([ + ["acceptCharset", "accept-charset"], + ["htmlFor", "for"], + ["httpEquiv", "http-equiv"], + ["crossOrigin", "crossorigin"], + ["accentHeight", "accent-height"], + ["alignmentBaseline", "alignment-baseline"], + ["arabicForm", "arabic-form"], + ["baselineShift", "baseline-shift"], + ["capHeight", "cap-height"], + ["clipPath", "clip-path"], + ["clipRule", "clip-rule"], + ["colorInterpolation", "color-interpolation"], + ["colorInterpolationFilters", "color-interpolation-filters"], + ["colorProfile", "color-profile"], + ["colorRendering", "color-rendering"], + ["dominantBaseline", "dominant-baseline"], + ["enableBackground", "enable-background"], + ["fillOpacity", "fill-opacity"], + ["fillRule", "fill-rule"], + ["floodColor", "flood-color"], + ["floodOpacity", "flood-opacity"], + ["fontFamily", "font-family"], + ["fontSize", "font-size"], + ["fontSizeAdjust", "font-size-adjust"], + ["fontStretch", "font-stretch"], + ["fontStyle", "font-style"], + ["fontVariant", "font-variant"], + ["fontWeight", "font-weight"], + ["glyphName", "glyph-name"], + ["glyphOrientationHorizontal", "glyph-orientation-horizontal"], + ["glyphOrientationVertical", "glyph-orientation-vertical"], + ["horizAdvX", "horiz-adv-x"], + ["horizOriginX", "horiz-origin-x"], + ["imageRendering", "image-rendering"], + ["letterSpacing", "letter-spacing"], + ["lightingColor", "lighting-color"], + ["markerEnd", "marker-end"], + ["markerMid", "marker-mid"], + ["markerStart", "marker-start"], + ["overlinePosition", "overline-position"], + ["overlineThickness", "overline-thickness"], + ["paintOrder", "paint-order"], + ["panose-1", "panose-1"], + ["pointerEvents", "pointer-events"], + ["renderingIntent", "rendering-intent"], + ["shapeRendering", "shape-rendering"], + ["stopColor", "stop-color"], + ["stopOpacity", "stop-opacity"], + ["strikethroughPosition", "strikethrough-position"], + ["strikethroughThickness", "strikethrough-thickness"], + ["strokeDasharray", "stroke-dasharray"], + ["strokeDashoffset", "stroke-dashoffset"], + ["strokeLinecap", "stroke-linecap"], + ["strokeLinejoin", "stroke-linejoin"], + ["strokeMiterlimit", "stroke-miterlimit"], + ["strokeOpacity", "stroke-opacity"], + ["strokeWidth", "stroke-width"], + ["textAnchor", "text-anchor"], + ["textDecoration", "text-decoration"], + ["textRendering", "text-rendering"], + ["transformOrigin", "transform-origin"], + ["underlinePosition", "underline-position"], + ["underlineThickness", "underline-thickness"], + ["unicodeBidi", "unicode-bidi"], + ["unicodeRange", "unicode-range"], + ["unitsPerEm", "units-per-em"], + ["vAlphabetic", "v-alphabetic"], + ["vHanging", "v-hanging"], + ["vIdeographic", "v-ideographic"], + ["vMathematical", "v-mathematical"], + ["vectorEffect", "vector-effect"], + ["vertAdvY", "vert-adv-y"], + ["vertOriginX", "vert-origin-x"], + ["vertOriginY", "vert-origin-y"], + ["wordSpacing", "word-spacing"], + ["writingMode", "writing-mode"], + ["xmlnsXlink", "xmlns:xlink"], + ["xHeight", "x-height"] + ]), + matchHtmlRegExp = /["'&<>]/; +function escapeTextForBrowser(text) { + if ( + "boolean" === typeof text || + "number" === typeof text || + "bigint" === typeof text + ) + return "" + text; + text = "" + text; + var match = matchHtmlRegExp.exec(text); + if (match) { + var html = "", + index, + lastIndex = 0; + for (index = match.index; index < text.length; index++) { + switch (text.charCodeAt(index)) { + case 34: + match = """; + break; + case 38: + match = "&"; + break; + case 39: + match = "'"; + break; + case 60: + match = "<"; + break; + case 62: + match = ">"; + break; + default: + continue; + } + lastIndex !== index && (html += text.slice(lastIndex, index)); + lastIndex = index + 1; + html += match; + } + text = lastIndex !== index ? html + text.slice(lastIndex, index) : html; + } + return text; +} +var uppercasePattern = /([A-Z])/g, + msPattern = /^ms-/, + isJavaScriptProtocol = + /^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*:/i; +function sanitizeURL(url) { + return isJavaScriptProtocol.test("" + url) + ? "javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')" + : url; +} +var ReactSharedInternals = + React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + ReactDOMSharedInternals = + ReactDOM.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE, + sharedNotPendingObject = { + pending: !1, + data: null, + method: null, + action: null + }, + previousDispatcher = ReactDOMSharedInternals.d; +ReactDOMSharedInternals.d = { + f: previousDispatcher.f, + r: previousDispatcher.r, + D: prefetchDNS, + C: preconnect, + L: preload, + m: preloadModule, + X: preinitScript, + S: preinitStyle, + M: preinitModuleScript +}; +var PRELOAD_NO_CREDS = [], + currentlyFlushingRenderState = null; +stringToPrecomputedChunk('"></template>'); +var startInlineScript = stringToPrecomputedChunk("<script"), + endInlineScript = stringToPrecomputedChunk("\x3c/script>"), + startScriptSrc = stringToPrecomputedChunk('<script src="'), + startModuleSrc = stringToPrecomputedChunk('<script type="module" src="'), + scriptNonce = stringToPrecomputedChunk(' nonce="'), + scriptIntegirty = stringToPrecomputedChunk(' integrity="'), + scriptCrossOrigin = stringToPrecomputedChunk(' crossorigin="'), + endAsyncScript = stringToPrecomputedChunk(' async="">\x3c/script>'), + startInlineStyle = stringToPrecomputedChunk("<style"), + scriptRegex = /(<\/|<)(s)(cript)/gi; +function scriptReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\u0073" : "\\u0053") + suffix; +} +var importMapScriptStart = stringToPrecomputedChunk( + '<script type="importmap">' + ), + importMapScriptEnd = stringToPrecomputedChunk("\x3c/script>"); +function createRenderState( + resumableState, + nonce, + externalRuntimeConfig, + importMap, + onHeaders, + maxHeadersLength +) { + externalRuntimeConfig = + "string" === typeof nonce ? nonce : nonce && nonce.script; + var inlineScriptWithNonce = + void 0 === externalRuntimeConfig + ? startInlineScript + : stringToPrecomputedChunk( + '<script nonce="' + + escapeTextForBrowser(externalRuntimeConfig) + + '"' + ), + nonceStyle = "string" === typeof nonce ? void 0 : nonce && nonce.style, + inlineStyleWithNonce = + void 0 === nonceStyle + ? startInlineStyle + : stringToPrecomputedChunk( + '<style nonce="' + escapeTextForBrowser(nonceStyle) + '"' + ), + idPrefix = resumableState.idPrefix, + bootstrapChunks = [], + bootstrapScriptContent = resumableState.bootstrapScriptContent, + bootstrapScripts = resumableState.bootstrapScripts, + bootstrapModules = resumableState.bootstrapModules; + void 0 !== bootstrapScriptContent && + (bootstrapChunks.push(inlineScriptWithNonce), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + endOfStartTag, + ("" + bootstrapScriptContent).replace(scriptRegex, scriptReplacer), + endInlineScript + )); + bootstrapScriptContent = []; + void 0 !== importMap && + (bootstrapScriptContent.push(importMapScriptStart), + bootstrapScriptContent.push( + ("" + JSON.stringify(importMap)).replace(scriptRegex, scriptReplacer) + ), + bootstrapScriptContent.push(importMapScriptEnd)); + importMap = onHeaders + ? { + preconnects: "", + fontPreloads: "", + highImagePreloads: "", + remainingCapacity: + 2 + ("number" === typeof maxHeadersLength ? maxHeadersLength : 2e3) + } + : null; + onHeaders = { + placeholderPrefix: stringToPrecomputedChunk(idPrefix + "P:"), + segmentPrefix: stringToPrecomputedChunk(idPrefix + "S:"), + boundaryPrefix: stringToPrecomputedChunk(idPrefix + "B:"), + startInlineScript: inlineScriptWithNonce, + startInlineStyle: inlineStyleWithNonce, + preamble: createPreambleState(), + externalRuntimeScript: null, + bootstrapChunks: bootstrapChunks, + importMapChunks: bootstrapScriptContent, + onHeaders: onHeaders, + headers: importMap, + resets: { + font: {}, + dns: {}, + connect: { default: {}, anonymous: {}, credentials: {} }, + image: {}, + style: {} + }, + charsetChunks: [], + viewportChunks: [], + hoistableChunks: [], + preconnects: new Set(), + fontPreloads: new Set(), + highImagePreloads: new Set(), + styles: new Map(), + bootstrapScripts: new Set(), + scripts: new Set(), + bulkPreloads: new Set(), + preloads: { + images: new Map(), + stylesheets: new Map(), + scripts: new Map(), + moduleScripts: new Map() + }, + nonce: { script: externalRuntimeConfig, style: nonceStyle }, + hoistableState: null, + stylesToHoist: !1 + }; + if (void 0 !== bootstrapScripts) + for (importMap = 0; importMap < bootstrapScripts.length; importMap++) + (idPrefix = bootstrapScripts[importMap]), + (nonceStyle = inlineScriptWithNonce = void 0), + (inlineStyleWithNonce = { + rel: "preload", + as: "script", + fetchPriority: "low", + nonce: nonce + }), + "string" === typeof idPrefix + ? (inlineStyleWithNonce.href = maxHeadersLength = idPrefix) + : ((inlineStyleWithNonce.href = maxHeadersLength = idPrefix.src), + (inlineStyleWithNonce.integrity = nonceStyle = + "string" === typeof idPrefix.integrity + ? idPrefix.integrity + : void 0), + (inlineStyleWithNonce.crossOrigin = inlineScriptWithNonce = + "string" === typeof idPrefix || null == idPrefix.crossOrigin + ? void 0 + : "use-credentials" === idPrefix.crossOrigin + ? "use-credentials" + : "")), + (idPrefix = resumableState), + (bootstrapScriptContent = maxHeadersLength), + (idPrefix.scriptResources[bootstrapScriptContent] = null), + (idPrefix.moduleScriptResources[bootstrapScriptContent] = null), + (idPrefix = []), + pushLinkImpl(idPrefix, inlineStyleWithNonce), + onHeaders.bootstrapScripts.add(idPrefix), + bootstrapChunks.push( + startScriptSrc, + escapeTextForBrowser(maxHeadersLength), + attributeEnd + ), + externalRuntimeConfig && + bootstrapChunks.push( + scriptNonce, + escapeTextForBrowser(externalRuntimeConfig), + attributeEnd + ), + "string" === typeof nonceStyle && + bootstrapChunks.push( + scriptIntegirty, + escapeTextForBrowser(nonceStyle), + attributeEnd + ), + "string" === typeof inlineScriptWithNonce && + bootstrapChunks.push( + scriptCrossOrigin, + escapeTextForBrowser(inlineScriptWithNonce), + attributeEnd + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(endAsyncScript); + if (void 0 !== bootstrapModules) + for (nonce = 0; nonce < bootstrapModules.length; nonce++) + (nonceStyle = bootstrapModules[nonce]), + (maxHeadersLength = importMap = void 0), + (inlineScriptWithNonce = { + rel: "modulepreload", + fetchPriority: "low", + nonce: externalRuntimeConfig + }), + "string" === typeof nonceStyle + ? (inlineScriptWithNonce.href = bootstrapScripts = nonceStyle) + : ((inlineScriptWithNonce.href = bootstrapScripts = nonceStyle.src), + (inlineScriptWithNonce.integrity = maxHeadersLength = + "string" === typeof nonceStyle.integrity + ? nonceStyle.integrity + : void 0), + (inlineScriptWithNonce.crossOrigin = importMap = + "string" === typeof nonceStyle || null == nonceStyle.crossOrigin + ? void 0 + : "use-credentials" === nonceStyle.crossOrigin + ? "use-credentials" + : "")), + (nonceStyle = resumableState), + (inlineStyleWithNonce = bootstrapScripts), + (nonceStyle.scriptResources[inlineStyleWithNonce] = null), + (nonceStyle.moduleScriptResources[inlineStyleWithNonce] = null), + (nonceStyle = []), + pushLinkImpl(nonceStyle, inlineScriptWithNonce), + onHeaders.bootstrapScripts.add(nonceStyle), + bootstrapChunks.push( + startModuleSrc, + escapeTextForBrowser(bootstrapScripts), + attributeEnd + ), + externalRuntimeConfig && + bootstrapChunks.push( + scriptNonce, + escapeTextForBrowser(externalRuntimeConfig), + attributeEnd + ), + "string" === typeof maxHeadersLength && + bootstrapChunks.push( + scriptIntegirty, + escapeTextForBrowser(maxHeadersLength), + attributeEnd + ), + "string" === typeof importMap && + bootstrapChunks.push( + scriptCrossOrigin, + escapeTextForBrowser(importMap), + attributeEnd + ), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push(endAsyncScript); + return onHeaders; +} +function createResumableState( + identifierPrefix, + externalRuntimeConfig, + bootstrapScriptContent, + bootstrapScripts, + bootstrapModules +) { + return { + idPrefix: void 0 === identifierPrefix ? "" : identifierPrefix, + nextFormID: 0, + streamingFormat: 0, + bootstrapScriptContent: bootstrapScriptContent, + bootstrapScripts: bootstrapScripts, + bootstrapModules: bootstrapModules, + instructions: 0, + hasBody: !1, + hasHtml: !1, + unknownResources: {}, + dnsResources: {}, + connectResources: { default: {}, anonymous: {}, credentials: {} }, + imageResources: {}, + styleResources: {}, + scriptResources: {}, + moduleUnknownResources: {}, + moduleScriptResources: {} + }; +} +function createPreambleState() { + return { htmlChunks: null, headChunks: null, bodyChunks: null }; +} +function createFormatContext( + insertionMode, + selectedValue, + tagScope, + viewTransition +) { + return { + insertionMode: insertionMode, + selectedValue: selectedValue, + tagScope: tagScope, + viewTransition: viewTransition + }; +} +function createRootFormatContext(namespaceURI) { + return createFormatContext( + "http://www.w3.org/2000/svg" === namespaceURI + ? 4 + : "http://www.w3.org/1998/Math/MathML" === namespaceURI + ? 5 + : 0, + null, + 0, + null + ); +} +function getChildFormatContext(parentContext, type, props) { + var subtreeScope = parentContext.tagScope & -25; + switch (type) { + case "noscript": + return createFormatContext(2, null, subtreeScope | 1, null); + case "select": + return createFormatContext( + 2, + null != props.value ? props.value : props.defaultValue, + subtreeScope, + null + ); + case "svg": + return createFormatContext(4, null, subtreeScope, null); + case "picture": + return createFormatContext(2, null, subtreeScope | 2, null); + case "math": + return createFormatContext(5, null, subtreeScope, null); + case "foreignObject": + return createFormatContext(2, null, subtreeScope, null); + case "table": + return createFormatContext(6, null, subtreeScope, null); + case "thead": + case "tbody": + case "tfoot": + return createFormatContext(7, null, subtreeScope, null); + case "colgroup": + return createFormatContext(9, null, subtreeScope, null); + case "tr": + return createFormatContext(8, null, subtreeScope, null); + case "head": + if (2 > parentContext.insertionMode) + return createFormatContext(3, null, subtreeScope, null); + break; + case "html": + if (0 === parentContext.insertionMode) + return createFormatContext(1, null, subtreeScope, null); + } + return 6 <= parentContext.insertionMode || 2 > parentContext.insertionMode + ? createFormatContext(2, null, subtreeScope, null) + : parentContext.tagScope !== subtreeScope + ? createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + null + ) + : parentContext; +} +function getSuspenseViewTransition(parentViewTransition) { + return null === parentViewTransition + ? null + : { + update: parentViewTransition.update, + enter: "none", + exit: "none", + share: parentViewTransition.update, + name: parentViewTransition.autoName, + autoName: parentViewTransition.autoName, + nameIdx: 0 + }; +} +function getSuspenseFallbackFormatContext(resumableState, parentContext) { + parentContext.tagScope & 32 && (resumableState.instructions |= 128); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + parentContext.tagScope | 12, + getSuspenseViewTransition(parentContext.viewTransition) + ); +} +function getSuspenseContentFormatContext(resumableState, parentContext) { + resumableState = getSuspenseViewTransition(parentContext.viewTransition); + var subtreeScope = parentContext.tagScope | 16; + null !== resumableState && + "none" !== resumableState.share && + (subtreeScope |= 64); + return createFormatContext( + parentContext.insertionMode, + parentContext.selectedValue, + subtreeScope, + resumableState + ); +} +var textSeparator = stringToPrecomputedChunk("\x3c!-- --\x3e"); +function pushTextInstance(target, text, renderState, textEmbedded) { + if ("" === text) return textEmbedded; + textEmbedded && target.push(textSeparator); + target.push(escapeTextForBrowser(text)); + return !0; +} +var styleNameCache = new Map(), + styleAttributeStart = stringToPrecomputedChunk(' style="'), + styleAssign = stringToPrecomputedChunk(":"), + styleSeparator = stringToPrecomputedChunk(";"); +function pushStyleAttribute(target, style) { + if ("object" !== typeof style) + throw Error( + "The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX." + ); + var isFirst = !0, + styleName; + for (styleName in style) + if (hasOwnProperty.call(style, styleName)) { + var styleValue = style[styleName]; + if ( + null != styleValue && + "boolean" !== typeof styleValue && + "" !== styleValue + ) { + if (0 === styleName.indexOf("--")) { + var nameChunk = escapeTextForBrowser(styleName); + styleValue = escapeTextForBrowser(("" + styleValue).trim()); + } else + (nameChunk = styleNameCache.get(styleName)), + void 0 === nameChunk && + ((nameChunk = stringToPrecomputedChunk( + escapeTextForBrowser( + styleName + .replace(uppercasePattern, "-$1") + .toLowerCase() + .replace(msPattern, "-ms-") + ) + )), + styleNameCache.set(styleName, nameChunk)), + (styleValue = + "number" === typeof styleValue + ? 0 === styleValue || unitlessNumbers.has(styleName) + ? "" + styleValue + : styleValue + "px" + : escapeTextForBrowser(("" + styleValue).trim())); + isFirst + ? ((isFirst = !1), + target.push( + styleAttributeStart, + nameChunk, + styleAssign, + styleValue + )) + : target.push(styleSeparator, nameChunk, styleAssign, styleValue); + } + } + isFirst || target.push(attributeEnd); +} +var attributeSeparator = stringToPrecomputedChunk(" "), + attributeAssign = stringToPrecomputedChunk('="'), + attributeEnd = stringToPrecomputedChunk('"'), + attributeEmptyString = stringToPrecomputedChunk('=""'); +function pushBooleanAttribute(target, name, value) { + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(attributeSeparator, name, attributeEmptyString); +} +function pushStringAttribute(target, name, value) { + "function" !== typeof value && + "symbol" !== typeof value && + "boolean" !== typeof value && + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); +} +var actionJavaScriptURL = stringToPrecomputedChunk( + escapeTextForBrowser( + "javascript:throw new Error('React form unexpectedly submitted.')" + ) + ), + startHiddenInputChunk = stringToPrecomputedChunk('<input type="hidden"'); +function pushAdditionalFormField(value, key) { + this.push(startHiddenInputChunk); + validateAdditionalFormField(value); + pushStringAttribute(this, "name", key); + pushStringAttribute(this, "value", value); + this.push(endOfStartTagSelfClosing); +} +function validateAdditionalFormField(value) { + if ("string" !== typeof value) + throw Error( + "File/Blob fields are not yet supported in progressive forms. Will fallback to client hydration." + ); +} +function getCustomFormFields(resumableState, formAction) { + if ("function" === typeof formAction.$$FORM_ACTION) { + var id = resumableState.nextFormID++; + resumableState = resumableState.idPrefix + id; + try { + var customFields = formAction.$$FORM_ACTION(resumableState); + if (customFields) { + var formData = customFields.data; + null != formData && formData.forEach(validateAdditionalFormField); + } + return customFields; + } catch (x) { + if ("object" === typeof x && null !== x && "function" === typeof x.then) + throw x; + } + } + return null; +} +function pushFormActionAttribute( + target, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name +) { + var formData = null; + if ("function" === typeof formAction) { + var customFields = getCustomFormFields(resumableState, formAction); + null !== customFields + ? ((name = customFields.name), + (formAction = customFields.action || ""), + (formEncType = customFields.encType), + (formMethod = customFields.method), + (formTarget = customFields.target), + (formData = customFields.data)) + : (target.push( + attributeSeparator, + "formAction", + attributeAssign, + actionJavaScriptURL, + attributeEnd + ), + (formTarget = formMethod = formEncType = formAction = name = null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != name && pushAttribute(target, "name", name); + null != formAction && pushAttribute(target, "formAction", formAction); + null != formEncType && pushAttribute(target, "formEncType", formEncType); + null != formMethod && pushAttribute(target, "formMethod", formMethod); + null != formTarget && pushAttribute(target, "formTarget", formTarget); + return formData; +} +function pushAttribute(target, name, value) { + switch (name) { + case "className": + pushStringAttribute(target, "class", value); + break; + case "tabIndex": + pushStringAttribute(target, "tabindex", value); + break; + case "dir": + case "role": + case "viewBox": + case "width": + case "height": + pushStringAttribute(target, name, value); + break; + case "style": + pushStyleAttribute(target, value); + break; + case "src": + case "href": + if ("" === value) break; + case "action": + case "formAction": + if ( + null == value || + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + break; + case "defaultValue": + case "defaultChecked": + case "innerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "autoFocus": + case "multiple": + case "muted": + pushBooleanAttribute(target, name.toLowerCase(), value); + break; + case "xlinkHref": + if ( + "function" === typeof value || + "symbol" === typeof value || + "boolean" === typeof value + ) + break; + value = sanitizeURL("" + value); + target.push( + attributeSeparator, + "xlink:href", + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + break; + case "contentEditable": + case "spellCheck": + case "draggable": + case "value": + case "autoReverse": + case "externalResourcesRequired": + case "focusable": + case "preserveAlpha": + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + break; + case "inert": + case "allowFullScreen": + case "async": + case "autoPlay": + case "controls": + case "default": + case "defer": + case "disabled": + case "disablePictureInPicture": + case "disableRemotePlayback": + case "formNoValidate": + case "hidden": + case "loop": + case "noModule": + case "noValidate": + case "open": + case "playsInline": + case "readOnly": + case "required": + case "reversed": + case "scoped": + case "seamless": + case "itemScope": + value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push(attributeSeparator, name, attributeEmptyString); + break; + case "capture": + case "download": + !0 === value + ? target.push(attributeSeparator, name, attributeEmptyString) + : !1 !== value && + "function" !== typeof value && + "symbol" !== typeof value && + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + break; + case "cols": + case "rows": + case "size": + case "span": + "function" !== typeof value && + "symbol" !== typeof value && + !isNaN(value) && + 1 <= value && + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + break; + case "rowSpan": + case "start": + "function" === typeof value || + "symbol" === typeof value || + isNaN(value) || + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + break; + case "xlinkActuate": + pushStringAttribute(target, "xlink:actuate", value); + break; + case "xlinkArcrole": + pushStringAttribute(target, "xlink:arcrole", value); + break; + case "xlinkRole": + pushStringAttribute(target, "xlink:role", value); + break; + case "xlinkShow": + pushStringAttribute(target, "xlink:show", value); + break; + case "xlinkTitle": + pushStringAttribute(target, "xlink:title", value); + break; + case "xlinkType": + pushStringAttribute(target, "xlink:type", value); + break; + case "xmlBase": + pushStringAttribute(target, "xml:base", value); + break; + case "xmlLang": + pushStringAttribute(target, "xml:lang", value); + break; + case "xmlSpace": + pushStringAttribute(target, "xml:space", value); + break; + default: + if ( + !(2 < name.length) || + ("o" !== name[0] && "O" !== name[0]) || + ("n" !== name[1] && "N" !== name[1]) + ) + if (((name = aliases.get(name) || name), isAttributeNameSafe(name))) { + switch (typeof value) { + case "function": + case "symbol": + return; + case "boolean": + var prefix$8 = name.toLowerCase().slice(0, 5); + if ("data-" !== prefix$8 && "aria-" !== prefix$8) return; + } + target.push( + attributeSeparator, + name, + attributeAssign, + escapeTextForBrowser(value), + attributeEnd + ); + } + } +} +var endOfStartTag = stringToPrecomputedChunk(">"), + endOfStartTagSelfClosing = stringToPrecomputedChunk("/>"); +function pushInnerHTML(target, innerHTML, children) { + if (null != innerHTML) { + if (null != children) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ("object" !== typeof innerHTML || !("__html" in innerHTML)) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + innerHTML = innerHTML.__html; + null !== innerHTML && void 0 !== innerHTML && target.push("" + innerHTML); + } +} +function flattenOptionChildren(children) { + var content = ""; + React.Children.forEach(children, function (child) { + null != child && (content += child); + }); + return content; +} +var selectedMarkerAttribute = stringToPrecomputedChunk(' selected=""'), + formReplayingRuntimeScript = stringToPrecomputedChunk( + 'addEventListener("submit",function(a){if(!a.defaultPrevented){var c=a.target,d=a.submitter,e=c.action,b=d;if(d){var f=d.getAttribute("formAction");null!=f&&(e=f,b=null)}"javascript:throw new Error(\'React form unexpectedly submitted.\')"===e&&(a.preventDefault(),b?(a=document.createElement("input"),a.name=b.name,a.value=b.value,b.parentNode.insertBefore(a,b),b=new FormData(c),a.parentNode.removeChild(a)):b=new FormData(c),a=c.ownerDocument||c,(a.$$reactFormReplay=a.$$reactFormReplay||[]).push(c,d,b))}});' + ); +function injectFormReplayingRuntime(resumableState, renderState) { + if (0 === (resumableState.instructions & 16)) { + resumableState.instructions |= 16; + var preamble = renderState.preamble, + bootstrapChunks = renderState.bootstrapChunks; + (preamble.htmlChunks || preamble.headChunks) && 0 === bootstrapChunks.length + ? (bootstrapChunks.push(renderState.startInlineScript), + pushCompletedShellIdAttribute(bootstrapChunks, resumableState), + bootstrapChunks.push( + endOfStartTag, + formReplayingRuntimeScript, + endInlineScript + )) + : bootstrapChunks.unshift( + renderState.startInlineScript, + endOfStartTag, + formReplayingRuntimeScript, + endInlineScript + ); + } +} +var formStateMarkerIsMatching = stringToPrecomputedChunk("\x3c!--F!--\x3e"), + formStateMarkerIsNotMatching = stringToPrecomputedChunk("\x3c!--F--\x3e"); +function pushLinkImpl(target, props) { + target.push(startChunkForTag("link")); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTagSelfClosing); + return null; +} +var styleRegex = /(<\/|<)(s)(tyle)/gi; +function styleReplacer(match, prefix, s, suffix) { + return "" + prefix + ("s" === s ? "\\73 " : "\\53 ") + suffix; +} +function pushSelfClosing(target, props, tag) { + target.push(startChunkForTag(tag)); + for (var propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + tag + + " is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTagSelfClosing); + return null; +} +function pushTitleImpl(target, props) { + target.push(startChunkForTag("title")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + props = Array.isArray(children) + ? 2 > children.length + ? children[0] + : null + : children; + "function" !== typeof props && + "symbol" !== typeof props && + null !== props && + void 0 !== props && + target.push(escapeTextForBrowser("" + props)); + pushInnerHTML(target, innerHTML, children); + target.push(endChunkForTag("title")); + return null; +} +var headPreambleContributionChunk = + stringToPrecomputedChunk("\x3c!--head--\x3e"), + bodyPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--body--\x3e"), + htmlPreambleContributionChunk = stringToPrecomputedChunk("\x3c!--html--\x3e"); +function pushScriptImpl(target, props) { + target.push(startChunkForTag("script")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, children); + "string" === typeof children && + target.push(("" + children).replace(scriptRegex, scriptReplacer)); + target.push(endChunkForTag("script")); + return null; +} +function pushStartSingletonElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, tag); + return tag; +} +function pushStartGenericElement(target, props, tag) { + target.push(startChunkForTag(tag)); + var innerHTML = (tag = null), + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + tag = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + default: + pushAttribute(target, propKey, propValue); + } + } + target.push(endOfStartTag); + pushInnerHTML(target, innerHTML, tag); + return "string" === typeof tag + ? (target.push(escapeTextForBrowser(tag)), null) + : tag; +} +var leadingNewline = stringToPrecomputedChunk("\n"), + VALID_TAG_REGEX = /^[a-zA-Z][a-zA-Z:_\.\-\d]*$/, + validatedTagCache = new Map(); +function startChunkForTag(tag) { + var tagStartChunk = validatedTagCache.get(tag); + if (void 0 === tagStartChunk) { + if (!VALID_TAG_REGEX.test(tag)) throw Error("Invalid tag: " + tag); + tagStartChunk = stringToPrecomputedChunk("<" + tag); + validatedTagCache.set(tag, tagStartChunk); + } + return tagStartChunk; +} +var doctypeChunk = stringToPrecomputedChunk("<!DOCTYPE html>"); +function pushStartInstance( + target$jscomp$0, + type, + props, + resumableState, + renderState, + preambleState, + hoistableState, + formatContext, + textEmbedded +) { + switch (type) { + case "div": + case "span": + case "svg": + case "path": + break; + case "a": + target$jscomp$0.push(startChunkForTag("a")); + var children = null, + innerHTML = null, + propKey; + for (propKey in props) + if (hasOwnProperty.call(props, propKey)) { + var propValue = props[propKey]; + if (null != propValue) + switch (propKey) { + case "children": + children = propValue; + break; + case "dangerouslySetInnerHTML": + innerHTML = propValue; + break; + case "href": + "" === propValue + ? pushStringAttribute(target$jscomp$0, "href", "") + : pushAttribute(target$jscomp$0, propKey, propValue); + break; + default: + pushAttribute(target$jscomp$0, propKey, propValue); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML, children); + if ("string" === typeof children) { + target$jscomp$0.push(escapeTextForBrowser(children)); + var JSCompiler_inline_result = null; + } else JSCompiler_inline_result = children; + return JSCompiler_inline_result; + case "g": + case "p": + case "li": + break; + case "select": + target$jscomp$0.push(startChunkForTag("select")); + var children$jscomp$0 = null, + innerHTML$jscomp$0 = null, + propKey$jscomp$0; + for (propKey$jscomp$0 in props) + if (hasOwnProperty.call(props, propKey$jscomp$0)) { + var propValue$jscomp$0 = props[propKey$jscomp$0]; + if (null != propValue$jscomp$0) + switch (propKey$jscomp$0) { + case "children": + children$jscomp$0 = propValue$jscomp$0; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$0 = propValue$jscomp$0; + break; + case "defaultValue": + case "value": + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$0, + propValue$jscomp$0 + ); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$0, children$jscomp$0); + return children$jscomp$0; + case "option": + var selectedValue = formatContext.selectedValue; + target$jscomp$0.push(startChunkForTag("option")); + var children$jscomp$1 = null, + value = null, + selected = null, + innerHTML$jscomp$1 = null, + propKey$jscomp$1; + for (propKey$jscomp$1 in props) + if (hasOwnProperty.call(props, propKey$jscomp$1)) { + var propValue$jscomp$1 = props[propKey$jscomp$1]; + if (null != propValue$jscomp$1) + switch (propKey$jscomp$1) { + case "children": + children$jscomp$1 = propValue$jscomp$1; + break; + case "selected": + selected = propValue$jscomp$1; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$1 = propValue$jscomp$1; + break; + case "value": + value = propValue$jscomp$1; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$1, + propValue$jscomp$1 + ); + } + } + if (null != selectedValue) { + var stringValue = + null !== value + ? "" + value + : flattenOptionChildren(children$jscomp$1); + if (isArrayImpl(selectedValue)) + for (var i = 0; i < selectedValue.length; i++) { + if ("" + selectedValue[i] === stringValue) { + target$jscomp$0.push(selectedMarkerAttribute); + break; + } + } + else + "" + selectedValue === stringValue && + target$jscomp$0.push(selectedMarkerAttribute); + } else selected && target$jscomp$0.push(selectedMarkerAttribute); + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$1, children$jscomp$1); + return children$jscomp$1; + case "textarea": + target$jscomp$0.push(startChunkForTag("textarea")); + var value$jscomp$0 = null, + defaultValue = null, + children$jscomp$2 = null, + propKey$jscomp$2; + for (propKey$jscomp$2 in props) + if (hasOwnProperty.call(props, propKey$jscomp$2)) { + var propValue$jscomp$2 = props[propKey$jscomp$2]; + if (null != propValue$jscomp$2) + switch (propKey$jscomp$2) { + case "children": + children$jscomp$2 = propValue$jscomp$2; + break; + case "value": + value$jscomp$0 = propValue$jscomp$2; + break; + case "defaultValue": + defaultValue = propValue$jscomp$2; + break; + case "dangerouslySetInnerHTML": + throw Error( + "`dangerouslySetInnerHTML` does not make sense on <textarea>." + ); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$2, + propValue$jscomp$2 + ); + } + } + null === value$jscomp$0 && + null !== defaultValue && + (value$jscomp$0 = defaultValue); + target$jscomp$0.push(endOfStartTag); + if (null != children$jscomp$2) { + if (null != value$jscomp$0) + throw Error( + "If you supply `defaultValue` on a <textarea>, do not pass children." + ); + if (isArrayImpl(children$jscomp$2)) { + if (1 < children$jscomp$2.length) + throw Error("<textarea> can only have at most one child."); + value$jscomp$0 = "" + children$jscomp$2[0]; + } + value$jscomp$0 = "" + children$jscomp$2; + } + "string" === typeof value$jscomp$0 && + "\n" === value$jscomp$0[0] && + target$jscomp$0.push(leadingNewline); + null !== value$jscomp$0 && + target$jscomp$0.push(escapeTextForBrowser("" + value$jscomp$0)); + return null; + case "input": + target$jscomp$0.push(startChunkForTag("input")); + var name = null, + formAction = null, + formEncType = null, + formMethod = null, + formTarget = null, + value$jscomp$1 = null, + defaultValue$jscomp$0 = null, + checked = null, + defaultChecked = null, + propKey$jscomp$3; + for (propKey$jscomp$3 in props) + if (hasOwnProperty.call(props, propKey$jscomp$3)) { + var propValue$jscomp$3 = props[propKey$jscomp$3]; + if (null != propValue$jscomp$3) + switch (propKey$jscomp$3) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "input is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + case "name": + name = propValue$jscomp$3; + break; + case "formAction": + formAction = propValue$jscomp$3; + break; + case "formEncType": + formEncType = propValue$jscomp$3; + break; + case "formMethod": + formMethod = propValue$jscomp$3; + break; + case "formTarget": + formTarget = propValue$jscomp$3; + break; + case "defaultChecked": + defaultChecked = propValue$jscomp$3; + break; + case "defaultValue": + defaultValue$jscomp$0 = propValue$jscomp$3; + break; + case "checked": + checked = propValue$jscomp$3; + break; + case "value": + value$jscomp$1 = propValue$jscomp$3; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$3, + propValue$jscomp$3 + ); + } + } + var formData = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction, + formEncType, + formMethod, + formTarget, + name + ); + null !== checked + ? pushBooleanAttribute(target$jscomp$0, "checked", checked) + : null !== defaultChecked && + pushBooleanAttribute(target$jscomp$0, "checked", defaultChecked); + null !== value$jscomp$1 + ? pushAttribute(target$jscomp$0, "value", value$jscomp$1) + : null !== defaultValue$jscomp$0 && + pushAttribute(target$jscomp$0, "value", defaultValue$jscomp$0); + target$jscomp$0.push(endOfStartTagSelfClosing); + null != formData && + formData.forEach(pushAdditionalFormField, target$jscomp$0); + return null; + case "button": + target$jscomp$0.push(startChunkForTag("button")); + var children$jscomp$3 = null, + innerHTML$jscomp$2 = null, + name$jscomp$0 = null, + formAction$jscomp$0 = null, + formEncType$jscomp$0 = null, + formMethod$jscomp$0 = null, + formTarget$jscomp$0 = null, + propKey$jscomp$4; + for (propKey$jscomp$4 in props) + if (hasOwnProperty.call(props, propKey$jscomp$4)) { + var propValue$jscomp$4 = props[propKey$jscomp$4]; + if (null != propValue$jscomp$4) + switch (propKey$jscomp$4) { + case "children": + children$jscomp$3 = propValue$jscomp$4; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$2 = propValue$jscomp$4; + break; + case "name": + name$jscomp$0 = propValue$jscomp$4; + break; + case "formAction": + formAction$jscomp$0 = propValue$jscomp$4; + break; + case "formEncType": + formEncType$jscomp$0 = propValue$jscomp$4; + break; + case "formMethod": + formMethod$jscomp$0 = propValue$jscomp$4; + break; + case "formTarget": + formTarget$jscomp$0 = propValue$jscomp$4; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$4, + propValue$jscomp$4 + ); + } + } + var formData$jscomp$0 = pushFormActionAttribute( + target$jscomp$0, + resumableState, + renderState, + formAction$jscomp$0, + formEncType$jscomp$0, + formMethod$jscomp$0, + formTarget$jscomp$0, + name$jscomp$0 + ); + target$jscomp$0.push(endOfStartTag); + null != formData$jscomp$0 && + formData$jscomp$0.forEach(pushAdditionalFormField, target$jscomp$0); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$2, children$jscomp$3); + if ("string" === typeof children$jscomp$3) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$3)); + var JSCompiler_inline_result$jscomp$0 = null; + } else JSCompiler_inline_result$jscomp$0 = children$jscomp$3; + return JSCompiler_inline_result$jscomp$0; + case "form": + target$jscomp$0.push(startChunkForTag("form")); + var children$jscomp$4 = null, + innerHTML$jscomp$3 = null, + formAction$jscomp$1 = null, + formEncType$jscomp$1 = null, + formMethod$jscomp$1 = null, + formTarget$jscomp$1 = null, + propKey$jscomp$5; + for (propKey$jscomp$5 in props) + if (hasOwnProperty.call(props, propKey$jscomp$5)) { + var propValue$jscomp$5 = props[propKey$jscomp$5]; + if (null != propValue$jscomp$5) + switch (propKey$jscomp$5) { + case "children": + children$jscomp$4 = propValue$jscomp$5; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$3 = propValue$jscomp$5; + break; + case "action": + formAction$jscomp$1 = propValue$jscomp$5; + break; + case "encType": + formEncType$jscomp$1 = propValue$jscomp$5; + break; + case "method": + formMethod$jscomp$1 = propValue$jscomp$5; + break; + case "target": + formTarget$jscomp$1 = propValue$jscomp$5; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$5, + propValue$jscomp$5 + ); + } + } + var formData$jscomp$1 = null, + formActionName = null; + if ("function" === typeof formAction$jscomp$1) { + var customFields = getCustomFormFields( + resumableState, + formAction$jscomp$1 + ); + null !== customFields + ? ((formAction$jscomp$1 = customFields.action || ""), + (formEncType$jscomp$1 = customFields.encType), + (formMethod$jscomp$1 = customFields.method), + (formTarget$jscomp$1 = customFields.target), + (formData$jscomp$1 = customFields.data), + (formActionName = customFields.name)) + : (target$jscomp$0.push( + attributeSeparator, + "action", + attributeAssign, + actionJavaScriptURL, + attributeEnd + ), + (formTarget$jscomp$1 = + formMethod$jscomp$1 = + formEncType$jscomp$1 = + formAction$jscomp$1 = + null), + injectFormReplayingRuntime(resumableState, renderState)); + } + null != formAction$jscomp$1 && + pushAttribute(target$jscomp$0, "action", formAction$jscomp$1); + null != formEncType$jscomp$1 && + pushAttribute(target$jscomp$0, "encType", formEncType$jscomp$1); + null != formMethod$jscomp$1 && + pushAttribute(target$jscomp$0, "method", formMethod$jscomp$1); + null != formTarget$jscomp$1 && + pushAttribute(target$jscomp$0, "target", formTarget$jscomp$1); + target$jscomp$0.push(endOfStartTag); + null !== formActionName && + (target$jscomp$0.push(startHiddenInputChunk), + pushStringAttribute(target$jscomp$0, "name", formActionName), + target$jscomp$0.push(endOfStartTagSelfClosing), + null != formData$jscomp$1 && + formData$jscomp$1.forEach(pushAdditionalFormField, target$jscomp$0)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$3, children$jscomp$4); + if ("string" === typeof children$jscomp$4) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$4)); + var JSCompiler_inline_result$jscomp$1 = null; + } else JSCompiler_inline_result$jscomp$1 = children$jscomp$4; + return JSCompiler_inline_result$jscomp$1; + case "menuitem": + target$jscomp$0.push(startChunkForTag("menuitem")); + for (var propKey$jscomp$6 in props) + if (hasOwnProperty.call(props, propKey$jscomp$6)) { + var propValue$jscomp$6 = props[propKey$jscomp$6]; + if (null != propValue$jscomp$6) + switch (propKey$jscomp$6) { + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "menuitems cannot have `children` nor `dangerouslySetInnerHTML`." + ); + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$6, + propValue$jscomp$6 + ); + } + } + target$jscomp$0.push(endOfStartTag); + return null; + case "object": + target$jscomp$0.push(startChunkForTag("object")); + var children$jscomp$5 = null, + innerHTML$jscomp$4 = null, + propKey$jscomp$7; + for (propKey$jscomp$7 in props) + if (hasOwnProperty.call(props, propKey$jscomp$7)) { + var propValue$jscomp$7 = props[propKey$jscomp$7]; + if (null != propValue$jscomp$7) + switch (propKey$jscomp$7) { + case "children": + children$jscomp$5 = propValue$jscomp$7; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$4 = propValue$jscomp$7; + break; + case "data": + var sanitizedValue = sanitizeURL("" + propValue$jscomp$7); + if ("" === sanitizedValue) break; + target$jscomp$0.push( + attributeSeparator, + "data", + attributeAssign, + escapeTextForBrowser(sanitizedValue), + attributeEnd + ); + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$7, + propValue$jscomp$7 + ); + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$4, children$jscomp$5); + if ("string" === typeof children$jscomp$5) { + target$jscomp$0.push(escapeTextForBrowser(children$jscomp$5)); + var JSCompiler_inline_result$jscomp$2 = null; + } else JSCompiler_inline_result$jscomp$2 = children$jscomp$5; + return JSCompiler_inline_result$jscomp$2; + case "title": + var noscriptTagInScope = formatContext.tagScope & 1, + isFallback = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$3 = pushTitleImpl( + target$jscomp$0, + props + ); + else + isFallback + ? (JSCompiler_inline_result$jscomp$3 = null) + : (pushTitleImpl(renderState.hoistableChunks, props), + (JSCompiler_inline_result$jscomp$3 = void 0)); + return JSCompiler_inline_result$jscomp$3; + case "link": + var noscriptTagInScope$jscomp$0 = formatContext.tagScope & 1, + isFallback$jscomp$0 = formatContext.tagScope & 4, + rel = props.rel, + href = props.href, + precedence = props.precedence; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$0 || + null != props.itemProp || + "string" !== typeof rel || + "string" !== typeof href || + "" === href + ) { + pushLinkImpl(target$jscomp$0, props); + var JSCompiler_inline_result$jscomp$4 = null; + } else if ("stylesheet" === props.rel) + if ( + "string" !== typeof precedence || + null != props.disabled || + props.onLoad || + props.onError + ) + JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + ); + else { + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + if (null !== resourceState) { + resumableState.styleResources[href] = null; + styleQueue || + ((styleQueue = { + precedence: escapeTextForBrowser(precedence), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)); + var resource = { + state: 0, + props: assign({}, props, { + "data-precedence": props.precedence, + precedence: null + }) + }; + if (resourceState) { + 2 === resourceState.length && + adoptPreloadCredentials(resource.props, resourceState); + var preloadResource = renderState.preloads.stylesheets.get(href); + preloadResource && 0 < preloadResource.length + ? (preloadResource.length = 0) + : (resource.state = 1); + } + styleQueue.sheets.set(href, resource); + hoistableState && hoistableState.stylesheets.add(resource); + } else if (styleQueue) { + var resource$9 = styleQueue.sheets.get(href); + resource$9 && + hoistableState && + hoistableState.stylesheets.add(resource$9); + } + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$4 = null; + } + else + props.onLoad || props.onError + ? (JSCompiler_inline_result$jscomp$4 = pushLinkImpl( + target$jscomp$0, + props + )) + : (textEmbedded && target$jscomp$0.push(textSeparator), + (JSCompiler_inline_result$jscomp$4 = isFallback$jscomp$0 + ? null + : pushLinkImpl(renderState.hoistableChunks, props))); + return JSCompiler_inline_result$jscomp$4; + case "script": + var noscriptTagInScope$jscomp$1 = formatContext.tagScope & 1, + asyncProp = props.async; + if ( + "string" !== typeof props.src || + !props.src || + !asyncProp || + "function" === typeof asyncProp || + "symbol" === typeof asyncProp || + props.onLoad || + props.onError || + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$1 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$5 = pushScriptImpl( + target$jscomp$0, + props + ); + else { + var key = props.src; + if ("module" === props.type) { + var resources = resumableState.moduleScriptResources; + var preloads = renderState.preloads.moduleScripts; + } else + (resources = resumableState.scriptResources), + (preloads = renderState.preloads.scripts); + var resourceState$jscomp$0 = resources.hasOwnProperty(key) + ? resources[key] + : void 0; + if (null !== resourceState$jscomp$0) { + resources[key] = null; + var scriptProps = props; + if (resourceState$jscomp$0) { + 2 === resourceState$jscomp$0.length && + ((scriptProps = assign({}, props)), + adoptPreloadCredentials(scriptProps, resourceState$jscomp$0)); + var preloadResource$jscomp$0 = preloads.get(key); + preloadResource$jscomp$0 && (preloadResource$jscomp$0.length = 0); + } + var resource$jscomp$0 = []; + renderState.scripts.add(resource$jscomp$0); + pushScriptImpl(resource$jscomp$0, scriptProps); + } + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$5 = null; + } + return JSCompiler_inline_result$jscomp$5; + case "style": + var noscriptTagInScope$jscomp$2 = formatContext.tagScope & 1, + precedence$jscomp$0 = props.precedence, + href$jscomp$0 = props.href, + nonce = props.nonce; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$2 || + null != props.itemProp || + "string" !== typeof precedence$jscomp$0 || + "string" !== typeof href$jscomp$0 || + "" === href$jscomp$0 + ) { + target$jscomp$0.push(startChunkForTag("style")); + var children$jscomp$6 = null, + innerHTML$jscomp$5 = null, + propKey$jscomp$8; + for (propKey$jscomp$8 in props) + if (hasOwnProperty.call(props, propKey$jscomp$8)) { + var propValue$jscomp$8 = props[propKey$jscomp$8]; + if (null != propValue$jscomp$8) + switch (propKey$jscomp$8) { + case "children": + children$jscomp$6 = propValue$jscomp$8; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$5 = propValue$jscomp$8; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$8, + propValue$jscomp$8 + ); + } + } + target$jscomp$0.push(endOfStartTag); + var child = Array.isArray(children$jscomp$6) + ? 2 > children$jscomp$6.length + ? children$jscomp$6[0] + : null + : children$jscomp$6; + "function" !== typeof child && + "symbol" !== typeof child && + null !== child && + void 0 !== child && + target$jscomp$0.push(("" + child).replace(styleRegex, styleReplacer)); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$5, children$jscomp$6); + target$jscomp$0.push(endChunkForTag("style")); + var JSCompiler_inline_result$jscomp$6 = null; + } else { + var styleQueue$jscomp$0 = renderState.styles.get(precedence$jscomp$0); + if ( + null !== + (resumableState.styleResources.hasOwnProperty(href$jscomp$0) + ? resumableState.styleResources[href$jscomp$0] + : void 0) + ) { + resumableState.styleResources[href$jscomp$0] = null; + styleQueue$jscomp$0 || + ((styleQueue$jscomp$0 = { + precedence: escapeTextForBrowser(precedence$jscomp$0), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence$jscomp$0, styleQueue$jscomp$0)); + var nonceStyle = renderState.nonce.style; + if (!nonceStyle || nonceStyle === nonce) { + styleQueue$jscomp$0.hrefs.push(escapeTextForBrowser(href$jscomp$0)); + var target = styleQueue$jscomp$0.rules, + children$jscomp$7 = null, + innerHTML$jscomp$6 = null, + propKey$jscomp$9; + for (propKey$jscomp$9 in props) + if (hasOwnProperty.call(props, propKey$jscomp$9)) { + var propValue$jscomp$9 = props[propKey$jscomp$9]; + if (null != propValue$jscomp$9) + switch (propKey$jscomp$9) { + case "children": + children$jscomp$7 = propValue$jscomp$9; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$6 = propValue$jscomp$9; + } + } + var child$jscomp$0 = Array.isArray(children$jscomp$7) + ? 2 > children$jscomp$7.length + ? children$jscomp$7[0] + : null + : children$jscomp$7; + "function" !== typeof child$jscomp$0 && + "symbol" !== typeof child$jscomp$0 && + null !== child$jscomp$0 && + void 0 !== child$jscomp$0 && + target.push( + ("" + child$jscomp$0).replace(styleRegex, styleReplacer) + ); + pushInnerHTML(target, innerHTML$jscomp$6, children$jscomp$7); + } + } + styleQueue$jscomp$0 && + hoistableState && + hoistableState.styles.add(styleQueue$jscomp$0); + textEmbedded && target$jscomp$0.push(textSeparator); + JSCompiler_inline_result$jscomp$6 = void 0; + } + return JSCompiler_inline_result$jscomp$6; + case "meta": + var noscriptTagInScope$jscomp$3 = formatContext.tagScope & 1, + isFallback$jscomp$1 = formatContext.tagScope & 4; + if ( + 4 === formatContext.insertionMode || + noscriptTagInScope$jscomp$3 || + null != props.itemProp + ) + var JSCompiler_inline_result$jscomp$7 = pushSelfClosing( + target$jscomp$0, + props, + "meta" + ); + else + textEmbedded && target$jscomp$0.push(textSeparator), + (JSCompiler_inline_result$jscomp$7 = isFallback$jscomp$1 + ? null + : "string" === typeof props.charSet + ? pushSelfClosing(renderState.charsetChunks, props, "meta") + : "viewport" === props.name + ? pushSelfClosing(renderState.viewportChunks, props, "meta") + : pushSelfClosing(renderState.hoistableChunks, props, "meta")); + return JSCompiler_inline_result$jscomp$7; + case "listing": + case "pre": + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$8 = null, + innerHTML$jscomp$7 = null, + propKey$jscomp$10; + for (propKey$jscomp$10 in props) + if (hasOwnProperty.call(props, propKey$jscomp$10)) { + var propValue$jscomp$10 = props[propKey$jscomp$10]; + if (null != propValue$jscomp$10) + switch (propKey$jscomp$10) { + case "children": + children$jscomp$8 = propValue$jscomp$10; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$7 = propValue$jscomp$10; + break; + default: + pushAttribute( + target$jscomp$0, + propKey$jscomp$10, + propValue$jscomp$10 + ); + } + } + target$jscomp$0.push(endOfStartTag); + if (null != innerHTML$jscomp$7) { + if (null != children$jscomp$8) + throw Error( + "Can only set one of `children` or `props.dangerouslySetInnerHTML`." + ); + if ( + "object" !== typeof innerHTML$jscomp$7 || + !("__html" in innerHTML$jscomp$7) + ) + throw Error( + "`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://react.dev/link/dangerously-set-inner-html for more information." + ); + var html = innerHTML$jscomp$7.__html; + null !== html && + void 0 !== html && + ("string" === typeof html && 0 < html.length && "\n" === html[0] + ? target$jscomp$0.push(leadingNewline, html) + : target$jscomp$0.push("" + html)); + } + "string" === typeof children$jscomp$8 && + "\n" === children$jscomp$8[0] && + target$jscomp$0.push(leadingNewline); + return children$jscomp$8; + case "img": + var pictureOrNoScriptTagInScope = formatContext.tagScope & 3, + src = props.src, + srcSet = props.srcSet; + if ( + !( + "lazy" === props.loading || + (!src && !srcSet) || + ("string" !== typeof src && null != src) || + ("string" !== typeof srcSet && null != srcSet) || + "low" === props.fetchPriority || + pictureOrNoScriptTagInScope + ) && + ("string" !== typeof src || + ":" !== src[4] || + ("d" !== src[0] && "D" !== src[0]) || + ("a" !== src[1] && "A" !== src[1]) || + ("t" !== src[2] && "T" !== src[2]) || + ("a" !== src[3] && "A" !== src[3])) && + ("string" !== typeof srcSet || + ":" !== srcSet[4] || + ("d" !== srcSet[0] && "D" !== srcSet[0]) || + ("a" !== srcSet[1] && "A" !== srcSet[1]) || + ("t" !== srcSet[2] && "T" !== srcSet[2]) || + ("a" !== srcSet[3] && "A" !== srcSet[3])) + ) { + null !== hoistableState && + formatContext.tagScope & 64 && + (hoistableState.suspenseyImages = !0); + var sizes = "string" === typeof props.sizes ? props.sizes : void 0, + key$jscomp$0 = srcSet ? srcSet + "\n" + (sizes || "") : src, + promotablePreloads = renderState.preloads.images, + resource$jscomp$1 = promotablePreloads.get(key$jscomp$0); + if (resource$jscomp$1) { + if ( + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ) + promotablePreloads.delete(key$jscomp$0), + renderState.highImagePreloads.add(resource$jscomp$1); + } else if ( + !resumableState.imageResources.hasOwnProperty(key$jscomp$0) + ) { + resumableState.imageResources[key$jscomp$0] = PRELOAD_NO_CREDS; + var input = props.crossOrigin; + var JSCompiler_inline_result$jscomp$8 = + "string" === typeof input + ? "use-credentials" === input + ? input + : "" + : void 0; + var headers = renderState.headers, + header; + headers && + 0 < headers.remainingCapacity && + "string" !== typeof props.srcSet && + ("high" === props.fetchPriority || + 500 > headers.highImagePreloads.length) && + ((header = getPreloadAsHeader(src, "image", { + imageSrcSet: props.srcSet, + imageSizes: props.sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + nonce: props.nonce, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.refererPolicy + })), + 0 <= (headers.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key$jscomp$0] = PRELOAD_NO_CREDS), + headers.highImagePreloads && (headers.highImagePreloads += ", "), + (headers.highImagePreloads += header)) + : ((resource$jscomp$1 = []), + pushLinkImpl(resource$jscomp$1, { + rel: "preload", + as: "image", + href: srcSet ? void 0 : src, + imageSrcSet: srcSet, + imageSizes: sizes, + crossOrigin: JSCompiler_inline_result$jscomp$8, + integrity: props.integrity, + type: props.type, + fetchPriority: props.fetchPriority, + referrerPolicy: props.referrerPolicy + }), + "high" === props.fetchPriority || + 10 > renderState.highImagePreloads.size + ? renderState.highImagePreloads.add(resource$jscomp$1) + : (renderState.bulkPreloads.add(resource$jscomp$1), + promotablePreloads.set(key$jscomp$0, resource$jscomp$1))); + } + } + return pushSelfClosing(target$jscomp$0, props, "img"); + case "base": + case "area": + case "br": + case "col": + case "embed": + case "hr": + case "keygen": + case "param": + case "source": + case "track": + case "wbr": + return pushSelfClosing(target$jscomp$0, props, type); + case "annotation-xml": + case "color-profile": + case "font-face": + case "font-face-src": + case "font-face-uri": + case "font-face-format": + case "font-face-name": + case "missing-glyph": + break; + case "head": + if (2 > formatContext.insertionMode) { + var preamble = preambleState || renderState.preamble; + if (preamble.headChunks) + throw Error("The `<head>` tag may only be rendered once."); + null !== preambleState && + target$jscomp$0.push(headPreambleContributionChunk); + preamble.headChunks = []; + var JSCompiler_inline_result$jscomp$9 = pushStartSingletonElement( + preamble.headChunks, + props, + "head" + ); + } else + JSCompiler_inline_result$jscomp$9 = pushStartGenericElement( + target$jscomp$0, + props, + "head" + ); + return JSCompiler_inline_result$jscomp$9; + case "body": + if (2 > formatContext.insertionMode) { + var preamble$jscomp$0 = preambleState || renderState.preamble; + if (preamble$jscomp$0.bodyChunks) + throw Error("The `<body>` tag may only be rendered once."); + null !== preambleState && + target$jscomp$0.push(bodyPreambleContributionChunk); + preamble$jscomp$0.bodyChunks = []; + var JSCompiler_inline_result$jscomp$10 = pushStartSingletonElement( + preamble$jscomp$0.bodyChunks, + props, + "body" + ); + } else + JSCompiler_inline_result$jscomp$10 = pushStartGenericElement( + target$jscomp$0, + props, + "body" + ); + return JSCompiler_inline_result$jscomp$10; + case "html": + if (0 === formatContext.insertionMode) { + var preamble$jscomp$1 = preambleState || renderState.preamble; + if (preamble$jscomp$1.htmlChunks) + throw Error("The `<html>` tag may only be rendered once."); + null !== preambleState && + target$jscomp$0.push(htmlPreambleContributionChunk); + preamble$jscomp$1.htmlChunks = [doctypeChunk]; + var JSCompiler_inline_result$jscomp$11 = pushStartSingletonElement( + preamble$jscomp$1.htmlChunks, + props, + "html" + ); + } else + JSCompiler_inline_result$jscomp$11 = pushStartGenericElement( + target$jscomp$0, + props, + "html" + ); + return JSCompiler_inline_result$jscomp$11; + default: + if (-1 !== type.indexOf("-")) { + target$jscomp$0.push(startChunkForTag(type)); + var children$jscomp$9 = null, + innerHTML$jscomp$8 = null, + propKey$jscomp$11; + for (propKey$jscomp$11 in props) + if (hasOwnProperty.call(props, propKey$jscomp$11)) { + var propValue$jscomp$11 = props[propKey$jscomp$11]; + if (null != propValue$jscomp$11) { + var attributeName = propKey$jscomp$11; + switch (propKey$jscomp$11) { + case "children": + children$jscomp$9 = propValue$jscomp$11; + break; + case "dangerouslySetInnerHTML": + innerHTML$jscomp$8 = propValue$jscomp$11; + break; + case "style": + pushStyleAttribute(target$jscomp$0, propValue$jscomp$11); + break; + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "ref": + break; + case "className": + attributeName = "class"; + default: + if ( + isAttributeNameSafe(propKey$jscomp$11) && + "function" !== typeof propValue$jscomp$11 && + "symbol" !== typeof propValue$jscomp$11 && + !1 !== propValue$jscomp$11 + ) { + if (!0 === propValue$jscomp$11) propValue$jscomp$11 = ""; + else if ("object" === typeof propValue$jscomp$11) continue; + target$jscomp$0.push( + attributeSeparator, + attributeName, + attributeAssign, + escapeTextForBrowser(propValue$jscomp$11), + attributeEnd + ); + } + } + } + } + target$jscomp$0.push(endOfStartTag); + pushInnerHTML(target$jscomp$0, innerHTML$jscomp$8, children$jscomp$9); + return children$jscomp$9; + } + } + return pushStartGenericElement(target$jscomp$0, props, type); +} +var endTagCache = new Map(); +function endChunkForTag(tag) { + var chunk = endTagCache.get(tag); + void 0 === chunk && + ((chunk = stringToPrecomputedChunk("</" + tag + ">")), + endTagCache.set(tag, chunk)); + return chunk; +} +function hoistPreambleState(renderState, preambleState) { + renderState = renderState.preamble; + null === renderState.htmlChunks && + preambleState.htmlChunks && + (renderState.htmlChunks = preambleState.htmlChunks); + null === renderState.headChunks && + preambleState.headChunks && + (renderState.headChunks = preambleState.headChunks); + null === renderState.bodyChunks && + preambleState.bodyChunks && + (renderState.bodyChunks = preambleState.bodyChunks); +} +function writeBootstrap(destination, renderState) { + renderState = renderState.bootstrapChunks; + for (var i = 0; i < renderState.length - 1; i++) + writeChunk(destination, renderState[i]); + return i < renderState.length + ? ((i = renderState[i]), + (renderState.length = 0), + writeChunkAndReturn(destination, i)) + : !0; +} +var shellTimeRuntimeScript = stringToPrecomputedChunk( + "requestAnimationFrame(function(){$RT=performance.now()});" + ), + placeholder1 = stringToPrecomputedChunk('<template id="'), + placeholder2 = stringToPrecomputedChunk('"></template>'), + startActivityBoundary = stringToPrecomputedChunk("\x3c!--&--\x3e"), + endActivityBoundary = stringToPrecomputedChunk("\x3c!--/&--\x3e"), + startCompletedSuspenseBoundary = stringToPrecomputedChunk("\x3c!--$--\x3e"), + startPendingSuspenseBoundary1 = stringToPrecomputedChunk( + '\x3c!--$?--\x3e<template id="' + ), + startPendingSuspenseBoundary2 = stringToPrecomputedChunk('"></template>'), + startClientRenderedSuspenseBoundary = + stringToPrecomputedChunk("\x3c!--$!--\x3e"), + endSuspenseBoundary = stringToPrecomputedChunk("\x3c!--/$--\x3e"), + clientRenderedSuspenseBoundaryError1 = stringToPrecomputedChunk("<template"), + clientRenderedSuspenseBoundaryErrorAttrInterstitial = + stringToPrecomputedChunk('"'), + clientRenderedSuspenseBoundaryError1A = + stringToPrecomputedChunk(' data-dgst="'); +stringToPrecomputedChunk(' data-msg="'); +stringToPrecomputedChunk(' data-stck="'); +stringToPrecomputedChunk(' data-cstck="'); +var clientRenderedSuspenseBoundaryError2 = + stringToPrecomputedChunk("></template>"); +function writeStartPendingSuspenseBoundary(destination, renderState, id) { + writeChunk(destination, startPendingSuspenseBoundary1); + if (null === id) + throw Error( + "An ID must have been assigned before we can complete the boundary." + ); + writeChunk(destination, renderState.boundaryPrefix); + writeChunk(destination, id.toString(16)); + return writeChunkAndReturn(destination, startPendingSuspenseBoundary2); +} +var startSegmentHTML = stringToPrecomputedChunk('<div hidden id="'), + startSegmentHTML2 = stringToPrecomputedChunk('">'), + endSegmentHTML = stringToPrecomputedChunk("</div>"), + startSegmentSVG = stringToPrecomputedChunk( + '<svg aria-hidden="true" style="display:none" id="' + ), + startSegmentSVG2 = stringToPrecomputedChunk('">'), + endSegmentSVG = stringToPrecomputedChunk("</svg>"), + startSegmentMathML = stringToPrecomputedChunk( + '<math aria-hidden="true" style="display:none" id="' + ), + startSegmentMathML2 = stringToPrecomputedChunk('">'), + endSegmentMathML = stringToPrecomputedChunk("</math>"), + startSegmentTable = stringToPrecomputedChunk('<table hidden id="'), + startSegmentTable2 = stringToPrecomputedChunk('">'), + endSegmentTable = stringToPrecomputedChunk("</table>"), + startSegmentTableBody = stringToPrecomputedChunk('<table hidden><tbody id="'), + startSegmentTableBody2 = stringToPrecomputedChunk('">'), + endSegmentTableBody = stringToPrecomputedChunk("</tbody></table>"), + startSegmentTableRow = stringToPrecomputedChunk('<table hidden><tr id="'), + startSegmentTableRow2 = stringToPrecomputedChunk('">'), + endSegmentTableRow = stringToPrecomputedChunk("</tr></table>"), + startSegmentColGroup = stringToPrecomputedChunk( + '<table hidden><colgroup id="' + ), + startSegmentColGroup2 = stringToPrecomputedChunk('">'), + endSegmentColGroup = stringToPrecomputedChunk("</colgroup></table>"); +function writeStartSegment(destination, renderState, formatContext, id) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return ( + writeChunk(destination, startSegmentHTML), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentHTML2) + ); + case 4: + return ( + writeChunk(destination, startSegmentSVG), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentSVG2) + ); + case 5: + return ( + writeChunk(destination, startSegmentMathML), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentMathML2) + ); + case 6: + return ( + writeChunk(destination, startSegmentTable), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentTable2) + ); + case 7: + return ( + writeChunk(destination, startSegmentTableBody), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentTableBody2) + ); + case 8: + return ( + writeChunk(destination, startSegmentTableRow), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentTableRow2) + ); + case 9: + return ( + writeChunk(destination, startSegmentColGroup), + writeChunk(destination, renderState.segmentPrefix), + writeChunk(destination, id.toString(16)), + writeChunkAndReturn(destination, startSegmentColGroup2) + ); + default: + throw Error("Unknown insertion mode. This is a bug in React."); + } +} +function writeEndSegment(destination, formatContext) { + switch (formatContext.insertionMode) { + case 0: + case 1: + case 3: + case 2: + return writeChunkAndReturn(destination, endSegmentHTML); + case 4: + return writeChunkAndReturn(destination, endSegmentSVG); + case 5: + return writeChunkAndReturn(destination, endSegmentMathML); + case 6: + return writeChunkAndReturn(destination, endSegmentTable); + case 7: + return writeChunkAndReturn(destination, endSegmentTableBody); + case 8: + return writeChunkAndReturn(destination, endSegmentTableRow); + case 9: + return writeChunkAndReturn(destination, endSegmentColGroup); + default: + throw Error("Unknown insertion mode. This is a bug in React."); + } +} +var completeSegmentScript1Full = stringToPrecomputedChunk( + '$RS=function(a,b){a=document.getElementById(a);b=document.getElementById(b);for(a.parentNode.removeChild(a);a.firstChild;)b.parentNode.insertBefore(a.firstChild,b);b.parentNode.removeChild(b)};$RS("' + ), + completeSegmentScript1Partial = stringToPrecomputedChunk('$RS("'), + completeSegmentScript2 = stringToPrecomputedChunk('","'), + completeSegmentScriptEnd = stringToPrecomputedChunk('")\x3c/script>'); +stringToPrecomputedChunk('<template data-rsi="" data-sid="'); +stringToPrecomputedChunk('" data-pid="'); +var completeBoundaryScriptFunctionOnly = stringToPrecomputedChunk( + '$RB=[];$RV=function(a){$RT=performance.now();for(var b=0;b<a.length;b+=2){var c=a[b],e=a[b+1];null!==e.parentNode&&e.parentNode.removeChild(e);var f=c.parentNode;if(f){var g=c.previousSibling,h=0;do{if(c&&8===c.nodeType){var d=c.data;if("/$"===d||"/&"===d)if(0===h)break;else h--;else"$"!==d&&"$?"!==d&&"$~"!==d&&"$!"!==d&&"&"!==d||h++}d=c.nextSibling;f.removeChild(c);c=d}while(c);for(;e.firstChild;)f.insertBefore(e.firstChild,c);g.data="$";g._reactRetry&&requestAnimationFrame(g._reactRetry)}}a.length=0};\n$RC=function(a,b){if(b=document.getElementById(b))(a=document.getElementById(a))?(a.previousSibling.data="$~",$RB.push(a,b),2===$RB.length&&("number"!==typeof $RT?requestAnimationFrame($RV.bind(null,$RB)):(a=performance.now(),setTimeout($RV.bind(null,$RB),2300>a&&2E3<a?2300-a:$RT+300-a)))):b.parentNode.removeChild(b)};' + ), + completeBoundaryScript1Partial = stringToPrecomputedChunk('$RC("'), + completeBoundaryWithStylesScript1FullPartial = stringToPrecomputedChunk( + '$RM=new Map;$RR=function(n,w,p){function u(q){this._p=null;q()}for(var r=new Map,t=document,h,b,e=t.querySelectorAll("link[data-precedence],style[data-precedence]"),v=[],k=0;b=e[k++];)"not all"===b.getAttribute("media")?v.push(b):("LINK"===b.tagName&&$RM.set(b.getAttribute("href"),b),r.set(b.dataset.precedence,h=b));e=0;b=[];var l,a;for(k=!0;;){if(k){var f=p[e++];if(!f){k=!1;e=0;continue}var c=!1,m=0;var d=f[m++];if(a=$RM.get(d)){var g=a._p;c=!0}else{a=t.createElement("link");a.href=d;a.rel=\n"stylesheet";for(a.dataset.precedence=l=f[m++];g=f[m++];)a.setAttribute(g,f[m++]);g=a._p=new Promise(function(q,x){a.onload=u.bind(a,q);a.onerror=u.bind(a,x)});$RM.set(d,a)}d=a.getAttribute("media");!g||d&&!matchMedia(d).matches||b.push(g);if(c)continue}else{a=v[e++];if(!a)break;l=a.getAttribute("data-precedence");a.removeAttribute("media")}c=r.get(l)||h;c===h&&(h=a);r.set(l,a);c?c.parentNode.insertBefore(a,c.nextSibling):(c=t.head,c.insertBefore(a,c.firstChild))}if(p=document.getElementById(n))p.previousSibling.data=\n"$~";Promise.all(b).then($RC.bind(null,n,w),$RX.bind(null,n,"CSS failed to load"))};$RR("' + ), + completeBoundaryWithStylesScript1Partial = stringToPrecomputedChunk('$RR("'), + completeBoundaryScript2 = stringToPrecomputedChunk('","'), + completeBoundaryScript3a = stringToPrecomputedChunk('",'), + completeBoundaryScript3b = stringToPrecomputedChunk('"'), + completeBoundaryScriptEnd = stringToPrecomputedChunk(")\x3c/script>"); +stringToPrecomputedChunk('<template data-rci="" data-bid="'); +stringToPrecomputedChunk('<template data-rri="" data-bid="'); +stringToPrecomputedChunk('" data-sid="'); +stringToPrecomputedChunk('" data-sty="'); +var clientRenderScriptFunctionOnly = stringToPrecomputedChunk( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};' + ), + clientRenderScript1Full = stringToPrecomputedChunk( + '$RX=function(b,c,d,e,f){var a=document.getElementById(b);a&&(b=a.previousSibling,b.data="$!",a=a.dataset,c&&(a.dgst=c),d&&(a.msg=d),e&&(a.stck=e),f&&(a.cstck=f),b._reactRetry&&b._reactRetry())};;$RX("' + ), + clientRenderScript1Partial = stringToPrecomputedChunk('$RX("'), + clientRenderScript1A = stringToPrecomputedChunk('"'), + clientRenderErrorScriptArgInterstitial = stringToPrecomputedChunk(","), + clientRenderScriptEnd = stringToPrecomputedChunk(")\x3c/script>"); +stringToPrecomputedChunk('<template data-rxi="" data-bid="'); +stringToPrecomputedChunk('" data-dgst="'); +stringToPrecomputedChunk('" data-msg="'); +stringToPrecomputedChunk('" data-stck="'); +stringToPrecomputedChunk('" data-cstck="'); +var regexForJSStringsInInstructionScripts = /[<\u2028\u2029]/g; +function escapeJSStringsForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInInstructionScripts, + function (match) { + switch (match) { + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var regexForJSStringsInScripts = /[&><\u2028\u2029]/g; +function escapeJSObjectForInstructionScripts(input) { + return JSON.stringify(input).replace( + regexForJSStringsInScripts, + function (match) { + switch (match) { + case "&": + return "\\u0026"; + case ">": + return "\\u003e"; + case "<": + return "\\u003c"; + case "\u2028": + return "\\u2028"; + case "\u2029": + return "\\u2029"; + default: + throw Error( + "escapeJSObjectForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } + } + ); +} +var lateStyleTagResourceOpen1 = stringToPrecomputedChunk( + ' media="not all" data-precedence="' + ), + lateStyleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'), + lateStyleTagResourceOpen3 = stringToPrecomputedChunk('">'), + lateStyleTagTemplateClose = stringToPrecomputedChunk("</style>"), + currentlyRenderingBoundaryHasStylesToHoist = !1, + destinationHasCapacity = !0; +function flushStyleTagsLateForBoundary(styleQueue) { + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs, + i = 0; + if (hrefs.length) { + writeChunk(this, currentlyFlushingRenderState.startInlineStyle); + writeChunk(this, lateStyleTagResourceOpen1); + writeChunk(this, styleQueue.precedence); + for (writeChunk(this, lateStyleTagResourceOpen2); i < hrefs.length - 1; i++) + writeChunk(this, hrefs[i]), writeChunk(this, spaceSeparator); + writeChunk(this, hrefs[i]); + writeChunk(this, lateStyleTagResourceOpen3); + for (i = 0; i < rules.length; i++) writeChunk(this, rules[i]); + destinationHasCapacity = writeChunkAndReturn( + this, + lateStyleTagTemplateClose + ); + currentlyRenderingBoundaryHasStylesToHoist = !0; + rules.length = 0; + hrefs.length = 0; + } +} +function hasStylesToHoist(stylesheet) { + return 2 !== stylesheet.state + ? (currentlyRenderingBoundaryHasStylesToHoist = !0) + : !1; +} +function writeHoistablesForBoundary(destination, hoistableState, renderState) { + currentlyRenderingBoundaryHasStylesToHoist = !1; + destinationHasCapacity = !0; + currentlyFlushingRenderState = renderState; + hoistableState.styles.forEach(flushStyleTagsLateForBoundary, destination); + currentlyFlushingRenderState = null; + hoistableState.stylesheets.forEach(hasStylesToHoist); + currentlyRenderingBoundaryHasStylesToHoist && + (renderState.stylesToHoist = !0); + return destinationHasCapacity; +} +function flushResource(resource) { + for (var i = 0; i < resource.length; i++) writeChunk(this, resource[i]); + resource.length = 0; +} +var stylesheetFlushingQueue = []; +function flushStyleInPreamble(stylesheet) { + pushLinkImpl(stylesheetFlushingQueue, stylesheet.props); + for (var i = 0; i < stylesheetFlushingQueue.length; i++) + writeChunk(this, stylesheetFlushingQueue[i]); + stylesheetFlushingQueue.length = 0; + stylesheet.state = 2; +} +var styleTagResourceOpen1 = stringToPrecomputedChunk(' data-precedence="'), + styleTagResourceOpen2 = stringToPrecomputedChunk('" data-href="'), + spaceSeparator = stringToPrecomputedChunk(" "), + styleTagResourceOpen3 = stringToPrecomputedChunk('">'), + styleTagResourceClose = stringToPrecomputedChunk("</style>"); +function flushStylesInPreamble(styleQueue) { + var hasStylesheets = 0 < styleQueue.sheets.size; + styleQueue.sheets.forEach(flushStyleInPreamble, this); + styleQueue.sheets.clear(); + var rules = styleQueue.rules, + hrefs = styleQueue.hrefs; + if (!hasStylesheets || hrefs.length) { + writeChunk(this, currentlyFlushingRenderState.startInlineStyle); + writeChunk(this, styleTagResourceOpen1); + writeChunk(this, styleQueue.precedence); + styleQueue = 0; + if (hrefs.length) { + for ( + writeChunk(this, styleTagResourceOpen2); + styleQueue < hrefs.length - 1; + styleQueue++ + ) + writeChunk(this, hrefs[styleQueue]), writeChunk(this, spaceSeparator); + writeChunk(this, hrefs[styleQueue]); + } + writeChunk(this, styleTagResourceOpen3); + for (styleQueue = 0; styleQueue < rules.length; styleQueue++) + writeChunk(this, rules[styleQueue]); + writeChunk(this, styleTagResourceClose); + rules.length = 0; + hrefs.length = 0; + } +} +function preloadLateStyle(stylesheet) { + if (0 === stylesheet.state) { + stylesheet.state = 1; + var props = stylesheet.props; + pushLinkImpl(stylesheetFlushingQueue, { + rel: "preload", + as: "style", + href: stylesheet.props.href, + crossOrigin: props.crossOrigin, + fetchPriority: props.fetchPriority, + integrity: props.integrity, + media: props.media, + hrefLang: props.hrefLang, + referrerPolicy: props.referrerPolicy + }); + for ( + stylesheet = 0; + stylesheet < stylesheetFlushingQueue.length; + stylesheet++ + ) + writeChunk(this, stylesheetFlushingQueue[stylesheet]); + stylesheetFlushingQueue.length = 0; + } +} +function preloadLateStyles(styleQueue) { + styleQueue.sheets.forEach(preloadLateStyle, this); + styleQueue.sheets.clear(); +} +stringToPrecomputedChunk('<link rel="expect" href="#'); +stringToPrecomputedChunk('" blocking="render"/>'); +var completedShellIdAttributeStart = stringToPrecomputedChunk(' id="'); +function pushCompletedShellIdAttribute(target, resumableState) { + 0 === (resumableState.instructions & 32) && + ((resumableState.instructions |= 32), + target.push( + completedShellIdAttributeStart, + escapeTextForBrowser("_" + resumableState.idPrefix + "R_"), + attributeEnd + )); +} +var arrayFirstOpenBracket = stringToPrecomputedChunk("["), + arraySubsequentOpenBracket = stringToPrecomputedChunk(",["), + arrayInterstitial = stringToPrecomputedChunk(","), + arrayCloseBracket = stringToPrecomputedChunk("]"); +function writeStyleResourceDependenciesInJS(destination, hoistableState) { + writeChunk(destination, arrayFirstOpenBracket); + var nextArrayOpenBrackChunk = arrayFirstOpenBracket; + hoistableState.stylesheets.forEach(function (resource) { + if (2 !== resource.state) + if (3 === resource.state) + writeChunk(destination, nextArrayOpenBrackChunk), + writeChunk( + destination, + escapeJSObjectForInstructionScripts("" + resource.props.href) + ), + writeChunk(destination, arrayCloseBracket), + (nextArrayOpenBrackChunk = arraySubsequentOpenBracket); + else { + writeChunk(destination, nextArrayOpenBrackChunk); + var precedence = resource.props["data-precedence"], + props = resource.props, + coercedHref = sanitizeURL("" + resource.props.href); + writeChunk( + destination, + escapeJSObjectForInstructionScripts(coercedHref) + ); + precedence = "" + precedence; + writeChunk(destination, arrayInterstitial); + writeChunk( + destination, + escapeJSObjectForInstructionScripts(precedence) + ); + for (var propKey in props) + if ( + hasOwnProperty.call(props, propKey) && + ((precedence = props[propKey]), null != precedence) + ) + switch (propKey) { + case "href": + case "rel": + case "precedence": + case "data-precedence": + break; + case "children": + case "dangerouslySetInnerHTML": + throw Error( + "link is a self-closing tag and must neither have `children` nor use `dangerouslySetInnerHTML`." + ); + default: + writeStyleResourceAttributeInJS( + destination, + propKey, + precedence + ); + } + writeChunk(destination, arrayCloseBracket); + nextArrayOpenBrackChunk = arraySubsequentOpenBracket; + resource.state = 3; + } + }); + writeChunk(destination, arrayCloseBracket); +} +function writeStyleResourceAttributeInJS(destination, name, value) { + var attributeName = name.toLowerCase(); + switch (typeof value) { + case "function": + case "symbol": + return; + } + switch (name) { + case "innerHTML": + case "dangerouslySetInnerHTML": + case "suppressContentEditableWarning": + case "suppressHydrationWarning": + case "style": + case "ref": + return; + case "className": + attributeName = "class"; + name = "" + value; + break; + case "hidden": + if (!1 === value) return; + name = ""; + break; + case "src": + case "href": + value = sanitizeURL(value); + name = "" + value; + break; + default: + if ( + (2 < name.length && + ("o" === name[0] || "O" === name[0]) && + ("n" === name[1] || "N" === name[1])) || + !isAttributeNameSafe(name) + ) + return; + name = "" + value; + } + writeChunk(destination, arrayInterstitial); + writeChunk(destination, escapeJSObjectForInstructionScripts(attributeName)); + writeChunk(destination, arrayInterstitial); + writeChunk(destination, escapeJSObjectForInstructionScripts(name)); +} +function createHoistableState() { + return { styles: new Set(), stylesheets: new Set(), suspenseyImages: !1 }; +} +function prefetchDNS(href) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + if (!resumableState.dnsResources.hasOwnProperty(href)) { + resumableState.dnsResources[href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) + JSCompiler_temp = + ((header = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=dns-prefetch"), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + JSCompiler_temp + ? ((renderState.resets.dns[href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((header = []), + pushLinkImpl(header, { href: href, rel: "dns-prefetch" }), + renderState.preconnects.add(header)); + } + enqueueFlush(request); + } + } else previousDispatcher.D(href); +} +function preconnect(href, crossOrigin) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if ("string" === typeof href && href) { + var bucket = + "use-credentials" === crossOrigin + ? "credentials" + : "string" === typeof crossOrigin + ? "anonymous" + : "default"; + if (!resumableState.connectResources[bucket].hasOwnProperty(href)) { + resumableState.connectResources[bucket][href] = null; + resumableState = renderState.headers; + var header, JSCompiler_temp; + if ( + (JSCompiler_temp = + resumableState && 0 < resumableState.remainingCapacity) + ) { + JSCompiler_temp = + "<" + + ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ) + + ">; rel=preconnect"; + if ("string" === typeof crossOrigin) { + var escapedCrossOrigin = ("" + crossOrigin).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + JSCompiler_temp += '; crossorigin="' + escapedCrossOrigin + '"'; + } + JSCompiler_temp = + ((header = JSCompiler_temp), + 0 <= (resumableState.remainingCapacity -= header.length + 2)); + } + JSCompiler_temp + ? ((renderState.resets.connect[bucket][href] = null), + resumableState.preconnects && (resumableState.preconnects += ", "), + (resumableState.preconnects += header)) + : ((bucket = []), + pushLinkImpl(bucket, { + rel: "preconnect", + href: href, + crossOrigin: crossOrigin + }), + renderState.preconnects.add(bucket)); + } + enqueueFlush(request); + } + } else previousDispatcher.C(href, crossOrigin); +} +function preload(href, as, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (as && href) { + switch (as) { + case "image": + if (options) { + var imageSrcSet = options.imageSrcSet; + var imageSizes = options.imageSizes; + var fetchPriority = options.fetchPriority; + } + var key = imageSrcSet + ? imageSrcSet + "\n" + (imageSizes || "") + : href; + if (resumableState.imageResources.hasOwnProperty(key)) return; + resumableState.imageResources[key] = PRELOAD_NO_CREDS; + resumableState = renderState.headers; + var header; + resumableState && + 0 < resumableState.remainingCapacity && + "string" !== typeof imageSrcSet && + "high" === fetchPriority && + ((header = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= header.length + 2)) + ? ((renderState.resets.image[key] = PRELOAD_NO_CREDS), + resumableState.highImagePreloads && + (resumableState.highImagePreloads += ", "), + (resumableState.highImagePreloads += header)) + : ((resumableState = []), + pushLinkImpl( + resumableState, + assign( + { rel: "preload", href: imageSrcSet ? void 0 : href, as: as }, + options + ) + ), + "high" === fetchPriority + ? renderState.highImagePreloads.add(resumableState) + : (renderState.bulkPreloads.add(resumableState), + renderState.preloads.images.set(key, resumableState))); + break; + case "style": + if (resumableState.styleResources.hasOwnProperty(href)) return; + imageSrcSet = []; + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.styleResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.stylesheets.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + break; + case "script": + if (resumableState.scriptResources.hasOwnProperty(href)) return; + imageSrcSet = []; + renderState.preloads.scripts.set(href, imageSrcSet); + renderState.bulkPreloads.add(imageSrcSet); + pushLinkImpl( + imageSrcSet, + assign({ rel: "preload", href: href, as: as }, options) + ); + resumableState.scriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + break; + default: + if (resumableState.unknownResources.hasOwnProperty(as)) { + if ( + ((imageSrcSet = resumableState.unknownResources[as]), + imageSrcSet.hasOwnProperty(href)) + ) + return; + } else + (imageSrcSet = {}), + (resumableState.unknownResources[as] = imageSrcSet); + imageSrcSet[href] = PRELOAD_NO_CREDS; + if ( + (resumableState = renderState.headers) && + 0 < resumableState.remainingCapacity && + "font" === as && + ((key = getPreloadAsHeader(href, as, options)), + 0 <= (resumableState.remainingCapacity -= key.length + 2)) + ) + (renderState.resets.font[href] = PRELOAD_NO_CREDS), + resumableState.fontPreloads && + (resumableState.fontPreloads += ", "), + (resumableState.fontPreloads += key); + else + switch ( + ((resumableState = []), + (href = assign({ rel: "preload", href: href, as: as }, options)), + pushLinkImpl(resumableState, href), + as) + ) { + case "font": + renderState.fontPreloads.add(resumableState); + break; + default: + renderState.bulkPreloads.add(resumableState); + } + } + enqueueFlush(request); + } + } else previousDispatcher.L(href, as, options); +} +function preloadModule(href, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + var as = + options && "string" === typeof options.as ? options.as : "script"; + switch (as) { + case "script": + if (resumableState.moduleScriptResources.hasOwnProperty(href)) return; + as = []; + resumableState.moduleScriptResources[href] = + !options || + ("string" !== typeof options.crossOrigin && + "string" !== typeof options.integrity) + ? PRELOAD_NO_CREDS + : [options.crossOrigin, options.integrity]; + renderState.preloads.moduleScripts.set(href, as); + break; + default: + if (resumableState.moduleUnknownResources.hasOwnProperty(as)) { + var resources = resumableState.unknownResources[as]; + if (resources.hasOwnProperty(href)) return; + } else + (resources = {}), + (resumableState.moduleUnknownResources[as] = resources); + as = []; + resources[href] = PRELOAD_NO_CREDS; + } + pushLinkImpl(as, assign({ rel: "modulepreload", href: href }, options)); + renderState.bulkPreloads.add(as); + enqueueFlush(request); + } + } else previousDispatcher.m(href, options); +} +function preinitStyle(href, precedence, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (href) { + precedence = precedence || "default"; + var styleQueue = renderState.styles.get(precedence), + resourceState = resumableState.styleResources.hasOwnProperty(href) + ? resumableState.styleResources[href] + : void 0; + null !== resourceState && + ((resumableState.styleResources[href] = null), + styleQueue || + ((styleQueue = { + precedence: escapeTextForBrowser(precedence), + rules: [], + hrefs: [], + sheets: new Map() + }), + renderState.styles.set(precedence, styleQueue)), + (precedence = { + state: 0, + props: assign( + { rel: "stylesheet", href: href, "data-precedence": precedence }, + options + ) + }), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(precedence.props, resourceState), + (renderState = renderState.preloads.stylesheets.get(href)) && + 0 < renderState.length + ? (renderState.length = 0) + : (precedence.state = 1)), + styleQueue.sheets.set(href, precedence), + enqueueFlush(request)); + } + } else previousDispatcher.S(href, precedence, options); +} +function preinitScript(src, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.scriptResources.hasOwnProperty(src) + ? resumableState.scriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.scriptResources[src] = null), + (options = assign({ src: src, async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.scripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.X(src, options); +} +function preinitModuleScript(src, options) { + var request = resolveRequest(); + if (request) { + var resumableState = request.resumableState, + renderState = request.renderState; + if (src) { + var resourceState = resumableState.moduleScriptResources.hasOwnProperty( + src + ) + ? resumableState.moduleScriptResources[src] + : void 0; + null !== resourceState && + ((resumableState.moduleScriptResources[src] = null), + (options = assign({ src: src, type: "module", async: !0 }, options)), + resourceState && + (2 === resourceState.length && + adoptPreloadCredentials(options, resourceState), + (src = renderState.preloads.moduleScripts.get(src))) && + (src.length = 0), + (src = []), + renderState.scripts.add(src), + pushScriptImpl(src, options), + enqueueFlush(request)); + } + } else previousDispatcher.M(src, options); +} +function adoptPreloadCredentials(target, preloadState) { + null == target.crossOrigin && (target.crossOrigin = preloadState[0]); + null == target.integrity && (target.integrity = preloadState[1]); +} +function getPreloadAsHeader(href, as, params) { + href = ("" + href).replace( + regexForHrefInLinkHeaderURLContext, + escapeHrefForLinkHeaderURLContextReplacer + ); + as = ("" + as).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ); + as = "<" + href + '>; rel=preload; as="' + as + '"'; + for (var paramName in params) + hasOwnProperty.call(params, paramName) && + ((href = params[paramName]), + "string" === typeof href && + (as += + "; " + + paramName.toLowerCase() + + '="' + + ("" + href).replace( + regexForLinkHeaderQuotedParamValueContext, + escapeStringForLinkHeaderQuotedParamValueContextReplacer + ) + + '"')); + return as; +} +var regexForHrefInLinkHeaderURLContext = /[<>\r\n]/g; +function escapeHrefForLinkHeaderURLContextReplacer(match) { + switch (match) { + case "<": + return "%3C"; + case ">": + return "%3E"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeLinkHrefForHeaderContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +var regexForLinkHeaderQuotedParamValueContext = /["';,\r\n]/g; +function escapeStringForLinkHeaderQuotedParamValueContextReplacer(match) { + switch (match) { + case '"': + return "%22"; + case "'": + return "%27"; + case ";": + return "%3B"; + case ",": + return "%2C"; + case "\n": + return "%0A"; + case "\r": + return "%0D"; + default: + throw Error( + "escapeStringForLinkHeaderQuotedParamValueContextReplacer encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React" + ); + } +} +function hoistStyleQueueDependency(styleQueue) { + this.styles.add(styleQueue); +} +function hoistStylesheetDependency(stylesheet) { + this.stylesheets.add(stylesheet); +} +function hoistHoistables(parentState, childState) { + childState.styles.forEach(hoistStyleQueueDependency, parentState); + childState.stylesheets.forEach(hoistStylesheetDependency, parentState); + childState.suspenseyImages && (parentState.suspenseyImages = !0); +} +function hasSuspenseyContent(hoistableState) { + return 0 < hoistableState.stylesheets.size || hoistableState.suspenseyImages; +} +var bind = Function.prototype.bind, + requestStorage = new async_hooks.AsyncLocalStorage(), + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"); +function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch (type.$$typeof) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; +} +var emptyContextObject = {}, + currentActiveSnapshot = null; +function popToNearestCommonAncestor(prev, next) { + if (prev !== next) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + var parentNext = next.parent; + if (null === prev) { + if (null !== parentNext) + throw Error( + "The stacks must reach the root at the same time. This is a bug in React." + ); + } else { + if (null === parentNext) + throw Error( + "The stacks must reach the root at the same time. This is a bug in React." + ); + popToNearestCommonAncestor(prev, parentNext); + } + next.context._currentValue = next.value; + } +} +function popAllPrevious(prev) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + null !== prev && popAllPrevious(prev); +} +function pushAllNext(next) { + var parentNext = next.parent; + null !== parentNext && pushAllNext(parentNext); + next.context._currentValue = next.value; +} +function popPreviousToCommonLevel(prev, next) { + prev.context._currentValue = prev.parentValue; + prev = prev.parent; + if (null === prev) + throw Error( + "The depth must equal at least at zero before reaching the root. This is a bug in React." + ); + prev.depth === next.depth + ? popToNearestCommonAncestor(prev, next) + : popPreviousToCommonLevel(prev, next); +} +function popNextToCommonLevel(prev, next) { + var parentNext = next.parent; + if (null === parentNext) + throw Error( + "The depth must equal at least at zero before reaching the root. This is a bug in React." + ); + prev.depth === parentNext.depth + ? popToNearestCommonAncestor(prev, parentNext) + : popNextToCommonLevel(prev, parentNext); + next.context._currentValue = next.value; +} +function switchContext(newSnapshot) { + var prev = currentActiveSnapshot; + prev !== newSnapshot && + (null === prev + ? pushAllNext(newSnapshot) + : null === newSnapshot + ? popAllPrevious(prev) + : prev.depth === newSnapshot.depth + ? popToNearestCommonAncestor(prev, newSnapshot) + : prev.depth > newSnapshot.depth + ? popPreviousToCommonLevel(prev, newSnapshot) + : popNextToCommonLevel(prev, newSnapshot), + (currentActiveSnapshot = newSnapshot)); +} +var classComponentUpdater = { + enqueueSetState: function (inst, payload) { + inst = inst._reactInternals; + null !== inst.queue && inst.queue.push(payload); + }, + enqueueReplaceState: function (inst, payload) { + inst = inst._reactInternals; + inst.replace = !0; + inst.queue = [payload]; + }, + enqueueForceUpdate: function () {} + }, + emptyTreeContext = { id: 1, overflow: "" }; +function pushTreeContext(baseContext, totalChildren, index) { + var baseIdWithLeadingBit = baseContext.id; + baseContext = baseContext.overflow; + var baseLength = 32 - clz32(baseIdWithLeadingBit) - 1; + baseIdWithLeadingBit &= ~(1 << baseLength); + index += 1; + var length = 32 - clz32(totalChildren) + baseLength; + if (30 < length) { + var numberOfOverflowBits = baseLength - (baseLength % 5); + length = ( + baseIdWithLeadingBit & + ((1 << numberOfOverflowBits) - 1) + ).toString(32); + baseIdWithLeadingBit >>= numberOfOverflowBits; + baseLength -= numberOfOverflowBits; + return { + id: + (1 << (32 - clz32(totalChildren) + baseLength)) | + (index << baseLength) | + baseIdWithLeadingBit, + overflow: length + baseContext + }; + } + return { + id: (1 << length) | (index << baseLength) | baseIdWithLeadingBit, + overflow: baseContext + }; +} +var clz32 = Math.clz32 ? Math.clz32 : clz32Fallback, + log = Math.log, + LN2 = Math.LN2; +function clz32Fallback(x) { + x >>>= 0; + return 0 === x ? 32 : (31 - ((log(x) / LN2) | 0)) | 0; +} +function noop() {} +var SuspenseException = Error( + "Suspense Exception: This is not a real error! It's an implementation detail of `use` to interrupt the current render. You must either rethrow it immediately, or move the `use` call outside of the `try/catch` block. Capturing without rethrowing will lead to unexpected behavior.\n\nTo handle async errors, wrap your component in an error boundary, or call the promise's `.catch` method and pass the result to `use`." +); +function trackUsedThenable(thenableState, thenable, index) { + index = thenableState[index]; + void 0 === index + ? thenableState.push(thenable) + : index !== thenable && (thenable.then(noop, noop), (thenable = index)); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + "string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenableState = thenable), + (thenableState.status = "pending"), + thenableState.then( + function (fulfilledValue) { + if ("pending" === thenable.status) { + var fulfilledThenable = thenable; + fulfilledThenable.status = "fulfilled"; + fulfilledThenable.value = fulfilledValue; + } + }, + function (error) { + if ("pending" === thenable.status) { + var rejectedThenable = thenable; + rejectedThenable.status = "rejected"; + rejectedThenable.reason = error; + } + } + )); + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + suspendedThenable = thenable; + throw SuspenseException; + } +} +var suspendedThenable = null; +function getSuspendedThenable() { + if (null === suspendedThenable) + throw Error( + "Expected a suspended thenable. This is a bug in React. Please file an issue." + ); + var thenable = suspendedThenable; + suspendedThenable = null; + return thenable; +} +function is(x, y) { + return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y); +} +var objectIs = "function" === typeof Object.is ? Object.is : is, + currentlyRenderingComponent = null, + currentlyRenderingTask = null, + currentlyRenderingRequest = null, + currentlyRenderingKeyPath = null, + firstWorkInProgressHook = null, + workInProgressHook = null, + isReRender = !1, + didScheduleRenderPhaseUpdate = !1, + localIdCounter = 0, + actionStateCounter = 0, + actionStateMatchingIndex = -1, + thenableIndexCounter = 0, + thenableState = null, + renderPhaseUpdates = null, + numberOfReRenders = 0; +function resolveCurrentlyRenderingComponent() { + if (null === currentlyRenderingComponent) + throw Error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return currentlyRenderingComponent; +} +function createHook() { + if (0 < numberOfReRenders) + throw Error("Rendered more hooks than during the previous render"); + return { memoizedState: null, queue: null, next: null }; +} +function createWorkInProgressHook() { + null === workInProgressHook + ? null === firstWorkInProgressHook + ? ((isReRender = !1), + (firstWorkInProgressHook = workInProgressHook = createHook())) + : ((isReRender = !0), (workInProgressHook = firstWorkInProgressHook)) + : null === workInProgressHook.next + ? ((isReRender = !1), + (workInProgressHook = workInProgressHook.next = createHook())) + : ((isReRender = !0), (workInProgressHook = workInProgressHook.next)); + return workInProgressHook; +} +function getThenableStateAfterSuspending() { + var state = thenableState; + thenableState = null; + return state; +} +function resetHooksState() { + currentlyRenderingKeyPath = + currentlyRenderingRequest = + currentlyRenderingTask = + currentlyRenderingComponent = + null; + didScheduleRenderPhaseUpdate = !1; + firstWorkInProgressHook = null; + numberOfReRenders = 0; + workInProgressHook = renderPhaseUpdates = null; +} +function basicStateReducer(state, action) { + return "function" === typeof action ? action(state) : action; +} +function useReducer(reducer, initialArg, init) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + if (isReRender) { + var queue = workInProgressHook.queue; + initialArg = queue.dispatch; + if ( + null !== renderPhaseUpdates && + ((init = renderPhaseUpdates.get(queue)), void 0 !== init) + ) { + renderPhaseUpdates.delete(queue); + queue = workInProgressHook.memoizedState; + do (queue = reducer(queue, init.action)), (init = init.next); + while (null !== init); + workInProgressHook.memoizedState = queue; + return [queue, initialArg]; + } + return [workInProgressHook.memoizedState, initialArg]; + } + reducer = + reducer === basicStateReducer + ? "function" === typeof initialArg + ? initialArg() + : initialArg + : void 0 !== init + ? init(initialArg) + : initialArg; + workInProgressHook.memoizedState = reducer; + reducer = workInProgressHook.queue = { last: null, dispatch: null }; + reducer = reducer.dispatch = dispatchAction.bind( + null, + currentlyRenderingComponent, + reducer + ); + return [workInProgressHook.memoizedState, reducer]; +} +function useMemo(nextCreate, deps) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + deps = void 0 === deps ? null : deps; + if (null !== workInProgressHook) { + var prevState = workInProgressHook.memoizedState; + if (null !== prevState && null !== deps) { + var prevDeps = prevState[1]; + a: if (null === prevDeps) prevDeps = !1; + else { + for (var i = 0; i < prevDeps.length && i < deps.length; i++) + if (!objectIs(deps[i], prevDeps[i])) { + prevDeps = !1; + break a; + } + prevDeps = !0; + } + if (prevDeps) return prevState[0]; + } + } + nextCreate = nextCreate(); + workInProgressHook.memoizedState = [nextCreate, deps]; + return nextCreate; +} +function dispatchAction(componentIdentity, queue, action) { + if (25 <= numberOfReRenders) + throw Error( + "Too many re-renders. React limits the number of renders to prevent an infinite loop." + ); + if (componentIdentity === currentlyRenderingComponent) + if ( + ((didScheduleRenderPhaseUpdate = !0), + (componentIdentity = { action: action, next: null }), + null === renderPhaseUpdates && (renderPhaseUpdates = new Map()), + (action = renderPhaseUpdates.get(queue)), + void 0 === action) + ) + renderPhaseUpdates.set(queue, componentIdentity); + else { + for (queue = action; null !== queue.next; ) queue = queue.next; + queue.next = componentIdentity; + } +} +function throwOnUseEffectEventCall() { + throw Error( + "A function wrapped in useEffectEvent can't be called during rendering." + ); +} +function unsupportedStartTransition() { + throw Error("startTransition cannot be called during server rendering."); +} +function unsupportedSetOptimisticState() { + throw Error("Cannot update optimistic state while rendering."); +} +function createPostbackActionStateKey(permalink, componentKeyPath, hookIndex) { + if (void 0 !== permalink) return "p" + permalink; + permalink = JSON.stringify([componentKeyPath, null, hookIndex]); + componentKeyPath = crypto.createHash("md5"); + componentKeyPath.update(permalink); + return "k" + componentKeyPath.digest("hex"); +} +function useActionState(action, initialState, permalink) { + resolveCurrentlyRenderingComponent(); + var actionStateHookIndex = actionStateCounter++, + request = currentlyRenderingRequest; + if ("function" === typeof action.$$FORM_ACTION) { + var nextPostbackStateKey = null, + componentKeyPath = currentlyRenderingKeyPath; + request = request.formState; + var isSignatureEqual = action.$$IS_SIGNATURE_EQUAL; + if (null !== request && "function" === typeof isSignatureEqual) { + var postbackKey = request[1]; + isSignatureEqual.call(action, request[2], request[3]) && + ((nextPostbackStateKey = createPostbackActionStateKey( + permalink, + componentKeyPath, + actionStateHookIndex + )), + postbackKey === nextPostbackStateKey && + ((actionStateMatchingIndex = actionStateHookIndex), + (initialState = request[0]))); + } + var boundAction = action.bind(null, initialState); + action = function (payload) { + boundAction(payload); + }; + "function" === typeof boundAction.$$FORM_ACTION && + (action.$$FORM_ACTION = function (prefix) { + prefix = boundAction.$$FORM_ACTION(prefix); + void 0 !== permalink && + ((permalink += ""), (prefix.action = permalink)); + var formData = prefix.data; + formData && + (null === nextPostbackStateKey && + (nextPostbackStateKey = createPostbackActionStateKey( + permalink, + componentKeyPath, + actionStateHookIndex + )), + formData.append("$ACTION_KEY", nextPostbackStateKey)); + return prefix; + }); + return [initialState, action, !1]; + } + var boundAction$22 = action.bind(null, initialState); + return [ + initialState, + function (payload) { + boundAction$22(payload); + }, + !1 + ]; +} +function unwrapThenable(thenable) { + var index = thenableIndexCounter; + thenableIndexCounter += 1; + null === thenableState && (thenableState = []); + return trackUsedThenable(thenableState, thenable, index); +} +function unsupportedRefresh() { + throw Error("Cache cannot be refreshed during server rendering."); +} +var HooksDispatcher = { + readContext: function (context) { + return context._currentValue; + }, + use: function (usable) { + if (null !== usable && "object" === typeof usable) { + if ("function" === typeof usable.then) return unwrapThenable(usable); + if (usable.$$typeof === REACT_CONTEXT_TYPE) return usable._currentValue; + } + throw Error("An unsupported type was passed to use(): " + String(usable)); + }, + useContext: function (context) { + resolveCurrentlyRenderingComponent(); + return context._currentValue; + }, + useMemo: useMemo, + useReducer: useReducer, + useRef: function (initialValue) { + currentlyRenderingComponent = resolveCurrentlyRenderingComponent(); + workInProgressHook = createWorkInProgressHook(); + var previousRef = workInProgressHook.memoizedState; + return null === previousRef + ? ((initialValue = { current: initialValue }), + (workInProgressHook.memoizedState = initialValue)) + : previousRef; + }, + useState: function (initialState) { + return useReducer(basicStateReducer, initialState); + }, + useInsertionEffect: noop, + useLayoutEffect: noop, + useCallback: function (callback, deps) { + return useMemo(function () { + return callback; + }, deps); + }, + useImperativeHandle: noop, + useEffect: noop, + useDebugValue: noop, + useDeferredValue: function (value, initialValue) { + resolveCurrentlyRenderingComponent(); + return void 0 !== initialValue ? initialValue : value; + }, + useTransition: function () { + resolveCurrentlyRenderingComponent(); + return [!1, unsupportedStartTransition]; + }, + useId: function () { + var JSCompiler_inline_result = currentlyRenderingTask.treeContext; + var overflow = JSCompiler_inline_result.overflow; + JSCompiler_inline_result = JSCompiler_inline_result.id; + JSCompiler_inline_result = + ( + JSCompiler_inline_result & + ~(1 << (32 - clz32(JSCompiler_inline_result) - 1)) + ).toString(32) + overflow; + var resumableState = currentResumableState; + if (null === resumableState) + throw Error( + "Invalid hook call. Hooks can only be called inside of the body of a function component." + ); + overflow = localIdCounter++; + JSCompiler_inline_result = + "_" + resumableState.idPrefix + "R_" + JSCompiler_inline_result; + 0 < overflow && (JSCompiler_inline_result += "H" + overflow.toString(32)); + return JSCompiler_inline_result + "_"; + }, + useSyncExternalStore: function (subscribe, getSnapshot, getServerSnapshot) { + if (void 0 === getServerSnapshot) + throw Error( + "Missing getServerSnapshot, which is required for server-rendered content. Will revert to client rendering." + ); + return getServerSnapshot(); + }, + useOptimistic: function (passthrough) { + resolveCurrentlyRenderingComponent(); + return [passthrough, unsupportedSetOptimisticState]; + }, + useActionState: useActionState, + useFormState: useActionState, + useHostTransitionStatus: function () { + resolveCurrentlyRenderingComponent(); + return sharedNotPendingObject; + }, + useMemoCache: function (size) { + for (var data = Array(size), i = 0; i < size; i++) + data[i] = REACT_MEMO_CACHE_SENTINEL; + return data; + }, + useCacheRefresh: function () { + return unsupportedRefresh; + }, + useEffectEvent: function () { + return throwOnUseEffectEventCall; + } + }, + currentResumableState = null, + DefaultAsyncDispatcher = { + getCacheForType: function () { + throw Error("Not implemented."); + }, + cacheSignal: function () { + throw Error("Not implemented."); + } + }; +function prepareStackTrace(error, structuredStackTrace) { + error = (error.name || "Error") + ": " + (error.message || ""); + for (var i = 0; i < structuredStackTrace.length; i++) + error += "\n at " + structuredStackTrace[i].toString(); + return error; +} +var prefix, suffix; +function describeBuiltInComponentFrame(name) { + if (void 0 === prefix) + try { + throw Error(); + } catch (x) { + var match = x.stack.trim().match(/\n( *(at )?)/); + prefix = (match && match[1]) || ""; + suffix = + -1 < x.stack.indexOf("\n at") + ? " (<anonymous>)" + : -1 < x.stack.indexOf("@") + ? "@unknown:0:0" + : ""; + } + return "\n" + prefix + name + suffix; +} +var reentry = !1; +function describeNativeComponentFrame(fn, construct) { + if (!fn || reentry) return ""; + reentry = !0; + var previousPrepareStackTrace = Error.prepareStackTrace; + Error.prepareStackTrace = prepareStackTrace; + try { + var RunInRootFrame = { + DetermineComponentFrameRoot: function () { + try { + if (construct) { + var Fake = function () { + throw Error(); + }; + Object.defineProperty(Fake.prototype, "props", { + set: function () { + throw Error(); + } + }); + if ("object" === typeof Reflect && Reflect.construct) { + try { + Reflect.construct(Fake, []); + } catch (x) { + var control = x; + } + Reflect.construct(fn, [], Fake); + } else { + try { + Fake.call(); + } catch (x$24) { + control = x$24; + } + fn.call(Fake.prototype); + } + } else { + try { + throw Error(); + } catch (x$25) { + control = x$25; + } + (Fake = fn()) && + "function" === typeof Fake.catch && + Fake.catch(function () {}); + } + } catch (sample) { + if (sample && control && "string" === typeof sample.stack) + return [sample.stack, control.stack]; + } + return [null, null]; + } + }; + RunInRootFrame.DetermineComponentFrameRoot.displayName = + "DetermineComponentFrameRoot"; + var namePropDescriptor = Object.getOwnPropertyDescriptor( + RunInRootFrame.DetermineComponentFrameRoot, + "name" + ); + namePropDescriptor && + namePropDescriptor.configurable && + Object.defineProperty( + RunInRootFrame.DetermineComponentFrameRoot, + "name", + { value: "DetermineComponentFrameRoot" } + ); + var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(), + sampleStack = _RunInRootFrame$Deter[0], + controlStack = _RunInRootFrame$Deter[1]; + if (sampleStack && controlStack) { + var sampleLines = sampleStack.split("\n"), + controlLines = controlStack.split("\n"); + for ( + namePropDescriptor = RunInRootFrame = 0; + RunInRootFrame < sampleLines.length && + !sampleLines[RunInRootFrame].includes("DetermineComponentFrameRoot"); + + ) + RunInRootFrame++; + for ( + ; + namePropDescriptor < controlLines.length && + !controlLines[namePropDescriptor].includes( + "DetermineComponentFrameRoot" + ); + + ) + namePropDescriptor++; + if ( + RunInRootFrame === sampleLines.length || + namePropDescriptor === controlLines.length + ) + for ( + RunInRootFrame = sampleLines.length - 1, + namePropDescriptor = controlLines.length - 1; + 1 <= RunInRootFrame && + 0 <= namePropDescriptor && + sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]; + + ) + namePropDescriptor--; + for ( + ; + 1 <= RunInRootFrame && 0 <= namePropDescriptor; + RunInRootFrame--, namePropDescriptor-- + ) + if (sampleLines[RunInRootFrame] !== controlLines[namePropDescriptor]) { + if (1 !== RunInRootFrame || 1 !== namePropDescriptor) { + do + if ( + (RunInRootFrame--, + namePropDescriptor--, + 0 > namePropDescriptor || + sampleLines[RunInRootFrame] !== + controlLines[namePropDescriptor]) + ) { + var frame = + "\n" + + sampleLines[RunInRootFrame].replace(" at new ", " at "); + fn.displayName && + frame.includes("<anonymous>") && + (frame = frame.replace("<anonymous>", fn.displayName)); + return frame; + } + while (1 <= RunInRootFrame && 0 <= namePropDescriptor); + } + break; + } + } + } finally { + (reentry = !1), (Error.prepareStackTrace = previousPrepareStackTrace); + } + return (previousPrepareStackTrace = fn ? fn.displayName || fn.name : "") + ? describeBuiltInComponentFrame(previousPrepareStackTrace) + : ""; +} +function describeComponentStackByType(type) { + if ("string" === typeof type) return describeBuiltInComponentFrame(type); + if ("function" === typeof type) + return type.prototype && type.prototype.isReactComponent + ? describeNativeComponentFrame(type, !0) + : describeNativeComponentFrame(type, !1); + if ("object" === typeof type && null !== type) { + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + return describeNativeComponentFrame(type.render, !1); + case REACT_MEMO_TYPE: + return describeNativeComponentFrame(type.type, !1); + case REACT_LAZY_TYPE: + var lazyComponent = type, + payload = lazyComponent._payload; + lazyComponent = lazyComponent._init; + try { + type = lazyComponent(payload); + } catch (x) { + return describeBuiltInComponentFrame("Lazy"); + } + return describeComponentStackByType(type); + } + if ("string" === typeof type.name) { + a: { + payload = type.name; + lazyComponent = type.env; + var location = type.debugLocation; + if ( + null != location && + ((type = Error.prepareStackTrace), + (Error.prepareStackTrace = prepareStackTrace), + (location = location.stack), + (Error.prepareStackTrace = type), + location.startsWith("Error: react-stack-top-frame\n") && + (location = location.slice(29)), + (type = location.indexOf("\n")), + -1 !== type && (location = location.slice(type + 1)), + (type = location.indexOf("react_stack_bottom_frame")), + -1 !== type && (type = location.lastIndexOf("\n", type)), + (type = -1 !== type ? (location = location.slice(0, type)) : ""), + (location = type.lastIndexOf("\n")), + (type = -1 === location ? type : type.slice(location + 1)), + -1 !== type.indexOf(payload)) + ) { + payload = "\n" + type; + break a; + } + payload = describeBuiltInComponentFrame( + payload + (lazyComponent ? " [" + lazyComponent + "]" : "") + ); + } + return payload; + } + } + switch (type) { + case REACT_SUSPENSE_LIST_TYPE: + return describeBuiltInComponentFrame("SuspenseList"); + case REACT_SUSPENSE_TYPE: + return describeBuiltInComponentFrame("Suspense"); + } + return ""; +} +function isEligibleForOutlining(request, boundary) { + return ( + (500 < boundary.byteSize || hasSuspenseyContent(boundary.contentState)) && + null === boundary.contentPreamble + ); +} +function defaultErrorHandler(error) { + if ( + "object" === typeof error && + null !== error && + "string" === typeof error.environmentName + ) { + var JSCompiler_inline_result = error.environmentName; + error = [error].slice(0); + "string" === typeof error[0] + ? error.splice( + 0, + 1, + "\u001b[0m\u001b[7m%c%s\u001b[0m%c " + error[0], + "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px", + " " + JSCompiler_inline_result + " ", + "" + ) + : error.splice( + 0, + 0, + "\u001b[0m\u001b[7m%c%s\u001b[0m%c", + "background: #e6e6e6;background: light-dark(rgba(0,0,0,0.1), rgba(255,255,255,0.25));color: #000000;color: light-dark(#000000, #ffffff);border-radius: 2px", + " " + JSCompiler_inline_result + " ", + "" + ); + error.unshift(console); + JSCompiler_inline_result = bind.apply(console.error, error); + JSCompiler_inline_result(); + } else console.error(error); + return null; +} +function RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + var abortSet = new Set(); + this.destination = null; + this.flushScheduled = !1; + this.resumableState = resumableState; + this.renderState = renderState; + this.rootFormatContext = rootFormatContext; + this.progressiveChunkSize = + void 0 === progressiveChunkSize ? 12800 : progressiveChunkSize; + this.status = 10; + this.fatalError = null; + this.pendingRootTasks = this.allPendingTasks = this.nextSegmentId = 0; + this.completedPreambleSegments = this.completedRootSegment = null; + this.byteSize = 0; + this.abortableTasks = abortSet; + this.pingedTasks = []; + this.clientRenderedBoundaries = []; + this.completedBoundaries = []; + this.partialBoundaries = []; + this.trackedPostpones = null; + this.onError = void 0 === onError ? defaultErrorHandler : onError; + this.onPostpone = void 0 === onPostpone ? noop : onPostpone; + this.onAllReady = void 0 === onAllReady ? noop : onAllReady; + this.onShellReady = void 0 === onShellReady ? noop : onShellReady; + this.onShellError = void 0 === onShellError ? noop : onShellError; + this.onFatalError = void 0 === onFatalError ? noop : onFatalError; + this.formState = void 0 === formState ? null : formState; +} +function createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState +) { + resumableState = new RequestInstance( + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + formState + ); + renderState = createPendingSegment( + resumableState, + 0, + null, + rootFormatContext, + !1, + !1 + ); + renderState.parentFlushed = !0; + children = createRenderTask( + resumableState, + null, + children, + -1, + null, + renderState, + null, + null, + resumableState.abortableTasks, + null, + rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + resumableState.pingedTasks.push(children); + return resumableState; +} +function createPrerenderRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + children = createRequest( + children, + resumableState, + renderState, + rootFormatContext, + progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + void 0 + ); + children.trackedPostpones = { + workingMap: new Map(), + rootNodes: [], + rootSlots: null + }; + return children; +} +function resumeRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + renderState = new RequestInstance( + postponedState.resumableState, + renderState, + postponedState.rootFormatContext, + postponedState.progressiveChunkSize, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone, + null + ); + renderState.nextSegmentId = postponedState.nextSegmentId; + if ("number" === typeof postponedState.replaySlots) + return ( + (onError = createPendingSegment( + renderState, + 0, + null, + postponedState.rootFormatContext, + !1, + !1 + )), + (onError.parentFlushed = !0), + (children = createRenderTask( + renderState, + null, + children, + -1, + null, + onError, + null, + null, + renderState.abortableTasks, + null, + postponedState.rootFormatContext, + null, + emptyTreeContext, + null, + null + )), + pushComponentStack(children), + renderState.pingedTasks.push(children), + renderState + ); + children = createReplayTask( + renderState, + null, + { + nodes: postponedState.replayNodes, + slots: postponedState.replaySlots, + pendingTasks: 0 + }, + children, + -1, + null, + null, + renderState.abortableTasks, + null, + postponedState.rootFormatContext, + null, + emptyTreeContext, + null, + null + ); + pushComponentStack(children); + renderState.pingedTasks.push(children); + return renderState; +} +function resumeAndPrerenderRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone +) { + children = resumeRequest( + children, + postponedState, + renderState, + onError, + onAllReady, + onShellReady, + onShellError, + onFatalError, + onPostpone + ); + children.trackedPostpones = { + workingMap: new Map(), + rootNodes: [], + rootSlots: null + }; + return children; +} +var currentRequest = null; +function resolveRequest() { + if (currentRequest) return currentRequest; + var store = requestStorage.getStore(); + return store ? store : null; +} +function pingTask(request, task) { + request.pingedTasks.push(task); + 1 === request.pingedTasks.length && + ((request.flushScheduled = null !== request.destination), + null !== request.trackedPostpones || 10 === request.status + ? scheduleMicrotask(function () { + return performWork(request); + }) + : setImmediate(function () { + return performWork(request); + })); +} +function createSuspenseBoundary( + request, + row, + fallbackAbortableTasks, + contentPreamble, + fallbackPreamble +) { + fallbackAbortableTasks = { + status: 0, + rootSegmentID: -1, + parentFlushed: !1, + pendingTasks: 0, + row: row, + completedSegments: [], + byteSize: 0, + fallbackAbortableTasks: fallbackAbortableTasks, + errorDigest: null, + contentState: createHoistableState(), + fallbackState: createHoistableState(), + contentPreamble: contentPreamble, + fallbackPreamble: fallbackPreamble, + trackedContentKeyPath: null, + trackedFallbackNode: null + }; + null !== row && + (row.pendingTasks++, + (contentPreamble = row.boundaries), + null !== contentPreamble && + (request.allPendingTasks++, + fallbackAbortableTasks.pendingTasks++, + contentPreamble.push(fallbackAbortableTasks)), + (request = row.inheritedHoistables), + null !== request && + hoistHoistables(fallbackAbortableTasks.contentState, request)); + return fallbackAbortableTasks; +} +function createRenderTask( + request, + thenableState, + node, + childIndex, + blockedBoundary, + blockedSegment, + blockedPreamble, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + var task = { + replay: null, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: blockedSegment, + blockedPreamble: blockedPreamble, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createReplayTask( + request, + thenableState, + replay, + node, + childIndex, + blockedBoundary, + hoistableState, + abortSet, + keyPath, + formatContext, + context, + treeContext, + row, + componentStack +) { + request.allPendingTasks++; + null === blockedBoundary + ? request.pendingRootTasks++ + : blockedBoundary.pendingTasks++; + null !== row && row.pendingTasks++; + replay.pendingTasks++; + var task = { + replay: replay, + node: node, + childIndex: childIndex, + ping: function () { + return pingTask(request, task); + }, + blockedBoundary: blockedBoundary, + blockedSegment: null, + blockedPreamble: null, + hoistableState: hoistableState, + abortSet: abortSet, + keyPath: keyPath, + formatContext: formatContext, + context: context, + treeContext: treeContext, + row: row, + componentStack: componentStack, + thenableState: thenableState + }; + abortSet.add(task); + return task; +} +function createPendingSegment( + request, + index, + boundary, + parentFormatContext, + lastPushedText, + textEmbedded +) { + return { + status: 0, + parentFlushed: !1, + id: -1, + index: index, + chunks: [], + children: [], + preambleChildren: [], + parentFormatContext: parentFormatContext, + boundary: boundary, + lastPushedText: lastPushedText, + textEmbedded: textEmbedded + }; +} +function pushComponentStack(task) { + var node = task.node; + if ("object" === typeof node && null !== node) + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + task.componentStack = { parent: task.componentStack, type: node.type }; + } +} +function replaceSuspenseComponentStackWithSuspenseFallbackStack( + componentStack +) { + return null === componentStack + ? null + : { parent: componentStack.parent, type: "Suspense Fallback" }; +} +function getThrownInfo(node$jscomp$0) { + var errorInfo = {}; + node$jscomp$0 && + Object.defineProperty(errorInfo, "componentStack", { + configurable: !0, + enumerable: !0, + get: function () { + try { + var info = "", + node = node$jscomp$0; + do + (info += describeComponentStackByType(node.type)), + (node = node.parent); + while (node); + var JSCompiler_inline_result = info; + } catch (x) { + JSCompiler_inline_result = + "\nError generating stack: " + x.message + "\n" + x.stack; + } + Object.defineProperty(errorInfo, "componentStack", { + value: JSCompiler_inline_result + }); + return JSCompiler_inline_result; + } + }); + return errorInfo; +} +function logRecoverableError(request, error, errorInfo) { + request = request.onError; + error = request(error, errorInfo); + if (null == error || "string" === typeof error) return error; +} +function fatalError(request, error) { + var onShellError = request.onShellError, + onFatalError = request.onFatalError; + onShellError(error); + onFatalError(error); + null !== request.destination + ? ((request.status = 14), request.destination.destroy(error)) + : ((request.status = 13), (request.fatalError = error)); +} +function finishSuspenseListRow(request, row) { + unblockSuspenseListRow(request, row.next, row.hoistables); +} +function unblockSuspenseListRow(request, unblockedRow, inheritedHoistables) { + for (; null !== unblockedRow; ) { + null !== inheritedHoistables && + (hoistHoistables(unblockedRow.hoistables, inheritedHoistables), + (unblockedRow.inheritedHoistables = inheritedHoistables)); + var unblockedBoundaries = unblockedRow.boundaries; + if (null !== unblockedBoundaries) { + unblockedRow.boundaries = null; + for (var i = 0; i < unblockedBoundaries.length; i++) { + var unblockedBoundary = unblockedBoundaries[i]; + null !== inheritedHoistables && + hoistHoistables(unblockedBoundary.contentState, inheritedHoistables); + finishedTask(request, unblockedBoundary, null, null); + } + } + unblockedRow.pendingTasks--; + if (0 < unblockedRow.pendingTasks) break; + inheritedHoistables = unblockedRow.hoistables; + unblockedRow = unblockedRow.next; + } +} +function tryToResolveTogetherRow(request, togetherRow) { + var boundaries = togetherRow.boundaries; + if (null !== boundaries && togetherRow.pendingTasks === boundaries.length) { + for (var allCompleteAndInlinable = !0, i = 0; i < boundaries.length; i++) { + var rowBoundary = boundaries[i]; + if ( + 1 !== rowBoundary.pendingTasks || + rowBoundary.parentFlushed || + isEligibleForOutlining(request, rowBoundary) + ) { + allCompleteAndInlinable = !1; + break; + } + } + allCompleteAndInlinable && + unblockSuspenseListRow(request, togetherRow, togetherRow.hoistables); + } +} +function createSuspenseListRow(previousRow) { + var newRow = { + pendingTasks: 1, + boundaries: null, + hoistables: createHoistableState(), + inheritedHoistables: null, + together: !1, + next: null + }; + null !== previousRow && + 0 < previousRow.pendingTasks && + (newRow.pendingTasks++, + (newRow.boundaries = []), + (previousRow.next = newRow)); + return newRow; +} +function renderSuspenseListRows(request, task, keyPath, rows, revealOrder) { + var prevKeyPath = task.keyPath, + prevTreeContext = task.treeContext, + prevRow = task.row; + task.keyPath = keyPath; + keyPath = rows.length; + var previousSuspenseListRow = null; + if (null !== task.replay) { + var resumeSlots = task.replay.slots; + if (null !== resumeSlots && "object" === typeof resumeSlots) + for (var n = 0; n < keyPath; n++) { + var i = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? n + : keyPath - 1 - n, + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + var resumeSegmentID = resumeSlots[i]; + "number" === typeof resumeSegmentID + ? (resumeNode(request, task, resumeSegmentID, node, i), + delete resumeSlots[i]) + : renderNode(request, task, node, i); + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } + else + for (resumeSlots = 0; resumeSlots < keyPath; resumeSlots++) + (n = + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ? resumeSlots + : keyPath - 1 - resumeSlots), + (i = rows[n]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext(prevTreeContext, keyPath, n)), + renderNode(request, task, i, n), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } else if ( + "backwards" !== revealOrder && + "unstable_legacy-backwards" !== revealOrder + ) + for (revealOrder = 0; revealOrder < keyPath; revealOrder++) + (resumeSlots = rows[revealOrder]), + (task.row = previousSuspenseListRow = + createSuspenseListRow(previousSuspenseListRow)), + (task.treeContext = pushTreeContext( + prevTreeContext, + keyPath, + revealOrder + )), + renderNode(request, task, resumeSlots, revealOrder), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + else { + revealOrder = task.blockedSegment; + resumeSlots = revealOrder.children.length; + n = revealOrder.chunks.length; + for (i = keyPath - 1; 0 <= i; i--) { + node = rows[i]; + task.row = previousSuspenseListRow = createSuspenseListRow( + previousSuspenseListRow + ); + task.treeContext = pushTreeContext(prevTreeContext, keyPath, i); + resumeSegmentID = createPendingSegment( + request, + n, + null, + task.formatContext, + 0 === i ? revealOrder.lastPushedText : !0, + !0 + ); + revealOrder.children.splice(resumeSlots, 0, resumeSegmentID); + task.blockedSegment = resumeSegmentID; + try { + renderNode(request, task, node, i), + resumeSegmentID.lastPushedText && + resumeSegmentID.textEmbedded && + resumeSegmentID.chunks.push(textSeparator), + (resumeSegmentID.status = 1), + finishedSegment(request, task.blockedBoundary, resumeSegmentID), + 0 === --previousSuspenseListRow.pendingTasks && + finishSuspenseListRow(request, previousSuspenseListRow); + } catch (thrownValue) { + throw ( + ((resumeSegmentID.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } + } + task.blockedSegment = revealOrder; + revealOrder.lastPushedText = !1; + } + null !== prevRow && + null !== previousSuspenseListRow && + 0 < previousSuspenseListRow.pendingTasks && + (prevRow.pendingTasks++, (previousSuspenseListRow.next = prevRow)); + task.treeContext = prevTreeContext; + task.row = prevRow; + task.keyPath = prevKeyPath; +} +function renderWithHooks(request, task, keyPath, Component, props, secondArg) { + var prevThenableState = task.thenableState; + task.thenableState = null; + currentlyRenderingComponent = {}; + currentlyRenderingTask = task; + currentlyRenderingRequest = request; + currentlyRenderingKeyPath = keyPath; + actionStateCounter = localIdCounter = 0; + actionStateMatchingIndex = -1; + thenableIndexCounter = 0; + thenableState = prevThenableState; + for (request = Component(props, secondArg); didScheduleRenderPhaseUpdate; ) + (didScheduleRenderPhaseUpdate = !1), + (actionStateCounter = localIdCounter = 0), + (actionStateMatchingIndex = -1), + (thenableIndexCounter = 0), + (numberOfReRenders += 1), + (workInProgressHook = null), + (request = Component(props, secondArg)); + resetHooksState(); + return request; +} +function finishFunctionComponent( + request, + task, + keyPath, + children, + hasId, + actionStateCount, + actionStateMatchingIndex +) { + var didEmitActionStateMarkers = !1; + if (0 !== actionStateCount && null !== request.formState) { + var segment = task.blockedSegment; + if (null !== segment) { + didEmitActionStateMarkers = !0; + segment = segment.chunks; + for (var i = 0; i < actionStateCount; i++) + i === actionStateMatchingIndex + ? segment.push(formStateMarkerIsMatching) + : segment.push(formStateMarkerIsNotMatching); + } + } + actionStateCount = task.keyPath; + task.keyPath = keyPath; + hasId + ? ((keyPath = task.treeContext), + (task.treeContext = pushTreeContext(keyPath, 1, 0)), + renderNode(request, task, children, -1), + (task.treeContext = keyPath)) + : didEmitActionStateMarkers + ? renderNode(request, task, children, -1) + : renderNodeDestructive(request, task, children, -1); + task.keyPath = actionStateCount; +} +function renderElement(request, task, keyPath, type, props, ref) { + if ("function" === typeof type) + if (type.prototype && type.prototype.isReactComponent) { + var newProps = props; + if ("ref" in props) { + newProps = {}; + for (var propName in props) + "ref" !== propName && (newProps[propName] = props[propName]); + } + var defaultProps = type.defaultProps; + if (defaultProps) { + newProps === props && (newProps = assign({}, newProps, props)); + for (var propName$44 in defaultProps) + void 0 === newProps[propName$44] && + (newProps[propName$44] = defaultProps[propName$44]); + } + props = newProps; + newProps = emptyContextObject; + defaultProps = type.contextType; + "object" === typeof defaultProps && + null !== defaultProps && + (newProps = defaultProps._currentValue); + newProps = new type(props, newProps); + var initialState = void 0 !== newProps.state ? newProps.state : null; + newProps.updater = classComponentUpdater; + newProps.props = props; + newProps.state = initialState; + defaultProps = { queue: [], replace: !1 }; + newProps._reactInternals = defaultProps; + ref = type.contextType; + newProps.context = + "object" === typeof ref && null !== ref + ? ref._currentValue + : emptyContextObject; + ref = type.getDerivedStateFromProps; + "function" === typeof ref && + ((ref = ref(props, initialState)), + (initialState = + null === ref || void 0 === ref + ? initialState + : assign({}, initialState, ref)), + (newProps.state = initialState)); + if ( + "function" !== typeof type.getDerivedStateFromProps && + "function" !== typeof newProps.getSnapshotBeforeUpdate && + ("function" === typeof newProps.UNSAFE_componentWillMount || + "function" === typeof newProps.componentWillMount) + ) + if ( + ((type = newProps.state), + "function" === typeof newProps.componentWillMount && + newProps.componentWillMount(), + "function" === typeof newProps.UNSAFE_componentWillMount && + newProps.UNSAFE_componentWillMount(), + type !== newProps.state && + classComponentUpdater.enqueueReplaceState( + newProps, + newProps.state, + null + ), + null !== defaultProps.queue && 0 < defaultProps.queue.length) + ) + if ( + ((type = defaultProps.queue), + (ref = defaultProps.replace), + (defaultProps.queue = null), + (defaultProps.replace = !1), + ref && 1 === type.length) + ) + newProps.state = type[0]; + else { + defaultProps = ref ? type[0] : newProps.state; + initialState = !0; + for (ref = ref ? 1 : 0; ref < type.length; ref++) + (propName$44 = type[ref]), + (propName$44 = + "function" === typeof propName$44 + ? propName$44.call(newProps, defaultProps, props, void 0) + : propName$44), + null != propName$44 && + (initialState + ? ((initialState = !1), + (defaultProps = assign({}, defaultProps, propName$44))) + : assign(defaultProps, propName$44)); + newProps.state = defaultProps; + } + else defaultProps.queue = null; + type = newProps.render(); + if (12 === request.status) throw null; + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + } else { + type = renderWithHooks(request, task, keyPath, type, props, void 0); + if (12 === request.status) throw null; + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + } + else if ("string" === typeof type) + if (((newProps = task.blockedSegment), null === newProps)) + (newProps = props.children), + (defaultProps = task.formatContext), + (initialState = task.keyPath), + (task.formatContext = getChildFormatContext(defaultProps, type, props)), + (task.keyPath = keyPath), + renderNode(request, task, newProps, -1), + (task.formatContext = defaultProps), + (task.keyPath = initialState); + else { + initialState = pushStartInstance( + newProps.chunks, + type, + props, + request.resumableState, + request.renderState, + task.blockedPreamble, + task.hoistableState, + task.formatContext, + newProps.lastPushedText + ); + newProps.lastPushedText = !1; + defaultProps = task.formatContext; + ref = task.keyPath; + task.keyPath = keyPath; + if ( + 3 === + (task.formatContext = getChildFormatContext(defaultProps, type, props)) + .insertionMode + ) { + keyPath = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + newProps.preambleChildren.push(keyPath); + task.blockedSegment = keyPath; + try { + (keyPath.status = 6), + renderNode(request, task, initialState, -1), + keyPath.lastPushedText && + keyPath.textEmbedded && + keyPath.chunks.push(textSeparator), + (keyPath.status = 1), + finishedSegment(request, task.blockedBoundary, keyPath); + } finally { + task.blockedSegment = newProps; + } + } else renderNode(request, task, initialState, -1); + task.formatContext = defaultProps; + task.keyPath = ref; + a: { + task = newProps.chunks; + request = request.resumableState; + switch (type) { + case "title": + case "style": + case "script": + case "area": + case "base": + case "br": + case "col": + case "embed": + case "hr": + case "img": + case "input": + case "keygen": + case "link": + case "meta": + case "param": + case "source": + case "track": + case "wbr": + break a; + case "body": + if (1 >= defaultProps.insertionMode) { + request.hasBody = !0; + break a; + } + break; + case "html": + if (0 === defaultProps.insertionMode) { + request.hasHtml = !0; + break a; + } + break; + case "head": + if (1 >= defaultProps.insertionMode) break a; + } + task.push(endChunkForTag(type)); + } + newProps.lastPushedText = !1; + } + else { + switch (type) { + case REACT_LEGACY_HIDDEN_TYPE: + case REACT_STRICT_MODE_TYPE: + case REACT_PROFILER_TYPE: + case REACT_FRAGMENT_TYPE: + type = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, props.children, -1); + task.keyPath = type; + return; + case REACT_ACTIVITY_TYPE: + type = task.blockedSegment; + null === type + ? "hidden" !== props.mode && + ((type = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = type)) + : "hidden" !== props.mode && + (type.chunks.push(startActivityBoundary), + (type.lastPushedText = !1), + (newProps = task.keyPath), + (task.keyPath = keyPath), + renderNode(request, task, props.children, -1), + (task.keyPath = newProps), + type.chunks.push(endActivityBoundary), + (type.lastPushedText = !1)); + return; + case REACT_SUSPENSE_LIST_TYPE: + a: { + type = props.children; + props = props.revealOrder; + if ( + "forwards" === props || + "backwards" === props || + "unstable_legacy-backwards" === props + ) { + if (isArrayImpl(type)) { + renderSuspenseListRows(request, task, keyPath, type, props); + break a; + } + if ((newProps = getIteratorFn(type))) + if ((newProps = newProps.call(type))) { + defaultProps = newProps.next(); + if (!defaultProps.done) { + do defaultProps = newProps.next(); + while (!defaultProps.done); + renderSuspenseListRows(request, task, keyPath, type, props); + } + break a; + } + } + "together" === props + ? ((props = task.keyPath), + (newProps = task.row), + (defaultProps = task.row = createSuspenseListRow(null)), + (defaultProps.boundaries = []), + (defaultProps.together = !0), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + 0 === --defaultProps.pendingTasks && + finishSuspenseListRow(request, defaultProps), + (task.keyPath = props), + (task.row = newProps), + null !== newProps && + 0 < defaultProps.pendingTasks && + (newProps.pendingTasks++, (defaultProps.next = newProps))) + : ((props = task.keyPath), + (task.keyPath = keyPath), + renderNodeDestructive(request, task, type, -1), + (task.keyPath = props)); + } + return; + case REACT_VIEW_TRANSITION_TYPE: + case REACT_SCOPE_TYPE: + throw Error("ReactDOMServer does not yet support scope components."); + case REACT_SUSPENSE_TYPE: + a: if (null !== task.replay) { + type = task.keyPath; + newProps = task.formatContext; + defaultProps = task.row; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + newProps + ); + task.row = null; + keyPath = props.children; + try { + renderNode(request, task, keyPath, -1); + } finally { + (task.keyPath = type), + (task.formatContext = newProps), + (task.row = defaultProps); + } + } else { + type = task.keyPath; + ref = task.formatContext; + var prevRow = task.row; + propName$44 = task.blockedBoundary; + propName = task.blockedPreamble; + var parentHoistableState = task.hoistableState, + parentSegment = task.blockedSegment, + fallback = props.fallback; + props = props.children; + var fallbackAbortSet = new Set(); + var newBoundary = + 2 > task.formatContext.insertionMode + ? createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + createPreambleState(), + createPreambleState() + ) + : createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + null !== request.trackedPostpones && + (newBoundary.trackedContentKeyPath = keyPath); + var boundarySegment = createPendingSegment( + request, + parentSegment.chunks.length, + newBoundary, + task.formatContext, + !1, + !1 + ); + parentSegment.children.push(boundarySegment); + parentSegment.lastPushedText = !1; + var contentRootSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + contentRootSegment.parentFlushed = !0; + if (null !== request.trackedPostpones) { + newProps = task.componentStack; + defaultProps = [keyPath[0], "Suspense Fallback", keyPath[2]]; + initialState = [defaultProps[1], defaultProps[2], [], null]; + request.trackedPostpones.workingMap.set(defaultProps, initialState); + newBoundary.trackedFallbackNode = initialState; + task.blockedSegment = boundarySegment; + task.blockedPreamble = newBoundary.fallbackPreamble; + task.keyPath = defaultProps; + task.formatContext = getSuspenseFallbackFormatContext( + request.resumableState, + ref + ); + task.componentStack = + replaceSuspenseComponentStackWithSuspenseFallbackStack(newProps); + boundarySegment.status = 6; + try { + renderNode(request, task, fallback, -1), + boundarySegment.lastPushedText && + boundarySegment.textEmbedded && + boundarySegment.chunks.push(textSeparator), + (boundarySegment.status = 1), + finishedSegment(request, propName$44, boundarySegment); + } catch (thrownValue) { + throw ( + ((boundarySegment.status = 12 === request.status ? 3 : 4), + thrownValue) + ); + } finally { + (task.blockedSegment = parentSegment), + (task.blockedPreamble = propName), + (task.keyPath = type), + (task.formatContext = ref); + } + task = createRenderTask( + request, + null, + props, + -1, + newBoundary, + contentRootSegment, + newBoundary.contentPreamble, + newBoundary.contentState, + task.abortSet, + keyPath, + getSuspenseContentFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + null, + newProps + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } else { + task.blockedBoundary = newBoundary; + task.blockedPreamble = newBoundary.contentPreamble; + task.hoistableState = newBoundary.contentState; + task.blockedSegment = contentRootSegment; + task.keyPath = keyPath; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + ref + ); + task.row = null; + contentRootSegment.status = 6; + try { + if ( + (renderNode(request, task, props, -1), + contentRootSegment.lastPushedText && + contentRootSegment.textEmbedded && + contentRootSegment.chunks.push(textSeparator), + (contentRootSegment.status = 1), + finishedSegment(request, newBoundary, contentRootSegment), + queueCompletedSegment(newBoundary, contentRootSegment), + 0 === newBoundary.pendingTasks && 0 === newBoundary.status) + ) { + if ( + ((newBoundary.status = 1), + !isEligibleForOutlining(request, newBoundary)) + ) { + null !== prevRow && + 0 === --prevRow.pendingTasks && + finishSuspenseListRow(request, prevRow); + 0 === request.pendingRootTasks && + task.blockedPreamble && + preparePreamble(request); + break a; + } + } else + null !== prevRow && + prevRow.together && + tryToResolveTogetherRow(request, prevRow); + } catch (thrownValue$31) { + (newBoundary.status = 4), + 12 === request.status + ? ((contentRootSegment.status = 3), + (newProps = request.fatalError)) + : ((contentRootSegment.status = 4), + (newProps = thrownValue$31)), + (defaultProps = getThrownInfo(task.componentStack)), + (initialState = logRecoverableError( + request, + newProps, + defaultProps + )), + (newBoundary.errorDigest = initialState), + untrackBoundary(request, newBoundary); + } finally { + (task.blockedBoundary = propName$44), + (task.blockedPreamble = propName), + (task.hoistableState = parentHoistableState), + (task.blockedSegment = parentSegment), + (task.keyPath = type), + (task.formatContext = ref), + (task.row = prevRow); + } + task = createRenderTask( + request, + null, + fallback, + -1, + propName$44, + boundarySegment, + newBoundary.fallbackPreamble, + newBoundary.fallbackState, + fallbackAbortSet, + [keyPath[0], "Suspense Fallback", keyPath[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(task); + request.pingedTasks.push(task); + } + } + return; + } + if ("object" === typeof type && null !== type) + switch (type.$$typeof) { + case REACT_FORWARD_REF_TYPE: + if ("ref" in props) + for (parentSegment in ((newProps = {}), props)) + "ref" !== parentSegment && + (newProps[parentSegment] = props[parentSegment]); + else newProps = props; + type = renderWithHooks( + request, + task, + keyPath, + type.render, + newProps, + ref + ); + finishFunctionComponent( + request, + task, + keyPath, + type, + 0 !== localIdCounter, + actionStateCounter, + actionStateMatchingIndex + ); + return; + case REACT_MEMO_TYPE: + renderElement(request, task, keyPath, type.type, props, ref); + return; + case REACT_CONTEXT_TYPE: + defaultProps = props.children; + newProps = task.keyPath; + props = props.value; + initialState = type._currentValue; + type._currentValue = props; + ref = currentActiveSnapshot; + currentActiveSnapshot = type = { + parent: ref, + depth: null === ref ? 0 : ref.depth + 1, + context: type, + parentValue: initialState, + value: props + }; + task.context = type; + task.keyPath = keyPath; + renderNodeDestructive(request, task, defaultProps, -1); + request = currentActiveSnapshot; + if (null === request) + throw Error( + "Tried to pop a Context at the root of the app. This is a bug in React." + ); + request.context._currentValue = request.parentValue; + request = currentActiveSnapshot = request.parent; + task.context = request; + task.keyPath = newProps; + return; + case REACT_CONSUMER_TYPE: + props = props.children; + type = props(type._context._currentValue); + props = task.keyPath; + task.keyPath = keyPath; + renderNodeDestructive(request, task, type, -1); + task.keyPath = props; + return; + case REACT_LAZY_TYPE: + newProps = type._init; + type = newProps(type._payload); + if (12 === request.status) throw null; + renderElement(request, task, keyPath, type, props, ref); + return; + } + throw Error( + "Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: " + + ((null == type ? type : typeof type) + ".") + ); + } +} +function resumeNode(request, task, segmentId, node, childIndex) { + var prevReplay = task.replay, + blockedBoundary = task.blockedBoundary, + resumedSegment = createPendingSegment( + request, + 0, + null, + task.formatContext, + !1, + !1 + ); + resumedSegment.id = segmentId; + resumedSegment.parentFlushed = !0; + try { + (task.replay = null), + (task.blockedSegment = resumedSegment), + renderNode(request, task, node, childIndex), + (resumedSegment.status = 1), + finishedSegment(request, blockedBoundary, resumedSegment), + null === blockedBoundary + ? (request.completedRootSegment = resumedSegment) + : (queueCompletedSegment(blockedBoundary, resumedSegment), + blockedBoundary.parentFlushed && + request.partialBoundaries.push(blockedBoundary)); + } finally { + (task.replay = prevReplay), (task.blockedSegment = null); + } +} +function renderNodeDestructive(request, task, node, childIndex) { + null !== task.replay && "number" === typeof task.replay.slots + ? resumeNode(request, task, task.replay.slots, node, childIndex) + : ((task.node = node), + (task.childIndex = childIndex), + (node = task.componentStack), + pushComponentStack(task), + retryNode(request, task), + (task.componentStack = node)); +} +function retryNode(request, task) { + var node = task.node, + childIndex = task.childIndex; + if (null !== node) { + if ("object" === typeof node) { + switch (node.$$typeof) { + case REACT_ELEMENT_TYPE: + var type = node.type, + key = node.key, + props = node.props; + node = props.ref; + var ref = void 0 !== node ? node : null, + name = getComponentNameFromType(type), + keyOrIndex = + null == key ? (-1 === childIndex ? 0 : childIndex) : key; + key = [task.keyPath, name, keyOrIndex]; + if (null !== task.replay) + a: { + var replay = task.replay; + childIndex = replay.nodes; + for (node = 0; node < childIndex.length; node++) { + var node$jscomp$0 = childIndex[node]; + if (keyOrIndex === node$jscomp$0[1]) { + if (4 === node$jscomp$0.length) { + if (null !== name && name !== node$jscomp$0[0]) + throw Error( + "Expected the resume to render <" + + node$jscomp$0[0] + + "> in this slot but instead it rendered <" + + name + + ">. The tree doesn't match so React will fallback to client rendering." + ); + var childNodes = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = task.node; + task.replay = { + nodes: childNodes, + slots: name, + pendingTasks: 1 + }; + try { + renderElement(request, task, key, type, props, ref); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || + "function" === typeof x.then) + ) + throw ( + (task.node === keyOrIndex + ? (task.replay = replay) + : childIndex.splice(node, 1), + x) + ); + task.replay.pendingTasks--; + props = getThrownInfo(task.componentStack); + key = request; + request = task.blockedBoundary; + type = x; + props = logRecoverableError(key, type, props); + abortRemainingReplayNodes( + key, + request, + childNodes, + name, + type, + props + ); + } + task.replay = replay; + } else { + if (type !== REACT_SUSPENSE_TYPE) + throw Error( + "Expected the resume to render <Suspense> in this slot but instead it rendered <" + + (getComponentNameFromType(type) || "Unknown") + + ">. The tree doesn't match so React will fallback to client rendering." + ); + b: { + replay = void 0; + type = node$jscomp$0[5]; + ref = node$jscomp$0[2]; + name = node$jscomp$0[3]; + keyOrIndex = + null === node$jscomp$0[4] ? [] : node$jscomp$0[4][2]; + node$jscomp$0 = + null === node$jscomp$0[4] ? null : node$jscomp$0[4][3]; + var prevKeyPath = task.keyPath, + prevContext = task.formatContext, + prevRow = task.row, + previousReplaySet = task.replay, + parentBoundary = task.blockedBoundary, + parentHoistableState = task.hoistableState, + content = props.children, + fallback = props.fallback, + fallbackAbortSet = new Set(); + props = + 2 > task.formatContext.insertionMode + ? createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + createPreambleState(), + createPreambleState() + ) + : createSuspenseBoundary( + request, + task.row, + fallbackAbortSet, + null, + null + ); + props.parentFlushed = !0; + props.rootSegmentID = type; + task.blockedBoundary = props; + task.hoistableState = props.contentState; + task.keyPath = key; + task.formatContext = getSuspenseContentFormatContext( + request.resumableState, + prevContext + ); + task.row = null; + task.replay = { + nodes: ref, + slots: name, + pendingTasks: 1 + }; + try { + renderNode(request, task, content, -1); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + if (0 === props.pendingTasks && 0 === props.status) { + props.status = 1; + request.completedBoundaries.push(props); + break b; + } + } catch (error) { + (props.status = 4), + (childNodes = getThrownInfo(task.componentStack)), + (replay = logRecoverableError( + request, + error, + childNodes + )), + (props.errorDigest = replay), + task.replay.pendingTasks--, + request.clientRenderedBoundaries.push(props); + } finally { + (task.blockedBoundary = parentBoundary), + (task.hoistableState = parentHoistableState), + (task.replay = previousReplaySet), + (task.keyPath = prevKeyPath), + (task.formatContext = prevContext), + (task.row = prevRow); + } + childNodes = createReplayTask( + request, + null, + { + nodes: keyOrIndex, + slots: node$jscomp$0, + pendingTasks: 0 + }, + fallback, + -1, + parentBoundary, + props.fallbackState, + fallbackAbortSet, + [key[0], "Suspense Fallback", key[2]], + getSuspenseFallbackFormatContext( + request.resumableState, + task.formatContext + ), + task.context, + task.treeContext, + task.row, + replaceSuspenseComponentStackWithSuspenseFallbackStack( + task.componentStack + ) + ); + pushComponentStack(childNodes); + request.pingedTasks.push(childNodes); + } + } + childIndex.splice(node, 1); + break a; + } + } + } + else renderElement(request, task, key, type, props, ref); + return; + case REACT_PORTAL_TYPE: + throw Error( + "Portals are not currently supported by the server renderer. Render them conditionally so that they only appear on the client render." + ); + case REACT_LAZY_TYPE: + childNodes = node._init; + node = childNodes(node._payload); + if (12 === request.status) throw null; + renderNodeDestructive(request, task, node, childIndex); + return; + } + if (isArrayImpl(node)) { + renderChildrenArray(request, task, node, childIndex); + return; + } + if ((childNodes = getIteratorFn(node))) + if ((childNodes = childNodes.call(node))) { + node = childNodes.next(); + if (!node.done) { + props = []; + do props.push(node.value), (node = childNodes.next()); + while (!node.done); + renderChildrenArray(request, task, props, childIndex); + } + return; + } + if ("function" === typeof node.then) + return ( + (task.thenableState = null), + renderNodeDestructive(request, task, unwrapThenable(node), childIndex) + ); + if (node.$$typeof === REACT_CONTEXT_TYPE) + return renderNodeDestructive( + request, + task, + node._currentValue, + childIndex + ); + childIndex = Object.prototype.toString.call(node); + throw Error( + "Objects are not valid as a React child (found: " + + ("[object Object]" === childIndex + ? "object with keys {" + Object.keys(node).join(", ") + "}" + : childIndex) + + "). If you meant to render a collection of children, use an array instead." + ); + } + if ("string" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + node, + request.renderState, + childIndex.lastPushedText + )); + else if ("number" === typeof node || "bigint" === typeof node) + (childIndex = task.blockedSegment), + null !== childIndex && + (childIndex.lastPushedText = pushTextInstance( + childIndex.chunks, + "" + node, + request.renderState, + childIndex.lastPushedText + )); + } +} +function renderChildrenArray(request, task, children, childIndex) { + var prevKeyPath = task.keyPath; + if ( + -1 !== childIndex && + ((task.keyPath = [task.keyPath, "Fragment", childIndex]), + null !== task.replay) + ) { + for ( + var replay = task.replay, replayNodes = replay.nodes, j = 0; + j < replayNodes.length; + j++ + ) { + var node = replayNodes[j]; + if (node[1] === childIndex) { + childIndex = node[2]; + node = node[3]; + task.replay = { nodes: childIndex, slots: node, pendingTasks: 1 }; + try { + renderChildrenArray(request, task, children, -1); + if (1 === task.replay.pendingTasks && 0 < task.replay.nodes.length) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + } catch (x) { + if ( + "object" === typeof x && + null !== x && + (x === SuspenseException || "function" === typeof x.then) + ) + throw x; + task.replay.pendingTasks--; + children = getThrownInfo(task.componentStack); + var boundary = task.blockedBoundary, + error = x; + children = logRecoverableError(request, error, children); + abortRemainingReplayNodes( + request, + boundary, + childIndex, + node, + error, + children + ); + } + task.replay = replay; + replayNodes.splice(j, 1); + break; + } + } + task.keyPath = prevKeyPath; + return; + } + replay = task.treeContext; + replayNodes = children.length; + if ( + null !== task.replay && + ((j = task.replay.slots), null !== j && "object" === typeof j) + ) { + for (childIndex = 0; childIndex < replayNodes; childIndex++) + (node = children[childIndex]), + (task.treeContext = pushTreeContext(replay, replayNodes, childIndex)), + (boundary = j[childIndex]), + "number" === typeof boundary + ? (resumeNode(request, task, boundary, node, childIndex), + delete j[childIndex]) + : renderNode(request, task, node, childIndex); + task.treeContext = replay; + task.keyPath = prevKeyPath; + return; + } + for (j = 0; j < replayNodes; j++) + (childIndex = children[j]), + (task.treeContext = pushTreeContext(replay, replayNodes, j)), + renderNode(request, task, childIndex, j); + task.treeContext = replay; + task.keyPath = prevKeyPath; +} +function trackPostponedBoundary(request, trackedPostpones, boundary) { + boundary.status = 5; + boundary.rootSegmentID = request.nextSegmentId++; + request = boundary.trackedContentKeyPath; + if (null === request) + throw Error( + "It should not be possible to postpone at the root. This is a bug in React." + ); + var fallbackReplayNode = boundary.trackedFallbackNode, + children = [], + boundaryNode = trackedPostpones.workingMap.get(request); + if (void 0 === boundaryNode) + return ( + (boundary = [ + request[1], + request[2], + children, + null, + fallbackReplayNode, + boundary.rootSegmentID + ]), + trackedPostpones.workingMap.set(request, boundary), + addToReplayParent(boundary, request[0], trackedPostpones), + boundary + ); + boundaryNode[4] = fallbackReplayNode; + boundaryNode[5] = boundary.rootSegmentID; + return boundaryNode; +} +function trackPostpone(request, trackedPostpones, task, segment) { + segment.status = 5; + var keyPath = task.keyPath, + boundary = task.blockedBoundary; + if (null === boundary) + (segment.id = request.nextSegmentId++), + (trackedPostpones.rootSlots = segment.id), + null !== request.completedRootSegment && + (request.completedRootSegment.status = 5); + else { + if (null !== boundary && 0 === boundary.status) { + var boundaryNode = trackPostponedBoundary( + request, + trackedPostpones, + boundary + ); + if ( + boundary.trackedContentKeyPath === keyPath && + -1 === task.childIndex + ) { + -1 === segment.id && + (segment.id = segment.parentFlushed + ? boundary.rootSegmentID + : request.nextSegmentId++); + boundaryNode[3] = segment.id; + return; + } + } + -1 === segment.id && + (segment.id = + segment.parentFlushed && null !== boundary + ? boundary.rootSegmentID + : request.nextSegmentId++); + if (-1 === task.childIndex) + null === keyPath + ? (trackedPostpones.rootSlots = segment.id) + : ((task = trackedPostpones.workingMap.get(keyPath)), + void 0 === task + ? ((task = [keyPath[1], keyPath[2], [], segment.id]), + addToReplayParent(task, keyPath[0], trackedPostpones)) + : (task[3] = segment.id)); + else { + if (null === keyPath) + if (((request = trackedPostpones.rootSlots), null === request)) + request = trackedPostpones.rootSlots = {}; + else { + if ("number" === typeof request) + throw Error( + "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React." + ); + } + else if ( + ((boundary = trackedPostpones.workingMap), + (boundaryNode = boundary.get(keyPath)), + void 0 === boundaryNode) + ) + (request = {}), + (boundaryNode = [keyPath[1], keyPath[2], [], request]), + boundary.set(keyPath, boundaryNode), + addToReplayParent(boundaryNode, keyPath[0], trackedPostpones); + else if (((request = boundaryNode[3]), null === request)) + request = boundaryNode[3] = {}; + else if ("number" === typeof request) + throw Error( + "It should not be possible to postpone both at the root of an element as well as a slot below. This is a bug in React." + ); + request[task.childIndex] = segment.id; + } + } +} +function untrackBoundary(request, boundary) { + request = request.trackedPostpones; + null !== request && + ((boundary = boundary.trackedContentKeyPath), + null !== boundary && + ((boundary = request.workingMap.get(boundary)), + void 0 !== boundary && + ((boundary.length = 4), (boundary[2] = []), (boundary[3] = null)))); +} +function spawnNewSuspendedReplayTask(request, task, thenableState) { + return createReplayTask( + request, + thenableState, + task.replay, + task.node, + task.childIndex, + task.blockedBoundary, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function spawnNewSuspendedRenderTask(request, task, thenableState) { + var segment = task.blockedSegment, + newSegment = createPendingSegment( + request, + segment.chunks.length, + null, + task.formatContext, + segment.lastPushedText, + !0 + ); + segment.children.push(newSegment); + segment.lastPushedText = !1; + return createRenderTask( + request, + thenableState, + task.node, + task.childIndex, + task.blockedBoundary, + newSegment, + task.blockedPreamble, + task.hoistableState, + task.abortSet, + task.keyPath, + task.formatContext, + task.context, + task.treeContext, + task.row, + task.componentStack + ); +} +function renderNode(request, task, node, childIndex) { + var previousFormatContext = task.formatContext, + previousContext = task.context, + previousKeyPath = task.keyPath, + previousTreeContext = task.treeContext, + previousComponentStack = task.componentStack, + segment = task.blockedSegment; + if (null === segment) { + segment = task.replay; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue) { + if ( + (resetHooksState(), + (node = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + childIndex = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedReplayTask(request, task, childIndex).ping; + node.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + node = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + node = spawnNewSuspendedReplayTask(request, task, node); + request.pingedTasks.push(node); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + task.replay = segment; + switchContext(previousContext); + return; + } + } + } + } else { + var childrenLength = segment.children.length, + chunkLength = segment.chunks.length; + try { + return renderNodeDestructive(request, task, node, childIndex); + } catch (thrownValue$63) { + if ( + (resetHooksState(), + (segment.children.length = childrenLength), + (segment.chunks.length = chunkLength), + (node = + thrownValue$63 === SuspenseException + ? getSuspendedThenable() + : thrownValue$63), + 12 !== request.status && "object" === typeof node && null !== node) + ) { + if ("function" === typeof node.then) { + segment = node; + node = + thrownValue$63 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + request = spawnNewSuspendedRenderTask(request, task, node).ping; + segment.then(request, request); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + if ("Maximum call stack size exceeded" === node.message) { + segment = + thrownValue$63 === SuspenseException + ? getThenableStateAfterSuspending() + : null; + segment = spawnNewSuspendedRenderTask(request, task, segment); + request.pingedTasks.push(segment); + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + task.componentStack = previousComponentStack; + switchContext(previousContext); + return; + } + } + } + } + task.formatContext = previousFormatContext; + task.context = previousContext; + task.keyPath = previousKeyPath; + task.treeContext = previousTreeContext; + switchContext(previousContext); + throw node; +} +function abortTaskSoft(task) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + null !== segment && + ((segment.status = 3), finishedTask(this, boundary, task.row, segment)); +} +function abortRemainingReplayNodes( + request$jscomp$0, + boundary, + nodes, + slots, + error, + errorDigest$jscomp$0 +) { + for (var i = 0; i < nodes.length; i++) { + var node = nodes[i]; + if (4 === node.length) + abortRemainingReplayNodes( + request$jscomp$0, + boundary, + node[2], + node[3], + error, + errorDigest$jscomp$0 + ); + else { + node = node[5]; + var request = request$jscomp$0, + errorDigest = errorDigest$jscomp$0, + resumedBoundary = createSuspenseBoundary( + request, + null, + new Set(), + null, + null + ); + resumedBoundary.parentFlushed = !0; + resumedBoundary.rootSegmentID = node; + resumedBoundary.status = 4; + resumedBoundary.errorDigest = errorDigest; + resumedBoundary.parentFlushed && + request.clientRenderedBoundaries.push(resumedBoundary); + } + } + nodes.length = 0; + if (null !== slots) { + if (null === boundary) + throw Error( + "We should not have any resumable nodes in the shell. This is a bug in React." + ); + 4 !== boundary.status && + ((boundary.status = 4), + (boundary.errorDigest = errorDigest$jscomp$0), + boundary.parentFlushed && + request$jscomp$0.clientRenderedBoundaries.push(boundary)); + if ("object" === typeof slots) for (var index in slots) delete slots[index]; + } +} +function abortTask(task, request, error) { + var boundary = task.blockedBoundary, + segment = task.blockedSegment; + if (null !== segment) { + if (6 === segment.status) return; + segment.status = 3; + } + var errorInfo = getThrownInfo(task.componentStack); + if (null === boundary) { + if (13 !== request.status && 14 !== request.status) { + boundary = task.replay; + if (null === boundary) { + null !== request.trackedPostpones && null !== segment + ? ((boundary = request.trackedPostpones), + logRecoverableError(request, error, errorInfo), + trackPostpone(request, boundary, task, segment), + finishedTask(request, null, task.row, segment)) + : (logRecoverableError(request, error, errorInfo), + fatalError(request, error)); + return; + } + boundary.pendingTasks--; + 0 === boundary.pendingTasks && + 0 < boundary.nodes.length && + ((segment = logRecoverableError(request, error, errorInfo)), + abortRemainingReplayNodes( + request, + null, + boundary.nodes, + boundary.slots, + error, + segment + )); + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } + } else { + var trackedPostpones$64 = request.trackedPostpones; + if (4 !== boundary.status) { + if (null !== trackedPostpones$64 && null !== segment) + return ( + logRecoverableError(request, error, errorInfo), + trackPostpone(request, trackedPostpones$64, task, segment), + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }), + boundary.fallbackAbortableTasks.clear(), + finishedTask(request, boundary, task.row, segment) + ); + boundary.status = 4; + segment = logRecoverableError(request, error, errorInfo); + boundary.status = 4; + boundary.errorDigest = segment; + untrackBoundary(request, boundary); + boundary.parentFlushed && request.clientRenderedBoundaries.push(boundary); + } + boundary.pendingTasks--; + segment = boundary.row; + null !== segment && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + boundary.fallbackAbortableTasks.forEach(function (fallbackTask) { + return abortTask(fallbackTask, request, error); + }); + boundary.fallbackAbortableTasks.clear(); + } + task = task.row; + null !== task && + 0 === --task.pendingTasks && + finishSuspenseListRow(request, task); + request.allPendingTasks--; + 0 === request.allPendingTasks && completeAll(request); +} +function safelyEmitEarlyPreloads(request, shellComplete) { + try { + var renderState = request.renderState, + onHeaders = renderState.onHeaders; + if (onHeaders) { + var headers = renderState.headers; + if (headers) { + renderState.headers = null; + var linkHeader = headers.preconnects; + headers.fontPreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.fontPreloads)); + headers.highImagePreloads && + (linkHeader && (linkHeader += ", "), + (linkHeader += headers.highImagePreloads)); + if (!shellComplete) { + var queueIter = renderState.styles.values(), + queueStep = queueIter.next(); + b: for ( + ; + 0 < headers.remainingCapacity && !queueStep.done; + queueStep = queueIter.next() + ) + for ( + var sheetIter = queueStep.value.sheets.values(), + sheetStep = sheetIter.next(); + 0 < headers.remainingCapacity && !sheetStep.done; + sheetStep = sheetIter.next() + ) { + var sheet = sheetStep.value, + props = sheet.props, + key = props.href, + props$jscomp$0 = sheet.props, + header = getPreloadAsHeader(props$jscomp$0.href, "style", { + crossOrigin: props$jscomp$0.crossOrigin, + integrity: props$jscomp$0.integrity, + nonce: props$jscomp$0.nonce, + type: props$jscomp$0.type, + fetchPriority: props$jscomp$0.fetchPriority, + referrerPolicy: props$jscomp$0.referrerPolicy, + media: props$jscomp$0.media + }); + if (0 <= (headers.remainingCapacity -= header.length + 2)) + (renderState.resets.style[key] = PRELOAD_NO_CREDS), + linkHeader && (linkHeader += ", "), + (linkHeader += header), + (renderState.resets.style[key] = + "string" === typeof props.crossOrigin || + "string" === typeof props.integrity + ? [props.crossOrigin, props.integrity] + : PRELOAD_NO_CREDS); + else break b; + } + } + linkHeader ? onHeaders({ Link: linkHeader }) : onHeaders({}); + } + } + } catch (error) { + logRecoverableError(request, error, {}); + } +} +function completeShell(request) { + null === request.trackedPostpones && safelyEmitEarlyPreloads(request, !0); + null === request.trackedPostpones && preparePreamble(request); + request.onShellError = noop; + request = request.onShellReady; + request(); +} +function completeAll(request) { + safelyEmitEarlyPreloads( + request, + null === request.trackedPostpones + ? !0 + : null === request.completedRootSegment || + 5 !== request.completedRootSegment.status + ); + preparePreamble(request); + request = request.onAllReady; + request(); +} +function queueCompletedSegment(boundary, segment) { + if ( + 0 === segment.chunks.length && + 1 === segment.children.length && + null === segment.children[0].boundary && + -1 === segment.children[0].id + ) { + var childSegment = segment.children[0]; + childSegment.id = segment.id; + childSegment.parentFlushed = !0; + (1 !== childSegment.status && + 3 !== childSegment.status && + 4 !== childSegment.status) || + queueCompletedSegment(boundary, childSegment); + } else boundary.completedSegments.push(segment); +} +function finishedSegment(request, boundary, segment) { + if (null !== byteLengthOfChunk) { + segment = segment.chunks; + for (var segmentByteSize = 0, i = 0; i < segment.length; i++) + segmentByteSize += byteLengthOfChunk(segment[i]); + null === boundary + ? (request.byteSize += segmentByteSize) + : (boundary.byteSize += segmentByteSize); + } +} +function finishedTask(request, boundary, row, segment) { + null !== row && + (0 === --row.pendingTasks + ? finishSuspenseListRow(request, row) + : row.together && tryToResolveTogetherRow(request, row)); + request.allPendingTasks--; + if (null === boundary) { + if (null !== segment && segment.parentFlushed) { + if (null !== request.completedRootSegment) + throw Error( + "There can only be one root segment. This is a bug in React." + ); + request.completedRootSegment = segment; + } + request.pendingRootTasks--; + 0 === request.pendingRootTasks && completeShell(request); + } else if ((boundary.pendingTasks--, 4 !== boundary.status)) + if (0 === boundary.pendingTasks) + if ( + (0 === boundary.status && (boundary.status = 1), + null !== segment && + segment.parentFlushed && + (1 === segment.status || 3 === segment.status) && + queueCompletedSegment(boundary, segment), + boundary.parentFlushed && request.completedBoundaries.push(boundary), + 1 === boundary.status) + ) + (row = boundary.row), + null !== row && + hoistHoistables(row.hoistables, boundary.contentState), + isEligibleForOutlining(request, boundary) || + (boundary.fallbackAbortableTasks.forEach(abortTaskSoft, request), + boundary.fallbackAbortableTasks.clear(), + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row)), + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary.contentPreamble && + preparePreamble(request); + else { + if ( + 5 === boundary.status && + ((boundary = boundary.row), null !== boundary) + ) { + if (null !== request.trackedPostpones) { + row = request.trackedPostpones; + var postponedRow = boundary.next; + if ( + null !== postponedRow && + ((segment = postponedRow.boundaries), null !== segment) + ) + for ( + postponedRow.boundaries = null, postponedRow = 0; + postponedRow < segment.length; + postponedRow++ + ) { + var postponedBoundary = segment[postponedRow]; + trackPostponedBoundary(request, row, postponedBoundary); + finishedTask(request, postponedBoundary, null, null); + } + } + 0 === --boundary.pendingTasks && + finishSuspenseListRow(request, boundary); + } + } + else + null === segment || + !segment.parentFlushed || + (1 !== segment.status && 3 !== segment.status) || + (queueCompletedSegment(boundary, segment), + 1 === boundary.completedSegments.length && + boundary.parentFlushed && + request.partialBoundaries.push(boundary)), + (boundary = boundary.row), + null !== boundary && + boundary.together && + tryToResolveTogetherRow(request, boundary); + 0 === request.allPendingTasks && completeAll(request); +} +function performWork(request$jscomp$2) { + if (14 !== request$jscomp$2.status && 13 !== request$jscomp$2.status) { + var prevContext = currentActiveSnapshot, + prevDispatcher = ReactSharedInternals.H; + ReactSharedInternals.H = HooksDispatcher; + var prevAsyncDispatcher = ReactSharedInternals.A; + ReactSharedInternals.A = DefaultAsyncDispatcher; + var prevRequest = currentRequest; + currentRequest = request$jscomp$2; + var prevResumableState = currentResumableState; + currentResumableState = request$jscomp$2.resumableState; + try { + var pingedTasks = request$jscomp$2.pingedTasks, + i; + for (i = 0; i < pingedTasks.length; i++) { + var task = pingedTasks[i], + request = request$jscomp$2, + segment = task.blockedSegment; + if (null === segment) { + var request$jscomp$0 = request; + if (0 !== task.replay.pendingTasks) { + switchContext(task.context); + try { + "number" === typeof task.replay.slots + ? resumeNode( + request$jscomp$0, + task, + task.replay.slots, + task.node, + task.childIndex + ) + : retryNode(request$jscomp$0, task); + if ( + 1 === task.replay.pendingTasks && + 0 < task.replay.nodes.length + ) + throw Error( + "Couldn't find all resumable slots by key/index during replaying. The tree doesn't match so React will fallback to client rendering." + ); + task.replay.pendingTasks--; + task.abortSet.delete(task); + finishedTask( + request$jscomp$0, + task.blockedBoundary, + task.row, + null + ); + } catch (thrownValue) { + resetHooksState(); + var x = + thrownValue === SuspenseException + ? getSuspendedThenable() + : thrownValue; + if ( + "object" === typeof x && + null !== x && + "function" === typeof x.then + ) { + var ping = task.ping; + x.then(ping, ping); + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + } else { + task.replay.pendingTasks--; + task.abortSet.delete(task); + var errorInfo = getThrownInfo(task.componentStack); + request = void 0; + var request$jscomp$1 = request$jscomp$0, + boundary = task.blockedBoundary, + error$jscomp$0 = + 12 === request$jscomp$0.status + ? request$jscomp$0.fatalError + : x, + replayNodes = task.replay.nodes, + resumeSlots = task.replay.slots; + request = logRecoverableError( + request$jscomp$1, + error$jscomp$0, + errorInfo + ); + abortRemainingReplayNodes( + request$jscomp$1, + boundary, + replayNodes, + resumeSlots, + error$jscomp$0, + request + ); + request$jscomp$0.pendingRootTasks--; + 0 === request$jscomp$0.pendingRootTasks && + completeShell(request$jscomp$0); + request$jscomp$0.allPendingTasks--; + 0 === request$jscomp$0.allPendingTasks && + completeAll(request$jscomp$0); + } + } finally { + } + } + } else if ( + ((request$jscomp$0 = void 0), + (request$jscomp$1 = segment), + 0 === request$jscomp$1.status) + ) { + request$jscomp$1.status = 6; + switchContext(task.context); + var childrenLength = request$jscomp$1.children.length, + chunkLength = request$jscomp$1.chunks.length; + try { + retryNode(request, task), + request$jscomp$1.lastPushedText && + request$jscomp$1.textEmbedded && + request$jscomp$1.chunks.push(textSeparator), + task.abortSet.delete(task), + (request$jscomp$1.status = 1), + finishedSegment(request, task.blockedBoundary, request$jscomp$1), + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } catch (thrownValue) { + resetHooksState(); + request$jscomp$1.children.length = childrenLength; + request$jscomp$1.chunks.length = chunkLength; + var x$jscomp$0 = + thrownValue === SuspenseException + ? getSuspendedThenable() + : 12 === request.status + ? request.fatalError + : thrownValue; + if (12 === request.status && null !== request.trackedPostpones) { + var trackedPostpones = request.trackedPostpones, + thrownInfo = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + logRecoverableError(request, x$jscomp$0, thrownInfo); + trackPostpone(request, trackedPostpones, task, request$jscomp$1); + finishedTask( + request, + task.blockedBoundary, + task.row, + request$jscomp$1 + ); + } else if ( + "object" === typeof x$jscomp$0 && + null !== x$jscomp$0 && + "function" === typeof x$jscomp$0.then + ) { + request$jscomp$1.status = 0; + task.thenableState = + thrownValue === SuspenseException + ? getThenableStateAfterSuspending() + : null; + var ping$jscomp$0 = task.ping; + x$jscomp$0.then(ping$jscomp$0, ping$jscomp$0); + } else { + var errorInfo$jscomp$0 = getThrownInfo(task.componentStack); + task.abortSet.delete(task); + request$jscomp$1.status = 4; + var boundary$jscomp$0 = task.blockedBoundary, + row = task.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + request.allPendingTasks--; + request$jscomp$0 = logRecoverableError( + request, + x$jscomp$0, + errorInfo$jscomp$0 + ); + if (null === boundary$jscomp$0) fatalError(request, x$jscomp$0); + else if ( + (boundary$jscomp$0.pendingTasks--, + 4 !== boundary$jscomp$0.status) + ) { + boundary$jscomp$0.status = 4; + boundary$jscomp$0.errorDigest = request$jscomp$0; + untrackBoundary(request, boundary$jscomp$0); + var boundaryRow = boundary$jscomp$0.row; + null !== boundaryRow && + 0 === --boundaryRow.pendingTasks && + finishSuspenseListRow(request, boundaryRow); + boundary$jscomp$0.parentFlushed && + request.clientRenderedBoundaries.push(boundary$jscomp$0); + 0 === request.pendingRootTasks && + null === request.trackedPostpones && + null !== boundary$jscomp$0.contentPreamble && + preparePreamble(request); + } + 0 === request.allPendingTasks && completeAll(request); + } + } finally { + } + } + } + pingedTasks.splice(0, i); + null !== request$jscomp$2.destination && + flushCompletedQueues(request$jscomp$2, request$jscomp$2.destination); + } catch (error) { + logRecoverableError(request$jscomp$2, error, {}), + fatalError(request$jscomp$2, error); + } finally { + (currentResumableState = prevResumableState), + (ReactSharedInternals.H = prevDispatcher), + (ReactSharedInternals.A = prevAsyncDispatcher), + prevDispatcher === HooksDispatcher && switchContext(prevContext), + (currentRequest = prevRequest); + } + } +} +function preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments +) { + segment.preambleChildren.length && + collectedPreambleSegments.push(segment.preambleChildren); + for (var pendingPreambles = !1, i = 0; i < segment.children.length; i++) + pendingPreambles = + preparePreambleFromSegment( + request, + segment.children[i], + collectedPreambleSegments + ) || pendingPreambles; + return pendingPreambles; +} +function preparePreambleFromSegment( + request, + segment, + collectedPreambleSegments +) { + var boundary = segment.boundary; + if (null === boundary) + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + var preamble = boundary.contentPreamble, + fallbackPreamble = boundary.fallbackPreamble; + if (null === preamble || null === fallbackPreamble) return !1; + switch (boundary.status) { + case 1: + hoistPreambleState(request.renderState, preamble); + request.byteSize += boundary.byteSize; + segment = boundary.completedSegments[0]; + if (!segment) + throw Error( + "A previously unvisited boundary must have exactly one root segment. This is a bug in React." + ); + return preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ); + case 5: + if (null !== request.trackedPostpones) return !0; + case 4: + if (1 === segment.status) + return ( + hoistPreambleState(request.renderState, fallbackPreamble), + preparePreambleFromSubtree( + request, + segment, + collectedPreambleSegments + ) + ); + default: + return !0; + } +} +function preparePreamble(request) { + if ( + request.completedRootSegment && + null === request.completedPreambleSegments + ) { + var collectedPreambleSegments = [], + originalRequestByteSize = request.byteSize, + hasPendingPreambles = preparePreambleFromSegment( + request, + request.completedRootSegment, + collectedPreambleSegments + ), + preamble = request.renderState.preamble; + !1 === hasPendingPreambles || (preamble.headChunks && preamble.bodyChunks) + ? (request.completedPreambleSegments = collectedPreambleSegments) + : (request.byteSize = originalRequestByteSize); + } +} +function flushSubtree(request, destination, segment, hoistableState) { + segment.parentFlushed = !0; + switch (segment.status) { + case 0: + segment.id = request.nextSegmentId++; + case 5: + return ( + (hoistableState = segment.id), + (segment.lastPushedText = !1), + (segment.textEmbedded = !1), + (request = request.renderState), + writeChunk(destination, placeholder1), + writeChunk(destination, request.placeholderPrefix), + (request = hoistableState.toString(16)), + writeChunk(destination, request), + writeChunkAndReturn(destination, placeholder2) + ); + case 1: + segment.status = 2; + var r = !0, + chunks = segment.chunks, + chunkIdx = 0; + segment = segment.children; + for (var childIdx = 0; childIdx < segment.length; childIdx++) { + for (r = segment[childIdx]; chunkIdx < r.index; chunkIdx++) + writeChunk(destination, chunks[chunkIdx]); + r = flushSegment(request, destination, r, hoistableState); + } + for (; chunkIdx < chunks.length - 1; chunkIdx++) + writeChunk(destination, chunks[chunkIdx]); + chunkIdx < chunks.length && + (r = writeChunkAndReturn(destination, chunks[chunkIdx])); + return r; + case 3: + return !0; + default: + throw Error( + "Aborted, errored or already flushed boundaries should not be flushed again. This is a bug in React." + ); + } +} +var flushedByteSize = 0; +function flushSegment(request, destination, segment, hoistableState) { + var boundary = segment.boundary; + if (null === boundary) + return flushSubtree(request, destination, segment, hoistableState); + boundary.parentFlushed = !0; + if (4 === boundary.status) { + var row = boundary.row; + null !== row && + 0 === --row.pendingTasks && + finishSuspenseListRow(request, row); + boundary = boundary.errorDigest; + writeChunkAndReturn(destination, startClientRenderedSuspenseBoundary); + writeChunk(destination, clientRenderedSuspenseBoundaryError1); + boundary && + (writeChunk(destination, clientRenderedSuspenseBoundaryError1A), + writeChunk(destination, escapeTextForBrowser(boundary)), + writeChunk( + destination, + clientRenderedSuspenseBoundaryErrorAttrInterstitial + )); + writeChunkAndReturn(destination, clientRenderedSuspenseBoundaryError2); + flushSubtree(request, destination, segment, hoistableState); + } else if (1 !== boundary.status) + 0 === boundary.status && (boundary.rootSegmentID = request.nextSegmentId++), + 0 < boundary.completedSegments.length && + request.partialBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + hoistableState && hoistHoistables(hoistableState, boundary.fallbackState), + flushSubtree(request, destination, segment, hoistableState); + else if ( + !flushingPartialBoundaries && + isEligibleForOutlining(request, boundary) && + (flushedByteSize + boundary.byteSize > request.progressiveChunkSize || + hasSuspenseyContent(boundary.contentState)) + ) + (boundary.rootSegmentID = request.nextSegmentId++), + request.completedBoundaries.push(boundary), + writeStartPendingSuspenseBoundary( + destination, + request.renderState, + boundary.rootSegmentID + ), + flushSubtree(request, destination, segment, hoistableState); + else { + flushedByteSize += boundary.byteSize; + hoistableState && hoistHoistables(hoistableState, boundary.contentState); + segment = boundary.row; + null !== segment && + isEligibleForOutlining(request, boundary) && + 0 === --segment.pendingTasks && + finishSuspenseListRow(request, segment); + writeChunkAndReturn(destination, startCompletedSuspenseBoundary); + segment = boundary.completedSegments; + if (1 !== segment.length) + throw Error( + "A previously unvisited boundary must have exactly one root segment. This is a bug in React." + ); + flushSegment(request, destination, segment[0], hoistableState); + } + return writeChunkAndReturn(destination, endSuspenseBoundary); +} +function flushSegmentContainer(request, destination, segment, hoistableState) { + writeStartSegment( + destination, + request.renderState, + segment.parentFormatContext, + segment.id + ); + flushSegment(request, destination, segment, hoistableState); + return writeEndSegment(destination, segment.parentFormatContext); +} +function flushCompletedBoundary(request, destination, boundary) { + flushedByteSize = boundary.byteSize; + for ( + var completedSegments = boundary.completedSegments, i = 0; + i < completedSegments.length; + i++ + ) + flushPartiallyCompletedSegment( + request, + destination, + boundary, + completedSegments[i] + ); + completedSegments.length = 0; + completedSegments = boundary.row; + null !== completedSegments && + isEligibleForOutlining(request, boundary) && + 0 === --completedSegments.pendingTasks && + finishSuspenseListRow(request, completedSegments); + writeHoistablesForBoundary( + destination, + boundary.contentState, + request.renderState + ); + completedSegments = request.resumableState; + request = request.renderState; + i = boundary.rootSegmentID; + boundary = boundary.contentState; + var requiresStyleInsertion = request.stylesToHoist; + request.stylesToHoist = !1; + writeChunk(destination, request.startInlineScript); + writeChunk(destination, endOfStartTag); + requiresStyleInsertion + ? (0 === (completedSegments.instructions & 4) && + ((completedSegments.instructions |= 4), + writeChunk(destination, clientRenderScriptFunctionOnly)), + 0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + writeChunk(destination, completeBoundaryScriptFunctionOnly)), + 0 === (completedSegments.instructions & 8) + ? ((completedSegments.instructions |= 8), + writeChunk(destination, completeBoundaryWithStylesScript1FullPartial)) + : writeChunk(destination, completeBoundaryWithStylesScript1Partial)) + : (0 === (completedSegments.instructions & 2) && + ((completedSegments.instructions |= 2), + writeChunk(destination, completeBoundaryScriptFunctionOnly)), + writeChunk(destination, completeBoundaryScript1Partial)); + completedSegments = i.toString(16); + writeChunk(destination, request.boundaryPrefix); + writeChunk(destination, completedSegments); + writeChunk(destination, completeBoundaryScript2); + writeChunk(destination, request.segmentPrefix); + writeChunk(destination, completedSegments); + requiresStyleInsertion + ? (writeChunk(destination, completeBoundaryScript3a), + writeStyleResourceDependenciesInJS(destination, boundary)) + : writeChunk(destination, completeBoundaryScript3b); + boundary = writeChunkAndReturn(destination, completeBoundaryScriptEnd); + return writeBootstrap(destination, request) && boundary; +} +function flushPartiallyCompletedSegment( + request, + destination, + boundary, + segment +) { + if (2 === segment.status) return !0; + var hoistableState = boundary.contentState, + segmentID = segment.id; + if (-1 === segmentID) { + if (-1 === (segment.id = boundary.rootSegmentID)) + throw Error( + "A root segment ID must have been assigned by now. This is a bug in React." + ); + return flushSegmentContainer(request, destination, segment, hoistableState); + } + if (segmentID === boundary.rootSegmentID) + return flushSegmentContainer(request, destination, segment, hoistableState); + flushSegmentContainer(request, destination, segment, hoistableState); + boundary = request.resumableState; + request = request.renderState; + writeChunk(destination, request.startInlineScript); + writeChunk(destination, endOfStartTag); + 0 === (boundary.instructions & 1) + ? ((boundary.instructions |= 1), + writeChunk(destination, completeSegmentScript1Full)) + : writeChunk(destination, completeSegmentScript1Partial); + writeChunk(destination, request.segmentPrefix); + segmentID = segmentID.toString(16); + writeChunk(destination, segmentID); + writeChunk(destination, completeSegmentScript2); + writeChunk(destination, request.placeholderPrefix); + writeChunk(destination, segmentID); + destination = writeChunkAndReturn(destination, completeSegmentScriptEnd); + return destination; +} +var flushingPartialBoundaries = !1; +function flushCompletedQueues(request, destination) { + currentView = new Uint8Array(2048); + writtenBytes = 0; + destinationHasCapacity$1 = !0; + try { + if (!(0 < request.pendingRootTasks)) { + var i, + completedRootSegment = request.completedRootSegment; + if (null !== completedRootSegment) { + if (5 === completedRootSegment.status) return; + var completedPreambleSegments = request.completedPreambleSegments; + if (null === completedPreambleSegments) return; + flushedByteSize = request.byteSize; + var resumableState = request.resumableState, + renderState = request.renderState, + preamble = renderState.preamble, + htmlChunks = preamble.htmlChunks, + headChunks = preamble.headChunks, + i$jscomp$0; + if (htmlChunks) { + for (i$jscomp$0 = 0; i$jscomp$0 < htmlChunks.length; i$jscomp$0++) + writeChunk(destination, htmlChunks[i$jscomp$0]); + if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + writeChunk(destination, headChunks[i$jscomp$0]); + else + writeChunk(destination, startChunkForTag("head")), + writeChunk(destination, endOfStartTag); + } else if (headChunks) + for (i$jscomp$0 = 0; i$jscomp$0 < headChunks.length; i$jscomp$0++) + writeChunk(destination, headChunks[i$jscomp$0]); + var charsetChunks = renderState.charsetChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < charsetChunks.length; i$jscomp$0++) + writeChunk(destination, charsetChunks[i$jscomp$0]); + charsetChunks.length = 0; + renderState.preconnects.forEach(flushResource, destination); + renderState.preconnects.clear(); + var viewportChunks = renderState.viewportChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < viewportChunks.length; i$jscomp$0++) + writeChunk(destination, viewportChunks[i$jscomp$0]); + viewportChunks.length = 0; + renderState.fontPreloads.forEach(flushResource, destination); + renderState.fontPreloads.clear(); + renderState.highImagePreloads.forEach(flushResource, destination); + renderState.highImagePreloads.clear(); + currentlyFlushingRenderState = renderState; + renderState.styles.forEach(flushStylesInPreamble, destination); + currentlyFlushingRenderState = null; + var importMapChunks = renderState.importMapChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < importMapChunks.length; i$jscomp$0++) + writeChunk(destination, importMapChunks[i$jscomp$0]); + importMapChunks.length = 0; + renderState.bootstrapScripts.forEach(flushResource, destination); + renderState.scripts.forEach(flushResource, destination); + renderState.scripts.clear(); + renderState.bulkPreloads.forEach(flushResource, destination); + renderState.bulkPreloads.clear(); + htmlChunks || headChunks || (resumableState.instructions |= 32); + var hoistableChunks = renderState.hoistableChunks; + for (i$jscomp$0 = 0; i$jscomp$0 < hoistableChunks.length; i$jscomp$0++) + writeChunk(destination, hoistableChunks[i$jscomp$0]); + for ( + resumableState = hoistableChunks.length = 0; + resumableState < completedPreambleSegments.length; + resumableState++ + ) { + var segments = completedPreambleSegments[resumableState]; + for (renderState = 0; renderState < segments.length; renderState++) + flushSegment(request, destination, segments[renderState], null); + } + var preamble$jscomp$0 = request.renderState.preamble, + headChunks$jscomp$0 = preamble$jscomp$0.headChunks; + (preamble$jscomp$0.htmlChunks || headChunks$jscomp$0) && + writeChunk(destination, endChunkForTag("head")); + var bodyChunks = preamble$jscomp$0.bodyChunks; + if (bodyChunks) + for ( + completedPreambleSegments = 0; + completedPreambleSegments < bodyChunks.length; + completedPreambleSegments++ + ) + writeChunk(destination, bodyChunks[completedPreambleSegments]); + flushSegment(request, destination, completedRootSegment, null); + request.completedRootSegment = null; + var renderState$jscomp$0 = request.renderState; + if ( + 0 !== request.allPendingTasks || + 0 !== request.clientRenderedBoundaries.length || + 0 !== request.completedBoundaries.length || + (null !== request.trackedPostpones && + (0 !== request.trackedPostpones.rootNodes.length || + null !== request.trackedPostpones.rootSlots)) + ) { + var resumableState$jscomp$0 = request.resumableState; + if (0 === (resumableState$jscomp$0.instructions & 64)) { + resumableState$jscomp$0.instructions |= 64; + writeChunk(destination, renderState$jscomp$0.startInlineScript); + if (0 === (resumableState$jscomp$0.instructions & 32)) { + resumableState$jscomp$0.instructions |= 32; + var shellId = "_" + resumableState$jscomp$0.idPrefix + "R_"; + writeChunk(destination, completedShellIdAttributeStart); + writeChunk(destination, escapeTextForBrowser(shellId)); + writeChunk(destination, attributeEnd); + } + writeChunk(destination, endOfStartTag); + writeChunk(destination, shellTimeRuntimeScript); + writeChunkAndReturn(destination, endInlineScript); + } + } + writeBootstrap(destination, renderState$jscomp$0); + } + var renderState$jscomp$1 = request.renderState; + completedRootSegment = 0; + var viewportChunks$jscomp$0 = renderState$jscomp$1.viewportChunks; + for ( + completedRootSegment = 0; + completedRootSegment < viewportChunks$jscomp$0.length; + completedRootSegment++ + ) + writeChunk(destination, viewportChunks$jscomp$0[completedRootSegment]); + viewportChunks$jscomp$0.length = 0; + renderState$jscomp$1.preconnects.forEach(flushResource, destination); + renderState$jscomp$1.preconnects.clear(); + renderState$jscomp$1.fontPreloads.forEach(flushResource, destination); + renderState$jscomp$1.fontPreloads.clear(); + renderState$jscomp$1.highImagePreloads.forEach( + flushResource, + destination + ); + renderState$jscomp$1.highImagePreloads.clear(); + renderState$jscomp$1.styles.forEach(preloadLateStyles, destination); + renderState$jscomp$1.scripts.forEach(flushResource, destination); + renderState$jscomp$1.scripts.clear(); + renderState$jscomp$1.bulkPreloads.forEach(flushResource, destination); + renderState$jscomp$1.bulkPreloads.clear(); + var hoistableChunks$jscomp$0 = renderState$jscomp$1.hoistableChunks; + for ( + completedRootSegment = 0; + completedRootSegment < hoistableChunks$jscomp$0.length; + completedRootSegment++ + ) + writeChunk(destination, hoistableChunks$jscomp$0[completedRootSegment]); + hoistableChunks$jscomp$0.length = 0; + var clientRenderedBoundaries = request.clientRenderedBoundaries; + for (i = 0; i < clientRenderedBoundaries.length; i++) { + var boundary = clientRenderedBoundaries[i]; + renderState$jscomp$1 = destination; + var resumableState$jscomp$1 = request.resumableState, + renderState$jscomp$2 = request.renderState, + id = boundary.rootSegmentID, + errorDigest = boundary.errorDigest; + writeChunk( + renderState$jscomp$1, + renderState$jscomp$2.startInlineScript + ); + writeChunk(renderState$jscomp$1, endOfStartTag); + 0 === (resumableState$jscomp$1.instructions & 4) + ? ((resumableState$jscomp$1.instructions |= 4), + writeChunk(renderState$jscomp$1, clientRenderScript1Full)) + : writeChunk(renderState$jscomp$1, clientRenderScript1Partial); + writeChunk(renderState$jscomp$1, renderState$jscomp$2.boundaryPrefix); + writeChunk(renderState$jscomp$1, id.toString(16)); + writeChunk(renderState$jscomp$1, clientRenderScript1A); + errorDigest && + (writeChunk( + renderState$jscomp$1, + clientRenderErrorScriptArgInterstitial + ), + writeChunk( + renderState$jscomp$1, + escapeJSStringsForInstructionScripts(errorDigest || "") + )); + var JSCompiler_inline_result = writeChunkAndReturn( + renderState$jscomp$1, + clientRenderScriptEnd + ); + if (!JSCompiler_inline_result) { + request.destination = null; + i++; + clientRenderedBoundaries.splice(0, i); + return; + } + } + clientRenderedBoundaries.splice(0, i); + var completedBoundaries = request.completedBoundaries; + for (i = 0; i < completedBoundaries.length; i++) + if ( + !flushCompletedBoundary(request, destination, completedBoundaries[i]) + ) { + request.destination = null; + i++; + completedBoundaries.splice(0, i); + return; + } + completedBoundaries.splice(0, i); + completeWriting(destination); + currentView = new Uint8Array(2048); + writtenBytes = 0; + flushingPartialBoundaries = destinationHasCapacity$1 = !0; + var partialBoundaries = request.partialBoundaries; + for (i = 0; i < partialBoundaries.length; i++) { + var boundary$70 = partialBoundaries[i]; + a: { + clientRenderedBoundaries = request; + boundary = destination; + flushedByteSize = boundary$70.byteSize; + var completedSegments = boundary$70.completedSegments; + for ( + JSCompiler_inline_result = 0; + JSCompiler_inline_result < completedSegments.length; + JSCompiler_inline_result++ + ) + if ( + !flushPartiallyCompletedSegment( + clientRenderedBoundaries, + boundary, + boundary$70, + completedSegments[JSCompiler_inline_result] + ) + ) { + JSCompiler_inline_result++; + completedSegments.splice(0, JSCompiler_inline_result); + var JSCompiler_inline_result$jscomp$0 = !1; + break a; + } + completedSegments.splice(0, JSCompiler_inline_result); + var row = boundary$70.row; + null !== row && + row.together && + 1 === boundary$70.pendingTasks && + (1 === row.pendingTasks + ? unblockSuspenseListRow( + clientRenderedBoundaries, + row, + row.hoistables + ) + : row.pendingTasks--); + JSCompiler_inline_result$jscomp$0 = writeHoistablesForBoundary( + boundary, + boundary$70.contentState, + clientRenderedBoundaries.renderState + ); + } + if (!JSCompiler_inline_result$jscomp$0) { + request.destination = null; + i++; + partialBoundaries.splice(0, i); + return; + } + } + partialBoundaries.splice(0, i); + flushingPartialBoundaries = !1; + var largeBoundaries = request.completedBoundaries; + for (i = 0; i < largeBoundaries.length; i++) + if (!flushCompletedBoundary(request, destination, largeBoundaries[i])) { + request.destination = null; + i++; + largeBoundaries.splice(0, i); + return; + } + largeBoundaries.splice(0, i); + } + } finally { + (flushingPartialBoundaries = !1), + 0 === request.allPendingTasks && + 0 === request.clientRenderedBoundaries.length && + 0 === request.completedBoundaries.length + ? ((request.flushScheduled = !1), + (i = request.resumableState), + i.hasBody && writeChunk(destination, endChunkForTag("body")), + i.hasHtml && writeChunk(destination, endChunkForTag("html")), + completeWriting(destination), + flushBuffered(destination), + (request.status = 14), + destination.end(), + (request.destination = null)) + : (completeWriting(destination), flushBuffered(destination)); + } +} +function startWork(request) { + request.flushScheduled = null !== request.destination; + scheduleMicrotask(function () { + return requestStorage.run(request, performWork, request); + }); + setImmediate(function () { + 10 === request.status && (request.status = 11); + null === request.trackedPostpones && + requestStorage.run( + request, + enqueueEarlyPreloadsAfterInitialWork, + request + ); + }); +} +function enqueueEarlyPreloadsAfterInitialWork(request) { + safelyEmitEarlyPreloads(request, 0 === request.pendingRootTasks); +} +function enqueueFlush(request) { + !1 === request.flushScheduled && + 0 === request.pingedTasks.length && + null !== request.destination && + ((request.flushScheduled = !0), + setImmediate(function () { + var destination = request.destination; + destination + ? flushCompletedQueues(request, destination) + : (request.flushScheduled = !1); + })); +} +function startFlowing(request, destination) { + if (13 === request.status) + (request.status = 14), destination.destroy(request.fatalError); + else if (14 !== request.status && null === request.destination) { + request.destination = destination; + try { + flushCompletedQueues(request, destination); + } catch (error) { + logRecoverableError(request, error, {}), fatalError(request, error); + } + } +} +function abort(request, reason) { + if (11 === request.status || 10 === request.status) request.status = 12; + try { + var abortableTasks = request.abortableTasks; + if (0 < abortableTasks.size) { + var error = + void 0 === reason + ? Error("The render was aborted by the server without a reason.") + : "object" === typeof reason && + null !== reason && + "function" === typeof reason.then + ? Error("The render was aborted by the server with a promise.") + : reason; + request.fatalError = error; + abortableTasks.forEach(function (task) { + return abortTask(task, request, error); + }); + abortableTasks.clear(); + } + null !== request.destination && + flushCompletedQueues(request, request.destination); + } catch (error$72) { + logRecoverableError(request, error$72, {}), fatalError(request, error$72); + } +} +function addToReplayParent(node, parentKeyPath, trackedPostpones) { + if (null === parentKeyPath) trackedPostpones.rootNodes.push(node); + else { + var workingMap = trackedPostpones.workingMap, + parentNode = workingMap.get(parentKeyPath); + void 0 === parentNode && + ((parentNode = [parentKeyPath[1], parentKeyPath[2], [], null]), + workingMap.set(parentKeyPath, parentNode), + addToReplayParent(parentNode, parentKeyPath[0], trackedPostpones)); + parentNode[2].push(node); + } +} +function getPostponedState(request) { + var trackedPostpones = request.trackedPostpones; + if ( + null === trackedPostpones || + (0 === trackedPostpones.rootNodes.length && + null === trackedPostpones.rootSlots) + ) + return (request.trackedPostpones = null); + if ( + null === request.completedRootSegment || + (5 !== request.completedRootSegment.status && + null !== request.completedPreambleSegments) + ) { + var nextSegmentId = request.nextSegmentId; + var replaySlots = trackedPostpones.rootSlots; + var resumableState = request.resumableState; + resumableState.bootstrapScriptContent = void 0; + resumableState.bootstrapScripts = void 0; + resumableState.bootstrapModules = void 0; + } else { + nextSegmentId = 0; + replaySlots = -1; + resumableState = request.resumableState; + var renderState = request.renderState; + resumableState.nextFormID = 0; + resumableState.hasBody = !1; + resumableState.hasHtml = !1; + resumableState.unknownResources = { font: renderState.resets.font }; + resumableState.dnsResources = renderState.resets.dns; + resumableState.connectResources = renderState.resets.connect; + resumableState.imageResources = renderState.resets.image; + resumableState.styleResources = renderState.resets.style; + resumableState.scriptResources = {}; + resumableState.moduleUnknownResources = {}; + resumableState.moduleScriptResources = {}; + resumableState.instructions = 0; + } + return { + nextSegmentId: nextSegmentId, + rootFormatContext: request.rootFormatContext, + progressiveChunkSize: request.progressiveChunkSize, + resumableState: request.resumableState, + replayNodes: trackedPostpones.rootNodes, + replaySlots: replaySlots + }; +} +function ensureCorrectIsomorphicReactVersion() { + var isomorphicReactPackageVersion = React.version; + if ("19.2.4" !== isomorphicReactPackageVersion) + throw Error( + 'Incompatible React versions: The "react" and "react-dom" packages must have the exact same version. Instead got:\n - react: ' + + (isomorphicReactPackageVersion + + "\n - react-dom: 19.2.4\nLearn more: https://react.dev/warnings/version-mismatch") + ); +} +ensureCorrectIsomorphicReactVersion(); +function createDrainHandler(destination, request) { + return function () { + return startFlowing(request, destination); + }; +} +function createCancelHandler(request, reason) { + return function () { + request.destination = null; + abort(request, Error(reason)); + }; +} +function createRequestImpl(children, options) { + var resumableState = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ); + return createRequest( + children, + resumableState, + createRenderState( + resumableState, + options ? options.nonce : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + options ? options.onHeaders : void 0, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + options ? options.onAllReady : void 0, + options ? options.onShellReady : void 0, + options ? options.onShellError : void 0, + void 0, + options ? options.onPostpone : void 0, + options ? options.formState : void 0 + ); +} +function createFakeWritableFromReadableStreamController$1(controller) { + return { + write: function (chunk) { + "string" === typeof chunk && (chunk = textEncoder.encode(chunk)); + controller.enqueue(chunk); + return !0; + }, + end: function () { + controller.close(); + }, + destroy: function (error) { + "function" === typeof controller.error + ? controller.error(error) + : controller.close(); + } + }; +} +function resumeRequestImpl(children, postponedState, options) { + return resumeRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + options ? options.nonce : void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + options ? options.onAllReady : void 0, + options ? options.onShellReady : void 0, + options ? options.onShellError : void 0, + void 0, + options ? options.onPostpone : void 0 + ); +} +ensureCorrectIsomorphicReactVersion(); +function createFakeWritableFromReadableStreamController(controller) { + return { + write: function (chunk) { + "string" === typeof chunk && (chunk = textEncoder.encode(chunk)); + controller.enqueue(chunk); + return !0; + }, + end: function () { + controller.close(); + }, + destroy: function (error) { + "function" === typeof controller.error + ? controller.error(error) + : controller.close(); + } + }; +} +function createFakeWritableFromReadable(readable) { + return { + write: function (chunk) { + return readable.push(chunk); + }, + end: function () { + readable.push(null); + }, + destroy: function (error) { + readable.destroy(error); + } + }; +} +exports.prerender = function (children, options) { + return new Promise(function (resolve, reject) { + var onHeaders = options ? options.onHeaders : void 0, + onHeadersImpl; + onHeaders && + (onHeadersImpl = function (headersDescriptor) { + onHeaders(new Headers(headersDescriptor)); + }); + var resources = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createPrerenderRequest( + children, + resources, + createRenderState( + resources, + void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + onHeadersImpl, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + function () { + var writable, + stream = new ReadableStream( + { + type: "bytes", + start: function (controller) { + writable = + createFakeWritableFromReadableStreamController(controller); + }, + pull: function () { + startFlowing(request, writable); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream = { postponed: getPostponedState(request), prelude: stream }; + resolve(stream); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.prerenderToNodeStream = function (children, options) { + return new Promise(function (resolve, reject) { + var resumableState = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createPrerenderRequest( + children, + resumableState, + createRenderState( + resumableState, + void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + options ? options.onHeaders : void 0, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + function () { + var readable = new stream.Readable({ + read: function () { + startFlowing(request, writable); + } + }), + writable = createFakeWritableFromReadable(readable); + readable = { + postponed: getPostponedState(request), + prelude: readable + }; + resolve(readable); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.renderToPipeableStream = function (children, options) { + var request = createRequestImpl(children, options), + hasStartedFlowing = !1; + startWork(request); + return { + pipe: function (destination) { + if (hasStartedFlowing) + throw Error( + "React currently only supports piping to one writable stream." + ); + hasStartedFlowing = !0; + safelyEmitEarlyPreloads( + request, + null === request.trackedPostpones + ? 0 === request.pendingRootTasks + : null === request.completedRootSegment + ? 0 === request.pendingRootTasks + : 5 !== request.completedRootSegment.status + ); + startFlowing(request, destination); + destination.on("drain", createDrainHandler(destination, request)); + destination.on( + "error", + createCancelHandler( + request, + "The destination stream errored while writing data." + ) + ); + destination.on( + "close", + createCancelHandler(request, "The destination stream closed early.") + ); + return destination; + }, + abort: function (reason) { + abort(request, reason); + } + }; +}; +exports.renderToReadableStream = function (children, options) { + return new Promise(function (resolve, reject) { + var onFatalError, + onAllReady, + allReady = new Promise(function (res, rej) { + onAllReady = res; + onFatalError = rej; + }), + onHeaders = options ? options.onHeaders : void 0, + onHeadersImpl; + onHeaders && + (onHeadersImpl = function (headersDescriptor) { + onHeaders(new Headers(headersDescriptor)); + }); + var resumableState = createResumableState( + options ? options.identifierPrefix : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.bootstrapScriptContent : void 0, + options ? options.bootstrapScripts : void 0, + options ? options.bootstrapModules : void 0 + ), + request = createRequest( + children, + resumableState, + createRenderState( + resumableState, + options ? options.nonce : void 0, + options ? options.unstable_externalRuntimeSrc : void 0, + options ? options.importMap : void 0, + onHeadersImpl, + options ? options.maxHeadersLength : void 0 + ), + createRootFormatContext(options ? options.namespaceURI : void 0), + options ? options.progressiveChunkSize : void 0, + options ? options.onError : void 0, + onAllReady, + function () { + var writable, + stream = new ReadableStream( + { + type: "bytes", + start: function (controller) { + writable = + createFakeWritableFromReadableStreamController$1( + controller + ); + }, + pull: function () { + startFlowing(request, writable); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream.allReady = allReady; + resolve(stream); + }, + function (error) { + allReady.catch(function () {}); + reject(error); + }, + onFatalError, + options ? options.onPostpone : void 0, + options ? options.formState : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resume = function (children, postponedState, options) { + return new Promise(function (resolve, reject) { + var onFatalError, + onAllReady, + allReady = new Promise(function (res, rej) { + onAllReady = res; + onFatalError = rej; + }), + request = resumeRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + options ? options.nonce : void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + onAllReady, + function () { + var writable, + stream = new ReadableStream( + { + type: "bytes", + start: function (controller) { + writable = + createFakeWritableFromReadableStreamController$1( + controller + ); + }, + pull: function () { + startFlowing(request, writable); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream.allReady = allReady; + resolve(stream); + }, + function (error) { + allReady.catch(function () {}); + reject(error); + }, + onFatalError, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resumeAndPrerender = function (children, postponedState, options) { + return new Promise(function (resolve, reject) { + var request = resumeAndPrerenderRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + function () { + var writable, + stream = new ReadableStream( + { + type: "bytes", + start: function (controller) { + writable = + createFakeWritableFromReadableStreamController(controller); + }, + pull: function () { + startFlowing(request, writable); + }, + cancel: function (reason) { + request.destination = null; + abort(request, reason); + } + }, + { highWaterMark: 0 } + ); + stream = { postponed: getPostponedState(request), prelude: stream }; + resolve(stream); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resumeAndPrerenderToNodeStream = function ( + children, + postponedState, + options +) { + return new Promise(function (resolve, reject) { + var request = resumeAndPrerenderRequest( + children, + postponedState, + createRenderState( + postponedState.resumableState, + void 0, + void 0, + void 0, + void 0, + void 0 + ), + options ? options.onError : void 0, + function () { + var readable = new stream.Readable({ + read: function () { + startFlowing(request, writable); + } + }), + writable = createFakeWritableFromReadable(readable); + readable = { postponed: getPostponedState(request), prelude: readable }; + resolve(readable); + }, + void 0, + void 0, + reject, + options ? options.onPostpone : void 0 + ); + if (options && options.signal) { + var signal = options.signal; + if (signal.aborted) abort(request, signal.reason); + else { + var listener = function () { + abort(request, signal.reason); + signal.removeEventListener("abort", listener); + }; + signal.addEventListener("abort", listener); + } + } + startWork(request); + }); +}; +exports.resumeToPipeableStream = function (children, postponedState, options) { + var request = resumeRequestImpl(children, postponedState, options), + hasStartedFlowing = !1; + startWork(request); + return { + pipe: function (destination) { + if (hasStartedFlowing) + throw Error( + "React currently only supports piping to one writable stream." + ); + hasStartedFlowing = !0; + startFlowing(request, destination); + destination.on("drain", createDrainHandler(destination, request)); + destination.on( + "error", + createCancelHandler( + request, + "The destination stream errored while writing data." + ) + ); + destination.on( + "close", + createCancelHandler(request, "The destination stream closed early.") + ); + return destination; + }, + abort: function (reason) { + abort(request, reason); + } + }; +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react-dom/cjs/react-dom.production.js b/cli/app/node_modules/react-dom/cjs/react-dom.production.js new file mode 100644 index 00000000000..a3497359521 --- /dev/null +++ b/cli/app/node_modules/react-dom/cjs/react-dom.production.js @@ -0,0 +1,210 @@ +/** + * @license React + * react-dom.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var React = require("react"); +function formatProdErrorMessage(code) { + var url = "https://react.dev/errors/" + code; + if (1 < arguments.length) { + url += "?args[]=" + encodeURIComponent(arguments[1]); + for (var i = 2; i < arguments.length; i++) + url += "&args[]=" + encodeURIComponent(arguments[i]); + } + return ( + "Minified React error #" + + code + + "; visit " + + url + + " for the full message or use the non-minified dev environment for full errors and additional helpful warnings." + ); +} +function noop() {} +var Internals = { + d: { + f: noop, + r: function () { + throw Error(formatProdErrorMessage(522)); + }, + D: noop, + C: noop, + L: noop, + m: noop, + X: noop, + S: noop, + M: noop + }, + p: 0, + findDOMNode: null + }, + REACT_PORTAL_TYPE = Symbol.for("react.portal"); +function createPortal$1(children, containerInfo, implementation) { + var key = + 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null; + return { + $$typeof: REACT_PORTAL_TYPE, + key: null == key ? null : "" + key, + children: children, + containerInfo: containerInfo, + implementation: implementation + }; +} +var ReactSharedInternals = + React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; +function getCrossOriginStringAs(as, input) { + if ("font" === as) return ""; + if ("string" === typeof input) + return "use-credentials" === input ? input : ""; +} +exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = + Internals; +exports.createPortal = function (children, container) { + var key = + 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null; + if ( + !container || + (1 !== container.nodeType && + 9 !== container.nodeType && + 11 !== container.nodeType) + ) + throw Error(formatProdErrorMessage(299)); + return createPortal$1(children, container, null, key); +}; +exports.flushSync = function (fn) { + var previousTransition = ReactSharedInternals.T, + previousUpdatePriority = Internals.p; + try { + if (((ReactSharedInternals.T = null), (Internals.p = 2), fn)) return fn(); + } finally { + (ReactSharedInternals.T = previousTransition), + (Internals.p = previousUpdatePriority), + Internals.d.f(); + } +}; +exports.preconnect = function (href, options) { + "string" === typeof href && + (options + ? ((options = options.crossOrigin), + (options = + "string" === typeof options + ? "use-credentials" === options + ? options + : "" + : void 0)) + : (options = null), + Internals.d.C(href, options)); +}; +exports.prefetchDNS = function (href) { + "string" === typeof href && Internals.d.D(href); +}; +exports.preinit = function (href, options) { + if ("string" === typeof href && options && "string" === typeof options.as) { + var as = options.as, + crossOrigin = getCrossOriginStringAs(as, options.crossOrigin), + integrity = + "string" === typeof options.integrity ? options.integrity : void 0, + fetchPriority = + "string" === typeof options.fetchPriority + ? options.fetchPriority + : void 0; + "style" === as + ? Internals.d.S( + href, + "string" === typeof options.precedence ? options.precedence : void 0, + { + crossOrigin: crossOrigin, + integrity: integrity, + fetchPriority: fetchPriority + } + ) + : "script" === as && + Internals.d.X(href, { + crossOrigin: crossOrigin, + integrity: integrity, + fetchPriority: fetchPriority, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } +}; +exports.preinitModule = function (href, options) { + if ("string" === typeof href) + if ("object" === typeof options && null !== options) { + if (null == options.as || "script" === options.as) { + var crossOrigin = getCrossOriginStringAs( + options.as, + options.crossOrigin + ); + Internals.d.M(href, { + crossOrigin: crossOrigin, + integrity: + "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0 + }); + } + } else null == options && Internals.d.M(href); +}; +exports.preload = function (href, options) { + if ( + "string" === typeof href && + "object" === typeof options && + null !== options && + "string" === typeof options.as + ) { + var as = options.as, + crossOrigin = getCrossOriginStringAs(as, options.crossOrigin); + Internals.d.L(href, as, { + crossOrigin: crossOrigin, + integrity: + "string" === typeof options.integrity ? options.integrity : void 0, + nonce: "string" === typeof options.nonce ? options.nonce : void 0, + type: "string" === typeof options.type ? options.type : void 0, + fetchPriority: + "string" === typeof options.fetchPriority + ? options.fetchPriority + : void 0, + referrerPolicy: + "string" === typeof options.referrerPolicy + ? options.referrerPolicy + : void 0, + imageSrcSet: + "string" === typeof options.imageSrcSet ? options.imageSrcSet : void 0, + imageSizes: + "string" === typeof options.imageSizes ? options.imageSizes : void 0, + media: "string" === typeof options.media ? options.media : void 0 + }); + } +}; +exports.preloadModule = function (href, options) { + if ("string" === typeof href) + if (options) { + var crossOrigin = getCrossOriginStringAs(options.as, options.crossOrigin); + Internals.d.m(href, { + as: + "string" === typeof options.as && "script" !== options.as + ? options.as + : void 0, + crossOrigin: crossOrigin, + integrity: + "string" === typeof options.integrity ? options.integrity : void 0 + }); + } else Internals.d.m(href); +}; +exports.requestFormReset = function (form) { + Internals.d.r(form); +}; +exports.unstable_batchedUpdates = function (fn, a) { + return fn(a); +}; +exports.useFormState = function (action, initialState, permalink) { + return ReactSharedInternals.H.useFormState(action, initialState, permalink); +}; +exports.useFormStatus = function () { + return ReactSharedInternals.H.useHostTransitionStatus(); +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react-dom/index.js b/cli/app/node_modules/react-dom/index.js new file mode 100644 index 00000000000..973f373e461 --- /dev/null +++ b/cli/app/node_modules/react-dom/index.js @@ -0,0 +1,38 @@ +'use strict'; + +function checkDCE() { + /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */ + if ( + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' || + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function' + ) { + return; + } + if (process.env.NODE_ENV !== 'production') { + // This branch is unreachable because this function is only called + // in production, but the condition is true only in development. + // Therefore if the branch is still here, dead code elimination wasn't + // properly applied. + // Don't change the message. React DevTools relies on it. Also make sure + // this message doesn't occur elsewhere in this function, or it will cause + // a false positive. + throw new Error('^_^'); + } + try { + // Verify that the code above has been dead code eliminated (DCE'd). + __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE); + } catch (err) { + // DevTools shouldn't crash React, no matter what. + // We should still report in case we break this code. + console.error(err); + } +} + +if (process.env.NODE_ENV === 'production') { + // DCE check should happen before ReactDOM bundle executes so that + // DevTools can report bad minification during injection. + checkDCE(); + module.exports = require('./cjs/react-dom.production.js'); +} else { + module.exports = require('./cjs/react-dom.development.js'); +} diff --git a/cli/app/node_modules/react-dom/package.json b/cli/app/node_modules/react-dom/package.json new file mode 100644 index 00000000000..2399835f2c9 --- /dev/null +++ b/cli/app/node_modules/react-dom/package.json @@ -0,0 +1,117 @@ +{ + "name": "react-dom", + "version": "19.2.4", + "description": "React package for working with the DOM.", + "main": "index.js", + "repository": { + "type": "git", + "url": "https://github.com/facebook/react.git", + "directory": "packages/react-dom" + }, + "keywords": [ + "react" + ], + "license": "MIT", + "bugs": { + "url": "https://github.com/facebook/react/issues" + }, + "homepage": "https://react.dev/", + "dependencies": { + "scheduler": "^0.27.0" + }, + "peerDependencies": { + "react": "^19.2.4" + }, + "files": [ + "LICENSE", + "README.md", + "client.js", + "client.react-server.js", + "index.js", + "profiling.js", + "profiling.react-server.js", + "react-dom.react-server.js", + "server.browser.js", + "server.bun.js", + "server.edge.js", + "server.js", + "server.node.js", + "server.react-server.js", + "static.browser.js", + "static.edge.js", + "static.js", + "static.node.js", + "static.react-server.js", + "test-utils.js", + "cjs/" + ], + "exports": { + ".": { + "react-server": "./react-dom.react-server.js", + "default": "./index.js" + }, + "./client": { + "react-server": "./client.react-server.js", + "default": "./client.js" + }, + "./server": { + "react-server": "./server.react-server.js", + "workerd": "./server.edge.js", + "bun": "./server.bun.js", + "deno": "./server.browser.js", + "worker": "./server.browser.js", + "node": "./server.node.js", + "edge-light": "./server.edge.js", + "browser": "./server.browser.js", + "default": "./server.node.js" + }, + "./server.browser": { + "react-server": "./server.react-server.js", + "default": "./server.browser.js" + }, + "./server.bun": { + "react-server": "./server.react-server.js", + "default": "./server.bun.js" + }, + "./server.edge": { + "react-server": "./server.react-server.js", + "default": "./server.edge.js" + }, + "./server.node": { + "react-server": "./server.react-server.js", + "default": "./server.node.js" + }, + "./static": { + "react-server": "./static.react-server.js", + "workerd": "./static.edge.js", + "deno": "./static.browser.js", + "worker": "./static.browser.js", + "node": "./static.node.js", + "edge-light": "./static.edge.js", + "browser": "./static.browser.js", + "default": "./static.node.js" + }, + "./static.browser": { + "react-server": "./static.react-server.js", + "default": "./static.browser.js" + }, + "./static.edge": { + "react-server": "./static.react-server.js", + "default": "./static.edge.js" + }, + "./static.node": { + "react-server": "./static.react-server.js", + "default": "./static.node.js" + }, + "./profiling": { + "react-server": "./profiling.react-server.js", + "default": "./profiling.js" + }, + "./test-utils": "./test-utils.js", + "./package.json": "./package.json" + }, + "browser": { + "./server.js": "./server.browser.js", + "./static.js": "./static.browser.js" + } +} \ No newline at end of file diff --git a/cli/app/node_modules/react-dom/server.browser.js b/cli/app/node_modules/react-dom/server.browser.js new file mode 100644 index 00000000000..4d806652713 --- /dev/null +++ b/cli/app/node_modules/react-dom/server.browser.js @@ -0,0 +1,16 @@ +'use strict'; + +var l, s; +if (process.env.NODE_ENV === 'production') { + l = require('./cjs/react-dom-server-legacy.browser.production.js'); + s = require('./cjs/react-dom-server.browser.production.js'); +} else { + l = require('./cjs/react-dom-server-legacy.browser.development.js'); + s = require('./cjs/react-dom-server.browser.development.js'); +} + +exports.version = l.version; +exports.renderToString = l.renderToString; +exports.renderToStaticMarkup = l.renderToStaticMarkup; +exports.renderToReadableStream = s.renderToReadableStream; +exports.resume = s.resume; diff --git a/cli/app/node_modules/react-dom/server.edge.js b/cli/app/node_modules/react-dom/server.edge.js new file mode 100644 index 00000000000..cc05ed6120f --- /dev/null +++ b/cli/app/node_modules/react-dom/server.edge.js @@ -0,0 +1,17 @@ +'use strict'; + +var b; +var l; +if (process.env.NODE_ENV === 'production') { + b = require('./cjs/react-dom-server.edge.production.js'); + l = require('./cjs/react-dom-server-legacy.browser.production.js'); +} else { + b = require('./cjs/react-dom-server.edge.development.js'); + l = require('./cjs/react-dom-server-legacy.browser.development.js'); +} + +exports.version = b.version; +exports.renderToReadableStream = b.renderToReadableStream; +exports.renderToString = l.renderToString; +exports.renderToStaticMarkup = l.renderToStaticMarkup; +exports.resume = b.resume; diff --git a/cli/app/node_modules/react-dom/server.js b/cli/app/node_modules/react-dom/server.js new file mode 100644 index 00000000000..02f1553990a --- /dev/null +++ b/cli/app/node_modules/react-dom/server.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./server.node'); diff --git a/cli/app/node_modules/react-dom/server.node.js b/cli/app/node_modules/react-dom/server.node.js new file mode 100644 index 00000000000..3feeac208fe --- /dev/null +++ b/cli/app/node_modules/react-dom/server.node.js @@ -0,0 +1,18 @@ +'use strict'; + +var l, s; +if (process.env.NODE_ENV === 'production') { + l = require('./cjs/react-dom-server-legacy.node.production.js'); + s = require('./cjs/react-dom-server.node.production.js'); +} else { + l = require('./cjs/react-dom-server-legacy.node.development.js'); + s = require('./cjs/react-dom-server.node.development.js'); +} + +exports.version = l.version; +exports.renderToString = l.renderToString; +exports.renderToStaticMarkup = l.renderToStaticMarkup; +exports.renderToPipeableStream = s.renderToPipeableStream; +exports.renderToReadableStream = s.renderToReadableStream; +exports.resumeToPipeableStream = s.resumeToPipeableStream; +exports.resume = s.resume; diff --git a/cli/app/node_modules/react-dom/static.js b/cli/app/node_modules/react-dom/static.js new file mode 100644 index 00000000000..2e39a9b183d --- /dev/null +++ b/cli/app/node_modules/react-dom/static.js @@ -0,0 +1,3 @@ +'use strict'; + +module.exports = require('./static.node'); diff --git a/cli/app/node_modules/react-dom/static.node.js b/cli/app/node_modules/react-dom/static.node.js new file mode 100644 index 00000000000..24fc9cbc20f --- /dev/null +++ b/cli/app/node_modules/react-dom/static.node.js @@ -0,0 +1,14 @@ +'use strict'; + +var s; +if (process.env.NODE_ENV === 'production') { + s = require('./cjs/react-dom-server.node.production.js'); +} else { + s = require('./cjs/react-dom-server.node.development.js'); +} + +exports.version = s.version; +exports.prerenderToNodeStream = s.prerenderToNodeStream; +exports.prerender = s.prerender; +exports.resumeAndPrerenderToNodeStream = s.resumeAndPrerenderToNodeStream; +exports.resumeAndPrerender = s.resumeAndPrerender; diff --git a/cli/app/node_modules/react/cjs/react-compiler-runtime.production.js b/cli/app/node_modules/react/cjs/react-compiler-runtime.production.js new file mode 100644 index 00000000000..4d5ade38f0f --- /dev/null +++ b/cli/app/node_modules/react/cjs/react-compiler-runtime.production.js @@ -0,0 +1,16 @@ +/** + * @license React + * react-compiler-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var ReactSharedInternals = + require("react").__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE; +exports.c = function (size) { + return ReactSharedInternals.H.useMemoCache(size); +}; diff --git a/cli/app/node_modules/react/cjs/react-jsx-dev-runtime.production.js b/cli/app/node_modules/react/cjs/react-jsx-dev-runtime.production.js new file mode 100644 index 00000000000..22ad88648e0 --- /dev/null +++ b/cli/app/node_modules/react/cjs/react-jsx-dev-runtime.production.js @@ -0,0 +1,14 @@ +/** + * @license React + * react-jsx-dev-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"); +exports.Fragment = REACT_FRAGMENT_TYPE; +exports.jsxDEV = void 0; diff --git a/cli/app/node_modules/react/cjs/react-jsx-runtime.production.js b/cli/app/node_modules/react/cjs/react-jsx-runtime.production.js new file mode 100644 index 00000000000..12d60887f08 --- /dev/null +++ b/cli/app/node_modules/react/cjs/react-jsx-runtime.production.js @@ -0,0 +1,34 @@ +/** + * @license React + * react-jsx-runtime.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"); +function jsxProd(type, config, maybeKey) { + var key = null; + void 0 !== maybeKey && (key = "" + maybeKey); + void 0 !== config.key && (key = "" + config.key); + if ("key" in config) { + maybeKey = {}; + for (var propName in config) + "key" !== propName && (maybeKey[propName] = config[propName]); + } else maybeKey = config; + config = maybeKey.ref; + return { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: key, + ref: void 0 !== config ? config : null, + props: maybeKey + }; +} +exports.Fragment = REACT_FRAGMENT_TYPE; +exports.jsx = jsxProd; +exports.jsxs = jsxProd; diff --git a/cli/app/node_modules/react/cjs/react.development.js b/cli/app/node_modules/react/cjs/react.development.js new file mode 100644 index 00000000000..8c026f92154 --- /dev/null +++ b/cli/app/node_modules/react/cjs/react.development.js @@ -0,0 +1,1284 @@ +/** + * @license React + * react.development.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +"production" !== process.env.NODE_ENV && + (function () { + function defineDeprecationWarning(methodName, info) { + Object.defineProperty(Component.prototype, methodName, { + get: function () { + console.warn( + "%s(...) is deprecated in plain JavaScript React classes. %s", + info[0], + info[1] + ); + } + }); + } + function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) + return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; + } + function warnNoop(publicInstance, callerName) { + publicInstance = + ((publicInstance = publicInstance.constructor) && + (publicInstance.displayName || publicInstance.name)) || + "ReactClass"; + var warningKey = publicInstance + "." + callerName; + didWarnStateUpdateForUnmountedComponent[warningKey] || + (console.error( + "Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.", + callerName, + publicInstance + ), + (didWarnStateUpdateForUnmountedComponent[warningKey] = !0)); + } + function Component(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + function ComponentDummy() {} + function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; + } + function noop() {} + function testStringCoercion(value) { + return "" + value; + } + function checkKeyStringCoercion(value) { + try { + testStringCoercion(value); + var JSCompiler_inline_result = !1; + } catch (e) { + JSCompiler_inline_result = !0; + } + if (JSCompiler_inline_result) { + JSCompiler_inline_result = console; + var JSCompiler_temp_const = JSCompiler_inline_result.error; + var JSCompiler_inline_result$jscomp$0 = + ("function" === typeof Symbol && + Symbol.toStringTag && + value[Symbol.toStringTag]) || + value.constructor.name || + "Object"; + JSCompiler_temp_const.call( + JSCompiler_inline_result, + "The provided key is an unsupported type %s. This value must be coerced to a string before using it here.", + JSCompiler_inline_result$jscomp$0 + ); + return testStringCoercion(value); + } + } + function getComponentNameFromType(type) { + if (null == type) return null; + if ("function" === typeof type) + return type.$$typeof === REACT_CLIENT_REFERENCE + ? null + : type.displayName || type.name || null; + if ("string" === typeof type) return type; + switch (type) { + case REACT_FRAGMENT_TYPE: + return "Fragment"; + case REACT_PROFILER_TYPE: + return "Profiler"; + case REACT_STRICT_MODE_TYPE: + return "StrictMode"; + case REACT_SUSPENSE_TYPE: + return "Suspense"; + case REACT_SUSPENSE_LIST_TYPE: + return "SuspenseList"; + case REACT_ACTIVITY_TYPE: + return "Activity"; + } + if ("object" === typeof type) + switch ( + ("number" === typeof type.tag && + console.error( + "Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue." + ), + type.$$typeof) + ) { + case REACT_PORTAL_TYPE: + return "Portal"; + case REACT_CONTEXT_TYPE: + return type.displayName || "Context"; + case REACT_CONSUMER_TYPE: + return (type._context.displayName || "Context") + ".Consumer"; + case REACT_FORWARD_REF_TYPE: + var innerType = type.render; + type = type.displayName; + type || + ((type = innerType.displayName || innerType.name || ""), + (type = "" !== type ? "ForwardRef(" + type + ")" : "ForwardRef")); + return type; + case REACT_MEMO_TYPE: + return ( + (innerType = type.displayName || null), + null !== innerType + ? innerType + : getComponentNameFromType(type.type) || "Memo" + ); + case REACT_LAZY_TYPE: + innerType = type._payload; + type = type._init; + try { + return getComponentNameFromType(type(innerType)); + } catch (x) {} + } + return null; + } + function getTaskName(type) { + if (type === REACT_FRAGMENT_TYPE) return "<>"; + if ( + "object" === typeof type && + null !== type && + type.$$typeof === REACT_LAZY_TYPE + ) + return "<...>"; + try { + var name = getComponentNameFromType(type); + return name ? "<" + name + ">" : "<...>"; + } catch (x) { + return "<...>"; + } + } + function getOwner() { + var dispatcher = ReactSharedInternals.A; + return null === dispatcher ? null : dispatcher.getOwner(); + } + function UnknownOwner() { + return Error("react-stack-top-frame"); + } + function hasValidKey(config) { + if (hasOwnProperty.call(config, "key")) { + var getter = Object.getOwnPropertyDescriptor(config, "key").get; + if (getter && getter.isReactWarning) return !1; + } + return void 0 !== config.key; + } + function defineKeyPropWarningGetter(props, displayName) { + function warnAboutAccessingKey() { + specialPropKeyWarningShown || + ((specialPropKeyWarningShown = !0), + console.error( + "%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)", + displayName + )); + } + warnAboutAccessingKey.isReactWarning = !0; + Object.defineProperty(props, "key", { + get: warnAboutAccessingKey, + configurable: !0 + }); + } + function elementRefGetterWithDeprecationWarning() { + var componentName = getComponentNameFromType(this.type); + didWarnAboutElementRef[componentName] || + ((didWarnAboutElementRef[componentName] = !0), + console.error( + "Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release." + )); + componentName = this.props.ref; + return void 0 !== componentName ? componentName : null; + } + function ReactElement(type, key, props, owner, debugStack, debugTask) { + var refProp = props.ref; + type = { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: key, + props: props, + _owner: owner + }; + null !== (void 0 !== refProp ? refProp : null) + ? Object.defineProperty(type, "ref", { + enumerable: !1, + get: elementRefGetterWithDeprecationWarning + }) + : Object.defineProperty(type, "ref", { enumerable: !1, value: null }); + type._store = {}; + Object.defineProperty(type._store, "validated", { + configurable: !1, + enumerable: !1, + writable: !0, + value: 0 + }); + Object.defineProperty(type, "_debugInfo", { + configurable: !1, + enumerable: !1, + writable: !0, + value: null + }); + Object.defineProperty(type, "_debugStack", { + configurable: !1, + enumerable: !1, + writable: !0, + value: debugStack + }); + Object.defineProperty(type, "_debugTask", { + configurable: !1, + enumerable: !1, + writable: !0, + value: debugTask + }); + Object.freeze && (Object.freeze(type.props), Object.freeze(type)); + return type; + } + function cloneAndReplaceKey(oldElement, newKey) { + newKey = ReactElement( + oldElement.type, + newKey, + oldElement.props, + oldElement._owner, + oldElement._debugStack, + oldElement._debugTask + ); + oldElement._store && + (newKey._store.validated = oldElement._store.validated); + return newKey; + } + function validateChildKeys(node) { + isValidElement(node) + ? node._store && (node._store.validated = 1) + : "object" === typeof node && + null !== node && + node.$$typeof === REACT_LAZY_TYPE && + ("fulfilled" === node._payload.status + ? isValidElement(node._payload.value) && + node._payload.value._store && + (node._payload.value._store.validated = 1) + : node._store && (node._store.validated = 1)); + } + function isValidElement(object) { + return ( + "object" === typeof object && + null !== object && + object.$$typeof === REACT_ELEMENT_TYPE + ); + } + function escape(key) { + var escaperLookup = { "=": "=0", ":": "=2" }; + return ( + "$" + + key.replace(/[=:]/g, function (match) { + return escaperLookup[match]; + }) + ); + } + function getElementKey(element, index) { + return "object" === typeof element && + null !== element && + null != element.key + ? (checkKeyStringCoercion(element.key), escape("" + element.key)) + : index.toString(36); + } + function resolveThenable(thenable) { + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + switch ( + ("string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenable.status = "pending"), + thenable.then( + function (fulfilledValue) { + "pending" === thenable.status && + ((thenable.status = "fulfilled"), + (thenable.value = fulfilledValue)); + }, + function (error) { + "pending" === thenable.status && + ((thenable.status = "rejected"), + (thenable.reason = error)); + } + )), + thenable.status) + ) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + } + throw thenable; + } + function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if ("undefined" === type || "boolean" === type) children = null; + var invokeCallback = !1; + if (null === children) invokeCallback = !0; + else + switch (type) { + case "bigint": + case "string": + case "number": + invokeCallback = !0; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = !0; + break; + case REACT_LAZY_TYPE: + return ( + (invokeCallback = children._init), + mapIntoArray( + invokeCallback(children._payload), + array, + escapedPrefix, + nameSoFar, + callback + ) + ); + } + } + if (invokeCallback) { + invokeCallback = children; + callback = callback(invokeCallback); + var childKey = + "" === nameSoFar ? "." + getElementKey(invokeCallback, 0) : nameSoFar; + isArrayImpl(callback) + ? ((escapedPrefix = ""), + null != childKey && + (escapedPrefix = + childKey.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), + mapIntoArray(callback, array, escapedPrefix, "", function (c) { + return c; + })) + : null != callback && + (isValidElement(callback) && + (null != callback.key && + ((invokeCallback && invokeCallback.key === callback.key) || + checkKeyStringCoercion(callback.key)), + (escapedPrefix = cloneAndReplaceKey( + callback, + escapedPrefix + + (null == callback.key || + (invokeCallback && invokeCallback.key === callback.key) + ? "" + : ("" + callback.key).replace( + userProvidedKeyEscapeRegex, + "$&/" + ) + "/") + + childKey + )), + "" !== nameSoFar && + null != invokeCallback && + isValidElement(invokeCallback) && + null == invokeCallback.key && + invokeCallback._store && + !invokeCallback._store.validated && + (escapedPrefix._store.validated = 2), + (callback = escapedPrefix)), + array.push(callback)); + return 1; + } + invokeCallback = 0; + childKey = "" === nameSoFar ? "." : nameSoFar + ":"; + if (isArrayImpl(children)) + for (var i = 0; i < children.length; i++) + (nameSoFar = children[i]), + (type = childKey + getElementKey(nameSoFar, i)), + (invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + )); + else if (((i = getIteratorFn(children)), "function" === typeof i)) + for ( + i === children.entries && + (didWarnAboutMaps || + console.warn( + "Using Maps as children is not supported. Use an array of keyed ReactElements instead." + ), + (didWarnAboutMaps = !0)), + children = i.call(children), + i = 0; + !(nameSoFar = children.next()).done; + + ) + (nameSoFar = nameSoFar.value), + (type = childKey + getElementKey(nameSoFar, i++)), + (invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + )); + else if ("object" === type) { + if ("function" === typeof children.then) + return mapIntoArray( + resolveThenable(children), + array, + escapedPrefix, + nameSoFar, + callback + ); + array = String(children); + throw Error( + "Objects are not valid as a React child (found: " + + ("[object Object]" === array + ? "object with keys {" + Object.keys(children).join(", ") + "}" + : array) + + "). If you meant to render a collection of children, use an array instead." + ); + } + return invokeCallback; + } + function mapChildren(children, func, context) { + if (null == children) return children; + var result = [], + count = 0; + mapIntoArray(children, result, "", "", function (child) { + return func.call(context, child, count++); + }); + return result; + } + function lazyInitializer(payload) { + if (-1 === payload._status) { + var ioInfo = payload._ioInfo; + null != ioInfo && (ioInfo.start = ioInfo.end = performance.now()); + ioInfo = payload._result; + var thenable = ioInfo(); + thenable.then( + function (moduleObject) { + if (0 === payload._status || -1 === payload._status) { + payload._status = 1; + payload._result = moduleObject; + var _ioInfo = payload._ioInfo; + null != _ioInfo && (_ioInfo.end = performance.now()); + void 0 === thenable.status && + ((thenable.status = "fulfilled"), + (thenable.value = moduleObject)); + } + }, + function (error) { + if (0 === payload._status || -1 === payload._status) { + payload._status = 2; + payload._result = error; + var _ioInfo2 = payload._ioInfo; + null != _ioInfo2 && (_ioInfo2.end = performance.now()); + void 0 === thenable.status && + ((thenable.status = "rejected"), (thenable.reason = error)); + } + } + ); + ioInfo = payload._ioInfo; + if (null != ioInfo) { + ioInfo.value = thenable; + var displayName = thenable.displayName; + "string" === typeof displayName && (ioInfo.name = displayName); + } + -1 === payload._status && + ((payload._status = 0), (payload._result = thenable)); + } + if (1 === payload._status) + return ( + (ioInfo = payload._result), + void 0 === ioInfo && + console.error( + "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))\n\nDid you accidentally put curly braces around the import?", + ioInfo + ), + "default" in ioInfo || + console.error( + "lazy: Expected the result of a dynamic import() call. Instead received: %s\n\nYour code should look like: \n const MyComponent = lazy(() => import('./MyComponent'))", + ioInfo + ), + ioInfo.default + ); + throw payload._result; + } + function resolveDispatcher() { + var dispatcher = ReactSharedInternals.H; + null === dispatcher && + console.error( + "Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\n1. You might have mismatching versions of React and the renderer (such as React DOM)\n2. You might be breaking the Rules of Hooks\n3. You might have more than one copy of React in the same app\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem." + ); + return dispatcher; + } + function releaseAsyncTransition() { + ReactSharedInternals.asyncTransitions--; + } + function enqueueTask(task) { + if (null === enqueueTaskImpl) + try { + var requireString = ("require" + Math.random()).slice(0, 7); + enqueueTaskImpl = (module && module[requireString]).call( + module, + "timers" + ).setImmediate; + } catch (_err) { + enqueueTaskImpl = function (callback) { + !1 === didWarnAboutMessageChannel && + ((didWarnAboutMessageChannel = !0), + "undefined" === typeof MessageChannel && + console.error( + "This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning." + )); + var channel = new MessageChannel(); + channel.port1.onmessage = callback; + channel.port2.postMessage(void 0); + }; + } + return enqueueTaskImpl(task); + } + function aggregateErrors(errors) { + return 1 < errors.length && "function" === typeof AggregateError + ? new AggregateError(errors) + : errors[0]; + } + function popActScope(prevActQueue, prevActScopeDepth) { + prevActScopeDepth !== actScopeDepth - 1 && + console.error( + "You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. " + ); + actScopeDepth = prevActScopeDepth; + } + function recursivelyFlushAsyncActWork(returnValue, resolve, reject) { + var queue = ReactSharedInternals.actQueue; + if (null !== queue) + if (0 !== queue.length) + try { + flushActQueue(queue); + enqueueTask(function () { + return recursivelyFlushAsyncActWork(returnValue, resolve, reject); + }); + return; + } catch (error) { + ReactSharedInternals.thrownErrors.push(error); + } + else ReactSharedInternals.actQueue = null; + 0 < ReactSharedInternals.thrownErrors.length + ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)), + (ReactSharedInternals.thrownErrors.length = 0), + reject(queue)) + : resolve(returnValue); + } + function flushActQueue(queue) { + if (!isFlushing) { + isFlushing = !0; + var i = 0; + try { + for (; i < queue.length; i++) { + var callback = queue[i]; + do { + ReactSharedInternals.didUsePromise = !1; + var continuation = callback(!1); + if (null !== continuation) { + if (ReactSharedInternals.didUsePromise) { + queue[i] = callback; + queue.splice(0, i); + return; + } + callback = continuation; + } else break; + } while (1); + } + queue.length = 0; + } catch (error) { + queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error); + } finally { + isFlushing = !1; + } + } + } + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && + "function" === + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart && + __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error()); + var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_SUSPENSE_LIST_TYPE = Symbol.for("react.suspense_list"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator, + didWarnStateUpdateForUnmountedComponent = {}, + ReactNoopUpdateQueue = { + isMounted: function () { + return !1; + }, + enqueueForceUpdate: function (publicInstance) { + warnNoop(publicInstance, "forceUpdate"); + }, + enqueueReplaceState: function (publicInstance) { + warnNoop(publicInstance, "replaceState"); + }, + enqueueSetState: function (publicInstance) { + warnNoop(publicInstance, "setState"); + } + }, + assign = Object.assign, + emptyObject = {}; + Object.freeze(emptyObject); + Component.prototype.isReactComponent = {}; + Component.prototype.setState = function (partialState, callback) { + if ( + "object" !== typeof partialState && + "function" !== typeof partialState && + null != partialState + ) + throw Error( + "takes an object of state variables to update or a function which returns an object of state variables." + ); + this.updater.enqueueSetState(this, partialState, callback, "setState"); + }; + Component.prototype.forceUpdate = function (callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); + }; + var deprecatedAPIs = { + isMounted: [ + "isMounted", + "Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks." + ], + replaceState: [ + "replaceState", + "Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236)." + ] + }; + for (fnName in deprecatedAPIs) + deprecatedAPIs.hasOwnProperty(fnName) && + defineDeprecationWarning(fnName, deprecatedAPIs[fnName]); + ComponentDummy.prototype = Component.prototype; + deprecatedAPIs = PureComponent.prototype = new ComponentDummy(); + deprecatedAPIs.constructor = PureComponent; + assign(deprecatedAPIs, Component.prototype); + deprecatedAPIs.isPureReactComponent = !0; + var isArrayImpl = Array.isArray, + REACT_CLIENT_REFERENCE = Symbol.for("react.client.reference"), + ReactSharedInternals = { + H: null, + A: null, + T: null, + S: null, + actQueue: null, + asyncTransitions: 0, + isBatchingLegacy: !1, + didScheduleLegacyUpdate: !1, + didUsePromise: !1, + thrownErrors: [], + getCurrentStack: null, + recentlyCreatedOwnerStacks: 0 + }, + hasOwnProperty = Object.prototype.hasOwnProperty, + createTask = console.createTask + ? console.createTask + : function () { + return null; + }; + deprecatedAPIs = { + react_stack_bottom_frame: function (callStackForError) { + return callStackForError(); + } + }; + var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime; + var didWarnAboutElementRef = {}; + var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind( + deprecatedAPIs, + UnknownOwner + )(); + var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner)); + var didWarnAboutMaps = !1, + userProvidedKeyEscapeRegex = /\/+/g, + reportGlobalError = + "function" === typeof reportError + ? reportError + : function (error) { + if ( + "object" === typeof window && + "function" === typeof window.ErrorEvent + ) { + var event = new window.ErrorEvent("error", { + bubbles: !0, + cancelable: !0, + message: + "object" === typeof error && + null !== error && + "string" === typeof error.message + ? String(error.message) + : String(error), + error: error + }); + if (!window.dispatchEvent(event)) return; + } else if ( + "object" === typeof process && + "function" === typeof process.emit + ) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }, + didWarnAboutMessageChannel = !1, + enqueueTaskImpl = null, + actScopeDepth = 0, + didWarnNoAwaitAct = !1, + isFlushing = !1, + queueSeveralMicrotasks = + "function" === typeof queueMicrotask + ? function (callback) { + queueMicrotask(function () { + return queueMicrotask(callback); + }); + } + : enqueueTask; + deprecatedAPIs = Object.freeze({ + __proto__: null, + c: function (size) { + return resolveDispatcher().useMemoCache(size); + } + }); + var fnName = { + map: mapChildren, + forEach: function (children, forEachFunc, forEachContext) { + mapChildren( + children, + function () { + forEachFunc.apply(this, arguments); + }, + forEachContext + ); + }, + count: function (children) { + var n = 0; + mapChildren(children, function () { + n++; + }); + return n; + }, + toArray: function (children) { + return ( + mapChildren(children, function (child) { + return child; + }) || [] + ); + }, + only: function (children) { + if (!isValidElement(children)) + throw Error( + "React.Children.only expected to receive a single React element child." + ); + return children; + } + }; + exports.Activity = REACT_ACTIVITY_TYPE; + exports.Children = fnName; + exports.Component = Component; + exports.Fragment = REACT_FRAGMENT_TYPE; + exports.Profiler = REACT_PROFILER_TYPE; + exports.PureComponent = PureComponent; + exports.StrictMode = REACT_STRICT_MODE_TYPE; + exports.Suspense = REACT_SUSPENSE_TYPE; + exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = + ReactSharedInternals; + exports.__COMPILER_RUNTIME = deprecatedAPIs; + exports.act = function (callback) { + var prevActQueue = ReactSharedInternals.actQueue, + prevActScopeDepth = actScopeDepth; + actScopeDepth++; + var queue = (ReactSharedInternals.actQueue = + null !== prevActQueue ? prevActQueue : []), + didAwaitActCall = !1; + try { + var result = callback(); + } catch (error) { + ReactSharedInternals.thrownErrors.push(error); + } + if (0 < ReactSharedInternals.thrownErrors.length) + throw ( + (popActScope(prevActQueue, prevActScopeDepth), + (callback = aggregateErrors(ReactSharedInternals.thrownErrors)), + (ReactSharedInternals.thrownErrors.length = 0), + callback) + ); + if ( + null !== result && + "object" === typeof result && + "function" === typeof result.then + ) { + var thenable = result; + queueSeveralMicrotasks(function () { + didAwaitActCall || + didWarnNoAwaitAct || + ((didWarnNoAwaitAct = !0), + console.error( + "You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);" + )); + }); + return { + then: function (resolve, reject) { + didAwaitActCall = !0; + thenable.then( + function (returnValue) { + popActScope(prevActQueue, prevActScopeDepth); + if (0 === prevActScopeDepth) { + try { + flushActQueue(queue), + enqueueTask(function () { + return recursivelyFlushAsyncActWork( + returnValue, + resolve, + reject + ); + }); + } catch (error$0) { + ReactSharedInternals.thrownErrors.push(error$0); + } + if (0 < ReactSharedInternals.thrownErrors.length) { + var _thrownError = aggregateErrors( + ReactSharedInternals.thrownErrors + ); + ReactSharedInternals.thrownErrors.length = 0; + reject(_thrownError); + } + } else resolve(returnValue); + }, + function (error) { + popActScope(prevActQueue, prevActScopeDepth); + 0 < ReactSharedInternals.thrownErrors.length + ? ((error = aggregateErrors( + ReactSharedInternals.thrownErrors + )), + (ReactSharedInternals.thrownErrors.length = 0), + reject(error)) + : reject(error); + } + ); + } + }; + } + var returnValue$jscomp$0 = result; + popActScope(prevActQueue, prevActScopeDepth); + 0 === prevActScopeDepth && + (flushActQueue(queue), + 0 !== queue.length && + queueSeveralMicrotasks(function () { + didAwaitActCall || + didWarnNoAwaitAct || + ((didWarnNoAwaitAct = !0), + console.error( + "A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\n\nawait act(() => ...)" + )); + }), + (ReactSharedInternals.actQueue = null)); + if (0 < ReactSharedInternals.thrownErrors.length) + throw ( + ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)), + (ReactSharedInternals.thrownErrors.length = 0), + callback) + ); + return { + then: function (resolve, reject) { + didAwaitActCall = !0; + 0 === prevActScopeDepth + ? ((ReactSharedInternals.actQueue = queue), + enqueueTask(function () { + return recursivelyFlushAsyncActWork( + returnValue$jscomp$0, + resolve, + reject + ); + })) + : resolve(returnValue$jscomp$0); + } + }; + }; + exports.cache = function (fn) { + return function () { + return fn.apply(null, arguments); + }; + }; + exports.cacheSignal = function () { + return null; + }; + exports.captureOwnerStack = function () { + var getCurrentStack = ReactSharedInternals.getCurrentStack; + return null === getCurrentStack ? null : getCurrentStack(); + }; + exports.cloneElement = function (element, config, children) { + if (null === element || void 0 === element) + throw Error( + "The argument must be a React element, but you passed " + + element + + "." + ); + var props = assign({}, element.props), + key = element.key, + owner = element._owner; + if (null != config) { + var JSCompiler_inline_result; + a: { + if ( + hasOwnProperty.call(config, "ref") && + (JSCompiler_inline_result = Object.getOwnPropertyDescriptor( + config, + "ref" + ).get) && + JSCompiler_inline_result.isReactWarning + ) { + JSCompiler_inline_result = !1; + break a; + } + JSCompiler_inline_result = void 0 !== config.ref; + } + JSCompiler_inline_result && (owner = getOwner()); + hasValidKey(config) && + (checkKeyStringCoercion(config.key), (key = "" + config.key)); + for (propName in config) + !hasOwnProperty.call(config, propName) || + "key" === propName || + "__self" === propName || + "__source" === propName || + ("ref" === propName && void 0 === config.ref) || + (props[propName] = config[propName]); + } + var propName = arguments.length - 2; + if (1 === propName) props.children = children; + else if (1 < propName) { + JSCompiler_inline_result = Array(propName); + for (var i = 0; i < propName; i++) + JSCompiler_inline_result[i] = arguments[i + 2]; + props.children = JSCompiler_inline_result; + } + props = ReactElement( + element.type, + key, + props, + owner, + element._debugStack, + element._debugTask + ); + for (key = 2; key < arguments.length; key++) + validateChildKeys(arguments[key]); + return props; + }; + exports.createContext = function (defaultValue) { + defaultValue = { + $$typeof: REACT_CONTEXT_TYPE, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + defaultValue.Provider = defaultValue; + defaultValue.Consumer = { + $$typeof: REACT_CONSUMER_TYPE, + _context: defaultValue + }; + defaultValue._currentRenderer = null; + defaultValue._currentRenderer2 = null; + return defaultValue; + }; + exports.createElement = function (type, config, children) { + for (var i = 2; i < arguments.length; i++) + validateChildKeys(arguments[i]); + i = {}; + var key = null; + if (null != config) + for (propName in (didWarnAboutOldJSXRuntime || + !("__self" in config) || + "key" in config || + ((didWarnAboutOldJSXRuntime = !0), + console.warn( + "Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform" + )), + hasValidKey(config) && + (checkKeyStringCoercion(config.key), (key = "" + config.key)), + config)) + hasOwnProperty.call(config, propName) && + "key" !== propName && + "__self" !== propName && + "__source" !== propName && + (i[propName] = config[propName]); + var childrenLength = arguments.length - 2; + if (1 === childrenLength) i.children = children; + else if (1 < childrenLength) { + for ( + var childArray = Array(childrenLength), _i = 0; + _i < childrenLength; + _i++ + ) + childArray[_i] = arguments[_i + 2]; + Object.freeze && Object.freeze(childArray); + i.children = childArray; + } + if (type && type.defaultProps) + for (propName in ((childrenLength = type.defaultProps), childrenLength)) + void 0 === i[propName] && (i[propName] = childrenLength[propName]); + key && + defineKeyPropWarningGetter( + i, + "function" === typeof type + ? type.displayName || type.name || "Unknown" + : type + ); + var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++; + return ReactElement( + type, + key, + i, + getOwner(), + propName ? Error("react-stack-top-frame") : unknownOwnerDebugStack, + propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask + ); + }; + exports.createRef = function () { + var refObject = { current: null }; + Object.seal(refObject); + return refObject; + }; + exports.forwardRef = function (render) { + null != render && render.$$typeof === REACT_MEMO_TYPE + ? console.error( + "forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...))." + ) + : "function" !== typeof render + ? console.error( + "forwardRef requires a render function but was given %s.", + null === render ? "null" : typeof render + ) + : 0 !== render.length && + 2 !== render.length && + console.error( + "forwardRef render functions accept exactly two parameters: props and ref. %s", + 1 === render.length + ? "Did you forget to use the ref parameter?" + : "Any additional parameter will be undefined." + ); + null != render && + null != render.defaultProps && + console.error( + "forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?" + ); + var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render }, + ownName; + Object.defineProperty(elementType, "displayName", { + enumerable: !1, + configurable: !0, + get: function () { + return ownName; + }, + set: function (name) { + ownName = name; + render.name || + render.displayName || + (Object.defineProperty(render, "name", { value: name }), + (render.displayName = name)); + } + }); + return elementType; + }; + exports.isValidElement = isValidElement; + exports.lazy = function (ctor) { + ctor = { _status: -1, _result: ctor }; + var lazyType = { + $$typeof: REACT_LAZY_TYPE, + _payload: ctor, + _init: lazyInitializer + }, + ioInfo = { + name: "lazy", + start: -1, + end: -1, + value: null, + owner: null, + debugStack: Error("react-stack-top-frame"), + debugTask: console.createTask ? console.createTask("lazy()") : null + }; + ctor._ioInfo = ioInfo; + lazyType._debugInfo = [{ awaited: ioInfo }]; + return lazyType; + }; + exports.memo = function (type, compare) { + null == type && + console.error( + "memo: The first argument must be a component. Instead received: %s", + null === type ? "null" : typeof type + ); + compare = { + $$typeof: REACT_MEMO_TYPE, + type: type, + compare: void 0 === compare ? null : compare + }; + var ownName; + Object.defineProperty(compare, "displayName", { + enumerable: !1, + configurable: !0, + get: function () { + return ownName; + }, + set: function (name) { + ownName = name; + type.name || + type.displayName || + (Object.defineProperty(type, "name", { value: name }), + (type.displayName = name)); + } + }); + return compare; + }; + exports.startTransition = function (scope) { + var prevTransition = ReactSharedInternals.T, + currentTransition = {}; + currentTransition._updatedFibers = new Set(); + ReactSharedInternals.T = currentTransition; + try { + var returnValue = scope(), + onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && + onStartTransitionFinish(currentTransition, returnValue); + "object" === typeof returnValue && + null !== returnValue && + "function" === typeof returnValue.then && + (ReactSharedInternals.asyncTransitions++, + returnValue.then(releaseAsyncTransition, releaseAsyncTransition), + returnValue.then(noop, reportGlobalError)); + } catch (error) { + reportGlobalError(error); + } finally { + null === prevTransition && + currentTransition._updatedFibers && + ((scope = currentTransition._updatedFibers.size), + currentTransition._updatedFibers.clear(), + 10 < scope && + console.warn( + "Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table." + )), + null !== prevTransition && + null !== currentTransition.types && + (null !== prevTransition.types && + prevTransition.types !== currentTransition.types && + console.error( + "We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React." + ), + (prevTransition.types = currentTransition.types)), + (ReactSharedInternals.T = prevTransition); + } + }; + exports.unstable_useCacheRefresh = function () { + return resolveDispatcher().useCacheRefresh(); + }; + exports.use = function (usable) { + return resolveDispatcher().use(usable); + }; + exports.useActionState = function (action, initialState, permalink) { + return resolveDispatcher().useActionState( + action, + initialState, + permalink + ); + }; + exports.useCallback = function (callback, deps) { + return resolveDispatcher().useCallback(callback, deps); + }; + exports.useContext = function (Context) { + var dispatcher = resolveDispatcher(); + Context.$$typeof === REACT_CONSUMER_TYPE && + console.error( + "Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?" + ); + return dispatcher.useContext(Context); + }; + exports.useDebugValue = function (value, formatterFn) { + return resolveDispatcher().useDebugValue(value, formatterFn); + }; + exports.useDeferredValue = function (value, initialValue) { + return resolveDispatcher().useDeferredValue(value, initialValue); + }; + exports.useEffect = function (create, deps) { + null == create && + console.warn( + "React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useEffect(create, deps); + }; + exports.useEffectEvent = function (callback) { + return resolveDispatcher().useEffectEvent(callback); + }; + exports.useId = function () { + return resolveDispatcher().useId(); + }; + exports.useImperativeHandle = function (ref, create, deps) { + return resolveDispatcher().useImperativeHandle(ref, create, deps); + }; + exports.useInsertionEffect = function (create, deps) { + null == create && + console.warn( + "React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useInsertionEffect(create, deps); + }; + exports.useLayoutEffect = function (create, deps) { + null == create && + console.warn( + "React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?" + ); + return resolveDispatcher().useLayoutEffect(create, deps); + }; + exports.useMemo = function (create, deps) { + return resolveDispatcher().useMemo(create, deps); + }; + exports.useOptimistic = function (passthrough, reducer) { + return resolveDispatcher().useOptimistic(passthrough, reducer); + }; + exports.useReducer = function (reducer, initialArg, init) { + return resolveDispatcher().useReducer(reducer, initialArg, init); + }; + exports.useRef = function (initialValue) { + return resolveDispatcher().useRef(initialValue); + }; + exports.useState = function (initialState) { + return resolveDispatcher().useState(initialState); + }; + exports.useSyncExternalStore = function ( + subscribe, + getSnapshot, + getServerSnapshot + ) { + return resolveDispatcher().useSyncExternalStore( + subscribe, + getSnapshot, + getServerSnapshot + ); + }; + exports.useTransition = function () { + return resolveDispatcher().useTransition(); + }; + exports.version = "19.2.4"; + "undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ && + "function" === + typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop && + __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error()); + })(); diff --git a/cli/app/node_modules/react/cjs/react.production.js b/cli/app/node_modules/react/cjs/react.production.js new file mode 100644 index 00000000000..28eed1e428d --- /dev/null +++ b/cli/app/node_modules/react/cjs/react.production.js @@ -0,0 +1,542 @@ +/** + * @license React + * react.production.js + * + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +"use strict"; +var REACT_ELEMENT_TYPE = Symbol.for("react.transitional.element"), + REACT_PORTAL_TYPE = Symbol.for("react.portal"), + REACT_FRAGMENT_TYPE = Symbol.for("react.fragment"), + REACT_STRICT_MODE_TYPE = Symbol.for("react.strict_mode"), + REACT_PROFILER_TYPE = Symbol.for("react.profiler"), + REACT_CONSUMER_TYPE = Symbol.for("react.consumer"), + REACT_CONTEXT_TYPE = Symbol.for("react.context"), + REACT_FORWARD_REF_TYPE = Symbol.for("react.forward_ref"), + REACT_SUSPENSE_TYPE = Symbol.for("react.suspense"), + REACT_MEMO_TYPE = Symbol.for("react.memo"), + REACT_LAZY_TYPE = Symbol.for("react.lazy"), + REACT_ACTIVITY_TYPE = Symbol.for("react.activity"), + MAYBE_ITERATOR_SYMBOL = Symbol.iterator; +function getIteratorFn(maybeIterable) { + if (null === maybeIterable || "object" !== typeof maybeIterable) return null; + maybeIterable = + (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) || + maybeIterable["@@iterator"]; + return "function" === typeof maybeIterable ? maybeIterable : null; +} +var ReactNoopUpdateQueue = { + isMounted: function () { + return !1; + }, + enqueueForceUpdate: function () {}, + enqueueReplaceState: function () {}, + enqueueSetState: function () {} + }, + assign = Object.assign, + emptyObject = {}; +function Component(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; +} +Component.prototype.isReactComponent = {}; +Component.prototype.setState = function (partialState, callback) { + if ( + "object" !== typeof partialState && + "function" !== typeof partialState && + null != partialState + ) + throw Error( + "takes an object of state variables to update or a function which returns an object of state variables." + ); + this.updater.enqueueSetState(this, partialState, callback, "setState"); +}; +Component.prototype.forceUpdate = function (callback) { + this.updater.enqueueForceUpdate(this, callback, "forceUpdate"); +}; +function ComponentDummy() {} +ComponentDummy.prototype = Component.prototype; +function PureComponent(props, context, updater) { + this.props = props; + this.context = context; + this.refs = emptyObject; + this.updater = updater || ReactNoopUpdateQueue; +} +var pureComponentPrototype = (PureComponent.prototype = new ComponentDummy()); +pureComponentPrototype.constructor = PureComponent; +assign(pureComponentPrototype, Component.prototype); +pureComponentPrototype.isPureReactComponent = !0; +var isArrayImpl = Array.isArray; +function noop() {} +var ReactSharedInternals = { H: null, A: null, T: null, S: null }, + hasOwnProperty = Object.prototype.hasOwnProperty; +function ReactElement(type, key, props) { + var refProp = props.ref; + return { + $$typeof: REACT_ELEMENT_TYPE, + type: type, + key: key, + ref: void 0 !== refProp ? refProp : null, + props: props + }; +} +function cloneAndReplaceKey(oldElement, newKey) { + return ReactElement(oldElement.type, newKey, oldElement.props); +} +function isValidElement(object) { + return ( + "object" === typeof object && + null !== object && + object.$$typeof === REACT_ELEMENT_TYPE + ); +} +function escape(key) { + var escaperLookup = { "=": "=0", ":": "=2" }; + return ( + "$" + + key.replace(/[=:]/g, function (match) { + return escaperLookup[match]; + }) + ); +} +var userProvidedKeyEscapeRegex = /\/+/g; +function getElementKey(element, index) { + return "object" === typeof element && null !== element && null != element.key + ? escape("" + element.key) + : index.toString(36); +} +function resolveThenable(thenable) { + switch (thenable.status) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + default: + switch ( + ("string" === typeof thenable.status + ? thenable.then(noop, noop) + : ((thenable.status = "pending"), + thenable.then( + function (fulfilledValue) { + "pending" === thenable.status && + ((thenable.status = "fulfilled"), + (thenable.value = fulfilledValue)); + }, + function (error) { + "pending" === thenable.status && + ((thenable.status = "rejected"), (thenable.reason = error)); + } + )), + thenable.status) + ) { + case "fulfilled": + return thenable.value; + case "rejected": + throw thenable.reason; + } + } + throw thenable; +} +function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) { + var type = typeof children; + if ("undefined" === type || "boolean" === type) children = null; + var invokeCallback = !1; + if (null === children) invokeCallback = !0; + else + switch (type) { + case "bigint": + case "string": + case "number": + invokeCallback = !0; + break; + case "object": + switch (children.$$typeof) { + case REACT_ELEMENT_TYPE: + case REACT_PORTAL_TYPE: + invokeCallback = !0; + break; + case REACT_LAZY_TYPE: + return ( + (invokeCallback = children._init), + mapIntoArray( + invokeCallback(children._payload), + array, + escapedPrefix, + nameSoFar, + callback + ) + ); + } + } + if (invokeCallback) + return ( + (callback = callback(children)), + (invokeCallback = + "" === nameSoFar ? "." + getElementKey(children, 0) : nameSoFar), + isArrayImpl(callback) + ? ((escapedPrefix = ""), + null != invokeCallback && + (escapedPrefix = + invokeCallback.replace(userProvidedKeyEscapeRegex, "$&/") + "/"), + mapIntoArray(callback, array, escapedPrefix, "", function (c) { + return c; + })) + : null != callback && + (isValidElement(callback) && + (callback = cloneAndReplaceKey( + callback, + escapedPrefix + + (null == callback.key || + (children && children.key === callback.key) + ? "" + : ("" + callback.key).replace( + userProvidedKeyEscapeRegex, + "$&/" + ) + "/") + + invokeCallback + )), + array.push(callback)), + 1 + ); + invokeCallback = 0; + var nextNamePrefix = "" === nameSoFar ? "." : nameSoFar + ":"; + if (isArrayImpl(children)) + for (var i = 0; i < children.length; i++) + (nameSoFar = children[i]), + (type = nextNamePrefix + getElementKey(nameSoFar, i)), + (invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + )); + else if (((i = getIteratorFn(children)), "function" === typeof i)) + for ( + children = i.call(children), i = 0; + !(nameSoFar = children.next()).done; + + ) + (nameSoFar = nameSoFar.value), + (type = nextNamePrefix + getElementKey(nameSoFar, i++)), + (invokeCallback += mapIntoArray( + nameSoFar, + array, + escapedPrefix, + type, + callback + )); + else if ("object" === type) { + if ("function" === typeof children.then) + return mapIntoArray( + resolveThenable(children), + array, + escapedPrefix, + nameSoFar, + callback + ); + array = String(children); + throw Error( + "Objects are not valid as a React child (found: " + + ("[object Object]" === array + ? "object with keys {" + Object.keys(children).join(", ") + "}" + : array) + + "). If you meant to render a collection of children, use an array instead." + ); + } + return invokeCallback; +} +function mapChildren(children, func, context) { + if (null == children) return children; + var result = [], + count = 0; + mapIntoArray(children, result, "", "", function (child) { + return func.call(context, child, count++); + }); + return result; +} +function lazyInitializer(payload) { + if (-1 === payload._status) { + var ctor = payload._result; + ctor = ctor(); + ctor.then( + function (moduleObject) { + if (0 === payload._status || -1 === payload._status) + (payload._status = 1), (payload._result = moduleObject); + }, + function (error) { + if (0 === payload._status || -1 === payload._status) + (payload._status = 2), (payload._result = error); + } + ); + -1 === payload._status && ((payload._status = 0), (payload._result = ctor)); + } + if (1 === payload._status) return payload._result.default; + throw payload._result; +} +var reportGlobalError = + "function" === typeof reportError + ? reportError + : function (error) { + if ( + "object" === typeof window && + "function" === typeof window.ErrorEvent + ) { + var event = new window.ErrorEvent("error", { + bubbles: !0, + cancelable: !0, + message: + "object" === typeof error && + null !== error && + "string" === typeof error.message + ? String(error.message) + : String(error), + error: error + }); + if (!window.dispatchEvent(event)) return; + } else if ( + "object" === typeof process && + "function" === typeof process.emit + ) { + process.emit("uncaughtException", error); + return; + } + console.error(error); + }, + Children = { + map: mapChildren, + forEach: function (children, forEachFunc, forEachContext) { + mapChildren( + children, + function () { + forEachFunc.apply(this, arguments); + }, + forEachContext + ); + }, + count: function (children) { + var n = 0; + mapChildren(children, function () { + n++; + }); + return n; + }, + toArray: function (children) { + return ( + mapChildren(children, function (child) { + return child; + }) || [] + ); + }, + only: function (children) { + if (!isValidElement(children)) + throw Error( + "React.Children.only expected to receive a single React element child." + ); + return children; + } + }; +exports.Activity = REACT_ACTIVITY_TYPE; +exports.Children = Children; +exports.Component = Component; +exports.Fragment = REACT_FRAGMENT_TYPE; +exports.Profiler = REACT_PROFILER_TYPE; +exports.PureComponent = PureComponent; +exports.StrictMode = REACT_STRICT_MODE_TYPE; +exports.Suspense = REACT_SUSPENSE_TYPE; +exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = + ReactSharedInternals; +exports.__COMPILER_RUNTIME = { + __proto__: null, + c: function (size) { + return ReactSharedInternals.H.useMemoCache(size); + } +}; +exports.cache = function (fn) { + return function () { + return fn.apply(null, arguments); + }; +}; +exports.cacheSignal = function () { + return null; +}; +exports.cloneElement = function (element, config, children) { + if (null === element || void 0 === element) + throw Error( + "The argument must be a React element, but you passed " + element + "." + ); + var props = assign({}, element.props), + key = element.key; + if (null != config) + for (propName in (void 0 !== config.key && (key = "" + config.key), config)) + !hasOwnProperty.call(config, propName) || + "key" === propName || + "__self" === propName || + "__source" === propName || + ("ref" === propName && void 0 === config.ref) || + (props[propName] = config[propName]); + var propName = arguments.length - 2; + if (1 === propName) props.children = children; + else if (1 < propName) { + for (var childArray = Array(propName), i = 0; i < propName; i++) + childArray[i] = arguments[i + 2]; + props.children = childArray; + } + return ReactElement(element.type, key, props); +}; +exports.createContext = function (defaultValue) { + defaultValue = { + $$typeof: REACT_CONTEXT_TYPE, + _currentValue: defaultValue, + _currentValue2: defaultValue, + _threadCount: 0, + Provider: null, + Consumer: null + }; + defaultValue.Provider = defaultValue; + defaultValue.Consumer = { + $$typeof: REACT_CONSUMER_TYPE, + _context: defaultValue + }; + return defaultValue; +}; +exports.createElement = function (type, config, children) { + var propName, + props = {}, + key = null; + if (null != config) + for (propName in (void 0 !== config.key && (key = "" + config.key), config)) + hasOwnProperty.call(config, propName) && + "key" !== propName && + "__self" !== propName && + "__source" !== propName && + (props[propName] = config[propName]); + var childrenLength = arguments.length - 2; + if (1 === childrenLength) props.children = children; + else if (1 < childrenLength) { + for (var childArray = Array(childrenLength), i = 0; i < childrenLength; i++) + childArray[i] = arguments[i + 2]; + props.children = childArray; + } + if (type && type.defaultProps) + for (propName in ((childrenLength = type.defaultProps), childrenLength)) + void 0 === props[propName] && + (props[propName] = childrenLength[propName]); + return ReactElement(type, key, props); +}; +exports.createRef = function () { + return { current: null }; +}; +exports.forwardRef = function (render) { + return { $$typeof: REACT_FORWARD_REF_TYPE, render: render }; +}; +exports.isValidElement = isValidElement; +exports.lazy = function (ctor) { + return { + $$typeof: REACT_LAZY_TYPE, + _payload: { _status: -1, _result: ctor }, + _init: lazyInitializer + }; +}; +exports.memo = function (type, compare) { + return { + $$typeof: REACT_MEMO_TYPE, + type: type, + compare: void 0 === compare ? null : compare + }; +}; +exports.startTransition = function (scope) { + var prevTransition = ReactSharedInternals.T, + currentTransition = {}; + ReactSharedInternals.T = currentTransition; + try { + var returnValue = scope(), + onStartTransitionFinish = ReactSharedInternals.S; + null !== onStartTransitionFinish && + onStartTransitionFinish(currentTransition, returnValue); + "object" === typeof returnValue && + null !== returnValue && + "function" === typeof returnValue.then && + returnValue.then(noop, reportGlobalError); + } catch (error) { + reportGlobalError(error); + } finally { + null !== prevTransition && + null !== currentTransition.types && + (prevTransition.types = currentTransition.types), + (ReactSharedInternals.T = prevTransition); + } +}; +exports.unstable_useCacheRefresh = function () { + return ReactSharedInternals.H.useCacheRefresh(); +}; +exports.use = function (usable) { + return ReactSharedInternals.H.use(usable); +}; +exports.useActionState = function (action, initialState, permalink) { + return ReactSharedInternals.H.useActionState(action, initialState, permalink); +}; +exports.useCallback = function (callback, deps) { + return ReactSharedInternals.H.useCallback(callback, deps); +}; +exports.useContext = function (Context) { + return ReactSharedInternals.H.useContext(Context); +}; +exports.useDebugValue = function () {}; +exports.useDeferredValue = function (value, initialValue) { + return ReactSharedInternals.H.useDeferredValue(value, initialValue); +}; +exports.useEffect = function (create, deps) { + return ReactSharedInternals.H.useEffect(create, deps); +}; +exports.useEffectEvent = function (callback) { + return ReactSharedInternals.H.useEffectEvent(callback); +}; +exports.useId = function () { + return ReactSharedInternals.H.useId(); +}; +exports.useImperativeHandle = function (ref, create, deps) { + return ReactSharedInternals.H.useImperativeHandle(ref, create, deps); +}; +exports.useInsertionEffect = function (create, deps) { + return ReactSharedInternals.H.useInsertionEffect(create, deps); +}; +exports.useLayoutEffect = function (create, deps) { + return ReactSharedInternals.H.useLayoutEffect(create, deps); +}; +exports.useMemo = function (create, deps) { + return ReactSharedInternals.H.useMemo(create, deps); +}; +exports.useOptimistic = function (passthrough, reducer) { + return ReactSharedInternals.H.useOptimistic(passthrough, reducer); +}; +exports.useReducer = function (reducer, initialArg, init) { + return ReactSharedInternals.H.useReducer(reducer, initialArg, init); +}; +exports.useRef = function (initialValue) { + return ReactSharedInternals.H.useRef(initialValue); +}; +exports.useState = function (initialState) { + return ReactSharedInternals.H.useState(initialState); +}; +exports.useSyncExternalStore = function ( + subscribe, + getSnapshot, + getServerSnapshot +) { + return ReactSharedInternals.H.useSyncExternalStore( + subscribe, + getSnapshot, + getServerSnapshot + ); +}; +exports.useTransition = function () { + return ReactSharedInternals.H.useTransition(); +}; +exports.version = "19.2.4"; diff --git a/cli/app/node_modules/react/compiler-runtime.js b/cli/app/node_modules/react/compiler-runtime.js new file mode 100644 index 00000000000..ab6aabb0a98 --- /dev/null +++ b/cli/app/node_modules/react/compiler-runtime.js @@ -0,0 +1,14 @@ +/** + * Copyright (c) Meta Platforms, Inc. and affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-compiler-runtime.production.js'); +} else { + module.exports = require('./cjs/react-compiler-runtime.development.js'); +} diff --git a/cli/app/node_modules/react/index.js b/cli/app/node_modules/react/index.js new file mode 100644 index 00000000000..d830d7a2f9f --- /dev/null +++ b/cli/app/node_modules/react/index.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react.production.js'); +} else { + module.exports = require('./cjs/react.development.js'); +} diff --git a/cli/app/node_modules/react/jsx-dev-runtime.js b/cli/app/node_modules/react/jsx-dev-runtime.js new file mode 100644 index 00000000000..0a80857d2d6 --- /dev/null +++ b/cli/app/node_modules/react/jsx-dev-runtime.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-jsx-dev-runtime.production.js'); +} else { + module.exports = require('./cjs/react-jsx-dev-runtime.development.js'); +} diff --git a/cli/app/node_modules/react/jsx-runtime.js b/cli/app/node_modules/react/jsx-runtime.js new file mode 100644 index 00000000000..8679b72159b --- /dev/null +++ b/cli/app/node_modules/react/jsx-runtime.js @@ -0,0 +1,7 @@ +'use strict'; + +if (process.env.NODE_ENV === 'production') { + module.exports = require('./cjs/react-jsx-runtime.production.js'); +} else { + module.exports = require('./cjs/react-jsx-runtime.development.js'); +} diff --git a/cli/app/node_modules/react/package.json b/cli/app/node_modules/react/package.json new file mode 100644 index 00000000000..da45a9d50cc --- /dev/null +++ b/cli/app/node_modules/react/package.json @@ -0,0 +1,51 @@ +{ + "name": "react", + "description": "React is a JavaScript library for building user interfaces.", + "keywords": [ + "react" + ], + "version": "19.2.4", + "homepage": "https://react.dev/", + "bugs": "https://github.com/facebook/react/issues", + "license": "MIT", + "files": [ + "LICENSE", + "README.md", + "index.js", + "cjs/", + "compiler-runtime.js", + "jsx-runtime.js", + "jsx-runtime.react-server.js", + "jsx-dev-runtime.js", + "jsx-dev-runtime.react-server.js", + "react.react-server.js" + ], + "main": "index.js", + "exports": { + ".": { + "react-server": "./react.react-server.js", + "default": "./index.js" + }, + "./package.json": "./package.json", + "./jsx-runtime": { + "react-server": "./jsx-runtime.react-server.js", + "default": "./jsx-runtime.js" + }, + "./jsx-dev-runtime": { + "react-server": "./jsx-dev-runtime.react-server.js", + "default": "./jsx-dev-runtime.js" + }, + "./compiler-runtime": { + "react-server": "./compiler-runtime.js", + "default": "./compiler-runtime.js" + } + }, + "repository": { + "type": "git", + "url": "https://github.com/facebook/react.git", + "directory": "packages/react" + }, + "engines": { + "node": ">=0.10.0" + } +} \ No newline at end of file diff --git a/cli/app/node_modules/source-map-js/lib/array-set.js b/cli/app/node_modules/source-map-js/lib/array-set.js new file mode 100644 index 00000000000..fbd5c81cae6 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/array-set.js @@ -0,0 +1,121 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var has = Object.prototype.hasOwnProperty; +var hasNativeMap = typeof Map !== "undefined"; + +/** + * A data structure which is a combination of an array and a set. Adding a new + * member is O(1), testing for membership is O(1), and finding the index of an + * element is O(1). Removing elements from the set is not supported. Only + * strings are supported for membership. + */ +function ArraySet() { + this._array = []; + this._set = hasNativeMap ? new Map() : Object.create(null); +} + +/** + * Static method for creating ArraySet instances from an existing array. + */ +ArraySet.fromArray = function ArraySet_fromArray(aArray, aAllowDuplicates) { + var set = new ArraySet(); + for (var i = 0, len = aArray.length; i < len; i++) { + set.add(aArray[i], aAllowDuplicates); + } + return set; +}; + +/** + * Return how many unique items are in this ArraySet. If duplicates have been + * added, than those do not count towards the size. + * + * @returns Number + */ +ArraySet.prototype.size = function ArraySet_size() { + return hasNativeMap ? this._set.size : Object.getOwnPropertyNames(this._set).length; +}; + +/** + * Add the given string to this set. + * + * @param String aStr + */ +ArraySet.prototype.add = function ArraySet_add(aStr, aAllowDuplicates) { + var sStr = hasNativeMap ? aStr : util.toSetString(aStr); + var isDuplicate = hasNativeMap ? this.has(aStr) : has.call(this._set, sStr); + var idx = this._array.length; + if (!isDuplicate || aAllowDuplicates) { + this._array.push(aStr); + } + if (!isDuplicate) { + if (hasNativeMap) { + this._set.set(aStr, idx); + } else { + this._set[sStr] = idx; + } + } +}; + +/** + * Is the given string a member of this set? + * + * @param String aStr + */ +ArraySet.prototype.has = function ArraySet_has(aStr) { + if (hasNativeMap) { + return this._set.has(aStr); + } else { + var sStr = util.toSetString(aStr); + return has.call(this._set, sStr); + } +}; + +/** + * What is the index of the given string in the array? + * + * @param String aStr + */ +ArraySet.prototype.indexOf = function ArraySet_indexOf(aStr) { + if (hasNativeMap) { + var idx = this._set.get(aStr); + if (idx >= 0) { + return idx; + } + } else { + var sStr = util.toSetString(aStr); + if (has.call(this._set, sStr)) { + return this._set[sStr]; + } + } + + throw new Error('"' + aStr + '" is not in the set.'); +}; + +/** + * What is the element at the given index? + * + * @param Number aIdx + */ +ArraySet.prototype.at = function ArraySet_at(aIdx) { + if (aIdx >= 0 && aIdx < this._array.length) { + return this._array[aIdx]; + } + throw new Error('No element indexed by ' + aIdx); +}; + +/** + * Returns the array representation of this set (which has the proper indices + * indicated by indexOf). Note that this is a copy of the internal array used + * for storing the members so that no one can mess with internal state. + */ +ArraySet.prototype.toArray = function ArraySet_toArray() { + return this._array.slice(); +}; + +exports.ArraySet = ArraySet; diff --git a/cli/app/node_modules/source-map-js/lib/base64-vlq.js b/cli/app/node_modules/source-map-js/lib/base64-vlq.js new file mode 100644 index 00000000000..612b404018e --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/base64-vlq.js @@ -0,0 +1,140 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + * + * Based on the Base 64 VLQ implementation in Closure Compiler: + * https://code.google.com/p/closure-compiler/source/browse/trunk/src/com/google/debugging/sourcemap/Base64VLQ.java + * + * Copyright 2011 The Closure Compiler Authors. All rights reserved. + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are + * met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above + * copyright notice, this list of conditions and the following + * disclaimer in the documentation and/or other materials provided + * with the distribution. + * * Neither the name of Google Inc. nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +var base64 = require('./base64'); + +// A single base 64 digit can contain 6 bits of data. For the base 64 variable +// length quantities we use in the source map spec, the first bit is the sign, +// the next four bits are the actual value, and the 6th bit is the +// continuation bit. The continuation bit tells us whether there are more +// digits in this value following this digit. +// +// Continuation +// | Sign +// | | +// V V +// 101011 + +var VLQ_BASE_SHIFT = 5; + +// binary: 100000 +var VLQ_BASE = 1 << VLQ_BASE_SHIFT; + +// binary: 011111 +var VLQ_BASE_MASK = VLQ_BASE - 1; + +// binary: 100000 +var VLQ_CONTINUATION_BIT = VLQ_BASE; + +/** + * Converts from a two-complement value to a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 1 becomes 2 (10 binary), -1 becomes 3 (11 binary) + * 2 becomes 4 (100 binary), -2 becomes 5 (101 binary) + */ +function toVLQSigned(aValue) { + return aValue < 0 + ? ((-aValue) << 1) + 1 + : (aValue << 1) + 0; +} + +/** + * Converts to a two-complement value from a value where the sign bit is + * placed in the least significant bit. For example, as decimals: + * 2 (10 binary) becomes 1, 3 (11 binary) becomes -1 + * 4 (100 binary) becomes 2, 5 (101 binary) becomes -2 + */ +function fromVLQSigned(aValue) { + var isNegative = (aValue & 1) === 1; + var shifted = aValue >> 1; + return isNegative + ? -shifted + : shifted; +} + +/** + * Returns the base 64 VLQ encoded value. + */ +exports.encode = function base64VLQ_encode(aValue) { + var encoded = ""; + var digit; + + var vlq = toVLQSigned(aValue); + + do { + digit = vlq & VLQ_BASE_MASK; + vlq >>>= VLQ_BASE_SHIFT; + if (vlq > 0) { + // There are still more digits in this value, so we must make sure the + // continuation bit is marked. + digit |= VLQ_CONTINUATION_BIT; + } + encoded += base64.encode(digit); + } while (vlq > 0); + + return encoded; +}; + +/** + * Decodes the next base 64 VLQ value from the given string and returns the + * value and the rest of the string via the out parameter. + */ +exports.decode = function base64VLQ_decode(aStr, aIndex, aOutParam) { + var strLen = aStr.length; + var result = 0; + var shift = 0; + var continuation, digit; + + do { + if (aIndex >= strLen) { + throw new Error("Expected more digits in base 64 VLQ value."); + } + + digit = base64.decode(aStr.charCodeAt(aIndex++)); + if (digit === -1) { + throw new Error("Invalid base64 digit: " + aStr.charAt(aIndex - 1)); + } + + continuation = !!(digit & VLQ_CONTINUATION_BIT); + digit &= VLQ_BASE_MASK; + result = result + (digit << shift); + shift += VLQ_BASE_SHIFT; + } while (continuation); + + aOutParam.value = fromVLQSigned(result); + aOutParam.rest = aIndex; +}; diff --git a/cli/app/node_modules/source-map-js/lib/base64.js b/cli/app/node_modules/source-map-js/lib/base64.js new file mode 100644 index 00000000000..8aa86b30264 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/base64.js @@ -0,0 +1,67 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var intToCharMap = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'.split(''); + +/** + * Encode an integer in the range of 0 to 63 to a single base 64 digit. + */ +exports.encode = function (number) { + if (0 <= number && number < intToCharMap.length) { + return intToCharMap[number]; + } + throw new TypeError("Must be between 0 and 63: " + number); +}; + +/** + * Decode a single base 64 character code digit to an integer. Returns -1 on + * failure. + */ +exports.decode = function (charCode) { + var bigA = 65; // 'A' + var bigZ = 90; // 'Z' + + var littleA = 97; // 'a' + var littleZ = 122; // 'z' + + var zero = 48; // '0' + var nine = 57; // '9' + + var plus = 43; // '+' + var slash = 47; // '/' + + var littleOffset = 26; + var numberOffset = 52; + + // 0 - 25: ABCDEFGHIJKLMNOPQRSTUVWXYZ + if (bigA <= charCode && charCode <= bigZ) { + return (charCode - bigA); + } + + // 26 - 51: abcdefghijklmnopqrstuvwxyz + if (littleA <= charCode && charCode <= littleZ) { + return (charCode - littleA + littleOffset); + } + + // 52 - 61: 0123456789 + if (zero <= charCode && charCode <= nine) { + return (charCode - zero + numberOffset); + } + + // 62: + + if (charCode == plus) { + return 62; + } + + // 63: / + if (charCode == slash) { + return 63; + } + + // Invalid base64 digit. + return -1; +}; diff --git a/cli/app/node_modules/source-map-js/lib/binary-search.js b/cli/app/node_modules/source-map-js/lib/binary-search.js new file mode 100644 index 00000000000..010ac941e15 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/binary-search.js @@ -0,0 +1,111 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +exports.GREATEST_LOWER_BOUND = 1; +exports.LEAST_UPPER_BOUND = 2; + +/** + * Recursive implementation of binary search. + * + * @param aLow Indices here and lower do not contain the needle. + * @param aHigh Indices here and higher do not contain the needle. + * @param aNeedle The element being searched for. + * @param aHaystack The non-empty array being searched. + * @param aCompare Function which takes two elements and returns -1, 0, or 1. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + */ +function recursiveSearch(aLow, aHigh, aNeedle, aHaystack, aCompare, aBias) { + // This function terminates when one of the following is true: + // + // 1. We find the exact element we are looking for. + // + // 2. We did not find the exact element, but we can return the index of + // the next-closest element. + // + // 3. We did not find the exact element, and there is no next-closest + // element than the one we are searching for, so we return -1. + var mid = Math.floor((aHigh - aLow) / 2) + aLow; + var cmp = aCompare(aNeedle, aHaystack[mid], true); + if (cmp === 0) { + // Found the element we are looking for. + return mid; + } + else if (cmp > 0) { + // Our needle is greater than aHaystack[mid]. + if (aHigh - mid > 1) { + // The element is in the upper half. + return recursiveSearch(mid, aHigh, aNeedle, aHaystack, aCompare, aBias); + } + + // The exact needle element was not found in this haystack. Determine if + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return aHigh < aHaystack.length ? aHigh : -1; + } else { + return mid; + } + } + else { + // Our needle is less than aHaystack[mid]. + if (mid - aLow > 1) { + // The element is in the lower half. + return recursiveSearch(aLow, mid, aNeedle, aHaystack, aCompare, aBias); + } + + // we are in termination case (3) or (2) and return the appropriate thing. + if (aBias == exports.LEAST_UPPER_BOUND) { + return mid; + } else { + return aLow < 0 ? -1 : aLow; + } + } +} + +/** + * This is an implementation of binary search which will always try and return + * the index of the closest element if there is no exact hit. This is because + * mappings between original and generated line/col pairs are single points, + * and there is an implicit region between each of them, so a miss just means + * that you aren't on the very start of a region. + * + * @param aNeedle The element you are looking for. + * @param aHaystack The array that is being searched. + * @param aCompare A function which takes the needle and an element in the + * array and returns -1, 0, or 1 depending on whether the needle is less + * than, equal to, or greater than the element, respectively. + * @param aBias Either 'binarySearch.GREATEST_LOWER_BOUND' or + * 'binarySearch.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'binarySearch.GREATEST_LOWER_BOUND'. + */ +exports.search = function search(aNeedle, aHaystack, aCompare, aBias) { + if (aHaystack.length === 0) { + return -1; + } + + var index = recursiveSearch(-1, aHaystack.length, aNeedle, aHaystack, + aCompare, aBias || exports.GREATEST_LOWER_BOUND); + if (index < 0) { + return -1; + } + + // We have found either the exact element, or the next-closest element than + // the one we are searching for. However, there may be more than one such + // element. Make sure we always return the smallest of these. + while (index - 1 >= 0) { + if (aCompare(aHaystack[index], aHaystack[index - 1], true) !== 0) { + break; + } + --index; + } + + return index; +}; diff --git a/cli/app/node_modules/source-map-js/lib/mapping-list.js b/cli/app/node_modules/source-map-js/lib/mapping-list.js new file mode 100644 index 00000000000..06d1274a025 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/mapping-list.js @@ -0,0 +1,79 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2014 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); + +/** + * Determine whether mappingB is after mappingA with respect to generated + * position. + */ +function generatedPositionAfter(mappingA, mappingB) { + // Optimized for most common case + var lineA = mappingA.generatedLine; + var lineB = mappingB.generatedLine; + var columnA = mappingA.generatedColumn; + var columnB = mappingB.generatedColumn; + return lineB > lineA || lineB == lineA && columnB >= columnA || + util.compareByGeneratedPositionsInflated(mappingA, mappingB) <= 0; +} + +/** + * A data structure to provide a sorted view of accumulated mappings in a + * performance conscious manner. It trades a neglibable overhead in general + * case for a large speedup in case of mappings being added in order. + */ +function MappingList() { + this._array = []; + this._sorted = true; + // Serves as infimum + this._last = {generatedLine: -1, generatedColumn: 0}; +} + +/** + * Iterate through internal items. This method takes the same arguments that + * `Array.prototype.forEach` takes. + * + * NOTE: The order of the mappings is NOT guaranteed. + */ +MappingList.prototype.unsortedForEach = + function MappingList_forEach(aCallback, aThisArg) { + this._array.forEach(aCallback, aThisArg); + }; + +/** + * Add the given source mapping. + * + * @param Object aMapping + */ +MappingList.prototype.add = function MappingList_add(aMapping) { + if (generatedPositionAfter(this._last, aMapping)) { + this._last = aMapping; + this._array.push(aMapping); + } else { + this._sorted = false; + this._array.push(aMapping); + } +}; + +/** + * Returns the flat, sorted array of mappings. The mappings are sorted by + * generated position. + * + * WARNING: This method returns internal data without copying, for + * performance. The return value must NOT be mutated, and should be treated as + * an immutable borrow. If you want to take ownership, you must make your own + * copy. + */ +MappingList.prototype.toArray = function MappingList_toArray() { + if (!this._sorted) { + this._array.sort(util.compareByGeneratedPositionsInflated); + this._sorted = true; + } + return this._array; +}; + +exports.MappingList = MappingList; diff --git a/cli/app/node_modules/source-map-js/lib/quick-sort.js b/cli/app/node_modules/source-map-js/lib/quick-sort.js new file mode 100644 index 00000000000..23f9eda57f7 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/quick-sort.js @@ -0,0 +1,132 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +// It turns out that some (most?) JavaScript engines don't self-host +// `Array.prototype.sort`. This makes sense because C++ will likely remain +// faster than JS when doing raw CPU-intensive sorting. However, when using a +// custom comparator function, calling back and forth between the VM's C++ and +// JIT'd JS is rather slow *and* loses JIT type information, resulting in +// worse generated code for the comparator function than would be optimal. In +// fact, when sorting with a comparator, these costs outweigh the benefits of +// sorting in C++. By using our own JS-implemented Quick Sort (below), we get +// a ~3500ms mean speed-up in `bench/bench.html`. + +function SortTemplate(comparator) { + +/** + * Swap the elements indexed by `x` and `y` in the array `ary`. + * + * @param {Array} ary + * The array. + * @param {Number} x + * The index of the first item. + * @param {Number} y + * The index of the second item. + */ +function swap(ary, x, y) { + var temp = ary[x]; + ary[x] = ary[y]; + ary[y] = temp; +} + +/** + * Returns a random integer within the range `low .. high` inclusive. + * + * @param {Number} low + * The lower bound on the range. + * @param {Number} high + * The upper bound on the range. + */ +function randomIntInRange(low, high) { + return Math.round(low + (Math.random() * (high - low))); +} + +/** + * The Quick Sort algorithm. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + * @param {Number} p + * Start index of the array + * @param {Number} r + * End index of the array + */ +function doQuickSort(ary, comparator, p, r) { + // If our lower bound is less than our upper bound, we (1) partition the + // array into two pieces and (2) recurse on each half. If it is not, this is + // the empty array and our base case. + + if (p < r) { + // (1) Partitioning. + // + // The partitioning chooses a pivot between `p` and `r` and moves all + // elements that are less than or equal to the pivot to the before it, and + // all the elements that are greater than it after it. The effect is that + // once partition is done, the pivot is in the exact place it will be when + // the array is put in sorted order, and it will not need to be moved + // again. This runs in O(n) time. + + // Always choose a random pivot so that an input array which is reverse + // sorted does not cause O(n^2) running time. + var pivotIndex = randomIntInRange(p, r); + var i = p - 1; + + swap(ary, pivotIndex, r); + var pivot = ary[r]; + + // Immediately after `j` is incremented in this loop, the following hold + // true: + // + // * Every element in `ary[p .. i]` is less than or equal to the pivot. + // + // * Every element in `ary[i+1 .. j-1]` is greater than the pivot. + for (var j = p; j < r; j++) { + if (comparator(ary[j], pivot, false) <= 0) { + i += 1; + swap(ary, i, j); + } + } + + swap(ary, i + 1, j); + var q = i + 1; + + // (2) Recurse on each half. + + doQuickSort(ary, comparator, p, q - 1); + doQuickSort(ary, comparator, q + 1, r); + } +} + + return doQuickSort; +} + +function cloneSort(comparator) { + let template = SortTemplate.toString(); + let templateFn = new Function(`return ${template}`)(); + return templateFn(comparator); +} + +/** + * Sort the given array in-place with the given comparator function. + * + * @param {Array} ary + * An array to sort. + * @param {function} comparator + * Function to use to compare two items. + */ + +let sortCache = new WeakMap(); +exports.quickSort = function (ary, comparator, start = 0) { + let doQuickSort = sortCache.get(comparator); + if (doQuickSort === void 0) { + doQuickSort = cloneSort(comparator); + sortCache.set(comparator, doQuickSort); + } + doQuickSort(ary, comparator, start, ary.length - 1); +}; diff --git a/cli/app/node_modules/source-map-js/lib/source-map-consumer.js b/cli/app/node_modules/source-map-js/lib/source-map-consumer.js new file mode 100644 index 00000000000..ee66114636c --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/source-map-consumer.js @@ -0,0 +1,1188 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var util = require('./util'); +var binarySearch = require('./binary-search'); +var ArraySet = require('./array-set').ArraySet; +var base64VLQ = require('./base64-vlq'); +var quickSort = require('./quick-sort').quickSort; + +function SourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + return sourceMap.sections != null + ? new IndexedSourceMapConsumer(sourceMap, aSourceMapURL) + : new BasicSourceMapConsumer(sourceMap, aSourceMapURL); +} + +SourceMapConsumer.fromSourceMap = function(aSourceMap, aSourceMapURL) { + return BasicSourceMapConsumer.fromSourceMap(aSourceMap, aSourceMapURL); +} + +/** + * The version of the source mapping spec that we are consuming. + */ +SourceMapConsumer.prototype._version = 3; + +// `__generatedMappings` and `__originalMappings` are arrays that hold the +// parsed mapping coordinates from the source map's "mappings" attribute. They +// are lazily instantiated, accessed via the `_generatedMappings` and +// `_originalMappings` getters respectively, and we only parse the mappings +// and create these arrays once queried for a source location. We jump through +// these hoops because there can be many thousands of mappings, and parsing +// them is expensive, so we only want to do it if we must. +// +// Each object in the arrays is of the form: +// +// { +// generatedLine: The line number in the generated code, +// generatedColumn: The column number in the generated code, +// source: The path to the original source file that generated this +// chunk of code, +// originalLine: The line number in the original source that +// corresponds to this chunk of generated code, +// originalColumn: The column number in the original source that +// corresponds to this chunk of generated code, +// name: The name of the original symbol which generated this chunk of +// code. +// } +// +// All properties except for `generatedLine` and `generatedColumn` can be +// `null`. +// +// `_generatedMappings` is ordered by the generated positions. +// +// `_originalMappings` is ordered by the original positions. + +SourceMapConsumer.prototype.__generatedMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_generatedMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__generatedMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__generatedMappings; + } +}); + +SourceMapConsumer.prototype.__originalMappings = null; +Object.defineProperty(SourceMapConsumer.prototype, '_originalMappings', { + configurable: true, + enumerable: true, + get: function () { + if (!this.__originalMappings) { + this._parseMappings(this._mappings, this.sourceRoot); + } + + return this.__originalMappings; + } +}); + +SourceMapConsumer.prototype._charIsMappingSeparator = + function SourceMapConsumer_charIsMappingSeparator(aStr, index) { + var c = aStr.charAt(index); + return c === ";" || c === ","; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +SourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + throw new Error("Subclasses must implement _parseMappings"); + }; + +SourceMapConsumer.GENERATED_ORDER = 1; +SourceMapConsumer.ORIGINAL_ORDER = 2; + +SourceMapConsumer.GREATEST_LOWER_BOUND = 1; +SourceMapConsumer.LEAST_UPPER_BOUND = 2; + +/** + * Iterate over each mapping between an original source/line/column and a + * generated line/column in this source map. + * + * @param Function aCallback + * The function that is called with each mapping. + * @param Object aContext + * Optional. If specified, this object will be the value of `this` every + * time that `aCallback` is called. + * @param aOrder + * Either `SourceMapConsumer.GENERATED_ORDER` or + * `SourceMapConsumer.ORIGINAL_ORDER`. Specifies whether you want to + * iterate over the mappings sorted by the generated file's line/column + * order or the original's source/line/column order, respectively. Defaults to + * `SourceMapConsumer.GENERATED_ORDER`. + */ +SourceMapConsumer.prototype.eachMapping = + function SourceMapConsumer_eachMapping(aCallback, aContext, aOrder) { + var context = aContext || null; + var order = aOrder || SourceMapConsumer.GENERATED_ORDER; + + var mappings; + switch (order) { + case SourceMapConsumer.GENERATED_ORDER: + mappings = this._generatedMappings; + break; + case SourceMapConsumer.ORIGINAL_ORDER: + mappings = this._originalMappings; + break; + default: + throw new Error("Unknown order of iteration."); + } + + var sourceRoot = this.sourceRoot; + var boundCallback = aCallback.bind(context); + var names = this._names; + var sources = this._sources; + var sourceMapURL = this._sourceMapURL; + + for (var i = 0, n = mappings.length; i < n; i++) { + var mapping = mappings[i]; + var source = mapping.source === null ? null : sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(sourceRoot, source, sourceMapURL); + } + boundCallback({ + source: source, + generatedLine: mapping.generatedLine, + generatedColumn: mapping.generatedColumn, + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: mapping.name === null ? null : names.at(mapping.name) + }); + } + }; + +/** + * Returns all generated line and column information for the original source, + * line, and column provided. If no column is provided, returns all mappings + * corresponding to a either the line we are searching for or the next + * closest line that has any mappings. Otherwise, returns all mappings + * corresponding to the given line and either the column we are searching for + * or the next closest column that has any offsets. + * + * The only argument is an object with the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number is 1-based. + * - column: Optional. the column number in the original source. + * The column number is 0-based. + * + * and an array of objects is returned, each with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +SourceMapConsumer.prototype.allGeneratedPositionsFor = + function SourceMapConsumer_allGeneratedPositionsFor(aArgs) { + var line = util.getArg(aArgs, 'line'); + + // When there is no exact match, BasicSourceMapConsumer.prototype._findMapping + // returns the index of the closest mapping less than the needle. By + // setting needle.originalColumn to 0, we thus find the last mapping for + // the given line, provided such a mapping exists. + var needle = { + source: util.getArg(aArgs, 'source'), + originalLine: line, + originalColumn: util.getArg(aArgs, 'column', 0) + }; + + needle.source = this._findSourceIndex(needle.source); + if (needle.source < 0) { + return []; + } + + var mappings = []; + + var index = this._findMapping(needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + binarySearch.LEAST_UPPER_BOUND); + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (aArgs.column === undefined) { + var originalLine = mapping.originalLine; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we found. Since + // mappings are sorted, this is guaranteed to find all mappings for + // the line we found. + while (mapping && mapping.originalLine === originalLine) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } else { + var originalColumn = mapping.originalColumn; + + // Iterate until either we run out of mappings, or we run into + // a mapping for a different line than the one we were searching for. + // Since mappings are sorted, this is guaranteed to find all mappings for + // the line we are searching for. + while (mapping && + mapping.originalLine === line && + mapping.originalColumn == originalColumn) { + mappings.push({ + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }); + + mapping = this._originalMappings[++index]; + } + } + } + + return mappings; + }; + +exports.SourceMapConsumer = SourceMapConsumer; + +/** + * A BasicSourceMapConsumer instance represents a parsed source map which we can + * query for information about the original file positions by giving it a file + * position in the generated source. + * + * The first parameter is the raw source map (either as a JSON string, or + * already parsed to an object). According to the spec, source maps have the + * following attributes: + * + * - version: Which version of the source map spec this map is following. + * - sources: An array of URLs to the original source files. + * - names: An array of identifiers which can be referrenced by individual mappings. + * - sourceRoot: Optional. The URL root from which all sources are relative. + * - sourcesContent: Optional. An array of contents of the original source files. + * - mappings: A string of base64 VLQs which contain the actual mappings. + * - file: Optional. The generated file this source map is associated with. + * + * Here is an example source map, taken from the source map spec[0]: + * + * { + * version : 3, + * file: "out.js", + * sourceRoot : "", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AA,AB;;ABCDE;" + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit?pli=1# + */ +function BasicSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sources = util.getArg(sourceMap, 'sources'); + // Sass 3.3 leaves out the 'names' array, so we deviate from the spec (which + // requires the array) to play nice here. + var names = util.getArg(sourceMap, 'names', []); + var sourceRoot = util.getArg(sourceMap, 'sourceRoot', null); + var sourcesContent = util.getArg(sourceMap, 'sourcesContent', null); + var mappings = util.getArg(sourceMap, 'mappings'); + var file = util.getArg(sourceMap, 'file', null); + + // Once again, Sass deviates from the spec and supplies the version as a + // string rather than a number, so we use loose equality checking here. + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + if (sourceRoot) { + sourceRoot = util.normalize(sourceRoot); + } + + sources = sources + .map(String) + // Some source maps produce relative source paths like "./foo.js" instead of + // "foo.js". Normalize these first so that future comparisons will succeed. + // See bugzil.la/1090768. + .map(util.normalize) + // Always ensure that absolute sources are internally stored relative to + // the source root, if the source root is absolute. Not doing this would + // be particularly problematic when the source root is a prefix of the + // source (valid, but why??). See github issue #199 and bugzil.la/1188982. + .map(function (source) { + return sourceRoot && util.isAbsolute(sourceRoot) && util.isAbsolute(source) + ? util.relative(sourceRoot, source) + : source; + }); + + // Pass `true` below to allow duplicate names and sources. While source maps + // are intended to be compressed and deduplicated, the TypeScript compiler + // sometimes generates source maps with duplicates in them. See Github issue + // #72 and bugzil.la/889492. + this._names = ArraySet.fromArray(names.map(String), true); + this._sources = ArraySet.fromArray(sources, true); + + this._absoluteSources = this._sources.toArray().map(function (s) { + return util.computeSourceURL(sourceRoot, s, aSourceMapURL); + }); + + this.sourceRoot = sourceRoot; + this.sourcesContent = sourcesContent; + this._mappings = mappings; + this._sourceMapURL = aSourceMapURL; + this.file = file; +} + +BasicSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +BasicSourceMapConsumer.prototype.consumer = SourceMapConsumer; + +/** + * Utility function to find the index of a source. Returns -1 if not + * found. + */ +BasicSourceMapConsumer.prototype._findSourceIndex = function(aSource) { + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + if (this._sources.has(relativeSource)) { + return this._sources.indexOf(relativeSource); + } + + // Maybe aSource is an absolute URL as returned by |sources|. In + // this case we can't simply undo the transform. + var i; + for (i = 0; i < this._absoluteSources.length; ++i) { + if (this._absoluteSources[i] == aSource) { + return i; + } + } + + return -1; +}; + +/** + * Create a BasicSourceMapConsumer from a SourceMapGenerator. + * + * @param SourceMapGenerator aSourceMap + * The source map that will be consumed. + * @param String aSourceMapURL + * The URL at which the source map can be found (optional) + * @returns BasicSourceMapConsumer + */ +BasicSourceMapConsumer.fromSourceMap = + function SourceMapConsumer_fromSourceMap(aSourceMap, aSourceMapURL) { + var smc = Object.create(BasicSourceMapConsumer.prototype); + + var names = smc._names = ArraySet.fromArray(aSourceMap._names.toArray(), true); + var sources = smc._sources = ArraySet.fromArray(aSourceMap._sources.toArray(), true); + smc.sourceRoot = aSourceMap._sourceRoot; + smc.sourcesContent = aSourceMap._generateSourcesContent(smc._sources.toArray(), + smc.sourceRoot); + smc.file = aSourceMap._file; + smc._sourceMapURL = aSourceMapURL; + smc._absoluteSources = smc._sources.toArray().map(function (s) { + return util.computeSourceURL(smc.sourceRoot, s, aSourceMapURL); + }); + + // Because we are modifying the entries (by converting string sources and + // names to indices into the sources and names ArraySets), we have to make + // a copy of the entry or else bad things happen. Shared mutable state + // strikes again! See github issue #191. + + var generatedMappings = aSourceMap._mappings.toArray().slice(); + var destGeneratedMappings = smc.__generatedMappings = []; + var destOriginalMappings = smc.__originalMappings = []; + + for (var i = 0, length = generatedMappings.length; i < length; i++) { + var srcMapping = generatedMappings[i]; + var destMapping = new Mapping; + destMapping.generatedLine = srcMapping.generatedLine; + destMapping.generatedColumn = srcMapping.generatedColumn; + + if (srcMapping.source) { + destMapping.source = sources.indexOf(srcMapping.source); + destMapping.originalLine = srcMapping.originalLine; + destMapping.originalColumn = srcMapping.originalColumn; + + if (srcMapping.name) { + destMapping.name = names.indexOf(srcMapping.name); + } + + destOriginalMappings.push(destMapping); + } + + destGeneratedMappings.push(destMapping); + } + + quickSort(smc.__originalMappings, util.compareByOriginalPositions); + + return smc; + }; + +/** + * The version of the source mapping spec that we are consuming. + */ +BasicSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(BasicSourceMapConsumer.prototype, 'sources', { + get: function () { + return this._absoluteSources.slice(); + } +}); + +/** + * Provide the JIT with a nice shape / hidden class. + */ +function Mapping() { + this.generatedLine = 0; + this.generatedColumn = 0; + this.source = null; + this.originalLine = null; + this.originalColumn = null; + this.name = null; +} + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ + +const compareGenerated = util.compareByGeneratedPositionsDeflatedNoLine; +function sortGenerated(array, start) { + let l = array.length; + let n = array.length - start; + if (n <= 1) { + return; + } else if (n == 2) { + let a = array[start]; + let b = array[start + 1]; + if (compareGenerated(a, b) > 0) { + array[start] = b; + array[start + 1] = a; + } + } else if (n < 20) { + for (let i = start; i < l; i++) { + for (let j = i; j > start; j--) { + let a = array[j - 1]; + let b = array[j]; + if (compareGenerated(a, b) <= 0) { + break; + } + array[j - 1] = b; + array[j] = a; + } + } + } else { + quickSort(array, compareGenerated, start); + } +} +BasicSourceMapConsumer.prototype._parseMappings = + function SourceMapConsumer_parseMappings(aStr, aSourceRoot) { + var generatedLine = 1; + var previousGeneratedColumn = 0; + var previousOriginalLine = 0; + var previousOriginalColumn = 0; + var previousSource = 0; + var previousName = 0; + var length = aStr.length; + var index = 0; + var cachedSegments = {}; + var temp = {}; + var originalMappings = []; + var generatedMappings = []; + var mapping, str, segment, end, value; + + let subarrayStart = 0; + while (index < length) { + if (aStr.charAt(index) === ';') { + generatedLine++; + index++; + previousGeneratedColumn = 0; + + sortGenerated(generatedMappings, subarrayStart); + subarrayStart = generatedMappings.length; + } + else if (aStr.charAt(index) === ',') { + index++; + } + else { + mapping = new Mapping(); + mapping.generatedLine = generatedLine; + + for (end = index; end < length; end++) { + if (this._charIsMappingSeparator(aStr, end)) { + break; + } + } + str = aStr.slice(index, end); + + segment = []; + while (index < end) { + base64VLQ.decode(aStr, index, temp); + value = temp.value; + index = temp.rest; + segment.push(value); + } + + if (segment.length === 2) { + throw new Error('Found a source, but no line and column'); + } + + if (segment.length === 3) { + throw new Error('Found a source and line, but no column'); + } + + // Generated column. + mapping.generatedColumn = previousGeneratedColumn + segment[0]; + previousGeneratedColumn = mapping.generatedColumn; + + if (segment.length > 1) { + // Original source. + mapping.source = previousSource + segment[1]; + previousSource += segment[1]; + + // Original line. + mapping.originalLine = previousOriginalLine + segment[2]; + previousOriginalLine = mapping.originalLine; + // Lines are stored 0-based + mapping.originalLine += 1; + + // Original column. + mapping.originalColumn = previousOriginalColumn + segment[3]; + previousOriginalColumn = mapping.originalColumn; + + if (segment.length > 4) { + // Original name. + mapping.name = previousName + segment[4]; + previousName += segment[4]; + } + } + + generatedMappings.push(mapping); + if (typeof mapping.originalLine === 'number') { + let currentSource = mapping.source; + while (originalMappings.length <= currentSource) { + originalMappings.push(null); + } + if (originalMappings[currentSource] === null) { + originalMappings[currentSource] = []; + } + originalMappings[currentSource].push(mapping); + } + } + } + + sortGenerated(generatedMappings, subarrayStart); + this.__generatedMappings = generatedMappings; + + for (var i = 0; i < originalMappings.length; i++) { + if (originalMappings[i] != null) { + quickSort(originalMappings[i], util.compareByOriginalPositionsNoSource); + } + } + this.__originalMappings = [].concat(...originalMappings); + }; + +/** + * Find the mapping that best matches the hypothetical "needle" mapping that + * we are searching for in the given "haystack" of mappings. + */ +BasicSourceMapConsumer.prototype._findMapping = + function SourceMapConsumer_findMapping(aNeedle, aMappings, aLineName, + aColumnName, aComparator, aBias) { + // To return the position we are searching for, we must first find the + // mapping for the given position and then return the opposite position it + // points to. Because the mappings are sorted, we can use binary search to + // find the best mapping. + + if (aNeedle[aLineName] <= 0) { + throw new TypeError('Line must be greater than or equal to 1, got ' + + aNeedle[aLineName]); + } + if (aNeedle[aColumnName] < 0) { + throw new TypeError('Column must be greater than or equal to 0, got ' + + aNeedle[aColumnName]); + } + + return binarySearch.search(aNeedle, aMappings, aComparator, aBias); + }; + +/** + * Compute the last column for each generated mapping. The last column is + * inclusive. + */ +BasicSourceMapConsumer.prototype.computeColumnSpans = + function SourceMapConsumer_computeColumnSpans() { + for (var index = 0; index < this._generatedMappings.length; ++index) { + var mapping = this._generatedMappings[index]; + + // Mappings do not contain a field for the last generated columnt. We + // can come up with an optimistic estimate, however, by assuming that + // mappings are contiguous (i.e. given two consecutive mappings, the + // first mapping ends where the second one starts). + if (index + 1 < this._generatedMappings.length) { + var nextMapping = this._generatedMappings[index + 1]; + + if (mapping.generatedLine === nextMapping.generatedLine) { + mapping.lastGeneratedColumn = nextMapping.generatedColumn - 1; + continue; + } + } + + // The last mapping for each line spans the entire line. + mapping.lastGeneratedColumn = Infinity; + } + }; + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +BasicSourceMapConsumer.prototype.originalPositionFor = + function SourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._generatedMappings, + "generatedLine", + "generatedColumn", + util.compareByGeneratedPositionsDeflated, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._generatedMappings[index]; + + if (mapping.generatedLine === needle.generatedLine) { + var source = util.getArg(mapping, 'source', null); + if (source !== null) { + source = this._sources.at(source); + source = util.computeSourceURL(this.sourceRoot, source, this._sourceMapURL); + } + var name = util.getArg(mapping, 'name', null); + if (name !== null) { + name = this._names.at(name); + } + return { + source: source, + line: util.getArg(mapping, 'originalLine', null), + column: util.getArg(mapping, 'originalColumn', null), + name: name + }; + } + } + + return { + source: null, + line: null, + column: null, + name: null + }; + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +BasicSourceMapConsumer.prototype.hasContentsOfAllSources = + function BasicSourceMapConsumer_hasContentsOfAllSources() { + if (!this.sourcesContent) { + return false; + } + return this.sourcesContent.length >= this._sources.size() && + !this.sourcesContent.some(function (sc) { return sc == null; }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +BasicSourceMapConsumer.prototype.sourceContentFor = + function SourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + if (!this.sourcesContent) { + return null; + } + + var index = this._findSourceIndex(aSource); + if (index >= 0) { + return this.sourcesContent[index]; + } + + var relativeSource = aSource; + if (this.sourceRoot != null) { + relativeSource = util.relative(this.sourceRoot, relativeSource); + } + + var url; + if (this.sourceRoot != null + && (url = util.urlParse(this.sourceRoot))) { + // XXX: file:// URIs and absolute paths lead to unexpected behavior for + // many users. We can help them out when they expect file:// URIs to + // behave like it would if they were running a local HTTP server. See + // https://bugzilla.mozilla.org/show_bug.cgi?id=885597. + var fileUriAbsPath = relativeSource.replace(/^file:\/\//, ""); + if (url.scheme == "file" + && this._sources.has(fileUriAbsPath)) { + return this.sourcesContent[this._sources.indexOf(fileUriAbsPath)] + } + + if ((!url.path || url.path == "/") + && this._sources.has("/" + relativeSource)) { + return this.sourcesContent[this._sources.indexOf("/" + relativeSource)]; + } + } + + // This function is used recursively from + // IndexedSourceMapConsumer.prototype.sourceContentFor. In that case, we + // don't want to throw if we can't find the source - we just want to + // return null, so we provide a flag to exit gracefully. + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + relativeSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * - bias: Either 'SourceMapConsumer.GREATEST_LOWER_BOUND' or + * 'SourceMapConsumer.LEAST_UPPER_BOUND'. Specifies whether to return the + * closest element that is smaller than or greater than the one we are + * searching for, respectively, if the exact element cannot be found. + * Defaults to 'SourceMapConsumer.GREATEST_LOWER_BOUND'. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +BasicSourceMapConsumer.prototype.generatedPositionFor = + function SourceMapConsumer_generatedPositionFor(aArgs) { + var source = util.getArg(aArgs, 'source'); + source = this._findSourceIndex(source); + if (source < 0) { + return { + line: null, + column: null, + lastColumn: null + }; + } + + var needle = { + source: source, + originalLine: util.getArg(aArgs, 'line'), + originalColumn: util.getArg(aArgs, 'column') + }; + + var index = this._findMapping( + needle, + this._originalMappings, + "originalLine", + "originalColumn", + util.compareByOriginalPositions, + util.getArg(aArgs, 'bias', SourceMapConsumer.GREATEST_LOWER_BOUND) + ); + + if (index >= 0) { + var mapping = this._originalMappings[index]; + + if (mapping.source === needle.source) { + return { + line: util.getArg(mapping, 'generatedLine', null), + column: util.getArg(mapping, 'generatedColumn', null), + lastColumn: util.getArg(mapping, 'lastGeneratedColumn', null) + }; + } + } + + return { + line: null, + column: null, + lastColumn: null + }; + }; + +exports.BasicSourceMapConsumer = BasicSourceMapConsumer; + +/** + * An IndexedSourceMapConsumer instance represents a parsed source map which + * we can query for information. It differs from BasicSourceMapConsumer in + * that it takes "indexed" source maps (i.e. ones with a "sections" field) as + * input. + * + * The first parameter is a raw source map (either as a JSON string, or already + * parsed to an object). According to the spec for indexed source maps, they + * have the following attributes: + * + * - version: Which version of the source map spec this map is following. + * - file: Optional. The generated file this source map is associated with. + * - sections: A list of section definitions. + * + * Each value under the "sections" field has two fields: + * - offset: The offset into the original specified at which this section + * begins to apply, defined as an object with a "line" and "column" + * field. + * - map: A source map definition. This source map could also be indexed, + * but doesn't have to be. + * + * Instead of the "map" field, it's also possible to have a "url" field + * specifying a URL to retrieve a source map from, but that's currently + * unsupported. + * + * Here's an example source map, taken from the source map spec[0], but + * modified to omit a section which uses the "url" field. + * + * { + * version : 3, + * file: "app.js", + * sections: [{ + * offset: {line:100, column:10}, + * map: { + * version : 3, + * file: "section.js", + * sources: ["foo.js", "bar.js"], + * names: ["src", "maps", "are", "fun"], + * mappings: "AAAA,E;;ABCDE;" + * } + * }], + * } + * + * The second parameter, if given, is a string whose value is the URL + * at which the source map was found. This URL is used to compute the + * sources array. + * + * [0]: https://docs.google.com/document/d/1U1RGAehQwRypUTovF1KRlpiOFze0b-_2gc6fAH0KY0k/edit#heading=h.535es3xeprgt + */ +function IndexedSourceMapConsumer(aSourceMap, aSourceMapURL) { + var sourceMap = aSourceMap; + if (typeof aSourceMap === 'string') { + sourceMap = util.parseSourceMapInput(aSourceMap); + } + + var version = util.getArg(sourceMap, 'version'); + var sections = util.getArg(sourceMap, 'sections'); + + if (version != this._version) { + throw new Error('Unsupported version: ' + version); + } + + this._sources = new ArraySet(); + this._names = new ArraySet(); + + var lastOffset = { + line: -1, + column: 0 + }; + this._sections = sections.map(function (s) { + if (s.url) { + // The url field will require support for asynchronicity. + // See https://github.com/mozilla/source-map/issues/16 + throw new Error('Support for url field in sections not implemented.'); + } + var offset = util.getArg(s, 'offset'); + var offsetLine = util.getArg(offset, 'line'); + var offsetColumn = util.getArg(offset, 'column'); + + if (offsetLine < lastOffset.line || + (offsetLine === lastOffset.line && offsetColumn < lastOffset.column)) { + throw new Error('Section offsets must be ordered and non-overlapping.'); + } + lastOffset = offset; + + return { + generatedOffset: { + // The offset fields are 0-based, but we use 1-based indices when + // encoding/decoding from VLQ. + generatedLine: offsetLine + 1, + generatedColumn: offsetColumn + 1 + }, + consumer: new SourceMapConsumer(util.getArg(s, 'map'), aSourceMapURL) + } + }); +} + +IndexedSourceMapConsumer.prototype = Object.create(SourceMapConsumer.prototype); +IndexedSourceMapConsumer.prototype.constructor = SourceMapConsumer; + +/** + * The version of the source mapping spec that we are consuming. + */ +IndexedSourceMapConsumer.prototype._version = 3; + +/** + * The list of original sources. + */ +Object.defineProperty(IndexedSourceMapConsumer.prototype, 'sources', { + get: function () { + var sources = []; + for (var i = 0; i < this._sections.length; i++) { + for (var j = 0; j < this._sections[i].consumer.sources.length; j++) { + sources.push(this._sections[i].consumer.sources[j]); + } + } + return sources; + } +}); + +/** + * Returns the original source, line, and column information for the generated + * source's line and column positions provided. The only argument is an object + * with the following properties: + * + * - line: The line number in the generated source. The line number + * is 1-based. + * - column: The column number in the generated source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - source: The original source file, or null. + * - line: The line number in the original source, or null. The + * line number is 1-based. + * - column: The column number in the original source, or null. The + * column number is 0-based. + * - name: The original identifier, or null. + */ +IndexedSourceMapConsumer.prototype.originalPositionFor = + function IndexedSourceMapConsumer_originalPositionFor(aArgs) { + var needle = { + generatedLine: util.getArg(aArgs, 'line'), + generatedColumn: util.getArg(aArgs, 'column') + }; + + // Find the section containing the generated position we're trying to map + // to an original position. + var sectionIndex = binarySearch.search(needle, this._sections, + function(needle, section) { + var cmp = needle.generatedLine - section.generatedOffset.generatedLine; + if (cmp) { + return cmp; + } + + return (needle.generatedColumn - + section.generatedOffset.generatedColumn); + }); + var section = this._sections[sectionIndex]; + + if (!section) { + return { + source: null, + line: null, + column: null, + name: null + }; + } + + return section.consumer.originalPositionFor({ + line: needle.generatedLine - + (section.generatedOffset.generatedLine - 1), + column: needle.generatedColumn - + (section.generatedOffset.generatedLine === needle.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + bias: aArgs.bias + }); + }; + +/** + * Return true if we have the source content for every source in the source + * map, false otherwise. + */ +IndexedSourceMapConsumer.prototype.hasContentsOfAllSources = + function IndexedSourceMapConsumer_hasContentsOfAllSources() { + return this._sections.every(function (s) { + return s.consumer.hasContentsOfAllSources(); + }); + }; + +/** + * Returns the original source content. The only argument is the url of the + * original source file. Returns null if no original source content is + * available. + */ +IndexedSourceMapConsumer.prototype.sourceContentFor = + function IndexedSourceMapConsumer_sourceContentFor(aSource, nullOnMissing) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + var content = section.consumer.sourceContentFor(aSource, true); + if (content || content === '') { + return content; + } + } + if (nullOnMissing) { + return null; + } + else { + throw new Error('"' + aSource + '" is not in the SourceMap.'); + } + }; + +/** + * Returns the generated line and column information for the original source, + * line, and column positions provided. The only argument is an object with + * the following properties: + * + * - source: The filename of the original source. + * - line: The line number in the original source. The line number + * is 1-based. + * - column: The column number in the original source. The column + * number is 0-based. + * + * and an object is returned with the following properties: + * + * - line: The line number in the generated source, or null. The + * line number is 1-based. + * - column: The column number in the generated source, or null. + * The column number is 0-based. + */ +IndexedSourceMapConsumer.prototype.generatedPositionFor = + function IndexedSourceMapConsumer_generatedPositionFor(aArgs) { + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + + // Only consider this section if the requested source is in the list of + // sources of the consumer. + if (section.consumer._findSourceIndex(util.getArg(aArgs, 'source')) === -1) { + continue; + } + var generatedPosition = section.consumer.generatedPositionFor(aArgs); + if (generatedPosition) { + var ret = { + line: generatedPosition.line + + (section.generatedOffset.generatedLine - 1), + column: generatedPosition.column + + (section.generatedOffset.generatedLine === generatedPosition.line + ? section.generatedOffset.generatedColumn - 1 + : 0) + }; + return ret; + } + } + + return { + line: null, + column: null + }; + }; + +/** + * Parse the mappings in a string in to a data structure which we can easily + * query (the ordered arrays in the `this.__generatedMappings` and + * `this.__originalMappings` properties). + */ +IndexedSourceMapConsumer.prototype._parseMappings = + function IndexedSourceMapConsumer_parseMappings(aStr, aSourceRoot) { + this.__generatedMappings = []; + this.__originalMappings = []; + for (var i = 0; i < this._sections.length; i++) { + var section = this._sections[i]; + var sectionMappings = section.consumer._generatedMappings; + for (var j = 0; j < sectionMappings.length; j++) { + var mapping = sectionMappings[j]; + + var source = section.consumer._sources.at(mapping.source); + if(source !== null) { + source = util.computeSourceURL(section.consumer.sourceRoot, source, this._sourceMapURL); + } + this._sources.add(source); + source = this._sources.indexOf(source); + + var name = null; + if (mapping.name) { + name = section.consumer._names.at(mapping.name); + this._names.add(name); + name = this._names.indexOf(name); + } + + // The mappings coming from the consumer for the section have + // generated positions relative to the start of the section, so we + // need to offset them to be relative to the start of the concatenated + // generated file. + var adjustedMapping = { + source: source, + generatedLine: mapping.generatedLine + + (section.generatedOffset.generatedLine - 1), + generatedColumn: mapping.generatedColumn + + (section.generatedOffset.generatedLine === mapping.generatedLine + ? section.generatedOffset.generatedColumn - 1 + : 0), + originalLine: mapping.originalLine, + originalColumn: mapping.originalColumn, + name: name + }; + + this.__generatedMappings.push(adjustedMapping); + if (typeof adjustedMapping.originalLine === 'number') { + this.__originalMappings.push(adjustedMapping); + } + } + } + + quickSort(this.__generatedMappings, util.compareByGeneratedPositionsDeflated); + quickSort(this.__originalMappings, util.compareByOriginalPositions); + }; + +exports.IndexedSourceMapConsumer = IndexedSourceMapConsumer; diff --git a/cli/app/node_modules/source-map-js/lib/source-map-generator.js b/cli/app/node_modules/source-map-js/lib/source-map-generator.js new file mode 100644 index 00000000000..bab04ff85b3 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/source-map-generator.js @@ -0,0 +1,444 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var base64VLQ = require('./base64-vlq'); +var util = require('./util'); +var ArraySet = require('./array-set').ArraySet; +var MappingList = require('./mapping-list').MappingList; + +/** + * An instance of the SourceMapGenerator represents a source map which is + * being built incrementally. You may pass an object with the following + * properties: + * + * - file: The filename of the generated source. + * - sourceRoot: A root for all relative URLs in this source map. + */ +function SourceMapGenerator(aArgs) { + if (!aArgs) { + aArgs = {}; + } + this._file = util.getArg(aArgs, 'file', null); + this._sourceRoot = util.getArg(aArgs, 'sourceRoot', null); + this._skipValidation = util.getArg(aArgs, 'skipValidation', false); + this._ignoreInvalidMapping = util.getArg(aArgs, 'ignoreInvalidMapping', false); + this._sources = new ArraySet(); + this._names = new ArraySet(); + this._mappings = new MappingList(); + this._sourcesContents = null; +} + +SourceMapGenerator.prototype._version = 3; + +/** + * Creates a new SourceMapGenerator based on a SourceMapConsumer + * + * @param aSourceMapConsumer The SourceMap. + */ +SourceMapGenerator.fromSourceMap = + function SourceMapGenerator_fromSourceMap(aSourceMapConsumer, generatorOps) { + var sourceRoot = aSourceMapConsumer.sourceRoot; + var generator = new SourceMapGenerator(Object.assign(generatorOps || {}, { + file: aSourceMapConsumer.file, + sourceRoot: sourceRoot + })); + aSourceMapConsumer.eachMapping(function (mapping) { + var newMapping = { + generated: { + line: mapping.generatedLine, + column: mapping.generatedColumn + } + }; + + if (mapping.source != null) { + newMapping.source = mapping.source; + if (sourceRoot != null) { + newMapping.source = util.relative(sourceRoot, newMapping.source); + } + + newMapping.original = { + line: mapping.originalLine, + column: mapping.originalColumn + }; + + if (mapping.name != null) { + newMapping.name = mapping.name; + } + } + + generator.addMapping(newMapping); + }); + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var sourceRelative = sourceFile; + if (sourceRoot !== null) { + sourceRelative = util.relative(sourceRoot, sourceFile); + } + + if (!generator._sources.has(sourceRelative)) { + generator._sources.add(sourceRelative); + } + + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + generator.setSourceContent(sourceFile, content); + } + }); + return generator; + }; + +/** + * Add a single mapping from original source line and column to the generated + * source's line and column for this source map being created. The mapping + * object should have the following properties: + * + * - generated: An object with the generated line and column positions. + * - original: An object with the original line and column positions. + * - source: The original source file (relative to the sourceRoot). + * - name: An optional original token name for this mapping. + */ +SourceMapGenerator.prototype.addMapping = + function SourceMapGenerator_addMapping(aArgs) { + var generated = util.getArg(aArgs, 'generated'); + var original = util.getArg(aArgs, 'original', null); + var source = util.getArg(aArgs, 'source', null); + var name = util.getArg(aArgs, 'name', null); + + if (!this._skipValidation) { + if (this._validateMapping(generated, original, source, name) === false) { + return; + } + } + + if (source != null) { + source = String(source); + if (!this._sources.has(source)) { + this._sources.add(source); + } + } + + if (name != null) { + name = String(name); + if (!this._names.has(name)) { + this._names.add(name); + } + } + + this._mappings.add({ + generatedLine: generated.line, + generatedColumn: generated.column, + originalLine: original != null && original.line, + originalColumn: original != null && original.column, + source: source, + name: name + }); + }; + +/** + * Set the source content for a source file. + */ +SourceMapGenerator.prototype.setSourceContent = + function SourceMapGenerator_setSourceContent(aSourceFile, aSourceContent) { + var source = aSourceFile; + if (this._sourceRoot != null) { + source = util.relative(this._sourceRoot, source); + } + + if (aSourceContent != null) { + // Add the source content to the _sourcesContents map. + // Create a new _sourcesContents map if the property is null. + if (!this._sourcesContents) { + this._sourcesContents = Object.create(null); + } + this._sourcesContents[util.toSetString(source)] = aSourceContent; + } else if (this._sourcesContents) { + // Remove the source file from the _sourcesContents map. + // If the _sourcesContents map is empty, set the property to null. + delete this._sourcesContents[util.toSetString(source)]; + if (Object.keys(this._sourcesContents).length === 0) { + this._sourcesContents = null; + } + } + }; + +/** + * Applies the mappings of a sub-source-map for a specific source file to the + * source map being generated. Each mapping to the supplied source file is + * rewritten using the supplied source map. Note: The resolution for the + * resulting mappings is the minimium of this map and the supplied map. + * + * @param aSourceMapConsumer The source map to be applied. + * @param aSourceFile Optional. The filename of the source file. + * If omitted, SourceMapConsumer's file property will be used. + * @param aSourceMapPath Optional. The dirname of the path to the source map + * to be applied. If relative, it is relative to the SourceMapConsumer. + * This parameter is needed when the two source maps aren't in the same + * directory, and the source map to be applied contains relative source + * paths. If so, those relative source paths need to be rewritten + * relative to the SourceMapGenerator. + */ +SourceMapGenerator.prototype.applySourceMap = + function SourceMapGenerator_applySourceMap(aSourceMapConsumer, aSourceFile, aSourceMapPath) { + var sourceFile = aSourceFile; + // If aSourceFile is omitted, we will use the file property of the SourceMap + if (aSourceFile == null) { + if (aSourceMapConsumer.file == null) { + throw new Error( + 'SourceMapGenerator.prototype.applySourceMap requires either an explicit source file, ' + + 'or the source map\'s "file" property. Both were omitted.' + ); + } + sourceFile = aSourceMapConsumer.file; + } + var sourceRoot = this._sourceRoot; + // Make "sourceFile" relative if an absolute Url is passed. + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + // Applying the SourceMap can add and remove items from the sources and + // the names array. + var newSources = new ArraySet(); + var newNames = new ArraySet(); + + // Find mappings for the "sourceFile" + this._mappings.unsortedForEach(function (mapping) { + if (mapping.source === sourceFile && mapping.originalLine != null) { + // Check if it can be mapped by the source map, then update the mapping. + var original = aSourceMapConsumer.originalPositionFor({ + line: mapping.originalLine, + column: mapping.originalColumn + }); + if (original.source != null) { + // Copy mapping + mapping.source = original.source; + if (aSourceMapPath != null) { + mapping.source = util.join(aSourceMapPath, mapping.source) + } + if (sourceRoot != null) { + mapping.source = util.relative(sourceRoot, mapping.source); + } + mapping.originalLine = original.line; + mapping.originalColumn = original.column; + if (original.name != null) { + mapping.name = original.name; + } + } + } + + var source = mapping.source; + if (source != null && !newSources.has(source)) { + newSources.add(source); + } + + var name = mapping.name; + if (name != null && !newNames.has(name)) { + newNames.add(name); + } + + }, this); + this._sources = newSources; + this._names = newNames; + + // Copy sourcesContents of applied map. + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aSourceMapPath != null) { + sourceFile = util.join(aSourceMapPath, sourceFile); + } + if (sourceRoot != null) { + sourceFile = util.relative(sourceRoot, sourceFile); + } + this.setSourceContent(sourceFile, content); + } + }, this); + }; + +/** + * A mapping can have one of the three levels of data: + * + * 1. Just the generated position. + * 2. The Generated position, original position, and original source. + * 3. Generated and original position, original source, as well as a name + * token. + * + * To maintain consistency, we validate that any new mapping being added falls + * in to one of these categories. + */ +SourceMapGenerator.prototype._validateMapping = + function SourceMapGenerator_validateMapping(aGenerated, aOriginal, aSource, + aName) { + // When aOriginal is truthy but has empty values for .line and .column, + // it is most likely a programmer error. In this case we throw a very + // specific error message to try to guide them the right way. + // For example: https://github.com/Polymer/polymer-bundler/pull/519 + if (aOriginal && typeof aOriginal.line !== 'number' && typeof aOriginal.column !== 'number') { + var message = 'original.line and original.column are not numbers -- you probably meant to omit ' + + 'the original mapping entirely and only map the generated position. If so, pass ' + + 'null for the original mapping instead of an object with empty or null values.' + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message); + } + } + + if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aGenerated.line > 0 && aGenerated.column >= 0 + && !aOriginal && !aSource && !aName) { + // Case 1. + return; + } + else if (aGenerated && 'line' in aGenerated && 'column' in aGenerated + && aOriginal && 'line' in aOriginal && 'column' in aOriginal + && aGenerated.line > 0 && aGenerated.column >= 0 + && aOriginal.line > 0 && aOriginal.column >= 0 + && aSource) { + // Cases 2 and 3. + return; + } + else { + var message = 'Invalid mapping: ' + JSON.stringify({ + generated: aGenerated, + source: aSource, + original: aOriginal, + name: aName + }); + + if (this._ignoreInvalidMapping) { + if (typeof console !== 'undefined' && console.warn) { + console.warn(message); + } + return false; + } else { + throw new Error(message) + } + } + }; + +/** + * Serialize the accumulated mappings in to the stream of base 64 VLQs + * specified by the source map format. + */ +SourceMapGenerator.prototype._serializeMappings = + function SourceMapGenerator_serializeMappings() { + var previousGeneratedColumn = 0; + var previousGeneratedLine = 1; + var previousOriginalColumn = 0; + var previousOriginalLine = 0; + var previousName = 0; + var previousSource = 0; + var result = ''; + var next; + var mapping; + var nameIdx; + var sourceIdx; + + var mappings = this._mappings.toArray(); + for (var i = 0, len = mappings.length; i < len; i++) { + mapping = mappings[i]; + next = '' + + if (mapping.generatedLine !== previousGeneratedLine) { + previousGeneratedColumn = 0; + while (mapping.generatedLine !== previousGeneratedLine) { + next += ';'; + previousGeneratedLine++; + } + } + else { + if (i > 0) { + if (!util.compareByGeneratedPositionsInflated(mapping, mappings[i - 1])) { + continue; + } + next += ','; + } + } + + next += base64VLQ.encode(mapping.generatedColumn + - previousGeneratedColumn); + previousGeneratedColumn = mapping.generatedColumn; + + if (mapping.source != null) { + sourceIdx = this._sources.indexOf(mapping.source); + next += base64VLQ.encode(sourceIdx - previousSource); + previousSource = sourceIdx; + + // lines are stored 0-based in SourceMap spec version 3 + next += base64VLQ.encode(mapping.originalLine - 1 + - previousOriginalLine); + previousOriginalLine = mapping.originalLine - 1; + + next += base64VLQ.encode(mapping.originalColumn + - previousOriginalColumn); + previousOriginalColumn = mapping.originalColumn; + + if (mapping.name != null) { + nameIdx = this._names.indexOf(mapping.name); + next += base64VLQ.encode(nameIdx - previousName); + previousName = nameIdx; + } + } + + result += next; + } + + return result; + }; + +SourceMapGenerator.prototype._generateSourcesContent = + function SourceMapGenerator_generateSourcesContent(aSources, aSourceRoot) { + return aSources.map(function (source) { + if (!this._sourcesContents) { + return null; + } + if (aSourceRoot != null) { + source = util.relative(aSourceRoot, source); + } + var key = util.toSetString(source); + return Object.prototype.hasOwnProperty.call(this._sourcesContents, key) + ? this._sourcesContents[key] + : null; + }, this); + }; + +/** + * Externalize the source map. + */ +SourceMapGenerator.prototype.toJSON = + function SourceMapGenerator_toJSON() { + var map = { + version: this._version, + sources: this._sources.toArray(), + names: this._names.toArray(), + mappings: this._serializeMappings() + }; + if (this._file != null) { + map.file = this._file; + } + if (this._sourceRoot != null) { + map.sourceRoot = this._sourceRoot; + } + if (this._sourcesContents) { + map.sourcesContent = this._generateSourcesContent(map.sources, map.sourceRoot); + } + + return map; + }; + +/** + * Render the source map being generated to a string. + */ +SourceMapGenerator.prototype.toString = + function SourceMapGenerator_toString() { + return JSON.stringify(this.toJSON()); + }; + +exports.SourceMapGenerator = SourceMapGenerator; diff --git a/cli/app/node_modules/source-map-js/lib/source-node.js b/cli/app/node_modules/source-map-js/lib/source-node.js new file mode 100644 index 00000000000..8bcdbe385d2 --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/source-node.js @@ -0,0 +1,413 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +var SourceMapGenerator = require('./source-map-generator').SourceMapGenerator; +var util = require('./util'); + +// Matches a Windows-style `\r\n` newline or a `\n` newline used by all other +// operating systems these days (capturing the result). +var REGEX_NEWLINE = /(\r?\n)/; + +// Newline character code for charCodeAt() comparisons +var NEWLINE_CODE = 10; + +// Private symbol for identifying `SourceNode`s when multiple versions of +// the source-map library are loaded. This MUST NOT CHANGE across +// versions! +var isSourceNode = "$$$isSourceNode$$$"; + +/** + * SourceNodes provide a way to abstract over interpolating/concatenating + * snippets of generated JavaScript source code while maintaining the line and + * column information associated with the original source code. + * + * @param aLine The original line number. + * @param aColumn The original column number. + * @param aSource The original source's filename. + * @param aChunks Optional. An array of strings which are snippets of + * generated JS, or other SourceNodes. + * @param aName The original identifier. + */ +function SourceNode(aLine, aColumn, aSource, aChunks, aName) { + this.children = []; + this.sourceContents = {}; + this.line = aLine == null ? null : aLine; + this.column = aColumn == null ? null : aColumn; + this.source = aSource == null ? null : aSource; + this.name = aName == null ? null : aName; + this[isSourceNode] = true; + if (aChunks != null) this.add(aChunks); +} + +/** + * Creates a SourceNode from generated code and a SourceMapConsumer. + * + * @param aGeneratedCode The generated code + * @param aSourceMapConsumer The SourceMap for the generated code + * @param aRelativePath Optional. The path that relative sources in the + * SourceMapConsumer should be relative to. + */ +SourceNode.fromStringWithSourceMap = + function SourceNode_fromStringWithSourceMap(aGeneratedCode, aSourceMapConsumer, aRelativePath) { + // The SourceNode we want to fill with the generated code + // and the SourceMap + var node = new SourceNode(); + + // All even indices of this array are one line of the generated code, + // while all odd indices are the newlines between two adjacent lines + // (since `REGEX_NEWLINE` captures its match). + // Processed fragments are accessed by calling `shiftNextLine`. + var remainingLines = aGeneratedCode.split(REGEX_NEWLINE); + var remainingLinesIndex = 0; + var shiftNextLine = function() { + var lineContents = getNextLine(); + // The last line of a file might not have a newline. + var newLine = getNextLine() || ""; + return lineContents + newLine; + + function getNextLine() { + return remainingLinesIndex < remainingLines.length ? + remainingLines[remainingLinesIndex++] : undefined; + } + }; + + // We need to remember the position of "remainingLines" + var lastGeneratedLine = 1, lastGeneratedColumn = 0; + + // The generate SourceNodes we need a code range. + // To extract it current and last mapping is used. + // Here we store the last mapping. + var lastMapping = null; + + aSourceMapConsumer.eachMapping(function (mapping) { + if (lastMapping !== null) { + // We add the code from "lastMapping" to "mapping": + // First check if there is a new line in between. + if (lastGeneratedLine < mapping.generatedLine) { + // Associate first line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + lastGeneratedLine++; + lastGeneratedColumn = 0; + // The remaining code is added without mapping + } else { + // There is no new line in between. + // Associate the code between "lastGeneratedColumn" and + // "mapping.generatedColumn" with "lastMapping" + var nextLine = remainingLines[remainingLinesIndex] || ''; + var code = nextLine.substr(0, mapping.generatedColumn - + lastGeneratedColumn); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn - + lastGeneratedColumn); + lastGeneratedColumn = mapping.generatedColumn; + addMappingWithCode(lastMapping, code); + // No more remaining code, continue + lastMapping = mapping; + return; + } + } + // We add the generated code until the first mapping + // to the SourceNode without any mapping. + // Each line is added as separate string. + while (lastGeneratedLine < mapping.generatedLine) { + node.add(shiftNextLine()); + lastGeneratedLine++; + } + if (lastGeneratedColumn < mapping.generatedColumn) { + var nextLine = remainingLines[remainingLinesIndex] || ''; + node.add(nextLine.substr(0, mapping.generatedColumn)); + remainingLines[remainingLinesIndex] = nextLine.substr(mapping.generatedColumn); + lastGeneratedColumn = mapping.generatedColumn; + } + lastMapping = mapping; + }, this); + // We have processed all mappings. + if (remainingLinesIndex < remainingLines.length) { + if (lastMapping) { + // Associate the remaining code in the current line with "lastMapping" + addMappingWithCode(lastMapping, shiftNextLine()); + } + // and add the remaining lines without any mapping + node.add(remainingLines.splice(remainingLinesIndex).join("")); + } + + // Copy sourcesContent into SourceNode + aSourceMapConsumer.sources.forEach(function (sourceFile) { + var content = aSourceMapConsumer.sourceContentFor(sourceFile); + if (content != null) { + if (aRelativePath != null) { + sourceFile = util.join(aRelativePath, sourceFile); + } + node.setSourceContent(sourceFile, content); + } + }); + + return node; + + function addMappingWithCode(mapping, code) { + if (mapping === null || mapping.source === undefined) { + node.add(code); + } else { + var source = aRelativePath + ? util.join(aRelativePath, mapping.source) + : mapping.source; + node.add(new SourceNode(mapping.originalLine, + mapping.originalColumn, + source, + code, + mapping.name)); + } + } + }; + +/** + * Add a chunk of generated JS to this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.add = function SourceNode_add(aChunk) { + if (Array.isArray(aChunk)) { + aChunk.forEach(function (chunk) { + this.add(chunk); + }, this); + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + if (aChunk) { + this.children.push(aChunk); + } + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Add a chunk of generated JS to the beginning of this source node. + * + * @param aChunk A string snippet of generated JS code, another instance of + * SourceNode, or an array where each member is one of those things. + */ +SourceNode.prototype.prepend = function SourceNode_prepend(aChunk) { + if (Array.isArray(aChunk)) { + for (var i = aChunk.length-1; i >= 0; i--) { + this.prepend(aChunk[i]); + } + } + else if (aChunk[isSourceNode] || typeof aChunk === "string") { + this.children.unshift(aChunk); + } + else { + throw new TypeError( + "Expected a SourceNode, string, or an array of SourceNodes and strings. Got " + aChunk + ); + } + return this; +}; + +/** + * Walk over the tree of JS snippets in this node and its children. The + * walking function is called once for each snippet of JS and is passed that + * snippet and the its original associated source's line/column location. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walk = function SourceNode_walk(aFn) { + var chunk; + for (var i = 0, len = this.children.length; i < len; i++) { + chunk = this.children[i]; + if (chunk[isSourceNode]) { + chunk.walk(aFn); + } + else { + if (chunk !== '') { + aFn(chunk, { source: this.source, + line: this.line, + column: this.column, + name: this.name }); + } + } + } +}; + +/** + * Like `String.prototype.join` except for SourceNodes. Inserts `aStr` between + * each of `this.children`. + * + * @param aSep The separator. + */ +SourceNode.prototype.join = function SourceNode_join(aSep) { + var newChildren; + var i; + var len = this.children.length; + if (len > 0) { + newChildren = []; + for (i = 0; i < len-1; i++) { + newChildren.push(this.children[i]); + newChildren.push(aSep); + } + newChildren.push(this.children[i]); + this.children = newChildren; + } + return this; +}; + +/** + * Call String.prototype.replace on the very right-most source snippet. Useful + * for trimming whitespace from the end of a source node, etc. + * + * @param aPattern The pattern to replace. + * @param aReplacement The thing to replace the pattern with. + */ +SourceNode.prototype.replaceRight = function SourceNode_replaceRight(aPattern, aReplacement) { + var lastChild = this.children[this.children.length - 1]; + if (lastChild[isSourceNode]) { + lastChild.replaceRight(aPattern, aReplacement); + } + else if (typeof lastChild === 'string') { + this.children[this.children.length - 1] = lastChild.replace(aPattern, aReplacement); + } + else { + this.children.push(''.replace(aPattern, aReplacement)); + } + return this; +}; + +/** + * Set the source content for a source file. This will be added to the SourceMapGenerator + * in the sourcesContent field. + * + * @param aSourceFile The filename of the source file + * @param aSourceContent The content of the source file + */ +SourceNode.prototype.setSourceContent = + function SourceNode_setSourceContent(aSourceFile, aSourceContent) { + this.sourceContents[util.toSetString(aSourceFile)] = aSourceContent; + }; + +/** + * Walk over the tree of SourceNodes. The walking function is called for each + * source file content and is passed the filename and source content. + * + * @param aFn The traversal function. + */ +SourceNode.prototype.walkSourceContents = + function SourceNode_walkSourceContents(aFn) { + for (var i = 0, len = this.children.length; i < len; i++) { + if (this.children[i][isSourceNode]) { + this.children[i].walkSourceContents(aFn); + } + } + + var sources = Object.keys(this.sourceContents); + for (var i = 0, len = sources.length; i < len; i++) { + aFn(util.fromSetString(sources[i]), this.sourceContents[sources[i]]); + } + }; + +/** + * Return the string representation of this source node. Walks over the tree + * and concatenates all the various snippets together to one string. + */ +SourceNode.prototype.toString = function SourceNode_toString() { + var str = ""; + this.walk(function (chunk) { + str += chunk; + }); + return str; +}; + +/** + * Returns the string representation of this source node along with a source + * map. + */ +SourceNode.prototype.toStringWithSourceMap = function SourceNode_toStringWithSourceMap(aArgs) { + var generated = { + code: "", + line: 1, + column: 0 + }; + var map = new SourceMapGenerator(aArgs); + var sourceMappingActive = false; + var lastOriginalSource = null; + var lastOriginalLine = null; + var lastOriginalColumn = null; + var lastOriginalName = null; + this.walk(function (chunk, original) { + generated.code += chunk; + if (original.source !== null + && original.line !== null + && original.column !== null) { + if(lastOriginalSource !== original.source + || lastOriginalLine !== original.line + || lastOriginalColumn !== original.column + || lastOriginalName !== original.name) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + lastOriginalSource = original.source; + lastOriginalLine = original.line; + lastOriginalColumn = original.column; + lastOriginalName = original.name; + sourceMappingActive = true; + } else if (sourceMappingActive) { + map.addMapping({ + generated: { + line: generated.line, + column: generated.column + } + }); + lastOriginalSource = null; + sourceMappingActive = false; + } + for (var idx = 0, length = chunk.length; idx < length; idx++) { + if (chunk.charCodeAt(idx) === NEWLINE_CODE) { + generated.line++; + generated.column = 0; + // Mappings end at eol + if (idx + 1 === length) { + lastOriginalSource = null; + sourceMappingActive = false; + } else if (sourceMappingActive) { + map.addMapping({ + source: original.source, + original: { + line: original.line, + column: original.column + }, + generated: { + line: generated.line, + column: generated.column + }, + name: original.name + }); + } + } else { + generated.column++; + } + } + }); + this.walkSourceContents(function (sourceFile, sourceContent) { + map.setSourceContent(sourceFile, sourceContent); + }); + + return { code: generated.code, map: map }; +}; + +exports.SourceNode = SourceNode; diff --git a/cli/app/node_modules/source-map-js/lib/util.js b/cli/app/node_modules/source-map-js/lib/util.js new file mode 100644 index 00000000000..430e2d0ff0b --- /dev/null +++ b/cli/app/node_modules/source-map-js/lib/util.js @@ -0,0 +1,594 @@ +/* -*- Mode: js; js-indent-level: 2; -*- */ +/* + * Copyright 2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE or: + * http://opensource.org/licenses/BSD-3-Clause + */ + +/** + * This is a helper function for getting values from parameter/options + * objects. + * + * @param args The object we are extracting values from + * @param name The name of the property we are getting. + * @param defaultValue An optional value to return if the property is missing + * from the object. If this is not specified and the property is missing, an + * error will be thrown. + */ +function getArg(aArgs, aName, aDefaultValue) { + if (aName in aArgs) { + return aArgs[aName]; + } else if (arguments.length === 3) { + return aDefaultValue; + } else { + throw new Error('"' + aName + '" is a required argument.'); + } +} +exports.getArg = getArg; + +var urlRegexp = /^(?:([\w+\-.]+):)?\/\/(?:(\w+:\w+)@)?([\w.-]*)(?::(\d+))?(.*)$/; +var dataUrlRegexp = /^data:.+\,.+$/; + +function urlParse(aUrl) { + var match = aUrl.match(urlRegexp); + if (!match) { + return null; + } + return { + scheme: match[1], + auth: match[2], + host: match[3], + port: match[4], + path: match[5] + }; +} +exports.urlParse = urlParse; + +function urlGenerate(aParsedUrl) { + var url = ''; + if (aParsedUrl.scheme) { + url += aParsedUrl.scheme + ':'; + } + url += '//'; + if (aParsedUrl.auth) { + url += aParsedUrl.auth + '@'; + } + if (aParsedUrl.host) { + url += aParsedUrl.host; + } + if (aParsedUrl.port) { + url += ":" + aParsedUrl.port + } + if (aParsedUrl.path) { + url += aParsedUrl.path; + } + return url; +} +exports.urlGenerate = urlGenerate; + +var MAX_CACHED_INPUTS = 32; + +/** + * Takes some function `f(input) -> result` and returns a memoized version of + * `f`. + * + * We keep at most `MAX_CACHED_INPUTS` memoized results of `f` alive. The + * memoization is a dumb-simple, linear least-recently-used cache. + */ +function lruMemoize(f) { + var cache = []; + + return function(input) { + for (var i = 0; i < cache.length; i++) { + if (cache[i].input === input) { + var temp = cache[0]; + cache[0] = cache[i]; + cache[i] = temp; + return cache[0].result; + } + } + + var result = f(input); + + cache.unshift({ + input, + result, + }); + + if (cache.length > MAX_CACHED_INPUTS) { + cache.pop(); + } + + return result; + }; +} + +/** + * Normalizes a path, or the path portion of a URL: + * + * - Replaces consecutive slashes with one slash. + * - Removes unnecessary '.' parts. + * - Removes unnecessary '<dir>/..' parts. + * + * Based on code in the Node.js 'path' core module. + * + * @param aPath The path or url to normalize. + */ +var normalize = lruMemoize(function normalize(aPath) { + var path = aPath; + var url = urlParse(aPath); + if (url) { + if (!url.path) { + return aPath; + } + path = url.path; + } + var isAbsolute = exports.isAbsolute(path); + // Split the path into parts between `/` characters. This is much faster than + // using `.split(/\/+/g)`. + var parts = []; + var start = 0; + var i = 0; + while (true) { + start = i; + i = path.indexOf("/", start); + if (i === -1) { + parts.push(path.slice(start)); + break; + } else { + parts.push(path.slice(start, i)); + while (i < path.length && path[i] === "/") { + i++; + } + } + } + + for (var part, up = 0, i = parts.length - 1; i >= 0; i--) { + part = parts[i]; + if (part === '.') { + parts.splice(i, 1); + } else if (part === '..') { + up++; + } else if (up > 0) { + if (part === '') { + // The first part is blank if the path is absolute. Trying to go + // above the root is a no-op. Therefore we can remove all '..' parts + // directly after the root. + parts.splice(i + 1, up); + up = 0; + } else { + parts.splice(i, 2); + up--; + } + } + } + path = parts.join('/'); + + if (path === '') { + path = isAbsolute ? '/' : '.'; + } + + if (url) { + url.path = path; + return urlGenerate(url); + } + return path; +}); +exports.normalize = normalize; + +/** + * Joins two paths/URLs. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be joined with the root. + * + * - If aPath is a URL or a data URI, aPath is returned, unless aPath is a + * scheme-relative URL: Then the scheme of aRoot, if any, is prepended + * first. + * - Otherwise aPath is a path. If aRoot is a URL, then its path portion + * is updated with the result and aRoot is returned. Otherwise the result + * is returned. + * - If aPath is absolute, the result is aPath. + * - Otherwise the two paths are joined with a slash. + * - Joining for example 'http://' and 'www.example.com' is also supported. + */ +function join(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + if (aPath === "") { + aPath = "."; + } + var aPathUrl = urlParse(aPath); + var aRootUrl = urlParse(aRoot); + if (aRootUrl) { + aRoot = aRootUrl.path || '/'; + } + + // `join(foo, '//www.example.org')` + if (aPathUrl && !aPathUrl.scheme) { + if (aRootUrl) { + aPathUrl.scheme = aRootUrl.scheme; + } + return urlGenerate(aPathUrl); + } + + if (aPathUrl || aPath.match(dataUrlRegexp)) { + return aPath; + } + + // `join('http://', 'www.example.com')` + if (aRootUrl && !aRootUrl.host && !aRootUrl.path) { + aRootUrl.host = aPath; + return urlGenerate(aRootUrl); + } + + var joined = aPath.charAt(0) === '/' + ? aPath + : normalize(aRoot.replace(/\/+$/, '') + '/' + aPath); + + if (aRootUrl) { + aRootUrl.path = joined; + return urlGenerate(aRootUrl); + } + return joined; +} +exports.join = join; + +exports.isAbsolute = function (aPath) { + return aPath.charAt(0) === '/' || urlRegexp.test(aPath); +}; + +/** + * Make a path relative to a URL or another path. + * + * @param aRoot The root path or URL. + * @param aPath The path or URL to be made relative to aRoot. + */ +function relative(aRoot, aPath) { + if (aRoot === "") { + aRoot = "."; + } + + aRoot = aRoot.replace(/\/$/, ''); + + // It is possible for the path to be above the root. In this case, simply + // checking whether the root is a prefix of the path won't work. Instead, we + // need to remove components from the root one by one, until either we find + // a prefix that fits, or we run out of components to remove. + var level = 0; + while (aPath.indexOf(aRoot + '/') !== 0) { + var index = aRoot.lastIndexOf("/"); + if (index < 0) { + return aPath; + } + + // If the only part of the root that is left is the scheme (i.e. http://, + // file:///, etc.), one or more slashes (/), or simply nothing at all, we + // have exhausted all components, so the path is not relative to the root. + aRoot = aRoot.slice(0, index); + if (aRoot.match(/^([^\/]+:\/)?\/*$/)) { + return aPath; + } + + ++level; + } + + // Make sure we add a "../" for each component we removed from the root. + return Array(level + 1).join("../") + aPath.substr(aRoot.length + 1); +} +exports.relative = relative; + +var supportsNullProto = (function () { + var obj = Object.create(null); + return !('__proto__' in obj); +}()); + +function identity (s) { + return s; +} + +/** + * Because behavior goes wacky when you set `__proto__` on objects, we + * have to prefix all the strings in our set with an arbitrary character. + * + * See https://github.com/mozilla/source-map/pull/31 and + * https://github.com/mozilla/source-map/issues/30 + * + * @param String aStr + */ +function toSetString(aStr) { + if (isProtoString(aStr)) { + return '$' + aStr; + } + + return aStr; +} +exports.toSetString = supportsNullProto ? identity : toSetString; + +function fromSetString(aStr) { + if (isProtoString(aStr)) { + return aStr.slice(1); + } + + return aStr; +} +exports.fromSetString = supportsNullProto ? identity : fromSetString; + +function isProtoString(s) { + if (!s) { + return false; + } + + var length = s.length; + + if (length < 9 /* "__proto__".length */) { + return false; + } + + if (s.charCodeAt(length - 1) !== 95 /* '_' */ || + s.charCodeAt(length - 2) !== 95 /* '_' */ || + s.charCodeAt(length - 3) !== 111 /* 'o' */ || + s.charCodeAt(length - 4) !== 116 /* 't' */ || + s.charCodeAt(length - 5) !== 111 /* 'o' */ || + s.charCodeAt(length - 6) !== 114 /* 'r' */ || + s.charCodeAt(length - 7) !== 112 /* 'p' */ || + s.charCodeAt(length - 8) !== 95 /* '_' */ || + s.charCodeAt(length - 9) !== 95 /* '_' */) { + return false; + } + + for (var i = length - 10; i >= 0; i--) { + if (s.charCodeAt(i) !== 36 /* '$' */) { + return false; + } + } + + return true; +} + +/** + * Comparator between two mappings where the original positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same original source/line/column, but different generated + * line and column the same. Useful when searching for a mapping with a + * stubbed out mapping. + */ +function compareByOriginalPositions(mappingA, mappingB, onlyCompareOriginal) { + var cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositions = compareByOriginalPositions; + +function compareByOriginalPositionsNoSource(mappingA, mappingB, onlyCompareOriginal) { + var cmp + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0 || onlyCompareOriginal) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByOriginalPositionsNoSource = compareByOriginalPositionsNoSource; + +/** + * Comparator between two mappings with deflated source and name indices where + * the generated positions are compared. + * + * Optionally pass in `true` as `onlyCompareGenerated` to consider two + * mappings with the same generated line and column, but different + * source/name/original line and column the same. Useful when searching for a + * mapping with a stubbed out mapping. + */ +function compareByGeneratedPositionsDeflated(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflated = compareByGeneratedPositionsDeflated; + +function compareByGeneratedPositionsDeflatedNoLine(mappingA, mappingB, onlyCompareGenerated) { + var cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0 || onlyCompareGenerated) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsDeflatedNoLine = compareByGeneratedPositionsDeflatedNoLine; + +function strcmp(aStr1, aStr2) { + if (aStr1 === aStr2) { + return 0; + } + + if (aStr1 === null) { + return 1; // aStr2 !== null + } + + if (aStr2 === null) { + return -1; // aStr1 !== null + } + + if (aStr1 > aStr2) { + return 1; + } + + return -1; +} + +/** + * Comparator between two mappings with inflated source and name strings where + * the generated positions are compared. + */ +function compareByGeneratedPositionsInflated(mappingA, mappingB) { + var cmp = mappingA.generatedLine - mappingB.generatedLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.generatedColumn - mappingB.generatedColumn; + if (cmp !== 0) { + return cmp; + } + + cmp = strcmp(mappingA.source, mappingB.source); + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalLine - mappingB.originalLine; + if (cmp !== 0) { + return cmp; + } + + cmp = mappingA.originalColumn - mappingB.originalColumn; + if (cmp !== 0) { + return cmp; + } + + return strcmp(mappingA.name, mappingB.name); +} +exports.compareByGeneratedPositionsInflated = compareByGeneratedPositionsInflated; + +/** + * Strip any JSON XSSI avoidance prefix from the string (as documented + * in the source maps specification), and then parse the string as + * JSON. + */ +function parseSourceMapInput(str) { + return JSON.parse(str.replace(/^\)]}'[^\n]*\n/, '')); +} +exports.parseSourceMapInput = parseSourceMapInput; + +/** + * Compute the URL of a source given the the source root, the source's + * URL, and the source map's URL. + */ +function computeSourceURL(sourceRoot, sourceURL, sourceMapURL) { + sourceURL = sourceURL || ''; + + if (sourceRoot) { + // This follows what Chrome does. + if (sourceRoot[sourceRoot.length - 1] !== '/' && sourceURL[0] !== '/') { + sourceRoot += '/'; + } + // The spec says: + // Line 4: An optional source root, useful for relocating source + // files on a server or removing repeated values in the + // “sources” entry. This value is prepended to the individual + // entries in the “source” field. + sourceURL = sourceRoot + sourceURL; + } + + // Historically, SourceMapConsumer did not take the sourceMapURL as + // a parameter. This mode is still somewhat supported, which is why + // this code block is conditional. However, it's preferable to pass + // the source map URL to SourceMapConsumer, so that this function + // can implement the source URL resolution algorithm as outlined in + // the spec. This block is basically the equivalent of: + // new URL(sourceURL, sourceMapURL).toString() + // ... except it avoids using URL, which wasn't available in the + // older releases of node still supported by this library. + // + // The spec says: + // If the sources are not absolute URLs after prepending of the + // “sourceRoot”, the sources are resolved relative to the + // SourceMap (like resolving script src in a html document). + if (sourceMapURL) { + var parsed = urlParse(sourceMapURL); + if (!parsed) { + throw new Error("sourceMapURL could not be parsed"); + } + if (parsed.path) { + // Strip the last path component, but keep the "/". + var index = parsed.path.lastIndexOf('/'); + if (index >= 0) { + parsed.path = parsed.path.substring(0, index + 1); + } + } + sourceURL = join(urlGenerate(parsed), sourceURL); + } + + return normalize(sourceURL); +} +exports.computeSourceURL = computeSourceURL; diff --git a/cli/app/node_modules/source-map-js/package.json b/cli/app/node_modules/source-map-js/package.json new file mode 100644 index 00000000000..f58dbeb4eca --- /dev/null +++ b/cli/app/node_modules/source-map-js/package.json @@ -0,0 +1,71 @@ +{ + "name": "source-map-js", + "description": "Generates and consumes source maps", + "version": "1.2.1", + "homepage": "https://github.com/7rulnik/source-map-js", + "author": "Valentin 7rulnik Semirulnik <v7rulnik@gmail.com>", + "contributors": [ + "Nick Fitzgerald <nfitzgerald@mozilla.com>", + "Tobias Koppers <tobias.koppers@googlemail.com>", + "Duncan Beevers <duncan@dweebd.com>", + "Stephen Crane <scrane@mozilla.com>", + "Ryan Seddon <seddon.ryan@gmail.com>", + "Miles Elam <miles.elam@deem.com>", + "Mihai Bazon <mihai.bazon@gmail.com>", + "Michael Ficarra <github.public.email@michael.ficarra.me>", + "Todd Wolfson <todd@twolfson.com>", + "Alexander Solovyov <alexander@solovyov.net>", + "Felix Gnass <fgnass@gmail.com>", + "Conrad Irwin <conrad.irwin@gmail.com>", + "usrbincc <usrbincc@yahoo.com>", + "David Glasser <glasser@davidglasser.net>", + "Chase Douglas <chase@newrelic.com>", + "Evan Wallace <evan.exe@gmail.com>", + "Heather Arthur <fayearthur@gmail.com>", + "Hugh Kennedy <hughskennedy@gmail.com>", + "David Glasser <glasser@davidglasser.net>", + "Simon Lydell <simon.lydell@gmail.com>", + "Jmeas Smith <jellyes2@gmail.com>", + "Michael Z Goddard <mzgoddard@gmail.com>", + "azu <azu@users.noreply.github.com>", + "John Gozde <john@gozde.ca>", + "Adam Kirkton <akirkton@truefitinnovation.com>", + "Chris Montgomery <christopher.montgomery@dowjones.com>", + "J. Ryan Stinnett <jryans@gmail.com>", + "Jack Herrington <jherrington@walmartlabs.com>", + "Chris Truter <jeffpalentine@gmail.com>", + "Daniel Espeset <daniel@danielespeset.com>", + "Jamie Wong <jamie.lf.wong@gmail.com>", + "Eddy Bruël <ejpbruel@mozilla.com>", + "Hawken Rives <hawkrives@gmail.com>", + "Gilad Peleg <giladp007@gmail.com>", + "djchie <djchie.dev@gmail.com>", + "Gary Ye <garysye@gmail.com>", + "Nicolas Lalevée <nicolas.lalevee@hibnet.org>" + ], + "repository": "7rulnik/source-map-js", + "main": "./source-map.js", + "files": [ + "source-map.js", + "source-map.d.ts", + "lib/" + ], + "engines": { + "node": ">=0.10.0" + }, + "license": "BSD-3-Clause", + "scripts": { + "test": "npm run build && node test/run-tests.js", + "build": "webpack --color", + "toc": "doctoc --title '## Table of Contents' README.md && doctoc --title '## Table of Contents' CONTRIBUTING.md" + }, + "devDependencies": { + "clean-publish": "^3.1.0", + "doctoc": "^0.15.0", + "webpack": "^1.12.0" + }, + "clean-publish": { + "cleanDocs": true + }, + "typings": "source-map.d.ts" +} diff --git a/cli/app/node_modules/source-map-js/source-map.js b/cli/app/node_modules/source-map-js/source-map.js new file mode 100644 index 00000000000..bc88fe820c8 --- /dev/null +++ b/cli/app/node_modules/source-map-js/source-map.js @@ -0,0 +1,8 @@ +/* + * Copyright 2009-2011 Mozilla Foundation and contributors + * Licensed under the New BSD license. See LICENSE.txt or: + * http://opensource.org/licenses/BSD-3-Clause + */ +exports.SourceMapGenerator = require('./lib/source-map-generator').SourceMapGenerator; +exports.SourceMapConsumer = require('./lib/source-map-consumer').SourceMapConsumer; +exports.SourceNode = require('./lib/source-node').SourceNode; diff --git a/cli/app/node_modules/styled-jsx/dist/index/index.js b/cli/app/node_modules/styled-jsx/dist/index/index.js new file mode 100644 index 00000000000..190dd18359e --- /dev/null +++ b/cli/app/node_modules/styled-jsx/dist/index/index.js @@ -0,0 +1,499 @@ +require('client-only'); +var React = require('react'); + +function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; } + +var React__default = /*#__PURE__*/_interopDefaultLegacy(React); + +/* +Based on Glamor's sheet +https://github.com/threepointone/glamor/blob/667b480d31b3721a905021b26e1290ce92ca2879/src/sheet.js +*/ function _defineProperties(target, props) { + for(var i = 0; i < props.length; i++){ + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } +} +function _createClass(Constructor, protoProps, staticProps) { + if (protoProps) _defineProperties(Constructor.prototype, protoProps); + if (staticProps) _defineProperties(Constructor, staticProps); + return Constructor; +} +var isProd = typeof process !== "undefined" && process.env && process.env.NODE_ENV === "production"; +var isString = function(o) { + return Object.prototype.toString.call(o) === "[object String]"; +}; +var StyleSheet = /*#__PURE__*/ function() { + function StyleSheet(param) { + var ref = param === void 0 ? {} : param, _name = ref.name, name = _name === void 0 ? "stylesheet" : _name, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? isProd : _optimizeForSpeed; + invariant$1(isString(name), "`name` must be a string"); + this._name = name; + this._deletedRulePlaceholder = "#" + name + "-deleted-rule____{}"; + invariant$1(typeof optimizeForSpeed === "boolean", "`optimizeForSpeed` must be a boolean"); + this._optimizeForSpeed = optimizeForSpeed; + this._serverSheet = undefined; + this._tags = []; + this._injected = false; + this._rulesCount = 0; + var node = typeof window !== "undefined" && document.querySelector('meta[property="csp-nonce"]'); + this._nonce = node ? node.getAttribute("content") : null; + } + var _proto = StyleSheet.prototype; + _proto.setOptimizeForSpeed = function setOptimizeForSpeed(bool) { + invariant$1(typeof bool === "boolean", "`setOptimizeForSpeed` accepts a boolean"); + invariant$1(this._rulesCount === 0, "optimizeForSpeed cannot be when rules have already been inserted"); + this.flush(); + this._optimizeForSpeed = bool; + this.inject(); + }; + _proto.isOptimizeForSpeed = function isOptimizeForSpeed() { + return this._optimizeForSpeed; + }; + _proto.inject = function inject() { + var _this = this; + invariant$1(!this._injected, "sheet already injected"); + this._injected = true; + if (typeof window !== "undefined" && this._optimizeForSpeed) { + this._tags[0] = this.makeStyleTag(this._name); + this._optimizeForSpeed = "insertRule" in this.getSheet(); + if (!this._optimizeForSpeed) { + if (!isProd) { + console.warn("StyleSheet: optimizeForSpeed mode not supported falling back to standard mode."); + } + this.flush(); + this._injected = true; + } + return; + } + this._serverSheet = { + cssRules: [], + insertRule: function(rule, index) { + if (typeof index === "number") { + _this._serverSheet.cssRules[index] = { + cssText: rule + }; + } else { + _this._serverSheet.cssRules.push({ + cssText: rule + }); + } + return index; + }, + deleteRule: function(index) { + _this._serverSheet.cssRules[index] = null; + } + }; + }; + _proto.getSheetForTag = function getSheetForTag(tag) { + if (tag.sheet) { + return tag.sheet; + } + // this weirdness brought to you by firefox + for(var i = 0; i < document.styleSheets.length; i++){ + if (document.styleSheets[i].ownerNode === tag) { + return document.styleSheets[i]; + } + } + }; + _proto.getSheet = function getSheet() { + return this.getSheetForTag(this._tags[this._tags.length - 1]); + }; + _proto.insertRule = function insertRule(rule, index) { + invariant$1(isString(rule), "`insertRule` accepts only strings"); + if (typeof window === "undefined") { + if (typeof index !== "number") { + index = this._serverSheet.cssRules.length; + } + this._serverSheet.insertRule(rule, index); + return this._rulesCount++; + } + if (this._optimizeForSpeed) { + var sheet = this.getSheet(); + if (typeof index !== "number") { + index = sheet.cssRules.length; + } + // this weirdness for perf, and chrome's weird bug + // https://stackoverflow.com/questions/20007992/chrome-suddenly-stopped-accepting-insertrule + try { + sheet.insertRule(rule, index); + } catch (error) { + if (!isProd) { + console.warn("StyleSheet: illegal rule: \n\n" + rule + "\n\nSee https://stackoverflow.com/q/20007992 for more info"); + } + return -1; + } + } else { + var insertionPoint = this._tags[index]; + this._tags.push(this.makeStyleTag(this._name, rule, insertionPoint)); + } + return this._rulesCount++; + }; + _proto.replaceRule = function replaceRule(index, rule) { + if (this._optimizeForSpeed || typeof window === "undefined") { + var sheet = typeof window !== "undefined" ? this.getSheet() : this._serverSheet; + if (!rule.trim()) { + rule = this._deletedRulePlaceholder; + } + if (!sheet.cssRules[index]) { + // @TBD Should we throw an error? + return index; + } + sheet.deleteRule(index); + try { + sheet.insertRule(rule, index); + } catch (error) { + if (!isProd) { + console.warn("StyleSheet: illegal rule: \n\n" + rule + "\n\nSee https://stackoverflow.com/q/20007992 for more info"); + } + // In order to preserve the indices we insert a deleteRulePlaceholder + sheet.insertRule(this._deletedRulePlaceholder, index); + } + } else { + var tag = this._tags[index]; + invariant$1(tag, "old rule at index `" + index + "` not found"); + tag.textContent = rule; + } + return index; + }; + _proto.deleteRule = function deleteRule(index) { + if (typeof window === "undefined") { + this._serverSheet.deleteRule(index); + return; + } + if (this._optimizeForSpeed) { + this.replaceRule(index, ""); + } else { + var tag = this._tags[index]; + invariant$1(tag, "rule at index `" + index + "` not found"); + tag.parentNode.removeChild(tag); + this._tags[index] = null; + } + }; + _proto.flush = function flush() { + this._injected = false; + this._rulesCount = 0; + if (typeof window !== "undefined") { + this._tags.forEach(function(tag) { + return tag && tag.parentNode.removeChild(tag); + }); + this._tags = []; + } else { + // simpler on server + this._serverSheet.cssRules = []; + } + }; + _proto.cssRules = function cssRules() { + var _this = this; + if (typeof window === "undefined") { + return this._serverSheet.cssRules; + } + return this._tags.reduce(function(rules, tag) { + if (tag) { + rules = rules.concat(Array.prototype.map.call(_this.getSheetForTag(tag).cssRules, function(rule) { + return rule.cssText === _this._deletedRulePlaceholder ? null : rule; + })); + } else { + rules.push(null); + } + return rules; + }, []); + }; + _proto.makeStyleTag = function makeStyleTag(name, cssString, relativeToTag) { + if (cssString) { + invariant$1(isString(cssString), "makeStyleTag accepts only strings as second parameter"); + } + var tag = document.createElement("style"); + if (this._nonce) tag.setAttribute("nonce", this._nonce); + tag.type = "text/css"; + tag.setAttribute("data-" + name, ""); + if (cssString) { + tag.appendChild(document.createTextNode(cssString)); + } + var head = document.head || document.getElementsByTagName("head")[0]; + if (relativeToTag) { + head.insertBefore(tag, relativeToTag); + } else { + head.appendChild(tag); + } + return tag; + }; + _createClass(StyleSheet, [ + { + key: "length", + get: function get() { + return this._rulesCount; + } + } + ]); + return StyleSheet; +}(); +function invariant$1(condition, message) { + if (!condition) { + throw new Error("StyleSheet: " + message + "."); + } +} + +function hash(str) { + var _$hash = 5381, i = str.length; + while(i){ + _$hash = _$hash * 33 ^ str.charCodeAt(--i); + } + /* JavaScript does bitwise operations (like XOR, above) on 32-bit signed + * integers. Since we want the results to be always positive, convert the + * signed int to an unsigned by doing an unsigned bitshift. */ return _$hash >>> 0; +} +var stringHash = hash; + +var sanitize = function(rule) { + return rule.replace(/\/style/gi, "\\/style"); +}; +var cache = {}; +/** + * computeId + * + * Compute and memoize a jsx id from a basedId and optionally props. + */ function computeId(baseId, props) { + if (!props) { + return "jsx-" + baseId; + } + var propsToString = String(props); + var key = baseId + propsToString; + if (!cache[key]) { + cache[key] = "jsx-" + stringHash(baseId + "-" + propsToString); + } + return cache[key]; +} +/** + * computeSelector + * + * Compute and memoize dynamic selectors. + */ function computeSelector(id, css) { + var selectoPlaceholderRegexp = /__jsx-style-dynamic-selector/g; + // Sanitize SSR-ed CSS. + // Client side code doesn't need to be sanitized since we use + // document.createTextNode (dev) and the CSSOM api sheet.insertRule (prod). + if (typeof window === "undefined") { + css = sanitize(css); + } + var idcss = id + css; + if (!cache[idcss]) { + cache[idcss] = css.replace(selectoPlaceholderRegexp, id); + } + return cache[idcss]; +} + +function mapRulesToStyle(cssRules, options) { + if (options === void 0) options = {}; + return cssRules.map(function(args) { + var id = args[0]; + var css = args[1]; + return /*#__PURE__*/ React__default["default"].createElement("style", { + id: "__" + id, + // Avoid warnings upon render with a key + key: "__" + id, + nonce: options.nonce ? options.nonce : undefined, + dangerouslySetInnerHTML: { + __html: css + } + }); + }); +} +var StyleSheetRegistry = /*#__PURE__*/ function() { + function StyleSheetRegistry(param) { + var ref = param === void 0 ? {} : param, _styleSheet = ref.styleSheet, styleSheet = _styleSheet === void 0 ? null : _styleSheet, _optimizeForSpeed = ref.optimizeForSpeed, optimizeForSpeed = _optimizeForSpeed === void 0 ? false : _optimizeForSpeed; + this._sheet = styleSheet || new StyleSheet({ + name: "styled-jsx", + optimizeForSpeed: optimizeForSpeed + }); + this._sheet.inject(); + if (styleSheet && typeof optimizeForSpeed === "boolean") { + this._sheet.setOptimizeForSpeed(optimizeForSpeed); + this._optimizeForSpeed = this._sheet.isOptimizeForSpeed(); + } + this._fromServer = undefined; + this._indices = {}; + this._instancesCounts = {}; + } + var _proto = StyleSheetRegistry.prototype; + _proto.add = function add(props) { + var _this = this; + if (undefined === this._optimizeForSpeed) { + this._optimizeForSpeed = Array.isArray(props.children); + this._sheet.setOptimizeForSpeed(this._optimizeForSpeed); + this._optimizeForSpeed = this._sheet.isOptimizeForSpeed(); + } + if (typeof window !== "undefined" && !this._fromServer) { + this._fromServer = this.selectFromServer(); + this._instancesCounts = Object.keys(this._fromServer).reduce(function(acc, tagName) { + acc[tagName] = 0; + return acc; + }, {}); + } + var ref = this.getIdAndRules(props), styleId = ref.styleId, rules = ref.rules; + // Deduping: just increase the instances count. + if (styleId in this._instancesCounts) { + this._instancesCounts[styleId] += 1; + return; + } + var indices = rules.map(function(rule) { + return _this._sheet.insertRule(rule); + })// Filter out invalid rules + .filter(function(index) { + return index !== -1; + }); + this._indices[styleId] = indices; + this._instancesCounts[styleId] = 1; + }; + _proto.remove = function remove(props) { + var _this = this; + var styleId = this.getIdAndRules(props).styleId; + invariant(styleId in this._instancesCounts, "styleId: `" + styleId + "` not found"); + this._instancesCounts[styleId] -= 1; + if (this._instancesCounts[styleId] < 1) { + var tagFromServer = this._fromServer && this._fromServer[styleId]; + if (tagFromServer) { + tagFromServer.parentNode.removeChild(tagFromServer); + delete this._fromServer[styleId]; + } else { + this._indices[styleId].forEach(function(index) { + return _this._sheet.deleteRule(index); + }); + delete this._indices[styleId]; + } + delete this._instancesCounts[styleId]; + } + }; + _proto.update = function update(props, nextProps) { + this.add(nextProps); + this.remove(props); + }; + _proto.flush = function flush() { + this._sheet.flush(); + this._sheet.inject(); + this._fromServer = undefined; + this._indices = {}; + this._instancesCounts = {}; + }; + _proto.cssRules = function cssRules() { + var _this = this; + var fromServer = this._fromServer ? Object.keys(this._fromServer).map(function(styleId) { + return [ + styleId, + _this._fromServer[styleId] + ]; + }) : []; + var cssRules = this._sheet.cssRules(); + return fromServer.concat(Object.keys(this._indices).map(function(styleId) { + return [ + styleId, + _this._indices[styleId].map(function(index) { + return cssRules[index].cssText; + }).join(_this._optimizeForSpeed ? "" : "\n") + ]; + })// filter out empty rules + .filter(function(rule) { + return Boolean(rule[1]); + })); + }; + _proto.styles = function styles(options) { + return mapRulesToStyle(this.cssRules(), options); + }; + _proto.getIdAndRules = function getIdAndRules(props) { + var css = props.children, dynamic = props.dynamic, id = props.id; + if (dynamic) { + var styleId = computeId(id, dynamic); + return { + styleId: styleId, + rules: Array.isArray(css) ? css.map(function(rule) { + return computeSelector(styleId, rule); + }) : [ + computeSelector(styleId, css) + ] + }; + } + return { + styleId: computeId(id), + rules: Array.isArray(css) ? css : [ + css + ] + }; + }; + /** + * selectFromServer + * + * Collects style tags from the document with id __jsx-XXX + */ _proto.selectFromServer = function selectFromServer() { + var elements = Array.prototype.slice.call(document.querySelectorAll('[id^="__jsx-"]')); + return elements.reduce(function(acc, element) { + var id = element.id.slice(2); + acc[id] = element; + return acc; + }, {}); + }; + return StyleSheetRegistry; +}(); +function invariant(condition, message) { + if (!condition) { + throw new Error("StyleSheetRegistry: " + message + "."); + } +} +var StyleSheetContext = /*#__PURE__*/ React.createContext(null); +StyleSheetContext.displayName = "StyleSheetContext"; +function createStyleRegistry() { + return new StyleSheetRegistry(); +} +function StyleRegistry(param) { + var configuredRegistry = param.registry, children = param.children; + var rootRegistry = React.useContext(StyleSheetContext); + var ref = React.useState(function() { + return rootRegistry || configuredRegistry || createStyleRegistry(); + }), registry = ref[0]; + return /*#__PURE__*/ React__default["default"].createElement(StyleSheetContext.Provider, { + value: registry + }, children); +} +function useStyleRegistry() { + return React.useContext(StyleSheetContext); +} + +// Opt-into the new `useInsertionEffect` API in React 18, fallback to `useLayoutEffect`. +// https://github.com/reactwg/react-18/discussions/110 +var useInsertionEffect = React__default["default"].useInsertionEffect || React__default["default"].useLayoutEffect; +var defaultRegistry = typeof window !== "undefined" ? createStyleRegistry() : undefined; +function JSXStyle(props) { + var registry = defaultRegistry ? defaultRegistry : useStyleRegistry(); + // If `registry` does not exist, we do nothing here. + if (!registry) { + return null; + } + if (typeof window === "undefined") { + registry.add(props); + return null; + } + useInsertionEffect(function() { + registry.add(props); + return function() { + registry.remove(props); + }; + // props.children can be string[], will be striped since id is identical + }, [ + props.id, + String(props.dynamic) + ]); + return null; +} +JSXStyle.dynamic = function(info) { + return info.map(function(tagInfo) { + var baseId = tagInfo[0]; + var props = tagInfo[1]; + return computeId(baseId, props); + }).join(" "); +}; + +exports.StyleRegistry = StyleRegistry; +exports.createStyleRegistry = createStyleRegistry; +exports.style = JSXStyle; +exports.useStyleRegistry = useStyleRegistry; diff --git a/cli/app/node_modules/styled-jsx/index.js b/cli/app/node_modules/styled-jsx/index.js new file mode 100644 index 00000000000..aae59039c19 --- /dev/null +++ b/cli/app/node_modules/styled-jsx/index.js @@ -0,0 +1 @@ +module.exports = require('./dist/index') diff --git a/cli/app/node_modules/styled-jsx/package.json b/cli/app/node_modules/styled-jsx/package.json new file mode 100644 index 00000000000..f7926c1309d --- /dev/null +++ b/cli/app/node_modules/styled-jsx/package.json @@ -0,0 +1,132 @@ +{ + "name": "styled-jsx", + "version": "5.1.6", + "license": "MIT", + "repository": "vercel/styled-jsx", + "description": "Full CSS support for JSX without compromises", + "files": [ + "dist", + "lib", + "global.d.ts", + "index.d.ts", + "index.js", + "babel.js", + "babel-test.js", + "style.js", + "style.d.ts", + "macro.js", + "macro.d.ts", + "css.js", + "css.d.ts", + "webpack.js", + "license.md" + ], + "typings": "./index.d.ts", + "scripts": { + "build-babel": "bunchee src/babel.js -f cjs -e babel-plugin-macros --runtime node -o dist/babel/index.js", + "build": "rm -rf dist && rm -rf out && yarn build-webpack && yarn build-index && yarn build-babel", + "build-webpack": "bunchee src/webpack.js -f cjs --runtime node -o dist/webpack/index.js", + "build-index": "bunchee src/index.js -f cjs --runtime node -o dist/index/index.js", + "test": "ava", + "test-types": "tsc --project tsconfig.json --noEmit", + "lint": "eslint ./src", + "format": "prettier --write \"./{src,test}/**/*.{js,css}\"", + "prepublishOnly": "yarn build && yarn test && yarn lint --quiet" + }, + "husky": { + "hooks": { + "pre-commit": "pretty-quick --staged" + } + }, + "ava": { + "require": [ + "@babel/register" + ] + }, + "eslintConfig": { + "env": { + "node": true, + "browser": true, + "es6": true + }, + "extends": [ + "eslint:recommended", + "prettier" + ], + "parserOptions": { + "ecmaVersion": 11, + "sourceType": "module" + }, + "rules": { + "no-empty": 0, + "capitalized-comments": 0, + "valid-jsdoc": 0, + "prefer-destructuring": 0, + "padding-line-between-statements": 0 + } + }, + "devDependencies": { + "@babel/cli": "7.18.10", + "@babel/core": "7.12.3", + "@babel/plugin-proposal-object-rest-spread": "7.12.1", + "@babel/plugin-syntax-jsx": "7.14.5", + "@babel/plugin-transform-arrow-functions": "7.12.1", + "@babel/plugin-transform-modules-commonjs": "7.12.1", + "@babel/plugin-transform-runtime": "7.12.1", + "@babel/preset-env": "7.12.1", + "@babel/preset-react": "7.12.5", + "@babel/register": "7.12.1", + "@babel/runtime": "7.12.5", + "@babel/types": "7.15.0", + "@types/react": "18.3.3", + "ava": "4.3.1", + "babel-plugin-macros": "2.8.0", + "bunchee": "2.1.5", + "convert-source-map": "1.7.0", + "eslint": "7.32.0", + "eslint-config-prettier": "4.0.0", + "husky": "4.3.0", + "loader-utils": "1.4.2", + "prettier": "1.16.4", + "pretty-quick": "3.1.0", + "react": "17.0.1", + "react-dom": "17.0.1", + "semantic-release": "17.2.2", + "source-map": "0.7.3", + "string-hash": "1.1.3", + "stylis": "3.5.4", + "stylis-rule-sheet": "0.0.10", + "typescript": "~5.0.0" + }, + "peerDependencies": { + "react": ">= 16.8.0 || 17.x.x || ^18.0.0-0 || ^19.0.0-0" + }, + "peerDependenciesMeta": { + "@babel/core": { + "optional": true + }, + "babel-plugin-macros": { + "optional": true + } + }, + "release": { + "branches": [ + "main", + "alpha", + "beta" + ] + }, + "engines": { + "node": ">= 12.0.0" + }, + "keywords": [ + "babel-plugin-macros", + "vercel", + "zeit", + "css-in-js", + "css" + ], + "dependencies": { + "client-only": "0.0.1" + } +} diff --git a/cli/app/node_modules/styled-jsx/style.js b/cli/app/node_modules/styled-jsx/style.js new file mode 100644 index 00000000000..db67e98b26c --- /dev/null +++ b/cli/app/node_modules/styled-jsx/style.js @@ -0,0 +1 @@ +module.exports = require('./dist/index').style diff --git a/cli/app/package.json b/cli/app/package.json new file mode 100644 index 00000000000..4851fc46a19 --- /dev/null +++ b/cli/app/package.json @@ -0,0 +1,53 @@ +{ + "name": "9router-app", + "version": "0.4.20", + "description": "9Router web dashboard", + "private": true, + "scripts": { + "dev": "next dev --webpack --port 20128", + "build": "NODE_ENV=production next build --webpack", + "start": "NODE_ENV=production next start", + "dev:bun": "bun --bun next dev --webpack --port 20128", + "build:bun": "NODE_ENV=production bun --bun next build --webpack", + "start:bun": "NODE_ENV=production bun ./.next/standalone/server.js" + }, + "dependencies": { + "@monaco-editor/react": "^4.7.0", + "@xyflow/react": "^12.10.1", + "bcryptjs": "^3.0.3", + "confbox": "^0.2.4", + "express": "^5.2.1", + "fs": "^0.0.1-security", + "http-proxy-middleware": "^3.0.5", + "jose": "^6.1.3", + "lowdb": "^7.0.1", + "marked": "^18.0.1", + "monaco-editor": "^0.55.1", + "next": "^16.1.6", + "node-forge": "^1.3.3", + "node-machine-id": "^1.1.12", + "open": "^11.0.0", + "ora": "^9.1.0", + "proper-lockfile": "^4.1.2", + "react": "19.2.4", + "react-dom": "19.2.4", + "react-is": "^16.13.1", + "recharts": "^3.7.0", + "selfsigned": "^5.5.0", + "socks-proxy-agent": "^8.0.5", + "sql.js": "^1.14.1", + "undici": "^7.19.2", + "uuid": "^13.0.0", + "zustand": "^5.0.10" + }, + "optionalDependencies": { + "better-sqlite3": "^12.6.2" + }, + "devDependencies": { + "@tailwindcss/postcss": "^4.1.18", + "eslint": "^9", + "eslint-config-next": "16.1.6", + "postcss": "^8.5.6", + "tailwindcss": "^4" + } +} diff --git a/cli/app/public/favicon.svg b/cli/app/public/favicon.svg new file mode 100644 index 00000000000..a72e45bef3c --- /dev/null +++ b/cli/app/public/favicon.svg @@ -0,0 +1,11 @@ +<svg width="32" height="32" viewBox="0 0 32 32" fill="none" xmlns="http://www.w3.org/2000/svg"> + <rect width="32" height="32" rx="6" fill="url(#gradient)"/> + <text x="16" y="24" font-family="system-ui, -apple-system, sans-serif" font-size="20" font-weight="700" fill="white" text-anchor="middle">9</text> + <defs> + <linearGradient id="gradient" x1="0" y1="0" x2="32" y2="32" gradientUnits="userSpaceOnUse"> + <stop stop-color="#f97815"/> + <stop offset="1" stop-color="#c2590a"/> + </linearGradient> + </defs> +</svg> + diff --git a/cli/app/public/file.svg b/cli/app/public/file.svg new file mode 100644 index 00000000000..004145cddf3 --- /dev/null +++ b/cli/app/public/file.svg @@ -0,0 +1 @@ +<svg fill="none" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg"><path d="M14.5 13.5V5.41a1 1 0 0 0-.3-.7L9.8.29A1 1 0 0 0 9.08 0H1.5v13.5A2.5 2.5 0 0 0 4 16h8a2.5 2.5 0 0 0 2.5-2.5m-1.5 0v-7H8v-5H3v12a1 1 0 0 0 1 1h8a1 1 0 0 0 1-1M9.5 5V2.12L12.38 5zM5.13 5h-.62v1.25h2.12V5zm-.62 3h7.12v1.25H4.5zm.62 3h-.62v1.25h7.12V11z" clip-rule="evenodd" fill="#666" fill-rule="evenodd"/></svg> \ No newline at end of file diff --git a/cli/app/public/globe.svg b/cli/app/public/globe.svg new file mode 100644 index 00000000000..567f17b0d7c --- /dev/null +++ b/cli/app/public/globe.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><g clip-path="url(#a)"><path fill-rule="evenodd" clip-rule="evenodd" d="M10.27 14.1a6.5 6.5 0 0 0 3.67-3.45q-1.24.21-2.7.34-.31 1.83-.97 3.1M8 16A8 8 0 1 0 8 0a8 8 0 0 0 0 16m.48-1.52a7 7 0 0 1-.96 0H7.5a4 4 0 0 1-.84-1.32q-.38-.89-.63-2.08a40 40 0 0 0 3.92 0q-.25 1.2-.63 2.08a4 4 0 0 1-.84 1.31zm2.94-4.76q1.66-.15 2.95-.43a7 7 0 0 0 0-2.58q-1.3-.27-2.95-.43a18 18 0 0 1 0 3.44m-1.27-3.54a17 17 0 0 1 0 3.64 39 39 0 0 1-4.3 0 17 17 0 0 1 0-3.64 39 39 0 0 1 4.3 0m1.1-1.17q1.45.13 2.69.34a6.5 6.5 0 0 0-3.67-3.44q.65 1.26.98 3.1M8.48 1.5l.01.02q.41.37.84 1.31.38.89.63 2.08a40 40 0 0 0-3.92 0q.25-1.2.63-2.08a4 4 0 0 1 .85-1.32 7 7 0 0 1 .96 0m-2.75.4a6.5 6.5 0 0 0-3.67 3.44 29 29 0 0 1 2.7-.34q.31-1.83.97-3.1M4.58 6.28q-1.66.16-2.95.43a7 7 0 0 0 0 2.58q1.3.27 2.95.43a18 18 0 0 1 0-3.44m.17 4.71q-1.45-.12-2.69-.34a6.5 6.5 0 0 0 3.67 3.44q-.65-1.27-.98-3.1" fill="#666"/></g><defs><clipPath id="a"><path fill="#fff" d="M0 0h16v16H0z"/></clipPath></defs></svg> \ No newline at end of file diff --git a/cli/app/public/i18n/literals/ar.json b/cli/app/public/i18n/literals/ar.json new file mode 100644 index 00000000000..21cfab4cbc5 --- /dev/null +++ b/cli/app/public/i18n/literals/ar.json @@ -0,0 +1,196 @@ +{ + "Cancel": "إلغاء", + "Delete": "حذف", + "Edit": "تحرير", + "Save": "حفظ", + "Close": "إغلاق", + "Add": "إضافة", + "Remove": "إزالة", + "Settings": "الإعدادات", + "Profile": "الملف الشخصي", + "Dashboard": "لوحة التحكم", + "Logout": "تسجيل الخروج", + "Login": "تسجيل الدخول", + "Providers": "الموفرون", + "Usage": "الاستخدام", + "API Key": "مفتاح API", + "Connected": "متصل", + "Disconnected": "غير متصل", + "Active": "نشط", + "Inactive": "غير نشط", + "Success": "نجح", + "Failed": "فشل", + "Error": "خطأ", + "Warning": "تحذير", + "Info": "معلومات", + "Loading": "جاري التحميل", + "Search": "بحث", + "Filter": "تصفية", + "Sort": "ترتيب", + "Export": "تصدير", + "Import": "استيراد", + "Refresh": "تحديث", + "Back": "رجوع", + "Next": "التالي", + "Previous": "السابق", + "Submit": "إرسال", + "Confirm": "تأكيد", + "Yes": "نعم", + "No": "لا", + "OK": "حسنا", + "Apply": "تطبيق", + "Reset": "إعادة تعيين", + "Clear": "مسح", + "Select": "تحديد", + "Upload": "تحميل", + "Download": "تنزيل", + "Copy": "نسخ", + "Paste": "لصق", + "Cut": "قص", + "Undo": "تراجع", + "Redo": "إعادة", + "Name": "الاسم", + "Description": "الوصف", + "Status": "الحالة", + "Type": "النوع", + "Date": "التاريخ", + "Time": "الوقت", + "Created": "تم إنشاء", + "Updated": "تم التحديث", + "Actions": "الإجراءات", + "Details": "التفاصيل", + "View": "عرض", + "New": "جديد", + "Total": "الإجمالي", + "Count": "العدد", + "Price": "السعر", + "Cost": "التكلفة", + "Free": "مجاني", + "Paid": "مدفوع", + "Enable": "تفعيل", + "Disable": "تعطيل", + "Enabled": "مفعل", + "Disabled": "معطل", + "Online": "متصل", + "Offline": "غير متصل", + "Available": "متاح", + "Unavailable": "غير متاح", + "Required": "مطلوب", + "Optional": "اختياري", + "Default": "افتراضي", + "Custom": "مخصص", + "Advanced": "متقدم", + "Basic": "أساسي", + "Help": "مساعدة", + "Support": "دعم", + "Documentation": "التوثيق", + "Version": "الإصدار", + "Language": "اللغة", + "Theme": "المظهر", + "Light": "فاتح", + "Dark": "داكن", + "Auto": "تلقائي", + "Endpoint": "نقطة نهاية", + "Providers": "الموفرون", + "Combos": "تراكيب", + "Usage": "الإحصائيات", + "Quota Tracker": "متتبع الحصة", + "MITM": "MITM", + "CLI Tools": "أدوات CLI", + "Console Log": "سجل وحدة التحكم", + "System": "النظام", + "Debug": "تصحيح", + "Shutdown": "إيقاف", + "Close Proxy": "إغلاق الوكيل", + "Are you sure you want to close the proxy server?": "هل أنت متأكد من أنك تريد إغلاق خادم الوكيل؟", + "Server Disconnected": "خادم غير متصل", + "The proxy server has been stopped.": "تم إيقاف خادم الوكيل.", + "Reload Page": "إعادة تحميل الصفحة", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "الخدمة تعمل في المحطة الطرفية. يمكنك إغلاق صفحة الويب هذه. سيؤدي الإيقاف إلى إيقاف الخدمة.", + "Manage your AI provider connections": "إدارة اتصالات موفر الذكاء الاصطناعي الخاصة بك", + "Model combos with fallback": "تراكيب النموذج مع الخيار البديل", + "Monitor your API usage, token consumption, and request logs": "راقب استخدام API وتناول الرموز وسجلات الطلب", + "Intercept CLI tool traffic and route through 9Router": "اعترض حركة مرور أداة CLI وحجم من خلال 9Router", + "Configure CLI tools": "تكوين أدوات CLI", + "API endpoint configuration": "تكوين نقطة نهاية API", + "Manage your preferences": "إدارة تفضيلاتك", + "Debug translation flow between formats": "تصحيح تدفق الترجمة بين الصيغ", + "Live server console output": "مخرجات وحدة التحكم على الخادم المباشر", + "Create model combos with fallback support": "إنشاء تراكيب نموذج مع دعم الخيار البديل", + "Local Mode": "الوضع المحلي", + "Running on your machine": "يعمل على جهازك", + "Database Location": "موقع قاعدة البيانات", + "Download Backup": "تنزيل النسخة الاحتياطية", + "Import Backup": "استيراد النسخة الاحتياطية", + "Database backup downloaded": "تم تنزيل النسخة الاحتياطية لقاعدة البيانات", + "Database imported successfully": "تم استيراد قاعدة البيانات بنجاح", + "Security": "الأمان", + "Require login": "يتطلب تسجيل الدخول", + "When ON, dashboard requires password. When OFF, access without login.": "عند التشغيل، يتطلب لوحة التحكم كلمة مرور. عند الإيقاف، الوصول بدون تسجيل دخول.", + "Current Password": "كلمة المرور الحالية", + "Enter current password": "أدخل كلمة المرور الحالية", + "New Password": "كلمة مرور جديدة", + "Enter new password": "أدخل كلمة مرور جديدة", + "Confirm New Password": "تأكيد كلمة المرور الجديدة", + "Confirm new password": "تأكيد كلمة المرور الجديدة", + "Update Password": "تحديث كلمة المرور", + "Set Password": "تعيين كلمة المرور", + "Password updated successfully": "تم تحديث كلمة المرور بنجاح", + "Passwords do not match": "كلمات المرور لا تتطابق", + "Routing Strategy": "استراتيجية التوجيه", + "Round Robin": "جولة روبن", + "Cycle through accounts to distribute load": "الدوران عبر الحسابات لتوزيع الحمل", + "Sticky Limit": "حد لزج", + "Calls per account before switching": "المكالمات لكل حساب قبل التبديل", + "Network": "الشبكة", + "Outbound Proxy": "وكيل الخروج", + "Enable proxy for OAuth + provider outbound requests.": "تفعيل الوكيل لطلبات OAuth + الخروج من الموفر.", + "Proxy URL": "عنوان URL الوكيل", + "Leave empty to inherit existing env proxy (if any).": "اترك فارغًا لوراثة وكيل env الموجود (إن وجد).", + "No Proxy": "لا يوجد وكيل", + "Comma-separated hostnames/domains to bypass the proxy.": "أسماء المضيفين/النطاقات المفصولة بفواصل لتجاوز الوكيل.", + "Test proxy URL": "اختبر عنوان URL الوكيل", + "Apply": "تطبيق", + "Proxy settings applied": "تم تطبيق إعدادات الوكيل", + "Proxy enabled": "الوكيل مفعل", + "Proxy disabled": "الوكيل معطل", + "Proxy test OK": "اختبار الوكيل حسنا", + "Proxy test failed": "فشل اختبار الوكيل", + "Please enter a Proxy URL to test": "يرجى إدخال عنوان URL الوكيل للاختبار", + "Observability": "القابلية للمراقبة", + "Enable Observability": "تفعيل القابلية للمراقبة", + "Turn request detail recording on/off globally": "تشغيل/إيقاف تسجيل تفاصيل الطلب بشكل عام", + "Max Records": "أقصى عدد من السجلات", + "Maximum request detail records to keep (older records are auto-deleted)": "الحد الأقصى من سجلات تفاصيل الطلب للاحتفاظ بها (يتم حذف السجلات الأقدم تلقائيًا)", + "Batch Size": "حجم الدفعة", + "Number of items to accumulate before writing to database (higher = better performance)": "عدد العناصر المراد تجميعها قبل الكتابة إلى قاعدة البيانات (أعلى = أداء أفضل)", + "Flush Interval (ms)": "فترة المسح (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "الحد الأقصى للانتظار قبل مسح المخزن المؤقت (يمنع فقدان البيانات أثناء الحركة المنخفضة)", + "Max JSON Size (KB)": "أقصى حجم JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "الحد الأقصى لحجم كل حقل JSON (الطلب/الرد) قبل القطع", + "All data stored on your machine": "جميع البيانات المخزنة على جهازك", + "MITM Server": "خادم MITM", + "Running": "يجري", + "Stopped": "متوقف", + "Cert": "شهادة", + "Server": "الخادم", + "Purpose:": "الغرض:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "استخدم Antigravity IDE و GitHub Copilot → مع أي موفر/نموذج من 9Router", + "How it works:": "كيف يعمل:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "طلب Antigravity/Copilot IDE → إعادة توجيه DNS إلى localhost:443 → يعترض وكيل MITM → 9Router → الرد إلى Antigravity/Copilot", + "API Key": "مفتاح API", + "No API keys — create one in Keys page": "لا توجد مفاتيح API — قم بإنشاء واحدة في صفحة المفاتيح", + "sk_9router (default)": "sk_9router (افتراضي)", + "Server started": "تم بدء الخادم", + "Failed to start server": "فشل في بدء الخادم", + "Server stopped — all DNS cleared": "تم إيقاف الخادم — تم مسح جميع DNS", + "Failed to stop server": "فشل في إيقاف الخادم", + "Sudo password is required": "كلمة مرور sudo مطلوبة", + "Stop Server": "إيقاف الخادم", + "Start Server": "بدء الخادم", + "Enable DNS per tool below to activate interception": "قم بتفعيل DNS لكل أداة أدناه لتفعيل الاعتراض", + "Sudo Password Required": "كلمة مرور Sudo مطلوبة", + "Enter your sudo password to start/stop MITM server": "أدخل كلمة مرور sudo للبدء/الإيقاف من خادم MITM", + "Sudo Password": "كلمة مرور Sudo", + "Confirm": "تأكيد" +} diff --git a/cli/app/public/i18n/literals/bn.json b/cli/app/public/i18n/literals/bn.json new file mode 100644 index 00000000000..a18aaa3ee39 --- /dev/null +++ b/cli/app/public/i18n/literals/bn.json @@ -0,0 +1,196 @@ +{ + "Cancel": "বাতিল করুন", + "Delete": "মুছুন", + "Edit": "সম্পাদনা করুন", + "Save": "সংরক্ষণ করুন", + "Close": "বন্ধ করুন", + "Add": "যোগ করুন", + "Remove": "সরান", + "Settings": "সেটিংস", + "Profile": "প্রোফাইল", + "Dashboard": "ড্যাশবোর্ড", + "Logout": "লগ আউট", + "Login": "লগ ইন", + "Providers": "সরবরাহকারী", + "Usage": "ব্যবহার", + "API Key": "API কী", + "Connected": "সংযুক্ত", + "Disconnected": "বিচ্ছিন্ন", + "Active": "সক্রিয়", + "Inactive": "নিষ্ক্রিয়", + "Success": "সফল", + "Failed": "ব্যর্থ", + "Error": "ত্রুটি", + "Warning": "সতর্কতা", + "Info": "তথ্য", + "Loading": "লোড হচ্ছে", + "Search": "অনুসন্ধান করুন", + "Filter": "ফিল্টার", + "Sort": "সাজান", + "Export": "রপ্তানি করুন", + "Import": "আমদানি করুন", + "Refresh": "রিফ্রেশ করুন", + "Back": "ফিরে যান", + "Next": "পরবর্তী", + "Previous": "পূর্ববর্তী", + "Submit": "জমা দিন", + "Confirm": "নিশ্চিত করুন", + "Yes": "হ্যাঁ", + "No": "না", + "OK": "ঠিক আছে", + "Apply": "প্রয়োগ করুন", + "Reset": "পুনরায় সেট করুন", + "Clear": "সাফ করুন", + "Select": "নির্বাচন করুন", + "Upload": "আপলোড করুন", + "Download": "ডাউনলোড করুন", + "Copy": "অনুলিপি করুন", + "Paste": "পেস্ট করুন", + "Cut": "কাটুন", + "Undo": "পূর্বাবস্থায় ফিরিয়ে আনুন", + "Redo": "পুনরায় করুন", + "Name": "নাম", + "Description": "বর্ণনা", + "Status": "অবস্থা", + "Type": "ধরন", + "Date": "তারিখ", + "Time": "সময়", + "Created": "তৈরি করা হয়েছে", + "Updated": "আপডেট করা হয়েছে", + "Actions": "পদক্ষেপ", + "Details": "বিশদ", + "View": "দেখুন", + "New": "নতুন", + "Total": "মোট", + "Count": "গণনা", + "Price": "দাম", + "Cost": "খরচ", + "Free": "বিনামূল্যে", + "Paid": "পেইড", + "Enable": "সক্ষম করুন", + "Disable": "অক্ষম করুন", + "Enabled": "সক্ষম", + "Disabled": "অক্ষম", + "Online": "অনলাইন", + "Offline": "অফলাইন", + "Available": "উপলব্ধ", + "Unavailable": "অনুপলব্ধ", + "Required": "প্রয়োজনীয়", + "Optional": "ঐচ্ছিক", + "Default": "ডিফল্ট", + "Custom": "কাস্টম", + "Advanced": "উন্নত", + "Basic": "মৌলিক", + "Help": "সহায়তা", + "Support": "সহায়তা", + "Documentation": "ডকুমেন্টেশন", + "Version": "সংস্করণ", + "Language": "ভাষা", + "Theme": "থিম", + "Light": "হালকা", + "Dark": "গাঢ়", + "Auto": "স্বয়ংক্রিয়", + "Endpoint": "এন্ডপয়েন্ট", + "Providers": "সরবরাহকারী", + "Combos": "কম্বো", + "Usage": "ব্যবহারের পরিসংখ্যান", + "Quota Tracker": "কোটা ট্র্যাকার", + "MITM": "MITM", + "CLI Tools": "সরঞ্জাম", + "Console Log": "কনসোল লগ", + "System": "সিস্টেম", + "Debug": "ডিবাগ", + "Shutdown": "বন্ধ করুন", + "Close Proxy": "প্রক্সি বন্ধ করুন", + "Are you sure you want to close the proxy server?": "আপনি কি নিশ্চিত যে আপনি প্রক্সি সার্ভার বন্ধ করতে চান?", + "Server Disconnected": "সার্ভার সংযোগ বিচ্ছিন্ন", + "The proxy server has been stopped.": "প্রক্সি সার্ভার বন্ধ করা হয়েছে।", + "Reload Page": "পৃষ্ঠা পুনরায় লোড করুন", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "সেবা টার্মিনালে চলছে। আপনি এই ওয়েব পৃষ্ঠাটি বন্ধ করতে পারেন। শাটডাউন সেবা বন্ধ করবে।", + "Manage your AI provider connections": "আপনার AI সরবরাহকারী সংযোগ পরিচালনা করুন", + "Model combos with fallback": "ফলব্যাক সহ মডেল কম্বো", + "Monitor your API usage, token consumption, and request logs": "আপনার API ব্যবহার, টোকেন খরচ এবং অনুরোধ লগ পর্যবেক্ষণ করুন", + "Intercept CLI tool traffic and route through 9Router": "CLI টুল ট্রাফিক ইন্টারসেপ্ট করুন এবং 9Router এর মাধ্যমে রুট করুন", + "Configure CLI tools": "CLI সরঞ্জাম কনফিগার করুন", + "API endpoint configuration": "API এন্ডপয়েন্ট কনফিগারেশন", + "Manage your preferences": "আপনার পছন্দগুলি পরিচালনা করুন", + "Debug translation flow between formats": "ফর্ম্যাটগুলির মধ্যে অনুবাদ প্রবাহ ডিবাগ করুন", + "Live server console output": "লাইভ সার্ভার কনসোল আউটপুট", + "Create model combos with fallback support": "ফলব্যাক সমর্থন সহ মডেল কম্বো তৈরি করুন", + "Local Mode": "স্থানীয় মোড", + "Running on your machine": "আপনার মেশিনে চলছে", + "Database Location": "ডাটাবেস অবস্থান", + "Download Backup": "ব্যাকআপ ডাউনলোড করুন", + "Import Backup": "ব্যাকআপ আমদানি করুন", + "Database backup downloaded": "ডাটাবেস ব্যাকআপ ডাউনলোড করা হয়েছে", + "Database imported successfully": "ডাটাবেস সফলভাবে আমদানি করা হয়েছে", + "Security": "নিরাপত্তা", + "Require login": "লগইন প্রয়োজন", + "When ON, dashboard requires password. When OFF, access without login.": "চালু থাকলে, ড্যাশবোর্ড পাসওয়ার্ড প্রয়োজন। বন্ধ থাকলে, লগইন ছাড়াই অ্যাক্সেস করুন।", + "Current Password": "বর্তমান পাসওয়ার্ড", + "Enter current password": "বর্তমান পাসওয়ার্ড প্রবেশ করুন", + "New Password": "নতুন পাসওয়ার্ড", + "Enter new password": "নতুন পাসওয়ার্ড প্রবেশ করুন", + "Confirm New Password": "নতুন পাসওয়ার্ড নিশ্চিত করুন", + "Confirm new password": "নতুন পাসওয়ার্ড নিশ্চিত করুন", + "Update Password": "পাসওয়ার্ড আপডেট করুন", + "Set Password": "পাসওয়ার্ড সেট করুন", + "Password updated successfully": "পাসওয়ার্ড সফলভাবে আপডেট করা হয়েছে", + "Passwords do not match": "পাসওয়ার্ড মেলে না", + "Routing Strategy": "রাউটিং কৌশল", + "Round Robin": "রাউন্ড রবিন", + "Cycle through accounts to distribute load": "লোড বিতরণের জন্য অ্যাকাউন্টগুলির মধ্য দিয়ে চক্র", + "Sticky Limit": "স্টিকি সীমা", + "Calls per account before switching": "স্যুইচিংয়ের আগে অ্যাকাউন্ট প্রতি কল", + "Network": "নেটওয়ার্ক", + "Outbound Proxy": "আউটবাউন্ড প্রক্সি", + "Enable proxy for OAuth + provider outbound requests.": "OAuth + সরবরাহকারী আউটবাউন্ড অনুরোধের জন্য প্রক্সি সক্ষম করুন।", + "Proxy URL": "প্রক্সি URL", + "Leave empty to inherit existing env proxy (if any).": "বিদ্যমান env প্রক্সি উত্তরাধিকার করতে খালি রেখে দিন (থাকলে)।", + "No Proxy": "কোন প্রক্সি নেই", + "Comma-separated hostnames/domains to bypass the proxy.": "প্রক্সি বাইপাস করার জন্য কমা-পৃথক হোস্টনাম/ডোমেইন।", + "Test proxy URL": "প্রক্সি URL পরীক্ষা করুন", + "Apply": "প্রয়োগ করুন", + "Proxy settings applied": "প্রক্সি সেটিংস প্রয়োগ করা হয়েছে", + "Proxy enabled": "প্রক্সি সক্ষম", + "Proxy disabled": "প্রক্সি অক্ষম", + "Proxy test OK": "প্রক্সি পরীক্ষা ঠিক আছে", + "Proxy test failed": "প্রক্সি পরীক্ষা ব্যর্থ", + "Please enter a Proxy URL to test": "পরীক্ষার জন্য দয়া করে একটি প্রক্সি URL প্রবেশ করুন", + "Observability": "পর্যবেক্ষণযোগ্যতা", + "Enable Observability": "পর্যবেক্ষণযোগ্যতা সক্ষম করুন", + "Turn request detail recording on/off globally": "অনুরোধ বিস্তারিত রেকর্ডিং বিশ্বব্যাপী চালু/বন্ধ করুন", + "Max Records": "সর্বাধিক রেকর্ড", + "Maximum request detail records to keep (older records are auto-deleted)": "রাখার জন্য সর্বাধিক অনুরোধ বিস্তারিত রেকর্ড (পুরানো রেকর্ড স্বয়ংক্রিয়ভাবে মুছে যায়)", + "Batch Size": "ব্যাচ আকার", + "Number of items to accumulate before writing to database (higher = better performance)": "ডাটাবেসে লেখার আগে জমা করার জন্য আইটেমের সংখ্যা (উচ্চতর = ভাল কর্মক্ষমতা)", + "Flush Interval (ms)": "ফ্লাশ ইন্টারভাল (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "বাফার ফ্লাশ করার আগে অপেক্ষা করার সর্বাধিক সময় (কম ট্রাফিক সময় ডেটা হারানো প্রতিরোধ করে)", + "Max JSON Size (KB)": "সর্বাধিক JSON আকার (KB)", + "Maximum size for each JSON field (request/response) before truncation": "ট্রাঙ্কেশনের আগে প্রতিটি JSON ফিল্ডের সর্বাধিক আকার (অনুরোধ/প্রতিক্রিয়া)", + "All data stored on your machine": "সমস্ত ডেটা আপনার মেশিনে সংরক্ষিত", + "MITM Server": "MITM সার্ভার", + "Running": "চলছে", + "Stopped": "বন্ধ", + "Cert": "সার্টিফিকেট", + "Server": "সার্ভার", + "Purpose:": "উদ্দেশ্য:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE এবং GitHub Copilot ব্যবহার করুন → 9Router থেকে যেকোনো সরবরাহকারী/মডেলের সাথে", + "How it works:": "এটি কীভাবে কাজ করে:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE অনুরোধ → DNS কে localhost:443 তে রিডিরেক্ট করুন → MITM প্রক্সি ইন্টারসেপ্ট করে → 9Router → Antigravity/Copilot এ প্রতিক্রিয়া", + "API Key": "API কী", + "No API keys — create one in Keys page": "কোন API কী নেই — Keys পৃষ্ঠায় একটি তৈরি করুন", + "sk_9router (default)": "sk_9router (ডিফল্ট)", + "Server started": "সার্ভার শুরু হয়েছে", + "Failed to start server": "সার্ভার শুরু করতে ব্যর্থ", + "Server stopped — all DNS cleared": "সার্ভার বন্ধ — সমস্ত DNS সাফ করা হয়েছে", + "Failed to stop server": "সার্ভার বন্ধ করতে ব্যর্থ", + "Sudo password is required": "Sudo পাসওয়ার্ড প্রয়োজন", + "Stop Server": "সার্ভার বন্ধ করুন", + "Start Server": "সার্ভার শুরু করুন", + "Enable DNS per tool below to activate interception": "ইন্টারসেপশন সক্রিয় করতে নীচে প্রতিটি সরঞ্জামের জন্য DNS সক্ষম করুন", + "Sudo Password Required": "Sudo পাসওয়ার্ড প্রয়োজন", + "Enter your sudo password to start/stop MITM server": "MITM সার্ভার শুরু/বন্ধ করতে আপনার sudo পাসওয়ার্ড প্রবেশ করুন", + "Sudo Password": "Sudo পাসওয়ার্ড", + "Confirm": "নিশ্চিত করুন" +} diff --git a/cli/app/public/i18n/literals/cs.json b/cli/app/public/i18n/literals/cs.json new file mode 100644 index 00000000000..5feab11a1bd --- /dev/null +++ b/cli/app/public/i18n/literals/cs.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Zrušit", + "Delete": "Smazat", + "Edit": "Upravit", + "Save": "Uložit", + "Close": "Zavřít", + "Add": "Přidat", + "Remove": "Odebrat", + "Settings": "Nastavení", + "Profile": "Profil", + "Dashboard": "Řídicí panel", + "Logout": "Odhlásit se", + "Login": "Přihlásit se", + "Providers": "Poskytovatelé", + "Usage": "Použití", + "API Key": "Klíč API", + "Connected": "Připojeno", + "Disconnected": "Odpojeno", + "Active": "Aktivní", + "Inactive": "Neaktivní", + "Success": "Úspěch", + "Failed": "Selhalo", + "Error": "Chyba", + "Warning": "Upozornění", + "Info": "Informace", + "Loading": "Načítání", + "Search": "Hledání", + "Filter": "Filtr", + "Sort": "Řazení", + "Export": "Exportovat", + "Import": "Importovat", + "Refresh": "Aktualizovat", + "Back": "Zpět", + "Next": "Další", + "Previous": "Předchozí", + "Submit": "Odeslat", + "Confirm": "Potvrdit", + "Yes": "Ano", + "No": "Ne", + "OK": "OK", + "Apply": "Aplikovat", + "Reset": "Obnovit", + "Clear": "Vymazat", + "Select": "Vybrat", + "Upload": "Nahrát", + "Download": "Stáhnout", + "Copy": "Kopírovat", + "Paste": "Vložit", + "Cut": "Vyjmout", + "Undo": "Vrátit zpět", + "Redo": "Znovu", + "Name": "Název", + "Description": "Popis", + "Status": "Stav", + "Type": "Typ", + "Date": "Datum", + "Time": "Čas", + "Created": "Vytvořeno", + "Updated": "Aktualizováno", + "Actions": "Akce", + "Details": "Podrobnosti", + "View": "Zobrazit", + "New": "Nový", + "Total": "Celkem", + "Count": "Počet", + "Price": "Cena", + "Cost": "Náklady", + "Free": "Zdarma", + "Paid": "Placené", + "Enable": "Povolit", + "Disable": "Zakázat", + "Enabled": "Povoleno", + "Disabled": "Zakázáno", + "Online": "Online", + "Offline": "Offline", + "Available": "K dispozici", + "Unavailable": "Není k dispozici", + "Required": "Povinné", + "Optional": "Volitelné", + "Default": "Výchozí", + "Custom": "Vlastní", + "Advanced": "Pokročilé", + "Basic": "Základní", + "Help": "Pomoc", + "Support": "Podpora", + "Documentation": "Dokumentace", + "Version": "Verze", + "Language": "Jazyk", + "Theme": "Motiv", + "Light": "Světlý", + "Dark": "Tmavý", + "Auto": "Automaticky", + "Endpoint": "Koncový bod", + "Providers": "Poskytovatelé", + "Combos": "Kombinace", + "Usage": "Statistika", + "Quota Tracker": "Sledování kvót", + "MITM": "MITM", + "CLI Tools": "Nástroje CLI", + "Console Log": "Protokol konzole", + "System": "Systém", + "Debug": "Ladění", + "Shutdown": "Vypnutí", + "Close Proxy": "Zavřít proxy", + "Are you sure you want to close the proxy server?": "Opravdu chcete zavřít proxy server?", + "Server Disconnected": "Server odpojen", + "The proxy server has been stopped.": "Proxy server byl zastaven.", + "Reload Page": "Obnovit stránku", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Služba běží v terminálu. Tuto webovou stránku si můžete zavřít. Vypnutí zastaví službu.", + "Manage your AI provider connections": "Spravujte svá připojení poskytovatele AI", + "Model combos with fallback": "Kombinace modelů s zálohou", + "Monitor your API usage, token consumption, and request logs": "Monitorujte použití API, spotřebu tokenů a protokoly žádostí", + "Intercept CLI tool traffic and route through 9Router": "Zachycujte provoz nástrojů CLI a směrujte jej přes 9Router", + "Configure CLI tools": "Konfigurace nástrojů CLI", + "API endpoint configuration": "Konfigurace koncového bodu API", + "Manage your preferences": "Spravujte své preferences", + "Debug translation flow between formats": "Ladění toku překladu mezi formáty", + "Live server console output": "Výstup konzole serveru v přímém čase", + "Create model combos with fallback support": "Vytvářejte kombinace modelů s podporou zálohy", + "Local Mode": "Místní režim", + "Running on your machine": "Běží na vašem počítači", + "Database Location": "Umístění databáze", + "Download Backup": "Stáhnout zálohu", + "Import Backup": "Importovat zálohu", + "Database backup downloaded": "Záloha databáze stažena", + "Database imported successfully": "Databáze byla úspěšně importována", + "Security": "Bezpečnost", + "Require login": "Vyžadovat přihlášení", + "When ON, dashboard requires password. When OFF, access without login.": "Když je ZAPNUTO, řídicí panel vyžaduje heslo. Když je VYPNUTO, přístup bez přihlášení.", + "Current Password": "Aktuální heslo", + "Enter current password": "Zadejte aktuální heslo", + "New Password": "Nové heslo", + "Enter new password": "Zadejte nové heslo", + "Confirm New Password": "Potvrzení nového hesla", + "Confirm new password": "Potvrďte nové heslo", + "Update Password": "Aktualizovat heslo", + "Set Password": "Nastavit heslo", + "Password updated successfully": "Heslo bylo úspěšně aktualizováno", + "Passwords do not match": "Hesla se neshodují", + "Routing Strategy": "Strategie směrování", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Procházejte účty pro distribuci zátěže", + "Sticky Limit": "Lepkavý limit", + "Calls per account before switching": "Volání na účet před přepnutím", + "Network": "Síť", + "Outbound Proxy": "Odchozí proxy", + "Enable proxy for OAuth + provider outbound requests.": "Povolte proxy pro OAuth + odchozí požadavky poskytovatele.", + "Proxy URL": "URL proxy", + "Leave empty to inherit existing env proxy (if any).": "Ponechte prázdné pro dědění existujícího env proxy (pokud existuje).", + "No Proxy": "Bez proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Čárkou oddělené názvy hostitelů/domény pro obejití proxy.", + "Test proxy URL": "Testovat URL proxy", + "Apply": "Aplikovat", + "Proxy settings applied": "Nastavení proxy aplikováno", + "Proxy enabled": "Proxy povolena", + "Proxy disabled": "Proxy zakázána", + "Proxy test OK": "Test proxy OK", + "Proxy test failed": "Test proxy se nezdařil", + "Please enter a Proxy URL to test": "Zadejte prosím URL proxy k testování", + "Observability": "Pozorovatelnost", + "Enable Observability": "Povolit pozorovatelnost", + "Turn request detail recording on/off globally": "Zapnutí/vypnutí záznamů podrobností požadavku globálně", + "Max Records": "Maximální počet záznamů", + "Maximum request detail records to keep (older records are auto-deleted)": "Maximální počet záznamů o podrobnostech požadavku k uchování (starší záznamy se automaticky odstraňují)", + "Batch Size": "Velikost dávky", + "Number of items to accumulate before writing to database (higher = better performance)": "Počet položek k hromadění před zápisem do databáze (vyšší = lepší výkon)", + "Flush Interval (ms)": "Interval vyprazdňování (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maximální čas čekání před vyprazdněním vyrovnávací paměti (zabraňuje ztrátě dat při nízkém provozu)", + "Max JSON Size (KB)": "Maximální velikost JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maximální velikost každého pole JSON (požadavek/odpověď) před zkrácením", + "All data stored on your machine": "Všechna data jsou uložena na vašem počítači", + "MITM Server": "Server MITM", + "Running": "Běžící", + "Stopped": "Zastaveno", + "Cert": "Certifikát", + "Server": "Server", + "Purpose:": "Účel:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Použijte Antigravity IDE a GitHub Copilot → s JAKÝMKOLIV poskytovatelem/modelem z 9Router", + "How it works:": "Jak to funguje:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Požadavek Antigravity/Copilot IDE → Přesměrování DNS na localhost:443 → Proxy MITM zachycuje → 9Router → odpověď na Antigravity/Copilot", + "API Key": "Klíč API", + "No API keys — create one in Keys page": "Žádné klíče API — vytvořte jeden na stránce Klíče", + "sk_9router (default)": "sk_9router (výchozí)", + "Server started": "Server spuštěn", + "Failed to start server": "Spuštění serveru se nezdařilo", + "Server stopped — all DNS cleared": "Server zastaven — veškerý DNS vymazán", + "Failed to stop server": "Zastavení serveru se nezdařilo", + "Sudo password is required": "Je vyžadováno heslo sudo", + "Stop Server": "Zastavit server", + "Start Server": "Spustit server", + "Enable DNS per tool below to activate interception": "Povolte DNS pro každý nástroj níže a aktivujte zachycování", + "Sudo Password Required": "Je vyžadováno heslo Sudo", + "Enter your sudo password to start/stop MITM server": "Zadejte heslo sudo pro spuštění/zastavení serveru MITM", + "Sudo Password": "Heslo sudo", + "Confirm": "Potvrdit" +} diff --git a/cli/app/public/i18n/literals/da.json b/cli/app/public/i18n/literals/da.json new file mode 100644 index 00000000000..3c04bf7ff26 --- /dev/null +++ b/cli/app/public/i18n/literals/da.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Annuller", + "Delete": "Slet", + "Edit": "Rediger", + "Save": "Gem", + "Close": "Luk", + "Add": "Tilføj", + "Remove": "Fjern", + "Settings": "Indstillinger", + "Profile": "Profil", + "Dashboard": "Kontrolpanel", + "Logout": "Log ud", + "Login": "Log ind", + "Providers": "Udbydere", + "Usage": "Forbrug", + "API Key": "API-nøgle", + "Connected": "Forbundet", + "Disconnected": "Afbrudt", + "Active": "Aktiv", + "Inactive": "Inaktiv", + "Success": "Succes", + "Failed": "Mislykket", + "Error": "Fejl", + "Warning": "Advarsel", + "Info": "Info", + "Loading": "Indlæser", + "Search": "Søg", + "Filter": "Filter", + "Sort": "Sorter", + "Export": "Eksporter", + "Import": "Importer", + "Refresh": "Opdater", + "Back": "Tilbage", + "Next": "Næste", + "Previous": "Forrige", + "Submit": "Indsend", + "Confirm": "Bekræft", + "Yes": "Ja", + "No": "Nej", + "OK": "OK", + "Apply": "Anvend", + "Reset": "Nulstil", + "Clear": "Ryd", + "Select": "Vælg", + "Upload": "Upload", + "Download": "Download", + "Copy": "Kopier", + "Paste": "Indsæt", + "Cut": "Klip", + "Undo": "Fortryd", + "Redo": "Gentag", + "Name": "Navn", + "Description": "Beskrivelse", + "Status": "Status", + "Type": "Type", + "Date": "Dato", + "Time": "Tid", + "Created": "Oprettet", + "Updated": "Opdateret", + "Actions": "Handlinger", + "Details": "Detaljer", + "View": "Vis", + "New": "Ny", + "Total": "Total", + "Count": "Antal", + "Price": "Pris", + "Cost": "Omkostning", + "Free": "Gratis", + "Paid": "Betalt", + "Enable": "Aktivér", + "Disable": "Deaktivér", + "Enabled": "Aktiveret", + "Disabled": "Deaktiveret", + "Online": "Online", + "Offline": "Offline", + "Available": "Tilgængelig", + "Unavailable": "Ikke tilgængelig", + "Required": "Påkrævet", + "Optional": "Valgfrit", + "Default": "Standard", + "Custom": "Brugerdefineret", + "Advanced": "Avanceret", + "Basic": "Grundlæggende", + "Help": "Hjælp", + "Support": "Support", + "Documentation": "Dokumentation", + "Version": "Version", + "Language": "Sprog", + "Theme": "Tema", + "Light": "Lys", + "Dark": "Mørk", + "Auto": "Automatisk", + "Endpoint": "Slutpunkt", + "Providers": "Udbydere", + "Combos": "Kombinationer", + "Usage": "Forbrugsstatistik", + "Quota Tracker": "Kvotetracker", + "MITM": "MITM", + "CLI Tools": "Værktøjer", + "Console Log": "Konsollog", + "System": "System", + "Debug": "Debug", + "Shutdown": "Luk af", + "Close Proxy": "Luk proxy", + "Are you sure you want to close the proxy server?": "Er du sikker på, at du vil lukke proxyserveren?", + "Server Disconnected": "Server afbrudt", + "The proxy server has been stopped.": "Proxyserveren er blevet stoppet.", + "Reload Page": "Genindlæs siden", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Tjenesten kører i terminalen. Du kan lukke denne webside. Aflukning stopper tjenesten.", + "Manage your AI provider connections": "Administrer dine AI-udbyderforbindelser", + "Model combos with fallback": "Modelkombinationer med fallback", + "Monitor your API usage, token consumption, and request logs": "Overvåg dit API-forbrug, tokenforbrugning og anmodningslogger", + "Intercept CLI tool traffic and route through 9Router": "Aflyt CLI-værktøj trafikk og rute gennem 9Router", + "Configure CLI tools": "Konfigurer CLI-værktøjer", + "API endpoint configuration": "API-slutpunktkonfiguration", + "Manage your preferences": "Administrer dine præferencer", + "Debug translation flow between formats": "Debug oversættelsesflow mellem formater", + "Live server console output": "Live serverkonsoloutput", + "Create model combos with fallback support": "Opret modelkombinationer med fallback-understøttelse", + "Local Mode": "Lokalt tilstand", + "Running on your machine": "Kørende på din maskine", + "Database Location": "Databaseplacering", + "Download Backup": "Download sikkerhedskopi", + "Import Backup": "Importer sikkerhedskopi", + "Database backup downloaded": "Databasesikkerhedskopi downloadet", + "Database imported successfully": "Database importeret med succes", + "Security": "Sikkerhed", + "Require login": "Kræv login", + "When ON, dashboard requires password. When OFF, access without login.": "Når TIL kræves adgangskode på kontrolpanelet. Når FRA tillades adgang uden login.", + "Current Password": "Nuværende adgangskode", + "Enter current password": "Indtast nuværende adgangskode", + "New Password": "Ny adgangskode", + "Enter new password": "Indtast ny adgangskode", + "Confirm New Password": "Bekræft ny adgangskode", + "Confirm new password": "Bekræft ny adgangskode", + "Update Password": "Opdater adgangskode", + "Set Password": "Indstil adgangskode", + "Password updated successfully": "Adgangskode opdateret med succes", + "Passwords do not match": "Adgangskoderne stemmer ikke overens", + "Routing Strategy": "Rutestrategi", + "Round Robin": "Rundetabel", + "Cycle through accounts to distribute load": "Cyklus gennem konti for at distribuere belastningen", + "Sticky Limit": "Klæbrig grænse", + "Calls per account before switching": "Opkald pr. konto før skift", + "Network": "Netværk", + "Outbound Proxy": "Udgående proxy", + "Enable proxy for OAuth + provider outbound requests.": "Aktivér proxy til OAuth + udbyder udgående anmodninger.", + "Proxy URL": "Proxy-URL", + "Leave empty to inherit existing env proxy (if any).": "Lad være tomt for at nedarve eksisterende env-proxy (hvis nogen).", + "No Proxy": "Ingen proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Kommaseparerede værtsnavne/domæner for at omgå proxyen.", + "Test proxy URL": "Test proxy-URL", + "Apply": "Anvend", + "Proxy settings applied": "Proxyindstillinger anvendt", + "Proxy enabled": "Proxy aktiveret", + "Proxy disabled": "Proxy deaktiveret", + "Proxy test OK": "Proxy-test OK", + "Proxy test failed": "Proxy-test mislykket", + "Please enter a Proxy URL to test": "Indtast en proxy-URL til test", + "Observability": "Observerbarhed", + "Enable Observability": "Aktivér observerbarhed", + "Turn request detail recording on/off globally": "Slå anmodningsdetaljeoptagelse til/fra globalt", + "Max Records": "Max-poster", + "Maximum request detail records to keep (older records are auto-deleted)": "Maksimum anmodningsdetaljeposter at beholde (ældre poster bliver automatisk slettet)", + "Batch Size": "Batch-størrelse", + "Number of items to accumulate before writing to database (higher = better performance)": "Antal elementer der skal akkumuleres før skrivning til database (højere = bedre ydeevne)", + "Flush Interval (ms)": "Flush-interval (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maksimal ventetid før bufferrensing (forhindrer datatab ved lavt trafikk)", + "Max JSON Size (KB)": "Max JSON-størrelse (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maksimal størrelse for hvert JSON-felt (anmodning/svar) før afkortning", + "All data stored on your machine": "Alle data lagret på din maskine", + "MITM Server": "MITM-server", + "Running": "Kørende", + "Stopped": "Stoppet", + "Cert": "Certifikat", + "Server": "Server", + "Purpose:": "Formål:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Brug Antigravity IDE & GitHub Copilot → med ENHVER udbyder/model fra 9Router", + "How it works:": "Sådan virker det:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-anmodning → DNS-omdirigering til localhost:443 → MITM-proxy aflytter → 9Router → svar til Antigravity/Copilot", + "API Key": "API-nøgle", + "No API keys — create one in Keys page": "Ingen API-nøgler — opret en på Keys-siden", + "sk_9router (default)": "sk_9router (standard)", + "Server started": "Server startet", + "Failed to start server": "Fejl ved start af server", + "Server stopped — all DNS cleared": "Server stoppet — alle DNS slettet", + "Failed to stop server": "Fejl ved stopning af server", + "Sudo password is required": "Sudo-adgangskode er påkrævet", + "Stop Server": "Stop server", + "Start Server": "Start server", + "Enable DNS per tool below to activate interception": "Aktivér DNS for hvert værktøj nedenfor for at aktivere aflytning", + "Sudo Password Required": "Sudo-adgangskode påkrævet", + "Enter your sudo password to start/stop MITM server": "Indtast din sudo-adgangskode for at starte/stoppe MITM-server", + "Sudo Password": "Sudo-adgangskode", + "Confirm": "Bekræft" +} diff --git a/cli/app/public/i18n/literals/de.json b/cli/app/public/i18n/literals/de.json new file mode 100644 index 00000000000..30a0baee0e2 --- /dev/null +++ b/cli/app/public/i18n/literals/de.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Abbrechen", + "Delete": "Löschen", + "Edit": "Bearbeiten", + "Save": "Speichern", + "Close": "Schließen", + "Add": "Hinzufügen", + "Remove": "Entfernen", + "Settings": "Einstellungen", + "Profile": "Profil", + "Dashboard": "Dashboard", + "Logout": "Abmelden", + "Login": "Anmelden", + "Providers": "Anbieter", + "Usage": "Verwendung", + "API Key": "API-Schlüssel", + "Connected": "Verbunden", + "Disconnected": "Getrennt", + "Active": "Aktiv", + "Inactive": "Inaktiv", + "Success": "Erfolg", + "Failed": "Fehlgeschlagen", + "Error": "Fehler", + "Warning": "Warnung", + "Info": "Info", + "Loading": "Wird geladen", + "Search": "Suche", + "Filter": "Filtern", + "Sort": "Sortieren", + "Export": "Exportieren", + "Import": "Importieren", + "Refresh": "Aktualisieren", + "Back": "Zurück", + "Next": "Weiter", + "Previous": "Zurück", + "Submit": "Absenden", + "Confirm": "Bestätigen", + "Yes": "Ja", + "No": "Nein", + "OK": "OK", + "Apply": "Anwenden", + "Reset": "Zurücksetzen", + "Clear": "Löschen", + "Select": "Wählen", + "Upload": "Hochladen", + "Download": "Herunterladen", + "Copy": "Kopieren", + "Paste": "Einfügen", + "Cut": "Ausschneiden", + "Undo": "Rückgängig", + "Redo": "Wiederherstellen", + "Name": "Name", + "Description": "Beschreibung", + "Status": "Status", + "Type": "Typ", + "Date": "Datum", + "Time": "Uhrzeit", + "Created": "Erstellt", + "Updated": "Aktualisiert", + "Actions": "Aktionen", + "Details": "Details", + "View": "Anzeigen", + "New": "Neu", + "Total": "Gesamt", + "Count": "Anzahl", + "Price": "Preis", + "Cost": "Kosten", + "Free": "Kostenlos", + "Paid": "Bezahlt", + "Enable": "Aktivieren", + "Disable": "Deaktivieren", + "Enabled": "Aktiviert", + "Disabled": "Deaktiviert", + "Online": "Online", + "Offline": "Offline", + "Available": "Verfügbar", + "Unavailable": "Nicht verfügbar", + "Required": "Erforderlich", + "Optional": "Optional", + "Default": "Standard", + "Custom": "Benutzerdefiniert", + "Advanced": "Erweitert", + "Basic": "Grundlagen", + "Help": "Hilfe", + "Support": "Unterstützung", + "Documentation": "Dokumentation", + "Version": "Version", + "Language": "Sprache", + "Theme": "Design", + "Light": "Hell", + "Dark": "Dunkel", + "Auto": "Automatisch", + "Endpoint": "Endpunkt", + "Providers": "Anbieter", + "Combos": "Kombinationen", + "Usage": "Statistiken", + "Quota Tracker": "Kontingenttracker", + "MITM": "MITM", + "CLI Tools": "CLI-Tools", + "Console Log": "Konsolenprotokoll", + "System": "System", + "Debug": "Debuggen", + "Shutdown": "Herunterfahren", + "Close Proxy": "Proxy schließen", + "Are you sure you want to close the proxy server?": "Möchten Sie den Proxy-Server wirklich schließen?", + "Server Disconnected": "Server getrennt", + "The proxy server has been stopped.": "Der Proxy-Server wurde gestoppt.", + "Reload Page": "Seite neu laden", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Der Service läuft im Terminal. Sie können diese Webseite schließen. Das Herunterfahren stoppt den Service.", + "Manage your AI provider connections": "Verwalten Sie Ihre KI-Anbieterverbindungen", + "Model combos with fallback": "Modellkombinationen mit Fallback", + "Monitor your API usage, token consumption, and request logs": "Überwachen Sie Ihre API-Nutzung, den Token-Verbrauch und die Anforderungsprotokolle", + "Intercept CLI tool traffic and route through 9Router": "CLI-Tool-Verkehr abfangen und über 9Router leiten", + "Configure CLI tools": "CLI-Tools konfigurieren", + "API endpoint configuration": "API-Endpunkt-Konfiguration", + "Manage your preferences": "Verwalten Sie Ihre Vorlieben", + "Debug translation flow between formats": "Übersetzungsfluss zwischen Formaten debuggen", + "Live server console output": "Ausgabe der Live-Server-Konsole", + "Create model combos with fallback support": "Erstellen Sie Modellkombinationen mit Fallback-Unterstützung", + "Local Mode": "Lokaler Modus", + "Running on your machine": "Wird auf Ihrem Computer ausgeführt", + "Database Location": "Datenbankort", + "Download Backup": "Sicherung herunterladen", + "Import Backup": "Sicherung importieren", + "Database backup downloaded": "Datenbanksicherung heruntergeladen", + "Database imported successfully": "Datenbank erfolgreich importiert", + "Security": "Sicherheit", + "Require login": "Login erforderlich", + "When ON, dashboard requires password. When OFF, access without login.": "Wenn AN, erfordert das Dashboard ein Passwort. Wenn AUS, Zugriff ohne Login.", + "Current Password": "Aktuelles Passwort", + "Enter current password": "Aktuelles Passwort eingeben", + "New Password": "Neues Passwort", + "Enter new password": "Neues Passwort eingeben", + "Confirm New Password": "Neues Passwort bestätigen", + "Confirm new password": "Neues Passwort bestätigen", + "Update Password": "Passwort aktualisieren", + "Set Password": "Passwort festlegen", + "Password updated successfully": "Passwort erfolgreich aktualisiert", + "Passwords do not match": "Passwörter stimmen nicht überein", + "Routing Strategy": "Routing-Strategie", + "Round Robin": "Round-Robin", + "Cycle through accounts to distribute load": "Konten durchlaufen, um die Last zu verteilen", + "Sticky Limit": "Klebrige Grenze", + "Calls per account before switching": "Anrufe pro Konto vor dem Wechsel", + "Network": "Netzwerk", + "Outbound Proxy": "Ausgehender Proxy", + "Enable proxy for OAuth + provider outbound requests.": "Aktivieren Sie den Proxy für OAuth + Anfragen der ausgehenden Anbieter.", + "Proxy URL": "Proxy-URL", + "Leave empty to inherit existing env proxy (if any).": "Lassen Sie leer, um einen vorhandenen Umgebungs-Proxy zu erben (falls vorhanden).", + "No Proxy": "Kein Proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Kommagetrennte Hostnamen/Domänen zum Umgehen des Proxys.", + "Test proxy URL": "Proxy-URL testen", + "Apply": "Anwenden", + "Proxy settings applied": "Proxy-Einstellungen angewendet", + "Proxy enabled": "Proxy aktiviert", + "Proxy disabled": "Proxy deaktiviert", + "Proxy test OK": "Proxy-Test OK", + "Proxy test failed": "Proxy-Test fehlgeschlagen", + "Please enter a Proxy URL to test": "Bitte geben Sie eine Proxy-URL zum Testen ein", + "Observability": "Beobachtbarkeit", + "Enable Observability": "Beobachtbarkeit aktivieren", + "Turn request detail recording on/off globally": "Aufzeichnung von Anforderungsdetails global ein-/ausschalten", + "Max Records": "Maximale Datensätze", + "Maximum request detail records to keep (older records are auto-deleted)": "Maximale Anzahl der zu speichernden Anforderungsdetaildatensätze (ältere Datensätze werden automatisch gelöscht)", + "Batch Size": "Batch-Größe", + "Number of items to accumulate before writing to database (higher = better performance)": "Anzahl der Elemente, die sich ansammeln, bevor in die Datenbank geschrieben wird (höher = bessere Leistung)", + "Flush Interval (ms)": "Leerungsintervall (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maximale Wartezeit vor dem Leeren des Puffers (verhindert Datenverlust bei niedrigem Datenverkehr)", + "Max JSON Size (KB)": "Maximale JSON-Größe (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maximale Größe für jedes JSON-Feld (Anforderung/Antwort) vor dem Kürzen", + "All data stored on your machine": "Alle Daten auf Ihrem Computer gespeichert", + "MITM Server": "MITM-Server", + "Running": "Läuft", + "Stopped": "Gestoppt", + "Cert": "Zertifikat", + "Server": "Server", + "Purpose:": "Zweck:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Verwenden Sie Antigravity IDE und GitHub Copilot → mit JEDEM Anbieter/Modell von 9Router", + "How it works:": "So funktioniert es:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-Anforderung → DNS-Umleitung auf localhost:443 → MITM-Proxy abfangen → 9Router → Antwort auf Antigravity/Copilot", + "API Key": "API-Schlüssel", + "No API keys — create one in Keys page": "Keine API-Schlüssel — erstellen Sie einen auf der Seite Schlüssel", + "sk_9router (default)": "sk_9router (Standard)", + "Server started": "Server gestartet", + "Failed to start server": "Server konnte nicht gestartet werden", + "Server stopped — all DNS cleared": "Server gestoppt — alle DNS gelöscht", + "Failed to stop server": "Server konnte nicht gestoppt werden", + "Sudo password is required": "Sudo-Passwort erforderlich", + "Stop Server": "Server stoppen", + "Start Server": "Server starten", + "Enable DNS per tool below to activate interception": "Aktivieren Sie DNS für jedes Tool unten, um die Abfangung zu aktivieren", + "Sudo Password Required": "Sudo-Passwort erforderlich", + "Enter your sudo password to start/stop MITM server": "Geben Sie Ihr Sudo-Passwort ein, um den MITM-Server zu starten/stoppen", + "Sudo Password": "Sudo-Passwort", + "Confirm": "Bestätigen" +} diff --git a/cli/app/public/i18n/literals/el.json b/cli/app/public/i18n/literals/el.json new file mode 100644 index 00000000000..0e15daaebc1 --- /dev/null +++ b/cli/app/public/i18n/literals/el.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Ακύρωση", + "Delete": "Διαγραφή", + "Edit": "Επεξεργασία", + "Save": "Αποθήκευση", + "Close": "Κλείσιμο", + "Add": "Προσθήκη", + "Remove": "Αφαίρεση", + "Settings": "Ρυθμίσεις", + "Profile": "Προφίλ", + "Dashboard": "Πίνακας ελέγχου", + "Logout": "Έξοδος", + "Login": "Σύνδεση", + "Providers": "Παρόχοι", + "Usage": "Χρήση", + "API Key": "Κλειδί API", + "Connected": "Συνδεδεμένο", + "Disconnected": "Αποσυνδεδεμένο", + "Active": "Ενεργό", + "Inactive": "Ανενεργό", + "Success": "Επιτυχία", + "Failed": "Απέτυχε", + "Error": "Σφάλμα", + "Warning": "Προειδοποίηση", + "Info": "Πληροφορίες", + "Loading": "Φόρτωση", + "Search": "Αναζήτηση", + "Filter": "Φίλτρο", + "Sort": "Ταξινόμηση", + "Export": "Εξαγωγή", + "Import": "Εισαγωγή", + "Refresh": "Ανανέωση", + "Back": "Πίσω", + "Next": "Επόμενο", + "Previous": "Προηγούμενο", + "Submit": "Υποβολή", + "Confirm": "Επιβεβαίωση", + "Yes": "Ναι", + "No": "Όχι", + "OK": "ΟΚ", + "Apply": "Εφαρμογή", + "Reset": "Επαναφορά", + "Clear": "Εκκαθάριση", + "Select": "Επιλογή", + "Upload": "Μεταφόρτωση", + "Download": "Λήψη", + "Copy": "Αντιγραφή", + "Paste": "Επικόλληση", + "Cut": "Αποκοπή", + "Undo": "Αναίρεση", + "Redo": "Επανάληψη", + "Name": "Όνομα", + "Description": "Περιγραφή", + "Status": "Κατάσταση", + "Type": "Τύπος", + "Date": "Ημερομηνία", + "Time": "Ώρα", + "Created": "Δημιουργήθηκε", + "Updated": "Ενημερώθηκε", + "Actions": "Ενέργειες", + "Details": "Λεπτομέρειες", + "View": "Προβολή", + "New": "Νέο", + "Total": "Σύνολο", + "Count": "Μέτρηση", + "Price": "Τιμή", + "Cost": "Κόστος", + "Free": "Δωρεάν", + "Paid": "Πληρωμένο", + "Enable": "Ενεργοποίηση", + "Disable": "Απενεργοποίηση", + "Enabled": "Ενεργοποιημένο", + "Disabled": "Απενεργοποιημένο", + "Online": "Σε σύνδεση", + "Offline": "Χωρίς σύνδεση", + "Available": "Διαθέσιμο", + "Unavailable": "Μη διαθέσιμο", + "Required": "Απαιτούμενο", + "Optional": "Προαιρετικό", + "Default": "Προεπιλεγμένο", + "Custom": "Προσαρμοσμένο", + "Advanced": "Προχωρημένο", + "Basic": "Βασικό", + "Help": "Βοήθεια", + "Support": "Υποστήριξη", + "Documentation": "Τεκμηρίωση", + "Version": "Έκδοση", + "Language": "Γλώσσα", + "Theme": "Θέμα", + "Light": "Ανοιχτό", + "Dark": "Σκοτεινό", + "Auto": "Αυτόματο", + "Endpoint": "Τελικό σημείο", + "Providers": "Παρόχοι", + "Combos": "Συνδυασμοί", + "Usage": "Στατιστικά χρήσης", + "Quota Tracker": "Παρακολούθηση ποσόστωσης", + "MITM": "MITM", + "CLI Tools": "Εργαλεία", + "Console Log": "Αρχείο καταγραφής κονσόλας", + "System": "Σύστημα", + "Debug": "Αποσφαλμάτωση", + "Shutdown": "Τερματισμός", + "Close Proxy": "Κλείσιμο διακομιστή μεσολάβησης", + "Are you sure you want to close the proxy server?": "Είστε σίγουρος ότι θέλετε να κλείσετε τον διακομιστή μεσολάβησης;", + "Server Disconnected": "Διακομιστής αποσυνδεδεμένος", + "The proxy server has been stopped.": "Ο διακομιστής μεσολάβησης έχει σταματήσει.", + "Reload Page": "Επαναφόρτωση σελίδας", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Η υπηρεσία εκτελείται στο τερματικό. Μπορείτε να κλείσετε αυτή τη σελίδα ιστού. Ο τερματισμός θα σταματήσει την υπηρεσία.", + "Manage your AI provider connections": "Διαχειριστείτε τις συνδέσεις του παρόχου AI σας", + "Model combos with fallback": "Συνδυασμοί μοντέλων με αποπροσπέλαση", + "Monitor your API usage, token consumption, and request logs": "Παρακολουθήστε τη χρήση API, την κατανάλωση token και τα αρχεία καταγραφής αιτημάτων", + "Intercept CLI tool traffic and route through 9Router": "Αναχαίτηση κίνησης εργαλείου CLI και δρομολόγηση μέσω 9Router", + "Configure CLI tools": "Ρύθμιση εργαλείων CLI", + "API endpoint configuration": "Διαμόρφωση τελικού σημείου API", + "Manage your preferences": "Διαχείριση προτιμήσεών σας", + "Debug translation flow between formats": "Αποσφαλμάτωση ροής μετάφρασης μεταξύ μορφών", + "Live server console output": "Έξοδος κονσόλας διακομιστή σε πραγματικό χρόνο", + "Create model combos with fallback support": "Δημιουργήστε συνδυασμούς μοντέλων με υποστήριξη αποπροσπέλασης", + "Local Mode": "Τοπική λειτουργία", + "Running on your machine": "Εκτελείται στον υπολογιστή σας", + "Database Location": "Τοποθεσία βάσης δεδομένων", + "Download Backup": "Λήψη ασφαλείας", + "Import Backup": "Εισαγωγή ασφαλείας", + "Database backup downloaded": "Ασφάλεια βάσης δεδομένων λήφθηκε", + "Database imported successfully": "Η βάση δεδομένων εισήχθη με επιτυχία", + "Security": "Ασφάλεια", + "Require login": "Απαιτείται σύνδεση", + "When ON, dashboard requires password. When OFF, access without login.": "Όταν είναι ΕΝ, ο πίνακας ελέγχου απαιτεί κωδικό πρόσβασης. Όταν είναι ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ, πρόσβαση χωρίς σύνδεση.", + "Current Password": "Τρέχων κωδικός πρόσβασης", + "Enter current password": "Εισαγάγετε τον τρέχοντα κωδικό πρόσβασης", + "New Password": "Νέος κωδικός πρόσβασης", + "Enter new password": "Εισαγάγετε τον νέο κωδικό πρόσβασης", + "Confirm New Password": "Επιβεβαίωση νέου κωδικού πρόσβασης", + "Confirm new password": "Επιβεβαίωση νέου κωδικού πρόσβασης", + "Update Password": "Ενημέρωση κωδικού πρόσβασης", + "Set Password": "Ορισμός κωδικού πρόσβασης", + "Password updated successfully": "Ο κωδικός πρόσβασης ενημερώθηκε με επιτυχία", + "Passwords do not match": "Οι κωδικοί πρόσβασης δεν ταιριάζουν", + "Routing Strategy": "Στρατηγική δρομολόγησης", + "Round Robin": "Κυκλική δρομολόγηση", + "Cycle through accounts to distribute load": "Κύκλος μέσω λογαριασμών για κατανομή φορτίου", + "Sticky Limit": "Περιορισμός κόλλησης", + "Calls per account before switching": "Κλήσεις ανά λογαριασμό πριν από την εναλλαγή", + "Network": "Δίκτυο", + "Outbound Proxy": "Εξερχόμενος διακομιστής μεσολάβησης", + "Enable proxy for OAuth + provider outbound requests.": "Ενεργοποιήστε τον διακομιστή μεσολάβησης για αιτήματα εξόδου OAuth + παρόχου.", + "Proxy URL": "URL διακομιστή μεσολάβησης", + "Leave empty to inherit existing env proxy (if any).": "Αφήστε κενό για να κληρονομήσετε υπάρχοντα env proxy (εάν υπάρχει).", + "No Proxy": "Χωρίς διακομιστή μεσολάβησης", + "Comma-separated hostnames/domains to bypass the proxy.": "Ονόματα κεντρικών υπολογιστών/τομείς χωρισμένοι με κόμμα για να παραστούν τον διακομιστή μεσολάβησης.", + "Test proxy URL": "Δοκιμή URL διακομιστή μεσολάβησης", + "Apply": "Εφαρμογή", + "Proxy settings applied": "Ρυθμίσεις διακομιστή μεσολάβησης εφαρμόστηκαν", + "Proxy enabled": "Διακομιστής μεσολάβησης ενεργοποιημένος", + "Proxy disabled": "Διακομιστής μεσολάβησης απενεργοποιημένος", + "Proxy test OK": "Δοκιμή διακομιστή μεσολάβησης OK", + "Proxy test failed": "Η δοκιμή διακομιστή μεσολάβησης απέτυχε", + "Please enter a Proxy URL to test": "Παρακαλώ εισάγετε ένα URL διακομιστή μεσολάβησης για δοκιμή", + "Observability": "Δυνατότητα παρατήρησης", + "Enable Observability": "Ενεργοποίηση δυνατότητας παρατήρησης", + "Turn request detail recording on/off globally": "Ενεργοποιήστε/απενεργοποιήστε την καταγραφή λεπτομερειών αιτήματος σε παγκόσμιο επίπεδο", + "Max Records": "Μέγιστα αρχεία", + "Maximum request detail records to keep (older records are auto-deleted)": "Μέγιστα αρχεία λεπτομερειών αιτήματος για διατήρηση (τα παλαιότερα αρχεία διαγράφονται αυτόματα)", + "Batch Size": "Μέγεθος δέσμης", + "Number of items to accumulate before writing to database (higher = better performance)": "Αριθμός στοιχείων που πρέπει να συσσωρευθούν πριν από τη σύνταξη στη βάση δεδομένων (υψηλότερο = καλύτερη απόδοση)", + "Flush Interval (ms)": "Διάστημα ξεπλύματος (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Μέγιστος χρόνος αναμονής πριν από το ξέπλυμα του buffer (αποτρέπει την απώλεια δεδομένων κατά την χαμηλή κίνηση)", + "Max JSON Size (KB)": "Μέγιστο μέγεθος JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Μέγιστο μέγεθος για κάθε πεδίο JSON (αίτημα/απάντηση) πριν από την περικοπή", + "All data stored on your machine": "Όλα τα δεδομένα αποθηκεύονται στον υπολογιστή σας", + "MITM Server": "Διακομιστής MITM", + "Running": "Εκτελείται", + "Stopped": "Διακοπή", + "Cert": "Πιστοποιητικό", + "Server": "Διακομιστής", + "Purpose:": "Σκοπός:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Χρησιμοποιήστε Antigravity IDE & GitHub Copilot → με ΟΠΟΙΟΝΔΗΠΟΤΕ πάροχο/μοντέλο από 9Router", + "How it works:": "Πώς λειτουργεί:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Αίτημα Antigravity/Copilot IDE → Ανακατεύθυνση DNS στο localhost:443 → Ο διακομιστής μεσολάβησης MITM παρεμβαίνει → 9Router → απάντηση στο Antigravity/Copilot", + "API Key": "Κλειδί API", + "No API keys — create one in Keys page": "Δεν υπάρχουν κλειδιά API — δημιουργήστε ένα στη σελίδα Keys", + "sk_9router (default)": "sk_9router (προεπιλεγμένο)", + "Server started": "Ο διακομιστής ξεκίνησε", + "Failed to start server": "Αποτυχία εκκίνησης διακομιστή", + "Server stopped — all DNS cleared": "Ο διακομιστής σταμάτησε — όλα τα DNS διαγράφηκαν", + "Failed to stop server": "Αποτυχία διακοπής διακομιστή", + "Sudo password is required": "Απαιτείται κωδικός πρόσβασης sudo", + "Stop Server": "Διακοπή διακομιστή", + "Start Server": "Διακομιστή ξεκινήματος", + "Enable DNS per tool below to activate interception": "Ενεργοποιήστε το DNS για κάθε εργαλείο παρακάτω για ενεργοποίηση παρεμβολής", + "Sudo Password Required": "Απαιτείται κωδικός πρόσβασης Sudo", + "Enter your sudo password to start/stop MITM server": "Εισαγάγετε τον κωδικό πρόσβασης sudo για να ξεκινήσετε/διακόψετε τον διακομιστή MITM", + "Sudo Password": "Κωδικός πρόσβασης Sudo", + "Confirm": "Επιβεβαίωση" +} diff --git a/cli/app/public/i18n/literals/es.json b/cli/app/public/i18n/literals/es.json new file mode 100644 index 00000000000..ea7cf45b476 --- /dev/null +++ b/cli/app/public/i18n/literals/es.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Cancelar", + "Delete": "Eliminar", + "Edit": "Editar", + "Save": "Guardar", + "Close": "Cerrar", + "Add": "Añadir", + "Remove": "Quitar", + "Settings": "Configuración", + "Profile": "Perfil", + "Dashboard": "Panel de control", + "Logout": "Cerrar sesión", + "Login": "Iniciar sesión", + "Providers": "Proveedores", + "Usage": "Uso", + "API Key": "Clave API", + "Connected": "Conectado", + "Disconnected": "Desconectado", + "Active": "Activo", + "Inactive": "Inactivo", + "Success": "Éxito", + "Failed": "Fallido", + "Error": "Error", + "Warning": "Advertencia", + "Info": "Información", + "Loading": "Cargando", + "Search": "Buscar", + "Filter": "Filtrar", + "Sort": "Ordenar", + "Export": "Exportar", + "Import": "Importar", + "Refresh": "Actualizar", + "Back": "Atrás", + "Next": "Siguiente", + "Previous": "Anterior", + "Submit": "Enviar", + "Confirm": "Confirmar", + "Yes": "Sí", + "No": "No", + "OK": "OK", + "Apply": "Aplicar", + "Reset": "Restablecer", + "Clear": "Limpiar", + "Select": "Seleccionar", + "Upload": "Cargar", + "Download": "Descargar", + "Copy": "Copiar", + "Paste": "Pegar", + "Cut": "Cortar", + "Undo": "Deshacer", + "Redo": "Rehacer", + "Name": "Nombre", + "Description": "Descripción", + "Status": "Estado", + "Type": "Tipo", + "Date": "Fecha", + "Time": "Hora", + "Created": "Creado", + "Updated": "Actualizado", + "Actions": "Acciones", + "Details": "Detalles", + "View": "Ver", + "New": "Nuevo", + "Total": "Total", + "Count": "Cantidad", + "Price": "Precio", + "Cost": "Costo", + "Free": "Gratuito", + "Paid": "Pagado", + "Enable": "Habilitar", + "Disable": "Deshabilitar", + "Enabled": "Habilitado", + "Disabled": "Deshabilitado", + "Online": "En línea", + "Offline": "Desconectado", + "Available": "Disponible", + "Unavailable": "No disponible", + "Required": "Requerido", + "Optional": "Opcional", + "Default": "Predeterminado", + "Custom": "Personalizado", + "Advanced": "Avanzado", + "Basic": "Básico", + "Help": "Ayuda", + "Support": "Soporte", + "Documentation": "Documentación", + "Version": "Versión", + "Language": "Idioma", + "Theme": "Tema", + "Light": "Claro", + "Dark": "Oscuro", + "Auto": "Automático", + "Endpoint": "Punto final", + "Providers": "Proveedores", + "Combos": "Combinaciones", + "Usage": "Estadísticas", + "Quota Tracker": "Rastreador de cuota", + "MITM": "MITM", + "CLI Tools": "Herramientas CLI", + "Console Log": "Registro de consola", + "System": "Sistema", + "Debug": "Depuración", + "Shutdown": "Apagar", + "Close Proxy": "Cerrar proxy", + "Are you sure you want to close the proxy server?": "¿Está seguro de que desea cerrar el servidor proxy?", + "Server Disconnected": "Servidor desconectado", + "The proxy server has been stopped.": "El servidor proxy se ha detenido.", + "Reload Page": "Recargar página", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "El servicio se está ejecutando en la terminal. Puede cerrar esta página web. El apagado detendrá el servicio.", + "Manage your AI provider connections": "Administre sus conexiones de proveedor de IA", + "Model combos with fallback": "Combinaciones de modelos con respaldo", + "Monitor your API usage, token consumption, and request logs": "Monitoree su uso de API, consumo de tokens y registros de solicitudes", + "Intercept CLI tool traffic and route through 9Router": "Interceptar el tráfico de herramientas CLI y enrutar a través de 9Router", + "Configure CLI tools": "Configurar herramientas CLI", + "API endpoint configuration": "Configuración del punto final de API", + "Manage your preferences": "Administrar sus preferencias", + "Debug translation flow between formats": "Depurar el flujo de traducción entre formatos", + "Live server console output": "Salida de consola del servidor en vivo", + "Create model combos with fallback support": "Crear combinaciones de modelos con soporte de respaldo", + "Local Mode": "Modo local", + "Running on your machine": "En ejecución en su máquina", + "Database Location": "Ubicación de la base de datos", + "Download Backup": "Descargar respaldo", + "Import Backup": "Importar respaldo", + "Database backup downloaded": "Respaldo de la base de datos descargado", + "Database imported successfully": "Base de datos importada correctamente", + "Security": "Seguridad", + "Require login": "Requerir inicio de sesión", + "When ON, dashboard requires password. When OFF, access without login.": "Cuando está ACTIVADO, el panel requiere contraseña. Cuando está DESACTIVADO, acceso sin iniciar sesión.", + "Current Password": "Contraseña actual", + "Enter current password": "Ingrese la contraseña actual", + "New Password": "Nueva contraseña", + "Enter new password": "Ingrese la nueva contraseña", + "Confirm New Password": "Confirmar nueva contraseña", + "Confirm new password": "Confirme la nueva contraseña", + "Update Password": "Actualizar contraseña", + "Set Password": "Establecer contraseña", + "Password updated successfully": "Contraseña actualizada correctamente", + "Passwords do not match": "Las contraseñas no coinciden", + "Routing Strategy": "Estrategia de enrutamiento", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Ciclo a través de cuentas para distribuir la carga", + "Sticky Limit": "Límite pegajoso", + "Calls per account before switching": "Llamadas por cuenta antes de cambiar", + "Network": "Red", + "Outbound Proxy": "Proxy de salida", + "Enable proxy for OAuth + provider outbound requests.": "Habilite el proxy para OAuth + solicitudes de salida del proveedor.", + "Proxy URL": "URL del proxy", + "Leave empty to inherit existing env proxy (if any).": "Deje en blanco para heredar el proxy env existente (si lo hay).", + "No Proxy": "Sin proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Nombres de host/dominios separados por comas para omitir el proxy.", + "Test proxy URL": "Prueba URL del proxy", + "Apply": "Aplicar", + "Proxy settings applied": "Configuración de proxy aplicada", + "Proxy enabled": "Proxy habilitado", + "Proxy disabled": "Proxy deshabilitado", + "Proxy test OK": "Prueba de proxy OK", + "Proxy test failed": "Falha en la prueba de proxy", + "Please enter a Proxy URL to test": "Por favor ingrese una URL de proxy para probar", + "Observability": "Observabilidad", + "Enable Observability": "Habilitar observabilidad", + "Turn request detail recording on/off globally": "Activar/desactivar globalmente el registro de detalles de solicitud", + "Max Records": "Número máximo de registros", + "Maximum request detail records to keep (older records are auto-deleted)": "Número máximo de registros de detalle de solicitud a mantener (los registros más antiguos se eliminan automáticamente)", + "Batch Size": "Tamaño del lote", + "Number of items to accumulate before writing to database (higher = better performance)": "Número de elementos a acumular antes de escribir en la base de datos (más alto = mejor rendimiento)", + "Flush Interval (ms)": "Intervalo de vaciado (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Tiempo máximo de espera antes de vaciar el búfer (evita pérdida de datos durante tráfico bajo)", + "Max JSON Size (KB)": "Tamaño máximo de JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Tamaño máximo para cada campo JSON (solicitud/respuesta) antes del truncamiento", + "All data stored on your machine": "Todos los datos almacenados en su máquina", + "MITM Server": "Servidor MITM", + "Running": "En ejecución", + "Stopped": "Detenido", + "Cert": "Certificado", + "Server": "Servidor", + "Purpose:": "Propósito:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Use Antigravity IDE y GitHub Copilot → con CUALQUIER proveedor/modelo de 9Router", + "How it works:": "Cómo funciona:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitud de Antigravity/Copilot IDE → Redireccionamiento DNS a localhost:443 → El proxy MITM intercepta → 9Router → respuesta a Antigravity/Copilot", + "API Key": "Clave API", + "No API keys — create one in Keys page": "Sin claves API — cree una en la página Claves", + "sk_9router (default)": "sk_9router (predeterminado)", + "Server started": "Servidor iniciado", + "Failed to start server": "Error al iniciar el servidor", + "Server stopped — all DNS cleared": "Servidor detenido — todo DNS borrado", + "Failed to stop server": "Error al detener el servidor", + "Sudo password is required": "Se requiere contraseña de sudo", + "Stop Server": "Detener servidor", + "Start Server": "Iniciar servidor", + "Enable DNS per tool below to activate interception": "Habilite DNS para cada herramienta a continuación para activar la intercepción", + "Sudo Password Required": "Contraseña de Sudo requerida", + "Enter your sudo password to start/stop MITM server": "Ingrese su contraseña de sudo para iniciar/detener el servidor MITM", + "Sudo Password": "Contraseña de sudo", + "Confirm": "Confirmar" +} diff --git a/cli/app/public/i18n/literals/fi.json b/cli/app/public/i18n/literals/fi.json new file mode 100644 index 00000000000..54af1a42a85 --- /dev/null +++ b/cli/app/public/i18n/literals/fi.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Peruuta", + "Delete": "Poista", + "Edit": "Muokkaa", + "Save": "Tallenna", + "Close": "Sulje", + "Add": "Lisää", + "Remove": "Poista", + "Settings": "Asetukset", + "Profile": "Profiili", + "Dashboard": "Kojelauta", + "Logout": "Kirjaudu ulos", + "Login": "Kirjaudu sisään", + "Providers": "Palveluntarjoajat", + "Usage": "Käyttö", + "API Key": "API-avain", + "Connected": "Yhdistetty", + "Disconnected": "Yhteys katkaistu", + "Active": "Aktiivinen", + "Inactive": "Passiivinen", + "Success": "Onnistui", + "Failed": "Epäonnistui", + "Error": "Virhe", + "Warning": "Varoitus", + "Info": "Tiedot", + "Loading": "Ladataan", + "Search": "Hae", + "Filter": "Suodin", + "Sort": "Lajittele", + "Export": "Vie", + "Import": "Tuo", + "Refresh": "Päivitä", + "Back": "Takaisin", + "Next": "Seuraava", + "Previous": "Edellinen", + "Submit": "Lähetä", + "Confirm": "Vahvista", + "Yes": "Kyllä", + "No": "Ei", + "OK": "OK", + "Apply": "Käytä", + "Reset": "Nollaa", + "Clear": "Tyhjennä", + "Select": "Valitse", + "Upload": "Lataa", + "Download": "Lataa", + "Copy": "Kopioi", + "Paste": "Liitä", + "Cut": "Leikkaa", + "Undo": "Kumoa", + "Redo": "Tee uudelleen", + "Name": "Nimi", + "Description": "Kuvaus", + "Status": "Tila", + "Type": "Tyyppi", + "Date": "Päivämäärä", + "Time": "Aika", + "Created": "Luotu", + "Updated": "Päivitetty", + "Actions": "Toiminnot", + "Details": "Tiedot", + "View": "Näytä", + "New": "Uusi", + "Total": "Yhteensä", + "Count": "Määrä", + "Price": "Hinta", + "Cost": "Kustannus", + "Free": "Ilmainen", + "Paid": "Maksettu", + "Enable": "Ota käyttöön", + "Disable": "Poista käytöstä", + "Enabled": "Käytössä", + "Disabled": "Pois käytöstä", + "Online": "Online", + "Offline": "Offline", + "Available": "Saatavilla", + "Unavailable": "Ei saatavilla", + "Required": "Pakollinen", + "Optional": "Valinnainen", + "Default": "Oletus", + "Custom": "Mukautettu", + "Advanced": "Lisäasetukset", + "Basic": "Perus", + "Help": "Apua", + "Support": "Tuki", + "Documentation": "Dokumentaatio", + "Version": "Versio", + "Language": "Kieli", + "Theme": "Teema", + "Light": "Vaalea", + "Dark": "Tumma", + "Auto": "Automaattinen", + "Endpoint": "Pääteeksi", + "Providers": "Palveluntarjoajat", + "Combos": "Yhdistelmät", + "Usage": "Käyttötilastot", + "Quota Tracker": "Kiintiyden seuranta", + "MITM": "MITM", + "CLI Tools": "Työkalut", + "Console Log": "Konsolilokit", + "System": "Järjestelmä", + "Debug": "Virheenkorjaus", + "Shutdown": "Sammuta", + "Close Proxy": "Sulje välityspalvelin", + "Are you sure you want to close the proxy server?": "Oletko varma, että haluat sulkea välityspalvelimen?", + "Server Disconnected": "Palvelin katkaistiin", + "The proxy server has been stopped.": "Välityspalvelin on pysäytetty.", + "Reload Page": "Päivitä sivu", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Palvelu on käynnissä terminaalissa. Voit sulkea tämän verkkosivun. Sammutus pysäyttää palvelun.", + "Manage your AI provider connections": "Hallitse AI-palveluntarjoajayhteyksääsi", + "Model combos with fallback": "Mallien yhdistelmät palautuksella", + "Monitor your API usage, token consumption, and request logs": "Valvo API-käyttöä, tunnusmerkkien kulutusta ja pyyntölokeja", + "Intercept CLI tool traffic and route through 9Router": "Sieppaa CLI-työkaluliikenteen ja reitit 9Routerin kautta", + "Configure CLI tools": "Konfiguroi CLI-työkalut", + "API endpoint configuration": "API-päätepisteen konfiguraatio", + "Manage your preferences": "Hallitse asetuksiasi", + "Debug translation flow between formats": "Virheenkorjaus kääntämisvirta formaattien välillä", + "Live server console output": "Palvelimen konsolin tulostus reaaliajassa", + "Create model combos with fallback support": "Luo malliyhdistelmiä palautustuen kanssa", + "Local Mode": "Paikallinen tila", + "Running on your machine": "Käynnissä koneellasi", + "Database Location": "Tietokannan sijainti", + "Download Backup": "Lataa varmuuskopio", + "Import Backup": "Tuo varmuuskopio", + "Database backup downloaded": "Tietokannan varmuuskopio ladattiin", + "Database imported successfully": "Tietokanta tuotiin onnistuneesti", + "Security": "Turvallisuus", + "Require login": "Vaadi kirjautumista", + "When ON, dashboard requires password. When OFF, access without login.": "Kun ON, kojelauta vaatii salasanaa. Kun OFF, pääsy ilman kirjautumista.", + "Current Password": "Nykyinen salasana", + "Enter current password": "Kirjoita nykyinen salasana", + "New Password": "Uusi salasana", + "Enter new password": "Kirjoita uusi salasana", + "Confirm New Password": "Vahvista uusi salasana", + "Confirm new password": "Vahvista uusi salasana", + "Update Password": "Päivitä salasana", + "Set Password": "Aseta salasana", + "Password updated successfully": "Salasana päivitettiin onnistuneesti", + "Passwords do not match": "Salasanat eivät täsmää", + "Routing Strategy": "Reititysstrategia", + "Round Robin": "Kiertelevä robotti", + "Cycle through accounts to distribute load": "Kierrä tileillä kuormituksen jakamiseksi", + "Sticky Limit": "Kiinteä raja", + "Calls per account before switching": "Puhelut tiliä kohti ennen vaihtamista", + "Network": "Verkko", + "Outbound Proxy": "Lähtevä välityspalvelin", + "Enable proxy for OAuth + provider outbound requests.": "Ota käyttöön välityspalvelin OAuth + palveluntarjoajan lähteviin pyyntöihin.", + "Proxy URL": "Välityspalvelimen URL", + "Leave empty to inherit existing env proxy (if any).": "Jätä tyhjäksi periä olemassa olevaa env-välityspalvelinta (jos sellainen on).", + "No Proxy": "Ei välityspalvelinta", + "Comma-separated hostnames/domains to bypass the proxy.": "Pilkulla erotetut isäntänimet/etäisyydet välityspalvelimen ohittamiseksi.", + "Test proxy URL": "Testaa välityspalvelimen URL", + "Apply": "Käytä", + "Proxy settings applied": "Välityspalvelimen asetukset käytössä", + "Proxy enabled": "Välityspalvelin otettu käyttöön", + "Proxy disabled": "Välityspalvelin poistettu käytöstä", + "Proxy test OK": "Välityspalvelimen testi OK", + "Proxy test failed": "Välityspalvelimen testi epäonnistui", + "Please enter a Proxy URL to test": "Kirjoita testattava välityspalvelimen URL", + "Observability": "Havainnointitarkkuus", + "Enable Observability": "Ota havainnointitarkkuus käyttöön", + "Turn request detail recording on/off globally": "Poista pyynnön yksityiskohtien tallentaminen käyttöön/pois käytöstä maailmanlaajuisesti", + "Max Records": "Max-tietueet", + "Maximum request detail records to keep (older records are auto-deleted)": "Maksimaalinen pyynnön yksityiskohtitietueet säilytettäväksi (vanhemmat tietueet poistetaan automaattisesti)", + "Batch Size": "Erän koko", + "Number of items to accumulate before writing to database (higher = better performance)": "Tietokantaan kirjoittamista edeltävien kerättävien kohteiden lukumäärä (korkeampi = parempi suorituskyky)", + "Flush Interval (ms)": "Tyhjennysväli (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Enimmäisaika odottaa ennen puskurin tyhjentämistä (estää tietojen menetyksen matalan liikenteen aikana)", + "Max JSON Size (KB)": "Maksimaalinen JSON-koko (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Kunkin JSON-kentän (pyynnön/vastauksen) enimmäiskoko ennen katkaisua", + "All data stored on your machine": "Kaikki tiedot tallennettu koneellasi", + "MITM Server": "MITM-palvelin", + "Running": "Käynnissä", + "Stopped": "Pysäytetty", + "Cert": "Sertifikaatti", + "Server": "Palvelin", + "Purpose:": "Tarkoitus:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Käytä Antigravity IDE:tä ja GitHub Copilot:ia → minkä tahansa palveluntarjoajan/mallin kanssa 9Routerista", + "How it works:": "Kuinka se toimii:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-pyyntö → DNS-uudelleenohjaus localhost:443:iin → MITM-välityspalvelin sieppaa → 9Router → vastaus Antigravity/Copilot:ille", + "API Key": "API-avain", + "No API keys — create one in Keys page": "Ei API-avaimia — luo yksi Keys-sivulla", + "sk_9router (default)": "sk_9router (oletus)", + "Server started": "Palvelin käynnistetty", + "Failed to start server": "Palvelimen käynnistäminen epäonnistui", + "Server stopped — all DNS cleared": "Palvelin pysäytetty — kaikki DNS poistettu", + "Failed to stop server": "Palvelimen pysäyttäminen epäonnistui", + "Sudo password is required": "Sudo-salasana vaaditaan", + "Stop Server": "Pysäytä palvelin", + "Start Server": "Käynnistä palvelin", + "Enable DNS per tool below to activate interception": "Ota DNS käyttöön kunkin alla olevan työkalun osalta aktivoidaksesi sieppauksen", + "Sudo Password Required": "Sudo-salasana vaaditaan", + "Enter your sudo password to start/stop MITM server": "Kirjoita sudo-salasanasi MITM-palvelimen käynnistämiseksi/pysäyttämiseksi", + "Sudo Password": "Sudo-salasana", + "Confirm": "Vahvista" +} diff --git a/cli/app/public/i18n/literals/fr.json b/cli/app/public/i18n/literals/fr.json new file mode 100644 index 00000000000..5a75f5c04e5 --- /dev/null +++ b/cli/app/public/i18n/literals/fr.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Annuler", + "Delete": "Supprimer", + "Edit": "Modifier", + "Save": "Enregistrer", + "Close": "Fermer", + "Add": "Ajouter", + "Remove": "Retirer", + "Settings": "Paramètres", + "Profile": "Profil", + "Dashboard": "Tableau de bord", + "Logout": "Déconnexion", + "Login": "Connexion", + "Providers": "Fournisseurs", + "Usage": "Utilisation", + "API Key": "Clé API", + "Connected": "Connecté", + "Disconnected": "Déconnecté", + "Active": "Actif", + "Inactive": "Inactif", + "Success": "Succès", + "Failed": "Échoué", + "Error": "Erreur", + "Warning": "Avertissement", + "Info": "Informations", + "Loading": "Chargement", + "Search": "Rechercher", + "Filter": "Filtrer", + "Sort": "Trier", + "Export": "Exporter", + "Import": "Importer", + "Refresh": "Actualiser", + "Back": "Retour", + "Next": "Suivant", + "Previous": "Précédent", + "Submit": "Soumettre", + "Confirm": "Confirmer", + "Yes": "Oui", + "No": "Non", + "OK": "OK", + "Apply": "Appliquer", + "Reset": "Réinitialiser", + "Clear": "Effacer", + "Select": "Sélectionner", + "Upload": "Télécharger", + "Download": "Télécharger", + "Copy": "Copier", + "Paste": "Coller", + "Cut": "Couper", + "Undo": "Annuler", + "Redo": "Refaire", + "Name": "Nom", + "Description": "Description", + "Status": "Statut", + "Type": "Type", + "Date": "Date", + "Time": "Heure", + "Created": "Créé", + "Updated": "Modifié", + "Actions": "Actions", + "Details": "Détails", + "View": "Afficher", + "New": "Nouveau", + "Total": "Total", + "Count": "Nombre", + "Price": "Prix", + "Cost": "Coût", + "Free": "Gratuit", + "Paid": "Payant", + "Enable": "Activer", + "Disable": "Désactiver", + "Enabled": "Activé", + "Disabled": "Désactivé", + "Online": "En ligne", + "Offline": "Hors ligne", + "Available": "Disponible", + "Unavailable": "Indisponible", + "Required": "Requis", + "Optional": "Facultatif", + "Default": "Par défaut", + "Custom": "Personnalisé", + "Advanced": "Avancé", + "Basic": "Basique", + "Help": "Aide", + "Support": "Support", + "Documentation": "Documentation", + "Version": "Version", + "Language": "Langue", + "Theme": "Thème", + "Light": "Clair", + "Dark": "Sombre", + "Auto": "Automatique", + "Endpoint": "Point final", + "Providers": "Fournisseurs", + "Combos": "Combinaisons", + "Usage": "Statistiques", + "Quota Tracker": "Suivi des quotas", + "MITM": "MITM", + "CLI Tools": "Outils CLI", + "Console Log": "Journaux de console", + "System": "Système", + "Debug": "Débogage", + "Shutdown": "Arrêt", + "Close Proxy": "Fermer le proxy", + "Are you sure you want to close the proxy server?": "Êtes-vous sûr de vouloir fermer le serveur proxy ?", + "Server Disconnected": "Serveur déconnecté", + "The proxy server has been stopped.": "Le serveur proxy a été arrêté.", + "Reload Page": "Recharger la page", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Le service s'exécute dans le terminal. Vous pouvez fermer cette page web. L'arrêt arrêtera le service.", + "Manage your AI provider connections": "Gérez vos connexions de fournisseur IA", + "Model combos with fallback": "Combinaisons de modèles avec secours", + "Monitor your API usage, token consumption, and request logs": "Surveillez votre utilisation d'API, la consommation de jetons et les journaux de requête", + "Intercept CLI tool traffic and route through 9Router": "Interceptez le trafic des outils CLI et acheminez via 9Router", + "Configure CLI tools": "Configurer les outils CLI", + "API endpoint configuration": "Configuration du point final API", + "Manage your preferences": "Gérez vos préférences", + "Debug translation flow between formats": "Déboguer le flux de traduction entre les formats", + "Live server console output": "Sortie de la console du serveur en direct", + "Create model combos with fallback support": "Créer des combinaisons de modèles avec support de secours", + "Local Mode": "Mode local", + "Running on your machine": "S'exécute sur votre machine", + "Database Location": "Emplacement de la base de données", + "Download Backup": "Télécharger la sauvegarde", + "Import Backup": "Importer la sauvegarde", + "Database backup downloaded": "Sauvegarde de la base de données téléchargée", + "Database imported successfully": "Base de données importée avec succès", + "Security": "Sécurité", + "Require login": "Exiger une connexion", + "When ON, dashboard requires password. When OFF, access without login.": "Lorsqu'il est ACTIVÉ, le tableau de bord nécessite un mot de passe. Lorsqu'il est DÉSACTIVÉ, accès sans connexion.", + "Current Password": "Mot de passe actuel", + "Enter current password": "Entrez le mot de passe actuel", + "New Password": "Nouveau mot de passe", + "Enter new password": "Entrez le nouveau mot de passe", + "Confirm New Password": "Confirmer le nouveau mot de passe", + "Confirm new password": "Confirmez le nouveau mot de passe", + "Update Password": "Mettre à jour le mot de passe", + "Set Password": "Définir le mot de passe", + "Password updated successfully": "Mot de passe mis à jour avec succès", + "Passwords do not match": "Les mots de passe ne correspondent pas", + "Routing Strategy": "Stratégie d'acheminement", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Parcourir les comptes pour distribuer la charge", + "Sticky Limit": "Limite collante", + "Calls per account before switching": "Appels par compte avant de changer", + "Network": "Réseau", + "Outbound Proxy": "Proxy sortant", + "Enable proxy for OAuth + provider outbound requests.": "Activez le proxy pour OAuth + les demandes sortantes du fournisseur.", + "Proxy URL": "URL du proxy", + "Leave empty to inherit existing env proxy (if any).": "Laissez vide pour hériter du proxy env existant (le cas échéant).", + "No Proxy": "Pas de proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Noms d'hôtes/domaines séparés par des virgules pour contourner le proxy.", + "Test proxy URL": "Tester l'URL du proxy", + "Apply": "Appliquer", + "Proxy settings applied": "Paramètres de proxy appliqués", + "Proxy enabled": "Proxy activé", + "Proxy disabled": "Proxy désactivé", + "Proxy test OK": "Test de proxy OK", + "Proxy test failed": "Échec du test de proxy", + "Please enter a Proxy URL to test": "Veuillez entrer une URL de proxy à tester", + "Observability": "Observabilité", + "Enable Observability": "Activer l'observabilité", + "Turn request detail recording on/off globally": "Activer/désactiver l'enregistrement des détails de la requête globalement", + "Max Records": "Nombre maximum d'enregistrements", + "Maximum request detail records to keep (older records are auto-deleted)": "Nombre maximum d'enregistrements de détails de requête à conserver (les anciens enregistrements sont supprimés automatiquement)", + "Batch Size": "Taille du lot", + "Number of items to accumulate before writing to database (higher = better performance)": "Nombre d'éléments à accumuler avant d'écrire dans la base de données (plus élevé = meilleures performances)", + "Flush Interval (ms)": "Intervalle de vidage (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Temps maximum d'attente avant de vider le tampon (évite la perte de données en cas de faible trafic)", + "Max JSON Size (KB)": "Taille JSON maximale (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Taille maximale pour chaque champ JSON (demande/réponse) avant la troncature", + "All data stored on your machine": "Toutes les données stockées sur votre machine", + "MITM Server": "Serveur MITM", + "Running": "En cours d'exécution", + "Stopped": "Arrêté", + "Cert": "Certificat", + "Server": "Serveur", + "Purpose:": "Objectif :", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Utilisez Antigravity IDE et GitHub Copilot → avec N'IMPORTE QUEL fournisseur/modèle de 9Router", + "How it works:": "Comment ça marche :", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Demande Antigravity/Copilot IDE → Redirection DNS vers localhost:443 → Le proxy MITM intercepte → 9Router → réponse à Antigravity/Copilot", + "API Key": "Clé API", + "No API keys — create one in Keys page": "Aucune clé API — créez-en une dans la page Clés", + "sk_9router (default)": "sk_9router (par défaut)", + "Server started": "Serveur démarré", + "Failed to start server": "Impossible de démarrer le serveur", + "Server stopped — all DNS cleared": "Serveur arrêté — tout DNS effacé", + "Failed to stop server": "Impossible d'arrêter le serveur", + "Sudo password is required": "Le mot de passe sudo est requis", + "Stop Server": "Arrêter le serveur", + "Start Server": "Démarrer le serveur", + "Enable DNS per tool below to activate interception": "Activez le DNS pour chaque outil ci-dessous pour activer l'interception", + "Sudo Password Required": "Mot de passe Sudo requis", + "Enter your sudo password to start/stop MITM server": "Entrez votre mot de passe sudo pour démarrer/arrêter le serveur MITM", + "Sudo Password": "Mot de passe sudo", + "Confirm": "Confirmer" +} diff --git a/cli/app/public/i18n/literals/he.json b/cli/app/public/i18n/literals/he.json new file mode 100644 index 00000000000..bb519b3c1bf --- /dev/null +++ b/cli/app/public/i18n/literals/he.json @@ -0,0 +1,196 @@ +{ + "Cancel": "ביטול", + "Delete": "מחק", + "Edit": "עריכה", + "Save": "שמור", + "Close": "סגור", + "Add": "הוספה", + "Remove": "הסרה", + "Settings": "הגדרות", + "Profile": "פרופיל", + "Dashboard": "לוח בקרה", + "Logout": "התנתקות", + "Login": "כניסה", + "Providers": "ספקים", + "Usage": "שימוש", + "API Key": "מפתח API", + "Connected": "מחובר", + "Disconnected": "מנותק", + "Active": "פעיל", + "Inactive": "לא פעיל", + "Success": "הצלחה", + "Failed": "נכשל", + "Error": "שגיאה", + "Warning": "אזהרה", + "Info": "מידע", + "Loading": "טוען", + "Search": "חיפוש", + "Filter": "סינון", + "Sort": "מיון", + "Export": "ייצוא", + "Import": "ייבוא", + "Refresh": "רענן", + "Back": "חזור", + "Next": "הבא", + "Previous": "הקודם", + "Submit": "שלח", + "Confirm": "אישור", + "Yes": "כן", + "No": "לא", + "OK": "אישור", + "Apply": "החל", + "Reset": "אפס", + "Clear": "נקה", + "Select": "בחר", + "Upload": "העלאה", + "Download": "הורדה", + "Copy": "העתק", + "Paste": "הדבק", + "Cut": "גזור", + "Undo": "ביטול", + "Redo": "חזור על", + "Name": "שם", + "Description": "תיאור", + "Status": "סטטוס", + "Type": "סוג", + "Date": "תאריך", + "Time": "זמן", + "Created": "נוצר", + "Updated": "עודכן", + "Actions": "פעולות", + "Details": "פרטים", + "View": "צפה", + "New": "חדש", + "Total": "סה\"כ", + "Count": "ספירה", + "Price": "מחיר", + "Cost": "עלות", + "Free": "חינם", + "Paid": "בתשלום", + "Enable": "הפעל", + "Disable": "כבה", + "Enabled": "הופעל", + "Disabled": "מבוטל", + "Online": "מחובר", + "Offline": "לא מחובר", + "Available": "זמין", + "Unavailable": "לא זמין", + "Required": "נדרש", + "Optional": "אופציונלי", + "Default": "ברירת מחדל", + "Custom": "מותאם", + "Advanced": "מתקדם", + "Basic": "בסיסי", + "Help": "עזרה", + "Support": "תמיכה", + "Documentation": "תיעוד", + "Version": "גרסה", + "Language": "שפה", + "Theme": "עיצוב", + "Light": "בהיר", + "Dark": "אפל", + "Auto": "אוטומטי", + "Endpoint": "נקודת קצה", + "Providers": "ספקים", + "Combos": "שילובים", + "Usage": "סטטיסטיקה", + "Quota Tracker": "עוקב הקצאה", + "MITM": "MITM", + "CLI Tools": "כלים CLI", + "Console Log": "יומן קונסול", + "System": "מערכת", + "Debug": "ניפוי שגיאות", + "Shutdown": "כיבוי", + "Close Proxy": "סגור פרוקסי", + "Are you sure you want to close the proxy server?": "האם אתה בטוח שברצונך לסגור את שרת הפרוקסי?", + "Server Disconnected": "השרת מנותק", + "The proxy server has been stopped.": "שרת הפרוקסי הופסק.", + "Reload Page": "טען מחדש את הדף", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "השירות פועל בטרמינל. אתה יכול לסגור את דף אינטרנט זה. כיבוי יעצור את השירות.", + "Manage your AI provider connections": "נהל את חיבורי ספק ה-AI שלך", + "Model combos with fallback": "שילובי מודל עם התחזוקה", + "Monitor your API usage, token consumption, and request logs": "עקוב אחרי השימוש ב-API, צריכת אסימונים ויומני בקשה", + "Intercept CLI tool traffic and route through 9Router": "תקוף את תנועת כלי CLI וניתוב דרך 9Router", + "Configure CLI tools": "הגדר כלים CLI", + "API endpoint configuration": "הגדרת נקודת קצה של API", + "Manage your preferences": "נהל את העדפותיך", + "Debug translation flow between formats": "ניפוי זרם התרגום בין פורמטים", + "Live server console output": "פלט קונסול שרת חי", + "Create model combos with fallback support": "יצור שילובי מודל עם תמיכה בהתחזוקה", + "Local Mode": "מצב מקומי", + "Running on your machine": "רץ על המחשב שלך", + "Database Location": "מיקום מסד הנתונים", + "Download Backup": "הורד גיבוי", + "Import Backup": "ייבא גיבוי", + "Database backup downloaded": "גיבוי מסד הנתונים הורד", + "Database imported successfully": "מסד הנתונים יובא בהצלחה", + "Security": "אבטחה", + "Require login": "דרוש כניסה", + "When ON, dashboard requires password. When OFF, access without login.": "כאשר כבוי, לוח הבקרה דורש סיסמה. כאשר מכובה, גישה ללא כניסה.", + "Current Password": "סיסמה נוכחית", + "Enter current password": "הזן את הסיסמה הנוכחית", + "New Password": "סיסמה חדשה", + "Enter new password": "הזן סיסמה חדשה", + "Confirm New Password": "אשר סיסמה חדשה", + "Confirm new password": "אשר סיסמה חדשה", + "Update Password": "עדכן סיסמה", + "Set Password": "הגדר סיסמה", + "Password updated successfully": "הסיסמה עודכנה בהצלחה", + "Passwords do not match": "הסיסמאות אינן תואמות", + "Routing Strategy": "אסטרטגיית ניתוב", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "מחזור בחשבונות לחלוקת עומס", + "Sticky Limit": "גבול דבוק", + "Calls per account before switching": "קריאות לפי חשבון לפני המעבר", + "Network": "רשת", + "Outbound Proxy": "פרוקסי יוצא", + "Enable proxy for OAuth + provider outbound requests.": "הפעל פרוקסי עבור בקשות יוצאות של OAuth + ספק.", + "Proxy URL": "URL פרוקסי", + "Leave empty to inherit existing env proxy (if any).": "השאר ריק כדי לרשת פרוקסי env קיים (אם יש).", + "No Proxy": "ללא פרוקסי", + "Comma-separated hostnames/domains to bypass the proxy.": "שמות משדר/תחומים מופרדים בפסיקים לעקיפת הפרוקסי.", + "Test proxy URL": "בדוק URL פרוקסי", + "Apply": "החל", + "Proxy settings applied": "הגדרות פרוקסי הופעלו", + "Proxy enabled": "פרוקסי הופעל", + "Proxy disabled": "פרוקסי מבוטל", + "Proxy test OK": "בדיקת פרוקסי בסדר", + "Proxy test failed": "בדיקת פרוקסי נכשלה", + "Please enter a Proxy URL to test": "אנא הזן URL פרוקסי לבדיקה", + "Observability": "יכולת תצפית", + "Enable Observability": "הפעל יכולת תצפית", + "Turn request detail recording on/off globally": "הפעל/כבה הקלטת פרטי בקשה בעולם", + "Max Records": "מרבי רשומות", + "Maximum request detail records to keep (older records are auto-deleted)": "מרבי רשומות פרטי בקשה לשמור (רשומות ישנות יותר נמחקות באופן אוטומטי)", + "Batch Size": "גודל אצווה", + "Number of items to accumulate before writing to database (higher = better performance)": "מספר הפריטים להצטברות לפני הכתיבה למסד הנתונים (גבוה יותר = ביצועים טובים יותר)", + "Flush Interval (ms)": "מרווח שטיפה (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "זמן מקסימום להמתנה לפני שטיפת ביפר (מונע הפסד נתונים תחת תנועה נמוכה)", + "Max JSON Size (KB)": "גודל JSON מקסימלי (KB)", + "Maximum size for each JSON field (request/response) before truncation": "גודל מקסימלי לכל שדה JSON (בקשה/תגובה) לפני חיתוך", + "All data stored on your machine": "כל הנתונים מאוחסנים במחשב שלך", + "MITM Server": "שרת MITM", + "Running": "רץ", + "Stopped": "עצור", + "Cert": "תעודה", + "Server": "שרת", + "Purpose:": "מטרה:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "השתמש ב-Antigravity IDE ו-GitHub Copilot → עם כל ספק/מודל מ-9Router", + "How it works:": "איך זה עובד:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "בקשת Antigravity/Copilot IDE → הפניה DNS ל-localhost:443 → פרוקסי MITM חוטף → 9Router → תגובה ל-Antigravity/Copilot", + "API Key": "מפתח API", + "No API keys — create one in Keys page": "אין מפתחות API — צור אחד בעמוד Keys", + "sk_9router (default)": "sk_9router (ברירת מחדל)", + "Server started": "השרת התחיל", + "Failed to start server": "הפעלת השרת נכשלה", + "Server stopped — all DNS cleared": "השרת הופסק — כל ה-DNS נוקה", + "Failed to stop server": "עצירת השרת נכשלה", + "Sudo password is required": "נדרשת סיסמת sudo", + "Stop Server": "עצור שרת", + "Start Server": "הפעל שרת", + "Enable DNS per tool below to activate interception": "הפעל DNS לכל כלי למטה להפעלת היירוט", + "Sudo Password Required": "סיסמת Sudo נדרשת", + "Enter your sudo password to start/stop MITM server": "הזן את סיסמת sudo שלך כדי להתחיל/עצור שרת MITM", + "Sudo Password": "סיסמת Sudo", + "Confirm": "אישור" +} diff --git a/cli/app/public/i18n/literals/hi.json b/cli/app/public/i18n/literals/hi.json new file mode 100644 index 00000000000..25bf5f04396 --- /dev/null +++ b/cli/app/public/i18n/literals/hi.json @@ -0,0 +1,196 @@ +{ + "Cancel": "रद्द करें", + "Delete": "हटाएं", + "Edit": "संपादित करें", + "Save": "सहेजें", + "Close": "बंद करें", + "Add": "जोड़ें", + "Remove": "निकालें", + "Settings": "सेटिंग्स", + "Profile": "प्रोफ़ाइल", + "Dashboard": "डैशबोर्ड", + "Logout": "लॉग आउट", + "Login": "लॉगिन", + "Providers": "प्रदाता", + "Usage": "उपयोग", + "API Key": "API कुंजी", + "Connected": "जुड़ा हुआ", + "Disconnected": "डिस्कनेक्ट किया गया", + "Active": "सक्रिय", + "Inactive": "निष्क्रिय", + "Success": "सफल", + "Failed": "विफल", + "Error": "त्रुटि", + "Warning": "चेतावनी", + "Info": "जानकारी", + "Loading": "लोड हो रहा है", + "Search": "खोज", + "Filter": "फिल्टर", + "Sort": "सॉर्ट करें", + "Export": "निर्यात", + "Import": "आयात", + "Refresh": "रीफ्रेश करें", + "Back": "वापस", + "Next": "आगे", + "Previous": "पिछला", + "Submit": "जमा करें", + "Confirm": "पुष्टि करें", + "Yes": "हां", + "No": "नहीं", + "OK": "ठीक है", + "Apply": "लागू करें", + "Reset": "रीसेट करें", + "Clear": "साफ़ करें", + "Select": "चुनें", + "Upload": "अपलोड करें", + "Download": "डाउनलोड करें", + "Copy": "कॉपी करें", + "Paste": "पेस्ट करें", + "Cut": "काटें", + "Undo": "पूर्ववत करें", + "Redo": "फिर से करें", + "Name": "नाम", + "Description": "विवरण", + "Status": "स्थिति", + "Type": "प्रकार", + "Date": "तारीख", + "Time": "समय", + "Created": "बनाया गया", + "Updated": "अपडेट किया गया", + "Actions": "कार्य", + "Details": "विवरण", + "View": "देखें", + "New": "नया", + "Total": "कुल", + "Count": "गिनती", + "Price": "कीमत", + "Cost": "लागत", + "Free": "मुक्त", + "Paid": "भुगतान किया गया", + "Enable": "सक्षम करें", + "Disable": "अक्षम करें", + "Enabled": "सक्षम", + "Disabled": "अक्षम", + "Online": "ऑनलाइन", + "Offline": "ऑफ़लाइन", + "Available": "उपलब्ध", + "Unavailable": "अनुपलब्ध", + "Required": "आवश्यक", + "Optional": "वैकल्पिक", + "Default": "डिफ़ॉल्ट", + "Custom": "कस्टम", + "Advanced": "उन्नत", + "Basic": "बुनियादी", + "Help": "मदद", + "Support": "समर्थन", + "Documentation": "दस्तावेज़", + "Version": "संस्करण", + "Language": "भाषा", + "Theme": "थीम", + "Light": "हल्का", + "Dark": "अंधेरा", + "Auto": "स्वचालित", + "Endpoint": "एंडपॉइंट", + "Providers": "प्रदाता", + "Combos": "कॉम्बो", + "Usage": "उपयोग के आंकड़े", + "Quota Tracker": "कोटा ट्रैकर", + "MITM": "MITM", + "CLI Tools": "उपकरण", + "Console Log": "कंसोल लॉग", + "System": "प्रणाली", + "Debug": "डीबग", + "Shutdown": "बंद करें", + "Close Proxy": "प्रॉक्सी बंद करें", + "Are you sure you want to close the proxy server?": "क्या आप वाकई प्रॉक्सी सर्वर को बंद करना चाहते हैं?", + "Server Disconnected": "सर्वर डिस्कनेक्ट किया गया", + "The proxy server has been stopped.": "प्रॉक्सी सर्वर को बंद कर दिया गया है।", + "Reload Page": "पृष्ठ को पुनः लोड करें", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "सेवा टर्मिनल में चल रही है। आप इस वेब पृष्ठ को बंद कर सकते हैं। शटडाउन सेवा को बंद कर देगा।", + "Manage your AI provider connections": "अपने AI प्रदाता कनेक्शन प्रबंधित करें", + "Model combos with fallback": "फॉलबैक के साथ मॉडल कॉम्बो", + "Monitor your API usage, token consumption, and request logs": "अपने API उपयोग, टोकन खपत और अनुरोध लॉग की निगरानी करें", + "Intercept CLI tool traffic and route through 9Router": "CLI टूल ट्रैफिक को इंटरसेप्ट करें और 9Router के माध्यम से रूट करें", + "Configure CLI tools": "CLI उपकरण कॉन्फ़िगर करें", + "API endpoint configuration": "API एंडपॉइंट कॉन्फ़िगरेशन", + "Manage your preferences": "अपनी प्राथमिकताएं प्रबंधित करें", + "Debug translation flow between formats": "फॉर्मेट के बीच अनुवाद प्रवाह डीबग करें", + "Live server console output": "लाइव सर्वर कंसोल आउटपुट", + "Create model combos with fallback support": "फॉलबैक समर्थन के साथ मॉडल कॉम्बो बनाएं", + "Local Mode": "स्थानीय मोड", + "Running on your machine": "आपकी मशीन पर चल रहा है", + "Database Location": "डेटाबेस स्थान", + "Download Backup": "बैकअप डाउनलोड करें", + "Import Backup": "बैकअप आयात करें", + "Database backup downloaded": "डेटाबेस बैकअप डाउनलोड किया गया", + "Database imported successfully": "डेटाबेस सफलतापूर्वक आयात किया गया", + "Security": "सुरक्षा", + "Require login": "लॉगिन की आवश्यकता है", + "When ON, dashboard requires password. When OFF, access without login.": "चालू होने पर, डैशबोर्ड को पासवर्ड की आवश्यकता होती है। बंद होने पर, लॉगिन के बिना एक्सेस करें।", + "Current Password": "वर्तमान पासवर्ड", + "Enter current password": "वर्तमान पासवर्ड दर्ज करें", + "New Password": "नया पासवर्ड", + "Enter new password": "नया पासवर्ड दर्ज करें", + "Confirm New Password": "नए पासवर्ड की पुष्टि करें", + "Confirm new password": "नए पासवर्ड की पुष्टि करें", + "Update Password": "पासवर्ड अपडेट करें", + "Set Password": "पासवर्ड सेट करें", + "Password updated successfully": "पासवर्ड सफलतापूर्वक अपडेट किया गया", + "Passwords do not match": "पासवर्ड मेल नहीं खाते", + "Routing Strategy": "रूटिंग रणनीति", + "Round Robin": "राउंड रॉबिन", + "Cycle through accounts to distribute load": "लोड वितरित करने के लिए खातों के माध्यम से साइकिल चलाएं", + "Sticky Limit": "स्टिकी सीमा", + "Calls per account before switching": "स्विच करने से पहले प्रति खाते कॉल", + "Network": "नेटवर्क", + "Outbound Proxy": "आउटबाउंड प्रॉक्सी", + "Enable proxy for OAuth + provider outbound requests.": "OAuth + प्रदाता आउटबाउंड अनुरोधों के लिए प्रॉक्सी सक्षम करें।", + "Proxy URL": "प्रॉक्सी URL", + "Leave empty to inherit existing env proxy (if any).": "मौजूदा env प्रॉक्सी को इनहेरिट करने के लिए खाली छोड़ें (यदि कोई हो)।", + "No Proxy": "कोई प्रॉक्सी नहीं", + "Comma-separated hostnames/domains to bypass the proxy.": "प्रॉक्सी को बायपास करने के लिए अल्पविराम से अलग की गई होस्टनाम/डोमेन।", + "Test proxy URL": "प्रॉक्सी URL का परीक्षण करें", + "Apply": "लागू करें", + "Proxy settings applied": "प्रॉक्सी सेटिंग्स लागू की गई", + "Proxy enabled": "प्रॉक्सी सक्षम", + "Proxy disabled": "प्रॉक्सी अक्षम", + "Proxy test OK": "प्रॉक्सी परीक्षण ठीक है", + "Proxy test failed": "प्रॉक्सी परीक्षण विफल", + "Please enter a Proxy URL to test": "परीक्षण के लिए कृपया एक प्रॉक्सी URL दर्ज करें", + "Observability": "पर्यवेक्षणीयता", + "Enable Observability": "पर्यवेक्षणीयता सक्षम करें", + "Turn request detail recording on/off globally": "अनुरोध विवरण रिकॉर्डिंग को विश्व स्तर पर चालू/बंद करें", + "Max Records": "अधिकतम रिकॉर्ड", + "Maximum request detail records to keep (older records are auto-deleted)": "रखने के लिए अधिकतम अनुरोध विवरण रिकॉर्ड (पुराने रिकॉर्ड स्वचालित रूप से हटाए जाते हैं)", + "Batch Size": "बैच आकार", + "Number of items to accumulate before writing to database (higher = better performance)": "डेटाबेस में लिखने से पहले जमा करने के लिए आइटम की संख्या (अधिक = बेहतर प्रदर्शन)", + "Flush Interval (ms)": "फ्लश अंतराल (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "बफर को फ्लश करने से पहले प्रतीक्षा करने का अधिकतम समय (कम ट्रैफिक के दौरान डेटा नुकसान को रोकता है)", + "Max JSON Size (KB)": "अधिकतम JSON आकार (KB)", + "Maximum size for each JSON field (request/response) before truncation": "ट्रंकेशन से पहले प्रत्येक JSON फ़ील्ड (अनुरोध/प्रतिक्रिया) के लिए अधिकतम आकार", + "All data stored on your machine": "आपकी मशीन पर सभी डेटा संग्रहीत है", + "MITM Server": "MITM सर्वर", + "Running": "चल रहा है", + "Stopped": "रुका हुआ", + "Cert": "प्रमाणपत्र", + "Server": "सर्वर", + "Purpose:": "उद्देश्य:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE और GitHub Copilot का उपयोग करें → 9Router से किसी भी प्रदाता/मॉडल के साथ", + "How it works:": "यह कैसे काम करता है:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE अनुरोध → DNS को localhost:443 में पुनर्निर्देशित करें → MITM प्रॉक्सी इंटरसेप्ट करता है → 9Router → Antigravity/Copilot को प्रतिक्रिया", + "API Key": "API कुंजी", + "No API keys — create one in Keys page": "कोई API कुंजी नहीं — Keys पृष्ठ में एक बनाएं", + "sk_9router (default)": "sk_9router (डिफ़ॉल्ट)", + "Server started": "सर्वर शुरू किया गया", + "Failed to start server": "सर्वर शुरू करने में विफल", + "Server stopped — all DNS cleared": "सर्वर बंद — सभी DNS साफ़ किए गए", + "Failed to stop server": "सर्वर को रोकने में विफल", + "Sudo password is required": "Sudo पासवर्ड की आवश्यकता है", + "Stop Server": "सर्वर बंद करें", + "Start Server": "सर्वर शुरू करें", + "Enable DNS per tool below to activate interception": "इंटरसेप्शन को सक्रिय करने के लिए नीचे प्रत्येक उपकरण के लिए DNS सक्षम करें", + "Sudo Password Required": "Sudo पासवर्ड आवश्यक है", + "Enter your sudo password to start/stop MITM server": "MITM सर्वर शुरू/रोकने के लिए अपना sudo पासवर्ड दर्ज करें", + "Sudo Password": "Sudo पासवर्ड", + "Confirm": "पुष्टि करें" +} diff --git a/cli/app/public/i18n/literals/hu.json b/cli/app/public/i18n/literals/hu.json new file mode 100644 index 00000000000..05954a0ea97 --- /dev/null +++ b/cli/app/public/i18n/literals/hu.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Mégse", + "Delete": "Törlés", + "Edit": "Szerkesztés", + "Save": "Mentés", + "Close": "Bezárás", + "Add": "Hozzáadás", + "Remove": "Eltávolítás", + "Settings": "Beállítások", + "Profile": "Profil", + "Dashboard": "Irányítópult", + "Logout": "Kijelentkezés", + "Login": "Bejelentkezés", + "Providers": "Szolgáltatók", + "Usage": "Használat", + "API Key": "API-kulcs", + "Connected": "Csatlakoztatva", + "Disconnected": "Leválasztva", + "Active": "Aktív", + "Inactive": "Inaktív", + "Success": "Siker", + "Failed": "Sikertelen", + "Error": "Hiba", + "Warning": "Figyelmeztetés", + "Info": "Információ", + "Loading": "Betöltés", + "Search": "Keresés", + "Filter": "Szűrő", + "Sort": "Rendezés", + "Export": "Exportálás", + "Import": "Importálás", + "Refresh": "Frissítés", + "Back": "Vissza", + "Next": "Következő", + "Previous": "Előző", + "Submit": "Küldés", + "Confirm": "Megerősítés", + "Yes": "Igen", + "No": "Nem", + "OK": "OK", + "Apply": "Alkalmazás", + "Reset": "Visszaállítás", + "Clear": "Törlés", + "Select": "Kiválasztás", + "Upload": "Feltöltés", + "Download": "Letöltés", + "Copy": "Másolás", + "Paste": "Beillesztés", + "Cut": "Kivágás", + "Undo": "Visszavonás", + "Redo": "Ismét", + "Name": "Név", + "Description": "Leírás", + "Status": "Állapot", + "Type": "Típus", + "Date": "Dátum", + "Time": "Idő", + "Created": "Létrehozva", + "Updated": "Frissítve", + "Actions": "Műveletek", + "Details": "Részletek", + "View": "Megtekintés", + "New": "Új", + "Total": "Összes", + "Count": "Darabszám", + "Price": "Ár", + "Cost": "Költség", + "Free": "Ingyenes", + "Paid": "Fizetős", + "Enable": "Engedélyezés", + "Disable": "Letiltás", + "Enabled": "Engedélyezve", + "Disabled": "Letiltva", + "Online": "Online", + "Offline": "Offline", + "Available": "Elérhető", + "Unavailable": "Nem elérhető", + "Required": "Kötelező", + "Optional": "Opcionális", + "Default": "Alapértelmezett", + "Custom": "Egyéni", + "Advanced": "Haladó", + "Basic": "Alapvető", + "Help": "Súgó", + "Support": "Támogatás", + "Documentation": "Dokumentáció", + "Version": "Verzió", + "Language": "Nyelv", + "Theme": "Téma", + "Light": "Világos", + "Dark": "Sötét", + "Auto": "Automatikus", + "Endpoint": "Végpont", + "Providers": "Szolgáltatók", + "Combos": "Kombinációk", + "Usage": "Használati statisztika", + "Quota Tracker": "Kvóta nyomkövetés", + "MITM": "MITM", + "CLI Tools": "Eszközök", + "Console Log": "Konzol napló", + "System": "Rendszer", + "Debug": "Hibakeresés", + "Shutdown": "Leállítás", + "Close Proxy": "Proxy bezárása", + "Are you sure you want to close the proxy server?": "Biztosan le akarja zárni a proxy szervert?", + "Server Disconnected": "Szerver leválasztva", + "The proxy server has been stopped.": "A proxy szerver leállt.", + "Reload Page": "Oldal újratöltése", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "A szolgáltatás a terminálon fut. Bezárhatja ezt a weboldalt. A leállítás megállítja a szolgáltatást.", + "Manage your AI provider connections": "Az AI-szolgáltatók kapcsolatainak kezelése", + "Model combos with fallback": "Modell kombinációk tartalékkal", + "Monitor your API usage, token consumption, and request logs": "Az API-használat, a token-fogyasztás és a kérési naplók figyelése", + "Intercept CLI tool traffic and route through 9Router": "CLI-eszköz forgalmának elfogása és az 9Router-en keresztüli irányítása", + "Configure CLI tools": "CLI-eszközök konfigurálása", + "API endpoint configuration": "API-végpont konfigurálása", + "Manage your preferences": "Előnyzeteinek kezelése", + "Debug translation flow between formats": "A fordítási folyamat hibakeresése a formátumok között", + "Live server console output": "Élő kiszolgáló konzol kimenete", + "Create model combos with fallback support": "Modell kombinációk létrehozása tartalék támogatással", + "Local Mode": "Helyi mód", + "Running on your machine": "A gépén futó", + "Database Location": "Adatbázis helye", + "Download Backup": "Biztonsági másolat letöltése", + "Import Backup": "Biztonsági másolat importálása", + "Database backup downloaded": "Adatbázis biztonsági másolat letöltve", + "Database imported successfully": "Az adatbázis sikeresen importálva", + "Security": "Biztonság", + "Require login": "Bejelentkezés szükséges", + "When ON, dashboard requires password. When OFF, access without login.": "Ha BEKAPCSOLT, az irányítópulthoz jelszó szükséges. Ha KIKAPCSOLT, bejelentkezés nélkül is hozzáférhet.", + "Current Password": "Jelenlegi jelszó", + "Enter current password": "Adja meg a jelenlegi jelszót", + "New Password": "Új jelszó", + "Enter new password": "Adja meg az új jelszót", + "Confirm New Password": "Új jelszó megerősítése", + "Confirm new password": "Erősítse meg az új jelszót", + "Update Password": "Jelszó frissítése", + "Set Password": "Jelszó beállítása", + "Password updated successfully": "A jelszó sikeresen frissítve", + "Passwords do not match": "A jelszavak nem egyeznek", + "Routing Strategy": "Útválasztási stratégia", + "Round Robin": "Fordított körforgalom", + "Cycle through accounts to distribute load": "Ciklikus váltakozás a fiókok között a terhelés elosztásához", + "Sticky Limit": "Ragadós korlát", + "Calls per account before switching": "Hívások fiókonként a váltás előtt", + "Network": "Hálózat", + "Outbound Proxy": "Kimenő proxy", + "Enable proxy for OAuth + provider outbound requests.": "Engedélyezze a proxy-t OAuth + szolgáltató kimenő kérésekhez.", + "Proxy URL": "Proxy URL", + "Leave empty to inherit existing env proxy (if any).": "Hagyja üresen a meglévő env proxy örökléséhez (ha van).", + "No Proxy": "Nincs proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Vesszővel elválasztott gazdanév/tartomány a proxy megkerüléséhez.", + "Test proxy URL": "Proxy URL-cím tesztelése", + "Apply": "Alkalmazás", + "Proxy settings applied": "Proxy beállítások alkalmazva", + "Proxy enabled": "Proxy engedélyezve", + "Proxy disabled": "Proxy letiltva", + "Proxy test OK": "Proxy teszt OK", + "Proxy test failed": "Proxy teszt sikertelen", + "Please enter a Proxy URL to test": "Kérjük, adjon meg egy Proxy URL-t teszteléshez", + "Observability": "Megfigyelhetőség", + "Enable Observability": "Megfigyelhetőség engedélyezése", + "Turn request detail recording on/off globally": "Kérés részleteinak rögzítésének be/kikapcsolása globálisan", + "Max Records": "Maximális rekordok", + "Maximum request detail records to keep (older records are auto-deleted)": "Maximális kérés részleteit tartalmaz (a régebbi rekordok automatikusan törlődnek)", + "Batch Size": "Köteg mérete", + "Number of items to accumulate before writing to database (higher = better performance)": "Az adatbázisba írás előtt felhalmozandó elemek száma (magasabb = jobb teljesítmény)", + "Flush Interval (ms)": "Kiürítési intervallum (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maximális várakozási idő a puffer kiürítése előtt (megelőzi az adatvesztést alacsony forgalom alatt)", + "Max JSON Size (KB)": "Maximális JSON méret (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maximális méret az egyes JSON-mezőkhöz (kérés/válasz) a csonkítás előtt", + "All data stored on your machine": "Az összes adat a gépén tárolt", + "MITM Server": "MITM szerver", + "Running": "Futó", + "Stopped": "Leállítva", + "Cert": "Tanúsítvány", + "Server": "Kiszolgáló", + "Purpose:": "Cél:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE és GitHub Copilot használata → az 9Router bármelyik szolgáltatójával/modelljével", + "How it works:": "Hogyan működik:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE kérés → DNS átirányítás a localhost:443-ra → MITM proxy elfogja → 9Router → válasz Antigravity/Copilot-nak", + "API Key": "API-kulcs", + "No API keys — create one in Keys page": "Nincsenek API-kulcsok — hozzon létre egyet a Keys oldalon", + "sk_9router (default)": "sk_9router (alapértelmezett)", + "Server started": "Szerver elindult", + "Failed to start server": "Nem sikerült elindítani a szervert", + "Server stopped — all DNS cleared": "A szerver leállt — az összes DNS törlésre kerül", + "Failed to stop server": "Nem sikerült leállítani a szervert", + "Sudo password is required": "Sudo jelszó szükséges", + "Stop Server": "Szerver leállítása", + "Start Server": "Szerver indítása", + "Enable DNS per tool below to activate interception": "Engedélyezze az alábbi DNS-t az elfogás aktiválásához", + "Sudo Password Required": "Sudo jelszó szükséges", + "Enter your sudo password to start/stop MITM server": "Adja meg sudo jelszavát a MITM szerver indításához/leállításához", + "Sudo Password": "Sudo jelszó", + "Confirm": "Megerősítés" +} diff --git a/cli/app/public/i18n/literals/id.json b/cli/app/public/i18n/literals/id.json new file mode 100644 index 00000000000..9d8e26e1ad6 --- /dev/null +++ b/cli/app/public/i18n/literals/id.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Batalkan", + "Delete": "Hapus", + "Edit": "Sunting", + "Save": "Simpan", + "Close": "Tutup", + "Add": "Tambah", + "Remove": "Hapus", + "Settings": "Pengaturan", + "Profile": "Profil", + "Dashboard": "Dasbor", + "Logout": "Keluar", + "Login": "Masuk", + "Providers": "Penyedia", + "Usage": "Penggunaan", + "API Key": "Kunci API", + "Connected": "Terhubung", + "Disconnected": "Terputus", + "Active": "Aktif", + "Inactive": "Nonaktif", + "Success": "Berhasil", + "Failed": "Gagal", + "Error": "Kesalahan", + "Warning": "Peringatan", + "Info": "Informasi", + "Loading": "Memuat", + "Search": "Cari", + "Filter": "Saring", + "Sort": "Urutkan", + "Export": "Ekspor", + "Import": "Impor", + "Refresh": "Segarkan", + "Back": "Kembali", + "Next": "Berikutnya", + "Previous": "Sebelumnya", + "Submit": "Kirim", + "Confirm": "Konfirmasi", + "Yes": "Ya", + "No": "Tidak", + "OK": "OK", + "Apply": "Terapkan", + "Reset": "Atur Ulang", + "Clear": "Hapus", + "Select": "Pilih", + "Upload": "Unggah", + "Download": "Unduh", + "Copy": "Salin", + "Paste": "Tempel", + "Cut": "Potong", + "Undo": "Batalkan", + "Redo": "Ulangi", + "Name": "Nama", + "Description": "Deskripsi", + "Status": "Status", + "Type": "Jenis", + "Date": "Tanggal", + "Time": "Waktu", + "Created": "Dibuat", + "Updated": "Diperbarui", + "Actions": "Tindakan", + "Details": "Detail", + "View": "Lihat", + "New": "Baru", + "Total": "Total", + "Count": "Jumlah", + "Price": "Harga", + "Cost": "Biaya", + "Free": "Gratis", + "Paid": "Berbayar", + "Enable": "Aktifkan", + "Disable": "Nonaktifkan", + "Enabled": "Diaktifkan", + "Disabled": "Dinonaktifkan", + "Online": "Daring", + "Offline": "Luring", + "Available": "Tersedia", + "Unavailable": "Tidak Tersedia", + "Required": "Diperlukan", + "Optional": "Opsional", + "Default": "Bawaan", + "Custom": "Kustom", + "Advanced": "Lanjutan", + "Basic": "Dasar", + "Help": "Bantuan", + "Support": "Dukungan", + "Documentation": "Dokumentasi", + "Version": "Versi", + "Language": "Bahasa", + "Theme": "Tema", + "Light": "Terang", + "Dark": "Gelap", + "Auto": "Otomatis", + "Endpoint": "Titik Akhir", + "Providers": "Penyedia", + "Combos": "Kombinasi", + "Usage": "Statistik Penggunaan", + "Quota Tracker": "Pelacak Kuota", + "MITM": "MITM", + "CLI Tools": "Alat", + "Console Log": "Log Konsol", + "System": "Sistem", + "Debug": "Debug", + "Shutdown": "Matikan", + "Close Proxy": "Tutup Proxy", + "Are you sure you want to close the proxy server?": "Apakah Anda yakin ingin menutup server proxy?", + "Server Disconnected": "Server Terputus", + "The proxy server has been stopped.": "Server proxy telah dihentikan.", + "Reload Page": "Muat Ulang Halaman", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Layanan sedang berjalan di terminal. Anda dapat menutup halaman web ini. Shutdown akan menghentikan layanan.", + "Manage your AI provider connections": "Kelola koneksi penyedia AI Anda", + "Model combos with fallback": "Kombinasi model dengan fallback", + "Monitor your API usage, token consumption, and request logs": "Pantau penggunaan API, konsumsi token, dan log permintaan Anda", + "Intercept CLI tool traffic and route through 9Router": "Intersep lalu lintas alat CLI dan rute melalui 9Router", + "Configure CLI tools": "Konfigurasi alat CLI", + "API endpoint configuration": "Konfigurasi titik akhir API", + "Manage your preferences": "Kelola preferensi Anda", + "Debug translation flow between formats": "Debug alur terjemahan antara format", + "Live server console output": "Output konsol server langsung", + "Create model combos with fallback support": "Buat kombinasi model dengan dukungan fallback", + "Local Mode": "Mode Lokal", + "Running on your machine": "Berjalan di mesin Anda", + "Database Location": "Lokasi Database", + "Download Backup": "Unduh Cadangan", + "Import Backup": "Impor Cadangan", + "Database backup downloaded": "Cadangan database telah diunduh", + "Database imported successfully": "Database berhasil diimpor", + "Security": "Keamanan", + "Require login": "Memerlukan Login", + "When ON, dashboard requires password. When OFF, access without login.": "Ketika AKTIF, dasbor memerlukan kata sandi. Ketika NONAKTIF, akses tanpa login.", + "Current Password": "Kata Sandi Saat Ini", + "Enter current password": "Masukkan kata sandi saat ini", + "New Password": "Kata Sandi Baru", + "Enter new password": "Masukkan kata sandi baru", + "Confirm New Password": "Konfirmasi Kata Sandi Baru", + "Confirm new password": "Konfirmasi kata sandi baru", + "Update Password": "Perbarui Kata Sandi", + "Set Password": "Atur Kata Sandi", + "Password updated successfully": "Kata sandi berhasil diperbarui", + "Passwords do not match": "Kata sandi tidak cocok", + "Routing Strategy": "Strategi Rute", + "Round Robin": "Putaran Bulat", + "Cycle through accounts to distribute load": "Siklus melalui akun untuk mendistribusikan beban", + "Sticky Limit": "Batas Lengket", + "Calls per account before switching": "Panggilan per akun sebelum beralih", + "Network": "Jaringan", + "Outbound Proxy": "Proxy Keluar", + "Enable proxy for OAuth + provider outbound requests.": "Aktifkan proxy untuk permintaan keluar OAuth + penyedia.", + "Proxy URL": "URL Proxy", + "Leave empty to inherit existing env proxy (if any).": "Biarkan kosong untuk mewarisi proxy env yang ada (jika ada).", + "No Proxy": "Tidak Ada Proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Nama host/domain yang dipisahkan koma untuk melewati proxy.", + "Test proxy URL": "Uji URL Proxy", + "Apply": "Terapkan", + "Proxy settings applied": "Pengaturan proxy diterapkan", + "Proxy enabled": "Proxy diaktifkan", + "Proxy disabled": "Proxy dinonaktifkan", + "Proxy test OK": "Tes proxy OK", + "Proxy test failed": "Tes proxy gagal", + "Please enter a Proxy URL to test": "Masukkan URL Proxy untuk diuji", + "Observability": "Observabilitas", + "Enable Observability": "Aktifkan Observabilitas", + "Turn request detail recording on/off globally": "Aktifkan/nonaktifkan pencatatan detail permintaan secara global", + "Max Records": "Rekam Maksimal", + "Maximum request detail records to keep (older records are auto-deleted)": "Rekam detail permintaan maksimal untuk disimpan (rekam lama otomatis dihapus)", + "Batch Size": "Ukuran Batch", + "Number of items to accumulate before writing to database (higher = better performance)": "Jumlah item yang diakumulasikan sebelum menulis ke database (lebih tinggi = performa lebih baik)", + "Flush Interval (ms)": "Interval Flush (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Waktu maksimum untuk menunggu sebelum mem-flush buffer (mencegah kehilangan data saat lalu lintas rendah)", + "Max JSON Size (KB)": "Ukuran JSON Maks (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Ukuran maksimum untuk setiap bidang JSON (permintaan/respons) sebelum pemotongan", + "All data stored on your machine": "Semua data disimpan di mesin Anda", + "MITM Server": "Server MITM", + "Running": "Berjalan", + "Stopped": "Dihentikan", + "Cert": "Sertifikat", + "Server": "Server", + "Purpose:": "Tujuan:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gunakan Antigravity IDE & GitHub Copilot → dengan PENYEDIA/model APA PUN dari 9Router", + "How it works:": "Cara kerjanya:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Permintaan Antigravity/Copilot IDE → Pengalihan DNS ke localhost:443 → Proxy MITM mengintersep → 9Router → respons ke Antigravity/Copilot", + "API Key": "Kunci API", + "No API keys — create one in Keys page": "Tidak ada kunci API — buat satu di halaman Keys", + "sk_9router (default)": "sk_9router (bawaan)", + "Server started": "Server dimulai", + "Failed to start server": "Gagal memulai server", + "Server stopped — all DNS cleared": "Server dihentikan — semua DNS dihapus", + "Failed to stop server": "Gagal menghentikan server", + "Sudo password is required": "Kata sandi sudo diperlukan", + "Stop Server": "Hentikan Server", + "Start Server": "Mulai Server", + "Enable DNS per tool below to activate interception": "Aktifkan DNS untuk setiap alat di bawah untuk mengaktifkan intersepsi", + "Sudo Password Required": "Kata Sandi Sudo Diperlukan", + "Enter your sudo password to start/stop MITM server": "Masukkan kata sandi sudo Anda untuk memulai/menghentikan server MITM", + "Sudo Password": "Kata Sandi Sudo", + "Confirm": "Konfirmasi" +} diff --git a/cli/app/public/i18n/literals/it.json b/cli/app/public/i18n/literals/it.json new file mode 100644 index 00000000000..18264329ba0 --- /dev/null +++ b/cli/app/public/i18n/literals/it.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Annulla", + "Delete": "Elimina", + "Edit": "Modifica", + "Save": "Salva", + "Close": "Chiudi", + "Add": "Aggiungi", + "Remove": "Rimuovi", + "Settings": "Impostazioni", + "Profile": "Profilo", + "Dashboard": "Pannello di controllo", + "Logout": "Esci", + "Login": "Accedi", + "Providers": "Provider", + "Usage": "Utilizzo", + "API Key": "Chiave API", + "Connected": "Connesso", + "Disconnected": "Disconnesso", + "Active": "Attivo", + "Inactive": "Inattivo", + "Success": "Successo", + "Failed": "Non riuscito", + "Error": "Errore", + "Warning": "Avvertenza", + "Info": "Informazioni", + "Loading": "Caricamento", + "Search": "Cerca", + "Filter": "Filtro", + "Sort": "Ordina", + "Export": "Esporta", + "Import": "Importa", + "Refresh": "Aggiorna", + "Back": "Indietro", + "Next": "Avanti", + "Previous": "Precedente", + "Submit": "Invia", + "Confirm": "Conferma", + "Yes": "Sì", + "No": "No", + "OK": "OK", + "Apply": "Applica", + "Reset": "Ripristina", + "Clear": "Cancella", + "Select": "Seleziona", + "Upload": "Carica", + "Download": "Scarica", + "Copy": "Copia", + "Paste": "Incolla", + "Cut": "Taglia", + "Undo": "Annulla", + "Redo": "Ripeti", + "Name": "Nome", + "Description": "Descrizione", + "Status": "Stato", + "Type": "Tipo", + "Date": "Data", + "Time": "Ora", + "Created": "Creato", + "Updated": "Aggiornato", + "Actions": "Azioni", + "Details": "Dettagli", + "View": "Visualizza", + "New": "Nuovo", + "Total": "Totale", + "Count": "Conteggio", + "Price": "Prezzo", + "Cost": "Costo", + "Free": "Gratuito", + "Paid": "A pagamento", + "Enable": "Abilita", + "Disable": "Disabilita", + "Enabled": "Abilitato", + "Disabled": "Disabilitato", + "Online": "Online", + "Offline": "Offline", + "Available": "Disponibile", + "Unavailable": "Non disponibile", + "Required": "Obbligatorio", + "Optional": "Opzionale", + "Default": "Predefinito", + "Custom": "Personalizzato", + "Advanced": "Avanzate", + "Basic": "Di base", + "Help": "Aiuto", + "Support": "Supporto", + "Documentation": "Documentazione", + "Version": "Versione", + "Language": "Lingua", + "Theme": "Tema", + "Light": "Chiaro", + "Dark": "Scuro", + "Auto": "Automatico", + "Endpoint": "Endpoint", + "Providers": "Provider", + "Combos": "Combinazioni", + "Usage": "Statistiche di utilizzo", + "Quota Tracker": "Tracker quota", + "MITM": "MITM", + "CLI Tools": "Strumenti", + "Console Log": "Log della console", + "System": "Sistema", + "Debug": "Debug", + "Shutdown": "Spegni", + "Close Proxy": "Chiudi proxy", + "Are you sure you want to close the proxy server?": "Sei sicuro di voler chiudere il server proxy?", + "Server Disconnected": "Server disconnesso", + "The proxy server has been stopped.": "Il server proxy è stato arrestato.", + "Reload Page": "Ricarica pagina", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Il servizio è in esecuzione nel terminale. Puoi chiudere questa pagina web. Lo spegnimento fermerà il servizio.", + "Manage your AI provider connections": "Gestisci le connessioni del tuo provider AI", + "Model combos with fallback": "Combinazioni di modelli con fallback", + "Monitor your API usage, token consumption, and request logs": "Monitora l'utilizzo dell'API, il consumo di token e i log delle richieste", + "Intercept CLI tool traffic and route through 9Router": "Intercetta il traffico dello strumento CLI e instradalo attraverso 9Router", + "Configure CLI tools": "Configura gli strumenti CLI", + "API endpoint configuration": "Configurazione dell'endpoint API", + "Manage your preferences": "Gestisci le tue preferenze", + "Debug translation flow between formats": "Debug del flusso di traduzione tra i formati", + "Live server console output": "Output della console del server in tempo reale", + "Create model combos with fallback support": "Crea combinazioni di modelli con supporto fallback", + "Local Mode": "Modalità locale", + "Running on your machine": "In esecuzione sulla tua macchina", + "Database Location": "Posizione del database", + "Download Backup": "Scarica backup", + "Import Backup": "Importa backup", + "Database backup downloaded": "Backup del database scaricato", + "Database imported successfully": "Database importato con successo", + "Security": "Sicurezza", + "Require login": "Richiedi accesso", + "When ON, dashboard requires password. When OFF, access without login.": "Quando ATTIVO, il pannello di controllo richiede la password. Quando SPENTO, accedi senza login.", + "Current Password": "Password attuale", + "Enter current password": "Inserisci la password attuale", + "New Password": "Nuova password", + "Enter new password": "Inserisci la nuova password", + "Confirm New Password": "Conferma nuova password", + "Confirm new password": "Conferma la nuova password", + "Update Password": "Aggiorna password", + "Set Password": "Imposta password", + "Password updated successfully": "Password aggiornata con successo", + "Passwords do not match": "Le password non corrispondono", + "Routing Strategy": "Strategia di routing", + "Round Robin": "Round robin", + "Cycle through accounts to distribute load": "Scorri gli account per distribuire il carico", + "Sticky Limit": "Limite appiccicoso", + "Calls per account before switching": "Chiamate per account prima del passaggio", + "Network": "Rete", + "Outbound Proxy": "Proxy in uscita", + "Enable proxy for OAuth + provider outbound requests.": "Abilita il proxy per le richieste in uscita OAuth + provider.", + "Proxy URL": "URL proxy", + "Leave empty to inherit existing env proxy (if any).": "Lascia vuoto per ereditare il proxy env esistente (se presente).", + "No Proxy": "Nessun proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Nomi host/domini separati da virgole per ignorare il proxy.", + "Test proxy URL": "Test URL proxy", + "Apply": "Applica", + "Proxy settings applied": "Impostazioni proxy applicate", + "Proxy enabled": "Proxy abilitato", + "Proxy disabled": "Proxy disabilitato", + "Proxy test OK": "Test proxy OK", + "Proxy test failed": "Test proxy non riuscito", + "Please enter a Proxy URL to test": "Inserisci un URL proxy da testare", + "Observability": "Osservabilità", + "Enable Observability": "Abilita osservabilità", + "Turn request detail recording on/off globally": "Attiva/disattiva la registrazione dei dettagli della richiesta globalmente", + "Max Records": "Record massimi", + "Maximum request detail records to keep (older records are auto-deleted)": "Record di dettagli della richiesta massimi da mantenere (i record più vecchi vengono eliminati automaticamente)", + "Batch Size": "Dimensione batch", + "Number of items to accumulate before writing to database (higher = better performance)": "Numero di elementi da accumulare prima di scrivere nel database (più alto = migliori prestazioni)", + "Flush Interval (ms)": "Intervallo di scaricamento (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Tempo massimo di attesa prima dello scaricamento del buffer (previene la perdita di dati durante il traffico basso)", + "Max JSON Size (KB)": "Dimensione JSON massima (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Dimensione massima per ogni campo JSON (richiesta/risposta) prima del troncamento", + "All data stored on your machine": "Tutti i dati memorizzati sulla tua macchina", + "MITM Server": "Server MITM", + "Running": "In esecuzione", + "Stopped": "Arrestato", + "Cert": "Certificato", + "Server": "Server", + "Purpose:": "Scopo:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Usa Antigravity IDE & GitHub Copilot → con QUALSIASI provider/modello da 9Router", + "How it works:": "Come funziona:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Richiesta Antigravity/Copilot IDE → Reindirizzamento DNS a localhost:443 → Il proxy MITM intercetta → 9Router → Risposta a Antigravity/Copilot", + "API Key": "Chiave API", + "No API keys — create one in Keys page": "Nessuna chiave API — crearne una nella pagina Chiavi", + "sk_9router (default)": "sk_9router (predefinito)", + "Server started": "Server avviato", + "Failed to start server": "Impossibile avviare il server", + "Server stopped — all DNS cleared": "Server arrestato — tutti i DNS cancellati", + "Failed to stop server": "Impossibile arrestare il server", + "Sudo password is required": "La password sudo è obbligatoria", + "Stop Server": "Arresta server", + "Start Server": "Avvia server", + "Enable DNS per tool below to activate interception": "Abilita DNS per ogni strumento sottostante per attivare l'intercettazione", + "Sudo Password Required": "Password Sudo richiesta", + "Enter your sudo password to start/stop MITM server": "Inserisci la tua password sudo per avviare/arrestare il server MITM", + "Sudo Password": "Password Sudo", + "Confirm": "Conferma" +} diff --git a/cli/app/public/i18n/literals/ja.json b/cli/app/public/i18n/literals/ja.json new file mode 100644 index 00000000000..bfb63aa30e1 --- /dev/null +++ b/cli/app/public/i18n/literals/ja.json @@ -0,0 +1,196 @@ +{ + "Cancel": "キャンセル", + "Delete": "削除", + "Edit": "編集", + "Save": "保存", + "Close": "閉じる", + "Add": "追加", + "Remove": "削除", + "Settings": "設定", + "Profile": "プロフィール", + "Dashboard": "ダッシュボード", + "Logout": "ログアウト", + "Login": "ログイン", + "Providers": "プロバイダー", + "Usage": "使用状況", + "API Key": "APIキー", + "Connected": "接続済み", + "Disconnected": "未接続", + "Active": "アクティブ", + "Inactive": "非アクティブ", + "Success": "成功", + "Failed": "失敗", + "Error": "エラー", + "Warning": "警告", + "Info": "情報", + "Loading": "読み込み中", + "Search": "検索", + "Filter": "フィルター", + "Sort": "並べ替え", + "Export": "エクスポート", + "Import": "インポート", + "Refresh": "更新", + "Back": "戻る", + "Next": "次へ", + "Previous": "前へ", + "Submit": "送信", + "Confirm": "確認", + "Yes": "はい", + "No": "いいえ", + "OK": "OK", + "Apply": "適用", + "Reset": "リセット", + "Clear": "クリア", + "Select": "選択", + "Upload": "アップロード", + "Download": "ダウンロード", + "Copy": "コピー", + "Paste": "貼り付け", + "Cut": "切り取り", + "Undo": "元に戻す", + "Redo": "やり直す", + "Name": "名前", + "Description": "説明", + "Status": "ステータス", + "Type": "タイプ", + "Date": "日付", + "Time": "時間", + "Created": "作成済み", + "Updated": "更新済み", + "Actions": "アクション", + "Details": "詳細", + "View": "表示", + "New": "新規", + "Total": "合計", + "Count": "カウント", + "Price": "価格", + "Cost": "コスト", + "Free": "無料", + "Paid": "有料", + "Enable": "有効", + "Disable": "無効", + "Enabled": "有効化済み", + "Disabled": "無効化済み", + "Online": "オンライン", + "Offline": "オフライン", + "Available": "利用可能", + "Unavailable": "利用不可", + "Required": "必須", + "Optional": "オプション", + "Default": "デフォルト", + "Custom": "カスタム", + "Advanced": "詳細", + "Basic": "基本", + "Help": "ヘルプ", + "Support": "サポート", + "Documentation": "ドキュメント", + "Version": "バージョン", + "Language": "言語", + "Theme": "テーマ", + "Light": "ライト", + "Dark": "ダーク", + "Auto": "自動", + "Endpoint": "エンドポイント", + "Providers": "プロバイダー", + "Combos": "コンボ", + "Usage": "統計", + "Quota Tracker": "クォータトラッカー", + "MITM": "MITM", + "CLI Tools": "CLIツール", + "Console Log": "コンソールログ", + "System": "システム", + "Debug": "デバッグ", + "Shutdown": "シャットダウン", + "Close Proxy": "プロキシを閉じる", + "Are you sure you want to close the proxy server?": "プロキシサーバーを閉じてもよろしいですか?", + "Server Disconnected": "サーバーが切断されました", + "The proxy server has been stopped.": "プロキシサーバーが停止しました。", + "Reload Page": "ページを再読み込み", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "サービスはターミナルで実行されています。このウェブページを閉じることができます。シャットダウンはサービスを停止します。", + "Manage your AI provider connections": "AIプロバイダーの接続を管理する", + "Model combos with fallback": "フォールバック付きモデルコンボ", + "Monitor your API usage, token consumption, and request logs": "APIの使用状況、トークン消費量、およびリクエストログを監視する", + "Intercept CLI tool traffic and route through 9Router": "CLIツールのトラフィックをインターセプトし、9Routerを通じてルーティングする", + "Configure CLI tools": "CLIツールを構成", + "API endpoint configuration": "APIエンドポイント構成", + "Manage your preferences": "設定を管理する", + "Debug translation flow between formats": "形式間の翻訳フローをデバッグ", + "Live server console output": "ライブサーバーコンソール出力", + "Create model combos with fallback support": "フォールバックサポート付きモデルコンボを作成", + "Local Mode": "ローカルモード", + "Running on your machine": "お使いのマシンで実行中", + "Database Location": "データベースの場所", + "Download Backup": "バックアップをダウンロード", + "Import Backup": "バックアップをインポート", + "Database backup downloaded": "データベースバックアップがダウンロードされました", + "Database imported successfully": "データベースが正常にインポートされました", + "Security": "セキュリティ", + "Require login": "ログインが必要", + "When ON, dashboard requires password. When OFF, access without login.": "ON の場合、ダッシュボードはパスワードが必要です。OFF の場合、ログインなしでアクセスできます。", + "Current Password": "現在のパスワード", + "Enter current password": "現在のパスワードを入力", + "New Password": "新しいパスワード", + "Enter new password": "新しいパスワードを入力", + "Confirm New Password": "新しいパスワードを確認", + "Confirm new password": "新しいパスワードを確認", + "Update Password": "パスワードを更新", + "Set Password": "パスワードを設定", + "Password updated successfully": "パスワードが正常に更新されました", + "Passwords do not match": "パスワードが一致しません", + "Routing Strategy": "ルーティング戦略", + "Round Robin": "ラウンドロビン", + "Cycle through accounts to distribute load": "アカウント間を循環してロードを分散", + "Sticky Limit": "スティッキーリミット", + "Calls per account before switching": "切り替え前のアカウントごとのコール数", + "Network": "ネットワーク", + "Outbound Proxy": "アウトバウンドプロキシ", + "Enable proxy for OAuth + provider outbound requests.": "OAuth + プロバイダーアウトバウンドリクエストのプロキシを有効にします。", + "Proxy URL": "プロキシURL", + "Leave empty to inherit existing env proxy (if any).": "既存の環境プロキシを継承するには空のままにしてください。", + "No Proxy": "プロキシなし", + "Comma-separated hostnames/domains to bypass the proxy.": "プロキシをバイパスするためのコンマ区切りのホスト名/ドメイン。", + "Test proxy URL": "プロキシURLをテスト", + "Apply": "適用", + "Proxy settings applied": "プロキシ設定が適用されました", + "Proxy enabled": "プロキシが有効になりました", + "Proxy disabled": "プロキシが無効になりました", + "Proxy test OK": "プロキシテストOK", + "Proxy test failed": "プロキシテストが失敗しました", + "Please enter a Proxy URL to test": "テストするプロキシURLを入力してください", + "Observability": "可観測性", + "Enable Observability": "可観測性を有効にする", + "Turn request detail recording on/off globally": "リクエスト詳細記録をグローバルにオン/オフにします", + "Max Records": "最大レコード数", + "Maximum request detail records to keep (older records are auto-deleted)": "保持するリクエスト詳細レコードの最大数(古いレコードは自動削除されます)", + "Batch Size": "バッチサイズ", + "Number of items to accumulate before writing to database (higher = better performance)": "データベースに書き込む前に蓄積するアイテム数(高い = パフォーマンス向上)", + "Flush Interval (ms)": "フラッシュ間隔 (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "バッファをフラッシュする前の最大待機時間(低トラフィック中のデータ損失を防ぎます)", + "Max JSON Size (KB)": "最大JSON サイズ (KB)", + "Maximum size for each JSON field (request/response) before truncation": "切り詰め前の各JSONフィールド(リクエスト/レスポンス)の最大サイズ", + "All data stored on your machine": "すべてのデータがお使いのマシンに保存されます", + "MITM Server": "MITMサーバー", + "Running": "実行中", + "Stopped": "停止済み", + "Cert": "証明書", + "Server": "サーバー", + "Purpose:": "目的:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE & GitHub Copilot → 9Router の任意のプロバイダー/モデルを使用", + "How it works:": "しくみ:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE リクエスト → localhost:443 への DNS リダイレクト → MITM プロキシが傍受 → 9Router → Antigravity/Copilot への応答", + "API Key": "APIキー", + "No API keys — create one in Keys page": "APIキーがありません — キーページで1つ作成してください", + "sk_9router (default)": "sk_9router(デフォルト)", + "Server started": "サーバーが開始されました", + "Failed to start server": "サーバーの開始に失敗しました", + "Server stopped — all DNS cleared": "サーバーが停止しました — すべてのDNSがクリアされました", + "Failed to stop server": "サーバーの停止に失敗しました", + "Sudo password is required": "Sudoパスワードが必要です", + "Stop Server": "サーバーを停止", + "Start Server": "サーバーを開始", + "Enable DNS per tool below to activate interception": "以下の各ツールに対してDNSを有効にして、傍受をアクティブにします", + "Sudo Password Required": "Sudoパスワードが必要です", + "Enter your sudo password to start/stop MITM server": "MITMサーバーを開始/停止するには、sudoパスワードを入力してください", + "Sudo Password": "Sudoパスワード", + "Confirm": "確認" +} diff --git a/cli/app/public/i18n/literals/ko.json b/cli/app/public/i18n/literals/ko.json new file mode 100644 index 00000000000..85deabe4d66 --- /dev/null +++ b/cli/app/public/i18n/literals/ko.json @@ -0,0 +1,196 @@ +{ + "Cancel": "취소", + "Delete": "삭제", + "Edit": "편집", + "Save": "저장", + "Close": "닫기", + "Add": "추가", + "Remove": "제거", + "Settings": "설정", + "Profile": "프로필", + "Dashboard": "대시보드", + "Logout": "로그아웃", + "Login": "로그인", + "Providers": "제공자", + "Usage": "사용 현황", + "API Key": "API 키", + "Connected": "연결됨", + "Disconnected": "연결 해제됨", + "Active": "활성", + "Inactive": "비활성", + "Success": "성공", + "Failed": "실패", + "Error": "오류", + "Warning": "경고", + "Info": "정보", + "Loading": "로딩 중", + "Search": "검색", + "Filter": "필터", + "Sort": "정렬", + "Export": "내보내기", + "Import": "가져오기", + "Refresh": "새로고침", + "Back": "뒤로", + "Next": "다음", + "Previous": "이전", + "Submit": "제출", + "Confirm": "확인", + "Yes": "예", + "No": "아니오", + "OK": "확인", + "Apply": "적용", + "Reset": "재설정", + "Clear": "지우기", + "Select": "선택", + "Upload": "업로드", + "Download": "다운로드", + "Copy": "복사", + "Paste": "붙여넣기", + "Cut": "잘라내기", + "Undo": "실행 취소", + "Redo": "다시 실행", + "Name": "이름", + "Description": "설명", + "Status": "상태", + "Type": "유형", + "Date": "날짜", + "Time": "시간", + "Created": "생성됨", + "Updated": "업데이트됨", + "Actions": "작업", + "Details": "세부정보", + "View": "보기", + "New": "새로 만들기", + "Total": "합계", + "Count": "개수", + "Price": "가격", + "Cost": "비용", + "Free": "무료", + "Paid": "유료", + "Enable": "활성화", + "Disable": "비활성화", + "Enabled": "활성화됨", + "Disabled": "비활성화됨", + "Online": "온라인", + "Offline": "오프라인", + "Available": "사용 가능", + "Unavailable": "사용 불가", + "Required": "필수", + "Optional": "선택사항", + "Default": "기본값", + "Custom": "사용자 지정", + "Advanced": "고급", + "Basic": "기본", + "Help": "도움말", + "Support": "지원", + "Documentation": "설명서", + "Version": "버전", + "Language": "언어", + "Theme": "테마", + "Light": "밝음", + "Dark": "어두움", + "Auto": "자동", + "Endpoint": "엔드포인트", + "Providers": "제공자", + "Combos": "조합", + "Usage": "통계", + "Quota Tracker": "할당량 추적", + "MITM": "MITM", + "CLI Tools": "CLI 도구", + "Console Log": "콘솔 로그", + "System": "시스템", + "Debug": "디버깅", + "Shutdown": "종료", + "Close Proxy": "프록시 닫기", + "Are you sure you want to close the proxy server?": "프록시 서버를 닫으시겠습니까?", + "Server Disconnected": "서버 연결 해제됨", + "The proxy server has been stopped.": "프록시 서버가 중지되었습니다.", + "Reload Page": "페이지 다시 로드", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "서비스가 터미널에서 실행 중입니다. 이 웹 페이지를 닫을 수 있습니다. 종료하면 서비스가 중지됩니다.", + "Manage your AI provider connections": "AI 제공자 연결 관리", + "Model combos with fallback": "폴백 기능이 있는 모델 조합", + "Monitor your API usage, token consumption, and request logs": "API 사용, 토큰 소비 및 요청 로그 모니터링", + "Intercept CLI tool traffic and route through 9Router": "CLI 도구 트래픽을 가로채고 9Router를 통해 라우팅", + "Configure CLI tools": "CLI 도구 구성", + "API endpoint configuration": "API 엔드포인트 구성", + "Manage your preferences": "기본 설정 관리", + "Debug translation flow between formats": "형식 간 변환 흐름 디버깅", + "Live server console output": "라이브 서버 콘솔 출력", + "Create model combos with fallback support": "폴백 지원이 있는 모델 조합 만들기", + "Local Mode": "로컬 모드", + "Running on your machine": "컴퓨터에서 실행 중", + "Database Location": "데이터베이스 위치", + "Download Backup": "백업 다운로드", + "Import Backup": "백업 가져오기", + "Database backup downloaded": "데이터베이스 백업 다운로드됨", + "Database imported successfully": "데이터베이스를 성공적으로 가져왔습니다", + "Security": "보안", + "Require login": "로그인 필요", + "When ON, dashboard requires password. When OFF, access without login.": "ON일 때 대시보드에서 암호가 필요합니다. OFF일 때 로그인 없이 접근할 수 있습니다.", + "Current Password": "현재 암호", + "Enter current password": "현재 암호 입력", + "New Password": "새 암호", + "Enter new password": "새 암호 입력", + "Confirm New Password": "새 암호 확인", + "Confirm new password": "새 암호 확인", + "Update Password": "암호 업데이트", + "Set Password": "암호 설정", + "Password updated successfully": "암호가 성공적으로 업데이트되었습니다", + "Passwords do not match": "암호가 일치하지 않습니다", + "Routing Strategy": "라우팅 전략", + "Round Robin": "라운드 로빈", + "Cycle through accounts to distribute load": "계정을 순환하여 로드 분산", + "Sticky Limit": "고정 제한", + "Calls per account before switching": "전환 전 계정당 호출 수", + "Network": "네트워크", + "Outbound Proxy": "아웃바운드 프록시", + "Enable proxy for OAuth + provider outbound requests.": "OAuth + 제공자 아웃바운드 요청에 대한 프록시를 활성화합니다.", + "Proxy URL": "프록시 URL", + "Leave empty to inherit existing env proxy (if any).": "기존 환경 프록시를 상속받으려면 비워두세요.", + "No Proxy": "프록시 없음", + "Comma-separated hostnames/domains to bypass the proxy.": "프록시를 우회하기 위한 쉼표로 구분된 호스트명/도메인입니다.", + "Test proxy URL": "프록시 URL 테스트", + "Apply": "적용", + "Proxy settings applied": "프록시 설정이 적용되었습니다", + "Proxy enabled": "프록시 활성화됨", + "Proxy disabled": "프록시 비활성화됨", + "Proxy test OK": "프록시 테스트 성공", + "Proxy test failed": "프록시 테스트 실패", + "Please enter a Proxy URL to test": "테스트할 프록시 URL을 입력하세요", + "Observability": "관찰 가능성", + "Enable Observability": "관찰 가능성 활성화", + "Turn request detail recording on/off globally": "요청 세부 정보 기록을 전역적으로 켜기/끄기", + "Max Records": "최대 레코드", + "Maximum request detail records to keep (older records are auto-deleted)": "보관할 최대 요청 세부 정보 레코드(오래된 레코드는 자동 삭제됨)", + "Batch Size": "배치 크기", + "Number of items to accumulate before writing to database (higher = better performance)": "데이터베이스에 쓰기 전에 누적할 항목 수(높을수록 더 나은 성능)", + "Flush Interval (ms)": "플러시 간격 (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "버퍼를 플러시하기 전 최대 대기 시간(낮은 트래픽 중 데이터 손실 방지)", + "Max JSON Size (KB)": "최대 JSON 크기 (KB)", + "Maximum size for each JSON field (request/response) before truncation": "자르기 전 각 JSON 필드(요청/응답)의 최대 크기", + "All data stored on your machine": "모든 데이터가 컴퓨터에 저장됨", + "MITM Server": "MITM 서버", + "Running": "실행 중", + "Stopped": "중지됨", + "Cert": "인증서", + "Server": "서버", + "Purpose:": "목적:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE 및 GitHub Copilot 사용 → 9Router의 모든 제공자/모델과 함께", + "How it works:": "작동 방식:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE 요청 → localhost:443로 DNS 리디렉션 → MITM 프록시가 가로챔 → 9Router → Antigravity/Copilot으로 응답", + "API Key": "API 키", + "No API keys — create one in Keys page": "API 키 없음 — 키 페이지에서 만들기", + "sk_9router (default)": "sk_9router (기본값)", + "Server started": "서버 시작됨", + "Failed to start server": "서버 시작 실패", + "Server stopped — all DNS cleared": "서버 중지됨 — 모든 DNS 지워짐", + "Failed to stop server": "서버 중지 실패", + "Sudo password is required": "Sudo 암호가 필요합니다", + "Stop Server": "서버 중지", + "Start Server": "서버 시작", + "Enable DNS per tool below to activate interception": "아래 각 도구에 대해 DNS를 활성화하여 가로채기 활성화", + "Sudo Password Required": "Sudo 암호 필요", + "Enter your sudo password to start/stop MITM server": "MITM 서버를 시작/중지하려면 sudo 암호를 입력하세요", + "Sudo Password": "Sudo 암호", + "Confirm": "확인" +} diff --git a/cli/app/public/i18n/literals/nl.json b/cli/app/public/i18n/literals/nl.json new file mode 100644 index 00000000000..38ca28e8558 --- /dev/null +++ b/cli/app/public/i18n/literals/nl.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Annuleren", + "Delete": "Verwijderen", + "Edit": "Bewerken", + "Save": "Opslaan", + "Close": "Sluiten", + "Add": "Toevoegen", + "Remove": "Verwijderen", + "Settings": "Instellingen", + "Profile": "Profiel", + "Dashboard": "Dashboard", + "Logout": "Afmelden", + "Login": "Aanmelden", + "Providers": "Providers", + "Usage": "Gebruik", + "API Key": "API-sleutel", + "Connected": "Verbonden", + "Disconnected": "Verbroken", + "Active": "Actief", + "Inactive": "Inactief", + "Success": "Succes", + "Failed": "Mislukt", + "Error": "Fout", + "Warning": "Waarschuwing", + "Info": "Info", + "Loading": "Laden", + "Search": "Zoeken", + "Filter": "Filteren", + "Sort": "Sorteren", + "Export": "Exporteren", + "Import": "Importeren", + "Refresh": "Vernieuwen", + "Back": "Terug", + "Next": "Volgende", + "Previous": "Vorige", + "Submit": "Verzenden", + "Confirm": "Bevestigen", + "Yes": "Ja", + "No": "Nee", + "OK": "OK", + "Apply": "Toepassen", + "Reset": "Opnieuw instellen", + "Clear": "Wissen", + "Select": "Selecteren", + "Upload": "Uploaden", + "Download": "Downloaden", + "Copy": "Kopieëren", + "Paste": "Plakken", + "Cut": "Knippen", + "Undo": "Ongedaan maken", + "Redo": "Opnieuw uitvoeren", + "Name": "Naam", + "Description": "Beschrijving", + "Status": "Status", + "Type": "Type", + "Date": "Datum", + "Time": "Tijd", + "Created": "Gemaakt", + "Updated": "Bijgewerkt", + "Actions": "Acties", + "Details": "Details", + "View": "Weergeven", + "New": "Nieuw", + "Total": "Totaal", + "Count": "Aantal", + "Price": "Prijs", + "Cost": "Kosten", + "Free": "Gratis", + "Paid": "Betaald", + "Enable": "Inschakelen", + "Disable": "Uitschakelen", + "Enabled": "Ingeschakeld", + "Disabled": "Uitgeschakeld", + "Online": "Online", + "Offline": "Offline", + "Available": "Beschikbaar", + "Unavailable": "Niet beschikbaar", + "Required": "Verplicht", + "Optional": "Optioneel", + "Default": "Standaard", + "Custom": "Aangepast", + "Advanced": "Geavanceerd", + "Basic": "Basis", + "Help": "Help", + "Support": "Ondersteuning", + "Documentation": "Documentatie", + "Version": "Versie", + "Language": "Taal", + "Theme": "Thema", + "Light": "Licht", + "Dark": "Donker", + "Auto": "Automatisch", + "Endpoint": "Eindpunt", + "Providers": "Providers", + "Combos": "Combinaties", + "Usage": "Statistieken", + "Quota Tracker": "Quotabijhouder", + "MITM": "MITM", + "CLI Tools": "CLI-tools", + "Console Log": "Consolenlogboek", + "System": "Systeem", + "Debug": "Foutopsporing", + "Shutdown": "Afsluiten", + "Close Proxy": "Proxy sluiten", + "Are you sure you want to close the proxy server?": "Weet u zeker dat u de proxyserver wilt sluiten?", + "Server Disconnected": "Server verbroken", + "The proxy server has been stopped.": "De proxyserver is gestopt.", + "Reload Page": "Pagina vernieuwen", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Service wordt uitgevoerd in terminal. U kunt deze webpagina sluiten. Afsluiten stopt de service.", + "Manage your AI provider connections": "Beheer uw AI-providerverbindingen", + "Model combos with fallback": "Modelcombinaties met fallback", + "Monitor your API usage, token consumption, and request logs": "Controleer uw API-gebruik, tokenverbruik en aanvraaglogboeken", + "Intercept CLI tool traffic and route through 9Router": "Onderschep CLI-toolverkeer en stuur het via 9Router", + "Configure CLI tools": "CLI-tools configureren", + "API endpoint configuration": "Configuratie van API-eindpunt", + "Manage your preferences": "Beheer uw voorkeuren", + "Debug translation flow between formats": "Debug de vertaalstroom tussen indelingen", + "Live server console output": "Live-serverconsoluitvoer", + "Create model combos with fallback support": "Maak modelcombinaties met fallback-ondersteuning", + "Local Mode": "Lokale modus", + "Running on your machine": "Actief op uw machine", + "Database Location": "Databaselocatie", + "Download Backup": "Backup downloaden", + "Import Backup": "Backup importeren", + "Database backup downloaded": "Databaseback-up gedownload", + "Database imported successfully": "Database succesvol geïmporteerd", + "Security": "Beveiliging", + "Require login": "Aanmelden vereist", + "When ON, dashboard requires password. When OFF, access without login.": "Wanneer AAN, vereist dashboard een wachtwoord. Wanneer UIT, toegang zonder aanmelden.", + "Current Password": "Huidig wachtwoord", + "Enter current password": "Voer het huidige wachtwoord in", + "New Password": "Nieuw wachtwoord", + "Enter new password": "Voer een nieuw wachtwoord in", + "Confirm New Password": "Nieuw wachtwoord bevestigen", + "Confirm new password": "Bevestig het nieuwe wachtwoord", + "Update Password": "Wachtwoord bijwerken", + "Set Password": "Wachtwoord instellen", + "Password updated successfully": "Wachtwoord succesvol bijgewerkt", + "Passwords do not match": "Wachtwoorden komen niet overeen", + "Routing Strategy": "Routeringsstrategie", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Wisselen tussen accounts om belasting te verdelen", + "Sticky Limit": "Plakkerige limiet", + "Calls per account before switching": "Oproepen per account voordat u overschakelt", + "Network": "Netwerk", + "Outbound Proxy": "Uitgaande proxy", + "Enable proxy for OAuth + provider outbound requests.": "Schakel proxy in voor OAuth + uitgaande verzoeken van provider.", + "Proxy URL": "Proxy-URL", + "Leave empty to inherit existing env proxy (if any).": "Laat leeg om bestaande env-proxy over te nemen (indien aanwezig).", + "No Proxy": "Geen proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Door komma's gescheiden hostnamen/domeinen om de proxy te omzeilen.", + "Test proxy URL": "Proxy-URL testen", + "Apply": "Toepassen", + "Proxy settings applied": "Proxy-instellingen toegepast", + "Proxy enabled": "Proxy ingeschakeld", + "Proxy disabled": "Proxy uitgeschakeld", + "Proxy test OK": "Proxy-test OK", + "Proxy test failed": "Proxy-test mislukt", + "Please enter a Proxy URL to test": "Voer een proxy-URL in om te testen", + "Observability": "Waarneembaarheid", + "Enable Observability": "Waarneembaarheid inschakelen", + "Turn request detail recording on/off globally": "Recordering van aanvraagdetails globaal in-/uitschakelen", + "Max Records": "Maximale records", + "Maximum request detail records to keep (older records are auto-deleted)": "Maximale aantal aanvraagdetailrecords om te behouden (oudere records worden automatisch verwijderd)", + "Batch Size": "Batchgrootte", + "Number of items to accumulate before writing to database (higher = better performance)": "Aantal items dat moet worden verzameld voordat naar database wordt geschreven (hoger = beter prestaties)", + "Flush Interval (ms)": "Spoelinterval (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maximale wachttijd voordat buffer wordt leeggemaakt (voorkomt gegevensverlies bij laag verkeer)", + "Max JSON Size (KB)": "Maximale JSON-grootte (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maximale grootte voor elk JSON-veld (aanvraag/antwoord) voordat afkappen", + "All data stored on your machine": "Alle gegevens opgeslagen op uw machine", + "MITM Server": "MITM-server", + "Running": "Actief", + "Stopped": "Gestopt", + "Cert": "Certificaat", + "Server": "Server", + "Purpose:": "Doel:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gebruik Antigravity IDE en GitHub Copilot → met ELKE provider/model van 9Router", + "How it works:": "Hoe het werkt:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-aanvraag → DNS-omleiding naar localhost:443 → MITM-proxy onderschept → 9Router → antwoord naar Antigravity/Copilot", + "API Key": "API-sleutel", + "No API keys — create one in Keys page": "Geen API-sleutels — maak er één aan op de pagina Sleutels", + "sk_9router (default)": "sk_9router (standaard)", + "Server started": "Server gestart", + "Failed to start server": "Server starten mislukt", + "Server stopped — all DNS cleared": "Server gestopt — alle DNS gewist", + "Failed to stop server": "Server stoppen mislukt", + "Sudo password is required": "Sudo-wachtwoord vereist", + "Stop Server": "Server stoppen", + "Start Server": "Server starten", + "Enable DNS per tool below to activate interception": "Schakel DNS in voor elk hulpmiddel hieronder om onderschepping te activeren", + "Sudo Password Required": "Sudo-wachtwoord vereist", + "Enter your sudo password to start/stop MITM server": "Voer uw sudo-wachtwoord in om de MITM-server te starten/stoppen", + "Sudo Password": "Sudo-wachtwoord", + "Confirm": "Bevestigen" +} diff --git a/cli/app/public/i18n/literals/no.json b/cli/app/public/i18n/literals/no.json new file mode 100644 index 00000000000..e9af007c48b --- /dev/null +++ b/cli/app/public/i18n/literals/no.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Avbryt", + "Delete": "Slett", + "Edit": "Rediger", + "Save": "Lagre", + "Close": "Lukk", + "Add": "Legg til", + "Remove": "Fjern", + "Settings": "Innstillinger", + "Profile": "Profil", + "Dashboard": "Kontrollpanel", + "Logout": "Logg ut", + "Login": "Logg inn", + "Providers": "Leverandører", + "Usage": "Bruk", + "API Key": "API-nøkkel", + "Connected": "Tilkoblet", + "Disconnected": "Frakoblet", + "Active": "Aktiv", + "Inactive": "Inaktiv", + "Success": "Suksess", + "Failed": "Mislyktes", + "Error": "Feil", + "Warning": "Advarsel", + "Info": "Informasjon", + "Loading": "Laster", + "Search": "Søk", + "Filter": "Filter", + "Sort": "Sorter", + "Export": "Eksporter", + "Import": "Importer", + "Refresh": "Oppdater", + "Back": "Tilbake", + "Next": "Neste", + "Previous": "Forrige", + "Submit": "Send inn", + "Confirm": "Bekreft", + "Yes": "Ja", + "No": "Nei", + "OK": "OK", + "Apply": "Bruk", + "Reset": "Tilbakestill", + "Clear": "Tøm", + "Select": "Velg", + "Upload": "Last opp", + "Download": "Last ned", + "Copy": "Kopier", + "Paste": "Lim inn", + "Cut": "Klipp", + "Undo": "Angre", + "Redo": "Gjør på nytt", + "Name": "Navn", + "Description": "Beskrivelse", + "Status": "Status", + "Type": "Type", + "Date": "Dato", + "Time": "Tid", + "Created": "Opprettet", + "Updated": "Oppdatert", + "Actions": "Handlinger", + "Details": "Detaljer", + "View": "Vis", + "New": "Ny", + "Total": "Total", + "Count": "Antall", + "Price": "Pris", + "Cost": "Kostnad", + "Free": "Gratis", + "Paid": "Betalt", + "Enable": "Aktiver", + "Disable": "Deaktiver", + "Enabled": "Aktivert", + "Disabled": "Deaktivert", + "Online": "Pålogget", + "Offline": "Frakoblet", + "Available": "Tilgjengelig", + "Unavailable": "Utilgjengelig", + "Required": "Obligatorisk", + "Optional": "Valgfritt", + "Default": "Standard", + "Custom": "Tilpasset", + "Advanced": "Avansert", + "Basic": "Grunnleggende", + "Help": "Hjelp", + "Support": "Støtte", + "Documentation": "Dokumentasjon", + "Version": "Versjon", + "Language": "Språk", + "Theme": "Tema", + "Light": "Lys", + "Dark": "Mørk", + "Auto": "Automatisk", + "Endpoint": "Endepunkt", + "Providers": "Leverandører", + "Combos": "Kombinasjoner", + "Usage": "Bruksstatistikk", + "Quota Tracker": "Kvotasporer", + "MITM": "MITM", + "CLI Tools": "Verktøy", + "Console Log": "Konsollogg", + "System": "System", + "Debug": "Feilsøking", + "Shutdown": "Slå av", + "Close Proxy": "Lukk proxy", + "Are you sure you want to close the proxy server?": "Er du sikker på at du vil lukke proxyserveren?", + "Server Disconnected": "Server frakoblet", + "The proxy server has been stopped.": "Proxyserveren har blitt stoppet.", + "Reload Page": "Last inn siden på nytt", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Tjenesten kjører i terminalen. Du kan lukke denne nettsiden. Slå av vil stoppe tjenesten.", + "Manage your AI provider connections": "Administrer AI-leverandørforbindelsene dine", + "Model combos with fallback": "Modellkombinasjoner med fallback", + "Monitor your API usage, token consumption, and request logs": "Overvåk API-bruken, tokenforbruk og anmodningslogger", + "Intercept CLI tool traffic and route through 9Router": "Avlytting av CLI-verktøy trafikk og rute gjennom 9Router", + "Configure CLI tools": "Konfigurer CLI-verktøy", + "API endpoint configuration": "Konfiguration av API-endepunkt", + "Manage your preferences": "Administrer dine preferanser", + "Debug translation flow between formats": "Feilsøking av oversettelsesflyt mellom formater", + "Live server console output": "Direkte serverkonsolresultat", + "Create model combos with fallback support": "Opprett modellkombinasjoner med fallback-støtte", + "Local Mode": "Lokalt modus", + "Running on your machine": "Kjørende på maskinen din", + "Database Location": "Databaseplassering", + "Download Backup": "Last ned sikkerhetskopi", + "Import Backup": "Importer sikkerhetskopi", + "Database backup downloaded": "Databasesikkerhetskopi lastet ned", + "Database imported successfully": "Database importert med suksess", + "Security": "Sikkerhet", + "Require login": "Krev innlogging", + "When ON, dashboard requires password. When OFF, access without login.": "Når PÅ krever kontrollpanelet passord. Når AV, tilgang uten innlogging.", + "Current Password": "Gjeldende passord", + "Enter current password": "Skriv inn gjeldende passord", + "New Password": "Nytt passord", + "Enter new password": "Skriv inn nytt passord", + "Confirm New Password": "Bekreft nytt passord", + "Confirm new password": "Bekreft nytt passord", + "Update Password": "Oppdater passord", + "Set Password": "Angi passord", + "Password updated successfully": "Passord oppdatert med suksess", + "Passwords do not match": "Passordene samsvarer ikke", + "Routing Strategy": "Rutestrategi", + "Round Robin": "Runderobin", + "Cycle through accounts to distribute load": "Syklus gjennom kontoer for å distribuere belastning", + "Sticky Limit": "Klebrig grense", + "Calls per account before switching": "Anrop per konto før bytte", + "Network": "Nettverk", + "Outbound Proxy": "Utgående proxy", + "Enable proxy for OAuth + provider outbound requests.": "Aktiver proxy for OAuth + leverandør utgående forespørsler.", + "Proxy URL": "Proxy-URL", + "Leave empty to inherit existing env proxy (if any).": "La være tom for å arve eksisterende env-proxy (hvis noen).", + "No Proxy": "Ingen proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Kommaseparerte vertsnavner/domener for å omgå proxyen.", + "Test proxy URL": "Test proxy-URL", + "Apply": "Bruk", + "Proxy settings applied": "Proxyinnstillinger brukt", + "Proxy enabled": "Proxy aktivert", + "Proxy disabled": "Proxy deaktivert", + "Proxy test OK": "Proxytest OK", + "Proxy test failed": "Proxytest mislyktes", + "Please enter a Proxy URL to test": "Vennligst skriv inn en proxy-URL å teste", + "Observability": "Observerbarhet", + "Enable Observability": "Aktiver observerbarhet", + "Turn request detail recording on/off globally": "Slå detaljregistrering av forespørsel på/av globalt", + "Max Records": "Max-poster", + "Maximum request detail records to keep (older records are auto-deleted)": "Maksimum anmodningsdetaljposter å beholde (eldre poster blir automatisk slettet)", + "Batch Size": "Batch-størrelse", + "Number of items to accumulate before writing to database (higher = better performance)": "Antall elementer som skal akkumuleres før skriving til database (høyere = bedre ytelse)", + "Flush Interval (ms)": "Spylt intervall (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maksimal ventetid før spyling av buffer (forhindrer tap av data under lavt trafikk)", + "Max JSON Size (KB)": "Maks JSON-størrelse (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maksimal størrelse for hvert JSON-felt (forespørsel/svar) før avkutting", + "All data stored on your machine": "Alle data lagret på maskinen din", + "MITM Server": "MITM-server", + "Running": "Kjørende", + "Stopped": "Stoppet", + "Cert": "Sertifikat", + "Server": "Server", + "Purpose:": "Formål:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Bruk Antigravity IDE & GitHub Copilot → med ENHVER leverandør/modell fra 9Router", + "How it works:": "Slik fungerer det:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-forespørsel → DNS-omdirigering til localhost:443 → MITM-proxy avlytt → 9Router → svar til Antigravity/Copilot", + "API Key": "API-nøkkel", + "No API keys — create one in Keys page": "Ingen API-nøkler — lag en på Keys-siden", + "sk_9router (default)": "sk_9router (standard)", + "Server started": "Server startet", + "Failed to start server": "Klarte ikke å starte server", + "Server stopped — all DNS cleared": "Server stoppet — alle DNS ryddet", + "Failed to stop server": "Klarte ikke å stoppe server", + "Sudo password is required": "Sudo-passord er påkrevd", + "Stop Server": "Stopp server", + "Start Server": "Start server", + "Enable DNS per tool below to activate interception": "Aktiver DNS for hvert verktøy nedenfor for å aktivere avlytting", + "Sudo Password Required": "Sudo-passord påkrevd", + "Enter your sudo password to start/stop MITM server": "Skriv inn sudo-passordet ditt for å starte/stoppe MITM-server", + "Sudo Password": "Sudo-passord", + "Confirm": "Bekreft" +} diff --git a/cli/app/public/i18n/literals/pl.json b/cli/app/public/i18n/literals/pl.json new file mode 100644 index 00000000000..4c857330e0f --- /dev/null +++ b/cli/app/public/i18n/literals/pl.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Anuluj", + "Delete": "Usuń", + "Edit": "Edytuj", + "Save": "Zapisz", + "Close": "Zamknij", + "Add": "Dodaj", + "Remove": "Usuń", + "Settings": "Ustawienia", + "Profile": "Profil", + "Dashboard": "Panel kontrolny", + "Logout": "Wyloguj się", + "Login": "Zaloguj się", + "Providers": "Dostawcy", + "Usage": "Użycie", + "API Key": "Klucz API", + "Connected": "Połączony", + "Disconnected": "Rozłączony", + "Active": "Aktywny", + "Inactive": "Nieaktywny", + "Success": "Sukces", + "Failed": "Niepowodzenie", + "Error": "Błąd", + "Warning": "Ostrzeżenie", + "Info": "Informacja", + "Loading": "Ładowanie", + "Search": "Szukaj", + "Filter": "Filtruj", + "Sort": "Sortuj", + "Export": "Eksportuj", + "Import": "Importuj", + "Refresh": "Odśwież", + "Back": "Wstecz", + "Next": "Dalej", + "Previous": "Wstecz", + "Submit": "Prześlij", + "Confirm": "Potwierdź", + "Yes": "Tak", + "No": "Nie", + "OK": "OK", + "Apply": "Zastosuj", + "Reset": "Resetuj", + "Clear": "Wyczyść", + "Select": "Wybierz", + "Upload": "Prześlij", + "Download": "Pobierz", + "Copy": "Skopiuj", + "Paste": "Wklej", + "Cut": "Wytnij", + "Undo": "Cofnij", + "Redo": "Powtórz", + "Name": "Nazwa", + "Description": "Opis", + "Status": "Stan", + "Type": "Typ", + "Date": "Data", + "Time": "Czas", + "Created": "Utworzono", + "Updated": "Zaktualizowano", + "Actions": "Akcje", + "Details": "Szczegóły", + "View": "Wyświetl", + "New": "Nowy", + "Total": "Razem", + "Count": "Liczba", + "Price": "Cena", + "Cost": "Koszt", + "Free": "Bezpłatny", + "Paid": "Płatny", + "Enable": "Włącz", + "Disable": "Wyłącz", + "Enabled": "Włączony", + "Disabled": "Wyłączony", + "Online": "Online", + "Offline": "Offline", + "Available": "Dostępny", + "Unavailable": "Niedostępny", + "Required": "Wymagane", + "Optional": "Opcjonalne", + "Default": "Domyślnie", + "Custom": "Niestandardowy", + "Advanced": "Zaawansowane", + "Basic": "Podstawowy", + "Help": "Pomoc", + "Support": "Pomoc techniczna", + "Documentation": "Dokumentacja", + "Version": "Wersja", + "Language": "Język", + "Theme": "Motyw", + "Light": "Jasny", + "Dark": "Ciemny", + "Auto": "Automatycznie", + "Endpoint": "Punkt końcowy", + "Providers": "Dostawcy", + "Combos": "Kombinacje", + "Usage": "Statystyka", + "Quota Tracker": "Śledzenie limitów", + "MITM": "MITM", + "CLI Tools": "Narzędzia CLI", + "Console Log": "Dziennik konsoli", + "System": "System", + "Debug": "Debugowanie", + "Shutdown": "Wyłączenie", + "Close Proxy": "Zamknij serwer proxy", + "Are you sure you want to close the proxy server?": "Czy na pewno chcesz zamknąć serwer proxy?", + "Server Disconnected": "Serwer rozłączony", + "The proxy server has been stopped.": "Serwer proxy został zatrzymany.", + "Reload Page": "Odśwież stronę", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Usługa działa w terminalu. Możesz zamknąć tę stronę internetową. Wyłączenie zatrzyma usługę.", + "Manage your AI provider connections": "Zarządzaj połączeniami dostawcy sztucznej inteligencji", + "Model combos with fallback": "Kombinacje modeli z rezerwą", + "Monitor your API usage, token consumption, and request logs": "Monitoruj użycie API, zużycie tokenów i dzienniki żądań", + "Intercept CLI tool traffic and route through 9Router": "Przechwytuj ruch narzędzi CLI i kieruj przez 9Router", + "Configure CLI tools": "Konfiguruj narzędzia CLI", + "API endpoint configuration": "Konfiguracja punktu końcowego API", + "Manage your preferences": "Zarządzaj swoimi preferencjami", + "Debug translation flow between formats": "Debuguj przepływ tłumaczenia między formatami", + "Live server console output": "Wyjście konsoli serwera na żywo", + "Create model combos with fallback support": "Twórz kombinacje modeli z obsługą rezerwową", + "Local Mode": "Tryb lokalny", + "Running on your machine": "Działające na twoim komputerze", + "Database Location": "Lokalizacja bazy danych", + "Download Backup": "Pobierz kopię zapasową", + "Import Backup": "Importuj kopię zapasową", + "Database backup downloaded": "Kopia zapasowa bazy danych pobrana", + "Database imported successfully": "Baza danych pomyślnie zaimportowana", + "Security": "Bezpieczeństwo", + "Require login": "Wymagaj logowania", + "When ON, dashboard requires password. When OFF, access without login.": "Gdy jest WŁĄCZONY, panel wymaga hasła. Gdy jest WYŁĄCZONY, dostęp bez logowania.", + "Current Password": "Obecne hasło", + "Enter current password": "Wprowadź obecne hasło", + "New Password": "Nowe hasło", + "Enter new password": "Wprowadź nowe hasło", + "Confirm New Password": "Potwierdź nowe hasło", + "Confirm new password": "Potwierdź nowe hasło", + "Update Password": "Aktualizuj hasło", + "Set Password": "Ustaw hasło", + "Password updated successfully": "Hasło zaktualizowane pomyślnie", + "Passwords do not match": "Hasła się nie zgadzają", + "Routing Strategy": "Strategia routingu", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Obracaj kontem w celu rozłożenia obciążenia", + "Sticky Limit": "Limit lepki", + "Calls per account before switching": "Wywołań na konto przed przełączeniem", + "Network": "Sieć", + "Outbound Proxy": "Serwer proxy wychodzący", + "Enable proxy for OAuth + provider outbound requests.": "Włącz serwer proxy dla żądań wychodzących OAuth + dostawcy.", + "Proxy URL": "URL serwera proxy", + "Leave empty to inherit existing env proxy (if any).": "Zostaw puste, aby odziedziczyć istniejący serwer proxy env (jeśli istnieje).", + "No Proxy": "Bez serwera proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Nazwy hostów/domeny oddzielone przecinkami do pominięcia serwera proxy.", + "Test proxy URL": "Przetestuj URL serwera proxy", + "Apply": "Zastosuj", + "Proxy settings applied": "Ustawienia serwera proxy zastosowane", + "Proxy enabled": "Serwer proxy włączony", + "Proxy disabled": "Serwer proxy wyłączony", + "Proxy test OK": "Test serwera proxy OK", + "Proxy test failed": "Test serwera proxy nie powiódł się", + "Please enter a Proxy URL to test": "Proszę wprowadzić URL serwera proxy do testowania", + "Observability": "Obserwacyjność", + "Enable Observability": "Włącz obserwacyjność", + "Turn request detail recording on/off globally": "Włącz/wyłącz globalnie rejestrowanie szczegółów żądania", + "Max Records": "Maksymalna liczba rekordów", + "Maximum request detail records to keep (older records are auto-deleted)": "Maksymalna liczba rekordów szczegółów żądania do przechowywania (starsze rekordy są automatycznie usuwane)", + "Batch Size": "Rozmiar partii", + "Number of items to accumulate before writing to database (higher = better performance)": "Liczba elementów do gromadzenia przed zapisaniem w bazie danych (wyższa = lepsza wydajność)", + "Flush Interval (ms)": "Interwał opróżniania (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maksymalny czas oczekiwania przed opróżnieniem buforu (zapobiega utracie danych podczas małego ruchu)", + "Max JSON Size (KB)": "Maksymalny rozmiar JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maksymalny rozmiar każdego pola JSON (żądanie/odpowiedź) przed obcięciem", + "All data stored on your machine": "Wszystkie dane przechowywane na twoim komputerze", + "MITM Server": "Serwer MITM", + "Running": "Działający", + "Stopped": "Zatrzymany", + "Cert": "Certyfikat", + "Server": "Serwer", + "Purpose:": "Cel:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Użyj Antigravity IDE i GitHub Copilot → z DOWOLNYM dostawcą/modelem z 9Router", + "How it works:": "Jak to działa:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Żądanie Antigravity/Copilot IDE → Przekierowanie DNS na localhost:443 → Serwer proxy MITM przechwytuje → 9Router → odpowiedź do Antigravity/Copilot", + "API Key": "Klucz API", + "No API keys — create one in Keys page": "Brak kluczy API — utwórz jeden na stronie Klucze", + "sk_9router (default)": "sk_9router (domyślnie)", + "Server started": "Serwer uruchomiony", + "Failed to start server": "Nie udało się uruchomić serwera", + "Server stopped — all DNS cleared": "Serwer zatrzymany — cały DNS usunięty", + "Failed to stop server": "Nie udało się zatrzymać serwera", + "Sudo password is required": "Wymagane hasło sudo", + "Stop Server": "Zatrzymaj serwer", + "Start Server": "Uruchom serwer", + "Enable DNS per tool below to activate interception": "Włącz DNS dla każdego narzędzia poniżej, aby aktywować przechwytywanie", + "Sudo Password Required": "Wymagane hasło Sudo", + "Enter your sudo password to start/stop MITM server": "Wprowadź hasło sudo, aby uruchomić/zatrzymać serwer MITM", + "Sudo Password": "Hasło sudo", + "Confirm": "Potwierdź" +} diff --git a/cli/app/public/i18n/literals/pt-BR.json b/cli/app/public/i18n/literals/pt-BR.json new file mode 100644 index 00000000000..e487d74b3ba --- /dev/null +++ b/cli/app/public/i18n/literals/pt-BR.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Cancelar", + "Delete": "Excluir", + "Edit": "Editar", + "Save": "Salvar", + "Close": "Fechar", + "Add": "Adicionar", + "Remove": "Remover", + "Settings": "Configurações", + "Profile": "Perfil", + "Dashboard": "Painel de controle", + "Logout": "Sair", + "Login": "Conectar", + "Providers": "Provedores", + "Usage": "Uso", + "API Key": "Chave API", + "Connected": "Conectado", + "Disconnected": "Desconectado", + "Active": "Ativo", + "Inactive": "Inativo", + "Success": "Sucesso", + "Failed": "Falha", + "Error": "Erro", + "Warning": "Aviso", + "Info": "Informações", + "Loading": "Carregando", + "Search": "Pesquisar", + "Filter": "Filtrar", + "Sort": "Classificar", + "Export": "Exportar", + "Import": "Importar", + "Refresh": "Atualizar", + "Back": "Voltar", + "Next": "Próximo", + "Previous": "Anterior", + "Submit": "Enviar", + "Confirm": "Confirmar", + "Yes": "Sim", + "No": "Não", + "OK": "OK", + "Apply": "Aplicar", + "Reset": "Redefinir", + "Clear": "Limpar", + "Select": "Selecionar", + "Upload": "Enviar", + "Download": "Baixar", + "Copy": "Copiar", + "Paste": "Colar", + "Cut": "Cortar", + "Undo": "Desfazer", + "Redo": "Refazer", + "Name": "Nome", + "Description": "Descrição", + "Status": "Status", + "Type": "Tipo", + "Date": "Data", + "Time": "Hora", + "Created": "Criado", + "Updated": "Atualizado", + "Actions": "Ações", + "Details": "Detalhes", + "View": "Visualizar", + "New": "Novo", + "Total": "Total", + "Count": "Contagem", + "Price": "Preço", + "Cost": "Custo", + "Free": "Gratuito", + "Paid": "Pago", + "Enable": "Ativar", + "Disable": "Desativar", + "Enabled": "Ativado", + "Disabled": "Desativado", + "Online": "Online", + "Offline": "Offline", + "Available": "Disponível", + "Unavailable": "Indisponível", + "Required": "Obrigatório", + "Optional": "Opcional", + "Default": "Padrão", + "Custom": "Personalizado", + "Advanced": "Avançado", + "Basic": "Básico", + "Help": "Ajuda", + "Support": "Suporte", + "Documentation": "Documentação", + "Version": "Versão", + "Language": "Idioma", + "Theme": "Tema", + "Light": "Claro", + "Dark": "Escuro", + "Auto": "Automático", + "Endpoint": "Ponto de extremidade", + "Providers": "Provedores", + "Combos": "Combinações", + "Usage": "Estatísticas", + "Quota Tracker": "Rastreador de cota", + "MITM": "MITM", + "CLI Tools": "Ferramentas CLI", + "Console Log": "Log do console", + "System": "Sistema", + "Debug": "Depuração", + "Shutdown": "Desligar", + "Close Proxy": "Fechar proxy", + "Are you sure you want to close the proxy server?": "Tem certeza de que deseja fechar o servidor proxy?", + "Server Disconnected": "Servidor desconectado", + "The proxy server has been stopped.": "O servidor proxy foi parado.", + "Reload Page": "Recarregar página", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "O serviço está em execução no terminal. Você pode fechar esta página da web. O desligamento interromperá o serviço.", + "Manage your AI provider connections": "Gerencie suas conexões de provedor de IA", + "Model combos with fallback": "Combinações de modelos com fallback", + "Monitor your API usage, token consumption, and request logs": "Monitore seu uso de API, consumo de tokens e logs de solicitação", + "Intercept CLI tool traffic and route through 9Router": "Intercepte o tráfego da ferramenta CLI e roteie através do 9Router", + "Configure CLI tools": "Configurar ferramentas CLI", + "API endpoint configuration": "Configuração do ponto de extremidade da API", + "Manage your preferences": "Gerenciar suas preferências", + "Debug translation flow between formats": "Depurar fluxo de tradução entre formatos", + "Live server console output": "Saída do console do servidor ao vivo", + "Create model combos with fallback support": "Crie combinações de modelos com suporte a fallback", + "Local Mode": "Modo local", + "Running on your machine": "Executando em sua máquina", + "Database Location": "Localização do banco de dados", + "Download Backup": "Baixar backup", + "Import Backup": "Importar backup", + "Database backup downloaded": "Backup do banco de dados baixado", + "Database imported successfully": "Banco de dados importado com sucesso", + "Security": "Segurança", + "Require login": "Exigir login", + "When ON, dashboard requires password. When OFF, access without login.": "Quando ATIVO, o painel requer senha. Quando DESATIVO, acesso sem login.", + "Current Password": "Senha atual", + "Enter current password": "Digite a senha atual", + "New Password": "Nova senha", + "Enter new password": "Digite a nova senha", + "Confirm New Password": "Confirmar nova senha", + "Confirm new password": "Confirme a nova senha", + "Update Password": "Atualizar senha", + "Set Password": "Definir senha", + "Password updated successfully": "Senha atualizada com sucesso", + "Passwords do not match": "As senhas não correspondem", + "Routing Strategy": "Estratégia de roteamento", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Percorrer contas para distribuir carga", + "Sticky Limit": "Limite pegajoso", + "Calls per account before switching": "Chamadas por conta antes de alternar", + "Network": "Rede", + "Outbound Proxy": "Proxy de saída", + "Enable proxy for OAuth + provider outbound requests.": "Ativar proxy para OAuth + solicitações de saída do provedor.", + "Proxy URL": "URL do proxy", + "Leave empty to inherit existing env proxy (if any).": "Deixe em branco para herdar o proxy env existente (se houver).", + "No Proxy": "Sem proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Nomes de host/domínios separados por vírgula para contornar o proxy.", + "Test proxy URL": "Testar URL do proxy", + "Apply": "Aplicar", + "Proxy settings applied": "Configurações de proxy aplicadas", + "Proxy enabled": "Proxy ativado", + "Proxy disabled": "Proxy desativado", + "Proxy test OK": "Teste de proxy OK", + "Proxy test failed": "Falha no teste de proxy", + "Please enter a Proxy URL to test": "Por favor, digite uma URL de proxy para testar", + "Observability": "Observabilidade", + "Enable Observability": "Ativar observabilidade", + "Turn request detail recording on/off globally": "Ativar/desativar globalmente o registro de detalhes da solicitação", + "Max Records": "Número máximo de registros", + "Maximum request detail records to keep (older records are auto-deleted)": "Número máximo de registros de detalhes de solicitação a manter (registros antigos são excluídos automaticamente)", + "Batch Size": "Tamanho do lote", + "Number of items to accumulate before writing to database (higher = better performance)": "Número de itens a acumular antes de gravar no banco de dados (maior = melhor desempenho)", + "Flush Interval (ms)": "Intervalo de liberação (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Tempo máximo de espera antes de liberar o buffer (evita perda de dados durante baixo tráfego)", + "Max JSON Size (KB)": "Tamanho máximo de JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Tamanho máximo para cada campo JSON (solicitação/resposta) antes do truncamento", + "All data stored on your machine": "Todos os dados armazenados em sua máquina", + "MITM Server": "Servidor MITM", + "Running": "Executando", + "Stopped": "Parado", + "Cert": "Certificado", + "Server": "Servidor", + "Purpose:": "Propósito:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Use Antigravity IDE e GitHub Copilot → com QUALQUER provedor/modelo do 9Router", + "How it works:": "Como funciona:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitação do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM intercepta → 9Router → resposta para Antigravity/Copilot", + "API Key": "Chave API", + "No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves", + "sk_9router (default)": "sk_9router (padrão)", + "Server started": "Servidor iniciado", + "Failed to start server": "Falha ao iniciar o servidor", + "Server stopped — all DNS cleared": "Servidor parado — todo DNS foi limpo", + "Failed to stop server": "Falha ao parar o servidor", + "Sudo password is required": "Senha sudo é necessária", + "Stop Server": "Parar servidor", + "Start Server": "Iniciar servidor", + "Enable DNS per tool below to activate interception": "Ativar DNS para cada ferramenta abaixo para ativar a interceptação", + "Sudo Password Required": "Senha Sudo necessária", + "Enter your sudo password to start/stop MITM server": "Digite sua senha sudo para iniciar/parar o servidor MITM", + "Sudo Password": "Senha sudo", + "Confirm": "Confirmar" +} diff --git a/cli/app/public/i18n/literals/pt-PT.json b/cli/app/public/i18n/literals/pt-PT.json new file mode 100644 index 00000000000..0d3719f87fc --- /dev/null +++ b/cli/app/public/i18n/literals/pt-PT.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Cancelar", + "Delete": "Eliminar", + "Edit": "Editar", + "Save": "Guardar", + "Close": "Fechar", + "Add": "Adicionar", + "Remove": "Remover", + "Settings": "Definições", + "Profile": "Perfil", + "Dashboard": "Painel de controlo", + "Logout": "Terminar sessão", + "Login": "Iniciar sessão", + "Providers": "Fornecedores", + "Usage": "Utilização", + "API Key": "Chave API", + "Connected": "Ligado", + "Disconnected": "Desligado", + "Active": "Ativo", + "Inactive": "Inativo", + "Success": "Sucesso", + "Failed": "Falha", + "Error": "Erro", + "Warning": "Aviso", + "Info": "Informações", + "Loading": "A carregar", + "Search": "Pesquisar", + "Filter": "Filtrar", + "Sort": "Ordenar", + "Export": "Exportar", + "Import": "Importar", + "Refresh": "Atualizar", + "Back": "Voltar", + "Next": "Seguinte", + "Previous": "Anterior", + "Submit": "Enviar", + "Confirm": "Confirmar", + "Yes": "Sim", + "No": "Não", + "OK": "OK", + "Apply": "Aplicar", + "Reset": "Repor", + "Clear": "Limpar", + "Select": "Selecionar", + "Upload": "Carregar", + "Download": "Descarregar", + "Copy": "Copiar", + "Paste": "Colar", + "Cut": "Cortar", + "Undo": "Desfazer", + "Redo": "Refazer", + "Name": "Nome", + "Description": "Descrição", + "Status": "Estado", + "Type": "Tipo", + "Date": "Data", + "Time": "Hora", + "Created": "Criado", + "Updated": "Atualizado", + "Actions": "Ações", + "Details": "Detalhes", + "View": "Ver", + "New": "Novo", + "Total": "Total", + "Count": "Contagem", + "Price": "Preço", + "Cost": "Custo", + "Free": "Gratuito", + "Paid": "Pago", + "Enable": "Ativar", + "Disable": "Desativar", + "Enabled": "Ativado", + "Disabled": "Desativado", + "Online": "Online", + "Offline": "Offline", + "Available": "Disponível", + "Unavailable": "Indisponível", + "Required": "Obrigatório", + "Optional": "Opcional", + "Default": "Predefinição", + "Custom": "Personalizado", + "Advanced": "Avançado", + "Basic": "Básico", + "Help": "Ajuda", + "Support": "Suporte", + "Documentation": "Documentação", + "Version": "Versão", + "Language": "Idioma", + "Theme": "Tema", + "Light": "Claro", + "Dark": "Escuro", + "Auto": "Automático", + "Endpoint": "Ponto final", + "Providers": "Fornecedores", + "Combos": "Combinações", + "Usage": "Estatísticas", + "Quota Tracker": "Rastreador de quota", + "MITM": "MITM", + "CLI Tools": "Ferramentas CLI", + "Console Log": "Registo da consola", + "System": "Sistema", + "Debug": "Depuração", + "Shutdown": "Encerramento", + "Close Proxy": "Fechar proxy", + "Are you sure you want to close the proxy server?": "Tem a certeza de que deseja fechar o servidor proxy?", + "Server Disconnected": "Servidor desligado", + "The proxy server has been stopped.": "O servidor proxy foi parado.", + "Reload Page": "Recarregar página", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "O serviço está em execução no terminal. Pode fechar esta página da web. O encerramento irá parar o serviço.", + "Manage your AI provider connections": "Gerir as suas ligações de fornecedor de IA", + "Model combos with fallback": "Combinações de modelos com contingência", + "Monitor your API usage, token consumption, and request logs": "Monitorize a sua utilização de API, consumo de fichas e registos de pedidos", + "Intercept CLI tool traffic and route through 9Router": "Intercete o tráfego da ferramenta CLI e encaminhe através do 9Router", + "Configure CLI tools": "Configurar ferramentas CLI", + "API endpoint configuration": "Configuração do ponto final da API", + "Manage your preferences": "Gerir as suas preferências", + "Debug translation flow between formats": "Depurar fluxo de tradução entre formatos", + "Live server console output": "Saída da consola do servidor em direto", + "Create model combos with fallback support": "Criar combinações de modelos com suporte a contingência", + "Local Mode": "Modo local", + "Running on your machine": "Em execução na sua máquina", + "Database Location": "Localização da base de dados", + "Download Backup": "Descarregar cópia de segurança", + "Import Backup": "Importar cópia de segurança", + "Database backup downloaded": "Cópia de segurança da base de dados descarregada", + "Database imported successfully": "Base de dados importada com sucesso", + "Security": "Segurança", + "Require login": "Requer início de sessão", + "When ON, dashboard requires password. When OFF, access without login.": "Quando ATIVO, o painel requer palavra-passe. Quando DESATIVO, acesso sem iniciar sessão.", + "Current Password": "Palavra-passe atual", + "Enter current password": "Introduza a palavra-passe atual", + "New Password": "Nova palavra-passe", + "Enter new password": "Introduza a nova palavra-passe", + "Confirm New Password": "Confirmar nova palavra-passe", + "Confirm new password": "Confirme a nova palavra-passe", + "Update Password": "Atualizar palavra-passe", + "Set Password": "Definir palavra-passe", + "Password updated successfully": "Palavra-passe atualizada com sucesso", + "Passwords do not match": "As palavras-passe não coincidem", + "Routing Strategy": "Estratégia de encaminhamento", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Passar por contas para distribuir carga", + "Sticky Limit": "Limite aderente", + "Calls per account before switching": "Chamadas por conta antes de mudar", + "Network": "Rede", + "Outbound Proxy": "Proxy de saída", + "Enable proxy for OAuth + provider outbound requests.": "Ativar proxy para OAuth + pedidos de saída do fornecedor.", + "Proxy URL": "URL do proxy", + "Leave empty to inherit existing env proxy (if any).": "Deixe em branco para herdar o proxy env existente (se houver).", + "No Proxy": "Sem proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Nomes de host/domínios separados por vírgulas para contornar o proxy.", + "Test proxy URL": "Testar URL do proxy", + "Apply": "Aplicar", + "Proxy settings applied": "Definições de proxy aplicadas", + "Proxy enabled": "Proxy ativado", + "Proxy disabled": "Proxy desativado", + "Proxy test OK": "Teste de proxy OK", + "Proxy test failed": "Falha no teste de proxy", + "Please enter a Proxy URL to test": "Introduza um URL de proxy para testar", + "Observability": "Observabilidade", + "Enable Observability": "Ativar observabilidade", + "Turn request detail recording on/off globally": "Ativar/desativar globalmente o registo de detalhes de pedidos", + "Max Records": "Número máximo de registos", + "Maximum request detail records to keep (older records are auto-deleted)": "Número máximo de registos de detalhes de pedidos a manter (registos mais antigos são eliminados automaticamente)", + "Batch Size": "Tamanho do lote", + "Number of items to accumulate before writing to database (higher = better performance)": "Número de itens a acumular antes de gravar na base de dados (mais alto = melhor desempenho)", + "Flush Interval (ms)": "Intervalo de limpeza (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Tempo máximo de espera antes de limpar o buffer (evita perda de dados durante tráfego baixo)", + "Max JSON Size (KB)": "Tamanho máximo de JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Tamanho máximo para cada campo JSON (pedido/resposta) antes do truncamento", + "All data stored on your machine": "Todos os dados armazenados na sua máquina", + "MITM Server": "Servidor MITM", + "Running": "Em execução", + "Stopped": "Parado", + "Cert": "Certificado", + "Server": "Servidor", + "Purpose:": "Finalidade:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Utilize o Antigravity IDE e GitHub Copilot → com QUALQUER fornecedor/modelo do 9Router", + "How it works:": "Como funciona:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Pedido do Antigravity/Copilot IDE → Redirecionamento DNS para localhost:443 → Proxy MITM interceta → 9Router → resposta para Antigravity/Copilot", + "API Key": "Chave API", + "No API keys — create one in Keys page": "Sem chaves de API — crie uma na página Chaves", + "sk_9router (default)": "sk_9router (predefinição)", + "Server started": "Servidor iniciado", + "Failed to start server": "Falha ao iniciar o servidor", + "Server stopped — all DNS cleared": "Servidor parado — todo DNS foi limpo", + "Failed to stop server": "Falha ao parar o servidor", + "Sudo password is required": "Palavra-passe sudo é necessária", + "Stop Server": "Parar servidor", + "Start Server": "Iniciar servidor", + "Enable DNS per tool below to activate interception": "Ativar DNS para cada ferramenta abaixo para ativar a interceção", + "Sudo Password Required": "Palavra-passe Sudo necessária", + "Enter your sudo password to start/stop MITM server": "Introduza a sua palavra-passe sudo para iniciar/parar o servidor MITM", + "Sudo Password": "Palavra-passe sudo", + "Confirm": "Confirmar" +} diff --git a/cli/app/public/i18n/literals/ro.json b/cli/app/public/i18n/literals/ro.json new file mode 100644 index 00000000000..bd599f8ffd2 --- /dev/null +++ b/cli/app/public/i18n/literals/ro.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Anulare", + "Delete": "Ștergere", + "Edit": "Editare", + "Save": "Salvare", + "Close": "Închidere", + "Add": "Adăugare", + "Remove": "Eliminare", + "Settings": "Setări", + "Profile": "Profil", + "Dashboard": "Tablou de bord", + "Logout": "Ieșire", + "Login": "Conectare", + "Providers": "Furnizori", + "Usage": "Utilizare", + "API Key": "Cheie API", + "Connected": "Conectat", + "Disconnected": "Deconectat", + "Active": "Activ", + "Inactive": "Inactiv", + "Success": "Succes", + "Failed": "Eşuat", + "Error": "Eroare", + "Warning": "Avertisment", + "Info": "Informații", + "Loading": "Se încarcă", + "Search": "Căutare", + "Filter": "Filtru", + "Sort": "Sortare", + "Export": "Exportare", + "Import": "Importare", + "Refresh": "Reîmprospătare", + "Back": "Înapoi", + "Next": "Următorul", + "Previous": "Anterior", + "Submit": "Trimitere", + "Confirm": "Confirmare", + "Yes": "Da", + "No": "Nu", + "OK": "OK", + "Apply": "Aplicare", + "Reset": "Resetare", + "Clear": "Curățare", + "Select": "Selectare", + "Upload": "Încărcare", + "Download": "Descărcare", + "Copy": "Copiere", + "Paste": "Lipire", + "Cut": "Tăiere", + "Undo": "Anulare", + "Redo": "Refacere", + "Name": "Nume", + "Description": "Descriere", + "Status": "Status", + "Type": "Tip", + "Date": "Data", + "Time": "Oră", + "Created": "Creat", + "Updated": "Actualizat", + "Actions": "Acțiuni", + "Details": "Detalii", + "View": "Vizualizare", + "New": "Nou", + "Total": "Total", + "Count": "Număr", + "Price": "Preț", + "Cost": "Cost", + "Free": "Gratuit", + "Paid": "Plătit", + "Enable": "Activare", + "Disable": "Dezactivare", + "Enabled": "Activat", + "Disabled": "Dezactivat", + "Online": "Online", + "Offline": "Offline", + "Available": "Disponibil", + "Unavailable": "Indisponibil", + "Required": "Necesar", + "Optional": "Opțional", + "Default": "Implicit", + "Custom": "Personalizat", + "Advanced": "Avansat", + "Basic": "De bază", + "Help": "Ajutor", + "Support": "Suport", + "Documentation": "Documentație", + "Version": "Versiune", + "Language": "Limbă", + "Theme": "Temă", + "Light": "Lumină", + "Dark": "Întunecat", + "Auto": "Automat", + "Endpoint": "Punct final", + "Providers": "Furnizori", + "Combos": "Combinații", + "Usage": "Statistici de utilizare", + "Quota Tracker": "Urmăritor cote", + "MITM": "MITM", + "CLI Tools": "Instrumente", + "Console Log": "Jurnal consolă", + "System": "Sistem", + "Debug": "Depanare", + "Shutdown": "Oprire", + "Close Proxy": "Închidere proxy", + "Are you sure you want to close the proxy server?": "Sunteti sigur că doriți să închideți serverul proxy?", + "Server Disconnected": "Server deconectat", + "The proxy server has been stopped.": "Serverul proxy a fost oprit.", + "Reload Page": "Reîncărcare pagină", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Serviciul rulează în terminal. Puteți închide această pagină web. Oprirea va opri serviciul.", + "Manage your AI provider connections": "Gestionați conexiunile furnizorului dvs. de IA", + "Model combos with fallback": "Combinații de modele cu fallback", + "Monitor your API usage, token consumption, and request logs": "Monitorizați utilizarea API-ului, consumul de token și jurnalele de solicitare", + "Intercept CLI tool traffic and route through 9Router": "Interceptați traficul instrumentului CLI și rutați prin 9Router", + "Configure CLI tools": "Configurați instrumentele CLI", + "API endpoint configuration": "Configurația punctului final API", + "Manage your preferences": "Gestionați preferințele dvs.", + "Debug translation flow between formats": "Depanare fluxului de traducere între formate", + "Live server console output": "Ieșire consolă server în direct", + "Create model combos with fallback support": "Creați combinații de modele cu suport fallback", + "Local Mode": "Mod local", + "Running on your machine": "Rulează pe mașina dvs.", + "Database Location": "Locația bazei de date", + "Download Backup": "Descărcare copie de rezervă", + "Import Backup": "Importare copie de rezervă", + "Database backup downloaded": "Copia de rezervă a bazei de date a fost descărcată", + "Database imported successfully": "Baza de date a fost importată cu succes", + "Security": "Securitate", + "Require login": "Necesită conectare", + "When ON, dashboard requires password. When OFF, access without login.": "Când este PORNIT, tabloul de bord necesită parolă. Când este OPRIT, accesați fără conectare.", + "Current Password": "Parola actuală", + "Enter current password": "Introduceți parola actuală", + "New Password": "Parola nouă", + "Enter new password": "Introduceți parola nouă", + "Confirm New Password": "Confirmați parola nouă", + "Confirm new password": "Confirmați parola nouă", + "Update Password": "Actualizare parolă", + "Set Password": "Setare parolă", + "Password updated successfully": "Parola a fost actualizată cu succes", + "Passwords do not match": "Parolele nu coincid", + "Routing Strategy": "Strategie de rutare", + "Round Robin": "Tur în jurul", + "Cycle through accounts to distribute load": "Ciclați prin conturi pentru a distribui sarcina", + "Sticky Limit": "Limită lipicioasă", + "Calls per account before switching": "Apeluri pe cont înainte de comutare", + "Network": "Rețea", + "Outbound Proxy": "Proxy de ieșire", + "Enable proxy for OAuth + provider outbound requests.": "Activați proxy-ul pentru solicitări de ieșire OAuth + furnizor.", + "Proxy URL": "URL proxy", + "Leave empty to inherit existing env proxy (if any).": "Lăsați gol pentru a moșteni proxy-ul env existent (dacă există).", + "No Proxy": "Nicio delegare", + "Comma-separated hostnames/domains to bypass the proxy.": "Nume de gazdă/domenii separate prin virgulă pentru a ocoli proxy-ul.", + "Test proxy URL": "Testare URL proxy", + "Apply": "Aplicare", + "Proxy settings applied": "Setările proxy au fost aplicate", + "Proxy enabled": "Proxy activat", + "Proxy disabled": "Proxy dezactivat", + "Proxy test OK": "Testul proxy OK", + "Proxy test failed": "Testul proxy a eșuat", + "Please enter a Proxy URL to test": "Vă rugăm să introduceți un URL proxy pentru a testa", + "Observability": "Observabilitate", + "Enable Observability": "Activare observabilitate", + "Turn request detail recording on/off globally": "Porniți/opriți înregistrarea detaliilor solicitării la nivel global", + "Max Records": "Înregistrări maxime", + "Maximum request detail records to keep (older records are auto-deleted)": "Înregistrări de detalii de solicitare maxime de păstrat (înregistrările mai vechi sunt șterse automat)", + "Batch Size": "Dimensiune lot", + "Number of items to accumulate before writing to database (higher = better performance)": "Numărul de articole de acumulat înainte de a scrie în baza de date (mai mare = performanță mai bună)", + "Flush Interval (ms)": "Interval de golire (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Timp maxim de așteptare înainte de golirea bufferului (previne pierderea datelor în condiții de trafic redus)", + "Max JSON Size (KB)": "Dimensiune JSON maximă (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Dimensiune maximă pentru fiecare câmp JSON (solicitare/răspuns) înainte de trunchiere", + "All data stored on your machine": "Toate datele sunt stocate pe mașina dvs.", + "MITM Server": "Server MITM", + "Running": "Se execută", + "Stopped": "Oprit", + "Cert": "Certificat", + "Server": "Server", + "Purpose:": "Scop:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Folosiți Antigravity IDE & GitHub Copilot → cu ORICE furnizor/model din 9Router", + "How it works:": "Cum funcționează:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Solicitare Antigravity/Copilot IDE → Redirecționare DNS la localhost:443 → Proxy MITM interceptează → 9Router → răspuns la Antigravity/Copilot", + "API Key": "Cheie API", + "No API keys — create one in Keys page": "Nicio cheie API — creați una în pagina Chei", + "sk_9router (default)": "sk_9router (implicit)", + "Server started": "Server pornit", + "Failed to start server": "Nu s-a putut porni serverul", + "Server stopped — all DNS cleared": "Server oprit — toate DNS-urile șterse", + "Failed to stop server": "Nu s-a putut opri serverul", + "Sudo password is required": "Parola sudo este necesară", + "Stop Server": "Oprire server", + "Start Server": "Server de pornire", + "Enable DNS per tool below to activate interception": "Activați DNS pentru fiecare instrument de mai jos pentru a activa interceptarea", + "Sudo Password Required": "Parola Sudo este necesară", + "Enter your sudo password to start/stop MITM server": "Introduceți parola sudo pentru a porni/opri serverul MITM", + "Sudo Password": "Parola Sudo", + "Confirm": "Confirmare" +} diff --git a/cli/app/public/i18n/literals/ru.json b/cli/app/public/i18n/literals/ru.json new file mode 100644 index 00000000000..779a8bd041c --- /dev/null +++ b/cli/app/public/i18n/literals/ru.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Отменить", + "Delete": "Удалить", + "Edit": "Редактировать", + "Save": "Сохранить", + "Close": "Закрыть", + "Add": "Добавить", + "Remove": "Удалить", + "Settings": "Настройки", + "Profile": "Профиль", + "Dashboard": "Панель управления", + "Logout": "Выход", + "Login": "Вход", + "Providers": "Провайдеры", + "Usage": "Использование", + "API Key": "Ключ API", + "Connected": "Подключено", + "Disconnected": "Отключено", + "Active": "Активно", + "Inactive": "Неактивно", + "Success": "Успех", + "Failed": "Ошибка", + "Error": "Ошибка", + "Warning": "Предупреждение", + "Info": "Информация", + "Loading": "Загрузка", + "Search": "Поиск", + "Filter": "Фильтр", + "Sort": "Сортировка", + "Export": "Экспорт", + "Import": "Импорт", + "Refresh": "Обновить", + "Back": "Назад", + "Next": "Далее", + "Previous": "Назад", + "Submit": "Отправить", + "Confirm": "Подтвердить", + "Yes": "Да", + "No": "Нет", + "OK": "OK", + "Apply": "Применить", + "Reset": "Сбросить", + "Clear": "Очистить", + "Select": "Выбрать", + "Upload": "Загрузить", + "Download": "Скачать", + "Copy": "Копировать", + "Paste": "Вставить", + "Cut": "Вырезать", + "Undo": "Отменить", + "Redo": "Повторить", + "Name": "Имя", + "Description": "Описание", + "Status": "Статус", + "Type": "Тип", + "Date": "Дата", + "Time": "Время", + "Created": "Создано", + "Updated": "Обновлено", + "Actions": "Действия", + "Details": "Подробности", + "View": "Просмотр", + "New": "Новый", + "Total": "Всего", + "Count": "Количество", + "Price": "Цена", + "Cost": "Стоимость", + "Free": "Бесплатно", + "Paid": "Платно", + "Enable": "Включить", + "Disable": "Отключить", + "Enabled": "Включено", + "Disabled": "Отключено", + "Online": "Онлайн", + "Offline": "Офлайн", + "Available": "Доступно", + "Unavailable": "Недоступно", + "Required": "Обязательно", + "Optional": "Опционально", + "Default": "По умолчанию", + "Custom": "Пользовательский", + "Advanced": "Дополнительно", + "Basic": "Основной", + "Help": "Справка", + "Support": "Поддержка", + "Documentation": "Документация", + "Version": "Версия", + "Language": "Язык", + "Theme": "Тема", + "Light": "Светлая", + "Dark": "Темная", + "Auto": "Автоматически", + "Endpoint": "Конечная точка", + "Providers": "Провайдеры", + "Combos": "Комбинации", + "Usage": "Статистика", + "Quota Tracker": "Отслеживание квоты", + "MITM": "MITM", + "CLI Tools": "Инструменты CLI", + "Console Log": "Журнал консоли", + "System": "Система", + "Debug": "Отладка", + "Shutdown": "Завершение", + "Close Proxy": "Закрыть прокси", + "Are you sure you want to close the proxy server?": "Вы уверены, что хотите закрыть прокси-сервер?", + "Server Disconnected": "Сервер отключен", + "The proxy server has been stopped.": "Прокси-сервер был остановлен.", + "Reload Page": "Перезагрузить страницу", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Сервис работает в терминале. Вы можете закрыть эту веб-страницу. Завершение остановит сервис.", + "Manage your AI provider connections": "Управляйте своими подключениями провайдера ИИ", + "Model combos with fallback": "Комбинации моделей с резервным вариантом", + "Monitor your API usage, token consumption, and request logs": "Мониторьте использование API, потребление токенов и журналы запросов", + "Intercept CLI tool traffic and route through 9Router": "Перехватите трафик инструмента CLI и маршрутизируйте через 9Router", + "Configure CLI tools": "Настройка инструментов CLI", + "API endpoint configuration": "Конфигурация конечной точки API", + "Manage your preferences": "Управляйте своими предпочтениями", + "Debug translation flow between formats": "Отладка потока трансляции между форматами", + "Live server console output": "Вывод консоли сервера в реальном времени", + "Create model combos with fallback support": "Создание комбинаций моделей с поддержкой резервного варианта", + "Local Mode": "Локальный режим", + "Running on your machine": "Работает на вашем компьютере", + "Database Location": "Расположение базы данных", + "Download Backup": "Загрузить резервную копию", + "Import Backup": "Импортировать резервную копию", + "Database backup downloaded": "Резервная копия базы данных загружена", + "Database imported successfully": "База данных успешно импортирована", + "Security": "Безопасность", + "Require login": "Требовать вход", + "When ON, dashboard requires password. When OFF, access without login.": "Когда ВКЛЮЧЕНО, панель управления требует пароль. Когда ОТКЛЮЧЕНО, доступ без входа.", + "Current Password": "Текущий пароль", + "Enter current password": "Введите текущий пароль", + "New Password": "Новый пароль", + "Enter new password": "Введите новый пароль", + "Confirm New Password": "Подтвердить новый пароль", + "Confirm new password": "Подтвердите новый пароль", + "Update Password": "Обновить пароль", + "Set Password": "Установить пароль", + "Password updated successfully": "Пароль успешно обновлен", + "Passwords do not match": "Пароли не совпадают", + "Routing Strategy": "Стратегия маршрутизации", + "Round Robin": "Циклическая выборка", + "Cycle through accounts to distribute load": "Чередование аккаунтов для распределения нагрузки", + "Sticky Limit": "Липкий предел", + "Calls per account before switching": "Вызовов на аккаунт перед переключением", + "Network": "Сеть", + "Outbound Proxy": "Исходящий прокси", + "Enable proxy for OAuth + provider outbound requests.": "Включить прокси для OAuth + исходящих запросов провайдера.", + "Proxy URL": "URL прокси", + "Leave empty to inherit existing env proxy (if any).": "Оставьте пусто, чтобы унаследовать существующий прокси env (если есть).", + "No Proxy": "Без прокси", + "Comma-separated hostnames/domains to bypass the proxy.": "Разделенные запятыми имена хостов/домены для обхода прокси.", + "Test proxy URL": "Протестировать URL прокси", + "Apply": "Применить", + "Proxy settings applied": "Параметры прокси применены", + "Proxy enabled": "Прокси включен", + "Proxy disabled": "Прокси отключен", + "Proxy test OK": "Тест прокси OK", + "Proxy test failed": "Тест прокси не пройден", + "Please enter a Proxy URL to test": "Пожалуйста, введите URL прокси для тестирования", + "Observability": "Наблюдаемость", + "Enable Observability": "Включить наблюдаемость", + "Turn request detail recording on/off globally": "Включить/отключить запись деталей запроса глобально", + "Max Records": "Максимум записей", + "Maximum request detail records to keep (older records are auto-deleted)": "Максимальное количество записей деталей запроса для сохранения (старые записи автоматически удаляются)", + "Batch Size": "Размер пакета", + "Number of items to accumulate before writing to database (higher = better performance)": "Количество элементов для накопления перед записью в базу данных (выше = лучшая производительность)", + "Flush Interval (ms)": "Интервал очистки (мс)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Максимальное время ожидания перед очисткой буфера (предотвращает потерю данных при низком трафике)", + "Max JSON Size (KB)": "Максимальный размер JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Максимальный размер каждого поля JSON (запрос/ответ) перед усечением", + "All data stored on your machine": "Все данные хранятся на вашем компьютере", + "MITM Server": "Сервер MITM", + "Running": "Работает", + "Stopped": "Остановлено", + "Cert": "Сертификат", + "Server": "Сервер", + "Purpose:": "Назначение:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Используйте Antigravity IDE и GitHub Copilot → с ЛЮБЫМ провайдером/моделью от 9Router", + "How it works:": "Как это работает:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запрос Antigravity/Copilot IDE → Перенаправление DNS на localhost:443 → Прокси MITM перехватывает → 9Router → ответ для Antigravity/Copilot", + "API Key": "Ключ API", + "No API keys — create one in Keys page": "Нет ключей API — создайте один на странице ключей", + "sk_9router (default)": "sk_9router (по умолчанию)", + "Server started": "Сервер запущен", + "Failed to start server": "Ошибка при запуске сервера", + "Server stopped — all DNS cleared": "Сервер остановлен — все DNS очищено", + "Failed to stop server": "Ошибка при остановке сервера", + "Sudo password is required": "Требуется пароль sudo", + "Stop Server": "Остановить сервер", + "Start Server": "Запустить сервер", + "Enable DNS per tool below to activate interception": "Включите DNS для каждого инструмента ниже, чтобы активировать перехват", + "Sudo Password Required": "Требуется пароль Sudo", + "Enter your sudo password to start/stop MITM server": "Введите пароль sudo для запуска/остановки сервера MITM", + "Sudo Password": "Пароль sudo", + "Confirm": "Подтвердить" +} diff --git a/cli/app/public/i18n/literals/sv.json b/cli/app/public/i18n/literals/sv.json new file mode 100644 index 00000000000..e77b89b0b36 --- /dev/null +++ b/cli/app/public/i18n/literals/sv.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Avbryt", + "Delete": "Ta bort", + "Edit": "Redigera", + "Save": "Spara", + "Close": "Stäng", + "Add": "Lägg till", + "Remove": "Ta bort", + "Settings": "Inställningar", + "Profile": "Profil", + "Dashboard": "Instrumentpanel", + "Logout": "Logga ut", + "Login": "Logga in", + "Providers": "Leverantörer", + "Usage": "Användning", + "API Key": "API-nyckel", + "Connected": "Ansluten", + "Disconnected": "Frånkopplad", + "Active": "Aktiv", + "Inactive": "Inaktiv", + "Success": "Framgång", + "Failed": "Misslyckad", + "Error": "Fel", + "Warning": "Varning", + "Info": "Information", + "Loading": "Laddar", + "Search": "Sök", + "Filter": "Filter", + "Sort": "Sortera", + "Export": "Exportera", + "Import": "Importera", + "Refresh": "Uppdatera", + "Back": "Tillbaka", + "Next": "Nästa", + "Previous": "Föregående", + "Submit": "Skicka", + "Confirm": "Bekräfta", + "Yes": "Ja", + "No": "Nej", + "OK": "OK", + "Apply": "Verkställ", + "Reset": "Återställ", + "Clear": "Rensa", + "Select": "Välj", + "Upload": "Ladda upp", + "Download": "Ladda ner", + "Copy": "Kopiera", + "Paste": "Klistra in", + "Cut": "Klipp ut", + "Undo": "Ångra", + "Redo": "Gör om", + "Name": "Namn", + "Description": "Beskrivning", + "Status": "Status", + "Type": "Typ", + "Date": "Datum", + "Time": "Tid", + "Created": "Skapad", + "Updated": "Uppdaterad", + "Actions": "Åtgärder", + "Details": "Detaljer", + "View": "Visa", + "New": "Ny", + "Total": "Totalt", + "Count": "Antal", + "Price": "Pris", + "Cost": "Kostnad", + "Free": "Gratis", + "Paid": "Betald", + "Enable": "Aktivera", + "Disable": "Inaktivera", + "Enabled": "Aktiverad", + "Disabled": "Inaktiverad", + "Online": "Online", + "Offline": "Offline", + "Available": "Tillgänglig", + "Unavailable": "Inte tillgänglig", + "Required": "Krävs", + "Optional": "Valfritt", + "Default": "Standard", + "Custom": "Anpassad", + "Advanced": "Avancerat", + "Basic": "Grundläggande", + "Help": "Hjälp", + "Support": "Support", + "Documentation": "Dokumentation", + "Version": "Version", + "Language": "Språk", + "Theme": "Tema", + "Light": "Ljus", + "Dark": "Mörk", + "Auto": "Automatisk", + "Endpoint": "Slutpunkt", + "Providers": "Leverantörer", + "Combos": "Kombinationer", + "Usage": "Användarstatistik", + "Quota Tracker": "Kvotspårare", + "MITM": "MITM", + "CLI Tools": "Verktyg", + "Console Log": "Konsollogg", + "System": "System", + "Debug": "Felsökning", + "Shutdown": "Stänga av", + "Close Proxy": "Stäng proxy", + "Are you sure you want to close the proxy server?": "Är du säker på att du vill stänga proxyservern?", + "Server Disconnected": "Server frånkopplad", + "The proxy server has been stopped.": "Proxyservern har stoppats.", + "Reload Page": "Läs in sidan på nytt", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Tjänsten körs i terminalen. Du kan stänga denna webbsida. Avstängning stoppar tjänsten.", + "Manage your AI provider connections": "Hantera dina AI-leverantörsanslutningar", + "Model combos with fallback": "Modellkombinationer med fallback", + "Monitor your API usage, token consumption, and request logs": "Övervaka din API-användning, tokenförbrukning och begärandeloggar", + "Intercept CLI tool traffic and route through 9Router": "Avlyssna CLI-verktygstrafik och dirigera genom 9Router", + "Configure CLI tools": "Konfigurera CLI-verktyg", + "API endpoint configuration": "Konfiguration av API-slutpunkt", + "Manage your preferences": "Hantera dina inställningar", + "Debug translation flow between formats": "Felsöka översättningsflöde mellan format", + "Live server console output": "Live-serverkonsoloutdata", + "Create model combos with fallback support": "Skapa modellkombinationer med fallback-stöd", + "Local Mode": "Lokalt läge", + "Running on your machine": "Körs på din maskin", + "Database Location": "Databasplats", + "Download Backup": "Ladda ner säkerhetskopia", + "Import Backup": "Importera säkerhetskopia", + "Database backup downloaded": "Databassäkerhetskopia nedladdad", + "Database imported successfully": "Databasen importerades framgångsrikt", + "Security": "Säkerhet", + "Require login": "Kräv inloggning", + "When ON, dashboard requires password. When OFF, access without login.": "När ON krävs lösenord för instrumentpanelen. När OFF, åtkomst utan inloggning.", + "Current Password": "Aktuellt lösenord", + "Enter current password": "Ange aktuellt lösenord", + "New Password": "Nytt lösenord", + "Enter new password": "Ange nytt lösenord", + "Confirm New Password": "Bekräfta nytt lösenord", + "Confirm new password": "Bekräfta nytt lösenord", + "Update Password": "Uppdatera lösenord", + "Set Password": "Ange lösenord", + "Password updated successfully": "Lösenord uppdaterades framgångsrikt", + "Passwords do not match": "Lösenorden matchar inte", + "Routing Strategy": "Routningsstrategi", + "Round Robin": "Omväxling", + "Cycle through accounts to distribute load": "Cykla genom konton för att distribuera belastningen", + "Sticky Limit": "Klibbig gräns", + "Calls per account before switching": "Anrop per konto innan byte", + "Network": "Nätverk", + "Outbound Proxy": "Utgående proxy", + "Enable proxy for OAuth + provider outbound requests.": "Aktivera proxy för utgående OAuth + leverantörsförfrågningar.", + "Proxy URL": "Proxy-URL", + "Leave empty to inherit existing env proxy (if any).": "Lämna tomt för att ärva befintlig env-proxy (om sådan finns).", + "No Proxy": "Ingen proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Kommaseparerade värdnamn/domäner för att kringgå proxyn.", + "Test proxy URL": "Testa proxy-URL", + "Apply": "Verkställ", + "Proxy settings applied": "Proxyinställningar tillämpade", + "Proxy enabled": "Proxy aktiverad", + "Proxy disabled": "Proxy inaktiverad", + "Proxy test OK": "Proxy-test OK", + "Proxy test failed": "Proxy-test misslyckades", + "Please enter a Proxy URL to test": "Ange en proxy-URL att testa", + "Observability": "Observerbarhet", + "Enable Observability": "Aktivera observerbarhet", + "Turn request detail recording on/off globally": "Slå på/av inspelning av förfrågningsdetaljer globalt", + "Max Records": "Maximala poster", + "Maximum request detail records to keep (older records are auto-deleted)": "Maximala begärandedetaljposter att behålla (äldre poster raderas automatiskt)", + "Batch Size": "Batchstorlek", + "Number of items to accumulate before writing to database (higher = better performance)": "Antal objekt att ackumulera innan skrivning till databas (högre = bättre prestanda)", + "Flush Interval (ms)": "Spölningsintervall (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Maximal väntetid innan buffern spolas (förhindrar dataförlust vid låg trafik)", + "Max JSON Size (KB)": "Maximal JSON-storlek (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Maximal storlek för varje JSON-fält (begäran/svar) före trunkering", + "All data stored on your machine": "Alla data lagras på din maskin", + "MITM Server": "MITM-server", + "Running": "Körs", + "Stopped": "Stoppad", + "Cert": "Certifikat", + "Server": "Server", + "Purpose:": "Syfte:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Använd Antigravity IDE & GitHub Copilot → med VALFRI leverantör/modell från 9Router", + "How it works:": "Hur det fungerar:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE-begäran → DNS-omdirigering till localhost:443 → MITM-proxy avlyssnar → 9Router → svar till Antigravity/Copilot", + "API Key": "API-nyckel", + "No API keys — create one in Keys page": "Inga API-nycklar — skapa en på nyckelsidan", + "sk_9router (default)": "sk_9router (standard)", + "Server started": "Servern startad", + "Failed to start server": "Misslyckades att starta servern", + "Server stopped — all DNS cleared": "Server stoppad — all DNS rensad", + "Failed to stop server": "Misslyckades att stoppa servern", + "Sudo password is required": "Sudo-lösenord krävs", + "Stop Server": "Stoppa server", + "Start Server": "Starta server", + "Enable DNS per tool below to activate interception": "Aktivera DNS för varje verktyg nedan för att aktivera avlyssning", + "Sudo Password Required": "Sudo-lösenord krävs", + "Enter your sudo password to start/stop MITM server": "Ange ditt sudo-lösenord för att starta/stoppa MITM-servern", + "Sudo Password": "Sudo-lösenord", + "Confirm": "Bekräfta" +} diff --git a/cli/app/public/i18n/literals/th.json b/cli/app/public/i18n/literals/th.json new file mode 100644 index 00000000000..d0a7248ee66 --- /dev/null +++ b/cli/app/public/i18n/literals/th.json @@ -0,0 +1,196 @@ +{ + "Cancel": "ยกเลิก", + "Delete": "ลบ", + "Edit": "แก้ไข", + "Save": "บันทึก", + "Close": "ปิด", + "Add": "เพิ่ม", + "Remove": "นำออก", + "Settings": "การตั้งค่า", + "Profile": "โปรไฟล์", + "Dashboard": "แดชบอร์ด", + "Logout": "ออกจากระบบ", + "Login": "เข้าสู่ระบบ", + "Providers": "ผู้ให้บริการ", + "Usage": "การใช้งาน", + "API Key": "คีย์ API", + "Connected": "เชื่อมต่อแล้ว", + "Disconnected": "ตัดการเชื่อมต่อ", + "Active": "ใช้งาน", + "Inactive": "ไม่ใช้งาน", + "Success": "สำเร็จ", + "Failed": "ล้มเหลว", + "Error": "ข้อผิดพลาด", + "Warning": "คำเตือน", + "Info": "ข้อมูล", + "Loading": "กำลังโหลด", + "Search": "ค้นหา", + "Filter": "ตัวกรอง", + "Sort": "เรียงลำดับ", + "Export": "ส่งออก", + "Import": "นำเข้า", + "Refresh": "รีเฟรช", + "Back": "ย้อนกลับ", + "Next": "ถัดไป", + "Previous": "ก่อนหน้า", + "Submit": "ส่ง", + "Confirm": "ยืนยัน", + "Yes": "ใช่", + "No": "ไม่", + "OK": "ตกลง", + "Apply": "ใช้", + "Reset": "รีเซ็ต", + "Clear": "ล้าง", + "Select": "เลือก", + "Upload": "อัพโหลด", + "Download": "ดาวน์โหลด", + "Copy": "คัดลอก", + "Paste": "วาง", + "Cut": "ตัด", + "Undo": "ยกเลิก", + "Redo": "ทำซ้ำ", + "Name": "ชื่อ", + "Description": "คำอธิบาย", + "Status": "สถานะ", + "Type": "ประเภท", + "Date": "วันที่", + "Time": "เวลา", + "Created": "สร้างแล้ว", + "Updated": "อัพเดตแล้ว", + "Actions": "การกระทำ", + "Details": "รายละเอียด", + "View": "ดู", + "New": "ใหม่", + "Total": "ทั้งหมด", + "Count": "จำนวน", + "Price": "ราคา", + "Cost": "ต้นทุน", + "Free": "ฟรี", + "Paid": "จ่ายเงิน", + "Enable": "เปิดใช้งาน", + "Disable": "ปิดใช้งาน", + "Enabled": "เปิดใช้งานแล้ว", + "Disabled": "ปิดใช้งานแล้ว", + "Online": "ออนไลน์", + "Offline": "ออฟไลน์", + "Available": "พร้อมใช้งาน", + "Unavailable": "ไม่พร้อมใช้งาน", + "Required": "จำเป็น", + "Optional": "ไม่บังคับ", + "Default": "ค่าเริ่มต้น", + "Custom": "กำหนดเอง", + "Advanced": "ขั้นสูง", + "Basic": "พื้นฐาน", + "Help": "ช่วยเหลือ", + "Support": "สนับสนุน", + "Documentation": "เอกสาร", + "Version": "เวอร์ชัน", + "Language": "ภาษา", + "Theme": "ธีม", + "Light": "สว่าง", + "Dark": "มืด", + "Auto": "อัตโนมัติ", + "Endpoint": "จุดสิ้นสุด", + "Providers": "ผู้ให้บริการ", + "Combos": "ชุดรวม", + "Usage": "สถิติการใช้งาน", + "Quota Tracker": "ตัวติดตามโควต้า", + "MITM": "MITM", + "CLI Tools": "เครื่องมือ", + "Console Log": "บันทึกคอนโซล", + "System": "ระบบ", + "Debug": "ดีบัก", + "Shutdown": "ปิดระบบ", + "Close Proxy": "ปิด Proxy", + "Are you sure you want to close the proxy server?": "คุณแน่ใจหรือว่าต้องการปิดเซิร์ฟเวอร์ proxy?", + "Server Disconnected": "เซิร์ฟเวอร์ตัดการเชื่อมต่อ", + "The proxy server has been stopped.": "เซิร์ฟเวอร์ proxy ถูกหยุดแล้ว", + "Reload Page": "โหลดหน้าใหม่", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "บริการกำลังทำงานในเทอร์มินัล คุณสามารถปิดหน้าเว็บนี้ได้ การปิดระบบจะหยุดบริการ", + "Manage your AI provider connections": "จัดการการเชื่อมต่อผู้ให้บริการ AI ของคุณ", + "Model combos with fallback": "ชุดรวมโมเดลที่มี fallback", + "Monitor your API usage, token consumption, and request logs": "ติดตามการใช้งาน API การใช้งาน token และบันทึกคำขอของคุณ", + "Intercept CLI tool traffic and route through 9Router": "สกัดปะท่อ CLI และเส้นทางผ่าน 9Router", + "Configure CLI tools": "กำหนดค่าเครื่องมือ CLI", + "API endpoint configuration": "การตั้งค่าจุดสิ้นสุด API", + "Manage your preferences": "จัดการการตั้งค่าของคุณ", + "Debug translation flow between formats": "ดีบักการไหลของการแปลระหว่างรูปแบบ", + "Live server console output": "ผลลัพธ์คอนโซลเซิร์ฟเวอร์สด", + "Create model combos with fallback support": "สร้างชุดรวมโมเดลที่มีการสนับสนุน fallback", + "Local Mode": "โหมดท้องถิ่น", + "Running on your machine": "ทำงานบนเครื่องของคุณ", + "Database Location": "ตำแหน่งของฐานข้อมูล", + "Download Backup": "ดาวน์โหลดการสำรองข้อมูล", + "Import Backup": "นำเข้าการสำรองข้อมูล", + "Database backup downloaded": "ดาวน์โหลดการสำรองข้อมูลฐานข้อมูลแล้ว", + "Database imported successfully": "นำเข้าฐานข้อมูลเสร็จสิ้น", + "Security": "ความปลอดภัย", + "Require login": "ต้องการการเข้าสู่ระบบ", + "When ON, dashboard requires password. When OFF, access without login.": "เมื่อเปิด แดชบอร์ดต้องการรหัสผ่าน เมื่อปิด เข้าถึงโดยไม่ต้องเข้าสู่ระบบ", + "Current Password": "รหัสผ่านปัจจุบัน", + "Enter current password": "ป้อนรหัสผ่านปัจจุบัน", + "New Password": "รหัสผ่านใหม่", + "Enter new password": "ป้อนรหัสผ่านใหม่", + "Confirm New Password": "ยืนยันรหัสผ่านใหม่", + "Confirm new password": "ยืนยันรหัสผ่านใหม่", + "Update Password": "อัพเดตรหัสผ่าน", + "Set Password": "ตั้งรหัสผ่าน", + "Password updated successfully": "อัพเดตรหัสผ่านเสร็จสิ้น", + "Passwords do not match": "รหัสผ่านไม่ตรงกัน", + "Routing Strategy": "กลยุทธ์การเส้นทาง", + "Round Robin": "โรบินรอบ", + "Cycle through accounts to distribute load": "วนรอบบัญชีเพื่อกระจายการโหลด", + "Sticky Limit": "ขีดจำกัดที่เหนียว", + "Calls per account before switching": "การโทรต่อบัญชีก่อนการสลับ", + "Network": "เครือข่าย", + "Outbound Proxy": "Proxy ขาออก", + "Enable proxy for OAuth + provider outbound requests.": "เปิดใช้งาน proxy สำหรับคำขอขาออก OAuth + ผู้ให้บริการ", + "Proxy URL": "URL Proxy", + "Leave empty to inherit existing env proxy (if any).": "ปล่อยว่างไว้เพื่อสืบทอด proxy env ที่มีอยู่ (หากมี)", + "No Proxy": "ไม่มี Proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "ชื่อโฮสต์/โดเมนคั่นด้วยเครื่องหมายจุลภาค เพื่อข้าม proxy", + "Test proxy URL": "ทดสอบ URL Proxy", + "Apply": "ใช้", + "Proxy settings applied": "ใช้การตั้งค่า proxy แล้ว", + "Proxy enabled": "เปิดใช้งาน proxy", + "Proxy disabled": "ปิดใช้งาน proxy", + "Proxy test OK": "ทดสอบ proxy ตกลง", + "Proxy test failed": "ทดสอบ proxy ล้มเหลว", + "Please enter a Proxy URL to test": "กรุณาป้อน URL Proxy เพื่อทดสอบ", + "Observability": "ความสามารถในการสังเกต", + "Enable Observability": "เปิดใช้งานความสามารถในการสังเกต", + "Turn request detail recording on/off globally": "เปิด/ปิดการบันทึกรายละเอียดคำขอทั่วโลก", + "Max Records": "บันทึกสูงสุด", + "Maximum request detail records to keep (older records are auto-deleted)": "บันทึกรายละเอียดคำขอสูงสุดที่จะเก็บ (บันทึกเก่าจะลบโดยอัตโนมัติ)", + "Batch Size": "ขนาดแบตช์", + "Number of items to accumulate before writing to database (higher = better performance)": "จำนวนรายการที่จะรวบรวมก่อนเขียนลงฐานข้อมูล (สูงกว่า = ประสิทธิภาพดีกว่า)", + "Flush Interval (ms)": "ช่วงเวลาล้าง (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "เวลารอสูงสุดก่อนล้างบัฟเฟอร์ (ป้องกันการสูญหายข้อมูลในช่วงจราจรต่ำ)", + "Max JSON Size (KB)": "ขนาด JSON สูงสุด (KB)", + "Maximum size for each JSON field (request/response) before truncation": "ขนาดสูงสุดสำหรับแต่ละช่อง JSON (คำขอ/การตอบสนอง) ก่อนการตัดทอน", + "All data stored on your machine": "ข้อมูลทั้งหมดจัดเก็บไว้บนเครื่องของคุณ", + "MITM Server": "เซิร์ฟเวอร์ MITM", + "Running": "กำลังทำงาน", + "Stopped": "หยุดแล้ว", + "Cert": "ใบรับรอง", + "Server": "เซิร์ฟเวอร์", + "Purpose:": "วัตถุประสงค์:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "ใช้ Antigravity IDE & GitHub Copilot → ที่มีผู้ให้บริการ/โมเดลใด ๆ จาก 9Router", + "How it works:": "วิธีการทำงาน:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "คำขอ Antigravity/Copilot IDE → เปลี่ยนเส้นทาง DNS เป็น localhost:443 → MITM proxy สกัดปะท่อ → 9Router → ตอบสนอง Antigravity/Copilot", + "API Key": "คีย์ API", + "No API keys — create one in Keys page": "ไม่มีคีย์ API — สร้างคีย์ในหน้า Keys", + "sk_9router (default)": "sk_9router (ค่าเริ่มต้น)", + "Server started": "เซิร์ฟเวอร์เริ่มต้นแล้ว", + "Failed to start server": "ไม่สามารถเริ่มเซิร์ฟเวอร์", + "Server stopped — all DNS cleared": "หยุดเซิร์ฟเวอร์ — ล้าง DNS ทั้งหมด", + "Failed to stop server": "ไม่สามารถหยุดเซิร์ฟเวอร์", + "Sudo password is required": "ต้องการรหัสผ่าน sudo", + "Stop Server": "หยุดเซิร์ฟเวอร์", + "Start Server": "เริ่มเซิร์ฟเวอร์", + "Enable DNS per tool below to activate interception": "เปิดใช้งาน DNS สำหรับแต่ละเครื่องมือด้านล่างเพื่อเปิดใช้งานการสกัดปะท่อ", + "Sudo Password Required": "ต้องการรหัสผ่าน Sudo", + "Enter your sudo password to start/stop MITM server": "ป้อนรหัสผ่าน sudo ของคุณเพื่อเริ่ม/หยุดเซิร์ฟเวอร์ MITM", + "Sudo Password": "รหัสผ่าน Sudo", + "Confirm": "ยืนยัน" +} diff --git a/cli/app/public/i18n/literals/tl.json b/cli/app/public/i18n/literals/tl.json new file mode 100644 index 00000000000..8c43676798d --- /dev/null +++ b/cli/app/public/i18n/literals/tl.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Kanselahin", + "Delete": "Tanggalin", + "Edit": "Baguhin", + "Save": "Salin", + "Close": "Isara", + "Add": "Magdagdag", + "Remove": "Alisin", + "Settings": "Mga Setting", + "Profile": "Propesyal", + "Dashboard": "Dashboard", + "Logout": "Maglog out", + "Login": "Magsimula ng sesyon", + "Providers": "Mga Provider", + "Usage": "Paggamit", + "API Key": "Susi ng API", + "Connected": "Konektado", + "Disconnected": "Hindi Konektado", + "Active": "Aktibo", + "Inactive": "Hindi Aktibo", + "Success": "Matagumpay", + "Failed": "Nabigo", + "Error": "Kamalian", + "Warning": "Babala", + "Info": "Impormasyon", + "Loading": "Naglo-load", + "Search": "Maghanap", + "Filter": "Salain", + "Sort": "I-sort", + "Export": "I-export", + "Import": "I-import", + "Refresh": "I-refresh", + "Back": "Bumalik", + "Next": "Susunod", + "Previous": "Nakaraan", + "Submit": "Ipadala", + "Confirm": "Kumpirmahin", + "Yes": "Oo", + "No": "Hindi", + "OK": "OK", + "Apply": "Ilapat", + "Reset": "I-reset", + "Clear": "I-clear", + "Select": "Pumili", + "Upload": "Mag-upload", + "Download": "I-download", + "Copy": "Kopyahin", + "Paste": "I-paste", + "Cut": "Gupitin", + "Undo": "Undo", + "Redo": "I-redo", + "Name": "Pangalan", + "Description": "Paglalarawan", + "Status": "Kalagayan", + "Type": "Uri", + "Date": "Petsa", + "Time": "Oras", + "Created": "Ginawa", + "Updated": "Ina-update", + "Actions": "Mga Aksyon", + "Details": "Mga Detalye", + "View": "Tingnan", + "New": "Bago", + "Total": "Kabuuan", + "Count": "Bilang", + "Price": "Presyo", + "Cost": "Gastos", + "Free": "Libre", + "Paid": "Bayad", + "Enable": "Paganahin", + "Disable": "Huwag paganahin", + "Enabled": "Pinagana", + "Disabled": "Hindi pinagana", + "Online": "Online", + "Offline": "Offline", + "Available": "Available", + "Unavailable": "Hindi Available", + "Required": "Kinakailangan", + "Optional": "Opsyonal", + "Default": "Default", + "Custom": "Custom", + "Advanced": "Advanced", + "Basic": "Basic", + "Help": "Tulong", + "Support": "Suporta", + "Documentation": "Dokumentasyon", + "Version": "Bersyon", + "Language": "Wika", + "Theme": "Tema", + "Light": "Liwanag", + "Dark": "Madilim", + "Auto": "Awtomatiko", + "Endpoint": "Endpoint", + "Providers": "Mga Provider", + "Combos": "Mga Combo", + "Usage": "Mga Istatistika ng Paggamit", + "Quota Tracker": "Quota Tracker", + "MITM": "MITM", + "CLI Tools": "Mga Tool", + "Console Log": "Console Log", + "System": "Sistema", + "Debug": "I-debug", + "Shutdown": "Patugharin", + "Close Proxy": "Isara ang Proxy", + "Are you sure you want to close the proxy server?": "Sigurado ka ba na gusto mong isara ang proxy server?", + "Server Disconnected": "Ang Server ay Naka-disconnect", + "The proxy server has been stopped.": "Ang proxy server ay tumigil na.", + "Reload Page": "I-reload ang Pahina", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Ang serbisyo ay tumatakbo sa terminal. Maaari mong isara ang web page na ito. Ang Shutdown ay titigil ng serbisyo.", + "Manage your AI provider connections": "Pamahalaan ang iyong mga koneksyon ng AI provider", + "Model combos with fallback": "Mga model combo na may fallback", + "Monitor your API usage, token consumption, and request logs": "Subaybayan ang iyong paggamit ng API, pagkonsumo ng token, at mga log ng request", + "Intercept CLI tool traffic and route through 9Router": "Harangin ang lalu ng CLI tool at i-route sa pamamagitan ng 9Router", + "Configure CLI tools": "I-configure ang CLI tools", + "API endpoint configuration": "Konfiguration ng API endpoint", + "Manage your preferences": "Pamahalaan ang iyong mga kagustuhan", + "Debug translation flow between formats": "I-debug ang translation flow sa pagitan ng mga format", + "Live server console output": "Live server console output", + "Create model combos with fallback support": "Lumikha ng mga model combo na may fallback support", + "Local Mode": "Local Mode", + "Running on your machine": "Tumatakbo sa iyong machine", + "Database Location": "Lokasyon ng Database", + "Download Backup": "I-download ang Backup", + "Import Backup": "I-import ang Backup", + "Database backup downloaded": "Ang database backup ay na-download", + "Database imported successfully": "Ang database ay matagumpay na nai-import", + "Security": "Seguridad", + "Require login": "Kailangan ng login", + "When ON, dashboard requires password. When OFF, access without login.": "Kapag ON, ang dashboard ay nangangailangan ng password. Kapag OFF, access nang walang login.", + "Current Password": "Kasalukuyang Password", + "Enter current password": "Ipasok ang kasalukuyang password", + "New Password": "Bagong Password", + "Enter new password": "Ipasok ang bagong password", + "Confirm New Password": "Kumpirmahin ang Bagong Password", + "Confirm new password": "Kumpirmahin ang bagong password", + "Update Password": "I-update ang Password", + "Set Password": "I-set ang Password", + "Password updated successfully": "Ang password ay matagumpay na na-update", + "Passwords do not match": "Ang mga password ay hindi tumutugma", + "Routing Strategy": "Routing Strategy", + "Round Robin": "Round Robin", + "Cycle through accounts to distribute load": "Umiikot sa mga account upang ipamahagi ang load", + "Sticky Limit": "Sticky Limit", + "Calls per account before switching": "Mga tawag bawat account bago mag-switch", + "Network": "Network", + "Outbound Proxy": "Outbound Proxy", + "Enable proxy for OAuth + provider outbound requests.": "Paganahin ang proxy para sa OAuth + provider outbound requests.", + "Proxy URL": "Proxy URL", + "Leave empty to inherit existing env proxy (if any).": "Iwanan kung walang laman upang mamanin ang umiiral na env proxy (kung mayroon).", + "No Proxy": "Walang Proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Mga hostname/domain na pinagseparang komma upang lampasan ang proxy.", + "Test proxy URL": "Subukan ang Proxy URL", + "Apply": "Ilapat", + "Proxy settings applied": "Ang mga setting ng proxy ay inilapat", + "Proxy enabled": "Ang proxy ay pinagana", + "Proxy disabled": "Ang proxy ay hindi pinagana", + "Proxy test OK": "Proxy test OK", + "Proxy test failed": "Ang proxy test ay nabigo", + "Please enter a Proxy URL to test": "Pakiusap na ipasok ang Proxy URL upang subukan", + "Observability": "Observability", + "Enable Observability": "Paganahin ang Observability", + "Turn request detail recording on/off globally": "I-turn on/off ang request detail recording nang pandaigdig", + "Max Records": "Max Records", + "Maximum request detail records to keep (older records are auto-deleted)": "Pinakamataas na request detail records na papanatilihin (ang mga lumang record ay awtomatikong tatanggalin)", + "Batch Size": "Batch Size", + "Number of items to accumulate before writing to database (higher = better performance)": "Bilang ng mga item na mag-ipon bago magsulat sa database (mas mataas = mas magandang performance)", + "Flush Interval (ms)": "Flush Interval (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Pinakamataas na oras na paghihintay bago mag-flush ng buffer (pumipigil sa pagkawala ng data sa panahon ng mababang traffic)", + "Max JSON Size (KB)": "Max JSON Size (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Pinakamataas na sukat para sa bawat JSON field (request/response) bago ang truncation", + "All data stored on your machine": "Lahat ng data ay nakaimbak sa iyong machine", + "MITM Server": "MITM Server", + "Running": "Tumatakbo", + "Stopped": "Tumigil", + "Cert": "Cert", + "Server": "Server", + "Purpose:": "Layunin:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Gamitin ang Antigravity IDE & GitHub Copilot → sa ANUMANG provider/model mula sa 9Router", + "How it works:": "Paano ito gumagana:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE request → DNS redirect sa localhost:443 → MITM proxy intercepts → 9Router → response sa Antigravity/Copilot", + "API Key": "Susi ng API", + "No API keys — create one in Keys page": "Walang API keys — lumikha ng isa sa Keys page", + "sk_9router (default)": "sk_9router (default)", + "Server started": "Ang server ay nagsimula", + "Failed to start server": "Nabigo na magsimula ang server", + "Server stopped — all DNS cleared": "Ang server ay tumigil — lahat ng DNS ay naka-clear", + "Failed to stop server": "Nabigo na ihinto ang server", + "Sudo password is required": "Kailangan ng sudo password", + "Stop Server": "Ihinto ang Server", + "Start Server": "Simulan ang Server", + "Enable DNS per tool below to activate interception": "Paganahin ang DNS para sa bawat tool sa ibaba upang aktivahin ang interception", + "Sudo Password Required": "Kailangan ng Sudo Password", + "Enter your sudo password to start/stop MITM server": "Ipasok ang iyong sudo password upang simulan/ihinto ang MITM server", + "Sudo Password": "Sudo Password", + "Confirm": "Kumpirmahin" +} diff --git a/cli/app/public/i18n/literals/tr.json b/cli/app/public/i18n/literals/tr.json new file mode 100644 index 00000000000..aac0242878b --- /dev/null +++ b/cli/app/public/i18n/literals/tr.json @@ -0,0 +1,196 @@ +{ + "Cancel": "İptal", + "Delete": "Sil", + "Edit": "Düzenle", + "Save": "Kaydet", + "Close": "Kapat", + "Add": "Ekle", + "Remove": "Kaldır", + "Settings": "Ayarlar", + "Profile": "Profil", + "Dashboard": "Kontrol Paneli", + "Logout": "Çıkış Yap", + "Login": "Giriş Yap", + "Providers": "Sağlayıcılar", + "Usage": "Kullanım", + "API Key": "API Anahtarı", + "Connected": "Bağlı", + "Disconnected": "Bağlantısı Kesildi", + "Active": "Etkin", + "Inactive": "Etkin Değil", + "Success": "Başarılı", + "Failed": "Başarısız", + "Error": "Hata", + "Warning": "Uyarı", + "Info": "Bilgi", + "Loading": "Yükleniyor", + "Search": "Ara", + "Filter": "Filtre", + "Sort": "Sırala", + "Export": "Dışa Aktar", + "Import": "İçe Aktar", + "Refresh": "Yenile", + "Back": "Geri", + "Next": "İleri", + "Previous": "Önceki", + "Submit": "Gönder", + "Confirm": "Onayla", + "Yes": "Evet", + "No": "Hayır", + "OK": "Tamam", + "Apply": "Uygula", + "Reset": "Sıfırla", + "Clear": "Temizle", + "Select": "Seç", + "Upload": "Yükle", + "Download": "İndir", + "Copy": "Kopyala", + "Paste": "Yapıştır", + "Cut": "Kes", + "Undo": "Geri Al", + "Redo": "Yinele", + "Name": "Ad", + "Description": "Açıklama", + "Status": "Durum", + "Type": "Tür", + "Date": "Tarih", + "Time": "Saat", + "Created": "Oluşturuldu", + "Updated": "Güncellendi", + "Actions": "İşlemler", + "Details": "Ayrıntılar", + "View": "Görüntüle", + "New": "Yeni", + "Total": "Toplam", + "Count": "Sayı", + "Price": "Fiyat", + "Cost": "Maliyet", + "Free": "Ücretsiz", + "Paid": "Ücretli", + "Enable": "Etkinleştir", + "Disable": "Devre Dışı Bırak", + "Enabled": "Etkinleştirildi", + "Disabled": "Devre Dışı Bırakıldı", + "Online": "Çevrimiçi", + "Offline": "Çevrimdışı", + "Available": "Kullanılabilir", + "Unavailable": "Kullanılamıyor", + "Required": "Gerekli", + "Optional": "İsteğe Bağlı", + "Default": "Varsayılan", + "Custom": "Özel", + "Advanced": "Gelişmiş", + "Basic": "Temel", + "Help": "Yardım", + "Support": "Destek", + "Documentation": "Belgeler", + "Version": "Sürüm", + "Language": "Dil", + "Theme": "Tema", + "Light": "Açık", + "Dark": "Koyu", + "Auto": "Otomatik", + "Endpoint": "Uç Nokta", + "Providers": "Sağlayıcılar", + "Combos": "Kombinasyonlar", + "Usage": "Kullanım İstatistikleri", + "Quota Tracker": "Kota İzleyici", + "MITM": "MITM", + "CLI Tools": "Araçlar", + "Console Log": "Konsol Günlüğü", + "System": "Sistem", + "Debug": "Hata Ayıkla", + "Shutdown": "Kapat", + "Close Proxy": "Proxy'yi Kapat", + "Are you sure you want to close the proxy server?": "Proxy sunucusunu kapatmak istediğinizden emin misiniz?", + "Server Disconnected": "Sunucu Bağlantısı Kesildi", + "The proxy server has been stopped.": "Proxy sunucusu durduruldu.", + "Reload Page": "Sayfayı Yenile", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Hizmet terminalde çalışıyor. Bu web sayfasını kapatabilirsiniz. Kapatma, hizmeti durduracaktır.", + "Manage your AI provider connections": "AI sağlayıcı bağlantılarınızı yönetin", + "Model combos with fallback": "Yedek desteğiyle model kombinasyonları", + "Monitor your API usage, token consumption, and request logs": "API kullanımınızı, token tüketimini ve istek günlüklerini izleyin", + "Intercept CLI tool traffic and route through 9Router": "CLI araç trafiğini yakalayın ve 9Router üzerinden yönlendirin", + "Configure CLI tools": "CLI araçlarını yapılandırın", + "API endpoint configuration": "API uç noktası yapılandırması", + "Manage your preferences": "Tercihlerinizi yönetin", + "Debug translation flow between formats": "Formatlar arasındaki çeviri akışında hata ayıklayın", + "Live server console output": "Canlı sunucu konsol çıkışı", + "Create model combos with fallback support": "Yedek destek ile model kombinasyonları oluşturun", + "Local Mode": "Yerel Mod", + "Running on your machine": "Makinenizde çalışıyor", + "Database Location": "Veritabanı Konumu", + "Download Backup": "Yedeklemeyi İndir", + "Import Backup": "Yedeklemeyi İçe Aktar", + "Database backup downloaded": "Veritabanı yedeklemesi indirildi", + "Database imported successfully": "Veritabanı başarıyla içe aktarıldı", + "Security": "Güvenlik", + "Require login": "Giriş Gerekli", + "When ON, dashboard requires password. When OFF, access without login.": "AÇIK olduğunda, kontrol paneli parola gerektirir. KAPAL olduğunda, oturum açmadan erişin.", + "Current Password": "Mevcut Parola", + "Enter current password": "Mevcut parolayı girin", + "New Password": "Yeni Parola", + "Enter new password": "Yeni parolayı girin", + "Confirm New Password": "Yeni Parolayı Onayla", + "Confirm new password": "Yeni parolayı onayla", + "Update Password": "Parolayı Güncelle", + "Set Password": "Parola Ayarla", + "Password updated successfully": "Parola başarıyla güncellendi", + "Passwords do not match": "Parolalar eşleşmiyor", + "Routing Strategy": "Yönlendirme Stratejisi", + "Round Robin": "Dönerektir", + "Cycle through accounts to distribute load": "Yükü dağıtmak için hesaplar arasında döngü yapın", + "Sticky Limit": "Yapışkan Sınır", + "Calls per account before switching": "Geçiş öncesi hesap başına çağrılar", + "Network": "Ağ", + "Outbound Proxy": "Giden Proxy", + "Enable proxy for OAuth + provider outbound requests.": "OAuth + sağlayıcı giden istekleri için proxy'yi etkinleştirin.", + "Proxy URL": "Proxy URL'si", + "Leave empty to inherit existing env proxy (if any).": "Mevcut ortam proxy'sini (varsa) devralması için boş bırakın.", + "No Proxy": "Proxy Yok", + "Comma-separated hostnames/domains to bypass the proxy.": "Proxy'yi atlamak için virgülle ayrılmış ana bilgisayar adları/etki alanları.", + "Test proxy URL": "Test Proxy URL'si", + "Apply": "Uygula", + "Proxy settings applied": "Proxy ayarları uygulandı", + "Proxy enabled": "Proxy etkinleştirildi", + "Proxy disabled": "Proxy devre dışı bırakıldı", + "Proxy test OK": "Proxy testi Tamam", + "Proxy test failed": "Proxy testi başarısız", + "Please enter a Proxy URL to test": "Test etmek için lütfen bir Proxy URL'si girin", + "Observability": "Gözlemlenebilirlik", + "Enable Observability": "Gözlemlenebilirliği Etkinleştir", + "Turn request detail recording on/off globally": "İstek ayrıntıları kaydını genel olarak aç/kapat", + "Max Records": "Maksimum Kayıtlar", + "Maximum request detail records to keep (older records are auto-deleted)": "Tutulacak maksimum istek ayrıntı kayıtları (eski kayıtlar otomatik olarak silinir)", + "Batch Size": "Toplu İşlem Boyutu", + "Number of items to accumulate before writing to database (higher = better performance)": "Veritabanına yazmadan önce biriktirilecek öğe sayısı (daha yüksek = daha iyi performans)", + "Flush Interval (ms)": "Temizleme Aralığı (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Arabelleği temizlemeden önce beklenecek maksimum süre (düşük trafikte veri kaybını engeller)", + "Max JSON Size (KB)": "Maksimum JSON Boyutu (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Kesilmeden önce her JSON alanı (istek/yanıt) için maksimum boyut", + "All data stored on your machine": "Tüm veriler makinenizde depolanır", + "MITM Server": "MITM Sunucusu", + "Running": "Çalışıyor", + "Stopped": "Durduruldu", + "Cert": "Sertifika", + "Server": "Sunucu", + "Purpose:": "Amaç:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE & GitHub Copilot kullanın → 9Router'dan HERHANGİ bir sağlayıcı/model ile", + "How it works:": "Nasıl çalışır:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE isteği → DNS'i localhost:443'e yönlendir → MITM proxy yakalar → 9Router → Antigravity/Copilot'a yanıt", + "API Key": "API Anahtarı", + "No API keys — create one in Keys page": "API anahtarı yok — Keys sayfasında bir tane oluşturun", + "sk_9router (default)": "sk_9router (varsayılan)", + "Server started": "Sunucu başlatıldı", + "Failed to start server": "Sunucu başlatılamadı", + "Server stopped — all DNS cleared": "Sunucu durduruldu — tüm DNS temizlendi", + "Failed to stop server": "Sunucu durdurulamadı", + "Sudo password is required": "Sudo parolası gereklidir", + "Stop Server": "Sunucuyu Durdur", + "Start Server": "Sunucuyu Başlat", + "Enable DNS per tool below to activate interception": "Yakalamayı etkinleştirmek için aşağıdaki her araç için DNS'i etkinleştirin", + "Sudo Password Required": "Sudo Parolası Gerekli", + "Enter your sudo password to start/stop MITM server": "MITM sunucusunu başlatmak/durdurmak için sudo parolanızı girin", + "Sudo Password": "Sudo Parolası", + "Confirm": "Onayla" +} diff --git a/cli/app/public/i18n/literals/uk.json b/cli/app/public/i18n/literals/uk.json new file mode 100644 index 00000000000..2b509536d1b --- /dev/null +++ b/cli/app/public/i18n/literals/uk.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Скасувати", + "Delete": "Видалити", + "Edit": "Редагувати", + "Save": "Зберегти", + "Close": "Закрити", + "Add": "Додати", + "Remove": "Видалити", + "Settings": "Налаштування", + "Profile": "Профіль", + "Dashboard": "Панель керування", + "Logout": "Вийти", + "Login": "Увійти", + "Providers": "Постачальники", + "Usage": "Використання", + "API Key": "Ключ API", + "Connected": "Підключено", + "Disconnected": "Відключено", + "Active": "Активний", + "Inactive": "Неактивний", + "Success": "Успіх", + "Failed": "Помилка", + "Error": "Помилка", + "Warning": "Попередження", + "Info": "Інформація", + "Loading": "Завантаження", + "Search": "Пошук", + "Filter": "Фільтр", + "Sort": "Сортування", + "Export": "Експорт", + "Import": "Імпорт", + "Refresh": "Оновити", + "Back": "Назад", + "Next": "Далі", + "Previous": "Попередній", + "Submit": "Надіслати", + "Confirm": "Підтвердити", + "Yes": "Так", + "No": "Ні", + "OK": "ОК", + "Apply": "Застосувати", + "Reset": "Скинути", + "Clear": "Очистити", + "Select": "Вибрати", + "Upload": "Завантажити", + "Download": "Завантажити", + "Copy": "Копіювати", + "Paste": "Вставити", + "Cut": "Вирізати", + "Undo": "Відмінити", + "Redo": "Повторити", + "Name": "Назва", + "Description": "Опис", + "Status": "Статус", + "Type": "Тип", + "Date": "Дата", + "Time": "Час", + "Created": "Створено", + "Updated": "Оновлено", + "Actions": "Дії", + "Details": "Деталі", + "View": "Перегляд", + "New": "Новий", + "Total": "Всього", + "Count": "Кількість", + "Price": "Ціна", + "Cost": "Вартість", + "Free": "Безплатно", + "Paid": "Платно", + "Enable": "Увімкнути", + "Disable": "Вимкнути", + "Enabled": "Увімкнено", + "Disabled": "Вимкнено", + "Online": "Онлайн", + "Offline": "Офлайн", + "Available": "Доступно", + "Unavailable": "Недоступно", + "Required": "Обов'язково", + "Optional": "Опційно", + "Default": "За замовчуванням", + "Custom": "Користувацький", + "Advanced": "Розширені", + "Basic": "Базовий", + "Help": "Допомога", + "Support": "Підтримка", + "Documentation": "Документація", + "Version": "Версія", + "Language": "Мова", + "Theme": "Тема", + "Light": "Світла", + "Dark": "Темна", + "Auto": "Авто", + "Endpoint": "Кінцева точка", + "Providers": "Постачальники", + "Combos": "Комбо", + "Usage": "Статистика використання", + "Quota Tracker": "Відстеження квоти", + "MITM": "MITM", + "CLI Tools": "Інструменти", + "Console Log": "Журнал консолі", + "System": "Система", + "Debug": "Налагодження", + "Shutdown": "Вимкнення", + "Close Proxy": "Закрити проксі", + "Are you sure you want to close the proxy server?": "Ви впевнені, що хочете закрити сервер проксі?", + "Server Disconnected": "Сервер відключено", + "The proxy server has been stopped.": "Сервер проксі було зупинено.", + "Reload Page": "Перезавантажити сторінку", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Служба працює в терміналі. Ви можете закрити цю веб-сторінку. Вимкнення призупинить службу.", + "Manage your AI provider connections": "Керуйте своїми з'єднаннями постачальника AI", + "Model combos with fallback": "Комбо моделей з резервуванням", + "Monitor your API usage, token consumption, and request logs": "Відстежуйте використання API, споживання токенів та журнали запитів", + "Intercept CLI tool traffic and route through 9Router": "Перехопіть трафік інструменту CLI та маршрутизуйте через 9Router", + "Configure CLI tools": "Налаштуйте інструменти CLI", + "API endpoint configuration": "Конфігурація кінцевої точки API", + "Manage your preferences": "Керуйте своїми уподобаннями", + "Debug translation flow between formats": "Налагодити потік перекладу між форматами", + "Live server console output": "Вихід консолі живого сервера", + "Create model combos with fallback support": "Створіть комбо моделей з підтримкою резервування", + "Local Mode": "Локальний режим", + "Running on your machine": "Запуск на вашій машині", + "Database Location": "Розташування бази даних", + "Download Backup": "Завантажити резервну копію", + "Import Backup": "Імпортувати резервну копію", + "Database backup downloaded": "Резервну копію бази даних завантажено", + "Database imported successfully": "Базу даних успішно імпортовано", + "Security": "Безпека", + "Require login": "Потрібне входження", + "When ON, dashboard requires password. When OFF, access without login.": "Коли ВІД, панель керування потребує пароля. Коли ВИМКНЕНО, доступ без входження.", + "Current Password": "Поточний пароль", + "Enter current password": "Введіть поточний пароль", + "New Password": "Новий пароль", + "Enter new password": "Введіть новий пароль", + "Confirm New Password": "Підтвердіть новий пароль", + "Confirm new password": "Підтвердіть новий пароль", + "Update Password": "Оновити пароль", + "Set Password": "Встановити пароль", + "Password updated successfully": "Пароль успішно оновлено", + "Passwords do not match": "Паролі не збігаються", + "Routing Strategy": "Стратегія маршрутизації", + "Round Robin": "Циклічний розподіл", + "Cycle through accounts to distribute load": "Циклічне переключення облікових записів для розподілу навантаження", + "Sticky Limit": "Обмеження липкості", + "Calls per account before switching": "Виклики на обліковий запис перед перемиканням", + "Network": "Мережа", + "Outbound Proxy": "Вихідний проксі", + "Enable proxy for OAuth + provider outbound requests.": "Увімкніть проксі для запитів OAuth + постачальника на виході.", + "Proxy URL": "URL проксі", + "Leave empty to inherit existing env proxy (if any).": "Залиште порожнім, щоб успадкувати існуючий проксі env (якщо є).", + "No Proxy": "Без проксі", + "Comma-separated hostnames/domains to bypass the proxy.": "Розділені комами імена хостів/домени для обходу проксі.", + "Test proxy URL": "Протестувати URL проксі", + "Apply": "Застосувати", + "Proxy settings applied": "Параметри проксі застосовані", + "Proxy enabled": "Проксі увімкнено", + "Proxy disabled": "Проксі вимкнено", + "Proxy test OK": "Тест проксі OK", + "Proxy test failed": "Тест проксі не вдався", + "Please enter a Proxy URL to test": "Будь ласка, введіть URL проксі для тестування", + "Observability": "Спостережуваність", + "Enable Observability": "Увімкнути спостережуваність", + "Turn request detail recording on/off globally": "Увімкніть/вимкніть запис деталей запиту глобально", + "Max Records": "Максимальна кількість записів", + "Maximum request detail records to keep (older records are auto-deleted)": "Максимальна кількість записів деталей запиту для зберігання (старші записи автоматично видаляються)", + "Batch Size": "Розмір пакету", + "Number of items to accumulate before writing to database (higher = better performance)": "Кількість елементів для накопичення перед записом у базу даних (вище = краща продуктивність)", + "Flush Interval (ms)": "Інтервал промивки (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Максимальний час очікування перед промиванням буфера (запобігає втраті даних під час низького трафіку)", + "Max JSON Size (KB)": "Максимальний розмір JSON (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Максимальний розмір для кожного поля JSON (запит/відповідь) перед усіканням", + "All data stored on your machine": "Усі дані зберігаються на вашій машині", + "MITM Server": "MITM сервер", + "Running": "Запущено", + "Stopped": "Зупинено", + "Cert": "Сертифікат", + "Server": "Сервер", + "Purpose:": "Мета:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Використовуйте Antigravity IDE & GitHub Copilot → з БУДЬ-ЯКИМ постачальником/моделлю від 9Router", + "How it works:": "Як це працює:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Запит Antigravity/Copilot IDE → Перенаправлення DNS на localhost:443 → MITM проксі перехопити → 9Router → відповідь на Antigravity/Copilot", + "API Key": "Ключ API", + "No API keys — create one in Keys page": "Немає ключів API — створіть один на сторінці ключів", + "sk_9router (default)": "sk_9router (за замовчуванням)", + "Server started": "Сервер запущено", + "Failed to start server": "Не вдалося запустити сервер", + "Server stopped — all DNS cleared": "Сервер зупинено — усі DNS очищено", + "Failed to stop server": "Не вдалося зупинити сервер", + "Sudo password is required": "Потрібен пароль sudo", + "Stop Server": "Зупинити сервер", + "Start Server": "Запустити сервер", + "Enable DNS per tool below to activate interception": "Увімкніть DNS для кожного інструменту нижче, щоб активувати перехоплення", + "Sudo Password Required": "Потрібен пароль Sudo", + "Enter your sudo password to start/stop MITM server": "Введіть пароль sudo для запуску/зупинення MITM сервера", + "Sudo Password": "Пароль Sudo", + "Confirm": "Підтвердити" +} diff --git a/cli/app/public/i18n/literals/ur.json b/cli/app/public/i18n/literals/ur.json new file mode 100644 index 00000000000..a7bcc5ff4bc --- /dev/null +++ b/cli/app/public/i18n/literals/ur.json @@ -0,0 +1,196 @@ +{ + "Cancel": "منسوخ کریں", + "Delete": "حذف کریں", + "Edit": "ترمیم کریں", + "Save": "محفوظ کریں", + "Close": "بند کریں", + "Add": "شامل کریں", + "Remove": "ہٹائیں", + "Settings": "ترتیبات", + "Profile": "پروفائل", + "Dashboard": "ڈیش بورڈ", + "Logout": "لاگ آؤٹ", + "Login": "لاگ ان", + "Providers": "فراہم کنندگان", + "Usage": "استعمال", + "API Key": "API کلید", + "Connected": "منسلک", + "Disconnected": "منقطع", + "Active": "فعال", + "Inactive": "غیر فعال", + "Success": "کامیاب", + "Failed": "ناکام", + "Error": "خرابی", + "Warning": "انتباہ", + "Info": "معلومات", + "Loading": "لوڈ ہو رہا ہے", + "Search": "تلاش کریں", + "Filter": "فلٹر کریں", + "Sort": "ترتیب دیں", + "Export": "برآمد کریں", + "Import": "درآمد کریں", + "Refresh": "تازہ کریں", + "Back": "واپس", + "Next": "آگے", + "Previous": "پچھلا", + "Submit": "جمع کریں", + "Confirm": "تصدیق کریں", + "Yes": "جی", + "No": "نہیں", + "OK": "ٹھیک ہے", + "Apply": "لاگو کریں", + "Reset": "دوبارہ سیٹ کریں", + "Clear": "صاف کریں", + "Select": "منتخب کریں", + "Upload": "اپ لوڈ کریں", + "Download": "ڈاؤن لوڈ کریں", + "Copy": "کاپی کریں", + "Paste": "پیسٹ کریں", + "Cut": "کاٹ دیں", + "Undo": "واپسی", + "Redo": "دوبارہ کریں", + "Name": "نام", + "Description": "تفصیل", + "Status": "حالت", + "Type": "قسم", + "Date": "تاریخ", + "Time": "وقت", + "Created": "بنایا گیا", + "Updated": "اپڈیٹ شدہ", + "Actions": "اقدامات", + "Details": "تفصیلات", + "View": "دیکھیں", + "New": "نیا", + "Total": "کل", + "Count": "شمار", + "Price": "قیمت", + "Cost": "لاگت", + "Free": "مفت", + "Paid": "ادا شدہ", + "Enable": "فعال کریں", + "Disable": "غیر فعال کریں", + "Enabled": "فعال", + "Disabled": "غیر فعال", + "Online": "آن لائن", + "Offline": "آف لائن", + "Available": "دستیاب", + "Unavailable": "دستیاب نہیں", + "Required": "ضروری", + "Optional": "اختیاری", + "Default": "ڈیفالٹ", + "Custom": "حسب ضرورت", + "Advanced": "اعلیٰ", + "Basic": "بنیادی", + "Help": "مدد", + "Support": "معاونت", + "Documentation": "دستاویزات", + "Version": "ورژن", + "Language": "زبان", + "Theme": "تھیم", + "Light": "روشن", + "Dark": "تاریک", + "Auto": "خودکار", + "Endpoint": "اختتام نقطہ", + "Providers": "فراہم کنندگان", + "Combos": "امتزاجات", + "Usage": "استعمال کے اعدادوشمار", + "Quota Tracker": "کوٹہ ٹریکر", + "MITM": "MITM", + "CLI Tools": "آلات", + "Console Log": "کنسول لاگ", + "System": "نظام", + "Debug": "ڈیبگ", + "Shutdown": "بند کریں", + "Close Proxy": "پروکسی بند کریں", + "Are you sure you want to close the proxy server?": "کیا آپ یقیناً پروکسی سرور کو بند کرنا چاہتے ہیں؟", + "Server Disconnected": "سرور منقطع", + "The proxy server has been stopped.": "پروکسی سرور بند کر دیا گیا ہے۔", + "Reload Page": "صفحہ دوبارہ لوڈ کریں", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "خدمت ٹرمینل میں چل رہی ہے۔ آپ یہ ویب صفحہ بند کر سکتے ہیں۔ شٹ ڈاؤن خدمت کو بند کر دے گا۔", + "Manage your AI provider connections": "اپنے AI فراہم کنندہ کنکشن کو منیج کریں", + "Model combos with fallback": "Fallback کے ساتھ ماڈل امتزاجات", + "Monitor your API usage, token consumption, and request logs": "اپنے API استعمال، ٹوکن کھپت، اور درخواست لاگز کی نگرانی کریں", + "Intercept CLI tool traffic and route through 9Router": "CLI ٹول ٹریفک کو روکیں اور 9Router کے ذریعے منتقل کریں", + "Configure CLI tools": "CLI آلات ترتیب دیں", + "API endpoint configuration": "API اختتام نقطہ کی ترتیب", + "Manage your preferences": "اپنی ترجیحات منیج کریں", + "Debug translation flow between formats": "شکلوں کے درمیان ترجمہ کے بہاؤ کو ڈیبگ کریں", + "Live server console output": "لائیو سرور کنسول آؤٹ پٹ", + "Create model combos with fallback support": "Fallback معاونت کے ساتھ ماڈل امتزاجات بنائیں", + "Local Mode": "مقامی موڈ", + "Running on your machine": "آپ کی مشین پر چل رہا ہے", + "Database Location": "ڈیٹابیس کی جگہ", + "Download Backup": "بیک اپ ڈاؤن لوڈ کریں", + "Import Backup": "بیک اپ درآمد کریں", + "Database backup downloaded": "ڈیٹابیس بیک اپ ڈاؤن لوڈ کیا گیا", + "Database imported successfully": "ڈیٹابیس کامیابی سے درآمد کیا گیا", + "Security": "سیکیورٹی", + "Require login": "لاگ ان کی ضرورت ہے", + "When ON, dashboard requires password. When OFF, access without login.": "جب آن ہو، ڈیش بورڈ کے لیے پاس ورڈ درکار ہے۔ جب آف ہو، بغیر لاگ ان کے رسائی حاصل کریں۔", + "Current Password": "موجودہ پاس ورڈ", + "Enter current password": "موجودہ پاس ورڈ داخل کریں", + "New Password": "نیا پاس ورڈ", + "Enter new password": "نیا پاس ورڈ داخل کریں", + "Confirm New Password": "نئے پاس ورڈ کی تصدیق کریں", + "Confirm new password": "نئے پاس ورڈ کی تصدیق کریں", + "Update Password": "پاس ورڈ اپڈیٹ کریں", + "Set Password": "پاس ورڈ سیٹ کریں", + "Password updated successfully": "پاس ورڈ کامیابی سے اپڈیٹ ہو گیا", + "Passwords do not match": "پاس ورڈ مماثل نہیں ہیں", + "Routing Strategy": "روٹنگ حکمت عملی", + "Round Robin": "دوری رابن", + "Cycle through accounts to distribute load": "بوجھ تقسیم کرنے کے لیے اکاؤنٹس کے ذریعے سائیکل کریں", + "Sticky Limit": "چپکنے والی حد", + "Calls per account before switching": "سوئچنگ سے پہلے فی اکاؤنٹ کالیں", + "Network": "نیٹ ورک", + "Outbound Proxy": "آؤٹ بائونڈ پروکسی", + "Enable proxy for OAuth + provider outbound requests.": "OAuth + فراہم کنندہ آؤٹ بائونڈ درخواستوں کے لیے پروکسی فعال کریں۔", + "Proxy URL": "پروکسی URL", + "Leave empty to inherit existing env proxy (if any).": "موجودہ env پروکسی کو وراثت میں دینے کے لیے خالی رکھیں (اگر کوئی ہو)۔", + "No Proxy": "کوئی پروکسی نہیں", + "Comma-separated hostnames/domains to bypass the proxy.": "پروکسی کو نظر انداز کرنے کے لیے کوما سے الگ شدہ ہوسٹ ناموں/ڈومین۔", + "Test proxy URL": "پروکسی URL کو ٹیسٹ کریں", + "Apply": "لاگو کریں", + "Proxy settings applied": "پروکسی ترتیبات لاگو کی گئیں", + "Proxy enabled": "پروکسی فعال", + "Proxy disabled": "پروکسی غیر فعال", + "Proxy test OK": "پروکسی ٹیسٹ ٹھیک ہے", + "Proxy test failed": "پروکسی ٹیسٹ ناکام", + "Please enter a Proxy URL to test": "براہ کرم ٹیسٹ کے لیے ایک پروکسی URL داخل کریں", + "Observability": "نقطہ نظر کی صلاحیت", + "Enable Observability": "نقطہ نظر کی صلاحیت فعال کریں", + "Turn request detail recording on/off globally": "درخواست کی تفصیلات ریکارڈنگ کو عالمی طور پر آن/آف کریں", + "Max Records": "زیادہ سے زیادہ ریکارڈ", + "Maximum request detail records to keep (older records are auto-deleted)": "رکھنے کے لیے زیادہ سے زیادہ درخواست کی تفصیلات ریکارڈ (پرانے ریکارڈ خود بخود حذف ہو جاتے ہیں)", + "Batch Size": "بیچ سائز", + "Number of items to accumulate before writing to database (higher = better performance)": "ڈیٹابیس میں لکھنے سے پہلے جمع کرنے کے لیے اشیاء کی تعداد (زیادہ = بہتر کارکردگی)", + "Flush Interval (ms)": "فلش وقفہ (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "بفر کو فلش کرنے سے پہلے انتظار کرنے کا زیادہ سے زیادہ وقت (کم ٹریفک کے دوران ڈیٹا کے نقصان سے بچاتا ہے)", + "Max JSON Size (KB)": "زیادہ سے زیادہ JSON سائز (KB)", + "Maximum size for each JSON field (request/response) before truncation": "تشکیل سے پہلے ہر JSON فیلڈ کے لیے زیادہ سے زیادہ سائز (درخواست/جواب)", + "All data stored on your machine": "تمام ڈیٹا آپ کی مشین پر محفوظ ہے", + "MITM Server": "MITM سرور", + "Running": "چل رہا ہے", + "Stopped": "رکا ہوا", + "Cert": "سرٹیفکیٹ", + "Server": "سرور", + "Purpose:": "مقصد:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Antigravity IDE اور GitHub Copilot استعمال کریں → 9Router سے کسی بھی فراہم کنندہ/ماڈل کے ساتھ", + "How it works:": "یہ کیسے کام کرتا ہے:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE درخواست → DNS کو localhost:443 کی طرف ری ڈائریکٹ کریں → MITM پروکسی روکے → 9Router → Antigravity/Copilot کو جواب", + "API Key": "API کلید", + "No API keys — create one in Keys page": "کوئی API کلید نہیں — Keys صفحہ میں ایک بنائیں", + "sk_9router (default)": "sk_9router (ڈیفالٹ)", + "Server started": "سرور شروع ہوگیا", + "Failed to start server": "سرور شروع کرنے میں ناکام", + "Server stopped — all DNS cleared": "سرور بند — تمام DNS صاف کیے گئے", + "Failed to stop server": "سرور بند کرنے میں ناکام", + "Sudo password is required": "Sudo پاس ورڈ درکار ہے", + "Stop Server": "سرور بند کریں", + "Start Server": "سرور شروع کریں", + "Enable DNS per tool below to activate interception": "روک تھام کو فعال کرنے کے لیے نیچے ہر ٹول کے لیے DNS فعال کریں", + "Sudo Password Required": "Sudo پاس ورڈ درکار ہے", + "Enter your sudo password to start/stop MITM server": "MITM سرور شروع/بند کرنے کے لیے اپنا sudo پاس ورڈ داخل کریں", + "Sudo Password": "Sudo پاس ورڈ", + "Confirm": "تصدیق کریں" +} diff --git a/cli/app/public/i18n/literals/vi.json b/cli/app/public/i18n/literals/vi.json new file mode 100644 index 00000000000..a876310b60f --- /dev/null +++ b/cli/app/public/i18n/literals/vi.json @@ -0,0 +1,196 @@ +{ + "Cancel": "Hủy", + "Delete": "Xóa", + "Edit": "Sửa", + "Save": "Lưu", + "Close": "Đóng", + "Add": "Thêm", + "Remove": "Xóa bỏ", + "Settings": "Cài đặt", + "Profile": "Hồ sơ", + "Dashboard": "Bảng điều khiển", + "Logout": "Đăng xuất", + "Login": "Đăng nhập", + "Providers": "Nhà cung cấp", + "Usage": "Sử dụng", + "API Key": "Khóa API", + "Connected": " Đã kết nối", + "Disconnected": "Chưa kết nối", + "Active": "Hoạt động", + "Inactive": "Không hoạt động", + "Success": "Thành công", + "Failed": "Thất bại", + "Error": "Lỗi", + "Warning": "Cảnh báo", + "Info": "Thông tin", + "Loading": "Đang tải", + "Search": "Tìm kiếm", + "Filter": "Lọc", + "Sort": "Sắp xếp", + "Export": "Xuất", + "Import": "Nhập", + "Refresh": "Làm mới", + "Back": "Quay lại", + "Next": "Tiếp theo", + "Previous": "Trước", + "Submit": "Gửi", + "Confirm": "Xác nhận", + "Yes": "Có", + "No": "Không", + "OK": "OK", + "Apply": "Áp dụng", + "Reset": "Đặt lại", + "Clear": "Xóa", + "Select": "Chọn", + "Upload": "Tải lên", + "Download": "Tải xuống", + "Copy": "Sao chép", + "Paste": "Dán", + "Cut": "Cắt", + "Undo": "Hoàn tác", + "Redo": "Làm lại", + "Name": "Tên", + "Description": "Mô tả", + "Status": "Trạng thái", + "Type": "Loại", + "Date": "Ngày", + "Time": "Thời gian", + "Created": "Đã tạo", + "Updated": "Đã cập nhật", + "Actions": "Hành động", + "Details": "Chi tiết", + "View": "Xem", + "New": "Mới", + "Total": "Tổng", + "Count": "Số lượng", + "Price": "Giá", + "Cost": "Chi phí", + "Free": "Miễn phí", + "Paid": "Trả phí", + "Enable": "Bật", + "Disable": "Tắt", + "Enabled": "Đã bật", + "Disabled": "Đã tắt", + "Online": "Trực tuyến", + "Offline": "Ngoại tuyến", + "Available": "Có sẵn", + "Unavailable": "Không có sẵn", + "Required": "Bắt buộc", + "Optional": "Tùy chọn", + "Default": "Mặc định", + "Custom": "Tùy chỉnh", + "Advanced": "Nâng cao", + "Basic": "Cơ bản", + "Help": "Trợ giúp", + "Support": "Hỗ trợ", + "Documentation": "Tài liệu", + "Version": "Phiên bản", + "Language": "Ngôn ngữ", + "Theme": "Giao diện", + "Light": "Sáng", + "Dark": "Tối", + "Auto": "Tự động", + "Endpoint": "Điểm cuối", + "Providers": "Nhà cung cấp", + "Combos": "Kết hợp", + "Usage": "Thống kê", + "Quota Tracker": "Theo dõi hạn mức", + "MITM": "MITM", + "CLI Tools": "Công cụ", + "Console Log": "Nhật ký Console", + "System": "Hệ thống", + "Debug": "Gỡ lỗi", + "Shutdown": "Tắt máy", + "Close Proxy": "Đóng Proxy", + "Are you sure you want to close the proxy server?": "Bạn có chắc chắn muốn đóng máy chủ proxy không?", + "Server Disconnected": "Máy chủ đã ngắt kết nối", + "The proxy server has been stopped.": "Máy chủ proxy đã bị dừng.", + "Reload Page": "Tải lại trang", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "Dịch vụ đang chạy trong terminal. Bạn có thể đóng trang web này. Tắt máy sẽ dừng dịch vụ.", + "Manage your AI provider connections": "Quản lý kết nối nhà cung cấp AI của bạn", + "Model combos with fallback": "Kết hợp mô hình với dự phòng", + "Monitor your API usage, token consumption, and request logs": "Theo dõi việc sử dụng API, tiêu thụ token và nhật ký yêu cầu", + "Intercept CLI tool traffic and route through 9Router": "Chặn lưu lượng công cụ CLI và định tuyến qua 9Router", + "Configure CLI tools": "Cấu hình công cụ CLI", + "API endpoint configuration": "Cấu hình điểm cuối API", + "Manage your preferences": "Quản lý tùy chọn của bạn", + "Debug translation flow between formats": "Gỡ lỗi luồng dịch giữa các định dạng", + "Live server console output": "Đầu ra console máy chủ trực tiếp", + "Create model combos with fallback support": "Tạo kết hợp mô hình với hỗ trợ dự phòng", + "Local Mode": "Chế độ cục bộ", + "Running on your machine": "Chạy trên máy của bạn", + "Database Location": "Vị trí cơ sở dữ liệu", + "Download Backup": "Tải xuống bản sao lưu", + "Import Backup": "Nhập bản sao lưu", + "Database backup downloaded": "Đã tải xuống bản sao lưu cơ sở dữ liệu", + "Database imported successfully": "Đã nhập cơ sở dữ liệu thành công", + "Security": "Bảo mật", + "Require login": "Yêu cầu đăng nhập", + "When ON, dashboard requires password. When OFF, access without login.": "Khi BẬT, bảng điều khiển yêu cầu mật khẩu. Khi TẮT, truy cập không cần đăng nhập.", + "Current Password": "Mật khẩu hiện tại", + "Enter current password": "Nhập mật khẩu hiện tại", + "New Password": "Mật khẩu mới", + "Enter new password": "Nhập mật khẩu mới", + "Confirm New Password": "Xác nhận mật khẩu mới", + "Confirm new password": "Xác nhận mật khẩu mới", + "Update Password": "Cập nhật mật khẩu", + "Set Password": "Đặt mật khẩu", + "Password updated successfully": "Đã cập nhật mật khẩu thành công", + "Passwords do not match": "Mật khẩu không khớp", + "Routing Strategy": "Chiến lược định tuyến", + "Round Robin": "Vòng tròn", + "Cycle through accounts to distribute load": "Luân phiên qua các tài khoản để phân phối tải", + "Sticky Limit": "Giới hạn dính", + "Calls per account before switching": "Số lần gọi mỗi tài khoản trước khi chuyển", + "Network": "Mạng", + "Outbound Proxy": "Proxy đi ra", + "Enable proxy for OAuth + provider outbound requests.": "Bật proxy cho OAuth + yêu cầu đi ra của nhà cung cấp.", + "Proxy URL": "URL Proxy", + "Leave empty to inherit existing env proxy (if any).": "Để trống để kế thừa proxy môi trường hiện có (nếu có).", + "No Proxy": "Không có Proxy", + "Comma-separated hostnames/domains to bypass the proxy.": "Tên máy chủ/tên miền được phân tách bằng dấu phẩy để bỏ qua proxy.", + "Test proxy URL": "Kiểm tra URL proxy", + "Apply": "Áp dụng", + "Proxy settings applied": "Đã áp dụng cài đặt proxy", + "Proxy enabled": "Đã bật proxy", + "Proxy disabled": "Đã tắt proxy", + "Proxy test OK": "Kiểm tra proxy OK", + "Proxy test failed": "Kiểm tra proxy thất bại", + "Please enter a Proxy URL to test": "Vui lòng nhập URL Proxy để kiểm tra", + "Observability": "Khả năng quan sát", + "Enable Observability": "Bật khả năng quan sát", + "Turn request detail recording on/off globally": "Bật/tắt ghi chi tiết yêu cầu toàn cục", + "Max Records": "Số bản ghi tối đa", + "Maximum request detail records to keep (older records are auto-deleted)": "Số bản ghi chi tiết yêu cầu tối đa để giữ (bản ghi cũ hơn sẽ tự động xóa)", + "Batch Size": "Kích thước lô", + "Number of items to accumulate before writing to database (higher = better performance)": "Số mục tích lũy trước khi ghi vào cơ sở dữ liệu (cao hơn = hiệu suất tốt hơn)", + "Flush Interval (ms)": "Khoảng thời gian xả (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "Thời gian tối đa để chờ trước khi xả bộ đệm (ngăn mất dữ liệu trong lưu lượng thấp)", + "Max JSON Size (KB)": "Kích thước JSON tối đa (KB)", + "Maximum size for each JSON field (request/response) before truncation": "Kích thước tối đa cho mỗi trường JSON (yêu cầu/phản hồi) trước khi cắt bớt", + "All data stored on your machine": "Tất cả dữ liệu được lưu trữ trên máy của bạn", + "MITM Server": "Máy chủ MITM", + "Running": "Đang chạy", + "Stopped": "Đã dừng", + "Cert": "Chứng chỉ", + "Server": "Máy chủ", + "Purpose:": "Mục đích:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "Sử dụng Antigravity IDE & GitHub Copilot → với BẤT KỲ nhà cung cấp/mô hình nào từ 9Router", + "How it works:": "Cách hoạt động:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Yêu cầu Antigravity/Copilot IDE → Chuyển hướng DNS đến localhost:443 → MITM proxy chặn → 9Router → phản hồi đến Antigravity/Copilot", + "API Key": "Khóa API", + "No API keys — create one in Keys page": "Không có khóa API — tạo một khóa trong trang Keys", + "sk_9router (default)": "sk_9router (mặc định)", + "Server started": "Đã khởi động máy chủ", + "Failed to start server": "Không thể khởi động máy chủ", + "Server stopped — all DNS cleared": "Đã dừng máy chủ — đã xóa tất cả DNS", + "Failed to stop server": "Không thể dừng máy chủ", + "Sudo password is required": "Yêu cầu mật khẩu sudo", + "Stop Server": "Dừng máy chủ", + "Start Server": "Khởi động máy chủ", + "Enable DNS per tool below to activate interception": "Bật DNS cho từng công cụ bên dưới để kích hoạt chặn", + "Sudo Password Required": "Yêu cầu mật khẩu Sudo", + "Enter your sudo password to start/stop MITM server": "Nhập mật khẩu sudo của bạn để khởi động/dừng máy chủ MITM", + "Sudo Password": "Mật khẩu Sudo", + "Confirm": "Xác nhận" +} diff --git a/cli/app/public/i18n/literals/zh-CN.json b/cli/app/public/i18n/literals/zh-CN.json new file mode 100644 index 00000000000..9351be8d8de --- /dev/null +++ b/cli/app/public/i18n/literals/zh-CN.json @@ -0,0 +1,792 @@ +{ + "-compatible models manually or import them from the /models endpoint.": "- 手动兼容模型或从 /models 端点导入它们。", + ". Click \"Apply\" to auto-configure.": "。单击“应用”进行自动配置。", + "($/1M tokens). Example: An input rate of 2.50 means $2.50 per 1,000,000 input tokens.": "($/100 万 Token)。示例:输入费率 2.50 表示每 1,000,000 个输入 Token 需 2.50 美元。", + "($/1M tokens). Example: Input rate of 2.50 means $2.50 per 1,000,000 input tokens.": "($/100 万 Token)。示例:输入费率 2.50 表示每 1,000,000 个输入 Token 需 2.50 美元。", + "1. Client Request (Input)": "1. 客户端请求(输入)", + "1. Generates SSL cert & adds to system keychain": "1. 生成 SSL 证书并添加到系统钥匙串", + "2. Provider Request (Translated)": "2. 提供商请求(已​​翻译)", + "2. Redirects": "2. 重定向", + "24h": "24小时", + "3. Maps Antigravity models to any provider via 9Router": "3. 通过 9Router 将Antigravity模型映射到任何提供商", + "3. Provider Response (Raw)": "3. 提供商响应(原始)", + "4. Client Response (Final)": "4. 客户端响应(最终)", + "About": "关于", + "Access Anywhere": "随处访问", + "Access Token": "访问令牌", + "Access token will be auto-filled...": "访问令牌将自动填充...", + "Account": "账号", + "account has been connected.": "账号已连接。", + "Action": "操作", + "Active": "活跃", + "Add": "添加", + "Add a connection to enable importing models.": "添加连接以启用导入模型。", + "Add Anthropic Compatible": "添加Anthropic兼容", + "Add Connection": "添加连接", + "Add connection using browser cookie": "使用浏览器 cookie 添加连接", + "Add Custom Model": "添加自定义模型", + "Add model": "添加模型", + "Add Model": "添加模型", + "Add Model to Combo": "将模型添加到组合", + "Add New Provider": "添加新提供商", + "Add OpenAI Compatible": "添加 OpenAI 兼容", + "Add your first connection to get started": "添加您的第一个连接以开始使用", + "added)": "已添加)", + "After authorization, copy the full URL from your browser address bar.": "授权后,从浏览器地址栏中复制完整的 URL。", + "After authorization, copy the full URL from your browser.": "授权后,从浏览器复制完整的 URL。", + "After installation, run": "安装后,运行", + "After login, you'll need to copy the callback URL from your browser and paste it back here.": "登录后,您需要从浏览器复制回调 URL 并将其粘贴回此处。", + "All models are responding normally.": "所有模型均响应正常。", + "All Providers": "所有提供商", + "All rates are in": "所有费率均在", + "An error occurred": "发生错误", + "Anthropic Compatible (Prod)": "Anthropic 兼容(生产)", + "API Endpoint": "API端点", + "API Key": "API密钥", + "API Key (for Check)": "API 密钥(用于检查)", + "API Key Compatible Providers": "API 密钥兼容提供商", + "API Key Created": "API 密钥已创建", + "API Key Name": "API 密钥名称", + "API Key Providers": "API 密钥提供商", + "API Keys": "API 密钥", + "API Reference": "API参考", + "API Type": "API类型", + "Apply": "应用", + "Are you sure you want to disable the tunnel?": "您确定要禁用隧道吗?", + "Authenticate": "认证", + "Authentication Method": "认证方式", + "Authentication Successful!": "认证成功!", + "Authorization Successful!": "授权成功!", + "Auto Refresh (3s)": "自动刷新(3秒)", + "Auto-detecting token...": "自动检测令牌...", + "Auto-detecting tokens...": "自动检测令牌...", + "Auto:": "自动:", + "Available": "可用", + "AWS Builder ID": "AWS 构建器 ID", + "AWS IAM Identity Center": "AWS IAM 身份中心", + "AWS Region": "AWS 区域", + "AWS region for your Identity Center (default: us-east-1)": "您的身份中心的 AWS 区域(默认值:us-east-1)", + "Back": "返回", + "Back to Providers": "返回提供商", + "Base URL": "基础 URL", + "Batch Size": "批量大小", + "Blog": "博客", + "Cache Creation": "缓存创建", + "Cache Creation:": "缓存创建:", + "Cached": "缓存", + "Cached input tokens (typically 50% of input rate)": "缓存输入 Token(通常为输入费率的 50%)", + "Cached:": "缓存:", + "Calls per account before switching": "切换前每个账号的调用次数", + "Cancel": "取消", + "Cert": "证书", + "Changelog": "变更日志", + "chars)": "字符)", + "Chat Completions": "聊天完成", + "Checking Claude CLI...": "检查 Claude CLI...", + "Checking Codex CLI...": "正在检查 Codex CLI...", + "Checking Copilot config...": "正在检查Copilot配置...", + "Checking Factory Droid CLI...": "检查 Factory Droid CLI...", + "Checking Open Claw CLI...": "正在检查 Open Claw CLI...", + "Checking OpenCode CLI...": "检查 OpenCode CLI...", + "Choose your authentication method:": "选择您的身份验证方法:", + "Claude": "Claude", + "Claude CLI - Manual Configuration": "Claude CLI - 手动配置", + "Claude CLI not installed": "Claude CLI 未安装", + "Clear": "清除", + "Clear Filters": "清除过滤器", + "Clear search": "清除搜索", + "Click to edit": "点击编辑", + "Close test results": "关闭测试结果", + "Cloudflare Tunnel": "Cloudflare 隧道", + "Codex CLI - Manual Configuration": "Codex CLI - 手动配置", + "Codex CLI not installed": "Codex CLI 未安装", + "Codex uses": "Codex 使用", + "Combo Name": "组合名称", + "Combos": "组合", + "Coming soon...": "即将推出...", + "Comma-separated hostnames/domains to bypass the proxy.": "以逗号分隔的主机名/域以绕过代理。", + "Company": "公司", + "Complete the authorization in the popup window.": "在弹出的窗口中完成授权。", + "Completion/response tokens": "补全/响应 Token", + "Configure a new AI provider to use with your applications.": "配置新的 AI 提供程序以与您的应用程序一起使用。", + "Configure pricing rates for cost tracking and calculations": "配置定价以进行成本跟踪和计算", + "Confirm": "确认", + "Confirm new password": "确认新密码", + "Confirm New Password": "确认新密码", + "Connect": "连接", + "Connect AI tools remotely": "远程连接AI工具", + "Connect Cursor IDE": "连接CursorIDE", + "Connect Kiro": "连接Kiro", + "Connect to providers with OAuth to track your API quota limits and usage.": "使用 OAuth 连接到提供商以跟踪您的 API 配额限制和使用情况。", + "Connect with OAuth2": "使用 OAuth2 连接", + "Connect your account using OAuth2 authentication.": "使用 OAuth2 身份验证连接您的账号。", + "Connected": "已连接", + "Connected Successfully!": "连接成功!", + "Connection Failed": "连接失败", + "Connections": "连接", + "Contact": "联系", + "Content": "内容", + "Continue": "继续", + "Continue with GitHub": "继续使用 GitHub", + "Continue with Google": "使用 Google 继续", + "Cookie": "Cookie", + "Cookie Auth": "Cookie 验证", + "Cookie String": "Cookie 字符串", + "Cooldown": "冷却", + "Copy": "复制", + "Copy combo name": "复制组合名称", + "Copy model": "复制模型", + "Copy the entire cookie string (must include BXAuth)": "复制整个 cookie 字符串(必须包括 BXAuth)", + "Copy This URL": "复制此 URL", + "Cost": "成本", + "Cost Calculation:": "成本计算:", + "Costs are calculated based on token usage and pricing rates. Each request's cost is determined by: (input_tokens × input_rate) + (output_tokens × output_rate) + (cached_tokens × cached_rate)": "成本根据 Token 用量和费率计算。每个请求的成本由以下公式决定:(input_tokens × input_rate) + (output_tokens × output_rate) + (cached_tokens × cached_rate)", + "Could not read Cursor database automatically.": "无法自动读取 Cursor 数据库。", + "Create": "创建", + "Create API Key": "创建 API 密钥", + "Create Combo": "创建组合", + "Create Key": "创建密钥", + "Create model combos with fallback support": "创建具有后备支持的模型组合", + "Create Provider": "创建提供商", + "Create your first API key to get started": "创建您的第一个 API 密钥以开始使用", + "Created": "已创建", + "Current": "当前", + "Current Password": "当前密码", + "Current Pricing Overview": "当前定价概述", + "Current: Keeps": "当前: 保留", + "Cursor IDE not detected. Please paste your tokens manually.": "未检测到Cursor IDE。请手动粘贴您的令牌。", + "Custom Pricing:": "定制定价:", + "Cycle through accounts to distribute load": "循环切换账号以分配负载", + "Database backup downloaded": "数据库备份已下载", + "Database imported successfully": "数据库导入成功", + "Database Location": "数据库位置", + "DateTime": "日期时间", + "Debug translation flow between formats": "调试格式之间的翻译流程", + "Delete": "删除", + "Detail": "详情", + "Disable Tunnel": "禁用隧道", + "Disabled": "已禁用", + "Display Name": "显示名称", + "DNS off": "DNS 关闭", + "Documentation": "文档", + "dollars per million tokens": "美元 / 百万 Token", + "Domain:": "域名:", + "Done": "完成", + "Download Backup": "下载备份", + "e.g. claude-opus-4-5": "例如 claude-opus-4-5", + "e.g., Production API, Dev Environment": "例如,生产 API、开发环境", + "Edit": "编辑", + "Edit Connection": "编辑连接", + "Edit Pricing": "编辑定价", + "Email": "邮箱", + "Enable DNS per tool below to activate interception": "启用下面每个工具的 DNS 以激活拦截", + "Enable Observability": "启用可观察性", + "Enable proxy for OAuth + provider outbound requests.": "为 OAuth + 提供商出站请求启用代理。", + "Enable Tunnel": "启用隧道", + "Encrypted": "已加密", + "End Date": "结束日期", + "End-to-end TLS via Cloudflare": "通过 Cloudflare 的端到端 TLS", + "Endpoint": "端点", + "Enter current password": "输入当前密码", + "Enter new API key": "输入新的 API 密钥", + "Enter new password": "输入新密码", + "Enter sudo password": "输入sudo密码", + "Enter your API key": "输入您的 API 密钥", + "Est. Cost": "预估成本", + "Estimated, not actual billing": "预估费用,非实际账单", + "Expose your local 9Router to the internet. No port forwarding, no static IP needed. Share endpoint URL with your team or use it in Cursor, Cline, and other AI tools from anywhere.": "将您本地的 9Router 暴露到互联网。无需端口转发,无需静态 IP。与您的团队共享端点 URL 或从任何地方在 Cursor、Cline 和其他 AI 工具中使用它。", + "Factory Droid - Manual Configuration": "Factory Droid - 手动配置", + "Factory Droid CLI not installed": "Factory Droid CLI 未安装", + "Failed to load usage statistics.": "无法加载使用情况统计信息。", + "Features": "功能特性", + "Flush Interval (ms)": "刷新间隔(毫秒)", + "For enterprise users with custom AWS IAM Identity Center.": "适用于具有自定义 AWS IAM Identity Center 的企业用户。", + "Free Providers": "免费提供商", + "Fresh API key obtained": "获得新的 API 密钥", + "GitHub Account": "GitHub 账号", + "GitHub Copilot - Manual Configuration": "GitHub Copilot - 手动配置", + "Google Account": "Google 账号", + "has been connected.": "已连接。", + "Help Center": "帮助中心", + "How it works:": "工作原理:", + "How Pricing Works": "定价如何运作", + "How to get cookie:": "如何获取cookie:", + "IDC Start URL": "IDC 起始 URL", + "iFlow AI": "iFlow AI", + "iFlow Cookie Authentication": "iFlow Cookie 身份验证", + "Import Backup": "导入备份", + "Import Token": "导入令牌", + "In": "输入", + "In / Out": "输入/输出", + "Inactive": "未激活", + "Inc. All rights reserved.": "公司。保留所有权利。", + "Input": "输入", + "Input Tokens": "输入 Token", + "Input Tokens:": "输入 Token:", + "Input:": "输入:", + "Installation Guide": "安装指南", + "Interactive diagram visible on desktop": "桌面上可见的交互式图表", + "Intercepts Antigravity traffic via DNS redirect, letting you reroute models through 9Router.": "通过 DNS 重定向拦截Antigravity流量,让您可以通过 9Router 重新路由模型。", + "KB per field": "每个字段的 KB", + "Key Name": "密钥名称", + "Kimi": "Kimi", + "Kiro AI": "Kiro AI", + "Kiro IDE not detected. Please paste your refresh token manually.": "未检测到 Kiro IDE。请手动粘贴您的刷新令牌。", + "Last updated:": "最后更新:", + "Last Used": "最后使用", + "Latency": "延迟", + "Latency:": "延迟:", + "Lean": "Lean", + "Leave empty to inherit existing env proxy (if any).": "留空以继承现有的 env 代理(如果有)。", + "Load": "加载", + "Loading logs...": "正在加载日志...", + "Loading models from provider...": "正在从提供商处加载模型...", + "Loading pricing data...": "正在加载定价数据...", + "Local Mode": "本地模式", + "Local Mode - All data stored on your machine": "本地模式 - 所有数据都存储在您的计算机上", + "Login to your account": "登录您的账号", + "Login with your GitHub account (manual callback).": "使用您的 GitHub 账号登录(手动回调)。", + "Login with your Google account (manual callback).": "使用您的 Google 账号登录(手动回调)。", + "Logs are saved to log.txt in the application data directory.": "日志保存在应用程序数据目录下的log.txt中。", + "Machine ID": "机器ID", + "Machine ID will be auto-filled...": "机器 ID 将自动填充...", + "macOS / Linux / Windows:": "macOS / Linux / Windows:", + "macOS / Linux:": "macOS / Linux:", + "Manual Callback Required": "需要手动回调", + "Manual Config": "手动配置", + "Max JSON Size (KB)": "最大 JSON 大小 (KB)", + "Max Records": "最大记录数", + "Maximum request detail records to keep (older records are auto-deleted)": "要保留的最大请求详细记录(较旧的记录会自动删除)", + "Maximum size for each JSON field (request/response) before truncation": "截断前每个 JSON 字段(请求/响应)的最大大小", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "刷新缓冲区之前等待的最长时间(防止低流量期间数据丢失)", + "Messages": "消息", + "MiniMax": "MiniMax", + "MITM Server": "中间人服务器", + "Model": "模型", + "Model ID": "模型 ID", + "Model ID (from OpenRouter)": "模型 ID(来自 OpenRouter)", + "Model is reachable": "模型可达", + "Model mappings will be available soon.": "模型映射即将推出。", + "Model Status": "模型状态", + "Model:": "模型:", + "Models": "模型", + "more providers": "更多提供商", + "Move down": "下移", + "Move up": "向上移动", + "ms / Total": "毫秒/总计", + "Name": "名称", + "Network": "网络", + "New Password": "新密码", + "No active connections found for this group.": "未找到该组的活跃连接。", + "No active providers": "没有活跃的提供商", + "No API keys yet": "还没有 API 密钥", + "No combos yet": "还没有组合", + "No compatible providers added yet": "尚未添加兼容的提供商", + "No connections": "无连接", + "No connections yet": "还没有连接", + "No console logs yet.": "还没有控制台日志。", + "No data for this period": "此期间没有数据", + "No logs recorded yet.": "尚未记录任何日志。", + "No models": "暂无模型", + "No models added yet": "尚未添加模型", + "No models configured": "未配置模型", + "No models found": "未找到模型", + "No models match your filter.": "没有模型匹配您的筛选条件。", + "No pricing data available": "无可用定价数据", + "No Providers Connected": "没有连接提供商", + "No Proxy": "无代理", + "No quota data available": "无可用配额数据", + "No request details found": "未找到请求详细信息", + "No requests yet.": "暂无请求。", + "Not configured": "未配置", + "Number of items to accumulate before writing to database (higher = better performance)": "写入数据库之前要累积的项目数(越高=性能越好)", + "OAuth Providers": "OAuth 提供商", + "Observability": "可观察性", + "Only letters, numbers, - and _ allowed": "只允许使用字母、数字、- 和 _", + "Only one connection is allowed per compatible node. Add another node if you need more connections.": "每个兼容节点仅允许一个连接。如果需要更多连接,请添加另一个节点。", + "Open Claw - Manual Configuration": "Open Claw - 手动配置", + "Open Claw CLI not installed": "未安装 Open Claw CLI", + "Open DevTools (F12) → Application/Storage → Cookies": "打开 DevTools (F12) → 应用程序/存储 → Cookie", + "Open platform.iflow.cn in your browser": "在浏览器中打开platform.iflow.cn", + "OpenAI Compatible (Prod)": "OpenAI 兼容(生产)", + "OpenCode - Manual Configuration": "OpenCode - 手动配置", + "OpenCode CLI not installed": "未安装 OpenCode CLI", + "OpenRouter": "OpenRouter", + "OpenRouter supports any model. Add models and create aliases for quick access.": "OpenRouter 支持任何模型。添加模型并创建别名以便快速访问。", + "Other": "其他", + "Out": "输出", + "Outbound Proxy": "出站代理", + "Output": "输出", + "Output Tokens": "输出 Token", + "Output Tokens:": "输出 Token:", + "Output:": "输出:", + "Password updated successfully": "密码更新成功", + "Passwords do not match": "密码不匹配", + "Paste it below": "粘贴在下面", + "Paste refresh token from Kiro IDE.": "从 Kiro IDE 粘贴刷新令牌。", + "Paused": "已暂停", + "Please add and connect providers first to configure CLI tools.": "请先添加并连接提供商以配置 CLI 工具。", + "Please copy the URL from the address bar and paste it in the application.": "请复制地址栏中的 URL 并将其粘贴到应用程序中。", + "Please enter a Proxy URL to test": "请输入代理 URL 进行测试", + "Please install Claude CLI to use this feature.": "请安装 Claude CLI 才能使用此功能。", + "Please install Codex CLI to use auto-apply feature.": "请安装 Codex CLI 以使用自动应用功能。", + "Please install Factory Droid CLI to use this feature.": "请安装 Factory Droid CLI 才能使用此功能。", + "Please install Open Claw CLI to use this feature.": "请安装 Open Claw CLI 才能使用此功能。", + "Please install OpenCode CLI to use auto-apply feature.": "请安装 OpenCode CLI 以使用自动应用功能。", + "Please wait while we complete the authorization.": "我们正在完成授权,请稍候。", + "Popup blocked? Enter URL manually": "弹出窗口被拦截?请手动输入 URL", + "Prefix": "前缀", + "Pricing": "定价", + "Pricing Configuration": "定价配置", + "Pricing Format:": "定价格式:", + "Pricing Rates Format": "定价格式", + "Pricing Settings": "定价设置", + "Priority": "优先级", + "Privacy Policy": "隐私政策", + "Product": "产品", + "Production Key": "生产密钥", + "Provider": "提供商", + "Provider Limits": "提供商限制", + "Provider not found": "未找到提供商", + "Provider:": "提供商:", + "Providers": "提供商", + "Proxy settings applied": "已应用代理设置", + "Proxy URL": "代理 URL", + "Purpose:": "用途:", + "Qwen": "Qwen", + "Reading from AWS SSO cache": "从 AWS SSO 缓存中读取", + "Reading from Cursor IDE database": "从 Cursor IDE 数据库读取", + "Reasoning": "推理", + "Reasoning:": "推理:", + "Recent Requests": "最近的请求", + "Recommended for most users. Free AWS account required.": "推荐给大多数用户。需要免费 AWS 帐户。", + "records, batches every": "记录,每批", + "Refresh": "刷新", + "Refresh All": "全部刷新", + "Refresh quota": "刷新配额", + "Refresh Token": "刷新令牌", + "Reload VS Code after applying for changes to take effect.": "应用更改后请重新加载 VS Code 以使其生效。", + "Remove": "移除", + "Remove custom model": "删除自定义模型", + "Remove model": "删除模型", + "Request Details": "请求详情", + "Request Logs": "请求日志", + "Requests": "请求", + "Requests without a valid key will be rejected": "没有有效密钥的请求将被拒绝", + "requests, max": "请求数,最大", + "Require API key": "需要 API 密钥", + "Require login": "需要登录", + "Required for SSL certificate and DNS configuration": "SSL 证书和 DNS 配置所需", + "Required for SSL certificate and server startup": "SSL 证书和服务器启动所需", + "Required to modify /etc/hosts and flush DNS cache": "需要修改 /etc/hosts 并刷新 DNS 缓存", + "Requires outbound port 7844 (TCP/UDP). Connection may take 10-30s.": "需要出站端口 7844 (TCP/UDP)。连接可能需要 10-30 秒。", + "Reset": "重置", + "Reset to default": "重置为默认值", + "Reset to Defaults": "重置为默认值", + "Resources": "资源", + "Responses API": "响应API", + "Retry": "重试", + "Round Robin": "轮询", + "Routing Strategy": "路由策略", + "Rows:": "行:", + "Run this command in your terminal, then click": "在终端中运行此命令,然后单击", + "Running": "运行中", + "Running on your machine": "在你的机器上运行", + "s)": ")", + "Save Mappings": "保存映射", + "Save this key now!": "立即保存此密钥!", + "Search model id": "搜索模型 ID", + "Security": "安全", + "Select": "选择", + "Select a provider": "选择提供商", + "Select all": "选择全部", + "Select Model": "选择模型", + "Select Model for Codex": "选择 Codex 模型", + "Select Model for Factory Droid": "选择 Factory Droid 模型", + "Select Model for GitHub Copilot": "选择 GitHub Copilot 模型", + "Select Model for Open Claw": "选择 Open Claw 模型", + "Select Model for OpenCode": "选择 OpenCode 模型", + "Selected only": "仅选定", + "Selected provider": "选定的提供商", + "Send to Provider": "发送给提供商", + "Sent to provider as:": "发送给提供商:", + "Server": "服务器", + "Server off": "服务器关闭", + "Setting up": "设置", + "Share Endpoint": "共享端点", + "Share URL with team members": "与团队成员共享 URL", + "Show only selected models": "仅显示选中的模型", + "Showing": "显示中", + "Special reasoning/thinking tokens (fallback to output rate)": "特殊推理/思考 Token(回退至输出费率)", + "Standard prompt tokens": "标准提示 Token", + "Start Date": "开始日期", + "Start DNS": "启动 DNS", + "Start MITM": "启动中间人", + "Start Server": "启动服务器", + "Start Tunnel": "开始隧道", + "Status": "状态", + "Status:": "状态:", + "Step 1: Open this URL in your browser": "第 1 步:在浏览器中打开此 URL", + "Step 2: Paste the callback URL here": "第 2 步:将回调 URL 粘贴到此处", + "Sticky Limit": "粘性限制", + "Stop DNS": "停止 DNS", + "Stop MITM": "停止中间人", + "Stop Server": "停止服务器", + "Stopped": "已停止", + "Sudo Password Required": "需要 sudo 密码", + "Terms of Service": "服务条款", + "Test": "测试", + "Test all API Key connections": "测试所有 API 密钥连接", + "Test all Compatible connections": "测试所有兼容连接", + "Test all Free connections": "测试所有免费连接", + "Test all Free provider connections": "测试所有免费提供商连接", + "Test all OAuth connections": "测试所有 OAuth 连接", + "Test model": "测试模型", + "Test proxy URL": "测试代理 URL", + "Test Results": "测试结果", + "The tunnel will be disconnected. Remote access will stop working.": "隧道将被断开。远程访问将停止工作。", + "The unified interface for modern AI infrastructure. Secure, observable, and scalable.": "现代人工智能基础设施的统一接口。安全、可观察且可扩展。", + "Thinking Process": "思考过程", + "This is the only time you will see this key. Store it securely.": "这是您唯一一次看到此密钥的机会。请妥善保管。", + "Timestamp": "时间戳", + "Timestamp:": "时间戳:", + "To get a fresh API key, paste your browser cookie from": "要获取新的 API 密钥,请粘贴您的浏览器 cookie", + "to verify.": "来验证。", + "Toggle DNS to redirect": "切换 DNS 重定向", + "Token auto-detected from Kiro IDE successfully!": "已成功从 Kiro IDE 自动检测到令牌!", + "Token Types:": "Token 类型:", + "Token will be auto-filled...": "令牌将自动填充...", + "Tokens": "Token", + "Tokens auto-detected from Cursor IDE successfully!": "已成功从 Cursor IDE 自动检测到令牌!", + "Tokens used to create cache entries (fallback to input rate)": "用于创建缓存条目的 Token(回退至输入费率)", + "Total Input Tokens": "输入 Token 总计", + "Total Models": "模型总数", + "Total Requests": "请求总数", + "Total:": "总计:", + "traffic through 9Router via MITM.": "通过 MITM 通过 9Router 的流量。", + "Translator Debug": "翻译器调试", + "Try Again": "再试一次", + "Tunnel connected!": "隧道连通!", + "Tunnel disabled": "隧道已禁用", + "Turn request detail recording on/off globally": "全局打开/关闭请求详细信息记录", + "Twitter": "Twitter", + "Unavailable": "不可用", + "Unknown": "未知", + "Unselect all": "取消选择全部", + "Update": "更新", + "Usage by Account": "按账号统计", + "Usage by API Key": "按 API 密钥统计", + "Usage by Endpoint": "按端点统计", + "Usage by Model": "按模型统计", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "使用 Antigravity IDE 和 GitHub Copilot → 与 9Router 的任何提供商/模型", + "Use in Cursor/Cline": "在Cursor/Cline中使用", + "Use the buttons above to add OpenAI or Anthropic compatible endpoints": "使用上面的按钮添加 OpenAI 或 Anthropic 兼容端点", + "Use your API from any network": "从任何网络使用您的 API", + "Verification URL": "验证 URL", + "View Full Details": "查看完整详情", + "Visit the URL below and enter the code:": "访问以下网址并输入代码:", + "Waiting for Authorization": "等待授权", + "Waiting for authorization...": "等待授权...", + "Warning": "警告", + "When": "时间", + "When ON, dashboard requires password. When OFF, access without login.": "当打开时,仪表板需要密码。当关闭时,无需登录即可访问。", + "Windows: Run 9Router terminal as Administrator": "Windows:以管理员身份运行 9Router 终端", + "Windows: Run terminal (9Router) as Administrator to enable MITM": "Windows:以管理员身份运行终端 (9Router) 以启用 MITM", + "Writes to": "写入到", + "You can override default pricing for specific models. Reset to defaults anytime to restore standard rates.": "您可以覆盖特定模型的默认定价。随时重置为默认值以恢复标准费率。", + "Your": "你的", + "Your Code": "你的代码", + "Your Kiro account via": "您的 Kiro 帐户通过", + "Your organization's AWS IAM Identity Center URL": "您组织的 AWS IAM Identity Center URL", + "Quota Tracker": "配额跟踪器", + "CLI Tools": "命令行工具", + "Console Log": "控制台日志", + "System": "系统", + "Debug": "调试", + "Settings": "设置", + "Usage": "使用情况", + "Shutdown": "关闭", + "Close Proxy": "关闭代理", + "Are you sure you want to close the proxy server?": "您确定要关闭代理服务器吗?", + "Server Disconnected": "服务器已断开", + "The proxy server has been stopped.": "代理服务器已停止。", + "Reload Page": "重新加载页面", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "服务正在终端中运行。您可以关闭此网页。关闭将停止服务。", + + "One Endpoint for": "统一端点,接入", + "All AI Providers": "所有 AI 提供商", + "Route AI requests through subscription, cheap, and free tiers with auto-fallback. One endpoint for Claude, GPT, Gemini, and more.": "通过订阅、低价和免费层级路由 AI 请求并自动回退。一个端点接入 Claude、GPT、Gemini 等。", + "Get Started": "开始使用", + "View on GitHub": "在 GitHub 上查看", + + "How 9Router Works": "9Router 工作原理", + "Data flows seamlessly through our intelligent routing system": "数据通过我们的智能路由系统无缝流转", + "1. CLI & SDKs": "1. CLI 和 SDK", + "Your requests start from your favorite tools — Cursor, Claude, Copilot, or any OpenAI-compatible SDK.": "请求从您常用的工具发起——Cursor、Claude、Copilot 或任何 OpenAI 兼容的 SDK。", + "2. 9Router Hub": "2. 9Router 枢纽", + "Our engine analyzes the prompt and routes through your subscription, cheap, and free provider tiers with automatic fallback.": "我们的引擎分析提示词并通过您的订阅、低价和免费提供商层级路由,自动回退。", + "3. AI Providers": "3. AI 提供商", + "The request is fulfilled by OpenAI, Anthropic, Gemini, or others instantly.": "请求由 OpenAI、Anthropic、Gemini 或其他提供商即时响应。", + + "Powerful Features": "强大功能", + "Everything you need to manage your AI infrastructure efficiently.": "高效管理 AI 基础设施所需的一切。", + "Unified Endpoint": "统一端点", + "Single API endpoint for all major AI providers. Simplify your integration.": "一个 API 端点接入所有主要 AI 提供商。简化集成。", + "Easy Setup": "简单设置", + "Get started in seconds. Just install, open, and route.": "几秒钟即可上手。安装、打开、路由。", + "Model Fallback": "模型回退", + "Automatically switch between providers when limits are hit.": "当达到限额时自动切换提供商。", + "Usage Tracking": "使用量跟踪", + "Track token usage, costs, and performance across all providers.": "跟踪所有提供商的 Token 使用量、成本和性能。", + "OAuth & API Keys": "OAuth 和 API 密钥", + "Connect via OAuth or API keys. Securely manage credentials.": "通过 OAuth 或 API 密钥连接。安全管理凭据。", + "Cloud Sync": "云端同步", + "Sync settings across devices with optional cloud storage.": "通过可选的云存储在设备间同步设置。", + "CLI Support": "CLI 支持", + "Native CLI tool support for Cursor, Claude, Copilot, and more.": "原生支持 Cursor、Claude、Copilot 等 CLI 工具。", + "Dashboard": "仪表盘", + "Beautiful web dashboard for managing providers and monitoring usage.": "精美的 Web 仪表盘,用于管理提供商和监控使用情况。", + + "Get Started in 30 Seconds": "30 秒快速上手", + "Install 9Router": "安装 9Router", + "Open Dashboard": "打开仪表盘", + "Route Requests": "路由请求", + "npm install -g 9router": "npm install -g 9router", + "open http://localhost:9099": "open http://localhost:9099", + "Ready! Requests route automatically through your configured providers.": "就绪!请求将自动通过您配置的提供商路由。", + + "How it Works": "工作原理", + "Docs": "文档", + "GitHub": "GitHub", + + "Legal": "法律", + + "Manage your AI provider connections": "管理您的 AI 提供商连接", + "Model combos with fallback": "模型组合及回退", + "Monitor your API usage, token consumption, and request logs": "监控您的 API 使用量、Token 消耗和请求日志", + "Track and manage your API quota limits": "跟踪和管理您的 API 配额限制", + "Intercept CLI tool traffic and route through 9Router": "拦截 CLI 工具流量并通过 9Router 路由", + "Configure CLI tools": "配置 CLI 工具", + "Manage your proxy pool configurations": "管理您的代理池配置", + "API endpoint configuration": "API 端点配置", + "Manage your preferences": "管理您的偏好设置", + "Live server console output": "服务器实时控制台输出", + "Usage & Analytics": "使用量和分析", + "MITM Proxy": "MITM 代理", + "Translator": "翻译器", + "Media Providers": "媒体提供商", + + "Theme": "主题", + "Remote": "远程", + "Logout": "退出登录", + "Change Log": "更新日志", + + "Proxy Pools": "代理池", + "MITM": "MITM", + + "Loading...": "加载中...", + "Enter your password to access the dashboard": "输入密码以访问仪表盘", + "Password": "密码", + "Enter password": "输入密码", + "Login": "登录", + "Default password is 123456": "默认密码为 123456", + "Invalid password": "密码错误", + "An error occurred. Please try again.": "发生错误,请重试。", + + "light": "浅色", + "dark": "深色", + "system": "跟随系统", + "Combo Round Robin": "组合轮询", + "Cycle through providers in combos instead of always starting with first": "在组合中循环使用提供商,而不是总是从第一个开始", + "Currently using accounts in priority order (Fill First).": "当前按优先级顺序使用账号(优先填满)。", + "Record request details for inspection in the logs view": "记录请求详情以在日志视图中查看", + "Update Password": "修改密码", + "Set Password": "设置密码", + + "Overview": "概览", + "Details": "详情", + "Search...": "搜索...", + + "Saving...": "保存中...", + "Save": "保存", + "Save Changes": "保存更改", + "Saving": "保存中", + "Importing...": "导入中...", + "Import": "导入", + "Deploying... (may take ~1 min)": "部署中...(可能需要约 1 分钟)", + "Deploy": "部署", + + "Enable": "启用", + "Disable": "禁用", + "Token Saver": "Token 节省器", + "Experimental": "实验性", + "Compress tool output to reduce token usage.": "压缩工具输出以减少 Token 使用量。", + "sk_9router (default)": "sk_9router(默认)", + + "Install Tailscale": "安装 Tailscale", + "Installing Tailscale...": "正在安装 Tailscale...", + "Tailscale installed": "Tailscale 已安装", + "Tailscale Funnel": "Tailscale Funnel", + "Allow dashboard access via tunnel": "允许通过隧道访问仪表盘", + + "Disconnected from server": "与服务器断开连接", + "Attempting to reconnect...": "正在尝试重新连接...", + "Click to retry": "点击重试", + + "Failed to load changelog:": "加载更新日志失败:", + "Copied!": "已复制!", + + "Manage reusable per-connection proxies and bind them to provider connections.": "管理可复用的连接代理并绑定到提供商连接。", + "Vercel Relay": "Vercel Relay", + "Batch Import": "批量导入", + "Add Proxy Pool": "添加代理池", + "No proxy pool entries yet": "暂无代理池条目", + "Create a proxy pool entry, then assign it to connections.": "创建代理池条目,然后分配到连接。", + "Batch Import Proxies": "批量导入代理", + "Paste Proxy List (One per line)": "粘贴代理列表(每行一个)", + "Supported formats: protocol://user:pass@host:port, host:port:user:pass": "支持的格式:protocol://user:pass@host:port, host:port:user:pass", + "Deploy Vercel Relay": "部署 Vercel Relay", + "What is Vercel Relay?": "什么是 Vercel Relay?", + "Deploys an edge relay function to Vercel that proxies requests through Vercel's network.": "将边缘中继函数部署到 Vercel,通过 Vercel 的网络代理请求。", + "Vercel API Token": "Vercel API Token", + "Project Name": "项目名称", + "Edit Proxy Pool": "编辑代理池", + "Strict Proxy": "严格代理", + "Fail request if proxy is unreachable instead of falling back to direct.": "当代理不可达时直接失败,而不是回退到直连。", + "Inactive pools are ignored by runtime resolution.": "未激活的代理池将被运行时解析忽略。", + "active": "活跃", + "inactive": "未激活", + "unknown": "未知", + "bound": "已绑定", + "Last tested:": "上次测试:", + "No proxy:": "无代理:", + "Proxy pool updated": "代理池已更新", + "Proxy pool created": "代理池已创建", + "Proxy pool deleted": "代理池已删除", + "Proxy test passed": "代理测试通过", + "Proxy test failed": "代理测试失败", + + "Replay request flow — matches log files": "重放请求流程——匹配日志文件", + "Client Request": "客户端请求", + "Source Body": "源请求体", + "OpenAI Intermediate": "OpenAI 中间格式", + "Target Request": "目标请求", + "Provider Response": "提供商响应", + "OpenAI Response": "OpenAI 响应", + "Client Response": "客户端响应", + "Format": "格式化", + "Send": "发送", + "→ OpenAI": "→ OpenAI", + "→ Target": "→ 目标", + + "Terminal": "终端", + "Full shell access": "完整 Shell 访问", + "Desktop": "桌面", + "Screen sharing": "屏幕共享", + "Files": "文件", + "Browse & edit files": "浏览和编辑文件", + "Scan QR to connect instantly": "扫描二维码即刻连接", + "No port forwarding needed": "无需端口转发", + "Works on any device": "适用于任何设备", + "Access your terminal, desktop & files from anywhere": "从任何地方访问您的终端、桌面和文件", + "Get 9Remote": "获取 9Remote", + + "Manual configuration is still available if 9router is deployed on a remote server.": "如果 9router 部署在远程服务器上,仍可使用手动配置。", + "How to Install": "如何安装", + "Hide": "隐藏", + "Filter naming": "过滤命名", + "Filter naming requests": "过滤命名请求", + "Intercepts Claude Code's topic-naming requests and returns a fake response locally, saving API tokens.": "拦截 Claude Code 的主题命名请求并在本地返回伪响应,节省 API Token。", + "Settings applied successfully!": "设置已成功应用!", + "Failed to apply settings": "应用设置失败", + "Settings reset successfully!": "设置已成功重置!", + "Failed to reset settings": "重置设置失败", + "No API keys - Create one in Keys page": "暂无 API 密钥 - 请在密钥页面创建", + "Subagent Model": "子代理模型", + "Select Subagent Model for Codex": "选择 Codex 子代理模型", + "Select Subagent Model for OpenCode": "选择 OpenCode 子代理模型", + "No models selected": "未选择模型", + "Click a model to set/clear active": "点击模型以设置/取消活跃状态", + "Select models to add": "选择要添加的模型", + "Add Model for OpenCode": "为 OpenCode 添加模型", + "Default Model": "默认模型", + "9Router Base URL": "9Router 基础 URL", + "Trust Cert": "信任证书", + "Trusted": "已信任", + "not detected locally": "未在本地检测到", + + "Select to pre-fill, then edit model ID in the input": "选择以预填充,然后在输入框中编辑模型 ID", + + "Free & Free Tier Providers": "免费及免费额度提供商", + "Testing...": "测试中...", + "Test All": "全部测试", + "Ready": "就绪", + "Valid": "有效", + "Invalid": "无效", + "Checking...": "检查中...", + "Check": "检查", + "Creating...": "创建中...", + "Network error": "网络错误", + "Provider test failed": "提供商测试失败", + "Enable provider": "启用提供商", + "Disable provider": "禁用提供商", + "Chat": "对话", + "Responses": "响应", + "passed": "通过", + "failed": "失败", + "tested": "已测试", + "Required. A friendly label for this node.": "必填。为此节点设置一个友好的显示名称。", + "Required. Used as the provider prefix for model IDs.": "必填。用作模型 ID 的提供商前缀。", + "Model ID (optional)": "模型 ID(可选)", + "If provider lacks /models endpoint, enter a model ID to validate via chat/completions instead.": "如果提供商不支持 /models 端点,请输入模型 ID 通过 chat/completions 进行验证。", + "(via inference test)": "(通过推理测试)", + + "Delete this combo?": "删除此组合?", + "Name is required": "名称为必填项", + "Failed to create combo": "创建组合失败", + "Failed to update combo": "更新组合失败", + "Only letters, numbers, -, _ and . allowed": "仅允许使用字母、数字、-、_ 和 .", + + "Input Cost": "输入成本", + "Output Cost": "输出成本", + "Total Cost": "总成本", + "Total Tokens": "总 Token", + "Never": "从未", + "Just now": "刚刚", + "m ago": "分钟前", + "h ago": "小时前", + + "None": "无", + "disabled": "已禁用", + "OAuth Account": "OAuth 账号", + "no_proxy:": "无代理:", + "Pool:": "代理池:", + "Legacy:": "旧版:", + + "Error": "错误", + "more": "更多", + "Proxy": "代理", + + "No authentication required": "无需身份验证", + "This provider is ready to use.": "此提供商已准备就绪。", + "Available Models": "可用模型", + "Model not reachable": "模型不可达", + "Failed to set alias": "设置别名失败", + "Delete this connection?": "删除此连接?", + "Proxy Pool": "代理池", + "Proxy Action": "代理操作", + "Selecting None will unbind selected connections from proxy pool.": "选择「无」将解除所选连接与代理池的绑定。", + "Applying...": "应用中...", + "Select one or more connections, then click Proxy Action.": "选择一个或多个连接,然后点击代理操作。", + "All selected currently unbound": "所有选中项当前未绑定", + "Selected connections have mixed proxy bindings": "所选连接的代理绑定状态不一致", + "Anthropic Compatible Details": "Anthropic 兼容详情", + "OpenAI Compatible Details": "OpenAI 兼容详情", + "Messages API": "消息 API", + "Sticky:": "粘滞:", + "connection": "个连接", + "connections": "个连接", + "Suggested free models (≥200k context):": "推荐的免费模型(≥200k 上下文):", + "Get API Key →": "获取 API 密钥 →", + "OAuth": "OAuth" +} diff --git a/cli/app/public/i18n/literals/zh-TW.json b/cli/app/public/i18n/literals/zh-TW.json new file mode 100644 index 00000000000..0fb9c424e42 --- /dev/null +++ b/cli/app/public/i18n/literals/zh-TW.json @@ -0,0 +1,196 @@ +{ + "Cancel": "取消", + "Delete": "刪除", + "Edit": "編輯", + "Save": "保存", + "Close": "關閉", + "Add": "添加", + "Remove": "移除", + "Settings": "設置", + "Profile": "個人資料", + "Dashboard": "儀表板", + "Logout": "登出", + "Login": "登錄", + "Providers": "提供者", + "Usage": "使用情況", + "API Key": "API 金鑰", + "Connected": "已連接", + "Disconnected": "未連接", + "Active": "活躍", + "Inactive": "非活躍", + "Success": "成功", + "Failed": "失敗", + "Error": "錯誤", + "Warning": "警告", + "Info": "信息", + "Loading": "載入中", + "Search": "搜尋", + "Filter": "篩選", + "Sort": "排序", + "Export": "導出", + "Import": "導入", + "Refresh": "刷新", + "Back": "返回", + "Next": "下一個", + "Previous": "上一個", + "Submit": "提交", + "Confirm": "確認", + "Yes": "是", + "No": "否", + "OK": "確定", + "Apply": "應用", + "Reset": "重置", + "Clear": "清除", + "Select": "選擇", + "Upload": "上傳", + "Download": "下載", + "Copy": "複製", + "Paste": "粘貼", + "Cut": "剪切", + "Undo": "撤銷", + "Redo": "重做", + "Name": "名稱", + "Description": "描述", + "Status": "狀態", + "Type": "類型", + "Date": "日期", + "Time": "時間", + "Created": "已建立", + "Updated": "已更新", + "Actions": "操作", + "Details": "詳細信息", + "View": "查看", + "New": "新建", + "Total": "總計", + "Count": "計數", + "Price": "價格", + "Cost": "成本", + "Free": "免費", + "Paid": "付費", + "Enable": "啟用", + "Disable": "禁用", + "Enabled": "已啟用", + "Disabled": "已禁用", + "Online": "在線", + "Offline": "離線", + "Available": "可用", + "Unavailable": "不可用", + "Required": "必需", + "Optional": "可選", + "Default": "默認", + "Custom": "自定義", + "Advanced": "進階", + "Basic": "基本", + "Help": "幫助", + "Support": "支持", + "Documentation": "文檔", + "Version": "版本", + "Language": "語言", + "Theme": "主題", + "Light": "淺色", + "Dark": "深色", + "Auto": "自動", + "Endpoint": "端點", + "Providers": "提供者", + "Combos": "組合", + "Usage": "統計", + "Quota Tracker": "配額跟蹤", + "MITM": "MITM", + "CLI Tools": "CLI 工具", + "Console Log": "控制台日誌", + "System": "系統", + "Debug": "調試", + "Shutdown": "關機", + "Close Proxy": "關閉代理", + "Are you sure you want to close the proxy server?": "您確定要關閉代理服務器嗎?", + "Server Disconnected": "服務器已斷開連接", + "The proxy server has been stopped.": "代理服務器已停止。", + "Reload Page": "重新加載頁面", + "Service is running in terminal. You can close this web page. Shutdown will stop the service.": "服務在終端中運行。您可以關閉此網頁。關機將停止服務。", + "Manage your AI provider connections": "管理您的 AI 提供者連接", + "Model combos with fallback": "具有備用的模型組合", + "Monitor your API usage, token consumption, and request logs": "監控您的 API 使用、令牌消耗和請求日誌", + "Intercept CLI tool traffic and route through 9Router": "攔截 CLI 工具流量並通過 9Router 路由", + "Configure CLI tools": "配置 CLI 工具", + "API endpoint configuration": "API 端點配置", + "Manage your preferences": "管理您的首選項", + "Debug translation flow between formats": "調試格式之間的轉換流", + "Live server console output": "實時服務器控制台輸出", + "Create model combos with fallback support": "創建具有備用支持的模型組合", + "Local Mode": "本地模式", + "Running on your machine": "在您的機器上運行", + "Database Location": "數據庫位置", + "Download Backup": "下載備份", + "Import Backup": "導入備份", + "Database backup downloaded": "已下載數據庫備份", + "Database imported successfully": "已成功導入數據庫", + "Security": "安全性", + "Require login": "需要登錄", + "When ON, dashboard requires password. When OFF, access without login.": "打開時,儀表板需要密碼。關閉時,無需登錄即可訪問。", + "Current Password": "當前密碼", + "Enter current password": "輸入當前密碼", + "New Password": "新密碼", + "Enter new password": "輸入新密碼", + "Confirm New Password": "確認新密碼", + "Confirm new password": "確認新密碼", + "Update Password": "更新密碼", + "Set Password": "設置密碼", + "Password updated successfully": "已成功更新密碼", + "Passwords do not match": "密碼不匹配", + "Routing Strategy": "路由策略", + "Round Robin": "輪詢", + "Cycle through accounts to distribute load": "循環循環帳戶以分配負載", + "Sticky Limit": "粘性限制", + "Calls per account before switching": "切換前每個帳戶的調用次數", + "Network": "網絡", + "Outbound Proxy": "出站代理", + "Enable proxy for OAuth + provider outbound requests.": "為 OAuth + 提供者出站請求啟用代理。", + "Proxy URL": "代理 URL", + "Leave empty to inherit existing env proxy (if any).": "留空以繼承現有的環境代理(如果有)。", + "No Proxy": "無代理", + "Comma-separated hostnames/domains to bypass the proxy.": "逗號分隔的主機名/域以繞過代理。", + "Test proxy URL": "測試代理 URL", + "Apply": "應用", + "Proxy settings applied": "已應用代理設置", + "Proxy enabled": "已啟用代理", + "Proxy disabled": "已禁用代理", + "Proxy test OK": "代理測試成功", + "Proxy test failed": "代理測試失敗", + "Please enter a Proxy URL to test": "請輸入要測試的代理 URL", + "Observability": "可觀測性", + "Enable Observability": "啟用可觀測性", + "Turn request detail recording on/off globally": "全局打開/關閉請求詳細記錄", + "Max Records": "最大記錄數", + "Maximum request detail records to keep (older records are auto-deleted)": "要保留的最大請求詳細記錄數(舊記錄自動刪除)", + "Batch Size": "批量大小", + "Number of items to accumulate before writing to database (higher = better performance)": "寫入數據庫前要積累的項目數(更高 = 更好的性能)", + "Flush Interval (ms)": "刷新間隔 (ms)", + "Maximum time to wait before flushing buffer (prevents data loss during low traffic)": "刷新緩衝區之前的最大等待時間(防止低流量期間的數據丟失)", + "Max JSON Size (KB)": "最大 JSON 大小 (KB)", + "Maximum size for each JSON field (request/response) before truncation": "截斷前每個 JSON 字段(請求/響應)的最大大小", + "All data stored on your machine": "所有數據存儲在您的機器上", + "MITM Server": "MITM 服務器", + "Running": "運行中", + "Stopped": "已停止", + "Cert": "證書", + "Server": "服務器", + "Purpose:": "目的:", + "Use Antigravity IDE & GitHub Copilot → with ANY provider/model from 9Router": "使用 Antigravity IDE 和 GitHub Copilot → 與 9Router 中的任何提供者/模型一起", + "How it works:": "工作原理:", + "Antigravity/Copilot IDE request → DNS redirect to localhost:443 → MITM proxy intercepts → 9Router → response to Antigravity/Copilot": "Antigravity/Copilot IDE 請求 → DNS 重定向到 localhost:443 → MITM 代理攔截 → 9Router → 响應到 Antigravity/Copilot", + "API Key": "API 金鑰", + "No API keys — create one in Keys page": "沒有 API 金鑰 — 在金鑰頁面中創建一個", + "sk_9router (default)": "sk_9router(默認)", + "Server started": "服務器已啟動", + "Failed to start server": "啟動服務器失敗", + "Server stopped — all DNS cleared": "服務器已停止 — 已清除所有 DNS", + "Failed to stop server": "停止服務器失敗", + "Sudo password is required": "需要 Sudo 密碼", + "Stop Server": "停止服務器", + "Start Server": "啟動服務器", + "Enable DNS per tool below to activate interception": "為下面的每個工具啟用 DNS 以激活攔截", + "Sudo Password Required": "需要 Sudo 密碼", + "Enter your sudo password to start/stop MITM server": "輸入您的 Sudo 密碼以啟動/停止 MITM 服務器", + "Sudo Password": "Sudo 密碼", + "Confirm": "確認" +} diff --git a/cli/app/public/icons/icon-192.svg b/cli/app/public/icons/icon-192.svg new file mode 100644 index 00000000000..e7978910907 --- /dev/null +++ b/cli/app/public/icons/icon-192.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="192" height="192" viewBox="0 0 192 192"> + <rect width="192" height="192" rx="24" fill="#0a0a0a"/> + <text x="96" y="120" font-family="Arial, sans-serif" font-size="80" font-weight="bold" fill="#ffffff" text-anchor="middle">9R</text> +</svg> diff --git a/cli/app/public/icons/icon-512.svg b/cli/app/public/icons/icon-512.svg new file mode 100644 index 00000000000..6fef45af493 --- /dev/null +++ b/cli/app/public/icons/icon-512.svg @@ -0,0 +1,4 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="512" height="512" viewBox="0 0 512 512"> + <rect width="512" height="512" rx="64" fill="#0a0a0a"/> + <text x="256" y="320" font-family="Arial, sans-serif" font-size="200" font-weight="bold" fill="#ffffff" text-anchor="middle">9R</text> +</svg> diff --git a/cli/app/public/next.svg b/cli/app/public/next.svg new file mode 100644 index 00000000000..5174b28c565 --- /dev/null +++ b/cli/app/public/next.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" fill="none" viewBox="0 0 394 80"><path fill="#000" d="M262 0h68.5v12.7h-27.2v66.6h-13.6V12.7H262V0ZM149 0v12.7H94v20.4h44.3v12.6H94v21h55v12.6H80.5V0h68.7zm34.3 0h-17.8l63.8 79.4h17.9l-32-39.7 32-39.6h-17.9l-23 28.6-23-28.6zm18.3 56.7-9-11-27.1 33.7h17.8l18.3-22.7z"/><path fill="#000" d="M81 79.3 17 0H0v79.3h13.6V17l50.2 62.3H81Zm252.6-.4c-1 0-1.8-.4-2.5-1s-1.1-1.6-1.1-2.6.3-1.8 1-2.5 1.6-1 2.6-1 1.8.3 2.5 1a3.4 3.4 0 0 1 .6 4.3 3.7 3.7 0 0 1-3 1.8zm23.2-33.5h6v23.3c0 2.1-.4 4-1.3 5.5a9.1 9.1 0 0 1-3.8 3.5c-1.6.8-3.5 1.3-5.7 1.3-2 0-3.7-.4-5.3-1s-2.8-1.8-3.7-3.2c-.9-1.3-1.4-3-1.4-5h6c.1.8.3 1.6.7 2.2s1 1.2 1.6 1.5c.7.4 1.5.5 2.4.5 1 0 1.8-.2 2.4-.6a4 4 0 0 0 1.6-1.8c.3-.8.5-1.8.5-3V45.5zm30.9 9.1a4.4 4.4 0 0 0-2-3.3 7.5 7.5 0 0 0-4.3-1.1c-1.3 0-2.4.2-3.3.5-.9.4-1.6 1-2 1.6a3.5 3.5 0 0 0-.3 4c.3.5.7.9 1.3 1.2l1.8 1 2 .5 3.2.8c1.3.3 2.5.7 3.7 1.2a13 13 0 0 1 3.2 1.8 8.1 8.1 0 0 1 3 6.5c0 2-.5 3.7-1.5 5.1a10 10 0 0 1-4.4 3.5c-1.8.8-4.1 1.2-6.8 1.2-2.6 0-4.9-.4-6.8-1.2-2-.8-3.4-2-4.5-3.5a10 10 0 0 1-1.7-5.6h6a5 5 0 0 0 3.5 4.6c1 .4 2.2.6 3.4.6 1.3 0 2.5-.2 3.5-.6 1-.4 1.8-1 2.4-1.7a4 4 0 0 0 .8-2.4c0-.9-.2-1.6-.7-2.2a11 11 0 0 0-2.1-1.4l-3.2-1-3.8-1c-2.8-.7-5-1.7-6.6-3.2a7.2 7.2 0 0 1-2.4-5.7 8 8 0 0 1 1.7-5 10 10 0 0 1 4.3-3.5c2-.8 4-1.2 6.4-1.2 2.3 0 4.4.4 6.2 1.2 1.8.8 3.2 2 4.3 3.4 1 1.4 1.5 3 1.5 5h-5.8z"/></svg> \ No newline at end of file diff --git a/cli/app/public/providers/alicode-intl.png b/cli/app/public/providers/alicode-intl.png new file mode 100644 index 00000000000..9bee7d5b4d4 Binary files /dev/null and b/cli/app/public/providers/alicode-intl.png differ diff --git a/cli/app/public/providers/alicode.png b/cli/app/public/providers/alicode.png new file mode 100644 index 00000000000..9bee7d5b4d4 Binary files /dev/null and b/cli/app/public/providers/alicode.png differ diff --git a/cli/app/public/providers/anthropic-m.png b/cli/app/public/providers/anthropic-m.png new file mode 100644 index 00000000000..feea1edd1af Binary files /dev/null and b/cli/app/public/providers/anthropic-m.png differ diff --git a/cli/app/public/providers/anthropic.png b/cli/app/public/providers/anthropic.png new file mode 100644 index 00000000000..dc58142bd80 Binary files /dev/null and b/cli/app/public/providers/anthropic.png differ diff --git a/cli/app/public/providers/antigravity.png b/cli/app/public/providers/antigravity.png new file mode 100644 index 00000000000..6fe0feaee7a Binary files /dev/null and b/cli/app/public/providers/antigravity.png differ diff --git a/cli/app/public/providers/assemblyai.png b/cli/app/public/providers/assemblyai.png new file mode 100644 index 00000000000..d4367af077d Binary files /dev/null and b/cli/app/public/providers/assemblyai.png differ diff --git a/cli/app/public/providers/aws-polly.png b/cli/app/public/providers/aws-polly.png new file mode 100644 index 00000000000..eef2d60102d Binary files /dev/null and b/cli/app/public/providers/aws-polly.png differ diff --git a/cli/app/public/providers/azure.png b/cli/app/public/providers/azure.png new file mode 100644 index 00000000000..9cbd38d0fc9 Binary files /dev/null and b/cli/app/public/providers/azure.png differ diff --git a/cli/app/public/providers/black-forest-labs.png b/cli/app/public/providers/black-forest-labs.png new file mode 100644 index 00000000000..c42a3134e64 Binary files /dev/null and b/cli/app/public/providers/black-forest-labs.png differ diff --git a/cli/app/public/providers/blackbox.png b/cli/app/public/providers/blackbox.png new file mode 100644 index 00000000000..3dc5d903ac8 Binary files /dev/null and b/cli/app/public/providers/blackbox.png differ diff --git a/cli/app/public/providers/brave-search.png b/cli/app/public/providers/brave-search.png new file mode 100644 index 00000000000..a70acda1c87 Binary files /dev/null and b/cli/app/public/providers/brave-search.png differ diff --git a/cli/app/public/providers/byteplus.png b/cli/app/public/providers/byteplus.png new file mode 100644 index 00000000000..cafbf6cd83a Binary files /dev/null and b/cli/app/public/providers/byteplus.png differ diff --git a/cli/app/public/providers/cartesia.png b/cli/app/public/providers/cartesia.png new file mode 100644 index 00000000000..45177c0902c Binary files /dev/null and b/cli/app/public/providers/cartesia.png differ diff --git a/cli/app/public/providers/cerebras.png b/cli/app/public/providers/cerebras.png new file mode 100644 index 00000000000..0fbe159302f Binary files /dev/null and b/cli/app/public/providers/cerebras.png differ diff --git a/cli/app/public/providers/chutes.png b/cli/app/public/providers/chutes.png new file mode 100644 index 00000000000..f39a6c21c21 Binary files /dev/null and b/cli/app/public/providers/chutes.png differ diff --git a/cli/app/public/providers/claude.png b/cli/app/public/providers/claude.png new file mode 100644 index 00000000000..c223ad464bd Binary files /dev/null and b/cli/app/public/providers/claude.png differ diff --git a/cli/app/public/providers/cline.png b/cli/app/public/providers/cline.png new file mode 100644 index 00000000000..be2418999f3 Binary files /dev/null and b/cli/app/public/providers/cline.png differ diff --git a/cli/app/public/providers/cloudflare-ai.png b/cli/app/public/providers/cloudflare-ai.png new file mode 100644 index 00000000000..26cda8cb822 Binary files /dev/null and b/cli/app/public/providers/cloudflare-ai.png differ diff --git a/cli/app/public/providers/codex.png b/cli/app/public/providers/codex.png new file mode 100644 index 00000000000..41a9dd775e7 Binary files /dev/null and b/cli/app/public/providers/codex.png differ diff --git a/cli/app/public/providers/cohere.png b/cli/app/public/providers/cohere.png new file mode 100644 index 00000000000..47e7ab49ac5 Binary files /dev/null and b/cli/app/public/providers/cohere.png differ diff --git a/cli/app/public/providers/comfyui.png b/cli/app/public/providers/comfyui.png new file mode 100644 index 00000000000..df8116bca48 Binary files /dev/null and b/cli/app/public/providers/comfyui.png differ diff --git a/cli/app/public/providers/commandcode.png b/cli/app/public/providers/commandcode.png new file mode 100644 index 00000000000..ed7c8c99b9b Binary files /dev/null and b/cli/app/public/providers/commandcode.png differ diff --git a/cli/app/public/providers/continue.png b/cli/app/public/providers/continue.png new file mode 100644 index 00000000000..f54685be8de Binary files /dev/null and b/cli/app/public/providers/continue.png differ diff --git a/cli/app/public/providers/copilot.png b/cli/app/public/providers/copilot.png new file mode 100644 index 00000000000..9907963e408 Binary files /dev/null and b/cli/app/public/providers/copilot.png differ diff --git a/cli/app/public/providers/coqui.png b/cli/app/public/providers/coqui.png new file mode 100644 index 00000000000..6e2471ec453 Binary files /dev/null and b/cli/app/public/providers/coqui.png differ diff --git a/cli/app/public/providers/cursor.png b/cli/app/public/providers/cursor.png new file mode 100644 index 00000000000..ec02b070bad Binary files /dev/null and b/cli/app/public/providers/cursor.png differ diff --git a/cli/app/public/providers/deepgram.png b/cli/app/public/providers/deepgram.png new file mode 100644 index 00000000000..dc58142bd80 Binary files /dev/null and b/cli/app/public/providers/deepgram.png differ diff --git a/cli/app/public/providers/deepseek.png b/cli/app/public/providers/deepseek.png new file mode 100644 index 00000000000..06036213eb2 Binary files /dev/null and b/cli/app/public/providers/deepseek.png differ diff --git a/cli/app/public/providers/droid.png b/cli/app/public/providers/droid.png new file mode 100644 index 00000000000..28b8350a78a Binary files /dev/null and b/cli/app/public/providers/droid.png differ diff --git a/cli/app/public/providers/edge-tts.png b/cli/app/public/providers/edge-tts.png new file mode 100644 index 00000000000..8b1b333f4d0 Binary files /dev/null and b/cli/app/public/providers/edge-tts.png differ diff --git a/cli/app/public/providers/elevenlabs.png b/cli/app/public/providers/elevenlabs.png new file mode 100644 index 00000000000..c36dcfa193d Binary files /dev/null and b/cli/app/public/providers/elevenlabs.png differ diff --git a/cli/app/public/providers/exa.png b/cli/app/public/providers/exa.png new file mode 100644 index 00000000000..03eff2af67f Binary files /dev/null and b/cli/app/public/providers/exa.png differ diff --git a/cli/app/public/providers/fal-ai.png b/cli/app/public/providers/fal-ai.png new file mode 100644 index 00000000000..871855e344c Binary files /dev/null and b/cli/app/public/providers/fal-ai.png differ diff --git a/cli/app/public/providers/firecrawl.png b/cli/app/public/providers/firecrawl.png new file mode 100644 index 00000000000..623235e9e4d Binary files /dev/null and b/cli/app/public/providers/firecrawl.png differ diff --git a/cli/app/public/providers/fireworks.png b/cli/app/public/providers/fireworks.png new file mode 100644 index 00000000000..2295c0c7d35 Binary files /dev/null and b/cli/app/public/providers/fireworks.png differ diff --git a/cli/app/public/providers/gemini-cli.png b/cli/app/public/providers/gemini-cli.png new file mode 100644 index 00000000000..5b72946d3a8 Binary files /dev/null and b/cli/app/public/providers/gemini-cli.png differ diff --git a/cli/app/public/providers/gemini.png b/cli/app/public/providers/gemini.png new file mode 100644 index 00000000000..9df2d30179b Binary files /dev/null and b/cli/app/public/providers/gemini.png differ diff --git a/cli/app/public/providers/github.png b/cli/app/public/providers/github.png new file mode 100644 index 00000000000..9907963e408 Binary files /dev/null and b/cli/app/public/providers/github.png differ diff --git a/cli/app/public/providers/glm-cn.png b/cli/app/public/providers/glm-cn.png new file mode 100644 index 00000000000..cee2b24be2c Binary files /dev/null and b/cli/app/public/providers/glm-cn.png differ diff --git a/cli/app/public/providers/glm.png b/cli/app/public/providers/glm.png new file mode 100644 index 00000000000..cee2b24be2c Binary files /dev/null and b/cli/app/public/providers/glm.png differ diff --git a/cli/app/public/providers/google-pse.png b/cli/app/public/providers/google-pse.png new file mode 100644 index 00000000000..465357f2340 Binary files /dev/null and b/cli/app/public/providers/google-pse.png differ diff --git a/cli/app/public/providers/google-tts.png b/cli/app/public/providers/google-tts.png new file mode 100644 index 00000000000..68b77439c19 Binary files /dev/null and b/cli/app/public/providers/google-tts.png differ diff --git a/cli/app/public/providers/grok-web.png b/cli/app/public/providers/grok-web.png new file mode 100644 index 00000000000..ef9d7abcffb Binary files /dev/null and b/cli/app/public/providers/grok-web.png differ diff --git a/cli/app/public/providers/groq.png b/cli/app/public/providers/groq.png new file mode 100644 index 00000000000..1773fb66066 Binary files /dev/null and b/cli/app/public/providers/groq.png differ diff --git a/cli/app/public/providers/hermes.png b/cli/app/public/providers/hermes.png new file mode 100644 index 00000000000..d108d0c38d5 Binary files /dev/null and b/cli/app/public/providers/hermes.png differ diff --git a/cli/app/public/providers/huggingface.png b/cli/app/public/providers/huggingface.png new file mode 100644 index 00000000000..9a36b8f6a34 Binary files /dev/null and b/cli/app/public/providers/huggingface.png differ diff --git a/cli/app/public/providers/hyperbolic.png b/cli/app/public/providers/hyperbolic.png new file mode 100644 index 00000000000..0b4802d1d47 Binary files /dev/null and b/cli/app/public/providers/hyperbolic.png differ diff --git a/cli/app/public/providers/iflow.png b/cli/app/public/providers/iflow.png new file mode 100644 index 00000000000..1bddeae625d Binary files /dev/null and b/cli/app/public/providers/iflow.png differ diff --git a/cli/app/public/providers/inworld.png b/cli/app/public/providers/inworld.png new file mode 100644 index 00000000000..579a6c244a9 Binary files /dev/null and b/cli/app/public/providers/inworld.png differ diff --git a/cli/app/public/providers/jina-ai.png b/cli/app/public/providers/jina-ai.png new file mode 100644 index 00000000000..bb8ee31a2f4 Binary files /dev/null and b/cli/app/public/providers/jina-ai.png differ diff --git a/cli/app/public/providers/jina-reader.png b/cli/app/public/providers/jina-reader.png new file mode 100644 index 00000000000..388d65deec8 Binary files /dev/null and b/cli/app/public/providers/jina-reader.png differ diff --git a/cli/app/public/providers/kilocode.png b/cli/app/public/providers/kilocode.png new file mode 100644 index 00000000000..b1272cfee4d Binary files /dev/null and b/cli/app/public/providers/kilocode.png differ diff --git a/cli/app/public/providers/kimi-coding.png b/cli/app/public/providers/kimi-coding.png new file mode 100644 index 00000000000..422b7f96289 Binary files /dev/null and b/cli/app/public/providers/kimi-coding.png differ diff --git a/cli/app/public/providers/kimi.png b/cli/app/public/providers/kimi.png new file mode 100644 index 00000000000..422b7f96289 Binary files /dev/null and b/cli/app/public/providers/kimi.png differ diff --git a/cli/app/public/providers/kiro.png b/cli/app/public/providers/kiro.png new file mode 100644 index 00000000000..166c7c72c9a Binary files /dev/null and b/cli/app/public/providers/kiro.png differ diff --git a/cli/app/public/providers/linkup.png b/cli/app/public/providers/linkup.png new file mode 100644 index 00000000000..166b1a5454b Binary files /dev/null and b/cli/app/public/providers/linkup.png differ diff --git a/cli/app/public/providers/local-device.png b/cli/app/public/providers/local-device.png new file mode 100644 index 00000000000..201cb10e16f Binary files /dev/null and b/cli/app/public/providers/local-device.png differ diff --git a/cli/app/public/providers/minimax-cn.png b/cli/app/public/providers/minimax-cn.png new file mode 100644 index 00000000000..a8b9bf7ea60 Binary files /dev/null and b/cli/app/public/providers/minimax-cn.png differ diff --git a/cli/app/public/providers/minimax.png b/cli/app/public/providers/minimax.png new file mode 100644 index 00000000000..a8b9bf7ea60 Binary files /dev/null and b/cli/app/public/providers/minimax.png differ diff --git a/cli/app/public/providers/mistral.png b/cli/app/public/providers/mistral.png new file mode 100644 index 00000000000..4fcbb0c52aa Binary files /dev/null and b/cli/app/public/providers/mistral.png differ diff --git a/cli/app/public/providers/nanobanana.png b/cli/app/public/providers/nanobanana.png new file mode 100644 index 00000000000..9df2d30179b Binary files /dev/null and b/cli/app/public/providers/nanobanana.png differ diff --git a/cli/app/public/providers/nebius.png b/cli/app/public/providers/nebius.png new file mode 100644 index 00000000000..c4ebd3cb327 Binary files /dev/null and b/cli/app/public/providers/nebius.png differ diff --git a/cli/app/public/providers/nvidia.png b/cli/app/public/providers/nvidia.png new file mode 100644 index 00000000000..d115e366634 Binary files /dev/null and b/cli/app/public/providers/nvidia.png differ diff --git a/cli/app/public/providers/oai-cc.png b/cli/app/public/providers/oai-cc.png new file mode 100644 index 00000000000..56a7a3e618c Binary files /dev/null and b/cli/app/public/providers/oai-cc.png differ diff --git a/cli/app/public/providers/oai-r.png b/cli/app/public/providers/oai-r.png new file mode 100644 index 00000000000..0dbd61c734a Binary files /dev/null and b/cli/app/public/providers/oai-r.png differ diff --git a/cli/app/public/providers/ollama-local.png b/cli/app/public/providers/ollama-local.png new file mode 100644 index 00000000000..302b1b182cd Binary files /dev/null and b/cli/app/public/providers/ollama-local.png differ diff --git a/cli/app/public/providers/ollama.png b/cli/app/public/providers/ollama.png new file mode 100644 index 00000000000..302b1b182cd Binary files /dev/null and b/cli/app/public/providers/ollama.png differ diff --git a/cli/app/public/providers/openai.png b/cli/app/public/providers/openai.png new file mode 100644 index 00000000000..d4367af077d Binary files /dev/null and b/cli/app/public/providers/openai.png differ diff --git a/cli/app/public/providers/openclaw.png b/cli/app/public/providers/openclaw.png new file mode 100644 index 00000000000..7ef77ac754a Binary files /dev/null and b/cli/app/public/providers/openclaw.png differ diff --git a/cli/app/public/providers/opencode-go.png b/cli/app/public/providers/opencode-go.png new file mode 100644 index 00000000000..2e709e1c49d Binary files /dev/null and b/cli/app/public/providers/opencode-go.png differ diff --git a/cli/app/public/providers/opencode.png b/cli/app/public/providers/opencode.png new file mode 100644 index 00000000000..2e709e1c49d Binary files /dev/null and b/cli/app/public/providers/opencode.png differ diff --git a/cli/app/public/providers/openrouter.png b/cli/app/public/providers/openrouter.png new file mode 100644 index 00000000000..0b4802d1d47 Binary files /dev/null and b/cli/app/public/providers/openrouter.png differ diff --git a/cli/app/public/providers/perplexity-web.png b/cli/app/public/providers/perplexity-web.png new file mode 100644 index 00000000000..0b5851e5f6d Binary files /dev/null and b/cli/app/public/providers/perplexity-web.png differ diff --git a/cli/app/public/providers/perplexity.png b/cli/app/public/providers/perplexity.png new file mode 100644 index 00000000000..0b5851e5f6d Binary files /dev/null and b/cli/app/public/providers/perplexity.png differ diff --git a/cli/app/public/providers/playht.png b/cli/app/public/providers/playht.png new file mode 100644 index 00000000000..1807e9a2b62 Binary files /dev/null and b/cli/app/public/providers/playht.png differ diff --git a/cli/app/public/providers/qwen.png b/cli/app/public/providers/qwen.png new file mode 100644 index 00000000000..0fc2d1b3084 Binary files /dev/null and b/cli/app/public/providers/qwen.png differ diff --git a/cli/app/public/providers/recraft.png b/cli/app/public/providers/recraft.png new file mode 100644 index 00000000000..3ed12856322 Binary files /dev/null and b/cli/app/public/providers/recraft.png differ diff --git a/cli/app/public/providers/roo.png b/cli/app/public/providers/roo.png new file mode 100644 index 00000000000..0503577502b Binary files /dev/null and b/cli/app/public/providers/roo.png differ diff --git a/cli/app/public/providers/runwayml.png b/cli/app/public/providers/runwayml.png new file mode 100644 index 00000000000..8f53a141075 Binary files /dev/null and b/cli/app/public/providers/runwayml.png differ diff --git a/cli/app/public/providers/sdwebui.png b/cli/app/public/providers/sdwebui.png new file mode 100644 index 00000000000..89e9ae2d51c Binary files /dev/null and b/cli/app/public/providers/sdwebui.png differ diff --git a/cli/app/public/providers/searchapi.png b/cli/app/public/providers/searchapi.png new file mode 100644 index 00000000000..23630ec3efb Binary files /dev/null and b/cli/app/public/providers/searchapi.png differ diff --git a/cli/app/public/providers/searxng.png b/cli/app/public/providers/searxng.png new file mode 100644 index 00000000000..3487f02317e Binary files /dev/null and b/cli/app/public/providers/searxng.png differ diff --git a/cli/app/public/providers/serper.png b/cli/app/public/providers/serper.png new file mode 100644 index 00000000000..6a8063c9393 Binary files /dev/null and b/cli/app/public/providers/serper.png differ diff --git a/cli/app/public/providers/siliconflow.png b/cli/app/public/providers/siliconflow.png new file mode 100644 index 00000000000..d599df2e7a4 Binary files /dev/null and b/cli/app/public/providers/siliconflow.png differ diff --git a/cli/app/public/providers/stability-ai.png b/cli/app/public/providers/stability-ai.png new file mode 100644 index 00000000000..31cf71c7724 Binary files /dev/null and b/cli/app/public/providers/stability-ai.png differ diff --git a/cli/app/public/providers/tavily.png b/cli/app/public/providers/tavily.png new file mode 100644 index 00000000000..b51f3c5faf6 Binary files /dev/null and b/cli/app/public/providers/tavily.png differ diff --git a/cli/app/public/providers/together.png b/cli/app/public/providers/together.png new file mode 100644 index 00000000000..9acc9017b13 Binary files /dev/null and b/cli/app/public/providers/together.png differ diff --git a/cli/app/public/providers/topaz.png b/cli/app/public/providers/topaz.png new file mode 100644 index 00000000000..3f86008e4d0 Binary files /dev/null and b/cli/app/public/providers/topaz.png differ diff --git a/cli/app/public/providers/tortoise.png b/cli/app/public/providers/tortoise.png new file mode 100644 index 00000000000..70e93fcc50a Binary files /dev/null and b/cli/app/public/providers/tortoise.png differ diff --git a/cli/app/public/providers/vertex-partner.png b/cli/app/public/providers/vertex-partner.png new file mode 100644 index 00000000000..892af458a9c Binary files /dev/null and b/cli/app/public/providers/vertex-partner.png differ diff --git a/cli/app/public/providers/vertex.png b/cli/app/public/providers/vertex.png new file mode 100644 index 00000000000..892af458a9c Binary files /dev/null and b/cli/app/public/providers/vertex.png differ diff --git a/cli/app/public/providers/volcengine-ark.png b/cli/app/public/providers/volcengine-ark.png new file mode 100644 index 00000000000..e452a09bfa6 Binary files /dev/null and b/cli/app/public/providers/volcengine-ark.png differ diff --git a/cli/app/public/providers/voyage-ai.png b/cli/app/public/providers/voyage-ai.png new file mode 100644 index 00000000000..72c41963e5e Binary files /dev/null and b/cli/app/public/providers/voyage-ai.png differ diff --git a/cli/app/public/providers/xai.png b/cli/app/public/providers/xai.png new file mode 100644 index 00000000000..ef9d7abcffb Binary files /dev/null and b/cli/app/public/providers/xai.png differ diff --git a/cli/app/public/providers/xiaomi-mimo.png b/cli/app/public/providers/xiaomi-mimo.png new file mode 100644 index 00000000000..1752aa9a199 Binary files /dev/null and b/cli/app/public/providers/xiaomi-mimo.png differ diff --git a/cli/app/public/providers/youcom.png b/cli/app/public/providers/youcom.png new file mode 100644 index 00000000000..4f7d4296a0f Binary files /dev/null and b/cli/app/public/providers/youcom.png differ diff --git a/cli/app/public/sw.js b/cli/app/public/sw.js new file mode 100644 index 00000000000..4c4de800af8 --- /dev/null +++ b/cli/app/public/sw.js @@ -0,0 +1,22 @@ +self.addEventListener('push', function (event) { + if (event.data) { + const data = event.data.json() + const options = { + body: data.body, + icon: data.icon || '/icons/icon-192.svg', + badge: '/icons/icon-192.svg', + vibrate: [100, 50, 100], + data: { + dateOfArrival: Date.now(), + primaryKey: '2', + }, + } + event.waitUntil(self.registration.showNotification(data.title, options)) + } +}) + +self.addEventListener('notificationclick', function (event) { + console.log('Notification click received.') + event.notification.close() + event.waitUntil(clients.openWindow('/')) +}) diff --git a/cli/app/public/vercel.svg b/cli/app/public/vercel.svg new file mode 100644 index 00000000000..77053960334 --- /dev/null +++ b/cli/app/public/vercel.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1155 1000"><path d="m577.3 0 577.4 1000H0z" fill="#fff"/></svg> \ No newline at end of file diff --git a/cli/app/public/window.svg b/cli/app/public/window.svg new file mode 100644 index 00000000000..b2b2a44f6eb --- /dev/null +++ b/cli/app/public/window.svg @@ -0,0 +1 @@ +<svg fill="none" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" clip-rule="evenodd" d="M1.5 2.5h13v10a1 1 0 0 1-1 1h-11a1 1 0 0 1-1-1zM0 1h16v11.5a2.5 2.5 0 0 1-2.5 2.5h-11A2.5 2.5 0 0 1 0 12.5zm3.75 4.5a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5M7 4.75a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0m1.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5" fill="#666"/></svg> \ No newline at end of file diff --git a/cli/app/server.js b/cli/app/server.js new file mode 100644 index 00000000000..b7c75b74b9e --- /dev/null +++ b/cli/app/server.js @@ -0,0 +1,38 @@ +const path = require('path') + +const dir = path.join(__dirname) + +process.env.NODE_ENV = 'production' +process.chdir(__dirname) + +const currentPort = parseInt(process.env.PORT, 10) || 3000 +const hostname = process.env.HOSTNAME || '0.0.0.0' + +let keepAliveTimeout = parseInt(process.env.KEEP_ALIVE_TIMEOUT, 10) +const nextConfig = {"env":{},"typescript":{"ignoreBuildErrors":false},"typedRoutes":false,"distDir":"./.next","cleanDistDir":true,"assetPrefix":"","cacheMaxMemorySize":52428800,"configOrigin":"next.config.mjs","useFileSystemPublicRoutes":true,"generateEtags":true,"pageExtensions":["tsx","ts","jsx","js"],"poweredByHeader":true,"compress":true,"images":{"deviceSizes":[640,750,828,1080,1200,1920,2048,3840],"imageSizes":[32,48,64,96,128,256,384],"path":"/_next/image","loader":"default","loaderFile":"","domains":[],"disableStaticImages":false,"minimumCacheTTL":14400,"formats":["image/webp"],"maximumRedirects":3,"maximumResponseBody":50000000,"dangerouslyAllowLocalIP":false,"dangerouslyAllowSVG":false,"contentSecurityPolicy":"script-src 'none'; frame-src 'none'; sandbox;","contentDispositionType":"attachment","localPatterns":[{"pathname":"**","search":""}],"remotePatterns":[],"qualities":[75],"unoptimized":true,"customCacheHandler":false},"devIndicators":{"position":"bottom-left"},"onDemandEntries":{"maxInactiveAge":60000,"pagesBufferLength":5},"basePath":"","sassOptions":{},"trailingSlash":false,"i18n":null,"productionBrowserSourceMaps":false,"excludeDefaultMomentLocales":true,"reactProductionProfiling":false,"reactStrictMode":null,"reactMaxHeadersLength":6000,"httpAgentOptions":{"keepAlive":true},"logging":{"serverFunctions":true,"browserToTerminal":"warn"},"compiler":{},"expireTime":31536000,"staticPageGenerationTimeout":60,"output":"standalone","modularizeImports":{"@mui/icons-material":{"transform":"@mui/icons-material/{{member}}"},"lodash":{"transform":"lodash/{{member}}"}},"outputFileTracingRoot":"/Users/Working/router4","cacheComponents":false,"cacheLife":{"default":{"stale":300,"revalidate":900,"expire":4294967294},"seconds":{"stale":30,"revalidate":1,"expire":60},"minutes":{"stale":300,"revalidate":60,"expire":3600},"hours":{"stale":300,"revalidate":3600,"expire":86400},"days":{"stale":300,"revalidate":86400,"expire":604800},"weeks":{"stale":300,"revalidate":604800,"expire":2592000},"max":{"stale":300,"revalidate":2592000,"expire":31536000}},"cacheHandlers":{},"experimental":{"appNewScrollHandler":false,"useSkewCookie":false,"cssChunking":true,"multiZoneDraftMode":false,"appNavFailHandling":false,"prerenderEarlyExit":true,"serverMinification":true,"linkNoTouchStart":false,"caseSensitiveRoutes":false,"cachedNavigations":false,"partialFallbacks":false,"dynamicOnHover":false,"varyParams":false,"prefetchInlining":false,"preloadEntriesOnStart":true,"clientRouterFilter":true,"clientRouterFilterRedirects":false,"fetchCacheKeyPrefix":"","proxyPrefetch":"flexible","optimisticClientCache":true,"manualClientBasePath":false,"cpus":7,"memoryBasedWorkersCount":false,"imgOptConcurrency":null,"imgOptTimeoutInSeconds":7,"imgOptMaxInputPixels":268402689,"imgOptSequentialRead":null,"imgOptSkipMetadata":null,"isrFlushToDisk":true,"workerThreads":false,"optimizeCss":false,"nextScriptWorkers":false,"scrollRestoration":false,"externalDir":false,"disableOptimizedLoading":false,"gzipSize":true,"craCompat":false,"esmExternals":true,"fullySpecified":false,"swcTraceProfiling":false,"forceSwcTransforms":false,"largePageDataBytes":128000,"typedEnv":false,"parallelServerCompiles":false,"parallelServerBuildTraces":false,"ppr":false,"authInterrupts":false,"webpackMemoryOptimizations":false,"optimizeServerReact":true,"strictRouteTypes":false,"viewTransition":false,"removeUncaughtErrorAndRejectionListeners":false,"validateRSCRequestHeaders":false,"staleTimes":{"dynamic":0,"static":300},"reactDebugChannel":true,"serverComponentsHmrCache":true,"staticGenerationMaxConcurrency":8,"staticGenerationMinPagesPerWorker":25,"transitionIndicator":false,"gestureTransition":false,"inlineCss":false,"useCache":false,"globalNotFound":false,"browserDebugInfoInTerminal":"warn","lockDistDir":true,"proxyClientMaxBodySize":10485760,"hideLogsAfterAbort":false,"mcpServer":true,"turbopackFileSystemCacheForDev":true,"turbopackFileSystemCacheForBuild":false,"turbopackInferModuleSideEffects":true,"turbopackPluginRuntimeStrategy":"childProcesses","optimizePackageImports":["lucide-react","date-fns","lodash-es","ramda","antd","react-bootstrap","ahooks","@ant-design/icons","@headlessui/react","@headlessui-float/react","@heroicons/react/20/solid","@heroicons/react/24/solid","@heroicons/react/24/outline","@visx/visx","@tremor/react","rxjs","@mui/material","@mui/icons-material","recharts","react-use","effect","@effect/schema","@effect/platform","@effect/platform-node","@effect/platform-browser","@effect/platform-bun","@effect/sql","@effect/sql-mssql","@effect/sql-mysql2","@effect/sql-pg","@effect/sql-sqlite-node","@effect/sql-sqlite-bun","@effect/sql-sqlite-wasm","@effect/sql-sqlite-react-native","@effect/rpc","@effect/rpc-http","@effect/typeclass","@effect/experimental","@effect/opentelemetry","@material-ui/core","@material-ui/icons","@tabler/icons-react","mui-core","react-icons/ai","react-icons/bi","react-icons/bs","react-icons/cg","react-icons/ci","react-icons/di","react-icons/fa","react-icons/fa6","react-icons/fc","react-icons/fi","react-icons/gi","react-icons/go","react-icons/gr","react-icons/hi","react-icons/hi2","react-icons/im","react-icons/io","react-icons/io5","react-icons/lia","react-icons/lib","react-icons/lu","react-icons/md","react-icons/pi","react-icons/ri","react-icons/rx","react-icons/si","react-icons/sl","react-icons/tb","react-icons/tfi","react-icons/ti","react-icons/vsc","react-icons/wi"],"trustHostHeader":false,"isExperimentalCompile":false},"htmlLimitedBots":"[\\w-]+-Google|Google-[\\w-]+|Chrome-Lighthouse|Slurp|DuckDuckBot|baiduspider|yandex|sogou|bitlybot|tumblr|vkShare|quora link preview|redditbot|ia_archiver|Bingbot|BingPreview|applebot|facebookexternalhit|facebookcatalog|Twitterbot|LinkedInBot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|Yeti|googleweblight","bundlePagesRouterDependencies":false,"configFileName":"next.config.mjs","serverExternalPackages":["better-sqlite3"],"turbopack":{"root":"/Users/Working/router4"},"distDirRoot":".next","_originalRewrites":{"beforeFiles":[],"afterFiles":[{"source":"/v1/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1/v1","destination":"/api/v1"},{"source":"/codex/:path*","destination":"/api/v1/responses"},{"source":"/v1/:path*","destination":"/api/v1/:path*"},{"source":"/v1","destination":"/api/v1"}],"fallback":[]}} + +process.env.__NEXT_PRIVATE_STANDALONE_CONFIG = JSON.stringify(nextConfig) + +require('next') +const { startServer } = require('next/dist/server/lib/start-server') + +if ( + Number.isNaN(keepAliveTimeout) || + !Number.isFinite(keepAliveTimeout) || + keepAliveTimeout < 0 +) { + keepAliveTimeout = undefined +} + +startServer({ + dir, + isDev: false, + config: nextConfig, + hostname, + port: currentPort, + allowRetry: false, + keepAliveTimeout, +}).catch((err) => { + console.error(err); + process.exit(1); +}); \ No newline at end of file diff --git a/cli/app/src/lib/updater/updater.js b/cli/app/src/lib/updater/updater.js new file mode 100644 index 00000000000..ec3f4d034ec --- /dev/null +++ b/cli/app/src/lib/updater/updater.js @@ -0,0 +1,210 @@ +// Standalone detached updater process. +// Spawns `npm i -g <pkg>@latest`, exposes progress via tiny HTTP server. +// Survives after parent Next server exits (detached + unref by spawner). + +const { spawn } = require("child_process"); +const http = require("http"); +const net = require("net"); +const path = require("path"); +const fs = require("fs"); +const os = require("os"); + +const packageName = process.env.UPDATER_PKG_NAME || "9router"; +const port = parseInt(process.env.UPDATER_PORT || "20129", 10); +const tailLines = parseInt(process.env.UPDATER_TAIL_LINES || "8", 10); +const maxRetries = parseInt(process.env.UPDATER_RETRIES || "3", 10); +const retryDelayMs = parseInt(process.env.UPDATER_RETRY_DELAY_MS || "5000", 10); +const lingerMs = parseInt(process.env.UPDATER_LINGER_MS || "30000", 10); +const waitMinMs = parseInt(process.env.UPDATER_WAIT_MIN_MS || "3000", 10); +const waitMaxMs = parseInt(process.env.UPDATER_WAIT_MAX_MS || "15000", 10); +const waitCheckMs = parseInt(process.env.UPDATER_WAIT_CHECK_MS || "500", 10); +const appPort = parseInt(process.env.UPDATER_APP_PORT || "20128", 10); + +// Data directory (match mitm/paths.js logic) +function getDataDir() { + if (process.env.DATA_DIR) return process.env.DATA_DIR; + if (process.platform === "win32") { + return path.join(process.env.APPDATA || path.join(os.homedir(), "AppData", "Roaming"), "9router"); + } + return path.join(os.homedir(), ".9router"); +} +const updateDir = path.join(getDataDir(), "update"); +try { fs.mkdirSync(updateDir, { recursive: true }); } catch { /* best effort */ } +const statusFile = path.join(updateDir, "status.json"); +const logFile = path.join(updateDir, "install.log"); + +const state = { + phase: "starting", + packageName, + startedAt: Date.now(), + finishedAt: null, + attempt: 0, + maxRetries, + done: false, + success: false, + exitCode: null, + error: null, + logTail: [], +}; + +function pushLog(line) { + const trimmed = line.replace(/\r?\n$/, ""); + if (!trimmed) return; + state.logTail.push(trimmed); + if (state.logTail.length > tailLines) state.logTail = state.logTail.slice(-tailLines); + try { fs.appendFileSync(logFile, `${trimmed}\n`); } catch { /* best effort */ } +} + +function persistStatus() { + try { fs.writeFileSync(statusFile, JSON.stringify(state, null, 2)); } catch { /* best effort */ } +} + +function setPhase(phase) { + state.phase = phase; + persistStatus(); +} + +// HTTP server exposing status (browser polls this while Next server is dead) +const server = http.createServer((req, res) => { + res.setHeader("Access-Control-Allow-Origin", "*"); + res.setHeader("Cache-Control", "no-store"); + if (req.url === "/update/status" || req.url === "/") { + res.setHeader("Content-Type", "application/json"); + res.end(JSON.stringify(state)); + return; + } + res.statusCode = 404; + res.end("not found"); +}); + +server.on("error", (e) => { + state.error = `status server error: ${e.message}`; + persistStatus(); +}); + +server.listen(port, "127.0.0.1", () => { + persistStatus(); + waitForAppExit().then(runInstall); +}); + +// Check if app port is still being listened on (= app server still alive) +function isAppPortBusy() { + return new Promise((resolve) => { + const socket = new net.Socket(); + const done = (busy) => { + socket.destroy(); + resolve(busy); + }; + socket.setTimeout(300); + socket.once("connect", () => done(true)); + socket.once("timeout", () => done(false)); + socket.once("error", () => done(false)); + socket.connect(appPort, "127.0.0.1"); + }); +} + +// Wait for app process to fully exit before running npm (avoids Windows file-lock) +async function waitForAppExit() { + setPhase("waitingForExit"); + pushLog(`[updater] waiting for app to exit (min ${Math.round(waitMinMs / 1000)}s)...`); + + // Hard minimum delay: OS needs time to release file handles + await sleep(waitMinMs); + + // Poll app port until free or max timeout + const deadline = Date.now() + (waitMaxMs - waitMinMs); + while (Date.now() < deadline) { + const busy = await isAppPortBusy(); + if (!busy) { + pushLog(`[updater] app port :${appPort} is free, proceeding`); + return; + } + await sleep(waitCheckMs); + } + pushLog(`[updater] timeout waiting for app, proceeding anyway`); +} + +function sleep(ms) { + return new Promise((r) => setTimeout(r, ms)); +} + +function runInstall() { + state.attempt += 1; + setPhase("installing"); + pushLog(`[updater] attempt ${state.attempt}/${maxRetries} — npm i -g ${packageName} --prefer-online`); + + const isWin = process.platform === "win32"; + const cmd = isWin ? "npm.cmd" : "npm"; + const args = ["i", "-g", packageName, "--prefer-online"]; + + const child = spawn(cmd, args, { + stdio: ["ignore", "pipe", "pipe"], + windowsHide: true, + shell: isWin, + }); + + child.stdout.on("data", (buf) => { + buf.toString().split(/\r?\n/).forEach(pushLog); + persistStatus(); + }); + child.stderr.on("data", (buf) => { + buf.toString().split(/\r?\n/).forEach(pushLog); + persistStatus(); + }); + + child.on("error", (e) => { + pushLog(`[updater] spawn error: ${e.message}`); + finalize(false, null, e.message); + }); + + child.on("close", (code) => { + pushLog(`[updater] npm exited with code ${code}`); + if (code === 0) { + finalize(true, code, null); + return; + } + if (state.attempt < maxRetries) { + pushLog(`[updater] retrying in ${Math.round(retryDelayMs / 1000)}s...`); + setTimeout(runInstall, retryDelayMs); + return; + } + finalize(false, code, `Install failed after ${maxRetries} attempts`); + }); +} + +function relaunchApp() { + if (process.env.UPDATER_RELAUNCH !== "1") return; + const cmd = process.env.UPDATER_RELAUNCH_CMD; + if (!cmd) return; + let args = []; + try { args = JSON.parse(process.env.UPDATER_RELAUNCH_ARGS || "[]"); } catch { /* noop */ } + const isWin = process.platform === "win32"; + try { + const child = spawn(cmd, args, { + detached: true, + stdio: "ignore", + windowsHide: true, + shell: isWin, + env: { ...process.env, UPDATER_RELAUNCH: "", UPDATER_RELAUNCH_CMD: "", UPDATER_RELAUNCH_ARGS: "" }, + }); + child.unref(); + pushLog(`[updater] relaunched: ${cmd} ${args.join(" ")} (pid=${child.pid})`); + } catch (e) { + pushLog(`[updater] relaunch failed: ${e.message}`); + } +} + +function finalize(success, exitCode, error) { + state.done = true; + state.success = success; + state.exitCode = exitCode; + state.error = error; + state.finishedAt = Date.now(); + setPhase(success ? "done" : "error"); + if (success) relaunchApp(); + // Linger so browser can poll final status, then exit & close the port + setTimeout(() => { + try { server.close(); } catch { /* ignore */ } + process.exit(success ? 0 : 1); + }, lingerMs); +} diff --git a/cli/app/src/mitm/server.js b/cli/app/src/mitm/server.js new file mode 100644 index 00000000000..9bdf0304375 --- /dev/null +++ b/cli/app/src/mitm/server.js @@ -0,0 +1,56 @@ +var K=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var vr=K((ed,On)=>{var Pr=require("path"),Un=require("os");function Xo(){return process.env.DATA_DIR?process.env.DATA_DIR:process.platform==="win32"?Pr.join(process.env.APPDATA||Pr.join(Un.homedir(),"AppData","Roaming"),"9router"):Pr.join(Un.homedir(),".9router")}var Pn=Xo(),Zo=Pr.join(Pn,"mitm");On.exports={DATA_DIR:Pn,MITM_DIR:Zo}});var Sa=K((td,Vn)=>{var Jo=["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com","api.individual.githubcopilot.com","q.us-east-1.amazonaws.com","api2.cursor.sh"],e0={antigravity:[":generateContent",":streamGenerateContent"],copilot:["/chat/completions","/v1/messages","/responses"],kiro:["/generateAssistantResponse"],cursor:["/BidiAppend","/RunSSE","/RunPoll","/Run"]},t0={antigravity:{"gemini-default":"gemini-3-flash"}},r0=["recordCodeAssistMetrics","recordTrajectoryAnalytics","fetchAdminControls","listExperiments","fetchUserInfo"];function a0(e){let t=(e||"").split(":")[0];return t==="api.individual.githubcopilot.com"?"copilot":t==="daily-cloudcode-pa.googleapis.com"||t==="cloudcode-pa.googleapis.com"?"antigravity":t==="q.us-east-1.amazonaws.com"?"kiro":t==="api2.cursor.sh"?"cursor":null}Vn.exports={TARGET_HOSTS:Jo,URL_PATTERNS:e0,MODEL_SYNONYMS:t0,LOG_BLACKLIST_URL_PARTS:r0,getToolForHost:a0}});var qt=K((rd,Mn)=>{var Or=require("fs"),Ia=require("path"),Ta=require("zlib"),{DATA_DIR:n0}=vr(),{LOG_BLACKLIST_URL_PARTS:i0}=Sa();function Fn(){return new Date().toLocaleTimeString("en-US",{hour12:!1})}var s0=e=>console.log(`[${Fn()}] [MITM] ${e}`),o0=e=>console.error(`[${Fn()}] \u274C [MITM] ${e}`),Vr=Ia.join(n0,"logs","mitm");Or.existsSync(Vr)||Or.mkdirSync(Vr,{recursive:!0});var u0=/^\s*(\{\s*\}|\[\s*\]|null)?\s*$/;function Kn(e,t=80){return String(e).replace(/[^a-zA-Z0-9]/g,"_").substring(0,t)}function qn(e){return e?i0.some(t=>e.includes(t)):!1}function l0(e,t){if(!e||e.length===0)return e;try{let a=(t||"").toLowerCase();if(a.includes("gzip"))return Ta.gunzipSync(e);if(a.includes("br"))return Ta.brotliDecompressSync(e);if(a.includes("deflate"))return Ta.inflateSync(e)}catch{}return e}function f0(e,t,a="raw"){if(qn(e.url))return null;try{let r=new Date().toISOString().replace(/[:.]/g,"-"),n=Kn((e.headers.host||"")+e.url),s=Ia.join(Vr,`${r}_${a}_${n}.req.json`),i=null;try{i=JSON.parse(t.toString())}catch{}return Or.writeFileSync(s,JSON.stringify({method:e.method,url:e.url,host:e.headers.host,headers:e.headers,body:i??t.toString("utf8")},null,2)),s}catch{return null}}function c0(e,t="raw"){if(qn(e.url))return null;let a=new Date().toISOString().replace(/[:.]/g,"-"),r=Kn((e.headers.host||"")+e.url),n=Ia.join(Vr,`${a}_${t}_${r}.res.txt`),s=0,i={},o=[];return{writeHeader:(u,l)=>{s=u,i=l||{}},writeChunk:u=>{u!=null&&o.push(Buffer.isBuffer(u)?u:Buffer.from(u))},end:()=>{try{let u=Buffer.concat(o),l=i["content-encoding"]||i["Content-Encoding"],c=l0(u,l).toString("utf8");if(u0.test(c))return;let y={...i};delete y["content-encoding"],delete y["Content-Encoding"];let g=`STATUS: ${s} +HEADERS: ${JSON.stringify(y,null,2)} +---BODY--- +${c}`;Or.writeFileSync(n,g)}catch{}},file:n}}Mn.exports={log:s0,err:o0,dumpRequest:f0,createResponseDumper:c0}});var $=K((ad,Hn)=>{Hn.exports={options:{usePureJavaScript:!1}}});var Qn=K((nd,zn)=>{var Aa={};zn.exports=Aa;var Gn={};Aa.encode=function(e,t,a){if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');if(a!==void 0&&typeof a!="number")throw new TypeError('"maxline" must be a number.');var r="";if(!(e instanceof Uint8Array))r=d0(e,t);else{var n=0,s=t.length,i=t.charAt(0),o=[0];for(n=0;n<e.length;++n){for(var u=0,l=e[n];u<o.length;++u)l+=o[u]<<8,o[u]=l%s,l=l/s|0;for(;l>0;)o.push(l%s),l=l/s|0}for(n=0;e[n]===0&&n<e.length-1;++n)r+=i;for(n=o.length-1;n>=0;--n)r+=t[o[n]]}if(a){var f=new RegExp(".{1,"+a+"}","g");r=r.match(f).join(`\r +`)}return r};Aa.decode=function(e,t){if(typeof e!="string")throw new TypeError('"input" must be a string.');if(typeof t!="string")throw new TypeError('"alphabet" must be a string.');var a=Gn[t];if(!a){a=Gn[t]=[];for(var r=0;r<t.length;++r)a[t.charCodeAt(r)]=r}e=e.replace(/\s/g,"");for(var n=t.length,s=t.charAt(0),i=[0],r=0;r<e.length;r++){var o=a[e.charCodeAt(r)];if(o===void 0)return;for(var u=0,l=o;u<i.length;++u)l+=i[u]*n,i[u]=l&255,l>>=8;for(;l>0;)i.push(l&255),l>>=8}for(var f=0;e[f]===s&&f<e.length-1;++f)i.push(0);return typeof Buffer<"u"?Buffer.from(i.reverse()):new Uint8Array(i.reverse())};function d0(e,t){var a=0,r=t.length,n=t.charAt(0),s=[0];for(a=0;a<e.length();++a){for(var i=0,o=e.at(a);i<s.length;++i)o+=s[i]<<8,s[i]=o%r,o=o/r|0;for(;o>0;)s.push(o%r),o=o/r|0}var u="";for(a=0;e.at(a)===0&&a<e.length()-1;++a)u+=n;for(a=s.length-1;a>=0;--a)u+=t[s[a]];return u}});var ne=K((id,Wn)=>{var Yn=$(),$n=Qn(),E=Wn.exports=Yn.util=Yn.util||{};(function(){if(typeof process<"u"&&process.nextTick&&!process.browser){E.nextTick=process.nextTick,typeof setImmediate=="function"?E.setImmediate=setImmediate:E.setImmediate=E.nextTick;return}if(typeof setImmediate=="function"){E.setImmediate=function(){return setImmediate.apply(void 0,arguments)},E.nextTick=function(o){return setImmediate(o)};return}if(E.setImmediate=function(o){setTimeout(o,0)},typeof window<"u"&&typeof window.postMessage=="function"){let o=function(u){if(u.source===window&&u.data===e){u.stopPropagation();var l=t.slice();t.length=0,l.forEach(function(f){f()})}};var i=o,e="forge.setImmediate",t=[];E.setImmediate=function(u){t.push(u),t.length===1&&window.postMessage(e,"*")},window.addEventListener("message",o,!0)}if(typeof MutationObserver<"u"){var a=Date.now(),r=!0,n=document.createElement("div"),t=[];new MutationObserver(function(){var u=t.slice();t.length=0,u.forEach(function(l){l()})}).observe(n,{attributes:!0});var s=E.setImmediate;E.setImmediate=function(u){Date.now()-a>15?(a=Date.now(),s(u)):(t.push(u),t.length===1&&n.setAttribute("a",r=!r))}}E.nextTick=E.setImmediate})();E.isNodejs=typeof process<"u"&&process.versions&&process.versions.node;E.globalScope=(function(){return E.isNodejs?global:typeof self>"u"?window:self})();E.isArray=Array.isArray||function(e){return Object.prototype.toString.call(e)==="[object Array]"};E.isArrayBuffer=function(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer};E.isArrayBufferView=function(e){return e&&E.isArrayBuffer(e.buffer)&&e.byteLength!==void 0};function gr(e){if(!(e===8||e===16||e===24||e===32))throw new Error("Only 8, 16, 24, or 32 bits supported: "+e)}E.ByteBuffer=Ba;function Ba(e){if(this.data="",this.read=0,typeof e=="string")this.data=e;else if(E.isArrayBuffer(e)||E.isArrayBufferView(e))if(typeof Buffer<"u"&&e instanceof Buffer)this.data=e.toString("binary");else{var t=new Uint8Array(e);try{this.data=String.fromCharCode.apply(null,t)}catch{for(var a=0;a<t.length;++a)this.putByte(t[a])}}else(e instanceof Ba||typeof e=="object"&&typeof e.data=="string"&&typeof e.read=="number")&&(this.data=e.data,this.read=e.read);this._constructedStringLength=0}E.ByteStringBuffer=Ba;var h0=4096;E.ByteStringBuffer.prototype._optimizeConstructedString=function(e){this._constructedStringLength+=e,this._constructedStringLength>h0&&(this.data.substr(0,1),this._constructedStringLength=0)};E.ByteStringBuffer.prototype.length=function(){return this.data.length-this.read};E.ByteStringBuffer.prototype.isEmpty=function(){return this.length()<=0};E.ByteStringBuffer.prototype.putByte=function(e){return this.putBytes(String.fromCharCode(e))};E.ByteStringBuffer.prototype.fillWithByte=function(e,t){e=String.fromCharCode(e);for(var a=this.data;t>0;)t&1&&(a+=e),t>>>=1,t>0&&(e+=e);return this.data=a,this._optimizeConstructedString(t),this};E.ByteStringBuffer.prototype.putBytes=function(e){return this.data+=e,this._optimizeConstructedString(e.length),this};E.ByteStringBuffer.prototype.putString=function(e){return this.putBytes(E.encodeUtf8(e))};E.ByteStringBuffer.prototype.putInt16=function(e){return this.putBytes(String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt24=function(e){return this.putBytes(String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt32=function(e){return this.putBytes(String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255))};E.ByteStringBuffer.prototype.putInt16Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255))};E.ByteStringBuffer.prototype.putInt24Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255))};E.ByteStringBuffer.prototype.putInt32Le=function(e){return this.putBytes(String.fromCharCode(e&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>24&255))};E.ByteStringBuffer.prototype.putInt=function(e,t){gr(t);var a="";do t-=8,a+=String.fromCharCode(e>>t&255);while(t>0);return this.putBytes(a)};E.ByteStringBuffer.prototype.putSignedInt=function(e,t){return e<0&&(e+=2<<t-1),this.putInt(e,t)};E.ByteStringBuffer.prototype.putBuffer=function(e){return this.putBytes(e.getBytes())};E.ByteStringBuffer.prototype.getByte=function(){return this.data.charCodeAt(this.read++)};E.ByteStringBuffer.prototype.getInt16=function(){var e=this.data.charCodeAt(this.read)<<8^this.data.charCodeAt(this.read+1);return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24=function(){var e=this.data.charCodeAt(this.read)<<16^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2);return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32=function(){var e=this.data.charCodeAt(this.read)<<24^this.data.charCodeAt(this.read+1)<<16^this.data.charCodeAt(this.read+2)<<8^this.data.charCodeAt(this.read+3);return this.read+=4,e};E.ByteStringBuffer.prototype.getInt16Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8;return this.read+=2,e};E.ByteStringBuffer.prototype.getInt24Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16;return this.read+=3,e};E.ByteStringBuffer.prototype.getInt32Le=function(){var e=this.data.charCodeAt(this.read)^this.data.charCodeAt(this.read+1)<<8^this.data.charCodeAt(this.read+2)<<16^this.data.charCodeAt(this.read+3)<<24;return this.read+=4,e};E.ByteStringBuffer.prototype.getInt=function(e){gr(e);var t=0;do t=(t<<8)+this.data.charCodeAt(this.read++),e-=8;while(e>0);return t};E.ByteStringBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),a=2<<e-2;return t>=a&&(t-=a<<1),t};E.ByteStringBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.ByteStringBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.ByteStringBuffer.prototype.at=function(e){return this.data.charCodeAt(this.read+e)};E.ByteStringBuffer.prototype.setAt=function(e,t){return this.data=this.data.substr(0,this.read+e)+String.fromCharCode(t)+this.data.substr(this.read+e+1),this};E.ByteStringBuffer.prototype.last=function(){return this.data.charCodeAt(this.data.length-1)};E.ByteStringBuffer.prototype.copy=function(){var e=E.createBuffer(this.data);return e.read=this.read,e};E.ByteStringBuffer.prototype.compact=function(){return this.read>0&&(this.data=this.data.slice(this.read),this.read=0),this};E.ByteStringBuffer.prototype.clear=function(){return this.data="",this.read=0,this};E.ByteStringBuffer.prototype.truncate=function(e){var t=Math.max(0,this.length()-e);return this.data=this.data.substr(this.read,t),this.read=0,this};E.ByteStringBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.length;++t){var a=this.data.charCodeAt(t);a<16&&(e+="0"),e+=a.toString(16)}return e};E.ByteStringBuffer.prototype.toString=function(){return E.decodeUtf8(this.bytes())};function p0(e,t){t=t||{},this.read=t.readOffset||0,this.growSize=t.growSize||1024;var a=E.isArrayBuffer(e),r=E.isArrayBufferView(e);if(a||r){a?this.data=new DataView(e):this.data=new DataView(e.buffer,e.byteOffset,e.byteLength),this.write="writeOffset"in t?t.writeOffset:this.data.byteLength;return}this.data=new DataView(new ArrayBuffer(0)),this.write=0,e!=null&&this.putBytes(e),"writeOffset"in t&&(this.write=t.writeOffset)}E.DataBuffer=p0;E.DataBuffer.prototype.length=function(){return this.write-this.read};E.DataBuffer.prototype.isEmpty=function(){return this.length()<=0};E.DataBuffer.prototype.accommodate=function(e,t){if(this.length()>=e)return this;t=Math.max(t||this.growSize,e);var a=new Uint8Array(this.data.buffer,this.data.byteOffset,this.data.byteLength),r=new Uint8Array(this.length()+t);return r.set(a),this.data=new DataView(r.buffer),this};E.DataBuffer.prototype.putByte=function(e){return this.accommodate(1),this.data.setUint8(this.write++,e),this};E.DataBuffer.prototype.fillWithByte=function(e,t){this.accommodate(t);for(var a=0;a<t;++a)this.data.setUint8(e);return this};E.DataBuffer.prototype.putBytes=function(e,t){if(E.isArrayBufferView(e)){var a=new Uint8Array(e.buffer,e.byteOffset,e.byteLength),r=a.byteLength-a.byteOffset;this.accommodate(r);var n=new Uint8Array(this.data.buffer,this.write);return n.set(a),this.write+=r,this}if(E.isArrayBuffer(e)){var a=new Uint8Array(e);this.accommodate(a.byteLength);var n=new Uint8Array(this.data.buffer);return n.set(a,this.write),this.write+=a.byteLength,this}if(e instanceof E.DataBuffer||typeof e=="object"&&typeof e.read=="number"&&typeof e.write=="number"&&E.isArrayBufferView(e.data)){var a=new Uint8Array(e.data.byteLength,e.read,e.length());this.accommodate(a.byteLength);var n=new Uint8Array(e.data.byteLength,this.write);return n.set(a),this.write+=a.byteLength,this}if(e instanceof E.ByteStringBuffer&&(e=e.data,t="binary"),t=t||"binary",typeof e=="string"){var s;if(t==="hex")return this.accommodate(Math.ceil(e.length/2)),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.hex.decode(e,s,this.write),this;if(t==="base64")return this.accommodate(Math.ceil(e.length/4)*3),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.base64.decode(e,s,this.write),this;if(t==="utf8"&&(e=E.encodeUtf8(e),t="binary"),t==="binary"||t==="raw")return this.accommodate(e.length),s=new Uint8Array(this.data.buffer,this.write),this.write+=E.binary.raw.decode(s),this;if(t==="utf16")return this.accommodate(e.length*2),s=new Uint16Array(this.data.buffer,this.write),this.write+=E.text.utf16.encode(s),this;throw new Error("Invalid encoding: "+t)}throw Error("Invalid parameter: "+e)};E.DataBuffer.prototype.putBuffer=function(e){return this.putBytes(e),e.clear(),this};E.DataBuffer.prototype.putString=function(e){return this.putBytes(e,"utf16")};E.DataBuffer.prototype.putInt16=function(e){return this.accommodate(2),this.data.setInt16(this.write,e),this.write+=2,this};E.DataBuffer.prototype.putInt24=function(e){return this.accommodate(3),this.data.setInt16(this.write,e>>8&65535),this.data.setInt8(this.write,e>>16&255),this.write+=3,this};E.DataBuffer.prototype.putInt32=function(e){return this.accommodate(4),this.data.setInt32(this.write,e),this.write+=4,this};E.DataBuffer.prototype.putInt16Le=function(e){return this.accommodate(2),this.data.setInt16(this.write,e,!0),this.write+=2,this};E.DataBuffer.prototype.putInt24Le=function(e){return this.accommodate(3),this.data.setInt8(this.write,e>>16&255),this.data.setInt16(this.write,e>>8&65535,!0),this.write+=3,this};E.DataBuffer.prototype.putInt32Le=function(e){return this.accommodate(4),this.data.setInt32(this.write,e,!0),this.write+=4,this};E.DataBuffer.prototype.putInt=function(e,t){gr(t),this.accommodate(t/8);do t-=8,this.data.setInt8(this.write++,e>>t&255);while(t>0);return this};E.DataBuffer.prototype.putSignedInt=function(e,t){return gr(t),this.accommodate(t/8),e<0&&(e+=2<<t-1),this.putInt(e,t)};E.DataBuffer.prototype.getByte=function(){return this.data.getInt8(this.read++)};E.DataBuffer.prototype.getInt16=function(){var e=this.data.getInt16(this.read);return this.read+=2,e};E.DataBuffer.prototype.getInt24=function(){var e=this.data.getInt16(this.read)<<8^this.data.getInt8(this.read+2);return this.read+=3,e};E.DataBuffer.prototype.getInt32=function(){var e=this.data.getInt32(this.read);return this.read+=4,e};E.DataBuffer.prototype.getInt16Le=function(){var e=this.data.getInt16(this.read,!0);return this.read+=2,e};E.DataBuffer.prototype.getInt24Le=function(){var e=this.data.getInt8(this.read)^this.data.getInt16(this.read+1,!0)<<8;return this.read+=3,e};E.DataBuffer.prototype.getInt32Le=function(){var e=this.data.getInt32(this.read,!0);return this.read+=4,e};E.DataBuffer.prototype.getInt=function(e){gr(e);var t=0;do t=(t<<8)+this.data.getInt8(this.read++),e-=8;while(e>0);return t};E.DataBuffer.prototype.getSignedInt=function(e){var t=this.getInt(e),a=2<<e-2;return t>=a&&(t-=a<<1),t};E.DataBuffer.prototype.getBytes=function(e){var t;return e?(e=Math.min(this.length(),e),t=this.data.slice(this.read,this.read+e),this.read+=e):e===0?t="":(t=this.read===0?this.data:this.data.slice(this.read),this.clear()),t};E.DataBuffer.prototype.bytes=function(e){return typeof e>"u"?this.data.slice(this.read):this.data.slice(this.read,this.read+e)};E.DataBuffer.prototype.at=function(e){return this.data.getUint8(this.read+e)};E.DataBuffer.prototype.setAt=function(e,t){return this.data.setUint8(e,t),this};E.DataBuffer.prototype.last=function(){return this.data.getUint8(this.write-1)};E.DataBuffer.prototype.copy=function(){return new E.DataBuffer(this)};E.DataBuffer.prototype.compact=function(){if(this.read>0){var e=new Uint8Array(this.data.buffer,this.read),t=new Uint8Array(e.byteLength);t.set(e),this.data=new DataView(t),this.write-=this.read,this.read=0}return this};E.DataBuffer.prototype.clear=function(){return this.data=new DataView(new ArrayBuffer(0)),this.read=this.write=0,this};E.DataBuffer.prototype.truncate=function(e){return this.write=Math.max(0,this.length()-e),this.read=Math.min(this.read,this.write),this};E.DataBuffer.prototype.toHex=function(){for(var e="",t=this.read;t<this.data.byteLength;++t){var a=this.data.getUint8(t);a<16&&(e+="0"),e+=a.toString(16)}return e};E.DataBuffer.prototype.toString=function(e){var t=new Uint8Array(this.data,this.read,this.length());if(e=e||"utf8",e==="binary"||e==="raw")return E.binary.raw.encode(t);if(e==="hex")return E.binary.hex.encode(t);if(e==="base64")return E.binary.base64.encode(t);if(e==="utf8")return E.text.utf8.decode(t);if(e==="utf16")return E.text.utf16.decode(t);throw new Error("Invalid encoding: "+e)};E.createBuffer=function(e,t){return t=t||"raw",e!==void 0&&t==="utf8"&&(e=E.encodeUtf8(e)),new E.ByteBuffer(e)};E.fillString=function(e,t){for(var a="";t>0;)t&1&&(a+=e),t>>>=1,t>0&&(e+=e);return a};E.xorBytes=function(e,t,a){for(var r="",n="",s="",i=0,o=0;a>0;--a,++i)n=e.charCodeAt(i)^t.charCodeAt(i),o>=10&&(r+=s,s="",o=0),s+=String.fromCharCode(n),++o;return r+=s,r};E.hexToBytes=function(e){var t="",a=0;for(e.length&!0&&(a=1,t+=String.fromCharCode(parseInt(e[0],16)));a<e.length;a+=2)t+=String.fromCharCode(parseInt(e.substr(a,2),16));return t};E.bytesToHex=function(e){return E.createBuffer(e).toHex()};E.int32ToBytes=function(e){return String.fromCharCode(e>>24&255)+String.fromCharCode(e>>16&255)+String.fromCharCode(e>>8&255)+String.fromCharCode(e&255)};var bt="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",_t=[62,-1,-1,-1,63,52,53,54,55,56,57,58,59,60,61,-1,-1,-1,64,-1,-1,-1,0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,-1,-1,-1,-1,-1,-1,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51],jn="123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz";E.encode64=function(e,t){for(var a="",r="",n,s,i,o=0;o<e.length;)n=e.charCodeAt(o++),s=e.charCodeAt(o++),i=e.charCodeAt(o++),a+=bt.charAt(n>>2),a+=bt.charAt((n&3)<<4|s>>4),isNaN(s)?a+="==":(a+=bt.charAt((s&15)<<2|i>>6),a+=isNaN(i)?"=":bt.charAt(i&63)),t&&a.length>t&&(r+=a.substr(0,t)+`\r +`,a=a.substr(t));return r+=a,r};E.decode64=function(e){e=e.replace(/[^A-Za-z0-9\+\/\=]/g,"");for(var t="",a,r,n,s,i=0;i<e.length;)a=_t[e.charCodeAt(i++)-43],r=_t[e.charCodeAt(i++)-43],n=_t[e.charCodeAt(i++)-43],s=_t[e.charCodeAt(i++)-43],t+=String.fromCharCode(a<<2|r>>4),n!==64&&(t+=String.fromCharCode((r&15)<<4|n>>2),s!==64&&(t+=String.fromCharCode((n&3)<<6|s)));return t};E.encodeUtf8=function(e){return unescape(encodeURIComponent(e))};E.decodeUtf8=function(e){return decodeURIComponent(escape(e))};E.binary={raw:{},hex:{},base64:{},base58:{},baseN:{encode:$n.encode,decode:$n.decode}};E.binary.raw.encode=function(e){return String.fromCharCode.apply(null,e)};E.binary.raw.decode=function(e,t,a){var r=t;r||(r=new Uint8Array(e.length)),a=a||0;for(var n=a,s=0;s<e.length;++s)r[n++]=e.charCodeAt(s);return t?n-a:r};E.binary.hex.encode=E.bytesToHex;E.binary.hex.decode=function(e,t,a){var r=t;r||(r=new Uint8Array(Math.ceil(e.length/2))),a=a||0;var n=0,s=a;for(e.length&1&&(n=1,r[s++]=parseInt(e[0],16));n<e.length;n+=2)r[s++]=parseInt(e.substr(n,2),16);return t?s-a:r};E.binary.base64.encode=function(e,t){for(var a="",r="",n,s,i,o=0;o<e.byteLength;)n=e[o++],s=e[o++],i=e[o++],a+=bt.charAt(n>>2),a+=bt.charAt((n&3)<<4|s>>4),isNaN(s)?a+="==":(a+=bt.charAt((s&15)<<2|i>>6),a+=isNaN(i)?"=":bt.charAt(i&63)),t&&a.length>t&&(r+=a.substr(0,t)+`\r +`,a=a.substr(t));return r+=a,r};E.binary.base64.decode=function(e,t,a){var r=t;r||(r=new Uint8Array(Math.ceil(e.length/4)*3)),e=e.replace(/[^A-Za-z0-9\+\/\=]/g,""),a=a||0;for(var n,s,i,o,u=0,l=a;u<e.length;)n=_t[e.charCodeAt(u++)-43],s=_t[e.charCodeAt(u++)-43],i=_t[e.charCodeAt(u++)-43],o=_t[e.charCodeAt(u++)-43],r[l++]=n<<2|s>>4,i!==64&&(r[l++]=(s&15)<<4|i>>2,o!==64&&(r[l++]=(i&3)<<6|o));return t?l-a:r.subarray(0,l)};E.binary.base58.encode=function(e,t){return E.binary.baseN.encode(e,jn,t)};E.binary.base58.decode=function(e,t){return E.binary.baseN.decode(e,jn,t)};E.text={utf8:{},utf16:{}};E.text.utf8.encode=function(e,t,a){e=E.encodeUtf8(e);var r=t;r||(r=new Uint8Array(e.length)),a=a||0;for(var n=a,s=0;s<e.length;++s)r[n++]=e.charCodeAt(s);return t?n-a:r};E.text.utf8.decode=function(e){return E.decodeUtf8(String.fromCharCode.apply(null,e))};E.text.utf16.encode=function(e,t,a){var r=t;r||(r=new Uint8Array(e.length*2));var n=new Uint16Array(r.buffer);a=a||0;for(var s=a,i=a,o=0;o<e.length;++o)n[i++]=e.charCodeAt(o),s+=2;return t?s-a:r};E.text.utf16.decode=function(e){return String.fromCharCode.apply(null,new Uint16Array(e.buffer))};E.deflate=function(e,t,a){if(t=E.decode64(e.deflate(E.encode64(t)).rval),a){var r=2,n=t.charCodeAt(1);n&32&&(r=6),t=t.substring(r,t.length-4)}return t};E.inflate=function(e,t,a){var r=e.inflate(E.encode64(t)).rval;return r===null?null:E.decode64(r)};var ba=function(e,t,a){if(!e)throw new Error("WebStorage not available.");var r;if(a===null?r=e.removeItem(t):(a=E.encode64(JSON.stringify(a)),r=e.setItem(t,a)),typeof r<"u"&&r.rval!==!0){var n=new Error(r.error.message);throw n.id=r.error.id,n.name=r.error.name,n}},_a=function(e,t){if(!e)throw new Error("WebStorage not available.");var a=e.getItem(t);if(e.init)if(a.rval===null){if(a.error){var r=new Error(a.error.message);throw r.id=a.error.id,r.name=a.error.name,r}a=null}else a=a.rval;return a!==null&&(a=JSON.parse(E.decode64(a))),a},y0=function(e,t,a,r){var n=_a(e,t);n===null&&(n={}),n[a]=r,ba(e,t,n)},v0=function(e,t,a){var r=_a(e,t);return r!==null&&(r=a in r?r[a]:null),r},g0=function(e,t,a){var r=_a(e,t);if(r!==null&&a in r){delete r[a];var n=!0;for(var s in r){n=!1;break}n&&(r=null),ba(e,t,r)}},m0=function(e,t){ba(e,t,null)},Fr=function(e,t,a){var r=null;typeof a>"u"&&(a=["web","flash"]);var n,s=!1,i=null;for(var o in a){n=a[o];try{if(n==="flash"||n==="both"){if(t[0]===null)throw new Error("Flash local storage not available.");r=e.apply(this,t),s=n==="flash"}(n==="web"||n==="both")&&(t[0]=localStorage,r=e.apply(this,t),s=!0)}catch(u){i=u}if(s)break}if(!s)throw i;return r};E.setItem=function(e,t,a,r,n){Fr(y0,arguments,n)};E.getItem=function(e,t,a,r){return Fr(v0,arguments,r)};E.removeItem=function(e,t,a,r){Fr(g0,arguments,r)};E.clearItems=function(e,t,a){Fr(m0,arguments,a)};E.isEmpty=function(e){for(var t in e)if(e.hasOwnProperty(t))return!1;return!0};E.format=function(e){for(var t=/%./g,a,r,n=0,s=[],i=0;a=t.exec(e);){r=e.substring(i,t.lastIndex-2),r.length>0&&s.push(r),i=t.lastIndex;var o=a[0][1];switch(o){case"s":case"o":n<arguments.length?s.push(arguments[n+++1]):s.push("<?>");break;case"%":s.push("%");break;default:s.push("<%"+o+"?>")}}return s.push(e.substring(i)),s.join("")};E.formatNumber=function(e,t,a,r){var n=e,s=isNaN(t=Math.abs(t))?2:t,i=a===void 0?",":a,o=r===void 0?".":r,u=n<0?"-":"",l=parseInt(n=Math.abs(+n||0).toFixed(s),10)+"",f=l.length>3?l.length%3:0;return u+(f?l.substr(0,f)+o:"")+l.substr(f).replace(/(\d{3})(?=\d)/g,"$1"+o)+(s?i+Math.abs(n-l).toFixed(s).slice(2):"")};E.formatSize=function(e){return e>=1073741824?e=E.formatNumber(e/1073741824,2,".","")+" GiB":e>=1048576?e=E.formatNumber(e/1048576,2,".","")+" MiB":e>=1024?e=E.formatNumber(e/1024,0)+" KiB":e=E.formatNumber(e,0)+" bytes",e};E.bytesFromIP=function(e){return e.indexOf(".")!==-1?E.bytesFromIPv4(e):e.indexOf(":")!==-1?E.bytesFromIPv6(e):null};E.bytesFromIPv4=function(e){if(e=e.split("."),e.length!==4)return null;for(var t=E.createBuffer(),a=0;a<e.length;++a){var r=parseInt(e[a],10);if(isNaN(r))return null;t.putByte(r)}return t.getBytes()};E.bytesFromIPv6=function(e){var t=0;e=e.split(":").filter(function(i){return i.length===0&&++t,!0});for(var a=(8-e.length+t)*2,r=E.createBuffer(),n=0;n<8;++n){if(!e[n]||e[n].length===0){r.fillWithByte(0,a),a=0;continue}var s=E.hexToBytes(e[n]);s.length<2&&r.putByte(0),r.putBytes(s)}return r.getBytes()};E.bytesToIP=function(e){return e.length===4?E.bytesToIPv4(e):e.length===16?E.bytesToIPv6(e):null};E.bytesToIPv4=function(e){if(e.length!==4)return null;for(var t=[],a=0;a<e.length;++a)t.push(e.charCodeAt(a));return t.join(".")};E.bytesToIPv6=function(e){if(e.length!==16)return null;for(var t=[],a=[],r=0,n=0;n<e.length;n+=2){for(var s=E.bytesToHex(e[n]+e[n+1]);s[0]==="0"&&s!=="0";)s=s.substr(1);if(s==="0"){var i=a[a.length-1],o=t.length;!i||o!==i.end+1?a.push({start:o,end:o}):(i.end=o,i.end-i.start>a[r].end-a[r].start&&(r=a.length-1))}t.push(s)}if(a.length>0){var u=a[r];u.end-u.start>0&&(t.splice(u.start,u.end-u.start+1,""),u.start===0&&t.unshift(""),u.end===7&&t.push(""))}return t.join(":")};E.estimateCores=function(e,t){if(typeof e=="function"&&(t=e,e={}),e=e||{},"cores"in E&&!e.update)return t(null,E.cores);if(typeof navigator<"u"&&"hardwareConcurrency"in navigator&&navigator.hardwareConcurrency>0)return E.cores=navigator.hardwareConcurrency,t(null,E.cores);if(typeof Worker>"u")return E.cores=1,t(null,E.cores);if(typeof Blob>"u")return E.cores=2,t(null,E.cores);var a=URL.createObjectURL(new Blob(["(",function(){self.addEventListener("message",function(i){for(var o=Date.now(),u=o+4;Date.now()<u;);self.postMessage({st:o,et:u})})}.toString(),")()"],{type:"application/javascript"}));r([],5,16);function r(i,o,u){if(o===0){var l=Math.floor(i.reduce(function(f,c){return f+c},0)/i.length);return E.cores=Math.max(1,l),URL.revokeObjectURL(a),t(null,E.cores)}n(u,function(f,c){i.push(s(u,c)),r(i,o-1,u)})}function n(i,o){for(var u=[],l=[],f=0;f<i;++f){var c=new Worker(a);c.addEventListener("message",function(y){if(l.push(y.data),l.length===i){for(var g=0;g<i;++g)u[g].terminate();o(null,l)}}),u.push(c)}for(var f=0;f<i;++f)u[f].postMessage(f)}function s(i,o){for(var u=[],l=0;l<i;++l)for(var f=o[l],c=u[l]=[],y=0;y<i;++y)if(l!==y){var g=o[y];(f.st>g.st&&f.st<g.et||g.st>f.st&&g.st<f.et)&&c.push(y)}return u.reduce(function(v,x){return Math.max(v,x.length)},0)}}});var Kr=K((sd,Xn)=>{var Se=$();ne();Xn.exports=Se.cipher=Se.cipher||{};Se.cipher.algorithms=Se.cipher.algorithms||{};Se.cipher.createCipher=function(e,t){var a=e;if(typeof a=="string"&&(a=Se.cipher.getAlgorithm(a),a&&(a=a())),!a)throw new Error("Unsupported algorithm: "+e);return new Se.cipher.BlockCipher({algorithm:a,key:t,decrypt:!1})};Se.cipher.createDecipher=function(e,t){var a=e;if(typeof a=="string"&&(a=Se.cipher.getAlgorithm(a),a&&(a=a())),!a)throw new Error("Unsupported algorithm: "+e);return new Se.cipher.BlockCipher({algorithm:a,key:t,decrypt:!0})};Se.cipher.registerAlgorithm=function(e,t){e=e.toUpperCase(),Se.cipher.algorithms[e]=t};Se.cipher.getAlgorithm=function(e){return e=e.toUpperCase(),e in Se.cipher.algorithms?Se.cipher.algorithms[e]:null};var Na=Se.cipher.BlockCipher=function(e){this.algorithm=e.algorithm,this.mode=this.algorithm.mode,this.blockSize=this.mode.blockSize,this._finish=!1,this._input=null,this.output=null,this._op=e.decrypt?this.mode.decrypt:this.mode.encrypt,this._decrypt=e.decrypt,this.algorithm.initialize(e)};Na.prototype.start=function(e){e=e||{};var t={};for(var a in e)t[a]=e[a];t.decrypt=this._decrypt,this._finish=!1,this._input=Se.util.createBuffer(),this.output=e.output||Se.util.createBuffer(),this.mode.start(t)};Na.prototype.update=function(e){for(e&&this._input.putBuffer(e);!this._op.call(this.mode,this._input,this.output,this._finish)&&!this._finish;);this._input.compact()};Na.prototype.finish=function(e){e&&(this.mode.name==="ECB"||this.mode.name==="CBC")&&(this.mode.pad=function(a){return e(this.blockSize,a,!1)},this.mode.unpad=function(a){return e(this.blockSize,a,!0)});var t={};return t.decrypt=this._decrypt,t.overflow=this._input.length()%this.blockSize,!(!this._decrypt&&this.mode.pad&&!this.mode.pad(this._input,t)||(this._finish=!0,this.update(),this._decrypt&&this.mode.unpad&&!this.mode.unpad(this.output,t))||this.mode.afterFinish&&!this.mode.afterFinish(this.output,t))}});var Ra=K((od,Zn)=>{var Te=$();ne();Te.cipher=Te.cipher||{};var W=Zn.exports=Te.cipher.modes=Te.cipher.modes||{};W.ecb=function(e){e=e||{},this.name="ECB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};W.ecb.prototype.start=function(e){};W.ecb.prototype.encrypt=function(e,t,a){if(e.length()<this.blockSize&&!(a&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._outBlock[r])};W.ecb.prototype.decrypt=function(e,t,a){if(e.length()<this.blockSize&&!(a&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._outBlock[r])};W.ecb.prototype.pad=function(e,t){var a=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(a,a),!0};W.ecb.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var a=e.length(),r=e.at(a-1);return r>this.blockSize<<2?!1:(e.truncate(r),!0)};W.cbc=function(e){e=e||{},this.name="CBC",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints)};W.cbc.prototype.start=function(e){if(e.iv===null){if(!this._prev)throw new Error("Invalid IV parameter.");this._iv=this._prev.slice(0)}else if("iv"in e)this._iv=qr(e.iv,this.blockSize),this._prev=this._iv.slice(0);else throw new Error("Invalid IV parameter.")};W.cbc.prototype.encrypt=function(e,t,a){if(e.length()<this.blockSize&&!(a&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=this._prev[r]^e.getInt32();this.cipher.encrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._outBlock[r]);this._prev=this._outBlock};W.cbc.prototype.decrypt=function(e,t,a){if(e.length()<this.blockSize&&!(a&&e.length()>0))return!0;for(var r=0;r<this._ints;++r)this._inBlock[r]=e.getInt32();this.cipher.decrypt(this._inBlock,this._outBlock);for(var r=0;r<this._ints;++r)t.putInt32(this._prev[r]^this._outBlock[r]);this._prev=this._inBlock.slice(0)};W.cbc.prototype.pad=function(e,t){var a=e.length()===this.blockSize?this.blockSize:this.blockSize-e.length();return e.fillWithByte(a,a),!0};W.cbc.prototype.unpad=function(e,t){if(t.overflow>0)return!1;var a=e.length(),r=e.at(a-1);return r>this.blockSize<<2?!1:(e.truncate(r),!0)};W.cfb=function(e){e=e||{},this.name="CFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialBlock=new Array(this._ints),this._partialOutput=Te.util.createBuffer(),this._partialBytes=0};W.cfb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=qr(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};W.cfb.prototype.encrypt=function(e,t,a){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32()^this._outBlock[n],t.putInt32(this._inBlock[n]);return}var s=(this.blockSize-r)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialBlock[n]=e.getInt32()^this._outBlock[n],this._partialOutput.putInt32(this._partialBlock[n]);if(s>0)e.read-=this.blockSize;else for(var n=0;n<this._ints;++n)this._inBlock[n]=this._partialBlock[n];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!a)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0};W.cfb.prototype.decrypt=function(e,t,a){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)this._inBlock[n]=e.getInt32(),t.putInt32(this._inBlock[n]^this._outBlock[n]);return}var s=(this.blockSize-r)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialBlock[n]=e.getInt32(),this._partialOutput.putInt32(this._partialBlock[n]^this._outBlock[n]);if(s>0)e.read-=this.blockSize;else for(var n=0;n<this._ints;++n)this._inBlock[n]=this._partialBlock[n];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!a)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0};W.ofb=function(e){e=e||{},this.name="OFB",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Te.util.createBuffer(),this._partialBytes=0};W.ofb.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=qr(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};W.ofb.prototype.encrypt=function(e,t,a){var r=e.length();if(e.length()===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)t.putInt32(e.getInt32()^this._outBlock[n]),this._inBlock[n]=this._outBlock[n];return}var s=(this.blockSize-r)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialOutput.putInt32(e.getInt32()^this._outBlock[n]);if(s>0)e.read-=this.blockSize;else for(var n=0;n<this._ints;++n)this._inBlock[n]=this._outBlock[n];if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!a)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0};W.ofb.prototype.decrypt=W.ofb.prototype.encrypt;W.ctr=function(e){e=e||{},this.name="CTR",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=null,this._outBlock=new Array(this._ints),this._partialOutput=Te.util.createBuffer(),this._partialBytes=0};W.ctr.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");this._iv=qr(e.iv,this.blockSize),this._inBlock=this._iv.slice(0),this._partialBytes=0};W.ctr.prototype.encrypt=function(e,t,a){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize)for(var n=0;n<this._ints;++n)t.putInt32(e.getInt32()^this._outBlock[n]);else{var s=(this.blockSize-r)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialOutput.putInt32(e.getInt32()^this._outBlock[n]);if(s>0&&(e.read-=this.blockSize),this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!a)return t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0}Mr(this._inBlock)};W.ctr.prototype.decrypt=W.ctr.prototype.encrypt;W.gcm=function(e){e=e||{},this.name="GCM",this.cipher=e.cipher,this.blockSize=e.blockSize||16,this._ints=this.blockSize/4,this._inBlock=new Array(this._ints),this._outBlock=new Array(this._ints),this._partialOutput=Te.util.createBuffer(),this._partialBytes=0,this._R=3774873600};W.gcm.prototype.start=function(e){if(!("iv"in e))throw new Error("Invalid IV parameter.");var t=Te.util.createBuffer(e.iv);this._cipherLength=0;var a;if("additionalData"in e?a=Te.util.createBuffer(e.additionalData):a=Te.util.createBuffer(),"tagLength"in e?this._tagLength=e.tagLength:this._tagLength=128,this._tag=null,e.decrypt&&(this._tag=Te.util.createBuffer(e.tag).getBytes(),this._tag.length!==this._tagLength/8))throw new Error("Authentication tag does not match tag length.");this._hashBlock=new Array(this._ints),this.tag=null,this._hashSubkey=new Array(this._ints),this.cipher.encrypt([0,0,0,0],this._hashSubkey),this.componentBits=4,this._m=this.generateHashTable(this._hashSubkey,this.componentBits);var r=t.length();if(r===12)this._j0=[t.getInt32(),t.getInt32(),t.getInt32(),1];else{for(this._j0=[0,0,0,0];t.length()>0;)this._j0=this.ghash(this._hashSubkey,this._j0,[t.getInt32(),t.getInt32(),t.getInt32(),t.getInt32()]);this._j0=this.ghash(this._hashSubkey,this._j0,[0,0].concat(wa(r*8)))}this._inBlock=this._j0.slice(0),Mr(this._inBlock),this._partialBytes=0,a=Te.util.createBuffer(a),this._aDataLength=wa(a.length()*8);var n=a.length()%this.blockSize;for(n&&a.fillWithByte(0,this.blockSize-n),this._s=[0,0,0,0];a.length()>0;)this._s=this.ghash(this._hashSubkey,this._s,[a.getInt32(),a.getInt32(),a.getInt32(),a.getInt32()])};W.gcm.prototype.encrypt=function(e,t,a){var r=e.length();if(r===0)return!0;if(this.cipher.encrypt(this._inBlock,this._outBlock),this._partialBytes===0&&r>=this.blockSize){for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]^=e.getInt32());this._cipherLength+=this.blockSize}else{var s=(this.blockSize-r)%this.blockSize;s>0&&(s=this.blockSize-s),this._partialOutput.clear();for(var n=0;n<this._ints;++n)this._partialOutput.putInt32(e.getInt32()^this._outBlock[n]);if(s<=0||a){if(a){var i=r%this.blockSize;this._cipherLength+=i,this._partialOutput.truncate(this.blockSize-i)}else this._cipherLength+=this.blockSize;for(var n=0;n<this._ints;++n)this._outBlock[n]=this._partialOutput.getInt32();this._partialOutput.read-=this.blockSize}if(this._partialBytes>0&&this._partialOutput.getBytes(this._partialBytes),s>0&&!a)return e.read-=this.blockSize,t.putBytes(this._partialOutput.getBytes(s-this._partialBytes)),this._partialBytes=s,!0;t.putBytes(this._partialOutput.getBytes(r-this._partialBytes)),this._partialBytes=0}this._s=this.ghash(this._hashSubkey,this._s,this._outBlock),Mr(this._inBlock)};W.gcm.prototype.decrypt=function(e,t,a){var r=e.length();if(r<this.blockSize&&!(a&&r>0))return!0;this.cipher.encrypt(this._inBlock,this._outBlock),Mr(this._inBlock),this._hashBlock[0]=e.getInt32(),this._hashBlock[1]=e.getInt32(),this._hashBlock[2]=e.getInt32(),this._hashBlock[3]=e.getInt32(),this._s=this.ghash(this._hashSubkey,this._s,this._hashBlock);for(var n=0;n<this._ints;++n)t.putInt32(this._outBlock[n]^this._hashBlock[n]);r<this.blockSize?this._cipherLength+=r%this.blockSize:this._cipherLength+=this.blockSize};W.gcm.prototype.afterFinish=function(e,t){var a=!0;t.decrypt&&t.overflow&&e.truncate(this.blockSize-t.overflow),this.tag=Te.util.createBuffer();var r=this._aDataLength.concat(wa(this._cipherLength*8));this._s=this.ghash(this._hashSubkey,this._s,r);var n=[];this.cipher.encrypt(this._j0,n);for(var s=0;s<this._ints;++s)this.tag.putInt32(this._s[s]^n[s]);return this.tag.truncate(this.tag.length()%(this._tagLength/8)),t.decrypt&&this.tag.bytes()!==this._tag&&(a=!1),a};W.gcm.prototype.multiply=function(e,t){for(var a=[0,0,0,0],r=t.slice(0),n=0;n<128;++n){var s=e[n/32|0]&1<<31-n%32;s&&(a[0]^=r[0],a[1]^=r[1],a[2]^=r[2],a[3]^=r[3]),this.pow(r,r)}return a};W.gcm.prototype.pow=function(e,t){for(var a=e[3]&1,r=3;r>0;--r)t[r]=e[r]>>>1|(e[r-1]&1)<<31;t[0]=e[0]>>>1,a&&(t[0]^=this._R)};W.gcm.prototype.tableMultiply=function(e){for(var t=[0,0,0,0],a=0;a<32;++a){var r=a/8|0,n=e[r]>>>(7-a%8)*4&15,s=this._m[a][n];t[0]^=s[0],t[1]^=s[1],t[2]^=s[2],t[3]^=s[3]}return t};W.gcm.prototype.ghash=function(e,t,a){return t[0]^=a[0],t[1]^=a[1],t[2]^=a[2],t[3]^=a[3],this.tableMultiply(t)};W.gcm.prototype.generateHashTable=function(e,t){for(var a=8/t,r=4*a,n=16*a,s=new Array(n),i=0;i<n;++i){var o=[0,0,0,0],u=i/r|0,l=(r-1-i%r)*t;o[u]=1<<t-1<<l,s[i]=this.generateSubHashTable(this.multiply(o,e),t)}return s};W.gcm.prototype.generateSubHashTable=function(e,t){var a=1<<t,r=a>>>1,n=new Array(a);n[r]=e.slice(0);for(var s=r>>>1;s>0;)this.pow(n[2*s],n[s]=[]),s>>=1;for(s=2;s<r;){for(var i=1;i<s;++i){var o=n[s],u=n[i];n[s+i]=[o[0]^u[0],o[1]^u[1],o[2]^u[2],o[3]^u[3]]}s*=2}for(n[0]=[0,0,0,0],s=r+1;s<a;++s){var l=n[s^r];n[s]=[e[0]^l[0],e[1]^l[1],e[2]^l[2],e[3]^l[3]]}return n};function qr(e,t){if(typeof e=="string"&&(e=Te.util.createBuffer(e)),Te.util.isArray(e)&&e.length>4){var a=e;e=Te.util.createBuffer();for(var r=0;r<a.length;++r)e.putByte(a[r])}if(e.length()<t)throw new Error("Invalid IV length; got "+e.length()+" bytes and expected "+t+" bytes.");if(!Te.util.isArray(e)){for(var n=[],s=t/4,r=0;r<s;++r)n.push(e.getInt32());e=n}return e}function Mr(e){e[e.length-1]=e[e.length-1]+1&4294967295}function wa(e){return[e/4294967296|0,e&4294967295]}});var Nt=K((ud,ri)=>{var fe=$();Kr();Ra();ne();ri.exports=fe.aes=fe.aes||{};fe.aes.startEncrypting=function(e,t,a,r){var n=Hr({key:e,output:a,decrypt:!1,mode:r});return n.start(t),n};fe.aes.createEncryptionCipher=function(e,t){return Hr({key:e,output:null,decrypt:!1,mode:t})};fe.aes.startDecrypting=function(e,t,a,r){var n=Hr({key:e,output:a,decrypt:!0,mode:r});return n.start(t),n};fe.aes.createDecryptionCipher=function(e,t){return Hr({key:e,output:null,decrypt:!0,mode:t})};fe.aes.Algorithm=function(e,t){ka||ei();var a=this;a.name=e,a.mode=new t({blockSize:16,cipher:{encrypt:function(r,n){return Da(a._w,r,n,!1)},decrypt:function(r,n){return Da(a._w,r,n,!0)}}}),a._init=!1};fe.aes.Algorithm.prototype.initialize=function(e){if(!this._init){var t=e.key,a;if(typeof t=="string"&&(t.length===16||t.length===24||t.length===32))t=fe.util.createBuffer(t);else if(fe.util.isArray(t)&&(t.length===16||t.length===24||t.length===32)){a=t,t=fe.util.createBuffer();for(var r=0;r<a.length;++r)t.putByte(a[r])}if(!fe.util.isArray(t)){a=t,t=[];var n=a.length();if(n===16||n===24||n===32){n=n>>>2;for(var r=0;r<n;++r)t.push(a.getInt32())}}if(!fe.util.isArray(t)||!(t.length===4||t.length===6||t.length===8))throw new Error("Invalid key parameter.");var s=this.mode.name,i=["CFB","OFB","CTR","GCM"].indexOf(s)!==-1;this._w=ti(t,e.decrypt&&!i),this._init=!0}};fe.aes._expandKey=function(e,t){return ka||ei(),ti(e,t)};fe.aes._updateBlock=Da;er("AES-ECB",fe.cipher.modes.ecb);er("AES-CBC",fe.cipher.modes.cbc);er("AES-CFB",fe.cipher.modes.cfb);er("AES-OFB",fe.cipher.modes.ofb);er("AES-CTR",fe.cipher.modes.ctr);er("AES-GCM",fe.cipher.modes.gcm);function er(e,t){var a=function(){return new fe.aes.Algorithm(e,t)};fe.cipher.registerAlgorithm(e,a)}var ka=!1,Jt=4,Ge,La,Jn,Mt,ot;function ei(){ka=!0,Jn=[0,1,2,4,8,16,32,64,128,27,54];for(var e=new Array(256),t=0;t<128;++t)e[t]=t<<1,e[t+128]=t+128<<1^283;Ge=new Array(256),La=new Array(256),Mt=new Array(4),ot=new Array(4);for(var t=0;t<4;++t)Mt[t]=new Array(256),ot[t]=new Array(256);for(var a=0,r=0,n,s,i,o,u,l,f,t=0;t<256;++t){o=r^r<<1^r<<2^r<<3^r<<4,o=o>>8^o&255^99,Ge[a]=o,La[o]=a,u=e[o],n=e[a],s=e[n],i=e[s],l=u<<24^o<<16^o<<8^(o^u),f=(n^s^i)<<24^(a^i)<<16^(a^s^i)<<8^(a^n^i);for(var c=0;c<4;++c)Mt[c][a]=l,ot[c][o]=f,l=l<<24|l>>>8,f=f<<24|f>>>8;a===0?a=r=1:(a=n^e[e[e[n^i]]],r^=e[e[r]])}}function ti(e,t){for(var a=e.slice(0),r,n=1,s=a.length,i=s+6+1,o=Jt*i,u=s;u<o;++u)r=a[u-1],u%s===0?(r=Ge[r>>>16&255]<<24^Ge[r>>>8&255]<<16^Ge[r&255]<<8^Ge[r>>>24]^Jn[n]<<24,n++):s>6&&u%s===4&&(r=Ge[r>>>24]<<24^Ge[r>>>16&255]<<16^Ge[r>>>8&255]<<8^Ge[r&255]),a[u]=a[u-s]^r;if(t){var l,f=ot[0],c=ot[1],y=ot[2],g=ot[3],v=a.slice(0);o=a.length;for(var u=0,x=o-Jt;u<o;u+=Jt,x-=Jt)if(u===0||u===o-Jt)v[u]=a[x],v[u+1]=a[x+3],v[u+2]=a[x+2],v[u+3]=a[x+1];else for(var S=0;S<Jt;++S)l=a[x+S],v[u+(3&-S)]=f[Ge[l>>>24]]^c[Ge[l>>>16&255]]^y[Ge[l>>>8&255]]^g[Ge[l&255]];a=v}return a}function Da(e,t,a,r){var n=e.length/4-1,s,i,o,u,l;r?(s=ot[0],i=ot[1],o=ot[2],u=ot[3],l=La):(s=Mt[0],i=Mt[1],o=Mt[2],u=Mt[3],l=Ge);var f,c,y,g,v,x,S;f=t[0]^e[0],c=t[r?3:1]^e[1],y=t[2]^e[2],g=t[r?1:3]^e[3];for(var I=3,B=1;B<n;++B)v=s[f>>>24]^i[c>>>16&255]^o[y>>>8&255]^u[g&255]^e[++I],x=s[c>>>24]^i[y>>>16&255]^o[g>>>8&255]^u[f&255]^e[++I],S=s[y>>>24]^i[g>>>16&255]^o[f>>>8&255]^u[c&255]^e[++I],g=s[g>>>24]^i[f>>>16&255]^o[c>>>8&255]^u[y&255]^e[++I],f=v,c=x,y=S;a[0]=l[f>>>24]<<24^l[c>>>16&255]<<16^l[y>>>8&255]<<8^l[g&255]^e[++I],a[r?3:1]=l[c>>>24]<<24^l[y>>>16&255]<<16^l[g>>>8&255]<<8^l[f&255]^e[++I],a[2]=l[y>>>24]<<24^l[g>>>16&255]<<16^l[f>>>8&255]<<8^l[c&255]^e[++I],a[r?1:3]=l[g>>>24]<<24^l[f>>>16&255]<<16^l[c>>>8&255]<<8^l[y&255]^e[++I]}function Hr(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),a="AES-"+t,r;e.decrypt?r=fe.cipher.createDecipher(a,e.key):r=fe.cipher.createCipher(a,e.key);var n=r.start;return r.start=function(s,i){var o=null;i instanceof fe.util.ByteBuffer&&(o=i,i={}),i=i||{},i.output=o,i.iv=s,n.call(r,i)},r}});var wt=K((ld,ai)=>{var mr=$();mr.pki=mr.pki||{};var Ua=ai.exports=mr.pki.oids=mr.oids=mr.oids||{};function w(e,t){Ua[e]=t,Ua[t]=e}function se(e,t){Ua[e]=t}w("1.2.840.113549.1.1.1","rsaEncryption");w("1.2.840.113549.1.1.4","md5WithRSAEncryption");w("1.2.840.113549.1.1.5","sha1WithRSAEncryption");w("1.2.840.113549.1.1.7","RSAES-OAEP");w("1.2.840.113549.1.1.8","mgf1");w("1.2.840.113549.1.1.9","pSpecified");w("1.2.840.113549.1.1.10","RSASSA-PSS");w("1.2.840.113549.1.1.11","sha256WithRSAEncryption");w("1.2.840.113549.1.1.12","sha384WithRSAEncryption");w("1.2.840.113549.1.1.13","sha512WithRSAEncryption");w("1.3.101.112","EdDSA25519");w("1.2.840.10040.4.3","dsa-with-sha1");w("1.3.14.3.2.7","desCBC");w("1.3.14.3.2.26","sha1");w("1.3.14.3.2.29","sha1WithRSASignature");w("2.16.840.1.101.3.4.2.1","sha256");w("2.16.840.1.101.3.4.2.2","sha384");w("2.16.840.1.101.3.4.2.3","sha512");w("2.16.840.1.101.3.4.2.4","sha224");w("2.16.840.1.101.3.4.2.5","sha512-224");w("2.16.840.1.101.3.4.2.6","sha512-256");w("1.2.840.113549.2.2","md2");w("1.2.840.113549.2.5","md5");w("1.2.840.113549.1.7.1","data");w("1.2.840.113549.1.7.2","signedData");w("1.2.840.113549.1.7.3","envelopedData");w("1.2.840.113549.1.7.4","signedAndEnvelopedData");w("1.2.840.113549.1.7.5","digestedData");w("1.2.840.113549.1.7.6","encryptedData");w("1.2.840.113549.1.9.1","emailAddress");w("1.2.840.113549.1.9.2","unstructuredName");w("1.2.840.113549.1.9.3","contentType");w("1.2.840.113549.1.9.4","messageDigest");w("1.2.840.113549.1.9.5","signingTime");w("1.2.840.113549.1.9.6","counterSignature");w("1.2.840.113549.1.9.7","challengePassword");w("1.2.840.113549.1.9.8","unstructuredAddress");w("1.2.840.113549.1.9.14","extensionRequest");w("1.2.840.113549.1.9.20","friendlyName");w("1.2.840.113549.1.9.21","localKeyId");w("1.2.840.113549.1.9.22.1","x509Certificate");w("1.2.840.113549.1.12.10.1.1","keyBag");w("1.2.840.113549.1.12.10.1.2","pkcs8ShroudedKeyBag");w("1.2.840.113549.1.12.10.1.3","certBag");w("1.2.840.113549.1.12.10.1.4","crlBag");w("1.2.840.113549.1.12.10.1.5","secretBag");w("1.2.840.113549.1.12.10.1.6","safeContentsBag");w("1.2.840.113549.1.5.13","pkcs5PBES2");w("1.2.840.113549.1.5.12","pkcs5PBKDF2");w("1.2.840.113549.1.12.1.1","pbeWithSHAAnd128BitRC4");w("1.2.840.113549.1.12.1.2","pbeWithSHAAnd40BitRC4");w("1.2.840.113549.1.12.1.3","pbeWithSHAAnd3-KeyTripleDES-CBC");w("1.2.840.113549.1.12.1.4","pbeWithSHAAnd2-KeyTripleDES-CBC");w("1.2.840.113549.1.12.1.5","pbeWithSHAAnd128BitRC2-CBC");w("1.2.840.113549.1.12.1.6","pbewithSHAAnd40BitRC2-CBC");w("1.2.840.113549.2.7","hmacWithSHA1");w("1.2.840.113549.2.8","hmacWithSHA224");w("1.2.840.113549.2.9","hmacWithSHA256");w("1.2.840.113549.2.10","hmacWithSHA384");w("1.2.840.113549.2.11","hmacWithSHA512");w("1.2.840.113549.3.7","des-EDE3-CBC");w("2.16.840.1.101.3.4.1.2","aes128-CBC");w("2.16.840.1.101.3.4.1.22","aes192-CBC");w("2.16.840.1.101.3.4.1.42","aes256-CBC");w("2.5.4.3","commonName");w("2.5.4.4","surname");w("2.5.4.5","serialNumber");w("2.5.4.6","countryName");w("2.5.4.7","localityName");w("2.5.4.8","stateOrProvinceName");w("2.5.4.9","streetAddress");w("2.5.4.10","organizationName");w("2.5.4.11","organizationalUnitName");w("2.5.4.12","title");w("2.5.4.13","description");w("2.5.4.15","businessCategory");w("2.5.4.17","postalCode");w("2.5.4.42","givenName");w("2.5.4.65","pseudonym");w("1.3.6.1.4.1.311.60.2.1.2","jurisdictionOfIncorporationStateOrProvinceName");w("1.3.6.1.4.1.311.60.2.1.3","jurisdictionOfIncorporationCountryName");w("2.16.840.1.113730.1.1","nsCertType");w("2.16.840.1.113730.1.13","nsComment");se("2.5.29.1","authorityKeyIdentifier");se("2.5.29.2","keyAttributes");se("2.5.29.3","certificatePolicies");se("2.5.29.4","keyUsageRestriction");se("2.5.29.5","policyMapping");se("2.5.29.6","subtreesConstraint");se("2.5.29.7","subjectAltName");se("2.5.29.8","issuerAltName");se("2.5.29.9","subjectDirectoryAttributes");se("2.5.29.10","basicConstraints");se("2.5.29.11","nameConstraints");se("2.5.29.12","policyConstraints");se("2.5.29.13","basicConstraints");w("2.5.29.14","subjectKeyIdentifier");w("2.5.29.15","keyUsage");se("2.5.29.16","privateKeyUsagePeriod");w("2.5.29.17","subjectAltName");w("2.5.29.18","issuerAltName");w("2.5.29.19","basicConstraints");se("2.5.29.20","cRLNumber");se("2.5.29.21","cRLReason");se("2.5.29.22","expirationDate");se("2.5.29.23","instructionCode");se("2.5.29.24","invalidityDate");se("2.5.29.25","cRLDistributionPoints");se("2.5.29.26","issuingDistributionPoint");se("2.5.29.27","deltaCRLIndicator");se("2.5.29.28","issuingDistributionPoint");se("2.5.29.29","certificateIssuer");se("2.5.29.30","nameConstraints");w("2.5.29.31","cRLDistributionPoints");w("2.5.29.32","certificatePolicies");se("2.5.29.33","policyMappings");se("2.5.29.34","policyConstraints");w("2.5.29.35","authorityKeyIdentifier");se("2.5.29.36","policyConstraints");w("2.5.29.37","extKeyUsage");se("2.5.29.46","freshestCRL");se("2.5.29.54","inhibitAnyPolicy");w("1.3.6.1.4.1.11129.2.4.2","timestampList");w("1.3.6.1.5.5.7.1.1","authorityInfoAccess");w("1.3.6.1.5.5.7.3.1","serverAuth");w("1.3.6.1.5.5.7.3.2","clientAuth");w("1.3.6.1.5.5.7.3.3","codeSigning");w("1.3.6.1.5.5.7.3.4","emailProtection");w("1.3.6.1.5.5.7.3.8","timeStamping")});var ut=K((fd,ii)=>{var de=$();ne();wt();var P=ii.exports=de.asn1=de.asn1||{};P.Class={UNIVERSAL:0,APPLICATION:64,CONTEXT_SPECIFIC:128,PRIVATE:192};P.Type={NONE:0,BOOLEAN:1,INTEGER:2,BITSTRING:3,OCTETSTRING:4,NULL:5,OID:6,ODESC:7,EXTERNAL:8,REAL:9,ENUMERATED:10,EMBEDDED:11,UTF8:12,ROID:13,SEQUENCE:16,SET:17,PRINTABLESTRING:19,IA5STRING:22,UTCTIME:23,GENERALIZEDTIME:24,BMPSTRING:30};P.maxDepth=256;P.create=function(e,t,a,r,n){if(de.util.isArray(r)){for(var s=[],i=0;i<r.length;++i)r[i]!==void 0&&s.push(r[i]);r=s}var o={tagClass:e,type:t,constructed:a,composed:a||de.util.isArray(r),value:r};return n&&"bitStringContents"in n&&(o.bitStringContents=n.bitStringContents,o.original=P.copy(o)),o};P.copy=function(e,t){var a;if(de.util.isArray(e)){a=[];for(var r=0;r<e.length;++r)a.push(P.copy(e[r],t));return a}return typeof e=="string"?e:(a={tagClass:e.tagClass,type:e.type,constructed:e.constructed,composed:e.composed,value:P.copy(e.value,t)},t&&!t.excludeBitStringContents&&(a.bitStringContents=e.bitStringContents),a)};P.equals=function(e,t,a){if(de.util.isArray(e)){if(!de.util.isArray(t)||e.length!==t.length)return!1;for(var r=0;r<e.length;++r)if(!P.equals(e[r],t[r]))return!1;return!0}if(typeof e!=typeof t)return!1;if(typeof e=="string")return e===t;var n=e.tagClass===t.tagClass&&e.type===t.type&&e.constructed===t.constructed&&e.composed===t.composed&&P.equals(e.value,t.value);return a&&a.includeBitStringContents&&(n=n&&e.bitStringContents===t.bitStringContents),n};P.getBerValueLength=function(e){var t=e.getByte();if(t!==128){var a,r=t&128;return r?a=e.getInt((t&127)<<3):a=t,a}};function Cr(e,t,a){if(a>t){var r=new Error("Too few bytes to parse DER.");throw r.available=e.length(),r.remaining=t,r.requested=a,r}}var C0=function(e,t){var a=e.getByte();if(t--,a!==128){var r,n=a&128;if(!n)r=a;else{var s=a&127;Cr(e,t,s),r=e.getInt(s<<3)}if(r<0)throw new Error("Negative length: "+r);return r}};P.fromDer=function(e,t){t===void 0&&(t={strict:!0,parseAllBytes:!0,decodeBitStrings:!0}),typeof t=="boolean"&&(t={strict:t,parseAllBytes:!0,decodeBitStrings:!0}),"strict"in t||(t.strict=!0),"parseAllBytes"in t||(t.parseAllBytes=!0),"decodeBitStrings"in t||(t.decodeBitStrings=!0),"maxDepth"in t||(t.maxDepth=P.maxDepth),typeof e=="string"&&(e=de.util.createBuffer(e));var a=e.length(),r=Gr(e,e.length(),0,t);if(t.parseAllBytes&&e.length()!==0){var n=new Error("Unparsed DER bytes remain after ASN.1 parsing.");throw n.byteCount=a,n.remaining=e.length(),n}return r};function Gr(e,t,a,r){if(a>=r.maxDepth)throw new Error("ASN.1 parsing error: Max depth exceeded.");var n;Cr(e,t,2);var s=e.getByte();t--;var i=s&192,o=s&31;n=e.length();var u=C0(e,t);if(t-=n-e.length(),u!==void 0&&u>t){if(r.strict){var l=new Error("Too few bytes to read ASN.1 value.");throw l.available=e.length(),l.remaining=t,l.requested=u,l}u=t}var f,c,y=(s&32)===32;if(y)if(f=[],u===void 0)for(;;){if(Cr(e,t,2),e.bytes(2)==="\0\0"){e.getBytes(2),t-=2;break}n=e.length(),f.push(Gr(e,t,a+1,r)),t-=n-e.length()}else for(;u>0;)n=e.length(),f.push(Gr(e,u,a+1,r)),t-=n-e.length(),u-=n-e.length();if(f===void 0&&i===P.Class.UNIVERSAL&&o===P.Type.BITSTRING&&(c=e.bytes(u)),f===void 0&&r.decodeBitStrings&&i===P.Class.UNIVERSAL&&o===P.Type.BITSTRING&&u>1){var g=e.read,v=t,x=0;if(o===P.Type.BITSTRING&&(Cr(e,t,1),x=e.getByte(),t--),x===0)try{n=e.length();var S={strict:!0,decodeBitStrings:!0},I=Gr(e,t,a+1,S),B=n-e.length();t-=B,o==P.Type.BITSTRING&&B++;var b=I.tagClass;B===u&&(b===P.Class.UNIVERSAL||b===P.Class.CONTEXT_SPECIFIC)&&(f=[I])}catch{}f===void 0&&(e.read=g,t=v)}if(f===void 0){if(u===void 0){if(r.strict)throw new Error("Non-constructed ASN.1 object of indefinite length.");u=t}if(o===P.Type.BMPSTRING)for(f="";u>0;u-=2)Cr(e,t,2),f+=String.fromCharCode(e.getInt16()),t-=2;else f=e.getBytes(u),t-=u}var U=c===void 0?null:{bitStringContents:c};return P.create(i,o,y,f,U)}P.toDer=function(e){var t=de.util.createBuffer(),a=e.tagClass|e.type,r=de.util.createBuffer(),n=!1;if("bitStringContents"in e&&(n=!0,e.original&&(n=P.equals(e,e.original))),n)r.putBytes(e.bitStringContents);else if(e.composed){e.constructed?a|=32:r.putByte(0);for(var s=0;s<e.value.length;++s)e.value[s]!==void 0&&r.putBuffer(P.toDer(e.value[s]))}else if(e.type===P.Type.BMPSTRING)for(var s=0;s<e.value.length;++s)r.putInt16(e.value.charCodeAt(s));else e.type===P.Type.INTEGER&&e.value.length>1&&(e.value.charCodeAt(0)===0&&(e.value.charCodeAt(1)&128)===0||e.value.charCodeAt(0)===255&&(e.value.charCodeAt(1)&128)===128)?r.putBytes(e.value.substr(1)):r.putBytes(e.value);if(t.putByte(a),r.length()<=127)t.putByte(r.length()&127);else{var i=r.length(),o="";do o+=String.fromCharCode(i&255),i=i>>>8;while(i>0);t.putByte(o.length|128);for(var s=o.length-1;s>=0;--s)t.putByte(o.charCodeAt(s))}return t.putBuffer(r),t};P.oidToDer=function(e){var t=e.split("."),a=de.util.createBuffer();a.putByte(40*parseInt(t[0],10)+parseInt(t[1],10));for(var r,n,s,i,o=2;o<t.length;++o){if(r=!0,n=[],s=parseInt(t[o],10),s>4294967295)throw new Error("OID value too large; max is 32-bits.");do i=s&127,s=s>>>7,r||(i|=128),n.push(i),r=!1;while(s>0);for(var u=n.length-1;u>=0;--u)a.putByte(n[u])}return a};P.derToOid=function(e){var t;typeof e=="string"&&(e=de.util.createBuffer(e));var a=e.getByte();t=Math.floor(a/40)+"."+a%40;for(var r=0;e.length()>0;){if(r>70368744177663)throw new Error("OID value too large; max is 53-bits.");a=e.getByte(),r=r*128,a&128?r+=a&127:(t+="."+(r+a),r=0)}return t};P.utcTimeToDate=function(e){var t=new Date,a=parseInt(e.substr(0,2),10);a=a>=50?1900+a:2e3+a;var r=parseInt(e.substr(2,2),10)-1,n=parseInt(e.substr(4,2),10),s=parseInt(e.substr(6,2),10),i=parseInt(e.substr(8,2),10),o=0;if(e.length>11){var u=e.charAt(10),l=10;u!=="+"&&u!=="-"&&(o=parseInt(e.substr(10,2),10),l+=2)}if(t.setUTCFullYear(a,r,n),t.setUTCHours(s,i,o,0),l&&(u=e.charAt(l),u==="+"||u==="-")){var f=parseInt(e.substr(l+1,2),10),c=parseInt(e.substr(l+4,2),10),y=f*60+c;y*=6e4,u==="+"?t.setTime(+t-y):t.setTime(+t+y)}return t};P.generalizedTimeToDate=function(e){var t=new Date,a=parseInt(e.substr(0,4),10),r=parseInt(e.substr(4,2),10)-1,n=parseInt(e.substr(6,2),10),s=parseInt(e.substr(8,2),10),i=parseInt(e.substr(10,2),10),o=parseInt(e.substr(12,2),10),u=0,l=0,f=!1;e.charAt(e.length-1)==="Z"&&(f=!0);var c=e.length-5,y=e.charAt(c);if(y==="+"||y==="-"){var g=parseInt(e.substr(c+1,2),10),v=parseInt(e.substr(c+4,2),10);l=g*60+v,l*=6e4,y==="+"&&(l*=-1),f=!0}return e.charAt(14)==="."&&(u=parseFloat(e.substr(14),10)*1e3),f?(t.setUTCFullYear(a,r,n),t.setUTCHours(s,i,o,u),t.setTime(+t+l)):(t.setFullYear(a,r,n),t.setHours(s,i,o,u)),t};P.dateToUtcTime=function(e){if(typeof e=="string")return e;var t="",a=[];a.push((""+e.getUTCFullYear()).substr(2)),a.push(""+(e.getUTCMonth()+1)),a.push(""+e.getUTCDate()),a.push(""+e.getUTCHours()),a.push(""+e.getUTCMinutes()),a.push(""+e.getUTCSeconds());for(var r=0;r<a.length;++r)a[r].length<2&&(t+="0"),t+=a[r];return t+="Z",t};P.dateToGeneralizedTime=function(e){if(typeof e=="string")return e;var t="",a=[];a.push(""+e.getUTCFullYear()),a.push(""+(e.getUTCMonth()+1)),a.push(""+e.getUTCDate()),a.push(""+e.getUTCHours()),a.push(""+e.getUTCMinutes()),a.push(""+e.getUTCSeconds());for(var r=0;r<a.length;++r)a[r].length<2&&(t+="0"),t+=a[r];return t+="Z",t};P.integerToDer=function(e){var t=de.util.createBuffer();if(e>=-128&&e<128)return t.putSignedInt(e,8);if(e>=-32768&&e<32768)return t.putSignedInt(e,16);if(e>=-8388608&&e<8388608)return t.putSignedInt(e,24);if(e>=-2147483648&&e<2147483648)return t.putSignedInt(e,32);var a=new Error("Integer too large; max is 32-bits.");throw a.integer=e,a};P.derToInteger=function(e){typeof e=="string"&&(e=de.util.createBuffer(e));var t=e.length()*8;if(t>32)throw new Error("Integer too large; max is 32-bits.");return e.getSignedInt(t)};P.validate=function(e,t,a,r){var n=!1;if((e.tagClass===t.tagClass||typeof t.tagClass>"u")&&(e.type===t.type||typeof t.type>"u"))if(e.constructed===t.constructed||typeof t.constructed>"u"){if(n=!0,t.value&&de.util.isArray(t.value))for(var s=0,i=0;n&&i<t.value.length;++i){var o=t.value[i];n=!!o.optional;var u=e.value[s];if(!u){o.optional||(n=!1,r&&r.push("["+t.name+'] Missing required element. Expected tag class "'+o.tagClass+'", type "'+o.type+'"'));continue}var l=typeof o.tagClass<"u"&&typeof o.type<"u";if(l&&(u.tagClass!==o.tagClass||u.type!==o.type))if(o.optional){n=!0;continue}else{n=!1,r&&r.push("["+t.name+"] Tag mismatch. Expected ("+o.tagClass+","+o.type+"), got ("+u.tagClass+","+u.type+")");break}var f=P.validate(u,o,a,r);if(f)++s,n=!0;else if(o.optional)n=!0;else{n=!1;break}}if(n&&a&&(t.capture&&(a[t.capture]=e.value),t.captureAsn1&&(a[t.captureAsn1]=e),t.captureBitStringContents&&"bitStringContents"in e&&(a[t.captureBitStringContents]=e.bitStringContents),t.captureBitStringValue&&"bitStringContents"in e)){var c;if(e.bitStringContents.length<2)a[t.captureBitStringValue]="";else{var y=e.bitStringContents.charCodeAt(0);if(y!==0)throw new Error("captureBitStringValue only supported for zero unused bits");a[t.captureBitStringValue]=e.bitStringContents.slice(1)}}}else r&&r.push("["+t.name+'] Expected constructed "'+t.constructed+'", got "'+e.constructed+'"');else r&&(e.tagClass!==t.tagClass&&r.push("["+t.name+'] Expected tag class "'+t.tagClass+'", got "'+e.tagClass+'"'),e.type!==t.type&&r.push("["+t.name+'] Expected type "'+t.type+'", got "'+e.type+'"'));return n};var ni=/[^\\u0000-\\u00ff]/;P.prettyPrint=function(e,t,a){var r="";t=t||0,a=a||2,t>0&&(r+=` +`);for(var n="",s=0;s<t*a;++s)n+=" ";switch(r+=n+"Tag: ",e.tagClass){case P.Class.UNIVERSAL:r+="Universal:";break;case P.Class.APPLICATION:r+="Application:";break;case P.Class.CONTEXT_SPECIFIC:r+="Context-Specific:";break;case P.Class.PRIVATE:r+="Private:";break}if(e.tagClass===P.Class.UNIVERSAL)switch(r+=e.type,e.type){case P.Type.NONE:r+=" (None)";break;case P.Type.BOOLEAN:r+=" (Boolean)";break;case P.Type.INTEGER:r+=" (Integer)";break;case P.Type.BITSTRING:r+=" (Bit string)";break;case P.Type.OCTETSTRING:r+=" (Octet string)";break;case P.Type.NULL:r+=" (Null)";break;case P.Type.OID:r+=" (Object Identifier)";break;case P.Type.ODESC:r+=" (Object Descriptor)";break;case P.Type.EXTERNAL:r+=" (External or Instance of)";break;case P.Type.REAL:r+=" (Real)";break;case P.Type.ENUMERATED:r+=" (Enumerated)";break;case P.Type.EMBEDDED:r+=" (Embedded PDV)";break;case P.Type.UTF8:r+=" (UTF8)";break;case P.Type.ROID:r+=" (Relative Object Identifier)";break;case P.Type.SEQUENCE:r+=" (Sequence)";break;case P.Type.SET:r+=" (Set)";break;case P.Type.PRINTABLESTRING:r+=" (Printable String)";break;case P.Type.IA5String:r+=" (IA5String (ASCII))";break;case P.Type.UTCTIME:r+=" (UTC time)";break;case P.Type.GENERALIZEDTIME:r+=" (Generalized time)";break;case P.Type.BMPSTRING:r+=" (BMP String)";break}else r+=e.type;if(r+=` +`,r+=n+"Constructed: "+e.constructed+` +`,e.composed){for(var i=0,o="",s=0;s<e.value.length;++s)e.value[s]!==void 0&&(i+=1,o+=P.prettyPrint(e.value[s],t+1,a),s+1<e.value.length&&(o+=","));r+=n+"Sub values: "+i+o}else{if(r+=n+"Value: ",e.type===P.Type.OID){var u=P.derToOid(e.value);r+=u,de.pki&&de.pki.oids&&u in de.pki.oids&&(r+=" ("+de.pki.oids[u]+") ")}if(e.type===P.Type.INTEGER)try{r+=P.derToInteger(e.value)}catch{r+="0x"+de.util.bytesToHex(e.value)}else if(e.type===P.Type.BITSTRING){if(e.value.length>1?r+="0x"+de.util.bytesToHex(e.value.slice(1)):r+="(none)",e.value.length>0){var l=e.value.charCodeAt(0);l==1?r+=" (1 unused bit shown)":l>1&&(r+=" ("+l+" unused bits shown)")}}else if(e.type===P.Type.OCTETSTRING)ni.test(e.value)||(r+="("+e.value+") "),r+="0x"+de.util.bytesToHex(e.value);else if(e.type===P.Type.UTF8)try{r+=de.util.decodeUtf8(e.value)}catch(f){if(f.message==="URI malformed")r+="0x"+de.util.bytesToHex(e.value)+" (malformed UTF8)";else throw f}else e.type===P.Type.PRINTABLESTRING||e.type===P.Type.IA5String?r+=e.value:ni.test(e.value)?r+="0x"+de.util.bytesToHex(e.value):e.value.length===0?r+="[null]":r+=e.value}return r}});var ft=K((cd,si)=>{var zr=$();si.exports=zr.md=zr.md||{};zr.md.algorithms=zr.md.algorithms||{}});var tr=K((dd,oi)=>{var Et=$();ft();ne();var E0=oi.exports=Et.hmac=Et.hmac||{};E0.create=function(){var e=null,t=null,a=null,r=null,n={};return n.start=function(s,i){if(s!==null)if(typeof s=="string")if(s=s.toLowerCase(),s in Et.md.algorithms)t=Et.md.algorithms[s].create();else throw new Error('Unknown hash algorithm "'+s+'"');else t=s;if(i===null)i=e;else{if(typeof i=="string")i=Et.util.createBuffer(i);else if(Et.util.isArray(i)){var o=i;i=Et.util.createBuffer();for(var u=0;u<o.length;++u)i.putByte(o[u])}var l=i.length();l>t.blockLength&&(t.start(),t.update(i.bytes()),i=t.digest()),a=Et.util.createBuffer(),r=Et.util.createBuffer(),l=i.length();for(var u=0;u<l;++u){var o=i.at(u);a.putByte(54^o),r.putByte(92^o)}if(l<t.blockLength)for(var o=t.blockLength-l,u=0;u<o;++u)a.putByte(54),r.putByte(92);e=i,a=a.bytes(),r=r.bytes()}t.start(),t.update(a)},n.update=function(s){t.update(s)},n.getMac=function(){var s=t.digest().bytes();return t.start(),t.update(r),t.update(s),t.digest()},n.digest=n.getMac,n}});var Yr=K((hd,ci)=>{var ct=$();ft();ne();var li=ci.exports=ct.md5=ct.md5||{};ct.md.md5=ct.md.algorithms.md5=li;li.create=function(){fi||x0();var e=null,t=ct.util.createBuffer(),a=new Array(16),r={algorithm:"md5",blockLength:64,digestLength:16,messageLength:0,fullMessageLength:null,messageLengthSize:8};return r.start=function(){r.messageLength=0,r.fullMessageLength=r.messageLength64=[];for(var n=r.messageLengthSize/4,s=0;s<n;++s)r.fullMessageLength.push(0);return t=ct.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878},r},r.start(),r.update=function(n,s){s==="utf8"&&(n=ct.util.encodeUtf8(n));var i=n.length;r.messageLength+=i,i=[i/4294967296>>>0,i>>>0];for(var o=r.fullMessageLength.length-1;o>=0;--o)r.fullMessageLength[o]+=i[1],i[1]=i[0]+(r.fullMessageLength[o]/4294967296>>>0),r.fullMessageLength[o]=r.fullMessageLength[o]>>>0,i[0]=i[1]/4294967296>>>0;return t.putBytes(n),ui(e,a,t),(t.read>2048||t.length()===0)&&t.compact(),r},r.digest=function(){var n=ct.util.createBuffer();n.putBytes(t.bytes());var s=r.fullMessageLength[r.fullMessageLength.length-1]+r.messageLengthSize,i=s&r.blockLength-1;n.putBytes(Pa.substr(0,r.blockLength-i));for(var o,u=0,l=r.fullMessageLength.length-1;l>=0;--l)o=r.fullMessageLength[l]*8+u,u=o/4294967296>>>0,n.putInt32Le(o>>>0);var f={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3};ui(f,a,n);var c=ct.util.createBuffer();return c.putInt32Le(f.h0),c.putInt32Le(f.h1),c.putInt32Le(f.h2),c.putInt32Le(f.h3),c},r};var Pa=null,Qr=null,Er=null,rr=null,fi=!1;function x0(){Pa="\x80",Pa+=ct.util.fillString("\0",64),Qr=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,1,6,11,0,5,10,15,4,9,14,3,8,13,2,7,12,5,8,11,14,1,4,7,10,13,0,3,6,9,12,15,2,0,7,14,5,12,3,10,1,8,15,6,13,4,11,2,9],Er=[7,12,17,22,7,12,17,22,7,12,17,22,7,12,17,22,5,9,14,20,5,9,14,20,5,9,14,20,5,9,14,20,4,11,16,23,4,11,16,23,4,11,16,23,4,11,16,23,6,10,15,21,6,10,15,21,6,10,15,21,6,10,15,21],rr=new Array(64);for(var e=0;e<64;++e)rr[e]=Math.floor(Math.abs(Math.sin(e+1))*4294967296);fi=!0}function ui(e,t,a){for(var r,n,s,i,o,u,l,f,c=a.length();c>=64;){for(n=e.h0,s=e.h1,i=e.h2,o=e.h3,f=0;f<16;++f)t[f]=a.getInt32Le(),u=o^s&(i^o),r=n+u+rr[f]+t[f],l=Er[f],n=o,o=i,i=s,s+=r<<l|r>>>32-l;for(;f<32;++f)u=i^o&(s^i),r=n+u+rr[f]+t[Qr[f]],l=Er[f],n=o,o=i,i=s,s+=r<<l|r>>>32-l;for(;f<48;++f)u=s^i^o,r=n+u+rr[f]+t[Qr[f]],l=Er[f],n=o,o=i,i=s,s+=r<<l|r>>>32-l;for(;f<64;++f)u=i^(s|~o),r=n+u+rr[f]+t[Qr[f]],l=Er[f],n=o,o=i,i=s,s+=r<<l|r>>>32-l;e.h0=e.h0+n|0,e.h1=e.h1+s|0,e.h2=e.h2+i|0,e.h3=e.h3+o|0,c-=64}}});var Ht=K((pd,hi)=>{var jr=$();ne();var di=hi.exports=jr.pem=jr.pem||{};di.encode=function(e,t){t=t||{};var a="-----BEGIN "+e.type+`-----\r +`,r;if(e.procType&&(r={name:"Proc-Type",values:[String(e.procType.version),e.procType.type]},a+=$r(r)),e.contentDomain&&(r={name:"Content-Domain",values:[e.contentDomain]},a+=$r(r)),e.dekInfo&&(r={name:"DEK-Info",values:[e.dekInfo.algorithm]},e.dekInfo.parameters&&r.values.push(e.dekInfo.parameters),a+=$r(r)),e.headers)for(var n=0;n<e.headers.length;++n)a+=$r(e.headers[n]);return e.procType&&(a+=`\r +`),a+=jr.util.encode64(e.body,t.maxline||64)+`\r +`,a+="-----END "+e.type+`-----\r +`,a};di.decode=function(e){for(var t=[],a=/\s*-----BEGIN ([A-Z0-9- ]+)-----\r?\n?([\x21-\x7e\s]+?(?:\r?\n\r?\n))?([:A-Za-z0-9+\/=\s]+?)-----END \1-----/g,r=/([\x21-\x7e]+):\s*([\x21-\x7e\s^:]+)/,n=/\r?\n/,s;s=a.exec(e),!!s;){var i=s[1];i==="NEW CERTIFICATE REQUEST"&&(i="CERTIFICATE REQUEST");var o={type:i,procType:null,contentDomain:null,dekInfo:null,headers:[],body:jr.util.decode64(s[3])};if(t.push(o),!!s[2]){for(var u=s[2].split(n),l=0;s&&l<u.length;){for(var f=u[l].replace(/\s+$/,""),c=l+1;c<u.length;++c){var y=u[c];if(!/\s/.test(y[0]))break;f+=y,l=c}if(s=f.match(r),s){for(var g={name:s[1],values:[]},v=s[2].split(","),x=0;x<v.length;++x)g.values.push(S0(v[x]));if(o.procType)if(!o.contentDomain&&g.name==="Content-Domain")o.contentDomain=v[0]||"";else if(!o.dekInfo&&g.name==="DEK-Info"){if(g.values.length===0)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must have at least one subfield.');o.dekInfo={algorithm:v[0],parameters:v[1]||null}}else o.headers.push(g);else{if(g.name!=="Proc-Type")throw new Error('Invalid PEM formatted message. The first encapsulated header must be "Proc-Type".');if(g.values.length!==2)throw new Error('Invalid PEM formatted message. The "Proc-Type" header must have two subfields.');o.procType={version:v[0],type:v[1]}}}++l}if(o.procType==="ENCRYPTED"&&!o.dekInfo)throw new Error('Invalid PEM formatted message. The "DEK-Info" header must be present if "Proc-Type" is "ENCRYPTED".')}}if(t.length===0)throw new Error("Invalid PEM formatted message.");return t};function $r(e){for(var t=e.name+": ",a=[],r=function(u,l){return" "+l},n=0;n<e.values.length;++n)a.push(e.values[n].replace(/^(\S+\r\n)/,r));t+=a.join(",")+`\r +`;for(var s=0,i=-1,n=0;n<t.length;++n,++s)if(s>65&&i!==-1){var o=t[i];o===","?(++i,t=t.substr(0,i)+`\r + `+t.substr(i)):t=t.substr(0,i)+`\r +`+o+t.substr(i+1),s=n-i-1,i=-1,++n}else(t[n]===" "||t[n]===" "||t[n]===",")&&(i=n);return t}function S0(e){return e.replace(/^\s+/,"")}});var xr=K((yd,yi)=>{var pe=$();Kr();Ra();ne();yi.exports=pe.des=pe.des||{};pe.des.startEncrypting=function(e,t,a,r){var n=Wr({key:e,output:a,decrypt:!1,mode:r||(t===null?"ECB":"CBC")});return n.start(t),n};pe.des.createEncryptionCipher=function(e,t){return Wr({key:e,output:null,decrypt:!1,mode:t})};pe.des.startDecrypting=function(e,t,a,r){var n=Wr({key:e,output:a,decrypt:!0,mode:r||(t===null?"ECB":"CBC")});return n.start(t),n};pe.des.createDecryptionCipher=function(e,t){return Wr({key:e,output:null,decrypt:!0,mode:t})};pe.des.Algorithm=function(e,t){var a=this;a.name=e,a.mode=new t({blockSize:8,cipher:{encrypt:function(r,n){return pi(a._keys,r,n,!1)},decrypt:function(r,n){return pi(a._keys,r,n,!0)}}}),a._init=!1};pe.des.Algorithm.prototype.initialize=function(e){if(!this._init){var t=pe.util.createBuffer(e.key);if(this.name.indexOf("3DES")===0&&t.length()!==24)throw new Error("Invalid Triple-DES key size: "+t.length()*8);this._keys=R0(t),this._init=!0}};dt("DES-ECB",pe.cipher.modes.ecb);dt("DES-CBC",pe.cipher.modes.cbc);dt("DES-CFB",pe.cipher.modes.cfb);dt("DES-OFB",pe.cipher.modes.ofb);dt("DES-CTR",pe.cipher.modes.ctr);dt("3DES-ECB",pe.cipher.modes.ecb);dt("3DES-CBC",pe.cipher.modes.cbc);dt("3DES-CFB",pe.cipher.modes.cfb);dt("3DES-OFB",pe.cipher.modes.ofb);dt("3DES-CTR",pe.cipher.modes.ctr);function dt(e,t){var a=function(){return new pe.des.Algorithm(e,t)};pe.cipher.registerAlgorithm(e,a)}var T0=[16843776,0,65536,16843780,16842756,66564,4,65536,1024,16843776,16843780,1024,16778244,16842756,16777216,4,1028,16778240,16778240,66560,66560,16842752,16842752,16778244,65540,16777220,16777220,65540,0,1028,66564,16777216,65536,16843780,4,16842752,16843776,16777216,16777216,1024,16842756,65536,66560,16777220,1024,4,16778244,66564,16843780,65540,16842752,16778244,16777220,1028,66564,16843776,1028,16778240,16778240,0,65540,66560,0,16842756],I0=[-2146402272,-2147450880,32768,1081376,1048576,32,-2146435040,-2147450848,-2147483616,-2146402272,-2146402304,-2147483648,-2147450880,1048576,32,-2146435040,1081344,1048608,-2147450848,0,-2147483648,32768,1081376,-2146435072,1048608,-2147483616,0,1081344,32800,-2146402304,-2146435072,32800,0,1081376,-2146435040,1048576,-2147450848,-2146435072,-2146402304,32768,-2146435072,-2147450880,32,-2146402272,1081376,32,32768,-2147483648,32800,-2146402304,1048576,-2147483616,1048608,-2147450848,-2147483616,1048608,1081344,0,-2147450880,32800,-2147483648,-2146435040,-2146402272,1081344],A0=[520,134349312,0,134348808,134218240,0,131592,134218240,131080,134217736,134217736,131072,134349320,131080,134348800,520,134217728,8,134349312,512,131584,134348800,134348808,131592,134218248,131584,131072,134218248,8,134349320,512,134217728,134349312,134217728,131080,520,131072,134349312,134218240,0,512,131080,134349320,134218240,134217736,512,0,134348808,134218248,131072,134217728,134349320,8,131592,131584,134217736,134348800,134218248,520,134348800,131592,8,134348808,131584],B0=[8396801,8321,8321,128,8396928,8388737,8388609,8193,0,8396800,8396800,8396929,129,0,8388736,8388609,1,8192,8388608,8396801,128,8388608,8193,8320,8388737,1,8320,8388736,8192,8396928,8396929,129,8388736,8388609,8396800,8396929,129,0,0,8396800,8320,8388736,8388737,1,8396801,8321,8321,128,8396929,129,1,8192,8388609,8193,8396928,8388737,8193,8320,8388608,8396801,128,8388608,8192,8396928],b0=[256,34078976,34078720,1107296512,524288,256,1073741824,34078720,1074266368,524288,33554688,1074266368,1107296512,1107820544,524544,1073741824,33554432,1074266112,1074266112,0,1073742080,1107820800,1107820800,33554688,1107820544,1073742080,0,1107296256,34078976,33554432,1107296256,524544,524288,1107296512,256,33554432,1073741824,34078720,1107296512,1074266368,33554688,1073741824,1107820544,34078976,1074266368,256,33554432,1107820544,1107820800,524544,1107296256,1107820800,34078720,0,1074266112,1107296256,524544,33554688,1073742080,524288,0,1074266112,34078976,1073742080],_0=[536870928,541065216,16384,541081616,541065216,16,541081616,4194304,536887296,4210704,4194304,536870928,4194320,536887296,536870912,16400,0,4194320,536887312,16384,4210688,536887312,16,541065232,541065232,0,4210704,541081600,16400,4210688,541081600,536870912,536887296,16,541065232,4210688,541081616,4194304,16400,536870928,4194304,536887296,536870912,16400,536870928,541081616,4210688,541065216,4210704,541081600,0,541065232,16,16384,541065216,4210704,16384,4194320,536887312,0,541081600,536870912,4194320,536887312],N0=[2097152,69206018,67110914,0,2048,67110914,2099202,69208064,69208066,2097152,0,67108866,2,67108864,69206018,2050,67110912,2099202,2097154,67110912,67108866,69206016,69208064,2097154,69206016,2048,2050,69208066,2099200,2,67108864,2099200,67108864,2099200,2097152,67110914,67110914,69206018,69206018,2,2097154,67108864,67110912,2097152,69208064,2050,2099202,69208064,2050,67108866,69208066,69206016,2099200,0,2,69208066,0,2099202,69206016,2048,67108866,67110912,2048,2097154],w0=[268439616,4096,262144,268701760,268435456,268439616,64,268435456,262208,268697600,268701760,266240,268701696,266304,4096,64,268697600,268435520,268439552,4160,266240,262208,268697664,268701696,4160,0,0,268697664,268435520,268439552,266304,262144,266304,262144,268701696,4096,64,268697664,4096,266304,268439552,64,268435520,268697600,268697664,268435456,262144,268439616,0,268701760,262208,268435520,268697600,268439552,268439616,0,268701760,266240,266240,4160,4160,262208,268435456,268701696];function R0(e){for(var t=[0,4,536870912,536870916,65536,65540,536936448,536936452,512,516,536871424,536871428,66048,66052,536936960,536936964],a=[0,1,1048576,1048577,67108864,67108865,68157440,68157441,256,257,1048832,1048833,67109120,67109121,68157696,68157697],r=[0,8,2048,2056,16777216,16777224,16779264,16779272,0,8,2048,2056,16777216,16777224,16779264,16779272],n=[0,2097152,134217728,136314880,8192,2105344,134225920,136323072,131072,2228224,134348800,136445952,139264,2236416,134356992,136454144],s=[0,262144,16,262160,0,262144,16,262160,4096,266240,4112,266256,4096,266240,4112,266256],i=[0,1024,32,1056,0,1024,32,1056,33554432,33555456,33554464,33555488,33554432,33555456,33554464,33555488],o=[0,268435456,524288,268959744,2,268435458,524290,268959746,0,268435456,524288,268959744,2,268435458,524290,268959746],u=[0,65536,2048,67584,536870912,536936448,536872960,536938496,131072,196608,133120,198656,537001984,537067520,537004032,537069568],l=[0,262144,0,262144,2,262146,2,262146,33554432,33816576,33554432,33816576,33554434,33816578,33554434,33816578],f=[0,268435456,8,268435464,0,268435456,8,268435464,1024,268436480,1032,268436488,1024,268436480,1032,268436488],c=[0,32,0,32,1048576,1048608,1048576,1048608,8192,8224,8192,8224,1056768,1056800,1056768,1056800],y=[0,16777216,512,16777728,2097152,18874368,2097664,18874880,67108864,83886080,67109376,83886592,69206016,85983232,69206528,85983744],g=[0,4096,134217728,134221824,524288,528384,134742016,134746112,16,4112,134217744,134221840,524304,528400,134742032,134746128],v=[0,4,256,260,0,4,256,260,1,5,257,261,1,5,257,261],x=e.length()>8?3:1,S=[],I=[0,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0],B=0,b,U=0;U<x;U++){var L=e.getInt32(),R=e.getInt32();b=(L>>>4^R)&252645135,R^=b,L^=b<<4,b=(R>>>-16^L)&65535,L^=b,R^=b<<-16,b=(L>>>2^R)&858993459,R^=b,L^=b<<2,b=(R>>>-16^L)&65535,L^=b,R^=b<<-16,b=(L>>>1^R)&1431655765,R^=b,L^=b<<1,b=(R>>>8^L)&16711935,L^=b,R^=b<<8,b=(L>>>1^R)&1431655765,R^=b,L^=b<<1,b=L<<8|R>>>20&240,L=R<<24|R<<8&16711680|R>>>8&65280|R>>>24&240,R=b;for(var z=0;z<I.length;++z){I[z]?(L=L<<2|L>>>26,R=R<<2|R>>>26):(L=L<<1|L>>>27,R=R<<1|R>>>27),L&=-15,R&=-15;var G=t[L>>>28]|a[L>>>24&15]|r[L>>>20&15]|n[L>>>16&15]|s[L>>>12&15]|i[L>>>8&15]|o[L>>>4&15],j=u[R>>>28]|l[R>>>24&15]|f[R>>>20&15]|c[R>>>16&15]|y[R>>>12&15]|g[R>>>8&15]|v[R>>>4&15];b=(j>>>16^G)&65535,S[B++]=G^b,S[B++]=j^b<<16}}return S}function pi(e,t,a,r){var n=e.length===32?3:9,s;n===3?s=r?[30,-2,-2]:[0,32,2]:s=r?[94,62,-2,32,64,2,30,-2,-2]:[0,32,2,62,30,-2,64,96,2];var i,o=t[0],u=t[1];i=(o>>>4^u)&252645135,u^=i,o^=i<<4,i=(o>>>16^u)&65535,u^=i,o^=i<<16,i=(u>>>2^o)&858993459,o^=i,u^=i<<2,i=(u>>>8^o)&16711935,o^=i,u^=i<<8,i=(o>>>1^u)&1431655765,u^=i,o^=i<<1,o=o<<1|o>>>31,u=u<<1|u>>>31;for(var l=0;l<n;l+=3){for(var f=s[l+1],c=s[l+2],y=s[l];y!=f;y+=c){var g=u^e[y],v=(u>>>4|u<<28)^e[y+1];i=o,o=u,u=i^(I0[g>>>24&63]|B0[g>>>16&63]|_0[g>>>8&63]|w0[g&63]|T0[v>>>24&63]|A0[v>>>16&63]|b0[v>>>8&63]|N0[v&63])}i=o,o=u,u=i}o=o>>>1|o<<31,u=u>>>1|u<<31,i=(o>>>1^u)&1431655765,u^=i,o^=i<<1,i=(u>>>8^o)&16711935,o^=i,u^=i<<8,i=(u>>>2^o)&858993459,o^=i,u^=i<<2,i=(o>>>16^u)&65535,u^=i,o^=i<<16,i=(o>>>4^u)&252645135,u^=i,o^=i<<4,a[0]=o,a[1]=u}function Wr(e){e=e||{};var t=(e.mode||"CBC").toUpperCase(),a="DES-"+t,r;e.decrypt?r=pe.cipher.createDecipher(a,e.key):r=pe.cipher.createCipher(a,e.key);var n=r.start;return r.start=function(s,i){var o=null;i instanceof pe.util.ByteBuffer&&(o=i,i={}),i=i||{},i.output=o,i.iv=s,n.call(r,i)},r}});var Xr=K((vd,vi)=>{var ze=$();tr();ft();ne();var L0=ze.pkcs5=ze.pkcs5||{},xt;ze.util.isNodejs&&!ze.options.usePureJavaScript&&(xt=require("crypto"));vi.exports=ze.pbkdf2=L0.pbkdf2=function(e,t,a,r,n,s){if(typeof n=="function"&&(s=n,n=null),ze.util.isNodejs&&!ze.options.usePureJavaScript&&xt.pbkdf2&&(n===null||typeof n!="object")&&(xt.pbkdf2Sync.length>4||!n||n==="sha1"))return typeof n!="string"&&(n="sha1"),e=Buffer.from(e,"binary"),t=Buffer.from(t,"binary"),s?xt.pbkdf2Sync.length===4?xt.pbkdf2(e,t,a,r,function(b,U){if(b)return s(b);s(null,U.toString("binary"))}):xt.pbkdf2(e,t,a,r,n,function(b,U){if(b)return s(b);s(null,U.toString("binary"))}):xt.pbkdf2Sync.length===4?xt.pbkdf2Sync(e,t,a,r).toString("binary"):xt.pbkdf2Sync(e,t,a,r,n).toString("binary");if((typeof n>"u"||n===null)&&(n="sha1"),typeof n=="string"){if(!(n in ze.md.algorithms))throw new Error("Unknown hash algorithm: "+n);n=ze.md[n].create()}var i=n.digestLength;if(r>4294967295*i){var o=new Error("Derived key is too long.");if(s)return s(o);throw o}var u=Math.ceil(r/i),l=r-(u-1)*i,f=ze.hmac.create();f.start(n,e);var c="",y,g,v;if(!s){for(var x=1;x<=u;++x){f.start(null,null),f.update(t),f.update(ze.util.int32ToBytes(x)),y=v=f.digest().getBytes();for(var S=2;S<=a;++S)f.start(null,null),f.update(v),g=f.digest().getBytes(),y=ze.util.xorBytes(y,g,i),v=g;c+=x<u?y:y.substr(0,l)}return c}var x=1,S;function I(){if(x>u)return s(null,c);f.start(null,null),f.update(t),f.update(ze.util.int32ToBytes(x)),y=v=f.digest().getBytes(),S=2,B()}function B(){if(S<=a)return f.start(null,null),f.update(v),g=f.digest().getBytes(),y=ze.util.xorBytes(y,g,i),v=g,++S,ze.util.setImmediate(B);c+=x<u?y:y.substr(0,l),++x,I()}I()}});var Va=K((gd,xi)=>{var ht=$();ft();ne();var mi=xi.exports=ht.sha256=ht.sha256||{};ht.md.sha256=ht.md.algorithms.sha256=mi;mi.create=function(){Ci||D0();var e=null,t=ht.util.createBuffer(),a=new Array(64),r={algorithm:"sha256",blockLength:64,digestLength:32,messageLength:0,fullMessageLength:null,messageLengthSize:8};return r.start=function(){r.messageLength=0,r.fullMessageLength=r.messageLength64=[];for(var n=r.messageLengthSize/4,s=0;s<n;++s)r.fullMessageLength.push(0);return t=ht.util.createBuffer(),e={h0:1779033703,h1:3144134277,h2:1013904242,h3:2773480762,h4:1359893119,h5:2600822924,h6:528734635,h7:1541459225},r},r.start(),r.update=function(n,s){s==="utf8"&&(n=ht.util.encodeUtf8(n));var i=n.length;r.messageLength+=i,i=[i/4294967296>>>0,i>>>0];for(var o=r.fullMessageLength.length-1;o>=0;--o)r.fullMessageLength[o]+=i[1],i[1]=i[0]+(r.fullMessageLength[o]/4294967296>>>0),r.fullMessageLength[o]=r.fullMessageLength[o]>>>0,i[0]=i[1]/4294967296>>>0;return t.putBytes(n),gi(e,a,t),(t.read>2048||t.length()===0)&&t.compact(),r},r.digest=function(){var n=ht.util.createBuffer();n.putBytes(t.bytes());var s=r.fullMessageLength[r.fullMessageLength.length-1]+r.messageLengthSize,i=s&r.blockLength-1;n.putBytes(Oa.substr(0,r.blockLength-i));for(var o,u,l=r.fullMessageLength[0]*8,f=0;f<r.fullMessageLength.length-1;++f)o=r.fullMessageLength[f+1]*8,u=o/4294967296>>>0,l+=u,n.putInt32(l>>>0),l=o>>>0;n.putInt32(l);var c={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4,h5:e.h5,h6:e.h6,h7:e.h7};gi(c,a,n);var y=ht.util.createBuffer();return y.putInt32(c.h0),y.putInt32(c.h1),y.putInt32(c.h2),y.putInt32(c.h3),y.putInt32(c.h4),y.putInt32(c.h5),y.putInt32(c.h6),y.putInt32(c.h7),y},r};var Oa=null,Ci=!1,Ei=null;function D0(){Oa="\x80",Oa+=ht.util.fillString("\0",64),Ei=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298],Ci=!0}function gi(e,t,a){for(var r,n,s,i,o,u,l,f,c,y,g,v,x,S,I,B=a.length();B>=64;){for(l=0;l<16;++l)t[l]=a.getInt32();for(;l<64;++l)r=t[l-2],r=(r>>>17|r<<15)^(r>>>19|r<<13)^r>>>10,n=t[l-15],n=(n>>>7|n<<25)^(n>>>18|n<<14)^n>>>3,t[l]=r+t[l-7]+n+t[l-16]|0;for(f=e.h0,c=e.h1,y=e.h2,g=e.h3,v=e.h4,x=e.h5,S=e.h6,I=e.h7,l=0;l<64;++l)i=(v>>>6|v<<26)^(v>>>11|v<<21)^(v>>>25|v<<7),o=S^v&(x^S),s=(f>>>2|f<<30)^(f>>>13|f<<19)^(f>>>22|f<<10),u=f&c|y&(f^c),r=I+i+o+Ei[l]+t[l],n=s+u,I=S,S=x,x=v,v=g+r>>>0,g=y,y=c,c=f,f=r+n>>>0;e.h0=e.h0+f|0,e.h1=e.h1+c|0,e.h2=e.h2+y|0,e.h3=e.h3+g|0,e.h4=e.h4+v|0,e.h5=e.h5+x|0,e.h6=e.h6+S|0,e.h7=e.h7+I|0,B-=64}}});var Fa=K((md,Si)=>{var pt=$();ne();var Zr=null;pt.util.isNodejs&&!pt.options.usePureJavaScript&&!process.versions["node-webkit"]&&(Zr=require("crypto"));var k0=Si.exports=pt.prng=pt.prng||{};k0.create=function(e){for(var t={plugin:e,key:null,seed:null,time:null,reseeds:0,generated:0,keyBytes:""},a=e.md,r=new Array(32),n=0;n<32;++n)r[n]=a.create();t.pools=r,t.pool=0,t.generate=function(l,f){if(!f)return t.generateSync(l);var c=t.plugin.cipher,y=t.plugin.increment,g=t.plugin.formatKey,v=t.plugin.formatSeed,x=pt.util.createBuffer();t.key=null,S();function S(I){if(I)return f(I);if(x.length()>=l)return f(null,x.getBytes(l));if(t.generated>1048575&&(t.key=null),t.key===null)return pt.util.nextTick(function(){s(S)});var B=c(t.key,t.seed);t.generated+=B.length,x.putBytes(B),t.key=g(c(t.key,y(t.seed))),t.seed=v(c(t.key,t.seed)),pt.util.setImmediate(S)}},t.generateSync=function(l){var f=t.plugin.cipher,c=t.plugin.increment,y=t.plugin.formatKey,g=t.plugin.formatSeed;t.key=null;for(var v=pt.util.createBuffer();v.length()<l;){t.generated>1048575&&(t.key=null),t.key===null&&i();var x=f(t.key,t.seed);t.generated+=x.length,v.putBytes(x),t.key=y(f(t.key,c(t.seed))),t.seed=g(f(t.key,t.seed))}return v.getBytes(l)};function s(l){if(t.pools[0].messageLength>=32)return o(),l();var f=32-t.pools[0].messageLength<<5;t.seedFile(f,function(c,y){if(c)return l(c);t.collect(y),o(),l()})}function i(){if(t.pools[0].messageLength>=32)return o();var l=32-t.pools[0].messageLength<<5;t.collect(t.seedFileSync(l)),o()}function o(){t.reseeds=t.reseeds===4294967295?0:t.reseeds+1;var l=t.plugin.md.create();l.update(t.keyBytes);for(var f=1,c=0;c<32;++c)t.reseeds%f===0&&(l.update(t.pools[c].digest().getBytes()),t.pools[c].start()),f=f<<1;t.keyBytes=l.digest().getBytes(),l.start(),l.update(t.keyBytes);var y=l.digest().getBytes();t.key=t.plugin.formatKey(t.keyBytes),t.seed=t.plugin.formatSeed(y),t.generated=0}function u(l){var f=null,c=pt.util.globalScope,y=c.crypto||c.msCrypto;y&&y.getRandomValues&&(f=function(L){return y.getRandomValues(L)});var g=pt.util.createBuffer();if(f)for(;g.length()<l;){var v=Math.max(1,Math.min(l-g.length(),65536)/4),x=new Uint32Array(Math.floor(v));try{f(x);for(var S=0;S<x.length;++S)g.putInt32(x[S])}catch(L){if(!(typeof QuotaExceededError<"u"&&L instanceof QuotaExceededError))throw L}}if(g.length()<l)for(var I,B,b,U=Math.floor(Math.random()*65536);g.length()<l;){B=16807*(U&65535),I=16807*(U>>16),B+=(I&32767)<<16,B+=I>>15,B=(B&2147483647)+(B>>31),U=B&4294967295;for(var S=0;S<3;++S)b=U>>>(S<<3),b^=Math.floor(Math.random()*256),g.putByte(b&255)}return g.getBytes(l)}return Zr?(t.seedFile=function(l,f){Zr.randomBytes(l,function(c,y){if(c)return f(c);f(null,y.toString())})},t.seedFileSync=function(l){return Zr.randomBytes(l).toString()}):(t.seedFile=function(l,f){try{f(null,u(l))}catch(c){f(c)}},t.seedFileSync=u),t.collect=function(l){for(var f=l.length,c=0;c<f;++c)t.pools[t.pool].update(l.substr(c,1)),t.pool=t.pool===31?0:t.pool+1},t.collectInt=function(l,f){for(var c="",y=0;y<f;y+=8)c+=String.fromCharCode(l>>y&255);t.collect(c)},t.registerWorker=function(l){if(l===self)t.seedFile=function(c,y){function g(v){var x=v.data;x.forge&&x.forge.prng&&(self.removeEventListener("message",g),y(x.forge.prng.err,x.forge.prng.bytes))}self.addEventListener("message",g),self.postMessage({forge:{prng:{needed:c}}})};else{var f=function(c){var y=c.data;y.forge&&y.forge.prng&&t.seedFile(y.forge.prng.needed,function(g,v){l.postMessage({forge:{prng:{err:g,bytes:v}}})})};l.addEventListener("message",f)}},t}});var tt=K((Cd,Ka)=>{var Ie=$();Nt();Va();Fa();ne();(function(){if(Ie.random&&Ie.random.getBytes){Ka.exports=Ie.random;return}(function(e){var t={},a=new Array(4),r=Ie.util.createBuffer();t.formatKey=function(c){var y=Ie.util.createBuffer(c);return c=new Array(4),c[0]=y.getInt32(),c[1]=y.getInt32(),c[2]=y.getInt32(),c[3]=y.getInt32(),Ie.aes._expandKey(c,!1)},t.formatSeed=function(c){var y=Ie.util.createBuffer(c);return c=new Array(4),c[0]=y.getInt32(),c[1]=y.getInt32(),c[2]=y.getInt32(),c[3]=y.getInt32(),c},t.cipher=function(c,y){return Ie.aes._updateBlock(c,y,a,!1),r.putInt32(a[0]),r.putInt32(a[1]),r.putInt32(a[2]),r.putInt32(a[3]),r.getBytes()},t.increment=function(c){return++c[3],c},t.md=Ie.md.sha256;function n(){var c=Ie.prng.create(t);return c.getBytes=function(y,g){return c.generate(y,g)},c.getBytesSync=function(y){return c.generate(y)},c}var s=n(),i=null,o=Ie.util.globalScope,u=o.crypto||o.msCrypto;if(u&&u.getRandomValues&&(i=function(c){return u.getRandomValues(c)}),Ie.options.usePureJavaScript||!Ie.util.isNodejs&&!i){if(typeof window>"u"||window.document,s.collectInt(+new Date,32),typeof navigator<"u"){var l="";for(var f in navigator)try{typeof navigator[f]=="string"&&(l+=navigator[f])}catch{}s.collect(l),l=null}e&&(e().mousemove(function(c){s.collectInt(c.clientX,16),s.collectInt(c.clientY,16)}),e().keypress(function(c){s.collectInt(c.charCode,8)}))}if(!Ie.random)Ie.random=s;else for(var f in s)Ie.random[f]=s[f];Ie.random.createInstance=n,Ka.exports=Ie.random})(typeof jQuery<"u"?jQuery:null)})()});var Ma=K((Ed,Ai)=>{var $e=$();ne();var qa=[217,120,249,196,25,221,181,237,40,233,253,121,74,160,216,157,198,126,55,131,43,118,83,142,98,76,100,136,68,139,251,162,23,154,89,245,135,179,79,19,97,69,109,141,9,129,125,50,189,143,64,235,134,183,123,11,240,149,33,34,92,107,78,130,84,214,101,147,206,96,178,28,115,86,192,20,167,140,241,220,18,117,202,31,59,190,228,209,66,61,212,48,163,60,182,38,111,191,14,218,70,105,7,87,39,242,29,155,188,148,67,3,248,17,199,246,144,239,62,231,6,195,213,47,200,102,30,215,8,232,234,222,128,82,238,247,132,170,114,172,53,77,106,42,150,26,210,113,90,21,73,116,75,159,208,94,4,24,164,236,194,224,65,110,15,81,203,204,36,145,175,80,161,244,112,57,153,124,58,133,35,184,180,122,252,2,54,91,37,85,151,49,45,93,250,152,227,138,146,174,5,223,41,16,103,108,186,201,211,0,230,207,225,158,168,44,99,22,1,63,88,226,137,169,13,56,52,27,171,51,255,176,187,72,12,95,185,177,205,46,197,243,219,71,229,165,156,119,10,166,32,104,254,127,193,173],Ti=[1,2,3,5],U0=function(e,t){return e<<t&65535|(e&65535)>>16-t},P0=function(e,t){return(e&65535)>>t|e<<16-t&65535};Ai.exports=$e.rc2=$e.rc2||{};$e.rc2.expandKey=function(e,t){typeof e=="string"&&(e=$e.util.createBuffer(e)),t=t||128;var a=e,r=e.length(),n=t,s=Math.ceil(n/8),i=255>>(n&7),o;for(o=r;o<128;o++)a.putByte(qa[a.at(o-1)+a.at(o-r)&255]);for(a.setAt(128-s,qa[a.at(128-s)&i]),o=127-s;o>=0;o--)a.setAt(o,qa[a.at(o+1)^a.at(o+s)]);return a};var Ii=function(e,t,a){var r=!1,n=null,s=null,i=null,o,u,l,f,c=[];for(e=$e.rc2.expandKey(e,t),l=0;l<64;l++)c.push(e.getInt16Le());a?(o=function(v){for(l=0;l<4;l++)v[l]+=c[f]+(v[(l+3)%4]&v[(l+2)%4])+(~v[(l+3)%4]&v[(l+1)%4]),v[l]=U0(v[l],Ti[l]),f++},u=function(v){for(l=0;l<4;l++)v[l]+=c[v[(l+3)%4]&63]}):(o=function(v){for(l=3;l>=0;l--)v[l]=P0(v[l],Ti[l]),v[l]-=c[f]+(v[(l+3)%4]&v[(l+2)%4])+(~v[(l+3)%4]&v[(l+1)%4]),f--},u=function(v){for(l=3;l>=0;l--)v[l]-=c[v[(l+3)%4]&63]});var y=function(v){var x=[];for(l=0;l<4;l++){var S=n.getInt16Le();i!==null&&(a?S^=i.getInt16Le():i.putInt16Le(S)),x.push(S&65535)}f=a?0:63;for(var I=0;I<v.length;I++)for(var B=0;B<v[I][0];B++)v[I][1](x);for(l=0;l<4;l++)i!==null&&(a?i.putInt16Le(x[l]):x[l]^=i.getInt16Le()),s.putInt16Le(x[l])},g=null;return g={start:function(v,x){v&&typeof v=="string"&&(v=$e.util.createBuffer(v)),r=!1,n=$e.util.createBuffer(),s=x||new $e.util.createBuffer,i=v,g.output=s},update:function(v){for(r||n.putBuffer(v);n.length()>=8;)y([[5,o],[1,u],[6,o],[1,u],[5,o]])},finish:function(v){var x=!0;if(a)if(v)x=v(8,n,!a);else{var S=n.length()===8?8:8-n.length();n.fillWithByte(S,S)}if(x&&(r=!0,g.update()),!a&&(x=n.length()===0,x))if(v)x=v(8,s,!a);else{var I=s.length(),B=s.at(I-1);B>I?x=!1:s.truncate(B)}return x}},g};$e.rc2.startEncrypting=function(e,t,a){var r=$e.rc2.createEncryptionCipher(e,128);return r.start(t,a),r};$e.rc2.createEncryptionCipher=function(e,t){return Ii(e,t,!0)};$e.rc2.startDecrypting=function(e,t,a){var r=$e.rc2.createDecryptionCipher(e,128);return r.start(t,a),r};$e.rc2.createDecryptionCipher=function(e,t){return Ii(e,t,!1)}});var Tr=K((xd,Di)=>{var Ha=$();Di.exports=Ha.jsbn=Ha.jsbn||{};var St,O0=0xdeadbeefcafe,Bi=(O0&16777215)==15715070;function _(e,t,a){this.data=[],e!=null&&(typeof e=="number"?this.fromNumber(e,t,a):t==null&&typeof e!="string"?this.fromString(e,256):this.fromString(e,t))}Ha.jsbn.BigInteger=_;function te(){return new _(null)}function V0(e,t,a,r,n,s){for(;--s>=0;){var i=t*this.data[e++]+a.data[r]+n;n=Math.floor(i/67108864),a.data[r++]=i&67108863}return n}function F0(e,t,a,r,n,s){for(var i=t&32767,o=t>>15;--s>=0;){var u=this.data[e]&32767,l=this.data[e++]>>15,f=o*u+l*i;u=i*u+((f&32767)<<15)+a.data[r]+(n&1073741823),n=(u>>>30)+(f>>>15)+o*l+(n>>>30),a.data[r++]=u&1073741823}return n}function bi(e,t,a,r,n,s){for(var i=t&16383,o=t>>14;--s>=0;){var u=this.data[e]&16383,l=this.data[e++]>>14,f=o*u+l*i;u=i*u+((f&16383)<<14)+a.data[r]+n,n=(u>>28)+(f>>14)+o*l,a.data[r++]=u&268435455}return n}typeof navigator>"u"?(_.prototype.am=bi,St=28):Bi&&navigator.appName=="Microsoft Internet Explorer"?(_.prototype.am=F0,St=30):Bi&&navigator.appName!="Netscape"?(_.prototype.am=V0,St=26):(_.prototype.am=bi,St=28);_.prototype.DB=St;_.prototype.DM=(1<<St)-1;_.prototype.DV=1<<St;var Ga=52;_.prototype.FV=Math.pow(2,Ga);_.prototype.F1=Ga-St;_.prototype.F2=2*St-Ga;var K0="0123456789abcdefghijklmnopqrstuvwxyz",Jr=new Array,ar,rt;ar=48;for(rt=0;rt<=9;++rt)Jr[ar++]=rt;ar=97;for(rt=10;rt<36;++rt)Jr[ar++]=rt;ar=65;for(rt=10;rt<36;++rt)Jr[ar++]=rt;function _i(e){return K0.charAt(e)}function Ni(e,t){var a=Jr[e.charCodeAt(t)];return a??-1}function q0(e){for(var t=this.t-1;t>=0;--t)e.data[t]=this.data[t];e.t=this.t,e.s=this.s}function M0(e){this.t=1,this.s=e<0?-1:0,e>0?this.data[0]=e:e<-1?this.data[0]=e+this.DV:this.t=0}function Rt(e){var t=te();return t.fromInt(e),t}function H0(e,t){var a;if(t==16)a=4;else if(t==8)a=3;else if(t==256)a=8;else if(t==2)a=1;else if(t==32)a=5;else if(t==4)a=2;else{this.fromRadix(e,t);return}this.t=0,this.s=0;for(var r=e.length,n=!1,s=0;--r>=0;){var i=a==8?e[r]&255:Ni(e,r);if(i<0){e.charAt(r)=="-"&&(n=!0);continue}n=!1,s==0?this.data[this.t++]=i:s+a>this.DB?(this.data[this.t-1]|=(i&(1<<this.DB-s)-1)<<s,this.data[this.t++]=i>>this.DB-s):this.data[this.t-1]|=i<<s,s+=a,s>=this.DB&&(s-=this.DB)}a==8&&(e[0]&128)!=0&&(this.s=-1,s>0&&(this.data[this.t-1]|=(1<<this.DB-s)-1<<s)),this.clamp(),n&&_.ZERO.subTo(this,this)}function G0(){for(var e=this.s&this.DM;this.t>0&&this.data[this.t-1]==e;)--this.t}function z0(e){if(this.s<0)return"-"+this.negate().toString(e);var t;if(e==16)t=4;else if(e==8)t=3;else if(e==2)t=1;else if(e==32)t=5;else if(e==4)t=2;else return this.toRadix(e);var a=(1<<t)-1,r,n=!1,s="",i=this.t,o=this.DB-i*this.DB%t;if(i-- >0)for(o<this.DB&&(r=this.data[i]>>o)>0&&(n=!0,s=_i(r));i>=0;)o<t?(r=(this.data[i]&(1<<o)-1)<<t-o,r|=this.data[--i]>>(o+=this.DB-t)):(r=this.data[i]>>(o-=t)&a,o<=0&&(o+=this.DB,--i)),r>0&&(n=!0),n&&(s+=_i(r));return n?s:"0"}function Q0(){var e=te();return _.ZERO.subTo(this,e),e}function Y0(){return this.s<0?this.negate():this}function $0(e){var t=this.s-e.s;if(t!=0)return t;var a=this.t;if(t=a-e.t,t!=0)return this.s<0?-t:t;for(;--a>=0;)if((t=this.data[a]-e.data[a])!=0)return t;return 0}function ea(e){var t=1,a;return(a=e>>>16)!=0&&(e=a,t+=16),(a=e>>8)!=0&&(e=a,t+=8),(a=e>>4)!=0&&(e=a,t+=4),(a=e>>2)!=0&&(e=a,t+=2),(a=e>>1)!=0&&(e=a,t+=1),t}function j0(){return this.t<=0?0:this.DB*(this.t-1)+ea(this.data[this.t-1]^this.s&this.DM)}function W0(e,t){var a;for(a=this.t-1;a>=0;--a)t.data[a+e]=this.data[a];for(a=e-1;a>=0;--a)t.data[a]=0;t.t=this.t+e,t.s=this.s}function X0(e,t){for(var a=e;a<this.t;++a)t.data[a-e]=this.data[a];t.t=Math.max(this.t-e,0),t.s=this.s}function Z0(e,t){var a=e%this.DB,r=this.DB-a,n=(1<<r)-1,s=Math.floor(e/this.DB),i=this.s<<a&this.DM,o;for(o=this.t-1;o>=0;--o)t.data[o+s+1]=this.data[o]>>r|i,i=(this.data[o]&n)<<a;for(o=s-1;o>=0;--o)t.data[o]=0;t.data[s]=i,t.t=this.t+s+1,t.s=this.s,t.clamp()}function J0(e,t){t.s=this.s;var a=Math.floor(e/this.DB);if(a>=this.t){t.t=0;return}var r=e%this.DB,n=this.DB-r,s=(1<<r)-1;t.data[0]=this.data[a]>>r;for(var i=a+1;i<this.t;++i)t.data[i-a-1]|=(this.data[i]&s)<<n,t.data[i-a]=this.data[i]>>r;r>0&&(t.data[this.t-a-1]|=(this.s&s)<<n),t.t=this.t-a,t.clamp()}function eu(e,t){for(var a=0,r=0,n=Math.min(e.t,this.t);a<n;)r+=this.data[a]-e.data[a],t.data[a++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r-=e.s;a<this.t;)r+=this.data[a],t.data[a++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;a<e.t;)r-=e.data[a],t.data[a++]=r&this.DM,r>>=this.DB;r-=e.s}t.s=r<0?-1:0,r<-1?t.data[a++]=this.DV+r:r>0&&(t.data[a++]=r),t.t=a,t.clamp()}function tu(e,t){var a=this.abs(),r=e.abs(),n=a.t;for(t.t=n+r.t;--n>=0;)t.data[n]=0;for(n=0;n<r.t;++n)t.data[n+a.t]=a.am(0,r.data[n],t,n,0,a.t);t.s=0,t.clamp(),this.s!=e.s&&_.ZERO.subTo(t,t)}function ru(e){for(var t=this.abs(),a=e.t=2*t.t;--a>=0;)e.data[a]=0;for(a=0;a<t.t-1;++a){var r=t.am(a,t.data[a],e,2*a,0,1);(e.data[a+t.t]+=t.am(a+1,2*t.data[a],e,2*a+1,r,t.t-a-1))>=t.DV&&(e.data[a+t.t]-=t.DV,e.data[a+t.t+1]=1)}e.t>0&&(e.data[e.t-1]+=t.am(a,t.data[a],e,2*a,0,1)),e.s=0,e.clamp()}function au(e,t,a){var r=e.abs();if(!(r.t<=0)){var n=this.abs();if(n.t<r.t){t?.fromInt(0),a!=null&&this.copyTo(a);return}a==null&&(a=te());var s=te(),i=this.s,o=e.s,u=this.DB-ea(r.data[r.t-1]);u>0?(r.lShiftTo(u,s),n.lShiftTo(u,a)):(r.copyTo(s),n.copyTo(a));var l=s.t,f=s.data[l-1];if(f!=0){var c=f*(1<<this.F1)+(l>1?s.data[l-2]>>this.F2:0),y=this.FV/c,g=(1<<this.F1)/c,v=1<<this.F2,x=a.t,S=x-l,I=t??te();for(s.dlShiftTo(S,I),a.compareTo(I)>=0&&(a.data[a.t++]=1,a.subTo(I,a)),_.ONE.dlShiftTo(l,I),I.subTo(s,s);s.t<l;)s.data[s.t++]=0;for(;--S>=0;){var B=a.data[--x]==f?this.DM:Math.floor(a.data[x]*y+(a.data[x-1]+v)*g);if((a.data[x]+=s.am(0,B,a,S,0,l))<B)for(s.dlShiftTo(S,I),a.subTo(I,a);a.data[x]<--B;)a.subTo(I,a)}t!=null&&(a.drShiftTo(l,t),i!=o&&_.ZERO.subTo(t,t)),a.t=l,a.clamp(),u>0&&a.rShiftTo(u,a),i<0&&_.ZERO.subTo(a,a)}}}function nu(e){var t=te();return this.abs().divRemTo(e,null,t),this.s<0&&t.compareTo(_.ZERO)>0&&e.subTo(t,t),t}function Gt(e){this.m=e}function iu(e){return e.s<0||e.compareTo(this.m)>=0?e.mod(this.m):e}function su(e){return e}function ou(e){e.divRemTo(this.m,null,e)}function uu(e,t,a){e.multiplyTo(t,a),this.reduce(a)}function lu(e,t){e.squareTo(t),this.reduce(t)}Gt.prototype.convert=iu;Gt.prototype.revert=su;Gt.prototype.reduce=ou;Gt.prototype.mulTo=uu;Gt.prototype.sqrTo=lu;function fu(){if(this.t<1)return 0;var e=this.data[0];if((e&1)==0)return 0;var t=e&3;return t=t*(2-(e&15)*t)&15,t=t*(2-(e&255)*t)&255,t=t*(2-((e&65535)*t&65535))&65535,t=t*(2-e*t%this.DV)%this.DV,t>0?this.DV-t:-t}function zt(e){this.m=e,this.mp=e.invDigit(),this.mpl=this.mp&32767,this.mph=this.mp>>15,this.um=(1<<e.DB-15)-1,this.mt2=2*e.t}function cu(e){var t=te();return e.abs().dlShiftTo(this.m.t,t),t.divRemTo(this.m,null,t),e.s<0&&t.compareTo(_.ZERO)>0&&this.m.subTo(t,t),t}function du(e){var t=te();return e.copyTo(t),this.reduce(t),t}function hu(e){for(;e.t<=this.mt2;)e.data[e.t++]=0;for(var t=0;t<this.m.t;++t){var a=e.data[t]&32767,r=a*this.mpl+((a*this.mph+(e.data[t]>>15)*this.mpl&this.um)<<15)&e.DM;for(a=t+this.m.t,e.data[a]+=this.m.am(0,r,e,t,0,this.m.t);e.data[a]>=e.DV;)e.data[a]-=e.DV,e.data[++a]++}e.clamp(),e.drShiftTo(this.m.t,e),e.compareTo(this.m)>=0&&e.subTo(this.m,e)}function pu(e,t){e.squareTo(t),this.reduce(t)}function yu(e,t,a){e.multiplyTo(t,a),this.reduce(a)}zt.prototype.convert=cu;zt.prototype.revert=du;zt.prototype.reduce=hu;zt.prototype.mulTo=yu;zt.prototype.sqrTo=pu;function vu(){return(this.t>0?this.data[0]&1:this.s)==0}function gu(e,t){if(e>4294967295||e<1)return _.ONE;var a=te(),r=te(),n=t.convert(this),s=ea(e)-1;for(n.copyTo(a);--s>=0;)if(t.sqrTo(a,r),(e&1<<s)>0)t.mulTo(r,n,a);else{var i=a;a=r,r=i}return t.revert(a)}function mu(e,t){var a;return e<256||t.isEven()?a=new Gt(t):a=new zt(t),this.exp(e,a)}_.prototype.copyTo=q0;_.prototype.fromInt=M0;_.prototype.fromString=H0;_.prototype.clamp=G0;_.prototype.dlShiftTo=W0;_.prototype.drShiftTo=X0;_.prototype.lShiftTo=Z0;_.prototype.rShiftTo=J0;_.prototype.subTo=eu;_.prototype.multiplyTo=tu;_.prototype.squareTo=ru;_.prototype.divRemTo=au;_.prototype.invDigit=fu;_.prototype.isEven=vu;_.prototype.exp=gu;_.prototype.toString=z0;_.prototype.negate=Q0;_.prototype.abs=Y0;_.prototype.compareTo=$0;_.prototype.bitLength=j0;_.prototype.mod=nu;_.prototype.modPowInt=mu;_.ZERO=Rt(0);_.ONE=Rt(1);function Cu(){var e=te();return this.copyTo(e),e}function Eu(){if(this.s<0){if(this.t==1)return this.data[0]-this.DV;if(this.t==0)return-1}else{if(this.t==1)return this.data[0];if(this.t==0)return 0}return(this.data[1]&(1<<32-this.DB)-1)<<this.DB|this.data[0]}function xu(){return this.t==0?this.s:this.data[0]<<24>>24}function Su(){return this.t==0?this.s:this.data[0]<<16>>16}function Tu(e){return Math.floor(Math.LN2*this.DB/Math.log(e))}function Iu(){return this.s<0?-1:this.t<=0||this.t==1&&this.data[0]<=0?0:1}function Au(e){if(e==null&&(e=10),this.signum()==0||e<2||e>36)return"0";var t=this.chunkSize(e),a=Math.pow(e,t),r=Rt(a),n=te(),s=te(),i="";for(this.divRemTo(r,n,s);n.signum()>0;)i=(a+s.intValue()).toString(e).substr(1)+i,n.divRemTo(r,n,s);return s.intValue().toString(e)+i}function Bu(e,t){this.fromInt(0),t==null&&(t=10);for(var a=this.chunkSize(t),r=Math.pow(t,a),n=!1,s=0,i=0,o=0;o<e.length;++o){var u=Ni(e,o);if(u<0){e.charAt(o)=="-"&&this.signum()==0&&(n=!0);continue}i=t*i+u,++s>=a&&(this.dMultiply(r),this.dAddOffset(i,0),s=0,i=0)}s>0&&(this.dMultiply(Math.pow(t,s)),this.dAddOffset(i,0)),n&&_.ZERO.subTo(this,this)}function bu(e,t,a){if(typeof t=="number")if(e<2)this.fromInt(1);else for(this.fromNumber(e,a),this.testBit(e-1)||this.bitwiseTo(_.ONE.shiftLeft(e-1),za,this),this.isEven()&&this.dAddOffset(1,0);!this.isProbablePrime(t);)this.dAddOffset(2,0),this.bitLength()>e&&this.subTo(_.ONE.shiftLeft(e-1),this);else{var r=new Array,n=e&7;r.length=(e>>3)+1,t.nextBytes(r),n>0?r[0]&=(1<<n)-1:r[0]=0,this.fromString(r,256)}}function _u(){var e=this.t,t=new Array;t[0]=this.s;var a=this.DB-e*this.DB%8,r,n=0;if(e-- >0)for(a<this.DB&&(r=this.data[e]>>a)!=(this.s&this.DM)>>a&&(t[n++]=r|this.s<<this.DB-a);e>=0;)a<8?(r=(this.data[e]&(1<<a)-1)<<8-a,r|=this.data[--e]>>(a+=this.DB-8)):(r=this.data[e]>>(a-=8)&255,a<=0&&(a+=this.DB,--e)),(r&128)!=0&&(r|=-256),n==0&&(this.s&128)!=(r&128)&&++n,(n>0||r!=this.s)&&(t[n++]=r);return t}function Nu(e){return this.compareTo(e)==0}function wu(e){return this.compareTo(e)<0?this:e}function Ru(e){return this.compareTo(e)>0?this:e}function Lu(e,t,a){var r,n,s=Math.min(e.t,this.t);for(r=0;r<s;++r)a.data[r]=t(this.data[r],e.data[r]);if(e.t<this.t){for(n=e.s&this.DM,r=s;r<this.t;++r)a.data[r]=t(this.data[r],n);a.t=this.t}else{for(n=this.s&this.DM,r=s;r<e.t;++r)a.data[r]=t(n,e.data[r]);a.t=e.t}a.s=t(this.s,e.s),a.clamp()}function Du(e,t){return e&t}function ku(e){var t=te();return this.bitwiseTo(e,Du,t),t}function za(e,t){return e|t}function Uu(e){var t=te();return this.bitwiseTo(e,za,t),t}function wi(e,t){return e^t}function Pu(e){var t=te();return this.bitwiseTo(e,wi,t),t}function Ri(e,t){return e&~t}function Ou(e){var t=te();return this.bitwiseTo(e,Ri,t),t}function Vu(){for(var e=te(),t=0;t<this.t;++t)e.data[t]=this.DM&~this.data[t];return e.t=this.t,e.s=~this.s,e}function Fu(e){var t=te();return e<0?this.rShiftTo(-e,t):this.lShiftTo(e,t),t}function Ku(e){var t=te();return e<0?this.lShiftTo(-e,t):this.rShiftTo(e,t),t}function qu(e){if(e==0)return-1;var t=0;return(e&65535)==0&&(e>>=16,t+=16),(e&255)==0&&(e>>=8,t+=8),(e&15)==0&&(e>>=4,t+=4),(e&3)==0&&(e>>=2,t+=2),(e&1)==0&&++t,t}function Mu(){for(var e=0;e<this.t;++e)if(this.data[e]!=0)return e*this.DB+qu(this.data[e]);return this.s<0?this.t*this.DB:-1}function Hu(e){for(var t=0;e!=0;)e&=e-1,++t;return t}function Gu(){for(var e=0,t=this.s&this.DM,a=0;a<this.t;++a)e+=Hu(this.data[a]^t);return e}function zu(e){var t=Math.floor(e/this.DB);return t>=this.t?this.s!=0:(this.data[t]&1<<e%this.DB)!=0}function Qu(e,t){var a=_.ONE.shiftLeft(e);return this.bitwiseTo(a,t,a),a}function Yu(e){return this.changeBit(e,za)}function $u(e){return this.changeBit(e,Ri)}function ju(e){return this.changeBit(e,wi)}function Wu(e,t){for(var a=0,r=0,n=Math.min(e.t,this.t);a<n;)r+=this.data[a]+e.data[a],t.data[a++]=r&this.DM,r>>=this.DB;if(e.t<this.t){for(r+=e.s;a<this.t;)r+=this.data[a],t.data[a++]=r&this.DM,r>>=this.DB;r+=this.s}else{for(r+=this.s;a<e.t;)r+=e.data[a],t.data[a++]=r&this.DM,r>>=this.DB;r+=e.s}t.s=r<0?-1:0,r>0?t.data[a++]=r:r<-1&&(t.data[a++]=this.DV+r),t.t=a,t.clamp()}function Xu(e){var t=te();return this.addTo(e,t),t}function Zu(e){var t=te();return this.subTo(e,t),t}function Ju(e){var t=te();return this.multiplyTo(e,t),t}function el(){var e=te();return this.squareTo(e),e}function tl(e){var t=te();return this.divRemTo(e,t,null),t}function rl(e){var t=te();return this.divRemTo(e,null,t),t}function al(e){var t=te(),a=te();return this.divRemTo(e,t,a),new Array(t,a)}function nl(e){this.data[this.t]=this.am(0,e-1,this,0,0,this.t),++this.t,this.clamp()}function il(e,t){if(e!=0){for(;this.t<=t;)this.data[this.t++]=0;for(this.data[t]+=e;this.data[t]>=this.DV;)this.data[t]-=this.DV,++t>=this.t&&(this.data[this.t++]=0),++this.data[t]}}function Sr(){}function Li(e){return e}function sl(e,t,a){e.multiplyTo(t,a)}function ol(e,t){e.squareTo(t)}Sr.prototype.convert=Li;Sr.prototype.revert=Li;Sr.prototype.mulTo=sl;Sr.prototype.sqrTo=ol;function ul(e){return this.exp(e,new Sr)}function ll(e,t,a){var r=Math.min(this.t+e.t,t);for(a.s=0,a.t=r;r>0;)a.data[--r]=0;var n;for(n=a.t-this.t;r<n;++r)a.data[r+this.t]=this.am(0,e.data[r],a,r,0,this.t);for(n=Math.min(e.t,t);r<n;++r)this.am(0,e.data[r],a,r,0,t-r);a.clamp()}function fl(e,t,a){--t;var r=a.t=this.t+e.t-t;for(a.s=0;--r>=0;)a.data[r]=0;for(r=Math.max(t-this.t,0);r<e.t;++r)a.data[this.t+r-t]=this.am(t-r,e.data[r],a,0,0,this.t+r-t);a.clamp(),a.drShiftTo(1,a)}function nr(e){this.r2=te(),this.q3=te(),_.ONE.dlShiftTo(2*e.t,this.r2),this.mu=this.r2.divide(e),this.m=e}function cl(e){if(e.s<0||e.t>2*this.m.t)return e.mod(this.m);if(e.compareTo(this.m)<0)return e;var t=te();return e.copyTo(t),this.reduce(t),t}function dl(e){return e}function hl(e){for(e.drShiftTo(this.m.t-1,this.r2),e.t>this.m.t+1&&(e.t=this.m.t+1,e.clamp()),this.mu.multiplyUpperTo(this.r2,this.m.t+1,this.q3),this.m.multiplyLowerTo(this.q3,this.m.t+1,this.r2);e.compareTo(this.r2)<0;)e.dAddOffset(1,this.m.t+1);for(e.subTo(this.r2,e);e.compareTo(this.m)>=0;)e.subTo(this.m,e)}function pl(e,t){e.squareTo(t),this.reduce(t)}function yl(e,t,a){e.multiplyTo(t,a),this.reduce(a)}nr.prototype.convert=cl;nr.prototype.revert=dl;nr.prototype.reduce=hl;nr.prototype.mulTo=yl;nr.prototype.sqrTo=pl;function vl(e,t){var a=e.bitLength(),r,n=Rt(1),s;if(a<=0)return n;a<18?r=1:a<48?r=3:a<144?r=4:a<768?r=5:r=6,a<8?s=new Gt(t):t.isEven()?s=new nr(t):s=new zt(t);var i=new Array,o=3,u=r-1,l=(1<<r)-1;if(i[1]=s.convert(this),r>1){var f=te();for(s.sqrTo(i[1],f);o<=l;)i[o]=te(),s.mulTo(f,i[o-2],i[o]),o+=2}var c=e.t-1,y,g=!0,v=te(),x;for(a=ea(e.data[c])-1;c>=0;){for(a>=u?y=e.data[c]>>a-u&l:(y=(e.data[c]&(1<<a+1)-1)<<u-a,c>0&&(y|=e.data[c-1]>>this.DB+a-u)),o=r;(y&1)==0;)y>>=1,--o;if((a-=o)<0&&(a+=this.DB,--c),g)i[y].copyTo(n),g=!1;else{for(;o>1;)s.sqrTo(n,v),s.sqrTo(v,n),o-=2;o>0?s.sqrTo(n,v):(x=n,n=v,v=x),s.mulTo(v,i[y],n)}for(;c>=0&&(e.data[c]&1<<a)==0;)s.sqrTo(n,v),x=n,n=v,v=x,--a<0&&(a=this.DB-1,--c)}return s.revert(n)}function gl(e){var t=this.s<0?this.negate():this.clone(),a=e.s<0?e.negate():e.clone();if(t.compareTo(a)<0){var r=t;t=a,a=r}var n=t.getLowestSetBit(),s=a.getLowestSetBit();if(s<0)return t;for(n<s&&(s=n),s>0&&(t.rShiftTo(s,t),a.rShiftTo(s,a));t.signum()>0;)(n=t.getLowestSetBit())>0&&t.rShiftTo(n,t),(n=a.getLowestSetBit())>0&&a.rShiftTo(n,a),t.compareTo(a)>=0?(t.subTo(a,t),t.rShiftTo(1,t)):(a.subTo(t,a),a.rShiftTo(1,a));return s>0&&a.lShiftTo(s,a),a}function ml(e){if(e<=0)return 0;var t=this.DV%e,a=this.s<0?e-1:0;if(this.t>0)if(t==0)a=this.data[0]%e;else for(var r=this.t-1;r>=0;--r)a=(t*a+this.data[r])%e;return a}function Cl(e){if(this.signum()==0)return _.ZERO;var t=e.isEven();if(this.isEven()&&t||e.signum()==0)return _.ZERO;for(var a=e.clone(),r=this.clone(),n=Rt(1),s=Rt(0),i=Rt(0),o=Rt(1);a.signum()!=0;){for(;a.isEven();)a.rShiftTo(1,a),t?((!n.isEven()||!s.isEven())&&(n.addTo(this,n),s.subTo(e,s)),n.rShiftTo(1,n)):s.isEven()||s.subTo(e,s),s.rShiftTo(1,s);for(;r.isEven();)r.rShiftTo(1,r),t?((!i.isEven()||!o.isEven())&&(i.addTo(this,i),o.subTo(e,o)),i.rShiftTo(1,i)):o.isEven()||o.subTo(e,o),o.rShiftTo(1,o);a.compareTo(r)>=0?(a.subTo(r,a),t&&n.subTo(i,n),s.subTo(o,s)):(r.subTo(a,r),t&&i.subTo(n,i),o.subTo(s,o))}if(r.compareTo(_.ONE)!=0)return _.ZERO;if(o.compareTo(e)>=0)return o.subtract(e);if(o.signum()<0)o.addTo(e,o);else return o;return o.signum()<0?o.add(e):o}var lt=[2,3,5,7,11,13,17,19,23,29,31,37,41,43,47,53,59,61,67,71,73,79,83,89,97,101,103,107,109,113,127,131,137,139,149,151,157,163,167,173,179,181,191,193,197,199,211,223,227,229,233,239,241,251,257,263,269,271,277,281,283,293,307,311,313,317,331,337,347,349,353,359,367,373,379,383,389,397,401,409,419,421,431,433,439,443,449,457,461,463,467,479,487,491,499,503,509,521,523,541,547,557,563,569,571,577,587,593,599,601,607,613,617,619,631,641,643,647,653,659,661,673,677,683,691,701,709,719,727,733,739,743,751,757,761,769,773,787,797,809,811,821,823,827,829,839,853,857,859,863,877,881,883,887,907,911,919,929,937,941,947,953,967,971,977,983,991,997],El=(1<<26)/lt[lt.length-1];function xl(e){var t,a=this.abs();if(a.t==1&&a.data[0]<=lt[lt.length-1]){for(t=0;t<lt.length;++t)if(a.data[0]==lt[t])return!0;return!1}if(a.isEven())return!1;for(t=1;t<lt.length;){for(var r=lt[t],n=t+1;n<lt.length&&r<El;)r*=lt[n++];for(r=a.modInt(r);t<n;)if(r%lt[t++]==0)return!1}return a.millerRabin(e)}function Sl(e){var t=this.subtract(_.ONE),a=t.getLowestSetBit();if(a<=0)return!1;for(var r=t.shiftRight(a),n=Tl(),s,i=0;i<e;++i){do s=new _(this.bitLength(),n);while(s.compareTo(_.ONE)<=0||s.compareTo(t)>=0);var o=s.modPow(r,this);if(o.compareTo(_.ONE)!=0&&o.compareTo(t)!=0){for(var u=1;u++<a&&o.compareTo(t)!=0;)if(o=o.modPowInt(2,this),o.compareTo(_.ONE)==0)return!1;if(o.compareTo(t)!=0)return!1}}return!0}function Tl(){return{nextBytes:function(e){for(var t=0;t<e.length;++t)e[t]=Math.floor(Math.random()*256)}}}_.prototype.chunkSize=Tu;_.prototype.toRadix=Au;_.prototype.fromRadix=Bu;_.prototype.fromNumber=bu;_.prototype.bitwiseTo=Lu;_.prototype.changeBit=Qu;_.prototype.addTo=Wu;_.prototype.dMultiply=nl;_.prototype.dAddOffset=il;_.prototype.multiplyLowerTo=ll;_.prototype.multiplyUpperTo=fl;_.prototype.modInt=ml;_.prototype.millerRabin=Sl;_.prototype.clone=Cu;_.prototype.intValue=Eu;_.prototype.byteValue=xu;_.prototype.shortValue=Su;_.prototype.signum=Iu;_.prototype.toByteArray=_u;_.prototype.equals=Nu;_.prototype.min=wu;_.prototype.max=Ru;_.prototype.and=ku;_.prototype.or=Uu;_.prototype.xor=Pu;_.prototype.andNot=Ou;_.prototype.not=Vu;_.prototype.shiftLeft=Fu;_.prototype.shiftRight=Ku;_.prototype.getLowestSetBit=Mu;_.prototype.bitCount=Gu;_.prototype.testBit=zu;_.prototype.setBit=Yu;_.prototype.clearBit=$u;_.prototype.flipBit=ju;_.prototype.add=Xu;_.prototype.subtract=Zu;_.prototype.multiply=Ju;_.prototype.divide=tl;_.prototype.remainder=rl;_.prototype.divideAndRemainder=al;_.prototype.modPow=vl;_.prototype.modInverse=Cl;_.prototype.pow=ul;_.prototype.gcd=gl;_.prototype.isProbablePrime=xl;_.prototype.square=el});var ir=K((Sd,Oi)=>{var yt=$();ft();ne();var Ui=Oi.exports=yt.sha1=yt.sha1||{};yt.md.sha1=yt.md.algorithms.sha1=Ui;Ui.create=function(){Pi||Il();var e=null,t=yt.util.createBuffer(),a=new Array(80),r={algorithm:"sha1",blockLength:64,digestLength:20,messageLength:0,fullMessageLength:null,messageLengthSize:8};return r.start=function(){r.messageLength=0,r.fullMessageLength=r.messageLength64=[];for(var n=r.messageLengthSize/4,s=0;s<n;++s)r.fullMessageLength.push(0);return t=yt.util.createBuffer(),e={h0:1732584193,h1:4023233417,h2:2562383102,h3:271733878,h4:3285377520},r},r.start(),r.update=function(n,s){s==="utf8"&&(n=yt.util.encodeUtf8(n));var i=n.length;r.messageLength+=i,i=[i/4294967296>>>0,i>>>0];for(var o=r.fullMessageLength.length-1;o>=0;--o)r.fullMessageLength[o]+=i[1],i[1]=i[0]+(r.fullMessageLength[o]/4294967296>>>0),r.fullMessageLength[o]=r.fullMessageLength[o]>>>0,i[0]=i[1]/4294967296>>>0;return t.putBytes(n),ki(e,a,t),(t.read>2048||t.length()===0)&&t.compact(),r},r.digest=function(){var n=yt.util.createBuffer();n.putBytes(t.bytes());var s=r.fullMessageLength[r.fullMessageLength.length-1]+r.messageLengthSize,i=s&r.blockLength-1;n.putBytes(Qa.substr(0,r.blockLength-i));for(var o,u,l=r.fullMessageLength[0]*8,f=0;f<r.fullMessageLength.length-1;++f)o=r.fullMessageLength[f+1]*8,u=o/4294967296>>>0,l+=u,n.putInt32(l>>>0),l=o>>>0;n.putInt32(l);var c={h0:e.h0,h1:e.h1,h2:e.h2,h3:e.h3,h4:e.h4};ki(c,a,n);var y=yt.util.createBuffer();return y.putInt32(c.h0),y.putInt32(c.h1),y.putInt32(c.h2),y.putInt32(c.h3),y.putInt32(c.h4),y},r};var Qa=null,Pi=!1;function Il(){Qa="\x80",Qa+=yt.util.fillString("\0",64),Pi=!0}function ki(e,t,a){for(var r,n,s,i,o,u,l,f,c=a.length();c>=64;){for(n=e.h0,s=e.h1,i=e.h2,o=e.h3,u=e.h4,f=0;f<16;++f)r=a.getInt32(),t[f]=r,l=o^s&(i^o),r=(n<<5|n>>>27)+l+u+1518500249+r,u=o,o=i,i=(s<<30|s>>>2)>>>0,s=n,n=r;for(;f<20;++f)r=t[f-3]^t[f-8]^t[f-14]^t[f-16],r=r<<1|r>>>31,t[f]=r,l=o^s&(i^o),r=(n<<5|n>>>27)+l+u+1518500249+r,u=o,o=i,i=(s<<30|s>>>2)>>>0,s=n,n=r;for(;f<32;++f)r=t[f-3]^t[f-8]^t[f-14]^t[f-16],r=r<<1|r>>>31,t[f]=r,l=s^i^o,r=(n<<5|n>>>27)+l+u+1859775393+r,u=o,o=i,i=(s<<30|s>>>2)>>>0,s=n,n=r;for(;f<40;++f)r=t[f-6]^t[f-16]^t[f-28]^t[f-32],r=r<<2|r>>>30,t[f]=r,l=s^i^o,r=(n<<5|n>>>27)+l+u+1859775393+r,u=o,o=i,i=(s<<30|s>>>2)>>>0,s=n,n=r;for(;f<60;++f)r=t[f-6]^t[f-16]^t[f-28]^t[f-32],r=r<<2|r>>>30,t[f]=r,l=s&i|o&(s^i),r=(n<<5|n>>>27)+l+u+2400959708+r,u=o,o=i,i=(s<<30|s>>>2)>>>0,s=n,n=r;for(;f<80;++f)r=t[f-6]^t[f-16]^t[f-28]^t[f-32],r=r<<2|r>>>30,t[f]=r,l=s^i^o,r=(n<<5|n>>>27)+l+u+3395469782+r,u=o,o=i,i=(s<<30|s>>>2)>>>0,s=n,n=r;e.h0=e.h0+n|0,e.h1=e.h1+s|0,e.h2=e.h2+i|0,e.h3=e.h3+o|0,e.h4=e.h4+u|0,c-=64}}});var Ya=K((Td,Fi)=>{var vt=$();ne();tt();ir();var Vi=Fi.exports=vt.pkcs1=vt.pkcs1||{};Vi.encode_rsa_oaep=function(e,t,a){var r,n,s,i;typeof a=="string"?(r=a,n=arguments[3]||void 0,s=arguments[4]||void 0):a&&(r=a.label||void 0,n=a.seed||void 0,s=a.md||void 0,a.mgf1&&a.mgf1.md&&(i=a.mgf1.md)),s?s.start():s=vt.md.sha1.create(),i||(i=s);var o=Math.ceil(e.n.bitLength()/8),u=o-2*s.digestLength-2;if(t.length>u){var l=new Error("RSAES-OAEP input message length is too long.");throw l.length=t.length,l.maxLength=u,l}r||(r=""),s.update(r,"raw");for(var f=s.digest(),c="",y=u-t.length,g=0;g<y;g++)c+="\0";var v=f.getBytes()+c+""+t;if(!n)n=vt.random.getBytes(s.digestLength);else if(n.length!==s.digestLength){var l=new Error("Invalid RSAES-OAEP seed. The seed length must match the digest length.");throw l.seedLength=n.length,l.digestLength=s.digestLength,l}var x=ta(n,o-s.digestLength-1,i),S=vt.util.xorBytes(v,x,v.length),I=ta(S,s.digestLength,i),B=vt.util.xorBytes(n,I,n.length);return"\0"+B+S};Vi.decode_rsa_oaep=function(e,t,a){var r,n,s;typeof a=="string"?(r=a,n=arguments[3]||void 0):a&&(r=a.label||void 0,n=a.md||void 0,a.mgf1&&a.mgf1.md&&(s=a.mgf1.md));var i=Math.ceil(e.n.bitLength()/8);if(t.length!==i){var S=new Error("RSAES-OAEP encoded message length is invalid.");throw S.length=t.length,S.expectedLength=i,S}if(n===void 0?n=vt.md.sha1.create():n.start(),s||(s=n),i<2*n.digestLength+2)throw new Error("RSAES-OAEP key is too short for the hash function.");r||(r=""),n.update(r,"raw");for(var o=n.digest().getBytes(),u=t.charAt(0),l=t.substring(1,n.digestLength+1),f=t.substring(1+n.digestLength),c=ta(f,n.digestLength,s),y=vt.util.xorBytes(l,c,l.length),g=ta(y,i-n.digestLength-1,s),v=vt.util.xorBytes(f,g,f.length),x=v.substring(0,n.digestLength),S=u!=="\0",I=0;I<n.digestLength;++I)S|=o.charAt(I)!==x.charAt(I);for(var B=1,b=n.digestLength,U=n.digestLength;U<v.length;U++){var L=v.charCodeAt(U),R=L&1^1,z=B?65534:0;S|=L&z,B=B&R,b+=B}if(S||v.charCodeAt(b)!==1)throw new Error("Invalid RSAES-OAEP padding.");return v.substring(b+1)};function ta(e,t,a){a||(a=vt.md.sha1.create());for(var r="",n=Math.ceil(t/a.digestLength),s=0;s<n;++s){var i=String.fromCharCode(s>>24&255,s>>16&255,s>>8&255,s&255);a.start(),a.update(e+i),r+=a.digest().getBytes()}return r.substring(0,t)}});var ja=K((Id,$a)=>{var Lt=$();ne();Tr();tt();(function(){if(Lt.prime){$a.exports=Lt.prime;return}var e=$a.exports=Lt.prime=Lt.prime||{},t=Lt.jsbn.BigInteger,a=[6,4,2,4,2,4,6,2],r=new t(null);r.fromInt(30);var n=function(c,y){return c|y};e.generateProbablePrime=function(c,y,g){typeof y=="function"&&(g=y,y={}),y=y||{};var v=y.algorithm||"PRIMEINC";typeof v=="string"&&(v={name:v}),v.options=v.options||{};var x=y.prng||Lt.random,S={nextBytes:function(I){for(var B=x.getBytesSync(I.length),b=0;b<I.length;++b)I[b]=B.charCodeAt(b)}};if(v.name==="PRIMEINC")return s(c,S,v.options,g);throw new Error("Invalid prime generation algorithm: "+v.name)};function s(c,y,g,v){return"workers"in g?u(c,y,g,v):i(c,y,g,v)}function i(c,y,g,v){var x=l(c,y),S=0,I=f(x.bitLength());"millerRabinTests"in g&&(I=g.millerRabinTests);var B=10;"maxBlockTime"in g&&(B=g.maxBlockTime),o(x,c,y,S,I,B,v)}function o(c,y,g,v,x,S,I){var B=+new Date;do{if(c.bitLength()>y&&(c=l(y,g)),c.isProbablePrime(x))return I(null,c);c.dAddOffset(a[v++%8],0)}while(S<0||+new Date-B<S);Lt.util.setImmediate(function(){o(c,y,g,v,x,S,I)})}function u(c,y,g,v){if(typeof Worker>"u")return i(c,y,g,v);var x=l(c,y),S=g.workers,I=g.workLoad||100,B=I*30/8,b=g.workerScript||"forge/prime.worker.js";if(S===-1)return Lt.util.estimateCores(function(L,R){L&&(R=2),S=R-1,U()});U();function U(){S=Math.max(1,S);for(var L=[],R=0;R<S;++R)L[R]=new Worker(b);for(var z=S,R=0;R<S;++R)L[R].addEventListener("message",j);var G=!1;function j(oe){if(!G){--z;var ue=oe.data;if(ue.found){for(var ee=0;ee<L.length;++ee)L[ee].terminate();return G=!0,v(null,new t(ue.prime,16))}x.bitLength()>c&&(x=l(c,y));var xe=x.toString(16);oe.target.postMessage({hex:xe,workLoad:I}),x.dAddOffset(B,0)}}}}function l(c,y){var g=new t(c,y),v=c-1;return g.testBit(v)||g.bitwiseTo(t.ONE.shiftLeft(v),n,g),g.dAddOffset(31-g.mod(r).byteValue(),0),g}function f(c){return c<=100?27:c<=150?18:c<=200?15:c<=250?12:c<=300?9:c<=350?8:c<=400?7:c<=500?6:c<=600?5:c<=800?4:c<=1250?3:2}})()});var Ir=K((Ad,Qi)=>{var q=$();ut();Tr();wt();Ya();ja();tt();ne();typeof re>"u"&&(re=q.jsbn.BigInteger);var re,Wa=q.util.isNodejs?require("crypto"):null,T=q.asn1,at=q.util;q.pki=q.pki||{};Qi.exports=q.pki.rsa=q.rsa=q.rsa||{};var Q=q.pki,Al=[6,4,2,4,2,4,6,2],Bl={name:"PrivateKeyInfo",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:T.Class.UNIVERSAL,type:T.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]},bl={name:"RSAPrivateKey",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPrivateKey.version",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"RSAPrivateKey.modulus",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyModulus"},{name:"RSAPrivateKey.publicExponent",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyPublicExponent"},{name:"RSAPrivateKey.privateExponent",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyPrivateExponent"},{name:"RSAPrivateKey.prime1",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyPrime1"},{name:"RSAPrivateKey.prime2",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyPrime2"},{name:"RSAPrivateKey.exponent1",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyExponent1"},{name:"RSAPrivateKey.exponent2",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyExponent2"},{name:"RSAPrivateKey.coefficient",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"privateKeyCoefficient"}]},_l={name:"RSAPublicKey",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"RSAPublicKey.modulus",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"publicKeyModulus"},{name:"RSAPublicKey.exponent",tagClass:T.Class.UNIVERSAL,type:T.Type.INTEGER,constructed:!1,capture:"publicKeyExponent"}]},Nl=q.pki.rsa.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{name:"SubjectPublicKeyInfo.subjectPublicKey",tagClass:T.Class.UNIVERSAL,type:T.Type.BITSTRING,constructed:!1,value:[{name:"SubjectPublicKeyInfo.subjectPublicKey.RSAPublicKey",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"rsaPublicKey"}]}]},wl={name:"DigestInfo",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm",tagClass:T.Class.UNIVERSAL,type:T.Type.SEQUENCE,constructed:!0,value:[{name:"DigestInfo.DigestAlgorithm.algorithmIdentifier",tagClass:T.Class.UNIVERSAL,type:T.Type.OID,constructed:!1,capture:"algorithmIdentifier"},{name:"DigestInfo.DigestAlgorithm.parameters",tagClass:T.Class.UNIVERSAL,type:T.Type.NULL,capture:"parameters",optional:!0,constructed:!1}]},{name:"DigestInfo.digest",tagClass:T.Class.UNIVERSAL,type:T.Type.OCTETSTRING,constructed:!1,capture:"digest"}]},Rl=function(e){var t;if(e.algorithm in Q.oids)t=Q.oids[e.algorithm];else{var a=new Error("Unknown message digest algorithm.");throw a.algorithm=e.algorithm,a}var r=T.oidToDer(t).getBytes(),n=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]),s=T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[]);s.value.push(T.create(T.Class.UNIVERSAL,T.Type.OID,!1,r)),s.value.push(T.create(T.Class.UNIVERSAL,T.Type.NULL,!1,""));var i=T.create(T.Class.UNIVERSAL,T.Type.OCTETSTRING,!1,e.digest().getBytes());return n.value.push(s),n.value.push(i),T.toDer(n).getBytes()},Gi=function(e,t,a){if(a)return e.modPow(t.e,t.n);if(!t.p||!t.q)return e.modPow(t.d,t.n);t.dP||(t.dP=t.d.mod(t.p.subtract(re.ONE))),t.dQ||(t.dQ=t.d.mod(t.q.subtract(re.ONE))),t.qInv||(t.qInv=t.q.modInverse(t.p));var r;do r=new re(q.util.bytesToHex(q.random.getBytes(t.n.bitLength()/8)),16);while(r.compareTo(t.n)>=0||!r.gcd(t.n).equals(re.ONE));e=e.multiply(r.modPow(t.e,t.n)).mod(t.n);for(var n=e.mod(t.p).modPow(t.dP,t.p),s=e.mod(t.q).modPow(t.dQ,t.q);n.compareTo(s)<0;)n=n.add(t.p);var i=n.subtract(s).multiply(t.qInv).mod(t.p).multiply(t.q).add(s);return i=i.multiply(r.modInverse(t.n)).mod(t.n),i};Q.rsa.encrypt=function(e,t,a){var r=a,n,s=Math.ceil(t.n.bitLength()/8);a!==!1&&a!==!0?(r=a===2,n=zi(e,t,a)):(n=q.util.createBuffer(),n.putBytes(e));for(var i=new re(n.toHex(),16),o=Gi(i,t,r),u=o.toString(16),l=q.util.createBuffer(),f=s-Math.ceil(u.length/2);f>0;)l.putByte(0),--f;return l.putBytes(q.util.hexToBytes(u)),l.getBytes()};Q.rsa.decrypt=function(e,t,a,r){var n=Math.ceil(t.n.bitLength()/8);if(e.length!==n){var s=new Error("Encrypted message length is invalid.");throw s.length=e.length,s.expected=n,s}var i=new re(q.util.createBuffer(e).toHex(),16);if(i.compareTo(t.n)>=0)throw new Error("Encrypted message is invalid.");for(var o=Gi(i,t,a),u=o.toString(16),l=q.util.createBuffer(),f=n-Math.ceil(u.length/2);f>0;)l.putByte(0),--f;return l.putBytes(q.util.hexToBytes(u)),r!==!1?ra(l.getBytes(),t,a):l.getBytes()};Q.rsa.createKeyPairGenerationState=function(e,t,a){typeof e=="string"&&(e=parseInt(e,10)),e=e||2048,a=a||{};var r=a.prng||q.random,n={nextBytes:function(o){for(var u=r.getBytesSync(o.length),l=0;l<o.length;++l)o[l]=u.charCodeAt(l)}},s=a.algorithm||"PRIMEINC",i;if(s==="PRIMEINC")i={algorithm:s,state:0,bits:e,rng:n,eInt:t||65537,e:new re(null),p:null,q:null,qBits:e>>1,pBits:e-(e>>1),pqState:0,num:null,keys:null},i.e.fromInt(i.eInt);else throw new Error("Invalid key generation algorithm: "+s);return i};Q.rsa.stepKeyPairGenerationState=function(e,t){"algorithm"in e||(e.algorithm="PRIMEINC");var a=new re(null);a.fromInt(30);for(var r=0,n=function(c,y){return c|y},s=+new Date,i,o=0;e.keys===null&&(t<=0||o<t);){if(e.state===0){var u=e.p===null?e.pBits:e.qBits,l=u-1;e.pqState===0?(e.num=new re(u,e.rng),e.num.testBit(l)||e.num.bitwiseTo(re.ONE.shiftLeft(l),n,e.num),e.num.dAddOffset(31-e.num.mod(a).byteValue(),0),r=0,++e.pqState):e.pqState===1?e.num.bitLength()>u?e.pqState=0:e.num.isProbablePrime(Dl(e.num.bitLength()))?++e.pqState:e.num.dAddOffset(Al[r++%8],0):e.pqState===2?e.pqState=e.num.subtract(re.ONE).gcd(e.e).compareTo(re.ONE)===0?3:0:e.pqState===3&&(e.pqState=0,e.p===null?e.p=e.num:e.q=e.num,e.p!==null&&e.q!==null&&++e.state,e.num=null)}else if(e.state===1)e.p.compareTo(e.q)<0&&(e.num=e.p,e.p=e.q,e.q=e.num),++e.state;else if(e.state===2)e.p1=e.p.subtract(re.ONE),e.q1=e.q.subtract(re.ONE),e.phi=e.p1.multiply(e.q1),++e.state;else if(e.state===3)e.phi.gcd(e.e).compareTo(re.ONE)===0?++e.state:(e.p=null,e.q=null,e.state=0);else if(e.state===4)e.n=e.p.multiply(e.q),e.n.bitLength()===e.bits?++e.state:(e.q=null,e.state=0);else if(e.state===5){var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)}}i=+new Date,o+=i-s,s=i}return e.keys!==null};Q.rsa.generateKeyPair=function(e,t,a,r){if(arguments.length===1?typeof e=="object"?(a=e,e=void 0):typeof e=="function"&&(r=e,e=void 0):arguments.length===2?typeof e=="number"?typeof t=="function"?(r=t,t=void 0):typeof t!="number"&&(a=t,t=void 0):(a=e,r=t,e=void 0,t=void 0):arguments.length===3&&(typeof t=="number"?typeof a=="function"&&(r=a,a=void 0):(r=a,a=t,t=void 0)),a=a||{},e===void 0&&(e=a.bits||2048),t===void 0&&(t=a.e||65537),!q.options.usePureJavaScript&&!a.prng&&e>=256&&e<=16384&&(t===65537||t===3)){if(r){if(Ki("generateKeyPair"))return Wa.generateKeyPair("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}},function(o,u,l){if(o)return r(o);r(null,{privateKey:Q.privateKeyFromPem(l),publicKey:Q.publicKeyFromPem(u)})});if(qi("generateKey")&&qi("exportKey"))return at.globalScope.crypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:Hi(t),hash:{name:"SHA-256"}},!0,["sign","verify"]).then(function(o){return at.globalScope.crypto.subtle.exportKey("pkcs8",o.privateKey)}).then(void 0,function(o){r(o)}).then(function(o){if(o){var u=Q.privateKeyFromAsn1(T.fromDer(q.util.createBuffer(o)));r(null,{privateKey:u,publicKey:Q.setRsaPublicKey(u.n,u.e)})}});if(Mi("generateKey")&&Mi("exportKey")){var n=at.globalScope.msCrypto.subtle.generateKey({name:"RSASSA-PKCS1-v1_5",modulusLength:e,publicExponent:Hi(t),hash:{name:"SHA-256"}},!0,["sign","verify"]);n.oncomplete=function(o){var u=o.target.result,l=at.globalScope.msCrypto.subtle.exportKey("pkcs8",u.privateKey);l.oncomplete=function(f){var c=f.target.result,y=Q.privateKeyFromAsn1(T.fromDer(q.util.createBuffer(c)));r(null,{privateKey:y,publicKey:Q.setRsaPublicKey(y.n,y.e)})},l.onerror=function(f){r(f)}},n.onerror=function(o){r(o)};return}}else if(Ki("generateKeyPairSync")){var s=Wa.generateKeyPairSync("rsa",{modulusLength:e,publicExponent:t,publicKeyEncoding:{type:"spki",format:"pem"},privateKeyEncoding:{type:"pkcs8",format:"pem"}});return{privateKey:Q.privateKeyFromPem(s.privateKey),publicKey:Q.publicKeyFromPem(s.publicKey)}}}var i=Q.rsa.createKeyPairGenerationState(e,t,a);if(!r)return Q.rsa.stepKeyPairGenerationState(i,0),i.keys;Ll(i,a,r)};Q.setRsaPublicKey=Q.rsa.setPublicKey=function(e,t){var a={n:e,e:t};return a.encrypt=function(r,n,s){if(typeof n=="string"?n=n.toUpperCase():n===void 0&&(n="RSAES-PKCS1-V1_5"),n==="RSAES-PKCS1-V1_5")n={encode:function(o,u,l){return zi(o,u,2).getBytes()}};else if(n==="RSA-OAEP"||n==="RSAES-OAEP")n={encode:function(o,u){return q.pkcs1.encode_rsa_oaep(u,o,s)}};else if(["RAW","NONE","NULL",null].indexOf(n)!==-1)n={encode:function(o){return o}};else if(typeof n=="string")throw new Error('Unsupported encryption scheme: "'+n+'".');var i=n.encode(r,a,!0);return Q.rsa.encrypt(i,a,!0)},a.verify=function(r,n,s,i){typeof s=="string"?s=s.toUpperCase():s===void 0&&(s="RSASSA-PKCS1-V1_5"),i===void 0&&(i={_parseAllDigestBytes:!0,_skipPaddingChecks:!1}),"_parseAllDigestBytes"in i||(i._parseAllDigestBytes=!0),"_skipPaddingChecks"in i||(i._skipPaddingChecks=!1),s==="RSASSA-PKCS1-V1_5"?s={verify:function(u,l){l=ra(l,a,!0,void 0,i);var f=T.fromDer(l,{parseAllBytes:i._parseAllDigestBytes}),c={},y=[];if(!T.validate(f,wl,c,y)||f.value.length!==2){var g=new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value.");throw g.errors=y,g}var v=T.derToOid(c.algorithmIdentifier);if(!(v===q.oids.md2||v===q.oids.md5||v===q.oids.sha1||v===q.oids.sha224||v===q.oids.sha256||v===q.oids.sha384||v===q.oids.sha512||v===q.oids["sha512-224"]||v===q.oids["sha512-256"])){var g=new Error("Unknown RSASSA-PKCS1-v1_5 DigestAlgorithm identifier.");throw g.oid=v,g}if((v===q.oids.md2||v===q.oids.md5)&&!("parameters"in c))throw new Error("ASN.1 object does not contain a valid RSASSA-PKCS1-v1_5 DigestInfo value. Missing algorithm identifier NULL parameters.");return u===c.digest}}:(s==="NONE"||s==="NULL"||s===null)&&(s={verify:function(u,l){return l=ra(l,a,!0,void 0,i),u===l}});var o=Q.rsa.decrypt(n,a,!0,!1);return s.verify(r,o,a.n.bitLength())},a};Q.setRsaPrivateKey=Q.rsa.setPrivateKey=function(e,t,a,r,n,s,i,o){var u={n:e,e:t,d:a,p:r,q:n,dP:s,dQ:i,qInv:o};return u.decrypt=function(l,f,c){typeof f=="string"?f=f.toUpperCase():f===void 0&&(f="RSAES-PKCS1-V1_5");var y=Q.rsa.decrypt(l,u,!1,!1);if(f==="RSAES-PKCS1-V1_5")f={decode:ra};else if(f==="RSA-OAEP"||f==="RSAES-OAEP")f={decode:function(g,v){return q.pkcs1.decode_rsa_oaep(v,g,c)}};else if(["RAW","NONE","NULL",null].indexOf(f)!==-1)f={decode:function(g){return g}};else throw new Error('Unsupported encryption scheme: "'+f+'".');return f.decode(y,u,!1)},u.sign=function(l,f){var c=!1;typeof f=="string"&&(f=f.toUpperCase()),f===void 0||f==="RSASSA-PKCS1-V1_5"?(f={encode:Rl},c=1):(f==="NONE"||f==="NULL"||f===null)&&(f={encode:function(){return l}},c=1);var y=f.encode(l,u.n.bitLength());return Q.rsa.encrypt(y,u,c)},u};Q.wrapRsaPrivateKey=function(e){return T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,T.integerToDer(0).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(Q.oids.rsaEncryption).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.NULL,!1,"")]),T.create(T.Class.UNIVERSAL,T.Type.OCTETSTRING,!1,T.toDer(e).getBytes())])};Q.privateKeyFromAsn1=function(e){var t={},a=[];if(T.validate(e,Bl,t,a)&&(e=T.fromDer(q.util.createBuffer(t.privateKey))),t={},a=[],!T.validate(e,bl,t,a)){var r=new Error("Cannot read private key. ASN.1 object does not contain an RSAPrivateKey.");throw r.errors=a,r}var n,s,i,o,u,l,f,c;return n=q.util.createBuffer(t.privateKeyModulus).toHex(),s=q.util.createBuffer(t.privateKeyPublicExponent).toHex(),i=q.util.createBuffer(t.privateKeyPrivateExponent).toHex(),o=q.util.createBuffer(t.privateKeyPrime1).toHex(),u=q.util.createBuffer(t.privateKeyPrime2).toHex(),l=q.util.createBuffer(t.privateKeyExponent1).toHex(),f=q.util.createBuffer(t.privateKeyExponent2).toHex(),c=q.util.createBuffer(t.privateKeyCoefficient).toHex(),Q.setRsaPrivateKey(new re(n,16),new re(s,16),new re(i,16),new re(o,16),new re(u,16),new re(l,16),new re(f,16),new re(c,16))};Q.privateKeyToAsn1=Q.privateKeyToRSAPrivateKey=function(e){return T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,T.integerToDer(0).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.n)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.e)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.d)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.p)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.q)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.dP)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.dQ)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.qInv))])};Q.publicKeyFromAsn1=function(e){var t={},a=[];if(T.validate(e,Nl,t,a)){var r=T.derToOid(t.publicKeyOid);if(r!==Q.oids.rsaEncryption){var n=new Error("Cannot read public key. Unknown OID.");throw n.oid=r,n}e=t.rsaPublicKey}if(a=[],!T.validate(e,_l,t,a)){var n=new Error("Cannot read public key. ASN.1 object does not contain an RSAPublicKey.");throw n.errors=a,n}var s=q.util.createBuffer(t.publicKeyModulus).toHex(),i=q.util.createBuffer(t.publicKeyExponent).toHex();return Q.setRsaPublicKey(new re(s,16),new re(i,16))};Q.publicKeyToAsn1=Q.publicKeyToSubjectPublicKeyInfo=function(e){return T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.OID,!1,T.oidToDer(Q.oids.rsaEncryption).getBytes()),T.create(T.Class.UNIVERSAL,T.Type.NULL,!1,"")]),T.create(T.Class.UNIVERSAL,T.Type.BITSTRING,!1,[Q.publicKeyToRSAPublicKey(e)])])};Q.publicKeyToRSAPublicKey=function(e){return T.create(T.Class.UNIVERSAL,T.Type.SEQUENCE,!0,[T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.n)),T.create(T.Class.UNIVERSAL,T.Type.INTEGER,!1,gt(e.e))])};function zi(e,t,a){var r=q.util.createBuffer(),n=Math.ceil(t.n.bitLength()/8);if(e.length>n-11){var s=new Error("Message is too long for PKCS#1 v1.5 padding.");throw s.length=e.length,s.max=n-11,s}r.putByte(0),r.putByte(a);var i=n-3-e.length,o;if(a===0||a===1){o=a===0?0:255;for(var u=0;u<i;++u)r.putByte(o)}else for(;i>0;){for(var l=0,f=q.random.getBytes(i),u=0;u<i;++u)o=f.charCodeAt(u),o===0?++l:r.putByte(o);i=l}return r.putByte(0),r.putBytes(e),r}function ra(e,t,a,r,n){var s=Math.ceil(t.n.bitLength()/8),i=q.util.createBuffer(e),o=i.getByte(),u=i.getByte();if(o!==0||a&&u!==0&&u!==1||!a&&u!==2||a&&u===0&&typeof r>"u")throw new Error("Encryption block is invalid.");var l=0;if(u===0){l=s-3-r;for(var f=0;f<l;++f)if(i.getByte()!==0)throw new Error("Encryption block is invalid.")}else if(u===1){for(l=0;i.length()>1;){if(i.getByte()!==255){--i.read;break}++l}if(l<8&&!(n&&n._skipPaddingChecks))throw new Error("Encryption block is invalid.")}else if(u===2){for(l=0;i.length()>1;){if(i.getByte()===0){--i.read;break}++l}if(l<8&&!(n&&n._skipPaddingChecks))throw new Error("Encryption block is invalid.")}var c=i.getByte();if(c!==0||l!==s-3-i.length())throw new Error("Encryption block is invalid.");return i.getBytes()}function Ll(e,t,a){typeof t=="function"&&(a=t,t={}),t=t||{};var r={algorithm:{name:t.algorithm||"PRIMEINC",options:{workers:t.workers||2,workLoad:t.workLoad||100,workerScript:t.workerScript}}};"prng"in t&&(r.prng=t.prng),n();function n(){s(e.pBits,function(o,u){if(o)return a(o);if(e.p=u,e.q!==null)return i(o,e.q);s(e.qBits,i)})}function s(o,u){q.prime.generateProbablePrime(o,r,u)}function i(o,u){if(o)return a(o);if(e.q=u,e.p.compareTo(e.q)<0){var l=e.p;e.p=e.q,e.q=l}if(e.p.subtract(re.ONE).gcd(e.e).compareTo(re.ONE)!==0){e.p=null,n();return}if(e.q.subtract(re.ONE).gcd(e.e).compareTo(re.ONE)!==0){e.q=null,s(e.qBits,i);return}if(e.p1=e.p.subtract(re.ONE),e.q1=e.q.subtract(re.ONE),e.phi=e.p1.multiply(e.q1),e.phi.gcd(e.e).compareTo(re.ONE)!==0){e.p=e.q=null,n();return}if(e.n=e.p.multiply(e.q),e.n.bitLength()!==e.bits){e.q=null,s(e.qBits,i);return}var f=e.e.modInverse(e.phi);e.keys={privateKey:Q.rsa.setPrivateKey(e.n,e.e,f,e.p,e.q,f.mod(e.p1),f.mod(e.q1),e.q.modInverse(e.p)),publicKey:Q.rsa.setPublicKey(e.n,e.e)},a(null,e.keys)}}function gt(e){var t=e.toString(16);t[0]>="8"&&(t="00"+t);var a=q.util.hexToBytes(t);return a.length>1&&(a.charCodeAt(0)===0&&(a.charCodeAt(1)&128)===0||a.charCodeAt(0)===255&&(a.charCodeAt(1)&128)===128)?a.substr(1):a}function Dl(e){return e<=100?27:e<=150?18:e<=200?15:e<=250?12:e<=300?9:e<=350?8:e<=400?7:e<=500?6:e<=600?5:e<=800?4:e<=1250?3:2}function Ki(e){return q.util.isNodejs&&typeof Wa[e]=="function"}function qi(e){return typeof at.globalScope<"u"&&typeof at.globalScope.crypto=="object"&&typeof at.globalScope.crypto.subtle=="object"&&typeof at.globalScope.crypto.subtle[e]=="function"}function Mi(e){return typeof at.globalScope<"u"&&typeof at.globalScope.msCrypto=="object"&&typeof at.globalScope.msCrypto.subtle=="object"&&typeof at.globalScope.msCrypto.subtle[e]=="function"}function Hi(e){for(var t=q.util.hexToBytes(e.toString(16)),a=new Uint8Array(t.length),r=0;r<t.length;++r)a[r]=t.charCodeAt(r);return a}});var Xa=K((Bd,Xi)=>{var V=$();Nt();ut();xr();ft();wt();Xr();Ht();tt();Ma();Ir();ne();typeof Yi>"u"&&(Yi=V.jsbn.BigInteger);var Yi,A=V.asn1,Y=V.pki=V.pki||{};Xi.exports=Y.pbe=V.pbe=V.pbe||{};var Qt=Y.oids,kl={name:"EncryptedPrivateKeyInfo",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedPrivateKeyInfo.encryptionAlgorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encryptionOid"},{name:"AlgorithmIdentifier.parameters",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,captureAsn1:"encryptionParams"}]},{name:"EncryptedPrivateKeyInfo.encryptedData",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encryptedData"}]},Ul={name:"PBES2Algorithms",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.keyDerivationFunc.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"kdfOid"},{name:"PBES2Algorithms.params",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.params.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"kdfSalt"},{name:"PBES2Algorithms.params.iterationCount",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"kdfIterationCount"},{name:"PBES2Algorithms.params.keyLength",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,optional:!0,capture:"keyLength"},{name:"PBES2Algorithms.params.prf",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,optional:!0,value:[{name:"PBES2Algorithms.params.prf.algorithm",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"prfOid"}]}]}]},{name:"PBES2Algorithms.encryptionScheme",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"PBES2Algorithms.encryptionScheme.oid",tagClass:A.Class.UNIVERSAL,type:A.Type.OID,constructed:!1,capture:"encOid"},{name:"PBES2Algorithms.encryptionScheme.iv",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"encIv"}]}]},Pl={name:"pkcs-12PbeParams",tagClass:A.Class.UNIVERSAL,type:A.Type.SEQUENCE,constructed:!0,value:[{name:"pkcs-12PbeParams.salt",tagClass:A.Class.UNIVERSAL,type:A.Type.OCTETSTRING,constructed:!1,capture:"salt"},{name:"pkcs-12PbeParams.iterations",tagClass:A.Class.UNIVERSAL,type:A.Type.INTEGER,constructed:!1,capture:"iterations"}]};Y.encryptPrivateKeyInfo=function(e,t,a){a=a||{},a.saltSize=a.saltSize||8,a.count=a.count||2048,a.algorithm=a.algorithm||"aes128",a.prfAlgorithm=a.prfAlgorithm||"sha1";var r=V.random.getBytesSync(a.saltSize),n=a.count,s=A.integerToDer(n),i,o,u;if(a.algorithm.indexOf("aes")===0||a.algorithm==="des"){var l,f,c;switch(a.algorithm){case"aes128":i=16,l=16,f=Qt["aes128-CBC"],c=V.aes.createEncryptionCipher;break;case"aes192":i=24,l=16,f=Qt["aes192-CBC"],c=V.aes.createEncryptionCipher;break;case"aes256":i=32,l=16,f=Qt["aes256-CBC"],c=V.aes.createEncryptionCipher;break;case"des":i=8,l=8,f=Qt.desCBC,c=V.des.createEncryptionCipher;break;default:var y=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw y.algorithm=a.algorithm,y}var g="hmacWith"+a.prfAlgorithm.toUpperCase(),v=Wi(g),x=V.pkcs5.pbkdf2(t,r,n,i,v),S=V.random.getBytesSync(l),I=c(x);I.start(S),I.update(A.toDer(e)),I.finish(),u=I.output.getBytes();var B=Ol(r,s,i,g);o=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Qt.pkcs5PBES2).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Qt.pkcs5PBKDF2).getBytes()),B]),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(f).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,S)])])])}else if(a.algorithm==="3des"){i=24;var b=new V.util.ByteBuffer(r),x=Y.pbe.generatePkcs12Key(t,b,1,n,i),S=Y.pbe.generatePkcs12Key(t,b,2,n,i),I=V.des.createEncryptionCipher(x);I.start(S),I.update(A.toDer(e)),I.finish(),u=I.output.getBytes(),o=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Qt["pbeWithSHAAnd3-KeyTripleDES-CBC"]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,r),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,s.getBytes())])])}else{var y=new Error("Cannot encrypt private key. Unknown encryption algorithm.");throw y.algorithm=a.algorithm,y}var U=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[o,A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,u)]);return U};Y.decryptPrivateKeyInfo=function(e,t){var a=null,r={},n=[];if(!A.validate(e,kl,r,n)){var s=new Error("Cannot read encrypted private key. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=n,s}var i=A.derToOid(r.encryptionOid),o=Y.pbe.getCipher(i,r.encryptionParams,t),u=V.util.createBuffer(r.encryptedData);return o.update(u),o.finish()&&(a=A.fromDer(o.output)),a};Y.encryptedPrivateKeyToPem=function(e,t){var a={type:"ENCRYPTED PRIVATE KEY",body:A.toDer(e).getBytes()};return V.pem.encode(a,{maxline:t})};Y.encryptedPrivateKeyFromPem=function(e){var t=V.pem.decode(e)[0];if(t.type!=="ENCRYPTED PRIVATE KEY"){var a=new Error('Could not convert encrypted private key from PEM; PEM header type is "ENCRYPTED PRIVATE KEY".');throw a.headerType=t.type,a}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert encrypted private key from PEM; PEM is encrypted.");return A.fromDer(t.body)};Y.encryptRsaPrivateKey=function(e,t,a){if(a=a||{},!a.legacy){var r=Y.wrapRsaPrivateKey(Y.privateKeyToAsn1(e));return r=Y.encryptPrivateKeyInfo(r,t,a),Y.encryptedPrivateKeyToPem(r)}var n,s,i,o;switch(a.algorithm){case"aes128":n="AES-128-CBC",i=16,s=V.random.getBytesSync(16),o=V.aes.createEncryptionCipher;break;case"aes192":n="AES-192-CBC",i=24,s=V.random.getBytesSync(16),o=V.aes.createEncryptionCipher;break;case"aes256":n="AES-256-CBC",i=32,s=V.random.getBytesSync(16),o=V.aes.createEncryptionCipher;break;case"3des":n="DES-EDE3-CBC",i=24,s=V.random.getBytesSync(8),o=V.des.createEncryptionCipher;break;case"des":n="DES-CBC",i=8,s=V.random.getBytesSync(8),o=V.des.createEncryptionCipher;break;default:var u=new Error('Could not encrypt RSA private key; unsupported encryption algorithm "'+a.algorithm+'".');throw u.algorithm=a.algorithm,u}var l=V.pbe.opensslDeriveBytes(t,s.substr(0,8),i),f=o(l);f.start(s),f.update(A.toDer(Y.privateKeyToAsn1(e))),f.finish();var c={type:"RSA PRIVATE KEY",procType:{version:"4",type:"ENCRYPTED"},dekInfo:{algorithm:n,parameters:V.util.bytesToHex(s).toUpperCase()},body:f.output.getBytes()};return V.pem.encode(c)};Y.decryptRsaPrivateKey=function(e,t){var a=null,r=V.pem.decode(e)[0];if(r.type!=="ENCRYPTED PRIVATE KEY"&&r.type!=="PRIVATE KEY"&&r.type!=="RSA PRIVATE KEY"){var n=new Error('Could not convert private key from PEM; PEM header type is not "ENCRYPTED PRIVATE KEY", "PRIVATE KEY", or "RSA PRIVATE KEY".');throw n.headerType=n,n}if(r.procType&&r.procType.type==="ENCRYPTED"){var s,i;switch(r.dekInfo.algorithm){case"DES-CBC":s=8,i=V.des.createDecryptionCipher;break;case"DES-EDE3-CBC":s=24,i=V.des.createDecryptionCipher;break;case"AES-128-CBC":s=16,i=V.aes.createDecryptionCipher;break;case"AES-192-CBC":s=24,i=V.aes.createDecryptionCipher;break;case"AES-256-CBC":s=32,i=V.aes.createDecryptionCipher;break;case"RC2-40-CBC":s=5,i=function(c){return V.rc2.createDecryptionCipher(c,40)};break;case"RC2-64-CBC":s=8,i=function(c){return V.rc2.createDecryptionCipher(c,64)};break;case"RC2-128-CBC":s=16,i=function(c){return V.rc2.createDecryptionCipher(c,128)};break;default:var n=new Error('Could not decrypt private key; unsupported encryption algorithm "'+r.dekInfo.algorithm+'".');throw n.algorithm=r.dekInfo.algorithm,n}var o=V.util.hexToBytes(r.dekInfo.parameters),u=V.pbe.opensslDeriveBytes(t,o.substr(0,8),s),l=i(u);if(l.start(o),l.update(V.util.createBuffer(r.body)),l.finish())a=l.output.getBytes();else return a}else a=r.body;return r.type==="ENCRYPTED PRIVATE KEY"?a=Y.decryptPrivateKeyInfo(A.fromDer(a),t):a=A.fromDer(a),a!==null&&(a=Y.privateKeyFromAsn1(a)),a};Y.pbe.generatePkcs12Key=function(e,t,a,r,n,s){var i,o;if(typeof s>"u"||s===null){if(!("sha1"in V.md))throw new Error('"sha1" hash algorithm unavailable.');s=V.md.sha1.create()}var u=s.digestLength,l=s.blockLength,f=new V.util.ByteBuffer,c=new V.util.ByteBuffer;if(e!=null){for(o=0;o<e.length;o++)c.putInt16(e.charCodeAt(o));c.putInt16(0)}var y=c.length(),g=t.length(),v=new V.util.ByteBuffer;v.fillWithByte(a,l);var x=l*Math.ceil(g/l),S=new V.util.ByteBuffer;for(o=0;o<x;o++)S.putByte(t.at(o%g));var I=l*Math.ceil(y/l),B=new V.util.ByteBuffer;for(o=0;o<I;o++)B.putByte(c.at(o%y));var b=S;b.putBuffer(B);for(var U=Math.ceil(n/u),L=1;L<=U;L++){var R=new V.util.ByteBuffer;R.putBytes(v.bytes()),R.putBytes(b.bytes());for(var z=0;z<r;z++)s.start(),s.update(R.getBytes()),R=s.digest();var G=new V.util.ByteBuffer;for(o=0;o<l;o++)G.putByte(R.at(o%u));var j=Math.ceil(g/l)+Math.ceil(y/l),oe=new V.util.ByteBuffer;for(i=0;i<j;i++){var ue=new V.util.ByteBuffer(b.getBytes(l)),ee=511;for(o=G.length()-1;o>=0;o--)ee=ee>>8,ee+=G.at(o)+ue.at(o),ue.setAt(o,ee&255);oe.putBuffer(ue)}b=oe,f.putBuffer(R)}return f.truncate(f.length()-n),f};Y.pbe.getCipher=function(e,t,a){switch(e){case Y.oids.pkcs5PBES2:return Y.pbe.getCipherForPBES2(e,t,a);case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:return Y.pbe.getCipherForPKCS12PBE(e,t,a);default:var r=new Error("Cannot read encrypted PBE data block. Unsupported OID.");throw r.oid=e,r.supportedOids=["pkcs5PBES2","pbeWithSHAAnd3-KeyTripleDES-CBC","pbewithSHAAnd40BitRC2-CBC"],r}};Y.pbe.getCipherForPBES2=function(e,t,a){var r={},n=[];if(!A.validate(t,Ul,r,n)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=n,s}if(e=A.derToOid(r.kdfOid),e!==Y.oids.pkcs5PBKDF2){var s=new Error("Cannot read encrypted private key. Unsupported key derivation function OID.");throw s.oid=e,s.supportedOids=["pkcs5PBKDF2"],s}if(e=A.derToOid(r.encOid),e!==Y.oids["aes128-CBC"]&&e!==Y.oids["aes192-CBC"]&&e!==Y.oids["aes256-CBC"]&&e!==Y.oids["des-EDE3-CBC"]&&e!==Y.oids.desCBC){var s=new Error("Cannot read encrypted private key. Unsupported encryption scheme OID.");throw s.oid=e,s.supportedOids=["aes128-CBC","aes192-CBC","aes256-CBC","des-EDE3-CBC","desCBC"],s}var i=r.kdfSalt,o=V.util.createBuffer(r.kdfIterationCount);o=o.getInt(o.length()<<3);var u,l;switch(Y.oids[e]){case"aes128-CBC":u=16,l=V.aes.createDecryptionCipher;break;case"aes192-CBC":u=24,l=V.aes.createDecryptionCipher;break;case"aes256-CBC":u=32,l=V.aes.createDecryptionCipher;break;case"des-EDE3-CBC":u=24,l=V.des.createDecryptionCipher;break;case"desCBC":u=8,l=V.des.createDecryptionCipher;break}var f=ji(r.prfOid),c=V.pkcs5.pbkdf2(a,i,o,u,f),y=r.encIv,g=l(c);return g.start(y),g};Y.pbe.getCipherForPKCS12PBE=function(e,t,a){var r={},n=[];if(!A.validate(t,Pl,r,n)){var s=new Error("Cannot read password-based-encryption algorithm parameters. ASN.1 object is not a supported EncryptedPrivateKeyInfo.");throw s.errors=n,s}var i=V.util.createBuffer(r.salt),o=V.util.createBuffer(r.iterations);o=o.getInt(o.length()<<3);var u,l,f;switch(e){case Y.oids["pbeWithSHAAnd3-KeyTripleDES-CBC"]:u=24,l=8,f=V.des.startDecrypting;break;case Y.oids["pbewithSHAAnd40BitRC2-CBC"]:u=5,l=8,f=function(x,S){var I=V.rc2.createDecryptionCipher(x,40);return I.start(S,null),I};break;default:var s=new Error("Cannot read PKCS #12 PBE data block. Unsupported OID.");throw s.oid=e,s}var c=ji(r.prfOid),y=Y.pbe.generatePkcs12Key(a,i,1,o,u,c);c.start();var g=Y.pbe.generatePkcs12Key(a,i,2,o,l,c);return f(y,g)};Y.pbe.opensslDeriveBytes=function(e,t,a,r){if(typeof r>"u"||r===null){if(!("md5"in V.md))throw new Error('"md5" hash algorithm unavailable.');r=V.md.md5.create()}t===null&&(t="");for(var n=[$i(r,e+t)],s=16,i=1;s<a;++i,s+=16)n.push($i(r,n[i-1]+e+t));return n.join("").substr(0,a)};function $i(e,t){return e.start().update(t).digest().getBytes()}function ji(e){var t;if(!e)t="hmacWithSHA1";else if(t=Y.oids[A.derToOid(e)],!t){var a=new Error("Unsupported PRF OID.");throw a.oid=e,a.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],a}return Wi(t)}function Wi(e){var t=V.md;switch(e){case"hmacWithSHA224":t=V.md.sha512;case"hmacWithSHA1":case"hmacWithSHA256":case"hmacWithSHA384":case"hmacWithSHA512":e=e.substr(8).toLowerCase();break;default:var a=new Error("Unsupported PRF algorithm.");throw a.algorithm=e,a.supported=["hmacWithSHA1","hmacWithSHA224","hmacWithSHA256","hmacWithSHA384","hmacWithSHA512"],a}if(!t||!(e in t))throw new Error("Unknown hash algorithm: "+e);return t[e].create()}function Ol(e,t,a,r){var n=A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OCTETSTRING,!1,e),A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,t.getBytes())]);return r!=="hmacWithSHA1"&&n.value.push(A.create(A.Class.UNIVERSAL,A.Type.INTEGER,!1,V.util.hexToBytes(a.toString(16))),A.create(A.Class.UNIVERSAL,A.Type.SEQUENCE,!0,[A.create(A.Class.UNIVERSAL,A.Type.OID,!1,A.oidToDer(Y.oids[r]).getBytes()),A.create(A.Class.UNIVERSAL,A.Type.NULL,!1,"")])),n}});var Za=K((bd,es)=>{var sr=$();ut();ne();var O=sr.asn1,or=es.exports=sr.pkcs7asn1=sr.pkcs7asn1||{};sr.pkcs7=sr.pkcs7||{};sr.pkcs7.asn1=or;var Zi={name:"ContentInfo",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.ContentType",tagClass:O.Class.UNIVERSAL,type:O.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:O.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,captureAsn1:"content"}]};or.contentInfoValidator=Zi;var Ji={name:"EncryptedContentInfo",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentType",tagClass:O.Class.UNIVERSAL,type:O.Type.OID,constructed:!1,capture:"contentType"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedContentInfo.contentEncryptionAlgorithm.algorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"EncryptedContentInfo.contentEncryptionAlgorithm.parameter",tagClass:O.Class.UNIVERSAL,captureAsn1:"encParameter"}]},{name:"EncryptedContentInfo.encryptedContent",tagClass:O.Class.CONTEXT_SPECIFIC,type:0,capture:"encryptedContent",captureAsn1:"encryptedContentAsn1"}]};or.envelopedDataValidator={name:"EnvelopedData",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"EnvelopedData.Version",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1,capture:"version"},{name:"EnvelopedData.RecipientInfos",tagClass:O.Class.UNIVERSAL,type:O.Type.SET,constructed:!0,captureAsn1:"recipientInfos"}].concat(Ji)};or.encryptedDataValidator={name:"EncryptedData",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"EncryptedData.Version",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1,capture:"version"}].concat(Ji)};var Vl={name:"SignerInfo",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.version",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1},{name:"SignerInfo.issuerAndSerialNumber",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.issuerAndSerialNumber.issuer",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"SignerInfo.issuerAndSerialNumber.serialNumber",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"SignerInfo.digestAlgorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"SignerInfo.digestAlgorithm.algorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.OID,constructed:!1,capture:"digestAlgorithm"},{name:"SignerInfo.digestAlgorithm.parameter",tagClass:O.Class.UNIVERSAL,constructed:!1,captureAsn1:"digestParameter",optional:!0}]},{name:"SignerInfo.authenticatedAttributes",tagClass:O.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"authenticatedAttributes"},{name:"SignerInfo.digestEncryptionAlgorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,capture:"signatureAlgorithm"},{name:"SignerInfo.encryptedDigest",tagClass:O.Class.UNIVERSAL,type:O.Type.OCTETSTRING,constructed:!1,capture:"signature"},{name:"SignerInfo.unauthenticatedAttributes",tagClass:O.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,capture:"unauthenticatedAttributes"}]};or.signedDataValidator={name:"SignedData",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"SignedData.Version",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1,capture:"version"},{name:"SignedData.DigestAlgorithms",tagClass:O.Class.UNIVERSAL,type:O.Type.SET,constructed:!0,captureAsn1:"digestAlgorithms"},Zi,{name:"SignedData.Certificates",tagClass:O.Class.CONTEXT_SPECIFIC,type:0,optional:!0,captureAsn1:"certificates"},{name:"SignedData.CertificateRevocationLists",tagClass:O.Class.CONTEXT_SPECIFIC,type:1,optional:!0,captureAsn1:"crls"},{name:"SignedData.SignerInfos",tagClass:O.Class.UNIVERSAL,type:O.Type.SET,capture:"signerInfos",optional:!0,value:[Vl]}]};or.recipientInfoValidator={name:"RecipientInfo",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.version",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1,capture:"version"},{name:"RecipientInfo.issuerAndSerial",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.issuerAndSerial.issuer",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,captureAsn1:"issuer"},{name:"RecipientInfo.issuerAndSerial.serialNumber",tagClass:O.Class.UNIVERSAL,type:O.Type.INTEGER,constructed:!1,capture:"serial"}]},{name:"RecipientInfo.keyEncryptionAlgorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.SEQUENCE,constructed:!0,value:[{name:"RecipientInfo.keyEncryptionAlgorithm.algorithm",tagClass:O.Class.UNIVERSAL,type:O.Type.OID,constructed:!1,capture:"encAlgorithm"},{name:"RecipientInfo.keyEncryptionAlgorithm.parameter",tagClass:O.Class.UNIVERSAL,constructed:!1,captureAsn1:"encParameter",optional:!0}]},{name:"RecipientInfo.encryptedKey",tagClass:O.Class.UNIVERSAL,type:O.Type.OCTETSTRING,constructed:!1,capture:"encKey"}]}});var Ja=K((_d,ts)=>{var Yt=$();ne();Yt.mgf=Yt.mgf||{};var Fl=ts.exports=Yt.mgf.mgf1=Yt.mgf1=Yt.mgf1||{};Fl.create=function(e){var t={generate:function(a,r){for(var n=new Yt.util.ByteBuffer,s=Math.ceil(r/e.digestLength),i=0;i<s;i++){var o=new Yt.util.ByteBuffer;o.putInt32(i),e.start(),e.update(a+o.getBytes()),n.putBuffer(e.digest())}return n.truncate(n.length()-r),n.getBytes()}};return t}});var as=K((Nd,rs)=>{var aa=$();Ja();rs.exports=aa.mgf=aa.mgf||{};aa.mgf.mgf1=aa.mgf1});var na=K((wd,ns)=>{var $t=$();tt();ne();var Kl=ns.exports=$t.pss=$t.pss||{};Kl.create=function(e){arguments.length===3&&(e={md:arguments[0],mgf:arguments[1],saltLength:arguments[2]});var t=e.md,a=e.mgf,r=t.digestLength,n=e.salt||null;typeof n=="string"&&(n=$t.util.createBuffer(n));var s;if("saltLength"in e)s=e.saltLength;else if(n!==null)s=n.length();else throw new Error("Salt length not specified or specific salt not given.");if(n!==null&&n.length()!==s)throw new Error("Given salt length does not match length of given salt.");var i=e.prng||$t.random,o={};return o.encode=function(u,l){var f,c=l-1,y=Math.ceil(c/8),g=u.digest().getBytes();if(y<r+s+2)throw new Error("Message is too long to encrypt.");var v;n===null?v=i.getBytesSync(s):v=n.bytes();var x=new $t.util.ByteBuffer;x.fillWithByte(0,8),x.putBytes(g),x.putBytes(v),t.start(),t.update(x.getBytes());var S=t.digest().getBytes(),I=new $t.util.ByteBuffer;I.fillWithByte(0,y-s-r-2),I.putByte(1),I.putBytes(v);var B=I.getBytes(),b=y-r-1,U=a.generate(S,b),L="";for(f=0;f<b;f++)L+=String.fromCharCode(B.charCodeAt(f)^U.charCodeAt(f));var R=65280>>8*y-c&255;return L=String.fromCharCode(L.charCodeAt(0)&~R)+L.substr(1),L+S+"\xBC"},o.verify=function(u,l,f){var c,y=f-1,g=Math.ceil(y/8);if(l=l.substr(-g),g<r+s+2)throw new Error("Inconsistent parameters to PSS signature verification.");if(l.charCodeAt(g-1)!==188)throw new Error("Encoded message does not end in 0xBC.");var v=g-r-1,x=l.substr(0,v),S=l.substr(v,r),I=65280>>8*g-y&255;if((x.charCodeAt(0)&I)!==0)throw new Error("Bits beyond keysize not zero as expected.");var B=a.generate(S,v),b="";for(c=0;c<v;c++)b+=String.fromCharCode(x.charCodeAt(c)^B.charCodeAt(c));b=String.fromCharCode(b.charCodeAt(0)&~I)+b.substr(1);var U=g-r-s-2;for(c=0;c<U;c++)if(b.charCodeAt(c)!==0)throw new Error("Leftmost octets not zero as expected");if(b.charCodeAt(U)!==1)throw new Error("Inconsistent PSS signature, 0x01 marker not found");var L=b.substr(-s),R=new $t.util.ByteBuffer;R.fillWithByte(0,8),R.putBytes(u),R.putBytes(L),t.start(),t.update(R.getBytes());var z=t.digest().getBytes();return S===z},o}});var oa=K((Rd,ls)=>{var M=$();Nt();ut();xr();ft();as();wt();Ht();na();Ir();ne();var d=M.asn1,D=ls.exports=M.pki=M.pki||{},ae=D.oids,ye={};ye.CN=ae.commonName;ye.commonName="CN";ye.C=ae.countryName;ye.countryName="C";ye.L=ae.localityName;ye.localityName="L";ye.ST=ae.stateOrProvinceName;ye.stateOrProvinceName="ST";ye.O=ae.organizationName;ye.organizationName="O";ye.OU=ae.organizationalUnitName;ye.organizationalUnitName="OU";ye.E=ae.emailAddress;ye.emailAddress="E";var ss=M.pki.rsa.publicKeyValidator,ql={name:"Certificate",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,captureAsn1:"tbsCertificate",value:[{name:"Certificate.TBSCertificate.version",tagClass:d.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.version.integer",tagClass:d.Class.UNIVERSAL,type:d.Type.INTEGER,constructed:!1,capture:"certVersion"}]},{name:"Certificate.TBSCertificate.serialNumber",tagClass:d.Class.UNIVERSAL,type:d.Type.INTEGER,constructed:!1,capture:"certSerialNumber"},{name:"Certificate.TBSCertificate.signature",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.signature.algorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1,capture:"certinfoSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:d.Class.UNIVERSAL,optional:!0,captureAsn1:"certinfoSignatureParams"}]},{name:"Certificate.TBSCertificate.issuer",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,captureAsn1:"certIssuer"},{name:"Certificate.TBSCertificate.validity",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.TBSCertificate.validity.notBefore (utc)",tagClass:d.Class.UNIVERSAL,type:d.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity1UTCTime"},{name:"Certificate.TBSCertificate.validity.notBefore (generalized)",tagClass:d.Class.UNIVERSAL,type:d.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity2GeneralizedTime"},{name:"Certificate.TBSCertificate.validity.notAfter (utc)",tagClass:d.Class.UNIVERSAL,type:d.Type.UTCTIME,constructed:!1,optional:!0,capture:"certValidity3UTCTime"},{name:"Certificate.TBSCertificate.validity.notAfter (generalized)",tagClass:d.Class.UNIVERSAL,type:d.Type.GENERALIZEDTIME,constructed:!1,optional:!0,capture:"certValidity4GeneralizedTime"}]},{name:"Certificate.TBSCertificate.subject",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,captureAsn1:"certSubject"},ss,{name:"Certificate.TBSCertificate.issuerUniqueID",tagClass:d.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.issuerUniqueID.id",tagClass:d.Class.UNIVERSAL,type:d.Type.BITSTRING,constructed:!1,captureBitStringValue:"certIssuerUniqueId"}]},{name:"Certificate.TBSCertificate.subjectUniqueID",tagClass:d.Class.CONTEXT_SPECIFIC,type:2,constructed:!0,optional:!0,value:[{name:"Certificate.TBSCertificate.subjectUniqueID.id",tagClass:d.Class.UNIVERSAL,type:d.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSubjectUniqueId"}]},{name:"Certificate.TBSCertificate.extensions",tagClass:d.Class.CONTEXT_SPECIFIC,type:3,constructed:!0,captureAsn1:"certExtensions",optional:!0}]},{name:"Certificate.signatureAlgorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"Certificate.signatureAlgorithm.algorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1,capture:"certSignatureOid"},{name:"Certificate.TBSCertificate.signature.parameters",tagClass:d.Class.UNIVERSAL,optional:!0,captureAsn1:"certSignatureParams"}]},{name:"Certificate.signatureValue",tagClass:d.Class.UNIVERSAL,type:d.Type.BITSTRING,constructed:!1,captureBitStringValue:"certSignature"}]},Ml={name:"rsapss",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.hashAlgorithm",tagClass:d.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier",tagClass:d.Class.UNIVERSAL,type:d.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.hashAlgorithm.AlgorithmIdentifier.algorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1,capture:"hashOid"}]}]},{name:"rsapss.maskGenAlgorithm",tagClass:d.Class.CONTEXT_SPECIFIC,type:1,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier",tagClass:d.Class.UNIVERSAL,type:d.Class.SEQUENCE,constructed:!0,optional:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.algorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1,capture:"maskGenOid"},{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"rsapss.maskGenAlgorithm.AlgorithmIdentifier.params.algorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1,capture:"maskGenHashOid"}]}]}]},{name:"rsapss.saltLength",tagClass:d.Class.CONTEXT_SPECIFIC,type:2,optional:!0,value:[{name:"rsapss.saltLength.saltLength",tagClass:d.Class.UNIVERSAL,type:d.Class.INTEGER,constructed:!1,capture:"saltLength"}]},{name:"rsapss.trailerField",tagClass:d.Class.CONTEXT_SPECIFIC,type:3,optional:!0,value:[{name:"rsapss.trailer.trailer",tagClass:d.Class.UNIVERSAL,type:d.Class.INTEGER,constructed:!1,capture:"trailer"}]}]},Hl={name:"CertificationRequestInfo",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfo",value:[{name:"CertificationRequestInfo.integer",tagClass:d.Class.UNIVERSAL,type:d.Type.INTEGER,constructed:!1,capture:"certificationRequestInfoVersion"},{name:"CertificationRequestInfo.subject",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,captureAsn1:"certificationRequestInfoSubject"},ss,{name:"CertificationRequestInfo.attributes",tagClass:d.Class.CONTEXT_SPECIFIC,type:0,constructed:!0,optional:!0,capture:"certificationRequestInfoAttributes",value:[{name:"CertificationRequestInfo.attributes",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequestInfo.attributes.type",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1},{name:"CertificationRequestInfo.attributes.value",tagClass:d.Class.UNIVERSAL,type:d.Type.SET,constructed:!0}]}]}]},Gl={name:"CertificationRequest",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,captureAsn1:"csr",value:[Hl,{name:"CertificationRequest.signatureAlgorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.SEQUENCE,constructed:!0,value:[{name:"CertificationRequest.signatureAlgorithm.algorithm",tagClass:d.Class.UNIVERSAL,type:d.Type.OID,constructed:!1,capture:"csrSignatureOid"},{name:"CertificationRequest.signatureAlgorithm.parameters",tagClass:d.Class.UNIVERSAL,optional:!0,captureAsn1:"csrSignatureParams"}]},{name:"CertificationRequest.signature",tagClass:d.Class.UNIVERSAL,type:d.Type.BITSTRING,constructed:!1,captureBitStringValue:"csrSignature"}]};D.RDNAttributesAsArray=function(e,t){for(var a=[],r,n,s,i=0;i<e.value.length;++i){r=e.value[i];for(var o=0;o<r.value.length;++o)s={},n=r.value[o],s.type=d.derToOid(n.value[0].value),s.value=n.value[1].value,s.valueTagClass=n.value[1].type,s.type in ae&&(s.name=ae[s.type],s.name in ye&&(s.shortName=ye[s.name])),t&&(t.update(s.type),t.update(s.value)),a.push(s)}return a};D.CRIAttributesAsArray=function(e){for(var t=[],a=0;a<e.length;++a)for(var r=e[a],n=d.derToOid(r.value[0].value),s=r.value[1].value,i=0;i<s.length;++i){var o={};if(o.type=n,o.value=s[i].value,o.valueTagClass=s[i].type,o.type in ae&&(o.name=ae[o.type],o.name in ye&&(o.shortName=ye[o.name])),o.type===ae.extensionRequest){o.extensions=[];for(var u=0;u<o.value.length;++u)o.extensions.push(D.certificateExtensionFromAsn1(o.value[u]))}t.push(o)}return t};function Dt(e,t){typeof t=="string"&&(t={shortName:t});for(var a=null,r,n=0;a===null&&n<e.attributes.length;++n)r=e.attributes[n],(t.type&&t.type===r.type||t.name&&t.name===r.name||t.shortName&&t.shortName===r.shortName)&&(a=r);return a}var ia=function(e,t,a){var r={};if(e!==ae["RSASSA-PSS"])return r;a&&(r={hash:{algorithmOid:ae.sha1},mgf:{algorithmOid:ae.mgf1,hash:{algorithmOid:ae.sha1}},saltLength:20});var n={},s=[];if(!d.validate(t,Ml,n,s)){var i=new Error("Cannot read RSASSA-PSS parameter block.");throw i.errors=s,i}return n.hashOid!==void 0&&(r.hash=r.hash||{},r.hash.algorithmOid=d.derToOid(n.hashOid)),n.maskGenOid!==void 0&&(r.mgf=r.mgf||{},r.mgf.algorithmOid=d.derToOid(n.maskGenOid),r.mgf.hash=r.mgf.hash||{},r.mgf.hash.algorithmOid=d.derToOid(n.maskGenHashOid)),n.saltLength!==void 0&&(r.saltLength=n.saltLength.charCodeAt(0)),r},sa=function(e){switch(ae[e.signatureOid]){case"sha1WithRSAEncryption":case"sha1WithRSASignature":return M.md.sha1.create();case"md5WithRSAEncryption":return M.md.md5.create();case"sha256WithRSAEncryption":return M.md.sha256.create();case"sha384WithRSAEncryption":return M.md.sha384.create();case"sha512WithRSAEncryption":return M.md.sha512.create();case"RSASSA-PSS":return M.md.sha256.create();default:var t=new Error("Could not compute "+e.type+" digest. Unknown signature OID.");throw t.signatureOid=e.signatureOid,t}},os=function(e){var t=e.certificate,a;switch(t.signatureOid){case ae.sha1WithRSAEncryption:case ae.sha1WithRSASignature:break;case ae["RSASSA-PSS"]:var r,n;if(r=ae[t.signatureParameters.mgf.hash.algorithmOid],r===void 0||M.md[r]===void 0){var s=new Error("Unsupported MGF hash function.");throw s.oid=t.signatureParameters.mgf.hash.algorithmOid,s.name=r,s}if(n=ae[t.signatureParameters.mgf.algorithmOid],n===void 0||M.mgf[n]===void 0){var s=new Error("Unsupported MGF function.");throw s.oid=t.signatureParameters.mgf.algorithmOid,s.name=n,s}if(n=M.mgf[n].create(M.md[r].create()),r=ae[t.signatureParameters.hash.algorithmOid],r===void 0||M.md[r]===void 0){var s=new Error("Unsupported RSASSA-PSS hash function.");throw s.oid=t.signatureParameters.hash.algorithmOid,s.name=r,s}a=M.pss.create(M.md[r].create(),n,t.signatureParameters.saltLength);break}return t.publicKey.verify(e.md.digest().getBytes(),e.signature,a)};D.certificateFromPem=function(e,t,a){var r=M.pem.decode(e)[0];if(r.type!=="CERTIFICATE"&&r.type!=="X509 CERTIFICATE"&&r.type!=="TRUSTED CERTIFICATE"){var n=new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');throw n.headerType=r.type,n}if(r.procType&&r.procType.type==="ENCRYPTED")throw new Error("Could not convert certificate from PEM; PEM is encrypted.");var s=d.fromDer(r.body,a);return D.certificateFromAsn1(s,t)};D.certificateToPem=function(e,t){var a={type:"CERTIFICATE",body:d.toDer(D.certificateToAsn1(e)).getBytes()};return M.pem.encode(a,{maxline:t})};D.publicKeyFromPem=function(e){var t=M.pem.decode(e)[0];if(t.type!=="PUBLIC KEY"&&t.type!=="RSA PUBLIC KEY"){var a=new Error('Could not convert public key from PEM; PEM header type is not "PUBLIC KEY" or "RSA PUBLIC KEY".');throw a.headerType=t.type,a}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert public key from PEM; PEM is encrypted.");var r=d.fromDer(t.body);return D.publicKeyFromAsn1(r)};D.publicKeyToPem=function(e,t){var a={type:"PUBLIC KEY",body:d.toDer(D.publicKeyToAsn1(e)).getBytes()};return M.pem.encode(a,{maxline:t})};D.publicKeyToRSAPublicKeyPem=function(e,t){var a={type:"RSA PUBLIC KEY",body:d.toDer(D.publicKeyToRSAPublicKey(e)).getBytes()};return M.pem.encode(a,{maxline:t})};D.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||M.md.sha1.create(),r=t.type||"RSAPublicKey",n;switch(r){case"RSAPublicKey":n=d.toDer(D.publicKeyToRSAPublicKey(e)).getBytes();break;case"SubjectPublicKeyInfo":n=d.toDer(D.publicKeyToAsn1(e)).getBytes();break;default:throw new Error('Unknown fingerprint type "'+t.type+'".')}a.start(),a.update(n);var s=a.digest();if(t.encoding==="hex"){var i=s.toHex();return t.delimiter?i.match(/.{2}/g).join(t.delimiter):i}else{if(t.encoding==="binary")return s.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return s};D.certificationRequestFromPem=function(e,t,a){var r=M.pem.decode(e)[0];if(r.type!=="CERTIFICATE REQUEST"){var n=new Error('Could not convert certification request from PEM; PEM header type is not "CERTIFICATE REQUEST".');throw n.headerType=r.type,n}if(r.procType&&r.procType.type==="ENCRYPTED")throw new Error("Could not convert certification request from PEM; PEM is encrypted.");var s=d.fromDer(r.body,a);return D.certificationRequestFromAsn1(s,t)};D.certificationRequestToPem=function(e,t){var a={type:"CERTIFICATE REQUEST",body:d.toDer(D.certificationRequestToAsn1(e)).getBytes()};return M.pem.encode(a,{maxline:t})};D.createCertificate=function(){var e={};return e.version=2,e.serialNumber="00",e.signatureOid=null,e.signature=null,e.siginfo={},e.siginfo.algorithmOid=null,e.validity={},e.validity.notBefore=new Date,e.validity.notAfter=new Date,e.issuer={},e.issuer.getField=function(t){return Dt(e.issuer,t)},e.issuer.addField=function(t){nt([t]),e.issuer.attributes.push(t)},e.issuer.attributes=[],e.issuer.hash=null,e.subject={},e.subject.getField=function(t){return Dt(e.subject,t)},e.subject.addField=function(t){nt([t]),e.subject.attributes.push(t)},e.subject.attributes=[],e.subject.hash=null,e.extensions=[],e.publicKey=null,e.md=null,e.setSubject=function(t,a){nt(t),e.subject.attributes=t,delete e.subject.uniqueId,a&&(e.subject.uniqueId=a),e.subject.hash=null},e.setIssuer=function(t,a){nt(t),e.issuer.attributes=t,delete e.issuer.uniqueId,a&&(e.issuer.uniqueId=a),e.issuer.hash=null},e.setExtensions=function(t){for(var a=0;a<t.length;++a)us(t[a],{cert:e});e.extensions=t},e.getExtension=function(t){typeof t=="string"&&(t={name:t});for(var a=null,r,n=0;a===null&&n<e.extensions.length;++n)r=e.extensions[n],(t.id&&r.id===t.id||t.name&&r.name===t.name)&&(a=r);return a},e.sign=function(t,a){e.md=a||M.md.sha1.create();var r=ae[e.md.algorithm+"WithRSAEncryption"];if(!r){var n=new Error("Could not compute certificate digest. Unknown message digest algorithm OID.");throw n.algorithm=e.md.algorithm,n}e.signatureOid=e.siginfo.algorithmOid=r,e.tbsCertificate=D.getTBSCertificate(e);var s=d.toDer(e.tbsCertificate);e.md.update(s.getBytes()),e.signature=t.sign(e.md)},e.verify=function(t){var a=!1;if(!e.issued(t)){var r=t.issuer,n=e.subject,s=new Error("The parent certificate did not issue the given child certificate; the child certificate's issuer does not match the parent's subject.");throw s.expectedIssuer=n.attributes,s.actualIssuer=r.attributes,s}var i=t.md;if(i===null){i=sa({signatureOid:t.signatureOid,type:"certificate"});var o=t.tbsCertificate||D.getTBSCertificate(t),u=d.toDer(o);i.update(u.getBytes())}return i!==null&&(a=os({certificate:e,md:i,signature:t.signature})),a},e.isIssuer=function(t){var a=!1,r=e.issuer,n=t.subject;if(r.hash&&n.hash)a=r.hash===n.hash;else if(r.attributes.length===n.attributes.length){a=!0;for(var s,i,o=0;a&&o<r.attributes.length;++o)s=r.attributes[o],i=n.attributes[o],(s.type!==i.type||s.value!==i.value)&&(a=!1)}return a},e.issued=function(t){return t.isIssuer(e)},e.generateSubjectKeyIdentifier=function(){return D.getPublicKeyFingerprint(e.publicKey,{type:"RSAPublicKey"})},e.verifySubjectKeyIdentifier=function(){for(var t=ae.subjectKeyIdentifier,a=0;a<e.extensions.length;++a){var r=e.extensions[a];if(r.id===t){var n=e.generateSubjectKeyIdentifier().getBytes();return M.util.hexToBytes(r.subjectKeyIdentifier)===n}}return!1},e};D.certificateFromAsn1=function(e,t){var a={},r=[];if(!d.validate(e,ql,a,r)){var n=new Error("Cannot read X.509 certificate. ASN.1 object is not an X509v3 Certificate.");throw n.errors=r,n}var s=d.derToOid(a.publicKeyOid);if(s!==D.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var i=D.createCertificate();i.version=a.certVersion?a.certVersion.charCodeAt(0):0;var o=M.util.createBuffer(a.certSerialNumber);i.serialNumber=o.toHex(),i.signatureOid=M.asn1.derToOid(a.certSignatureOid),i.signatureParameters=ia(i.signatureOid,a.certSignatureParams,!0),i.siginfo.algorithmOid=M.asn1.derToOid(a.certinfoSignatureOid),i.siginfo.parameters=ia(i.siginfo.algorithmOid,a.certinfoSignatureParams,!1),i.signature=a.certSignature;var u=[];if(a.certValidity1UTCTime!==void 0&&u.push(d.utcTimeToDate(a.certValidity1UTCTime)),a.certValidity2GeneralizedTime!==void 0&&u.push(d.generalizedTimeToDate(a.certValidity2GeneralizedTime)),a.certValidity3UTCTime!==void 0&&u.push(d.utcTimeToDate(a.certValidity3UTCTime)),a.certValidity4GeneralizedTime!==void 0&&u.push(d.generalizedTimeToDate(a.certValidity4GeneralizedTime)),u.length>2)throw new Error("Cannot read notBefore/notAfter validity times; more than two times were provided in the certificate.");if(u.length<2)throw new Error("Cannot read notBefore/notAfter validity times; they were not provided as either UTCTime or GeneralizedTime.");if(i.validity.notBefore=u[0],i.validity.notAfter=u[1],i.tbsCertificate=a.tbsCertificate,t){i.md=sa({signatureOid:i.signatureOid,type:"certificate"});var l=d.toDer(i.tbsCertificate);i.md.update(l.getBytes())}var f=M.md.sha1.create(),c=d.toDer(a.certIssuer);f.update(c.getBytes()),i.issuer.getField=function(v){return Dt(i.issuer,v)},i.issuer.addField=function(v){nt([v]),i.issuer.attributes.push(v)},i.issuer.attributes=D.RDNAttributesAsArray(a.certIssuer),a.certIssuerUniqueId&&(i.issuer.uniqueId=a.certIssuerUniqueId),i.issuer.hash=f.digest().toHex();var y=M.md.sha1.create(),g=d.toDer(a.certSubject);return y.update(g.getBytes()),i.subject.getField=function(v){return Dt(i.subject,v)},i.subject.addField=function(v){nt([v]),i.subject.attributes.push(v)},i.subject.attributes=D.RDNAttributesAsArray(a.certSubject),a.certSubjectUniqueId&&(i.subject.uniqueId=a.certSubjectUniqueId),i.subject.hash=y.digest().toHex(),a.certExtensions?i.extensions=D.certificateExtensionsFromAsn1(a.certExtensions):i.extensions=[],i.publicKey=D.publicKeyFromAsn1(a.subjectPublicKeyInfo),i};D.certificateExtensionsFromAsn1=function(e){for(var t=[],a=0;a<e.value.length;++a)for(var r=e.value[a],n=0;n<r.value.length;++n)t.push(D.certificateExtensionFromAsn1(r.value[n]));return t};D.certificateExtensionFromAsn1=function(e){var t={};if(t.id=d.derToOid(e.value[0].value),t.critical=!1,e.value[1].type===d.Type.BOOLEAN?(t.critical=e.value[1].value.charCodeAt(0)!==0,t.value=e.value[2].value):t.value=e.value[1].value,t.id in ae){if(t.name=ae[t.id],t.name==="keyUsage"){var a=d.fromDer(t.value),r=0,n=0;a.value.length>1&&(r=a.value.charCodeAt(1),n=a.value.length>2?a.value.charCodeAt(2):0),t.digitalSignature=(r&128)===128,t.nonRepudiation=(r&64)===64,t.keyEncipherment=(r&32)===32,t.dataEncipherment=(r&16)===16,t.keyAgreement=(r&8)===8,t.keyCertSign=(r&4)===4,t.cRLSign=(r&2)===2,t.encipherOnly=(r&1)===1,t.decipherOnly=(n&128)===128}else if(t.name==="basicConstraints"){var a=d.fromDer(t.value);a.value.length>0&&a.value[0].type===d.Type.BOOLEAN?t.cA=a.value[0].value.charCodeAt(0)!==0:t.cA=!1;var s=null;a.value.length>0&&a.value[0].type===d.Type.INTEGER?s=a.value[0].value:a.value.length>1&&(s=a.value[1].value),s!==null&&(t.pathLenConstraint=d.derToInteger(s))}else if(t.name==="extKeyUsage")for(var a=d.fromDer(t.value),i=0;i<a.value.length;++i){var o=d.derToOid(a.value[i].value);o in ae?t[ae[o]]=!0:t[o]=!0}else if(t.name==="nsCertType"){var a=d.fromDer(t.value),r=0;a.value.length>1&&(r=a.value.charCodeAt(1)),t.client=(r&128)===128,t.server=(r&64)===64,t.email=(r&32)===32,t.objsign=(r&16)===16,t.reserved=(r&8)===8,t.sslCA=(r&4)===4,t.emailCA=(r&2)===2,t.objCA=(r&1)===1}else if(t.name==="subjectAltName"||t.name==="issuerAltName"){t.altNames=[];for(var u,a=d.fromDer(t.value),l=0;l<a.value.length;++l){u=a.value[l];var f={type:u.type,value:u.value};switch(t.altNames.push(f),u.type){case 1:case 2:case 6:break;case 7:f.ip=M.util.bytesToIP(u.value);break;case 8:f.oid=d.derToOid(u.value);break;default:}}}else if(t.name==="subjectKeyIdentifier"){var a=d.fromDer(t.value);t.subjectKeyIdentifier=M.util.bytesToHex(a.value)}}return t};D.certificationRequestFromAsn1=function(e,t){var a={},r=[];if(!d.validate(e,Gl,a,r)){var n=new Error("Cannot read PKCS#10 certificate request. ASN.1 object is not a PKCS#10 CertificationRequest.");throw n.errors=r,n}var s=d.derToOid(a.publicKeyOid);if(s!==D.oids.rsaEncryption)throw new Error("Cannot read public key. OID is not RSA.");var i=D.createCertificationRequest();if(i.version=a.csrVersion?a.csrVersion.charCodeAt(0):0,i.signatureOid=M.asn1.derToOid(a.csrSignatureOid),i.signatureParameters=ia(i.signatureOid,a.csrSignatureParams,!0),i.siginfo.algorithmOid=M.asn1.derToOid(a.csrSignatureOid),i.siginfo.parameters=ia(i.siginfo.algorithmOid,a.csrSignatureParams,!1),i.signature=a.csrSignature,i.certificationRequestInfo=a.certificationRequestInfo,t){i.md=sa({signatureOid:i.signatureOid,type:"certification request"});var o=d.toDer(i.certificationRequestInfo);i.md.update(o.getBytes())}var u=M.md.sha1.create();return i.subject.getField=function(l){return Dt(i.subject,l)},i.subject.addField=function(l){nt([l]),i.subject.attributes.push(l)},i.subject.attributes=D.RDNAttributesAsArray(a.certificationRequestInfoSubject,u),i.subject.hash=u.digest().toHex(),i.publicKey=D.publicKeyFromAsn1(a.subjectPublicKeyInfo),i.getAttribute=function(l){return Dt(i,l)},i.addAttribute=function(l){nt([l]),i.attributes.push(l)},i.attributes=D.CRIAttributesAsArray(a.certificationRequestInfoAttributes||[]),i};D.createCertificationRequest=function(){var e={};return e.version=0,e.signatureOid=null,e.signature=null,e.siginfo={},e.siginfo.algorithmOid=null,e.subject={},e.subject.getField=function(t){return Dt(e.subject,t)},e.subject.addField=function(t){nt([t]),e.subject.attributes.push(t)},e.subject.attributes=[],e.subject.hash=null,e.publicKey=null,e.attributes=[],e.getAttribute=function(t){return Dt(e,t)},e.addAttribute=function(t){nt([t]),e.attributes.push(t)},e.md=null,e.setSubject=function(t){nt(t),e.subject.attributes=t,e.subject.hash=null},e.setAttributes=function(t){nt(t),e.attributes=t},e.sign=function(t,a){e.md=a||M.md.sha1.create();var r=ae[e.md.algorithm+"WithRSAEncryption"];if(!r){var n=new Error("Could not compute certification request digest. Unknown message digest algorithm OID.");throw n.algorithm=e.md.algorithm,n}e.signatureOid=e.siginfo.algorithmOid=r,e.certificationRequestInfo=D.getCertificationRequestInfo(e);var s=d.toDer(e.certificationRequestInfo);e.md.update(s.getBytes()),e.signature=t.sign(e.md)},e.verify=function(){var t=!1,a=e.md;if(a===null){a=sa({signatureOid:e.signatureOid,type:"certification request"});var r=e.certificationRequestInfo||D.getCertificationRequestInfo(e),n=d.toDer(r);a.update(n.getBytes())}return a!==null&&(t=os({certificate:e,md:a,signature:e.signature})),t},e};function ur(e){for(var t=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]),a,r,n=e.attributes,s=0;s<n.length;++s){a=n[s];var i=a.value,o=d.Type.PRINTABLESTRING;"valueTagClass"in a&&(o=a.valueTagClass,o===d.Type.UTF8&&(i=M.util.encodeUtf8(i))),r=d.create(d.Class.UNIVERSAL,d.Type.SET,!0,[d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(a.type).getBytes()),d.create(d.Class.UNIVERSAL,o,!1,i)])]),t.value.push(r)}return t}function nt(e){for(var t,a=0;a<e.length;++a){if(t=e[a],typeof t.name>"u"&&(t.type&&t.type in D.oids?t.name=D.oids[t.type]:t.shortName&&t.shortName in ye&&(t.name=D.oids[ye[t.shortName]])),typeof t.type>"u")if(t.name&&t.name in D.oids)t.type=D.oids[t.name];else{var r=new Error("Attribute type not specified.");throw r.attribute=t,r}if(typeof t.shortName>"u"&&t.name&&t.name in ye&&(t.shortName=ye[t.name]),t.type===ae.extensionRequest&&(t.valueConstructed=!0,t.valueTagClass=d.Type.SEQUENCE,!t.value&&t.extensions)){t.value=[];for(var n=0;n<t.extensions.length;++n)t.value.push(D.certificateExtensionToAsn1(us(t.extensions[n])))}if(typeof t.value>"u"){var r=new Error("Attribute value not specified.");throw r.attribute=t,r}}}function us(e,t){if(t=t||{},typeof e.name>"u"&&e.id&&e.id in D.oids&&(e.name=D.oids[e.id]),typeof e.id>"u")if(e.name&&e.name in D.oids)e.id=D.oids[e.name];else{var a=new Error("Extension ID not specified.");throw a.extension=e,a}if(typeof e.value<"u")return e;if(e.name==="keyUsage"){var r=0,n=0,s=0;e.digitalSignature&&(n|=128,r=7),e.nonRepudiation&&(n|=64,r=6),e.keyEncipherment&&(n|=32,r=5),e.dataEncipherment&&(n|=16,r=4),e.keyAgreement&&(n|=8,r=3),e.keyCertSign&&(n|=4,r=2),e.cRLSign&&(n|=2,r=1),e.encipherOnly&&(n|=1,r=0),e.decipherOnly&&(s|=128,r=7);var i=String.fromCharCode(r);s!==0?i+=String.fromCharCode(n)+String.fromCharCode(s):n!==0&&(i+=String.fromCharCode(n)),e.value=d.create(d.Class.UNIVERSAL,d.Type.BITSTRING,!1,i)}else if(e.name==="basicConstraints")e.value=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]),e.cA&&e.value.value.push(d.create(d.Class.UNIVERSAL,d.Type.BOOLEAN,!1,"\xFF")),"pathLenConstraint"in e&&e.value.value.push(d.create(d.Class.UNIVERSAL,d.Type.INTEGER,!1,d.integerToDer(e.pathLenConstraint).getBytes()));else if(e.name==="extKeyUsage"){e.value=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]);var o=e.value.value;for(var u in e)e[u]===!0&&(u in ae?o.push(d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(ae[u]).getBytes())):u.indexOf(".")!==-1&&o.push(d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(u).getBytes())))}else if(e.name==="nsCertType"){var r=0,n=0;e.client&&(n|=128,r=7),e.server&&(n|=64,r=6),e.email&&(n|=32,r=5),e.objsign&&(n|=16,r=4),e.reserved&&(n|=8,r=3),e.sslCA&&(n|=4,r=2),e.emailCA&&(n|=2,r=1),e.objCA&&(n|=1,r=0);var i=String.fromCharCode(r);n!==0&&(i+=String.fromCharCode(n)),e.value=d.create(d.Class.UNIVERSAL,d.Type.BITSTRING,!1,i)}else if(e.name==="subjectAltName"||e.name==="issuerAltName"){e.value=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]);for(var l,f=0;f<e.altNames.length;++f){l=e.altNames[f];var i=l.value;if(l.type===7&&l.ip){if(i=M.util.bytesFromIP(l.ip),i===null){var a=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw a.extension=e,a}}else l.type===8&&(l.oid?i=d.oidToDer(d.oidToDer(l.oid)):i=d.oidToDer(i));e.value.value.push(d.create(d.Class.CONTEXT_SPECIFIC,l.type,!1,i))}}else if(e.name==="nsComment"&&t.cert){if(!/^[\x00-\x7F]*$/.test(e.comment)||e.comment.length<1||e.comment.length>128)throw new Error('Invalid "nsComment" content.');e.value=d.create(d.Class.UNIVERSAL,d.Type.IA5STRING,!1,e.comment)}else if(e.name==="subjectKeyIdentifier"&&t.cert){var c=t.cert.generateSubjectKeyIdentifier();e.subjectKeyIdentifier=c.toHex(),e.value=d.create(d.Class.UNIVERSAL,d.Type.OCTETSTRING,!1,c.getBytes())}else if(e.name==="authorityKeyIdentifier"&&t.cert){e.value=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]);var o=e.value.value;if(e.keyIdentifier){var y=e.keyIdentifier===!0?t.cert.generateSubjectKeyIdentifier().getBytes():e.keyIdentifier;o.push(d.create(d.Class.CONTEXT_SPECIFIC,0,!1,y))}if(e.authorityCertIssuer){var g=[d.create(d.Class.CONTEXT_SPECIFIC,4,!0,[ur(e.authorityCertIssuer===!0?t.cert.issuer:e.authorityCertIssuer)])];o.push(d.create(d.Class.CONTEXT_SPECIFIC,1,!0,g))}if(e.serialNumber){var v=M.util.hexToBytes(e.serialNumber===!0?t.cert.serialNumber:e.serialNumber);o.push(d.create(d.Class.CONTEXT_SPECIFIC,2,!1,v))}}else if(e.name==="cRLDistributionPoints"){e.value=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]);for(var o=e.value.value,x=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]),S=d.create(d.Class.CONTEXT_SPECIFIC,0,!0,[]),l,f=0;f<e.altNames.length;++f){l=e.altNames[f];var i=l.value;if(l.type===7&&l.ip){if(i=M.util.bytesFromIP(l.ip),i===null){var a=new Error('Extension "ip" value is not a valid IPv4 or IPv6 address.');throw a.extension=e,a}}else l.type===8&&(l.oid?i=d.oidToDer(d.oidToDer(l.oid)):i=d.oidToDer(i));S.value.push(d.create(d.Class.CONTEXT_SPECIFIC,l.type,!1,i))}x.value.push(d.create(d.Class.CONTEXT_SPECIFIC,0,!0,[S])),o.push(x)}if(typeof e.value>"u"){var a=new Error("Extension value not specified.");throw a.extension=e,a}return e}function en(e,t){if(e===ae["RSASSA-PSS"]){var a=[];return t.hash.algorithmOid!==void 0&&a.push(d.create(d.Class.CONTEXT_SPECIFIC,0,!0,[d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(t.hash.algorithmOid).getBytes()),d.create(d.Class.UNIVERSAL,d.Type.NULL,!1,"")])])),t.mgf.algorithmOid!==void 0&&a.push(d.create(d.Class.CONTEXT_SPECIFIC,1,!0,[d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(t.mgf.algorithmOid).getBytes()),d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(t.mgf.hash.algorithmOid).getBytes()),d.create(d.Class.UNIVERSAL,d.Type.NULL,!1,"")])])])),t.saltLength!==void 0&&a.push(d.create(d.Class.CONTEXT_SPECIFIC,2,!0,[d.create(d.Class.UNIVERSAL,d.Type.INTEGER,!1,d.integerToDer(t.saltLength).getBytes())])),d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,a)}else return d.create(d.Class.UNIVERSAL,d.Type.NULL,!1,"")}function zl(e){var t=d.create(d.Class.CONTEXT_SPECIFIC,0,!0,[]);if(e.attributes.length===0)return t;for(var a=e.attributes,r=0;r<a.length;++r){var n=a[r],s=n.value,i=d.Type.UTF8;"valueTagClass"in n&&(i=n.valueTagClass),i===d.Type.UTF8&&(s=M.util.encodeUtf8(s));var o=!1;"valueConstructed"in n&&(o=n.valueConstructed);var u=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(n.type).getBytes()),d.create(d.Class.UNIVERSAL,d.Type.SET,!0,[d.create(d.Class.UNIVERSAL,i,o,s)])]);t.value.push(u)}return t}var Ql=new Date("1950-01-01T00:00:00Z"),Yl=new Date("2050-01-01T00:00:00Z");function is(e){return e>=Ql&&e<Yl?d.create(d.Class.UNIVERSAL,d.Type.UTCTIME,!1,d.dateToUtcTime(e)):d.create(d.Class.UNIVERSAL,d.Type.GENERALIZEDTIME,!1,d.dateToGeneralizedTime(e))}D.getTBSCertificate=function(e){var t=is(e.validity.notBefore),a=is(e.validity.notAfter),r=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.CONTEXT_SPECIFIC,0,!0,[d.create(d.Class.UNIVERSAL,d.Type.INTEGER,!1,d.integerToDer(e.version).getBytes())]),d.create(d.Class.UNIVERSAL,d.Type.INTEGER,!1,M.util.hexToBytes(e.serialNumber)),d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(e.siginfo.algorithmOid).getBytes()),en(e.siginfo.algorithmOid,e.siginfo.parameters)]),ur(e.issuer),d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[t,a]),ur(e.subject),D.publicKeyToAsn1(e.publicKey)]);return e.issuer.uniqueId&&r.value.push(d.create(d.Class.CONTEXT_SPECIFIC,1,!0,[d.create(d.Class.UNIVERSAL,d.Type.BITSTRING,!1,"\0"+e.issuer.uniqueId)])),e.subject.uniqueId&&r.value.push(d.create(d.Class.CONTEXT_SPECIFIC,2,!0,[d.create(d.Class.UNIVERSAL,d.Type.BITSTRING,!1,"\0"+e.subject.uniqueId)])),e.extensions.length>0&&r.value.push(D.certificateExtensionsToAsn1(e.extensions)),r};D.getCertificationRequestInfo=function(e){var t=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.INTEGER,!1,d.integerToDer(e.version).getBytes()),ur(e.subject),D.publicKeyToAsn1(e.publicKey),zl(e)]);return t};D.distinguishedNameToAsn1=function(e){return ur(e)};D.certificateToAsn1=function(e){var t=e.tbsCertificate||D.getTBSCertificate(e);return d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[t,d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(e.signatureOid).getBytes()),en(e.signatureOid,e.signatureParameters)]),d.create(d.Class.UNIVERSAL,d.Type.BITSTRING,!1,"\0"+e.signature)])};D.certificateExtensionsToAsn1=function(e){var t=d.create(d.Class.CONTEXT_SPECIFIC,3,!0,[]),a=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]);t.value.push(a);for(var r=0;r<e.length;++r)a.value.push(D.certificateExtensionToAsn1(e[r]));return t};D.certificateExtensionToAsn1=function(e){var t=d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[]);t.value.push(d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(e.id).getBytes())),e.critical&&t.value.push(d.create(d.Class.UNIVERSAL,d.Type.BOOLEAN,!1,"\xFF"));var a=e.value;return typeof e.value!="string"&&(a=d.toDer(a).getBytes()),t.value.push(d.create(d.Class.UNIVERSAL,d.Type.OCTETSTRING,!1,a)),t};D.certificationRequestToAsn1=function(e){var t=e.certificationRequestInfo||D.getCertificationRequestInfo(e);return d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[t,d.create(d.Class.UNIVERSAL,d.Type.SEQUENCE,!0,[d.create(d.Class.UNIVERSAL,d.Type.OID,!1,d.oidToDer(e.signatureOid).getBytes()),en(e.signatureOid,e.signatureParameters)]),d.create(d.Class.UNIVERSAL,d.Type.BITSTRING,!1,"\0"+e.signature)])};D.createCaStore=function(e){var t={certs:{}};t.getIssuer=function(i){var o=a(i.issuer);return o},t.addCertificate=function(i){if(typeof i=="string"&&(i=M.pki.certificateFromPem(i)),r(i.subject),!t.hasCertificate(i))if(i.subject.hash in t.certs){var o=t.certs[i.subject.hash];M.util.isArray(o)||(o=[o]),o.push(i),t.certs[i.subject.hash]=o}else t.certs[i.subject.hash]=i},t.hasCertificate=function(i){typeof i=="string"&&(i=M.pki.certificateFromPem(i));var o=a(i.subject);if(!o)return!1;M.util.isArray(o)||(o=[o]);for(var u=d.toDer(D.certificateToAsn1(i)).getBytes(),l=0;l<o.length;++l){var f=d.toDer(D.certificateToAsn1(o[l])).getBytes();if(u===f)return!0}return!1},t.listAllCertificates=function(){var i=[];for(var o in t.certs)if(t.certs.hasOwnProperty(o)){var u=t.certs[o];if(!M.util.isArray(u))i.push(u);else for(var l=0;l<u.length;++l)i.push(u[l])}return i},t.removeCertificate=function(i){var o;if(typeof i=="string"&&(i=M.pki.certificateFromPem(i)),r(i.subject),!t.hasCertificate(i))return null;var u=a(i.subject);if(!M.util.isArray(u))return o=t.certs[i.subject.hash],delete t.certs[i.subject.hash],o;for(var l=d.toDer(D.certificateToAsn1(i)).getBytes(),f=0;f<u.length;++f){var c=d.toDer(D.certificateToAsn1(u[f])).getBytes();l===c&&(o=u[f],u.splice(f,1))}return u.length===0&&delete t.certs[i.subject.hash],o};function a(i){return r(i),t.certs[i.hash]||null}function r(i){if(!i.hash){var o=M.md.sha1.create();i.attributes=D.RDNAttributesAsArray(ur(i),o),i.hash=o.digest().toHex()}}if(e)for(var n=0;n<e.length;++n){var s=e[n];t.addCertificate(s)}return t};D.certificateError={bad_certificate:"forge.pki.BadCertificate",unsupported_certificate:"forge.pki.UnsupportedCertificate",certificate_revoked:"forge.pki.CertificateRevoked",certificate_expired:"forge.pki.CertificateExpired",certificate_unknown:"forge.pki.CertificateUnknown",unknown_ca:"forge.pki.UnknownCertificateAuthority"};D.verifyCertificateChain=function(e,t,a){typeof a=="function"&&(a={verify:a}),a=a||{},t=t.slice(0);var r=t.slice(0),n=a.validityCheckDate;typeof n>"u"&&(n=new Date);var s=!0,i=null,o=0;do{var u=t.shift(),l=null,f=!1;if(n&&(n<u.validity.notBefore||n>u.validity.notAfter)&&(i={message:"Certificate is not valid yet or has expired.",error:D.certificateError.certificate_expired,notBefore:u.validity.notBefore,notAfter:u.validity.notAfter,now:n}),i===null){if(l=t[0]||e.getIssuer(u),l===null&&u.isIssuer(u)&&(f=!0,l=u),l){var c=l;M.util.isArray(c)||(c=[c]);for(var y=!1;!y&&c.length>0;){l=c.shift();try{y=l.verify(u)}catch{}}y||(i={message:"Certificate signature is invalid.",error:D.certificateError.bad_certificate})}i===null&&(!l||f)&&!e.hasCertificate(u)&&(i={message:"Certificate is not trusted.",error:D.certificateError.unknown_ca})}if(i===null&&l&&!u.isIssuer(l)&&(i={message:"Certificate issuer is invalid.",error:D.certificateError.bad_certificate}),i===null)for(var g={keyUsage:!0,basicConstraints:!0},v=0;i===null&&v<u.extensions.length;++v){var x=u.extensions[v];x.critical&&!(x.name in g)&&(i={message:"Certificate has an unsupported critical extension.",error:D.certificateError.unsupported_certificate})}if(i===null&&(!s||t.length===0&&(!l||f))){var S=u.getExtension("basicConstraints"),I=u.getExtension("keyUsage");if(I!==null&&(!I.keyCertSign||S===null)&&(i={message:"Certificate keyUsage or basicConstraints conflict or indicate that the certificate is not a CA. If the certificate is the only one in the chain or isn't the first then the certificate must be a valid CA.",error:D.certificateError.bad_certificate}),i===null&&S===null&&(i={message:"Certificate is missing basicConstraints extension and cannot be used as a CA.",error:D.certificateError.bad_certificate}),i===null&&S!==null&&!S.cA&&(i={message:"Certificate basicConstraints indicates the certificate is not a CA.",error:D.certificateError.bad_certificate}),i===null&&I!==null&&"pathLenConstraint"in S){var B=o-1;B>S.pathLenConstraint&&(i={message:"Certificate basicConstraints pathLenConstraint violated.",error:D.certificateError.bad_certificate})}}var b=i===null?!0:i.error,U=a.verify?a.verify(b,o,r):b;if(U===!0)i=null;else throw b===!0&&(i={message:"The application rejected the certificate.",error:D.certificateError.bad_certificate}),(U||U===0)&&(typeof U=="object"&&!M.util.isArray(U)?(U.message&&(i.message=U.message),U.error&&(i.error=U.error)):typeof U=="string"&&(i.error=U)),i;s=!1,++o}while(t.length>0);return!0}});var rn=K((Ld,cs)=>{var ce=$();ut();tr();wt();Za();Xa();tt();Ir();ir();ne();oa();var m=ce.asn1,X=ce.pki,Br=cs.exports=ce.pkcs12=ce.pkcs12||{},fs={name:"ContentInfo",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"ContentInfo.contentType",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"contentType"},{name:"ContentInfo.content",tagClass:m.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"content"}]},$l={name:"PFX",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.version",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,capture:"version"},fs,{name:"PFX.macData",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,optional:!0,captureAsn1:"mac",value:[{name:"PFX.macData.mac",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"PFX.macData.mac.digestAlgorithm.algorithm",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"macAlgorithm"},{name:"PFX.macData.mac.digestAlgorithm.parameters",optional:!0,tagClass:m.Class.UNIVERSAL,captureAsn1:"macAlgorithmParameters"}]},{name:"PFX.macData.mac.digest",tagClass:m.Class.UNIVERSAL,type:m.Type.OCTETSTRING,constructed:!1,capture:"macDigest"}]},{name:"PFX.macData.macSalt",tagClass:m.Class.UNIVERSAL,type:m.Type.OCTETSTRING,constructed:!1,capture:"macSalt"},{name:"PFX.macData.iterations",tagClass:m.Class.UNIVERSAL,type:m.Type.INTEGER,constructed:!1,optional:!0,capture:"macIterations"}]}]},jl={name:"SafeBag",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"SafeBag.bagId",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"bagId"},{name:"SafeBag.bagValue",tagClass:m.Class.CONTEXT_SPECIFIC,constructed:!0,captureAsn1:"bagValue"},{name:"SafeBag.bagAttributes",tagClass:m.Class.UNIVERSAL,type:m.Type.SET,constructed:!0,optional:!0,capture:"bagAttributes"}]},Wl={name:"Attribute",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"Attribute.attrId",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"oid"},{name:"Attribute.attrValues",tagClass:m.Class.UNIVERSAL,type:m.Type.SET,constructed:!0,capture:"values"}]},Xl={name:"CertBag",tagClass:m.Class.UNIVERSAL,type:m.Type.SEQUENCE,constructed:!0,value:[{name:"CertBag.certId",tagClass:m.Class.UNIVERSAL,type:m.Type.OID,constructed:!1,capture:"certId"},{name:"CertBag.certValue",tagClass:m.Class.CONTEXT_SPECIFIC,constructed:!0,value:[{name:"CertBag.certValue[0]",tagClass:m.Class.UNIVERSAL,type:m.Class.OCTETSTRING,constructed:!1,capture:"cert"}]}]};function Ar(e,t,a,r){for(var n=[],s=0;s<e.length;s++)for(var i=0;i<e[s].safeBags.length;i++){var o=e[s].safeBags[i];if(!(r!==void 0&&o.type!==r)){if(t===null){n.push(o);continue}o.attributes[t]!==void 0&&o.attributes[t].indexOf(a)>=0&&n.push(o)}}return n}Br.pkcs12FromAsn1=function(e,t,a){typeof t=="string"?(a=t,t=!0):t===void 0&&(t=!0);var r={},n=[];if(!m.validate(e,$l,r,n)){var s=new Error("Cannot read PKCS#12 PFX. ASN.1 object is not an PKCS#12 PFX.");throw s.errors=s,s}var i={version:r.version.charCodeAt(0),safeContents:[],getBags:function(S){var I={},B;return"localKeyId"in S?B=S.localKeyId:"localKeyIdHex"in S&&(B=ce.util.hexToBytes(S.localKeyIdHex)),B===void 0&&!("friendlyName"in S)&&"bagType"in S&&(I[S.bagType]=Ar(i.safeContents,null,null,S.bagType)),B!==void 0&&(I.localKeyId=Ar(i.safeContents,"localKeyId",B,S.bagType)),"friendlyName"in S&&(I.friendlyName=Ar(i.safeContents,"friendlyName",S.friendlyName,S.bagType)),I},getBagsByFriendlyName:function(S,I){return Ar(i.safeContents,"friendlyName",S,I)},getBagsByLocalKeyId:function(S,I){return Ar(i.safeContents,"localKeyId",S,I)}};if(r.version.charCodeAt(0)!==3){var s=new Error("PKCS#12 PFX of version other than 3 not supported.");throw s.version=r.version.charCodeAt(0),s}if(m.derToOid(r.contentType)!==X.oids.data){var s=new Error("Only PKCS#12 PFX in password integrity mode supported.");throw s.oid=m.derToOid(r.contentType),s}var o=r.content.value[0];if(o.tagClass!==m.Class.UNIVERSAL||o.type!==m.Type.OCTETSTRING)throw new Error("PKCS#12 authSafe content data is not an OCTET STRING.");if(o=tn(o),r.mac){var u=null,l=0,f=m.derToOid(r.macAlgorithm);switch(f){case X.oids.sha1:u=ce.md.sha1.create(),l=20;break;case X.oids.sha256:u=ce.md.sha256.create(),l=32;break;case X.oids.sha384:u=ce.md.sha384.create(),l=48;break;case X.oids.sha512:u=ce.md.sha512.create(),l=64;break;case X.oids.md5:u=ce.md.md5.create(),l=16;break}if(u===null)throw new Error("PKCS#12 uses unsupported MAC algorithm: "+f);var c=new ce.util.ByteBuffer(r.macSalt),y="macIterations"in r?parseInt(ce.util.bytesToHex(r.macIterations),16):1,g=Br.generateKey(a,c,3,y,l,u),v=ce.hmac.create();v.start(u,g),v.update(o.value);var x=v.getMac();if(x.getBytes()!==r.macDigest)throw new Error("PKCS#12 MAC could not be verified. Invalid password?")}else if(Array.isArray(e.value)&&e.value.length>2)throw new Error("Invalid PKCS#12. macData field present but MAC was not validated.");return Zl(i,o.value,t,a),i};function tn(e){if(e.composed||e.constructed){for(var t=ce.util.createBuffer(),a=0;a<e.value.length;++a)t.putBytes(e.value[a].value);e.composed=e.constructed=!1,e.value=t.getBytes()}return e}function Zl(e,t,a,r){if(t=m.fromDer(t,a),t.tagClass!==m.Class.UNIVERSAL||t.type!==m.Type.SEQUENCE||t.constructed!==!0)throw new Error("PKCS#12 AuthenticatedSafe expected to be a SEQUENCE OF ContentInfo");for(var n=0;n<t.value.length;n++){var s=t.value[n],i={},o=[];if(!m.validate(s,fs,i,o)){var u=new Error("Cannot read ContentInfo.");throw u.errors=o,u}var l={encrypted:!1},f=null,c=i.content.value[0];switch(m.derToOid(i.contentType)){case X.oids.data:if(c.tagClass!==m.Class.UNIVERSAL||c.type!==m.Type.OCTETSTRING)throw new Error("PKCS#12 SafeContents Data is not an OCTET STRING.");f=tn(c).value;break;case X.oids.encryptedData:f=Jl(c,r),l.encrypted=!0;break;default:var u=new Error("Unsupported PKCS#12 contentType.");throw u.contentType=m.derToOid(i.contentType),u}l.safeBags=ef(f,a,r),e.safeContents.push(l)}}function Jl(e,t){var a={},r=[];if(!m.validate(e,ce.pkcs7.asn1.encryptedDataValidator,a,r)){var n=new Error("Cannot read EncryptedContentInfo.");throw n.errors=r,n}var s=m.derToOid(a.contentType);if(s!==X.oids.data){var n=new Error("PKCS#12 EncryptedContentInfo ContentType is not Data.");throw n.oid=s,n}s=m.derToOid(a.encAlgorithm);var i=X.pbe.getCipher(s,a.encParameter,t),o=tn(a.encryptedContentAsn1),u=ce.util.createBuffer(o.value);if(i.update(u),!i.finish())throw new Error("Failed to decrypt PKCS#12 SafeContents.");return i.output.getBytes()}function ef(e,t,a){if(!t&&e.length===0)return[];if(e=m.fromDer(e,t),e.tagClass!==m.Class.UNIVERSAL||e.type!==m.Type.SEQUENCE||e.constructed!==!0)throw new Error("PKCS#12 SafeContents expected to be a SEQUENCE OF SafeBag.");for(var r=[],n=0;n<e.value.length;n++){var s=e.value[n],i={},o=[];if(!m.validate(s,jl,i,o)){var u=new Error("Cannot read SafeBag.");throw u.errors=o,u}var l={type:m.derToOid(i.bagId),attributes:tf(i.bagAttributes)};r.push(l);var f,c,y=i.bagValue.value[0];switch(l.type){case X.oids.pkcs8ShroudedKeyBag:if(y=X.decryptPrivateKeyInfo(y,a),y===null)throw new Error("Unable to decrypt PKCS#8 ShroudedKeyBag, wrong password?");case X.oids.keyBag:try{l.key=X.privateKeyFromAsn1(y)}catch{l.key=null,l.asn1=y}continue;case X.oids.certBag:f=Xl,c=function(){if(m.derToOid(i.certId)!==X.oids.x509Certificate){var v=new Error("Unsupported certificate type, only X.509 supported.");throw v.oid=m.derToOid(i.certId),v}var x=m.fromDer(i.cert,t);try{l.cert=X.certificateFromAsn1(x,!0)}catch{l.cert=null,l.asn1=x}};break;default:var u=new Error("Unsupported PKCS#12 SafeBag type.");throw u.oid=l.type,u}if(f!==void 0&&!m.validate(y,f,i,o)){var u=new Error("Cannot read PKCS#12 "+f.name);throw u.errors=o,u}c()}return r}function tf(e){var t={};if(e!==void 0)for(var a=0;a<e.length;++a){var r={},n=[];if(!m.validate(e[a],Wl,r,n)){var s=new Error("Cannot read PKCS#12 BagAttribute.");throw s.errors=n,s}var i=m.derToOid(r.oid);if(X.oids[i]!==void 0){t[X.oids[i]]=[];for(var o=0;o<r.values.length;++o)t[X.oids[i]].push(r.values[o].value)}}return t}Br.toPkcs12Asn1=function(e,t,a,r){r=r||{},r.saltSize=r.saltSize||8,r.count=r.count||2048,r.algorithm=r.algorithm||r.encAlgorithm||"aes128","useMac"in r||(r.useMac=!0),"localKeyId"in r||(r.localKeyId=null),"generateLocalKeyId"in r||(r.generateLocalKeyId=!0);var n=r.localKeyId,s;if(n!==null)n=ce.util.hexToBytes(n);else if(r.generateLocalKeyId)if(t){var i=ce.util.isArray(t)?t[0]:t;typeof i=="string"&&(i=X.certificateFromPem(i));var o=ce.md.sha1.create();o.update(m.toDer(X.certificateToAsn1(i)).getBytes()),n=o.digest().getBytes()}else n=ce.random.getBytes(20);var u=[];n!==null&&u.push(m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.localKeyId).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,n)])])),"friendlyName"in r&&u.push(m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.friendlyName).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SET,!0,[m.create(m.Class.UNIVERSAL,m.Type.BMPSTRING,!1,r.friendlyName)])])),u.length>0&&(s=m.create(m.Class.UNIVERSAL,m.Type.SET,!0,u));var l=[],f=[];t!==null&&(ce.util.isArray(t)?f=t:f=[t]);for(var c=[],y=0;y<f.length;++y){t=f[y],typeof t=="string"&&(t=X.certificateFromPem(t));var g=y===0?s:void 0,v=X.certificateToAsn1(t),x=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.certBag).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.x509Certificate).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(v).getBytes())])])]),g]);c.push(x)}if(c.length>0){var S=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,c),I=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.data).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(S).getBytes())])]);l.push(I)}var B=null;if(e!==null){var b=X.wrapRsaPrivateKey(X.privateKeyToAsn1(e));a===null?B=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.keyBag).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[b]),s]):B=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.pkcs8ShroudedKeyBag).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[X.encryptPrivateKeyInfo(b,a,r)]),s]);var U=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[B]),L=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.data).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(U).getBytes())])]);l.push(L)}var R=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,l),z;if(r.useMac){var o=ce.md.sha1.create(),G=new ce.util.ByteBuffer(ce.random.getBytes(r.saltSize)),j=r.count,e=Br.generateKey(a,G,3,j,20),oe=ce.hmac.create();oe.start(o,e),oe.update(m.toDer(R).getBytes());var ue=oe.getMac();z=m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.sha1).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.NULL,!1,"")]),m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,ue.getBytes())]),m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,G.getBytes()),m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(j).getBytes())])}return m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.INTEGER,!1,m.integerToDer(3).getBytes()),m.create(m.Class.UNIVERSAL,m.Type.SEQUENCE,!0,[m.create(m.Class.UNIVERSAL,m.Type.OID,!1,m.oidToDer(X.oids.data).getBytes()),m.create(m.Class.CONTEXT_SPECIFIC,0,!0,[m.create(m.Class.UNIVERSAL,m.Type.OCTETSTRING,!1,m.toDer(R).getBytes())])]),z])};Br.generateKey=ce.pbe.generatePkcs12Key});var nn=K((Dd,ds)=>{var kt=$();ut();wt();Xa();Ht();Xr();rn();na();Ir();ne();oa();var an=kt.asn1,lr=ds.exports=kt.pki=kt.pki||{};lr.pemToDer=function(e){var t=kt.pem.decode(e)[0];if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert PEM to DER; PEM is encrypted.");return kt.util.createBuffer(t.body)};lr.privateKeyFromPem=function(e){var t=kt.pem.decode(e)[0];if(t.type!=="PRIVATE KEY"&&t.type!=="RSA PRIVATE KEY"){var a=new Error('Could not convert private key from PEM; PEM header type is not "PRIVATE KEY" or "RSA PRIVATE KEY".');throw a.headerType=t.type,a}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert private key from PEM; PEM is encrypted.");var r=an.fromDer(t.body);return lr.privateKeyFromAsn1(r)};lr.privateKeyToPem=function(e,t){var a={type:"RSA PRIVATE KEY",body:an.toDer(lr.privateKeyToAsn1(e)).getBytes()};return kt.pem.encode(a,{maxline:t})};lr.privateKeyInfoToPem=function(e,t){var a={type:"PRIVATE KEY",body:an.toDer(e).getBytes()};return kt.pem.encode(a,{maxline:t})}});var cn=K((kd,Es)=>{var N=$();ut();tr();Yr();Ht();nn();tt();ir();ne();var ca=function(e,t,a,r){var n=N.util.createBuffer(),s=e.length>>1,i=s+(e.length&1),o=e.substr(0,i),u=e.substr(s,i),l=N.util.createBuffer(),f=N.hmac.create();a=t+a;var c=Math.ceil(r/16),y=Math.ceil(r/20);f.start("MD5",o);var g=N.util.createBuffer();l.putBytes(a);for(var v=0;v<c;++v)f.start(null,null),f.update(l.getBytes()),l.putBuffer(f.digest()),f.start(null,null),f.update(l.bytes()+a),g.putBuffer(f.digest());f.start("SHA1",u);var x=N.util.createBuffer();l.clear(),l.putBytes(a);for(var v=0;v<y;++v)f.start(null,null),f.update(l.getBytes()),l.putBuffer(f.digest()),f.start(null,null),f.update(l.bytes()+a),x.putBuffer(f.digest());return n.putBytes(N.util.xorBytes(g.getBytes(),x.getBytes(),r)),n},rf=function(e,t,a){var r=N.hmac.create();r.start("SHA1",e);var n=N.util.createBuffer();return n.putInt32(t[0]),n.putInt32(t[1]),n.putByte(a.type),n.putByte(a.version.major),n.putByte(a.version.minor),n.putInt16(a.length),n.putBytes(a.fragment.bytes()),r.update(n.getBytes()),r.digest().getBytes()},af=function(e,t,a){var r=!1;try{var n=e.deflate(t.fragment.getBytes());t.fragment=N.util.createBuffer(n),t.length=n.length,r=!0}catch{}return r},nf=function(e,t,a){var r=!1;try{var n=e.inflate(t.fragment.getBytes());t.fragment=N.util.createBuffer(n),t.length=n.length,r=!0}catch{}return r},We=function(e,t){var a=0;switch(t){case 1:a=e.getByte();break;case 2:a=e.getInt16();break;case 3:a=e.getInt24();break;case 4:a=e.getInt32();break}return N.util.createBuffer(e.getBytes(a))},it=function(e,t,a){e.putInt(a.length(),t<<3),e.putBuffer(a)},p={};p.Versions={TLS_1_0:{major:3,minor:1},TLS_1_1:{major:3,minor:2},TLS_1_2:{major:3,minor:3}};p.SupportedVersions=[p.Versions.TLS_1_1,p.Versions.TLS_1_0];p.Version=p.SupportedVersions[0];p.MaxFragment=15360;p.ConnectionEnd={server:0,client:1};p.PRFAlgorithm={tls_prf_sha256:0};p.BulkCipherAlgorithm={none:null,rc4:0,des3:1,aes:2};p.CipherType={stream:0,block:1,aead:2};p.MACAlgorithm={none:null,hmac_md5:0,hmac_sha1:1,hmac_sha256:2,hmac_sha384:3,hmac_sha512:4};p.CompressionMethod={none:0,deflate:1};p.ContentType={change_cipher_spec:20,alert:21,handshake:22,application_data:23,heartbeat:24};p.HandshakeType={hello_request:0,client_hello:1,server_hello:2,certificate:11,server_key_exchange:12,certificate_request:13,server_hello_done:14,certificate_verify:15,client_key_exchange:16,finished:20};p.Alert={};p.Alert.Level={warning:1,fatal:2};p.Alert.Description={close_notify:0,unexpected_message:10,bad_record_mac:20,decryption_failed:21,record_overflow:22,decompression_failure:30,handshake_failure:40,bad_certificate:42,unsupported_certificate:43,certificate_revoked:44,certificate_expired:45,certificate_unknown:46,illegal_parameter:47,unknown_ca:48,access_denied:49,decode_error:50,decrypt_error:51,export_restriction:60,protocol_version:70,insufficient_security:71,internal_error:80,user_canceled:90,no_renegotiation:100};p.HeartbeatMessageType={heartbeat_request:1,heartbeat_response:2};p.CipherSuites={};p.getCipherSuite=function(e){var t=null;for(var a in p.CipherSuites){var r=p.CipherSuites[a];if(r.id[0]===e.charCodeAt(0)&&r.id[1]===e.charCodeAt(1)){t=r;break}}return t};p.handleUnexpected=function(e,t){var a=!e.open&&e.entity===p.ConnectionEnd.client;a||e.error(e,{message:"Unexpected message. Received TLS record out of order.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.unexpected_message}})};p.handleHelloRequest=function(e,t,a){!e.handshaking&&e.handshakes>0&&(p.queue(e,p.createAlert(e,{level:p.Alert.Level.warning,description:p.Alert.Description.no_renegotiation})),p.flush(e)),e.process()};p.parseHelloMessage=function(e,t,a){var r=null,n=e.entity===p.ConnectionEnd.client;if(a<38)e.error(e,{message:n?"Invalid ServerHello message. Message too short.":"Invalid ClientHello message. Message too short.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.illegal_parameter}});else{var s=t.fragment,i=s.length();if(r={version:{major:s.getByte(),minor:s.getByte()},random:N.util.createBuffer(s.getBytes(32)),session_id:We(s,1),extensions:[]},n?(r.cipher_suite=s.getBytes(2),r.compression_method=s.getByte()):(r.cipher_suites=We(s,2),r.compression_methods=We(s,1)),i=a-(i-s.length()),i>0){for(var o=We(s,2);o.length()>0;)r.extensions.push({type:[o.getByte(),o.getByte()],data:We(o,2)});if(!n)for(var u=0;u<r.extensions.length;++u){var l=r.extensions[u];if(l.type[0]===0&&l.type[1]===0)for(var f=We(l.data,2);f.length()>0;){var c=f.getByte();if(c!==0)break;e.session.extensions.server_name.serverNameList.push(We(f,2).getBytes())}}}if(e.session.version&&(r.version.major!==e.session.version.major||r.version.minor!==e.session.version.minor))return e.error(e,{message:"TLS version change is disallowed during renegotiation.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.protocol_version}});if(n)e.session.cipherSuite=p.getCipherSuite(r.cipher_suite);else for(var y=N.util.createBuffer(r.cipher_suites.bytes());y.length()>0&&(e.session.cipherSuite=p.getCipherSuite(y.getBytes(2)),e.session.cipherSuite===null););if(e.session.cipherSuite===null)return e.error(e,{message:"No cipher suites in common.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.handshake_failure},cipherSuite:N.util.bytesToHex(r.cipher_suite)});n?e.session.compressionMethod=r.compression_method:e.session.compressionMethod=p.CompressionMethod.none}return r};p.createSecurityParameters=function(e,t){var a=e.entity===p.ConnectionEnd.client,r=t.random.bytes(),n=a?e.session.sp.client_random:r,s=a?r:p.createRandom().getBytes();e.session.sp={entity:e.entity,prf_algorithm:p.PRFAlgorithm.tls_prf_sha256,bulk_cipher_algorithm:null,cipher_type:null,enc_key_length:null,block_length:null,fixed_iv_length:null,record_iv_length:null,mac_algorithm:null,mac_length:null,mac_key_length:null,compression_algorithm:e.session.compressionMethod,pre_master_secret:null,master_secret:null,client_random:n,server_random:s}};p.handleServerHello=function(e,t,a){var r=p.parseHelloMessage(e,t,a);if(!e.fail){if(r.version.minor<=e.version.minor)e.version.minor=r.version.minor;else return e.error(e,{message:"Incompatible TLS version.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.protocol_version}});e.session.version=e.version;var n=r.session_id.bytes();n.length>0&&n===e.session.id?(e.expect=ys,e.session.resuming=!0,e.session.sp.server_random=r.random.bytes()):(e.expect=of,e.session.resuming=!1,p.createSecurityParameters(e,r)),e.session.id=n,e.process()}};p.handleClientHello=function(e,t,a){var r=p.parseHelloMessage(e,t,a);if(!e.fail){var n=r.session_id.bytes(),s=null;if(e.sessionCache&&(s=e.sessionCache.getSession(n),s===null?n="":(s.version.major!==r.version.major||s.version.minor>r.version.minor)&&(s=null,n="")),n.length===0&&(n=N.random.getBytes(32)),e.session.id=n,e.session.clientHelloVersion=r.version,e.session.sp={},s)e.version=e.session.version=s.version,e.session.sp=s.sp;else{for(var i,o=1;o<p.SupportedVersions.length&&(i=p.SupportedVersions[o],!(i.minor<=r.version.minor));++o);e.version={major:i.major,minor:i.minor},e.session.version=e.version}s!==null?(e.expect=ln,e.session.resuming=!0,e.session.sp.client_random=r.random.bytes()):(e.expect=e.verifyClient!==!1?pf:un,e.session.resuming=!1,p.createSecurityParameters(e,r)),e.open=!0,p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createServerHello(e)})),e.session.resuming?(p.queue(e,p.createRecord(e,{type:p.ContentType.change_cipher_spec,data:p.createChangeCipherSpec()})),e.state.pending=p.createConnectionState(e),e.state.current.write=e.state.pending.write,p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createFinished(e)}))):(p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createCertificate(e)})),e.fail||(p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createServerKeyExchange(e)})),e.verifyClient!==!1&&p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createCertificateRequest(e)})),p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createServerHelloDone(e)})))),p.flush(e),e.process()}};p.handleCertificate=function(e,t,a){if(a<3)return e.error(e,{message:"Invalid Certificate message. Message too short.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.illegal_parameter}});var r=t.fragment,n={certificate_list:We(r,3)},s,i,o=[];try{for(;n.certificate_list.length()>0;)s=We(n.certificate_list,3),i=N.asn1.fromDer(s),s=N.pki.certificateFromAsn1(i,!0),o.push(s)}catch(l){return e.error(e,{message:"Could not parse certificate list.",cause:l,send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.bad_certificate}})}var u=e.entity===p.ConnectionEnd.client;(u||e.verifyClient===!0)&&o.length===0?e.error(e,{message:u?"No server certificate provided.":"No client certificate provided.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.illegal_parameter}}):o.length===0?e.expect=u?hs:un:(u?e.session.serverCertificate=o[0]:e.session.clientCertificate=o[0],p.verifyCertificateChain(e,o)&&(e.expect=u?hs:un)),e.process()};p.handleServerKeyExchange=function(e,t,a){if(a>0)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.unsupported_certificate}});e.expect=uf,e.process()};p.handleClientKeyExchange=function(e,t,a){if(a<48)return e.error(e,{message:"Invalid key parameters. Only RSA is supported.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.unsupported_certificate}});var r=t.fragment,n={enc_pre_master_secret:We(r,2).getBytes()},s=null;if(e.getPrivateKey)try{s=e.getPrivateKey(e,e.session.serverCertificate),s=N.pki.privateKeyFromPem(s)}catch(u){e.error(e,{message:"Could not get private key.",cause:u,send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.internal_error}})}if(s===null)return e.error(e,{message:"No private key set.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.internal_error}});try{var i=e.session.sp;i.pre_master_secret=s.decrypt(n.enc_pre_master_secret);var o=e.session.clientHelloVersion;if(o.major!==i.pre_master_secret.charCodeAt(0)||o.minor!==i.pre_master_secret.charCodeAt(1))throw new Error("TLS version rollback attack detected.")}catch{i.pre_master_secret=N.random.getBytes(48)}e.expect=ln,e.session.clientCertificate!==null&&(e.expect=yf),e.process()};p.handleCertificateRequest=function(e,t,a){if(a<3)return e.error(e,{message:"Invalid CertificateRequest. Message too short.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.illegal_parameter}});var r=t.fragment,n={certificate_types:We(r,1),certificate_authorities:We(r,2)};e.session.certificateRequest=n,e.expect=lf,e.process()};p.handleCertificateVerify=function(e,t,a){if(a<2)return e.error(e,{message:"Invalid CertificateVerify. Message too short.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.illegal_parameter}});var r=t.fragment;r.read-=4;var n=r.bytes();r.read+=4;var s={signature:We(r,2).getBytes()},i=N.util.createBuffer();i.putBuffer(e.session.md5.digest()),i.putBuffer(e.session.sha1.digest()),i=i.getBytes();try{var o=e.session.clientCertificate;if(!o.publicKey.verify(i,s.signature,"NONE"))throw new Error("CertificateVerify signature does not match.");e.session.md5.update(n),e.session.sha1.update(n)}catch{return e.error(e,{message:"Bad signature in CertificateVerify.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.handshake_failure}})}e.expect=ln,e.process()};p.handleServerHelloDone=function(e,t,a){if(a>0)return e.error(e,{message:"Invalid ServerHelloDone message. Invalid length.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.record_overflow}});if(e.serverCertificate===null){var r={message:"No server certificate provided. Not enough security.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.insufficient_security}},n=0,s=e.verify(e,r.alert.description,n,[]);if(s!==!0)return(s||s===0)&&(typeof s=="object"&&!N.util.isArray(s)?(s.message&&(r.message=s.message),s.alert&&(r.alert.description=s.alert)):typeof s=="number"&&(r.alert.description=s)),e.error(e,r)}e.session.certificateRequest!==null&&(t=p.createRecord(e,{type:p.ContentType.handshake,data:p.createCertificate(e)}),p.queue(e,t)),t=p.createRecord(e,{type:p.ContentType.handshake,data:p.createClientKeyExchange(e)}),p.queue(e,t),e.expect=df;var i=function(o,u){o.session.certificateRequest!==null&&o.session.clientCertificate!==null&&p.queue(o,p.createRecord(o,{type:p.ContentType.handshake,data:p.createCertificateVerify(o,u)})),p.queue(o,p.createRecord(o,{type:p.ContentType.change_cipher_spec,data:p.createChangeCipherSpec()})),o.state.pending=p.createConnectionState(o),o.state.current.write=o.state.pending.write,p.queue(o,p.createRecord(o,{type:p.ContentType.handshake,data:p.createFinished(o)})),o.expect=ys,p.flush(o),o.process()};if(e.session.certificateRequest===null||e.session.clientCertificate===null)return i(e,null);p.getClientSignature(e,i)};p.handleChangeCipherSpec=function(e,t){if(t.fragment.getByte()!==1)return e.error(e,{message:"Invalid ChangeCipherSpec message received.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.illegal_parameter}});var a=e.entity===p.ConnectionEnd.client;(e.session.resuming&&a||!e.session.resuming&&!a)&&(e.state.pending=p.createConnectionState(e)),e.state.current.read=e.state.pending.read,(!e.session.resuming&&a||e.session.resuming&&!a)&&(e.state.pending=null),e.expect=a?ff:vf,e.process()};p.handleFinished=function(e,t,a){var r=t.fragment;r.read-=4;var n=r.bytes();r.read+=4;var s=t.fragment.getBytes();r=N.util.createBuffer(),r.putBuffer(e.session.md5.digest()),r.putBuffer(e.session.sha1.digest());var i=e.entity===p.ConnectionEnd.client,o=i?"server finished":"client finished",u=e.session.sp,l=12,f=ca;if(r=f(u.master_secret,o,r.getBytes(),l),r.getBytes()!==s)return e.error(e,{message:"Invalid verify_data in Finished message.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.decrypt_error}});e.session.md5.update(n),e.session.sha1.update(n),(e.session.resuming&&i||!e.session.resuming&&!i)&&(p.queue(e,p.createRecord(e,{type:p.ContentType.change_cipher_spec,data:p.createChangeCipherSpec()})),e.state.current.write=e.state.pending.write,e.state.pending=null,p.queue(e,p.createRecord(e,{type:p.ContentType.handshake,data:p.createFinished(e)}))),e.expect=i?cf:gf,e.handshaking=!1,++e.handshakes,e.peerCertificate=i?e.session.serverCertificate:e.session.clientCertificate,p.flush(e),e.isConnected=!0,e.connected(e),e.process()};p.handleAlert=function(e,t){var a=t.fragment,r={level:a.getByte(),description:a.getByte()},n;switch(r.description){case p.Alert.Description.close_notify:n="Connection closed.";break;case p.Alert.Description.unexpected_message:n="Unexpected message.";break;case p.Alert.Description.bad_record_mac:n="Bad record MAC.";break;case p.Alert.Description.decryption_failed:n="Decryption failed.";break;case p.Alert.Description.record_overflow:n="Record overflow.";break;case p.Alert.Description.decompression_failure:n="Decompression failed.";break;case p.Alert.Description.handshake_failure:n="Handshake failure.";break;case p.Alert.Description.bad_certificate:n="Bad certificate.";break;case p.Alert.Description.unsupported_certificate:n="Unsupported certificate.";break;case p.Alert.Description.certificate_revoked:n="Certificate revoked.";break;case p.Alert.Description.certificate_expired:n="Certificate expired.";break;case p.Alert.Description.certificate_unknown:n="Certificate unknown.";break;case p.Alert.Description.illegal_parameter:n="Illegal parameter.";break;case p.Alert.Description.unknown_ca:n="Unknown certificate authority.";break;case p.Alert.Description.access_denied:n="Access denied.";break;case p.Alert.Description.decode_error:n="Decode error.";break;case p.Alert.Description.decrypt_error:n="Decrypt error.";break;case p.Alert.Description.export_restriction:n="Export restriction.";break;case p.Alert.Description.protocol_version:n="Unsupported protocol version.";break;case p.Alert.Description.insufficient_security:n="Insufficient security.";break;case p.Alert.Description.internal_error:n="Internal error.";break;case p.Alert.Description.user_canceled:n="User canceled.";break;case p.Alert.Description.no_renegotiation:n="Renegotiation not supported.";break;default:n="Unknown error.";break}if(r.description===p.Alert.Description.close_notify)return e.close();e.error(e,{message:n,send:!1,origin:e.entity===p.ConnectionEnd.client?"server":"client",alert:r}),e.process()};p.handleHandshake=function(e,t){var a=t.fragment,r=a.getByte(),n=a.getInt24();if(n>a.length())return e.fragmented=t,t.fragment=N.util.createBuffer(),a.read-=4,e.process();e.fragmented=null,a.read-=4;var s=a.bytes(n+4);a.read+=4,r in fa[e.entity][e.expect]?(e.entity===p.ConnectionEnd.server&&!e.open&&!e.fail&&(e.handshaking=!0,e.session={version:null,extensions:{server_name:{serverNameList:[]}},cipherSuite:null,compressionMethod:null,serverCertificate:null,clientCertificate:null,md5:N.md.md5.create(),sha1:N.md.sha1.create()}),r!==p.HandshakeType.hello_request&&r!==p.HandshakeType.certificate_verify&&r!==p.HandshakeType.finished&&(e.session.md5.update(s),e.session.sha1.update(s)),fa[e.entity][e.expect][r](e,t,n)):p.handleUnexpected(e,t)};p.handleApplicationData=function(e,t){e.data.putBuffer(t.fragment),e.dataReady(e),e.process()};p.handleHeartbeat=function(e,t){var a=t.fragment,r=a.getByte(),n=a.getInt16(),s=a.getBytes(n);if(r===p.HeartbeatMessageType.heartbeat_request){if(e.handshaking||n>s.length)return e.process();p.queue(e,p.createRecord(e,{type:p.ContentType.heartbeat,data:p.createHeartbeat(p.HeartbeatMessageType.heartbeat_response,s)})),p.flush(e)}else if(r===p.HeartbeatMessageType.heartbeat_response){if(s!==e.expectedHeartbeatPayload)return e.process();e.heartbeatReceived&&e.heartbeatReceived(e,N.util.createBuffer(s))}e.process()};var sf=0,of=1,hs=2,uf=3,lf=4,ys=5,ff=6,cf=7,df=8,hf=0,pf=1,un=2,yf=3,ln=4,vf=5,gf=6,h=p.handleUnexpected,vs=p.handleChangeCipherSpec,Be=p.handleAlert,Qe=p.handleHandshake,gs=p.handleApplicationData,be=p.handleHeartbeat,fn=[];fn[p.ConnectionEnd.client]=[[h,Be,Qe,h,be],[h,Be,Qe,h,be],[h,Be,Qe,h,be],[h,Be,Qe,h,be],[h,Be,Qe,h,be],[vs,Be,h,h,be],[h,Be,Qe,h,be],[h,Be,Qe,gs,be],[h,Be,Qe,h,be]];fn[p.ConnectionEnd.server]=[[h,Be,Qe,h,be],[h,Be,Qe,h,be],[h,Be,Qe,h,be],[h,Be,Qe,h,be],[vs,Be,h,h,be],[h,Be,Qe,h,be],[h,Be,Qe,gs,be],[h,Be,Qe,h,be]];var Ut=p.handleHelloRequest,mf=p.handleServerHello,ms=p.handleCertificate,ps=p.handleServerKeyExchange,sn=p.handleCertificateRequest,ua=p.handleServerHelloDone,Cs=p.handleFinished,fa=[];fa[p.ConnectionEnd.client]=[[h,h,mf,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,ms,ps,sn,ua,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,h,ps,sn,ua,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,h,h,sn,ua,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,h,h,h,ua,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,Cs],[Ut,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h],[Ut,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h]];var Cf=p.handleClientHello,Ef=p.handleClientKeyExchange,xf=p.handleCertificateVerify;fa[p.ConnectionEnd.server]=[[h,Cf,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h],[h,h,h,h,h,h,h,h,h,h,h,ms,h,h,h,h,h,h,h,h,h],[h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,Ef,h,h,h,h],[h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,xf,h,h,h,h,h],[h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h],[h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,Cs],[h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h],[h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h,h]];p.generateKeys=function(e,t){var a=ca,r=t.client_random+t.server_random;e.session.resuming||(t.master_secret=a(t.pre_master_secret,"master secret",r,48).bytes(),t.pre_master_secret=null),r=t.server_random+t.client_random;var n=2*t.mac_key_length+2*t.enc_key_length,s=e.version.major===p.Versions.TLS_1_0.major&&e.version.minor===p.Versions.TLS_1_0.minor;s&&(n+=2*t.fixed_iv_length);var i=a(t.master_secret,"key expansion",r,n),o={client_write_MAC_key:i.getBytes(t.mac_key_length),server_write_MAC_key:i.getBytes(t.mac_key_length),client_write_key:i.getBytes(t.enc_key_length),server_write_key:i.getBytes(t.enc_key_length)};return s&&(o.client_write_IV=i.getBytes(t.fixed_iv_length),o.server_write_IV=i.getBytes(t.fixed_iv_length)),o};p.createConnectionState=function(e){var t=e.entity===p.ConnectionEnd.client,a=function(){var s={sequenceNumber:[0,0],macKey:null,macLength:0,macFunction:null,cipherState:null,cipherFunction:function(i){return!0},compressionState:null,compressFunction:function(i){return!0},updateSequenceNumber:function(){s.sequenceNumber[1]===4294967295?(s.sequenceNumber[1]=0,++s.sequenceNumber[0]):++s.sequenceNumber[1]}};return s},r={read:a(),write:a()};if(r.read.update=function(s,i){return r.read.cipherFunction(i,r.read)?r.read.compressFunction(s,i,r.read)||s.error(s,{message:"Could not decompress record.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.decompression_failure}}):s.error(s,{message:"Could not decrypt record or bad MAC.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.bad_record_mac}}),!s.fail},r.write.update=function(s,i){return r.write.compressFunction(s,i,r.write)?r.write.cipherFunction(i,r.write)||s.error(s,{message:"Could not encrypt record.",send:!1,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.internal_error}}):s.error(s,{message:"Could not compress record.",send:!1,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.internal_error}}),!s.fail},e.session){var n=e.session.sp;switch(e.session.cipherSuite.initSecurityParameters(n),n.keys=p.generateKeys(e,n),r.read.macKey=t?n.keys.server_write_MAC_key:n.keys.client_write_MAC_key,r.write.macKey=t?n.keys.client_write_MAC_key:n.keys.server_write_MAC_key,e.session.cipherSuite.initConnectionState(r,e,n),n.compression_algorithm){case p.CompressionMethod.none:break;case p.CompressionMethod.deflate:r.read.compressFunction=nf,r.write.compressFunction=af;break;default:throw new Error("Unsupported compression algorithm.")}}return r};p.createRandom=function(){var e=new Date,t=+e+e.getTimezoneOffset()*6e4,a=N.util.createBuffer();return a.putInt32(t),a.putBytes(N.random.getBytes(28)),a};p.createRecord=function(e,t){if(!t.data)return null;var a={type:t.type,version:{major:e.version.major,minor:e.version.minor},length:t.data.length(),fragment:t.data};return a};p.createAlert=function(e,t){var a=N.util.createBuffer();return a.putByte(t.level),a.putByte(t.description),p.createRecord(e,{type:p.ContentType.alert,data:a})};p.createClientHello=function(e){e.session.clientHelloVersion={major:e.version.major,minor:e.version.minor};for(var t=N.util.createBuffer(),a=0;a<e.cipherSuites.length;++a){var r=e.cipherSuites[a];t.putByte(r.id[0]),t.putByte(r.id[1])}var n=t.length(),s=N.util.createBuffer();s.putByte(p.CompressionMethod.none);var i=s.length(),o=N.util.createBuffer();if(e.virtualHost){var u=N.util.createBuffer();u.putByte(0),u.putByte(0);var l=N.util.createBuffer();l.putByte(0),it(l,2,N.util.createBuffer(e.virtualHost));var f=N.util.createBuffer();it(f,2,l),it(u,2,f),o.putBuffer(u)}var c=o.length();c>0&&(c+=2);var y=e.session.id,g=y.length+1+2+4+28+2+n+1+i+c,v=N.util.createBuffer();return v.putByte(p.HandshakeType.client_hello),v.putInt24(g),v.putByte(e.version.major),v.putByte(e.version.minor),v.putBytes(e.session.sp.client_random),it(v,1,N.util.createBuffer(y)),it(v,2,t),it(v,1,s),c>0&&it(v,2,o),v};p.createServerHello=function(e){var t=e.session.id,a=t.length+1+2+4+28+2+1,r=N.util.createBuffer();return r.putByte(p.HandshakeType.server_hello),r.putInt24(a),r.putByte(e.version.major),r.putByte(e.version.minor),r.putBytes(e.session.sp.server_random),it(r,1,N.util.createBuffer(t)),r.putByte(e.session.cipherSuite.id[0]),r.putByte(e.session.cipherSuite.id[1]),r.putByte(e.session.compressionMethod),r};p.createCertificate=function(e){var t=e.entity===p.ConnectionEnd.client,a=null;if(e.getCertificate){var r;t?r=e.session.certificateRequest:r=e.session.extensions.server_name.serverNameList,a=e.getCertificate(e,r)}var n=N.util.createBuffer();if(a!==null)try{N.util.isArray(a)||(a=[a]);for(var s=null,i=0;i<a.length;++i){var o=N.pem.decode(a[i])[0];if(o.type!=="CERTIFICATE"&&o.type!=="X509 CERTIFICATE"&&o.type!=="TRUSTED CERTIFICATE"){var u=new Error('Could not convert certificate from PEM; PEM header type is not "CERTIFICATE", "X509 CERTIFICATE", or "TRUSTED CERTIFICATE".');throw u.headerType=o.type,u}if(o.procType&&o.procType.type==="ENCRYPTED")throw new Error("Could not convert certificate from PEM; PEM is encrypted.");var l=N.util.createBuffer(o.body);s===null&&(s=N.asn1.fromDer(l.bytes(),!1));var f=N.util.createBuffer();it(f,3,l),n.putBuffer(f)}a=N.pki.certificateFromAsn1(s),t?e.session.clientCertificate=a:e.session.serverCertificate=a}catch(g){return e.error(e,{message:"Could not send certificate list.",cause:g,send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.bad_certificate}})}var c=3+n.length(),y=N.util.createBuffer();return y.putByte(p.HandshakeType.certificate),y.putInt24(c),it(y,3,n),y};p.createClientKeyExchange=function(e){var t=N.util.createBuffer();t.putByte(e.session.clientHelloVersion.major),t.putByte(e.session.clientHelloVersion.minor),t.putBytes(N.random.getBytes(46));var a=e.session.sp;a.pre_master_secret=t.getBytes();var r=e.session.serverCertificate.publicKey;t=r.encrypt(a.pre_master_secret);var n=t.length+2,s=N.util.createBuffer();return s.putByte(p.HandshakeType.client_key_exchange),s.putInt24(n),s.putInt16(t.length),s.putBytes(t),s};p.createServerKeyExchange=function(e){var t=0,a=N.util.createBuffer();return t>0&&(a.putByte(p.HandshakeType.server_key_exchange),a.putInt24(t)),a};p.getClientSignature=function(e,t){var a=N.util.createBuffer();a.putBuffer(e.session.md5.digest()),a.putBuffer(e.session.sha1.digest()),a=a.getBytes(),e.getSignature=e.getSignature||function(r,n,s){var i=null;if(r.getPrivateKey)try{i=r.getPrivateKey(r,r.session.clientCertificate),i=N.pki.privateKeyFromPem(i)}catch(o){r.error(r,{message:"Could not get private key.",cause:o,send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.internal_error}})}i===null?r.error(r,{message:"No private key set.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.internal_error}}):n=i.sign(n,null),s(r,n)},e.getSignature(e,a,t)};p.createCertificateVerify=function(e,t){var a=t.length+2,r=N.util.createBuffer();return r.putByte(p.HandshakeType.certificate_verify),r.putInt24(a),r.putInt16(t.length),r.putBytes(t),r};p.createCertificateRequest=function(e){var t=N.util.createBuffer();t.putByte(1);var a=N.util.createBuffer();for(var r in e.caStore.certs){var n=e.caStore.certs[r],s=N.pki.distinguishedNameToAsn1(n.subject),i=N.asn1.toDer(s);a.putInt16(i.length()),a.putBuffer(i)}var o=1+t.length()+2+a.length(),u=N.util.createBuffer();return u.putByte(p.HandshakeType.certificate_request),u.putInt24(o),it(u,1,t),it(u,2,a),u};p.createServerHelloDone=function(e){var t=N.util.createBuffer();return t.putByte(p.HandshakeType.server_hello_done),t.putInt24(0),t};p.createChangeCipherSpec=function(){var e=N.util.createBuffer();return e.putByte(1),e};p.createFinished=function(e){var t=N.util.createBuffer();t.putBuffer(e.session.md5.digest()),t.putBuffer(e.session.sha1.digest());var a=e.entity===p.ConnectionEnd.client,r=e.session.sp,n=12,s=ca,i=a?"client finished":"server finished";t=s(r.master_secret,i,t.getBytes(),n);var o=N.util.createBuffer();return o.putByte(p.HandshakeType.finished),o.putInt24(t.length()),o.putBuffer(t),o};p.createHeartbeat=function(e,t,a){typeof a>"u"&&(a=t.length);var r=N.util.createBuffer();r.putByte(e),r.putInt16(a),r.putBytes(t);var n=r.length(),s=Math.max(16,n-a-3);return r.putBytes(N.random.getBytes(s)),r};p.queue=function(e,t){if(t&&!(t.fragment.length()===0&&(t.type===p.ContentType.handshake||t.type===p.ContentType.alert||t.type===p.ContentType.change_cipher_spec))){if(t.type===p.ContentType.handshake){var a=t.fragment.bytes();e.session.md5.update(a),e.session.sha1.update(a),a=null}var r;if(t.fragment.length()<=p.MaxFragment)r=[t];else{r=[];for(var n=t.fragment.bytes();n.length>p.MaxFragment;)r.push(p.createRecord(e,{type:t.type,data:N.util.createBuffer(n.slice(0,p.MaxFragment))})),n=n.slice(p.MaxFragment);n.length>0&&r.push(p.createRecord(e,{type:t.type,data:N.util.createBuffer(n)}))}for(var s=0;s<r.length&&!e.fail;++s){var i=r[s],o=e.state.current.write;o.update(e,i)&&e.records.push(i)}}};p.flush=function(e){for(var t=0;t<e.records.length;++t){var a=e.records[t];e.tlsData.putByte(a.type),e.tlsData.putByte(a.version.major),e.tlsData.putByte(a.version.minor),e.tlsData.putInt16(a.fragment.length()),e.tlsData.putBuffer(e.records[t].fragment)}return e.records=[],e.tlsDataReady(e)};var on=function(e){switch(e){case!0:return!0;case N.pki.certificateError.bad_certificate:return p.Alert.Description.bad_certificate;case N.pki.certificateError.unsupported_certificate:return p.Alert.Description.unsupported_certificate;case N.pki.certificateError.certificate_revoked:return p.Alert.Description.certificate_revoked;case N.pki.certificateError.certificate_expired:return p.Alert.Description.certificate_expired;case N.pki.certificateError.certificate_unknown:return p.Alert.Description.certificate_unknown;case N.pki.certificateError.unknown_ca:return p.Alert.Description.unknown_ca;default:return p.Alert.Description.bad_certificate}},Sf=function(e){switch(e){case!0:return!0;case p.Alert.Description.bad_certificate:return N.pki.certificateError.bad_certificate;case p.Alert.Description.unsupported_certificate:return N.pki.certificateError.unsupported_certificate;case p.Alert.Description.certificate_revoked:return N.pki.certificateError.certificate_revoked;case p.Alert.Description.certificate_expired:return N.pki.certificateError.certificate_expired;case p.Alert.Description.certificate_unknown:return N.pki.certificateError.certificate_unknown;case p.Alert.Description.unknown_ca:return N.pki.certificateError.unknown_ca;default:return N.pki.certificateError.bad_certificate}};p.verifyCertificateChain=function(e,t){try{var a={};for(var r in e.verifyOptions)a[r]=e.verifyOptions[r];a.verify=function(s,i,o){var u=on(s),l=e.verify(e,s,i,o);if(l!==!0){if(typeof l=="object"&&!N.util.isArray(l)){var f=new Error("The application rejected the certificate.");throw f.send=!0,f.alert={level:p.Alert.Level.fatal,description:p.Alert.Description.bad_certificate},l.message&&(f.message=l.message),l.alert&&(f.alert.description=l.alert),f}l!==s&&(l=Sf(l))}return l},N.pki.verifyCertificateChain(e.caStore,t,a)}catch(s){var n=s;(typeof n!="object"||N.util.isArray(n))&&(n={send:!0,alert:{level:p.Alert.Level.fatal,description:on(s)}}),"send"in n||(n.send=!0),"alert"in n||(n.alert={level:p.Alert.Level.fatal,description:on(n.error)}),e.error(e,n)}return!e.fail};p.createSessionCache=function(e,t){var a=null;if(e&&e.getSession&&e.setSession&&e.order)a=e;else{a={},a.cache=e||{},a.capacity=Math.max(t||100,1),a.order=[];for(var r in e)a.order.length<=t?a.order.push(r):delete e[r];a.getSession=function(n){var s=null,i=null;if(n?i=N.util.bytesToHex(n):a.order.length>0&&(i=a.order[0]),i!==null&&i in a.cache){s=a.cache[i],delete a.cache[i];for(var o in a.order)if(a.order[o]===i){a.order.splice(o,1);break}}return s},a.setSession=function(n,s){if(a.order.length===a.capacity){var i=a.order.shift();delete a.cache[i]}var i=N.util.bytesToHex(n);a.order.push(i),a.cache[i]=s}}return a};p.createConnection=function(e){var t=null;e.caStore?N.util.isArray(e.caStore)?t=N.pki.createCaStore(e.caStore):t=e.caStore:t=N.pki.createCaStore();var a=e.cipherSuites||null;if(a===null){a=[];for(var r in p.CipherSuites)a.push(p.CipherSuites[r])}var n=e.server?p.ConnectionEnd.server:p.ConnectionEnd.client,s=e.sessionCache?p.createSessionCache(e.sessionCache):null,i={version:{major:p.Version.major,minor:p.Version.minor},entity:n,sessionId:e.sessionId,caStore:t,sessionCache:s,cipherSuites:a,connected:e.connected,virtualHost:e.virtualHost||null,verifyClient:e.verifyClient||!1,verify:e.verify||function(f,c,y,g){return c},verifyOptions:e.verifyOptions||{},getCertificate:e.getCertificate||null,getPrivateKey:e.getPrivateKey||null,getSignature:e.getSignature||null,input:N.util.createBuffer(),tlsData:N.util.createBuffer(),data:N.util.createBuffer(),tlsDataReady:e.tlsDataReady,dataReady:e.dataReady,heartbeatReceived:e.heartbeatReceived,closed:e.closed,error:function(f,c){c.origin=c.origin||(f.entity===p.ConnectionEnd.client?"client":"server"),c.send&&(p.queue(f,p.createAlert(f,c.alert)),p.flush(f));var y=c.fatal!==!1;y&&(f.fail=!0),e.error(f,c),y&&f.close(!1)},deflate:e.deflate||null,inflate:e.inflate||null};i.reset=function(f){i.version={major:p.Version.major,minor:p.Version.minor},i.record=null,i.session=null,i.peerCertificate=null,i.state={pending:null,current:null},i.expect=i.entity===p.ConnectionEnd.client?sf:hf,i.fragmented=null,i.records=[],i.open=!1,i.handshakes=0,i.handshaking=!1,i.isConnected=!1,i.fail=!(f||typeof f>"u"),i.input.clear(),i.tlsData.clear(),i.data.clear(),i.state.current=p.createConnectionState(i)},i.reset();var o=function(f,c){var y=c.type-p.ContentType.change_cipher_spec,g=fn[f.entity][f.expect];y in g?g[y](f,c):p.handleUnexpected(f,c)},u=function(f){var c=0,y=f.input,g=y.length();if(g<5)c=5-g;else{f.record={type:y.getByte(),version:{major:y.getByte(),minor:y.getByte()},length:y.getInt16(),fragment:N.util.createBuffer(),ready:!1};var v=f.record.version.major===f.version.major;v&&f.session&&f.session.version&&(v=f.record.version.minor===f.version.minor),v||f.error(f,{message:"Incompatible TLS version.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.protocol_version}})}return c},l=function(f){var c=0,y=f.input,g=y.length();if(g<f.record.length)c=f.record.length-g;else{f.record.fragment.putBytes(y.getBytes(f.record.length)),y.compact();var v=f.state.current.read;v.update(f,f.record)&&(f.fragmented!==null&&(f.fragmented.type===f.record.type?(f.fragmented.fragment.putBuffer(f.record.fragment),f.record=f.fragmented):f.error(f,{message:"Invalid fragmented record.",send:!0,alert:{level:p.Alert.Level.fatal,description:p.Alert.Description.unexpected_message}})),f.record.ready=!0)}return c};return i.handshake=function(f){if(i.entity!==p.ConnectionEnd.client)i.error(i,{message:"Cannot initiate handshake as a server.",fatal:!1});else if(i.handshaking)i.error(i,{message:"Handshake already in progress.",fatal:!1});else{i.fail&&!i.open&&i.handshakes===0&&(i.fail=!1),i.handshaking=!0,f=f||"";var c=null;f.length>0&&(i.sessionCache&&(c=i.sessionCache.getSession(f)),c===null&&(f="")),f.length===0&&i.sessionCache&&(c=i.sessionCache.getSession(),c!==null&&(f=c.id)),i.session={id:f,version:null,cipherSuite:null,compressionMethod:null,serverCertificate:null,certificateRequest:null,clientCertificate:null,sp:{},md5:N.md.md5.create(),sha1:N.md.sha1.create()},c&&(i.version=c.version,i.session.sp=c.sp),i.session.sp.client_random=p.createRandom().getBytes(),i.open=!0,p.queue(i,p.createRecord(i,{type:p.ContentType.handshake,data:p.createClientHello(i)})),p.flush(i)}},i.process=function(f){var c=0;return f&&i.input.putBytes(f),i.fail||(i.record!==null&&i.record.ready&&i.record.fragment.isEmpty()&&(i.record=null),i.record===null&&(c=u(i)),!i.fail&&i.record!==null&&!i.record.ready&&(c=l(i)),!i.fail&&i.record!==null&&i.record.ready&&o(i,i.record)),c},i.prepare=function(f){return p.queue(i,p.createRecord(i,{type:p.ContentType.application_data,data:N.util.createBuffer(f)})),p.flush(i)},i.prepareHeartbeatRequest=function(f,c){return f instanceof N.util.ByteBuffer&&(f=f.bytes()),typeof c>"u"&&(c=f.length),i.expectedHeartbeatPayload=f,p.queue(i,p.createRecord(i,{type:p.ContentType.heartbeat,data:p.createHeartbeat(p.HeartbeatMessageType.heartbeat_request,f,c)})),p.flush(i)},i.close=function(f){if(!i.fail&&i.sessionCache&&i.session){var c={id:i.session.id,version:i.session.version,sp:i.session.sp};c.sp.keys=null,i.sessionCache.setSession(c.id,c)}i.open&&(i.open=!1,i.input.clear(),(i.isConnected||i.handshaking)&&(i.isConnected=i.handshaking=!1,p.queue(i,p.createAlert(i,{level:p.Alert.Level.warning,description:p.Alert.Description.close_notify})),p.flush(i)),i.closed(i)),i.reset(f)},i};Es.exports=N.tls=N.tls||{};for(la in p)typeof p[la]!="function"&&(N.tls[la]=p[la]);var la;N.tls.prf_tls1=ca;N.tls.hmac_sha1=rf;N.tls.createSessionCache=p.createSessionCache;N.tls.createConnection=p.createConnection});var Ts=K((Ud,Ss)=>{var Pt=$();Nt();cn();var st=Ss.exports=Pt.tls;st.CipherSuites.TLS_RSA_WITH_AES_128_CBC_SHA={id:[0,47],name:"TLS_RSA_WITH_AES_128_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=st.BulkCipherAlgorithm.aes,e.cipher_type=st.CipherType.block,e.enc_key_length=16,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=st.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:xs};st.CipherSuites.TLS_RSA_WITH_AES_256_CBC_SHA={id:[0,53],name:"TLS_RSA_WITH_AES_256_CBC_SHA",initSecurityParameters:function(e){e.bulk_cipher_algorithm=st.BulkCipherAlgorithm.aes,e.cipher_type=st.CipherType.block,e.enc_key_length=32,e.block_length=16,e.fixed_iv_length=16,e.record_iv_length=16,e.mac_algorithm=st.MACAlgorithm.hmac_sha1,e.mac_length=20,e.mac_key_length=20},initConnectionState:xs};function xs(e,t,a){var r=t.entity===Pt.tls.ConnectionEnd.client;e.read.cipherState={init:!1,cipher:Pt.cipher.createDecipher("AES-CBC",r?a.keys.server_write_key:a.keys.client_write_key),iv:r?a.keys.server_write_IV:a.keys.client_write_IV},e.write.cipherState={init:!1,cipher:Pt.cipher.createCipher("AES-CBC",r?a.keys.client_write_key:a.keys.server_write_key),iv:r?a.keys.client_write_IV:a.keys.server_write_IV},e.read.cipherFunction=Bf,e.write.cipherFunction=Tf,e.read.macLength=e.write.macLength=a.mac_length,e.read.macFunction=e.write.macFunction=st.hmac_sha1}function Tf(e,t){var a=!1,r=t.macFunction(t.macKey,t.sequenceNumber,e);e.fragment.putBytes(r),t.updateSequenceNumber();var n;e.version.minor===st.Versions.TLS_1_0.minor?n=t.cipherState.init?null:t.cipherState.iv:n=Pt.random.getBytesSync(16),t.cipherState.init=!0;var s=t.cipherState.cipher;return s.start({iv:n}),e.version.minor>=st.Versions.TLS_1_1.minor&&s.output.putBytes(n),s.update(e.fragment),s.finish(If)&&(e.fragment=s.output,e.length=e.fragment.length(),a=!0),a}function If(e,t,a){if(!a){var r=e-t.length()%e;t.fillWithByte(r-1,r)}return!0}function Af(e,t,a){var r=!0;if(a){for(var n=t.length(),s=t.last(),i=n-1-s;i<n-1;++i)r=r&&t.at(i)==s;r&&t.truncate(s+1)}return r}function Bf(e,t){var a=!1,r;e.version.minor===st.Versions.TLS_1_0.minor?r=t.cipherState.init?null:t.cipherState.iv:r=e.fragment.getBytes(16),t.cipherState.init=!0;var n=t.cipherState.cipher;n.start({iv:r}),n.update(e.fragment),a=n.finish(Af);var s=t.macLength,i=Pt.random.getBytesSync(s),o=n.output.length();o>=s?(e.fragment=n.output.getBytes(o-s),i=n.output.getBytes(s)):e.fragment=n.output.getBytes(),e.fragment=Pt.util.createBuffer(e.fragment),e.length=e.fragment.length();var u=t.macFunction(t.macKey,t.sequenceNumber,e);return t.updateSequenceNumber(),a=bf(t.macKey,i,u)&&a,a}function bf(e,t,a){var r=Pt.hmac.create();return r.start("SHA1",e),r.update(t),t=r.digest().getBytes(),r.start(null,null),r.update(a),a=r.digest().getBytes(),t===a}});var pn=K((Pd,bs)=>{var he=$();ft();ne();var br=bs.exports=he.sha512=he.sha512||{};he.md.sha512=he.md.algorithms.sha512=br;var As=he.sha384=he.sha512.sha384=he.sha512.sha384||{};As.create=function(){return br.create("SHA-384")};he.md.sha384=he.md.algorithms.sha384=As;he.sha512.sha256=he.sha512.sha256||{create:function(){return br.create("SHA-512/256")}};he.md["sha512/256"]=he.md.algorithms["sha512/256"]=he.sha512.sha256;he.sha512.sha224=he.sha512.sha224||{create:function(){return br.create("SHA-512/224")}};he.md["sha512/224"]=he.md.algorithms["sha512/224"]=he.sha512.sha224;br.create=function(e){if(Bs||_f(),typeof e>"u"&&(e="SHA-512"),!(e in jt))throw new Error("Invalid SHA-512 algorithm: "+e);for(var t=jt[e],a=null,r=he.util.createBuffer(),n=new Array(80),s=0;s<80;++s)n[s]=new Array(2);var i=64;switch(e){case"SHA-384":i=48;break;case"SHA-512/256":i=32;break;case"SHA-512/224":i=28;break}var o={algorithm:e.replace("-","").toLowerCase(),blockLength:128,digestLength:i,messageLength:0,fullMessageLength:null,messageLengthSize:16};return o.start=function(){o.messageLength=0,o.fullMessageLength=o.messageLength128=[];for(var u=o.messageLengthSize/4,l=0;l<u;++l)o.fullMessageLength.push(0);r=he.util.createBuffer(),a=new Array(t.length);for(var l=0;l<t.length;++l)a[l]=t[l].slice(0);return o},o.start(),o.update=function(u,l){l==="utf8"&&(u=he.util.encodeUtf8(u));var f=u.length;o.messageLength+=f,f=[f/4294967296>>>0,f>>>0];for(var c=o.fullMessageLength.length-1;c>=0;--c)o.fullMessageLength[c]+=f[1],f[1]=f[0]+(o.fullMessageLength[c]/4294967296>>>0),o.fullMessageLength[c]=o.fullMessageLength[c]>>>0,f[0]=f[1]/4294967296>>>0;return r.putBytes(u),Is(a,n,r),(r.read>2048||r.length()===0)&&r.compact(),o},o.digest=function(){var u=he.util.createBuffer();u.putBytes(r.bytes());var l=o.fullMessageLength[o.fullMessageLength.length-1]+o.messageLengthSize,f=l&o.blockLength-1;u.putBytes(dn.substr(0,o.blockLength-f));for(var c,y,g=o.fullMessageLength[0]*8,v=0;v<o.fullMessageLength.length-1;++v)c=o.fullMessageLength[v+1]*8,y=c/4294967296>>>0,g+=y,u.putInt32(g>>>0),g=c>>>0;u.putInt32(g);for(var x=new Array(a.length),v=0;v<a.length;++v)x[v]=a[v].slice(0);Is(x,n,u);var S=he.util.createBuffer(),I;e==="SHA-512"?I=x.length:e==="SHA-384"?I=x.length-2:I=x.length-4;for(var v=0;v<I;++v)S.putInt32(x[v][0]),(v!==I-1||e!=="SHA-512/224")&&S.putInt32(x[v][1]);return S},o};var dn=null,Bs=!1,hn=null,jt=null;function _f(){dn="\x80",dn+=he.util.fillString("\0",128),hn=[[1116352408,3609767458],[1899447441,602891725],[3049323471,3964484399],[3921009573,2173295548],[961987163,4081628472],[1508970993,3053834265],[2453635748,2937671579],[2870763221,3664609560],[3624381080,2734883394],[310598401,1164996542],[607225278,1323610764],[1426881987,3590304994],[1925078388,4068182383],[2162078206,991336113],[2614888103,633803317],[3248222580,3479774868],[3835390401,2666613458],[4022224774,944711139],[264347078,2341262773],[604807628,2007800933],[770255983,1495990901],[1249150122,1856431235],[1555081692,3175218132],[1996064986,2198950837],[2554220882,3999719339],[2821834349,766784016],[2952996808,2566594879],[3210313671,3203337956],[3336571891,1034457026],[3584528711,2466948901],[113926993,3758326383],[338241895,168717936],[666307205,1188179964],[773529912,1546045734],[1294757372,1522805485],[1396182291,2643833823],[1695183700,2343527390],[1986661051,1014477480],[2177026350,1206759142],[2456956037,344077627],[2730485921,1290863460],[2820302411,3158454273],[3259730800,3505952657],[3345764771,106217008],[3516065817,3606008344],[3600352804,1432725776],[4094571909,1467031594],[275423344,851169720],[430227734,3100823752],[506948616,1363258195],[659060556,3750685593],[883997877,3785050280],[958139571,3318307427],[1322822218,3812723403],[1537002063,2003034995],[1747873779,3602036899],[1955562222,1575990012],[2024104815,1125592928],[2227730452,2716904306],[2361852424,442776044],[2428436474,593698344],[2756734187,3733110249],[3204031479,2999351573],[3329325298,3815920427],[3391569614,3928383900],[3515267271,566280711],[3940187606,3454069534],[4118630271,4000239992],[116418474,1914138554],[174292421,2731055270],[289380356,3203993006],[460393269,320620315],[685471733,587496836],[852142971,1086792851],[1017036298,365543100],[1126000580,2618297676],[1288033470,3409855158],[1501505948,4234509866],[1607167915,987167468],[1816402316,1246189591]],jt={},jt["SHA-512"]=[[1779033703,4089235720],[3144134277,2227873595],[1013904242,4271175723],[2773480762,1595750129],[1359893119,2917565137],[2600822924,725511199],[528734635,4215389547],[1541459225,327033209]],jt["SHA-384"]=[[3418070365,3238371032],[1654270250,914150663],[2438529370,812702999],[355462360,4144912697],[1731405415,4290775857],[2394180231,1750603025],[3675008525,1694076839],[1203062813,3204075428]],jt["SHA-512/256"]=[[573645204,4230739756],[2673172387,3360449730],[596883563,1867755857],[2520282905,1497426621],[2519219938,2827943907],[3193839141,1401305490],[721525244,746961066],[246885852,2177182882]],jt["SHA-512/224"]=[[2352822216,424955298],[1944164710,2312950998],[502970286,855612546],[1738396948,1479516111],[258812777,2077511080],[2011393907,79989058],[1067287976,1780299464],[286451373,2446758561]],Bs=!0}function Is(e,t,a){for(var r,n,s,i,o,u,l,f,c,y,g,v,x,S,I,B,b,U,L,R,z,G,j,oe,ue,ee,xe,He,ie,ve,F,Kt,Zt,ge,me,Ee=a.length();Ee>=128;){for(ie=0;ie<16;++ie)t[ie][0]=a.getInt32()>>>0,t[ie][1]=a.getInt32()>>>0;for(;ie<80;++ie)Kt=t[ie-2],ve=Kt[0],F=Kt[1],r=((ve>>>19|F<<13)^(F>>>29|ve<<3)^ve>>>6)>>>0,n=((ve<<13|F>>>19)^(F<<3|ve>>>29)^(ve<<26|F>>>6))>>>0,ge=t[ie-15],ve=ge[0],F=ge[1],s=((ve>>>1|F<<31)^(ve>>>8|F<<24)^ve>>>7)>>>0,i=((ve<<31|F>>>1)^(ve<<24|F>>>8)^(ve<<25|F>>>7))>>>0,Zt=t[ie-7],me=t[ie-16],F=n+Zt[1]+i+me[1],t[ie][0]=r+Zt[0]+s+me[0]+(F/4294967296>>>0)>>>0,t[ie][1]=F>>>0;for(x=e[0][0],S=e[0][1],I=e[1][0],B=e[1][1],b=e[2][0],U=e[2][1],L=e[3][0],R=e[3][1],z=e[4][0],G=e[4][1],j=e[5][0],oe=e[5][1],ue=e[6][0],ee=e[6][1],xe=e[7][0],He=e[7][1],ie=0;ie<80;++ie)l=((z>>>14|G<<18)^(z>>>18|G<<14)^(G>>>9|z<<23))>>>0,f=((z<<18|G>>>14)^(z<<14|G>>>18)^(G<<23|z>>>9))>>>0,c=(ue^z&(j^ue))>>>0,y=(ee^G&(oe^ee))>>>0,o=((x>>>28|S<<4)^(S>>>2|x<<30)^(S>>>7|x<<25))>>>0,u=((x<<4|S>>>28)^(S<<30|x>>>2)^(S<<25|x>>>7))>>>0,g=(x&I|b&(x^I))>>>0,v=(S&B|U&(S^B))>>>0,F=He+f+y+hn[ie][1]+t[ie][1],r=xe+l+c+hn[ie][0]+t[ie][0]+(F/4294967296>>>0)>>>0,n=F>>>0,F=u+v,s=o+g+(F/4294967296>>>0)>>>0,i=F>>>0,xe=ue,He=ee,ue=j,ee=oe,j=z,oe=G,F=R+n,z=L+r+(F/4294967296>>>0)>>>0,G=F>>>0,L=b,R=U,b=I,U=B,I=x,B=S,F=n+i,x=r+s+(F/4294967296>>>0)>>>0,S=F>>>0;F=e[0][1]+S,e[0][0]=e[0][0]+x+(F/4294967296>>>0)>>>0,e[0][1]=F>>>0,F=e[1][1]+B,e[1][0]=e[1][0]+I+(F/4294967296>>>0)>>>0,e[1][1]=F>>>0,F=e[2][1]+U,e[2][0]=e[2][0]+b+(F/4294967296>>>0)>>>0,e[2][1]=F>>>0,F=e[3][1]+R,e[3][0]=e[3][0]+L+(F/4294967296>>>0)>>>0,e[3][1]=F>>>0,F=e[4][1]+G,e[4][0]=e[4][0]+z+(F/4294967296>>>0)>>>0,e[4][1]=F>>>0,F=e[5][1]+oe,e[5][0]=e[5][0]+j+(F/4294967296>>>0)>>>0,e[5][1]=F>>>0,F=e[6][1]+ee,e[6][0]=e[6][0]+ue+(F/4294967296>>>0)>>>0,e[6][1]=F>>>0,F=e[7][1]+He,e[7][0]=e[7][0]+xe+(F/4294967296>>>0)>>>0,e[7][1]=F>>>0,Ee-=128}}});var _s=K(yn=>{var Nf=$();ut();var Ae=Nf.asn1;yn.privateKeyValidator={name:"PrivateKeyInfo",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.SEQUENCE,constructed:!0,value:[{name:"PrivateKeyInfo.version",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.INTEGER,constructed:!1,capture:"privateKeyVersion"},{name:"PrivateKeyInfo.privateKeyAlgorithm",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.OID,constructed:!1,capture:"privateKeyOid"}]},{name:"PrivateKeyInfo",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.OCTETSTRING,constructed:!1,capture:"privateKey"}]};yn.publicKeyValidator={name:"SubjectPublicKeyInfo",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.SEQUENCE,constructed:!0,captureAsn1:"subjectPublicKeyInfo",value:[{name:"SubjectPublicKeyInfo.AlgorithmIdentifier",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.SEQUENCE,constructed:!0,value:[{name:"AlgorithmIdentifier.algorithm",tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.OID,constructed:!1,capture:"publicKeyOid"}]},{tagClass:Ae.Class.UNIVERSAL,type:Ae.Type.BITSTRING,constructed:!1,composed:!0,captureBitStringValue:"ed25519PublicKey"}]}});var qs=K((Vd,Ks)=>{var _e=$();Tr();tt();pn();ne();var ks=_s(),wf=ks.publicKeyValidator,Rf=ks.privateKeyValidator;typeof Ns>"u"&&(Ns=_e.jsbn.BigInteger);var Ns,gn=_e.util.ByteBuffer,je=typeof Buffer>"u"?Uint8Array:Buffer;_e.pki=_e.pki||{};Ks.exports=_e.pki.ed25519=_e.ed25519=_e.ed25519||{};var Z=_e.ed25519;Z.constants={};Z.constants.PUBLIC_KEY_BYTE_LENGTH=32;Z.constants.PRIVATE_KEY_BYTE_LENGTH=64;Z.constants.SEED_BYTE_LENGTH=32;Z.constants.SIGN_BYTE_LENGTH=64;Z.constants.HASH_BYTE_LENGTH=64;Z.generateKeyPair=function(e){e=e||{};var t=e.seed;if(t===void 0)t=_e.random.getBytesSync(Z.constants.SEED_BYTE_LENGTH);else if(typeof t=="string"){if(t.length!==Z.constants.SEED_BYTE_LENGTH)throw new TypeError('"seed" must be '+Z.constants.SEED_BYTE_LENGTH+" bytes in length.")}else if(!(t instanceof Uint8Array))throw new TypeError('"seed" must be a node.js Buffer, Uint8Array, or a binary string.');t=Tt({message:t,encoding:"binary"});for(var a=new je(Z.constants.PUBLIC_KEY_BYTE_LENGTH),r=new je(Z.constants.PRIVATE_KEY_BYTE_LENGTH),n=0;n<32;++n)r[n]=t[n];return Uf(a,r),{publicKey:a,privateKey:r}};Z.privateKeyFromAsn1=function(e){var t={},a=[],r=_e.asn1.validate(e,Rf,t,a);if(!r){var n=new Error("Invalid Key.");throw n.errors=a,n}var s=_e.asn1.derToOid(t.privateKeyOid),i=_e.oids.EdDSA25519;if(s!==i)throw new Error('Invalid OID "'+s+'"; OID must be "'+i+'".');var o=t.privateKey,u=Tt({message:_e.asn1.fromDer(o).value,encoding:"binary"});return{privateKeyBytes:u}};Z.publicKeyFromAsn1=function(e){var t={},a=[],r=_e.asn1.validate(e,wf,t,a);if(!r){var n=new Error("Invalid Key.");throw n.errors=a,n}var s=_e.asn1.derToOid(t.publicKeyOid),i=_e.oids.EdDSA25519;if(s!==i)throw new Error('Invalid OID "'+s+'"; OID must be "'+i+'".');var o=t.ed25519PublicKey;if(o.length!==Z.constants.PUBLIC_KEY_BYTE_LENGTH)throw new Error("Key length is invalid.");return Tt({message:o,encoding:"binary"})};Z.publicKeyFromPrivateKey=function(e){e=e||{};var t=Tt({message:e.privateKey,encoding:"binary"});if(t.length!==Z.constants.PRIVATE_KEY_BYTE_LENGTH)throw new TypeError('"options.privateKey" must have a byte length of '+Z.constants.PRIVATE_KEY_BYTE_LENGTH);for(var a=new je(Z.constants.PUBLIC_KEY_BYTE_LENGTH),r=0;r<a.length;++r)a[r]=t[32+r];return a};Z.sign=function(e){e=e||{};var t=Tt(e),a=Tt({message:e.privateKey,encoding:"binary"});if(a.length===Z.constants.SEED_BYTE_LENGTH){var r=Z.generateKeyPair({seed:a});a=r.privateKey}else if(a.length!==Z.constants.PRIVATE_KEY_BYTE_LENGTH)throw new TypeError('"options.privateKey" must have a byte length of '+Z.constants.SEED_BYTE_LENGTH+" or "+Z.constants.PRIVATE_KEY_BYTE_LENGTH);var n=new je(Z.constants.SIGN_BYTE_LENGTH+t.length);Pf(n,t,t.length,a);for(var s=new je(Z.constants.SIGN_BYTE_LENGTH),i=0;i<s.length;++i)s[i]=n[i];return s};Z.verify=function(e){e=e||{};var t=Tt(e);if(e.signature===void 0)throw new TypeError('"options.signature" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a binary string.');var a=Tt({message:e.signature,encoding:"binary"});if(a.length!==Z.constants.SIGN_BYTE_LENGTH)throw new TypeError('"options.signature" must have a byte length of '+Z.constants.SIGN_BYTE_LENGTH);var r=Tt({message:e.publicKey,encoding:"binary"});if(r.length!==Z.constants.PUBLIC_KEY_BYTE_LENGTH)throw new TypeError('"options.publicKey" must have a byte length of '+Z.constants.PUBLIC_KEY_BYTE_LENGTH);var n=new je(Z.constants.SIGN_BYTE_LENGTH+t.length),s=new je(Z.constants.SIGN_BYTE_LENGTH+t.length),i;for(i=0;i<Z.constants.SIGN_BYTE_LENGTH;++i)n[i]=a[i];for(i=0;i<t.length;++i)n[i+Z.constants.SIGN_BYTE_LENGTH]=t[i];return Of(s,n,n.length,r)>=0};function Tt(e){var t=e.message;if(t instanceof Uint8Array||t instanceof je)return t;var a=e.encoding;if(t===void 0)if(e.md)t=e.md.digest().getBytes(),a="binary";else throw new TypeError('"options.message" or "options.md" not specified.');if(typeof t=="string"&&!a)throw new TypeError('"options.encoding" must be "binary" or "utf8".');if(typeof t=="string"){if(typeof Buffer<"u")return Buffer.from(t,a);t=new gn(t,a)}else if(!(t instanceof gn))throw new TypeError('"options.message" must be a node.js Buffer, a Uint8Array, a forge ByteBuffer, or a string with "options.encoding" specifying its encoding.');for(var r=new je(t.length()),n=0;n<r.length;++n)r[n]=t.at(n);return r}var mn=H(),da=H([1]),Lf=H([30883,4953,19914,30187,55467,16705,2637,112,59544,30585,16505,36039,65139,11119,27886,20995]),Df=H([61785,9906,39828,60374,45398,33411,5274,224,53552,61171,33010,6542,64743,22239,55772,9222]),ws=H([54554,36645,11616,51542,42930,38181,51040,26924,56412,64982,57905,49316,21502,52590,14035,8553]),Rs=H([26200,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214,26214]),_r=new Float64Array([237,211,245,92,26,99,18,88,214,156,247,162,222,249,222,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16]),kf=H([41136,18958,6951,50414,58488,44335,6150,12099,55207,15867,153,11085,57099,20417,9344,11139]);function Nr(e,t){var a=_e.md.sha512.create(),r=new gn(e);a.update(r.getBytes(t),"binary");var n=a.digest().getBytes();if(typeof Buffer<"u")return Buffer.from(n,"binary");for(var s=new je(Z.constants.HASH_BYTE_LENGTH),i=0;i<64;++i)s[i]=n.charCodeAt(i);return s}function Uf(e,t){var a=[H(),H(),H(),H()],r,n=Nr(t,32);for(n[0]&=248,n[31]&=127,n[31]|=64,Sn(a,n),xn(e,a),r=0;r<32;++r)t[r+32]=e[r];return 0}function Pf(e,t,a,r){var n,s,i=new Float64Array(64),o=[H(),H(),H(),H()],u=Nr(r,32);u[0]&=248,u[31]&=127,u[31]|=64;var l=a+64;for(n=0;n<a;++n)e[64+n]=t[n];for(n=0;n<32;++n)e[32+n]=u[32+n];var f=Nr(e.subarray(32),a+32);for(Cn(f),Sn(o,f),xn(e,o),n=32;n<64;++n)e[n]=r[n];var c=Nr(e,a+64);for(Cn(c),n=32;n<64;++n)i[n]=0;for(n=0;n<32;++n)i[n]=f[n];for(n=0;n<32;++n)for(s=0;s<32;s++)i[n+s]+=c[n]*u[s];return Us(e.subarray(32),i),l}function Of(e,t,a,r){var n,s,i=new je(32),o=[H(),H(),H(),H()],u=[H(),H(),H(),H()];if(s=-1,a<64||Ff(u,r)||!Vf(t,32))return-1;for(n=0;n<a;++n)e[n]=t[n];for(n=0;n<32;++n)e[n+32]=r[n];var l=Nr(e,a);if(Cn(l),Vs(o,u,l),Sn(u,t.subarray(32)),En(o,u),xn(i,o),a-=64,Ps(t,0,i,0)){for(n=0;n<a;++n)e[n]=0;return-1}for(n=0;n<a;++n)e[n]=t[n+64];return s=a,s}function Vf(e,t){var a;for(a=31;a>=0;--a){if(e[t+a]<_r[a])return!0;if(e[t+a]>_r[a])return!1}return!1}function Us(e,t){var a,r,n,s;for(r=63;r>=32;--r){for(a=0,n=r-32,s=r-12;n<s;++n)t[n]+=a-16*t[r]*_r[n-(r-32)],a=t[n]+128>>8,t[n]-=a*256;t[n]+=a,t[r]=0}for(a=0,n=0;n<32;++n)t[n]+=a-(t[31]>>4)*_r[n],a=t[n]>>8,t[n]&=255;for(n=0;n<32;++n)t[n]-=a*_r[n];for(r=0;r<32;++r)t[r+1]+=t[r]>>8,e[r]=t[r]&255}function Cn(e){for(var t=new Float64Array(64),a=0;a<64;++a)t[a]=e[a],e[a]=0;Us(e,t)}function En(e,t){var a=H(),r=H(),n=H(),s=H(),i=H(),o=H(),u=H(),l=H(),f=H();cr(a,e[1],e[0]),cr(f,t[1],t[0]),le(a,a,f),fr(r,e[0],e[1]),fr(f,t[0],t[1]),le(r,r,f),le(n,e[3],t[3]),le(n,n,Df),le(s,e[2],t[2]),fr(s,s,s),cr(i,r,a),cr(o,s,n),fr(u,s,n),fr(l,r,a),le(e[0],i,o),le(e[1],l,u),le(e[2],u,o),le(e[3],i,l)}function Ls(e,t,a){for(var r=0;r<4;++r)Fs(e[r],t[r],a)}function xn(e,t){var a=H(),r=H(),n=H();Hf(n,t[2]),le(a,t[0],n),le(r,t[1],n),ha(e,r),e[31]^=Os(a)<<7}function ha(e,t){var a,r,n,s=H(),i=H();for(a=0;a<16;++a)i[a]=t[a];for(vn(i),vn(i),vn(i),r=0;r<2;++r){for(s[0]=i[0]-65517,a=1;a<15;++a)s[a]=i[a]-65535-(s[a-1]>>16&1),s[a-1]&=65535;s[15]=i[15]-32767-(s[14]>>16&1),n=s[15]>>16&1,s[14]&=65535,Fs(i,s,1-n)}for(a=0;a<16;a++)e[2*a]=i[a]&255,e[2*a+1]=i[a]>>8}function Ff(e,t){var a=H(),r=H(),n=H(),s=H(),i=H(),o=H(),u=H();return Ot(e[2],da),Kf(e[1],t),Wt(n,e[1]),le(s,n,Lf),cr(n,n,e[2]),fr(s,e[2],s),Wt(i,s),Wt(o,i),le(u,o,i),le(a,u,n),le(a,a,s),qf(a,a),le(a,a,n),le(a,a,s),le(a,a,s),le(e[0],a,s),Wt(r,e[0]),le(r,r,s),Ds(r,n)&&le(e[0],e[0],kf),Wt(r,e[0]),le(r,r,s),Ds(r,n)?-1:(Os(e[0])===t[31]>>7&&cr(e[0],mn,e[0]),le(e[3],e[0],e[1]),0)}function Kf(e,t){var a;for(a=0;a<16;++a)e[a]=t[2*a]+(t[2*a+1]<<8);e[15]&=32767}function qf(e,t){var a=H(),r;for(r=0;r<16;++r)a[r]=t[r];for(r=250;r>=0;--r)Wt(a,a),r!==1&&le(a,a,t);for(r=0;r<16;++r)e[r]=a[r]}function Ds(e,t){var a=new je(32),r=new je(32);return ha(a,e),ha(r,t),Ps(a,0,r,0)}function Ps(e,t,a,r){return Mf(e,t,a,r,32)}function Mf(e,t,a,r,n){var s,i=0;for(s=0;s<n;++s)i|=e[t+s]^a[r+s];return(1&i-1>>>8)-1}function Os(e){var t=new je(32);return ha(t,e),t[0]&1}function Vs(e,t,a){var r,n;for(Ot(e[0],mn),Ot(e[1],da),Ot(e[2],da),Ot(e[3],mn),n=255;n>=0;--n)r=a[n/8|0]>>(n&7)&1,Ls(e,t,r),En(t,e),En(e,e),Ls(e,t,r)}function Sn(e,t){var a=[H(),H(),H(),H()];Ot(a[0],ws),Ot(a[1],Rs),Ot(a[2],da),le(a[3],ws,Rs),Vs(e,a,t)}function Ot(e,t){var a;for(a=0;a<16;a++)e[a]=t[a]|0}function Hf(e,t){var a=H(),r;for(r=0;r<16;++r)a[r]=t[r];for(r=253;r>=0;--r)Wt(a,a),r!==2&&r!==4&&le(a,a,t);for(r=0;r<16;++r)e[r]=a[r]}function vn(e){var t,a,r=1;for(t=0;t<16;++t)a=e[t]+r+65535,r=Math.floor(a/65536),e[t]=a-r*65536;e[0]+=r-1+37*(r-1)}function Fs(e,t,a){for(var r,n=~(a-1),s=0;s<16;++s)r=n&(e[s]^t[s]),e[s]^=r,t[s]^=r}function H(e){var t,a=new Float64Array(16);if(e)for(t=0;t<e.length;++t)a[t]=e[t];return a}function fr(e,t,a){for(var r=0;r<16;++r)e[r]=t[r]+a[r]}function cr(e,t,a){for(var r=0;r<16;++r)e[r]=t[r]-a[r]}function Wt(e,t){le(e,t,t)}function le(e,t,a){var r,n,s=0,i=0,o=0,u=0,l=0,f=0,c=0,y=0,g=0,v=0,x=0,S=0,I=0,B=0,b=0,U=0,L=0,R=0,z=0,G=0,j=0,oe=0,ue=0,ee=0,xe=0,He=0,ie=0,ve=0,F=0,Kt=0,Zt=0,ge=a[0],me=a[1],Ee=a[2],we=a[3],Re=a[4],Le=a[5],De=a[6],ke=a[7],Ue=a[8],Pe=a[9],Oe=a[10],Ve=a[11],Fe=a[12],Ke=a[13],qe=a[14],Me=a[15];r=t[0],s+=r*ge,i+=r*me,o+=r*Ee,u+=r*we,l+=r*Re,f+=r*Le,c+=r*De,y+=r*ke,g+=r*Ue,v+=r*Pe,x+=r*Oe,S+=r*Ve,I+=r*Fe,B+=r*Ke,b+=r*qe,U+=r*Me,r=t[1],i+=r*ge,o+=r*me,u+=r*Ee,l+=r*we,f+=r*Re,c+=r*Le,y+=r*De,g+=r*ke,v+=r*Ue,x+=r*Pe,S+=r*Oe,I+=r*Ve,B+=r*Fe,b+=r*Ke,U+=r*qe,L+=r*Me,r=t[2],o+=r*ge,u+=r*me,l+=r*Ee,f+=r*we,c+=r*Re,y+=r*Le,g+=r*De,v+=r*ke,x+=r*Ue,S+=r*Pe,I+=r*Oe,B+=r*Ve,b+=r*Fe,U+=r*Ke,L+=r*qe,R+=r*Me,r=t[3],u+=r*ge,l+=r*me,f+=r*Ee,c+=r*we,y+=r*Re,g+=r*Le,v+=r*De,x+=r*ke,S+=r*Ue,I+=r*Pe,B+=r*Oe,b+=r*Ve,U+=r*Fe,L+=r*Ke,R+=r*qe,z+=r*Me,r=t[4],l+=r*ge,f+=r*me,c+=r*Ee,y+=r*we,g+=r*Re,v+=r*Le,x+=r*De,S+=r*ke,I+=r*Ue,B+=r*Pe,b+=r*Oe,U+=r*Ve,L+=r*Fe,R+=r*Ke,z+=r*qe,G+=r*Me,r=t[5],f+=r*ge,c+=r*me,y+=r*Ee,g+=r*we,v+=r*Re,x+=r*Le,S+=r*De,I+=r*ke,B+=r*Ue,b+=r*Pe,U+=r*Oe,L+=r*Ve,R+=r*Fe,z+=r*Ke,G+=r*qe,j+=r*Me,r=t[6],c+=r*ge,y+=r*me,g+=r*Ee,v+=r*we,x+=r*Re,S+=r*Le,I+=r*De,B+=r*ke,b+=r*Ue,U+=r*Pe,L+=r*Oe,R+=r*Ve,z+=r*Fe,G+=r*Ke,j+=r*qe,oe+=r*Me,r=t[7],y+=r*ge,g+=r*me,v+=r*Ee,x+=r*we,S+=r*Re,I+=r*Le,B+=r*De,b+=r*ke,U+=r*Ue,L+=r*Pe,R+=r*Oe,z+=r*Ve,G+=r*Fe,j+=r*Ke,oe+=r*qe,ue+=r*Me,r=t[8],g+=r*ge,v+=r*me,x+=r*Ee,S+=r*we,I+=r*Re,B+=r*Le,b+=r*De,U+=r*ke,L+=r*Ue,R+=r*Pe,z+=r*Oe,G+=r*Ve,j+=r*Fe,oe+=r*Ke,ue+=r*qe,ee+=r*Me,r=t[9],v+=r*ge,x+=r*me,S+=r*Ee,I+=r*we,B+=r*Re,b+=r*Le,U+=r*De,L+=r*ke,R+=r*Ue,z+=r*Pe,G+=r*Oe,j+=r*Ve,oe+=r*Fe,ue+=r*Ke,ee+=r*qe,xe+=r*Me,r=t[10],x+=r*ge,S+=r*me,I+=r*Ee,B+=r*we,b+=r*Re,U+=r*Le,L+=r*De,R+=r*ke,z+=r*Ue,G+=r*Pe,j+=r*Oe,oe+=r*Ve,ue+=r*Fe,ee+=r*Ke,xe+=r*qe,He+=r*Me,r=t[11],S+=r*ge,I+=r*me,B+=r*Ee,b+=r*we,U+=r*Re,L+=r*Le,R+=r*De,z+=r*ke,G+=r*Ue,j+=r*Pe,oe+=r*Oe,ue+=r*Ve,ee+=r*Fe,xe+=r*Ke,He+=r*qe,ie+=r*Me,r=t[12],I+=r*ge,B+=r*me,b+=r*Ee,U+=r*we,L+=r*Re,R+=r*Le,z+=r*De,G+=r*ke,j+=r*Ue,oe+=r*Pe,ue+=r*Oe,ee+=r*Ve,xe+=r*Fe,He+=r*Ke,ie+=r*qe,ve+=r*Me,r=t[13],B+=r*ge,b+=r*me,U+=r*Ee,L+=r*we,R+=r*Re,z+=r*Le,G+=r*De,j+=r*ke,oe+=r*Ue,ue+=r*Pe,ee+=r*Oe,xe+=r*Ve,He+=r*Fe,ie+=r*Ke,ve+=r*qe,F+=r*Me,r=t[14],b+=r*ge,U+=r*me,L+=r*Ee,R+=r*we,z+=r*Re,G+=r*Le,j+=r*De,oe+=r*ke,ue+=r*Ue,ee+=r*Pe,xe+=r*Oe,He+=r*Ve,ie+=r*Fe,ve+=r*Ke,F+=r*qe,Kt+=r*Me,r=t[15],U+=r*ge,L+=r*me,R+=r*Ee,z+=r*we,G+=r*Re,j+=r*Le,oe+=r*De,ue+=r*ke,ee+=r*Ue,xe+=r*Pe,He+=r*Oe,ie+=r*Ve,ve+=r*Fe,F+=r*Ke,Kt+=r*qe,Zt+=r*Me,s+=38*L,i+=38*R,o+=38*z,u+=38*G,l+=38*j,f+=38*oe,c+=38*ue,y+=38*ee,g+=38*xe,v+=38*He,x+=38*ie,S+=38*ve,I+=38*F,B+=38*Kt,b+=38*Zt,n=1,r=s+n+65535,n=Math.floor(r/65536),s=r-n*65536,r=i+n+65535,n=Math.floor(r/65536),i=r-n*65536,r=o+n+65535,n=Math.floor(r/65536),o=r-n*65536,r=u+n+65535,n=Math.floor(r/65536),u=r-n*65536,r=l+n+65535,n=Math.floor(r/65536),l=r-n*65536,r=f+n+65535,n=Math.floor(r/65536),f=r-n*65536,r=c+n+65535,n=Math.floor(r/65536),c=r-n*65536,r=y+n+65535,n=Math.floor(r/65536),y=r-n*65536,r=g+n+65535,n=Math.floor(r/65536),g=r-n*65536,r=v+n+65535,n=Math.floor(r/65536),v=r-n*65536,r=x+n+65535,n=Math.floor(r/65536),x=r-n*65536,r=S+n+65535,n=Math.floor(r/65536),S=r-n*65536,r=I+n+65535,n=Math.floor(r/65536),I=r-n*65536,r=B+n+65535,n=Math.floor(r/65536),B=r-n*65536,r=b+n+65535,n=Math.floor(r/65536),b=r-n*65536,r=U+n+65535,n=Math.floor(r/65536),U=r-n*65536,s+=n-1+37*(n-1),n=1,r=s+n+65535,n=Math.floor(r/65536),s=r-n*65536,r=i+n+65535,n=Math.floor(r/65536),i=r-n*65536,r=o+n+65535,n=Math.floor(r/65536),o=r-n*65536,r=u+n+65535,n=Math.floor(r/65536),u=r-n*65536,r=l+n+65535,n=Math.floor(r/65536),l=r-n*65536,r=f+n+65535,n=Math.floor(r/65536),f=r-n*65536,r=c+n+65535,n=Math.floor(r/65536),c=r-n*65536,r=y+n+65535,n=Math.floor(r/65536),y=r-n*65536,r=g+n+65535,n=Math.floor(r/65536),g=r-n*65536,r=v+n+65535,n=Math.floor(r/65536),v=r-n*65536,r=x+n+65535,n=Math.floor(r/65536),x=r-n*65536,r=S+n+65535,n=Math.floor(r/65536),S=r-n*65536,r=I+n+65535,n=Math.floor(r/65536),I=r-n*65536,r=B+n+65535,n=Math.floor(r/65536),B=r-n*65536,r=b+n+65535,n=Math.floor(r/65536),b=r-n*65536,r=U+n+65535,n=Math.floor(r/65536),U=r-n*65536,s+=n-1+37*(n-1),e[0]=s,e[1]=i,e[2]=o,e[3]=u,e[4]=l,e[5]=f,e[6]=c,e[7]=y,e[8]=g,e[9]=v,e[10]=x,e[11]=S,e[12]=I,e[13]=B,e[14]=b,e[15]=U}});var zs=K((Fd,Gs)=>{var Xe=$();ne();tt();Tr();Gs.exports=Xe.kem=Xe.kem||{};var Ms=Xe.jsbn.BigInteger;Xe.kem.rsa={};Xe.kem.rsa.create=function(e,t){t=t||{};var a=t.prng||Xe.random,r={};return r.encrypt=function(n,s){var i=Math.ceil(n.n.bitLength()/8),o;do o=new Ms(Xe.util.bytesToHex(a.getBytesSync(i)),16).mod(n.n);while(o.compareTo(Ms.ONE)<=0);o=Xe.util.hexToBytes(o.toString(16));var u=i-o.length;u>0&&(o=Xe.util.fillString("\0",u)+o);var l=n.encrypt(o,"NONE"),f=e.generate(o,s);return{encapsulation:l,key:f}},r.decrypt=function(n,s,i){var o=n.decrypt(s,"NONE");return e.generate(o,i)},r};Xe.kem.kdf1=function(e,t){Hs(this,e,0,t||e.digestLength)};Xe.kem.kdf2=function(e,t){Hs(this,e,1,t||e.digestLength)};function Hs(e,t,a,r){e.generate=function(n,s){for(var i=new Xe.util.ByteBuffer,o=Math.ceil(s/r)+a,u=new Xe.util.ByteBuffer,l=a;l<o;++l){u.putInt32(l),t.start(),t.update(n+u.getBytes());var f=t.digest();i.putBytes(f.getBytes(r))}return i.truncate(i.length()-s),i.getBytes()}}});var js=K((Kd,$s)=>{var J=$();ne();$s.exports=J.log=J.log||{};J.log.levels=["none","error","warning","info","debug","verbose","max"];var pa={},An=[],Rr=null;J.log.LEVEL_LOCKED=2;J.log.NO_LEVEL_CHECK=4;J.log.INTERPOLATE=8;for(mt=0;mt<J.log.levels.length;++mt)Tn=J.log.levels[mt],pa[Tn]={index:mt,name:Tn.toUpperCase()};var Tn,mt;J.log.logMessage=function(e){for(var t=pa[e.level].index,a=0;a<An.length;++a){var r=An[a];if(r.flags&J.log.NO_LEVEL_CHECK)r.f(e);else{var n=pa[r.level].index;t<=n&&r.f(r,e)}}};J.log.prepareStandard=function(e){"standard"in e||(e.standard=pa[e.level].name+" ["+e.category+"] "+e.message)};J.log.prepareFull=function(e){if(!("full"in e)){var t=[e.message];t=t.concat([]),e.full=J.util.format.apply(this,t)}};J.log.prepareStandardFull=function(e){"standardFull"in e||(J.log.prepareStandard(e),e.standardFull=e.standard)};for(In=["error","warning","info","debug","verbose"],mt=0;mt<In.length;++mt)(function(t){J.log[t]=function(a,r){var n=Array.prototype.slice.call(arguments).slice(2),s={timestamp:new Date,level:t,category:a,message:r,arguments:n};J.log.logMessage(s)}})(In[mt]);var In,mt;J.log.makeLogger=function(e){var t={flags:0,f:e};return J.log.setLevel(t,"none"),t};J.log.setLevel=function(e,t){var a=!1;if(e&&!(e.flags&J.log.LEVEL_LOCKED))for(var r=0;r<J.log.levels.length;++r){var n=J.log.levels[r];if(t==n){e.level=t,a=!0;break}}return a};J.log.lock=function(e,t){typeof t>"u"||t?e.flags|=J.log.LEVEL_LOCKED:e.flags&=~J.log.LEVEL_LOCKED};J.log.addLogger=function(e){An.push(e)};typeof console<"u"&&"log"in console?(console.error&&console.warn&&console.info&&console.debug?(Qs={error:console.error,warning:console.warn,info:console.info,debug:console.debug,verbose:console.debug},Lr=function(e,t){J.log.prepareStandard(t);var a=Qs[t.level],r=[t.standard];r=r.concat(t.arguments.slice()),a.apply(console,r)},dr=J.log.makeLogger(Lr)):(Lr=function(t,a){J.log.prepareStandardFull(a),console.log(a.standardFull)},dr=J.log.makeLogger(Lr)),J.log.setLevel(dr,"debug"),J.log.addLogger(dr),Rr=dr):console={log:function(){}};var dr,Qs,Lr;Rr!==null&&typeof window<"u"&&window.location&&(wr=new URL(window.location.href).searchParams,wr.has("console.level")&&J.log.setLevel(Rr,wr.get("console.level").slice(-1)[0]),wr.has("console.lock")&&(Ys=wr.get("console.lock").slice(-1)[0],Ys=="true"&&J.log.lock(Rr)));var wr,Ys;J.log.consoleLogger=Rr});var Xs=K((qd,Ws)=>{Ws.exports=ft();Yr();ir();Va();pn()});var eo=K((Md,Js)=>{var k=$();Nt();ut();xr();wt();Ht();Za();tt();ne();oa();var C=k.asn1,Ye=Js.exports=k.pkcs7=k.pkcs7||{};Ye.messageFromPem=function(e){var t=k.pem.decode(e)[0];if(t.type!=="PKCS7"){var a=new Error('Could not convert PKCS#7 message from PEM; PEM header type is not "PKCS#7".');throw a.headerType=t.type,a}if(t.procType&&t.procType.type==="ENCRYPTED")throw new Error("Could not convert PKCS#7 message from PEM; PEM is encrypted.");var r=C.fromDer(t.body);return Ye.messageFromAsn1(r)};Ye.messageToPem=function(e,t){var a={type:"PKCS7",body:C.toDer(e.toAsn1()).getBytes()};return k.pem.encode(a,{maxline:t})};Ye.messageFromAsn1=function(e){var t={},a=[];if(!C.validate(e,Ye.asn1.contentInfoValidator,t,a)){var r=new Error("Cannot read PKCS#7 message. ASN.1 object is not an PKCS#7 ContentInfo.");throw r.errors=a,r}var n=C.derToOid(t.contentType),s;switch(n){case k.pki.oids.envelopedData:s=Ye.createEnvelopedData();break;case k.pki.oids.encryptedData:s=Ye.createEncryptedData();break;case k.pki.oids.signedData:s=Ye.createSignedData();break;default:throw new Error("Cannot read PKCS#7 message. ContentType with OID "+n+" is not (yet) supported.")}return s.fromAsn1(t.content.value[0]),s};Ye.createSignedData=function(){var e=null;return e={type:k.pki.oids.signedData,version:1,certificates:[],crls:[],signers:[],digestAlgorithmIdentifiers:[],contentInfo:null,signerInfos:[],fromAsn1:function(r){if(bn(e,r,Ye.asn1.signedDataValidator),e.certificates=[],e.crls=[],e.digestAlgorithmIdentifiers=[],e.contentInfo=null,e.signerInfos=[],e.rawCapture.certificates)for(var n=e.rawCapture.certificates.value,s=0;s<n.length;++s)e.certificates.push(k.pki.certificateFromAsn1(n[s]))},toAsn1:function(){e.contentInfo||e.sign();for(var r=[],n=0;n<e.certificates.length;++n)r.push(k.pki.certificateToAsn1(e.certificates[n]));var s=[],i=C.create(C.Class.CONTEXT_SPECIFIC,0,!0,[C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.INTEGER,!1,C.integerToDer(e.version).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.SET,!0,e.digestAlgorithmIdentifiers),e.contentInfo])]);return r.length>0&&i.value[0].value.push(C.create(C.Class.CONTEXT_SPECIFIC,0,!0,r)),s.length>0&&i.value[0].value.push(C.create(C.Class.CONTEXT_SPECIFIC,1,!0,s)),i.value[0].value.push(C.create(C.Class.UNIVERSAL,C.Type.SET,!0,e.signerInfos)),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.type).getBytes()),i])},addSigner:function(r){var n=r.issuer,s=r.serialNumber;if(r.certificate){var i=r.certificate;typeof i=="string"&&(i=k.pki.certificateFromPem(i)),n=i.issuer.attributes,s=i.serialNumber}var o=r.key;if(!o)throw new Error("Could not add PKCS#7 signer; no private key specified.");typeof o=="string"&&(o=k.pki.privateKeyFromPem(o));var u=r.digestAlgorithm||k.pki.oids.sha1;switch(u){case k.pki.oids.sha1:case k.pki.oids.sha256:case k.pki.oids.sha384:case k.pki.oids.sha512:case k.pki.oids.md5:break;default:throw new Error("Could not add PKCS#7 signer; unknown message digest algorithm: "+u)}var l=r.authenticatedAttributes||[];if(l.length>0){for(var f=!1,c=!1,y=0;y<l.length;++y){var g=l[y];if(!f&&g.type===k.pki.oids.contentType){if(f=!0,c)break;continue}if(!c&&g.type===k.pki.oids.messageDigest){if(c=!0,f)break;continue}}if(!f||!c)throw new Error("Invalid signer.authenticatedAttributes. If signer.authenticatedAttributes is specified, then it must contain at least two attributes, PKCS #9 content-type and PKCS #9 message-digest.")}e.signers.push({key:o,version:1,issuer:n,serialNumber:s,digestAlgorithm:u,signatureAlgorithm:k.pki.oids.rsaEncryption,signature:null,authenticatedAttributes:l,unauthenticatedAttributes:[]})},sign:function(r){if(r=r||{},(typeof e.content!="object"||e.contentInfo===null)&&(e.contentInfo=C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(k.pki.oids.data).getBytes())]),"content"in e)){var n;e.content instanceof k.util.ByteBuffer?n=e.content.bytes():typeof e.content=="string"&&(n=k.util.encodeUtf8(e.content)),r.detached?e.detachedContent=C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,n):e.contentInfo.value.push(C.create(C.Class.CONTEXT_SPECIFIC,0,!0,[C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,n)]))}if(e.signers.length!==0){var s=t();a(s)}},verify:function(){throw new Error("PKCS#7 signature verification not yet implemented.")},addCertificate:function(r){typeof r=="string"&&(r=k.pki.certificateFromPem(r)),e.certificates.push(r)},addCertificateRevokationList:function(r){throw new Error("PKCS#7 CRL support not yet implemented.")}},e;function t(){for(var r={},n=0;n<e.signers.length;++n){var s=e.signers[n],i=s.digestAlgorithm;i in r||(r[i]=k.md[k.pki.oids[i]].create()),s.authenticatedAttributes.length===0?s.md=r[i]:s.md=k.md[k.pki.oids[i]].create()}e.digestAlgorithmIdentifiers=[];for(var i in r)e.digestAlgorithmIdentifiers.push(C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(i).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.NULL,!1,"")]));return r}function a(r){var n;if(e.detachedContent?n=e.detachedContent:(n=e.contentInfo.value[1],n=n.value[0]),!n)throw new Error("Could not sign PKCS#7 message; there is no content to sign.");var s=C.derToOid(e.contentInfo.value[0].value),i=C.toDer(n);i.getByte(),C.getBerValueLength(i),i=i.getBytes();for(var o in r)r[o].start().update(i);for(var u=new Date,l=0;l<e.signers.length;++l){var f=e.signers[l];if(f.authenticatedAttributes.length===0){if(s!==k.pki.oids.data)throw new Error("Invalid signer; authenticatedAttributes must be present when the ContentInfo content type is not PKCS#7 Data.")}else{f.authenticatedAttributesAsn1=C.create(C.Class.CONTEXT_SPECIFIC,0,!0,[]);for(var c=C.create(C.Class.UNIVERSAL,C.Type.SET,!0,[]),y=0;y<f.authenticatedAttributes.length;++y){var g=f.authenticatedAttributes[y];g.type===k.pki.oids.messageDigest?g.value=r[f.digestAlgorithm].digest():g.type===k.pki.oids.signingTime&&(g.value||(g.value=u)),c.value.push(Bn(g)),f.authenticatedAttributesAsn1.value.push(Bn(g))}i=C.toDer(c).getBytes(),f.md.start().update(i)}f.signature=f.key.sign(f.md,"RSASSA-PKCS1-V1_5")}e.signerInfos=jf(e.signers)}};Ye.createEncryptedData=function(){var e=null;return e={type:k.pki.oids.encryptedData,version:0,encryptedContent:{algorithm:k.pki.oids["aes256-CBC"]},fromAsn1:function(t){bn(e,t,Ye.asn1.encryptedDataValidator)},decrypt:function(t){t!==void 0&&(e.encryptedContent.key=t),Zs(e)}},e};Ye.createEnvelopedData=function(){var e=null;return e={type:k.pki.oids.envelopedData,version:0,recipients:[],encryptedContent:{algorithm:k.pki.oids["aes256-CBC"]},fromAsn1:function(t){var a=bn(e,t,Ye.asn1.envelopedDataValidator);e.recipients=Qf(a.recipientInfos.value)},toAsn1:function(){return C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.type).getBytes()),C.create(C.Class.CONTEXT_SPECIFIC,0,!0,[C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.INTEGER,!1,C.integerToDer(e.version).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.SET,!0,Yf(e.recipients)),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,Wf(e.encryptedContent))])])])},findRecipient:function(t){for(var a=t.issuer.attributes,r=0;r<e.recipients.length;++r){var n=e.recipients[r],s=n.issuer;if(n.serialNumber===t.serialNumber&&s.length===a.length){for(var i=!0,o=0;o<a.length;++o)if(s[o].type!==a[o].type||s[o].value!==a[o].value){i=!1;break}if(i)return n}}return null},decrypt:function(t,a){if(e.encryptedContent.key===void 0&&t!==void 0&&a!==void 0)switch(t.encryptedContent.algorithm){case k.pki.oids.rsaEncryption:case k.pki.oids.desCBC:var r=a.decrypt(t.encryptedContent.content);e.encryptedContent.key=k.util.createBuffer(r);break;default:throw new Error("Unsupported asymmetric cipher, OID "+t.encryptedContent.algorithm)}Zs(e)},addRecipient:function(t){e.recipients.push({version:0,issuer:t.issuer.attributes,serialNumber:t.serialNumber,encryptedContent:{algorithm:k.pki.oids.rsaEncryption,key:t.publicKey}})},encrypt:function(t,a){if(e.encryptedContent.content===void 0){a=a||e.encryptedContent.algorithm,t=t||e.encryptedContent.key;var r,n,s;switch(a){case k.pki.oids["aes128-CBC"]:r=16,n=16,s=k.aes.createEncryptionCipher;break;case k.pki.oids["aes192-CBC"]:r=24,n=16,s=k.aes.createEncryptionCipher;break;case k.pki.oids["aes256-CBC"]:r=32,n=16,s=k.aes.createEncryptionCipher;break;case k.pki.oids["des-EDE3-CBC"]:r=24,n=8,s=k.des.createEncryptionCipher;break;default:throw new Error("Unsupported symmetric cipher, OID "+a)}if(t===void 0)t=k.util.createBuffer(k.random.getBytes(r));else if(t.length()!=r)throw new Error("Symmetric key has wrong length; got "+t.length()+" bytes, expected "+r+".");e.encryptedContent.algorithm=a,e.encryptedContent.key=t,e.encryptedContent.parameter=k.util.createBuffer(k.random.getBytes(n));var i=s(t);if(i.start(e.encryptedContent.parameter.copy()),i.update(e.content),!i.finish())throw new Error("Symmetric encryption failed.");e.encryptedContent.content=i.output}for(var o=0;o<e.recipients.length;++o){var u=e.recipients[o];if(u.encryptedContent.content===void 0)if(u.encryptedContent.algorithm===k.pki.oids.rsaEncryption)u.encryptedContent.content=u.encryptedContent.key.encrypt(e.encryptedContent.key.data);else throw new Error("Unsupported asymmetric cipher, OID "+u.encryptedContent.algorithm)}}},e};function Gf(e){var t={},a=[];if(!C.validate(e,Ye.asn1.recipientInfoValidator,t,a)){var r=new Error("Cannot read PKCS#7 RecipientInfo. ASN.1 object is not an PKCS#7 RecipientInfo.");throw r.errors=a,r}return{version:t.version.charCodeAt(0),issuer:k.pki.RDNAttributesAsArray(t.issuer),serialNumber:k.util.createBuffer(t.serial).toHex(),encryptedContent:{algorithm:C.derToOid(t.encAlgorithm),parameter:t.encParameter?t.encParameter.value:void 0,content:t.encKey}}}function zf(e){return C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.INTEGER,!1,C.integerToDer(e.version).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[k.pki.distinguishedNameToAsn1({attributes:e.issuer}),C.create(C.Class.UNIVERSAL,C.Type.INTEGER,!1,k.util.hexToBytes(e.serialNumber))]),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.encryptedContent.algorithm).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.NULL,!1,"")]),C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,e.encryptedContent.content)])}function Qf(e){for(var t=[],a=0;a<e.length;++a)t.push(Gf(e[a]));return t}function Yf(e){for(var t=[],a=0;a<e.length;++a)t.push(zf(e[a]));return t}function $f(e){var t=C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.INTEGER,!1,C.integerToDer(e.version).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[k.pki.distinguishedNameToAsn1({attributes:e.issuer}),C.create(C.Class.UNIVERSAL,C.Type.INTEGER,!1,k.util.hexToBytes(e.serialNumber))]),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.digestAlgorithm).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.NULL,!1,"")])]);if(e.authenticatedAttributesAsn1&&t.value.push(e.authenticatedAttributesAsn1),t.value.push(C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.signatureAlgorithm).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.NULL,!1,"")])),t.value.push(C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,e.signature)),e.unauthenticatedAttributes.length>0){for(var a=C.create(C.Class.CONTEXT_SPECIFIC,1,!0,[]),r=0;r<e.unauthenticatedAttributes.length;++r){var n=e.unauthenticatedAttributes[r];a.values.push(Bn(n))}t.value.push(a)}return t}function jf(e){for(var t=[],a=0;a<e.length;++a)t.push($f(e[a]));return t}function Bn(e){var t;if(e.type===k.pki.oids.contentType)t=C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.value).getBytes());else if(e.type===k.pki.oids.messageDigest)t=C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,e.value.bytes());else if(e.type===k.pki.oids.signingTime){var a=new Date("1950-01-01T00:00:00Z"),r=new Date("2050-01-01T00:00:00Z"),n=e.value;if(typeof n=="string"){var s=Date.parse(n);isNaN(s)?n.length===13?n=C.utcTimeToDate(n):n=C.generalizedTimeToDate(n):n=new Date(s)}n>=a&&n<r?t=C.create(C.Class.UNIVERSAL,C.Type.UTCTIME,!1,C.dateToUtcTime(n)):t=C.create(C.Class.UNIVERSAL,C.Type.GENERALIZEDTIME,!1,C.dateToGeneralizedTime(n))}return C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.type).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.SET,!0,[t])])}function Wf(e){return[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(k.pki.oids.data).getBytes()),C.create(C.Class.UNIVERSAL,C.Type.SEQUENCE,!0,[C.create(C.Class.UNIVERSAL,C.Type.OID,!1,C.oidToDer(e.algorithm).getBytes()),e.parameter?C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,e.parameter.getBytes()):void 0]),C.create(C.Class.CONTEXT_SPECIFIC,0,!0,[C.create(C.Class.UNIVERSAL,C.Type.OCTETSTRING,!1,e.content.getBytes())])]}function bn(e,t,a){var r={},n=[];if(!C.validate(t,a,r,n)){var s=new Error("Cannot read PKCS#7 message. ASN.1 object is not a supported PKCS#7 message.");throw s.errors=s,s}var i=C.derToOid(r.contentType);if(i!==k.pki.oids.data)throw new Error("Unsupported PKCS#7 message. Only wrapped ContentType Data supported.");if(r.encryptedContent){var o="";if(k.util.isArray(r.encryptedContent))for(var u=0;u<r.encryptedContent.length;++u){if(r.encryptedContent[u].type!==C.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting encrypted content constructed of only OCTET STRING objects.");o+=r.encryptedContent[u].value}else o=r.encryptedContent;e.encryptedContent={algorithm:C.derToOid(r.encAlgorithm),parameter:k.util.createBuffer(r.encParameter.value),content:k.util.createBuffer(o)}}if(r.content){var o="";if(k.util.isArray(r.content))for(var u=0;u<r.content.length;++u){if(r.content[u].type!==C.Type.OCTETSTRING)throw new Error("Malformed PKCS#7 message, expecting content constructed of only OCTET STRING objects.");o+=r.content[u].value}else o=r.content;e.content=k.util.createBuffer(o)}return e.version=r.version.charCodeAt(0),e.rawCapture=r,r}function Zs(e){if(e.encryptedContent.key===void 0)throw new Error("Symmetric key not available.");if(e.content===void 0){var t;switch(e.encryptedContent.algorithm){case k.pki.oids["aes128-CBC"]:case k.pki.oids["aes192-CBC"]:case k.pki.oids["aes256-CBC"]:t=k.aes.createDecryptionCipher(e.encryptedContent.key);break;case k.pki.oids.desCBC:case k.pki.oids["des-EDE3-CBC"]:t=k.des.createDecryptionCipher(e.encryptedContent.key);break;default:throw new Error("Unsupported symmetric cipher, OID "+e.encryptedContent.algorithm)}if(t.start(e.encryptedContent.parameter),t.update(e.encryptedContent.content),!t.finish())throw new Error("Symmetric decryption failed.");e.content=t.output}}});var ro=K((Hd,to)=>{var Ce=$();Nt();tr();Yr();ir();ne();var va=to.exports=Ce.ssh=Ce.ssh||{};va.privateKeyToPutty=function(e,t,a){a=a||"",t=t||"";var r="ssh-rsa",n=t===""?"none":"aes256-cbc",s="PuTTY-User-Key-File-2: "+r+`\r +`;s+="Encryption: "+n+`\r +`,s+="Comment: "+a+`\r +`;var i=Ce.util.createBuffer();hr(i,r),Ct(i,e.e),Ct(i,e.n);var o=Ce.util.encode64(i.bytes(),64),u=Math.floor(o.length/66)+1;s+="Public-Lines: "+u+`\r +`,s+=o;var l=Ce.util.createBuffer();Ct(l,e.d),Ct(l,e.p),Ct(l,e.q),Ct(l,e.qInv);var f;if(!t)f=Ce.util.encode64(l.bytes(),64);else{var c=l.length()+16-1;c-=c%16;var y=ya(l.bytes());y.truncate(y.length()-c+l.length()),l.putBuffer(y);var g=Ce.util.createBuffer();g.putBuffer(ya("\0\0\0\0",t)),g.putBuffer(ya("\0\0\0",t));var v=Ce.aes.createEncryptionCipher(g.truncate(8),"CBC");v.start(Ce.util.createBuffer().fillWithByte(0,16)),v.update(l.copy()),v.finish();var x=v.output;x.truncate(16),f=Ce.util.encode64(x.bytes(),64)}u=Math.floor(f.length/66)+1,s+=`\r +Private-Lines: `+u+`\r +`,s+=f;var S=ya("putty-private-key-file-mac-key",t),I=Ce.util.createBuffer();hr(I,r),hr(I,n),hr(I,a),I.putInt32(i.length()),I.putBuffer(i),I.putInt32(l.length()),I.putBuffer(l);var B=Ce.hmac.create();return B.start("sha1",S),B.update(I.bytes()),s+=`\r +Private-MAC: `+B.digest().toHex()+`\r +`,s};va.publicKeyToOpenSSH=function(e,t){var a="ssh-rsa";t=t||"";var r=Ce.util.createBuffer();return hr(r,a),Ct(r,e.e),Ct(r,e.n),a+" "+Ce.util.encode64(r.bytes())+" "+t};va.privateKeyToOpenSSH=function(e,t){return t?Ce.pki.encryptRsaPrivateKey(e,t,{legacy:!0,algorithm:"aes128"}):Ce.pki.privateKeyToPem(e)};va.getPublicKeyFingerprint=function(e,t){t=t||{};var a=t.md||Ce.md.md5.create(),r="ssh-rsa",n=Ce.util.createBuffer();hr(n,r),Ct(n,e.e),Ct(n,e.n),a.start(),a.update(n.getBytes());var s=a.digest();if(t.encoding==="hex"){var i=s.toHex();return t.delimiter?i.match(/.{2}/g).join(t.delimiter):i}else{if(t.encoding==="binary")return s.getBytes();if(t.encoding)throw new Error('Unknown encoding "'+t.encoding+'".')}return s};function Ct(e,t){var a=t.toString(16);a[0]>="8"&&(a="00"+a);var r=Ce.util.hexToBytes(a);e.putInt32(r.length),e.putBytes(r)}function hr(e,t){e.putInt32(t.length),e.putString(t)}function ya(){for(var e=Ce.md.sha1.create(),t=arguments.length,a=0;a<t;++a)e.update(arguments[a]);return e.digest()}});var no=K((Gd,ao)=>{ao.exports=$();Nt();Ts();ut();Kr();xr();qs();tr();zs();js();Xs();Ja();Xr();Ht();Ya();rn();eo();nn();ja();Fa();na();tt();Ma();ro();cn();ne()});var uo=K((zd,oo)=>{var io=require("path"),Ze=require("fs"),Je=no(),{MITM_DIR:ga}=vr(),Vt=io.join(ga,"rootCA.key"),It=io.join(ga,"rootCA.crt");function so(e){try{let t=Je.pki.certificateFromPem(Ze.readFileSync(e,"utf8")),a=new Date(Date.now()+720*60*60*1e3);return t.validity.notAfter<a}catch{return!0}}async function Xf(){let e=Ze.existsSync(Vt)&&Ze.existsSync(It);if(e&&!so(It))return console.log("\u2705 Root CA already exists"),{key:Vt,cert:It};if(e){console.log("\u{1F510} Root CA expired or expiring soon \u2014 regenerating...");try{Ze.unlinkSync(Vt)}catch{}try{Ze.unlinkSync(It)}catch{}}Ze.existsSync(ga)||Ze.mkdirSync(ga,{recursive:!0}),console.log("\u{1F510} Generating Root CA certificate...");let t=Je.pki.rsa.generateKeyPair(2048),a=Je.pki.createCertificate();a.publicKey=t.publicKey,a.serialNumber="01",a.validity.notBefore=new Date,a.validity.notAfter=new Date,a.validity.notAfter.setFullYear(a.validity.notBefore.getFullYear()+10);let r=[{name:"commonName",value:"9Router MITM Root CA"},{name:"organizationName",value:"9Router"},{name:"countryName",value:"US"}];a.setSubject(r),a.setIssuer(r),a.setExtensions([{name:"basicConstraints",cA:!0,critical:!0},{name:"keyUsage",keyCertSign:!0,cRLSign:!0,critical:!0},{name:"subjectKeyIdentifier"}]),a.sign(t.privateKey,Je.md.sha256.create());let n=Je.pki.privateKeyToPem(t.privateKey),s=Je.pki.certificateToPem(a);return Ze.writeFileSync(Vt,n),Ze.writeFileSync(It,s),console.log("\u2705 Root CA generated successfully"),{key:Vt,cert:It}}function Zf(){if(!Ze.existsSync(Vt)||!Ze.existsSync(It))throw new Error("Root CA not found. Generate it first.");let e=Ze.readFileSync(Vt,"utf8"),t=Ze.readFileSync(It,"utf8");return{key:Je.pki.privateKeyFromPem(e),cert:Je.pki.certificateFromPem(t)}}function Jf(e,t){let a=Je.pki.rsa.generateKeyPair(2048),r=Je.pki.createCertificate();return r.publicKey=a.publicKey,r.serialNumber=Math.floor(Math.random()*1e6).toString(),r.validity.notBefore=new Date,r.validity.notAfter=new Date,r.validity.notAfter.setFullYear(r.validity.notBefore.getFullYear()+1),r.setSubject([{name:"commonName",value:e}]),r.setIssuer(t.cert.subject.attributes),r.setExtensions([{name:"basicConstraints",cA:!1},{name:"keyUsage",digitalSignature:!0,keyEncipherment:!0},{name:"extKeyUsage",serverAuth:!0,clientAuth:!0},{name:"subjectAltName",altNames:[{type:2,value:e},{type:2,value:`*.${e}`}]}]),r.sign(t.key,Je.md.sha256.create()),{key:Je.pki.privateKeyToPem(a.privateKey),cert:Je.pki.certificateToPem(r)}}oo.exports={generateRootCA:Xf,loadRootCA:Zf,generateLeafCert:Jf,isCertExpired:so,ROOT_CA_CERT_PATH:It,ROOT_CA_KEY_PATH:Vt}});var fo=K((jd,lo)=>{var Qd=require("path"),Yd=require("fs"),{MITM_DIR:$d}=vr(),{generateRootCA:ec,loadRootCA:tc,generateLeafCert:rc}=uo();async function ac(){return await ec()}function nc(e){try{let t=tc(),a=rc(e,t);return{key:a.key,cert:a.cert}}catch(t){return console.error(`Failed to generate cert for ${e}:`,t.message),null}}lo.exports={generateCert:ac,getCertForDomain:nc}});var ma=K((Zd,po)=>{var{log:Wd,err:Xd}=qt(),co="http://localhost:20128",ic=String(process.env.MITM_ROUTER_BASE||co).trim().replace(/\/+$/,"")||co,ho=process.env.ROUTER_API_KEY,sc=new Set(["host","content-length","connection","transfer-encoding","content-type","authorization"]);async function oc(e,t="/v1/chat/completions",a={}){let r={};for(let[s,i]of Object.entries(a))sc.has(s.toLowerCase())||(r[s]=i);return await fetch(`${ic}${t}`,{method:"POST",headers:{...r,"Content-Type":"application/json",...ho&&{Authorization:`Bearer ${ho}`}},body:JSON.stringify(e)})}async function uc(e,t,a){let r=e.headers.get("content-type")||"application/json",n=e.status||200,s={"Content-Type":r,"Cache-Control":"no-cache",Connection:"keep-alive"};if(r.includes("text/event-stream")&&(s["X-Accel-Buffering"]="no"),t.writeHead(n,s),a&&a.writeHeader(e.status,Object.fromEntries(e.headers)),!e.body){let u=await e.text().catch(()=>"");a&&(a.writeChunk(u),a.end()),t.end(u);return}let i=e.body.getReader(),o=new TextDecoder;for(;;){let{done:u,value:l}=await i.read();if(u){a&&a.end(),t.end();break}a&&a.writeChunk(l),t.write(o.decode(l,{stream:!0}))}}po.exports={fetchRouter:oc,pipeSSE:uc}});var vo=K((Jd,yo)=>{var{err:lc,createResponseDumper:fc}=qt(),{fetchRouter:cc,pipeSSE:dc}=ma();async function hc(e,t,a,r){let n=fc(e,"intercept-antigravity"),s=e.url.includes(":streamGenerateContent");try{let i=JSON.parse(a.toString());i.model&&(i.model=r);let o=await cc(i,"/v1/chat/completions",e.headers);await dc(o,t,n)}catch(i){lc(`[antigravity] ${i.message}`),n&&(n.writeChunk(` +[ERROR] ${i.message} +`),n.end()),s?(t.headersSent||t.writeHead(200,{"Content-Type":"text/event-stream"}),t.end(`data: ${JSON.stringify({error:{message:i.message}})}\r +\r +`)):(t.headersSent||t.writeHead(500,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:{message:i.message,type:"mitm_error"}})))}}yo.exports={intercept:hc}});var mo=K((eh,go)=>{var{err:pc}=qt(),{fetchRouter:yc,pipeSSE:vc}=ma(),gc={"/chat/completions":"/v1/chat/completions","/v1/messages":"/v1/messages","/responses":"/v1/responses"};function mc(e){for(let[t,a]of Object.entries(gc))if(e.includes(t))return a;return"/v1/chat/completions"}async function Cc(e,t,a,r){try{let n=JSON.parse(a.toString());n.model=r;let s=mc(e.url),i=await yc(n,s,e.headers);await vc(i,t)}catch(n){pc(`[copilot] ${n.message}`),t.headersSent||t.writeHead(500,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:{message:n.message,type:"mitm_error"}}))}}go.exports={intercept:Cc}});var So=K((th,xo)=>{var Co=require("zlib"),{log:Dr,err:Eo}=qt(),{fetchRouter:Ec}=ma();function xc(e){return typeof e!="string"?!1:e.includes("<identity>")||e.includes("You are an intent classifier")}function Sc(e,t){let a=e.conversationState||{},r=a.history||[],n=a.currentMessage?.userInputMessage,s=[],i=!1;for(let l of r)if(l.userInputMessage){let f=l.userInputMessage,c=(f.content||"").trim(),y=f.userInputMessageContext?.toolResults;if(!i&&xc(c)){if(s.push({role:"system",content:c}),i=!0,y?.length>0)for(let g of y)s.push({role:"tool",tool_call_id:g.toolUseId,content:g.content?.map(v=>v.text).join(` +`)||""});continue}if(y?.length>0)for(let g of y)s.push({role:"tool",tool_call_id:g.toolUseId,content:g.content?.map(v=>v.text).join(` +`)||""});c&&s.push({role:"user",content:c})}else if(l.assistantResponseMessage){let f=l.assistantResponseMessage,c={role:"assistant",content:f.content||""};f.toolUses?.length>0&&(c.tool_calls=f.toolUses.map(y=>({id:y.toolUseId,type:"function",function:{name:y.name,arguments:JSON.stringify(y.input||{})}}))),s.push(c)}if(n){let l=n.userInputMessageContext?.toolResults;if(l?.length>0)for(let c of l)s.push({role:"tool",tool_call_id:c.toolUseId,content:c.content?.map(y=>y.text).join(` +`)||""});let f=(n.content||"").trim();f&&s.push({role:"user",content:f})}let o={model:t,messages:s,stream:!0,stream_options:{include_usage:!0}},u=n?.userInputMessageContext?.tools;return u?.length>0&&(o.tools=u.map(l=>({type:"function",function:{name:l.toolSpecification.name,description:l.toolSpecification.description||l.toolSpecification.name,parameters:l.toolSpecification.inputSchema?.json||{type:"object",properties:{}}}}))),o}function Xt(e,t){let a=Buffer.from(JSON.stringify(t),"utf8"),r=[[":event-type",e],[":content-type","application/json"],[":message-type","event"]],n=[];for(let[c,y]of r){let g=Buffer.from(c,"utf8"),v=Buffer.from(y,"utf8"),x=Buffer.alloc(1+g.length+1+2+v.length),S=0;x[S++]=g.length,g.copy(x,S),S+=g.length,x[S++]=7,x.writeUInt16BE(v.length,S),S+=2,v.copy(x,S),n.push(x)}let s=Buffer.concat(n),i=12+s.length+a.length+4,o=Buffer.alloc(i),u=0;o.writeUInt32BE(i,u),u+=4,o.writeUInt32BE(s.length,u),u+=4;let l=Co.crc32(o.slice(0,8));o.writeUInt32BE(l,u),u+=4,s.copy(o,u),u+=s.length,a.copy(o,u),u+=a.length;let f=Co.crc32(o.slice(0,i-4));return o.writeUInt32BE(f,u),o}async function Tc(e,t,a,r,n){try{let s=JSON.parse(a.toString()),i=s.conversationState?.conversationId||"unknown";Dr(`\u{1F537} [KIRO] intercept | conversationId=${i} | model=${r}`);let o=Sc(s,r);if(Dr(`\u{1F537} [KIRO] converted | messages=${o.messages.length} | tools=${o.tools?.length||0}`),o.tools?.length&&Dr(`\u{1F537} [KIRO] tools: ${o.tools.map(x=>x.function.name).join(", ")}`),!o.messages.length)return Eo("[KIRO] No messages after conversion \u2014 passthrough"),n(e,t,a);let u=await Ec(o,"/v1/chat/completions",e.headers);t.writeHead(200,{"Content-Type":"application/vnd.amazon.eventstream","Cache-Control":"no-cache",Connection:"keep-alive","Transfer-Encoding":"chunked","x-amzn-RequestId":e.headers["amz-sdk-invocation-id"]||i,"x-amzn-codewhisperer-conversation-id":i,"X-XSS-Protection":"1; mode=block","X-Frame-Options":"DENY","X-Content-Type-Options":"nosniff"});let l=u.body.getReader(),f=new TextDecoder,c="",y=!1,g={},v=null;for(;;){let{done:x,value:S}=await l.read();if(x)break;c+=f.decode(S,{stream:!0});let I=c.split(` +`);c=I.pop();for(let B of I){if(!B.startsWith("data: "))continue;let b=B.slice(6).trim();if(b==="[DONE]")continue;let U;try{U=JSON.parse(b)}catch{continue}U.usage&&(v=U.usage);let L=U.choices?.[0];if(!L)continue;let R=L.delta||{},z=L.finish_reason;if(R.content&&t.write(Xt("assistantResponseEvent",{content:R.content,modelId:r})),R.tool_calls){y=!0;for(let G of R.tool_calls){let j=G.index??0;g[j]||(g[j]={id:"",name:"",args:""}),G.id&&(g[j].id=G.id),G.function?.name&&(g[j].name=G.function.name),G.function?.arguments&&(g[j].args+=G.function.arguments)}}if(z){if(y){for(let ee of Object.values(g)){Dr(`\u{1F537} [KIRO] toolUseEvent | id=${ee.id} name=${ee.name}`),t.write(Xt("toolUseEvent",{name:ee.name,toolUseId:ee.id}));let xe=ee.args||"{}",He=32;for(let ie=0;ie<xe.length;ie+=He)t.write(Xt("toolUseEvent",{input:xe.slice(ie,ie+He),name:ee.name,toolUseId:ee.id}));t.write(Xt("toolUseEvent",{name:ee.name,stop:!0,toolUseId:ee.id}))}t.write(Xt("assistantResponseEvent",{content:"",modelId:r}))}let G=v?.prompt_tokens||0,j=v?.total_tokens||0,oe=G>0?G/2e5*100:1.5,ue=j>0?j*4e-6:.001;t.write(Xt("contextUsageEvent",{contextUsagePercentage:oe})),t.write(Xt("meteringEvent",{unit:"credit",unitPlural:"credits",usage:ue})),Dr(`\u{1F537} [KIRO] done | finishReason=${z} hasToolCalls=${y}`)}}}t.end()}catch(s){Eo(`[KIRO] ${s.message}`),t.headersSent||t.writeHead(500,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:{message:s.message,type:"mitm_error"}}))}}xo.exports={intercept:Tc}});var Io=K((rh,To)=>{var Ic={antigravity:["daily-cloudcode-pa.googleapis.com","cloudcode-pa.googleapis.com"],copilot:["api.individual.githubcopilot.com"],kiro:["q.us-east-1.amazonaws.com","codewhisperer.us-east-1.amazonaws.com"],cursor:["api2.cursor.sh"]};To.exports={TOOL_HOSTS:Ic}});var wo=K((ah,No)=>{var{exec:Ao,execSync:Ac}=require("child_process"),Bo=process.platform==="win32";function bo(){if(Bo)try{return Ac("net session >nul 2>&1",{windowsHide:!0,stdio:"ignore"}),!0}catch{return!1}return typeof process.getuid=="function"&&process.getuid()===0}function _o(e){return`'${String(e).replace(/'/g,"''")}'`}function Bc(e){if(!Bo)return Promise.reject(new Error("Windows-only"));let t=Buffer.from(e,"utf16le").toString("base64");if(bo())return new Promise((r,n)=>{Ao(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -EncodedCommand ${t}`,{windowsHide:!0},(s,i,o)=>{s?n(new Error(o||s.message)):r(i)})});let a=` + $proc = Start-Process powershell -ArgumentList @( + '-NoProfile','-NonInteractive','-ExecutionPolicy','Bypass', + '-WindowStyle','Hidden','-EncodedCommand','${t}' + ) -Verb RunAs -Wait -PassThru -WindowStyle Hidden; + if ($proc.ExitCode -ne 0) { throw "Elevated command exited with code $($proc.ExitCode)" } + `;return new Promise((r,n)=>{Ao(`powershell -NoProfile -NonInteractive -ExecutionPolicy Bypass -Command ${_o(a)}`,{windowsHide:!0},(s,i,o)=>{if(s){let u=o||s.message;u.includes("canceled by the user")||u.includes("operation was canceled")?n(new Error("User canceled UAC prompt")):n(new Error(u))}else r(i)})})}No.exports={isAdmin:bo,runElevatedPowerShell:Bc,quotePs:_o}});var Fo=K((oh,Vo)=>{var{exec:nh,spawn:Ro,execSync:kr}=require("child_process"),Ne=require("fs"),bc=require("path"),ih=require("os"),{log:Ca,err:_c}=qt(),{TOOL_HOSTS:Ft}=Io(),{runElevatedPowerShell:Lo,isAdmin:sh}=wo();function Do(e,t,a){let r=`${e}.9router.new`,n=`${e}.9router.bak`;try{Ne.writeFileSync(r,a,"utf8");try{Ne.unlinkSync(n)}catch{}Ne.renameSync(e,n);try{Ne.renameSync(r,e)}catch(s){try{Ne.renameSync(n,e)}catch{Ne.writeFileSync(e,t,"utf8")}throw s}try{Ne.unlinkSync(n)}catch{}}finally{try{Ne.unlinkSync(r)}catch{}}}var At=process.platform==="win32",ko=process.platform==="darwin",et=At?bc.join(process.env.SystemRoot||"C:\\Windows","System32","drivers","etc","hosts"):"/etc/hosts";function Ea(){if(At)return!1;try{return kr("command -v sudo",{stdio:"ignore",windowsHide:!0}),!0}catch{return!1}}function Uo(){if(At||!Ea())return!0;try{return kr("sudo -n true",{stdio:"ignore",windowsHide:!0}),!0}catch{return!1}}function Nc(){return!At&&Ea()&&!Uo()}function Ur(e,t){return new Promise((a,r)=>{let n=Ea(),s=n?Ro("sudo",["-S","sh","-c",e],{stdio:["pipe","pipe","pipe"],windowsHide:!0}):Ro("sh",["-c",e],{stdio:["ignore","pipe","pipe"],windowsHide:!0}),i="",o="";s.stdout.on("data",u=>{i+=u}),s.stderr.on("data",u=>{o+=u}),s.on("close",u=>{u===0?a(i):r(new Error(o||`Exit code ${u}`))}),n&&(s.stdin.write(`${t} +`),s.stdin.end())})}async function Po(e){At||(ko?await Ur("dscacheutil -flushcache && killall -HUP mDNSResponder",e):await Ur("resolvectl flush-caches 2>/dev/null || true",e))}function _n(e=null){try{let t=Ne.readFileSync(et,"utf8");return e?t.includes(e):Ft.antigravity.every(a=>t.includes(a))}catch{return!1}}function wc(){try{let e=Ne.readFileSync(et,"utf8"),t={};for(let[a,r]of Object.entries(Ft))t[a]=r.every(n=>e.includes(n));return t}catch{return Object.fromEntries(Object.keys(Ft).map(e=>[e,!1]))}}async function Rc(e,t){let a=Ft[e];if(!a)throw new Error(`Unknown tool: ${e}`);let r=a.filter(n=>!_n(n));if(r.length===0){Ca(`\u{1F310} DNS ${e}: already active`);return}try{if(At){let n=Ne.readFileSync(et,"utf8"),s=n.replace(/[\r\n\s]+$/g,""),i=r.map(u=>`127.0.0.1 ${u}`).join(`\r +`),o=`${s}\r +${i}\r +`;Do(et,n,o),await Lo("ipconfig /flushdns | Out-Null")}else{let s=Ne.readFileSync(et,"utf8").replace(/[\r\n\s]+$/g,""),i=r.map(l=>`127.0.0.1 ${l}`).join(` +`),u=`${s} +${i} +`.replace(/'/g,"'\\''");await Ur(`printf '%s' '${u}' | tee ${et} > /dev/null`,t),await Po(t)}Ca(`\u{1F310} DNS ${e}: \u2705 added ${r.join(", ")}`)}catch(n){let s=n.message?.includes("incorrect password")?"Wrong sudo password":`Failed to add DNS entry: ${n.message}`;throw new Error(s)}}async function Oo(e,t){let a=Ft[e];if(!a)throw new Error(`Unknown tool: ${e}`);let r=a.filter(n=>_n(n));if(r.length===0){Ca(`\u{1F310} DNS ${e}: already inactive`);return}try{if(At){let n=Ne.readFileSync(et,"utf8"),i=n.split(/\r?\n/).filter(o=>!r.some(u=>o.includes(u))).join(`\r +`).replace(/[\r\n\s]+$/g,"")+`\r +`;Do(et,n,i),await Lo("ipconfig /flushdns | Out-Null")}else{let o=(Ne.readFileSync(et,"utf8").split(/\r?\n/).filter(u=>!r.some(l=>u.includes(l))).join(` +`).replace(/[\r\n\s]+$/g,"")+` +`).replace(/'/g,"'\\''");await Ur(`printf '%s' '${o}' | tee ${et} > /dev/null`,t),await Po(t)}Ca(`\u{1F310} DNS ${e}: \u2705 removed ${r.join(", ")}`)}catch(n){let s=n.message?.includes("incorrect password")?"Wrong sudo password":`Failed to remove DNS entry: ${n.message}`;throw new Error(s)}}async function Lc(e){for(let t of Object.keys(Ft))try{await Oo(t,e)}catch(a){_c(`DNS ${t}: failed to remove \u2014 ${a.message}`)}}function Dc(){try{if(!Ne.existsSync(et))return;let e=Object.values(Ft).flat(),t=Ne.readFileSync(et,"utf8"),a=At?`\r +`:` +`,n=t.split(/\r?\n/).filter(s=>!e.some(i=>s.includes(i))).join(a).replace(/[\r\n\s]+$/g,"")+a;if(n===t)return;if(Ne.writeFileSync(et,n,"utf8"),At)try{kr("ipconfig /flushdns",{windowsHide:!0,stdio:"ignore"})}catch{}else if(ko)try{kr("dscacheutil -flushcache && killall -HUP mDNSResponder",{stdio:"ignore"})}catch{}else try{kr("resolvectl flush-caches 2>/dev/null || true",{stdio:"ignore"})}catch{}}catch{}}Vo.exports={TOOL_HOSTS:Ft,addDNSEntry:Rc,removeDNSEntry:Oo,removeAllDNSEntries:Lc,removeAllDNSEntriesSync:Dc,execWithPassword:Ur,isSudoAvailable:Ea,canRunSudoWithoutPassword:Uo,isSudoPasswordRequired:Nc,checkDNSEntry:_n,checkAllDNSStatus:wc}});var Qo=require("https"),xa=require("fs"),Ln=require("path"),kc=require("dns"),{promisify:Uc}=require("util"),{execSync:Nn}=require("child_process"),{log:Yo,err:Bt,dumpRequest:Pc,createResponseDumper:Oc}=qt(),{TARGET_HOSTS:Vc,URL_PATTERNS:Fc,MODEL_SYNONYMS:Kc,getToolForHost:qc}=Sa(),{DATA_DIR:Mc,MITM_DIR:Ko}=vr(),{getCertForDomain:Hc}=fo(),qo=Ln.join(Mc,"db.json"),yr=443,Mo=process.platform==="win32",$o=!0,Ho={name:"x-request-source",value:"local"},Gc={"cloudcode-pa.googleapis.com":"daily-cloudcode-pa.googleapis.com"},Go={antigravity:vo(),copilot:mo(),kiro:So()},wn=new Map,jo;function zc(e,t){try{if(wn.has(e))return t(null,wn.get(e));let a=Hc(e);if(!a)return t(new Error(`Failed to generate cert for ${e}`));let r=require("tls").createSecureContext({key:a.key,cert:`${a.cert} +${jo}`});wn.set(e,r),t(null,r)}catch(a){Bt(`SNI error for ${e}: ${a.message}`),t(a)}}var Wo;try{let e=xa.readFileSync(Ln.join(Ko,"rootCA.key")),t=xa.readFileSync(Ln.join(Ko,"rootCA.crt"));jo=t.toString("utf8"),Wo={key:e,cert:t,SNICallback:zc}}catch(e){Bt(`Root CA not found: ${e.message}`),process.exit(1)}var Rn={},Qc=300*1e3;async function Yc(e){let t=Rn[e];if(t&&Date.now()-t.ts<Qc)return t.ip;let a=new kc.Resolver;a.setServers(["8.8.8.8"]);let n=await Uc(a.resolve4.bind(a))(e);return Rn[e]={ip:n[0],ts:Date.now()},Rn[e].ip}function $c(e){return new Promise((t,a)=>{let r=[];e.on("data",n=>r.push(n)),e.on("end",()=>t(Buffer.concat(r))),e.on("error",a)})}function jc(e,t){let a=e.match(/\/models\/([^/:]+)/);if(a)return a[1];try{let r=JSON.parse(t.toString());return r.conversationState?r.conversationState.currentMessage?.userInputMessage?.modelId||null:r.model||null}catch{return null}}function Wc(e,t){if(!t)return null;try{if(!xa.existsSync(qo))return null;let r=JSON.parse(xa.readFileSync(qo,"utf-8")).mitmAlias?.[e];if(!r)return null;let n=Kc?.[e]?.[t]||t;if(r[n])return r[n];let s=Object.keys(r).find(i=>i&&r[i]&&(n.startsWith(i)||i.startsWith(n)));return s?r[s]:null}catch{return null}}async function pr(e,t,a,r){let n=(e.headers.host||Vc[0]).split(":")[0],s=Gc[n]||n,i=await Yc(s),o=$o?Oc(e,"passthrough"):null,u=Qo.request({hostname:i,port:443,path:e.url,method:e.method,headers:{...e.headers,host:s},servername:s,rejectUnauthorized:!1},l=>{if(t.writeHead(l.statusCode,l.headers),o&&o.writeHeader(l.statusCode,l.headers),!r&&!o){l.pipe(t);return}let f=[];l.on("data",c=>{o&&o.writeChunk(c),r&&f.push(c),t.write(c)}),l.on("end",()=>{if(o&&o.end(),t.end(),r)try{r(Buffer.concat(f),l.headers)}catch{}})});u.on("error",l=>{Bt(`Passthrough error: ${l.message}`),o&&(o.writeChunk(` +[ERROR] ${l.message} +`),o.end()),t.headersSent||t.writeHead(502),t.end("Bad Gateway")}),a.length>0&&u.write(a),u.end()}var Dn=Qo.createServer(Wo,async(e,t)=>{try{if(e.url==="/_mitm_health"){t.writeHead(200,{"Content-Type":"application/json"}),t.end(JSON.stringify({ok:!0,pid:process.pid}));return}let a=await $c(e);if($o&&Pc(e,a,"raw"),e.headers[Ho.name]===Ho.value)return pr(e,t,a);let r=qc(e.headers.host);if(!r||!(Fc[r]||[]).some(u=>e.url.includes(u)))return pr(e,t,a);if(r==="cursor")return Go[r].intercept(e,t,a,null,pr);let i=jc(e.url,a),o=Wc(r,i);return o?Go[r].intercept(e,t,a,o,pr):pr(e,t,a)}catch(a){Bt(`Unhandled error: ${a.message}`),t.headersSent||t.writeHead(500,{"Content-Type":"application/json"}),t.end(JSON.stringify({error:{message:a.message,type:"mitm_error"}}))}});function Xc(e){try{let t=[];if(Mo){let a=`powershell -NonInteractive -WindowStyle Hidden -Command "Get-NetTCPConnection -LocalPort ${e} -State Listen -ErrorAction SilentlyContinue | Select-Object -ExpandProperty OwningProcess"`,r=Nn(a,{encoding:"utf-8",windowsHide:!0}).trim();if(!r)return;t=r.split(/\r?\n/).map(n=>n.trim()).filter(n=>n&&Number(n)!==process.pid&&Number(n)>4)}else{let a=Nn(`lsof -nP -iTCP:${e} -sTCP:LISTEN -t`,{encoding:"utf-8",windowsHide:!0}).trim();if(!a)return;t=a.split(` +`).filter(r=>r&&Number(r)!==process.pid)}if(t.length===0)return;t.forEach(a=>{try{Mo?Nn(`taskkill /F /PID ${a}`,{windowsHide:!0}):process.kill(Number(a),"SIGKILL")}catch(r){Bt(`Failed to kill PID ${a}: ${r.message}`)}}),Yo(`Killed ${t.length} process(es) on port ${e}`)}catch(t){if(t.status!==1)throw t}}try{Xc(yr)}catch(e){Bt(`Cannot kill process on port ${yr}: ${e.message}`),process.exit(1)}Dn.listen(yr,()=>Yo(`\u{1F680} Server ready on :${yr}`));Dn.on("error",e=>{e.code==="EADDRINUSE"?Bt(`Port ${yr} already in use`):e.code==="EACCES"?Bt(`Permission denied for port ${yr}`):Bt(e.message),process.exit(1)});var{removeAllDNSEntriesSync:Zc}=Fo(),zo=!1,kn=()=>{if(zo)return;zo=!0,Zc();let e=setTimeout(()=>process.exit(0),1500);Dn.close(()=>{clearTimeout(e),process.exit(0)})};process.on("SIGTERM",kn);process.on("SIGINT",kn);process.platform==="win32"&&process.on("SIGBREAK",kn); diff --git a/cli/app/src/shared/utils/apiKey.js b/cli/app/src/shared/utils/apiKey.js new file mode 100644 index 00000000000..046abceb86a --- /dev/null +++ b/cli/app/src/shared/utils/apiKey.js @@ -0,0 +1,98 @@ +import crypto from "crypto"; + +const API_KEY_SECRET = process.env.API_KEY_SECRET || "endpoint-proxy-api-key-secret"; + +/** + * Generate 6-char random keyId + */ +function generateKeyId() { + const chars = "abcdefghijklmnopqrstuvwxyz0123456789"; + let result = ""; + for (let i = 0; i < 6; i++) { + result += chars.charAt(Math.floor(Math.random() * chars.length)); + } + return result; +} + +/** + * Generate CRC (8-char HMAC) + */ +function generateCrc(machineId, keyId) { + return crypto + .createHmac("sha256", API_KEY_SECRET) + .update(machineId + keyId) + .digest("hex") + .slice(0, 8); +} + +/** + * Generate API key with machineId embedded + * Format: sk-{machineId}-{keyId}-{crc8} + * @param {string} machineId - 16-char machine ID + * @returns {{ key: string, keyId: string }} + */ +export function generateApiKeyWithMachine(machineId) { + const keyId = generateKeyId(); + const crc = generateCrc(machineId, keyId); + const key = `sk-${machineId}-${keyId}-${crc}`; + return { key, keyId }; +} + +/** + * Parse API key and extract machineId + keyId + * Supports both formats: + * - New: sk-{machineId}-{keyId}-{crc8} + * - Old: sk-{random8} + * @param {string} apiKey + * @returns {{ machineId: string, keyId: string, isNewFormat: boolean } | null} + */ +export function parseApiKey(apiKey) { + if (!apiKey || !apiKey.startsWith("sk-")) return null; + + const parts = apiKey.split("-"); + + // New format: sk-{machineId}-{keyId}-{crc8} = 4 parts + if (parts.length === 4) { + const [, machineId, keyId, crc] = parts; + + // Validate CRC + const expectedCrc = generateCrc(machineId, keyId); + if (crc !== expectedCrc) return null; + + return { machineId, keyId, isNewFormat: true }; + } + + // Old format: sk-{random8} = 2 parts + if (parts.length === 2) { + return { machineId: null, keyId: parts[1], isNewFormat: false }; + } + + return null; +} + +/** + * Verify API key CRC (only for new format) + * @param {string} apiKey + * @returns {boolean} + */ +export function verifyApiKeyCrc(apiKey) { + const parsed = parseApiKey(apiKey); + if (!parsed) return false; + + // Old format doesn't have CRC, always valid if parsed + if (!parsed.isNewFormat) return true; + + // New format already verified in parseApiKey + return true; +} + +/** + * Check if API key is new format (contains machineId) + * @param {string} apiKey + * @returns {boolean} + */ +export function isNewFormatKey(apiKey) { + const parsed = parseApiKey(apiKey); + return parsed?.isNewFormat === true; +} + diff --git a/cli/cli.js b/cli/cli.js new file mode 100755 index 00000000000..c10f0acacf5 --- /dev/null +++ b/cli/cli.js @@ -0,0 +1,770 @@ +#!/usr/bin/env node + +const { spawn, exec, execSync } = require("child_process"); +const path = require("path"); +const fs = require("fs"); +const https = require("https"); +const os = require("os"); + +// Native spinner - no external dependency +function createSpinner(text) { + const frames = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"]; + let i = 0; + let interval = null; + let currentText = text; + return { + start() { + if (process.stdout.isTTY) { + process.stdout.write(`\r${frames[0]} ${currentText}`); + interval = setInterval(() => { + process.stdout.write(`\r${frames[i++ % frames.length]} ${currentText}`); + }, 80); + } + return this; + }, + stop() { + if (interval) { + clearInterval(interval); + interval = null; + } + if (process.stdout.isTTY) { + process.stdout.write("\r\x1b[K"); + } + }, + succeed(msg) { + this.stop(); + console.log(`✅ ${msg}`); + }, + fail(msg) { + this.stop(); + console.log(`❌ ${msg}`); + } + }; +} + +const pkg = require("./package.json"); +const args = process.argv.slice(2); + +// Configuration constants +const APP_NAME = pkg.name; // Use from package.json +const GLOBAL_INSTALL_CMD = `npm i -g ${APP_NAME} --prefer-online`; +const DEFAULT_PORT = 20128; +const DEFAULT_HOST = "0.0.0.0"; +const MAX_PORT_ATTEMPTS = 10; +// Identifiers for killAllAppProcesses - only kill 9router specifically +const PROCESS_IDENTIFIERS = [ + '9router' // Only package name - avoid killing other apps +]; + +// Parse arguments +let port = DEFAULT_PORT; +let host = DEFAULT_HOST; +let noBrowser = false; +let skipUpdate = false; +let showLog = false; +let trayMode = false; + +for (let i = 0; i < args.length; i++) { + if (args[i] === "--port" || args[i] === "-p") { + port = parseInt(args[i + 1], 10) || DEFAULT_PORT; + i++; + } else if (args[i] === "--host" || args[i] === "-H") { + host = args[i + 1] || DEFAULT_HOST; + i++; + } else if (args[i] === "--no-browser" || args[i] === "-n") { + noBrowser = true; + } else if (args[i] === "--log" || args[i] === "-l") { + showLog = true; + } else if (args[i] === "--skip-update") { + skipUpdate = true; + } else if (args[i] === "--tray" || args[i] === "-t") { + trayMode = true; + process.env.TRAY_MODE = "1"; + } else if (args[i] === "--help" || args[i] === "-h") { + console.log(` +Usage: ${APP_NAME} [options] + +Options: + -p, --port <port> Port to run the server (default: ${DEFAULT_PORT}) + -H, --host <host> Host to bind (default: ${DEFAULT_HOST}) + -n, --no-browser Don't open browser automatically + -l, --log Show server logs (default: hidden) + -t, --tray Run in system tray mode (background) + --skip-update Skip auto-update check + -h, --help Show this help message + -v, --version Show version +`); + process.exit(0); + } else if (args[i] === "--version" || args[i] === "-v") { + console.log(pkg.version); + process.exit(0); + } +} + +// Auto-relaunch after update: detached process has no TTY → fallback to tray +if (skipUpdate && !trayMode && !process.stdin.isTTY) { + trayMode = true; + process.env.TRAY_MODE = "1"; +} + +// Always use Node.js runtime with absolute path +const RUNTIME = process.execPath; + +// Compare semver versions: returns 1 if a > b, -1 if a < b, 0 if equal +function compareVersions(a, b) { + const partsA = a.split(".").map(Number); + const partsB = b.split(".").map(Number); + for (let i = 0; i < 3; i++) { + if (partsA[i] > partsB[i]) return 1; + if (partsA[i] < partsB[i]) return -1; + } + return 0; +} + +// Get app data dir (matches app/src/lib/dataDir.js convention) +function getAppDataDir() { + return process.platform === "win32" + ? path.join(process.env.APPDATA || "", "9router") + : path.join(os.homedir(), ".9router"); +} + +// Kill PID from file (best-effort, removes file after) +function killByPidFile(pidFile) { + try { + if (!fs.existsSync(pidFile)) return; + const pid = parseInt(fs.readFileSync(pidFile, "utf8").trim(), 10); + if (!pid) return; + try { + if (process.platform === "win32") { + execSync(`taskkill /F /T /PID ${pid}`, { stdio: "ignore", windowsHide: true, timeout: 3000 }); + } else { + process.kill(pid, "SIGKILL"); + } + } catch { } + try { fs.unlinkSync(pidFile); } catch { } + } catch { } +} + +// Kill tunnel processes (cloudflared/tailscale) by their PID files +function killTunnelByPidFile() { + const tunnelDir = path.join(getAppDataDir(), "tunnel"); + killByPidFile(path.join(tunnelDir, "cloudflared.pid")); + killByPidFile(path.join(tunnelDir, "tailscale.pid")); +} + +// Kill cloudflared whose --url targets this app's port (covers stale PID file case) +function killCloudflaredByAppPort(appPort) { + if (!appPort) return []; + const portMatchers = [`localhost:${appPort}`, `127.0.0.1:${appPort}`]; + const pids = []; + try { + if (process.platform === "win32") { + const psCmd = `powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter 'Name=\\"cloudflared.exe\\"' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"`; + const output = execSync(psCmd, { encoding: "utf8", windowsHide: true, timeout: 5000 }); + const lines = output.split("\n").slice(1).filter(l => l.trim()); + lines.forEach(line => { + if (portMatchers.some(m => line.includes(m))) { + const match = line.match(/^"(\d+)"/); + if (match && match[1]) pids.push(match[1]); + } + }); + } else { + const output = execSync("ps -eo pid,command 2>/dev/null", { encoding: "utf8", timeout: 5000 }); + output.split("\n").forEach(line => { + if (line.includes("cloudflared") && portMatchers.some(m => line.includes(m))) { + const parts = line.trim().split(/\s+/); + const pid = parts[0]; + if (pid && !isNaN(pid)) pids.push(pid); + } + }); + } + } catch { } + return pids; +} + +// Kill all 9router processes +function killAllAppProcesses(appPort) { + return new Promise((resolve) => { + try { + // Kill MITM first (admin/sudo process, needs special handling) + killMitmByPidFile(); + // Kill cloudflared/tailscale by PID file (precise, only this app's tunnel) + killTunnelByPidFile(); + + const platform = process.platform; + let pids = []; + + // Catch stale PID files: kill cloudflared bound to this app's port + pids.push(...killCloudflaredByAppPort(appPort)); + + if (platform === "win32") { + // Windows: use WMI to get full CommandLine (tasklist /V doesn't include it) + try { + const psCmd = `powershell -NonInteractive -WindowStyle Hidden -Command "Get-WmiObject Win32_Process -Filter 'Name=\\"node.exe\\"' | Select-Object ProcessId,CommandLine | ConvertTo-Csv -NoTypeInformation"`; + const output = execSync(psCmd, { + encoding: "utf8", + windowsHide: true, + timeout: 5000 + }); + const lines = output.split("\n").slice(1).filter(l => l.trim()); + lines.forEach(line => { + const isAppProcess = line.toLowerCase().includes("9router") || + line.toLowerCase().includes("next-server"); + if (isAppProcess) { + const match = line.match(/^"(\d+)"/); + if (match && match[1] && match[1] !== process.pid.toString()) { + pids.push(match[1]); + } + } + }); + } catch (e) { + // No processes found or error - continue + } + } else { + // macOS/Linux: use ps to find all matching processes + try { + const output = execSync('ps aux 2>/dev/null', { + encoding: 'utf8', + timeout: 5000 + }); + const lines = output.split('\n'); + + lines.forEach(line => { + const isAppProcess = line.includes("9router") || line.includes("next-server"); + if (isAppProcess) { + const parts = line.trim().split(/\s+/); + const pid = parts[1]; + if (pid && !isNaN(pid) && pid !== process.pid.toString()) { + pids.push(pid); + } + } + }); + } catch (e) { + // No processes found or error - continue + } + } + + // Kill all found processes + if (pids.length > 0) { + pids.forEach(pid => { + try { + if (platform === "win32") { + execSync(`taskkill /F /PID ${pid} 2>nul`, { stdio: 'ignore', shell: true, windowsHide: true, timeout: 3000 }); + } else { + execSync(`kill -9 ${pid} 2>/dev/null`, { stdio: 'ignore', timeout: 3000 }); + } + } catch (err) { + // Process already dead or can't kill - continue + } + }); + + // Wait for processes to fully terminate + setTimeout(() => resolve(), 1000); + } else { + resolve(); + } + } catch (err) { + // Silent fail - continue anyway + resolve(); + } + }); +} + +// Sleep helper using SharedArrayBuffer wait (sync, no busy-loop) +function sleepSync(ms) { + try { Atomics.wait(new Int32Array(new SharedArrayBuffer(4)), 0, 0, ms); } catch { /* ignore */ } +} + +// Wait until process dies or timeout reached +function waitForExit(pid, timeoutMs) { + const deadline = Date.now() + timeoutMs; + while (Date.now() < deadline) { + try { process.kill(pid, 0); } catch { return true; } + sleepSync(100); + } + return false; +} + +// Kill MITM server by PID file (MITM runs as admin/sudo, needs special handling) +// Sends SIGTERM first so MITM can clean up /etc/hosts entries before dying. +function killMitmByPidFile() { + try { + const mitmPidFile = path.join(getAppDataDir(), "mitm", ".mitm.pid"); + if (!fs.existsSync(mitmPidFile)) return; + const pid = parseInt(fs.readFileSync(mitmPidFile, "utf8").trim(), 10); + if (!pid) return; + + if (process.platform === "win32") { + // Graceful first (lets server cleanup hosts), then force + try { execSync(`taskkill /T /PID ${pid}`, { stdio: "ignore", windowsHide: true, timeout: 2000 }); } catch { } + if (!waitForExit(pid, 1500)) { + try { execSync(`taskkill /F /T /PID ${pid}`, { stdio: "ignore", windowsHide: true, timeout: 3000 }); } catch { } + } + } else { + // SIGTERM via cached sudo token first + try { execSync(`sudo -n kill -TERM ${pid} 2>/dev/null`, { stdio: "ignore", timeout: 2000 }); } + catch { try { process.kill(pid, "SIGTERM"); } catch { } } + if (!waitForExit(pid, 1500)) { + try { execSync(`sudo -n kill -9 ${pid} 2>/dev/null`, { stdio: "ignore", timeout: 2000 }); } + catch { try { process.kill(pid, "SIGKILL"); } catch { } } + } + } + try { fs.unlinkSync(mitmPidFile); } catch { } + } catch { } +} + +// Kill any process on specific port +function killProcessOnPort(port) { + return new Promise((resolve) => { + try { + const platform = process.platform; + let pid; + + if (platform === "win32") { + try { + const output = execSync(`netstat -ano | findstr :${port}`, { + encoding: 'utf8', + shell: true, + windowsHide: true, + timeout: 5000 + }).trim(); + const lines = output.split('\n').filter(l => l.includes('LISTENING')); + if (lines.length > 0) { + pid = lines[0].trim().split(/\s+/).pop(); + execSync(`taskkill /F /PID ${pid} 2>nul`, { stdio: 'ignore', shell: true, windowsHide: true, timeout: 3000 }); + } + } catch (e) { + // Port is free or error + } + } else { + // macOS/Linux + try { + const pidOutput = execSync(`lsof -ti:${port}`, { + encoding: 'utf8', + stdio: ['pipe', 'pipe', 'ignore'] + }).trim(); + if (pidOutput) { + pid = pidOutput.split('\n')[0]; + execSync(`kill -9 ${pid} 2>/dev/null`, { stdio: 'ignore', timeout: 3000 }); + } + } catch (e) { + // Port is free or error + } + } + + // Wait for port to be released + setTimeout(() => resolve(), 500); + } catch (err) { + // Silent fail - continue anyway + resolve(); + } + }); +} + + +// Detect if running in restricted environment (Codespaces, Docker) +function isRestrictedEnvironment() { + // Check for Codespaces + if (process.env.CODESPACES === "true" || process.env.GITHUB_CODESPACES_PORT_FORWARDING_DOMAIN) { + return "GitHub Codespaces"; + } + + // Check for Docker + if (fs.existsSync("/.dockerenv") || (fs.existsSync("/proc/1/cgroup") && fs.readFileSync("/proc/1/cgroup", "utf8").includes("docker"))) { + return "Docker"; + } + + return null; +} + +// Check if new version available, return latest version or null +function checkForUpdate() { + return new Promise((resolve) => { + if (skipUpdate) { + resolve(null); + return; + } + + const spinner = createSpinner("Checking for updates...").start(); + let resolved = false; + + const safetyTimeout = setTimeout(() => { + if (!resolved) { + resolved = true; + spinner.stop(); + resolve(null); + } + }, 8000); + + const done = (version) => { + if (resolved) return; + resolved = true; + clearTimeout(safetyTimeout); + spinner.stop(); + resolve(version); + }; + + const req = https.get(`https://registry.npmjs.org/${pkg.name}/latest`, { timeout: 3000 }, (res) => { + let data = ""; + res.on("data", chunk => data += chunk); + res.on("end", () => { + try { + const latest = JSON.parse(data); + if (latest.version && compareVersions(latest.version, pkg.version) > 0) { + done(latest.version); + } else { + done(null); + } + } catch (e) { + done(null); + } + }); + }); + + req.on("error", () => done(null)); + req.on("timeout", () => { req.destroy(); done(null); }); + }); +} + +// Open browser +function openBrowser(url) { + const platform = process.platform; + let cmd; + + if (platform === "darwin") { + cmd = `open "${url}"`; + } else if (platform === "win32") { + cmd = `start "" "${url}"`; + } else { + cmd = `xdg-open "${url}"`; + } + + exec(cmd, { windowsHide: true }, (err) => { + if (err) { + console.log(`Open browser manually: ${url}`); + } + }); +} + +// Find standalone server (bundled in bin/app for published package) +const standaloneDir = path.join(__dirname, "app"); +const serverPath = path.join(standaloneDir, "server.js"); + +if (!fs.existsSync(serverPath)) { + console.error("Error: Standalone build not found."); + console.error("Please run 'npm run build:cli' first."); + process.exit(1); +} + +// Check for updates FIRST, then start server +checkForUpdate().then((latestVersion) => { + killAllAppProcesses(port).then(() => { + return killProcessOnPort(port); + }).then(() => { + startServer(latestVersion); + }); +}); + +// Show interface selection menu +async function showInterfaceMenu(latestVersion) { + const { selectMenu } = require("./src/cli/utils/input"); + const { clearScreen } = require("./src/cli/utils/display"); + const { getEndpoint } = require("./src/cli/utils/endpoint"); + + clearScreen(); + + const displayHost = host === DEFAULT_HOST ? "localhost" : host; + + // Detect tunnel/local mode for server URL display + let serverUrl; + try { + const { endpoint, tunnelEnabled } = await getEndpoint(port); + serverUrl = tunnelEnabled ? endpoint.replace(/\/v1$/, "") : `http://${displayHost}:${port}`; + } catch (e) { + serverUrl = `http://${displayHost}:${port}`; + } + + const subtitle = `🚀 Server: \x1b[32m${serverUrl}\x1b[0m`; + + const menuItems = []; + + if (latestVersion) { + menuItems.push({ label: `Update to v${latestVersion} (current: v${pkg.version})`, icon: "⬆" }); + } + + menuItems.push( + { label: "Web UI (Open in Browser)", icon: "🌐" }, + { label: "Terminal UI (Interactive CLI)", icon: "💻" }, + { label: "Hide to Tray (Background)", icon: "🔔" }, + { label: "Exit", icon: "🚪" } + ); + + const selected = await selectMenu(`Choose Interface (v${pkg.version})`, menuItems, 0, subtitle); + + const offset = latestVersion ? 1 : 0; + + if (latestVersion && selected === 0) return "update"; + if (selected === offset) return "web"; + if (selected === offset + 1) return "terminal"; + if (selected === offset + 2) return "hide"; + return "exit"; +} + +const MAX_RESTARTS = 2; +const RESTART_RESET_MS = 30000; // Reset counter if alive > 30s + +function startServer(latestVersion) { + const displayHost = host === DEFAULT_HOST ? "localhost" : host; + const url = `http://${displayHost}:${port}/dashboard`; + + let restartCount = 0; + let serverStartTime = Date.now(); + + const CRASH_LOG_LINES = 50; + let crashLog = []; + + function spawnServer() { + serverStartTime = Date.now(); + crashLog = []; + const child = spawn(RUNTIME, ["--max-old-space-size=6144", serverPath], { + cwd: standaloneDir, + stdio: showLog ? "inherit" : ["ignore", "ignore", "pipe"], + detached: true, + windowsHide: true, + env: { + ...process.env, + PORT: port.toString(), + HOSTNAME: host + } + }); + if (!showLog && child.stderr) { + child.stderr.on("data", (data) => { + const lines = data.toString().split("\n").filter(Boolean); + crashLog.push(...lines); + if (crashLog.length > CRASH_LOG_LINES) crashLog = crashLog.slice(-CRASH_LOG_LINES); + }); + } + return child; + } + + let server = spawnServer(); + + // Cleanup function - force kill server process + let isCleaningUp = false; + function cleanup() { + if (isCleaningUp) return; + isCleaningUp = true; + try { + // Kill tray if running + try { + const { killTray } = require("./src/cli/tray/tray"); + killTray(); + } catch (e) { } + // Kill MITM server (admin/sudo process) via PID file + killMitmByPidFile(); + // Kill cloudflared/tailscale via PID file (only this app's tunnel) + killTunnelByPidFile(); + // Kill server process directly + if (server.pid) { + process.kill(server.pid, "SIGKILL"); + } + // Also try to kill process group + process.kill(-server.pid, "SIGKILL"); + } catch (e) { } + } + + // Suppress all errors during shutdown (systray lib throws JSON parse errors) + let isShuttingDown = false; + process.on("uncaughtException", (err) => { + if (isShuttingDown) return; + console.error("Error:", err.message); + }); + + // Handle all exit scenarios + process.on("SIGINT", () => { + if (isShuttingDown) return; + isShuttingDown = true; + console.log("\nExiting..."); + cleanup(); + setTimeout(() => process.exit(0), 100); + }); + process.on("SIGTERM", () => { + if (isShuttingDown) return; + isShuttingDown = true; + cleanup(); + setTimeout(() => process.exit(0), 100); + }); + process.on("SIGHUP", () => { + if (isShuttingDown) return; + isShuttingDown = true; + cleanup(); + setTimeout(() => process.exit(0), 100); + }); + + // Initialize tray icon (runs alongside TUI) + const initTrayIcon = () => { + try { + const { initTray } = require("./src/cli/tray/tray"); + initTray({ + port, + onQuit: () => { + isShuttingDown = true; + console.log("\n👋 Shutting down from tray..."); + cleanup(); + setTimeout(() => process.exit(0), 100); + }, + onOpenDashboard: () => openBrowser(url) + }); + } catch (err) { + // Tray not available - continue without it + } + }; + + // Tray-only mode: no TUI, just tray icon + if (trayMode) { + console.log(`\n🚀 ${pkg.name} v${pkg.version}`); + console.log(`Server: http://${displayHost}:${port}`); + + setTimeout(() => { + initTrayIcon(); + console.log("\n💡 Router is now running in system tray. Close this terminal if you want."); + console.log(" Right-click tray icon to open dashboard or quit.\n"); + }, 2000); + + return; + } + + // Wait for server to be ready, then show interface menu loop + tray + setTimeout(async () => { + // Start tray icon alongside TUI + initTrayIcon(); + + try { + while (true) { + const choice = await showInterfaceMenu(latestVersion); + + if (choice === "update") { + isShuttingDown = true; + cleanup(); + // Kill ALL lingering processes (server/next-server/cloudflared/tray) to release file locks on Windows + await killAllAppProcesses(port); + await killProcessOnPort(port); + await new Promise(r => setTimeout(r, 1500)); + const { clearScreen } = require("./src/cli/utils/display"); + clearScreen(); + console.log(`\n⬆ New version: v${latestVersion} · you are on v${pkg.version}\n`); + console.log("Run this command to update (9Router is stopped so file locks are released):\n"); + console.log(` ${GLOBAL_INSTALL_CMD}\n`); + console.log("After npm finishes, start 9Router again with:\n"); + console.log(` ${APP_NAME}\n`); + process.exit(0); + } else if (choice === "web") { + openBrowser(url); + // Wait for user to come back + const { pause } = require("./src/cli/utils/input"); + await pause("\nPress Enter to go back to menu..."); + } else if (choice === "terminal") { + // Start Terminal UI - it will return when user selects Back + const { startTerminalUI } = require("./src/cli/terminalUI"); + await startTerminalUI(port); + // Loop continues, show menu again + } else if (choice === "hide") { + // Hide to tray - spawn detached background process + const { clearScreen } = require("./src/cli/utils/display"); + clearScreen(); + + // Enable auto startup on OS boot + try { + const { enableAutoStart } = require("./src/cli/tray/autostart"); + const enabled = enableAutoStart(__filename); + if (enabled) { + console.log("✅ Auto-start enabled (will run on OS boot)"); + } + } catch (e) { } + + // Spawn new detached process with --tray flag + const bgProcess = spawn(process.execPath, [__filename, "--tray", "--skip-update", "-p", port.toString()], { + detached: true, + stdio: "ignore", + windowsHide: true, + env: { ...process.env } + }); + bgProcess.unref(); + + console.log(`\n🔔 9Router is now running in background (PID: ${bgProcess.pid})`); + console.log(` Server: http://${displayHost}:${port}`); + console.log(`\n💡 You can close this terminal. Right-click tray icon to:`); + console.log(` • Open Dashboard`); + console.log(` • Quit\n`); + + // Exit current process - background process takes over + cleanup(); + process.exit(0); + } else if (choice === "exit") { + isShuttingDown = true; + console.log("\nExiting..."); + cleanup(); + setTimeout(() => process.exit(0), 100); + } + } + } catch (err) { + console.error("Error:", err.message); + cleanup(); + process.exit(1); + } + }, 3000); + + function attachServerEvents() { + server.on("error", (err) => { + console.error("Failed to start server:", err.message); + if (!isShuttingDown) tryRestart(); + else { cleanup(); process.exit(1); } + }); + + server.on("close", (code) => { + if (isShuttingDown || code === 0) { + process.exit(code || 0); + return; + } + tryRestart(code); + }); + } + + function tryRestart(code) { + const aliveMs = Date.now() - serverStartTime; + // Reset counter if last run was stable + if (aliveMs >= RESTART_RESET_MS) restartCount = 0; + + if (restartCount >= MAX_RESTARTS) { + console.error(`\n⚠️ Server crashed ${MAX_RESTARTS} times. Disabling MITM and restarting...`); + try { + const dbPath = path.join(os.homedir(), process.platform === "win32" ? path.join("AppData", "Roaming", "9router", "db.json") : path.join(".9router", "db.json")); + if (fs.existsSync(dbPath)) { + const db = JSON.parse(fs.readFileSync(dbPath, "utf-8")); + if (db.settings) db.settings.mitmEnabled = false; + fs.writeFileSync(dbPath, JSON.stringify(db, null, 2)); + } + } catch { /* best effort */ } + restartCount = 0; + server = spawnServer(); + attachServerEvents(); + return; + } + + restartCount++; + const delay = Math.min(1000 * restartCount, 10000); + console.error(`\n⚠️ Server exited (code=${code ?? "unknown"}). Restarting in ${delay / 1000}s... (${restartCount}/${MAX_RESTARTS})`); + if (crashLog.length) { + console.error("\n--- Server crash log ---"); + crashLog.forEach(l => console.error(l)); + console.error("--- End crash log ---\n"); + } + + setTimeout(() => { + server = spawnServer(); + attachServerEvents(); + }, delay); + } + + attachServerEvents(); +} diff --git a/cli/hooks/postinstall.js b/cli/hooks/postinstall.js new file mode 100644 index 00000000000..e4d66ba5bc4 --- /dev/null +++ b/cli/hooks/postinstall.js @@ -0,0 +1,73 @@ +#!/usr/bin/env node + +/** + * Postinstall hook for 9router CLI + * Rebuilds better-sqlite3 native addon for the current platform + */ + +const { execSync } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +const appDir = path.join(__dirname, "..", "app"); +const betterSqlitePath = path.join(appDir, "node_modules", "better-sqlite3"); + +// Check if better-sqlite3 exists +if (!fs.existsSync(betterSqlitePath)) { + console.log("better-sqlite3 not found, skipping rebuild"); + process.exit(0); +} + +// Check if native binary is valid for current platform +function isValidBinary() { + const buildDir = path.join(betterSqlitePath, "build", "Release"); + const binaryPath = path.join(buildDir, "better_sqlite3.node"); + + if (!fs.existsSync(binaryPath)) { + return false; + } + + const fd = fs.openSync(binaryPath, "r"); + const buffer = Buffer.alloc(4); + fs.readSync(fd, buffer, 0, 4, 0); + fs.closeSync(fd); + + const magic = buffer.toString("hex"); + + // ELF (Linux): 7f454c46 + // Mach-O (macOS): cffaedfe or cefaedfe (little/big endian) + // PE (Windows): 4d5a (MZ) + const isLinux = magic.startsWith("7f454c46"); + const isMacOS = magic.startsWith("cffaedfe") || magic.startsWith("cefaedfe"); + const isWindows = magic.startsWith("4d5a"); + + const platform = process.platform; + const expectedLinux = platform === "linux" && isLinux; + const expectedMacOS = platform === "darwin" && isMacOS; + const expectedWindows = platform === "win32" && isWindows; + + return expectedLinux || expectedMacOS || expectedWindows; +} + +// Skip rebuild if binary is already valid +if (isValidBinary()) { + console.log("better-sqlite3 binary is valid for this platform, skipping rebuild"); + process.exit(0); +} + +console.log("Rebuilding better-sqlite3 for current platform..."); + +try { + execSync("npm rebuild better-sqlite3 --build-from-source", { + cwd: appDir, + stdio: "inherit", + timeout: 120000 + }); + console.log("better-sqlite3 rebuilt successfully"); +} catch (error) { + console.warn("Failed to rebuild better-sqlite3. The app may not work correctly."); + console.warn("Make sure you have build tools installed (python, make, gcc/node-gyp)"); + console.warn("Error:", error.message); + // Don't exit with error code - allow install to complete + process.exit(0); +} diff --git a/cli/package.json b/cli/package.json new file mode 100644 index 00000000000..a3764314da8 --- /dev/null +++ b/cli/package.json @@ -0,0 +1,37 @@ +{ + "name": "@diepxuan/9router", + "version": "0.4.20", + "description": "9Router CLI - Start and manage 9Router server", + "bin": { + "9router": "./cli.js" + }, + "files": [ + "cli.js", + "src", + "hooks", + "app", + "README.md", + "LICENSE" + ], + "scripts": { + "postinstall": "node hooks/postinstall.js" + }, + "dependencies": { + "node-forge": "^1.3.3", + "node-machine-id": "^1.1.12", + "react": "19.2.1", + "react-dom": "19.2.1", + "systray": "^1.0.5" + }, + "engines": { + "node": ">=18.0.0" + }, + "keywords": [ + "9router", + "cli", + "proxy", + "ai", + "api" + ], + "license": "MIT" +} diff --git a/cli/src/cli/api/client.js b/cli/src/cli/api/client.js new file mode 100644 index 00000000000..1e77f9ad036 --- /dev/null +++ b/cli/src/cli/api/client.js @@ -0,0 +1,478 @@ +const http = require("http"); +const https = require("https"); +const crypto = require("crypto"); +const { machineIdSync } = require("node-machine-id"); + +// Default configuration +const DEFAULT_CONFIG = { + host: "localhost", + port: 20128, + protocol: "http:", +}; + +const CLI_TOKEN_HEADER = "x-9r-cli-token"; +const CLI_TOKEN_SALT = "9r-cli-auth"; + +let config = { ...DEFAULT_CONFIG }; +let cachedCliToken = null; + +function getCliToken() { + if (cachedCliToken !== null) return cachedCliToken; + try { + const mid = machineIdSync(); + cachedCliToken = crypto.createHash("sha256").update(mid + CLI_TOKEN_SALT).digest("hex").substring(0, 16); + } catch { + cachedCliToken = ""; + } + return cachedCliToken; +} + +/** + * Configure API client + * @param {Object} options - Configuration options + * @param {string} options.host - API host + * @param {number} options.port - API port + * @param {string} options.protocol - Protocol (http: or https:) + */ +function configure(options = {}) { + config = { ...config, ...options }; +} + +/** + * Make HTTP request to API + * @param {string} method - HTTP method + * @param {string} path - API path + * @param {Object} body - Request body (optional) + * @returns {Promise<Object>} Response with { success, data/error } + */ +function makeRequest(method, path, body = null) { + return new Promise((resolve) => { + const httpModule = config.protocol === "https:" ? https : http; + + const options = { + hostname: config.host, + port: config.port, + path: path, + method: method, + headers: { + "Content-Type": "application/json", + [CLI_TOKEN_HEADER]: getCliToken(), + }, + }; + + // Add Content-Length for POST/PUT requests + if (body && (method === "POST" || method === "PUT" || method === "PATCH")) { + const bodyString = JSON.stringify(body); + options.headers["Content-Length"] = Buffer.byteLength(bodyString); + } + + const req = httpModule.request(options, (res) => { + let data = ""; + + res.on("data", (chunk) => { + data += chunk; + }); + + res.on("end", () => { + try { + const parsed = data ? JSON.parse(data) : {}; + + // Check if response indicates error + if (res.statusCode >= 400 || parsed.error) { + resolve({ + success: false, + error: parsed.error || `HTTP ${res.statusCode}`, + statusCode: res.statusCode, + }); + } else { + resolve({ + success: true, + data: parsed, + statusCode: res.statusCode, + }); + } + } catch (err) { + resolve({ + success: false, + error: `Failed to parse response: ${err.message}`, + }); + } + }); + }); + + req.on("error", (err) => { + resolve({ + success: false, + error: `Network error: ${err.message}`, + }); + }); + + req.on("timeout", () => { + req.destroy(); + resolve({ + success: false, + error: "Request timeout", + }); + }); + + // Set timeout (30 seconds) + req.setTimeout(30000); + + // Write body if present + if (body && (method === "POST" || method === "PUT" || method === "PATCH")) { + req.write(JSON.stringify(body)); + } + + req.end(); + }); +} + +// ============================================================================ +// PROVIDERS API +// ============================================================================ + +/** + * Get all providers + * @returns {Promise<Object>} { success, data: { connections } } + */ +async function getProviders() { + return makeRequest("GET", "/api/providers"); +} + +/** + * Get provider by ID + * @param {string} id - Provider ID + * @returns {Promise<Object>} { success, data: { connection } } + */ +async function getProviderById(id) { + return makeRequest("GET", `/api/providers/${id}`); +} + +/** + * Test provider connection + * @param {string} id - Provider ID + * @returns {Promise<Object>} { success, data: { valid, error } } + */ +async function testProvider(id) { + return makeRequest("POST", `/api/providers/${id}/test`); +} + +/** + * Delete provider + * @param {string} id - Provider ID + * @returns {Promise<Object>} { success, data: { message } } + */ +async function deleteProvider(id) { + return makeRequest("DELETE", `/api/providers/${id}`); +} + +/** + * Get provider models + * @param {string} id - Provider ID + * @returns {Promise<Object>} { success, data: { provider, connectionId, models } } + */ +async function getProviderModels(id) { + return makeRequest("GET", `/api/providers/${id}/models`); +} + +// ============================================================================ +// OAUTH API +// ============================================================================ + +/** + * Get OAuth authorization URL + * @param {string} provider - Provider ID + * @returns {Promise<Object>} { success, data: { authUrl, codeVerifier, state, redirectUri } } + */ +async function getOAuthAuthUrl(provider) { + // Codex requires fixed port 1455 and path /auth/callback + const redirectUri = provider === "codex" + ? "http://localhost:1455/auth/callback" + : "http://localhost:20128/callback"; + return makeRequest("GET", `/api/oauth/${provider}/authorize?redirect_uri=${encodeURIComponent(redirectUri)}`); +} + +/** + * Exchange OAuth authorization code for token + * @param {string} provider - Provider ID + * @param {Object} data - { code, redirectUri, codeVerifier, state } + * @returns {Promise<Object>} { success, data } + */ +async function exchangeOAuthCode(provider, data) { + return makeRequest("POST", `/api/oauth/${provider}/exchange`, data); +} + +/** + * Get OAuth device code + * @param {string} provider - Provider ID + * @returns {Promise<Object>} { success, data: { device_code, user_code, verification_uri, verification_uri_complete, codeVerifier, extraData } } + */ +async function getOAuthDeviceCode(provider) { + return makeRequest("GET", `/api/oauth/${provider}/device-code`); +} + +/** + * Poll OAuth token using device code + * @param {string} provider - Provider ID + * @param {Object} data - { deviceCode, codeVerifier, extraData } + * @returns {Promise<Object>} { success, data: { pending } } + */ +async function pollOAuthToken(provider, data) { + return makeRequest("POST", `/api/oauth/${provider}/poll`, data); +} + +/** + * Create API key provider connection + * @param {Object} data - { provider, name, apiKey } + * @returns {Promise<Object>} { success, data } + */ +async function createApiKeyProvider(data) { + return makeRequest("POST", "/api/providers", data); +} + +/** + * Update provider connection + * @param {string} id - Connection ID + * @param {Object} data - { name, priority, defaultModel, isActive } + * @returns {Promise<Object>} { success, data: { connection } } + */ +async function updateConnection(id, data) { + return makeRequest("PUT", `/api/providers/${id}`, data); +} + +// ============================================================================ +// API KEYS API +// ============================================================================ + +/** + * Get all API keys + * @returns {Promise<Object>} { success, data: { keys } } + */ +async function getApiKeys() { + return makeRequest("GET", "/api/keys"); +} + +/** + * Create new API key + * @param {string} name - Key name + * @returns {Promise<Object>} { success, data: { key, name, id, machineId } } + */ +async function createApiKey(name) { + return makeRequest("POST", "/api/keys", { name }); +} + +/** + * Delete API key + * @param {string} id - Key ID + * @returns {Promise<Object>} { success, data: { success } } + */ +async function deleteApiKey(id) { + return makeRequest("DELETE", `/api/keys/${id}`); +} + +// ============================================================================ +// COMBOS API +// ============================================================================ + +/** + * Get all combos + * @returns {Promise<Object>} { success, data: { combos } } + */ +async function getCombos() { + return makeRequest("GET", "/api/combos"); +} + +/** + * Get combo by ID + * @param {string} id - Combo ID + * @returns {Promise<Object>} { success, data: combo } + */ +async function getComboById(id) { + return makeRequest("GET", `/api/combos/${id}`); +} + +/** + * Create new combo + * @param {Object} data - Combo data { name, models } + * @returns {Promise<Object>} { success, data: combo } + */ +async function createCombo(data) { + return makeRequest("POST", "/api/combos", data); +} + +/** + * Update combo + * @param {string} id - Combo ID + * @param {Object} data - Update data { name?, models? } + * @returns {Promise<Object>} { success, data: combo } + */ +async function updateCombo(id, data) { + return makeRequest("PUT", `/api/combos/${id}`, data); +} + +/** + * Delete combo + * @param {string} id - Combo ID + * @returns {Promise<Object>} { success, data: { success } } + */ +async function deleteCombo(id) { + return makeRequest("DELETE", `/api/combos/${id}`); +} + +// ============================================================================ +// CLI TOOLS API +// ============================================================================ + +/** + * Get CLI tool settings + * @param {string} tool - Tool name: claude | codex | droid | openclaw + * @returns {Promise<Object>} { success, data: { installed, has9Router, ... } } + */ +async function getCliToolSettings(tool) { + return makeRequest("GET", `/api/cli-tools/${tool}-settings`); +} + +/** + * Apply CLI tool settings (POST) + * @param {string} tool - Tool name: claude | codex | droid | openclaw + * @param {Object} body - Payload depends on tool + * @returns {Promise<Object>} { success, data } + */ +async function applyCliToolSettings(tool, body) { + return makeRequest("POST", `/api/cli-tools/${tool}-settings`, body); +} + +/** + * Reset CLI tool settings (DELETE) + * @param {string} tool - Tool name: claude | codex | droid | openclaw + * @returns {Promise<Object>} { success, data } + */ +async function resetCliToolSettings(tool) { + return makeRequest("DELETE", `/api/cli-tools/${tool}-settings`); +} + +// ============================================================================ +// SETTINGS API +// ============================================================================ + +/** + * Get settings + * @returns {Promise<Object>} { success, data: settings } + */ +async function getSettings() { + return makeRequest("GET", "/api/settings"); +} + +/** + * Update settings + * @param {Object} data - Settings data + * @returns {Promise<Object>} { success, data: settings } + */ +async function updateSettings(data) { + return makeRequest("PATCH", "/api/settings", data); +} + +// ============================================================================ +// MODELS API +// ============================================================================ + +/** + * Get all models (internal API) + * @returns {Promise<Object>} { success, data: { models } } + */ +async function getModels() { + return makeRequest("GET", "/api/models"); +} + +/** + * Get available models from active providers + combos (OpenAI compatible) + * @returns {Promise<Object>} { success, data: { object, data: [...models] } } + */ +async function getAvailableModels() { + return makeRequest("GET", "/v1/models"); +} + +// ============================================================================ +// TUNNEL API +// ============================================================================ + +/** + * Get tunnel status + * @returns {Promise<Object>} { success, data: { enabled, tunnelUrl, shortId, running } } + */ +async function getTunnelStatus() { + return makeRequest("GET", "/api/tunnel/status"); +} + +/** + * Enable tunnel + * @returns {Promise<Object>} { success, data: { tunnelUrl, shortId } } + */ +async function enableTunnel() { + return makeRequest("POST", "/api/tunnel/enable"); +} + +/** + * Disable tunnel + * @returns {Promise<Object>} { success, data: { success } } + */ +async function disableTunnel() { + return makeRequest("POST", "/api/tunnel/disable"); +} + +// ============================================================================ +// EXPORTS +// ============================================================================ + +module.exports = { + configure, + + // Providers + getProviders, + getProviderById, + testProvider, + deleteProvider, + getProviderModels, + + // Connection aliases + testConnection: testProvider, + deleteConnection: deleteProvider, + updateConnection, + + // OAuth + getOAuthAuthUrl, + exchangeOAuthCode, + getOAuthDeviceCode, + pollOAuthToken, + createApiKeyProvider, + + // API Keys + getApiKeys, + createApiKey, + deleteApiKey, + + // Combos + getCombos, + getComboById, + createCombo, + updateCombo, + deleteCombo, + + // CLI Tools + getCliToolSettings, + applyCliToolSettings, + resetCliToolSettings, + + // Settings + getSettings, + updateSettings, + + // Tunnel + getTunnelStatus, + enableTunnel, + disableTunnel, + + // Models + getModels, + getAvailableModels, +}; diff --git a/cli/src/cli/menus/apiKeys.js b/cli/src/cli/menus/apiKeys.js new file mode 100644 index 00000000000..ecd4e687d61 --- /dev/null +++ b/cli/src/cli/menus/apiKeys.js @@ -0,0 +1,233 @@ +const api = require("../api/client"); +const { prompt, confirm, pause } = require("../utils/input"); +const { clearScreen, showStatus, showHeader } = require("../utils/display"); +const { maskKey, formatDate, getRelativeTime } = require("../utils/format"); +const { showMenuWithBack } = require("../utils/menuHelper"); +const { copyToClipboard } = require("../utils/clipboard"); +const { getEndpoint } = require("../utils/endpoint"); + +/** + * Display API keys list with formatted output + * @param {Array} keys - Array of API key objects + * @param {number} port - Server port + */ +function displayApiKeys(keys, port) { + console.log("┌─────────────────────────────────────────────────────────┐"); + console.log("│ 🔑 API Keys Management │"); + console.log("├─────────────────────────────────────────────────────────┤"); + // Note: This function is legacy, endpoint shown in menu header instead + console.log("│ │"); + + if (keys.length === 0) { + console.log("│ No API keys found. │"); + } else { + console.log(`│ Your API Keys (${keys.length}):${" ".repeat(42 - String(keys.length).length)}│`); + + keys.forEach((key, index) => { + console.log("│ │"); + console.log(`│ ${index + 1}. ${key.name}${" ".repeat(52 - String(index + 1).length - key.name.length)}│`); + + const maskedKey = maskKey(key.key); + console.log(`│ Key: ${maskedKey}${" ".repeat(47 - maskedKey.length)}│`); + + const created = formatDate(key.createdAt); + console.log(`│ Created: ${created}${" ".repeat(43 - created.length)}│`); + + if (key.lastUsedAt) { + const lastUsed = getRelativeTime(key.lastUsedAt); + console.log(`│ Last used: ${lastUsed}${" ".repeat(41 - lastUsed.length)}│`); + } else { + console.log("│ Last used: Never │"); + } + }); + } + + console.log("│ │"); + console.log("│ Actions: │"); + console.log("│ 1. Create New API Key │"); + console.log("│ 2. View Full Key (by number) │"); + console.log("│ 3. Copy Key to Clipboard (by number) │"); + console.log("│ 4. Delete Key (by number) │"); + console.log("│ 0. ← Back to Main Menu │"); + console.log("└─────────────────────────────────────────────────────────┘"); +} + +/** + * Handle creating new API key + * @returns {Promise<boolean>} Success status + */ +async function handleCreateKey() { + console.log("\n📝 Create New API Key"); + console.log("─".repeat(30)); + + const name = await prompt("Enter key name: "); + + if (!name) { + showStatus("Key name cannot be empty", "error"); + await pause(); + return false; + } + + const result = await api.createApiKey(name); + + if (!result.success) { + showStatus(`Failed to create key: ${result.error}`, "error"); + await pause(); + return false; + } + + console.log("\n✅ API Key created successfully!"); + console.log("\n⚠️ IMPORTANT: Save this key now. You won't be able to see it again!"); + console.log(`\nKey: ${result.data.key}`); + console.log(`Name: ${result.data.name}`); + console.log(`ID: ${result.data.id}`); + + const shouldCopy = await confirm("\nCopy key to clipboard?"); + if (shouldCopy) { + if (copyToClipboard(result.data.key)) { + showStatus("Key copied to clipboard!", "success"); + } else { + showStatus("Failed to copy to clipboard", "error"); + } + } + + await pause(); + return true; +} + +/** + * Handle viewing full API key + * @param {Object} key - API key object + */ +async function handleViewFullKey(key) { + console.log("\n🔍 Full API Key"); + console.log("─".repeat(30)); + console.log(`Name: ${key.name}`); + console.log(`Key: ${key.key}`); + console.log(`ID: ${key.id}`); + console.log(`Created: ${formatDate(key.createdAt)}`); + + if (key.lastUsedAt) { + console.log(`Last used: ${getRelativeTime(key.lastUsedAt)}`); + } else { + console.log("Last used: Never"); + } + + await pause(); +} + +/** + * Handle copying API key to clipboard + * @param {Object} key - API key object + */ +async function handleCopyKey(key) { + if (copyToClipboard(key.key)) { + showStatus(`Key "${key.name}" copied to clipboard!`, "success"); + } else { + showStatus("Failed to copy to clipboard", "error"); + } + await pause(); +} + +/** + * Handle deleting API key + * @param {Object} key - API key object + * @returns {Promise<boolean>} Success status + */ +async function handleDeleteKey(key) { + console.log(`\n⚠️ Delete API Key: ${key.name}`); + console.log("─".repeat(30)); + console.log(`Key: ${maskKey(key.key)}`); + console.log(`Created: ${formatDate(key.createdAt)}`); + + const confirmed = await confirm("\nAre you sure you want to delete this key?"); + + if (!confirmed) { + showStatus("Deletion cancelled", "info"); + await pause(); + return false; + } + + const result = await api.deleteApiKey(key.id); + + if (!result.success) { + showStatus(`Failed to delete key: ${result.error}`, "error"); + await pause(); + return false; + } + + showStatus("API key deleted successfully", "success"); + await pause(); + return true; +} + +/** + * Show actions for a specific key + * @param {Object} key - API key object + * @param {number} port - Server port + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showKeyActions(key, port, breadcrumb = []) { + const { endpoint } = await getEndpoint(port); + await showMenuWithBack({ + title: `🔑 ${key.name}`, + breadcrumb: [...breadcrumb, key.name], + headerContent: `Name: ${key.name}\nKey: ${key.key}\nEndpoint: ${endpoint}`, + items: [ + { + label: "Copy to Clipboard", + action: async () => { + await handleCopyKey(key); + return true; + } + }, + { + label: "Delete Key", + action: async () => { + await handleDeleteKey(key); + return false; // Exit after delete + } + } + ] + }); +} + +/** + * Main API Keys menu + * @param {number} port - Server port number + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showApiKeysMenu(port, breadcrumb = []) { + const { showListMenu } = require("../utils/menuHelper"); + + const { endpoint } = await getEndpoint(port); + await showListMenu({ + title: "🔑 API Keys Management", + breadcrumb, + headerContent: `Endpoint: ${endpoint}`, + fetchItems: async () => { + const result = await api.getApiKeys(); + if (!result.success) { + clearScreen(); + showStatus(`Failed to fetch API keys: ${result.error}`, "error"); + await pause(); + return null; + } + return { items: result.data.keys || [] }; + }, + formatItem: (key) => `${key.name} (${maskKey(key.key)})`, + onSelect: async (key) => { + await showKeyActions(key, port, breadcrumb); + }, + createAction: { + label: "Create New API Key", + action: async () => { + await handleCreateKey(); + } + } + }); +} + +module.exports = { + showApiKeysMenu +}; diff --git a/cli/src/cli/menus/cliTools.js b/cli/src/cli/menus/cliTools.js new file mode 100644 index 00000000000..3a84a074e95 --- /dev/null +++ b/cli/src/cli/menus/cliTools.js @@ -0,0 +1,618 @@ +const api = require("../api/client"); +const { pause, confirm } = require("../utils/input"); +const { showStatus } = require("../utils/display"); +const { selectModelFromList } = require("../utils/modelSelector"); +const { showMenuWithBack } = require("../utils/menuHelper"); +const { getEndpoint } = require("../utils/endpoint"); + +const COLORS = { + reset: "\x1b[0m", + green: "\x1b[32m", + red: "\x1b[31m", + dim: "\x1b[2m", + cyan: "\x1b[36m" +}; + +// Claude model types with defaults (matching Web UI) +const CLAUDE_MODEL_TYPES = [ + { id: "sonnet", name: "Sonnet", envKey: "ANTHROPIC_DEFAULT_SONNET_MODEL", defaultValue: "cc/claude-sonnet-4-5-20250929" }, + { id: "opus", name: "Opus", envKey: "ANTHROPIC_DEFAULT_OPUS_MODEL", defaultValue: "cc/claude-opus-4-5-20251101" }, + { id: "haiku", name: "Haiku", envKey: "ANTHROPIC_DEFAULT_HAIKU_MODEL", defaultValue: "cc/claude-haiku-4-5-20251001" }, +]; + +// ─── Shared helpers ─────────────────────────────────────────────────────────── + +/** + * Get first available API key from server + * @returns {Promise<string|null>} + */ +async function getFirstApiKey() { + const result = await api.getApiKeys(); + const keys = result.success ? (result.data.keys || []) : []; + return keys.length > 0 ? keys[0].key : null; +} + +// ─── Claude Code ────────────────────────────────────────────────────────────── + +/** + * Build header showing current Claude config status + * @returns {Promise<string>} + */ +async function buildClaudeHeader() { + const result = await api.getCliToolSettings("claude"); + if (!result.success) return ` ${COLORS.red}Failed to load settings${COLORS.reset}`; + + const settings = result.data.settings; + const currentUrl = settings?.env?.ANTHROPIC_BASE_URL; + const currentKey = settings?.env?.ANTHROPIC_AUTH_TOKEN; + const lines = []; + + if (currentUrl) { + lines.push(`Status: ${COLORS.green}✓ Configured${COLORS.reset}`); + lines.push(`Endpoint: ${COLORS.cyan}${currentUrl}${COLORS.reset}`); + if (currentKey) { + lines.push(`API Key: ${COLORS.dim}${currentKey.substring(0, 10)}...${COLORS.reset}`); + } + } else { + lines.push(`Status: ${COLORS.red}✗ Not configured${COLORS.reset}`); + lines.push(`${COLORS.dim}Run "Quick Setup" to configure${COLORS.reset}`); + } + + return lines.join("\n"); +} + +/** + * Get current Claude model from settings + * @param {string} envKey + * @returns {Promise<string>} + */ +async function getClaudeModel(envKey) { + const result = await api.getCliToolSettings("claude"); + return result.success ? (result.data.settings?.env?.[envKey] || "Not set") : "Not set"; +} + +/** + * Quick setup for Claude Code — sets endpoint, key, and all default models + * @param {number} port + */ +async function claudeQuickSetup(port) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + + if (!apiKey) { + showStatus("No API keys found. Create one in API Keys menu first.", "error"); + await pause(); + return; + } + + const env = { ANTHROPIC_BASE_URL: endpoint, ANTHROPIC_AUTH_TOKEN: apiKey, API_TIMEOUT_MS: "600000" }; + CLAUDE_MODEL_TYPES.forEach(t => { env[t.envKey] = t.defaultValue; }); + + const result = await api.applyCliToolSettings("claude", { env }); + showStatus(result.success ? "Quick Setup completed!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Select and save a specific Claude model type + * @param {Object} modelType + * @param {number} port + */ +async function claudeSelectModel(modelType, port) { + const current = await getClaudeModel(modelType.envKey); + const selected = await selectModelFromList(`Select ${modelType.name} Model`, current, { excludeCombos: true }); + if (!selected) return; + + const env = { [modelType.envKey]: selected }; + + // Also set base URL if not configured yet + const settingsResult = await api.getCliToolSettings("claude"); + if (!settingsResult.data?.settings?.env?.ANTHROPIC_BASE_URL) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + env.ANTHROPIC_BASE_URL = endpoint; + env.API_TIMEOUT_MS = "600000"; + if (apiKey) env.ANTHROPIC_AUTH_TOKEN = apiKey; + } + + const result = await api.applyCliToolSettings("claude", { env }); + showStatus(result.success ? `${modelType.name} → ${selected} saved!` : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Reset Claude Code settings + */ +async function claudeReset() { + const result = await api.resetCliToolSettings("claude"); + showStatus(result.success ? "Settings reset successfully!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Claude Code submenu + * @param {number} port + * @param {Array<string>} breadcrumb + */ +async function showClaudeCodeMenu(port, breadcrumb = []) { + await showMenuWithBack({ + title: "🔧 Claude Code Settings", + breadcrumb, + headerContent: buildClaudeHeader, + refresh: async () => ({ + sonnet: await getClaudeModel("ANTHROPIC_DEFAULT_SONNET_MODEL"), + opus: await getClaudeModel("ANTHROPIC_DEFAULT_OPUS_MODEL"), + haiku: await getClaudeModel("ANTHROPIC_DEFAULT_HAIKU_MODEL"), + }), + items: [ + { + label: "⚡ Quick Setup (recommended)", + action: async () => { await claudeQuickSetup(port); return true; } + }, + { + label: (d) => `Sonnet → ${d.sonnet}`, + action: async () => { await claudeSelectModel(CLAUDE_MODEL_TYPES[0], port); return true; } + }, + { + label: (d) => `Opus → ${d.opus}`, + action: async () => { await claudeSelectModel(CLAUDE_MODEL_TYPES[1], port); return true; } + }, + { + label: (d) => `Haiku → ${d.haiku}`, + action: async () => { await claudeSelectModel(CLAUDE_MODEL_TYPES[2], port); return true; } + }, + { + label: "Reset to Default", + action: async () => { await claudeReset(); return true; } + } + ] + }); +} + +// ─── Codex CLI ──────────────────────────────────────────────────────────────── + +/** + * Build header showing current Codex config status + * @returns {Promise<string>} + */ +async function buildCodexHeader() { + const result = await api.getCliToolSettings("codex"); + if (!result.success) return ` ${COLORS.red}Failed to load settings${COLORS.reset}`; + + const { installed, has9Router, config } = result.data; + if (!installed) return `Status: ${COLORS.red}✗ Codex CLI not installed${COLORS.reset}`; + + if (!has9Router) { + return [ + `Status: ${COLORS.red}✗ Not configured${COLORS.reset}`, + `${COLORS.dim}Run "Quick Setup" to configure${COLORS.reset}` + ].join("\n"); + } + + // Parse base_url and model from raw TOML string + const baseUrlMatch = config && config.match(/base_url\s*=\s*"([^"]+)"/); + const modelMatch = config && config.match(/^model\s*=\s*"([^"]+)"/m); + const baseUrl = baseUrlMatch ? baseUrlMatch[1] : ""; + const model = modelMatch ? modelMatch[1] : ""; + + const lines = [`Status: ${COLORS.green}✓ Configured${COLORS.reset}`]; + if (baseUrl) lines.push(`Endpoint: ${COLORS.cyan}${baseUrl}${COLORS.reset}`); + if (model) lines.push(`Model: ${COLORS.dim}${model}${COLORS.reset}`); + return lines.join("\n"); +} + +/** + * Quick setup for Codex CLI + * @param {number} port + */ +async function codexQuickSetup(port) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + + if (!apiKey) { + showStatus("No API keys found. Create one in API Keys menu first.", "error"); + await pause(); + return; + } + + // Get model selection + const model = await selectModelFromList("Select Codex Model", "cx/claude-sonnet-4-5-20250929", { excludeCombos: true }); + if (!model) return; + + const result = await api.applyCliToolSettings("codex", { baseUrl: endpoint, apiKey, model }); + showStatus(result.success ? "Codex setup completed!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Reset Codex CLI settings + */ +async function codexReset() { + const result = await api.resetCliToolSettings("codex"); + showStatus(result.success ? "Codex settings reset!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Codex CLI submenu + * @param {number} port + * @param {Array<string>} breadcrumb + */ +async function showCodexMenu(port, breadcrumb = []) { + await showMenuWithBack({ + title: "🤖 Codex CLI Settings", + breadcrumb, + headerContent: buildCodexHeader, + refresh: async () => ({}), + items: [ + { + label: "⚡ Quick Setup", + action: async () => { await codexQuickSetup(port); return true; } + }, + { + label: "Reset to Default", + action: async () => { await codexReset(); return true; } + } + ] + }); +} + +// ─── Factory Droid ──────────────────────────────────────────────────────────── + +/** + * Build header showing current Droid config status + * @returns {Promise<string>} + */ +async function buildDroidHeader() { + const result = await api.getCliToolSettings("droid"); + if (!result.success) return ` ${COLORS.red}Failed to load settings${COLORS.reset}`; + + const { installed, has9Router, settings } = result.data; + if (!installed) return `Status: ${COLORS.red}✗ Factory Droid not installed${COLORS.reset}`; + + if (!has9Router) { + return [ + `Status: ${COLORS.red}✗ Not configured${COLORS.reset}`, + `${COLORS.dim}Run "Quick Setup" to configure${COLORS.reset}` + ].join("\n"); + } + + // Extract 9Router custom model config + const custom = settings?.customModels?.find(m => m.id === "custom:9Router-0"); + const lines = [`Status: ${COLORS.green}✓ Configured${COLORS.reset}`]; + if (custom?.baseUrl) lines.push(`Endpoint: ${COLORS.cyan}${custom.baseUrl}${COLORS.reset}`); + if (custom?.model) lines.push(`Model: ${COLORS.dim}${custom.model}${COLORS.reset}`); + return lines.join("\n"); +} + +/** + * Quick setup for Factory Droid + * @param {number} port + */ +async function droidQuickSetup(port) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + + if (!apiKey) { + showStatus("No API keys found. Create one in API Keys menu first.", "error"); + await pause(); + return; + } + + const model = await selectModelFromList("Select Droid Model", "cc/claude-sonnet-4-5-20250929", { excludeCombos: true }); + if (!model) return; + + const result = await api.applyCliToolSettings("droid", { baseUrl: endpoint, apiKey, model }); + showStatus(result.success ? "Factory Droid setup completed!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Reset Factory Droid settings + */ +async function droidReset() { + const result = await api.resetCliToolSettings("droid"); + showStatus(result.success ? "Factory Droid settings reset!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Factory Droid submenu + * @param {number} port + * @param {Array<string>} breadcrumb + */ +async function showDroidMenu(port, breadcrumb = []) { + await showMenuWithBack({ + title: "🤖 Factory Droid Settings", + breadcrumb, + headerContent: buildDroidHeader, + refresh: async () => ({}), + items: [ + { + label: "⚡ Quick Setup", + action: async () => { await droidQuickSetup(port); return true; } + }, + { + label: "Reset to Default", + action: async () => { await droidReset(); return true; } + } + ] + }); +} + +// ─── Open Claw ──────────────────────────────────────────────────────────────── + +/** + * Build header showing current OpenClaw config status + * @returns {Promise<string>} + */ +async function buildOpenClawHeader() { + const result = await api.getCliToolSettings("openclaw"); + if (!result.success) return ` ${COLORS.red}Failed to load settings${COLORS.reset}`; + + const { installed, has9Router, settings } = result.data; + if (!installed) return `Status: ${COLORS.red}✗ Open Claw not installed${COLORS.reset}`; + + if (!has9Router) { + return [ + `Status: ${COLORS.red}✗ Not configured${COLORS.reset}`, + `${COLORS.dim}Run "Quick Setup" to configure${COLORS.reset}` + ].join("\n"); + } + + // Extract 9Router provider config + const provider = settings?.models?.providers?.["9router"]; + const primary = settings?.agents?.defaults?.model?.primary || ""; + const model = primary.startsWith("9router/") ? primary.replace("9router/", "") : (provider?.models?.[0]?.id || ""); + const lines = [`Status: ${COLORS.green}✓ Configured${COLORS.reset}`]; + if (provider?.baseUrl) lines.push(`Endpoint: ${COLORS.cyan}${provider.baseUrl}${COLORS.reset}`); + if (model) lines.push(`Model: ${COLORS.dim}${model}${COLORS.reset}`); + return lines.join("\n"); +} + +/** + * Quick setup for Open Claw + * @param {number} port + */ +async function openClawQuickSetup(port) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + + if (!apiKey) { + showStatus("No API keys found. Create one in API Keys menu first.", "error"); + await pause(); + return; + } + + const model = await selectModelFromList("Select OpenClaw Model", "cc/claude-sonnet-4-5-20250929", { excludeCombos: true }); + if (!model) return; + + const result = await api.applyCliToolSettings("openclaw", { baseUrl: endpoint, apiKey, model }); + showStatus(result.success ? "Open Claw setup completed!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Reset Open Claw settings + */ +async function openClawReset() { + const result = await api.resetCliToolSettings("openclaw"); + showStatus(result.success ? "Open Claw settings reset!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +/** + * Open Claw submenu + * @param {number} port + * @param {Array<string>} breadcrumb + */ +async function showOpenClawMenu(port, breadcrumb = []) { + await showMenuWithBack({ + title: "🦞 Open Claw Settings", + breadcrumb, + headerContent: buildOpenClawHeader, + refresh: async () => ({}), + items: [ + { + label: "⚡ Quick Setup", + action: async () => { await openClawQuickSetup(port); return true; } + }, + { + label: "Reset to Default", + action: async () => { await openClawReset(); return true; } + } + ] + }); +} + +// ─── OpenCode CLI ───────────────────────────────────────────────────────────── + +async function buildOpenCodeHeader() { + const result = await api.getCliToolSettings("opencode"); + if (!result.success) return ` ${COLORS.red}Failed to load settings${COLORS.reset}`; + + const { installed, has9Router, opencode } = result.data; + if (!installed) return `Status: ${COLORS.red}✗ OpenCode CLI not installed${COLORS.reset}`; + + if (!has9Router) { + return [ + `Status: ${COLORS.red}✗ Not configured${COLORS.reset}`, + `${COLORS.dim}Run "Quick Setup" to configure${COLORS.reset}` + ].join("\n"); + } + + const lines = [`Status: ${COLORS.green}✓ Configured${COLORS.reset}`]; + if (opencode?.baseURL) lines.push(`Endpoint: ${COLORS.cyan}${opencode.baseURL}${COLORS.reset}`); + if (opencode?.activeModel) lines.push(`Active: ${COLORS.dim}${opencode.activeModel}${COLORS.reset}`); + if (Array.isArray(opencode?.models) && opencode.models.length > 0) { + lines.push(`Models: ${COLORS.dim}${opencode.models.join(", ")}${COLORS.reset}`); + } + return lines.join("\n"); +} + +async function openCodeQuickSetup(port) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + + if (!apiKey) { + showStatus("No API keys found. Create one in API Keys menu first.", "error"); + await pause(); + return; + } + + // Pick first model (also becomes active model by default) + const firstModel = await selectModelFromList("Select Active Model (OpenCode)", "", { excludeCombos: true }); + if (!firstModel) return; + + const models = [firstModel]; + + // Optionally add more models + while (true) { + const more = await confirm(`Add another model? (current: ${models.length})`); + if (!more) break; + const next = await selectModelFromList(`Add Model #${models.length + 1}`, models.join(", "), { excludeCombos: true }); + if (!next) break; + if (!models.includes(next)) models.push(next); + } + + // Optional subagent model + let subagentModel = firstModel; + const wantSubagent = await confirm(`Set a different subagent model? (default: ${firstModel})`); + if (wantSubagent) { + const picked = await selectModelFromList("Select Subagent Model", firstModel, { excludeCombos: true }); + if (picked) subagentModel = picked; + } + + const result = await api.applyCliToolSettings("opencode", { + baseUrl: endpoint, + apiKey, + models, + activeModel: firstModel, + subagentModel, + }); + showStatus(result.success ? "OpenCode setup completed!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +async function openCodeReset() { + const result = await api.resetCliToolSettings("opencode"); + showStatus(result.success ? "OpenCode settings reset!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +async function showOpenCodeMenu(port, breadcrumb = []) { + await showMenuWithBack({ + title: "💻 OpenCode CLI Settings", + breadcrumb, + headerContent: buildOpenCodeHeader, + refresh: async () => ({}), + items: [ + { label: "⚡ Quick Setup", action: async () => { await openCodeQuickSetup(port); return true; } }, + { label: "Reset to Default", action: async () => { await openCodeReset(); return true; } } + ] + }); +} + +// ─── Hermes Agent ───────────────────────────────────────────────────────────── + +async function buildHermesHeader() { + const result = await api.getCliToolSettings("hermes"); + if (!result.success) return ` ${COLORS.red}Failed to load settings${COLORS.reset}`; + + const { installed, has9Router, settings } = result.data; + if (!installed) return `Status: ${COLORS.red}✗ Hermes Agent not installed${COLORS.reset}`; + + if (!has9Router) { + return [ + `Status: ${COLORS.red}✗ Not configured${COLORS.reset}`, + `${COLORS.dim}Run "Quick Setup" to configure${COLORS.reset}` + ].join("\n"); + } + + const model = settings?.model || {}; + const lines = [`Status: ${COLORS.green}✓ Configured${COLORS.reset}`]; + if (model.base_url) lines.push(`Endpoint: ${COLORS.cyan}${model.base_url}${COLORS.reset}`); + if (model.default) lines.push(`Model: ${COLORS.dim}${model.default}${COLORS.reset}`); + return lines.join("\n"); +} + +async function hermesQuickSetup(port) { + const { endpoint } = await getEndpoint(port); + const apiKey = await getFirstApiKey(); + + if (!apiKey) { + showStatus("No API keys found. Create one in API Keys menu first.", "error"); + await pause(); + return; + } + + const model = await selectModelFromList("Select Hermes Model", "", { excludeCombos: true }); + if (!model) return; + + const result = await api.applyCliToolSettings("hermes", { baseUrl: endpoint, apiKey, model }); + showStatus(result.success ? "Hermes setup completed!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +async function hermesReset() { + const result = await api.resetCliToolSettings("hermes"); + showStatus(result.success ? "Hermes settings reset!" : `Failed: ${result.error}`, result.success ? "success" : "error"); + await pause(); +} + +async function showHermesMenu(port, breadcrumb = []) { + await showMenuWithBack({ + title: "⚡ Hermes Agent Settings", + breadcrumb, + headerContent: buildHermesHeader, + refresh: async () => ({}), + items: [ + { label: "⚡ Quick Setup", action: async () => { await hermesQuickSetup(port); return true; } }, + { label: "Reset to Default", action: async () => { await hermesReset(); return true; } } + ] + }); +} + +// ─── Main CLI Tools Menu ────────────────────────────────────────────────────── + +/** + * Main CLI Tools menu + * @param {number} port + * @param {Array<string>} breadcrumb + */ +async function showCliToolsMenu(port, breadcrumb = []) { + const { endpoint } = await getEndpoint(port); + await showMenuWithBack({ + title: "🔧 CLI Tools", + breadcrumb, + headerContent: `Configure CLI tools to use 9Router\nEndpoint: ${endpoint}`, + items: [ + { + label: "Claude Code", + action: async () => { await showClaudeCodeMenu(port, [...breadcrumb, "Claude Code"]); return true; } + }, + { + label: "Codex CLI", + action: async () => { await showCodexMenu(port, [...breadcrumb, "Codex CLI"]); return true; } + }, + { + label: "Factory Droid", + action: async () => { await showDroidMenu(port, [...breadcrumb, "Factory Droid"]); return true; } + }, + { + label: "Open Claw", + action: async () => { await showOpenClawMenu(port, [...breadcrumb, "Open Claw"]); return true; } + }, + { + label: "OpenCode", + action: async () => { await showOpenCodeMenu(port, [...breadcrumb, "OpenCode"]); return true; } + }, + { + label: "Hermes", + action: async () => { await showHermesMenu(port, [...breadcrumb, "Hermes"]); return true; } + } + ] + }); +} + +module.exports = { showCliToolsMenu }; diff --git a/cli/src/cli/menus/combos.js b/cli/src/cli/menus/combos.js new file mode 100644 index 00000000000..5a8b202e070 --- /dev/null +++ b/cli/src/cli/menus/combos.js @@ -0,0 +1,477 @@ +const api = require("../api/client"); +const { prompt, confirm, pause } = require("../utils/input"); +const { clearScreen, showStatus, showHeader } = require("../utils/display"); +const { formatDate } = require("../utils/format"); +const { selectModelFromList } = require("../utils/modelSelector"); +const { showMenuWithBack } = require("../utils/menuHelper"); + +/** + * Format model to string (handle both string and object) + */ +function formatModel(model) { + if (typeof model === "string") return model; + if (model && typeof model === "object") { + return model.id || model.name || `${model.provider}/${model.model}` || JSON.stringify(model); + } + return String(model); +} + +/** + * Show actions for a specific combo + * @param {Object} combo - Combo object + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showComboActions(combo, breadcrumb = []) { + const modelsChain = Array.isArray(combo.models) + ? combo.models.map(formatModel).join(" → ") + : ""; + + await showMenuWithBack({ + title: `🔀 ${combo.name}`, + breadcrumb: [...breadcrumb, combo.name], + headerContent: `Name: ${combo.name}\nModels: ${modelsChain}`, + items: [ + { + label: "Edit Combo", + action: async () => { + await handleEditSingleCombo(combo); + return true; + } + }, + { + label: "Delete Combo", + action: async () => { + await handleDeleteSingleCombo(combo); + return false; // Exit after delete + } + } + ] + }); +} + +/** + * Handle editing a single combo + * @param {Object} combo - Combo to edit + */ +async function handleEditSingleCombo(combo) { + clearScreen(); + console.log(`\n✏️ Edit Combo: ${combo.name}\n`); + + const newName = await prompt(`New name (Enter to keep "${combo.name}"): `); + const name = newName || combo.name; + + console.log("\nCurrent models: " + (Array.isArray(combo.models) ? combo.models.map(formatModel).join(" → ") : "")); + console.log("\nSelect models for this combo (add one by one):"); + + const models = []; + let addMore = true; + + while (addMore) { + const currentChain = models.length > 0 ? models.join(" → ") : "None"; + const model = await selectModelFromList(`Add Model #${models.length + 1}`, `Chain: ${currentChain}`); + + if (model) { + models.push(model); + console.log(`\n✓ Added: ${model}`); + console.log(`Current chain: ${models.join(" → ")}\n`); + + const continueAdding = await confirm("Add another model?"); + addMore = continueAdding; + } else { + addMore = false; + } + } + + // Use new models if any were added, otherwise keep current + const finalModels = models.length > 0 ? models : combo.models; + + const result = await api.updateCombo(combo.id, { name, models: finalModels }); + + if (result.success) { + showStatus("Combo updated!", "success"); + } else { + showStatus(`Update failed: ${result.error}`, "error"); + } + await pause(); +} + +/** + * Handle deleting a single combo + * @param {Object} combo - Combo to delete + */ +async function handleDeleteSingleCombo(combo) { + const confirmed = await confirm(`Delete combo "${combo.name}"?`); + if (confirmed) { + const result = await api.deleteCombo(combo.id); + if (result.success) { + showStatus("Combo deleted!", "success"); + } else { + showStatus(`Delete failed: ${result.error}`, "error"); + } + await pause(); + } +} + +/** + * Main combos menu - list all combos and actions + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showCombosMenu(breadcrumb = []) { + const { showListMenu } = require("../utils/menuHelper"); + + await showListMenu({ + title: "🔀 Combos Management", + breadcrumb, + fetchItems: async () => { + const result = await api.getCombos(); + if (!result.success) { + clearScreen(); + showStatus(`Failed to load combos: ${result.error}`, "error"); + await pause(); + return null; + } + return { items: result.data.combos || [] }; + }, + formatItem: (combo) => { + const modelsChain = Array.isArray(combo.models) ? combo.models.map(formatModel).join(" → ") : ""; + const maxLen = 35; + const displayModels = modelsChain.length > maxLen + ? modelsChain.substring(0, maxLen - 3) + "..." + : modelsChain; + return `${combo.name}: ${displayModels}`; + }, + onSelect: async (combo) => { + await showComboActions(combo, breadcrumb); + }, + createAction: { + label: "Create New Combo", + action: async () => { + await handleCreateCombo(); + } + } + }); +} + +/** + * Show combo detail with stats + */ +async function showComboDetail(comboId) { + clearScreen(); + + const result = await api.getComboById(comboId); + + if (!result.success) { + showStatus(`Failed to load combo: ${result.error}`, "error"); + await pause(); + return; + } + + const combo = result.data; + + console.log("┌─────────────────────────────────────────────────────────┐"); + console.log(`│ 🔀 Combo: ${combo.name.padEnd(46)} │`); + console.log("├─────────────────────────────────────────────────────────┤"); + console.log("│ │"); + console.log(`│ ID: ${combo.id.padEnd(51)} │`); + console.log(`│ Created: ${formatDate(combo.createdAt).padEnd(46)} │`); + console.log(`│ Updated: ${formatDate(combo.updatedAt).padEnd(46)} │`); + console.log("│ │"); + console.log("│ Model Chain: │"); + + // Models is array of strings like ["ag/claude-sonnet-4-5", "kr/claude-sonnet-4.5"] + const models = Array.isArray(combo.models) ? combo.models : []; + models.forEach((modelStr, index) => { + const arrow = index < models.length - 1 ? " →" : " "; + const displayText = `${index + 1}. ${modelStr}${arrow}`; + const padding = Math.max(0, 54 - displayText.length); + console.log(`│ ${displayText}${" ".repeat(padding)} │`); + }); + + console.log("│ │"); + console.log("└─────────────────────────────────────────────────────────┘"); + + await pause(); +} + +/** + * Format combo for menu display + */ +function formatComboLabel(combo) { + const modelsChain = Array.isArray(combo.models) ? combo.models.map(formatModel).join(" → ") : ""; + const maxLen = 40; + const displayModels = modelsChain.length > maxLen + ? modelsChain.substring(0, maxLen - 3) + "..." + : modelsChain; + return `${combo.name}: ${displayModels}`; +} + +/** + * Create new combo + */ +async function handleCreateCombo() { + clearScreen(); + + showStatus("Create New Combo", "info"); + console.log(); + + // Get combo name + const name = await prompt("Combo name: "); + if (!name) { + showStatus("Combo name is required", "error"); + await pause(); + return; + } + + // Fetch available models + showStatus("Loading available models...", "info"); + const modelsResult = await api.getModels(); + + if (!modelsResult.success) { + showStatus(`Failed to load models: ${modelsResult.error}`, "error"); + await pause(); + return; + } + + const availableModels = modelsResult.data.models || []; + + if (availableModels.length === 0) { + showStatus("No models available. Please add providers first.", "warning"); + await pause(); + return; + } + + // Select models for chain + const selectedModels = []; + + console.log(); + showStatus("Select models for the chain (minimum 2)", "info"); + + while (true) { + clearScreen(); + console.log(`Creating combo: ${name}`); + console.log(`Selected models (${selectedModels.length}):`); + + if (selectedModels.length > 0) { + selectedModels.forEach((m, i) => { + console.log(` ${i + 1}. ${m.provider}/${m.model}`); + }); + } else { + console.log(" (none)"); + } + + console.log(); + console.log("Available models:"); + availableModels.forEach((m, i) => { + console.log(` ${i + 1}. ${m.provider}/${m.model}`); + }); + + console.log(); + console.log("Actions:"); + console.log(" - Enter number to add model"); + console.log(" - Type 'done' to finish (min 2 models)"); + console.log(" - Type 'cancel' to abort"); + + const input = await prompt("\nAction: "); + + if (input.toLowerCase() === "cancel") { + showStatus("Cancelled", "warning"); + await pause(); + return; + } + + if (input.toLowerCase() === "done") { + if (selectedModels.length < 2) { + showStatus("Please select at least 2 models", "error"); + await pause(); + continue; + } + break; + } + + const num = parseInt(input, 10); + if (isNaN(num) || num < 1 || num > availableModels.length) { + showStatus("Invalid model number", "error"); + await pause(); + continue; + } + + selectedModels.push(availableModels[num - 1]); + } + + // Create combo + showStatus("Creating combo...", "info"); + + const createResult = await api.createCombo({ + name, + models: selectedModels + }); + + if (!createResult.success) { + showStatus(`Failed to create combo: ${createResult.error}`, "error"); + await pause(); + return; + } + + showStatus(`Combo "${name}" created successfully!`, "success"); + await pause(); +} + +/** + * Edit combo - select which combo to edit + */ +async function handleEditCombo(combos) { + if (combos.length === 0) { + showStatus("No combos available", "warning"); + await pause(); + return; + } + + let selectedCombo = null; + + await showMenuWithBack({ + title: "✏️ Select Combo to Edit", + items: combos.map(combo => ({ + label: formatComboLabel(combo), + action: async () => { + selectedCombo = combo; + return false; + } + })) + }); + + if (!selectedCombo) return; + await editSingleCombo(selectedCombo); +} + +/** + * Edit a single combo + */ +async function editSingleCombo(combo) { + clearScreen(); + showStatus(`Editing combo: ${combo.name}`, "info"); + console.log(); + + const newName = await prompt(`New name (current: ${combo.name}, press Enter to keep): `); + const editModels = await confirm("Edit model chain?"); + + let newModels = combo.models; + + if (editModels) { + newModels = []; + + while (true) { + clearScreen(); + console.log(`Editing combo: ${combo.name}`); + console.log(`Selected models (${newModels.length}):`); + + if (newModels.length > 0) { + newModels.forEach((m, i) => console.log(` ${i + 1}. ${m}`)); + } else { + console.log(" (none)"); + } + + console.log("\nType 'done' to finish (min 2 models) or 'cancel' to abort\n"); + + const model = await selectModelFromList("Add Model", ""); + + if (model === null) { + showStatus("Cancelled", "warning"); + await pause(); + return; + } + + if (model === "done") { + if (newModels.length < 2) { + showStatus("Please select at least 2 models", "error"); + await pause(); + continue; + } + break; + } + + newModels.push(model); + showStatus(`Added: ${model}`, "success"); + await pause(); + } + } + + const updateData = {}; + if (newName) updateData.name = newName; + if (editModels) updateData.models = newModels; + + if (Object.keys(updateData).length === 0) { + showStatus("No changes made", "warning"); + await pause(); + return; + } + + showStatus("Updating combo...", "info"); + + const updateResult = await api.updateCombo(combo.id, updateData); + + if (!updateResult.success) { + showStatus(`Failed to update combo: ${updateResult.error}`, "error"); + await pause(); + return; + } + + showStatus("Combo updated successfully!", "success"); + await pause(); +} + +/** + * Delete combo - select which combo to delete + */ +async function handleDeleteCombo(combos) { + if (combos.length === 0) { + showStatus("No combos available", "warning"); + await pause(); + return; + } + + let selectedCombo = null; + + await showMenuWithBack({ + title: "🗑️ Select Combo to Delete", + items: combos.map(combo => ({ + label: formatComboLabel(combo), + action: async () => { + selectedCombo = combo; + return false; + } + })) + }); + + if (!selectedCombo) return; + + clearScreen(); + showStatus(`Combo: ${selectedCombo.name}`, "warning"); + const modelsDisplay = Array.isArray(selectedCombo.models) + ? selectedCombo.models.map(formatModel).join(" → ") + : ""; + console.log(`Models: ${modelsDisplay}`); + console.log(); + + const confirmed = await confirm("Are you sure you want to delete this combo?"); + + if (!confirmed) { + showStatus("Cancelled", "info"); + await pause(); + return; + } + + showStatus("Deleting combo...", "info"); + + const deleteResult = await api.deleteCombo(selectedCombo.id); + + if (!deleteResult.success) { + showStatus(`Failed to delete combo: ${deleteResult.error}`, "error"); + await pause(); + return; + } + + showStatus("Combo deleted successfully!", "success"); + await pause(); +} + +module.exports = { showCombosMenu }; diff --git a/cli/src/cli/menus/providers.js b/cli/src/cli/menus/providers.js new file mode 100644 index 00000000000..ca4b9df6f33 --- /dev/null +++ b/cli/src/cli/menus/providers.js @@ -0,0 +1,609 @@ +const api = require("../api/client"); +const { prompt, confirm, pause } = require("../utils/input"); +const { clearScreen, showStatus, showHeader } = require("../utils/display"); +const { formatDate, getRelativeTime } = require("../utils/format"); +const { showMenuWithBack } = require("../utils/menuHelper"); +const { copyToClipboard } = require("../utils/clipboard"); + +// ANSI colors for styling +const COLORS = { + reset: "\x1b[0m", + bold: "\x1b[1m", + cyan: "\x1b[36m", + dim: "\x1b[2m" +}; + +// Provider models - static config (synced from open-sse/config/providerModels.js) +const PROVIDER_MODELS = { + cc: [ + { id: "claude-opus-4-5-20251101" }, + { id: "claude-sonnet-4-5-20250929" }, + { id: "claude-haiku-4-5-20251001" }, + ], + cx: [ + { id: "gpt-5.2-codex" }, + { id: "gpt-5.2" }, + { id: "gpt-5.1-codex-max" }, + { id: "gpt-5.1-codex" }, + { id: "gpt-5.1-codex-mini" }, + { id: "gpt-5.1" }, + { id: "gpt-5-codex" }, + { id: "gpt-5-codex-mini" }, + ], + gc: [ + { id: "gemini-3-flash-preview" }, + { id: "gemini-3-pro-preview" }, + { id: "gemini-2.5-pro" }, + { id: "gemini-2.5-flash" }, + { id: "gemini-2.5-flash-lite" }, + ], + qw: [ + { id: "qwen3-coder-plus" }, + { id: "qwen3-coder-flash" }, + { id: "vision-model" }, + ], + if: [ + { id: "qwen3-coder-plus" }, + { id: "kimi-k2" }, + { id: "kimi-k2-thinking" }, + { id: "deepseek-r1" }, + { id: "deepseek-v3.2-chat" }, + { id: "deepseek-v3.2-reasoner" }, + { id: "minimax-m2" }, + { id: "glm-4.7" }, + ], + ag: [ + { id: "gemini-3-pro-low" }, + { id: "gemini-3-pro-high" }, + { id: "gemini-3-flash" }, + { id: "gemini-2.5-flash" }, + { id: "claude-sonnet-4-5" }, + { id: "claude-sonnet-4-5-thinking" }, + { id: "claude-opus-4-5-thinking" }, + ], + gh: [ + { id: "gpt-5" }, + { id: "gpt-5-mini" }, + { id: "gpt-5.1-codex" }, + { id: "gpt-5.1-codex-max" }, + { id: "gpt-4.1" }, + { id: "claude-4.5-sonnet" }, + { id: "claude-4.5-opus" }, + { id: "claude-4.5-haiku" }, + { id: "gemini-3-pro" }, + { id: "gemini-3-flash" }, + { id: "gemini-2.5-pro" }, + { id: "grok-code-fast-1" }, + ], + kr: [ + { id: "claude-sonnet-4.5" }, + { id: "claude-haiku-4.5" }, + ], + openai: [ + { id: "gpt-4o" }, + { id: "gpt-4o-mini" }, + { id: "gpt-4-turbo" }, + { id: "o1" }, + { id: "o1-mini" }, + ], + anthropic: [ + { id: "claude-sonnet-4-20250514" }, + { id: "claude-opus-4-20250514" }, + { id: "claude-3-5-sonnet-20241022" }, + ], + gemini: [ + { id: "gemini-3-pro-preview" }, + { id: "gemini-2.5-pro" }, + { id: "gemini-2.5-flash" }, + { id: "gemini-2.5-flash-lite" }, + ], + openrouter: [ + { id: "auto" }, + ], + glm: [ + { id: "glm-4.7" }, + { id: "glm-4.6v" }, + ], + kimi: [ + { id: "kimi-latest" }, + ], + minimax: [ + { id: "MiniMax-M2.1" }, + ], +}; + +// Provider definitions +const OAUTH_PROVIDERS = { + claude: { id: "claude", alias: "cc", name: "Claude Code" }, + codex: { id: "codex", alias: "cx", name: "OpenAI Codex" }, + "gemini-cli": { id: "gemini-cli", alias: "gc", name: "Gemini CLI" }, + github: { id: "github", alias: "gh", name: "GitHub Copilot" }, + antigravity: { id: "antigravity", alias: "ag", name: "Antigravity" }, + iflow: { id: "iflow", alias: "if", name: "iFlow AI" }, + qwen: { id: "qwen", alias: "qw", name: "Qwen Code" }, + kiro: { id: "kiro", alias: "kr", name: "Kiro AI" }, +}; + +const APIKEY_PROVIDERS = { + openrouter: { id: "openrouter", name: "OpenRouter" }, + glm: { id: "glm", name: "GLM Coding" }, + minimax: { id: "minimax", name: "Minimax Coding" }, + kimi: { id: "kimi", name: "Kimi Coding" }, + openai: { id: "openai", name: "OpenAI" }, + anthropic: { id: "anthropic", name: "Anthropic" }, + gemini: { id: "gemini", name: "Gemini" }, +}; + +const ALL_PROVIDERS = { ...OAUTH_PROVIDERS, ...APIKEY_PROVIDERS }; + +/** + * Get auth type for provider + * @param {string} providerId - Provider ID + * @returns {string} "oauth" or "apikey" + */ +function getAuthType(providerId) { + return OAUTH_PROVIDERS[providerId] ? "oauth" : "apikey"; +} + +/** + * Count connections by provider + * @param {Array} connections - Array of connection objects + * @returns {Object} Map of providerId -> count + */ +function countConnectionsByProvider(connections) { + const counts = {}; + connections.forEach(conn => { + const providerId = conn.provider || conn.providerId; + counts[providerId] = (counts[providerId] || 0) + 1; + }); + return counts; +} + +/** + * Show main providers menu + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showProvidersMenu(breadcrumb = []) { + // Build provider items list + const providerItems = []; + + Object.values(OAUTH_PROVIDERS).forEach(provider => { + providerItems.push({ + provider, + authType: "oauth", + label: (data) => { + const count = data.counts[provider.id] || 0; + return `${provider.name} (OAuth) - ${count} Connected`; + }, + action: async (data) => { + await showProviderDetail(provider.id, "oauth", data.connections, [...breadcrumb, provider.name]); + return true; + } + }); + }); + + Object.values(APIKEY_PROVIDERS).forEach(provider => { + providerItems.push({ + provider, + authType: "apikey", + label: (data) => { + const count = data.counts[provider.id] || 0; + return `${provider.name} (API) - ${count} Connected`; + }, + action: async (data) => { + await showProviderDetail(provider.id, "apikey", data.connections, [...breadcrumb, provider.name]); + return true; + } + }); + }); + + await showMenuWithBack({ + title: "🔌 Providers Management", + breadcrumb, + refresh: async () => { + const response = await api.getProviders(); + if (!response.success) { + showStatus(`Failed to fetch providers: ${response.error}`, "error"); + await pause(); + return null; + } + const connections = response.data.connections || []; + return { + connections, + counts: countConnectionsByProvider(connections) + }; + }, + items: providerItems + }); +} + +/** + * Build provider header with alias and models + * @param {string} providerId - Provider ID + * @returns {string} + */ +function buildProviderHeader(providerId) { + const provider = ALL_PROVIDERS[providerId]; + const alias = provider.alias || providerId; + + const lines = []; + lines.push(`Alias: ${COLORS.cyan}${alias}${COLORS.reset}`); + + // Get models from static config + const models = PROVIDER_MODELS[alias] || []; + if (models.length > 0) { + const modelList = models + .slice(0, 5) + .map(m => `${alias}/${m.id}`) + .join(", "); + const more = models.length > 5 ? ` (+${models.length - 5} more)` : ""; + lines.push(`Models: ${COLORS.dim}${modelList}${more}${COLORS.reset}`); + } else { + lines.push(`Models: ${COLORS.dim}No models configured${COLORS.reset}`); + } + + return lines.join("\n"); +} + +/** + * Show provider detail with connections and actions + * @param {string} providerId - Provider ID + * @param {string} authType - "oauth" or "apikey" + * @param {Array} allConnections - All connections + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showProviderDetail(providerId, authType, allConnections, breadcrumb = []) { + const provider = ALL_PROVIDERS[providerId]; + const { showListMenu } = require("../utils/menuHelper"); + + await showListMenu({ + title: `🔌 ${provider.name} (${authType.toUpperCase()})`, + breadcrumb, + backLabel: "← Back to Providers", + headerContent: buildProviderHeader(providerId), + fetchItems: async () => { + const response = await api.getProviders(); + if (response.success) { + allConnections.length = 0; + allConnections.push(...(response.data.connections || [])); + } + const providerConns = allConnections.filter(conn => + (conn.provider || conn.providerId) === providerId + ); + return { items: providerConns }; + }, + formatItem: (conn) => { + const status = conn.testStatus === "active" ? "✓" : conn.testStatus === "error" ? "✗" : "?"; + const name = conn.name || conn.email || conn.displayName || "Unnamed"; + return `${name} (${status})`; + }, + onSelect: async (conn) => { + await showConnectionActions(conn, providerId, breadcrumb); + }, + createAction: { + label: "Add New Connection", + action: async () => { + await handleAddConnection(providerId, authType); + } + } + }); +} + +/** + * Show actions for a specific connection + * @param {Object} connection - Connection object + * @param {string} providerId - Provider ID + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showConnectionActions(connection, providerId, breadcrumb = []) { + const name = connection.name || connection.email || connection.displayName || "Unnamed"; + const status = connection.testStatus === "active" ? "✓ Active" : + connection.testStatus === "error" ? "✗ Error" : "? Unknown"; + + await showMenuWithBack({ + title: `🔌 ${name}`, + breadcrumb: [...breadcrumb, name], + headerContent: `Connection: ${name}\nStatus: ${status}`, + items: [ + { + label: "Rename Connection", + action: async () => { + const newName = await prompt(`New name (current: ${name}): `); + if (newName && newName.trim()) { + showStatus("Renaming connection...", "info"); + const result = await api.updateConnection(connection.id, { name: newName.trim() }); + if (result.success) { + showStatus("Connection renamed!", "success"); + connection.name = newName.trim(); + } else { + showStatus(`Rename failed: ${result.error}`, "error"); + } + await pause(); + } + return true; + } + }, + { + label: "Test Connection", + action: async () => { + showStatus("Testing connection...", "info"); + const result = await api.testConnection(connection.id); + if (result.success) { + showStatus("Connection is working!", "success"); + } else { + showStatus(`Test failed: ${result.error}`, "error"); + } + await pause(); + return true; + } + }, + { + label: "Delete Connection", + action: async () => { + const confirmed = await confirm(`Delete connection "${name}"?`); + if (confirmed) { + const result = await api.deleteConnection(connection.id); + if (result.success) { + showStatus("Connection deleted!", "success"); + } else { + showStatus(`Delete failed: ${result.error}`, "error"); + } + await pause(); + return false; // Exit menu after delete + } + return true; + } + } + ] + }); +} + +/** + * Handle adding new connection + * @param {string} providerId - Provider ID + * @param {string} authType - "oauth" or "apikey" + */ +// Providers that use Device Code Flow (terminal-based polling) +const DEVICE_CODE_PROVIDERS = ["github", "qwen", "kiro"]; + +/** + * Handle adding new connection - auto-detect flow type + * @param {string} providerId - Provider ID + * @param {string} authType - "oauth" or "apikey" + */ +async function handleAddConnection(providerId, authType) { + if (authType === "apikey") { + await handleAddApiKeyConnection(providerId); + } else { + // OAuth: auto-detect flow type based on provider + if (DEVICE_CODE_PROVIDERS.includes(providerId)) { + // Device Code Flow for GitHub, Qwen, Kiro + await handleAddDeviceCodeConnection(providerId); + } else { + // Authorization Code Flow for Claude, Codex, Gemini, etc. + await handleAddOAuthConnection(providerId); + } + } +} + +/** + * Handle adding API Key connection + * @param {string} providerId - Provider ID + */ +async function handleAddApiKeyConnection(providerId) { + clearScreen(); + const provider = ALL_PROVIDERS[providerId]; + console.log(`\n➕ Add ${provider.name} API Key Connection\n`); + + const name = await prompt("Connection Name: "); + if (!name) { + showStatus("Cancelled", "warning"); + await pause(); + return; + } + + const apiKey = await prompt("API Key: "); + if (!apiKey) { + showStatus("Cancelled", "warning"); + await pause(); + return; + } + + showStatus("Creating connection...", "info"); + + const result = await api.createApiKeyProvider({ + provider: providerId, + name, + apiKey + }); + + if (result.success) { + showStatus("✓ Connection created successfully!", "success"); + } else { + showStatus(`✗ Failed: ${result.error}`, "error"); + } + + await pause(); +} + +/** + * Handle adding OAuth Authorization Code connection + * User opens URL manually and pastes callback URL + * @param {string} providerId - Provider ID + */ +async function handleAddOAuthConnection(providerId) { + clearScreen(); + const provider = ALL_PROVIDERS[providerId]; + + // Step 1: Get auth URL + showStatus("Requesting authorization URL...", "info"); + const authResult = await api.getOAuthAuthUrl(providerId); + + if (!authResult.success) { + showStatus(`Failed: ${authResult.error}`, "error"); + await pause(); + return; + } + + const authData = authResult.data || authResult; + const authUrl = authData.authUrl; + const codeVerifier = authData.codeVerifier; + const state = authData.state; + const redirectUri = authData.redirectUri; + + if (!authUrl) { + showStatus("Failed: No auth URL received", "error"); + await pause(); + return; + } + + // Step 2: Show URL and instructions + clearScreen(); + showHeader("🔐 OAuth Login", `Providers > ${provider.name} > Add Connection`); + + console.log(` ${COLORS.bold}${COLORS.cyan}1.${COLORS.reset} Open this URL in your browser:`); + console.log(` ${COLORS.dim}${authUrl}${COLORS.reset}`); + if (copyToClipboard(authUrl)) { + console.log(` \x1b[32m✓ Link copied to clipboard!\x1b[0m`); + } + console.log(); + console.log(` ${COLORS.bold}${COLORS.cyan}2.${COLORS.reset} Complete authorization in browser`); + console.log(); + console.log(` ${COLORS.bold}${COLORS.cyan}3.${COLORS.reset} Copy the callback URL from address bar`); + console.log(` ${COLORS.dim}(looks like: http://localhost:20128/callback?code=...)${COLORS.reset}`); + console.log(); + + const callbackUrl = await prompt(" Paste callback URL: "); + if (!callbackUrl) { + showStatus("Cancelled", "warning"); + await pause(); + return; + } + + // Step 3: Parse callback URL and extract code + let code, urlState, error; + try { + const url = new URL(callbackUrl.trim()); + code = url.searchParams.get("code"); + urlState = url.searchParams.get("state"); + error = url.searchParams.get("error"); + + if (error) { + const errorDesc = url.searchParams.get("error_description") || error; + showStatus(`Authorization failed: ${errorDesc}`, "error"); + await pause(); + return; + } + + if (!code) { + showStatus("No authorization code found in URL", "error"); + await pause(); + return; + } + } catch (err) { + showStatus("Invalid URL format", "error"); + await pause(); + return; + } + + // Step 4: Exchange code for tokens + console.log(); + showStatus("Exchanging code for tokens...", "info"); + const exchangeResult = await api.exchangeOAuthCode(providerId, { + code, + redirectUri, + codeVerifier, + state: urlState || state + }); + + if (exchangeResult.success) { + showStatus("Connection created successfully!", "success"); + } else { + showStatus(`Failed: ${exchangeResult.error}`, "error"); + } + + await pause(); +} + +/** + * Handle adding OAuth Device Code connection + * @param {string} providerId - Provider ID + */ +async function handleAddDeviceCodeConnection(providerId) { + clearScreen(); + const provider = ALL_PROVIDERS[providerId]; + + // Step 1: Request device code + showStatus("Requesting device code...", "info"); + const deviceResult = await api.getOAuthDeviceCode(providerId); + + if (!deviceResult.success) { + showStatus(`Failed: ${deviceResult.error}`, "error"); + await pause(); + return; + } + + const deviceData = deviceResult.data || deviceResult; + const device_code = deviceData.device_code; + const user_code = deviceData.user_code; + const verification_uri = deviceData.verification_uri; + const verification_uri_complete = deviceData.verification_uri_complete; + const codeVerifier = deviceData.codeVerifier; + const extraData = deviceData.extraData || deviceData; + + if (!device_code) { + showStatus("Failed: No device code received", "error"); + await pause(); + return; + } + + // Step 2: Show instructions + clearScreen(); + const deviceUrl = verification_uri_complete || verification_uri; + showHeader("📱 Device Login", `Providers > ${provider.name} > Add Connection`); + + console.log(` ${COLORS.bold}${COLORS.cyan}1.${COLORS.reset} Open: ${COLORS.dim}${deviceUrl}${COLORS.reset}`); + if (copyToClipboard(deviceUrl)) { + console.log(` \x1b[32m✓ Link copied to clipboard!\x1b[0m`); + } + console.log(); + if (!verification_uri_complete && user_code) { + console.log(` ${COLORS.bold}${COLORS.cyan}2.${COLORS.reset} Enter code: ${COLORS.bold}${user_code}${COLORS.reset}`); + console.log(); + } + console.log(` ${COLORS.dim}Waiting for authorization...${COLORS.reset}`); + console.log(); + + // Step 3: Poll for token + const maxAttempts = 60; // 5 minutes (5s interval) + for (let i = 0; i < maxAttempts; i++) { + await new Promise(resolve => setTimeout(resolve, 5000)); + + const pollResult = await api.pollOAuthToken(providerId, { + deviceCode: device_code, + codeVerifier, + extraData + }); + + if (pollResult.success) { + showStatus("\nConnection created successfully!", "success"); + await pause(); + return; + } + + // Check if still pending (pending flag is at root level, not in data) + const isPending = pollResult.pending || pollResult.error === "authorization_pending" || pollResult.error === "slow_down"; + if (!isPending) { + showStatus(`\nFailed: ${pollResult.error || "Unknown error"}`, "error"); + await pause(); + return; + } + + process.stdout.write("."); + } + + showStatus("\nTimeout waiting for authorization", "error"); + await pause(); +} + +module.exports = { showProvidersMenu }; diff --git a/cli/src/cli/menus/settings.js b/cli/src/cli/menus/settings.js new file mode 100644 index 00000000000..0b389c337ad --- /dev/null +++ b/cli/src/cli/menus/settings.js @@ -0,0 +1,174 @@ +const path = require("path"); +const fs = require("fs"); +const os = require("os"); +const api = require("../api/client"); +const { confirm, pause } = require("../utils/input"); +const { showStatus } = require("../utils/display"); +const { showMenuWithBack } = require("../utils/menuHelper"); + +// ANSI colors +const COLORS = { + reset: "\x1b[0m", + green: "\x1b[32m", + red: "\x1b[31m", + yellow: "\x1b[33m", + dim: "\x1b[2m", + cyan: "\x1b[36m" +}; + +const DEFAULT_PASSWORD = "123456"; + +// Resolve db.json path (matches app/src/lib/dataDir.js convention) +function getDbPath() { + return process.platform === "win32" + ? path.join(process.env.APPDATA || "", "9router", "db.json") + : path.join(os.homedir(), ".9router", "db.json"); +} + +/** + * Show settings menu (tunnel + RTK + reset password) + * @param {Array<string>} breadcrumb - Breadcrumb path + */ +async function showSettingsMenu(breadcrumb = []) { + await showMenuWithBack({ + title: "⚙️ Settings", + breadcrumb, + headerContent: async (data) => { + const lines = []; + + // Tunnel section + const tunnel = data?.tunnel || {}; + if (tunnel.enabled && tunnel.publicUrl) { + lines.push(` Endpoint: ${COLORS.green}${tunnel.publicUrl}/v1${COLORS.reset}`); + lines.push(` Tunnel: ${COLORS.green}ON${COLORS.reset} ${COLORS.dim}(${tunnel.shortId})${COLORS.reset}`); + } else { + lines.push(` Endpoint: http://localhost:20128/v1`); + lines.push(` Tunnel: ${COLORS.red}OFF${COLORS.reset} ${COLORS.dim}(local only)${COLORS.reset}`); + } + + // RTK section + const rtkOn = data?.settings?.rtkEnabled !== false; + lines.push(` RTK: ${rtkOn ? `${COLORS.green}ON${COLORS.reset}` : `${COLORS.red}OFF${COLORS.reset}`} ${COLORS.dim}(Token Saver)${COLORS.reset}`); + + return lines.join("\n"); + }, + refresh: async () => { + const [tunnelRes, settingsRes] = await Promise.all([ + api.getTunnelStatus(), + api.getSettings() + ]); + return { + tunnel: tunnelRes.success ? (tunnelRes.data || {}) : {}, + settings: settingsRes.success ? (settingsRes.data || {}) : {} + }; + }, + items: [ + { + label: "Tunnel ON", + action: async () => { await enableTunnel(); return true; } + }, + { + label: "Tunnel OFF", + action: async () => { await disableTunnel(); return true; } + }, + { + label: (d) => { + const on = d?.settings?.rtkEnabled !== false; + return `Token Saver (RTK): ${on ? "ON" : "OFF"} → toggle`; + }, + action: async (d) => { await toggleRtk(d?.settings?.rtkEnabled !== false); return true; } + }, + { + label: "🔑 Reset Password to Default", + action: async () => { await resetPassword(); return true; } + } + ] + }); +} + +/** + * Enable tunnel via API + */ +async function enableTunnel() { + showStatus("Creating tunnel...", "info"); + const result = await api.enableTunnel(); + + if (result.success) { + const { publicUrl, shortId, alreadyRunning } = result.data || {}; + if (alreadyRunning) { + showStatus(`Tunnel already running: ${publicUrl}`, "success"); + } else { + showStatus(`Tunnel enabled: ${publicUrl} (${shortId})`, "success"); + } + } else { + showStatus(`Failed: ${result.error}`, "error"); + } + + await pause(); +} + +/** + * Disable tunnel via API + */ +async function disableTunnel() { + const result = await api.disableTunnel(); + + if (result.success) { + showStatus("Tunnel disabled", "success"); + } else { + showStatus(`Failed: ${result.error}`, "error"); + } + + await pause(); +} + +/** + * Toggle RTK (Token Saver) via API + * @param {boolean} currentlyOn + */ +async function toggleRtk(currentlyOn) { + const next = !currentlyOn; + const result = await api.updateSettings({ rtkEnabled: next }); + if (result.success) { + showStatus(`Token Saver ${next ? "enabled" : "disabled"}`, "success"); + } else { + showStatus(`Failed: ${result.error}`, "error"); + } + await pause(); +} + +/** + * Reset dashboard password by clearing the hash in db.json (Phase B). + * After reset, user can log in with the default password "123456". + */ +async function resetPassword() { + const dbPath = getDbPath(); + + if (!fs.existsSync(dbPath)) { + showStatus(`db.json not found at ${dbPath}`, "error"); + await pause(); + return; + } + + const ok = await confirm(`Reset dashboard password to default "${DEFAULT_PASSWORD}"?`); + if (!ok) { + showStatus("Cancelled", "info"); + await pause(); + return; + } + + try { + const raw = fs.readFileSync(dbPath, "utf-8"); + const db = JSON.parse(raw); + if (db.settings && Object.prototype.hasOwnProperty.call(db.settings, "password")) { + delete db.settings.password; + } + fs.writeFileSync(dbPath, JSON.stringify(db, null, 2)); + showStatus(`Password reset. Default: ${DEFAULT_PASSWORD}`, "success"); + } catch (err) { + showStatus(`Failed to reset password: ${err.message}`, "error"); + } + await pause(); +} + +module.exports = { showSettingsMenu }; diff --git a/cli/src/cli/terminalUI.js b/cli/src/cli/terminalUI.js new file mode 100644 index 00000000000..c4426bb9782 --- /dev/null +++ b/cli/src/cli/terminalUI.js @@ -0,0 +1,109 @@ +const api = require("./api/client"); +const { showMenuWithBack } = require("./utils/menuHelper"); +const { showProvidersMenu } = require("./menus/providers"); +const { showApiKeysMenu } = require("./menus/apiKeys"); +const { showCombosMenu } = require("./menus/combos"); +const { showSettingsMenu } = require("./menus/settings"); +const { showCliToolsMenu } = require("./menus/cliTools"); + +const COLORS = { + reset: "\x1b[0m", + green: "\x1b[32m", + red: "\x1b[31m", + dim: "\x1b[2m", + cyan: "\x1b[36m" +}; + +/** + * Build header content with endpoint and API keys + * @param {number} port - Server port + * @returns {Promise<string>} Header content string + */ +async function buildHeaderContent(port) { + const [keysResult, tunnelResult] = await Promise.all([ + api.getApiKeys(), + api.getTunnelStatus() + ]); + + const keys = keysResult.success ? (keysResult.data.keys || []) : []; + const tunnel = tunnelResult.success ? (tunnelResult.data || {}) : {}; + const tunnelEnabled = tunnel.enabled === true; + + const lines = []; + + if (tunnelEnabled && tunnel.publicUrl) { + lines.push(`Endpoint: ${COLORS.green}${tunnel.publicUrl}/v1${COLORS.reset}`); + lines.push(`Tunnel: ${COLORS.green}ON${COLORS.reset} ${COLORS.dim}(${tunnel.shortId})${COLORS.reset}`); + } else { + lines.push(`Endpoint: http://localhost:${port}/v1`); + lines.push(`Tunnel: ${COLORS.red}OFF${COLORS.reset} ${COLORS.dim}(local only)${COLORS.reset}`); + } + + if (keys.length === 0) { + lines.push(`Key: ${COLORS.dim}No API keys yet${COLORS.reset}`); + } else { + lines.push(`Key: ${COLORS.cyan}${keys[0].key}${COLORS.reset}`); + keys.slice(1).forEach(k => lines.push(` ${COLORS.cyan}${k.key}${COLORS.reset}`)); + } + + return lines.join("\n"); +} + +/** + * Start Terminal UI + * @param {number} port - Server port number + */ +async function startTerminalUI(port) { + // Configure API client + api.configure({ port }); + + const basePath = ["9Router"]; + + // Main menu + await showMenuWithBack({ + title: "📡 9Router Terminal UI", + breadcrumb: basePath, + headerContent: async () => await buildHeaderContent(port), + refresh: async () => ({}), // Refresh header on each loop + items: [ + { + label: "Providers", + action: async () => { + await showProvidersMenu([...basePath, "Providers"]); + return true; // Continue + } + }, + { + label: "API Keys", + action: async () => { + await showApiKeysMenu(port, [...basePath, "API Keys"]); + return true; + } + }, + { + label: "Combos", + action: async () => { + await showCombosMenu([...basePath, "Combos"]); + return true; + } + }, + { + label: "CLI Tools", + action: async () => { + await showCliToolsMenu(port, [...basePath, "CLI Tools"]); + return true; + } + }, + { + label: "Settings", + action: async () => { + await showSettingsMenu([...basePath, "Settings"]); + return true; + } + } + ], + backLabel: "← Back to Interface Menu" + }); +} + +module.exports = { startTerminalUI }; diff --git a/cli/src/cli/tray/autostart.js b/cli/src/cli/tray/autostart.js new file mode 100644 index 00000000000..df34fffff3d --- /dev/null +++ b/cli/src/cli/tray/autostart.js @@ -0,0 +1,321 @@ +const fs = require("fs"); +const path = require("path"); +const os = require("os"); +const { execSync } = require("child_process"); + +const APP_NAME = "9router"; +const APP_LABEL = "com.9router.autostart"; + +/** + * Get the command to run 9router in tray mode + */ +function getStartCommand() { + // Find the global npm bin path for 9router + try { + const npmBin = execSync("npm bin -g", { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim(); + const routerPath = path.join(npmBin, "9router"); + if (fs.existsSync(routerPath)) { + return `"${routerPath}" --tray --skip-update`; + } + } catch (e) { + // npm not available or failed + } + + // Fallback: use npx + return "npx 9router --tray --skip-update"; +} + +/** + * Enable auto startup on OS boot + * @param {string} cliPath - Optional path to cli.js (defaults to auto-detect) + * @returns {boolean} success + */ +function enableAutoStart(cliPath) { + const platform = process.platform; + + // Skip on unsupported platforms + if (!["darwin", "win32", "linux"].includes(platform)) { + return false; + } + + // Skip on Linux without GUI + if (platform === "linux" && !process.env.DISPLAY) { + return false; + } + + try { + if (platform === "darwin") { + return enableMacOS(cliPath); + } else if (platform === "win32") { + return enableWindows(cliPath); + } else if (platform === "linux") { + return enableLinux(cliPath); + } + } catch (err) { + // Silent fail - autostart is optional + } + + return false; +} + +/** + * Disable auto startup + * @returns {boolean} success + */ +function disableAutoStart() { + const platform = process.platform; + + try { + if (platform === "darwin") { + return disableMacOS(); + } else if (platform === "win32") { + return disableWindows(); + } else if (platform === "linux") { + return disableLinux(); + } + } catch (err) { + // Silent fail + } + + return false; +} + +/** + * Check if autostart is enabled + * @returns {boolean} + */ +function isAutoStartEnabled() { + const platform = process.platform; + + try { + if (platform === "darwin") { + const plistPath = path.join(os.homedir(), "Library", "LaunchAgents", `${APP_LABEL}.plist`); + return fs.existsSync(plistPath); + } else if (platform === "win32") { + const startupPath = path.join(process.env.APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup", `${APP_NAME}.vbs`); + return fs.existsSync(startupPath); + } else if (platform === "linux") { + const desktopPath = path.join(os.homedir(), ".config", "autostart", `${APP_NAME}.desktop`); + return fs.existsSync(desktopPath); + } + } catch (e) {} + + return false; +} + +// ============ macOS ============ + +function enableMacOS(cliPath) { + const launchAgentsDir = path.join(os.homedir(), "Library", "LaunchAgents"); + const plistPath = path.join(launchAgentsDir, `${APP_LABEL}.plist`); + + // Ensure directory exists + if (!fs.existsSync(launchAgentsDir)) { + fs.mkdirSync(launchAgentsDir, { recursive: true }); + } + + // Get absolute paths for node and 9router script + const nodePath = process.execPath; + let routerScript; + + if (cliPath) { + // Use provided path (from running cli.js) + routerScript = path.resolve(cliPath); + } else { + // Fallback: try to resolve from npm bin + try { + const npmBin = execSync("npm bin -g", { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim(); + const routerLink = path.join(npmBin, "9router"); + routerScript = fs.realpathSync(routerLink); + } catch (e) { + // Last resort fallback + routerScript = "/usr/local/lib/node_modules/9router/cli.js"; + } + } + + // Determine user shell + const userShell = process.env.SHELL || '/bin/zsh'; + + const plistContent = `<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>Label</key> + <string>${APP_LABEL}</string> + <key>ProgramArguments</key> + <array> + <string>${userShell}</string> + <string>-l</string> + <string>-c</string> + <string>${nodePath} ${routerScript} --tray --skip-update</string> + </array> + <key>RunAtLoad</key> + <true/> + <key>KeepAlive</key> + <false/> + <key>StandardOutPath</key> + <string>/tmp/9router.log</string> + <key>StandardErrorPath</key> + <string>/tmp/9router.error.log</string> +</dict> +</plist>`; + + fs.writeFileSync(plistPath, plistContent); + + // Load the launch agent + try { + execSync(`launchctl unload "${plistPath}" 2>/dev/null`, { stdio: "ignore" }); + } catch (e) {} + + return true; +} + +function disableMacOS() { + const plistPath = path.join(os.homedir(), "Library", "LaunchAgents", `${APP_LABEL}.plist`); + + try { + execSync(`launchctl unload "${plistPath}" 2>/dev/null`, { stdio: "ignore" }); + } catch (e) {} + + if (fs.existsSync(plistPath)) { + fs.unlinkSync(plistPath); + } + + return true; +} + +// ============ Windows ============ + +function enableWindows(cliPath) { + const startupDir = path.join(process.env.APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup"); + const vbsPath = path.join(startupDir, `${APP_NAME}.vbs`); + + // Ensure startup directory exists + if (!fs.existsSync(startupDir)) { + return false; + } + + // Get absolute paths + const nodePath = process.execPath; + let routerScript; + + if (cliPath) { + // Use provided path (from running cli.js) + routerScript = path.resolve(cliPath); + } else { + // Fallback: try to resolve from npm bin + try { + const npmBin = execSync("npm bin -g", { encoding: "utf8", shell: true, stdio: ["ignore", "pipe", "ignore"] }).trim(); + const routerLink = path.join(npmBin, "9router.cmd"); + if (fs.existsSync(routerLink)) { + routerScript = routerLink; + } else { + // Try to resolve actual script + const routerJs = path.join(npmBin, "../lib/node_modules/9router/cli.js"); + if (fs.existsSync(routerJs)) { + routerScript = routerJs; + } + } + } catch (e) { + // Fallback + } + } + + // Create VBS script to run hidden (no console window) + let vbsContent; + if (routerScript && routerScript.endsWith(".js")) { + // Run node directly with script + vbsContent = `Set WshShell = CreateObject("WScript.Shell") +WshShell.Run """${nodePath}"" ""${routerScript}"" --tray --skip-update", 0, False +`; + } else if (routerScript) { + // Run .cmd file + vbsContent = `Set WshShell = CreateObject("WScript.Shell") +WshShell.Run """${routerScript}"" --tray --skip-update", 0, False +`; + } else { + // Fallback to npx + vbsContent = `Set WshShell = CreateObject("WScript.Shell") +WshShell.Run "npx 9router --tray --skip-update", 0, False +`; + } + + fs.writeFileSync(vbsPath, vbsContent); + return true; +} + +function disableWindows() { + const vbsPath = path.join(process.env.APPDATA, "Microsoft", "Windows", "Start Menu", "Programs", "Startup", `${APP_NAME}.vbs`); + + if (fs.existsSync(vbsPath)) { + fs.unlinkSync(vbsPath); + } + + return true; +} + +// ============ Linux ============ + +function enableLinux(cliPath) { + const autostartDir = path.join(os.homedir(), ".config", "autostart"); + const desktopPath = path.join(autostartDir, `${APP_NAME}.desktop`); + + // Ensure directory exists + if (!fs.existsSync(autostartDir)) { + try { + fs.mkdirSync(autostartDir, { recursive: true }); + } catch (e) { + return false; + } + } + + // Get absolute paths + const nodePath = process.execPath; + let routerScript; + + if (cliPath) { + // Use provided path (from running cli.js) + routerScript = path.resolve(cliPath); + } else { + // Fallback: try to resolve from npm bin + try { + const npmBin = execSync("npm bin -g", { encoding: "utf8", stdio: ["ignore", "pipe", "ignore"] }).trim(); + const routerLink = path.join(npmBin, "9router"); + if (fs.existsSync(routerLink)) { + routerScript = fs.realpathSync(routerLink); + } + } catch (e) { + // Last resort fallback + routerScript = "/usr/local/lib/node_modules/9router/cli.js"; + } + } + + const desktopContent = `[Desktop Entry] +Type=Application +Name=9Router +Comment=9Router API Proxy +Exec=${nodePath} ${routerScript} --tray --skip-update +Hidden=false +NoDisplay=false +X-GNOME-Autostart-enabled=true +`; + + fs.writeFileSync(desktopPath, desktopContent); + return true; +} + +function disableLinux() { + const desktopPath = path.join(os.homedir(), ".config", "autostart", `${APP_NAME}.desktop`); + + if (fs.existsSync(desktopPath)) { + fs.unlinkSync(desktopPath); + } + + return true; +} + +module.exports = { + enableAutoStart, + disableAutoStart, + isAutoStartEnabled +}; diff --git a/cli/src/cli/tray/icon.ico b/cli/src/cli/tray/icon.ico new file mode 100644 index 00000000000..9cf0e3d1a88 Binary files /dev/null and b/cli/src/cli/tray/icon.ico differ diff --git a/cli/src/cli/tray/icon.png b/cli/src/cli/tray/icon.png new file mode 100644 index 00000000000..55bf5151f0f Binary files /dev/null and b/cli/src/cli/tray/icon.png differ diff --git a/cli/src/cli/tray/tray.js b/cli/src/cli/tray/tray.js new file mode 100644 index 00000000000..8f97eb7b7c4 --- /dev/null +++ b/cli/src/cli/tray/tray.js @@ -0,0 +1,204 @@ +const { exec } = require("child_process"); +const fs = require("fs"); +const path = require("path"); + +let trayInstance = null; + +/** + * Get icon base64 from file — use .ico on Windows, .png on macOS/Linux + */ +function getIconBase64() { + const isWin = process.platform === "win32"; + const iconFile = isWin ? "icon.ico" : "icon.png"; + try { + const iconPath = path.join(__dirname, iconFile); + if (fs.existsSync(iconPath)) { + return fs.readFileSync(iconPath).toString("base64"); + } + } catch (e) {} + // Fallback: minimal green dot icon (PNG) + return "iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHpJREFUOE9jYBgFgwEwMjIy/Gdg+P8fyP4PxP8ZGBgEcBnGyMjIsICBgSEAhyH/gfgBUNN8XJoZsdkCVL8Ah+b/QPwbqvkBMvk/AwMDAzYX/GdgYAhAN+A/SICRWAMYGfFEJSMjzriEiwDR/xmIa2RkZCSqnZERb3QCAAo3KxzxbKe1AAAAAElFTkSuQmCC"; +} + +/** + * Check if system tray is supported on current OS + * Supported: macOS, Windows, Linux (with GUI) + */ +function isTraySupported() { + const platform = process.platform; + // Supported platforms: darwin (macOS), win32 (Windows), linux + if (!["darwin", "win32", "linux"].includes(platform)) { + return false; + } + // Skip on Linux without display (headless server) + if (platform === "linux" && !process.env.DISPLAY) { + return false; + } + return true; +} + +/** + * Initialize system tray with menu + * @param {Object} options - { port, onQuit, onOpenDashboard } + * @returns {Object|null} tray instance or null if not supported/failed + */ +function initTray(options) { + // Check OS support first + if (!isTraySupported()) { + return null; + } + + const { port, onQuit, onOpenDashboard } = options; + + try { + const SysTray = require("systray").default; + + // Check if autostart is enabled + let autostartEnabled = false; + try { + const { isAutoStartEnabled } = require("./autostart"); + autostartEnabled = isAutoStartEnabled(); + } catch (e) {} + + const isWin = process.platform === "win32"; + const menu = { + icon: getIconBase64(), + // macOS requires empty title; Windows uses title as the tray icon tooltip + title: isWin ? `9Router - Port ${port}` : "", + tooltip: `9Router - Port ${port}`, + items: [ + { + title: `9Router (Port ${port})`, + tooltip: "Server is running", + enabled: false + }, + { + title: "Open Dashboard", + tooltip: "Open in browser", + enabled: true + }, + { + title: autostartEnabled ? "✓ Auto-start Enabled" : "Enable Auto-start", + tooltip: "Run on OS startup", + enabled: true + }, + { + title: "Quit", + tooltip: "Stop server and exit", + enabled: true + } + ] + }; + + trayInstance = new SysTray({ + menu, + debug: false, + copyDir: true + }); + + // Menu item index: 0=status, 1=dashboard, 2=autostart, 3=quit + const AUTOSTART_INDEX = 2; + + trayInstance.onClick((action) => { + if (action.item.title === "Open Dashboard") { + if (onOpenDashboard) { + onOpenDashboard(); + } else { + openBrowser(`http://localhost:${port}/dashboard`); + } + } else if (action.item.title === "✓ Auto-start Enabled") { + // Disable autostart + try { + const { disableAutoStart } = require("./autostart"); + disableAutoStart(); + // Update menu item + trayInstance.sendAction({ + type: "update-item", + item: { + title: "Enable Auto-start", + tooltip: "Run on OS startup", + enabled: true + }, + seq_id: AUTOSTART_INDEX + }); + } catch (e) {} + } else if (action.item.title === "Enable Auto-start") { + // Enable autostart + try { + const { enableAutoStart } = require("./autostart"); + enableAutoStart(); + // Update menu item + trayInstance.sendAction({ + type: "update-item", + item: { + title: "✓ Auto-start Enabled", + tooltip: "Run on OS startup", + enabled: true + }, + seq_id: AUTOSTART_INDEX + }); + } catch (e) {} + } else if (action.item.title === "Quit") { + console.log("\n👋 Shutting down..."); + if (onQuit) { + onQuit(); + } + killTray(); + setTimeout(() => process.exit(0), 500); + } + }); + + trayInstance.onReady(() => { + // Tray ready - silent + }); + + trayInstance.onError((err) => { + // Ignore errors during shutdown + }); + + return trayInstance; + } catch (err) { + // Silent fail - tray is optional, app continues without it + return null; + } +} + +/** + * Kill/close system tray gracefully + */ +function killTray() { + const instance = trayInstance; + trayInstance = null; // Set to null first to prevent error handlers + + if (instance) { + try { + // Kill with silent mode to avoid JSON parse errors + instance.kill(true); + } catch (e) { + // Ignore kill errors - tray binary may already be dead + } + } +} + +/** + * Open browser + */ +function openBrowser(url) { + const platform = process.platform; + let cmd; + + if (platform === "darwin") { + cmd = `open "${url}"`; + } else if (platform === "win32") { + cmd = `start "" "${url}"`; + } else { + cmd = `xdg-open "${url}"`; + } + + exec(cmd); +} + +module.exports = { + initTray, + killTray +}; diff --git a/cli/src/cli/utils/clipboard.js b/cli/src/cli/utils/clipboard.js new file mode 100644 index 00000000000..c9cc5b570f8 --- /dev/null +++ b/cli/src/cli/utils/clipboard.js @@ -0,0 +1,30 @@ +const { execSync } = require("child_process"); + +/** + * Copy text to clipboard based on OS + * @param {string} text - Text to copy + * @returns {boolean} Success status + */ +function copyToClipboard(text) { + try { + const platform = process.platform; + + if (platform === "darwin") { + execSync("pbcopy", { input: text }); + } else if (platform === "win32") { + execSync("clip", { input: text }); + } else { + // Linux - try xclip first, then xsel + try { + execSync("xclip -selection clipboard", { input: text }); + } catch { + execSync("xsel --clipboard --input", { input: text }); + } + } + return true; + } catch (error) { + return false; + } +} + +module.exports = { copyToClipboard }; diff --git a/cli/src/cli/utils/display.js b/cli/src/cli/utils/display.js new file mode 100644 index 00000000000..a68d830444c --- /dev/null +++ b/cli/src/cli/utils/display.js @@ -0,0 +1,156 @@ +const { formatNumber } = require("./format"); + +// ANSI color codes +const COLORS = { + reset: "\x1b[0m", + success: "\x1b[32m", + error: "\x1b[31m", + warning: "\x1b[33m", + info: "\x1b[36m", + dim: "\x1b[2m", + bold: "\x1b[1m", + bright: "\x1b[1m", + cyan: "\x1b[36m" +}; + +// Box drawing characters +const BOX_CHARS = { + topLeft: "┌", + topRight: "┐", + bottomLeft: "└", + bottomRight: "┘", + horizontal: "─", + vertical: "│" +}; + +/** + * Draw a box with border around content + * @param {string} title - Box title + * @param {string} content - Content to display inside box + * @param {number} [width=60] - Box width + */ +function showBox(title, content, width = 60) { + const innerWidth = width - 4; + const lines = content.split("\n"); + + // Top border with title + const topBorder = BOX_CHARS.topLeft + BOX_CHARS.horizontal.repeat(2) + + ` ${title} ` + + BOX_CHARS.horizontal.repeat(Math.max(0, innerWidth - title.length - 3)) + + BOX_CHARS.topRight; + + console.log(topBorder); + + // Content lines + lines.forEach(line => { + const paddedLine = line.padEnd(innerWidth); + console.log(`${BOX_CHARS.vertical} ${paddedLine} ${BOX_CHARS.vertical}`); + }); + + // Bottom border + const bottomBorder = BOX_CHARS.bottomLeft + + BOX_CHARS.horizontal.repeat(innerWidth + 2) + + BOX_CHARS.bottomRight; + + console.log(bottomBorder); +} + +/** + * Display a menu with numbered items + * @param {string} title - Menu title + * @param {string[]} items - Array of menu items + * @param {string} [footer] - Optional footer text + */ +function showMenu(title, items, footer) { + console.log(`\n${COLORS.bold}${title}${COLORS.reset}`); + console.log(COLORS.dim + "─".repeat(title.length) + COLORS.reset); + + items.forEach((item, index) => { + console.log(` ${COLORS.info}${index + 1}.${COLORS.reset} ${item}`); + }); + + if (footer) { + console.log(`\n${COLORS.dim}${footer}${COLORS.reset}`); + } + console.log(); +} + +/** + * Display data in table format + * @param {string[]} headers - Array of column headers + * @param {Array<Array<string|number>>} rows - Array of row data + */ +function showTable(headers, rows) { + if (!headers.length || !rows.length) { + return; + } + + // Calculate column widths + const colWidths = headers.map((header, i) => { + const maxDataWidth = Math.max(...rows.map(row => String(row[i] || "").length)); + return Math.max(header.length, maxDataWidth); + }); + + // Print header + const headerRow = headers.map((h, i) => h.padEnd(colWidths[i])).join(" │ "); + console.log(COLORS.bold + headerRow + COLORS.reset); + + // Print separator + const separator = colWidths.map(w => "─".repeat(w)).join("─┼─"); + console.log(COLORS.dim + separator + COLORS.reset); + + // Print rows + rows.forEach(row => { + const rowStr = row.map((cell, i) => String(cell || "").padEnd(colWidths[i])).join(" │ "); + console.log(rowStr); + }); +} + +/** + * Show colored status message + * @param {string} message - Message to display + * @param {string} [type="info"] - Status type: success, error, warning, info + */ +function showStatus(message, type = "info") { + const symbols = { + success: "✓", + error: "✗", + warning: "⚠", + info: "ℹ" + }; + + const color = COLORS[type] || COLORS.info; + const symbol = symbols[type] || symbols.info; + + console.log(`${color}${symbol} ${message}${COLORS.reset}`); +} + +/** + * Clear the terminal screen + */ +function clearScreen() { + console.clear(); +} + +/** + * Show menu header with title and subtitle + * @param {string} title - Main title + * @param {string} subtitle - Optional subtitle + */ +function showHeader(title, subtitle) { + console.log(`\n${"=".repeat(60)}`); + console.log(` ${COLORS.bright}${COLORS.cyan}${title}${COLORS.reset}`); + if (subtitle) { + console.log(` ${COLORS.dim}${subtitle}${COLORS.reset}`); + } + console.log(`${"=".repeat(60)}\n`); +} + +module.exports = { + showBox, + showMenu, + showTable, + showStatus, + clearScreen, + showHeader +}; diff --git a/cli/src/cli/utils/endpoint.js b/cli/src/cli/utils/endpoint.js new file mode 100644 index 00000000000..20226e69459 --- /dev/null +++ b/cli/src/cli/utils/endpoint.js @@ -0,0 +1,32 @@ +const api = require("../api/client"); + +const COLORS = { + reset: "\x1b[0m", + green: "\x1b[32m" +}; + +/** + * Get endpoint URL based on tunnel status + * @param {number} port - Local server port + * @returns {Promise<{endpoint: string, tunnelEnabled: boolean}>} + */ +async function getEndpoint(port) { + const result = await api.getTunnelStatus(); + const tunnelEnabled = result.success && result.data?.enabled === true; + const publicUrl = result.success ? result.data?.publicUrl : ""; + + const endpoint = tunnelEnabled && publicUrl ? `${publicUrl}/v1` : `http://localhost:${port}/v1`; + return { endpoint, tunnelEnabled }; +} + +/** + * Get endpoint with color formatting + * @param {number} port - Local server port + * @returns {Promise<string>} Colored endpoint string + */ +async function getEndpointColored(port) { + const { endpoint, tunnelEnabled } = await getEndpoint(port); + return tunnelEnabled ? `${COLORS.green}${endpoint}${COLORS.reset}` : endpoint; +} + +module.exports = { getEndpoint, getEndpointColored }; diff --git a/cli/src/cli/utils/format.js b/cli/src/cli/utils/format.js new file mode 100644 index 00000000000..5bf2ea4bf33 --- /dev/null +++ b/cli/src/cli/utils/format.js @@ -0,0 +1,125 @@ +/** + * Truncate text with ellipsis + * @param {string} text - Text to truncate + * @param {number} maxLength - Maximum length + * @returns {string} Truncated text + */ +function truncate(text, maxLength) { + if (!text || text.length <= maxLength) { + return text; + } + return text.substring(0, maxLength - 3) + "..."; +} + +/** + * Mask API key showing only first and last characters + * @param {string} key - API key to mask + * @returns {string} Masked key + */ +function maskKey(key) { + if (!key || key.length < 8) { + return "***"; + } + const firstChars = key.substring(0, 4); + const lastChars = key.substring(key.length - 4); + return `${firstChars}${"*".repeat(key.length - 8)}${lastChars}`; +} + +/** + * Format date to readable string + * @param {Date|string|number} date - Date to format + * @returns {string} Formatted date string + */ +function formatDate(date) { + const d = new Date(date); + if (isNaN(d.getTime())) { + return "Invalid Date"; + } + + const year = d.getFullYear(); + const month = String(d.getMonth() + 1).padStart(2, "0"); + const day = String(d.getDate()).padStart(2, "0"); + const hours = String(d.getHours()).padStart(2, "0"); + const minutes = String(d.getMinutes()).padStart(2, "0"); + const seconds = String(d.getSeconds()).padStart(2, "0"); + + return `${year}-${month}-${day} ${hours}:${minutes}:${seconds}`; +} + +/** + * Format number with commas + * @param {number} num - Number to format + * @returns {string} Formatted number + */ +function formatNumber(num) { + if (typeof num !== "number" || isNaN(num)) { + return "0"; + } + return num.toLocaleString("en-US"); +} + +/** + * Format bytes to human readable size + * @param {number} bytes - Bytes to format + * @returns {string} Formatted size string + */ +function formatBytes(bytes) { + if (typeof bytes !== "number" || isNaN(bytes) || bytes < 0) { + return "0 B"; + } + + const units = ["B", "KB", "MB", "GB", "TB"]; + let size = bytes; + let unitIndex = 0; + + while (size >= 1024 && unitIndex < units.length - 1) { + size /= 1024; + unitIndex++; + } + + return `${size.toFixed(2)} ${units[unitIndex]}`; +} + +/** + * Get relative time string + * @param {Date|string|number} date - Date to compare + * @returns {string} Relative time string + */ +function getRelativeTime(date) { + const d = new Date(date); + if (isNaN(d.getTime())) { + return "Invalid Date"; + } + + const now = new Date(); + const diffMs = now - d; + const diffSec = Math.floor(diffMs / 1000); + const diffMin = Math.floor(diffSec / 60); + const diffHour = Math.floor(diffMin / 60); + const diffDay = Math.floor(diffHour / 24); + const diffMonth = Math.floor(diffDay / 30); + const diffYear = Math.floor(diffDay / 365); + + if (diffSec < 60) { + return "just now"; + } else if (diffMin < 60) { + return `${diffMin} minute${diffMin > 1 ? "s" : ""} ago`; + } else if (diffHour < 24) { + return `${diffHour} hour${diffHour > 1 ? "s" : ""} ago`; + } else if (diffDay < 30) { + return `${diffDay} day${diffDay > 1 ? "s" : ""} ago`; + } else if (diffMonth < 12) { + return `${diffMonth} month${diffMonth > 1 ? "s" : ""} ago`; + } else { + return `${diffYear} year${diffYear > 1 ? "s" : ""} ago`; + } +} + +module.exports = { + truncate, + maskKey, + formatDate, + formatNumber, + formatBytes, + getRelativeTime +}; diff --git a/cli/src/cli/utils/input.js b/cli/src/cli/utils/input.js new file mode 100644 index 00000000000..b4482cb54cb --- /dev/null +++ b/cli/src/cli/utils/input.js @@ -0,0 +1,229 @@ +const readline = require("readline"); + +const COLORS = { + reset: "\x1b[0m", + bright: "\x1b[1m", + dim: "\x1b[2m", + underline: "\x1b[4m", + reverse: "\x1b[7m", + cyan: "\x1b[36m", + green: "\x1b[32m", + yellow: "\x1b[33m", + blue: "\x1b[34m", + white: "\x1b[37m", + bgGreen: "\x1b[42m", + bgBlue: "\x1b[44m", + black: "\x1b[30m", + // Terracotta/Earth orange - using RGB escape code + terracotta: "\x1b[38;2;217;119;87m", // #D97757 + bgTerracotta: "\x1b[48;2;217;119;87m" +}; + +/** + * Ask a question and return the user's answer + * @param {string} question - The question to ask + * @returns {Promise<string>} The user's answer + */ +async function prompt(question) { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + + return new Promise((resolve) => { + rl.question(question, (answer) => { + rl.close(); + resolve(answer.trim()); + }); + }); +} + +/** + * Show a numbered menu and return the selected option number + * @param {string} question - The question to ask + * @param {string[]} options - Array of options to display + * @returns {Promise<number>} The selected option index (0-based) + */ +async function select(question, options) { + console.log(question); + options.forEach((option, index) => { + console.log(` ${index + 1}. ${option}`); + }); + + while (true) { + const answer = await prompt("\nSelect option (number): "); + const num = parseInt(answer, 10); + + if (!isNaN(num) && num >= 1 && num <= options.length) { + return num - 1; + } + + console.log(`Invalid selection. Please enter a number between 1 and ${options.length}`); + } +} + +/** + * Ask a yes/no question and return boolean + * @param {string} question - The question to ask + * @returns {Promise<boolean>} True for yes, false for no + */ +async function confirm(question) { + while (true) { + const answer = await prompt(`${question} (y/n): `); + const lower = answer.toLowerCase(); + + if (lower === "y" || lower === "yes") { + return true; + } + if (lower === "n" || lower === "no") { + return false; + } + + console.log("Please answer 'y' or 'n'"); + } +} + +/** + * Pause execution until user presses Enter + * @param {string} [message="Press Enter to continue..."] - Message to display + * @returns {Promise<void>} + */ +async function pause(message = "Press Enter to continue...") { + const rl = readline.createInterface({ + input: process.stdin, + output: process.stdout + }); + + return new Promise((resolve) => { + rl.question(message, () => { + rl.close(); + resolve(); + }); + }); +} + +/** + * Show interactive menu with arrow key navigation + * @param {string} title - Menu title + * @param {Array<{label: string, icon?: string}>} items - Menu items + * @param {number} defaultIndex - Default selected index + * @param {string} headerContent - Optional content to show above menu + * @param {Array<string>} breadcrumb - Optional breadcrumb path + * @returns {Promise<number>} Selected index, or -1 if ESC pressed + */ +async function selectMenu(title, items, defaultIndex = 0, subtitle = "", headerContent = "", breadcrumb = []) { + return new Promise((resolve) => { + let selectedIndex = defaultIndex; + let isActive = true; + + // Remove any existing keypress listeners first + process.stdin.removeAllListeners("keypress"); + + readline.emitKeypressEvents(process.stdin); + if (process.stdin.isTTY) { + try { + process.stdin.setRawMode(true); + } catch (err) { + // TTY disconnected or EIO error - exit gracefully + resolve(-1); + return; + } + } + + const renderMenu = () => { + if (!isActive) return; + + // Clear previous menu + process.stdout.write("\x1b[2J\x1b[H"); + + // Show title with terracotta color + const width = Math.min(process.stdout.columns || 40, 40); + console.log(`\n${COLORS.terracotta}${"=".repeat(width)}${COLORS.reset}`); + console.log(` ${COLORS.bright}${COLORS.terracotta}${title}${COLORS.reset}`); + + // Show subtitle inside the frame + if (subtitle) { + console.log(` ${COLORS.dim}${subtitle}${COLORS.reset}`); + } + + console.log(`${COLORS.terracotta}${"=".repeat(width)}${COLORS.reset}`); + + // Show breadcrumb if provided + if (breadcrumb.length > 0) { + console.log(` ${COLORS.dim}${breadcrumb.join(" > ")}${COLORS.reset}`); + } + console.log(); + + // Show header content if provided + if (headerContent) { + console.log(headerContent); + console.log(); + } + + // Show menu items with proper alignment + items.forEach((item, index) => { + const isSelected = index === selectedIndex; + + // Fallback to ASCII on Windows (cmd/powershell can't render unicode stars) + const isWin = process.platform === "win32"; + const icon = isSelected ? (isWin ? ">" : "★") : (isWin ? " " : "☆"); + + if (isSelected) { + // Selected: reverse + bright for high visibility on any terminal + console.log(` ${COLORS.reverse}${COLORS.bright}${icon} ${item.label}${COLORS.reset}`); + } else { + // Not selected: plain text with empty star + console.log(` ${icon} ${item.label}`); + } + }); + }; + + const cleanup = () => { + if (!isActive) return; + isActive = false; + + if (process.stdin.isTTY) { + try { + process.stdin.setRawMode(false); + } catch (err) { + // Ignore cleanup errors + } + } + process.stdin.removeListener("keypress", onKeypress); + process.stdin.pause(); + }; + + const onKeypress = (str, key) => { + if (!isActive || !key) return; + + if (key.name === "up") { + selectedIndex = (selectedIndex - 1 + items.length) % items.length; + renderMenu(); + } else if (key.name === "down") { + selectedIndex = (selectedIndex + 1) % items.length; + renderMenu(); + } else if (key.name === "return") { + cleanup(); + resolve(selectedIndex); + } else if (key.name === "escape") { + cleanup(); + resolve(-1); + } else if (key.ctrl && key.name === "c") { + cleanup(); + process.exit(0); + } + }; + + process.stdin.on("keypress", onKeypress); + process.stdin.resume(); + renderMenu(); + }); +} + +module.exports = { + prompt, + select, + confirm, + pause, + selectMenu +}; diff --git a/cli/src/cli/utils/menuHelper.js b/cli/src/cli/utils/menuHelper.js new file mode 100644 index 00000000000..41d290640e3 --- /dev/null +++ b/cli/src/cli/utils/menuHelper.js @@ -0,0 +1,156 @@ +const { selectMenu } = require("./input"); + +/** + * Show a menu with back button at top and handle selection + * @param {Object} config - Menu configuration + * @param {string} config.title - Menu title + * @param {string} config.headerContent - Optional header content + * @param {Array<{label: string, action: Function}>} config.items - Menu items with actions + * @param {string} config.backLabel - Back button label (default: "← Back") + * @param {number} config.defaultIndex - Default selected index (default: 0) + * @param {Function} config.refresh - Optional refresh function to call after each action + * @param {Array<string>} config.breadcrumb - Optional breadcrumb path + * @returns {Promise<void>} + */ +async function showMenuWithBack(config) { + const { + title, + headerContent = "", + items, + backLabel = "← Back", + defaultIndex = 0, + refresh = null, + breadcrumb = [] + } = config; + + while (true) { + // Call refresh if provided + let refreshedData = null; + if (refresh) { + refreshedData = await refresh(); + if (refreshedData === null) { + // Refresh failed, exit menu + return; + } + } + + // Build menu items with back at top + const menuItems = [ + { label: backLabel, icon: "☆" }, + ...items.map(item => ({ + label: typeof item.label === "function" ? item.label(refreshedData) : item.label, + icon: "☆" + })) + ]; + + // Resolve headerContent if it's a function + const resolvedHeader = typeof headerContent === "function" + ? await headerContent(refreshedData) + : headerContent; + + const selected = await selectMenu( + title, + menuItems, + defaultIndex, + "", + resolvedHeader, + breadcrumb + ); + + // Back or ESC + if (selected === -1 || selected === 0) { + return; + } + + // Execute action for selected item + const actionIndex = selected - 1; + const item = items[actionIndex]; + + if (item && item.action) { + const shouldContinue = await item.action(refreshedData); + // If action returns false, exit menu + if (shouldContinue === false) { + return; + } + } + } +} + +/** + * Show a list menu where items are fetched dynamically + * @param {Object} config - Menu configuration + * @param {string} config.title - Menu title + * @param {string} config.headerContent - Optional header content + * @param {Function} config.fetchItems - Async function to fetch items array + * @param {Function} config.formatItem - Function to format each item to {label, data} + * @param {Function} config.onSelect - Action when item is selected + * @param {Object} config.createAction - Optional create action {label, action} + * @param {string} config.backLabel - Back button label + * @param {Array<string>} config.breadcrumb - Optional breadcrumb path + * @returns {Promise<void>} + */ +async function showListMenu(config) { + const { + title, + headerContent = "", + fetchItems, + formatItem, + onSelect, + createAction = null, + backLabel = "← Back", + breadcrumb = [] + } = config; + + while (true) { + // Fetch items + const result = await fetchItems(); + if (!result) { + return; + } + + const items = result.items || []; + const metadata = result.metadata || {}; + + // Build menu items + const menuItems = [{ label: backLabel, icon: "☆" }]; + + if (createAction) { + menuItems.push({ label: createAction.label, icon: "☆" }); + } + + items.forEach(item => { + const formatted = formatItem(item); + menuItems.push({ label: formatted, icon: "☆" }); + }); + + const header = typeof headerContent === "function" + ? await headerContent(metadata) + : headerContent; + + const selected = await selectMenu(title, menuItems, 0, "", header, breadcrumb); + + // Back or ESC + if (selected === -1 || selected === 0) { + return; + } + + // Create action + if (createAction && selected === 1) { + await createAction.action(); + continue; + } + + // Select item + const offset = createAction ? 2 : 1; + const itemIndex = selected - offset; + + if (itemIndex >= 0 && itemIndex < items.length) { + await onSelect(items[itemIndex]); + } + } +} + +module.exports = { + showMenuWithBack, + showListMenu +}; diff --git a/cli/src/cli/utils/modelSelector.js b/cli/src/cli/utils/modelSelector.js new file mode 100644 index 00000000000..438220d14f5 --- /dev/null +++ b/cli/src/cli/utils/modelSelector.js @@ -0,0 +1,136 @@ +const api = require("../api/client"); +const { prompt } = require("./input"); +const { clearScreen } = require("./display"); + +// Provider alias order: OAuth first, then API Key (matches ModelSelectModal) +const PROVIDER_ALIAS_ORDER = [ + "cc", "ag", "cx", "if", "qw", "gc", "gh", "kr", + "openrouter", "glm", "kimi", "minimax", "openai", "anthropic", "gemini" +]; + +// Alias to display name mapping +const PROVIDER_ALIAS_NAMES = { + cc: "Claude Code", + ag: "Antigravity", + cx: "OpenAI Codex", + if: "iFlow AI", + qw: "Qwen Code", + gc: "Gemini CLI", + gh: "GitHub Copilot", + kr: "Kiro AI", + openrouter: "OpenRouter", + glm: "GLM Coding", + kimi: "Kimi Coding", + minimax: "Minimax Coding", + openai: "OpenAI", + anthropic: "Anthropic", + gemini: "Gemini" +}; + +/** + * Get all available models grouped by provider + combos + * @returns {Promise<{combos: Array, groups: Object}>} + */ +async function getAvailableModelsGrouped() { + const result = await api.getAvailableModels(); + if (!result.success) return { combos: [], groups: {} }; + + const models = result.data?.data || []; + const combos = []; + const groups = {}; + + models.forEach(m => { + if (m.owned_by === "combo") { + combos.push(m.id); + } else { + const provider = m.owned_by; + if (!groups[provider]) { + groups[provider] = []; + } + groups[provider].push(m.id); + } + }); + + return { combos, groups }; +} + +/** + * Display model list and prompt for selection + * @param {string} title - Title to display + * @param {string} currentValue - Current selected value (optional) + * @param {Object} options - { excludeCombos?: boolean } + * @returns {Promise<string|null>} Selected model ID or null if cancelled + */ +async function selectModelFromList(title, currentValue = "", options = {}) { + const { excludeCombos = false } = options; + const { combos: rawCombos, groups } = await getAvailableModelsGrouped(); + const combos = excludeCombos ? [] : rawCombos; + + const totalModels = combos.length + Object.values(groups).flat().length; + if (totalModels === 0) { + return null; + } + + // Build flat list for selection + const allModels = []; + + // Display + clearScreen(); + console.log(`\n🎯 ${title}`); + console.log("=".repeat(50)); + if (currentValue) { + console.log(`Current: ${currentValue}\n`); + } else { + console.log(); + } + + let idx = 1; + + // Combos first (skipped when excludeCombos is true) + if (combos.length > 0) { + console.log("[Combos]"); + combos.forEach(combo => { + console.log(` ${idx}. ${combo}`); + allModels.push(combo); + idx++; + }); + console.log(); + } + + // Provider groups in order (by alias) + const sortedProviders = Object.keys(groups).sort((a, b) => { + const idxA = PROVIDER_ALIAS_ORDER.indexOf(a); + const idxB = PROVIDER_ALIAS_ORDER.indexOf(b); + return (idxA === -1 ? 999 : idxA) - (idxB === -1 ? 999 : idxB); + }); + + sortedProviders.forEach(provider => { + const providerName = PROVIDER_ALIAS_NAMES[provider] || provider; + console.log(`[${providerName}]`); + groups[provider].forEach(model => { + console.log(` ${idx}. ${model}`); + allModels.push(model); + idx++; + }); + console.log(); + }); + + console.log(" 0. Cancel\n"); + + // Prompt for number input + const input = await prompt("Enter number: "); + const num = parseInt(input, 10); + + if (isNaN(num) || num === 0 || num < 0 || num > allModels.length) { + return null; + } + + return allModels[num - 1]; +} + +module.exports = { + selectModelFromList, + getAvailableModelsGrouped, + PROVIDER_ALIAS_ORDER, + PROVIDER_ALIAS_NAMES +}; diff --git a/diepxuan.config.mjs b/diepxuan.config.mjs new file mode 100644 index 00000000000..4657125b705 --- /dev/null +++ b/diepxuan.config.mjs @@ -0,0 +1,10 @@ +// next.config.mjs +import baseConfig from './base.config.mjs'; + +/** @type {import('next').NextConfig} */ +const nextConfig = { + ...baseConfig, + distDir: "app/.next", // Bổ sung thư mục output +}; + +export default nextConfig; diff --git a/src/mitm/dev b/src/mitm/dev deleted file mode 160000 index b3b7473d6df..00000000000 --- a/src/mitm/dev +++ /dev/null @@ -1 +0,0 @@ -Subproject commit b3b7473d6df221586f9056190bd98389d3b5c0d7